Research doc (2026-04-18 OSS stack audit) flagged NumPy 2.0 as silently
breaking GTSAM Python bindings (issue #2264). Pin numpy>=1.26,<2.0 and
constrain opencv-python-headless<4.11 (knock-on: 4.11+ requires numpy≥2).
Verified after downgrade:
- 196 passed / 8 skipped unit/component
- EuRoC MH_01 e2e PASS (no regression on 0.205m ESKF ATE baseline)
Plan updates in next_steps.md §5:
- cuVSLAM strategy clarified: Mono-Depth (barometer as synthetic depth),
not Mono-Inertial (needs stereo hardware we don't have)
- DINOv2-VLAD (AnyLoc) for GPR + FP16 TRT (INT8 broken for ViT on Jetson)
- GTSAM: documented that 4.2 stable is not on PyPI (only 4.3a0), so
deferred to post-sprint-1 ESKF-only path stays the right call
- VPAIR xfail root cause: no raw IMU + mock satellite index (verified
with scale=1.0 and scale=45.0 runs — ATE stays at ~1236m ESKF /
~1770km GPS regardless of scale)
- Flight controller H743 vs F405 check flagged as critical blocker
README "next steps" section rewritten to match the research-aligned plan.
Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
Updates README, testing/README, next_steps.md, and ADR 0001 with the
first real EuRoC MH_01 e2e run (100 frames, ~30s wall-time, ATE RMSE
~10.9 km → xfail). Places the EuRoC result alongside the prior VPAIR
baseline (~1770 km) so future-reader can see both failure modes at a
glance:
- VPAIR diverges because no raw IMU → ESKF never engages
- EuRoC diverges because indoor scene has no satellite anchor, so
VO+ESKF drift without an external correction
Also records the branching policy (rename ``euroc_mh01`` →
``euroc_machine_hall``; empty URL due to DSpace UI gate; manual
fetch via DOI 10.3929/ethz-b-000690084).
Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
Adds an "E2E Test Harness (Public UAV Datasets)" subsection to
§Testing Strategy explaining the three-tier adapter layout and
pointing readers at testing/README.md for architecture and ADR 0001
for selection rationale. Updates Related Artifacts to list the new
in-repo docs. next_steps.md cross-links the ADR as the authoritative
decision record (brainstorm drafts stay local).
Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
Converts the raw notes into a living roadmap:
- checklist items for each of the 4 top-level tasks
- [decision] annotations that record WHY we chose each path
(public datasets vs proprietary capture; VPAIR first vs EuRoC;
DJI Mavic deprioritised; EuRoC URL migration)
- current status of e2e harness (section 3) with real-run numbers
- chronology section so future-you can trace the timeline
Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>