Skip to content

Physical Calibration

Point-to-pixel colors a cone only when the projected LiDAR point lands on that cone in the image. Calibration supplies the intrinsics and extrinsics that make that alignment hold.

Solve order:

  1. Intrinsics: per-camera KK and distortion in seecam_calibration_{l|r}.yaml, used to undistort at capture.
  2. Extrinsics: the 3×4 projection_matrix_l/r in params.yaml, composed as P=Kruntime[Rt]P = K_{\text{runtime}}[R \mid t].

HSV filter bounds and imu_to_lidar also live in params.yaml. They are set by other tools or by hand edit; these scripts do not produce them.

PageContents
ProcedureCapture, solve, gates, failure modes
Projection mathPP definition and runtime vs physical pixels
Intrinsics mathCheckerboard → KK, distortion, reprojection
Extrinsics mathMulti-pose board / LiDAR plane → (R,t)(R,t) via Kabsch
Legacy DLTClick correspondences on prod, plus the post-solve adjuster

Feature-branch tools assume a 9×6 internal-corner board, capture at 1920×1200, and DRIVERLESS set to the repo root. Pass board dimensions with --square-m, --board-width-m, --board-height-m.

At runtime, projected centroids should track cones at rest and in motion. A constant pixel offset usually indicates extrinsics error; radial stretch at the image edges usually indicates intrinsics error or a YAML image size other than 1920×1200.