ノード間通信
出典: フリー百科事典『ウィキペディア(Wikipedia)』 (2021/01/10 22:02 UTC 版)
「Robot Operating System」の記事における「ノード間通信」の解説
ROSはノード間の通信方法として、単方向非同期通信方式の「トピック」、双方向同期通信方式の「サービス」、双方向非同期通信方式の「アクション」の3種の方式を備える。ROSの配信-購読型のメッセージ通信基盤は、ほぼ完全に独自開発されたものである。 トピック ROSのトピック通信は、メッセージパッシングの一種である。メッセージを送る側をROSではパブリッシャ(publisher; 配信者の意)、受けとる側をサブスクライバ(Subscriber; 購読者の意)と呼ぶ。パブリッシャはノードの起動時に配信に必要な情報をマスタに登録する。サブスクライバもノード起動時に、自己の情報と購読したいメッセージをマスタに登録する。マスタはサブスクライバにパブリッシャのアドレスを渡すことで、サブスクライバはパブリッシャに接続しメッセージを受信する。トピック通信は、接続確立後に連続的にメッセージが送受信されるため、高頻度のデータ通信が必要なセンサ信号の送受信などに利用される。 サービス サービス通信は、要求を受けた時に応答するサービスサーバと、サービスサーバに要求を出すサービスクライアントとの間で行われる。サービス通信はクライアントがサービス要求を送信した時点から開始され、サーバからサービス応答を受信した時点で終了し、ノード間の接続が切れる。サービスは、要求と応答が終われば両ノードの通信が切断されるため、ネットワークの負荷が小さい。ロボットにある決まった動作の指示を出すときや、ある条件下で起こるイベントを発生させたい場合などにサービス通信が利用される。 アクション サービス通信では、サーバからの応答が返ってくるまでプロセスがロックされてしまう。したがって、要求から応答まで長い時間を要する処理のための通信手段として、アクション通信が実装されている。アクションもサーバクライアント方式として実装され、要求を出すノードがクライアント、要求を実行し応答を返すノードがサーバとなる。アクションクライアントが要求の終了条件 (Goal) をサーバに送信すると、サーバは処理を開始し、途中経過であるフィードバック (Feelback) と Goalに対する結果 (Result) を送信する。また、クライアントは要求の取り消し (Cancel) をサーバに送信することもできる。アクション通信は、サービス通信のような双方向通信方式であるが、非同期通信であり実行方式はトピック通信に近い。アクション通信が適した例として、移動ロボットに遠くの地点まで走行する命令を実行する場合が挙げられる。
※この「ノード間通信」の解説は、「Robot Operating System」の解説の一部です。
「ノード間通信」を含む「Robot Operating System」の記事については、「Robot Operating System」の概要を参照ください。
- ノード間通信のページへのリンク