Electronic – What affects IMU (Inertial Measurement Unit) accuracy



I need to analyse the performance of a system that uses inertial sensor readings as input. My knowledge of IMUs is very basic, having only read a few introductory texts.

My understanding is that IMU accuracy degrades with continuous use due to drift, which results in accumulated error.


What other operational factors (i.e. not the specific device/components, but IMUs in general) effect the accuracy of IMUs?

I have noticed in my application that the system performance degrades when the object moves, especially when the movement is fast, and then improves once the movement slows, and reaches a halt. What aspect(s) of IMUs causes this?


To be more specific, the sensors give orientation as quaternions (rotational offset from the sensor coordinate system to a global coordinate system). The error fluctuates over time (duration of about 15 seconds), however there is not an incline in error over time. Based on this, I believe IMU drift is not an issue here.

What I am interested in understanding is why the estimate error of the object's orientation fluctuates based on the amount and speed of the object's motion.

If it helps, I am using Xsen MTx IMUs.

Best Answer

I have noticed some accellerometers and gyros to have a bit of a memory effect.

For example, you can place a accellerometer horizontal and null out the reading. I will stay close to zero but of course still drift a little. Now move it sideways and back again to the original position and the reading won't be zero anymore. The stronger and more sudden the movement, the more it seems to change the zero offset.

It is this unpredictable drift in the zero value that messes up inertial navigation over a longer time. Sometimes long is only a few seconds with MEMs gyros and accellerometers.

I did a sports head tracking device once, and even if you had the person hold still before starting a motion, the position would unusable after a couple of seconds. Fortunately that was long enough, and we designed the algorithm to use things like accelleration and angular rate directly instead of relying much on their integrals. This was with rather cheap MEMs units.