郑 荣
机器人离线编程系统设计与研究
郑 荣
文章介绍了机器人离线编程系统、国内外机器人离线编程系统的发展现状,离线编程系统的构成及今后的发展趋势。
机器人;离线编程
进入21世纪,机器人已经成为现代工业不可缺少的工具,它标志着工业的现代化程度。近年来,随着计算机技术、微电子技术及网络技术等的快速发展,机器人技术也得到了飞速发展。它集机械工程、电子工程、自动控制工程以及人工智能等多种学科的最新科研成果于一体,目前已有许多类型的机器人投入工程应用,创造了巨大的经济和社会效益。机器人是一个可编程的机械装置,其功能的灵活性和智能性很大程度上决定于机器人的编程能力。由于机器人应用范围的扩大和所完成任务复杂程度不断增加,机器人工作任务的编制已经成为一个重要问题。通常,机器人编程方式可分为示教再现编程和离线编程。目前,在国内外生产中应用的机器人系统大多为示教再现型。示教再现型机人在实际生产应用中存在的主要技术问题有:①机器人的在线示教编程过程繁琐、效率低;②示教的精度完全靠示教者的经验目测决定,对于复杂路径难以取得令人满意的示教果;③对于一些需要根据外部信息进行实时决策的应用无能为力。而离线编程系统可以简机器人编程进程,提高编程效率,是实现系统集成的必要的软件支撑系统。与示教编程相比,离线编程系统具有如下优点:①减少机器人停机的时间,当对下一个任务进行编程时,机器人可仍在生产线上工作;②使编程者远离危险的工作环境,改善了编程环境;③离线编程系统使用范围广,可以对各种机器人进行编程,并能方便地实现优化编程;④便于和CAD/CAM系统结合,实现CAD/CAM/ROBOTICS一体化;⑤可使用高级计算机编程语言对复杂任务进行编程;⑥便于修改机器人程序。因此,离线编程引起了人们的广泛重视,并成为机器人学中一个十分活跃的研究方向。
机器人离线编程系统是利用计算机图形学的成果,建立起机器人及其工作环境的几何模型,再利用一些规划算法,通过对图形的控制和操作,在离线的情况下进行轨迹规划。通过对编程结果进行三维图形动画仿真,以检验编程的正确性,最后将生成的代码传到机器人控制系统,以控制机器人运动,完成给定任务。机器人离线编程系统已被证明是一个有力的工具,可以增加安全性,减少机器人不工作时间和降低成本。机器人离线编程系统是机器人编程语言的拓广,通过该系统可以建立机器人和CAD/CAM之间的联系。设计一个离线编程系统应具备以下几点:
1)所编程的工作过程的知识;
2)机器人和工作环境三维实体模型;
3)机器人几何学、运动学和动力学的知识;
4)基于图形显示的软件系统、可进行机器人运动的图形仿真;
5)轨迹规划和检查算法,如检查机器人关节角超限、检测碰撞以及规划机器人在工作空间的运动轨迹等;
6)传感器的接口和仿真,以利用传感器的信息进行决策和规划;
7)通信功能,以完成离线编程系统所生成的运动代码到各种机器人控制柜的通信;
8)用户接口,以提供有效的人机界面,便于人工干预和进行系统的操作。
此外,由于离线编程系统是基于机器人系统的图形模型来模拟机器人在实际环境中的工作进行编程的,因此为了使编程结果能很好地符合于实际情况,系统应能够计算仿真模型和实际模型之间的误差,并尽量减少二者间的误差。
机器人离线编程系统不仅要在计算机上建立起机器人系统的物理模型,而且要对其进行编程和动画仿真,以及对编程结果后置处理。一般说来。机器人离线编程系统包括以下一些主要模块:传感器、机器人系统CAD建模、离线编程、图形仿真、人机界面
机器人在研制,设计和试验过程中,经常需要对其运动学,动力学性能进行分析以及进行轨迹规划设计,而机器人又是多自由度,多连杆空间机构,其运动学和动力学问题十分复杂,计算难度和计算量都很大。若将机械手作为仿真对象,运用计算机图形技术CAD技术和机器人学理论在计算机中形成几何图形,并动画显示,然后对机器人的机构设计,运动学正反解分析,操作臂控制以及实际工作环境中的障碍避让和碰撞干涉等诸多问题进行模拟仿真,这样就可以很好地解决研发机械手过程中出现的问题。
CAD建模需要完成以下任务:①零件建模;②设备建模;③系统设计和布置;④几何模型图形处理。因为利用现有的C AD数据及机器人理论结构参数所构建的机器人模型与实际模型之间存在着误差,所以必须对机器人进行标定,对其误差进行测量、分析及不断校正所建模型。随着机器人应用领域的不断扩大,机器人作业环境的不确定性对机器人作业任务有着十分重要的影响,固定不变的环境模型是不够的,极可能导致机器人作业的失败。因此,如何对环境的不确定性进行抽取,并以此动态修改环境模型,是机器人离线编程系统实用化的一个重要问题。
离线编程系统的一个重要作用是离线调试程序,而离线调试最直观有效的方法是在不接触实际机器人及其工作环境的情况下,利用图形仿真技术模拟机器人的作业过程,提供一个与机器人进行交互作用的虚拟环境。计算机图形仿真是机器人离线编程系统的重要组成部分,它将机器人仿真的结果以图形的形式显示出来,直观地显示出机器人的运动状况,从而可以得到从数据曲线或数据本身难以分析出来的许多重要信息,离线编程的效果正是通过这个模块来验证的。随着计算机技术的发展,在PC机Windows平台上可以方便地进行三维图形处理,并以此为基础完成CAD、机器人任务规划和动态模拟图形仿真。一般情况下,用户在离线编程模块中为作业单元编制任务程序,经编译连接后生成仿真文件。在仿真模块中,系统解释控制执行仿真文件的代码,对任务规划和路径规划的结果进行三维图形动画仿真,模拟整个作业的完成情况。检查发生碰撞的可能性及机器人的运动轨迹是否合理,并计算机器人的每个工步的操作时间和整个工作过程的循环时间,为离线编程结果的可行性提供参考。
编程模块一般包括:机器人及设备的作业任务描述 (包括路径点的设定)、建立变换方程、求解未知矩阵及编制任务程序等。在进行图形仿真以后,根据动态仿真的结果,对程序做适当的修正,以达到满意效果,最后在线控制机器人运动以完成作业。在机器人技术发展初期,较多采用特定的机器人语言进行编程。一般的机器人语言采用了计算机高级程序语言中的程序控制结构,并根据机器人编程的特点,通过设计专用的机器人控制语句及外部信号交互语句来控制机器人的运动,从而增强了机器人作业描述的灵活性。面向任务的机器人编程是高度智能化的机器人编程技术的理想目标——使用最合适于用户的类自然语言形式描述机器人作业.通过机器人装备的智能设施实时获取环境的信息,并进行任务规划和运动规划,最后实现机器人作业的自动控制。面向对象机器人离线编程系统所定义的机器人编程语言把机器人几何特性和运动特性封装在一块,并为之提供了通用的接口。基于这种接口,可方便地与各种对象,包括传感器对象打交道。由于语言能对几何信息直接进行操作且具有空问推理功能,因此它能方便地实现自动规划和编程。此外,还可以迸一步实现对象化任务级编程语言,这是机器人离线编程技术的又一大提高。
近年来,随着机器人技术的发展,传感器在机器人作业中起着越来越重要的作用,对传感器的仿真已成为机器人离线编程系统中必不可少的一部分,并且也是离线编程能够实用化的关键。利用传感器的信息能够减少仿真模型与实际模型之间的误差,增加系统操作和程序的可靠性,提高编程效率。对于有传感器驱动的机器人系统,由于传感器产生的信号会受到多方面因素的干扰 (如光线条件、物理反射率、物体几何形状以及运动过程的不平衡性等),使得基于传感器的运动不可预测。传感器技术的应用使机器人系统的智能性大大提高,机器人作业任务已离不开传感器的引导。因此,离线编程系统应能对传感器进行建模,生成传感器的控制策略,对基于传感器的作业任务进行仿真。
后置处理的主要任务是把离线编程的源程序编译为机器人控制系统能够识别的目标程序。即当作业程序的仿真结果完全达到作业的要求后,将该作业程序转换成目标机器人的控制程序和数据,并通过通信接口加载到目标机器人控制系统,驱动机器人去完成指定的任务。由于机器人控制柜的多样性,要设计通用的通信模块比较困难,因此一般采用后置处理将离线编程的最终结果翻译成目标机器人控制柜可以接受的代码形式,然后实现加工文件的上传及下载。机器人离线编程中,仿真所需数据与机器人控制系统中的数据是有些不同的。所以离线编程系统中生成的数据有两套:一套供仿真用;一套供控制系统使用,这些都是由后置处理进行操作的。
机器人离线编程技术对工业机器人的推广应用及其工作效率的提高有着重要意义,离线编程可以大幅度节省制造时间,实现计算机的实时仿真,为机器人编程和调试提供安全灵活的环境,是机器人开发应用的研究方向。
[1] 熊有伦.机器人技术基础.华中理工大学出版社,1992
[2] 张福学.机器人技术厦其应用.电子工业出版杜,2000
[3] 赵东渡.熊有伦.机器人离线编程研究.机器人,1997(19)
[4] 付宜利,赵春霞.机器人离线编程技术与系统.组台机床与自动化加工技术.1995(1)
[5] 赵东波,熊有伦.面向对象机器人离线编程系统的设计准则.机器人.1997 (11)
[6] 陈志翔,黄勇.弧焊机器人离线编程系统分析与设计.机械工业学报,2001, (10)
[7] 刘振宇.徐方.一种通用的机器人三维图形仿真的实现机器人.2001 (23)
[8] 马强,王乾廷,图形交互式机器人离线编程系统设计.电工技术与自动化,2001(6)
Introduced the robot off-line programming system is the robot application important tool,and the situation of off-line programming system aboard,trend of off-line programming system.
Robot; off-line programming