Rotation Matrix

性质和结论

从B frame相对于A frame的旋转矩阵的转置即为A frame相对于B frame的旋转矩阵,同时等于其逆矩阵: BAR=ABAT=ABA1 旋转矩阵可以将一个点(P)从一个frame(B)变换到另一个frame(A): AP=BARBP 用坐标轴绕参考坐标系旋转角度来确定旋转矩阵: RZA(θ)=[cosθsinθ0sinθcosθ0001]=[cθsθ0sθcθ0001] RXA(θ)=[1000cosθsinθ0sinθcosθ]=[1000cθsθ0sθcθ] RYA(θ)=[cosθ0sinθ010sinθ0cosθ]=[cθ0sθ010sθ0cθ] A表示A frame,参考坐标系,即世界坐标系,B表示Body frame,本地坐标系,即物体坐标系。

描述一个frame(B)相对另一个frame(A)的姿态: BAR=[|||AXBAYBAZB|||] 其中AXBAYBAZB分别代表B frame各坐标轴在A frame投影的列向量。

Fixed Angles

针对空间中固定的坐标系XYZ进行旋转操作: BARXYZ(γ,β,α)=RZ(α)RY(β)RX(γ) =[cαsα0sαcα0001][cβ0sβ010sβ0cβ][1000cγsγ0sγcγ] =[cαcβcαsβsγsαcγcαsβcγ+sαsγsαcβsαsβsγ+cαcγsαsβcγcαsγsβcβsγcβcγ]=[r11r12r13r21r22r23r31r32r33]

先转的放在后面,转动的顺序(左乘)是不能互换的。

通过R推算Angles: BARXYZ(γ,β,α)=[cαcβcαsβsγsαcγcαsβcγ+sαsγsαcβsαsβsγ+cαcγsαsβcγcαsγsβcβsγcβcγ]=[r11r12r13r21r22r23r31r32r33] if β90 β=Atan2(r31,r112+r212) α=Atan2(r21cβ,r11cβ) γ=Atan2(r32cβ,r33cβ) if β=90 α=0 γ=Atan2(r12,r22) if β=90 α=0 γ=Atan2(r12,r22)

Euler Angles

Z-Y-X 先转的放在前面,转动的顺序(左乘)是不能互换的。 对Fixed Angle以XYZ的顺序转动,相当于对Euler Angle以ZYX的顺序转动。 Euler Angle的正转和Fixed Angle的反转会得到相同的解。

刚体状态的表达

Homogeneous transformation matrix (4x4): 左上角为旋转矩阵,右上角为移动状态。

移动和转动复合运算:

可连续操作: "sequential transformation"

Mapping and Operator:

transformation matrix既有Mapping(把向量从一个frame转换到另一个frame下来看)的功能也可当作Operator对向量(或点)进行移动或旋转(在同一个frame)。

Homogeneous transformation matrix的三种用法

  1. 描述一个frame(相对于另一个frame)的空间状态。
  2. 将point由某一个frame的表达转换到另一个frame来表达。
  3. 将point(vector)在同一个frame中进行移动和转动。

Transformation Matrix运算

逆矩阵:

连续运算法则:

  1. {B}对{A}的转轴旋转:用"premultiply",先转的放在后面
  2. {B}对{B}自身的转轴旋转:用"postmultiply",先转的放在前面

機器人學一 (Robotics (1))


Rotation Matrix
https://symcreg.github.io/2024/09/05/Rotation-Matrix/
作者
sam
发布于
2024年9月5日
许可协议