DDS数据分发服务在机器人行业应用情况(ROS)

关键字:DDS,Data Distribute Service,数据分发服务,ROS,Robot Operating System, 机器人操作系统

1.行业的发展历程

1.1. ROS概述

硬件技术的飞速发展,在促进机器人领域快速发展和复杂化的同时,也对机器人系统的软件开发提出了巨大挑战。机器人平台与硬件设备越来越丰富,致使软件代码的复用性和模块化需求越加强烈,而已有的机器人系统又不能很好地适应需求。为迎接机器人软件开发面临的巨大挑战,产生了多种优秀的机器人软件框架,为软件开发工作提供了极大的便利,其中最为优秀的软件框架之一就是机器人操作系统ROS(Robot Operating System)。ROS与Android、Ubuntu并称为机器人三大操作系统。

ROS是一个用于编写机器人软件的灵活框架,其前身是斯坦福人工智能实验室为了支持斯坦福智能机器人STAIR而建立的交换庭(switchyard)项目,到2008年以后,主要由威楼加拉吉继续该项目的研发。ROS集成了大量的工具、库、协议,提供类似操作系统所提供的功能,包括硬件抽象描述、底层驱动程序管理、共用功能的执行、程序间的消息传递、程序发行包管理,可以极大简化繁杂多样的机器人平台下的复杂任务创建与稳定行为控制。

1.2. ROS1存在的问题

2007年诞生的ROS1.0,存在如下问题:

1、对多机器人系统支持较弱

多机器人系统是机器人领域研究的一个重点问题,可以解决单机器人性能不足、无法应用等问题,但是ROS 1中并没有构建多机器人系统的标准方法。

2、不支持跨平台

ROS 1基于Linux系统,在Windows、MacOS、RTOS等系统上无法应用或者功能有限,这对机器人开发者和开发工具提出了较高要求,也有很大的局限性。

3、实时性差

很多应用场景下的机器人对实时性有较高要求,尤其是工业领域,系统需要做到硬实时的性能指标,但ROS 1缺少实时性方面的设计,所以在很多应用中捉襟见肘。

4、网络设计欠佳
ROS 1的分布式机制需要良好的网络环境保证数据的完整性,而且网络没有数据加密、安全防护等功能,网络中的任意主机都可获得节点发布或接收的消息数据。

5、稳定性差
ROS 1的稳定性较差,ROS Master、节点等重要环节在很多情况下会莫名宕机,这就导致很多机器人从研究开发到消费产品的过渡非常艰难。

1.3. 基于DDS的ROS2发布

虽然不少开发者和研究机构针对以上部分问题进行了改良,但这些局部功能的改善往往很难带来整体性能的提升,机器人开发者对新一代ROS的呼声越来越大,ROS 2.0的消息也不绝于耳。

终于,在ROSCon 2014上,新一代基于DDS的ROS的设计架构(Next-generation ROS: Building on DDS)正式公布。

  • 2015年8月第一个ROS 2.0的alpha版本落地;
  • 2016年12月19日,ROS 2.0的beta版本正式发布;
  • 2017年12月8日,万众瞩目的ROS 2.0终于发布了第一个正式版——Ardent Apalone。
  • 2018年7月2日,第二个正式版——Bouncy Bolson发布,保持半年更新一个版本的节奏。
  • 2018年12月,第三个正式版——Crystal Clemmys发布。
    众多新技术和新概念应用到了新一代的ROS之中,不仅带来了整体架构的颠覆,更是增强了ROS 2.0的综合性能。

1.4. ROS2相比于ROS1的进步

相比ROS 1,ROS 2的设计目标更加丰富:

(1)支持多机器人系统

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

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

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

(3)支持微控制器

ROS 2不仅可以运行在现有的X86和ARM系统上,还将支持MCU等嵌入式微控制器,比如常用的ARM-M4、M7内核。

(4)支持实时控制

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

(5)跨系统平台支持

