摘要:本文给出了在高级建模系统SolidWorks上开发机器人弧焊离线编程系统的方法,成功地开发出了一个功能较全的、实用化的机器人弧焊离线编程系统。本文给出了该系统的对象模型,并对各基本功能模块的功能进行介绍。
关键词:机器人 弧焊 离线编程
前言
随着微机性能的不断提高,许多大型的CAD设计软件纷纷推出其微机版本,并且出现了直接运行在微机上的SolidWorks等软件。在机器人领域,以往运行在高档图形工作站上的离线编程软件,如ROBCAD、IGRIP、WORKSPACE等,纷纷推出了基于Windows的离线编程系统。这些软件都是通用的离线编程软件,尚缺乏对弧焊特殊应用的支持,如WORKSPACE更注重标定功能的开发[1]。用户在编程程序时,很多时候还必须通过图形示教方式建立机器人运动路径,这对于大型工件或复杂路径的编程,工作量是相当大的。从发展方向上看,离线编程系统正朝着智能化方向发展,用户编程越来越简单方便,自动编程技术成为人们追求的目标。
哈尔滨工业大学焊接实验室开发的离线编程系统平台AutoCAD2000,实践证明,由于该软件开发中的自身原因,使的该软件存在一些的不足之处,三维设计中的实体造型能力不足,系统无法支撑较复杂工作单元的建模,无法实用化。目前具有一定自主规划能力的离线编程系统将极大减少用户的工作量,工件CAD信息的获取成为后续规划的数据输入,这要求离线编程系统的平台有较强的建模功能,能对各种焊接任务中的焊接工件进行建模。由于AutoCAD本身三维建模功能很弱,采用其他建模工具导入的模型,AutoCAD将无法得到足够的工件建模信息,无法实现后续的自动规划功能。
开发适合中国企业的、廉价且专业的弧焊离线编程系统,对于推广离线编程的实际应用具有重要意义。
1 系统开发环境
SolidWorks由于价格便宜、具有一般用户所需的功能,已成为全球3D主流设计市场用户数最多、用户满意度最高、销售额第一的软件产品,在全球拥有超过325,000名用户。并且它的二次开发功能很强大,能够开发出弧焊离线编程系统。开发出的离线编程系统将具有较强的建模能力,从而具有较强的获取工件和焊缝信息的能力,最大程度完成自动编程任务。这样的弧焊离线编程系统很容易被中小企业接受。
本文应用COM技术的编程方法,以SolidWorks的API二次开发接口和VC++ 6.0、ATL作为开发工具,在SolidWorks平台进行弧焊离线编程系统的开发。
SolidWorks API提供了大量的COM对象用于二次开发[2],这些COM对象涵盖了全部的SolidWorks的数据模型,通过对SolidWorks的COM对象的调用,用户可以在自己开发的系统中实现与SolidWorks相同的功能。图1为主要的SolidWorks API对象模型。
图3-7 SolidWorks API对象模型[2]
2 机器人弧焊离线编程系统的对象建模
对象模型表示静态的、结构化的系统“数据”性质。它是对模拟客观世界实体的对象以及对象彼此间的关系的映射,描述了系统的静态模型。类-&-对象间的关系可以概括为归纳关系、组合关系及关联关系。
本文给出了三层的机器人工作单元中主要的数据结构:工作单元类,描述机器人等客观对象的组合以及这些对象间的各种联系和相互作用;设备类和关节类。
为了在图形环境中可视地表征焊枪的运动过程,定义了路径对象,路径对象中有多个标签点对象,一个路径对象与一个部件对象之间存在受限关联。根据以上分析,建立了离线编程与仿真系统的对象模型,如图2所示。
图2 系统对象模型
3 系统结构
从功能上讲,机器人弧焊离线编程系统较一般的离线编程系统,增加了弧焊方面的功能。所以从功能上既包含了一般离线编程系统的功能,同时也突出了对弧焊的支持。本文对各功能模块功能都做了改进。
机器人执行级弧焊离线编程系统的总体结构如图3所示。
图3 功能模块划分
下面对各模块功能进行概括性介绍。
1)设备建模
该模块用于定义机器人、焊接工件、变位机等周边设备:将SolidWorks创建的装配体定义为各种设备,定义设备的关节运动类型、定义设备工具参数、设定设备的运动学参数等。创建机器人设备库、变位机等周边设备库。
2)工作单元布局
系统应提供建立多设备组成的工作单元的能力,即工作单元布局功能。在该模块中提供了调用已有设备、定义设备间位姿关系、组建协调运动设备的功能。创建工作单元库。图4给出了一个搭建的工作单元示例。
图4 工作单元仿真示例图
3)运动仿真
该模块主要提供以下功能:各种设备的关节运动、回到零位运动;单机器人设备和协调运动设备的目标点运动、圆弧运动、沿路径移动;路径运动运动方式和仿真步长设定等。
4)路径
路径功能是离线编程的一大特点,使得机器人工具的运动过程能可视的记录下来,以便于用户的编辑。对于焊接任务,本文实现了利用路径记录现场信息的功能,包括各路径点处机器人辅助轴关节角值、机器人基坐标意义下的TCP位姿,焊接参数等。
5)编程
本文根据已有编程语言结合焊接应用,提供了一种弧焊离线编程语言(OLPWL),用户可利用此语言进行离线编程工作。该语言的特点接近实际弧焊机器人的编程语言,即方便熟悉机器人操作的编程人员使用,又可对编程人员进行训练。该模块为集成编辑、调试和仿真功能于一体的离线编程器。
6)数据转换
一般离线编程系统提供了同实际机器人程序进行转换的模块,即程序转换模块。但目前由于不同机器人厂商采用了不同的编程语言,最大的困难在于机器人运动数据的转换,即运动路径点数据转换为实际机器人程序使用的路径点(或关节角)数据,由于不同机器人厂商采用不同的描述方法和存储格式,可能无法破译这部分信息。IGRIP软件也只提供了同IGM和MotoMan机器人的直接程序转换。本文提出了一种将运动路径点数据转换为各机器人编程人员都易理解的数据格式,实际机器人程序根据此数据单独生成的方法。本文规定了通用的路径数据描述方法。
7)数据上载
离线编程系统也应能根据示教得到的机器人程序转变成仿真工作单元中的路径,同样基于上述原因,本文提出了数据上载功能,将本文规定的通用的路径数据上载到离线编程系统中,生成路径。
8)状态监测
该模块包括了关节超限检查、关节运动速度和加速度超限检查、碰撞检测。以往的离线编程系统通过预检查的方法对关节角是否超限进行检测,这种方法用户不能形成对机器人整条路径运动关节角变化过程的直观感觉。对关节超限处路径点位姿调整没有帮助。本文采取了在动态运动过程中,监测机器人状态变化的方法。给出提示信息,不终止机器人的运动过程。
9)标定
为了保证图形工作单元模型与实际工作单元模型的一致性,需要进行实际工作单元的标定工作。
10)辅助模块
针对弧焊的特殊应用,本文开发了弧焊参数数据库管理功能。
4 结论
本文开发了运行在SolidWorks平台上的廉价且专业的弧焊离线编程系统。该系统具有较强的建模能力,解决了以往系统因建模能力不足,只能对部分简单工件提取工件几何信息的问题。采用面向对象技术,建立了机器人弧焊离线编程与仿真系统的对象模型,开发了功能较全的机器人弧焊离线编程与仿真系统。