![人工智能:智能机器人](https://wfqqreader-1252317822.image.myqcloud.com/cover/828/33114828/b_33114828.jpg)
2.2 坐标变换
空间中任一点p在不同坐标系中的表示是不同的[13]。为了阐明从一个坐标系的表示到另一个坐标系的表示关系,需要讨论这种变换的数学问题。
2.2.1 平移坐标变换和旋转坐标变换
1.平移坐标变换
设坐标系{B}与坐标系{A}具有相同的方位,但坐标系{B}的原点与坐标系{A}的原点不重合,用位置向量表示坐标系{B}相对于坐标系{A}的位置。平移坐标变换如图2-3所示,称
为坐标系{B}相对于{A}的平移向量。如果点p在坐标系{B}中的位置为BP,那么它相对于坐标系{A}的位置向量AP可由向量相加得出,即:
![](https://epubservercos.yuewen.com/FD2240/17725770706724906/epubprivate/OEBPS/Images/38284_35_3.jpg?sign=1739145100-qgYxVnaefkpgeL3DfDYWp7Ou2y7v5zWE-0-dc43774b8fb2c94aebffb31076f59f12)
式(2-10)称为平移坐标变换方程。
![](https://epubservercos.yuewen.com/FD2240/17725770706724906/epubprivate/OEBPS/Images/38284_35_4.jpg?sign=1739145100-lRG0ax4F8mw2YA01N0gy1ND0BenDERk4-0-f746328841f8482ebe26cf0a64249824)
图2-3 平移坐标变换
2.旋转坐标变换
设坐标系{B}与坐标系{A}有共同的原点,但两者的方位不同。旋转坐标变换如图2-4所示,用旋转矩阵表示坐标系{B}相对于坐标系{A}的方位,同一点p在两个坐标系{A}和{B}中的表示AP和BP具有如下变换关系:
![](https://epubservercos.yuewen.com/FD2240/17725770706724906/epubprivate/OEBPS/Images/38284_35_6.jpg?sign=1739145100-oWrvfB8dGk2fNMuMGqPFSTQAcwuFv1Nz-0-fc19b8bc4a63634fd30f55b7ae9fba02)
图2-4 旋转坐标变换
![](https://epubservercos.yuewen.com/FD2240/17725770706724906/epubprivate/OEBPS/Images/38284_35_7.jpg?sign=1739145100-uRJg2c72SKAoahGdO557AdiGZQ6NFzAb-0-b645d35e115328310a35213a0e4f18e8)
式(2-11)称为旋转坐标变换方程。
我们可以类似地用描述坐标系{A}相对于坐标系{B}的方位。
和
都是正交矩阵,两者互逆。根据式(2-5)所示的正交矩阵的性质,可得:
![](https://epubservercos.yuewen.com/FD2240/17725770706724906/epubprivate/OEBPS/Images/38284_36_2.jpg?sign=1739145100-8azMkgyhXW2vx90gmpabwOg8VwHmMZFW-0-d3ed1c5c23abfc84a27c6d1430ae6e60)
对于最一般的情形:坐标系{B}的原点与坐标系{A}的原点并不重合,两者的方位也不相同。用位置向量表示坐标系{B}的原点相对于坐标系{A}的位置;用旋转矩阵
表示坐标系{B}相对于坐标系{A}的方位。复合变换如图2-5所示,对于任一点p在坐标系{A}和{B}中的表示AP和BP,具有以下变换关系:
![](https://epubservercos.yuewen.com/FD2240/17725770706724906/epubprivate/OEBPS/Images/38284_36_5.jpg?sign=1739145100-X0dfjRbYSRuS3BXvfdKqA8HuOAWt9AFq-0-cc314dbe3f944702bce712a6b2805093)
式(2-13)可以看成旋转坐标变换和平移坐标变换的复合变换。实际上,规定一个过渡坐标系{C},使{C}的原点与坐标系{B}的原点重合,而过渡坐标系{C}的方位与坐标系{A}相同。根据式(2-11)可得到向过渡坐标系{C}的变换,即:
![](https://epubservercos.yuewen.com/FD2240/17725770706724906/epubprivate/OEBPS/Images/38284_36_6.jpg?sign=1739145100-tubJh4nM2sJ76nn0LtYwT96Rng3FZghh-0-6ac381156f7b3690933dbca6a84697ae)
![](https://epubservercos.yuewen.com/FD2240/17725770706724906/epubprivate/OEBPS/Images/38284_36_7.jpg?sign=1739145100-0hLbyMxzIzhs6PsUi1WJUVpI75oEHLZN-0-b37fcc7dbbbf7f8ed4a845bc1cb8c0cd)
图2-5 复合变换
再由式(2-10)可得复合变换:
![](https://epubservercos.yuewen.com/FD2240/17725770706724906/epubprivate/OEBPS/Images/38284_36_8.jpg?sign=1739145100-IbtiSIOsw9xEUu6cyYtw82BqTYMgLlYQ-0-c26c3cd931f5cee6b608db419c3a6564)
例2.1 已知坐标系{B}的初始位姿与坐标系{A}重合,首先坐标系{B}相对于坐标系{A}的zA轴转60°,再沿坐标系{A}的xA轴移动8单位,并沿坐标系{A}的yA轴移动4单位。求位置向量和旋转矩阵
。假设点p在坐标系{B}中的表示为BP=[2,5,0]T,求它在坐标系{A}中的表示AP。
根据式(2-8)和式(2-1),可得和
分别为:
![](https://epubservercos.yuewen.com/FD2240/17725770706724906/epubprivate/OEBPS/Images/38284_37_1.jpg?sign=1739145100-PVNgObd3iEfIdO5IVxexGUF7dR4WkjxC-0-ec995ec9e0886c1b4e3a6344f2df02f5)
由式(2-13)可得:
![](https://epubservercos.yuewen.com/FD2240/17725770706724906/epubprivate/OEBPS/Images/38284_37_2.jpg?sign=1739145100-VrJZYW7D8Rk42dTjLE4D8JUWtVdR4T6U-0-2815e0b518984e8a12f7381a11744ad0)
2.2.2 齐次坐标变换
已知某个坐标系中的某点坐标,那么该点在另一坐标系中的坐标可通过齐次坐标变换求得[14]。
1.齐次变换
式(2-13)对于点BP而言是非齐次的,但是可以将其表示成等价的齐次变换形式,即:
![](https://epubservercos.yuewen.com/FD2240/17725770706724906/epubprivate/OEBPS/Images/38284_37_3.jpg?sign=1739145100-b4pD8xehxJL8ZL0cJuphoXkE1Qqf2R7F-0-e318327a9f7158dfa300d6c5e7e79944)
式中,4×1的列向量表示三维空间的点,称为点的齐次坐标,仍然记为AP或BP。可把式(2-16)写成矩阵形式,即:
![](https://epubservercos.yuewen.com/FD2240/17725770706724906/epubprivate/OEBPS/Images/38284_37_4.jpg?sign=1739145100-KDNwQCrQdd0rmbfPtpWPQ3TDY07czVFb-0-21cca9a93dea92765cbb6d77c42fd1d7)
式中,齐次坐标AP和BP是4×1的列向量,与式(2-13)中的维数不同,加入了第4个元素1。齐次变换矩阵是4×4的方阵,即:
![](https://epubservercos.yuewen.com/FD2240/17725770706724906/epubprivate/OEBPS/Images/38284_37_6.jpg?sign=1739145100-RtreymaGayiygehXUwKt5cTWF8bU8CQ3-0-6a830483afb45ded486f2ac8789dfa62)
同时表示了平移变换和旋转变换。式(2-16)和式(2-13)是等价的,实质上,可以将式(2-16)写成:
![](https://epubservercos.yuewen.com/FD2240/17725770706724906/epubprivate/OEBPS/Images/38284_37_8.jpg?sign=1739145100-qhfNORr0dCGvqiXUS7mF0dztKtX1muwp-0-f4fc0d01e5882b7dd516b9c47af793c7)
位置向量AP和BP到底是3×1的直角坐标,还是4×1的齐次坐标,要根据上下文关系而定。
例2.2 试用齐次变换方法求解例2.1中的AP。
由例2.1求得的旋转矩阵和位置向量
,可以得到齐次变换矩阵,即:
![](https://epubservercos.yuewen.com/FD2240/17725770706724906/epubprivate/OEBPS/Images/38284_38_3.jpg?sign=1739145100-4AvNijKAOzlQG0WXYcCRxg8I82FVxP7M-0-f61a110d96fa544f160e56fe08f20faa)
代入式(2-17)可得:
![](https://epubservercos.yuewen.com/FD2240/17725770706724906/epubprivate/OEBPS/Images/38284_38_4.jpg?sign=1739145100-TSPkMsWjMpwc7jCrGHyd4lIlqppy4QzF-0-9383446b6409bcab7f53e9ee4a373111)
即用齐次坐标表示的点p的位置向量。
至此,我们可得空间某点p的直角坐标表示和齐次坐标表示,分别为:
![](https://epubservercos.yuewen.com/FD2240/17725770706724906/epubprivate/OEBPS/Images/38284_38_5.jpg?sign=1739145100-uxeG8ttiHMBixnumIAZfTtoXeX9vEhsW-0-c6488316d82f472aad6f069743c61868)
式中,ω为非零常数,是一个坐标比例系数。
坐标系原点的向量,即原点向量,可表示为[0,0,0,1]T。向量[0,0,0,1]T是没有意义的[15]。具有形如[a,b,c,0]T的向量表示无限远向量,用来表示方向,即用[1,0,0,0]T、[0,1,0,0]T、[0,0,1,0]T分别表示x、y和z轴的方向。
我们规定两向量a和b的点乘
![](https://epubservercos.yuewen.com/FD2240/17725770706724906/epubprivate/OEBPS/Images/38284_38_6.jpg?sign=1739145100-l410Fr5WJUrhmWuDiB0hMY2Ha81q1TUv-0-d6a419b6f94f86b8756f14a47751818a)
为一标量,而两向量的叉乘(向量乘)为与此两相乘向量所决定的平面垂直的向量,即:
![](https://epubservercos.yuewen.com/FD2240/17725770706724906/epubprivate/OEBPS/Images/38284_39_1.jpg?sign=1739145100-X7oKKbCBW9tVWKtxUZes7tKQ2b2yGfjo-0-661c88a92e11f45b68d46e46923e7bbc)
或者用面的行列式表示:
![](https://epubservercos.yuewen.com/FD2240/17725770706724906/epubprivate/OEBPS/Images/38284_39_2.jpg?sign=1739145100-43hdkGmzuyUGjIjQ3529QwWBMB383QLc-0-507c16102dd42a8ee23a5ba0b15fa89a)
2.平移齐次坐标变换
空间某点可由向量ai+bj+ck表示,其中,i、j、k为x、y、z轴上的单位向量,该点可用平移齐次坐标变换表示为:
![](https://epubservercos.yuewen.com/FD2240/17725770706724906/epubprivate/OEBPS/Images/38284_39_3.jpg?sign=1739145100-hM98PJi0t0CKbWUpMVqmVpqg4Zeavuo6-0-f7999e1af523f6fc0e60aff1af30e736)
式中,Trans表示平移齐式坐标变换。
对已知向量u=[x,y,z,ω]T进行平移齐次坐标变换所得的向量v为:
![](https://epubservercos.yuewen.com/FD2240/17725770706724906/epubprivate/OEBPS/Images/38284_39_4.jpg?sign=1739145100-bk5w36fZW8JxX9fNkAI6V3lnBDBGwYLf-0-ed10a162fb8526dcf6163cd2e8287768)
可把此变换看成向量(x/ω)i+(y/ω)j+(z/ω)k与向量ai+bj+ck之和。
用非零常数乘以变换矩阵的每个元素,不改变该变换矩阵的特性。
例2.3 考虑向量1i+2j+3k被向量2i-4j+6k平移齐次坐标变换得到的新的点向量:
![](https://epubservercos.yuewen.com/FD2240/17725770706724906/epubprivate/OEBPS/Images/38284_39_5.jpg?sign=1739145100-KvRe4qfJdfwl2l89HEqaqs6HI7e2wpWi-0-331a60c26ca17426d87381525d814071)
如果用2乘以此变换矩阵,用-5乘以被平移齐次坐标变换的向量,则得:
![](https://epubservercos.yuewen.com/FD2240/17725770706724906/epubprivate/OEBPS/Images/38284_39_6.jpg?sign=1739145100-ITi10TwMxrUkZzlp7otp7Mbsd29aXEuL-0-a8a716e8608523756c5c274a343310c9)
它与向量[3,-2,9,1]T相对应,与乘以常数前的点向量一样。
3.旋转齐次坐标变换
绕x、y或z轴分别进行角度为θ的旋转齐次坐标变换,可得:
![](https://epubservercos.yuewen.com/FD2240/17725770706724906/epubprivate/OEBPS/Images/38284_40_1.jpg?sign=1739145100-Cnu2Nd0LVTKcRYetY9y2mZiCIX9nYWx7-0-b629daae99104dd55b3d4fb0aabd8c9e)
式中,Rot表示旋转齐次坐标变换。下面我们举例说明这种变换。
例2.4 已知点u=6i+4j+2k,将它绕z轴旋转90°后可得:
![](https://epubservercos.yuewen.com/FD2240/17725770706724906/epubprivate/OEBPS/Images/38284_40_2.jpg?sign=1739145100-1HSJxoHjblFyBgFChVMCTdJ6xXh6t3AL-0-a772153e5991e93063e4545e1e6126f8)
图2-6(a)所示为旋转齐次坐标变换前、后点向量在坐标系中的位置。点向量u绕z轴旋转90°可得点向量v。点向量v绕y轴旋转90°可得点向量w,绕y轴旋转的变换也可以从图2-6(a)看出,并可由式(2-25)求出。
![](https://epubservercos.yuewen.com/FD2240/17725770706724906/epubprivate/OEBPS/Images/38284_40_3.jpg?sign=1739145100-gzOZE6mhzTIof7UTFu88d09IfClkJc5P-0-2eb6f4e2de292a6e78838d9b63347e50)
如果把上述两个旋转变换v=Rot(z,90°)u与w=Rot(y,90°)v组合在一起,则可得到式(2-27)。
![](https://epubservercos.yuewen.com/FD2240/17725770706724906/epubprivate/OEBPS/Images/38284_40_4.jpg?sign=1739145100-JRcza0xQJK3nTp0BdkesotwUWtW0a95E-0-f2e2840039bb9fdfe85b9db8f7660f72)
![](https://epubservercos.yuewen.com/FD2240/17725770706724906/epubprivate/OEBPS/Images/38284_41_1.jpg?sign=1739145100-PwwdyJGVMNKef9W6ZRY7UW0AiclVBQZj-0-ba0922a0fafab333e0facbd8192bf74b)
图2-6 旋转次序对变换结果的影响
因为
![](https://epubservercos.yuewen.com/FD2240/17725770706724906/epubprivate/OEBPS/Images/38284_41_2.jpg?sign=1739145100-JXZ1eXCAIDU1VmLzI44yEfgCRo69d5Iq-0-5c572cc4879ecc3125aa37ac53c70978)
所以可得:
![](https://epubservercos.yuewen.com/FD2240/17725770706724906/epubprivate/OEBPS/Images/38284_41_3.jpg?sign=1739145100-3pJEzK3pbcwwLGQGNMNi56ckMVYwSPTF-0-a591eea2af5a1c0ae0aaad99bd379a4f)
所得结果与前面一样。
如果改变旋转次序,首先使u绕y轴旋转90°,那么就会使u变换至与w不同的位置w1,如图2-6(b)所示。从计算中也可得出w1≠w的结果,这个结果是必然的,因为矩阵乘法不具有交换性质,即AB≠BA。变换矩阵的左乘和右乘的运动解释是不同的:变换顺序“从右向左”,表示运动是相对固定坐标系而言的;变换顺序“从左向右”,表示运动是相对运动坐标系而言的。