ROS 2不止能运行在Linux系统之上,还增加了对Windows、MacOS、RTOS等系统的支持,让开发者的选择更加自由。
DDS数据分发服务在机器人行业应用情况(ROS)_第1张图片
图 1 ROS 2的设计目标更加丰富

2、DDS在该行业是否纳入标准

诞生于2007年的ROS经过十余年的高速发展,已经成为机器人领域的事实标准。2014年在ROSCon 2014上,Open Source Robotics Foundation正式发布了新一代ROS的设计架构(Next-generation ROS: Building on DDS),DDS正式成为ROS2的重要的组成部分。ROS对于使用哪家厂商的DDS的不做硬性规定,用户根据自身需要选择适合的DDS。
DDS数据分发服务在机器人行业应用情况(ROS)_第2张图片
图 2 ROS不与DDS供应商绑定

3、DDS在该行业应用的技术方案

DDS数据分发服务在机器人行业应用情况(ROS)_第3张图片
图 3 ROS1与ROS2整体架构的对比

对于ROS1、ROS2二者整体架构进行分析可知:

(1)ROS1主要构建于Linux系统之上,而ROS2支持构建的系统包括Linux、windows、Mac、RTOS,甚至没有操作系统的裸机。
(2)ROS1的通讯系统基于TCPROS/UDPROS,强依赖于master节点的处理, 一旦master异常,将导致全系统通信故障。ROS2的通讯系统是基于DDS(一种分布式实时系统中数据发布/订阅的标准解决方案),同时在ROS2内部提供了DDS的抽象层实现,用户不需要关注底层DDS的提供厂家。
DDS数据分发服务在机器人行业应用情况(ROS)_第4张图片
图 4 ROS1 通讯系统
DDS数据分发服务在机器人行业应用情况(ROS)_第5张图片
图 5 ROS2 通讯系统

(3)ROS中最重要的一个概念就是“节点”,基于发布/订阅模型的节点使用,可以让开发者并行开发低耦合的功能模块,并且便于进行二次复用。得益于DDS的加入,ROS2的发布/订阅模型也会发生改变。

(4)ROS1的架构中Nodelet和TCPROS/UDPROS是并列的层次,都是负责通讯的,实际上Nodelet是为同一个进程中的多个节点提供一种更优化的数据传输方式。ROS2中也保留了这种数据传输方式,叫“Intra-process”,同样也是独立于DDS。

DDS作为ROS2的核心,最早应用于美国海军,解决舰船复杂网络环境中大量软件升级的兼容性问题,目前已经成为美国国防部的强制标准,同时广泛应用于国防、民航、工业控制等领域,成为分布式实时系统中数据发布/订阅的标准解决方案。其技术核心是以数据为核心的发布/订阅模型(Data-Centric Publish-Subscribe ,DCPS),这种DCPS模型创建了一个“全局数据空间”(global data space)的概念,所有独立的应用都可以访问。在DDS中,每一个发布者或者订阅者都称为参与者(participant),类似于ROS中节点的概念。每一个参与者都可以使用某种定义好的数据类型来读写全局数据空间。
DDS数据分发服务在机器人行业应用情况(ROS)_第6张图片
图 6 DDS 及ROS API 层

4、DDS在该行业的应用价值

引入DDS后,使得ROS2在通信方面有如下提升:

(1)实时性:DDS通过优化的内核机制,实现微秒级的数据传输;纯分布式的系统结构,保证系统内不存在影响实时性的瓶颈节点。

(2)可靠性:DDS提供点到点的信息交互服务,在系统中不存在集中式的代理或服务进程,从而保证整个系统服务不存在单点故障的风险;同时提供可靠传输策略(Reliability QoS),通过重发机制确保数据可靠地传输。

(3)持续性:ROS1尽管存在数据队列的概念,但是还有很大的局限,订阅者无法接收到加入网络之前的数据;DDS可以通过相应的QoS为ROS提供数据历史的服务,新加入的节点也可以获取发布的所有历史数据。

(4)灵活性:应用系统可以根据应用场景需求,灵活选择多种DDS提供的应用级QoS策略(例如可靠性传输、数据过滤、优先级排序等等),以满足系统的灵活性需求。

