構成要素

無題の画像.png

Master:

マスターはノードやトピック等の名前を管理しており、ノード間通信を始める前にノードがどのトピックに繋がっているかを解決する手段を提供する。

接続先・接続元のノードが見つかった後、両ノードは1対1で通信を行う。masterは他のノードより先に起動している必要がある。また同じシステムの中に複数のmasterは存在しては行けない。

マスターが起動するとパラメーターサーバーと/rosoutノード・トピックも自動で立ち上がる。ノードが出力するログ等は、この/rosoutを通してターミナルに表示されれる。

Node:

Linuxのプロセスに相当し、ノード毎の独立したメモリ空間内でプログラムが動作する。ノードにはROS独自のノード間通信手段(メッセージ、サービス、パラメーターサーバー)が用意されている。ノード生成時、各ノードには通信時の識別のた

めに固有の名前を付ける必要がある。

Parameter server:

パラメーター名によって特定出来る値を記録している一種のデータベース。パラメーターサーバーはマスターの中で動作している。

Topic:

ノード間をつなぐデータバスのような働きをする。送信側ノードがメッセージをトピックへ発行し、そのメッセージの受信待ちをしている受信側ノードがトピックからメッセージを取り込む。

Message:

トピックへ情報を流すための情報の塊。標準的なメッセージはROSで定義されている。ユーザー固有のメッセージを定義することもできる。 メッセージを使った通信の実態は1体1の通信だが論理的には1対多ノードの通信になる。1つのノードが送信したメッセージは複数のノードで受信できる。 ただし、送信側ノードがメッセージを送信した後、受信側ノードからの受信確認が無い非同期通信になる。

Service:

サービスはROSが持つノード間の通信手段の一つ。メッセージと異なり1対1ノードの通信で、送信側ノードからリクエストを送信した後に受信側ノードからのレスポンスの受信を送信側ノードが待つ同期通信。