u示为P(P相对于坐标系U),式(2.18)可简化为:
uP?uTR?RP (2.21) 由上式可见,去掉R便得到了P相对于坐标系U的坐标。
例2.5 旋转坐标系中有一点P?234?,此坐标系绕参考坐标系x轴旋转90度。求旋转后该点相对于参考坐标系的坐标,并且用图解法检验结果。
解:
由于点P固连在旋转坐标系中,因此点P相对于旋转坐标系的坐标在旋转前后保持不变。该点相对于参考坐标系的坐标为:
0?Px??1?P???0cos??y????Pz????0sin???Pn??100??2??2??P???00?1??3????4?
?sin????o???????cos?????Pa????010????4????3??0T如图2.12所示,根据前面的变换,得到旋转后P点相对于参考坐标系的坐标为2,-4,3.
图2.12 相对于参考坐标系的坐标系旋转
2.5.3 复合变换的表示
复合变换是由固定参考坐标系或当前运动坐标系的一系列沿轴平移和绕轴旋转变换所组成的。任何变换都可以分解为按一定顺序的一组平移和旋转变换。例如,为了完成所要求的变换,可以先绕x轴旋转,再沿x,y,z轴平移,最后绕y轴旋转。在后面将会看到,这个变换顺序很重要,如果颠倒两个依次变换的顺序,结果将会完全不同。
为了探讨如何处理复合变换,假定坐标系(n,o,a)相对于参考坐标系(x,y,z)依次进行了下面三个变换:
(1)绕x轴旋转?度;
(2)接着平移?l1l2l3?(分别相对于x,y,z轴); (3)最后绕y轴旋转?度。
比如点Pnoa固定在旋转坐标系,开始时旋转坐标系的原点与参考坐标系的原点重合。随着坐标系
(n,o,a)相对于参考坐标系旋转或者平移时,坐标系中的P点相对于参考坐标系也跟着改变。如前
面所看到的,第一次变换后,P点相对于参考坐标系的坐标可用下列方程进行计算。
P1,xyz?Rot(x,?)?Pnoa (2.22)
其中,P1,xyz是第一次变换后该点相对于参考坐标系的坐标。第二次变换后,该点相对于参考坐标
系的坐标是:
P?Tra(n1,sl2l,?3l)1,xyP?2x,yzzTra(n1,sl2?,l3)l?R?(o,tx) noaP同样,第三次变换后,该点相对于参考坐标系的坐标为:
Pxyz?P,l2,l3)?Rot(x,?)?P3,xyz?Rot(y,?)?P2,xyz?Rot(y,?)?Trans(l1noa
可见,每次变换后该点相对于参考坐标系的坐标都是通过用每个变换矩阵左乘该点的坐标得到
的。当然,矩阵的顺序不能改变。同时还应注意,对于相对于参考坐标系的每次变换,矩阵都是左乘的。因此,矩阵书写的顺序和进行变换的顺序正好相反。
例2.6 固连在坐标系(n,o,a)上的点P?732?经历如下变换,求出变换后该点相对于参考坐标系的坐标。
(1)绕z轴旋转90度;
(2)接着绕y轴旋转90度; (3)接着再平移[4,-3,7]。 解:
表示该变换的矩阵方程为:
Pxyz?Trans(4,?3,7)Rot(y,90)Pnoa??1?0??0??04??0?010?3????017???1??001??000010??0?1?10100????000??00??001??0000??7??6??3??4?00????????10??2??10??????01??1??1?
T
从图2.13可以看到,(n,o,a)坐标系首先绕z轴旋转90度,接着绕y轴旋转,最后相对于参考坐标系的x,y,z轴平移。坐标系中的P点相对于n,o,a轴的位置如图所示,最后该点在x,y,z轴上的坐标分别为4+2=6,-3+7=4,7+3=10。请确认也能从图中理解上述结果。
图2.13 三次顺序变换的结果
例2.7 根据上例,假定(n,o,a)坐标系上的点P?732?经历相同变换,但变换按如下不同顺序进行,求出变换后该点相对于参考坐标系的坐标。
(1)绕z轴旋转90度; (2)接着平移[4,-3,7]; (3)接着再绕y轴旋转90度。 解:
表示该变换的矩阵方程为:
Pxyz?Rot(y,90)Trans(4,?3,7)Rot(z,90)Pnoa??0?0???1??0010??1?0100????000??0??001??04??0?1?1010?3????017??00??001??000000??7??9??3??4?00????????10??2???1??????01??1??1?T
不难发现,尽管所有的变换与例2.6完全相同,但由于变换的顺序变了,该点最终坐标与前例完全不同。用图2.14可以清楚地说明这点,这时可以看出,尽管第一次变换后坐标系的变化与前例完全相同,但第二次变换后结果就完全不同,这是由于相对于参考坐标系轴的平移使得旋转坐标系
?n,o,a?向外移动了。经第三次变换,该坐标系将绕参考坐标系y轴旋转,因此向下旋转了,坐标系
上点P的位置也显示在图中。
请证明该点相对于参考坐标系的坐标为7+2=9,-3+7=4和-4+3=-1,它与解析的结果相同。
图2.14 变换的顺序改变将改变最终结果
2.5.4 相对于旋转坐标系的变换
到目前为止,本书所讨论的所有变换都是相对于固定参考坐标系。也就是说,所有平移、旋转和距离(除了相对于运动坐标系的点的位置)都是相对参考坐标系轴来测量的。然而事实上,也有可能做相对于运动坐标系或当前坐标系的轴的变换。例如,可以相对于运动坐标系(也就是当前坐标系)的n轴而不是参考坐标系的x轴旋转90度。为计算当前坐标系中的点的坐标相对于参考坐标系的变化,这时需要右乘变换矩阵而不是左乘。由于运动坐标系中的点或物体的位置总是相对于运动坐标系
测量的,所以总是右乘描述该点或物体的位置矩阵。
例2.8 假设与例2.7中相同的点现在进行相同的变换,但所有变换都是相对于当前的运动坐标系,具体变换出如下。求出变换完成后该点相对于参考坐标系的坐标。 (1)绕a轴旋转90度;
(2)然后沿n,o,a轴平移[4,-3,7]; (3)接着绕o轴旋转90度。
解:
在本例中,因为所作变换是相对于当前坐标系的,因此右乘每个变换矩阵,可得表示该坐标的方程为:
Pxyz?Rot(a,90)Trans(4,?3,7)Rot(o,90)Pnoa??0?1?10??00??0000100??1?00????0??0??1??0010004??0?00?3????17???1??01??0010010000??7??0??3??6?0????????0??2??0??????1??1??1?
如所期望的,结果与其他各例完全不同,不仅因为所作变换是相对于当前坐标系的,而且也因为矩阵顺序的改变。下面的图展示了这一结果,应注意它是怎样相对于当前坐标来完成这个变换的。
同时应注意,在当前坐标系中p点的坐标7,3,2是变换后得到相对于参考坐标系的坐标0,6,0的。
图2.15 相对于当前坐标系的变换
例2.9 坐标系B绕x轴旋转90°,然后沿当前坐标系a轴做了3英寸的平移,然后在绕z轴旋转90,最后沿当前坐标系o轴做5英寸的平移。
(a)写出描述该运动的方程。
(b)求坐标系中的点p(1,5,4)相对于参考坐标系的最终位置。 解:
在本例中,相对于参考坐标系以及当前坐标系的运动是交替进行的。
(a)相应地左乘或右乘每个运动矩阵,得到:
uTB=Rot(z,90)Rot(x,90)Trans(0,0,3)Trans(0,5,0)
?0?1?10UUBP?TB?P???00??0000??1?000???10??0??01??00??1?00?10???100??0??001??000000??1?0100???013??0??001??0000?105??010??001?
(b)带入具体的矩阵并将它们相乘,得到:
?0?1???0? ?0001010007??1?1?0?1?
2.6 变换矩阵的逆
正如前面所提到的,在机器人分通过析中有很多地方要用到矩阵的逆,在下面的例子中可以看到
一种涉及变换矩阵的情况。在图2.16中,假设机器人要在零件p上钻孔而须向零件p处移动。机器
人基座相对于参考坐标系u的位置用坐标系R来描述,机器人手用坐标系H来描述,末端执行器(即用来钻孔的钻头的末端)用坐标系E来描述,零件的位置用坐标系P来描述。钻孔的点的位置于参考坐标系U可以通过两个独立的路径发生联系:一个是通过该零件的路径,另一个是通过机器人的路径。因此,可以写出下面的方程:
URHT?TTT?ERHE
UUTPP T E (2.24)
这就是说,该零件中点E的位置可以通过从U变换到P,并从P变换到E来完成,或者从U变换到
R,从R变换到H,再从H变换到E。
图2.16 全局坐标系、机器人坐标系、手坐标系、零件坐标系及末端执行器坐标系
事实上,由于在任何情况下机器人的基座位置在安装时就是已知的,因此变换UTR(坐标系R相对于坐标系U的变换)时已知的。比如,一个机器人安装在一个工作台上,由于它被紧固在工作台上,所以它的基座的位置时已知的。即使机器人时可移的或放在传送带上,因为控制器始终掌控着机器人基座的运动,因此它在任意时刻的位置也是已知的。由于用于末端执行器的任何器械都是已知的,而且其尺寸和结构也是已知的,所以HTE(机器人末端执行器相对于机器人手的变换)也是已知的。此外,
UTP(零件相对于全局坐标系的变换)也是已知的,还必须要知道将在其上面钻孔的零件的位置,该
位置可以通过将该零件放在钻模上,让后用照相机,视觉系统,传送带,传感器或其他类似仪器来确