introlab / rtabmap

RTAB-Map library and standalone application
https://introlab.github.io/rtabmap
Other
2.71k stars 775 forks source link

RGB, Depth and Odometry Synchronization Requirements #195

Open aseyfi opened 7 years ago

aseyfi commented 7 years ago

Hello,

I have a setup that RGB camera, Depth sensor and odometry sensor are synchronized in software. Would you please let me know what is an acceptable time synchronization error and how this error will be reflected in the final map?

Thank You, Ahmad

matlabbe commented 7 years ago

The best is to have the camera driver publishing rgb and depth with exactly the same timestamp, so we can set rtabmap/rgbd_odometry node to use exact synchronization (approx_sync:=false). If you have a setup with RGB and depth not exactly synchronized (e.g., they are published from different nodes) and/or odometry is published from the robot (not rgbd_odometry), rtabmap node will adjust depth image pose accordingly to timestamp in odometry messages. See this code. Laser scans are handled the same way.

Bad synchronization between rgb and depth would result in bad registration, so the registered depth image won't fit exactly the color image. Since rtabmap use depth values to know where 2D visual features are (from color image), then slightly wrong depth values would cause less accurate transforms.

cheers, Mathieu