Skip to content
 
 

Latest commit

 

History

21 Commits

Folders and files

NameName
Last commit message
Last commit date
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

FAST-Calib

FAST-Calib: LiDAR-Camera Extrinsic Calibration in One Second

FAST-Calib is an efficient target-based extrinsic calibration tool for LiDAR-camera systems (eg., FAST-LIVO2).

Key highlights include:

  1. Support solid-state and mechanical LiDAR.
  2. No need for any initial extrinsic parameters.
  3. Achieve highly accurate calibration results in just one seconds.

In short, it makes extrinsic calibration as simple as intrinsic calibration.

Related paper:

FAST-Calib: LiDAR-Camera Extrinsic Calibration in One Second

📬 For further assistance or inquiries, please feel free to contact Chunran Zheng at zhengcr@connect.hku.hk.

Left: Example of Mid360 LiDAR calibration. Right: Point cloud colored with the calibrated extrinsics.

Circular hole extraction supports multiple LiDAR models.

1. Prerequisites

ROS 2 (tested on Humble), PCL>=1.8, OpenCV>=4.0.

The Livox CustomMsg lidar input is optional: if livox_ros_driver2 is built in your workspace it is picked up automatically; otherwise FAST-Calib still builds and works with any sensor_msgs/PointCloud2 LiDAR.

2. Run our examples

  1. Prepare the static acquisition data in the calib_data folder (see Single-scene Calibration Sample Data from Mid360, Avia and Ouster, and Multi-scene Calibration Sample Data from Avia):
  • a ROS 2 bag (directory containing metadata.yaml) with the point cloud topic, e.g. recorded with ros2 bag record /livox/lidar
  • corresponding image
  1. Run the single-scene calibration process:
ros2 launch fast_calib calib.launch.py bag_path:=/path/to/bag image_path:=/path/to/image.jpg
  1. After completing Step 2 for at least three different scenes, you can perform multi-scene joint calibration:
ros2 launch fast_calib multi_calib.launch.py

3. Run on your own sensor suite

  1. Customize the calibration target in the image below, with the CAD model available here.
  2. Collect data from three scenes, with placement illustrated below, and record them into the corresponding rosbags.
  3. Provide the instrinsic matrix in qr_params.yaml.
  4. Set distance filter in qr_params.yaml for board point cloud (extra points are acceptable).
  5. Calibrate now!

💡 Note: You can run scripts/distance_filter_tool.py to quickly obtain suitable filter parameters.

Left: Actual calibration target | Right: Technical drawing with annotated dimensions.

Placement of the calibration target for multi-scene data collection: (a) facing forward, (b) oriented to the right, (c) oriented to the left.

4. Appendix

The calibration target design is based on the velo2cam_calibration.

For further details on the algorithm workflow, see this document.

5. Acknowledgments

Special thanks to Jiaming Xu for his support, Haotian Li for the equipment, and the velo2cam_calibration algorithm.

About

A Handy Extrinsic Calibration Tool for LiDAR-camera Systems.

Resources

Stars

0 stars

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages