Skip to content

Commit

Permalink
calibrationd: start faster by not waiting for carParams (commaai#24976)
Browse files Browse the repository at this point in the history
* calibrationd: start faster by not waiting for carParams

* fix process replay

* update ref
  • Loading branch information
pd0wm authored and ntegan1 committed Jul 12, 2022
1 parent 65f2b1e commit 7144c0b
Show file tree
Hide file tree
Showing 2 changed files with 8 additions and 5 deletions.
10 changes: 6 additions & 4 deletions selfdrive/locationd/calibrationd.py
Original file line number Diff line number Diff line change
Expand Up @@ -12,7 +12,7 @@
import numpy as np
from typing import List, NoReturn, Optional

from cereal import car, log
from cereal import log
import cereal.messaging as messaging
from common.conversions import Conversions as CV
from common.params import Params, put_nonblocking
Expand Down Expand Up @@ -63,7 +63,7 @@ class Calibrator:
def __init__(self, param_put: bool = False):
self.param_put = param_put

self.CP = car.CarParams.from_bytes(Params().get("CarParams", block=True))
self.not_car = False

# Read saved calibration
params = Params()
Expand Down Expand Up @@ -193,7 +193,7 @@ def get_msg(self) -> capnp.lib.capnp._DynamicStructBuilder:
liveCalibration.rpyCalib = smooth_rpy.tolist()
liveCalibration.rpyCalibSpread = self.calib_spread.tolist()

if self.CP.notCar:
if self.not_car:
extrinsic_matrix = get_view_frame_from_road_frame(0, 0, 0, model_height)
liveCalibration.validBlocks = INPUTS_NEEDED
liveCalibration.calStatus = Calibration.CALIBRATED
Expand All @@ -213,7 +213,7 @@ def calibrationd_thread(sm: Optional[messaging.SubMaster] = None, pm: Optional[m
set_realtime_priority(1)

if sm is None:
sm = messaging.SubMaster(['cameraOdometry', 'carState'], poll=['cameraOdometry'])
sm = messaging.SubMaster(['cameraOdometry', 'carState', 'carParams'], poll=['cameraOdometry'])

if pm is None:
pm = messaging.PubMaster(['liveCalibration'])
Expand All @@ -224,6 +224,8 @@ def calibrationd_thread(sm: Optional[messaging.SubMaster] = None, pm: Optional[m
timeout = 0 if sm.frame == -1 else 100
sm.update(timeout)

calibrator.not_car = sm['carParams'].notCar

if sm.updated['cameraOdometry']:
calibrator.handle_v_ego(sm['carState'].vEgo)
new_rpy = calibrator.handle_cam_odom(sm['cameraOdometry'].trans,
Expand Down
3 changes: 2 additions & 1 deletion selfdrive/test/process_replay/process_replay.py
Original file line number Diff line number Diff line change
Expand Up @@ -277,7 +277,8 @@ def ublox_rcv_callback(msg):
proc_name="calibrationd",
pub_sub={
"carState": ["liveCalibration"],
"cameraOdometry": []
"cameraOdometry": [],
"carParams": [],
},
ignore=["logMonoTime", "valid"],
init_callback=get_car_params,
Expand Down

0 comments on commit 7144c0b

Please sign in to comment.