资源描述
单击此处编辑母版标题样式,单击此处编辑母版文本样式,第二级,第三级,第四级,第五级,*,*,*,第 6 章 工业机器人编程,第 6 章 工业机器人编程,6.1 编程方式介绍,6.2 机器人编程语言的基本要求和类别,6.3,编程语言的应用,习题,6.1,编程方式介绍,1.顺序控制的编程,在顺序控制的机器中,所有的控制都是由机械或电气的顺序控制器实现的。按照我们的定义,这里没有程序设计的要求。顺序控制的灵活性小,这是因为所有的工作过程都已编好,每个过程或由机械挡块或由其他确定的办法所控制。大量的自动机都是在顺序控制下操作的。这种方法的主要优点是成本低,易于控制和操作。,2.示教方式编程(手把手示教),目前大多数机器人还是采用示教方式编程。示教方式是一项成熟的技术,易于被熟悉工作任务的人员所掌握,而且用简单的设备和控制装置即可进行。示教过程进行得很快,示教过后,马上即可应用。在对机器人进行示教时,将机器人的轨迹和各种操作存入其控制系统的存储器。如果需要,过程还可以重复多次。在某些系统中,还可以用与示教时不同的速度再现。,如果能够从一个运输装置获得使机器人的操作与搬运装置同步的信号,就可以用示教的方法来解决机器人与搬运装置配合的问题。,示教方式编程也有一些缺点:,只能在人所能达到的速度下工作;,难与传感器的信息相配合;,不能用于某些危险的情况;,在操作大型机器人时,这种方法不实用;,难获得高速度和直线运动;,难于与其他操作同步。,3.示教盒示教,利用装在控制盒上的按钮可以驱动机器人按需要的顺序进行操作。在示教盒中,每一个关节都有一对按钮,分别控制该关节在两个方向上的运动;有时还提供附加的最大允许速度控制。虽然为了获得最高的运行效率,人们一直希望机器人能实现多关节合成运动,但在示教盒示教的方式下,却难以同时移动多个关节。电视游戏机上的游戏杆虽可用来提供在几个方向上的关节速度,但它也有缺点。这种游戏杆通过移动控制盒中的编码器或电位器来控制各关节的速度和方向,但难以实现精确控制。现在已经有了能实现多关节合成运动的示教机器人。,示教盒一般用于对大型机器人或危险作业条件下的机器人示教。但这种方法仍然难以获得高的控制精度,也难以与其他设备同步,,且不易与传感器信息相配合。,4.脱机编程或预编程,脱机编程和预编程的含意相同,是指用机器人程序语言预先进行程序设计,而不是用示教的方法编程。脱机编程有以下几个方面的优点:,(1)编程时可以不使用机器人,以腾出机器人去做其他工作。,(2)可预先优化操作方案和运行周期。,(3)以前完成的过程或子程序可结合到待编的程序中去。,(4)可用传感器探测外部信息,从而使机器人作出相应的响应。这种响应使机器人可以工作在自适应的方式下。,(5)控制功能中可以包含现有的计算机辅助设计(CAD)和计算机辅助制造(CAM)的信息。,(6)可以预先运行程序来模拟实际运动,从而不会出现危险。利用图形仿真技术,可以在屏幕上模拟机器人运动来辅助编程。,(7)对不同的工作目的,只需替换一部分待定的程序。,在非自适应系统中,没有外界环境的反馈,仅有的输入是各关节传感器的测量值,因此可以使用简单的程序设计手段。,6.2,机器人编程语言的基本要求和类别,1.动作级,动作级语言以机器人末端操作器的动作为中心来描述各种操作,要在程序中说明每个动作。这是一种最基本的描述方式。,2.对象级,对象级语言允许较粗略地描述操作对象的动作、操作对象之间的关系等。使用这种语言时,必须明确地描述操作对象之间的关系和机器人与操作对象之间的关系。它特别适用于组装作业。,3.任务级,任务级语言则只要直接指定操作内容就可以了,为此,机器人必须一边思考一边工作。这是一种水平很高的机器人程序语言。,现在还有人在开发一种系统,它能按某种原则给出最初的环境状态和最终的工作状态,然后让机器人自动进行推理、计算,最后自动生成机器人的动作。这种系统现在仍处于基础研究阶段,还没有形成机器人语言。本章主要介绍动作级和对象级语言。,到现在为止,已经有多种机器人语言问世,其中有的是研究室里的实验语言,有的是实用的机器人语言。前者中比较有名的有美国斯坦福大学开发的AL语言、IBM公司开发的AUTOPASS语言,英国爱丁堡大学开发的RAFT语言等;后者中比较有名的有由AL语言演变而来的VAL语言,日本九州大学开发的,IML,语言,,IBM,公司开发的,AMI.,语言等,详见表,6.1,。,表,6.1,国外常用的机器人语言举例,6.3,编程语言的应用,6.3.1 AL,语言,1.变量的表达及特征,AL变量的基本类型有标量(SCALAR)、矢量(VECTOR)、旋转(ROT)、坐标系(FRAME)和变换(TRANS)。,(1)标量:标量与计算机语言中的实数一样,是浮点数,可以进行加、减、乘、除和指数五种运算,也可以进行三角函数和自然对数的变换。AL中的标量可以表示时间(TIME)、距离(DISTANCE)、角度(ANGLE)、力(FORCE)或者它们的组合,并可以处理这些变量的量纲,即秒(sec)、英寸(inch)、度(deg)或盎司(ounce)等。,AL,中有几个事先定义的标量,例如,:PI=3.14159,TRUE,1,FALSE=0,。,(2)矢量:矢量由一个三元实数(x,y,z)构成,表示对应于某坐标系的平移和位置之类的量。与标量一样,它们可以是有量纲的。利用VECTOR函数,可以由三个标量表达式来构造矢量。,在AL中有几个事先定义过的矢量:,xhat-VECTOR(1,0,0);,yhat-VECTOR(0,1,0);,zhat-VECTOR(0,0,1);,nilvect-VECTOR(0,0,0)。,矢量可以进行加、减、内积、叉积及与标量相乘、相除等运算。,(3)旋转:旋转表示绕一个轴旋转,用以表示姿态。旋转用函数ROT来构造,ROT函数有两个参数:一个代表旋转轴,用矢量表示;另一个是旋转角度。旋转规则按右手法则进行。此外,x函数AXIS(x)表示求取x的旋转轴,而x表示求取x的旋转角。AL中有一个称为nilrot的事先说明过的旋转,定义为ROT(zhat,0*deg)。,(4)坐标系:坐标系可通过调用函数FRAME来构成。该函数有两个参数:一个表示姿态的旋转,另一个表示位置的距离矢量。AL中定义STATION代表工作空间的基准坐标系。,图6.1是机器人插螺栓作业的示意图,可以建立起图中的base坐标系、beam坐标系和feeder坐标系,程序如下:,FRAMEbasebeamfeeder;坐标系变量说明,baseFRAME(nilrot,VECTOR(20,0,15)*inches);坐标系base的原点位于全局坐标系,原点(20,0,15)英寸处,Z轴平行于全局坐标系的Z轴,beamFRAME(ROT(Z,90*deg),VECTOR(20,15,0)*inches);坐标系beam的原点位于全局坐标系原点(20,15,0)英寸处,并绕全局坐标系Z轴旋转90度,feederFRAME(nilrot,VECTOR(25,20,0)*inches);坐标系feeder的原点位于全局坐标系,(25,20,0),英寸处,且,Z,轴平行于全局坐标系的,Z,轴,对于在某一坐标系中描述的矢量,可以用矢量WRT坐标系的形式来表示(WRT:With Respect To),如xhatWRTbeam,表示在全局坐标系中构造一个与坐标系beam中的xhat具有相同方,向的矢量。,图,6.1,机器人插螺栓作业,(5)变换:TRANS型变量用来进行坐标系间的变换。与FRAME一样,TRANS包括两部分:一个旋转和一个向量。执行时,先与相对于作业空间的基坐标系旋转部分相乘,然后再加上向量部分。当算术运算符“-”作用于两个坐标系时,是指把第一个坐标系的原点移到第二个坐标系的原点,再经过旋转使其轴重合。,因此可以看出,描述第一个坐标系相对于基坐标系的过程,可通过对基坐标系右乘一个TRAN,S,来实现。如图,6.1,所示,可以建立起各坐标系之间的关系,:,T6-base*TRANS(ROT(x,180*deg),VECTOR(15,0,0)*inches);建立坐标系T6,其Z轴绕base坐标系的X轴旋转180,原点距base坐标系原点(15,0,0)英寸处,E-T6*TRANS(nilrot,VECTOR(0,0,5)*inches);建立坐标系E,其Z轴平行于T6坐标系的Z轴,原点距T6坐标系原点(0,0,5)英寸处,bolt-tip-feeder*TRANS(nilrot,VECTOR(0,0,1)*inches);,beam-bore-beam*TRANS(nilrot,VECTOR(0,2,3)*inches);,2.主要语句及其功能,(1)运动语句:MOVE语句用来表示机器人由初始位姿到目标位姿的运动。在AL中,定义了barm为蓝色机械手,yarm为黄色机械手,为了保证两台机械手在不使用时能处于平衡状态,AL语言定义了相应的停放位置bpark和ypark。,假定机械手在任意位置,可把它运动到停放位置,所用的语句是,MOVEbarmTObpark;,如果要求在4 s内把机械手移动到停放位置,所用指令是,MOVE,barm,TO,bpark,WITH,DURATION,4*seconds;,符号“”可用在语句中,表示当前位置,如,MOVEbarm TO-2*zhat*inches;,该指令表示机械手从当前位置向下移动2英寸。,由此可以看出,基本的MOVE语句具有如下形式:,MOVE(机械手)TO(目的地)(修饰子句);,例如:,MOVEbarmTOdestinationVIA f1 f2 f3,表示机械手经过中间点f1、f2、f3移动到目标坐标系destination。,MOVE,barm,TO,block,WITHAPPROACH,3*zhat*inches,表示把机械手移动到在Z轴方向上离block 3英寸的地方;如果用DEPARTURE代替APPROACH,则表示离开block。,关于接近/退避点可以用设定坐标系的一个矢量来表示,如,WITHAPPROACH=表达式;,WITHDEPARTURE=表达式;,如图6.2所示,要求机器人由初始位置经过A点运动到螺钉处,再经过B、C后到达D点。描述该运动轨迹的程序如下:,MOVEbarm TO bolt grasp VIA A WITH APPROACH=-Z WRT feeder;,MOVEbarm TO B VIA A WITH DEPARTURE=Z WRT feeder;,MOVE,barm TO B VIA C WITH APPROACH=-Z WRT beam,bore;,(2)手爪控制语句。手爪控制语句的一般形式为:,OPEN TO (sval);,CLOSE TO (sval);,这两条语句是使手爪张开或闭合后相距,(sval),。,(sval),是表示开度的距离值。,图,6.2,机器人插螺钉作业的路径,3.AL程序设计举例,例,用AL语言编制如图6.2所示的机器人把螺栓插入其中一个孔里的作业。这个作业需要把机器人移至料斗上方A点,抓取螺栓,经过B点、C点,再把它移至导板孔上方D点(见图6.2),并把螺栓插入其中一个孔里。,编制这个程序的步骤是:,(1)定义机座、导板、料斗、导板孔、螺栓柄等的位置和姿态。,(2)把装配作业划分为一系列动作,如移动机器人、抓取物体和完成插入等。,(3)加入传感器以发现异常情况和监视装配作业的过程。,(4),重复步骤,(1),(3),调试并改进程序。,按照上面的步骤,编制的程序如下:,BEGINinsertion,(设置变量),bolt-diameter-0.5*inches;,bolt-height-1*inches;,tries-0;,graspedfalse;,(定义机座坐标系),beam,FRAME(ROT(z,90*deg),VECTOR(20,15,0)*inches);,feede
展开阅读全文