How aika-kawase/placenav works
PlaceNav builds an ordered image topological map from a robot trajectory, then uses camera observations to localize within that map, select a subgoal, predict waypoints, and command a robot. The graph also preserves documented WHILL capabilities for adaptive map sampling, safety filtering, diagnostics, and visualization. Navigation-to-model and navigation-to-recognition relationships are visible in the source index or excerpts; some ROS wiring and map-generation details are documented only at a high level, so uncertain runtime links are omitted.
Main entry points: navigate.py Navigation Node · bayesian_querier.py Bayesian Localizer · create_topomap.py Topomap Creator · extract_database.py Descriptor Export
Components 19
Map Creation
- Topomap Creator
src/placenav/create_topomap.py - Topological Map
src/topomaps
Place Recognition
- Descriptor Export
src/placenav/place_recognition/extract_database.py - Descriptor Database
src/placenav/place_recognition/gallery_db.py - Feature Extractor
src/placenav/place_recognition/feature_extractor.py - CosPlace Model
src/placenav/models/pr_models/cosplace_model/cosplace_network.py - Bayesian Localizer
src/placenav/place_recognition/bayesian_querier.py - Sliding Localizer
src/placenav/place_recognition/sliding_window_querier.py
Navigation Inference
- Navigation Node
src/placenav/navigate.py - GNM Waypoint Model
src/placenav/models/wp_models/gnm/gnm.py - MobileNet Encoder
src/placenav/models/wp_models/gnm/modified_mobilenetv2.py
Robot Interface
- Joystick Teleop
src/placenav/joy_teleop.py - PD Controller
src/placenav/pd_controller.py - Safety Filter
src/placenav/safety_filter.py - Robot Base
src/config/robots.yaml
Diagnostics and Visualization
- Visualization Node
src/placenav/visualization_node.py - ROS Visualization Messages
src/placenav_viz_msgs/src/placenav_viz_msgs/msg
Other components
- Operator
- Robot Sensors
Connections 22
- Operator → Topomap Creator: records trajectory
README.md - Robot Sensors → Topomap Creator: provides images and odometry
README.md - Topomap Creator → Topological Map: creates map
README.md - Topological Map → Descriptor Export: supplies map images
README.md - Descriptor Export → Descriptor Database: writes descriptors
src/placenav/place_recognition/extract_database.py - Navigation Node → Descriptor Export: builds map descriptors
src/placenav/navigate.py - Navigation Node → Feature Extractor: initializes extractor
src/placenav/navigate.py - Feature Extractor → CosPlace Model: loads model
src/placenav/place_recognition/feature_extractor.py - Bayesian Localizer → Descriptor Database: loads descriptors
src/placenav/place_recognition/bayesian_querier.py - Bayesian Localizer → Feature Extractor: extracts query features
src/placenav/place_recognition/bayesian_querier.py - Navigation Node → Bayesian Localizer: uses localizer
src/placenav/navigate.py - Navigation Node → Sliding Localizer: supports alternate filter
src/placenav/navigate.py - Navigation Node → GNM Waypoint Model: runs waypoint inference
src/placenav/navigate.py - GNM Waypoint Model → MobileNet Encoder: encodes images
src/placenav/models/wp_models/gnm/gnm.py - Robot Sensors → Navigation Node: provides camera observations
README.md - Navigation Node → PD Controller: publishes waypoints
README.md - Operator → Joystick Teleop: steers robot
README.md - PD Controller → Safety Filter: passes nominal commands
README.md - Safety Filter → Robot Base: limits velocity
README.md - Navigation Node → ROS Visualization Messages: publishes diagnostics
src/placenav/navigate.py - Navigation Node → Visualization Node: publishes visualization data
README.md - ROS Visualization Messages → Visualization Node: provides message types
README.md