GM: separate EV/ICE gas/brake lookup tables

pull/25354/head
Tim Wilson 3 years ago
parent 5c2cb8fb97
commit 0045fdf509
  1. 7
      selfdrive/car/gm/carcontroller.py
  2. 14
      selfdrive/car/gm/values.py

@ -5,7 +5,7 @@ from common.realtime import DT_CTRL
from opendbc.can.packer import CANPacker
from selfdrive.car import apply_std_steer_torque_limits
from selfdrive.car.gm import gmcan
from selfdrive.car.gm.values import DBC, CanBus, CarControllerParams
from selfdrive.car.gm.values import DBC, CanBus, CarControllerParams, EV_CAR
VisualAlert = car.CarControl.HUDControl.VisualAlert
NetworkLocation = car.CarParams.NetworkLocation
@ -67,6 +67,11 @@ class CarController:
# Stock ECU sends max regen when not enabled
self.apply_gas = self.params.MAX_ACC_REGEN
self.apply_brake = 0
else:
if self.CP.carFingerprint in EV_CAR:
self.apply_gas = int(round(interp(actuators.accel, self.params.EV_GAS_LOOKUP_BP, self.params.EV_GAS_LOOKUP_V)))
self.apply_brake = int(round(interp(actuators.accel, self.params.EV_BRAKE_LOOKUP_BP, self.params.EV_BRAKE_LOOKUP_V)))
else:
self.apply_gas = int(round(interp(actuators.accel, self.params.GAS_LOOKUP_BP, self.params.GAS_LOOKUP_V)))
self.apply_brake = int(round(interp(actuators.accel, self.params.BRAKE_LOOKUP_BP, self.params.BRAKE_LOOKUP_V)))

@ -38,15 +38,20 @@ class CarControllerParams:
# -3.5 m/s^2 as per planner limits
ACCEL_MAX = 2. # m/s^2
ACCEL_MIN = -4. # m/s^2
EV_GAS_BRAKE_THRESHOLD_ACCEL = -1.1
ICE_GAS_BRAKE_THRESHOLD_ACCEL = -0.1 # much less engine braking force compared to regen in an EV
GAS_LOOKUP_BP = [-1., 0., ACCEL_MAX]
GAS_LOOKUP_BP = [ICE_GAS_BRAKE_THRESHOLD_ACCEL, 0., ACCEL_MAX]
GAS_LOOKUP_V = [MAX_ACC_REGEN, ZERO_GAS, MAX_GAS]
BRAKE_LOOKUP_BP = [ACCEL_MIN, -1.]
BRAKE_LOOKUP_BP = [ACCEL_MIN, ICE_GAS_BRAKE_THRESHOLD_ACCEL]
BRAKE_LOOKUP_V = [MAX_BRAKE, 0.]
STEER_THRESHOLD = 1.0
EV_GAS_LOOKUP_BP = [EV_GAS_BRAKE_THRESHOLD_ACCEL, 0., ACCEL_MAX]
EV_GAS_LOOKUP_V = [MAX_ACC_REGEN, ZERO_GAS, MAX_GAS]
EV_BRAKE_LOOKUP_BP = [ACCEL_MIN, EV_GAS_BRAKE_THRESHOLD_ACCEL]
EV_BRAKE_LOOKUP_V = [MAX_BRAKE, 0.]
STEER_THRESHOLD = 1.0
class CAR:
HOLDEN_ASTRA = "HOLDEN ASTRA RS-V BK 2017"
VOLT = "CHEVROLET VOLT PREMIER 2017"
@ -56,6 +61,7 @@ class CAR:
BUICK_REGAL = "BUICK REGAL ESSENCE 2018"
ESCALADE_ESV = "CADILLAC ESCALADE ESV 2016"
EV_CAR = {CAR.VOLT}
class Footnote(Enum):
OBD_II = CarFootnote(

Loading…
Cancel
Save