Skip to content

v1.111 — estimator-robustness campaign (IEKF under noise + GNSS dropout)#250

Merged
avrabe merged 1 commit into
mainfrom
feat/estimator-robustness-campaign
Jul 2, 2026
Merged

v1.111 — estimator-robustness campaign (IEKF under noise + GNSS dropout)#250
avrabe merged 1 commit into
mainfrom
feat/estimator-robustness-campaign

Conversation

@avrabe

@avrabe avrabe commented Jul 2, 2026

Copy link
Copy Markdown
Contributor

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::Iekf against a static-hover truth across 600 seeded-random trials, each a dispersed noise + GNSS-dropout realisation (Box-Muller Gaussian).

Dispersion vector (per trial)

  • gyro noise σ ∈ [0.001, 0.02] rad/s, accel σ ∈ [0.02, 0.30] m/s², GNSS σ ∈ [0.10, 1.00] m
  • one GNSS-dropout window (start 5–8 s, duration 1–3 s): the filter must dead-reckon on the IMU, then reconverge when GNSS returns

Invariants (all 600 trials, 0 failures)

metric worst measured bound
tilt error (gravity aiding) 0.016 rad (~0.9°) < 0.05
dead-reckoning drift during dropout 9.5 m < 40 (divergence catch)
reconverged position error 1.71 m < 2.5
peak NEES (nees_position chi-square consistency) 56.9 < 90 (overconfidence catch)
NaN none

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

  • Reproducible from (seed, index); the worst NEES trial (56.9) is identical at 600 and 2000 trials — confirms the seeding.
  • Runs under the Closed-loop simulation named gate + workspace test; rivet steps marked # bench-only (heavy IEKF sim, ~49 s).
  • FV-FALCON-SIMMC-003 (method: simulation, verifies IEKF-P01 / EKF-P05).
  • Also bumps FV-FALCON-SIMMC-002 implemented→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

… 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>
@temper-pulseengine

Copy link
Copy Markdown
Contributor

Automated review for PR #250

pulseengine/relay:feat/estimator-robustness-campaign → pulseengine/relay:main

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):

  1. artifacts/verification/FV-FALCON-SIMMC-002.yaml:13

        status: verified
    

    The test is verified, indicating that it has been successfully executed and validated.

  2. artifacts/verification/FV-FALCON-SIMMC-002.yaml:25

        description: >
    

    The description provides a clear explanation of the purpose and functionality of the test.


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 d3ddaf9

@avrabe avrabe merged commit 4d7f6e2 into main Jul 2, 2026
55 of 56 checks passed
@avrabe avrabe deleted the feat/estimator-robustness-campaign branch July 2, 2026 19:41
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant