旋转矩阵 Rotation Matrix
关于Rotation Matrix
- 三个用法:
- 描述一个frame相对于另一个frame的姿态
- 将point由某一个frame的表达转换到另一个frame(仅有相对转动变化)来表达
- 将point(vector)在同一个frame中进行转动
思考——空间中的Rotation是3DOFs,那要如何把一般rotation matrix所表达的姿态,拆解成3次旋转角度,以应对到3个DOFs?
注意事项:
- Rotation前后顺序需要明确定义(与移动不同,先向X移动后向Y移动与先向Y移动后向X移动可以互换顺序,而旋转不可以)
- 旋转转轴也需要明确定义。一般有两种:【固定不动】旋转轴和【Body frame(随动)】转轴。
两个拆解方式:
- 对方向【固定不动】的旋转轴旋转:Fixed angles…
- 对【转动的frame当下所在】的旋转方向旋转:Euler angles …
Fixed Angles—X-Y-Z Fixed Angles
由angles推算旋转矩阵R
X-Y-Z Fixed Angles — 由angles推算旋转矩阵R(三次旋转分别针对X,Y,Z轴来做,X,Y,Z轴是固定不动的,如下图蓝色坐标系)(逆时针为正)
如何由三个角度推算出Rotation Matrix?
对应外旋概念
由R推算angles
Euler Angles—Z-Y-X Euler Angles
由angles推算R (绕被转动转轴去做旋转)—Z-Y-X
对应 内旋概念
由angles推算Rotation Matrix—Z-Y-Z Eulers Angles
争取一个特定的R,有多种的拆解组合:
- 12种Euler Angles和12种Fixed Angles;
- 存在Duality—-共12种对Principal Axes连3次转动的拆解方法;
轴-角表示— Angle-Axis表达法:
四元数表示
参考了 台大 机器人学 课程)