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.
camchain.yaml file is the primary output of kalibr_calibrate_cameras and the primary input to kalibr_calibrate_imu_camera. It describes one or more cameras as a chain: cam0 is always the reference camera, and each subsequent camera (cam1, cam2, …) records its pose relative to the previous one via T_cn_cnm1. After camera-IMU calibration, each camera entry is extended with T_cam_imu and timeshift_cam_imu.
Complete example
The following shows a two-camera stereo rig after camera-IMU calibration:Field reference
EachcamN entry contains the following fields.
Intrinsics and projection
Projection model for this camera. One of:
pinhole— standard perspective camera;intrinsicsis[fu, fv, pu, pv]omni— omnidirectional (Mei model);intrinsicsis[xi, fu, fv, pu, pv]eucm— Extended Unified Camera Model;intrinsicsis[alpha, beta, fu, fv, pu, pv]ds— Double Sphere model;intrinsicsis[xi, alpha, fu, fv, pu, pv]
Intrinsic parameter array. Layout depends on
camera_model:| Model | Layout | Length |
|---|---|---|
pinhole | [fu, fv, pu, pv] | 4 |
omni | [xi, fu, fv, pu, pv] | 5 |
eucm | [alpha, beta, fu, fv, pu, pv] | 6 |
ds | [xi, alpha, fu, fv, pu, pv] | 6 |
fu and fv are focal lengths in pixels; pu and pv are the principal point. For omni, xi >= 0. For ds, 0 <= alpha < 1. For eucm, 0 <= alpha < 1 and beta >= 0.Lens distortion model. One of:
radtan— radial-tangential (Brown–Conrady); 4 coefficients[k1, k2, r1, r2]equidistant— fisheye equidistant (Kannala–Brandt); 4 coefficients[k1, k2, k3, k4]fov— field-of-view model; 1 coefficient[w]none— no distortion; 0 coefficients
eucm and ds models only support none. omni only supports radtan and none.Distortion coefficients matching the selected
distortion_model. Use an empty list [] when distortion_model is none.Image resolution as
[width, height] in pixels. Both values must be positive integers.Data source
ROS image topic for this camera (e.g.
/cam0/image_raw). Kalibr reads images from this topic when processing bag files.Inter-camera extrinsics
4×4 homogeneous transformation matrix expressing the pose of this camera (
cn) in the coordinate frame of the previous camera (cn-1). Absent for cam0, which is the chain reference. Written after camera-only calibration.List of camera indices whose field of view overlaps with this camera. Used by the calibrator to determine which camera pairs share target observations. Written automatically after camera calibration.
IMU extrinsics (added by camera-IMU calibration)
4×4 homogeneous transformation matrix expressing the pose of
imu0 in the camera coordinate frame (transforms points from the IMU frame into the camera frame). Written after kalibr_calibrate_imu_camera.Time offset in seconds such that
t_imu = t_cam + timeshift_cam_imu. A negative value means camera timestamps are ahead of IMU timestamps. Written after kalibr_calibrate_imu_camera.Model combinations
Not allcamera_model / distortion_model pairs are valid. The table below shows supported combinations:
| camera_model | Supported distortion_model |
|---|---|
pinhole | radtan, equidistant, fov, none |
omni | radtan, none |
eucm | none |
ds | none |
Using this file
Pass the camchain to camera-IMU calibration with--cams:
<bagtag>-camchain-imucam.yaml, leaving the original camchain.yaml unchanged. See Output files for full naming conventions.