M-LOAM is a robust system for multi-LiDAR extrinsic calibration, real-time odometry, and mapping. Without manual intervention, our system can start with several extrinsic-uncalibrated LiDARs, automatically calibrate their extrinsics, and provide accurate poses as well as a globally consistent map.
Authors: Jianhao Jiao, Haoyang Ye, Yilong Zhu, Linxin Jiang, Ming Liu from RAM-LAB, HKUST
Project website: https://ram-lab.com/file/site/m-loam
Videos:
Related Papers
- Robust Odometry and Mapping for Multi-LiDAR Systems with Online Extrinsic Calibration, Jianhao Jiao, Haoyang Ye, Yilong Zhu, Ming Liu, under review. pdf
- Greedy-Based Feature Selection for Efficient LiDAR SLAM, Jianhao Jiao, Yilong Zhu, Haoyang Ye, Huaiyang Huang, Peng Yun, Linxin Jiang, Lujia Wang, Ming Liu, under review.
- MLOD: Awareness of Extrinsic Perturbation in Multi-LiDAR 3D Object Detection for Autonomous Driving, Jianhao Jiao*, Peng Yun*, Lei Tai, Ming Liu, IEEE/RSJ International Conference on Intelligent Robots and Systems (IROS, 2020). pdf
If you use M-LOAM for your academic research, please cite one of our paper. bib
1.1 Ubuntu and ROS
Ubuntu 64-bit 16.04 or 18.04. ROS Kinetic or Melodic. ROS Installation
1.2. Ceres Solver && Eigen3
./setup/install_eigen3_ceres.sh
1.3. OpenMP
sudo apt install libomp-dev
1.4 Libpointmarcher
./setup/install_libnabo.sh
./setup/install_libpointmatcher.sh
mkdir -p ~/catkin_ws/src
cd ~/catkin_ws/src
git clone https://github.com/gogojjh/M-LOAM.git
catkin build mloam
source ~/catkin_ws/devel/setup.bash
-
Datasets collected with different platforms:
- Simulation Robot (SR)
- Real Handheld Device (RHD)
- Real Vechile (RV)
- Oxford RoboCar (OR)
-
Run M-LOAM and baseline methods
- We provide a script to perform batch testing of M-LOAM with baseline methods
- Enter the script folder:
roscd mloam/script/
- Modify the python script:
run_mloam.py
for specific platforms with correct path - Modify the shell files for methods in
xx_main.sh
- Run the python script:
python2 run_mloam.py -program=single_test -sequence=xx -start_idx=0 -end_idx=0
This could help you to understand the pipeline of M-LOAM. Note that mloam_loop is in development.
I have modified the code with several times and tried different new features during the journal review process. The code style is not very perfect. Also in some sequeneces, M-LOAM may not achieve the best performence. Hope you can understand and I will try to fix them.
- Parameter tunning, and a more detailed tutorial .
- loop closure.
- Docker support. The initial Docker file is in the folder:
docker/Dockerfile
- etc.
Thanks for these great works from which we learned to write M-LOAM
- LOAM (J. Zhang and S. Singh. LOAM: Lidar Odometry and Mapping in Real-time) and its advanced version: A-LOAM;
- LEGO-LOAM
- LIO-MAPPING
- VINS-MONO
- Lidar Perception Library
The source code is released under GPLv3 license.
We are still working on improving the code reliability. For any technical issues, please contact Jianhao Jiao jjiao@ust.hk.
For commercial inquiries, please contact Prof.Ming Liu eelium@ust.hk.