ロール・ピッチ・ヨー角による姿勢変換行列

この記事では、ロール・ピッチ・ヨー角による姿勢表現について紹介します。

ロール・ピッチ・ヨー角による姿勢表現

乗り物やロボットなどの姿勢は、オイラー角と呼ばれる3つの回転軸を使って表現されます。

この3つの回転軸は、ロボットでは\alpha 、\beta 、\gamma(軸の取り方は色々)、物理学ではz-y-z,乗り物ではロール・ピッチ・ヨーで表されますが、これらは基本的に同じです。

ロール角(γ)・・・x軸(物体の前後)を回転軸とする回転角
ピッチ角(β)・・・y軸(物体の左右)を回転軸とする回転角
ヨー角(α)・・・z軸(物体の上下)を回転軸とする回転角

ロール・ピッチ・ヨーを飛行機で表すと以下のようになります。

index

※1. 対象とする物体は、乗り物など前後・左右・上下が決まった物である必要があります。

※2. 回転の向きは右ねじが軸方向に進むときに右ねじが回る向きです。

αγβの姿勢変換行列

3つの座標軸(x, y, z)まわりに順に(\alpha , \beta , \gamma)回転させることにより姿勢の変換を表現します。

このとき、\alpha , \beta , \gammaの変換行列R_{\alpha \beta \gamma}はつぎのようになります。

(1)   \begin{eqnarray*} R_{\alpha \beta \gamma}&=&R_x(\alpha)R_y(\beta)R_z(\gamma)\\ &=& \begin{bmatrix} 1 & 0 & 0 \\ 0 & C_\alpha  & -S_\alpha \\ 0 & S_\alpha & C_\alpha \\ \end{bmatrix} \begin{bmatrix} C_\beta & 0 & S_\beta \\ 0 &  1 & 0 \\ -S_\beta & 0 & C_\beta \\ \end{bmatrix} \begin{bmatrix} C_\gamma & -S_\gamma & 0 \\ S_\gamma &  C_\gamma & 0 \\ 0 & 0 & 1 \\ \end{bmatrix}\\ &=& \begin{bmatrix} 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 S_\beta \\ \end{bmatrix} \end{eqnarray*}

この式を使えば、3つの回転角から変換行列を求めることが出来ます。

ただし、

(2)   \begin{eqnarray*} S_\alpha=sin(\alpha ),  C_\alpha=cos(\alpha )\\ S_\beta=sin(\beta ), C_\beta=cos(\beta )\\ S_\gamma=sin(\gamma ),  C_\gamma=cos(\gamma ) \end{eqnarray*}

です。

関連ページ
1 Pythonでロボットシミュレーション
2 ロボット工学入門 基礎編
3 Python入門 サンプル集
4 NumPy入門 サンプル集

コメント