CCD IKとは
CCD IKとは、目標位置 が与えられたとき、先端ジョイント
が目標位置
に一致するようなジョイント
の角度を計算する逆運動学のアルゴリズムです。
Cyclic Coordinate Descent Inverse Kinematics の略です。
アルゴリズム
先端に最も近いジョイント から間接角度を計算します。
ジョイント から先端ジョイント
の方向指す単位ベクトルを、
とし、
ジョイント から目標位置
の方向指す単位ベクトルを、
とします。
は
を
に回転するクォータニオンとします。
の回転軸は
で求まり、回転角は
で求まるので、
が計算できます。
を行列
に変換し、ジョイント
の姿勢をあらわす行列の右側から掛ければよい。
あとは、ジョイント とルートまで同様の更新処理を行えばOK。
この一連の計算を行った後に、先端ジョイント と目標位置
の距離を計算し、
以内なら処理終了、そうでなければ
の更新処理からやり直す。
最後に
本記事では、さらっとCCD IK を紹介しました。
気が向いたら図を挿入するかもしれません。
参考文献
キャラクタアニメーションの数理とシステム p152-p153