forked from IQ.Lvbs/IQ.Pilot
33 lines
982 B
Python
33 lines
982 B
Python
import math
|
|
|
|
import numpy as np
|
|
from iqpilot.cereal import log
|
|
|
|
from iqpilot.selfdrive.locationd.calibrationd import HEIGHT_INIT, HEIGHT_SANE_MIN, HEIGHT_SANE_MAX
|
|
|
|
|
|
def get_calibrated_rpy(live_calib: log.ExtrinsicsCalibration) -> np.ndarray | None:
|
|
if live_calib.calStatus != log.ExtrinsicsCalibration.Status.calibrated:
|
|
return None
|
|
|
|
if len(live_calib.rpyCalib) != 3:
|
|
return None
|
|
|
|
calib_rpy = np.asarray(live_calib.rpyCalib, dtype=np.float32)
|
|
return calib_rpy if np.isfinite(calib_rpy).all() else None
|
|
|
|
|
|
def get_render_path_height(live_calib: log.ExtrinsicsCalibration) -> float:
|
|
if live_calib.calStatus != log.ExtrinsicsCalibration.Status.calibrated:
|
|
return float(HEIGHT_INIT[0])
|
|
|
|
if len(live_calib.height) != 1:
|
|
return float(HEIGHT_INIT[0])
|
|
|
|
height = float(live_calib.height[0])
|
|
if not math.isfinite(height):
|
|
return float(HEIGHT_INIT[0])
|
|
if not (HEIGHT_SANE_MIN <= height <= HEIGHT_SANE_MAX):
|
|
return float(HEIGHT_INIT[0])
|
|
return height
|