陈卫华,李勇君
(中国民航飞行学院遂宁分院,四川遂宁 629000)
基于OpenGL航空工业机器人手臂运动学仿真
陈卫华,李勇君
(中国民航飞行学院遂宁分院,四川遂宁 629000)
以两种航空工业机器人 (SCARA/PUMA)为研究对象,将其三维模型转换为STL文件。通过分析该三维模型的STL文件,研究数据存放的规律。在VS 2003的MFC中加载OpenGL的图形编程库,读取并显示STL文件中的机器人模型。根据机器人建模知识,进行运动学仿真,实现驱动模型实时显示功能。该方法对机器人手臂运动学分析有一定的通用性,为航空产品加工、制造及维护提供参考。
三维模型;OpenGL;机器人手臂;运动学仿真
随着航空产品制造业自动化水平的不断提高,机器人作为一种趋势,逐步进入到航空产品生产、加工、制造及维护的各个领域。作为分析和研究工业机器人的重要环节,仿真技术提供了一系列重要的运动学数据来源。长期以来,结构设计者使用CAD和CAE软件进行仿真,这些软件不但对工作计算机的硬件要求较高,不方便嵌入式移植,而且操作者需要较长的熟悉时间。基于以上需求,本文作者分析了一种典型的三维CAD模型文件STL的数据格式;其后,利用OpenGL图形编程函数库,在VS 2003的MFC读取并显示两种航空工业机器人 (SCARA/PUMA)模型;最后,根据机器人建模的知识,利用旋量法驱动模型随着关节角实时显示,利用D-H法进行运动学的正反解,在软件中计算末端姿态,显示末端轨迹。
STL是业界公认的一种CAD模型与RP软件之间数据转换的文件格式。目前,几乎所有的三维CAD软件都提供向STL文件转换的功能,如soildworks、proe、ug等[1]。该格式使用一系列三角形小面片来拟合原CAD实体,即,将CAD表面离散成众多三角面片[2]。式。
二进制格式的STL文件结构如下:二进制STL文件用固定的字节数来给出三角面片的几何信息。文件起始的80个字节是文件头,用于存贮零件名;紧接着用4个字节的整数来描述模型的三角面片个数,后面逐个给出每个三角面片的几何信息。每个三角面片占用固定的50个字节,依次是3个4字节浮点数(角面片的法矢量)3个4字节浮点数 (1个顶点的坐标)3个4字节浮点数 (2个顶点的坐标)3个4字节浮点数 (3个顶点的坐标)个三角面片的最后2个字节用来描述三角面片的属性信息。一个完整二进制STL文件的大小为三角形面片数乘以50再加上84个字节,总共134个字节。
由以上对STL文件的数据格式进行分析,可知STL数据排列规则,便于格式化读取。由于从三维CAD实体转换STL文件之时就存在着巨大的数据冗余,因此在读入模型数据后,需要去除冗余顶点,减少画面显示载入和重绘时间,并建立三角面片之间的拓补关系[1,4]。
在opengl库中提供了三角面片的显示方法。优化后的模型数据显示,可利用如下程序:
文中选取4、6轴各一种典型结构 (SCARA/PUM A),如图1、2所示,分别按照KUKA的KR5 scara R350和ABB的IRB 120工业机器人模型进行分析。
图1 4轴 (KR5 scara R350)几何尺寸
图2 6轴 (IRB 120)几何尺寸
模型显示步骤如下:
(1)绘制或下载工业机器人的CAD模型,保证各自由度由至少一个零件构成;装配之,构建约束,使机器人处于复位状态,即各关节转角置零。
(2)将整个装配体转换成多个STL文件。三角片面的个数由转换时的精度选择决定。
(3)在MFC的基于对话框的平台上,编写解析STL模型数据类,基于OpenGL的显示类、机器人运动学类等。
文中在上述两个机器人的官方网站上下载CAD模型,另存为STL模型,在程序中加载,如图3、4所示。
图3 4轴 (KR5 scara R350)三维模型
图4 6轴 (IRB 120)三维模型
机器人手臂的运动学的模型建立方法一般有两种:D - H 方法[5]和旋量法[6]。
为充分利用各方法的优势,文中做运动学的分析时采用D-H法,而驱动三维模型运动时采用旋量法。
由于每个STL模型都是由n三角面片构成的,面片上的法向量也可以看成点,即每个三角面片包含4个点。当模型实体需要旋转时,可以看成n×4个点在旋转。同时,后端关节轴向量和轴上点也绕着前端的轴线旋转。在旋转时,每个STL模型绕各自的轴,以各自的转角旋转。
在拖动滑动条时,改变关节角度 θ1,θ2,...,θn的大小,驱动模型随之旋转,末端的姿态也同时计算并显示出来,如图5、6所示。
图5 4轴 (KR5 scara R350)正运动轨迹
图6 6轴 (IRB 120)正运动轨迹
文中以6轴机器人为例,参照文献 [7-8]中解法,得到出8组逆解的表达式。在定时器OnTimer中,规划下一步的姿态,以此姿态求机器人逆解,在8组解中选取最接近的一组。在此软件中,拖动滑动条,示教起始点P1并保存。再拖动滑动条,示教第二个位置,作为停止点P2。然后,机器人就沿着P1P2的方向以直线轨迹运动,运动过程如图7—9所示。
图7 6轴 (IRB 120)示教起始点
图8 6轴 (IRB 120)示教停止点
图9 6轴 (IRB 120)运动过程
基于VS 2003调用OpenGL图形库中的函数,通过分析3D模型STL文件,找到其中数据存放的规律。选取两种航空工业机器人模型 (SCARA/PUMA),将其3D模型转换为STL文件。在VS 2003的MFC中加载OpenGL的图形编程库,读取并显示STL文件中的机器人模型。根据机器人手臂的几何参数建立数学模型,对其进行参数化三维造型,进行运动学仿真,实现驱动模型实时显示。
[1]陈太喜,方亮,刘艳伟,等.基于OpenGL的STL数据模型建模方法[J].机床与液压,2009,37(3):155 -158.
[2]陈秀明.基于OpenGL和STL的CAD系统实现[J].青海科技,2008,15(1):78 -80.
[3]黄常标.分段沉淀/雕铣快速成型三维实体分段算法与刀具轨迹规划研究[D].泉州:华侨大学.2004.
[4]崔树标,张宜生,梁书云,等.STL面片中冗余顶点的快速滤除算法及其应用[J].中国机械工程,2001,12(2):173-175.
[5]付京逊.机器人学[M].北京:中国科学技术出版社1989.
[6]MURRAY Richard M,LI Zexiang,SASTRY S Shankar.A Mathematical Introduction to Robotic Manipulation[M].1994.
[7]熊友伦,丁汉,刘恩沧.机器人学[M].武汉:华中科技大学出版社,1993.
[8]http://www.abb.com.cn/product/seitp327/9a97 f1c3face-59624825762a0007df19.aspx?productLanguage=zh&country=CN.机器人[OL].
Kinematics Simulation of Aviation Industrial Robot Arm Based on OpenGL
CHENWeihua,LIYongjun
(Suining Sub-College,Civil Aviation Flight University of China,Suining Sichuan 629000,China)
By taking the two kinds of aviation indutrrial robots SCARA/PUMA as a study object,its three dimensional(3D)modelwas converted into the STL file.By analyzing the STL file of 3D model,the law of data storage was studied.In the VS 2003 MFC,through loading the OpenGL graphical programming library,the robotmodel in the STL filewas read and displayed.According to the robotmodeling knowledge,the kinematics simulation was carried out,which realized the drivermodel with real- time display function.Themethod is certain of universal to kinematics analysis of the robot arm,which provides references formachining,manufacturing and maintenance of aviation products.
Three-dimensionalmodel;OpenGL;Robot arm;Kinematics simulation
TP242.2
A
1001-3881- (2015)21-109-4
10.3969/j.issn.1001 -3881.2015.21.026
2014-08-23
陈卫华 (1985—),男,硕士,工程师,从事活塞式发动机维护工作。E-mail:984642603@qq.com。