工業製造
産業用モノのインターネット | 工業材料 | 機器のメンテナンスと修理 | 産業プログラミング |
home  MfgRobots >> 工業製造 >  >> Industrial Internet of Things >> モノのインターネットテクノロジー

ROS 2とDDS相互運用性:シームレス統合のための実践ガイド

ROS 2とDDS相互運用性:シームレス統合のための実践ガイド

ROS 2は基盤通信層にDDSを採用していますが、ネイティブDDS展開とROS 2の間で完璧な相互運用性を達成するには、依然として微妙な課題が存在します。このガイドは、「Bouncy Bolson」(2018年7月)ROS 2リリース時点で実証済みの実践的手順と設定調整をまとめ、チームが一般的な落とし穴を回避し、ROS 2内でConnext DDSの全機能を活用できるよう支援します。

ROS 2の現状

ROS 2は急速に進化するフレームワークであり、将来のリリースで追加の相互運用性ニュアンスが導入される可能性があります。しかし、rmw_connext_cppRMWレイヤーでROS 2を実行する場合、依然としてネイティブConnext DDSスタックを使用しています。つまり、ROS 2の高レベル抽象化を享受しながら、細粒度QoS制御やマルチトランスポートサポートなどConnextの全先進機能を保持できます。

主要相互運用性設定

トピック名とパーティション

ROS 2はトピックの名前空間をトピック名またはDDSパーティションにエンコードします。すべてのROS 2ユーザートピックは「rt」(ROS Topic)名前空間に存在します。DDSではこれは以下のように表現されます:

ROS 2とDDS相互運用性:シームレス統合のための実践ガイド

トピックデータ型

Connext RMWレイヤーがアクティブな場合、ROS 2はすべての「rt/*」トピックを汎用シリアライゼーション型でアドバタイズします。その結果、オリジナルの強く型付けされたデータを公開する純粋なDDSアプリケーションはQoSミスマッチを経験し、接続できません。

ROS 2とDDS相互運用性:シームレス統合のための実践ガイド

最も直接的な解決策は、ROS 2参加者からの自動型コード公開を抑制することです。ROS 2ノードを起動するディレクトリにUSER_QOS_PROFILES.xmlファイルを追加します。型コードを隠し、タイプオブジェクト共有を無効化する最小構成は以下の通り:

ROS 2とDDS相互運用性:シームレス統合のための実践ガイド

信頼性設定はアプリケーションに合わせて調整してください。上記例では出発点として「Best Effort」を使用しています。

このQoSファイルは、同じディレクトリから起動されるROS 2ノードにのみ適用されます。分離設定が必要な場合は、各ノードの起動フォルダ横に専用のUSER_QOS_PROFILES.xmlを配置してください。

トランスポート選択

DDSシステムとROS 2システムが同一ネットワークを共有する場合、欠落または未サポートトランスポート(例:udpv4のみサポートの参加者でudpv6不可)に関する警告が出ることがあります。こうした警告を回避し確実な接続性を確保するには、トランスポート設定を明示的に構成します。

  1. USER_QOS_PROFILES.xmlで<participant_qos>内に<transport_builtin>マスクを追加し、許可トランスポートを定義:
<participant_qos>
  <transport_builtin>
    <mask>UDPV4|SHMEM</mask>
  </transport_builtin>
</participant_qos>
  1. 起動ディレクトリにNDDS_DISCOVERY_PEERSファイルを作成し、検出したいピアアドレスをリスト。マルチキャストディスカバリを無効化するカンマ区切り例:
localhost,192.168.1.12,shmem://

ROS 2でのRMWレイヤー選択

ROS 2ノード起動前に、RMW_IMPLEMENTATION環境変数をrmw_connext_cppに設定してください:

export RMW_IMPLEMENTATION=rmw_connext_cpp

またはノード起動時にインラインで指定:

RMW_IMPLEMENTATION=rmw_connext_cpp ros2 run demo_nodes_cpp talker

非境界シーケンスと文字列

一部のROS 2トピックには非境界シーケンスや文字列が含まれます。DDSアプリケーションがこれらのトピックを消費/公開する必要がある場合、DDSコードジェネレータで「Unbounded Support」を有効化してください。コード生成時にこのオプションを切り替える方法はRTIドキュメントをご参照ください。

ROS 2とDDS相互運用性:シームレス統合のための実践ガイド

RTIとの次のステップ

現在のROS 2機能セットの一時的ギャップ—トピックデータの記録と再生—については、このシリーズの次回で取り上げます。その間、堅牢なDDSバックドROS 2ソリューションの展開準備ができているなら、RTIエキスパートにお問い合わせください。設定チューニングと市場投入加速をお手伝いします。

モノのインターネットテクノロジー

  1. 専門的な重機フィールドサービス・現場修理:迅速な復旧で作業を再開
  2. レーザーマーキング総合ガイド:種類、メリット、用途
  3. ROSロボット:Raspberry Piでターミナル操作ナビゲーション
  4. ラピッドマニュファクチャリング:カスタム・少量部品の生産加速
  5. PCBスティフナー完全ガイド:フレックスPCBの補強マスター
  6. OpenDDS vs RTI Connext DDS:適切なデータ配布サービスソリューションの選択
  7. RTI Recording ServiceとDDSによるROS 2 LiDARデータのリプレイ
  8. ROS 2 Bouncy Bolsonに無償RTI Connext DDS搭載:接続性と診断を強化
  9. QtとDDSの統合:スケーラブルなIoTアプリケーションの構築
  10. IoTがフィールドサービスに革命:予知保全と高ROIを実現
  11. 産業用IoTプラットフォーム購入ガイド:専門家のヒントと意思決定チェックリスト