サポートページの サンプルスケッチの解説 続き… その5 くらい...
ジャイロセンサ使ってボデイの向きを保持です

#CQ出版 #Interface 9月号
— しん_2-41 (@shinichi_nino) 2025年8月27日
シンプル #倒立振子 で理解する #PID制御
サポートページの
サンプルスケッチ解説 その5
ヨー回転補正...
ジャイロの値でサーボ個体差等で
ボディが回転してしまうの防いでます
CQ出版販売のボデイで組立て&テスト↓https://t.co/mwTOq943Da
#M5stack #Arduino pic.twitter.com/KkqnlAfeJC
左右独立したモータで動かすようなロボット、車モノは
回転検出センサがないと普通、個体差バラツキでまっすぐは走らず、
ちょっとづつ回転していくこと多いです。
倒立振子ロボでも同じでDCモータをベースにしたモノは個体差バラツキが
あるので両方同じ動かし方してるつもりでも少し動きが違います。
スティックくんはアナログ制御でDCモータでのサーボ使ってるのでバラツキ大きいです。 同じ駆動パルス入れても左右で違ってきます。
そうなるとたいてい、ボディがジリジリ横回転します。
DCモータじゃなくて、ステッピングモータベースなどなら
駆動パルスでピッタリ同じ角度分回転するのでズレなどはありません。
なので、スティックくんは何も補正せずただ2個のサーボモータで
倒立制御だけすると立ってはいても、横に自転するような動きになって
しまいます。
9軸IMUなどでは地磁気センサでボディの向きを知ることができて
そのボディ向き信号で補正できるのですが
M5StickC_plusは6軸IMUで地磁気センサはありません。
そこで、ジャイロセンサの値を使って向きの補正をしています。
ジャイロセンサのヨー軸、横回転角速度信号を積分して角度を求め、
その求めたボディ角度方向を元にフィードバックを掛けています。
その動作の様子が上記動画です。
予め、スマホで各PID制御パラメータ係数値はゼロにして、
倒立PID制御は止めています。
ジャイロセンサは低価格品・・・M5StickC_plusのはけっこうドリフトします。
M5StickC_plusを動かさなくてもある程度の角速度値が出ています。
なので、
電源入れた時にキャリブレーションするようにしてます。
その平均値を求め通常の測定値の補正をしています。
M5Stackコンテストに応募してみた
うまくできたか いまいちよくわからん...けど