第三章工业机器人运动学-2主要内容数学基础——齐次坐标变换机器人运动学方程的建立(正运动学)机器人逆运动学分析二、运动学方程的建立(运动学正问题)2.1引言2.8T6的说明2.2姿态描述2.9各种A矩阵的说明2.3欧拉角2.10根据A矩阵来确定T62.4摇摆、俯仰和偏转2.11斯坦福机械手的运动方程2.5位置的确定2.12肘机械手的运动方程2.6圆柱坐标2.13小结2.7球坐标2.1引言(Introduction)本章,我们采用齐次变换来描述在各种坐标系中机械手的位置与方向。首先介绍各种正交坐标系的齐次变换。然后介绍在非正交关节坐标系中描述机械手末端的齐次变换。注意,对任何数目关节的各种机械手均可以这样进行。描述一个连杆与下一个连杆之间关系的齐次变换称A矩阵。A矩阵是描述连杆坐标系之间的相对平移和旋转的齐次变换。连续变换的若干A矩阵的积称为T矩阵,对于一个六连杆(六自由度)机械手有T6=A1A2A3A4A5A6(2.1)六连杆的机械手有六个自由度,其中三个自由度用来确定位置,三个自由度用来确定方向。T6表示机械手在基坐标中的位置与方向。则变换矩阵T6有下列元素nxoxaxpxnyoyaypyT6=nzozazpz(2.2)0001如图2.1所示,机器人的末端执行器(手爪)的姿态(方向)由n、o、a三个旋转矢量描述,其坐标位置由平移矢量p描述,这就构成了式(2.2)中的变换矩阵T。由于n、o、a三个旋转矢量是正交矢量,所以有n=o×a图2.1末端执行器的描述2.2姿态描述(SpecificationofOrientation)对式(2.2)中16个元素一一赋值就可确定T6。假定机械手可以到达要求的位置,而单位旋转矢量o和a正交,即o·o=1(2.3)a·a=1(2.4)o·a=0(2.5)a形成单位向量aa(2.6)|a|构成与o和a正交的nno×a(2.7)在o和a形成的平面上旋转o,使得o与n和a正交oa×n(2.8)单位向量o是oo(2.9)|o|根据数学基础给出的一般性的旋转矩阵Rot(k,θ),它把机械手末端的姿态规定为绕k轴旋转θ角。2.3欧拉角(EulerAngles)姿态变更常用绕x,y或z轴的一系列旋转来确定。欧拉角描述方法是:先绕z轴旋转ø,然后绕新的y(即y/)轴旋转θ,最后绕更新的z(z//)轴旋转ψ(见图2.2)欧拉变换Euler(ø,θ,ψ)可以通过连乘三个旋转矩阵来求得Euler(ø,θ,ψ)=Rot(z,ø)Rot(y,θ)Rot(z,ψ)(2.10)在一系列旋转中,旋转的次序是重要的。应注意,旋转序列如果按相反的顺序进行,则是绕基坐标中的轴旋转:绕z轴旋转ψ,接着绕y轴旋转θ,最后再一次绕z轴旋转ø,结果如图2.3所示,它与图2.2是一致的。xx’x’’x’’’yy’’y’θøθøψψψθz’’’z’’z’zy’’’图2.2欧拉角ø0xx’x’’x’’’yy’’y’θøθøψψψθz’’’z’’z’zy’’’图2.3基于基坐标的欧拉角ø0øθ2.4摇摆、俯仰和偏转(Roll,PitchandYaw)摇摆、俯仰和偏转为另一种旋转。如图2.4所示,就像水中航行的一条小船一样,绕着它前进的方向(z轴)旋转ø称为摇摆,绕着它的横向中轴(y轴)旋转θ称为俯仰,绕着它甲板的垂直向上的方向(x轴)旋转ψ称为偏转。借助于这种旋转来描述机械手的末端执行器如图3.5所示。规定旋转的次序为RPY(ø,θ,ψ)=Rot(z,ø)Rot(y,θ)Rot(x,ψ)(2.12)即,绕x轴旋转ψ,接着绕y轴旋转θ,最后绕z轴旋转ø,这个变换如下cosθ0sinθ0100001000cosψ–sinψ0RPY(ø,θ,ψ)=Rot(z,ø)–sinθ0cosθ00sinψcosψ0(2.13)00010001cosø–sinø00cosθsinθsinψsinθcosψ0sinøcosø000cosψ–sinψ0RPY(ø,θ,ψ)=0010-sinθcosθsinψcosθcosψ0(2.14)00010001图2.4摇摆、俯仰和偏转角图2.5机械手的末端执行器的摇摆、俯仰和偏转RPY(ø,θ,ψ)=cosøcosθcosøsinθsinψ–sinøcosψcosøsinθcosψ+sinøsinψ0sinøcosθsinøsinθsinψ+cosøcosψsinøsinθcosψ–cosøsinψ0-sinθcosθsinψcosθcosψ00001(2.15)2.5位置的确定(SpecificationofPosition)一旦方向被确定之后,用一个相应的p向量的位移变换可得到机器人末端执行器在基坐标中的位置:100px010pyT6=001pz(2.16)0001旋转变换矩阵2.6圆柱坐标(CylindricalCoordinates)如图2.6所示,在圆柱坐标中确定机械手的位置是沿x轴平移r,接着绕z轴旋转α,最后沿着z轴平移z。Cyl(z,α,r)=Trans(0,0,z)Rot(z,α)Trans(r,0,0)cosα-sinα00100rsinαcosα000100Cyl(z,α,r)=Trans(0,0,z)0010001000010001(2.17)1000cosα-sinα0rcosα0100sinαcosα0rsinαCyl(z,α,r)=001z001000010001(2.18)zaCzyxBAoαrn图2.6圆柱坐标注意:圆柱坐标只能绕z轴旋转cosα-sinα0rcosαsinαcosα0rsinαCyl(z,α,r)=001z(2.19)0001如用一个绕z轴旋转-α的变换矩阵右乘式(2.19),结果如下cosα-sinα0rcosαcos(-α)-sin(-α)00sinαcosα0rsinαsin(-α)cos(-α)00Cyl(z,α,r)=001z0000(2.20)00110001cosα-sinα0rcosαcosαsinα00sinαcosα0rsinα-sinαcosα00Cyl(z,α,r)=001z0000(2.21)00010001100rcosα010rsinαCyl(z,α,r)=001z(2.22)0001上式表明平移矢量未变,旋转矩阵为单位阵,此时末端坐标的姿态未变,而只是改变了它的空间位置。2.7球坐标(SphericalCoordinates)如图2.7所示,用球坐标来确定位置向量的方法是:沿着z轴平移γ,然后绕y轴旋转β,最后绕z轴旋转α。Sph(α,β,γ)=Rot(z,α)Rot(y,β)Trans(0,0,γ)(2.23)cosβ0sinβ0100001001100Sph(α,β,γ)=Rot(z,α)-sinβ0cosβ0001γ00010001(2.24)αaonzyx图2.7球坐标γβcosα-sinα00cosβ0sinβrsinβsinαcosα000100Sph(α,β,γ)=0010-sinβ0cosβrcosβ(2.25)00010001cosαcosβ-sinαcosαsinβγcosαsinβsinαcosβcosαsinαsinβγsinαsinβSph(α,β,γ)=-sinβ0cosβγcosβ(2.26)0001同样,如果不希望改变末端坐标的姿态,而只是改变其空间位置,我们可以用Rot(y,-β)和Rot(z,-α)右乘式(2.26)Sph(α,β,γ)=Rot(z,α)Rot(y,β)Trans(0,0,γ)Rot(y,-β)Rot(z,-α)(2.27)100γcosαsinβ010γsinαsinβSph(α,β,γ)=001γcosβ(2.28)00012.7T6的确定(SpecificationofT6)T6可以用旋转和平移的方法来确定。T6=[平移][旋转](2.29)表2.1各种平移与旋转的表达式[Translation]Eqn[Rotation]Eqnpx,py,pzoxoyozaxayazRot(k,θ)2.32Cyl(z,α,r)2.22Euler(ø,θ,ψ)2.11Sph(α,β,γ)2.26RPY(ø,θ,ψ)2.12我们已经研究过的各种平移与旋转的式子,总结在表2.1中。如果我们使用Cyl和Sph的非旋转的形式,那么矩阵积(2.29)仅仅是一个平移变换。2.9各种A矩阵的确定(SpecificationofmatricesA)现在考虑方程(2.1)右边各A矩阵的确定。串联杆型机械手是由一系列通过连杆与其活动关节连接在一起所组成。如图2.8所示,任何一个连杆都可以用两个量来描述:一个是公共垂线距离an,另一个是与an垂直的平面上两个轴的夹角αn,习惯上称an为连杆长度,αn称为连杆的扭转角。图2.8连杆的长度与扭转角如图2.9所示,在每个关节轴上有两个连杆与之相连,即关节轴有两个公垂线与之垂直,每一个连杆一个。两个相连的连杆的相对位置用dn和θn确定,dn是沿着n关节轴两个垂线的距离,θn是在垂直这个关节轴的平面上两个被测垂线之间的夹角,dn和θn分别称作连杆之间的距离及夹角。图2.9连杆参数xn-1为了描述连杆之间的关系,我们对每个连杆赋一个坐标系。转动关节:关节变量为θn。连杆n的坐标原点设在关节n和关节n+1轴之间的公共垂线与关节n+1轴的交点上。在关节轴相交的情况下(无公垂线),这个原点就在两个关节轴的相交点上(an=0)。如果两个关节轴平行(有无数条公垂线),则原点的选择要使下一个连杆的关节距离为0(dn=0),连杆n的z轴与n+1关节轴在一条直线上。x轴与任何存在的公共垂线成一条直线,并且沿着这条垂线从n关节指向n+1关节。在相交关节的情况下,x轴的方向平行或者逆平行zn-1×zn的向量叉积,应该注意,这个条件对于沿着关节n和n+1之间垂线的x轴同样满足。当xn-1和xn平行,且有相同的指向时,则对于第n个转动关节θn=0。连杆本身的参数连杆长度an连杆两个轴的公垂线距离(x方向)连杆扭转角αn连杆两个轴的夹角(x轴的扭转角)连杆之间的参数连杆之间的距离dn相连两连杆公垂线距离(z方向平移距)连杆之间的夹角θn相连两连杆公垂线的夹角(z轴旋转角)表2.2连杆参数棱形关节:关节变量为dn。关节轴的方向就是关节的运动方向。与转动关节不同,轴的运动方向被确定了,但在空间的位置并没有确定(见图2.10)。对于棱形关节,连杆长度an没有意义,所以被设置为0。棱形关节坐标的z轴(zn)与下一个连杆的轴在一条直线上,x轴(xn)平行或逆平行棱形关节轴的方向(zn-1)与zn的叉积。对于棱形关节,当dn=0时,定义为0位置(即坐标原点)。因此棱形关节坐标原点与上一个关节(n-1)坐标原点重合,上一个关节的z轴(zn-1)与棱形关节的轴向相同,其关节长度an-1为上一个关节的轴线与zn-1的公垂线长度,xn-1轴向为公垂线向下一个关节延伸的方向。图2.10棱型关节的连杆参数an-1根据上述模式用下列旋转和位移我们可以建立相邻的n-1和n坐标系之间的关系:绕zn-1旋转一个角度θn沿zn-1位移一个距离dn沿着被旋转的xn-1即xn位移an绕xn旋转的扭转角为αn这四个齐次变换的积为A矩阵,即An=Rot(z,θ)Trans(0,0,d)Trans(a,0,0)Rot(x,α)(2.30)cosθ-sinθ00100a1000sinθcosθ0001000cosα-sinα0An=0010001d0sinαcosα0(2.31)000100010001cosθ-sinθcosαsinθsinαacosθsinθcosθcosα-cosθsinαasinθAn=0sinαcosαd(2.32)0001对于棱形关节,an=0,则式(2.32)A矩阵简化为cosθ-sinθcosαsinθsinα0sinθcosθcosα-cosθsinα0An=0sinαcosαd(2.33)0001一旦给机械手各连杆坐标系都赋了值,各种固定的连杆参数可以确定:对于后面是旋转关节的连杆参数为d,a和α,对