逆運動学とは

運動学は、力やトルクなどの運動の起源を考慮しない動きの研究分野です。特に逆運動学は、ロボットが所望の位置に到達するまでの動きを定義するのに役立ちます。
一例として、外科手術で使用されるロボットアームの、初期位置から目的の位置までの正確な動作を実現するために逆運動学を役立てることができます。

ロボットの運動学では、ロボットの関節角と先端またはエンドエフェクタとの関係を記述します。既知の値をどちらにするかで、順運動学と逆運動学の2つに分類されます。

順運動学

関節角の値が与えられると、順運動学方程式は座標空間でのロボットのエンドエフェクタの位置を算出します。座標の計算には主に同時変換行列が使われます。

逆運動学

ロボットのエンドエフェクタの位置が与えられると、逆運動学方程式は、エンドエフェクタをその位置に移動するために必要な関節角度を算出します。

一般に複数の回転関節を持つロボットは、逆運動学に対して複数の解をもち、目的に応じて様々な計算手法が提案されています。

大きくは、数値計算を用いる手法と、解析的に求める手法(解析解)の2つに分類されます。

解析的な算出手法

エンドエフェクタの位置から数式に基づいて各関節角を算出します。

例:逆運動学の導出と2リンクロボット

2リンクロボットの逆運動学計算

解析的な逆運動学の議論にはSymbolic Math Toolbox™が使用でき以下のことが実現できます:

  • ロボットのエンドエフェクタの位置と関節パラメータの関係、サイン関数と コサイン関数として数式として記述。
  • 記述した解析的な方程式を関節パラメータを算出する逆運動学方程式として解き、運動プロファイルを生成。
  • 数式としてシステムのヤコビアンを計算して、関節角とエンドエフェクタの速度の関係を取得。
  • 作成した数式はMATLAB関数に変換またはSimscape Languageに変換し、ロボットをシミュレートするためのSimulink® モデルを作成。
  • 同等のCコードを生成して他のアプリケーションに組み込み。詳細は、 MATLAB®Symbolic Math Toolboxを参照してください

数値計算を用いた算出手法

エンドエフェクタの座標と姿勢を所望の値に収束させることを目的とし、各関節角を勾配法などの最適化により算出します。

例:複数の運動学的制約をもつリーチ軌跡の計画

多軸ロボットの逆運動学計算

順運動学や数値計算を用いた逆運動学の議論にはRobotics System Toolbox™やSimscape Multibody™が使用でき、以下のことが実現できます。

  • URDFやDHパラメータなどのロボット定義のインポート。
  • 構築されたモデルに対する順・逆運動学解析。
  • 幾何的なヤコビアンの出力
  • 動力学・逆動力学解析。
  • CADで定義された情報をもとにMultibodyモデルを構築。
  • パラレルリンク機構の解析。
  • 同等のCコードを生成して他のアプリケーションに組み込み。

詳細は、Robotics System ToolboxSimscape Multibodyを参照してください