加速度計、ジャイロスコープ、コンパスを使用して3D世界でデバイスの動きを計算する

私は6方向のデバイスの動きを計算することができるアンドロイドアプリケーションに取り組んでいます。私は加速を使うことができると思う。

" x = a.t ^ 2 "ですが、aは定数ではありません。これが問題です。どうすれば合計の動きを計算できますか?

13
あなたがこれを解決する方法を非常に不思議に思っていました。正確なナビゲーションを可能にするためには正確なものにしています。
追加された 著者 ina,
a の値をポーリングして平均アクセラレーションを計算し、ポーリング間隔の平均を適用する必要があります。
追加された 著者 Bringer128,

2 答え

加速度計はあなたに3つの方向(x、y、z)を与えます。これらは加速度測定であり、デバイスの位置が何であるかを知ることは困難です。しかし、加速度が統合による位置に関連していることを忘れないでください。

a(t) = a[x]
v(t) = a[x]t + c
x(t) = a[x]t ^ 2 + ct + d

問題は、cやdを知ることができません。なぜなら、微分をとると定数が消えるからです。だからあなたはcとdが不足していると右にいくことはできませんいくつかの量があります。最後に使用した値を覚えて補正することができます。だから3つのサンプルを取得した後、それから位置を計算し始めることができます。

センサーからデータをどのように解釈するかについては、かなりの量の情報があります。重力がどこに向いているかを把握し、重力を減じて線形加速を得るようにする。

http://developer.android.com/reference/android/hardware/SensorEvent.html

ここでは、詳細に位置を見つけるアルゴリズムとともに、加速度計を使用して位置を提示する方法があります。

http://www.freescale.com/files/sensors/doc/app_note/AN3397.pdf

19
追加された
結果はどうですか?
追加された 著者 ina,
ちょうど警告:恐ろしい統合エラーが発生します。
追加された 著者 Ali,
特に第二のリンクは私のための金鉱です。どうもありがとう。
追加された 著者 kubudi,
そうなる。ちょっと待って。
追加された 著者 kubudi,
私は移動するピクセル数を計算するために加速を使用しました。シンプルで適切に動作します。あなたが私のアプリを送ることができますが、それはいくつかの依存関係があります。
追加された 著者 kubudi,

It is true, you get position by integrating the linear acceleration twice. But the error is horrible. It is useless in practice.

23:20の理由説明(Google Tech Talk)をご覧ください。私はこのビデオを強く勧めます。

問題を引き起こす加速度計のノイズではありませんが、ジャイロホワイトノイズ、6.2.3項のエラーの伝播を参照してください。 (ところで、ジャイロスコープも必要です。)

同様の質問は加速度計による距離移動です。

5
追加された
アリ、あなたが投稿されている統合された結果は恐ろしいだろうが、私はその場合は分からない。 Googleビデオでは、経験則は「ノイズの積分がドリフトになる」ことでした。あなたが何かを統合すると、カーブの下の領域が得られます。これは、ラインが正のy軸の上にあるほど長くなります。ドリフトは正確ではありませんが、その領域が徐々に増加していることを示しています。
追加された 著者 ina,
線形加速を使用している場合、SensorManagerにジャイロが必要です。受け入れられた答えについては、あなたが得た結果が非常に貧しいことを知っていれば幸いです。予想以上に悪い
追加された 著者 Ali,
最初から最後までビデオを見てください。それはあなたに明確な説明を与えます。
追加された 著者 Ali,
ジャイロホワイトノイズはすぐに小さな方位誤差をもたらします。線形加速に偏りがあるのと等価です。 ノイズではなく、このバイアスを統合しています。これが災害の原因です。リンクされた技術レポートの6.2.3項を読むと、数値的な例が得られます。
追加された 著者 Ali,
ありがとうが、私はジャイロが必要ないと思う。距離を動かす必要があるのはなぜだと思いますか?
追加された 著者 kubudi,
どうして?ジャイロはあなたに角速度を返しています。あなたは加速のためにそれを必要としますか?私は本当にそれを取得していません。
追加された 著者 kubudi,
すでに見ている。しかし、私は同じようにするつもりはありません。これを行う方法は1つだけではありません。実際にはカメラを使用することもできます。
追加された 著者 kubudi,