RTABMAP Multi RGBD Camera Error

classic Classic list List threaded Threaded
9 messages Options
Reply | Threaded
Open this post in threaded view
|

RTABMAP Multi RGBD Camera Error

GGYU
Dear Mathieu,

I hope you're doing well.
I’m currently using Ubuntu 22.04 with ROS 2 Humble. I’ve mounted three cameras (front, left, and right) on a TurtleBot3 platform, and I’m attempting to perform SLAM using the rtabmap_D405x3.launch.py for multi-camera support.

However, I’ve encountered an issue. When I launch the rtabmap_D405x3.launch.py file and begin teleoperation, the robot moves briefly and then stops, followed by error messages like the ones below.

I'm not sure if this is simply due to high computational load or if there might be another underlying problem.

Thank you as always for your support.

Best regards,
GGYU







[rgbd_odometry-5] [INFO] [1744872626.934251552] [rtabmap.rgbd_odometry]: Odom: quality=46, std dev=0.006197m|0.022810rad, update time=0.028127s delay=0.001000s
[rgbd_odometry-5] [INFO] [1744872627.200462223] [rtabmap.rgbd_odometry]: Odom: quality=41, std dev=0.010072m|0.022308rad, update time=0.027259s delay=-0.066000s
[rgbd_odometry-5] [INFO] [1744872627.232944704] [rtabmap.rgbd_odometry]: Odom: quality=42, std dev=0.005749m|0.020880rad, update time=0.027496s delay=0.001000s
[rtabmap-6] [INFO] [1744872627.256564989] [rtabmap.rtabmap]: rtabmap (28): Rate=1.00s, Limit=0.000s, Conversion=0.0028s, RTAB-Map=0.0520s, Maps update=0.0000s pub=0.0011s delay=0.3010s (local map=3, WM=3)
[rgbd_odometry-5] [INFO] [1744872627.634367450] [rtabmap.rgbd_odometry]: Odom: quality=36, std dev=0.008697m|0.018867rad, update time=0.027527s delay=0.001000s
[rgbd_odometry-5] [INFO] [1744872627.665464484] [rtabmap.rgbd_odometry]: Odom: quality=39, std dev=0.010089m|0.024924rad, update time=0.026363s delay=-0.032000s
[rgbd_odometry-5] [INFO] [1744872627.964679682] [rtabmap.rgbd_odometry]: Odom: quality=35, std dev=0.008698m|0.023724rad, update time=0.025882s delay=-0.032000s
[rgbd_odometry-5] [INFO] [1744872628.065831027] [rtabmap.rgbd_odometry]: Odom: quality=48, std dev=0.004413m|0.020720rad, update time=0.026959s delay=-0.032000s
[rgbd_odometry-5] [INFO] [1744872628.100448534] [rtabmap.rgbd_odometry]: Odom: quality=45, std dev=0.004374m|0.019480rad, update time=0.026698s delay=-0.067000s
[rgbd_odometry-5] [INFO] [1744872628.138167705] [rtabmap.rgbd_odometry]: Odom: quality=43, std dev=0.004925m|0.021630rad, update time=0.026880s delay=-0.004000s
[rgbd_odometry-5] [INFO] [1744872629.032396671] [rtabmap.rgbd_odometry]: Odom: quality=26, std dev=0.017266m|0.023394rad, update time=0.025724s delay=0.001000s
[rtabmap-6] [INFO] [1744872629.088918109] [rtabmap.rtabmap]: rtabmap (29): Rate=1.00s, Limit=0.000s, Conversion=0.0026s, RTAB-Map=0.0523s, Maps update=0.0000s pub=0.0011s delay=0.0010s (local map=4, WM=4)
[rgbd_odometry-5] [INFO] [1744872629.102036127] [rtabmap.rgbd_odometry]: Odom: quality=34, std dev=0.005934m|0.020720rad, update time=0.027555s delay=-0.066000s
[rgbd_odometry-5] [INFO] [1744872629.167615741] [rtabmap.rgbd_odometry]: Odom: quality=41, std dev=0.005269m|0.017423rad, update time=0.026314s delay=-0.032000s
[rgbd_odometry-5] [INFO] [1744872629.266112426] [rtabmap.rgbd_odometry]: Odom: quality=29, std dev=0.007892m|0.021486rad, update time=0.026424s delay=-0.032000s
[rgbd_odometry-5] [INFO] [1744872629.336177803] [rtabmap.rgbd_odometry]: Odom: quality=37, std dev=0.004592m|0.020880rad, update time=0.029534s delay=0.001000s
[rgbd_odometry-5] [INFO] [1744872630.132854835] [rtabmap.rgbd_odometry]: Odom: quality=33, std dev=0.006267m|0.025199rad, update time=0.026053s delay=0.001000s
[rtabmap-6] [INFO] [1744872630.266566237] [rtabmap.rtabmap]: rtabmap (30): Rate=1.00s, Limit=0.000s, Conversion=0.0024s, RTAB-Map=0.0468s, Maps update=0.0000s pub=0.0010s delay=0.1010s (local map=4, WM=4)
[rgbd_odometry-5] [INFO] [1744872631.032072166] [rtabmap.rgbd_odometry]: Odom: quality=20, std dev=0.011804m|0.026980rad, update time=0.025435s delay=0.001000s
[rgbd_odometry-5] [INFO] [1744872631.166919231] [rtabmap.rgbd_odometry]: Odom: quality=24, std dev=0.007352m|0.020040rad, update time=0.027245s delay=-0.032000s
[rgbd_odometry-5] [INFO] [1744872631.566522007] [rtabmap.rgbd_odometry]: Odom: quality=27, std dev=0.008969m|0.023506rad, update time=0.025573s delay=-0.033000s
[rgbd_odometry-5] [INFO] [1744872631.602082044] [rtabmap.rgbd_odometry]: Odom: quality=31, std dev=0.009279m|0.021189rad, update time=0.027276s delay=-0.066000s
[rtabmap-6] [INFO] [1744872631.909418172] [rtabmap.rtabmap]: rtabmap (31): Rate=1.00s, Limit=0.000s, Conversion=0.0027s, RTAB-Map=0.0476s, Maps update=0.0000s pub=0.0009s delay=0.3670s (local map=5, WM=5)
[rgbd_odometry-5] [INFO] [1744872632.133833980] [rtabmap.rgbd_odometry]: Odom: quality=20, std dev=0.012347m|0.021189rad, update time=0.025702s delay=0.001000s
[rgbd_odometry-5] [INFO] [1744872632.332701523] [rtabmap.rgbd_odometry]: Odom: quality=28, std dev=0.004194m|0.019282rad, update time=0.024919s delay=0.001000s
[rgbd_odometry-5] [INFO] [1744872632.366501796] [rtabmap.rgbd_odometry]: Odom: quality=35, std dev=0.006551m|0.017423rad, update time=0.024875s delay=-0.032000s
[rgbd_odometry-5] [INFO] [1744872632.399900250] [rtabmap.rgbd_odometry]: Odom: quality=39, std dev=0.004705m|0.015089rad, update time=0.025469s delay=-0.066000s
[rgbd_odometry-5] [INFO] [1744872632.566710736] [rtabmap.rgbd_odometry]: Odom: quality=34, std dev=0.005890m|0.018867rad, update time=0.024328s delay=-0.033000s
[rgbd_odometry-5] [INFO] [1744872632.633195315] [rtabmap.rgbd_odometry]: Odom: quality=38, std dev=0.003799m|0.016542rad, update time=0.024496s delay=0.000000s
[rtabmap-6] [INFO] [1744872632.681374421] [rtabmap.rtabmap]: rtabmap (32): Rate=1.00s, Limit=0.000s, Conversion=0.0023s, RTAB-Map=0.0451s, Maps update=0.0000s pub=0.0008s delay=0.0670s (local map=5, WM=5)
[rgbd_odometry-5] [INFO] [1744872632.767007145] [rtabmap.rgbd_odometry]: Odom: quality=32, std dev=0.003943m|0.018423rad, update time=0.026865s delay=-0.032000s
[rgbd_odometry-5] [INFO] [1744872633.099150594] [rtabmap.rgbd_odometry]: Odom: quality=33, std dev=0.005010m|0.015865rad, update time=0.024424s delay=-0.067000s
[rgbd_odometry-5] [INFO] [1744872633.231823039] [rtabmap.rgbd_odometry]: Odom: quality=25, std dev=0.006183m|0.016851rad, update time=0.025018s delay=0.001000s
[rgbd_odometry-5] [INFO] [1744872633.266359882] [rtabmap.rgbd_odometry]: Odom: quality=30, std dev=0.003481m|0.019282rad, update time=0.025361s delay=-0.033000s
[rgbd_odometry-5] [INFO] [1744872633.533013219] [rtabmap.rgbd_odometry]: Odom: quality=41, std dev=0.004248m|0.018423rad, update time=0.024872s delay=0.001000s
[rgbd_odometry-5] [INFO] [1744872633.566384563] [rtabmap.rgbd_odometry]: Odom: quality=46, std dev=0.003775m|0.017689rad, update time=0.026245s delay=-0.032000s
[rgbd_odometry-5] [INFO] [1744872633.599537350] [rtabmap.rgbd_odometry]: Odom: quality=42, std dev=0.003875m|0.017144rad, update time=0.025494s delay=-0.066000s
[rgbd_odometry-5] [INFO] [1744872633.801881654] [rtabmap.rgbd_odometry]: Odom: quality=35, std dev=0.004307m|0.017689rad, update time=0.027912s delay=-0.032000s
[rgbd_odometry-5] [INFO] [1744872634.032241508] [rtabmap.rgbd_odometry]: Odom: quality=39, std dev=0.003180m|0.015492rad, update time=0.024443s delay=0.001000s
[rgbd_odometry-5] [INFO] [1744872634.067510136] [rtabmap.rgbd_odometry]: Odom: quality=35, std dev=0.009472m|0.021909rad, update time=0.025490s delay=-0.034000s
[rtabmap-6] [INFO] [1744872634.084988161] [rtabmap.rtabmap]: rtabmap (33): Rate=1.00s, Limit=0.000s, Conversion=0.0013s, RTAB-Map=0.0506s, Maps update=0.0000s pub=0.0008s delay=0.2340s (local map=6, WM=6)
[rgbd_odometry-5] [INFO] [1744872634.100074199] [rtabmap.rgbd_odometry]: Odom: quality=31, std dev=0.007288m|0.024144rad, update time=0.025443s delay=-0.066000s
[rgbd_odometry-5] [INFO] [1744872634.132048860] [rtabmap.rgbd_odometry]: Odom: quality=36, std dev=0.005371m|0.016851rad, update time=0.024812s delay=0.001000s
[rgbd_odometry-5] [INFO] [1744872634.301816972] [rtabmap.rgbd_odometry]: Odom: quality=33, std dev=0.008166m|0.021630rad, update time=0.027020s delay=-0.066000s
[rgbd_odometry-5] [INFO] [1744872634.333610516] [rtabmap.rgbd_odometry]: Odom: quality=39, std dev=0.005816m|0.017144rad, update time=0.025094s delay=0.000000s
[rgbd_odometry-5] [INFO] [1744872635.371410558] [rtabmap.rgbd_odometry]: Odom: quality=22, std dev=0.016816m|0.023616rad, update time=0.021368s delay=-0.041000s
[rgbd_odometry-5] [INFO] [1744872635.930865637] [rtabmap.rgbd_odometry]: Odom: quality=22, std dev=0.009660m|0.024246rad, update time=0.023191s delay=0.001000s
[rtabmap-6] [INFO] [1744872635.976525611] [rtabmap.rtabmap]: rtabmap (34): Rate=1.00s, Limit=0.000s, Conversion=0.0016s, RTAB-Map=0.0427s, Maps update=0.0000s pub=0.0008s delay=0.0010s (local map=7, WM=7)
[rgbd_odometry-5] [INFO] [1744872636.136201731] [rtabmap.rgbd_odometry]: Odom: quality=27, std dev=0.008007m|0.021909rad, update time=0.027080s delay=0.001000s
[rgbd_odometry-5] [INFO] [1744872636.532288263] [rtabmap.rgbd_odometry]: Odom: quality=36, std dev=0.005077m|0.019480rad, update time=0.023077s delay=0.001000s
[rgbd_odometry-5] [INFO] [1744872636.600093341] [rtabmap.rgbd_odometry]: Odom: quality=29, std dev=0.008355m|0.022563rad, update time=0.024139s delay=-0.067000s
[rgbd_odometry-5] [INFO] [1744872636.630765469] [rtabmap.rgbd_odometry]: Odom: quality=28, std dev=0.007086m|0.022437rad, update time=0.022992s delay=0.001000s
[rgbd_odometry-5] [INFO] [1744872636.664386584] [rtabmap.rgbd_odometry]: Odom: quality=45, std dev=0.003503m|0.016214rad, update time=0.022625s delay=-0.032000s
[rgbd_odometry-5] [INFO] [1744872636.999351368] [rtabmap.rgbd_odometry]: Odom: quality=26, std dev=0.015237m|0.018649rad, update time=0.023620s delay=-0.066000s
[rgbd_odometry-5] [INFO] [1744872637.032642122] [rtabmap.rgbd_odometry]: Odom: quality=29, std dev=0.011909m|0.017423rad, update time=0.023828s delay=0.001000s
[rgbd_odometry-5] [INFO] [1744872637.098563751] [rtabmap.rgbd_odometry]: Odom: quality=32, std dev=0.012840m|0.022044rad, update time=0.022945s delay=-0.066000s
[rgbd_odometry-5] [INFO] [1744872637.200531550] [rtabmap.rgbd_odometry]: Odom: quality=34, std dev=0.005844m|0.021630rad, update time=0.024468s delay=-0.066000s
[rgbd_odometry-5] [INFO] [1744872638.064111328] [rtabmap.rgbd_odometry]: Odom: quality=21, std dev=0.004282m|0.011465rad, update time=0.022443s delay=-0.032000s
[rgbd_odometry-5] [INFO] [1744872638.133011721] [rtabmap.rgbd_odometry]: Odom: quality=25, std dev=0.007721m|0.021036rad, update time=0.022577s delay=0.001000s
[rgbd_odometry-5] [INFO] [1744872638.200888791] [rtabmap.rgbd_odometry]: Odom: quality=27, std dev=0.003008m|0.016851rad, update time=0.023419s delay=-0.067000s
[rgbd_odometry-5] [INFO] [1744872638.464396867] [rtabmap.rgbd_odometry]: Odom: quality=31, std dev=0.008387m|0.021036rad, update time=0.023124s delay=-0.032000s
[rgbd_odometry-5] [INFO] [1744872638.498337157] [rtabmap.rgbd_odometry]: Odom: quality=42, std dev=0.004575m|0.016214rad, update time=0.022980s delay=-0.066000s
[rgbd_odometry-5] [INFO] [1744872638.535193248] [rtabmap.rgbd_odometry]: Odom: quality=38, std dev=0.008070m|0.015865rad, update time=0.026786s delay=0.001000s
[rgbd_odometry-5] [INFO] [1744872638.565963742] [rtabmap.rgbd_odometry]: Odom: quality=35, std dev=0.006762m|0.022044rad, update time=0.023507s delay=-0.032000s
[rgbd_odometry-5] [INFO] [1744872638.600166050] [rtabmap.rgbd_odometry]: Odom: quality=35, std dev=0.006172m|0.019078rad, update time=0.023304s delay=-0.067000s
[rgbd_odometry-5] [INFO] [1744872638.632667165] [rtabmap.rgbd_odometry]: Odom: quality=36, std dev=0.004955m|0.019480rad, update time=0.023374s delay=0.001000s
[rgbd_odometry-5] [INFO] [1744872638.867144111] [rtabmap.rgbd_odometry]: Odom: quality=25, std dev=0.016543m|0.020216rad, update time=0.024219s delay=-0.032000s
[rgbd_odometry-5] [INFO] [1744872638.900887645] [rtabmap.rgbd_odometry]: Odom: quality=29, std dev=0.004800m|0.016214rad, update time=0.022794s delay=-0.066000s
[rgbd_odometry-5] [ WARN] (2025-04-17 15:50:39.529) OdometryF2M.cpp:569::computeTransform() Registration failed: "Too low inliers after bundle adjustment: 15<20" (guess=xyz=0.050311,-0.055664,0.052967 rpy=-0.017370,0.014889,0.020771)
[rgbd_odometry-5] [ WARN] (2025-04-17 15:50:39.530) OdometryF2M.cpp:317::computeTransform() Failed to find a transformation with the provided guess (xyz=0.050311,-0.055664,0.052967 rpy=-0.017370,0.014889,0.020771), trying again without a guess.
[rgbd_odometry-5] [ WARN] (2025-04-17 15:50:39.554) OdometryF2M.cpp:559::computeTransform() Trial with no guess still fail.
[rgbd_odometry-5] [ WARN] (2025-04-17 15:50:39.554) OdometryF2M.cpp:569::computeTransform() Registration failed: "Not enough inliers 0/20 (matches=51) between -1 and 249" (guess=xyz=0.050311,-0.055664,0.052967 rpy=-0.017370,0.014889,0.020771)
[rgbd_odometry-5] [INFO] [1744872639.555071704] [rtabmap.rgbd_odometry]: Odom: quality=0, std dev=0.000000m|0.000000rad, update time=0.045957s delay=0.001000s
[rtabmap-6] [ERROR] (2025-04-17 15:50:39.580) Rtabmap.cpp:1376::process() RGB-D SLAM mode is enabled, memory is incremental but no odometry is provided. Image 0 is ignored!
[rtabmap-6] [INFO] [1744872639.580345775] [rtabmap.rtabmap]: rtabmap (34): Rate=1.00s, Limit=0.000s, Conversion=0.0022s, RTAB-Map=0.0004s, Maps update=0.0000s pub=0.0000s delay=-0.0670s (local map=7, WM=7)
[rgbd_odometry-5] [ WARN] (2025-04-17 15:50:39.605) OdometryF2M.cpp:565::computeTransform() Registration failed: "Not enough inliers 9/20 (matches=60) between -1 and 250"
[rgbd_odometry-5] [INFO] [1744872639.605805520] [rtabmap.rgbd_odometry]: Odom: quality=9, std dev=0.000000m|0.000000rad, update time=0.028450s delay=0.033000s
[rgbd_odometry-5] [ WARN] (2025-04-17 15:50:40.639) OdometryF2M.cpp:565::computeTransform() Registration failed: "Not enough inliers 0/20 (matches=60) between -1 and 251"
[rgbd_odometry-5] [INFO] [1744872640.639859870] [rtabmap.rgbd_odometry]: Odom: quality=0, std dev=0.000000m|0.000000rad, update time=0.030711s delay=0.001000s
[rgbd_odometry-5] [ WARN] (2025-04-17 15:50:40.736) OdometryF2M.cpp:565::computeTransform() Registration failed: "Not enough inliers 0/20 (matches=59) between -1 and 252"
[rgbd_odometry-5] [INFO] [1744872640.736439263] [rtabmap.rgbd_odometry]: Odom: quality=0, std dev=0.000000m|0.000000rad, update time=0.026927s delay=0.001000s
[rgbd_odometry-5] [ WARN] (2025-04-17 15:50:40.837) OdometryF2M.cpp:565::computeTransform() Registration failed: "Not enough inliers 0/20 (matches=49) between -1 and 253"
[rgbd_odometry-5] [INFO] [1744872640.837781000] [rtabmap.rgbd_odometry]: Odom: quality=0, std dev=0.000000m|0.000000rad, update time=0.028098s delay=0.001000s
[rgbd_odometry-5] [ WARN] (2025-04-17 15:50:41.237) OdometryF2M.cpp:565::computeTransform() Registration failed: "Not enough inliers 0/20 (matches=49) between -1 and 254"
[rgbd_odometry-5] [INFO] [1744872641.238097512] [rtabmap.rgbd_odometry]: Odom: quality=0, std dev=0.000000m|0.000000rad, update time=0.026814s delay=0.001000s
[rtabmap-6] [ERROR] (2025-04-17 15:50:41.264) Rtabmap.cpp:1376::process() RGB-D SLAM mode is enabled, memory is incremental but no odometry is provided. Image 0 is ignored!
[rtabmap-6] [INFO] [1744872641.264164177] [rtabmap.rtabmap]: rtabmap (34): Rate=1.00s, Limit=0.000s, Conversion=0.0028s, RTAB-Map=0.0001s, Maps update=0.0000s pub=0.0000s delay=0.6010s (local map=7, WM=7)
[rgbd_odometry-5] [ WARN] (2025-04-17 15:50:41.302) OdometryF2M.cpp:565::computeTransform() Registration failed: "Not enough inliers 0/20 (matches=50) between -1 and 255"
[rgbd_odometry-5] [INFO] [1744872641.303396403] [rtabmap.rgbd_odometry]: Odom: quality=0, std dev=0.000000m|0.000000rad, update time=0.026399s delay=-0.066000s
[rgbd_odometry-5] [ WARN] (2025-04-17 15:50:41.903) OdometryF2M.cpp:565::computeTransform() Registration failed: "Not enough inliers 0/20 (matches=50) between -1 and 256"
[rgbd_odometry-5] [INFO] [1744872641.903867090] [rtabmap.rgbd_odometry]: Odom: quality=0, std dev=0.000000m|0.000000rad, update time=0.027183s delay=-0.066000s
[rgbd_odometry-5] [ WARN] (2025-04-17 15:50:43.671) OdometryF2M.cpp:565::computeTransform() Registration failed: "Not enough inliers 0/20 (matches=46) between -1 and 257"
[rgbd_odometry-5] [INFO] [1744872643.671500356] [rtabmap.rgbd_odometry]: Odom: quality=0, std dev=0.000000m|0.000000rad, update time=0.027196s delay=-0.032000s
[rgbd_odometry-5] [ WARN] (2025-04-17 15:50:43.805) OdometryF2M.cpp:565::computeTransform() Registration failed: "Not enough inliers 11/20 (matches=60) between -1 and 258"
[rgbd_odometry-5] [INFO] [1744872643.805657783] [rtabmap.rgbd_odometry]: Odom: quality=11, std dev=0.000000m|0.000000rad, update time=0.027326s delay=-0.066000s
[rgbd_odometry-5] [ WARN] (2025-04-17 15:50:43.838) OdometryF2M.cpp:565::computeTransform() Registration failed: "Not enough inliers 0/20 (matches=53) between -1 and 259"
[rgbd_odometry-5] [INFO] [1744872643.838943325] [rtabmap.rgbd_odometry]: Odom: quality=0, std dev=0.000000m|0.000000rad, update time=0.027404s delay=0.001000s
[rgbd_odometry-5] [ WARN] (2025-04-17 15:50:43.905) OdometryF2M.cpp:565::computeTransform() Registration failed: "Not enough inliers 0/20 (matches=48) between -1 and 260"
[rgbd_odometry-5] [INFO] [1744872643.905413149] [rtabmap.rgbd_odometry]: Odom: quality=0, std dev=0.000000m|0.000000rad, update time=0.027675s delay=-0.066000s
[rgbd_odometry-5] [ WARN] (2025-04-17 15:50:44.070) OdometryF2M.cpp:565::computeTransform() Registration failed: "Not enough inliers 0/20 (matches=46) between -1 and 261"
[rgbd_odometry-5] [INFO] [1744872644.070916169] [rtabmap.rgbd_odometry]: Odom: quality=0, std dev=0.000000m|0.000000rad, update time=0.027194s delay=-0.032000s
[rgbd_odometry-5] [ WARN] (2025-04-17 15:50:44.272) OdometryF2M.cpp:565::computeTransform() Registration failed: "Not enough inliers 7/20 (matches=60) between -1 and 262"
[rgbd_odometry-5] [INFO] [1744872644.273339129] [rtabmap.rgbd_odometry]: Odom: quality=7, std dev=0.000000m|0.000000rad, update time=0.027646s delay=-0.034000s
[rgbd_odometry-5] [ WARN] (2025-04-17 15:50:44.306) OdometryF2M.cpp:565::computeTransform() Registration failed: "Not enough inliers 0/20 (matches=47) between -1 and 263"
[rgbd_odometry-5] [INFO] [1744872644.306954467] [rtabmap.rgbd_odometry]: Odom: quality=0, std dev=0.000000m|0.000000rad, update time=0.027441s delay=0.033000s
[rgbd_odometry-5] [ WARN] (2025-04-17 15:50:44.338) OdometryF2M.cpp:565::computeTransform() Registration failed: "Not enough inliers 0/20 (matches=46) between -1 and 264"
[rgbd_odometry-5] [INFO] [1744872644.338772006] [rtabmap.rgbd_odometry]: Odom: quality=0, std dev=0.000000m|0.000000rad, update time=0.027027s delay=0.000000s
[rgbd_odometry-5] [ WARN] (2025-04-17 15:50:44.370) OdometryF2M.cpp:565::computeTransform() Registration failed: "Not enough inliers 0/20 (matches=59) between -1 and 265"
[rgbd_odometry-5] [INFO] [1744872644.371161078] [rtabmap.rgbd_odometry]: Odom: quality=0, std dev=0.000000m|0.000000rad, update time=0.026923s delay=-0.032000s
[rtabmap-6] [ERROR] (2025-04-17 15:50:44.500) Rtabmap.cpp:1376::process() RGB-D SLAM mode is enabled, memory is incremental but no odometry is provided. Image 0 is ignored!
[rtabmap-6] [INFO] [1744872644.500381357] [rtabmap.rtabmap]: rtabmap (34): Rate=1.00s, Limit=0.000s, Conversion=0.0027s, RTAB-Map=0.0001s, Maps update=0.0000s pub=0.0000s delay=0.6010s (local map=7, WM=7)
[rgbd_odometry-5] [ WARN] (2025-04-17 15:50:44.738) OdometryF2M.cpp:565::computeTransform() Registration failed: "Not enough inliers 0/20 (matches=56) between -1 and 266"
[rgbd_odometry-5] [INFO] [1744872644.738456277] [rtabmap.rgbd_odometry]: Odom: quality=0, std dev=0.000000m|0.000000rad, update time=0.027487s delay=0.001000s
[rgbd_odometry-5] [ WARN] (2025-04-17 15:50:44.770) OdometryF2M.cpp:565::computeTransform() Registration failed: "Not enough inliers 0/20 (matches=57) between -1 and 267"
[rgbd_odometry-5] [INFO] [1744872644.770910403] [rtabmap.rgbd_odometry]: Odom: quality=0, std dev=0.000000m|0.000000rad, update time=0.027120s delay=-0.032000s
[rgbd_odometry-5] [ WARN] (2025-04-17 15:50:44.805) OdometryF2M.cpp:565::computeTransform() Registration failed: "Not enough inliers 0/20 (matches=52) between -1 and 268"
[rgbd_odometry-5] [INFO] [1744872644.805938885] [rtabmap.rgbd_odometry]: Odom: quality=0, std dev=0.000000m|0.000000rad, update time=0.027227s delay=-0.066000s
[rgbd_odometry-5] [ WARN] (2025-04-17 15:50:44.870) OdometryF2M.cpp:565::computeTransform() Registration failed: "Not enough inliers 0/20 (matches=38) between -1 and 269"
[rgbd_odometry-5] [INFO] [1744872644.870699828] [rtabmap.rgbd_odometry]: Odom: quality=0, std dev=0.000000m|0.000000rad, update time=0.026799s delay=-0.032000s
[rgbd_odometry-5] [ WARN] (2025-04-17 15:50:44.904) OdometryF2M.cpp:565::computeTransform() Registration failed: "Not enough inliers 0/20 (matches=42) between -1 and 270"
[rgbd_odometry-5] [INFO] [1744872644.905060950] [rtabmap.rgbd_odometry]: Odom: quality=0, std dev=0.000000m|0.000000rad, update time=0.026897s delay=-0.066000s
[rgbd_odometry-5] [ WARN] (2025-04-17 15:50:44.938) OdometryF2M.cpp:565::computeTransform() Registration failed: "Not enough inliers 0/20 (matches=48) between -1 and 271"
[rgbd_odometry-5] [INFO] [1744872644.938669442] [rtabmap.rgbd_odometry]: Odom: quality=0, std dev=0.000000m|0.000000rad, update time=0.027400s delay=0.001000s
[rgbd_odometry-5] [ WARN] (2025-04-17 15:50:45.306) OdometryF2M.cpp:565::computeTransform() Registration failed: "Not enough inliers 0/20 (matches=47) between -1 and 272"
[rgbd_odometry-5] [INFO] [1744872645.307308586] [rtabmap.rgbd_odometry]: Odom: quality=0, std dev=0.000000m|0.000000rad, update time=0.026965s delay=0.034000s
[rgbd_odometry-5] [ WARN] (2025-04-17 15:50:45.408) OdometryF2M.cpp:565::computeTransform() Registration failed: "Not enough inliers 0/20 (matches=39) between -1 and 273"
[rgbd_odometry-5] [INFO] [1744872645.409049462] [rtabmap.rgbd_odometry]: Odom: quality=0, std dev=0.000000m|0.000000rad, update time=0.028503s delay=0.034000s
[rgbd_odometry-5] [ WARN] (2025-04-17 15:50:45.504) OdometryF2M.cpp:565::computeTransform() Registration failed: "Not enough inliers 0/20 (matches=46) between -1 and 274"
[rgbd_odometry-5] [INFO] [1744872645.505168849] [rtabmap.rgbd_odometry]: Odom: quality=0, std dev=0.000000m|0.000000rad, update time=0.027156s delay=-0.066000s
[rgbd_odometry-5] [ WARN] (2025-04-17 15:50:45.570) OdometryF2M.cpp:565::computeTransform() Registration failed: "Not enough inliers 0/20 (matches=55) between -1 and 275"
[rgbd_odometry-5] [INFO] [1744872645.570542177] [rtabmap.rgbd_odometry]: Odom: quality=0, std dev=0.000000m|0.000000rad, update time=0.027182s delay=-0.032000s
[rgbd_odometry-5] [ WARN] (2025-04-17 15:50:45.639) OdometryF2M.cpp:565::computeTransform() Registration failed: "Not enough inliers 0/20 (matches=59) between -1 and 276"
[rgbd_odometry-5] [INFO] [1744872645.639716026] [rtabmap.rgbd_odometry]: Odom: quality=0, std dev=0.000000m|0.000000rad, update time=0.026934s delay=0.001000s
[rgbd_odometry-5] [ WARN] (2025-04-17 15:50:46.039) OdometryF2M.cpp:565::computeTransform() Registration failed: "Not enough inliers 0/20 (matches=40) between -1 and 277"
[rgbd_odometry-5] [INFO] [1744872646.039897407] [rtabmap.rgbd_odometry]: Odom: quality=0, std dev=0.000000m|0.000000rad, update time=0.026411s delay=0.000000s
[rgbd_odometry-5] [ WARN] (2025-04-17 15:50:46.104) OdometryF2M.cpp:565::computeTransform() Registration failed: "Not enough inliers 0/20 (matches=44) between -1 and 278"
[rgbd_odometry-5] [INFO] [1744872646.105395014] [rtabmap.rgbd_odometry]: Odom: quality=0, std dev=0.000000m|0.000000rad, update time=0.026635s delay=-0.066000s
[rgbd_odometry-5] [ WARN] (2025-04-17 15:50:46.238) OdometryF2M.cpp:565::computeTransform() Registration failed: "Not enough inliers 0/20 (matches=37) between -1 and 279"
[rgbd_odometry-5] [INFO] [1744872646.238591552] [rtabmap.rgbd_odometry]: Odom: quality=0, std dev=0.000000m|0.000000rad, update time=0.026371s delay=0.000000s
[rgbd_odometry-5] [ WARN] (2025-04-17 15:50:46.337) OdometryF2M.cpp:565::computeTransform() Registration failed: "Not enough inliers 9/20 (matches=52) between -1 and 280"
[rgbd_odometry-5] [INFO] [1744872646.337734516] [rtabmap.rgbd_odometry]: Odom: quality=9, std dev=0.000000m|0.000000rad, update time=0.026669s delay=0.001000s
[rgbd_odometry-5] [ WARN] (2025-04-17 15:50:46.437) OdometryF2M.cpp:565::computeTransform() Registration failed: "Not enough inliers 0/20 (matches=47) between -1 and 281"
[rgbd_odometry-5] [INFO] [1744872646.438271463] [rtabmap.rgbd_odometry]: Odom: quality=0, std dev=0.000000m|0.000000rad, update time=0.027320s delay=0.001000s
[rgbd_odometry-5] [ WARN] (2025-04-17 15:50:46.505) OdometryF2M.cpp:565::computeTransform() Registration failed: "Not enough inliers 0/20 (matches=50) between -1 and 282"
[rgbd_odometry-5] [INFO] [1744872646.506275385] [rtabmap.rgbd_odometry]: Odom: quality=0, std dev=0.000000m|0.000000rad, update time=0.028170s delay=-0.066000s
[rgbd_odometry-5] [ WARN] (2025-04-17 15:50:46.637) OdometryF2M.cpp:565::computeTransform() Registration failed: "Not enough inliers 8/20 (matches=55) between -1 and 283"
[rgbd_odometry-5] [INFO] [1744872646.638236724] [rtabmap.rgbd_odometry]: Odom: quality=8, std dev=0.000000m|0.000000rad, update time=0.027102s delay=0.001000s
[rgbd_odometry-5] [ WARN] (2025-04-17 15:50:46.905) OdometryF2M.cpp:565::computeTransform() Registration failed: "Not enough inliers 0/20 (matches=52) between -1 and 284"
[rgbd_odometry-5] [INFO] [1744872646.905969790] [rtabmap.rgbd_odometry]: Odom: quality=0, std dev=0.000000m|0.000000rad, update time=0.027314s delay=-0.066000s
[rtabmap-6] [ERROR] (2025-04-17 15:50:47.402) Rtabmap.cpp:1376::process() RGB-D SLAM mode is enabled, memory is incremental but no odometry is provided. Image 0 is ignored!
[rtabmap-6] [INFO] [1744872647.402893878] [rtabmap.rtabmap]: rtabmap (34): Rate=1.00s, Limit=0.000s, Conversion=0.0020s, RTAB-Map=0.0001s, Maps update=0.0000s pub=0.0000s delay=1.3000s (local map=7, WM=7)
[rgbd_odometry-5] [ WARN] (2025-04-17 15:50:47.706) OdometryF2M.cpp:565::computeTransform() Registration failed: "Not enough inliers 6/20 (matches=37) between -1 and 285"
[rgbd_odometry-5] [INFO] [1744872647.706804844] [rtabmap.rgbd_odometry]: Odom: quality=6, std dev=0.000000m|0.000000rad, update time=0.028358s delay=-0.066000s
[rtabmap-6] [ERROR] (2025-04-17 15:50:47.708) Rtabmap.cpp:1376::process() RGB-D SLAM mode is enabled, memory is incremental but no odometry is provided. Image 0 is ignored!
[rtabmap-6] [INFO] [1744872647.708472836] [rtabmap.rtabmap]: rtabmap (34): Rate=1.00s, Limit=0.000s, Conversion=0.0013s, RTAB-Map=0.0001s, Maps update=0.0000s pub=0.0000s delay=0.3010s (local map=7, WM=7)
[rgbd_odometry-5] [ WARN] (2025-04-17 15:50:47.752) OdometryF2M.cpp:565::computeTransform() Registration failed: "Not enough inliers 0/20 (matches=48) between -1 and 286"
[rgbd_odometry-5] [INFO] [1744872647.753399213] [rtabmap.rgbd_odometry]: Odom: quality=0, std dev=0.000000m|0.000000rad, update time=0.039933s delay=0.000000s
[rgbd_odometry-5] [ WARN] (2025-04-17 15:50:47.911) OdometryF2M.cpp:565::computeTransform() Registration failed: "Not enough inliers 7/20 (matches=54) between -1 and 287"
[rgbd_odometry-5] [INFO] [1744872647.911831686] [rtabmap.rgbd_odometry]: Odom: quality=7, std dev=0.000000m|0.000000rad, update time=0.030907s delay=0.033000s
[rgbd_odometry-5] [ WARN] (2025-04-17 15:50:47.940) OdometryF2M.cpp:565::computeTransform() Registration failed: "Not enough inliers 0/20 (matches=58) between -1 and 288"
[rgbd_odometry-5] [INFO] [1744872647.941381651] [rtabmap.rgbd_odometry]: Odom: quality=0, std dev=0.000000m|0.000000rad, update time=0.026831s delay=-0.002000s
[rgbd_odometry-5] [ WARN] (2025-04-17 15:50:48.182) OdometryF2M.cpp:565::computeTransform() Registration failed: "Not enough inliers 0/20 (matches=56) between -1 and 289"
[rgbd_odometry-5] [INFO] [1744872648.183037226] [rtabmap.rgbd_odometry]: Odom: quality=0, std dev=0.000000m|0.000000rad, update time=0.036246s delay=-0.033000s
[rgbd_odometry-5] [ WARN] (2025-04-17 15:50:48.339) OdometryF2M.cpp:565::computeTransform() Registration failed: "Not enough inliers 6/20 (matches=59) between -1 and 290"
[rgbd_odometry-5] [INFO] [1744872648.340106995] [rtabmap.rgbd_odometry]: Odom: quality=6, std dev=0.000000m|0.000000rad, update time=0.028853s delay=0.001000s
[rgbd_odometry-5] [ WARN] (2025-04-17 15:50:48.405) OdometryF2M.cpp:565::computeTransform() Registration failed: "Not enough inliers 0/20 (matches=44) between -1 and 291"
[rgbd_odometry-5] [INFO] [1744872648.405949515] [rtabmap.rgbd_odometry]: Odom: quality=0, std dev=0.000000m|0.000000rad, update time=0.027933s delay=-0.066000s
[rtabmap-6] [ERROR] (2025-04-17 15:50:48.489) Rtabmap.cpp:1376::process() RGB-D SLAM mode is enabled, memory is incremental but no odometry is provided. Image 0 is ignored!
[rtabmap-6] [INFO] [1744872648.489909899] [rtabmap.rtabmap]: rtabmap (34): Rate=1.00s, Limit=0.000s, Conversion=0.0026s, RTAB-Map=0.0001s, Maps update=0.0000s pub=0.0000s delay=-0.0660s (local map=7, WM=7)
[rgbd_odometry-5] [ WARN] (2025-04-17 15:50:49.538) OdometryF2M.cpp:565::computeTransform() Registration failed: "Not enough inliers 0/20 (matches=44) between -1 and 292"
[rgbd_odometry-5] [INFO] [1744872649.538584368] [rtabmap.rgbd_odometry]: Odom: quality=0, std dev=0.000000m|0.000000rad, update time=0.027425s delay=0.001000s
[rgbd_odometry-5] [ WARN] (2025-04-17 15:50:49.641) OdometryF2M.cpp:565::computeTransform() Registration failed: "Not enough inliers 0/20 (matches=44) between -1 and 293"
[rgbd_odometry-5] [INFO] [1744872649.641611063] [rtabmap.rgbd_odometry]: Odom: quality=0, std dev=0.000000m|0.000000rad, update time=0.028891s delay=0.001000s
[rtabmap-6] [ERROR] (2025-04-17 15:50:49.666) Rtabmap.cpp:1376::process() RGB-D SLAM mode is enabled, memory is incremental but no odometry is provided. Image 0 is ignored!
[rtabmap-6] [INFO] [1744872649.666336057] [rtabmap.rtabmap]: rtabmap (34): Rate=1.00s, Limit=0.000s, Conversion=0.0024s, RTAB-Map=0.0001s, Maps update=0.0000s pub=0.0000s delay=0.1010s (local map=7, WM=7)
[rgbd_odometry-5] [ WARN] (2025-04-17 15:50:49.671) OdometryF2M.cpp:565::computeTransform() Registration failed: "Not enough inliers 0/20 (matches=48) between -1 and 294"
[rgbd_odometry-5] [INFO] [1744872649.672043987] [rtabmap.rgbd_odometry]: Odom: quality=0, std dev=0.000000m|0.000000rad, update time=0.027252s delay=-0.032000s
[rgbd_odometry-5] [ WARN] (2025-04-17 15:50:49.705) OdometryF2M.cpp:565::computeTransform() Registration failed: "Not enough inliers 0/20 (matches=42) between -1 and 295"
[rgbd_odometry-5] [INFO] [1744872649.706165335] [rtabmap.rgbd_odometry]: Odom: quality=0, std dev=0.000000m|0.000000rad, update time=0.026668s delay=-0.066000s
[rgbd_odometry-5] [ WARN] (2025-04-17 15:50:49.771) OdometryF2M.cpp:565::computeTransform() Registration failed: "Not enough inliers 0/20 (matches=55) between -1 and 296"
[rgbd_odometry-5] [INFO] [1744872649.771777456] [rtabmap.rgbd_odometry]: Odom: quality=0, std dev=0.000000m|0.000000rad, update time=0.026817s delay=-0.032000s
[rgbd_odometry-5] [ WARN] (2025-04-17 15:50:49.839) OdometryF2M.cpp:565::computeTransform() Registration failed: "Not enough inliers 0/20 (matches=45) between -1 and 297"
[rgbd_odometry-5] [INFO] [1744872649.839556671] [rtabmap.rgbd_odometry]: Odom: quality=0, std dev=0.000000m|0.000000rad, update time=0.026694s delay=0.001000s
[rgbd_odometry-5] [ WARN] (2025-04-17 15:50:50.107) OdometryF2M.cpp:565::computeTransform() Registration failed: "Not enough inliers 0/20 (matches=49) between -1 and 298"
[rgbd_odometry-5] [INFO] [1744872650.107806543] [rtabmap.rgbd_odometry]: Odom: quality=0, std dev=0.000000m|0.000000rad, update time=0.027759s delay=-0.066000s
[rgbd_odometry-5] [ WARN] (2025-04-17 15:50:50.175) OdometryF2M.cpp:565::computeTransform() Registration failed: "Not enough inliers 0/20 (matches=45) between -1 and 299"
[rgbd_odometry-5] [INFO] [1744872650.175642185] [rtabmap.rgbd_odometry]: Odom: quality=0, std dev=0.000000m|0.000000rad, update time=0.027045s delay=-0.034000s
^C[WARNING] [launch]: user interrupted with ctrl-c (SIGINT)
[rgbd_odometry-5] [INFO] [1744872650.191859005] [rclcpp]: signal_handler(signum=2)
[point_cloud_xyzrgb-8] [INFO] [1744872650.191858989] [rclcpp]: signal_handler(signum=2)
[point_cloud_xyzrgb-7] [INFO] [1744872650.191859397] [rclcpp]: signal_handler(signum=2)
[rgbd_sync-4] [INFO] [1744872650.191862911] [rclcpp]: signal_handler(signum=2)
[rgbd_sync-3] [INFO] [1744872650.191862354] [rclcpp]: signal_handler(signum=2)
[rgbd_sync-2] [INFO] [1744872650.191864004] [rclcpp]: signal_handler(signum=2)
[point_cloud_xyzrgb-9] [INFO] [1744872650.191862652] [rclcpp]: signal_handler(signum=2)
[rviz2-1] [INFO] [1744872650.191867852] [rclcpp]: signal_handler(signum=2)
[rtabmap-6] [INFO] [1744872650.191891545] [rclcpp]: signal_handler(signum=2)
[rtabmap-6] [INFO] [1744872650.242179879] [rtabmap.rtabmap]: Parameters are not saved (No configuration file provided...)
[rtabmap-6] rtabmap: Saving database/long-term memory... (located at /home/ggyu/.ros/rtabmap.db)
[INFO] [rgbd_sync-3]: process has finished cleanly [pid 39350]
[INFO] [point_cloud_xyzrgb-7]: process has finished cleanly [pid 39358]
[INFO] [rgbd_sync-4]: process has finished cleanly [pid 39352]
[INFO] [point_cloud_xyzrgb-9]: process has finished cleanly [pid 39362]
[INFO] [point_cloud_xyzrgb-8]: process has finished cleanly [pid 39360]
[INFO] [rgbd_sync-2]: process has finished cleanly [pid 39348]
[INFO] [rgbd_odometry-5]: process has finished cleanly [pid 39354]
[INFO] [rviz2-1]: process has finished cleanly [pid 39346]
[rtabmap-6] rtabmap: Saving database/long-term memory...done! (located at /home/ggyu/.ros/rtabmap.db, 59 MB)
[INFO] [rtabmap-6]: process has finished cleanly [pid 39356]
Reply | Threaded
Open this post in threaded view
|

