绕坐标轴旋转

刚体绕X,Y,Z轴旋转θ角的公式
R X ( θ ) = [ 1 0 0 0 cos ⁡ θ − sin ⁡ θ 0 sin ⁡ θ cos ⁡ θ ] R_{X}(\theta)=\left[ \begin{array}{ccc}{1} & {0} & {0} \\ {0} & {\cos \theta} & {-\sin \theta} \\ {0} & {\sin \theta} & {\cos \theta}\end{array}\right] RX(θ)=1000cosθsinθ0sinθcosθ

R Y ( θ ) = [ cos ⁡ θ 0 sin ⁡ θ 0 1 0 − sin ⁡ θ 0 cos ⁡ θ ] R_{Y}(\theta)=\left[ \begin{array}{ccc}{\cos \theta} & {0} & {\sin \theta} \\ {0} & {1} & {0} \\ {-\sin \theta} & {0} & {\cos \theta}\end{array}\right] RY(θ)=cosθ0sinθ010sinθ0cosθ

R Z ( θ ) = [ cos ⁡ θ − sin ⁡ θ 0 sin ⁡ θ cos ⁡ θ 0 0 0 1 ] R_{Z}(\theta)=\left[ \begin{array}{ccc}{\cos \theta} & {-\sin \theta} & {0} \\ {\sin \theta} & {\cos \theta} & {0} \\ {0} & {0} & {1}\end{array}\right] RZ(θ)=cosθsinθ0sinθcosθ0001

欧拉角

