How lariad/offroad-nav works
Offroad-Nav is a ROS 1 autonomous navigation stack for the Barakuda UGV, supporting simulated and real sensor configurations and LiDAR or monocular perception. Its documented workflow turns sensor data into an elevation map, plans obstacle-avoiding routes, and executes navigation goals. The graph includes mission/waypoint handling and a sampled plane-decomposition layer. README documentation establishes the high-level mapping-to-navigation flow; several implementation links are omitted because their source was not sampled.
Main entry points: elevation_mapping.py Elevation Map · elevation_mapping_node.cpp Elevation Mapping · depth_prediction_node.py Depth Estimation · depth_rescaling_node.py Depth Rescaling
Components 19
Sensing
- Isaac Sim
- Robot Sensors
Perception
- Depth Estimation
mono_depth/src/depth_rescaling/src/depth_estimation/depth_prediction_node.py - Depth Rescaling
mono_depth/src/depth_rescaling/src/depth_estimation/depth_rescaling_node.py - VINS Estimator
mono_depth/src/depth_rescaling/VINS-Mono/vins_estimator/src/estimator_node.cpp - Feature Tracking
mono_depth/src/depth_rescaling/VINS-Mono/feature_tracker/src/feature_tracker_node.cpp - LiDAR Odometry
nav_stack/src/Barakuda/dlio/src/dlio/odom_node.cc - Camera Models
mono_depth/src/depth_rescaling/VINS-Mono/camera_model/src/camera_models/CameraFactory.cc
Mapping & Planning
- Elevation Mapping
nav_stack/src/Barakuda/elevation_mapping_cupy/elevation_mapping_cupy/src/elevation_mapping_node.cpp - Plane Decomposition
nav_stack/src/Barakuda/elevation_mapping_cupy/plane_segmentation/convex_plane_decomposition/src/PlaneDecompositionPipeline.cpp - Elevation Map
nav_stack/src/Barakuda/elevation_mapping_cupy/elevation_mapping_cupy/script/elevation_mapping_cupy/elevation_mapping.py - Path Planner
Robot Control
- Mission Manager
nav_stack/src/Barakuda/barakuda_manager/src/barakuda_manager.cpp - Waypoint Action
nav_stack/src/Barakuda/waypoint_manager/src/waypoint_manager.cpp - move_base
- Gridmap Controller
nav_stack/src/Barakuda/mbf_gridmap/mbf_gridmap_core/include/mbf_gridmap_core/gridmap_controller.h - UGV
- Teleoperation
nav_stack/src/Barakuda/barakuda_node/script/barakuda_joy.py
Other components
- Operator
Connections 19
- Isaac Sim → Robot Sensors: publishes data
- Robot Sensors → Depth Estimation: images
- Depth Estimation → Depth Rescaling: depth output
- Depth Rescaling → Elevation Mapping: depth data
- Robot Sensors → LiDAR Odometry: LiDAR data
- LiDAR Odometry → Elevation Mapping: odometry
- Robot Sensors → Feature Tracking: camera images
- Feature Tracking → VINS Estimator: tracked features
- Camera Models → VINS Estimator: camera model
- Elevation Mapping → Elevation Map: updates
- Elevation Map → Plane Decomposition: elevation input
- Elevation Map → Path Planner: map data
- Operator → Mission Manager: mission / goal
- Mission Manager → Waypoint Action: sends path
- Waypoint Action → move_base: sends goals
- move_base → Gridmap Controller: controller execution
- Gridmap Controller → UGV: velocity commands
- Teleoperation → UGV: manual commands
- Path Planner → move_base: planned route