Vehicles - Disable openpilot Longitudinal Control
Disable openpilot longitudinal control and use stock ACC instead.
This commit is contained in:
parent
a1c4130165
commit
c0b14e1c8d
@ -7,7 +7,7 @@ from openpilot.selfdrive.car.body.values import SPEED_FROM_RPM
|
|||||||
|
|
||||||
class CarInterface(CarInterfaceBase):
|
class CarInterface(CarInterfaceBase):
|
||||||
@staticmethod
|
@staticmethod
|
||||||
def _get_params(ret, params, candidate, fingerprint, car_fw, experimental_long, docs):
|
def _get_params(ret, params, candidate, fingerprint, car_fw, disable_openpilot_long, experimental_long, docs):
|
||||||
ret.notCar = True
|
ret.notCar = True
|
||||||
ret.carName = "body"
|
ret.carName = "body"
|
||||||
ret.safetyConfigs = [get_safety_config(car.CarParams.SafetyModel.body)]
|
ret.safetyConfigs = [get_safety_config(car.CarParams.SafetyModel.body)]
|
||||||
|
@ -201,7 +201,7 @@ def get_car_interface(CP):
|
|||||||
return CarInterface(CP, CarController, CarState)
|
return CarInterface(CP, CarController, CarState)
|
||||||
|
|
||||||
|
|
||||||
def get_car(params, logcan, sendcan, experimental_long_allowed, num_pandas=1):
|
def get_car(params, logcan, sendcan, disable_openpilot_long, experimental_long_allowed, num_pandas=1):
|
||||||
candidate, fingerprints, vin, car_fw, source, exact_match = fingerprint(logcan, sendcan, num_pandas)
|
candidate, fingerprints, vin, car_fw, source, exact_match = fingerprint(logcan, sendcan, num_pandas)
|
||||||
|
|
||||||
if candidate is None:
|
if candidate is None:
|
||||||
@ -218,7 +218,7 @@ def get_car(params, logcan, sendcan, experimental_long_allowed, num_pandas=1):
|
|||||||
fingerprint_log.start()
|
fingerprint_log.start()
|
||||||
|
|
||||||
CarInterface, _, _ = interfaces[candidate]
|
CarInterface, _, _ = interfaces[candidate]
|
||||||
CP = CarInterface.get_params(params, candidate, fingerprints, car_fw, experimental_long_allowed, docs=False)
|
CP = CarInterface.get_params(params, candidate, fingerprints, car_fw, disable_openpilot_long, experimental_long_allowed, docs=False)
|
||||||
CP.carVin = vin
|
CP.carVin = vin
|
||||||
CP.carFw = car_fw
|
CP.carFw = car_fw
|
||||||
CP.fingerprintSource = source
|
CP.fingerprintSource = source
|
||||||
|
@ -43,8 +43,9 @@ class CarD:
|
|||||||
get_one_can(self.can_sock)
|
get_one_can(self.can_sock)
|
||||||
|
|
||||||
num_pandas = len(messaging.recv_one_retry(self.sm.sock['pandaStates']).pandaStates)
|
num_pandas = len(messaging.recv_one_retry(self.sm.sock['pandaStates']).pandaStates)
|
||||||
experimental_long_allowed = self.params.get_bool("ExperimentalLongitudinalEnabled")
|
disable_openpilot_long = self.params.get_bool("DisableOpenpilotLongitudinal")
|
||||||
self.CI, self.CP = get_car(self.params, self.can_sock, self.pm.sock['sendcan'], experimental_long_allowed, num_pandas)
|
experimental_long_allowed = not disable_openpilot_long and self.params.get_bool("ExperimentalLongitudinalEnabled")
|
||||||
|
self.CI, self.CP = get_car(self.params, self.can_sock, self.pm.sock['sendcan'], disable_openpilot_long, experimental_long_allowed, num_pandas)
|
||||||
else:
|
else:
|
||||||
self.CI, self.CP = CI, CI.CP
|
self.CI, self.CP = CI, CI.CP
|
||||||
|
|
||||||
|
@ -11,7 +11,7 @@ FrogPilotButtonType = custom.FrogPilotCarState.ButtonEvent.Type
|
|||||||
|
|
||||||
class CarInterface(CarInterfaceBase):
|
class CarInterface(CarInterfaceBase):
|
||||||
@staticmethod
|
@staticmethod
|
||||||
def _get_params(ret, params, candidate, fingerprint, car_fw, experimental_long, docs):
|
def _get_params(ret, params, candidate, fingerprint, car_fw, disable_openpilot_long, experimental_long, docs):
|
||||||
ret.carName = "chrysler"
|
ret.carName = "chrysler"
|
||||||
ret.dashcamOnly = candidate in RAM_HD
|
ret.dashcamOnly = candidate in RAM_HD
|
||||||
|
|
||||||
|
@ -14,7 +14,7 @@ FrogPilotButtonType = custom.FrogPilotCarState.ButtonEvent.Type
|
|||||||
|
|
||||||
class CarInterface(CarInterfaceBase):
|
class CarInterface(CarInterfaceBase):
|
||||||
@staticmethod
|
@staticmethod
|
||||||
def _get_params(ret, params, candidate, fingerprint, car_fw, experimental_long, docs):
|
def _get_params(ret, params, candidate, fingerprint, car_fw, disable_openpilot_long, experimental_long, docs):
|
||||||
ret.carName = "ford"
|
ret.carName = "ford"
|
||||||
ret.dashcamOnly = False
|
ret.dashcamOnly = False
|
||||||
|
|
||||||
|
@ -92,7 +92,9 @@ class CarInterface(CarInterfaceBase):
|
|||||||
return self.torque_from_lateral_accel_linear
|
return self.torque_from_lateral_accel_linear
|
||||||
|
|
||||||
@staticmethod
|
@staticmethod
|
||||||
def _get_params(ret, params, candidate, fingerprint, car_fw, experimental_long, docs):
|
def _get_params(ret, params, candidate, fingerprint, car_fw, disable_openpilot_long, experimental_long, docs):
|
||||||
|
params.put_bool("HideDisableOpenpilotLongitudinal", candidate not in (SDGM_CAR | CAMERA_ACC_CAR))
|
||||||
|
|
||||||
ret.carName = "gm"
|
ret.carName = "gm"
|
||||||
ret.safetyConfigs = [get_safety_config(car.CarParams.SafetyModel.gm)]
|
ret.safetyConfigs = [get_safety_config(car.CarParams.SafetyModel.gm)]
|
||||||
ret.autoResumeSng = False
|
ret.autoResumeSng = False
|
||||||
@ -143,7 +145,7 @@ class CarInterface(CarInterfaceBase):
|
|||||||
ret.safetyConfigs[0].safetyParam |= Panda.FLAG_GM_HW_SDGM
|
ret.safetyConfigs[0].safetyParam |= Panda.FLAG_GM_HW_SDGM
|
||||||
|
|
||||||
else: # ASCM, OBD-II harness
|
else: # ASCM, OBD-II harness
|
||||||
ret.openpilotLongitudinalControl = True
|
ret.openpilotLongitudinalControl = not disable_openpilot_long
|
||||||
ret.networkLocation = NetworkLocation.gateway
|
ret.networkLocation = NetworkLocation.gateway
|
||||||
ret.radarUnavailable = RADAR_HEADER_MSG not in fingerprint[CanBus.OBSTACLE] and not docs
|
ret.radarUnavailable = RADAR_HEADER_MSG not in fingerprint[CanBus.OBSTACLE] and not docs
|
||||||
ret.pcmCruise = False # stock non-adaptive cruise control is kept off
|
ret.pcmCruise = False # stock non-adaptive cruise control is kept off
|
||||||
@ -250,7 +252,7 @@ class CarInterface(CarInterfaceBase):
|
|||||||
ret.safetyConfigs[0].safetyParam |= Panda.FLAG_GM_HW_CAM
|
ret.safetyConfigs[0].safetyParam |= Panda.FLAG_GM_HW_CAM
|
||||||
ret.minEnableSpeed = -1
|
ret.minEnableSpeed = -1
|
||||||
ret.pcmCruise = False
|
ret.pcmCruise = False
|
||||||
ret.openpilotLongitudinalControl = True
|
ret.openpilotLongitudinalControl = not disable_openpilot_long
|
||||||
ret.stoppingControl = True
|
ret.stoppingControl = True
|
||||||
ret.autoResumeSng = True
|
ret.autoResumeSng = True
|
||||||
|
|
||||||
@ -276,7 +278,7 @@ class CarInterface(CarInterfaceBase):
|
|||||||
ret.radarUnavailable = True
|
ret.radarUnavailable = True
|
||||||
ret.experimentalLongitudinalAvailable = False
|
ret.experimentalLongitudinalAvailable = False
|
||||||
ret.minEnableSpeed = 24 * CV.MPH_TO_MS
|
ret.minEnableSpeed = 24 * CV.MPH_TO_MS
|
||||||
ret.openpilotLongitudinalControl = True
|
ret.openpilotLongitudinalControl = not disable_openpilot_long
|
||||||
ret.pcmCruise = False
|
ret.pcmCruise = False
|
||||||
|
|
||||||
ret.longitudinalTuning.deadzoneBP = [0.]
|
ret.longitudinalTuning.deadzoneBP = [0.]
|
||||||
|
@ -41,7 +41,7 @@ class CarInterface(CarInterfaceBase):
|
|||||||
return CarControllerParams.NIDEC_ACCEL_MIN, interp(current_speed, ACCEL_MAX_BP, ACCEL_MAX_VALS)
|
return CarControllerParams.NIDEC_ACCEL_MIN, interp(current_speed, ACCEL_MAX_BP, ACCEL_MAX_VALS)
|
||||||
|
|
||||||
@staticmethod
|
@staticmethod
|
||||||
def _get_params(ret, params, candidate, fingerprint, car_fw, experimental_long, docs):
|
def _get_params(ret, params, candidate, fingerprint, car_fw, disable_openpilot_long, experimental_long, docs):
|
||||||
ret.carName = "honda"
|
ret.carName = "honda"
|
||||||
|
|
||||||
CAN = CanBus(ret, fingerprint)
|
CAN = CanBus(ret, fingerprint)
|
||||||
@ -58,7 +58,7 @@ class CarInterface(CarInterfaceBase):
|
|||||||
else:
|
else:
|
||||||
ret.safetyConfigs = [get_safety_config(car.CarParams.SafetyModel.hondaNidec)]
|
ret.safetyConfigs = [get_safety_config(car.CarParams.SafetyModel.hondaNidec)]
|
||||||
ret.enableGasInterceptor = 0x201 in fingerprint[CAN.pt]
|
ret.enableGasInterceptor = 0x201 in fingerprint[CAN.pt]
|
||||||
ret.openpilotLongitudinalControl = True
|
ret.openpilotLongitudinalControl = not disable_openpilot_long
|
||||||
|
|
||||||
ret.pcmCruise = not ret.enableGasInterceptor
|
ret.pcmCruise = not ret.enableGasInterceptor
|
||||||
|
|
||||||
|
@ -21,7 +21,7 @@ FrogPilotButtonType = custom.FrogPilotCarState.ButtonEvent.Type
|
|||||||
|
|
||||||
class CarInterface(CarInterfaceBase):
|
class CarInterface(CarInterfaceBase):
|
||||||
@staticmethod
|
@staticmethod
|
||||||
def _get_params(ret, params, candidate, fingerprint, car_fw, experimental_long, docs):
|
def _get_params(ret, params, candidate, fingerprint, car_fw, disable_openpilot_long, experimental_long, docs):
|
||||||
ret.carName = "hyundai"
|
ret.carName = "hyundai"
|
||||||
ret.radarUnavailable = RADAR_START_ADDR not in fingerprint[1] or DBC[ret.carFingerprint]["radar"] is None
|
ret.radarUnavailable = RADAR_START_ADDR not in fingerprint[1] or DBC[ret.carFingerprint]["radar"] is None
|
||||||
|
|
||||||
|
@ -251,10 +251,10 @@ class CarInterfaceBase(ABC):
|
|||||||
"""
|
"""
|
||||||
Parameters essential to controlling the car may be incomplete or wrong without FW versions or fingerprints.
|
Parameters essential to controlling the car may be incomplete or wrong without FW versions or fingerprints.
|
||||||
"""
|
"""
|
||||||
return cls.get_params(candidate, gen_empty_fingerprint(), list(), False, False)
|
return cls.get_params(candidate, gen_empty_fingerprint(), list(), False, False, False)
|
||||||
|
|
||||||
@classmethod
|
@classmethod
|
||||||
def get_params(cls, params, candidate: str, fingerprint: dict[int, dict[int, int]], car_fw: list[car.CarParams.CarFw], experimental_long: bool, docs: bool):
|
def get_params(cls, params, candidate: str, fingerprint: dict[int, dict[int, int]], car_fw: list[car.CarParams.CarFw], disable_openpilot_long: bool, experimental_long: bool, docs: bool):
|
||||||
ret = CarInterfaceBase.get_std_params(candidate)
|
ret = CarInterfaceBase.get_std_params(candidate)
|
||||||
|
|
||||||
platform = PLATFORMS[candidate]
|
platform = PLATFORMS[candidate]
|
||||||
@ -267,7 +267,7 @@ class CarInterfaceBase(ABC):
|
|||||||
ret.tireStiffnessFactor = platform.config.specs.tireStiffnessFactor
|
ret.tireStiffnessFactor = platform.config.specs.tireStiffnessFactor
|
||||||
ret.flags |= int(platform.config.flags)
|
ret.flags |= int(platform.config.flags)
|
||||||
|
|
||||||
ret = cls._get_params(ret, params, candidate, fingerprint, car_fw, experimental_long, docs)
|
ret = cls._get_params(ret, params, candidate, fingerprint, car_fw, disable_openpilot_long, experimental_long, docs)
|
||||||
|
|
||||||
# Enable torque controller for all cars that do not use angle based steering
|
# Enable torque controller for all cars that do not use angle based steering
|
||||||
if ret.steerControlType != car.CarParams.SteerControlType.angle and params.get_bool("LateralTune") and params.get_bool("NNFF"):
|
if ret.steerControlType != car.CarParams.SteerControlType.angle and params.get_bool("LateralTune") and params.get_bool("NNFF"):
|
||||||
|
@ -12,7 +12,7 @@ FrogPilotButtonType = custom.FrogPilotCarState.ButtonEvent.Type
|
|||||||
class CarInterface(CarInterfaceBase):
|
class CarInterface(CarInterfaceBase):
|
||||||
|
|
||||||
@staticmethod
|
@staticmethod
|
||||||
def _get_params(ret, params, candidate, fingerprint, car_fw, experimental_long, docs):
|
def _get_params(ret, params, candidate, fingerprint, car_fw, disable_openpilot_long, experimental_long, docs):
|
||||||
ret.carName = "mazda"
|
ret.carName = "mazda"
|
||||||
ret.safetyConfigs = [get_safety_config(car.CarParams.SafetyModel.mazda)]
|
ret.safetyConfigs = [get_safety_config(car.CarParams.SafetyModel.mazda)]
|
||||||
ret.radarUnavailable = True
|
ret.radarUnavailable = True
|
||||||
|
@ -12,7 +12,7 @@ class CarInterface(CarInterfaceBase):
|
|||||||
self.sm = messaging.SubMaster(['gpsLocation', 'gpsLocationExternal'])
|
self.sm = messaging.SubMaster(['gpsLocation', 'gpsLocationExternal'])
|
||||||
|
|
||||||
@staticmethod
|
@staticmethod
|
||||||
def _get_params(ret, params, candidate, fingerprint, car_fw, experimental_long, docs):
|
def _get_params(ret, params, candidate, fingerprint, car_fw, disable_openpilot_long, experimental_long, docs):
|
||||||
ret.carName = "mock"
|
ret.carName = "mock"
|
||||||
ret.mass = 1700.
|
ret.mass = 1700.
|
||||||
ret.wheelbase = 2.70
|
ret.wheelbase = 2.70
|
||||||
|
@ -11,7 +11,7 @@ FrogPilotButtonType = custom.FrogPilotCarState.ButtonEvent.Type
|
|||||||
class CarInterface(CarInterfaceBase):
|
class CarInterface(CarInterfaceBase):
|
||||||
|
|
||||||
@staticmethod
|
@staticmethod
|
||||||
def _get_params(ret, params, candidate, fingerprint, car_fw, experimental_long, docs):
|
def _get_params(ret, params, candidate, fingerprint, car_fw, disable_openpilot_long, experimental_long, docs):
|
||||||
ret.carName = "nissan"
|
ret.carName = "nissan"
|
||||||
ret.safetyConfigs = [get_safety_config(car.CarParams.SafetyModel.nissan)]
|
ret.safetyConfigs = [get_safety_config(car.CarParams.SafetyModel.nissan)]
|
||||||
ret.autoResumeSng = False
|
ret.autoResumeSng = False
|
||||||
|
@ -10,7 +10,7 @@ FrogPilotButtonType = custom.FrogPilotCarState.ButtonEvent.Type
|
|||||||
class CarInterface(CarInterfaceBase):
|
class CarInterface(CarInterfaceBase):
|
||||||
|
|
||||||
@staticmethod
|
@staticmethod
|
||||||
def _get_params(ret, params, candidate: CAR, fingerprint, car_fw, experimental_long, docs):
|
def _get_params(ret, params, candidate: CAR, fingerprint, car_fw, disable_openpilot_long, experimental_long, docs):
|
||||||
ret.carName = "subaru"
|
ret.carName = "subaru"
|
||||||
ret.radarUnavailable = True
|
ret.radarUnavailable = True
|
||||||
# for HYBRID CARS to be upstreamed, we need:
|
# for HYBRID CARS to be upstreamed, we need:
|
||||||
|
@ -8,7 +8,7 @@ from openpilot.selfdrive.car.interfaces import CarInterfaceBase
|
|||||||
|
|
||||||
class CarInterface(CarInterfaceBase):
|
class CarInterface(CarInterfaceBase):
|
||||||
@staticmethod
|
@staticmethod
|
||||||
def _get_params(ret, params, candidate, fingerprint, car_fw, experimental_long, docs):
|
def _get_params(ret, params, candidate, fingerprint, car_fw, disable_openpilot_long, experimental_long, docs):
|
||||||
ret.carName = "tesla"
|
ret.carName = "tesla"
|
||||||
|
|
||||||
# There is no safe way to do steer blending with user torque,
|
# There is no safe way to do steer blending with user torque,
|
||||||
@ -30,7 +30,7 @@ class CarInterface(CarInterfaceBase):
|
|||||||
# If so, we assume that it is connected to the longitudinal harness.
|
# If so, we assume that it is connected to the longitudinal harness.
|
||||||
flags = (Panda.FLAG_TESLA_RAVEN if candidate == CAR.MODELS_RAVEN else 0)
|
flags = (Panda.FLAG_TESLA_RAVEN if candidate == CAR.MODELS_RAVEN else 0)
|
||||||
if (CANBUS.autopilot_powertrain in fingerprint.keys()) and (0x2bf in fingerprint[CANBUS.autopilot_powertrain].keys()):
|
if (CANBUS.autopilot_powertrain in fingerprint.keys()) and (0x2bf in fingerprint[CANBUS.autopilot_powertrain].keys()):
|
||||||
ret.openpilotLongitudinalControl = True
|
ret.openpilotLongitudinalControl = not disable_openpilot_long
|
||||||
flags |= Panda.FLAG_TESLA_LONG_CONTROL
|
flags |= Panda.FLAG_TESLA_LONG_CONTROL
|
||||||
ret.safetyConfigs = [
|
ret.safetyConfigs = [
|
||||||
get_safety_config(car.CarParams.SafetyModel.tesla, flags),
|
get_safety_config(car.CarParams.SafetyModel.tesla, flags),
|
||||||
|
@ -22,7 +22,7 @@ class CarInterface(CarInterfaceBase):
|
|||||||
return CarControllerParams.ACCEL_MIN, CarControllerParams.ACCEL_MAX
|
return CarControllerParams.ACCEL_MIN, CarControllerParams.ACCEL_MAX
|
||||||
|
|
||||||
@staticmethod
|
@staticmethod
|
||||||
def _get_params(ret, params, candidate, fingerprint, car_fw, experimental_long, docs):
|
def _get_params(ret, params, candidate, fingerprint, car_fw, disable_openpilot_long, experimental_long, docs):
|
||||||
ret.carName = "toyota"
|
ret.carName = "toyota"
|
||||||
ret.safetyConfigs = [get_safety_config(car.CarParams.SafetyModel.toyota)]
|
ret.safetyConfigs = [get_safety_config(car.CarParams.SafetyModel.toyota)]
|
||||||
ret.safetyConfigs[0].safetyParam = EPS_SCALE[candidate]
|
ret.safetyConfigs[0].safetyParam = EPS_SCALE[candidate]
|
||||||
@ -127,6 +127,7 @@ class CarInterface(CarInterfaceBase):
|
|||||||
# - TSS-P DSU-less cars w/ CAN filter installed (no radar parser yet)
|
# - TSS-P DSU-less cars w/ CAN filter installed (no radar parser yet)
|
||||||
ret.openpilotLongitudinalControl = use_sdsu or ret.enableDsu or candidate in (TSS2_CAR - RADAR_ACC_CAR) or bool(ret.flags & ToyotaFlags.DISABLE_RADAR.value)
|
ret.openpilotLongitudinalControl = use_sdsu or ret.enableDsu or candidate in (TSS2_CAR - RADAR_ACC_CAR) or bool(ret.flags & ToyotaFlags.DISABLE_RADAR.value)
|
||||||
ret.openpilotLongitudinalControl |= bool(ret.flags & ToyotaFlags.DSU_BYPASS.value)
|
ret.openpilotLongitudinalControl |= bool(ret.flags & ToyotaFlags.DSU_BYPASS.value)
|
||||||
|
ret.openpilotLongitudinalControl &= not disable_openpilot_long
|
||||||
ret.autoResumeSng = ret.openpilotLongitudinalControl and candidate in NO_STOP_TIMER_CAR
|
ret.autoResumeSng = ret.openpilotLongitudinalControl and candidate in NO_STOP_TIMER_CAR
|
||||||
ret.enableGasInterceptor = 0x201 in fingerprint[0] and ret.openpilotLongitudinalControl
|
ret.enableGasInterceptor = 0x201 in fingerprint[0] and ret.openpilotLongitudinalControl
|
||||||
|
|
||||||
|
@ -22,7 +22,7 @@ class CarInterface(CarInterfaceBase):
|
|||||||
self.eps_timer_soft_disable_alert = False
|
self.eps_timer_soft_disable_alert = False
|
||||||
|
|
||||||
@staticmethod
|
@staticmethod
|
||||||
def _get_params(ret, params, candidate: CAR, fingerprint, car_fw, experimental_long, docs):
|
def _get_params(ret, params, candidate: CAR, fingerprint, car_fw, disable_openpilot_long, experimental_long, docs):
|
||||||
ret.carName = "volkswagen"
|
ret.carName = "volkswagen"
|
||||||
ret.radarUnavailable = True
|
ret.radarUnavailable = True
|
||||||
|
|
||||||
|
Loading…
x
Reference in New Issue
Block a user