第6章 工业机器人编程 6.1 编程方式介绍 6.2 机器人编程语言的基本要求和类别 6.3 编程语言的应用 6.4 工业机器人程序设计过程

Slides:



Advertisements
Similar presentations
學校日簡報 ~ 608 ( 六下 ) 歡迎各位家長! 報告者:黃怡萍老師. 主題一 : 滿滿的感謝 一年多來感謝家長們的支持與鼓勵,使班 務運作順利,親師生溝通良好;六年級下 學期是貴子弟國小生涯的最後一階段,時 間雖然短暫,但老師也擬定最後衝刺的目 標,希望親師生三方持續合作,讓我們愉 快的度過每一天。
Advertisements

第一章 、计算机的基础知识 第二节、计算机的特点、 分类及应用. 一. 计算机的分类 通用计算机按其规模、速度和功能 可分为五种类型。这些类型之间的 基础区别通常在于体积大小、结构 复杂、功率消耗、性能指标、数据 存储容量、指令系统设备、软件配 置等的不同。
全民國防教育宣導 暨國防教育影片欣賞與討論.
連接器基本知識介紹 2017/2/25.
水箱水位PLC控制 课题(三) *** 20**年**月**日.
Lego 機器人 基礎元件與感測器.
温故知新 问题一:我国科技发展经过怎样的历程? 中华民族在历史上曾创造了辉煌灿烂的文化,世界领先;
第八章 组织文化的整合 ——并购中的文化整合(二) 小组成员:浦若蓉、朱谷一、贾彦彦.
专题19 自然灾害与防治.
主題─ 悌 授課教師:謝宛琳.
2012新生入学专业教育 陈建辉
共同基金 開場:.
附中科學班 招生說明會 多元附中 第一選擇.
高雄市小港區海汕國民小學 第一期校舍新建工程 工程現況簡報
迴圈 迴圈基本觀念 while迴圈 do 迴圈 for迴圈 巢狀迴圈 迴圈設計注意事項 其他控制指令 迴圈與選擇的組合.
我 最 爱 的 —— 杨 幂.
中國古典文獻學 主講:羅積勇教授.
导入新课   我们生活的地球是一个蔚蓝色的星球。厚厚的气体包围坚实的土地,养育保护着地球上的生命。这厚厚的气体人们通常称为大气层。
“人无礼则不生,事无礼则不成, 国无礼则不宁” 荀子
8 会计报表分析和决策.
第五部分 如何有艺术的销售? ----中海名都促销活动方案 差别化的重要性在于:与竞争者的定位相同,等于没有定位!
《桥梁设计师》软件.
任务一 路基定额的应用 任务二 路面定额的应用 任务三 桥涵定额的应用 任务四 隧道及其他定额的应用
走過光陰 ── 眷村 三平 2號 何苡瑄.
作業系統 第六章 同步與死結.
陶板屋 組員:陳婷 劉峻愷 趙崇佑 陳鵬如.
105年度產學合作培育 研發菁英計畫說明會 教育部高等教育司 /
第一章 体育统计的基本知识 主讲教师:王丽艳 徐栋.
第13章 游戏中的人工智能.
五-4 台灣的生活禮俗 組員:603 15號 黃醴萬 6號 吳家熙 5號 楊証傑 11號 李偉新.
Chapter 4 流程控制.
大连理工大学软件学院 软件工程系 赖晓晨 计算机组成与结构 大连理工大学软件学院 软件工程系 赖晓晨
心理的力量 --兼谈教师心理压力的调适
Chapter 13 輸入/輸出系統 (I/O Systems)
新世代計算機概論 第14章 程式語言.
第一章 引论 1.1操作系统的概念 计算机系统: 计算机硬件 计算机软件 计算机硬件:运算器、控制器、存储器、输入设备和 输出设备
選擇 運算式 邏輯運算 if指令 流程圖基本觀念 程式註解 巢狀if指令 switch指令.
行为礼仪培训 二○○八年十一月.
鄭士康 國立台灣大學 電機工程學系/電信工程研究所/ 資訊網路與多媒體研究所
CH2 開發環境介紹 最簡單的互動設計 – Arduino一試就上手 孫駿榮、吳明展、盧聰勇.
C++Primer 3rd edition 中文版 Chap 5
Chapter 5 Verilog硬體描述語言
流程控制結構 4-1 流程控制與UML活動圖 4-2 程式區塊與主控台基本輸入 4-3 條件控制敘述 4-4 迴圈控制敘述 4-5 巢狀迴圈
LASER SOLDERING SYSTEM
作業系統 第六章 同步與死結.
第2章 计算机指令集结构 曲冠南
C 語言簡介 - 2.
Moldex3D于链接器产品开发之应用(范例)
实验4:PL-SQL编程 1.实验目的 2.实验原理 PL/SQL是一种过程化语言,属于第三代语言,本实验在与熟悉使用PL/SQL编程.
高电压技术 高电压技术.
7.4 布尔表达式和控制流语句 布尔表达式有两个基本目的 计算逻辑值 c = (a > b) && a > 1
第3章 微型计算机输入输出接口 3.1 输入/输出接口 3.2 输入输出数据传输的控制方式 3.3 开关量输入输出接口 欢迎辞.
第9章 DSP集成开发环境CCS 内容提要 CCS是TI公司推出的用于开发DSP芯片的集成开发环境,它采用Windows风格界面,集编辑、编译、链接、软件仿真、硬件调试以及实时跟踪等功能于一体,极大地方便了DSP芯片的开发与设计,是目前使用最为广泛的DSP开发软件之一。 本章对CCS开发软件的使用作了详细地介绍。首先,对CCS开发软件作了简要地说明,并介绍了该软件的安装及配置;其次,介绍了CCS的基本操作,包括:CCS的窗口和工具条、文件的编辑、反汇编窗口、存储器窗口、寄存器窗口、观察窗口
单元五 MCS-51单片机内部资源 5.1 任务九 单片机计数并显示 5.2 任务十 单片机流水灯控制 5.3 任务十一 两台单片机数据互传
暴力、草莽、土野、情色、權慾 —華西街的成人童話
條件處理.
一、任务描述 二、任务分析 三、任务演示 四、相关知识 五、任务布置. 一、任务描述 二、任务分析 三、任务演示 四、相关知识 五、任务布置.
刑事訴訟法 不受理.
Week 2: 程式設計概念與 演算法的效能評估
小小銀行家 擔心子女未來的「錢」途嗎?或是否正苦思對策,希望能教導子女更負責任的使用、管理金錢?
悠遊卡  工管四甲  4A  李鎮宇.
软件设计任务 从工程管理的角度来看,软件设计分两步完成。 概要设计,将软件需求转化为数据结构和软件的系统结构。
高山草原生態系 分布於臺灣3000公尺以上高山,如中央山脈.玉山山脈.雪山山脈 分為玉山箭竹草原,高山芒草原及兩者混生林三種
奇美 電子_幸福企業不幸福? 胡慧楨-查資料 徐夢霜-製作ppt簡報 謝欣育-製作word簡報
發表於2005物理教學示範暑期研討會,國立清華大學物理系主辦 (2005/8/25~26)
網路資源的應用-抓圖 李俊賢.
第六章 样本及抽样分布 §2 抽样分布 4) 正态总体的样本均值与样本方差的分布: 定理1.
暫借款及暫借款沖銷 就源輸入作業 長庚大學 會計室 製.
指導單位:教育部 技專校院招生策進總會 主辦單位:101學年度南區五專聯合免試 暨申請抽籤入學招生委員會 主辦學校:美和科技大學
郭臺銘                                                                                                      鴻海精密工業股份有限公司.
Presentation transcript:

