3030JERK_LOOKAHEAD_SECONDS = 0.19
3131JERK_GAIN = 0.3
3232LAT_ACCEL_REQUEST_BUFFER_SECONDS = 1.0
33- VERSION = 0 # bump this when changing controller
34-
3533VERSION = 1 # bump this when changing controller
3634
3735class LatControlTorque (LatControl ):
@@ -48,8 +46,6 @@ def __init__(self, CP, CI, dt):
4846 self .lat_accel_request_buffer = deque ([0. ] * self .lat_accel_request_buffer_len , maxlen = self .lat_accel_request_buffer_len )
4947 self .jerk_filter = FirstOrderFilter (0.0 , 1 / (2 * np .pi * LP_FILTER_CUTOFF_HZ ), self .dt )
5048 self .measurement_rate_filter = FirstOrderFilter (0.0 , 1 / (2 * np .pi * LP_FILTER_CUTOFF_HZ ), self .dt )
51- self .jerk_filter = FirstOrderFilter (0.0 , 1 / (2 * np .pi * LP_FILTER_CUTOFF_HZ ), self .dt )
52- self .measurement_rate_filter = FirstOrderFilter (0.0 , 1 / (2 * np .pi * LP_FILTER_CUTOFF_HZ ), self .dt )
5349 self .previous_measurement = 0.0
5450
5551 def update_live_torque_params (self , latAccelFactor , latAccelOffset , friction ):
@@ -81,15 +77,14 @@ def update(self, active, CS, VM, params, steer_limited_by_safety, desired_curvat
8177 desired_lateral_jerk = self .jerk_filter .update (raw_lateral_jerk )
8278 future_desired_lateral_accel = desired_curvature * CS .vEgo ** 2
8379 self .lat_accel_request_buffer .append (future_desired_lateral_accel )
84- self .lat_accel_request_buffer .append (future_desired_lateral_accel )
8580 gravity_adjusted_future_lateral_accel = future_desired_lateral_accel - roll_compensation
8681 setpoint = expected_lateral_accel
8782
8883 measurement = measured_curvature * CS .vEgo ** 2
8984 measurement_rate = self .measurement_rate_filter .update ((measurement - self .previous_measurement ) / self .dt )
9085 self .previous_measurement = measurement
9186
92- error = setpoint - measurement + JERK_GAIN * desired_lateral_jerk
87+ error = setpoint - measurement
9388
9489 # do error correction in lateral acceleration space, convert at end to handle non-linear torque responses correctly
9590 pid_log .error = float (error )
@@ -110,7 +105,7 @@ def update(self, active, CS, VM, params, steer_limited_by_safety, desired_curvat
110105 pid_log .output = float (- output_torque ) # TODO: log lat accel?
111106 pid_log .actualLateralAccel = float (measurement )
112107 pid_log .desiredLateralAccel = float (setpoint )
113- pid_log .desiredLateralJerk = float (desired_lateral_jerk )
108+ pid_log .desiredLateralJerk = float (desired_lateral_jerk )
114109 pid_log .saturated = bool (self ._check_saturation (self .steer_max - abs (output_torque ) < 1e-3 , CS , steer_limited_by_safety , curvature_limited ))
115110
116111 # TODO left is positive in this convention
0 commit comments