iG-LIO

January 10, 2024 Β· View on GitHub

This work proposes an incremental Generalized Iterative Closest Point (GICP) based tightly-coupled LiDAR-inertial odometry (LIO), iG-LIO, which addresses the challenges of integrating GICP into real-time LIO. The main contributions are as follows.

  • The raw GICP constraints are tightly-coupled with IMU constraints in a Maximum A Posteriori (MAP) estimation.
  • A voxel-based surface covariance estimator (VSCE) is proposed to improve the efficiency and accuracy of the surface covariance estimation. Compared to the kd-tree based methods, VSCE reduces processing time in dense scans while maintaining the accuracy of iG-LIO in sparse and small FOV scans.
  • An incremental voxel map is designed to represent the probabilistic models of surrounding environments. Compared to non-incremental methods (e.g., DLIO), it successfully reduces the time cost required for the nearest neighbor search and map management.
  • Extensive datasets collected from different FOV LiDARs are adopted to evaluate the efficiency and accuracy of the proposed iG-LIO. Even though iG-LIO keeps identical parameters across all datasets, the results show that it is more efficient than Faster-LIO and achieves competitive performance compared to state-of-the-art LIO systems.

The experiment video can be found on YouTube , bilibili.

The paper is available in PDF.

ig_lio_cover

1. Build

1.1 Docker Container

The docker-based standard development environment is available at https://github.com/zijiechenrobotics/ig_lio_workspace

1.2 Build from source

1.2.1 Prerequisites

:one: Ubuntu and ROS

Ubuntu >= 18.04. And Ubuntu 20.04 is recommended.

:two: GCC & G++ (only for Ubuntu 18.04)

gcc & g++ >= 9

:three: TBB (only for Ubuntu 18.04)

TBB >= 2020. Please follow https://github.com/oneapi-src/oneTBB

:four: livox_ros_driver

git clone https://github.com/Livox-SDK/Livox-SDK
cd Livox-SDK
mkdir build
cd build
cmake ..
make -j
sudo make install

:five: glog

sudo apt-get install -y libgoogle-glog-dev

1.2.2 Build

cd <your workspace>
mkdir src
cd src
git clone https://github.com/zijiechenrobotics/ig_lio_workspace.git
git clone https://github.com/Livox-SDK/livox_ros_driver
cd ..
catkin_make

2. Run

2.1 NCLT Dataset

Download NCLT from http://robots.engin.umich.edu/nclt/

source devel/setup.bash
roslaunch ig_lio lio_nclt.launch

2.2 NCD Dataset

Download NCD from https://ori-drs.github.io/newer-college-dataset/

source devel/setup.bash
roslaunch ig_lio lio_ncd.launch

2.3 ULHK Dataset

Download ULHK from https://github.com/weisongwen/UrbanLoco

source devel/setup.bash
roslaunch ig_lio lio_ulhk.launch

2.4 AVIA Dataset

Download AVIA from https://drive.google.com/drive/folders/1CGYEJ9-wWjr8INyan6q1BZz_5VtGB-fP (fast-lio) and https://github.com/ziv-lin/r3live_dataset (r3live)

source devel/setup.bash
roslaunch ig_lio lio_avia.launch

The fast-lio datasets miss the gravitational constant in the accelerometer. Please edit the avia.ymal

# for fast-lio
enable_acc_correct: true

# for r3live
enable_acc_correct: false

2.5 Botanic Garden Dataset

Download Botanic Garden from https://github.com/robot-pesg/BotanicGarden

source devel/setup.bash
# for avia
roslaunch ig_lio lio_bg_avia.launch
# for velodyne
roslaunch ig_lio lio_bg_velodyne.launch

2.6 Run with your own dataset

