Skip to content

v0.3.2

Choose a tag to compare

@manankharwar manankharwar released this 06 Jul 20:27
· 66 commits to main since this release

FusionCore 0.3.2

Robustness release: the outlier gate no longer has a hole under sustained
spikes, the filter survives clock rewinds instead of crashing, and the
outdoor Gazebo demo runs end to end.

Fixed

  • Sustained GPS spikes can no longer defeat the outlier gate. After
    repeated rejections, coast mode used to inflate process noise until the
    gate reopened and admitted a persistent multipath spike. Coast is now
    gated on a preceding GPS gap, so a continuously-present outlier stays
    rejected (deterministic repro: 62 m -> 1.9 m peak error; Gazebo demo
    RMSE 18.15 m -> 2.76 m, below robot_localization's 18.6 m).
  • Backward time-jumps no longer crash the filter. A non-monotonic
    timestamp (clock rewind, replayed bag, WSL2 glitch) drove the covariance
    non-positive-definite and aborted. Fixed with a clock re-sync and
    eigenvalue flooring; survives an NCLT run that used to SIGABRT in ~2 min.
  • Gazebo outdoor demo works end to end (correct robot tracking + sim time).

Added

  • gnss.max_speed: physical-plausibility gate rejecting impossible GPS jumps.
  • Adaptive magnetic-disturbance rejection (magnetometer.field_strength).
  • gnss.coast_min_gap_s, headless/start_delay launch args, WSL2 DDS profile.
  • Benchmark regression tracking (check_benchmark_regression.py).

Changed

  • Documentation accuracy pass across the benchmark and comparison pages.

Full details in CHANGELOG.md.