/FAST_LIO

A computationally efficient and robust LiDAR-inertial odometry (LIO) package

Primary LanguageC++GNU General Public License v2.0GPL-2.0

Noted: Ubuntu 16.04 and lower is not supported

FAST-LIO 2.0

Will Launch at End of March 2021.

New features:

  1. Faster and Better;
  2. Higher Frequency;
  3. More LiDAR support (Horizon and Ouster 64);
  4. Support ARM based embeded platforms.

FAST-LIO

FAST-LIO (Fast LiDAR-Inertial Odometry) is a computationally efficient and robust LiDAR-inertial odometry package. It fuses LiDAR feature points with IMU data using a tightly-coupled iterated extended Kalman filter to allow robust navigation in fast-motion, noisy or cluttered environments where degeneration occurs. Our package address many key issues:

  1. Fast iterated Kalman filter for odometry optimization;
  2. Automaticaly initialized at most steady environments;
  3. Parallel KD-Tree Search to decrease the computation;
  4. Robust feature extraction;

Developers

Wei Xu 徐威: Laser mapping and pose optimization;

Zheng Liu 刘政: Features extraction.

To know more about the details, please refer to our related paper:)

Our related paper: our related papers are now available on arxiv:

FAST-LIO: A Fast, Robust LiDAR-inertial Odometry Package by Tightly-Coupled Iterated Kalman Filter

Our related video: https://youtu.be/iYCY6T79oNU

1. Prerequisites

1.1 Ubuntu and ROS

Ubuntu >= 18.04 (Ubuntu 16.04 is not supported)

ROS >= Melodic. ROS Installation

1.2. PCL && Eigen && openCV

PCL >= 1.8, Follow PCL Installation.

Eigen >= 3.3.4, Follow Eigen Installation.

OpenCV >= 3.2, Follow openCV 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/XW-HKU/fast_lio.git
    cd ..
    catkin_make
    source devel/setup.bash

Remarks:

  • If you want to use a custom build of PCL, add the following line to ~/.bashrc export PCL_ROOT={CUSTOM_PCL_PATH}

3. Directly run

3.1 For indoor environments (support maximum 50hz frame rate)

Connect to your PC to Livox Avia LiDAR by following Livox-ros-driver installation, then

    ....
    roslaunch fast_lio mapping_avia.launch
    roslaunch livox_ros_driver livox_lidar_msg.launch
    

Remarks:

3.2 For outdoor environments

Connect to your PC to Livox Avia LiDAR following Livox-ros-driver installation, then

    ....
    roslaunch fast_lio mapping_avia_outdoor.launch
    roslaunch livox_ros_driver livox_lidar_msg.launch
    

4. Rosbag Example

4.1 Indoor rosbag (Livox Avia LiDAR)

Download avia_indoor_quick_shake_example1 or avia_indoor_quick_shake_example2 and then

roslaunch fast_lio mapping_avia.launch
rosbag play YOUR_DOWNLOADED.bag

4.2 Outdoor rosbag (Livox Avia LiDAR)

Download avia_hku_main building_mapping and then

roslaunch fast_lio mapping_avia_outdoor.launch
rosbag play YOUR_DOWNLOADED.bag

5.Implementation on UAV

In order to validate the robustness and computational efficiency of FAST-LIO in actual mobile robots, we build a small-scale quadrotor which can carry a Livox Avia LiDAR with 70 degree FoV and a DJI Manifold 2-C onboard computer with a 1.8 GHz Intel i7-8550U CPU and 8 G RAM, as shown in below.

6.Acknowledgments

Thanks for LOAM(J. Zhang and S. Singh. LOAM: Lidar Odometry and Mapping in Real-time), Livox_Mapping and Loam_Livox.