自作基板「PiRoombaBoard」でルンバを手軽にハックして動かす

f:id:karaage:20191023004531j:plain:w640

ルンバを手軽にハックしたい

 ルンバをハックするため、以前は以下の記事のように無理やりRaspberry Pi(以下ラズパイ)から配線を繋いで、ROSというロボット用のミドルウェアを使って制御しました。

 ただ、ハードウェア・ソフトウェア共にセットアップが大変なため、あまり実用的(?)ではありませんでした。そこで、この記事ではハードウェアに自作基板・ソフトウェアにAtsushi (id:meison_amsl)さん開発のOSS「PyRoombaAdapter」を使うことで、ルンバを手軽にラズパイから制御する方法を紹介します。

自作基板「PiRoombaBoard」

 自作基板の作り方に関しては以下記事を参照下さい。

 上記記事で作ったのが、ルンバを制御するためのラズパイのインターフェースボード(ラズパイ風に言うところのHat)「PiRoombaBoard」です。

f:id:karaage:20191021144300j:plain:w640

 以下のように接続することで、ラズパイとルンバをUARTで接続できます。

f:id:karaage:20191023004531j:plain:w640

 外部電源不要で、ルンバの電源からラズパイに5V電源を供給できるのが便利ポイントです。

 自分のためだけに作った基板で、基板の頒布や販売予定はありません。なので、詳細の説明に関しては割愛いたしますが、基本的に冒頭で紹介した記事の接続をそのまま基板にしているだけです。

 一応、回路や基板の設計情報は以下のGitHubリポジトリにアップしてありますので、参考にしたい方は、ご自由に使用下さい。KiCADで作成しています。

ルンバ制御ソフト「PyRoombaAdapter」

 Atsushi (id:meison_amsl)さんの「PyRoombaAdapter」という素晴らしいソフトを使って、簡単にルンバを制御できます。私は自作基板を使いましたが、冒頭で紹介したとおりに何らかの方法でラズパイとルンバがUARTで繋げさえすれば、同じ要領で制御できます。

 ROSで制御すると、セットアップが煩雑だったり、ROS1がPython3をサポートしていなかったりと色々大変なので(ROS2ではPython3をサポートしているようですが、まだ試せていません)、こういう依存性の低い手軽なライブラリはとてもありがたいですね。

 使い方、GitHubのREADMEにも書かれていますが、簡単に紹介します。ラズパイのターミナルで、以下のコマンドを実行していってください。

 「PyRoombaAdapter」のインストールは、以下1行のコマンドで簡単に行えます。

$ pip3 install pyroombaadapter

 色々サンプルも用意されています。サンプルを以下コマンドでダウンロードしましょう。

$ cd && git clone https://github.com/AtsushiSakai/PyRoombaAdapter

 サンプルは、以下のように試しましょう。

$ cd ~/PyRoombaAdapter/examples
$ python3 play_song1.py

 うまくいけば、以下の動画のようにルンバが聞き覚えのあるダースベーダーのテーマを奏でてくれます。

 この他にも、ロボットを動かすためのサンプルがあります。ライブラリ自体にも丁寧なコメントがあるので、非常に使いやすいソフトウェアです。

基板デバッグ

 ちなみに、こんな簡単な基板にも関わらず、トラブルが続出でした。ほんとよくハードウェアの仕事とかしていたな…   f:id:karaage:20191023004835j:plain:w640
 デバッグの様子1

f:id:karaage:20191023004849j:plain:w640
 デバッグの様子2

 家にある、格安の測定器(詳細は以下記事参照)でなんとかしましたが、やはり自作基板作るなら、もっと良い道具欲しいなと改めて痛感しました。

動作テスト

 以下のようにラズパイカメラで撮影しながらルンバを動かして見ました。

ルンバに載せたラズパイカメラで教師データ集めてる。賢くなーれ

 すっきりとして中々良い感じです。ケースもつけてあげたいですね。

まとめ

 自作基板を作って、ルンバを手軽にハックするまでをやってみました。ルンバは、ラズパイで操作できるし、電源も供給できるしで、手軽に手に入るロボット教材としてはとても良いなと改めて感じました。

 これを使って、今後ディープラーニングを使ったルンバのAI化といった色々な実験をしていこうかなとか思っています。

アイロボット ロボット掃除機 ルンバ622【国内仕様正規品】R622060

アイロボット ロボット掃除機 ルンバ622【国内仕様正規品】R622060

ラズパイマガジン 2019年8月号 (日経BPパソコンベストムック)

ラズパイマガジン 2019年8月号 (日経BPパソコンベストムック)

Sanwa(三和電気計器) デジタルマルチメーター PM-3

Sanwa(三和電気計器) デジタルマルチメーター PM-3

関連記事