布鲁克斯在他的一篇论文里首先阐述了怎样使创造物“无知无觉”地走路的方法:
没有所谓的中央控制器来指导身体把脚放在哪里,或者跨过障碍时要把腿抬多高。实际上,每条腿都有权做些简单动作,而且每条腿都能独立判断在不同环境下该如何行事。举例来说,一个基本动作的意识是,“如果我是腿而且抬起来了,那么我要落下去”,而另一个基本动作的意识可描述为,“如果我是腿在向前动,得让那五个家伙稍微拖后一点”。这些意识独立存在且随时待机,一旦感知的先决条件成立就会触发。接下来,要想开步行走,只需按顺序抬起腿(这是唯一可能需要中央控制的地方)。一条腿一抬起来就会自动向前摆动,然后落下。而向前摆动的动作会触动其余的腿略微向后挪动一点。由于那些腿正好接地,身体就向前移动了。
一旦机器生物能在平滑表面稳步前行了,就可以增添一些其他动作使它走得更好。要让成吉思翻越横亘在地板上的电话簿,需要安装一对触须,用来把地面上的信息传递回第一组腿。来自触须的信号可以抑制电机的动作。此规则可能是,“如果你感觉到什么,我就停下;不然我还接着走。”
成吉思在学会爬过障碍物的同时,其基本的行走模式却未受到丝毫扰乱。布鲁克斯借此阐释了一个普适的生物原则――一个神律:当某个系统能够正常运转时,不要扰乱它;要以它为基层来构建。在自然体系中,改良就是在现存的调试好的系统上“打补丁”。原先的层级继续运作,甚至不会注意到(或不必注意到)其上还有新的层级。
当你的朋友告诉你走哪条路去他家的时候,绝不会顺便告诫你“千万别撞车”,即便你确实必须遵守此训诫。他们不需要就那个低层次的目标和你沟通,因为你熟练的驾车技术早已保证那个目标会轻易实现。而走哪条路去他家就属于高层次的活动了。
动物(在进化过程中)的学习方式与此类似。布鲁克斯的移动机器人亦是如此。它们通过建立行为层级来学会穿越复杂的世界,其顺序大致如下:
l 避免碰触物体
l 无目地漫游
l 探索世界
l 构造内在地图
l 注意环境变化
l 规划旅行方案
l 预见变化并相应修正方案
在碰到障碍物的时候,负责无目的漫游的部门不会大惊小怪,因为负责避免碰触物体的部门早已对此应对自如了。
布鲁克斯移动机器人实验室的研究生们制作了一个拾荒机器人,他们开心地称它为“搜集癖好机”――一到晚上,它就在实验室里四处搜集空饮料罐。它的无目的漫游部门让它在每个房间里晃来荡去;避免碰触部门则保证它在漫游的时候不会磕碰上家具。
搜集癖好机整晚地闲逛,直到它的摄像头侦测到桌子上一个饮料罐形状的物体。信号触动移动机器人的轮子,将其推进到饮料罐正前方。搜集癖好机的胳膊并不需要等待中枢大脑(它也没脑子)发出指令,就能够通过周围环境“了解”自己所处的位置。它的胳膊上连有传递信号的导线,以便胳膊能够“看”到轮子。如果它察觉,“咦,我的轮子停下了”,它就知道,“我前面肯定有个饮料罐”。于是,它伸出胳膊去拿罐子。如果罐子比空罐子重,就留在桌子上;如果和空罐子一样轻,就拿走。机器人手拿着空罐子继续无目的地漫游(因为有避免碰触部门的帮助,它不会撞墙或磕到家具),直到偶遇一只回收筒。这时,轮子就在回收桶前停下。傻乎乎的胳膊会“查看”自己的手是否拿着罐子,是,就会扔进回收筒。如果不是,就再次在办公室里四处漫游,直到发现下一个罐子为止。
这个荒唐的、“撞大运”的回收系统效率极其低下。但夜复一夜,在没有什么其他事好做的情况下,这个傻乎乎却很可靠的拾荒者居然搜集到数量可观的铝罐子。