1.3 包容式架构(SUBSUMPTION ARCHITECTURE)

假设我们的机器人是在一个虚拟的环境中运行。这个虚拟的环境中,地面是绝对水平的,墙壁是绝对垂直的;同时,传感器是没有误差的,机器人的轮子也是不会打滑的,我们可以精确地通过编码器等传感器来得到机器人的所处位置,以及他与周围环境的相对关系,从而根据程序作出决策。

但是事实上情况完全不是这么理想。再平坦的地面也会有起伏,更不要说野外的地形环境;超声声纳返回的数据有时候会产生很大的误差,甚至激烈地跳变;当机器人启动和停下的时候,它的轮子是一定会打滑的。由于机器人所处的真实世界主要为非结构化的动态环境,往往会遇到事先完成的程序规划说没有考虑到的问题。这样的环境下,我们遇到的情况往往是,预先规划好的决策程序,在实际中会遇到各种各样的麻烦而根本无法像我们设想的那样工作。

包容式架构和基于行为的机器人控制模型就是主要为了解决这一问题而产生的。集中式架构、分层式架构在机器人控制中产生的种种问题主要根源于:

1, 环境的复杂性和环境模型的误差;

2, 环境的不可预知性;

3, 对环境感知不精确带来的不稳定性。

程控架构解决不了后两个问题。而通过包容式架构和基于行为的控制模型却可以较好地解决这两个问题,虽然可能会牺牲一些效率。

为了简单地说明这两种控制架构之间的差别,我们举一个简单的例子(可能不太贴切):假设有一台扫地机器人,它的任务是要走遍整个房间,同时把房间打扫干净。如果我们采用规划模型完成这个任务,那么机器人可能会按照预先设定的一定的路径,把整个地面遍历一次或多次,但是如果中间碰到了一个规划的时候忽略了的椅子,那么这个机器人很可能就会偏航,从而永远无法完成扫地的任务;如果采用基于行为的模型,那么机器人可能会到处乱走,并根据碰到的情况调整行走的方向,但是最终这个机器人也能够磕磕碰碰地完成打扫房间的任务。

分层式结构能够较好地解决智能和控制精度的关系,创造一种良好的自主式控制方式。然而由于上文所述的三种问题,使得分层式体系结构在灵活性、实时性和适应性方面经常存有缺陷。

针对上述缺点,美国麻省理工学院的R.Brooks从研究移动机器人控制系统结构的角度出发,提出了基于行为的体系结构―包容式体系结构(Subsumption Architecture)。与分层式体系结构把系统分解成功能模块,并按感知―规划―行动(Sense-Planning-Action,SPA)过程进行构造的串行结构不同(如下图所示);

包容式体系结构是一种完全的反应式体系结构,是基于感知与行为(Sense-Action,SA)之间映射关系的并行结构(如下图所示)。在包容式结构中,上层行为包含了所有的下层行为,上层只有在下层的辅助下才能完成自己的任务;另一方面下层并不依赖于上层,虽然上层有时可以利用或制约下层,然而下层的内部控制与上层无关,增减上层不会影响下层。

在基于行为的模型中,参与控制的是各异的、并有可能不兼容的多个行为,每个行为负责机器人某一特定目标的实现或维护,如跟踪目标或避障等。多个行为往往可能产生互相冲突的控制输出命令。因而系统首先需解决的一个问题是多行为的协作,即通过构造有效的多行为活动协调机制,实现合理一致的整体行为。

同样以上面的扫地机器人为例子。我们可以把“打扫整个房间”分解为“前进并扫地”、“避开左侧障碍物”、“避开右侧障碍物”、“避开前方障碍物”这几个基本的行为。机器人一开始对自己的任务不做任何规划,只是简单地前进。当遇到障碍物时,相应的行为被激活,产生一个给驱动执行机构的输出,执行相应的动作。再通过一个合理的仲裁器(例如一个FSM状态机),来决定如果多种行为产生冲突时的优先级。

这样看似简单的逻辑却具有很好的适应能力。这样一个扫地机器人最终必然能够把屋子打扫干净。但是不幸的是,如果运气不够好,他打扫完整个房间可能要花上几个小时。

上面谈到行为协作机制的实现方法可分为两类:仲裁和命令合成。采用仲裁方法的行为协作在同一时间允许一个或一系列行为实施控制,下一时间又转向另一组行为。而命令合成关心的是如何将各个行为的结果最终合成为一个命令,输入到机器人的执行机构。它允许多个行为都对机器人的最终控制产生作用,这种方法适用于解决典型多行为问题,如在自由空间漫游的机器人,同时需避开遇到的障碍物。仲裁机制和命令合成机制均有着许多具体的实现策略,各有其优势和不足之处。

1.4 混合式架构(HYBRID ARCHITECTURE)

包容式架构强调模块的独立、平行工作,但缺乏全局性的指导和协调,虽然在局部行动上可显示出灵活的反应能力和鲁棒性,但是对于长远的全局性目标跟踪显得缺少主动性,目的性较差。例如上文举例的扫地机器人。包容式架构和行为模型为机器人提供了一个高鲁棒性、高适应能力和对外界信息依赖更少的控制方法。但是它的致命问题是效率。因此对于一些更加复杂的应用,可能需要混合式架构,以融合程控架构和包容式架构/行为模型的优点,尽量避免它们各自的缺点。

通常,混合式架构在较高级的决策层面采用程控架构,以获得较好的目的性和效率;在较低级的反应层面采用包容式架构,以获得较好的环境适应能力、鲁棒性和实时性。

Gat提出了一种混合式的三层体系结构,分别是:反应式的反馈控制层(Controller),反应式的规划―执行层(Sequencer)和规划层(Deliberator)。博创科技推出的UP-VoyagerIIA机器人即采用了基于行为的混合分层控制架构,该架构包括用户层、自主规划决策层、行为层和执行控制层四个层次。用户层主要处理用户与机器人的交互;主要用于传递给用户必要的信息并接受用户的指令;自主规划决策层完成一些高层的自主决策,例如遍历房间,或者移动到给定位置而不碰到突然出现的障碍物;行为层包括避碰、低电压保护、扰动、逃离等一些行为,可以不在上层的控制下自主执行。执行控制层则是把传感器的非符号化数据转变为符号化数据供上层读取,或者用自动控制理论和方法高速地控制执行器的运作。

下图是一个典型的混合式架构的系统框图。