マイクロマウスのジャイロセンサの誤差の補正をやってみた

2020年6月7日

こんにちは。最近はモチベーションが下がり、やる気があまりでてこないです。先週は、ブログを書くことができなかったので更新ができませんでした。ブログを始めて3カ月でついに1週間で一回更新するということを諦めました。2週間ぶりの更新です!

先日、とある方にジャイロセンサの変換用の係数には誤差があるから、係数の誤差がなくなるように物理量の変換用の係数にゲインをかければよくなるという話を伺って実際に実装したらよくなったのでメモがきとして残します。




結果

変則4輪のハーフサイズマウスについているMPU-6500を使用して実際に行った結果、とてもよくなりました。

以前までは超信地旋回が180度回転を上手くすることができずI1成分を上げてゴリ押ししていました2が、I成分をあげなくてもしっかりとあうようになりました。

データシートを確認

早速、データシートを確認したいと思います。

MPU-6500 Product Specification Revision 1.1より引用

Sensitivity Scale Factor Tolerance に注目すると、スケール変換用の誤差は25度でpm3%あるよと書いてありました。

他にも誤差はあるようですが、物理量変換時にこれだけの誤差がのっているのは辛いですよね。超信地旋回を複数回やるとどんどんずれていく理由がわかったような気がします。

実装(簡単)

ゲインをかけるだけでOK。

// gyro は取得値(16bit)として変換のところにゲインをかける
// この場合は、-2%の誤差を補正しようとしている
omega = (float)gyro / GYRO_FACTOR * 0.98f );

こんな感じです。MPU-6500との通信関連については

を参考にしていただければと思います。

 

さいごに

データシートの細部までしっかりと読むことの大切さをしりました。これをやるだけで、角度が以前よりも綺麗に合うようになるかもしれません。ぜひ試してみてください。

  1. PID制御における積分のゲイン
  2. スラロームも同様だった