New navigation controller implementing frontier-based exploration for the VacuumTiger robot vacuum. Key features: Multi-threaded architecture: - Sensor thread (~100Hz): UDP sensor reading, odometry, safety checks - Mapping thread (~5-10Hz): VastuSLAM scan matching, grid updates - Exploration thread (~20Hz): Frontier detection, path planning Path planning: - Theta* any-angle pathfinding (smoother than A*) - SIMD-optimized cost map with obstacle inflation - Path smoother for differential-drive kinematics Frontier exploration: - Flood-fill clustering of frontier cells - Normalized scoring (distance, size, info gain) - Blacklisting and recovery for stuck situations Integration: - SangamIO TCP/UDP client for robot communication - VastuSLAM for SLAM and occupancy grid mapping - SVG visualization with trajectory and frontier markers
15 lines
409 B
Rust
15 lines
409 B
Rust
//! Autonomous exploration module.
|
|
//!
|
|
//! This module provides frontier-based exploration capabilities:
|
|
//! - Frontier detection and clustering
|
|
//! - Path following with pure pursuit
|
|
//! - Exploration state machine
|
|
|
|
mod explorer;
|
|
mod follower;
|
|
mod frontier;
|
|
|
|
pub use explorer::{ExplorationState, ExplorationStep, Explorer, ExplorerConfig};
|
|
pub use follower::FollowerConfig;
|
|
pub use frontier::FrontierConfig;
|