2.2 坐标变换
空间中任一点p在不同坐标系中的表示是不同的[13]。为了阐明从一个坐标系的表示到另一个坐标系的表示关系,需要讨论这种变换的数学问题。
2.2.1 平移坐标变换和旋转坐标变换
1.平移坐标变换
设坐标系{B}与坐标系{A}具有相同的方位,但坐标系{B}的原点与坐标系{A}的原点不重合,用位置向量表示坐标系{B}相对于坐标系{A}的位置。平移坐标变换如图2-3所示,称为坐标系{B}相对于{A}的平移向量。如果点p在坐标系{B}中的位置为BP,那么它相对于坐标系{A}的位置向量AP可由向量相加得出,即:
式(2-10)称为平移坐标变换方程。
图2-3 平移坐标变换
2.旋转坐标变换
设坐标系{B}与坐标系{A}有共同的原点,但两者的方位不同。旋转坐标变换如图2-4所示,用旋转矩阵表示坐标系{B}相对于坐标系{A}的方位,同一点p在两个坐标系{A}和{B}中的表示AP和BP具有如下变换关系:
图2-4 旋转坐标变换
式(2-11)称为旋转坐标变换方程。
我们可以类似地用描述坐标系{A}相对于坐标系{B}的方位。和都是正交矩阵,两者互逆。根据式(2-5)所示的正交矩阵的性质,可得:
对于最一般的情形:坐标系{B}的原点与坐标系{A}的原点并不重合,两者的方位也不相同。用位置向量表示坐标系{B}的原点相对于坐标系{A}的位置;用旋转矩阵表示坐标系{B}相对于坐标系{A}的方位。复合变换如图2-5所示,对于任一点p在坐标系{A}和{B}中的表示AP和BP,具有以下变换关系:
式(2-13)可以看成旋转坐标变换和平移坐标变换的复合变换。实际上,规定一个过渡坐标系{C},使{C}的原点与坐标系{B}的原点重合,而过渡坐标系{C}的方位与坐标系{A}相同。根据式(2-11)可得到向过渡坐标系{C}的变换,即:
图2-5 复合变换
再由式(2-10)可得复合变换:
例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),可得和分别为:
由式(2-13)可得:
2.2.2 齐次坐标变换
已知某个坐标系中的某点坐标,那么该点在另一坐标系中的坐标可通过齐次坐标变换求得[14]。
1.齐次变换
式(2-13)对于点BP而言是非齐次的,但是可以将其表示成等价的齐次变换形式,即:
式中,4×1的列向量表示三维空间的点,称为点的齐次坐标,仍然记为AP或BP。可把式(2-16)写成矩阵形式,即:
式中,齐次坐标AP和BP是4×1的列向量,与式(2-13)中的维数不同,加入了第4个元素1。齐次变换矩阵是4×4的方阵,即:
同时表示了平移变换和旋转变换。式(2-16)和式(2-13)是等价的,实质上,可以将式(2-16)写成:
位置向量AP和BP到底是3×1的直角坐标,还是4×1的齐次坐标,要根据上下文关系而定。
例2.2 试用齐次变换方法求解例2.1中的AP。
由例2.1求得的旋转矩阵和位置向量,可以得到齐次变换矩阵,即:
代入式(2-17)可得:
即用齐次坐标表示的点p的位置向量。
至此,我们可得空间某点p的直角坐标表示和齐次坐标表示,分别为:
式中,ω为非零常数,是一个坐标比例系数。
坐标系原点的向量,即原点向量,可表示为[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的点乘
为一标量,而两向量的叉乘(向量乘)为与此两相乘向量所决定的平面垂直的向量,即:
或者用面的行列式表示:
2.平移齐次坐标变换
空间某点可由向量ai+bj+ck表示,其中,i、j、k为x、y、z轴上的单位向量,该点可用平移齐次坐标变换表示为:
式中,Trans表示平移齐式坐标变换。
对已知向量u=[x,y,z,ω]T进行平移齐次坐标变换所得的向量v为:
可把此变换看成向量(x/ω)i+(y/ω)j+(z/ω)k与向量ai+bj+ck之和。
用非零常数乘以变换矩阵的每个元素,不改变该变换矩阵的特性。
例2.3 考虑向量1i+2j+3k被向量2i-4j+6k平移齐次坐标变换得到的新的点向量:
如果用2乘以此变换矩阵,用-5乘以被平移齐次坐标变换的向量,则得:
它与向量[3,-2,9,1]T相对应,与乘以常数前的点向量一样。
3.旋转齐次坐标变换
绕x、y或z轴分别进行角度为θ的旋转齐次坐标变换,可得:
式中,Rot表示旋转齐次坐标变换。下面我们举例说明这种变换。
例2.4 已知点u=6i+4j+2k,将它绕z轴旋转90°后可得:
图2-6(a)所示为旋转齐次坐标变换前、后点向量在坐标系中的位置。点向量u绕z轴旋转90°可得点向量v。点向量v绕y轴旋转90°可得点向量w,绕y轴旋转的变换也可以从图2-6(a)看出,并可由式(2-25)求出。
如果把上述两个旋转变换v=Rot(z,90°)u与w=Rot(y,90°)v组合在一起,则可得到式(2-27)。
图2-6 旋转次序对变换结果的影响
因为
所以可得:
所得结果与前面一样。
如果改变旋转次序,首先使u绕y轴旋转90°,那么就会使u变换至与w不同的位置w1,如图2-6(b)所示。从计算中也可得出w1≠w的结果,这个结果是必然的,因为矩阵乘法不具有交换性质,即AB≠BA。变换矩阵的左乘和右乘的运动解释是不同的:变换顺序“从右向左”,表示运动是相对固定坐标系而言的;变换顺序“从左向右”,表示运动是相对运动坐标系而言的。