Full-python LiDAR SLAM using ICP and Scan Context
Full-python LiDAR SLAM.
(if you find a C++ version of this repo, go to https://github.com/irapkaist/SC-LeGO-LOAM)
Thanks to the Scan Context, reverse loops can be successfully closed.
$ python3 main_icp_slam.py
The details of parameters are eaily found in the argparser in that .py file.
Those results are produced under the same parameter conditions: - ICP used random downsampling, 7000 points. - Scan Context's parameters: - Ring: 20, Sector: 60 - The number of ringkey candidates: 30 - Correct Loop threshold: 0.17 for 09, 0.15 for 14, and 0.11 for all others
Results (left to right):
Some of the results are good, and some of them are not enough. Those results are for the study to understand when is the algorithm works or not.
If the loop threshold is too low (0.07 in the below figure), no loops are detected and thus the odometry errors cannot be reduced.
If the loop threshold is high (0.20 in the below figure), false loops are detected and thus the graph optimization failed.
Giseop Kim ([email protected])
@JustWon - Supports Pangolin-based point cloud visualization along the SLAM poses. - Go to https://github.com/JustWon/PyICP-SLAM