Post

環境設定による複数RMW実装の変更

本日はROS 2 Beta 2でサポートされた環境設定による複数RMW実装の変更の記事を取り上げます。

RMW実装の選択肢

以前説明したように、ROS 2はRMWという抽象化インタフェースを通すことで、DDSベンダーを選択できるようになっています。

http://ros.youtalk.jp/2017/06/22/freertps.html

http://roscon.ros.org/2016/presentations/ROSCon%202016%20-%20ROS%202%20Update.pdf

DDSは産業界で標準規格となっており、多くのDDSベンダーが実装を提供しています。 その中にはRTI社のConnextやeProsima社のFastRTPSがあります。 ROS 2は複数のDDS実装をサポートしています。 これはどれか一つの実装ではすべての要求を満足できないからです。 ライセンスの選択肢、プラットフォーム(OS)の選択肢、計算資源の必要度合いにより、各DDSベンダーは一つ以上のDDS実装を提供しています。

サポートされるRMW実装

製品名ライセンスRMW実装名現状
eProsima Fast RTPSApache 2rmw_fastrtps_cppフルサポート、デフォルトRMW、Debianパッケージ提供
RTI Connext商用ライセンスrmw_connext_cppフルサポート、要ソースコードビルド
RTI Connext (動的実装)商用ライセンスrmw_connext_dynamic_cppサポート停止、ROS 2 Alpha 8までサポート
PrismTech OpenspliceLGPL (v6.4)、商用rmw_opensplice_cppサポート停止、ROS 2 Alpha 8までサポート
OSRF FreeRTPSApache 2一部サポート、開発停止

デフォルトRMW実装

ROS 2のインストール時に、複数のRMW実装がある場合、デフォルトのRMW実装にはFastRTPSが選択されます。 もし複数のRMW実装の中にFastRTPSがない場合、RMW実装名のアルファベット順で最初の実装が選択されます。

RMW実装の環境設定

異なるRMW実装を選択するには、環境変数RMW_IMPLEMENTATIONを設定します。 値には表中のRMW実装名を代入します。

export RMW_IMPLEMENTATION=rmw_connext_cpp
ros2 run demo_nodes_py talker

ConnextのRMW実装のセットアップ手順などの情報がほとんどないため、私は他のRMW実装をまだ試せておりません。 しかし、ROS 2でフルサポートされている商用ライセンスのDDSベンダー、RMW実装があるというのは、ROS 2を組み込んだロボットシステムを販売したい企業にとって、将来役立つことでしょう。

https://github.com/ros2/rmw_connext

This post is licensed under CC BY 4.0 by the author.

Comments powered by Disqus.