1、1 第二章第二章 机器人的空间描述和坐标变换机器人的空间描述和坐标变换2.1 位姿和坐标系描述位姿和坐标系描述2.2平移和旋转平移和旋转坐标坐标系映射系映射2.3平移和旋转齐次坐标变换平移和旋转齐次坐标变换2.4物体的变换和变换方程物体的变换和变换方程2.5通用旋转变换通用旋转变换2zyxApppp2-1图 位置表示2.1位置方位表示与坐标系描述位置方位表示与坐标系描述 n1.位置描述位置描述 矢量矢量 Ap 表示箭头指向点的位置矢量,其表示箭头指向点的位置矢量,其中右上角标中右上角标“A”表示该点是用表示该点是用A坐标系描述坐标系描述的。的。(2-2)n2.方位描述方位描述 坐标系坐标系B与
2、机械手末端工具固连,工具的姿态与机械手末端工具固连,工具的姿态可以由坐标系可以由坐标系B的方向来描述。而坐标系的方向来描述。而坐标系B的方的方向可以用沿三个坐标轴的单位矢量来表示向可以用沿三个坐标轴的单位矢量来表示333231232221131211rrrrrrrrrRBABABAABZYX图2-2方位表示(2-1)旋转矩阵旋转矩阵 描述坐标系描述坐标系B的姿态,矢量的姿态,矢量 描述坐标系描述坐标系B的原点位的原点位置。置。3BoAABRBp3.位姿描述位姿描述 固连坐标系把刚体位姿描述问题转化为坐标系的描述问题。图固连坐标系把刚体位姿描述问题转化为坐标系的描述问题。图2-3中坐标系中坐标系
3、B可以在固定坐标系可以在固定坐标系A中描述为中描述为(2-3)RABBoAP41.平移坐标变换平移坐标变换图图2-3平移变换平移变换 BP为坐标系为坐标系B描述的某一空间位描述的某一空间位置,我们也可以用置,我们也可以用AP(坐标系(坐标系A)描)描述同一空间位置。因为两个坐标系具有述同一空间位置。因为两个坐标系具有相同的姿态,同一个点在不同坐标系下相同的姿态,同一个点在不同坐标系下的描述满足以下关系的描述满足以下关系ABABoPPP (2-4)2.2平移和旋转坐标系映平移和旋转坐标系映射射 旋转坐标变换的任务是已知坐标系旋转坐标变换的任务是已知坐标系B描述的描述的一个点的位置矢量一个点的位置
4、矢量BP和和旋转矩阵旋转矩阵 ,求在坐标,求在坐标系系A下描述同一个点的位置矢量下描述同一个点的位置矢量AP。52.旋转坐标变旋转坐标变换换RABABT BxAABT ByAABT BzApppXPYPZP (2-5)将(将(2-5)式写成矩阵形式得:)式写成矩阵形式得:PPZYXPBABBTABTABTABAR(2-6)图2-4旋转变换 式(式(2-6)即为我们要求的旋转变换关系,该变换是通过两个坐)即为我们要求的旋转变换关系,该变换是通过两个坐标系之间的旋转变换实现的。标系之间的旋转变换实现的。63.复合变换复合变换图图2-5复合变换复合变换 如果两个坐标系之间即存在平移如果两个坐标系之间
5、即存在平移又存在旋转,如何计算同一个空间点又存在旋转,如何计算同一个空间点在两个坐标系下描述的变换关系?在两个坐标系下描述的变换关系?为了得到位置矢量为了得到位置矢量BP和和AP之之间的变换关系,我们建立一个中间的变换关系,我们建立一个中间坐标系间坐标系C。PPPBABBCBCRRACAABACoBBoRPPPPP (2-7)(2-8)为了得到位置矢量为了得到位置矢量BP和和AP之间的变换关系,只需坐标系之间的变换关系,只需坐标系B 在坐标系下在坐标系下A的描述。的描述。是是4 4矩阵,称为齐次坐标变换矩阵。可以理解为坐标系矩阵,称为齐次坐标变换矩阵。可以理解为坐标系B在固定坐在固定坐标系标系
6、A中的描述。中的描述。72.3齐次坐标变换 坐标变换(坐标变换(2-8)可以写成以下形式)可以写成以下形式1101PPPBBoAABAR (2-9)将位置矢量用将位置矢量用4 1矢量表示,增加矢量表示,增加1维的数值恒为维的数值恒为1,我们仍然用原,我们仍然用原来的符号表示来的符号表示4维位置矢量并采用以下符号表示坐标变换矩阵维位置矢量并采用以下符号表示坐标变换矩阵10BoAABABRTP(2-10)PPBABAT(2-11)TAB 齐次坐标变换的主要作用是表达简洁,同时在表示多个坐标变换齐次坐标变换的主要作用是表达简洁,同时在表示多个坐标变换的时候比较方便。的时候比较方便。1.齐次变换齐次变
7、换82.齐次变换算子齐次变换算子 在机器人学中还经常用到下面的变换,如图在机器人学中还经常用到下面的变换,如图2-8,矢量,矢量AP1沿矢量沿矢量AQ平移至的平移至的AQ终点,得一矢量终点,得一矢量AP2。已知。已知AP1和和AQ求求AP2的过程称之为的过程称之为平移变换,与前面不同,这里只涉及单一坐标系。平移变换,与前面不同,这里只涉及单一坐标系。图图2-6平移算子平移算子QPPAAA12 (2-12)可以采用齐次变换矩阵表示平移变换可以采用齐次变换矩阵表示平移变换12)(PQPAAATrans(2-13))(QATrans称为平移算子,其表达式为称为平移算子,其表达式为1)(0QQAAIT
8、rans (2-14)其中其中I是是3 3单位矩阵。例如若单位矩阵。例如若AQ=ai+bj+ck,其中其中i、j和和k分别表示坐标系分别表示坐标系A三个坐标轴的三个坐标轴的单位矢量,则平移算子表示为单位矢量,则平移算子表示为1000100010001),(cbacbaTrans 9同样,我们可以研究矢量在同一坐标系下的旋转同样,我们可以研究矢量在同一坐标系下的旋转变换,如图变换,如图2-9,AP1绕绕Z轴转轴转 角得到角得到AP2。则。则图图2-7旋转算子旋转算子12),(PPAAzRot(2-20)Rot(z,)称为旋转算子,其表达式为称为旋转算子,其表达式为100001000000),(c
9、ssczRot (2-21)同理,可以得到绕同理,可以得到绕X轴和轴和Y轴的旋转算子轴的旋转算子100000000001),(csscxRot100000001000),(csscyRot 10 定义了平移算子和旋转算子以后,可以将它们复合实现复杂的映射定义了平移算子和旋转算子以后,可以将它们复合实现复杂的映射关系。变换算子与前面介绍的坐标变换矩阵形式完全相同,因为所有描关系。变换算子与前面介绍的坐标变换矩阵形式完全相同,因为所有描述均在同一坐标系下,所以不需上下标描述(坐标系)。述均在同一坐标系下,所以不需上下标描述(坐标系)。21AAPT P (2-23)TABABRBoAPPPBABAT
10、21AAPT P齐次坐标变换总结:表示坐标系表示坐标系B在坐标系在坐标系A下的描述,下的描述,的各列是坐标系的各列是坐标系B三个坐标轴方向的单位矢量,三个坐标轴方向的单位矢量,而表示坐标系而表示坐标系B原点位置原点位置。2.它是不同坐标系间的坐标变换。如它是不同坐标系间的坐标变换。如3 3.它是同一坐标系内的变换算子。它是同一坐标系内的变换算子。齐次坐标变换是复杂空间变换的基础,必须认真理解和掌握。具体应齐次坐标变换是复杂空间变换的基础,必须认真理解和掌握。具体应用的关键是理解它代表的是上面三种含义的哪一种,而不是简单的套用用的关键是理解它代表的是上面三种含义的哪一种,而不是简单的套用公式!公
11、式!1.它是坐标系的描述。它是坐标系的描述。如图如图2-10表示的三个坐标系,已知坐标系表示的三个坐标系,已知坐标系A、B和和C之间的变换矩阵之间的变换矩阵 和和 位置位置矢量矢量CP,求在坐标系,求在坐标系A下表示同一个点的下表示同一个点的位置矢量位置矢量AP。113.复合变换复合变换 复合变换主要有两种应用形式,一种是建立了多个坐标系描述机器人复合变换主要有两种应用形式,一种是建立了多个坐标系描述机器人的位姿,任务是确定不同坐标系下对同一个量描述之间的关系;另一种是的位姿,任务是确定不同坐标系下对同一个量描述之间的关系;另一种是一个空间点在同一个坐标系内顺序经过多次平移或旋转变换,任务是确
12、定一个空间点在同一个坐标系内顺序经过多次平移或旋转变换,任务是确定多次变换后点的位置。多次变换后点的位置。图图2-10 复合坐标变换复合坐标变换 TABTBCPPCBCBTPPPCBCABBABATTT (2-24)(2-25)TTTBCABAC 根据坐标变换的定义得根据坐标变换的定义得(2-26)12(a)ZY顺序旋转顺序旋转(b)Y Z顺序旋转顺序旋转图图2-11旋转顺序对旋转顺序对变换结果影响变换结果影响例例2-3已知点已知点u=7i+3j+2k,先对它进行绕,先对它进行绕Z轴旋转轴旋转90o的变换得点的变换得点v,再对点,再对点v进行绕进行绕Y轴旋转轴旋转90o的变换得的变换得点点w,
13、求,求v和和w。127312371000010000010010)90,(uvozRot137212731000000100100100)90,(vwoyRot如果只关心最后的变换结果,可以按下式计算如果只关心最后的变换结果,可以按下式计算(,90)(,90)(,90)oooRot yRot yRot zwvu001072100037010023000111 计算结果与前面的相同,称计算结果与前面的相同,称R=Rot(y,90o)Rot(z,90o)为复合旋转算子。为复合旋转算子。13注:固定坐标系变换,矩阵乘的顺序注:固定坐标系变换,矩阵乘的顺序“自右向左自右向左”如果改变旋转顺序,先对它进
14、行绕如果改变旋转顺序,先对它进行绕y轴旋转轴旋转90o,再绕,再绕z轴旋转轴旋转90o,结,结果如图果如图2-11b所示。比较图所示。比较图2-11a和图和图2-11b可以发现最后的结果并不相同,可以发现最后的结果并不相同,即旋转顺序影响变换结果。即旋转顺序影响变换结果。从数学角度解释就是矩阵乘法不满足交换率,从数学角度解释就是矩阵乘法不满足交换率,Rot(y,90o)Rot(z,90o)Rot(z,90o)Rot(y,90o)。和和 ,求求 和和给定给定 计算计算142.4物体的变换和变换方程物体的变换和变换方程TABTBA已知坐标系已知坐标系B相对坐标系相对坐标系A的描述的描述求求坐标系坐
15、标系A相对坐标系相对坐标系B的描述的描述一种直接的方法是矩阵求逆,另一种方法是根据变换矩阵的特点直一种直接的方法是矩阵求逆,另一种方法是根据变换矩阵的特点直接得出逆变换。后一种方法更简单方便。接得出逆变换。后一种方法更简单方便。即齐次变换的求逆问题。即齐次变换的求逆问题。TABTBA等价为:已知等价为:已知RABBoAPRBAAoBP 是坐标系是坐标系B的原点在的原点在坐标系坐标系B中的描述,显然为零矢量。中的描述,显然为零矢量。由由(2-28)式得)式得15根据前面的讨论,旋转矩阵关系为根据前面的讨论,旋转矩阵关系为TABABBARRR1 (2-27)将坐标变换用于坐标系将坐标变换用于坐标系
16、B的原点得的原点得AoBBoABABoBRPPP(2-28)BoBPBBAAT AAoABoBBoRR PPP(2-29)逆变换可以直接用正变换的旋转矩阵和平移矩阵表示逆变换可以直接用正变换的旋转矩阵和平移矩阵表示10BoATABTABBARRTP(2-30)16A沿沿xA平移平移3个单位,再绕新的个单位,再绕新的zA 轴轴转转180o得得 B18018001001801800010001001ABcsRsc因此因此1003010000100001ABTB沿沿zB平移平移2个单位,然后绕个单位,然后绕yB轴转轴转90o再绕新再绕新xB轴转轴转150o得得 C312233112222312290
17、0901000 0 1 100001001501500 1 0 009009001501501 0 0 0100BCcsRcsscsc 图图2-12楔形块角点坐标楔形块角点坐标系系例例2-4,如图如图2-12给出的楔形块角点坐标系,求齐次坐标变换给出的楔形块角点坐标系,求齐次坐标变换,ABABCCTTT,33112222331122221003000301000000001010021002000100010001AABCBCTT T 因此因此A沿沿xA和和zA平移平移3和和2,然后绕,然后绕yA轴转轴转90,再绕新,再绕新xA轴转轴转-30得得C也可以按以下方法计算也可以按以下方法计算312
18、23311222231229 009 010001003 03 09 009 003 03 00011000010001000100ACcsRcsscsc 17 事实上,对于像本例题这种简单的情况,可以直接利用齐次坐标变换事实上,对于像本例题这种简单的情况,可以直接利用齐次坐标变换的定义得到变换矩阵。即直接写出坐标系的定义得到变换矩阵。即直接写出坐标系C坐标轴矢量在坐标系坐标轴矢量在坐标系A下表下表示得旋转矩阵,平移矢量为坐标系示得旋转矩阵,平移矢量为坐标系C的原点在坐标系的原点在坐标系A下的矢量表示。下的矢量表示。18变换方程变换方程 图图2-13表示了多个坐标系的关系图,可以用两种不表示了
19、多个坐标系的关系图,可以用两种不同的方式得到世界坐标系同的方式得到世界坐标系U下坐标系下坐标系D的描述。的描述。TTTADUAUDTTTTCDBCUBUD (2-31)(2-32)由(由(2-31)和()和(2-32)可以得到变换方程)可以得到变换方程图图2-13坐标变换序列坐标变换序列 可以利用变换方程可以利用变换方程(2-33)求解其中任意一个未知变换。例如,假设求解其中任意一个未知变换。例如,假设除除 以外其余变换均为已知,则该未知变换可以用下式计算以外其余变换均为已知,则该未知变换可以用下式计算TUB11UUACBBADDCTT T TT在坐标系的图形表示方法中,从一个坐标系原点指向另
20、一个坐标系原点在坐标系的图形表示方法中,从一个坐标系原点指向另一个坐标系原点的箭头表示坐标系的描述关系。的箭头表示坐标系的描述关系。TTTBCUBUC(2-35)1UUDDCAACTT TT(2-36)19例例2-5假设已知图机械臂末端工具坐标系假设已知图机械臂末端工具坐标系T相对基座相对基座坐标系坐标系B的描述,还已知工作台坐标系的描述,还已知工作台坐标系S相对基座相对基座坐标系坐标系B的描述,并且已知螺栓坐标系的描述,并且已知螺栓坐标系G相对工作相对工作台坐标系台坐标系S的描述。计算螺栓相对机械臂工具坐标的描述。计算螺栓相对机械臂工具坐标系的位姿。系的位姿。解:添加从工具坐标系解:添加从工
21、具坐标系T原点到螺栓坐标系原点到螺栓坐标系G原点原点的箭头,可以得到如下变换方程的箭头,可以得到如下变换方程TTTTTGBTSGBS (2-37)螺栓相对机械臂工具坐标系的位姿描述为螺栓相对机械臂工具坐标系的位姿描述为TTTTSGBSBTTG1 (2-38)20 xyzffffijk1.绕任意轴旋转变换绕任意轴旋转变换下面讨论绕任意轴下面讨论绕任意轴 f 旋转矩阵,轴在坐标系旋转矩阵,轴在坐标系A下表示为下表示为以以 f 为为 Z 轴建立与轴建立与A固连的坐标系固连的坐标系C用用n、o和和f表示坐标系表示坐标系C三个坐标三个坐标轴的单位矢量,在坐标系轴的单位矢量,在坐标系A下表示为下表示为图图
22、2-18绕任意轴旋转变换绕任意轴旋转变换 xyzxyzxyznnnooofffnijkoijkfijkxxxACyyyzzznofRnofnof 因为固连的坐标系因为固连的坐标系C与与A固连,所以绕固连,所以绕 f旋转旋转等价于绕等价于绕ZC旋转。为此我们先将旋转。为此我们先将Ap在坐标系在坐标系C下下表示,再绕表示,再绕ZC旋转旋转 角,最后再把旋转得到的矢量角,最后再把旋转得到的矢量用坐标系用坐标系A表示。表示。CATACAACRRppp1(,)(,)ATACCCRot zRot zRpppAp1=Rot(f,)Ap2.52.5通用旋转变换通用旋转变换21再将再将Cp1在坐标系在坐标系A下
23、表示下表示11(,)AAATAACCCCRR Rot zRppp0(,)(,)0001xyzxxxAATCCyyyxyzzzzxyzxxyyzzxxxyyyxxyyzzzzzxyznnnnofcsRotR Rot zRnofscooonoffffn co sn co sn co snofnnofn so cn so cn so cnofffff111222333oanoanoa因此因此123xxxxxxxxxxxyyxxyxyxyxzzxxzxzxznn n cn o sn o so o cf fnn n cn o sn o so o cf fnn n cn o sn o so o cf f其
24、中一个矢量其中一个矢量上式中的上式中的n和和o各分量是未知的,需要用各分量是未知的,需要用 f 的各分量表示的各分量表示 22根据坐标系的右手规则知根据坐标系的右手规则知n o=f,叉积可以按下式计算,叉积可以按下式计算()()()xyzyzzyzxxzxyyxxyznnnn on on on on on ooooijkn oijk(),(),()yzzyxxyxzyxyyxzn on ofn on ofn on of再根据旋转矩阵的正交性可以得再根据旋转矩阵的正交性可以得 1,0 xxxxxxxyxyxyn no of fn no of f(,),1xxxyzxzyxyzyyyzxxzyyz
25、xzzf f vcf f vf sf f vf sRotf f vf sf f vcf f vf svcf f vf sf f vf sf f vc f123xxxxxxxxxxxyyxxyxyxyxzzxxzxzxznn n cn o sn o so o cf fnn n cn o sn o so o cf fnn n cn o sn o so o cf fxxxACyyyzzznofRnofnof将上式对角线相加得将上式对角线相加得 r11+r22+r33=1+2c c=(r11+r22+r33-1)/2 232.等效转轴与转角等效转轴与转角 前面讨论了给定转轴和转角可以得到旋转矩阵,那么
26、是否任意给定的旋转矩前面讨论了给定转轴和转角可以得到旋转矩阵,那么是否任意给定的旋转矩阵都可以确定等效的转轴阵都可以确定等效的转轴f和转角和转角 哪?也就是两个坐标原点重合的坐标系可以通哪?也就是两个坐标原点重合的坐标系可以通过绕固定轴转一定的角度来实现从一个坐标系转换到另一个坐标系。过绕固定轴转一定的角度来实现从一个坐标系转换到另一个坐标系。111213212223313233xxxyzxzyACxyzyyyzxxzyyzxzzf f vcf f vf sf f vf srrrRrrrf f vf sf f vcf f vf srrrf f vf sf f vf sf f vc将关于对角线对
27、称的两个元素分别相减得将关于对角线对称的两个元素分别相减得r32-r23=2fxs,r13-r31=2fys,r21-r12=2fzs 将上式平方求和得将上式平方求和得:4s2=(r32-r23)2+(r13-r31)2+(r21-r12)2 假设限定绕矢量假设限定绕矢量 f 正向旋转,且正向旋转,且0 180o,则,则222322312312112()()()/2srrrrrr可得可得 的值的值 =atan(s/c)24322313312112()/2()/2()/2xyzfrrsfrrsfrrs可得矢量可得矢量 f 分量的值分量的值 在应用中需要注意的是,当转角在应用中需要注意的是,当转角 的值接近的值接近0o或或180o时,方向矢量时,方向矢量 f 各分量的值计算出现问题,属于奇异情况。各分量的值计算出现问题,属于奇异情况。