第6章 工业机器人编程 6.1 编程方式介绍 6.2 机器人编程语言的基本要求和类别 6.3 编程语言的应用 6.4 工业机器人程序设计过程 习题

6.1 编程方式介绍   1. 顺序控制的编程   在顺序控制的机器中, 所有的控制都是由机械或电气的顺序控制器实现的。按照我们的定义, 这里没有程序设计的要求。顺序控制的灵活性小,这是因为所有的工作过程都已编好, 每个过程或由机械挡块或由其他确定的办法所控制。大量的自动机都是在顺序控制下操作的。这种方法的主要优点是成本低, 易于控制和操作。

  2. 示教方式编程(手把手示教)   目前大多数机器人还是采用示教方式编程。示教方式是一项成熟的技术, 易于被熟悉工作任务的人员所掌握, 而且用简单的设备和控制装置即可进行。示教过程进行得很快,示教过后,马上即可应用。在对机器人进行示教时, 将机器人的轨迹和各种操作存入其控制系统的存储器。如果需要,过程还可以重复多次。在某些系统中, 还可以用与示教时不同的速度再现。

  如果能够从一个运输装置获得使机器人的操作与搬运装置同步的信号, 就可以用示教的方法来解决机器人与搬运装置配合的问题。 示教方式编程也有一些缺点: (1) 只能在人所能达到的速度下工作; (2) 难与传感器的信息相配合; (3) 不能用于某些危险的情况; (4) 在操作大型机器人时, 这种方法不实用; (5) 难获得高速度和直线运动; (6) 难于与其他操作同步。

  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)。

