From b2767a27f65024daac41738518d5c00e442841b7 Mon Sep 17 00:00:00 2001 From: Your Name Date: Sun, 28 Apr 2024 14:55:01 -0500 Subject: [PATCH] wip --- selfdrive/controls/lib/events.py | 16 ++++++++------ selfdrive/monitoring/driver_monitor.py | 30 +++++++++++++++----------- selfdrive/ui/qt/ready.cc | 2 +- 3 files changed, 27 insertions(+), 21 deletions(-) diff --git a/selfdrive/controls/lib/events.py b/selfdrive/controls/lib/events.py index 1f59cff..3b34a8e 100644 --- a/selfdrive/controls/lib/events.py +++ b/selfdrive/controls/lib/events.py @@ -501,12 +501,13 @@ EVENTS: dict[int, dict[str, Alert | AlertCallbackType]] = { Priority.MID, VisualAlert.steerRequired, AudibleAlert.promptDistracted, .1), }, + # CLEARPILOT EventName.driverDistracted: { ET.WARNING: Alert( - "DISENGAGE IMMEDIATELY", - "Driver Distracted", - AlertStatus.critical, AlertSize.full, - Priority.HIGH, VisualAlert.steerRequired, AudibleAlert.warningImmediate, .1), + "PAY ATTENTION", + "DRIVER DISTRACTED", + AlertStatus.userPrompt, AlertSize.full, + Priority.MID, VisualAlert.steerRequired, AudibleAlert.warningImmediate, .1), }, EventName.preDriverUnresponsive: { @@ -525,12 +526,13 @@ EVENTS: dict[int, dict[str, Alert | AlertCallbackType]] = { Priority.MID, VisualAlert.steerRequired, AudibleAlert.promptDistracted, .1), }, + # CLEARPILOT EventName.driverUnresponsive: { ET.WARNING: Alert( - "DISENGAGE IMMEDIATELY", + "TOUCH STEERING WHEEL", "Driver Unresponsive", - AlertStatus.critical, AlertSize.full, - Priority.HIGH, VisualAlert.steerRequired, AudibleAlert.warningImmediate, .1), + AlertStatus.userPrompt, AlertSize.full, + Priority.MID, VisualAlert.steerRequired, AudibleAlert.warningImmediate, .1), }, EventName.manualRestart: { diff --git a/selfdrive/monitoring/driver_monitor.py b/selfdrive/monitoring/driver_monitor.py index 97c8f3c..f347ad7 100644 --- a/selfdrive/monitoring/driver_monitor.py +++ b/selfdrive/monitoring/driver_monitor.py @@ -27,12 +27,13 @@ class DRIVER_MONITOR_SETTINGS(): # self._DISTRACTED_PROMPT_TIME_TILL_TERMINAL = 6. # Temp. - self._AWARENESS_TIME = 60. # passive wheeltouch total timeout - self._AWARENESS_PRE_TIME_TILL_TERMINAL = 999. - self._AWARENESS_PROMPT_TIME_TILL_TERMINAL = 999. - self._DISTRACTED_TIME = 30. # active monitoring total timeout - self._DISTRACTED_PRE_TIME_TILL_TERMINAL = 999. - self._DISTRACTED_PROMPT_TIME_TILL_TERMINAL = 999. + # Goals: Temp only if daytime and privledged + self._AWARENESS_TIME = 50. # passive wheeltouch total timeout + self._AWARENESS_PRE_TIME_TILL_TERMINAL = 30. + self._AWARENESS_PROMPT_TIME_TILL_TERMINAL = 10. + self._DISTRACTED_TIME = 50. # active monitoring total timeout + self._DISTRACTED_PRE_TIME_TILL_TERMINAL = 30. + self._DISTRACTED_PROMPT_TIME_TILL_TERMINAL = 10. self._FACE_THRESHOLD = 0.7 self._EYE_THRESHOLD = 0.65 @@ -310,14 +311,16 @@ class DriverStatus(): self.hi_stds = 0 def update_events(self, events, driver_engaged, ctrl_active, standstill): - if (driver_engaged and self.awareness > 0 and not self.active_monitoring_mode) or not ctrl_active: # reset only when on disengagement if red reached + # self.awareness > 0 + if (driver_engaged and not self.active_monitoring_mode) or not ctrl_active: # reset only when on disengagement if red reached self._reset_awareness() return driver_attentive = self.driver_distraction_filter.x < 0.37 awareness_prev = self.awareness - if (driver_attentive and self.face_detected and self.pose.low_std and self.awareness > 0): + # and self.awareness > 0 + if (driver_attentive and self.face_detected and self.pose.low_std ): if driver_engaged: self._reset_awareness() return @@ -341,11 +344,12 @@ class DriverStatus(): alert = None if self.awareness <= 0.: # terminal red alert: disengagement required - alert = EventName.driverDistracted if self.active_monitoring_mode else EventName.driverUnresponsive - self.terminal_time += 1 - if awareness_prev > 0.: - self.terminal_alert_cnt += 1 - elif self.awareness <= self.threshold_prompt: + alert = EventName.driverDistracted if self.active_monitoring_mode else EventName.driverUnresponsive + # self.terminal_time += 1 + # if awareness_prev > 0.: + # self.terminal_alert_cnt += 1 + # elif self.awareness <= self.threshold_prompt: + if self.awareness <= self.threshold_prompt: # prompt orange alert alert = EventName.promptDriverDistracted if self.active_monitoring_mode else EventName.promptDriverUnresponsive elif self.awareness <= self.threshold_pre: diff --git a/selfdrive/ui/qt/ready.cc b/selfdrive/ui/qt/ready.cc index 44228ed..40d1e39 100644 --- a/selfdrive/ui/qt/ready.cc +++ b/selfdrive/ui/qt/ready.cc @@ -49,7 +49,7 @@ void ReadyWindow::paintEvent(QPaintEvent *event) { } void ReadyWindow::showEvent(QShowEvent *event) { - refresh(); +// refresh(); // timer->start(120 * 1000); }