:one: Edit .yaml files in ig_lio/config

  • lidar_topic: LiDAR topic name.
  • imu_topic: IMU topic name.
  • lidar_type: The type of LiDAR you use. Only support for Velodyne, Ouster, and Livox.
  • min_radius & max_radius: A range filter to remove laser point from the robot itself.
  • enable_ahrs_initalization: Set true or false. If the IMU message has orientation channel, iG-LIO can be initialized via AHRS.
  • enable_acc_correct: Set true or false. If the accelerometer miss the gravitational constant, please set true (e.g., fast-lio2 datasets).
  • gravity: Make sure the gravity is correct. Some datasets are 9.81, some datasets are -9.81, and even zero (e.g., ULHK). A simple debugging method is to observe the glog message. The normal range of ba_norm is 0~0.5.
  • t_imu_lidar & R_imu_lidar: The extrinsic parameters from LiDAR frame to IMU frame (i.e. the IMU is the base frame).

:two: Launch iG-LIO

source devel/setup.bash
roslaunch ig_lio <your launch file name>.launch

rosbay play <your rosbag>

3. Details about all sequences in the paper

We use abbreviations for all sequences due to limited space. The full names of all sequences are presented below.

AbbreviationNameDistance(km)Sensor Type
nclt_12012-01-157.58Velodyne HDL-32E
nclt_22012-04-293.17Velodyne HDL-32E
nclt_32012-05-116.12Velodyne HDL-32E
nclt_42012-06-154.09Velodyne HDL-32E
nclt_52013-01-101.14Velodyne HDL-32E
ncd_101_short_experiment1.61Ouster OS1-64
ncd_202_long_experiment3.06Ouster OS1-64
ncd_305_quad_with_dynamics0.48Ouster OS1-64
ncd_406_dynamic_spinning0.09Ouster OS1-64
ncd_507_parkland_mound0.70Ouster OS1-64
ulhk_1HK-Data201901170.60Velodyne HDL-32E
ulhk_2HK-Data20190426-20.74Velodyne HDL-32E
bg_11006-010.76Velodyne VLP-16 & Livox AVIA
bg_21008-030.74Velodyne VLP-16 & Livox AVIA
avia_1hku_main_buiding0.96Livox AVIA
avia_2outdoor_Mainbuilding_100Hz_2020-12-24-16-46-290.14Livox AVIA
avia_3outdoor_run_100Hz_2020-12-27-17-12-190.09Livox AVIA

4. Mapping Results

We aligned the mapping results of iG-LIO with Google Earth and found that iG-LIO retains global consistency maps.

NCLT 2012-05-11

ig_nclt

Newer College Dataset 02_long_experiment

ig_ncd

hku_main_building

ig_hku

5. Paper

Thanks for citing iG-LIO (RA-L 2024) if you use any of this code.

# IEEE Robotics and Automation Letters ( Early Access )
@ARTICLE{10380742,
  author={Chen, Zijie and Xu, Yong and Yuan, Shenghai and Xie, Lihua},
  journal={IEEE Robotics and Automation Letters}, 
  title={iG-LIO: An Incremental GICP-based Tightly-coupled LiDAR-inertial Odometry}, 
  year={2024},
  volume={},
  number={},
  pages={1-8},
  doi={10.1109/LRA.2024.3349915}}

6. Acknowledgements

Thanks for the below great open-source project for providing references to this work.

  1. LOAM (J. Zhang and S. Singh. LOAM: Lidar Odometry and Mapping in Real-time)
  2. FAST-LIO
  3. Faster-LIO
  4. LINS
  5. SLICT

Thanks for the following public dataset.

  1. NCLT
  2. Newer College Dataset
  3. Botanic Garden
  4. R3live

7. Known Issues

What can’t iG-LIO do?

  • The extremely narrow environment (e.g., some sequence in the Hilti SLAM Challenge).
  • The scene is very open and devoid of geometric features.

8. Time Line

TimeEvent
Aug 13, 2023πŸ˜€ Paper submitted to IEEE Robotics and Automation Letters (RA-L)
Nov 5, 2023😭 Revise and resubmit
Dec 22, 2023πŸ₯³ Paper accepted for publication in RA-L
CurrentπŸŽ‰ Source code released