Files
gps-denied-onboard/_docs/00_research/01_source_registry.md
T
Oleksandr Bezdieniezhnykh 9eba1689b3 - Introduced a new document detailing the current state of the autodev process, including steps, status, and findings.
- Revised acceptance criteria in the acceptance_criteria.md file to clarify metrics and expectations, including updates to GPS accuracy and image processing quality.
- Enhanced restrictions documentation to reflect operational parameters and constraints for UAV flights, including camera specifications and satellite imagery usage.
- Added new research documents for acceptance criteria assessment and question decomposition to support ongoing project evaluation and decision-making.
2026-04-26 14:28:10 +03:00

26 KiB
Raw Blame History

Source Registry — Phase 1 (AC & Restrictions Assessment)

Tier legend: L1 = official spec / standard / reference manual; L2 = peer-reviewed paper or tool from a vendor / SOTA author; L3 = vendor docs, popular OSS repo, expert blog; L4 = forum post, secondary blog.

ID Tier Title URL Used for
S01 L2 Xu et al., UAV-VisLoc: A Large-scale Dataset for UAV Visual Localization (arXiv 2405.11936, May 2024) https://arxiv.org/html/2405.11936v1 Fixed-wing UAV visual localization benchmark; 405840 m altitudes; 0.3 m/px Google Earth satellite reference
S02 L2 Xu et al., Exploring the best way for UAV visual localization under Low-altitude Multi-view Observation Condition: a Benchmark (AnyVisLoc, arXiv 2503.10692, 2025) https://arxiv.org/html/2503.10692v1 SOTA recall@Xm numbers; 74.1% @ 5 m at 30300 m altitude
S03 L2 He et al., AerialVL: A Dataset, Baseline and Algorithm Framework for Aerial-Based Visual Localization With Reference Map (RA-L 2024) https://ieeexplore.ieee.org/document/10632587 ; https://github.com/hmf21/AerialVL Fixed-wing aerial VPR + visual alignment + VO benchmark; 70 km of trajectories; FLIR + gimbal + NovAtel GNSS 1.5 m RMS
S04 L2 Schmidt-Salzmann et al., Visual Place Recognition for Aerial Imagery: A Survey (arXiv 2406.00885, 2024) + aero-vloc benchmark https://arxiv.org/abs/2406.00885 ; https://github.com/prime-slam/aero-vloc VPR methods (AnyLoc, CosPlace, EigenPlaces, MixVPR, NetVLAD, SALAD, SelaVPR) for aerial domain
S05 L2 Keetha et al., AnyLoc: Towards Universal Visual Place Recognition https://anyloc.github.io/ ; https://github.com/AnyLoc/AnyLoc DINOv2 + VLAD VPR, training-free, strong on aerial cross-domain
S06 L2 Ali-bey et al., MixVPR: Feature Mixing for Visual Place Recognition (arXiv 2303.02190) https://arxiv.org/abs/2303.02190 Lightweight VPR aggregation, 94.6% R@1 Pitts250k
S07 L2 Lindenberger et al., LightGlue: Local Feature Matching at Light Speed https://github.com/cvg/LightGlue Real-time matcher (with SuperPoint)
S08 L2 Potje et al., XFeat: Accelerated Features for Lightweight Image Matching (CVPR 2024) https://openaccess.thecvf.com/content/CVPR2024/papers/Potje_XFeat_Accelerated_Features_for_Lightweight_Image_Matching_CVPR_2024_paper.pdf ; https://github.com/verlab/accelerated_features 5× faster than LightGlue, designed for embedded; semi-dense option
S09 L2 Leroy et al., Grounding Image Matching in 3D with MASt3R (ECCV 2024) https://arxiv.org/abs/2406.09756 Cross-view 3D-grounded matching; +30% AUC on Map-free
S10 L3 fettahyildizz/superpoint_lightglue_tensorrt (TRT 8.5.2.2, dynamic shapes) https://github.com/fettahyildizz/superpoint_lightglue_tensorrt TensorRT-ready SuperPoint+LightGlue C++
S11 L3 yuefanhao/SuperPoint-LightGlue-TensorRT https://github.com/yuefanhao/SuperPoint-LightGlue-TensorRT RTX3080 baseline: SP 0.95 ms + LG 2.54 ms @ 320×240 = 286 FPS
S12 L3 qdLMF/LightGlue-with-FlashAttentionV2-TensorRT (Jetson Orin NX, CUTLASS plugin) https://github.com/qdLMF/LightGlue-with-FlashAttentionV2-TensorRT Jetson Orinclass deployment proof
S13 L3 fabio-sim/LightGlue-ONNX (FP8) https://github.com/fabio-sim/LightGlue-ONNX ONNX/TRT path for matchers
S14 L1 NVIDIA — JetPack 6.2 brings Super Mode to Jetson Orin Nano and Orin NX https://developer.nvidia.com/blog/nvidia-jetpack-6-2-brings-super-mode-to-nvidia-jetson-orin-nano-and-jetson-orin-nx-modules/ Confirms 67 TOPS sparse INT8, 15/25 W/MAXN SUPER modes, 8 GB shared LPDDR5
S15 L1 NVIDIA — Jetson Orin Nano / Orin NX / AGX Orin Power & Performance https://docs.nvidia.com/jetson/archives/r35.6.1/DeveloperGuide/SD/PlatformPowerAndPerformance/ Power-mode specifics, throttling behaviour
S16 L1 ArduPilot — MAVProxy GPSInput module https://ardupilot.org/mavproxy/docs/modules/GPSInput.html GPS1_TYPE=14 (MAVLink); GPS_INPUT message fields
S17 L1 ArduPilot — MAVProxy GPSInput source https://github.com/ArduPilot/MAVProxy/blob/master/MAVProxy/modules/mavproxy_GPSInput.py Reference impl for GPS_INPUT injection
S18 L3 mavlink/MAVSDK-Python issue #320 — Input external gps through mavsdk https://github.com/mavlink/MAVSDK-Python/issues/320 MAVSDK has no native GPS_INPUT support — must use pymavlink
S19 L1 PX4 PR #21244, #23366 — Add GPS spoofing state / EKF2 spoofing GPS check https://github.com/PX4/PX4-Autopilot/pull/21244 ; https://github.com/PX4/PX4-Autopilot/pull/23366 PX4 spoofing flag, ~1 s hysteresis; EKF2 disables GNSS fusion when spoofed
S20 L1 PX4 PR #23346 — EKF2 fix timeout after gps failure https://github.com/PX4/PX4-Autopilot/pull/23346 Dead-reckoning timeout logic
S21 L1 PX4 issue #23970 — COM_POS_FS_DELAY does not take effect https://github.com/PX4/PX4-Autopilot/issues/23970 Failsafe delay parameter behaviour (default 1 s)
S22 L1 Google — Map Tiles API Policies https://developers.google.com/maps/documentation/tile/policies Explicit prohibition: "Offline uses … Image analysis, Machine interpretation, Object detection or identification, Geodata extraction or resale"
S23 L1 Google — Maps Platform Terms of Service https://developers.google.com/maps/terms Prohibits use "with any products, systems, or applications for … any systems or functions for automatic or autonomous control of vehicle behavior"
S24 L1 Microsoft — Bing Maps Terms of Use (April 2024) https://www.bingmapsportal.com/terms/TermsApril2024 Bing tiles cannot be cached/stored offline; tile URLs are not stable
S25 L1 Maxar/Vantor — Vivid Mosaic 30 cm Basemaps https://maxar.com/precision ; https://developers.maxar.com/docs/ordering/guides/vivid-standard-30 30 cm global mosaic (135 M km²), 15 cm urban mosaic (7 M km²), AI change detection refresh; ~$2532/km² archive
S26 L1 Airbus — Order Pléiades Neo (30 cm) https://space-solutions.airbus.com/imagery/how-to-order-imagery-and-data/how-to-order-pleiades-neo/ Pléiades Neo 30 cm, OneAtlas tasking; ~€58.50/km² volume tier
S27 L1 Planet Community — Commercial imagery pricing https://community.planet.com/advanced-analysis-apis-81/commercial-imagery-pricing-4926 SkySat / PlanetScope pricing tiers
S28 L3 EOX — Sentinel-2 cloudless (s2maps.eu) https://s2maps.com/ Free 10 m/px global mosaic; updated annually; CC-BY-NC for non-commercial
S29 L3 UAV Coach — GSD calculator https://uavcoach.com/gsd-calculator/ GSD = (alt × sensor_w) / (focal × image_w); validates ~24 cm/px at 1 km AGL with full-frame 24 mm
S30 L2 Mid-Air dataset (synthetic, quadcopter, IMU + GPS + 420k frames) https://midair.ulg.ac.be/ Training-time augmentation candidate (synthetic)
S31 L2 AgriLiRa4D (LiDAR + 4D radar + IMU, 518 m AGL agriculture) https://arxiv.org/html/2512.01753v1 Out of altitude band — only useful for SLAM regression baselines
S32 L2 Survey & comparison of ORB-SLAM3 / VINS-Fusion / DROID-SLAM / RTAB-Map https://article.isarpublisher.com/viewArticle/Numerical-Evaluation-and-Comparative-Analysis-of-Visual-Inertial-SLAM-Algorithms-ORB-SLAM3-VINS-Fusion-DROID-SLAM-and-RTAB-Map VIO drift baselines
S33 L3 nicholasaleks/Damn-Vulnerable-Drone wiki — GPS Data Injection https://github.com/nicholasaleks/Damn-Vulnerable-Drone/wiki/GPS-Data-Injection Confirms ArduPilot blends GPS sources by quality; security implications of GPS_INPUT
S34 L1 QGroundControl — StatusTextHandler / RequestMessageState API https://api.qgroundcontrol.com/master/classStatusTextHandler.html STATUSTEXT pipeline used for companion-computer comms
S35 L4 mavlink/qgroundcontrol issue #7599 — Display Companion Status on QGC https://github.com/mavlink/qgroundcontrol/issues/7599 Companion-computer status display gap; ONBOARD_COMPUTER_STATUS workflow
S36 L2 Bian et al., ViewBridge: Revisiting Cross-View Localization from Image Matching (arXiv 2508.10716, 2025) https://arxiv.org/abs/2508.10716 CVFM benchmark, 32,509 cross-view pairs, BEV projection + similarity refinement
S37 L2 OrthoLoC (2025) — UAV-to-orthographic 6-DoF localization with AdHoP refinement (referenced in cross-view SOTA results) Compatible with any matcher; ↑95% match quality, ↓63% translation error
S38 L3 LAND INFO — Satellite imagery pricing https://www.landinfo.com/satellite-imagery-pricing.html Cross-vendor reference pricing (WV-3/4 30 cm pansharpened: $25.5032.50/km² archive vs new)
S39 L2 Cross-view UAV-satellite matching survey (MDPI Sensors 2024) https://www.mdpi.com/1424-8220/24/12/3719 RDS 84.40%, MA@20 83.35% — practical accuracy ceiling for cross-view in mostly-nadir setup

