YWL0720 / I2EKF-LO

[IROS 2024] I2EKF-LO: A Dual-Iteration Extended Kalman Filter based LiDAR Odometry
GNU General Public License v2.0
141 stars 12 forks source link

I2EKF-LO

A Dual-Iteration Extended Kalman Filter Based LiDAR Odometry
IROS 2024 Oral
Pipeline Image

Introduction

LiDAR odometry is a pivotal technology in the fields of autonomous driving and autonomous mobile robotics. However, most of the current works focuse on nonlinear optimization methods, and there are still many challenges in using the traditional Iterative Extended Kalman Filter (IEKF) framework to tackle the problem: IEKF only iterates over the observation equation, relying on a rough estimate of the initial state, which is insufficient to fully eliminate motion distortion in the input point cloud; the system process noise is difficult to be determined during state estimation of the complex motions; and the varying motion models across different sensor carriers. To address these issues, we propose the Dual-Iteration Extended Kalman Filter (I2EKF) and the LiDAR odometry based on I2EKF (I2EKF-LO). This approach not only iterates over the observation equation but also leverages state updates to iteratively mitigate motion distortion in LiDAR point clouds. Moreover, it dynamically adjusts process noise based on the confidence level of prior predictions during state estimation and establishes motion models for different sensor carriers to achieve accurate and efficient state estimation. Comprehensive experiments demonstrate that I2EKF-LO achieves outstanding levels of accuracy and computational efficiency in the realm of LiDAR odometry.

Developers: The codes of this repo are contributed by Wenlu Yu (于文录), Jie Xu (徐杰), Chengwei Zhao (赵成伟)

News

Related Paper

Related paper available on arxiv: I2EKF-LO: A Dual-Iteration Extended Kalman Filter Based LiDAR Odometry

Related Video:

1. Prerequisites

1.1 Ubuntu and ROS

Ubuntu >= 18.04.

ROS >= Melodic. ROS Installation

1.2. PCL && Eigen

PCL >= 1.8, Follow PCL Installation.

Eigen >= 3.3.4, Follow Eigen Installation.

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/YWL0720/I2EKF-LO
cd ..
catkin_make -j
source devel/setup.bash

3. Directly run

cd ~/$I2EKF_LO_ROS_DIR$
source devel/setup.bash
roslaunch i2ekf_lo xxx.launch

4. Rosbag Example

Download our test bags here: HIT-TIB Datasets.

5. Acknowledgments

Thanks for Fast-LIO2 (Fast Direct LiDAR-inertial Odometry) and LI-INIT(Robust Real-time LiDAR-inertial Initialization).

6. License

The source code is released under GPLv2 license.

7. TODO(s)