はじめまして、りょーつといいます。高専出身の大学院2年生です。研究の専門は力学や機構学で、Qiitaでは主に制御工学や数学に関する記事を書いています。本稿はスクリュー理論の解説(布教)をする17個目の記事です。前回までの記事は以下のリンクを参照してください。
スクリュー理論① 外積の歪対称行列表現
スクリュー理論② 行列の指数関数
スクリュー理論③ 行列指数と回転行列の関係
スクリュー理論④ 回転行列の成分表示
スクリュー理論⑤ 回転行列による座標系の表現
スクリュー理論⑥ 剛体の速度・加速度の座標変換公式の導出
スクリュー理論⑦ 三次元空間における右手系の回転行列
スクリュー理論⑧ 回転行列による座標変換
スクリュー理論⑨ 回転行列によるベクトルの回転
スクリュー理論⑩ 回転行列と多様体の関係
スクリュー理論⑪ 同次変換行列の導入
スクリュー理論⑫ 同次変換行列による座標系の表現と基底変換
スクリュー理論⑬ 歪対称行列表現の回転座標変換
スクリュー理論⑭ 同次変換行列の微分とツイストの導入
スクリュー理論⑮ スクリューの導入と行列指数による同次変換行列の表現
スクリュー理論⑯ アジョイント変換
スクリュー理論は剛体の運動を記述する方法で、ロボット工学などでよく使われています。日本の高専や大学ではDH法を使った記述を学ぶことが多いですが、国際的にはスクリュー理論を使った記述が一般的となってきているようです。スクリュー理論を扱う日本語の文献は少ないので、この記事が誰かの助けになればいいなと思います。
目次
1.はじめに
2.ロドリゲスの公式
3.回転行列の行列対数
4.おわりに
1. はじめに
今週の記事では、行列指数の対の存在である行列対数について解説していこうと思います。本当は順運動学についての記事を書くつもりでしたが、準備が間に合わなかったので少し寄り道をしようと思います。
2. ロドリゲスの公式
第4回目の記事で、回転行列$R$が回転軸$\boldsymbol{\hat{\omega}}$に関する行列指数で以下のように表せることを解説しました。
R
=
e^{[\boldsymbol{\hat{\omega}}] \theta}
\tag{1}
ただし、$[\boldsymbol{\hat{\omega}}]$は$\boldsymbol{\hat{\omega}}$の歪対称行列表現であり、$\boldsymbol{\hat{\omega}}$の成分を用いて以下のように定義されます。
[\boldsymbol{\omega}]
=
\begin{bmatrix}
0 & -\omega_3 & \omega_2 \\
\omega_3 & 0 & -\omega_1 \\
-\omega_2 & \omega_1 & 0 \\
\end{bmatrix}
=
- {[\boldsymbol{\omega}]}^T
\tag{2}
さらに$[\boldsymbol{\hat{\omega}}]$には、二乗すると対称行列になるという性質があります。
[\boldsymbol{\omega}]^2
=
\begin{bmatrix}
-{\omega_2}^2 - {\omega_3}^2 & \omega_1 \omega_2 & \omega_1 \omega_3 \\
\omega_1 \omega_2 & -{\omega_1}^2 - {\omega_3}^2 & \omega_2 \omega_3 \\
\omega_1 \omega_3 & \omega_2 \omega_3 & -{\omega_1}^2 - {\omega_2}^2 \\
\end{bmatrix}
=
{( [\boldsymbol{\omega}]^2 )}^T
\tag{3}
さらに第4回目の記事で紹介したように、(1)式の行列指数は以下のような単位行列$I$、対称行列$[\boldsymbol{\hat{\omega}}]^2$、歪対称行列$[\boldsymbol{\hat{\omega}}]$の重ね合わせに分解できます。
e^{[\boldsymbol{\hat{\omega}}] \theta}
=
I
+
\sin{\theta} [\boldsymbol{\hat{\omega}}]
+
(1 - \cos{\theta}) [\boldsymbol{\hat{\omega}}]^2
\tag{4}
(4)式の関係をロドリゲスの公式と呼びます。ロドリゲスの公式は、複雑な回転行列をいくつかの項に分解して考えたいときに重宝します。
(2)式と(3)式の関係をもとに(4)式の両辺の転置を取ってみましょう。$I^T = I$であるため、
\Big(
e^{[\boldsymbol{\hat{\omega}}] \theta}
\Big)^T
=
I
-
\sin{\theta} [\boldsymbol{\hat{\omega}}]
+
(1 - \cos{\theta}) [\boldsymbol{\hat{\omega}}]^2
\tag{5}
になります。
3. 回転行列の行列対数
まず行列対数とは何?について軽く説明します。ノリは行列指数と同じで、行列対数とは対数関数の行列バージョンという理解であっています。ある行列$A$の行列指数を$B$としたとき、以下の関係がなりたちます。
B
=
e^A
\tag{6}
このとき、$e^A$の部分が行列指数になります。この逆を考えるのが行列対数です。(6)式の逆関数を以下のように定義することにします。
A
=
\ln{B}
\tag{7}
このとき、$\ln{B}$の部分が行列対数となります。これを回転行列に対してあてはめてみましょう。回転行列の行列対数を取ると、単位回転軸$[\boldsymbol{\hat{\omega}}]$と回転角$\theta$が得られます。
[\boldsymbol{\hat{\omega}}]\theta
=
\ln{R}
\tag{8}
図1 回転行列と行列指数・行列対数
では(8)式の具体的な中身を見てみましょう。簡単のために回転角度$\theta$が$0 < \theta < \pi$の場合を考えます。これは、回転角が$0$や$\pi$の倍数の時に、回転軸が一意に定まらないためです。
回転行列の行列対数を求めるためには、回転行列$R$から歪対称行列$[\boldsymbol{\hat{\omega}}]$を抽出する必要があります。そこで活躍するのがロドリゲスの公式です。ロドリゲスの公式(4)、(5)に(1)式を代入してみましょう。
R
=
I
+
\sin{\theta} [\boldsymbol{\hat{\omega}}]
+
(1 - \cos{\theta}) [\boldsymbol{\hat{\omega}}]^2
\tag{9}
R^T
=
I
-
\sin{\theta} [\boldsymbol{\hat{\omega}}]
+
(1 - \cos{\theta}) [\boldsymbol{\hat{\omega}}]^2
\tag{10}
このとき、(9)式から(10)式を引くと以下の関係が得られます。
R - R^T
=
2\sin{\theta} [\boldsymbol{\hat{\omega}}]
\tag{11}
あとは$\theta \neq n \pi \ (n = 0,1,\cdots)$に注意して(11)式を整理することで以下が得られます。
[\boldsymbol{\hat{\omega}}] \theta
=
\frac{\theta}{2\sin{\theta}}
(R - R^T)
\ \ \ \ \ \ \ \
\theta \neq n \pi \ (n = 0,1,\cdots)
\tag{12}
(12)式を(8)式と比較することで、回転行列の行列対数が以下のように具体化されます。
\ln{R}
=
\frac{\theta}{2\sin{\theta}}
(R - R^T)
\ \ \ \ \ \ \ \
\theta \neq n \pi \ (n = 0,1,\cdots)
\tag{13}
ここで注意しないといけないのは、行列指数は無限級数で一様に定義できたのに対して、行列対数は行列の種類によって計算方法が異なるという点です。
回転行列$R$と同じく、同次変換行列$T$にも行列指数が存在し、以下の関係が成り立ちます。
[\boldsymbol{\zeta}]\theta
=
\ln{T}
\tag{14}
しかし同次変換行列$T$については(13)式の関係は通常なりたちません。
\ln{T}
\neq
\frac{\theta}{2\sin{\theta}}
(T - T^T)
\ \ \ \ \ \ \ \
\tag{15}
同次変換行列$T$の行列対数を計算するためには同次変換行列についてもう少し深堀する必要があるため、またどこかのタイミングで記事にまとめようと思います。
4. おわりに
今回の記事では行列指数の対になる概念として行列対数というものを紹介しました。記事を書きながら同次変換行列の解説の不足点を見つけたので、来週はそれらについてまとめようと思います。
今週も最後まで読んでいただきありがとうございました!
