首页 理论教育 动作级语言在AL语言中的应用

动作级语言在AL语言中的应用

时间:2023-06-21 理论教育 版权反馈
【摘要】:它是AL语言最基本的数据形式。运算的优先级别与一般计算机语言一致。利用函数VECTOR可以由三个标量表达式来构造矢量,例如VECTOR。

动作级语言在AL语言中的应用

1.AL语言系统

1974年由美国斯坦福大学开发的AL语言,是功能比较完善的动作级机器人语言,它还兼有对象级语言的某些特征,适合于装配作业的描述。AL语言原设计是用于具有传感器信息反馈的多台机器人并行或协调控制的编程。该语言具有高级语言ALGQL和PASCAL的特点,可以编译成机器语言在实时控制机上执行,还具有实时编程语言的同步操作、条件操作等结构,同时支持现场建模。

(1)AL语言的基本语法 程序的开始和结尾分别以BEGIN和END(或COBEGIN和COEND)为标记。

一个AL程序由包含了描述机器人执行作业的一系列语句组成,各语句之间用“;”隔开。

程序中的变量名以英文字母开头,由字母、数字和横线“”组成的字符串,如Puma base、BEAR、Bolt、大小写字母具有同等意义。但变量必须在使用前说明其数据类型。

变量可以用赋位语句进行赋值,变量与数值表达式用“←”符号来连接。当执行赋值语句时,先计算表达式的值,然后将该值赋值给左边的变量。

AL程序中用“{}”括起来的内容,只起注释作用,不影响程序的执行。

(2)基本数据类型AL语言基本数据类型有标量(SCALAR)、矢量(VECTOR)、旋转(ROT)、坐标系(FRAME)和变换(TRANS)等。

1)标量(SCALAR)。它是AL语言最基本的数据形式。标量型的变量可以进行加、减、乘、除和指数五种运算,也可进行三角函数自然对数(LOG)的运算。运算的优先级别与一般计算机语言一致。AL中的标量可以表示时间(TIME)、距离(DISTANCE)、角度(AN-GLE)、力(FORCE)或者它们的组合,还能处理这些变量的量纲

AL中有几个预先定义的标量。例如:

978-7-111-33370-8-Chapter04-84.jpg

2)矢量(VECTOR)。AL语言中的矢量VECTOR与数学中的矢量具有相似的意义,而且具有相同的运算。利用函数VECTOR可以由三个标量表达式来构造矢量,例如VECTOR(0.6123,0.6123,0.5)。但需注意,三个标量表达式必须具有相同的量纲。

同样,AL中也有预先定义的矢量:

978-7-111-33370-8-Chapter04-85.jpg

其值为

978-7-111-33370-8-Chapter04-86.jpg

3)旋转(ROT)。旋转型变量用来描述某坐标轴的旋转或绕某轴的旋转,以表示姿态。任何旋转型变量可表示为ROT函数,带有两个参数:一个是代表旋转轴的简单向量,另一个是旋转角度。旋转的方向按右手规则进行。

978-7-111-33370-8-Chapter04-87.jpg

4)坐标系(FRAME)。FRAME型坐标系变量用来建立坐标系,以描述作业空间中对象物体的姿态和位置,变量的值表示物体的固联坐标系与作业空间的参考坐标系之间的相对位置关系和姿态关系。作业空间的参考坐标系在AL语言中已预先用Station定义。作业空间中,任何一坐标系可通过调用函数FRAME来构成。该函数有两个参数:一个表示姿态的旋转,另一个表示位置的向量。

978-7-111-33370-8-Chapter04-88.jpg

图4-54 机器人插螺钉作业

978-7-111-33370-8-Chapter04-89.jpg

接着要确定各坐标系的关系,基座坐标系即Base坐标系与参考坐标系的关系用AL语言表示:

978-7-111-33370-8-Chapter04-90.jpg

该语句表明把参考坐标系原点移至(20,0,15)英寸处,不用旋转就得Base坐标系。同理,Beam、Feeder坐标系与参考坐标系的关系为

978-7-111-33370-8-Chapter04-91.jpg

对于在某个坐标系中描述的向量,可以利用“WRT”操作符,以“向量WRT坐标系”的形式来表示。例如zhat WRT Feeder,表示在参考坐标系中构造一个与Feeder坐标系中的zhat指向一致的向量。

5)变换(TRANS)。TRANS型变量用来进行坐标变换,与FRAME一样仅有旋转和向量两个参数。在执行时,先相对于作业空间的基座坐标系旋转,然后对向量参数相加,进行平移操作。

AL语言中有一个预先说明的变换niltrans,定义为:

978-7-111-33370-8-Chapter04-92.jpg

