1

私は現在VRフレームワークに取り組んでいます。私のAndroidスマートフォンは、立体ディスプレイとコントローラーとして使用されています。ヘッドトラッキングは機能していますが、単純な位置トラッキングも必要です。スマートフォンの位置を正確に追跡できないことはわかっています。少なくともスマートフォンのセンサーに限定されている限り。そのため、スマートフォンの回転 (ヘッドトラッキング) とあらゆるタイプの一般的な動きを区別するという考え方です。もちろん、モーションが検出された場合、たとえば前方に移動できるという結果になります。私が言ったように、ヘッドトラッキングはアンドロイド ジャイロスコープで問題なく動作します。しかし、モーショントラッキングはまだ私が望んでいるようには機能していません.

主な問題は、電話を回転させるときに、この回転が実際には加速でもあることです。したがって、加速度の大きさを見るだけでは、加速度 (モーション) と回転を区別するのに十分ではありません。さらに、ジャイロスコープのしきい値のようなことを行います。

if(gyroscope.magnitude < EPSILON)
    if(accelerometer.magnitude > EPSILON)
        //this may be motion

歩いている間、携帯電話は常にある程度回転しているため、目的の微分も得られません。

簡単に言えば、この問題の解決策はありますか? (編集) はいの場合、どのように行われますか? スマートフォンを動かしたのか、回転させたのかを区別できるようにしたい。理想的には、ジャイロスコープと加速度計のみを使用します。

フィードバックをお寄せいただきありがとうございます。

4

1 に答える 1

0

クォータニオンの概念と、それらを使用して向きを表す方法に慣れることをお勧めします (これは良いスタートになるかもしれません: http://run.usc.edu/cs520-s12/quaternions/quaternions-cs520.pdf
また、ヒューリスティックが失敗する場合があるかもしれないので、あなたが提案する「EPSILON」としてヒューリスティックを使用することは十分ではないかもしれませんが、あなたはすでにそれを知っていると確信しています.
ほとんどの場合、生データの偏りに注意する必要があるため、電話が十分な時間休止していることを確認する必要があります (その期間に取得するサンプルの数に依存します = に依存します)測定の開始時にセンサーのサンプルレート)。その場合、軸の平均を計算して減算できます。これは、バイアスが時間の経過とともに一定であると仮定し、バイアスの不安定性を気にしません (ここを見てください: http://sensorwiki.org/doku.php/sensors/gyroscope )。バイアス不安定性はジャイロだけに当てはまるわけではありません。
プロセスの開始時に残りを保証できない場合は、バイアスを推定する可能性があるため、カルマン フィルターについても読みたいと思うでしょう。クォータニオンとバイアスを状態として使用する KF の実装を見てきました ;) - 初心者向けです。

于 2018-07-09T08:39:01.227 に答える