|
|
@ -71,11 +71,11 @@ class CarKalman(KalmanFilter): |
|
|
|
P_initial = Q.copy() |
|
|
|
P_initial = Q.copy() |
|
|
|
|
|
|
|
|
|
|
|
obs_noise: Dict[int, Any] = { |
|
|
|
obs_noise: Dict[int, Any] = { |
|
|
|
ObservationKind.STEER_ANGLE: np.atleast_2d(math.radians(0.01)**2), |
|
|
|
ObservationKind.STEER_ANGLE: np.atleast_2d(math.radians(0.05)**2), |
|
|
|
ObservationKind.ANGLE_OFFSET_FAST: np.atleast_2d(math.radians(10.0)**2), |
|
|
|
ObservationKind.ANGLE_OFFSET_FAST: np.atleast_2d(math.radians(10.0)**2), |
|
|
|
ObservationKind.ROAD_ROLL: np.atleast_2d(math.radians(1.0)**2), |
|
|
|
ObservationKind.ROAD_ROLL: np.atleast_2d(math.radians(1.0)**2), |
|
|
|
ObservationKind.STEER_RATIO: np.atleast_2d(5.0**2), |
|
|
|
ObservationKind.STEER_RATIO: np.atleast_2d(5.0**2), |
|
|
|
ObservationKind.STIFFNESS: np.atleast_2d(5.0**2), |
|
|
|
ObservationKind.STIFFNESS: np.atleast_2d(0.5**2), |
|
|
|
ObservationKind.ROAD_FRAME_X_SPEED: np.atleast_2d(0.1**2), |
|
|
|
ObservationKind.ROAD_FRAME_X_SPEED: np.atleast_2d(0.1**2), |
|
|
|
} |
|
|
|
} |
|
|
|
|
|
|
|
|
|
|
@ -106,9 +106,9 @@ class CarKalman(KalmanFilter): |
|
|
|
state = sp.Matrix(state_sym) |
|
|
|
state = sp.Matrix(state_sym) |
|
|
|
|
|
|
|
|
|
|
|
# Vehicle model constants |
|
|
|
# Vehicle model constants |
|
|
|
x = state[States.STIFFNESS, :][0, 0] |
|
|
|
sf = state[States.STIFFNESS, :][0, 0] |
|
|
|
|
|
|
|
|
|
|
|
cF, cR = x * cF_orig, x * cR_orig |
|
|
|
cF, cR = sf * cF_orig, sf * cR_orig |
|
|
|
angle_offset = state[States.ANGLE_OFFSET, :][0, 0] |
|
|
|
angle_offset = state[States.ANGLE_OFFSET, :][0, 0] |
|
|
|
angle_offset_fast = state[States.ANGLE_OFFSET_FAST, :][0, 0] |
|
|
|
angle_offset_fast = state[States.ANGLE_OFFSET_FAST, :][0, 0] |
|
|
|
theta = state[States.ROAD_ROLL, :][0, 0] |
|
|
|
theta = state[States.ROAD_ROLL, :][0, 0] |
|
|
@ -154,7 +154,7 @@ class CarKalman(KalmanFilter): |
|
|
|
[sp.Matrix([sa]), ObservationKind.STEER_ANGLE, None], |
|
|
|
[sp.Matrix([sa]), ObservationKind.STEER_ANGLE, None], |
|
|
|
[sp.Matrix([angle_offset_fast]), ObservationKind.ANGLE_OFFSET_FAST, None], |
|
|
|
[sp.Matrix([angle_offset_fast]), ObservationKind.ANGLE_OFFSET_FAST, None], |
|
|
|
[sp.Matrix([sR]), ObservationKind.STEER_RATIO, None], |
|
|
|
[sp.Matrix([sR]), ObservationKind.STEER_RATIO, None], |
|
|
|
[sp.Matrix([x]), ObservationKind.STIFFNESS, None], |
|
|
|
[sp.Matrix([sf]), ObservationKind.STIFFNESS, None], |
|
|
|
[sp.Matrix([theta]), ObservationKind.ROAD_ROLL, None], |
|
|
|
[sp.Matrix([theta]), ObservationKind.ROAD_ROLL, None], |
|
|
|
] |
|
|
|
] |
|
|
|
|
|
|
|
|
|
|
|