文章目录

  • 绕坐标轴旋转
  • 欧拉角
  • 固定角
  • D-H变换矩阵
  • 绕定轴旋转

绕坐标轴旋转

刚体绕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​(θ)=⎣⎡​100​0cosθsinθ​0−sinθ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θ0−sinθ​010​sinθ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θ0​−sinθcosθ0​001​⎦⎤​

欧拉角

例如首先将坐标系{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] RZ′Y′X′​(α,β,γ)=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] RX′Y′Z′​(α,β,γ)=⎣⎡​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] RX′Z′Y′​(α,β,γ)=⎣⎡​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] RY′X′Z′​(α,β,γ)=⎣⎡​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] RY′Z′X′​(α,β,γ)=⎣⎡​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] RZ′X′Y′​(α,β,γ)=⎣⎡​−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] RZ′Y′X′​(α,β,γ)=⎣⎡​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] RX′Y′X′​(α,β,γ)=⎣⎡​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] RX′Z′X′​(α,β,γ)=⎣⎡​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] RY′X′Y′​(α,β,γ)=⎣⎡​−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] RY′Z′Y′​(α,β,γ)=⎣⎡​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] RZ′X′Z′​(α,β,γ)=⎣⎡​−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] RZ′Y′Z′​(α,β,γ)=⎣⎡​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} Xi−1​向 X i X_i Xi​移动 d i d_i di​
绕 Z i Z_i Zi​轴从 X i − 1 X_{i-1} Xi−1​向 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) ii−1​T=RX​(αi−1​)DX​(ai−1​)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] ii−1​T=⎣⎢⎢⎡​cθi​sθi​cαi−1​sθi​sαi−1​0​−sθi​cθi​cαi−1​cθi​sαi−1​0​0−sαi−1​cαi−1​0​ai−1​−sαi−1​di​cαi−1​di​1​⎦⎥⎥⎤​

绕定轴旋转

矢量 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)+(1−cosθ)(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​(θ)=⎣⎡​kx​kx​vθ+cθkx​ky​vθ+kz​sθkx​kz​vθ−ky​sθ​kx​ky​vθ−kz​sθky​ky​vθ+cθky​kz​vθ+kx​sθ​kx​kz​vθ+ky​sθky​kz​vθ−kx​sθkz​kz​vθ+cθ​⎦⎤​
其中
v θ = 1 − c θ v_\theta=1-c\theta vθ​=1−cθ

机器人学——姿态描述方法(欧拉角,固定角,D-H法,绕定轴旋转)相关推荐

  1. 齐次矩阵转化为欧拉角坐标系_做控制要知道的刚体旋转知识(三)欧拉角

    欧拉角 前两篇 FrancisZhao:做控制要知道的刚体旋转知识(一)轴角法​zhuanlan.zhihu.com FrancisZhao:做控制要知道的刚体旋转知识(二)四元数​zhuanlan. ...

  2. 深入浅出无人机姿态,欧拉角,四元数,指数表示及数据转换与程序实现

    很多朋友留言或私信问到书名和出版日期.先感谢这么多朋友的支持和信任,MR.城堡会努力为大家带来更多干货.另外,交稿日期是今年12月,出版要看机械工业出版社的安排,书名和出版情况确定后,会在专栏告知大家 ...

  3. 三角函数π/2转化_人工智能数学基础1:三角函数的定义、公式及固定角三角函数值...

    一.三角函数的定义及名称 在直角三角形中,当平面上的三点A.B.C的连线,AB.AC.BC,构成一个直角三角形,其中∠ACB为直角.对∠BAC(在此简称为θ)而言,对边(opposite)a=BC.斜 ...

  4. 绕固定坐标轴旋转与绕自身坐标轴旋转一致性证明

      最近在看人头姿态和视线方向检测的东西,需要考虑坐标系与坐标系之间的旋转.用欧拉角表示坐标系的旋转时存在两种旋转方法,另外旋转的顺序也会对旋转结果有影响,查了一些资料总结一下结果.   描述坐标系B ...

  5. 图片处理之等比例压缩(固定W或H不变,使得图片等比例缩小或放大)

    #coding=utf-8 import os #打开文件时需要 from PIL import Image import re Picture_path = r'C:/Users/jiabin.ou ...

  6. 姿态解算知识(三)-陀螺仪加速度计6轴数据融合

    这么久的惯导总算是没白看,加上一篇博客的指点,这两天把Mahony的九轴数据融合算法看懂了.可惜第二版硬件还没到,磁力计用不了,没法验证效果~今天先总结下陀螺仪和加速度计的六轴数据融合. 版权声明 原 ...

  7. 角谱传播法matlab模拟,角谱法分析高斯光

    矢量高斯光束传播分析和近轴球面近似有 效性 卡尔G.陈,保罗T.康科拉,胡安费雷拉,拉尔夫·K.海尔曼,和Mark L.影子城堡 麻省理工大学,剑桥,马萨诸塞州02139 收稿2001年3月5日;五月 ...

  8. 机器人学中雅可比矩阵求导计算(Angeles法)

    文章目录 算法求解过程 代码及解析(参考Robotics Toolbox) 算法求解过程 参数说明: aia_iai​:{0}-{i}之间的矢量距离 eie_iei​:在base系下描述的关节轴向量 ...

  9. linux全角半角切换快捷键,半角全角切换快捷键【搞定方向】

    有不少用户在使用电脑的过程中可能会碰到半角全角切换快捷键的情况.大部分用户电脑技术都是菜鸟水平,面对半角全角切换快捷键的问题,无法自行解决.不少用户都来咨询小编半角全角切换快捷键要怎么处理?其实可以根 ...

最新文章

  1. IE二级链接无法打开
  2. innodb表空间结构
  3. (0076)iOS开发之UIWebView嵌套直播平台(不涉及播放器技术的开发)
  4. 前端之路从零开始——第二周第四天笔记(background)
  5. (转)fastcgi简介
  6. Kubernetes中部署Docker registry2.7.1并通过containerd实现拉取镜像到应用Pod的部署
  7. 说说4种常用编码的区别?
  8. NOI.AC-序列【堆】
  9. Java 用栈实现队列
  10. [云计算] 001.云计算简介
  11. Windows XP优化设置之网络篇
  12. 我家遥控器载波波形研究
  13. stm32f103zet6定时器和pwm简单驱动步进电机
  14. 【diannaoxitong】word安全模式怎么解除?word安全模式快速解除方法
  15. Ubuntu18系统 PL2303GT驱动安装及绑定
  16. aws亚马逊云购买服务器的操作记录
  17. cpp整理学习笔记 文件I/O:随机存取fseek()和ftell()
  18. 开放创新,合作共赢 华为智慧家庭解决方案
  19. java计算机毕业设计基于安卓Android的运动管理软件app
  20. Oracle VARCHAR2超过4000字节-数据库修改

热门文章

  1. Centos7 配置网卡链路聚合(转载)
  2. IE里Window的Method列表
  3. 微软发布支持Linux的SQL Server
  4. Redis 作 mysql 的缓存服务器及redis的高可用
  5. matlab怎么产生帕斯卡矩阵,【Matlab实验】 创建矩阵
  6. Android烟雾监控应用,基于Android的智能家庭监控系统研制
  7. 大数据为各国信息安全带来挑战 美率先采取措施
  8. C语言实验系统PPT展示,c语言第四谭浩强机实验课件.ppt
  9. comsol学习总结-------热
  10. 帆软report分析报表修改控件样式