在iOS

时间:2015-07-22 12:14:23

标签: ios objective-c math matrix coordinate-transformation

我一直在尝试比较俯仰和滚动模式(2秒录音)读数。

我所做的是记录一个投球和翻滚值10秒。在那10秒钟中,一些类似的运动被应用于设备。

当我在图表上绘制这些值时,值也相同。

仅当从相同方向/位置向设备提供动作时才会发生这种情况。例如,设备躺在桌子上并向设备提供动作。所有的读数都是一样的。

但是如果设备旋转180度。 ccw,读数被反转。

有没有办法可以为每个位置获得相同的读数?通过应用一些转换公式?我使用俯仰滚转和偏航来完成加速度值。但是,不知道如何实现俯仰和滚动本身。

基本上,我想要实现的是Pitch and Roll值应该与偏航无关。

以下是音高值的图表。所有读数都相同,预计两者从图表中的1.5开始。这是设备旋转180度时的两次。 CCW

enter image description here

更新

我尝试将CMAttitude存储在NSUSerDefaults中,然后应用multiplyByInverseOfAttitude。但图形图仍然是反向的。

CMAttitude * currentAtt = motion.attitude;

        if (firstAttitude)//firstAttitude is the stored CMAttitude
        {
            [currentAtt multiplyByInverseOfAttitude:firstAttitude];
        }

        CMQuaternion quat = currentAtt.quaternion; 

enter image description here

0 个答案:

没有答案