机器人编程实战
上QQ阅读APP看书,第一时间看更新

2.3.2 场景和态势中的机器人角色

图2-4所示机器人的ROLL模型的5~7层级负责给予机器人关于特定场景和态势指令的机器人词汇。自主机器人执行特定场景或态势中的任务。

我们以第1章中图1-9的生日机器人BR-1为例。我们设定一个生日聚会场景,机器人的任务是点燃蜡烛并且在聚会结束后清除盘子和杯子。

一个态势是场景中一个事件的快照。比如,生日聚会机器人BR-1的一个态势是桌子上一个未点燃蜡烛的蛋糕,另外一个态势是机器人走向蛋糕,还有一个态势是定位打火机与蜡烛的距离,等等。任何场景都可以视为一个许多态势的集合,当把所有的态势组合在一起时就是一个场景。对于一个给定的场景,如果机器人正确执行其角色中的所有任务,那么我们就认为它是成功的。

层级5的态势词汇

层级5是描述场景中特定态势的词汇。让我们一起看下第1章中机器人场景1的一些态势:其中Midamba发现自己处于困境;在一个研究设施里有机器人和化学品;一些化学品是液体,其他的是气体;有些机器人是移动的,其他的没有;研究设施有一定的规模、货架和容器;机器人位于设施中它们的指定位置。对于Midamba的困境,利用层级5的词汇,图2-6给出了一些必须定义的东西。

在场景1中,Midamba有一些态势要求机器人能够处理相关词汇,如下:

·研究设施所处区域的大小

·区域中容器的位置

·区域中容器的大小

·货架的高度

·化学品类型等

图2-6 层级5词汇描述的态势特性

注释

注意,描述这些特性的机器人词汇不同于那种描述机器人基本能力的词汇。在一个机器人采取每个行动之前,我们可以描述当前态势。在该机器人采取每个行动之后,我们可以描述当前态势。一个机器人采取的行动总是以一种或更多方式改变态势。

层级6的任务词汇

层级6的词汇类似于层级4的词汇,因为它描述了机器人的行动和能力。差异表现为层级6的词汇所描述的行动和能力是态势的具体特征。

例如,如果Midamba获取了表2-1能力矩阵中所列硬件配置的Unit2机器人,一个合适的任务词汇将支持如下指令:

·行动1——扫描货架而寻找一罐蓝色的油

·行动2——测量油的等级

·行动3——如果它是A级且至少包含2夸脱,取走这罐油

注释

注意,所有行动都涉及一个特定态势的词汇具体说明。因此,层级6的任务词汇可以看作层级4词汇的一个态势具体说明。

层级7的场景词汇

我们的机器人程序员新手Midamba面对这样一个场景:研究区域中的一个或多个机器人必须识别某种可以帮助他给原电池充电或中和备用电池上的酸的化学品。一旦识别出该化学品,机器人必须取回交给他。态势中的一系列任务构成了该场景。Unit2的场景词汇综合起来描述如下:

图2-7 5~7层级之间的联系

·Unit2,从你当前位置开始扫描货架,直到你找到一个可以为我的原电池充电或清除我备用电池上酸的化学品,然后取回该化学品并将它交给我。

理想的情况下,层级7的机器人词汇允许你编程机器人以直截了当的方式去完成这个任务集。实用的自主机器人必须有某种有用和有效的层级7词汇。图2-7给出了机器人词汇5~7层级之间的联系。

5~7层级的词汇允许程序员在一个给定态势和场景中描述机器人的角色,以及机器人将如何完成这个角色。