(5)扩展性:DDS使用“订阅/发布”机制进行数据交互,建立全局的虚拟数据空间,在通信层面将应用逻辑与节点的物理信息解耦合,使系统能够方便的实现节点增减或系统本身的分割/合并,满足系统的扩展性需求;运行时由DDS自动发现并连接设备和应用程序,即插即用,无需系统管理或目录服务。

(6)异构网络支持:DDS通过适配底层多种异构架构网络,对上层提供无差别的通信服务,使通信软硬件层对应用层完全透明。

(7)DDS解决了ROS通信层面的问题,这使操作系统的开发者、应用的开发者得以集中精力专注于业务的研究。

5、国内外该行业应用DDS的现状

5.1 百度Apollo自动驾驶

百度Apollo自动驾驶在ROS中添借助基于RTPS服务协议功能,建立了去中心化的网络拓扑结构,网络构建不会以Master作为中心,而是通过域概念作为划分,所有节点加入域中,会通过RTPS协议相互广播通知其他节点,然后节点间会建立点对点连接,来发布订阅消息,以替代Master作为中央信息交换的功能。

5.2 华为打造ROS无线平台测试床

DDS数据分发服务在机器人行业应用情况(ROS)_第7张图片
图 7 华为打造ROS无线平台测试床

ROS 机器人无线通用平台测试床为基于 ROS2 开源系统的机器人领域从业者和使用者提供标准化、通用化的机器人控制和无线通信承载方案。 1)通过高可靠、高稳定性的无线专网承载技术,提高工业和服务机器人作业的精确控制和 稳定运行,提高机器人的整体使用效率(如在工厂中,可通过人工智能技术,让工厂中的设备可以协助判别产线的良品率,以协助提高工厂的生产效率和品质)。 2)引入机器人控制的分布式架构,提升机器人控制的效率和业务灵活性,进一步丰富机器人的业务使用场景和领域,带动机器人产业技术的持续更新升级。 3)扩展 ROS、DDS 技术和蜂窝无线网络在服务及工业机器人领域的业务应用,为机器人产业提供工业级高品质的无线网络解决方案,并为之创造并扩大在工业、商业、及医疗等相关行业领域的市场空间。

6. 参考资料

1、古月居
2、ROS2探索(一)ROS成长记
3、ROS2探索(二)走近ROS2.0时代
4、ROS2探索(六)迎接ROS2.0时代的到来
5、ROS2探索(七)Why ROS 2.0?
6、ROS2探索(八)What is ROS 2.0 ?
7、ROS探索(四十四)ROS产品化探索之通信机制篇
8、eProsima Fast RTPS
9、ROS2 design
10、ROS ON DDS
11、Next-generation ROS: Building on DDS
12、机器人操作系统ROS(一)-初识
13、WIKI ROS
14、ROS 2 index翻译(二)——ROS 2和不同的DDS/RTPS供应商
15、机器人程序设计之如何正确入门ROS
16、易科机器人小组
17、ROS 1.0 和 ROS 2.0 的前世、今生、安装使用说明与资料汇总
18、基于机器人操作系统ROS的无人驾驶系统,这些优缺点要知道
19、陈家榜:ROS2.0+敏捷5G工业无线,使能未来无线工厂
20、2018 年工业互联网案例汇编
21、ROSCON


译文连载

RTPS规范-译文连载:实时发布订阅协议(RTPS)DDS互操作网络协议规范-中文翻译_001

DDS规范-译文连载:DDS (Data Distribution Service) 数据分发服务-规范中文翻译_001


相关链接

【What:什么是DDS? 】【Why:为什么选择DDS? 】

【How:DDS如何工作?】

DDS科普:一文读懂DDS(数据分发服务)

产品介绍:BLUE DCS分布式数据连接解决方案

产品试用:海蓝云平台-Blue DCS

博文汇总:博文汇总(技术博客_行业应用_规范翻译)


在这里插入图片描述

你可能感兴趣的:(DDS,DDS应用,DDS,ROS)