web-dev-qa-db-ja.com

携帯電話のジャイロスコープドリフト

多くの投稿がジャイロドリフトの問題について語っています。ジャイロの読みがドリフトしていると言う人もいますが、統合がドリフトしていると言う人もいます。

  1. 生のジャイロの読みにはドリフトがあります [リンク]
  2. 統合にはドリフトがあります [link] (Answer1)。

そこで、1つの実験を行います。次の2つの数字は私が得たものです。次の図は、ジャイロの読み取り値がまったくドリフトしないが、オフセットがあることを示しています。オフセットのため、統合はひどいです。ですから、統合はドリフトのようですよね? enter image description here

次の図は、オフセットを減らしても積分がまったくドリフトしないことを示しています。 enter image description here

また、別の実験を行いました。まず、携帯電話を机の上に10秒ほど置いておきます。次に、それを左に回転させてから、元に戻します。それから右と後ろ。次の図は、角度を非常によく示しています。私が使用したのは、オフセットを減らしてから統合することだけです。

enter image description here

だから、ここでの私の大きな問題は、おそらくオフセットがジャイロドリフト(積分ドリフト)の本質であるということですか?この状態でジャイロドリフトを除去するために、補完フィルターまたはカルマンフィルターを適用できますか?

どんな助けでも大歓迎です。

13
Allen Jee

ジャイロの読み取り値に「ドリフト」がある場合、それはバイアスと呼ばれ、ドリフトではありません。

ドリフトは積分によるものであり、バイアスが正確にゼロであっても発生します。ドリフトは、積分によって読み取り値のホワイトノイズを蓄積しているためです。

ドリフトキャンセルについては、 方向余弦行列IMU:理論 原稿を強くお勧めします。センサーを実装しました。 Shimmer 2 それに基づくデバイスの融合。

(編集:ドキュメントは MatrixPilot プロジェクトからのものであり、その後Githubに移動し、そこにあるwikiのダウンロードセクションにあります。)

カルマンフィルターを主張する場合は、 https://stackoverflow.com/q/5478881/341970 を参照してください。

なぜ独自のセンサーフュージョンアルゴリズムを実装しているのですか?

両方Android( SensorManager under Sensor.TYPE_ROTATION_VECTOR)およびiPhone( Core Motion )は独自のものを提供します。

16
Ali

この議論ではALIとステファノの両方が原因理想的な統合にドリフトの二つの基本的な側面を調達しています。

基本的にゼロ平均ホワイトノイズは理想的な概念であり、そのような理想的なノイズ統合でも、ノイズの低周波数成分よりも高いゲインを提供し、統合信号に低周波数ドリフトをもたらします。理論上、ゼロ平均ノイズは、かなり長い時間にわたって観測されたドリフトを引き起こさないはずですが、実際には理想的な統合は機能しません。

一方、理想的な積分(損失のない合計)が実行された場合、読み取り値(入力信号)のわずかなDCオフセットでさえ、時間の経過とともに大きなドリフトを引き起こす可能性があります。理想的な積分は入力信号のDC成分)に無限のゲインがあるため、システム内の非常に小さなDCオフセットを増加させる可能性があります。したがって、実用的な目的では、理想的な積分をローパスに置き換えます。カットオフを必要なだけ低くすることができますが、実用的な目的のためにゼロまたは低すぎることはできません。

1
abhijit

親愛なるALiは、本当に疑わしく、不正確な(間違った)何かを書きました。

ドリフトisバイアスの積分。これは、統合するときのバイアスの目に見える「効果」です。平均ゼロを持つノイズ(あらゆる種類の定常ノイズ)は、結果的に積分ゼロになります(PSDの積分についてではなく、時間で積分された信号の加法性ノイズについて話します)。

バイアスは、電圧と運動温度の関数として、時間とともに変化します。例えば。電圧が変化すると(そしてそれが変化すると)、バイアスが変化します。それが固定されておらず、「予測可能」でもないバイアス。そのため、信号による推定バイアスの提案された減算を使用してバイアスを排除することはできません。また、見積もりには誤差があります。このエラーは時間とともに累積します。誤差が小さければ、累積(ドリフト)の影響がより長い間隔で表示されますが、それはまだ存在しています。

理論によれば、現在、バイアスを完全に排除することは不可能です。最先端技術では、すべてのバイアスを除去できる、ジャイロスコープと加速度計の磁力計のみに基づいて、バイアスを排除する方法をまだ見つけていません。

AndroidとiPhoneには制限付きバイアス除去アルゴリズムの実装があります。それらはバイアス効果によって完全に自由ではありません(例えば、小さな間隔で)。一部のアプリケーションでは、これにより深刻な問題が発生し、予測できない結果が生じる可能性があります。

1
stefano

ALiの返信(ALiに感謝)に動機付けられて、私はいくつかの読書といくつかの数値実験を行い、ジャイロドリフトの性質について自分の返信を投稿することにしました。

私は簡単な オクターブオンラインスクリプト ホワイトノイズと統合されたホワイトノイズをプロットしました:

enter image description here

質問に示されているオフセットを減らした角度プロットは、典型的なランダムウォークに似ているようです。数学的ランダムウォークの平均値はゼロであるため、ドリフトとは見なされません。ただし、ホワイトノイズの数値積分は、平均がゼロ以外になると思います(以下のランダムウォークのヒストグラムプロットに見られるように)。これは、線形に増加する分散とともに、いわゆるジャイロドリフトに関連している可能性があります。

ジャイロスコープと加速度計から生じるエラーの素晴らしい紹介があります ここ 。いずれにせよ、私はまだ学ぶことがたくさんあるので、私は間違っている可能性があります。

補完フィルターに関しては、いくつかの議論があります ここ 、それによってジャイロドリフトがどのように減少するかを示しています。この記事は非常に非公式ですが、興味深いと思いました。

1
Ezequiel Garcia