Files
gps-denied-onboard/_docs/00_research/03_comparison_framework.md
T

5.9 KiB

Comparison Framework

Selected Framework Type

Decision support with exact-fit component selection.

Selected Dimensions

  1. Required inputs/outputs and ownership boundaries
  2. Operating context and lifecycle fit
  3. Non-functional envelope fit: latency, memory, storage, thermal, safety
  4. Licensing and deployability
  5. Evidence quality and validation burden
  6. Security and safety failure modes
  7. Selection status

Initial Population

Component Area Candidate Option Family Inputs / Outputs Fit Summary Status
Calibration / geometry OpenCV 4.x Established production / open-source image/object points -> intrinsics, distortion, homography, inlier mask Exact utility fit; permissive production use. Selected
VO / VIO BASALT + project-owned safety/anchor wrapper Open-source production candidate nav frames + FC IMU/calibration -> relative VIO state; wrapper adds source labels, anchor fusion, calibrated confidence, and MAVLink semantics Best production candidate after user decision: permissive license, strong benchmark evidence, and lower implementation burden than custom VIO. Selected
VO / VIO OpenVINS Open-source research monocular camera + IMU -> VIO state/covariance Best covariance/reference story, but GPL-3 and generic VIO ownership make it a benchmark/reference rather than shipped core. Reference only
VO / VIO Kimera-VIO Open-source production candidate / fallback mono or stereo camera + IMU -> VIO/SLAM outputs BSD-friendly, but heavier/stereo-oriented and mono-inertial path has documented parameter caveats. Backup candidate
VO / VIO OpenCV geometry + project-owned ESKF Custom fallback nav frames + FC IMU/attitude/altitude + satellite anchors -> relative motion, absolute updates, covariance, source labels Fallback if BASALT fails project data/runtime tests; still needed as safety/anchor wrapper around any VIO library. Fallback / wrapper
VO / VIO ORB-SLAM3 Open-source research monocular/stereo/RGB-D + optional IMU -> SLAM pose Useful benchmark; GPLv3, map runtime, and initialization complexity make it poor production dependency. Rejected for production
Global retrieval DINOv2-VLAD / AnyLoc-style descriptors Current SOTA / research image/chunk -> descriptor Strong VPR evidence; trigger-only use due runtime/memory and TensorRT fidelity risk. Selected with runtime gate
Vector retrieval FAISS Established production / open-source descriptor matrix + query -> top-K IDs Exact fit for offline VPR chunk retrieval. Selected
Local matching LightGlue + DISK/ALIKED Current SOTA / open-source two images -> keypoint correspondences/scores Exact local-match interface; avoids SuperPoint license issue. Selected with runtime gate
Local matching SuperPoint + LightGlue Current SOTA / known-bad/licensing caveat two images -> matches Technically good; licensing requires explicit review. Needs user decision / fallback only
Cache imagery COG + manifest + sidecars Established geospatial format georeferenced raster + metadata -> efficient local reads Good immutable tile unit; generated tiles can be written as new COGs. Selected
Cache packaging PMTiles Established web-map archive tile pyramid -> single archive Efficient reads, but read-only; not suitable for in-flight mutable writes. Rejected for mutable cache
Estimator Custom ESKF mode machine Custom production VO/IMU/VPR/GPS-health -> WGS84 state + covariance + label Needed for source labels, covariance gates, blackout/spoofing behavior. Selected
MAVLink integration MAVSDK + pymavlink Established APIs telemetry in, GPS_INPUT out MAVSDK handles telemetry; pymavlink handles raw GPS_INPUT. Selected
FDR PostgreSQL event index + CBOR payload segments with optional Parquet export Established storage frame estimates, IMU, MAVLink, health, tiles -> bounded replayable log Matches project PostgreSQL choice while keeping compact append payloads. Selected pattern
Validation AerialVL + EuRoC + Plane SITL + representative flight Multi-source test strategy datasets/sim/flight -> AC evidence Public data is partial; final representative data is mandatory. Selected

Round 2 Decision Notes

  • OpenVINS vs custom OpenCV: OpenVINS wins if the comparison is against a naive OpenCV-only VIO implementation. The selected design is not that; it is OpenCV geometry plus a product-owned estimator/state machine, with OpenVINS used as a benchmark/reference.
  • Satellite retrieval: DINOv2-VLAD remains the best global candidate generator found, but aerial VPR sources require chunk scale/overlap tuning, dynamic top-K, and geometric verification.
  • Anchor verification: ALIKED/LightGlue remains the preferred learned local matcher, while SIFT/ORB stays as a regression/fallback baseline and SuperPoint remains license-gated.

Round 3 Decision Notes

  • User decision: BASALT is selected as the production VIO candidate.
  • Confidence/covariance: OpenVINS remains the covariance/reference baseline because its EKF exposes clearer uncertainty semantics than BASALT/Kimera.
  • Nadir support: no compared VIO library has a special fixed-wing nadir mode; the acceptance path is calibration, altitude/scale constraints, satellite anchors, and representative replay validation.

Baseline Alignment

  • "Position estimate" means WGS84 frame center emitted to FC plus a 95% covariance semi-major axis and source label.
  • "Satellite anchored" means a visual match passed VPR retrieval, local matching, RANSAC, freshness, covariance, and Mahalanobis gates.
  • "Normal flight segment" means the AC-2.1a conditions, not turns/blackout/stale imagery.
  • "Selected with runtime gate" means the API capability fits, but final deployment depends on Jetson profiling against AC-4.1 and AC-4.2.