例如首先将坐标系{B}和一个已知参考坐标系 { A } \{A\} {A}重合。先将 { B } \{B\} {B} Z B Z_B ZB旋转 α \alpha α,再绕 Y B Y_B YB旋转 β \beta β,最后绕 X B X_B XB旋转 γ \gamma γ
这样三个一组的旋转被称作欧拉角
上面描述的就是ZYX欧拉角,旋转过程如下图所示:
在这里插入图片描述
其旋转矩阵为:
R Z ′ Y ′ X ′ ( α , β , γ ) = R z ( α ) R Y ( β ) R X ( γ ) = [ 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 γ ] \boldsymbol{R}_{Z^{\prime} Y^{\prime} X^{\prime}}(\alpha, \beta, \gamma) =R_{z}(\alpha) R_{Y}(\beta) R_{X}(\gamma)\\ =\left[ \begin{array}{ccc} {c \alpha c \beta } & {c \alpha s \beta s \gamma-s \alpha c \gamma} & {c \alpha s \beta c \gamma+s \alpha s \gamma} \\{s \alpha c \beta} & {-s \alpha s \beta s \gamma+c \alpha c \gamma} & {-s \alpha s \beta c \gamma-c \alpha s \gamma} \\ {-s \beta} & {c \beta s \gamma} & {c \beta c \gamma} \end{array}\right] RZYX(α,β,γ)=Rz(α)RY(β)RX(γ)=cαcβsαcβsβcαsβsγsαcγsαsβsγ+cαcγcβsγcαsβcγ+sαsγsαsβcγcαsγcβcγ
所有12种欧拉角坐标系的定义由下式给出
R X ′ Y ′ Z ′ ( α , β , γ ) = [ c β c γ − c β s γ s β s α s β c γ + c α s γ − s α s β s γ + c α c γ − s α c β − c α s β c γ + s α s γ c α s β s γ + s α c γ c α c β ] \boldsymbol{R}_{X^{\prime} Y^{\prime} Z^{\prime}}(\alpha, \beta, \gamma) =\left[ \begin{array}{ccc}{c \beta c \gamma} & {-c \beta s \gamma} & {s \beta} \\ {s \alpha s \beta c \gamma+c \alpha s \gamma} & {-s \alpha s \beta s \gamma+c \alpha c \gamma} & {-s \alpha c \beta } \\{-c \alpha s \beta c \gamma+s \alpha s \gamma} & {c \alpha s \beta s \gamma+s \alpha c \gamma} & {c \alpha c \beta }\end{array}\right] RXYZ(α,β,γ)=cβcγsαsβcγ+cαsγcαsβcγ+sαsγcβsγsαsβsγ+cαcγcαsβsγ+sαcγsβsαcβcαcβ
R X ′ Z ′ Y ′ ( α , β , γ ) = [ c β c γ − s β c β s γ c α s β c γ + s α s γ c α c β c α s β s γ − s α c γ s α s β c γ − c α s γ s α c β s α s β s γ + c α c γ ] \boldsymbol{R}_{X^{\prime} Z^{\prime} Y^{\prime} }(\alpha, \beta, \gamma) =\left[ \begin{array}{ccc}{c \beta c \gamma} & {-s \beta} & {c \beta s \gamma} \\{c \alpha s \beta c \gamma+s \alpha s \gamma} & {c \alpha c \beta } & {c \alpha s \beta s \gamma-s \alpha c \gamma} \\ {s \alpha s \beta c \gamma-c \alpha s \gamma} & {s \alpha c \beta } & {s \alpha s \beta s \gamma+c \alpha c \gamma}\end{array}\right] RXZY(α,β,γ)=cβcγcαsβcγ+sαsγsαsβcγcαsγsβcαcβsαcβcβsγcαsβsγsαcγsαsβsγ+cαcγ
R Y ′ X ′ Z ′ ( α , β , γ ) = [ s α s β s γ + c α c γ s α s β c γ − c α s γ s α c β c β s γ c β c γ − s β c α s β s γ − s α c γ c α s β c γ + s α s γ c α c β ] \boldsymbol{R}_{Y^{\prime} X^{\prime} Z^{\prime}}(\alpha, \beta, \gamma) =\left[ \begin{array}{ccc} {s \alpha s \beta s \gamma+c \alpha c \gamma} & {s \alpha s \beta c \gamma-c \alpha s \gamma} & {s \alpha c \beta} \\{c \beta s \gamma} & {c \beta c \gamma} & {-s \beta} \\{c \alpha s \beta s \gamma-s \alpha c \gamma} & {c \alpha s \beta c \gamma+s \alpha s \gamma} & {c \alpha c \beta } \end{array}\right] RYXZ(α,β,γ)=sαsβsγ+cαcγcβsγcαsβsγsαcγsαsβcγcαsγcβcγcαsβcγ+sαsγsαcβsβcαcβ
R Y ′ Z ′ X ′ ( α , β , γ ) = [ c α c β − c α s β c γ + s α s γ c α s β s γ + s α c γ s β c β c γ − c β s γ − s α c β s α s β c γ + c α s γ − s α s β s γ + c α c γ ] \boldsymbol{R}_{Y^{\prime} Z^{\prime} X^{\prime}}(\alpha, \beta, \gamma) =\left[ \begin{array}{ccc} {c \alpha c \beta } & {-c \alpha s \beta c \gamma+s \alpha s \gamma} & {c \alpha s \beta s \gamma+s \alpha c \gamma} \\{s \beta} & {c \beta c \gamma} & {-c \beta s \gamma} \\ {-s \alpha c \beta} & {s \alpha s \beta c \gamma+c \alpha s \gamma} & {-s \alpha s \beta s \gamma+c \alpha c \gamma} \end{array}\right] RYZX(α,β,γ)=cαcβsβsαcβcαsβcγ+sαsγcβcγsαsβcγ+cαsγcαsβsγ+sαcγcβsγsαsβsγ+cαcγ
R Z ′ X ′ Y ′ ( α , β , γ ) = [ − s α s β s γ + c α c γ − s α c β s α s β c γ + c α s γ c α s β s γ + s α c γ c α c β − c α s β c γ + s α s γ − c β s γ s β c β c γ ] \boldsymbol{R}_{Z^{\prime} X^{\prime} Y^{\prime}}(\alpha, \beta, \gamma) =\left[ \begin{array}{ccc} {-s \alpha s \beta s \gamma+c \alpha c \gamma} & {-s \alpha c \beta} & {s \alpha s \beta c \gamma+c \alpha s \gamma} \\ {c \alpha s \beta s \gamma+s \alpha c \gamma} & {c \alpha c \beta } & {-c \alpha s \beta c \gamma+s \alpha s \gamma} \\{-c \beta s \gamma} & {s \beta} & {c \beta c \gamma} \end{array}\right] RZXY(α,β,γ)=sαsβsγ+cαcγcαsβsγ+sαcγcβsγsαcβcαcβsβsαsβcγ+cαsγcαsβcγ+sαsγcβcγ
R Z ′ Y ′ X ′ ( α , β , γ ) = [ 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 γ ] \boldsymbol{R}_{Z^{\prime} Y^{\prime} X^{\prime}}(\alpha, \beta, \gamma) =\left[ \begin{array}{ccc} {c \alpha c \beta } & {c \alpha s \beta s \gamma-s \alpha c \gamma} & {c \alpha s \beta c \gamma+s \alpha s \gamma} \\{s \alpha c \beta} & {-s \alpha s \beta s \gamma+c \alpha c \gamma} & {-s \alpha s \beta c \gamma-c \alpha s \gamma} \\ {-s \beta} & {c \beta s \gamma} & {c \beta c \gamma} \end{array}\right] RZYX(α,β,γ)=cαcβsαcβsβcαsβsγsαcγsαsβsγ+cαcγcβsγcαsβcγ+sαsγsαsβcγcαsγcβcγ
R X ′ Y ′ X ′ ( α , β , γ ) = [ c β s β s γ s β c γ s α s β − s α c β s γ + c α c γ − s α c β c γ − c α s γ c α s β c α c β s γ + s α c γ c α c β c γ − s α s γ ] \boldsymbol{R}_{X^{\prime} Y^{\prime} X^{\prime}}(\alpha, \beta, \gamma) =\left[ \begin{array}{ccc}{c \beta} & {s \beta s \gamma} & {s \beta c \gamma} \\{s \alpha s \beta } & {-s \alpha c \beta s \gamma+c \alpha c \gamma} & {-s \alpha c \beta c \gamma-c \alpha s \gamma} \\{c \alpha s \beta} & {c \alpha c \beta s \gamma+s \alpha c \gamma} & {c \alpha c \beta c \gamma-s \alpha s \gamma} \end{array}\right] RXYX(α,β,γ)=cβsαsβcαsβsβsγsαcβsγ+cαcγcαcβsγ+sαcγsβcγsαcβcγcαsγcαcβcγsαsγ
R X ′ Z ′ X ′ ( α , β , γ ) = [ c β − s β c γ s β s γ c α s β c α c β c γ − s α s γ − c α c β s γ − s α c γ s α s β s α c β c γ + c α s γ − s α c β s γ + c α c γ ] \boldsymbol{R}_{X^{\prime} Z^{\prime} X^{\prime}}(\alpha, \beta, \gamma) =\left[ \begin{array}{ccc}{c \beta} & {-s \beta c \gamma}& {s \beta s \gamma} \\{c \alpha s \beta} & {c \alpha c \beta c \gamma-s \alpha s \gamma} & {-c \alpha c \beta s \gamma-s \alpha c \gamma} \\{s \alpha s \beta } & {s \alpha c \beta c \gamma+c \alpha s \gamma} & {-s \alpha c \beta s \gamma+c \alpha c \gamma} \end{array}\right] RXZX(α,β,γ)=cβcαsβsαsβsβcγcαcβcγsαsγsαcβcγ+cαsγsβsγcαcβsγsαcγsαcβsγ+cαcγ
R Y ′ X ′ Y ′ ( α , β , γ ) = [ − s α c β s γ + c α c γ s α s β s α c β c γ + c α s γ s β s γ c β − s β c γ − c α c β s γ − s α c γ c α s β c α c β c γ − s α s γ ] \boldsymbol{R}_{Y^{\prime} X^{\prime} Y^{\prime}}(\alpha, \beta, \gamma) =\left[ \begin{array}{ccc}{-s \alpha c \beta s \gamma+c \alpha c \gamma} & {s \alpha s \beta } & {s \alpha c \beta c \gamma+c \alpha s \gamma} \\{s \beta s \gamma} & {c \beta} & {-s \beta c \gamma} \\{-c \alpha c \beta s \gamma-s \alpha c \gamma} & {c \alpha s \beta} & {c \alpha c \beta c \gamma-s \alpha s \gamma} \end{array}\right] RYXY(α,β,γ)=sαcβsγ+cαcγsβsγcαcβsγsαcγsαsβcβcαsβsαcβcγ+cαsγsβcγcαcβcγsαsγ
R Y ′ Z ′ Y ′ ( α , β , γ ) = [ c α c β c γ − s α s γ − c α s β c α c β s γ + s α c γ s β s γ c β s β c γ − s α c β c γ − c α s γ s α s β − s α c β s γ + c α c γ ] \boldsymbol{R}_{Y^{\prime} Z^{\prime} Y^{\prime}}(\alpha, \beta, \gamma) =\left[ \begin{array}{ccc} {c \alpha c \beta c \gamma-s \alpha s \gamma} & {-c \alpha s \beta} & {c \alpha c \beta s \gamma+s \alpha c \gamma} \\{s \beta s \gamma} & {c \beta} & {s \beta c \gamma} \\{-s \alpha c \beta c \gamma-c \alpha s \gamma} & {s \alpha s \beta } & {-s \alpha c \beta s \gamma+c \alpha c \gamma} \end{array}\right] RYZY(α,β,γ)=cαcβcγsαsγsβsγsαcβcγcαsγcαsβcβsαsβcαcβsγ+sαcγsβcγsαcβsγ+cαcγ
R Z ′ X ′ Z ′ ( α , β , γ ) = [ − s α c β s γ + c α c γ − s α c β c γ − c α s γ s α s β c α c β s γ + s α c γ c α c β c γ − s α s γ − c α s β s β s γ s β c γ c β ] \boldsymbol{R}_{Z^{\prime} X^{\prime} Z^{\prime}}(\alpha, \beta, \gamma) =\left[ \begin{array}{ccc} {-s \alpha c \beta s \gamma+c \alpha c \gamma} & {-s \alpha c \beta c \gamma-c \alpha s \gamma} & {s \alpha s \beta } \\{c \alpha c \beta s \gamma+s \alpha c \gamma} & {c \alpha c \beta c \gamma-s \alpha s \gamma} & {-c \alpha s \beta} \\{s \beta s \gamma} & {s \beta c \gamma} & {c \beta} \end{array}\right] RZXZ(α,β,γ)=sαcβsγ+cαcγcαcβsγ+sαcγsβsγsαcβcγcαsγcαcβcγsαsγsβcγsαsβcαsβcβ
R Z ′ Y ′ Z ′ ( α , β , γ ) = [ c α c β c γ − s α s γ − c α c β s γ − s α c γ c α s β s α c β c γ + c α s γ − s α c β s γ + c α c γ s α s β − s β c γ s β s γ c β ] \boldsymbol{R}_{Z^{\prime} Y^{\prime} Z^{\prime}}(\alpha, \beta, \gamma) =\left[ \begin{array}{ccc} {c \alpha c \beta c \gamma-s \alpha s \gamma} & {-c \alpha c \beta s \gamma-s \alpha c \gamma} & {c \alpha s \beta} \\{s \alpha c \beta c \gamma+c \alpha s \gamma} & {-s \alpha c \beta s \gamma+c \alpha c \gamma} & {s \alpha s \beta } \\{-s \beta c \gamma} & {s \beta s \gamma} & {c \beta} \end{array}\right] RZYZ(α,β,γ)=cαcβcγsαsγsαcβcγ+cαsγsβcγcαcβsγsαcγsαcβsγ+cαcγsβsγcαsβsαsβcβ

