APP下载

基于OpenGL的五自由度机械臂的运动学仿真

2015-02-20宋西平李国琴罗陆锋

机械设计与制造工程 2015年12期

宋西平,李国琴,罗陆锋

(天津职业技术师范大学机械工程学院,天津 300222)



基于OpenGL的五自由度机械臂的运动学仿真

宋西平,李国琴,罗陆锋

(天津职业技术师范大学机械工程学院,天津300222)

摘要:利用OpenGL构建了五自由度机械臂的运动仿真环境,详细阐述了从模型构建、坐标系建立到运动学方程推导的过程。利用MATLAB机器人工具箱实验验证了所推导的机械臂运动学方程以及在仿真环境下机械臂模型的运动,对研究机器人在虚拟环境下的运动具有一定的借鉴意义。

关键词:OpenGL平台;五自由度机械臂;运动学仿真;D-H理论

随着机器人技术的不断发展,该技术已应用到医疗、工业、农业、军事等诸多领域[1-4],并出现了多种类型的机器人,如仿人机器人[5]、爬行机器人[6]、飞行机器人[7]、水下机器人[8]等。由于机器人结构复杂度高、试制样机成本昂贵、实验条件受限等问题会对实验研究的开展带来一定难度,因此研究者针对机器人开展了不同平台下(如OpenGL、MATLAB机器人工具箱、LabVIEW、ADAMS等[9-14])不同性能的仿真实验,为机器人的研究带来了便利。

由于OpenGL具有较好的可视化功能,能够为仿真及场景可视化提供较好的环境,本文通过对一个五自由度机械臂模型正向运动学方程的建立,详细阐述了在OpengGL平台下虚拟机械臂的构建过程、五自由度机械臂坐标系建立过程以及运动学方程推导的过程,并对其每个环节中的关键点做了介绍。利用MATLAB机器人工具箱验证了所构建模型的运动关系,为OpenGL平台下进行机器人相关技术的研究提供一定的参考。

1OpenGL环境下机械臂模型的创建

OpenGL是美国SGI 公司开发的图形程序接口,能够绘制三维图形,其独立于硬件设备,是一个跨编程语言、跨平台的、开放的图形程序接口[9]。OpenGL图形程序接口提供了创建光源、材质、纹理映射、坐标系变换、基本几何体的绘制函数(如glutSolidCube, glutSolidCylinder, glutSolidSphere

等)及顶点索引方式绘制模型的函数等,通过相互组合可以绘制出具有真实质感的虚拟环境下的模型(如图1所示)。

图1 OpenGL绘制的虚拟环境机器人模型

本文利用C++与OpenGL创建五自由度机械臂(如图2所示),从机械臂的运动关系可知,关节1的转动带动机械臂剩余杆件位置变化,关节2的转动带动机械臂杆件2,3,4,5的运动变化,因此从关节1到关节5是运动传递的过程。然而对于手部夹持器两个手指的开闭是区别于其他5个关节旋转运动的。基于上述运动关系,需要采用局部坐标系移动的方式构建机械臂的关节转动部分的模型,采用矩阵堆栈方式分别构建两个手指的模型[15]。

以绘制腕部结构为例具体介绍机械臂绘制方法:在OpenGL环境下绘制模型,可以先将全局坐标系绕X轴顺时针旋转90°变为图3所示的坐标系{0}的方向。定义旋转轴都是绕Z轴旋转的。在绘制腕部之前不需要绘制关节4转动关系的矩阵进行保存操作,因为前面绘制关节4的旋转矩阵影响杆件5的运动。当绘制完杆件4之后需要将绘制坐标原点移动到杆件4的末端,由于关节5要产生转动,所以在此处填写绕Z轴旋转代码。在绘制完连杆5后需要绘制两个手指。在这里需要采用矩阵压栈、弹出方式,保存每次绘制手指前的当前位置,让每个手指的绘制初始原点在同一位置。代码如下:

