瓦尔特1910年出生于美国[1],幼年由于父母的缘故,来到英语求学。后来成为一名神经科学家。一生多数时间在美国做研究。为了研究大脑和神经反应,1948至1949年间,瓦尔特制作了一个被自己称为“机器冒险者(拉丁语为MachinaSpeculatrix)”的机械装置。希望通过让机器装置来模仿人类,研究神经反应和人类的行为。
“机器冒险者”采用了三轮结构,一个转向轮,两个驱动轮。前面的转向轮用于控制方向,两个后轮用来驱动整个机构。
瓦尔特和他的“机器冒险者”
瓦尔特在这个三轮“机器冒险者”的上面遮盖了一个外壳,看起来非常可爱,像一只大乌龟。人们称其为瓦尔特的“乌龟”,这只“乌龟”也是人类历史上第一个自主移动的机器人。
瓦尔特的“乌龟机器人”对机器人学、人工智能产生重大影响。很多人在瓦尔特的“乌龟机器人”影响中成长起来。
其中,1956年有一位大学生伊万·苏泽兰(Ivan Sutherland)给瓦尔特写了一封信,信中苏泽兰虚心地向瓦尔特请教、征求意见。
谁是伊万·苏泽兰?
伊万·苏泽兰1938年出生于美国,ACM图灵奖获得者,图形用户界面(Graphical UserInterface ,简称GUI)的发明者,我们现在用的Windows界面就是一种图像界面,他还发明了SketchPad,允许用户直接用笔在屏幕上画图,是手指交互的先驱(智能手机上用手机交互),当然那时候是用一支笔进行交互。他还是头戴式虚拟现实头盔的发明者,我们现在看到的HTC VIVE,Play Station VR就是这类设备,这位伊万·苏泽兰被后人称为“虚拟现实之父”。
伊万·苏泽兰与虚拟现实
2016年苏泽兰还受邀来到上海,做了一场报告。
1967年MIT人工智能实验室的教授们发明了PDP1 计算机,但是没有显示器。为了让孩子能使用这样的计算机,他们用电话线将计算机与一个机器人连在一起,通过机器人的运动来观察计算机的计算结果。受威廉姆·格雷·瓦尔特的“乌龟机器人”的启发,他们的机器人也有一个“乌龟”的外形。
PDP 1计算机
MIT的乌龟机器人
未了能够有效地控制这样的“乌龟机器人”,他们发明的Logo语言,并开发了一个仿真环境,显示乌龟的小图标。
设计Logo的本意是为了以某种合适的方式,向儿童教授计算机编程。后来的仿真环境就是Logo的海龟绘图(Turtle Graphics)系统,通过向海龟发送命令,用户可以直观地学习程序的运行过程,因此它很适合于儿童学习。
海龟绘图使得Logo用户可以通过简单的编程创作出丰富多彩的视觉效果或图案。假想一只带着画笔的海龟可以接受简单的命令,例如向前走50步,右转90度,再向前走50步,再右转90度。通过对这只海龟发送命令,可以让它绘制出较为复杂的图形,例如正方形,三角形,圆等。海龟的移动相对于它本身所在的位置。
例如,命令”右90″意味着让海龟右转90度,学习者可以站在海龟的角度来思考它将如何执行命令,这使得程序设计更加形象化,也更易于理解。
向前50步 右转90度 向前50步 右转90度
Logo中的小乌龟
为了让编程更有趣,当时在美国施乐公司帕克研究中心(Xerox PARC)参考威廉姆·格雷·瓦尔特的工作开发了一款机器人,背上也背了一个大壳,可以在地板上运动。通过编程,输入指令,可以让这个机器人前进,还可以让它原地转动。它的动作非常慢,大家称其为“乌龟”。
人们用Logo语言来控制这个海龟的机器人。下图就是这个海龟机器人。海龟机器人底部有一只画笔,在移动和转动的时候,可以在地板上留下画笔的痕迹。根据计算机输入的指令和海龟机器人的移动,就可以在地面上画出不同形状的图形。
下图就是这个“乌龟”机器人。
乌龟机器人与Logo编程语言
还有一些其他类型、现代版的乌龟机器人。
现代仿真的乌龟机器人
乌龟(Turtle)在机器人领域基本成了机器人的代名词了。有TurtleBot这样的名字,也就不足为奇了。
[1]可参考The robotics primer by Maja J Matarić, 2007. 2017年出了中译本《机器人学-经典教程》