Skip to content

Queue 1: fix ESKF vertical-channel divergence - #270

Closed
jbrodovsky wants to merge 1 commit into
v1/00-test-speedfrom
v1/01-eskf-fix
Closed

Queue 1: fix ESKF vertical-channel divergence#270
jbrodovsky wants to merge 1 commit into
v1/00-test-speedfrom
v1/01-eskf-fix

Conversation

@jbrodovsky

Copy link
Copy Markdown
Owner
Branch v1/01-eskf-fix
Base v1/00-test-speed
Issues #266
Queue position 1

Why

Three confirmed defects: position error is radians in F and H but metres in inject_error_state; the velocity-attitude block of F uses a global attitude-error convention while attitude propagation, gyro-bias coupling and injection all use local; and a scalar 1e-9 covariance jitter is added to all 15 diagonal entries regardless of units.

Acceptance criteria

  • ESKF altitude bounded on test_data.csv with full GNSS aiding
  • ESKF altitude bounded under degraded GNSS
  • All three #[ignore]d ESKF tests re-enabled
  • Thresholds restated as physical bounds, not golden numbers
  • Finite-difference test of error_state_transition_jacobian with non-identity C_bn
  • Regression test: filter insensitive to ~1e-12 input perturbation
  • apply_eskf_correction and inject_error_state unified into one function
  • RBPF unaffected (it shares apply_eskf_correction)

Closes #266

Stacked on v1/00-test-speed (#269) -- review that first; this PR's diff is against it, not main.

Rebase-merge this stack, do not squash: squashing rewrites the base and forces a manual git rebase --onto on every branch above it.

Queue: docs/V1_QUEUE.md | Board: https://github.com/users/jbrodovsky/projects/7

Placeholder so the stacked PR has a diff. Replaced by the implementation.

Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
@jbrodovsky
jbrodovsky deleted the branch v1/00-test-speed September 4, 2026 20:05
@jbrodovsky jbrodovsky closed this Sep 4, 2026
jbrodovsky added a commit that referenced this pull request Sep 4, 2026
Merging queue position 0 with --delete-branch auto-closed the PR stacked on
it (#270), and GitHub then refused to reopen it because the head branch had
been force-pushed by the stack rebase. The PR had to be recreated as #285.

Record the order that avoids it: merge without deleting, retarget the child
PR to main, rebase, force-push, and only then delete the merged branch. Also
note that rebase-merge rewrites SHAs even on a fast-forward, which is why the
rebase needs --onto against a recorded tip.

Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
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