差分
このページの2つのバージョン間の差分を表示します。
| 両方とも前のリビジョン 前のリビジョン 次のリビジョン | 前のリビジョン | ||
| articles:jacobian_matrix [2021/06/28 23:48] – [ヤコビ行列の計算方法] Takashi Suehiro | articles:jacobian_matrix [2021/10/01 13:11] (現在) – [3自由度アームのヤコビ行列(座標変換からの導出)] Takashi Suehiro | ||
|---|---|---|---|
| 行 2: | 行 2: | ||
| 一般に多変数関数の微小量の関係は偏微分係数行列(ヤコビ行列 | 一般に多変数関数の微小量の関係は偏微分係数行列(ヤコビ行列 | ||
| - | ((ヤコビ行列(Jacobian matrix)をヤコビアンと呼ぶことも多い. | + | ((ロボットの分野ではヤコビ行列(Jacobian matrix)をヤコビアンと呼ぶことが多い. |
| - | しかし,ヤコビアンはヤコビ行列式(Jacobian determinant)の意味で用いることも多いので | + | しかし,数学の分野ではヤコビアンはヤコビ行列式(Jacobian determinant)の意味で用いることも多いので |
| ここではヤコビ行列で統一する. | ここではヤコビ行列で統一する. | ||
| )) | )) | ||
| 行 9: | 行 9: | ||
| ロボットアームのヤコビ行列はロボットの関節の微小な動き(もしくは速度)とロボットの手先の位置(および姿勢)の | ロボットアームのヤコビ行列はロボットの関節の微小な動き(もしくは速度)とロボットの手先の位置(および姿勢)の | ||
| 微小な動き(もしくは速度)との関係を表現したものである. | 微小な動き(もしくは速度)との関係を表現したものである. | ||
| - | これを使うとニュートンラフソン法を応用して逆運動学を数値的に解くことが出来る. | + | これを使うと[[articles: |
| + | 応用して逆運動学を数値的に解くことが出来る. | ||
| またアームの制御に直接用いて分解運動制御と呼ばれる多数の関節の協調動作を利用した動作が実現できる. | またアームの制御に直接用いて分解運動制御と呼ばれる多数の関節の協調動作を利用した動作が実現できる. | ||
| さらにロボットアーム単体だけでなく双腕,指,ビジョンなどのセンサ情報との協調にも用いることが出来る. | さらにロボットアーム単体だけでなく双腕,指,ビジョンなどのセンサ情報との協調にも用いることが出来る. | ||
| - | ここでは座標変換の微分表現を使ったヤコビ行列の導出を行う.これはガウスニュートン法を利用して | + | ここでは座標変換の微分表現を使ったヤコビ行列の導出を行う.この手法はロボットの運動学だけでなく |
| - | 座標系のキャリブレーションや物体の形状フィッティングにも応用できる. | + | 座標系のキャリブレーションや物体の形状フィッティングにも利用できる応用範囲の広いものとなっている. |
| また画像中の特徴量とアームの動きの微小量の関係を表すヤコビ行列(イメージ・ヤコビアンと呼ばれることも)を | また画像中の特徴量とアームの動きの微小量の関係を表すヤコビ行列(イメージ・ヤコビアンと呼ばれることも)を | ||
| 行 112: | 行 113: | ||
| - $\boldsymbol{\theta}_i$の順運動学解$\boldsymbol{p}_i$を求める. | - $\boldsymbol{\theta}_i$の順運動学解$\boldsymbol{p}_i$を求める. | ||
| - $\boldsymbol{p}_i$が$\boldsymbol{p}_T$に十分一致していれば終了.\\ ある程度十分に近ければその差を$\Delta\boldsymbol{p}_i$とし,離れている場合はその方向の微小ステップを$\Delta\boldsymbol{p}_i$とする. | - $\boldsymbol{p}_i$が$\boldsymbol{p}_T$に十分一致していれば終了.\\ ある程度十分に近ければその差を$\Delta\boldsymbol{p}_i$とし,離れている場合はその方向の微小ステップを$\Delta\boldsymbol{p}_i$とする. | ||
| - | - $\delta\boldsymbol{\theta}_i=J^{-1}\Delta\boldsymbol{p}_i$を計算し,$\boldsymbol{\theta}_{i+1} = \boldsymbol{\theta}_i + \Delta\boldsymbol{\theta}_i$とする. | + | - $\Delta\boldsymbol{\theta}_i=J^{-1}\Delta\boldsymbol{p}_i$を計算し,$\boldsymbol{\theta}_{i+1} = \boldsymbol{\theta}_i + \Delta\boldsymbol{\theta}_i$とする. |
| - 終了するまで2から4を繰り返す. | - 終了するまで2から4を繰り返す. | ||
| 終了時点での$\boldsymbol{\theta}_i$が$\boldsymbol{p}_T$の逆運動学解の数値解$\boldsymbol{\theta}_T$となっている. | 終了時点での$\boldsymbol{\theta}_i$が$\boldsymbol{p}_T$の逆運動学解の数値解$\boldsymbol{\theta}_T$となっている. | ||
| - | このように順運動学とヤコビ行列があれば逆運動学を数値的に解くことができる. | + | このように順運動学とヤコビ行列があれば逆運動学を数値的に解くことができる |
| + | ((このヤコビ行列を用いた逆運動学の数値解法は先に述べた分解運動速度制御を連続させたものと同等である. | ||
| + | つまり,分解運動速度制御を適応すると逆運動学を明示的に解くことなく手先の位置を任意の場所に制御できるということになる.)). | ||
| ===== 3自由度アームのヤコビ行列(書き下しの式からの導出) ===== | ===== 3自由度アームのヤコビ行列(書き下しの式からの導出) ===== | ||
| 行 242: | 行 245: | ||
| \end{array} \right) | \end{array} \right) | ||
| $$ | $$ | ||
| - | であるが今回はこれは使わないことにする | + | であるが今回はこの行列ではなく位置ベクトルだけを使うことにする |
| (( | (( | ||
| - | 使っても定数項の座標変換が1つ加わるだけで何も問題はない | + | 3自由度アームの場合,位置と姿勢を独立に決めることが出来ないので位置だけを問題にする. |
| )). | )). | ||
| 行 411: | 行 414: | ||
| [{{ articles: | [{{ articles: | ||
| - | これは腕を回転軸周りに回転させたときその先端がどのように動くかということを表しており,直感的にも理解しやすいものになっている. | + | これは腕を回転軸周りに回転させたときその先端がどのように動くかということを表しており,直感的にも理解しやすいものになっている(図7). |
| ==== $\theta_2$,$\theta_3$による偏微分 ==== | ==== $\theta_2$,$\theta_3$による偏微分 ==== | ||
| 行 443: | 行 446: | ||
| = {^0\boldsymbol{r}_3} \times {^0\boldsymbol{l}_{wrist-3}} \tag{5} | = {^0\boldsymbol{r}_3} \times {^0\boldsymbol{l}_{wrist-3}} \tag{5} | ||
| $$ | $$ | ||
| + | これらの結果は図8に示すようにヤコビ行列の直感的意味との整合性が明確なものになっている. | ||
| ==== 座標変換からの導出のまとめ ==== | ==== 座標変換からの導出のまとめ ==== | ||
| ヤコビ行列を座標変換を用いた順運動学から導出するのは展開された順運動学からの導出と比べて | ヤコビ行列を座標変換を用いた順運動学から導出するのは展開された順運動学からの導出と比べて | ||
| 行 452: | 行 456: | ||
| \dfrac{\partial{^0\boldsymbol{p}_{wrist}}}{\partial{\boldsymbol\theta}} | \dfrac{\partial{^0\boldsymbol{p}_{wrist}}}{\partial{\boldsymbol\theta}} | ||
| = \left( \begin{array}{c} | = \left( \begin{array}{c} | ||
| - | {^0\boldsymbol{r}_3} \times {^0\boldsymbol{l}_{wrist-3}} & | + | {^0\boldsymbol{r}_1} \times {^0\boldsymbol{l}_{wrist-1}} & |
| - | {^0\boldsymbol{r}_3} \times {^0\boldsymbol{l}_{wrist-3}} & | + | {^0\boldsymbol{r}_2} \times {^0\boldsymbol{l}_{wrist-2}} & |
| {^0\boldsymbol{r}_3} \times {^0\boldsymbol{l}_{wrist-3}} | {^0\boldsymbol{r}_3} \times {^0\boldsymbol{l}_{wrist-3}} | ||
| \end{array}\right) | \end{array}\right) | ||
| $$ | $$ | ||
| - | このヤコビ行列を求める場合は数式としての展開は不要であり, | + | このヤコビ行列を求める場合は数式としての順運動学の展開は不要であり, |
| 式(3), | 式(3), | ||
| 数値を求めることが出来る. | 数値を求めることが出来る. | ||
| 行 482: | 行 486: | ||
| ここではこの直感を広げて手先の座標系の位置および姿勢の関節パラメタ(回転,並進)による偏微分係数を求め, | ここではこの直感を広げて手先の座標系の位置および姿勢の関節パラメタ(回転,並進)による偏微分係数を求め, | ||
| - | ヤコビ行列を導出する.式の展開は行わないが,座標変換を用いた順運動学を関節パラメタで微分することで得られる. | + | ヤコビ行列を導出する.式の展開は行わないが,それは座標変換を用いた順運動学を関節パラメタで微分することで得られる. |
| 実際的には,行列での計算を行うよりは,回転軸や腕の長さなどの必要なパラメタを座標計算で求める方が | 実際的には,行列での計算を行うよりは,回転軸や腕の長さなどの必要なパラメタを座標計算で求める方が | ||
| 行 558: | 行 562: | ||
| \end{array} \right) | \end{array} \right) | ||
| = J\dfrac{d\boldsymbol{\theta}}{dt} | = J\dfrac{d\boldsymbol{\theta}}{dt} | ||
| - | ~ J\dot{\boldsymbol{\theta}} | + | = J\dot{\boldsymbol{\theta}} |
| $$ | $$ | ||
| となる. | となる. | ||
| 行 607: | 行 611: | ||
| ベースまで計算が完了すると,順運動学$^0T_{hand}$と | ベースまで計算が完了すると,順運動学$^0T_{hand}$と | ||
| - | ヤコビ行列に必要な$^0\boldsymbol{l}_i$,$^0\boldsymbol{r}_i$が得られる. | + | ヤコビ行列の計算に必要な$^0\boldsymbol{l}_i$,$^0\boldsymbol{r}_i$とが得られる. |
| これを使って回転/並進を考慮しながら式(6)を計算するとヤコビ行列が得られる. | これを使って回転/並進を考慮しながら式(6)を計算するとヤコビ行列が得られる. | ||