0

我正在为我的大学开发一个项目,以操纵从 iPhone 4 获得的陀螺仪/加速度计值。但我遇到了一个数学问题,希望你们能帮助我。

我给你举个例子:

  1. 你的 iPhone 正面朝上,然后在 Y 轴上向上移动它。
  2. 你的 iPhone 朝右,这次你在 X 轴上向上移动它(因为你将 iphone 旋转了 90 度)。

第二次,计算机解释我已经将 iphone 移到了 RIGHT,但它是错误的。我已经将它向上移动了,但是由于 iphone 朝右,我的轴被旋转了。

我需要什么?我需要一种方法来虚拟地将 iphone 面朝上定位(3 轴正确)并为每个轴提供正确的运动值。

如果 iphone 旋转 90 度,那么我可以轻松切换 XZ 轴及其正确。但我想让它适用于任何旋转角度。

如果有人能用某种伪算法或数学描述来帮助我做什么,我将非常感激。

注意:我只需要一种方法来根据 iPhone 旋转补偿所有三个轴。

更新:

我实际上并不需要精确的值,因为我正在从陀螺仪获得的所有记录之间进行图形比较。我会说得更清楚。

-> 您只需通过在空中移动 iphone 来绘制一个字母,我的应用程序将识别您刚刚绘制的字母。我用于识别的方法是基于 TFT 算法,并使用源自我之前绘制的字母的样本值记录到数据库中。

我的观点是:我得到的价值观或它们代表什么并不重要。我所需要的只是即使 iPhone 处于不同的位置,所有的图表也是相同的。很难解释,但是如果您在 iPhone 向上时绘制字母“P”,如果您在 iPhone 向右转时绘制“P”,则生成的图形会有所不同。

所以我需要将轴补偿到它们的原始方向,这样我总是会得到相似的图形。

4

2 回答 2

1

这篇文章是在 iOS5 发布之前。仅供来这里的任何人参考,DeviceMotion relative to world - multiplyByInverseOfAttitude展示了如何将设备相对加速度值转换为 iOS5 及更高版本的地球相对加速度值。

于 2012-08-13T00:43:01.133 回答
0

因此,您想要的是从 iPhone 的坐标系(或对象/切线系统)转换为世界坐标系(反之亦然,如您所见,没关系)。您知道 iPhone 坐标系,因为您有陀螺仪数据。所以你想要的是创建对象->世界变换矩阵,并通过它来倍增每个速度向量(来自加速度计)。
看看这里对切线空间以及如何创建切线空间 -> 世界变换矩阵的一个很好的解释。如果您不熟悉 3D/线性数学,这可能有点棘手,但值得一试。

于 2011-03-27T16:37:19.023 回答