スクリュー理論③ 行列指数と回転行列の関係

　はじめまして、[りょーつ](https://twitter.com/Gomachan_2021)といいます。高専出身の大学院1年生です。研究の専門は力学や機構学で、主に制御工学や数学に関する記事を書いています。
　本稿はスクリュー理論の解説(布教)をする3つ目の記事です。前回までの記事は以下のリンクを参照してください。
 
[スクリュー理論① 外積の歪対称行列表現](https://qiita.com/Gomachan_2021/items/4a1bc967785b525bc857)
[スクリュー理論② 行列の指数関数](https://qiita.com/Gomachan_2021/items/f97bff915946933a65c5)

スクリュー理論は剛体の運動を記述する手法で、ロボット工学などでよく使われています。日本の高専や大学ではDH法を使った記述を学ぶことが多いですが、国際的にはスクリュー理論を使った記述が一般的となってきているようです。スクリュー理論を扱う日本語の文献は少ないので、この記事が誰かの助けになればいいなと思います。

# 目次
[1.はじめに](#1-はじめに)
[2.角速度ベクトル](#2-角速度ベクトル)
[3.回転運動が満たす微分方程式](#3-回転運動が満たす微分方程式)
[4.回転ベクトルの軌跡と行列指数](#4-回転ベクトルの軌跡と行列指数)
[5.行列指数と回転行列の対応](#5-行列指数と回転行列の対応)
[6.おわりに](#6-おわりに)

# 1. はじめに
　本稿では[前回の記事](https://qiita.com/Gomachan_2021/items/f97bff915946933a65c5)で紹介した**行列指数**と[前々回の記事](https://qiita.com/Gomachan_2021/items/4a1bc967785b525bc857)で紹介した外積の**歪対称行列表現**を使って一定角速度で回転するベクトルの軌跡を表現する手法を紹介します。
　線形代数の知識を使います。また、大学の一般教養程度の力学の知識があると直観的に理解しやすいです。

# 2. 角速度ベクトル
　本章では角速度をベクトル表記する際のルールについてフワッと紹介します。角速度を表すベクトル$\boldsymbol{\omega}$は、大きさが回転角速度$\omega$に、向きが回転軸の単位方向ベクトル$\boldsymbol{\hat{\omega}}$の方向を向くようなベクトルです。ここで回転軸の単位方向ベクトル$\boldsymbol{\hat{\omega}}$は図1のように回転運動を右手で表現したときに、親指が向く方向を意味しています。

<img src="https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3031572/01a75021-3ba3-4cfe-aa74-3a214ed2e093.png" width=70%>

図1　回転軸の単位方向ベクトル$\boldsymbol{\hat{\omega}}$

　高校物理では角速度をスカラー量であるかのように記述することが多かったかと思いますが、3次元的な運動を記述する際には角速度をベクトル$\boldsymbol{\omega}$として扱うほうが理解しやすいです。

# 3. 回転運動が満たす微分方程式
　本章では、円軌道を描くベクトル$\boldsymbol{r}$に関する微分方程式を導出します。ある回転軸に沿って一定の角速度$\omega$で位置ベクトル$\boldsymbol{r}$が回転しながら円軌道を描くとき、速度ベクトル$v$との関係は図2のように表されます。
 
<img src="https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3031572/78c9ea9c-e2ee-4a5a-8e2a-280ef351a7ce.png" width=90%>

図2　角速度$\boldsymbol{\omega}$、位置$\boldsymbol{r}$および速度$\boldsymbol{v}$の関係

このとき、図2をよく観察すると角速度$\boldsymbol{\omega}$、位置$\boldsymbol{r}$および速度$\boldsymbol{v}$の間には、以下に挙げる3つの性質が確認できます。

① 速度$\boldsymbol{v}$は角速度$\boldsymbol{\omega}$と位置$\boldsymbol{r}$の両方に直交する。
② 速度$\boldsymbol{v}$の大きさは$\omega \rVert \boldsymbol{r} \rVert \sin{\varphi}$によって計算される。
③ 速度$\boldsymbol{v}$の向きは角速度$\boldsymbol{\omega}$から位置$\boldsymbol{r}$に向かって右ねじを回した場合にねじが進展する方向となる。

これら3つの性質はまさに[第1回の記事](https://qiita.com/Gomachan_2021/items/4a1bc967785b525bc857)で紹介した外積の性質と一致しています！
　これらを加味することで、角速度$\boldsymbol{\omega}$、円軌道を描く位置ベクトル$\boldsymbol{r}$および速度$\boldsymbol{v}$の関係の関係は以下に示す外積で表されます。

```math
\boldsymbol{v}
= 
\boldsymbol{\omega}
\times
\boldsymbol{r}
\tag{1}
```

さらに、[第1回の記事](https://qiita.com/Gomachan_2021/items/4a1bc967785b525bc857)で紹介した外積の歪対称行列表現を使用すれば、(1)式は歪対称行列$[\boldsymbol{\omega}]$を用いて以下のように書き換えることが可能です。

```math
\boldsymbol{v}
= 
[\boldsymbol{\omega}]
\boldsymbol{r}
\tag{2}
```

また、速度$\boldsymbol{v}$はベクトル$\boldsymbol{r}$の時間変化を意味しているため、以下の関係がなりたちます。

```math
\boldsymbol{v}
= 
\dfrac{d\boldsymbol{r}}{dt}
\tag{3}
```

(2)式と(3)式から速度$\boldsymbol{v}$を消去して整理することで円軌道を描くベクトル$\boldsymbol{r}$に関する微分方程式が導出できます!

```math
\dfrac{d\boldsymbol{r}}{dt}
=
[\boldsymbol{\omega}]
\boldsymbol{r}
\tag{4}
```

# 4. 回転ベクトルの軌跡と行列指数
　本章では、3章で導出した円軌道を描くベクトル$\boldsymbol{r}$に関する微分方程式(4)を解き、その解の意味を考察します。(4)式は3次元ベクトルと3×3行列で構成されているものの、解の形は1階線形微分方程式の解と同様に以下の形で表されます。

```math
\boldsymbol{r}(t)
=
e^{[\boldsymbol{\omega}]t}
\boldsymbol{r}_0
\tag{5}
```

$\boldsymbol{r}_0$は$\boldsymbol{r}$の初期値を表す定ベクトルです。また$e^{[\boldsymbol{\omega}]}$は**行列指数**であり、3×3行列です。実際に(5)式を微分して(4)式を満たすか確認してみましょう。[第2回の記事](https://qiita.com/Gomachan_2021/items/f97bff915946933a65c5)で紹介した行列指数の微分特性をもとに計算すると

```math
\dfrac{d\boldsymbol{r}}{dt}
=
\dfrac{d}{dt}
\bigl(
e^{[\boldsymbol{\omega}]t}
\bigr)
\boldsymbol{r}_0
=
[\boldsymbol{\omega}]e^{[\boldsymbol{\omega}]t}
\boldsymbol{r}_0
=
[\boldsymbol{\omega}]\boldsymbol{r}
\tag{6}
```
となり、たしかに(5)式の解は(4)式を満たしていることが分かりました。
　ここからは(5)式の解について考察していこうと思います。(5)式の解からは「初期値$\boldsymbol{r}_0$を行列指数$e^{[\boldsymbol{\omega}]t}$によって変換したところ、時刻$t$における位置ベクトル$\boldsymbol{r}$が得られる」ということが読み取れます。この関係を図3にまとめてみました。

<img src="https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3031572/1203efa1-0c83-4ad3-ae3c-aa51a9aa31c9.png" width=75%>

図3　円軌道を描くベクトル$\boldsymbol{r}$の解に関する図的解釈

円軌道を前提としているので当たり前なのですが、図3から行列指数$e^{[\boldsymbol{\omega}]t}$はベクトル$\boldsymbol{r}_0$を$\omega t$ [rad]回転させるような変換行列であることが分かります。つまり、行列指数$e^{[\boldsymbol{\omega}]t}$は回転行列の1つであると考えられます!

# 5. 行列指数と回転行列の対応
　4章では、円軌道を表すベクトル$\boldsymbol{r}$が行列指数$e^{[\boldsymbol{\omega}]t}$によって記述可能であり、$e^{[\boldsymbol{\omega}]t}$が回転行列の一種であることが分かりました。本章では、回転角$\theta$を用いて行列指数を記述し、行列指数と回転行列との対応関係をより分かりやすく可視化していきます。
　一定の角速度ベクトル$\boldsymbol{\omega}$には定義より以下の関係がなりたちます。
 
```math
\boldsymbol{\omega}
=
\omega
\boldsymbol{\hat{\boldsymbol{\omega}}}
\tag{7}
```

したがって歪対称行列表現も

```math
[\boldsymbol{\omega}]
=
[\omega
\boldsymbol{\hat{\boldsymbol{\omega}}}]
=
\omega
[\boldsymbol{\hat{\boldsymbol{\omega}}}]
\tag{8}
```

のように変形可能です。角速度$\omega$が一定の円運動を考えているため、回転角度$\theta$は時刻$t$に比例します。

```math
\theta
=
\omega t
\tag{9}
```

以上のことから、行列指数$e^{[\boldsymbol{\omega}]t}$は以下のように変形可能と考えられます。

```math
e^{[\boldsymbol{\omega}]t}
=
e^{\omega[\boldsymbol{\hat{\omega}}]t}
=
e^{[\boldsymbol{\hat{\omega}}]\omega t}
=
e^{[\boldsymbol{\hat{\omega}}]\theta}
\tag{10}
```

(10)式からは行列指数$e^{[\boldsymbol{\omega}]t}
=e^{[\boldsymbol{\hat{\omega}}]\theta}$が「回転軸$\boldsymbol{\hat{\omega}}$まわりの角度$\theta$の回転を行う変換行列」であると解釈できます。(10)式の右辺のように記述すると、行列指数が回転行列に対応しているということが直観的に理解しやすいかなと思います。
　文献によっては、行列指数$e^{[\boldsymbol{\hat{\omega}}]\theta}$を回転行列を意味する$\rm{Rot}$という記号を用いて以下のように表記することがあります。

```math
\rm{Rot}([\boldsymbol{\hat{\omega}}], \theta)
=
e^{[\boldsymbol{\hat{\omega}}]\theta}
\tag{11}
```

(11)式の左辺の表記のほうが直観的で分かりやすいと思います。今後記事の中で行列指数$e^{[\boldsymbol{\hat{\omega}}]\theta}$が登場したときはなんか回転させてるんやなあと思っていただければよいと思います。「行列指数$e^{[\boldsymbol{\hat{\omega}}]\theta}$は回転行列」というイメージが重要です!

# 6. おわりに
　本稿ではこれまでの記事で解説した外積の**歪対称行列表現**と**行列指数**を使って円軌道を描くベクトル$\boldsymbol{r}$を記述しました。その結果、行列指数$e^{[\boldsymbol{\hat{\omega}}]\theta}$は回転行列の一種であることが分かり、それらの表記方法として$\rm{Rot}([\boldsymbol{\hat{\omega}}], \theta)$というものを紹介しました。
　スクリュー理論では行列指数を用いた運動の記述が大量に登場するので、本記事の内容を是非身に着けておいていただきたいなあと思います。
　来週は回転行列の基本的な特性について紹介しようと思います。さいごまで読んでいただきありがとうございました！！