1、工业机器人技术基础第第6 6章章 工业机器人编程技术工业机器人编程技术6.1 工业机器人编程方式目录CONTENT6.2 工业机器人编程语言概述6.3 机器人编程语言简介熟悉工业机器人的编程方式。12学习目标熟悉机器人编程语言的特征和特性。3熟悉工业机器人的编程要求。熟悉机器人编程语言的基本功能。了解机器人编程语言的发展。了解工业机器人常用编程语言。4566.1工业机器人编程方式工业机器人的编程方式可以分为在线编程、离线编程和自主编程三种。6.1.1 在线编程在线编程要实现工业机器人特定的连贯动作,可以先将连贯动作拆分成机器人关键动作序列,称之为动作节点动作节点。在线编程的思路:将机器人调整到
2、第一个动作节点,让机器人储存这个动作节点的位姿,再调整到第二个动作节点并记录位姿,以此类推直至动作结束。在线编程可分为“手把手”示教编程和示教器编程两种(a)“手把手”示教编程 (b)示教器示教编程图6-1 在线编程类型1“手把手手把手”示教编程示教编程“手把手”示教编程是指操作人员直接用手移动末端执行器确定动作节点,再进行编程。“手把手”示教编程在技术上简单直接,示教过后即可马上应用,而且成本低廉,主要应用在电子技术不够发达的早期工业机器人上面。“手把手”示教编程有以下几个不可避免的缺点:(1)要求操作人员有较多经验,且人工操作繁重。(2)难以操作大型和高减速比的工业机器人。(3)位置不精确
3、,更难以实现精确的路径控制。(4)示教轨迹重复性差。2示教器示教编程示教器示教编程示教器示教编程是利用装在示教盒上的按钮驱动工业机器人按需要的顺序进行操作。虽然为了获得最高的运行效率,但在示教器示教编程方式下却很难实现多关节同时移动。示教器示教编程一般用于对大型机器人或危险作业条件下的工业机器人进行示教,但其仍然沿用在线编程的思路,存在以下几个缺点。(1)难以获得高的控制精度。(2)难以与其他操作同步。(3)有一定的危险性。6.1.2 离线编程离线编程机器人离线编程可分为基于文本的编程和基于图形的编程两类。基于文本的编程,如早期的POWER语言,是一种机器人专用语言,这种编程方法缺少可视性,在
4、现实中基本不采用。基于图形的编程是利用计算机图形学的研究成果,建立起计算机及其工作环境的几何模型,并利用计算机语言及相关算法,通过对图形的控制和操作,在离线情况下进行机器人作业轨迹的规划。图6-2 基于图形的编程软件系统界面表6-1 在线编程与离线编程的比较在线编程在线编程离线编程离线编程需要实际机器人系统和工作环境只需要机器人系统和工作环境的图形模型编程时机器人需停止工作编程时不影响机器人正常工作需在机器人系统上试验程序通过仿真软件试验程序,可预先优化操作方案和运行周期示教精度取决于操作人员经验可用CAD方法进行最佳轨迹规划难以实现复杂的运行轨迹可实现复杂运行轨迹的编程除此之外,离线编程还具
5、有以下几个优点。(1)以前完成的过程或子程序可结合到待编的程序中,对于不同的工作目的,只需要替换一部分特定的程序即可。(2)可通过传感器探测外部信息,实现基于传感器的自动规划功能。(3)程序易于修改,适合中、小批量的生产要求。(4)能够实现多台机器人和外围辅助设备的示教和协调。6.2工业机器人编程语言概述6.2.1 工业机器人的编程要求工业机器人的编程要求1能够建立世界模型能够建立世界模型在进行机器人编程时,需要一种描述物体在三维空间内运动的方式。因此,需要给机器人及其相关物体建立一个基础坐标系,这个坐标系与大地相连,又称为世界称为世界坐标系坐标系。机器人工作时,为了方便起见,也会建立其他坐标
6、系,同时建立这些坐标系与基础坐标系的变换关系。机器人编程系统应具有在各种坐标系下描述物体位姿和建模的能力。2能够描述机器人的作业能够描述机器人的作业机器人作业的描述与其环境模型密切相关,编程语言水平决定了描述水平。其中,以自然语言输入为最高水平。现有的机器人语言需要给出作业顺序,由语法和词法定义输入语言,并由它描述整个作业。3能够描述机器人的运动能够描述机器人的运动描述机器人需要进行的运动是机器人编程语言的基本功能之一。用户能够运用语言中的运动语句,与路径规划器和发生器连接,允许用户规定路径上的点及目标点,决定是否采用点插补运动或笛卡儿直线运动。用户还可以控制运动速度或运动持续时间。对于简单的
7、运动语句,大多数编程语言具有相似的语法。4允许用户规定执行流程允许用户规定执行流程同计算机编程语言一样,机器人编程系统允许用户规定执行流程,包括试验、转移、循环、调用子程序以及中断等。5要有良好的编程环境要有良好的编程环境一个好的编程环境有助于提高程序员的工作效率。机械手的程序编制比较困难,其编程趋向于试探对话式。如果用户忙于应付连续重复的编译语言的编辑编译执行循环,那么其工作效率必然低下。因此,现在大多数机器人编程语言含有中断功能,以便能够在程序开发和调试过程中每次只执行单独一条语句。6需要人机接口和综合传感信号需要人机接口和综合传感信号在编程和作业过程中,人与机器人之间进行信息交换应便利,
8、以防运动出现故障时能及时处理,确保安全。而且,随着作业环境和作业内容复杂程度的增加,需要有功能强大的人机接口。机器人语言的一个极其重要的部分是与传感器的相互作用。语言系统应能提供一般的决策结构,以便根据传感器的信息来控制程序的流程。6.2.2 机器人编程语言的特征与特性机器人编程语言的特征与特性机器人编程语言一直以三种方式发展着,一是产生一种全新的语言,二是对老版本语言(指计算机通用语言)进行修改或增加一些句法规则,三是在原计算机编程语言中增加新的子程序。1机器人编程语言的特征机器人编程语言的特征机器人编程语言是在人与机器人之间的一种记录信息或交换信息的程序语言,是一种专用语言,用符号描述机器
9、人的动作,它提供了一种方式来解决人机通信问题。机器人语言具有四方面的特征:实时系统;三维空间的运动系统;良好的人机接口;实际的运动系统。2机器人编程语言的基本特性机器人编程语言的基本特性1)简易性和通用性2)程序结构的清晰性3)应用的自然性4)易扩展性5)调试和外部支持工具6)效率6.2.3 机器人编程语言的基本功能机器人编程语言的基本功能1运算运算用于解析几何运算的计算工具应包括下列内容。(1)机械手解答及逆解答。(2)坐标运算和位置表示,如相对位置的构成和坐标的变化等。(3)矢量运算,如点积、交积、长度、单位矢量、比例尺以及矢量的线性组合等。在作业过程中执行的规定运算能力是机器人控制系统最
10、重要的能力之一。2决策决策机器人系统能够根据传感器输入信息直接作出决策,而不必执行任何运算。传感器数据计算得到的结果,是作出下一步决策的基础。这种决策能力使机器人控制系统的功能变得更强有力。3通信通信机器人系统与操作人员之间的通信能力,允许机器人要求操作人员提供信息、告诉操作人员下一步该干什么,以及让操作者知道机器人打算干什么。人和机器人之间能够通过许多方式进行通信。机器人向人提供信息的设备,按其复杂程度排列如下。(1)信号灯(通过发光二极管,机器人能够给出显示信号)。(2)字符打印机、显示器。(3)绘图仪。(4)语言合成器或其他音响设备(如扬声器)。人向机器人提供信息的输入设备如下。(1)按
11、钮、乒乓开关、旋钮和指压开关。(2)数字或字母数字键盘。(3)光笔、光标指示器和数字变换板。(4)远距离操纵主控装置(如悬挂式操作台)。(5)光学字符阅读器。4机械手运动机械手运动机械手的运动可用许多方法来规定。最简单的方法是向各关节伺服装置提供一组关节位置,然后等待伺服装置到达这些规定位置。比较复杂的方法是在机械手工作空间内插入一些中间位置。更先进的方法是用与机械手的形状无关的坐标来表示工具位置,它需要用一台计算机对解答进行计算。采用计算机之后,极大地提高了机械手的工作能力,具体如下。(1)使复杂的运动顺序成为可能。(2)使运用传感器控制机械手运动成为可能。(3)能够独立存储工具位置,而与机
12、械手的设计以及刻度系数无关。5工具指令工具指令一个工具控制指令通常是由闭合某个开关或继电器而触发的,而继电器又可能将电源接通或断开,以直接控制工具运动,或者送出一个小功率信号给电子控制器,让后者去控制工具运动。直接控制是最简单的方法,而且对控制系统的要求也较少。此外,可以用传感器来感受工具运动及其功能的执行情况。6传感器数据处理传感器数据处理用于机械手控制的通用计算机只有与传感器连接起来,才能发挥其全部效用。传感器数据处理是许多机器人程序编制十分重要而又复杂的组成部分,当采用触觉、听觉或视觉传感器时,更是如此。6.2.4 机器人编程语言的发展机器人编程语言的发展1973年美国斯坦福大学研制出世
13、界上第一种机器人语言WAVE语言。1974年,在WAVE语言的基础上,斯坦福大学人工智能实验室又开发出一种新的语言,称为AL语言。1975年,IBM公司研制出ML语言,主要用于机器人的装配作业。随后该公司又研制出另一种语言Autopass语言,这是一种更高级的用于装配的语言,它可以对几何模型类任务进行半自动编程。1979年美国的Unimation公司推出了VAL语言。1984年,Unimation公司又推出了在VAL基础上改进的机器人语言VAL语言。同时,麦道公司研制了MCL语言。6.3机器人编程语言简介6.3.1 AL语言语言AL语言是20世纪70年代中期美国斯坦福大学人工智能研究所在WAV
14、E的基础上开发研制的一种机器人语言,适用于机器人的装配作业。AL语言的结构及特点类似于PASCAL语言,可以编译成机器语言在实时控制机上运行,具有实时编译语言的结构和特征,如可以同步操作、条件操作等。AL语言设计的初衷是用于具有传感器信息反馈的多台机器人或机械手的并行或协调控制编程。图6-4 AL语言运行的硬件环境表6-3 常用AL语言语句6.3.2 Autopass语言语言Autopass语言是IBM公司下属的一个研究所提出来的机器人语言,它类似于是给人的组装说明书,是针对所描述机器人操作的语言。程序将工作的全部规划分解成放置部件、插入部件等宏功能状态变化指令来描述。Autopass的编译是
15、应用称作环境模型的数据库,一边模拟工作执行时环境的变化一边决定详细动作,得到控制机器人的工作指令和数据。表6-4 常用Autopass语言指令表6.3.3 VAL语言语言VAL语言全称Variable Assembly Language,即可变汇编语言。它是美国Unimation公司于1979年推出的一种机器人编程语言,主要配置在PUMA和Unimation等机器人上,是一种专用的动作类描述语言。VAL语言是在BASIC语言的基础上发展起来的,所以与BASIC语言的结构很相似。VAL语言系统包括文本编辑、系统命令和编程语言三个部分。VAL语言有以下几个优点(1)VAL语言命令简单、清晰易懂,描
16、述机器人作业动作及与上位机的通信均较方便,实时功能强。(2)可以在在线和离线两种状态下编程,适用于多种计算机控制的机器人。(3)能够迅速地计算出不同坐标系下复杂运动的连续轨迹,能连续生成机器人的控制信号,可以与操作者交互地在线修改程序和生成程序。(4)VAL语言包含子程序库,通过调用各种不同的子程序可快速组合成复杂操作控制。(5)能与外部存储器进行快速数据传输以保存程序和数据。表6-5 常用VAL语言指令表6.3.4 RAPT语言语言RAPT语言是英国爱丁堡大学开发的实验用机器人语言,它的语法基础来源于著名的数控语言APT。RAPT语言可以详细地描述对象物的状态和各对象物之间的关系,能指定一些
17、动作来实现各种结合关系,还能自动计算出机器人手臂为了实现这些操作的动作参数。RAPT语言中,对象物可以用一些特定的面来描述,这些特定的面是由平面、直线、点等基本元素定义的。6.3.5 IML语言语言IML语言全称Interactive Manipulator Language,是日本九州大学开发的一种对话性好、简单易学、面向应用的机器人语言。它和VAL语言一样,是一种着眼于末端执行器动作编程的动作型语言。用户可以使用IML语言给出机器人的工作点、操作路线,或给出目标物体的位置姿态,直接操纵机器人。除此以外,IML语言还有如下几个优点。(1)描述往返动作可以不用循环语句。(2)可以直接在工作坐标系内使用。(3)能将要示教的轨迹(末端执行器位姿向量的变化)定义成指令,加入到语言中。所示教的数据还可以用力控制的方式再现出来。6.3.6 RAPID语言语言RAPID语言是一种用于控制ABB工业机器人的高级编程语言。通过RAPID语言可以对机器人进行逻辑、运动以及输入输出控制。RAPID语言的结构及特点类似于VB和C语言,因此只要程序员具有一般高级语言编程的基础,便能快速掌握RAPID语言。RAPID语言不但本身提供了丰富的指令,还可以根据实际需要编制专属的指令集,这样一个具有高度灵活性的编程语言为ABB工业机器人的各种应用提供了无限的潜能。表6-6 常用RAPID语言指令表