algorithmpredictionroboticskalman-filter

Kalman Filter Prediction Implementation


I am trying to implement a Kalman filter in order to localize a robot. I am confused with the prediction step (excluding process noise) x = Fx + u

If x is a state estimation vector: [xLocation, xVelocity] and F is the state transition matrix [[1 1],[0 1]], then the new xLocation would be equal to xLocation + xVelocity + the corresponding component of the motion vector u.

Why is the equation not x = x + u? Shouldn't the predicted location of the robot be the location + motion of the robot?


Solution

  • Maybe there is some confusion with respect to what the matrices actually represent.

    The "control vector", u, might be the acceleration externally applied to the system.

    In this case, I would expect the equations to look like this:

    xlocation = xlocation + xvelocity

    xvelocity = xvelocity + uvelocity

    These two equations assume that the update is applied every 1 second (otherwise some "delta time" factors would need to be applied and included the transition matrix and the control vector).

    For the situation mentioned above, the matrices and vectors are:




    This link contains nice explanations and visualizations for the Kalman Filter.