ROS解説本3冊の書評と、開発スタイルに合わせたおすすめの入門書紹介

概要

ROSの解説本として日本語で販売されている書籍として、「ROSではじめるロボットプログラミング」、「ROSロボットプログラミングバイブル」「プログラミングROS」の3冊がある。
どれも非常によくまとまっているが、それぞれ個性があるので、各書籍の感想を記載し、開発(学習)スタイルに合わせたおすすめの本を記載する。

ROSではじめるロボットプログラミング

3冊の中では一番初心者向けの本。ROSのバージョンはIndigo。
基本的な開発言語はPythonであり、気軽に試してみたいという場合には、この本がおすすめ。(後半にはC++を使ったプログラムの書き方も多少出てくる)
ただし、自己位置推定や自律走行部分はライブラリをそのまま使うだけで終わってしまうので、これを読んですぐにガンガン開発できる!という感じではない。

こんな人におすすめ

学部生の方
気軽にROSが何かを知りたい方
PythonもC++も、両方知りたいという方
 

ROSロボットプログラミングバイブル

ROSロボットプログラミングバイブル

ROSロボットプログラミングバイブル

2018/03に出版された、3冊の中で最も新しい本。新しい本だけあってROSのバージョンは3冊の中で唯一、2016年版であるKineticとなる。
開発言語がC++で統一されており、C++で学びたい方にはこの本が最適。
また、ROSの各種ツールについての説明がかなり豊富であり、ROSの機能を最大限に活用して開発を行いたい。ROSシステムの隅々まで知りたい。という方にはおすすめ。
自己位置推定等のパッケージの紹介でも、すべてのパラメータにコメントが付いており、説明が親切で読みやすい。

こんな人におすすめ

C++でROSを勉強したいと思っている方
Ubuntu16.06 Kineticの解説書が欲しいと思っている方
ROSに内包されるツールについて詳しく知りたい方

プログラミングROS

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

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

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

海外の書籍の翻訳本。ROSのバージョンはIndigo。
開発言語はPython。巡回ロボット、アームロボット、チェスロボット等、様々なタスクをこなすロボットのサンプルプログラムをこれでもかと詰め込んでおり、個人的には一番おすすめ。
ソースを一つずつ追って中身を理解するのもよし、実装したいタスクに近いソースコードを取ってきて改造するもよし、様々な使い方ができる。
日本語訳版のおまけとして、Pepperの制御方法等も記載されており、少し面白かった。(使うことは一生ないと思うが・・・)
唯一の難点は少し翻訳が硬く、読みにくい部分がある点。

こんな人におすすめ

Pythonを使ってROSを勉強したい人
サンプルコードをいっぱい読みたい人

まとめ

概要を知りたいならば「ROSではじめるロボットプログラミング」がおすすめ。詳細を知りたいという方は、C++で勉強したいならば「ROSロボットプログラミングバイブル」、Pythonでサンプルコードをたくさん読みたいならば「プログラミングROS」を選択すると良い。
記載されている事項に重複が多いため、3冊すべて買って読むと少しがっかりするかも。
ROSは奥が深いため、どれかの本で概要を勉強したら、今度はROS wikiを辿って自分で情報を収集することが大切。特にtf(座標変換)に関する記述がどの本も弱いため、実際にプログラミングを行う際は、ネット等の情報を参考にしながら勉強する必要がある。

また、ROSの使い方のみを学習しても、ロボットの実装の深い部分には触れない。やはり、以下のような本を通じてロボットの自己位置推定や自律走行のアルゴリズム自体の学習が必須だと思う。

確率ロボティクス (プレミアムブックス版)

確率ロボティクス (プレミアムブックス版)

SLAM入門: ロボットの自己位置推定と地図構築の技術

SLAM入門: ロボットの自己位置推定と地図構築の技術