Skip to content

Commit 4917853

Browse files
dm: DriverProb (#36687)
* wip * ci * fix
1 parent f01391a commit 4917853

File tree

2 files changed

+11
-8
lines changed

2 files changed

+11
-8
lines changed

selfdrive/monitoring/dmonitoringd.py

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -39,8 +39,8 @@ def dmonitoringd_thread():
3939

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

4646
def main():

selfdrive/monitoring/helpers.py

Lines changed: 9 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -98,7 +98,7 @@ def __init__(self, max_trackable):
9898
self.cfactor_pitch = 1.
9999
self.cfactor_yaw = 1.
100100

101-
class DriverPhone:
101+
class DriverProb:
102102
def __init__(self, max_trackable):
103103
self.prob = 0.
104104
self.prob_offseter = RunningStatFilter(max_trackable=max_trackable)
@@ -140,9 +140,9 @@ def __init__(self, rhd_saved=False, settings=None, always_on=False):
140140
self.settings = settings if settings is not None else DRIVER_MONITOR_SETTINGS(device_type=HARDWARE.get_device_type())
141141

142142
# init driver status
143-
self.wheelpos_learner = RunningStatFilter()
143+
self.wheelpos = DriverProb(-1)
144144
self.pose = DriverPose(self.settings._POSE_OFFSET_MAX_COUNT)
145-
self.phone = DriverPhone(self.settings._POSE_OFFSET_MAX_COUNT)
145+
self.phone = DriverProb(self.settings._POSE_OFFSET_MAX_COUNT)
146146
self.blink = DriverBlink()
147147

148148
self.always_on = always_on
@@ -256,9 +256,12 @@ def _update_states(self, driver_state, cal_rpy, car_speed, op_engaged, standstil
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):
259-
self.wheelpos_learner.push_and_update(rhd_pred)
260-
if self.wheelpos_learner.filtered_stat.n > self.settings._WHEELPOS_FILTER_MIN_COUNT or demo_mode:
261-
self.wheel_on_right = self.wheelpos_learner.filtered_stat.M > self.settings._WHEELPOS_THRESHOLD
259+
self.wheelpos.prob_offseter.push_and_update(rhd_pred)
260+
261+
self.wheelpos.prob_calibrated = self.wheelpos.prob_offseter.filtered_stat.n > self.settings._WHEELPOS_FILTER_MIN_COUNT
262+
263+
if self.wheelpos.prob_calibrated or demo_mode:
264+
self.wheel_on_right = self.wheelpos.prob_offseter.filtered_stat.M > self.settings._WHEELPOS_THRESHOLD
262265
else:
263266
self.wheel_on_right = self.wheel_on_right_default # use default/saved if calibration is unfinished
264267
# make sure no switching when engaged

0 commit comments

Comments
 (0)