articles:kinematics

差分

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

この比較画面へのリンク

両方とも前のリビジョン 前のリビジョン
次のリビジョン
前のリビジョン
articles:kinematics [2021/06/21 18:08] – [DH(Denavit-Hartenberg,デナビット・ハーテンバーグ)法] Takashi Suehiroarticles:kinematics [2022/02/03 14:32] (現在) – [DH(Denavit-Hartenberg,デナビット・ハーテンバーグ)法] Takashi Suehiro
行 78: 行 78:
 同様に扱うことが出来る. 同様に扱うことが出来る.
 また駆動軸は必ずしも座標系の軸のどれかに合わせる必要はないが,そうすることで座標変換行列は簡単になる. また駆動軸は必ずしも座標系の軸のどれかに合わせる必要はないが,そうすることで座標変換行列は簡単になる.
 +
 +アームのリンクにこうした座標系を設定したイメージを図8に示す.
  
 上記のような関節-リンクの関係を考えるとリンク$L_{i-1}$からリンク$L_i$への変換$^{i-1}T_i$は, 上記のような関節-リンクの関係を考えるとリンク$L_{i-1}$からリンク$L_i$への変換$^{i-1}T_i$は,
-リンク$L_{i-1}$から関節$J_i$の設置位置・姿勢への変換${^{i-1}T_{J_i}}$と,関節パラメタで動かされる部分の変換${^{J_i}T_i}$に +リンク$L_{i-1}$から関節$J_i$の設置位置・姿勢への変換${^{i-1}T_{J_i}}$と,関節パラメタ$q_i$で動かされる部分の変換${^{J_i}T_i}(q_i)$に 
-分解されて以下のように書ける.+分解されて以下のように書ける 
 +(( 
 +$q_i$は回転関節の場合は関節回転角度$\theta_i$,並進関節の場合は並進移動量$d_i$などである. 
 +))
 $$ $$
-^{i-1}T_i = {^{i-1}T_{J_i}}{^{J_i}T_i} \tag{1}+^{i-1}T_i = {^{i-1}T_{J_i}}{^{J_i}T_i}(q_i) \tag{1}
 $$ $$
  
行 104: 行 109:
  
 上記のように座標系を設定するとで式(1)を一つにまとめて簡略化した場合にも分かりやすい簡単な座標変換行列になる. 上記のように座標系を設定するとで式(1)を一つにまとめて簡略化した場合にも分かりやすい簡単な座標変換行列になる.
 +
  
 この方法の利点は この方法の利点は
行 121: 行 127:
  
 上記の理由で,実際の場面ではDH法よりも直感的に理解しやすい設定にすることが多い. 上記の理由で,実際の場面ではDH法よりも直感的に理解しやすい設定にすることが多い.
 +
 +この具体例は[[articles:forward_kinematics#3自由度アームの順運動学]]などの項で示す.
 +
  
 ==== DH(Denavit-Hartenberg,デナビット・ハーテンバーグ)法 ==== ==== DH(Denavit-Hartenberg,デナビット・ハーテンバーグ)法 ====
行 138: 行 147:
   *  $z_{i-1}$と$z_i$との$x_{i-1}$軸まわりの回転角度を$\alpha_{i-1}$とする.   *  $z_{i-1}$と$z_i$との$x_{i-1}$軸まわりの回転角度を$\alpha_{i-1}$とする.
   * 共通垂線の$z_i$軸上の垂線の足からリンク$i$の原点(次のリンク$L_{i+1}$の$z_{i+1}$軸との垂線の足)との距離($z_i$の方向を考慮する)を$d_i$とする.   * 共通垂線の$z_i$軸上の垂線の足からリンク$i$の原点(次のリンク$L_{i+1}$の$z_{i+1}$軸との垂線の足)との距離($z_i$の方向を考慮する)を$d_i$とする.
-    * 並進関節の場合,これがこれがリンク$L_i$を動かす並進関節の長さとなる. 
   * $x_{i-1}$と$x_i$との$z_i$軸まわりの回転角度を$\theta_i$とする.   * $x_{i-1}$と$x_i$との$z_i$軸まわりの回転角度を$\theta_i$とする.
-    * 回転関節の場合,これがリンク$L_i$を動かす回転関節の角度となる. 
   *  $y_{i}$軸は$z_{i}$軸から$x_{i}$軸への右ねじの方向になる.   *  $y_{i}$軸は$z_{i}$軸から$x_{i}$軸への右ねじの方向になる.
   * ベースリンク(おそらく$L_0$)にはそれを動かす関節がないので,座標系は任意に設定できる.((簡単にするなら次のリンクの関節パラメタが$0$のときに一致するように取る.そうすることでいくらか計算の省略ができるように見えるが,実際にはロボットを設置したときに据え付け位置とベースリンクとの座標変換を考える必要があることが多いので,据え付け原点に座標系を設定しても問題はない.))   * ベースリンク(おそらく$L_0$)にはそれを動かす関節がないので,座標系は任意に設定できる.((簡単にするなら次のリンクの関節パラメタが$0$のときに一致するように取る.そうすることでいくらか計算の省略ができるように見えるが,実際にはロボットを設置したときに据え付け位置とベースリンクとの座標変換を考える必要があることが多いので,据え付け原点に座標系を設定しても問題はない.))
行 196: 行 203:
 \end{array} \right) \tag{2} \end{array} \right) \tag{2}
 $$ $$
