绕坐标轴旋转
刚体绕X,Y,Z轴旋转θ角的公式
RX(θ)=⎣⎡1000cosθsinθ0−sinθcosθ⎦⎤
RY(θ)=⎣⎡cosθ0−sinθ010sinθ0cosθ⎦⎤
RZ(θ)=⎣⎡cosθsinθ0−sinθcosθ0001⎦⎤
欧拉角
例如首先将坐标系{B}和一个已知参考坐标系{A}重合。先将{B}绕ZB旋转α,再绕YB旋转β,最后绕XB旋转γ
这样三个一组的旋转被称作欧拉角。
上面描述的就是ZYX欧拉角,旋转过程如下图所示:
其旋转矩阵为:
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种欧拉角坐标系的定义由下式给出
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β⎦⎤
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γ⎦⎤
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β⎦⎤
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γ⎦⎤
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γ⎦⎤
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γ⎦⎤
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γ⎦⎤
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γ⎦⎤
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γ⎦⎤
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γ⎦⎤
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β⎦⎤
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固定角坐标系,有时把他们定义为回转角、俯仰角和偏转角。
其旋转矩阵为:
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种固定角坐标系的定义由下式给出:
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γ⎦⎤
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γ⎦⎤
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γ⎦⎤
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γ⎦⎤
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β⎦⎤
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β⎦⎤
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γ⎦⎤
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γ⎦⎤
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γ⎦⎤
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γ⎦⎤
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β⎦⎤
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法建立的变换矩阵的过程类似于欧拉角,其变换顺序为
沿Xi轴从Zi向Zi+1移动ai
绕Xi轴从Zi向Zi+1旋转αi
沿Zi轴从Xi−1向Xi移动di
绕Zi轴从Xi−1向Xi旋转θi
所以一个关节的变换矩阵如下
ii−1T=RX(αi−1)DX(ai−1)RZ(θi)DZ(di)
ii−1T=⎣⎢⎢⎡cθisθicαi−1sθisαi−10−sθicθicαi−1cθisαi−100−sαi−1cαi−10ai−1−sαi−1dicαi−1di1⎦⎥⎥⎤
绕定轴旋转
矢量q绕单位矢量k旋转θ角,由Rodriques公式得:
q′=qcosθ+sinθ(k×q)+(1−cosθ)(k⋅q)k
其旋转矩阵表示为:
RK(θ)=⎣⎡kxkxvθ+cθkxkyvθ+kzsθkxkzvθ−kysθkxkyvθ−kzsθkykyvθ+cθkykzvθ+kxsθkxkzvθ+kysθkykzvθ−kxsθkzkzvθ+cθ⎦⎤
其中
vθ=1−cθ