首页 资讯 应用 高压 设计 行业 低压 电路图 关于

机器人

旗下栏目: 物联网 机器人 新技术 仪器仪表

ROS2探索总结(六)—迎接ROS2.0

机器人 | 发布时间:2017-12-20 | 人气: | #评论# | 本文关键字:ROS2,ROS2.0
摘要:ROS 起源于 2007 年 11 月, 2017 年 11 月刚好满 10 岁。 ROS 的最初目标是在机器人领域提高代码的复用率,谁都没有想到, ROS 社区中的功能包会呈指数级发展,目前已经成为机器人领域的事实标准

ROS起源于200711月,201711月刚好满10岁。ROS的最初目标是在机器人领域提高代码的复用率,谁都没有想到,ROS社区中的功能包会呈指数级发展,目前已经成为机器人领域的事实标准。

13

ROS最初设计的目标机器人是PR2,这款机器人搭载了当时最先进的移动计算平台,而且网络性能优异,不需要考虑实时性方面的问题,主要应用于科研领域。如今ROS应用的机器人领域越来越广:轮式机器人、人形机器人、工业机械手、室外机器人(如无人驾驶汽车)、无人飞行器、救援机器人等等,美国NASA甚至考虑使用ROS开发火星探测器;而且机器人开始从科研领域走向人们的日常生活。ROS虽然仍是机器人领域的开发利器,但介于最初设计时的局限性,也逐渐暴露出不少问题。

27

一、 什么是ROS2.0

ROS已经走过十个年头,伴随着机器人技术的大发展,ROS也得到了极大的推广和应用。尽管还存在不少局限性,但无法掩盖ROS的锋芒,社区内的功能包还是呈指数级逐年上涨,为机器人开发带来了巨大的便利。不少开发者和研究机构还针对ROS的局限性进行了改良,但这些局部功能的改善往往很难带来整体性能的提升,机器人开发者对新一代ROS的呼声越来越大,ROS2.0的消息也不绝于耳。

终于在ROSCon 2014上,新一代ROS的设计架构(Next-generation ROS: Building on DDS)正式公布;20158月第一个ROS2.0alpha版本落地;20161219日,ROS2.0beta版本正式发布;2017128日,万众瞩目的ROS2.0终于发布了第一个正式版——Ardent Apalone。众多新技术和新概念应用到了新一代的ROS之中,不仅带来了整体架构的颠覆,更是增强了ROS2.0的综合性能。

1.1 ROS2的目标

相比ROS1ROS2的设计目标更加丰富:


33

1. 支持多机器人系统

ROS2增加了对多机器人系统的支持,提高了多机器人之间通讯的网络性能,更多多机器人系统及应用将出现在ROS社区中。

2. 铲除原型与产品之间的鸿沟

ROS2不仅针对科研领域,还关注机器人从研究到应用之间的过渡,可以让更多机器人直接搭载ROS2系统走向市场。

3. 支持微控制器

ROS2不仅可以运行在现有的X86ARM系统上,还将支持MCU等嵌入式微控制器,比如常用的ARM-M4M7内核。

4. 支持实时控制

ROS2还加入了实时控制的支持,可以提高控制的时效性和整体机器人的性能。

5. 跨系统平台支持

ROS2不止能运行在Linux系统之上,还增加了对WindowsMACOS等系统的支持,让开发者的选择更加自由。

1.2 ROS2的架构

ROS2重新设计了整体架构,可以从下图中看到两代ROS之间架构的变化。


43
1. OS

ROS1主要构建于Linux系统之上,ROS2带来了改变,支持构建的系统包括LinuxWindowsMacRTOS,甚至没有操作系统的裸机。

2. 中间件

ROS中最重要的一个概念就是基于发布/订阅模型的“节点”,可以让开发者并行开发低耦合的功能模块,并且便于二次复用。ROS1的通讯系统基于TCPROS/UDPROS,而ROS2的通讯系统基于DDSDDS是一种分布式实时系统中数据发布/订阅的标准解决方案,下一小节会具体讲解。ROS2内部提供了DDS的抽象层实现,用户不需要关注底层DDS的提供厂家。

ROS1的架构中NodeletTCPROS/UDPROS是并列的层次,为同一个进程中的多个节点提供一种更优化的数据传输方式。ROS2中也保留了这种数据传输方式,只不过换了一个名字,叫做“Intra-process”,同样也是独立于DDS

3.  应用层

ROS1强依赖于ROS Master,可以想像一旦Master宕机,整个系统会面临如何的窘境。但是从右边ROS2的架构中我们可以发现,之前让人耿耿于怀的Master终于消失了,节点之间使用一种称为“Discovery”的发现机制来获取彼此的信息。

1.3 ROS2的核心——DDS

DDS,Data Distribution Service,即数据分发服务,2004年由对象管理组织OMGObject Management Group)发布,是一种专门为实时系统设计的数据分发/订阅标准。

DDS最早应用于美国海军, 解决舰船复杂网络环境中大量软件升级的兼容性问题,目前已经成为美国国防部的强制标准,同时广泛应用于国防、民航、工业控制等领域,成为分布式实时系统中数据发布/订阅的标准解决方案。其技术核心是以数据为核心的发布/订阅模型(Data-Centric Publish-Subscribe DCPS),这种DCPS模型创建了一个“全局数据空间”(global data space)的概念,所有独立的应用都可以访问。

53

DDS中,每一个发布者或者订阅者都称为参与者(participant),类似于ROS中节点的概念。每一个参与者都可以使用某种定义好的数据类型来读写全局数据空间。

1.4 ROS2的通讯模型

相信你一定还记得前边所学习的ROS1通讯模型,也就是TopicService等通讯机制。ROS2的通讯模型会稍显复杂,因为需要依赖于DDS,所以包含很多DDS的机制。基于DDSROS2通讯模型如下图所示:

63

ROS2的通讯模型有以下几个关键概念:

1. 参与者(Domain Participant

一个参与者Participant就是一个容器,对应于一个使用DDS的用户,任何DDS的用户都必须通过Participant来访问全局数据空间。

2. 发布者(Publisher

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

3. 订阅者(Subscriber

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

4. 数据写入器(DataWriter

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

5. 数据读取器(DataReader

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

6. 主题(Topic

这个和ROS1中的Topic概念一致,一个Topic包含一个名称和一种数据结构。

7. Quality of Service

质量服务原则,简称QoS Policy,这是ROS2中新增的、也是非常重要的一个原则,控制各方面与底层的通讯机制,主要从时间限制、可靠性、持续性、历史记录这几个方面,满足用户针对不同场景的数据需求。

责任编辑:电气自动化网
首页 | 电气资讯 | 应用技术 | 高压电器 | 电气设计 | 行业应用 | 低压电器 | 电路图 | 关于我们 | 版权声明

Copyright 2017-2018 电气自动化网 版权所有 辽ICP备17010593号-1

电脑版 | 移动版 原创声明:本站大部分内容为原创,转载请注明电气自动化网转载;部分内容来源网络,如侵犯您的权益请发送邮件到[email protected]联系我们删除。