Files
gps-denied-onboard/_docs/02_document/tests/traceability-matrix.md
T

6.0 KiB

Traceability Matrix

Acceptance Criteria Coverage

AC ID Acceptance Criterion Test IDs Coverage
AC-01 80% of frames within 50m of real GPS FT-P-01, FT-P-03 Covered
AC-02 60% of frames within 20m of real GPS FT-P-02 Covered
AC-03 Cumulative VO drift between satellite anchors < 100m FT-P-04 Covered
AC-04 Confidence score per position estimate (high/low) FT-P-07, FT-P-08, FT-N-06 Covered
AC-05 Image registration rate > 95% FT-P-06 Covered
AC-06 System handles 350m outlier between consecutive photos FT-N-02 Covered
AC-07 System handles sharp turns with <5% overlap, <200m drift, <70° angle via satellite re-localization FT-N-01, NFT-RES-02 Covered
AC-08 System handles disconnected route segments (core feature) FT-N-01, NFT-RES-02, NFT-RES-03 Covered
AC-09 3 consecutive failures → re-localization request to ground station FT-N-05, FT-N-07 Covered
AC-10 < 400ms end-to-end per frame NFT-PERF-01 Covered
AC-11 Memory < 8GB shared NFT-RES-LIM-01, NFT-RES-LIM-04 Covered
AC-12 GPS_INPUT via MAVLink (MAVSDK) to flight controller FT-P-05, FT-P-09 Covered
AC-13 Frame-by-frame streaming, no batch/delay FT-P-09, NFT-PERF-02 Covered
AC-14 System initializes from last known GPS position FT-P-12 Covered
AC-15 Complete failure for N seconds → FC falls back to IMU, system logs NFT-RES-03, FT-N-06 Covered
AC-16 Mid-flight reboot → re-initialize from FC's IMU-extrapolated position NFT-RES-01 Covered
AC-17 Position + confidence streamed to ground station via telemetry FT-P-13, FT-P-14 Covered
AC-18 Ground station can send commands (re-localization hint) FT-N-07 Covered
AC-19 Output coordinates in WGS84 FT-P-05, FT-P-11 Covered
AC-20 Other onboard AI can request object GPS coordinates FT-P-10 Covered
AC-21 Object coordinates via trigonometric calculation (gimbal, zoom, altitude) FT-P-10, FT-P-11 Covered
AC-22 Object accuracy consistent with frame-center accuracy FT-P-10 Covered
AC-23 Satellite imagery ≥ 0.5 m/pixel NFT-RES-LIM-03 Covered (tile storage validation uses zoom 18 = 0.6m/px)
AC-24 Satellite imagery pre-loaded before flight NFT-RES-LIM-03 Covered
AC-25 MRE < 1.0 pixels NOT COVERED — requires cuVSLAM internal reprojection metric; not observable via black-box interfaces. Covered at component test level (Step 5).
AC-26 Satellite imagery < 2 years old NOT COVERED — operational procurement constraint; not runtime-testable. Validated during offline tile preparation.

Restrictions Coverage

Restriction ID Restriction Test IDs Coverage
RESTRICT-01 Fixed-wing UAV only FT-P-01 through FT-P-06 (test data from fixed-wing flight) Covered
RESTRICT-02 Camera pointing downwards, not autostabilized FT-P-10, FT-P-11 (coordinate transforms account for non-stabilized mount) Covered
RESTRICT-03 Eastern/southern Ukraine operational area FT-P-01 (test coordinates at 48.25-48.28°N, 37.34-37.39°E) Covered
RESTRICT-04 Altitude ≤ 1km, terrain height negligible FT-P-01, FT-P-10 (test data at 400m altitude, flat terrain assumed) Covered
RESTRICT-05 Mostly sunny weather NOT COVERED — environmental condition; cannot be tested in Docker. Mitigated by feature-based matching robustness.
RESTRICT-06 Sharp turns (no common points possible, exceptional) FT-N-01, FT-N-02, NFT-RES-02 Covered
RESTRICT-07 Up to 3000 photos per flight NFT-RES-LIM-04 Covered
RESTRICT-08 Two cameras: navigation (fixed nadir) + AI (configurable) FT-P-10 (object localization uses AI camera angles) Covered
RESTRICT-09 Navigation camera: FullHD to 6252x4168, known parameters FT-P-01 (test data at 6252x4168) Covered
RESTRICT-10 Jetson Orin Nano Super: 67 TOPS, 8GB, 25W TDP NFT-RES-LIM-01, NFT-RES-LIM-02, NFT-PERF-01 Covered
RESTRICT-11 Thermal throttling at sustained GPU load NFT-RES-LIM-02 Covered
RESTRICT-12 IMU data via flight controller (MAVLink) FT-P-05, FT-P-12 (SITL provides IMU via MAVLink) Covered
RESTRICT-13 GPS_INPUT message to flight controller FT-P-05, FT-P-09 Covered
RESTRICT-14 Telemetry link bandwidth-limited FT-P-13 (1Hz telemetry rate is bandwidth-appropriate) Covered
RESTRICT-15 Google Maps satellite (potentially outdated) NFT-RES-04 (tile server failure resilience) Covered
RESTRICT-16 Onboard storage limited for satellite tiles NFT-RES-LIM-03 Covered

Coverage Summary

Category Total Items Covered Not Covered Coverage %
Acceptance Criteria 26 24 2 92%
Restrictions 16 15 1 94%
Total 42 39 3 93%

Uncovered Items Analysis

Item Reason Not Covered Risk Mitigation
AC-25 (MRE < 1.0 pixels) cuVSLAM reprojection error is an internal metric not exposed via public API or MAVLink; cannot be observed at black-box level LOW — MRE is a proxy for VO quality; position accuracy tests (FT-P-01/02) validate the end result Covered at component test level (Step 5) with cuVSLAM-specific unit tests
AC-26 (Satellite imagery < 2 years old) Operational procurement constraint validated during offline tile preparation, not at runtime LOW — outdated imagery degrades matching but is caught by satellite matching accuracy tests Validated during pre-flight tile download workflow; documented in operational procedures
RESTRICT-05 (Sunny weather) Environmental condition that cannot be reproduced in Docker or controlled test environment LOW — system uses feature-based matching (LiteSAM/XFeat) robust to lighting variation; not a software test Validated during real-world flight tests; feature-based matching provides robustness