Debugging a live filter run is painful. You get a bad trajectory, but by the time you notice it the moment is gone and you can't reproduce it without re-running the whole bag from scratch with the same random seed and timing.
The ask is a mode where FusionCore can replay a recorded sensor sequence and produce bit-identical output every time. This means:
- No wall-clock timestamps in the state update path when running in replay mode
- Deterministic sigma point generation (fixed seed or fully deterministic math)
- A way to dump and restore the full filter state at any point so you can bisect a bad run
Practically, the workflow would look like: record a bag, replay it with FusionCore in deterministic mode, tweak a parameter in the YAML, replay again, diff the trajectories. Right now you can do this but small timing differences between replays make the output non-identical which makes parameter sensitivity analysis really hard.
robot_localization has had this open since at least 2022 and it never shipped. The core issue is that their architecture mixes wall time and message time in ways that are hard to untangle. FusionCore already uses message timestamps for all sensor updates so this should be significantly cleaner to implement.
Low priority but would make the benchmarking story a lot stronger and help users debug their configs without needing hardware in the loop every time.
Debugging a live filter run is painful. You get a bad trajectory, but by the time you notice it the moment is gone and you can't reproduce it without re-running the whole bag from scratch with the same random seed and timing.
The ask is a mode where FusionCore can replay a recorded sensor sequence and produce bit-identical output every time. This means:
Practically, the workflow would look like: record a bag, replay it with FusionCore in deterministic mode, tweak a parameter in the YAML, replay again, diff the trajectories. Right now you can do this but small timing differences between replays make the output non-identical which makes parameter sensitivity analysis really hard.
robot_localization has had this open since at least 2022 and it never shipped. The core issue is that their architecture mixes wall time and message time in ways that are hard to untangle. FusionCore already uses message timestamps for all sensor updates so this should be significantly cleaner to implement.
Low priority but would make the benchmarking story a lot stronger and help users debug their configs without needing hardware in the loop every time.