《工业机器人复习第6章.ppt》由会员分享,可在线阅读,更多相关《工业机器人复习第6章.ppt(45页珍藏版)》请在taowenge.com淘文阁网|工程机械CAD图纸|机械工程制图|CAD装配图下载|SolidWorks_CaTia_CAD_UG_PROE_设计图分享下载上搜索。
1、第 6 章 工业机器人编程 第 6 章 工业机器人编程 6.1 6.1 编程方式介绍编程方式介绍6.2 6.2 机器人编程语言的基本要求和类别机器人编程语言的基本要求和类别6.3 编程语言的应用编程语言的应用 习题习题 第 6 章 工业机器人编程 6.1 编程方式介绍编程方式介绍 1.1.顺序控制的编程顺序控制的编程在顺序控制的机器中,所有的控制都是由机械或电气的顺序控制器实现的。按照我们的定义,这里没有程序设计的要求。顺序控制的灵活性小,这是因为所有的工作过程都已编好,每个过程或由机械挡块或由其他确定的办法所控制。大量的自动机都是在顺序控制下操作的。这种方法的主要优点是成本低,易于控制和操作
2、。第 6 章 工业机器人编程 2.2.示教方式编程示教方式编程(手把手示教手把手示教)目前大多数机器人还是采用示教方式编程。示教方式是一项成熟的技术,易于被熟悉工作任务的人员所掌握,而且用简单的设备和控制装置即可进行。示教过程进行得很快,示教过后,马上即可应用。在对机器人进行示教时,将机器人的轨迹和各种操作存入其控制系统的存储器。如果需要,过程还可以重复多次。在某些系统中,还可以用与示教时不同的速度再现。第 6 章 工业机器人编程 如果能够从一个运输装置获得使机器人的操作与搬运装置同步的信号,就可以用示教的方法来解决机器人与搬运装置配合的问题。示教方式编程也有一些缺点:只能在人所能达到的速度下
3、工作;难与传感器的信息相配合;不能用于某些危险的情况;在操作大型机器人时,这种方法不实用;难获得高速度和直线运动;难于与其他操作同步。第 6 章 工业机器人编程 3.3.示教盒示教示教盒示教利用装在控制盒上的按钮可以驱动机器人按需要的顺序进行操作。在示教盒中,每一个关节都有一对按钮,分别控制该关节在两个方向上的运动;有时还提供附加的最大允许速度控制。虽然为了获得最高的运行效率,人们一直希望机器人能实现多关节合成运动,但在示教盒示教的方式下,却难以同时移动多个关节。电视游戏机上的游戏杆虽可用来提供在几个方向上的关节速度,但它也有缺点。这种游戏杆通过移动控制盒中的编码器或电位器来控制各关节的速度和
4、方向,但难以实现精确控制。现在已经有了能实现多关节合成运动的示教机器人。示教盒一般用于对大型机器人或危险作业条件下的机器人示教。但这种方法仍然难以获得高的控制精度,也难以与其他设备同步,且不易与传感器信息相配合。第 6 章 工业机器人编程 4.4.脱机编程或预编程脱机编程或预编程脱机编程和预编程的含意相同,是指用机器人程序语言预先进行程序设计,而不是用示教的方法编程。脱机编程有以下几个方面的优点:(1)编程时可以不使用机器人,以腾出机器人去做其他工作。(2)可预先优化操作方案和运行周期。(3)以前完成的过程或子程序可结合到待编的程序中去。(4)可用传感器探测外部信息,从而使机器人作出相应的响应
5、。这种响应使机器人可以工作在自适应的方式下。第 6 章 工业机器人编程(5)控制功能中可以包含现有的计算机辅助设计(CAD)和计算机辅助制造(CAM)的信息。(6)可以预先运行程序来模拟实际运动,从而不会出现危险。利用图形仿真技术,可以在屏幕上模拟机器人运动来辅助编程。(7)对不同的工作目的,只需替换一部分待定的程序。在非自适应系统中,没有外界环境的反馈,仅有的输入是各关节传感器的测量值,因此可以使用简单的程序设计手段。第 6 章 工业机器人编程 6.2 机器人编程语言的基本要求和类别机器人编程语言的基本要求和类别 1.1.动作级动作级动作级语言以机器人末端操作器的动作为中心来描述各种操作,要
6、在程序中说明每个动作。这是一种最基本的描述方式。第 6 章 工业机器人编程 2.2.对象级对象级对象级语言允许较粗略地描述操作对象的动作、操作对象之间的关系等。使用这种语言时,必须明确地描述操作对象之间的关系和机器人与操作对象之间的关系。它特别适用于组装作业。第 6 章 工业机器人编程 3.3.任务级任务级任务级语言则只要直接指定操作内容就可以了,为此,机器人必须一边思考一边工作。这是一种水平很高的机器人程序语言。现在还有人在开发一种系统,它能按某种原则给出最初的环境状态和最终的工作状态,然后让机器人自动进行推理、计算,最后自动生成机器人的动作。这种系统现在仍处于基础研究阶段,还没有形成机器人
7、语言。本章主要介绍动作级和对象级语言。第 6 章 工业机器人编程 到现在为止,已经有多种机器人语言问世,其中有的是研究室里的实验语言,有的是实用的机器人语言。前者中比较有名的有美国斯坦福大学开发的AL语言、IBM公司开发的AUTOPASS语言,英国爱丁堡大学开发的RAFT语言等;后者中比较有名的有由AL语言演变而来的VAL语言,日本九州大学开发的IML语言,IBM公司开发的AMI.语言等,详见表6.1。第 6 章 工业机器人编程 表表6.1 国外常用的机器人语言举例国外常用的机器人语言举例 第 6 章 工业机器人编程 6.3 编程语言的应用编程语言的应用6.3.1 AL语言语言 1.1.变量的
8、表达及特征变量的表达及特征AL变量的基本类型有标量(SCALAR)、矢量(VECTOR)、旋转(ROT)、坐标系(FRAME)和变换(TRANS)。(1)标量:标量与计算机语言中的实数一样,是浮点数,可以进行加、减、乘、除和指数五种运算,也可以进行三角函数和自然对数的变换。AL中的标量可以表示时间(TIME)、距离(DISTANCE)、角度(ANGLE)、力(FORCE)或者它们的组合,并可以处理这些变量的量纲,即秒(sec)、英寸(inch)、度(deg)或盎 司(ounce)等。AL中 有 几 个 事 先 定 义 的 标 量,例 如:PI=3.14159,TRUE1,FALSE=0。第 6
9、 章 工业机器人编程(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)。矢量可以进行加、减、内积、叉积及与标量相乘、相除等运算。第 6 章 工业机器人编程(3)旋转:旋转表示绕一个轴旋转,用以表示姿态。旋转用函数ROT来构造,ROT函数有两个参数:一个代表旋转轴,用矢量表示;另一个是旋
10、转角度。旋转规则按右手法则进行。此外,x函数AXIS(x)表示求取x的旋转轴,而x表示求取x的旋转角。AL中有一个称为nilrot的事先说明过的旋转,定义为ROT(zhat,0*deg)。第 6 章 工业机器人编程(4)坐标系:坐标系可通过调用函数FRAME来构成。该函数有两个参数:一个表示姿态的旋转,另一个表示位置的距离矢量。AL中定义STATION代表工作空间的基准坐标系。图6.1是机器人插螺栓作业的示意图,可以建立起图中的base坐标系、beam坐标系和feeder坐标系,程序如下:FRAMEbasebeamfeeder;坐标系变量说明baseFRAME(nilrot,VECTOR(20
11、,0,15)*inches);坐标系base的原点位于全局坐标系 第 6 章 工业机器人编程 原点(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
12、Respect To),如xhatWRTbeam,表示在全局坐标系中构造一个与坐标系beam中的xhat具有相同方向的矢量。第 6 章 工业机器人编程 图 6.1 机器人插螺栓作业 第 6 章 工业机器人编程(5)变换:TRANS型变量用来进行坐标系间的变换。与FRAME一样,TRANS包括两部分:一个旋转和一个向量。执行时,先与相对于作业空间的基坐标系旋转部分相乘,然后再加上向量部分。当算术运算符“-”作用于两个坐标系时,是指把第一个坐标系的原点移到第二个坐标系的原点,再经过旋转使其轴重合。因此可以看出,描述第一个坐标系相对于基坐标系的过程,可通过对基坐标系右乘一个TRANS来实现。如图6.
13、1所示,可以建立起各坐标系之间的关系:第 6 章 工业机器人编程 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,VEC
14、TOR(0,2,3)*inches);第 6 章 工业机器人编程 2.2.主要语句及其功能主要语句及其功能(1)运动语句:MOVE语句用来表示机器人由初始位姿到目标位姿的运动。在AL中,定义了barm为蓝色机械手,yarm为黄色机械手,为了保证两台机械手在不使用时能处于平衡状态,AL语言定义了相应的停放位置bpark和ypark。假定机械手在任意位置,可把它运动到停放位置,所用的语句是 MOVEbarmTObpark;如果要求在4 s内把机械手移动到停放位置,所用指令是 MOVEbarmTObparkWITHDURATION4*seconds;第 6 章 工业机器人编程 符号“”可用在语句中,
15、表示当前位置,如 MOVEbarm TO-2*zhat*inches;该指令表示机械手从当前位置向下移动2英寸。由此可以看出,基本的MOVE语句具有如下形式:MOVE(机械手)TO(目的地)(修饰子句);例如:MOVEbarmTOdestinationVIA f1 f2 f3表示机械手经过中间点f1、f2、f3移动到目标坐标系destination。MOVEbarmTOblockWITHAPPROACH3*zhat*inches 第 6 章 工业机器人编程 表示把机械手移动到在Z轴方向上离block 3英寸的地方;如果用DEPARTURE代替APPROACH,则表示离开block。关于接近/退
16、避点可以用设定坐标系的一个矢量来表示,如 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;MOVEbarm TO B VIA C WITH APPROACH=-Z WRT beambore;第 6 章 工业机器人编程(2)手爪控制语句。手爪控制语句的一般形式为
17、:OPEN TO (sval);CLOSE TO (sval);这两条语句是使手爪张开或闭合后相距(sval)。(sval)是表示开度的距离值。第 6 章 工业机器人编程 图 6.2 机器人插螺钉作业的路径 第 6 章 工业机器人编程 3.3.ALAL程序设计举例程序设计举例例例 用AL语言编制如图6.2所示的机器人把螺栓插入其中一个孔里的作业。这个作业需要把机器人移至料斗上方A点,抓取螺栓,经过B点、C点,再把它移至导板孔上方D点(见图6.2),并把螺栓插入其中一个孔里。编制这个程序的步骤是:(1)定义机座、导板、料斗、导板孔、螺栓柄等的位置和姿态。(2)把装配作业划分为一系列动作,如移动机
18、器人、抓取物体和完成插入等。(3)加入传感器以发现异常情况和监视装配作业的过程。(4)重复步骤(1)(3),调试并改进程序。第 6 章 工业机器人编程 按照上面的步骤,编制的程序如下:BEGINinsertion(设置变量)bolt-diameter-0.5*inches;bolt-height-1*inches;tries-0;graspedfalse;(定义机座坐标系)beamFRAME(ROT(z,90*deg),VECTOR(20,15,0)*inches);feederFRAME(nilrot,VECTOR(20,20,0)*inches);(定义特征坐标系)第 6 章 工业机器人编
19、程 bolt-graspfeeder*TRANS(nilrot,nilvect);bolt-tipbolt-grasp,TRANS(nilrot,VECTOR(0,0,0.5)*inches);beam-borebeam*TRANS(nilrot,VECTOR(0,0,1)*inches);(定义经过的点坐标系)Afeeder*TRANS(nilrot,VECTOR(0,0,5)*inches);Bfeeder*TRANS(nilrot,VECTOR(0,0,8)*inches);Cbeam-bore*TRANS(nilrot,VECTOR(0,0,5)*inches);Dbeam-bore*
20、TRANS(nilrot,boltheight*Z);(张开手爪)OPENbhandTOboltdiameter+1*inches;第 6 章 工业机器人编程(使手准确定位于螺栓上方)MOVEbarmTOboltgrasp VIA A WITH APPROACH=ZWRTfeeder;(试着抓取螺栓)DOCLOSEbhand TO 0.9*boltdiameter;IF bhandboltdiameter THEN BEGINOPEN bhand TO boltdiameter+1*inches;(抓取螺栓失败,再试一次)MOVE barm TO -1*Z*inches;END ELSE gr
21、asped-TRUE;tries-tries+1;第 6 章 工业机器人编程 UNTIL grasped OP (tries3);(如果尝试三次未能抓取螺栓,则取消这一动作)IFNOT grasped THEN ABORT;(抓取螺栓失败)MOVE barm TO B VIA A WITH DEPARTURE=Z WRT feeder;(将手臂运动到B位置)MOVE barm TO VIA C(将手臂运动到D位置)WITH APPROACH =-Z WRT beambore;(检验是否有孔)MOVE barm TO -0.1*Z*inches ON FORCE(Z)10*ounceDO ABO
22、RT(无孔)(进行柔顺性插入)MOVE barm TO beamboreDIRECTLYWITH FORCE(Z)=-10*ounce;WITH FORCE(X)=0*ounce;第 6 章 工业机器人编程 WITH FORCE(Y)=0*ounce;WITH DURATION=5*seconds;END insertion 第 6 章 工业机器人编程 6.3.2 6.3.2 VAL-VAL-语言语言VAL-是在1979年推出的,用于Unimation和Puma机器人。它是基于解释方式执行的语言,并且具有程序分支、传感信息输入/输出通信、直线运动以及许多其他特征。例如,用户可以在沿末端操作器a
23、轴的方向指定一个距离height,将它与语句命令APPRO(用于接近操作)或DEPART(用于离开操作)结合,便可实现无碰撞地接近物体或离开物体。MOVE命令用来使机器人从它的当前位置运动到下一个指定位置,而MOVES命令则是沿直线执行上述动作。为了说明VAL-的一些功能,我们通过下面的程序清单来描述其命令语句:第 6 章 工业机器人编程 1 PROGRAMTEST 程序名2 SPEED30ALWAYS 设定机器人的速度3 height50 设定沿末端执行器a轴方向抬起或落下的距离4 MOVES p1 沿直线运动机器人到点p15 MOVEp2 用关节插补方式运动机器人到第二个点p26 REAC
24、T1001 如果端口1的输入信号为高电平(关),则立即停止机器人7 BREAK 当上述动作完成后停止执行8 DELAY2 延迟2秒执行 9 IF SIG(1001)GOTO100 ZK(检测输入端口1,如果为高电平(关),则转入继续执行第100行命令,否则继续执行下一行命令10OPEN 打开手爪 第 6 章 工业机器人编程 11 MOVEp5 运动到点p512 SIGNAL2 打开输出端口213 APPROp6,height 将机器人沿手爪(工具坐标系)的a轴移向p6,直到离开它一段指定距离height的地方,这一点叫抬起点ZK)14 MOVEp6 运动到位于p6点的物体15 CLOSE 关闭
25、手爪,并等待直至手爪闭合16 DEPARTheight 沿手爪的5轴(工具坐标系)向上移动height距离17 MOVEp1 将机器人移到p1点18 TYPEalldone 在显示器上显示all done19 END 第 6 章 工业机器人编程 6.3.3 6.3.3 AMLAML语言语言AML语言是IBM公司为3P3R机器人编写的程序。这种机器人带有三个线性关节,三个旋转关节,还有一个手爪。各关节由数字1,2,3,4,5,6,7表示,1、2、3表示滑动关节,4、5、6表示旋转关节,7表示手爪。描述沿x、y、z轴运动时,关节也可分别用字母JX、JY、JZ表示,相应地JR、JP、JY分别表示绕翻
26、转(Roll)、俯仰(Pitch)和偏转(Yaw)轴(用来定向)旋转,而JG表示手爪。第 6 章 工业机器人编程 在AML中允许两种运动形式:MOVE命令是绝对值,也就是说,机器人沿指定的关节运动到给定的值;DMOVE命令是相对值,也就是说,关节从它当前所在的位置起运动给定的值。这样,MOVE(1,10)就意味着机器人将沿x轴从坐标原点起运动10英寸,而DMOVE(1,10)则表示机器人沿x轴从它当前位置起运动10英寸。AML语言中有许多命令,它允许用户可以编制复杂的程序。以下程序用于引导机器人从一个地方抓起一件物体,并将它放到另一个地方,并以此例来说明如何编制一个机器人程序。第 6 章 工业
27、机器人编程 10 SUBR(PICKPLACE);子程序名20 PT1:NEW4,24,2,0,0,13;位置说明30 PT2:NEW2,13,2,135,90,33;40 PT3:NEW2,13,2,150,90,33,1;50 SPEED(0.2);指定机器人的速度(最大速度的20)60 MOVE(ARM,0,0);将机器人(手臂)复位到参考坐标系原点70 MOVE(1,2,3,4,5,6,PT1);将手臂运动到物体上方的点180MOVE(7,3);将抓持器打开到3英寸 8190 DMOVE(3,1);将手臂沿z轴下移1英寸82100 DMOVE(7,1.5);将抓持器闭合1.5英寸 83
28、110 DMOVE(3,1);沿x轴将物体抬起1英寸 84120 MOVE(JX,JY,JZ,JR,JR,JY,PT2);将手臂运动到点2 第 6 章 工业机器人编程 130 DMOVE(JZ,3);沿z轴将手臂下移3英寸放置物体140 MOVE(JG,3);将抓持器打开到3英寸150 DMOVE(JZ,11);将手臂沿z轴上移11英寸160 MOVE(ARM,PT3);将手臂运动到点3170 END;第 6 章 工业机器人编程 6.3.4 AUTOPASS语言语言 AUTOPASS语言是一种对象级语言。对象级语言是靠对象物状态的变化给出大概的描述,把机器人的工作程序化的一种语言。AUTOPA
29、SS、LUMA、RAFT等都属于这一级语言。AUTOPASS是IBM公司属下的一个研究所提出来的机器人语言,它像给人的组装说明书一样,是针对机器人操作的一种语言。程序把工作的全部规划分解成放置部件、插入部件等宏功能状态变化指令来描述。AUTOPASS的编译是用称作环境模型的数据库,边模拟工作执行时环境的变化边决定详细动作,作出对机器人的工作指令和数据。AUTOPASS的指令分成如下四组:第 6 章 工业机器人编程 (1)状态变更语句:PLACE,INSERT,EXTRACT,LIFT,LOWER,SLIDE,PUSH,ORIENT,TURN,GRASP,RELEASE,MOVE。(2)工具语句
30、:OPERATE,CLUMP,LOAP,UNLOAD,FETCH,REPLACE,SWITCH,LOCK,UNLOCK。(3)紧固语句:ATTACH,DRIVEIN,RIVET,FASTEN,UNFASTEN。(4)其他语句:VERIFY,OPENSTATEOF,CLOSEDSTATEOF,NAME,END。第 6 章 工业机器人编程 例如,对于PLACE的描述语法为:PLACE object preposition phrase object grasping phrasefinalconditionphraseconstraint phrasethen hold。其中,object是对象名
31、;preposition phrase表示ON或IN那样的对象物间的关系;grasping phrase是提供对象物的位置和姿态、抓取方式等;constraint phrase是末端操作器的位置、方向、力、时间、速度、加速度等约束条件的描述选择;then hold是指令机器人保持现有位置。第 6 章 工业机器人编程 下面是AUTOPASS程序示例,从中可以看出,这种程序的描述很容易理解。但是该语言在技术上仍有很多问题没有解决。(1)OPERATEnuffeederWITHcarrettabnutATfixture.nest(2)PLACE bracket IN fixture SUCH THA
32、T bracket.bottom(3)PLACE interlock ON bracket RUCH THAT interlock.hole IS ALIGNED WITH bracket.top 第 6 章 工业机器人编程(4)DRIVE IN earretintlkstud INTO carrettabnut Atinterlock.holeSUCH THAT TORQUE is EQ 12.0 INLBS USINGairdriverATTACHING bracket AND interlock(5)NAME bracket interlock carretintlkstud carrettabnut ASSEMBLY suppotbracket第 6 章 工业机器人编程 习习 题题 1.工业机器人的主要编程方式有哪几种?各有什么特点?2.从描述操作命令的角度来看,机器人编程语言的水平可分为哪几级?3.如图6.3所示,用附录B中Movemaster EX RVM1的编程语言实现如下功能:(1)使机器人手爪运动至位置1和位置2;(2)使机器人手爪按照设定的速度3,通过预先定义的中间位置点6、8、10,从位置5运动至位置15。第 6 章 工业机器人编程 图 6.3 机器人的运动路线图