Android中“重力”和“加速度”传感器有什么区别?

时间:2012-05-04 09:56:05

标签: android accelerometer android-sensors gravity

Android中的重力和加速度传感器有什么区别?从我的观点来看,两种情况下的物理价值是相同的。

哪一个测量作用于设备内部单位质量的力?

ADDITION

问题是:这些传感器测量的物理量是多少?根据{{​​3}},加速度和重力是无法区分的,衡量两者的唯一方法是通常(但是3d)弹簧平衡。

2 个答案:

答案 0 :(得分:11)

加速度传感器可以返回应用于设备的所有力的总和,而重力传感器仅返回重力的影响。如果要从加速度中排除重力,可以使用高通滤波器或仅从加速度传感器值中减去重力传感器值 - 不确定哪种方法可以提供更好的精度。

另一种方法可能是使用Sensor.TYPE_LINEAR_ACCELERATION,它精确地给出(加速 - 重力),但是你应该检查它是否在设备上可用。我找到了一些设备,它们有ACCELERATION传感器工作,但GRAVITY或LINEAR_ACCELERATION传感器没有响应。

答案 1 :(得分:3)

此链接可能会有所帮助:http://www.sensorplatforms.com/which-sensors-in-android-gets-direct-input-what-are-virtual-sensors

以下摘录总结了您的问题的答案:

“列表......包括物理传感器和传感器类型,其值来自物理传感器,有时这些被称为虚拟传感器......虚拟传感器类型(重力,线性加速度和旋转矢量)提供的值由智能地组合来自物理传感器的结果...旋转矢量是加速度计,磁力计,有时是陀螺仪的组合,用于确定Android设备相对于地球框架坐标所处的三维角度。设备的旋转矢量,加速度计数据可以分为重力和线性加速度。“

此链接https://stackoverflow.com/a/8238389/604964还表示使用巴特沃斯滤波器计算重力值。