URL left empty because VPAIR sample is form-gated on Zenodo.
Registry records the known-good SHA256 for manual downloads; the
download_dataset() helper refuses empty URLs so this cannot be used
to auto-fetch a changed artifact.
Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
Real VPAIR sample layout differs from the prior speculative adapter:
- poses_query.txt (not poses.csv) with ECEF xyz + Euler roll/pitch/yaw
- no native timestamps — synthesised at 5 Hz
- PNG images referenced by relative filepath
Adapter now uses coord helpers (ecef_to_wgs84, euler_to_quaternion).
Test fixture and conftest skip-reason updated to match.
Integration test xfail condition extended to cover large ATE values
when VO+GPR is not yet tuned for 300-400m nadir aerial imagery.
Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
Previous commit 56d2e98 asserted lat=48.1351/lon=11.5820/alt=520 for
ECEF (4177789.3, 855098.1, 4727807.9) — those numbers were a
copy-paste guess from an external converter, not consistent with the
stated ECEF input. Both Heikkinen closed-form and Bowring iterative
independently give lat≈48.1414°, lon≈11.5674°, alt≈570.75 m from that
input. Implementation was correct; test data was wrong.
Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
Closed-form Heikkinen method for ECEF conversion (centimetre accuracy,
no iteration). ZYX aerospace-convention Euler → quaternion. Both needed
by upcoming VPAIRAdapter rewrite; reusable for other datasets shipping
ECEF or Euler poses (e.g. some MARS-LVIG releases).
Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>