JP5349478B2 - 逆運動学 - Google Patents

逆運動学 Download PDF

Info

Publication number
JP5349478B2
JP5349478B2 JP2010522436A JP2010522436A JP5349478B2 JP 5349478 B2 JP5349478 B2 JP 5349478B2 JP 2010522436 A JP2010522436 A JP 2010522436A JP 2010522436 A JP2010522436 A JP 2010522436A JP 5349478 B2 JP5349478 B2 JP 5349478B2
Authority
JP
Japan
Prior art keywords
equation
matrix
control
trajectory
dxd
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Active
Application number
JP2010522436A
Other languages
English (en)
Other versions
JP2010537831A (ja
Inventor
ペチェフ、アレクサンドル、ニコロフ
Original Assignee
ザ ユニバーシティー オブ サリー
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by ザ ユニバーシティー オブ サリー filed Critical ザ ユニバーシティー オブ サリー
Publication of JP2010537831A publication Critical patent/JP2010537831A/ja
Application granted granted Critical
Publication of JP5349478B2 publication Critical patent/JP5349478B2/ja
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • BPERFORMING OPERATIONS; TRANSPORTING
    • B25HAND TOOLS; PORTABLE POWER-DRIVEN TOOLS; MANIPULATORS
    • B25JMANIPULATORS; CHAMBERS PROVIDED WITH MANIPULATION DEVICES
    • B25J9/00Programme-controlled manipulators
    • B25J9/16Programme controls
    • B25J9/1602Programme controls characterised by the control system, structure, architecture
    • B25J9/1607Calculation of inertia, jacobian matrixes and inverses
    • GPHYSICS
    • G05CONTROLLING; REGULATING
    • G05BCONTROL OR REGULATING SYSTEMS IN GENERAL; FUNCTIONAL ELEMENTS OF SUCH SYSTEMS; MONITORING OR TESTING ARRANGEMENTS FOR SUCH SYSTEMS OR ELEMENTS
    • G05B19/00Programme-control systems
    • G05B19/02Programme-control systems electric
    • G05B19/18Numerical control [NC], i.e. automatically operating machines, in particular machine tools, e.g. in a manufacturing environment, so as to execute positioning, movement or co-ordinated operations by means of programme data in numerical form
    • G05B19/408Numerical control [NC], i.e. automatically operating machines, in particular machine tools, e.g. in a manufacturing environment, so as to execute positioning, movement or co-ordinated operations by means of programme data in numerical form characterised by data handling or data format, e.g. reading, buffering or conversion of data
    • G05B19/4086Coordinate conversions; Other special calculations
    • GPHYSICS
    • G05CONTROLLING; REGULATING
    • G05BCONTROL OR REGULATING SYSTEMS IN GENERAL; FUNCTIONAL ELEMENTS OF SUCH SYSTEMS; MONITORING OR TESTING ARRANGEMENTS FOR SUCH SYSTEMS OR ELEMENTS
    • G05B2219/00Program-control systems
    • G05B2219/30Nc systems
    • G05B2219/39Robotics, robotics to robotics hand
    • G05B2219/39079Solve inverse differential kinematics in closed, feedback loop, iterate
    • GPHYSICS
    • G05CONTROLLING; REGULATING
    • G05BCONTROL OR REGULATING SYSTEMS IN GENERAL; FUNCTIONAL ELEMENTS OF SUCH SYSTEMS; MONITORING OR TESTING ARRANGEMENTS FOR SUCH SYSTEMS OR ELEMENTS
    • G05B2219/00Program-control systems
    • G05B2219/30Nc systems
    • G05B2219/40Robotics, robotics mapping to robotics vision
    • G05B2219/40327Calculation, inverse kinematics solution using damped least squares method
    • GPHYSICS
    • G05CONTROLLING; REGULATING
    • G05BCONTROL OR REGULATING SYSTEMS IN GENERAL; FUNCTIONAL ELEMENTS OF SUCH SYSTEMS; MONITORING OR TESTING ARRANGEMENTS FOR SUCH SYSTEMS OR ELEMENTS
    • G05B2219/00Program-control systems
    • G05B2219/30Nc systems
    • G05B2219/41Servomotor, servo controller till figures
    • G05B2219/41405Inverse kinematic, dynamic

Landscapes

  • Engineering & Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • Automation & Control Theory (AREA)
  • Human Computer Interaction (AREA)
  • Manufacturing & Machinery (AREA)
  • General Physics & Mathematics (AREA)
  • Mathematical Physics (AREA)
  • Robotics (AREA)
  • Mechanical Engineering (AREA)
  • Numerical Control (AREA)
  • Manipulator (AREA)
  • Feedback Control In General (AREA)

Description

本発明は、ヤコビ行列式の逆行列に関する。逆運動学(Inverse Kinematics)の問題(IK問題)が知られている。IK問題は、ゲームやアニメーションにおけるコンピュータによって生成された関節のあるキャラクタの操作、キーフレーミング、ロボットマニピュレータの制御、コントロールモーメントジャイロ(Control Moment Gyro、以下CMGとする)機構の制御における特異点回避法、及び、その他の応用例と関連している。
ロボット工学、コンピュータアニメーション、CMGを用いた宇宙船の制御などにおいて、変数行列は、変数パラメータの関数であり、入力空間と出力空間とを関連づけている。ここで、変数パラメータは、例えば、(q)及び時間、即ち、時間を含む変数である。
(x)は、直交座標系におけるベクトルを表し、先端部の位置と姿勢とを示す。例えば、図1における参照番号14が先端部を示している。3次元直交座標系において、(x)は、1以上の成分をもち、位置と角回転とを表すことになる。先端部空間のサイズ(次元数)は(m)によって示される。例えば、先端部が3次元における移動のみ可能な場合にはm=3である。
(q)は、関節座標系における姿勢を示す変数である。例えば、図1において、関節11,12,13は(q)によって表される。各関節は1以上の自由度をもつ。(q)における全自由度は、(n)によって示される。例えば、図1における、各関節(11,12,13)は、それぞれ自由度2を有し、全自由度は6(n=6)である。
従って、マニピュレータ、コンピュータアニメーションにおける物体といった構造物のモデルは、以下のように記述される。
x = f(q) (数1a)
式(数1a)において、f(q)は、関節係数(q)の非線形な関数である。
多くの応用において、一連の所定の先端部の位置(x)に対する関節変数(q)を計算する必要がある。このために、以下のように式(数1a)の逆関数を求めることが必要である。
q = [f(x)]^-1 (数1b)
式(数1b)において、([f(x)]^-1)は、(q)から(x)への逆写像を表している。
式(数1b)を解析的に求めることは負荷が大きい。式(数1a)を解く数値的な方法では、式(数1a)の両辺を微分する。これにより、運動学的な以下の関係が得られる。
dx = J(q)dq (数1c)
式(数1c)において、(dq)は出力空間を定義しており、(dx)は入力空間を定義している。(J(q))は、パラメータに依存したヤコビ行列であり、(f(q))を(q)で微分して得られる。
J(q) = diff(f(q))/diff(q) (数1d)
式(数1d)は、(q)による(f(q))の微分を表している。
ロボット工学や、多関節形状のアニメーションにおいて、(x)は、直交座標空間における角変位と直線変位とから構成されるベクトルを定義している。(q)は、関節座標系における配置を示している。(dx)は、直交座標系における速度を示している。(dq)は、関節速度を示している。
コントロールモーメントジャイロ機構を用いる姿勢制御において、(x)は、当業者に知られたCMGクラスタの全角運動量を示している。(q)はジンバル角(gimbal angle)により構成され、(dx)はトルクの成分を示す。(dq)は、当業者に知られたジンバル比(gimbal rate)を示している。
(x)、及び(dx)の次元(次元の数)は、(m)である。
(q)、(dq)の次元は(n)である。
一般的には、(m)は(n)以下である。
冗長構成により、(m)は(n)未満となる。
いくつかの実施の形態においては、(m)と(n)とは任意の大きさを取りうる。
図1に示す構成例は、例えば、3つの関節11、12、13と1つの先端部とを有するロボットマニピュレータに対応する。図1の参照番号15は、先端部の目標とする軌道を示す。当該軌道は、3次元直交座標空間において定義されている。図1において、参照番号11,12,13は関節構造を示す。関節構造11,12,13は、角度の変化、または、直線的な変化が可能であり、(n)個の自由度を与える。関節構造11,12,13は、参照番号14が目標軌道15をたどるようにしている。各関節11,12,13は、それぞれ異なった1以上の自由度を持つことが可能である。
図2は、コンピュータアニメーションの分野などで用いられるグラフィックの構造を示している。図2の構造では、5つの先端部211,214,215,213,212と、10個の関節21,22,23,24,25,26,27,28,29,210とが例として示されている。図2の構造は説明のためのものであり、本発明に記載のIKアルゴリズムは、先端部に(m)個の自由度があり、関節に(n)個の自由度がある構造に対して有効である。ここで、(m)及び(n)は任意に大きな値を取りうる。参照番号216,217,218,219,220は、先端部がたどるべき軌道を示し、3次元直交座標空間において定義されている。
ロボット工学では、モーター、又は、その他の装置が、線運動量、及び、角運動量を与えることで、(q)の移動及び変化が生じる。
コンピュータグラフィックスでは、アニメーションソフトウェアが図形を再描画することで(q)の移動が生じる。
式(数1c)ではヤコビ行列は(q)に依存するため、センサを用いて(q)を測定したり、あるいは、数学モデルを用いて(q)を導出、または、推測する。
本発明においては、(dxd)は、(dx)の望ましいベクトルを示す。(dxd)と(q)は、数学モデル、あるいは、センサにより与えられるものと仮定する。
一連の軌道(dxd)が与えられたときに、逆運動学の問題は、式(数1c)の逆変換を解くというものになる。即ち、与えられたベクトル(dxd)に対して(dq)をどのように導出するかという問題である。
dq = iJ(q)dxd (数2)
式(数2)において、(iJ(q))は、式(数1)のヤコビ行列の逆行列である。(m)が厳密に(n)より小さい場合、即ち、(m)が(n)と等しくない場合には、(iJ(q))を計算するために擬似逆行列が用いられる。
コンピュータグラフィックス、ロボット工学では、(dxd)は、先端部の所望の速度を表す。
CMGを用いた姿勢制御では、(dxd)は、所望のトルクの成分を表す。
本発明の課題である逆運動学の問題は、(dx)が所望の目標とする軌道(dxd)を辿るようにどのように関節変数(dq)を選択するかとういこと、即ち、モーターをどのように操作するかを決めること、または、アニメーションアプリケーションにおいてどのように構造物を再描画するかを決めることである。
図3は、逆運動学のブロック、即ち、処理システムである。当該処理システムは、目標とする軌道(dxd)を生成するという条件の下に関節変数(dq)を決める。当該ブロックに (dxd)が入力され、(dq)が当該ブロックより出力される。逆運動学ブロックは、各反復動作において(dx)が(dxd)と同じになるように、与えられた(dxd)に対して(dq)を与える。
(dxd)が与えられ、(J(q))が時間的に変化するパラメータに依存するヤコビ行列であるときに、(dq)について式(数2)を解くことは、コンピュータアニメーションやロボットマニピュレータ、宇宙船の制御、及び、その他の応用において本質的な要素、あるいは、本質的なステップである。
リアルタイムに式(数2)を解くことは、計算するデータの量が多く、負荷のかかるタスクである。
本発明のいくつかの実施の形態における目的は、式(数2)で定義される逆運動学の問題を解くための方法であって、コンピュータの計算上有効な方法を得ることである。
(q)の自由度(n)が多いことにより、式(数2)におけるIK問題をリアルタイムに解くことは、数値的にデータ量の多いタスクである。
関節を有する物体がアニメーションする場合、例えば、細部、及び、自由度が増加することで、運動における視覚的な表現は向上する。しかしながら、かかる向上によって、リアルタイムに計算機を用いて、大きい(n)の値に対する式(数2)におけるIK問題を解く必要が生じる。
式(数1c)、(数2)におけるヤコビ行列(J(q))は、パラメータ(q)に依存することから、時間的に変化する関数である。このため、特異状態と呼ばれる特定の状態において、(J(q))のランクが下がる。これにより、与えられた軌道(dq)に対して、式(数2)の逆変換は任意の大きい値(dq)を導くことになる。かかる点は、逆運動学の問題を計算する上で、もう1つの複雑な状況を生み出している。
従来、行列の操作に基づいてヤコビ行列の逆行列である(iJ(q))を求めるIK方法が知られている。かかる行列の操作は、計算におけるデータ量が多くなる処理を有し、並列処理のコンピュータアーキテクチャ上で走らせることが難しい。
従来、DMS(減衰最小二乗法)アルゴリズム(damped least squares algorithm)が、特異性を解消するSRアルゴリズム(singularity robust algorithm)として知られており、式(数2)の問題を解くために用いられている(非特許文献1、2参照)。
iJ(q) = Jt(q) [J(q)Jt(q) + kI]^-1 (数3a)
ここで、(Jt(q))は、ヤコビ行列の転置である。式(数3a)によって(iJ(q))を計算することで、与えられたベクトル(dxd)に対して式(数2)から(dq)を導くことが出来る。すなわち、
dq = Jt(q) [J(q)Jt(q) + kI]^-1 dxd (数3b)
式(3b)において、(Jt(q))は、式(数1d)におけるヤコビ行列の転置であり、(I)は恒等行列である。また、(k)は、いわゆる減衰係数であり、値は適宜調整される。(^-1)は、逆作用素である。(k=0)の場合には、式(数3)は擬似逆行列法に単純化される。
iJ(q) = Jt(q) [J(q)Jt(q)]^-1 (数4a)
式(数4a)で定義される(iJ(q))を計算し、式(数2)を用いることにより、与えられたベクトル(dxd)に対して(dq)が以下のように得られる。
dq = Jt(q) [J(q)Jt(q)]^-1 dxd (数4b)
特異状態では、ヤコビ行列のランクが低下し、結果として、式(数4a)の逆行列が存在しなくなり、式(数4a)を用いて逆行列を生成することができなくなる。
さらに、(J(q))が特異状態近傍のときには、過剰に大きな値(dq)が式(数4b)に基づいた解として得られる。解の厳密さと、解を求めることの実行可能性とは二律背反であり、減衰係数(k)は、そのいずれかを決めている。(k=0)の場合には、式(3a)は、式(数4a)に単純化される。特異状態から離れている状態では、(k=0)に設定される。特異状態近傍では、(k>0)に設定する。このように、式(数3a)、(数3b)のIK法は、(k)を導入することが必要なため複雑になる。減衰係数(k)を導入することにより、さらなる計算と処理能力が必要になる。
非特許文献3、4には、フィードバックループを有するロボットマニピュレータの制御のためのアルゴリズムが提案されている。当該フィードバックループでは、ヤコビ行列の転置が用いられている。
しかしながら、本発明で提案される方法とは異なり、これらのアルゴリズムは特異状態を回避するものではなく、特異状態の場合の解を与えることができない。
ワイ. ナカムラ、エイチ. ハナフサ、「ロボットマニピュレータの制御における特異性に耐性のある逆運動学の解」、ジャーナルオブダイナミックシステムズ、108巻、1986年9月(Y. Nakamura and H. Hanafusa, "Inverse kinematic solutions with singularity robustness for robot manipulator control", Journal of Dynamic systems, Measurements and Control, Vol. 108, Sep. 1986) シー. ダブリュ. ワンプラー、エル. ジェイ. レイファー、「マニピュレータの分解速度制御、分解加速度制御への減衰最小二乗法の適用」、ジャーナルオブダイナミックシステムズメジャーメントアンドコントロール、110(1988)、31−38ページ(C. W. Wampler and L. J. Leifer, "Applications of damped least-squares methods to resolved-rate and resolved-acceleration control of manipulators", Journal of Dynamic Systems, Measurement, and Control, 110 (1988), pp. 31-38) ダブリュ. エー. ウォロビッチ、エイチ. エリオット、「逆運動学の計算上の技術」、第23回デシジョンアンドコントロール会議会報、1984年(W.A. Wolovich and H. Elliott in "A computational technique for inverse kinematics", Proceedings of the 23rd Conference on Decision and Control, 1984) エー. バレストリノ、ジー. デ マリア、エル.シアビンコ、「ロボットの耐性の制御」、第9回IFACワールドコングレス(A. Balestrino, G. De Maria and L. Sciavicco in "Robust control of robotic manipulators", 9th IFAC World Congress, 1984)
本発明は、複数の制御手段を有するシステムをリアルタイムに制御する方法を提供している。各制御手段は、少なくとも1つの変数パラメータ(dq)と、前記制御手段に制御される軌道を示す被制御要素とを有し、前記軌道は、変数行列を介して前記変数パラメータと関連しており、前記方法は、前記変数パラメータ(dq)と、前記軌道(dx)とを関連づける制御転送行列(K)を定義し、所望の軌道(dxd)と現在の軌道(dx)との差からなる誤差(e)に依存したフィードバック項を計算するフィードバックループを用いることを特徴とする。
前記フィードバック項は、前記現在の軌道が前記所望の軌道に近づくように、複数回繰返して計算されることが好ましい。
前記行列(K)の出力値である前記出力(dq)は、次元(n)を有し、前記所望の軌道dxdは、次元(m)を有し、前記次元(m)は前記次元(n)以下であることが好ましい。
(m)×(n)次元の前記制御転送行列(K)を選択し、前記(K)の形態と、前記(K)の数値とを前記システムの特性に応じて決定することが好ましい。
与えられた(dxd)に対する(dq)を生成する数値アルゴリズムは、フィルタ形式であることが好ましい。前記アルゴリズムは、乗算に関する命令と、加算に関する命令と含むことが好ましい。
前記方法は、単一のプロセッサ、または、並列プロセッサによって実行されることが好ましい。
(J(q))のランクが低下したときにも、行列(K)は、(dq)に対する解を与えるように構成されていることが好ましい。
特異状態において、誤差(e)は、特異方向に増大し、(K)の全体構成は、軌道を特異状態から離れさせるような動きを生み出すゼロでない解(dq)を生成することが好ましい。
前記システムは、移動可能な対象物の画像を表示するよう構成されたディスプレイを有し、制御手段は、前記移動可能な前記対象物の関節を制御し、制御される前記対象物は、移動可能な要素を有することが好ましい。
前記システムは、ロボットと制御システムとを有するロボットシステムであり、前記被制御要素は、ロボットの一部であり、前記制御手段はロボットの関節を有することが好ましい。
前記制御手段は、コントロールモーメントジャイロシステムにおけるジャイロを有することが好ましい。
本発明は、さらに、前記方法を操作するように構成された移動可能なシステムの制御システムを提供する。
本発明は、さらに、ロボットと、本発明の前記制御システムとを有する、ロボットの動きを制御するロボットシステムを提供する。
本発明は、さらに、複数のジャイロと、本発明の前記制御システムとを有するコントロールモーメントジャイロシステムを提供する。
本発明のいくつかの実施の形態の目的は、計算機上有効であって、リアルタイムに実行される数値的な方法であって、式(数2)で規定される逆運動学の問題を解くための方法を導出することである。
さらに、本発明のいくつかの実施の形態は、ヤコビ行列(J(q))のランクが低下したとき、または、特異なときに、解が存在するため、特異性に対して強固である。
さらに、本発明のいくつかの実施の形態におけるアルゴリズムは、減衰係数の計算を必要としない。
従って、本発明は、数値的に変数行列の逆行列をリアルタイムに計算する方法を提供している。前記方法は、任意の次元(m)をとりうる所望の軌道(dxd)と、現在の軌道(dx)とを比較して誤差(e)を生成するフィードバックループを用いている。かかる比較は、逆運動額の問題が計算される全サイクルにおいて行われることが好ましい。誤差(e)は、制御転送行列の入力として用いられ、前記制御転送行列は出力(dq)を生成することが好ましい。(dq)は、任意の次元(n)をとり、(m)は(n)より小さい。
行列は時間と共に変化することが好ましい。例えば、行列は、時間に依存するか、または、時間と共に変化する別のパラメータに依存する。
前記方法は、計算機によって実行されることが好ましい。
逆運動学の問題は、時間変数とパラメータとに依存する行列の逆行列を計算するものである。逆運動学の問題は、例えば、ロボットの制御、コンピュータで生成され、任意の数の関節と先端部とを有するキャラクターの制御と操作、キーフレーミング(keyframing)アプリケーション、及び、コントロールジャイロ機構を有する宇宙船の制御などに応用可能である。
前記方法は、(m)×(n)次元のフィードバック補正器を選択する方法、及び、(K)の形態と数値とを逆運動学の問題が解かれる対象の特性や構造に応じて決定する方法とを有することが好ましい。
前記方法は、アルゴリズムの数値的な実行を用いている。当該アルゴリズムは、与えられた(dxd)に対して(dq)を生成し、フィルタとして実行される。前記フィルタは、単一のプロセッサ、又は、並列のプラットフォームで実行可能な加算命令と積算命令のみを用いている。
いくつかの実施の形態では、(J(q))のランクが低下しても、(K)は、(dq)に対する解を与える。特異状態では、誤差(e)は、特異方向に増大し、(K)の全体構造が(dq)に対するゼロでない解を生成し、特異状態から離れる軌道を生み出す。結果として、特異性を解消することを、前記アルゴリズムに組み込むことができる。
本発明は、計算機上有効で、特異性に対して強固な逆運動学の問題を解く方法を提供することができる。
本発明は、システムの移動を制御する方法を提供している。当該方法は、本発明の前記方法を有している。前記システムは、ロボットのアームのように関節のあるシステム、又は、宇宙船のような移動可能なシステムである。
本発明は、さらに、移動可能なシステムの制御システムを提供している。当該制御システムは、本発明の前記方法によって操作されるように構成されている。
本発明は、さらに、移動可能な対象物のグラフィック画像を生成する方法を提供している。当該方法は、上記記載のいずれか一の方法を有している。
本発明は、ディスプレイシステムであって、上記記載のいずれか一の方法を実行し、画像データを生成しする処理手段と、前記画像を表示する表示手段とを有することを特徴とする。例えば、当該システムは、ゲーム機や、その他のコンピュータシステムを有する。
3つの関節と、1つの先端部を有するロボットマニピュレータなどに対応した構成例である。 コンピュータアニメーションなどに用いられるグラフィックの構成を示している。 逆運動学のブロックを示している。 本発明の第1の実施の形態における、逆運動学の解のフィードバック形式を表している。 図4に記載されたフィードバック逆運動学則の拡張版を表している。 本発明に記載の逆運動学の問題のアルゴリズムを実行するC言語におけるコードの例である。 本発明の実施の形態における、ロボット、及び、制御システムの概略図である。 本発明の実施の形態における、グラフィック表示装置の概略図である。
本発明の実施の形態を図面を参照しながら説明する。
本発明の実施の形態は以下の構成を有する。
1)乗算手段
2)加算手段
3)減算手段
4)(m)×(n)次元のメモリブロックのようにヤコビ行列を記憶可能なヤコビ行列記憶手段
5)(dxd)を供給する手段
6)数学モデル、または、センサのなどの(q)を供給する手段
7)パラメータ(z(t-1))を記憶可能な(m)次元のメモリブロックなどのパラメータ記憶手段
8)パラメータ(dq(t-1))を記憶可能な(m)次元のメモリブロックなどのパラメータ記憶手段
9)パラメータ(tmp)を記憶可能な(m)次元のメモリブロックなどのパラメータ記憶手段
10)(A)を記憶可能な(m)次元のメモリブロックなどのパラメータ記憶手段。もし、Aが恒等行列にスカラーを掛けたものなら、メモリーブロックは、当該スカラーのみを記憶するだけでよく、次元数は(1)になる。
11)(P)を記憶可能な(m)×(m)次元のメモリブロックなどのパラメータ記憶手段
上記の手段は汎用プロセッサによって与えられる。汎用プロセッサとしては、例えば、パーソナルコンピュータ、マイクロプロセッサ、マイクロコンピュータ、デジタルシグナルプロセッサ、又は、特定目的用に構成された演算器、及び、メモリブロックである。
本発明の実施の形態の目的は、計算機上有効であって、式(数2)を解くための特異性に強固な方法であって、リアルタイムに実行され、逆行列を計算することを要せず、かつ、減衰係数を要しない方法を提供することである。式(数2)のヤコビ行列は、解を求めるために用いられ、ロボットマニピュレータの運動学、コンピュータアニメーションのキャラクターを表している。あるいは、式(数2)のヤコビ行列は、宇宙船の操作と関連している。あるいは、式(数2)のヤコビ行列は、逆行列、あるいは(q)のような変数パラメータに依存したヤコビ行列の逆行列が必要な応用例に関連している。
フィードバックループは図4に示すように構成されている。当該フィードバックループは、各サイクルで計算を行っており、リアルタイムで実行される。誤差47は、生成されたベクトル(dx)45と、要求されたベクトル(dxd)44との差であり、制御法則(K)41の入力値として用いられる。かかる制御法則は、誤差47が無視できるくらい小さい値になるようにして、要求された(dq)43を生成する。参照番号46は加算器を示す。参照番号48は正の符号を示し、参照番号49は負の符号を示す。
図4のフィードバックループは、与えられたヤコビ行列(J(q))にたいして、(dxd)から(dq)を導く機構を備える。図4におけるフィードバックループは、図3のIKブロックを置き換えるものである。図4のフィードバックループを用いることで、以下の関係が導出される。
dq = K[JK+I]^-1 dxd (数5)
式(数5)において、(K)は制御転送行列(control transfer matrix)、または、制御法則であり、本発明における本実施の形態の一部として導かれるものである。(J)は、式(数1d)から導かれるヤコビ行列であり、(^-1)は、逆作用素を表す。本発明における本実施の形態、または、他の実施の形態において、重要な要素は、(K)を導出し、特異性を回避する性質をもつ(K)の形態を選択することである。さらに、(K)は、J(q)の可変性を示している。
ループにおける特異性回避の性質を提供する当業者に知られているように、(K)は、伝達関数の完全転送行列(full transfer matrix)であり、ゼロでない非対角成分を有している。(K)は、(n)×(m)の次元を持つ。
(K)は(q)の関数である。即ち、当業者に知られているように、(K)は、ヤコビ行列の時間可変性、及び、(q)依存性を示していおり、その値は調整される。
ヤコビ行列のランクが低下すると、誤差(e)が一方向に増大する。これは、(J(q))が、その固有の方向において、ゼロを出力するためである。(K)のゼロでない成分は、必要な出力(dq)を生成する。ここで、必要な出力(dq)は、特異方向から軌道を誘導し、誤差(e)を無視できるほど小さくし、目標起動を良く辿るものである。
図4のフィードバックループにおいて、誤差47は、所望の変数(dxd)と、式(数1c)から計算された実際の変数との差異を示している。
e=dxd - J(q)dq (数6)
式(数6)の誤差は(K)を適切に選択することで任意に小さくすることができる。(K)が決められたときには、式(数5)を用いて(dq)を計算することができる。
<固定抽出間隔によるリアルタイムな処理の実現>
もし、(ロボット工学の制御、宇宙船の制御を含む典型的な応用例において)パラメータ依存性のあるヤコビ行列(以下、単にヤコビ行列とする)の逆行列を求めることが、抽出間隔として当業者に知られた所定の間隔で実行される場合、以下のアルゴリズムが使われる。
本実施の形態では、(K)は以下の分離形式で与えられる。
K: z(t) = Az(t-1) + e (数7a)
dq = Jt(q)Pz(t-1) (数7b)
式(数7a)と式(数7b)とで、図4および式(数5)のフィードバックループとブロック(K)とを表している。
式(数7a)と式(数7b)とで、式(数6)における誤差(e)と(dq)とを結びつける。
式(数7a)と式(数7b)とは、各サイクルでリアルタイムに同時に実行される。ここで、各サイクルでは、逆運動学の問題が所望の(dxd)を辿るための(dq)を求めるために解かれる。2つの連続するサンプルの時間差、即ち、連続して2回実行されるIKアルゴリズムの時間間隔は、当業者にサンプリング時間(dt)として知られたものである。
式(数7a)において、(A)は、 (m)×(m)次元の負の対角行列である。
式(数7a)において、(P)は、(m)×(m)次元の正の完全行列(full matrix)である。
式(数7b)において、(Jt(q))は、式(1d)から求められる、(n)×(m)次元のヤコビ行列の転置である。
式(数7b)において、ヤコビ行列(Jt(q))の転置は、各サンプルにおいて、現在の(q)を用いて再計算される。(q)は、センサ、または、数学モデルに基づいて与えられる。
式(数7a)、(数7b)において、(z(t))は、次元(m)の状態変数を示すベクトルである。
式(数7a)において、(z(t-1))は、次元(m)の状態変数を示すベクトルである。
式(数7a)、(数7b)において(z(t-1))は、(z(t))において、1回のサンプル間隔分に相当する(dt)だけ遅れたものである。かかる遅延した値を求めるためには、(m)次元のメモリ要素が必要である。ここで、一回のサンプルに相当する(dt)の遅延は、D(dt)と表される。
z(t-1) = D(dt) z(t) (数8)
式(数7a)、(数7b)において、(z(t-1))は、前回の繰り返しにおいて式(数7a)より計算された (z(t))の値を表している。
式(数7a)、(数7b)は、与えられた誤差(e)に対して、(dq)を求めるためのフィルタである。
式(数7a)、(数7b)と、式(数6)とは、本実施の形態の結論を示し、逆問題を解くためのアルゴリズム全体を与えている。このアルゴリズムは以下のようにまとめられる。
e = dxd - J(q)dq(t-1) (数9a)
z(t) = Az(t-1) + e (数9b)
dq = Jt(q) P z(t-1) (数9c)
式(数9a)、(数9b)、(数9c)とをまとめて用いることで、与えられた所望の軌道(dxd)に対する(dq)を計算することができる。
図5は、式(数9a)、(数9b)、(数9c)を図形的に構成したものであり、図4の構成を拡張したものである。図5は、リアルタイムな実行を可能としたものであり、アルゴリズムのフィルタ特性を示している。D(dt)51、D(dt)511は、遅延ブロックであり、(z(t))513の値と、(dq)53の値とを記憶するメモリを表している。(A)512は、式(数16)によって定義される。ブロック510内のPは、式(数20)により定義される。ブロック510内の(Jt(q))は、ヤコビ行列の転置であり、現在のサンプルにおける(q)を用いて計算される。(z(t))513は、式(数9b)を用いて計算される。(J(q))52は、現在のサンプルにおける(q)を用いて計算されるヤコビ行列である。(q)は、センサや、数学モデルに基づいて与えられる。(e)は、要求された軌道(dxd)54と、実際の軌道(dx)55との誤差を示す。参照番号56、515は加算ブロックを示している。参照番号58、516、517は、正の符号を示し、参照番号59は負の符号を示している。(z(t-1))514は、前回のサンプル、または、前回の繰り返し処理において計算された(z(t))513の値を示している。(dq(t-1))518は、前回のサンプル、または、前回の繰り返し処理で計算された(dq)53を示している。
式(数9a)、(数9b)、(数9c)は、図3のIKブロックを置き換えるものである。
式(数9a)、(数9b)、(数9c)は、式(数2)を置き換える新しいアルゴリズムを表している。
式(数9a)、(数9b)、(数9c)は、は、逆運動(IK)の問題を解くためのアルゴリズムを表している。
式(数9a)、(数9b)、(数9c)は、リアルタイムに各サイクルで実行される。
式(数9a)、(数9b)、(数9c)は、フィルタ処理と同様な処理を実行し、加算命令と、乗算命令とを用いる。この計算は、図5においてフィルタ形式で示されている。
式(数9a)において、(dq(t-1))は、一回分のサンプル期間(dt)だけ遅らせた(dq(t))の値を示している。
dq(t-1) = D(dt) dq (数10)
<変動抽出間隔によるリアルタイムな処理の実現>
逆運動学の別の種類の応用例では、ヤコビ行列の逆行列、あるいは、パラメータ依存性のある行列の逆行列は、リアルタイムな方法で、かつ、固定した抽出率を用いずに行われる。例えば、コンピュータグラフィックスや関節のあるキャラクターアニメーションに動きを統合する場合において、端点(あるいは、図1の先端部14、図2の先端部211,212,213,214,215)の新たな位置は、所定の割合(フレームレート)で規定される。端点、或いは、先端部が要求された位置に到達するまで、フレーム(あるいは、時間間隔)内に、逆運動のタスクは、連続して、数回解かれる。1フレーム内において連続して解を求めることを反復法と呼ぶ。端点、または、先端部が要求されるレベルに到達するまで、1フレーム内で、逆運動学の反復が実行される。各反復は、不規則な間隔でコンピュータプログラムによって実行される。ここで、不規則な間隔とは、ソフトウェアの負荷に依存して変化する固定されていない間隔である。これらの応用例において、以下の変更されたアルゴリズムが、逆運動学、即ち、dqの値、を計算するために各反復で用いられる。
dq = Jt(q) P z(t-1) (数9d)
z(t) = z(t-1) + h(Az(t-1) - J(q)dq) + h dxd (数9e)
式(数9d)、(数9e)は、本発明のさらなる実施の形態における、Kの形態と、図4におけるフィードバックループを表している。
この実施の形態は、前述の実施の形態の構成に加えて、以下の構成を有する。
12)hを記憶可能な次元(1)のメモリブロックなどのパラメータ記憶手段
13)bdqを記憶可能な次元(n)のメモリブロックなどのパラメータ記憶手段
14)dq0を記憶可能な次元(n)のメモリブロックなどのパラメータ記憶手段
15)dq_fullを記憶可能な次元(n)のメモリブロックなどのパラメータ記憶手段
15)Vを記憶可能な次元(n)のメモリブロックなどのパラメータ記憶手段
図8に示す構成は、z(t)からz(t-1)を計算するために用いられる。hは、応用例に応じて調整される定数である。hは、正の値であって、設備(又は、システム)の最小時間定数の50%以下となるように選択される。ここで、設備(又はシステム)は、既知のシステム行列(A-J(q)Jt(q)P)で示されている。hは、A、P、現在のヤコビ行列値J(q)に依存する。例えば、hは、h=2e-2のように設定し、A、Pも選択することが出来る。dqが非常に小さくなるか、又は、端部(先端部)が現在のフレームにおいて要求された所望の位置に達するまで、式(数9d)、(数9e)は各反復で実行される。式(数9d)、(数9e)は、図4に示されるフィードバック運動学法則の一次の積分解である。高次の積分器を用いることも可能である。式(数9d)において、各自由度毎に異なる増幅率をdqに乗じて、各自由度毎の増幅率の差異を調整している。即ち、dqは、dq = V Jt(q) P z(t-1)となる。ここで、V=[v1,v2, ... , vn]である。
次に(P)と(A)との導出を説明する。
<式(数9a)-(数9c)における(A)、及び、(P)の導出>
式(数7a)、(数9b)における(A)は、(m)×(m)次元負定値対角行列である。(A)は、全部で(m)個の要素を有する。
Figure 0005349478
(a1)、(a2)、(a3)、...(am)は、正の実数のスカラーであり、下限の周波数、及び、(dx)と(dxd)との誤差を規定している。ロボットマニピュレータ、グラフィックの構成、コントロールモーメントジャイロ操縦法則といったシステムにおける力学的な振る舞いに応じて、(a1)から(am)までが適切に調整される。もし、 (m)個の自由度全てが同じ重みであるときには、(a1) = (a2) = ... = (am) = (a)と設定することができる。すなわち、全ての値を同じ値(a)に設定することができる。第1ジンバル慣性(first gimbal inertia)が働くCMG制御システムにおいて、(a)を例えば以下のように設定することができる。
a1 = a2 = ... am = a = exp(0.05dt) (数12a)
(dt)は、上記のように定義されたサンプリング期間であり、(exp)は、指数演算子である。
グラフィックの構成においては、以下のような値を用いても良い。
a1 = a2 = ... am = a = exp(5dt) (数12b)
式(数7b)、(数9c)における(P)は、当業者に知られた正定値対象行列である。(P)は、完全行列(full matrix、又は、対角行列であってもよい。
(P)を見つけるために、以下の文献のように当業者に知られているリッカチ方程式の解である行列(Pa)を計算する(ドイル ジェイ.、グロバー ケー.、カーゴネカー ピー.、フランシス ビー.、「標準H2とH無限大制御問題における状態空間の解」(Doyle, J., Glover, K., Khargonekar, P., and Francis, B., “State-space solutions to standard H2 and H-infinity control problems" IEEE Transactions on Automatic Control , Vol. 34, 1989, pp. 831-847.))。
Mt*Pa + Pa*M - Pa*( B2*(V)^-1*B2t - s^-2*B1*B1t )*Pa + Ct*C = 0 (数13)
(Pa)を導出するために、1つのゼロでないスカラー、及び、6つの行列 (B1)、 (B2)、 (M)、 (V)、(C)が定義される。
(B1)は、(m)×(m)次元の恒等行列である。(B1t)は、(B1)の転置である。
(B2)は、(m)×(n)次元の行列であり、ゼロでない(q)=(q0)におけるヤコビ行列(J(q))に(-1)を掛けたものである。
B2 = - J(q0) (数14)
(q0)は、変数(q)に代入される値である。(q0)は、(n)次元であり、ゼロでない変数(q)の組合せとして構成することができる。(B2t)は(B2)の転置である。
ここで、(J(q0))は、ゼロでない特異値をもたなければならない。
(C)は、(n+m+m)×(m)次元である。(C)は以下のように区画される。
Figure 0005349478
第1のグループは、(n)×(m)の要素であり、値は全て0である。
第2のグループは、(m)×(m)次元であり、 (m)×(m)の要素の恒等行列(I)に正のスカラー(w)を掛けたものである。ここで、(w)は、図4のループのカットオフ周波数であり、例えば、w = 4 rad/s. (w)である。(w)は、応用例に応じて適切に調整される必要がある。
第3のグループは、(m)×(m)の要素であり値は全て0である。
式(数13)の(M)は、(m)×(m)次元の負定値対角行列である。(M)は、全部で(m)個の要素を持つ。
Figure 0005349478
(m1)、(m2)、(m3)、...(mm)は正の実数のスカラーであり、(dx)と(dxd)との誤差における低い周波数の減衰を規定している。ロボットマニピュレータ、グラフィックの構成、コントロールモーメントジャイロの操縦法則といったシステムにおける力学的な振る舞いに応じて、(m1)から(mm)までが適切に調整される。もし、 (m)個の自由度全てが同じ重みであるときには、(m1) = (m2) = ... = (mm)と設定することができる。すなわち、全ての値を同じ値に設定することができる。第1ジンバル慣性(first gimbal inertia)が働くCMG制御システムにおいて、例えば、以下のように設定することができる。
m1 = m2 = ... mm = 0.05 (数17a)
グラフィックの構成においては、例えば、以下のように設定することができる。
m1 = m2 = ... mm = 5 (数17b)
(Mt)は(M)の転置である。
式(数13)の(V)は、(n)×(n)次元の正定値対角行列である。(V)は全(n)個の要素を持つ。
Figure 0005349478
ここで、(v1)、(v2)、(v3)、...、 (vn)は正の実数のスカラーであり、システムが達成しうる各自由度(q)の最大比率(例えば、rad/s、または、m/s)の二乗を規定する。ロボットマニピュレータ、グラフィックの構成、コントロールモーメントジャイロの操縦法則といったシステムにおける力学的な振る舞いに応じて、(v1)から(vn)までが適切に調整される。もし、 (n)個の自由度全てが同じ重みであるときには、(v1) = (v2) = ... = (vn)と設定することができる。すなわち、全ての値を同じ値に設定することができる。これらは、第1ジンバル慣性(first gimbal inertia)が働くCMG制御システムにおいて、例えば以下のように設定することができる。
v1 = v2 = ... = vn = 1.8 * 1.8 (数19a)
グラフィックの構成では、例えば、以下のように設定することができる。
v1 = v2 = ... = vn = 1 * 1 (数19b)
式(13)における(s)は、スカラーである。以下のアルゴリズムが(s)を決定するのに用いられる。
ステップ1:(s)を大きな数、例えばs=100に設定する。
ステップ2:(s)の値に対して、式(数13)を解いて(Pa)を決定する。
ステップ3:もし、解が存在し、(Pa)が正定値であれば、(s)を、例えば(s)/2に減らす。そして、ステップ2からの処理を繰り返す。
ステップ4:もし、新たな(s)の値に対して、式(13)が正定値の解を生成しなければ、最後に正定値として得られた解(Pa)を式(数13)のリッカチ方程式の解とする。
(Pa)が、式(13)より計算されると、式(数7b)、(数9c)における(P)は、式(数19a)、(数19b)により定義される自由度のうち1つの自由度の最大率を(Pa)に掛けることにより得られる。即ち、(P)は以下のようになる。
P = (v1)*Pa (数20)
コンピュータアニメーションなどの多くの応用例では、式(数9d)、(数9e)における(P)と(A)とに定数を選択できる。これにより、計算資源をかなり減らすことができる。(P)と(A)とを計算するために、以下のアルゴリズムを上記のアルゴリズムの代わりに用いてもよい。
ステップ1:Aを選択する。Aは、一般的には、-0.0001から-1000の負の変数である。95
自由度をもつスケルトンの典型的な値はA=-20である。
ステップ2:現在の結合部(関節)の組合せにおけるヤコビ行列J(q)を取得し、以下の式を計算する。
JJnorm = sqrt ( trace(J(q)Jt(q)) )
ここで、trace(J(q)Jt(q))は、行列のトレース、即ち、J(q)Jt(q) 主対角成分の和である。また、sqrtはルートを示している。
ステップ3:Pを以下の条件を満たすように選択する。
P <= (pi/h - A) / Jjnorm
A、h、Pの適合:ステップ3より明らかなように、PとAとhとは、相互に関係している。例えば、典型的なアルゴリズムにおいて、運動学的な構造が定義されると(または、コンピュータアニメーションにおいてスケルトンフレームが定義されると)、以下のような処理が行われる。
ステップ1:Aは固定された、例えば、以下のような値である。
A = -20
ステップ2:hは固定された、例えば、以下のような値である。
h = 0.02
ステップ3:Pは以下のように計算される。
P <= (pi/h - A) / Jjnorm
ステップ4:上記の値に基づいて、先端部のダミー軌道が定義され、実行される。式(数9d)と(数9e)とを反復して計算して、所望の値に落ち着かせる。かかる反復処理の回数を監視し、反復数を減らすために、Pの値が増加するように調整される。もし、反応が不安定であった場合(dqが均一に大きくなる場合)、hの値を減少させる。
ステップ5:安定した反応が達成されたら、Aは、反復回数を改良するように調整される。Aは、典型的には、反復回数を減らすように増加させられる。
上記の適合アルゴリズムは、1つの与えられたスケルトンに対して、一回のみ実行される。
<フィードバック逆運動学の実行(固定サンプリング間隔)>
式(数9a)-(数9c)で定義されるフィードバック逆運動学アルゴリズムは、フィルタとして働き、乗算命令、加算命令のみを用いている。アルゴリズムのフィルタ形式は図5に示される。
フィードバック逆運動学は以下のように実行される。
ステップ0(初期化):
(z(k-1))を次元(m)のゼロベクトルと設定する。
(dq(t-1))を次元(n)のゼロベクトルと設定する。
ステップ1:現在の(q)におけるヤコビ行列(J(q))を計算する。ここで、(q)は、センサ(カメラ、モーター光学エンコーダー、モータータコメータ、など)の測定、あるいは、数学モデルなどから得られる。ヤコビ行列は、逆運動学が解かれるシステムの構造に依存している。一般的には、ヤコビ行列は、(q)に依存するスカラーと、sin(q)、cos(q)といった(q)に依存する三角関数とから計算される。ヤコビ行列は(m)×(n)次元である。数値形式の(q)を代入したヤコビ行列を計算し、 (J(q))の各要素を解き、(m)×(n)の数値形式の行列を生成する。
ステップ2:乗算手段、加算手段を用いて以下の計算を行う。計算結果を(dx)として(dx)記憶手段に記憶する。これにより、(m)次元のベクトル(dx)が得られる。
dx = J(q)dq(t-1)
ステップ3:(dxd)からステップ2の結果を引くことにより、式(数9a)の誤差を計算する。即ち、減算手段を用いて以下の計算を行う。
e = dxd - dx
記憶手段を用いて、この結果を(e)として記憶する。
ステップ4:記憶手段の(P)と(z(t-1))とを用いて、(P)と(z(t-1))との積を計算し、結果を(tmp)に記憶する。
tmp = Pz(t-1)
この演算は、記憶手段と、乗算手段と、加算手段とを用いる。(tmp)を記憶する手段を用いて、(tmp)を記憶する。ここで(tmp)は、(m)次元ベクトルである。
ステップ5:式(数9c)における(dq)を導くために、ヤコビ行列の転置(Jt(q))にステップ4で計算された(tmp)を掛ける。
dq = Jt(q)tmp
この演算は、乗算手段と、加算手段と、(dq)を記憶するための手段を用いる。
ステップ6:(z(t-1))、 (A)、ステップ3で計算された(e)を用いて、式(数9b)からz(t)を計算する。
z(t) = Az(t-1) + e
この演算は、加算手段と、乗算手段と、(z(t))を記憶するための手段とを用いる。
ステップ7:以下のように設定する。
z(t-1) = z(t)
dq(t-1) = dq
この演算は、(z(t-1))と(dq(t-1))とを記憶する手段を用いる。これらの値は、(dt)秒後に行われる次回のIKアルゴリズムの反復において用いられる。
ステップ8:ステップ5で得られた(dq)をIK問題の解として用いる。ステップ1に戻り、(dt)秒後に次の反復処理を行う。
図6は、一般的な逆運動学の問題のための上記のアルゴリズムを実行するC言語命令を用いたコンピュータソフトウェアプログラムを示している。全演算数は以下のようになる。
2*m*m + 2*m -1 + n*(2m-1) (数21)
もし、(m=6)ならば、ヤコビ行列の逆行列を計算し、IK問題を解くために、(83 + 11*n)回の演算が必要になる。
もし、(m=12)で(n=25)ならば、ヤコビ行列の逆行列を計算し、IK問題を解くために、(886)回の演算が必要である。
<フィードバック逆運動学の実行(変動サンプリング間隔)>
変動サンプリング間隔を用いた応用例の場合、以下のアルゴリズムを用いることができる。
ステップ0、ステップ1:上記のステップ0,1と同じである。
ステップ3:式(数9d)を計算する。
dq = Jt(q) P z(t-1)
ここでは、ヤコビ行列の転置(Jt(q))、及び、P、z(t-1)を用いる。
ステップ4:式(数9e)を計算する。
z(t) = z(t-1) + h(Az(t-1) - J(q)dq) + h dxd
ここでは、ヤコビ行列(J(q))、A、z(t-1)、h、dxdを用いている。z(t)は、次回の反復のステップ3に用いられるz(t-1)の値になる。
ステップ3におけるdqを今回の反復における逆運動学の問題の解とする。dqが閾値より小さい値になるか、または/かつ、先端部が目標に到達するまで、上記のステップを繰り返す。
逆運動学の解を求めるために、2*m*n + 4*m回の乗算と、2*m*n-n+2*m回の加算が一回あたりの反復で行われる。明らかに、計算の複雑さは、mとnとに線形である。
以下の文献では、IK問題を計算するために、本実施の形態と同じ次元数(m=12)、(n=25)において、乗算命令と加算命令とを使用する除算命令を含んだ6000命令が最低でも必要となることが報告されている。
ワイ. ナカムラ、エイチ. ハナフサ、「ロボットマニピュレータの制御における特異性に耐性のある逆運動学の解」、ジャーナルオブダイナミックシステムズ、108巻、1986年9月(Y. Nakamura and H. Hanafusa, “Inverse kinematic solutions with singularity robustness for robot manipulator control”, Journal of Dynamic systems, Measurements and Control, Vol. 108, Sep. 1986)
従って、上記のアルゴリズムは、計算の負荷を少なくとも1/7倍に減らしている。また、以下の文献では、従来のIK法における計算の負荷を見積もっている。
エー. エー. マシジェウスキ、ジェイ. エム. リーギン、「運動学的に冗長なマニピュレータの制御における並列アルゴリズムおよび並列アーキテクチャ」、ロボティックスアンドアニメーション、IEEE会議、10巻、4刷、1994年8月、405−414ページ(A.A. Maciejewski and J. M. Reagin, “Parallel Algorithm and Architecture for the control of kinematically redundant manipulators”, Robotics and Automation, IEEE Transactions on, Volume 10, Issue 4, Aug 1994 Page(s):405 - 414)
この文献と比較しても、本発明のアルゴリズムでは、少なく見積もって約1/10倍に負荷を減らしている。
式(数21)の数は、説明のためのものであり、ヤコビ行列(J(q))は、全てゼロでない要素を持つ(full structure)ように仮定されている。かかる点に関しては、さらに最適化して、 (J(q))のゼロの要素が存在するように、アルゴリズムをより効率よく実行することが可能
である。
また、(J(q))を適切に調整して、(P)が対角になるようにすることができる。
また、2以上の処理ブロックを使った並列、多重処理によって、処理を向上させることが可能である。本発明のアルゴリズムは、付加的な作業を必要とせずに、並列アーキテクチャに適合する。これには、いくつかの方法がある。例えば以下のような方法である。
図6において、2つの処理ブロックを有するアーキテクチャにおいて、(e(t))と(z(t))との計算は、(tmp)と(dq)との計算と並行に実行することができる。
例えば、(J(q)dq(t-1))の計算において、(m)×(n)次元の(J(q))は、以下のように区画される。
Figure 0005349478
ここで、各列は、(n)個の要素を持つ。並列して各列を(dq(t-1))倍することが可能である。従って、もし、(m)個のプロセッサが利用できるシステムであれば、各プロセッサは、並列して、(J(q))の各列を(dq(t-1))倍することができる。これにより、単一のプロセッサで処理するよりもループを(m)倍速く実行することができる。
同様の処理は、上記のアルゴリズムにおけるステップ4,5においても適用できる。その際に、乗算の結果に対して適切にメモリのポインタを構成すれば、追加の処理を加えることなく実行することが可能である。
<関節拘束条件、関節制限、軌道、環境拘束条件のため、および、動作再標的化のためのNULL-motion>
関節拘束条件、関節制限、環境拘束条件、及び、動作再標的化を導入するために、以下のように、式(数2)に同次項(homogeneous term)を追加する。
dq = iJ(q)dxd + [I - iJ(q)J(q)]dq0
新たな同次項[I - iJ(q)J(q)]dq0は、図4のフィードバック形式iJ(q)を置き換えることにより計算することができる。
コンピュータアニメーション、及び、非固定サンプリング間隔を考慮した完全解は、以下のように変更される。
bdq = Jt(q) P bz(t-1) (数9f)
bz(t) = bz(t-1) + h(A bz(t-1) - J(q) bdq) + h J(q)dq0 (数9j)
最終関節の速度は、以下のようになる。
dq_full = dq - bdq + dq0
ここで、dqは、式(数9d)から計算される、bdqは、式(数9f)から計算され、dq0は、与えられた拘束条件、例えば、関節動作の限界、与えられた関節変数(k)に対する動作の再標的化、に応じて以下のように計算される。
dq0(k) = gain * ( bq(k) - q(k) )
ここで、bq(k)は、関節の所望の値であり、定数か、時間に依存した関数である。q(k)
は、関節変数(k)の現在の値であり、gainは、選択可能な正の定数である。
図7を参照して、本発明の実施の形態としてのロボットについて説明する。ロボットは先端部714と、3つの関節711、712、713とを有している。従って、このロボットは図1のロボットに対応するものである。各関節は3つの自由度をもち、3つのアクチュエータを有する。各アクチュエータは、1つの自由度に関する動きを制御している。制御システムは、プロセッサ722と、メモリ724とを有するコンピュータ720を有する。プロセッサ722は、要求される全ての処理手段を供給するように構成されている。メモリ724は、要求される全ての記憶手段を供給するように構成されている。例えばユーザによる入力730などによる入力により、先端部714の所望の動きを示すコンピュータ720への入力を生成するように構成されている。センサ740は、関節711、712、713の位置と動きとを測定するように構成され、コンピュータ720に当該位置と動きとを示す信号を送信する。コンピュータは、上述した方法の1つを用いて、関節711、712、713と関連付けされたアクチュエータを制御する。
図8を参照して、本発明の別の実施の形態について説明する。PC820は、プロセッサ822と、メモリ824とを有している。コンピュータは、ディスプレイ826と、ユーザ入力装置830とに接続されている。メモリ824は、ユーザがコンピュータ上でゲームを遊ぶことを可能とする命令を保存している。ここで、ゲームにおいて、グラフィック画像832は、ディスプレイ834に表示され、ユーザインプット装置830の入力値に応じて、動くように制御されている。コンピュータは、ユーザ入力装置830の入力信号に応じて、上述の方法の1つを用いて、当該画像の動きを制御するように構成される。当該画像は、図2に示されるようなキャラクターに対応するものであってもよい。

Claims (17)

  1. 少なくとも1つの変数パラメータ(dq)と、軌道(dx)とを有する複数の制御対象を有するシステムをリアルタイムに制御する方法であって、前記軌道(dx)は、変数行列を介して前記変数パラメータと関連しており、前記方法は、
    前記変数パラメータ(dq)と、前記軌道(dx)とを関連づける制御転送行列(K)を定義し、
    所望の軌道(dxd)と現在の軌道(dx)との差からなる誤差(e)に依存したフィードバック項を計算するフィードバックループを用いており、
    (J)は行列であり、(Jt)は(J)の転置であり、(A)は負定値対角行列、又は、負の定数であり、(P)は正定値完全行列、正定値対角行列、又は、正の定数であり、(h)は、正の定数であり、(z)は状態変数からなるベクトルであり、(t)はサンプリング時間であり、以下の演算:
    dq = Jt(q) P z(t-1)
    z(t) = z(t-1) + h(Az(t-1) - J(q)dq) + h dxd
    を用いて、前記少なくとも1つの変数パラメータ(dq)、および、前記ベクトル(z)を求めることを特徴とする方法
  2. 前記変数行列はヤコビ行列であることを特徴とする請求項1に記載の方法。
  3. 前記フィードバック項は、前記現在の軌道が前記所望の軌道に近づくように、複数回繰返して計算されることを特徴とする請求項1または2に記載の方法。
  4. 前記少なくとも1つの変数パラメータ(dq)は、 前記制御転送行列(K)の出力値であり、次元(n)を有し、前記所望の軌道(dxd)は、次元(m)を有し、前記次元(m)は前記次元(n)以下であることを特徴とする請求項1乃至3のいずれか一に記載の方法。
  5. (m)×(n)次元の前記制御転送行列(K)を選択し、
    前記制御転送行列(K)の成分は、前記システムの特性に応じて決定することを特徴とする請求項4に記載の方法。
  6. 前記所望の軌道(dxd)に対する(dq)を生成する数値アルゴリズムは、フィルタ形式であることを特徴とする請求項1乃至5のいずれか一に記載の方法。
  7. 前記数値アルゴリズムは、乗算に関する命令と、加算に関する命令と含むことを特徴とする請求項6に記載の方法。
  8. 前記方法は、単一のプロセッサ、または、並列プロセッサによって実行されることを特徴とする請求項1乃至7のいずれか一に記載の方法。
  9. 前記行列(J(q))のランクが低下したときにも、前記制御転送行列(K)は、前記少なくとも1つの変数パラメータ(dq)に対する解を与えるように構成されていることを特徴とする請求項1乃至8のいずれか一に記載の方法。
  10. 特異状態において、誤差(e)は、特異方向に増大し、前記制御転送行列(K)の全体構成は、軌道を特異状態から離れさせるような動きを生み出すゼロでない解として前記少なくとも1つの変数パラメータ(dq)を生成することを特徴とする請求項1乃至9のいずれか一に記載の方法。
  11. 前記システムは、移動可能な対象物の画像を表示するよう構成されたディスプレイを有し、制御手段は、前記移動可能な前記対象物の関節を制御し、制御される前記対象物は、移動可能な要素を有することを特徴とする請求項1乃至10のいずれか一に記載の方法。
  12. 前記システムは、ロボットと制御システムとを有するロボットシステムであり、前記被制御要素は、ロボットの一部であり、前記制御手段はロボットの関節を有することを特徴とする請求項1乃至11のいずれか一に記載の方法。
  13. 前記制御手段は、コントロールモーメントジャイロシステムにおけるジャイロを有することを特徴とする請求項1乃至10のいずれか一に記載の方法。
  14. 請求項1乃至13のいずれか一に記載の前記方法に基づいて動作するように構成された制御システム。
  15. ロボットと、請求項14に記載の前記制御システムとを有する、ロボットの動きを制御するロボットシステム。
  16. 複数のジャイロと、請求項14に記載の前記制御システムとを有するコントロールモーメントジャイロシステム。
  17. 請求項1乃至10のいずれか一に前記方法を実行し、前記制御対象を画像化した画像データを生成するよう構成された画像生成手段と、前記画像データに基づいた画像を表示するよう構成された表示手段とを有する表示システム。
JP2010522436A 2007-08-28 2008-08-28 逆運動学 Active JP5349478B2 (ja)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US96650307P 2007-08-28 2007-08-28
US60/966,503 2007-08-28
PCT/GB2008/002905 WO2009027673A1 (en) 2007-08-28 2008-08-28 Inverse kinematics

Publications (2)

Publication Number Publication Date
JP2010537831A JP2010537831A (ja) 2010-12-09
JP5349478B2 true JP5349478B2 (ja) 2013-11-20

Family

ID=39929608

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2010522436A Active JP5349478B2 (ja) 2007-08-28 2008-08-28 逆運動学

Country Status (7)

Country Link
US (1) US8965582B2 (ja)
EP (1) EP2188685B1 (ja)
JP (1) JP5349478B2 (ja)
CN (1) CN101842755B (ja)
AT (1) ATE546768T1 (ja)
CA (1) CA2735262C (ja)
WO (1) WO2009027673A1 (ja)

Families Citing this family (21)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8768516B2 (en) * 2009-06-30 2014-07-01 Intuitive Surgical Operations, Inc. Control of medical robotic system manipulator about kinematic singularities
CA2458979C (en) 2001-08-31 2010-09-28 George Danko Coordinated joint motion control system
US8065060B2 (en) * 2006-01-18 2011-11-22 The Board Of Regents Of The University And Community College System On Behalf Of The University Of Nevada Coordinated joint motion control system with position error correction
US8532825B1 (en) * 2010-08-25 2013-09-10 The Boeing Company Software compensation for kinematically singular machines
EP2444876A1 (en) * 2010-09-29 2012-04-25 EADS Construcciones Aeronauticas, S.A. Method and system for the simulation of the human factor in assembly processes
DE102011080769A1 (de) * 2011-08-10 2013-02-14 Mall + Herlan Gmbh Effektive Produktionslinie für Aerosoldosen
US9536446B2 (en) * 2012-12-03 2017-01-03 Dynamic Motion Group Gmbh Motion simulation system controller and associated methods
US9259657B2 (en) 2012-12-03 2016-02-16 Dynamic Motion Group Gmbh Motion simulation system and associated methods
US9242181B2 (en) 2012-12-03 2016-01-26 Dynamic Motion Group Gmbh Amusement park elevator drop ride system and associated methods
FR3002047B1 (fr) * 2013-02-08 2015-02-27 Inst Nat Rech Inf Automat Procede de commande d'un robot deformable, module et programme d'ordinateur associes
JP5792226B2 (ja) * 2013-05-29 2015-10-07 株式会社神戸製鋼所 多関節リンク機構の逆運動学解法、及びこの逆運動学解法を利用した教示データ作成装置
CN105223961B (zh) * 2015-10-16 2018-04-13 北京机械设备研究所 一种用于控制力矩陀螺奇异规避的航天器姿态控制方法
CN105406749B (zh) * 2015-12-11 2018-07-31 天津大学 并网逆变器并联***的鲁棒控制器设计方法
JP6681805B2 (ja) * 2016-08-19 2020-04-15 三菱電機株式会社 姿勢制御装置、宇宙機、姿勢制御方法および姿勢制御プログラム
CN106945041B (zh) * 2017-03-27 2019-08-20 华南理工大学 一种冗余度机械臂重复运动规划方法
US10870968B2 (en) * 2018-04-30 2020-12-22 Deere & Company Work vehicle control system providing coordinated control of actuators
US11086124B2 (en) 2018-06-13 2021-08-10 Reavire, Inc. Detecting velocity state of a device
CN109465829B (zh) * 2018-12-12 2021-05-04 南京工程学院 一种基于转换矩阵误差模型的工业机器人几何参数辨识方法
CN110531866B (zh) * 2019-10-29 2020-03-13 深圳市瑞立视多媒体科技有限公司 基于改进的反向运动学进行姿态解算的方法及相关设备
CN114347020B (zh) * 2021-12-22 2024-02-13 深圳市优必选科技股份有限公司 一种运动控制方法、运动控制装置及机器人
CN115635484B (zh) * 2022-10-28 2024-05-03 电子科技大学 一种控制机器人奇异位姿的方法

Family Cites Families (12)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH0769734B2 (ja) * 1987-04-24 1995-07-31 株式会社日立製作所 マニピュレータ装置
US5159249A (en) * 1989-05-16 1992-10-27 Dalila Megherbi Method and apparatus for controlling robot motion at and near singularities and for robot mechanical design
JP3341305B2 (ja) * 1992-06-30 2002-11-05 ソニー株式会社 加減速パターン生成装置及び加減速パターン生成方法、並びにこれに用いる逆運動学問題の解法と時間軸補正方法
WO1997010081A1 (fr) * 1995-09-11 1997-03-20 Kabushiki Kaisha Yaskawa Denki Circuit de commande de robots
JPH10329066A (ja) * 1997-05-26 1998-12-15 Mitsubishi Heavy Ind Ltd 冗長マニピュレータの特異姿勢検知方法および特異姿勢回避方法
JP4329257B2 (ja) * 2000-10-25 2009-09-09 株式会社豊田中央研究所 ロボット装置
CA2458979C (en) * 2001-08-31 2010-09-28 George Danko Coordinated joint motion control system
JP3614824B2 (ja) * 2002-03-18 2005-01-26 ソニー株式会社 脚式移動ロボットのための動作編集装置及び動作編集方法
JP2004009205A (ja) * 2002-06-06 2004-01-15 Mitsuba Corp 2足歩行ロボット
JP4511390B2 (ja) * 2005-03-01 2010-07-28 三菱電機株式会社 人工衛星の姿勢制御装置
CN100464720C (zh) * 2005-12-22 2009-03-04 天津市华志计算机应用技术有限公司 基于光学跟踪闭环控制的脑外科机器人***及实现方法
US8467904B2 (en) * 2005-12-22 2013-06-18 Honda Motor Co., Ltd. Reconstruction, retargetting, tracking, and estimation of pose of articulated systems

Also Published As

Publication number Publication date
CA2735262C (en) 2016-10-11
EP2188685B1 (en) 2012-02-22
EP2188685A1 (en) 2010-05-26
JP2010537831A (ja) 2010-12-09
CN101842755A (zh) 2010-09-22
CN101842755B (zh) 2014-12-10
US8965582B2 (en) 2015-02-24
WO2009027673A1 (en) 2009-03-05
ATE546768T1 (de) 2012-03-15
US20100228396A1 (en) 2010-09-09
CA2735262A1 (en) 2009-03-05

Similar Documents

Publication Publication Date Title
JP5349478B2 (ja) 逆運動学
de Wit et al. Theory of robot control
Caron et al. Leveraging Cone Double Description for Multi-contact Stability of Humanoids with Applications to Statics and Dynamics.
Sharifi et al. Nonlinear model reference adaptive impedance control for human–robot interactions
US8140189B2 (en) Apparatus and method for computing operational-space physical quantity
JP2019166626A (ja) 制御装置及び機械学習装置
Wang et al. Passivity based adaptive Jacobian tracking for free-floating space manipulators without using spacecraft acceleration
CN114641375A (zh) 动态规划控制器
Jeon et al. Kinematic Kalman filter (KKF) for robot end-effector sensing
EP2105263A2 (en) Real time control method and device for robots in virtual projection
Salvietti et al. Multicontact bilateral telemanipulation with kinematic asymmetries
CN117047771A (zh) 机器人的柔顺控制方法、装置及电子设备
Endo et al. Bending moment-based force control of flexible arm under gravity
JP2009274180A (ja) ロボット動作計画方法及び装置
Al-Shuka et al. Adaptive hybrid regressor and approximation control of robotic manipulators in constrained space
Zhang et al. Infinity-norm acceleration minimization of robotic redundant manipulators using the LVI-based primal–dual neural network
JP4587052B2 (ja) 位置制御装置、位置制御方法及び位置制御プログラム
Bettega et al. Numerical and experimental investigation on the synthesis of extended Kalman filters for cable-driven parallel robots modeled through DAEs
Mukherjee et al. Efficient approach for constraint enforcement in constrained multibody system dynamics
JP2022045269A (ja) 移動体の姿勢推定方法
Huynh et al. Dynamic Hybrid Filter for Vision‐Based Pose Estimation of a Hexa Parallel Robot
Galicki et al. Time-optimal motions of robotic manipulators
JPH06114766A (ja) マニピュレータの遠隔制御装置
Siradjuddin et al. An iterative robot-image Jacobian approximation of image-based visual servoing for joint limit avoidance
Stanley et al. Sensor Fusion

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20110819

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20121011

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20130107

A601 Written request for extension of time

Free format text: JAPANESE INTERMEDIATE CODE: A601

Effective date: 20130401

A602 Written permission of extension of time

Free format text: JAPANESE INTERMEDIATE CODE: A602

Effective date: 20130408

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20130418

TRDD Decision of grant or rejection written
A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

Effective date: 20130805

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20130820

R150 Certificate of patent or registration of utility model

Ref document number: 5349478

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150

Free format text: JAPANESE INTERMEDIATE CODE: R150

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

S111 Request for change of ownership or part of ownership

Free format text: JAPANESE INTERMEDIATE CODE: R313113

R350 Written notification of registration of transfer

Free format text: JAPANESE INTERMEDIATE CODE: R350

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

S111 Request for change of ownership or part of ownership

Free format text: JAPANESE INTERMEDIATE CODE: R313113

S531 Written request for registration of change of domicile

Free format text: JAPANESE INTERMEDIATE CODE: R313531

R350 Written notification of registration of transfer

Free format text: JAPANESE INTERMEDIATE CODE: R350

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250