ZBLOG

16. ROS 2 using Fast DDS middleware Fast DDS is the default middleware implementation in the Open Source Robotic Fundation (OSRF) Robot Operating System ROS 2 in every long term (LTS) releases and most of the non-LTS releases. ROS 2 is a state-o...

16. ROS 2 using Fast DDS middleware

Fast DDS 是开源机器人基金会 (OSRF) 的机器人操作系统 ROS 2 中默认的中间件实现,适用于所有长期支持 (LTS) 版本以及大多数非 LTS 版本。

ROS 2 是一款先进的机器人工程软件,由一系列免费的软件库和工具构成,用于构建机器人应用。本节介绍了一些用例,并展示了如何在 ROS 2 项目中充分利用 Fast DDS 的广泛功能。

ROS 2 栈与 Fast DDS 之间的接口由一个名为 rmw_fastrtps 的 ROS 2 包提供。该包在所有 ROS 2 分发版中均可用,无论是通过二进制方式还是源代码方式。rmw_fastrtps 实际上提供了两个不同的 ROS 2 中间件实现,均使用 Fast DDS 作为中间件层:rmw_fastrtps_cpprmw_fastrtps_dynamic_cpp。两者之间的主要区别在于,rmw_fastrtps_dynamic_cpp 在运行时使用反射类型支持来决定序列化/反序列化机制,而 rmw_fastrtps_cpp 则使用自己的类型支持,在构建时生成每种消息类型的映射。在除已结束生命周期(EOL)的 Galactic 外的所有分发版中,默认的 ROS 2 RMW 实现是 rmw_fastrtps_cpp。对于 EOL Galactic,需要设置环境变量 RMW_IMPLEMENTATION 来选择 rmw_fastrtps_cpp,以便将 Fast DDS 用作中间件层。此环境变量也可以用于选择 rmw_fastrtps_dynamic_cpp 实现:

导出 RMW_IMPLEMENTATION 环境变量:

  1. export RMW_IMPLEMENTATION=rmw_fastrtps_cpp

  1. export RMW_IMPLEMENTATION=rmw_fastrtps_dynamic_cpp

启动您的 ROS 2 应用程序:

  1. RMW_IMPLEMENTATION=rmw_fastrtps_cpp ros2 run <package> <application>

  1. RMW_IMPLEMENTATION=rmw_fastrtps_dynamic_cpp ros2 run <package> <application>

注意

在 EOL Galactic 上,您可能需要安装 rmw_fastrtps_cpp 包:

  1. sudo apt install ros-galactic-rmw-fastrtps-cpp

以上内容概述了如何在 ROS 2 中使用 Fast DDS 中间件,包括相关包的信息及其环境配置方法。


内容由零声教学AI助手提供,问题来源于学员提问

本站部分文章来源于网络,版权归原作者所有,如有侵权请联系站长删除。
转载请注明出处:https://golang.0voice.com/?id=22291

分享:
扫描分享到社交APP
上一篇
下一篇
发表列表
游客 游客
此处应有掌声~
评论列表

还没有评论,快来说点什么吧~

联系我们

在线咨询: 点击这里给我发消息

微信号:3007537140

上班时间: 10:30-22:30

关注我们
x

注册

已经有帐号?