提问者:小点点

iOS中速度的加速度-符号错误


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

检测工具包使用CMMotionManager的startAccelerometerUpdates获取加速度。为了计算速度,我做了一些信号处理和加速度的积分(然后乘以9.81,因为苹果是以重力增量来测量加速度的)。结果是在记录时间内的速度(它不是很精确,但在我的情况下这并不重要)。

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

同样的情况也发生在X轴上,只要我把手机放在桌子上,沿着这个轴的方向移动。

我今天在没有感应套件的情况下测试了它,得到了同样的结果。

重力在z轴上总是一个负速度,因为它是对地面的加速度。

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

谢谢你。


共1个答案

匿名用户

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

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