Corrected Ground-Truth Smoother
The corrected ground-truth smoother is a robust GTSAM batch factor graph that produces a ground-truth-like product across all 26 INSANE flights at the PX4-IMU scoring point, with empirically calibrated per-pose covariance (code). It preserves the shipped maintainer truth where dual-fixed RTK already makes it strong, repairs the structural attitude defect documented on Ground-Truth Attitude Quality, and bridges the outdoor-to-indoor transition gap described on The Outdoor-to-Indoor Transition Handoff. Three dependency studies feed it.
The graph carries, per regime:
- IMU preintegration as a GTSAM
CombinedImuFactoroff the Kalibr noise model, supplying inertial dynamics, gravity observability, and bias evolution. - Raw dual-RTK position factors at the
rtk_gps1/rtk_gps2antenna lever arms, each weighted by its per-row covariance with the centimetre RTK floors, and a dual-antenna baseline-heading factor. - A gravity-leveling static-attitude factor at the static epoch that repairs the shipped Wahba GPS+mag attitude’s structural gravity inconsistency, plus a static zero-velocity (ZUPT) factor.
- A barometer vertical factor fused at the actual
px4_baroevent times, with a per-keyframe pressure-bias random walk that respects the sensor’s recurring dropouts.
The dual-RTK position factors are the only outdoor heading source, so attitude is validated against held-out evidence rather than self-consistency.
Outdoor and Mars Result
On the 20 outdoor/Mars runs (19 Mars missions plus outdoor_1), the smoother reproduces the trustworthy position where dual-fixed RTK supports it and repairs the attitude where the shipped solution is gravity-inconsistent.
| Quantity | Median | Worst |
|---|---|---|
| Position RMS vs maintainer truth (m) | 0.063 | 0.351 (mars_14) |
| Static-gravity tilt, recovered (deg) | 1.22 | — |
| Static-gravity tilt improvement vs shipped (deg) | 8.15 | 53.7 (outdoor_1, 16.9 → 0.28) |
| Held-out-baseline heading residual p95 (deg) | 3.11 | 6.30 |
Heading is validated by holding out the dual-antenna baseline-heading factor over a window placed in a dual-fixed-rich region, re-solving, and scoring recovered keyframe yaw against the withheld measured baseline heading versus gap length. A gyro-rate-integral consistency witness bounds the yaw-rate increment independently, and a mars_5/6/7 shipped-attitude cross-check is applied where those runs’ attitude is trustworthy. Across 2 s, 5 s, 10 s, and 20 s held-out gaps the median recovered-yaw error p95 stays at 0.4-1.6 deg; the gyro-integral witness confirms the shape datum independently.
Covariance Calibration
The formal pose marginals are optimistic. Calibration is empirical and split by RTK regime, fitting a position-variance inflation scalar against held-out NEES computed in the world frame (the body-frame marginal translation block rotated by R Cov R^T; the world-over-body NEES ratio is 0.96, so the choice of frame barely moves the position NEES):
| Regime | Keyframes | Raw NEES (median) | Variance inflation | Calibrated in-χ² fraction |
|---|---|---|---|---|
| Dual-fixed RTK | 1218 | 77.5 | 32.8× | 0.67 |
| Float RTK | 558 | 93.2 | 39.4× | 0.75 |
The raw marginals are roughly 33-39× too tight in variance on held-out segments. The calibrated covariance is exported separately from the raw formal marginals the solve carries.
Transition Result
The transition runs add the indoor mocap flank to the outdoor RTK flank through a jointly-solved ENU↔︎mocap transform T_enu_mocap and a rigid-body↔︎PX4-IMU calibration T_body_pximu, stereo visual-odometry between-factors mapped into the IMU body frame, and per-tag in-gap fiducial factors from the pooled board-fixed map. No transition run has co-temporal ground_truth_8hz and mocap_vehicle overlap, and the raw dual-RTK rows that overlap mocap_vehicle arrive at degraded RTK status, so closure comes from the visual and inertial chain across the gap rather than a direct truth-lane overlap. All three transitions converge.
| Run | Gap (s) | Recovered net gap displacement (m) | ENU↔︎mocap yaw p95 (deg) | Fiducial yaw p95 (deg) | Stereo yaw-rate p95 (deg/s) |
|---|---|---|---|---|---|
transition_1 |
4.97 | 3.19 | 0.22 | 2.13 | 4.33 |
transition_2 |
5.50 | 3.92 | 0.37 | 1.53 | 2.82 |
transition_3 |
11.11 | 3.39 | 0.70 | 1.81 | 4.08 |
The recovered net gap displacement lands in the independent 2.6-4.0 m cluster set by rs_odom onboard VIO and the marker-bridge reconstruction; the shipped ground_truth_80hz in-gap fill on transition_3 (8.05 m) is a 2.37× outlier and is excluded as a scoring lane. Transition heading is validated by three physically independent through-gap consistency checks rather than self-consistency: one rigid ENU↔︎mocap yaw that reconciles the outdoor dual-RTK heading with the indoor mocap heading, stereo yaw-rate continuity against the stereo-VO between-factors, and per-tag fiducial orientation through the board-fixed map. The gap has no fully independent absolute in-gap yaw witness, so these guard against common-mode yaw error rather than supplying a second external truth.
Dependency Studies
The Computer-Vision Feasibility Probe established that cameras can carry the transition gap and gates the vision front-end. The Visual-Inertial Bundle Adjustment provides the pooled board-fixed fiducial map and the stereo relative-pose front-end. The Camera-LRF Calibration Tests resolve the laser-range-finder beam direction with an explicit uncertainty band.
Limitations and Open Work
transition_3’s absolute board→ENU map registration is still metres off (the relative motion through the gap is correct and matches the marker-bridge cluster; the absolute placement of the board-fixed map in ENU is not). A corner-level fiducial bundle adjustment is the planned fix.- A level-then-yaw decomposition of the ENU↔︎mocap registration was tested and rejected: leveling the mocap vertical to ENU up and solving the residual yaw separately leaves
transition_1/transition_2unchanged but seedstransition_3into a worse optimizer basin that collapses the gap displacement to ~1.9 m, so the plain SO(3)-mean registration is retained for the solve and the decomposition is kept only as an A/B diagnostic. - UWB, previously treated as unusable for lack of shipped anchor geometry, is being reopened: the three ground anchors are mounted on the fixed fiducial boards at the door and are recoverable in the board frame.
- The vertical baro/LRF path and the indoor-only completion remain in progress, and the calibrated covariance still needs consolidation across all 26 flights.