Marcus/API/odometry_api.py
2026-04-12 18:50:22 +04:00

41 lines
1.1 KiB
Python

"""
odometry_api.py — Odometry interface wrapper
"""
import sys
import os
from Core.env_loader import PROJECT_ROOT
ODOM_AVAILABLE = False
odom = None
def init_odometry(zmq_sock=None) -> bool:
"""Start odometry tracking. Returns True if successful."""
global ODOM_AVAILABLE, odom
# marcus_odometry.py lives in Navigation/
nav_dir = os.path.join(PROJECT_ROOT, "Navigation")
for d in (nav_dir,):
if d not in sys.path:
sys.path.insert(0, d)
try:
from marcus_odometry import Odometry
odom = Odometry()
ODOM_AVAILABLE = odom.start(zmq_sock=zmq_sock)
print(f"Odometry {'started' if ODOM_AVAILABLE else 'failed'}")
return ODOM_AVAILABLE
except ImportError as e:
print(f"marcus_odometry.py not found ({e}) — precise distance disabled")
return False
except Exception as e:
print(f"Odometry error: {e} — precise distance disabled")
return False
def get_position():
"""Return current position dict or None."""
if odom and ODOM_AVAILABLE:
return odom.get_position()
return None