mirror of
https://github.com/infiniteCable2/opendbc.git
synced 2026-02-18 13:03:52 +08:00
* hkg long: refactor long tune Refactor long tune to add dynamic comfort band logic, reduce reliance on radarUnavailable setters and clean up config. * test coverage for dynamic comfort band * show that negative list comprehension is the same as expected format * deprecate unittest * blank space * pytest.approx * Update test_tuning_controller.py --------- Co-authored-by: Jason Wen <haibin.wen3@gmail.com>
75 lines
2.1 KiB
Python
75 lines
2.1 KiB
Python
"""
|
|
Copyright (c) 2021-, Haibin Wen, sunnypilot, and a number of other contributors.
|
|
|
|
This file is part of sunnypilot and is licensed under the MIT License.
|
|
See the LICENSE.md file in the root directory for more details.
|
|
"""
|
|
|
|
from dataclasses import dataclass, field
|
|
|
|
from opendbc.car.hyundai.values import CAR
|
|
|
|
|
|
@dataclass
|
|
class CarTuningConfig:
|
|
v_ego_stopping: float = 0.25
|
|
v_ego_starting: float = 0.10
|
|
stopping_decel_rate: float = 0.40
|
|
lookahead_jerk_bp: list[float] = field(default_factory=lambda: [5., 20.])
|
|
lookahead_jerk_upper_v: list[float] = field(default_factory=lambda: [0.25, 0.5])
|
|
lookahead_jerk_lower_v: list[float] = field(default_factory=lambda: [0.15, 0.3])
|
|
longitudinal_actuator_delay: float = 0.50
|
|
jerk_limits: float = 4.0
|
|
|
|
|
|
# Default configurations for different car types
|
|
TUNING_CONFIGS = {
|
|
"CANFD": CarTuningConfig(
|
|
v_ego_stopping=0.365,
|
|
lookahead_jerk_bp=[2., 5., 20.],
|
|
lookahead_jerk_upper_v=[0.25, 0.5, 1.0],
|
|
lookahead_jerk_lower_v=[0.05, 0.10, 0.325],
|
|
),
|
|
"EV": CarTuningConfig(
|
|
stopping_decel_rate=0.45,
|
|
v_ego_stopping=0.35,
|
|
lookahead_jerk_bp=[2., 5., 20.],
|
|
lookahead_jerk_upper_v=[0.25, 0.5, 1.0],
|
|
lookahead_jerk_lower_v=[0.05, 0.10, 0.3],
|
|
longitudinal_actuator_delay=0.25
|
|
),
|
|
"HYBRID": CarTuningConfig(
|
|
v_ego_starting=0.15,
|
|
stopping_decel_rate=0.45,
|
|
v_ego_stopping=0.4,
|
|
),
|
|
"DEFAULT": CarTuningConfig(
|
|
v_ego_stopping=0.3,
|
|
lookahead_jerk_bp=[2., 5., 20.],
|
|
lookahead_jerk_upper_v=[0.25, 0.5, 1.0],
|
|
lookahead_jerk_lower_v=[0.05, 0.10, 0.3],
|
|
)
|
|
}
|
|
|
|
# Car-specific configs
|
|
CAR_SPECIFIC_CONFIGS = {
|
|
CAR.KIA_NIRO_EV: CarTuningConfig(
|
|
v_ego_stopping=0.1,
|
|
stopping_decel_rate=0.1,
|
|
lookahead_jerk_bp=[2., 5., 20.],
|
|
lookahead_jerk_upper_v=[0.25, 0.5, 1.0],
|
|
lookahead_jerk_lower_v=[0.1, 0.15, 0.3],
|
|
longitudinal_actuator_delay=0.25,
|
|
jerk_limits=2.5,
|
|
),
|
|
CAR.KIA_NIRO_PHEV_2022: CarTuningConfig(
|
|
stopping_decel_rate=0.3,
|
|
lookahead_jerk_upper_v=[0.3, 1.0],
|
|
lookahead_jerk_lower_v=[0.15, 0.3],
|
|
jerk_limits=5.0,
|
|
),
|
|
CAR.HYUNDAI_IONIQ: CarTuningConfig(
|
|
jerk_limits=5.0,
|
|
)
|
|
}
|