modeld: prep for camera transform refactor (#31820)

* modeld: prep for camera transform refactor

* update refs

* add pub

* do setup
pull/31818/head
Adeeb Shihadeh 1 year ago committed by GitHub
parent f6665f8488
commit 7436aa8b05
No known key found for this signature in database
GPG Key ID: B5690EEEBB952194
  1. 4
      selfdrive/modeld/modeld.py
  2. 20
      selfdrive/test/process_replay/model_replay.py
  3. 2
      selfdrive/test/process_replay/process_replay.py

@ -153,7 +153,7 @@ def main(demo=False):
# messaging # messaging
pm = PubMaster(["modelV2", "cameraOdometry"]) pm = PubMaster(["modelV2", "cameraOdometry"])
sm = SubMaster(["carState", "roadCameraState", "liveCalibration", "driverMonitoringState", "navModel", "navInstruction", "carControl"]) sm = SubMaster(["deviceState", "carState", "roadCameraState", "liveCalibration", "driverMonitoringState", "navModel", "navInstruction", "carControl"])
publish_state = PublishState() publish_state = PublishState()
params = Params() params = Params()
@ -225,7 +225,7 @@ def main(demo=False):
is_rhd = sm["driverMonitoringState"].isRHD is_rhd = sm["driverMonitoringState"].isRHD
frame_id = sm["roadCameraState"].frameId frame_id = sm["roadCameraState"].frameId
lateral_control_params = np.array([sm["carState"].vEgo, steer_delay], dtype=np.float32) lateral_control_params = np.array([sm["carState"].vEgo, steer_delay], dtype=np.float32)
if sm.updated["liveCalibration"]: if sm.updated["liveCalibration"] and sm.seen['roadCameraState'] and sm.seen['deviceState']:
device_from_calib_euler = np.array(sm["liveCalibration"].rpyCalib, dtype=np.float32) device_from_calib_euler = np.array(sm["liveCalibration"].rpyCalib, dtype=np.float32)
model_transform_main = get_warp_matrix(device_from_calib_euler, main_wide_camera, False).astype(np.float32) model_transform_main = get_warp_matrix(device_from_calib_euler, main_wide_camera, False).astype(np.float32)
model_transform_extra = get_warp_matrix(device_from_calib_euler, True, True).astype(np.float32) model_transform_extra = get_warp_matrix(device_from_calib_euler, True, True).astype(np.float32)

@ -107,14 +107,17 @@ def model_replay(lr, frs):
# modeld is using frame pairs # modeld is using frame pairs
modeld_logs = trim_logs_to_max_frames(lr, MAX_FRAMES, {"roadCameraState", "wideRoadCameraState"}, {"roadEncodeIdx", "wideRoadEncodeIdx", "carParams"}) modeld_logs = trim_logs_to_max_frames(lr, MAX_FRAMES, {"roadCameraState", "wideRoadCameraState"}, {"roadEncodeIdx", "wideRoadEncodeIdx", "carParams"})
dmodeld_logs = trim_logs_to_max_frames(lr, MAX_FRAMES, {"driverCameraState"}, {"driverEncodeIdx", "carParams"}) dmodeld_logs = trim_logs_to_max_frames(lr, MAX_FRAMES, {"driverCameraState"}, {"driverEncodeIdx", "carParams"})
if not SEND_EXTRA_INPUTS: if not SEND_EXTRA_INPUTS:
modeld_logs = [msg for msg in modeld_logs if msg.which() not in ["liveCalibration",]] modeld_logs = [msg for msg in modeld_logs if msg.which() != 'liveCalibration']
dmodeld_logs = [msg for msg in dmodeld_logs if msg.which() not in ["liveCalibration",]] dmodeld_logs = [msg for msg in dmodeld_logs if msg.which() != 'liveCalibration']
# initial calibration
cal_msg = next(msg for msg in lr if msg.which() == "liveCalibration").as_builder() # initial setup
cal_msg.logMonoTime = lr[0].logMonoTime for s in ('liveCalibration', 'deviceState'):
modeld_logs.insert(0, cal_msg.as_reader()) msg = next(msg for msg in lr if msg.which() == s).as_builder()
dmodeld_logs.insert(0, cal_msg.as_reader()) msg.logMonoTime = lr[0].logMonoTime
modeld_logs.insert(1, msg.as_reader())
dmodeld_logs.insert(1, msg.as_reader())
modeld = get_process_config("modeld") modeld = get_process_config("modeld")
dmonitoringmodeld = get_process_config("dmonitoringmodeld") dmonitoringmodeld = get_process_config("dmonitoringmodeld")
@ -218,7 +221,8 @@ if __name__ == "__main__":
results[TEST_ROUTE]["models"] = compare_logs(cmp_log, log_msgs, tolerance=tolerance, ignore_fields=ignore) results[TEST_ROUTE]["models"] = compare_logs(cmp_log, log_msgs, tolerance=tolerance, ignore_fields=ignore)
diff_short, diff_long, failed = format_diff(results, log_paths, ref_commit) diff_short, diff_long, failed = format_diff(results, log_paths, ref_commit)
print(diff_long) if "CI" in os.environ:
print(diff_long)
print('-------------\n'*5) print('-------------\n'*5)
print(diff_short) print(diff_short)
with open("model_diff.txt", "w") as f: with open("model_diff.txt", "w") as f:

@ -546,7 +546,7 @@ CONFIGS = [
), ),
ProcessConfig( ProcessConfig(
proc_name="modeld", proc_name="modeld",
pubs=["roadCameraState", "wideRoadCameraState", "liveCalibration", "driverMonitoringState"], pubs=["deviceState", "roadCameraState", "wideRoadCameraState", "liveCalibration", "driverMonitoringState"],
subs=["modelV2", "cameraOdometry"], subs=["modelV2", "cameraOdometry"],
ignore=["logMonoTime", "modelV2.frameDropPerc", "modelV2.modelExecutionTime"], ignore=["logMonoTime", "modelV2.frameDropPerc", "modelV2.modelExecutionTime"],
should_recv_callback=ModeldCameraSyncRcvCallback(), should_recv_callback=ModeldCameraSyncRcvCallback(),

Loading…
Cancel
Save