Re: RTABMAP Multi RGBD Camera Error

GGYU
This post was updated on .
스크린캐스트_04-17-2025_04-09-13_PM.mp4

This video demonstrates the error that occurs during the demo.
Reply | Threaded
Open this post in threaded view
|

Re: RTABMAP Multi RGBD Camera Error

GGYU
# Program dedicated to launch 3 realsense cameras. D405 were tested!
# (Please note that this program can manage maximum 4 depth cameras)

# Program modified by: Adrian Ricardez (https://github.com/adricort)
# Date: 07.07.2023
# Deutsches Zentrum für Luft- und Raumfahrt

# Requirements:

# Be sure that you did the build on your rtabmap workspace with the -DRTABMAP_SYNC_MULTI_RGBD=ON parameter.

# Launching the 3 realsense cameras (change your serial numbers):
#   $ ros2 launch realsense2_camera rs_launch.py pointcloud.enable:=true serial_no:=_128422271521
#   $ ros2 launch realsense2_camera rs_multi_camera_launch.py pointcloud.enable1:=true pointcloud.enable2:=true serial_no1:=_128422272518 serial_no2:=_128422272647

# Running the static publishers depending on the position of your cameras:
#   $ ros2 run tf2_ros static_transform_publisher --x 0.039 --y 0 --z 0 --yaw 0 --pitch 0 --roll 0 --frame-id base_link --child-frame-id camera_link
#   $ ros2 run tf2_ros static_transform_publisher --x 0 --y 0 --z 0.02 --yaw 1.5708 --pitch -1.5708 --roll 0 --frame-id base_link --child-frame-id camera1_link
#   $ ros2 run tf2_ros static_transform_publisher --x 0 --y 0 --z -0.02 --yaw 1.5708 --pitch 1.5708 --roll 0 --frame-id base_link --child-frame-id camera2_link

