Adds sliding-window drift detector that compares cumulative path lengths of visual odom and wheel odom over a configurable window (default 10 s). Drift = |vo_path − wheel_path|; flagged when ≥ 0.5 m (configurable). OdomBuffer handles per-source rolling storage with automatic age eviction. Publishes Bool on /saltybot/vo_drift_detected and Float32 on /saltybot/vo_drift_magnitude at 2 Hz. 27/27 pure-Python tests pass. Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
Description
SaltyLab self-balancing bot firmware (STM32F722)
Languages
Python
67.1%
C
11.4%
JavaScript
9.2%
OpenSCAD
7.8%
HTML
1.5%
Other
2.9%