introlab / rtabmap_ros

RTAB-Map's ROS package.
http://wiki.ros.org/rtabmap_ros
BSD 3-Clause "New" or "Revised" License
1.01k stars 558 forks source link

Missing odometry reset events #1222

Open matlabbe opened 1 month ago

matlabbe commented 1 month ago

If some odometry topics are published faster than sensor data, we could miss reset events or large covariances. Note that this would not happen with the multi-threaded version (https://github.com/introlab/rtabmap_ros/pull/1214) if the sensor rate is in sync with odometry rate (like when we use visual odometry or icp odometry).

I tested decoupling odometry to its own callback so we don't miss any messages, though it makes it harder to "wait for odom tropic" if we receive sensor data faster than odometry delay. The current message_filters approach already solve that. Another drawback was for rtabmap_viz when we want to synchronize odometry info topic with the same sensor data generating that odom (to correctly overlay detected features on same image they were generated). Again, the message_filters approach solves that already.

Similar to inter_odom callback, we could look in parallel with a dedicated callback to just detect those reset events and appropriately not miss any covariance.