
・ROSの参考書には種類がいくつかあってどれが良いのかわからない。
・今使っている環境にあったROSの参考書を知りたい。
こんにちは、CenotenBlogです。
この記事では、上記の悩みにお答えします。
・プログラミングROS
・ROSではじめるロボットプログラミング
・ROSロボットプログラミングバイブル
・実用ロボット開発のためのROSプログラミング
この記事を読むとあなたの環境にあったROSの参考書がわかります。またこれからROSの開発を行いたい方向けにおすすめの参考書を紹介します。
この記事を書いている僕は、大学で機械工学を専攻し、国立研究機関にてロボットに関する研究を行っています。僕は上記4つのROSの参考書を全て読み、ロボット開発を行いました。
※ROSの本を購入する際の注意点
ROSのバージョンと使用言語を確かめましょう。ROSのバージョンによるエラーや、書かれている言語が違うためソースコードの再利用ができないなどの問題を防ぐ目的があります。
この記事ではROSのバージョンと使用言語を明記してあります。記事を通して自分の環境にあった参考書が見つかります。
プログラミングROS
まずROSの参考書といえば有名なのがこちらです。
このプログラミングROSという本は僕の1番のおすすめでもあります。
元々は海外の書籍ですが、日本語に翻訳されているものも簡単に手に入ります。
翻訳本などでは、文の意味がわかりにくいことが頻繁にあります。
しかし、英語で書かれている原本と日本語訳されたもの両方を読み比べましたが、日本語バージョンで全く問題ないです。
ROSのバージョンはIndigoです。開発言語はPythonで書かれています。
今後Pythonを使ってROS上で開発を進めていく人は手元にあると必ず役に立ちます。
おすすめの理由として、自作のロボットをROSのシミュレーション上で動かせるところや、ロボットのSLAM技術(自己位置推定と環境地図作成の同時実行)を簡単に試すことができます。
ソースコードもかなりの量が記載されています。Pythonで実装する際にソースコードを改良しながら開発を進めることができるので、開発スピードも格段に早くなります。
ただし内容が難しいところもあるため、Pythonでの開発自体が初めての方やLinuxなどのコマンド操作に慣れていない方は、次におすすめする本が手元にあると安心です。
ROSではじめるロボットプログラミング
僕がROSでの開発で2番目に重宝した参考書です。
ROSではじめるロボットプログラミングでは内容がかなり簡単に書かれており、ロボットの開発などが初めての方に特におすすめです。
ROSのバージョンはこちらもIndigoで使用言語はPythonです。
こちらに書かれているソースコードは比較的簡単でPython初学習者でも理解ができるほどです。
しかしあまり実践的ではないので、より高度な実装を試したい方は別でコードを探す必要があります。
また画像認識を行う章などが用意されています。実際に信号を真似たシステムでロボットを動かしたり止めたりなど行えます。
ROSを使ってシミュレーション上のロボットで遊んでみたい方や、プログラミングに自信のない方におすすめです。
ROSロボットプログラミングバイブル
こちらのROSロボットプログラミングバイブルはROSの解説本では珍しいC++が使用言語です。
ROSのバージョンはKineticです。
大型のシステムとなるとC++での開発が必要になることが多いです。今後C++での開発を視野に入れている方におすすめの本です。
この本の大きな特徴として、ROSに使われている様々な用語の説明がとても詳しく書かれています。僕はこの本をROSの用語辞書として、わからない用語の意味などの理解に使用していました。
実用ロボット開発のためのROSプログラミング
実用ロボット開発のためのROSプログラミングで使用されているROSのバージョンはKinectです。pythonとC++のコードが用意されています。
本書の内容は読みやすくソースコードの難易度も高くはないです。
丁寧な説明と簡単な実装が特徴です。
個人的にはもう少し具体例などで手と頭を動かせたらいいなと感じました。
しかしROSの全体像を把握するにはちょうど良く、ROSの周辺ライブラリーの説明などが豊富です。
最後に
以上が僕がおすすめするROSの参考書の紹介です。
ROSのバージョンと使用言語を確かめた上で自分にあった参考書を使用することをおすすめします。
優先順位として、ROSのバージョンはある程度の互換性があるため、使用言語を第一に考えることが大切です。結果として参考書選びが楽になります。
ROSで使用する言語については下記の記事を参考にどうぞ。
・ロボット開発を始めるためプログラミングを勉強したい。・ROSを始める際、PythonかC++のどちらがいいかわからない。 こんにちは、るい(@CenotenBlog)です。 本記事は上記のような悩みを解決できる様に書かれていま[…]
↓以下に今回紹介した書籍のリンクをはっておきます↓