Navigation Simulation Workspace
Module Role¶
simulation/venom_nav_simulation is a standalone ROS 2 simulation workspace used for:
- simulated MID-360 and IMU streams
Point-LIO/Fast-LIOvalidationNav2workflow testing- localization and navigation verification before touching real hardware
Main Capabilities¶
- Gazebo-based vehicle simulation
- simulated MID-360 point cloud output
- simulated IMU output
Point-LIO/Fast-LIOintegrationNav2mapping and navigation validation
Current Layout¶
simulation/venom_nav_simulation/
├── src/rm_nav_bringup
├── src/rm_navigation
├── src/rm_localization
├── src/rm_perception
└── src/rm_simulation/venom_mid360_simulation
Quick Start¶
cd simulation/venom_nav_simulation
rosdep install -r --from-paths src --ignore-src --rosdistro $ROS_DISTRO -y
colcon build --symlink-install
source install/setup.bash
ros2 launch rm_nav_bringup bringup_sim.launch.py \
world:=RMUL \
mode:=nav \
lio:=pointlio \
localization:=slam_toolbox \
lio_rviz:=False \
nav_rviz:=True
Docker Path¶
If you want to use the root-level unified sim environment:
Inside the container:
cd /ros_ws
source /opt/ros/humble/setup.bash
rosdep install -r --from-paths src --ignore-src --rosdistro humble -y
colcon build --cmake-args -DCMAKE_BUILD_TYPE=Release -DROS_EDITION=ROS2 -DHUMBLE_ROS=humble
Or use the wrapped commands:
To reproduce the CI build locally:
The current Docker image is based on ros:humble-ros-base and includes Ignition Fortress, Nav2, RViz2, PCL, OpenCV, and YOLO runtime dependencies. CI skips hardware drivers and Gazebo Classic packages.
Why It Stays Separate¶
This is not meant to be merged into the main deployment workspace:
- dependencies are heavier
- simulation assets are larger
- simulation launch composition differs from real-robot bringup
It is better treated as a simulation baseline.