mirror of
https://github.com/azaion/gps-denied-onboard.git
synced 2026-06-21 09:51:13 +00:00
[AZ-332] C1 OKVIS2 Strategy: facade + binding skeleton
Python facade (`Okvis2Strategy`) is production-quality and satisfies
AZ-331's `VioStrategy` protocol; full AC-1..10 coverage with
AC-9 + NFR-perf marked `tier2`. The C++ pybind11 binding compiles
and loads but throws `OkvisFatalException("estimator not yet wired")`
on first `add_frame` — the `okvis::ThreadedKFVio` wiring is a tier2
follow-up the Step-15 Product Completeness Gate is expected to track
as a remediation task.
Resolved contradictions:
* Constructor signature aligned with the AZ-331 factory: `(config, *,
fdr_client, clock=None)`. Calibration / preintegrator / logger
built internally from config. No churn on AZ-331.
* IMU substrate: OKVIS2 owns its internal estimator IMU integration;
the AZ-276 `ImuPreintegrator` is a separate substrate consumed by
E-C5's fusion graph. Single source of truth lives at the sample
stream, not the integrator instance.
* FDR API: `FdrClient.enqueue(record)` with new `vio.health` kind
added to AZ-272 `KNOWN_PAYLOAD_KEYS`.
CI matrix forces `-DBUILD_OKVIS2=OFF` until the tier2 wiring task
brings Ceres / SuiteSparse / OKVIS2 vendored submodules into the
Linux build.
Files: 17 added/modified across `c1_vio/`, `fdr_client/records.py`,
`cpp/okvis2/CMakeLists.txt`, CI workflow, AZ-332 task spec
(implementation-notes section), batch 23 report.
Tests: 17 new (15 tier1 + 2 tier2). Full Tier-1 suite: 1109 pass,
2 skipped (env), 2 deselected (tier2). No regressions.
Co-authored-by: Cursor <cursoragent@cursor.com>
This commit is contained in:
@@ -47,10 +47,20 @@ jobs:
|
||||
matrix:
|
||||
kind: [deployment, research]
|
||||
include:
|
||||
# AZ-332 — BUILD_OKVIS2 forced OFF in Tier-1 CI until the tier2
|
||||
# follow-up wires `okvis::ThreadedKFVio` end-to-end. The C++
|
||||
# binding skeleton + CMake glue still ship in this build; full
|
||||
# OKVIS2 native compile is gated on installing Ceres-solver +
|
||||
# OKVIS2 vendored submodules (BRISK, DBoW2) via apt, plus
|
||||
# `submodules: recursive` checkout. That CI lift is the
|
||||
# tier2 task's surface, not AZ-332's.
|
||||
- kind: deployment
|
||||
cmake_flags: "-DBUILD_VINS_MONO=OFF -DBUILD_VPR_SALAD=OFF -DBUILD_C11_TILE_MANAGER=OFF"
|
||||
cmake_flags: >-
|
||||
-DBUILD_OKVIS2=OFF -DBUILD_VINS_MONO=OFF
|
||||
-DBUILD_VPR_SALAD=OFF -DBUILD_C11_TILE_MANAGER=OFF
|
||||
- kind: research
|
||||
cmake_flags: "-DBUILD_VINS_MONO=ON -DBUILD_VPR_SALAD=ON"
|
||||
cmake_flags: >-
|
||||
-DBUILD_OKVIS2=OFF -DBUILD_VINS_MONO=ON -DBUILD_VPR_SALAD=ON
|
||||
steps:
|
||||
- uses: actions/checkout@v4
|
||||
- run: cmake -S . -B build ${{ matrix.cmake_flags }}
|
||||
|
||||
Reference in New Issue
Block a user