旋转向量(旋转矩阵)与欧拉角,这里相互转换的方法是:
旋转向量-->旋转矩阵-->欧拉角
旋转矩阵-->欧拉角
SO(3)的旋转矩阵有9个量,但是只有3个自由度,同理SE(3)有16个量,但是也只有6个自由度。在实际的旋转中,任意的旋转都可用一个旋转轴和一个旋转角来表示,我们使用一个向量,方向与旋转轴一致,长度等于旋转角,这样只需要一个三维向量即可描述旋转。对于SE(3),用一个旋转向量和一个平移向量即可表达,恰好自由度为6.如果用旋转向量来描述R:旋转轴为一个单位长度的向量n,角度为θ,那么nθn可以表示这个旋转。旋转矩阵R和旋转向量nθn的转换过程为罗德里格斯变换:
此处末尾的n∧n∧ 如上面所示,代表矩阵表示的向量。那么反过来通过旋转矩阵获取转角 θ;
tr(R)为矩阵R的迹。对于转轴n,Rn=n;表示为转轴绕自身转动不生改变,从数学来说n是矩阵R特征值为1时对应的特征向量。从现在来看旋转轴和旋转角来表示的旋转是紧凑的,没有冗余性,但是欧拉角RPY的空间中,当一个旋转达到+⎯⎯⎯90∘+_90∘是就出现了奇异性。相当于地球的经纬度中当纬度为+⎯⎯⎯90∘+_90∘时,经度无意义。
这是工作上遇见的一些问题,简单记录下 ,更为丰富的三维转换可以了解。
三维旋转:欧拉角、四元数、旋转矩阵、轴角之间的转换 - 知乎 (zhihu.com)