//绘制腕部

glRotatef((GLfloat)theta5*180/pi, 0.0,0.0,1.0);//绘制杆件5

……//绘制杆件5具体代码

//绘制手部

//绘制手指1

glPushMatrix();//保存当前变换

……//绘制手指1具体代码

glPopMatrix();//恢复保存的变换

//绘制手指2

glPushMatrix();//保存当前变换

……//绘制手指2具体代码

glPopMatrix();//恢复保存的变换

图2 五自由度机械臂结构图

通过上述过程绘制出OpenGL环境下的五自由度机械臂仿真模型。

2五自由度机械臂运动学方程

2.1 五自由度机械臂D-H参数表构建

由图2中的五自由度机械臂运动关系,按照D-H参数末端构建机械臂坐标系描述运动传递关系[16]。通过分析图2可知,关节1的转动轴与关节2的转动轴是垂直相交的,为了计算方便,将坐标系{0}建立在关节1轴线与关节2轴线的相交处(如图3所示)。由于采用的是末端构建坐标系的方式,所以需要在关节2处建立坐标系{1}。其余依次按末端方式构建,由于关节4轴线与关节5轴线垂直相交,因此可以建立坐标系3与4在同一原点(注意此处的关节角θ4旋转90°),最后建立手部坐标系。通过坐标系的建立可得出如表1所示的D-H参数表。

图3 五自由度机械臂连杆坐标系图

坐标系iαiliθidi190°0θ1020l2θ2030l3θ30490°0θ4+90°0h00θ5l4+l5

表中:l1=50cm,l2=40cm,l3=40cm,l4=40cm,l5=25cm。

2.2 五自由度机械臂运动学方程推导

将表1中的D-H参数带入相邻两杆末端建立的坐标系的传递变换方程[16]。求出每个坐标系的运动传递矩阵A1,A2,A3,A4(在下式变换中按θ4+90°推导),A5,然后依次相乘求出总变换方程。

(1)

(2)

(3)

(4)

(5)

式中:si代表sinθi;ci代表cosθi;cij代表cos(θi+θj);其余形式同理。

(6)

式中:nx,ny,nz表示手部坐标系{h}的x轴对于基坐标系{0}的x,y,z方向余弦;ox,oy,oz表示手部坐标系{h}的y轴对于基坐标系{0}的x,y,z方向余弦;ax,ay,az表示手部坐标系{h}的z轴对于基坐标系{0}的x,y,z方向余弦;px,py,pz表示手部坐标系{h}的原点在基坐标系{0}的对应轴坐标分量。

3MATLAB 机器人工具箱对于仿真结果的验证

根据D-H参数表,通过MATLAB机器人工具箱可以创建机器人的简化结构模型,利用MATLAB构建的机器人运动模型可以检验该机械臂推导的运动学方程的正确性,同时可以检验在OpenGL环境下构建的机器人模型虚拟运动位姿的正确性。利用MATLAB机器人工具箱结合表1创建的五自由度机械臂D-H参数表,可以构建机器人简易连杆模型(如图4所示),代码如下:

clear;%清除操作

L{1}=link([pi/2 0 0 0 0]);%第一个坐标系创建

L{2}=link([0 40 0 0 0]);%第二个坐标系创建

L{3}=link([0 40 0 0 0]);%第三个坐标系创建

L{4}=link([pi/2 0 0 0]);%第四个坐标系创建

%先不考虑θ4旋转角度

L{5}=link([0 0 0 65 0]);%手部坐标系创建

r=robot(L, ′五自由度机械臂′);%命名

drivebot(r);%显示模型

图4 MATLAB五自由度机械臂连杆图

图5 MATLAB五自由度机械臂位姿

图6 OpenGL五自由度机械臂位姿

4结束语

