Replace old monolithic modules (extraction, features, integration, loop_closure, matching, vector_map, cbvg) with new streamlined architecture including grid, slam, pathfinding, submap, and io modules. Simplify core types and exploration controller.
41 lines
1.3 KiB
Rust
41 lines
1.3 KiB
Rust
//! High-level autonomous exploration API.
|
|
//!
|
|
//! This module provides a simple, unified API for autonomous map exploration.
|
|
//! The `VastuExplorer` handles all the complexity of SLAM, scan matching,
|
|
//! loop closure, and frontier-based exploration internally.
|
|
//!
|
|
//! # Example
|
|
//!
|
|
//! ```ignore
|
|
//! use vastu_map::explore::{VastuExplorer, SensorSource, ExplorerConfig};
|
|
//!
|
|
//! // Implement SensorSource for your robot
|
|
//! struct MyRobot { /* ... */ }
|
|
//! impl SensorSource for MyRobot { /* ... */ }
|
|
//!
|
|
//! // Create explorer and run
|
|
//! let config = ExplorerConfig::default();
|
|
//! let mut explorer = VastuExplorer::new(config);
|
|
//! let mut robot = MyRobot::new();
|
|
//!
|
|
//! match explorer.explore(&mut robot) {
|
|
//! ExploreResult::Complete(map) => {
|
|
//! // Save the completed map
|
|
//! vastu_map::io::save_vastu(map.storage(), "map.vastu").unwrap();
|
|
//! }
|
|
//! ExploreResult::Failed { map, reason } => {
|
|
//! println!("Exploration failed: {}", reason);
|
|
//! }
|
|
//! }
|
|
//! ```
|
|
|
|
mod config;
|
|
mod explorer;
|
|
mod source;
|
|
mod submap_explorer;
|
|
|
|
pub use config::ExplorerConfig;
|
|
pub use explorer::{ExploreResult, ExploreStatus, VastuExplorer, normalize_angle};
|
|
pub use source::SensorSource;
|
|
pub use submap_explorer::{SubmapExplorerConfig, VastuSubmapExplorer};
|