説明

ロボットの制御装置

【課題】ロボットの各関節の動作状態の制御のための操作量を、擬似逆行列を用いる演算処理によって決定する場合に、その擬似逆行列を算出するために用いる適切なパラメータの値を効率よく短時間で決定する。
【解決手段】ロボット1の関節4の動作状態を制御するための操作量を決定する関節操作量決定手段22は、その演算処理に使用する擬似逆行列A*を、行列式DETの絶対値が所定の閾値以上になるように決定した調整パラメータkの値を用いて所定の式により算出する。調整パラメータkの暫定値を所定の初期値から段階的に増加させていくように設定することと、設定した各暫定値を用いてDETの値を算出することと、算出した行列式DETの絶対値が所定の閾値以上の値であるか否かを判断することとを繰り返し、該判断結果が肯定的となったときのkの暫定値を、擬似逆行列A*の算出に用いるkの値として決定する。

【発明の詳細な説明】
【技術分野】
【0001】
本発明は、複数の関節を備えるロボットの制御装置に関する。
【背景技術】
【0002】
複数の関節を動かして所要の動作を行なうロボットの制御装置は、通常、各関節の動作状態(各関節の変位量や、各関節の駆動力)を制御するための操作量(制御入力)を逐次決定し、その操作量に応じて各関節の動作状態が電動モータ等のアクチュエータを介して制御される。
【0003】
このようなロボットの制御処理においては、上記操作量を決定するために、ある線形写像を表現する行列(一般には正則行列とならないような行列)、例えばヤコビアン行列の擬似逆行列を算出し、この擬似逆行列を用いる演算処理を行なうことが必要となる場合が多々ある。
【0004】
例えば、特許文献1には、ロボットの各関節の角度の変化分と、ZMPの変化分とを関係づけるZMPヤコビアン行列の擬似逆行列を用いて、ZMPの速度からロボットの各関節の目標角速度を決定する技術が記載されている。
【0005】
ここで、擬似逆行列を求めようとする行列をAとおくと、その行列Aの擬似逆行列(以降、これをA*と表記する)は、一般に、次式(1)により算出される。なお、添え字“T”は転置を意味する。
【0006】

*=AT・(A・AT)-1 ……(1)

ただし、この場合、式(1)の右辺に含まれる行列(A・AT)の行列式det(A・AT)の大きさがゼロもしくはゼロ近傍の微小値となるような場合には、式(1)の右辺の演算結果が発散し、適正な擬似逆行列A*を算出することができない。
【0007】
これを防止するために、例えば非特許文献1にて提案されている如く、次式(2)により擬似行列A*を算出することが知られている。
【0008】

*=AT・(A・AT+k・I)-1 ……(2)

この式(2)におけるkは、同式(2)の右辺の括弧内の行列(=A・AT+k・I)の行列式det(A・AT+k・I)(以降、これをDETと表記する)の大きさが小さくなり過ぎるのを防止するために、ゼロ以上の適当な実数値に設定される調整パラメータである。また、Iは単位行列である。
【0009】
上記式(2)により擬似逆行列A*を求めるようにした場合には、調整パラメータkの値を適切に設定することで、上記行列式DETの大きさが小さくなり過ぎるのを防止し、ひいては、擬似逆行列A*が発散するのを防止することが可能となる。
【先行技術文献】
【特許文献】
【0010】
【特許文献1】特開2006−150567号公報
【非特許文献】
【0011】
【非特許文献1】Nakamura Y. and Hanafusa H.,“InverseKinematic Solutions with Singularity Robustness for Robot Manipulator Control”,Journal of Dynamic Systems,Measurement and Contro,Vol.108,Sept,(1986).pp.163-171.
【発明の概要】
【発明が解決しようとする課題】
【0012】
ところで、前記行列式DET(≡det(A・AT+k・I))の大きさが小さくなり過ぎないようにするための適切な調整パラメータkの値は行列Aに依存して変化する。また、行列式DETの大きさは、kの値の変化に対して非線形な変化を呈する。
【0013】
このため、上記行列式DETの絶対値が前記所定の閾値以上となる(過小にならない)ようにし得る調整パラメータkの値は、一般には、探索的な処理によって決定されることとなる。
【0014】
例えば、kの暫定値をあらかじめ定めた所定量ずつ、所定の初期値から段階的に増加させていくように設定することと、設定した各暫定値を用いて前記行列式DETの値を算出することと、算出した行列式DETの絶対値が所定の閾値以上の値であるか否かを判断することとを繰り返し、該判断結果が肯定的となったときのkの暫定値を、前記式(2)により擬似逆行列A*を算出するために用いる調整パラメータkの値として決定する。
【0015】
しかるに、このように調整パラメータkの値を探索的に決定する処理においては、kの暫定値の増加量を一定値としておくと、次のような不都合が生じることが本願発明者の検討により判明した。
【0016】
すなわち、擬似逆行列A*は、ロボットの各関節の動作状態を制御するための操作量を逐次決定する演算処理で使用されるものであるから、被疑逆行列A*を算出するために使用する調整パラメータkの値は、制御装置の各制御処理周期において、迅速に決定することが望ましい。
【0017】
しかるに、適切なkの値をできるだけ迅速に決定し得るようにするために、kの暫定値の増加量を比較的大きめの値に設定しておくと、ロボットの制御装置の制御処理周期毎に決定されるkの値が頻繁に変動しやすい。ひいては、このkの値を用いて制御処理周期毎に算出される擬似逆行列A*の不連続的な変動が生じるために、ロボットの各関節の動作状態を制御するための操作量も不連続的な変動を生じやすい。その結果、ロボットの動作の滑らかさが損なわれてしまうという不都合がある。
【0018】
そして、制御処理周期毎に決定されるkの値が頻繁に変動することを抑制するために、上記と逆に、kの暫定値の増加量を比較的小さめの値に設定しておくと、適切なkの値が最終的に決定されるまでに時間がかかり過ぎる恐れがある。ひいては、ロボットの制御装置の制御処理周期内で適切なkの値を決定することができなくなる恐れがある。その結果、ロボットの制御装置の制御処理周期の短縮化を図ることが困難となり、ひいては、ロボットの素早い動作を行なうことが困難となるという不都合がある。
【0019】
本発明は、かかる背景に鑑みてなされたものであり、ロボットの各関節の動作状態の制御のための操作量を、擬似逆行列を用いる演算処理によって決定する場合に、その擬似逆行列を算出するために用いる適切なパラメータの値を効率よく短時間で決定するようにすることができる装置を提供することを目的とする。
【課題を解決するための手段】
【0020】
本発明のロボットの制御装置は、上記の目的を達成するために、複数の関節を介して相互に連結された複数のリンク要素を備えるロボットの制御装置であって、
前記ロボットのあらかじめ定められた所定種類の状態量の値を目標値に制御するための操作量としてのベクトルであって、M個(M:1以上の整数)の成分により構成される基本操作量ベクトル↑aを少なくとも前記所定種類の状態量の目標値に応じて逐次決定する基本操作量決定手段と、
前記ロボットの各関節の動作状態を制御するための操作量としてのベクトルであって、N個(N:N≧Mとなる整数)の成分により構成されると共に前記基本操作量ベクトル↑aとの間に次式(3)により示される線形写像の関係を有する関節操作量ベクトル↑bを、前記決定された基本操作量ベクトル↑aの値に、次式(3)の行列Aの擬似逆行列A*を乗じることにより逐次決定する関節操作量決定手段と、

↑a=A・↑b ……(3)

少なくとも前記決定された関節操作量ベクトル↑bに応じて前記ロボットの各関節の動作状態をアクチュエータを介して制御する関節制御手段とを備えており、
前記関節操作量決定手段は、少なくとも前記ロボットの各関節の現在の動作状態に応じて前記行列Aを決定する行列決定手段と、その決定された行列Aとあらかじめ設定された重み係数行列W(W:対角行列)と調整パラメータk(k:ゼロ以上の実数値)の値とを用いて次式(4)により前記擬似逆行列A*を算出する擬似逆行列算出手段と、該式(4)の演算に用いる前記調整パラメータkの値を、次式(5)により表される行列式DETの絶対値が所定の閾値以上の値になるように決定する調整パラメータ決定手段とを備えており、

*=W-1・AT・(A・W-1・AT+k・I)-1 ……(4)
DET=det(A・W-1・AT+k・I) ……(5)

前記調整パラメータ決定手段は、前記調整パラメータkの暫定値を所定の初期値から段階的に増加させていくように設定することと、設定した各暫定値を用いて前記行列式DETの値を算出することと、算出した行列式DETの絶対値が前記所定の閾値以上の値であるか否かを判断することとを繰り返し、該判断結果が肯定的となったときのkの暫定値を、前記式(4)の演算に用いる擬似逆行列演算パラメータkの値として決定する手段であると共に、前記判断結果が否定的である場合のkの暫定値の増加量を、その増加前の暫定値を用いて算出した行列式DETの絶対値と前記所定の閾値との偏差の絶対値のn乗根(n:A・W-1・ATの次数)に比例する値に設定することを特徴とする(第1発明)。
【0021】
なお、上記式(4)における“I”は単位行列である。また、重み係数行列Wは、各関節の動作状態の制御に応じた前記所定種類の状態量の変化の応答性や感度を調整するものである。この重み係数行列Wは単位行列であってもよい。該重み係数行列Wとして単位行列を採用した場合には、上記式(4)、(5)は、それぞれ、次式(4a),(5a)と等価になる。
【0022】

*=AT・(A・AT+k・I)-1 ……(4a)
DET=det(A・AT+k・I) ……(5a)

