From b0334c2ae5f260aae4cdc6e5ecea6bfdaad65469 Mon Sep 17 00:00:00 2001 From: firestar5683 <168790843+firestar5683@users.noreply.github.com> Date: Wed, 15 Jul 2026 08:08:08 -0500 Subject: [PATCH] nissan --- opendbc_repo/opendbc/car/nissan/carcontroller.py | 15 +++++++++++++-- 1 file changed, 13 insertions(+), 2 deletions(-) diff --git a/opendbc_repo/opendbc/car/nissan/carcontroller.py b/opendbc_repo/opendbc/car/nissan/carcontroller.py index 3126c255e..381addc73 100644 --- a/opendbc_repo/opendbc/car/nissan/carcontroller.py +++ b/opendbc_repo/opendbc/car/nissan/carcontroller.py @@ -1,5 +1,8 @@ +import numpy as np + from opendbc.can import CANPacker -from opendbc.car import Bus, structs +from opendbc.car import Bus, DT_CTRL, structs +from opendbc.car.common.filter_simple import FirstOrderFilter from opendbc.car.lateral import apply_std_steer_angle_limits from opendbc.car.interfaces import CarControllerBase from opendbc.car.nissan import nissancan @@ -13,6 +16,7 @@ class CarController(CarControllerBase): super().__init__(dbc_names, CP) self.car_fingerprint = CP.carFingerprint + self.angle_filter = FirstOrderFilter(0.0, 0.1, DT_CTRL) self.apply_angle_last = 0 self.packer = CANPacker(dbc_names[Bus.pt]) @@ -27,8 +31,15 @@ class CarController(CarControllerBase): ### STEER ### steer_hud_alert = 1 if hud_control.visualAlert in (VisualAlert.steerRequired, VisualAlert.ldw) else 0 + # Nissan EPS is sensitive to jitter in angle requests at low speed and high steering angles. + if CC.latActive: + self.angle_filter.update_alpha(float(np.interp(CS.out.vEgo, [5, 10, 20], [0.2, 0.1, 0.0]))) + self.angle_filter.update(actuators.steeringAngleDeg) + else: + self.angle_filter.x = actuators.steeringAngleDeg + # windup slower - self.apply_angle_last = apply_std_steer_angle_limits(actuators.steeringAngleDeg, self.apply_angle_last, CS.out.vEgoRaw, + self.apply_angle_last = apply_std_steer_angle_limits(self.angle_filter.x, self.apply_angle_last, CS.out.vEgoRaw, CS.out.steeringAngleDeg, CC.latActive, CarControllerParams.ANGLE_LIMITS) lkas_max_torque = 0