Coverage notes

  • Multiple L1/L2 sources for every quantitative AC line (accuracy, MRE, latency, hardware envelope, tile size).
  • The Google Maps + Bing Maps offline-prohibition findings have two L1 sources each (terms of service + dev-platform AUP).
  • The "fixed-wing 1 km AGL with public IMU" gap is a finding, not a fixable source — no public dataset matches all four constraints simultaneously.

Mode B (Solution Assessment) sources — appended 2026-04-26

ID Tier Title URL Used for
S40 L1 NVIDIA Jetson AI Lab — Benchmarks (DINOv2-base-patch14, ViT-base, CLIP-ViT-base) https://www.jetson-ai-lab.com/archive/benchmarks.html Measured Orin Nano Super throughput: DINOv2-base-patch14 = 126 inf/s (Super), 75 inf/s (original); CLIP-ViT-base/16 = 161 inf/s; ViT-base/16 = 158 inf/s. Real numbers for AnyLoc backbone (W2.a / W9.a).
S41 L1 ArduPilot — Non-GPS Position Estimation (dev docs) https://ardupilot.org/dev/docs/mavlink-nongps-position-estimation.html ODOMETRY is the preferred external-nav method in ArduPilot (over VISION_POSITION_ESTIMATE and over GPS_INPUT for non-GPS-substitute use). Carries quaternion, velocity, 21-element pos+attitude covariance, and a quality field (-1=failed → 100=best). VISO_QUAL_MIN gates ignored messages.
S42 L1 ArduPilot PR #19563 — VisualOdom: Support ODOMETRY mavlink message https://github.com/ArduPilot/ardupilot/pull/19563 ODOMETRY support landed Dec 2021 for the Plane stack as well as Copter; tested with ModalAI VOXL VIO.
S43 L1 ArduPilot PR #30080 — External nav+gps fix https://github.com/ArduPilot/ardupilot/pull/30080 Active 2025 work on source-switching when running external nav alongside GPS — confirms there are real edge cases when migrating between GPS_INPUT and ODOMETRY mid-flight. Relevant to AC-NEW-2 (spoofing-promotion latency).
S44 L1 ArduPilot Plane — MAVLink2 Signing https://ardupilot.org/plane/docs/common-MAVLink2-signing.html Signing is per-link, USB bypasses signing, keys live in FRAM (32-byte secret + timestamp). Configured via Mission Planner. Production-mature in ArduPilot 4.5+ but key-distribution is an operator step.
S45 L3 mavlink-router issue #436 — Stack-based buffer overflow in ConfFile::get_sections https://github.com/mavlink-router/mavlink-router/issues/436 Public, easily-triggered overflow in config-file parsing of mavlink-router. Repo has no formal security policy / no SECURITY.md. Direct attack surface for any project that uses mavlink-router on the companion.
S46 L2 Ali-bey et al., BoQ: A Place is Worth a Bag of Learnable Queries (CVPR 2024) https://arxiv.org/abs/2405.07364 ; https://github.com/amaralibey/bag-of-queries New VPR SOTA (CVPR 2024); cross-attention over learnable queries; works on CNN + ViT backbones; outperforms NetVLAD, MixVPR, EigenPlaces + outperforms two-stage (Patch-NetVLAD, TransVPR, R2Former) at lower cost. DinoV2 results added Nov 2024.
S47 L2 Izquierdo & Civera, DINOv2 SALAD: Optimal Transport Aggregation for VPR (CVPR 2024) https://serizba.github.io/salad.html ; https://github.com/serizba/salad DINOv2 + Sinkhorn-based optimal-transport VLAD aggregation; R@1 75% on MSLS Challenge, 92.2% on MSLS Val, 76% on NordLand. Already in aero-vloc benchmark, so we get an apples-to-apples bench against AnyLoc/MixVPR/EigenPlaces.
S48 L2 Shen et al., GIM: Learning Generalizable Image Matcher From Internet Videos (ICLR 2024 spotlight) https://arxiv.org/abs/2402.11095 ; https://github.com/xuelunshen/gim ; https://xuelunshen.com/gim Self-training on 50 h of YouTube videos → 8.418.1% relative zero-shot improvement over LightGlue / RoMa / DKM / LoFTR baselines. ZEB benchmark (zero-shot evaluation). Same architecture, more general training.
S49 L2 AerialExtreMatch: A Benchmark for Extreme-View Image Matching and UAV Localization https://openreview.net/forum?id=5a5T3IW2B6 1.5 M synthetic image-pair benchmark with 32 difficulty levels (overlap × scale × pitch). Real-world UAV localization subset. Direct measurement of the failure-mode that worries us most.
S50 L2 2chADCNN: Template Matching for Season-Changing UAV Aerial Images and Satellite Imagery (MDPI Drones 2023) https://www.mdpi.com/2504-446X/7/9/558 Two-channel CNN trained for cross-season UAV↔satellite matching. Useful both as season-robustness baseline and as a target for the bench-off (does the SOTA matcher really need season-aware training, or do generic GIM/RoMa already win?).
S51 L2 TartanAir V2 — photorealistic synthetic SLAM dataset https://tartanair.org/ ; https://tartanair.org/modalities.html 65 environments, 12-camera rig, IMU + LiDAR + depth + semantic + flow + event modalities, custom camera models (pinhole / fisheye / equirectangular). Photorealistic (AirSim-based). Higher fidelity than MidAir.
S52 L2 Kim — Monocular Visual Odometry for Fixed-Wing Small Unmanned Aircraft Systems (AFIT thesis #2266) https://scholar.afit.edu/etd/2266 SOTA monocular VO (SVO, DSO, ORB-SLAM2) tested on real fixed-wing flights — all three had significant difficulty maintaining localisation. Confirms VO-only is not viable; the draft's "VO between satellite anchors" framing is the right answer.
S53 L2 Quan & Cao, Visual-Inertial Odometry Using High Flying Altitude Drone Datasets (MDPI Drones 2023) https://www.mdpi.com/2504-446X/7/1/36 High-altitude VIO performance numbers for the 3001000 m AGL band — directly applicable to our 1 km AGL operating band; benchmark baseline for AC-1.3.
S54 L1 mapproxy issue #196 + maplibre/martin mbtiles pool https://github.com/mapproxy/mapproxy/issues/196 ; https://github.com/maplibre/martin/blob/738c55e9/mbtiles/src/pool.rs Operational recipe for MBTiles SQLite under concurrent read+write: WAL mode + connection pool + transaction batching. Non-WAL MBTiles is the typical reason "MBTiles is slow" complaints exist.
S55 L1 Python.org — Free-threaded mode (Python 3.13) https://docs.python.org/3.13/howto/free-threading-python.html ; https://py-free-threading.github.io/ Free-threading is experimental in 3.13; has "substantial single-threaded performance hit"; many C extensions don't support it; GIL auto-re-enables on import of non-FT-aware extensions. Not v1-ready.
S56 L2 Lazarski et al. — Terrain Analysis in Eastern Ukraine (Kharkiv-region UAV survey, IEEE 2018) https://ieeexplore.ieee.org/document/8441556 ; http://www.50northspatial.org/medium-cost-uav-mapping/ Eastern-Ukraine relief amplitude ≈ 24 m peak-to-trough in Kharkiv test areas, with creek + gully (yary) systems. Quantifies the residual error of the flat-Earth ortho assumption (R-Terrain).
S57 L1 aedelon/mast3r-runtime https://github.com/aedelon/mast3r-runtime MASt3R inference runtime: Jetson Orin support listed as "Planned", not implemented. Plus Speedy MASt3R paper achieves 91 ms/pair on A40 GPU — Jetson Orin Nano Super is roughly 1/30 of A40 throughput, putting MASt3R at ~3 s/pair on our target hardware.

Mode B Round 2 (component-replacement deep-dive) — appended 2026-04-26

ID Tier Title URL Used for
S58 L2 Yang et al., LiteSAM: Lightweight and Robust Feature Matching for Satellite and Aerial Imagery (Remote Sensing 17(19):3349, MDPI, Oct 2025) https://www.mdpi.com/2072-4292/17/19/3349 ; https://github.com/boyagesmile/LiteSAM Purpose-built satellite↔aerial matcher. 6.31 M params (2.4× smaller than EfficientLoFTR's 15.05 M); RMSE@30 = 17.86 m on UAV-VisLoc (beats EfficientLoFTR); 61.98 ms / pair on standard GPU; 497.49 ms / pair on Jetson AGX Orin (= 22.9% / 19.8% faster than EfficientLoFTR-optimized). Components: TAIFormer (token-aggregation transformer with conv token mixer) + MinGRU dynamic sub-pixel refinement.
S59 L1 leftfield-geospatial/orthority — Python orthorectification toolkit https://orthority.readthedocs.io/ ; https://github.com/leftfield-geospatial/orthority ; https://pypi.org/project/orthority/ Per-image orthorectification as a Python library (frame + RPC camera models, GeoTIFF DEM, RPC refinement, pan-sharpening). Successor of dugalh/simple-ortho. Pip/conda installable; CLI + API. Direct fit for Component 1b's per-frame ortho step (replaces hand-rolled pinhole-on-DEM code).
S60 L2 Korovko et al. (NVIDIA), cuVSLAM: CUDA-Accelerated Visual Odometry and Mapping (arXiv 2506.04359, Jul 2025) https://arxiv.org/abs/2506.04359 ; https://github.com/nvidia-isaac/cuVSLAM ; https://github.com/NVIDIA-ISAAC-ROS/isaac_ros_visual_slam NVIDIA's CUDA-accelerated VSLAM, explicitly optimized for Jetson edge devices. Modular front-end (Shi-Tomasi GFTT keypoints + LK pyramidal tracking + NCC consistency check) and back-end (sparse bundle adjustment + pose-graph optimization + loop closure). Supports 1 → 32 cameras, monocular + monocular-depth + stereo + multi-stereo, optional IMU. <1 % ATE on KITTI; <5 cm on EuRoC, real-time on Orin platforms. Apache-2.0. Drop-in via isaac_ros_visual_slam ROS 2 package.
S61 L2 Liao, DPVO-QAT++: Heterogeneous QAT and CUDA Kernel Fusion for High-Performance Deep Patch Visual Odometry (arXiv 2511.12653, Nov 2025) https://arxiv.org/abs/2511.12653 ; https://arxiv.org/html/2511.12653v1 Quantization-aware training + CUDA kernel fusion for DPVO front-end (back-end stays FP32). On RTX-4060: +52% FPS (TartanAir), +30% FPS (EuRoC), 3765 % peak GPU memory, ATE preserved. Confirms the "deployment gap" framing: even DPVO-QAT++ is benchmarked on RTX-4060, NOT on Jetson — Orin Nano Super extrapolation puts plain DPVO at ≈410 FPS (well under our 10 Hz inference target).
S62 L2 Murai et al. (Imperial / NVIDIA), MASt3R-SLAM: Real-Time Dense SLAM with 3D Reconstruction Priors (CVPR 2025) https://arxiv.org/abs/2412.12392 ; https://github.com/rmurai0610/MASt3R-SLAM ; https://opencv.org/mast3r-slam/ Dense monocular SLAM built on MASt3R prior. 15 FPS on a single GPU; outperforms DROID-SLAM on EuRoC + 7-Scenes; calibration-free. No Jetson port; given Speedy MASt3R = 91 ms/pair on A40, MASt3R-SLAM on Orin Nano Super is sub-1-Hz → infeasible for inline v1 use. Useful as offline ground-truth oracle or future-track candidate.
S63 L2 Edstedt et al., RoMa v2: Harder Better Faster Denser Feature Matching (arXiv 2511.15706, Nov 2025) https://arxiv.org/abs/2511.15706 ; https://github.com/Parskatt/romav2 New SOTA dense matcher: frozen DINOv3 backbone + custom CUDA + predictive covariance + decoupled match-then-refine. Best published pose-estimation accuracy. Compute footprint is GPU-class; not a candidate for inline Jetson Orin Nano Super inference, but a plausible offline ceiling reference for the Component-3 bench-off.
S64 L1 NVIDIA Isaac ROS — Visual SLAM (Jetson tutorial + reference implementation) https://nvidia-ai-iot.github.io/jetson_isaac_ros_visual_slam_tutorial/ ; https://github.com/NVIDIA-ISAAC-ROS/isaac_ros_visual_slam ; https://github.com/bandofpv/VSLAM-UAV Reference implementation of GPS-denied UAV with cuVSLAM on Jetson Orin Nano + RealSense D435i + MAVROS + PX4 (Hackster.io / bandofpv). Demonstrates the production-deployable path: cuVSLAM publishes ROS 2 pose; MAVROS converts to MAVLink; FC consumes via VISION_POSITION_ESTIMATE / ODOMETRY. ArduPilot variant exists (sidharthmohannair/ros2-ardupilot-sitl-hardware).
S65 L1 ArduPilot issue #30076 — Fixing ExternalNav + GPS https://github.com/ArduPilot/ardupilot/issues/30076 EKF3 incorrectly fuses GPS data simultaneously when ExtNav is the configured POSXY source — root cause was a stray else branch in FuseVelPosNED(). Causes "unstable positions with high variances and reset behavior when position estimates diverge". Documents the double-fusion-is-not-a-feature invariant for our hybrid GPS_INPUT + ODOMETRY plan. Status: PR landed; pin ArduPilot to a fixed version.
S66 L1 ArduPilot issue #32506 — EKF3 Position Down snaps to ODOMETRY Z value when ExternalNav is not configured as POSZ source https://github.com/ArduPilot/ardupilot/issues/32506 Sister bug to #30076: Z-axis snap-to-ODOMETRY when only POSXY uses ExtNav. Reinforces the "only one horizontal position source active at a time" architectural invariant — feeding both GPS_INPUT and ODOMETRY for the same axis is a configuration error, not a feature. Has a direct impact on draft02's M-1 conclusion.
S67 L1 ArduPilot wiki — EKF Sources (common-ekf-sources.rst) https://github.com/ArduPilot/ardupilot_wiki/blob/master/common/source/docs/common-ekf-sources.rst Authoritative spec for EK3_SRC1_* / EK3_SRC2_* / EK3_SRC3_* and runtime source switching via RC aux or MAVLink. Confirms architectural rule: only one position source per axis at a time; ExtNav is option 6.
S68 L1 PX4 PR #22262 — EKF2: Error-State Kalman Filter https://github.com/PX4/PX4-Autopilot/pull/22262 Confirms PX4 EKF2 is an ESKF (in contrast to ArduPilot's EKF3 which is a classical extended Kalman filter). Real-hardware PX4 testing: ESKF reduces CPU load by ~0.3 % vs total-state EKF on autopilot. Key takeaway: ArduPilot users (us) cannot swap the FC filter to ESKF — the FC-side debate is moot. ESKF only matters for any companion-side filter we choose to add.
S69 L2 Sola, Quaternion kinematics for the error-state Kalman filter (arXiv 1711.02508) + Madgwick / Solà / Forster references https://arxiv.org/abs/1711.02508 Canonical ESKF treatment: nominal + error-state decomposition, tangent-space covariance, retraction through Exp/Log on SO(3) / SE(3). The standard reference for any companion-side ESKF implementation.
S70 L2 Yu et al., T-ESKF: Transformed Error-State Kalman Filter for Consistent Visual-Inertial Navigation (arXiv 2510.23359, Oct 2025) + Adaptive Covariance and Quaternion-Focused Hybrid ESKF/UKF for VIO (arXiv 2512.17505, Dec 2025) https://arxiv.org/abs/2510.23359 ; https://arxiv.org/abs/2512.17505 2025 advances on top of ESKF: T-ESKF restores observability consistency under partial-yaw observability; Hybrid ESKF/UKF gains +49 % position / +57 % rotation accuracy vs pure ESKF, ~48 % cheaper than full SUKF. Both are research-track; v1 if we run a companion-side filter at all, vanilla ESKF is enough.
S71 L1 OpenStreetMap Sensors / VINS-Fusion + OpenVINS Jetson Orin Nano integration reports https://github.com/HKUST-Aerial-Robotics/VINS-Fusion/issues/220 ; https://github.com/rpng/open_vins/issues/421 ; https://github.com/fdcl-gwu/openvins_jetson_realsense Field reports: VINS-Fusion runs ~15 FPS on Xavier NX after OpenCV pinning; on Orin Nano builds with JetPack 6 + ROS 2 Humble after fixing OpenCV ArUco/CUDA mismatches. Useful as comparison baselines for any cuVSLAM bench-off, not as primary candidates (integration cost dwarfs cuVSLAM's drop-in).
S72 L2 Quan et al., Visual-Inertial Odometry Using High Flying Altitude Drone Datasets (Drones 7(1):36, MDPI 2023) https://www.mdpi.com/2504-446X/7/1/36 High-altitude (40100 m) VIO field tests: stereo-VIO = 2.186 m error over 800 m trajectory; monocular VIO "acceptable but worse than stereo". Lower bound on the altitude band; our regime is 1 km AGL where motion-parallax VO degrades further (most VO benchmarks assume non-trivial parallax per frame). Reinforces R8.
S73 L2 Princeton VL — Deep Patch Visual SLAM (DPV-SLAM, ECCV 2024) https://www.ecva.net/papers/eccv_2024/papers_ECCV/papers/00272.pdf ; https://github.com/iis-esslingen/DPV-SLAM DPV-SLAM = DPVO + two loop-closure mechanisms. 2.5× faster than DROID-SLAM on EuRoC, 57 GB GPU memory vs DROID's 24 GB, 1×–4× real-time on real-world datasets. Same Jetson-deployment caveat as DPVO.
S74 L2 OrthoLoC + AdHoP — UAV-to-orthographic 6-DoF localization with feature-matcher refinement (referenced in cross-view SOTA results) Compatible with any matcher (drop-in refinement layer): up to +95 % matching accuracy / 63 % translation error. Architecturally orthogonal to the matcher choice itself; we can layer this on top of SP+LG / GIM-LG / LiteSAM regardless of which wins the bench-off.
S75 L2 AerialExtreMatch open-review (1.5 M synthetic pairs, 32 difficulty levels) — methods evaluated table https://openreview.net/forum?id=5a5T3IW2B6 ; https://github.com/Xecades/AerialExtreMatch Confirms AerialExtreMatch evaluates 16 representative matchers (detector-based + detector-free), with publicly-available results. Becomes our primary structured-difficulty regression bench (already in draft02 as F-T5b).
S76 L4 Stack Overflow / Jetson dev forum — Orin Nano FP16/INT8 throughput discussion https://forums.developer.nvidia.com/t/jetson-orin-nano-fp16-int8-performance/326723 ; https://github.com/ultralytics/ultralytics (YOLO26 Jetson Orin Nano Super benchmark commit 8d4e6e8) Empirical reference points on Orin Nano Super: FP16 ≈ 4.5 ms / INT8 ≈ 3.8 ms per YOLO26-n inference. Useful sanity-check rate: small TRT engines run in single-digit ms; SP+LG / GIM-LG family fits comfortably in our budget.
S77 L2 thomasthelliez.com — ROS 2 / Isaac ROS on Jetson Orin Nano Super practical guide + Hackster.io GPS-Denied Drone reference design https://thomasthelliez.com/blog/isaac-ros-on-nvidia-jetson-orin-nano-super/ ; https://www.hackster.io/bandofpv/gps-denied-drone-with-nvidia-jetson-orin-nano-9f3417 ROS 2 Humble + JetPack 6 + Isaac ROS 3.2 + cuVSLAM + MAVROS is a working reference architecture on the exact target hardware (Orin Nano Super). Establishes ROS 2 vs DIY Python orchestrator as a real alternative for Component 9.