Joe*_*oey 11 javascript android sensor accelerometer gyroscope
如果我有一个简单的网页和脚本,如下所示:
<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>
Run Code Online (Sandbox Code Playgroud)
我可以在Android的移动Firefox中打开它,它将输出3个如下所示的数字:
89.256125
3.109375
0.28125
Run Code Online (Sandbox Code Playgroud)
旋转设备时,数字会根据旋转轴而变化.我注意到"alpha"的值非常嘈杂 - 即使手机在桌面上休息,它们也会不间断地反弹,而其他两个保持稳定.我明白阿尔法是我的标题.我好奇的是,它是从指南针(有噪音问题)得到"alpha"值而另外两个来自陀螺仪吗?
另一个问题是当我改变音高时,由于某种原因,标题也会改变,即使我实际上没有改变音标.我只是好奇为什么会这样,以及如何纠正它?
此外,由于陀螺仪测量角速度,我认为这个事件监听器是自动集成的 - 集成算法是否与任何一个一样好?它是否使用加速度计来校正漂移?
在这个谷歌技术讲座视频中,从15:00到19:00,演讲者谈到通过使用加速器来校正陀螺仪固有的漂移,以及校准相对于重力的方向:http://www.youtube .com/watch?v = C7JQ7Rpwn2k 我该怎么做呢?
感谢任何人的见解.
设备方向通过传感器融合获得。严格来说,没有一个传感器能够测量它。方向是以智能方式合并加速度计、陀螺仪和磁力计数据的结果。
我注意到“alpha”的值确实很吵——即使手机放在我的桌子上,它们也会不停地跳动,而其他两个则保持稳定。
这是欧拉角的常见问题,如果可以的话尽量避免它们。
顺便说一句,您链接到的“Android 设备上的传感器融合:运动处理的革命”视频在 38:25 对此进行了解释。
另外,由于陀螺仪测量角速度,我认为该事件侦听器正在自动集成它 - 集成算法是否与其他算法一样好?它使用加速度计来校正漂移吗?
是的,陀螺仪漂移是借助加速度计(和磁力计,如果有)读数进行校正的。这称为传感器融合。
在这个谷歌技术演讲视频中,从 15:00 到 19:00,演讲者谈论了如何使用加速电机来校正陀螺仪固有的漂移,以及校准相对于重力的方向:http://www.youtube .com/watch?v=C7JQ7Rpwn2k我该如何去做呢?
如果你有方向感,那么有人已经为你做了这一切。你不需要做任何事。