HITSZ-NRSL / lidar_camera_calibrator

ROS package to calibrate the extrinsic parameters between LiDAR and Camera.
GNU General Public License v3.0
176 stars 23 forks source link
calibration camera lidar lidar-camera lidar-camera-calibration lidar-camera-fusion ros

lidar_camera_calibrator

lidar_camera_calibrator is a semi-automatic, high-precision, feature-based camera and LIDAR extrinsic calibration tool. In general, feature-based calibration methods often require some manual intervention, such as manually selecting feature points, using a calibration board with a fixed pattern, etc., resulting in a low degree of automation in this method. The lidar_camera_calibrator can semi-automatically calibrate high-precision extrinsic parameters and provide an interactive Qt interface with less manual intervention.

Hope it helps you.

(中文说明)

Dependencies

Build

$ mkdir -p ws_calibrator/src && cd ws_calibrator
$ git clone REPOSITORY_GIT_LINK src/lidar_camera_calibrator 
$ catkin_make

Test

We have tested this tool on real and simulated Velodyne-16 and normal cameras, and test data is provided under the data folder.

Test video 1(with AprilTag):Youtube link , Bilibili link

Test video 2(without AprilTag):Youtube linkBilibili link

# Calibration using a calibration board with AprilTag(Simulation)
roslaunch lidar_camera_calibrator calibrate.launch 

# Calibration using a calibration board without AprilTag(Real)
roslaunch lidar_camera_calibrator calibrate.launch input_path:=`rospack find lidar_camera_calibrator`/data/data-hitsz 

Usage

a. Prepare the Data

b. Calibrate

  1. Modify the input_path in the launch file to the absolute path of the prepared calibration data, then calibrate it according to the above tutorial.

    $ roslaunch lidar_camera_calibrator calibrate.launch
  2. Adjust the parameters in pointcloud control until the appropriate calibration board point cloud appears on the right, and then click extract. If the correct feature is extracted in the point cloud, click next pose, otherwise click skip pose.

  3. If the calibration board is with AprilTag, the image control part will automatically extract the corner points. If the detection is wrong or the calibration board is without AprilTag, you need to click start selection and then select the four corner points in the image sequentially, and finally click finish selection. Note: Be sure that the corner IDs shown in the image are consistent with those shown in the lidar points, and the calibration board is completely inside the FOVs of both camera and lidar

  4. Repeat steps 2 and 3 until each pair of data is processed. Finally, click calibrate, and you can see the output of extrinsic parameters in the terminal. The calibration result can be evaluated qualitatively through next pose and previous pose, and the extrinsic parameter can be saved to config.json with save result.

TODO

License

lidar_camera_calibrator is released under GPL-3.0 License.

Acknowledgments

In this project, the image feature extraction part refers to AprilTag, the point cloud feature extraction refers to the work of Jiunn-Kai Huang, and the Qt interface and framework parts refer to plycal.

Many thanks for their work.