固定角

固定角的描述方法与欧拉角类似只不过是绕基础坐标系的坐标轴旋转:
例如XYZ固定角坐标系,有时把他们定义为回转角、俯仰角和偏转角
在这里插入图片描述
其旋转矩阵为:
R X Y Z ( γ , β , α ) = R z ( α ) R Y ( β ) R X ( γ ) = [ 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 γ ] \boldsymbol{R}_{XYZ}(\gamma, \beta, \alpha) =R_{z}(\alpha) R_{Y}(\beta) R_{X}(\gamma)\\ =\left[ \begin{array}{ccc} {c \alpha c \beta } & {c \alpha s \beta s \gamma-s \alpha c \gamma} & {c \alpha s \beta c \gamma+s \alpha s \gamma} \\{s \alpha c \beta} & {s \alpha s \beta s \gamma+c \alpha c \gamma} & {s \alpha s \beta c \gamma-c \alpha s \gamma} \\ {-s \beta} & {c \beta s \gamma} & {c \beta c \gamma} \end{array}\right] RXYZ(γ,β,α)=Rz(α)RY(β)RX(γ)=cαcβsαcβsβcαsβsγsαcγsαsβsγ+cαcγcβsγcαsβcγ+sαsγsαsβcγcαsγcβcγ
可以看出他与ZYX欧拉角结果相同。其实有如下结论:
  三次绕固定轴旋转的最终姿态和以相反顺序三次绕运动坐标轴旋转的最终姿态相同

