mirror of
https://github.com/firestar5683/StarPilot.git
synced 2026-08-31 21:23:49 +08:00
stop the kachow
This commit is contained in:
@@ -31,7 +31,7 @@ ENABLE_BUTTONS = (ButtonType.accelCruise, ButtonType.decelCruise, ButtonType.can
|
||||
# Track when ECU disable happened - used to permanently suppress CAN errors from disabled ECU
|
||||
ECU_DISABLE_TIMESTAMP = 0.0
|
||||
KONA_NON_SCC_FCA_RADAR_ADDR = 0x602
|
||||
KIA_EV9_ACCEL_MAX = 2.5
|
||||
KIA_EV9_ACCEL_MAX = 2.2
|
||||
|
||||
|
||||
def apply_platform_longitudinal_params(ret: structs.CarParams) -> None:
|
||||
|
||||
@@ -1653,6 +1653,7 @@ class TestHyundaiFingerprint:
|
||||
assert CP.startAccel == pytest.approx(0.2)
|
||||
assert CP.vEgoStarting == pytest.approx(0.5)
|
||||
assert CP.longitudinalActuatorDelay == pytest.approx(0.3)
|
||||
assert KIA_EV9_ACCEL_MAX == pytest.approx(2.2)
|
||||
assert CarInterface.get_pid_accel_limits(CP, 0.0, 0.0)[1] == pytest.approx(KIA_EV9_ACCEL_MAX)
|
||||
|
||||
ioniq_6_cp = CarInterface.get_params(CAR.HYUNDAI_IONIQ_6, gen_empty_fingerprint(), [], True, False, False, toggles)
|
||||
|
||||
@@ -408,6 +408,7 @@ class LatControlTorque(LatControl):
|
||||
friction_scale = get_toyota_highlander_tss2_friction_scale(CS.vEgo, setpoint, desired_lateral_jerk)
|
||||
elif toyota_corolla_tss2_active:
|
||||
ff *= get_toyota_corolla_tss2_ff_scale(setpoint, desired_lateral_jerk, CS.vEgo)
|
||||
friction_threshold = get_toyota_corolla_tss2_friction_threshold(CS.vEgo, setpoint, desired_lateral_jerk)
|
||||
elif lexus_is_active:
|
||||
ff *= get_lexus_is_ff_scale(setpoint, desired_lateral_jerk, CS.vEgo)
|
||||
elif ioniq_5_active:
|
||||
|
||||
@@ -1116,6 +1116,15 @@ TOYOTA_COROLLA_TSS2_CENTER_OUTPUT_TAPER_LAT = 0.18
|
||||
TOYOTA_COROLLA_TSS2_CENTER_OUTPUT_TAPER_LAT_WIDTH = 0.08
|
||||
TOYOTA_COROLLA_TSS2_CENTER_OUTPUT_TAPER_SPEED = 4.5
|
||||
TOYOTA_COROLLA_TSS2_CENTER_OUTPUT_TAPER_SPEED_WIDTH = 1.5
|
||||
TOYOTA_COROLLA_TSS2_CENTER_FRICTION_THRESHOLD_GAIN = 0.12
|
||||
TOYOTA_COROLLA_TSS2_CENTER_FRICTION_THRESHOLD_SPEED_ONSET = 12.0
|
||||
TOYOTA_COROLLA_TSS2_CENTER_FRICTION_THRESHOLD_SPEED_WIDTH = 2.0
|
||||
TOYOTA_COROLLA_TSS2_CENTER_FRICTION_THRESHOLD_SPEED_CUTOFF = 25.0
|
||||
TOYOTA_COROLLA_TSS2_CENTER_FRICTION_THRESHOLD_SPEED_CUTOFF_WIDTH = 3.0
|
||||
TOYOTA_COROLLA_TSS2_CENTER_FRICTION_THRESHOLD_LAT = 0.24
|
||||
TOYOTA_COROLLA_TSS2_CENTER_FRICTION_THRESHOLD_LAT_WIDTH = 0.10
|
||||
TOYOTA_COROLLA_TSS2_CENTER_FRICTION_THRESHOLD_JERK = 0.25
|
||||
TOYOTA_COROLLA_TSS2_CENTER_FRICTION_THRESHOLD_JERK_WIDTH = 0.10
|
||||
|
||||
TOYOTA_HIGHLANDER_TSS2_PHASE_SCALE = 0.12
|
||||
TOYOTA_HIGHLANDER_TSS2_UNWIND_FF_REDUCTION = 0.10
|
||||
@@ -1662,6 +1671,23 @@ def get_toyota_corolla_tss2_ff_scale(desired_lateral_accel: float,
|
||||
return 1.0 + curve_weight * speed_weight * (boost * turn_in_weight - unwind_reduction * unwind_weight)
|
||||
|
||||
|
||||
def get_toyota_corolla_tss2_friction_threshold(v_ego: float,
|
||||
desired_lateral_accel: float = 0.0,
|
||||
desired_lateral_jerk: float = 0.0) -> float:
|
||||
"""Reduce center-only friction chasing on highway-sized model corrections."""
|
||||
speed_weight = (_sigmoid((v_ego - TOYOTA_COROLLA_TSS2_CENTER_FRICTION_THRESHOLD_SPEED_ONSET) /
|
||||
TOYOTA_COROLLA_TSS2_CENTER_FRICTION_THRESHOLD_SPEED_WIDTH) *
|
||||
_sigmoid((TOYOTA_COROLLA_TSS2_CENTER_FRICTION_THRESHOLD_SPEED_CUTOFF - v_ego) /
|
||||
TOYOTA_COROLLA_TSS2_CENTER_FRICTION_THRESHOLD_SPEED_CUTOFF_WIDTH))
|
||||
center_weight = _sigmoid((TOYOTA_COROLLA_TSS2_CENTER_FRICTION_THRESHOLD_LAT - abs(desired_lateral_accel)) /
|
||||
TOYOTA_COROLLA_TSS2_CENTER_FRICTION_THRESHOLD_LAT_WIDTH)
|
||||
calm_weight = _sigmoid((TOYOTA_COROLLA_TSS2_CENTER_FRICTION_THRESHOLD_JERK - abs(desired_lateral_jerk)) /
|
||||
TOYOTA_COROLLA_TSS2_CENTER_FRICTION_THRESHOLD_JERK_WIDTH)
|
||||
gain = _flm_vehicle_knob("toyota_corolla_tss2.center_friction_threshold_gain",
|
||||
TOYOTA_COROLLA_TSS2_CENTER_FRICTION_THRESHOLD_GAIN)
|
||||
return get_standard_friction_threshold(v_ego) * (1.0 + gain * speed_weight * center_weight * calm_weight)
|
||||
|
||||
|
||||
def get_toyota_corolla_tss2_center_output_scale(desired_lateral_accel: float, v_ego: float) -> float:
|
||||
"""Taper only near-center crawl-speed torque during manual handoff."""
|
||||
center_weight = _sigmoid((TOYOTA_COROLLA_TSS2_CENTER_OUTPUT_TAPER_LAT - abs(desired_lateral_accel)) /
|
||||
|
||||
@@ -117,6 +117,7 @@ from openpilot.selfdrive.controls.lib.latcontrol_torque import (
|
||||
get_toyota_highlander_tss2_friction_threshold,
|
||||
get_toyota_highlander_tss2_output_taper_scale,
|
||||
get_toyota_corolla_tss2_center_output_scale,
|
||||
get_toyota_corolla_tss2_friction_threshold,
|
||||
get_toyota_corolla_tss2_ff_scale,
|
||||
get_lexus_is_ff_scale,
|
||||
get_camry_ff_scale,
|
||||
@@ -444,6 +445,17 @@ class TestLatControl:
|
||||
assert 0.65 <= crawl_center < cruise_center <= 1.0
|
||||
assert crawl_curve > crawl_center
|
||||
|
||||
def test_toyota_corolla_tss2_friction_threshold_targets_center_highway_band(self):
|
||||
base = get_standard_friction_threshold(16.0)
|
||||
center = get_toyota_corolla_tss2_friction_threshold(16.0, 0.0, 0.0)
|
||||
curve = get_toyota_corolla_tss2_friction_threshold(16.0, 0.8, 0.8)
|
||||
slow = get_toyota_corolla_tss2_friction_threshold(5.0, 0.0, 0.0)
|
||||
fast = get_toyota_corolla_tss2_friction_threshold(30.0, 0.0, 0.0)
|
||||
assert center > base
|
||||
assert curve < center
|
||||
assert slow < center
|
||||
assert fast < center
|
||||
|
||||
def test_flm_standard_friction_curve_override(self):
|
||||
base = get_standard_friction_threshold(10.0)
|
||||
overrides = normalize_flm_overrides({
|
||||
|
||||
Reference in New Issue
Block a user