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

1.1.12 控制器

控制器是机器人用于“控制”其传感器、末端作用器、执行器和运动的组件。控制器是机器人的“大脑”。控制器的功能可通过多个控制器实现,但其通常是一个微控制器。微控制器是一个位于芯片上的小型单片机。图1-5展示了一个微控制器的基本组成。

控制器或微控制器是可编程的机器人组件,并且支持机器人的动作和行为编程。根据定义,一个连微控制器都没有的机器不是机器人。但需要记住的是,可编程仅仅是7个标准中的一个。

图1-5 微控制器的基本组成

控制器既能控制机器人的内存组件,又是拥有机器人内存的组件。注意,图1-5中有4个组件。处理器负责计算、符号操作、指令执行和信号处理。输入端口从传感器接收信号并且把这些信号发送给处理器处理。处理器发送信号或指令给连接到执行器的输出端口,于是它们可执行动作。

发送传感器的信号使得传感器置于传感器模式。这些信号用于初始化执行器、设置电动机转速、起动电动机运动、停止电动机等。

因此,处理器通过来自传感器的输入接口获得反馈,发送信号和命令给输出端口并最终指向电动机、机器人手臂以及机器人活动部件(诸如牵引机构、滑轮和其他末端作用器)。

注释

处理器执行指令。每个处理器都有自己的一套机器语言。发送给处理器的一组指令必须最终转换为处理器的语言。因此,如果我们用英语着手进行我们想要给处理器执行的一组指令,这些指令最终必须转换为微控制器中处理器可以理解和执行的指令。图1-6展示了向机器语言转化的基本步骤。

图1-6 向机器语言转化的好点子

在本书中,前文讨论过BURT用于将好点子转化为机器语言,因此你可以很清楚在机器人编程过程中发生了什么。除非你有一个使用英语或一些其他自然语言作为内部语言的微控制器,否则所有指令、命令和信号都必须转化为可以被微控制器中处理器所识别的形式。图1-7简单给出了传感器、执行器、末端作用器和微控制器之间的交互关系。

图1-7中的记忆元件是机器人指令存储和当前所运行的数据存储的地方。当前运行的数据包括来自传感器、执行器、处理器、或存储数据或信息(必须最终由控制器的处理器处理)所需任何其他外围设备的数据。我们已经在本质上将一个机器人简化至基本的机器人主体:

·传感器

·执行器

·末端作用器

·微控制器

从最基本的层面上来说,编程一个机器人等同于通过给微控制器一组指令集来处理机器人的传感器、末端作用器和运动。不管我们正在编程的是一个地面、空中或水下机器人,基本的机器人主体是相同的,并且都必须处理一组核心的初级编程活动。编程一个机器人去自主执行一个任务要求我们在某种程度上传达这项任务给机器人的微控制器。只有在机器人的微控制器存在这个任务后,机器人才可以执行。图1-8展示了我们转化的机器人主体。

图1-7 微控制器、传感器、执行器和末端作用器之间的基本相互作用

图1-8展示了相类似的基本机器人组成。机器人传感器、执行器和末端作用器肯定有更详细的形式,但是图1-8显示了一些常用形式,并传达了我们在本书中使用的基本思想。

注释

我们特别强调微控制器,因为它是一个机器人主要的可编程组件,并且当我们讨论机器人编程时,通常也会涉及微控制器。末端作用器和传感器也很重要,但微控制器处于“驾驶员”的位置,能设置并读取传感器、控制机器人运动以及操作末端作用器部件。表1-2列出了针对低成本机器人的一些常用的微控制器。

表1-2 常用的微控制器

图1-8 转化的机器人主体

虽然本书中大多数示例开发时采用的是Atmega、ARM7和ARM9微控制器,但是我们介绍的编程理念可以应用于具有图1-4基本机器人主体和满足我们7个机器人标准的任何机器人。