四自由度机械臂(通用4篇)
四自由度机械臂 篇1
0 引言
机器人是当代科学技术的产物,是高新技术的代表[1]。机械臂系统的控制已成为机器人学领域一个充满活力、有挑战性的研究课题[2]。机械臂是目前在机器人技术领域中得到最广泛实际应用的自动化机械装置,最适合在那些人类无法工作的环境中工作,具有长期稳定工作的特点,可以比人类工作得更好并且成本低廉。对提高生产效率和产品质量起到了十分重要的作用,它们已在许多工业部门获得广泛应用。
机械臂的正向运动学和逆向运动学研究属于机械臂运动学研究领域中基础而关键的问题。文献[3]等针对9自由度模块化机器臂,用一种简化的运动学反解思想,把空间问题转换为平面问题,求解出了机械臂的逆解。文献[4]等针对5自由度超声检测臂,用D-H表示法和牛顿-欧拉递推方法,分别建立了超声检测臂的运动学和动力学模型。文献[5]根据6自由度机械臂正交解耦的结构特点,采用位姿分解方式,利用欧几里德范数求解出了机械臂的逆解。文献[6]分析了一种新型的3自由度混联机械臂的运动学传递性能。
本文以课题组与企业共同研发的四自由度模块化机械臂MT-ARM为研究对象,采用D-H表示法研究机械臂的运动学问题,建立了机械臂的正运动学模型,采用矩阵逆乘的解析法求解机械臂运动学逆解问题。最后通过开发的基于MFC框架类和OpenGL语言的四自由度机械臂三维仿真软件进行实验,验证了所求机械臂的正运动学模型与运动学逆解的准确性。
1 正运动学建模
正运动学建模过程是根据已知的四个关节的旋转角度,求末端手爪相对于基坐标系的位姿的过程。Denavit-Hartenberg(D-H)[7]模型表示了对机械臂连杆和关节进行建模的一种很有效的方法,利用D-H表示法对机械臂进行分析建模已成为机械臂运动学问题研究的标准方法。基本思想是:根据D-H表示法指定每个关节的参考坐标系,然后确定如何实现任意两个相邻坐标系之间的变换,通过齐次变换矩阵表示,最后计算出机械臂的总变换矩阵。
1.1 关节坐标系的建立
本文研究的机械臂是具有四个旋转关节的四自由度机械臂,如图1所示。根据机械臂的结构特点,将每个旋转关节都调整到标定的零点位置,定义机械臂的初始位姿。利用D-H表示法建立基坐标系以及各个关节的坐标系:O0x0z0表示机械臂基座的坐标系,即关节1的坐标系。依次建立2-4关节的坐标系,θn表示机械臂i+1关节的坐标系,如图2所示。由于坐标系的建立不是唯一的,不同的坐标系下D-H矩阵是不同的,末端位姿T不同。但对于相同的基坐标系,不同的D-H矩阵下的末端位姿T相同。考虑到计算复杂度的问题,本文采用的基坐标系与关节1坐标系相同。
1.2 正运动学方程的求解
在建立了关节坐标系之后,根据相邻关节坐标系的变换步骤确定机械臂的D-H参数。如表1所示。表中,θn+1表示绕zn轴的旋转角,dn+1表示zn-zn+1轴的连杆长度,αn表示zn-zn+1轴之间的角度,On-On+1表示相邻坐标系之间的转换。式(1)中,nTn+1表示坐标系n+1相对于坐标系n的变换,记为An+1,Rot(z,θn+1)和Rot(x,αn+1)分别为绕轴z和x轴的基本旋转变换矩阵,Trans(0,0,dn+1)和Trans(an+1,0,0)分别为沿z轴和x轴的基本平移变换矩阵。4个基本变换矩阵均为可逆矩阵,故An+1可逆,S表示sin,C表示cos。
相邻关节坐标系的变换矩阵为
表1 机械臂的D-H参数表
将D-H参数代入式(1),计算相邻关节变换矩阵,进而得到机械臂的正运动学方程。机械臂的末端执行器相对于基座的总变换矩阵为:
式中,0T4为机械臂末端执行器在基坐标系中的位姿矩阵,[nxnynz]T为机械臂末端执行器坐标系的x4轴在基坐标系中的方向矢量,[oxoyoz]T为机械臂末端执行器坐标系的轴在基坐标系中的方向矢量,[axayaz]T为机械臂末端执行器坐标系的ZA轴在基坐标系中的方向矢量,[pxpypz]T为机械臂末端执行器在基坐标系中的位置。
2 逆运动学求解
如前所述,根据已知的机械臂运动学正解位姿矩阵,依次用逆乘的解析法求解运动学逆解。本文研究的机械臂,末端为两自由度模块,其结构由一个俯仰的摆动自由度和一个旋转自由度组合而成。因为旋转关节不影响手爪末端在基坐标系中的位置,所以逆解中只包括了三个关节角的求解。
2.1 求解关节角θ1
使用解析法求解运动学逆解,由A
记(i,j)L为等式左边矩阵的第i行第j列元素,(i,j)R为等式右边矩阵的第i行第j列元素。根据式(3)的(3,4)L=(3,4)R,可得pxS1-pyC1=0,由上式可得θ1=arctan(py/px)或θ1=θ1+180°,所以θ1最多可以有2个解。
2.2 求解关节角θ2
根据式(3)的(2,3)L=(2,3)R、(2,4)L=(2,4)R可以得到az=cos(θ2+θ3),d2·S2+d3·cos(θ2+θ3),整理可得dsS2+d4az=pa,故θ2=arcsin((pz-d3az)/d2)或θ2=θ2+180°,所以θ2最多可以有2个解。
2.3 求解关节角θ3
根据式(3)的(2,3)L=(2,3)R,得到az=cos(θ2+θ3),记θ23=θ2+θ3;由此可得,θ23=arccosaz或θ23=arccosaz+180°;θ3=θ23-θ2。由上式得,θ23最多可以有2个解,而θ2最多也可以有2个解,故θ3最多可以有4个解。
由于机械臂逆运动学的解不是唯一的,在实际应用中机械臂运动学逆解的选择需要根据机械臂末端执行器所在象限和具体所走的轨迹来确定[8]。由于机械臂的本身结构和工作环境的限制,导致各个关节角度有限位,各角度限位为:θ1∈[-90°,90°],θ2∈[0°,90°],θ3∈[-120°,120°]。
3 实验及分析
3.1 软件平台介绍
机械臂控制软件采用在Visual Studio开发平台上,基于MFC框架类和OpenGL的函数库来开发的软件。OpenGL语言的优点是能够将三维图形在三维空间内显示,并可对其中的某个模型进行平移旋转缩放等功能,这样研究人员可以在没有连接机械臂的情况下在该模型上验证自定义的算法。四自由度机械臂三维仿真软件界面如图3所示。该界面分为两部分:模拟仿真界面与实际运行界面,PC机与机械臂连接时,仿真界面中的两个机械臂同时运动,右侧树形控件分为总控制界面、各个关节控制界面、逆运动学界面等。实验内容为:①正运动学仿真模型的验证;②逆运动学实际位姿的验证。
3.2 正运动学验证
图3中模拟仿真界面为机械臂正运动学模型的初始位姿,即当所有关节角为0度时的位姿。空间中的一个刚体有六个自由度,要全面地定义空间一物体,需要用6条独立的信息来描述物体原点在参考坐标系中相对于三个参考坐标轴的位置,以及物体关于这三个坐标轴的姿态。图4中给出了12条信息,其中左上3×3矩阵为姿态信息,最后一列为位置信息,矩阵中最后一行为比例因子,没有附加信息。仿真平台严格按照机械臂的各模块几何关系进行设计,由机械臂的D-H参数表计算可得,x=0,y=d1=298.5,z=d2+d3=330+320=650,与图4中的机械臂正运动学初始位姿状态的数据相同,所以计算得到的正运动学位姿矩阵是正确的。
3.3 逆运动学验证
逆运动学验证过程如下:由于给定的末端位置具有不可达位置,所以采用先给定关节角θ1-θ3,利用正运动学仿真环境计算得到期望的末端位置;再利用逆运动学算法得到各个关节的角度并进行实际实验。图5为逆运动学机械臂末端执行器实际位姿。表2为利用实际MT-Arm机械臂进行实验时,从大量实验数据中随机选取的20组末端手爪期望位置和达到位置的数据。由表中数据可知,最大位置偏差不超过1mm,运算结果表明求得的运动学逆解是正确可靠的。
3.4 误差分析
实验中期望位置与实际达到位置的误差是一方面由于程序在运行过程中,涉及到角度与弧度之间的相互转换,数据出现了比较小的偏差;另一方面,MT-Arm机械臂的关节分辨率为±0.05°,所以实际到达的位置与期望位置之间有较小的偏差。
4 结束语
本文针对四自由度MT-Arm机械臂的运动学问题,采用D-H表示法建立了机械臂各个关节的参考坐标系,计算出以关节角为变量的相邻坐标系的变换矩阵,进而获得了机械臂的正运动学矩阵方程,利用矩阵逆乘的解析法求解逆运动学的关节角变量,使用末端位置判断的限制条件选取一组关节角变量的最优解,最后通过仿真和实际实验验证了运动学正解与逆解的准确性。机械臂的运动学分析是机械臂动力学和轨迹规划的基础,本文为后续的机械臂研究提供了理论依据。
参考文献
[1]宋伟刚.机器人学—运动学、动力学与控制[M].北京:科学出版社,2007.
[2]赵冬斌,易建强.全方位移动机器人导论[M].北京:科学出版社,2010.
[3]季婷,孙汉旭.关于一种模块化机器人的简化运动学反解[J].北京邮电大学学报,2004,27(增刊):89-93.
[4]郑慧峰,周晓军,张杨.基于最优时间的超声检测轨迹规划[J].浙江大学学报:工学版,2010,44(1):29-33,183.
[5]付荣,居鹤华.高精度解耦六自由度机械臂逆运动学解法[J].计算机测量与控制,2010,18(7):1637-1640.
[6]李研彪,金振林.一种新型3—DOF混联机械臂的运动学基础分析[J].机械传动,2007,31(6):16-17.
[7]Denavit J,R S Hartenberg.A Kinematic Notation for Lower-PairMechanisms Basec on Matrices[J].ASME Journal of Applied Me-chanics,June 1955:215-221.
[8]姜宏超,刘士荣,张波涛.六自由度模块化机械臂的逆运动学分析[J].浙江大学学报:工学版,2010,44(7):1348-1354.
六自由度机械臂逆运动学求解 篇2
我国是农业大国,每年收获所耗费的劳动力非常多,机械臂就成为了替代人类工作的一种很好的工具。机械臂是模仿人类手臂而设计的一种能够自动运动的装置,用来实现抓取、收获等工作。它能够在人类无法工作的环境下代替人类工作,并能够保证稳定性,对提高生产效率和降低劳动成本都起到了非常重要的作用,目前已经被应用在各个领域当中。
六自由度机械臂逆运动学求解问题是近几年来国内外主要研究的热点之一。逆运动学求解的困难程度直接与机械臂的结构有非常大的关系,许多学者对六自由度机械臂逆运动学求解做出了非常大的贡献。在求解逆运动学问题中,迭代法只能求出一组解; 解析法虽然可以得到全部解,但是计算复杂; 人工神经网络、遗传法等只是在理论上进行了研究,无法保证解的精度和稳定性,很少用于机械臂的运动控制当中。
为此,本文提出了一种能够有效地解决六自由度机械臂逆运动学问题的实时算法,在分析机械臂运动特性的基础上,建立了D - H坐标系来研究机械臂的运动学问题。首先建立机械臂正运动学模型,然后采用矩阵逆乘的方法来求解逆运动学问题,最后进行仿真实验,验证了机械臂正运动学模型和逆运动学求解的正确性。
1 正运动学模型
机械臂正运动学求解是已知机械臂各个关节的角度,来求取机械臂末端操作器的期望位置,主要是利用D - H坐标系。一般思路是: 首先,在各个关节建立参考坐标系; 然后确定每两个相邻的坐标系之间的关系; 最后,得出机械臂总变换矩阵。
1. 1 D - H坐标系的建立
本文以六自由度机械臂为研究对象,如图1 所示。其中,每个舵机都可以单独工作。根据机械臂的结构特点,使用D - H方法建立基础坐标系,x0 - z0表示机械臂的底座,再依次建立关节2 - 6 的坐标系,x6 - z6 表示机械臂的末端操作器,如图2 所示。
1. 2 正运动学求解
在D - H坐标系建立后,根据相邻连杆之间的位置关系,确定D - H参数。机械臂各个关节的参数如表1 所示。其中,θ 为连杆转角; d为z轴上两条相邻公垂线的距离; α 为每一条公垂线的长度; 为关节轴线之间的夹角。
机械臂相邻相邻两个关节坐标系的齐次变换矩阵通式为
其中,Ai +1表示坐标系i + 1 相对于i的关系,i = 1,…,6。
将D - H参数代入该公式,得到正运动学方程。其末端操作器相对于基座的变换方程为
其中,正余弦预算符号在书写上做了简化,如S1=sinθ1,C1=cosθ1,S234=sin(θ2+θ3+θ4)。
2 逆运动学求解及最优控制
逆运动学求解是根基机械臂末端操作器预计位置,求出每个关节变量平移和旋转地数值,是正运动学的反向求解过程。正运动学求解比较简单而且解唯一; 逆运动学求解相对复杂可能存在多解、唯一和无解的情况。本文介绍了一种根据运动学正解,采用矩阵逆乘来求解逆运动的方法。
2. 1 求解关节角 θ1、θ2和 θ3
使用矩阵逆乘法求解逆运动学,用A1-1左乘式( 1) ,可以得到
让方程两边矩阵的第3 行第4 列对应相等,可得
对等式两边同时除以,则公式可化为
化简得,进而可以解得
最后求得
让方程两端的第1 行第3 列对应相等,第2 行第3列对应相等,可得到
在式( 9) 两边同时乘以S234,在式( 10) 两边同时乘以C234,可以得到
化简得
让方程第1 行第4 列与第2 行第4 列分别对应相等,可知
移项化简为
令X1= C1px+ S1py- a1- S234d5- C234a4( 17)
所以,X1和X2是已知量,对两边同时平方相加得
最后可得
对式( 20) 继续化简可得
2. 2 求解关节角 θ4、θ5和 θ6
因为 θ2和 θ3已经知道,所以得
对式子RTH两边连续乘以A1- A4的逆矩阵,可得
让式( 22) 中第1 行第3 列与第2 行第3 列分别对应相等,可知
最后,用A5- 1分别乘以式( 22) 两端,再让第2 行第1 列和第2 行地位列分别对应相等可得
2. 3 最优控制
机械臂逆运动学的解不是唯一确定的,在计算出所有解之后,由于关节运动范围限制要将其中一部分解舍去,在剩下的解当中通常选取一个最理想的接近当前机械臂的解,而选取最理想解的方法通常选用最优控制理论。最优控制就是在给定条件下对给定的受控系统确定一种控制率,使该系统相应于预先设定的性能指标具有最优值。控制系统最优化问题包括性能指标的合理选择及最优化控制系统的设计,而性能指标在很大程度上决定了最优控制性能和最优控制形成。下面先对最优控制理论做一个简单的介绍。
假定由下面的微分方程构成动态系统,则
其中,x(t)=[x1(t),...,xr(t)]T为t时刻的状态向量;x(t)=dx(t)/dt;u(t)=[u1(t),...,un(t)]T为t时刻的控制控制向量;f=[f1,...,fr]T为给定的连续可微的函数。
本方程表示系统从t = 0 时刻开始工作,一直到t= T ,T为末端时间。通过这个方程,根据能量关系,可以得到下面的目标函数,即
最优控制理论其实就是极值原理和最优原理。以机械臂底座为坐标原点,通过正运动学分析,可以知道末端操作器相对于原点的位置方程为
其中,( qx6,qy6,qz6) 代表了机械臂末端操作器的位置方程。通过末端操作器的位置方程可以看出末端位置的确定只与每个关节旋转地角度有关,想要达到能耗最少只要使机械臂关节旋转的角度总和最少即可。所以,最优控制方程就可以化简成G0( u)=Φ( x( x( T) ) ) 形式,即
求出满足方程式( 28) 的极小值的各个角度,即为机械耗能最少时每个舵机应转动的角度。
3 求解实例分析
与正运动学相比,逆运动学求解更难,但是对机械臂的运动却更加重要,它是轨迹规划的一个非常重要的环节。所以,必须对其进行具体求解实例分析,具体过程如下:
首先,知道机械臂的各个参数分别为a1=0.040m,a2=0.043m,a3=0.047m,a4=0.044m d4=0.072m,d5=0.045m。假设机械臂的各个关节角的最初角度为0、π/3、-π/6、-π/6、π/2、0。将其代入正运动学方程中,可以得到末端的矩阵方程为
用Mat Lab可以绘制出当前机械臂的位姿,如图3所示。
假设机械臂当前各个舵机的角度都为0,要使末端操作器到达满足上述的终点位置,将终点矩阵方程代入逆运动学方程中,可以得到8 组解,如表2 所示。
由表2 可知: 第1、3、5、6 组解是存在的,并且其中第3 组解和之前已经知道的6 个角度非常接近,也满足式( 28) ,可以作为最优解。这说明了前面所提出的逆运动学求解方法与最优控制算法的正确性,还说明了从关节空间到笛卡尔坐标系之间是一种复映射关系,即多对一的映射关系。第2、4、7、8 组解无解说明了机械臂的结构不能满足条件,适当选取齐次矩阵,这几组解将有可能存在。由于逆运动学具有多解的可能性,在日程生产应用当中,还要考虑机械臂的工作环境、空间及初始位姿等条件来选择合适的解。
4 结论
首先按照机械臂的结构特点建立了运动学模型。然后,通过对正运动学方程的分析,提出了矩阵逆乘的方法来求解逆运动学方程。在已知末端操作器位姿的情况下求出每个关节的旋转角度,并通过求极值的方法求出机械臂运动的最优路径。最后,通过具体的角度计算证明了这种方法的准确性,并且充分说明了关节空间到笛卡尔坐标系之间的多对一关系。本研究为机械臂轨迹规划算法的研究提供了非常重要的理论依据。
摘要:对六自由度机械臂进行了正运动学分析与求解,并提出了一套解决六自由度机械臂逆运动学问题的算法,同时使能耗达到最少。首先从机械臂的结构特点出发,建立D-H坐标系,得到正运动学模型;然后通过对正运动学模型的可解性进行分析,采用矩阵逆乘的方法来得到机械臂逆运动学的完整析解;再通过求极值的方法来算出机械臂在运动过程中哪种运动轨迹耗能最少;最后用求解实例的方法验证正运动学模型和逆运动学求解的正确性。
关键词:六自由度机械臂,正运动学,逆运动学
参考文献
[1]姜铭,易红,李鹭扬.RGRR-Ι构造混联6R机器人[J].机械工程学报,2010,46(1):30-36.
[2]钱东海,王新峰,赵伟.基于旋量理论Paden-Kaha子问题的6自由度机器人逆解算法[J].机械工程学报,2009,45(9):72-76.
[3]张波涛,刘士荣,史先鹏.多连杆冗余移动机械臂建模与运动规划[J].科技通报,2010,26(2):200-205.
[4]李宪,郭永存,张军华.模块化六自由度机械臂逆运动学解算与验证[J].农业机械学报,2013,(44)4:246-251.
[5]董云,杨涛,李文.基于解析法和遗传算法的机械手运动学逆解[J].计算机仿真,2012,29(3):239-243.
[6]Kalra P,Mahapatra P B,Aggarwal D K.An evolutionary approach for solving the multimodal inverse kinematics problem of industrial robots[J].Mechanism and Machine Theory,2006,41(10):1213-1229..
[7]徐文福,刘宇,强文义.自由漂浮空间机器人的笛卡尔连续路径规划[J].控制与决策,2008,23(3):278-282.
[8]Husty M L,Pfurner M,Schrocker H P.A new and efficientalgorithm for the inverse kinematics of a general serial 6R manipula-tor[J].Mechanism and Machine Theory,2007,42(1):66-81.
四自由度机械臂 篇3
随着自动化技术的不断发展, 工业机器人的应用越来越广泛, 机器人的三维仿真技术也越来越受到人们的重视。文献[1]以六自由度机械臂为例, 介绍了整个系统建模的结构及过程, 并对其运动过程进行了仿真。文献[2]设计了基于VC++.NET和Open GL的五自由度弧焊机器人仿真平台, 能够进行三维实时仿真。文献[3]设计了基于Qt、Coin3D和Bullet Physics的机器人虚拟现实系统, 能够方便地对机器人进行示教。文献[4] 采用D-H表示法研究机械臂的运动学问题, 并通过开发的基于Open GL的仿真软件验证了模型的准确性。文献[5]设计了基于MFC框架类和Open GL的三维仿真工具, 对4 种轨迹规划方式的效果做了直观的比较。其中, 文献[1] 所使用的3 D模型是U G N X软件导出的V R M L格式, 不如直接使用Open GL绘图简单和灵活。文献[2]和文献[3]没有说明机器人三维实体的具体实现方法。文献[4]没有给出逆解存在多组解时的解决方法。文献[5]没有把三维模型模块化, 从而不利于系统的扩展。
综合以上文献工作中的优缺点, 本文以vs2008 为开发平台, 基于Qt界面库和Open GL函数库设计了六自由度机械臂三维仿真软件, 能够良好地仿真出六自由度机械臂的运动过程。
2 软件架构
仿真软件主要包括三个部分: 三维建模, 运动学建模与求解、界面设计。
(1) 三维建模。该模块实现机械臂三维实体的绘制。按照模块化的思想, 把机械臂自上而下进行分解:六自由度机械臂由六个关节组成, 每个关节由多个形状组成, 每个形状由多个面组成。绘制模型时, 先绘制面, 再由面去组成形状, 然后由多个形状组成关节, 最后由六个关节组成机械臂[1]。
(2) 运动学建模与求解。该模块实现机械臂运动学建模, 提供正逆解算法接口, 实现对机械臂运动的控制。
(3) 界面设计。该模块提供人机交互界面, 在界面上显示机械臂模型, 通过按钮控制机械臂运动, 显示机械臂的运行状态等。
3 三维实体的绘制
采用模块化的思想, 可以使各个模块之间独立, 能够自由地添加和改变模块。面抽象为类Patch, 面组成形状;形状抽象为基类Shape, 由Shape派生出两个子类Rect Prism和Round Prism, 所有的关节都是由这两种基本形状组成;关节抽象为类Joint, 由Joint派生出六个关节子类和末端工具, 关节组成机械臂; 机械臂抽象为类Robot6X。
设计流程如下:
(1) 创建面。把面封装成类Patch, 提供的主要接口有:添加三角形Add Tri () , 平移Translate () , 旋转Rotate () , 绘图Draw () 。将平面和曲面都看作由多个三角形组成, 绘制面时, 依次绘制每个三角形, 由这些三角形来构成平面。绘制三角形时需要知道三个顶点的坐标 (2) 以及每个顶点的法线方向, 因此创建三个数组, 分别用来存储顶点, 顶点的法线和顶点的索引, 通过Add Tri () 接口, 进行顶点信息的添加和存储。创建一个4 * 4 的矩阵作为平移和旋转变换矩阵, 用于存储Translate和Rotate () 接口所进行的变换。调用绘图接口Draw () 时, 使用Open GL的库函数gl Mult Matrixf () 进行平移和旋转, 使用gl Vertex Pointer () 指 (3) 定顶点数组, 使用gl Normal Pointer () 指 (4) 定法线数组, 使用gl Draw Elements () 调用顶点索引数组进行图像的绘制[2]。
(2) 创建形状。把形状抽象成基类Shape, 提供的主要接口有:平移Translate () , 旋转Rotate () , 绘图Draw () 。封装两种基本形状:方形棱柱Rect Prism和圆柱形棱柱Roun Prism。这两种形状都继承于基类Shape, 拥有相同的接口, 在各自的构造函数中进行外观和尺寸参数的设定, 所有关节都由这两种基本形状构成。形状包含多个面, 首先确定组成形状的每个面, 然后去分别创建每个面, 再进行旋转和平移变换将面移动到相应的位置。
(3) 创建关节。把关节抽象成基类Joint, 提供的主要接口有:平移Translate () , 旋转Rotate () , 绘图Draw () , 转动Move () , 获取位置Get Pos () 。六个关节都继承于基类Joint, 拥有相同的接口。关节是由不同的形状组成的, 首先确定组成关节所需的形状, 然后去创建每个形状, 再进行旋转和平移变换将其移动到相应的位置。调用Move () 进行关节转动时, 确定该关节的转动轴并调用Rotate () 存储转动参数。
(4) 创建机械臂。把机械臂封装成类Robot6X, 提供的主要接口有:转动关节Move Joint () , 获取关节位置Get Joint Pos () , 绘图Draw () 。机械臂由六个关节组成, 首先创建六个关节, 然后进行平移和旋转变换, 将其移动到相应的位置。
(5) 关节联动的实现。机械臂上后边关节的空间位置随着前边关节的转动而变化。为了达到关节联动的效果, 后一个关节的局部坐标系必须与前一个关节保持一致。在调用关节的Draw () 接口时, 调用Open GL的库函数gl Push Matrix () 使上一个关节的局部坐标系作为当前坐标系。如果该关节是最后一个关节, 绘图完成后要调用gl Pop Matrix () 来释放栈上的当前坐标系。
下面以小臂关节为例说明单个关节的的绘制过程:
(1) 确定组成关节所需的形状。小臂关节可以分解为三个形状:两个圆柱体和一个长方体。如下图所示:
(2) 创建形状。首先设定好形状的尺寸参数, 然后使用封装好的形状类Rect Prism来创建长方体, 使用Roun Prism来创建圆柱体。
(3) 对形状进行平移和旋转变换。创建形状时, 都是以形状中心为坐标原点来创建的, 因此需要进行坐标变换, 使多个形状能够组成关节。左边的圆柱体不需要进行坐标变换; 中间的立方体没X轴右移; 右边的圆柱体先沿X轴右移, 再绕Y轴旋转90 度。最后组成了图4中所示的小臂关节。
(4) 确定关节的转动轴。小臂关节的转动轴为Z轴, 当调用关节转动接口Move () 时, 关节绕Z轴转动。
4 运动学建模与求解
4.1 运动学建模
运动学模型使用D - H表示法进行建模[3]。机械臂各个关节的坐标系如下图所示:
其中, x0-z0表示基座坐标系, xi-zi (i =1, 2...6) 表示关节1 到关节6 的坐标系, xt-zt代表末端工具坐标系。
在创建机械臂的坐标系时, 采用以下的方法对模型进行简化。
(1) 让参考坐标系xR-zR, 基座坐标系x0-z0和第一关节坐标系x1-z1重合, 这样可以减少矩阵的变换次数, 从而减小计算量。
(2) 其它关节的初始角度设定为0°, 第二关节的初始角度设为-90°。这样在进行前一个关节坐标系到后一个关节坐标系变换时, 始终能够保证X轴变换的三角函数中只包含一个参数θ , 从而可以简化正逆解的求解过程。
(3) 最后三个关节坐标系的原点重合为一点, 这里选定原点为第五关节的转动中心, 设为点W 。这样做使手臂和手腕解耦, 手腕用于机械臂的方向姿态控制, 手臂用于机械臂点W的位置控制。
使用该方法建模后, 所有的关节坐标系都只需经过4 次变换, 就可以转换为下一个关节坐标系。记i-1Ti为从坐标系i -1 到坐标系i的变换, 则有:
D-H参数表如下所示:
相关的参数定义如下:
(1) 为从i1z-到iz沿当前坐标系X轴移动的距离。
(2) i1α-为从i1z-到iz绕当前坐标系X轴旋转的角度。
(3) i1d-为从i1x-到ix沿当前坐标系Z轴移动的距离。
(4) i1θ-为从i1x-到ix绕当前坐标系Z轴旋转的角度, 即关节i转动的角度。
4.2 运动学正逆解
运动学正解根据当前每个关节的角度推算出末端的姿态。由于参考坐标系、基座坐标系和第一关节坐标系是重合的, 根据式 (1) 从参考坐标系依次变换到末端工具坐标系[4]:
运动学逆解根据当前末端的姿态, 求出各个关节的角度。由于篇幅限制, 求解过程在此省略。最终得到8组解, 首先判断每个关节要转动到的角度是否都在可运动范围内, 去除掉不符合条件的解, 再定义性能函数, 选取使性能函数值最小的一组解为最优解。其中θi表示关节i转动的角度, λi是权重。关节转动时, 对位姿影响越大, 则λi越大。
最后把正逆解运算封装成类Kinematics, 提供两个接口:正解运算Forward () , 逆解运算Inverse () 。
5 界面设计
该仿真界面以VS2008 为开发平台, 使用Qt界面库来实现。界面左边是机械臂的三维模型显示, 界面右边是控制控件和状态显示。
(1) 关节控制。可以设定运动速度, 控制单个关节的运动。使用定时器来实现机械臂速度的模拟[5]。机械臂运动时, 启用定时器, 时间间隔设为5 0 m s , 定时时间达到后调用回调函数On Timer () , 根据设定的速度算出关节应转动的角度, 再调用三维模型的运动接口Move Joint () , 转动相应的关节, 从而实现动态运动的效果。
(2) 坐标控制。可以设定运动速度, 使机械臂沿三个坐标轴移动。同样使用定时器来实现速度的模拟。在回调函数On Timer () 中, 根据机械臂此刻的姿态, 使用逆解运算, 求出每个关节应转动的角度, 转动相应的关节, 实现坐标运动。
(3) 状态显示。可以实时地显示每个关节的角度和机械臂的姿态。专门分配一个定时器, 用于刷新当前的状态。在回调函数On Timer () 中, 调用三维模型的获取关节位置接口Get Joint Pos () , 得到当前每个关节的角度, 再使用正解运算, 求出当前末端的姿态, 在对应的控件中刷新显示。
(4) 视角切换。可以使用鼠标拖动机械臂进行视角的切换。在鼠标移动事件mouse Move Event () 中, 如果鼠标左键按下, 则进行视图刷新, 根据鼠标移动的方向, 调用Openg GL的库函数gl Rotate () 使机械臂相应的旋转, 从而实现视角的切换。
(5) 视窗的缩放。可以滚动鼠标滚轮, 进行机械臂视窗的缩放。在滚轮滚动事件wheel Event () 中, 调用Open GL库函数gl Viewport () , 实现视窗的缩放。
6 结束语
本文设计了一套六自由度机械臂三维仿真软件。基于Open GL, 实现了三维模型的模块化创建, 使用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.
[4]闫贺, 吴怀宇, 彭晟远, 郑秀娟.四自由度模块化机械臂运动学建模[J].信息技术, 2011, (10) :1-4.
四自由度机械手的设计 篇4
1 机械手的总体设计
1.1 机械手基本形式的选择
常见的工业机械手根据手臂的动作形态, 按坐标形式大致可分为直角坐标型机械手、圆柱坐标型机械手、球坐标 (极坐标) 型机械手和多关节型机机械手。其中, 由于圆柱坐标型机械手结构简单紧凑, 定位精度较高, 占地面积小, 因此, 本设计采用圆柱坐标。机械手搬运物品如图1所示。在图1中, 机械手的任务是将传送带A上的物品搬运到传送带B.
1.2 机械手的主要部件和运动
根据设计任务, 选定圆柱坐标式机械手的基本方案。为了满足设计要求, 本设计的机械手具有5个自由度, 分别是手抓张合、手部回转、手臂伸缩、手臂回转和手臂升降。
本设计的机械手主要由4个大部件和5个液压缸组成: (1) 手部。采用一个直线液压缸, 通过机构运动实现手抓的张合。 (2) 腕部。采用一个回转液压缸实现手部108°回转。 (3) 臂部。采用直线缸来实现手臂平动1.2 m。 (4) 机身。采用一个直线缸和一个回转缸来实现手臂的升降和回转。
本设计的机械手由以下几个系统组成: (1) 执行系统。工业机器人完成抓取工件由执行系统来完成, 应该用气爪、底座旋转、手臂升降、手臂伸缩等所必需的机械部件来实现各种运动。 (2) 驱动系统。本设计选用机械传动、气压传动和电机驱动来为各部件提供动力, 驱动动力装置是机械手运动的动力。 (3) 控制系统。控制系统发出指令控制驱动系统, 最后由执行系统按照规定的要求进行工作。发生错误或故障时, 控制系统会发出报警信息, 这是机械手的核心。
2 方案确定
该设计中的机械手为四自由度, 其中, 2个为旋转, 2个为平移。在四自由度机械臂实验平台上, 可以实现多个物体从起始位置到不同目标位置的搬运和摆放。
应用精巧的机械结构设计和良好的伺服控制驱动这两项功能来实现设计所需功能, 其中, 抓取和移动是两个最主要的功能。
该设计根据设计要求、工作原理、设计内容和需求来确定机械手, 机器人的旋转运动采用谐波齿轮传动和步进电机驱动来实现。利用另一台步进电机驱动滚珠丝杠旋转, 从而使与滚珠丝杠螺母副固连在一起的手臂进行上下运动。由于本设计中的机械手工作区域较小, 因此, 要利用气缸驱动来实现手臂的伸缩运动。末端夹持器则选用气爪或电磁来做夹持器。气爪的旋转则由与气爪连接的摆动气缸来实现, 或者在末端安装一个可以抓取物体的电磁手爪。
2.1 机械手驱动系统设计
2.1.1 机械手驱动器
机械手驱动系统包括驱动器和传动机构, 它们常与执行器连成一体, 驱动臂、杆和载荷完成指定的运动。常用的驱动器有电机、液压和气动等驱动装置, 其中, 电机驱动器是最常用的驱动方式, 包括直流伺服电机、交流伺服电机和步进电机等。本设计中底座的旋转与手臂升降都采用步进电机作为驱动器, 而手臂的伸缩则选用七缸作为驱动器, 气爪的翻转是通过摆动气缸来驱动的。
2.1.2 机械手传动机构
手臂的升降是通过步进电机连接联轴器与丝杆而实现的。在手臂上安装丝杆螺母副, 从而驱动手臂的升降。手臂的伸缩是通过气缸杆直接连接装有摆动气缸的摆动气缸安装板来实现的。气爪的旋转是通过摆动气缸连接气爪的附件来实现的。底座的旋转是通过步进电机联接谐波齿轮直接驱动转动机座转动来实现的。
2.2 各电动机的选择
进电动机又称脉冲电动机, 是一种把电脉冲信号转换成与脉冲数成正比的角位移或直线位移的执行电机。本文中的机械手系统要求的定位精度较高, 而步进电机对系统位置控制比较准确, 且易于控制, 因此, 本机械手选用的驱动电机都是步进电机。
3 结束语
本文对机械手的整体设计进行了分析, 并对机身的回转机构和升降机构进行设计计算。同时, 还分析了升降立柱不自锁的条件, 这是机身设计中不可缺少的部分。
摘要:随着社会的不断发展, 机器人的应用越来越广泛, 用机器取代人力, 将是社会不断发展的趋势。通过对四自由度机械臂的机械和电气特性进行阐释, 说明了机器人机械手的设计方法。
关键词:四自由度,机械手,驱动系统,结构设计
参考文献
[1]成大先.机械设计手册[M].北京:化学工业出版社, 2001.
[2]张铁, 谢存禧.机器人学[M].广州:华南理工大学出版社, 2004.
[3]陈统坚.机械工程英语[M].北京:机械工业出版社, 1996.
[5]冯辛安.机械制造装配设计[M].北京:机械工业出版社, 2004.
【四自由度机械臂】推荐阅读:
三自由度机械臂05-20
五自由度机械臂05-24
七自由度机械手05-11
多自由度系统机械工程07-04
泼水节里我没有自由-四年级作文08-28
自由度协调11-09
2自由度11-22
学术自由与精神自由07-04
三自由度模型10-15
两自由度系统06-27