1.1.13 机器人所在的场景
机器人主体只讲了机器人编程故事的一半,另外一半不在于实际的机器人部分,而是机器人场景或态势。机器人是在一个特定的环境中执行某个类型的任务的。机器人若是有用必须能在环境中造成某种影响。机器人的任务和环境不只是随机的、未指定的概念。有用的机器人必须在特定场景或态势中执行任务。机器人在场景或态势中扮演给定的某种角色。举例来说,图1-9中所示为一个机器人参加一场生日聚会。
图1-9 一个生日聚会机器人
我们有一个机器人,称之为BR-1,分配给它两个任务:
·点燃蛋糕上的蜡烛
·聚会结束后清除盘子和杯子
生日聚会是机器人所处的场景。机器人BR-1扮演的角色是点燃蜡烛和清除盘子与杯子的人。场景与期望相伴,有用的机器人是由期望驱动的。生日聚会上会有期望,通常生日聚会会有场所、蛋糕、冰淇淋、客人、庆祝活动、时间和礼物。对于BR-1去完成其在生日聚会上的角色,它必须有处理场景或特定态势的指令,比如:
·蛋糕的位置
·点燃蜡烛的数量
·机器人相对于蛋糕的位置
·点燃蜡烛的时间
·聚会如何以及何时结束
·盘子和杯子的数量等
机器人的实用性和成功与否取决于其在特定态势中扮演角色的好坏。每个场景或态势都有一个场所、一组对象、条件和一系列事件。自主机器人位于场景内并且受期望驱动。当对一个机器人编程时,我们期望它以某种方式参与和影响一个态势或场景。描绘场景、与场景交流和给机器人设置期望是机器人编程故事的后半部分。
小贴士
简言之,编程一个有用的机器人相当于编程一个机器人利用其传感器和末端作用器,通过在某个特定态势或场景中执行一组任务而完成其角色并满足期望。
编程一个有用的机器人可以分为两个基本层面:
·指导机器人利用其基本能力去实现某些期望
·在某个给定态势或场景中给机器人解释期望是什么
通过编程,一个自主机器人无需人类干预就能在特定态势或场景中实现期望时,它就是有用的。因此,一半工作需要编程机器人以执行某个任务或一组任务。
另一半任务则需要指导机器人在一个或多个特定场景中执行其功能。我们的机器人编程方法是场景驱动的。机器人在态势和场景中扮演一定角色,且这些态势和场景一定是编程和指导机器人成功执行任务的重要部分。