1.2.2 迁就机器人的语言
编译器和解释器是将一种语言转换为另一种语言的软件程序。它们允许程序员用高级语言书写一组指令,然后将其转换为下一代的语言。例如,来自代码清单1-2的汇编语言:
可以转为如下指令:
注意在图1-10中,编译器或解释器将高级指令转换成为汇编语言,但是汇编器是将汇编语言转换为机器语言的程序。图1-10也展示了一个工具链概念的简单版本。
图1-10 编译器和解释器转换
在机器人编程中会用到工具链。虽然我们还不能使用自然语言,但是将汇编语言作为编程机器人的唯一选择,我们已经走了很长的路。事实上,如今有很多编程机器人的高级语言,包括图形语言,例如Labview;图形环境,例如Choreograph、傀儡模式(puppet mode),以及第三、第四和第五代编程语言。
图1-11展示了常用的几代机器人编程语言分类。
图形语言有时被称为第五代和第六代编程语言。一部分是因为图形语言允许程序员更加自然地表达想法,而不是从机器的角度来表达你的想法。因此,指导或编程机器人中的挑战之一,可归结为个人表达指令集的方式与微控制器使用指令集的方式之间的差异。
图形化的机器人编程环境和图形语言试图通过允许程序员使用图形和图片编程机器人来解决这个差异。BioloidMotion Editor和RobosapienRS Media Body Con Editor是这类环境的两个示例,如图1-11所示。
这些类型的环境通过允许图形化操作或设置机器人的动作、传感器的初始值、执行器的初始速度和力量来工作。通过设置数值、移动图形操作杆和图形控件来编程机器人。有时候,在需要传递给机器人信息和数据的软件里,填写窗体是一件简单的事情。图形环境将程序员从机器人编程的实际工作中隔离出来。
图1-11 常用的一些机器人编程语言和图形编程环境的分类
务必记住的是,机器人的微控制器最终读取的是汇编/机器语言。必须要有某人或某个东西来提供本地指令。因此,这些图形环境由内部编译器和解释器负责将图形化的想法转换为低级语言,并最终转换为控制器的机器语言。昂贵的机器人系统具有这些图形环境已经有很长一段时间了,但是这些图形环境现在可以用于低成本机器人了。针对低成本机器人系统,表1-3列出了一些常用的图形环境(语言)。
表1-3 图形机器人编程环境示例
傀儡模式
与可视化编程机器人概念紧密相关的是直接操纵或傀儡模式的概念。傀儡模式允许程序员利用键盘、鼠标、触摸板、触摸屏或其他定位设备操纵机器人图形,同样也允许通过编程在现实世界中操纵机器人的部件到所需位置。
傀儡模式扮演一个动作记录器的角色。如果想要机器人的头向左转,你可以移动机器人的头部图形到左边,傀儡模式就会记住。如果想要机器人向前移动,你将机器人的部件移动到前方位置,不论该部件是腿、轮子、牵引机构等,傀儡模式都会记住。一旦记录了想要机器人执行的所有动作,然后将该信息发送给机器人(通常使用某种有线或无线连接),机器人在现实世界中会执行记录在傀儡模式中的动作。同样,如果程序员将机器人置于傀儡模式(假定机器人有傀儡模式),则会记录程序员执行的机器人物理操作。一旦程序员取消机器人的傀儡模式,机器人会执行傀儡模式期间记录的动作序列。傀儡模式是一种模仿的编程。机器人记录它是如何被操纵的,记住那些操作,然后重复动作序列。使用傀儡模式可以使程序员无需输入一个指令序列,也使得程序员无须弄明白如何以一种机器人语言表示一个动作序列。机器人系统可视化语言、可视化环境和傀儡模式的实用性将只会增加,它们的复杂性也将随之增加。然而,大多数可视化编程环境有两个致命缺陷。
[1] Bioloid是由Robotis制造的一个模块化机器人系统。
[2] Robosapien是由Wowee制造的一个独立的机器人系统。