机械臂运动学_第1页
机械臂运动学_第2页
机械臂运动学_第3页
机械臂运动学_第4页
机械臂运动学_第5页
已阅读5页,还剩30页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、机械臂运动学基础1、机械臂的运动学模型机械臂运动学研究的是机械臂运动,而不考虑产生运动的力。运动学研究机械臂的位置,速度和加速度。机械臂的运动学的研究涉及到的几何和基于时间的内容,特别是各个关节彼此之间的关系以及随时间变化规律。典型的机械臂由一些串行连接的关节和连杆组成。每个关节具有一个自由度,平移或旋转。对于具有n个关节的机械臂,关节的编号从1到n,有n +1个连杆,编号从0到n。连杆0是机械臂的基础,一般是固定的,连杆n上带有末端执行器。关节i连接连杆i和连杆i-1。一个连杆可以被视为一个刚体,确定与它相邻的两个关节的坐标轴之间的相对位置。一个连杆可以用两个参数描述,连杆长度和连杆扭转,这

2、两个量定义了与它相关的两个坐标轴在空间的相对位置。而第一连杆和最后一个连杆的参数没有意义,一般选择为0。一个关节用两个参数描述,一是连杆的偏移,是指从一个连杆到下一个连杆沿的关节轴线的距离。二是关节角度,指一个关节相对于下一个关节轴的旋转角度。为了便于描述的每一个关节的位置,我们在每一个关节设置一个坐标系,对于一个关节链, Denavit和Hartenberg提出了一种用矩阵表示各个关节之间关系的系统方法。对于转动关节i,规定它的转动平行于坐标轴z i-1,坐标轴x i-1对准从z i-1到z i的法线方向,如果z i-1与z i相交,则x i-1取z i1z i的方向。连杆,关节参数概括如下