#   $ ros2 launch rtabmap_examples rtabmap_D405x3.launch.py

# You should be able to visualize now, with the right rviz config, the camera's SLAM
# Have fun!

import os
import launch
import launch_ros
from ament_index_python.packages import get_package_share_directory
         
def generate_launch_description():    

    config_rviz = os.path.join(
            get_package_share_directory('rtabmap_examples'), 'config', 'slam_D405x3_config.rviz')        

    rviz_node = launch_ros.actions.Node(
        package='rviz2', executable='rviz2', output='screen',
        arguments=[["-d"], [config_rviz]]
    )

    rgbd_sync1_node = launch_ros.actions.Node(
        package='rtabmap_sync', executable='rgbd_sync', name='rgbd_sync1', output="screen",
        parameters=[{
            "approx_sync": True,
            "approx_sync_max_interval": 0.05,
            "use_sim_time": True
            }],
        remappings=[
            ("rgb/image", '/camera/front/front_rgb_camera/image_raw'),
            ("depth/image", '/camera/front/depth/front_depth_camera/depth/image_raw'),
            ("rgb/camera_info", '/camera/front/front_rgb_camera/camera_info'),
            ("rgbd_image", 'rgbd_image')],
        namespace='camera_front'
    )
    rgbd_sync2_node = launch_ros.actions.Node(
        package='rtabmap_sync', executable='rgbd_sync', name='rgbd_sync2', output="screen",
        parameters=[{
            "approx_sync": True,
            "approx_sync_max_interval": 0.05,
            "use_sim_time": True
            }],
        remappings=[
            ("rgb/image", '/camera/left/left_rgb_camera/image_raw'),
            ("depth/image", '/camera/left/depth/left_depth_camera/depth/image_raw'),
            ("rgb/camera_info", '/camera/left/left_rgb_camera/camera_info'),
            ("rgbd_image", 'rgbd_image')],
        namespace='camera_left'
    )    
    rgbd_sync3_node = launch_ros.actions.Node(
        package='rtabmap_sync', executable='rgbd_sync', name='rgbd_sync3', output="screen",
        parameters=[{
            "approx_sync": True,
            "approx_sync_max_interval": 0.05,
            "use_sim_time": True
            }],
        remappings=[
            ("rgb/image", '/camera/right/right_rgb_camera/image_raw'),
            ("depth/image", '/camera/right/depth/right_depth_camera/depth/image_raw'),
            ("rgb/camera_info", '/camera/right/right_rgb_camera/camera_info'),
            ("rgbd_image", 'rgbd_image')],
        namespace='camera_right'
    )
           
    # RGB-D odometry
    rgbd_odometry_node = launch_ros.actions.Node(
        package='rtabmap_odom', executable='rgbd_odometry', output="screen",
        parameters=[{
            "frame_id": 'base_link',
            "odom_frame_id": 'odom',
            "publish_tf": True,
            "approx_sync": True,
            "approx_sync_max_interval": 0.05,
            "subscribe_rgbd": True,
            "use_sim_time": True
            }],
        remappings=[
            ("rgbd_image", '/camera_front/rgbd_image'),
            ("odom", 'odom')],
        arguments=["--delete_db_on_start", ''],
        prefix='',
        namespace='rtabmap'
    )

    # SLAM
    slam_node = launch_ros.actions.Node(
        package='rtabmap_slam', executable='rtabmap', output="screen",
        parameters=[{
            "rgbd_cameras":3,
            "subscribe_depth": True,
            "subscribe_rgbd": True,
            "subscribe_rgb": True,
            "subscribe_odom_info": True,
            "frame_id": 'base_link',
            "map_frame_id": 'map',
            "publish_tf": True,
            "database_path": '~/.ros/rtabmap.db',
            "approx_sync": True,
            "approx_sync_max_interval": 0.05,
            "Mem/IncrementalMemory": "true",
            "Mem/InitWMWithAllNodes": "true",
            "use_sim_time": True
        }],
        remappings=[
            ("rgbd_image0", '/camera_front/rgbd_image'),
            ("rgbd_image1", '/camera_left/rgbd_image'),
            ("rgbd_image2", '/camera_right/rgbd_image'),
            ("odom", 'odom')],
        arguments=["--delete_db_on_start"],
        prefix='',
        namespace='rtabmap'
    )

    voxelcloud1_node = launch_ros.actions.Node(
        package='rtabmap_util', executable='point_cloud_xyzrgb', name='point_cloud_xyzrgb1', output='screen',
        parameters=[{
            "approx_sync": True,
            "approx_sync_max_interval": 0.05,
            "use_sim_time": True
        }],
        remappings=[
            ("rgb/image", '/camera/front/front_rgb_camera/image_raw'),
            ("depth/image", '/camera/front/depth/front_depth_camera/depth/image_raw'),
            ("rgb/camera_info", '/camera/front/front_rgb_camera/camera_info'),
            ('rgbd_image', 'rgbd_image'),
            ('cloud', 'voxel_cloud1')]
    )

    voxelcloud2_node = launch_ros.actions.Node(
        package='rtabmap_util', executable='point_cloud_xyzrgb', name='point_cloud_xyzrgb2', output='screen',
        parameters=[{
            "approx_sync": True,
            "approx_sync_max_interval": 0.05,
            "use_sim_time": True
        }],
        remappings=[
            ("rgb/image", '/camera/left/left_rgb_camera/image_raw'),
            ("depth/image", '/camera/left/depth/left_depth_camera/depth/image_raw'),
            ("rgb/camera_info", '/camera/left/left_rgb_camera/camera_info'),
            ('rgbd_image', 'rgbd_image'),
            ('cloud', 'voxel_cloud2')]
    )
    voxelcloud3_node = launch_ros.actions.Node(
        package='rtabmap_util', executable='point_cloud_xyzrgb', name='point_cloud_xyzrgb3', output='screen',
        parameters=[{
            "approx_sync": True,
            "approx_sync_max_interval": 0.05,
            "use_sim_time": True
        }],
        remappings=[
            ("rgb/image", '/camera/right/right_rgb_camera/image_raw'),
            ("depth/image", '/camera/right/depth/right_depth_camera/depth/image_raw'),
            ("rgb/camera_info", '/camera/right/right_rgb_camera/camera_info'),
            ('rgbd_image', 'rgbd_image'),
            ('cloud', 'voxel_cloud3')]
    )  

    return launch.LaunchDescription(
        [
        rviz_node,
        rgbd_sync1_node,
        rgbd_sync2_node,
        rgbd_sync3_node,
        rgbd_odometry_node,
        slam_node,
        voxelcloud1_node,
        voxelcloud2_node,
        voxelcloud3_node,
        ]
    )


