# Using Kalman filter vs Extended Kalman filter for differential drive robot with IMU

I have an IMU that provides me with a heading that is pretty accurate and accurate encoders on the wheels of my differential drive robot which provides me with pretty accurate velocity but has slippage when turning. To get the best estimate for my x and y position and heading, the states I am tracking are [x, y, Vx, Vy, Ax, Ay, theta, dtheta/dt]. By using the current estimated angle and some geometry, I can measure Vx, Vy, Ax, Ay, theta, and dtheta/dt using wheel odometry at each update step. I can also get Ax, Ay, theta, and dtheta/dt from the IMU (I could get velocity too but the encoders provide an orders of magnitude better readings). For some reason though I keep seeing online that this situation calls for an EKF as it is nonlinear. However, it seems linear as each state element can be predicted by using a linear combination of the other state elements. EX: x = x0 + Vx*dt + .5*axdt^2, Vx = Vx0 + axdt, etc... Is there anything wrong with using my approach of converting odometry readings into measurements that allow for a linear system? Am I misunderstanding what it means to be a linear system? Any input what be very helpful. For added insight, my robot is being tele-operated so it will be acceleration and turning.

• You can have linear states but a nonlinear measurement. There are 2 sets of equations. You also mention angles which implies a mixed coordinate system – user28715 Jul 25 '19 at 20:22