flat7th

memo/20120327

created 2012-03-27 modified 2012-06-29 

自分用メモ。

リンク備考
ロボットアームの運動学明治大学 kobayasi 先生
クォータニオン逆運動学
四元数(クォータニオン)でモデルを回転





産業用ロボットアーム(マニュピレータ)ていうのは6軸あればだいたいどんなところにも手を動かせるんだそうな。

      J1 J2   J3 J4   J5 J6
付け根◇-○---○-◇---○-◇-ハンド
◇: ねじるところ
○: ひじ開閉

で、
    アーム先端の三次元座標

逆運動学↓  ↑運動学

    各関節の角度
で(たぶん)、
  • 運動学(kinematics)の解は、唯一になる
  • 逆運動学(IK:inverse kinematics)の解はないことも、複数になることもあるっぽい

要は、どうすれば任意の場所にお気楽にアームを移動できるのかっていう話なんだけど...難しいのよね。

複数になるのはこういう状況。
問題
     _[ アーム先端
  
 |
[] 台座
------

解1
     _[ アーム先端
    /
 |\/ 
[] 台座
------
解2
  ___[ アーム先端
 |
 |
[] 台座
------

この関節の曲がり具合を「形態」というらしいんだけど、この形態の選択をどうするかってのがいやらしい。

軸が360度クルクルまわせるモデルの場合ならよくても、現実のマニュピレータには配線とかついてるから、無限回転はできないものが多い。んで、どのタイミングかで「形態」を切り替えないといけないんだが、これが難しい、と。

あと、オイラー角を用いた回転演算には「ジンバルロック」っていう問題があってたまにイヤーンなことになる。
これ、MikuMikuDanceとかの、ボーンモデルの3DCGをやってる人たちにも認知されてるような、有名な問題なんだそうで。

で、3DCGの世界では、座標変換に、昔ながらの3x3行列を使う方法でなくて、"4元数"(クォータニオン)を使う方法が今は主流らしい。
ということで、逆運動学の解を求めるのも4元数でやればなんとかならんかなぁ、と思っているんだけどやっぱり難しくてよくわからない。

とりあえずリンク先をメモしたかっただけなんだけど、あとで絶対わからなくので自分用メモ!てことで。


余談なんだけど、マニュピレータ移動の勉強をしてると、たまに空手や合気道の知識が役立ったりするです。
いきなり回転しようとしないで、
(1)ちじこまってから
(2)向きを変えて
(3)伸びる
ほうが速いなんてのは、武道をやってると初歩の初歩の初歩だったりする。
そういうのがロボット制御の世界でも同じ、とか。
(しかし、最適パスを通る制御プログラムを求めよって言われるとうぐぅとなる、という)


ていうかアレだ。
合気道とは、自分と相手が「物理的な可動範囲、およびそのうちでも力を発揮できる範囲」の制限を持つアームを持つことを前提として、自分と相手のアーム先端がつながった状態で、自分のアームのポーズ(各軸の角度)にムリがなく、相手のアームのポーズにムリを強いるような体制を、腕だけでなく足腰も使って実現するための、逆運動学のノウハウ集である
ともいえますな。

余談の余談。
知らないかたに一応言っておくと、「合気道は相手の力を利用して」という説をまことしやかに唱えるひとがたまーにいますけど、そんなのウソですよ。ウソとは言い過ぎかもしれないけど、いややっぱりウソです。
「まずは自分自身の筋力を鍛える」「自分の力量と、相手の力のベクトルを見極めて、その制限の中でかけられる技をかける」のほうが、より合気道の本質に近いと思います。合気道は相手が力を出さなければ投げられないのか、っていうと、そんなことない。自分のパワーにモノを言わせる、えげつないブン投げ技も、合気道にはたくさんあります。