Kalibr writes all output files to the same directory as the input bag file, using the bag file’s base name (without theDocumentation 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.
.bag extension) as a prefix. This prefix is called the bagtag.
For example, if you run:
/data/recordings/stereo_april, and output files are written as /data/recordings/stereo_april-camchain.yaml, /data/recordings/stereo_april-results-cam.txt, and so on.
Camera calibration outputs
These files are produced bykalibr_calibrate_cameras.
Camera chain calibration parameters: intrinsics, distortion, resolution, ROS topic, and inter-camera extrinsics (
T_cn_cnm1) for each camera in the chain. This file is the primary input to kalibr_calibrate_imu_camera via --cams. See camchain.yaml for the full field reference.Human-readable calibration summary. Contains reprojection error statistics (mean, median, standard deviation) per camera, the optimized intrinsic and distortion parameters, and the inter-camera baseline transforms with their norms. Useful for quickly assessing calibration quality without opening the PDF.
Multi-page PDF calibration report. Includes:
- Text summary of calibration results and error statistics
- Per-camera reprojection error scatter plots (one point per corner detection)
- Reprojection error histograms
- Camera rig visualization (for multi-camera setups)
Optimized target poses sampled at camera rate. Only written when Timestamps are in nanoseconds (integer). Position is in meters. Quaternion is in
--export-poses is passed. Columns:w, x, y, z order.Camera-IMU calibration outputs
These files are produced bykalibr_calibrate_imu_camera.
Extended camera chain that adds IMU extrinsics to every camera entry. Specifically, each
camN block gains T_cam_imu (camera-to-IMU transformation) and timeshift_cam_imu (temporal offset). This is the file you pass to VIO frameworks and to the exporter tools. See camchain.yaml for the full field reference.Calibrated IMU parameters grouped by sensor name. The structure wraps the noise parameters from the input
imu.yaml files under named keys (imu0, imu1, …) and adds calibrated fields such as T_i_b and time_offset. Example:Human-readable calibration summary for the camera-IMU calibration. Contains:
- Normalized residuals and raw residuals (mean, median, std) for reprojection, gyroscope, and accelerometer errors
- Per-camera
T_ci(IMU-to-camera) andT_ic(camera-to-IMU) transformation matrices - Per-camera time shift values
- Inter-camera baselines (for multi-camera setups)
- Gravity vector in target coordinates
- Calibration configuration (camera models, target parameters, IMU parameters)
Multi-page PDF report for the camera-IMU calibration. Includes:
- Text summary pages (calibration results and configuration)
- 3D trajectory plot of the estimated IMU poses
- Per-IMU measurement rate plots
- Per-IMU acceleration plots and per-axis acceleration error
- Per-IMU accelerometer bias evolution
- Per-IMU angular velocity plots and per-axis angular velocity error
- Per-IMU gyroscope bias evolution
- Per-camera reprojection error scatter plots
Optimized IMU body poses sampled at IMU measurement times. Only written when Timestamps are in nanoseconds (integer). Position is in meters. Quaternion is in
--export-poses is passed. Columns:w, x, y, z order. This format matches the EuRoC/ETH groundtruth CSV convention.Interpreting calibration quality
Good camera calibration typically shows mean reprojection errors below 0.5 px. Errors above 1 px suggest a poor target extraction, an inappropriate camera model, or real optical issues (e.g. strong vignetting or motion blur in the bag). For camera-IMU calibration, inspect the gyroscope and accelerometer residuals in the text report. Large residuals relative to the noise density values inimu.yaml indicate the IMU noise parameters may be underestimated, or that there are synchronization problems in the bag.