Re: rtabmap does not find loop closures
Posted by
acp on
URL: http://official-rtab-map-forum.206.s1.nabble.com/rtabmap-does-not-find-loop-closures-tp6586p6624.html
matlabbe wrote
Hi,
When using Optimizer/GravitySigma parameter, we should make sure that the TF between the IMU and the base frame used by rtabmap is accurate, otherwise it could optimize badly the map. For example, open the map very deformed that you shown in rtabmap standalone, go in Preference->Optimizer and change gravity sigma prameter to 0, close disalog, and do Edit->Download Graph (Optimized). It will re-optimized to map without gravity constraints. IF the map is better, it means TF between IMU and base link is not accurate. It is possible to set Optimizer/GravitySigma>=1 when this TF is not accurate, so that the map gets less deformed.
If you set old parameter name RGBD/OptimizeStrategy=1, rtabmap will automatically set Optimizer/Strategy=1 (the new parameter name) for convenience.
cheers,
Mathieu
I have tried the following:
Preference->Optimizer and change gravity sigma prameter to 0, close disalog, and do Edit->Download Graph (Optimized)But since the maps are really noisy it is difficult to see the difference.
I have tried two modes:
///////////////////////////////////////////////////////////////////////////////////////
1.- In this one I try g2o with robust.
$ rosparam get /zed/rtabmap/Optimizer/Strategy
'1'
$ rosparam get /zed/rtabmap/RGBD/OptimizeMaxError
'0'
$ rosparam get /zed/rtabmap/Optimizer/Robust
'true'
$ rosparam get /zed/rtabmap/Optimizer/GravitySigma
'0'VIDEOhttps://www.dropbox.com/s/xt9kyuccjv1y03z/tbsd11.mp4?dl=0///////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
/////////////////////////////////////////////////////////////////////////////////////////////////////////
2.-This one is as you have suggested, with gravitySigma=1 and g2o.
$ rosparam get /zed/rtabmap/Optimizer/Strategy
'1'
$ rosparam get /zed/rtabmap/RGBD/OptimizeMaxError
'3'
$ rosparam get /zed/rtabmap/Optimizer/Robust
'false'
$ rosparam get /zed/rtabmap/Optimizer/GravitySigma
'1'VIDEOhttps://www.dropbox.com/s/owmll2al88l0js4/tbsd14.mp4?dl=0////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
1.- As you can see in both videos the maps get distorted and after passing the drone again over the same path, the map some how gets better.
2.- With the combination
g2o,
optimize/Robust = true and
/Optimizer/GravitySigma = 0 somehow I get better results, but sometimes the map does not close even though a loop closure has been detected.
3.- I have calibrated
IMU and the
camera twice and set the
tf in the
zed.urdf file. Since is difficult to test the
imu-camera calibration is accurate, therefore I have assumed that the calibration is not good. Therefore as you have suggested I have done the step
2. As you can see in the video the map gets distorted.
4.- What can I do to get a good map?
I appreciate your help and looking forward to your replay.