3、:连杆长度a i沿着x i轴从z i-1和z i轴之间的距离;连杆扭转i从z i-1轴到zi轴相对x i-1轴夹角;连杆偏移d i从坐标系i-1的原点沿着z i-1轴到x i轴的距离;关节角度i x i-1轴和x i轴之间关于z i-1轴的夹角。对于一个转动关节i 是关节变量,d i 是常数。而移动关节d i 是可变的,i 是恒定的。为了统一,表示为ii iq d =转动关节移动关节运用Denavit-Hartenberg (DH 方法,可以将相邻的两个坐标系之间的变换关系表示为一个4x4的齐次变换矩阵1cos sin cos sin sin cos sin cos cos cos sin s

4、in 0sin cos 01i i i i i i i i i ii ii i i i iii a a A d -=上式表示出了坐标系i 相对于坐标系i-1的关系。即011i i i i T T A -=其中0i T 表示坐标系i 相对于世界坐标系0的位置与姿态,简称位姿。 2、正向和反向运动学对于一个n-轴刚性连接的机械臂,正向运动学的解给出的是最后一个连杆坐标系的位置和姿态。重复利用上式,得到01112(n n n T A A A K q -=机械臂末端位姿在笛卡尔坐标系中有6个自由度,3个平移,3个旋转。所以,一般来说具有6个自由度的机械臂可以使末端实现任意的位姿。总的机械臂变换0n T

5、 一般简写为T n ,对6个自由度的机械臂简写为T 6。对于任意的机械臂,无论其它有多少个关节,具有什么结构,正向运动学解都是可以得到的。在机械臂的路径规划中,用到的是反向运动学的解10(n q K T -=,它给出了特定的末端位姿对应的机械臂的关节角度。一般来说,反向运动学的解不是唯一的,对具有某种结构的机械臂,封闭解可能不存在。对于6自由度的机器人而言,运动学逆解非常复杂,一般没有封闭解。只有在某些特殊情况下才可能得到封闭解。不过,大多数工业机器人都满足封闭解的两个充分条件之一(Pieper 准则(1三个相邻关节轴交于一点(2三个相邻关节轴相互平行如果机械臂多于6个关节,称关节为冗余的,这

6、时解是欠定的。如果对于机械臂某个特别的位姿,解不存在,称这个位姿为奇异位姿。机械臂的奇异性可能是由于机械臂中某些坐标轴的重合,或位置不能达到引起的。机械臂的奇异位姿分为两类:(1边界奇异位姿,当机械臂的关节全部展开或折起时,使得末端处于操作空间的边界或边界附近,雅克比矩阵奇异,机械臂的运动受到物理结构的约束,这时机械臂的奇异位姿称为边界奇异位姿。(2内部奇异位姿,两个或两个以上的关节轴线重合时,机械臂各个关节的运动相互抵消,不产生操作运动,这时机械臂的奇异位姿称为内部奇异位姿。机械臂运动学逆解的方法可以分为两类:封闭解和数值解、在进行逆解时总是力求得到封闭解。因为封闭解的计算速度快,效率高,便

7、于实时控制。而数值解法不具有这些特点。机械臂运动学的封闭逆解可通过两种途径得到:代数法和几何法。一般而言,非零连杆参数越多,到达某一目标的方式也越多,即运动学逆解的数目也越多。在从多重解中选择解时,应根据具体情况,在避免碰撞的前提下通常按“最短行程”准则来选择。同时还应当兼顾“多移动小关节,少移动大关节”的原则。n个自由度的机械臂的末端位姿由n个关节变量所决定,这n个关节变量统称为n维关节矢量,记为q 。所有的关节矢量构成的空间称为关节空间。机械臂末端的位姿用6个变量描述,3个平移(x,y,z和3个旋转(x , y , z ,记x=(x,y,z, x , y , z ,x 是机械臂末端在基坐标

8、空间中的坐标,所有的矢量x 构成的空间称为操作空间或作业定向空间。工作空间是操作臂的末端能够到达的空间范围,即末端能够到达的目标点集合。值得指出的是,工作空间应该严格地区分为两类:(1 灵活(工作空间 指机械臂末端能够以任意方位到达的目标点集合。因此,在灵活空间的每个点上,手爪的指向可任意规定。(2 可达(工作空间 指机械臂末端至少在一个方位上能够到达的目标点集合。 机械臂各关节驱动器的位置组成的矢量称为驱动矢量s ,由这些矢量构成的空间称为驱动空间。3、Jacobian 矩阵机械臂的Jacobian 矩阵表示机械臂的操作空间与关节空间之间速度的线性映射关系,对于一个n 轴的机械臂,机械臂末端

9、在基坐标系中的速度是xJq = 其中x 是6个元素的向量。对于6个关节机械臂Jacobian 矩阵是方阵,如果它是可逆的,则可以由机械臂的末端速度求出各个关节的速度。Jacobian 矩阵在机械臂的奇异位姿上是不可逆的。在实际应用中,当机械臂的末端位置接近奇异位置时,Jacobian 矩阵是病态的,可能导致关节速度不能正确地得到。上式解决的是正速度问题,即已知q 和q求末端执行器的速度x 。对于逆速度解问题,由上驱动空间 关节空间 工作空间正向运动学运动学逆解式可以得到速度逆解公式为1qJ x -= ,注意到此时需要求雅可比矩阵的逆,由线性方程组理论知上式对任意的x,q 都有解的必要条件是雅可

10、比矩阵的秩rank(J=6,这意味着机械臂的自由度数n 6。这也说明了具有冗余自由度的机械臂,在末端位姿固定的条件下,能使关节在一个较大的关节空间的子空间中运动,有效地避开障碍或奇异位姿,并把关节位移限制在允许范围内,从而具有更大的运动灵活性。雅可比矩阵可以看成是从关节空间到操作空间运动速度的传动比,同时也可用来表示两空间之间力的传递关系。对于冗余自由度机械臂,其雅可比矩阵是长方矩阵,因J 满秩且方程个数少于未知数个数,所以有无穷多个解,这时,一般是求其中的最小范数解,或采用加权最小范数解也就是说使T qDq 最小的解,其中D 是对称正定加权矩阵。此时的解是使机械臂在能量消耗最小的情况下的解。

11、这时,逆速度问题便转为:求q满足1q J x -= 且使12TL q Dq = 最小。实际上等同于求性能指标L 在约束条件1qJ x -= 下的极值。应用Lagrange 乘子法,以上极值为题的解是111(T T qD J JD J x -= ,当D =I 时,雅可比矩阵是1(T T J J JJ +-=,称为雅可比矩阵的伪逆。 下面通过一个两自由度的平面机械臂说明雅可比矩阵的特性,根据右图中的几何关系容易求得s s sin(,sin(x l l c c y l l s s =+=+=+=+两边微分后写成矩阵形式121212x x d dx d dy yy =即 11212=+简写成 dx=J

12、d ,式中J 就称为机械臂的雅可比(Jacobian 矩阵,它由函数x ,y 的偏微分组成,反映了关节微小位移d 与机械臂末端微小运动dx 之间的关系。 将两边同除以dt dt 得到:dx/dt=Jd /dt,因此机械臂的雅可比矩阵也可以看做是操作空间中的速度与关节空间中速度的线性变换。dx/dt 称为末端在操作空间中的广义速度,简称操作速度,d /dt 为关节速度。可以看出,雅可比矩阵的每一列表示其它关节不动而某一关节以单位速度运动产生的末端速度。=+可以看出,J 阵的值随末端位置的不同而不同,即1和2的改变会导致J 的变化。对于关节空间的某些位姿,机械臂的雅可比矩阵的秩减少,这些位姿称为机

13、械臂的奇异位姿。上例机械臂雅可比矩阵的行列式为:122det(sin(J l l =,当2=0或2=180时,机械臂的雅可比行列式为0,矩阵的秩为1,这时机械臂处于奇异位姿。机械臂在操作空间的自由度将减少。如果机械臂的雅可比J 是满秩的方阵,相应的关节速度即可求出,即1J x -= ,上例平面2R 机械臂的逆雅可比矩阵21221211l c l s Jl c l c l s l s l l s -=-,显然,当2趋于0(或180时,机械臂接近奇异位姿,相应的关节速度将趋于无穷大。为了补偿机器人末端执行器位姿与目标物体之间的误差,以及解决两个不同坐标系之间的微位移关系问题,需要讨论机器人连杆在作

14、微小运动时的位姿变化。假设一变换的元素是某个变量的函数,对该变换的微分就是该变换矩阵各元素对该变量的偏导数所组成的变换矩阵乘以该变量的微分。例如给定变换T 为:11124344t t t t t t t t T t t t t t t t t =若它的元素是变量x 的函数,则变换T 的微分为:下面讨论机械臂的微分运动,设机械臂某一连杆相对于基坐标系的位姿为T ,经过微运动后该连杆相对基坐标系的位姿变为T+dT ,若这个微运动是相对于基坐标系(静系进行的(左乘,总可以用微小的平移和旋转来表示,即(,(,x y z T dT Trans d d d Rot k d T +=所以有44(,(,x y

15、 z dT Trans d d d Rot k d I T =-根据齐次变换的对称性,若微运动是相对某个连杆坐标系i (动系进行的(右乘,则T+dT 可以表示为(,(,x y z T dT T Trans d d d Rot k d +=所以有44(,(,x y z dT T Trans d d d Rot k d I =-令44(,(,x y z Trans d d d Rot k d I =-为微分算子,则相对基系有dT=0T ,相对i 系有dT=T i 。这里的下标不同是由于微运动相对不同坐标系进行的。在机械臂运动学中微分变换分为微分平移和微分旋转两类。微分平移变换与一般平移变换一样,其

16、变换矩阵为:100010(,0010001dx dy Trans dx dy dz dz =由于微分旋转时0 ,所以sin d ,cos 1将它们代入旋转变换通式中得微分旋转表达式:1010(,1001z y zx y x k d k d k d k d Rot k d k d k d -=-于是得到微分算子44(,(,x y z Trans d d d Rot k d I =-,即00000z y zx y x k d k d dx k d k d dy k d k d dz -=-微分旋转与有限旋转相比,有一些特殊的性质,下面分别说明。(1微分旋转的无序性,当0 时,有sin d ,cos

17、 1.若令x=d x ,y=d y ,z=d z ,则绕三个坐标轴的微分旋转矩阵分别为1000010(,0100001xRot x x x -=1000100(,0100001y Rot y y y =- 100100(,00100001zz Rot z z -=略去2次项,得到1x y xx Rot x x Rot y y y x y x -=- 10100010010(,(,101000010001x y y yxx Rot y y Rot x x y x y x -=-两者结果相同,可见这里左乘与右乘等效。结论:微分旋转其结果与转动次序无关,这是与有限转动(一般旋转的一个重要区别。(2微

18、分旋转的可加性,考虑两个微分旋转复合后的效果1010(,(,(,100001z y z x Rot x x Rot y y Rot z z y x -=-若Rot (x ,y ,z 和Rot (x ,y,z 表示两个不同的微分旋转,则两次连续转动的结果为:1(01(0(,(,(100001z z y y z z x x Rot x y z Rot x y z y y x x -+-+=-+上式表明:任意两个微分旋转的结果为绕每个轴转动的元素的代数和,即微分旋转是可加的。 由等效转轴和等效转角与(,(,(,Rot x x Rot y y Rot z z 等效,有(,(,(,(,Rot k d R

19、ot x x Rot y y Rot z z =1001z y zx y x k d k d zy k d k d z x k d k d y x -=-所以有kxd =x , kyd =y , kzd =z ,将它们代入得00000z y x zxy y xz d d d -=-可见,微分变换由两个部分组成微分转动矢量,d 微分平移矢量,合称为微分运动矢量,可表示为(,Tx y z x y z D d d d =例:已知一个坐标系00110100501000001A =,相对固定系的微分平移矢量d=1 0 0.5,微分旋转矢量=0 0.1 0 ,求微分变换dA 。0000000z y x z

20、xy y xz d d d -=-000010000dA A =-下面讨论两坐标系之间的微分关系,设第一个坐标系为i 系,第二个坐标系为j 系不失一般性,假定j 系就是固定的0系。001xx x x y y y y i zz z z n o a p n o a p T n o a p = 因为 0000000z y dx z x dy y x dz -=-,0000i ii iii i i ii z y dx zx dy y x dz -=-所以00i i i T T =,010i i i T T -=,整理得到(ix ix iy iy iz iz d n p d n d o p d o d

21、a p d a =+=+=+= 000000(0000000xy z x yz i x y z x y z i x y z xyz i x y z i x y z i xyz i n n n p n p n p n dx dx o o o p o p o p o dy dy a a a p a p a p a dz dz n n n x x o o o y y a a a z z = 对于任何三维矢量 p =p x , p y , p z ,其反对称矩阵s(p 定义为:(00z y zx y xp p s p p p p p -=-记x x x i yy y zzz n o a R n o a

22、 n o a =上式简写成00000(0TT i i i i Ti i d R R s p R -=类似地,任意两坐标系A和B之间广义速度的坐标变换为:(0B B A B A A A BO B B A A R RS P V V R -=,(0A AB A B B B AO AA B B R RS P V V R -= 例:已知一个坐标系00110100501000001A =,相对固定系的微分平移矢量d=1 0 0.5,微分旋转矢量=0 0.1 0 ,求A 系中等价的微分平移矢量d A 和微分旋转矢量A 。 解:将d=1 0 0.5 和=0 0.1 0 代入(ix ix iy iy iz iz

23、 d n p d n d o p d o d a p d a =+=+=+= 得到0TA A d =。4、机械臂轨迹规划机械臂的轨迹规划可以在关节空间也可以在笛卡尔空间中进行,或者说机械臂轨迹规划是指在关节空间或者笛卡尔空间中研究机械臂轨迹生成方法。简言之,机械臂轨迹规划是运动学逆解的实际应用,它描述了机械臂在多维空间中的运动路线 。 在知道末端位姿的前提下,通过运动学逆解得到各个关节在相应时刻的转动量或者平移量,合理的规划指的是规划出的 角位移曲线、角速度曲线以及角加速度曲线,可以有效地减少了机械臂在运动过程中的冲击和振动,使机械臂的工作寿命得以延长。械臂可以分为点到点作业(Point-to

24、-Point Motion 和连续路径作业(Continuous-Path Motion 。点到点的运动指的是机械臂在运动过程中,只要求在某些点上有准确的位置和姿态,相邻的点不做要求。连续运动要求机械臂严格的沿特定的曲线运动。机械臂的关节角位移变化率比较小,能够有效地防止了机械臂工作时的振动和冲击。机械臂关节角速度和角加速度变化均平顺连续,从而有效避免了机械部件的磨损,能够保证整个机械臂系统的长期、稳定的运行,满足机械臂的工作要求。5、robotics工具箱中的相关函数link 建立一个连杆对象,例如对于本次竞赛的机械臂,根据连杆参数得到L1=link(pi/2 0 0 120 0 0;L2=

25、link(pi/2 0 0 0 0 0;L3=link(-pi/2 0 0 140.8 0 pi;L4=link(-pi/2 71.8 0 0 0 pi/2 ;L5=link(+pi/2 71.8 0 0 0 pi;L6=link(-pi/2 0 0 0 0 pi/2;L7=link(0 0 0 129.6 0 0;robot 建立一个机械臂对象R= robot(Lnoname (7 axis, RRRRRRRgrav = 0.00 0.00 9.81 standard D&H parametersalpha A theta D R/P1.5708 0 120 R (std1.5708. 0

26、0 R (std-1.5708 0 140.8 R (std-1.5708 71.8 0 R (std1.5708 71.8 0 R (std-1.5708 0 0 R (std0 0 129.6 R (stddrivebot 用滑块控制的机械臂图形drivebot(R,ones(1,7*piplot 机械臂的图形显示plot(R,pi/2 pi/2 0 0 0 0 0fkine 串联机械臂正向运动学计算tr =fkine (ROBOT, QROBOT表示机械臂对象,Q机械臂关节坐标值。tr =fkine (R, 0 0 0 pi/2 0 0 0tr =ikine串联机械臂逆向运动学计算q =

27、 ikine(ROBOT, Tq = ikine(ROBOT, T, Qq = ikine(ROBOT, T, Q, M输入变量ROBOT表示机械臂对象,T机械臂末端变换矩阵。输出变量q机械臂关节的角度(单位是弧度,一般来说逆运动学的解不是唯一的,取决于初始值Q,缺省时是0向量。如果机械臂的自由度(DOF小于6,由于解空间的维数大于机械臂的自由度,这时需要第4个输入量M来确定笛卡尔坐标(手腕对应的坐标系中的哪些量在求解中被忽略。M中有6个元素,分别表示沿着x,y,z方向的平移和相对于x轴,y轴, z轴的旋转,值是0(忽略或1。非零元素的个数应该等于机械臂的自由度。例如,对典型的有5个自由度的机

28、械臂,一般是忽略相对手腕坐标的转动,这时M = 1 1 1 1 1 0。另外一种用法是qt = ikine(ROBOT, TGqt = ikine (ROBOT, TG, Qqt = ikine (ROBOT, TG, Q, M输入变量ROBOT表示机械臂对象,TG是4x4xN机械臂末端变换矩阵。输出变量qt是一组(N个TG对应的关节坐标。一行对应一个输入变换,每一步的初始值取上一步的值。求解使用机械臂Jacobian矩阵的伪逆,这是数值求解方法,对于特定机械臂逆运动学解(如果可能应该尽量使用解析解。但是这种方法可以得到奇异点上的解,零空间中的关节角度可以任取。q=ikine(R,trq =注

29、意:对于机械臂末端的一个位置与姿态,逆运动学计算不是唯一的,验证tr=fkine(R,qtr =transl 计算平移变换tr= transl (X, Y, Z返回机械臂末端坐标X, Y, Z对应的齐次表换矩阵tr =0 1.0000 0 0X Y Z = transl(T返回齐次表换表示中的平移值,作为一个3元素的列向量xyz=transl(trxyz =ctraj 计算工作空间中两点T0,T1之间的轨迹tc= ctraj(T0, T1, Ntc = ctraj(T0, T1, R返回从T0到T1笛卡尔坐标系的轨迹TC N表示轨迹中的点数。在第1中情况下,轨迹中的点在T0到T1中等距离分配。

30、在第2中情况下,向量R给出轨迹中每个点的距离,R 中的元素取值为0 1。一个轨迹是4x4xN 矩阵,最后一个下标表示点索引。旋转插值使用四元球形线性插值。tr0=fkine(R,0 0 0 0 0 0 0tr0 =tr1=fkine(R,pi/4 pi/6 0 pi/3 0 0 0tr1 =tc(:,:,1 =tc(:,:,2 =tc(:,:,3 =transl(tcans =jtraj 计算关节中两点Q0,Q1之间的轨迹Q QD QDD = jtraj(Q0, Q1, NQ QD QDD = jtraj (Q0, Q1, N, QD0, QD1Q QD QDD = jtraj (Q0, Q1

31、, TQ QD QDD = jtraj (Q0, Q1, T, QD0, QD1轨迹中的点数是N,或者是一个时间向量T。插值使用7次多项式,边界速度由QD0, QD1指定,缺省时边界速度和加速度为0。q0=pi pi pi pi pi pi pi;q1=pi pi/2 0 0 0 pi/2 0;tr0=fkine(R,pi pi pi pi pi pi pi;tr1=fkine(R,pi pi/2 0 0 0 pi/2 0;QT,QD,QDD=jtraj(q0,q1,30;figuresubplot(2,2,1,plot(R,QTsubplot(2,2,2,plot(QT,grid on,le

32、gend(q1,q2,q3,q4,q5,q6,q7,Location, NorthWestsubplot(2,2,3,plot(QD,grid onsubplot(2,2,4,plot(QDD,grid on%注意:其中有一些曲线重合jacob0 计算机械臂在基坐标系中Jacobian 矩阵J = jacob0(ROBOT, Qtr2jac 计算机械臂在基坐标系中Jacobian 矩阵J = TR2JAC(Tdiff2tr 微分表示转换为齐次变换tr = diff2tr(D返回表示微分平移与旋转的齐次变换矩阵,矩阵中包含一个反对称的旋转子矩阵。tr2diff 转换为齐次变换转换为微分表示D =

33、tr2diff(TD = tr2diff(T1, T2第一种形式将齐次表换矩阵表示转换为6-元素向量微分表示。第二种形式返回6-元素向量,表示从T1 到T2的在基坐标系中需要的微分移动。J = jacob0(R, q1% Jacobian and differential motion demonstration% A differential motion can be represented by a 6-element vector with elements% dx dy dz drx dry drz% where the first 3 elements are a differen

34、tial translation, and the last 3% are a differential rotation. When dealing with infinitisimal rotations,% the order becomes unimportant. The differential motion could be written% in terms of compounded transforms% transl(dx,dy,dz * trotx(drx * troty(dry * trotz(drz% but a more direct approach is to

35、 use the function diff2tr(D = .1 .2 0 -.2 .1 .1diff2tr(DT=fkine(R,q1% then the differential motion in the second frame would be given byDT = tr2jac(T * D;DQ= pinv(J * DT;vel = 1 0 0 0 0 0; % translational motion in the X directionqvel = pinv(J * vel;ans =%这是计算工作空间轨迹和求逆解的另外一种方法。但是,如果Jacobian矩阵奇异时%会失效。如果机械臂的自由度大于6,即是冗余的,采用Jacobian矩阵伪逆计算,或% 对Jacobian矩阵进行奇异值分解。附录 rpy 角与euler 角 (1rpy 角rpy 角是描述船舶航行时的姿态的一种方法,将船的行驶方向作为Z 轴,则绕Z 轴旋转称为滚动(Roll 角,将绕Y 轴(与海面平行方向的旋转称为俯仰(Pitch 角,取X 轴与海面垂直方向,将绕X 轴的旋转称为偏转(Yaw 角。机械臂末端的定义类似,故习惯上称为rpy 角。描述运动坐标系的规则是:首先

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论