ロボットの制御装置及び制御方法、並びにコンピューター・プログラム
【課題】非駆動関節を含むロボットの加速度オーダーの精密な制御を実現する。
【解決手段】複数の剛体が連なったリンク構造のロボットにおいて、関節の全部を可動とした力学モデル(主モデル)を用いて既知の力から未知の加速度を求める順動力学演算部と、駆動関節を不動とし非駆動関節を可動とした力学モデル(補助モデル)を用いて既知の加速度及び力から未知の力及び加速度を求めるハイブリッド動力学演算部を有し,順動力学演算部とハイブリッド動力学演算部の演算結果を用いて、ロボットの任意部位に所望の加速度を発生させるための関節力を決定する。
【解決手段】複数の剛体が連なったリンク構造のロボットにおいて、関節の全部を可動とした力学モデル(主モデル)を用いて既知の力から未知の加速度を求める順動力学演算部と、駆動関節を不動とし非駆動関節を可動とした力学モデル(補助モデル)を用いて既知の加速度及び力から未知の力及び加速度を求めるハイブリッド動力学演算部を有し,順動力学演算部とハイブリッド動力学演算部の演算結果を用いて、ロボットの任意部位に所望の加速度を発生させるための関節力を決定する。
【発明の詳細な説明】
【技術分野】
【0001】
本発明は、リンク構造物からなるロボットの制御装置及び制御方法、並びにコンピューター・プログラムに係り、特に、関節の一部が力を発することのない非駆動関節であるロボットの制御装置及び制御方法、並びにコンピューター・プログラムに関する。
【背景技術】
【0002】
倒立振子型のロボットや2足歩行型のロボットは、接地面積が小さいため、人と共存する際に邪魔になり難く、人にさまざまなサービスを提供することができる、という優れた側面を持っている。逆に、この種のロボットは、接地面積が小さいゆえに、タスク遂行のために環境から得られる外力に関する制約が厳しいという問題がある。倒立振子ロボットでは、支持点回りのモーメントを得ることができないし、2足歩行型のロボットでは、足底形状によって路面から得られるモーメントに不等式制約が課される。より極端な例として、宇宙ロボットが挙げられる。宇宙ロボットは、環境からの反力を一切得ることができない。これらのロボットは、関節の一部が力を発することのできない、非駆動関節としてモデル化できることを特徴としている。
【0003】
図11〜図13には、非駆動関節を有するロボットの関節構成を例示している。図11は、倒立振子型のロボットの関節構成例を示している。車輪の並進移動成分は、直動関節で表現され、車輪によるロボット全体の姿勢変化は、次に連結される回転関節で表される。ロボット全体は、この点回りに自由に回転し得ることから、この関節が非駆動関節として表現される。残りの関節は腕部の関節であり、いずれも駆動関節である。また、図12は、2足歩行型のロボットの関節構成例を示している。脚部の回転関節はいずれも駆動関節であり、その他、ロボット全体が空間内を自由に移動できることを表現するための、3自由度並進と3自由度回転からなる6自由度を有する。この6自由度は仮想的若しくは論理的な関節であり、実在しないため、力を発することができない。ゆえに、非駆動関節として表現されている。2足歩行型ロボットは、6自由度の非駆動関節を有する系としてモデル化されるが、足先から得られる力及びモーメント成分を利用して、全身の制御をすることができる。また、図13は、宇宙ロボットの関節構成例を示している。宇宙ロボットに搭載されるロボット・アームの関節は駆動関節として表現されるが、ロボット全体の3自由度並進と3自由度回転自由度については、6自由度の非駆動関節として表現される。宇宙ロボットは、2足歩行ロボットと異なり、外力を得ることができない。
【0004】
ロボットなどのリンク構造物において、例えば手先の位置に所望の速度を発生させるためには関節速度を得る必要がある。あるいは、所望の加速度を発生させるためには関節力を得る必要がある。駆動関節のみから構成される系では、関節速度のすべての成分、あるいは、関節加速度のすべての成分を制御することができる。ところが、非駆動関節が含まれる系では、非駆動関節の成分を制御することはできない、という問題がある。
【0005】
力制御系のロボット制御において重要な概念として、ロボットに作用する力と発生する加速度の関係を記述するための空間、すなわち操作空間(Operational Space)が挙げられる。例えば、ロボットの手先の位置を操作空間として定義して、手先に所望の加速度を発生させるための関節力を決定するのに操作空間が用いられる。操作空間の加速度を精密に制御するための方法が幾つか提案されているが(例えば、特許文献1、2を参照のこと)、いずれの方法もすべての関節が駆動関節である場合に対象が限定されている。
【先行技術文献】
【特許文献】
【0006】
【特許文献1】特開2009−95959号公報
【特許文献2】特開2010−188471号公報
【発明の概要】
【発明が解決しようとする課題】
【0007】
本発明の目的は、非駆動関節を含むロボットの加速度オーダーの精密な制御を実現することができる、優れたロボットの制御装置及び制御方法、並びにコンピューター・プログラムを提供することにある。
【課題を解決するための手段】
【0008】
本願は、上記課題を参酌してなされたものであり、請求項1に記載の発明は、
駆動関節及び非駆動関節を有するロボットの前記駆動関節を不動とした補助モデルを用いて、逆動力学と順動力学からなるハイブリッド動力学演算を実行して、関節加速度が既知である不動関節に作用する関節力と、関節力が既知である可動関節に発生する関節加速度を算出するハイブリッド動力学演算部と、
前記ロボットのすべての関節を可動とした主モデルを用いて、前記ロボットに作用する既知の力によって発生する加速度を算出する順動力学演算部と、
前記ハイブリッド動力学演算部及び前記順動力学演算部による演算結果に基づいて、前記ロボットの任意の部位に所望の目標加速度を発生させるための関節力を決定する関節力決定部と、
前記決定した関節力を制御目標値として、前記ロボットの各関節の関節力を制御する関節力制御部と、
を具備するロボットの制御装置である。
【0009】
本願の請求項2に記載の発明によれば、請求項1に記載のロボットの制御装置のハイブリッド動力学演算部によって得られた前記ロボットに作用する力を、一般化ヤコビアンを用いて関節力に変換するように構成されている。
【0010】
本願の請求項3に記載の発明によれば、請求項1に記載のロボットの制御装置の関節力決定部は、
関節値及び外力以外をすべてゼロとし、i番目の操作空間にのみ第i成分が1の単位ベクトルeiからなる外力を作用させる条件下で、前記順動力学演算部に前記順動力学演算をすべての操作空間にわたり繰り返し実行させることによって、一般化操作空間慣性逆行列を求める一般化操作空間慣性逆行列演算部と、
関節空間に発生する速度と重力のみが作用するという制約条件下で、前記順動力学演算部に前記順動力学演算を1回だけ実行させて、一般化操作空間バイアス加速度を求める一般化操作空間バイアス加速度演算部と、
前記一般化操作空間慣性逆行列及び前記一般化操作空間バイアス加速度を用いて表される操作空間に作用する力と加速度の関係式において、前記操作空間に発生する目標加速度を既知とし、それを達成するために前記操作空間に発する仮想的な外力fを解く仮想外力算出部と、
前記仮想外力算出部が求めた外力fを、一般化逆力運動学演算を用いて駆動関節の駆動関節力に変換する関節算出部と、
を備えている。
【0011】
本願の請求項4に記載の発明によれば、請求項3に記載のロボットの制御装置の仮想外力算出部は、前記関係式と前記ロボットと環境との間で形成される拘束条件からなる線形相補性問題を満足する前記仮想的な外力を、前記一般化操作空間慣性逆行列及び前記一般化操作空間バイアス加速度演算部を用いて求め、得られた力に基づいてリンクの関節力を決定するように構成されている。
【0012】
本願の請求項5に記載の発明によれば、請求項1に記載のロボットの制御装置のハイブリッド動力学演算部に、関節空間及び外力以外をすべてゼロとし、i番目の操作空間にのみ第i成分が1の単位ベクトルeiからなる外力を作用させる条件下で、駆動関節空間の関節力を算出するハイブリッド動力学演算を繰り返し実行させることによって、一般化ヤコビアンを求めるように構成されている。
【0013】
また、本願の請求項6に記載の発明は、
駆動関節及び非駆動関節を有するロボットの前記駆動関節を不動とした補助モデルを用いて、逆動力学と順動力学からなるハイブリッド動力学演算を実行して、関節加速度が既知である不動関節に作用する関節力と、関節力が既知である可動関節に発生する関節加速度を算出するハイブリッド動力学演算ステップと、
前記ロボットのすべての関節を可動とした主モデルを用いて、前記ロボットに作用する既知の力によって発生する加速度を算出する順動力学演算ステップと、
前記ハイブリッド動力学演算ステップ及び前記順動力学演算ステップによる演算結果に基づいて、前記ロボットの任意の部位に所望の目標加速度を発生させるための関節力を決定する関節力決定ステップと、
前記決定した関節力を制御目標値として、前記ロボットの各関節の関節力を制御する関節力制御ステップと、
を有するロボットの制御方法である。
【0014】
また、本願の請求項7に記載の発明は、駆動関節及び非駆動関節を有するロボットを制御するための処理をコンピューター上で実行するようにコンピューター可読形式で記述されたコンピューター・プログラムであって、前記コンピューターを、
前記ロボットの前記駆動関節を不動とした補助モデルを用いて、逆動力学と順動力学からなるハイブリッド動力学演算を実行して、関節加速度が既知である不動関節に作用する関節力と、関節力が既知である可動関節に発生する関節加速度を算出するハイブリッド動力学演算部、
前記ロボットのすべての関節を可動とした主モデルを用いて、前記ロボットに作用する既知の力によって発生する加速度を算出する順動力学演算部、
前記ハイブリッド動力学演算部及び前記順動力学演算部による演算結果に基づいて、前記ロボットの任意の部位に所望の目標加速度を発生させるための関節力を決定する関節力決定部、
前記決定した関節力を制御目標値として、前記ロボットの各関節の関節力を制御する関節力制御部、
として機能させるためのコンピューター・プログラムである。
【0015】
本願の請求項7に係るコンピューター・プログラムは、コンピューター上で所定の処理を実現するようにコンピューター可読形式で記述されたコンピューター・プログラムを定義したものである。換言すれば、本願の請求項7に係るコンピューター・プログラムをコンピューターにインストールすることによって、コンピューター上では協働的作用が発揮され、本願の請求項1に係るロボットの制御装置と同様の作用効果を得ることができる。
【発明の効果】
【0016】
本発明によれば、非駆動関節を含むロボットの加速度オーダーの精密な制御を、関節数Nに対してO(N)という少ない計算量で達成することができる、優れたロボットの制御装置及び制御方法、並びにコンピューター・プログラムを提供することができる。
【0017】
本発明のさらに他の目的、特徴や利点は、後述する本発明の実施形態や添付する図面に基づくより詳細な説明によって明らかになるであろう。
【図面の簡単な説明】
【0018】
【図1】図1は、非駆動関節を有したロボットを、全軸が可動なロボットのモデルと、駆動関節を不動とし、非駆動関節を可動とした補助モデルという2つのモデルで表現した図である。
【図2】図2は、主モデル及び補助モデルを用いた、非駆動関節を有するロボットの制御システム構成例を模式的に示した図である。
【図3】図3は、図2に示したロボットの制御システムにおいて実行される処理手順を示したフローチャートである。
【図4】図4は、一般化操作空間慣性逆行列演算部106により一般化操作空間慣性逆行列ΛG-1を算出するための処理手順を示したフローチャートである。
【図5】図5は、一般化操作空間慣性逆行列演算部106により一般化操作空間バイアス加速度cGを算出するための処理手順を示したフローチャートである。
【図6A】図6Aは、図1〜図3に示した制御系を適用する倒立振子型ロボットの構成例を示した図である。
【図6B】図6Bは、図1〜図3に示した制御系を適用する倒立振子型ロボットの構成例を示した図である。
【図6C】図6Cは、図6Bに示した倒立振子型ロボットのすべての関節を可動とした主モデルを示した図である。
【図6D】図6Fは、図6Bに示した倒立振子型ロボットの駆動関節を不動とするとともに非駆動関節を可動とした補助モデルを示した図である。
【図7】図7は、図6に示したロボットのバランスを保ちながら、機体の所定部位の位置や姿勢(方位)を一定に保つための制御系の構成例を示した図である。
【図8A】図8Aは、ワインが注がれたグラスをグリッパーで把持したロボットが、外力が印加されても、グラスのワインをこぼさずに保持している様子を示した図である。
【図8B】図8Bは、ワインが注がれたグラスをグリッパーで把持したロボットが、外力が印加されても、グラスのワインをこぼさずに保持している様子を示した図である。
【図8C】図8Cは、ワインが注がれたグラスをグリッパーで把持したロボットが、外力が印加されても、グラスのワインをこぼさずに保持している様子を示した図である。
【図9】図9は、ロボットが後方に押された際の車輪の前後位置と左手先位置をそれぞれ示した図である。
【図10】図10は、ロボットが後方に押された際のロボットの重心の位相平面上での変化(位置及び速度の変化)を示した図である。
【図11】図11は、倒立振子型のロボットの関節構成を示した図である。
【図12】図12は、2足歩行型のロボットの関節構成例を示した図である。
【図13】図13は、宇宙ロボットの関節構成例を示した図である。
【図14】図14は、床面に設置された多リンク構成の装置において、末端から基底の順序で情報を算出する通常の経路を示した図である。
【図15】図15は、床面に設置された多リンク構成の装置において、基底から末端に向かって速度情報を算出する通常の経路を示した図である。
【発明を実施するための形態】
【0019】
以下、図面を参照しながら本発明の実施形態について詳細に説明する。
【0020】
ロボットは、一般に、複数の剛体が連なって構成されるリンク構造物である。このうち倒立振子型のロボットや2足歩行型のロボット、宇宙ロボットなどは、関節の一部が力を発することのできない、非駆動関節としてモデル化することができる(前述並びに図11〜図13を参照のこと)。ロボットなどのリンク構造物において、例えば手先の位置に所望の速度を発生させるためには関節速度を得る必要がある。あるいは、所望の加速度を発生させるためには関節力を得る必要がある。駆動関節のみから構成される系では、関節速度のすべての成分、あるいは、関節加速度のすべての成分を直接に制御することができる。ところが、非駆動関節が含まれる系では、非駆動関節の成分を直接には制御できない、という問題がある。
【0021】
ここで、ロボットの運動方程式は、一般に、下式(1)のように表現される。
【0022】
【数1】
【0023】
上式(1)において、qは関節空間、τは関節空間qに発生する力、bは重力又はコリオリ力、Hはロボット(リンク構造全体)の関節空間に対する慣性行列、fは外力、Jは外力fの作用する空間を表すヤコビアンである。以下では、ロボットの第iリンクとその親リンクを接合している関節を第i関節とする。
【0024】
上記の運動方程式(1)を、駆動関節成分と非駆動関節成分に分けて表現すると、下式(2)に示す通りとなる。
【0025】
【数2】
【0026】
上式(2)において、インデックスAは駆動関節成分、インデックスUは非駆動関節成分をそれぞれ表す。非駆動関節を有するロボットとは、式(2)において、非駆動関節qUの関節力が常にゼロ、すなわちτU=0となるロボットを意味する。
【0027】
非駆動関節を有するロボットを制御する場合の重要な概念として、一般化ヤコビアンがある(例えば、Y.Umetami and K.Yoshida,“Resolved motion rate control of space manipulators with generalized Jacobianmatrix”(In IEEE Transactions on Robotics and Automation,5(3),June 1989)を参照のこと)。一般化ヤコビアンJGは、下式(3)で与えられる。
【0028】
【数3】
【0029】
力制御系のロボット制御において重要な概念として、ロボットに作用する力と発生する加速度の関係を記述する操作空間がある(前述)。例えば、ロボットの手先の位置を操作空間として定義して、手先に所望の加速度を発生させるための関節力を決定するのに操作空間が用いられる。通常、操作空間xの速度は、関節qの関節速度とヤコビアンJを用いて、下式(4)のように表わされる。
【0030】
【数4】
【0031】
ゆえに、操作空間xに所望の速度を発生するための関節速度を、下式(5)から得ることができる。但し、同式において、J#は、ヤコビアンJの擬似逆行列である。
【0032】
【数5】
【0033】
上式(5)に示す関係をNewton−Raphson法などの反復法とともに用いて、いわゆる逆運動学(Inverse Kinematics)演算も構成することができる。駆動関節のみから構成される系では、関節空間qのすべての速度成分を制御することができるので、上記の関係式(5)が有効である。これに対し、非駆動関節が含まれる系では、関節空間qの速度成分のうち非駆動関節成分は制御できないため、関係式(5)を適用することができない。しかしながら、系の全運動量がゼロに保存されているという前提では、以下の関係式(6)が成立する。
【0034】
【数6】
【0035】
上式(6)を用いれば、運動量がゼロに保たれている宇宙ロボットなどの逆運動学を構成することができる。しかし、この関係式(6)は、一般化ヤコビアンJGの定義式(3)をそのまま用いると、慣性行列Hを求める必要がある。関節数がNの系において慣性逆行列HのサイズはN×Nであり、慣性行列Hを求めるには計算量が膨大である。また、関係式(6)は、全運動量が保存されないケースでは成立しないうえ、速度レベルの制御手段しか提供しない。すなわち、この関係式(6)に基づいて、運動量が保存されないケースや、非駆動関節を有する系の加速度オーダーの精密な制御を実現するのは難しい。
【0036】
また、非駆動関節を含むFloatingBase の系の操作空間に発生する力を制御する方法も提案されている(例えば、Luis Sentis and Oussama Khatib,“Control of Free−Floating Humanoid Robots Through Task Prioritization”(Proceedings of the IEEE International Conference in Robotics and Automation,Barcelona,Spain,April 2005)を参照のこと)。しかしながら、上記の一般化ヤコビアンJGやそのNullSpace を求める必要があり、計算量が多い。
【0037】
また、操作空間の加速度を精密に制御するための方法が幾つか提案されているが(前述、並びに、特許文献1、2を参照のこと)、いずれの方法もすべての関節が駆動関節である場合に対象が限定されている。
【0038】
そこで、以下では、非駆動関節を含むロボットの加速度オーダーの精密な制御を、関節数Nに対してO(N)という少ない計算量で達成する方法について説明する。
【0039】
内力による運動を考えるため、上記で示した運動方程式(2)から外力項を除いた系を考える。上式(2)の上段及び下段のそれぞれより、以下の2式(7−1)、(7−2)を得ることができる。
【0040】
【数7】
【0041】
上式(7−1)を上式(2)の下段に代入すると、以下の駆動関節空間qAに関する運動方程式(8)を得ることができる。
【0042】
【数8】
【0043】
同様に、上式(7−2)を上式(2)の上段に代入すると、以下の非駆動関節空間qUに関する運動方程式(9)も得ることができる。
【0044】
【数9】
【0045】
一方、上記の操作空間xの速度と関節空間qの関節速度の関係を表した式(4)を微分して、下式(10)に示すように、操作空間xに発生する加速度を得ることができる。
【0046】
【数10】
【0047】
上式(10)に上式(7−1)を代入すると、下式(11)に示すように、操作空間xに発生する加速度を駆動関節空間qAの関節加速度で表わすことができる。
【0048】
【数11】
【0049】
上記の駆動関節空間qAに関する運動方程式(8)を用いて上式(11)から駆動関節空間qAの加速度を消去すると、下式(12)に示すように、操作空間xに発生する加速度を、駆動関節空間qA及び非駆動関節空間qUにそれぞれ発生させる関節力τA、τUで表現することができる。
【0050】
【数12】
【0051】
但し、HGは、一般化慣性行列(Generalized Inertia Matrix)であり、下式(13)のように表わされる。一般化慣性行列については、例えばY.Xu and T.Kanade,“Space Robotics:Dynamics and Control”(Prentice Hall,1992)を参照されたい。
【0052】
【数13】
【0053】
操作空間xに対し、仮想的な外力fを考え、下式(14)に示すように駆動関節空間qAの関節力τA及び非駆動関節空間qUの関節力τUからなる関節力τを発生するようにする(このようにfからτを得る演算は、「逆力運動学(Inverse Force Kinematics)」と呼ばれる)。
【0054】
【数14】
【0055】
このとき、上式(12)で示した操作空間xに発生する加速度は、下式(15)に示すように、外力fで表わすことができる。
【0056】
【数15】
【0057】
ここで、外力fの係数行列を、下式(16)に示すように、Λ-1とおく。この係数行列Λ-1は、操作空間慣性逆行列(Operational Inverse Inertia Matrix)として知られている。操作空間慣性逆行列Λ-1については、例えばO.Khatib,“A Unified Approach to Motion and Force Control of Robot Manipulators:The Operational Space Formulation”(In IEEE J.on Robotics and Automation,vol.3,no.1,1987,pp.43−53)を参照されたい。
【0058】
【数16】
【0059】
上式(16)中で、慣性行列Hの逆行列H-1は正定値対称行列であるから、JH-1JTすなわち操作空間慣性逆行列Λ-1も正定値対称行列である。正定値対称行列である操作空間慣性逆行列Λ-1は、数値計算上、線形相補正問題(Linear Comprementary Problem:LCP)として解くことができる。ゆえに、操作空間xに発生する加速度の目標値を実現するための外力fを安定に求めることができる。
【0060】
一方、制御対象のロボットに非駆動関節qUが存在すると、上式(14)中で、非駆動関節qUの関節力τUを発生することができない。且つ、上式(14)でτU=0(非駆動関節qUの関節力が常にゼロ)としたのでは、操作空間xに発生する加速度は下式(17)に示す通りとなり、外力fの係数行列JGHG-1JATは正定値対称行列とはならない。すなわち、外力fの係数行列を数値計算で解くことが困難になり、操作空間xに発生する加速度の目標値を実現するための外力fを安定に求めることができなくなる。
【0061】
【数17】
【0062】
ところが、仮想的な外力fにより発生する関節力τを、上式(14)に代えて、下式(18)のように表現すると、操作空間xに発生する加速度は下式(19)のように表わされる。下式(18)に示すように、一般化ヤコビアンJGを用いて、外力fから駆動関節空間qAの関節力τAを求める演算を、以下では「一般化逆力運動学(Generalized Inverse Force Kinematics)」と呼ぶことにする。
【0063】
【数18】
【0064】
【数19】
【0065】
上式(19)において、外力fの係数行列JGHG-1JGTは半正定値対称行列となる。一般化ヤコビアンJGがランク落ちすると、すべての固有値がゼロになり得るが、それ以外のケースでは正定値対称行列としての解法を用いることができる。
【0066】
以上をまとめると、上式(1)で示したロボットの運動方程式は、操作空間xに関するダイナミクスを表現する下式(20)に示すように変形することができる。
【0067】
【数20】
【0068】
上式(20)は、操作空間xに上式(18)で定義される力fを作用したときの、fと操作空間xに発生する加速度との関係を表している。但し、上式(20)で外力fの係数行列ΛG-1は、「一般化操作空間慣性逆行列(Generalized Operational Inverse Inertia Matrix)」と呼ぶ。また、上式(20)の右辺の定数項cGは、「一般化操作空間バイアス加速度(Generalilzed Operational Bias Accelaration)」と呼ぶ。一般化操作空間慣性逆行列ΛG-1並びに一般化操作空間バイアス加速度cGは、それぞれ下式(21)、(22)のように表わされる。
【0069】
【数21】
【0070】
【数22】
【0071】
一般化操作空間慣性逆行列ΛG-1及び一般化操作空間バイアス加速度cGが求められれば、上式(20)より、操作空間xに目標加速度を発生するための制御入力となる力f(言い換えれば、上式(20)を用いて力fから変換される、駆動関節空間qAの関節力τA)を決定することができる。
【0072】
例えば、本出願人に既に譲渡されている特開2007−108955号公報には、線形相補正問題(LCP)ソルバーなどを用いて操作空間慣性逆行列及び操作空間バイアス加速度を高速で且つ低い計算負荷で算出する方法について開示されている。
【0073】
しかしながら、一般化操作空間慣性逆行列ΛG-1及び一般化操作空間バイアス加速度cGをそれぞれ上記の定義式(21)及び(22)に従って求めると、計算量が多い。一般化慣性行列HGを得るには、まず慣性行列Hを得る必要がある。関節数がNの系において慣性行列HのサイズはN×Nであり、関節数Nに対しO(N2)の計算コストを要する。よって、インバージョン・コストを考えると、一般化慣性行列HGを得るには、関節数Nに対しO(N3)の計算コストがかかることになり、関節数が増加するにつれ急速に計算量が増大する。
【0074】
より少ない計算量で一般化操作空間慣性逆行列ΛG-1及び一般化操作空間バイアス加速度cGを求める方法について、以下で考えてみる。上式(20)で、右辺から左辺を得る計算は、外力や重力、速度積に関連する力(コリオリ力など)が作用したときの操作空間xにおける加速度を求める問題と見ることができる。操作空間xにおける加速度を求める点が通常の順動力学計算と異なるが、一種の順動力学演算と捉えることができる。順動力学演算FDGは、リンク構造物の力学モデルとしての関節空間q並びにその関節速度、重力g、並びに外力fをパラメータに持ち、下式(23)のように表現することができる。但し、下式(23)において、gは重力加速度である。
【0075】
【数23】
【0076】
この順動力学演算FDGによれば、関節空間qと、重力g、外力fといったリンク構造物に作用する力情報から、リンク構造物の各点に発生する加速度を得ることができる。
【0077】
ここで、上式(23)において、順動力学演算FDGの入力パラメータのうち関節空間q及び外力f以外をすべてゼロとする制約条件下では、重力、関節力、速度積に関連する力(コリオリ力など)が発生しない状況において操作空間xに発生する加速度を求めることができる。すなわち、式(22)において一般化操作空間バイアス加速度cG=0とすることができる。さらに、f=ei、すなわち、i番目の操作空間にのみ第i成分が1の単位ベクトルeiを作用させる条件下で上式(23)の計算を実行すると、一般化操作空間慣性逆行列ΛG-1の第i列を求めることができることが分る。よって、下式(24)の演算をすべての行iについて実行すれば、操作空間慣性逆行ΛG-1全体を得ることができる。
【0078】
【数24】
【0079】
また、外力f=0とし、順動力学演算FDGの入力パラメータのうち関節空間qに発生する速度と重力gのみが作用するという制約条件下で上式(24)の順動力学演算FDGを実行することで、下式(25)に示すように一般化操作空間バイアス加速度cGを算出することができる。
【0080】
【数25】
【0081】
順動力学演算は、当初は逆動力学演算(加速度から力を求める演算)を利用して構成する方法が一般的であったが、O(N3)の計算量を有し、自由度数が増すと演算量が嵩むという問題がある。これに対し、特開2007−108955号公報(前述)やR.Featherstone,“Robot Dynamics Algorithms”(Kluwer Academic Publishers,1987)には、ArticulatedBody法(以下、「AB法」とする)を用いてO(N)の計算複雑度で順動力学演算を構成する方法について記載されている。なお、AB法自体については、例えば、“The
calculation of robot dynamicsusing articulated−body inertias”(Int.J.RoboticsResearch,vol.2,no.1,pp.13−30,1983)に記載されている。特開2007−108955号公報に記載の順動力学演算の構成方法では、AB法をイナーシャ情報算出、速度情報算出、力情報算出、加速度情報算出の4つの過程に分解する。
【0082】
上記の順動力学演算式(23)を、AB法と同様にO(N)の計算複雑度で実現することができれば、上式(24)及び(25)より、一般化操作空間慣性逆行列ΛG-1及び一般化操作空間バイアス加速度cGについても同様の計算複雑度で算出できることになる。
【0083】
上記の順動力学演算式(23)が通常のAB法のプロセスと異なる点は、外力fによって発生する関節力τが、上式(14)ではなく上式(18)によって発生する点である。上記の定義式(3)に従って一般化ヤコビアンJGを算出すると、慣性行列Hの算出を経由しなければならず、O(N2)の計算量があるため効率がよくない。
【0084】
上記の運動方程式(2)を別な形式で書き直すと、下式(26)に示す通りとなる。
【0085】
【数26】
【0086】
すなわち、上式(26)の左辺から右辺を得る演算を、下式(27)のように表記することができる。
【0087】
【数27】
【0088】
上式(27)に示す演算は、加速度から作用する力を求める逆動力学と、力が作用したときに発生する加速度を求める順動力学の混合演算であり、「ハイブリッド動力学(Hybrid Dynamics:HD)」と呼ばれる。ハイブリッド動力学については、例えばR.Featherstone,“Robot Dynamics Algorithms”(Kluwer Academic Publishers,1987)(前述)を参照されたい。特に、「1.非駆動関節qUには関節力が発生しない(非駆動関節qUの関節力τUは既知である)」、「2.駆動関節qAは動かない(駆動関節qAの加速度は既知である)」、「3.関節qの速度はすべてゼロ、重力も作用しない」、すなわち下式(28−1)で表わされる補助モデルを考えると、下式(28−2)が成立することが分かる。
【0089】
【数28】
【0090】
上式(28−2)は、上式(28−1)で表わされる補助モデルのハイブリッド動力学演算の結果として得られる駆動関節力τAを符号反転したものは、上式(18)すなわち一般化逆力運動学の結果得られる駆動関節力τAに一致することを意味している。外力fに対して、このようにして得られた駆動関節力τAを作用してから、特開2007−108955号公報(前述)に記載の順動力学演算を実行することにより、一般化ヤコビアンJGで定義される操作空間xに関する上記の順動力学演算式(23)を実現することができる。特に、上記のハイブリッド動力学演算は、AB法を変形した、イナーシャ情報算出、速度情報算出、力情報算出、加速度情報算出の4つの過程に分解して、それぞれ以下に述べる演算によって、O(N)の計算量で実行することができる。したがって、一般化ヤコビアンJGで定義される操作空間xに関する順動力学演算式(23)全体も、O(N)の計算量で達成することが可能である。
【0091】
イナーシャ情報算出:
イナーシャ情報は、すべてのリンクのIAi(Articulated Body Inertia)を、下式(29)をロボット装置の末端から基底に向かって実行することで求める。図14には、床面に設置された多リンク構成の装置において、末端から基底の順序で情報を算出する通常の経路(Backword Propagation)を示している。
【0092】
【数29】
【0093】
上式(29)において、Iiはリンクiのイナーシャ、CF(i)はリンクiの関節力既知の子リンクのインデックス集合、CA(i)はリンクiの加速度既知の子リンクのインデックス集合とする。また、Siはリンクiの関節の運動自由度を表す行列である。
【0094】
速度情報算出:
速度情報は、すべてのリンクの原点の速度を、下式(30)をロボット装置の基底から末端に向かって実行することで求める。図15には、床面に設置された多リンク構成の装置において、基底から末端に向かって速度情報を算出する通常の経路(Forward Propagation)を示している。
【0095】
【数30】
【0096】
上式(30)において、viはリンクiの速度、pはその親リンクのインデックスとする。また、qiはリンクiの関節空間である。
【0097】
力情報算出:
力情報は、すべてのリンクのバイアス力pAiを、下式(31)〜(32)をロボット装置末端から基底に向かって実行することで求める(図14を参照のこと)。
【0098】
【数31】
【0099】
【数32】
【0100】
上式(31)において、fkはリンクiの中でk番目の外力、F(i)はリンクiに作用する外力のインデックス集合、τiはリンクiの関節力である。
【0101】
加速度情報算出:
加速度情報は、すべてのリンクの加速度aiを、下式(33)〜(35)を基底から末端に向かって実行することで求める(図15を参照のこと)。リンクiの関節が非駆動関節のときは下式(33)、(34)を実行し、リンクiの関節が駆動関節のときは下式(35)を実行する。
【0102】
【数33】
【0103】
【数34】
【0104】
【数35】
【0105】
なお、上記の計算で、速度情報算出の起点となる基底の速度はv0=0である。また、重力の効果は、加速度情報算出において、基底が重力加速度で上昇している、として考慮する。
【0106】
【数36】
【0107】
以上の計算を、イナーシャ情報算出⇒速度情報算出⇒力情報算出⇒加速度情報算出の順で実行することにより、ハイブリッド動力学演算を効率的に実行することができる。ひいては、一般化操作空間慣性逆行列ΛG-1及び一般化操作空間バイアス加速度cGを効率的に算出することが可能となり、非駆動関節を有したロボットであっても、リンク構造の任意の箇所において所望の加速度を発生させるための関節力を決定することができ、リンク構造物の任意の部位において精密な加速度操作が可能となる。
【0108】
操作空間をすべてまとめた変数としてx を考えると、すべての拘束は以下のような不等式を含む線形拘束条件式(37)〜(38)として記述することができる。
【0109】
【数37】
【0110】
【数38】
【0111】
ここで、wは一種のスラック変数である.また,上式(38)中でそれぞれ存在するLi及びUiは、i番目の操作空間に作用する仮想的な力fiの下限と上限をそれぞれ表す。
【0112】
上式(37)〜(38)は、線形相補性問題である。そして、一般化操作空間慣性逆行列ΛG-1及び一般化操作空間バイアス加速度cGが既知であれば、この線形相補性問題を解くことによって、線形拘束条件を満足する操作空間xに目標加速度を発生させるための仮想的な外力fを決定することができる。線形相補性問題の数学的な解法自体については、例えば“Fast Contact Force Computation for Nonpenetrating Rigid Bodies”(SIGGRAPH94,pp.23−34,1994)に記載されているので、本明細書では説明を省略する。
【0113】
線形相補性問題として操作空間xの目標加速度を発生させるための力fを求める場合の多くは、一般化操作空間慣性逆行列ΛG-1を得る部分において最も計算を要する。上述したように、本実施形態によれば、一般化操作空間慣性逆行列ΛG-1の算出を高速に行なうことができるので、ロボットの実機上でも実時間の処理が可能である。こうして力fが得られれば、拘束条件式(37)〜(38)を満足する関節力τ
を上式(18)に基づいて決定することができる。
【0114】
ここまでをまとめると、非駆動関節を有したロボット(Under Actuated System)を、図1に示すように、(1)すべての関節が可動関節(Movable Joint)となるロボットの主モデル(Fully Movable System)と、(2)駆動関節(Actuated Joint)を不動関節(Immovable Joint)とし、非駆動関節(Unactuated Joint)を可動関節とした補助モデル(Partially Rigid System)という2つのモデルの組み合わせによって表現することができる。そして、前者の主モデルでは通常の順動力学演算(上式(23)を参照のこと)を実行し、後者の補助モデルではハイブリッド動力学演算(上式(28−2)を参照のこと)を実行することで、系全体の操作空間物理量を効率的に求めて制御する。
【0115】
図2には、主モデル及び補助モデルを用いた、非駆動関節を有するロボットの制御システム構成例を模式的に示している。
【0116】
図示の制御システム100は、主モデル(Main Model:Fully Actuated System Model)101と、補助モデル(Auxiliary Model:Partially Rigid Model)102と、順動力学演算部(Forward Dynamics Executor)103と、ハイブリッド動力学演算部(Hybrid Dynamics Executor)104と、一般化逆力運動学演算部(Generalized Inverse Force Kinematics Executor)105と、一般化操作空間慣性逆行列演算部(Generalized Operational Inverse Inertia Calculator)106と、一般化操作空間バイアス加速度演算部(Generalized Operational Bias Acceleration Calculator)107と、仮想外力算出部(Linear Complementary Problem Solver)108と、全身協調力制御部(Whole−body Cooeperated Force Controller)109と、関節力制御部(Joint Force Controller)110で構成される。
【0117】
主モデル101は、すべての関節を可動関節(Movable Joint)としたロボットの動力学モデルである。一方、補助モデル102は、駆動関節を不動関節(Immovable Joint)とし、非駆動関節を可動関節としたロボットの動力学モデルである。補助モデル102では、「1.非駆動関節qUには関節力が発生しない(非駆動関節qUの関節力τUは既知である)」、「2.駆動関節qAは動かない(駆動関節qAの加速度は既知である)」、「3.関節qの速度はすべてゼロ、重力も作用しない」(前述)。図1中の中央に示したモデルが主モデル101に相当し、図1中の右に示したモデルが補助モデル102に相当する。
【0118】
ハイブリッド動力学演算部104は、補助モデル102を用いて、上記の逆動力学と順動力学の混合演算式(27)を実行して、関節加速度が既知の関節に作用する関節力と、関節力が既知の関節に発生する関節加速度をそれぞれ算出することができる。
【0119】
補助モデル102は、駆動関節に相当する不動関節と、非駆動関節に相当する可動関節が混在する系である。上式(28−1)で示したように、不動関節として扱われる駆動関節は、動かないという意味で関節加速度が既知であり、可動関節として扱われる非駆動関節は、関節力が発生しないという意味で関節力が既知である。補助モデル102を、関節加速度が既知である不動関節と、関節力が既知である可動関節が混在する系、と言い換えることができる。
【0120】
一般化逆力運動学演算部105は、上式(28−1)に示した条件をハイブリッド動力学演算部104に与えて上記の混合演算式(27)を実行させることで、補助モデル102上の不動関節すなわち駆動関節qAに作用する関節力τAと、可動関節すなわち非駆動関節qUに発生する関節加速度をそれぞれ算出する。また、一般化逆力運動学演算部105は、一般化逆力運動学演算を実行して(式(18)を参照のこと)、関節力τAからfを求める。
【0121】
順動力学演算部103は、主モデル101を用いて、上記の操作空間xに関する順動力学演算式(23)を実行して、操作空間xに発生する加速度を求める。ここで、外力fは、上式(14)により関節力に変換するのではなく、上式(18)によって関節力τAに変換する点で、特開2007−108955号公報(前述)に開示された操作空間物理量算出装置とは異なる点に留意されたい。このため、順動力学演算部103は、一般化逆力運動学演算部105に関節空間q及び外力fを与えて(IFKG(q,f))、一般化逆力運動学演算部105が求めた駆動関節の関節力τA(=JGTf)を用いて順動力学演算式(23)を実行する。
【0122】
一般化操作空間慣性逆行列演算部106は、上式(24)の条件に基づいて順動力学演算FDGを繰り返し実行して、上式(21)に示した一般化操作空間慣性逆行列ΛG-1を算出する。具体的には、一般化操作空間慣性逆行列演算部106は、順動力学演算部103に対する入力パラメータのうち関節空間q及び外力f以外をすべてゼロとする制約条件下で、さらに、f=ei、すなわち、i番目の操作空間にのみ単位力を作用させる条件下で、順動力学演算部103に上式(23)の計算を繰り返し実行させることによって、一般化操作空間慣性逆行列ΛG-1のすべての列の成分を求める。
【0123】
一般化操作空間バイアス加速度演算部107は、上式(25)の条件に基づいて順動力学演算FDGを1回だけ実行して、一般化操作空間バイアス加速度cGを算出する。具体的には、一般化操作空間バイアス加速度演算部107は、順動力学演算部103に対する入力パラメータのうち関節空間qに発生する速度と重力gのみが作用するという制約条件下で、順動力学演算部103に上式(23)の計算を1回だけ実行させることによって、一般化操作空間バイアス加速度cGを算出させる。
【0124】
仮想外力算出部108は、一般化操作空間慣性逆行列ΛG-1と一般化操作空間バイアス加速度cGを用いて表される操作空間xに作用する力と加速度の関係式(20)において、操作空間xに発生する目標加速度を既知とし、それを達成するために操作空間xに発する仮想的な外力fを解く。ここで、既知の目標加速度は、外部(インピーダンス・コントローラーなど)から仮想外力算出部108に入力される制御指令値である。例えば、仮想外力算出部108は、上記関係式(20)と、ロボットのリンク同士及びリンクと環境との間で形成される不等式拘束条件からなる線形相補性問題(LCP)として捉え、LCPソルバーを用いて、操作空間xに発生する加速度の目標値を実現するための外力fを安定に求めることができる(前述)。
【0125】
全身協調力制御部109は、仮想外力算出部108から得られた仮想的な外力fを、上式(18)で示した一般化逆力運動学演算を用いて駆動関節の駆動関節力τAに変換し、これを関節力制御部110の制御目標値として出力する。
【0126】
関節力制御部110は、全身協調力制御部109が作成した各関節の制御目標値を実現するように、ロボットの各駆動関節の関節力を制御する。精密に関節力を制御するには、例えば、本出願人に既に譲渡されている特開2009−269102号公報に開示されている、力制御を行なうアクチュエータ制御装置を適用することができる。また、同アクチュエータ制御装置には、アクチュエータに印加されるトルクを正確に計測するために、本出願人に既に譲渡されている特開2009−288198号公報に開示されているトルク計測装置を適用してもよい。
【0127】
図3には、図2に示したロボットの制御システムにおいて実行される処理手順をフローチャートの形式で示している。
【0128】
まず、上式(3)に示した一般化ヤコビアンJGに対応する操作空間xを定義する(ステップS31)。すなわち、ロボットの任意の部位に発生する加速度を制御する運動空間を定義する。例えば、ロボットの手先の位置を制御する場合、手先リンクと手先リンク座標系から見た手先の位置を指定する。
【0129】
次いで、操作空間xに発生させる目標加速度を設定する(ステップS32)。すなわち。操作空間xのダイナミクスを示した上式(20)の左辺を与える。操作空間xの加速度目標値が指定できれば、速度及び位置も指定できる。例えば、操作空間xの速度を制御したい場合は下式(39−1)に示すように速度目標値から加速度目標値を指定すればよいし、操作空間xの位置を制御したい場合は下式(39−2)に示すように位置目標値から加速度目標値を指定すればよい。但し、Kv、Kpはそれぞれ速度ゲイン、位置ゲインである。
【0130】
【数39】
【0131】
次いで、一般化操作空間慣性逆行列演算部106により、一般化操作空間慣性逆行列ΛG-1(式(21)を参照のこと)を算出する(ステップS33)。
【0132】
次いで、一般化操作空間バイアス加速度演算部107により、一般化操作空間バイアス加速度cGを算出する(ステップS34)。
【0133】
次いで、仮想外力算出部108は、先行するステップS33、S34で得られた一般化操作空間慣性逆行列ΛG-1と一般化操作空間バイアス加速度cGを用いて、上式(20)から、ステップS32で設定した目標加速度を達成するために操作空間xに発する仮想的な外力fを解く(ステップS35)。本実施形態では、仮想外力算出部108は、上記関係式(37)と、ロボットのリンク同士及びリンクと環境との間で形成される不等式拘束条件式(38)からなる線形相補性問題を、LCPソルバーを用いて解いて、拘束条件式(37)〜(38)を満足する満足する仮想外力fを求める。
【0134】
次いで、全身協調力制御部109は、先行するステップS35で得られた仮想外力fを、上式(18)で示した一般化逆力運動学演算を用いて駆動関節の駆動関節力τAに変換する(ステップS36)。
【0135】
そして、関節力制御部110は、先行するステップS36で得られた関節力τAを各関節の制御目標値とし、これを実現するように、ロボットの各駆動関節の関節力を制御する(ステップS37)。
【0136】
図2に示したロボットの制御システム100では、図3に示した処理手順を、例えば1KHzの制御周波数で実行する。
【0137】
図4には、図3に示したフローチャート中のステップS33において、一般化操作空間慣性逆行列演算部106により一般化操作空間慣性逆行列ΛG-1を算出するための処理手順をフローチャートの形式で示している。
【0138】
まず、一般化操作空間慣性逆行列演算部106は、列インデクスiを初期値0に設定する(ステップS41)。
【0139】
次いで、一般化逆力運動学演算部105は、関節空間q及び外力f以外をすべてゼロとする制約条件下で、さらに、f=ei、すなわち、i番目の操作空間にのみ単位力を作用させる条件下で、駆動関節空間qAに発生する等価関節力τAを求める(ステップS42)。
【0140】
次いで、順動力学演算部103は、一般化逆力運動学演算部105が求めた駆動関節の関節力τA(=JGTf)を用いて順動力学演算式(23)を実行して、すべての操作空間に発生する加速度を求める(ステップS43)。すなわち、順動力学演算部103は、上式(24)を実行する。
【0141】
次いで、一般化操作空間慣性逆行列演算部106は、このようにして得られた加速度を、一般化操作空間慣性逆行列ΛG-1の第i列に代入する(ステップS44)。
【0142】
そして、一般化操作空間慣性逆行列演算部106は、列インデクスiを1だけ増分し(ステップS45)、iが操作空間数に到達するまで(ステップS46のNo)、ステップS42〜S45の処理ルーチンを繰り返し実行する。このようにして、一般化操作空間慣性逆行列演算部106は、一般化操作空間慣性逆行列ΛG-1全体を得ることができる。
【0143】
図5には、図3に示したフローチャート中のステップS34において、一般化操作空間バイアス加速度演算部107により一般化操作空間バイアス加速度cGを算出するための処理手順をフローチャートの形式で示している。
【0144】
一般化操作空間バイアス加速度演算部107は、関節空間qに発生する速度と重力gのみが作用するという制約条件下で上式(24)の順動力学演算FDGを1回だけ実行して、上式(22)に示した一般化操作空間バイアス加速度cGを上式(25)に示すように算出する(ステップS51)。
【0145】
そして、一般化操作空間バイアス加速度演算部107は、求めた一般化操作空間バイアス加速度cGを、操作空間xのダイナミクスを示した上式(20)に代入する(ステップS52)。
【0146】
以下では、図1〜図3に示した制御系を、図6Aに示す倒立振子型ロボットに適用した例について説明する。図示のロボットは、肩3自由度、肘2自由度、手首2自由度、及びグリッパー1自由度を有する左右の腕部を備えている。また、同ロボットは、頭部には2自由度、腰部に1自由度、対向2輪の車輪を有している。同ロボットは、車輪以外の接地点を持たない。
【0147】
図6Aに示したロボットの各関節に、例えば特開2009−288198号公報に開示されているトルク計測装置を搭載して、精密にトルク制御することができる。ロボットの体中に分散して配置された複数のサテライトCPU(Central Processing Unit)でそれぞれトルク制御が実行され、各サテライトCPUはリアルタイムLAN(Local Area Network)を介して中央のCPUと通信するものとする。また、ロボットの機体にはIMU(Inertial Measurement Unit)が搭載され、カルマン(Kalman)フィルタを用いた姿勢演算が行なわれるものとする。この演算値も、リアルタイムLANを介して中央のCPUに転送される。
【0148】
本出願人に既に譲渡されている特開2010−188471号公報には、図6Aに示したものと同様の対向2輪型移動ロボットを、枝分かれのあるマニピュレーターとして表現した対向2輪等価モデルについて開示されている。図6Bに示すように、対向2輪等価関節に続いて非駆動関節を1つ挿入して表現することで、同ロボット全体を倒立振子型の2輪ロボットとしてモデル化する。図6Cには、図6Bに示した倒立振子型ロボットのすべての関節を可動とした主モデルを示している。また、図6Dには、図6Bに示した倒立振子型ロボットの駆動関節を不動とするとともに非駆動関節を可動とした補助モデルを示している。
【0149】
図7には、図6に示したロボットのバランスを保ちながら、機体の所定部位の位置や姿勢(方位)を一定に保つための制御系の構成例を示している。図示のように、制御ユニット700には、さまざまな部位に対する加速度目標値が入力される。制御ユニット700は、図3〜図5に示した処理手順を実行して、各部位に対する加速度目標値を実現するための、駆動関節空間qAの関節力τAを得る。そして、制御ユニット700は、この関節力τAを用いてロボットの各駆動関節をトルク制御することで、すべての部位の運動目的を同時に満たすことができる。
【0150】
図6に示したロボットのバランス維持のためには、Sliding Mode制御系(Sliding Mode Controller)701が別途構成される。制御ユニット70は、Sliding Mode制御系の出力として、前後方向x1の加速度目標値を得る。
【0151】
また、左右のグリッパーの位置及び姿勢をグローバル座標内で一定に保つ制御系(単純なPD制御)として、Left Hand Position Controller702、Left Hand Posture Controller703、Right Hand Position Controller704、Right Hand Posture Controller705が構成され、制御ユニット70は、各制御系からそれぞれ並進xyz方向x2,3,4、x8,9,10の加速度目標値と、回転xyz方向x5,6,7、x11,12,13の加速度目標値を得る。頭部の姿勢とベースの方位についても、Head Posture Controller706とBase Orientation Controller707が構成され、制御ユニット700は、各制御系から頭部の回転xyz方向x14,15,16及びベースの方位x17の加速度目標値を得る。
【0152】
制御ユニット700は、各制御系からそれぞれの加速度目標値を入力すると、図3〜図5に示した処理手順を実行して、各部位に対する加速度目標値を実現するための、駆動関節空間qAの関節力τAを得る。そして、制御ユニット700は、この関節力τAを用いてロボットの各駆動関節をトルク制御することで、すべての部位の運動目的を同時に満たすことができる。
【0153】
図8A〜図8Cには、ワインが注がれたグラスを左手のグリッパーで把持したロボットが、前後に押されたり左右にねじられたりして外力が印加されても、グラスのワインをこぼさずに保持している様子を示している。
【0154】
図9には、ロボットが後方に押された際の車輪の前後位置と左手先位置をそれぞれ示している。また、図10には、ロボットが後方に押された際のロボットの重心の位相平面上での変化(位置及び速度の変化)を示している。これらの図から、ロボットが、外力が印加されても、車輪位置を前後させながらも左手先位置を一定に保っている、すなわちバランスを保ちながら手先の位置及び姿勢を維持していることが分かる。
【0155】
なお、上式(18)に示した一般化逆力運動学によって、一般化ヤコビアンJGを用いて力fから関節力τAが求められることは、既に述べた通りである。一般化逆力運動学の別の応用として、上式(6)を用いて逆運動学演算を実行する際に、一般化ヤコビアンJGを高速算出するのにも用いることができる。具体的には、上記の一般化逆力運動学演算式(18)を下式(40)のように表記する。
【0156】
【数40】
【0157】
そして、ハイブリッド動力学演算部104は、関節空間q及び外力f以外をすべてゼロとし、i番目の操作空間にのみ第i成分が1の単位ベクトルeiからなる外力を作用させる。
【0158】
【数41】
【0159】
そして、このような外力fの作用条件下で、駆動関節空間の関節力を算出するハイブリッド動力学演算を操作空間数にわたり繰り返し実行させることによって、一般化ヤコビアンJG全体を求めることができる。上式(40)をO(N)の計算量で求めることができることから、一般化ヤコビアンJGもO(N)の計算量で求めることができる。
【産業上の利用可能性】
【0160】
以上、特定の実施形態を参照しながら、本発明について詳細に説明してきた。しかしながら、本発明の要旨を逸脱しない範囲で当業者が該実施形態の修正や代用を成し得ることは自明である。
【0161】
本発明によれば、倒立振子型ロボットや歩行ロボット、宇宙ロボットなど、力を発することのできない非駆動関節を有するロボットにおいて、全身の加速度オーダーの精密な制御を実時間で実行することが可能である。また、一般化ヤコビアンを用いた、従来の宇宙ロボット用インバースキネマティクスも、ロボットのリンク数Nに対してO(N)の計算複雑度で求めることが可能となり、多自由度なロボットほど処理負荷を低減させることができる。ゆえに、これらのロボットの普及を容易にすることができる。
【0162】
要するに、例示という形態で本発明を開示してきたのであり、本明細書の記載内容を限定的に解釈するべきではない。本発明の要旨を判断するためには、特許請求の範囲を参酌すべきである。
【符号の説明】
【0163】
100…制御システム
101…主モデル
102…補助モデル
103…順動力学演算部
104…ハイブリッド動力学演算部
105…一般化逆力運動学演算部
106…一般化操作空間慣性逆行列演算部
107…一般化操作空間バイアス加速度演算部
108…仮想外力算出部
109…全身協調力制御部
110…関節力制御部
【技術分野】
【0001】
本発明は、リンク構造物からなるロボットの制御装置及び制御方法、並びにコンピューター・プログラムに係り、特に、関節の一部が力を発することのない非駆動関節であるロボットの制御装置及び制御方法、並びにコンピューター・プログラムに関する。
【背景技術】
【0002】
倒立振子型のロボットや2足歩行型のロボットは、接地面積が小さいため、人と共存する際に邪魔になり難く、人にさまざまなサービスを提供することができる、という優れた側面を持っている。逆に、この種のロボットは、接地面積が小さいゆえに、タスク遂行のために環境から得られる外力に関する制約が厳しいという問題がある。倒立振子ロボットでは、支持点回りのモーメントを得ることができないし、2足歩行型のロボットでは、足底形状によって路面から得られるモーメントに不等式制約が課される。より極端な例として、宇宙ロボットが挙げられる。宇宙ロボットは、環境からの反力を一切得ることができない。これらのロボットは、関節の一部が力を発することのできない、非駆動関節としてモデル化できることを特徴としている。
【0003】
図11〜図13には、非駆動関節を有するロボットの関節構成を例示している。図11は、倒立振子型のロボットの関節構成例を示している。車輪の並進移動成分は、直動関節で表現され、車輪によるロボット全体の姿勢変化は、次に連結される回転関節で表される。ロボット全体は、この点回りに自由に回転し得ることから、この関節が非駆動関節として表現される。残りの関節は腕部の関節であり、いずれも駆動関節である。また、図12は、2足歩行型のロボットの関節構成例を示している。脚部の回転関節はいずれも駆動関節であり、その他、ロボット全体が空間内を自由に移動できることを表現するための、3自由度並進と3自由度回転からなる6自由度を有する。この6自由度は仮想的若しくは論理的な関節であり、実在しないため、力を発することができない。ゆえに、非駆動関節として表現されている。2足歩行型ロボットは、6自由度の非駆動関節を有する系としてモデル化されるが、足先から得られる力及びモーメント成分を利用して、全身の制御をすることができる。また、図13は、宇宙ロボットの関節構成例を示している。宇宙ロボットに搭載されるロボット・アームの関節は駆動関節として表現されるが、ロボット全体の3自由度並進と3自由度回転自由度については、6自由度の非駆動関節として表現される。宇宙ロボットは、2足歩行ロボットと異なり、外力を得ることができない。
【0004】
ロボットなどのリンク構造物において、例えば手先の位置に所望の速度を発生させるためには関節速度を得る必要がある。あるいは、所望の加速度を発生させるためには関節力を得る必要がある。駆動関節のみから構成される系では、関節速度のすべての成分、あるいは、関節加速度のすべての成分を制御することができる。ところが、非駆動関節が含まれる系では、非駆動関節の成分を制御することはできない、という問題がある。
【0005】
力制御系のロボット制御において重要な概念として、ロボットに作用する力と発生する加速度の関係を記述するための空間、すなわち操作空間(Operational Space)が挙げられる。例えば、ロボットの手先の位置を操作空間として定義して、手先に所望の加速度を発生させるための関節力を決定するのに操作空間が用いられる。操作空間の加速度を精密に制御するための方法が幾つか提案されているが(例えば、特許文献1、2を参照のこと)、いずれの方法もすべての関節が駆動関節である場合に対象が限定されている。
【先行技術文献】
【特許文献】
【0006】
【特許文献1】特開2009−95959号公報
【特許文献2】特開2010−188471号公報
【発明の概要】
【発明が解決しようとする課題】
【0007】
本発明の目的は、非駆動関節を含むロボットの加速度オーダーの精密な制御を実現することができる、優れたロボットの制御装置及び制御方法、並びにコンピューター・プログラムを提供することにある。
【課題を解決するための手段】
【0008】
本願は、上記課題を参酌してなされたものであり、請求項1に記載の発明は、
駆動関節及び非駆動関節を有するロボットの前記駆動関節を不動とした補助モデルを用いて、逆動力学と順動力学からなるハイブリッド動力学演算を実行して、関節加速度が既知である不動関節に作用する関節力と、関節力が既知である可動関節に発生する関節加速度を算出するハイブリッド動力学演算部と、
前記ロボットのすべての関節を可動とした主モデルを用いて、前記ロボットに作用する既知の力によって発生する加速度を算出する順動力学演算部と、
前記ハイブリッド動力学演算部及び前記順動力学演算部による演算結果に基づいて、前記ロボットの任意の部位に所望の目標加速度を発生させるための関節力を決定する関節力決定部と、
前記決定した関節力を制御目標値として、前記ロボットの各関節の関節力を制御する関節力制御部と、
を具備するロボットの制御装置である。
【0009】
本願の請求項2に記載の発明によれば、請求項1に記載のロボットの制御装置のハイブリッド動力学演算部によって得られた前記ロボットに作用する力を、一般化ヤコビアンを用いて関節力に変換するように構成されている。
【0010】
本願の請求項3に記載の発明によれば、請求項1に記載のロボットの制御装置の関節力決定部は、
関節値及び外力以外をすべてゼロとし、i番目の操作空間にのみ第i成分が1の単位ベクトルeiからなる外力を作用させる条件下で、前記順動力学演算部に前記順動力学演算をすべての操作空間にわたり繰り返し実行させることによって、一般化操作空間慣性逆行列を求める一般化操作空間慣性逆行列演算部と、
関節空間に発生する速度と重力のみが作用するという制約条件下で、前記順動力学演算部に前記順動力学演算を1回だけ実行させて、一般化操作空間バイアス加速度を求める一般化操作空間バイアス加速度演算部と、
前記一般化操作空間慣性逆行列及び前記一般化操作空間バイアス加速度を用いて表される操作空間に作用する力と加速度の関係式において、前記操作空間に発生する目標加速度を既知とし、それを達成するために前記操作空間に発する仮想的な外力fを解く仮想外力算出部と、
前記仮想外力算出部が求めた外力fを、一般化逆力運動学演算を用いて駆動関節の駆動関節力に変換する関節算出部と、
を備えている。
【0011】
本願の請求項4に記載の発明によれば、請求項3に記載のロボットの制御装置の仮想外力算出部は、前記関係式と前記ロボットと環境との間で形成される拘束条件からなる線形相補性問題を満足する前記仮想的な外力を、前記一般化操作空間慣性逆行列及び前記一般化操作空間バイアス加速度演算部を用いて求め、得られた力に基づいてリンクの関節力を決定するように構成されている。
【0012】
本願の請求項5に記載の発明によれば、請求項1に記載のロボットの制御装置のハイブリッド動力学演算部に、関節空間及び外力以外をすべてゼロとし、i番目の操作空間にのみ第i成分が1の単位ベクトルeiからなる外力を作用させる条件下で、駆動関節空間の関節力を算出するハイブリッド動力学演算を繰り返し実行させることによって、一般化ヤコビアンを求めるように構成されている。
【0013】
また、本願の請求項6に記載の発明は、
駆動関節及び非駆動関節を有するロボットの前記駆動関節を不動とした補助モデルを用いて、逆動力学と順動力学からなるハイブリッド動力学演算を実行して、関節加速度が既知である不動関節に作用する関節力と、関節力が既知である可動関節に発生する関節加速度を算出するハイブリッド動力学演算ステップと、
前記ロボットのすべての関節を可動とした主モデルを用いて、前記ロボットに作用する既知の力によって発生する加速度を算出する順動力学演算ステップと、
前記ハイブリッド動力学演算ステップ及び前記順動力学演算ステップによる演算結果に基づいて、前記ロボットの任意の部位に所望の目標加速度を発生させるための関節力を決定する関節力決定ステップと、
前記決定した関節力を制御目標値として、前記ロボットの各関節の関節力を制御する関節力制御ステップと、
を有するロボットの制御方法である。
【0014】
また、本願の請求項7に記載の発明は、駆動関節及び非駆動関節を有するロボットを制御するための処理をコンピューター上で実行するようにコンピューター可読形式で記述されたコンピューター・プログラムであって、前記コンピューターを、
前記ロボットの前記駆動関節を不動とした補助モデルを用いて、逆動力学と順動力学からなるハイブリッド動力学演算を実行して、関節加速度が既知である不動関節に作用する関節力と、関節力が既知である可動関節に発生する関節加速度を算出するハイブリッド動力学演算部、
前記ロボットのすべての関節を可動とした主モデルを用いて、前記ロボットに作用する既知の力によって発生する加速度を算出する順動力学演算部、
前記ハイブリッド動力学演算部及び前記順動力学演算部による演算結果に基づいて、前記ロボットの任意の部位に所望の目標加速度を発生させるための関節力を決定する関節力決定部、
前記決定した関節力を制御目標値として、前記ロボットの各関節の関節力を制御する関節力制御部、
として機能させるためのコンピューター・プログラムである。
【0015】
本願の請求項7に係るコンピューター・プログラムは、コンピューター上で所定の処理を実現するようにコンピューター可読形式で記述されたコンピューター・プログラムを定義したものである。換言すれば、本願の請求項7に係るコンピューター・プログラムをコンピューターにインストールすることによって、コンピューター上では協働的作用が発揮され、本願の請求項1に係るロボットの制御装置と同様の作用効果を得ることができる。
【発明の効果】
【0016】
本発明によれば、非駆動関節を含むロボットの加速度オーダーの精密な制御を、関節数Nに対してO(N)という少ない計算量で達成することができる、優れたロボットの制御装置及び制御方法、並びにコンピューター・プログラムを提供することができる。
【0017】
本発明のさらに他の目的、特徴や利点は、後述する本発明の実施形態や添付する図面に基づくより詳細な説明によって明らかになるであろう。
【図面の簡単な説明】
【0018】
【図1】図1は、非駆動関節を有したロボットを、全軸が可動なロボットのモデルと、駆動関節を不動とし、非駆動関節を可動とした補助モデルという2つのモデルで表現した図である。
【図2】図2は、主モデル及び補助モデルを用いた、非駆動関節を有するロボットの制御システム構成例を模式的に示した図である。
【図3】図3は、図2に示したロボットの制御システムにおいて実行される処理手順を示したフローチャートである。
【図4】図4は、一般化操作空間慣性逆行列演算部106により一般化操作空間慣性逆行列ΛG-1を算出するための処理手順を示したフローチャートである。
【図5】図5は、一般化操作空間慣性逆行列演算部106により一般化操作空間バイアス加速度cGを算出するための処理手順を示したフローチャートである。
【図6A】図6Aは、図1〜図3に示した制御系を適用する倒立振子型ロボットの構成例を示した図である。
【図6B】図6Bは、図1〜図3に示した制御系を適用する倒立振子型ロボットの構成例を示した図である。
【図6C】図6Cは、図6Bに示した倒立振子型ロボットのすべての関節を可動とした主モデルを示した図である。
【図6D】図6Fは、図6Bに示した倒立振子型ロボットの駆動関節を不動とするとともに非駆動関節を可動とした補助モデルを示した図である。
【図7】図7は、図6に示したロボットのバランスを保ちながら、機体の所定部位の位置や姿勢(方位)を一定に保つための制御系の構成例を示した図である。
【図8A】図8Aは、ワインが注がれたグラスをグリッパーで把持したロボットが、外力が印加されても、グラスのワインをこぼさずに保持している様子を示した図である。
【図8B】図8Bは、ワインが注がれたグラスをグリッパーで把持したロボットが、外力が印加されても、グラスのワインをこぼさずに保持している様子を示した図である。
【図8C】図8Cは、ワインが注がれたグラスをグリッパーで把持したロボットが、外力が印加されても、グラスのワインをこぼさずに保持している様子を示した図である。
【図9】図9は、ロボットが後方に押された際の車輪の前後位置と左手先位置をそれぞれ示した図である。
【図10】図10は、ロボットが後方に押された際のロボットの重心の位相平面上での変化(位置及び速度の変化)を示した図である。
【図11】図11は、倒立振子型のロボットの関節構成を示した図である。
【図12】図12は、2足歩行型のロボットの関節構成例を示した図である。
【図13】図13は、宇宙ロボットの関節構成例を示した図である。
【図14】図14は、床面に設置された多リンク構成の装置において、末端から基底の順序で情報を算出する通常の経路を示した図である。
【図15】図15は、床面に設置された多リンク構成の装置において、基底から末端に向かって速度情報を算出する通常の経路を示した図である。
【発明を実施するための形態】
【0019】
以下、図面を参照しながら本発明の実施形態について詳細に説明する。
【0020】
ロボットは、一般に、複数の剛体が連なって構成されるリンク構造物である。このうち倒立振子型のロボットや2足歩行型のロボット、宇宙ロボットなどは、関節の一部が力を発することのできない、非駆動関節としてモデル化することができる(前述並びに図11〜図13を参照のこと)。ロボットなどのリンク構造物において、例えば手先の位置に所望の速度を発生させるためには関節速度を得る必要がある。あるいは、所望の加速度を発生させるためには関節力を得る必要がある。駆動関節のみから構成される系では、関節速度のすべての成分、あるいは、関節加速度のすべての成分を直接に制御することができる。ところが、非駆動関節が含まれる系では、非駆動関節の成分を直接には制御できない、という問題がある。
【0021】
ここで、ロボットの運動方程式は、一般に、下式(1)のように表現される。
【0022】
【数1】
【0023】
上式(1)において、qは関節空間、τは関節空間qに発生する力、bは重力又はコリオリ力、Hはロボット(リンク構造全体)の関節空間に対する慣性行列、fは外力、Jは外力fの作用する空間を表すヤコビアンである。以下では、ロボットの第iリンクとその親リンクを接合している関節を第i関節とする。
【0024】
上記の運動方程式(1)を、駆動関節成分と非駆動関節成分に分けて表現すると、下式(2)に示す通りとなる。
【0025】
【数2】
【0026】
上式(2)において、インデックスAは駆動関節成分、インデックスUは非駆動関節成分をそれぞれ表す。非駆動関節を有するロボットとは、式(2)において、非駆動関節qUの関節力が常にゼロ、すなわちτU=0となるロボットを意味する。
【0027】
非駆動関節を有するロボットを制御する場合の重要な概念として、一般化ヤコビアンがある(例えば、Y.Umetami and K.Yoshida,“Resolved motion rate control of space manipulators with generalized Jacobianmatrix”(In IEEE Transactions on Robotics and Automation,5(3),June 1989)を参照のこと)。一般化ヤコビアンJGは、下式(3)で与えられる。
【0028】
【数3】
【0029】
力制御系のロボット制御において重要な概念として、ロボットに作用する力と発生する加速度の関係を記述する操作空間がある(前述)。例えば、ロボットの手先の位置を操作空間として定義して、手先に所望の加速度を発生させるための関節力を決定するのに操作空間が用いられる。通常、操作空間xの速度は、関節qの関節速度とヤコビアンJを用いて、下式(4)のように表わされる。
【0030】
【数4】
【0031】
ゆえに、操作空間xに所望の速度を発生するための関節速度を、下式(5)から得ることができる。但し、同式において、J#は、ヤコビアンJの擬似逆行列である。
【0032】
【数5】
【0033】
上式(5)に示す関係をNewton−Raphson法などの反復法とともに用いて、いわゆる逆運動学(Inverse Kinematics)演算も構成することができる。駆動関節のみから構成される系では、関節空間qのすべての速度成分を制御することができるので、上記の関係式(5)が有効である。これに対し、非駆動関節が含まれる系では、関節空間qの速度成分のうち非駆動関節成分は制御できないため、関係式(5)を適用することができない。しかしながら、系の全運動量がゼロに保存されているという前提では、以下の関係式(6)が成立する。
【0034】
【数6】
【0035】
上式(6)を用いれば、運動量がゼロに保たれている宇宙ロボットなどの逆運動学を構成することができる。しかし、この関係式(6)は、一般化ヤコビアンJGの定義式(3)をそのまま用いると、慣性行列Hを求める必要がある。関節数がNの系において慣性逆行列HのサイズはN×Nであり、慣性行列Hを求めるには計算量が膨大である。また、関係式(6)は、全運動量が保存されないケースでは成立しないうえ、速度レベルの制御手段しか提供しない。すなわち、この関係式(6)に基づいて、運動量が保存されないケースや、非駆動関節を有する系の加速度オーダーの精密な制御を実現するのは難しい。
【0036】
また、非駆動関節を含むFloatingBase の系の操作空間に発生する力を制御する方法も提案されている(例えば、Luis Sentis and Oussama Khatib,“Control of Free−Floating Humanoid Robots Through Task Prioritization”(Proceedings of the IEEE International Conference in Robotics and Automation,Barcelona,Spain,April 2005)を参照のこと)。しかしながら、上記の一般化ヤコビアンJGやそのNullSpace を求める必要があり、計算量が多い。
【0037】
また、操作空間の加速度を精密に制御するための方法が幾つか提案されているが(前述、並びに、特許文献1、2を参照のこと)、いずれの方法もすべての関節が駆動関節である場合に対象が限定されている。
【0038】
そこで、以下では、非駆動関節を含むロボットの加速度オーダーの精密な制御を、関節数Nに対してO(N)という少ない計算量で達成する方法について説明する。
【0039】
内力による運動を考えるため、上記で示した運動方程式(2)から外力項を除いた系を考える。上式(2)の上段及び下段のそれぞれより、以下の2式(7−1)、(7−2)を得ることができる。
【0040】
【数7】
【0041】
上式(7−1)を上式(2)の下段に代入すると、以下の駆動関節空間qAに関する運動方程式(8)を得ることができる。
【0042】
【数8】
【0043】
同様に、上式(7−2)を上式(2)の上段に代入すると、以下の非駆動関節空間qUに関する運動方程式(9)も得ることができる。
【0044】
【数9】
【0045】
一方、上記の操作空間xの速度と関節空間qの関節速度の関係を表した式(4)を微分して、下式(10)に示すように、操作空間xに発生する加速度を得ることができる。
【0046】
【数10】
【0047】
上式(10)に上式(7−1)を代入すると、下式(11)に示すように、操作空間xに発生する加速度を駆動関節空間qAの関節加速度で表わすことができる。
【0048】
【数11】
【0049】
上記の駆動関節空間qAに関する運動方程式(8)を用いて上式(11)から駆動関節空間qAの加速度を消去すると、下式(12)に示すように、操作空間xに発生する加速度を、駆動関節空間qA及び非駆動関節空間qUにそれぞれ発生させる関節力τA、τUで表現することができる。
【0050】
【数12】
【0051】
但し、HGは、一般化慣性行列(Generalized Inertia Matrix)であり、下式(13)のように表わされる。一般化慣性行列については、例えばY.Xu and T.Kanade,“Space Robotics:Dynamics and Control”(Prentice Hall,1992)を参照されたい。
【0052】
【数13】
【0053】
操作空間xに対し、仮想的な外力fを考え、下式(14)に示すように駆動関節空間qAの関節力τA及び非駆動関節空間qUの関節力τUからなる関節力τを発生するようにする(このようにfからτを得る演算は、「逆力運動学(Inverse Force Kinematics)」と呼ばれる)。
【0054】
【数14】
【0055】
このとき、上式(12)で示した操作空間xに発生する加速度は、下式(15)に示すように、外力fで表わすことができる。
【0056】
【数15】
【0057】
ここで、外力fの係数行列を、下式(16)に示すように、Λ-1とおく。この係数行列Λ-1は、操作空間慣性逆行列(Operational Inverse Inertia Matrix)として知られている。操作空間慣性逆行列Λ-1については、例えばO.Khatib,“A Unified Approach to Motion and Force Control of Robot Manipulators:The Operational Space Formulation”(In IEEE J.on Robotics and Automation,vol.3,no.1,1987,pp.43−53)を参照されたい。
【0058】
【数16】
【0059】
上式(16)中で、慣性行列Hの逆行列H-1は正定値対称行列であるから、JH-1JTすなわち操作空間慣性逆行列Λ-1も正定値対称行列である。正定値対称行列である操作空間慣性逆行列Λ-1は、数値計算上、線形相補正問題(Linear Comprementary Problem:LCP)として解くことができる。ゆえに、操作空間xに発生する加速度の目標値を実現するための外力fを安定に求めることができる。
【0060】
一方、制御対象のロボットに非駆動関節qUが存在すると、上式(14)中で、非駆動関節qUの関節力τUを発生することができない。且つ、上式(14)でτU=0(非駆動関節qUの関節力が常にゼロ)としたのでは、操作空間xに発生する加速度は下式(17)に示す通りとなり、外力fの係数行列JGHG-1JATは正定値対称行列とはならない。すなわち、外力fの係数行列を数値計算で解くことが困難になり、操作空間xに発生する加速度の目標値を実現するための外力fを安定に求めることができなくなる。
【0061】
【数17】
【0062】
ところが、仮想的な外力fにより発生する関節力τを、上式(14)に代えて、下式(18)のように表現すると、操作空間xに発生する加速度は下式(19)のように表わされる。下式(18)に示すように、一般化ヤコビアンJGを用いて、外力fから駆動関節空間qAの関節力τAを求める演算を、以下では「一般化逆力運動学(Generalized Inverse Force Kinematics)」と呼ぶことにする。
【0063】
【数18】
【0064】
【数19】
【0065】
上式(19)において、外力fの係数行列JGHG-1JGTは半正定値対称行列となる。一般化ヤコビアンJGがランク落ちすると、すべての固有値がゼロになり得るが、それ以外のケースでは正定値対称行列としての解法を用いることができる。
【0066】
以上をまとめると、上式(1)で示したロボットの運動方程式は、操作空間xに関するダイナミクスを表現する下式(20)に示すように変形することができる。
【0067】
【数20】
【0068】
上式(20)は、操作空間xに上式(18)で定義される力fを作用したときの、fと操作空間xに発生する加速度との関係を表している。但し、上式(20)で外力fの係数行列ΛG-1は、「一般化操作空間慣性逆行列(Generalized Operational Inverse Inertia Matrix)」と呼ぶ。また、上式(20)の右辺の定数項cGは、「一般化操作空間バイアス加速度(Generalilzed Operational Bias Accelaration)」と呼ぶ。一般化操作空間慣性逆行列ΛG-1並びに一般化操作空間バイアス加速度cGは、それぞれ下式(21)、(22)のように表わされる。
【0069】
【数21】
【0070】
【数22】
【0071】
一般化操作空間慣性逆行列ΛG-1及び一般化操作空間バイアス加速度cGが求められれば、上式(20)より、操作空間xに目標加速度を発生するための制御入力となる力f(言い換えれば、上式(20)を用いて力fから変換される、駆動関節空間qAの関節力τA)を決定することができる。
【0072】
例えば、本出願人に既に譲渡されている特開2007−108955号公報には、線形相補正問題(LCP)ソルバーなどを用いて操作空間慣性逆行列及び操作空間バイアス加速度を高速で且つ低い計算負荷で算出する方法について開示されている。
【0073】
しかしながら、一般化操作空間慣性逆行列ΛG-1及び一般化操作空間バイアス加速度cGをそれぞれ上記の定義式(21)及び(22)に従って求めると、計算量が多い。一般化慣性行列HGを得るには、まず慣性行列Hを得る必要がある。関節数がNの系において慣性行列HのサイズはN×Nであり、関節数Nに対しO(N2)の計算コストを要する。よって、インバージョン・コストを考えると、一般化慣性行列HGを得るには、関節数Nに対しO(N3)の計算コストがかかることになり、関節数が増加するにつれ急速に計算量が増大する。
【0074】
より少ない計算量で一般化操作空間慣性逆行列ΛG-1及び一般化操作空間バイアス加速度cGを求める方法について、以下で考えてみる。上式(20)で、右辺から左辺を得る計算は、外力や重力、速度積に関連する力(コリオリ力など)が作用したときの操作空間xにおける加速度を求める問題と見ることができる。操作空間xにおける加速度を求める点が通常の順動力学計算と異なるが、一種の順動力学演算と捉えることができる。順動力学演算FDGは、リンク構造物の力学モデルとしての関節空間q並びにその関節速度、重力g、並びに外力fをパラメータに持ち、下式(23)のように表現することができる。但し、下式(23)において、gは重力加速度である。
【0075】
【数23】
【0076】
この順動力学演算FDGによれば、関節空間qと、重力g、外力fといったリンク構造物に作用する力情報から、リンク構造物の各点に発生する加速度を得ることができる。
【0077】
ここで、上式(23)において、順動力学演算FDGの入力パラメータのうち関節空間q及び外力f以外をすべてゼロとする制約条件下では、重力、関節力、速度積に関連する力(コリオリ力など)が発生しない状況において操作空間xに発生する加速度を求めることができる。すなわち、式(22)において一般化操作空間バイアス加速度cG=0とすることができる。さらに、f=ei、すなわち、i番目の操作空間にのみ第i成分が1の単位ベクトルeiを作用させる条件下で上式(23)の計算を実行すると、一般化操作空間慣性逆行列ΛG-1の第i列を求めることができることが分る。よって、下式(24)の演算をすべての行iについて実行すれば、操作空間慣性逆行ΛG-1全体を得ることができる。
【0078】
【数24】
【0079】
また、外力f=0とし、順動力学演算FDGの入力パラメータのうち関節空間qに発生する速度と重力gのみが作用するという制約条件下で上式(24)の順動力学演算FDGを実行することで、下式(25)に示すように一般化操作空間バイアス加速度cGを算出することができる。
【0080】
【数25】
【0081】
順動力学演算は、当初は逆動力学演算(加速度から力を求める演算)を利用して構成する方法が一般的であったが、O(N3)の計算量を有し、自由度数が増すと演算量が嵩むという問題がある。これに対し、特開2007−108955号公報(前述)やR.Featherstone,“Robot Dynamics Algorithms”(Kluwer Academic Publishers,1987)には、ArticulatedBody法(以下、「AB法」とする)を用いてO(N)の計算複雑度で順動力学演算を構成する方法について記載されている。なお、AB法自体については、例えば、“The
calculation of robot dynamicsusing articulated−body inertias”(Int.J.RoboticsResearch,vol.2,no.1,pp.13−30,1983)に記載されている。特開2007−108955号公報に記載の順動力学演算の構成方法では、AB法をイナーシャ情報算出、速度情報算出、力情報算出、加速度情報算出の4つの過程に分解する。
【0082】
上記の順動力学演算式(23)を、AB法と同様にO(N)の計算複雑度で実現することができれば、上式(24)及び(25)より、一般化操作空間慣性逆行列ΛG-1及び一般化操作空間バイアス加速度cGについても同様の計算複雑度で算出できることになる。
【0083】
上記の順動力学演算式(23)が通常のAB法のプロセスと異なる点は、外力fによって発生する関節力τが、上式(14)ではなく上式(18)によって発生する点である。上記の定義式(3)に従って一般化ヤコビアンJGを算出すると、慣性行列Hの算出を経由しなければならず、O(N2)の計算量があるため効率がよくない。
【0084】
上記の運動方程式(2)を別な形式で書き直すと、下式(26)に示す通りとなる。
【0085】
【数26】
【0086】
すなわち、上式(26)の左辺から右辺を得る演算を、下式(27)のように表記することができる。
【0087】
【数27】
【0088】
上式(27)に示す演算は、加速度から作用する力を求める逆動力学と、力が作用したときに発生する加速度を求める順動力学の混合演算であり、「ハイブリッド動力学(Hybrid Dynamics:HD)」と呼ばれる。ハイブリッド動力学については、例えばR.Featherstone,“Robot Dynamics Algorithms”(Kluwer Academic Publishers,1987)(前述)を参照されたい。特に、「1.非駆動関節qUには関節力が発生しない(非駆動関節qUの関節力τUは既知である)」、「2.駆動関節qAは動かない(駆動関節qAの加速度は既知である)」、「3.関節qの速度はすべてゼロ、重力も作用しない」、すなわち下式(28−1)で表わされる補助モデルを考えると、下式(28−2)が成立することが分かる。
【0089】
【数28】
【0090】
上式(28−2)は、上式(28−1)で表わされる補助モデルのハイブリッド動力学演算の結果として得られる駆動関節力τAを符号反転したものは、上式(18)すなわち一般化逆力運動学の結果得られる駆動関節力τAに一致することを意味している。外力fに対して、このようにして得られた駆動関節力τAを作用してから、特開2007−108955号公報(前述)に記載の順動力学演算を実行することにより、一般化ヤコビアンJGで定義される操作空間xに関する上記の順動力学演算式(23)を実現することができる。特に、上記のハイブリッド動力学演算は、AB法を変形した、イナーシャ情報算出、速度情報算出、力情報算出、加速度情報算出の4つの過程に分解して、それぞれ以下に述べる演算によって、O(N)の計算量で実行することができる。したがって、一般化ヤコビアンJGで定義される操作空間xに関する順動力学演算式(23)全体も、O(N)の計算量で達成することが可能である。
【0091】
イナーシャ情報算出:
イナーシャ情報は、すべてのリンクのIAi(Articulated Body Inertia)を、下式(29)をロボット装置の末端から基底に向かって実行することで求める。図14には、床面に設置された多リンク構成の装置において、末端から基底の順序で情報を算出する通常の経路(Backword Propagation)を示している。
【0092】
【数29】
【0093】
上式(29)において、Iiはリンクiのイナーシャ、CF(i)はリンクiの関節力既知の子リンクのインデックス集合、CA(i)はリンクiの加速度既知の子リンクのインデックス集合とする。また、Siはリンクiの関節の運動自由度を表す行列である。
【0094】
速度情報算出:
速度情報は、すべてのリンクの原点の速度を、下式(30)をロボット装置の基底から末端に向かって実行することで求める。図15には、床面に設置された多リンク構成の装置において、基底から末端に向かって速度情報を算出する通常の経路(Forward Propagation)を示している。
【0095】
【数30】
【0096】
上式(30)において、viはリンクiの速度、pはその親リンクのインデックスとする。また、qiはリンクiの関節空間である。
【0097】
力情報算出:
力情報は、すべてのリンクのバイアス力pAiを、下式(31)〜(32)をロボット装置末端から基底に向かって実行することで求める(図14を参照のこと)。
【0098】
【数31】
【0099】
【数32】
【0100】
上式(31)において、fkはリンクiの中でk番目の外力、F(i)はリンクiに作用する外力のインデックス集合、τiはリンクiの関節力である。
【0101】
加速度情報算出:
加速度情報は、すべてのリンクの加速度aiを、下式(33)〜(35)を基底から末端に向かって実行することで求める(図15を参照のこと)。リンクiの関節が非駆動関節のときは下式(33)、(34)を実行し、リンクiの関節が駆動関節のときは下式(35)を実行する。
【0102】
【数33】
【0103】
【数34】
【0104】
【数35】
【0105】
なお、上記の計算で、速度情報算出の起点となる基底の速度はv0=0である。また、重力の効果は、加速度情報算出において、基底が重力加速度で上昇している、として考慮する。
【0106】
【数36】
【0107】
以上の計算を、イナーシャ情報算出⇒速度情報算出⇒力情報算出⇒加速度情報算出の順で実行することにより、ハイブリッド動力学演算を効率的に実行することができる。ひいては、一般化操作空間慣性逆行列ΛG-1及び一般化操作空間バイアス加速度cGを効率的に算出することが可能となり、非駆動関節を有したロボットであっても、リンク構造の任意の箇所において所望の加速度を発生させるための関節力を決定することができ、リンク構造物の任意の部位において精密な加速度操作が可能となる。
【0108】
操作空間をすべてまとめた変数としてx を考えると、すべての拘束は以下のような不等式を含む線形拘束条件式(37)〜(38)として記述することができる。
【0109】
【数37】
【0110】
【数38】
【0111】
ここで、wは一種のスラック変数である.また,上式(38)中でそれぞれ存在するLi及びUiは、i番目の操作空間に作用する仮想的な力fiの下限と上限をそれぞれ表す。
【0112】
上式(37)〜(38)は、線形相補性問題である。そして、一般化操作空間慣性逆行列ΛG-1及び一般化操作空間バイアス加速度cGが既知であれば、この線形相補性問題を解くことによって、線形拘束条件を満足する操作空間xに目標加速度を発生させるための仮想的な外力fを決定することができる。線形相補性問題の数学的な解法自体については、例えば“Fast Contact Force Computation for Nonpenetrating Rigid Bodies”(SIGGRAPH94,pp.23−34,1994)に記載されているので、本明細書では説明を省略する。
【0113】
線形相補性問題として操作空間xの目標加速度を発生させるための力fを求める場合の多くは、一般化操作空間慣性逆行列ΛG-1を得る部分において最も計算を要する。上述したように、本実施形態によれば、一般化操作空間慣性逆行列ΛG-1の算出を高速に行なうことができるので、ロボットの実機上でも実時間の処理が可能である。こうして力fが得られれば、拘束条件式(37)〜(38)を満足する関節力τ
を上式(18)に基づいて決定することができる。
【0114】
ここまでをまとめると、非駆動関節を有したロボット(Under Actuated System)を、図1に示すように、(1)すべての関節が可動関節(Movable Joint)となるロボットの主モデル(Fully Movable System)と、(2)駆動関節(Actuated Joint)を不動関節(Immovable Joint)とし、非駆動関節(Unactuated Joint)を可動関節とした補助モデル(Partially Rigid System)という2つのモデルの組み合わせによって表現することができる。そして、前者の主モデルでは通常の順動力学演算(上式(23)を参照のこと)を実行し、後者の補助モデルではハイブリッド動力学演算(上式(28−2)を参照のこと)を実行することで、系全体の操作空間物理量を効率的に求めて制御する。
【0115】
図2には、主モデル及び補助モデルを用いた、非駆動関節を有するロボットの制御システム構成例を模式的に示している。
【0116】
図示の制御システム100は、主モデル(Main Model:Fully Actuated System Model)101と、補助モデル(Auxiliary Model:Partially Rigid Model)102と、順動力学演算部(Forward Dynamics Executor)103と、ハイブリッド動力学演算部(Hybrid Dynamics Executor)104と、一般化逆力運動学演算部(Generalized Inverse Force Kinematics Executor)105と、一般化操作空間慣性逆行列演算部(Generalized Operational Inverse Inertia Calculator)106と、一般化操作空間バイアス加速度演算部(Generalized Operational Bias Acceleration Calculator)107と、仮想外力算出部(Linear Complementary Problem Solver)108と、全身協調力制御部(Whole−body Cooeperated Force Controller)109と、関節力制御部(Joint Force Controller)110で構成される。
【0117】
主モデル101は、すべての関節を可動関節(Movable Joint)としたロボットの動力学モデルである。一方、補助モデル102は、駆動関節を不動関節(Immovable Joint)とし、非駆動関節を可動関節としたロボットの動力学モデルである。補助モデル102では、「1.非駆動関節qUには関節力が発生しない(非駆動関節qUの関節力τUは既知である)」、「2.駆動関節qAは動かない(駆動関節qAの加速度は既知である)」、「3.関節qの速度はすべてゼロ、重力も作用しない」(前述)。図1中の中央に示したモデルが主モデル101に相当し、図1中の右に示したモデルが補助モデル102に相当する。
【0118】
ハイブリッド動力学演算部104は、補助モデル102を用いて、上記の逆動力学と順動力学の混合演算式(27)を実行して、関節加速度が既知の関節に作用する関節力と、関節力が既知の関節に発生する関節加速度をそれぞれ算出することができる。
【0119】
補助モデル102は、駆動関節に相当する不動関節と、非駆動関節に相当する可動関節が混在する系である。上式(28−1)で示したように、不動関節として扱われる駆動関節は、動かないという意味で関節加速度が既知であり、可動関節として扱われる非駆動関節は、関節力が発生しないという意味で関節力が既知である。補助モデル102を、関節加速度が既知である不動関節と、関節力が既知である可動関節が混在する系、と言い換えることができる。
【0120】
一般化逆力運動学演算部105は、上式(28−1)に示した条件をハイブリッド動力学演算部104に与えて上記の混合演算式(27)を実行させることで、補助モデル102上の不動関節すなわち駆動関節qAに作用する関節力τAと、可動関節すなわち非駆動関節qUに発生する関節加速度をそれぞれ算出する。また、一般化逆力運動学演算部105は、一般化逆力運動学演算を実行して(式(18)を参照のこと)、関節力τAからfを求める。
【0121】
順動力学演算部103は、主モデル101を用いて、上記の操作空間xに関する順動力学演算式(23)を実行して、操作空間xに発生する加速度を求める。ここで、外力fは、上式(14)により関節力に変換するのではなく、上式(18)によって関節力τAに変換する点で、特開2007−108955号公報(前述)に開示された操作空間物理量算出装置とは異なる点に留意されたい。このため、順動力学演算部103は、一般化逆力運動学演算部105に関節空間q及び外力fを与えて(IFKG(q,f))、一般化逆力運動学演算部105が求めた駆動関節の関節力τA(=JGTf)を用いて順動力学演算式(23)を実行する。
【0122】
一般化操作空間慣性逆行列演算部106は、上式(24)の条件に基づいて順動力学演算FDGを繰り返し実行して、上式(21)に示した一般化操作空間慣性逆行列ΛG-1を算出する。具体的には、一般化操作空間慣性逆行列演算部106は、順動力学演算部103に対する入力パラメータのうち関節空間q及び外力f以外をすべてゼロとする制約条件下で、さらに、f=ei、すなわち、i番目の操作空間にのみ単位力を作用させる条件下で、順動力学演算部103に上式(23)の計算を繰り返し実行させることによって、一般化操作空間慣性逆行列ΛG-1のすべての列の成分を求める。
【0123】
一般化操作空間バイアス加速度演算部107は、上式(25)の条件に基づいて順動力学演算FDGを1回だけ実行して、一般化操作空間バイアス加速度cGを算出する。具体的には、一般化操作空間バイアス加速度演算部107は、順動力学演算部103に対する入力パラメータのうち関節空間qに発生する速度と重力gのみが作用するという制約条件下で、順動力学演算部103に上式(23)の計算を1回だけ実行させることによって、一般化操作空間バイアス加速度cGを算出させる。
【0124】
仮想外力算出部108は、一般化操作空間慣性逆行列ΛG-1と一般化操作空間バイアス加速度cGを用いて表される操作空間xに作用する力と加速度の関係式(20)において、操作空間xに発生する目標加速度を既知とし、それを達成するために操作空間xに発する仮想的な外力fを解く。ここで、既知の目標加速度は、外部(インピーダンス・コントローラーなど)から仮想外力算出部108に入力される制御指令値である。例えば、仮想外力算出部108は、上記関係式(20)と、ロボットのリンク同士及びリンクと環境との間で形成される不等式拘束条件からなる線形相補性問題(LCP)として捉え、LCPソルバーを用いて、操作空間xに発生する加速度の目標値を実現するための外力fを安定に求めることができる(前述)。
【0125】
全身協調力制御部109は、仮想外力算出部108から得られた仮想的な外力fを、上式(18)で示した一般化逆力運動学演算を用いて駆動関節の駆動関節力τAに変換し、これを関節力制御部110の制御目標値として出力する。
【0126】
関節力制御部110は、全身協調力制御部109が作成した各関節の制御目標値を実現するように、ロボットの各駆動関節の関節力を制御する。精密に関節力を制御するには、例えば、本出願人に既に譲渡されている特開2009−269102号公報に開示されている、力制御を行なうアクチュエータ制御装置を適用することができる。また、同アクチュエータ制御装置には、アクチュエータに印加されるトルクを正確に計測するために、本出願人に既に譲渡されている特開2009−288198号公報に開示されているトルク計測装置を適用してもよい。
【0127】
図3には、図2に示したロボットの制御システムにおいて実行される処理手順をフローチャートの形式で示している。
【0128】
まず、上式(3)に示した一般化ヤコビアンJGに対応する操作空間xを定義する(ステップS31)。すなわち、ロボットの任意の部位に発生する加速度を制御する運動空間を定義する。例えば、ロボットの手先の位置を制御する場合、手先リンクと手先リンク座標系から見た手先の位置を指定する。
【0129】
次いで、操作空間xに発生させる目標加速度を設定する(ステップS32)。すなわち。操作空間xのダイナミクスを示した上式(20)の左辺を与える。操作空間xの加速度目標値が指定できれば、速度及び位置も指定できる。例えば、操作空間xの速度を制御したい場合は下式(39−1)に示すように速度目標値から加速度目標値を指定すればよいし、操作空間xの位置を制御したい場合は下式(39−2)に示すように位置目標値から加速度目標値を指定すればよい。但し、Kv、Kpはそれぞれ速度ゲイン、位置ゲインである。
【0130】
【数39】
【0131】
次いで、一般化操作空間慣性逆行列演算部106により、一般化操作空間慣性逆行列ΛG-1(式(21)を参照のこと)を算出する(ステップS33)。
【0132】
次いで、一般化操作空間バイアス加速度演算部107により、一般化操作空間バイアス加速度cGを算出する(ステップS34)。
【0133】
次いで、仮想外力算出部108は、先行するステップS33、S34で得られた一般化操作空間慣性逆行列ΛG-1と一般化操作空間バイアス加速度cGを用いて、上式(20)から、ステップS32で設定した目標加速度を達成するために操作空間xに発する仮想的な外力fを解く(ステップS35)。本実施形態では、仮想外力算出部108は、上記関係式(37)と、ロボットのリンク同士及びリンクと環境との間で形成される不等式拘束条件式(38)からなる線形相補性問題を、LCPソルバーを用いて解いて、拘束条件式(37)〜(38)を満足する満足する仮想外力fを求める。
【0134】
次いで、全身協調力制御部109は、先行するステップS35で得られた仮想外力fを、上式(18)で示した一般化逆力運動学演算を用いて駆動関節の駆動関節力τAに変換する(ステップS36)。
【0135】
そして、関節力制御部110は、先行するステップS36で得られた関節力τAを各関節の制御目標値とし、これを実現するように、ロボットの各駆動関節の関節力を制御する(ステップS37)。
【0136】
図2に示したロボットの制御システム100では、図3に示した処理手順を、例えば1KHzの制御周波数で実行する。
【0137】
図4には、図3に示したフローチャート中のステップS33において、一般化操作空間慣性逆行列演算部106により一般化操作空間慣性逆行列ΛG-1を算出するための処理手順をフローチャートの形式で示している。
【0138】
まず、一般化操作空間慣性逆行列演算部106は、列インデクスiを初期値0に設定する(ステップS41)。
【0139】
次いで、一般化逆力運動学演算部105は、関節空間q及び外力f以外をすべてゼロとする制約条件下で、さらに、f=ei、すなわち、i番目の操作空間にのみ単位力を作用させる条件下で、駆動関節空間qAに発生する等価関節力τAを求める(ステップS42)。
【0140】
次いで、順動力学演算部103は、一般化逆力運動学演算部105が求めた駆動関節の関節力τA(=JGTf)を用いて順動力学演算式(23)を実行して、すべての操作空間に発生する加速度を求める(ステップS43)。すなわち、順動力学演算部103は、上式(24)を実行する。
【0141】
次いで、一般化操作空間慣性逆行列演算部106は、このようにして得られた加速度を、一般化操作空間慣性逆行列ΛG-1の第i列に代入する(ステップS44)。
【0142】
そして、一般化操作空間慣性逆行列演算部106は、列インデクスiを1だけ増分し(ステップS45)、iが操作空間数に到達するまで(ステップS46のNo)、ステップS42〜S45の処理ルーチンを繰り返し実行する。このようにして、一般化操作空間慣性逆行列演算部106は、一般化操作空間慣性逆行列ΛG-1全体を得ることができる。
【0143】
図5には、図3に示したフローチャート中のステップS34において、一般化操作空間バイアス加速度演算部107により一般化操作空間バイアス加速度cGを算出するための処理手順をフローチャートの形式で示している。
【0144】
一般化操作空間バイアス加速度演算部107は、関節空間qに発生する速度と重力gのみが作用するという制約条件下で上式(24)の順動力学演算FDGを1回だけ実行して、上式(22)に示した一般化操作空間バイアス加速度cGを上式(25)に示すように算出する(ステップS51)。
【0145】
そして、一般化操作空間バイアス加速度演算部107は、求めた一般化操作空間バイアス加速度cGを、操作空間xのダイナミクスを示した上式(20)に代入する(ステップS52)。
【0146】
以下では、図1〜図3に示した制御系を、図6Aに示す倒立振子型ロボットに適用した例について説明する。図示のロボットは、肩3自由度、肘2自由度、手首2自由度、及びグリッパー1自由度を有する左右の腕部を備えている。また、同ロボットは、頭部には2自由度、腰部に1自由度、対向2輪の車輪を有している。同ロボットは、車輪以外の接地点を持たない。
【0147】
図6Aに示したロボットの各関節に、例えば特開2009−288198号公報に開示されているトルク計測装置を搭載して、精密にトルク制御することができる。ロボットの体中に分散して配置された複数のサテライトCPU(Central Processing Unit)でそれぞれトルク制御が実行され、各サテライトCPUはリアルタイムLAN(Local Area Network)を介して中央のCPUと通信するものとする。また、ロボットの機体にはIMU(Inertial Measurement Unit)が搭載され、カルマン(Kalman)フィルタを用いた姿勢演算が行なわれるものとする。この演算値も、リアルタイムLANを介して中央のCPUに転送される。
【0148】
本出願人に既に譲渡されている特開2010−188471号公報には、図6Aに示したものと同様の対向2輪型移動ロボットを、枝分かれのあるマニピュレーターとして表現した対向2輪等価モデルについて開示されている。図6Bに示すように、対向2輪等価関節に続いて非駆動関節を1つ挿入して表現することで、同ロボット全体を倒立振子型の2輪ロボットとしてモデル化する。図6Cには、図6Bに示した倒立振子型ロボットのすべての関節を可動とした主モデルを示している。また、図6Dには、図6Bに示した倒立振子型ロボットの駆動関節を不動とするとともに非駆動関節を可動とした補助モデルを示している。
【0149】
図7には、図6に示したロボットのバランスを保ちながら、機体の所定部位の位置や姿勢(方位)を一定に保つための制御系の構成例を示している。図示のように、制御ユニット700には、さまざまな部位に対する加速度目標値が入力される。制御ユニット700は、図3〜図5に示した処理手順を実行して、各部位に対する加速度目標値を実現するための、駆動関節空間qAの関節力τAを得る。そして、制御ユニット700は、この関節力τAを用いてロボットの各駆動関節をトルク制御することで、すべての部位の運動目的を同時に満たすことができる。
【0150】
図6に示したロボットのバランス維持のためには、Sliding Mode制御系(Sliding Mode Controller)701が別途構成される。制御ユニット70は、Sliding Mode制御系の出力として、前後方向x1の加速度目標値を得る。
【0151】
また、左右のグリッパーの位置及び姿勢をグローバル座標内で一定に保つ制御系(単純なPD制御)として、Left Hand Position Controller702、Left Hand Posture Controller703、Right Hand Position Controller704、Right Hand Posture Controller705が構成され、制御ユニット70は、各制御系からそれぞれ並進xyz方向x2,3,4、x8,9,10の加速度目標値と、回転xyz方向x5,6,7、x11,12,13の加速度目標値を得る。頭部の姿勢とベースの方位についても、Head Posture Controller706とBase Orientation Controller707が構成され、制御ユニット700は、各制御系から頭部の回転xyz方向x14,15,16及びベースの方位x17の加速度目標値を得る。
【0152】
制御ユニット700は、各制御系からそれぞれの加速度目標値を入力すると、図3〜図5に示した処理手順を実行して、各部位に対する加速度目標値を実現するための、駆動関節空間qAの関節力τAを得る。そして、制御ユニット700は、この関節力τAを用いてロボットの各駆動関節をトルク制御することで、すべての部位の運動目的を同時に満たすことができる。
【0153】
図8A〜図8Cには、ワインが注がれたグラスを左手のグリッパーで把持したロボットが、前後に押されたり左右にねじられたりして外力が印加されても、グラスのワインをこぼさずに保持している様子を示している。
【0154】
図9には、ロボットが後方に押された際の車輪の前後位置と左手先位置をそれぞれ示している。また、図10には、ロボットが後方に押された際のロボットの重心の位相平面上での変化(位置及び速度の変化)を示している。これらの図から、ロボットが、外力が印加されても、車輪位置を前後させながらも左手先位置を一定に保っている、すなわちバランスを保ちながら手先の位置及び姿勢を維持していることが分かる。
【0155】
なお、上式(18)に示した一般化逆力運動学によって、一般化ヤコビアンJGを用いて力fから関節力τAが求められることは、既に述べた通りである。一般化逆力運動学の別の応用として、上式(6)を用いて逆運動学演算を実行する際に、一般化ヤコビアンJGを高速算出するのにも用いることができる。具体的には、上記の一般化逆力運動学演算式(18)を下式(40)のように表記する。
【0156】
【数40】
【0157】
そして、ハイブリッド動力学演算部104は、関節空間q及び外力f以外をすべてゼロとし、i番目の操作空間にのみ第i成分が1の単位ベクトルeiからなる外力を作用させる。
【0158】
【数41】
【0159】
そして、このような外力fの作用条件下で、駆動関節空間の関節力を算出するハイブリッド動力学演算を操作空間数にわたり繰り返し実行させることによって、一般化ヤコビアンJG全体を求めることができる。上式(40)をO(N)の計算量で求めることができることから、一般化ヤコビアンJGもO(N)の計算量で求めることができる。
【産業上の利用可能性】
【0160】
以上、特定の実施形態を参照しながら、本発明について詳細に説明してきた。しかしながら、本発明の要旨を逸脱しない範囲で当業者が該実施形態の修正や代用を成し得ることは自明である。
【0161】
本発明によれば、倒立振子型ロボットや歩行ロボット、宇宙ロボットなど、力を発することのできない非駆動関節を有するロボットにおいて、全身の加速度オーダーの精密な制御を実時間で実行することが可能である。また、一般化ヤコビアンを用いた、従来の宇宙ロボット用インバースキネマティクスも、ロボットのリンク数Nに対してO(N)の計算複雑度で求めることが可能となり、多自由度なロボットほど処理負荷を低減させることができる。ゆえに、これらのロボットの普及を容易にすることができる。
【0162】
要するに、例示という形態で本発明を開示してきたのであり、本明細書の記載内容を限定的に解釈するべきではない。本発明の要旨を判断するためには、特許請求の範囲を参酌すべきである。
【符号の説明】
【0163】
100…制御システム
101…主モデル
102…補助モデル
103…順動力学演算部
104…ハイブリッド動力学演算部
105…一般化逆力運動学演算部
106…一般化操作空間慣性逆行列演算部
107…一般化操作空間バイアス加速度演算部
108…仮想外力算出部
109…全身協調力制御部
110…関節力制御部
【特許請求の範囲】
【請求項1】
駆動関節及び非駆動関節を有するロボットの前記駆動関節を不動とした補助モデルを用いて、逆動力学と順動力学からなるハイブリッド動力学演算を実行して、関節加速度が既知である不動関節に作用する関節力と、関節力が既知である可動関節に発生する関節加速度を算出するハイブリッド動力学演算部と、
前記ロボットのすべての関節を可動とした主モデルを用いて、前記ロボットに作用する既知の力によって発生する加速度を算出する順動力学演算部と、
前記ハイブリッド動力学演算部及び前記順動力学演算部による演算結果に基づいて、前記ロボットの任意の部位に所望の目標加速度を発生させるための関節力を決定する関節力決定部と、
前記決定した関節力を制御目標値として、前記ロボットの各関節の関節力を制御する関節力制御部と、
を具備するロボットの制御装置。
【請求項2】
前記ハイブリッド動力学演算部によって得られた前記ロボットに作用する力を、一般化ヤコビアンを用いて関節力に変換する、
請求項1に記載のロボットの制御装置。
【請求項3】
前記関節力決定部は、
関節空間及び外力以外をすべてゼロとし、i番目の操作空間にのみ第i成分が1の単位ベクトルeiからなる外力を作用させる条件下で、前記順動力学演算部に前記順動力学演算をすべての操作空間にわたり繰り返し実行させることによって、一般化操作空間慣性逆行列を求める一般化操作空間慣性逆行列演算部と、
関節空間に発生する速度と重力のみが作用するという制約条件下で、前記順動力学演算部に前記順動力学演算を1回だけ実行させて、一般化操作空間バイアス加速度を求める一般化操作空間バイアス加速度演算部と、
前記一般化操作空間慣性逆行列及び前記一般化操作空間バイアス加速度を用いて表される操作空間に作用する力と加速度の関係式において、前記操作空間に発生する目標加速度を既知とし、それを達成するために前記操作空間に発する仮想的な外力fを解く仮想外力算出部と、
前記仮想外力算出部が求めた外力fを、一般化逆力運動学演算を用いて駆動関節の駆動関節力に変換する関節算出部と、
を備える請求項1に記載のロボットの制御装置。
【請求項4】
前記仮想外力算出部は、前記関係式と前記ロボットと環境との間で形成される拘束条件からなる線形相補性問題を満足する前記仮想的な外力を、前記一般化操作空間慣性逆行列及び前記一般化操作空間バイアス加速度演算部を用いて求め、得られた力に基づいてリンクの関節力を決定する、
請求項3に記載のロボットの制御装置。
【請求項5】
前記ハイブリッド動力学演算部に、関節空間及び外力以外をすべてゼロとし、i番目の操作空間にのみ第i成分が1の単位ベクトルeiからなる外力を作用させる条件下で、駆動関節空間の関節力を算出するハイブリッド動力学演算を繰り返し実行させることによって、一般化ヤコビアンを求める、
請求項1に記載のロボットの制御装置。
【請求項6】
駆動関節及び非駆動関節を有するロボットの前記駆動関節を不動とした補助モデルを用いて、逆動力学と順動力学からなるハイブリッド動力学演算を実行して、関節加速度が既知である不動関節に作用する関節力と、関節力が既知である可動関節に発生する関節加速度を算出するハイブリッド動力学演算ステップと、
前記ロボットのすべての関節を可動とした主モデルを用いて、前記ロボットに作用する既知の力によって発生する加速度を算出する順動力学演算ステップと、
前記ハイブリッド動力学演算ステップ及び前記順動力学演算ステップによる演算結果に基づいて、前記ロボットの任意の部位に所望の目標加速度を発生させるための関節力を決定する関節力決定ステップと、
前記決定した関節力を制御目標値として、前記ロボットの各関節の関節力を制御する関節力制御ステップと、
を有するロボットの制御方法。
【請求項7】
駆動関節及び非駆動関節を有するロボットを制御するための処理をコンピューター上で実行するようにコンピューター可読形式で記述されたコンピューター・プログラムであって、前記コンピューターを、
前記ロボットの前記駆動関節を不動とした補助モデルを用いて、逆動力学と順動力学からなるハイブリッド動力学演算を実行して、関節加速度が既知である不動関節に作用する関節力と、関節力が既知である可動関節に発生する関節加速度を算出するハイブリッド動力学演算部、
前記ロボットのすべての関節を可動とした主モデルを用いて、前記ロボットに作用する既知の力によって発生する加速度を算出する順動力学演算部、
前記ハイブリッド動力学演算部及び前記順動力学演算部による演算結果に基づいて、前記ロボットの任意の部位に所望の目標加速度を発生させるための関節力を決定する関節力決定部、
前記決定した関節力を制御目標値として、前記ロボットの各関節の関節力を制御する関節力制御部、
として機能させるためのコンピューター・プログラム。
【請求項1】
駆動関節及び非駆動関節を有するロボットの前記駆動関節を不動とした補助モデルを用いて、逆動力学と順動力学からなるハイブリッド動力学演算を実行して、関節加速度が既知である不動関節に作用する関節力と、関節力が既知である可動関節に発生する関節加速度を算出するハイブリッド動力学演算部と、
前記ロボットのすべての関節を可動とした主モデルを用いて、前記ロボットに作用する既知の力によって発生する加速度を算出する順動力学演算部と、
前記ハイブリッド動力学演算部及び前記順動力学演算部による演算結果に基づいて、前記ロボットの任意の部位に所望の目標加速度を発生させるための関節力を決定する関節力決定部と、
前記決定した関節力を制御目標値として、前記ロボットの各関節の関節力を制御する関節力制御部と、
を具備するロボットの制御装置。
【請求項2】
前記ハイブリッド動力学演算部によって得られた前記ロボットに作用する力を、一般化ヤコビアンを用いて関節力に変換する、
請求項1に記載のロボットの制御装置。
【請求項3】
前記関節力決定部は、
関節空間及び外力以外をすべてゼロとし、i番目の操作空間にのみ第i成分が1の単位ベクトルeiからなる外力を作用させる条件下で、前記順動力学演算部に前記順動力学演算をすべての操作空間にわたり繰り返し実行させることによって、一般化操作空間慣性逆行列を求める一般化操作空間慣性逆行列演算部と、
関節空間に発生する速度と重力のみが作用するという制約条件下で、前記順動力学演算部に前記順動力学演算を1回だけ実行させて、一般化操作空間バイアス加速度を求める一般化操作空間バイアス加速度演算部と、
前記一般化操作空間慣性逆行列及び前記一般化操作空間バイアス加速度を用いて表される操作空間に作用する力と加速度の関係式において、前記操作空間に発生する目標加速度を既知とし、それを達成するために前記操作空間に発する仮想的な外力fを解く仮想外力算出部と、
前記仮想外力算出部が求めた外力fを、一般化逆力運動学演算を用いて駆動関節の駆動関節力に変換する関節算出部と、
を備える請求項1に記載のロボットの制御装置。
【請求項4】
前記仮想外力算出部は、前記関係式と前記ロボットと環境との間で形成される拘束条件からなる線形相補性問題を満足する前記仮想的な外力を、前記一般化操作空間慣性逆行列及び前記一般化操作空間バイアス加速度演算部を用いて求め、得られた力に基づいてリンクの関節力を決定する、
請求項3に記載のロボットの制御装置。
【請求項5】
前記ハイブリッド動力学演算部に、関節空間及び外力以外をすべてゼロとし、i番目の操作空間にのみ第i成分が1の単位ベクトルeiからなる外力を作用させる条件下で、駆動関節空間の関節力を算出するハイブリッド動力学演算を繰り返し実行させることによって、一般化ヤコビアンを求める、
請求項1に記載のロボットの制御装置。
【請求項6】
駆動関節及び非駆動関節を有するロボットの前記駆動関節を不動とした補助モデルを用いて、逆動力学と順動力学からなるハイブリッド動力学演算を実行して、関節加速度が既知である不動関節に作用する関節力と、関節力が既知である可動関節に発生する関節加速度を算出するハイブリッド動力学演算ステップと、
前記ロボットのすべての関節を可動とした主モデルを用いて、前記ロボットに作用する既知の力によって発生する加速度を算出する順動力学演算ステップと、
前記ハイブリッド動力学演算ステップ及び前記順動力学演算ステップによる演算結果に基づいて、前記ロボットの任意の部位に所望の目標加速度を発生させるための関節力を決定する関節力決定ステップと、
前記決定した関節力を制御目標値として、前記ロボットの各関節の関節力を制御する関節力制御ステップと、
を有するロボットの制御方法。
【請求項7】
駆動関節及び非駆動関節を有するロボットを制御するための処理をコンピューター上で実行するようにコンピューター可読形式で記述されたコンピューター・プログラムであって、前記コンピューターを、
前記ロボットの前記駆動関節を不動とした補助モデルを用いて、逆動力学と順動力学からなるハイブリッド動力学演算を実行して、関節加速度が既知である不動関節に作用する関節力と、関節力が既知である可動関節に発生する関節加速度を算出するハイブリッド動力学演算部、
前記ロボットのすべての関節を可動とした主モデルを用いて、前記ロボットに作用する既知の力によって発生する加速度を算出する順動力学演算部、
前記ハイブリッド動力学演算部及び前記順動力学演算部による演算結果に基づいて、前記ロボットの任意の部位に所望の目標加速度を発生させるための関節力を決定する関節力決定部、
前記決定した関節力を制御目標値として、前記ロボットの各関節の関節力を制御する関節力制御部、
として機能させるためのコンピューター・プログラム。
【図1】
【図2】
【図3】
【図4】
【図5】
【図6A】
【図6B】
【図6C】
【図6D】
【図7】
【図8A】
【図8B】
【図8C】
【図9】
【図10】
【図11】
【図12】
【図13】
【図14】
【図15】
【図2】
【図3】
【図4】
【図5】
【図6A】
【図6B】
【図6C】
【図6D】
【図7】
【図8A】
【図8B】
【図8C】
【図9】
【図10】
【図11】
【図12】
【図13】
【図14】
【図15】
【公開番号】特開2012−81568(P2012−81568A)
【公開日】平成24年4月26日(2012.4.26)
【国際特許分類】
【出願番号】特願2010−231640(P2010−231640)
【出願日】平成22年10月14日(2010.10.14)
【出願人】(000002185)ソニー株式会社 (34,172)
【Fターム(参考)】
【公開日】平成24年4月26日(2012.4.26)
【国際特許分類】
【出願日】平成22年10月14日(2010.10.14)
【出願人】(000002185)ソニー株式会社 (34,172)
【Fターム(参考)】
[ Back to top ]