机器人系统中的常见概念

摘要

研一学了一年的机器学习,结果研二半路出家,要搞机器人。真是没有一点点防备。WTF。
过去一个月,读了一些关于机器人系统的综述,接触到了多机器人,群机器人,云机器人这些概念,这篇文章总结了一些个人对这些概念的简单理解,并对相关论文进行简单介绍。

多机器人

在论文中经常出现multi-robot这个词,对应的系统称为multi-robot system,简称MRS。一般翻译为多机器人。多机器人的概念是与单机器人相对应的。有些时空相关的任务是单个机器人无法完成的,比如要在同一时间在两个不同的地方完成数据采集。另一方面多个机器人同时协作完成某个工作时能够比单个机器人效率更高。比如利用多个机器人对某个空间进行地图构建。因此多机器人系统通常的定义为:多个机器人协同工作,完成单个机器人无法完成的任务,或改善工作过程,并获得更优的系统性能。
多机器人系统往往是针对任务进行构建的。常见的任务包括聚集(Aggregation),觅食(Foraging),编队(Formation),探索与覆盖等。根据特定的任务,多机器人系统强调对机器人的全局调度、协调与分配,因此往往离不开一个控制系统,这个控制系统可以是集中式的,也可以是分布式的。在控制系统的协调之下,多机器人系统在完成任务时会呈现出明显的协作能力。

论文“协作多机器人系统研究进展综述”是2011年的一篇中文综述。这篇文章从体系结构,环境感知和优化控制三个方面对多机器人系统进行阐述,包括常用的解决方法以及所面临的挑战。

论文“A Survey and Analysis of Multi-Robot Coordination”是2013年的综述。这篇文章从单机器人与多机器人的对比,多机器人协作与竞争的对比,资源冲突,静态调度和动态调度,显式通信和隐式通信的对比,任务配分和行为规划,集中式决策和分布式决策这几个方面展开了讨论,并且引用了很多相关工作。引用的相关工作很多都是顶级会议的文章,因此引用质量比较高。

群机器人

在论文中经常出现的另一种机器人系统称为swarm robot,一般翻译为群机器人。群机器人的提出主要是仿生学在多机器人系统上的应用。在观察蜂群蚁群等生物在进行群体运作机制时发现,这些生物群体在进行群体活动时不依赖控制系统,而是通过局部交互和自组织作用,使整个系统呈现协作,有序的状态。这种群体活动方式在运作过程中并不关心全局的信息。群机器人系统就是利用这种生物运作机制构建的。

以下将从任务,系统的组成以及完成协作的方式三个方面对群机器人系统和多机器人系统进行对比。
从任务上来说,群机器人系统与多机器人系统有很多相似的地方,但总的来说群机器人适合于大空间,无时间要求的重复性任务,而多机器人系统适合于协作性较强的,相对复杂的任务。这是由系统组成和协作方式决定的。
从系统组成上来看,群机器人系统往往由相同的机器人组成而且数目众多,每个机器人的智能水平比较低,因此功能都相对简单。多机器人系统的组成不限定机器人必须是相同的。多机器人系统可以由不同类型的机器人组成,而且往往规模比较小。每个机器人的智能水平比较高,功能相对复杂。
从协作方式上来看,群机器人系统通过本地交互,得到全局的协作,在机器人进行交互和协作时往往不知道全局的信息和任务进度情况。而多机器人系统恰恰相反。多机器人系统的控制系统往往可以得到全局的信息和任务进度情况,并根据这些信息对所有机器人进行调度,协调与分配,从而使机器人系统达到最终的协作能力。
因此无论是群机器人的本地交互,还是多机器人的全局控制,如何设计算法实现协作机制是两者关注的重点。

论文”Towards practical application of swarm robotics: overview of swarm tasks“是2014年的综述,对群机器人的任务进行了简单的阐述。论文篇幅比较短。

论文“An Overview of Swarm Robotics: Swarm Intelligence Applied to Multi-robotics”是2015的综述。这篇文章主要说明了多机器人和群机器人之间的区别,并且介绍了一些成功应用的群机器人项目,以及仿真平台。

论文”A review of swarm robotics tasks“是2016年的综述。这篇文章将群机器人的任务分为了9大类,并对这9大类任务从Methods,Algorithms和Analysis三个方面对每一类任务进行了详细的阐述,很有指导意义。论文篇幅比较长。

