3
$\begingroup$

I found a good explanation on how to remove accelerometer bias (when on flat table only one axis should show values, the other two should be 0). I've calculated S and B factors (page 3):

Record $B_x^{0g}$, $B_y^{0g}$, $B_z^{0g}$, $S_{xx}$, $S_{yy}$, and $S_{zz}$ in EEPROM or flash memory and use these values in all subsequent calculations of acceleration to get the corrected outputs.

I don't know how to incorporate these into the final calculation of accelerations. I guess the bias should be substracted from my sensor reading. What about sensitivities (S)?

$\endgroup$

2 Answers 2

3
$\begingroup$

As noted at the top of the second page:

$B_z^{0g} = a_{z1}-S_{zz}*1g$

The "ground truth" z-axis acceleration (of an accelerometer sitting flat on the table) is $1g$, which is affected by the sensitivity of the accelerometer along that axis. You could rewrite it as follows:

$$Bias = a_{measured} - Sensitivity * a_{actual}$$

Since you want to calculate the actual acceleration from the measured acceleration, you'd rewrite it like this:

$$a_{actual}=\frac{a_{measured}-Bias}{Sensitivity}$$

Or in terms of the original variables,

$$a_{z1}^{corrected}=\frac{a_{z1}-B_z^{0g}}{S_{zz}}$$

$\endgroup$
1
  • $\begingroup$ Thank you, the results are better but still not that good. I found an enhanced better bias removal technique but don't know how to get some of the sensitivites. If you have the will I would very much be grateful for help. The question: robotics.stackexchange.com/questions/1579/… $\endgroup$
    – c0dehunter
    Jul 10, 2013 at 20:45
3
$\begingroup$

Ian's answer is mathematically correct. However, on most processors division takes longer than multiplication. So if you're at all pressed for processor resources you would want to precalculate a gain and offset for each channel, and apply it:

$k_{zz} = \frac{1}{S_{zz}}$

$b_{zz} = -\frac{B_z^{0g}}{S_{zz}}$

$a_{z1}^{corrected} = k_{zz} a_{z1} + b_{zz}$

$\endgroup$
1
  • $\begingroup$ Thanks for the optimization, will definatelly be aware of! $\endgroup$
    – c0dehunter
    Jul 10, 2013 at 20:36

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge that you have read and understand our privacy policy and code of conduct.

Not the answer you're looking for? Browse other questions tagged or ask your own question.