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