従って、第1発明は、上記式(4a),(5a)によりそれぞれ擬似逆行列A*、行列式DETを算出する場合の態様を包含するものである。このことは、後述する第5発明においても同様である。
【0023】
上記第1発明によれば、前記基本操作量決定手段が、前記ロボットの所定種類の状態量の値を目標値に制御するための基本操作量ベクトル↑aを少なくとも前記所定種類の状態量の目標値に応じて逐次決定する。この基本操作量ベクトル↑aは、前記式(3)により表される線形写像によって、ある関節操作量ベクトル↑bの関数値となるベクトルである。
【0024】
なお、本明細書では、“↑”は、ベクトル(縦ベクトル)を表現する記号として用いる。
【0025】
そして、前記関節操作量決定手段が、上記基本操作量ベクトル↑aから関節操作量ベクトル↑bを逐次決定する。より詳しくは、関節操作量決定手段は、行列Aと調整パラメータkとをそれぞれ、前記行列決定手段、前記調整パラメータ決定手段により決定した上で、前記擬似逆行列算出手段によって、それらの行列Aと調整パラメータkと前記重み係数行列Wとを用いて前記式(4)の演算を行なうことで、擬似逆行列A*を決定する。さらに、関節操作量決定手段は、擬似逆行列A*を上記基本操作量ベクトル↑aに乗じることによって、関節操作量ベクトル↑bを決定する。
【0026】
そして、前記関節制御手段が、上記の如く決定された関節操作量ベクトル↑bに応じて前記ロボットの各関節の動作状態をアクチュエータを介して制御する。これにより、前記所定種類の状態量の値が目標値に制御されるように、ロボットの各関節の動作状態が制御されることとなる。
【0027】
かかる制御処理において、関節操作量決定手段は、瞬時瞬時の関節操作量ベクトル↑bを決定するために用いる擬似逆行列A*を算出するために、前記調整パラメータkの値を調整パラメータ決定手段により決定する。
【0028】
より詳しくは、調整パラメータ決定手段は、前記調整パラメータkの暫定値を所定の初期値から段階的に増加させていくように設定することと、設定した各暫定値を用いて前記行列式DETの値を算出することと、算出した行列式DETの絶対値が前記所定の閾値(>0)以上の値であるか否かを判断することとを繰り返し、該判断結果が肯定的となったときのkの暫定値を、前記式(4)の演算に用いる擬似逆行列演算パラメータkの値として決定する。これにより、行列式DETの絶対値を前記所定の閾値以上の値とし得るような調整パラメータkの値が探索的に決定される。
【0029】
ここで、本願発明者の知見によれば、A・W-1・ATの次数をnとしたとき、行列式DETの値は、kの値のn乗に比例して変化する。
【0030】
そこで、第1発明では、前記調整パラメータ決定手段の処理において、前記判断結果が否定的である場合のkの暫定値の増加量を、その増加前の暫定値を用いて算出した行列式DETの絶対値と前記所定の閾値との偏差の絶対値のn乗根(n:A・W-1・ATの次数)に比例する値に設定することとした。
【0031】
これにより、第1発明によれば、制御装置の制御処理周期毎に、擬似逆行列A*を算出するために用いる適切な調整パラメータkの値(DETの絶対値が所定の閾値以上となるkの値)を効率よく短時間で決定できると共に、擬似逆行列A*が滑らかに変化していくようにすることができる。ひいては、ロボットの各関節の動作状態を滑らかに変化させるように、前記関節操作量ベクトル↑bを決定できることとなる。
【0032】
また、第1発明によれば、前記重み係数行列Wによって、各関節の動作状態の制御に応じた前記所定種類の状態量の変化の応答性や感度を調整することができる。
【0033】
上記第1発明においては、前記所定種類の状態量として、種々様々な状態量を採用することができる。例えば、該所定種類の状態量は、前記ロボットの特定部位の運動の状態量と、前記ロボットに作用する外力とのうちの少なくともいずれか一方を含むものとすることができる(第2発明)。
【0034】
この第2発明によれば、ロボットの特定部位の運動の状態量(例えば、特定部位の空間的な位置、姿勢、あるいは、それらの変化速度)や、ロボットに作用する外力(例えば床反力等の接触力)を所望の目標値に制御することができる。なお、上記特定部位は、ロボットを構成する任意のリンク要素でよいことはもちろんであるが、ロボットの全体重心点であってもよい。
【0035】
また、上記第1発明又は第2発明においては、前記基本操作量ベクトル↑a及び関節操作量ベクトル↑bとしては、例えば次のような形態の操作量ベクトルを採用することができる。
【0036】
すなわち、一例として、前記基本操作量ベクトル↑aは、前記ロボットの特定部位の運動状態を規定する操作量成分により構成されたベクトルとされ、前記関節操作量ベクトル↑bは、前記ロボットの各関節の変位量を規定する操作量成分により構成されたベクトルとされる(第3発明)。
【0037】
あるいは、他の例として、前記基本操作量ベクトル↑aは、前記ロボットに作用する外力を規定する操作量成分により構成されたベクトルとされ、前記関節操作量ベクトル↑bは、前記ロボットの各関節の駆動力を規定する操作量成分により構成されたベクトルとされる(第4発明)。
【0038】
上記第3発明によれば、前記ロボットの各関節の変位量の制御(所謂、位置制御)によって、該ロボットの所望の動作を実現できる。また、第4発明によれば、前記ロボットの各関節の駆動力の制御(所謂、力制御)によって、該ロボットの所望の動作を実現できる。
【0039】
ところで、ロボットの制御装置における演算処理で算出することが必要となる擬似逆行列は、前記基本操作量ベクトル↑aと関節操作量ベクトル↑bとの間の関係を直接的に規定する行列Aの擬似逆行列A*に限られるものではなく、ロボットの各関節の動作状態を制御するための操作量を決定する過程の中間的な演算処理において、ある線形写像を表す行列の擬似逆行列を算出することが必要となる場合もある。
【0040】
そして、前記第1発明に関して説明した擬似逆行列の決定技術は、前記第1発明における行列A以外の行列の擬似逆行列を算出する場合にも適用できる技術である。
【0041】
そこで、本発明のロボットの制御装置は、より一般化した態様として、複数の関節を介して相互に連結された複数のリンク要素を備えるロボットの制御装置であって、
線形写像を表す行列Aの擬似逆行列A*を使用する演算処理によって、前記ロボットの各関節の動作状態を制御するための操作量を逐次決定する関節操作量決定手段と、
決定された前記操作量に応じて前記ロボットの各関節の動作状態をアクチェータを介して制御する関節制御手段とを備えており、
前記関節操作量決定手段は、前記行列Aとあらかじめ設定された重み行列W(W:対角行列)と調整パラメータk(k:ゼロ以上の実数値)の値とを用いて前記式(4)により前記擬似逆行列A*を算出する擬似逆行列算出手段と、該式(4)の演算に用いる前記調整パラメータkの値を、前記式(5)により表される行列式DETの絶対値が所定の閾値以上の値になるように決定する調整パラメータ決定手段とを備えており、
前記調整パラメータ決定手段は、前記調整パラメータkの暫定値を所定の初期値から段階的に増加させていくように設定することと、設定した各暫定値を用いて前記行列式DETの値を算出することと、算出した行列式DETの絶対値が前記所定の閾値以上の値であるか否かを判断することとを繰り返し、該判断結果が肯定的となったときのkの暫定値を、前記式(4)の演算に用いる擬似逆行列演算パラメータkの値として決定する手段であると共に、前記判断結果が否定的である場合のkの暫定値の増加量を、その増加前の暫定値を用いて算出した行列式DETの絶対値と前記所定の閾値との偏差の絶対値のn乗根(n:A・W-1・ATの次数)に比例する値に設定することを特徴とする(第5発明)。
【0042】
上記第5発明によれば、前記関節操作量決定手段は、線形写像を表す行列Aの擬似逆行列A-1を使用する演算処理によって、前記ロボットの各関節の動作状態を制御するための操作量を逐次決定する。より詳しくは、関節操作量決定手段は、前記擬似逆行列算出手段によって、上記行列Aと調整パラメータkと前記重み係数行列Wとを用いて前記式(4)の演算を行なうことで、擬似逆行列A*を決定する。さらに、関節操作量決定手段は、擬似逆行列A*を使用する演算処理によって、前記ロボットの各関節の動作状態を制御するための操作量を決定する。
【0043】
そして、前記関節制御手段が、上記の如く決定された操作量に応じて前記ロボットの各関節の動作状態をアクチュエータを介して制御する。これにより、ロボットの各関節の動作状態が制御されることとなる。
【0044】
かかる制御処理において、関節操作量決定手段は、瞬時瞬時の前記操作量を決定するために用いる擬似逆行列A*を算出するために、前記調整パラメータkの値を調整パラメータ決定手段により決定する。
【0045】
この調整パラメータ決定手段の処理は、前記第1発明と全く同様に行なわれる。これにより、第5発明によれば、第1発明と同様に、制御装置の制御処理周期毎に、擬似逆行列A*を算出するために用いる適切な調整パラメータkの値(DETの絶対値が所定の閾値以上となるkの値)を効率よく短時間で決定できると共に、擬似逆行列A*が滑らかに変化していくようにすることができる。ひいては、ロボットの各関節の動作状態を滑らかに変化させるように、前記操作量を決定できることとなる。
【0046】
また、第5発明によれば、前記重み係数行列Wによって、各関節の動作状態の制御に応じたロボットの動作の変化の応答性や感度を調整することができる。
【0047】
補足すると、以上説明した本発明におけるロボットは、設置型のロボット及び移動ロボットのいずれの形態のロボットであってもよい。
【図面の簡単な説明】
【0048】
【図1】本発明の実施形態におけるロボットの概略構成を示す図。
【図2】図1のロボットの制御に関する構成を示すブロック図。
【図3】図2に示す制御装置の第1実施形態における機能を示すブロック図。
【図4】図3に示す擬似逆行列算出部における処理を示すフローチャート。
【図5】図2に示す制御装置の第2実施形態における機能を示すブロック図。
【図6】図5に示す基本操作量決定部における処理を示すフローチャート。
【図7】図5に示す擬似逆行列算出部における処理を示すフローチャート。
【発明を実施するための形態】
【0049】
[第1実施形態]
本発明の第1実施形態を図1〜図4を参照して以下に説明する。
【0050】
図1を参照して、本実施形態で例示するロボット1は、設置型の作業ロボットである。このロボット1は、床上に設置された基台2から順番に連接された複数(N個)のアーム状の要素リンク3(1)〜3(N)と、これらの基台2及び要素リンク3(1)〜3(N)の相互の連結部分に設けられた複数(N個)の関節4(1)〜4(N)とを備えている。そして、最も先端側の要素リンク3(N)の先端部には、ハンド部5が取付けられている。
【0051】
要素リンク3(1)〜3(N)及び関節4(1)〜4(N)の個数Nは、例えば6個である。ただし、それらの個数Nは、6個に限られるものではなく、他の個数(例えば4個、7個等)であってもよい。
【0052】
以降の説明では、要素リンク3(1)〜3(N)のそれぞれを区別する必要がないときは、要素リンク3(1)〜3(N)のそれぞれを総称的に要素リンク3(i)(i=1,2,…,N)又は要素リンク3という。同様に、関節4(1)〜4(N)のそれぞれを区別する必要がないときは、関節4(1)〜4(N)のそれぞれを総称的に関節を4(i)(i=1,2,…,N)又は関節4という。
【0053】
詳細な図示は省略するが、各関節4は、本実施形態では、1軸周りの回転自由度を有する公知の構造の関節である。各関節4は、それぞれに対応してロボット1に備えられている関節アクチュエータ6(図2に示す)から、図示しない減速機等の動力伝達機構を介して駆動力(回転駆動力)が伝達されるように、該関節アクチュエータ6に接続されている。各関節アクチュエータ6は、例えば電動モータにより構成されたアクチュエータである。
【0054】
そして、関節4のそれぞれを関節アクチュエータ6により駆動することで、ハンド部5の空間的な運動が行なわれるようになっている。このハンド部5の運動によって、該ハンド部5を接触させた対象物Wを動かす等の作業を行なうことが可能となっている。
【0055】
なお、関節アクチュエータ6は、電動モータに限らず、油圧式のアクチュエータにより構成されていてもよい。さらには、関節アクチュエータ6は、回転型に限らず、直動型のアクチュエータであってもよい。
【0056】
ロボット1の動作制御のための構成として、図2に示すように、各関節4の変位量(実施形態では回転角度)を計測するための関節変位センサ7と、ハンド部5に作用する外力を計測するための力センサ8と、制御装置9とが備えられている。
【0057】
関節変位センサ7は、各関節4(又は各関節アクチュエータ6)に搭載されたロータリエンコーダやポテンショメータ等のセンサにより構成され、各関節4の変位量(回転角度)に応じた信号を制御装置9に出力する。また、力センサ8は、例えば要素リンク3(N)の先端部とハンド部5との間に介装された6軸力センサにより構成され、ハンド部5に作用する力(並進力及びモーメント)に応じた信号を制御装置9に出力する。なお、力センサ8は、特定成分の力(例えば1軸方向の並進力等)だけを検出するセンサであってもよい。
【0058】
制御装置9は、図示しないCPU、RAM、ROM、インターフェース回路等から構成された電子回路ユニットである。図3に示すように、この制御装置9は、実装されたプログラム等により実現される機能として、ロボット1の基準動作目標を出力する基準動作目標出力部10と、ロボット1の所定種類の状態量の実際の値(実状態量)を所要の目標値に制御する(追従させる)ための制御入力(操作量)としての基本操作量ベクトル↑ΔXdmdを決定する基本操作量決定部11と、この基本操作量ベクトル↑ΔXdmdから、各関節4の変位量(本実施形態では回転角度)を制御するための制御入力(操作量)としての関節操作量ベクトル↑ΔΘdmdを決定する関節操作量決定部12と、基準動作目標により規定される関節4(1)〜4(N)のそれぞれの変位量の基準目標値θ(1)cmd0〜θ(N)cmd0(以下、基準目標変位量θ(1)cmd0〜θ(N)cmd0という)を関節操作量ベクトル↑ΔΘdmdにより修正してなる修正後目標変位量θ(1)cmd1〜θ(N)cmd1を関節4(1)〜4(N)のそれぞれの変位量の最終的な指令値(以下、関節変位指令という)として決定し、この関節変位指令θ(1)cmd1〜θ(N)cmd1に関節4(1)〜4(N)のそれぞれの実際の変位量(実変位量)を追従させるように各関節アクチュエータ6を図示しない駆動回路を介して制御する関節制御部15とを備える。そして、制御装置9は、これらの機能部の処理を所定の制御処理周期で逐次実行することによって、ロボット1の動作制御を行う。
【0059】
以下に、ハンド部5により対象物Wを動かす作業をロボット1に行わせる場合を例にとって、上記各機能部の詳細な処理を含めて制御装置9の制御処理を説明する。
【0060】
制御装置9の各制御処理周期において、基準動作目標出力部10からロボット1の基準動作目標が出力される。この基準動作目標は、本実施形態では、ロボット1に所要の作業を行わせるためにあらかじめ作成されたティーチングデータである。該基準動作目標は、例えば、ロボット1のN個の関節4(1)〜4(N)のそれぞれの基準目標変位量θ(1)cmd0〜θ(N)cmd0の軌道と、ハンド部5の位置↑Xの基準の目標位置である基準目標ハンド部位置↑Xcmd0の軌道と、ハンド部5を接触させる対象物Wからハンド部5に作用する外力↑F(接触力)の基準の目標値である基準目標ハンド部外力↑Fcmd0の軌道とから構成される。
【0061】
なお、上記「軌道」は瞬時値の時系列を意味する。また、以降の説明では、ロボット1のN個の関節4(1)〜4(N)のそれぞれの基準目標変位量θ(1)cmd0〜θ(N)cmd0を並べたベクトル(縦ベクトル)を基準目標変位量ベクトル↑Θcmd0(≡[θ(1)cmd0,θ(2)cmd0,……,θ(N)cmd0]T)と称する。
【0062】
基準動作目標の各構成要素は、制御装置9の記憶装置にあらかじめ記憶保持され、あるいは、外部から無線通信により制御装置9に与えられる。そして、基準動作目標出力部10は、記憶装置から読み出した基準動作目標の各構成要素、あるいは、外部から与えられた基準動作目標の各構成要素を逐次出力する。
【0063】
ここで、基準目標ハンド部位置↑Xcmd0は、より詳しくは、ハンド部5の代表点(ハンド部5に対して固定された点)の空間的な位置の目標を意味している。そして、基準目標ハンド部位置↑Xcmd0は、その位置等を表現するための座標系としてあらかじめ定められた慣性座標系(図1を参照)で見た3成分の位置ベクトル(縦ベクトル)として表記されるものである。該慣性座標系は、本実施形態では、ロボット1が設置された床に対して固定された3軸座標系(XYZ座標系)である。
【0064】
また、基準目標ハンド部外力↑Fcmd0は、本実施形態では、より詳しくは、ハンド部5に対象物Wから作用する並進力(ベクトル)の目標であり、上記慣性座標系で見た3成分のベクトル(縦ベクトル)として表記されるものである。
【0065】
補足すると、基準目標ハンド部位置↑Xcmd0の軌道は、N個の関節4(1)〜4(N)のそれぞれの基準目標変位量θ(1)cmd0〜θ(N)cmd0の組、すなわち基準目標変位量ベクトル↑Θcmd0の軌道から幾何学的演算によって一義的に算出し得るものである。従って、↑Xcmd0の軌道は、基準動作目標の構成要素から除外するようにしてもよい。また、↑Θcmd0、↑Xcmd0、↑Fcmd0のそれぞれの軌道の代わりに、その軌道を規定する演算式のパラメータ等を基準動作目標の構成要素とするようにしてもよい。
【0066】
次いで、制御装置9は、基本操作量決定部11の処理を実行する。この基本操作量決定部11には、基準動作目標出力部10から出力される基準動作目標の構成要素のうちの基準目標ハンド部位置↑Xcmd0と基準目標ハンド部外力↑Fcmd0とが入力されると共に、各関節4毎の前記関節変位センサ7の出力により示される関節4(1)〜4(N)のそれぞれの実変位量θ(1)act〜θ(N)actの計測値と、前記力センサ8の出力により示される実外力↑Fact(ハンド部5に作用する実際の並進外力)の計測値とが入力される。以降、ロボット1の関節4(1)〜4(N)のそれぞれの実変位量θ(i)act(i=1,2,…,N)を並べたベクトル(縦ベクトル)を実変位量ベクトル↑Θact(≡[θ(1)act,θ(2)act,……,θ(N)act]T)と称する。
【0067】
なお、基準目標ハンド部位置↑Xcmd0の代わりに、基準目標変位量ベクトル↑Θcmd0を基本操作量決定部11に入力し、この↑Θcmd0から↑Xcmd0を基本操作量決定部11で算出するようにしてもよい。
【0068】
基本操作量決定部11は、入力されたデータを用いて、ロボット1の所定種類の状態量の実際の値(実状態量)を、所要の目標値に制御する(追従させる)ための基本操作量ベクトル↑ΔXdmdを決定する。
【0069】
本実施形態では、制御の対象たる上記所定種類の状態量として、例えば、ハンド部5の位置↑Xと、ハンド部5に作用する外力↑Fとの組を用いる。そして、基本操作量決定部11が決定する基本操作量ベクトル↑ΔXdmdは、ハンド部5の位置↑Xの修正量である。従って、この基本操作量ベクトル↑ΔXdmdは、基準目標ハンド部位置↑Xcmd0と同様に、前記慣性座標系の3成分のベクトルとして表現されるものである。
【0070】
本実施形態では、基本操作量決定部11は、ハンド部5の実際の位置↑Xactと、ハンド部5に作用する実外力↑Factとを、それぞれ基準目標ハンド部位置↑Xcmd0、基準目標ハンド部外力↑Fcmd0に追従させるように、制御入力(操作量)としての基本操作量ベクトル↑ΔXdmdを決定する。
【0071】
具体的には、基本操作量決定部11は、基本操作量ベクトル↑ΔXdmdを、次式(6a),(6b)により決定される操作量成分↑ΔXa,↑ΔXbを次式(6)で示す如く加え合わせることによって決定する。
【0072】

