11

次のような単純な 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 これを行うにはどうすればよいですか?

誰かが持っているかもしれない洞察に感謝します。

4

3 に答える 3

2

デバイスの向きは、センサー フュージョンによって取得されます。厳密に言えば、どのセンサーもそれを測定しません。向きは、加速度計、ジャイロ、磁力計のデータをスマートな方法でマージした結果です。

「アルファ」の値が非常にうるさいことに気付きました。電話機が机の上に置かれていてもノンストップで跳ね返りますが、他の 2 つの値は安定しています。

これはオイラー角の一般的な問題です。可能であれば回避してください。

ところで、あなたがリンクしているAndroid デバイスの Sensor Fusion: A Revolution in Motion Processingビデオの 38:25 で説明されています。

また、ジャイロスコープは角速度を測定するので、このイベント リスナーはそれを自動的に統合していると思います - 統合アルゴリズムは他のものと同じくらい優れていますか? 加速度計を使用してドリフトを修正しますか?

はい、ジャイロドリフトは、加速度計(および磁力計)の読み取り値を使用して修正されます。これをセンサーフュージョンといいます。

この google tech talk ビデオでは、15:00 から 19:00 まで、講演者は加速度モーターを使用してジャイロスコープに固有のドリフトを修正すること、および重力に対する向きを調整することについて話します: http://www.youtube. .com/watch?v=C7JQ7Rpwn2kこれを行うにはどうすればよいですか?

オリエンテーションがある場合は、誰かがすでにこれらすべてを行っています。何もする必要はありません。

于 2012-06-16T07:23:42.003 に答える
0

方向余弦行列またはカルマン フィルターを使用します。加速度計を使用してプロットすることも、ジャイロスコープを使用することも、両方を組み合わせて使用​​することもできます。ドリフトは、少しの機械学習で計算できます。モーション フュージョンは Texas Instruments のキャリブレーション パッケージの一部だと思います。私は間違っているかもしれません。しかし、チェックするのは難しくありません。3 つの回転行列を乗算します

于 2014-06-12T23:40:54.593 に答える