diff --git a/board/safety/safety_ford.h b/board/safety/safety_ford.h index c3b716c89..5b19dd9ca 100644 --- a/board/safety/safety_ford.h +++ b/board/safety/safety_ford.h @@ -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 diff --git a/tests/safety/test_ford.py b/tests/safety/test_ford.py index b854ba59b..a97e26430 100755 --- a/tests/safety/test_ford.py +++ b/tests/safety/test_ford.py @@ -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 = [