Home

Awesome

MM-LINS

<center>a Multi-Map LiDAR-Inertial System for Over-Degenerate Environments </center> <div align="center"> <img src="IMAGE/Overview.png" width="90%"> </div>

Abstract

SLAM plays a crucial role in automation tasks, such as warehouse logistics, healthcare robotics, and restaurant delivery. These scenes come with various challenges, including navigating around crowds of people, dealing with flying plastic bags that can temporarily blind sensors, and addressing reduced LiDAR density caused by cooking smoke. Such scenarios can result in over-degeneracy, causing the map to drift. To address this issue, this paper presents a multi-map LiDAR-inertial system (MM-LINS). The front-end employs an iterated error state Kalman filter for state estimation and introduces a reliable evaluation strategy for degeneracy detection. If over-degeneracy is detected, the active map will be stored into sleeping maps. Subsequently, the system continuously attempts to construct new maps using a dynamic initialization method. Regarding the back-end, the Scan Context descriptor is utilized to detect inter-map similarity. Upon successful recognition of a sleeping map that shares a common region with the active map, the overlapping trajectory region is utilized to constrain the positional transformation near the edge of the prior map. In response to this, a constraint-enhanced map fusion strategy is proposed to achieve high-precision positional and mapping results. Experiments have been conducted separately on both public datasets that exhibited over-degenerate conditions and in real-world environments. These tests demonstrated the effectiveness of MM-LINS in over-degeneracy environment.

Contributors: Yongxin Ma, Jie Xu, Shenghai Yuan, Tian Zhi, Wenlu Yu, Jun Zhou, Lihua Xie

1. Prerequisites

1.1 Ubuntu and ROS

Ubuntu >= 18.04.

ROS >= Melodic. ROS

1.2 PCL && Eigen && gtsam

PCL >= 1.8, Follow PCL.

Eigen >= 3.3.4, Follow EIGEN.

gtsam >= 4.0.0, Follow gtsam.

1.3 livox_ros_driver

Follow livox_ros_driver Installation.

2. Build

Clone the repository and catkin_make:

cd ~/catkin_ws/src
git clone https://github.com/lian-yue0515/MM-LINS.git
cd ..
catkin_make

3. Directly run

    # terminal 1: run FAST-LIO2 
    cd ~/catkin_ws/src/MM-LINS/FAST-LIO
    source devel/setup.bash
    roslaunch fast_lio xxx.launch 

    # terminal 2: run SC-PGO
    cd ~/catkin_ws/src/MM-LINS/SC-PGO
    source devel/setup.bash
    roslaunch aloam_velodyne fastlio_ouster64.launch

    # open the other terminal tab: run rosbag
    rosbag play xxx.bag

4. Rosbag Example

4.1 Public Dataset (Degeneracy augmented datasets)

4.2 Real-world Field Dataset

5. Example results

Citation

If you use MM-LINS for any academic work, please cite our original paper

  @ARTICLE{mm-lins,
    author={Ma, Yongxin and Xu, Jie and Yuan, Shenghai and Zhi, Tian and Yu, Wenlu and Zhou, Jun and Xie, Lihua},
    journal={IEEE Transactions on Intelligent Vehicles},
    title={MM-LINS: a Multi-Map LiDAR-Inertial System for Over-Degenerate Environments}, 
    year={2024},
    volume={},
    number={},
    pages={1-11},
    keywords={Simultaneous localization and mapping;Laser radar;Trajectory;Accuracy;Vehicle dynamics;Intelligent vehicles;Sensor phenomena and characterization;Multi-map;over-degenerate;pose graph optimization;simultaneous location and mapping},
    doi={10.1109/TIV.2024.3414852}
  }

Acknowledgements

License

The source code is released under GPLv2 license.

TODO(s)