はじめまして、りょーつといいます。高専出身の大学院2年生です。研究の専門は力学や機構学で、Qiitaでは主に制御工学や数学に関する記事を書いています。本稿はスクリュー理論の解説(布教)をする25個目の記事です。前回までの記事は以下のリンクを参照してください。
スクリュー理論① 外積の歪対称行列表現
スクリュー理論② 行列の指数関数
スクリュー理論③ 行列指数と回転行列の関係
スクリュー理論④ 回転行列の成分表示
スクリュー理論⑤ 回転行列による座標系の表現
スクリュー理論⑥ 剛体の速度・加速度の座標変換公式の導出
スクリュー理論⑦ 三次元空間における右手系の回転行列
スクリュー理論⑧ 回転行列による座標変換
スクリュー理論⑨ 回転行列によるベクトルの回転
スクリュー理論⑩ 回転行列と多様体の関係
スクリュー理論⑪ 同次変換行列の導入
スクリュー理論⑫ 同次変換行列による座標系の表現と基底変換
スクリュー理論⑬ 歪対称行列表現の回転座標変換
スクリュー理論⑭ 同次変換行列の微分とツイストの導入
スクリュー理論⑮ スクリューの導入と行列指数による同次変換行列の表現
スクリュー理論⑯ アジョイント変換
スクリュー理論⑰ 回転行列の行列対数
スクリュー理論⑱ 回転行列の積分
スクリュー理論⑲ 行列指数を用いた同次変換行列の成分表示
スクリュー理論⑳ 同次変換行列の行列対数
スクリュー理論㉑ シリアルリンクロボットアームの順運動学
スクリュー理論㉒ 円筒座標ロボットアームの順運動学
スクリュー理論㉓ 円筒座標ロボットアームのヤコビアン
スクリュー理論㉔ ボディ座標系を用いた順運動学
スクリュー理論は剛体の運動を記述する方法で、ロボット工学などでよく使われています。日本の高専や大学ではDH法を使った記述を学ぶことが多いですが、国際的にはスクリュー理論を使った記述が一般的となってきているようです。スクリュー理論を扱う日本語の文献は少ないので、この記事が誰かの助けになればいいなと思います。
目次
1.はじめに
2.アジョイント変換の復習
3.アジョイント変換の例
4.おわりに
1. はじめに
今週の記事では、アジョイント変換の図的イメージについて解説したいと思います。スクリュー理論の枠組みの中でヤコビアンを記述する際にアジョイント変換を多用するのですが、図的イメージが身についていた方が理解しやすいと思い、この記事を書いています。
アジョイント変換について軽く復習しておくと理解しやすいと思います。
2. アジョイント変換の復習
ツイスト$\boldsymbol{\nu}$の座標系を変換するときに使うのがアジョイント変換です。ツイスト$\boldsymbol{\nu} \in \mathbb{R}^6$はある座標系の原点に生じる角速度$\boldsymbol{\omega} \in \mathbb{R}^3$と並進速度$\boldsymbol{v} \in \mathbb{R}^3$を並べて作られる6次元ベクトルで、以下のように定義します。
\boldsymbol{\nu}
=
\begin{bmatrix}
\boldsymbol{\omega} \\
\boldsymbol{v} \\
\end{bmatrix}
\tag{2}
座標系が複数ある場合は、どの座標系のツイスト$\boldsymbol{\nu}$を指しているのか分かりやすいように、添え字をつけて表すことにします。例えば座標系$\Sigma_a$と座標系$\Sigma_b$があったとき、座標系$\Sigma_a$のツイストを$\boldsymbol{\nu_a}$、座標系$\Sigma_b$のツイストを$\boldsymbol{\nu_b}$とします。
\boldsymbol{\nu_a}
=
\begin{bmatrix}
\boldsymbol{\omega_a} \\
\boldsymbol{v_a} \\
\end{bmatrix}
\tag{3}
\boldsymbol{\nu_b}
=
\begin{bmatrix}
\boldsymbol{\omega_b} \\
\boldsymbol{v_b} \\
\end{bmatrix}
\tag{4}
ここで、座標系$\Sigma_a$からみた座標系$\Sigma_b$の位置姿勢を同次変換行列$T_{ab}\in \mathbb{R}^4 \times \mathbb{R}^4$とします。このとき、ツイストは以下のように座標変換することができます。
\boldsymbol{\nu_a}
=
[Ad_{T_{ab}}]
\boldsymbol{\nu_b}
\tag{5}
行列$[Ad_{T_{ab}}] \in \mathbb{R}^6 \times \mathbb{R}^6$は同次変換行列$T_{ab}$の成分を用いて構成される変換行列であり、「アジョイント表現」と呼ばれます。(3)~(5)式を図1にまとめてみました。
図1 アジョイント変換のイメージ
3. アジョイント変換の例
本章では、簡単な例を用いてアジョイント変換のイメージをつかんでいきたいと思います。例題として図2に示すように座標系$\Sigma_a$、$\Sigma_b$と回転軸$\boldsymbol{\omega}$を考えてみましょう。
図2 例題の問題設定
すると、各座標系の原点に生じるツイスト$\boldsymbol{\nu_a}$、$\boldsymbol{\nu_b}$は以下のように表されます。
\boldsymbol{\nu_a}
=
\begin{bmatrix}
0 \\
0 \\
1 \\
0 \\
-(L_1 + L_2) \\
0 \\
\end{bmatrix}
\tag{6}
\boldsymbol{\nu_b}
=
\begin{bmatrix}
1 \\
0 \\
0 \\
0 \\
0 \\
-L_2 \\
\end{bmatrix}
\tag{7}
$\Sigma_a$と$\Sigma_b$の姿勢が違う点に注意してください。一方で、座標系$\Sigma_a$と$\Sigma_b$をつなぐ同次変換行列$T_{ab}$は以下のようになるはずです。
T_{ab}
=
\begin{bmatrix}
0 & 1 & 0 & L1 \\
0 & 0 & 1 & 0 \\
1 & 0 & 0 & 0 \\
0 & 0 & 0 & 1 \\
\end{bmatrix}
\tag{8}
以前の記事を参考に(8)式の同次変換行列$T_{ab}$からアジョイント表現$[Ad_{T_{ab}}]$を求めてみます。
T_{ab}
=
\begin{bmatrix}
R_{sb} & \boldsymbol{p_{ab}} \\
\boldsymbol{0}^T & 1
\end{bmatrix}
\tag{9}
としたとき
[Ad_{T_{ab}}]
=
\begin{bmatrix}
R_{sb} & O \\
[\boldsymbol{p_{ab}}]R_{ab} & R_{ab} \\
\end{bmatrix}
\tag{10}
であり、今回の例では
R_{ab}
=
\begin{bmatrix}
0 & 1 & 0 \\
0 & 0 & 1 \\
1 & 0 & 0 \\
\end{bmatrix}
\tag{11}
\boldsymbol{p_{ab}}
=
\begin{bmatrix}
L_1 \\
0 \\
0 \\
\end{bmatrix}
\tag{12}
[\boldsymbol{p_{ab}}]
=
\begin{bmatrix}
0 & 0 & 0 \\
0 & 0 & -L_1 \\
0 & L_1 & 0 \\
\end{bmatrix}
\tag{13}
であるため、頑張って計算すると
[Ad_{T_{ab}}]
=
\begin{bmatrix}
0 & 1 & 0 & 0 & 0 & 0 \\
0 & 0 & 1 & 0 & 0 & 0 \\
1 & 0 & 0 & 0 & 0 & 0 \\
0 & 0 & 0 & 0 & 1 & 0 \\
L_1 & 0 & 0 & 0 & 0 & 1 \\
0 & 0 & L_1 & 1 & 0 & 0 \\
\end{bmatrix}
\tag{14}
が得られます。ちなみに$[\boldsymbol{p_{ab}}]$は$\boldsymbol{p_{ab}}$の歪対称行列表現を意味しています。
アジョイント表現が得られたので実際に(7)式のツイストをアジョイント変換してみましょう。
[Ad_{T_{ab}}] \boldsymbol{\nu_b}
=
\begin{bmatrix}
0 & 1 & 0 & 0 & 0 & 0 \\
0 & 0 & 1 & 0 & 0 & 0 \\
1 & 0 & 0 & 0 & 0 & 0 \\
0 & 0 & 0 & 0 & 1 & 0 \\
-L_1 & 0 & 0 & 0 & 0 & 1 \\
0 & 0 & L_1 & 1 & 0 & 0 \\
\end{bmatrix}
\begin{bmatrix}
1 \\
0 \\
0 \\
0 \\
0 \\
-L_2 \\
\end{bmatrix}
=
\begin{bmatrix}
0 \\
0 \\
1 \\
0 \\
-(L_1 + L_2) \\
0 \\
\end{bmatrix}
\tag{15}
するとどうでしょうか? (6)式と(15)式を見比べると、たしかにアジョイント変換について(5)式がなりたつようです。
ここで注意しないといけないのは、アジョイント変換の前後で、ツイストの発生源が同一となるようにしないといけない点です。上記の例ではどちらのツイストも同じ回転軸$\boldsymbol{\omega}$が発生源となっています。
ややこしいですが、アジョイント変換にはツイストの発生源を固定して座標系のみを変化させる方法(今回の記事)と、座標系を固定してツイストの発生源の位置姿勢を変化させる方法(おそらく次回の記事で紹介)の2種類があります。ベクトルの基底変換と座標変換の違いみたいな感じです。
4. おわりに
本稿では、アジョイント変換の図的イメージについて簡単な例を交えて紹介しました。来週は2つの回転関節を有するロボットアームのツイストに関する例を用いて、ツイストの発生源を移動させるような変換についてまとめていきたいと思います。
今週も最後まで読んでいただき、ありがとうございました!!