六自由度机械臂三维仿真软件的设计

来源:教案设计 发布时间:2022-12-30 21:20:02 点击:

摘要:在机械臂实体上进行正逆运算的结果往往难以分析和验证,且机械臂实体的成本比较昂贵,针对此问题,设计了一套六自由度机械臂的三维仿真软件,可以对机械臂的运动进行实时仿真。该软件以VS2008为开发平台,使用OpenGL函数库进行机械臂三维模型的创建,使用Qt界面库进行软件界面的设计,提供正逆解运算和演示。结果表明,该软件操作界面良好,能够很好地仿真出机械臂的运动过程。

关键词:机械臂;运动学建模;运动学正逆解;OpenGL;三维仿真

中图分类号:TP391.9 文献标识码:A 文章编号:1009-3044(2014)01-0060-03

1 概述

随着自动化技术的不断发展,工业机器人的应用越来越广泛,机器人的三维仿真技术也越来越受到人们的重视。使用机器人仿真软件不会影响机器人的正常工作,待仿真完成后,直接把仿真程序下载到机器人中即可完成机器人的控制,从而提高生产效率。现在大多数院校的学生没有太多的机会去接触到实体机器人,使用机器人仿真软件可以让学生们更真实地感受机器人的运动,对教育教学有着十分重要的意义。该文以设计了六自由度机械臂的三维仿真软件,能够良好地仿真出机械臂的运动过程。

2 机械臂三维实体的绘制

按照模块化的思想,把机械臂自上而下进行分解:六自由度机械臂由六个关节组成,每个关节由多个立体形状组成,每个立体形状由多个面组成。绘制模型时,先绘制面,再由面去组成立体形状,然后由多个立体形状组成关节,最后由六个关节组成机械臂。采用模块化的思想,可以使各个关节之间独立,能够自由地添加关节和改变各个关节的形状。

1)面的绘制。对于一些简单的平面(例如:三角形,矩形等),只要确定各个顶点,就可以绘制出来。对于曲面,可以把它划分成许多个三角形。创建面时,要创建三个数组,分别用来存储顶点,顶点的法线和顶点的索引。使用glVertexPointer()函数来指定顶点数据,使用glNormalPointer()函数来指定法线数据。在绘制图形时,每次取三个顶点,通过绘制三角形来组合成面。使用glDrawElements()函数来调用顶点索引数组来进行顶点的绘制。实际绘制时,对于曲面,需要确定其细分数,即将其分解成小三角形的数目。细分数越大,模型越细腻,但绘制过程就越慢,因此必须均衡考虑细分数。

2) 关节的绘制。每个关节都是由不同的形状组成的,首先确定组成关节所需的形状,然后去创建每个形状,再进行旋转和平移变换将其移动到相应的位置。所有的关节都由两种基本形状组成:方形棱柱和圆柱形棱柱。棱柱的每个面都可以调整参数来改变尺寸。

3) 关节联动的实现。为了达到关节联动的效果,后一关节的局部坐标系必须建立在前一关节的局部坐标系之上。在进行绘图时,调用OpenGL的库函数glPushMatrix()使上一个关节的局部坐标系作为当前坐标系。如果该关节是最后一个关节,绘图完成后要调用glPopMatrix()函数来释放栈上的当前坐标系。

3 运动学建模与正逆解

3.1 D-H参数建模

使用D-H表示法进行运动学建模。建模时遵循以下原则,以达到简化模型的目的。

1) 机器人每个关节的初始角度都处于0度。

2) 尽量使关节坐标系的原点重合,从而减少计算次数。

3) 尽量使所有关节坐标系的X轴都重合,从而减少计算参数。

4) 使最后三个关节坐标系的原点重合,这里选定原点为第五关节的转动中心。从而使手臂和手腕解耦,手腕用于机械臂的姿态控制,手臂用于机械臂的位置控制。

其中,[x0-z0]表示基座坐标系,[xj-zj(j=1,2...6)]表示关节1到关节6的坐标系。

使用该方法建模后,所有的关节坐标系都只需经过4次相同的变换,就可以转换为下一个关节坐标系。记[j-1Tj]为从坐标系[j-1]到坐标系[j]的变换,则有:

[j-1Tj=Rot(x,αj)*Trans(x,dj)*Rot(z,θj)*Trans(z,rj)] (1)

