Skip to content

odometry_fusion: one error-state filter for every source, with or without an IMU - #3

Open
jeff-hykin wants to merge 14 commits into
fused_odomfrom
jeff/fix/eskf_anchor_and_absolute
Open

jeff-hykin wants to merge 14 commits into
fused_odomfrom
jeff/fix/eskf_anchor_and_absolute

Conversation

@jeff-hykin

@jeff-hykin jeff-hykin commented Oct 16, 2026 •

Copy link
Copy Markdown
Member

Replaces the no-IMU blend and its patches with one ESKF (constant-velocity prediction without an IMU, sources fused by kind: pose, twist or pose_delta, planar mode in both); on an R1 replay jitter drops from 13.8 mm (Point-LIO alone) to 4.9 mm.

…g a source out

Without an IMU an absolute source pulls the blended pose back by a per-dimension scalar Kalman gain, so the low-noise source carries the short term and the absolute one the long term. With an IMU its pose is an absolute fix. A rejected delta now re-anchors to the filter pose instead of leaving every later target behind, and a source rejected for a second straight is fused ungated.
…ariance, and test what each fix changes"

This reverts commit aaafadb.
… velocity without an IMU

Sources declare a kind: pose (aligned once, then absolute), twist (body velocity) or
pose_delta (relative motion by stochastic cloning). Replaces the no-IMU blend, anchored
deltas and per_dimension_error_variance; planar mode pins z, roll and pitch by projection.
@jeff-hykin jeff-hykin changed the title odometry_fusion: absolute sources, and a rejected source can't be locked out odometry_fusion: one error-state filter for every source, with or without an IMU Oct 16, 2026
…ces, in both modes

per_dimension_error_variance went with the old IMU-only rows, but besides the planar case
(now `planar`) it held a base that cannot slide sideways to vy = 0; nothing replaced that.
…hey could only drag its bias, and real rocking tilted the filter
…ocity and, without an IMU, holds the motion model still, so the pose settles instead of wandering under a pose source's noise
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