所有12种固定角坐标系的定义由下式给出:
R X Y Z ( γ , β , α ) = [ 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 γ ] \boldsymbol{R}_{XYZ}(\gamma, \beta, \alpha) =\left[ \begin{array}{ccc} {c \alpha c \beta } & {c \alpha s \beta s \gamma-s \alpha c \gamma} & {c \alpha s \beta c \gamma+s \alpha s \gamma} \\{s \alpha c \beta} & {s \alpha s \beta s \gamma+c \alpha c \gamma} & {s \alpha s \beta c \gamma-c \alpha s \gamma} \\ {-s \beta} & {c \beta s \gamma} & {c \beta c \gamma} \end{array}\right] RXYZ(γ,β,α)=cαcβsαcβsβcαsβsγsαcγsαsβsγ+cαcγcβsγcαsβcγ+sαsγsαsβcγcαsγcβcγ
R X Z Y ( γ , β , α ) = [ c α c β − c α s β c γ + s α s γ c α s β s γ + s α c γ s β c β c γ − c β s γ − s α c β s α s β c γ + c α s γ − s α s β s γ + c α c γ ] \boldsymbol{R}_{XZY}(\gamma, \beta, \alpha) =\left[ \begin{array}{ccc} {c \alpha c \beta } & {-c \alpha s \beta c \gamma+s \alpha s \gamma} & {c \alpha s \beta s \gamma+s \alpha c \gamma} \\{s \beta} & {c \beta c \gamma} & {-c \beta s \gamma} \\ {-s \alpha c \beta} & {s \alpha s \beta c \gamma+c \alpha s \gamma} & {-s \alpha s \beta s \gamma+c \alpha c \gamma} \end{array}\right] RXZY(γ,β,α)=cαcβsβsαcβcαsβcγ+sαsγcβcγsαsβcγ+cαsγcαsβsγ+sαcγcβsγsαsβsγ+cαcγ
R Y X Z ( γ , β , α ) = [ − s α s β s γ + c α c γ − s α c β s α s β c γ + c α s γ c α s β s γ + s α c γ c α c β − c α s β c γ + s α s γ − c β s γ s β c β c γ ] \boldsymbol{R}_{YXZ}(\gamma, \beta, \alpha) =\left[ \begin{array}{ccc} {-s \alpha s \beta s \gamma+c \alpha c \gamma} & {-s \alpha c \beta} & {s \alpha s \beta c \gamma+c \alpha s \gamma} \\ {c \alpha s \beta s \gamma+s \alpha c \gamma} & {c \alpha c \beta } & {-c \alpha s \beta c \gamma+s \alpha s \gamma} \\{-c \beta s \gamma} & {s \beta} & {c \beta c \gamma} \end{array}\right] RYXZ(γ,β,α)=sαsβsγ+cαcγcαsβsγ+sαcγcβsγsαcβcαcβsβsαsβcγ+cαsγcαsβcγ+sαsγcβcγ
R Y Z X ( γ , β , α ) = [ c β c γ − s β c β s γ c α s β c γ + s α s γ c α c β c α s β s γ − s α c γ s α s β c γ − c α s γ s α c β s α s β s γ + c α c γ ] \boldsymbol{R}_{YZX}(\gamma, \beta, \alpha) =\left[ \begin{array}{ccc}{c \beta c \gamma} & {-s \beta} & {c \beta s \gamma} \\{c \alpha s \beta c \gamma+s \alpha s \gamma} & {c \alpha c \beta } & {c \alpha s \beta s \gamma-s \alpha c \gamma} \\ {s \alpha s \beta c \gamma-c \alpha s \gamma} & {s \alpha c \beta } & {s \alpha s \beta s \gamma+c \alpha c \gamma}\end{array}\right] RYZX(γ,β,α)=cβcγcαsβcγ+sαsγsαsβcγcαsγsβcαcβsαcβcβsγcαsβsγsαcγsαsβsγ+cαcγ
R Z X Y ( γ , β , α ) = [ s α s β s γ + c α c γ s α s β c γ − c α s γ s α c β c β s γ c β c γ − s β c α s β s γ − s α c γ c α s β c γ + s α s γ c α c β ] \boldsymbol{R}_{ZXY}(\gamma, \beta, \alpha) =\left[ \begin{array}{ccc} {s \alpha s \beta s \gamma+c \alpha c \gamma} & {s \alpha s \beta c \gamma-c \alpha s \gamma} & {s \alpha c \beta} \\{c \beta s \gamma} & {c \beta c \gamma} & {-s \beta} \\{c \alpha s \beta s \gamma-s \alpha c \gamma} & {c \alpha s \beta c \gamma+s \alpha s \gamma} & {c \alpha c \beta } \end{array}\right] RZXY(γ,β,α)=sαsβsγ+cαcγcβsγcαsβsγsαcγsαsβcγcαsγcβcγcαsβcγ+sαsγsαcβsβcαcβ
R Z Y X ( γ , β , α ) = [ c β c γ − c β s γ s β s α s β c γ + c α s γ − s α s β s γ + c α c γ − s α c β − c α s β c γ + s α s γ c α s β s γ + s α c γ c α c β ] \boldsymbol{R}_{ZYX}(\gamma, \beta, \alpha) =\left[ \begin{array}{ccc}{c \beta c \gamma} & {-c \beta s \gamma} & {s \beta} \\ {s \alpha s \beta c \gamma+c \alpha s \gamma} & {-s \alpha s \beta s \gamma+c \alpha c \gamma} & {-s \alpha c \beta } \\{-c \alpha s \beta c \gamma+s \alpha s \gamma} & {c \alpha s \beta s \gamma+s \alpha c \gamma} & {c \alpha c \beta }\end{array}\right] RZYX(γ,β,α)=cβcγsαsβcγ+cαsγcαsβcγ+sαsγcβsγsαsβsγ+cαcγcαsβsγ+sαcγsβsαcβcαcβ
R X Y X ( γ , β , α ) = [ c β s β s γ s β c γ s α s β − s α c β s γ + c α c γ − s α c β c γ − c α s γ c α s β c α c β s γ + s α c γ c α c β c γ − s α s γ ] \boldsymbol{R}_{XYX}(\gamma, \beta, \alpha) =\left[ \begin{array}{ccc}{c \beta} & {s \beta s \gamma} & {s \beta c \gamma} \\{s \alpha s \beta } & {-s \alpha c \beta s \gamma+c \alpha c \gamma} & {-s \alpha c \beta c \gamma-c \alpha s \gamma} \\{c \alpha s \beta} & {c \alpha c \beta s \gamma+s \alpha c \gamma} & {c \alpha c \beta c \gamma-s \alpha s \gamma} \end{array}\right] RXYX(γ,β,α)=cβsαsβcαsβsβsγsαcβsγ+cαcγcαcβsγ+sαcγsβcγsαcβcγcαsγcαcβcγsαsγ
R X Z X ( γ , β , α ) = [ c β − s β c γ s β s γ c α s β c α c β c γ − s α s γ − c α c β s γ − s α c γ s α s β s α c β c γ + c α s γ − s α c β s γ + c α c γ ] \boldsymbol{R}_{XZX}(\gamma, \beta, \alpha) =\left[ \begin{array}{ccc}{c \beta} & {-s \beta c \gamma}& {s \beta s \gamma} \\{c \alpha s \beta} & {c \alpha c \beta c \gamma-s \alpha s \gamma} & {-c \alpha c \beta s \gamma-s \alpha c \gamma} \\{s \alpha s \beta } & {s \alpha c \beta c \gamma+c \alpha s \gamma} & {-s \alpha c \beta s \gamma+c \alpha c \gamma} \end{array}\right] RXZX(γ,β,α)=cβcαsβsαsβsβcγcαcβcγsαsγsαcβcγ+cαsγsβsγcαcβsγsαcγsαcβsγ+cαcγ
R Y X Y ( γ , β , α ) = [ − s α c β s γ + c α c γ s α s β s α c β c γ + c α s γ s β s γ c β − s β c γ − c α c β s γ − s α c γ c α s β c α c β c γ − s α s γ ] \boldsymbol{R}_{YXY}(\gamma, \beta, \alpha) =\left[ \begin{array}{ccc}{-s \alpha c \beta s \gamma+c \alpha c \gamma} & {s \alpha s \beta } & {s \alpha c \beta c \gamma+c \alpha s \gamma} \\{s \beta s \gamma} & {c \beta} & {-s \beta c \gamma} \\{-c \alpha c \beta s \gamma-s \alpha c \gamma} & {c \alpha s \beta} & {c \alpha c \beta c \gamma-s \alpha s \gamma} \end{array}\right] RYXY(γ,β,α)=sαcβsγ+cαcγsβsγcαcβsγsαcγsαsβcβcαsβsαcβcγ+cαsγsβcγcαcβcγsαsγ
R Y Z Y ( γ , β , α ) = [ c α c β c γ − s α s γ − c α s β c α c β s γ + s α c γ s β s γ c β s β c γ − s α c β c γ − c α s γ s α s β − s α c β s γ + c α c γ ] \boldsymbol{R}_{YZY}(\gamma, \beta, \alpha) =\left[ \begin{array}{ccc} {c \alpha c \beta c \gamma-s \alpha s \gamma} & {-c \alpha s \beta} & {c \alpha c \beta s \gamma+s \alpha c \gamma} \\{s \beta s \gamma} & {c \beta} & {s \beta c \gamma} \\{-s \alpha c \beta c \gamma-c \alpha s \gamma} & {s \alpha s \beta } & {-s \alpha c \beta s \gamma+c \alpha c \gamma} \end{array}\right] RYZY(γ,β,α)=cαcβcγsαsγsβsγsαcβcγcαsγcαsβcβsαsβcαcβsγ+sαcγsβcγsαcβsγ+cαcγ
R Z X Z ( γ , β , α ) = [ − s α c β s γ + c α c γ − s α c β c γ − c α s γ s α s β c α c β s γ + s α c γ c α c β c γ − s α s γ − c α s β s β s γ s β c γ c β ] \boldsymbol{R}_{ZXZ}(\gamma, \beta, \alpha) =\left[ \begin{array}{ccc} {-s \alpha c \beta s \gamma+c \alpha c \gamma} & {-s \alpha c \beta c \gamma-c \alpha s \gamma} & {s \alpha s \beta } \\{c \alpha c \beta s \gamma+s \alpha c \gamma} & {c \alpha c \beta c \gamma-s \alpha s \gamma} & {-c \alpha s \beta} \\{s \beta s \gamma} & {s \beta c \gamma} & {c \beta} \end{array}\right] RZXZ(γ,β,α)=sαcβsγ+cαcγcαcβsγ+sαcγsβsγsαcβcγcαsγcαcβcγsαsγsβcγsαsβcαsβcβ
R Z Y Z ( γ , β , α ) = [ c α c β c γ − s α s γ − c α c β s γ − s α c γ c α s β s α c β c γ + c α s γ − s α c β s γ + c α c γ s α s β − s β c γ s β s γ c β ] \boldsymbol{R}_{ZYZ}(\gamma, \beta, \alpha) =\left[ \begin{array}{ccc} {c \alpha c \beta c \gamma-s \alpha s \gamma} & {-c \alpha c \beta s \gamma-s \alpha c \gamma} & {c \alpha s \beta} \\{s \alpha c \beta c \gamma+c \alpha s \gamma} & {-s \alpha c \beta s \gamma+c \alpha c \gamma} & {s \alpha s \beta } \\{-s \beta c \gamma} & {s \beta s \gamma} & {c \beta} \end{array}\right] RZYZ(γ,β,α)=cαcβcγsαsγsαcβcγ+cαsγsβcγcαcβsγsαcγsαcβsγ+cαcγsβsγcαsβsαsβcβ

