# 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 |