8000 GitHub - lian-yue0515/D-LI-Init: Dynamic Initialization for LiDAR-inertial SLAM
[go: up one dir, main page]
More Web Proxy on the site http://driver.im/
Skip to content

lian-yue0515/D-LI-Init

Repository files navigation

D-LI-Init

Dynamic Initialization for LiDAR-inertial SLAM

This work has been accepted to IEEE/ASME Transactions on Mechatronics (TMECH 2025).


Code arXiv arXiv


Demonstration of real-world scenarios where the robot requires dynamic initialization, along with point cloud maps created using SOTA algorithms and ours.


System Overview: Robust Dynamic Initialization Pipeline

Abstract

The accuracy of the initial state, including initial velocity, gravity direction, and IMU biases, is critical for the initialization of LiDAR-inertial SLAM systems. Inaccurate initial values can reduce initialization speed or lead to failure. When the system faces urgent tasks, robust and fast initialization is required while the robot is moving, such as during the swift assessment of rescue environments after natural disasters, bomb disposal, and restarting LiDAR-inertial SLAM in rescue missions. However, existing initialization methods usually require the platform to remain stationary, which is ineffective when the robot is in motion. To address this issue, this paper introduces a robust and fast dynamic initialization method for LiDAR-inertial systems (D-LI-Init). This method iteratively aligns LiDAR-based odometry with IMU measurements to achieve system initialization. To enhance the reliability of the LiDAR odometry module, the LiDAR and gyroscope are tightly integrated within the ESIKF framework. The gyroscope compensates for rotational distortion in the point cloud. Translational distortion compensation occurs during the iterative update phase, resulting in the output of LiDAR-gyroscope odometry. The proposed method can initialize the system no matter the robot is moving or stationary. Experiments on public datasets and real-world environments demonstrate that the D-LI-Init algorithm can effectively serve various platforms, including vehicles, handheld devices, and UAVs. D-LI-Init completes dynamic initialization regardless of specific motion patterns.

Contributors: Jie Xu, Yongxin Ma, Yixuan Li, Xuanxuan Zhang, Jun Zhou, Shenghai Yuan, Lihua Xie

News

  • [23/03/2025]: D_LI_Init is accepted to IEEE/ASME Transactions on Mechatronics.

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.

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/D-LI-Init.git
cd ..
catkin_make

3. Directly run

    # terminal 1: run D-LI-Init 
    cd ~/catkin_ws/src/D-LI-Init
    source devel/setup.bash
    roslaunch lidar_imu_init xxx.launch 

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

4. Rosbag Example

4.1 Public Dataset

4.2 Real-world Field Dataset

5. Example results

📖 Citation

If you use D-LI-Init for any academic work, please cite our original paper

@ARTICLE{10965521,
  author={Xu, Jie and Ma, Yongxin and Li, Yixuan and Zhang, Xuanxuan and Zhou, Jun and Yuan, Shenghai and Xie, Lihua},
  journal={IEEE/ASME Transactions on Mechatronics}, 
  title={Dynamic Initialization for LiDAR-Inertial SLAM}, 
  year={2025},
  volume={},
  number={},
  pages={1-12},
  keywords={Odometry;Laser radar;Simultaneous localization and mapping;Accuracy;Vehicle dynamics;Gyroscopes;Gravity;Point cloud compression;Distortion;State estimation;Dynamic initialization;LiDAR-gyroscope odometry;LiDAR-inertial;simultaneous location and mapping (SLAM)},
  doi={10.1109/TMECH.2025.3554878}}

Acknowledgements

License

The source code is released under GPLv2 license.

TODO(s)

  • Example results updating
  • Refinement and updating
  • Waiting for comments on papers

About

Dynamic Initialization for LiDAR-inertial SLAM

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published
0