This is my D405x3 launch file.

* Build with Multi RGBD Camera ON

my Computer

i5 13600K
RTX 4070ti
ram 32gb

Thank you
Reply | Threaded
Open this post in threaded view
|

Re: RTABMAP Multi RGBD Camera Error

matlabbe
Administrator
VO gets lost by lack of features. Can you try a simulated environment with more texture, like the "house" world from turtlebot3 sim package.

Also, if you are doing multi-camera VSLAM, I strongly recommend to build rtabmap with OpenGV dependency (and g2o as well, but could be already be built with it by default).
Reply | Threaded
Open this post in threaded view
|

Re: RTABMAP Multi RGBD Camera Error

GGYU
❓ [Question]
I have successfully rebuilt RTAB-Map with OpenGV, and previous errors were resolved with noticeable performance improvements.
However, I’m now encountering new issues:

🚨 [Current Issues]
Velocity commands via teleop occasionally get dropped — possibly due to high computational load.

RViz drops messages with Message Filter dropping message errors, indicating that the message queue is full.

Misalignment between odometry (local map) and the generated global map — causes confusion in localization and visualization.

The RTAB-Map GUI (rtabmapviz) does not appear or launch — which makes it difficult to debug graph and loop closure status.

✅ [What I Want to Achieve]
I want to perform 2D grid-based mapping using LIDAR scan data (as in turtlebot3_sim_rgbd_scan demo),
while utilizing 3 RGB-D cameras solely for:

