RoboFeng / RI-LIO

Reflectivity Image Assisted Tightly-Coupled LiDAR-Inertial Odometry
BSD 3-Clause "New" or "Revised" License
65 stars 6 forks source link

RI-LIO

Reflectivity Image Assisted Tightly-Coupled LiDAR-Inertial Odometry

1.Introduction

RI-LIO is a LiDAR-inertial odometry package that tightly couples reflectivity images. Its carefully designed framework can improve the robustness of pure LiDAR pose tracking and point cloud mapping with minimal system cost, especially in the rotation direction. It is suitable for use both in structured and unstructured environments and can be deployed on drones and unmanned vehicles. However, the package currently only supports Ouster-OS series LiDAR sensing devices. To apply it to other sensors, reflectivity and projection model need to be calibrated.

System architecture:

2.Prerequisites

3.Build

Clone the repository and catkin_make:

mkdir -p ~/$A_ROS_DIR$/src
cd ~/$A_ROS_DIR$/src
git clone https://github.com/RoboFeng/RI-LIO.git --recursive
cd ..
catkin_make
source devel/setup.bash

4.Prepare Sample Datasets

  1. Our datasets. Some datasets that block geographic location information are coming soon.
  2. Fusionportable datasets. Please download the data with suffix *_ref.bag.

5.Run RI-LIO

  1. Run our datasets.
roslaunch rilio mapping_ouster128.launch

Some mapping results:

  1. Run Fusionportable datasets.
roslaunch rilio mapping_fusionportable.launch

Some mapping results:

6.Apply RI-LIO on Your Own Sensors

  1. Prepare the metadata file of your Ouster LiDAR. Refer to ouster-ros.
  2. Run LiDAR projection model correction program.
    roslaunch rilio correct_projection.launch lid_topic:=<LiDAR topic name> metadata_path:=<metadata file> out_path:=<projection calibration file>
  3. Run your own LiDAR or play a rosbag.
  4. Wait for the program execution to end.
  5. Edit config/ouster128.yaml to set the below parameters:
    • lid_topic: LiDAR topic name
    • imu_topic: imu topic name
    • metadata_json: $metadata_path
    • calibration_json: $out_path
  6. Run RI-LIO.
    roslaunch rilio mapping_ouster128.launch

Acknowledgments