3章トピック
前の章で見てきたように、ROSのシステムは、たくさんの独立したノードからできていて、それらが1つのグラフを構成しています。これらのノードは、通常、それぞれ単体ではそれほど役には立ちませんが、ノード同士が相互に通信し、情報やデータの交換をして初めて役に立つものになります。このようなノード間での通信を行う最も一般的な方法がトピックです。トピックは、ある定義された型を持つメッセージストリームの名前です。例えば、レーザーレンジファインダーからのデータは、LaserScan
型のメッセージとしてscan
という名前のトピックに送られたり、カメラからのデータは、Image
型のメッセージとしてimage
という名前のトピックに送られたりします。
トピックは、分散システムにおけるデータ交換でよく使われる配信/購読(publish/subscribe)型の通信メカニズムを実装しています。トピックを介してデータを送る前に、ノードは、まず、トピックの名前とこれから送るメッセージの型をアナウンス、すなわち公開(advertise)しなくてはなりません。その後、ノードはトピックに実際のデータを付けて送信、すなわち配信(publish)を始めることができるのです。あるトピックのメッセージを受け取りたいノードは、roscore
に要求することでそのトピックを購読(subscribe)することができます。購読すると、そのトピックに配信されるすべてのメッセージがノードに届けられるようになります。ROSを利用する主な利点の1つは、ノードがトピックの公開や購読を行う際に必要な接続に関する煩雑な手続きすべてを下位の通信メカニズムで処理してくれることで、皆さんはこれらの実装方法について何も心配する必要はありません。 ...
Get プログラミングROS ―Pythonによるロボットアプリケーション開発 now with the O’Reilly learning platform.
O’Reilly members experience books, live events, courses curated by job role, and more from O’Reilly and nearly 200 top publishers.