Skip to content

IMU-assisted Target-free Extrinsic Calibration of Heterogeneous LIDARs Based on Continuous-time Optimization

Notifications You must be signed in to change notification settings

Yan-1999/IA-HeLiC

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

7 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

IA-HeLiC

[ICIP 2024] IMU-assisted Target-free Extrinsic Calibration of Heterogeneous LiDARs Based on Continuous-time Optimization

This is the repo. of IA-HeLiC, a calibration framework of heterogeneous LiDAR systems assisted by IMU. In this repo., we provided a ROS catkin package implementing IA-HeLiC.

Our paper is now published on ICIP 2024. Check out this link: IMU-assisted Target-free Extrinsic Calibration of Heterogeneous LiDARs Based on Continuous-time Optimization

Prerequisites

This package runs on Ubuntu 20.04.6 LTS (Focal Fossa) with ROS Noetic, and requires the following libraries:

Library Version
Boost 1.71.0
Ceres 1.14.0
Eigen 3.3
fmt 10.0.0
glog 0.4.0
Kontiki (included)
Livox ROS Driver 2.6.0
Livox-SDK 2.2.0
OpenCV 4.2.0
OpenMP
PCL 1.10.0
ndt_omp commit 0852c95
Sophus 1.22.10

Installing Libraries

  1. Run the following command in the terminal:

    sudo apt-get install libboost-dev libceres-dev libceres1 libeigen3-dev libgoogle-glog-dev libopencv-dev libpcl-dev
  2. Follow the installation guide of Livox-SDK.

  3. Download fmt, ndt_omp and Sophus, and install them:

    # install fmt
    git clone https://github.com/fmtlib/fmt.git
    cd fmt/
    mkdir build && cd build
    cmake .. && make && sudo make install
    
    # install ndt_omp
    git clone https://github.com/koide3/ndt_omp.git
    cd ndt_omp/
    mkdir build && cd build
    cmake .. && make && sudo make install
    
    # install Sophus
    git clone https://github.com/strasdat/Sophus.git
    cd Sophus/
    mkdir build && cd build
    cmake .. && make && sudo make install

Compile This Package

Put this package in a ROS workspace along with Livox ROS Driver and compile this package before running:

cd catkin_ws/
mkdir -p src/
cd src && catkin_init_workspace
git clone https://github.com/Livox-SDK/livox_ros_driver.git
git clone https://github.com/Yan-1999/IA-HeLiC.git
cd ..
catkin_make

Run with Our Dataset

IMPORTENT: Due to the data size, please ensure that you have at least 48G memory (32G pysical + 16G swap recommended) when running IA-HeLiC with these data sequences.

Download our dataset (Baidu Netdisk link, password: pqvm), and then edit the LiDAR trajectoy paths and output file path in config/calib_node.yaml accordingly. It's highly recommended to decompress the bags first for faster reading speed:

# subsitute with your bag path
rosbag decompress /path/to/your/bag/seqX.bag

Then run the following command to calibrate (don't forget to source the setup.bash first):

# subsitute with your bag path
roslaunch ia_helic calib_node.launch bag_path:=/path/to/your/bag/seqX.bag

Then you will see the calibration file in the path you given.

Run with Your Data

Preprocess the sensor data with LiDAR odometries is required to obtain LiDAR trajectoies. We've tested our IA-HeLiC with the following odometries:

  • A-LOAM for mechanical spinning LiDAR;
  • LI-Init for solid-state LiDAR.

Please provide IA-HeLiC with the LiDAR odometries in TUM format:

timestamp x y z q_x q_y q_z q_w

and the ROS bag with sensor data. Extrinsics between IMU and LiDAR are not required by IA-HeLiC.

Then edit the lidar_types, lidar_odoms, topics and imu_acc_scale_by items in config/calib_node.yaml accordingly. And now you are ready for calibration:

# subsitute with your bag path
roslaunch ia_helic calib_node.launch bag_path:=/path/to/your/bag/seqX.bag

Cite This Work

@INPROCEEDINGS{10648154,
  author={Yan, Zehao and Zhang, Lin and Wang, Zhong and Zhao, Shenjie},
  booktitle={2024 IEEE International Conference on Image Processing (ICIP)}, 
  title={IMU-Assisted Target-Free Extrinsic Calibration of Heterogeneous Lidars Based on Continuous-Time Optimization}, 
  year={2024},
  volume={},
  number={},
  pages={3327-3333},
  keywords={Performance evaluation;Laser radar;Accuracy;Source coding;Data integration;Robot sensing systems;Calibration;LiDAR extrinsic calibration;target-free calibration;mechanical spinning LiDAR;solid-state LiDAR;LiDAR data fusion},
  doi={10.1109/ICIP51287.2024.10648154}}

Acknowledgements

This implementation is based on the work of LVI-ExC and LI-Calib.

About

IMU-assisted Target-free Extrinsic Calibration of Heterogeneous LIDARs Based on Continuous-time Optimization

Topics

Resources

Stars

Watchers

Forks