mirror of
https://github.com/dragonpilot/dragonpilot.git
synced 2026-09-28 10:23:41 +08:00
HKG Low Speed Turn Enhancer for EV6/CAN-FD vehicles
This commit is contained in:
@@ -228,6 +228,7 @@ std::unordered_map<std::string, uint32_t> keys = {
|
||||
{"dp_toyota_auto_unlock", PERSISTENT},
|
||||
{"dp_device_disable_onroad_uploads", PERSISTENT},
|
||||
{"dp_toyota_zss", PERSISTENT},
|
||||
{"dp_hkg_canfd_low_speed_turn_enhancer", PERSISTENT},
|
||||
};
|
||||
|
||||
} // namespace
|
||||
|
||||
@@ -9,6 +9,10 @@ from openpilot.selfdrive.car.hyundai.hyundaicanfd import CanBus
|
||||
from openpilot.selfdrive.car.hyundai.values import HyundaiFlags, Buttons, CarControllerParams, CANFD_CAR, CAR
|
||||
from openpilot.selfdrive.car.interfaces import CarControllerBase
|
||||
|
||||
# dp
|
||||
from dp_ext.selfdrive.car.hyundai.taco_car_controller_params import TacoCarControllerParams
|
||||
from openpilot.common.params import Params
|
||||
|
||||
VisualAlert = car.CarControl.HUDControl.VisualAlert
|
||||
LongCtrlState = car.CarControl.Actuators.LongControlState
|
||||
|
||||
@@ -47,7 +51,11 @@ class CarController(CarControllerBase):
|
||||
def __init__(self, dbc_name, CP, VM):
|
||||
self.CP = CP
|
||||
self.CAN = CanBus(CP)
|
||||
self.params = CarControllerParams(CP)
|
||||
self.dp_hkg_canfd_low_speed_turn_enhancer = Params().get_bool("dp_hkg_canfd_low_speed_turn_enhancer")
|
||||
if self.dp_hkg_canfd_low_speed_turn_enhancer:
|
||||
self.params = TacoCarControllerParams(CP)
|
||||
else:
|
||||
self.params = CarControllerParams(CP)
|
||||
self.packer = CANPacker(dbc_name)
|
||||
self.angle_limit_counter = 0
|
||||
self.frame = 0
|
||||
@@ -61,10 +69,18 @@ class CarController(CarControllerBase):
|
||||
actuators = CC.actuators
|
||||
hud_control = CC.hudControl
|
||||
|
||||
# dp
|
||||
if self.dp_hkg_canfd_low_speed_turn_enhancer:
|
||||
self.params.update(CS.out.vEgoRaw)
|
||||
|
||||
# steering torque
|
||||
new_steer = int(round(actuators.steer * self.params.STEER_MAX))
|
||||
apply_steer = apply_driver_steer_torque_limits(new_steer, self.apply_steer_last, CS.out.steeringTorque, self.params)
|
||||
|
||||
# dp
|
||||
if self.dp_hkg_canfd_low_speed_turn_enhancer:
|
||||
apply_steer = clip(apply_steer, -self.params.STEER_MAX, self.params.STEER_MAX)
|
||||
|
||||
# >90 degree steering fault prevention
|
||||
self.angle_limit_counter, apply_steer_req = common_fault_avoidance(abs(CS.out.steeringAngleDeg) >= MAX_ANGLE, CC.latActive,
|
||||
self.angle_limit_counter, MAX_ANGLE_FRAMES,
|
||||
|
||||
@@ -60,6 +60,7 @@ def manager_init() -> None:
|
||||
("dp_toyota_auto_unlock", "0"),
|
||||
("dp_device_disable_onroad_uploads", "0"),
|
||||
("dp_toyota_zss", "0"),
|
||||
("dp_hkg_canfd_low_speed_turn_enhancer", "0"),
|
||||
]
|
||||
if not PC:
|
||||
default_params.append(("LastUpdateTime", datetime.datetime.now(datetime.UTC).replace(tzinfo=None).isoformat().encode('utf8')))
|
||||
|
||||
Reference in New Issue
Block a user