Ubuntu 14.04 上のROS (Indigo) でRoombaを制御してみる | りさーちゃーのたまご

りさーちゃーのたまご

研究者になり損ねた社会人のつれづれ日記です。へっぽこソフトしかかけないけど、社会人研究職を目指します。
適当なソフト、語学(英語、中国語)、マラソン、旅行、ときどき小言。

【はじめに】
最近のロボット屋さんのトレンドとして,ROSが挙げられます.
私もとても強い興味を持っていたのですが,なかなか腰を据えて勉強できていませんでした.
そんなときに発売された,「ROSではじめる ロボットプログラミング」の本!キタコレ!

ということで,読破しました.素晴らしい書籍です.かなり丁寧に解説されているので,よどみなく読破できました.
で,この本で学んだことをベースにPS3コントローラでRoombaを制御しました.

Roombaの制御のところはちょっと忘れちゃいそうなのでメモを残しておこうと,そういうことです.
参考にさせていただいたのは,下記のサイトです.感謝です.
roombaをROSのコマンドで動かしてみる
RoombaのROSドライバをソースからビルドして使ってみる

【Roombaドライバのインストール】
○ダウンロード
次のサイトからドライバをダウンロードします.
http://arkapravo.github.io/roomba_500_ROS_drivers/

○格納
次のフォルダに展開します
~/catkin_ws/src/roomba_500_ROS_drivers

○インストール
ダウンロードで参照したサイトに従ってインストールします.
$ rosmake cereal_port
$ rosmake roomba_500_series

【動作】
○接続確認
PCとルンバをシリアルケーブルで接続します.
上記サイトに従ってUSBシリアル通信を確認します.
dmsg | grep tty
もし繋がっていなければ,下記コマンドでアクセス権を取得する.
sudo chmod a+rw /dev/ttyUSB0

○ノード起動
当方には roomba521 があるので,下記コマンドを実行する.
$ rosrun roomba_500_series roomba500_light_node

○速度指令トピックに指令値をパブリッシュ
roomba500_light_nodeの速度指令トピック名:cmd_vel
同じく型:geometry_msgs/Twist
$ rostopic pub -1 cmd_vel geometry_msgs/Twist '[0, 0, 0]' '[0, 0, 0.1]' && rostopic pub -1 cmd_vel geometry_msgs/Twist '[0, 0, 0]' '[0, 0, 0]'
これで旋回するはずです.

【おわりに】
あとは,好きなノードでcmd_velにパブリッシュしてしまえばよいわけです.
私はとりあえずPS3無線コントローラで動かして遊んでみました.
https://youtu.be/JM5vpHZsusA

次は画像処理ライブラリ作成だな.