一般概念¶

非常に高いレベルの視点からROSシステムを見てみましょう。 以下のどれかがどのように機能するか心配する必要はありません。 そのため、「このセンサー データを 127.0.0.1 のコンピュータに送信してください」と具体的に指示する必要はなく、ノード 1 に対して、ノード 2 にメッセージを送信するように指示するだけです。

Robot にカメラが搭載されているとします。 この例では、カメラとの通信を行うカメラ ノード、画像データを処理するロボット上の画像処理ノード、画像をスクリーンに表示する画像表示ノードがあります。 マスターは、すべてのノードがメッセージを送信する場所を正確に見つけるために行くルックアップ テーブルだと考えてください。他のノードの両方は、/image_data というトピックを購読していることを登録します。

したがって、カメラ ノードがカメラからいくつかのデータを受信すると、/image_data メッセージを他の 2 つのノードに直接送信します。 (本質的には TCP/IP を通じて)

さて、画像処理ノードが特定の時間にカメラ ノードからデータを要求したい場合はどうしたらよいかとお考えでしょう。 これを行うために、ROSはサービスを実装しています。

ノードは、メッセージを登録するのと同様に、ROSマスターに特定のサービスを登録できます。以下の例では、画像処理ノードが最初に/image_dataを要求し、カメラノードがカメラからのデータを収集し、応答を送信します