SPONSORED

ROS2サービス(ろすにさーびす)

最終更新:2026/4/27

ROS2サービスは、リクエストとレスポンスを介した双方向通信を提供する仕組みであり、ノード間の非同期処理を実現する。

別名・同義語 ROS2 サービスサーバーROS2 サービスクライアント

ポイント

ROS2サービスは、ROS1のサービスと同様の機能を提供するが、DDS(Data Distribution Service)を基盤としているため、より堅牢で柔軟な通信が可能である。リアルタイム性が求められるロボット制御に適している。

ROS2サービスとは

ROS2(Robot Operating System 2)におけるサービスは、クライアント・サーバーモデルに基づいた通信メカニズムです。クライアントノードがサービスを提供するサーバーノードにリクエストを送信し、サーバーノードがそのリクエストを処理してレスポンスをクライアントノードに返します。この仕組みにより、ノード間での非同期処理が可能となり、複雑なロボットシステムの構築を容易にします。

ROS2サービスの特徴

  • DDSベース: ROS2サービスは、DDS(Data Distribution Service)を基盤として構築されています。DDSは、リアルタイム性、信頼性、スケーラビリティに優れたミドルウェアであり、ROS2のサービス通信をより堅牢で柔軟なものにしています。
  • 非同期通信: クライアントノードは、サービスリクエストを送信した後、レスポンスを待たずに他の処理を実行できます。これにより、システムの応答性を向上させることができます。
  • サービス定義: サービスは、リクエストとレスポンスのデータ型を定義する.srvファイルによって定義されます。これにより、ノード間のインターフェースが明確になり、コード再利用性が高まります。
  • Quality of Service (QoS): DDSのQoS設定を利用することで、サービスの信頼性、耐久性、リアルタイム性などを細かく制御できます。

ROS2サービスの利用例

  • ロボットアームの制御: クライアントノードが、ロボットアームの目標位置をサービスリクエストとして送信し、サーバーノードがその目標位置にアームを移動させる。
  • センサーデータの取得: クライアントノードが、特定のセンサーデータの要求をサービスリクエストとして送信し、サーバーノードがそのセンサーデータをレスポンスとして返す。
  • マップの生成: クライアントノードが、環境データの収集をサービスリクエストとして送信し、サーバーノードがそのデータに基づいてマップを生成する。

ROS2サービスとアクション

ROS2には、サービスに加えてアクションという通信メカニズムも存在します。アクションは、サービスよりも複雑なタスクに適しており、タスクの進捗状況をフィードバックしたり、タスクをキャンセルしたりする能を提供します。サービスは、比較的単純なリクエスト・レスポンス型の処理に適しています。

SPONSORED