SSブログ

MPU6050 の Digital Motion Processor の性能を試してみた(3) [Arduino]

引き続きMPU6050のDMPの性能テストです。前回までのテストで、MPU6050のDMP(Digital Motion Processor)は重力の影響を排除してくれることは分かりました。


DSC04208.JPG


問題はXYZ軸の加速度が静止状態でゼロでない値に収束してしまうことです。このままでは静止していても、計算上は、どんどん速度が上がってしまいます。


MPU6050DMPnotConvergenceToZero.png

Google師匠に聞いてみると、キャリブレーションが効果がありそうです。


Arduino Sketch to automatically calculate MPU6050 offsets
http://www.i2cdevlib.com/forums/topic/96-arduino-sketch-to-automatically-calculate-mpu6050-offsets/


ということで、上記サイトにあるキャリブレーション用のスケッチを試してみることにしてみました。


MPU6050_calibration_v1.1.zip


フォーラム中でも話題になっていましたが、このキャリブレーションスケッチ、一向に値が収束しません。仕方ないので収束条件を緩めるように変更しました。


int acel_deadzone=30;     //Acelerometer error allowed, make it lower to get more precision, but sketch may not converge  (default:8)
int giro_deadzone=5;     //Giro error allowed, make it lower to get more precision, but sketch may not converge  (default:1)



これでも値がなかなか収束しません。どうも、かなり厳密にセンサーを平行に保たないと収束しないようです。何度も試行錯誤して、ようやく結果が得られました。


XAccelOffset: 82
YAccelOffset: 333
ZAccelOffset: 1443
XGyroOffset: -3
YGyroOffset: 716
ZGyroOffset: 475
※センサーによって値はまったく異なるので注意してください。


実際に試してみると、確かに静止状態では前よりも収束していますが(これでも若干のオフセットがあります)、センサーに動きを与えると、また大きなオフセットが発生してしまいました。

MPU6050DMPnotConvergenceToZero2.png


これでは速度、距離を算出することはできません。どうやら、オフセットを除去するためのフィルターを考える必要がありそうです。
σ(。-`ω´-)






MPU-6050搭載三軸加速度三軸ジャイロセンサモジュール

MPU-6050搭載三軸加速度三軸ジャイロセンサモジュール

  • 出版社/メーカー: スイッチサイエンス
  • メディア: エレクトロニクス



ESPr Developer(ESP-WROOM-02開発ボード)

ESPr Developer(ESP-WROOM-02開発ボード)

  • 出版社/メーカー: スイッチサイエンス
  • メディア: エレクトロニクス



Arduino 9軸モーションシールド

Arduino 9軸モーションシールド

  • 出版社/メーカー: スイッチサイエンス
  • メディア: エレクトロニクス




nice!(34)  コメント(0)  トラックバック(0) 
共通テーマ:趣味・カルチャー

nice! 34

コメント 0

コメントを書く

お名前:
URL:
コメント:
画像認証:
下の画像に表示されている文字を入力してください。

トラックバック 0

MPU6050 の Digital Mo..MPU6050 の Digital Mo.. ブログトップ

この広告は前回の更新から一定期間経過したブログに表示されています。更新すると自動で解除されます。