Robust LiDAR SLAM with a versatile plug-and-play loop closing and pose-graph optimization.
2021-07-16
: This repository's easy-to-use plug-and-play loop detection and pose graph optimization module (named SC-PGO) is also integrated with FAST-LIO2! see FAST_LIO_SLAM.Scancontext.h
, call makeAndSaveScancontextAndKeys
and detectLoopClosureID
.laserPosegraphOptimization.cpp
file. In the new file, we subscribe the point cloud topic and odometry topic (as a result of A-LOAM, published from laserMapping.cpp
). That is, our implementation is generic to any front-end odometry methods. Thus, our pose-graph optimization module (i.e., laserPosegraphOptimization.cpp
) can easily be integrated with any odometry algorithms such as non-LOAM family or even other sensors (e.g., visual odometry).robustGPSNoise
in the laserPosegraphOptimization.cpp
file. mkdir -p ~/catkin_scaloam_ws/src
cd ~/catkin_scaloam_ws/src
git clone https://github.com/gisbi-kim/SC-A-LOAM.git
cd ../
catkin_make
source ~/catkin_scaloam_ws/devel/setup.bash
roslaunch aloam_velodyne aloam_mulran.launch # for MulRan dataset setting
roslaunch aloam_velodyne aloam_velodyne_HDL_64.launch # for KITTI dataset setting
Similar to the SC-LIO-SAM's saver utility, we support pose and scan saver per keyframes. Using these saved data, the map (within ROI) can be constructed offline. See the utils/python/makeMergedMap.py
and this tutorial.
Below is the example results of MulRan dataset KAIST 03's merged map, visualized using CloudCompare (download the map data here).
A user also can remove dynamic points using these saved keyframe poses and scans. See this tutorial and our Removert project.
[email protected]