Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
47 commits
Select commit Hold shift + click to select a range
993a3ad
calculate jerk independent on estimated delay
felsager Oct 13, 2025
00f6bae
lag independent jerk compensation
felsager Oct 13, 2025
50ac12b
updated ref
felsager Oct 14, 2025
115cc1e
Central difference jerk and update ref
felsager Oct 14, 2025
0c1d8ae
fix too long line
felsager Oct 14, 2025
d36eced
lat smoooth
felsager Oct 15, 2025
eb4b018
further lookahead jerk
felsager Oct 15, 2025
70cc79c
update ref
felsager Oct 15, 2025
966bafe
.
felsager Oct 15, 2025
7a7104e
update ref
felsager Oct 15, 2025
cd5b05e
keep desired lateral jerk in error for now to approximate previous im…
felsager Oct 16, 2025
26a2a22
log old jerk implementation
felsager Oct 16, 2025
742163e
update ref
felsager Oct 16, 2025
9d60804
fix typo assignment
felsager Oct 16, 2025
347950f
update ref
felsager Oct 16, 2025
b164bf1
don't log
felsager Oct 16, 2025
f3eb768
keep logs for testing
felsager Oct 16, 2025
f55280e
no logs for master
felsager Oct 16, 2025
17c24db
fix import and log
felsager Oct 16, 2025
09a216a
update ref
felsager Oct 16, 2025
e0f371b
.
felsager Oct 16, 2025
ee8e7dc
unneeded stuff
felsager Oct 22, 2025
deb8d74
don't remove desired lateral jerk logging
felsager Oct 22, 2025
1de2f75
fix missing line and update ref
felsager Oct 22, 2025
5c850b4
torque gains not car specific
haraschax Oct 20, 2025
2281edb
calculate jerk independent on estimated delay
felsager Oct 13, 2025
d0fa6ca
updated ref
felsager Oct 14, 2025
101688a
Central difference jerk and update ref
felsager Oct 14, 2025
3b4a08f
fix too long line
felsager Oct 14, 2025
bc5caf6
lat smoooth
felsager Oct 15, 2025
a865ef4
update ref
felsager Oct 15, 2025
04a294a
.
felsager Oct 15, 2025
9c7c624
update ref
felsager Oct 15, 2025
906aa98
log old jerk implementation
felsager Oct 16, 2025
68051f9
update ref
felsager Oct 16, 2025
4055554
update ref
felsager Oct 16, 2025
25497e1
don't log
felsager Oct 16, 2025
e866dff
keep logs for testing
felsager Oct 16, 2025
c096a20
no logs for master
felsager Oct 16, 2025
cf108fd
fix import and log
felsager Oct 16, 2025
6027d9a
.
felsager Oct 17, 2025
ab2e700
no kf scaling
felsager Oct 20, 2025
dc89d2e
one line pid update
felsager Oct 21, 2025
e104c8d
remove no longer relevant comment
felsager Oct 21, 2025
0f169d6
add logging back
felsager Oct 21, 2025
cdca0d3
update ref
felsager Oct 22, 2025
9c8d4f8
Merge branch 'master' into retune-torque-ctrl
felsager Oct 30, 2025
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
17 changes: 6 additions & 11 deletions selfdrive/controls/lib/latcontrol_torque.py
Original file line number Diff line number Diff line change
Expand Up @@ -21,16 +21,16 @@
# to be overcome to move it at all, this is compensated for too.

KP = 1.0
KI = 0.3
KD = 0.0
KI = 0.1
KD = 0.3
INTERP_SPEEDS = [1, 1.5, 2.0, 3.0, 5, 7.5, 10, 15, 30]
KP_INTERP = [250, 120, 65, 30, 11.5, 5.5, 3.5, 2.0, KP]

LP_FILTER_CUTOFF_HZ = 1.2
JERK_LOOKAHEAD_SECONDS = 0.19
JERK_GAIN = 0.3
LAT_ACCEL_REQUEST_BUFFER_SECONDS = 1.0
VERSION = 0 # bump this when changing controller
VERSION = 1 # bump this when changing controller

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

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

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

freeze_integrator = steer_limited_by_safety or CS.steeringPressed or CS.vEgo < 5
output_lataccel = self.pid.update(pid_log.error,
-measurement_rate,
feedforward=ff,
speed=CS.vEgo,
freeze_integrator=freeze_integrator)
output_lataccel = self.pid.update(pid_log.error, -measurement_rate, CS.vEgo, ff, freeze_integrator)
output_torque = self.torque_from_lateral_accel(output_lataccel, self.torque_params)

pid_log.active = True
Expand Down
2 changes: 1 addition & 1 deletion selfdrive/test/process_replay/ref_commit
Original file line number Diff line number Diff line change
@@ -1 +1 @@
9a7d8dd0660ba6a344ac61be89b2e832e6756184
d74c33b02938cafb3422f3500cfd083bd965e637
Loading