[AZ-219] [AZ-228] Generalize VIO component layout

Keep VIO package and native bridge paths backend-neutral so BASALT remains an implementation choice rather than a component boundary.

Co-authored-by: Cursor <cursoragent@cursor.com>
This commit is contained in:
Oleksandr Bezdieniezhnykh
2026-05-03 12:20:41 +03:00
parent 79997e39ac
commit 72a9df6b57
34 changed files with 123 additions and 114 deletions
@@ -1,21 +1,21 @@
# BASALT VIO Adapter
# VIO Adapter
**Task**: AZ-228_basalt_vio_adapter
**Name**: BASALT VIO Adapter
**Description**: Wrap BASALT as a replaceable relative VIO component with health and error behavior.
**Task**: AZ-228_vio_adapter
**Name**: VIO Adapter
**Description**: Wrap the selected relative VIO backend as a replaceable component with health and error behavior.
**Complexity**: 5 points
**Dependencies**: AZ-221_shared_geometry_time_sync, AZ-222_runtime_config_errors_telemetry, AZ-223_camera_ingest_calibration, AZ-224_mavlink_gcs_gateway
**Component**: BASALT VIO Adapter
**Component**: VIO Adapter
**Tracker**: AZ-228
**Epic**: AZ-213
## Problem
The safety wrapper needs relative VIO state from calibrated frames and FC IMU without inheriting BASALT-specific internals.
The safety wrapper needs relative VIO state from calibrated frames and FC IMU without inheriting backend-specific internals.
## Outcome
- BASALT initialization, processing, and health behavior are exposed through a replaceable adapter.
- Backend initialization, processing, and health behavior are exposed through a replaceable adapter.
- Tracking loss and timestamp mismatch are explicit.
- The adapter never emits WGS84 coordinates or safety decisions.
@@ -61,7 +61,7 @@ Then the adapter reports current VIO readiness and degradation state.
- Adapter processing must be profiled against Jetson latency/memory limits.
**Reliability**
- BASALT failures are surfaced, not hidden.
- Backend failures are surfaced, not hidden.
## Unit Tests
@@ -79,11 +79,12 @@ Then the adapter reports current VIO readiness and degradation state.
## Constraints
- BASALT is not the safety authority.
- BASALT remains the current selected backend, but package and folder names must stay backend-neutral.
- The VIO adapter is not the safety authority.
- GPL VIO dependencies remain reference-only unless explicitly approved.
## Risks & Mitigation
**Risk 1: Nadir fixed-wing fit**
- *Risk*: BASALT underperforms on low-parallax terrain.
- *Risk*: The selected VIO backend underperforms on low-parallax terrain.
- *Mitigation*: Representative replay and reference comparisons gate acceptance.
@@ -4,7 +4,7 @@
**Name**: Safety Anchor State Machine
**Description**: Own authoritative localization state, confidence, anchor fusion, degraded modes, tile-write eligibility, and MAVLink output semantics.
**Complexity**: 5 points
**Dependencies**: AZ-223_camera_ingest_calibration, AZ-224_mavlink_gcs_gateway, AZ-227_fdr_event_recorder, AZ-228_basalt_vio_adapter, AZ-231_anchor_verification_matching
**Dependencies**: AZ-223_camera_ingest_calibration, AZ-224_mavlink_gcs_gateway, AZ-227_fdr_event_recorder, AZ-228_vio_adapter, AZ-231_anchor_verification_matching
**Component**: Safety And Anchor Wrapper
**Tracker**: AZ-232
**Epic**: AZ-216
@@ -29,7 +29,7 @@ The product needs one safety authority that converts VIO, telemetry, camera qual
- Tile-write eligibility decisions.
### Excluded
- BASALT internals.
- VIO backend internals.
- MAVLink transport implementation.
- Generated tile writing.
@@ -87,7 +87,7 @@ Then only sufficiently trusted poses are eligible for generated tile writes.
## Constraints
- BASALT is not the safety authority.
- The VIO backend is not the safety authority.
- The wrapper does not call Tile Manager directly during anchor acceptance; freshness/provenance arrives through anchor evidence.
## Risks & Mitigation