CMAccelerometerData和CMDeviceMotion之间的区别

时间:2014-05-31 16:02:02

标签: ios accelerometer core-motion

有人可以解释CMAccelerometerDataCMDeviceMotion之间的区别。

在我看来,CMAccelerometerData的加速度值是原始值,因为CMDeviceMotion的数据是以某种方式插值的,或类似的东西。

2 个答案:

答案 0 :(得分:7)

这些是CMAccelerometerDatacmdevicemotion之间的差异。

  1. 原始加速度计数据是所有测量加速度的总和,即设备的重力和当前加速度的组合。
  2. 设备运动数据是所有3个传感器(即加速度计,陀螺仪和磁力计)的传感器融合的结果。因此,消除了偏差和误差(理论上),并将剩余的加速度数据分为重力和加速度,以方便使用。
  3. 为了比较两者,您需要检查CMAccelerometerData.accelerationCMDeviceMotion.userAcceleration + CMDeviceMotion.gravity进行比较,以便与之比较。

    一般情况下,CMDeviceMotion是您在大多数情况下需要精确值和硬件独立性时的首选。

答案 1 :(得分:5)

CMAccelerometerData类的实例表示加速度计事件。它是在一个时刻沿三个空间轴的加速度的测量值。

CMDeviceMotion的一个实例封装了设备的姿态,旋转速率和加速度的测量结果。

不同之处在于CMDeviceMotion包含陀螺仪,加速度计和罗盘数据,其中CMAccelerometerData仅包含原始加速度计数据。