有了上述介绍的几种数据类型,特别是FRAME和TRANS,就可以方便地描述作业环境和作业对象。

现在再就如图4-54所示的情况,描述特征坐标系和各个坐标系之间的关系。可以通过各个坐标系右乘一个TRANS来建立起各坐标系之间的关系:

978-7-111-33370-8-Chapter04-93.jpg

该语句表明:由Base坐标系先绕X轴旋转180°,然后再将原点平移到距旋转后的Base坐标系中(15,0,0.5)处的地方,就得E坐标系。同理

978-7-111-33370-8-Chapter04-94.jpg

(3)主要语句及其功能MOVE语句用来表示机器人由初始位置和姿态到目标位置和姿态的运动。在AL中,定义了barm为蓝色机械手,yarm为黄色机械手。为了保证两台机械手在不使用时能处于平衡状态,AL语言定义了相应的停放位置bpark和ypark。

假定机械手在任意位置,可把它运动到停放位置,所用的语句是:

978-7-111-33370-8-Chapter04-95.jpg

如果要求在4s内把机械手位移到停放位置,所用指令是:

978-7-111-33370-8-Chapter04-96.jpg(www.xing528.com)

符号“Ꮫ”可用在语句中,表示当前位置,如:

978-7-111-33370-8-Chapter04-97.jpg

该指令表示机械手从当前位置向下移动2in。由此可以看出,基本的MOVE语句具有以下形式:

MOVE<机械手>TO<目的地><修饰子句>;

例如:

MOVE barm TO<destination>VIA f1 f2 f3表示机械手经过中间点f1、f2、f3移动到目标坐标系<destination>。

MOVE barm TO block WITH APPROCH=3∗zhat∗inches表示把机械手移动到在Z轴方向上离block 3in的地方;如果DEPARTURE代替APPROCH,则表示离开block。关于接近/退避点,可以用设定坐标系的一个矢量来表示,如:

978-7-111-33370-8-Chapter04-98.jpg

(4)AL程序设计举例 例如用AL语言编制机器人把螺栓插入其中一个孔里的作业(见图4-54)。这个作业需要把机器人移至料斗上方A点,抓取螺栓,经过B点、C点再把它移至导板孔上方D点(见图4-54),并把螺栓插入其中一个孔里。

编制这个程序所采取的步骤是:

1)定义机座、导板、料斗、导板孔、螺栓柄等的位置和姿态。

2)把装配作业划分为一系列动作,如移动机器人、抓取物体和完成插入等。

3)加入传感器,以发现异常情况和监视装配作业的过程。

4)重复步骤1)~3),调试改进程序。

按照上面的步骤,编制的程序如下:

978-7-111-33370-8-Chapter04-99.jpg

{数据类型说明}

978-7-111-33370-8-Chapter04-100.jpg

{设置变量}

978-7-111-33370-8-Chapter04-101.jpg

{定义机座坐标系}

978-7-111-33370-8-Chapter04-102.jpg

{定义特征坐标系}

978-7-111-33370-8-Chapter04-103.jpg

{定义经过的点坐标系}

978-7-111-33370-8-Chapter04-104.jpg

{张开手爪}

978-7-111-33370-8-Chapter04-105.jpg

2.LUNA语言及其特征

LUNA语言是日本SONY公司开发用于控制SRX系列SCARA平面关节型机器人的一种特有的语言。LUNA语言具有与BASIC相似的语法,它是在BASIC语言基础上开发出来的,且增加了能描述SRX系列机器人特有的功能语句。该语言简单易学,是一种着眼于末端操作器动作的动作级语言。

(1)语言概要LUNA语言使用的数据类型有标量(整数或实数)、由4个标量组成的矢量,它用直角坐标系来描述机器人和目标物体的位姿,使人易于理解,而且坐标系与机器人的结构无关。LUNA语言的命令以指令形式给出,由解释程序来解释。指令又可以分为由系统提供的基本指令和由使用者用基本指令定义的用户指令,详见表4-3。

表4-3 LUNA语言指令表

978-7-111-33370-8-Chapter04-106.jpg

(2)往返操作的描述 在机器人的操作中,很多基本动作都是有规律的往返动作。例如机器人末端执行器由A点移动到B点和C点(见图4-55),用LUNA语言来编制程序为

978-7-111-33370-8-Chapter04-107.jpg

可见,用LUNA语言可以极为简便地编制动作程序。

978-7-111-33370-8-Chapter04-108.jpg

图4-55 末端执行器平移

a)平移示意图 b)坐标系

免责声明:以上内容源自网络,版权归原作者所有,如有侵犯您的原创版权请告知,我们将尽快删除相关内容。

我要反馈