Files
Oleksandr Bezdieniezhnykh 6be207cef3 [AZ-894] [AZ-896] Add CSV-driven replay adapter + format docs
Replaces the tlog two-clock replay surface with a single-clock path
driven by the Derkachi-schema CSV. --imu is the new required CLI arg;
--tlog stays as a deprecated alias (warned + ignored when --imu set)
until AZ-895 deletes it.

* csv_ground_truth.py parses the 15-column schema, fails fast at
  startup on every documented schema fault (AC-5).
* CsvReplayFcAdapter slots into ReplayInputBundle.fc_adapter alongside
  the tlog sibling; mirrors Invariant-5 outbound wiring; inbound bus is
  intentionally a no-op since the loop reads CSV directly.
* _run_replay_loop branches on imu_csv_path, stamps
  VioOutput.emitted_at_ns from the CSV-derived frame_end_ns (AC-4),
  closing the AZ-848 two-clock surface for the new path.
* AZ-896 ships the operator-facing format spec at
  _docs/02_document/contracts/replay/csv_replay_format.md plus a
  20-row example CSV (AC-3 regression-locked).

Tests: 11 + 12 new unit tests, plus updates to AZ-401 import-boundary
and AZ-402 CLI suites. Full unit suite 2,327 passed / 86 skipped.

Co-authored-by: Cursor <cursoragent@cursor.com>
2026-05-26 18:40:29 +03:00

2.4 KiB

1timestamp(ms)TimeSCALED_IMU2.xaccSCALED_IMU2.yaccSCALED_IMU2.zaccSCALED_IMU2.xgyroSCALED_IMU2.ygyroSCALED_IMU2.zgyroSCALED_IMU2.xmagSCALED_IMU2.ymagSCALED_IMU2.zmagGLOBAL_POSITION_INT.latGLOBAL_POSITION_INT.lonGLOBAL_POSITION_INT.altGLOBAL_POSITION_INT.relative_altGLOBAL_POSITION_INT.vxGLOBAL_POSITION_INT.vyGLOBAL_POSITION_INT.vzGLOBAL_POSITION_INT.hdg
24551116.348021-3-9845232-5312-104844250.080963436.111544214129023.182-4-6-8835041
34551216.3480.1-68-9-99558-171309-101644150.080963436.111544114136023.251-5-2-8935042
44551316.3480.29108-98869-6513308-96443650.080963336.111544114141023.303-1-2-8635048
54551416.3480.3-2027-977551026310-98843850.080963336.111544114145023.348-5-6-8435057
64551516.3480.4-4040-102606510306-107644050.080963336.11154414151023.402-2-2-8635065
74551616.3480.530126-1050-17514321-114644250.080963336.11154414157023.46400-8835074
84551716.3480.6-6467-1031-31-621314-106643850.080963236.111543914164023.53-51-9035080
94551816.3480.7-22112-1027-61-88-5302-95143650.080963236.111543914171023.601-23-9035082
104551916.3480.8-123-16-998-55-104-12301-94244050.080963136.111543914177023.669-100-9135079
114552016.3480.9-64-13-100313-70-30301-93644250.08096336.111543914186023.755-20-9035073
124552116.3481-2239-9957320-18314-98843650.08096336.111543914193023.826-2-2-8835070
134552216.3481.1-49-69-9842291317-99243350.08096336.111543814201023.9-6-2-8835068
144552316.3481.2-1698-991-59-28-11310-97043550.08096336.111543814208023.975-16-8635063
154552416.3481.3-6169-998-292-2310-98343550.080962936.111543814215024.042-35-8335059
164552516.3481.4-3153-1003213-10317-104243850.080962936.111543814221024.102-33-8335051
174552616.3481.5-4721-10231313-14320-106943950.080962936.111543814227024.16622-8335047
184552716.3481.6-30-59-1020-18240315-108343850.080962936.111543914234024.236-51-8635049
194552816.3481.7-10323-1058-5926-7314-111344250.080962936.111543914243024.321-44-9035050
204552916.3481.8-1751-1037-98011317-108744450.080962936.111543914251024.404-50-9335049
214553016.3481.9-8772-1022-10-450309-100443950.080962836.11154414260024.494-62-9735046