注册 登录  
 加关注
   显示下一条  |  关闭
温馨提示!由于新浪微博认证机制调整,您的新浪微博帐号绑定已过期,请重新绑定!立即重新绑定新浪微博》  |  关闭

易拉罐的博客

心静自然凉

 
 
 

日志

 
 

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

2011-02-11 11:47:23|  分类: 工业机器人 |  标签: |举报 |字号 订阅

  下载LOFTER 我的照片书  |
        物体在空间中存在六种可能的运动方向,分别是沿着x、y、z坐标轴的移动方向,和绕着x、y、z坐标轴的转动方向。在机械原理中,把这样的六个运动方向称为物体在空间运动的自由度。如果需要设计一种机器人操作臂(来抓取物体),那么机械臂末端的夹持器或焊枪等工具通常也需要能够实现六种方向的空间运动。这种工业机器人往往由六根运动杆件通过六个转动关节构成,每个关节由一个电机驱动,我们称为六自由度全转动副机器人,简称6R机器人。

    当已知机器人末端执行器的位置姿态时,需要求解机器人各个关节的转动角度,这称为6R机器人的位置反解或位置逆解问题。在机器人学教科书上,通常只介绍末尾三个关节的轴线相交于同一点的6R机器人位置反解技术;很少介绍末尾三关节轴线不交于一点的一般6R机器人的位置反解方法。在1970年代,一般6R机器人的位置反解问题(等价地,即空间7R闭环机构位置分析问题)被国际机构学研究人员喻为“机构学的珠穆朗玛峰问题”。

    前两个月发表了一篇关于工业机器人仿真软件设计与实现的论文,简要介绍了读博期间所编制的计算机软件。当时编制了两套机器人仿真软件,一套采用VC,完全自主开发,拥有软件著作权;另一套基于UG软件,采用Open C API技术二次开发,与企业CAD平台无缝集成。

    论文中所涉及的机器人是日本公司的一款MOTOMAN机器人。机器人末尾三个关节的轴线没有交于同一点,而是存在着30毫米的偏距。别小看这3个厘米的偏距,这使得在编制计算机程序时花费了很大精力来研究6R机器人位置反解方法。当然,这篇小论文中没有涉及上述的那些复杂的机构分析问题,这些复杂问题还是留待以后的文章讨论吧。虽然这篇机器人仿真的论文可能技术多于科学、工程强于学术,不过自己对这篇“技术报告”还是比较满意的。因为目前为止,尚未发现有采用相似技术路线在UG软件中实现机器人运动仿真的论文或报告。

    有一点想说明的问题,日本公司的这款机器人为什么要设计成末尾三个关节的轴线不相交于一点呢?一种说法是,这样的机械结构更利于机器人焊接作业。我想可能还有第二个原因,这样的机械结构很难让别人仿造,因为这种机器人的位置反解技术不是普通工程师能够完全胜任的,更不是那些山寨公司能够轻易破解的。

    这篇论文发表后,图片转成黑白色了,有些看不清晰。所以博文下面转发带彩色图片的论文。

-----------------


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

 
摘要:为了在一般CAD软件中实现符合企业需求的工业机器人运动仿真,通过UG软件二次开发技术和C++程序,构造了与UG无缝集成的工业机器人作业仿真系统。设计了包含人机接口层、作业管理层、UG支撑层的仿真软件体系结构。针对UG运动模块难以进行二次开发的问题,通过对UG装配模块的二次开发来实现机器人运动仿真。机器人运动过程碰撞检测功能则由UG间隙检查模块的二次开发实现。仿真软件成功地应用于汽车门框焊接机器人的作业仿真及布局设计。
关键词:机械臂,虚拟现实,离线编程
Keywords: robotic manipulators, virtual reality, off-line programming
中图分类号:TP242,TP391
 
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所示。


转 基于UG二次开发的工业机器人作业仿真系统设计 - 易拉罐bb - 易拉罐的博客

 

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


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

转 基于UG二次开发的工业机器人作业仿真系统设计 - 易拉罐bb - 易拉罐的博客

 图2  仿真系统的体系结构

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

转 基于UG二次开发的工业机器人作业仿真系统设计 - 易拉罐bb - 易拉罐的博客
        与运动学正问题对应的是机器人关节坐标控制方式,即操作人员直接指定各关节的移动长度或转动角度,从而带动末端执行器运动。与运动学逆问题对应的是机器人直角坐标控制方式,即操作人员指定末端执行器所期望的位置和姿态,然后求解出各关节需要的移动长度或转动角度,从而带动末端执行器运动。
        以上是机器人作业仿真系统中作业管理层进行的机器人运动学求解。无论关节坐标控制还是直角坐标控制,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所示。

转 基于UG二次开发的工业机器人作业仿真系统设计 - 易拉罐bb - 易拉罐的博客

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

转 基于UG二次开发的工业机器人作业仿真系统设计 - 易拉罐bb - 易拉罐的博客

图5 碰撞检测流程
 
 

转 基于UG二次开发的工业机器人作业仿真系统设计 - 易拉罐bb - 易拉罐的博客

 

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

 http://www.sciencenet.cn/m/user_content.aspx?id=353034

  评论这张
 
阅读(740)| 评论(2)
推荐 转载

历史上的今天

在LOFTER的更多文章

评论

<#--最新日志,群博日志--> <#--推荐日志--> <#--引用记录--> <#--博主推荐--> <#--随机阅读--> <#--首页推荐--> <#--历史上的今天--> <#--被推荐日志--> <#--上一篇,下一篇--> <#-- 热度 --> <#-- 网易新闻广告 --> <#--右边模块结构--> <#--评论模块结构--> <#--引用模块结构--> <#--博主发起的投票-->
 
 
 
 
 
 
 
 
 
 
 
 
 
 

页脚

网易公司版权所有 ©1997-2017