Files
gps-denied-onboard/cpp/klt_ransac/CMakeLists.txt
T
Oleksandr Bezdieniezhnykh ceb24b5a62 [AZ-334] C1 KLT/RANSAC strategy — engine-rule simple-baseline VIO
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>
2026-05-14 02:40:01 +03:00

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.")