主动变换vs被动变换

2023-01-31  本文已影响0人  cheerss

一个旋转矩阵的功能R可以有两种解释:

  1. 主动观点:坐标系不变,R的作用在空间中的任意点\vec{p}上,使其在空间中进行一个旋转(即点主动发生了变换),旋转后点的实际位置(或者说在坐标系下的坐标)发生了变化
  2. 被动观点:空间中点的位置不变,但是坐标系发生了变化。R\vec{p}的意思是求\vec{p}在新坐标系下的坐标。

两种解释的关联是:
R_{active} = R_{passive}^T

原因

假设有两个坐标系A和坐标系B,为了简单期间,假设坐标系A的基就是单位矩阵(它的3个基向量分别是(1, 0, 0)(0, 1, 0), (0, 0, 1)),而坐标系B的基是(\vec{e_1}, \vec{e_2}, \vec{e_3})

那么,从主动变换的角度理解,A和B不称为坐标系,而是两种不同的姿态的描述
R_{active} = (\vec{e_1}, \vec{e_2}, \vec{e_3})

是坐标系不动,点从A姿态旋转到B姿态。即对某个点(向量)\vec{p}进行一个旋转,由于旋转都是对整个空间中的点同时进行的。特别地,R_{active}代表的含义是(1, 0, 0)的点被“旋转”到\vec{e_1}(0, 1, 0)被“旋转”到\vec{e_2}(0, 0, 1)被“旋转”到\vec{e_3}。那么任意点\vec{p}(x, y, z)被旋转到了哪儿呢?自然就是p' = (x\vec{e_1}, y\vec{e_2}, z\vec{e_3}),也就是p' = R_{active}\vec{p}

而如果从被动变换的角度理解,
R_B^A = (\vec{e_1}, \vec{e_2}, \vec{e_3})

也就是这个矩阵的作用求B坐标系下一个点的\vec{p}_B在A坐标系中的坐标。例如:\vec{p}_B = (1, 0, 0)在A坐标系下的坐标就是R_B^Ap_B。那如果是从A坐标系到B坐标系的转换呢?是
R_A^B = (R_B^A)^T = (\vec{e_1}^T, \vec{e_2}^T, \vec{e_3}^T)^T = R_{passive}

所以,从被动变换的角度理解,R_{passive}是点不动,把它在A坐标系下的坐标变换到B坐标系

表示习惯

严格地来说,R_A^B有两种解释

  1. 从被动变换的角度解释,R_A^B是把某个点在A坐标系下的坐标转化为B坐标系下的坐标,即p_B = R_A^Bp_A = R_{passive}p_A
  2. 而从主动变换的角度讲,是把A当做点的初始朝向,要对点进行变换,让它转到B朝向下,也可以写作p_B = R_A^Bp_A = R_{active}p_A
    但是!!一定要注意,两种解释中使用的符号相同,含义却完全不一样,其使用的旋转矩阵R实际上互为逆矩阵(对于旋转矩阵而言,也就是互为转置)。

因此,对应p_B也有两种解释

  1. 被动解释中的p_B代表的是在B坐标系下的坐标,它和p_A是空间中同一个点在两个不同坐标系下的度量。
  2. 主动解释代表的是把p_A点进行旋转转到了p_B这个位置,两者是同一个坐标系下的两个点。

本文上述一直用的被动变换下的表示,即认为R_A^B代表把某个点在A坐标系下的坐标转化为B坐标系下的坐标,p_Ap_B是空间中同一个点在两个不同坐标系下的度量。

总结

(R_{active})_A^B = (\vec{e_1}, \vec{e_2}, \vec{e_3}) = (R_{passive})_B^A
上述公式解读为,(R_{active})_A^B把A位姿的点旋转到B位姿,或者是(R_{passive})_B^A把B坐标系下的点坐标转化为A坐标系下的坐标,两者用的是同一个旋转矩阵。

(R_{passive})_A^B = (\vec{e_1}^T, \vec{e_2}^T, \vec{e_3}^T)^T = (R_{active})_B^A上述公式解读为,(R_{passive})_A^B把A坐标系的点坐标转换为B坐标系下的坐标,或者是(R_{active})_B^A把点从B位姿旋转到A位姿,两者用的是同一个旋转矩阵。

上一篇下一篇

猜你喜欢

热点阅读