上一篇文章已经详细介绍了我们应该如何对刚体的运动状态进行描述,接下来,我们对于刚体转动状态(姿态)描述里面的旋转矩阵(Rotation Matrix)进行更深一步的探究。
1)Rotation Matrix的特性
B相对于A的旋转矩阵,就等于A相对于B的旋转矩阵的转置
由下图可知,旋转矩阵是一个正交矩阵
其实在上一篇文章里面已经说过,旋转矩阵乘以一个向量的时候有改变向量的方向但不改变大小的效果。它是用9个量来表达一个旋转,但实际上一次旋转只有3个自由度(行列式为1提供了三个条件,两两互相垂直通过了三个条件)。
2)对于Rotation Matrix和三个主轴转角的关系,我们应该如何处理?——拆解成三次旋转角度
我们上一篇文章也简单介绍了欧拉角与旋转矩阵,这里我们进行具体的讲解。
注意事项:
明确多次旋转的先后顺序(对于移动而言,前后移动顺序没有影响);
旋转轴也需要明确定义,是对固定不动的转轴旋转(Fixed angles)——空间中既定一个固定的x,y,x轴,刚体绕这三个轴进行转动;
还是对当下的旋转轴本身进行旋转(Euler angles)——针对物体本身的坐标轴进行转动。
以三个principal axes旋转的matrix为基础,进行分析
3)Rotation Matrix的三种用法
1:描述一个frame相对于另外一个frame的姿态(b frame上面的三个主轴在a frame上面三个主轴的投影)
2:可以将一个向量point由某一个frame的表达换到另外一个和这个frame有相对旋转的frame来表达
3:将一个向量point在同一个frame中进行转动
4)针对前面提到的Fixed angles我们进行具体分析
如上图,绕固定轴旋转,右乘。
对于上图的绕固定轴旋转,我们得知了旋转矩阵反推各个旋转角度:(中间的旋转角度不是90°时,只有唯一解)
5)针对前面提到的Euler angles我们进行具体分析
注意:这两个旋转方式之间还有一定的联系,如下图,两种旋转方式相等
总结:
如何在空间上表达刚体的运动状态?
在刚体上建立body frame(常建立在质心上)
移动:由body frame的原点位置判定(相对于世界坐标的相对距离的向量来表示)
转动:由body frame的姿态判定(三个坐标主轴相对于世界坐标系的方向来代表——投影到world frame上)
那么在矩阵运算的时候如何把向量和旋转矩阵的运算整合到一个式子里面去?我们下一个章节进行介绍。