Unexpected behavior, checking for loop closures when mapping with lidar.

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

Unexpected behavior, checking for loop closures when mapping with lidar.

Mikor
Hi Mathieu,

I have an unexpected behavior, I run icp + initial guess + imu topic and the trajectory looks fine until this happens



and after a while I get this

[ WARN] (2021-05-07 12:41:21.438) Rtabmap.cpp:3086::process() Rejecting all added loop closures (1, first is 556 <-> 534) in this iteration because a wrong loop closure has been detected after graph optimization, resulting in a maximum graph error ratio of 4.775321 (edge 550->552, type=0, abs error=21.150554 deg, stddev=0.077303). The maximum error ratio parameter "RGBD/OptimizeMaxError" is 3.000000 of std deviation.
[ WARN] (2021-05-07 12:41:21.438) Rtabmap.cpp:3096::process() Loop closure 556->534 rejected!
[ INFO] [1620380481.440423957, 1617999679.502513287]: rtabmap (556): Rate=0.00s, Limit=0.000s, Conversion=0.0014s, RTAB-Map=1.1846s, Maps update=0.0007s pub=0.0000s (local map=91, WM=91)
[ WARN] (2021-05-07 12:41:21.728) Rtabmap.cpp:3086::process() Rejecting all added loop closures (1, first is 557 <-> 537) in this iteration because a wrong loop closure has been detected after graph optimization, resulting in a maximum graph error ratio of 4.713149 (edge 550->552, type=0, abs error=20.875190 deg, stddev=0.077303). The maximum error ratio parameter "RGBD/OptimizeMaxError" is 3.000000 of std deviation.
[ WARN] (2021-05-07 12:41:21.728) Rtabmap.cpp:3096::process() Loop closure 557->537 rejected!
[ INFO] [1620380481.730440898, 1617999679.530767561]: rtabmap (557): Rate=0.00s, Limit=0.000s, Conversion=0.0015s, RTAB-Map=0.2873s, Maps update=0.0007s pub=0.0000s (local map=91, WM=91)
[ INFO] [1620380482.163000514, 1617999679.574744505]: Odom: ratio=0.910537, std dev=0.015588m|0.004929rad, update time=0.830666s
[ WARN] (2021-05-07 12:41:22.751) Rtabmap.cpp:3086::process() Rejecting all added loop closures (1, first is 558 <-> 537) in this iteration because a wrong loop closure has been detected after graph optimization, resulting in a maximum graph error ratio of 4.827444 (edge 550->552, type=0, abs error=21.381416 deg, stddev=0.077303). The maximum error ratio parameter "RGBD/OptimizeMaxError" is 3.000000 of std deviation.
[ WARN] (2021-05-07 12:41:22.751) Rtabmap.cpp:3096::process() Loop closure 558->537 rejected!
[ INFO] [1620380482.753066704, 1617999679.633686958]: rtabmap (558): Rate=0.00s, Limit=0.000s, Conversion=0.0018s, RTAB-Map=1.0196s, Maps update=0.0007s pub=0.0000s (local map=91, WM=91)
[ INFO] [1620380483.030387093, 1617999679.661004904]: Odom: ratio=0.908699, std dev=0.017033m|0.005386rad, update time=0.853110s
[ INFO] [1620380483.845098528, 1617999679.742342542]: rtabmap (559): Rate=0.00s, Limit=0.000s, Conversion=0.0015s, RTAB-Map=1.0891s, Maps update=0.0008s pub=0.0000s (local map=92, WM=92)
[ INFO] [1620380483.875426576, 1617999679.745637956]: Odom: ratio=0.926960, std dev=0.020420m|0.006457rad, update time=0.832734s
[ WARN] (2021-05-07 12:41:24.233) Rtabmap.cpp:3086::process() Rejecting all added loop closures (1, first is 560 <-> 540) in this iteration because a wrong loop closure has been detected after graph optimization, resulting in a maximum graph error ratio of 4.742582 (edge 550->552, type=0, abs error=21.005550 deg, stddev=0.077303). The maximum error ratio parameter "RGBD/OptimizeMaxError" is 3.000000 of std deviation.
[ WARN] (2021-05-07 12:41:24.233) Rtabmap.cpp:3096::process() Loop closure 560->540 rejected!
[ INFO] [1620380484.235081876, 1617999679.781935488]: rtabmap (560): Rate=0.00s, Limit=0.000s, Conversion=0.0017s, RTAB-Map=0.3872s, Maps update=0.0006s pub=0.0000s (local map=93, WM=93)
[ INFO] [1620380484.726347079, 1617999679.830036152]: Odom: ratio=0.923088, std dev=0.021978m|0.006950rad, update time=0.836180s
[ WARN] (2021-05-07 12:41:25.266) Rtabmap.cpp:3086::process() Rejecting all added loop closures (1, first is 561 <-> 543) in this iteration because a wrong loop closure has been detected after graph optimization, resulting in a maximum graph error ratio of 4.884733 (edge 550->552, type=0, abs error=21.635157 deg, stddev=0.077303). The maximum error ratio parameter "RGBD/OptimizeMaxError" is 3.000000 of std deviation.
[ WARN] (2021-05-07 12:41:25.266) Rtabmap.cpp:3096::process() Loop closure 561->543 rejected!
[ INFO] [1620380485.267625674, 1617999679.885400968]: rtabmap (561): Rate=0.00s, Limit=0.000s, Conversion=0.0017s, RTAB-Map=1.0296s, Maps update=0.0007s pub=0.0000s (local map=93, WM=93)
[ INFO] [1620380485.554327761, 1617999679.913581529]: Odom: ratio=0.922847, std dev=0.022469m|0.007105rad, update time=0.810785s
[ WARN] (2021-05-07 12:41:25.561) Rtabmap.cpp:3086::process() Rejecting all added loop closures (1, first is 562 <-> 543) in this iteration because a wrong loop closure has been detected after graph optimization, resulting in a maximum graph error ratio of 4.907210 (edge 550->552, type=0, abs error=21.734713 deg, stddev=0.077303). The maximum error ratio parameter "RGBD/OptimizeMaxError" is 3.000000 of std deviation.
[ WARN] (2021-05-07 12:41:25.561) Rtabmap.cpp:3096::process() Loop closure 562->543 rejected!
[ INFO] [1620380485.563010873, 1617999679.914587313]: rtabmap (562): Rate=0.00s, Limit=0.000s, Conversion=0.0017s, RTAB-Map=0.2925s, Maps update=0.0007s pub=0.0000s (local map=93, WM=93)
[ WARN] (2021-05-07 12:41:25.841) Rtabmap.cpp:3086::process() Rejecting all added loop closures (1, first is 563 <-> 543) in this iteration because a wrong loop closure has been detected after graph optimization, resulting in a maximum graph error ratio of 4.884995 (edge 550->552, type=0, abs error=21.636317 deg, stddev=0.077303). The maximum error ratio parameter "RGBD/OptimizeMaxError" is 3.000000 of std deviation.
[ WARN] (2021-05-07 12:41:25.841) Rtabmap.cpp:3096::process() Loop closure 563->543 rejected!

And I am wondering why is this happening..?
Reply | Threaded
Open this post in threaded view
|

Re: Unexpected behavior, checking for loop closures when mapping with lidar.

matlabbe
Administrator
rtabmap is trying to close a loop closure (maybe a proximity detection) but the graph is deforming more than RGBD/OptimizeMaxError ratio, so the loop is rejected.

In the warning, the abs error is 20 deg on one of the link (550->552), either it is good that the loop has been rejected, or that 550->552 link having largest error is a place where odometry drift was high (the loop should be good). In second case, you can try increasing RGBD/OptimizeMaxError to 4 or 5.

cheers,
Mathieu