本文详细阐述了机械臂仿真模型构建和五自由度机械臂坐标系建立、运动学方程的推导过程,并通过MATLAB对运动学方程与机械臂位姿进行了验证。本文对开展机器人在虚拟环境下的研究具有一定借鉴意义。后期将研究虚拟环境下农业采摘机器人的路径规划以及物理仿真问题。

参考文献:

[1]胡进,侯增广,陈翼雄,等.下肢康复机器人及其交互控制方法[J].自动化学报,2011(11):2377-2390.

[2]王天然,曲道奎.工业机器人控制系统的开放体系结构[J].机器人,2002,24(3):256-261.

[3]罗陆锋,邹湘军,熊俊涛,等.自然环境下葡萄采摘机器人采摘点的自动定位[J].农业工程学报,2015,31(2):14-21.

[4]李鹏,胡梅.国外军用机器人现状及发展趋势[J].国防科技,2013,34(5):17-22.

[5]肖涛,黄强,杨洁,等.给定手部作业轨迹的仿人机器人推操作研究[J].机器人,2008, 30(5):385-391.

[6]齐俊桐, 韩建达. 基于MIT 规则的自适应Unscented 卡尔曼滤波及其在旋翼飞行机器人容错控制的应用[J]. 机械工程学报, 2009,45(4):115-124.

[7]谈士力,王建成,苏建良,等.球形壁面爬行机器人研制[J].机器人,2002,24(6):517-520.

[8]Rudnick D L, Davis R E, Eriksen C C, et al. Underwater gliders for ocean research[J].Marine Technology Society Journal,2004, 38(2): 73-84.

[9]陈玉军,张琦,苏凡囤,等.基于MFC的OpenGL仿真与3D模型的获取[J].中国制造业信息化,2005,34(4):103-105.

[10] 陆军,穆海军,杨明,等.基于3DS Max与OpenGL的机械臂仿真与控制[J].信息技术,2007(11):29-32.

[11] 孙亮, 马江,阮晓钢.基于OpenGL的六自由度机械臂三维仿真工具的设计[J].计算机测量与控制,2009,17(5):982-985.

[12] 李建刚,尹文庆,胡飞,等.基于MATLAB/Simulink的取苗机械臂运动轨迹仿真[J].中国制造业信息化,2009,38(15):71-73.

[13] 华永云,姜涛,王桂忠.基于LabVIEW 的机械臂控制与仿真系统[J].微计算机信息,2012,28(5):34-35.

[14] 曹春芳,孔庆忠.基于ADAMS 的五自由度机械手运动学仿真[J].机器人技术,2007,34(12):71-73.

[15] (美)Dave Shreinerz.OpenGL编程指南[M].李军,徐波,等译.北京:机械工业出版社,2010.

[16] Saeed B Niku.机器人学导论分析、控制及应用[M].2版.孙富春,朱纪洪,刘国栋,等译.北京:电子工业出版社,2013.

The kinematic simulation of 5 DOF manipulator based on OpenGL

SONG Xiping, LI Guoqin, LUO Lufeng

(College of Mechanical Engineering, Tianjin University of

Technology and Education, Tianjin, 300222, China)

Abstract:It establishes the kinematic simulation environment of the robot arm with five degrees of freedom in OpenGL platform, shows the detail about the process of building the model, the establishment of the coordinate system and the derivation of the kinematic equation. Using Matlab robot toolbox, it verifies the kinematics equation of the manipulator model and the movement of the manipulator model. This provides a reference for the research of the robot in the virtual environment.

Key words:OpenGL platform; 5 degree of freedom manipulator; kinematic simulation; D-H theory

作者简介:宋西平(1989—),男,山东临沂人,天津职业技术师范大学硕士研究生,主要研究方向为机器视觉技术。

基金项目:国家自然科学基金资助项目(31171457)

收稿日期:2015-09-21

中图分类号:TP391.41

文献标志码:A

文章编号:2095-509X(2015)12-0018-04

DOI:10.3969/j.issn.2095-509X.2015.12.005