I'm working on a differential drive robot simulation in ROS2 Jazzy and Gazebo Harmonics. My goal is to enable autonomous navigation to given coordinates using Nav2, with sensor fusion between IMU, wheel encoders, and GPS. However, I'm encountering issues with the Nav2 startup sequence due to missing collision detection sensors.
The basic sensor fusion is working, but Nav2's lifecycle nodes aren't fully launching due to the collision_monitor node failing. This makes sense as I have no LiDAR or camera for obstacle detection, but I need to find a way to run Nav2 without collision detection capabilities.
This is the error code I am getting:
[component_container-2] [INFO] [1739201580.897500063] [collision_monitor]: Configuring [component_container-2] [ERROR] [1739201580.899354171] [collision_monitor]: Error while getting parameters: parameter 'observation_sources' is not initialized [component_container-2] [INFO] [1739201580.899374011] [collision_monitor]: Cleaning up [component_container-2] [ERROR] [1739201580.901736311] [lifecycle_manager_navigation]: Failed to change state for node: collision_monitor [component_container-2] [ERROR] [1739201580.901751111] [lifecycle_manager_navigation]: Failed to bring up all requested nodes. Aborting bringup. My setup is:
- Ubuntu 24.04
- ROS2 Jazzy
- Gazebo Harmonics
My question is there:
- Is there a way to configure Nav2 to run without the collision_monitor node?
- Alternatively, is there a way to configure the collision_monitor node to run with minimal/no collision detection sensors?
Additional Context: The full project code is available at: https://github.com/HenrikBiscuit/DiffDrive_Jazzy_Harmonics
The launch file I am using is "nav2test.launch.py"
path_followerinodom-frame which you can get e.g. regulated pure pursuit. Use only EKF from localization package for sensor fusion. $\endgroup$