Main Content

ROS ネットワークの設定

はじめに

ROS ネットワークを設定すると、各種デバイスとの間で通信できるようになります。これらの構成要素 ("ノード") は、すべて ROS マスターに登録して情報を共有します。各 ROS ネットワークには、一意のマスターが 1 つだけあります。各ノードは個別のデバイスであることが一般的ですが、1 つのデバイスで複数のノードを実行できます。MATLAB® は、既存の ROS ネットワークで通信する場合、これらのノードの 1 つとして機能します。

ROS 接続が機能するには、すべてのデバイスが同じ物理ネットワークまたはバーチャル ネットワークに接続している必要があります。MATLAB で新しい ROS マスターを作成することも、別のデバイスで実行中の既存の ROS マスターに接続することもできます。既存のマスターに接続する場合、デバイスの IP アドレスまたはホスト名が判明している必要があります。ROS マスターの初期接続は、rosinit を呼び出して作成します。ROS ネットワークの設定と使用の詳細については、ネットワーク接続と調査を参照してください。

ノードはパブリッシャー、サブスクライバー、サービスと呼ばれるエンティティを使用してメッセージを送信することにより、通信を行います。パブリッシャーはトピック名を使用してデータを送信し、サブスクライバーはそのデータをネットワーク経由で受信します。サービスはクライアントを使用してサーバーに情報を要求します。メッセージ送信の詳細については、パブリッシャーとサブスクライバーを参照してください。

ネットワーク接続のレイアウト

ROS ネットワークは、ROS マスターに接続しているすべてのノードの集合です。アプリケーションやデバイスによっては、ノードの数が非常に多くなる場合があります。マスターに登録されているノードは、登録されている他のすべてのノードと通信できます。各ノードには ROS マスターの異なるパブリッシャー、サブスクライバー、サービスが登録され、ノード間で情報を送受信します。ROS ネットワークのすべてのノードはマスターに登録されていますが、データはノード間で直接送受信されます。以下の図は、2 つの ROS ノードがある ROS ネットワークのレイアウトを示しています。ネットワーク全体でデータを共有するには、すべてのノードに双方向接続がなければなりません。設定中にこれらの接続を確認することが重要です。

ROS master and node connection network. Node 1 and node 2 are registered with the ROS master and data is exchanged mutually between the two nodes.

各ノードは、各自の "ノード URI" をマスターに登録します。ROS ネットワークの他の構成要素はこの URI を使用してそのノードと通信します。ここでも、この URI は ROS ネットワークの他のすべてのノードから到達可能でなければなりません。MATLAB でノードを作成するには、rosinit を呼び出します。ROS マスターが既に設定されている場合、MATLAB は ROS マスターを検出して、適切なノード URI を設定します。それ以外の場合、ROS マスターとノードが作成され、接続されます。

既定では、各 MATLAB インスタンスに 1 つの "グローバル" ノードがあります。このノードには、一意になるようにランダムに生成された名前が割り当てられます。パブリッシャー、サブスクライバー、サービス クライアント、サービス サーバーはすべてこのグローバル ノード上で動作します。

参考

| |

関連するトピック