-1項目と2項目は関節の設置に関する変換, +繰り返しに近いが各項の意味付けを説明すると, 
-3項目と4項目は駆動パラメタ変換と駆動パラメタが$0$の場合に関節座標系とリンク座標系を一致させため変換である. +  * 1項目と2項目は関節の設置に関する変換,前リンクのx軸に関する並進と回転で自身のz軸の設置位置姿勢を表し,ほぼ一意に決まる. 
-1項目と2項目,3項目と4項目はそれぞれ同じ軸の並進と回転なので順序は入れ替えることができる.+  3項目と4項目は自身のz軸関す設置位置姿勢を表し,関節パラメタが$0$のときの位置姿勢(初期値)として調整可能である. 
 +  * 並進関節の場合は3項目のz軸方向の並進位置$d_i$に関節パラメタが加えられ. 
 +  * 回転関節場合は4項目のz軸周りの回転角度$\theta_i$に関節パラメタが加えられる. 
 +1項目と2項目,3項目と4項目はそれぞれ同じ軸の並進と回転なので順序は入れ替えても同じ結果になる.
  
 これをさらに計算すると, これをさらに計算すると,
行 215: 行 225:
   * すべての関節を同じ形で表現できるということ\\ すなわち数式やプログラムで表現する際に場合分けが不要となりシンプルに表現することが可能となる.   * すべての関節を同じ形で表現できるということ\\ すなわち数式やプログラムで表現する際に場合分けが不要となりシンプルに表現することが可能となる.
   * また記述に無駄がなく計算のための簡略化がほぼ不要であること   * また記述に無駄がなく計算のための簡略化がほぼ不要であること
-  *さらに誰が設定してもほぼ同じ設定になるので紛らわしさがないこと+  *さらに誰が設定してもほぼ同じ設定になるので紛らわしさがないこと(( 
 +$d_i$,$\theta_i$の駆動パラメタの初期値(オフセットになる)は恣意性が入る. 
 +このオフセットをゼロとすれば恣意性はなくなるがロボットの初期姿勢に無理が生じることが多い. 
 +)) 
 である. である.
  
 欠点は, 欠点は,
-  * 記号なしリスト座標系原点が必ずしも関節の物理的配置(駆動部)とは一致しないこと+  * 座標系原点が必ずしも関節の物理的配置(駆動部)とは一致しないこと
   * さらにはそれがリンク上にあるとは限らないということ  \\  そのため順運動学計算での途中で現れる各リンク座標系の位置がロボットアーム上にないなどあまり直感的でない状態が発生することがある.   * さらにはそれがリンク上にあるとは限らないということ  \\  そのため順運動学計算での途中で現れる各リンク座標系の位置がロボットアーム上にないなどあまり直感的でない状態が発生することがある.
-  * 関節パラメタに相当する$\theta_i$などが$0$のときのアームの姿勢を自由に選べないこと 
 である. である.
  
  
  
  • articles/kinematics.1624266500.txt.gz
  • 最終更新: 2021/06/21 18:08
  • by Takashi Suehiro