mirror of https://github.com/commaai/panda.git
Ford: higher curvature rate limits at low speed (#2065)
* use closer to EPS limits * raise to upper bound of spread from injection plot * we've seen ~0.009 at 7 m/s, so allow that * fix test * rounding errors cause the 2 to round to the same value * adjust for latest opendbc change * we should actually match what safety is doing! fix lack of test coverage near first brake point fix * and fix test
This commit is contained in:
parent
2bd2f2a702
commit
3066f93d8a
|
@ -114,11 +114,11 @@ static const SteeringLimits FORD_STEERING_LIMITS = {
|
|||
.max_angle_error = 100, // 0.002 * FORD_STEERING_LIMITS.angle_deg_to_can
|
||||
.angle_rate_up_lookup = {
|
||||
{5., 25., 25.},
|
||||
{0.0002, 0.0001, 0.0001}
|
||||
{0.00045, 0.0001, 0.0001}
|
||||
},
|
||||
.angle_rate_down_lookup = {
|
||||
{5., 25., 25.},
|
||||
{0.000225, 0.00015, 0.00015}
|
||||
{0.00045, 0.00015, 0.00015}
|
||||
},
|
||||
|
||||
// no blending at low speed due to lack of torque wind-up and inaccurate current curvature
|
||||
|
|
|
@ -86,8 +86,8 @@ class TestFordSafetyBase(common.PandaCarSafetyTest):
|
|||
CURVATURE_ERROR_MIN_SPEED = 10.0 # m/s
|
||||
|
||||
ANGLE_RATE_BP = [5., 25., 25.]
|
||||
ANGLE_RATE_UP = [0.0002, 0.0001, 0.0001] # windup limit
|
||||
ANGLE_RATE_DOWN = [0.000225, 0.00015, 0.00015] # unwind limit
|
||||
ANGLE_RATE_UP = [0.00045, 0.0001, 0.0001] # windup limit
|
||||
ANGLE_RATE_DOWN = [0.00045, 0.00015, 0.00015] # unwind limit
|
||||
|
||||
cnt_speed = 0
|
||||
cnt_speed_2 = 0
|
||||
|
@ -290,7 +290,7 @@ class TestFordSafetyBase(common.PandaCarSafetyTest):
|
|||
|
||||
for speed in np.arange(0, 40, 0.5):
|
||||
limit_command = speed > self.CURVATURE_ERROR_MIN_SPEED
|
||||
max_delta_up = np.interp(speed, self.ANGLE_RATE_BP, self.ANGLE_RATE_UP)
|
||||
max_delta_up = np.interp(speed - 1, self.ANGLE_RATE_BP, self.ANGLE_RATE_UP)
|
||||
max_delta_up_lower = np.interp(speed + 1, self.ANGLE_RATE_BP, self.ANGLE_RATE_UP)
|
||||
|
||||
cases = [
|
||||
|
@ -313,7 +313,7 @@ class TestFordSafetyBase(common.PandaCarSafetyTest):
|
|||
|
||||
for speed in np.arange(0, 40, 0.5):
|
||||
limit_command = speed > self.CURVATURE_ERROR_MIN_SPEED
|
||||
max_delta_down = np.interp(speed, self.ANGLE_RATE_BP, self.ANGLE_RATE_DOWN)
|
||||
max_delta_down = np.interp(speed - 1, self.ANGLE_RATE_BP, self.ANGLE_RATE_DOWN)
|
||||
max_delta_down_lower = np.interp(speed + 1, self.ANGLE_RATE_BP, self.ANGLE_RATE_DOWN)
|
||||
|
||||
cases = [
|
||||
|
|
Loading…
Reference in New Issue