2022年10月9日日曜日

Madgwick filter

M5StickC Plus の MPU6886 には、ジャイロがついています。

ジャイロといえばパッドで利用されています。これまで加速度しか需要がなかったのですが、世間ではジャイロがコントローラーの1機能として使われています。ふと、機能があるなら作ってみようかと思い立ちました。

Google先生に聞いてみると、同じようなことを考えられる方はいらっしゃるというか、ロボットの姿勢制御等に利用されているようでした。自動車にも入っているのでしょうね。制御工学の範疇になるようです。
現在時刻の姿勢を算出する方法として、加速度、角速度から直接回転角度を求める方法と、何らかのフィルターを通す方法があるようで、一般的には後者の方が安定しているとのこと。このあたり、制御工学を勉強しないと理解できないでしょう。

で、M5StickC Plus でどの程度できるのかを試してみることに。
角速度は時間積分しただけ、加速度からの算出式は web の中で分かりやすい説明があった以下から、フィルターは Arduino で配信されているモノ(MadgwickAHRS algorithm)のできあわせ比較です。
https://watako-lab.com/2019/02/15/3axis_acc/
https://github.com/arduino-libraries/MadgwickAHRS

結果はコチラ。


加速度からの算出値もそこそこ良い挙動ですが、細かな振動が現れています。その点、Madgwick filterは安定しています。そこそこ再現できそうです。どういう理屈なのか知りたいところですが、ひとまず恩恵を受けて進めましょう。


0 件のコメント:

コメントを投稿