続・小型二足ロボット"Rapiro"をM5Stackでラジコン化してみる
機楽株式会社、株式会社ミヨシ、当社スイッチサイエンスの3社共同プロジェクトによって生まれた"Rapiro"、前回の記事ではM5Stackを頭部に搭載してラジコンにするところまでのご紹介をいたしました。
今回の記事はその続編として、更にRapiroへ機能を追加して遊んでみたいと思います。
1. "Rapiro"について
Rapiroは、機楽株式会社、株式会社ミヨシ、当社スイッチサイエンスの3社共同プロジェクトによって生まれた、全高250 mmの小型二足歩行ロボットです。
内部には12のサーボモータとArduino UNO R3の互換基板を持ち、Arduino IDEでの開発を行うことが可能です。また、頭部にはフルカラーLEDが載ったLED基板とRaspberry Pi(B / B+ / 2 / 3)を搭載することができ、より高度な制御を行うこともできます。
前回の記事では、Rapiroの頭部にM5Stackを搭載し、Blynkというアプリを用いてWi-Fi経由でRapiroをスマートフォンから遠隔操作できるように機能を追加しました。
M5Stackを搭載してもまだまだ頭部の容積には余裕があります。そこで今回の記事ではM5StackBasicに加えて、同じくM5Stack社製のTimerCameraXをRapiroの頭部に搭載し、Rapiroからのカメラ映像を用いた遠隔操作に挑戦してみようと思います。
2. カメラを搭載してみよう
では早速、Rapiroの頭部にカメラを搭載していきます。
Rapiroの頭には、元々Raspberry Pi Cameraを搭載するための穴が中央に空いていますので、この穴をそのまま利用します。
Raspberry Pi Camera用の穴とTimerCameraXの画角の中央が合うようにカメラを固定します。
TimerCameraXにはこちらのプログラムを書き込みました。
TimerCameraXはRaspberry Pi Cameraと比較して筐体が大きく、本来の位置にカメラを固定できていません。そのため、カメラ穴の周囲が視野角に若干入ってしまいましたが、正面は捉えることができています。
3. 射的をしてみよう
Rapiroのカメラ映像を見ながら遠隔操作をすることができるようになったので、射的をして遊んでみます。
まずは射的用のゴム銃を3DCADを使って作り、3Dプリンタで出力します。
作成したゴム銃のSTLファイルはこちらです。
Rapiroの手に指は無いほか、掌の開閉ストロークはトリガーを引くには少々小さいです。そのため、トリガーを動作させるためのサーボモータを別に用意し、そのサーボモータの回転で射撃動作を実現することにしました。また、Rapiroに搭載されている基板のピン数の関係から、サーボモータの角度制御は頭部のM5Stackから行うことにしました。
出力したパーツとマイクロサーボモータ(SG-90)、Φ2 mmの金属丸棒、針金とM3の六角穴付きボルトを使ってゴム銃を組み立てます。
ゴム銃組み立て手順
(1) サーボホーンに開いているねじの下穴とトリガー上部の穴に針金を通す
(2) 針金をS字に曲げる
(3) トリガー下部の軸穴に金属丸棒を通す
(4) 金属丸棒を銃本体のパーツへ圧入する
(5) M3の六角穴付ボルトで左右の本体パーツを固定する
(6) サーボモータを銃後部のモータ取付台に取り付ける(必要ならM2のねじで締結)
(7) サーボモータから伸びる導線をRapiro頭部のM5Stackへ配線する
続いて、射的をできるよう、RapiroのArduino互換基板に書き込むプログラムへ、Githubで配布されているサンプルプログラムに変更を加えます。
ゴム銃を構え、下ろす動作、ゴム銃の左右の向きを合わせる動作、射撃動作をそれぞれ実装します。
作成したプログラムはこちらです。
rapiro-shoot-mainはRapiro内部のArduino互換基板に、rapiro-shoot-m5は頭部のM5Stackに対してそれぞれ書き込みを行うプログラムです。
スマホからRapiroを操作するために、Blynkのダッシュボードを編集します。Blynkでの操作や詳しい使い方に関しては、前回の記事にてご紹介しております。詳しくは前回の記事やBlynk公式ドキュメントをご参照ください。
コピー用紙を使って簡単に的を作りました。
それではBlynkを起動して、射的をしてみましょう。
おわりに
前回・今回と、M5Stackを用いたRapiroの機能拡張を行いました。
記事の執筆を通しての所感としましては、ロボットの開発において一番の鬼門といえる機構設計(個人の感想です)をすることなく、使い慣れた開発環境とフレームワークを用いて簡単にロボットプログラミングを行えることが何よりのRapiroの魅力であると感じました。
また、容量の大きな頭部や使いやすいマイコンボードゆえの拡張性の高さは、他の高機能なロボット製品にも負けることはないと自信をもってお伝えできます。
記事では実機実装でのご紹介はいたしませんでしたが、Rapiroは元々、Raspberry Piを搭載して制御することを念頭に作られたロボットです。最近では対話型AIのプラットフォームも増え、Raspberry PiでもChatGPTなどを使用することができるようになってきています。Raspberry PiとRapiroを用いて対話ロボットを製作してみるのも面白いかもしれません。
拡張性に富み、様々な応用が容易なRapiro、ぜひよろしくお願いいたします。