Files
gps-denied-onboard/_docs/00_problem/input_data/flight_derkachi/README.md
T
Oleksandr Bezdieniezhnykh 940066bee2 chore: WIP pre-implement
Co-authored-by: Cursor <cursoragent@cursor.com>
2026-05-26 17:09:13 +03:00

4.0 KiB
Raw Blame History

Derkachi Representative Flight Fixture

Files

File Description Observed Metadata
flight_derkachi.mp4 Cropped nadir flight footage for replay H.264, 880 x 720, 30 fps, about 490.07 s
data_imu.csv Flight-controller telemetry trace exported from the tlog 4,900 rows at 10 Hz from Time=0.0 to 489.9; includes SCALED_IMU2 and GLOBAL_POSITION_INT trajectory fields

Test Use

Use this fixture for video/telemetry synchronization checks, representative replay smoke tests, VIO hot-path latency, frame-drop accounting, and trajectory comparison against GLOBAL_POSITION_INT. The video and telemetry align at exactly three video frames per telemetry row. Camera intrinsics, lens distortion, raw camera resolution, and exact camera-to-body calibration are still unknown, so this fixture is not sufficient by itself for final production camera calibration or satellite-anchor accuracy claims.

For the test recording, the rotating camera was mechanically fixed in a downward/nadir orientation. Treat the MP4 as a cleaned/cropped replay fixture rather than the raw camera feed.

Derkachi C6 reference seeding (cycle 3 — AZ-777 + Epic AZ-835)

The end-to-end replay pipeline needs the C6 tile cache pre-populated with the satellite imagery that covers this flight. The seed scripts live under tests/fixtures/derkachi_c6/:

Script Purpose
tests/fixtures/derkachi_c6/seed_region.py (AZ-777 Phase 2) Bbox-driven seed. Calls POST /api/satellite/request on the running satellite-provider to onboard the Derkachi area (~50.0550.15 lat, 36.0536.15 lon, zoom 1518). Companion to the existing bbox-download workflow.
tests/fixtures/derkachi_c6/seed_route.py (AZ-838 / Epic AZ-835 C2) Route-driven seed. Reads derkachi.tlog, extracts a ≤ 10-waypoint corridor via replay_input.tlog_route.extract_route_from_tlog, posts it to satellite-provider's Route API, polls until mapsReady=true, and verifies coverage via inventory. ~100× more tile-efficient than the bbox path for this clip.
tests/fixtures/derkachi_c6/bbox.yaml Derkachi bbox + zoom levels + license-attribution metadata (Google Maps Platform ToS + "Imagery © Google" attribution string).
tests/fixtures/derkachi_c6/README.md Step-by-step re-seeding instructions when the satellite-provider postgres is wiped; license-attribution operators must propagate; pointer to the parent-suite ticket (TBD) for migrating to a true CC-BY satellite source for production.

Both seed scripts require:

  • A running satellite-provider reachable at SATELLITE_PROVIDER_URL (typically https://satellite-provider:8080 inside the Jetson compose network).
  • A valid JWT — either SATELLITE_PROVIDER_API_KEY env var or --auto-mint-jwt (uses scripts/mint_dev_jwt.py).
  • SATELLITE_PROVIDER_TLS_INSECURE=1 if the parent suite is using the self-signed dev cert (development only — production deploys must validate against a CA-issued cert).

The end-to-end orchestrator test tests/e2e/replay/test_az835_e2e_real_flight.py (AZ-840) takes only (derkachi.tlog, flight_derkachi.mp4, khp20s30_factory.json) and runs the full 7-step pipeline against a populated C6 — see _docs/02_document/contracts/replay/replay_protocol.md Invariant 12.b for the orchestration.

License attribution caveat (cycle 3)

The Jetson satellite-provider instance downloads from the Google Maps satellite layer (lyrs=s), governed by Google Maps Platform Terms of Service. This fixture and the seed scripts are dev/research use only. Production deployment requires either:

  • Google Maps Platform licensing review for offline-cache use, OR
  • A parent-suite ticket to switch satellite-provider's upstream to a true CC-BY satellite source (Esri World Imagery, Mapbox satellite, Sentinel-2, etc.).

The "Imagery © Google" attribution string is recorded in the seeded catalog's metadata and must be propagated downstream by any operator workflow that surfaces the imagery.