RaspiさえあればたいていのTAMIYAはROS化できる

ROS

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

ROS Advent Calendar 2019 - Qiita
ROSのアドベントカレンダーです!

結論

Raspberry Pi + ROS + pigpio + Motor Driver + TAMIYA TOY = ROS-ROBOT

さすがに雑に書きすぎているので解説していきます.

Raspberry Pi

MicrocontrollerRaspberry 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で動かせるぞ!

実例

tamiya cam robot teleoperation

僕の場合はカムロボにカメラを装備させて, 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.

コメント