工控网首页
>

应用设计

>

基于UG二次开发的工业机器人作业仿真系统设计

基于UG二次开发的工业机器人作业仿真系统设计

2013/11/5 10:26:23
1. 引言
工业机器人在现代制造系统中应用广泛。机器人作业仿真系统软件,通过在CAD环境中进行机器人虚拟样机的布局设计与操作仿真,能够有效地辅助设计人员进行机器人虚拟示教、机器人工作站布局、机器人工作姿态优化,在物理工作站制造之前验证设计的合理性,在虚拟环境中生成控制机器人作业的数控加工代码。
目前不少学者对工业机器人仿真进行了研究。文献[1]基于面向对象技术研究了示教再现型弧焊机器人离线编程系统,介绍了系统总体设计方法和子模块功能结构。文献[2]提出了机器人运动过程的协调算法,采用插补计算的方法解决了仿真系统中机器人末端执行器的直线运动和圆弧运动。文献[3]针对PUMA560机器人,开发了一个面向对象的离线编程和图形仿真系统。文献[4]提出了一种交互式三维可视化离线编程和动态仿真系统,并研究了焊接工艺中的焊道规划技术。文献[5]研究了离线编程系统的体系结构,介绍了工业机器人仿真软件的功能模块。文献[6]论述了工业机器人仿真领域中的一种前沿技术即虚拟样机技术,通过数字化的手段为产品设计制造提供仿真分析。文献[7]研究了基于Matlab的焊接机器人运动学分析及仿真,运用DH方法建立了焊接机器人运动学方程,得到了机器人在不同坐标空间的各种运动参数曲线和数据。为了适应企业的设计环境,在一般CAD软件中实现符合企业需求的工业机器人运动仿真,本文通过UG软件的Open C API二次开发技术,构造了与UG软件无缝集成的工业机器人作业仿真系统。
 
2. 仿真系统体系结构
基于UG二次开发的工业机器人作业仿真系统采用Visual C++和UG Open C API开发。系统与UG软件无缝集成,UG软件作为系统的底层支撑平台。这款软件成功地应用于汽车门框焊接机器人的作业仿真及布局设计。系统界面如图1所示。

1  基于UG二次开发的工业机器人作业仿真系统
 
软件系统的体系结构分为3个层次,15个子模块。如图2所示。人机接口层为操作人员提供了控制机器人虚拟样机的接口;作业管理层是软件系统的核心,用来实现人机接口层的操作命令;UG支撑层负责系统的图形绘制,以及机器人运动和碰撞检测在UG软件中的实现。仿真系统有4大主要功能,即机器人运动求解与仿真、机器人运动过程碰撞检测、机器人作业过程重用、机器人布局优化。本文着重研究机器人运动仿真及碰撞检测的关键技术。


2  仿真系统的体系结构
 
3. 机器人运动学求解及实现
工业机器人由若干杆件通过关节运动副装配组成,如图3所示。考虑到机器人基座需要由一个杆件表示,因此一个N自由度的机器人由N个关节连接了N+1个杆件。工业机器人是开链拓扑结构的多体系统,可以用拉格朗日多体运动学[8]描述机器人的运动行为。通常机器人学DH法则[9]用4×4的齐次矩阵来表示杆件在参考坐标系中的位置和姿态。


与运动学正问题对应的是机器人关节坐标控制方式,即操作人员直接指定各关节的移动长度或转动角度,从而带动末端执行器运动。与运动学逆问题对应的是机器人直角坐标控制方式,即操作人员指定末端执行器所期望的位置和姿态,然后求解出各关节需要的移动长度或转动角度,从而带动末端执行器运动。
以上是机器人作业仿真系统中作业管理层进行的机器人运动学求解。无论关节坐标控制还是直角坐标控制,UG支撑层都是通过关节运动来带动机器人末端执行器运动的。在仿真系统开发实践中,发现UG运动模块难以进行二次开发,因此本文采用对UG装配模块的二次开发来实现机器人运动仿真,有修改装配约束和装配重定位两种技术方案。
采用修改装配约束的方案需要事先建立合适的机器人装配约束。如转动关节应采用面面角度约束,移动副应采用面面距离约束。关键代码如下:
//由机器人装配模型的实例获取原型
tRobotPart = UF_ASSEM_ask_prototype_of_occ (tRobot);
//设置当前机器人装配模型为工作部件,并保存原始工作部件
UF_ASSEM_set_work_part_quietly (tRobotPart, &tOldWorkPart);
//创建装配模型中转动关节角度约束的表达式
sprintf (newExp, "%s=%lf", Joint.lh_str, Joint.dAngle);
//修改装配约束
UF_MODL_edit_exp (newExp);
//更新模型,这样机器人运动副就发生了转动
UF_MODL_update ( );
//恢复原始工作部件为当前工作部件
UF_ASSEM_set_work_part_quietly (tOldWorkPart, &tRobotPart);
采用装配重定位的方案不需要建立装配约束,但需要指定杆件局部坐标系原点和姿态矩阵的前6个元素。关键代码如下:
// Joint.tIns为杆件实例;new_origin是double[3]数组,为局部坐标系原点;new_csys_matrix是double[6]数组,为局部坐标系x轴和y轴的姿态
UF_ASSEM_reposition_instance (Joint.tIns, new_origin, new_csys_matrix);
仿真系统中机器人运动过程如图4所示。

        图两台六自由度焊接机器人协同运动

 
4. 机器人运动过程碰撞检测及实现
碰撞检测可以防止机器人运动过程中与工件、夹具、机架等发生干涉。由人机接口层中的碰撞检测开关,作业管理层中的碰撞检测子模块,和UG支撑层中的间隙检查功能构成。机器人运动过程中的碰撞检测流程如图5所示。UG支撑层中实现间隙检查的关键代码为:
//进行间隙分析,datasetWorkpart为分析结果数据集合
UF_CLEAR_do_clearance_analysis(datasetWorkpart);
//获得间隙分析结果,其中summary.n_all_interf中存储了干涉数目
UF_CLEAR_ask_results(datasetWorkpart,&summary);
仿真系统中机器人碰撞检测如图6所示。


 

碰撞检测流程


 

机器人碰撞检测
 
5. 结论
本文采用UG软件的Open C API二次开发技术,构造了与UG无缝集成的工业机器人作业仿真系统。设计了包含人机接口层、作业管理层、UG支撑层的机器人作业仿真软件体系结构。针对UG运动模块难以进行二次开发的问题,本文通过对UG装配模块的二次开发来实现机器人运动仿真。机器人运动过程碰撞检测功能则由UG间隙检查模块的二次开发实现。仿真软件成功地应用于汽车门框焊接机器人的作业仿真及布局设计。
投诉建议

提交

查看更多评论
其他资讯

查看更多

自动化机床的故障排除技术浅析

安川焊接机器人编程

ABB机器人控制软件RobotWare应用手册SafeMove(英文)

ABB IRB7600 机器人维护信息

ABB IRC5P机器人培训教材