坐标转换(二):踩坑后总结的经验——左右手坐标系的平移、旋转变换
发布网友
发布时间:2024-09-27 18:26
我来回答
共1个回答
热心网友
时间:2024-10-16 16:55
坐标转换(二):左右手坐标系的平移、旋转变换
文章的开头,先讲讲坐标系的平移变换,平移变换的过程如下图所示:
假设点P是空间中的任意一点,其在XYZ坐标系中的坐标为(x, y, z)。现在点P不动,我们将XYZ坐标系做一个平移的操作,把XYZ平移到X´Y´Z´的位置,O´是平移后的坐标的原点,要注意的是,O´在XYZ中的坐标为(x0, y0, z0)。点P在XYZ坐标系中的坐标为(x, y, z),点P在平移后的坐标系X´Y´Z´中的坐标为(x´, y´, z´)。根据上面这个示意图,我们可以求解出点P在X´Y´Z´坐标系中的坐标为:
x´ = x + x0
y´ = y + y0
z´ = z + z0
把上面的式子转换成矩阵的形式就是:
\[ \begin{bmatrix} x' \\ y' \\ z' \end{bmatrix} = \begin{bmatrix} 1 & 0 & 0 & x_0 \\ 0 & 1 & 0 & y_0 \\ 0 & 0 & 1 & z_0 \\ \end{bmatrix} \begin{bmatrix} x \\ y \\ z \\ 1 \end{bmatrix} \]
这就是三维空间直角坐标系的平移变换了,左手坐标系和右手坐标系的平移变换公式是一样的。
接下来,我们看看三维空间直角坐标系的旋转变换。小D在研究旋转变换时,只推导了右手坐标系的旋转变换。有一次看到一篇文献,它用的是左手坐标系,这引发了小D对文献中给出的公式的正确性产生疑问。因此,小D又把左手坐标系的旋转矩阵推导了一遍。
公式推完之后,小D发现左手坐标系和右手坐标系的旋转矩阵是一样的。下面是左手坐标系和右手坐标系旋转矩阵的推导过程。
右手坐标系的旋转过程有三个,分别是绕X,Y,Z轴旋转。右手坐标系在旋转时,通常规定以逆时针旋转方向为正方向。
对于XYZ右手坐标系绕X轴逆时针旋转θ角,旋转矩阵Rx(θ)为:
\[ R_x(\theta) = \begin{bmatrix} 1 & 0 & 0 \\ 0 & \cos(\theta) & -\sin(\theta) \\ 0 & \sin(\theta) & \cos(\theta) \end{bmatrix} \]
绕Y轴逆时针旋转θ角的旋转矩阵Ry(θ)为:
\[ R_y(\theta) = \begin{bmatrix} \cos(\theta) & 0 & \sin(\theta) \\ 0 & 1 & 0 \\ -\sin(\theta) & 0 & \cos(\theta) \end{bmatrix} \]
绕Z轴逆时针旋转θ角的旋转矩阵Rz(θ)为:
\[ R_z(\theta) = \begin{bmatrix} \cos(\theta) & -\sin(\theta) & 0 \\ \sin(\theta) & \cos(\theta) & 0 \\ 0 & 0 & 1 \end{bmatrix} \]
左手坐标系的旋转过程也是三个,分别是绕X,Y,Z轴旋转。左手坐标系在旋转时,通常规定以顺时针旋转方向为正方向。
对于XYZ左手坐标系绕X轴顺时针旋转θ角,旋转矩阵Rx(θ)为:
\[ R_x(\theta) = \begin{bmatrix} 1 & 0 & 0 \\ 0 & \cos(\theta) & \sin(\theta) \\ 0 & -\sin(\theta) & \cos(\theta) \end{bmatrix} \]
绕Y轴顺时针旋转θ角的旋转矩阵Ry(θ)为:
\[ R_y(\theta) = \begin{bmatrix} \cos(\theta) & 0 & -\sin(\theta) \\ 0 & 1 & 0 \\ \sin(\theta) & 0 & \cos(\theta) \end{bmatrix} \]
绕Z轴顺时针旋转θ角的旋转矩阵Rz(θ)为:
\[ R_z(\theta) = \begin{bmatrix} \cos(\theta) & \sin(\theta) & 0 \\ -\sin(\theta) & \cos(\theta) & 0 \\ 0 & 0 & 1 \end{bmatrix} \]
旋转矩阵的运用:在实际中,我们需要推导两个不同的坐标系之间的变换关系时,如地心地固坐标系和ENU坐标系、ENU坐标系和机体坐标系、机体坐标系和天线阵面坐标系、ENU坐标系和天线阵面坐标系之间的变换关系,就要用到这些旋转矩阵。一般的方法是,根据实际的旋转过程,按旋转的先后顺序计算旋转矩阵。
实际运用中,小D总结的经验是:不管是左手坐标系还是右手坐标系,绕X轴逆时针旋转θ角,相当于绕X轴顺时针旋转2π-θ角,同时也相当于绕X轴顺时针旋转-θ角。
旋转矩阵的性质:旋转矩阵的逆和它的转置是相等的,因此如果你要求旋转矩阵的逆矩阵,可以直接对它求转置。
小D验证了自己推导的平移变换和旋转矩阵的正确性。对比左手坐标系和右手坐标系的旋转矩阵可以发现,二者是一样的,需要注意的是,左手坐标系的顺时针旋转为正,右手坐标系逆时针旋转为正。
小D还提供了相关书籍的PDF下载地址。
参考资料:
[1] 何友, 修建娟等, 雷达数据处理及应用[M]. 北京, 电子工业出版社, 2013, 87-89
[2] Michael E. Mortenson,Geometric Transformations for 3D Modeling[M]. New York, Instrial Press Inc, 2009, 161-168