mirror of
https://github.com/azaion/gps-denied-onboard.git
synced 2026-06-21 15:31:13 +00:00
ceb24b5a62
Implement KltRansacStrategy, the ADR-002 engine-rule mandatory simple-baseline VioStrategy for E-C1. Pure-Python facade over OpenCV's cv2.goodFeaturesToTrack / calcOpticalFlowPyrLK / findEssentialMat / recoverPose pipeline — no C++/pybind11 binding by design so a Tier-0 workstation runs the strategy with `pip install opencv-python` and the BUILD_KLT_RANSAC=ON gate alone. Constructor + state machine + FDR transition spine mirror Okvis2Strategy + VinsMonoStrategy so the AZ-331 factory + IT-12 comparative harness treat all three as drop-in substitutable; the duplication is the consolidation target now formally in scope for the next cumulative review (batches 52-54). AC coverage: AC-1..AC-11 + NFR-perf mapped to passing tests (25 tests, 23 pass + 2 tier-2 skipped on dev/CI runners; all 25 pass under GPS_DENIED_TIER=2). Honest-covariance invariant (AC-9) implemented as residual-scatter / (N_inliers - 5) with an inlier- count penalty — no client-side floor or smoother; cov Frobenius grows monotonically across DEGRADED. Camera-agnostic source (AC-11) enforced by CI-grep gate that excludes docstring text. Test-Run Cadence: focused suite tests/unit/c1_vio/ green (95 passed, 6 skipped); config-loader + compose-root suites green; full-suite gate deferred to Step 16 per implement skill. Co-authored-by: Cursor <cursoragent@cursor.com>
17 lines
860 B
CMake
17 lines
860 B
CMake
if(NOT BUILD_KLT_RANSAC)
|
|
return()
|
|
endif()
|
|
|
|
# AZ-334 — KLT/RANSAC strategy is PURE PYTHON over OpenCV's Python
|
|
# bindings (cv2.calcOpticalFlowPyrLK / goodFeaturesToTrack /
|
|
# findEssentialMat / recoverPose). There is no native binding under
|
|
# this strategy by design — the simple-baseline path must remain
|
|
# dependency-light (Tier-0 workstation can run KLT/RANSAC with only
|
|
# `pip install opencv-python`; no OKVIS2 / VINS-Mono native libs
|
|
# required). This directory + CMake target is preserved for build-
|
|
# graph symmetry with cpp/okvis2/ and cpp/vins_mono/; the BUILD_KLT_RANSAC
|
|
# flag still gates the Python module import at the AZ-331 composition
|
|
# root factory (`runtime_root/vio_factory.py`).
|
|
message(STATUS "[klt_ransac] AZ-334 — pure-Python strategy; no native target. "
|
|
"BUILD_KLT_RANSAC=ON gates the Python module import only.")
|