论文“Programmable self-assembly in a thousand-robot swarm”是2014年Nature杂志上的一篇文章。在这篇文章中,大规模机器人群体根据指定的形状,只通过局部的交互,完成了指定形状的编队。这是群机器人的典型应用。

云机器人

Cloud Robotics是2010年才被首次提出的概念,一经提出就引起广泛的讨论。与多机器人系统和群机器人系统关注怎么设计机器人之间的协作方式来完成指定任务不同,云机器人强调的是机器人本身能力的扩展,而且这种能力的扩展是在通过云端提供服务的帮助下完成。从定义上来讲,云机器人将计算和存储卸载到云端,利用云端来进行计算和存储,从而极大的增强了计算和存储能力。从这个定义上来讲,云机器人系统是单机器人的。但当云端对多个云机器人上传的数据进行分析与共享,并为同一个任务目标为多个机器人提供任务规划和服务时,此时云机器人系统是多机器人的,从完成任务的角度上来说,此时的云机器人系统甚至就是一个多机器人系统。总的来说,云机器人系统是工具性质的,平台性质的,其目的就是扩展机器人的能力,而不增加机器人本身的复杂程度。利用这样的工具和平台,增强机器人的能力之后,即可以构建单机器人任务,也可以构建多机器人任务。

云机器人系统的研究包括机器人如何进行计算卸载,云端如何进行资源调度和分配,安全问题,通信问题等等。这些研究的很多方面与多机器人系统是类似的。但与传统的多机器人系统相比,在完成相同任务时云机器人系统有几个明显的优势。第一,云计算为机器人提供了强大的计算能力。第二,存储在云端的大数据,解决了机器人数据存储能力有限的缺点。第三,机器人的协作可以通过云端的数据分析与共享来完成。而在面对不同任务时,云机器人系统具有扩展性高,可利用的资源更丰富等优点。但将云机器人扩展到多机器人的难点在于如何分析与共享机器人上传的数据,使这些机器人依靠云端形成协作的能力。这与多机器人系统关注的协作方式是有相同点的。

云机器人系统另外一个很重要的关注点在于如何寻找机器人完成某些任务时,关于计算和存储的共性需求,寻找到这些共性需求之后,云端就可以根据这些需求设计服务。因此云机器人率先在SLAM,抓取任务方面取得了一些实质性的研究进展。因为在SLAM和抓取任务中,数据量和计算量都比较大,根据这些需求设计云端服务相对简单。

论文“Cloud Robotics: Architecture, Challenges and Applications”是2012年的综述,是云机器人方面比较早并且引用比较多的综述。文章提出了M2M层和M2C层的系统结构,并且提出了Peer-Based Model,Proxy-Based Model ,Clone-Based Model三种计算模型。

论文”云机器人的研究进展“和”云机器人: 概念, 架构与关键技术研究综述“是2014年的中文综述,与2012年的英文综述类似。

论文”Cloud Robotics: Current Status and Open Issues“是2016年的综述。这篇文章从云集算,大数据,开源资源,机器人协作学习和网络连接等角度展开了关于云机器人的讨论,相对来说与上述的三篇综述有角度上的区别。

论文”Study and evaluation of intensive distributed computing platforms on external systems for embedded systems“是2015年的一篇博士论文,以构造一个立体视觉(Stereo Vision)的导航助手(Navigation Assistance)为例,分析了云机器人的优势所在,并尝试建立云机器人系统通用的设计模式和理论模型。在关于云机器人在SLAM,物体监测和追踪等应用方面的总结很详细,并且引用的论文都比较新。值得深入研究。

关于上述论文中出现率极高的几个云机器人项目,包括DAvinCi,RoboEarth,UNR-PF,Rapyuta等,都是深入云机器人领域研究极佳的材料。
DAvinCi: A cloud computing framework for service robots” 2010
RoboEarth: A World Wide Web for Robots” 2011
Unr-pf: An open-source platform for cloud networked robotic services” 2012
Rapyuta: The roboearth cloud engine” 2013

小结

本文从多机器人,群机器人和云机器人这三个概念出发,对这几个机器人系统展开了简单的讨论,未深入到具体的技术细节。这些讨论都是基于个人的理解,不足之处望指正。
关于上述提到的几个云机器人项目,学习之后再进行深入探讨和总结。
以上。