概要
ROSはロボット製作のための便利なツールです。以下に書くようにROSは広い範囲をカバーしています。ROSの利点はruntimeの物が重視しがちですが、install、build、runtimeのそれぞれでメリットがあります。
install
- インストールが簡単
aptリポジトリの形で公開されていて多少のコマンドだけでインストールを完了できます。 - ロボットプログラムに必要なライブラリ一式の一緒にバージョン管理されている。
OpenCVやEigen等のロボットプログラムに必要なライブラリも一緒にインストールすることができます。わざわざ個別に苦労してインストールする必要はありません。またrosのバージョンによってこれらのライブラリのバージョンも対応しているので、個別のライブラリのバージョンを気にする必要はありません。 - packageという単位でプログラムが分割されている
プログラムがpackageという単位で区切られているので、ユーザーがgithubで公開たり、リポジトリとしてアップロードしているものを簡単に取り込めます。またすべてのパッケージがではないですがaptでインストールできるので、すぐにプログラムを試すことが出来ます。
build
- catkin
Cmakeベースのビルドシステムであるcatkinを持っています。OpenCVなどの外部のライブラリとのリンクもこれが一手に担っています。依存関係などもcatkinが一手に引き受けます。
runtime
- pub、sub通信
ros_commがあるので、プログラムをプロセスで分離した疎結合にできます。 - ロボット用の可視化ツールが豊富
rostopic通信はコマンドラインで盗み見ることが簡単にできます。rosbagというログツールもあります。
難しい3D可視化専用のrvizや、汎用GUI表示用のrqtというように既にロボット専用のツールがそろっています。自分でpluginsを書いて追加することもできます。 - シミュレーションはgazebo、
- roslaunchという起動スクリプトがある
roslaunchを使うと簡単に複雑な起動オプションを記述して、起動することができます。またroslaunchの機能によって、ロボットの各プログラムを汎用的に書くことができます。