-
Notifications
You must be signed in to change notification settings - Fork 9.3k
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
resolved #34331 #34372
resolved #34331 #34372
Conversation
#!/bin/sh | ||
command -v git-lfs >/dev/null 2>&1 || { echo >&2 "\nThis repository is configured for Git LFS but 'git-lfs' was not found on your path. If you no longer wish to use Git LFS, remove this hook by deleting the 'post-commit' file in the hooks directory (set by 'core.hookspath'; usually '.git/hooks').\n"; exit 2; } | ||
git lfs post-commit "$@" |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Don't commit this
common/tests/test_numpy_fast.py
Outdated
def test_correctness_controls(self): | ||
_A_CRUISE_MIN_BP = np.asarray([0., 5., 10., 20., 40.]) | ||
_A_CRUISE_MIN_V = np.asarray([-1.0, -.8, -.67, -.5, -.30]) | ||
v_ego_arr = [-1, -1e-12, 0, 4, 5, 6, 7, 10, 11, 15.2, 20, 21, 39, | ||
39.999999, 40, 41] |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Spacing
import math | ||
|
||
from cereal import log | ||
from openpilot.selfdrive.controls.lib.latcontrol import LatControl | ||
from openpilot.common.pid import PIDController | ||
|
||
|
||
class LatControlPID(LatControl): | ||
def __init__(self, CP, CI): | ||
super().__init__(CP, CI) | ||
self.pid = PIDController((CP.lateralTuning.pid.kpBP, CP.lateralTuning.pid.kpV), | ||
(CP.lateralTuning.pid.kiBP, CP.lateralTuning.pid.kiV), | ||
k_f=CP.lateralTuning.pid.kf, pos_limit=self.steer_max, neg_limit=-self.steer_max) | ||
self.get_steer_feedforward = CI.get_steer_feedforward_function() | ||
|
||
def reset(self): | ||
super().reset() | ||
self.pid.reset() | ||
|
||
def update(self, active, CS, VM, params, steer_limited, desired_curvature, calibrated_pose): | ||
pid_log = log.ControlsState.LateralPIDState.new_message() | ||
pid_log.steeringAngleDeg = float(CS.steeringAngleDeg) | ||
pid_log.steeringRateDeg = float(CS.steeringRateDeg) | ||
|
||
angle_steers_des_no_offset = math.degrees(VM.get_steer_from_curvature(-desired_curvature, CS.vEgo, params.roll)) | ||
angle_steers_des = angle_steers_des_no_offset + params.angleOffsetDeg | ||
error = angle_steers_des - CS.steeringAngleDeg | ||
|
||
pid_log.steeringAngleDesiredDeg = angle_steers_des | ||
pid_log.angleError = error | ||
if not active: | ||
output_steer = 0.0 | ||
pid_log.active = False | ||
self.pid.reset() | ||
else: | ||
# offset does not contribute to resistive torque | ||
steer_feedforward = self.get_steer_feedforward(angle_steers_des_no_offset, CS.vEgo) | ||
|
||
output_steer = self.pid.update(error, override=CS.steeringPressed, | ||
feedforward=steer_feedforward, speed=CS.vEgo) | ||
pid_log.active = True | ||
pid_log.p = float(self.pid.p) | ||
pid_log.i = float(self.pid.i) | ||
pid_log.f = float(self.pid.f) | ||
pid_log.output = float(output_steer) | ||
pid_log.saturated = bool(self._check_saturation(self.steer_max - abs(output_steer) < 1e-3, CS, steer_limited)) | ||
|
||
return output_steer, angle_steers_des, pid_log |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Don't commit this
hey @maxime-desroches , I have changed the requested changes kindly review once again |
Closing in favor of #34368 |
alright |
removed the numpy_fast.py and handles all the cast issues in pycapnp and dependent files