mirror of
https://github.com/azaion/gps-denied-onboard.git
synced 2026-06-21 08:21:13 +00:00
Refactor documentation to replace the Validation Harness with a separate E2E Test Suite, updating references throughout various documents. Adjust the autodev state to reflect the transition from the Decompose phase to the Implement phase, and revise the architecture documentation to clarify system boundaries and component relationships. Enhance risk mitigation documentation to specify affected components and update the component overview diagram accordingly.
This commit is contained in:
@@ -19,6 +19,7 @@
|
||||
|
||||
- **Epic**: AZ-209
|
||||
- **Directory**: `src/camera_ingest_calibration/`
|
||||
- **Technologies**: Python, OpenCV 4.x, camera SDK/V4L2/GigE adapter boundary, calibration files, shared geometry/time helpers
|
||||
- **Public API**:
|
||||
- `src/camera_ingest_calibration/__init__.py`
|
||||
- `src/camera_ingest_calibration/types.py`
|
||||
@@ -28,13 +29,14 @@
|
||||
- `src/camera_ingest_calibration/_*.py`
|
||||
- **Owns (exclusive write during implementation)**: `src/camera_ingest_calibration/**`
|
||||
- **Imports from**: shared/contracts, shared/geo_geometry, shared/time_sync, shared/config, shared/errors, shared/telemetry
|
||||
- **Consumed by**: BASALT VIO Adapter, Satellite Service, Anchor Verification, Tile Manager, FDR And Observability, Validation Harness
|
||||
- **Consumed by**: BASALT VIO Adapter, Satellite Service, Anchor Verification, Tile Manager, FDR And Observability
|
||||
|
||||
### Component: BASALT VIO Adapter
|
||||
|
||||
- **Epic**: AZ-213
|
||||
- **Directory**: `src/basalt_vio_adapter/`
|
||||
- **Native Directory**: `src/native/basalt_bridge/`
|
||||
- **Technologies**: Python adapter, C++ native bridge, BASALT, Eigen/Sophus or BASALT math stack, OpenCV 4.x, shared time-sync contracts
|
||||
- **Public API**:
|
||||
- `src/basalt_vio_adapter/__init__.py`
|
||||
- `src/basalt_vio_adapter/types.py`
|
||||
@@ -47,12 +49,13 @@
|
||||
- `src/basalt_vio_adapter/**`
|
||||
- `src/native/basalt_bridge/**`
|
||||
- **Imports from**: Camera Ingest And Calibration, MAVLink And GCS Integration, shared/contracts, shared/geo_geometry, shared/time_sync, shared/config, shared/errors, shared/telemetry
|
||||
- **Consumed by**: Safety And Anchor Wrapper, FDR And Observability, Validation Harness
|
||||
- **Consumed by**: Safety And Anchor Wrapper, FDR And Observability
|
||||
|
||||
### Component: Safety And Anchor Wrapper
|
||||
|
||||
- **Epic**: AZ-216
|
||||
- **Directory**: `src/safety_anchor_wrapper/`
|
||||
- **Technologies**: Python state machine, OpenCV geometry helpers, covariance/gating logic, shared DTO contracts, MAVLink output DTOs
|
||||
- **Public API**:
|
||||
- `src/safety_anchor_wrapper/__init__.py`
|
||||
- `src/safety_anchor_wrapper/types.py`
|
||||
@@ -62,13 +65,14 @@
|
||||
- `src/safety_anchor_wrapper/_*.py`
|
||||
- **Owns (exclusive write during implementation)**: `src/safety_anchor_wrapper/**`
|
||||
- **Imports from**: BASALT VIO Adapter, Anchor Verification, MAVLink And GCS Integration, Camera Ingest And Calibration, shared/contracts, shared/geo_geometry, shared/time_sync, shared/config, shared/errors, shared/telemetry
|
||||
- **Consumed by**: MAVLink And GCS Integration, Tile Manager, FDR And Observability, Validation Harness
|
||||
- **Consumed by**: MAVLink And GCS Integration, Tile Manager, FDR And Observability
|
||||
|
||||
### Component: Satellite Service
|
||||
|
||||
- **Epic**: AZ-214
|
||||
- **Directory**: `src/satellite_service/`
|
||||
- **Native Directory**: `src/native/tensor_rt/`
|
||||
- **Technologies**: Python service adapter, DINOv2-VLAD descriptors, ONNX/TensorRT candidate path, CPU FAISS, offline package sync client
|
||||
- **Public API**:
|
||||
- `src/satellite_service/__init__.py`
|
||||
- `src/satellite_service/types.py`
|
||||
@@ -81,7 +85,7 @@
|
||||
- `src/satellite_service/**`
|
||||
- `src/native/tensor_rt/**`
|
||||
- **Imports from**: Camera Ingest And Calibration, Tile Manager, Safety And Anchor Wrapper, shared/contracts, shared/geo_geometry, shared/time_sync, shared/config, shared/errors, shared/telemetry
|
||||
- **Consumed by**: Anchor Verification, FDR And Observability, Validation Harness
|
||||
- **Consumed by**: Anchor Verification, FDR And Observability
|
||||
- **Network invariant**: external Satellite Service sync is allowed only pre-flight or post-flight; no mid-flight satellite-provider or suite-service calls.
|
||||
|
||||
### Component: Anchor Verification
|
||||
@@ -89,6 +93,7 @@
|
||||
- **Epic**: AZ-215
|
||||
- **Directory**: `src/anchor_verification/`
|
||||
- **Native Directory**: `src/native/feature_matching/`
|
||||
- **Technologies**: Python validation pipeline, ALIKED/DISK + LightGlue, OpenCV RANSAC/USAC, SIFT/ORB baseline, native feature-matching bridge
|
||||
- **Public API**:
|
||||
- `src/anchor_verification/__init__.py`
|
||||
- `src/anchor_verification/types.py`
|
||||
@@ -101,12 +106,13 @@
|
||||
- `src/anchor_verification/**`
|
||||
- `src/native/feature_matching/**`
|
||||
- **Imports from**: Satellite Service, Camera Ingest And Calibration, Tile Manager, shared/contracts, shared/geo_geometry, shared/time_sync, shared/config, shared/errors, shared/telemetry
|
||||
- **Consumed by**: Safety And Anchor Wrapper, FDR And Observability, Validation Harness
|
||||
- **Consumed by**: Safety And Anchor Wrapper, FDR And Observability
|
||||
|
||||
### Component: Tile Manager
|
||||
|
||||
- **Epic**: AZ-211
|
||||
- **Directory**: `src/tile_manager/`
|
||||
- **Technologies**: Python repository/policy layer, PostgreSQL/PostGIS, GDAL/rasterio COG handling, signed JSON sidecars, OpenCV/GDAL orthorectification, hash/signature validation
|
||||
- **Public API**:
|
||||
- `src/tile_manager/__init__.py`
|
||||
- `src/tile_manager/types.py`
|
||||
@@ -119,12 +125,13 @@
|
||||
- `migrations/postgresql/cache_*.sql`
|
||||
- `migrations/seed/cache_*`
|
||||
- **Imports from**: Camera Ingest And Calibration, Safety And Anchor Wrapper, shared/contracts, shared/geo_geometry, shared/time_sync, shared/config, shared/errors, shared/telemetry
|
||||
- **Consumed by**: Satellite Service, Anchor Verification, FDR And Observability, Validation Harness
|
||||
- **Consumed by**: Satellite Service, Anchor Verification, FDR And Observability
|
||||
|
||||
### Component: MAVLink And GCS Integration
|
||||
|
||||
- **Epic**: AZ-210
|
||||
- **Directory**: `src/mavlink_gcs_integration/`
|
||||
- **Technologies**: Python, MAVSDK telemetry subscriptions, pymavlink `GPS_INPUT` emission, MAVLink/QGC status messages
|
||||
- **Public API**:
|
||||
- `src/mavlink_gcs_integration/__init__.py`
|
||||
- `src/mavlink_gcs_integration/types.py`
|
||||
@@ -134,12 +141,13 @@
|
||||
- `src/mavlink_gcs_integration/_*.py`
|
||||
- **Owns (exclusive write during implementation)**: `src/mavlink_gcs_integration/**`
|
||||
- **Imports from**: Safety And Anchor Wrapper, shared/contracts, shared/time_sync, shared/config, shared/errors, shared/telemetry
|
||||
- **Consumed by**: BASALT VIO Adapter, Safety And Anchor Wrapper, FDR And Observability, Validation Harness
|
||||
- **Consumed by**: BASALT VIO Adapter, Safety And Anchor Wrapper, FDR And Observability
|
||||
|
||||
### Component: FDR And Observability
|
||||
|
||||
- **Epic**: AZ-212
|
||||
- **Directory**: `src/fdr_observability/`
|
||||
- **Technologies**: Python append/export layer, PostgreSQL event index, CBOR segment payloads, optional Parquet export, structured logging/health events
|
||||
- **Public API**:
|
||||
- `src/fdr_observability/__init__.py`
|
||||
- `src/fdr_observability/types.py`
|
||||
@@ -152,25 +160,7 @@
|
||||
- `migrations/postgresql/fdr_*.sql`
|
||||
- `migrations/seed/fdr_*`
|
||||
- **Imports from**: shared/contracts, shared/time_sync, shared/config, shared/errors, shared/telemetry
|
||||
- **Consumed by**: all runtime components, Validation Harness
|
||||
|
||||
### Component: Validation Harness
|
||||
|
||||
- **Epic**: AZ-217
|
||||
- **Directory**: `src/validation_harness/`
|
||||
- **Public API**:
|
||||
- `src/validation_harness/__init__.py`
|
||||
- `src/validation_harness/types.py`
|
||||
- `src/validation_harness/interfaces.py`
|
||||
- **Internal (do NOT import from other components)**:
|
||||
- `src/validation_harness/internal/*`
|
||||
- `src/validation_harness/_*.py`
|
||||
- **Owns (exclusive write during implementation)**:
|
||||
- `src/validation_harness/**`
|
||||
- `e2e/replay/**`
|
||||
- `e2e/reports/**`
|
||||
- **Imports from**: public runtime interfaces only, shared/contracts, shared/geo_geometry, shared/time_sync, shared/config, shared/errors, shared/telemetry
|
||||
- **Consumed by**: CI/CD pipeline and release evidence review
|
||||
- **Consumed by**: all runtime components
|
||||
|
||||
## Shared / Cross-Cutting
|
||||
|
||||
@@ -178,6 +168,7 @@
|
||||
|
||||
- **Epic**: AZ-206
|
||||
- **Directory**: `src/shared/contracts/`
|
||||
- **Technologies**: Python typed DTOs, schema/contract definitions, Markdown API-contract documents
|
||||
- **Purpose**: Shared DTOs, protocol shapes, schemas, and public contract exports.
|
||||
- **Owned by**: initial structure and shared-contract tasks under AZ-206.
|
||||
- **Consumed by**: all components.
|
||||
@@ -186,30 +177,34 @@
|
||||
|
||||
- **Epic**: AZ-207
|
||||
- **Directory**: `src/shared/geo_geometry/`
|
||||
- **Technologies**: Python geometry utilities, OpenCV 4.x, WGS84/local-frame math, homography/covariance conversions
|
||||
- **Purpose**: WGS84/local conversions, GSD, camera footprint projection, homography/covariance unit conversion, and distance calculations.
|
||||
- **Owned by**: shared geometry task under AZ-207.
|
||||
- **Consumed by**: Camera Ingest And Calibration, Safety And Anchor Wrapper, Anchor Verification, Tile Manager, Validation Harness.
|
||||
- **Consumed by**: Camera Ingest And Calibration, Safety And Anchor Wrapper, Anchor Verification, Tile Manager.
|
||||
|
||||
### shared/time_sync
|
||||
|
||||
- **Epic**: AZ-207
|
||||
- **Directory**: `src/shared/time_sync/`
|
||||
- **Technologies**: Python timestamp utilities, monotonic-clock validation, MAVLink/camera timestamp normalization, replay ordering checks
|
||||
- **Purpose**: Monotonic timestamp checks, frame-to-IMU alignment, clock-domain metadata, replay ordering, and gap/jitter metrics.
|
||||
- **Owned by**: time-sync task under AZ-207.
|
||||
- **Consumed by**: Camera Ingest And Calibration, BASALT VIO Adapter, MAVLink And GCS Integration, FDR And Observability, Validation Harness.
|
||||
- **Consumed by**: Camera Ingest And Calibration, BASALT VIO Adapter, MAVLink And GCS Integration, FDR And Observability.
|
||||
|
||||
### shared/config
|
||||
|
||||
- **Epic**: AZ-208
|
||||
- **Directory**: `src/shared/config/`
|
||||
- **Technologies**: Python configuration loader, environment variables, `.env.example`, startup readiness validation
|
||||
- **Purpose**: Runtime profile loading, environment validation, typed settings, and startup readiness inputs.
|
||||
- **Owned by**: runtime configuration task under AZ-208.
|
||||
- **Consumed by**: all runtime components and Validation Harness.
|
||||
- **Consumed by**: all runtime components.
|
||||
|
||||
### shared/errors
|
||||
|
||||
- **Epic**: AZ-208
|
||||
- **Directory**: `src/shared/errors/`
|
||||
- **Technologies**: Python exception/result envelope types, shared error categories, fail-fast helpers
|
||||
- **Purpose**: Error categories, result envelopes, fail-fast helpers, and non-silent exception contracts.
|
||||
- **Owned by**: runtime error contract task under AZ-208.
|
||||
- **Consumed by**: all components.
|
||||
@@ -218,6 +213,7 @@
|
||||
|
||||
- **Epic**: AZ-208
|
||||
- **Directory**: `src/shared/telemetry/`
|
||||
- **Technologies**: Python structured logging, metrics labels, health event DTOs, FDR-safe telemetry metadata
|
||||
- **Purpose**: Structured logging, metrics labels, health event shapes, and FDR-safe event metadata helpers.
|
||||
- **Owned by**: observability/config contract task under AZ-208.
|
||||
- **Consumed by**: all components.
|
||||
@@ -228,7 +224,6 @@ Read top-to-bottom; an upper layer may import from a lower layer but never the r
|
||||
|
||||
| Layer | Components | May import from |
|
||||
|-------|------------|-----------------|
|
||||
| 5. Validation / Evidence | Validation Harness | 1, 2, 3, 4 public interfaces |
|
||||
| 4. Runtime Output / Coordination | Safety And Anchor Wrapper, MAVLink And GCS Integration, FDR And Observability | 1, 2, 3 public interfaces |
|
||||
| 3. Perception / Satellite Anchor | BASALT VIO Adapter, Satellite Service, Anchor Verification | 1, 2 public interfaces |
|
||||
| 2. Data Ingest / Persistence | Camera Ingest And Calibration, Tile Manager | 1 |
|
||||
@@ -236,9 +231,15 @@ Read top-to-bottom; an upper layer may import from a lower layer but never the r
|
||||
|
||||
Violations of this table are Architecture findings in code-review Phase 7 and are High severity.
|
||||
|
||||
## Out-of-Product E2E Test Suite
|
||||
|
||||
The e2e replay/SITL/Jetson validation suite is not a product component and must not receive Step 6 product implementation tasks. It owns test-support artifacts under `tests/blackbox/**`, `tests/e2e/**`, `e2e/replay/**`, and `e2e/reports/**`, and it exercises the runtime only through public file, MAVLink, cache, status, and FDR interfaces.
|
||||
|
||||
- **Technologies**: Python, pytest-style runner, Docker/compose, pymavlink/log parser, ArduPilot Plane SITL, QGC observer/log parser, CSV/Markdown reports
|
||||
|
||||
## Self-Verification
|
||||
|
||||
- Every component under `_docs/02_document/components/` has a mapping entry.
|
||||
- Every runtime component under `_docs/02_document/components/` has a mapping entry.
|
||||
- Cross-cutting epics AZ-206, AZ-207, and AZ-208 have shared ownership entries.
|
||||
- Layering covers all components and keeps shared code at the bottom.
|
||||
- Component-owned paths do not overlap, except explicitly assigned native directories.
|
||||
|
||||
Reference in New Issue
Block a user