次のような単純な Web ページとスクリプトがあるとします。
<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>
Android 用のモバイル Firefox で開くと、次のような 3 つの数字が出力されます。
89.256125
3.109375
0.28125
デバイスを回転させると、回転軸に基づいて数値が変化します。「アルファ」の値が非常にうるさいことに気付きました。電話機が机の上に置かれていてもノンストップで跳ね返りますが、他の 2 つの値は安定したままです。アルファが私の見出しであることを理解しています。興味がありますが、コンパス (ノイズの問題がある) から「アルファ」値を取得し、ジャイロスコープから他の 2 つを取得していますか?
もう 1 つの問題は、ピッチを変更すると、実際には方向を変更しなくても、何らかの理由で方向も変更されることです。これがなぜなのか、どうすれば修正できるのか興味がありますか?
また、ジャイロスコープは角速度を測定するので、このイベント リスナーはそれを自動的に統合していると思います - 統合アルゴリズムは他のものと同じくらい優れていますか? 加速度計を使用してドリフトを修正しますか?
この google tech talk ビデオでは、15:00 から 19:00 まで、講演者は加速度モーターを使用してジャイロスコープに固有のドリフトを修正すること、および重力に対する向きを調整することについて話します: http://www.youtube. .com/watch?v=C7JQ7Rpwn2k これを行うにはどうすればよいですか?
誰かが持っているかもしれない洞察に感謝します。