ROS2トピック(ろすにーとぴっく)
最終更新:2026/4/27
ROS2トピックは、ROS2システムにおいてノード間でデータを送受信するためのメカニズムであり、名前付きのメッセージバスとして機能する。
ポイント
ROS2トピックは、パブリッシャとサブスクライバのモデルに基づいて通信を行い、データの非同期的なやり取りを可能にする。データの型は厳密に定義される。
ROS2トピックの概要
ROS2(Robot Operating System 2)におけるトピックは、ノード間の通信を可能にする基本的な概念です。トピックは、名前付きのメッセージバスとして機能し、ノードはトピックを介してデータをパブリッシュ(送信)またはサブスクライブ(受信)します。
パブリッシャとサブスクライバ
ROS2トピックの通信は、パブリッシャとサブスクライバのモデルに基づいています。パブリッシャは、特定のトピックにメッセージを送信するノードであり、サブスクライバは、特定のトピックからメッセージを受信するノードです。複数のパブリッシャとサブスクライバが同じトピックに接続できます。
メッセージ型
ROS2トピックで送受信されるデータは、メッセージ型によって定義されます。メッセージ型は、データの構造と型を定義し、ノード間の互換性を確保します。ROS2は、標準的なメッセージ型を多数提供しており、ユーザーはカスタムメッセージ型を定義することもできます。
QoS(Quality of Service)
ROS2トピックは、QoS(Quality of Service)設定を使用して、通信の信頼性、耐久性、履歴などを制御できます。QoS設定は、アプリケーションの要件に応じて調整できます。
トピックのリスト表示と情報取得
ROS2 CLIツールを使用すると、システム内のトピックのリストを表示したり、トピックに関する情報を取得したりできます。ros2 topic listコマンドでトピックのリストを表示し、ros2 topic info <トピック名>コマンドでトピックに関する詳細情報を取得できます。
トピックの利用例
ROS2トピックは、センサーデータ、制御コマンド、状態情報など、さまざまな種類のデータを送受信するために使用されます。例えば、カメラからの画像データをトピックを介して処理ノードに送信したり、制御ノードからモーターへの制御コマンドをトピックを介して送信したりできます。