ROS Graph Concepts: Nodes | Topics | Services | Messages | Bags | Master | Parameter Server
Contents
概要
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を提供します。それは、roscpp や rospyなどのようなROSのクライアントライブラリが情報を蓄えたり引き出したりするのに呼び出すAPIです。より詳しいAPI群のリストについては、Master API のページをご参照ください。ほとんどのROSのユーザは直接これらのAPIをいじる必要がありません。
Master Name サービスの例
例えば、二つのnodesがあるとしましょう。カメラのnodeとImage_Viewerのnodesだとします。イベントの典型的な流れは、おそらく"images"という名前のtopicに画像データを送りたいCameraがmasterを見つけることから始めるでしょう。
さて、Cameraのnodeは、"images"という名前のtopicに画像データをパブリッシュしますが、どの他のnodeもまだそのtopicからサブスクライブをしないので、何のデータも送られていません。今、Imager_viewerというnodeは"images"という名前のtopicから画像のデータが来てないかを見るために、サブスクライブしようとします。
今は、もう、"images"topicはパブリッシャもサブスクライバも持つため、masterのnodeは、画像データをお互いに送信できるように、それぞれのnode(CameraのnodeとImage_viewerのnode)に対して、お互いの存在を伝えます。
実行
ROSの1.1の中では、ROSのMasterの実行は、rosmaster パッケージで提供されます。これら以前のバージョンでは、rospyのパッケージの一部にMasterは入っていました。