资源描述:
《机器人课件第3章 运动学方程.ppt》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库。
1、3.1引言(Introduction)本章,我们采用齐次变换来描述在各种坐标系中机械手的位置与方向。首先介绍各种正交坐标系的齐次变换。然后介绍在非正交关节坐标系中描述机械手末端的齐次变换。注意,对任何数目关节的各种机械手均可以这样进行。描述一个连杆与下一个连杆之间关系的齐次变换称A矩阵。A矩阵是描述连杆坐标系之间的相对平移和旋转的齐次变换。连续变换的若干A矩阵的积称为T矩阵,对于一个六连杆(六自由度)机械手有T6=A1A2A3A4A5A6(3.1)六连杆的机械手有六个自由度,其中三个自由度用来确定位置,三个自由度用来
2、确定方向。T6表示机械手在基坐标中的位置与方向。则变换矩阵T6有下列元素nxoxaxpxnyoyaypyT6=nzozazpz(3.2)0001如图3.1所示,机器人的末端执行器(手爪)的姿态(方向)由n、o、a三个旋转矢量描述,其坐标位置由平移矢量p描述,这就构成了式(3.2)中的变换矩阵T。由于n、o、a三个旋转矢量是正交矢量,所以有n=o×a图3.1末端执行器的描述3.2姿态描述(SpecificationofOrientation)对式(3.2)中16个元素一一赋值就可确定T6。假定机械手可以到达要求的位置,
3、而单位旋转矢量o和a正交,即o·o=1(3.3)a·a=1 (3.4)o·a=0(3.5)a形成单位向量aa(3.6)
4、a
5、构成与o和a正交的nno×a (3.7)在o和a形成的平面上旋转o,使得o与n和a正交oa×n(3.8)单位向量o是oo(3.9)
6、o
7、根据第二章给出的一般性的旋转矩阵Rot(k,θ),它把机械手末端的姿态规定为绕k轴旋转θ角。3.3欧拉角(EulerAngles)姿态变更常用绕x,y或z轴的一系列旋转来确定。欧拉角描述方法是:先绕z轴旋转ø,然后绕新的y(即y/)轴旋转θ,最后绕更新
8、的z(z//)轴旋转ψ(见图3.2)欧拉变换Euler(ø,θ,ψ)可以通过连乘三个旋转矩阵来求得Euler(ø,θ,ψ)=Rot(z,ø)Rot(y,θ)Rot(z,ψ)(3.10)在一系列旋转中,旋转的次序是重要的。应注意,旋转序列如果按相反的顺序进行,则是绕基坐标中的轴旋转:绕z轴旋转ψ,接着绕y轴旋转θ,最后再一次绕z轴旋转ø,结果如图3.3所示,它与图3.2是一致的。xx’x’’x’’’yy’’y’θøθøψψψθz’’’z’’z’zy’’’图3.2欧拉角ø0xx’x’’x’’’yy’’y’θøθøψψψθ
9、z’’’z’’z’zy’’’图3.3基于基坐标的欧拉角ø0øθ3.4摇摆、俯仰和偏转(Roll,PitchandYaw)摇摆、俯仰和偏转为另一种旋转。如图3.4所示,就像水中航行的一条小船一样,绕着它前进的方向(z轴)旋转ø称为摇摆,绕着它的横向中轴(y轴)旋转θ称为俯仰,绕着它甲板的垂直向上的方向(x轴)旋转ψ称为偏转。借助于这种旋转来描述机械手的末端执行器如图3.5所示。规定旋转的次序为RPY(ø,θ,ψ)=Rot(z,ø)Rot(y,θ)Rot(x,ψ)(3.12)即,绕x轴旋转ψ,接着绕y轴旋转θ,最后绕z轴
10、旋转ø,这个变换如下cosθ0sinθ0100001000cosψ–sinψ0RPY(ø,θ,ψ)=Rot(z,ø)–sinθ0cosθ00sinψcosψ0(3.13)00010001cosø–sinø00cosθsinθsinψsinθcosψ0sinøcosø000cosψ–sinψ0RPY(ø,θ,ψ)=0010-sinθcosθsinψcosθcosψ0(3.14)00010001图3.4摇摆、俯仰和偏转角图3.5机械手的末端执行器的摇摆、俯仰和偏转RPY(ø,θ,ψ)=cosøcosθcosøsinθsi
11、nψ–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ψ00 0 01(3.15)3.5位置的确定(SpecificationofPosition)一旦方向被确定之后,用一个相应的p向量的位移变换可得到机器人末端执行器在基坐标中的位置:100px010pyT6=001pz(3.16)0001旋转变换矩阵3.6
12、圆柱坐标(CylindricalCoordinates)如图3.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)0