我们知道对于欧拉角一直有一个结论是:一个x-y-z的内旋,等价与z-y-x的外旋(内旋即下一次的旋转绕着上一次的坐标轴,外旋则是每次旋转都是绕着固定的初始坐标轴),等价的意义就是两次旋转后得到的最终的坐标系是重合的。
之前一直不太理解为啥欧拉角内旋和外旋是等价的,看到了一篇博客,感觉解释的挺好两种欧拉角及其到旋转矩阵的转化。在这篇博客中,首先给出了x->y->z的内旋后向量的坐标关系为 R x R y R z P ′ = P R_xR_yR_zP'=P RxRyRzP′=P, 在对x->y->z的外旋的分析中,将对坐标系的旋转考虑成对每个坐标基底向量的旋转,从而求解出坐标系旋转后的基底,最后根据同一向量在不同基底下等价推出 R z R y R x P ′ = P R_zR_yR_xP'=P RzRyRxP′=P,那么显然,如果是z->y->x的外旋,就和x->y->z的内旋的效果等价了。
不过这篇博客里并没有说明为什么内旋时使用的旋转矩阵和外旋时使用的旋转矩阵相等,这里我补充一点说明,对于旋转角度相同且方向同为x->y->z的内旋和外旋,内旋时,R意义为将点固定并旋转坐标轴,将坐标系反方向旋转到原坐标系,即 R 内 P ′ = P R_内P'=P R内P′=P,在外旋时,R的意义是原坐标系固定然后对坐标的基向量进行正方向旋转 e ′ = R 外 e e'=R_外e e′=R外e,可以看出,这两个事情是等价的,因此 R 内 e = R 外 e = e ′ = > R 内 = R 外 R_内e=R_外e=e'=>R_内=R_外 R内e=R外e=e′=>R内=R外。
之前我没理解的原因是,一些博客直接把内旋(旋转顺序是x->y->z)的旋转矩阵告诉你是 R = R x R y R z R=R_xR_yR_z R=RxRyRz,外旋的旋转矩阵是 R = R z R y R x R=R_zR_yR_x R=RzRyRx,但我一直理解的是这个旋转矩阵应该是将原坐标系的点的坐标变换到旋转后坐标系下的坐标,那么内旋就是 P ′ = R z R y R x P P'=R_zR_yR_xP P′=RzRyRxP,这就和这些博客上写的刚好相反,然后在上面提的那篇博客中我意识到也许是旋转矩阵的表示形式是相反的,即我默认的旋转矩阵表示是 P ′ = R P P'=RP P′=RP,而这些博客采用的是 R P ′ = P RP'=P RP′=P,与是这就能解释一切了,哈哈,难道一直是我在反直觉的思考?