articles:note_on_ik

差分

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

この比較画面へのリンク

両方とも前のリビジョン 前のリビジョン
次のリビジョン
前のリビジョン
articles:note_on_ik [2021/10/23 19:24] – [逆運動学を用いた動作の注意点] Takashi Suehiroarticles:note_on_ik [2024/09/02 12:18] (現在) – [逆運動学解の選択] Takashi Suehiro
行 18: 行 18:
  
 たとえば図1のようにロボットの正面 たとえば図1のようにロボットの正面
-((第一関節がゼロ度が正面考えている))+第一関節がゼロ度きの方向)
 左側にあるA地点では点線より実線の解を採用したくなるかもしれない 左側にあるA地点では点線より実線の解を採用したくなるかもしれない
 ((人間の腕のイメージに引きずられているがロボットにとって「良い」かどうかは分からない)). ((人間の腕のイメージに引きずられているがロボットにとって「良い」かどうかは分からない)).
行 26: 行 26:
 図2のようにアームは一旦真っ直ぐに伸びた特異姿勢を通過することになる. 図2のようにアームは一旦真っ直ぐに伸びた特異姿勢を通過することになる.
  
-図2と図3の違いは大きくないようにも見えるが,図4のように始点と終点が近い場合はより際立つ. +これに対してB地点での解として点線のものを採用した場合には図3のように特異姿勢を通過しない比較的素直な動作となる. 
-こで図3のようB地点で点線の解を採用すれば特異姿勢を通過しい素直な軌道を生成することができる. + 
-[{{ articles:ik_comment_02.png?300:300 | 図1 逆運動学解の選択}}] +図2と図3の違いはあまり大きくないようにも見えるが,図4のように始点と終点が近い場合はより際立つこになる. 
-[{{ articles:ik_comment_03.png?300:300 | 図2 特異姿勢を通過する動作}}] + 
-[{{ articles:ik_comment_04.png?300:300 | 図3 特異姿勢を通過する動作}}] +[{{ articles:ik_comment_02.png?300 | 図1 逆運動学解の選択}}] 
-[{{ articles:ik_comment_05.png?300:300 | 図4 始点と終点が近い場合}}]+[{{ articles:ik_comment_03.png?300 | 図2 特異姿勢を通過する動作}}] 
 +[{{ articles:ik_comment_04.png?300 | 図3 特異姿勢を通過する動作}}] 
 +[{{ articles:ik_comment_05.png?300 | 図4 始点と終点が近い場合}}]
  
  
行 40: 行 42:
 複数ある解のどれとどれを採用すればよいのかその選択は簡単ではない. 複数ある解のどれとどれを採用すればよいのかその選択は簡単ではない.
  
-たとえば3自由度アームの位置決めでも4通りの解があり,6自由度アームで位置・姿勢を制御する場合には8通りの解がある +たとえば3自由度アームの位置決めでも4通りの解があり,6自由度アームで位置・姿勢を制御する場合には8通りの解がある.
-((特異姿勢を通過しない同じ領域の解に同一ラベルを付けるのは良いアイデアではあるが +
-そのラベルがどの場面で採用すると自然な姿勢になるのかを判断するのも簡単ではない)). +
 ===== 始点と終点の補間 ===== ===== 始点と終点の補間 =====
-[{{ articles:ik_comment_01.png?300:300| 図5 軌道の分割}}]+[{{ articles:ik_comment_01.png?200|図5 軌道の分割}}]
 一般に逆運動学計算で始点と終点の関節パラメタを求めて動作させても, 一般に逆運動学計算で始点と終点の関節パラメタを求めて動作させても,
 関節パラメタで補間して動作させるとその軌道は図5のように必ずしも直線にはならない. 関節パラメタで補間して動作させるとその軌道は図5のように必ずしも直線にはならない.
行 56: 行 55:
 途中で解の選択を誤れば手先の軌道は前節の図4のようにその瞬間に大きく異なる軌道を通過することになる. 途中で解の選択を誤れば手先の軌道は前節の図4のようにその瞬間に大きく異なる軌道を通過することになる.
  
