扫地机器人在客厅里转悠,撞到椅子腿后先退开一下,再转个方向继续前进。看上去它像是把家里的地图画得一丝不差,并且时时刻刻都在计算下一步动作,但实际上,只靠几种非常简单的反应,就能做出这样的动作。如果不怎么思考的机器人反而动得更好,会怎么样呢?由这个问题出发的机器人设计方式,就是“包容架构(Subsumption Architecture)”。
简单来说,包容架构是指“把简单的行为层由下往上一层层叠起来,需要时由上层压住下层的行为并取而代之的机器人控制方式”。它由美国麻省理工学院(MIT)的机器人研究者罗德尼·布鲁克斯(Rodney Brooks)在1986年的论文中首次提出,后来成为行为式机器人学(Behavior-Based Robotics)的起点。
本文将依次介绍包容架构出现的背景、叠层运作的原理、用这种方式制造的机器人,最后谈谈它的优点与局限。
让反应走在思考前面的机器人设计
包容架构出现的背景

直到20世纪80年代,机器人研究的主流做法是先把世界原样搬进脑子里,制定计划之后再行动。
(1) 慢吞吞思考的机器人的局限
20世纪60年代末,美国斯坦福研究所制造的沙基(Shakey)会把周围环境变成由符号构成的模型,在模型上制定好计划之后,才一步一步地行动。计算要花很长时间,在有人来来往往的真实空间里很难及时作出反应。
(2) 感知、规划、行动的单线结构
当时的机器人把感知、建模、规划、行动这几个步骤串成一条线。只要中间有一步卡住,整个机器人就会停下来。
(3) 世界本身就是最好的模型
布鲁克斯主张,不必把世界重新画进脑子里,直接用传感器去看,并立刻作出反应就行了。用他的话说,就是“世界本身就是最好的模型”。
叠层运作的原理

包容架构不用一个庞大的大脑,而是让多个各自只负责一件事的行为层来驱动机器人。
- 避开障碍(Avoid Objects):最下面一层,一旦接近什么东西就停下或绕开。
- 四处游走(Wander):它上面一层,没有固定目标,到处移动。
- 探索(Explore):更上面一层,挑选远处看到的地点并朝那里前进。
所有层同时接收传感器信息,各自独立工作。没有任何一个部分在中央指挥一切。上层通过阻断下层的信号,或换成自己的信号,来决定行为的优先顺序,这被称为抑制(Inhibition)与取代(Suppression)。上层“包容”下层这个名字,也是由此而来。

例如,探索层正命令机器人朝远处的门走去,这时眼前突然出现一个箱子,避开障碍层就会先作出反应,转开身体。过了箱子之后,探索层的命令又接续起来,所以机器人不必修改任何计划,也能自然地找到路。
开发顺序同样是由下往上。先做出最下面一层并充分测试,运转良好后,再在上面加一层新的并重新测试。即使上层坏了,下层依然留着,机器人至少还能不撞东西地继续移动。
用包容架构制造的机器人

布鲁克斯和MIT的研究团队用这一原理制造了好几台能在真实空间里穿行的机器人。
艾伦(Allen),在办公室里四处游走的第一台机器人
艾伦(Allen)是第一台应用包容架构的轮式机器人。它避开人和墙壁,自己在实验室走廊里四处游走。
成吉思(Genghis),用六条腿行走的机器人
成吉思(Genghis)是一台有六条腿的小型步行机器人。每条腿都叠加了简单的反应,因此即使在凹凸不平的地面上,也能像昆虫一样行走。
赫伯特(Herbert),收集空罐子的机器人
赫伯特(Herbert)是一台能在办公室桌子上找到空饮料罐并拿回来的机器人。没有整体地图,只靠对眼前状况作出反应,就完成了相当复杂的工作。
优点与局限

包容架构大大改变了机器人学的方向,但它并不是适用于所有工作的万能方式。
(1) 反应快而且稳健
传感器和行为直接相连,能立即对变化的环境作出反应。即使一层坏了,其余各层仍会继续维持动作,因此不容易停下来。
(2) 不擅长复杂的规划和记忆
由于没有大容量的记忆装置和符号模型,在绘制大范围地图、规划长序列的任务或理解语言方面处于劣势。
(3) 层数越多,协调越难
层数一多,要决定哪一层在什么时候该阻断另一层就变得棘手。因此,如今的机器人常常采用把快速反应层和慢速规划层一起使用的混合方式。
包容架构表明,聪明的行为不一定来自庞大的大脑。就像布鲁克斯共同创办的iRobot的扫地机器人那样,这个想法走出了实验室,走进了我们家的客厅。
1989年,布鲁克斯还与同事安妮塔·弗林(Anita Flynn)发表过一篇论文,提出与其派一台又大又贵的探测器,不如把许多台小而便宜的机器人送往其他行星。这种想法常与后来小型火星探测车的出现一并被人提起。
先教会机器人不撞东西,再在上面一个一个地加上行为,这就是设计能自己行动的机器人的第一步。