↑ΔXdmd=↑ΔXa+↑ΔXb ……(6)
ただし、
↑ΔXa=Kp1・(↑Xcmd0−↑Xact)+Kv1・(↑Xcmd0'−↑Xact')
……(6a)
↑ΔXb=Ks1・↑Fcmd0+Kc1・(↑Fcmd0−↑Fact)
+Ke1・∫(↑Fcmd0−↑Fact)dt ……(6b)

ここで、式(6a)により算出される操作量成分↑ΔXaは、本実施形態における所定種類の状態量のうちのハンド部5の実際の位置↑Xactを、基準目標ハンド部位置↑Xcmd0に追従させるための操作量である。
【0073】
この場合、式(6a)の右辺第1項は、↑Xcmd0と↑Xact(計測値)との偏差に所定の比例ゲインKp1を乗じてなる比例項、右辺第2項は、↑Xcmd0の時間的変化率↑Xcmd0'(ハンド部5の目標並進速度)と↑Xactの時間的変化率↑Xact'(ハンド部5の実際の並進速度)との偏差に所定の微分ゲインKv1を乗じてなる微分項である。
【0074】
従って、本実施形態では、操作量成分↑ΔXbは、↑Xcmd0と↑Xact(計測値)との偏差をゼロに近づけるようにフィードバック制御則としてのPD則(比例・微分則)により決定されるフィードバック操作量である。
【0075】
なお、式(6b)の演算に使用する↑Xactの計測値は、関節4の実変位量ベクトル↑Θactの計測値から算出される。また、↑Xcmd0'、↑Xact'はそれぞれ、↑Xcmd0の時系列、↑Xactの計測値の時系列から算出される。また、Kp1、Kv1は、それぞれ、その値があらかじめ定められたスカラー又は対角行列である。
【0076】
また、式(6b)により算出される操作量成分↑ΔXbは、本実施形態における所定種類の状態量のうち、ハンド部5に作用する実外力↑Factを、基準目標ハンド部外力↑Fcmd0に追従させるための操作量である。
【0077】
この場合、式(6b)の右辺第1項は、↑Fcmd0に所定のフードフォワードゲインKs1を乗じてなるフィードフォワード項である。また、式(6b)の右辺第2項は、↑Fcmd0と↑Factの計測値との偏差に所定の比例ゲインKc1を乗じてなる比例項、右辺第3項は、↑Fcmd0と↑Factの計測値との偏差の積分値に所定の積分ゲインKe1を乗じてなる積分項である。
【0078】
従って、本実施形態では、操作量成分↑ΔXaは、↑Fcmd0に応じたフィードフォワード項と、↑Fcmd0と↑Factの計測値との偏差をゼロに近づけるようにフィードバック制御則としてのPI則(比例・積分則)により求めたフィードバック項とを合成してなる操作量である。
【0079】
なお、式(6b)の演算に使用するKs1、Kc1、Ke1は、それぞれ、その値があらかじめ定められたスカラー又は対角行列である。
【0080】
基本操作量決定部11は、上記の如く決定した操作量成分↑ΔXaと↑ΔXbとを加え合わせたものを基本操作量ベクトル↑ΔXdmdとして決定する。
【0081】
これにより、基本操作量ベクトル↑ΔXdmdは、ハンド部5の実際の位置↑Xactと、実外力↑Factとをそれぞれ、基準目標ハンド部位置↑Xcmd0、基準目標ハンド部外力↑Fcmd0に追従させるように機能する操作量ベクトルとして決定されることとなる。
【0082】
補足すると、例えば操作量成分↑ΔXa,↑ΔXbの一方を省略し、他方を基本操作量ベクトル↑ΔXdmdとして決定するようにしてもよい。基本操作量ベクトル↑ΔXdmdは、ロボット1の制御したい状態量に応じて適宜決定するようにすればよい。
【0083】
さらには、ハンド部5の位置↑Xや外力↑Fの目標値は、それぞれ、必要に応じて↑Xcmd0、↑Fcmd0から動的にずらすようにしてもよい。
【0084】
また、操作量成分↑ΔXaをPD則以外のフィードバック制御則、例えば比例則により決定するようにしてもよい。また、操作量成分↑ΔXbのフィードバック項をPI則以外のフィードバック制御則、例えば比例則により決定するようにしてもよい。
【0085】
また、本実施形態では、制御しようとする所定種類の状態量をハンド部5の位置↑X及び外力↑F(並進外力)としたが、ハンド部5の姿勢や、ハンド部5に作用する外力のうちのモーメント成分を当該状態量に含めるようにしてもよい。
【0086】
上記の如く基本操作量決定部11の処理を実行した後、次に制御装置9は、関節操作量決定部12の処理を実行する。
【0087】
この関節操作量決定部12には、各関節4毎の関節変位センサ7の出力により示される関節4(1)〜4(N)のそれぞれの実変位量θ(1)act〜θ(N)actの計測値(実変位量ベクトル↑Θactの計測値)と、基本操作量決定部11で決定された基本操作量ベクトル↑ΔXdmdとが入力される。
【0088】
そして、関節操作量決定部12は、入力されたデータを用いて、関節4(1)〜4(N)のそれぞれの変位量を制御するための関節操作量ベクトル↑ΔΘdmdを決定する。この関節操作量ベクトル↑ΔΘdmdは、本実施形態では、ロボット1のN個の関節4(1)〜4(N)のそれぞれの変位量の修正量(増減操作量)Δθ(1)〜Δθ(N)を並べたベクトル(≡[Δθ(1),Δθ(2),……,Δθ(N)]T)である。
【0089】
関節操作量決定部12は、その処理の構成要素として、ヤコビアン行列決定部13と、擬似逆行列算出部14とを備えている。そして、関節操作量決定部12は、まず、これらのヤコビアン行列算出部13、擬似逆行列算出部14の処理を順次実行する。
【0090】
ヤコビアン行列決定部13は、関節4(1)〜4(N)の変位量θ(1)〜θ(N)を並べたベクトル(縦ベクトル)である関節変位量ベクトル↑Θ(≡[θ(1),θ(2),……,θ(N)]T)の単位時間当たりの微小変化量↑ΔΘ(=d↑Θ/dt)と、それに応じたハンド部5の位置↑Xの単位時間当たりの変化量↑ΔX(=d↑X/dt)との間の線形写像関係を、次式(7)により表す行列としてのヤコビアン行列Jを決定する処理を実行するものである。
【0091】