Detecting ArUco markers (for loop closure or localization refinement),

Extracting and matching visual features for visual loop closure optimization.

🔍 [My Question]
Is this hybrid approach possible with RTAB-Map?

If so, what is the recommended architecture or launch configuration to make this work?

In particular, I’d appreciate guidance on:

How to integrate scan-based mapping with RGB-D inputs only contributing to loop closures,

How to properly configure RTAB-Map to separate visual odometry and LIDAR-based mapping,

Best practices for handling high data load from multiple RGB-D cameras.

Thank you in advance for your help.
스크린캐스트_04-23-2025_07-37-29_PM.mp4
Reply | Threaded
Open this post in threaded view
|

Re: RTABMAP Multi RGBD Camera Error

GGYU
In reply to this post by matlabbe
[rviz2-1] [INFO] [1745404799.647027623] [rviz]: Message Filter dropping message: frame 'odom' at time 253.644 for reason 'discarding message because the queue is full'
[rgbd_odometry-5] [INFO] [1745404799.709290323] [rtabmap.rgbd_odometry]: Odom: quality=115, std dev=0.006356m|0.013634rad, update time=0.031149s delay=-0.044000s
[rviz2-1] [INFO] [1745404799.710246216] [rviz]: Message Filter dropping message: frame 'odom' at time 253.711 for reason 'discarding message because the queue is full'
[rgbd_odometry-5] [INFO] [1745404800.174654013] [rtabmap.rgbd_odometry]: Odom: quality=99, std dev=0.006059m|0.013634rad, update time=0.030085s delay=-0.011000s
[rviz2-1] [INFO] [1745404800.190439573] [rviz]: Message Filter dropping message: frame 'odom' at time 253.811 for reason 'discarding message because the queue is full'
[rgbd_odometry-5] [INFO] [1745404800.209370965] [rtabmap.rgbd_odometry]: Odom: quality=125, std dev=0.006304m|0.013634rad, update time=0.030643s delay=-0.044000s
[rviz2-1] [INFO] [1745404800.222304715] [rviz]: Message Filter dropping message: frame 'odom' at time 253.845 for reason 'discarding message because the queue is full'
[rgbd_odometry-5] [INFO] [1745404800.242288528] [rtabmap.rgbd_odometry]: Odom: quality=112, std dev=0.008541m|0.013634rad, update time=0.029957s delay=0.022000s
[rviz2-1] [INFO] [1745404800.255033879] [rviz]: Message Filter dropping message: frame 'odom' at time 253.911 for reason 'discarding message because the queue is full'
[rgbd_odometry-5] [INFO] [1745404800.743075841] [rtabmap.rgbd_odometry]: Odom: quality=100, std dev=0.006113m|0.014170rad, update time=0.032297s delay=0.022000s
[rviz2-1] [INFO] [1745404800.766588013] [rviz]: Message Filter dropping message: frame 'odom' at time 254.144 for reason 'discarding message because the queue is full'
[rgbd_odometry-5] [INFO] [1745404801.074767258] [rtabmap.rgbd_odometry]: Odom: quality=99, std dev=0.008614m|0.013634rad, update time=0.031600s delay=0.022000s
[rviz2-1] [INFO] [1745404801.086242583] [rviz]: Message Filter dropping message: frame 'odom' at time 254.178 for reason 'discarding message because the queue is full'
^C[WARNING] [launch]: user interrupted with ctrl-c (SIGINT)
[point_cloud_xyzrgb-8] [INFO] [1745404802.359189511] [rclcpp]: signal_handler(signum=2)



