環境設定による複数RMW実装の変更
本日はROS 2 Beta 2でサポートされた環境設定による複数RMW実装の変更の記事を取り上げます。
- https://github.com/ros2/ros2/wiki/Working-with-multiple-RMW-implementations
- https://github.com/ros2/ros2/wiki/DDS-and-ROS-middleware-implementations
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 RTPS | Apache 2 | rmw_fastrtps_cpp | フルサポート、デフォルトRMW、Debianパッケージ提供 |
RTI Connext | 商用ライセンス | rmw_connext_cpp | フルサポート、要ソースコードビルド |
RTI Connext (動的実装) | 商用ライセンス | rmw_connext_dynamic_cpp | サポート停止、ROS 2 Alpha 8までサポート |
PrismTech Opensplice | LGPL (v6.4)、商用 | rmw_opensplice_cpp | サポート停止、ROS 2 Alpha 8までサポート |
OSRF FreeRTPS | Apache 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を組み込んだロボットシステムを販売したい企業にとって、将来役立つことでしょう。
Comments powered by Disqus.