mirror of
https://github.com/azaion/gps-denied-onboard.git
synced 2026-04-23 04:46:37 +00:00
docs(phase-01): add test summary for plan 01-03
35 tests pass covering ESKF-01..06 (initialization, IMU prediction, VO/satellite updates, confidence tiers, coordinate chain). Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
This commit is contained in:
@@ -0,0 +1,73 @@
|
|||||||
|
---
|
||||||
|
plan: 01-03
|
||||||
|
phase: 01-eskf-core
|
||||||
|
status: complete
|
||||||
|
completed: 2026-04-01T21:00:00Z
|
||||||
|
---
|
||||||
|
|
||||||
|
## Summary
|
||||||
|
|
||||||
|
Created comprehensive unit test suite for ESKF algorithm and real coordinate chain projection mathematics. All 35 tests pass, covering all six ESKF requirements and full pixel-to-GPS chain validation.
|
||||||
|
|
||||||
|
## Key Files Created/Modified
|
||||||
|
|
||||||
|
- `tests/test_eskf.py` (290 lines, new) — 18 ESKF tests
|
||||||
|
- `tests/test_coordinates.py` (420 lines modified, +200) — 17 new projection tests
|
||||||
|
|
||||||
|
## Test Coverage
|
||||||
|
|
||||||
|
| Category | Count | Requirement |
|
||||||
|
|----------|-------|-------------|
|
||||||
|
| ESKF Initialization | 2 | ESKF-04 |
|
||||||
|
| IMU Prediction | 4 | ESKF-01 |
|
||||||
|
| VO Update | 3 | ESKF-02 |
|
||||||
|
| Satellite Update | 3 | ESKF-03 |
|
||||||
|
| Confidence Tiers | 4 | ESKF-05 |
|
||||||
|
| Coordinate Chain | 10 | ESKF-06 |
|
||||||
|
| Integration | 2 | All |
|
||||||
|
|
||||||
|
## Commits
|
||||||
|
|
||||||
|
- `2e5436a` feat(tests): add comprehensive ESKF + coordinate chain tests (ESKF-01..06)
|
||||||
|
|
||||||
|
## Test Results
|
||||||
|
|
||||||
|
```
|
||||||
|
35 passed in 0.36s
|
||||||
|
```
|
||||||
|
|
||||||
|
## Tests by Theme
|
||||||
|
|
||||||
|
### ESKF Core Tests (18)
|
||||||
|
- **Initialization (ESKF-04)**: default init, init_from_gps
|
||||||
|
- **IMU Prediction (ESKF-01)**: covariance growth, gravity compensation, velocity integration, position propagation
|
||||||
|
- **VO Updates (ESKF-02)**: uncertainty reduction, position correction, innovation vector
|
||||||
|
- **Satellite Updates (ESKF-03)**: position correction, covariance tightening, noise-bounded covariance
|
||||||
|
- **Confidence Tiers (ESKF-05)**: HIGH/MEDIUM/LOW/FAILED states
|
||||||
|
- **State Access**: ESKFState snapshot
|
||||||
|
- **Integration**: full fusion sequence
|
||||||
|
|
||||||
|
### Coordinate Chain Tests (17)
|
||||||
|
- **K Matrix (ESKF-06)**: ADTI 20L V1 focal length, custom principal point
|
||||||
|
- **Camera-Body Rotation**: Rx(180deg) verification
|
||||||
|
- **Quaternion Rotation**: identity and 90-degree rotations
|
||||||
|
- **Pixel-to-GPS Chain**: center nadir projection, altitude scaling, off-center offsets
|
||||||
|
- **GPS-to-Pixel Inverse**: roundtrip accuracy, quaternion rotation handling
|
||||||
|
- **Transform Points**: cv2.perspectiveTransform identity, translation, empty
|
||||||
|
|
||||||
|
## Deviations
|
||||||
|
|
||||||
|
None — all acceptance criteria passed.
|
||||||
|
|
||||||
|
## Self-Check: PASSED
|
||||||
|
|
||||||
|
- [x] 18 ESKF tests covering all requirements
|
||||||
|
- [x] 17 coordinate chain tests for real projection
|
||||||
|
- [x] All tests pass with pytest (35/35)
|
||||||
|
- [x] K matrix builds correctly for ADTI 20L V1
|
||||||
|
- [x] Center pixel projects to UAV nadir
|
||||||
|
- [x] Pixel-GPS roundtrip within 1 pixel
|
||||||
|
- [x] Gravity compensation verified
|
||||||
|
- [x] Covariance growth/shrinkage validated
|
||||||
|
- [x] Confidence tier logic tested
|
||||||
|
- [x] Quaternion rotations working
|
||||||
Reference in New Issue
Block a user