图6.1是机器人插螺栓作业的示意图, 可以建立起图中的base坐标系、beam坐标系和feeder坐标系,程序如下:   (4) 坐标系: 坐标系可通过调用函数FRAME来构成。 该函数有两个参数: 一个表示姿态的旋转,另一个表示位置的距离矢量。AL中定义STATION代表工作空间的基准坐标系。   图6.1是机器人插螺栓作业的示意图, 可以建立起图中的base坐标系、beam坐标系和feeder坐标系,程序如下:   FRAME base beam feeder; 坐标系变量说明   base<-FRAME(nilrot, VECTOR (20, 0, 15)*inches); 坐标系base的原点位于全局坐标系原点(20, 0, 15)英寸处, Z轴平行于全局坐标系Z轴

beam<-FRAME(ROT(Z,90. deg),VECTOR(20,15,0)   beam<-FRAME(ROT(Z,90*deg),VECTOR(20,15,0)*inches);坐标系beam的原点位于全局坐标系原点(20, 15, 0)英寸处, 并绕全局坐标系Z轴旋转90°   feeder<-FRAME(nilrot, VECTOR(25, 20, 0)*inches); 坐标系feeder的原点位于全局坐标系(25, 20, 0)英寸处, 且Z轴平行于全局坐标系的Z轴   对于在某一坐标系中描述的矢量, 可以用矢量WRT坐标系的形式来表示(WRT: With Respect To), 如xhat WRT beam, 表示在全局坐标系中构造一个与坐标系beam中的xhat具有相同方向的矢量。

  (5) 变换: TRANS型变量用来进行坐标系间的变换。与FRAME一样, TRANS包括两部分: 一个旋转和一个向量。 执行时, 先与相对于作业空间的基坐标系旋转部分相乘, 然后再加上向量部分。当算术运算符“<-”作用于两个坐标系时, 是指把第一个坐标系的原点移到第二个坐标系的原点, 再经过旋转使其轴重合。   因此可以看出, 描述第一个坐标系相对于基坐标系的过程, 可通过对基坐标系右乘一个TRANS来实现。如图6.1所示, 可以建立起各坐标系之间的关系:

T6<-base. TRANS(ROT(x, 180. deg), VECTOR(15, 0, 0)   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。   假定机械手在任意位置, 可把它运动到停放位置, 所用的语句是  MOVE barm TO bpark;   如果要求在4 s内把机械手移动到停放位置, 所用指令是   MOVE barm TO bpark WITH DURATION=4*seconds;

  符号“@”可用在语句中, 表示当前位置, 如   MOVE barm TO @-2*zhat*inches; 该指令表示机械手从当前位置向下移动2英寸。   由此可以看出, 基本的MOVE语句具有如下形式:  MOVE(机械手) TO(目的地) (修饰子句);   例如:  MOVE barm TO <destination>VIA f1 f2 f3 表示机械手经过中间点f1、f2、f3移动到目标坐标系<destination>。 MOVE barm TO block WITHAPPROACH=3*zhat*inches

表示把机械手移动到在Z轴方向上离block 3英寸的地方; 如果用DEPARTURE代替APPROACH,则表示离开block。  关于接近/退避点可以用设定坐标系的一个矢量来表示, 如  WITH APPROACH=<表达式>;  WITH DEPARTURE=<表达式>;   如图6.2所示,要求机器人由初始位置经过A点运动到螺钉处, 再经过B、C后到达D点。描述该运动轨迹的程序如下: MOVE barm TO bolt grasp VIA A WITH APPROACH=-Z WRT feeder; MOVE barm TO B VIA A WITH DEPARTURE=Z WRT feeder; MOVE barm TO B VIA C WITH APPROACH=-Z WRT beam bore;

(2) 手爪控制语句。 手爪控制语句的一般形式为:   OPEN <hand> TO (sval);  CLOSE <hand> TO (sval);   这两条语句是使手爪张开或闭合后相距(sval)。 (sval)是表示开度的距离值。

图 6.2 机器人插螺钉作业的路径

  3. AL程序设计举例   用AL语言编制如图6.2所示的机器人把螺栓插入其中一个孔里的作业。这个作业需要把机器人移至料斗上方A点, 抓取螺栓, 经过B点、C点,再把它移至导板孔上方D点(见图6.2), 并把螺栓插入其中一个孔里。   编制这个程序的步骤是:   (1) 定义机座、导板、料斗、导板孔、螺栓柄等的位置和姿态。   (2) 把装配作业划分为一系列动作, 如移动机器人、抓取物体和完成插入等。   (3) 加入传感器以发现异常情况和监视装配作业的过程。   (4) 重复步骤(1)~(3), 调试并改进程序。

按照上面的步骤, 编制的程序如下: BEGIN insertion 设置变量 bolt-diameter<-0.5*inches; bolt-height<-1*inches; tries<-0; grasped<false; beam<—FRAME(ROT(z, 90*deg), VECTOR(20, 15, 0)*inches); 定义机座坐标系 feeder<—FRAME(nilrot, VECTOR(20, 20, 0)*inches);

bolt-grasp<-feeder*TRANS(nilrot, nilvect); 定义特征坐标系 bolt-tip<-bolt-grasp, TRANS(nilrot, VECTOR(0, 0, 0.5)*inches); beam-bore<-beam*TRANS(nilrot, VECTOR(0, 0, 1)*inches); A<-feeder*TRANS(nilrot, VECTOR(0, 0, 5)*inches); 定义经过的点坐标系 B<-feeder*TRANS(nilrot, VECTOR(0, 0, 8)*inches); C<-beam-bore*TRANS(nilrot, VECTOR(0, 0, 5)*inches); D<-beam- bore*TRANS(nilrot, bolt height*Z); OPEN bhand TO boltdiameter+1*inches; 张开手爪

MOVE barm TO bolt grasp VIA A WITH APPROACH=-Z WRT feeder; 使手准确定位于螺栓上方试着抓取螺栓 DO CLOSE bhand TO 0.9*bolt diameter; IF bhand<bolt diameter THEN BEGIN OPEN bhand TO bolt diameter+1*inches; 抓取螺栓失败, 再试一次 MOVE barm TO @-1*Z*inches; END ELSE grasped<-TRUE; tries<-tries+1;

UNTIL grasped OP (tries>3); 如果尝试三次未能抓取螺栓, 则取消这一动作 IF NOT 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 beam bore; MOVE barm TO @-0.1*Z*inches ON FORCE(Z)>10 *ounce 检验是否有孔 DO ABORT; 无孔 MOVE barm TO beam bore DIRECTLY;进行柔顺性插入 WITH FORCE(Z) = -10*ounce; WITH FORCE(X) = 0*ounce;

WITH FORCE(Y) = 0*ounce; WITH DURATION = 5*seconds; END insertion

6.3.2 VAL-Ⅱ语言   VAL-Ⅱ是在1979年推出的, 用于Unimation和Puma机器人。 它是基于解释方式执行的语言,并且具有程序分支、传感信息输入/输出通信、 直线运动以及许多其他特征。例如,用户可以在沿末端操作器a轴的方向指定一个距离height, 将它与语句命令APPRO(用于接近操作)或DEPART(用于离开操作)结合, 便可实现无碰撞地接近物体或离开物体。MOVE命令用来使机器人从它的当前位置运动到下一个指定位置,而MOVES命令则是沿直线执行上述动作。为了说明VAL-Ⅱ的一些功能, 我们通过下面的程序清单来描述其命令语句:

1 PROGRAM TEST 程序名 2 SPEED 30 ALWAYS 设定机器人的速度 3 height=50 设定沿末端执行器a轴方向抬起或落下的距离 4 MOVES  p1 沿直线运动机器人到点p1 5 MOVE  p2 用关节插补方式运动机器人到第二个点p2 6 REACT 1001   如果端口1的输入信号为高电平(关), 则立即停止机器人 7 BREAK 当上述动作完成后停止执行 8  DELAY 2 延迟2秒执行 9 IF SIG(1001) GOTO 100 检测输入端口1, 如果为高电平(关), 则转入继 续执行第100行命令, 否则继续执行下一行命令 10 OPEN 打开手爪

11 MOVE p5 运动到点p5 12 SIGNAL 2 打开输出端口2 13 APPRO p6, height 将机器人沿手爪(工具坐标系)的a轴移向p6, 直到 离开它一段指定距离height的地方, 这一点叫抬起点 14 MOVE p6 运动到位于p6点的物体 15 CLOSE 关闭手爪, 并等待直至手爪闭合 16 DEPART height 沿手爪的5轴(工具坐标系)向上移动height距离 17 MOVE p1 将机器人移到p1点 18 TYPE all done″ 在显示器上显示all done 19 END

6.3.3 AML语言   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分别表示绕翻转(Roll)、 俯仰(Pitch)和偏转(Yaw)轴(用来定向)旋转, 而JG表示手爪。

  在AML中允许两种运动形式:MOVE命令是绝对值, 也就是说,机器人沿指定的关节运动到给定的值; DMOVE命令是相对值, 也就是说, 关节从它当前所在的位置起运动给定的值。 这样,MOVE(1, 10)就意味着机器人将沿x轴从坐标原点起运动10英寸,而DMOVE(1, 10)则表示机器人沿x轴从它当前位置起运动10英寸。AML语言中有许多命令, 它允许用户可以编制复杂的程序。   以下程序用于引导机器人从一个地方抓起一件物体, 并将它放到另一个地方, 并以此例来说明如何编制一个机器人程序。

10 SUBR(PICKPLACE);   子程序名 20 PT1: NEW<4, -24, 2, 0, 0, -13>; 位置说明 30 PT2: NEW<-2, 13, 2, 135, -90, -33>; 40 PT3: NEW<-2, 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); 将手臂运动到物体上方的点1 MOVE(7, 3); 将抓持器打开到3英寸 90 DMOVE(3, -1);      将手臂沿z轴下移1英寸 100 DMOVE(7, -1.5); 将抓持器闭合1.5英寸 110 DMOVE(3, 1); 沿x轴将物体抬起1英寸 120 MOVE(<JX, JY, JZ, JR, JR, JY>, PT2); 将手臂运动到点2

130 DMOVE(JZ, -3); 沿z轴将手臂下移3英寸放置物体 140 MOVE(JG, 3); 将抓持器打开到3英寸 150 DMOVE(JZ, 11); 将手臂沿z轴上移11英寸 160 MOVE(ARM, PT3); 将手臂运动到点3 170 END;

6.3.4 AUTOPASS语言 AUTOPASS语言是一种对象级语言。 对象级语言是靠对象状态的变化给出大概的描述, 把机器人的工作程序化的一种语言。AUTOPASS、LUMA、RAFT等都属于这一级语言。 AUTOPASS是IBM公司属下的一个研究所提出来的机器人语言, 它像给人的组装说明书一样, 是针对机器人操作的一种语言。 程序把工作的全部规划分解成放置部件、 插入部件等宏功能状态变化指令来描述。AUTOPASS的编译是用称作环境模型的数据库, 边模拟工作执行时环境的变化边决定详细动作, 作出对机器人的工作指令和数据。AUTOPASS的指令分成如下四组:

 (1) 状态变更语句: PLACE, INSERT, EXTRACT, LIFT, LOWER, SLIDE, PUSH, ORIENT, TURN, GRASP, RELEASE, MOVE。   (2) 工具语句: OPERATE, CLUMP, LOAP, UNLOAD, FETCH, REPLACE, SWITCH, LOCK, UNLOCK。   (3) 紧固语句: ATTACH, DRIVE IN, RIVET, FASTEN, UNFASTEN。   (4) 其他语句: VERIFY, OPEN STATE OF, CLOSED STATE OF, NAME, END。

  例如, 对于PLACE的描述语法为:   PLACE<object><preposition phrase><object><grasping phrase><final condition phrase><constraint phrase><then hold>。   其中, <object>是对象名; <preposition phrase>表示ON或IN那样的对象物间的关系;<grasping phrase>是提供对象物的位置和姿态、 抓取方式等; <constraint phrase>是末端操作器的位置、方向、力、时间、速度、加速度等约束条件的描述选择; <then hold>是指令机器人保持现有位置。

  下面是AUTOPASS程序示例, 从中可以看出, 这种程序的描述很容易理解。 但是该语言在技术上仍有很多问题没有解决。   (1) OPERATE nuffeeder WITH car ret tab nut AT fixture.nest   (2) PLACE bracket IN fixture SUCH THAT bracket.bottom   (3) PLACE interlock ON bracket RUCH THAT interlock.hole IS ALIGNED WITH bracket.top

(4) DRIVE IN ear-ret-intlk-stud INTO car-ret-tab-nut Atinterlock   (4) DRIVE IN ear-ret-intlk-stud INTO car-ret-tab-nut Atinterlock.hole SUCH THAT TORQUE is EQ 12.0 IN LBS USING air driver ATTACHING bracket AND interlock   (5) NAME bracket interlock car ret intlk stud car ret tab nut ASSEMBLY suppot-bracket

6.4 工业机器人程序设计过程 1. Movemaster EX RV-M1装配机器人各硬件的功能 6.4 工业机器人程序设计过程   1. Movemaster EX RV-M1装配机器人各硬件的功能   如图1.15所示, Movemaster EX RV-M1装配机器人各主要硬件功能如下:   (1) 机器人主体: 具有和人手臂相似的动作机能, 可在空间中抓放物体或进行其他动作。

  (2) 机器人控制器: 可以通过RS232接口和Centronics connector连接上位编程PC机, 实现控制器存储器与PC机存储器程序之间的相互传送; 可以与示教盒相接, 处理操作者的示教信号并驱动相应的输出; 可以把外部I/O信号转换成控制器的CPU可以处理的信号; 可以与驱动器(直流电机)直接连接, 用控制器CPU处理的结果去控制相应的关节的转动速度与转动角速度。   (3) 示教盒: 操作者可利用示教盒上所具有的各种功能的按钮来驱动工业机器人的各关节轴, 从而完成位置定义等功能。   (4) PC机: 可通过三菱公司所提供的编程软件对机器人进行在线和离线编程。

  2. Movemaster EX RV-M1装配机器人的编程语言   这款机器人的编程语言如附录A所示, 编程指令可分为5类: 位置/动作控制功能指令、 程序控制功能指令、 手爪控制功能指令、 I/O控制功能指令、 通信功能指令。   3. 设计流程图   设计流程图实际上是用流程图形式表示机器人的动作顺序。 对于简单的机器人动作, 这一步可以省略, 直接进行编程, 但对于复杂的机器人动作, 为了完整地表达机器人所要完成的动作, 这一步必不可少。 可以看出, 该任务中虽然机器人需要取放60个工件, 但每一个工件的动作过程都是一样的, 所以采用循环编程的方式, 设计出的流程图如图6.3所示。

图 6.3 Movemaster EX RV-M1装配机器人工件检测动作流程图

  4. 按功能块进行编程   (1) 初始化程序。 对于工业机器人, 初始化一般包括复位、 设置末端操作器的参数、 定义位置点、 定义货盘参数、 给货盘计数器赋初值等。   定义位置点:    PD 50, 0, 20, 0, 0 ; 位置号为50, 只在Z轴上有20 mm的偏移量   复位:     10 NT ; 复位

定义末端操作器参数:  15 TL 145 ; 工具长度设为145 mm 20 GP 10, 8, 10  ; 设置手爪的开/闭参数 定义货盘参数:  25 PA 1, 12, 5 ; 定义货盘1 (垂直12 ×水平5) 30 PA 2, 15, 4 ; 定义货盘2 (垂直15 ×水平4) 定义货盘计数器初值:  35 SC 11, 1 ; 设置货盘1纵向计数器的初值 40 SC 12, 1 ; 设置货盘1横向计数器的初值 45 SC 21, 1 ; 设置货盘2纵向计数器的初值 50 SC 22, 1 ; 设置货盘2横向计数器的初值

(2) 主程序。  100 RC 60 ; 设置从该行到140行的循环次数为60 110 GS 200 ; 跳转至200行, 从货盘1上夹起工件 120 GS 30 ; 跳转至300行, 将工件装在检测设备上 130 GS 400 ; 跳转至400行, 将工件放在货盘2上 140 NX ; 返回100行 150 ED ; 结束

(3) 从货盘1(如图6.4所示)夹起要检测的工件子程序。  200 SP 7 ; 设置速度 202 PT 1 ; 定义货盘1上所计光栅数的坐标              为位置1 204 MA 1, 50, O ; 机器人移至位置1上方(Z方              向)20 mm处, 此时机械手打开 206 SP 2 ; 设置速度为2级, 较慢 208 MO 1, O ; 机器人移至位置1 210 GC ; 闭合手爪, 抓紧工件

 212 MA 1, 50, C ; 抓紧工件, 机器人移至位置1上              方(Z方向)20 mm 214 IC 11 ; 货盘1的纵向计数器按1递增 216 CP 11 ; 将计数器11的值放入内部比较寄               存器 218 EQ 13, 230 ; 如计数器的值等于13, 程序跳转 至230执行 220 RT ; 结束子程序 230 SC 11, 1 ; 初始化计数器11 232 IC 12 ; 货盘1的横计数器按1递增 234 RT ; 结束子程序

图 6.4 货盘1

(4) 工件检测子程序。 300 SP 7 ; 设置速度为7级, 较快 302 MT 30, -50, C ; 机器人移至检测设备前50 mm处 304 SP 2 ; 减为2级速度 306 MO 30, C ; 机器人将工件装在检测设备上 308 ID ; 取输入数据 310 TB7, 308 ; 机器人等待工件检测完毕 312 MT 30, -50, C ; 机器人移至检测设备前50 mm处 314 RT ; 结束子程序

(5) 向货盘2(如图6.5所示)放置已检测完的工件子程序。 400 SP 7 ; 设置速度为7级, 较快 402 PT 2 ; 定义货盘2上所计光栅数的坐 标为位置2 404 MA 2, 50, C ; 机器人移至位置2正上方的一 个位置 406 SP 2 ; 设置速度为2级, 较慢 408 MO 2, C ; 机器人移至位置2 410 GO ; 打开手爪, 释放工件

412 MA 2, 50, C ; 机器人移至位置2正上方20 mm处 414 IC 21 ; 货盘2的纵向计数器按1递增 416 CP 21 ; 将计数器21的值放入内部比较寄 存器 418 EQ 16, 430 ; 如果计数器的值等于16, 程序跳 转至430执行 420 RT ; 结束子程序 430 SC 21, 1 ; 初始化计数器21 432 IC 22 ; 货盘2的横向计数器按1递增 434 RT ; 结束子程序

图 6.5 货盘2

5. 按功能块调试修改程序 三菱装配机器人配置的编程软件可实现机器人动作的模拟过程, 编写完程序后, 先用软件进行模拟, 确认动作顺序正确后, 再下载到机器人的控制器中。

习 题 1. 工业机器人的主要编程方式有哪几种? 各有什么特点? 2. 从描述操作命令的角度来看, 机器人编程语言的水平可分为哪几级? 习 题   1. 工业机器人的主要编程方式有哪几种? 各有什么特点?   2. 从描述操作命令的角度来看, 机器人编程语言的水平可分为哪几级?   3. 如图6.6所示,用附录B中Movemaster EX RVM1的编程语言实现如下功能:   (1) 使机器人手爪运动至位置1和位置2;   (2) 使机器人手爪按照设定的速度3, 通过预先定义的中间位置点6、8、10,从位置5运动至位置15。

图 6.6 机器人的运动路线图