如果我有一个如下所示的简单网页和脚本:
<body>
<div id="alpha">a</div>
<div id="beta">b</div>
<div id="gamma">g</div>
</body>
<script>
window.addEventListener('deviceorientation', function(event) {
var alpha = event.alpha;
var beta = event.beta;
var gamma = event.gamma;
document.getElementById("alpha").innerHTML = alpha;
document.getElementById("beta").innerHTML = beta;
document.getElementById("gamma").innerHTML = gamma;
}, false);
</script>
我可以在移动 Firefox for Android 中打开它,它会输出 3 个如下所示的数字:
89.256125
3.109375
0.28125
当我旋转设备时,数字会根据旋转轴而变化。我注意到“alpha”的值非常嘈杂——即使手机放在我的桌子上,它们也会不停地反弹,而其他两个保持稳定。我知道阿尔法是我的方向。那我很好奇,它是从指南针(有噪音问题)获得“阿尔法”值,而从陀螺仪获得另外两个?
另一个问题是当我改变音高时,由于某种原因,航向也会改变,即使我实际上并没有改变航向。我只是好奇为什么会这样以及如何纠正它?
此外,由于陀螺仪测量角速度,我认为这个事件监听器正在自动集成它 - 集成算法是否和任何算法一样好?它是否使用加速度计来校正漂移?
在这个谷歌技术谈话视频中,从 15:00 到 19:00,演讲者谈到了使用加速器校正陀螺仪固有的漂移,以及校准相对于重力的方向:http ://www.youtube .com/watch?v=C7JQ7Rpwn2k 我该怎么做呢?
感谢任何人可能有的任何见解。