Skip to main content

Documentation Index

Fetch the complete documentation index at: https://mintlify.com/ethz-asl/kalibr/llms.txt

Use this file to discover all available pages before exploring further.

Kalibr is a calibration toolbox developed at ETH Zurich’s Autonomous Systems Lab. It addresses the hardest calibration problems in robotics and computer vision: accurately recovering the intrinsic parameters of cameras, the spatial transforms between sensors, and — critically — the time offsets between sensors running at different rates. All calibration routines are built on continuous-time batch estimation over ROS bag recordings, making them robust to noisy data and sensor asynchrony.

What Kalibr calibrates

Kalibr solves four distinct calibration problems, each with a dedicated CLI tool:

Multi-camera calibration

Intrinsic and extrinsic calibration of camera systems with non-globally overlapping fields of view. Supports a wide range of projection and distortion models.

Camera-IMU calibration

Spatial and temporal calibration of an IMU with respect to a camera chain, including IMU intrinsic parameter estimation.

Multi-IMU calibration

Spatial and temporal calibration of multiple IMUs relative to a base inertial sensor, using one aiding camera.

Rolling shutter calibration

Full intrinsic calibration of rolling shutter cameras, including projection, distortion, and readout time parameters.

Supported platforms

Kalibr runs on ROS 1 and is tested on the following Ubuntu releases:
Ubuntu versionROS distributionDockerfile
20.04 (Focal)ROS NoeticDockerfile_ros1_20_04
18.04 (Bionic)ROS MelodicDockerfile_ros1_18_04
16.04 (Xenial)ROS KineticDockerfile_ros1_16_04
Ubuntu 20.04 with ROS Noetic is the recommended platform. It uses Python 3 throughout and receives active CI coverage.

Academic background

Kalibr’s calibration algorithms are grounded in peer-reviewed research. If you use Kalibr in academic work, cite the papers relevant to the calibration type you used.

Camera-IMU and multi-IMU calibration

Extending Kalibr: Calibrating the extrinsics of multiple IMUs and of individual axes. Joern Rehder, Janosch Nikolic, Thomas Schneider, Timo Hinzmann, Roland Siegwart. ICRA 2016, pp. 4304–4311, Stockholm, Sweden. Unified Temporal and Spatial Calibration for Multi-Sensor Systems. Paul Furgale, Joern Rehder, Roland Siegwart. IROS 2013, Tokyo, Japan.

Continuous-time estimation

Continuous-Time Batch Estimation Using Temporal Basis Functions. Paul Furgale, T D Barfoot, G Sibley. ICRA 2012, pp. 2088–2095, St. Paul, MN.

Self-supervised calibration

Self-supervised Calibration for Robotic Systems. J. Maye, P. Furgale, R. Siegwart. IEEE Intelligent Vehicles Symposium (IVS) 2013.

Rolling shutter calibration

Rolling Shutter Camera Calibration. L. Oth, P. Furgale, L. Kneip, R. Siegwart. CVPR 2013.

Authors

Kalibr was created and maintained by researchers at the Autonomous Systems Lab, ETH Zurich:
  • Paul Furgale
  • Hannes Sommer
  • Jérôme Maye
  • Jörn Rehder
  • Thomas Schneider
  • Luc Oth
This work was supported in part by the European Union’s Seventh Framework Programme (FP7/2007–2013) under grants #269916 (V-Charge) and #610603 (EUROPA2).

Next steps

Install Kalibr

Set up Kalibr with Docker (recommended) or build from source in a ROS catkin workspace.

Quickstart

Run your first camera calibration end-to-end with an AprilGrid target and a ROS bag.

Build docs developers (and LLMs) love