Re: TIps on increasing the accuracy and robustness of icp odometry

Posted by matlabbe on
URL: http://official-rtab-map-forum.206.s1.nabble.com/TIps-on-increasing-the-accuracy-and-robustness-of-icp-odometry-tp10685p10693.html

Icp/MaxCorrespondenceDistance and OdomF2M/ScanSubtractRadius can be increased approximately 10-15 times the voxel size. I generally use voxel size of 20-30 cm indoor, and >=50 cm outdoor. Deskewing with IMU is a must if the lidar is not already deskewed. Make sure the IMU to lidar transform is accurate (and lidar clock is sync with computer/imu clock).

Icp/CorrespondenceRatio of 0.2 for odometry is high, if you don't want rejecting odom when switching from large environment to small environment, set it very low. On a drone, we set it to 0.01 because we preferred having a bad drift than no odometry at all. However, for rtabmap node, keeping it high like 0.2 can help to avoid closing loop closures on very small overlaps (which most of the times is wrong).

Icp/MaxTranslation can be increased too, if there are some lags for some reason, it may happen that the transform between two scans would be over 20 cm.

EDIT: we can also set Icp/PointToPlaneGroundNormalsUp=0.9 when the robot is moving mostly on flat ground (e.g. car), that helps to keep normals up for the ground when the lidar rays are far from each other.

With 3D lidar, I tend to increase OdomF2M/ScanMaxSize=15000 or higher by default to have a bigger local scan map.