$ sudo apt install ros-${ROS_DISTRO}-rmw-fastrtps-cpp
$ sudo apt install ros-${ROS_DISTRO}-rmw-cyclonedds-cpp
$ sudo apt install ros-${ROS_DISTRO}-rmw-connextdds
$ sudo apt install ros-${ROS_DISTRO}-rmw-gurumdds-cpp
🔧 用例 1: 查看当前系统使用的 RMW 实现
$ ros2 doctor --report | grep middleware
🔧 用例 2: 使用指定的 RMW
# rmw_connextdds
$ RWM=rmw_fastrtps_cpp
$ export RMW_IMPLEMENTATION=${RWM}
$ RMW_IMPLEMENTATION={RWM} ros2 run demo_nodes_cpp talker
🔧 用例 3: 进行 RMW 的相关配置
# 禁止多播(multi-broadcast)只允许本机通信(localhost-only)
$ export ROS_LOCALHOST_ONLY=1
🔧 用例 4: [RTPS_MSG_IN Error] (ID:...) Problem reserving CacheChange in reader
目前仅知道该 WARNING 提示与 FastDDS 有关
❓ 问题 1: ROS2 下现已支持的 DDS
Product name | License | RMW implementation | Status |
---|---|---|---|
eProsima Fast DDS | Apache 2 | rmw_fastrtps_cpp |
Full support. Default RMW. Packaged with binary releases. |
Eclipse Cyclone DDS | Eclipse Public License v2.0 | rmw_cyclonedds_cpp |
Full support. Packaged with binary releases. |
RTI Connext DDS | commercial, research | rmw_connextdds |
Full support. Support included in binaries, but Connext installed separately. |
GurumNetworks Gurum DDS | commercial | rmw_gurumdds_cpp |
Community support. Support included in binaries, but GurumDDS installed separately. |