articles:forward_kinematics

差分

このページの2つのバージョン間の差分を表示します。

この比較画面へのリンク

両方とも前のリビジョン 前のリビジョン
次のリビジョン
前のリビジョン
articles:forward_kinematics [2021/06/21 20:54] – [座標変換を使う] Takashi Suehiroarticles:forward_kinematics [2024/07/17 11:08] (現在) – [座標変換を使わない方法との比較] Takashi Suehiro
行 1: 行 1:
 ====== 順運動学 ====== ====== 順運動学 ======
-===== 3自由度アームの順運動学 =====+===== 自由度アームの順運動学 =====
  
  
行 6: 行 6:
 [{{ articles:forward_kinematics_01.png?200|図1 3関節アームの座標系設定}}] [{{ articles:forward_kinematics_01.png?200|図1 3関節アームの座標系設定}}]
 典型的な3自由度アームとその座標系の設定を図1に示す. 典型的な3自由度アームとその座標系の設定を図1に示す.
-この3自由度アームは[[articles:kinematics|ロボットアームの運動学]]で述べたように+この3自由度アームは[[articles:kinematics|アームの運動学の導入部]]で述べたように
 可動域内の自由な位置に手先を動かすことが出来る. 可動域内の自由な位置に手先を動かすことが出来る.
 座標系の設定は[[articles:kinematics#直感的に理解しやすい置き方|直感的に分かりやすい]]ように関節パラメタが$0$のときにベース座標系と同じ姿勢になっている. 座標系の設定は[[articles:kinematics#直感的に理解しやすい置き方|直感的に分かりやすい]]ように関節パラメタが$0$のときにベース座標系と同じ姿勢になっている.
 回転関節の関節軸はベースからz,y,yになっている. 回転関節の関節軸はベースからz,y,yになっている.
- 
-ちなみに[[articles:kinematics#DH(Denavit-Hartenberg,デナビット・ハーテンバーグ)法|DH法]]で設定するとベース,$L_1$,$L_2$の原点は$L_1$と$L_2$の回転軸の交点(図1の$L_2$の原点)にまとまってしまう. 
-またDH法での$\theta_2=0$は,$L_1$,$L_2$のx軸が一致しなくてはならず,$L_2$のx軸は$L_3$の回転軸との共通垂線の方向なので,アームがそこで$pi/2$折れ曲がった姿勢になってしまう.アームを直立させるためには$\theta_2$にオフセットが必要となる. 
-この辺りがDH法の分かりにくさとなっている. 
  
 一般にハンドは取り換え可能であり,どのような座標系を設定するかはハンドに依存することが多い. 一般にハンドは取り換え可能であり,どのような座標系を設定するかはハンドに依存することが多い.
行 31: 行 27:
 また以下では$base$,$L_1$などの添え字は式が見にくくなるので,base=>0,$L_1$=>1のように変更して示す. また以下では$base$,$L_1$などの添え字は式が見にくくなるので,base=>0,$L_1$=>1のように変更して示す.
  
-注意してほしいのは,下の図はベース座標系$\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} (\theta_1) =
 \left( \begin{array}{cc}  \left( \begin{array}{cc} 
 \mathrm{cos}\, \theta_1 & - \mathrm{sin}\, \theta_1 & 0  & 0\\ \mathrm{cos}\, \theta_1 & - \mathrm{sin}\, \theta_1 & 0  & 0\\
行 84: 行 80:
 となる.これを計算すると, となる.これを計算すると,
 $$ $$
-^{0}T_{1} = {^{0}T_{J_1}}{ ^{J_1}T_{1}}+^{0}T_{1} (\theta_1) = {^{0}T_{J_1}}{ ^{J_1}T_{1}} (\theta_1)
 = =
 \left( \begin{array}{cc}  \left( \begin{array}{cc} 
行 96: 行 92:
 同様に各リンク間の座標変換行列を求めると, 同様に各リンク間の座標変換行列を求めると,
 $$ $$
-^{1}T_{2}+^{1}T_{2} (\theta_2)
 = =
 \left( \begin{array}{cc}  \left( \begin{array}{cc} 
行 107: 行 103:
 $$ $$
 $$ $$
-^{2}T_{3}+^{2}T_{3} (\theta_3)
 = =
 \left( \begin{array}{cc}  \left( \begin{array}{cc} 
行 141: 行 137:
 ==== 座標変換を使わない方法との比較 ==== ==== 座標変換を使わない方法との比較 ====
  
-念のため計算して座標変換を使わない方法との一致を確認する.+念のため式を展開して座標変換を使わない方法との一致を確認する.
 手首位置だけを問題にしていたので手首位置だけの式に書き換える. 手首位置だけを問題にしていたので手首位置だけの式に書き換える.
 $$ $$
行 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自由度アームについて扱う.
  
 +ここでは「ハンド」としているが,ハンドに限らずアームの手首(アームの最終リンク)に固定されたものであれば
 +どのような「ツール(tool, end-effector)」であっても良い.
 ==== ハンド座標系の設定 ==== ==== ハンド座標系の設定 ====
  
行 235: 行 237:
 上記のハンド座標系の設定を踏まえて図5のハンド付き6自由度アームの順運動学を求める. 上記のハンド座標系の設定を踏まえて図5のハンド付き6自由度アームの順運動学を求める.
 このアームの回転軸はベースからz,y,y,z,y,zとなっており座標変換行列を列挙すると以下のようになる. このアームの回転軸はベースからz,y,y,z,y,zとなっており座標変換行列を列挙すると以下のようになる.
-図5の$l_1$などのリンクパラメタの具体的な値はここでは気にしなくて良い.+
 $$ $$
-^{0}T_{1}+^{0}T_{1} (\theta_1)
 = =
 \left( \begin{array}{cc}  \left( \begin{array}{cc} 
行 248: 行 250:
 $$ $$
 $$ $$
-^{1}T_{2}+^{1}T_{2} (\theta_2)
 = =
 \left( \begin{array}{cc}  \left( \begin{array}{cc} 
行 260: 行 262:
 $$ $$
 $$ $$
-^{2}T_{3}+^{2}T_{3} (\theta_3)
 = =
 \left( \begin{array}{cc}  \left( \begin{array}{cc} 
行 271: 行 273:
 $$ $$
 $$ $$
-^{3}T_{4}+^{3}T_{4} (\theta_4)
 = =
 \left( \begin{array}{cc}  \left( \begin{array}{cc} 
行 282: 行 284:
 $$ $$
 $$ $$
-^{4}T_{5}+^{4}T_{5} (\theta_5)
 = =
 \left( \begin{array}{cc}  \left( \begin{array}{cc} 
行 294: 行 296:
 $$ $$
 $$ $$
-^{5}T_{6}+^{5}T_{6} (\theta_6)
 = =
 \left( \begin{array}{cc}  \left( \begin{array}{cc} 
行 329: 行 331:
 $$ $$
 となる. となる.
-===== 汎用順運動学関数 ===== 
  
 +以上のように,シリアルリンクアームでは各関節の設置座標系と駆動軸,最終リンクから手首座標系,手首座標系からハンド座標系が与えられれば機械的に順運動学を計算することが出来る.
  
  
  • articles/forward_kinematics.1624276459.txt.gz
  • 最終更新: 2021/06/21 20:54
  • by Takashi Suehiro