n_shinichi’s blog

★記事一覧★から見てください...(すみません、メニュー、リンク、カテゴリー分けがうまくできてません) 日々の備忘録、誤記多し... 名古屋大学:非常勤講師、小学5年生:電磁石単元理科講師、学生フォーミュラ:EV技術指導員、魔改造の夜:Dンソーアドバイザ、CQ出版_Interface:制御技術関連執筆

MENU

Interface 9月号 シンプル倒立振子ロボで理解するPID制御 

サポートページの サンプルスケッチの解説 続き… その5 くらい...

 

ジャイロセンサ使ってボデイの向きを保持です

 

左右独立したモータで動かすようなロボット、車モノは

 回転検出センサがないと普通、個体差バラツキでまっすぐは走らず、

 ちょっとづつ回転していくこと多いです。

 

倒立振子ロボでも同じでDCモータをベースにしたモノは個体差バラツキが

 あるので両方同じ動かし方してるつもりでも少し動きが違います。

スティックくんはアナログ制御でDCモータでのサーボ使ってるのでバラツキ大きいです。 同じ駆動パルス入れても左右で違ってきます。

そうなるとたいてい、ボディがジリジリ横回転します。

 

DCモータじゃなくて、ステッピングモータベースなどなら

 駆動パルスでピッタリ同じ角度分回転するのでズレなどはありません。

 

なので、スティックくんは何も補正せずただ2個のサーボモータ

 倒立制御だけすると立ってはいても、横に自転するような動きになって

 しまいます。

 

9軸IMUなどでは地磁気センサでボディの向きを知ることができて

 そのボディ向き信号で補正できるのですが

 M5StickC_plusは6軸IMUで地磁気センサはありません。

 

そこで、ジャイロセンサの値を使って向きの補正をしています。

 ジャイロセンサのヨー軸、横回転角速度信号を積分して角度を求め、

 その求めたボディ角度方向を元にフィードバックを掛けています。

 その動作の様子が上記動画です。

 

予め、スマホで各PID制御パラメータ係数値はゼロにして、

 倒立PID制御は止めています。

 

ジャイロセンサは低価格品・・・M5StickC_plusのはけっこうドリフトします。

 M5StickC_plusを動かさなくてもある程度の角速度値が出ています。

なので、

電源入れた時にキャリブレーションするようにしてます。

  その平均値を求め通常の測定値の補正をしています。

 

 

M5Stackコンテストに応募してみた

 うまくできたか いまいちよくわからん...けど

www.hackster.io