旋转矩阵与旋转角
矩阵的旋转,首先是分先后顺序,其次与转轴有关。
拆解
空间中旋转是3自由度,我们将其拆解为3次旋转。
拆解方式
1.Fixed angles/外旋:将转轴想象成空间中固定的方向
2.Euler angles/内旋:转动时,假象在物体上存在坐标系,我们针对这个坐标系做转动
Fixed Angles
针对x,y,z 转动
写法:三矩阵连乘,先转放后(左乘),先被操作到
矩阵参考上一节
例
由矩阵反推旋转角度
如图,假设中间角度不是90°,若是90°,不为唯一解,图示 只为一组解
例
Euler Angles
Z Y X Euler Angles
先转放前,后转放后,右乘
与Fixed Angles 相比,E…是按照在z,y,x旋转,F…是按照x,y,z旋转,得到的结果一样
例
Z Y Z
由旋转矩阵推算出角度
例
按照xyz旋转后的矩阵,按zyz的方式进行拆解,得到3个角度
小结
12种:第一次3种选择,第二次与第一次不一样2种,第三次同理 2种 3x2x2
刚体状态的表达
将移动与转动整合在一起进行描述,这个描述本身可以进行量化运算
一般情况:
先做转动,在平移
例
对向量进行移动
运动是相对的,当不动向量,动坐标系时,结果一样
例
连续运算
p点原本表达在c上面,需要表达在A上,需经过B,才能表达
假设B对A的矩阵存在,对应p点在B坐标系上的表达,又由B与C的关系与p点在C坐标系上的表达->p点原本在C上,经过旋转,转到B上的表达,在表达在A上。
B对A:转动+移动 C对B:转动+移动
相乘之后:左上,两个旋转矩阵相乘得到C到A的旋转矩阵
位移部分:B对A的只是位移,没有转动,加上,C对B的原点向量*B对A的旋转矩阵(我们原本有C原点在B上的表达,不能与B在A上的表达直接相加,必须经过旋转矩阵,表达在A上,才能相加)
举例:三个旋转矩阵连乘->D到A 移动部分:D原点在C上表达,无法与B原点在A上的表达相加,必须经过两次旋转
反矩阵
由B对A得出A对B->求反矩阵,利用单位矩阵(旋转矩阵的转置和逆矩阵相同)
D到U 有两种方式,D到A,A到U, D到C,C到B,B到U
若D对于C的矩阵不知道,则乘以前面的逆矩阵(U到B,B到C)