试图校准加速度计

时间:2011-08-02 10:13:49

标签: android accelerometer calibration

我正在编写一个应用程序,它将使用加速度计来计算手机上的平均geforce。考虑到这个问题,我得出的结论是,当手机处于静止状态时,将所有轴值加在一起将得到+9.8的答案(由于重力加速)。

我现在假设如果我从所有轴的总和中减去9.8,它将给我在手机上施加的合力而不考虑重力。因此,如果手机处于固定位置,它将返回值0。

现在,如果手机直接躺在一个轴上,这确实可行,但如果手机以45度角对着某个东西,它会返回4-5的值(大约是重力)角度越接近轴,注册力就越小(继续前进并假设它是成比例的)

根据我的理解,这不应该发生,它应该返回0,因为所有的轴都会相互抵消,不是吗?由于手机是静止的,手机上应该没有记录力吗?

1 个答案:

答案 0 :(得分:1)

值为4-5 m / s2表示计算中存在小错误或硬件缺陷。你说你要添加所有值,但你是怎么做到的?您必须将幅度计算为sqrt(x * x + y * y + z * z)。这是因为像速度,位置......这样的加速度是向量,它们的length是根据Pythagorean theorem计算的。

一般来说,这些传感器并不像您预期​​的那样精确。在iPhone上,我测量了9.75和9.87之间的g力值。值取决于温度(把它放在冰箱里,你得到的值越来越低 - 我检查了它;-)并且在改变方向时确实存在差异。我发现值增量为0.3 m / s2。为了解决这个问题,你需要大量的数学运算(Kalman-Filter或类似的东西),当然还需要第二个传感器(陀螺仪,因为磁力计,即指南针反应太慢)。