↑ΔX=J・↑ΔΘ ……(7)

なお、↑ΔΘは、より詳しくは、ロボット1の現在の動作状態を起点とする単位時間当たりの変化量である。
【0092】
かかるヤコビアン行列Jは、本実施形態では、各関節4毎の関節変位センサ7の出力により示される関節4(1)〜4(N)のそれぞれの実変位量θ(1)act〜θ(N)actの現在の計測値(実変位量ベクトル↑Θactの現在の計測値)を関節変位量ベクトル↑Θの微小変化(摂動)の起点として、公知の手法によって決定される。例えば、ロボット1の幾何学モデル(剛体リンクモデル)を用いて、あるいは、解析的な演算によって、関節変位量ベクトル↑Θの各成分の微小変化(現在の実変位量の計測値からの微小変化)に対するハンド部5の位置↑Xの変化を算出することで、ヤコビアン行列Jが決定される。
【0093】
なお、本実施形態では、↑ΔXは、ハンド部5の空間的な位置の変化量であるから3次のベクトルである。さらに、↑ΔΘは、N次(本実施形態では例えば6次)のベクトルである。従って、ヤコビアン行列Jは正方行列ではない。
【0094】
上記のごとくヤコビアン行列決定部13により決定されたヤコビアン行列Jの擬似逆行列J*が、次に、擬似逆行列算出部14の処理によって算出される。
【0095】
この場合、擬似逆行列算出部14は、前記式(4)の行列Aにヤコビアン行列Jを代入してなる式によって算出される重み付きの擬似逆行列(重み付きのSR−Inverse)A*を、ヤコビアン行列Jの擬似逆行列J*として決定する。
【0096】
具体的には、擬似逆行列J*を算出する処理は、式(4)の演算に必要な調整パラメータkの値の決定処理を含めて、図4のフローチャートに示す如く実行される。
【0097】
まずSTEP1において、式(4)の行列Aとしてヤコビアン行列Jが代入されると共に、該行列Aの転置行列ATと、重み係数行列Wの逆行列W-1とが算出される。なお、重み係数行列Wは、本実施形態ではその各対角成分(重み係数)の値があらかじめ定められた対角行列である。ただし、ロボット1の動作状態に応じて適宜、重み係数行列Wの各対角成分の値を変化させるようにしてもよい。
【0098】
次いでSTEP2において、調整パラメータkの候補値の初期値として、kの値の標準値であるゼロが設定される。
【0099】
次いで、STEP3において、調整パラメータkの現在の候補値を用いて、前記式(5)により行列式DETの値が算出される。
【0100】
次いで、STEP4において、この行列式DETの大きさ(絶対値)が、あらかじめ定められた所定の下限閾値DET_L(>0)よりも小さいか否か(DETの大きさが過小であるか否か)が判断される。
【0101】
このSTEP4の判断結果が否定的である場合(DETの大きさが過小でない適切な大きさである場合)には、STEP10の処理が実行される。この処理では、kの現在の候補値が調整パラメタータkの値として確定され、この調整パラメータkの値を用いて、前記式(4)の演算により、擬似逆行列A*が算出される。そして、STEP11において、この擬似逆行列A*がヤコビアン行列Jの擬似逆行列J*として決定される。
【0102】
一方、STEP4の判断結果が肯定的である場合(DETの大きさが過小である場合)には、STEP5〜8の処理(詳細は後述する)によって調整パラメータkの候補値の増加量Δk(>0)が決定される。そして、STEP9において、調整パラメータkの候補値が、現在値から上記増加量Δkだけ増加させた値に更新される。以降、STEP4の判断結果が否定的となるまで、STEP3〜9の処理が繰り返される。これにより、行列式DETの大きさが所定の下限閾値DET_L以上の適切な大きさとなるような調整パラメータkの値が探索的に決定される。
【0103】
上記増加量Δkの決定処理を以下に説明する。行列式DETの大きさが所定の下限閾値DET_L以上の適切な大きさとなるような調整パラメータkの値を探索的に決定する処理では、例えば、調整パラメータkの候補値の増加量Δkをあらかじめ定めた一定値として、調整パラメータkの候補値を更新することが一般的に考えられる。
【0104】
ただし、その場合、増加量Δkを大きめの値に設定しておくと、k=0として算出した前記行列式DETの大きさが過小となる状況で、制御装置9の各演算処理周期で逐次決定されるkの値が、Δkの整数倍の刻み幅の離散的な値となるために、DET≧DET_Lとなるような最小のkの値に対して必要以上に過大な値となりやすい。このため、制御装置9の各制御処理周期で逐次決定されるkの値に対応する行列式DETの大きさと前記下限閾値DET_Lとの差のばらつきを生じやすい。ひいては、前記式(8)により決定した擬似逆行列J*を用いて後述する如く関節操作量ベクトル↑ΔΘdmdを決定した場合に、関節操作量ベクトル↑ΔΘdmdの不連続的な変動が生じやすい。その結果、ロボット1の動作の滑らかさが損なわれることがある。
【0105】
一方、増加量Δkを十分に小さい値に設定することで、上記の不都合を解消することができる。ただし、その場合、前記STEP4の判断結果が否定的となる適切な調整パラメータkの値が決定されるまでに要する時間が長くなりやすい。このため、制御装置9の各制御処理周期の時間内で適切な調整パラメータkの値を決定できない場合が生じる恐れがある。
【0106】
そこで、STEP5〜8の処理においては、調整パラメータkの候補値の増加量Δkを、STEP3で算出した行列式DETの大きさと、前記下限閾値DET_Lとの偏差の大きさに応じて、可変的に設定する。
【0107】
具体的には、STEP5において、次式(8)により算出される値が、調整パラメータkの増加量Δkの暫定値Δkpとして設定される。
【0108】

