articles:note_on_ik

文書の過去の版を表示しています。


逆運動学を用いた動作の注意点

動作の目標がハンドなどがとるべき座標系(位置・姿勢)として与えられた場合, 一般には逆運動学計算で関節パラメタ(関節角度)を求めて動作させることが多い 1)

その場合,以下の点に注意する必要がある.

  1. 複数損愛する逆運動学解のどれを選択するか
  2. 始点と終点を関節角で補完してしまうと中間点が想定と異なることがある
  3. 関節角の可動範囲,制限を考慮して逆運動学を選択する必要がある

これらについて一つずつ検討する.

簡単のため平面2関節のアームを考えてみる.

たとえば図1のようにロボットの正面 2) 左側にあるA地点では点線より実線の解を採用したくなるかもしれない 3). そのようにした場合逆に正面右側にあるB地点では対称性を考えて実線の解を採用するのは自然なことである.

しかし,その選択に基づいてA地点からB地点への連続した動作を行った場合, 図2のようにアームは一旦真っ直ぐに伸びた特異姿勢を通過することになる.

図2と図3の違いは大きくないようにも見えるが,図4のように始点と終点が近い場合はより際立つ. ここで図3のようにB地点で点線の解を採用すれば特異姿勢を通過しない素直な軌道を生成することができる.

図1 逆運動学解の選択
図2 特異姿勢を通過する動作
図3 特異姿勢を通過する動作
図4 始点と終点が近い場合

これれは次節で述べるように始点から終点への軌道を分割してのぞみの軌道を生成しようとした場合にはとりわけ大きな問題となる.

解を正しく選択すればこの問題を避けることは可能であるが, 複数ある解のどれとどれを採用すればよいのかその選択は簡単ではない.

たとえば3自由度アームの位置決めでも4通りの解があり,6自由度アームで位置・姿勢を制御する場合には8通りの解がある 4).

図5 軌道の分割

一般に逆運動学計算で始点と終点の関節パラメタを求めて動作させても, 関節パラメタで補間して動作させるとその軌道は図5のように必ずしも直線にはならない.

直線に限らず,手先の軌道を希望通りのものにしようとするならば 軌道を十分に細かく分割してそれぞれの分割点での逆運動学解を求め, それをつないでいく必要がある.

このような場合には特に前節で述べた解の選択が重要となる. 途中で解の選択を誤れば手先の軌道は前節の図4のようにその瞬間に大きく異なる軌道を通過することになる.

前述の2つの問題は,始点を初期解とした逆運動学の数値解法分解運動制御を用いることで解決することができる.

これは逐次的な解法が特異姿勢を乗り越えることが出来ないという欠点を逆にうまく利用していることになっている.

しかし,ここで述べるアームの可動域の問題はそれらを超えた本質的な問題となる.

たとえば図でアームの根本の回転軸の可動範囲が ±170°,すなわち後ろ側20°の範囲は通過できないとする. これが2自由度のアームの場合はどうやってもここを通過してC地点からD地点に行くことはできない. 0°を通過するように根本を大きく回転させる必要がある. しかしnote_on_ikでやった3自由度アームの場合は,根本の回転軸を前に向けたまま後ろに アームを回すことができる


1)
分解運動速度制御などによって座標系の位置・姿勢を直接制御すると逆運動学計算は不要になる. 分解運動制御は制御の過程がそのままヤコビ行列を用いた逆運動学の数値解法となっている.
2)
第一関節がゼロ度が正面と考えている
3)
人間の腕のイメージに引きずられているがロボットにとって「良い」かどうかは分からない
4)
特異姿勢を通過しない同じ領域の解に同一ラベルを付けるのは良いアイデアではあるが そのラベルがどの場面で採用すると自然な姿勢になるのかを判断するのも簡単ではない.
  • articles/note_on_ik.1634984621.txt.gz
  • 最終更新: 2021/10/23 19:23
  • by Takashi Suehiro