Camera-LRF Boresight (Derived)

No LRF extrinsic appears in any published YAML; the deployed flight stack assumes identity. A launch/node parameter-name mismatch, R_PL written vs R_LP read, pins it to identity regardless.

The camera↔︎LRF rotation must be derived.

The nav camera and LRF are co-mounted, both nadir (the Ingenuity-analog arrangement), so the rotation is expected to be near identity.

Flat-floor least squares on indoor mocap (~334 Hz) + LRF range (~30 Hz), fitting p_z = z0 + (R·l)_z + r·(R·b)_z for boresight b, lever l, floor z0:

Conclusion: the camera↔︎LRF rotation is identity to within a few degrees, beam at image center; nothing finer is resolvable from this data.

The lrf_range value is a raw nadir-ish slant range — rotate it into the gravity frame with the IMU attitude for a vertical AGL, and reject the Laser Range Finder sentinels first.

To convert a measured beam pixel (u,v) (from a static-wall/IR-indicator recording, which is not in the download) to the rotation:

  1. undistort with the klu1 radtan intrinsics (fx 1140.57, fy 1138.23, cx 1050.43, cy 731.67) to a normalized ray;
  2. take the LRF boresight in camera frame as normalize([x, y, 1]);
  3. map +z_cam onto it.

Roll about the beam is unobservable for a 1-D LRF.

The calibration tests that aim to resolve this extrinsic more tightly are tracked under Camera-LRF Extrinsic Calibration Tests.