Skip to content

Repository files navigation

Multi-Mapcher

Loop Closure Detection-Free Heterogeneous LiDAR Multi-Session SLAM

arXiv IEEE T-IV ROS 1 ROS 2 License

Multi-Mapcher heterogeneous LiDAR multi-session mapping demo

Build and usage

Prerequisites
Interface Tested environment
ROS 1 Ubuntu 20.04, ROS Noetic
ROS 2 Ubuntu 22.04, ROS Humble

The shared core requires C++17, CMake 3.16+, Eigen3, GTSAM, PCL, and yaml-cpp. Docker users can skip the native dependency installation.

sudo apt update
sudo apt install software-properties-common
sudo add-apt-repository -y ppa:borglab/gtsam-release-4.2
sudo apt update
sudo apt install git build-essential cmake libeigen3-dev libgtsam-dev \
  libpcl-dev libtbb-dev libyaml-cpp-dev

Clone the Multi-Mapcher:

git clone --recurse-submodules https://github.com/url-kaist/multi-mapcher.git

ROS 1 Noetic

Place the repository at <catkin_ws>/src/multi-mapcher. From the catkin workspace root with ROS Noetic sourced:

rosdep install --from-paths src/multi-mapcher --ignore-src -r -y
catkin_make -DCMAKE_BUILD_TYPE=Release
source devel/setup.bash

roslaunch multi_mapcher run.launch \
  dataset_yaml:=/absolute/path/to/dataset.yaml

ROS 2 Humble

Place the repository at <colcon_ws>/src/multi-mapcher. From the colcon workspace root with ROS Humble sourced:

rosdep install --from-paths src/multi-mapcher --ignore-src -r -y
colcon build --packages-select multi_mapcher \
  --cmake-args -DCMAKE_BUILD_TYPE=Release
source install/setup.bash

ros2 launch multi_mapcher run.launch.py \
  dataset_yaml:=/absolute/path/to/dataset.yaml

The dataset YAML selects mode: single_session or mode: multi_session. Both ROS versions use the same YAML files and C++ core.

Workflow and guides
  1. Install AutoDataloader with python3 -m pip install autodataloader, convert MulRan or HeLiPR, and provide an estimated SLAM trajectory for every LiDAR session.
  2. Run single_session and inspect each generated after/ result.
  3. Use those verified after/ directories as the multi_session inputs.
  4. Enable iSAE in the multi-session YAML when ground truth is available.
  • Start with config/parameters/s2sub.yaml.
  • sub2sub.yaml is an optional, slower preset that uses larger source and target submaps.
  • Default values and adjustment ranges are documented directly in both YAML files.
  • See the usage guide for MulRan/HeLiPR conversion, dataset YAML, single-to-multi execution, outputs, and iSAE.
  • Use docker/ros1/run_docker.sh or docker/ros2/run_docker.sh for container execution; see Docker.

Warning

Multi-session optimization requires the intra-session loop constraints saved in each after/pose_graph.g2o. The program rejects a pose-only trajectory because its odometry-only graph can deform or collapse during optimization.

Citation

If this repository supports your research, please cite our Multi-Mapcher paper:

@article{lim2026tiv,
  title   = {{Multi-Mapcher: Loop Closure Detection-Free Heterogeneous LiDAR
             Multi-Session SLAM Leveraging Outlier-Robust Registration for
             Autonomous Vehicles}},
  author  = {Lim, Hyungtae and Kim, Daebeom and Myung, Hyun},
  journal = {IEEE Transactions on Intelligent Vehicles},
  volume  = {11},
  number  = {2},
  pages   = {338--351},
  year    = {2026},
  doi     = {10.1109/TIV.2025.3635064}
}
Quatro and Quatro++ citations
@inproceedings{Lim22icra-Quatro,
  title     = {A Single Correspondence Is Enough: Robust Global Registration
               to Avoid Degeneracy in Urban Environments},
  author    = {Lim, Hyungtae and Yeon, Suyong and Ryu, Soohyun and Lee, Yonghan
               and Kim, Youngji and Yun, Jaeseong and Jung, Euigon and Lee,
               Donghwan and Myung, Hyun},
  booktitle = {Proceedings of the IEEE International Conference on Robotics
               and Automation (ICRA)},
  pages     = {8010--8017},
  year      = {2022}
}

@article{Lim24ijrr-Quatropp,
  title   = {{Quatro++: Robust Global Registration Exploiting Ground
             Segmentation for Loop Closing in LiDAR SLAM}},
  author  = {Lim, Hyungtae and Kim, Beomsoo and Kim, Daebeom and Lee,
             Eungchang Mason and Myung, Hyun},
  journal = {The International Journal of Robotics Research},
  volume  = {43},
  number  = {5},
  pages   = {685--715},
  year    = {2024},
  doi     = {10.1177/02783649231207654}
}

Acknowledgements

The anchor-node-based pose-graph formulation and the original BetweenFactorWithAnchoring implementation were adapted from LT-mapper.

License

Multi-Mapcher is released under the GNU General Public License v3.0 only (GPL-3.0-only). Bundled and adapted third-party components retain their respective copyright and license notices.

About

Multi-Mapcher: Loop closure detection-free heterogeneous LiDAR multi-session SLAM leveraging outlier-robust registration for autonomous vehicles (T-IV)

Resources

Stars

139 stars

Watchers

14 watching

Forks

Releases

Packages

Contributors

Languages