This is the code for Triplet-Graph. [paper]
You are also very welcome to check my personal Github for more frequent update.
If you find Triplet-Graph helpful, please consider citing:
@ARTICLE{ma2024triplet,
author={Ma, Weixin and Huang, Shoudong and Sun, Yuxiang},
journal={IEEE Robotics and Automation Letters},
title={Triplet-Graph: Global Metric Localization Based on Semantic Triplet Graph for Autonomous Vehicles},
year={2024},
volume={9},
number={4},
pages={3155-3162}}
Tested on Ubuntu 20.04
- ROS
- Ceres
- yaml-cpp
mkdir -p ~/tripletgraph_ws/src
cd ~/tripletgraph_ws/src
git clone https://github.com/lab-sun/Triplet-Graph.git
cd ..
catkin_make
source devel/setup.bash
- Pair list
We evaluate our method on SeamnticKitti dataset following paper SSC: Semantic Scan Context for Large-Scale Place Recognition.
- LiDAR scans
Please download LiDAR scans from the offical website of SemanticKitti dataset. Sequence-00, 02, 05, 06, 07, and 08 are used.
- Semantic label
We use semantic label from SemanticKitti and RangeNet++.
For your convenience, you can download all required data here (onely seq-06 is available). Unzip test_data.zip
to folder src/Triplet-Graph
.
We provide three different launch
files.
*Note that you should replace file paths as yours appropriately in config.yaml
.
tripletgraph_single_pair.launch
This launch file will only run Triplet-Graph on a single pair of LiDAR scan for the evaluated sequence with visualization using rviz. Please use the following command:
roslaunch tripletgraph tripletgraph_single_pair.launch
tripletgraph_part_seq.launch
This launch file will run Triplet-Graph on part of pairs of LiDAR scans for the evaluated sequence with visualization using rviz. Please use the following command:
roslaunch tripletgraph tripletgraph_part_seq.launch
tripletgraph_entire_seq.launch
This launch file will run Triplet-Graph on all pairs of LiDAR scans for the evaluated sequence without visualization(for acceleration). It will take some time to be finished. Once finished, you should be able to find results in/your path/tripletgraph_ws/src/Triplet-Graph/results/
, includingscore.txt
,rte.txt
, andrre.txt
.
roslaunch tripletgraph tripletgraph_entire_seq.launch
Based on results files (or you can download raw data for results reported in the paper), you can use eval.py
to get the final results. Copy eval.py
into the your result folder, and then run command python3 eval.py
. numpy
, sklearn
, and matplotlib
are required dependences for eval.py
.
If you have any questions, please contact:
- Weixin Ma [weixin.ma@connect.polyu.hk]
Here are the support material docs/appendix.pdf, which investigates the effects of some important parameters in Triplet-Graph.