引 言目前国外有许多的既可用于机器人仿真分析又可用于机器人离线编程的商品化软件<1~ 3> ,但是价格都比较昂贵 ,且由于其全英文操作环境而导致使用不便。在国内 ,自 2 0世纪 80年代末以来 ,清华大学、华中理工大学、华南理工大学、沈阳自动化所等多家单位做了大量的工作 ,但多数是针对装配、搬运等用途的机器人 ,尚未见有针对弧焊情况的研究报道。1 开发方式和总体结构根据开发平台的不同 ,开发方式可分为两种 :一是在一些通用CAD软件平台基础之上 ,进行二次开发 ;二是进行自主开发。国外系统大多是采用自主开发的方式 ,但是需要投入较大的人力物力。随着计算机软硬件技术的提高 ,在高性能PC机上的现有CAD软件基础上对其进行二次开发 ,已经能够满足离线编程和仿真的要求 ,所以本文采用了对AutoCAD2 0 0 0进行二次开发的方式。AutoCAD2 0 0 0是Autodesk公司推出的AutoCAD系列软件的最新版本 ,其图形功能得到很大的提高 ,可以满足离线编程所需的图形效果 ,如动态的消隐、着色<4 > 。而且 ,自AutoCAD14版以来 ,Autodesk公司提供了一种新的二次开发方式———ObjectARX ,它是一个面向对象的C + +应用程序开发接口 ,使开发者能够使用、定制和扩展AutoCAD<5,6 > 。一个ObjectARX应用程序是一个DLL(动态连接库 ) ,共享AutoCAD的地址空间 ,对AutoCAD进行直接函数调用避免了费时的IPC。若需经常与AutoCAD通信 ,ARX环境比ADS与Autolisp快。ObjectARX是一个面向对象的二次开发工具 ,我们可以通过面向对象的技术 (封装、继承、多态等 )对其类体系进行扩展 ,并且可以在运行时通过协议扩展向已有的类中添加新函数。通过它可以直接获取使用AutoCAD数据库结构、图形系统以及定义内部命令定义。按照功能不同 ,本机器人离线编程软件都被划分为几个功能模块 ,其中典型的模块有建模模块 (包括几何建模和运动学建模 )、路径模块、离线编程模块和程序转换模块等。图 1为本文开发的机器人弧焊离线编程系统的总体结构。图 1 总体结构下面将介绍 4个典型的功能模块。2 建模模块该模块主要用于设备创建与工作单元布局 ,提供了以下功能 :将AutoCAD中实体创建为系统可识别的部件 ,将部件组建为设备 ,定义设备的关节运动类型 ,定义设备工具参数 ,设定设备的运动学参数以及部件与设备编辑操作等。图 2为已经建立好的机器人工作单元模型。不同系统的对象模型不同 ,但是应满足离线编程系统基本的设计准则 ,即系统应尽可能地避免对工作单元具体任务的描述和设计 ,而应对其对象行为进行高度抽象以提供一个高层次的设计方案 ,在实现具体应用时只要创建相应的类对象并通过对象的行为操作来完成具体系统的具体任务<7> 。对象建模非常关键 ,必须根据机器人自身的特点进行高度抽象。图 2 包含路径信息的机器人工作单元根据以上分析 ,本文建立了离线编程与仿真系统的对象模型 ,见图 3。图 3 系统的对象模型图形除了具有几何性质之外 ,还必须具有运动学属性 ,以便对其进行运动学仿真 ,本文采用D -H参数法建立机器人的运动学模型 ,本系统采用的机器人与变位机各连杆坐标系分布见图 4 ,相应的参数列于表 1和表2。图 4 机器人与变位机连杆坐标系分布示意图表 1 机器人的连杆参数Linki θi(°)α1(°)αi/mmdi/mm1-90 +θ190 2 0 0 3 842 90 +θ2 0 60 0 03 θ3 -90° 10 0 04θ490° 0 -75 05 -90 +θ5-90° 0 0690 +θ60° 0 0表 2 变位机的连杆参数Linkiθi(°)α1(°)αi/mmdi/mm190 +θ190 0 02 θ2 0 0 1633 路径模块路径功能是离线编程的一大特点 ,使得机器人工具的运动过程能可视的记录下来 ,以便于用户的编辑 ,也可保存相应的焊接参数。用户可以利用提供的命令对单个标签点或整条路径进行修改 ,从而改变机器人工具的运动过程或焊接参数 ,这要比示教编程方便得多。系统提供了多种创建标签点的方法 ,如由几何图形的点与线创建、由部件坐标系创建、由工具坐标系创建以及由焊缝特征数据创建等。同时 ,为了便于用户修改标签点的位姿 ,系统提供了多种标签点位姿修改功能。为了实现标签点图形的变换 ,需要根据用户输入的相对某个坐标系的变换矩阵 (相对方式下 )或位姿矩阵 (绝对方式下 ) ,求解出标签点相对于世界坐标系 (WCS)的变换矩阵。4 离线编程模块系统提供了一种执行级离线编程语言 (MOLPL) ,用户可利用此语言进行离线编程工作。并且开发了一个集编辑、调试和仿真功能于一体的离线编程器 ,其与一般的编程器区别之处在于 :该编程器与图形环境可动态交互 ,每编一条命令便可直接反映到图形环境中。利用MOPL中的命令书写程序 ,便可实现机器人工作单元的离线编程。目前 ,MOPL主要有如下命令 :(1)ProgramStart,编程开始 ;(2 )$Device ,指定当前设备 ;(3)$Motype,指定当前运动类型 ;(4)$Speed ,指定当前运动速度 ;(5 )MoveTo ,工具移动到某一标签点 ;(6 )MoveHome ,设备移动到零位 ;(7)MoveJoint,移动设备的某个关节 ;(8)MoveAlong ,工具沿某条路径移动 ;(9)MoveVia,工具经中间标签点移到目标标签点 ;(10 )MoveRelative,工具以笛卡儿方式相对移动 ;(11)OrientTag ,变位机变位标签点 ;(12 ) / / ,注释。图 5 离线编程器的界面5 程序转换模块通过离线编程器编制的MOLP程序只能在离线编程系统内进行仿真 ,不能直接下载给机器人。而且各种机器人接受的机器人语言各不相同 ,需要将MOLP程序转换为特定机器人可接受的程序 ,因此开发了一个机器人程序转换器。开发的程序转换器结构见图 6。图 6 程序转换器的结构6 结 论提出了一种新的机器人弧焊离线编程与仿真系统二次开发方式 ,即在高性能PC机和AutoCAD2 0 0 0平台上 ,运用其最新的开发工具———ObjectARX进行二次开发。采用面向对象技术 ,建立了机器人弧焊离线编程与仿真系统的对象模型 ,开发了一个包括建模、运动仿真、路径、编程、图形示教、程序转换、程序上载与碰撞检测等功能的机器人弧焊离线编程与仿真系统 ,该系统已基本达到实用化水平。基于ObjectARX的机器人弧焊离线编程系统$哈尔滨工业大学现代焊接生产技术国家重点实验室!(150001)@何广忠
$哈尔滨工业大学现代焊接生产技术国家重点实验室!(150001)@吴林
$哈尔滨工业大学现代焊接生产技术国家重点实验室!(150001)@田劲松机器人;;
离线编程;;弧焊介绍了一种新的机器人弧焊离线编程系统开发方法 ,即在高性能PC机和AutoCAD2 0 0 0平台上 ,运用其最新的开发工具———ObjectARX进行二次开发 ,并利用此方法成功地开发出了一个通用的机器人弧焊离线编程系统。按照功能不同 ,此系统分为 10个功能模块 ,其中典型的模块有建模模块 (包括几何建模和运动学建模 )、离线编程模块、程序转换模块等1 JohnJ .Craig.Arcweldingsimulationsimplifiesprogramming. RoboticsWorld.1987,(3):24~25
2 JohnOwens.Ta skplanninginrobotsimulation.IndustrialRobot.1996,23(5):21~24
3 SZeghloul. SMAR:Arobotmodelingandsimulationsystem.Robotica,1997,15(1):63~73
4 余承飞.AutoCAD2000二次开发技术(ObjectARX).北京:人民邮电出版社,1999:1~2
5 孙江红.AutoCADObjectARX开发工具及其应用.北京:清华大学出版社,1999:2~7
6 江思敏.AutoCAD2000
开发工具———ObjectARX开发工具与应用实例.北京:人民邮电出版社,1999:1~3,8~9
7 赵东波,熊有伦.面向对象机器人离线编程系统的设计准则.
机器人,1997,19(6):401~406鼻霸硕俣?;(5 )MoveTo ,工具移动到某一标签点 ;(6 )MoveHome ,设备移动到零位 ;(7)MoveJoint,移动设备的某个关节 ;(8)MoveAlong ,工具沿某条路径移动 ;(9)MoveVia,工具经中间标签点移到目标标签点 ;(10 )MoveRelative,工具以笛卡儿方式相对移动 ;(11)OrientTag ,变位机变位标签点 ;(12 ) / / ,注释。图 5 离线编程器的界面5 程序转换模块通过离线编程器编制的MOLP程序只能在离线编程系统内进行仿真 ,不能直接下载给机器人。而且各种机器人接受的机器人语言各不相同 ,需要将MOLP程序转换为特定机器人可接受的程序 ,因此开发了一个机器人程序转换器。开发的程序转换器结构见图 6。图 6 程序转换器的结构6 结 论提出了一种新的机器人弧焊离线编程与仿真系统二次开发方式 ,即在高性能PC机和AutoCAD2 0 0 0平台上 ,运用其最新的开发工具———Obje