/MS-Mapping

[ICRA@40] MS-Mapping: An Uncertainty-Aware Large-Scale Multi-Session LiDAR Mapping System

MS-Mapping: An Uncertainty-Aware Large-Scale Multi-Session LiDAR Mapping System

Xiangcheng Hu1 · Jin Wu1 · Jianhao Jiao2*
Binqian Jiang 1· Wei Zhang1 · Wenshuo Wang3 · Ping Tan1*†

1HKUST   2UCL   3BIT

†project lead *corresponding author

Paper PDFYoutubevideoGitHub Stars GitHub IssuesLicense

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.

image (16)

CP5-NG CP5-NG-PK1
cp5-gn-100 cp5-ga-pk1
image-20240516093525041 image-20240730151727768

image-20240730152813297

News

Run

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.

image-20240806191013216

  • 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).

    image-20240807094852686

    image-20240807094808981

  • Run the Ms-Mapping and save the merged data. The keyframe folder only save the keyframes of the new session data.

image-20240807095156108

image-20240807095347540

  • Use the python scripts to get and visualize all the session trajectory and session map, together with the merged map.

image-20240807101744799

image-20240807101620547

image-20240807101845991 image-20240807110418976
  • set the new base map CP5-CP2 for the next mapping round. You need to add the keyframes of CP5 into this folder. There must be a map.pcd file in the map folder. Check the keyframes number with the pose files.

    image-20240807100001179

Example

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.

image-20240808085525833

image-20240808085750123

Plot the results:

#trjectory
python3 tum-trajectory-plotter.py 

#map
pcl_viewer merged_map_session_*
image-20240808090003879 image-20240808090223073

Dataset

image-20240730151834570

Trajectory Evaluation

image-20240711111837423

image-20240730153021873 image-20240730153037085

Map Evaluation

image-20240711111417041 image-20240711111504116

image-20240730152951528

image-20240730152904480

Time Analysis

image-20240711111322055

To plot the results, you can follow this scripts.

Citations

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}, 
}

Acknowledgment

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.

Contributors