記事検索

検索ワードを入力してください。
Sky Tech Blog
ROS2の​ノード間通信

ROS2の​ノード間通信

このテキストは、ROS2(Robot Operating System 2)の構成要素と、特に重要な「plumbing(通信)」の中でも使用頻度が高い「トピック通信」についての説明をしています。トピック通信の仕組みやメリット、実機とシミュレータの切り替えについても触れています。

はじめに

ROS2(Robot Operating System 2)には、大きく下記の構成要素があります。

  • plumbing(通信)
  • tools(ツール群)
  • capabilities(機能群)
  • ecosystem(エコシステム)

今回は、この中で重要な「plumbing(通信)」の中でも、
特に使用頻度が高い「トピック通信」についてご説明します。

plumbing​(通信)​ の​概要

ロボットは、数多くのモータやセンサ、アクチュエータなどから構成されており、
それぞれが連携しながら、個別に制御を行う必要があります。

ROS2では、上記を実現するため、それぞれの各センサなどを制御する機能などを 「ノード」と呼ばれる基本的なオブジェクトとし、ノード同士が通信することで 連携する構成となっております。

そのため、ROS2では、「plumbing(通信)」は非常に重要な要素となっており、 Operating System とされていますが、主な部分は、このplumbing(通信)の ミドルウェアが占めています。

トピック通信

トピック通信は、Publisher/Subscriberモデルの通信方式となっています。 Publisher/Subscriberモデルの通信方式は、新聞・雑誌などの出版社と購読者の関係に似ています。

  • あらかじめ、データを受け取りたい側のノードは、 配信データを示す一意のTopicのSubscriberとして登録しておきます。
    (新聞・雑誌を定期購読する申し込みをするイメージ)

  • データの発行元であるPublisherがTopicにデータを発行します。 (新聞・雑誌を出版社が発行するイメージ)

  • Topicに登録していたSubscriberに、データが更新されたことが通知される。
    (新聞・雑誌を出版社が発行するイメージ)

PublisherがTopicにデータを発行することで、Subscriberである各ノードに トリガーがかかるため、データを受け取ったタイミングで制御を実行することも可能です。 (イベントドリブン)

トピック通信の​メリット

  • ノード間がTopicを介して結合しているため、お互いに依存性が低く、システムの変更・拡張が容易。
    ⇒ 同じデータを使用するノードが増えても、そのノードが Subscriber として増えるだけで、既存のノードの通信に影響がない。
    ⇒ センサの変更など、Publisherとなるノードを変更するだけで、Subscriberは変更後の情報を受け取ることができる。

※ 実際のセンサ・アクチュエータの制御を行うノードをPC上のシミュレータで模擬するノードを作成し、置き換えれば、実機 ⇔ シミュレータを容易に切り替えて、動作確認・検証なども可能です。

Sky株式会社でも、下記のようにROS2で制御を行うロボットを Unityによって作成した3Dの仮想環境のシミュレータで動作させる取り組みも行っております。


XFacebookLINE
キャリア採用募集中!

入社後にスキルアップを目指す若手の方も、ご自身の経験を幅広いフィールドで生かしたいベテランの方も、お一人おひとりの経験に応じたキャリア採用を行っています。

Sky株式会社のソフトウェア開発や製品、採用に関するお問い合わせについては、下記のリンクをご確認ください。
お問い合わせ
ホーム