【自动驾驶】5. ROS和DDS的区别总结
背景:
ROS是在机器人领域大家常用的通信中间件。DDS是一个很古老的用在很多safe-critical领域的通信中间件(航天,汽车,战舰,金融等)。两者要解决的问题都是一样的:灵活,可靠的通信网络。并且两者都是在实际使用诞生的协议,所以都有很强的实用性。但两者有一些不同的价值观:
- ROS所在的机器人领域更加开放(基本都是开源软件),用户的参与度更高(大部分问题都是被社区人员回答)。但是在工业落地的应用相对于DDS少很多。
- DDS和ROS正好相反,基本所有问题都由开发商来回答,而且开源的代码很少。但是DDS的文档和案例库比ROS要强很多,而且通过很多落地项目的实践,验证了DDS的可靠性和实用性。
节点发现机制:
ROS需要一个中心节点ROS master来协调所有通信活动。而DDS完全摆脱了任何有集权作用的节点。自然DDS的容错能力更强。
组成:
- ROS中的node和DDS中的participent对应。ROS中一个进程只能有一个node,但是DDS中可以有多个participent。
- ROS和DDS中都有subscriber和publisher。ROS中的两者包含了具体的读写操作。但是DDS中的两者只是一个身份的标示。使用中还需要附带一个对应的DataReaders和DataWriters来处理具体怎么对不同的消息进行读写。DDS这样做的好处是可以来从不同的层级来设置各种属性。比如想要把某个特性(比如不需要正确性验证)应用到某个具体的消息传输上,可以对DataReaders进行修改。如果想要应用到所有Subscriber,就可以对subscriber进行修改。
- Topic的概念对ROS和DDS都相同。
QoS:
QoS是用来控制传输的行为的,比如:
- 在规定时间内没有发送成功就是放弃。
- 一定要阻塞到发送成功。
- 是否需要确认对方有收到消息。
- 是否需要错误验证等。
QoS在DDS中有很复杂的和灵活的设置方法。通过调整QoS系统,可以把整个系统从类UDP行为逐渐变成类TCP行为。而只是通过定义subscriber和publisher时几个有限的参数来控制QoS。这样做的好处是隐藏了很多普通用户不需要关心的复杂性。
效率上的比较:
ROS不用zero-copy的原因:ROS是基于TCP的,对于TCP的使用者可以一次性提供一大块需要传输的数据,然后由TCP来负责切分成小的package进行传输。在本地情况下(localhost),TCP自动的会把这一大块数据进行内存共享。所以在效率上,在本地环境下,通过TCP传输和zero-copy方式传输没有太大的效率差异。但是DDS是基于UDP,DDS会先把数据切成小块后,再给UDP进行传输,这样就和zero-copy的效率有很大的不同了。
另外使用ROS的时候,如果想要得到更快的大数据本地传输效率可以使用nodelets。nodelets把地址通过消息进行共享,是最快的共享方式。
服务和客户模式(Server/Client model):
目前DDS没有类似于ROS的Service功能
消息描述:
DDS使用的是.idl格式,ROS是自己定义的.msg格式。
参考:https://design.ros2.org/articles/ros_on_dds.html
【自动驾驶】5. ROS和DDS的区别总结相关推荐
- 【自动驾驶】12.百度Apollo对ROS的优化【详细干货】
转载自 "Apollo智能驾驶" 公众号 和搜狐网 "百度开发者中心" : 原文链接 7月22日,百度自动驾驶事业部资深架构师.数据平台专家杨凡,百度自动驾驶资 ...
- 自动驾驶(六十五)---------ROS学习笔记(1)
ROS是面向机器人的开源的元操作系统,它能够提供类似传统操作系统的诸多功能,如硬件抽象.底层设备控制.常用功能实现.进程间消息传递和程序包管理等.此外,它还提供相关工具和库,用于获取.编译.编辑代码以 ...
- 【自动驾驶】2.车载以太网 - SOME/IP简介
车载以太网 - SOME/IP简介 SOME/IP (Scalable service-Oriented MiddlewarE over IP) 是车载以太网通信引入的一个概念,位于OSI 7层模型的 ...
- 把地图中的道路以线条提取出来_入围 ICRA 2019 最佳论文:MIT利用粗粒度地图实现自动驾驶...
MIT最新研究能够利用简单的GPS地图和视觉数据,模仿人类驾驶员的驾驶方式,将学到的知识应用于视障环境中的复杂计划路线,该论文入围ICRA2019最佳论文. 真正的人工智能不是只会机械处理数据,而是要 ...
- 自动驾驶感知——自动驾驶地图
文章目录 1. 地图基础知识 1.1 地图的基本特性 1.2 地图的构成要素 1.3 地图的比例尺 2. 电子地图 2.1 电子地图的特点和优势 2.2 构建电子地图 2.3 存储和表达电子地图 2. ...
- 构建高效的整车系统级别评估平台,百度安全自动驾驶风险安全研究亮相NDSS2022AutoSec...
4月24日在美国圣地亚哥召开的 Automotive and Autonomous Vehicle Security (AutoSec) Workshop 2022 会议上,百度安全对于自动驾驶风险安 ...
- 自动驾驶缺人才?听听David Silver怎么说!
如今自动驾驶在全球范围内的发展势头愈发"凶猛",该领域人才也一度被视为"香饽饽". 即使在美国,自动驾驶工程师的起薪也已经突破了25万美元,我国'"开 ...
- 自动驾驶中间件之二:通信中间件,DDS与SOME/IP 谁主沉浮?
本文是自动驾驶中间件科普系列第二篇,上一篇为自动驾驶中间件之一:AUTOSAR正在被"边缘化"? 随着传感器的数量越来越多,数据来源越来越多.规模也会越来越大,那这些多源异构数据如 ...
- 【自动驾驶】11.百度Apollo对ROS的优化
更详细的介绍可以跳转到:[自动驾驶]百度Apollo对ROS的优化[详细干货] 自从百度All in人工智能之后,无人驾驶汽车平台Apollo就被推上了风口浪尖,甚至还登上了2018春晚的舞台.在这个 ...
最新文章
- Linq 等式运算符:SequenceEqual
- docker 配置阿里云镜像加速
- 实现单服务器响应多客户机,对等网与客户机/服务器网络
- 17、【 商品管理模块开发】——后台商品图片的springmvc和富文本上传以及ftp文件服务器的开发...
- python多线程 不在main_从python线程(不是main)启动pyQt线程有什么不...
- 蓝桥杯 ADV-148算法提高 排队打水问题(贪心)
- java计算机毕业设计网上书店进销存管理系统源程序+mysql+系统+lw文档+远程调试
- html设置桌面背景win7,怎么让电脑桌面背景动起来 win7设置动态背景桌面的方法...
- Carryon 数数字——小米 OJ 编程比赛 02 月常规赛(思维)
- 杭电计算机考研比率,杭州电子科技大学考研的难度大吗
- 请听一个故事------三个70多岁老人的创业故事(励志)
- 考研英语复试口语常见问题(上岸必备)
- 【canvas使用】
- JSP SSH校园兼职信息发布平台myeclipse开发mysql数据库MVC模式java编程计算机网页设计
- Java SPI机制详解
- Linux下CP命令的使用!
- 基于JAVA线上动漫周边商城计算机毕业设计源码+数据库+lw文档+系统+部署
- ABAP HASH TABLE 主键重复时
- c语言做土壤湿度传感器程序,单片机土壤湿度传感器设计 程序编译错误
- 提高沟通表达能力该看什么书?有哪些沟通书籍值得推荐?
热门文章
- Nashorn——在JDK 8中融合Java与JavaScript之力--转
- Zuul 2 : The Netflix Journey to Asynchronous, Non-Blocking Systems--转
- spring transaction源码分析--事务架构
- Http Message Converters with the Spring Framework--转载
- weblogic查看内存情况
- “解剖”HIGO徐易容:关于创业、后悔、喝酒和滑雪
- 从0到1走进 Kaggle
- WhatsApp CEO向FreeBSD捐赠一百万美金
- 深入理解分布式技术 - 理论基石 CAP
- 干货一:通过自定义PopupWindow实现QQ菜单选项功能