Skip to content

Commit 177c7f1

Browse files
committed
Revert "latcontrol_torque: retune torque controller (#36392)"
This reverts commit 76c5cb6.
1 parent 9bf904e commit 177c7f1

File tree

2 files changed

+12
-7
lines changed

2 files changed

+12
-7
lines changed

selfdrive/controls/lib/latcontrol_torque.py

Lines changed: 11 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -21,16 +21,16 @@
2121
# to be overcome to move it at all, this is compensated for too.
2222

2323
KP = 1.0
24-
KI = 0.1
25-
KD = 0.3
24+
KI = 0.3
25+
KD = 0.0
2626
INTERP_SPEEDS = [1, 1.5, 2.0, 3.0, 5, 7.5, 10, 15, 30]
2727
KP_INTERP = [250, 120, 65, 30, 11.5, 5.5, 3.5, 2.0, KP]
2828

2929
LP_FILTER_CUTOFF_HZ = 1.2
3030
JERK_LOOKAHEAD_SECONDS = 0.19
3131
JERK_GAIN = 0.3
3232
LAT_ACCEL_REQUEST_BUFFER_SECONDS = 1.0
33-
VERSION = 1 # bump this when changing controller
33+
VERSION = 0 # bump this when changing controller
3434

3535
class LatControlTorque(LatControl):
3636
def __init__(self, CP, CI, dt):
@@ -84,17 +84,22 @@ def update(self, active, CS, VM, params, steer_limited_by_safety, desired_curvat
8484
measurement_rate = self.measurement_rate_filter.update((measurement - self.previous_measurement) / self.dt)
8585
self.previous_measurement = measurement
8686

87-
error = setpoint - measurement
87+
error = setpoint - measurement + JERK_GAIN * desired_lateral_jerk
8888

8989
# do error correction in lateral acceleration space, convert at end to handle non-linear torque responses correctly
9090
pid_log.error = float(error)
9191
ff = gravity_adjusted_future_lateral_accel
9292
# latAccelOffset corrects roll compensation bias from device roll misalignment relative to car roll
9393
ff -= self.torque_params.latAccelOffset
94-
ff += get_friction(error + JERK_GAIN * desired_lateral_jerk, lateral_accel_deadzone, FRICTION_THRESHOLD, self.torque_params)
94+
# TODO remove lateral jerk from feed forward - moving it from error means jerk is not scaled by low speed factor
95+
ff += get_friction(error, lateral_accel_deadzone, FRICTION_THRESHOLD, self.torque_params)
9596

9697
freeze_integrator = steer_limited_by_safety or CS.steeringPressed or CS.vEgo < 5
97-
output_lataccel = self.pid.update(pid_log.error, -measurement_rate, CS.vEgo, ff, freeze_integrator)
98+
output_lataccel = self.pid.update(pid_log.error,
99+
-measurement_rate,
100+
feedforward=ff,
101+
speed=CS.vEgo,
102+
freeze_integrator=freeze_integrator)
98103
output_torque = self.torque_from_lateral_accel(output_lataccel, self.torque_params)
99104

100105
pid_log.active = True
Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1 +1 @@
1-
d74c33b02938cafb3422f3500cfd083bd965e637
1+
9a7d8dd0660ba6a344ac61be89b2e832e6756184

0 commit comments

Comments
 (0)