差分
このページの2つのバージョン間の差分を表示します。
| 両方とも前のリビジョン 前のリビジョン 次のリビジョン | 前のリビジョン | ||
| articles:forward_kinematics [2021/06/21 20:53] – [座標変換を使う] Takashi Suehiro | articles:forward_kinematics [2024/07/17 11:08] (現在) – [座標変換を使わない方法との比較] Takashi Suehiro | ||
|---|---|---|---|
| 行 1: | 行 1: | ||
| ====== 順運動学 ====== | ====== 順運動学 ====== | ||
| - | ===== 3自由度アームの順運動学 ===== | + | ===== 3自由度アームの順運動学 ===== |
| 行 6: | 行 6: | ||
| [{{ articles: | [{{ articles: | ||
| 典型的な3自由度アームとその座標系の設定を図1に示す. | 典型的な3自由度アームとその座標系の設定を図1に示す. | ||
| - | この3自由度アームは[[articles: | + | この3自由度アームは[[articles: |
| 可動域内の自由な位置に手先を動かすことが出来る. | 可動域内の自由な位置に手先を動かすことが出来る. | ||
| 座標系の設定は[[articles: | 座標系の設定は[[articles: | ||
| 回転関節の関節軸はベースからz, | 回転関節の関節軸はベースからz, | ||
| - | |||
| - | ちなみに[[articles: | ||
| - | またDH法での$\theta_2=0$は,$L_1$, | ||
| - | この辺りがDH法の分かりにくさとなっている. | ||
| 一般にハンドは取り換え可能であり,どのような座標系を設定するかはハンドに依存することが多い. | 一般にハンドは取り換え可能であり,どのような座標系を設定するかはハンドに依存することが多い. | ||
| 行 31: | 行 27: | ||
| また以下では$base$, | また以下では$base$, | ||
| - | 注意してほしいのは,下の図はベース座標系$\Sigma_0$ではなくリンク1の座標系$\Sigma_1$のxy平面での図である. | + | 注意してほしいのは,下の図はベース座標系$\Sigma_0$ではなくリンク1の座標系$\Sigma_1$のzx平面での図である. |
| 下の図から$\Sigma_1$での手首のzの値$^1z_{wrist}$, | 下の図から$\Sigma_1$での手首のzの値$^1z_{wrist}$, | ||
| 行 74: | 行 70: | ||
| 関節における駆動変換は, | 関節における駆動変換は, | ||
| $$ | $$ | ||
| - | ^{J_1}T_{1} = | + | ^{J_1}T_{1} |
| \left( \begin{array}{cc} | \left( \begin{array}{cc} | ||
| \mathrm{cos}\, | \mathrm{cos}\, | ||
| 行 84: | 行 80: | ||
| となる.これを計算すると, | となる.これを計算すると, | ||
| $$ | $$ | ||
| - | ^{0}T_{1} = {^{0}T_{J_1}}{ ^{J_1}T_{1}} | + | ^{0}T_{1} |
| = | = | ||
| \left( \begin{array}{cc} | \left( \begin{array}{cc} | ||
| 行 96: | 行 92: | ||
| 同様に各リンク間の座標変換行列を求めると, | 同様に各リンク間の座標変換行列を求めると, | ||
| $$ | $$ | ||
| - | ^{1}T_{2} | + | ^{1}T_{2} |
| = | = | ||
| \left( \begin{array}{cc} | \left( \begin{array}{cc} | ||
| 行 107: | 行 103: | ||
| $$ | $$ | ||
| $$ | $$ | ||
| - | ^{2}T_{3} | + | ^{2}T_{3} |
| = | = | ||
| \left( \begin{array}{cc} | \left( \begin{array}{cc} | ||
| 行 139: | 行 135: | ||
| \\ | \\ | ||
| \\ | \\ | ||
| - | === 座標変換を使わない方法との比較 === | + | ==== 座標変換を使わない方法との比較 |
| - | 念のため計算して座標変換を使わない方法との一致を確認する. | + | 念のため式を展開して座標変換を使わない方法との一致を確認する. |
| 手首位置だけを問題にしていたので手首位置だけの式に書き換える. | 手首位置だけを問題にしていたので手首位置だけの式に書き換える. | ||
| $$ | $$ | ||
| 行 159: | 行 155: | ||
| 1 \end{array} \right) | 1 \end{array} \right) | ||
| $$ | $$ | ||
| - | さらに, | + | さらに |
| + | (( | ||
| + | ここの簡略化は三角関数の加法定理.分かりますよね. | ||
| + | )), | ||
| $$ | $$ | ||
| {^1T_2}(\theta_2){^2T_3}(\theta_3){^3\boldsymbol{p}_{wrist}} | {^1T_2}(\theta_2){^2T_3}(\theta_3){^3\boldsymbol{p}_{wrist}} | ||
| 行 192: | 行 191: | ||
| 実際には座標変換を用いた方が簡単なだけでなく以下のようにさまざまな利点がある. | 実際には座標変換を用いた方が簡単なだけでなく以下のようにさまざまな利点がある. | ||
| + | * 位置だけでなく姿勢も計算できる | ||
| * 関節が増えた場合や斜めの回転軸などの複雑な構造にも簡単に対応できる | * 関節が増えた場合や斜めの回転軸などの複雑な構造にも簡単に対応できる | ||
| * ハンドなどの手先の変更にも容易に対応できる | * ハンドなどの手先の変更にも容易に対応できる | ||
| 行 197: | 行 197: | ||
| - | ===== 6自由度アーム ===== | + | ===== 6自由度アームの順運動学 |
| 座標系を用いた本格的な順運動学計算の例としてハンドのついた6自由度アームについて扱う. | 座標系を用いた本格的な順運動学計算の例としてハンドのついた6自由度アームについて扱う. | ||
| + | ここでは「ハンド」としているが,ハンドに限らずアームの手首(アームの最終リンク)に固定されたものであれば | ||
| + | どのような「ツール(tool, | ||
| ==== ハンド座標系の設定 ==== | ==== ハンド座標系の設定 ==== | ||
| 行 235: | 行 237: | ||
| 上記のハンド座標系の設定を踏まえて図5のハンド付き6自由度アームの順運動学を求める. | 上記のハンド座標系の設定を踏まえて図5のハンド付き6自由度アームの順運動学を求める. | ||
| このアームの回転軸はベースからz, | このアームの回転軸はベースからz, | ||
| - | 図5の$l_1$などのリンクパラメタの具体的な値はここでは気にしなくて良い. | + | |
| $$ | $$ | ||
| - | ^{0}T_{1} | + | ^{0}T_{1} |
| = | = | ||
| \left( \begin{array}{cc} | \left( \begin{array}{cc} | ||
| 行 248: | 行 250: | ||
| $$ | $$ | ||
| $$ | $$ | ||
| - | ^{1}T_{2} | + | ^{1}T_{2} |
| = | = | ||
| \left( \begin{array}{cc} | \left( \begin{array}{cc} | ||
| 行 260: | 行 262: | ||
| $$ | $$ | ||
| $$ | $$ | ||
| - | ^{2}T_{3} | + | ^{2}T_{3} |
| = | = | ||
| \left( \begin{array}{cc} | \left( \begin{array}{cc} | ||
| 行 271: | 行 273: | ||
| $$ | $$ | ||
| $$ | $$ | ||
| - | ^{3}T_{4} | + | ^{3}T_{4} |
| = | = | ||
| \left( \begin{array}{cc} | \left( \begin{array}{cc} | ||
| 行 282: | 行 284: | ||
| $$ | $$ | ||
| $$ | $$ | ||
| - | ^{4}T_{5} | + | ^{4}T_{5} |
| = | = | ||
| \left( \begin{array}{cc} | \left( \begin{array}{cc} | ||
| 行 294: | 行 296: | ||
| $$ | $$ | ||
| $$ | $$ | ||
| - | ^{5}T_{6} | + | ^{5}T_{6} |
| = | = | ||
| \left( \begin{array}{cc} | \left( \begin{array}{cc} | ||
| 行 329: | 行 331: | ||
| $$ | $$ | ||
| となる. | となる. | ||
| - | ===== 汎用順運動学関数 ===== | ||
| + | 以上のように,シリアルリンクアームでは各関節の設置座標系と駆動軸,最終リンクから手首座標系,手首座標系からハンド座標系が与えられれば機械的に順運動学を計算することが出来る. | ||