[[j]\&[αj(°)]\&[dj(mm)]\&[θj(°)]\&[rj(mm)]\&初始角度\&关节角度变化范围[(°)]\&1\&0\&0\&[θ1]\&0\&0\&-170-170\&2\&90\&0\&[θ2]\&0\&0\&-180—45\&3\&0\&106\&[θ3]\&0\&0\&-135-45\&4\&-90\&0\&[θ4]\&122\&0\&-160-160\&5\&90\&0\&[θ5]\&0\&0\&-90-90\&6\&-90\&0\&[θ6]\&0\&0\&-360-360\&]

3.2 正逆解

运动学正解根据当前每个关节的角度推算出末端的姿态。由于参考坐标系、基座坐标系和第一关节坐标系是重合的,根据式(1)从参考坐标系依次变换到末端工具坐标系:

[rTt=0Tt=0T11T22T33T44T55T66Tt=nxoxaxpxnyoyaypynzozazpz0001] (2)

运动学逆解根据当前末端的姿态,求出各个关节的角度。由于篇幅限制,这里未给出详细求解步骤。算法流程如下:

1)设定每个关节的限位角度。

2)设定每个关节每次运动最大的差值。

3)每求解一个关节,用1、2条件判断,如果不满足,则直接进行下一组解。

4)判断是否超出机器人的工作空间,如果超过,则直接进行下一组解。

5)判断是否出现奇异,如果出现,则处理奇异情况

6)用性能函数对所求得的所有解进行筛选,取最优解。

性能函数定义为[f=i=16(λiΔθi)2],其中[θi]表示关节[i]转动的角度,[λi]是权重。关节转动时,对位姿影响越大,则[λi]越大。

4 人机界面

图3 机械臂仿真软件界面

界面左上方是机械臂的三维模型显示,左下方是状态显示,右边是控制区域。能够实现以下功能:

1)关节控制。设定运动速度,让每个关节进行转动。

2)坐标控制。设定运动速度,使机械臂沿三个坐标轴平移和旋转。

3)工具控制。控制末端手爪的开合状态。

4)状态显示。实时地显示每个关节的角度和机械臂的位姿。

5)视角切换。使用鼠标拖动机械臂进行视角的切换。

6)机械臂整体的移动。通过光标键,移动机械臂在屏幕中的位置。

7)视窗大小的调整。通过鼠标滑轮滚动,调整机械臂视窗大小。

8)运动轨迹的显示。能够动态地显示出机械臂的运动轨迹。

5 结论

本文设计了一套六自由度机械臂三维仿真软件。使用OpenGL创建三维模型,使用D-H表示法建立运动学模型,使用VS2008开发平台和Qt界面库提供良好的人机交互界面。结果表明,该仿真软件可以有效地验证机械臂的运动学模型和正逆解,并且能够良好地仿真出机械臂的运动过程,对机械臂的研究和教学起到了促进作用。

参考文献:

[1] 张聪,杨光,王晨升.基于OpenGL的六自由度机械臂建模及仿真[C].第四届图像图形技术与应用学术会议, 2009:236-239.

[2] 陈素丽,任福深.基于OpenGL 的弧焊机器人仿真设计[J].科学技术与工程,2012,12(3):544-550.

[3] Carlos Vázquez Hurtado, Alejandro Rojo Valerio, Luis Ruvalcaba Sánchez. Virtual Reality Robotics System for Education and Training[C].Robotics and Automotive Mechanics Conference,2012:162-164. (下转第75页)

(上接第62页)

[4] 闫贺,吴怀宇,彭晟远,等.四自由度模块化机械臂运动学建模[J].信息技术,2011(10):1-4.

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

[6] Lida Zhu,Chunxia Zhu.Research on Motion Simulation for Robot Based on Virtual Reality[C].International Conference on Robotics and Biomimetics,2007:1296-1300.

[7] 陈幼平,马志艳,袁楚明,等.六自由度机械手三维运动仿真研究[J].计算机应用研究,2006, (6):205-207.

[8] 沈靖,吕恬生.教学机器人三维仿真与远程控制软件实现[J].计算机仿真,2006,23(10):289-292.

[9] 解伟,王晓璨.基于 OpenGL的六自由度机器手建模仿真[J].信息化纵横,2009(12):65-67.

推荐访问:自由度 仿真 机械 设计 软件
上一篇:基于逆运动学的虚拟人跑步运动仿真设计
下一篇:连杆机构创新设计在机械工程实际中的应用

Copyright @ 2009 - 2024 优泰范文网 All Rights Reserved

优泰范文网 版权所有 备案号:粤ICP备09201876号-1