概要

ROSのMasterは、ROSの他の残りのnodeに対して、名前付けとサービスの登録を行います。Masterは、servicesと同じように、topicsに対して、パブリッシュするものや、サブスクライブするものをすべて監視しています。Masterの役割は、ROSのそれぞれ別々のnodeが、お互いの場所がわかるようにすることにあります。一旦、これらのnodesがお互いの場所を知ると、それらはその後お互いに直接通信をしあいます。

MasterはParameter Serverも提供します。

Masterは、もっとも一般的には、roscoreを使って起動します。roscoreは、必要不可欠なコンポーネントとともにROSのMasterをロードするコマンドです。

XMLRPC API

上級者向け

ROSのMasterは、XMLRPC-based APIを提供します。それは、roscpprospyなどのようなROSのクライアントライブラリが情報を蓄えたり引き出したりするのに呼び出すAPIです。より詳しいAPI群のリストについては、Master API のページをご参照ください。ほとんどのROSのユーザは直接これらのAPIをいじる必要がありません。

Master Name サービスの例

例えば、二つのnodesがあるとしましょう。カメラのnodeとImage_Viewerのnodesだとします。イベントの典型的な流れは、おそらく"images"という名前のtopicに画像データを送りたいCameraがmasterを見つけることから始めるでしょう。

ROS_master_example_english_1.png DIA version

さて、Cameraのnodeは、"images"という名前のtopicに画像データをパブリッシュしますが、どの他のnodeもまだそのtopicからサブスクライブをしないので、何のデータも送られていません。今、Imager_viewerというnodeは"images"という名前のtopicから画像のデータが来てないかを見るために、サブスクライブしようとします。

ROS_master_example_english_2.png DIA version

今は、もう、"images"topicはパブリッシャもサブスクライバも持つため、masterのnodeは、画像データをお互いに送信できるように、それぞれのnode(CameraのnodeとImage_viewerのnode)に対して、お互いの存在を伝えます。

ROS_master_example_english_3.png DIA version

実行

ROSの1.1の中では、ROSのMasterの実行は、rosmaster パッケージで提供されます。これら以前のバージョンでは、rospyのパッケージの一部にMasterは入っていました。

Wiki: ja/Master (last edited 2013-01-28 01:02:39 by Yuto Inagaki)