2

你知道应用程序“运动尺”吗?它可用于通过移动 iPhone 来获取对象的长度。

移动 iPhone 时如何从 UIAcceleration 获得速度?

4

1 回答 1

1

速度只是加速度*时间。即你可以使用公式

v = u + 加速度 * 时间。

作为初学者,您可以假设初始速度为 0,可以忽略 'u' 以获得加速 * 时间。

如果你想要距离,只需使用距离 = 初始速度 * 时间 + 0.5 * 加速度 * 时间 * 时间。

或者更好的是仍然使用航位推算并不断添加速度矢量,因为您从加速度计获得更新。

要将加速度作为标量,您可以执行 a = sqrt(x*x+y*y+z*z)。不过,您之前会希望从中消除重力!此外,这只会为您提供直线距离,您可能更喜欢独立测量 x、y、z 方向的速度,并使用矢量分析来测量路径以获得更准确的读数。但请注意,您可能还需要考虑任何旋转才能超级准确,并且此功能仅在 iPhone4s 上。这可能会变得很棘手,您可能需要使用一些矩阵数学来确定手机所在的“空间”。

您还需要在加速度计上做一个低通滤波器以消除“抖动”,这就是一个显着的误差范围会蔓延的地方,也是为什么我希望 appstore 中的所有标尺都花了很长时间来完善这一点。

做一个过滤器,一个非常简单的过滤器是 filtersValue = ((lastValue * n) + accelerationValue )/(n+1) 其中较大的 n 值会产生更平滑的结果,但响应性较差。

于 2011-07-12T23:46:48.723 回答