如何通过欧拉角得到正确的旋转矩阵

博客https://blog.csdn.net/loongkingwhat/article/details/82765388

他的说法是认为:假设欧拉角以x-y-z的顺规,即先按x旋转,再按y旋转,最后按z旋转,其相应的旋转矩阵应该表示为R = Rx*Ry*Rz

很明显是不当的,错误的;

下面给出正确的理解:

前提1:首先要清楚的是,欧拉角因旋转顺序的不同有多种表示方式,分成两类如:

proper euler angles:z-x-z,z-y-z,x-y-x等,

Tait–Bryan angles:z-y-x,x-y-z,y-z-x等

在常见的机械臂应用中,使用Tait–Bryan angles居多;这里的顺序如何理解?

假设某一情况下给出的欧拉角形式为:z->y->x,转角分别为\gamma,\beta,\alpha,即代表该刚体变换先绕z轴旋转角度\gamma,再绕y轴旋转角度\beta,最后绕x轴旋转角度\alpha,这里的表述没毛病,后面再来确定这里的x轴,y轴,z轴到底指相对于谁的轴。

前提2:单独绕x,y,z轴的旋转矩阵表示是固定不变的,分别为:

如何通过欧拉角得到正确的旋转矩阵_第1张图片

下面回到正文,值得注意的是,即使知道了欧拉角的顺序,也不能确定其对应的旋转矩阵应该如何表示,还需确定的是,绕某根轴旋转时,是绕原来的静止轴旋转,还是绕当前的动态轴旋转,什么意思呢?

假设有一物体B处于世界坐标系XYZ,且与世界坐标系的原点重合,现发生一旋转,顺序为Z->Y->X,旋转角c,b,a;当绕Z轴转过角度\gamma时,Z轴不变,物体的X,Y轴变为X1,Y1,接下来如果还是按原来的Y轴旋转\beta,再按原来的X轴旋转\alpha,则是按固定(静止)轴旋转,相当于轴不动,点(物体)动,为左乘,那么此时的旋转矩阵应该表示为R = Rx*Ry*Rz;

但如果第二步是绕Y1旋转,得到新的X2,再绕新的X2旋转得到最后的变换,则认识为绕动态坐标轴旋转,相当于点不动,轴动,右乘,此时旋转矩阵表示为R = Rz*Ry*Rx;

所以发现了没有,以Z-Y-X顺序绕静止轴旋转和以X-Y-Z顺序绕动轴旋转得到的旋转矩阵是一致的;

你可能感兴趣的:(算法)