受限环境中的设备运动

时间:2013-08-05 21:26:10

标签: iphone ios gyroscope core-motion

我正在尝试解决与设备运动相关的看似简单的问题,但无法弄清楚如何解决它。我有一种情况是iPhone会在x-y平面上移动一圈。我需要找到iPhone的x和y轴相对于旋转中心的角度。 iPhone可以处于纵向模式或横向模式,或者相对于将iphone连接到旋转中心的线之间的任何角度。请参阅解释该场景的附图。

无论此角度如何,给定旋转的偏航变化都是相同的,因此这并没有真正帮助。我希望能有一些关系,我可以计算每一个小旋转,然后找到最适合整个动作 - 但还不能弄明白。

我感谢任何帮助或指示。

enter image description here

1 个答案:

答案 0 :(得分:0)

(我用伪代码编写,因为我不知道你正在使用的API,抱歉。)

以下是如何获得旋转的轴和角度。

直接从API获取旋转开始和结束时的旋转矩阵R1R2(请参阅CMAttitude和CMRotationMatrix)。然后,确定使angleaxis对齐的轮换R的{​​{1}}和R1。您得到R2如下:

R

旋转角度R = R1 * transpose(R2)

R

,其轴为

angle = acos((trace(R)-1)/2)

有关详细信息,请查看Rotation matrix to axis angle以及Axis-angle


我不确定如何获得你感兴趣的角度。不过,我希望以上有所帮助。


除了显示器外,请不要使用滚动,俯仰和偏航。并且不要试图整合它们,没有任何好处会出来。

无论如何,在旋转矩阵后面有集成。换句话说,有人已经为你做了整合。