|
|
@ -5,7 +5,7 @@ from common.numpy_fast import interp |
|
|
|
from selfdrive.controls.lib.latcontrol import LatControl, MIN_STEER_SPEED |
|
|
|
from selfdrive.controls.lib.latcontrol import LatControl, MIN_STEER_SPEED |
|
|
|
from selfdrive.controls.lib.pid import PIDController |
|
|
|
from selfdrive.controls.lib.pid import PIDController |
|
|
|
from selfdrive.controls.lib.drive_helpers import apply_deadzone |
|
|
|
from selfdrive.controls.lib.drive_helpers import apply_deadzone |
|
|
|
from selfdrive.controls.lib.vehicle_model import ACCELERATION_DUE_TO_GRAVITY |
|
|
|
#from selfdrive.controls.lib.vehicle_model import ACCELERATION_DUE_TO_GRAVITY |
|
|
|
|
|
|
|
|
|
|
|
# At higher speeds (25+mph) we can assume: |
|
|
|
# At higher speeds (25+mph) we can assume: |
|
|
|
# Lateral acceleration achieved by a specific car correlates to |
|
|
|
# Lateral acceleration achieved by a specific car correlates to |
|
|
@ -62,7 +62,9 @@ class LatControlTorque(LatControl): |
|
|
|
error = setpoint - measurement |
|
|
|
error = setpoint - measurement |
|
|
|
pid_log.error = error |
|
|
|
pid_log.error = error |
|
|
|
|
|
|
|
|
|
|
|
ff = desired_lateral_accel - params.roll * ACCELERATION_DUE_TO_GRAVITY |
|
|
|
# ff = desired_lateral_accel - params.roll * ACCELERATION_DUE_TO_GRAVITY |
|
|
|
|
|
|
|
# test hax - don't double down on VW roll comp |
|
|
|
|
|
|
|
ff = desired_lateral_accel |
|
|
|
# convert friction into lateral accel units for feedforward |
|
|
|
# convert friction into lateral accel units for feedforward |
|
|
|
friction_compensation = interp(apply_deadzone(error, lateral_accel_deadzone), [-FRICTION_THRESHOLD, FRICTION_THRESHOLD], [-self.friction, self.friction]) |
|
|
|
friction_compensation = interp(apply_deadzone(error, lateral_accel_deadzone), [-FRICTION_THRESHOLD, FRICTION_THRESHOLD], [-self.friction, self.friction]) |
|
|
|
ff += friction_compensation / self.kf |
|
|
|
ff += friction_compensation / self.kf |
|
|
|