iOS 中的加速 - 错误的符号

问题描述

我目前正在开发一个应用程序,它应该通过设备的加速度来计算速度。为了实现这一点,我使用了传感套件。该应用程序记录用户运动的数据并将其保存到本地存储。当用户停止记录时,可以按时间绘制收集到的加速度(加速度计每个轴的三个图形)。

Sensing Kit 使用 cmmotionmanager 的 startAccelerometerUpdates 来获取加速度。为了计算速度,我进行了一些信号处理和加速度的积分(并将其乘以 9.81,因为苹果以重力增量测量加速度)。结果是记录时间的速度(它不是很精确,但在我的情况下无关紧要)。

我测试了我的应用程序,将手机滑过桌子,屏幕朝上,屏幕上方朝移动方向。运动后来显示在 Y 轴的结果图中,但它具有速度(加速度也是负的)。我希望速度和加速度应该是,因为我在 Y 轴的正方向移动了设备。

当我沿 X 轴移动桌面上的手机时,X 轴也会发生同样的情况。

我今天在没有 Sensing Kit 的情况下对其进行了测试,并得到了相同的结果。

重力总是像我期望的那样在 z 轴上为负速度,因为它是对地面的加速度。

谁能给我解释一下为什么传感器的加速度符号错误

谢谢。

解决方法

https://developer.apple.com/documentation/foundation/unitacceleration https://developer.apple.com/documentation/foundation/units_and_measurement

Foundation 库有一个函数,您可以使用它在 UnitAccelerationUnitSpeed 之间进行转换。