This is Error 1


[rgbd_odometry-5] [INFO] [1745406401.903051865] [rtabmap.rgbd_odometry]: Odom: quality=0, std dev=0.000000m|0.000000rad, update time=0.005600s delay=-0.030000s
[rgbd_odometry-5] [ WARN] (2025-04-23 20:06:42.236) OdometryF2M.cpp:565::computeTransform() Registration failed: "Missing correspondences for registration (-1->1285). fromWords = 2000 fromImageEmpty=1 toWords = 0 toImageEmpty=0"
[rgbd_odometry-5] [INFO] [1745406402.236866817] [rtabmap.rgbd_odometry]: Odom: quality=0, std dev=0.000000m|0.000000rad, update time=0.004665s delay=-0.063000s
[rgbd_odometry-5] [ WARN] (2025-04-23 20:06:42.469) OdometryF2M.cpp:565::computeTransform() Registration failed: "Missing correspondences for registration (-1->1286). fromWords = 2000 fromImageEmpty=1 toWords = 0 toImageEmpty=0"
[rgbd_odometry-5] [INFO] [1745406402.470205167] [rtabmap.rgbd_odometry]: Odom: quality=0, std dev=0.000000m|0.000000rad, update time=0.007757s delay=0.070000s
[rgbd_odometry-5] [ WARN] (2025-04-23 20:06:42.500) OdometryF2M.cpp:565::computeTransform() Registration failed: "Missing correspondences for registration (-1->1287). fromWords = 2000 fromImageEmpty=1 toWords = 0 toImageEmpty=0"
[rgbd_odometry-5] [INFO] [1745406402.500178644] [rtabmap.rgbd_odometry]: Odom: quality=0, std dev=0.000000m|0.000000rad, update time=0.003505s delay=-0.032000s
[rgbd_odometry-5] [ WARN] (2025-04-23 20:06:42.529) OdometryF2M.cpp:565::computeTransform() Registration failed: "Missing correspondences for registration (-1->1288). fromWords = 2000 fromImageEmpty=1 toWords = 0 toImageEmpty=0"
[rgbd_odometry-5] [INFO] [1745406402.530167279] [rtabm



This is Error2
Reply | Threaded
Open this post in threaded view
|

Re: RTABMAP Multi RGBD Camera Error

GGYU
Reply | Threaded
Open this post in threaded view
|

Re: RTABMAP Multi RGBD Camera Error

matlabbe
Administrator
For the rviz errors, make sure to launch rviz with use_sim_time:=true.

The second error says vo is lost (quality=0). note that if you have wheel odometry available, you may try that first in simulation, because with textureless simulated environment, it would be always be very challenging for any VO approaches.


for your question
GGYU wrote
I want to perform 2D grid-based mapping using LIDAR scan data (as in turtlebot3_sim_rgbd_scan demo),
while utilizing 3 RGB-D cameras solely for:

Detecting ArUco markers (for loop closure or localization refinement),

Extracting and matching visual features for visual loop closure optimization.
Yes, that is possible. If rtabmap node has subscribe_scan:=true, you can feed it a laser scan topic at the same time than the rgbd_image topics, similar to that example https://github.com/introlab/rtabmap_ros/tree/ros2/rtabmap_demos#turtlebot3-nav2-2d-lidar-and-rgb-d-slam. By default it will construct the 2D occupancy grid map form the laser scan. The images will be used for loop closure detection. For the ArUco tags, either you enable RGBD/MarkerDetection with appriopriate Marker/Dictionary:
Param: Marker/Dictionary = "0" [Dictionary to use: DICT_ARUCO_4X4_50=0, DICT_ARUCO_4X4_100=1,
 DICT_ARUCO_4X4_250=2, DICT_ARUCO_4X4_1000=3, DICT_ARUCO_5X5_50=4, DICT_ARUCO_5X5_100=5, 
DICT_ARUCO_5X5_250=6, DICT_ARUCO_5X5_1000=7, DICT_ARUCO_6X6_50=8, DICT_ARUCO_6X6_100=9, 
DICT_ARUCO_6X6_250=10, DICT_ARUCO_6X6_1000=11, DICT_ARUCO_7X7_50=12, DICT_ARUCO_7X7_100=13, 
DICT_ARUCO_7X7_250=14, DICT_ARUCO_7X7_1000=15, DICT_ARUCO_ORIGINAL = 16, DICT_APRILTAG_16h5=17, 
DICT_APRILTAG_25h9=18, DICT_APRILTAG_36h10=19, DICT_APRILTAG_36h11=20]
or connect fiducial_msgs::msg::FiducialTransformArray or apriltag_msgs::msg::AprilTagDetectionArray topic (from your external tag detector node) to rtabmap node.

For the Parameters, if you shared the Parameters.h file is because you hard-coded your change in it? You should not touch Parameters.h to change parameters, that is a waste of compilation time and make it difficult to see what you changed. Override parameters by using ROS arguments or ROS parameters approach instead in your ROs launch file. See this for example.
parameters={
          [...]
          # RTAB-Map's parameters should be strings:
          'Reg/Strategy':'1',
          'Reg/Force3DoF':'true',
          'RGBD/NeighborLinkRefining':'True',
          'Grid/RayTracing':'true', # Fill empty space
          'Grid/3D':'false', # Use 2D occupancy
          'Grid/RangeMax':'3',
          'Grid/NormalsSegmentation':'false', # Use passthrough filter to detect obstacles
          'Grid/Sensor':'2', # Use both laser scan and camera for obstacle detection in global map
          'Grid/MaxGroundHeight':'0.05', # All points above 5 cm are obstacles
          'Grid/MaxObstacleHeight':'0.4',  # All points over 1 meter are ignored
          'Grid/RangeMin':'0.2', # ignore laser scan points on the robot itself
          'Optimizer/GravitySigma':'0' # Disable imu constraints (we are already in 2D)
    }
Reply | Threaded
Open this post in threaded view
|

Re: RTABMAP Multi RGBD Camera Error

GGYU
Dear Matheiu

I am planning to run SLAM on a mobile platform using one 3D LiDAR and three ZED 2i cameras.

Mapping will be performed exclusively using LiDAR data, and the cameras will be mounted on the front, left, and right sides of the robot. These cameras will be used only for map optimization, specifically for loop closing and localization.

My question is:

Is it possible to use the three ZED 2i cameras to detect ArUco markers and perform loop closing in RTAB-Map?

I always appreciate your help