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_calibrate_cameras estimates the intrinsic parameters and the extrinsic baselines between two or more cameras. It reads synchronized image topics from a ROS bag, detects a calibration target in every frame, and runs a batch optimization to produce a camchain.yaml file, a detailed results text file, and a PDF report.
Synopsis
Example
aprilgrid.yaml:
Camera models
Pass one--models value per topic, in the same order as --topics.
| Model string | Projection | Distortion |
|---|---|---|
pinhole-radtan | Pinhole | Radial-tangential |
pinhole-equi | Pinhole | Equidistant (fisheye) |
pinhole-fov | Pinhole | Field-of-view |
omni-none | Omnidirectional | None |
omni-radtan | Omnidirectional | Radial-tangential |
eucm-none | Extended Unified | None |
ds-none | Double Sphere | None |
Flags
Camera models
One or more camera model strings, one per topic. Accepted values:
pinhole-radtan, pinhole-equi, pinhole-fov, omni-none, omni-radtan, eucm-none, ds-none. The number of models must match the number of --topics values.Data source
Path to the ROS bag file containing image data.
One or more ROS image topic names, one per camera. The order must match
--models.Use only the bag data within this time window, specified as two values: start and end time in seconds from the start of the bag.
Downsample the bag to this feature extraction frequency in Hz. Useful for large bags to reduce processing time.
Calibration target configuration
Path to the calibration target configuration YAML file. See target YAML format for the expected structure.
Image synchronization
Time tolerance in seconds for approximate image synchronization across cameras. Default:
0.02.Calibrator settings
Tolerance on the factors of the QR decomposition used inside the linear solver. Default:
0.02.Mutual-information threshold for admitting a new image into the estimator. Higher values admit fewer images. Pass
-1 to force all images through. Default: 0.2.Disable random shuffling of the dataset processing order. By default, views are shuffled before optimization to reduce initialization bias.
Outlier filtering options
Disable automatic corner outlier filtering during calibration.
Disable the additional outlier filtering pass run after all views have been processed.
Minimum number of raw views required before outlier statistics are initialized. Default:
20.Enable the Blake-Zisserman M-estimator for robust fitting against large outlier reprojection errors.
Display detected outlier corners visually during extraction. This can be slow on large datasets.
Output options
Enable detailed debug-level logging. Enabling this flag also disables interactive plots.
Display each image during calibration target extraction. Enabling this flag disables interactive plots.
Plot reprojection errors after each view is added during calibration. This can be slow.
Do not open the PDF report on screen after calibration finishes.
Export the optimized camera poses to a CSV file with columns:
time_ns, position, quaternion.Output files
After a successful run, three files are written next to the bag file:| File | Description |
|---|---|
<bag>-camchain.yaml | Camera chain calibration in camchain YAML format |
<bag>-results-cam.txt | Detailed numeric results for all cameras |
<bag>-report-cam.pdf | PDF calibration report with reprojection error plots |
<bag>-poses-cam0.csv | Optimized poses (only with --export-poses) |