- 广州子锐机器人技术有限公司
- 服务热线:020-82000787(8:30-17:30)
- 联系手机:15889988091(非工作时间)
- 座机:020-82000787
- 传真:020-32887675
- 邮箱:gz@zr-robot.com
- 广州市番禺区东环街金山谷创意八街1号109
- 当前位置:首页 > 机器人资讯 > 基于Solidworks的工业机器人离线编程系统
基于Solidworks的工业机器人离线编程系统
基于Solidworks的工业机器人离线编程系统
0引言
工业自动化水平的高低在很大程度上受工业机器人发展水平的制约。随着现今工业领域产品的小批量多样化以及专业化趋势,子锐机器人,使得工业机器人应用范围持续扩大的同时工作复杂程度也不断增加。工业机器人是一个可编程的机械装置,其功能的灵活性和智能性很大程度取决于机器人的编程能力。
1机器人离线编程发展现状
目前,机器人编程主要有在线示教编程和离线编程两种方式,在线示教编程为绝大多数工业机器人所采用。在线示教编程要求机器人执行新的作业任务时需停机示教,造成现场生产线停工的同时还可能使编程人员身处危险的现场坏境中。离线编程方式可以实现在远离工作现场的情况下完成机器人编程作业,实现运动仿真等一系列功能,大幅提高编程工作效率。国内外研究人员在离线编程方面做了大量研究。其中Kuka,ABB,FANUC等知名专业机器人生产厂家都有自己的一套成熟的仿真软件,可离线编程。奇瑞公司机器人项目组也在离线编程方面取得一定进展,可对机器人生产过程仿真。陈焕明等完成了基于VC++的弧焊机器人离线编程系统的设计,可读出任务曲线作业点并生成程序。J.Swider等完成了基于DXF文件的机器人离线编程系统,实现了工业机器人对二维形的离线编程仿真功能州。绝大多数的离线编程模式都不能将可视化三维仿真环境与精确地编程方式相结合。随着三维绘软件功能日趋强大,完全可以胜任创建工业机器人及其工作环境模型的任务,在三维软件环境下完成机器人的离线编程仿真将是实现可视化离线编程简捷有效的途径。
本文在Solidworks环境下对工业机器人及其工作环境进行三维实体建模,利用Solidworks提供的VC++二次开发向导Swizard.SWX,完成机器人离线编程系统的开发。
2离线编程系统的工作模式及组成
完成机器人离线编程作业包括三个方面的内容:
1)三维建模。在Solidworks环境下建立机器人及其工作环境三维仿真模型。
2)任务点选取。根据实际任务轨迹要求选取机器人任务点(可由鼠标拖动机器人J6轴到达任务点)。
3)调用离线编程系统。由莱单栏调用此系统,通过位姿计算模块及逆运动学计算模块完成任务点的位姿计算及各轴输入角度的计算。
4)生成作业程序及离线仿真。
1离线编程系统的工作流程及组成
3工业机器人及其工作环境建模
FUNAC机器人在国内工业自动化领域有着广泛的应用,本文以自动化生产线中物料搬运常用的FANUCM-900iA/350型机器人为研究对象,建立机器人及其工作环境联线控制模型,以此为基础进行离线编程系统的设计研发。
3.1机器人三维模型的绘制及装配
通过对机器人结构及技术参数的研究,绘制机器人零部件模型,按照既定装配关系组成装配体。三维建模时,为保证离线编程系统的运行效率,在保留机器人所有关键特征及尺寸的前提下,尽量简化模型结构。如2所示:将J1轴J2轴复杂的曲面以简单的平面模型代替。将五轴回转机构简化成C字形结构等。2中前者为简化前的模型,子锐机器人维修,后者为简化后的模型。
2机器人模型简化前后对比
完成机器人各零件的装配后,对各相对运动关节正确定义运动角属性,即确定配合中各转动副的转动范围。保证各关节在允许的范围内可自由运动。
3.2机器人与工作坏境关系的建立
离线编程结果精度的高低,很大程度上取决于机器人及其工作环境的正确建模及精确的工作位置关系。本系统中,首先确认机器人与工作环境的位置关系,即机器人底座中心(基座坐标系原点O0)与工作中心(板料中心)的距离关系。其次规划机器人的工作任务,确定机器人在两工位间经过的关键位置,即准确确定机器人的任务点。建立的机器人工作环境及工作状态如3所示。机器人将板料从右侧工作台移动到左侧,中所示位置为两工作台之间一任务点。与初始位置相比第六轴关节坐标系O6相对于基座坐标系O0绕X0轴旋转180度,发那科机器人维修,其余轴相对于基座坐标系O0均为平行移动。
3机器人离线编程系统工作状态
4Solidworks环境下的离线编程模块
Solidworks具有超强建模功能和方便的二次开发接口,通过OLE/COM技术提供强大的二次开发接口API,这些接口包含数百个函数,为二次开发提供强有力的支持。我们可以用VB,VisualC++和其他支持OLE的开发语言接口调用其API函数情1。本文利用VisualC++通过对对象属性的设置和方法的调用对Solidworks进行二次开发,将开发的模块以DLL插件文件的形式实现与Solidworks无缝衔接。
4.1离线编程系统对话框的建立及功能
在VC++中新建工作空间,选择工程向导SolidWorksAdd-inAppwizard,新建离线仿真工程。离线编程系统以插件的形式在菜单栏中被调用,点击开始计算子菜单,即可显示所设计的离线编程系统对话框。如4所示。
4离线编程系统的位置与调用
本离线编程对话框可完成位姿计算、逆运动学计算以及对作业生成模块、离线仿真模块的调用。
4.2机器人任务点位姿计算模块
位姿计算模块实现的关键在于对solidworks二次开发函数GetSelectionPoint及函数IEnumEagesOriented的调用。以获得点的位置坐标为例,通过调用函数GetSelectionPoint,得到当前所选目标点在模型空间坐标系中的三维坐标值。值得注意的是在定义对话框的时侯一定要声明为非模式对话框,通过调用Cdialog::Create函数来启动对话框。以保证不关闭主程序的情况下,对目标点的连续选取。在定义pSelectMgr指针及retvalt31双精度数组的基础上,通过调用Selectpoint函数获得任务,并将任务点的坐标以数组的形式输出。部分程序代码如下:
利用string.Format(_T(%.4f"),retval[i])i函数将上述得到的字符串数组以单个元素的形式输出,同时利UpdateData(FALSE)数将上述结果同步输出到对话框。即可完成目标点位置的读取。
4.3机器人逆运动学模块
首先对机器人进行正运动学分析,建立如5所示的FANUCM-900i-A/350型机器人的DH坐标系州。根据机器人结构参数(如表1所示),求出机器人各坐标系间的齐次变换矩阵,得到机器人正运动学方程。确定目标点位姿坐标后,得到12个常系数非线性方程。对于正交旋转矩阵P及向量U,v,利用变换矩阵中旋转子矩阵的正交特型及矢量运算特性,有Pu·n=u·v,及Pu·v=u·P-1v,通过矢量运算,得到含有不同未知变量的4个常系数非线性方程,最终得到机器人逆运算的封闭解。按此方法生成机器人逆运算模块。
5机器人连杆mH坐标
4.4运动仿真模块
Solidworks提供的运动仿真模块完全可胜任机器人的运动仿真任务。以机器人逆运算模块得到的各关节转角角度做为输入值,点击开始仿真按钮,直接进入Solidworks自带的Cosmosmotion运动仿真模块,根据所建机器人运行环境实际情况设置约束、速度、力等参数,实现运动仿真。
4.5作业生成模块