定。最后需要知道零件上钻孔的位置,所以PTE也是已知的。此时,唯一未知的变换就是RTH(机器人手相对于机器人基座的变换)。因此,必须找出机器人的关节变量(机器人旋转关节的角度以及滑动关节的连杆长度),以便将末端执行器定位在要钻孔的位置上。可见,必须要计算出这个变换,它指出机器人需要完成的工作。后面将用所求出的变换来求解机器人关节的角度和连杆的长度。
不能像在代数方程中那样来计算这个矩阵,即不能简单的用方程的右边除以方程的左边,而应该用合适的矩阵的逆并通过左乘或右乘来将它们从左边去调。因此有:
(UTR)?1(UTRRTHHTE)(HTE)?1?(UTR)?1(UTPPTE)(HTE)?1 (2.25)
由于(UTR)?1(UTR)?1和(HTE)(HTE)?1?1,式(2.25)的左边可简化为RTH,于是得:
RTH?UTR?1UTPPTEHTE?1 (2.26)
EH?1T(T)HE该方程的正确性可以通过认为与相同来加以检验。因此,该方程可重写为:
RTH?UTR?1UTPPTEHTE?1?RTUUTPPTEETH?RTH (2.27)
显然为了对机器人运动学进行分析,需要能够计算变换矩阵的逆。
我们来看看关于x轴的简单旋转矩阵的求逆计算情况。关于x轴的旋转矩阵是:
00??1??x)??0?C??S (2.28) Ro(t,????0S?C???必须采用一下的步骤来计算矩阵的逆:
?计算矩阵的行列式; ?将矩阵转置;
?将转置矩阵的每个元素用它的子行列式(伴随矩阵)代替; ?用转换后的矩阵除以行列式。 将上面的步骤用到该旋转,得到:
??1(C2??S2?)?0?1
00??1??xT)??0?C?S Ro(t,????0?S?C???现在计算每一个子行列式(伴随矩阵)。例如,元素2,2的子行列式是C??0?C?,元素1,1的子行列式C2??S2??1。可以注意到,这里的每一个元素的子行列式与其本身相同,因此有:
Rot(x,?T)mior(?,T )n?Rotx由于原旋转矩阵的行列式为1,因此用Rot(x,?)Tminor矩阵除以行列式仍得出相同的结果。因此,关于x轴的旋转矩阵的逆的行列式与它的转置矩阵相同,即:
Rot(x,?)?1?Rot(x,?)T (2.29)
当然,如果采用附录A中提到的第二种方法也能得到同样的结果。具有这种特征的矩阵称为酉
矩阵,也就是说所有的旋转矩阵都是酉矩阵。因此,计算旋转矩阵的逆就是将该矩阵转置。可以证明,关于y轴和z轴的旋转矩阵同样也是酉矩阵。
应注意,只有旋转矩阵才是酉矩阵。如果一个矩阵不是一个简单的旋转矩阵,那么它也许就不是
酉矩阵。
以上结论只对简单的不表示位置的3×3旋转矩阵成立。对一个齐次的4×4变换矩阵而言,它的求逆可以将矩阵分为两部分。矩阵的旋转部分仍是酉矩阵,只需简单的转置;矩阵的位置部分是向量
P分别与n,o,a向量点积的负值,其结果为:
?nx?nF??y?nz??0?nx??oF??x?ax??0oxoyoz0nyoyay0axayaz0nzozaz0px?py?? (2.30) pz??1??P?n???P?o?? ?P?a?1??如上所示,矩阵的旋转部分是简单的转置,位置的部分由点乘的负值代替,而最后一行(比例因
子)则不受影响。这样做对于计算变换矩阵的逆是很有帮助的,而直接计算4×4矩阵的逆是一个很冗长的过程。
例2.10 计算表示Rot(x,40?)?1的矩阵
解:绕x轴旋转40°的矩阵为:
00?1?00.766?0.643Rot(x,40?)???00.6430.766?00?0其矩阵的逆是:
0?0?? 0??1?000??1?00.7660.6430?? Rot(x,40?)?1???0?0.6430.7660???0001?? 需注意的是,由于矩阵的位置向量为0,它与n,o,a向量的点积也为零。 例2.11 计算如下变换矩阵的逆。
?0.5?0.866T???0??0解:
根据先前的计算,变换矩阵的逆是:
00.8663?0?52??105??001?
?0.50.8660?(3?0.5?2?0.866?5?0)??0?01?(3?0?2?0?5?1)?1?T???0.866?0.50?(3?0.866?2??0.5?5?0)???0001??
0.866?0?0.5?3.2?0?01?5????0.866?0.5?0?5981.??0001? ?可以证明TT是单位阵。
例2.12 一个具有六个自由度的机器人的第五个连杆上装有照相机,照相机观察物体并测定它相对于
照相机坐标系的位置,然后根据以下数据来确定末端执行器要到达物体所必须完成的运动。
?15Tcam?00?1?0?10????100??000?0?1???0??0001010003??0?1?100?? 5TH???005???1??00010000100010?0?0? ?4??1?0?0? ?3??1camTobj2??1?02?? HTE???04???1??0解:
参照式(2.24),可以写出一个与它类似的方程,它将不同的变换和坐标系联系在一起。
RT5?5TH?HTE?ETobj?RT5?5Tcam?camTobj
由于方程两边都有RT5,所以可以将它消去。除了ETobj之外所有其他矩阵都是已知的,所以:
ETobj?HTE?1?5TH?1?5Tcam?camTobj?ETH?HT5?5Tcam?camTobj0100100000?00??1?4??01? 3??0?10???5??0??1??0001010002?2??4??1?
00??1???1005?TH?1???01??3??01? ?0将矩阵及矩阵的逆代入前面的方程,得:
?1?0???0??0??1?0???0??0010000??0??100???1?3??0??01??01000?1?0HTE?1???0??0ETobj00??00?1?0?1000???1?4???100??01??000ETobj00?2?101??0?1?4??001?
2.7 机器人的正逆运动学
假设有一个构型已知的机器人,即它的所有连杆长度和关节角度都是已知的,那么计算机器人手的位姿就称为正运动学分析。换言之,如果已知所有机器人关节变量,用正运动学方程就能计算任一瞬间机器人的位姿。然而,如果想要将机器人的手放在一个期望的位姿,就必须知道机器人的每一个连杆的长度和关节的角度,才能将手定位在所期望的位姿,这就叫做逆运动学分析,也就是说,这里
不是把已知的机器人变量代入正向运动学方程中,而是要设法找到这些方程的逆,从而求得所需的关节变量,使机器人放置在期望的位姿。事实上,逆运动学方程更为重要,机器人的控制器将用这些方程来计算关节值,并以此来运行机器人到达期望的位姿。下面首先推导机器人的正运动学方程,然后利用这些方程来计算逆运动学方程。
对正运动学,必须推导出一组与机器人特定构型(将构件组合在一起构成机器人的方法)有关的方程,以使得将有关的关节和连杆变量代入这些方程就能计算出机器人的位姿,然后可用这些方程推出逆运动学方程。
根据第一章中的相关内容,要确定一个刚体在空间的位姿,须在物体上固连一个坐标系,然后描述该坐标系的原点位置和它三个轴的姿态,总共需要六个自由度或六条信息来完整地定义该物体的位姿。同理,如果要确定或找到机器人手在空间的位姿,也必须在机器人手上固连一个坐标系并确定机器人手坐标系的位姿,这正是机器人正运动学方程所要完成的任务。换言之,根据机器人连杆和关节的构型配置,可用一组特定的方程来建立机器人手的坐标系和参考坐标系之间的联系。图2.17所示为机器人手的坐标系、参考坐标系以及它们的相对位姿,两个坐标系之间的关系与机器人的构型有关。当然,机器人可能有许多不同的构型,后面将会看到将如何根据机器人的构型来推导出与这两个坐标系相关的方程。
为使过程简化,可分别分析位置和姿态问题,首先推导出位置方程,然后再推导出姿态方程,再将两者结合在一起而形成一组完整的方程。最后,将看到关于Denavit-Hartenberg表示法的应用,该方法可用于对任何机器人构型建模。
图2.17 机器人的手坐标系相对于参考坐标系
2.7.1 位置的正逆运动学方程
对于机器人的定位,可以通过相对于任何惯用坐标系的运动来实现。比如,基于直角坐标系对空间的一个点定位,这意味着有三个关于x,y,z轴的线性运动,此外,如果用球坐标来实现,就意味着需要有一个线性运动和两个旋转运动。常见的情况有:
(a)笛卡尔(台架,直角)坐标 (b)圆柱坐标 (c)球坐标
(d)链式(拟人或全旋转)坐标 2.7.1.1 笛卡尔(台架,直角)坐标
这种情况下有三个沿x,y,z轴的线性运动,这一类型的机器人所有的驱动机构都是线性的(比如液压活塞或线性动力丝杠),这时机器人手的定位是通过三个线性关节分别沿三个轴的运动来完成的(如图2.18所示)。台架式机器人基本上就是一个直角坐标机器人,只不过是将机器人固连在一个朝下的直角架上。IBM7565机器人就是一个台架式直角坐标机器人。
图2.18 直角坐标
当然,如果没有旋转运动,表示向P点运动的变换矩阵是一种简单的平移变换矩阵,下面将可以看到这一点。注意这里只涉及坐标系原点的定位,而不涉及姿态。在直角坐标系中,表示机器人手位置的正运动学变换矩阵为:
RTP?Tcart?1?0???0??001000Px?0Py?? (2.31) 1Pz??01?其中RTP是参考坐标系与手坐标系原点P的变换矩阵,而Tcart表示直角坐标变换矩阵。对于逆运动学的求解,只需简单地设定期望的位置等于P.
例2.13 要求笛卡尔坐标机器人手坐标系原点定位在点P=?347?,计算所需要的笛卡儿坐标运动。
解:
设定正运动学方程用式(2.31)中的RTP矩阵表示,根据期望的位置可得知如下结果:
T?1?0RTP???0??001000Px??1?00Py????1Pz??0??01??0010000103?4??或Px?3,Py?4,Pz?77??1?
2.7.1.2 圆柱坐标
圆柱型坐标系统包括两个线性平移运动和一个旋转运动。其顺序为:先沿x轴移动r,再绕z轴旋转?角,最后沿z轴移动l,如图2.19所示。这三个变换建立了手坐标系与参考坐标系之间的联系。由于这些变换都是相对于全局参考坐标系的坐标轴的,因此由这三个变换所产生的总变换可以通过依次左乘每一个矩阵而求得:
RTP?Tcyl(r,?,l)?Trans(0,0,l)Rot(z,?)Trans(r,0,0) (2.32)
010000100??C??S?0????l??0??1??0?S?C?0000100??1?00????0??0??1??001000010r?0?? (2.33) 0??1??1?0RTP???0??0