mirror of
https://github.com/azaion/gps-denied-onboard.git
synced 2026-04-23 02:06:36 +00:00
docs(readme): update e2e status to reflect all 5 MH sequences passing
Replace stale ATE ~10.9 km numbers with current baseline table (MH_01-05 all PASS with strict-assert, ESKF ATE 0.007–0.205 m). Add "next steps" section split into dev-pipeline vs on-device work. Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
This commit is contained in:
@@ -166,12 +166,22 @@ python scripts/download_dataset.py <dataset_name>
|
||||
|
||||
E2E-харнес гонить `FlightProcessor` як black-box через спільний `DatasetAdapter` (`src/gps_denied/testing/`). Датасети лежать у `./datasets/` (gitignored), тести пропускаються (не фейляться) коли датасету немає. Детально — у локальному design doc `.planning/brainstorms/2026-04-16-e2e-datasets-design.md` та плані `2026-04-16-e2e-datasets-plan.md`.
|
||||
|
||||
**Поточний статус реальних прогонів:**
|
||||
- **VPAIR sample** (200 кадрів fixed-wing 300-400 м над Bonn/Eifel): пайплайн завершується, ATE RMSE ~1770 км → xfail. Причина: VPAIR не ship raw IMU → ESKF-шлях не активний; VO-самостійно розходиться.
|
||||
- **EuRoC MH_01** (перші 100 кадрів indoor MAV, ASL формат): пайплайн завершується за ~30 с, ATE RMSE ~10.9 км → xfail. Raw IMU є і ESKF активний, але satellite-anchoring для indoor сцени не релевантний, тому VO+ESKF без якоря дрейфує. Експерименти з більшою довжиною/тюнінгом — після стабілізації GPR+ESKF.
|
||||
- **MARS-LVIG** — тести скіпаються (датасет не завантажений локально).
|
||||
**Поточний статус реальних прогонів (2026-04-18):**
|
||||
|
||||
### Покриття тестами (195 passed / 8 skipped — unit/component; e2e — окремо)
|
||||
| Датасет | Кадри | ESKF ATE RMSE | GPS ATE | Статус |
|
||||
|---------|-------|---------------|---------|--------|
|
||||
| EuRoC MH_01 (easy) | 100 | **0.205 м** ✅ | xfail (indoor) | PASS |
|
||||
| EuRoC MH_02 (easy) | 100 | **0.131 м** ✅ | xfail (indoor) | PASS |
|
||||
| EuRoC MH_03 (medium) | 100 | **0.008 м** ✅ | xfail (indoor) | PASS |
|
||||
| EuRoC MH_04 (difficult) | 100 | **0.009 м** ✅ | xfail (indoor) | PASS |
|
||||
| EuRoC MH_05 (difficult) | 100 | **0.007 м** ✅ | xfail (indoor) | PASS |
|
||||
| VPAIR sample (fixed-wing, outdoor) | 200 | — | ~1770 км xfail | xfail |
|
||||
| MARS-LVIG (rotary, RTK) | — | — | — | skip (датасет відсутній) |
|
||||
|
||||
EuRoC: `vo_success=99/100`, `eskf_initialized=100/100`. GPS estimate xfail — indoor, satellite tiles не релевантні.
|
||||
VPAIR: ESKF не активний (немає raw IMU), VO без якоря розходиться. Outdoor — потенційно satellite matching допоможе.
|
||||
|
||||
### Покриття тестами (70 e2e passed / 1 skipped / 2 xfailed; 195 passed / 8 skipped — unit/component)
|
||||
|
||||
| Файл тесту | Компонент | К-сть |
|
||||
|-------------|-----------|-------|
|
||||
@@ -279,8 +289,15 @@ gps-denied-onboard/
|
||||
|
||||
---
|
||||
|
||||
## Що залишилось (on-device)
|
||||
## Що залишилось (наступні кроки)
|
||||
|
||||
### Dev pipeline (захищений e2e-харнесом)
|
||||
1. **cuVSLAM як VO backend** — замінити `ORBVisualOdometry` на `CuVSLAMVisualOdometry` (metric scale, IMU fusion). Поточний `vo_scale_m=0.005` — CI-хак, cuVSLAM вирішить це коректно.
|
||||
2. **VPAIR outdoor** — перевірити satellite matching на fixed-wing outdoor сцені (VPAIR має `reference_views/`). Якщо GPS ATE покращиться — xfail → strict-assert.
|
||||
3. **Аудит solution.md** — звірити імплементацію з `_docs/01_solution/solution.md`.
|
||||
4. **Реструктуризація** — `src/gps_denied/*` → `src/*` (зайвий неймспейс).
|
||||
|
||||
### On-device (Jetson Orin Nano Super)
|
||||
1. Офлайн завантаження тайлів для зони місії → `{tile_dir}/z/x/y.png`
|
||||
2. Конвертація моделей: LiteSAM/XFeat PyTorch → ONNX → TRT FP16
|
||||
3. Запуск SITL: `docker compose -f docker-compose.sitl.yml up`
|
||||
|
||||
Reference in New Issue
Block a user