xlan09 / lili-om-LIO-LOAM

LiLi-OM is a tightly-coupled, keyframe-based LiDAR-inertial odometry and mapping system for both solid-state-LiDAR and conventional LiDARs.

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

LiLi-OM (LIvox LiDAR-Inertial Odometry and Mapping)

-- Towards High-Performance Solid-State-LiDAR-Inertial Odometry and Mapping

This is the code repository of LiLi-OM, a real-time tightly-coupled LiDAR-inertial odometry and mapping system for solid-state LiDAR (Livox Horizon) and conventional LiDARs (e.g., Velodyne). It has two variants as shown in the folder:

  • LiLi-OM, for Livox Horizon with a newly proposed feature extraction module,
  • LiLi-OM-ROT, for conventional LiDARs of spinning mechanism with feature extraction module similar to LOAM.

Both variants exploit the same backend module, which is proposed to directly fuse LiDAR and (preintegrated) IMU measurements based on a keyframe-based sliding window optimization. Detailed information can be found in the paper below and on Youtube.

drawing

drawing

BibTex Citation

Thank you for citing our LiLi-OM paper if you use any of this code:

@article{arXiv20_Li,
 author = {Kailai Li and Meng Li and Uwe D. Hanebeck},
 journal = {arXiv preprint arXiv:2010.13150},
 month = {October},
 title = {Towards High-Performance Solid-State-LiDAR-Inertial Odometry and Mapping},
 url = {https://arxiv.org/abs/2010.13150},
 year = {2020}
}

The work has been accepted to IEEE Robotics and Automation Letters (RA-L).

Data sets

We provide data sets recorded by Livox Horizon (10 Hz) and Xsens MTi-670 (200 Hz)

Download from isas-server or OneDrive

Dependency

System dependencies (tested on Ubuntu 18.04/20.04)

  • ROS (tested with Melodic/Noetic)
  • gtsam (GTSAM 4.0)
  • ceres (Ceres Solver 2.0)

In ROS workspce:

Compilation

Compile with catkin_tools:

cd ~/catkin_ws/src
git clone https://github.com/KIT-ISAS/lili-om
cd ..
catkin build livox_ros_driver
catkin build lili_om
catkin build lili_om_rot

Usage

  1. Run a launch file for lili_om or lili_om_rot
  2. Play the bag file
  • Example for running lili_om (Livox Horizon):
roslaunch lili_om run_fr_iosb.launch
rosbag play FR_IOSB_Short.bag -r 1.0 --clock --pause
  • Example for running lili_om_rot (spinning LiDAR like the Velodyne HDL-64E in FR_IOSB data set):
roslaunch lili_om_rot run_fr_iosb.launch
rosbag play FR_IOSB_Short_64.bag -r 1.0 --clock --pause
  • Example for running lili_om using the internal IMU of Livox Horizon:
roslaunch lili_om run_fr_iosb_internal_imu.launch
rosbag play FR_IOSB_Short.bag -r 1.0 --clock --pause --topics /livox/lidar /livox/imu

For live test or own recorded data sets, the system should start at a stationary state.

Contributors

Meng Li (Email: limeng1523@outlook.com)

Kailai Li (Email: kailai.li@kit.edu)

kamibukuro5656

Credits

We hereby recommend reading VINS-Fusion and LIO-mapping for reference.

License

The source code is released under GPLv3 license.

We are constantly working on improving our code. For any technical issues or commercial use, please contact Kailai Li < kailai.li@kit.edu > with Intelligent Sensor-Actuator-Systems Lab (ISAS), Karlsruhe Institute of Technology (KIT).

About

LiLi-OM is a tightly-coupled, keyframe-based LiDAR-inertial odometry and mapping system for both solid-state-LiDAR and conventional LiDARs.

License:GNU General Public License v3.0


Languages

Language:C++ 98.8%Language:CMake 0.7%Language:Python 0.5%