概述
如果说驱动子系统是机器人的肌肉,能源子系统是机器人的心脏,那么控制和决策子系统就是机器人的大脑。这是机器人最重要、最复杂的一个子系统。
机器人是一种高度复杂的自动化装置。其控制子系统也是直接来源于自动化领域的其他应用,例如工厂自动化领域中所用到的处理器、电路以及标准。本章仅仅列举并对比了几种常见的、典型的控制系统拓扑结构,然后分析了几个典型的机器人控制子系统的构成,特别是详细说明了“创意之星”机器人的控制架构。
4.1 典型的几种机器人控制架构(ARCHITECHURE)
这里我们不讨论传统的工业机器人,主要关注的是自主移动机器人、仿生机器人等新形态的机器人。通常,机器人的架构是指如何把感知、建模、规划、决策、行动等多种模块有机地结合起来,从而在动态环境中,完成目标任务的一个或多个机器人的结构框架。总的说来,当前自主机器人的控制架构可分为下述几类:
1. 程控架构,又称规划式架构,即根据给定初始状态和目标状态规划器给出一个行为动作的序列,按部就班地执行。较复杂的程控模型也会根据传感器的反馈对控制策略进行调整,例如在程序的序列中采用“条件判断+跳转”这样的方法。
2. 包容式架构和基于行为的控制模型,又称为反应式模型,复杂任务被分解成为一系列相对简单的具体特定行为,这些行为均基于传感器信息并针对综合目标的一个方面进行控制。基于行为的机器人系统对周围环境的变化能作出快速的响应,实时性好,但它没有对任务做出全局规划,因而不能保证目标的实现是最优的。
3. 混合式架构,是规划和基于行为的集成体系,不仅对环境的变化敏感,而且能确保目标的实现效率。通常混合式架构有两种模式:一种模式是,决策系统的大框架是基于规划的,在遇到动态情况时再由行为模型主导;另一种模式是,决策系统的大框架基于行为,在具体某些行为中采用规划模型。总之,混合式架构的设计目的是尽可能综合程控架构和包容式架构的优点,避免其缺点。
下面几小节对以上三种架构进行初步的讨论。更进一步的资料,请参阅相关文献。本书的附录中列出了一些可供参考阅读的书籍资料。
4.1.1 集中程控架构
传统的机器人大都是工业机器人。他们通常工作在流水线的一个工位上,每个机器人的位置是已知、确定的;设计者在每台机器人开始工作之前也很清楚他的工作是什么,他的工作对象在什么位置。这种情况下,对机器人的控制就变成了数值计算,或者说“符号化”的计算。例如,我们通过实地测量可以得到一台搬运机器人的底座的坐标;再通过空间机构几何学的计算(空间机器人的正解、逆解),可以得到机器人的各个关节处于什么样的位置的时候其末端的搬运装置可以到达给定位置。这样,机器人控制策略设计者是在一个静态的、结构化的、符号化的环境中编写策略;他不需要考虑太多的突发情况,至多需要考虑一些意外,例如利用简单的传感器检测应该被搬运的工件是否在正确的位置,从而决定是否报警或者停止工作等等。
这类机器人通常由一个单独的控制器。这个控制器收集从机器人各个关节、各个附加传感器传送来的位置、角度等信息,通过控制器处理后,计算机器人下一步的工作。整个机器人是在这个控制器的控制下运作,对于一些异常的处理也在程序的设定范围内。下图是两个典型的采用集中式系统架构的移动机器人框图。左侧的框图的控制器是一台PC机,它担负了所有的信息采集、处理和控制功能;右图是经过改进的机器人架构:在PC机之外,增加了一个DSP控制器,承担了PC机的部分工作。但是,这两种架构下控制器的负担都相当重,并且如果控制器出现故障,整个机器人将会瘫痪。
对于上面描述的工作内容,程控式、集中控制式结构是非常理想的。如前所述,机器人不会遇到太多动态的、非符号化的环境变化,并且控制器能够得到足够多的、准确的环境信息。设计者可以在机器人工作前预先设计好最优的策略,然后让机器人开始工作,过程中只需要处理一些可以预料到的异常事件。
但是,假设我们要设计一个在房间里漫游的移动机器人,房间的大小未知;并且我们也无法准确地得到机器人在房间中的相对位置,这种架构将无法获得足够的信息,并且无法处理未知的突发情况。因此对于传统意义之外的机器人,例如移动机器人、宠物机器人等,程控式控制架构就很难适应了。
集中式程控架构的优点是系统结构简单明了,所有逻辑决策和计算均在集中式的控制器中完成。这种架构很清晰:控制器是大脑,其他的部分不需要有处理能力。
而对于仿生机器人、在未知环境中工作的机器人,一个大脑处理所有事情真的合适吗?
考虑蚯蚓、蜈蚣之类的低等生物。它们的大脑很不发达(甚至没有大脑),反而具有一个很发达的脊索或者很夺个神经节。大部分是这些分布在全身的神经节在主导它们的活动和反应,而不是大脑。
读者在中学生物课中应该做过这么一个试验:
用一个小锤子,轻轻地敲膝盖以下的位置。你会发现小腿不受控制地自动抬起。这是著名的“膝跳反射”试验。这个实验说明,即使是人类这样的高等生物,也不是全部的生命活动都在大脑的控制之下。设想一个具有人类全部功能的机器人。它有数百个电动机对应人类的数百块肌肉,有数万个传感器,对应人类的皮肤、眼睛、鼻子和耳朵等。如果采用集中式控制架构,这个机器人的大脑将很难负荷如此庞大的数据运算和决策。
因此对于工业机器人之外的其他机器人,发展出了分层式控制架构、包容式架构,以及混合式架构等更适合其特点的控制架构。
4.1.2 分层式架构(LAYERED ARCHITECTURE)
分层式架构是随着分布式控制理论和技术的发展而发展起来的。分布式控制通常由一个或多个主控制器和很多个节点组成,主控制器和节点均具有处理能力。其中心思想是:主控制器可以比较弱,但是大部分的非符号化信息已经在其各自的节点被处理、符号化,再传递给主控制器来进行决策判断。单个节点分布式控制模型已经被广泛应用在大型工厂、楼宇等结构复杂、传感器和执行器很多的场合中。
分层式架构是基于认知的人工智能(Artificial Intelligence, AI)模型,因此也称之为基于知识的架构。在AI模型中,智能任务由运行于模型之上的推理过程来实现,它强调带有环境模型的中央规划器,它是机器人智能不可缺少的组成部分,而且该模型必须准确、一致。分层式架构是把各种模块分成若干层次,使不同层次上的模块具有不同的工作性能和操作方式。
通过对分布式系统中不同功能的节点进行功能层次划分,即得到了分层式架构。
分层式架构中最有代表性的是由20世纪80年代智能控制领域著名学者Saridis提出的三层模型。Saridis认为随着控制精度的增加,智能能力减弱,即层次向上智能增加,但是精度降低,层次向下则相反。按照这一原则,他把整个结构按功能分为三个层次,即执行级、协调级和组织级。其中,组织级是系统的“大脑”,它以人工智能实现在任务组织中的认知、表达、规划和决策;协调级是上层和下层的智能接口,它以人工智能和运筹学实现对下一层的协调,确定执行的序列和条件;执行级是以控制理论为理论基础,实现高精度的控制要求,执行确定的运动。需要指出的是,这仅仅是一个概念模型,实际的物理结构可多于或少于三级,无论多少级,从功能上来说由上到下一般均可分为这三个层次。信息流程是从低层传感器开始,经过内外状态的形势评估、归纳,逐层向上,且在高层进行总体决策;高层接受总体任务,根据信息系统提供的信息进行规划,确定总体策略,形成宏观命令,再经协调级的规划设计,形成若干子命令和工作序列,分配给各个控制器加以执行。
在分层式架构中,最广泛遵循的原则是依据时间和功能来划分架构中的层次和模块。其中,最有代表性的是美国航天航空局(NASA)和美国国家标准局(NBS)提出的NASREM的结构。其出发点之一是考虑到一个智能机器人可能有作业手、通讯、声纳等多个被控分系统,而这样的机器人可能组成一个组或组合到更高级的系统中,相互协调工作;出发点之二是考虑已有的单元技术和正在研究的技术可以应用到这一系统中来,包括现代控制技术和人工智能技术等。整个系统横向上分成信息处理、环境建模和任务分解三列,纵向上分为坐标变换与伺服控制、动力学计算、基本运动、单体任务、成组任务和总任务六层,所有模块共享一个全局数据库,如下图所示。
NASREM结构的各模块功能和关系非常清楚,有利于系统的构成和各模块内算法的添加和更换。它具有全局规划和推理的能力,对复杂的环境可以做出合理的反应,适合于一个或一组机器人的控制。但同其它的分层式架构一样,NASREM的问题在于输入环境的信息必须通过信息处理列的所有模块。结果往往是将简单问题复杂化,影响了机器人对环境变化的响应速度,而机器人非常重要的一个性能就是对环境变化、意外事件的发生等要求作出迅速反应。因此,分层式架构从理论上只适合于那些有一定的位置环境信息、在轻微非结构化环境工作的机器人。但是由于总线技术、实时控制技术的高速发展,分层式架构的最致命弱点之一:响应较慢等问题也得到了一定程度的缓解。由于分层式架构也较为成熟,因此还有大量的移动机器人、玩具机器人使用这种架构,并在一定程度上融入了包容式架构和混合式架构中。
4.1.3 包容式架构(SUBSUMPTION ARCHITECTURE)
假设我们的机器人是在一个虚拟的环境中运行。这个虚拟的环境中,地面是绝对水平的,墙壁是绝对垂直的;同时,传感器是没有误差的,机器人的轮子也是不会打滑的,我们可以精确地通过编码器等传感器来得到机器人的所处位置,以及他与周围环境的相对关系,从而根据程序作出决策。
但是事实上情况完全不是这么理想。再平坦的地面也会有起伏,更不要说野外的地形环境;超声声纳返回的数据有时候会产生很大的误差,甚至激烈地跳变;当机器人启动和停下的时候,它的轮子是一定会打滑的。由于机器人所处的真实世界主要为非结构化的动态环境,往往会遇到事先完成的程序规划说没有考虑到的问题。这样的环境下,我们遇到的情况往往是,预先规划好的决策程序,在实际中会遇到各种各样的麻烦而根本无法像我们设想的那样工作。
包容式架构和基于行为的机器人控制模型就是主要为了解决这一问题而产生的。集中式架构、分层式架构在机器人控制中产生的种种问题主要根源于:
1, 环境的复杂性和环境模型的误差;
2, 环境的不可预知性;
3, 对环境感知不精确带来的不稳定性。
程控架构解决不了后两个问题。而通过包容式架构和基于行为的控制模型却可以较好地解决这两个问题,虽然可能会牺牲一些效率。
为了简单地说明这两种控制架构之间的差别,我们举一个简单的例子(可能不太贴切):假设有一台扫地机器人,它的任务是要走遍整个房间,同时把房间打扫干净。如果我们采用规划模型完成这个任务,那么机器人可能会按照预先设定的一定的路径,把整个地面遍历一次或多次,但是如果中间碰到了一个规划的时候忽略了的椅子,那么这个机器人很可能就会偏航,从而永远无法完成扫地的任务;如果采用基于行为的模型,那么机器人可能会到处乱走,并根据碰到的情况调整行走的方向,但是最终这个机器人也能够磕磕碰碰地完成打扫房间的任务。
分层式结构能够较好地解决智能和控制精度的关系,创造一种良好的自主式控制方式。然而由于上文所述的三种问题,使得分层式体系结构在灵活性、实时性和适应性方面经常存有缺陷。
针对上述缺点,美国麻省理工学院的R.Brooks从研究移动机器人控制系统结构的角度出发,提出了基于行为的体系结构―包容式体系结构(Subsumption Architecture)。与分层式体系结构把系统分解成功能模块,并按感知―规划―行动(Sense-Planning-Action,SPA)过程进行构造的串行结构不同(如下图所示);
包容式体系结构是一种完全的反应式体系结构,是基于感知与行为(Sense-Action,SA)之间映射关系的并行结构(如下图所示)。 在包容式结构中,上层行为包含了所有的下层行为,上层只有在下层的辅助下才能完成自己的任务;另一方面下层并不依赖于上层,虽然上层有时可以利用或制约下层,然而下层的内部控制与上层无关,增减上层不会影响下层。
在基于行为的模型中,参与控制的是各异的、并有可能不兼容的多个行为,每个行为负责机器人某一特定目标的实现或维护,如跟踪目标或避障等。多个行为往往可能产生互相冲突的控制输出命令。因而系统首先需解决的一个问题是多行为的协作,即通过构造有效的多行为活动协调机制,实现合理一致的整体行为。
同样以上面的扫地机器人为例子。我们可以把“打扫整个房间”分解为“前进并扫地”、“避开左侧障碍物”、“避开右侧障碍物”、“避开前方障碍物”这几个基本的行为。机器人一开始对自己的任务不做任何规划,只是简单地前进。当遇到障碍物时,相应的行为被激活,产生一个给驱动执行机构的输出,执行相应的动作。再通过一个合理的仲裁器(例如一个FSM状态机),来决定如果多种行为产生冲突时的优先级。
这样看似简单的逻辑却具有很好的适应能力。这样一个扫地机器人最终必然能够把屋子打扫干净。但是不幸的是,如果运气不够好,他打扫完整个房间可能要花上几个小时。
上面谈到行为协作机制的实现方法可分为两类:仲裁和命令合成。采用仲裁方法的行为协作在同一时间允许一个或一系列行为实施控制,下一时间又转向另一组行为。而命令合成关心的是如何将各个行为的结果最终合成为一个命令,输入到机器人的执行机构。它允许多个行为都对机器人的最终控制产生作用,这种方法适用于解决典型多行为问题,如在自由空间漫游的机器人,同时需避开遇到的障碍物。仲裁机制和命令合成机制均有着许多具体的实现策略,各有其优势和不足之处。
4.1.4 混合式架构(HYBRID ARCHITECTURE)
包容式架构强调模块的独立、平行工作,但缺乏全局性的指导和协调,虽然在局部行动上可显示出灵活的反应能力和鲁棒性,但是对于长远的全局性目标跟踪显得缺少主动性,目的性较差。例如上文举例的扫地机器人。包容式架构和行为模型为机器人提供了一个高鲁棒性、高适应能力和对外界信息依赖更少的控制方法。但是它的致命问题是效率。因此对于一些更加复杂的应用,可能需要混合式架构,以融合程控架构和包容式架构/行为模型的优点,尽量避免它们各自的缺点。
通常,混合式架构在较高级的决策层面采用程控架构,以获得较好的目的性和效率;在较低级的反应层面采用包容式架构,以获得较好的环境适应能力、鲁棒性和实时性。
Gat提出了一种混合式的三层体系结构,分别是:反应式的反馈控制层(Controller),反应式的规划―执行层(Sequencer)和规划层(Deliberator)。博创科技推出的UP-VoyagerIIA机器人即采用了基于行为的混合分层控制架构,该架构包括用户层、自主规划决策层、行为层和执行控制层四个层次。用户层主要处理用户与机器人的交互;主要用于传递给用户必要的信息并接受用户的指令;自主规划决策层完成一些高层的自主决策,例如遍历房间,或者移动到给定位置而不碰到突然出现的障碍物;行为层包括避碰、低电压保护、扰动、逃离等一些行为,可以不在上层的控制下自主执行。执行控制层则是把传感器的非符号化数据转变为符号化数据供上层读取,或者用自动控制理论和方法高速地控制执行器的运作。
最后
以上就是活泼蜡烛为你收集整理的典型的几种机器人控制架构介绍的全部内容,希望文章能够帮你解决典型的几种机器人控制架构介绍所遇到的程序开发问题。
如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。
发表评论 取消回复