1

Unity で Epson Moverio BT-200 の継続的かつ正確な方向を取得しようとするとき、私は現在、非常に困難な問題に直面しています。ユーザーが上/下を見ているとき(すでに加速度計のみを使用している場合)、ユーザーにとって非常に良い結果を得ることができますが、左/右の動きについては得られません。次のコード部分を使用してデバイスのジャイロスコープのみに依存している場合、左右の動きは何とか正常に機能しますが、しばらくするとドリフトが発生するため、削除する必要があります。

Quaternion newAttitude = new Quaternion (gyro.attitude.x, gyro.attitude.y,    gyro.attitude.z, gyro.attitude.w);
transform.rotation = newAttitude;
Vector3 ea = newAttitude.eulerAngles;
transform.eulerAngles = new Vector3(-ea[0], -ea[1], ea[2]);

私はすでに Android 内部getOrientationメソッドと他のさまざまなセンサー フュージョンのチュートリアルと実装を使用してみました (例: http://www.codeproject.com/Articles/729759/Android-Sensor-Fusion-Tutorial )。どんな小さなヒントでも大歓迎です。:) 前もって感謝します!!

4

1 に答える 1

0

ここで「左右回転」とは、重力方向に沿った軸を中心とした回転であると仮定しています。

その場合、ジャイロスコープと加速度計だけではドリフトを取り除くことはできません。重力と平行ではない方向の一定の基準を提供する 3 番目のセンサーを統合する必要があります。磁力計は、ドリフトを軽減するために使用できる磁場方向の固定基準を提供するため、この目的で一般的に使用されます。

このセンサーは、参照したチュートリアルで実際に使用されています。補完的なセンサーとは別に、拡張またはアンセンテッド カルマン フィルター、マホニーの DCM フィルターなど、より強力な代替手段を使用できます。

于 2016-08-24T12:10:23.687 に答える