Xiangcheng Hu1 · Jin Wu1 · Jianhao Jiao2*
Binqian Jiang 1· Wei Zhang1 · Wenshuo Wang3 · Ping Tan1*†
1HKUST 2UCL 3BIT
†project lead *corresponding author
MS-Mapping is a novel multi-session LiDAR mapping system designed for large-scale environments. It addresses challenges in data redundancy, robustness, and accuracy with three key innovations:
-
Distribution-aware keyframe selection: Captures the contributions of each point cloud frame by analyzing map distribution similarities. This reduces data redundancy and optimizes graph size and speed.
-
Uncertainty model: Automatically adjusts using the covariance matrix during graph optimization, enhancing precision and robustness without scene-specific tuning. It monitors pose uncertainty to avoid ill-posed optimizations.
-
Enhanced evaluation: Redesigned baseline comparisons and benchmarks demonstrate MS-Mapping's superior accuracy over state-of-the-art methods.
Applications include surveying, autonomous driving, crowd-sourced mapping, and multi-agent navigation.
- 2024/08/08: We released the first version of MS-Mapping on ArXiv, together with the example merged data and related YouTube and bilibili videos.
- 2024/07/19: accepted by ICRA@40 as a extended abstract.
- 2024/06/03: submit to a workshop.
Lets take CP5
as the old session, and use CP2
to do incremental mapping base on it.
- Build the base map using single-session uncertainty SLAM. It's important to know the cov of each edge in pose graph. Keyframes number must be the same with the poses number.
-
Set the base map as prior map folder, and preparing for the parameters of Ms-Mapping (initial pose). You can use Cloudcompare to align the first point cloud (at the map folder) with the base map to get the initial pose. (This problem can be solved when you integrate a place recognition algorithm into our system).
-
Run the Ms-Mapping and save the merged data. The keyframe folder only save the keyframes of the new session data.
- Use the python scripts to get and visualize all the session trajectory and session map, together with the merged map.
-
set the new base map
CP5-CP2
for the next mapping round. You need to add the keyframes ofCP5
into this folder. There must be amap.pcd
file in the map folder. Check the keyframes number with the pose files.
We provide example merged data for 8 sessions here, The session order is: CP5-CP2-CS1-CC1-PK1-IA3-IA4-NG
. One must clean the separate map to remove the point cloud noise caused by the glass, since this study do not focus on this. The cleaned map also can be download here. Note that these example data may be updated since it is not the best results.
#trjectory
python3 tum-trajectory-plotter.py
#map
pcl_viewer merged_map_session_*
To plot the results, you can follow this scripts.
Please cite:
@misc{hu2024msmapping,
title={MS-Mapping: Multi-session LiDAR Mapping with Wasserstein-based Keyframe Selection},
author={Xiangcheng Hu, Jin Wu, Jianhao Jiao, Wei Zhang and Ping Tan},
year={2024},
eprint={2406.02096},
archivePrefix={arXiv},
primaryClass={cs.RO}
}
@misc{hu2024msmappinguncertaintyawarelargescalemultisession,
title={MS-Mapping: An Uncertainty-Aware Large-Scale Multi-Session LiDAR Mapping System},
author={Xiangcheng Hu, Jin Wu, Jianhao Jiao, Binqian Jiang, Wei Zhang, Wenshuo Wang and Ping Tan},
year={2024},
eprint={2408.03723},
archivePrefix={arXiv},
primaryClass={cs.RO},
url={https://arxiv.org/abs/2408.03723},
}
The code in this project is adapted from the following projects:
- The odometry method is adapted from FAST-LIO2.
- The basic framework for pose graph optimization (PGO) is adapted from SC-A-LOAM.
- The Point-to-Plane registration is adapted from LOAM.