use enabled flag from controlsState instead of carState (#2518)

* use enabled from controls instead of carstate

* update process replay

* rm

* fix long test

* update reff

Co-authored-by: Adeeb Shihadeh <adeebshihadeh@gmail.com>
old-commit-hash: d8fea41b2a
commatwo_master
ZwX1616 5 years ago committed by GitHub
parent 394a3f4d86
commit 3da8dc9b25
  1. 9
      selfdrive/monitoring/dmonitoringd.py
  2. 9
      selfdrive/test/longitudinal_maneuvers/plant.py
  3. 3
      selfdrive/test/longitudinal_maneuvers/test_longitudinal.py
  4. 2
      selfdrive/test/process_replay/process_replay.py
  5. 2
      selfdrive/test/process_replay/ref_commit

@ -12,7 +12,7 @@ def dmonitoringd_thread(sm=None, pm=None):
pm = messaging.PubMaster(['dMonitoringState'])
if sm is None:
sm = messaging.SubMaster(['driverState', 'liveCalibration', 'carState', 'model'], poll=['driverState'])
sm = messaging.SubMaster(['driverState', 'liveCalibration', 'carState', 'controlsState', 'model'], poll=['driverState'])
driver_status = DriverStatus()
driver_status.is_rhd_region = Params().get("IsRHD") == b"1"
@ -22,7 +22,6 @@ def dmonitoringd_thread(sm=None, pm=None):
sm['liveCalibration'].calStatus = Calibration.INVALID
sm['liveCalibration'].rpyCalib = [0, 0, 0]
sm['carState'].vEgo = 0.
sm['carState'].cruiseState.enabled = False
sm['carState'].cruiseState.speed = 0.
sm['carState'].buttonEvents = []
sm['carState'].steeringPressed = False
@ -47,7 +46,7 @@ def dmonitoringd_thread(sm=None, pm=None):
sm['carState'].steeringPressed or \
sm['carState'].gasPressed
if driver_engaged:
driver_status.update(Events(), True, sm['carState'].cruiseState.enabled, sm['carState'].standstill)
driver_status.update(Events(), True, sm['controlsState'].enabled, sm['carState'].standstill)
v_cruise_last = v_cruise
if sm.updated['model']:
@ -55,14 +54,14 @@ def dmonitoringd_thread(sm=None, pm=None):
# Get data from dmonitoringmodeld
events = Events()
driver_status.get_pose(sm['driverState'], sm['liveCalibration'].rpyCalib, sm['carState'].vEgo, sm['carState'].cruiseState.enabled)
driver_status.get_pose(sm['driverState'], sm['liveCalibration'].rpyCalib, sm['carState'].vEgo, sm['controlsState'].enabled)
# Block engaging after max number of distrations
if driver_status.terminal_alert_cnt >= MAX_TERMINAL_ALERTS or driver_status.terminal_time >= MAX_TERMINAL_DURATION:
events.add(car.CarEvent.EventName.tooDistracted)
# Update events from driver state
driver_status.update(events, driver_engaged, sm['carState'].cruiseState.enabled, sm['carState'].standstill)
driver_status.update(events, driver_engaged, sm['controlsState'].enabled, sm['carState'].standstill)
# build dMonitoringState packet
dat = messaging.new_message('dMonitoringState')

@ -118,7 +118,7 @@ class Plant():
Plant.live_location_kalman = messaging.pub_sock('liveLocationKalman')
Plant.health = messaging.pub_sock('health')
Plant.thermal = messaging.pub_sock('thermal')
Plant.driverState = messaging.pub_sock('driverState')
Plant.dMonitoringState = messaging.pub_sock('dMonitoringState')
Plant.cal = messaging.pub_sock('liveCalibration')
Plant.controls_state = messaging.sub_sock('controlsState')
Plant.plan = messaging.sub_sock('plan')
@ -370,10 +370,9 @@ class Plant():
live_parameters.liveParameters.stiffnessFactor = 1.0
Plant.live_params.send(live_parameters.to_bytes())
driver_state = messaging.new_message('driverState')
driver_state.driverState.faceOrientation = [0.] * 3
driver_state.driverState.facePosition = [0.] * 2
Plant.driverState.send(driver_state.to_bytes())
dmon_state = messaging.new_message('dMonitoringState')
dmon_state.dMonitoringState.isDistracted = False
Plant.dMonitoringState.send(dmon_state.to_bytes())
health = messaging.new_message('health')
health.health.safetyModel = car.CarParams.SafetyModel.hondaNidec

@ -339,7 +339,6 @@ class LongitudinalControl(unittest.TestCase):
manager.prepare_managed_process('radard')
manager.prepare_managed_process('controlsd')
manager.prepare_managed_process('plannerd')
manager.prepare_managed_process('dmonitoringd')
@classmethod
def tearDownClass(cls):
@ -362,7 +361,6 @@ def run_maneuver_worker(k):
manager.start_managed_process('radard')
manager.start_managed_process('controlsd')
manager.start_managed_process('plannerd')
manager.start_managed_process('dmonitoringd')
plot, valid = man.evaluate()
plot.write_plot(output_dir, "maneuver" + str(k + 1).zfill(2))
@ -370,7 +368,6 @@ def run_maneuver_worker(k):
manager.kill_managed_process('radard')
manager.kill_managed_process('controlsd')
manager.kill_managed_process('plannerd')
manager.kill_managed_process('dmonitoringd')
if valid:
break

@ -266,7 +266,7 @@ CONFIGS = [
proc_name="dmonitoringd",
pub_sub={
"driverState": ["dMonitoringState"],
"liveCalibration": [], "carState": [], "model": [], "gpsLocation": [],
"liveCalibration": [], "carState": [], "model": [], "controlsState": [],
},
ignore=["logMonoTime", "valid"],
init_callback=get_car_params,

@ -1 +1 @@
7dde5eab03feb7e0801fe24e9fea0f3629987571
aeb870b1d4f523506570f66e76dde0b036c58f40
Loading…
Cancel
Save