绕z轴旋转时出现iOS陀螺仪错误

iOS gyro error when rotating about z-axis

本文关键字:iOS 陀螺 错误 旋转      更新时间:2023-09-26

我在解决遇到的一个奇怪错误时遇到了问题,我想知道是否有其他人也遇到过类似的问题,或者是否可以提供解决方案。

我正在使用javascript访问陀螺仪和iOS设备,并对绕z轴旋转感兴趣;我想要设备平放在桌子上时的旋转角度。

然而,陀螺仪似乎每旋转360度就会偏离约20度。如果我将设备与桌子上的东西对齐,然后将设备旋转360度,使其返回到起点,角度读数为~340度,而不是360或0。这是复合的,所以在旋转1080度后,角度会偏离约60度,如果我然后反向旋转,它会反转误差(在这种情况下,在旋转-1080度后,它将返回0度)。

我在Ipad 2、3和iPhone 4上测试过这一点,发现它们都有类似的问题——尽管iPhone更像是每360度就有8度。我也尝试过使用像gyro.js这样的库,但也出现了同样的结果。

我整理了一个简短的代码笔示例来演示。http://codepen.io/CharlesSmart/pen/ZYNXEJ?editors=101

window.addEventListener('deviceorientation', orientationHandler, false);
function orientationHandler(e)
{
var alpha = e.alpha
var div = document.getElementById('text');
div.innerHTML = alpha;
}

我是否在某种程度上滥用了定向api?这可能是我使用的设备有问题吗?

如有任何建议,我们将不胜感激。

我敢打赌,你得到的是加速度计数据,而不是陀螺仪数据。

您可能想要"设备运动"而不是"设备方向"。