倒立振子ロボット 玉乗りロボット について

Arduino,ジャイロセンサを使ってPID制御で倒立振子にトライ、その時の記憶と記録。

まずは
動画1→  2輪ロボット
動画2→  4輪玉乗りロボット

(youtubeにリンク)

2輪ロボット

CPUはArduino、角度センサはMPU6050 3軸加速度、ジャイロセンサ
ステッピングモータードライバ2軸ぶん、35mm角ステッピングモータと電池

これらで2軸の倒れないようにPID制御をするわけだが、技術的にはすでに
完成されており、ソースコードも世間に溢れている。

ポイントは角度を得るためには加速度とジャイロの2つのデータから演算する
必要がある。相補フィルタ、カルマンフィルタがキーワード。
Githubあたりも参考に。

あとはモーター、タイヤ、トルクなどに合わせてPIDのパラメータをチューニング。




手配線で1台作ったあと思うところあり基板化してみた。

Arduino
MPU6050
モータードライバ 2台
I2Cレベル変換
など

電源はニッケル水素を8本




2輪を作って思ったのだが、

2輪を2台90度ずらして取り付ければ玉乗りができるのでは?と

普通玉乗りロボットを作るときは3軸3タイヤとし、XY2方向の傾斜を3軸に割り振る
制御をするようだが、とりあえずやってみた。

4軸の弱点は4タイヤに均等にボールを当てるのが難しいわけだが、ボールは
やわらかいし何とかなるだろうというわけ。

結果は2軸のPIDパラメータをちょっと修正するだけでボールに乗ってくれた。

全体の重量に対しモーターが小さくトルク不足で制御できなくなる問題はあるが
意外と簡単に動いた。