mirror of
https://github.com/azaion/gps-denied-onboard.git
synced 2026-06-21 18:11:13 +00:00
e114bfd9b8
The Derkachi auto-sync coordinator compares absolute tlog timestamps (from pymavlink's 8-byte record header) against absolute video timestamps (CAP_PROP_POS_MSEC, which starts at 0). Anchoring the synthetic tlog at 1_700_000_000_000_000 us (2023-11-14) produced a ~53-year offset (offset_ms=1699999995666) that always tripped the AC-9 frame-window match validator at 0% match. Setting the base to 0 puts the tlog on the same axis as the video (and matches the CSV's `Time` column, which is seconds since row 0 per `_docs/00_problem/input_data/flight_derkachi/README.md`: "the video and telemetry align at exactly three video frames per telemetry row"). Verified on Colima with GPS_DENIED_TIER=2: the offset reported by the auto-sync coordinator drops from 1699999995666 ms to -4334 ms. The remaining 4.3 s offset is NOT a synth issue — it's the tlog take-off detector (no signal in the steady-cruise CSV → defaults to samples.accel[0][0] == 0) vs the video motion-onset detector (which fires on a scenery-contrast false positive at ~4.3 s). The synth cannot fabricate a take-off spike at the right time without knowing the video motion-onset moment a priori, and the README confirms the fixture is mid-flight footage with no take-off in either signal. Resolving the remaining 4.3 s mismatch requires SUT-side work to honor the documented "manual offset bypasses auto-sync" contract — that's the scope of AZ-611. Filed as a known limitation in the commit message; AC-1..AC-6 still red until AZ-611 lands. Co-authored-by: Cursor <cursoragent@cursor.com>