Skip to content

Camera IMU Calibration

Stephanie Tsuei edited this page Jun 9, 2022 · 12 revisions

The below instructions (and any in linked pages) need to be followed carefully! An accurate camera-IMU calibration is very important for performance of monocular VIO. This page outlines our process for using XIVO with a brand-new sensor. All provided helper scripts assume that data is collected into a rosbag.

External tools we use are:

  1. imu_tk (distributed with XIVO in thirdparty)
  2. Kalibr
  3. Allan Variance ROS

For convenience, we create a catkin workspace containing both Kalibr and Allan Variance ROS.

Instructions for Calibration

1. IMU Noise and Drift Characterization

  1. Collect ~4 hours of IMU data with no motion.
  2. (An input to step 2.) Find the time duration tau at which the Allan variance stops changing. For example (using the Intel RealSense d435i)
python scripts/calibration/allan_plot.py --bag [/path/to/bag] --topic /camera/imu

produces the following Allan plots:

  1. Use Allan Variance ROS to compute noise and drift parameters. (In the input .yaml file, put the approximate IMU sample rate (in Hz) for both the measure_rate and imu_rate fields.)

2. IMU Intrinsics Calibration

XIVO uses the scale-misalignment model given in Tedaldi et al. and implemented in .

3. Camera Intrinsics Calibration

4. Camera-IMU Extrinsics Calibration

General Tips

How do you know your calibration is good?

What is "sufficiently exciting"?