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.
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
UGV equipped with a 16-beam LiDAR
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.
Ubuntu 64-bit 20.04.
ROS noetic. ROS Installation: http://wiki.ros.org/noetic/Installation/Ubuntu.
Follow Ceres Installation:
http://www.ceres-solver.org/installation.html.
Follow PCL Installation:
https://pointclouds.org/downloads/#linux.
Follow GTSAM Installation:
https://gtsam.org/get_started/.
For visualization purpose, this package uses hector trajectory sever, you may install the package by
sudo apt-get install ros-noetic-hector-trajectory-server
cd ~/catkin_ws/src
git clone https://github.com/SlamCabbage/Optimized-SC-F-LOAM.git
cd ..
catkin_make
source ~/catkin_ws/devel/setup.bash
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
roslaunch optimized_sc_f_loam optimized_sc_f_loam_mapping.launch
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
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).
@inproceedings{liao2022optimized,
title={Optimized SC-F-LOAM: Optimized Fast LiDAR Odometry and Mapping Using Scan Context},
author={Liao, Lizhou and Fu, Chunyun and Feng, Binbin and Su, Tian},
booktitle={2022 6th CAA International Conference on Vehicular Control and Intelligence (CVCI)},
pages={1--6},
year={2022},
organization={IEEE}
}