説明

逆運動学計算方法及び逆運動学計算装置

【課題】ロボットの機構に影響されることなく逆運動学計算の解を精度良く導出すること。
【解決手段】複数の関節J〜Jを有するロボットRの先端Tの位置及び姿勢から関節変数q1〜qnを計算する場合、まず、制御変数λを決定する。続いて、決定された制御変数λに基づいて関節変数ベクトルqの変化量Δqを算出し、算出された変化量Δqに基づいてロボットRの先端Tの位置及び姿勢に対応する関節変数ベクトルqk+1を算出する。制御変数λは、関節変数ベクトルqを評価する所定の評価指標値F(q)の変動状況に基づいて決定される。

【発明の詳細な説明】
【技術分野】
【0001】
本発明は、複数の関節を有するロボット(多関節ロボット)の関節変数を計算する逆運動学計算方法及び逆運動学計算装置に関するものである。
【背景技術】
【0002】
従来から、多関節ロボットの作業部位の位置及び姿勢を指定した上で、その位置及び姿勢を実現するための関節角度を計算する逆運動学計算方法が知られている。例えば、下記特許文献1には、多関節リンク機構の逆運動学解析の効率化を実現するための手法が開示されている。下記特許文献1に記載の逆運動学解析方法は、隣接リンク間の機構学的関係を示す関係式と最終リンクの位置及び姿勢とが与えられた場合に、非線形特性を模擬する制御変数である補正係数をガウス・ニュートン法に導入し、目的関数が単調減少するようにその補正係数を変えつつ反復計算を行うことで関節角度を算出する。
【特許文献1】特開平7−146703号公報
【特許文献2】特開平7−36518号公報
【発明の開示】
【発明が解決しようとする課題】
【0003】
しかしながら、上記特許文献1に記載の手法では、補正係数(制御変数)を経験的に決定しているに過ぎないので、ロボットの機構を定義するパラメータを変更した際に所望の計算結果が得られない可能性がある。例えば、算出される関節角度が局所解に陥るなどして、所望の結果とは異なる計算結果に収束することがある。
【0004】
本発明は、上記課題を解決するためになされたものであり、ロボットの機構に影響されることなく逆運動学計算の解を精度良く導出することが可能な逆運動学計算方法及び逆運動学計算装置を提供することを目的とする。
【課題を解決するための手段】
【0005】
本発明の逆運動学計算方法は、複数の関節を有するロボットの作業部位の位置及び姿勢から関節変数を計算する逆運動学計算方法であって、制御変数を決定する制御変数決定ステップと、制御変数決定ステップにおいて決定された制御変数に基づいて関節変数の変化量を算出し、算出された変化量に基づいてロボットの作業部位の位置及び姿勢に対応する関節変数を算出する関節変数算出ステップとを含み、制御変数決定ステップでは、関節変数算出ステップにおいて算出された関節変数を評価する所定の評価指標値の変動状況に基づいて制御変数を決定する、ことを特徴とする。
【0006】
また、本発明の逆運動学計算装置は、複数の関節を有するロボットの作業部位の位置及び姿勢から関節変数を計算する逆運動学計算装置であって、制御変数を決定する制御変数決定手段と、制御変数決定手段により決定された制御変数に基づいて関節変数の変化量を算出し、算出された変化量に基づいてロボットの作業部位の位置及び姿勢に対応する関節変数を算出する関節変数算出手段とを備え、制御変数決定手段は、関節変数算出手段により算出された関節変数を評価する所定の評価指標値の変動状況に基づいて制御変数を決定する、ことを特徴とする。
【0007】
このような逆運動学計算方法及び逆運動学計算装置によれば、制御変数に基づいて関節変数の変化量が算出され、この変化量に基づいて関節変数が算出される。関節変数の算出において用いられる制御変数は、関節変数の算出を安定化する(関節変数の発散を抑制する)ために用いられるパラメータであり、関節変数を評価する所定の評価指標値の変動状況に基づいて決定される。このように、制御変数が、経験的に決められるのではなく評価指標値の変動状況に基づいて決定されるので、ロボットの機構に応じて自動的に制御変数を決定できる。その結果、ロボットの機構に影響されることなく逆運動学計算の解を精度良く導出できる。また、制御変数を評価指標値の変動状況に基づいて決定することで、関節変数が局所解に陥ることを防止することが可能になる。
【0008】
本発明の逆運動学計算方法において、関節変数算出ステップでは、関節変数の変化量の算出と関節変数の算出とを所定の回数だけ反復して実行し、制御変数決定ステップでは、評価指標値を算出するための評価関数を用いて、関節変数算出ステップにおいて算出された複数の関節変数のそれぞれについて評価指標値を算出し、算出された複数の評価指標値の変化量に基づいて該評価指標値の変動状況を導出することが好ましい。
【0009】
また、本発明の逆運動学計算装置において、関節変数算出手段は、関節変数の変化量の算出と関節変数の算出とを所定の回数だけ反復して実行し、制御変数決定手段は、評価指標値を算出するための評価関数を用いて、関節変数算出手段により算出された複数の関節変数のそれぞれについて評価指標値を算出し、算出された複数の評価指標値の変化量に基づいて該評価指標値の変動状況を導出することが好ましい。
【0010】
この場合、関節変数の算出が反復実行され、その結果得られた複数の関節変数のそれぞれについて評価指標値が算出される。この評価指標値は、所定の評価関数を用いて算出される。そして、算出された複数の評価指標値の変化量に基づいて評価指標値の変動状況が導出され、導出された評価指標値の変動状況に基づいて制御変数が決定される。このように、制御変数が、経験的に決められるのではなく評価指標値の変動状況に基づいて決定されるので、ロボットの機構に応じて自動的に制御変数を決定できる。その結果、ロボットの機構に影響されることなく逆運動学計算の解を精度良く導出できる。また、制御変数を評価指標値の変動状況に基づいて決定することで、関節変数の算出を安定化できる(関節変数の発散を抑制できる)。更に、評価指標値の変動状況は、複数の評価指標値の変化量に基づいて導出されるので、より適切な制御変数を決定できる。
【0011】
本発明の逆運動学計算方法において、関節変数算出ステップでは、制御変数を導入したガウス・ニュートン法を用いて関節変数の変化量を算出することが好ましい。
【0012】
また、本発明の逆運動学計算装置において、関節変数算出手段は、制御変数を導入したガウス・ニュートン法を用いて関節変数の変化量を算出することが好ましい。
【0013】
この場合、制御変数を導入したガウス・ニュートン法を用いて関節変数の変化量が算出される。まず、ガウス・ニュートン法を利用することで、関節変数ベクトルの算出の安定化を実現できる。また、ガウス・ニュートン法に導入される制御変数は、評価指標値の変動状況に基づいて決定されるので、算出対象の関節変数が局所解に陥ることを防止し、所望の関節変数を算出することが可能になる。
【発明の効果】
【0014】
このような逆運動学計算方法及び逆運動学計算装置によれば、関節変数の算出において用いられる制御変数が、該関節変数を評価する所定の評価指標値の変動状況に基づいて決定されるので、ロボットの機構に影響されることなく逆運動学計算の解を精度良く導出できる。
【発明を実施するための最良の形態】
【0015】
以下、添付図面を参照しながら本発明の実施形態を詳細に説明する。本実施の形態では、本発明に係る逆運動学計算装置を、所定の位置に固定された多関節ロボットの関節角度を計算する逆運動学計算装置1に適用する。なお、図面の説明において同一又は同等の要素には同一の符号を付し、重複する説明を省略する。
【0016】
図1〜3を参照して、本実施の形態に係る逆運動学計算装置1について説明する。図1は、本実施形態に係る逆運動学計算装置1の構成を示す図である。図2は、図1に示す逆運動学計算装置1が適用されるロボットRを模式的に示す図である。図3(a)及び図3(b)は、評価指標値F(q)の変動状況の例を示すグラフである。
【0017】
逆運動学計算装置1は、複数の関節を有するロボットの先端(作業部位)の位置及び姿勢(以下「先端位置及び先端姿勢」ともいう)の入力を受け付け、逆運動学計算により、入力された先端位置及び先端姿勢から各関節の関節角度を算出する。特に、逆運動学計算装置1は、制御変数に基づいて関節変数の変化量を算出し、算出された変化量に基づいて目標の関節変数を算出する。このとき、逆運動学計算装置1は、算出された関節変数を評価する所定の評価指標値の変動状況に基づいて上記制御変数を決定する。
【0018】
このために逆運動学計算装置1は、入力部2、変化量計算部3、評価部4、収束判定部5、及び出力部6を備えている。逆運動学計算装置1の主要部はコンピュータ上あるいはロボット内の電子制御ユニットなどに構成され、特に、変化量計算部3、評価部4及び収束判定部5は、ハードディスクあるいはROM内に格納された各アプリケーションプログラムをRAMにロードし、CPUで実行することによって構成される。なお、本実施形態では、変化量計算部3が特許請求の範囲に記載する関節変数算出手段に相当し、評価部4が特許請求の範囲に記載する制御変数決定手段に相当する。
【0019】
まず、逆運動学計算装置1が適用されるロボットRについて説明する。図2に示すように、ロボットRは、n個の関節J〜Jと、関節同士を接続するリンクL〜Ln+1と、先端のリンクLn+1の一端Tに取り付けられたハンドHとを備えている。このロボットRは、末端のリンクLの一端がベースBに取り付けられることで固定されている。各関節J〜Jにはアクチュエータが内蔵されている。このアクチュエータによって各関節J〜Jがそれぞれ回転し、隣接する二本のリンク間の角度θ〜θが変更される。
【0020】
逆運動学計算装置1は、ロボットRの先端Tの位置及び姿勢(ハンドHの位置及び姿勢)から各関節J〜Jの角度θ〜θを決定する装置である。ロボットRの位置及び姿勢は、n個の関節変数が作る関節空間からデカルト空間への非線形写像と考えられる。ロボットRの先端位置及び先端姿勢から各関節の角度を決定するということは、この非線形写像の逆像の中から解を見つけることである。
【0021】
逆運動学計算装置1の各機能的構成要素について説明する前に、この逆運動学計算装置1が用いる理論について説明する。
【0022】
関節J〜Jのそれぞれに対応する関節変数(関節角度を示す関節変数)をそれぞれq1〜qnとすると、関節変数ベクトルはq=(q1,q2,…,qn)、すなわち(q1,q2,…,qn)の転置行列で表される。このとき、ロボットRの先端位置(ハンドHの位置)はX(q),Y(q),Z(q)で表され、ロボットRの先端姿勢(ハンドHの姿勢)を定義する成分はP1(q),P2(q),…,Pm(q)で表される。また、ロボットRの先端Tの目標位置をX,Y,Zとし、ロボットRの先端Tの目標姿勢を定義する成分をP1,P2,…Pmとする。
【0023】
ロボットRの先端位置及び先端姿勢を定義する成分X(q),Y(q),Z(q),P1(q),P2(q),…,Pm(q)は、同次変換行列の各成分座標である。同次変換行列とは、ベースBの座標系Σから見たハンドHの座標系Σを表す行列であり、以下のように表される。なお、式(1)ではm=9であるが、mが他の値(例えば2,4,6など)であってもよい。
【数1】