- +ここで述べたぞみ軌道の生成や前述選択の問題は,始点を初期解とした[[articles:ik_numerical|逆運動学の数値解法]]や 
-===== アーム可動域問題 ===== +[[articles:jacobian_matrix#分解運動制御]]を用いることで比較的素直に解決することができる.
- +
-前述の2つの問題は,始点を初期解とした[[articles:ik_numerical|逆運動学の数値解法]]や +
-[[articles:jacobian_matrix#分解運動制御]]を用いることで解決することができる.+
  
 これは逐次的な解法が特異姿勢を乗り越えることが出来ないという欠点を逆にうまく利用していることになっている. これは逐次的な解法が特異姿勢を乗り越えることが出来ないという欠点を逆にうまく利用していることになっている.
  
-しかし,ここで述べるアームの可動域の問題はそれらを超えた本質的な問題となる. +===== アームの可動域の問題 =====
- +
-たとえば図でアームの根本の回転軸の可動範囲が +
-±170°,すなわち後ろ側20°の範囲は通過できないとする. +
-これが2自由度のアームの場合はどうやってもここを通過してC地点からD地点に行くことはできない. +
-0°を通過するように根本を大きく回転させる必要がある. +
-しかし[[]]でやった3自由度アームの場合は,根本の回転軸を前に向けたまま後ろに +
-アームを回すことができる +
- +
  
 +アームの可動域の問題は前述の2つとはまた異なる視点の問題となる.
 +一般に逆運動学解を求めるときには関節の可動域を考慮しないことが多い.
 +もちろん実際問題としては解を求めた後に可動域内かどうかをチェックする.
 +しかし,始点と終点がともに可動域内にあったとしても,軌道の途中が
 +可動域内かどうかは保証がない.
  
 +例として[[articles:inverse_kinematics#3自由度アームの逆運動学]]で扱った
 +アームをを考えてみよう.図6,7は,それを上から見たものである.
 +「正面」というのはアームのx軸方向であり$\theta_1 = 0$のときの第1リンクのx軸方向と一致している.
 +図の中心にある円内の矢印は第1リンクのx軸方向を示している.
 +逆運動学解を求めるときは可動範囲を考慮していなかったが,
 +たとえば図6のようにでアームの根本の回転軸($\theta_1$)の可動範囲が
 +±170°,すなわち後ろ側20°の範囲は通過できないとする
 +((±180°としても真後ろを通過できないので同じことではあるが
 +わかりやすいように可動範囲を狭めている)).
 +このような制約は実際のアームとしてはありふれたものである.
  
 +図6ではA地点,B地点の逆運動学解として$\theta_1$に対して
 +[[articles:inverse_kinematics#3自由度アームの逆運動学]]の
 +式(4),すなわち第1リンクのx軸方向にアームを向けた素直な解を採用している.
 +この解を用いた場合には図6のように大回りをすることになる
 +((これは可動範囲だけの問題ではなく,関節角度で補間した場合にも同様に大回りの軌道になりやすい.)).
  
 +しかし[[articles:inverse_kinematics#3自由度アームの逆運動学]]の式(10),
 +すなわち,根本の回転軸を前に向けたまま後ろにアームを回す姿勢を用いた場合には,
 +図7のように始点から終点へと無駄なく移動することができる.
  
 +解の選択という意味では,図6のA地点から図7のb地点への移動というイメージしにくい軌道を考えることもできる.
  
 +[{{ articles:ik_comment_06.png?200 | 図6 3自由度アームの可動域(上から見たところ)}}]
 +[{{ articles:ik_comment_07.png?150 | 図7 逆運動学解の別解選択による軌道}}]
  
 +この問題は逆運動学の数値解法を用いても解決できないし,
 +分解運動制御などの逐次漸近的動作では大回りの解すら得ることが出来ない.
  • articles/note_on_ik.1634984658.txt.gz
  • 最終更新: 2021/10/23 19:24
  • by Takashi Suehiro