Home › Forums › UM7 Product Support › UM7 accelerometer sensor data converting
This topic contains 5 replies, has 2 voices, and was last updated by Caleb 2 years, 8 months ago.

AuthorPosts

May 13, 2016 at 8:41 am #1099
peterHello … I can read Accelerometer RAW X,Y,Z datas from UM7. But values like that :
X = 166
Y = 183
Z = 4230
X = 161
Y = 191
Z = 4204
X = 153
Y = 195
Z = 4233
X = 158
Y = 212
Z = 4216
X = 158
Y = 204
Z = 4227
X = 148
Y = 191
Z = 4194
X = 171
Y = 205
Z = 4211
X = 159
Y = 201
Z = 4224
X = 153
Y = 189
Z = 4225
X = 165
Y = 212
Z = 4214These values are in right scale ? and , How can I convert to g(m/sn2) data these values ?

May 14, 2016 at 2:10 pm #1100
The conversion is easier if you use processed data instead. The raw data is completely uncalibrated. If you want to use the raw data, orient it so that X and Y are zero. The zaxis measurement is gravity, so you can get the scale factor out of that.

May 14, 2016 at 2:55 pm #1102
peterthank you. can you explain over my sample values with your conversion(processed) formule. so, can you write a sample calculation. sorry but I am so far on this issue.

May 14, 2016 at 3:03 pm #1103
Sure. Suppose, for example, you measured the following:
X = 10
Y = 15
Z = 4230You might not be able to get a measurement where X and Y are both exactly 0, something like the above would be close enough. In this case, you’d get
// This converts raw units to acceleration in m/s/s
float scale_factor = (float)1 / 4230 * 9.8;accel_x = X * scale_factor;
accel_y = Y * scale_factor;
accel_z = Z * scale_factor;This actually isn’t perfectly accurate, since there will also be biases on the acceleration measurements, and each axis will have different biases and scale factors. To distinguish between bias and scale factor, you’d want to orient the sensor so that the body frame zaxis points orthogonal to gravity (so, rotated exactly 90 degrees). The nonzero measurement on the zaxis is the bias. Let that bias be represented by the variable B_z. Then the scale factor can be computed with:
float scale_factor_z = (float)1 / (4230 – B_z) * 9.8;
accel_z = (Z – B_z)*scale_factor_z;
The scale factors and biases for the X and Y axes will be different from the Z axis, so you’d need to repeat the calibration for every axis. It’s actually easiest to get all this data of you mount the sensor on a perfect cube, sitting on perfectly level table. Then you can get measurements from each axis both aligned with and orthogonal to gravity, to extract biases and scale factors.
If you have a superaccurate gimbal, you can do something more sophisticated by collecting data from every axis along with truth from the gimbal. Then you can compute all the calibration, including crossaxis alignment, scale factors, and biases, in one batch process. That’s what we did with the GP9 while we were still selling it.
Note that the accelerometers on the UM7 are consumergrade, and the biases and scale factors aren’t very repeatable. You can get kinda close, but you’ll always be a little off.

May 16, 2016 at 1:22 am #1104
peterThank you so so much @Caleb … your calculation for 2g range, isnt it ?
İf I want to be it’s be 4g range how can I modify your calculation ? 
May 16, 2016 at 5:54 am #1105
The dynamic range of the accelerometers is a function of the sensor itself, not the calibration. What I described is correct regardless of the sensor’s dynamic range.

AuthorPosts
You must be logged in to reply to this topic.