ROSのアドベントカレンダー2019用, 12月12日のコンテンツです.

結論
Raspberry Pi + ROS + pigpio + Motor Driver + TAMIYA TOY = ROS-ROBOT
さすがに雑に書きすぎているので解説していきます.
Raspberry Pi
Microcontroller | Raspberry Pi 3 B+ | Laptop PC | |
---|---|---|---|
Image | ![]() | ![]() | ![]() |
計算能力 | |||
省電力 | |||
PC I/F | |||
GPIO |
世界で最も有名なシングルボードコンピュータです. コンピュータなのでもちろんUbuntuがインストールできます(ただし軽量版が使われることが多いです). さらに, Raspberry Pi 3 Model B+ ではUSBコネクタ, Ethernetコネクタ, Wifi, Bluetooth と一般的なパソコンに備わっているインターフェースも備えています. 一方でArduinoなどのマイコンのようにGPIOを持っています.
このパソコンとマイコンの間のちょうどいいところにいるのがRaspberry Piです. パソコン用のインターフェースを持っているおかげでuvc_cameraのような一般的なROSのパッケージを利用できると同時にGPIOのおかげでLチカなどのローレベルの制御を行うことができます.
ROS
今回のアドベントカレンダーの主役で, 一言で言えば, コードのコピペすらいらないロボット用コード使い回しシステムです. 詳しいROSの魅力や使い方については他のアドベントカレンダー参加者にお任せします(丸投げ).
Ubiquity RoboticsがRaspberry Pi 3用のROSインストール済みのOSイメージを無料で配布しています. いつもと同じようにbalenaEtcherで書き込めば, ROSの入ったRaspiがすぐに出来上がります. なお, Raspberry Pi 4 での動作は不安定なのでおすすめしません.
pigpio
pigpioは今回の影の主役です. Raspberry PiのGPIOはsudo
でしか操作できません. 一方でROSのノードはsudo
で実行できないため直接GPIOを操作できません. この2つの間を取り持ってくれるのがpigpioです. pigpioのデーモン(pigpiod)がROSからのコマンドを受け取ってGPIOを操作してくれます.
Motor Driver
ここでいうモータードライバはDCモータ用のHブリッジモータドライバです. Maxonの高いやつじゃないです.
Hブリッジモータドライバを使うことで130モータのようなホビー用DCモータを制御することができます. Hブリッジモータドライバの制御にはRaspberry PiのGPIOを使用します.
Tamiya Toy
本日の主役. ミニ四駆や楽しい工作シリーズの連中です. こいつらはだいたい前述の130モータで動いています. もうわかりますね. ここまでの足し算でこのモータをROSで制御できるようになっています. つまり, ムカデなあいつもさわやかさいっぱいのあいつも僕の夏休み的なあいつもROSで動かせるぞ!
実例
僕の場合はカムロボにカメラを装備させて, Wifi経由でラジコン化しています.
Note
とはいえTamiyaのおもちゃはロボット用に作られていないため, 乗り越えるべきハードルがあります. チェーンプログラムロボットやカムロボはマイコンを追加することを前提に設計されているので, 比較的ロボット化しやすいキットとなっています. 最初はここから手を付けるといいでしょう.
搭載場所とペイロード
Tamiyaのおもちゃの多くは上にものを乗せることを想定していないため, Raspiやバッテリーをどうやって搭載するかが問題となります.
背中が平たくないものも多いですし, 足で移動するものはバランスを崩しやすくなります. 次善策としては台車を牽引する形にすることが挙げられます.
Vs microbit and ESP32
最近はマイコンでもWifiやBluetoothを搭載し, カメラを接続できるものが簡単に手に入ります. ROSと比べると拡張性は落ちますが, 消費電力やサイズ面では優れています. 目的に応じて使い分けましょう.
あとがき
この分量であとがきってなんだよって感じですが, 今回(+カムロボのROSロボット化)の動機について書きます.
去年あたり研究室の後輩達がTurtleBot3とかRaspiMouseが使いはじめました. その時, 横で見てた僕の感想は「かわいくないなこいつら!」でした. 僕はTurtleBot1と2のRoombaを改造した妙に愛嬌のある感じがしたんですよ. しかも, TurtleBot3もRaspiMouseも高くて個人では手を出せないんですよ. もちろんいいモータやセンサを積んでいるから値段も高くなっているんですが, 実際学生はそれを使いこなせていないことが多いんですよね. だったら, かわいくて手頃なやつでいいじゃないかとか思ってたら, 自分で欲しくなってカムロボを改造していました. カムロボはどことなくバカっぽい感じがして好きなんですよ.
この記事がかわいいロボットの開発の助けになれば幸いです.
ここまで頑張って書いたのに肝心のRaspberry Pi 3 B+ は品薄で買えないってなんだよorz.
コメント