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

3.1.2 机器人的世界

一个机器人实现自主还需要一些关于其环境的细节。考虑一下:如果你去一个什么也不了解的城市旅行,你能把你想要做的事情做得有多好?你不熟悉那里的一切。你需要一个地图或某个人引导你,并告诉你“这里是餐馆”、“这里是博物馆”。自主机器人必须有关于环境的足够信息。机器人掌握的信息越多,可以实现其目标的可能性越大。

注释

机器人的世界是机器人执行其任务的环境,它是机器人有意识的唯一世界。环境外的任何事情都不重要,机器人不会意识到。

环境是动态的,所有的环境都不一样。一个机器人可以部分或完全访问其环境。一个完全可访问的环境意味着环境中所有的对象和情况都是在机器人的传感器范围内,没有对象太高、太低或远离机器人而无法检测或与之交互。机器人具有所有必要的传感器以接收来自环境的输入。如果有一个声音,机器人可以用声传感器来检测它。如果有一盏灯亮着,机器人可以用光传感器来对其进行检测。

部分可访问环境意味着环境中有些情况机器人不能检测到,或有些物体机器人不能检测或与之作用,例如因为缺少定位传感器来检测,或缺少末端作用器来拾起。一个180cm高度的物体超出了一个具有80cm臂展和50cm身高机器人的能力范围。如果要求一旦开始唱歌机器人就准备点燃蜡烛,但它没有声传感器会怎么样?声音是环境的一部分,因此,机器人将不能执行这项任务。所以,当创建了可部分访问环境的平面图时,就考虑了“机器人视角”。例如,对于机器人没有访问的对象,使用某个直观的指示符去与那些机器人可以访问的对象进行区分,使用颜色标记或围绕它画一条虚线。

确定和不确定环境

控制情况怎么样?机器人能控制其环境的每一个方面吗?机器人是控制或操纵其环境中对象的唯一力量吗?这是确定环境和不确定环境之间的区别。

对于一个确定环境,下一个状态完全由当前状态和机器人执行的动作决定。这意味着如果BR-1机器人点燃蜡烛,这些蜡烛将保持发亮直到BR-1将它们吹灭。如果BR-1将盘子从桌子上移走,这些盘子将保持在它们被放置的位置。

对于一个不确定环境,比如生日聚会的场景,BR-1没有吹灭蜡烛。(如果它做了将非常有意思。)聚会的参加者可以移走那些盘子而不只是BR-1。如果BR-1和目的地之间原本没有障碍物,然后一个参加聚会的客人在那放置了一个障碍物会怎样?BR-1如何才能在一个动态的不确定环境中执行其任务?

每个环境类型都有自己的挑战。在一个动态的不确定环境中,需要机器人在尝试做任务之前考虑先前状态和当前状态,然后针对是否可以执行这项任务做出决定。表3-1列出了一些简短描述的环境类型。

表3-1 一些简短描述的环境类型