旋转矩阵和平移向量描述了一个刚体在三维空间中的运动过程。虽然网上有大量的资料详细讲解了旋转矩阵和平移向量的性质,但是,千篇一律,根本没有讲明白旋转矩阵和平移向量到底是个什嘛东西!
1. 平移向量
由简入难,先来看看平移向量是什嘛东西。
如图所示,坐标系1和坐标系2平行但不重合,所以空间点从坐标系2到坐标系1的变换只有平移向量,用t表示。假设,坐标系2的原点O2在坐标系1中的坐标为(XO2 YO2 ZO2),空间点P在坐标系2中的坐标为(X2 Y2 Z2),则点P在坐标系1中的坐标(X1 Y1 Z1)为:
即,空间点从坐标系2到坐标系1的变换可以表示为:
其中,P1、P2分别为空间点P在坐标系1和坐标系2中的坐标,t为空间点从坐标系2变换到坐标系1的平移向量。从数值的角度分析,t与O2在坐标系1中的坐标相等,但是向量和点是完全不同的概念。二者之所以相等,是因为 在坐标系1中 平移向量t表示起始于原点终止于O2的向量。 注意:向量包含方向和大小,没有坐标的概念,而且向量与坐标系无关,不会因为坐标系改变而改变。只有当我们在某个坐标系中去描述向量时,二者才产生联系,此时我们默认向量的起点为该坐标系原点,然后才能用该向量终点在该坐标系中的坐标去表示该项量。我在上文中将文字“在坐标系1中”用黑斜体显示,以强调这个概念。 总结一下:空间点从坐标系2变换到坐标系1的平移向量为
2. 旋转矩阵
接着我们再来说说旋转矩阵。
2.1 点旋转
你可能会很困惑:点旋转是啥,其实我也不知道,有人这样跟我说的,姑且就这样叫吧,看完本节内容自然就明白了。
如图所示,坐标系1和坐标系2原点重合但是不平行,所以空间点从坐标系2到坐标系1的变换只有旋转矩阵,用R表示。空间点P在坐标系1和坐标系2中的坐标分别为P1、P2,则,
其中,旋转矩阵
令,
则,
也就是说,空间点从坐标系2到坐标系1的旋转矩阵R的分量
2.2 旋转向量和坐标系旋转
在某些实际应用场景中,我们更关注的是某个随时间变化的坐标系。比如,在一段时间内某个坐标系绕着一个轴旋转了一个角度,沿着某个方向发生了一段位移。此时,旋转矩阵是什么,又该如何求解? 要回到这两个问题,我们就需要先解决旋转向量的本质是什么。 旋转向量又被称为轴角。轴指的是坐标系发生旋转所绕的那个轴,它是旋转向量单位化后的向量。而角指的是坐标系所旋转的角度,大小为旋转向量的模。通过罗德里格斯公式、李群李代数等,旋转矩阵和旋转向量可以相互转化。
如图所示,坐标系1绕向量
但是,
所以,空间点从坐标系2到坐标系1的变换矩阵
所以,