Natural error in accelerometer measurements?

Hello,

I was speaking with someone over the weekend who was telling me that when you integrate the measurements from an accelerometer, over time, you can get an error in the readings. And, I imagne, given a long enough time, the error will get larger and larger.

I am afriad he wasn't really able to explain why this was so.

Is this correct? And, if it is, what causes it? Also, I guess, is there a way to factor out the error?

Thanks.

Seán

If you integrate acceleration over time to get velocity you will also be integrating any offset or other error such as rounding or precision. Also remember that the readings you are getting are instantaneous values for a continuous process. The value represents the current acceleration, not the average acceleration sine the last reading so if the acceleration is changing, using the current value as the average for the last time period will introduce errors.

Of course if the accelerometer is not in a fixed orientation relative to the local gravity you can't tell if the acceleration you are reading is due to change in velocity or due to gravity.

Ah yes, of course, that makes sense! Thanks.

So, is there any way to avoid these errors, or at least, limit their effects? I assume using as accurate a number as possible for acceleration will help.

Seán

Certainly having as much accuracy and precision as you can get will help. You can try characterizing the errors and calculating the accumulated error so you can correct for it. What is it you are trying to find the velocity of? Perhaps there is a different sensor that will work better.

Hey,

Thanks for the replies!

It will mainly be walking speeds. Nothing too fast.

I was wondering was there some sort of common mode rejection system.

Seán

o.fithcheallaigh:
Ah yes, of course, that makes sense! Thanks.

So, is there any way to avoid these errors, or at least, limit their effects? I assume using as accurate a number as possible for acceleration will help.

Seán

Using running average can reduce some error from random noise but won't get rid off the offset. Say if your accelerometer reads 0.1m/s/s where there is no acceleration, then over the course of 1 minute, you will be about 6m/s off on your velocity. I don't know of any way to eliminate this. If you flip the x axis and measure acceleration again and you may find out the offset and reduce it. If you have gravity involved with an accelerometer, accelerating while maintaining a tilt of the accelerometer may be even more problematic.

Well, as long as there is no real way to get shot of the errors, bar trying to reduce the places where they can occur, that's fine.

Thanks for the help.

Can I ask another question? Offset was mentioned a few times. What offset is this? Is it one thing in particular that will cause it? I'm just wondering.

Thanks again.

Seán

"offset" is usually any DC component, like gravity.

Ahh, ok! I should have been able to figure that out form studying DSP :blush:

Oh well.

Thanks again.

Seán

Incidentally if you measure the drift you can correct for it to a precision greater than 1 LSB. Just measure the drift in some convenient time period (a minute, whatever), work out how long it takes on average to drift by one LSB and subtract that LSB at that frequency from your integrated value. You might find frequent re-calibration is needed for this to work well, but I've used this sort of thing with MEMS gyros which are rate-gyros and so need integrating to obtain orientation - can reduce the angular drift noticeably.

Thanks for the tip!

I will keep it in mind when I am testing.

Seán