Up rmw (ROS Middleware Interface) 作成: 2026-09-05
更新: 2026-09-05

4足歩行ロボット自律型コンピュータソフトウェアROSrmw

  • rmw は,ROS2 と DDS 間の翻訳:
     ○ DDS が提供する 関数:
       create_participant()
       create_topic()
       create_datawriter()
       create_datareader()
       write()
       read()
       take()
       set_qos()
       wait_for_match()
       loan_sample()
       return_loan()

     ○ rmw の翻訳:
       ROS2 の publish → DDS の write()
       ROS2 の subscribe → DDS の read()
       ROS2 の QoS → DDS の QoS
       ROS2 の Node → DDS の Participant
       ROS2 の Topic → DDS の Topic
       ROS2 の Publisher → DDS の DataWriter
       ROS2 の Subscriber → DDS の DataReader


  • DDS 製品
      FastDDS
      CycloneDDS
      ConnextDDS


  • rmw 実装(DDS ベンダーごと)
      rmw_fastrtps_cpp
      rmw_cyclonedds_cpp
      rmw_connext_cpp
      など


  • DDS のマクロ化
    DDS を直接叩くとは,つぎのコードを書くということ:
      Participant の生成
      Publisher/Subscriber の生成
      Topic の生成
      TypeSupport の登録
      DataWriter/DataReader の生成
      QoS の設定
      Listener の設定
      バッファリングの管理
      メモリ管理
      シリアライズ/デシリアライズ
      RTPS の設定
      ネットワーク設定
      再送制御
      履歴管理
      マッチング処理
      エラー処理
      スレッド管理

    rmw を使うと,つぎのコードで済む:
      self.create_subscription(...)
      self.create_publisher(...)
      self.publisher.publish(msg)