【问题标题】:Accelerometer vs Gravity sensor加速度计与重力传感器
【发布时间】:2014-04-01 21:11:13
【问题描述】:

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

【问题讨论】:

    标签: android accelerometer android-sensors gravity


    【解决方案1】:

    重力传感器是 Android 所称的“软件传感器”,它使用多个硬件传感器计算其值。

    仅当设备具有陀螺仪时,软件重力传感器才可用。 通过将加速度计数据与陀螺仪数据相结合,可以滤除由于移动设备而产生的加速度,从而留下纯重力信号。所以是的,它会在运动时返回正确的值。

    因此,重力传感器比单独的加速度计提供更好的设备方向信号。

    组合传感器值称为sensor fusion,对于高质量的测量值很重要。

    Android 文档describes the Gravity Sensor

    不幸的是,许多 Android 设备没有陀螺仪,因此也没有重力传感器。这会使您仅从加速度计获得次优信号,与具有两个传感器的 Android 设备相比,用户体验质量较差,与 iOS 设备相比,用户体验质量较差。

    您可以使用以下 Google Play 要求规范来阻止在不兼容设备上的安装:

    <uses-feature android:name="android.hardware.sensor.gyroscope" />
    

    【讨论】:

      【解决方案2】:

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

      稍加思考就会发现,惯性质量和引力质量相等定律等价于引力场赋予物体的加速度与物体的性质无关的断言。对于牛顿在引力场中的运动方程,完整的写出来是:

      (惯性质量)\cdot(加速度)=(引力场强度)\cdot(引力质量)。 只有当惯性质量和引力质量在数值上相等时,加速度才与物体的性质无关。

      ——阿尔伯特·爱因斯坦

      我们无法区分加速度的测量和重力的测量,因为它们等同于观察者。即使 Android 有两个传感器,它们也会测量相同的东西。

      【讨论】:

      • 当设备处于静止状态时,重力传感器的输出应与加速度计的输出相同。 ___ 来自文档____ 那么为什么设备在运动时不一样呢?
      • 提供了接受的答案,没有看到实际的源代码,我只能猜测软件重力传感器试图猜测由于地球重力引起的加速度分量,使用地球表面作为参考框架。最后,这就是日常生活中运动的定义。如果传感器在一段时间内运行,如果您检测到加速度恒定为 9.8m/s2 的时间段,您可以猜测重力方向是什么。你可以简单地始终跟踪这个 9.8m/s2 加速度可能指向的方向,相对于设备。
      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2012-05-13
      • 2017-05-30
      相关资源
      最近更新 更多