0
  • 聊天消息
  • 系统消息
  • 评论与回复
登录后你可以
  • 下载海量资料
  • 学习在线课程
  • 观看技术视频
  • 写文章/发帖/加入社区
创作中心

完善资料让更多小伙伴认识你,还能领取20积分哦,立即完善>

3天内不再提示

什么是通信模型DDS

麦辣鸡腿堡 来源:古月居 作者:古月 2023-11-24 17:50 次阅读

Hello,大家好,欢迎来到《ROS2入门21讲》,我是主讲人古月。

终于讲到ROS2中最为重大的变化——DDS,我们在前边课程中学习的话题、服务、动作,他们底层通信的具体实现过程,都是靠DDS来完成的,它相当于是ROS机器人系统中的神经网络

通信模型

DDS的核心是通信,能够实现通信的模型和软件框架非常多,这里我们列出常用的四种模型。

第一种,点对点模型,许多客户端连接到一个服务端,每次通信时,通信双方必须建立一条连接。当通信节点增多时,连接数也会增多。

而且每个客户端都需要知道服务器的具体地址和所提供的服务,一旦服务器地址发生变化,所有客户端都会受到影响。

第二种,Broker模型,针对点对点模型进行了优化,由Broker集中处理所有人的请求,并进一步找到真正能响应该服务的角色。

这样客户端就不用关心服务器的具体地址了。不过问题也很明显,Broker作为核心,它的处理速度会影响所有节点的效率,当系统规模增长到一定程度,Broker就会成为整个系统的性能瓶颈。

更麻烦是,如果Broker发生异常,可能导致整个系统都无法正常运转。之前的ROS1系统,使用的就是类似这样的架构。

第三种,广播模型,所有节点都可以在通道上广播消息,并且节点都可以收到消息。这个模型解决了服务器地址的问题,而且通信双方也不用单独建立连接,但是广播通道上的消息太多了,所有节点都必须关心每条消息,其实很多是和自己没有关系的。

第四种,就是以数据为中心的DDS模型了,这种模型与广播模型有些类似,所有节点都可以在DataBus上发布和订阅消息。

但它的先进之处在于,通信中包含了很多并行的通路,每个节点可以只关心自己感兴趣的消息,忽略不感兴趣的消息,有点像是一个旋转火锅,各种好吃的都在这个DataBus传送,我们只需要拿自己想吃的就行,其他的和我们没有关系。

可见,在这几种通信模型中,DDS的优势更加明显。

DDS

DDS并不是一个新的通信方式,在ROS2之前,DDS已经广泛应用在很多领域。

比如在自动驾驶领域,通常会存在感知,预测,决策和定位等模块,这些模块都需要非常高速和频繁地交换数据。借助DDS,可以很好地满足它们的通信需求。

什么是DDS

好啦,说了半天DDS,到底啥意思呢?我们来做一个完整的介绍

DDS的全称是Data Distribution Service,也就是数据分发服务,2004年由对象管理组织OMG发布和维护,是一套专门为实时系统设计的数据分发/订阅标准,最早应用于美国海军, 解决舰船复杂网络环境中大量软件升级的兼容性问题,现在已经成为强制标准。

DDS强调以数据为中心,可以提供丰富的服务质量策略,以保障数据进行实时、高效、灵活地分发,可满足各种分布式实时通信应用需求。

这里也提一下对象管理组织OMG,成立于1989年,它的使命是开发技术标准,为数以千计的垂直行业提供真实的价值,比如大家课可能听说过的统一建模语言SYSML和UML,还有中间件标准CORBA等,当然还有DDS。

声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉
  • 机器人
    +关注

    关注

    206

    文章

    27033

    浏览量

    201397
  • 通信
    +关注

    关注

    18

    文章

    5706

    浏览量

    134390
  • 服务器
    +关注

    关注

    12

    文章

    8116

    浏览量

    82509
  • DDS
    DDS
    +关注

    关注

    21

    文章

    614

    浏览量

    151731
