This repo contains the implementation of our paper
SGLC: Semantic Graph-Guided Coarse-Fine-Refine Full Loop Closing for LiDAR SLAM
Neng Wang, Xieyuanli Chen, Chenghao Shi, Zhiqiang Zheng, Hongshan Yu, Huimin Lu
SGLC is a semantic graph guided full loop closing framework with robust loop closure detection and 6-DoF poes estimation.
-
[2024-11] We release the code of SGLC, which we hope will be of assistance to your research.
-
[2024-10] SGLC is accepted to RAL. 👏
-
[2024-07] Paper is available in arXiv website.
You can check it online on this link.
We tested our code on ubuntu 20.04 and ubuntu 18.04.
- Eigen (3.3.7)
- PCL (1.10)
- Ceres-solver (2.1.0)
You need to install these libraries from official guidance.'
You can download the point cloud dataset from the KITTI official website, as well as the labels from the semanticKITTI website. In our experiments, we use the labels from the SegNet4D. For the convenience, you can download from here.
Loop pairs: we use the distance-based criteria from the SSC and overlap-based criteria from OverlapTransformer. You also can download from our link.
Download the LiDAR scans from the official website. We provide the labels from SegNet4D.
You can follow the OverlapTransformer to download the dataset. We provide the labels on the link.
We use the Apollo Columbia Park MapData proposed by AutoMOS. You can download it from the MapMOS repository. The semantic labels can be found in the link.
git clone [email protected]:nubot-nudt/SGLC.git
mkdir build
cd build
cmake ..
make -j8
- demo data
cd /SGLC/bin
./eval_lcd_pair
- KITTI dataset (distance-based)
Modify config/config_kitti_graph.yaml
eval_seq:
cloud_path: "xx/kitti/sequences/08/velodyne/" # your LiDAR scans
label_path: "xx/SegNet4D_predicitions/kitti/sequences/08/predictions/" # semantic predictions from our link
pairs_file: "../loop_data/pairs/pairs_kitti/neg_100/08.txt" # loop pairs
out_file: "../out/kitti/08.txt" # output file for evaluating
Then, you can run the .bin
file following this:
cd /SGLC/bin
./eval_lcd_seq
you can find the output file in the SGLC/out/
. for evaluating, you can run:
cd /SGCL/scripts
python pr_curve.py
- KITTI dataset (overlap-based)
Modify config/config_kitti_graph.yaml
eval_overlap:
cloud_path: "xx/kitti/sequences/00/velodyne/"
label_path: "xx/SegNet4D_predicitions/kitti/sequences/00/predictions/"
out_pair_file: "../out/kitti/00_overlap_pairs.txt"
out_pair_veri_file: "../out/kitti/00_overlap_pairs_veri.txt"
Then, you can run the .bin
file following this:
cd /SGLC/bin
./eval_overlap
For evaluation:
cd /SGCL/scripts
python eval_overlap_dataset.py --dataset kitti --gt_file loop_gt_seq00_0.3overlap_inactive.npz --preb_file ../out/kitti/00_overlap_pairs_veri.txt
Download gt_file from our link in the Data.
- KITTI-360, Ford_campus and Apollo
Similarly, follow this KITTI instructions.
Distance-based:
./eval_lcd_seq_kitti360
Overlap-based
./eval_overlap_apollo
./eval_overlap_ford_campus
- KITTI
Modify config/config_kitti_graph.yaml
eval_poses:
cloud_path: "xx/kitti/sequences/08/velodyne/"
label_path: "xx/SegNet4D_predicitions/kitti/sequences/08/predictions/"
loop_poses_file: "xx/loop_data/loop/loop_distance4/08.txt" # gt_file, you can download from our link
out_file: "../out/kitti/loop_distance4_08.txt" # output file
Then, run the .bin
file
cd /SGLC/bin
./eval_loo_poses
For evaluation:
cd /SGLC/scripts
python eval_loop_poses.py --dataset kitti --gt_poses xx/loop_data/loop/loop_distance4/08.txt --preb_file ../out/kitti/loop_distance4_08.txt
We would like to express our sincere gratitude for the following open-source work that has been immensely helpful in the development of SGLC.
SSC: SSC: Semantic Scan Context for Large-Scale Place Recognition.
STD: STD: Stable Triangle Descriptor for 3D place recognition.
KISS-ICP: KISS-ICP: In Defense of Point-to-Point ICP Simple, Accurate, and Robust Registration If Done the Right Way.
CVC-Cluster: Curved-Voxel Clustering for Accurate Segmentation of 3D LiDAR Point Clouds with Real-Time Performance.
If you find this work useful for your research, please consider citing:
@article{Wang2024SGLCSG,
title={SGLC: Semantic Graph-Guided Coarse-Fine-Refine Full Loop Closing for LiDAR SLAM},
author={Neng Wang and Xieyuanli Chen and Chenghao Shi and Zhiqiang Zheng and Hongshan Yu and Huimin Lu},
journal={IEEE Robotics and Automation Letters},
year={2024},
volume={},
}
This project is free software made available under the MIT License. For details see the LICENSE file.