mirror of
https://github.com/azaion/gps-denied-onboard.git
synced 2026-06-21 10:01:12 +00:00
4.3 KiB
4.3 KiB
Comparison Framework
Selected Framework Type
Mode B weak-point assessment with exact-fit validation.
Selected Dimensions
- Functional fit against the Project Constraint Matrix.
- Licensing and productization risk.
- Jetson runtime and memory fit.
- Cache/storage fit.
- Validation evidence quality.
- Security/safety impact.
- 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. |