Skip to content

Commit be700bc

Browse files
ZwX1616Comma Device
andauthored
fix rhd behavior during preview/onboarding (#36657)
* rhd learning not required for demo * fix switching and saving --------- Co-authored-by: Comma Device <[email protected]>
1 parent 38697ac commit be700bc

File tree

2 files changed

+5
-4
lines changed

2 files changed

+5
-4
lines changed

selfdrive/monitoring/dmonitoringd.py

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -38,7 +38,7 @@ def dmonitoringd_thread():
3838
demo_mode = params.get_bool("IsDriverViewEnabled")
3939

4040
# save rhd virtual toggle every 5 mins
41-
if (sm['driverStateV2'].frameId % 6000 == 0 and
41+
if (sm['driverStateV2'].frameId % 6000 == 0 and not demo_mode and
4242
DM.wheelpos_learner.filtered_stat.n > DM.settings._WHEELPOS_FILTER_MIN_COUNT and
4343
DM.wheel_on_right == (DM.wheelpos_learner.filtered_stat.M > DM.settings._WHEELPOS_THRESHOLD)):
4444
params.put_bool_nonblocking("IsRhdDetected", DM.wheel_on_right)

selfdrive/monitoring/helpers.py

Lines changed: 4 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -251,18 +251,18 @@ def _get_distracted_types(self):
251251

252252
return distracted_types
253253

254-
def _update_states(self, driver_state, cal_rpy, car_speed, op_engaged, standstill):
254+
def _update_states(self, driver_state, cal_rpy, car_speed, op_engaged, standstill, demo_mode=False):
255255
rhd_pred = driver_state.wheelOnRightProb
256256
# calibrates only when there's movement and either face detected
257257
if car_speed > self.settings._WHEELPOS_CALIB_MIN_SPEED and (driver_state.leftDriverData.faceProb > self.settings._FACE_THRESHOLD or
258258
driver_state.rightDriverData.faceProb > self.settings._FACE_THRESHOLD):
259259
self.wheelpos_learner.push_and_update(rhd_pred)
260-
if self.wheelpos_learner.filtered_stat.n > self.settings._WHEELPOS_FILTER_MIN_COUNT:
260+
if self.wheelpos_learner.filtered_stat.n > self.settings._WHEELPOS_FILTER_MIN_COUNT or demo_mode:
261261
self.wheel_on_right = self.wheelpos_learner.filtered_stat.M > self.settings._WHEELPOS_THRESHOLD
262262
else:
263263
self.wheel_on_right = self.wheel_on_right_default # use default/saved if calibration is unfinished
264264
# make sure no switching when engaged
265-
if op_engaged and self.wheel_on_right_last is not None and self.wheel_on_right_last != self.wheel_on_right:
265+
if op_engaged and self.wheel_on_right_last is not None and self.wheel_on_right_last != self.wheel_on_right and not demo_mode:
266266
self.wheel_on_right = self.wheel_on_right_last
267267
driver_data = driver_state.rightDriverData if self.wheel_on_right else driver_state.leftDriverData
268268
if not all(len(x) > 0 for x in (driver_data.faceOrientation, driver_data.facePosition,
@@ -448,6 +448,7 @@ def run_step(self, sm, demo=False):
448448
car_speed=highway_speed,
449449
op_engaged=enabled,
450450
standstill=standstill,
451+
demo_mode=demo,
451452
)
452453

453454
# Update distraction events

0 commit comments

Comments
 (0)