Skip to content

Commit 689f884

Browse files
DM test mode (#36631)
1 parent f653c1c commit 689f884

File tree

2 files changed

+36
-17
lines changed

2 files changed

+36
-17
lines changed

selfdrive/monitoring/dmonitoringd.py

Lines changed: 6 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -13,6 +13,7 @@ def dmonitoringd_thread():
1313
sm = messaging.SubMaster(['driverStateV2', 'liveCalibration', 'carState', 'selfdriveState', 'modelV2'], poll='driverStateV2')
1414

1515
DM = DriverMonitoring(rhd_saved=params.get_bool("IsRhdDetected"), always_on=params.get_bool("AlwaysOnDM"))
16+
demo_mode=False
1617

1718
# 20Hz <- dmonitoringmodeld
1819
while True:
@@ -22,8 +23,10 @@ def dmonitoringd_thread():
2223
continue
2324

2425
valid = sm.all_checks()
25-
if valid:
26-
DM.run_step(sm)
26+
if demo_mode and sm.valid['driverStateV2']:
27+
DM.run_step(sm, demo=demo_mode)
28+
elif valid:
29+
DM.run_step(sm, demo=demo_mode)
2730

2831
# publish
2932
dat = DM.get_state_packet(valid=valid)
@@ -32,6 +35,7 @@ def dmonitoringd_thread():
3235
# load live always-on toggle
3336
if sm['driverStateV2'].frameId % 40 == 1:
3437
DM.always_on = params.get_bool("AlwaysOnDM")
38+
demo_mode = params.get_bool("IsDriverViewEnabled")
3539

3640
# save rhd virtual toggle every 5 mins
3741
if (sm['driverStateV2'].frameId % 6000 == 0 and

selfdrive/monitoring/helpers.py

Lines changed: 30 additions & 15 deletions
Original file line numberDiff line numberDiff line change
@@ -211,8 +211,8 @@ def _set_timers(self, active_monitoring):
211211
self.step_change = self.settings._DT_DMON / self.settings._AWARENESS_TIME
212212
self.active_monitoring_mode = False
213213

214-
def _set_policy(self, model_data, car_speed):
215-
bp = model_data.meta.disengagePredictions.brakeDisengageProbs[0] # brake disengage prob in next 2s
214+
def _set_policy(self, brake_disengage_prob, car_speed):
215+
bp = brake_disengage_prob
216216
k1 = max(-0.00156*((car_speed-16)**2)+0.6, 0.2)
217217
bp_normal = max(min(bp / k1, 0.5),0)
218218
self.pose.cfactor_pitch = np.interp(bp_normal, [0, 0.5],
@@ -417,27 +417,42 @@ def get_state_packet(self, valid=True):
417417
}
418418
return dat
419419

420-
def run_step(self, sm):
421-
# Set strictness
420+
def run_step(self, sm, demo=False):
421+
if demo:
422+
highway_speed = 30
423+
enabled = True
424+
wrong_gear = False
425+
standstill = False
426+
driver_engaged = False
427+
brake_disengage_prob = 1.0
428+
rpyCalib = [0., 0., 0.]
429+
else:
430+
highway_speed = sm['carState'].vEgo
431+
enabled = sm['selfdriveState'].enabled
432+
wrong_gear = sm['carState'].gearShifter not in (car.CarState.GearShifter.drive, car.CarState.GearShifter.low)
433+
standstill = sm['carState'].standstill
434+
driver_engaged = sm['carState'].steeringPressed or sm['carState'].gasPressed
435+
brake_disengage_prob = sm['modelV2'].meta.disengagePredictions.brakeDisengageProbs[0] # brake disengage prob in next 2s
436+
rpyCalib = sm['liveCalibration'].rpyCalib
422437
self._set_policy(
423-
model_data=sm['modelV2'],
424-
car_speed=sm['carState'].vEgo
438+
brake_disengage_prob=brake_disengage_prob,
439+
car_speed=highway_speed,
425440
)
426441

427442
# Parse data from dmonitoringmodeld
428443
self._update_states(
429444
driver_state=sm['driverStateV2'],
430-
cal_rpy=sm['liveCalibration'].rpyCalib,
431-
car_speed=sm['carState'].vEgo,
432-
op_engaged=sm['selfdriveState'].enabled,
433-
standstill=sm['carState'].standstill,
445+
cal_rpy=rpyCalib,
446+
car_speed=highway_speed,
447+
op_engaged=enabled,
448+
standstill=standstill,
434449
)
435450

436451
# Update distraction events
437452
self._update_events(
438-
driver_engaged=sm['carState'].steeringPressed or sm['carState'].gasPressed,
439-
op_engaged=sm['selfdriveState'].enabled,
440-
standstill=sm['carState'].standstill,
441-
wrong_gear=sm['carState'].gearShifter in [car.CarState.GearShifter.reverse, car.CarState.GearShifter.park],
442-
car_speed=sm['carState'].vEgo
453+
driver_engaged=driver_engaged,
454+
op_engaged=enabled,
455+
standstill=standstill,
456+
wrong_gear=wrong_gear,
457+
car_speed=highway_speed
443458
)

0 commit comments

Comments
 (0)