Chinaunix首页 | 论坛 | 博客
  • 博客访问: 5664885
  • 博文数量: 1320
  • 博客积分: 12961
  • 博客等级: 上将
  • 技术积分: 15754
  • 用 户 组: 普通用户
  • 注册时间: 2009-01-09 11:25
个人简介

偷得浮生半桶水(半日闲), 好记性不如抄下来(烂笔头). 信息爆炸的时代, 学习是一项持续的工作.

文章分类

全部博文(1320)

文章存档

2020年(104)

2019年(193)

2018年(81)

2017年(80)

2016年(70)

2015年(52)

2014年(41)

2013年(51)

2012年(85)

2011年(45)

2010年(231)

2009年(287)

分类: 其他平台

2020-06-12 11:29:47

参考 古月居 的 https://www.ncnynl.com/archives/201708/1937.html 

ROS2 会在第一次执行 ROS2相关指令时启动 daemon , 用以进行监察系统内分布式节点的discovery服务.

2007诞生以来, ROS目前在机器人领域无敌.
新技术基础课程:
  • Zeroconf: 零配置网络服务规范, 用于自动生成可用IP地址的网络技术,不需要额外的手动配置 和专属的配置服务器。
  • Protocol Buffers: Google公司开发的一种数据描述语言,类似于XML能够将结构化数据序列化,可用于数据存储、通信协议等方面, 它不依赖于语言和平台并且可扩展性极强。
  • ZeroMQ (and the other MQs): 一个简单好用的传输层,像框架一样的一个socket library,他使得Socket编程更加简单、简洁和性能更高。
  • Redis: 一个高性能的key-value数据库。
  • WebSockets:HTML5开始提供的一种浏览器与服务器间进行全双工通讯的网络技术。
  • DDS (Data Distribution Service): 新一代分布式实时通信中间件技术规范,DDS采用发布/订阅体系架构,强调以数据为中心,提供丰富的QoS服务质量策略,能保障数据进行实时、高效、灵活地分发,可满足各种分布式实时通信应用需求。

在学习以上这些基础技术课程的基础上,ROS需要灵活应用这些技能,并且在高年级的学习中修炼综合能力:

  • 多机器人控制。这个能力厉害了,以后可以同时驾驭多个机器人,别提多炫酷了,必须好好修炼,说不定还能靠此技能吸引异性呢。
  • 多平台应用支持。这个能力要求ROS要学会大丈夫能屈能伸,不仅要能在性能强劲的计算机上跑,还要能在资源有限的嵌入式平台上跑。
  • 实时应用支持。这个需要好好修炼内功,让自己完善时间管理能力,说几点起就几点起,说几时完成任务就几时完成任务。
  • 增强网络通信能力。这个能力正是ROS所需要的,原来上100楼,走到50楼还得缓冲一下,这门课就是教ROS如何上100楼大气不喘的,就算楼要倒,还能飞起来。
  • 产品应用。这个能力要求ROS具备更强的可靠性,以后就可以带着更多机器人去到更多普通人的家里玩了。
  • 灵活构建。这是个学习能力,要求ROS学习更多的新特性,无论面对多么复杂的机器人系统,都可以轻松应对。
请输入图片描述
1. 要解决多机器人协作.  
2. MCU兼容
3. 实时控制    
4. 消除原型和最终产品之间的差距
5. 跨平台.

请输入图片描述
ROS1的通讯系统基于TCPROS/UDPROS,强依赖于master节点的处理,可以想像master一挂,整个系统会面临如何的窘境。
ROS2内部提供了DDS的抽象层实现,有了这个抽象层,用户就可以不去关注底层的DDS使用了哪个商家的API
节点: 基于发布/订阅模型的节点使用,可以让开发者并行开发低耦合的功能模块,并且便于进行二次复用。得益于DDS的加入,ROS2的发布/订阅模型也会发生改变
节点”,基于发布/订阅模型的节点使用,可以让开发者并行开发低耦合的功能模块,并且便于进行二次复用。得益于DDS的加入,ROS2的发布/订阅模型也会发生改变

DDS的全称是Data Distribution Service,即数据分发服务
DDS 的技术核心是以数据为核心的发布订阅模型(Data-Centric Publish-Subscribe ,DCPS),这种DCPS模型创建了一个“全局数据空间”(global data space)的概念,所有独立的应用都可以去访问。在DDS中,每一个发布者或者订阅者都成为参与者(participant),类似于ROS中节点的概念。每一个参与者都可以使用某种定义好的数据类型来读写全局数据空间

请输入图片描述
  • 参与者(DomainParticipant):一个参与者Participant就是一个容器,对应于一个使用DDS的用户,任何DDS的用户都必须通过Participant来访问全局数据空间。

  • 发布者(Publisher):数据发布的执行者,支持多种数据类型的发布,可以与多个数据写入器(DataWriter)相联,发布一种或多种主题(Topic)的消息。

  • 订阅者(Subscriber):数据订阅的执行者,支持多种数据类型的订阅,可以与多个数据读取器(DataReader)相联,订阅一种或多种主题(Topic)的消息。

  • 数据写入器(DataWriter):应用向发布者更新数据的对象,每个数据写入器对应一个特定的Topic,类似于ROS1中的一个消息发布者。

  • 数据读取器(DataReader):应用从订阅者读取数据的对象,每个数据读取器对应一个特定的Topic,类似于ROS1中的一个消息订阅者。

  • 主题(Topic):和ROS1中的Topic概念一致,一个Topic包含一个名称和一种数据结构。

QoS是DDS中非常重要的一环,控制了各方面与底层的通讯机制,主要从时间限制、可靠性、持续性、历史记录几个方面,满足用户针对不同场景的数据应用需求,可以参考下图。
实时性增强:数据必须在deadline之前完成更新
持续性增强:ROS1尽管存在数据队列的概念,但是还有很大的局限,订阅者无法接收到加入网络之前的数据;DDS可以为ROS提供数据历史的服务,就算新加入的节点,也可以获取发布的所有历史数据。
可靠性增强:通过DDS配置可靠性原则,用户可以根据需求选择性能模式(BEST_EFFORT)或者稳定模式(RELIABLE)。
请输入图片描述

总得来说 ROS2 的优点
请输入图片描述

ROS 2 VS ROS 1.x 的区别.
请输入图片描述
请输入图片描述
请输入图片描述

阅读(49) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~