Skip to content

Sensor Calibration

Inkyu edited this page Aug 20, 2017 · 4 revisions

This page briefly introduces methods of intrinsic and extrinsic sensor calibration. More details can be found in the documentation of our multi-purpose calibration toolbox, Kalibr.

We also provide an example calibration dataset that was obtained from our MAV. You can clone it using the command below:

git clone https://[email protected]/enddl22/zr300_calibration.git

In the example dataset, the script all_calibration.sh performs all necessary calibration procedures such as fish-eye camera intrinsic calibration, fish-eye camera and ZR300 IMU extrinsic calibration, and fish-eye camera and DJI IMU extrinsic calibration. The figure below is a screenshot of tag detection and corners extraction.

We expect two final outputs from this sensor calibration procedure: ROVIO and MSF calibration parameters as .yaml files. Please consult the example calibration dataset and Kalibr page for more in-depth explanations.

To perform your own sensor calibration, record three topics (fish-eye image, ZR300 IMU, and DJI M100 IMU data), change the .bag name in all_calibration.sh, then run this script.

The final results are stored in the calibrationResults folder: msf_parameters_falcon2_realsense-2017-05-11-18-42-09.yaml, rovio_cam2.yaml and rovio_test.info. Open ROVIO-related files and change cam2 into cam0 (file name as well). Now, you can copy these files where desired and reference them in the launch file ~/indigo_catkin_ws/src/mav_dji_ros_interface/dji_sdk/asl_launch/Onboard_exp_with_zr300_rw_indoor_falcon2.launch. TODO:Update this.

How can I validate if the calibration procedure is correct?

This is a very good question.

For the intrinsic calibration, you can use the reprojection error statistic that represents the total sum of squared distances (in SE2) between the observed feature points and the projected (using the current estimates for camera parameters and the poses) object points (opencv explanation). Qualitatively speaking, a good calibration yields +- 1px reprojection error.

For the extrinsic calibration, you can inspect IMU bias estimation quality whether they are all within 3-sigma boundary. In addition, visualizing tf (M100 IMU base link, realsense IMU, realsense fish-eye) of the calibrated frames via rviz is one qualitative validation method.

Clone this wiki locally