2足歩行ロボット 低重心タイプ
レゴの2足歩行ロボットの第2弾を作ってみました。第1弾は基本動作確認のために作ったロボットで、このブログの「2足歩行ロボット 先ずは作ってみた」という記事に書きました。今回の第2弾は、動作が安定するように、重心を低くして位置を調整できるようにしました。
下はその写真です。micro:bitの一体化モジュールで制御する2足歩行ロボットで、4軸制御(体を傾け、交互に軸足で回転して進む)をベースとし、サーボ制御信号は2系統としてあります。
機材と組み立て
制御部分は、micro:bit+拡張ボード他で作った一体化モジュールを使いました。このブログの「micro:bit+モータードライバ+電池 Scratchでも使える一体化モジュールを作ってみました」という記事に書いてあります。黄色の破線の下にリチウム電池が入っており、3.7Vでmicro:bitとモーターを動かしています。今回はScratchで動かしています。
本体部分は、サーボモーター4個をレゴでつないで作りました。2枚上の写真から分かるように、足元の2個のサーボモータにはタイヤが付いていて、残り2個はそれぞれ胴体を傾け、体重移動を行います。
サーボモータは下の写真に示すGeekServo(というのでしょうか?)を使いました。Banggoodなどから購入できます。
制御方法
下の写真は、左後ろから見た脚の部分です。
下のタイヤは足で、2個のサーボモータで両足のタイヤを回します。右後ろに見える2個のサーボモータは上体を傾け、体重移動を行います。先ず体を傾けある程度傾斜すると横に並べた2本の黄色のビームがストッパーとなり片方の脚が浮き上がります。そのときに軸足になったタイヤ側のサーボモータが回転して脚を前に出します。その後傾斜を逆にして反対側の脚を前に出す動作を繰り返します。その際、タイヤ側の2個のサーボには同じ制御信号が伝わり、傾斜のための2個のサーボモータにも同じ制御信号が与えられます。その理由は、プログラムを楽にしたかったことと、一体化モジュールにサーボ用の出力信号が2系統しか用意されていなかったこともあります(4系統にするには線を増やせばよいだけではりますが)。下は脚の部分の写真です。
プログラミング
プログラミングは、今回は、Scratch3で行いました。下は、そのプログラムです。左傾、左回り、右傾、右回りを組み合わせ、前進、後退、右折、左折を行っています。4軸を2系統の制御信号で動かすのは、直進・後退については問題ありませんでしたが、左右に旋回する場合は非常に無理のあることが分かりました。下の動画で見ると分かるのですが、動作に怪しいところがあります。
動作
下は上のプログラムで動かした様子です。左側はScratchの画面で、Scriptの猫を動かして前進、後退、左旋回、右旋回の指示をしています。中央の地球はホームポジションで停止状態になります。