# Component Fit Matrix — C1: Visual / Visual-Inertial Odometry

> Mode A Phase 2 — engine Step 7.5 (Component Applicability Gate, structured per-component candidate-selection table). Status vocabulary in [`00_summary.md`](00_summary.md). Detailed fact cards backing every status verdict live in [`../02_fact_cards/C1_vio.md`](../02_fact_cards/C1_vio.md).
>
> Index: [`00_summary.md`](00_summary.md). Sibling components: [C2 VPR](C2_vpr.md), [C3 Matchers](C3_matchers.md), [C4 Pose](C4_pose_estimation.md), [C5–C10 pending](C5-C10_pending.md). Cross-component gates: [`99_cross_component_gates.md`](99_cross_component_gates.md).

---

## C1 — Visual / Visual-Inertial Odometry [closed at documentary level, 2026-05-08]

**Pinned mode**: monocular + IMU on Jetson Orin Nano Super (8 GB shared, JetPack 6, ROS 2 Humble); inputs `{1× ADTi 20MP nav frame stream + FC IMU via MAVLink/SCALED_IMU2}`; outputs `{6-DoF pose at IMU rate with metric scale + 6×6 covariance + source label visual_propagated when no satellite anchor}`.

**Locked-in research-time defaults** (per Fact #41, after user-skipped clarification on D-C1-1 and D-C1-2):
- D-C1-1 = (c) **keep both license tracks open** through Plan; final license decision deferred to post-Jetson-MVE.
- D-C1-2 = (b) **defer Jetson Orin Nano Super hardware MVE to a dedicated bring-up phase** between research and Plan; research closes with documentary ranking + per-candidate `Verify` gates.

| # | Candidate | License | Per-mode verification | Status | Lead reason / disqualifier | Sub-matrix cite |
|---|---|---|---|---|---|---|
| 1 | **OKVIS2 / OKVIS2-X** | BSD-3 (no copyleft) | ✅ Fact #39 + Source #56 | **Documentary lead — BSD/permissive track** | Strongest documentary mode-fit; structural sub-20-Hz tolerance via keyframe-based architecture (Fact #40); OKVIS2-X (T-RO 2025) GNSS fusion architecturally aligned with AC-NEW-2 spoof-promotion path | `../02_fact_cards/C1_vio.md` → "OKVIS2 / OKVIS2-X — per-numbered binding" |
| 2 | **OpenVINS** | GPL-3.0 (copyleft) | ✅ Fact #37 + Source #54 | **Documentary lead — GPL-3.0 track** | Best Jetson Orin Nano Dev Kit + JetPack 6 + ROS 2 Humble build evidence (rpng/open_vins issue #421 + fdcl-gwu setup guide); MSCKF formulation more memory-efficient than full sliding-window optimization; documented Xavier NX 270 ms latency baseline at 640×480 | `../02_fact_cards/C1_vio.md` → "OpenVINS — per-numbered binding" |
| 3 | **VINS-Mono** | GPL-3.0 (copyleft) | ✅ Fact #38 + Source #55 (with caveat) | **Experimental only — GPL-3.0 track alternate** | Single-mode by construction (mono+IMU); proven on original Jetson Nano (2021 KAIST + 2024 RPi CM4); ⚠️ documentary minimum image rate 20 Hz vs project 3 fps (Fact #40) → must be Jetson-MVE-validated at sub-20-Hz OR Plan must commit to dual-rate camera pipeline (Fact #40) before promotion | `../02_fact_cards/C1_vio.md` → "VINS-Mono — per-numbered binding" |
| 4 | **Pure VO + external ESKF (C5)** | OpenCV-Apache-2.0 + project-internal | ✅ Source #53 + Fact #35 | **Mandatory simple-baseline** | Per Component Option Breadth rule — runnable fallback if all VIO leads fail Jetson MVE; trivial latency + memory footprint; FAILS C1's IMU-fusion + covariance bindings inherently (those are owned by the external C5 wrapper) | `../02_fact_cards/C1_vio.md` → "Pure VO baseline — per-numbered binding" |
| 5 | **VINS-Fusion** | GPL-3.0 | (see Fact #29) | **Documentary lead — GPL-3.0 track redundant** | Same authors as VINS-Mono with multi-sensor superset; mono+IMU mode shares VINS-Mono's algorithmic core; fails to run on Jetson TX2 (KAIST 2021); within HKUST family, VINS-Mono is the cleaner C1 candidate for the project's pinned mode | (covered transitively by VINS-Mono row above; VINS-Fusion-specific Jetson TX2 failure is Fact #29) |
| 6 | **Kimera-VIO** | BSD-2 | (see Fact #32) | **Conditional secondary fallback** | Permissive license is attractive but resource overhead (3D mesh + semantic mesher) is poor fit under co-resident process pressure; failed Xavier NX 8 GB shared in KAIST 2021 multi-process benchmark | (no per-numbered sub-matrix this session; deferred — only lifts to lead if both BSD lead OKVIS2 and the GPL-3.0 leads fail Jetson MVE) |
| 7 | **DPVO / DPV-SLAM** | MIT | (see Fact #34) | **Conditional — VO not VIO** | Mono VO only (no native IMU fusion); requires external IMU wrapper to satisfy the C1 mandate; DPVO-QAT++ (Nov 2025) shows 1.02 GB peak memory on RTX 4060; Jetson Orin Nano untested; operational complexity of teacher-student QAT pipeline is high vs classical candidates | (no per-numbered sub-matrix this session; lifted from C1 as VO-only candidate per Fact #34) |
| 8 | **DROID-SLAM** | (project repo) | (see Fact #33) | **Rejected — disqualified by AC-4.2** | ≥11 GB GPU VRAM inference budget exceeds the project's 8 GB shared LPDDR5; mono VO/SLAM (no IMU fusion); arbitrary scale (no metric recovery without external alignment) | (no sub-matrix; rejected on AC-4.2 alone) |
| 9 | **RTAB-Map** | BSD | (see Fact #16) | **Rejected — disqualified by SPRIN-D evidence** | Failed beyond 1 km / above 2 m/s flight in SPRIN-D environment; project cruise (≤17 m/s, kilometers between satellite anchors) explicitly excludes | (no sub-matrix; rejected on Fact #16) |
| 10 | **ORB-SLAM3** | GPL-3.0 | (see Fact #16) | **Rejected — disqualified by SPRIN-D evidence** | Same as RTAB-Map | (no sub-matrix; rejected on Fact #16) |

### C1 — Per-license-track preliminary ranking (final ranking pending Jetson MVE)

**BSD/permissive track** (track lead under D-C1-1 = (b) or default (c)):
1. **OKVIS2 / OKVIS2-X** — Documentary lead; structural sub-20-Hz advantage; OKVIS2-X GNSS-fusion architectural alignment with AC-NEW-2.
2. (alternates) Kimera-VIO (Conditional); Pure VO + external ESKF (Mandatory simple-baseline).

**GPL-3.0 track** (track lead under D-C1-1 = (a) or default (c)):
1. **OpenVINS** — Documentary lead; best Jetson Orin Nano build evidence; MSCKF memory advantage.
2. **VINS-Mono** — Experimental only until Jetson MVE validates sub-20-Hz operation OR Plan commits to dual-rate pipeline (Fact #40).
3. (alternate) VINS-Fusion — within HKUST family, VINS-Mono is the cleaner pick.

### C1 — Plan-phase deliverables raised by closure

1. **D-C1-1 license posture A/B/C** — must be presented to user as a structured Choose block at Plan time, with the documentary evidence above as input.
2. **D-C1-2 Jetson Orin Nano Super hardware MVE** — must be executed as a dedicated bring-up phase between research and Plan; produces a single MVE artifact that promotes the surviving Documentary leads to Selected.
3. **Single-rate vs dual-rate nav-camera pipeline (Fact #40)** — must be decided at Plan time; affects which C1 candidates remain on documentary lead vs Experimental status; affects C2/C3 candidate scoring in their respective rows.

---
