replace numpy funs and shorten green prompt (#989)

old-commit-hash: cf70368f67
commatwo_master
ZwX1616 5 years ago committed by GitHub
parent ef414f58f2
commit a288983b61
  1. 2
      selfdrive/controls/lib/alerts.py
  2. 15
      selfdrive/controls/lib/driver_monitor.py

@ -155,7 +155,7 @@ ALERTS = [
"CHECK DRIVER FACE VISIBILITY", "CHECK DRIVER FACE VISIBILITY",
"Driver Monitor Model Output Uncertain", "Driver Monitor Model Output Uncertain",
AlertStatus.normal, AlertSize.mid, AlertStatus.normal, AlertSize.mid,
Priority.LOW, VisualAlert.none, AudibleAlert.none, .4, 0., 4.), Priority.LOW, VisualAlert.none, AudibleAlert.none, .4, 0., 1.),
Alert( Alert(
"geofence", "geofence",

@ -1,4 +1,5 @@
import numpy as np from common.numpy_fast import interp
from math import atan2, sqrt
from common.realtime import DT_CTRL, DT_DMON from common.realtime import DT_CTRL, DT_DMON
from selfdrive.controls.lib.drive_helpers import create_event, EventTypes as ET from selfdrive.controls.lib.drive_helpers import create_event, EventTypes as ET
from common.filter_simple import FirstOrderFilter from common.filter_simple import FirstOrderFilter
@ -56,8 +57,8 @@ def face_orientation_from_net(angles_desc, pos_desc, rpy_calib):
roll_net = angles_desc[2] roll_net = angles_desc[2]
face_pixel_position = ((pos_desc[0] + .5)*W - W + FULL_W, (pos_desc[1]+.5)*H) face_pixel_position = ((pos_desc[0] + .5)*W - W + FULL_W, (pos_desc[1]+.5)*H)
yaw_focal_angle = np.arctan2(face_pixel_position[0] - FULL_W//2, RESIZED_FOCAL) yaw_focal_angle = atan2(face_pixel_position[0] - FULL_W//2, RESIZED_FOCAL)
pitch_focal_angle = np.arctan2(face_pixel_position[1] - H//2, RESIZED_FOCAL) pitch_focal_angle = atan2(face_pixel_position[1] - H//2, RESIZED_FOCAL)
roll = roll_net roll = roll_net
pitch = pitch_net + pitch_focal_angle pitch = pitch_net + pitch_focal_angle
@ -66,7 +67,7 @@ def face_orientation_from_net(angles_desc, pos_desc, rpy_calib):
# no calib for roll # no calib for roll
pitch -= rpy_calib[1] pitch -= rpy_calib[1]
yaw -= rpy_calib[2] yaw -= rpy_calib[2]
return np.array([roll, pitch, yaw]) return roll, pitch, yaw
class DriverPose(): class DriverPose():
def __init__(self): def __init__(self):
@ -153,7 +154,7 @@ class DriverStatus():
if pitch_error > 0.: if pitch_error > 0.:
pitch_error = max(pitch_error - _PITCH_POS_ALLOWANCE, 0.) pitch_error = max(pitch_error - _PITCH_POS_ALLOWANCE, 0.)
pitch_error *= _PITCH_WEIGHT pitch_error *= _PITCH_WEIGHT
pose_metric = np.sqrt(yaw_error**2 + pitch_error**2) pose_metric = sqrt(yaw_error**2 + pitch_error**2)
if pose_metric > _METRIC_THRESHOLD*pose.cfactor: if pose_metric > _METRIC_THRESHOLD*pose.cfactor:
return DistractedType.BAD_POSE return DistractedType.BAD_POSE
@ -164,8 +165,8 @@ class DriverStatus():
def set_policy(self, model_data): def set_policy(self, model_data):
ep = min(model_data.meta.engagedProb, 0.8) / 0.8 ep = min(model_data.meta.engagedProb, 0.8) / 0.8
self.pose.cfactor = np.interp(ep, [0, 0.5, 1], [_METRIC_THRESHOLD_STRICT, _METRIC_THRESHOLD, _METRIC_THRESHOLD_SLACK])/_METRIC_THRESHOLD self.pose.cfactor = interp(ep, [0, 0.5, 1], [_METRIC_THRESHOLD_STRICT, _METRIC_THRESHOLD, _METRIC_THRESHOLD_SLACK])/_METRIC_THRESHOLD
self.blink.cfactor = np.interp(ep, [0, 0.5, 1], [_BLINK_THRESHOLD_STRICT, _BLINK_THRESHOLD, _BLINK_THRESHOLD_SLACK])/_BLINK_THRESHOLD self.blink.cfactor = interp(ep, [0, 0.5, 1], [_BLINK_THRESHOLD_STRICT, _BLINK_THRESHOLD, _BLINK_THRESHOLD_SLACK])/_BLINK_THRESHOLD
def get_pose(self, driver_monitoring, cal_rpy, car_speed, op_engaged): def get_pose(self, driver_monitoring, cal_rpy, car_speed, op_engaged):
# 10 Hz # 10 Hz

Loading…
Cancel
Save