構成要素
Master:
マスターはノードやトピック等の名前を管理しており、ノード間通信を始める前にノードがどのトピックに繋がっているかを解決する手段を提供する。
接続先・接続元のノードが見つかった後、両ノードは1対1で通信を行う。masterは他のノードより先に起動している必要がある。また同じシステムの中に複数のmasterは存在しては行けない。
マスターが起動するとパラメーターサーバーと/rosoutノード・トピックも自動で立ち上がる。ノードが出力するログ等は、この/rosoutを通してターミナルに表示されれる。
Node:
Linuxのプロセスに相当し、ノード毎の独立したメモリ空間内でプログラムが動作する。ノードにはROS独自のノード間通信手段(メッセージ、サービス、パラメーターサーバー)が用意されている。ノード生成時、各ノードには通信時の識別のた
めに固有の名前を付ける必要がある。
Parameter server:
パラメーター名によって特定出来る値を記録している一種のデータベース。パラメーターサーバーはマスターの中で動作している。
Topic:
ノード間をつなぐデータバスのような働きをする。送信側ノードがメッセージをトピックへ発行し、そのメッセージの受信待ちをしている受信側ノードがトピックからメッセージを取り込む。
Message:
トピックへ情報を流すための情報の塊。標準的なメッセージはROSで定義されている。ユーザー固有のメッセージを定義することもできる。 メッセージを使った通信の実態は1体1の通信だが論理的には1対多ノードの通信になる。1つのノードが送信したメッセージは複数のノードで受信できる。 ただし、送信側ノードがメッセージを送信した後、受信側ノードからの受信確認が無い非同期通信になる。
Service:
サービスはROSが持つノード間の通信手段の一つ。メッセージと異なり1対1ノードの通信で、送信側ノードからリクエストを送信した後に受信側ノードからのレスポンスの受信を送信側ノードが待つ同期通信。