[Physics] Accelerometer offset

accelerationearthquakegyroscopes

First off, if this isn't the proper stack for this, I apologize, but since my question isn't based around code, I think this is the proper place.

I am making a system based around a 3 DOF accelerometer to track earthquakes. I take the magnitude of the three axis: mag = sqrt(x^2 + y^2 + z^2). I then take a moving average of 64 points of the data. I get great noise reduction from this method.

My question is on the baseline value of the accelerometer readings. It is my understanding, that since I take the magnitude of the 3 axis, that at any given location, the orientation of the accelerometer shouldn't affect the magnitude?

The problem I have, is that it seems to depend greatly on the orientation, and I can't see why.
Here is a great example:
Img1

I shook the table that the acc was on, gives a great image of the vibration, but it doesn't return to the original baseline. This same type of behavior happens if I spin it, raise or lower it, ect..

I am using a Invensense MPU-6050 accelerometer. I do have access to other 3 DOF gyro, maybe that could be helpful? I didn't think so since I don't need exact orientation out of it.

Thanks a lot.

EDIT: Based on the suggestions below, I secured the acc to the table, ensuring the orientation didn't change, and this is the result:
enter image description here

Moved back to baseline exactly. So it seems like it's a calibration issue.

Best Answer

Is the orientation of the sensor different after the shake? If not - did you calibrate the sensitivity of the axes? This looks like you have an uncalibrated sensor with changing orientation - so the same acceleration (of gravity) shows up as a slightly different number when pointing along x, y or z.

A well calibrated sensor should give the same reading (at rest) regardless of orientation. If it does not, you could deliberately orient in so $g$ points along x, y and z - then compute the scale factor needed so the three axes read the same thing.

Then when you combine your three signals, use

$$a = \sqrt{(c_x\cdot x)^2 + (c_y\cdot y)^2 + (c_z\cdot z)^2}$$

Where the $c_x$ etc are the calibration factors you found.

Related Question