D-H变换矩阵

D-H法建立的变换矩阵的过程类似于欧拉角,其变换顺序为
在这里插入图片描述
沿 X i X_i Xi轴从 Z i Z_i Zi Z i + 1 Z_{i+1} Zi+1移动 a i a_i ai
X i X_i Xi轴从 Z i Z_i Zi Z i + 1 Z_{i+1} Zi+1旋转 α i \alpha_i αi
沿 Z i Z_i Zi轴从 X i − 1 X_{i-1} Xi1 X i X_i Xi移动 d i d_i di
Z i Z_i Zi轴从 X i − 1 X_{i-1} Xi1 X i X_i Xi旋转 θ i \theta_i θi
所以一个关节的变换矩阵如下
i i − 1 T = R X ( α i − 1 ) D X ( a i − 1 ) R Z ( θ i ) D Z ( d i ) _{i}^{i-1} T=R_{X}\left(\alpha_{i-1}\right) D_{X}\left(a_{i-1}\right) R_{Z}\left(\theta_{i}\right) D_{Z}\left(d_{i}\right) ii1T=RX(αi1)DX(ai1)RZ(θi)DZ(di)

i i − 1 T = [ c θ i − s θ i 0 a i − 1 s θ i c α i − 1 c θ i c α i − 1 − s α i − 1 − s α i − 1 d i s θ i s α i − 1 c θ i s α i − 1 c α i − 1 c α i − 1 d i 0 0 0 1 ] _{i}^{i-1} T=\left[ \begin{array}{cccc}{c \boldsymbol{\theta}_{i}} & {-s \theta_{i}} & {0} & {a_{i-1}} \\ {s \theta_{i} c \alpha_{i-1}} & {c \boldsymbol{\theta}_{i} c \alpha_{i-1}} & {-s \alpha_{i-1}} & {-s \alpha_{i-1} d_{i}} \\ {s \theta_{i} s \alpha_{i-1}} & {c \theta_{i} s \alpha_{i-1}} & {c \alpha_{i-1}} & {c \alpha_{i-1} d_{i}} \\ {0} & {0} & {0} & {1}\end{array}\right] ii1T=cθisθicαi1sθisαi10sθicθicαi1cθisαi100sαi1cαi10ai1sαi1dicαi1di1

