ROS 2知识:通信协议 DDS/RTPS

人工智能206

一、前言

ROS 2 构建在 DDS/RTPS 之上,DDS/RTPS作为ROS的中间件,提供发现、序列化和传输。本文详细解释了使用 DDS 实现和/或 DDS 的 RTPS 有线协议背后的机理。总而言之,DDS 是一个端到端的中间件,它提供与 ROS 系统相关的功能,例如分布式发现(不像 ROS 1 中那样集中)和控制运输的不同"服务质量"选项。

DDS 是由一系列供应商实施的行业标准,例如 RTI 的 Connext DDS、eProsima 的 Fast DDS、Eclipse 的 Cyclone DDS 或 GurumNetworks 的 GurumDDS。 RTPS(又名 DDSI-RTPS)是 DDS 用于通过网络进行通信的有线协议。

ROS 2 支持多种 DDS/RTPS 实现,因为在选择供应商/实现时它不一定是"一刀切"。在选择中间件实现时,您可能会考虑许多因素:许可证等后勤考虑因素,或平台可用性或计算占用空间等技术考虑因素。供应商可能会提供不止一种 DDS 或 RTPS 实施,以满足不同的需求。例如,RTI 的 Connext 实现有一些变体,其目的各不相同,比如一个专门针对微控制器,另一个针对需要特殊安全认证的应用程序(我们目前只支持他们的标准桌面版本)。

二、ROS2 支持的 RMW 实施

为了在 ROS 2 中使用 DDS/RTPS 实现,需要创建一个"ROS 中间件接口"( ROS Middle ware interface;又名 rmw 接口或只是 rmw)包,使用 DDS 或 RTPS 实现的 API 和工具来实现抽象 ROS 中间件接口。实现和维护 RMW 包以支持 DDS 实现需要大量工作,但支持至少几个实现对于确保 ROS 2 代码库不与任何特定实现绑定非常重要,因为用户可能希望根据具体情况切换实现根据他们项目的需要。

ROS 2知识:通信协议 DDS/RTPS

支持的 RMW 实现

Product name

License

输入验证码查看隐藏内容

扫描二维码关注本站微信公众号 Johngo学长
或者在微信里搜索 Johngo学长
回复 svip 获取验证码
wechat Johngo学长

相关文章
人工智能

BERT模型做word2vec

BERT模型做word2vec * - 一、模型下载 - 二、环境配置 - + * 已测试可运行环境: * 环境配置 - 三、Bert模型简单应用 - + * 启动BertClient * bert模...
人工智能

集合(list、set 和 map)与数组

一、集合和数组的区别 数组声明了它容纳的元素的类型,而集合不声明。 数组是静态的,一个数组实例具有固定的大小,一旦创建了就无法改变容量了。而集合是可以动态扩展容量,可以根据需要动态改变大小,集合提供更...
人工智能

中文小样本NER模型的方法与总结

1. 什么是NER任务 NER即命名实体识别任务,主要目的是识别出一个句子中的实体词,以及其对应的实体类型。比如下面的例子中,就是不同场景下的NER任务。在不同场景中,需要识别的实体类型也是不同的。 ...
人工智能

spyder无法打开,“点击无反应”

文章目录 问题描述 解决1 解决2 解决3 解决4 (终于解决了) 写在前面:两年前下载anaconda的时候,用过一段时间的spyder,后来就没再使用了。现在有新的学习需求再次打开时遇到问题,具体...
人工智能

【笔记】Ref-Nerf

NeRF在镜面反射上,有着许多artifacts,有两个原因。一个是,用外向辐射作为视角,不好插值;另一个是,NeRF会用各向同相的内部光源来假装镜面反射,结果是半透明或雾状的artifacts。 R...