【0024】
導出された先端位置及び先端姿勢と目標位置及び目標姿勢との差を以下の式で表す。すなわち、ロボットRの先端位置とその目標値との差をf,f,fとし、ロボットRの先端姿勢を定義する成分とその目標値との差をf,f,…,fm+3で表す。
【数2】

【0025】
式(2)で示されるf,f,…,fm+3をまとめ、f(q)=(f,f,…,fm+3を定義する。なお、(f,f,…,fm+3は、(f,f,…,fm+3)の転置行列である。更に、評価指標値F(q)を算出するための評価関数F(q)=f(q)・f(q)を定義する。この評価指標値F(q)が0になれば、ロボットRの先端Tの目標位置及び目標姿勢を実現する各関節J〜Jの角度θ〜θが算出されたことになる。
【0026】
この評価指標値F(q)が0になるようなf(q)を算出するために、関節変数ベクトルqとして適当な値q=(q1(k),q2(k),…,qn(k))を与える。続いて、このqを式(2)に適用することでf(q)を算出し、算出されたf(q)を評価関数に当てはめることで評価指標値F(q)を算出する。
【0027】
続いて、ガウス・ニュートン法の理論を利用して、関節変数ベクトルの変化量Δqを導出する。すなわち、下記式(3)を満たすΔqを導出する。式(3)において、Jはヤコビ行列(J={∂f/∂q})であり、Iは単位行列である。また、λは補正操作のための制御変数であり、正数値である。なお、関節変数ベクトルqの変化量Δqを算出するということは、関節変数q1〜qnの変化量を算出するということである。
(数3)
(J・J+λI)Δq=−J(q)f(q) …(3)
【0028】
式(3)において制御変数λを0とすれば、式(3)はガウス・ニュートン法そのものを表す。ガウス・ニュートン法をそのまま利用した場合(制御変数λを導入しない場合)、関節変数ベクトルqの設定によっては、関節変数ベクトルが発散することがある。また、行列J・Jが正則でない場合には解が無数に存在してしまうなどの問題が発生する。そこで、行列J・Jの対角項に正数値を加える操作を施す。このように制御変数λを導入したガウス・ニュートン法を用いることで、関節変数ベクトルの算出の安定化を図る。
【0029】
ただし、制御変数λを固定した場合には、関節変数ベクトルが局所解に陥り、先端Tの
目標位置及び目標姿勢を実現する関節角度θ〜θを得られないことがある。そこで、逆運動学計算装置1は、所定の演算を行なうことで制御変数λを自動的に更新する。制御変数λの更新方法については後述する。
【0030】
変化量Δqが決まると、下記式(4)により新たな関節変数ベクトルqk+1が算出される。
(数4)
k+1=q+Δq …(4)
【0031】
例えば、関節変数ベクトルの初期値q=(q1(0),q2(0),…,qn(0))を式(2)に代入することでf(q)が算出され、更に評価指標値F(q)が算出可能となる。また、式(3)により関節変数ベクトルqに対する変化量Δqが算出される。続いて、式(4)にq及びΔqを代入することで新たな関節変数ベクトルq=q+Δqが算出される。
【0032】
次に、算出された関節変数ベクトルqを式(2)に適用することでf(q)が算出され、これにより評価指標値F(q)が算出可能となる。また、式(3)により関節変数ベクトルqに対する変化量Δqが算出され、式(4)により新たな関節変数ベクトルqが算出される。以後、このような演算を繰り返すことで、F(q)=0となるような関節変数ベクトルq=(q1(k),q2(k),…,qn(k))が算出され、先端Tの目標位置及び目標姿勢を実現する関節角度θ〜θが導出される。
【0033】
次に、逆運動学計算装置1の各機能的構成要素について説明する。
【0034】
入力部2は、逆運動学計算に必要な値の入力を受け付ける手段である。値の入力は、オペレータまたはエンコーダによって行われる。入力部2により受け付けられる値は、ベースBの位置(ロボットRの立ち位置)、先端Tの目標位置X,Y,Z、先端Tの目標姿勢を定義する成分P1,P2,…Pm、関節J〜Jのそれぞれに対応する関節変数q1,q2,…,qnの初期値q1(0),q2(0),…,qn(0)、制御変数λの初期値λ、及び一回の収束判定までに関節変数ベクトルを繰り返し算出する回数(評価データ数)Sである。入力部2は、受け付けた値を変化量計算部3に出力する。
【0035】
変化量計算部3は、入力部2又は後述する収束判定部5からの入力値を式(2)〜(4)に適用することでS個の関節変数ベクトルq(k=1〜S)を導出する手段である。このために変化量計算部3は、式(2)〜(4)が規定されているプログラムを予めメモリ(図示せず)から読み出す。変化量計算部3は、評価データ数Sの分だけ式(2)〜(4)の演算を繰り返すことにより、関節変数ベクトルq(k=1〜S)を算出する。変化量計算部3は、導出されたS個の関節変数ベクトルqと、式(3)の演算で用いた制御変数λとを評価部4に出力する。
【0036】
評価部4は、変化量計算部3から入力されたS個の関節変数ベクトルqに基づいて式(2)及び評価関数F(q)=f(q)・f(q)を計算することでS個の評価指標値F(q)(k=1〜S)を算出し、これら複数の評価指標値F(q)の変動状況を取得する手段である。このために評価部4は、式(2)及び評価関数F(q)=f(q)・f(q)が規定されているプログラムを予めメモリ(図示せず)から読み出す。具体的には、評価部4は、算出したS個の評価指標値F(q)(k=1〜S)のそれぞれについてF(q)からF(qk+1)への変化量ΔFが正の値であるか負の値であるかを検査し、変化量が正(負)の値から負(正)の値に切り替わった回数(切替り回数)jを取得する。続いて評価部4は、下記式(5)を用いて制御変数λを更新(決定)する。
(数5)
λ=λ(1+j/S) …(5)
【0037】
このような評価部4の処理を、図3(a)及び(b)を用いて具体的に説明する。なお、図3(a)及び(b)のグラフにおいて、縦軸は評価指標値F(q)であり、横軸は関節変数ベクトルである。図3(a)及び(b)に示す例では、評価データ数Sが5に設定されているものとする。
【0038】
図3(a)において、F(q)からF(q)への変化量ΔFは負の値であるが、F(q)からF(q)への変化量ΔFは正の値である。すなわち、F(q)からF(q)にかけては評価指標値F(q)が減少しているが、F(q)からF(q)にかけては増加している。同様に、変化量ΔFは負の値であり、変化量ΔFは正の値である。したがって、ΔFからΔFにかけては変化量が負の値から正の値に切り替わり、ΔFからΔFにかけては変化量が正の値から負の値に切り替わり、ΔFからΔFにかけては変化量が負の値から正の値に切り替わっている。すなわち、切替り回数jは3である。この場合、制御変数λは、λ(1+3/5)=1.6λとなる。
【0039】
これに対して図3(b)の場合、変化量ΔF(k=1〜4)はすべて負の値であるから、切替り回数jは0である。この場合、制御変数λは、λ(1+0/5)=λとなる。
【0040】
すなわち、評価部4は、評価指標値F(q)が増加と減少とを繰り返すなどしてその変動が大きい場合には制御変数λを大きくし、評価指標値F(q)が単調減少するなどしてその変動が小さい場合には制御変数λを小さくする。このように制御変数λを更新する理由は、評価指標値F(q)の変動が大きいほど制御変数λを大きくして関節変数ベクトルの変化量Δqを小さく抑えることで、関節変数ベクトルqの不安定な挙動を回避するためである。
【0041】
評価部4は、更新された制御変数λと、S回目に算出された評価指標値F(q)と、S−1回目及びS回目に算出された関節変数ベクトルq,qS−1とを収束判定部5に出力する。
【0042】
収束判定部5は、入力された評価指標値F(q)が所定の正数値αよりも小さいか、又は関節変数ベクトルの変化量ΔqS−1=q−qS−1が所定の正数値βよりも小さい場合に、ロボットRの各関節J〜Jの角度を示す関節変数ベクトルq=(q1(S),q2(S),…,qn(S))が目標値に到達したと判定する手段である。言い換えれば、収束判定部5は、ロボットRの先端位置及び先端姿勢を定義する成分X(q),Y(q),Z(q),P1(q),P2(q),…,Pm(q)がX,Y,Z,P1,P2,…Pmに到達したと判定する。この場合、収束判定部5は、関節変数ベクトルq=(q1(S),q2(S),…,qn(S))を出力部6に出力する。
【0043】
これに対し、入力された評価指標値F(q)が正数値α以上であり、且つ入力された関節変数ベクトルの変化量ΔqS−1が正数値β以上である場合、収束判定部5は、関節変数ベクトルqを再計算すると判定し、入力された更新後の制御変数λと、関節変数ベクトルqとを変化量計算部3に出力する。
【0044】
収束判定部5は、このような処理を行うために、所定の正数値α,βを予めメモリ(図示せず)から読み出す。本来、収束判定部5は、正数値αとして0を読み出し、入力された評価指標値F(q)が0である場合に関節変数ベクトルq=(q1(S),q2(S),…,qn(S))が目標値に到達したと判定するのが好ましい。しかし、評価指標値F(q)が0か否かのみに基づいて関節変数ベクトルqの収束の有無を判定すると、関節変数ベクトルqが局所解に陥ってしまい、逆運動学計算装置1による処理がいわゆる無限ループに陥る可能性がある。そこで、収束判定部5は、二種類の正数値α,βを用いて収束判定を行なう。
【0045】
出力部6は、収束判定部5から入力された関節変数ベクトルqを、ロボットRを動作させる制御部(図示せず)に出力する手段である。出力部6から図示しない制御部に関節変数ベクトルqが出力させることで、ロボットRの各関節J〜Jのアクチュエータが作動し、各関節J〜Jの角度θ〜θが変更される。その結果、ハンドHの位置及び姿勢が目標とするものに変更される。
【0046】
次に、図4を用いて、図1に示す逆運動学計算装置1の処理を説明するとともに本実施形態に係る逆運動学計算方法について説明する。図4は、逆運動学計算装置1の処理を示すフローチャートである。
【0047】
逆運動学計算装置1では、まず、入力部2が、オペレータ又はエンコーダから逆運動学計算に必要な値の入力を受け付ける(ステップS11)。具体的には、入力部2は、ベースBの位置、ロボットRの先端Tの目標位置及び目標姿勢、関節J〜Jのそれぞれに対応する関節変数q1,q2,…,qnの初期値q1(0),q2(0),…,qn(0)、制御変数λの初期値λ、及び評価データ数Sの入力を受け付ける。
【0048】
続いて変化量計算部3が、入力された関節変数の初期値q1(0),q2(0),…,qn(0)、及び制御変数λを用いて、反復計算によりS個の関節変数ベクトルq(k=1〜S)を算出する(ステップS12、関節変数算出ステップ)。具体的には、変化量計算部3は、関節変数の初期値に基づいて導出されたロボットRの先端位置及び先端姿勢と目標とする先端位置及び先端姿勢との差f,f,…,fm+3を式(2)により算出する。続いて変化量計算部3は、算出されたf,f,…,fm+3に基づいてf(q)を定義し、そのf(q)を制御変数の初期値λを導入したガウス・ニュートン法に当てはめることで関節変数の変化量Δqを導出する。そして、変化量計算部3は、その変化量Δqと関節変数ベクトルqを式(4)に当てはめることで次の関節変数ベクトルqk+1を導出する。変化量計算部3は、式(2)〜(4)を用いたこのような処理を評価データ数Sの分だけ繰り返す。
【0049】
続いて評価部4が、導出されたS個の関節変数ベクトルq(k=1〜S)に基づいてS個の評価指標値F(q)(k=1〜S)を導出し(ステップS13、制御変数決定ステップ)、評価指標値F(q)の変動状況を取得する(ステップS14、制御変数決定ステップ)。具体的には、評価部4は、S個の評価指標値F(q)のそれぞれについてF(q)からF(qk+1)への変化量ΔFを算出し、変化量が正(負)の値から負(正)の値に切り替わった回数(切替り回数)jを取得する。続いて評価部4は、評価データ数S、制御変数の初期値λ、及び導出された切替り回数jを式(5)に当てはめることで制御変数λを更新する(ステップS15、制御変数決定ステップ)。言い換えれば、評価部4は、評価指標値F(q)の変動状況に基づいて制御変数を決定する。
【0050】
続いて収束判定部5が、評価指標値F(q)が所定の正数値αよりも小さいか又は関節変数ベクトルの変化量ΔqS−1=q−qS−1が所定の正数値βよりも小さいか否かを判定する(ステップS16)。ここでF(q)<α又はΔqS−1<βである場合(ステップS16;YES)、収束判定部5は、関節変数ベクトルqが目標値に到達した、すなわちロボットRの先端の目標位置及び目標姿勢を実現する各関節J〜Jの角度θ〜θが導出されたと判定する。そして、収束判定部5は、関節変数ベクトルqを出力部6に出力する。その後、出力部6が導出された関節変数ベクトルqをロボットRを動作させる制御部(図示せず)に出力する(ステップS17)。これにより、各関節J〜Jのアクチュエータが作動して各関節の角度θ〜θが変わり、先端T(ハンドH)の位置及び姿勢が目標とするものに変更される。
【0051】
これに対し、ここでF(q)≧α且つΔqS−1≧βである場合(ステップS16;NO)、収束判定部5は、入力された更新後の制御変数λと関節変数ベクトルqとを変化量計算部3に出力する。これにより、今度はqを初期値として、ステップS12以降の処理が実行される。なお、ステップS12における計算では、更新後の制御変数λを導入したガウス・ニュートン法が用いられる。
【0052】
以上説明したように、本実施形態によれば、制御変数λが、経験的に決められるのではなく評価指標値F(q)の変動状況に基づいて決定されるので、ロボットの機構に応じて自動的に制御変数λを決定できる。その結果、ロボットの機構に影響されることなく逆運動学計算の解を精度良く導出できる。また、制御変数λを評価指標値F(q)の変動状況に基づいて決定することで、関節変数ベクトルqの算出を安定化する(関節変数ベクトルqの発散を抑制する)とともに、関節変数ベクトルqが局所解に陥ることを防止することが可能になる。
【0053】
また、本実施形態によれば、評価指標値F(q)の変動状況は、評価データ数Sの分だけ算出された評価指標値F(q)(k=1〜S)の変化量F(k=1〜S−1)に基づいて導出されるので、より適切な制御変数を決定できる。
【0054】
また、本実施形態によれば、評価指標値F(q)の変動状況に基づいて決定される制御変数λを導入したガウス・ニュートン法を用いることで(式(3)を用いることで)、算出対象の関節変数ベクトルq(関節変数q1〜qn)が局所解に陥ることを防止し、所望の関節変数ベクトル(関節変数)を算出することが可能になる。
【0055】
以上、本発明をその実施形態に基づいて詳細に説明した。しかし、本発明は上記実施形態に限定されるものではない。本発明は、その要旨を逸脱しない範囲で以下のような様々な変形が可能である。
【0056】
本実施形態では、本発明に係る逆運動学計算装置を、ベースBに固定され多数の関節を有するロボットRに適用したが、二次元平面上あるいは三次元空間を移動可能なロボットに適用してもよい。
【0057】
本実施形態では、関節変数q1〜qnが関節J〜Jの関節角度を示したが、関節変数の種類はこれに限定されない。例えば、直動関節により連結されたリンク間の距離を示す関節変数を算出するために、本発明に係る逆運動学計算方法及び逆運動学計算装置を利用できる。
【0058】
また、本実施形態では、ロボットRの先端Tを作業部位としたが、先端部以外の部分を作業部位としてもよい。例えば、リンク同士を接続する関節を作業部位としてもよいし、人型ロボットの頂部を作業部位としてもよい。
【図面の簡単な説明】
【0059】
【図1】本実施形態に係る逆運動学計算装置の構成を示す図である。
【図2】図1に示す逆運動学計算装置が適用されるロボットを示す図である。
【図3】(a)は、評価指標値F(q)の変動状況の一例を示すグラフであり、(b)は、評価指標値F(q)の変動状況の別の例を示すグラフである。
【図4】図1に示す逆運動学計算装置の処理を示すフローチャートである。
【符号の説明】
【0060】
1…逆運動学計算装置、2…入力部、3…変化量計算部、4…評価部、5…収束判定部、6…出力部

【特許請求の範囲】
【請求項1】
複数の関節を有するロボットの作業部位の位置及び姿勢から関節変数を計算する逆運動学計算方法であって、
制御変数を決定する制御変数決定ステップと、
前記制御変数決定ステップにおいて決定された制御変数に基づいて前記関節変数の変化量を算出し、算出された変化量に基づいて前記ロボットの作業部位の位置及び姿勢に対応する関節変数を算出する関節変数算出ステップとを含み、
前記制御変数決定ステップでは、前記関節変数算出ステップにおいて算出された関節変数を評価する所定の評価指標値の変動状況に基づいて前記制御変数を決定する、
ことを特徴とする逆運動学計算方法。
【請求項2】
前記関節変数算出ステップでは、前記関節変数の変化量の算出と前記関節変数の算出とを所定の回数だけ反復して実行し、
前記制御変数決定ステップでは、前記評価指標値を算出するための評価関数を用いて、前記関節変数算出ステップにおいて算出された複数の関節変数のそれぞれについて前記評価指標値を算出し、算出された複数の評価指標値の変化量に基づいて該評価指標値の変動状況を導出する、
ことを特徴とする請求項1に記載の逆運動学計算方法。
【請求項3】
前記関節変数算出ステップでは、前記制御変数を導入したガウス・ニュートン法を用いて前記関節変数の変化量を算出する、
ことを特徴とする請求項1又は2に記載の逆運動学計算方法。
【請求項4】
複数の関節を有するロボットの作業部位の位置及び姿勢から関節変数を計算する逆運動学計算装置であって、
制御変数を決定する制御変数決定手段と、
前記制御変数決定手段により決定された制御変数に基づいて前記関節変数の変化量を算出し、算出された変化量に基づいて前記ロボットの作業部位の位置及び姿勢に対応する関節変数を算出する関節変数算出手段とを備え、
前記制御変数決定手段は、前記関節変数算出手段により算出された関節変数を評価する所定の評価指標値の変動状況に基づいて前記制御変数を決定する、
ことを特徴とする逆運動学計算装置。
【請求項5】
前記関節変数算出手段は、前記関節変数の変化量の算出と前記関節変数の算出とを所定の回数だけ反復して実行し、
前記制御変数決定手段は、前記評価指標値を算出するための評価関数を用いて、前記関節変数算出手段により算出された複数の関節変数のそれぞれについて前記評価指標値を算出し、算出された複数の評価指標値の変化量に基づいて該評価指標値の変動状況を導出する、
ことを特徴とする請求項4に記載の逆運動学計算装置。
【請求項6】
前記関節変数算出手段は、前記制御変数を導入したガウス・ニュートン法を用いて前記関節変数の変化量を算出する、
ことを特徴とする請求項4又は5に記載の逆運動学計算装置。

【図1】
image rotate

【図2】
image rotate

【図3】
image rotate

【図4】
image rotate


【公開番号】特開2009−23016(P2009−23016A)
【公開日】平成21年2月5日(2009.2.5)
【国際特許分類】
【出願番号】特願2007−185945(P2007−185945)
【出願日】平成19年7月17日(2007.7.17)
【出願人】(000003207)トヨタ自動車株式会社 (59,920)
【Fターム(参考)】