绕定轴旋转

矢量 q q q绕单位矢量 k ^ \widehat{k} k 旋转 θ \theta θ角,由Rodriques公式得:
q ′ = q c o s θ + s i n θ ( k ^ × q ) + ( 1 − c o s θ ) ( k ^ ⋅ q ^ ) k ^ q'=qcos\theta+sin\theta(\widehat{k}\times q)+(1-cos\theta)(\widehat{k}\cdot \widehat{q})\widehat{k} q=qcosθ+sinθ(k ×q)+(1cosθ)(k q )k
其旋转矩阵表示为:
R K ( θ ) = [ k x k x v θ + c θ k x k y v θ − k z s θ k x k z v θ + k y s θ k x k y v θ + k z s θ k y k y v θ + c θ k y k z v θ − k x s θ k x k z v θ − k y s θ k y k z v θ + k x s θ k z k z v θ + c θ ] \boldsymbol{R}_{K}(\theta) =\left[ \begin{array}{ccc} {k_xk_xv\theta+c\theta} & {k_xk_yv\theta-k_zs\theta} & {k_xk_zv\theta+k_ys\theta} \\{k_xk_yv\theta+k_zs\theta} & {k_yk_yv\theta+c\theta} & {k_yk_zv\theta-k_xs\theta} \\{k_xk_zv\theta-k_ys\theta} & {k_yk_zv\theta+k_xs\theta} & {k_zk_zv\theta+c\theta} \end{array}\right] RK(θ)=kxkxvθ+cθkxkyvθ+kzsθkxkzvθkysθkxkyvθkzsθkykyvθ+cθkykzvθ+kxsθkxkzvθ+kysθkykzvθkxsθkzkzvθ+cθ
其中
v θ = 1 − c θ v_\theta=1-c\theta vθ=1cθ

Logo

CSDN联合极客时间,共同打造面向开发者的精品内容学习社区,助力成长!

更多推荐