v1.111 — estimator-robustness campaign (IEKF under noise + GNSS dropout)#250
Conversation
… GNSS dropout) The first genuinely STOCHASTIC dispersion campaign (attitude/failsafe campaigns are deterministic sweeps; here the noise IS the dispersion). Drives the real relay_iekf::Iekf against a static-hover truth across 600 seeded-random trials, each a dispersed noise + GNSS-dropout realisation (Box-Muller Gaussian): gyro σ∈[0.001,0.02], accel σ∈[0.02,0.30], GNSS σ∈[0.10,1.00], one 1-3s dropout. Invariants (all trials): tilt error bounded; position dead-reckons through the dropout then RECONVERGES after GNSS returns; NEES (nees_position chi-square consistency) stays finite+bounded (no divergence / overconfident-cov blow-up); no NaN. 600 trials, 0 failures. Worst: tilt-err 0.016 rad, dropout drift 9.5 m, reconverged 1.71 m, NEES 56.9. Regression bounds just above measured. Runs under the closed-loop-sim named gate (falcon-sitl-gz) + workspace test; rivet steps marked bench-only. FV-FALCON-SIMMC-003 (method: simulation, verifies IEKF-P01/EKF-P05). Also: bump FV-FALCON-SIMMC-002 implemented→verified (v1.110 release-tracking correction, now that its CI is green — rivet 0.23 discipline). Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
Automated review for PR #250pulseengine/relay: Verdict: 💬 Comment Summary: The changes in this pull request are focused on adding a new test for an estimator robustness campaign, which is implemented and verified. The test uses a Monte Carlo simulation to validate the safety of the NET across a dispersed regime sweep. This ensures that the estimator performs well under various conditions and meets the required safety standards. Findings: 0 mechanical (rivet) · 2 from local AI model. Findings (2):
Generated by a local AI model and post-validated against a strict JSON contract. Each finding includes the verbatim line being criticised — verify by reading the file at the cited location. Reviewed at |
The first genuinely stochastic dispersion campaign
The attitude and fail-safe campaigns are deterministic sweeps. This one is a true Monte-Carlo: the noise is the dispersion. It drives the real
relay_iekf::Iekfagainst a static-hover truth across 600 seeded-random trials, each a dispersed noise + GNSS-dropout realisation (Box-Muller Gaussian).Dispersion vector (per trial)
Invariants (all 600 trials, 0 failures)
nees_positionchi-square consistency)Using the IEKF's own NEES statistic is the aerospace estimator-consistency check — it catches an overconfident covariance (error large relative to reported uncertainty), which a pure error-magnitude bound would miss.
Discipline
(seed, index); the worst NEES trial (56.9) is identical at 600 and 2000 trials — confirms the seeding.# bench-only(heavy IEKF sim, ~49 s).FV-FALCON-SIMMC-003(method: simulation, verifies IEKF-P01 / EKF-P05).FV-FALCON-SIMMC-002implemented→verified — a v1.110 release-tracking correction (its CI is green), per the rivet 0.23 discipline now in use for planning/tracking.Honest scope
Static-hover truth (cleanly isolates noise-rejection + dropout reconvergence). Maneuvering-truth + the spoof-monitor path are the next estimator-campaign slices.
🤖 Generated with Claude Code