I'm trying to implement an indirect kalman filter to estimate the pose of a differential drive robot using gyroscope and wheel encoder data.

I found a fiew papers (1 - 3) describing this approach but am confused about one thing. The state-matrix looks something like this:

state matrix for error state of differential drive robot

Elements of this matrix change over time in a non-linear fashon which seems wrong to me:

  1. The state matrix should be static and changing values should be encapsuled in the controll input.
  2. Non-linear changes should only occur when using an EKF or UKF eventhough all papers only mention Kalman Filter

Are these two points just left out or simplified for conveniece since its obvious or am I missunderstanding something?

  1. Dead Reckoning Navigation for Autonomous Mobile Robots. IFAC Proceedings Volumes. 1. March 1998;31(3):219–24.
  2. Panich. Indirect Kalman Filter in Mobile Robot Application. Journal of Mathematics and Statistics. 1. August 2010;6(3):381–4.
  3. Zunaidi I, Kato N, Nomura Y, Matsui H. Positioning System for 4-Wheel Mobile Robot: Encoder, Gyro and Accelerometer Data Fusion with Error Model Method. 2006;
  • $\begingroup$ I haven't looked through the papers you mentioned, but indirect Kalman filters(aka Error-State Kalman Filters) are usually Kalman filters rather than EKFs. They do work on non-linear terms, however, the error state is linear. That is why you are able to get away with a standard Kalman filter. $\endgroup$
    – edwinem
    Commented Nov 15, 2019 at 22:02
  • $\begingroup$ @edwinem as far as I can tell, most indirect KFs relly are just normal KFs but im not sure I understand why. The equations that govern the error-state here are clearly non-linear so Im not sure what you meant with: "the error state is linear". Can you elaborate? $\endgroup$
    – RobinW
    Commented Nov 16, 2019 at 14:13
  • $\begingroup$ Sadly not the expert in error state kalman filters. A crappy analogy I have is the the small angle approximation for rotations( sin(theta)=theta). This approximation only holds for small angles. However, since the error is always small(mentioned in your 1 reference and here page 51 ) it means that your approximation holds for any error value. And as the small angle approximation is a linearization it means it is now linear. $\endgroup$
    – edwinem
    Commented Nov 17, 2019 at 3:21
  • $\begingroup$ @edwinem The assumption of having small value changes and therefore being able to linearize is also used in the EKF. It uses Taylor-series expansion around the last known point in statespace as far as I understand it. $\endgroup$
    – RobinW
    Commented Nov 17, 2019 at 15:01
  • 1
    $\begingroup$ Yes, but in the EKF the Jacobians have to be recomputed every iteration since the Taylor series expansion is only valid within some delta x. The error state is small enough to always be within the delta x. So you can get away with only linearizing once. As mentioned in the Sola Quaternion Paper P.51 the Jacobians can in some instances be constant. $\endgroup$
    – edwinem
    Commented Nov 17, 2019 at 18:42

1 Answer 1


I am pretty sure that what you want is an extended kalman filter since the dynamics of the robot have to be non-linear based off the state matrix you have shown.

The state matrix should be static and changing values should be encapsuled in the controll input.
Non-linear changes should only occur when using an EKF or UKF eventhough all papers only mention Kalman Filter

You are correct on these statements. Although I could not go through 1st and 3rd paper. 2nd paper didn't have the state matrix you have pasted here.

  • $\begingroup$ It's not explicitly mentioned in the second paper which is a more general introduction into the topic. However, all equations shown in that paper are linear ones. Notice that equations 21 and 22 for example are used in normal KFs. (I've edited my question with links to all papers) $\endgroup$
    – RobinW
    Commented Nov 16, 2019 at 14:24
  • $\begingroup$ These papers are a bit misleading when they say kalman filter because they are only implementing dead reckoning which is equivalent to the prediction step of the kalman filter. Secondly, they are using indirect kalman filter- An indirect Kalman filter is the one that uses error states as opposed to the states in the state vector - error state kalman filter. The prediction step is non-linear and according to me, it is just the lazy use of the word kalman filter when they really meant extended kalman filter. $\endgroup$ Commented Nov 16, 2019 at 23:58
  • $\begingroup$ both papers are describing equations from both the prediction phase where theoretical error-models are used and the correction phase, where the difference in gyro and wheel-odometry measurements are compared (equation 5 in the 1st and equations 11 and 12 in the 3rd paper). Therefore I don't think it's lazy use of the word kalman. $\endgroup$
    – RobinW
    Commented Nov 17, 2019 at 15:20

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.

Not the answer you're looking for? Browse other questions tagged or ask your own question.