Fast DDS
eProsimaの高性能DDSミドルウェア — ROS 2のデフォルトトランスポート
ライセンス
Apache-2.0
概要
Fast DDS(旧称Fast RTPS)は、OMGのData Distribution Service標準とそのRTPSワイヤプロトコルをeProsimaがC++で実装したものです。ブローカー不要の分散型パブリッシュ・サブスクライブ通信をきめ細かなQuality-of-Service制御とともに提供し、ROS 2のデフォルトミドルウェア(rmw_fastrtps)でもあります。つまり、世界中のほとんどのROS 2ロボットでは、すべてのトピック・サービス・アクションの下でFast DDSが動いているのです。
Fast DDSはDDS仕様を完全に実装しています。DomainParticipant、トピック、パブリッシャ、サブスクライバがUDP、TCP、共有メモリ、またはカスタムトランスポート経由で相互に自動発見し、信頼性・耐久性・デッドライン・ライブリネス・履歴をカバーするQoSポリシーのもとでピアツーピア通信を行います。パフォーマンス面では、同一ホスト内プロセス向けのゼロコピー配信を備えた共有メモリトランスポート、非同期フローコントローラ、そしてマルチキャストによる発見がスケールしない大規模・制約付きネットワーク向けの静的ディスカバリモードとDiscovery Serverを提供します。プロジェクトにはFast DDS-Gen(IDLコード生成)、eProsimaのFast DDS Monitorで使われる統計・監視フックが同梱され、マイクロコントローラ上のmicro-ROSの基盤にもなっています。ROS 2のデフォルトrmwレイヤーとして、そのリリースはROS 2ディストリビューションに密接に追随しており、あらゆるミドルウェアの中でも最大級のロボティクス展開によって鍛えられています。
重要な理由
Fast DDSは、ほとんどの開発者が中身を見ることのない、最も広く展開されたロボティクスインフラといえるでしょう。ROS 2のデフォルトミドルウェアとして大多数のROS 2ロボットのトラフィックを運んでおり、商用サポート付きの完全なオープンソースDDS実装としては数少ない存在の一つです。
解決する課題
分散ロボットシステムには、単一障害点となる中央ブローカーなしで、プロセス間・マシン間の信頼性が高く低遅延で設定可能な通信が必要です。Fast DDSは、マイクロコントローラからマルチロボットのフリートまで、リアルタイムシステムが要求するQoS制御を備えた標準準拠のパブリッシュ・サブスクライブを提供します。
主なポイント
- OMG DDS標準とRTPSワイヤプロトコルの完全なオープンソース実装
- 最近のROS 2ディストリビューション全体でのデフォルトROS 2ミドルウェア(rmw_fastrtps)
- 同一ホスト内の高スループット通信のための共有メモリおよびゼロコピートランスポート
- Discovery Serverと静的ディスカバリにより、マルチキャストが使えないネットワークでもDDSをスケール
- eProsima Micro XRCE-DDSを介してマイクロコントローラクラスのデバイス向けmicro-ROSを支える
対象
- 通信とQoSをチューニングするROS 2開発者
- 分散システムおよびリアルタイムシステムのエンジニア
- ロボティクスのプラットフォーム・インフラチーム
- micro-ROSを使う組み込み開発者
制限事項
- DDSの概念とQoSマトリクスは学習コストが高い
- XMLベースのプロファイル設定は冗長で、気づきにくいミスを犯しやすい
- RTPSベースラインを超えるベンダー間DDS相互運用には注意が必要な場合がある
- 損失の多いWi-Fiネットワーク向けの微調整にはトランスポートレベルの専門知識が必要になることが多い