mirror of
https://github.com/azaion/gps-denied-onboard.git
synced 2026-06-22 16:31:14 +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:
@@ -1,21 +1,23 @@
|
||||
# Satellite Retrieval
|
||||
# Satellite Service
|
||||
|
||||
## 1. High-Level Overview
|
||||
|
||||
**Purpose**: Convert a query frame and prior state into ranked satellite/cache VPR chunk candidates using DINOv2-VLAD descriptors and FAISS.
|
||||
**Purpose**: Own the onboard boundary to the suite Satellite Service: import pre-flight mission cache packages, upload generated-tile packages after flight, and convert query frames into ranked local VPR candidates using preloaded DINOv2-VLAD descriptors and FAISS.
|
||||
|
||||
**Architectural Pattern**: Query service / retrieval index adapter.
|
||||
**Architectural Pattern**: Offline sync gateway + local retrieval index adapter.
|
||||
|
||||
**Upstream dependencies**: Camera ingest/calibration, cache/tile lifecycle, safety/anchor wrapper.
|
||||
**Upstream dependencies**: Camera ingest/calibration, Tile Manager, safety/anchor wrapper, Azaion Suite Satellite Service before/after flight.
|
||||
|
||||
**Downstream consumers**: Anchor verification, FDR.
|
||||
|
||||
## 2. Internal Interfaces
|
||||
|
||||
### Interface: `CandidateRetriever`
|
||||
### Interface: `SatelliteService`
|
||||
|
||||
| Method | Input | Output | Async | Error Types |
|
||||
|--------|-------|--------|-------|-------------|
|
||||
| `import_mission_cache` | `CacheImportRequest` | `CacheImportResult` | Yes | `SyncUnavailable`, `PackageInvalid` |
|
||||
| `upload_generated_tiles` | `GeneratedTileUploadRequest` | `GeneratedTileUploadResult` | Yes | `SyncUnavailable`, `PackageRejected` |
|
||||
| `retrieve` | `RetrievalRequest` | `RetrievalResult` | Yes | `IndexUnavailable`, `DescriptorFailed` |
|
||||
| `load_index` | `IndexLoadRequest` | `IndexStatus` | No | `ManifestInvalid`, `IndexUnavailable` |
|
||||
|
||||
@@ -49,11 +51,12 @@ VprCandidate:
|
||||
| Query | Frequency | Hot Path | Index Needed |
|
||||
|-------|-----------|----------|--------------|
|
||||
| Top-K FAISS search | Triggered only | No steady-state | FAISS index |
|
||||
| Import/export package sync | Pre-flight / post-flight only | No mid-flight | Package manifest and sidecar hashes |
|
||||
| Load chunk metadata | Per candidate | No | PostgreSQL/PostGIS spatial and chunk indexes |
|
||||
|
||||
## 4. Implementation Details
|
||||
|
||||
**State Management**: Holds loaded descriptor model and FAISS index handles.
|
||||
**State Management**: Holds loaded descriptor model and FAISS index handles; tracks pre-flight import and post-flight upload package status.
|
||||
|
||||
**Key Dependencies**:
|
||||
|
||||
@@ -61,16 +64,19 @@ VprCandidate:
|
||||
|---------|---------|
|
||||
| DINOv2 / ONNX / TensorRT candidate path | Query descriptor extraction |
|
||||
| FAISS CPU | Top-K retrieval |
|
||||
| Satellite Service client | Pre-flight cache import and post-flight generated-tile upload |
|
||||
|
||||
**Error Handling Strategy**:
|
||||
- If descriptor extraction or index load fails, return no candidates and trigger degraded mode.
|
||||
- Optimized engines are allowed only after descriptor-fidelity tests pass.
|
||||
- Network/package sync failures are allowed only before takeoff or after landing; during flight, the component must never call a satellite provider or suite service.
|
||||
|
||||
## 5. Caveats & Edge Cases
|
||||
|
||||
**Known limitations**:
|
||||
- VPR result is only a candidate, never an accepted fix.
|
||||
- Cross-domain retrieval can be wrong under seasonal, lighting, or terrain ambiguity.
|
||||
- External Satellite Service availability cannot be part of the mid-flight localization safety case.
|
||||
|
||||
**Performance bottlenecks**:
|
||||
- Descriptor extraction on Jetson must be trigger-limited and profiled separately from BASALT.
|
||||
|
||||
Reference in New Issue
Block a user