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

    xiaoxiao2024-11-11  153

    文章目录

    绕坐标轴旋转欧拉角固定角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θ

    最新回复(0)