Optimized-SC-F-LOAM
Optimized-SC-F-LOAM copied to clipboard
This method is different from the method of directly combining scan context and f-loam in the following two points: 1. The method uses an adaptive threshold to further judge the loop closure detection results, reducing false loop closure detections; 2. This method uses feature point-based matching to calculate the constraints between a pair of loop closure frame point clouds, so that this method only needs 30% of the time consumption of SC-A-LOAM in the process of constructing loop frame constraints.
You can find the preprint on Arxiv: https://arxiv.org/abs/2204.04932.
Optimized-SC-F-LOAM
This work combines F-LOAM with Scan-Context and optimizes it to reduce the time required to compute pose constraints between a pair of loop closure point clouds to 28% of Simple-SC-F-LOAM.(Simple-SC-F-LOAM is a way to directly combine F-LOAM with Scan-Context)
contributor: Lizhou Liao, Chongqing University, Chongqing, China
1. Mapping result
2. UGV platform
UGV equipped with a 16-beam LiDAR
3. Evaluation
All tests were done based on the Robot Operating System (ROS) that was installed on a laptop with an AMD R5-5600H processor, a 16 GB RAM and the Ubuntu platform.
3.1. Results on KITTI Sequence 00 and Sequence 05
3.2. Comparison of trajectories on KITTI dataset
3.3. Experiment environment of the UGV platform
4. Prerequisites
4.1. Ubuntu and ROS
Ubuntu 64-bit 20.04.
ROS noetic. ROS Installation: http://wiki.ros.org/noetic/Installation/Ubuntu.
4.2. Ceres Solver
Follow Ceres Installation:
http://www.ceres-solver.org/installation.html.
4.3. PCL
Follow PCL Installation:
https://pointclouds.org/downloads/#linux.
4.4. GTSAM
Follow GTSAM Installation:
https://gtsam.org/get_started/.
4.4. Trajectory visualization
For visualization purpose, this package uses hector trajectory sever, you may install the package by
sudo apt-get install ros-noetic-hector-trajectory-server
5. Build
5.1. Clone repository:
cd ~/catkin_ws/src
git clone https://github.com/SlamCabbage/Optimized-SC-F-LOAM.git
cd ..
catkin_make
source ~/catkin_ws/devel/setup.bash
5.2. Create message file:
In this folder, Ground Truth information, optimized pose information, F-LOAM pose information and time information are stored:
mkdir -p ~/message/Scans
Change line 383 in the laserLoopOptimizationNode.cpp to your own "messgae" folder path
5.3. Launch ROS
roslaunch optimized_sc_f_loam optimized_sc_f_loam_mapping.launch
6. Test on KITTI sequence
You can download the sequence 00 and 05 datasets from the KITTI official website and convert them into bag files using the kitti2bag open source method.
00: 2011_10_03_drive_0027 000000 004540
05: 2011_09_30_drive_0018 000000 002760
See the link: https://github.com/ethz-asl/kitti_to_rosbag
7. Acknowledgements
Thanks for SC-A-LOAM(Scan context: Egocentric spatial descriptor for place recognition within 3d point cloud map) and F-LOAM(F-LOAM : Fast LiDAR Odometry and Mapping).
8. citation
@misc{https://doi.org/10.48550/arxiv.2204.04932,
doi = {10.48550/ARXIV.2204.04932},
url = {https://arxiv.org/abs/2204.04932},
author = {Liao, Lizhou and Fu, Chunyun and Feng, Binbin and Su, Tian},
keywords = {Robotics (cs.RO), FOS: Computer and information sciences, FOS: Computer and information sciences},
title = {Optimized SC-F-LOAM: Optimized Fast LiDAR Odometry and Mapping Using Scan Context},
publisher = {arXiv},
year = {2022},
copyright = {arXiv.org perpetual, non-exclusive license}
}