第33卷第12期 文章编号:1006—9348(2016)12—0346—06 计算机仿真 2016年12月 机器人机械臂动力学仿真研究 宛云龙 ,许红霞 (1.北京工业大学电子信息与控制工程学院,北京100022; 2.数字社区教育部工程研究中心,北京100124; 3.城市轨道交通北京实验室,北京100124) 摘要:针对传统机器人机械臂动力学仿真存在效率低和实时性差的问题,提出一种基于ODE的机器人机械臂动力学仿真方 法。通过建立机械臂D—H坐标系,得到了正运动学模型;利用欧几里得范数进行机械臂逆运动学计算;使用开源刚体动力 学引擎ODE完成机械臂动力学计算。将机械臂三维模型导人Open Inventor,并建立机械臂的三维仿真平台。通过仿真表 明,利用ODE对机器人机械臂动力学仿真,计算效率高,不仅可实现机械臂的实时控制,而且能绘制动力学参数跟踪曲线 图。实验证明了上述方法有效。为机器人机械臂实时动态性能优化提供了科学依据。 关键词:机械臂;正逆运动学;动力学计算 中图分类号:TP242 文献标识码:B Research on Dynamics Simulation of Robot Manipulator WAN Yun—long .XU Hong—xia ' ’。 (1.College of Electronic Information and Control Engineering,Beijing University f oTechnology, Bering 100022,China; 2.Engineering Research Center of Digital Communi ̄,Ministry of Eduemion,Beijing 100124,China; 3.Beijing Laboratory For Urban Mass Transit,Bejjing 100124,China) ABSTRACT:Aiming at the traditional robot manipulator dynamics simulation problems of low eficiency and bad reafl —time.a method of obot manirpulator dynamics simulation based on ODE is presented.At first,the D—H coordi- nate system of manipulator is established,and the kinematics model is obtained.Secondly,the calculation of manip・ ulator inverse kinematics is carried out by Euclidean norm.Thirdly,manipulator dynamics calculation is completed by open—source dynamics engine ODE.Finally,the 3 D model of robot manipulator is imposed into Open Inventor, and the 3D simulation platform of manipulator i8 set up.The simulation result shows that the method mentioned above with high computing eficiency,notf only can realize the real—time control of robot manipulator,but also can draw the tracking curves of dynamics parameters.The simulation proves that this method is effective and can be applied to real—time dynamic simul ̄ion of robot manipulator. KEYWORDS:Manipulator;Forward and inverse kinematics;Dynamics calculation 目前机械臂动力学仿真的方法主要分为如下几类:第一 1 引言 在现代工业生产中,机器人机械臂得到了广泛的应用。 种方法,在Matlab环境下编写程序并进行机械臂动力学仿 真。鲁墨武等…利用Matlab编写了机器人动力学正问题和 机械臂的动力学仿真,可以真实模拟机械臂运动过程中各部 件的相互作用。对机械臂的设计、动力学优化以及实时控制 具有重要意义。 逆问题的求解函数,并利用Maflb开发了机器人的三维模型 a和动力学仿真平台。黄玉钏等 利用拉格朗日动力学方程 建立了动力学模型并利用Matlab的simulink工具箱进行了 仿真。第二种方法,利用商业软件Adams进行机械臂动力学 仿真研究。王珂等 利用SolidWorks对机械臂完成三维实 基金项目:国家重点实验室基金(2012afd1040) 收稿日期:2016—02—20修回日期:2016—02—25 —体建模,然后将模型导入ADAMS并进行动力学仿真。蒋毅 等 运用拉格朗日法对机器人进行动力学分析,建立虚拟样 346一 机模型,在ADAMS中对其进行动力学仿真,并采用SimDe— signer进行刚柔耦合动力学仿真。第三种方法,利用Matlab 和Adams联合仿真。马如奇等_5 首先在Solidworks中建立 了机械臂的实体模型,然后将其导人ADAMS中进行运动学 与动力学仿真,最后通过ADAMS与Matlab的接口模块实现 了机械臂的联合仿真。方水光等【6 基于Jourdain变分建立 了刚柔耦合动力学模型,并在ADAMS与Matlab上对水平面 内的柔性机械臂进行了仿真。 然而,上文提到的几种商业软件在开放性和灵活性上存 在问题,不易根据用户需求的变化进行适当的修改。而且都 不能满足实时仿真的要求。本文以解决传统机器人机械臂 动力学仿真效率低和实时性差为目标,充分发挥开源软件的 优越性,提出一种基于ODE引擎的机器人机械臂动力学仿 真方法: 1)通过建立机械臂运动学模型,精确计算机械臂的任一 点的位置,保证机械臂动力学仿真顺利执行; 2)将机械臂各部件模型简化为均质刚体; 3)建立基于ODE的机械臂动力学仿真平台;4)以机械 臂拾放小球进行仿真为例,验证方法的有效性。 2机械臂运动学分析 2.1机械臂正运动学建模 仿真模型中包括3类坐标系:世界坐标系、根坐标系、模 块坐标系。在仿真平台中,世界坐标系定义为:从屏幕里面 指向外为+x轴,平行屏幕指向右为+Y轴,垂直向上为+z 轴。根坐标系用来定位机械臂各部件在仿真平台中的位置 (如底座),与世界坐标系重合。模块坐标系用于定位机械臂 的各个部件(如上杆、手抓)。运动链是刚体(或杆件)的一 个集合,通过运动副连接,运动副连接两个刚体并限制它们 的相对运动。运动副有两种基本类型,分别是旋转副,记为 R,或称为转动副,和滑动副,记为P,为称为棱柱副"J。下面 将引入Denavit—Hartenberg提出的方法,唯一的描述运动链 的结构,也就是两个相邻的运动副之间的相对位置和方向。 为此,对各杆件进行编号,分别为0,1,2…n,其中第i个运动 副连接第i一1和第i个杆件。机械臂由n+1个杆件和n个 运动副组成。 2.2 D—H参数确定 在确定系统D—H系之后,如图2进行装配结构参数及 运动参数表示。D—H参数规范如下:注:在隐含中间坐标系 后,结构参量与运动参量的指标k一为运动链[k一, ,k]中 的最小指标k一。 常称 一为轴距,称c 一为轴偏距,称0/. 一为轴扭角,称 0 一为轴转角。 一个关节由1个运动变量和3个结构参量所组成。因 此, 轴机械臂有n个运动变量和3n个结构参量。机械臂的 结构完全由它的3n个结构参量所确定,它的姿态完全由n 个运动变量所确定,这样,D—H参数也就确定了。图3为机 图1机械臂相邻两杆间关系 械臂的三维模型。由该图可知,该机械臂是具有三个旋转关 节的模块化串联机械臂,根据机械臂的特点,建立机械臂的 D—H系如图4所示。其中 。YoZo表示机械臂的根坐标系, X4Y4Z4为手抓的坐标系。 图2机械臂三维模型 图3机械臂D—H系 机械臂D—H参数见表1。 表1机械臂D—H参数 本文各符号的物理意义为: Q 为体系 至i的旋转变换阵在体系 下的表示, r 为 体系 原点至空间内一点S的位置矢量在体系 下的投 影, R为体系J至体系i的其次变换阵在体系 下的表示。 根据图4,因为0 一= 一表示由 一至 或由Yf一至Y ...——347...—— 的角度,所以机械臂处于零位时,0,=叮T, = 2,03=0。 2.3机械臂正运动学计算 由D—H旋转变换阵与投影关系得从坐标系i至坐标系 i+1的齐次变换阵如下 C(0 ) —Ai・S(0 ) ・S(0 ) 0f・C(0 ) S(0 ) A ・C(0 ) -/.Ll・C(0f) 口f・S(0i) R+l= 0 A C. O 0 0 1 (1) 其中,C(0f)=COS(0f),S(0 )=sin(0f), =sin( ),A =COS ( ), 为轴距,c 为轴偏距,0【;为轴扭角,0 为轴转角。 由式(1),并应用齐次变换阵的串接性质可得机械臂任 意支路的齐次变换阵。 =l 。足=兀(;i一 ) (2) 已知机械臂杆件i上任一点s位置‘r 计算其在世界坐 标系下的位置,由式(2)得 。r =0R ・r (3) 2.4机械臂逆运动学计算 本文借鉴文献[7]与文献[8],利用欧几里得范数进行 机械臂逆运动学计算。因坐标系0与坐标1重合,故。 =0,。Q =。1 。根据D—H系结构图3,可以推导出,手抓拾 取点位置矢量。rc。。rc=。rl+。Ql・ r2+。Q2・。r3+。Q3・。r4 +。Q ・ ,为求解需要,将 Q 分离到方程的一侧,以便消 元。故有’ r2+ Q2・ r3+ Q3・ r4+ Q4・ rc 即 Ql・ rc—Ql・ r2=。Q3・( Q2・ r3+ r4+ Q4 ・ rc) 故有定位方程 Q3・( Q2・ r3+ r4+ Q4・ rC)= Q1・( rc一 r2)(4) r C(0 ) 一A ・S(Oi) ‘S(0f)] 其中, Q =I s( ) A ・c(o ) 一 。c(oi)I是相邻 L 0 A J 坐标系间的旋转关系,0 、C 、n 、 分别是机械臂的轴转角、 轴偏距、轴距和轴扭角参数。腕心位置 r =[ ,Y ] 为 已知量。式(4)包含3个等式,含3个运动参量,其它均为结 构参量或拾取点位置。应该可以显式求解。 由定位方程(4)可知:其右式范数不含 及0,,故通过 左右范数相等可建立不含0 的范数方程;又l lQ l】:1。 由式(4)左右范数相等,合并同类项,得到下式 A・C(01)+ ・S(01)+C・C( )+D・S(03)+E=0 (5) 其中 A=2・0l・ c B=2・。1・,,c C=2・口2・03—2‘c2‘c4・ 2・ 3 ・ -——348—--—— [: 】・[ ;:;】=一[:。.Cc( 03 ) ++D .Ss (0e3,;: 】 】= r—G・(C・C(03)-4-D・S(03)+E)+] △ -l F ・(・C c( )+・D S:()0s3 E+) A一・ l㈣ l — L (H・c(0,)4-,・S(03)4-J) -J 若记r,:t (03/2),则有c(03)={l-三十 、下 s( )= = ,将其带入式(9)得到关于1-,的4次方程: l十r V=4・0 ・(日+.,) + ・(c+E)。一4・n ・ ・( 2c + ) 4 ODE引擎及机械臂三维可视化仿真平台整体框架 4.1动力学计算引擎ODE 根据式(10)可解出关于 的4个可能的解,再将其带 入式(8)得到 1的解。 考虑式(4)的前两个方程。记 All=口2+a3・C(03)+c4・ 3・S(03) A12=一口3・A2・S(03)+c3・ 2+c4・ 3・A2・C(03) +c4’ 2’A △22=A 。+A 2 则 c( )= [A ( c・C(01)+Yc・S(0。)一口1) ‘^'' -AI2・(一 c・Al・S(01)+Yc・A1・C(0I)+ ( 一c )・ 1)] S(02)=。 [ 12・( c・C(01)+Yc・S(01)一口1) ‘●', +A1l・(一 c・Al・S(01)+Yc・A1・C(01)+ ( 一c1)・/z。)] (11) 把得到的0。和0,的值带入式(11),可得相应 的值。 3机械臂三维模型 三维可视化仿真平台中模型包括带手抓的三自由度串 联机械臂和红色小球。机械臂的主要部件包括:底座、下杆、 中杆、上杆和手抓。机械臂模型各部件参数为:底 座高0.1米;从下到上三杆件长度分别为:0.9米、1.0 米、0.8米,直径均为0.08米;手抓顶端距离最后一根杆为 0.2米;底座底部中心位于世界坐标系坐标为(0,0,0),即原 点;小球在世界坐标系坐标为(1,0,0),红色小球直径为 0.03米。机械臂的每条臂之间通过转动关节相连,为了计算 方便,将机械臂的模型简化为底座及机械臂均为均质刚体, 同时忽略关节间的摩擦力。 为了实时获取机械臂的运动姿态变化状况,需要进行机 械臂运动学控制与动力学仿真。采用图形应用程序接口 Open Inventor与VC++平台建立多文档多视图的机械臂仿 真平台。Open Inventor(OIV)是SGI公司开发的基于OpenGL 的面向对象三维图形软件开发包,通过OIV开发包,可以快 速、高效地开发各种类型的交互式图形软件。且QIV具有平 台无关性,可以用于Windows、Unix、Linux等多种操作系统。 虽然它本身是使用C++编写的,但Open Inventor也支持c、 Java、.Net语言开发。尤其重要的是,Open Inventor提供了载 人wrl格式资源的接口。本文采用专业三维建模软件对各部 件进行分别建模,再将各部件模型导人OIV并拼装成整体, 相比直接使用OpenGL进行渲染,不仅模型美观,而且简单高 效。并在ODE中通过设置关节之间的铰接关系Joint以及设 置各部件的Body即可建立机械臂的动力学模型,与机械臂 三维模型的几何形状无关。 ODE(Open Dynamic Engine)是一个免费的具有工业品 质的用于模拟关节连接的刚体动力学的库,一款优秀的开源 物理引擎,自带动力学引擎和碰撞检测引擎。它能很好地仿 真现实环境中的可移动物体,它是快速,强健和可移植的。 ODE引擎的核心是采用程序实现的牛顿运动定律以及反映 现实世界动力学的函数库。非常适用于各种关节构成的物 体的动力学和运动学仿真模拟。虽然ODE主要使用C++ 编写,但是保留了与C语言的自然接口,并在C语言基础上 构建了C++的界面。 ODE通过Body、Geom、Joint、group、space、world几个元素 对现实世界的各种实体进行描述。各个元素的特性如下: Body表示刚体本身,包括了刚体的多种属性,其中某些属性 是随时间而变化的。ODE通过实时修改Body的位置、姿态 等属性,从而模拟现实世界刚体的动力学特性。Geom表示 刚体的几何外形,是ODE进行碰撞检测的基本单元。 4.2机械臂可视化仿真平台整体框架 机械臂可视化三维仿真平台由机械臂三维模型、机械臂 运动学模块、机械臂动力学模块、三维仿真模块、3D渲染性 能曲线模块和人机交互模块组成。如图4所示。 机械臂三 机械臂运 机械臂动 维模型 动学模块 力学模块 机械臂可视化三维仿真平台 三维仿 3D渲染性能 人机交 真模块 曲线模块 互模块 图4机械臂可视化三维仿真平台 在机械臂三维仿真平台中,首先采用与Open Inventor兼 容的SolidWorks建模软件进行机械臂三维建模;然后利用 ODE引擎进行机械臂动力学计算,并采用Open Inventor库同 步显示三维场景;人机交互接口可供操作员在虚拟场景中操 纵机械臂。 5仿真研究 5.1仿真过程中使用参数 在仿真平台中用到的相关参数:机械臂底座质量为9kg, 下杆与中杆质量均为2kg,上杆与手抓质量之和也为2kg,小 球质量为lkg;地球表面重力加速度设为9.8m/s 。 5.2仿真基本流程 首先利用图形库Open Inventor建立三维地面场景,导人 ...——349...—— 事先绘制完成的机械臂三维模型(本文利用专业的三维建模 软件SolidWorks绘制)以及ODE下动力学模型,并初始化各 参数。然后设置小球的拾取点坐标与释放点坐标,并将其传 递给机械臂逆运动学计算模块,计算出各运动副的输出力 { :: 曩: j 。 。。 / , , 一——一 —一—— . — 一 一— — —— 时间 … … ’ 矩。同时通过ODE提供的函数接口获取机械臂的角速度和 平动速度,得到机械臂各杆件所受支撑力的大小和方向。将 这些力作用于ODE动力学模型中,经过一个仿真步长的计 算,可得到机械臂各部件和小球在三维场景中的位置和姿 态,最后将其传递给Open Inventor,并更新各部件位置与姿 态,完成在三维场景中的显示,结束一次循环。仿真流图见 图5。 毒 1 , 一一一一\ {/ 警:: {// 装 : 、\\~~——一 — ..,. 一一 I/ i — . . . .. — ,,. . . . — . . ~ ~ ... . . . , . . . .. — . ,.. . —,.. .. . . ~ 一 ~ ㈣盏-。 {l / ,一一一一~一——一—— 薹: {/ o !LT....r1.t — —r1 T.r.. ,.T——1—r .r..T。 — 1—r1 .T一… 。。… 1日 一’ 图6各关节旋转角度跟踪曲线 { { i — 一Ioo 一 — ……l /1' — — :::: ;;= ……— 一 0 时间步 龌 峨一牡嫩 ¨曲¨" 。吾制嫒N社擞 。吾吼 n 蚰 。 ¨""蚰 ’ w间 …… 各关节旋转角速度跟踪曲线 量" 枷 蓑 冒 ・。 枷 蓑 。 1 o 300 4… …0 时间步 .。 詈柏 暑 图5仿真流程图 {I .、—————————— .._— 蓑。 ……时 … ’ 5.3仿真结果分析 图8各关节力矩跟踪曲线 三维仿真平台开始动力学仿真,机械臂仿真运动过程 为:首先,机械臂手抓从初始点运动至小球拾取点,手抓拾取 小球,然后运动至小球释放点,手抓释放小球。 起始时刻机械臂末端坐标为(0,0,3),同时设置小球拾 取点坐标为(1,0,0),小球释放点坐标为(1,1,1)。图6至图 8为机械臂末端从初始点运动至小球拾取点拾取小球,再运 两个阶段运动过程中,目标点分别为小球识拾取点和小球释 放点。根据给定的目标点坐标,依次求得解析解、合理解、最 优解,结果如表2所示。最优解是通过对式(12)的指标定义 求最小值完成的。表2中最优解都是相对于零位取的增量。 J=k1 I AO1 l+k2}A03 I+k3 l A03 l(kl,|i}2,k3>=1) (12) 动至小球释放点释放小球的整个过程中,机械臂各关节变量 的仿真结果跟踪曲线。机械臂虚拟样机的计算机动画截图 如图9所示。仿真步长为0.002s 设定机械臂各转动角范围均为一180。~180。。机械臂 ...——其中k ,k:,k 表征旋转三个轴能量消耗的差别,实际计算中 分别取k =3,k:=2,如=1。 由图6可知,0至380步,0 始终为0。,02与0 从0。逐 350...—— 实时性差的问题,提出一种基于ODE的机器人机械臂动力 学仿真方法。通过建立机械臂动力学模型并利用虚拟现实 (a)初始姿态 岫 (h)拾取小球 (c)释放小球 .技术实现机械臂的动力学仿真,并进行机械臂拾放小球的仿 真,结果表明,通过该方法不仅完成了机械臂运动学计算,而 且可实时获取机械臂的运动姿态与动力学性能参数,计算效 率较高,实时性较好。通过仿真的结果以及获取的动力学参 数,为机械臂的设计、优化与实验提供了重要依据。同时也 为机械臂运动学算法与动力学算法研究提供了平台。为了 计算方便,简化了机械臂模型,下一步将对其进行改进与 优化。 图9机械臂虚拟样机的计算机动画 渐增大到90。。380步之后,0。从0。逐渐增大到45。, 从 9O。逐渐减小到45。,0,几乎保持90。不变。与表2中数据 相符。 表2机械臂角度解 参考文献: [1] 鲁墨武,等.基于Matlab的机器人建模与动力学仿真[J].机 械T程师,2011,l(1):40—42. [2]黄玉钏,曲道奎,徐方.FROG—LEG型真空机械手的动力学控 制研究[J].四川大学学报(_T程科学版),2013,45(3):l58— 163. [3] 王珂,周骥平.高速板材搬运机械手的动力学仿真研[J].机 械科学与技术,2014,31(1):12—15. [4] 蒋毅,等.食品分拣机器人动力学仿真[J].食品与机械, 2015,3l(5):93—95. [5] 马如奇,等.基于MATLAB与ADAMS的机械臂联合仿真研究 [J].机械设计与制造,2010,4(4):93—95. [6] 方水光,等。柔性仿人机械臂设计与动力学仿真[J].T程设 计学报,2012,19(4):307—3l1. [7] J Angeles.Fundamentals of Robot Mecanie—al Systems:Theory, Methods,and Algorithms,Second Edition[M].New York:Spring— er.2003:75—98. (a)初始姿态 岫 (b)拾取小球 (c)释放小球 [8]付荣,居鹤华.高精度解耦六自由度机械臂逆运动学解法[J]. 计算机测量与控制,2010.18(7):1637—1644. [作者简介] 宛云龙(1988一),男(汉族),安徽省合肥市人,硕 士研究生,主要研究领域为机械臂动力学控制。 图9机械臂虚拟样机的计算机动画 许红霞(1971一),女(汉族),山东省威海市人,博 士,讲师,主要研究领域为机器人智能控制、自主 规划。 6结束语 本文针对传统机器人机械臂动力学仿真存在效率低和 一351—