ros2/rmw_zenoh
RMW for ROS 2 using Zenoh as the middleware
What it solves
rmw_zenoh は、Zenoh に基づく ROS 2 Middleware (RMW) 実装を提供し、デフォルトの DDS ベースの通信レイヤーに代わる選択肢を提供します。異なるホスト、コンテナ、ネットワーク間でのディスカバリと通信を簡素化し、同時にローカル通信のための高性能なオプションを提供します。
How it works
zenoh-cpp バインディングを使用して ROS 2 RMW インターフェースを実装しています。システムは Zenoh セッションと、オプションの Zenoh ルーターを使用して、ディスカバリとメッセージルーティングを管理します。
主なメカニズムには以下が含まれます:
- Zenoh Router: ディスカバリとゴシップのための中心的なポイントとして機能し、ノードがマルチキャスト・ディスカバリ(デフォルトでは無効)に依存せずに相互に見つけ合えるようにします。
- Shared Memory (SHM): ローカルノード間で渡されるメッセージに対して暗黙的な最適化を提供し、ネットワークスタックを使用する代わりに共有メモリセグメントにデータを書き込むことで、大きなペイロードのレイテンシと CPU 使用率を低減します。
- Serialization Buffer Pool: 送信中にバッファを再利用することで、メモリ使用量を制限し、効率を向上させます。
- Configuration:
.json5設定ファイルと環境変数によるオーバーライドを使用して、セッションの動作、ルーターのエンドポイント、およびセキュリティ設定を管理します。
Who it’s for
柔軟で高性能な通信ミドルウェアを必要とする ROS 2 ユーザー、特に複数のホスト間、または Docker コンテナ内で動作させるロボット開発者。
Highlights
- Implicit Shared Memory: 特定の API コールを必要とせずに、大きなペイロードのローカル通信を透過的に最適化します。
- Flexible Discovery: ルーターベースのディスカバリと、ピア・ツー・ピアのディスカバリのためのマルチキャスト・スカウティングの両方をサポートします。
- Cross-Host Bridging: Zenoh ルーターを介して、異なるマシン間の ROS 2 ノードを接続することを簡潔にします。
- Integrated Security:
zenoh_security_toolsを通じて、アクセス制御、認証、および暗号化をサポートします。 - Memory Efficiency: シリアライゼーション・バッファ・プールを実装して、シリアライゼーション・バッファを再利用し、制御不能なメモリ増大を防ぎます。
関連
- プロジェクト
- プロジェクト
- プロジェクト
- プロジェクト
- プロジェクト