hyye / lio-mapping

Implementation of Tightly Coupled 3D Lidar Inertial Odometry and Mapping (LIO-mapping)
https://sites.google.com/view/lio-mapping
GNU General Public License v3.0
925 stars 322 forks source link
icra2019 mapping sensor-fusion slam

LIO-mapping

A Tightly Coupled 3D Lidar and Inertial Odometry and Mapping Approach

Authors: Haoyang Ye, Yuying Chen, and Ming Liu from RAM-LAB.

[Paper], [Project], [Bib]. ICRA 2019.

Table of Contents

Demo Results

lio-mapping-gt lio-mapping-indoor

Video: [More indoor and outdoor tests].

Prerequisites

See Dockerfile as a reference:

  1. ROS with Ubuntu 18.04 or Ubuntu 16.04.
  2. Ceres-solver.
  3. PCL, the default version accompanying by ROS.
  4. OpenCV, the default version accompanying by ROS.

Build

  1. git clone git@github.com:hyye/lio-mapping.git into the src folder of your catkin workspace.
  2. catkin build -DCMAKE_BUILD_TYPE=Release lio or catkin_make -DCMAKE_BUILD_TYPE=Release.

Examples

Some sample data.

  1. source devel/setup.zsh, or setup.bash if your prefer bash.
  2. roslaunch lio test_indoor.launch &.
  3. roslaunch lio map_4D_indoor.launch &.
  4. rosbag play fast1.bag.

Docker

Try it out using docker:

  1. Run docker/build_docker.sh.
  2. Run docker/run_docker.sh.
  3. Run rosbag play fast1.bag, in your host machine or in the running container.

Note: Visualization (rviz) can run in the running container with nvidia-docker. The Dockerfile is compatible with nvidia-docker 2.0; 1.Dockerfile with nvidia-docker 1.0.

Credits

The feature extraction, lidar-only odometry and baseline implemented were heavily derived or taken from the original LOAM and its modified version (the point_processor in our project), and one of the initialization methods and the optimization pipeline from VINS-mono. The copyright headers are retained for the relevant files.

Licence

The source code is released under GPL-3.0.