一、AL语言概述 AL语言是20世纪70年代中期美国斯坦福大学人工智能研究所开发研制的一种机器人语言,它是在WAVE的基础上开发出来的,也是一种动作级编程语言,但兼有对象级编程语言的某些特征,使用于装配作业。它的结构及特点类似于PASCAL语言,可以编译成机器语言在实时控制机上运行,具有实时编译语言的结构和特征,如可以同步操作、条件操作等。AL语言设计的原始目的是用于具有传感器信息反馈的多台机器人或机械手的并行或协调控制编程。 本文来自www.eadianqi.com 运行VA语言的系统硬件环境包括主、从两级计算机控制,如图所示。主机为PDP-10,主机内的管理器负责管理协调各部分的工作,编译器负责对AL语言的指令进行编译并检查程序,实时接口负责主、从机之间的接口连接,装载器负责分配程序。从机为PDP-11/45。 自动控制网www.eadianqi.com版权所有 主机的功能是对AL语言进行编译,对机器人的动作进行规划;从机接受主机发出的动作规划命令,进行轨迹及关节参数的实时计算,最后对机器人发出具体的动作指令。 自动控制网www.eadianqi.com版权所有 二、AL语言的编程格式 自动控制网www.eadianqi.com版权所有 (1)程序BEGIN开始,由END结束。 自动控制网www.eadianqi.com版权所有 (2)语句与语句之间用分号隔开。 自动控制网www.eadianqi.com版权所有 (3)变量先定义说明其类型,后使用。变量名以英文字母开头,由字母、数字和下画线组成,字母大、小写不分。 自动控制网www.eadianqi.com版权所有 (4)程序的注释用大括号括起来。 自动控制网www.eadianqi.com版权所有
(5)变量赋值语句中如所赋的内容为表达式,则先计算表达式的值,再把该值赋给等式左边的变量。 本文来自www.eadianqi.com 三、AL语言中数据的类型 本文来自www.eadianqi.com (1)标量(scalar)——可以是时间、距离、角度及力等,可以进行加、减、乘、除和指数运算,也可以进行三角函数、自然对数和指数换算。 本文来自www.eadianqi.com (2)向量(vector)——与数学中的向量类似,可以由若干个量纲相同的标量来构造一个向量。 自动控制网www.eadianqi.com版权所有
(3)旋转(rot)——用来描述一个轴的旋转或绕某个轴的旋转以表示姿态。用ROT变量表示旋转变量时带有两个参数,一个代表旋转轴的简单矢量,另一个表示旋转角度。 自动控制网www.eadianqi.com版权所有 (4)坐标系(frame)——用来建立坐标系,变量的值表示物体固连坐标系与空间作业的参考坐标系之间的相对位置与姿态。 自动控制网www.eadianqi.com版权所有
(5)变换(trans)——用来进行坐标变换,具有旋转和向量两个参数,执行时先旋转再平移。 自动控制网www.eadianqi.com版权所有
四、AL语言的语句介绍 自动控制网www.eadianqi.com版权所有 1.MOVE语句 本文来自www.eadianqi.com 用来描述机器人手爪的运动,如手爪从一个位置运动到另一个位置。MOVE语句的格式为 自动控制网www.eadianqi.com版权所有 MOVE<HAND>TO<目的地> 自动控制网www.eadianqi.com版权所有 2.手爪控制语句 本文来自www.eadianqi.com
OPEN:手爪打开语句。 自动控制网www.eadianqi.com版权所有 CLOSE:手爪闭合语句。 本文来自www.eadianqi.com 语句的格式为 自动控制网www.eadianqi.com版权所有 OPEN<HAND>TO<SVAL> 自动控制网www.eadianqi.com版权所有 CLOSE<HAND>TO<SVAL> 自动控制网www.eadianqi.com版权所有 其中SVAL为开度距离值,在程序中已预先指定。 本文来自www.eadianqi.com 3.控制语句 自动控制网www.eadianqi.com版权所有
与PASCAL语言类似,控制语句有下面几种: 本文来自www.eadianqi.com IF<条件>THEN<语句>ELSE<语句> 自动控制网www.eadianqi.com版权所有
WHILE<条件>DO<语句> 自动控制网www.eadianqi.com版权所有 CASE<语句> 本文来自www.eadianqi.com DO<语句>UNTIL<条件> 本文来自www.eadianqi.com FOR…STEP…UNTIL… 本文来自www.eadianqi.com
4.AFFIX和UNFIX语句 本文来自www.eadianqi.com 在装配过程中经常出现将一个物体粘到另一个物体上或一个物体从另一个物体上剥离的操作。语句AFFIX为两物体结合的操作,语句AFFIX为两物体分离的操作。 自动控制网www.eadianqi.com版权所有 例如:BEAM_BORE和BEAM分别为两个坐标系,执行语句 本文来自www.eadianqi.com
AFFIXBEAM_BORETOBEAM 自动控制网www.eadianqi.com版权所有
后两个坐标系就附着在一起了,即一个坐标系的运动也将引起另一个坐标系的同样运动。然后执行下面的语句 自动控制网www.eadianqi.com版权所有
UNFIXBEAM_BOREFROMBEAM 本文来自www.eadianqi.com 两坐标系的附着关系被解除。 自动控制网www.eadianqi.com版权所有 5.力觉的处理 本文来自www.eadianqi.com 在MOVE语句中使用条件监控子语句可实现使用传感器信息来完成一定的动作。 本文来自www.eadianqi.com
监控子语句如: 本文来自www.eadianqi.com
ON<条件>DO<动作> 自动控制网www.eadianqi.com版权所有
例如: 本文来自www.eadianqi.com MOVEBARMTO⊕-0.1*INCHESONFORCE(Z)>10*OUNCESDOSTOP 自动控制网www.eadianqi.com版权所有 表示在当前位置沿Z轴向下移动0.1英寸,如果感觉Z轴方向的力超过10盎司,则立即命令机械手停止运动。 自动控制网www.eadianqi.com版权所有 |