加速度计 vs 重力传感器

9

如果设备在运动中,重力传感器是否返回正确的值?我认为重力传感器使用加速度计来识别重力方向。这两个传感器是不同的硬件吗?

2个回答

8
重力传感器是Android所称的“软件传感器”,通过多个硬件传感器计算其值。
只有设备具备陀螺仪时,才可使用软件重力传感器。通过将加速度计数据与陀螺仪数据结合,可以过滤掉由于移动设备而产生的加速度,从而留下纯重力信号。因此,在运动状态下它会返回正确的值。
因此,与仅使用加速度计相比,重力传感器为设备方向提供了更好的信号。
将传感器值组合起来称为传感器融合,这对于高质量的测量值非常重要。
Android文档描述了重力传感器
不幸的是,许多Android设备缺乏陀螺仪,因此也没有重力传感器。这使您仅能从加速度计中获得次优信号,与同时具备两种传感器的Android设备和iOS设备相比,用户体验质量较低。
您可以使用Google Play需求规范来阻止不兼容设备的安装,如下所示:
<uses-feature android:name="android.hardware.sensor.gyroscope" />

3

阿尔伯特·爱因斯坦于1911年回答了这个问题。

稍加思考即可得知,惯性质量和重力质量的平等法则相当于断言受到重力场作用下的物体所获得的加速度与物体的性质无关。对于牛顿在重力场中运动方程的完整书写形式为:

(惯性质量)×(加速度)=(重力场强度)×(重力质量)。

只有在惯性质量与重力质量之间存在数值相等时,加速度才与物体性质无关。

——阿尔伯特·爱因斯坦

我们无法将加速度的测量与重力的测量区分开来,因为它们对观察者来说是等价的。即使安卓设备拥有两个传感器,它们仍然会测量同样的事情。


当设备静止时,重力传感器的输出应与加速度计相同。但是,当设备运动时为什么不同呢? - SpeedEX505
提供了被接受的答案,但没有看到实际的源代码,我只能猜测软件重力传感器试图猜测由于地球引力而产生的加速度分量,使用地球表面作为参考系。最终,这就是日常生活中运动的定义。如果传感器在一段时间内运行,您可以猜测重力方向是什么,如果检测到加速度恒定为9.8m/s2的周期。然后,您可以始终跟踪这个9.8m/s2加速度相对于设备可能指向的方向。 - wessel

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