Δkp=G・(DET_L−|DET|)1/n ……(8)

すなわち、前記下限閾値DET_Lから行列式DETの絶対値を差し引いてなる偏差(=DET_L−|DET|)のn乗根に、所定値のゲインG(>0)を乗じてなる値(偏差(=DET_L−|DET|)のn乗根に比例する値)が増加量Δkの暫定値Δkpとして設定される。なお、nは行列(A・W-1・AT)の次数である(本実施形態ではn=N)。また、ゲインGの値は、あらかじめ定められた定数値である。
【0109】
このように増加量Δkの暫定値Δkpを決定するのは、次の理由による。行列式det(A・W-1・AT)の値(k=0の場合のDETの値)と、行列式DET(=det(A・W-1・AT+k・I))の値との差分は、kのn次関数(kn+a・kn-1+……という形の関数)となるので、kの値の変化に対する行列式DETの値の変化は、ほぼkn(kのn乗)に比例すると考えられる。そこで、本実施形態では、上記式(8)により算出される値を、増加量Δkの暫定値Δkpとして設定する。
【0110】
そして、STEP6〜8において、増加量Δkが過剰に小さい値になるのを防止するためのリミット処理が暫定値Δkpに対して施され、これにより増加量Δkが確定される。具体的には、STEP6において、増加量Δkの暫定値Δkpと所定の下限値Δkmin(>0)とが比較され、Δkp≧Δkminである場合には、STEP7において、暫定値Δkpがそのまま増加量Δkとして決定される。また、Δkp<Δkminである場合には、STEP8において、Δkminが増加量Δkとして決定される。
【0111】
これにより、増加量Δkは、Δkminを下限値として、行列式DETの大きさと、前記下限閾値DET_Lとの偏差の大きさに応じて前記式(8)により算出される値に決定されることとなる。
【0112】
擬似逆行列算出部14は、以上の如く決定した調整パラメータkの値を用いて、前記式(4)の右辺の演算により算出されるA*を、ヤコビアン行列Jの擬似逆行列J*として決定する。
【0113】
そして、関節操作量決定部12は、次に、この擬似逆行列J*と、入力された基本操作量ベクトル↑ΔXdmdとを用いて関節操作量ベクトル↑ΔΘdmdを決定する。
【0114】
具体的には、本実施形態では、関節操作量決定部12は、次式(9)により、↑ΔΘdmdを決定する。
【0115】

↑ΔΘdmd=J*・↑ΔXdmd+(I−J*・J)・↑C(θ) ……(9)

ここで、式(9)の右辺の第1項は、式(7)の左辺の↑ΔXが基本操作量ベクトル↑ΔXdmdである場合に、式(7)の関係が成立するような↑ΔΘの値(↑ΔXdmdを実現するために必要となる↑ΔΘの値)を求める項である。この第1項は、関節操作量決定部12に入力された基本操作量ベクトル↑ΔXdmdに、前記擬似逆行列算出部14により算出した擬似逆行列J*を乗じることによって算出される。
【0116】
また、式(9)の右辺の第2項は、各関節4の変位量が、極力、上限又は下限の変位量に近づき過ぎないようにするために、↑ΔXdmdにより実現しようとするハンド部5の位置に影響を及ぼさないような1つ以上の関節4の変位量を、上限の変位量と下限の変位量との間の中間の標準変位量(例えば、上限の変位量と下限の変位量との間の中央の変位量)に近づけていく機能を有する↑ΔΘの値を求める項である。
【0117】
換言すれば、該第2項は、所謂、Nullスペース(ヌル空間)を利用して、制御対象の状態(本実施形態ではハンド部5の位置)に影響を及ぼさないように変化させ得る関節4の変位量を、上記標準変位量に近づけていく機能を有する↑ΔΘの値を求める項である。
【0118】
この場合、式(9)の右辺の第2項の↑C(θ)は、関節4(1)〜4(N)の変位量θ(1)〜θ(N)の関数としてあらかじめ定義されたベクトル(↑ΔΘと同次数の縦ベクトル)である。具体的には、この↑C(θ)は、本実施形態では、その各成分c(i)(i=1,2,…,N)が、次式(10)により定義されるベクトルである。
【0119】

c(i)=dH(θ(i))/dθ(i) ……(10)
ただし、H(θ(i))≡α・(θ(i)−θ(i)s)2n

すなわち、↑C(θ)の各成分c(i)(i=1,2,…,N)は、式(10)のただし書きで定義した関数H(θ(i))をθ(i)で微分したものである。従って、本実施形態では、↑C(θ)は、その各成分c(i)(i=1,2,…,N)が次式(10a)により決定されるものである。
【0120】

c(i)=2n・α・(θ(i)−θ(i)s)2n-1 ……(10a)

