Re: Lidar based 3d SLAM in sparse feature environment
Posted by
matlabbe on
URL: http://official-rtab-map-forum.206.s1.nabble.com/Lidar-based-3d-SLAM-in-sparse-feature-environment-tp10174p10184.html
If your target environment is textureless and you have access to a lidar, I'll would do icp_odometry. The problem in your test with icp_odometry is that default ICP parameters are tuned for 2D lidar, not 3D lidar. There is a test_velodyne.launch example
here using velodyne for hand-held mapping.
Feeding the IMU to icp_odometry can also help for better ICP.
From your launch file, you may be able to continue using rtabmap.launch by adding those parameters related to lidar (based on
test_velodyne.launch):
odom_args:="
Icp/MaxTranslation 2 Icp/CorrespondenceRatio 0.01
Odom/ScanKeyFrameThr 0.4 OdomF2M/ScanSubtractRadius 0.15
OdomF2M/ScanMaxSize 15000
..."
rtabmap_args:="
Icp/PointToPlane true Icp/Iterations 10 Icp/VoxelSize 0.15 Icp/Epsilon 0.001
Icp/PointToPlaneK 20 Icp/PointToPlaneRadius 0 Icp/MaxTranslation 3
Icp/MaxCorrespondenceDistance 1.5 Icp/PM true Icp/PMOutlierRatio 0.7
Icp/CorrespondenceRatio 0.2 RGBD/ProximityMaxGraphDepth 0
RGBD/ProximityPathMaxNeighbors 1 Mem/LaserScanNormalK 20 Reg/Strategy 1
..."
Notes:
- icp_odometry node combines rtabmap_args and odom_args together (that's why I've overriden 2 ICP parameters for odom).
- I skipped to mention deskewing stuff to keep example simple in simulation, but you would need to re-enable it for real-world tests.
- In the test_velodyne.launch example, there is also a point_cloud_assembler node, you can use it if you want to record ALL scans in the database.
cheers,
Mathieu