今回は、二次元の回転と三次元の回転について考えていきます。
まず、二次元の回転については、以下の回転行列により規定されます。
三次元空間の回転については、回転の仕方を一意に決めるために、以下に示すオイラー角が使われます。
まずは、二次元の回転を規定する回転行列の導出から行います。
回転行列とは?
まずは、平面内での回転について考えていきましょう。
このとき、$x-y$ 直交座標を原点周り(あるいは $z$ 軸周り)に $\q$ だけ反時計周りに回転させた際の、座標変化について考えます。
具体的に、上図のような回転操作を行うと、点 $\RM{A}=(x,y)=(r\cos\phi,r\sin\phi)$ が、$\RM{A}’=(x’,y’)=\Big(r\cos(\phi+\q),r\sin(\phi+\q)\Big)$ に移動します。
この対応関係を三角関数の加法定理を使いつつ変形すると、下のようにできます。
$$
\left\{
\begin{split}
&x’=r\cos(\phi+\q)=r(\cos\phi\cos\q-\sin\phi\sin\q)=x\cos\q-y\sin\q\EE
&y’=r\sin(\phi+\q)=r(\sin\phi\cos\q+\cos\phi\sin\q)=y\cos\q+x\sin\q\EE
\end{split}
\right.
$$
右辺に注目して行列の形に整理すると、
$$
\begin{pmatrix}
x’ \\
y’
\end{pmatrix} =
\begin{pmatrix}
\cos\q & -\sin\q\\
\sin\q & \cos\q
\end{pmatrix}
\begin{pmatrix}
x \\
y
\end{pmatrix}
$$
が得られます。
冒頭でも説明しましたが、上式に現れる係数行列は回転の様子を規定すると言えます。そのため、この行列は回転行列と呼ばれます。
このように、平面内の回転についての係数行列が求められました。次節より、三次元の回転について考えていきます。
三次元の回転行列の導出
上で求めた回転行列は、$x-y$ 平面を回転させたものです。ところが、見方を変えると、三次元空間にて $z$ 軸周りに回転させたものと見ることもできます。
つまり、三次元空間の点 $\RM{A}(x,y,z)$ を $z$ 軸回りに $\gamma$ 反時計回りに回転させて、$\RM{A}'(x’,y’,z’)$ に移動したとき、その座標の対応は、
$$
\left\{
\begin{split}
&x’=x\cos\gamma-y\sin\gamma\EE
&y’=x\sin\gamma+y\cos\gamma\EE
&z’=z
\end{split}
\right.
$$
となって、これを行列で表現すると、
$$
\begin{pmatrix}
x’ \\
y’ \\
z’
\end{pmatrix} =
\begin{pmatrix}
\cos\gamma & -\sin\gamma & 0 \\
\sin\gamma & \cos\gamma & 0 \\
0 & 0 & 1
\end{pmatrix}
\begin{pmatrix}
x \\
y \\
z
\end{pmatrix}
$$
という表現が得られます。これより、$z$ 軸周りに $\gamma$ 回転を表す回転行列を $R_z(\gamma)$ と置いて、
$$
R_z(\gamma) =
\begin{pmatrix}
\cos\gamma & -\sin\gamma & 0 \\
\sin\gamma & \cos\gamma & 0 \\
0 & 0 & 1
\end{pmatrix}
$$
とできることが言えます。同様に考えると、$x$ 軸、$y$ 軸周りの回転に関する回転行列を以下の様に表せます。
$$
R_x(\A) =
\begin{pmatrix}
1 & 0 & 0 \\
0 & \cos\A & -\sin\A \\
0 & \sin\A & \cos\A
\end{pmatrix}
$$
$$
R_y(\beta) =
\begin{pmatrix}
\cos\beta & 0 & \sin\beta \\
0 & 1 & 0 \\
-\sin\beta & 0 & \cos\beta
\end{pmatrix}
$$
さて、三次元空間での任意の回転は、これら各軸周りの回転の組み合わせとして表現できることが知られています。(三次元空間では、回転の自由度が $3$ であることに由来しています)
例えば、空間に固定した座標軸 $\bar{x}\bar{y}\bar{z}$ を用意し、$\bar{x},\bar{y},\bar{z}$ 軸周りにこの順に $\A,\beta,\gamma$ 回転させると、その回転行列 $R$ は次のように表せます。
\begin{split}
R=R_{z}(\gamma)\,R_{y}(\beta)\,R_{x}(\A)
\end{split}
この事実を利用して、任意の回転角での回転行列の表し方について考えていきます。
オイラー角とは?
上で説明したように三次元空間の回転は、それぞれの軸回りの回転の組み合わせとして表現できます。
ただし、単純に $x$ 軸周りに回転させると言っても、空間に固定された座標軸周りに回転させるのか、その前の回転により移動した軸周りに回転させるのか、解釈に幅があることに注意が必要です。
この問題を解決するために導入されるのが、オイラー角と呼ばれる概念です。
オイラー角を説明する準備として、世界座標系と物体座標系について説明します。
世界座標系・物体座標系とは?
オイラー角は、座標軸を基準に定義される角度です。そのため、座標軸を空間に固定された座標系と、物体の移動に伴って移動する座標系を区別する必要が生じます。
これらの座標を次のように名前を付け、以下のように定義します。
座標軸を空間に固定した座標系を世界座標系と呼びます。世界座標系は対象の回転に関わらず、座標軸は常に同じ場所に存在し続けるという特徴があります。
一方、物体に固定した座標軸のことを物体座標系と呼びます。物体座標系は、回転に伴って座標軸の位置が変化するという特徴があります。
※ 数学の分野では主に世界座標系が使われますが、制御の分野など工学の世界では物体座標系が主に使われます。
オイラー角と回転移動の約束
世界座標系を使うと、三次元空間での回転移動が一意に決められます。また、一連の操作で現れる角度のことを、オイラー角と呼びます。
さて、三次元空間内の任意の回転は、世界座標系 $\bar{x}\bar{y}\bar{z}$ の三段階の回転移動にて表せます。すなわち、
① 世界座標系 $\bar{x}\bar{y}\bar{z}$ を $\bar{z}$ 軸周りに $\psi$ 回転させる。
② 回転した座標系を、$\bar{x}$ 軸周りに $\q$ 回転させる。
③ 回転した座標を、$\bar{z}$ 軸周りに $\phi$ 回転させる。
の一連の操作により決定できます。一連の操作を図示すると下図のようになります。
そして、これらの操作で現れる三つの角度、$\phi,\q,\psi$ をオイラー角と呼びます。
オイラー角を用いると、三次元空間における回転行列 $R$ が以下のように表せます。
\begin{split}
R&=R_z(\phi)R_x(\q)R_z(\psi)\EE
&=
\begin{pmatrix}
\cos\phi\cos\psi-\sin\phi\cos\q\sin\psi & -\cos\phi\sin\psi-\sin\phi\cos\q\cos\psi & \sin\phi\sin\q \\
\sin\phi\cos\psi+\cos\phi\cos\q\sin\psi & -\sin\phi\sin\psi+\cos\phi\cos\q\cos\psi & -\cos\phi\sin\q \\
\sin\q\sin\psi & \sin\q\cos\psi & \cos\q
\end{pmatrix}
\end{split}
これと同値の表現として、以下の方法があります。制御のプログラムを組む際など、こちらの表現の方が適している場合もあります。
① 世界座標系 $\bar{x}\bar{y}\bar{z}$ を $\bar{z}$ 軸周りに $\psi$ 回転させた新たな座標軸を、$xyz$ 座標系とする。($z$ 軸と $\bar{z}$ 軸は一致)
② $xyz$ 座標系を $x$ 軸周りに $\q$ 回転させた新たな座標軸を $x’y’z’$ 座標系とする。($x’$ 軸と $x$ 軸は一致)
③ $x’y’z’$ 座標系を $z’$ 軸周りに $\phi$ 回転させた新たな座標軸を $x^{”}y^{”}z^{”}$ 座標系とする。($z^{”}$ 軸と $z’$ 軸は一致)
一連の操作を図示すると、下図のようになります。