# Kalman filter with a known motion model

I have a robot whose pose $$(x, y)$$ is defined relative to the global frame. I have a sensor which estimates the robot's current pose in the global frame, and the sensor is known to have Gaussian error. The robot has a sensor which estimates the robot's local velocity $$(u, v)$$ relative to the robot's own frame, and the sensor is known to have zero error, so the motion model is known perfectly.

I now want to track the estimated pose of the robot in the global frame, using a Kalman filter. I know that my observation noise is Gaussian, which is one requirement of the Kalman filter. The other requirement is that the dynamics model is linear. Most examples of this type (global position frame, local velocity frame) I have seen say that the Extended Kalman filter is needed. However, I am not sure about whether this is true for my case, because my velocity sensor has zero error. I have two ideas:

1) The velocity sensor has zero error, and so the motion model is known perfectly. So, at every timestep, the estimated state is simply the previous state, plus the velocity multiplied by the timestep. Since there is no uncertainty in the velocity, there is no uncertainty in the motion. Therefore, I can use a regular Kalman filter.

2) Even though the motion model as zero noise, the dynamics itself is still non-linear. This is because to transform from the local frame to the global frame requires a rotation, which is a non-linear function since it involves sin and cosine functions. There may be zero "extra" uncertainty caused by the motion, but the motion model is still non-lienar. Therefore, I must use an extended Kalman filter.

Please could somebody explain which is correct, or if neither, what the correct solution is?

• Consider: If you have no uncertainty, you can integrate your sensor measurements directly, eliminating the need for a kalman filter of any kind – Jacob Panikulam Apr 14 '20 at 13:07
• Thanks for your comment @JacobPanikulam. But even if there is no motion uncertainty, I need to fuse multiple Gaussian observations. So at each timestep, I need to transform the prior Gaussian estimate by the known motion model. And if the robot's motion involves rotations, then this requires transforming a Gaussian by a non-linear function. So, my initial thought was that I cannot integrate the sensor measurements directly, since I need to include a non-linear transformation between them. Am I incorrect? – Karnivaurus Apr 14 '20 at 19:15
• Ah, I see now. Yes, your instinct is right that rotation makes your dynamics nonlinear, and that if you want to use a Kalman Filter, you’re stuck with using a nonlinear extension to the KF. – Jacob Panikulam Apr 15 '20 at 4:54