天天看點

機器人學——姿态描述方法(歐拉角,固定角,D-H法,繞定軸旋轉)繞坐标軸旋轉歐拉角固定角D-H變換矩陣繞定軸旋轉

文章目錄

  • 繞坐标軸旋轉
  • 歐拉角
  • 固定角
  • 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歐拉角,旋轉過程如下圖所示:

機器人學——姿态描述方法(歐拉角,固定角,D-H法,繞定軸旋轉)繞坐标軸旋轉歐拉角固定角D-H變換矩陣繞定軸旋轉

其旋轉矩陣為:

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固定角坐标系,有時把他們定義為回轉角、俯仰角和偏轉角。

機器人學——姿态描述方法(歐拉角,固定角,D-H法,繞定軸旋轉)繞坐标軸旋轉歐拉角固定角D-H變換矩陣繞定軸旋轉

其旋轉矩陣為:

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法建立的變換矩陣的過程類似于歐拉角,其變換順序為

機器人學——姿态描述方法(歐拉角,固定角,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θ

繼續閱讀