[Nav2] Collision Monitor for Emergency-Stopping

Hi all, your friendly neighborhood navigator here.

ROS 2’s Nav2 stack now has a new capability this week: Collision Monitoring for Emergency-Stopping!

Developed by my colleague Alexey Merzlyakov at Samsung Research, the Collision Monitor will take in measurements from laser scans, depth sensors, lidars, sonars, etc directly and determine if a robot is potentially headed for a collision. If so, it will take action by reducing the speed of the robot or stopping it, bypassing the trajectory planner to enact a safety-like system based on raw sensor data for low-latency.

This kind of logic is very common for safety-certified sensors and controllers, but hasn’t had an open-source implementation for the rest of us mere mortals not willing to spend $10,000… until now! It has 3 major operating modes:

  • Stop (due to imminent collision, enough measurements in a configurable zone)
  • Slow (due to a potential collision, enough measurements in a configurable zone)
  • Approach (projects robot model forward in time to ensure always N seconds from collision, reduces speed from trajectory planner proportionally)

They can be mixed and matched to your heart’s desire with any number of sensors. Our new tutorial can be found below.


As always, I’m a big fan of documentation so nothing gets past my desk without a configuration guide as well :wink:


As usual, I’m also a fan of high quality testing, so this package has a cool 97% test coverage :sunglasses: , which is especially important for something of this nature.

Happy stopping-before-running-into-stuffs