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.
The defended beam direction
The Camera-LRF Calibration Tests combine three independent constraints — an indoor flat-floor boresight fit, a transition image-space and tag-plane check, and a transition scene-range fit — into one defended beam direction, delivered as a bounded direction with explicit uncertainty rather than a false point extrinsic:
| Quantity | Value |
|---|---|
| Defended beam (nav-camera frame, z = optical axis) | [-0.042, -0.011, 0.999] |
| Off optical axis | 2.5 deg |
| Off-nadir uncertainty band | ~1.0–6.5 deg |
| Projected pixel offset from principal point | 49.6 px |
The three constraints place the off-axis magnitude at 1.0° (indoor flat-floor), 2.7° (image-space), and 6.5° (shared-scene), mutually agreeing to within 7.4°. Only the off-nadir magnitude is run-repeatable; the same three constraints place the pointed tilt at image-plane azimuths spanning ~161°, so the tilt azimuth is not defended. The 6–7° off-nadir family does not project near the nav-camera optical axis and is ruled out; the ~1–2.5° family does. The LRF lever arm is unobservable indoors and is held at zero.
The indoor flat-floor diagnostic
The indoor flat-floor leg is one of the three constraints, run in the OptiTrack rigid-body (marker) frame. 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:
- Best-conditioned full-lever closed-form: boresight (rigid-body frame)
[−0.025, +0.017, −0.9995], 1.7° off nadir, residual RMS 19 mm (≈ the 25 mm LRF spec), predicted beam ≈ pixel (1021, 751) vs principal point (1050, 732) — essentially image center. - The indoor off-nadir is only resolved to ~2–6°: the indoor lever arm is unobservable and aliases into tilt (full-lever ~1.7°, no-lever ~4°, model-free hover-slope ~6°). The z-component is stable run-to-run; the tilt azimuth is not repeatable.
- This fit is in the OptiTrack rigid-body (marker) frame, whose alignment to the PX4-IMU and nav camera is itself unknown, so it bounds rather than isolates the camera↔︎LRF tilt. It is a diagnostic input to the defended camera-frame beam above, not the current camera-frame derived result.
Bottom line
The camera↔︎LRF rotation is near identity, the beam projecting close to image center, with the defended camera-frame beam [−0.042, −0.011, 0.999] carrying an explicit ~1.0–6.5° off-nadir band; nothing finer (the tilt azimuth, the LRF lever) 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:
- undistort with the klu1 radtan intrinsics (fx 1140.57, fy 1138.23, cx 1050.43, cy 731.67) to a normalized ray;
- take the LRF boresight in camera frame as
normalize([x, y, 1]); - map
+z_camonto it.
Roll about the beam is unobservable for a 1-D LRF.