mirror of
https://github.com/azaion/gps-denied-onboard.git
synced 2026-06-22 14:11:13 +00:00
Update autodev state documentation to reflect progress in the Decompose phase, changing the current step from 5 to 6. Revise sub-step details to indicate a shift to phase 2, focusing on module layout for the Satellite Service and Tile Manager, and awaiting confirmation before product task decomposition. Additionally, enhance problem documentation to clarify the original still-image sample limitations and introduce the Derkachi representative fixture for improved data validation. Update references to the Tile Manager and Satellite Service throughout the documentation for consistency.
This commit is contained in:
@@ -9,16 +9,16 @@ Build a Jetson-hosted onboard localization pipeline for fixed-wing GPS-denied fl
|
||||
- Camera ingest/calibration: load frames, apply intrinsics/extrinsics, validate image quality.
|
||||
- BASALT VIO adapter: produce relative camera+IMU motion from synchronized nav frames and FC IMU.
|
||||
- Safety/anchor wrapper: own covariance calibration, source labels, degraded modes, anchor fusion, and `GPS_INPUT`.
|
||||
- Satellite retrieval: retrieve VPR chunks from offline descriptor indexes.
|
||||
- Satellite Service: sync mission cache packages before flight, upload generated-tile packages after flight, and serve local VPR candidate retrieval from the offline cache.
|
||||
- Anchor verification: run local matching/RANSAC and reject unsafe anchors.
|
||||
- Cache/tile lifecycle: manage COGs, manifests, freshness, generated tiles, and sync metadata.
|
||||
- Tile Manager: manage COGs, manifests, freshness/provenance, orthorectified generated tiles, and local tile metadata.
|
||||
- MAVLink/GCS integration: consume FC telemetry and emit `GPS_INPUT`/QGC status.
|
||||
- FDR/observability: record replayable mission evidence under storage caps.
|
||||
- Validation harness: run still-image, public dataset, SITL, Jetson, and representative replay tests.
|
||||
|
||||
### Principles / Non-Negotiables
|
||||
|
||||
- No in-flight satellite-provider calls; runtime uses offline cache only.
|
||||
- No in-flight satellite-provider or Satellite Service calls; runtime uses offline cache only.
|
||||
- BASALT is a VIO component, not the safety authority.
|
||||
- Confidence must be honest; covariance must grow in degraded modes.
|
||||
- Heavy VPR/local matching is trigger-based, not per-frame.
|
||||
@@ -42,7 +42,7 @@ Build a Jetson-hosted onboard localization pipeline for fixed-wing GPS-denied fl
|
||||
|--------|------------------|-----------|---------|
|
||||
| ArduPilot Plane FC | MAVLink | Inbound/Outbound | FC telemetry in, `GPS_INPUT` and status out |
|
||||
| QGroundControl | MAVLink telemetry | Outbound | Downsampled operator status and failsafe messages |
|
||||
| Azaion Suite Satellite Service | Offline file/cache sync | Inbound before flight, outbound after landing | Provides cache and receives generated tiles |
|
||||
| Azaion Suite Satellite Service | Offline file/cache sync | Inbound before flight, outbound after landing | Provides mission cache packages and receives generated-tile packages; never called mid-flight |
|
||||
| Public/replay datasets | File/rosbag/fixture | Inbound to validation | De-risk BASALT, VPR, and anchor logic |
|
||||
|
||||
## 2. Technology Stack
|
||||
@@ -99,10 +99,10 @@ Build a Jetson-hosted onboard localization pipeline for fixed-wing GPS-denied fl
|
||||
| TelemetrySample | FC IMU, attitude, airspeed, altitude, GPS health | MAVLink/GCS integration |
|
||||
| VioState | BASALT-relative pose/velocity/bias output and quality metadata | BASALT VIO adapter |
|
||||
| PositionEstimate | WGS84 estimate, covariance, source label, fix type, anchor age | Safety/anchor wrapper |
|
||||
| VprChunk | Retrieval unit over cache imagery and descriptors | Satellite retrieval |
|
||||
| VprChunk | Retrieval unit over cache imagery and descriptors | Satellite Service |
|
||||
| AnchorCandidate | Retrieved tile/chunk with local-match and RANSAC evidence | Anchor verification |
|
||||
| CacheTile | COG tile plus manifest and sidecar metadata | Cache/tile lifecycle |
|
||||
| GeneratedTile | In-flight orthorectified tile with trust/provenance metadata | Cache/tile lifecycle |
|
||||
| CacheTile | COG tile plus manifest and sidecar metadata | Tile Manager |
|
||||
| GeneratedTile | In-flight orthorectified tile with trust/provenance metadata | Tile Manager |
|
||||
| FdrSegment | Bounded replayable log segment | FDR/observability |
|
||||
|
||||
**Data flow summary**:
|
||||
@@ -120,8 +120,8 @@ Build a Jetson-hosted onboard localization pipeline for fixed-wing GPS-denied fl
|
||||
| Camera ingest/calibration | BASALT VIO adapter | In-process queue or shared frame bus | Streaming | Timestamp discipline is critical |
|
||||
| MAVLink telemetry | BASALT VIO adapter | In-process telemetry buffer | Streaming | IMU/attitude/altitude sync |
|
||||
| BASALT VIO adapter | Safety/anchor wrapper | Typed state messages | Streaming | Wrapper calibrates confidence |
|
||||
| Safety/anchor wrapper | Satellite retrieval | Command | Triggered request | Only on relocalization conditions |
|
||||
| Satellite retrieval | Anchor verification | Candidate list | Request-response | Dynamic top-K |
|
||||
| Safety/anchor wrapper | Satellite Service | Command | Triggered local request | Uses only preloaded cache/index data during flight |
|
||||
| Satellite Service | Anchor verification | Candidate list | Request-response | Dynamic top-K |
|
||||
| Anchor verification | Safety/anchor wrapper | Anchor decision | Request-response | Includes MRE/inliers/provenance |
|
||||
| Safety/anchor wrapper | MAVLink/GCS integration | Position/status DTO | Streaming | `GPS_INPUT` emitted frame-by-frame |
|
||||
| Safety/anchor wrapper | FDR/observability | Append-only events | Streaming | Bounded segments |
|
||||
@@ -132,7 +132,7 @@ Build a Jetson-hosted onboard localization pipeline for fixed-wing GPS-denied fl
|
||||
|-----------------|----------|------|--------------|
|
||||
| ArduPilot Plane | MAVLink | Source/system ID allowlist | Degrade/failsafe; never trust spoofed GPS blindly |
|
||||
| QGroundControl | MAVLink | FC telemetry path | Downsampled status may be delayed but local FDR remains authoritative |
|
||||
| Satellite Service | Offline cache files | Signed manifests/sidecars | Missing/stale cache causes degraded mode, not network fetch |
|
||||
| Azaion Suite Satellite Service | Offline package sync | Signed manifests/sidecars | Missing/stale cache causes degraded mode, not mid-flight network fetch |
|
||||
| Public datasets | File/rosbag | License constraints | Not final acceptance unless representative and license-compatible |
|
||||
|
||||
## 6. Non-Functional Requirements
|
||||
@@ -157,7 +157,7 @@ Build a Jetson-hosted onboard localization pipeline for fixed-wing GPS-denied fl
|
||||
**Data protection**:
|
||||
|
||||
- At rest: FDR and cache sidecars should be integrity protected; mission secrets/signing keys are not stored in code.
|
||||
- In transit: no in-flight satellite-provider network dependency; MAVLink link security depends on FC/GCS deployment.
|
||||
- In transit: no in-flight satellite-provider or Satellite Service network dependency; MAVLink link security depends on FC/GCS deployment.
|
||||
|
||||
**Audit logging**:
|
||||
|
||||
@@ -204,7 +204,7 @@ Build a Jetson-hosted onboard localization pipeline for fixed-wing GPS-denied fl
|
||||
1. JSON-only manifest — simpler, but weak for query/update scale, spatial search, and consistency.
|
||||
2. Embedded single-file metadata DB — efficient for small deployments, but rejected because the project will use PostgreSQL/PostGIS.
|
||||
|
||||
**Consequences**: The cache lifecycle component owns PostgreSQL migrations, PostGIS indexes, signature checks, and sidecar/db consistency.
|
||||
**Consequences**: The Tile Manager owns PostgreSQL migrations, PostGIS indexes, signature checks, generated-tile orthorectification metadata, and sidecar/db consistency.
|
||||
|
||||
### ADR-004: FDR Format
|
||||
|
||||
@@ -234,7 +234,7 @@ Build a Jetson-hosted onboard localization pipeline for fixed-wing GPS-denied fl
|
||||
|
||||
### ADR-005: Public Dataset Strategy
|
||||
|
||||
**Context**: Current project sample data lacks synchronized IMU and ground-truth trajectory.
|
||||
**Context**: The original still-image sample lacks synchronized IMU and ground-truth trajectory. The Derkachi fixture adds cropped nadir video synchronized with IMU and `GLOBAL_POSITION_INT` trajectory, but camera intrinsics, distortion, and camera-to-body calibration remain pending.
|
||||
|
||||
**Decision**: Prioritize MUN-FRL for synchronized nadir camera + IMU + GNSS/ground truth; use ALTO for aerial localization/VPR and long nadir trajectories; investigate Kagaru/EPFL for fixed-wing/farmland relevance; use EuRoC/UZH FPV only as VIO proxies if license-compatible.
|
||||
|
||||
|
||||
Reference in New Issue
Block a user