Files
gps-denied-onboard/_docs/00_research/06_component_fit_matrix.md
T
2026-04-29 17:03:57 +03:00

5.4 KiB

Component Fit Matrix

Candidate Intended Role Project Constraints Checked Evidence Mismatches / Disqualifiers Status Decision Rationale
Bounded latest-frame scheduler Runtime flow control and deadline ownership 3 Hz input, <400 ms p95 latency, <=10% frame drop allowance, no batching Fact #27 Must account for dropped frames and preserve timestamp correctness Selected Prevents stale FIFO backlog and makes AC-4.1/AC-4.4 implementable
Custom planar VO/IMU module Relative motion between satellite anchors Fixed nadir monocular camera, flat-terrain assumption, FC attitude/altitude, 400 ms p95, no raw frame storage Facts #4, #9, #20 Requires calibration, time sync, covariance model, and Jetson benchmark Selected Best exact fit for v1 sensor geometry without stereo/GPL dependency
NVIDIA cuVSLAM Relative VO/VIO Jetson support, IMU fallback, visual odometry Facts #7, #20 Official docs describe stereo-visual-inertial assumptions; IMU-only degraded tracking is short-duration Rejected Good Jetson stack but wrong v1 camera/input assumptions
ORB-SLAM3 Mono-inertial SLAM baseline Monocular+IMU support Fact #8 GPLv3 product risk; generic SLAM assumptions not tailored to nadir fixed-wing Experimental only Useful offline benchmark, not selected product dependency
VINS-Fusion Mono-inertial estimator baseline Monocular+IMU support Fact #8 GPL-3.0 product risk; ROS/research integration burden Experimental only Useful reference, not selected product dependency
AnyLoc/DINOv2-VLAD style descriptors Coarse VPR over precomputed chunks Offline descriptor generation, event-triggered online query, sparse terrain, cache cap Facts #5, #6, #10, #15, #19 Raw 49,152-dimensional descriptors can violate memory/cache budgets unless compressed Selected with compression gate Strong fit as conditional top-K retrieval layer only after descriptor/index-size proof
FAISS CPU/HNSW/Flat VPR vector retrieval Jetson ARM64, local cache, bounded chunk index Fact #15 GPU packages not assumed; source-built GPU optional only Selected Conservative v1 baseline
FAISS GPU/cuVS Accelerated VPR retrieval CUDA Jetson, lower latency Fact #15 ARM64 GPU support requires source build and validation Experimental only Optimization path, not v1 assumption
Official Magic Leap SuperPoint pretrained weights Local feature extraction Cross-view candidate refinement Fact #17 Noncommercial research-only license blocks product use without separate commercial permission Rejected Do not select as v1 product dependency by default
ALIKED + LightGlue + RANSAC Learned local satellite/UAV geometric match Cross-view candidate refinement, inlier/covariance gate, license separation Facts #18, #24 Jetson speed and sparse-steppe accuracy still need benchmark Selected candidate Concrete license-cleared learned-feature path for v1 planning
SIFT/AKAZE + classical matching fallback License-safe local matching fallback No special model weights, CPU/GPU fallback Fact #10 May be weaker on cross-domain imagery and sparse fields Selected as fallback Keeps implementation unblocked and provides a legal baseline
DeDoDe Learned local feature fallback MIT-licensed model family and deployment ports Fact #25 Model size/runtime and DINOv2-related variants need validation Experimental only Useful fallback if ALIKED/SIFT miss accuracy or robustness targets
ESKF in local NED/ENU State fusion and covariance owner IMU propagation, VO, satellite anchors, false-position budget, GPS_INPUT accuracy Facts #1, #2, #9, #10 Requires calibration and Monte Carlo validation Selected Necessary to satisfy confidence and safety ACs
pymavlink GPS_INPUT emitter Primary FC output ArduPilot-only v1, GPS substitute framing, WGS84 output Facts #1, #2, #3 Must configure EKF/GPS params and validate in SITL Selected Safest v1 output path
MAVLink ODOMETRY auxiliary Rich covariance/yaw external nav ArduPilot EKF3 external nav Fact #3 Source-fusion/version risk; can double-fuse if misconfigured Needs user decision for v1.1 Deferred until SITL confirms exact release behavior
FastAPI local API Health/session/object localization API Python CV stack, OpenAPI docs, local-only service Fact #14 Must stay out of hot frame path Selected Satisfies API documentation and integration needs
SQLite/MBTiles-like package Onboard tile lookup and metadata Offline cache, random lookup, 10 GB cap, freshness metadata Facts #13, #16, #21 Must handle corruption, sidecar schema, and measured descriptor/index budget Selected with storage gate Good embedded local cache shape, but the 10 GB budget needs a packing benchmark
COG/GeoTIFF exchange Satellite Service import/export Geospatial processing, provider imagery, tile write-back ingestion Facts #16, #21 Not selected as sole hot lookup format; compression ratio must be measured Selected Good boundary format with Satellite Service
AerialVL / UAV-VisLoc adapters Early VPR and cross-view validation data Public aerial localization data with satellite references Facts #22, #23 Partial match only; not enough for FC IMU/MAVLink acceptance Selected for early validation Useful benchmark inputs, not final acceptance evidence