FAST-Calib2 extends FAST-Calib to LiDAR-camera modules that were previously hard to calibrate due to low-quality point clouds. With a custom-designed reflective annular calibration target, it enables robust center extraction on large-spot solid-state and mechanical LiDARs, including Mid360, Avia, Ouster, XT32, JT128, Airy, E1R, and Adaps Photonics Spad LiDAR.
Key highlights include:
- A self-designed 3D reflective annular calibration target that avoids center extraction errors caused by hole-edge inflation and bleeding artifacts in previous circular-hole calibration boards.
- A robust concentric-circle fitting method that uses the fixed inner and outer annulus radii as geometric constraints.
- Automatic calibration board ROI extraction without manual pass-through tuning.
- Geometry and radius quality checks for extracted annulus centers.
- Single-scene and multi-scene LiDAR-camera extrinsic calibration without initial extrinsic parameters.
📬 For further assistance or inquiries, please feel free to contact Chunran Zheng at zhengcr@connect.hku.hk.
PCL>=1.8, OpenCV>=4.0.
FAST-Calib2 uses four reflective annuli and four visual markers on one board. The annuli are used by LiDAR center extraction, while the visual markers are used by the camera pipeline.
Materials:
- Board: PVC
- Reflective annulus stickers: 3M engineering-grade reflective film
Reflective annular calibration target and annotated dimensions.
Both LiDAR pipelines first locate the calibration board automatically, fit the board plane, and align the plane to Z=0. Center extraction is then performed in the aligned board frame.
Solid-state LiDAR pipeline:
- Extract high-reflectivity annulus points on the fitted board plane.
- Cluster the extracted annulus points.
- Fit robust single circles as the default center estimate.
- Optionally extract annulus boundary points and fit fixed inner/outer radius concentric circles.
- Select the best result by checking four-center geometry consistency against the known target geometry.
Mechanical LiDAR pipeline:
- Use LiDAR
ringorder to find intensity transition points on the annulus boundary. - Try both interpolated boundary points and high-reflectivity-side boundary points.
- Cluster the extracted boundary points.
- Fit fixed inner/outer radius concentric circles.
- Select the best result by checking four-center geometry consistency against the known target geometry.
The final quality checks include center-to-center geometry error and annulus radius consistency.
Prepare static acquisition data in the calib_data folder (Download the example data from Google Drive):
- rosbag containing point cloud messages
- corresponding image
Run single-scene calibration:
roslaunch fast_calib calib.launchAfter collecting at least three scenes, run multi-scene joint calibration:
roslaunch fast_calib multi_calib.launchTypical multi-scene target placement:
Placement of the calibration target for multi-scene data collection: (a) facing forward, (b) oriented to the right, (c) oriented to the left.
Show Unit Test Usage
The repository also provides a LiDAR-only test tool for checking annulus center extraction before running full camera-LiDAR calibration.
Load parameters:
rosparam load config/qr_params.yaml /
rosparam set /output_path /home/chunran/02_calib_ws/src/FAST-Calib/outputRun solid-state LiDAR data:
rosrun fast_calib lidar_center_test calib_data/fast-calib2-data/left.bag /livox/lidar solid
rosrun fast_calib lidar_center_test calib_data/fast-calib2-data/mid.bag /livox/lidar solid
rosrun fast_calib lidar_center_test calib_data/fast-calib2-data/right.bag /livox/lidar solidRun mechanical LiDAR data:
rosrun fast_calib lidar_center_test calib_data/hesai-jt128/left.bag /lidar_points mech
rosrun fast_calib lidar_center_test calib_data/hesai-jt128/mid.bag /lidar_points mech
rosrun fast_calib lidar_center_test calib_data/hesai-jt128/right.bag /lidar_points mechThe test tool writes:
*_centers.txt: extracted annulus center coordinates*_debug_cloud.pcd: board point cloud, annulus points, boundary points, and center markers for visualization
Debug PCD colors:
- Board points: intensity color map
- Annulus points: green
- Solid-LiDAR boundary points: red
- Centers: white spheres
