「実用ロボット開発のためのROSプログラミング」を読みながらROSに関して知識を整理

f:id:karaage:20181023005702j:plain:w640

実用ロボット開発のためのROSプログラミング

 ROS(Robot Operating System)というロボットのソフトウェアの開発環境(ミドルウェア)の本を買いました。

実用ロボット開発のためのROSプログラミング

実用ロボット開発のためのROSプログラミング

  • 作者: 西田健,森田賢,岡田浩之,原祥尭,山崎公俊,田向権,垣内洋平,大川一也,齋藤功,田中良道,有田裕太,石田裕太郎
  • 出版社/メーカー: 森北出版
  • 発売日: 2018/10/13
  • メディア: 単行本
  • この商品を含むブログを見る

 結構高かったのですが、ROSに興味があったのと、執筆者も豪華だったので買ってみることにしました。内容的には、知っていることが大半だったのですが、体系的にまとめられていて、あらためて知識の整理が出来たり、なかなか自分では気づけないTipsの発見だったりがあったので良かったので、過去の自分のROSに関して試したことを振り返りながらまとめてみようと思います。

 また、この本のレビューに関しては、いつもお世話になっているMyEnigmaのAtsushi (id:meison_amsl)さんの記事も参考になりますので紹介しておきます。

ROSが使用されているロボットの例

 色々なロボットにROSが使われています。本に記載あるもの+αを並べて見ます。

HSR(Toyota)

 トヨタさんのつくっているロボットですね。CEATECという展示会でPFNさんがお片づけロボットをHSRでデモしたのが話題になりました。はっきりいってお片づけロボットのデモはめちゃくちゃレベル高いです。ROSが使えたからといってすぐこれができるワケでは当然ないです(というよりROSが使えるのが前提条件ですね)。さすがPFNさん…

aibo(Sony)

 Sonyの新型aiboも実はROSで動いているらしいですね。Sonyの開発者が公開している以下の資料が参考になります。

aibo ERS-1000 Interaction Development

aiboにおけるROSの利用とソニーの取り組み

Sawyer・Baxter (Rethink Robotics)

 ロボット界の権威であり、ルンバの生みの親ロドニー・ブルックス氏が創業したRethink Robotics社のロボットもROSに対応しています。Rethink社は、最近惜しまれつつも廃業してしまったことで話題になりました。

 渋谷の「変なカフェ」でコーヒー淹れているのもRethink社のSawyerというロボットです。詳細は以下記事参照下さい。

Pepper(Softbank)

 Pepperも実はROSで動くらしいです。ただ、Pepperに関しては、基本アルデバラン社が開発した独自のOSで動いているので、ROSはあくまでオプション的な扱いと思います(多分、間違っていたらすみません)。

NEXTAGE OPEN(川田工業)

 大きい人型ロボットですね。多分めちゃくちゃ高いです。

ルンバ(iRobot社)

 ルンバも実はROSを使って動かせたりします。以下みたいな感じでシリアルコネクタ経由でハックできます。

ROSセットアップ

 基本は公式サイトの通りでOKなのですが、なかなかLinuxマシンを用意するのもハードル高いと思うので、仮想環境を使うのが良いかもしれませんね。MacだとParallels Desktop Liteあたりが良いかなと思います。

ROS構成要素

OpenCV

 ROSでは「vision_opencv」というメタパッケージ(複数のパッケージのまとまり)を提供しています。「cv_bridge」というデータ形式変換ライブラリと「image_geometry」という3次元<->2次元変換ライブラリでROSとOpenCVを繋いでいるとのことです。あんまり分かって無かったです(笑)

 OpenCVの基本的なところに関しては、以下記事参照下さい。

PCL

 3次元点群ライブラリです。「perception_pcl」というメタパッケージでPCLとROSを繋いでいるそうです。

 PCLに関しては、ブログ記事でも何度か取り上げているので紹介します。Kinectが生産中止となり、手軽に安価に入手できる3次元センサがなかなか無いのがつらいところですね。

SLAM

 SLAMはちょっと試しただけですね。

ロボット軌道生成

 以下のようなロボットアームを制御できるパッケージがあります。

  • Move IT!
  • OpenRAVE

 これも、家庭用で手軽に使えるロボットアームがあると良いのですが、現状だと100万を超すようなものばかりなので、ちょっと個人で買うのは難しいですね…

その他・TIPS

USBカメラ等

 以前USBカメラは以下試しました。

 ラズパイでラズパイカメラ使う方法もあります

ROS-非ROSのシステム統合

 以下のソケット通信のプログラムを使えるとのことです(まだ試せてないです)

github.com

TIPS

  • ノード起動時 anonymous=Trueとつけるとノード名に重複ないように文字が追加される。

  • 本の中で紹介されているソフトは、以下のリポジトリに格納されています。

まとめ

 「実用ロボット開発のためのROSプログラミング」を読みながらROSの知識を整理してみました。意外に色々試していることに気づきました。そのうち大型ロボットでも作りたいものですが、なかなか置く場所とかお金とか難しいですね。本の内容としては、基本は抑えられていますし、なかなか独学だと気づかないようなポイントもあったりして買って良かったかなと思っています。

実用ロボット開発のためのROSプログラミング

実用ロボット開発のためのROSプログラミング

  • 作者: 西田健,森田賢,岡田浩之,原祥尭,山崎公俊,田向権,垣内洋平,大川一也,齋藤功,田中良道,有田裕太,石田裕太郎
  • 出版社/メーカー: 森北出版
  • 発売日: 2018/10/13
  • メディア: 単行本
  • この商品を含むブログを見る

 その他の読んだことのあるROSに関するおすすめ本としては、以下あたりでしょうか。上から順にオススメです。

Raspberry Piで学ぶ ROSロボット入門

Raspberry Piで学ぶ ROSロボット入門

プログラミングROS ―Pythonによるロボットアプリケーション開発 (オライリー・ジャパン)

プログラミングROS ―Pythonによるロボットアプリケーション開発 (オライリー・ジャパン)

  • 作者: Morgan Quigley,Brian Gerkey,William D. Smart,河田卓志,松田晃一,福地正樹,由谷哲夫
  • 出版社/メーカー: オライリージャパン
  • 発売日: 2017/12/13
  • メディア: 単行本(ソフトカバー)
  • この商品を含むブログ (2件) を見る

関連記事