收藏 人收藏

    评论

    相关推荐

    MQTT的通信模型及消息

     MQTT通信模型    MQTT协议是基于客户端-服务器模型,在协议中主要有三种身份:发布者(Publisher)、服务器(Broker) 以及订阅者(Subscriber)。 并且消息发布者可以
    发表于 01-19 15:57

    基于VxWorks实时操作系统的通信模型该怎样去设计?

    多任务实时操作系统VxWorks是什么?与传统通信机制相比,模块间通信模型有什么优势?基于VxWorks实时操作系统的通信模型该怎样去设计?
    发表于 04-26 06:25

    移动Agent位置透明通信模型的设计

    提出一种高效可靠的移动Agent通信模型――D-C通信模型,结合域名字解析器和移动Agent系统中的Communicator实现移动Agent之间的通信。通过引入一种基于全局的、与位置无关的命名方法
    发表于 04-16 08:53 26次下载

    过程控制工业以太网通信模型探讨

    提出了建立在交换式以太网和IEEE 802.1Q/P 技术基础上用于过程控制的以太网通信模型REPC,并进行了分析。关键词:通信模型工业以太网 过程控制Abstract: REPC, a communication model of in
    发表于 06-19 08:34 27次下载

    数据网格中基于优化机制的通信模型

    针对基于多计算机机群构成的网格的大规模并行计算的需要,对多级分组通信模型的单一机群分组通信进行了研究。探讨了在单一机群内的主动节点、被动节点个数和各个计算节点
    发表于 06-25 13:52 12次下载

    基于VxWorks的通信模型设计

    本文提出了一种任务间的通信模型,将用于网络通信的UDP方式引进到任务间的通信中,使通信更加灵活和便于管理,改善了整个系统的性能。
    发表于 06-01 10:07 920次阅读
    基于VxWorks的<b class='flag-5'>通信模型</b>设计

    企业资产管理系统中通信模型的研究与实现

    为了改善企业资产管理(EAM)系统在用户体验、模块间数据传输效率及耦合度等方面的不足,构建了基于Silverlight与WCF技术研究与实现EAM系统中的通信模型。利用Silverlight构建客户端提升
    发表于 07-06 16:57 34次下载
    企业资产管理系统中<b class='flag-5'>通信模型</b>的研究与实现

    基于DDS的云协作研究

    本文介绍了一种云方代理,云方代理的引入提供了标准的云方协作请求响应机制,云方代理是数据分发服务(DDS)的实现,它利用DDS可靠低耦合的发布订阅消息通信模型进行消息交互,同时采用基于xml方式编目云方资源实现云方与云方资源匹配,
    发表于 01-04 17:13 8次下载

    网络通信模型

    网络通信模型,在基础讲解的前提下,建立数学模型来分析。
    发表于 03-15 13:56 9次下载

    一种基于Kademlia的P2P语音通信模型

    一种基于Kademlia的P2P语音通信模型_陈立全
    发表于 01-07 16:52 3次下载

    基于Zigbee的无线智能输液通信模型设计杨艳

    基于Zigbee的无线智能输液通信模型设计_杨艳
    发表于 03-16 08:00 3次下载

    电力通信模型自动生成方法及其优化

    为了在电力通信模型的建立过程中生成一个比较合理和强壮的初始通信模型,在传统的Waxman方法的基础上,运用K-means的聚类思想生成节点,并对所生成的拓扑网络进行脆弱性分析和信息孤岛检测,然后对于
    发表于 02-02 17:05 0次下载

    DDS为ROS的通信系统提供了哪些特性

    质量服务策略QoS DDS为ROS的通信系统提供了哪些特性呢?我们通过这个通信模型图来看下。 DDS中的基本结构是Domain,Domain将各个应用程序绑定在一起进行
    的头像 发表于 11-24 17:59 362次阅读
    <b class='flag-5'>DDS</b>为ROS的<b class='flag-5'>通信</b>系统提供了哪些特性

    机器人通信模型有哪些

    用到——那就是动作。从这个名字上就可以很好理解这个概念的含义,这种通信机制的目的就是便于对机器人某一完整行为的流程进行管理。 通信模型 举个例子,比如我们想让机器人转个圈,这肯定不是一下就可以完成的,机器人得一点一点旋
    的头像 发表于 11-27 17:05 230次阅读
    机器人<b class='flag-5'>通信模型</b>有哪些

    通信模型的多对多通信、异步通信和消息接口是什么

    者的数量并不是唯一的,可以称之为是多对多的通信模型。 因为话题是多对多的模型,发布控制指令的摇杆可以有一个,也可以有2个、3个,订阅控制指令的机器人可以有1个,也可以有2个、3个。 大家可以想象一下这个画面,似乎还是挺魔性的
    的头像 发表于 11-27 17:42 239次阅读
    <b class='flag-5'>通信模型</b>的多对多<b class='flag-5'>通信</b>、异步<b class='flag-5'>通信</b>和消息接口是什么