この場合、式(10a)の右辺のθ(i)sは、関節4(i)の標準変位量としてあらかじめ定めれた値である。また、nは1以上の整数であり、例えばn=1である。また、αはあらじめ定めた正の定数である。
【0121】
そして、関節操作量決定部12は、前記式(9)の右辺の2項を算出するに際して、式(10a)のθ(i)(i=1,2,…,N)の値として、関節4(i)の実変位量θ(i)actの計測値を用いて該式(10a)により各c(i)を算出する。これにより、↑C(θ)(≡[c(1),c(2),……,c(N)]T)が決定される。
【0122】
このようにして決定される↑C(θ)は、各関節4(i)の変位量を、上限の変位量と下限の変位量との間の標準変位量に戻すような↑ΔΘの値となる。
【0123】
また、関節操作量決定部12は、ヤコビアン行列J及び擬似逆行列J*と単位行列Iとから行列(I−J*・J)を算出する。そして、関節操作量決定部12は、この行列(I−J*・J)を上記の如く決定したベクトル↑C(θ)に乗じることによって、前記式(9)の右辺の第2項を算出する。
【0124】
これにより、基本操作量ベクトル↑ΔXdmdによるハンド部5の位置の操作に影響を及ぼすことなく変化させ得る関節4の変位量を、上記標準変位量に近づけていく機能を有する↑ΔΘの値としての前記式(9)の右辺の第2項が算出されることとなる。
【0125】
関節操作量決定部12は、上記の如く算出した前記式(9)の右辺の第1項及び第2項を加え合わせることで、関節操作量ベクトル↑ΔΘdmdを決定する。
【0126】
これにより、基本操作量ベクトル↑ΔXdmdよるハンド部5の位置の操作を実現するための関節4(1)〜4(N)の変位量の修正量を示す関節操作量ベクトル↑ΔΘdmdが決定される。この場合、本実施形態では、関節操作量ベクトル↑ΔΘdmdのうち、基本操作量ベクトル↑ΔXdmdよるハンド部5の位置の操作に影響を及ぼさない関節4に対応する成分は、その関節4の変位量を前記標準変位量に近づけるような操作量(変位量の修正量)として決定される。
【0127】
補足すると、前記式(9)の右辺の第2項は、必須なものではなく、それを省略した式によって、関節操作量ベクトル↑ΔΘdmdを決定するようにしてもよい。すなわち、基本操作量ベクトル↑Xdmdに、擬似逆行列J*を乗じたもの(=J*・↑ΔXdmd)をそのまま関節操作量ベクトル↑ΔΘdmdとして決定するようにしてもよい。
【0128】
上記の如く関節操作量決定部12の処理を実行した後、次に制御装置9は、関節制御部15の処理を実行する。
【0129】
この関節制御部15には、前記基本動作目標のうち、関節4(1)〜4(N)の基準目標変位量θ(1)cmd0〜θ(N)cmd0の組、すなわち、基準目標変位量ベクトル↑Θcmd0と、関節操作量決定部12で決定された関節操作量ベクトル↑ΔΘdmdとが入力される。
【0130】
そして、関節制御部15は、入力された操作量決定部12は、基準目標変位量ベクトル↑Θcmd0に、関節操作量ベクトル↑ΔΘdmdを加え合わせることによって、基準目標変位量ベクトル↑Θcmd0を修正することで、関節4(1)〜4(N)のそれぞれの関節変位指令θ(1)cmd1〜θ(N)cmd1を並べたベクトル(≡[θ(1)cmd1,θ(2)cmd1,……,θ(N)cmd1]T)である関節変位指令ベクトル↑Θcmd1(=↑Θcmd0+↑ΔΘdmd)を算出する。
【0131】
そして、関節制御部15は、上記の如く決定した関節変位指令ベクトル↑Θcmd1の各成分θ(i)cmd1に各関節4(i)の実変位量θ(i)actを一致させるように、各関節4(i)の関節アクチュエータ6を図示しないサーボアンプ等の駆動回路を介して制御する。
【0132】
以上が、本実施形態における制御装置9の処理の詳細である。
【0133】
ここで、本実施形態と本発明との対応関係について補足しておく。本実施形態では、基本操作量決定部11、関節操作量決定部12、関節制御部15の処理によって、それぞれ、本発明における基本操作量決定手段、関節操作量決定手段、関節制御手段が実現される。
【0134】
また、ヤコビアン行例決定部13、擬似逆行列算出部14によりそれぞれ、本発明におえる行列決定手段、擬似逆行列算出手段が実現される。さらに、擬似逆行列算出部14が実行する図3の処理のうち、図4のSTEP2〜9の処理によって、本発明における調整パラメータ決定手段が実現される。
【0135】
そして、本実施形態では、前記基本操作量ベクトル↑ΔXdmd、関節操作量ベクトル↑ΔΘdmd、ヤコビアン行列J、擬似逆行列J*が、それぞれ本発明における基本操作量ベクトル↑a、関節操作量ベクトル↑b、行列A、擬似逆行列A*に相当する。
【0136】
以上説明した実施形態においては、関節操作量ベクトル↑ΔΘdmdを算出するための演算処理において、ヤコビアン行列Jの擬似逆行列J*が擬似逆行列算出部14により算出される。この場合、前記行列式DETの値が過小になるのを防止するための調整パラメータkの値を探索する処理(図4のSTEP2〜9の処理)において、調整パラメータkの増加量Δkを、下限閾値DET_Lから行列式DETの絶対値を差し引いてなる偏差(=DET_L−|DET|)のn乗根に比例する値に設定する。
【0137】
これにより、制御装置9の各制御処理周期において、|DET|≧DET_Lとなるようにするための適切な調整パラメータkの値を、該kの値の不連続な変動が生じないようにしつつ、効率よく短時間で決定できる。このため、基本操作量ベクトル↑Xdmdによるハンド部5の位置の操作を実現するための関節操作量ベクトル↑ΔΘdmdを決定するために用いる擬似逆行列J*を滑らかに変化させていくようにすることができる。ひいては、ロボット1の各関節4の変位量を滑らかに変化させるように、関節操作量ベクトル↑ΔΘdmdの各成分を決定できる。
【0138】
よって、ロボット1による作業を該ロボット1の滑らかな動きで実現できる。
【0139】
[第2実施形態]
次に、本発明の第2実施形態を図5を参照して以下に説明する。なお、本実施形態は、前記第1実施形態と制御装置9の処理だけが相違するので、その相違する事項を中心に説明する。そして、第1実施形態と同じ事項については説明を省略する。
【0140】
前記第1実施形態は、ロボット1の各関節4の変位量を目標値に制御する位置制御を行うものである。これに対して、本実施形態では、所定種類の状態量を目標値に制御するためにロボット1の各関節4の目標駆動力を決定し、これに応じて、関節アクチュエータ6によって各関節4に付与される駆動力を、当該目標駆動力に追従させるように各関節4の関節アクチュエータ6の制御を行うものである。
【0141】
このような制御を行うために、本実施形態における制御装置9は、実装されたプログラム等により実現される機能として、ロボット1の基準動作目標を出力する基準動作目標出力部20と、ロボット1の所定種類の状態量の実際の値(実状態量)を所要の目標値に制御する(追従させる)ための制御入力(操作量)としての基本操作量ベクトル↑ΔSdmdを決定する基本操作量決定部21と、この基本操作量ベクトル↑ΔSdmdを用いて、各関節4の駆動力を制御するための制御入力(操作量)としての関節操作量ベクトル↑τcmdを決定する関節操作量決定部22と、この関節操作量ベクトル↑τcmdに応じて各関節アクチュエータ6を図示しない駆動回路を介して制御する関節制御部25とを備える。そして、本実施形態における制御装置9は、これらの機能部の処理を所定の制御処理周期で逐次実行することによって、ロボット1の動作制御を行う。
【0142】
以下に、ハンド部5により対象物Wを動かす作業をロボット1に行わせる場合を例にとって、本実施形態における制御装置9の制御処理を説明する。
【0143】
制御装置9の各制御処理周期において、基準動作目標出力部20からロボット1の基準動作目標が出力される。本実施形態では、この基準動作目標は、前記第1実施形態における基準動作目標のうちの基準目標ハンド部位置↑Xcmd0と、基準目標ハンド部外力↑Fcmd0とから構成される。
【0144】
次いで、制御装置9は、基本操作量決定部21の処理を実行する。本実施形態では、この基本操作量決定部21には、基準動作目標出力部10から出力される基準動作目標の構成要素のうちの基準目標ハンド部位置↑Xcmd0が入力されると共に、関節変位センサ7の出力により示される関節4(1)〜4(N)のそれぞれの実変位量θ(1)act〜θ(N)actの計測値(実変位量ベクトル↑Θactの計測値)が入力される。
【0145】
基本操作量決定部21は、入力されたデータを用いて、ロボット1の所定種類の状態量の実際の値(実状態量)を、所要の目標値に制御する(追従させる)ための基本操作量ベクトル↑Sdmdを決定する。
【0146】
本実施形態では、この基本操作量ベクトル↑Sdmdにより制御しようとする所定種類の状態量は、例えば、ハンド部5の位置↑Xである。そして、基本操作量決定部21が決定する基本操作量ベクトル↑Sdmdは、基準目標ハンド部位置↑Xcmd0の時系列により規定されるハンド部5の運動(基準目標運動)を実現するために、ロボット1から該ハンド部5に作用させるべき並進力を規定する制御入力である。そして、この基本操作量ベクトル↑Sdmdは、前記慣性座標系の3成分のベクトルとして表現されるものである。
【0147】
本実施形態では、基本操作量決定部21は、ハンド部5の上記基準目標運動を動力学的に実現し得るように制御入力(操作量)としての基本操作量ベクトル↑Sdmdを決定する。併せて、基本操作量決定部11は、前記したNullスペースを利用して、ハンド部5の基準目標運動の実現に影響を及ぼさない範囲で、関節4の変位量を前記標準変位量に近づけていくように、基本操作量ベクトル↑Sdmdを決定する。
【0148】
具体的には、基本操作量決定部21は、基本操作量ベクトル↑Sdmdを、次式(11a),(11b)により決定される操作量成分↑Sa(=↑Sa1+↑Sa2)と、次式(11c)により決定される操作量成分↑Sbとを次式(11)で示す如く加え合わせることによって決定する。
【0149】

