mirror of
https://github.com/sunnypilot/sunnypilot.git
synced 2026-08-23 06:43:47 +08:00
Car interface: set max lateral torque from table (#24789)
* json
* better naem
* Read from table
* formatting and default to nan
* Generate docs
* Read from table
* this should be the same
* Prius v is full
* test we always set the tunes correctly
add to release files
* Set for all cars
Set for all cars
* Revert tuning changes
Revert tuning changes
* remove that
* fixes
* update ref commit for new maxLateralAccels
Co-authored-by: Shane Smiskol <shane@smiskol.com>
old-commit-hash: 3066ad81a8
This commit is contained in:
@@ -23,14 +23,6 @@ class CarInterface(CarInterfaceBase):
|
||||
ret.steerRateCost = 0.7
|
||||
ret.steerLimitTimer = 0.4
|
||||
|
||||
# set max lateral acceleration
|
||||
if candidate in (CAR.PACIFICA_2018, CAR.PACIFICA_2019_HYBRID, CAR.JEEP_CHEROKEE, CAR.JEEP_CHEROKEE_2019):
|
||||
ret.maxLateralAccel = 1.6
|
||||
if candidate in (CAR.PACIFICA_2018_HYBRID,):
|
||||
ret.maxLateralAccel = 1.4
|
||||
if candidate in (CAR.PACIFICA_2017_HYBRID,):
|
||||
ret.maxLateralAccel = 1.2
|
||||
|
||||
if candidate in (CAR.JEEP_CHEROKEE, CAR.JEEP_CHEROKEE_2019):
|
||||
ret.wheelbase = 2.91 # in meters
|
||||
ret.steerRatio = 12.7
|
||||
|
||||
@@ -7,7 +7,7 @@ from enum import Enum
|
||||
from typing import Dict, List, Optional, Union, no_type_check
|
||||
|
||||
TACO_TORQUE_THRESHOLD = 2.5 # m/s^2
|
||||
GREAT_TORQUE_THRESHOLD = 1.5 # m/s^2
|
||||
GREAT_TORQUE_THRESHOLD = 1.4 # m/s^2
|
||||
GOOD_TORQUE_THRESHOLD = 1.0 # m/s^2
|
||||
|
||||
|
||||
|
||||
@@ -83,7 +83,6 @@ class CarInterface(CarInterfaceBase):
|
||||
ret.steerRatio = 17.7 # Stock 15.7, LiveParameters
|
||||
tire_stiffness_factor = 0.469 # Stock Michelin Energy Saver A/S, LiveParameters
|
||||
ret.centerToFront = ret.wheelbase * 0.45 # Volt Gen 1, TODO corner weigh
|
||||
ret.maxLateralAccel = 1.6
|
||||
|
||||
ret.lateralTuning.pid.kpBP = [0., 40.]
|
||||
ret.lateralTuning.pid.kpV = [0., 0.17]
|
||||
@@ -111,7 +110,6 @@ class CarInterface(CarInterfaceBase):
|
||||
ret.wheelbase = 2.86
|
||||
ret.steerRatio = 14.4 # end to end is 13.46
|
||||
ret.centerToFront = ret.wheelbase * 0.4
|
||||
ret.maxLateralAccel = 1.4
|
||||
ret.lateralTuning.pid.kf = 1. # get_steer_feedforward_acadia()
|
||||
|
||||
elif candidate == CAR.BUICK_REGAL:
|
||||
|
||||
@@ -100,7 +100,6 @@ class CarInterface(CarInterfaceBase):
|
||||
ret.lateralParams.torqueBP, ret.lateralParams.torqueV = [[0, 2560, 8000], [0, 2560, 3840]]
|
||||
ret.lateralTuning.pid.kpV, ret.lateralTuning.pid.kiV = [[0.3], [0.1]]
|
||||
else:
|
||||
ret.maxLateralAccel = 0.4
|
||||
ret.lateralParams.torqueBP, ret.lateralParams.torqueV = [[0, 2560], [0, 2560]]
|
||||
ret.lateralTuning.pid.kpV, ret.lateralTuning.pid.kiV = [[1.1], [0.33]]
|
||||
tire_stiffness_factor = 1.
|
||||
@@ -113,7 +112,6 @@ class CarInterface(CarInterfaceBase):
|
||||
ret.steerRatio = 15.38 # 10.93 is end-to-end spec
|
||||
ret.lateralParams.torqueBP, ret.lateralParams.torqueV = [[0, 4096], [0, 4096]] # TODO: determine if there is a dead zone at the top end
|
||||
tire_stiffness_factor = 1.
|
||||
ret.maxLateralAccel = 1.6
|
||||
ret.lateralTuning.pid.kpV, ret.lateralTuning.pid.kiV = [[0.8], [0.24]]
|
||||
|
||||
elif candidate in (CAR.ACCORD, CAR.ACCORDH):
|
||||
@@ -128,7 +126,6 @@ class CarInterface(CarInterfaceBase):
|
||||
if eps_modified:
|
||||
ret.lateralTuning.pid.kpV, ret.lateralTuning.pid.kiV = [[0.3], [0.09]]
|
||||
else:
|
||||
ret.maxLateralAccel = 1.6
|
||||
ret.lateralTuning.pid.kpV, ret.lateralTuning.pid.kiV = [[0.6], [0.18]]
|
||||
|
||||
elif candidate == CAR.ACURA_ILX:
|
||||
@@ -165,7 +162,6 @@ class CarInterface(CarInterfaceBase):
|
||||
ret.lateralParams.torqueBP, ret.lateralParams.torqueV = [[0, 2560, 10000], [0, 2560, 3840]]
|
||||
ret.lateralTuning.pid.kpV, ret.lateralTuning.pid.kiV = [[0.21], [0.07]]
|
||||
else:
|
||||
ret.maxLateralAccel = 1.7
|
||||
ret.lateralParams.torqueBP, ret.lateralParams.torqueV = [[0, 3840], [0, 3840]]
|
||||
ret.lateralTuning.pid.kpV, ret.lateralTuning.pid.kiV = [[0.64], [0.192]]
|
||||
tire_stiffness_factor = 0.677
|
||||
@@ -190,7 +186,6 @@ class CarInterface(CarInterfaceBase):
|
||||
ret.steerRatio = 13.06
|
||||
ret.lateralParams.torqueBP, ret.lateralParams.torqueV = [[0, 4096], [0, 4096]] # TODO: determine if there is a dead zone at the top end
|
||||
tire_stiffness_factor = 0.75
|
||||
ret.maxLateralAccel = 1.7
|
||||
ret.lateralTuning.pid.kpV, ret.lateralTuning.pid.kiV = [[0.2], [0.05]]
|
||||
|
||||
elif candidate == CAR.FREED:
|
||||
@@ -222,7 +217,6 @@ class CarInterface(CarInterfaceBase):
|
||||
ret.centerToFront = ret.wheelbase * 0.38
|
||||
ret.steerRatio = 15.0 # as spec
|
||||
tire_stiffness_factor = 0.444
|
||||
ret.maxLateralAccel = 0.9
|
||||
ret.lateralParams.torqueBP, ret.lateralParams.torqueV = [[0, 1000], [0, 1000]] # TODO: determine if there is a dead zone at the top end
|
||||
ret.lateralTuning.pid.kpV, ret.lateralTuning.pid.kiV = [[0.8], [0.24]]
|
||||
|
||||
@@ -232,7 +226,6 @@ class CarInterface(CarInterfaceBase):
|
||||
ret.wheelbase = 2.75
|
||||
ret.centerToFront = ret.wheelbase * 0.41
|
||||
ret.steerRatio = 11.95 # as spec
|
||||
ret.maxLateralAccel = 1.2
|
||||
ret.lateralParams.torqueBP, ret.lateralParams.torqueV = [[0, 3840], [0, 3840]]
|
||||
ret.lateralTuning.pid.kpV, ret.lateralTuning.pid.kiV = [[0.2], [0.06]]
|
||||
tire_stiffness_factor = 0.677
|
||||
@@ -245,7 +238,6 @@ class CarInterface(CarInterfaceBase):
|
||||
ret.steerRatio = 14.35 # as spec
|
||||
ret.lateralParams.torqueBP, ret.lateralParams.torqueV = [[0, 4096], [0, 4096]] # TODO: determine if there is a dead zone at the top end
|
||||
tire_stiffness_factor = 0.82
|
||||
ret.maxLateralAccel = 0.8
|
||||
ret.lateralTuning.pid.kpV, ret.lateralTuning.pid.kiV = [[0.28], [0.08]]
|
||||
|
||||
elif candidate == CAR.ODYSSEY_CHN:
|
||||
@@ -266,7 +258,6 @@ class CarInterface(CarInterfaceBase):
|
||||
ret.steerRatio = 17.25 # as spec
|
||||
ret.lateralParams.torqueBP, ret.lateralParams.torqueV = [[0, 4096], [0, 4096]] # TODO: determine if there is a dead zone at the top end
|
||||
tire_stiffness_factor = 0.444
|
||||
ret.maxLateralAccel = 1.5
|
||||
ret.lateralTuning.pid.kpV, ret.lateralTuning.pid.kiV = [[0.38], [0.11]]
|
||||
|
||||
elif candidate == CAR.RIDGELINE:
|
||||
@@ -277,7 +268,6 @@ class CarInterface(CarInterfaceBase):
|
||||
ret.steerRatio = 15.59 # as spec
|
||||
ret.lateralParams.torqueBP, ret.lateralParams.torqueV = [[0, 4096], [0, 4096]] # TODO: determine if there is a dead zone at the top end
|
||||
tire_stiffness_factor = 0.444
|
||||
ret.maxLateralAccel = 1.3
|
||||
ret.lateralTuning.pid.kpV, ret.lateralTuning.pid.kiV = [[0.38], [0.11]]
|
||||
|
||||
elif candidate == CAR.INSIGHT:
|
||||
@@ -288,7 +278,6 @@ class CarInterface(CarInterfaceBase):
|
||||
ret.steerRatio = 15.0 # 12.58 is spec end-to-end
|
||||
ret.lateralParams.torqueBP, ret.lateralParams.torqueV = [[0, 4096], [0, 4096]] # TODO: determine if there is a dead zone at the top end
|
||||
tire_stiffness_factor = 0.82
|
||||
ret.maxLateralAccel = 1.4
|
||||
ret.lateralTuning.pid.kpV, ret.lateralTuning.pid.kiV = [[0.6], [0.18]]
|
||||
|
||||
elif candidate == CAR.HONDA_E:
|
||||
|
||||
@@ -63,7 +63,6 @@ class CarInterface(CarInterfaceBase):
|
||||
# Values from optimizer
|
||||
ret.steerRatio = 16.55 # 13.8 is spec end-to-end
|
||||
tire_stiffness_factor = 0.82
|
||||
ret.maxLateralAccel = 3.2
|
||||
ret.lateralTuning.pid.kiBP, ret.lateralTuning.pid.kpBP = [[9., 22.], [9., 22.]]
|
||||
ret.lateralTuning.pid.kpV, ret.lateralTuning.pid.kiV = [[0.2, 0.35], [0.05, 0.09]]
|
||||
elif candidate in (CAR.SONATA, CAR.SONATA_HYBRID):
|
||||
@@ -72,7 +71,6 @@ class CarInterface(CarInterfaceBase):
|
||||
ret.wheelbase = 2.84
|
||||
ret.steerRatio = 13.27 * 1.15 # 15% higher at the center seems reasonable
|
||||
tire_stiffness_factor = 0.65
|
||||
ret.maxLateralAccel = 2.5
|
||||
ret.lateralTuning.pid.kiBP, ret.lateralTuning.pid.kpBP = [[0.], [0.]]
|
||||
ret.lateralTuning.pid.kpV, ret.lateralTuning.pid.kiV = [[0.25], [0.05]]
|
||||
elif candidate == CAR.SONATA_LF:
|
||||
@@ -80,7 +78,6 @@ class CarInterface(CarInterfaceBase):
|
||||
ret.mass = 4497. * CV.LB_TO_KG
|
||||
ret.wheelbase = 2.804
|
||||
ret.steerRatio = 13.27 * 1.15 # 15% higher at the center seems reasonable
|
||||
ret.maxLateralAccel = 1.8
|
||||
ret.lateralTuning.pid.kiBP, ret.lateralTuning.pid.kpBP = [[0.], [0.]]
|
||||
ret.lateralTuning.pid.kpV, ret.lateralTuning.pid.kiV = [[0.25], [0.05]]
|
||||
elif candidate == CAR.PALISADE:
|
||||
@@ -89,7 +86,6 @@ class CarInterface(CarInterfaceBase):
|
||||
ret.wheelbase = 2.90
|
||||
ret.steerRatio = 15.6 * 1.15
|
||||
tire_stiffness_factor = 0.63
|
||||
ret.maxLateralAccel = 2.5
|
||||
ret.lateralTuning.pid.kiBP, ret.lateralTuning.pid.kpBP = [[0.], [0.]]
|
||||
ret.lateralTuning.pid.kpV, ret.lateralTuning.pid.kiV = [[0.3], [0.05]]
|
||||
elif candidate in (CAR.ELANTRA, CAR.ELANTRA_GT_I30):
|
||||
@@ -146,7 +142,6 @@ class CarInterface(CarInterfaceBase):
|
||||
ret.wheelbase = 2.7
|
||||
ret.steerRatio = 13.73 # Spec
|
||||
tire_stiffness_factor = 0.385
|
||||
ret.maxLateralAccel = 3.0
|
||||
ret.lateralTuning.pid.kiBP, ret.lateralTuning.pid.kpBP = [[0.], [0.]]
|
||||
ret.lateralTuning.pid.kpV, ret.lateralTuning.pid.kiV = [[0.25], [0.05]]
|
||||
if candidate not in (CAR.IONIQ_EV_2020, CAR.IONIQ_PHEV, CAR.IONIQ_HEV_2022):
|
||||
@@ -196,7 +191,6 @@ class CarInterface(CarInterfaceBase):
|
||||
ret.wheelbase = 2.7
|
||||
ret.steerRatio = 13.9 if CAR.KIA_NIRO_HEV_2021 else 13.73 # Spec
|
||||
tire_stiffness_factor = 0.385
|
||||
ret.maxLateralAccel = 2.9
|
||||
ret.lateralTuning.pid.kiBP, ret.lateralTuning.pid.kpBP = [[0.], [0.]]
|
||||
ret.lateralTuning.pid.kpV, ret.lateralTuning.pid.kiV = [[0.25], [0.05]]
|
||||
if candidate == CAR.KIA_NIRO_HEV:
|
||||
@@ -228,7 +222,6 @@ class CarInterface(CarInterfaceBase):
|
||||
ret.mass = 1825. + STD_CARGO_KG
|
||||
ret.wheelbase = 2.78
|
||||
ret.steerRatio = 14.4 * 1.15 # 15% higher at the center seems reasonable
|
||||
ret.maxLateralAccel = 2.4
|
||||
ret.lateralTuning.pid.kiBP, ret.lateralTuning.pid.kpBP = [[0.], [0.]]
|
||||
ret.lateralTuning.pid.kpV, ret.lateralTuning.pid.kiV = [[0.25], [0.05]]
|
||||
elif candidate == CAR.KIA_FORTE:
|
||||
@@ -254,7 +247,6 @@ class CarInterface(CarInterfaceBase):
|
||||
ret.wheelbase = 2.85
|
||||
ret.steerRatio = 13.27 # 2021 Kia K5 Steering Ratio (all trims)
|
||||
tire_stiffness_factor = 0.5
|
||||
ret.maxLateralAccel = 2.1
|
||||
ret.lateralTuning.pid.kiBP, ret.lateralTuning.pid.kpBP = [[0.], [0.]]
|
||||
ret.lateralTuning.pid.kpV, ret.lateralTuning.pid.kiV = [[0.25], [0.05]]
|
||||
elif candidate == CAR.KIA_EV6:
|
||||
|
||||
@@ -1,3 +1,4 @@
|
||||
import json
|
||||
import os
|
||||
import time
|
||||
from abc import abstractmethod, ABC
|
||||
@@ -19,6 +20,7 @@ EventName = car.CarEvent.EventName
|
||||
MAX_CTRL_SPEED = (V_CRUISE_MAX + 4) * CV.KPH_TO_MS
|
||||
ACCEL_MAX = 2.0
|
||||
ACCEL_MIN = -3.5
|
||||
TORQUE_PARAMS_PATH = os.path.join(BASEDIR, 'selfdrive/car/torque_data.json')
|
||||
|
||||
|
||||
# generic car and radar interfaces
|
||||
@@ -81,7 +83,7 @@ class CarInterfaceBase(ABC):
|
||||
ret.steerControlType = car.CarParams.SteerControlType.torque
|
||||
ret.minSteerSpeed = 0.
|
||||
ret.wheelSpeedFactor = 1.0
|
||||
ret.maxLateralAccel = float('nan')
|
||||
ret.maxLateralAccel = CarInterfaceBase.get_torque_params(candidate)['MAX_LAT_ACCEL_MEASURED']
|
||||
|
||||
ret.pcmCruise = True # openpilot's state is tied to the PCM's cruise state on most cars
|
||||
ret.minEnableSpeed = -1. # enable is done by stock ACC, so ignore this
|
||||
@@ -105,6 +107,12 @@ class CarInterfaceBase(ABC):
|
||||
ret.steerLimitTimer = 1.0
|
||||
return ret
|
||||
|
||||
@staticmethod
|
||||
def get_torque_params(candidate, default=float('NaN')):
|
||||
with open(TORQUE_PARAMS_PATH) as f:
|
||||
data = json.load(f)
|
||||
return {key: data[key].get(candidate, default) for key in data}
|
||||
|
||||
@abstractmethod
|
||||
def _update(self, c: car.CarControl) -> car.CarState:
|
||||
pass
|
||||
|
||||
@@ -51,7 +51,6 @@ class CarInterface(CarInterfaceBase):
|
||||
ret.centerToFront = ret.wheelbase * 0.5
|
||||
ret.steerRatio = 17 # learned, 14 stock
|
||||
ret.steerActuatorDelay = 0.1
|
||||
ret.maxLateralAccel = 1.3
|
||||
ret.lateralTuning.pid.kf = 0.00005
|
||||
ret.lateralTuning.pid.kiBP, ret.lateralTuning.pid.kpBP = [[0., 14., 23.], [0., 14., 23.]]
|
||||
ret.lateralTuning.pid.kpV, ret.lateralTuning.pid.kiV = [[0.045, 0.042, 0.20], [0.04, 0.035, 0.045]]
|
||||
@@ -62,7 +61,6 @@ class CarInterface(CarInterfaceBase):
|
||||
ret.centerToFront = ret.wheelbase * 0.5
|
||||
ret.steerRatio = 17 # learned, 14 stock
|
||||
ret.steerActuatorDelay = 0.1
|
||||
ret.maxLateralAccel = 3.2
|
||||
ret.lateralTuning.pid.kf = 0.000038
|
||||
ret.lateralTuning.pid.kiBP, ret.lateralTuning.pid.kpBP = [[0., 14., 23.], [0., 14., 23.]]
|
||||
ret.lateralTuning.pid.kpV, ret.lateralTuning.pid.kiV = [[0.01, 0.065, 0.2], [0.001, 0.015, 0.025]]
|
||||
|
||||
@@ -1,4 +1,5 @@
|
||||
#!/usr/bin/env python3
|
||||
import math
|
||||
import unittest
|
||||
import importlib
|
||||
from parameterized import parameterized
|
||||
@@ -39,7 +40,9 @@ class TestCarInterfaces(unittest.TestCase):
|
||||
if tuning == 'pid':
|
||||
self.assertTrue(len(car_params.lateralTuning.pid.kpV))
|
||||
elif tuning == 'torque':
|
||||
self.assertTrue(car_params.lateralTuning.torque.kf > 0)
|
||||
kf = car_params.lateralTuning.torque.kf
|
||||
self.assertTrue(not math.isnan(kf) and kf > 0)
|
||||
self.assertTrue(not math.isnan(car_params.lateralTuning.torque.friction))
|
||||
elif tuning == 'indi':
|
||||
self.assertTrue(len(car_params.lateralTuning.indi.outerLoopGainV))
|
||||
|
||||
|
||||
@@ -3,6 +3,7 @@ import unittest
|
||||
|
||||
from selfdrive.car.car_helpers import interfaces, get_interface_attr
|
||||
from selfdrive.car.docs import CARS_MD_OUT, CARS_MD_TEMPLATE, generate_cars_md, get_all_car_info
|
||||
from selfdrive.car.docs_definitions import Column, Star
|
||||
|
||||
|
||||
class TestCarDocs(unittest.TestCase):
|
||||
@@ -37,6 +38,11 @@ class TestCarDocs(unittest.TestCase):
|
||||
if "rav4" in tokens:
|
||||
self.assertIn("RAV4", car.model, "Use correct capitalization")
|
||||
|
||||
def test_torque_star(self):
|
||||
for car in self.all_cars:
|
||||
if car.car_name == "honda":
|
||||
self.assertTrue(car.row[Column.STEERING_TORQUE] in (Star.EMPTY, Star.HALF), f"{car.name} has full torque star")
|
||||
|
||||
|
||||
if __name__ == "__main__":
|
||||
unittest.main()
|
||||
|
||||
File diff suppressed because one or more lines are too long
@@ -74,7 +74,6 @@ class CarInterface(CarInterfaceBase):
|
||||
ret.wheelSpeedFactor = 1.035
|
||||
tire_stiffness_factor = 0.5533
|
||||
ret.mass = 4481. * CV.LB_TO_KG + STD_CARGO_KG # mean between min and max
|
||||
ret.maxLateralAccel = 1.4
|
||||
set_lat_tune(ret.lateralTuning, LatTunes.PID_C)
|
||||
|
||||
elif candidate in (CAR.CHR, CAR.CHRH):
|
||||
@@ -83,7 +82,6 @@ class CarInterface(CarInterfaceBase):
|
||||
ret.steerRatio = 13.6
|
||||
tire_stiffness_factor = 0.7933
|
||||
ret.mass = 3300. * CV.LB_TO_KG + STD_CARGO_KG
|
||||
ret.maxLateralAccel = 1.3
|
||||
set_lat_tune(ret.lateralTuning, LatTunes.PID_F)
|
||||
|
||||
elif candidate in (CAR.CAMRY, CAR.CAMRYH, CAR.CAMRY_TSS2, CAR.CAMRYH_TSS2):
|
||||
@@ -96,7 +94,6 @@ class CarInterface(CarInterfaceBase):
|
||||
ret.maxLateralAccel = 2.4
|
||||
set_lat_tune(ret.lateralTuning, LatTunes.TORQUE, MAX_LAT_ACCEL=ret.maxLateralAccel, FRICTION=0.05)
|
||||
else:
|
||||
ret.maxLateralAccel = 2.0
|
||||
set_lat_tune(ret.lateralTuning, LatTunes.PID_C)
|
||||
|
||||
elif candidate in (CAR.HIGHLANDER_TSS2, CAR.HIGHLANDERH_TSS2):
|
||||
@@ -105,7 +102,6 @@ class CarInterface(CarInterfaceBase):
|
||||
ret.steerRatio = 16.0
|
||||
tire_stiffness_factor = 0.8
|
||||
ret.mass = 4700. * CV.LB_TO_KG + STD_CARGO_KG # 4260 + 4-5 people
|
||||
ret.maxLateralAccel = 2.0
|
||||
set_lat_tune(ret.lateralTuning, LatTunes.PID_G)
|
||||
|
||||
elif candidate in (CAR.HIGHLANDER, CAR.HIGHLANDERH):
|
||||
@@ -114,7 +110,6 @@ class CarInterface(CarInterfaceBase):
|
||||
ret.steerRatio = 16.0
|
||||
tire_stiffness_factor = 0.8
|
||||
ret.mass = 4607. * CV.LB_TO_KG + STD_CARGO_KG # mean between normal and hybrid limited
|
||||
ret.maxLateralAccel = 1.8
|
||||
set_lat_tune(ret.lateralTuning, LatTunes.PID_G)
|
||||
|
||||
elif candidate in (CAR.AVALON, CAR.AVALON_2019, CAR.AVALONH_2019, CAR.AVALON_TSS2, CAR.AVALONH_TSS2):
|
||||
@@ -125,7 +120,6 @@ class CarInterface(CarInterfaceBase):
|
||||
ret.steerRatio = 14.8 # Found at https://pressroom.toyota.com/releases/2016+avalon+product+specs.download
|
||||
tire_stiffness_factor = 0.7983
|
||||
ret.mass = 3505. * CV.LB_TO_KG + STD_CARGO_KG # mean between normal and hybrid
|
||||
ret.maxLateralAccel = 1.6
|
||||
set_lat_tune(ret.lateralTuning, LatTunes.PID_H)
|
||||
|
||||
elif candidate in (CAR.RAV4_TSS2, CAR.RAV4_TSS2_2022, CAR.RAV4H_TSS2, CAR.RAV4H_TSS2_2022):
|
||||
@@ -134,7 +128,6 @@ class CarInterface(CarInterfaceBase):
|
||||
ret.steerRatio = 14.3
|
||||
tire_stiffness_factor = 0.7933
|
||||
ret.mass = 3585. * CV.LB_TO_KG + STD_CARGO_KG # Average between ICE and Hybrid
|
||||
ret.maxLateralAccel = 2.5
|
||||
set_lat_tune(ret.lateralTuning, LatTunes.PID_D)
|
||||
|
||||
# 2019+ RAV4 TSS2 uses two different steering racks and specific tuning seems to be necessary.
|
||||
@@ -159,7 +152,6 @@ class CarInterface(CarInterfaceBase):
|
||||
ret.steerRatio = 16.0 # not optimized
|
||||
tire_stiffness_factor = 0.444 # not optimized yet
|
||||
ret.mass = 3677. * CV.LB_TO_KG + STD_CARGO_KG # mean between min and max
|
||||
ret.maxLateralAccel = 2.2
|
||||
set_lat_tune(ret.lateralTuning, LatTunes.PID_D)
|
||||
|
||||
elif candidate == CAR.SIENNA:
|
||||
@@ -168,7 +160,6 @@ class CarInterface(CarInterfaceBase):
|
||||
ret.steerRatio = 15.5
|
||||
tire_stiffness_factor = 0.444
|
||||
ret.mass = 4590. * CV.LB_TO_KG + STD_CARGO_KG
|
||||
ret.maxLateralAccel = 1.6
|
||||
set_lat_tune(ret.lateralTuning, LatTunes.PID_J)
|
||||
|
||||
elif candidate in (CAR.LEXUS_IS, CAR.LEXUS_RC):
|
||||
@@ -192,7 +183,6 @@ class CarInterface(CarInterfaceBase):
|
||||
ret.steerRatio = 14.7
|
||||
tire_stiffness_factor = 0.444 # not optimized yet
|
||||
ret.mass = 4070 * CV.LB_TO_KG + STD_CARGO_KG
|
||||
ret.maxLateralAccel = 2.0
|
||||
set_lat_tune(ret.lateralTuning, LatTunes.PID_C)
|
||||
|
||||
elif candidate == CAR.PRIUS_TSS2:
|
||||
@@ -201,7 +191,6 @@ class CarInterface(CarInterfaceBase):
|
||||
ret.steerRatio = 13.4 # True steerRatio from older prius
|
||||
tire_stiffness_factor = 0.6371 # hand-tune
|
||||
ret.mass = 3115. * CV.LB_TO_KG + STD_CARGO_KG
|
||||
ret.maxLateralAccel = 2.0
|
||||
set_lat_tune(ret.lateralTuning, LatTunes.PID_N)
|
||||
|
||||
elif candidate == CAR.MIRAI:
|
||||
@@ -210,7 +199,6 @@ class CarInterface(CarInterfaceBase):
|
||||
ret.steerRatio = 14.8
|
||||
tire_stiffness_factor = 0.8
|
||||
ret.mass = 4300. * CV.LB_TO_KG + STD_CARGO_KG
|
||||
ret.maxLateralAccel = 2.4
|
||||
set_lat_tune(ret.lateralTuning, LatTunes.PID_C)
|
||||
|
||||
elif candidate in (CAR.ALPHARD_TSS2, CAR.ALPHARDH_TSS2):
|
||||
|
||||
@@ -64,17 +64,14 @@ class CarInterface(CarInterfaceBase):
|
||||
elif candidate == CAR.ATLAS_MK1:
|
||||
ret.mass = 2011 + STD_CARGO_KG
|
||||
ret.wheelbase = 2.98
|
||||
ret.maxLateralAccel = 1.4
|
||||
|
||||
elif candidate == CAR.GOLF_MK7:
|
||||
ret.mass = 1397 + STD_CARGO_KG
|
||||
ret.wheelbase = 2.62
|
||||
ret.maxLateralAccel = 1.5
|
||||
|
||||
elif candidate == CAR.JETTA_MK7:
|
||||
ret.mass = 1328 + STD_CARGO_KG
|
||||
ret.wheelbase = 2.71
|
||||
ret.maxLateralAccel = 1.2
|
||||
|
||||
elif candidate == CAR.PASSAT_MK8:
|
||||
ret.mass = 1551 + STD_CARGO_KG
|
||||
@@ -95,7 +92,6 @@ class CarInterface(CarInterfaceBase):
|
||||
elif candidate == CAR.TIGUAN_MK2:
|
||||
ret.mass = 1715 + STD_CARGO_KG
|
||||
ret.wheelbase = 2.74
|
||||
ret.maxLateralAccel = 1.1
|
||||
|
||||
elif candidate == CAR.TOURAN_MK2:
|
||||
ret.mass = 1516 + STD_CARGO_KG
|
||||
@@ -113,7 +109,6 @@ class CarInterface(CarInterfaceBase):
|
||||
elif candidate == CAR.AUDI_A3_MK3:
|
||||
ret.mass = 1335 + STD_CARGO_KG
|
||||
ret.wheelbase = 2.61
|
||||
ret.maxLateralAccel = 1.7
|
||||
|
||||
elif candidate == CAR.AUDI_Q2_MK1:
|
||||
ret.mass = 1205 + STD_CARGO_KG
|
||||
@@ -122,7 +117,6 @@ class CarInterface(CarInterfaceBase):
|
||||
elif candidate == CAR.AUDI_Q3_MK2:
|
||||
ret.mass = 1623 + STD_CARGO_KG
|
||||
ret.wheelbase = 2.68
|
||||
ret.maxLateralAccel = 1.6
|
||||
|
||||
elif candidate == CAR.SEAT_ATECA_MK1:
|
||||
ret.mass = 1900 + STD_CARGO_KG
|
||||
|
||||
@@ -1 +1 @@
|
||||
f301bdf52b271c8c4ef0f2bce3be9c8f90037652
|
||||
935abbc21282e10572c9324382feba3fee2fe379
|
||||
Reference in New Issue
Block a user