1.4 如何制作机器人
如果我们试图从本章前面部分去简要抽象地了解机器人的组成部分,那么概括起来主要有以下三个过程:感知部分(由传感器完成)、行动部分(通过执行器完成)和规划部分(如果一定要有的话,由控制器完成)。我们可以通过给机器人配置不同的体系结构得到不同的功能属性,这主要取决于如何搭建连接这三个过程(这些构建模块也称为基元)。下面,我们来说说三个非常基础的体系架构(也称为范例)。
1.4.1 反应式控制
反应式控制应该算是最简单的一种机器人控制结构(或范例),它可以与前面描述的基元连接在一起。如图1-3所示,在这个范例里没有规划过程参与。传感部分直接相连到行动部分,这就意味着周围的环境感知数据一进来,执行器就会根据预先定义好的方式去行动。
就像你身体的条件反射,其实并不需要将刺激信息发送到大脑,再由大脑来决策(这个过程会较为缓慢),而是通过最近的脊髓迅速地进行反应。反应式控制的机器人行动非常快,没有任何复杂的计算,已将预先定义好的行动方式存储在机器人的某处。
1.4.2 分级(协商)控制
假定你曾经根据象棋规则编写过国际象棋程序,并利用其与机器人对弈,先是机器人下一步,然后是机器人的对手下一步,诸如此类。很明显,在这样的一个设定环境下,机器人的反应速度并不需要非常快。但是,如果它能够对将要发生的事做一些规划预测就会更加聪明,这样它就可以根据对手当前的棋路来预测对手下一步甚至下几步的棋路,进而调整自己的策略。
类似这样的结构设置就是一种十分理想的分级(或协商)控制范例。从图1-4中可以看到,感知、规划、行动形成一个闭环。因此,不管什么样的情况,这个系统都可以主动地针对所要达到的目标进行规划控制。
1.4.3 混合控制
到目前为止,我们所讨论的控制范例或是快速但不太灵活,或是聪明但相对缓慢。但在许多情况下我们真正需要的,有可能是介于两者之间的。那么,混合控制模式正试图提供这样一种控制范例。
我们该如何在实体机器人上使用混合控制呢?假设,我们要搭建一个机器人服务生,在咖啡店里为客人送咖啡饮料(本书里的大部分内容刚好都在谈这个问题)。那么,这样的机器人服务生,它自己肯定要知道这个咖啡店里的环境设置(如桌椅的摆放位置等)。一旦它得到一个任务指令,去给指定的顾客送一杯咖啡,它就需要规划出一条路线,并沿着这条路线移动。虽然我们可以预先给机器人设置好几条适合它走的固定路径,但咖啡店里还会有其他随机出现的顾客,是我们无法预知的。在送咖啡的过程中,我们既不能让机器人撞到桌子或椅子,又不能让它碰撞到随机出现的顾客。为此,我们需要一个能够进行实时调整的反应式控制器。
图1-5这张图画出了混合控制模式的结构示意图。我们可以看到,机器人先是进行任务规划,任务拆分为一系列反应式控制模式执行的动作。这里需要注意一个很有趣的事情,感知数据有助于系统的任务规划(因为需要根据它做规划)和动作执行(因为要进行反应式控制)。
图1-4 分级控制 图1-5 混合控制
这就是一个机器人简单的制作过程!现在,你知道了什么是机器人,它来自哪里,如何制作一个机器人,它都需要哪些部分组成,以及如何将它们系统地搭建在一起。是时候自己搭建一个机器人了!