发展历史
机器人编程语言最早是在20世纪70年代初期出现的,到目前为止,已经有多种机器人语言问世,其中有的是研究室里的实验语言,有的是实用的机器人语言。
随着首台机器人的出现,对机器人语言的研究也同时进行。1973年美国斯坦福(Stanford)人工智能实验室研究和开发了第一种机器人语言——wAVE语言。WAVE语言具有动作描述,能配合视觉传感器进行手眼协调控制等功能。
1974年,该实验室在WAVE语言的基础上开发了AL语言,它是一种编译形式的语言,具有ALGOL语言的结构,可以控制多台机器人协调动作。AL语言对后来机器人语言的发展有很大的影响。
1979年,美国Unimation公司开发了VAL语言,并配置在PUMA系列机器人上,成为实用的机器人语言。VAL语言类似于BASIC语言,语句结构比较简单,易于编程。1984年该公司推出了VAL-Ⅱ语言,与VAL语言相比,VAL-Ⅱ增加了利用传感器信息进行运动控制、通信和数据处理等功能。
美国IBM公司在1975年研制了ML语言,并用于机器人装配作业,接着该公司又推出了AUTOPASS语言,这是一种比较高级的机器人语言,它可以对几何模型类任务进行半自动编程。后来IBM公司又推出了AML语言,AML语言已作为商品化产品用于IBM机器人的控制。
其他的机器人语言有:MIT的LAMA语言,这是一种用于自动装配的机器人语言。美国Automatix公司的RAIL语言,它具有与PASCAL语言相似的形式。2
组成机器人编程语言用以描述可被机器人执行的作业操作,一个可用的机器人编程语言应由以下几部分组成:
1)指令集合。随语言水平不同,指令个数可由数个到数十个,愈简单愈好。
2)程序的格式与结构。这是关键部分,应有通用性。
3)程序表达码和载体。用以传递源程序。3
分类机器人编程语言是方法、算法和编程技巧的结合,由于机器人的类型、作业要求、控制装置、传感信息种类等多种多样,所以编程语言也是各种各样,功能、风格差别都很大。目前流行有多种机器人编程语言,如果按照编程功能,可将之分为如下几个不同的级别:
1.面向点位控制的编程语言
这种语言要求用户采用示教盒上的操作按钮或移动示教操作杆引导机器人做一系列的运动,然后将这些运动转变成机器人的控制指令。
2.面向运动的编程语言
这种语言以描述机器人执行机构的动作为中心。编程人员使用编程语言来描述操作机所要完成的各种动作序列,数据是末端执行器在基座坐标系(或绝对坐标系)中位置和姿态的坐标序列。语言的核心部分是描述手部的各种运动语句,语言的指令由系统软件解释执行,如VAL、EMUY、RCL语言等。
3.结构化编程语言
这种语言是在PASCAL语言基础上发展起来的,具有较好的模块化结构。它由编译程序和运行时间系统组成。编译程序对原码进行扫描分析和校验,生成可执行的动作码,将动作码和有关控制数据送到运行时间系统进行轨迹插补及伺服控制,以实现对机器人的动作控制,如AL、MCL、MAPL语言等。
4.面向任务的编程语言
这类语言是以描述作业对象的状态变化为核心,编程人员通过工件(作业对象)的位置、姿态和运动来描述机器人的任务。编程时只需规定出相应的任务(如用表达式来描述工件的位置和姿态,工件所承受的力、力矩等),由编辑系统根据有关机器人环境及其任务的描述,做出相应的动作规则,如根据工件几何形状确定抓取的位置和姿态、回避障碍等,然后控制机器人完成相应的动作。4
常见语言1.AL语言
AL语言是由斯坦福大学1974年开发的一种高级程序设计系统,描述诸如装配一类的任务。它有类似ALGOL的源语言,有将程序转换为机器码的编译程序和由控制操作机械手和其他设备的实时系统。编译程序采用高级语言编写,可在小型计算机上实时运行,近年来该程序已能够在微型计算机上运行。AL语言对其他语言有很大的影响,在一般机器人语言中起主导作用。
2.AML语言
AML语言是由IBM公司开发的一种交互式面向任务的编程语言,专门用于控制制造过程(包括机器人)。它支持位置和姿态示教、关节插补运动、直线运动、连续轨迹控制和力觉,提供机器人运动和传感器指令、通信接口和很强的数据处理功能(能进行数据的成组操作)。这种语言已商品化,可应用于内存不少于192 KB的小型计算机控制的装配机器人。小型AML可应用微型计算机控制经济型装配机器人。
3.MCL语言
MCL语言是由美国麦道飞机公司为工作单元离线编程而开发的一种机器人语言。工作单元可以是各种形式的机器人及外围设备、数控机械、触觉和视觉传感器。它支持几何实体建模和运动描述,提供手爪命令,软件是在IBM360APT的基础上用FORTRAN和汇编语言写成的。
4.SERF语言
SERF语言是由日本三协精机制作所开发的控制SKILAM机器人的语言。它包括工件的插入、装箱、手爪的开合等。与BASIC相似,这种语言简单,容易掌握,具有较强的功能,如三维数组、坐标变换、直线及圆弧插补、任意速度设定、子程序、故障检测等,其动作命令和I/O命令可并行处理。
5.SIGLA语言
SIGLA语言是由意大利Olivetti公司开发的一种面向装配的语言,其主要特点是为用户提供了定义机器人任务的能力。Sigma型机器人的装配任务常由若干个子任务组成,如取螺钉旋具、在上料器上取螺钉、搬运该螺钉、螺钉定位、螺钉装入和拧紧螺钉等。为了完成对子任务的描述及回避碰撞的命令,可在微型计算机上运行。
6.AutoPASS语言
AutoPASS语言是一种对象级语言。对象级语言是靠对象物状态的变化给出大概的描述,把机器人的工作程序化的一种语言。AutoPASS、LUMA、RAFT等都属于这一级语言。AutoPASS是IBM公司属下的一个研究所提出来的机器人语言,它是针对机器人操作的一种语言,程序把工作的全部规划分解成放置部件、插入部件等宏功能状态变化指令来描述。AutoPASS的编译是应用称作环境模型的数据库,边模拟工作执行时环境的变化边决定详细动作,得到控制机器人的工作指令和数据。4