2011-11-11 8 views
1

Androidセンサー管理について理解しようとしています。 私はジャイロスコープを電話機の向きにすることが必要な場合は、getOrientation(..)を呼び出すと自動的に行われ、電話機にはジャイロセンサが搭載されていますか?ジャイロスコープはgetOrientationに含まれていますか?

携帯電話に加速度センサーとジャイロセンサーが付いている場合は、加速度センサーのみの場合と比べて、より良い方向の結果が得られるでしょうか?

ありがとうございます!

答えて

2

オリエンテーションを取得するためのAndroid APIに含まれるメソッドには、ジャイロスコープセンサーからの読み取り値は含まれません。ジャイロスコープは、回転速度に関する情報しか持たないため、方向に関する情報は提供しません。

あなたはオリエンテーションのより良い推定値を得るために、このような情報を使用して、ジャイロセンサーの読み取り値の恩恵を受けることができます:

  • ステップ1:あなたはオリエンテーションの初期推定値を持っています。
  • ステップ2:ジャイロセンサーからの情報と方向の新しい見積もりがあります。
    • 手順1と手順2の間の時間の増加(デルタ-t)に関する情報があります。したがって、この間に回転速度を積分すると、2つの状態間の回転の推定値を取得できます。
    • また、新しい状態の状態2を読み込んでいます。
    • これらの2つの情報源([orientation @ step = 1 + rotation]と[orientation @ step = 2])を統合して、ステップ2.
    • これは、あなたが上記のAPIレベル9とで作業している場合補色フィルタ
+0

これらの手順が実際に実行されていることを示すコードサンプルはありますか? – polonskyg

1

を使用して、むしろ簡単な方法で行うことができ、およびお使いのデバイスは、ジャイロスコープを持っているのオリエンテーション、 Sensor.TYPE_ROTATION_VECTORから恩恵を受けることができます。

加速度計、磁気センサー、ジャイロスコープから取得したデータの「融合」を処理します。

関連する問題