操纵陀螺仪/加速度计从iPhone 4获得的值

时间:2011-03-27 16:20:02

标签: iphone normalization accelerometer gyroscope

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

我将举例说明:

  1. 你的iPhone面朝上,你在Y轴上向上移动。
  2. 你的iPhone面朝右,这次你在X轴上向上移动(因为你将iphone旋转了90度)。
  3. 第二次,计算机解释我已将iphone移动到右边,但这是错误的。我把它向上移动了,但是因为iphone面朝右,我的轴被旋转了。

    我需要什么? 我需要一种方法来VIRTUALY将iphone正面朝上(3轴正确),并给每个轴正确的移动值。

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

    如果有人能用某种伪算法或数学描述来做什么,我真的很感激。

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

    更新

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

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

    我的观点是:我得到的价值或者他们所代表的价值并不重要。我需要的是即使iPhone处于不同的位置,所有图表都是相同的。很难解释,但是如果你在iphone打开的情况下绘制字母“P”,如果你在iPhone右转的情况下画出'P',那么图表的起源会有所不同。

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

2 个答案:

答案 0 :(得分:1)

此帖是在iOS5发布之前发布的。对于来到这里的任何人,DeviceMotion relative to world - multiplyByInverseOfAttitude展示了如何将iOS5及以上版本的设备相对加速度值转换为地球相对值。

答案 1 :(得分:0)

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