尝试校准加速度计

4
我正在编写一个应用程序,将使用加速度计来计算手机所受的平均重力。思考这个问题后,我得出结论,当手机静止时,将所有轴的值加起来会得到+9.8(重力加速度)的答案。
我现在假设如果从所有轴的总和中减去9.8,则会给出在不考虑重力的情况下施加在手机上的合并力。因此,如果手机处于固定位置,则会返回值0。
现在,如果手机直接横放在一个轴上,这确实是正确的,但是如果手机以大约45度的角度靠在某物体上,它会返回4-5的值(大约是重力的一半)。角度越接近轴,记录的力就越小(我认为它是成比例的)。
据我理解,这不应该发生,因为所有轴都应该互相抵消,对吧?因为手机是静止的,所以不应该记录到任何力吧?

如果你需要的话,我可以发布代码。 - Ian
1个回答

1

4-5 m/s2的值表示您的计算中可能存在一些小错误或硬件缺陷。您说您正在添加所有值,但是您是如何做到的呢?您必须计算大小,即sqrt(x*x + y*y + z*z)。这是因为加速度(如速度、位置等)是向量,它们的length是根据勾股定理计算的。

一般来说,这些传感器并不像您想象的那么精确。在iPhone上,我测量了9.75至9.87之间的重力值。数值取决于温度(将其放入冰箱中,您会得到较低的值-我已经检查过;-),并且在改变方向时确实存在差异。我发现值的增量为0.3 m/s2。为了解决这个问题,您需要进行复杂的数学运算(卡尔曼滤波器或类似的东西),当然还需要第二个传感器(陀螺仪,因为磁力计即指南针反应太慢)。


啊,好的,我只是通过((x+y+z)-9.8)进行计算。为什么你要像sqrt(xx + yy + z*z)这样计算呢?如果我按照你的方法做,我还需要减去9.8吗? - Ian
请查看更新后的答案。g的数量是恒定的(在一个地方),但我认为您指的是用户加速度。如果是这样,是的。 - Kay
啊,是的,你让我想起了我的物理课!哈哈,非常感谢你的帮助! :D - Ian

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接