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

4.3 KiB

Comparison Framework

Selected Framework Type

Mode B weak-point assessment with exact-fit validation.

Selected Dimensions

  1. Functional fit against the Project Constraint Matrix.
  2. Licensing and productization risk.
  3. Jetson runtime and memory fit.
  4. Cache/storage fit.
  5. Validation evidence quality.
  6. Security/safety impact.
  7. Selection status.

Initial Population

Component Area Candidate / Decision Functional Fit Runtime / Storage Fit Evidence Status
Runtime scheduling Bounded latest-frame scheduler with explicit drop/backpressure policy Fits AC-4.1 frame-drop allowance and AC-4.4 no-batching requirement Prevents stale FIFO backlog when a frame takes near the 400 ms p95 budget Fact #27 Selected
Relative motion Custom planar VO/IMU Fits fixed nadir monocular camera, flat terrain, FC attitude/altitude, and covariance output Must run on downsampled/ROI imagery and skip under load Facts #4, #9, #20 Selected
Relative motion NVIDIA cuVSLAM Official docs emphasize stereo-visual-inertial SLAM; not exact-fit for one fixed monocular nav camera Good Jetson stack, but wrong input assumptions for v1 Facts #7, #20 Rejected for v1
Coarse VPR AnyLoc/DINOv2-VLAD over chunks Good retrieval shape for cross-domain top-K, conditional invocation only 49,152-d descriptors require PCA/quantization/index-size proof Facts #5, #6, #19 Selected with compression gate
Local refinement Official Magic Leap SuperPoint weights Good technical candidate for local features Product license blocks commercial use without separate grant Fact #17 Rejected for product v1
Local refinement ALIKED + LightGlue Names a concrete license-cleared learned-feature candidate Needs Jetson benchmark, ONNX/TensorRT proof, and cross-domain accuracy proof Facts #18, #24 Selected candidate
Local refinement OpenCV SIFT/AKAZE + classical matching Commercial-safe baseline for geometric verification and regression tests May be weaker on cross-domain sparse fields Facts #10, #26 Selected baseline
Local refinement DeDoDe MIT-licensed learned-feature fallback with ONNX/TensorRT ports Model size/runtime and DINOv2-related variants need validation Fact #25 Experimental only
State estimation ESKF in local NED/ENU Owns covariance, source labels, outlier rejection, and false-position budget CPU feasible if bounded; needs Monte Carlo calibration Facts #1, #2, #9, #10 Selected
Flight-controller output pymavlink GPS_INPUT only for v1 Matches ArduPilot replacement-GPS framing Low runtime load; fields must be honest raw-GPS-sensor values Facts #1, #2, #3 Selected
Flight-controller output Dual GPS_INPUT + ODOMETRY Richer covariance/yaw semantics, but overlaps source fusion Version-specific EKF risk remains Fact #3 Deferred to v1.1
Cache 0.3-0.5 m/px COG/GeoTIFF exchange + SQLite package Correct service/onboard split 10 GB budget requires measured compression + descriptor/index proof Facts #13, #16, #21 Selected with storage gate
Validation Public datasets only Useful for VPR/cross-view early proof Does not cover project FC IMU timing and ArduPilot injection Facts #22, #23 Insufficient alone
API FastAPI local service Fits OpenAPI/local control/object localization Keep out of hot path; default docs at /docs, /redoc, OpenAPI path configurable Fact #14, Context7 FastAPI docs Selected

Rejected / Deferred Candidates

Candidate Reason
Official SuperPoint pretrained weights as direct product dependency Noncommercial research license blocks product use without separate commercial permission.
Uncompressed AnyLoc VLAD descriptors in the runtime cache 49,152-dimensional descriptors can consume hundreds of MB to GB once multi-scale chunks and variants are included.
Per-frame DINOv2 VPR Wastes latency/thermal budget and conflicts with AC-8.6 conditional VPR.
GPS_INPUT + ODOMETRY dual emission in v1 Still too risky without version-pinned ArduPilot SITL proving no source double-fusion.
Public datasets as final validation substitute They do not replace FC IMU, camera timing, thermal, and MAVLink injection evidence from the actual deployment stack.