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_imu_camera estimates the rigid-body transformation and time offset between a camera chain and one or more IMUs. It reads image and IMU topics from a ROS bag together with a pre-computed camera chain calibration, then solves a continuous-time batch optimization to produce a camchain-imucam.yaml, an imu.yaml, and a PDF report. Temporal calibration is enabled by default.
Synopsis
Example
aprilgrid.yaml:
imu.yaml (example for ADIS16448):
Flags
Dataset source
Path to the ROS bag file containing image and IMU data. Topic names are read from the configuration YAML files.
Use only bag data within this time window: start and end in seconds from the beginning of the bag.
Downsample to this feature extraction frequency in Hz.
Perform a clock synchronization between the camera and IMU clocks according to the algorithm by Zhang et al. (2002) before running the estimator.
Camera system configuration
Path to the camera chain configuration YAML file. This is typically the
camchain.yaml output from kalibr_calibrate_cameras. See camchain YAML format.Recompute the camera chain extrinsics during optimization instead of treating them as fixed. Recommended only for debugging problems with chain extrinsics.
Standard deviation of the reprojected corner point distribution in pixels. This value is used to weight the reprojection error terms. Default:
1.0.IMU configuration
One or more paths to IMU noise parameter YAML files. The first IMU listed is used as the reference IMU. See IMU YAML format.
Estimate the time delay between multiple IMUs by cross-correlation. By default no temporal calibration between IMUs is performed.
IMU model strings, one per
--imu entry. Accepted values: calibrated, scale-misalignment, scale-misalignment-size-effect. Defaults to calibrated when only a single IMU is provided and this flag is omitted.Calibration target
Path to the calibration target configuration YAML file. See target YAML format.
Optimization options
Disable temporal calibration. The time offset between camera and IMU will not be estimated and is assumed to be zero.
Maximum number of optimization iterations. Default:
30.Recover and report the covariance of all estimated design variables after optimization.
Maximum allowed change in the time offset estimate during optimization, in seconds. Default:
0.03 (30 ms).Output options
Display each image during calibration target extraction. Enabling this flag disables interactive plots.
Step through each image individually during extraction, waiting for a keypress. Disables interactive plots.
Enable detailed debug-level logging. Also enables
--show-extraction and disables interactive plots.Do not open the PDF report on screen after calibration finishes.
Export the optimized camera-IMU poses to a CSV file with columns:
time_ns, position, quaternion.Output files
| File | Description |
|---|---|
<bag>-camchain-imucam.yaml | Camera-IMU extrinsics and time offsets |
<bag>-imu.yaml | Updated IMU calibration parameters |
<bag>-results-imucam.txt | Detailed numeric calibration results |
<bag>-report-imucam.pdf | PDF report with error statistics and plots |
<bag>-poses-imucam-imu0.csv | Optimized poses (only with --export-poses) |
IMU models
| Model string | Description |
|---|---|
calibrated | Standard IMU model with fixed scale and alignment (default) |
scale-misalignment | Adds scale factor and axis misalignment estimation |
scale-misalignment-size-effect | Adds size-effect (lever-arm) estimation on top of scale and misalignment |