↑Sdmd=↑Sa+↑Sb ……(11)
ただし、
↑Sa=↑Sa1+↑Sa2 ……(11a)
↑Sa1=Λ・(↑Xcmd0''+Kp2・(↑Xcmd0−↑Xact)
+Kv2・(↑Xcmd0'−↑Xact')) ……(11b)
↑Sb=(I−J#・J)T・(M・↑C(θ)) ……(11c)

なお、Λ、J#は、それぞれ次式(12a),(12b)により定義される行列である。
Λ≡(J・M-1・JT)T ……(12a)
J#≡(M-1)T・JT・(J・M-1・JT)* ……(12b)

ここで、上記操作量成分↑Saは、ハンド部5の上記基準目標運動を動力学的に実現するためにロボット1に作用させるべき並進外力に相当している。この場合、↑Saは、要求慣性力に相当する操作量成分↑Sa1と、ロボット1に作用する重力によりハンド部5の運動が受ける影響、あるいは、重力と遠心力及びコリオリ力とによりハンド部5の運動が受ける影響を補償するための操作量成分↑Sa2とを上記式(11a)により加え合わせた操作量成分である。
【0150】
要求慣性力に相当する操作量成分↑Sa1は、式(11b)により算出される。この場合、式(11b)の演算に必要な行列Λは、第1実施形態で説明したヤコビアン行列J(関節変位量ベクトル↑Θの単位時間当たりの微小変化量↑ΔΘと、ハンド部5の位置↑Xの単位時間当たりの変化量↑ΔXとの間の線形写像関係を表すヤコビアン行列J)と、イナーシャ行列Mとから前記式(12a)の定義式に従って算出される。
【0151】
この場合、ヤコビアン行列Jは、前記第1実施形態で説明したヤコビアン行列決定部13の処理と同じ処理によって決定される。
【0152】
また、イナーシャ行列Mは、より詳しくは、関節4(1)〜4(N)のそれぞれの変位量の2階微分値(本実施形態では角加速度)を並べたベクトル(すなわち、関節変位量ベクトル↑Θの2階微分値)に、(−1)・M(=−M)を乗じたものが、関節4(1)〜4(N)のそれぞれの慣性力(本実施形態では慣性力モーメント)となるようにあらかじめ定められた行列である。なお、イナーシャ行列Mは対角行列である。従って、M-1は、その各対角成分がMの各対角成分の逆数値となる対角行列である。
【0153】
また、式(11b)の演算に必要な↑Xcmd0''、↑Xcmd0'はそれぞれ基準目標ハンド部位置↑Xcmd0の2階微分値、1階微分値である。これらはそれぞれ、↑Xcmd0の時系列から算出される。
【0154】
また、式(11b)の演算に必要な↑Xact(ハンド部5の実際の位置)は、実変位量ベクトル↑Θactの計測値から幾何学的演算によって算出される。さらに、この↑Xactに時間的変換率が、↑Xact'として算出される。
【0155】
なお、式(11b)におけるKp2、Kv2は、それぞれ、比例ゲイン、微分ゲインであり、これらは、その値があらかじめ定めれたスカラー又は対角行列である。
【0156】
操作量成分↑Sa1は、上記の如く決定される行列Λ等を用いて、前記式(11b)の右辺の演算により算出される。この場合、本実施形態では、式(11b)の右辺の括弧内の値(Λに乗じる値)は、↑Xcmd0の2階微分値↑Xcmd0''に、↑XactをPD則により↑Xcmd0に追従させるためのフィードバック操作量としての比例項と微分項とを加え合わせたものとなっている。
【0157】
また、操作量成分↑Sa2は、ロボット1の運動モデルに基づいて、実変位量ベクトル↑Θactの計測値や、その時間的変化率を用いて算出される。
【0158】
そして、このように算出された操作量成分↑Sa1と↑Sa2とを加え合わせたものが、ハンド部5の基準目標運動を動力学的に実現するための並進外力に相当する前記操作量成分↑Saとして算出される。
【0159】
なお、↑Sa1の算出においては、式(11b)の右辺の第3項を省略したり、あるいは、第2項及び第3項を省略するようにしてもよい。
【0160】
また、式(11)の演算に必要な操作量成分↑Sbは、Nullスペース(ヌル空間)を利用して、制御対象の状態(本実施形態ではハンド部5の位置)に影響を及ぼさないように変化させ得る関節4の変位量を、前記標準変位量(上限の変位量と下限の変位量との間の中間の所定変位量)に近づけていく機能を有する操作量成分である。
【0161】
この操作量成分↑Sbは、前記式(11c)により算出される。この場合、式(11c)の演算に必要な↑C(θ)は、本実施形態では、前記第1実施形態で説明したものと同じである。従って、↑C(θ)は、その各成分c(i)(i=1,2,…,N)が、各関節4(i)の実変位量の計測値と、標準変位量との偏差に応じて、前記式(10a)により決定されるものである。
【0162】
また、J、Mは、前記式(11b)の行列Λの算出処理に関して説明したものと同じである。
【0163】
さらに、J#は、ヤコビアン行列Jとイナーシャ行列Mとから前記式(12b)の定義式に従って算出される。
【0164】
ここで、式(12b)の(J・M-1・JT)*は、行列(J・M-1・JT)の擬似逆行列を意味しており、この擬似逆行列は、前記第1実施形態でJ*を算出した場合と同様の処理によって算出される。
【0165】
具体的には、基本操作量決定部21は、図6のフローチャートの処理を実行することで、擬似逆行列(J・M-1・JT)*を算出する。すなわち、まずSTEP1aにおいて、前記式(4)の行列Aとして行列(J・M-1・JT)が代入されると共に、該行列Aの転置行列ATと、重み係数行列Wの逆行列W-1とが算出される。なお、重み係数行列Wは、第1実施形態のものと同様にあらかじめ定められた対角行列である。
【0166】
次いで、第1実施形態で説明した図4のSTEP2〜10の処理(調整パラメータkの探索的決定処理を含む)と同じ処理を実行することで、擬似逆行列A*が算出される。
【0167】
そして、STEP1bにおいて、この擬似逆行列A*が、行列(J・M-1・JT)の擬似逆行列(J・M-1・JT)*として決定される。
【0168】
基本操作量決定部21は、このようにして算出した擬似逆行列(J・M-1・JT)*を用いて前記式(12b)の演算により操作量成分↑Sbを算出する。
【0169】
そして、基本操作量決定部21は、以上の如く算出した操作量成分↑Saと↑Sbとを加え合わせたものを基本操作量ベクトル↑Sdmdとして決定する。
【0170】
補足すると、操作量成分↑Sbを省略し、操作量成分↑Saをそのまま基本操作量ベクトル↑Sdmdとして決定するようにしてもよい。
【0171】
また、ハンド部5の位置↑Xの目標値は、必要に応じて↑Xcmd0から動的にずらすようにしてもよい。
【0172】
また、本実施形態では、基本操作量ベクトル↑Sdmdにより制御しようとする所定種類の状態量をハンド部5の位置↑Xとしたが、ハンド部5の姿勢を当該状態量に含めるようにしてもよい。
【0173】
上記の如く基本操作量決定部21の処理を実行した後、次に制御装置9は、関節操作量決定部22の処理を実行する。
【0174】
この関節操作量決定部22には、各関節4毎の関節変位センサ7の出力により示される関節4(1)〜4(N)のそれぞれの実変位量θ(1)act〜θ(N)actの計測値(実変位量ベクトル↑Θactの計測値)と、前記力センサ8の出力により示される実外力↑Fact(ハンド部5に作用する実際の並進外力)の計測値と、基本操作量決定部21で決定された基本操作量ベクトル↑Sdmdと、前記基準動作目標のうちの基準目標ハンド部外力↑Fcmd0とが入力される。
【0175】
そして、関節操作量決定部22は、入力されたデータを用いて、関節4(1)〜4(N)のそれぞれの駆動力を制御するための関節操作量ベクトル↑τcmdを決定する。この関節操作量ベクトル↑τcmdは、本実施形態では、ロボット1のN個の関節4(1)〜4(N)のそれぞれの駆動力(本実施形態ではトルク)の目標値τ(1)cmd〜τ(N)cmdを並べたベクトル(≡[τ(1)cmd,Δτ(2)cmd,……,Δτ(N)cmd]T)である。
【0176】
関節操作量決定部22は、その処理の構成要素として、行列決定部23と、擬似逆行列算出部24とを備えている。そして、関節操作量決定部22は、まず、これらの行列決定部23、擬似逆行列算出部24の処理を順次実行する。
【0177】
行列決定部23は、関節4(1)〜4(N)の駆動力τ(1)〜τ(N)を並べたベクトル(縦ベクトル)である関節駆動力ベクトル↑τと、基本操作量ベクトル↑Sdmdが表す力(本実施形態では3成分の並進力ベクトル)↑Sとの間の線形写像関係を、次式(13)により表す行列Jsを決定する処理を実行するものである。
【0178】

↑S=Js・↑τ ……(13)
(=J#T・↑τ)

このJsは前記式(12b)により定義される行列J#の転置行列J#Tに一致するものである。
【0179】
そこで、本実施形態では、行列決定部23は、基本操作決定部21の演算処理で先に算出された行列J#の転置行列J#Tを上記行列Jsとして決定する。なお、行列決定部23において、J#を前記式(12b)の定義式に従って改めて算出した上で、その転置行列を求めるようにしてもよい。
【0180】
このように決定された行列Js(=J#T)の擬似逆行列(J#T)*が、次に、擬似逆行列算出部24の処理によって算出される。
【0181】
この擬似逆行列(J#T)*は、前記第1実施形態でJ*を算出した場合と同様の処理によって算出される。
【0182】
具体的には、擬似逆行列算出部24は、図7のフローチャートの処理を実行することで、擬似逆行列(J#T)*を算出する。すなわち、まずSTEP1cにおいて、前記式(4)の行列Aとして行列J#T(=Js)が代入されると共に、該行列Aの転置行列ATと、重み係数行列Wの逆行列W-1とが算出される。なお、重み係数行列Wは、第1実施形態のものと同様にあらかじめ定められた対角行列である。
【0183】
次いで、第1実施形態で説明した図4のSTEP2〜10の処理(調整パラメータkの探索的決定処理を含む)と同じ処理を実行することで、擬似逆行列A*が算出される。
【0184】
そして、STEP1dにおいて、この擬似逆行列A*が、J#T(=Js)の擬似逆行列(J#T)*として決定される。
【0185】
以上の如く擬似逆行列(J#T)*を算出した後、関節操作量決定部22は、次に、この擬似逆行列(J#T)*と、入力された基本操作量ベクトル↑Sdmdと、基準目標ハンド部外力↑Fcmd0と、ハンド部5に作用する実外力↑Factの計測値とを用いて関節操作量ベクトル↑τcmdを決定する。
【0186】
具体的には、本実施形態では、関節操作量決定部22は、次式(14a),(14b)により決定される操作量成分↑τa,↑τbを次式(14)で示す如く加え合わせることによって決定する。
【0187】

↑τcmd=↑τa+↑τb ……(14)
ただし、
↑τa=(J#T)*・↑Sdmd ……(14a)
↑τb=JT・(↑Fcmd0+Kc2・(↑Fcmd0−↑Fact)
+Ke2・∫(↑Fcmd0−↑Fact)dt) ……(14b)

ここで、式(14a)により算出される操作量成分↑τaは、ハンド部5の実際の位置↑Xactを、基準目標ハンド部位置↑Xcmd0に追従させるための操作量である。なお、本実施形態ではこの操作量成分↑τaには、ハンド部5の実際の位置↑Xactの制御に影響を及ぼさないように動作させ得る関節4の変位量を標準変位量に近づけるようにするための操作量成分も含まれる。
【0188】
そして、この↑τaは、基本操作量ベクトル↑Sdmdに擬似逆行列(J#T)*を乗じることによって算出される。
【0189】
また、式(14b)により算出される操作量成分↑τbは、対象物Wからハンド部5に作用する実外力↑Factを基準目標ハンド部外力↑Fcmd0に追従させるために↑τaに付加する操作量である。
【0190】
この場合、式(14b)の右辺の括弧内の値(JTに乗じる値)は、↑Fact(計測値)をPI則(比例・積分則)により↑Fcmd0に追従させるためのフィードバック操作量としての比例項と積分項とを、基準目標ハンド部外力Fcmd0に加え合わせたものとして算出される。そして、この値に、前記ヤコビアン行列Jの転置行列JTを乗じることによって、操作量成分↑τbが算出される。
【0191】
なお、式(14b)の演算に使用する比例ゲインKc2及び積分ゲインKe2は、それぞれ、その値があらかじめ定められたスカラー又は対角行列である。
【0192】
関節操作量決定部22は、上記の如く決定した操作量成分↑τaと↑τbとを加え合わせたものを関節操作量ベクトル↑τcmdとして決定する。
【0193】
これにより、関節操作量ベクトル↑τcmdは、ハンド部5の実際の位置↑Xactと、実外力↑Factとをそれぞれ、基準目標ハンド部位置↑Xcmd0、基準目標ハンド部外力↑Fcmd0に追従させるように機能する操作量ベクトルとして決定されることとなる。
【0194】
補足すると、関節操作量ベクトル↑τcmdの操作量成分↑τbの算出においては、式(14b)の右辺の第3項を省略したり、あるいは、第2項及び第3項を省略するようにしてもよい。また、外力↑Fの目標値を、必要に応じて↑Fcmd0から動的にずらすようにしてもよい。
【0195】
上記の如く関節操作量決定部22の処理を実行した後、次に制御装置9は、関節制御部25の処理を実行する。
【0196】
この関節制御部25には、関節操作量決定部22で決定された関節操作量ベクトル↑τcmdが入力される。
【0197】
そして、関節制御部25は、入力された関節操作量ベクトル↑τcmdの各成分τ(i)cmd(i=1,2,…,N)に各関節4(i)の実際の駆動力を一致させるように、各関節4(i)の関節アクチュエータ6の駆動力を図示しない駆動回路を介して制御する。
【0198】
以上が、本実施形態における制御装置9の処理の詳細である。
【0199】
ここで、本実施形態と本発明との対応関係について補足しておく。本実施形態では、基本操作量決定部21、関節操作量決定部22、関節制御部25の処理によって、それぞれ、本発明における基本操作量決定手段、関節操作量決定手段、関節制御手段が実現される。
【0200】
また、行例決定部23、擬似逆行列算出部24によりそれぞれ、本発明におえる行列決定手段、擬似逆行列算出手段が実現される。さらに、擬似逆行列算出部24が実行する図7の処理のうち、STEP2〜9の処理によって、本発明における調整パラメータ決定手段が実現される。
【0201】
そして、本実施形態では、前記基本操作量ベクトル↑Sdmd、関節操作量ベクトル↑τdmdの操作量成分↑τa、行列Js(=J#T)、擬似逆行列(J#T)*が、それぞれ本発明における基本操作量ベクトル↑a、関節操作量ベクトル↑b、行列A、擬似逆行列A*に相当する。
【0202】
なお、本実施形態では、基本操作量決定部21及び関節操作量決定部22を合わせた処理によって、前記第5発明おける関節操作量決定手段が実現されるとみなすこともできる。この場合、基本操作量決定部21が実行する図6の処理のうちのSTEP2〜9の処理と、関節操作量決定部22の擬似逆行列算出部24が実行する図7の処理のうちのSTEP2〜9の処理とがそれぞれ第5発明における調整パラメータ決定手段に相当するものとなる。そして、この場合は、(J#T)*に加えて、(J・M-1・JT)*も第5発明における擬似逆行列A*に相当するものとなる。
【0203】
以上説明した実施形態においては、擬似逆行列(J#T)*、(J・M-1・JT)*のそれぞれの算出において、調整パラメータkの増加量Δkを、下限閾値DET_Lから行列式DETの絶対値を差し引いてなる偏差(=DET_L−|DET|)のn乗根に比例する値に設定する。
【0204】
これにより、制御装置9の各制御処理周期において、擬似逆行列(J#T)*、(J・M-1・JT)*のいずれの算出処理においても、|DET|≧DET_Lとなるようにするための適切な調整パラメータkの値を、該kの値の不連続な変動が生じないようにしつつ、効率よく短時間で決定できる。このため、ロボット1の各関節4の駆動力を滑らかに変化させるように、関節操作量ベクトル↑τcmdの各成分を決定できる。
【0205】
よって、ロボット1による作業を該ロボット1の滑らかな動きで実現できる。
【0206】
なお、以上説明した各実施形態では、設置型のロボット1の動作制御を例にとって説明したが、本発明の対象とするロボットは、設置型に限らず、脚式移動ロボット等の移動ロボットであってもよい。
【符号の説明】
【0207】
1…ロボット、3(1)〜3(N)…リンク要素、4(1)〜4(N)…関節、6…関節アクチュエータ、9…制御装置、11,21…基本操作量決定部(基本操作量決定手段)、12,22…関節操作量決定部(関節操作量決定手段)、13…ヤコビアン行列決定部(行列決定手段)、23…行列決定部(行列決定手段)、14,24…擬似逆行列算出部(擬似逆行列算出手段)、15,25…関節制御部(関節制御手段)、STEP2〜9…調整パラメータ決定手段。

【特許請求の範囲】
【請求項1】
複数の関節を介して相互に連結された複数のリンク要素を備えるロボットの制御装置であって、
前記ロボットのあらかじめ定められた所定種類の状態量の値を目標値に制御するための操作量としてのベクトルであって、M個(M:1以上の整数)の成分により構成される基本操作量ベクトル↑aを少なくとも前記所定種類の状態量の目標値に応じて逐次決定する基本操作量決定手段と、
前記ロボットの各関節の動作状態を制御するための操作量としてのベクトルであって、N個(N:N≧Mとなる整数)の成分により構成されると共に前記基本操作量ベクトル↑aとの間に次式(3)により示される線形写像の関係を有する関節操作量ベクトル↑bを、前記決定された基本操作量ベクトル↑aの値に、次式(3)の行列Aの擬似逆行列A*を乗じることにより逐次決定する関節操作量決定手段と、

↑a=A・↑b ……(3)

少なくとも前記決定された関節操作量ベクトル↑bに応じて前記ロボットの各関節の動作状態をアクチュエータを介して制御する関節制御手段とを備えており、
前記関節操作量決定手段は、少なくとも前記ロボットの各関節の現在の動作状態に応じて前記行列Aを決定する行列決定手段と、その決定された行列Aとあらかじめ設定された重み係数行列W(W:対角行列)と調整パラメータk(k:ゼロ以上の実数値)の値とを用いて次式(4)により前記擬似逆行列A*を算出する擬似逆行列算出手段と、該式(4)の演算に用いる前記調整パラメータkの値を、次式(5)により表される行列式DETの絶対値が所定の閾値以上の値になるように決定する調整パラメータ決定手段とを備えており、

*=W-1・AT・(A・W-1・AT+k・I)-1 ……(4)
DET=det(A・W-1・AT+k・I) ……(5)

前記調整パラメータ決定手段は、前記調整パラメータkの暫定値を所定の初期値から段階的に増加させていくように設定することと、設定した各暫定値を用いて前記行列式DETの値を算出することと、算出した行列式DETの絶対値が前記所定の閾値以上の値であるか否かを判断することとを繰り返し、該判断結果が肯定的となったときのkの暫定値を、前記式(4)の演算に用いる調整パラメータkの値として決定する手段であると共に、前記判断結果が否定的である場合のkの暫定値の増加量を、その増加前の暫定値を用いて算出した行列式DETの絶対値と前記所定の閾値との偏差の絶対値のn乗根(n:A・W-1・ATの次数)に比例する値に設定することを特徴とするロボットの制御装置。
【請求項2】
請求項1記載のロボットの制御装置において、
前記所定種類の状態量は、前記ロボットの特定部位の運動の状態量と、前記ロボットに作用する外力とのうちの少なくともいずれか一方を含むことを特徴とするロボットの制御装置。
【請求項3】
請求項1又は2記載のロボットの制御装置において、
前記基本操作量ベクトル↑aは、前記ロボットの特定部位の運動状態を規定する操作量成分により構成されたベクトルであり、前記関節操作量ベクトル↑bは、前記ロボットの各関節の変位量を規定する操作量成分により構成されたベクトルであることを特徴とするロボットの制御装置。
【請求項4】
請求項1又は2記載のロボットの制御装置において、
前記基本操作量ベクトル↑aは、前記ロボットに作用する外力を規定する操作量成分により構成されたベクトルであり、前記関節操作量ベクトル↑bは、前記ロボットの各関節の駆動力を規定する操作量成分により構成されたベクトルであることを特徴とするロボットの制御装置。
【請求項5】
複数の関節を介して相互に連結された複数のリンク要素を備えるロボットの制御装置であって、
線形写像を表す行列Aの擬似逆行列A-1を使用する演算処理によって、前記ロボットの各関節の動作状態を制御するための操作量を逐次決定する関節操作量決定手段と、
決定された前記操作量に応じて前記ロボットの各関節の動作状態をアクチェータを介して制御する関節制御手段とを備えており、
前記関節操作量決定手段は、前記行列Aとあらかじめ設定された重み係数行列W(W:対角行列)と調整パラメータk(k:ゼロ以上の実数値)の値とを用いて次式(4)により前記擬似逆行列A*を算出する擬似逆行列算出手段と、該式(4)の演算に用いる前記調整パラメータkの値を、次式(5)により表される行列式DETの絶対値が所定の閾値以上の値になるように決定する擬似逆行列演算用パラメータ決定手段とを備えており、

*=W-1・AT・(A・W-1・AT+k・I)-1 ……(4)
DET=det(A・W-1・AT+k・I) ……(5)

前記調整パラメータ決定手段は、前記調整パラメータkの暫定値を所定の初期値から段階的に増加させていくように設定することと、設定した各暫定値を用いて前記行列式DETの値を算出することと、算出した行列式DETの絶対値が前記所定の閾値以上の値であるか否かを判断することとを繰り返し、該判断結果が肯定的となったときのkの暫定値を、前記式(4)の演算に用いる調整パラメータkの値として決定する手段であると共に、前記判断結果が否定的である場合のkの暫定値の増加量を、その増加前の暫定値を用いて算出した行列式DETの絶対値と前記所定の閾値との偏差の絶対値のn乗根(n:A・W-1・ATの次数)に比例する値に設定することを特徴とするロボットの制御装置。

【図1】
image rotate

【図2】
image rotate

【図3】
image rotate

【図4】
image rotate

【図5】
image rotate

【図6】
image rotate

【図7】
image rotate


【公開番号】特開2013−10166(P2013−10166A)
【公開日】平成25年1月17日(2013.1.17)
【国際特許分類】
【出願番号】特願2011−144887(P2011−144887)
【出願日】平成23年6月29日(2011.6.29)
【出願人】(000005326)本田技研工業株式会社 (23,863)
【Fターム(参考)】