From 778374d3dd8ebd3bdd51149228b3c70767bc64ec Mon Sep 17 00:00:00 2001 From: qadmus <42746943+qadmus@users.noreply.github.com> Date: Thu, 21 Oct 2021 02:38:03 -0700 Subject: [PATCH] [Lateral PID] Function for steer feedforward (#22638) * store a function for steer feedforward * use classmethod Co-authored-by: Willem Melching --- selfdrive/car/interfaces.py | 6 +++++- selfdrive/controls/lib/latcontrol_pid.py | 2 +- 2 files changed, 6 insertions(+), 2 deletions(-) diff --git a/selfdrive/car/interfaces.py b/selfdrive/car/interfaces.py index 672a6b606b..a602a06a61 100644 --- a/selfdrive/car/interfaces.py +++ b/selfdrive/car/interfaces.py @@ -57,11 +57,15 @@ class CarInterfaceBase(): pass @staticmethod - def get_steer_feedforward(desired_angle, v_ego): + def get_steer_feedforward_default(desired_angle, v_ego): # Proportional to realigning tire momentum: lateral acceleration. # TODO: something with lateralPlan.curvatureRates return desired_angle * (v_ego**2) + @classmethod + def get_steer_feedforward_function(cls): + return cls.get_steer_feedforward_default + # returns a set of default params to avoid repetition in car specific params @staticmethod def get_std_params(candidate, fingerprint): diff --git a/selfdrive/controls/lib/latcontrol_pid.py b/selfdrive/controls/lib/latcontrol_pid.py index b495571385..5062df36d6 100644 --- a/selfdrive/controls/lib/latcontrol_pid.py +++ b/selfdrive/controls/lib/latcontrol_pid.py @@ -11,7 +11,7 @@ class LatControlPID(): (CP.lateralTuning.pid.kiBP, CP.lateralTuning.pid.kiV), k_f=CP.lateralTuning.pid.kf, pos_limit=1.0, neg_limit=-1.0, sat_limit=CP.steerLimitTimer) - self.get_steer_feedforward = CI.get_steer_feedforward + self.get_steer_feedforward = CI.get_steer_feedforward_function() def reset(self): self.pid.reset()