はじめまして、りょーつといいます。高専出身の大学院2年生です。研究の専門は力学や機構学で、Qiitaでは主に制御工学や数学に関する記事を書いています。本稿はスクリュー理論の解説(布教)をする18個目の記事です。前回までの記事は以下のリンクを参照してください。
スクリュー理論① 外積の歪対称行列表現
スクリュー理論② 行列の指数関数
スクリュー理論③ 行列指数と回転行列の関係
スクリュー理論④ 回転行列の成分表示
スクリュー理論⑤ 回転行列による座標系の表現
スクリュー理論⑥ 剛体の速度・加速度の座標変換公式の導出
スクリュー理論⑦ 三次元空間における右手系の回転行列
スクリュー理論⑧ 回転行列による座標変換
スクリュー理論⑨ 回転行列によるベクトルの回転
スクリュー理論⑩ 回転行列と多様体の関係
スクリュー理論⑪ 同次変換行列の導入
スクリュー理論⑫ 同次変換行列による座標系の表現と基底変換
スクリュー理論⑬ 歪対称行列表現の回転座標変換
スクリュー理論⑭ 同次変換行列の微分とツイストの導入
スクリュー理論⑮ スクリューの導入と行列指数による同次変換行列の表現
スクリュー理論⑯ アジョイント変換
スクリュー理論⑰ 回転行列の行列対数
スクリュー理論は剛体の運動を記述する方法で、ロボット工学などでよく使われています。日本の高専や大学ではDH法を使った記述を学ぶことが多いですが、国際的にはスクリュー理論を使った記述が一般的となってきているようです。スクリュー理論を扱う日本語の文献は少ないので、この記事が誰かの助けになればいいなと思います。
目次
1. はじめに
今週の記事では、回転行列の積分について考察したいと思います。回転行列そのものを積分して得られる行列は特に重要な意味を持つわけではありませんが、回転行列と定ベクトルの積を積分して得られる行列は特殊な意味を持ちます。これは行列指数として同次変換行列を理解する際に重要となるため、少し解説しておこうと思います。
2. 螺旋運動と回転行列の積分
単位回転軸$\boldsymbol{\hat{\omega}}$まわりの角度$\theta$の回転を表す回転行列$Rot(\boldsymbol{\hat{\omega}}, \theta)$を考えます。ここで基準座標系の基底を$\boldsymbol{i}$、$\boldsymbol{j}$、$\boldsymbol{k}$、としますが、簡単のために$\boldsymbol{\hat{\omega}} = \boldsymbol{k}$となるように座標系を取っておきます。このとき単位回転軸$\boldsymbol{\hat{\omega}}$の座標は
\boldsymbol{\hat{\omega}}
=
\begin{bmatrix}
\ 0\ \\
\ 0\ \\
\ 1\ \\
\end{bmatrix}
\tag{1}
であり、回転行列$Rot(\boldsymbol{\hat{\omega}}, \theta)$はシンプルに$z$軸まわりの回転行列と一致するため
Rot(\boldsymbol{\hat{\omega}}, \theta)
=
\begin{bmatrix}
\cos{\theta} & -\sin{\theta} & 0 \\
\sin{\theta} & \cos{\theta} & 0 \\
0 & 0 & 1 \\
\end{bmatrix}
\tag{2}
となります。
ここで、定数ベクトル$\boldsymbol{v}$と回転行列$Rot(\boldsymbol{\hat{\omega}}, \theta)$の積を考えます。
\boldsymbol{v}
=
\begin{bmatrix}
\ v_x\ \\
\ v_y\ \\
\ v_z\ \\
\end{bmatrix}
\tag{3}
Rot(\boldsymbol{\hat{\omega}}, \theta) \boldsymbol{v}
=
\begin{bmatrix}
\cos{\theta} & -\sin{\theta} & 0 \\
\sin{\theta} & \cos{\theta} & 0 \\
0 & 0 & 1 \\
\end{bmatrix}
\begin{bmatrix}
\ v_x\ \\
\ v_y\ \\
\ v_z\ \\
\end{bmatrix}
=
\begin{bmatrix}
\ v_x \cos{\theta} - v_y \sin{\theta} \\
\ v_x \sin{\theta} + v_y \cos{\theta} \\
\ v_z \ \\
\end{bmatrix}
\tag{4}
では(4)式を積分してみましょう。シンプルに成分ごとに積分を行います。積分結果を$J(\theta)$とおくと
J(\theta)
=
\int_{0}^{\theta} Rot(\boldsymbol{\hat{\omega}}, \theta) \ \boldsymbol{v} \ d\theta
=
\int_{0}^{\theta}
\begin{bmatrix}
\ v_x \cos{\theta} - v_y \sin{\theta} \\
\ v_x \sin{\theta} + v_y \cos{\theta} \\
\ v_z \ \\
\end{bmatrix}
d \theta
=
\begin{bmatrix}
\ v_x \sin{\theta} + v_y \cos{\theta} - v_y \\
\ -v_x \cos{\theta} + v_y \sin{\theta} + v_x \\
\ v_z \theta \ \\
\end{bmatrix}
\tag{5}
となります。
では、積分結果をいくつかの項に分けて考察してみましょう。ここで、三角関数と回転行列の性質より、以下の関係がなりたつことを用います。
\sin{\theta}
=
\cos{\Big( \theta - \frac{\pi}{2} \Big )}
\tag{6}
\cos{\theta}
=
-\sin{\Big( \theta - \frac{\pi}{2} \Big )}
\tag{7}
Rot \bigg( \boldsymbol{\hat{\omega}}, \Big( \phi - \frac{\pi}{2} \Big ) \bigg )
=
Rot(\boldsymbol{\hat{\omega}}, \phi)
Rot \Big(\boldsymbol{\hat{\omega}}, -\frac{\pi}{2} \Big)
\tag{8}
では(5)式を分解してみましょう。
J(\theta)
=
\begin{bmatrix}
\sin{\theta} & \cos{\theta} & 0 \\
-\cos{\theta} & \sin{\theta} & 0 \\
0 & 0 & 1 \\
\end{bmatrix}
\begin{bmatrix}
\ v_x \\
\ v_y \\
\ 0 \\
\end{bmatrix}
+
\begin{bmatrix}
- v_y \\
\ v_x \\
\ 0 \\
\end{bmatrix}
+
\begin{bmatrix}
\ 0 \\
\ 0 \\
\ v_z \theta \\
\end{bmatrix}
\tag{9}
ここで(9)式の右辺第1項は
\begin{bmatrix}
\sin{\theta} & \cos{\theta} & 0 \\
-\cos{\theta} & \sin{\theta} & 0 \\
0 & 0 & 1 \\
\end{bmatrix}
\begin{bmatrix}
\ v_x \\
\ v_y \\
\ 0 \\
\end{bmatrix}
=
\begin{bmatrix}
\cos{\Big( \theta - \frac{\pi}{2} \Big )} & -\sin{\Big( \theta - \frac{\pi}{2} \Big )} & 0 \\
\sin{\Big( \theta - \frac{\pi}{2} \Big )} & \cos{\Big( \theta - \frac{\pi}{2} \Big )} & 0 \\
0 & 0 & 1 \\
\end{bmatrix}
\begin{bmatrix}
\ v_x \\
\ v_y \\
\ 0 \\
\end{bmatrix}
=
\begin{bmatrix}
\cos{\theta} & -\sin{\theta} & 0 \\
\sin{\theta} & \cos{\theta} & 0 \\
0 & 0 & 1 \\
\end{bmatrix}
\begin{bmatrix}
\cos{(-\frac{\pi}{2})} & -\sin{(-\frac{\pi}{2})} & 0 \\
\sin{(-\frac{\pi}{2})} & \cos{(-\frac{\pi}{2})} & 0 \\
0 & 0 & 1 \\
\end{bmatrix}
\begin{bmatrix}
\ v_x \\
\ v_y \\
\ 0 \\
\end{bmatrix}
=
\begin{bmatrix}
\cos{\theta} & -\sin{\theta} & 0 \\
\sin{\theta} & \cos{\theta} & 0 \\
0 & 0 & 1 \\
\end{bmatrix}
\begin{bmatrix}
0 & 1 & 0 \\
-1 & 0 & 0 \\
0 & 0 & 1 \\
\end{bmatrix}
\begin{bmatrix}
\ v_x \\
\ v_y \\
\ 0 \\
\end{bmatrix}
=
\begin{bmatrix}
\cos{\theta} & -\sin{\theta} & 0 \\
\sin{\theta} & \cos{\theta} & 0 \\
0 & 0 & 1 \\
\end{bmatrix}
\begin{bmatrix}
\ v_y \\
\ -v_x \\
\ 0 \\
\end{bmatrix}
=
Rot(\boldsymbol{\hat{\omega}}, \theta)
\begin{bmatrix}
\ v_y \\
\ -v_x \\
\ 0 \\
\end{bmatrix}
\tag{10}
と変形できます。したがって積分結果$J(\theta)$は
J(\theta)
=
Rot(\boldsymbol{\hat{\omega}}, \theta)
\begin{bmatrix}
\ v_y \\
\ -v_x \\
\ 0 \\
\end{bmatrix}
+
\begin{bmatrix}
\ -v_y \\
\ v_x \\
\ 0 \\
\end{bmatrix}
+
\begin{bmatrix}
\ 0 \\
\ 0 \\
\ v_z \theta \\
\end{bmatrix}
\tag{11}
となります。
ここで、
J_1(\theta)
=
Rot(\boldsymbol{\hat{\omega}}, \theta)
\begin{bmatrix}
\ v_y \\
\ -v_x \\
\ 0 \\
\end{bmatrix}
\tag{12}
J_2
=
\begin{bmatrix}
\ -v_y \\
\ v_x \\
\ 0 \\
\end{bmatrix}
\tag{13}
J_3(\theta)
=
\begin{bmatrix}
\ 0 \\
\ 0 \\
\ v_z \theta \\
\end{bmatrix}
\tag{14}
J(\theta)
=
J_1(\theta)
+
J_2
+
J_3(\theta)
\tag{15}
として、$J_1$~$J_3$の幾何学的なイメージを考えてみましょう。
まず、$J_1(\theta)$はベクトル$[v_y \ -v_x \ \ \ 0]^T$を単位回転軸$\boldsymbol{\hat{\omega}}$まわりに角度$\theta$回転させた位置を表すベクトルであり、図1のように可視化できます。
図1 $J_1(\theta)$の可視化
$J_2$は定数ベクトルであり、$J_3(\theta)$は単位回転軸$\boldsymbol{\hat{\omega}}$に平行な直線上の点を意味します。式で表すと
J_3(\theta)
=
v_z \theta \ \boldsymbol{\hat{\omega}}
\tag{16}
であり、可視化すると図2のようになります。
図2 $J_3(\theta)$の可視化
最後にこれらを重ね合わせた$J(\theta)$について、$\theta = 0$のとき
J(0)
=
\boldsymbol{0}
\tag{17}
がなりたち、$J(\theta)$の軌跡は座標系の原点をとおることが分かります。
以上のことから、回転行列に定数ベクトルを掛けたものを積分すると、つるまき線の軌跡になることが分かります。そして、得られるつるまき線の速度の初期値は定数ベクトル$\boldsymbol{v}$と一致します。
\frac{dJ}{d \theta}(0)
=
\boldsymbol{v}
\tag{18}
図3 $J(\theta)$の可視化
つるまき線の軌跡はネジの螺旋と同じ軌跡を描くため、スクリュー理論と深い関係がありそうですよね。(11)式のつるまき線と同次変換行列の関係性については次回の記事で詳しく説明しようと思います。
3. おわりに
今週の記事では、回転行列と定数ベクトルの積を取り、積分した場合、つるまき線の軌跡が得られることを紹介しました。このつるまき線の軌跡は同次変換行列と密接な関係があるので、来週の記事でそこらへんを深堀りしたいと考えています。
今週も最後まで読んでいただきありがとうございました。


