3.5机器人常用坐标系及变换方程3.6RPY角和欧拉角(一)RPY角RPY角是描述船舶在海中航行时姿态的一种方法。将船的行驶方向取为Z轴,则绕Z轴的旋转(α角)称为滚动(Roll);把绕Y轴的旋转(β角)称为俯仰(Pitch);而把垂直方向取为X轴,将绕X轴的旋转(γ角)称为偏转(Yaw),如右图1-9所示。操作臂手爪姿态的规定方法类似(如图1-10),故习惯上称为RPY角方法。1-9滚动、俯仰、偏转1-10机器人手的滚动、俯仰、偏转这种描述活动坐标系方位的法则如下:活动系的初始方位与固定坐标系重合,首先将活动系绕固定坐标系的X轴旋转γ角,再绕固定坐标系的Y轴转β角,最后绕固定坐标系的Z轴转α角,如图1-11所示。因为三次旋转都是相对于固定坐标系的,所以得相应的旋转矩阵:(,,)(,)(,)(,)RPYRotzRotyRotx1-11RPY角0000100000010000(,,)00100000000100010001cscssccsRPYsssccoscsins其中:将矩阵相乘得:00(,,)00001cccsssccscscsssccsscRPYscscc它表示绕固定坐标系的三个轴依次旋转得到的旋转矩阵,因此称为绕固定轴X-Y-Z旋转的RPY角法。…..(11)现在来讨论逆问题:从给定的旋转矩阵求出等价的绕固定轴X-Y-Z的转角γ、β、α。00(,,)00001xxxyyyzzznoanoaRPYnoa令:式中有3个未知数,共9个方程,其中6个方程不独立因此可以利用其中的3个方程解出未知数。…..(12)由式(11)、(12)可以看出:如果cosβ≠0,则得到各个角的反正切表达式:22cosxynn22tan2(,)tan2(,)tan2(,)zxyxxyzAnnnAonAaa式中,Atan(y,x)是双变量反正切函数。式(13)中的根式一般有两个解,我们总是取-900≤β≤900中的一个解。……..(13)(二)欧拉角1.绕运动系X-Y-Z转动的欧拉角这种坐标系运动的描述如下:运动坐标系的初始方位与参考系相同,首先使运动系绕Z轴转α角,然后绕运动系的Y轴转β角,最后绕运动系的X轴转γ角,如图1-12所示。这种描述法中的各次转动都是相对于运动坐标系的某轴进行的,而不是相对于固定的参考系。这样的三次转动角称为欧拉角。因此可以得出欧拉变换矩阵1-12绕Z-Y-X转动的欧拉角(,,)(,)(,)(,)000010000001000000100000000100010001EulerRotzRotyRotxcscssccsscsc欧拉变换矩阵:coscsins其中:将矩阵相乘得:00(,,)00001cccsssccscssscsssccssccsEulerscscc这一结果与绕固定轴X-Y-Z旋转的结果完全相同。这是因为绕固定轴旋转的顺序与绕运动轴旋转的顺序相反,且旋转的角度也对应相等时,所得到的变换矩阵是相同的。因此,用Z-Y-X欧拉角与固定轴X-Y-Z转角描述运动坐标系是完全等价的。2.绕Z-Y-Z转动的欧拉角这种坐标系运动的描述如下:最初,坐标系与参考坐标系重合。首先使运动系绕Z轴转动α角,然后绕运动系的Y轴转β角,最后绕运动系的Z轴转γ角,如图3-9所示。绕Z-Y-Z转动的欧拉角可以求得:(,,)(,)(,)(,)00000000010000001000001000010001000100EulerRotzRotyRotzcscscsscscsccccssccssccsscccsscsccssscs00001sc同样,求Z-Y-Z欧拉角的逆解方法如下:如果sinβ≠0,则:令:00(,,)00001xxxyyyzzznoanoaEulernoa22tan2,tan2(,)tan2(,)xyzzzyxAaaaAonAaa(1)Zi坐标轴是沿着i+1关节的运动轴。(2)Xi轴是沿着Zi和Zi-1的公垂线,指向离开Zi-1轴的方向。(3)Yi轴的方向按构成XiYiZi右手直角坐标系来建立。(4)公垂线长度ai是Zi-1和Zi两轴间的最小距离,一段称ai为连杆长度。(5)两公垂线ai-1和ai之间的距离称为连杆距离di。(6)Xi-1轴与Xi之间的夹角为θi,以绕Zi-1轴右旋为正,一般称为连杆的夹角。(7)Zi-1轴与Zi之间的夹角为αi,以绕Xi轴右旋为正,αi称为扭转角。转动连杆参数3.7机器人连杆参数及其D—H坐标变换若两杆以移动副连接,则连杆构件坐标系的建立及参数的规定如图2-2所示。图中各符号所表示的意义仍与图2-1相同。由于对于移动副来说,连杆长度ai已经没有意义,故令其为零,形成的构件坐标系见图2-2。移动连杆参数由图2-1和图2-2可知,四个参数ai,di,θi,αi完全确定了连杆i-1和连杆i之间的相对关系,一般ai,αi为常量,由连杆i的形状确定。对于转动关节,di是常量,θi为变量;对于移动关节θi是常量,di是变量。根据上述模式,我们给所有连杆赋予坐标系,并且可以建立i-1和i坐标系之间的变换关系。应当说明的是,尽管Zi轴通过关节i+1的轴线,但坐标系XiYiZi是固定在连杆i上的,随连杆i运动而一起运动。1.旋转连杆坐标系及其D-H坐标变换2.移动连杆坐标系及其连杆的D-H坐标变换第三节建立机器人机构运动学方程的实例根据上节所述方法,首先建立机器人各杆件的构件坐标系,从而得出齐次变换矩阵Ti。一个T矩阵仅能描述连杆坐标系之间相对平移和旋转的一次齐次变换。T1描述第一个连杆相对于某个坐标系(如机身)的位姿,T2描述第二个连杆(构件)坐标系相对于第一个连杆(构件)坐标系的位姿。若有一个六连杆机器人,机器人手的末端(即连杆坐标系6)相对于固定坐标系的变换可表示为60123456TTTTTTT一个六连杆机器人有六个自由度(每个连杆有一个自由度)。机器人最后一个构件(手部)有三个自由度用来确定其位置,三个自由度用来确定其方向。对如图2-3所示的一个机器人手部,我们可以把描述其位置和方向的坐标系原点定在两个手指的中点,用一个向量p描述这个原点。用三个向量n、o、a描述机器人的姿态。图2-3手抓坐标系当手部处于初始位置和姿态时,向量Z指向手接近物体的方向。其单位向量a称为接近向量。向量Y的单位向量o称为方位向量。最后一个单位向量称为正交向量n。上述向量构成右手矢量积,它们用向量的矢量积来表示:n=oxa这样,变换T60可用下列矩阵表示:600001xxxxyyyyzzzznoapnoapTnoap根据前面两式即可建立机器人的位姿方程。坐标变换图如图2-4所示。图2-4机器人手的坐标变换图601234560001xxxxyyyyzzzznoapnoapTTTTTTTnoap下面给出两个机器人手运动方程的求解实例[例1]PUMA560六自由度机械手由转动坐标臂(RRR)和欧拉腕组成,其结构示意图参看图2-5。关节变量为θ1,θ2,…,θ6,若己知PUMA560六自由度机械手θ1=900,θ2=00,θ3=900,θ4=00,θ5=00,θ6=00,a2=431.8mm,d2=149.09mm,d4=433.07mm,d6=56.25mm。求Ti(i=l,2,3,4,5,6)及T60的表达式及当θi取给定值时末杆的位姿。图2-5PUMA-560机械手坐标系[解](1)设定机器人各杆的坐标系按D—H坐标系建立各杆的坐标系如图2-5所示。将o0z0设置在关节1的转轴上,o0和o1重合;o1z1o2z2分别沿关节2、3的转轴,o1z1//o2z2。z3与z2轴的交点为o3;o2和o3重合,d3=0,o3x3y3z3并非置于臂的终端。o3z3是腕的第一个转轴。z4与z3的交点为o4,设在臀的终端,是腕结构的中心,o4z4是腕的第二个转轴;z5与z4的交点为o5。o4和o5重合,o5z5是腕的第三个转轴。o6x6y6z6为终端坐标系,该坐标系考虑了工具长度d6。y6、x6、z6的单位向量分别记为n、o、a。(2)确定连杆的D-H参数和关节变量连杆变量αadcosαsinα1θ1-90°000-12θ20°a2d2103θ390°00014θ4-90°0d40-15θ590°00016θ60°0d610(3)求两杆间的位姿矩阵Ai根据表2-1所示的D-H参数和公式(1)可求得Ai1122223311222233123244556445545640000000000,,,0100001010000010001000100000000,,010010000010001cscsaccsscscasscAAAdcscscscscAAAd666600000010000sscdcosiicsiniis其中:(4)求末杆位姿矩阵cos()ijijcsin()ijijs令:可得56565655656565645666000001cccssdsscsscdcTAAsc45646456464564545646456464564563456565656540001cccssccssccsdcsscccsscscsssdssTAAAscsscdcd111111116236311110001xxxxyyyyzzzznoapnoapTATnoap1345646356134564635614564613456463561345646356145646134535134535145134563(),(),,(),(),,,,,(xyzxyzxyzxnccccsssscnscccsscscnscccsoccccscsscoscccsccssosccscaccsscascsccasspccsds5641345635641456),(),yzcddpscsdccddpssd式中:22222222612345622220001xxxxyyyyzzzznoapnoapTAAAAAnoap22345646235622345646235624564622345646235622345646235624564622345235223452352452(),(),,(),(),,,,,xyzxyzxyzxnccccsssssnscccsscssnscccsoccccscsssoscccsscssoscsccaccsscascsccassp234562356422223456235642224562(),(),yzccsdscddacpscsdccddaspssdd…