From 56989a164e523cc6e5ef40f08b5b6aec28ae89c7 Mon Sep 17 00:00:00 2001 From: firestar5683 <168790843+firestar5683@users.noreply.github.com> Date: Wed, 10 Jun 2026 19:01:20 -0500 Subject: [PATCH] update --- opendbc_repo/opendbc/car/gm/interface.py | 4 +-- opendbc_repo/opendbc/car/gm/tests/test_gm.py | 5 ++-- selfdrive/car/card.py | 2 +- selfdrive/car/redneck_cruise.py | 6 ++-- selfdrive/controls/lib/latcontrol_torque.py | 29 ++++++++++++++++---- 5 files changed, 33 insertions(+), 13 deletions(-) diff --git a/opendbc_repo/opendbc/car/gm/interface.py b/opendbc_repo/opendbc/car/gm/interface.py index 1a50d937d..c30b6ea5f 100755 --- a/opendbc_repo/opendbc/car/gm/interface.py +++ b/opendbc_repo/opendbc/car/gm/interface.py @@ -63,8 +63,8 @@ NON_LINEAR_TORQUE_PARAMS = { "right": [3.8, 0.81, 0.24, 0.0465122], }, CAR.CADILLAC_XT4: { - "left": [3.6, 0.85, 0.28, 0.0], - "right": [3.6, 0.85, 0.28, 0.0], + "left": [2.4, 0.95, 0.28, 0.0], + "right": [2.4, 0.95, 0.28, 0.0], }, CAR.CHEVROLET_VOLT: { "left": [1.5, 1.0, 0.155, 0.0], diff --git a/opendbc_repo/opendbc/car/gm/tests/test_gm.py b/opendbc_repo/opendbc/car/gm/tests/test_gm.py index 73e87b48f..1fe367ef8 100644 --- a/opendbc_repo/opendbc/car/gm/tests/test_gm.py +++ b/opendbc_repo/opendbc/car/gm/tests/test_gm.py @@ -260,8 +260,9 @@ class TestGMInterface: linear_low_torque = low_lataccel / car_params.lateralTuning.torque.latAccelFactor linear_high_torque = high_lataccel / car_params.lateralTuning.torque.latAccelFactor - assert low_torque > linear_low_torque * 1.35 - assert high_torque == pytest.approx(linear_high_torque, rel=0.02) + assert low_torque > linear_low_torque * 1.15 + assert low_torque < linear_low_torque * 1.30 + assert high_torque == pytest.approx(linear_high_torque, rel=0.03) assert torque_from_lataccel(-low_lataccel, car_params.lateralTuning.torque) == pytest.approx(-low_torque, rel=1e-6) diff --git a/selfdrive/car/card.py b/selfdrive/car/card.py index 00424615e..a6280a055 100644 --- a/selfdrive/car/card.py +++ b/selfdrive/car/card.py @@ -31,7 +31,7 @@ from openpilot.starpilot.controls.starpilot_card import StarPilotCard REPLAY = "REPLAY" in os.environ OPENPILOT_LEAD_MIN_DISTANCE = 0.1 REDNECK_DECREASE_LOOKAHEAD_POINTS = 10 -REDNECK_AUTO_BUTTON_FILTER_FRAMES = int(0.3 / DT_CTRL) +REDNECK_AUTO_BUTTON_FILTER_FRAMES = int(0.12 / DT_CTRL) EventName = log.OnroadEvent.EventName diff --git a/selfdrive/car/redneck_cruise.py b/selfdrive/car/redneck_cruise.py index d1750bcf5..3431be15f 100644 --- a/selfdrive/car/redneck_cruise.py +++ b/selfdrive/car/redneck_cruise.py @@ -10,9 +10,9 @@ SEND_BUTTON_INCREASE = 1 SEND_BUTTON_DECREASE = 2 HYST_GAP = 0.0 -INCREASE_INACTIVE_TIMER = 0.4 -DECREASE_INACTIVE_TIMER = 0.1 -LEAD_INCREASE_INACTIVE_TIMER = 0.1 +INCREASE_INACTIVE_TIMER = 0.12 +DECREASE_INACTIVE_TIMER = 0.05 +LEAD_INCREASE_INACTIVE_TIMER = 0.05 LEAD_RECOVERY_LOOKAHEAD_POINTS = 4 LEAD_COAST_BUFFER_MS = 1.0 * CV.MPH_TO_MS diff --git a/selfdrive/controls/lib/latcontrol_torque.py b/selfdrive/controls/lib/latcontrol_torque.py index 103cc5742..33e250d87 100644 --- a/selfdrive/controls/lib/latcontrol_torque.py +++ b/selfdrive/controls/lib/latcontrol_torque.py @@ -143,6 +143,8 @@ KIA_EV6_CARS = ( ) KIA_FORTE_CARS = ( HYUNDAI_CAR.KIA_FORTE, + HYUNDAI_CAR.KIA_FORTE_2019_NON_SCC, + HYUNDAI_CAR.KIA_FORTE_2021_NON_SCC, ) PRIUS_CARS = ( TOYOTA_CAR.TOYOTA_PRIUS, @@ -334,11 +336,18 @@ KIA_FORTE_CRAWL_TURN_IN_FF_SPEED = 4.5 KIA_FORTE_CRAWL_TURN_IN_FF_SPEED_WIDTH = 0.8 KIA_FORTE_CRAWL_TURN_IN_FF_LAT = 0.10 KIA_FORTE_CRAWL_TURN_IN_FF_LAT_WIDTH = 0.05 -KIA_FORTE_CENTER_TAPER_MAX = 0.14 -KIA_FORTE_CENTER_TAPER_LAT = 0.16 -KIA_FORTE_CENTER_TAPER_LAT_WIDTH = 0.03 -KIA_FORTE_CENTER_TAPER_SPEED = 24.0 -KIA_FORTE_CENTER_TAPER_SPEED_WIDTH = 2.5 +KIA_FORTE_CENTER_TAPER_MAX = 0.18 +KIA_FORTE_CENTER_TAPER_LAT = 0.18 +KIA_FORTE_CENTER_TAPER_LAT_WIDTH = 0.04 +KIA_FORTE_CENTER_TAPER_SPEED = 22.5 +KIA_FORTE_CENTER_TAPER_SPEED_WIDTH = 3.0 +KIA_FORTE_FRICTION_CENTER_LAT = 0.18 +KIA_FORTE_FRICTION_CENTER_LAT_WIDTH = 0.04 +KIA_FORTE_FRICTION_SPEED = 24.0 +KIA_FORTE_FRICTION_SPEED_WIDTH = 3.0 +KIA_FORTE_FRICTION_CALM_JERK = 0.24 +KIA_FORTE_FRICTION_CALM_JERK_WIDTH = 0.08 +KIA_FORTE_FRICTION_THRESHOLD_GAIN = 0.18 PALISADE_BASE_LAT_ACCEL_FACTOR_MULT = 0.98 PALISADE_FF_GAIN_LEFT = 0.14 @@ -1315,6 +1324,15 @@ def get_kia_forte_center_taper_scale(desired_lateral_accel: float, v_ego: float) return 1.0 - reduction +def get_kia_forte_friction_threshold(v_ego: float, desired_lateral_accel: float = 0.0, desired_lateral_jerk: float = 0.0) -> float: + base_threshold = get_friction_threshold(v_ego) + speed_weight = _kia_forte_sigmoid((v_ego - KIA_FORTE_FRICTION_SPEED) / KIA_FORTE_FRICTION_SPEED_WIDTH) + center_weight = _kia_forte_sigmoid((KIA_FORTE_FRICTION_CENTER_LAT - abs(desired_lateral_accel)) / KIA_FORTE_FRICTION_CENTER_LAT_WIDTH) + calm_jerk_weight = _kia_forte_sigmoid((KIA_FORTE_FRICTION_CALM_JERK - abs(desired_lateral_jerk)) / KIA_FORTE_FRICTION_CALM_JERK_WIDTH) + threshold_scale = 1.0 + (KIA_FORTE_FRICTION_THRESHOLD_GAIN * speed_weight * center_weight * calm_jerk_weight) + return base_threshold * min(max(threshold_scale, 1.0), 1.18) + + def _palisade_sigmoid(x: float) -> float: return _sigmoid(x) @@ -2094,6 +2112,7 @@ class LatControlTorque(LatControl): ff *= get_elantra_non_scc_ff_scale(setpoint, desired_lateral_jerk, CS.vEgo) elif kia_forte_active: ff *= get_kia_forte_ff_scale(setpoint, desired_lateral_jerk, CS.vEgo) * kia_forte_center_taper + friction_threshold = get_kia_forte_friction_threshold(CS.vEgo, setpoint, desired_lateral_jerk) elif kia_ev6_test_active: ff *= get_kia_ev6_ff_scale(setpoint, desired_lateral_jerk, CS.vEgo) * kia_ev6_center_taper friction_threshold = get_kia_ev6_friction_threshold(CS.vEgo, setpoint, desired_lateral_jerk)