feat(01-03): move cuVSLAM backends into components/vio/cuvslam_backend.py

- Extract CuVSLAMVisualOdometry (Inertial) + CuVSLAMMonoDepthVisualOdometry
  (Mono-Depth) from core/vo.py into a dedicated cuVSLAM-bridge module.
- Preserve the optional 'try: import cuvslam / except ImportError' pattern
  at module top with the _CUVSLAM_AVAILABLE flag — verified False on x86 dev,
  True on Jetson (PATTERNS.md §6.5, §8.1).
- Both classes embed an ORBVisualOdometry instance for transparent dev/CI
  fallback; metric scale semantics preserved (scale_ambiguous=False).
- Scaffold components/vio/native/ as Phase-1 placeholder for future native
  SDK glue (PATTERNS.md §1.4); Phase 1 is intentionally empty.
- Append both classes to the components.vio barrel.
This commit is contained in:
Yuzviak
2026-05-10 23:00:26 +03:00
parent d9895acb77
commit 90b4bf900e
3 changed files with 314 additions and 0 deletions
@@ -20,10 +20,16 @@ from gps_denied.components.vio.orbslam_backend import (
ORBVisualOdometry,
SequentialVisualOdometry,
)
from gps_denied.components.vio.cuvslam_backend import (
CuVSLAMMonoDepthVisualOdometry,
CuVSLAMVisualOdometry,
)
__all__ = [
"VisualOdometry",
"ISequentialVisualOdometry",
"ORBVisualOdometry",
"SequentialVisualOdometry",
"CuVSLAMVisualOdometry",
"CuVSLAMMonoDepthVisualOdometry",
]