I want to implement an inertial navigation system that uses a basic IMU for indoor position tracking. From all the things I've read you need to assist the IMU with something like GPS or other means of position sensing since the error in position grows quadratically with time.

I looked into Kalman filtering and am confused why this doesn't fix the issue of quadratic position error. Since youre sensors only measure acceleration and gyro (and maybe magnetic field), you must get position from your estimated state, not from your estimated sensor reading. If this is the case then you update your position state with only the error on the accelerometer each time and not the double integration of the accelerometers past errors, right?

I may be just confused but I feel like Kalman should get rid of the quadratic error.

If this is not the case, then why? And what techniques do people use for reliable indoor position tracking with IMUs?

  • \$\begingroup\$ It's because you have to double-integrate the sensor data. You have acceleration. You integrate that to get velocity, and then integrate that to get displacement. Any small bias in your data is quadratically compounded. How would a Kalman filter fix that? How could it distinguish between constant, minor acceleration and sensor bias? \$\endgroup\$ Commented Jul 10, 2015 at 20:39
  • \$\begingroup\$ I'm not sure, I have just a basic understanding of Kalman. \$\endgroup\$
    – user8363
    Commented Jul 10, 2015 at 21:11
  • \$\begingroup\$ This might be a better fit for dsp.stackexchange.com. I've seen more Kalman filter hits there than here. \$\endgroup\$
    – efox29
    Commented Jul 10, 2015 at 22:36
  • \$\begingroup\$ by any chance do you have constant acceleration? are you applying the Kalman filter on the original data THEN integrating that? \$\endgroup\$
    – user16222
    Commented Jul 10, 2015 at 23:30

1 Answer 1


No amount fo filtering can correct a contant error that is inherit in your input data.

Assume you are in rest, but your accelerometer gives a reading of a very low constant value X (its error). No amount of filtering will change this.

Integrating this X over time gives your 'speed' t * X, which increases linearly.

Intergrating this speed over time gives your 'position' (1/2) * t^2 * X, which grows quadraticly.

  • \$\begingroup\$ And, as follows the error in position grows quadratically over the acceleration error, not over time. \$\endgroup\$
    – Eugene Sh.
    Commented Jul 10, 2015 at 20:30
  • \$\begingroup\$ So Kalman filters do not correct for this quadratic error over time? \$\endgroup\$
    – user8363
    Commented Jul 10, 2015 at 20:31
  • \$\begingroup\$ How could it? The input data is constant, so how would you filter change that? \$\endgroup\$ Commented Jul 10, 2015 at 20:32
  • \$\begingroup\$ Give it some additional, more precise sensor data, even just part of the time, and the properly designed KAlman filter will correct itself. \$\endgroup\$
    – Eugene Sh.
    Commented Jul 10, 2015 at 20:34
  • \$\begingroup\$ Adding additional data changes the playingfield, the question was "Does position error from accelerometer still build up quadratically when using Kalman filtering?". No additional data mentioned. \$\endgroup\$ Commented Jul 10, 2015 at 21:56

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.