This commit is contained in:
Your Name
2024-04-28 14:55:01 -05:00
parent 90a4ed9cab
commit b2767a27f6
3 changed files with 27 additions and 21 deletions

View File

@@ -501,12 +501,13 @@ EVENTS: dict[int, dict[str, Alert | AlertCallbackType]] = {
Priority.MID, VisualAlert.steerRequired, AudibleAlert.promptDistracted, .1), Priority.MID, VisualAlert.steerRequired, AudibleAlert.promptDistracted, .1),
}, },
# CLEARPILOT
EventName.driverDistracted: { EventName.driverDistracted: {
ET.WARNING: Alert( ET.WARNING: Alert(
"DISENGAGE IMMEDIATELY", "PAY ATTENTION",
"Driver Distracted", "DRIVER DISTRACTED",
AlertStatus.critical, AlertSize.full, AlertStatus.userPrompt, AlertSize.full,
Priority.HIGH, VisualAlert.steerRequired, AudibleAlert.warningImmediate, .1), Priority.MID, VisualAlert.steerRequired, AudibleAlert.warningImmediate, .1),
}, },
EventName.preDriverUnresponsive: { EventName.preDriverUnresponsive: {
@@ -525,12 +526,13 @@ EVENTS: dict[int, dict[str, Alert | AlertCallbackType]] = {
Priority.MID, VisualAlert.steerRequired, AudibleAlert.promptDistracted, .1), Priority.MID, VisualAlert.steerRequired, AudibleAlert.promptDistracted, .1),
}, },
# CLEARPILOT
EventName.driverUnresponsive: { EventName.driverUnresponsive: {
ET.WARNING: Alert( ET.WARNING: Alert(
"DISENGAGE IMMEDIATELY", "TOUCH STEERING WHEEL",
"Driver Unresponsive", "Driver Unresponsive",
AlertStatus.critical, AlertSize.full, AlertStatus.userPrompt, AlertSize.full,
Priority.HIGH, VisualAlert.steerRequired, AudibleAlert.warningImmediate, .1), Priority.MID, VisualAlert.steerRequired, AudibleAlert.warningImmediate, .1),
}, },
EventName.manualRestart: { EventName.manualRestart: {

View File

@@ -27,12 +27,13 @@ class DRIVER_MONITOR_SETTINGS():
# self._DISTRACTED_PROMPT_TIME_TILL_TERMINAL = 6. # self._DISTRACTED_PROMPT_TIME_TILL_TERMINAL = 6.
# Temp. # Temp.
self._AWARENESS_TIME = 60. # passive wheeltouch total timeout # Goals: Temp only if daytime and privledged
self._AWARENESS_PRE_TIME_TILL_TERMINAL = 999. self._AWARENESS_TIME = 50. # passive wheeltouch total timeout
self._AWARENESS_PROMPT_TIME_TILL_TERMINAL = 999. self._AWARENESS_PRE_TIME_TILL_TERMINAL = 30.
self._DISTRACTED_TIME = 30. # active monitoring total timeout self._AWARENESS_PROMPT_TIME_TILL_TERMINAL = 10.
self._DISTRACTED_PRE_TIME_TILL_TERMINAL = 999. self._DISTRACTED_TIME = 50. # active monitoring total timeout
self._DISTRACTED_PROMPT_TIME_TILL_TERMINAL = 999. self._DISTRACTED_PRE_TIME_TILL_TERMINAL = 30.
self._DISTRACTED_PROMPT_TIME_TILL_TERMINAL = 10.
self._FACE_THRESHOLD = 0.7 self._FACE_THRESHOLD = 0.7
self._EYE_THRESHOLD = 0.65 self._EYE_THRESHOLD = 0.65
@@ -310,14 +311,16 @@ class DriverStatus():
self.hi_stds = 0 self.hi_stds = 0
def update_events(self, events, driver_engaged, ctrl_active, standstill): 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() self._reset_awareness()
return return
driver_attentive = self.driver_distraction_filter.x < 0.37 driver_attentive = self.driver_distraction_filter.x < 0.37
awareness_prev = self.awareness 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: if driver_engaged:
self._reset_awareness() self._reset_awareness()
return return
@@ -342,10 +345,11 @@ class DriverStatus():
if self.awareness <= 0.: if self.awareness <= 0.:
# terminal red alert: disengagement required # terminal red alert: disengagement required
alert = EventName.driverDistracted if self.active_monitoring_mode else EventName.driverUnresponsive alert = EventName.driverDistracted if self.active_monitoring_mode else EventName.driverUnresponsive
self.terminal_time += 1 # self.terminal_time += 1
if awareness_prev > 0.: # if awareness_prev > 0.:
self.terminal_alert_cnt += 1 # self.terminal_alert_cnt += 1
elif self.awareness <= self.threshold_prompt: # elif self.awareness <= self.threshold_prompt:
if self.awareness <= self.threshold_prompt:
# prompt orange alert # prompt orange alert
alert = EventName.promptDriverDistracted if self.active_monitoring_mode else EventName.promptDriverUnresponsive alert = EventName.promptDriverDistracted if self.active_monitoring_mode else EventName.promptDriverUnresponsive
elif self.awareness <= self.threshold_pre: elif self.awareness <= self.threshold_pre:

View File

@@ -49,7 +49,7 @@ void ReadyWindow::paintEvent(QPaintEvent *event) {
} }
void ReadyWindow::showEvent(QShowEvent *event) { void ReadyWindow::showEvent(QShowEvent *event) {
refresh(); // refresh();
// timer->start(120 * 1000); // timer->start(120 * 1000);
} }