cars: remove some external imports (#33133)
* ford and gm * clean that up * also this * honda * temp fix * move into selfdrive.car * clean up * more
This commit is contained in:
parent
0fe143e4a7
commit
0739d79a51
|
@ -33,9 +33,6 @@ ignore_imports =
|
||||||
openpilot.selfdrive.car.ecu_addrs -> openpilot.common.swaglog
|
openpilot.selfdrive.car.ecu_addrs -> openpilot.common.swaglog
|
||||||
openpilot.selfdrive.car.car_helpers -> openpilot.common.swaglog
|
openpilot.selfdrive.car.car_helpers -> openpilot.common.swaglog
|
||||||
openpilot.selfdrive.car.car_helpers -> openpilot.system.version
|
openpilot.selfdrive.car.car_helpers -> openpilot.system.version
|
||||||
openpilot.selfdrive.car.ford.carcontroller -> openpilot.selfdrive.controls.lib.drive_helpers
|
|
||||||
openpilot.selfdrive.car.gm.interface -> openpilot.selfdrive.controls.lib.drive_helpers
|
|
||||||
openpilot.selfdrive.car.honda.carcontroller -> openpilot.selfdrive.controls.lib.drive_helpers
|
|
||||||
openpilot.selfdrive.car.interfaces -> openpilot.selfdrive.controls.lib.drive_helpers
|
openpilot.selfdrive.car.interfaces -> openpilot.selfdrive.controls.lib.drive_helpers
|
||||||
openpilot.selfdrive.car.tests.test_car_interfaces -> openpilot.selfdrive.controls.lib.latcontrol_angle
|
openpilot.selfdrive.car.tests.test_car_interfaces -> openpilot.selfdrive.controls.lib.latcontrol_angle
|
||||||
openpilot.selfdrive.car.tests.test_car_interfaces -> openpilot.selfdrive.controls.lib.longcontrol
|
openpilot.selfdrive.car.tests.test_car_interfaces -> openpilot.selfdrive.controls.lib.longcontrol
|
||||||
|
|
|
@ -166,6 +166,27 @@ def common_fault_avoidance(fault_condition: bool, request: bool, above_limit_fra
|
||||||
return above_limit_frames, request
|
return above_limit_frames, request
|
||||||
|
|
||||||
|
|
||||||
|
def apply_center_deadzone(error, deadzone):
|
||||||
|
if (error > - deadzone) and (error < deadzone):
|
||||||
|
error = 0.
|
||||||
|
return error
|
||||||
|
|
||||||
|
|
||||||
|
def rate_limit(new_value, last_value, dw_step, up_step):
|
||||||
|
return clip(new_value, last_value + dw_step, last_value + up_step)
|
||||||
|
|
||||||
|
|
||||||
|
def get_friction(lateral_accel_error: float, lateral_accel_deadzone: float, friction_threshold: float,
|
||||||
|
torque_params: car.CarParams.LateralTorqueTuning, friction_compensation: bool) -> float:
|
||||||
|
friction_interp = interp(
|
||||||
|
apply_center_deadzone(lateral_accel_error, lateral_accel_deadzone),
|
||||||
|
[-friction_threshold, friction_threshold],
|
||||||
|
[-torque_params.friction, torque_params.friction]
|
||||||
|
)
|
||||||
|
friction = float(friction_interp) if friction_compensation else 0.0
|
||||||
|
return friction
|
||||||
|
|
||||||
|
|
||||||
def make_can_msg(addr, dat, bus):
|
def make_can_msg(addr, dat, bus):
|
||||||
return [addr, 0, dat, bus]
|
return [addr, 0, dat, bus]
|
||||||
|
|
||||||
|
|
|
@ -5,10 +5,10 @@ from openpilot.selfdrive.car import apply_std_steer_angle_limits
|
||||||
from openpilot.selfdrive.car.ford import fordcan
|
from openpilot.selfdrive.car.ford import fordcan
|
||||||
from openpilot.selfdrive.car.ford.values import CarControllerParams, FordFlags
|
from openpilot.selfdrive.car.ford.values import CarControllerParams, FordFlags
|
||||||
from openpilot.selfdrive.car.interfaces import CarControllerBase
|
from openpilot.selfdrive.car.interfaces import CarControllerBase
|
||||||
from openpilot.selfdrive.controls.lib.drive_helpers import V_CRUISE_MAX
|
|
||||||
|
|
||||||
LongCtrlState = car.CarControl.Actuators.LongControlState
|
LongCtrlState = car.CarControl.Actuators.LongControlState
|
||||||
VisualAlert = car.CarControl.HUDControl.VisualAlert
|
VisualAlert = car.CarControl.HUDControl.VisualAlert
|
||||||
|
V_CRUISE_MAX = 145
|
||||||
|
|
||||||
|
|
||||||
def apply_ford_curvature_limits(apply_curvature, apply_curvature_last, current_curvature, v_ego_raw):
|
def apply_ford_curvature_limits(apply_curvature, apply_curvature_last, current_curvature, v_ego_raw):
|
||||||
|
|
|
@ -6,11 +6,10 @@ from panda import Panda
|
||||||
|
|
||||||
from openpilot.common.basedir import BASEDIR
|
from openpilot.common.basedir import BASEDIR
|
||||||
from openpilot.common.conversions import Conversions as CV
|
from openpilot.common.conversions import Conversions as CV
|
||||||
from openpilot.selfdrive.car import create_button_events, get_safety_config
|
from openpilot.selfdrive.car import create_button_events, get_safety_config, get_friction
|
||||||
from openpilot.selfdrive.car.gm.radar_interface import RADAR_HEADER_MSG
|
from openpilot.selfdrive.car.gm.radar_interface import RADAR_HEADER_MSG
|
||||||
from openpilot.selfdrive.car.gm.values import CAR, CruiseButtons, CarControllerParams, EV_CAR, CAMERA_ACC_CAR, CanBus
|
from openpilot.selfdrive.car.gm.values import CAR, CruiseButtons, CarControllerParams, EV_CAR, CAMERA_ACC_CAR, CanBus
|
||||||
from openpilot.selfdrive.car.interfaces import CarInterfaceBase, TorqueFromLateralAccelCallbackType, FRICTION_THRESHOLD, LatControlInputs, NanoFFModel
|
from openpilot.selfdrive.car.interfaces import CarInterfaceBase, TorqueFromLateralAccelCallbackType, FRICTION_THRESHOLD, LatControlInputs, NanoFFModel
|
||||||
from openpilot.selfdrive.controls.lib.drive_helpers import get_friction
|
|
||||||
|
|
||||||
ButtonType = car.CarState.ButtonEvent.Type
|
ButtonType = car.CarState.ButtonEvent.Type
|
||||||
EventName = car.CarEvent.EventName
|
EventName = car.CarEvent.EventName
|
||||||
|
|
|
@ -3,11 +3,10 @@ from collections import namedtuple
|
||||||
from cereal import car
|
from cereal import car
|
||||||
from openpilot.common.numpy_fast import clip, interp
|
from openpilot.common.numpy_fast import clip, interp
|
||||||
from opendbc.can.packer import CANPacker
|
from opendbc.can.packer import CANPacker
|
||||||
from openpilot.selfdrive.car import DT_CTRL
|
from openpilot.selfdrive.car import DT_CTRL, rate_limit
|
||||||
from openpilot.selfdrive.car.honda import hondacan
|
from openpilot.selfdrive.car.honda import hondacan
|
||||||
from openpilot.selfdrive.car.honda.values import CruiseButtons, VISUAL_HUD, HONDA_BOSCH, HONDA_BOSCH_RADARLESS, HONDA_NIDEC_ALT_PCM_ACCEL, CarControllerParams
|
from openpilot.selfdrive.car.honda.values import CruiseButtons, VISUAL_HUD, HONDA_BOSCH, HONDA_BOSCH_RADARLESS, HONDA_NIDEC_ALT_PCM_ACCEL, CarControllerParams
|
||||||
from openpilot.selfdrive.car.interfaces import CarControllerBase
|
from openpilot.selfdrive.car.interfaces import CarControllerBase
|
||||||
from openpilot.selfdrive.controls.lib.drive_helpers import rate_limit
|
|
||||||
|
|
||||||
VisualAlert = car.CarControl.HUDControl.VisualAlert
|
VisualAlert = car.CarControl.HUDControl.VisualAlert
|
||||||
LongCtrlState = car.CarControl.Actuators.LongControlState
|
LongCtrlState = car.CarControl.Actuators.LongControlState
|
||||||
|
|
|
@ -13,9 +13,9 @@ from openpilot.common.basedir import BASEDIR
|
||||||
from openpilot.common.conversions import Conversions as CV
|
from openpilot.common.conversions import Conversions as CV
|
||||||
from openpilot.common.simple_kalman import KF1D, get_kalman_gain
|
from openpilot.common.simple_kalman import KF1D, get_kalman_gain
|
||||||
from openpilot.common.numpy_fast import clip
|
from openpilot.common.numpy_fast import clip
|
||||||
from openpilot.selfdrive.car import DT_CTRL, apply_hysteresis, gen_empty_fingerprint, scale_rot_inertia, scale_tire_stiffness, STD_CARGO_KG
|
from openpilot.selfdrive.car import DT_CTRL, apply_hysteresis, gen_empty_fingerprint, scale_rot_inertia, scale_tire_stiffness, get_friction, STD_CARGO_KG
|
||||||
from openpilot.selfdrive.car.values import PLATFORMS
|
from openpilot.selfdrive.car.values import PLATFORMS
|
||||||
from openpilot.selfdrive.controls.lib.drive_helpers import V_CRUISE_MAX, get_friction
|
from openpilot.selfdrive.controls.lib.drive_helpers import V_CRUISE_MAX
|
||||||
from openpilot.selfdrive.controls.lib.events import Events
|
from openpilot.selfdrive.controls.lib.events import Events
|
||||||
from openpilot.selfdrive.controls.lib.vehicle_model import VehicleModel
|
from openpilot.selfdrive.controls.lib.vehicle_model import VehicleModel
|
||||||
|
|
||||||
|
|
|
@ -2,7 +2,7 @@ import math
|
||||||
|
|
||||||
from cereal import car, log
|
from cereal import car, log
|
||||||
from openpilot.common.conversions import Conversions as CV
|
from openpilot.common.conversions import Conversions as CV
|
||||||
from openpilot.common.numpy_fast import clip, interp
|
from openpilot.common.numpy_fast import clip
|
||||||
from openpilot.common.realtime import DT_CTRL
|
from openpilot.common.realtime import DT_CTRL
|
||||||
|
|
||||||
# WARNING: this value was determined based on the model's training distribution,
|
# WARNING: this value was determined based on the model's training distribution,
|
||||||
|
@ -141,16 +141,6 @@ class VCruiseHelper:
|
||||||
self.v_cruise_cluster_kph = self.v_cruise_kph
|
self.v_cruise_cluster_kph = self.v_cruise_kph
|
||||||
|
|
||||||
|
|
||||||
def apply_center_deadzone(error, deadzone):
|
|
||||||
if (error > - deadzone) and (error < deadzone):
|
|
||||||
error = 0.
|
|
||||||
return error
|
|
||||||
|
|
||||||
|
|
||||||
def rate_limit(new_value, last_value, dw_step, up_step):
|
|
||||||
return clip(new_value, last_value + dw_step, last_value + up_step)
|
|
||||||
|
|
||||||
|
|
||||||
def clip_curvature(v_ego, prev_curvature, new_curvature):
|
def clip_curvature(v_ego, prev_curvature, new_curvature):
|
||||||
v_ego = max(MIN_SPEED, v_ego)
|
v_ego = max(MIN_SPEED, v_ego)
|
||||||
max_curvature_rate = MAX_LATERAL_JERK / (v_ego**2) # inexact calculation, check https://github.com/commaai/openpilot/pull/24755
|
max_curvature_rate = MAX_LATERAL_JERK / (v_ego**2) # inexact calculation, check https://github.com/commaai/openpilot/pull/24755
|
||||||
|
@ -161,17 +151,6 @@ def clip_curvature(v_ego, prev_curvature, new_curvature):
|
||||||
return safe_desired_curvature
|
return safe_desired_curvature
|
||||||
|
|
||||||
|
|
||||||
def get_friction(lateral_accel_error: float, lateral_accel_deadzone: float, friction_threshold: float,
|
|
||||||
torque_params: car.CarParams.LateralTorqueTuning, friction_compensation: bool) -> float:
|
|
||||||
friction_interp = interp(
|
|
||||||
apply_center_deadzone(lateral_accel_error, lateral_accel_deadzone),
|
|
||||||
[-friction_threshold, friction_threshold],
|
|
||||||
[-torque_params.friction, torque_params.friction]
|
|
||||||
)
|
|
||||||
friction = float(friction_interp) if friction_compensation else 0.0
|
|
||||||
return friction
|
|
||||||
|
|
||||||
|
|
||||||
def get_speed_error(modelV2: log.ModelDataV2, v_ego: float) -> float:
|
def get_speed_error(modelV2: log.ModelDataV2, v_ego: float) -> float:
|
||||||
# ToDo: Try relative error, and absolute speed
|
# ToDo: Try relative error, and absolute speed
|
||||||
if len(modelV2.temporalPose.trans):
|
if len(modelV2.temporalPose.trans):
|
||||||
|
|
Loading…
Reference in New Issue