説明

ロボットの制御装置

【課題】関節とこれを駆動するアクチュエータとの間の動力伝達系にばね部材を備えた移動ロボットのふらつきを防止しつつ、該移動ロボットの所望の動作を安定に行なうことを可能とする。
【解決手段】移動ロボット1の運動状態量目標値は、移動ロボット1全体の並進運動量の1階微分値の鉛直方向成分の目標値を少なくとも含み、この目標値は、移動ロボット1の全体重心点の鉛直方向の位置の観測値をフィードバック制御則により所定の目標値に収束させるように状態量目標値決定部84で決定される。制御入力決定部85は、運動状態量目標値を用いて逆動力学演算の処理を実行することにより、各関節の目標駆動力を決定する。この目標駆動力に応じてアクチュエータ50の動作が制御される。

【発明の詳細な説明】
【技術分野】
【0001】
本発明は、脚式移動ロボット等の移動ロボットの制御装置に関する。
【背景技術】
【0002】
2足歩行ロボット等の脚式移動ロボットの制御技術としては、例えば特許文献1等にて本願出願人が提案した技術の如く、ロボットの目標とする運動(ロボットの脚体先端部の目標位置の軌道等)に応じてロボットの各関節の目標変位量を逐次決定し、その目標変位量に実際の変位量を一致させるように各関節のアクチュエータの駆動制御を行う、所謂、位置制御が一般的に知られている。
【0003】
このような位置制御は、関節の目標変位量が一定である限り、該関節の実際の変位量^\一定に保持するものであるから、ロボットに作用する外力の変化に対する柔軟性が乏しい。
【0004】
このため、例えば、特許文献2に見られる如く、関節とアクチュエータとの間にばね部材を介装することで関節に柔軟性を持たせると共に、ロボットの目標とする運動を実現するための各関節の目標駆動力を逆動力学演算により決定し、所謂、力制御によって、各関節の実際の駆動力を目標駆動力に制御する技術も知られている。
【先行技術文献】
【特許文献】
【0005】
【特許文献1】特開平5−305579号公報
【特許文献2】特開2007−160446号公報
【発明の概要】
【発明が解決しようとする課題】
【0006】
ところで、2足歩行ロボット等の移動ロボットにおいて、前記特許文献2に見られる技術の如く、関節とアクチュエータとの間にばね部材を備えた場合には、ロボットに作用する外力の変化等に応じて、ロボットの各関節の変位量が変動しやすいことから、ロボットの全体重心点のふらつきが生じやすくなる。
【0007】
特にロボットの全体重心点の位置が鉛直方向に変動すると、それに伴い、該全体重心点の鉛直方向の振動が発生し易く、その振動が共振状の振動に発展する恐れもある。そして、このような振動が発生すると、ロボットの所望の動作を安定に行なうことが困難になる恐れがある。
【0008】
本発明は、かかる背景に鑑みてなされてものであり、関節とこれを駆動するアクチュエータとの間の動力伝達系にばね部材を備えた移動ロボットのふらつきを防止しつつ、該移動ロボットの所望の動作を安定に行なうことを可能とする制御装置を提供することを目的とする。
【課題を解決するための手段】
【0009】
本発明のロボットの制御装置は、かかる目的を達成するために、関節を介して相互に連結された複数のリンクと、各関節を駆動するアクチュエータとを備えると共に、各関節とアクチューエータとの間の動力伝達系に、該該アクチュエータが発生する動力を弾性力に変換して該関節に付与するばね部材を備える移動ロボットの制御装置であって、
前記移動ロボットの各関節の変位量と該移動ロボットの所定の代表リンクのグローバル座標系での位置及び姿勢とを成分として構成されるベクトルである該移動ロボットの一般化変数ベクトルの値に依存する値を有する該移動ロボットの所定種類の運動状態量に関する目標値である運動状態量目標値を決定する運動状態量目標値決定手段と、
前記決定された運動状態量目標値が入力され、少なくとも該運動状態量目標値を用いて逆動力学演算の処理を実行することによって前記移動ロボットの各関節に付与すべき目標駆動力を決定する目標駆動力決定手段と、
少なくとも前記決定された目標駆動力に応じて、前記アクチュエータの動作を制御するアクチュエータ制御手段とを備え、
前記運動状態量目標値は、前記移動ロボットの全体の並進運動量の1階微分値の鉛直方向成分の目標値を少なくとも含んでおり、前記運動状態量目標値決定手段は、前記移動ロボットの全体重心点の鉛直方向の位置の観測値をフィードバック制御則により所定の目標値に収束させるように前記並進運動量の1階微分値の鉛直方向成分の目標値を決定する手段を有することを特徴とする(第1発明)。
【0010】
補足すると、本発明においては、前記代表リンクの「位置」は、該リンクに対して固定された代表点の空間的な位置を意味し、代表リンクの「姿勢」は、該リンクの空間的な向きを意味する。なお、前記代表リンクは、移動ロボットのリンクのうちの任意のリンクでよい。
【0011】
かかる第1発明によれば、前記目標駆動力決定手段は、前記運動状態量目標値決定手段により決定された運動状態量目標値を用いて逆動力学演算の処理(ここで言う逆動力学演算とは、制御したい状態量(運動状態量の目標値)と、ロボットに作用する外力とから、ロボットの各関節に付与し得る駆動力を生成する計算のこと)を実行することによって前記移動ロボットの各関節に付与すべき目標駆動力を決定する。これにより、前記運動状態量目標値を実現し得る目標駆動力が決定される。そして、少なくともこの目標駆動力に応じて、アクチュエータの動作がアクチュエータ制御手段により制御される。
【0012】
この場合、第1発明では、前記運動状態量目標値決定手段が決定する運動状態量目標値には、運動状態量目標値には、前記移動ロボットの全体の並進運動量の1階微分値(時間的変化率)の鉛直方向成分の目標値が含まれる。そして、この並進運動量の1階微分値の鉛直方向成分の目標値、ひいては、移動ロボットの全体重心点の並進運動によって発生する慣性力(並進慣性力)の鉛直方向成分の目標値が、前記移動ロボットの全体重心点の鉛直方向の位置の観測値をフィードバック制御則により所定の目標値に収束させるように決定される。さらに、この並進慣性力の鉛直方向成分の目標値を実現し得るように、移動ロボットの各関節に付与すべき前記目標駆動力が決定されることとなる。
【0013】
なお、移動ロボットの全体重心点の鉛直方向の位置の観測値は、例えば、移動ロボットの各関節の変位量の計測値から、該移動ロボットの幾何学モデルを用いて推定することができる。
【0014】
これにより、第1発明によれば、移動ロボットの実際の全体重心点の鉛直方向位置が所定の目標値からずれるのを防止するようにしつつ、各関節に付与する目標駆動力を制御できる。この場合、上記移動ロボットの全体重心点の鉛直方向の位置の目標値は、移動ロボットの目標とする動作に適した値に設定しておけばよい。
【0015】
この結果、第1発明によれば、移動ロボットのふらつきを防止しつつ、該移動ロボットの所望の動作を安定に行なうことが可能となる。
【0016】
かかる第1発明においては、前記運動状態量目標値は、前記移動ロボットの全体の並進運動量の1階微分値の水平方向成分の目標値をさらに含んでおり、前記運動状態量目標値決定手段は、前記移動ロボットの全体重心点の水平方向の位置の観測値をフィードバック制御則により所定の目標値に収束させるように前記並進運動量の1階微分値の水平方向成分の目標値を決定する手段をさらに有することが好ましい(第2発明)。
【0017】
この第2発明によれば、前記移動ロボットの全体重心点の水平方向の位置の観測値をフィードバック制御則により所定の目標値に収束させるように決定された、前記移動ロボットの全体の並進運動量の1階微分値の水平方向成分の目標値が、前記運動状態量目標値に含まれる。
【0018】
従って、結果的には、移動ロボットの全体重心点の並進運動によって発生する慣性力(並進慣性力)の鉛直方向成分の目標値が、前記移動ロボットの全体重心点の鉛直方向の位置の観測値を所定の目標値に収束させるように決定されることに加えて、該並進慣性力の水平方向成分の目標値が、前記移動ロボットの全体重心点の水平方向の位置の観測値を所定の目標値に収束させるように決定されることとなる。さらに、この並進慣性力の鉛直方向成分の目標値及び水平方向の目標値を実現し得るように、移動ロボットの各関節に付与すべき前記目標駆動力が決定されることとなる。
【0019】
なお、移動ロボットの全体重心点の水平方向の位置の観測値は、鉛直方向の位置の観測値と同様に、例えば、移動ロボットの各関節の変位量の計測値から、該移動ロボットの幾何学モデルを用いて推定することができる。
【0020】
これにより、第2発明によれば、移動ロボットの実際の全体重心点の鉛直方向位置及び水平方向位置(すなわち空間的な位置)が所定の目標値からずれるのを防止するようにしつつ、各関節に付与する目標駆動力を制御できる。この場合、上記移動ロボットの全体重心点の鉛直方向の位置及び水平方向の位置の目標値は、移動ロボットの目標とする動作に適した値に設定しておけばよい。
【0021】
この結果、第2発明によれば、移動ロボットのふらつきをより効果的に防止しつつ、該移動ロボットの所望の動作を安定に行なうことが可能となる。
【0022】
また、前記第1発明又は第2発明において、前記運動状態量目標値は、前記移動ロボットの全体の所定の基準点周りの角運動量の1階微分値の目標値をさらに含んでおり、前記運動状態量目標値決定手段は、前記移動ロボットの全体重心点の水平方向の位置の観測値をフィードバック制御則により所定の目標値に収束させるように前記角運動量の1階微分値の目標値を決定する手段をさらに有することが好ましい(第3発明)。
【0023】
この第3発明によれば、前記移動ロボットの全体の角運動量(所定の基準点周りの角運動量)の1階微分値の目標値、ひいては、移動ロボットの全体の運動によって発生する慣性力のうちのモーメント(所定の基準点周りのモーメント。以降、モーメント慣性力ということがある)の目標値が、前記移動ロボットの全体重心点の水平方向の位置の観測値をフィードバック制御則により所定の目標値に収束させるように決定される。そして、前記並進慣性力の目標値だけでなく、前記モーメント慣性力の目標値をも実現し得るように、移動ロボットの各関節に付与すべき前記目標駆動力が決定されることとなる。
【0024】
これにより、第3発明によれば、移動ロボットの実際の全体重心点の水平方向位置が所定の目標値からずれるのをモーメント慣性力によって防止するようにしつつ、各関節に付与する目標駆動力を制御できる。この場合、モーメント慣性力に関する前記全体重心点の水平方向の位置の目標値は、例えば、該全体重心点を質点とする仮想的な倒立振子を想定した場合に、その倒立振子の支点(例えば目標ZMP)の鉛直方向上方の位置に設定しておけがよい。なお、モーメント慣性力に関する前記全体重心点の水平方向の位置の目標値は、並進慣性力の水平方向成分に関する前記全体重心点の水平方向の位置の目標値と同一でなくてもよい。
【0025】
この結果、第3発明によれば、移動ロボットのふらつきをより効果的に防止しつつ、該移動ロボットの所望の動作を安定に行なうことが可能となる。
【0026】
前記第1〜第3発明では、より具体的には、前記目標駆動力を例えば次のように決定することが好ましい。
【0027】
すなわち、前記一般化変数ベクトルの2階微分値を一般化力ベクトルに変換するためのイナーシャ行列と、前記移動ロボットの各リンクに作用する重力により発生する一般化力ベクトルの値である重力依存一般化力ベクトル値とから成る基本パラメータ群、又は、前記イナーシャ行列と前記重力依存一般化力ベクトルと前記移動ロボットの各リンクに作用する遠心力及びコリオリ力による発生する一般化力ベクトルの値である遠心力・コリオリ力依存一般化力ベクトル値とから成る基本パラメータ群を、少なくとも前記移動ロボットの各関節の実際の変位量の観測値を含む一般化変数観測情報に基づいて算出する基本パラメータ群算出手段と、
前記移動ロボットの移動時に外界と接触する1つ以上の接触部位の接触状態を示す接触状態情報と前記一般化変数観測情報とが入力され、前記外界に接触している前記1つ以上の接触部位の運動を代表する要素として設定した所定の接触部位代表要素の運動速度と前記一般化変数ベクトルの1階微分値との間の関係を表現するヤコビアンである接触部位ヤコビアンを、少なくとも入力された接触状態情報と一般化変数観測情報とを基に算出する接触部位ヤコビアン算出手段と、
前記一般化変数観測情報が入力され、前記運動状態量と前記一般化変数ベクトルの1階微分値との間の関係を表現するヤコビアンである状態量ヤコビアンを、少なくとも入力された一般化変数観測情報に基づいて算出する状態量ヤコビアン算出手段とをさらに備える。
【0028】
そして、前記目標駆動力決定手段は、前記算出された基本パラメータ群、接触部位ヤコビアン及び状態量ヤコビアンと、前記接触部位代表要素の運動加速度の目標値である接触部位代表要素運動加速度目標値と、前記一般化変数観測情報と、前記決定された運動状態量目標値とが入力されると共に、当該入力データを用いて、次式01の関係を満足する一般化力ベクトルの目標である目標一般化力ベクトルτcmdのうち各関節の変位量に対応する成分値を算出し、その算出した成分値を該関節に付与する目標駆動力として決定する(第4発明)。
【0029】

S'+(Js*M-1*Tc−Js')*q'
=(Js*M-1*Pc)*(τcmd−τcmpn) ……式01
但し、
q:一般化変数ベクトル
q':qの1階微分値(=dq/dt)の観測値
S:状態量
S':Sの1階微分値(=dS/dt)の目標値
M:イナーシャ行列
τcmpn:τcmpn≡(N+G)−Pc-1*Cc、又はτcmpn≡G−Pc-1*Ccにより定義されるベクトル
G:重力依存一般化力ベクトル値
N:遠心力・コリオリ力依存一般化力ベクトル値
Pc:Pc≡I−JcT*(Jc#)Tにより定義される行列
I:単位行列
Jc:接触部位ヤコビアン
Jc#:Jc#≡(M-1)T*JcT*RcTにより定義される行列
Rc:Rc≡((Jc*M-1*JcT)-1)Tにより定義される行列
Cc:Cc≡−JcT*Rc*Cにより定義されるベクトル
C:接触部位代表要素運動加速度目標値(スカラー又はベクトル)
Tc:Tc≡−JcT*Rc*Jc'により定義される行列
Jc':Jcを1階微分してなる行列(=dJc/dt)
Js:状態量ヤコビアン
Js':Jsを1階微分してなる行列(=dJs/dt)

なお、本明細書では、「*」は乗算記号を意味する。
【0030】
補足すると、第4発明においては、前記「一般化力ベクトル」は、その各成分が、一般化変数ベクトルの各成分に対応しているベクトル(一般化変数ベクトルと同数の成分からなるベクトル)である。この一般化力ベクトルは、より詳しくは、その各成分が、それに対応する一般化変数ベクトルの成分値の時間的変化を発生させる力(並進力又はモーメント)となるベクトルである。
【0031】
また、前記「一般化変数観測情報」は、前記一般化変数ベクトルの成分(関節の変位量を含む)の実際の値に関する「観測値」(詳しくは、該成分の実際の瞬時値又はその時間的変化率(1階微分値)の観測値)を構成要素とする情報を意味する。この場合、「観測値」は、センサによる直接的な検出値でよいことはもちろんであるが、該「観測値」と相関性を有する1つ以上の他の物理量の検出値から、適当なモデルもしくは自然法則に基づいて推定される推定値でもよい。
【0032】
かかる第4発明によれば、前記式01に基づいて、目標一般化力ベクトルτcmdを算出するために必要なパラメータとして、前記基本パラメータ群(イナーシャ行列M、重力依存一般化力ベクトル値G、遠心力・コリオリ力依存一般化力ベクトル値N、又はM、G)と、前記接触部位ヤコビアンJcと、前記状態量ヤコビアンJsとがそれぞれ、前記基本パラメータ群算出手段、接触部位ヤコビアン算出手段、状態量ヤコビアン算出手段により算出される。
【0033】
なお、前記基本パラメータ群に関して補足すると、遠心力・コリオリ力依存一般化力ベクトル値Nと重力依存一般化力ベクトル値Gとの総和(=N+G)は、N+G≒Gとなる場合がある。このような場合には、基本パラメータ群として、M及びGだけを算出するようにしてもよい。
【0034】
また、前記接触部位ヤコビアンJcに係わる前記接触部位代表要素は、外界との接触によって制約を受けることとなるロボットの前記1つ以上の接触部位の運動を代表する要素(前記1つ以上の接触部位の運動に応じて、その運動(位置や姿勢角、もしくは、それらの時間的変化率等)が規定される部位)を意味する。なお、「姿勢角」は、角度を単位として表現される空間的な向きを意味する。該接触部位代表要素は、実際の接触部位、あるいは、それに含まれる特定の部分もしくは点でもよいが、接触部位との位置関係もしくは姿勢関係が所定の関係を有する仮想的な要素であってもよい。
【0035】
また、前記接触状態情報としては、前記1つ以上の接触部位と外界との接触状態がどのような状態であるかを示す情報(例えばどの接触部位が外界に接触しているかの情報や、各接触部位が外界との接触によって受ける外力の状態等)である。
【0036】
そして、前記目標駆動力決定手段は、上記基本パラメータ群(M,G,N、又はM,G)、接触部位ヤコビアンJc及び状態量ヤコビアンJsと、前記接触部位代表要素運動加速度目標値Cと、前記一般化変数観測情報(詳しくは、該一般化変数観測情報から認識されるq')と、前記所定種類の状態量の1階微分値の目標値S'とを入力データとして用いて、前記式01の関係を満足する一般化力ベクトルの目標である目標一般化力ベクトルτcmdのうち各関節の変位量に対応する成分値を算出し、その算出した成分値を該関節に付与する目標駆動力として決定する。
【0037】
このため、第4発明では、前記接触部位代表要素運動加速度目標値と、前記運動状態量目標値とをロボットの運動を制約する目標として、各関節に付与する目標駆動力が決定されることとなる。
【0038】
ここで、前記接触部位の運動は、ロボットの一部分の運動であるので、前記接触部位代表要素運動加速度目標値を実現するためのロボットの各関節の運動には冗長性を有する。換言すれば、接触部位代表要素の運動加速度の自由度数がロボット全体の自由度数(一般化変数ベクトルの自由度数)よりも小さい。
【0039】
また、前記運動状態量目標値は、移動ロボットの全体の並進運動量の1階微分値の目標値や、角運動量の1階微分値の目標値であるので、該運動状態量目標値を実現するためのロボットの各関節の運動にも冗長性を有する。換言すれば、該運動状態量の自由度数がロボット全体の自由度数(一般化変数ベクトルの自由度数)よりも小さい。
【0040】
従って、前記接触部位代表要素運動加速度目標値と、前記運動状態量目標値とをロボットの運動を制約する目標として、前記式01に基づいて、各関節に付与する目標駆動力を決定することによって、ロボットの関節の運動の任意性が高まる。
【0041】
また、前記接触部位代表要素運動加速度目標値を用い、接触部位代表要素の運動を規定することによって、前記接触部位でロボットに作用する外力(これは、ロボットの各関節に付与すべき駆動力と相互に影響を及ぼし合う)を特定することなく、前記運動状態量目標値を実現し得る各関節の目標駆動力を前記式01に基づいて決定できる。
【0042】
この結果、第4発明によれば、第1〜第3発明に効果に加えて、ロボットの関節の動きの柔軟性を高めつつ、各関節に付与する駆動力をロボットに所望の動作を行なせる上で適切な駆動力に制御することができる。
【0043】
補足すると、前記第4発明において、前記式01の右辺の行列(Js*M-1*Pc)(以降、これを行列Asということがある)が正則行列である場合には、後述する式5−21aにより決定される行列Bs(すなわちAsの逆行列)を用いて、後述の式5−22の右辺の演算を行なうことで、前記目標一般化力ベクトルτmcdを算出すればよい。また、行列Asが正則行列でない場合には、例えば、後述する式5−21bにより決定される行列Bsを用いて、後述の式5−22の右辺の演算を行なうことで、前記目標一般化力ベクトルτmcdを算出することができる。
【0044】
かかる第4発明においては、前記接触部位代表要素の運動の自由度数が接触によって拘束される実際の自由度数よりも多いと、ロボットの関節の運動が、前記接触部位代表要素運動加速度目標値による制約を受けやすくなる。従って、ロボットの関節の運動の任意性を高める上では、前記接触部位代表要素の運動の自由度数の実際の自由度数に対する超過が極力少ないことが望ましい。また、接触部位代表要素は、その運動が不連続的な変化を生じないことが望ましい。
【0045】
このような要望を考慮すると、例えば、前記ロボットが、2つの脚リンクの先端部を床面に交互に接地させる運動により該床面上を移動する2脚移動ロボット(すなわち、2つの脚リンクの先端部が外界との接触部位として機能するロボット)である場合には、次の構成を採用することが好適である。
【0046】
すなわち、前記接触部位代表要素は、その位置及び姿勢が、前記2つの脚リンクにそれぞれ作用する床反力の合力である全床反力に応じたばね性変位を生じる要素であって、且つ、該接触部位代表要素の位置及び姿勢のばね性変位量が、前記2つの脚リンクのうちの第1の脚リンクに作用する床反力に応じて生じる該第1の脚リンクの先端部の位置及び姿勢のばね性変位量と、前記2つの脚リンクのうちの第2の脚リンクに作用する床反力に応じて生じる該第2の脚リンクの先端部の位置及び姿勢のばね性変位量と次式02の関係を有する要素であり、前記接触部位ヤコビアン算出手段は、次式03の右辺の演算によって、前記接触部位ヤコビアンJcを算出する(第5発明)。
【0047】

Xcc=rat*A1*X1+(1−rat)*A2*X2 ……式02

Jc=rat*A1*J1+(1−rat)*A2*J2 ……式03

但し、
Xcc:接触部位代表要素の位置及び姿勢のばね性変位量を成分とするベクトル
rat:前記第1の脚リンクのみが接地している状態でrat=0、前記第2の脚リンクのみが接地している状態でrat=1となり、且つ、第1の脚リンク及び第2の脚リンクの両方が接地している状態では、0≦rat≦1の範囲で連続的に変化するように前記接触状態情報に応じて設定される係数
X1:前記第1の脚リンクに作用する床反力に応じて生じる該第1の脚リンクの先端部の位置及び姿勢のばね性変位量を成分とするベクトル
X2:前記第2の脚リンクに作用する床反力に応じて生じる該第2の脚リンクの先端部の位置及び姿勢のばね性変位量を成分とするベクトル
A1:前記第1の脚リンクに作用する床反力の並進力成分とモーメント成分とからなる第1床反力ベクトイルを、前記接触部位代表要素に作用する床反力ベクトルに変換する行列
A2:前記第2の脚リンクに作用する床反力の並進力成分とモーメント成分とからなる第2床反力ベクトイルを、前記接触部位代表要素に作用する床反力ベクトルに変換する行列
J1:X1の1階微分値X1'(=dX1'/dt)と一般化変数ベクトルqの1階微分値q'との間の関係をX1'=J1*q'により表すヤコビアン
J2:X2の1階微分値X2'(=dX2'/dt)と一般化変数ベクトルqの1階微分値q'との間の関係をX2'=J2*q'により表すヤコビアン

この第5発明によれば、前記接触部位代表要素は、その位置及び姿勢が、前記2つの脚リンクにそれぞれ作用する床反力の合力である全床反力に応じたばね性変位を生じる要素であって、且つ、該接触部位代表要素の位置及び姿勢のばね性変位量が、前記2つの脚リンクのうちの第1の脚リンクに作用する床反力に応じて生じる該第1の脚リンクの先端部の位置及び姿勢のばね性変位量と、前記2つの脚リンクのうちの第2の脚リンクに作用する床反力に応じて生じる該第2の脚リンクの先端部の位置及び姿勢のばね性変位量と前記式02の関係を有する要素として定義される。
【0048】
このように定義される接触部位代表要素は、移動ロボットの2つの脚リンクのうちの一方の脚リンクの先端部のみが接地する(床に接触する)状態と、両方の脚リンクの先端部が接地する状態とのいずれの状態であっても、その運動の自由度数が、並進運動の3つの自由度数と回転運動の3つの自由度数とから成る総計6つの自由度数で済む。すなわち、接触部位代表要素の運動の自由度数は、単一の脚リンクの先端部の自由度数と同じ自由度数で済む。
【0049】
従って、接触部位代表要素の運動を前記接触部位代表要素運動加速度目標値により拘束した場合、それによる移動ロボットの自由度数の制約分は6自由度で済む。これにより、接触部位代表要素の運動の自由度数の実際の自由度数に対する超過を極力少ないものとしつつ、移動ロボットの運動の任意性をより一層高めることができる。
【0050】
しかも、前記係数ratを0≦rat≦1の範囲内で連続的に変化させることによって、接触部位代表要素の運動の連続性を実現できる。ひいては、移動ロボットの各関節の目標駆動力が不連続的に変化しないようにして、移動ロボットの運動の安定性を高めることができる。
【0051】
そして、第2発明では、上記のように定義される接触部位代表要素に関する接触部位ヤコビアンJcを前記式03により算出する。この場合、前記行列A1,A2とヤコビアンJ1,J2と算出する必要があるが、は、前記行列A1,A2は、脚リンクの接地状態(床との接触状態)に依存するので、例えば前記接触状態情報に基づいて前記行列A1,A2を決定できる。
【0052】
また、X1の1階微分値X1'(=dX1'/dt)は、前記第1の脚リンクの先端部の運動速度(並進速度及び回転速度)に一致し、また、X2の1階微分値X2'(=dX2'/dt)は、前記第2の脚リンクの先端部の運動速度(並進速度及び回転速度)に一致すると考えてよい。従って、式03のヤコビアンJ1、J2を、前記一般化変数観測情報に基づいて算出することができる。
【0053】
よって、前記式03の右辺の演算によって、接触部位ヤコビアンを算出することができる。
【0054】
上記第4発明又は第5発明においては、前記アクチュエータ制御手段は、前記移動ロボットの各関節に実際に付与する駆動力を前記決定された目標駆動力に一致させ、且つ前記接触部位代表要素の実際の運動加速度を前記接触部位代表要素運動加速度目標値を一致させたと仮定した場合に前記接触部位に作用する外力の推定値としての接触部位外力目標値を、前記決定された目標駆動力と接触部位運動加速度目標値とを用いて逆動力学演算の処理を実行することにより決定する接触部位外力目標値決定手段と、該接触部位外力目標値と前記接触部位に実際に作用する外力の観測値との偏差を“0”に収束させるように、フィードバック制御則により前記目標駆動力の補正量を決定する駆動力補正量算出手段とを含み、該補正量により補正した前記目標駆動力に応じて、前記アクチュエータの動作を制御することが好ましい(第6発明)。
【0055】
この第6発明によれば、前記移動ロボットの各関節に実際に付与する駆動力を前記決定された目標駆動力に一致させ、且つ前記接触部位代表要素の実際の運動加速度を前記接触部位代表要素運動加速度目標値を一致させた仮定した場合に前記接触部位に作用する外力の推定値が、前記接触部位外力目標値として決定される。そして、この接触部位外力目標値と前記接触部位に実際に作用する外力の観測値との偏差を“0”に収束させるように、フィードバック制御則により決定された補正量によって前記目標駆動力が補正される。そして、この補正後の目標駆動力に応じて前記アクチュエータの動作が制御される。
【0056】
この結果、第6発明によれば、前記式01の基礎となるモデルの誤差等の影響を補償し、前記式01に基づき決定された目標駆動力に対応する接触部位外力目標値が、前記接触部位に実際に作用する外力と不整合なものとなるのを防止することができる。ひいては、ロボットの動作の安定性を高めることができる。
【図面の簡単な説明】
【0057】
【図1】本発明の実施形態を適用する移動ロボットの概略構成を模式的に示す図。
【図2】図1の移動ロボットに備える関節駆動系の概略構成を模式的に示す図。
【図3】図1の移動ロボットの制御装置の主要な機能を示すブロック図。
【図4】図3に示す目標関節駆動トルク決定部の機能を示すブロック図。
【図5】図5(a)〜(c)は図4に示す接触部ヤコビアン決定部の第1実施形態での処理を説明するための図。
【図6】図4に示す接触部ヤコビアン決定部の第2実施形態での処理を説明するための図。
【発明を実施するための形態】
【0058】
[第1実施形態]
以下、本発明の第1実施形態を図1〜図5を参照して説明する。
【0059】
図1は、本実施形態で例示する移動ロボットの概略構成を模式的に示している。この移動ロボット1(以下、単にロボット1という)は、脚式移動ロボットとしての2足移動ロボットである。このロボット1を構成するリンクは、大別すると、上体リンク2と、左右一対の脚リンク3R,3Lと、左右一対の腕リンク4R,4Lと、頭部5とを有する。
【0060】
なお、本明細書では、ロボット1の前方に向かって右側の部材又はその部材に関連する量を示す変数に符号“R”を付加し、ロボット1の前方に向かって左側の部材又はその部材に関連する量を示す変数に符号“L”を付加する。ただし、右側、左側を特に区別する必要が無いときは、符号“R”,“L”を省略することがある。
【0061】
上体リンク2は、ロボット1の基体としての下側上体10と、この下側上体10の上方に配置された上側上体11とから構成されている。上側上体11は、ヨー軸周り(Z軸周り)の回転自由度を有する上体回旋用関節12を介して下側上体10に連結されている。
【0062】
左右一対の脚リンク3R,3Lは、互いに同じ構造のものである。具体的には、各脚リンク3は、下側上体10に股関節部13を介して連結された大腿部14と、この大腿部14に膝関節部15を介して連結された下腿部16と、この下腿部16に足首関節部17を介して連結された足平部18とを、該脚リンク3を構成する複数のリンクとして備える。
【0063】
この場合、股関節部13は、ヨー軸周り、ピッチ軸周り(Y軸周り)及びロール軸周り(X軸周り)の回転自由度をそれぞれ有する3つの関節19,20,21により構成されている。また、膝関節部15は、ピッチ軸まわりの回転自由度を有する関節22により構成されている。また、足首関節部17は、ピッチ軸周り及びロール軸周りの回転自由度をそれぞれ有する2つの関節23,24により構成されている。従って、各脚リンク3は、本実施形態では、下側上体10に対して、6自由度の運動自由度を有する。なお、上記の説明における各脚リンク3の関節19〜24の回転軸(ロール軸、ピッチ軸、ヨー軸)は、脚リンク3を上下方向に延在させた状態での回転軸を示している。
【0064】
左右一対の腕リンク4R,4Lは、互いに同じ構造のものである。具体的には、各腕リンク4は、上側上体11に肩関節部25を介して連結された上腕部26と、この上腕部26に肘関節部27を介して連結された前腕部28と、この前腕部28に手首関節部29を介して連結されたハンド30とを、該腕リンク4を構成する複数のリンクとして備える。
【0065】
この場合、肩関節部25は、ピッチ軸周り、ロール軸周り、及びヨー軸周りの回転自由度をそれぞれ有する3つの関節31,32,33により構成されている。また、肘関節部27は、ピッチ軸周りの回転自由度を有する関節34により構成されている。また、手首関節部29は、ヨー軸周り、ピッチ軸周り及びロール軸周りの回転自由度をそれぞれ有する3つの関節35,36,37により構成されている。従って、各腕リンク4は、本実施形態では、上側上体11に対して、7自由度の運動自由度を有する。なお、上記の説明における各腕リンク4の関節31〜37の回転軸(ロール軸、ピッチ軸、ヨー軸)は、腕リンク4を上下方向に延在させた状態での回転軸を示している。
【0066】
頭部5は、上側上体6の上方に配置されており、頸関節部38を介して上側上体6に連結されている。この場合、頸関節部38は、ピッチ軸周り及びヨー軸周りの回転自由度をそれぞれ有する2つの関節39,40により構成されている。従って、頭部5は、上側上体6に対して、2自由度の運動自由度を有する。なお、関節31,37の上記の回転軸(ピッチ軸、ヨー軸)は、頸関節部38を上下方向に伸ばした状態での回転軸を示している。
【0067】
以上の構成を有するロボット1は、各脚リンク3の6個の関節19〜24を駆動することによって、各脚リンク3の空間的な運動が行なわれ、この運動によって床上を移動することが可能となっている。例えば、人の歩行動作あるいは走行動作と同様の形態(歩容)で脚リンク3R,3Lを運動させることによって、ロボット1の歩行動作あるいは走行動作が行なうことが可能である。この場合、ロボット1の各リンクは、その空間的な位置及び姿勢(空間的な向き)に関して6自由度を有する。
【0068】
また、各腕リンク4の7個の関節31〜37を駆動することによって、各腕リンク4の空間的な運動が行なわれ、この運動によって各腕リンク4のハンド30を、適宜の物体に接触させる等の作業を行なうことが可能となっている。
【0069】
また、本実施形態では、上体リンク2を構成する下側上体10と、上側上体11とが関節12を介して連結されているので、この関節12を駆動することによって、上体リンク2を捻ることが可能となっている。
【0070】
また、頸関節部38の関節39,40を駆動することによって、頭部5のチルト動作(ピッチ軸周りの回動動作)あるいはパン動作(ヨー軸周りの回動動作)を行なうことが可能となっている。
【0071】
補足すると、本実施形態のロボット1は、腕リンク4R,4L及び頭部5を有する人型のロボットであるが、これらの腕リンク4R,4L、あるいは、頭部5を備えないロボットであってもよい。また、上体リンク2の関節12を省略し、下側上体10及び上側上体11を一体に構成してもよい。
【0072】
図1での具体的な図示は省略するが、ロボット1には、上記の各関節を回転駆動するための動力を出力するアクチュエータとしての電動モータを含む関節駆動系(関節の駆動機構)が備えられている。そして、本実施形態では、各関節に柔軟性を持たせるために、各関節と電動モータとの間の動力伝達系には、以下に説明する如く、電動モータの動力を弾性力に変換して関節の被動部材に付与するばね部材が介装されている。
【0073】
図2は、各関節毎の上記関節駆動系の概略構成を模式的に示している。この関節駆動系は、電動モータ50と、関節の被動部材51(以降、関節被動部51という)との間の動力伝達要素として、波動歯車装置等から構成された減速機52とばね部材であるトーションバー53とを備える。そして、電動モータ50の出力軸50aが減速機52とトーションバー53とを順に介して関節被動部51に連結されている。従って、この関節駆動系は、電動モータ50が出力する動力(トルク)を、減速機52とトーションバー53とを順に介して関節被動部51に伝達するように構成されている。この場合、電動モータ50が出力する動力(トルク)は、トーションバー53で弾性力(捩り力)に変換され、この弾性力が関節被動部51に駆動トルクとして付与される。
【0074】
補足すると、ここで言うトーションバー53(ばね部材)は、減速機52と関節被動部51との間に付加された弾性体、又は電動モータ50と関節被動部51との間の動力伝達系に元々存在する弾性体を総称的に表現するものである。従って、減速機52が、ハーモニックドライブ(登録商標)等の波動歯車装置のように、その出力段に元々、弾性体を有するものである場合には、その弾性体もトーションバー53(ばね部材)に含まれる。
【0075】
なお、関節被動部51は、これを有する関節によって互いに相対回転自在に連結された一対の部材のうちの一方である。例えば、前記膝関節部15の関節22を駆動する関節駆動系にあっては、大腿部14及び下腿部16のうちの一方のリンクが関節被動部51となり、他方のリンクに電動モータ50及び減速機52のハウジングが固定される。
【0076】
以上のように本実施形態では、関節駆動系にばね部材としてのトーションバー53を備えることによって、各関節の柔軟な動作が可能となっている。
【0077】
本実施形態では、以上の構造を有するロボット1の動作制御を行なうために、CPU、RAM、ROM等を含む電子回路ユニットにより構成された制御装置60と、各種のセンサとが備えられている。
【0078】
この場合、センサとしては、図1に示すように、ロボット1の基体である下側上体10の角速度や姿勢角(鉛直方向に対する傾斜角度やヨー軸周りの方位角)等を計測するために該下側上体10に搭載された姿勢センサ61と、各足平部18がその接地時に受ける外力(床反力)を計測するために各脚リンク3の足首関節部24と足平部18との間に介装された力センサ62(62R,62L)と、各ハンド30がその接触対象物体から受ける外力を計測するために各腕リンク4の手首関節部29とハンド30との間に介装された力センサ63(63R,63L)とが備えられている。
【0079】
上記姿勢センサ61は、例えば3軸周りの角速度を検出するジャイロセンサと3軸方向の加速度を検出する加速度センサとから構成される。また、各力センサ62,63は、それぞれ、例えば3軸方向の並進力及び3軸周りのモーメントを検出する6軸力センサにより構成される。なお、姿勢センサ61を構成する加速度センサは、下側上体10の移動速度を計測するためにも使用される。
【0080】
また、本実施形態では、図2に示すように、各関節毎の関節駆動系には、電動モータ50の出力軸50aの回転角度(ロータの回転角度)を検出する角度センサとしてのロータリーエンコーダ64と、トーションバー53の両端部間の回転角度差を検出する角度センサとしての差分エンコーダ65とが備えられている。
【0081】
なお、差分エンコーダ65は、本実施形態では、トーションバー53の両端部に各々固定された一対の円板65a,65bを有し、これらの円板65a,65bの一方に対する他方の相対的な回転角度に応じた信号をトーションバー53の両端部間の回転角度差に応じた信号として出力するセンサである。
【0082】
これらのロータリエンコーダ64及び差分エンコーダ65は、電動モータ50の出力軸50aの回転角度(又はトーションバー53の減速機52側の一端部の回転角度(=減速機52の出力軸の回転角度))とその時間的変化率(回転角速度)、関節被動部51の回転角度とその時間的変化率(回転角速度)、トーションバー53の両端部間の回転角度差(=トーションバー53の捩れ角)等を計測するために使用されるセンサである。
【0083】
なお、差分エンコーダ65の代わりに、関節被動部51の回転角度を検出するロータリーエンコーダ等の角度センサを備えるようにしてもよい。また、ロータリエンコーダ64の代わりに、減速機52の出力軸の回転角度を検出するロータリエンコーダ等の角度センサを備えるようにしてもよい。
【0084】
また、以降の説明では、ロボット1の各関節の関節被動部51の回転角度を、関節の回転角度又は関節角ということがある。
【0085】
制御装置60には、上記の各センサの検出出力(あるいは、該検出出力を適宜のフィルタに通してなるフィルタリング値)が入力される。そして、制御装置60は、これらの入力値から認識される所要の計測値(下側上体10の姿勢角やその時間的変化率(角速度)の計測値、下側上体10の移動速度の計測値、各足平部18やハンド30に作用する外力の計測値、各関節の回転角度やその時間的変化率(角速度)の計測値など)を使用して、ロボット1に目標とする運動を行なわせるために各関節の関節被動部51に付与すべき駆動トルクの目標値(以降、目標関節駆動トルクという)を決定すると共に、この目標関節駆動トルクに応じて各関節駆動系の電動モータ50の出力トルクを制御する処理を実行する。
【0086】
以下に制御装置60の制御処理の詳細を説明する。なお、本実施形態では、ロボット1の目標とする運動が、床上を歩行動作により移動する運動である場合の制御処理を例にとって説明する。
【0087】
図3に示すように、制御装置60は、実装されたプログラム等により実現される主要な機能部として、歩容生成部71、目標関節駆動トルク決定部72及び関節駆動制御部73を備える。
【0088】
歩容生成部71は、ロボット1の目標運動を少なくとも含む目標歩容を生成する処理を実行する機能部である。この歩容生成部71が生成する目標運動は、ロボット1の各関節の変位量(回転角度)の目標値である目標関節角の時系列と、ロボット1の全体重心点の目標位置(以降、目標全体重心点ということがある)の時系列とを含む。
【0089】
上記目標運動は、例えば、本願出願人が前記特許文献1等で提案した歩容生成手法を用いて生成される。
【0090】
この歩容生成手法を概略的に説明すると、ロボット1の動作環境の床形状情報やロボット1の移動方向の要求等に基づいて、ロボット1の両足平部18R,18Lのそれぞれの目標とする着地予定位置及び着地予定姿勢と着地予定時刻とが決定される。
【0091】
そして、これらの着地予定位置及び姿勢と、着地予定時刻とに応じて、各足平部18の目標位置及び目標姿勢の軌道(時系列パターン)である足平位置姿勢軌道が決定される。さらに、この足平位置姿勢軌道に基づいて、ZMP(Zero Moment Point)の目標位置(以降、目標ZMPということがある)の軌道である目標ZMP軌道とが決定される。
【0092】
さらに、ロボット1の全体の運動によって発生する慣性力と、ロボット1に作用する重力との合力によって目標ZMP周りに発生するモーメントの水平成分が“0”になるという動力学的な平衡条件を満たしつつ、ロボット1の将来的な安定性を確保し得るように、ロボット1の両脚リンク3R,3L以外の各リンク(上体リンク2等)の目標位置及び目標姿勢の軌道が決定される。
【0093】
そして、これらの目標位置及び目標姿勢から、ロボット1の幾何学モデル(剛体リンクモデル)を用いて、各関節の目標関節角が決定される。
【0094】
なお、目標歩容は、ロボット1の実際の動作時にリアルタイムで生成されるものでなくてもよく、事前に(オフラインで)作成した目標歩容を、制御装置60に外部から無線通信等により入力したり、あるいは、ロボット1の図示しない記憶装置に事前に記憶保持しておくようにしてもよい。この場合には、歩容生成部71は不要である。
【0095】
また、目標歩容には、ロボット1の目標運動以外に、足平部18R,18Lの一方又は両方に作用する全床反力(トータルの床反力)の特定成分(例えば並進力の鉛直方向成分)の目標値や、全床反力の作用点の目標位置(すなわち目標ZMP)等が含まれていてもよい。本実施形態では、歩容生成部71が出力する目標歩容には、目標ZMPが含まれる。
【0096】
目標関節駆動トルク決定部72は、歩容生成部71が生成した上記目標運動を実現する(ロボット1の実際の運動を目標運動に追従させる)ための各関節の目標関節駆動トルクを決定する処理を逐次実行する機能部である。この目標関節駆動トルク決定部72は、その詳細は後述するが、本発明に係わる中核的な処理を実行する機能部である。
【0097】
関節駆動制御部73は、目標関節駆動トルク決定部72が逐次決定した各関節の目標関節駆動トルク(詳しくは、後述の補正後目標関節駆動トルク↑τtc_cmdにより規定される各関節の目標関節駆動トルク)を実現するように(各関節の関節被動部51に実際に付与される駆動トルクを目標関節駆動トルクに追従させるように)、各関節駆動系の電動モータ50の出力トルクを制御する処理を逐次実行する機能部である。
【0098】
この関節駆動制御部73は、例えば、次のように電動モータ50の出力トルクを制御する。すなわち、関節駆動制御部73は、前記トーションバー53の両端部間の回転角度差(トーションバー53の捩れ角)の計測値から、トーションバー53が実際に発生している弾性力トルク(トーションバー53から関節被動部51に実際に付与される駆動トルク)を逐次推定する。さらに、関節駆動制御部73は、この弾性力トルクの推定値と、目標関節駆動トルクとの偏差を“0”に収束させるように、電動モータ50の出力軸50aの目標回転角速度を逐次設定する。
【0099】
次いで、関節駆動制御部73は、この目標回転角速度と、電動モータ50の出力軸50aの回転角速度の計測値との偏差を“0”に収束させるように、電動モータ50の目標出力トルクを決定する。そして、関節駆動制御部73は、この目標出力トルクを電動モータ50の通電電流の目標値に変換し、この目標値に、実際の通電電流をフィードバック制御することで、電動モータ50の実際の出力トルクを目標出力トルクに制御する。
【0100】
なお、関節駆動制御部73の制御処理においては、トーションバー53の振動の影響を補償したり、関節被動部51に作用する外力の影響を補償しつつ、電動モータ50の出力トルクを制御するようにしてもよい。
【0101】
次に、説明を後回しにした、前記目標関節駆動トルク決定部72の処理の詳細を説明する。
【0102】
なお、以降の説明では、ベクトル(複数の成分の列)を表記する場合に、例えば“↑A”というように、変数名の先頭に“↑”を付する。また、ベクトルは、特にことわらない限り、成分を縦に並べた縦ベクトル(列ベクトル)であるとする。また、本明細書では、乗算記号として「*」を用いる。
【0103】
図4に示すように、目標関節駆動トルク決定部73は、その主要な機能として、基本パラメータ群決定部81、接触部位ヤコビアン決定部82、状態量ヤコビアン決定部83、状態量目標値決定部84、制御入力決定部85及びコンプライアンス制御部86を備える。なお、図4では、各機能部の主要な出力と、その入力先とを図示している。
【0104】
目標関節駆動トルク決定部73は、これらの機能部の処理を所定の演算処理周期で逐次実行することによって、各関節の目標関節駆動トルクを逐次決定する。
【0105】
以下説明すると、目標関節駆動トルク決定部73は、まず、基本パラメータ群決定部81の処理と、接触部位ヤコビアン決定部82の処理と、状態量ヤコビアン決定部83の処理と、状態量目標値決定部84の処理とを実行する。
【0106】
基本パラメータ群決定部81は、ロボット1の運動と力との間の関係(運動方程式)を表現するモデルであるロボット運動モデルのパラメータを算出する処理を逐次実行する機能部である。
【0107】
ここで、ロボット運動モデルは、ロボット1に外界から作用する外力(床反力等)が“0”であるとした場合、次式1−1により表現される。
【0108】

M*↑q''+↑N+↑G=↑τ ……式1−1

この式1−1における↑q''は、ロボット1の一般化変数ベクトル↑qの2階微分値(=d2↑q/dt2)、Mはイナーシャ行列、↑Nは遠心力・コリオリ力依存一般化力ベクトル、↑Gは重力依存一般化力ベクトル、↑τは駆動力依存一般化力ベクトルである。
【0109】
上記一般化変数ベクトル↑qは、本実施形態では、ロボット1のあらかじめ定めた1つの代表リンクの位置及び姿勢(グローバル座標系で見た位置及び姿勢)と、各関節の変位量(回転角度)とを成分として、これらの成分を並べて構成されるベクトルである。上記代表リンクは、本実施形態では、ロボット1の基体としての下側上体10である。以降、下側上体10を代表リンク10ということもある。
【0110】
ここで、本実施形態の説明では、ロボット1の代表リンク10を含めて、各リンクの「位置」は、より詳しくは、該リンクに対して固定的に設定された代表点のグローバル座標系での位置を意味する。また、各リンクの「姿勢」は、より詳しくは、グローバル座標系で見た該リンクの空間的な向き(角度の次元で表現される向き)を意味する(以降の説明では、「姿勢」を「姿勢角」ということもある)。
【0111】
なお、上記グローバル座標系は、ロボット1の移動環境の床(地面を含む)に対して固定された座標系等、慣性座標系(近似的に慣性系と見なせる座標系を含む)である。
【0112】
そして、各リンクの「位置」及び「姿勢」(姿勢角)は、本実施形態ではそれぞれ3自由度を有するので、それぞれ3つの座標成分により表現される。このため、本実施形態での一般化変数ベクトル↑qの成分個数(すなわち↑qの自由度数)は、代表リンク10の位置及び姿勢のトータルの自由度数(=6)と、ロボット1の全ての関節のトータルの自由度数との総和の個数である。なお、図1に示した本実施形態のロボット1では、全ての関節のトータルの自由度数は“29”である。従って、↑qの自由度数は、“35”である。
【0113】
上記イナーシャ行列Mは、一般化変数ベクトル↑qの2階微分値↑q''を、一般化力ベクトルに変換する行列(対称行列)、すなわち、↑q''に乗じることによって得られるベクトル(=M*↑q'')の各成分値が、↑q''の各成分に対応する力(並進力又はモーメント)の次元を有する値となる行列である。
【0114】
ここで、↑qの各成分は、位置又は姿勢角又は回転角度であるから、↑q''の各成分は、並進加速度又は角加速度の次元を有する。従って、M*↑q''の符号を反転させてなるベクトル(−M*↑q'')の各成分値が、ロボット1の運動によって発生する慣性力を意味する。この場合、ベクトル(−M*↑q'')のうち、代表リンク10の「位置」の2階微分値(並進加速度)に対応する成分の慣性力は並進慣性力(並進力となる慣性力)であり、代表リンク10の「姿勢」の2階微分値(角加速度)に対応する成分の慣性力と、各関節の回転角度の2階微分値(角加速度)に対応する成分の慣性力とは、それぞれ慣性力モーメント(モーメントとなる慣性力)である。
【0115】
なお、イナーシャ行列Mの逆行列M-1は対角行列となる。
【0116】
一般化力ベクトルは、その各成分が、一般化変数ベクトル↑qの各成分に対応するベクトル(↑qと同数の成分からなるベクトル)である。この一般化力ベクトルは、より詳しくは、その各成分が、それに対応する↑qの成分値の変化(加速度)を発生させる力(並進力又はモーメント)となるベクトルである。この場合、一般化力ベクトルの各成分は、それに対応する↑qの成分の2階微分値に応じた慣性力と同じ種類の力である。
【0117】
遠心力・コリオリ力依存一般化力ベクトル↑Nは、ロボット1の各リンクに作用する遠心力及びコリオリ力により発生する一般化力ベクトルである。また、重力依存一般化ベクトル↑Gは、ロボット1の各リンクに作用する重力により発生する一般化力ベクトルである。なお、以降の説明では、↑Nと↑Gとの和(=↑N+↑G)を非線形項一般化力ベクトルということがある。
【0118】
駆動力依存一般化力ベクトル↑τは、ロボット1の各関節を駆動するアクチュエータ(本実施形態では電動モータ50)の駆動力によって発生する一般化力ベクトルである。本実施形態のロボット1では、この駆動力依存一般化力ベクトル↑τのうち、代表リンク10の位置及び姿勢に対応する成分の値は常に“0”である。また、↑τのうち、各関節の回転角度に対応する成分の値が該関節に付与する駆動トルク(以下、関節駆動トルクということがある)を意味するものとなる。
【0119】
基本パラメータ群決定部81が算出するパラメータは、式1−1におけるイナーシャ行列Mと、遠心力・コリオリ力依存一般化力ベクトル↑N及び重力依存一般化力ベクトル↑G(又は非線形項一般化力ベクトル(↑N+↑G))とから成る。
【0120】
補足すると、ロボット1に床反力等の外力(≠0)が作用する場合には、ロボット運動モデルは、その外力に依存する一般化力ベクトルの項(外力項)を式1−1に付加した式(後述の式5−1)によって表現される。ただし、基本パラメータ群決定部81が算出するパラメータである上記M、↑N、↑Gは、該外力には依存せずに、ロボット1の各関節の回転角度やその時間的変化率(角速度)等のロボット1の運動状態に依存してその値が定まるパラメータである。このため、基本パラメータ群決定部81を説明するための上記式1−1では外力項を省略している。
【0121】
上記のパラメータM、↑N、↑G(あるいは、M及び(↑N+↑G))を算出するために、基本パラメータ群決定部81には、代表リンク(下側上体)10の移動速度の計測値と、代表リンク10の姿勢角の計測値及びその時間的変化率(角速度)の計測値と、各関節の回転角度の計測値及びその時間的変化率(角速度)の計測値とが逐次入力される。これらの計測値は、前記姿勢センサ61、ロータリーエンコーダ64、差分エンコーダ65の検出出力を基に、制御装置60において認識された計測値である。
【0122】
そして、基本パラメータ群決定部81は、これらの入力された計測値を用いて、RNEA(Recursive Newton Euler Algorithm)、単位ベクトル法等の公知の手法によりM、↑N、↑G(あるいは、M及び(↑N+↑G))を逐次算出する。
【0123】
補足すると、↑Nの各成分値の大きさが、それに対応する重力依存一般化力ベクトル↑Gの成分値の大きさに比して十分に微小なものとなるか、もしくは“0”となり、ひいては、↑N+↑G≒↑Gとなる場合もある。このような場合には、↑N、↑Gのうちの↑Nを無視し(非線形項一般化ベクトル(↑N+↑G)が↑Gに一致するものとして)、↑Gだけを算出するようにしてもよい。
【0124】
前記接触部位ヤコビアン決定部82は、ロボット1の外界との接触部位を代表する要素としての接触部位代表要素の運動速度(詳しくは接触部位代表要素の並進速度及び回転速度(角速度)のうちの一方又は両方)と、一般化変数ベクトル↑qの1階微分値(時間的変化率)との間の関係を表現するヤコビアン(以降、接触部位ヤコビアンという)を逐次算出する処理を実行する機能部である。接触部位ヤコビアンは、換言すれば、一般化変数ベクトル↑qの各成分値の変化(微小変化)に対する接触部位代表要素の空間的な位置・姿勢(詳しくは位置及び姿勢のうちの一方又は両方)の変化の割合い(感度)を表現する行列である。なお、ロボット1の外界との接触部位を代表する要素としての接触部位代表要素は、より詳しくは、その運動が、外界に対して接触する全ての接触部位の該外界に対する接触状態(各接触部位の接触時の運動状態又は各接触部位に対する外力の作用状態)に依存して規定されるように定義された実体的又は仮想的な要素を意味する。
【0125】
ここで、本実施形態で説明するロボット1の目標運動は、前記したようにロボット1の歩行動作を行なう運動である。この場合、ロボット1の外界との実際の接触部位としての接地部位(床面との接触部位)は、経時的に変化する。すなわち、歩行動作におけるロボット1の接地状態は、足平部18R,18Lの一方だけが接地部位となる片脚接地状態と、両方が接地部位となる両脚接地状態と、他方だけが接触部位となる片脚接地状態とが順番に繰り返される。このため、接触部位代表要素は、その位置・姿勢が、足平部18R,18Lの接地状態に応じて変化していくべきものである。
【0126】
そこで、接触部位ヤコビアン決定部82は、ロボット1の接触部位代表要素の位置・姿勢を規定するパラメータ(後述の比率値rat)の値を足平部18R,18Lの接地状態に応じて逐次決定しつつ、接触部位ヤコビアンを逐次算出する。この場合、接触部位代表要素の位置・姿勢は、足平部18R,18Lの接地状態の切り替わりの際、あるいは、片脚接地状態及び両脚接地状態のそれぞれの期間内で不連続に変化することが無いように(常時、連続的に変化していくように)決定される。
【0127】
より詳しくは、片脚接地状態においては、接触部位代表要素は、その位置・姿勢が、足平部18R,18Lのうちの接地している足平部18の位置及び姿勢に依存して定まる要素として設定される。また、両脚接地状態では、接触部位代表要素は、その位置・姿勢が、両足平部18R,18Lの位置及び姿勢と、両足平部18R,18Lに対する床反力の作用状態とに依存して定まる要素として設定される。
【0128】
以下、接触部位ヤコビアン決定部82の処理を具体的に説明する。
【0129】
本実施形態では、接触部位代表要素は、外界との接触部位としての足平部18R,18Lの一方もしくは両方の接地時(床との接触時)に運動の拘束を受ける複数の所定数の点を連接してなる要素であると見なし、その所定数の点の運動(並進運動)によって該接触部位代表要素の運動(並進運動及び回転運動)が表現されるものとする。以降、その複数の所定数の点を接触部位代表点という。この接触部位代表点の個数は、足平部18R,18Lのいずれの接地状態においても一定に維持される。
【0130】
具体的には、接触部位代表要素は、図5(a)〜(c)に黒丸点で示すように、足平部18R,18Lのいずれの接地状態においても、4つの接触部位代表点a1,a2,a3,a4から構成される。なお、図5(a)〜(c)では、足平部18R,18Lのうちの接地している足平部を実線で示し、離床している(空中を移動している)足平部を2点鎖線で示している。
【0131】
この場合、4つの接触部位代表点a1〜a4の位置は、足平部18R,18Lの接地状態に応じた位置に規定される。
【0132】
具体的には、左側足平部18Lが接地し、且つ右側足平部18Rが離床している片脚接地状態(左脚接地状態)においては、図5(a)に示す如く、左側足平部18Lの底面の所定の位置(左側足平部18Lに対して固定された位置)にあらかじめ設定された4つの所定点a1L,a2L,a3L,a4Lが、それぞれ接触部位代表点a1,a2,a3,a4として決定される。
【0133】
その4つの所定点a1L〜a4Lの位置は、本実施形態では、左側足平部18Lの底面の4隅の位置である。より詳しくは、所定点a1L〜a4Lの位置は、それぞれ順番に、左側足平部18Lの底面の左前側の隅部、右前側の隅部、左後側の隅部、右後側の隅部の位置である。従って、左脚接地状態における接触部位代表点a1,a2,a3,a4の位置は、左側足平部18Lの位置及び姿勢に応じて規定される位置である。
【0134】
また、右側足平部18Rが接地し、且つ左側脚リンク3Lの足平部18Lが離床している片脚接地状態(右脚接地状態)においては、図5(c)に示す如く、右側足平部18Rの底面の所定の位置(右側足平部18Rに対して固定された位置)にあらかじめ設定された4つの所定点a1R,a2R,a3R,a4Rが、それぞれ接触部位代表点a1,a2,a3,a4として決定される。
【0135】
その4つの所定点a1R〜a4Rの位置は、左側足平部18Lの4つの所定点a1L〜a4Lと同様に、右側足平部18Rの底面の4隅の位置(左前側の隅部、右前側の隅部、左後側の隅部、右後側の隅部の位置)である。従って、右脚接地状態における接触部位代表点a1,a2,a3,a4の位置は、右側足平部18Rの位置及び姿勢に応じて規定される位置である。
【0136】
なお、右側足平部18Rの4つの所定点a1R〜a4Rの相互の位置関係と、左側足平部18Lの4つの所定点a1L〜a4Lの相互の位置関係とは同じである。
【0137】
また、両足平部18R,18Lが接地する両脚接地状態においては、図5(b)に示す如く、接触部位代表点a1,a2,a3,a4の位置は、それぞれ順番に、両足平部18R,18Lのそれぞれの上記所定点a1R,a1Lを結ぶ線分上の位置、上記所定点a2R,a2Lを結ぶ線分上の位置、上記所定点a3R,a3Lを結ぶ線分上の位置、上記所定点a4R,a4Lを結ぶ線分上の位置に決定される。
【0138】
ここで、以降の説明では、任意の2つの点A,Bを結ぶ線分を線分A_Bというように表記し、その線分A_Bの長さ(線分長)をL(A_B)と表記する。
【0139】
この場合、両脚接地状態での接触部位代表点a1〜a4の位置は、より詳しくは、次のように規定された位置である。
【0140】
すなわち、接触部位代表点a1,a2,a3,a4の位置は、次式2−1aにより示される如く、線分長L(a1R_a1L)に対する線分長L(a1_a1L)の比率L(a1_a1L)/L(a1R_a1L)と、線分長L(a2R_a2L)に対する線分長L(a2_a2L)の比率L(a2_a2L)/L(a2R_a2L)と、線分長L(a3R_a3L)に対する線分長L(a3_a3L)の比率L(a3_a3L)/L(a3R_a3L)と、線分長L(a4R_a4L)に対する線分長L(a4_a4L)の比率L(a4_a4L)/L(a4R_a4L)とが互いに等しい比率値rat(0≦rat≦1)となるように決定される。
【0141】
換言すれば、接触部位代表点a1,a2,a3,a4の位置は、次式2−1bにより示される如く、線分長L(a1R_a1L)に対する線分長L(a1_a1R)の比率L(a1_a1R)/L(a1R_a1L)と、線分長L(a2R_a2L)に対する線分長L(a2_a2R)の比率L(a2_a2R)/L(a2R_a2L)と、線分長L(a3R_a3L)に対する線分長L(a3_a3R)の比率L(a3_a3R)/L(a3R_a3L)と、線分長L(a4R_a4L)に対する線分長L(a4_a4R)の比率L(a4_a4R)/L(a4R_a4L)とが互いに等しい比率値(1−rat)となるように決定される。
【0142】

L(a1_a1L)/L(a1R_a1L)=L(a2_a2L)/L(a2R_a2L)
=L(a3_a3L)/L(a3R_a3L)=L(a4_a4L)/L(a4R_a4L)=rat
……式2−1a

L(a1_a1R)/L(a1R_a1L)=L(a2_a2R)/L(a2R_a2L)
=L(a3_a3R)/L(a3R_a3L)=L(a4_a4R)/L(a4R_a4L)=1−rat
……式2−1b

そして、両脚接地状態での接触部位代表点a1〜a4の位置を規定する上記比率値ratは、本実施形態では、右側足平部18Rに実際に作用する並進床反力(床反力のうちの並進力)の鉛直方向成分Fz_act_Rと、左側足平部18Lに実際に作用する並進床反力の鉛直方向成分Fz_act_Lとの比率に応じて決定される。詳しくは、接触部位ヤコビアン決定部82は、次式2−2a又は2−2bにより、上記比率値ratを決定する。
【0143】

rat=Fz_act_R/(Fz_act_R+Fz_act_L) ……式2−2a

rat=1−Fz_act_L/(Fz_act_R+Fz_act_L) ……式2−2b

従って、両脚接地状態での接触部位代表点a1〜a4の位置は、両足平部18R,18Lの位置及び姿勢と、両足平部18R,18Lに対する床反力の作用状態とに応じて規定される位置に決定されることとなる。
【0144】
なお、式2−2a又は2−2bにおいて、Fz_act_R=0である場合には、rat=0となるので、この場合の接触部位代表点a1,a2,a3,a4は、それぞれ、左側足平部18Lの前記所定点a1L,a2L,a3L,a4Lに一致することとなる。また、式2−2a又は2−2bにおいて、Fz_act_L=0である場合には、rat=1となるので、この場合の接触部位代表点a1,a2,a3,a4は、それぞれ、右側足平部18Rの前記所定点a1R,a2R,a3R,a4Rに一致することとなる。そして、左脚接地状態では、Fz_act_R=0となり、右脚接地状態では、Fz_act_L=0となる。
【0145】
従って、両脚接地状態だけでなく、左脚接地状態及び右脚接地状態においても、式2−2a又は式2−2bにより比率値ratを決定し、この比率値ratに応じて、前記式2−1a又は2−1bを満たすように接触部位代表点a1,a2,a3,a4の位置を規定すれば、結果的に、左脚接地状態及び右脚接地状態においても、接触部位代表点a1,a2,a3,a4の位置が前記した位置に規定されることとなる。
【0146】
そこで、本実施形態では、接触部位ヤコビアン決定部82は、上記比率値ratを接触部位代表点a1,a2,a3,a4の位置(ひいては接触部位代表要素の位置及び姿勢)を規定するパラメータとして決定する処理を実行する。この処理は、具体的には、次のように実行される。
【0147】
すなわち、上記比率値rat(以降、接触部位代表要素規定比率ratという)を決定するために、接触部位ヤコビアン決定部82には、各足平部18R,18Lに作用する実際の並進床反力鉛直成分Fz_act_R,Fz_act_Lの計測値が入力される。なお、これらのFz_act_R,Fz_act_Lの計測値は、それぞれ、前記力センサ63R,63Lの検出出力等に基づき、制御装置60において認識された計測値である。
【0148】
そして、接触部位ヤコビアン決定部82は、入力された並進床反力鉛直成分Fz_act_R,Fz_act_Lの計測値から、前記式2−2a又は式2−2bにより接触部位代表要素規定比率ratを算出する。
【0149】
このように接触部位代表要素規定比率ratを決定することで、結果的に、4つの接触部位代表点a1〜a4のそれぞれの位置が連続的に変化していくように決定されることとなる。ひいては、これらの4つの接触部位代表点a1〜a4を連接してなる要素としての接触部位代表要素の位置及び姿勢が、連続的に変化していくように決定されることとなる。
【0150】
補足すると、本実施形態では、上記の如く4つの接触部位代表点a1〜a4の位置が決定されるので、ロボット1の片脚接地状態においては、接地している足平部18R又は18Lそのものが接地部位代表要素に相当するものとなる。一方、ロボット1の両脚接地状態においては、接地部位代表要素は、両足平部18R,18Lの間に存在する仮想的な要素に相当するものとなる。
【0151】
さらに、接触部位ヤコビン決定部82は、上記のように決定した接触部位代表要素規定比率ratを用いて接触部位ヤコビアンを決定する。
【0152】
この場合、本実施形態では、接触部位代表要素の運動が、4つの接触部位代表点a1〜a4の運動によって表現されるものとしているので、接触部位ヤコビアンは、接触部位代表点a1〜a4のそれぞれの位置を成分として並べて構成されるベクトル↑Xcの時間的変化率(1階微分値)↑Xc'(=d↑Xc'/dt)、すなわち、接触部位代表点a1〜a4のそれぞれの運動速度を成分として構成されるベクトル↑Xc'と、前記一般化変数ベクトル↑qの1階微分値↑q'との間の関係を次式2−3により表現する行列Jcである。
【0153】

↑Xc'=Jc*↑q' ……式2−3

上記ベクトル↑Xcは、接触部位代表点a1〜a4により構成される接触部位代表要素の位置及び姿勢を表すものとしての意味を持ち、↑Xcの時間的変化率↑Xc'は、該接触部位代表要素の運動速度を示すものとしての意味を持つ。以降、↑Xcを接触部位代表要素位置ベクトルという。なお、接触部位代表点a1〜a4のそれぞれの運動速度(並進速度)は3自由度を有するので、↑Xc'は、3*4=12個の成分から成るベクトルとして表現される。
【0154】
ここで、接触部位代表点a1〜a4をそれぞれ右側足平部18Rの前記所定点a1R〜a4Rに一致させた場合の接触部位代表要素位置ベクトル↑Xcを↑Xc_R、接触部位代表点a1〜a4をそれぞれ左側足平部18Lの前記所定点a1L〜a4Lに一致させた場合の接触部位代表要素位置ベクトル↑Xcを↑Xc_Lとおく。また、↑Xc_Rの1階微分値↑Xc_R'(=d↑Xc_R/dt)と、一般化変数ベクトル↑qの一階微分値↑q'との間の関係を表すヤコビアンをJc_R、↑Xc_Lの1階微分値↑Xc_L'(=d↑Xc_L/dt)と、一般化変数ベクトル↑qの一階微分値↑q'との間の関係を表すヤコビアンをJc_Lとおく。すなわち、↑Xc_L'=Jc_L*↑q'、↑Xc_R'=Jc_R*↑q'とおく。
【0155】
このとき、上記接触部位ヤコビアンJcは、次式2−4により与えられる。
【0156】

Jc=rat*Jc_R+(1−rat)*Jc_L ……式2−4

そこで、本実施形態では、接触部位ヤコビアン決定部82は、式2−4の右辺のヤコビアンJc_R、Jc_Lを算出し、これらのヤコビアンJc_R、Jc_Lの算出値と、前記の如く算出した接触部位代表要素規定比率ratとから式2−4の右辺の演算を行なうことで、接触部位ヤコビアンJcを算出する。
【0157】
この場合、上記ヤコビアンJc_R、Jc_Lを算出するために、接触部位ヤコビアン決定部82には、下側上体10の移動速度、並びに姿勢角及びその時間的変化率(角速度)の計測値と、各脚リンク3R,3Lの各関節の回転角度及びその時間的変化率(角速度)の計測値とが入力される。そして、接触部位ヤコビアン決定部82は、これらの入力された計測値から、上記ヤコビアンJc_R、Jc_Lを算出する。
【0158】
以上のように接触部位ヤコビアン決定部82の処理では、ロボット1に作用する並進床反力鉛直成分Fz_act_R,Fz_act_Lの計測値に応じて(ひいては両足平部18R,18Lの接地状態に応じて)、前記接触部位代表要素規定比率ratが決定される。また、一般化変数ベクトル↑q及びその一階微分値↑q'の所要の成分の計測値に基づき、ヤコビアンJc_R、Jc_Lが算出される。そして、これらの接触部位代表要素規定比率rat、ヤコビアンJc_R、Jc_Lの算出値から前記式2−4により接触部位ヤコビアンJcが算出される。
【0159】
補足すると、前記式2−2a又は2−2bの右辺の分母がほぼ一定に維持されるとみなせるような場合には、式2−2a又は2−2bの右辺の分母を、ロボット1の全体に作用する重力(=ロボット1の全体質量*重力加速度定数)に置き換えた式によって、前記接触部位代表要素規定比率ratを決定するようにしてもよい。
【0160】
また、前記歩容生成部71が生成・出力する前記目標歩容(あるいは制御装置60に外部から与えられる目標歩容)が、足平部18R,18Lのそれぞれの並進床反力鉛直成分の目標値Fz_cmd_R,Fz_cmd_Lを含んでいる場合には、前記式2−2a又は2−2bのFz_act_R,Fz_act_Lを、それぞれ、Fz_cmd_R,Fz_cmd_Lに置き換えた式によって、前記接触部位代表要素規定比率ratを決定するようにしてもよい。
【0161】
あるいは、例えば、式2−2a又は2−2bのFz_act_R,Fz_act_Lを、それぞれ、Fz_cmd_R,Fz_cmd_Lに置き換えた式によって算出されるratの値にローパス特性のフィルタリング処理を施してなるフィルタリング値と、式2−2a又は2−2bの演算により算出されるratの値にローカット特性(ハイパス特性)のフィルタリング処理を施してなるフィルタリング値とを合成する(加え合わせる)ことによって、前記接触部位代表要素規定比率ratを決定するようにしてもよい。
【0162】
換言すれば、目標値Fz_cmd_R,Fz_cmd_Lの比率に応じて接触部位代表要素規定比率ratの低周波側の成分を決定すると共に、Fz_act_R,Fz_act_Lの計測値の比率に応じて接触部位代表要素規定比率ratの高周波側の成分を決定し、それらの成分を合成する(加え合わせる)ことによって、接触部位代表要素規定比率ratを決定するようにしてもよい。
【0163】
この場合、上記ローパス特性のフィルタリング処理及びローカット特性のフィルタリング処理としては、例えば、それぞれの伝達関数が、1/(Tc*s+1)、Tc*s/(Tc*s+1)(Tc:所定の時定数)により表されるフィルタを用いることができる。
【0164】
また、本実施形態では、接触部位代表要素の運動を表現するための接触部位代表点として4つの点a1〜a4を用いたが、接触部位代表点として、3つ、もしくは5個以上の点を用いるようにすることも可能である。
【0165】
前記状態量ヤコビアン決定部83は、ロボット1の歩行動作を安定に行なう上で適切な目標値に制御することが望ましいものとしてあらかじめ定められた状態量に関して、その状態量(以降、制御対象状態量ということがある)と、一般化変数ベクトル↑qの1階微分値↑q'との間の関係を表現するヤコビアン(以降、状態量ヤコビアンという)を算出する処理を逐次実行する機能部である。
【0166】
制御対象状態量は、その値が、一般化変数ベクトル↑qのいずれかの成分の値の変化に応じて変化する状態量である。より詳しくは、制御対象状態量は、その値(瞬時値)が、ある状態量ヤコビアンを、一般変数ベクトル↑qの1階微分値↑q'に乗じてなる値となるような状態量である。
【0167】
本実施形態では、制御対象状態量として、グローバル座標系で見たロボット1の全並進運動量↑Ptotalと全角運動量↑Ltotal(詳しくはグローバル座標系の所定の基準点周りの全角運動量↑Ltotal)との組を使用する。なお、グローバル座標系としては、本実施形態では、例えば、ロボット1の足平部18R,18Lのうちの支持脚側の足平部の接地位置に応じた位置(例えば接地面内の位置)に原点が設定される座標系(所謂、支持脚座標系)が使用される。
【0168】
上記全並進運動量↑Ptotalは、より詳しくは、ロボット1の各リンクの重心点の運動量(=リンクの質量*該リンクの重心点の移動速度)をロボット1の全てのリンクについて加え合わせてなる並進運動量である。換言すれば、↑Ptotalは、ロボット1の全体重心の並進運動量である。この↑Ptotalは、本実施形態では、3自由度のベクトル(ロール軸方向、ピッチ軸方向及びヨー軸方向の3軸方向の成分から成るベクトル)である。
【0169】
なお、以降の説明では、ロール軸は、ロボット1の前後方向での水平軸、ピッチ軸はロボット1の左右方向での水平軸、ヨー軸は鉛直方向(重力方向)の軸を意味する。
【0170】
また、上記全角運動量↑Ltotalは、ロボット1の各リンクの重心点の並進運動による上記基準点周りの角運動量(=基準点に対するリンクの重心点の位置ベクトルと、該重心点の並進運動量とのベクトル積)と、各リンクの重心点周りの回転運動による角運動量(=リンクの慣性モーメント*該リンクの重心点周りの角速度)とを、全てのリンクについて加え合わせてなる角運動量である。この全角運動量↑Ltotalは、本実施形態では、ヨー軸周りの成分を除く2自由度のベクトル(ロール軸及びピッチ軸の2軸周りの成分から成るベクトル)である。なお、上記基準点は、前記グローバル座標系にあらかじめ設定された点(例えば前記支持脚座標系の原点)である。
【0171】
状態量ヤコビアン決定部83は、上記の制御対象状態量に対応する状態量ヤコビアンを決定する。この場合、この状態量ヤコビアンは、全並進運動量↑Ptotalと全角運動量↑Ltotalとを成分として並べて構成されるベクトル↑S1(=[↑P,↑L]T。以降、状態量ベクトル↑S1という)と、前記一般化変数ベクトル↑qの1階微分値↑q'との間の関係を次式3−1により表現する行列Js1である。
【0172】

↑S1=Js1*↑q' ……式3−1

なお、本実施形態では、全並進運動量↑Ptotal及び全角運動量↑Ltotalは、それぞれ、3自由度、2自由度のベクトルであるので、↑S1は、3+2=5個の成分から成るベクトルである。
【0173】
この状態量ヤコビアンJs1を算出するために、状態量ヤコビアン決定部83には、代表リンク(下側上体)10の移動速度、並びに姿勢角及びその時間的変化率(角速度)の計測値と、各関節の回転角度及びその時間的変化率(角速度)の計測値とが入力される。そして、状態量ヤコビアン決定部83は、これらの入力された計測値から、状態量ヤコビンJs1を算出する。
【0174】
前記状態量目標値決定部84は、前記制御対象状態量に関する目標値を決定する処理を実行する機能部である。
【0175】
本実施形態では、制御対象状態量に関する目標値は、前記状態量ベクトル↑S1の時間的変化率(1階微分値)↑S1'(=d↑S1/dt)の目標値↑S1'_cmdである。
【0176】
この場合、↑S1'は、ロボット1の全並進運動量↑Ptotalの1階微分値↑Ptotal'(=d↑Ptotal/dt)と、全角運動量↑Ltotalの1階微分値↑Ltotal'(=d↑Ltotal/dt)とを成分とするベクトル(=[↑Ptotal',↑Ltotal']T)となるので、↑S1'の目標値↑S1'_cmd(以下、状態量目標値ベクトル↑S1'_cmdという)は、ロボット1の全体の運動によって発生するトータルの慣性力(ただし、ヨー軸周りのモーメント成分を除く)の目標値に相当するものとなる。
【0177】
より詳しくは、状態量目標値ベクトル↑S1'_cmdは、↑Ptotal'の目標値と↑Ltotal'の目標値とを成分とするベクトルとなる。そして、↑S1'_cmdのうちの↑Ptotal'の目標値は、ロボット1の全体の運動によって発生するトータルの並進慣性力の目標値(ロボット1の全体重心の並進慣性力の目標値)に相当し、↑Ltotal'の目標値は、ロボット1の全体の運動によって発生するトータルのモーメント慣性力(ただし、ヨー軸周りの成分を除く)の目標値に相当するものとなる。
【0178】
そして、本実施形態では、状態量目標値決定部84は、上記状態量目標値ベクトル↑S1'_cmdを以下に説明する如く決定する。
【0179】
すなわち、状態量目標値決定部84は、状態量目標値ベクトル↑S1'_cmdのうちの、全並進運動量↑Ptotalの時間的変化率↑Ptotal'の目標値↑Ptotal'_cmdと、全角運動量↑Ltotalの時間的変化率↑Ltotal'の目標値↑Ltotal'_cmdとを各別の演算処理により算出する。
【0180】
さらに詳細には、↑Ptotal'_cmdの算出処理に関しては、状態量目標値決定部84は、グローバル座標系でのロボット1の全体重心点の目標位置↑rgc_cmdと実際の位置↑rgc_actの計測値との偏差↑Δrgc(=↑rgc_cmd−↑rgc_act)と、その偏差↑Δrgcの1階微分値↑Δrgc'(=d↑Δrgc/dt)とを算出する。
【0181】
この場合、ロボット1の全体重心点の目標位置↑rgc_cmdは、前記歩容生成部71から状態量目標値決定部84に入力される。また、該全体重心点の実際の位置↑rgc_actの計測値は、各関節の回転角度の計測値等から公知の手法(例えばカルマンフィルタを使用した手法)によって、制御装置60が逐次算出し、その算出した計測値が、状態量目標値決定部84に入力される。
【0182】
なお、↑rgc_cmd及び↑rgc_actは、ロール軸方向、ピッチ軸方向及びヨー軸方向の3軸方向の位置から成るベクトル(3自由度の位置ベクトル)である。
【0183】
そして、状態量目標値決定部84は、上記偏差↑Δrgcを“0”に収束させるためのフィードバック操作量を所定のフィードバック制御則により算出し、その算出したフィードバック操作量を↑Ptotal'の↑目標値Ptotal'_cmdとして決定する。
【0184】
この場合、具体的には、状態量目標値決定部84は、上記偏差↑ΔrgcをPD則(比例・微分則)によって“0”に収束させるように↑Ptotal'_cmdを決定する。すなわち、状態量目標値決定部84は、偏差↑Δrgcとその1階微分値↑Δrgc'とから、次式4−1より↑Ptotal'_cmdを決定する。
【0185】

↑Ptotal'_cmd=Kp1*↑Δrgc+Kv1*↑Δrgc' ……式4−1

なお、式4−1におけるKp1,Kv1は、それぞれあらかじめ設定された所定値の比例ゲイン、微分ゲインである。これらのゲインKp1,Kv1は対角行列(本実施形態では3次の対角行列)によって表現される。
【0186】
次に、Ltotal'_cmdの算出処理に関しては、状態量目標値決定部84は、グローバル座標系でのロボット1の目標ZMPの水平位置(ロール軸方向の位置及びピッチ軸方向の位置)と、ロボット1の全体重心点の実際の水平位置↑rgc_act_xy(=前記↑rgc_actのロール軸方向成分及びピッチ軸方向成分)の計測値との偏差↑Δrg_xyを算出する。この場合、ロボット1の目標ZMPの水平位置は、前記歩容生成部71から状態量目標値決定部84に入力される。
【0187】
さらに、状態量目標値決定部84は、ロボット1の全体重心点が、目標ZMPを支点とする倒立振子の質点であると見なした場合における該倒立振子の鉛直方向に対する傾斜角度↑θpend(ロール軸及びピッチ軸の2軸周りの傾斜角度)と、その1階微分値↑θpend'(=d↑θpend/dt)を上記偏差↑Δrg_xyから算出する。具体的には、↑θpendのロール軸周り成分及びピッチ軸周り成分をそれぞれθpend_x、θpend_yとしたとき、θpend_x,θpend_yは、それぞれ、上記偏差↑Δrg_xyのピッチ軸方向成分Δrg_y、ロール軸方向成分Δrg_xから次式4−2a,4−2bにより算出される。
【0188】

θpend_x=tan-1(Δrg_y/h)≒Δrg_y/h ……式4−2a
θpend_y=tan-1(Δrg_x/h)≒Δrg_x/h ……式4−2b

そして、これらのθpend_x,θpend_yの1階微分値(時間的変化率)を算出することで、↑θpend_xy'の各成分が算出される。
【0189】
なお、式4−2a,4−2bにおける“h”は、ロボット1の全体重心点の平均的な高さとしてあらかじめ設定された所定値である。
【0190】
次いで、状態量目標値決定部84は、上記の如く算出した倒立振子の傾斜角度↑θpend(=[θpend_x,θpend_y]T)を“0”に収束させるためのフィードバック操作量(制御入力)を所定のフィードバック制御則により算出し、その算出したフィードバック操作量を↑Ltotal'の目標値↑Ltotal'_cmdとして決定する。
【0191】
この場合、具体的には、状態量目標値決定部84は、上記傾斜角度↑ΔθpendをPD則(比例・微分則)によって“0”に収束させるように↑Ltotal'_cmdを決定する。すなわち、状態量目標値決定部84は、傾斜角度↑θpendとその1階微分値↑θpend'とから、次式4−3により↑Ltotal'_cmdを決定する。
【0192】

↑Ltotal'_cmd=Kp2*↑θpend+Kv2*↑θpend' ……式4−3

なお、式4−3におけるKp2,Kv2は、それぞれあらかじめ設定された所定値の比例ゲイン、微分ゲインである。これらのゲインKp2,Kv2は対角行列(本実施形態では2次の対角行列)によって表現される。
【0193】
以上、説明した処理によって、↑Ptotal'の目標値↑Ptotal'_cmdと、↑Ltotal'の目標値↑Ltotal'_cmdとが決定され、これにより、状態量目標値ベクトル↑S1'_cmd(=[↑Ptotal'_cmd,↑Ltotal'cmd]T)が決定されることとなる。
【0194】
この場合、本実施形態では、↑S1'_cmdのうちの↑Ptotal'_cmdは、ロボット1の全体重心点の位置↑rgc_actを目標位置↑rgc_cmdに収束させるように決定される。
【0195】
また、↑S1'_cmdのうちの↑Ltotal'_cmdは、ロボット1の実際の全体重心点を倒立振子の質点と見なした場合の該倒立振子の傾斜角度↑θpendを“0”に収束させる(換言すれば、ロボット1の実際の全体重心点を目標ZMPの鉛直方向上方の位置に収束させる)ように決定される。
【0196】
補足すると、θpend_x,θpend_yは、それぞれ、Δrg_y,Δrg_xにほぼ比例する。このため、θpend_x,θpend_yの算出処理を省略し、Δrg_y,Δrg_xをフィードバック制御則(例えばPD則)により“0”に収束させるように、↑Ltotal'_cmd_xyを決定するようにしてもよい。例えば、式4−3の右辺の↑θpendをベクトル[Δrg_y,Δrg_x]Tに置き換えた形の式によって、↑Ltotal'_cmd_xyを算出するようにしてもよい。
【0197】
以上のように、基本パラメータ群決定部81、接触部位ヤコビアン決定部82、状態量ヤコビアン決定部83及び状態量目標値決定部84の処理を実行した後、目標関節駆動トルク決定部72は、次に、制御入力決定部85の処理を実行する。
【0198】
この制御入力決定部85は、制御対象状態量に関する目標値(前記状態量目標値ベクトル↑S1'_cmd)を実現するために必要なロボット1の各関節の目標関節駆動トルクを決定する処理を逐次実行する機能部である。以降、制御入力決定部85で決定する各関節の目標関節駆動トルクを成分として並べたベクトルを目標関節駆動トルク↑τ1_cmdと表記する。
【0199】
なお、本実施形態の説明では、↑τ1_cmdは、前記駆動力依存一般化力ベクトル↑τと同じ次数(一般化変数ベクトル↑qと同じ次数)のベクトルであるとする。この場合、↑τ1_cmdの成分のうち、ロボット1の代表リンク(下側上体10)の位置及び姿勢に対応する成分は、いずれも“0”である。
【0200】
ここで、制御入力決定部85の処理に使用する基本式を以下に説明しておく。
【0201】
ロボット1が外界との接触部位に外力を受ける場合、ロボット1の運動と力との関係(運動方程式)を表現するロボット運動モデルは、外力が“0”である場合のロボット運動ロボットモデルを表す前記式1−1に、外力の影響分を付加してなる次式5−1により表される。
【0202】

M*↑q''+↑N+↑G+JcT*↑Fc=↑τ ……式5−1

この式5−1における↑Fcは、ロボット1の外界との接触部位(本実施形態では足平部18R,18L)に作用する外力によって前記接触部位代表要素に作用する外力(詳しくは、足平部18R,18Lを介してロボット1に作用するトータルの外力を、接触部位代表要素を該外力の作用部位として表現した場合の外力)であり、JcTは前記接触部位ヤコビアンJcの転置行列である。
【0203】
この式5−1は、以下に説明する如く、ロボット1が外力を受ける接触部位の運動、ひいては、前記接触部位代表要素の運動を規定する(該運動を既定の運動に一致させるものとする)ことによって、後述の式5−11に変形することができる。
【0204】
以下説明すると、式5−1の両辺に、行列Jc*M-1を乗じることによって、次式5−2が得られる。
【0205】

Jc*↑q''+Jc*M-1*(↑N+↑G)+Jc*M-1*JcT*↑Fc
=Jc*M-1*↑τ ……式5−2

一方、前記接触部位代表要素の運動速度としての接触部位代表要素位置ベクトル↑Xcの1階微分値↑Xc'と、一般化変数ベクトル↑qの1階微分値↑q'との間の関係を表現する前記式2−3の両辺を1階微分した後、式変形を行なうことで、次式5−3が得られる。
【0206】

Jc*↑q''=↑Xc''−Jc'*↑q' ……式5−3

この式5−3におけるJc'は前記接触部位ヤコビアンJcの1階微分値(=dJc/dt)、↑q''は↑qの2階微分値(=d2↑q/dt2)である。
【0207】
さらに、この式5−3を式5−2に代入することで、次式5−4が得られる。
【0208】

↑Xc''−Jc'*↑q'+Jc*M-1*(↑N+↑G)
+Jc*M-1*JcT*↑Fc=Jc*M-1*↑τ ……式5−4

ここで、ある重み行列Wat(対角行列)を用いて次式5−5,5−6によりそれぞれ定義される行列Jc#と行列Rcとを導入する。
【0209】

Jc#≡WatT*JcT*RcT ……式5−5
Rc≡((Jc*Wat*JcT)-1)T ……式5−6

なお、式5−5により定義される行列Jc#は、接触部位ヤコビアンJcの一般化重み付き擬似逆行列としての意味を持つものである。
【0210】
この場合、上記重み行列Watとして、例えば、前記イナーシャ行列Mの逆行列M-1を採用することができる。そして、このようにWat=M-1とした場合には、(Jc#)T=Rc*Jc*Wat=Rc*Jc*M-1となる。このため、前記式5−4の両辺に行列Rc(但し、Wat=M-1)を乗じることで、次式5−7が得られる。
【0211】
すなわち、式5−5,5−6でWat=M-1として得られる次式5−8,5−9によりそれぞれ定義される行列Jc#、Rcを用いることによって、前記式5−1は、次式5−7に変形される。
【0212】

Rc*↑Xc''−Rc*Jc'*↑q'+(Jc#)T*(↑N+↑G)+↑Fc
=(Jc#)T*↑τ ……式5−7
但し、
Jc#≡(M-1)T*JcT*RcT ……式5−8
Rc≡((Jc*M-1*JcT)-1)T ……式5−9

なお、M-1は対角行列であるので、(M-1)T=M-1である。
【0213】
ここで、前記接触部位代表要素の運動を規定し、前記接触部位代表要素位置ベクトル↑Xcの2階微分値↑Xc''(=d2↑Xc/dt2)をある既定の目標値↑Cに一致させる場合(接触部位代表点a1〜a4の運動加速度を、それぞれ、ある既定の目標値に一致させる場合)を想定する。すなわち、↑Xc''=↑Cとなるように、接触部位である足平部18R,18Lの運動が規定される場合を想定する。
【0214】
この場合、上記式5−7から、次式5−10が得られる。
【0215】

↑Fc=(Jc#)T*(↑τ−↑N−↑G)−Rc*↑C−Rc*Jc'*↑q'
……式5−10

この式5−10を前記式5−1に代入し、さらに、次式5−12,5−13,5−14,5−15によりそれぞれ定義される行列Tc,ベクトル↑Cc,行列Pc及び一般化力ベクトル↑τcmpnとを用いて整理することによって、次式5−11が得られる。
【0216】

M*↑q''+Tc*↑q'=Pc*(↑τ−↑τcmpn) ……式5−11
但し、
Tc≡−JcT*Rc*Jc' ……式5−12
↑Cc≡−JcT*Rc*↑C …式51−13
Pc≡I−JcT*(Jc#)T ……式5−14
↑τcmpn≡(↑N+↑G)−Pc-1*Cc ……式5−15

上記式5−11は、接触部位代表要素の運動を規定した場合のロボット1の運動方程式を、外力↑Fcを含まない形態で表現する式である。
【0217】
次に、ロボット1の前記一般化変数ベクトル↑qの1つ以上の成分に依存する値を有する任意の状態量↑Sを想定し、この↑Sと、一般化変数ベクトル↑qの1階微分値↑q'との間の関係が、あるヤコビアンJsを用いて、次式5−16により表現されるものとする。
【0218】

↑S=Js*↑q' ……式5−16

この式5−16は、前記式3−1を一般化して表現したものである。なお、この式5−16での↑Sは、ベクトルである必要はない(スカラーでもよい)が、ここでの説明では、前記式3−1との整合を採るために、便宜上、ベクトルとして表記している。
【0219】
ここで、上記式5−16から得られる次式5−17の関係式を用いることによって、前記式5−11は、次式5−20に変形される。
【0220】

Js*↑q''=↑S'−Js'*↑q' ……式5−17

↑S'+(Js*M-1*Tc−Js')*↑q'
=(Js*M-1*Pc)*(↑τ−↑τcmpn) ……式5−20

従って、この式5−20における行列Js,M,Tc,Js',Pcの値と、↑S',↑q',↑τcmpnの値とを決定すれば、この式5−20に基づいて、駆動力依存一般化力ベクトル↑τ(ひいては、各関節の関節駆動トルク)を決定することができることとなる。
【0221】
ここで、式5−20の右辺の行列(Js*M-1*Pc)(以降、As≡Js*M-1*Pcと定義する)は、正則行列になるとは限らない(Asの逆行列As-1が存在するとは限らない)。
【0222】
そこで、本実施形態では、行列Asから次式5−21a又は5−21bにより決定される行列Bsを使用することによって、次式5−22により↑τを算出することとする。
【0223】

As(≡Js*M-1*Pc)が正則行列である場合
Bs=As-1 ……式5−21a

As(≡Js*M-1*Pc)が正則行列でない場合
Bs=AsT*(k*I+As*AsT)-1 ……式5−21b
但し、
k:(k*I+As*AsT)が正則行列になるように決定される正の実数

↑τ=Bs*(↑S'+(Js*M-1*Tc−Js')*↑q')+↑τcmpn
……式5−22

この式5−22が、本実施形態において、前記目標関節駆動トルク↑τ1_cmdを算出するために使用する基本式である。この場合、前記式5−21bにより決定される行列Bsは、行列Asの擬似逆行列としての意味を持つものである。
【0224】
なお、以降の説明において、任意の行列Aに対して、“A-1”は、Aが正則行列でない場合には、次式5−23により決定される行列Bに一致する行列(擬似逆行列)を意味するものとする。また、行列Aが正則行列である場合には、A-1は、本来の意味でのAの逆行列を意味するものとする。そして、Aが正則行列である場合及び正則行列でない場合のいずれの場合でも、便宜上、A-1をAの逆行列と称する。
【0225】

B=AT*(k*I+A*AT-1 ……式5−23
但し、
k:(k*I+A*AT)が正則行列になるように決定される正の実数

前記式5−22における行列Bsは、上記の意味でのAsの逆行列(=As-1)である。
【0226】
補足すると、前記式5−20の両辺に適当な行列を乗算した上で、↑τを算出する式を構築してもよい。例えば、Rsc≡(Js*PcT*M-1*JsT)-1)Tにより定義される行列Rscを式5−20の両辺に左側から乗じてなる式を基に、上記と同様に、↑τを算出する式を構築してもよい。この場合、行列Rscを式5−20の両辺に左側から乗じることによって、式5−20の両辺は、一般化力ベクトルの次元に変換されることとなる。また、↑τを算出する式は、式5−22の行列Bsを、行列((Rsc*Js*M-1*Pc)-1*Rsc)に置き換えた式となる。
【0227】
以上説明したことを基礎として、以下に、制御入力決定部85の処理を具体的に説明する。
【0228】
制御入力決定部85には、目標関節駆動トルク↑τ1_cmdを算出するために、基本パラメータ群決定部81で決定されたイナーシャ行列M、遠心力・コリオリ力依存一般化力ベクトル↑N及び重力依存一般化力ベクトル↑G(又は非線形項一般化力ベクトル(↑N+↑G))と、接触部位ヤコビアン決定部82で決定された前記接触部位ヤコビアンJcと、状態量ヤコビアン決定部83で決定された状態量ヤコビアンJs1と、状態量目標値決定部84で決定された状態量目標値ベクトル↑S1'_cmdとが逐次入力される。この他、制御入力決定部85には、一般化変数ベクトル↑qの時間的変化率(1階微分値)↑q'の計測値(下側上体10の移動速度、並びに姿勢角の時間的変化率(角速度)の計測値、各関節の回転角度の時間的変化率(角速度)の計測値)も逐次入力されると共に、後述の接触部位代表要素目標加速度↑Cも入力される。
【0229】
そして、制御入力決定部85は、式5−22の右辺の演算に使用する各パラメータの値を所要の入力値を用いて決定し、その決定したパラメータを用いて式5−22の右辺の演算を行なうことで、目標関節駆動トルク↑τ1_cmdを算出する。
【0230】
さらに詳細には、制御入力決定部85は、式5−22の演算に必要な行列Tc,Pcと、一般化力ベクトル↑τcmpnとを所定の入力値を用いて算出する処理を実行する。
【0231】
この場合、制御入力決定部85は、入力されたイナーシャ行列M、遠心力・コリオリ力依存一般化力ベクトル↑N及び重力依存一般化力ベクトル↑G(又は非線形項一般化力ベクトル(↑N+↑G))と、接触部位ヤコビアンJcとを用いて、前記式5−8,5−9,5−12,5−13,5−14,5−15の定義式に基づいて、Tc、Pc、↑τcmpnを算出する。
【0232】
具体的には、制御入力決定部85は、入力されたイナーシャ行列M及び接触部位ヤコビアンJcから、前記定義式5−8,5−9に基づいて、行列Jc#,Rcを算出する。さらに、これらの行列Jc#,Rcと、入力されたJcとから、前記定義式5−12,5−14に基づいて、行列Tc,Pcを算出する。なお、この場合、Jc'、すなわち、Jcの時間的変化率(1階微分値)は、入力されたJcの時系列から算出される。
【0233】
また、制御入力決定部85は、入力されたJc及び算出したRcと、前記接触部位代表要素位置ベクトル↑Xcの2階微分値↑Xc''(接触部位代表点a1〜a4の運動加速度)の目標値↑Cとから、前記式5−13の定義式によりベクトルCcを算出する。以降、目標値↑Cを接触部位代表要素目標加速度↑Cという。
【0234】
ここで、本実施形態では、上記接触部位代表要素目標加速度↑Cの成分である4つの接触部位代表点a1〜a4のそれぞれの目標加速度は、いずれの接触部位代表点a1〜a4についても、あらかじめ“0”に設定されている。すなわち、本実施形態では、接触部位代表要素を構成する各接触部位代表点a1〜a4が床に対して静止するか、もしくは一定の速度で動くことを、接触部位としての足平部18R,18Lの運動に関する目標とされている。
【0235】
そして、制御入力決定部85は、上記接触部位代表要素目標加速度↑Cを用いて前記式5−13の定義式によりベクトル↑Ccを算出する。なお、本実施形態では、接触部位代表要素目標加速度↑Cは“0”ベクトルであるから、ベクトル↑Ccの各成分は、いずれも“0”となる。従って、実際上は、↑Ccを算出する処理は不要であり、単に↑Ccの各成分を“0”に設定しておけばよい。
【0236】
さらに制御入力決定部85は、上記↑Ccと、算出したPcと、入力された↑N及び↑Gとから前記式5−15の定義式に基づいて↑τcmpnを算出する。
【0237】
Tc、Pc、↑τcmpnの算出処理は以上説明した如く実行される。
【0238】
補足すると、↑N+↑G≒↑Gとなる場合には、前記式5−15の↑Nを省略した式によって、↑τcmpnを算出するようにしてもよい。
【0239】
また、制御入力決定部85は、式5−22の演算に用いる行列Bsを算出する処理を実行する。なお、以降の説明では、制御対象状態量に対応する行列BsをBs1と表記する。
【0240】
この場合、制御入力決定部85は、入力されたイナーシャ行列M及び状態量ヤコビアンJs1と、前記Pcの算出値とから、行列Bs1を算出する。より詳しくは、行列(Js1*M-1*Pc)(≡As)の逆行列As-1がBs1として決定される。なお、前記した如く、Asが正則行列でない場合には、As-1は、前記式5−23に基づいて算出される擬似逆行列である。
【0241】
そして、制御入力決定部85は、Bs1,Tc,↑τcmpnの算出値と、入力された状態量目標値ベクトル↑S1'_cmd、状態量ヤコビアンJs1及びイナーシャ行列Mと、↑q'の計測値とを用いて、前記式5−22の右辺の演算(詳しくは、式5−22の右辺のBs、↑S'、Js、Js'、↑q'をそれぞれ、Bs1、↑S1'cmd、Js1、Js1'、↑q'の計測値に置き換えた式の演算)を行なうことによって、↑τを算出し、この↑τの算出値を目標関節駆動トルク↑τ1_cmdとして決定する。なお、この場合、Js1'(=Js1の1階微分値)は、状態量ヤコビアンJs1の時系列から算出される。
【0242】
以上説明した制御入力決定部85の処理によって、本実施形態では、目標関節駆動トルク↑τ1_cmdは、M、↑N、↑G、Jc、Js1の算出値(又はM、↑G、Jc、Js1の算出値)と、状態量目標値ベクトル↑S1'_cmdと、↑q'の計測値と、接触部位代表部目標加速度↑Cとから決定される。
【0243】
この場合、↑τ1_cmdは、接触部位代表点a1〜a4の運動加速度を接触部位代表部目標加速度↑Cにより規定される加速度に一致させつつ、状態量ベクトル↑S1の時間的変化率↑S1'を、状態量目標値ベクトル↑S1'_cmdに一致させるように決定される。
【0244】
このとき、前記したように、↑S1'_cmdのうちの↑Ptotal'_cmdは、ロボット1の全体重心点の位置↑rgc_actを目標位置↑rgc_cmdに収束させるように決定され、また、↑S1'_cmdのうちの↑Ltotal'_cmdは、ロボット1の実際の全体重心点を倒立振子の質点と見なした場合の該倒立振子の傾斜角度↑θpendを“0”に収束させるように決定されている。このため、↑τ1_cmdは、結果的に、ロボット1の全体重心点を適切な位置に保つことができるように決定されることとなる。
【0245】
以上の如く制御入力決定部85の処理を実行した後、目標関節駆動トルク決定部72は、次に、コンプライアンス制御部86の処理を実行する。
【0246】
このコンプライアンス制御部86は、制御入力決定部85が決定した目標関節駆動トルク↑τ1_cmdを基に、ロボット1に作用するトータルの床反力(全床反力)の目標値を決定し、この目標値と実際の全床反力の計測値との偏差を“0”に近づけるように、目標関節駆動トルク↑τ1_cmdを補正する処理を逐次実行する機能部である。以降、このコンプライアンス制御部86により目標関節駆動トルク↑τ1_cmdを補正してなるトルクを補正後目標関節駆動トルク↑τ1c_cmdという。本実施形態では、この補正後目標関節駆動トルク↑τ1c_cmdが、制御装置60の各演算処理周期において、最終的に電動モータ50を制御するための目標関節駆動トルク(前記目標関節駆動制御部73に入力する目標関節駆動トルク)として使用されるものである。
【0247】
コンプライアンス制御部86には、補正後目標関節駆動トルク↑τ1c_cmdを算出するために、基本パラメータ群決定部81で決定された遠心力・コリオリ力依存一般化力ベクトル↑N及び重力依存一般化力ベクトル↑G(又は非線形項一般化力ベクトル(↑N+↑G))と、制御入力決定部85で決定された目標関節駆動トルク↑τ1_cmdと、前記接触部位ヤコビアン決定部82で決定された接触部位代表要素規定比率rat(又はそれにより規定される接触部位代表要素位置ベクトル↑Xc)とが逐次入力される。
【0248】
この他、コンプライアンス制御部86には、制御入力決定部85で算出された行列Rc、Jc'、Jc#、前記接触部位代表要素目標加速度↑C(本実施形態では、“0”ベクトル)、各足平部18R,18Lにそれぞれ作用する実際の床反力↑FM_act_R,↑FM_act_Lの計測値、代表リンク10の移動速度の計測値、ロボット1の代表リンク(下側上体)10の姿勢角の計測値及びその時間的変化率(角速度)の計測値、並びに、各関節の回転角度の計測値及びその時間的変化率(角速度)の計測値も逐次入力される。
【0249】
なお、床反力↑FM_act_R,↑FM_act_Lの計測値は、それぞれ、前記力センサ63R,63Lの検出出力に基づき、制御装置60において認識された計測値である。
【0250】
そして、コンプラインアンス制御部86は、まず、入力された↑N,↑G(又は↑N+↑G)と、Rc、Jc'、Jc#と、↑τ1_cmdと、一般化変数ベクトル↑qの1階微分値↑q'の計測値とから、前記式5−10の右辺の演算を行なうことによって、接触部位代表点a1〜a4にそれぞれ作用する力(並進力)の目標値を並べたベクトルとしての接触部位代表要素目標作用力↑Fc_cmdを算出する。
【0251】
すなわち、次式7−1により、↑Fc_cmdが算出される。この接触部位代表要素目標作用力↑Fc_cmdは、接触部位代表要素の運動加速度を前記接触部位代表要素目標加速度↑Cに一致させ、且つ、ロボット1の各関節の実際の関節駆動トルクを↑τ1_cmdにより規定される目標関節駆動トルクに一致させた場合に、接触部位代表点a1〜a4でロボット1に作用すべき力(並進力)の推定値としての意味を持つものである。
【0252】

↑Fc_cmd=(Jc#)T*(↑τ1_cmd−↑N−↑G)
−Rc*↑C−Rc*Jc'*↑q' ……式7−1

なお、↑N+↑G≒↑Gとなる場合には、式7−1の↑Nを省略してもよい。
【0253】
次いで、コンプライアンス制御部86は、上記接触部位代表要素目標作用力↑Fc_cmdを、ロボット1に対する全床反力の作用点としての所定の全床反力作用点(例えば目標ZMP)に作用する力の目標値としての目標全床反力↑FMt_cmdに変換する。
【0254】
この目標全床反力↑FMt_cmdは、本実施形態では、3軸方向の並進力成分と3軸周りのモーメント成分とから成るベクトル(6自由度のベクトル)である。この場合、↑FMtcmdの並進力成分は、各接触部位代表点a1〜a4に作用する目標並進力を加え合わせたものとなる。また、↑FMt_cmdのモーメント成分は、各接触部位代表点a1〜a4に作用する目標並進力によって、上記全床反力作用点の周りに発生するモーメントを加え合わせたものとなる。
【0255】
なお、↑Fc_cmdの↑FMt_cmdへの変換は、各接触部位代表点a1〜a4と上記床反力作用点との間の位置関係に応じて決定される成分を有する変換行列を↑Fc_cmdに乗じることによって、行なわれる。
【0256】
また、コンプライアンス制御部86は、各足平部18R,18Lにそれぞれ作用する実際の床反力↑FM_act_R,↑FM_act_Lの計測値から、上記全床反力作用点に実際に作用している全床反力↑FMt_actの計測値を算出する。
【0257】
この場合、本実施形態では、↑FM_act_Rの計測値は、右側足平部18Rに対応する所定の床反力作用点に作用する3軸方向の並進力成分と3軸周りのモーメント成分とから成るベクトルである。同様に、↑FM_act_Lの計測値は、左側足平部18Lに対応する所定の床反力作用点に作用する3軸方向の並進力成分と3軸周りのモーメント成分とから成るベクトルである。
【0258】
そして、コンプライアンス制御部86は、前記全床反力作用点と右側足平部18Rの床反力作用点との位置関係に応じて決定される成分を有する変換行列によって、↑FMact_Rの計測値を全床反力作用点に作用する力(並進力成分及びモーメント成分の組)に変換したものと、前記全床反力作用点と左側足平部18Lの床反力作用点との位置関係に応じて決定される成分を有する変換行列によって、↑FMact_Lの計測値を全床反力作用点に作用する力(並進力成分及びモーメント成分の組)に変換したものとを加え合わせることによって、全床反力↑FMt_actの計測値を算出する。
【0259】
この↑FMt_actの計測値の並進力成分は、↑FMact_Rの並進力成分と↑FMact_Lの並進力成分との総和(ベクトル和)の並進力となる。また、↑FMt_actのモーメント成分は、↑FMact_Rのモーメント成分と↑FMact_Lのモーメント成分と↑FMact_Rの並進力成分が全床反力作用点の周りに発生するモーメントと↑FMact_Lの並進力成分が全床反力作用点の周りに発生するモーメントとの総和(ベクトル和)のモーメントとなる。
【0260】
コンプライアンス制御部86は、上記のように目標全床反力↑FMt_cmdと、全床反力↑FMt_actの計測値とを算出した後、これらの偏差↑ΔFMt(=↑FMt_cmd−↑FMt_act)を算出する。そして、コンプラインアス制御部86は、この偏差↑ΔFMtを“0”に収束させる操作量としての目標関節駆動トルク↑τ1_cmdの補正量↑Δτtを所定のフィードバック制御則により算出する。
【0261】
具体的には、本実施形態では、コンプライアンス制御部86は、偏差↑ΔFMtに所定値の比例ゲインGkを乗じてなるベクトルGk*↑ΔFMtを、接触部位代表点a1〜a4にそれぞれ作用する実際の力(並進力)の目標値(接触部位代表要素目標作用力↑Fc_cmd)に対する誤差分↑ΔFcに変換する。
【0262】
この変換は、前記↑Fc_cmdを↑FMt_cmdに変換する変換行列の逆行列を、Gk*↑ΔFMtに乗じることによって行なわれる。なお、本実施形態では、↑Fc_cmdを↑FMt_cmdに変換する変換行列は正則行列とはならないので、その変換行列の逆行列は、前記式5−23に基づいて決定される擬似逆行列である。
【0263】
さらにコンプライアンス制御部87は、誤差分↑ΔFcに次式7−2の如く、行列Jc#Tの逆行列(Jc#T-1を乗じることによって、合成目標関節駆動トルク↑τt_cmdの補正量↑Δτtを算出する。
【0264】

↑Δτt=(Jc#T-1*↑ΔFc ……式7−2

これにより、補正量↑Δτtは、フィードバック制御則としての比例則により、偏差↑ΔFMtを“0”に収束させるように決定されることとなる。
【0265】
そして、コンプラインアンス制御部86は、次式7−3の通り、この補正量↑Δτtを目標関節駆動トルク↑τ1_cmdに加えることによって、補正後目標関節駆動トルク↑τ1c_cmdを決定する。
【0266】

↑τ1c_cmd=↑τ1_cmd+↑Δτt ……式7−3

以上のコンプライアンス制御部86の処理によって、目標関節駆動トルク↑τ1_cmdに対応する全床反力である目標全床反力↑FMt_cmdと実際の全床反力↑FMt_actの計測値との偏差を“0”に近づけるように、目標関節駆動トルク↑τ1_cmdが補正されることとなる。
【0267】
本実施形態では、このように決定された補正後目標関節駆動トルク↑τ1c_cmd(詳しくは、↑τ1c_cmdのうちの各関節の回転角度に対応する成分)が前記関節駆動制御部73に入力される。
【0268】
以上が、目標関節駆動トルク決定部72の処理の詳細である。
【0269】
以上説明した本実施形態によれば、状態量目標値ベクトル↑S1'_cmdのうちの全並進運動量の1階微分値↑Ptotal'の目標値は、鉛直方向の位置を含めたロボット1の全体重心点の位置を歩容生成部71で生成された目標歩容の全体重心点の目標位置に収束させるように決定されている。換言すれば、ロボット1の運動によって発生する並進慣性力の目標値に相当する↑Ptotal'の目標値が、ロボット1の実際の全体重心点の位置を適切な目標位置に収束させるように決定されている。
【0270】
さらに、↑S1'_cmdのうちの全角運動量の1階微分値↑Ltotal'の目標値は、ロボット1の全体重心点の水平位置を、該全体重心点に質点を有する仮想的な倒立振子の支点としての目標ZMPの鉛直方向上方の位置に収束させるように決定されている。換言すれば、ロボット1の運動によって発生するモーメント慣性力の目標値に相当する↑Ltotal'の目標値が、ロボット1の実際の全体重心点の水平位置を、上記仮想的な倒立振子の傾倒を防止し得る位置に収束させるように決定されている。
【0271】
そして、本実施形態では、状態量目標値ベクトル↑S1'_cmdの↑Ptotal'の目標値及び↑Ltotal'の目標値を実現し得るように、前記目標関節駆動トルク↑τ1_cmdが決定される。
【0272】
ここで、本実施形態のロボット1では、各関節の関節駆動系にばね部材であるトーションバー53を備えるため、各関節が柔軟性を有する。このため、ロボット1に作用する外力の影響で、各関節の回転角度の変動が生じやすく、ひいては、全体重心点の位置の変動(特に鉛直方向の位置の変動)も生じやすい。
【0273】
しかるに、上記の如く状態量目標値ベクトル↑S1'_cmdを決定しているために、ロボット1の全体重心点の実際の位置が目標位置からずれると、それを解消するように目標関節駆動トルク↑τ1_cmdが決定される。
【0274】
そのため、ロボット1の実際の全体重心点の位置が適切な目標位置からずれるの防止することができる。その結果、ロボット1の各関節が柔軟性を有していても、ロボット1の姿勢のふらつき等が生じるのを防止し、該ロボット1の挙動の安定性を高めることができる。
【0275】
また、本実施形態では、前記式5−20に基づいて、目標関節駆動トルク↑τ1_cmdが決定される。従って、接触部位代表要素の接触部位代表点a1〜a4の運動を前記接触部位代表要素目標加速度↑Cにより規定した上で、ロボット1の制御対象状態量に関する目標値としての状態量目標値ベクトル↑S1'_cmdに基づいて、↑τ1_cmdが決定される。
【0276】
このため、ロボット1に作用する外力の値(これは外乱等の影響を受けやすい)を特定することなく、↑Cと↑S1'_cmdとを実現し得る適切な↑τ1_cmdを決定できる。この場合、↑Cと↑S1'_cmdとのトータルの自由度数は、ロボット1の全体のトータルの自由度数(前記一般化力ベクトル↑qの自由度数)よりも小さいため、関節駆動トルク↑τ1_cmdは、ロボット1の全ての関節の回転動作を特定することを必要とせずに決定できる。このため、ロボット1に作用する外力の変動等に伴うロボット1の関節の動きの柔軟性を高めることができる。
【0277】
ここで、以上説明した実施形態と本発明との対応関係について補足しておく。
【0278】
本実施形態では、前記基本パラメータ群決定部81により、本発明における基本パラメータ群決定手段が実現される。なお、下側上体10の移動速度、並びに姿勢角及びその時間的変化率(角速度)の計測値、各関節の回転角度及びその時間的変化率(角速度)の計測値が発明における一般化変数観測情報に相当する。
【0279】
また、前記接触部位ヤコビアン決定部82により、本発明における接触部位ヤコビアン算出手段が実現される。この場合、ロボット1の足平部18R,18Lが、本発明における接触部位に相当し、前記接触部位代表点a1〜a4を連接してなる要素として本発明における接触部位代表要素が設定される。なお、本実施形態では、前記並進床反力鉛直成分Fz_act_R,Fz_act_Lの計測値が、本発明における接触状態情報として使用される。
【0280】
また、前記状態量ヤコビアン決定部83により、本発明における状態量ヤコビアン算出手段が実現され、前記状態量目標値決定部84により、本発明における運動状態量目標値決定手段が実現される。この場合、本実施形態では、前記全並進運動量↑Ptotalと全角運動量↑Ltotalとの組から構成される状態量ベクトル↑Sが本発明における運動状態量に相当する。また、状態量目標値ベクトル↑S1'_cmdが本発明における運動状態量目標値に相当する。
【0281】
また、前記制御入力決定部85により、本発明における目標駆動力決定手段が実現される。この場合、前記目標関節駆動トルク↑τ1_cmdが本発明における目標一般化力ベクトルτcmdに相当し、この↑τ1_cmdのうちの各関節の回転角度に対応する成分が、本発明における目標駆動力に相当する。また、前記接触部位代表点目標加速度↑Cが本発明における接触部位運動加速度目標値に相当する。
【0282】
また、前記コンプライアンス制御部86及び関節駆動制御部73により、本発明におけるアクチュエータ制御手段が実現される。そして、コンプライアンス制御部86が実行する処理によって、本発明における接触部位外力目標値決定手段と、駆動力補正量算出手段とが実現される。より詳しくは、前記接触部位代表点目標作用力↑Fc_cmdが本発明における接触部位外力目標値に相当し、この↑Fc_cmdを前記式7−1により算出する処理によって、接触部位外力目標値決定手段が実現される。また、前記補正量↑Δτtが本発明における目標駆動力の補正量に相当し、この補正量↑Δτtを前記した如く算出する処理によって、本発明における駆動力補正量算出手段が実現される。
【0283】
[第2実施形態]
次に、本発明の第2実施形態を図6等を参照して説明する。
【0284】
本実施形態は、制御装置60の目標関節駆動トルク決定部72の処理において、接触部位代表要素の設定の仕方を第1実施形態と異ならせたものである。そして、これに付随して、目標関節駆動トルク決定部72の処理のうち、接触部位ヤコビアン決定部82、制御入力決定部85、及びコンプライアンス制御部86の一部の処理が第1実施形態と相違し、これ以外の目標関節駆動トルク決定部72の処理(基本パラメータ群決定部81、状態量ヤコビアン決定部83、状態量目標値決定部84の処理)と、歩容生成部71及び関節駆動制御部73の処理とは、第1実施形態と同じである。
【0285】
そこで、本実施形態の説明では、第1実施形態との相違点を中心に説明し、第1実施形態と同一の事項については説明を省略する。
【0286】
前記第1実施形態では、接触部位代表要素の運動が、4つの接触部位代表点a1〜a4の運動によって規定されるものとしているため、該接触部位代表要素の運動を拘束した場合、ロボット1の全体のトータルの自由度数(前記一般化力ベクトル↑qの自由度数)のうちの、3*4=12個の自由度数分の制約を受けることとなる。本実施形態は、接触部位代表要素の運動を拘束することによって制約を受ける自由度数を第1実施形態よりも少なくできるように、接触部位代表要素を設定するものである。
【0287】
本実施形態では、接触部位代表要素は、ロボット1の外界との各接触部位に外界から作用する外力の合力(全ての接触部位についての合力)が作用する要素であるとされる。そして、ロボット1の外界との各接触部位に外界から作用する外力(並進力及びモーメント)は、該接触部位と外界との接触面の位置及び姿勢のばね性変位(該接触部位又は外界の部位の弾性変形によって生じる変位)に起因する弾性力として該ロボット1の接触部位に作用する外力であると見なされる。同様に、接触部位代表要素に作用する外力の合力は、接触部位代表要素と外界との接触面(仮想的又は実体的な接触面)の位置及び姿勢のばね性変位(弾性変形)に起因する弾性力として該接触部位代表要素に作用する外力であると見なされる。
【0288】
より具体的には、本実施形態においては、ロボット1が床面上を移動する動作、例えば歩行動作におけるける接触部位代表要素は、両足平部18R,18Lに作用する床反力の合力(トータルの床反力)が作用する要素とされる。
【0289】
従って、本実施形態では、ロボット1の歩行動作中において、右側の足平部18Rの接地面(床との接触面)内のある作用点に作用する床反力ベクトル(並進力及びモーメントを成分とするベクトル)を↑FM_R=[↑F_R,↑M_R]T、左側の足平部18Lの接地面(床との接触面)内のある作用点に作用する床反力ベクトル(並進力及びモーメントを成分とするベクトル)を↑FM_L=[↑F_L,↑M_L]T、接触部位代表要素に作用する合力ベクトル(床反力ベクトル[↑F_R,↑M_R]T,[↑F_L,↑M_L]Tの合力ベクトル)を↑FMt=[↑Ft,↑Mt]Tとおくと、[↑Ft,↑Mt]Tと、[↑F_R,↑M_R]T及び[↑F_L,↑M_L]Tとの間の関係が次式8−1により表されるものとされる。
【0290】
【数1】

【0291】
ここで、式8−1における↑Ftは、接触部位代表要素に作用する合力ベクトル↑FMt(以降、全床反力ベクトル↑FMtという)のうちの3軸方向の並進力成分からなる並進力ベクトル、↑Mtは、該全床反力ベクトル↑FMtのうちの3軸周りのモーメント成分からなるモーメントベクトル、↑F_Rは、右側足平部18Rに作用する床反力ベクトル↑FM_Rのうちの3軸方向の並進力成分からなる並進力ベクトル、↑M_Rは、該床反力ベクトル↑FM_Rのうちの3軸周りのモーメント成分からなるモーメントベクトル、↑F_Lは、左側足平部18Lに作用する床反力ベクトル↑FM_Lのうちの3軸方向の並進力成分からなる並進力ベクトル、↑M_Lは、該床反力ベクトル↑FM_Lのうちの3軸周りのモーメント成分からなるモーメントベクトルである。
【0292】
また、式8−1における行列A_R,A_Lの成分I、0はそれぞれ3次の単位行列、3次の零行列であり、行列A_Rの成分V_RはV_R*↑F_Rが、接地部位代表要素の接地位置から見た右側足平部18Rの接地位置の位置ベクトル(以降、これを↑Vp_Rと表記する)と、↑F_Rとのベクトル積(=↑Vp_R×↑F_R)に一致するように設定された3次の行列、行列A_Lの成分V_Lは、V_L*↑F_Rが、接地部位代表要素の位置から見た左側足平部18Lの接地位置の位置ベクトル(以降、これを↑Vp_Lと表記する)と、↑F_Lとのベクトル積(=↑Vp_L×↑F_L)に一致するように設定された3次の行列である。
【0293】
なお、接地部位代表要素の接地位置は、詳しくは、接地部位代表要素に対する前記全床反力ベクトル↑FMtの作用点の位置、右側足平部18Rの接地位置は、詳しくは、右側足平部18Rに対する床反力ベクトル↑FM_Rの作用点の位置、左側足平部18Lの接地位置は、詳しくは、左側足平部18Lに対する床反力ベクトル↑FM_Lの作用点の位置である。
【0294】
さらに、本実施形態では、ロボット1の外界との接触部位として床面に接地する各足平部18に作用する外力としての床反力ベクトル↑FM_R,↑FM_Lは、各足平部18と床との接触面の位置及び姿勢のばね性変位(該足平部18又は床の弾性変形によって生じる変位)に起因する弾性力として該足平部18に作用するものとみなされる。
【0295】
同様に、本実施形態における接触部位代表要素に作用する外力としての全床反力ベクトル↑FMtは、接触部位代表要素と床との接触面(実体的又は仮想的な接触面)の位置及び姿勢のばね性変位(接触部位代表要素又は床の弾性変形によって生じる変位)に起因する弾性力として該接触部位代表要素に作用する外力であると見なされる。
【0296】
従って、右側の足平部18Rの接地時における接地面(床との接触面)の位置及び姿勢のばね性変位量(該接地面の基準位置からの並進変位量及び該接地面の基準姿勢からの角度変位量)を成分とするベクトルを↑X_R≡[↑Xorg_R,↑Xrot_R]T、左側の足平部18Lの接地時における接地面(床との接触面)の位置及び姿勢のばね性変位量(該接地面の基準位置からの並進変位量及び該接地面の基準姿勢からの角度変位量)を成分とするベクトルを↑X_L≡[↑Xorg_L,↑Xrot_L]T、接触部位代表要素の接地面(床との接触面)の位置及び姿勢のばね性変位量(該接地面の基準位置からの並進変位量及び該接地面の基準姿勢からの角度変位量)を成分とするベクトルを↑Xcc≡[↑Xcc_org,↑Xcc_rot]Tとおくと、↑FM_Rと↑X_Rとの間の関係、↑FM_Lと↑X_Lとの間の関係、及び↑FMt_と↑Xccとの間の関係がそれぞれ、次式8−2、8−3、8−4により表されるものとされる。
【0297】
【数2】

【0298】
ここで、式8−2における↑Xorg_Rは、ばね性変位量↑X_Rのうちの3軸方向の並進変位量ベクトル、↑X_rot_Rは、ばね性変位量↑X_Rのうちの3軸周りの角度変位量ベクトル、kf_Rは、↑F_Rの各成分と↑Xorg_Rの各成分との間の関係を↑F_R=kf_R*↑Xorg_Rという関係で表現するばね定数(並進変位に関するばね定数)を示す3次の対角行列、km_Rは、↑M_Rの各成分と↑Xrot_Rの各成分との間の関係を↑M_R=km_R*↑Xrot_Rという関係で表現するばね定数(回転角度変位に関するばね定数)を示す3次の対角行列である。
【0299】
また、式8−3における↑Xorg_Lは、ばね性変位量↑X_Lのうちの3軸方向の並進変位量ベクトル、↑X_rot_Lは、ばね性変位量↑X_Lのうちの3軸周りの角度変位量ベクトル、kf_Lは、↑F_Lの各成分と↑Xorg_Lの各成分との間の関係を↑F_L=kf_L*↑Xorg_Lという関係で表現するばね定数(並進変位に関するばね定数)を示す3次の対角行列、km_Lは、↑M_Lの各成分と↑Xrot_Lの各成分との間の関係を↑M_L=km_L*↑Xrot_Lという関係で表現するばね定数(回転角度変位に関するばね定数)を示す3次の対角行列である。
【0300】
また、式8−4における↑Xcc_orgは、ばね性変位量↑Xccのうちの3軸方向の並進変位量ベクトル、↑Xcc_rotは、ばね性変位量↑Xccのうちの3軸周りの角度変位量ベクトル、kfccは、↑Ftの各成分と↑Xcc_orgの各成分との間の関係を↑Ft=kfcc*↑Xcc_orgという関係で表現するばね定数(並進変位に関するばね定数)を示す3次の対角行列、kmccは、↑Mtの各成分と↑Xcc_rotの各成分との間の関係を↑Mt=kmcc*↑Xcc_rotという関係で表現するばね定数(回転角度変位に関するばね定数)を示す3次の対角行列である。
【0301】
また、本実施形態では、接触部位代表要素の接地位置(↑FMtの作用点)は、右側足平部18Rのみが接地する片脚接地状態では、右側足平部18Rの接地位置(↑FM_Rの作用点)に一致し、左側足平部18Lのみが接地する片脚接地状態では、左側足平部18Lの接地位置(↑FM_Lの作用点)に一致し、両足平部18R,18Lが接地する両脚接地状態では、両足平部18R,18Lの接地位置を結ぶ線分の内分点の位置であるとされる。
【0302】
より詳しくは、図6を参照して、接触部位代表要素に作用する全床反力ベクトル↑FMtの作用点から見た、右側足平部18Rに作用する床反力ベクトル↑FM_Rの作用点の位置ベクトル↑Vp_Rと、↑FMccの作用点から見た、左側足平部18Lに作用する床反力ベクトル↑FM_Lの作用点の位置ベクトル↑Vp_Lとの間の関係が、第1実施形態で説明した前記接触部位代表規定比率ratに応じて、次式8−5により与えられるものとする。
【0303】

rat*↑Vp_R=−(1−rat)*↑Vp_L ……式8−5

換言すれば、接触部位代表要素の接地位置(↑FMccの作用点)は、両脚接地状態での両足平部18R,18Lの接地位置を結ぶ線分上で、|↑Vp_R|:|↑Vp_L|=(1−rat):ratとなるような位置であるとされる(図6を参照)。
【0304】
なお、本実施形態では、接触部位代表要素の接地位置(↑FMtの作用点)、右側足平部18Rの接地位置(↑FM_Rの作用点)、左側足平部18Lの接地位置(↑FM_Lの作用点)は、それぞれ、例えば、その作用点での床反力のモーメント(すなわち↑Mt、↑M_R、↑M_L)の水平成分(水平軸周り成分)が“0”となる点(すなわちZMP)の位置に設定される。このように各作用点を設定すると、式8−5の関係が成立する。
【0305】
さらに、本実施形態では、接触部位代表要素に関するばね性変位量↑Xcc(以降、接触部位代表要素ばね性変位量↑Xccという)は、右側足平部18Rのみが接地する片脚接地状態では、右側足平部18Rに関するばね性変位量↑X_Rに一致し、左側足平部18Lのみが接地する片脚接地状態では、左側足平部18Lに関するばね性変位量↑X_Lに一致し、両足平部18R,18Lが接地する両脚接地状態では、両足平部18R,18Lのそれぞれに関するばね性変位量↑X_R,↑X_Lの重み付き平均の変位量になるものとする。
【0306】
より詳しくは、接触部位代表要素ばね性変位量↑Xccと、各足平部18R,18Lに関するばね性変位量↑X_R,↑X_Lとの間の関係は、接触部位代表要素の接地位置(↑FMtの作用点)と、各足平部18R,18Lの接地位置(↑FM_R,↑FM_Lの作用点)との間の関係と同様に、rat、(1−rat)を重み係数として、次式8−6により表されるものとする。
【0307】

↑Xcc=rat*↑X_R+(1−rat)*↑X_L ……式8−6

そして、本実施形態では、接触部位ヤコビアン決定部82の処理では、前記接触部位代表要素ばね性変位量↑Xccを接触部位代表要素の位置及び姿勢に相当するものであるとし、この接触部位代表要素の運動速度、すなわち、↑Xccの時間的変化率(1階微分値)↑Xcc'(=↑Xcc/dt)と、一般化変数ベクトル↑qの1階微分値↑q’との間の関係を次式8−7により表現する行列Jcを、本実施形態における接触部位ヤコビアンとする。
【0308】

↑Xcc’=Jc*↑q' ……式8−7

なお、接触部位代表要素ばね性変位量↑Xccは、3軸方向の並進変位量と3軸周りの角度変位量とを成分とするベクトルであるので、6個の成分からベクトルである。また、本実施形態の説明では、便宜上、接触部位ヤコビアンの参照符号として、第1実施形態と同じ参照符号Jcを用いるが、以降の本実施形態の説明では、特にことわらない限り、接触部位ヤコビアンJcは、↑Xcc'と、↑q’との間の関係を式8−7により表現するヤコビアンを意味する。
【0309】
以上を前提として、本実施形態における接触部位ヤコビアンJcの算出の仕方を以下に説明する。
【0310】
まず、前記式8−1に、式8−2、8−3、8−4を適用すると、次式8−8が得られる。
【0311】
【数3】

【0312】
そして、この式8−8の第1行の式は、次式8−9により表される。
【0313】

kfcc*↑Xcc_org=kf_R*↑Xorg_R+kf_L*↑Xorg_L ……式8−9

一方、前記式8−6から次式8−10が得られる。
【0314】

↑Xcc_org=rat*↑Xorg_R+(1−rat)*↑Xorg_L ……式8−10

そして、上記式8−9,8−10を対比することによって、次式8−11a,8−11bが得られる。
【0315】

kf_R=wcc*kfcc ……式8−11a
kf_L=(1−wcc)*kfcc ……式8−11b

また、前記式8−8の第2行の式は、次式8−12により表される。
【0316】

kmcc*↑Xcc_rot=↑Vp_R×(kf_R*↑Xorg_R)+km_R*↑Xrot_R
+↑Vp_L×(kf_L*↑Xorg_L)+km_L*↑Xrot_L ……式8−12
但し、
↑Vp_R×(kf_R*↑Xorg_R)=V_R*(kf_R*↑Xorg_R)
↑VP_L×(kf_L*↑Xorg_L)=V_L*(kf_L*↑Xorg_L)

ここで、図6を参照して、右側足平部18Rの接地位置(↑FM_Rの作用点)から見た左側足平部18Lの接地位置(↑FM_Lの作用点)の位置ベクトルを↑V_RL(=↑Vp_L−↑Vp_R)とおくと、前記式8−5から次式8−13a,8−13bが得られる。
【0317】

↑Vp_R=−(1−rat)*↑V_RL ……式8−13a
↑Vp_L=rat*↑V_RL ……式8−13b

そして、上記式8−13a、8−13bと、前記式8−11a、8−11bとを前記式8−12に適用して整理すると、次式8−14が得られる。
【0318】

kmcc*↑Xcc_rot=−wcc*(1−wcc)*↑V_RL×↑Xorg_R+km_R*↑Xrot_R
+wcc*(1−wcc)*↑V_RL×↑Xorg_L+km_L*↑Xrot_L
=wcc*(1−wcc)*↑V_RL×(↑Xorg_L−↑Xorg_R)
+km_R*↑Xrot_R+km_L*↑Xrot_L
……式8−14

この場合、↑V_RLと、(↑Xorg_L−↑Xorg_R)とは、互いに平行なベクトルと考えてよいので、式8−14の右辺の第1項の値は、“0”となる。従って、式8−14は、次式8−15に書き換えられる。
【0319】

kmcc*↑Xcc_rot=km_R*↑Xrot_R+km_L*↑Xrot_L ……式8−15

また、前記式8−6から次式8−16が得られる。
【0320】

↑Xcc_rot=rat*↑Xrot_R+(1−rat)*↑Xrot_L ……式8−16

そして、上記式8−15,8−16を対比することによって、次式8−17a,8−17bが得られる。
【0321】

km_R=rat*kmcc ……式8−17a
km_L=(1−rat)*kmcc ……式8−17b

さらに、前記式8−11a,8−11bと、上記式8−17a,8−17bとを前記式8−8に適用して整理すると、次式8−18が得られる。
【0322】

↑Xcc=rat*A_R*↑X_R+(1−rat)*A_L*↑X_L ……式8−18

そして、この式8−18の両辺の微分すると、次式8−19が得られる。
【0323】

↑Xcc'=rat*A_R*↑X_R'+(1−rat)*A_L*↑X_L' ……式8−19
但し、↑Xcc'=d↑Xcc/dt、↑X_R'=d↑X_R/dt、↑X_L'=d↑X_L/dt

なお、ここでは、rat*A_R、(1−rat)*A_Lの時間的変化率は、十分に微小なものとなり、rat*A_R、(1−rat)*A_Lは、ほぼ一定に維持されるとしている。
【0324】
この場合、↑X_R'は、右側足平部18Rの接地位置(↑FM_Rの作用点)の時間的変化率に一致し、また、↑X_L'は、左側足平部18Lの接地位置(↑FM_Lの作用点)の時間的変化率に一致すると考えられる。
【0325】
そこで、右側足平部18Rの接地位置(↑FM_Rの作用点)の時間的変化率と一般化変数ベクトル↑qの一階微分値↑q'との間の関係を表すヤコビアンをJcc_R、左側足平部18Lの接地位置(↑FM_Lの作用点)の時間的変化率と一般化変数ベクトル↑qの一階微分値↑q'との間の関係を表すヤコビアンをJcc_Lとおくと、前記式8−7と式8−19とから次式8−20が得られる。
【0326】

Jc=rat*A_R*Jcc_R+(1−rat)*A_L*Jcc_L ……式8−20

そこで、本実施形態では、接触部位ヤコビアン決定部82は、式8−20の右辺のヤコビアンJcc_R、Jcc_Lと、行列A_R,A_Lとを算出し、これらのヤコビアンJcc_R、Jcc_L及び行列A_R,A_Lの算出値と、第1実施形態で説明した如く算出した接触部位代表要素規定比率ratとから式8−20の右辺の演算を行なうことで、接触部位ヤコビアンJcを算出する。
【0327】
以下に、本実施形態における接触部位ヤコビアン決定部82の処理をより具体的に説明する。
【0328】
前記式8−20の右辺の演算に用いる接触部位代表要素規定比率rat、上記ヤコビアンJcc_R、Jcc_L、及び行列A_R,A_Lを算出するために、接触部位ヤコビアン決定部82には、前記力センサ63R,63Lの検出出力(各足平部18R,18Lに作用する床反力の計測値)が入力されると共に、下側上体10の移動速度、並びに姿勢角及びその時間的変化率(角速度)の計測値と、各脚リンク3R,3Lの各関節の回転角度及びその時間的変化率(角速度)の計測値とが入力される。
【0329】
そして、接触部位ヤコビアン決定部82は、並進床反力鉛直成分Fz_act_R,Fz_act_Lの計測値から、第1実施形態と同様に、前記式2−2a又は2−2bの演算によって、接触部位代表要素規定比率ratを算出する。なお、第1実施形態で説明した如く、並進床反力鉛直成分Fz_act_R,Fz_act_Lの目標値を使用してratを算出するようにしてもよい。
【0330】
また、接触部位ヤコビアン決定部82は、各足平部18R,18Lに作用する床反力の計測値を基に、各足平部18R,18Lに対する床反力ベクトル↑FM_R,↑FM_Lの作用点(本実施形態ではZMP)の位置と、それらの床反力ベクトルの合力ベクトルである全床反力ベクトル↑FMtの作用点(本実施形態ではZMP)の位置とを算出する。そして、これらの作用点の位置の算出値を基に、前記式8−1のただし書きで定義される行列A_R,A_Lを算出する。
【0331】
なお、前記歩容生成部71が生成・出力する前記目標歩容(あるいは制御装置60に外部から与えられる目標歩容)が、足平部18R,18Lのそれぞれの床反力ベクトル↑FM_R,↑FM_Lの目標値を含んでいる場合には、その目標値を↑FM_R,↑FM_Lの計測値の代わりに用いて、行列A_R,A_Lを算出するようにしてもよい。あるいは、前記目標歩容が、床反力ベクトル↑FM_R,↑FM_Lのそれぞれに係わるZMPの目標位置と、全床反力ベクトル↑FMtに係わるZMPの目標位置とを含んでいる場合には、それらの目標位置を用いて行列A_R,A_Lを算出するようにしてもよい。
【0332】
また、接触部位ヤコビアン決定部82は、下側上体10の移動速度、並びに姿勢角及びその時間的変化率(角速度)の計測値と、各脚リンク3R,3Lの各関節の回転角度及びその時間的変化率(角速度)の計測値と、上記の如く算出した床反力ベクトル↑FM_R,↑FM_Lの作用点(本実施形態ではZMP)の位置(又はその目標位置)とに基づき、ヤコビアンJcc_R,Jcc_Lを算出する。
【0333】
そして、接触部位ヤコビアン決定部82は、上記の如く算出した接触部位代表要素規定比率rat、上記ヤコビアンJcc_R、Jcc_L、及び行列A_R,A_Lを用いて、前記式8−20の右辺の演算を行なうことによって、接触部位ヤコビアンJcを算出する。これにより、↑Xcc'と↑q’との間の関係を前記式8−7により表すヤコビアンとしての接触部位ヤコビアンJcが算出されることとなる。
【0334】
以上が本実施形態における接触部位ヤコビアン決定部82の処理の詳細である。
【0335】
次に、本実施形態における制御入力決定部85の処理を説明する。
【0336】
本実施形態における制御入力決定部85には、第1実施形態と同様に、基本パラメータ群決定部81で決定されたイナーシャ行列M、遠心力・コリオリ力依存一般化力ベクトル↑N及び重力依存一般化力ベクトル↑G(又は非線形項一般化力ベクトル(↑N+↑G))と、接触部位ヤコビアン決定部82で決定された接触部位ヤコビアンJcと、状態量ヤコビアン決定部83で決定された状態量ヤコビアンJs1と、状態量目標値決定部84で決定された状態量目標値ベクトル↑S1'_cmdとが逐次入力される。さらに、制御入力決定部85には、一般化変数ベクトル↑qの時間的変化率(1階微分値)↑q'の計測値(下側上体10の移動速度、並びに姿勢角の時間的変化率(角速度)の計測値、各関節の回転角度の時間的変化率(角速度)の計測値)も逐次入力されると共に、接触部位代表要素目標加速度↑C(接触部位代表要素の運動加速度の目標値↑C)も入力される。
【0337】
そして、制御入力決定部85は、これらの入力値を基に、前記式5−22の右辺の演算によって、目標関節駆動トルク↑τ1_cmdを算出することは第1実施形態と同様である。
【0338】
但し、本実施形態では、前記式5−8,5−9,5−12,5−13,5−14によりそれぞれ定義される行列Jc#,Rc,Tc、ベクトル↑Cc、行列Pcを算出するために必要となる接触部位ヤコビアンJcは、前記式8−20により接触部位ヤコビアン決定部82で算出したヤコビアンである。
【0339】
また、本実施形態では、接触部位代表要素の運動加速度は、前記接触部位代表要素ばね性変位量↑Xccの2階微分値↑Xcc''(=d2↑Xcc/dt2)である。このため、式5−13により定義されるベクトル↑Ccを算出するために必要となる接触部位代表要素目標加速度↑Cは、↑Xcc''の目標値である。この場合、本実形態では、↑Xcc''の目標値↑Cは、第1実施形態のものと同様に、その各成分値が“0”となる“0”ベクトル(但し、本実施形態では6成分の“0”ベクトル)にあらかじめ設定されている。従って、本実施形態では、接触部位代表要素ばね性変位量↑Xccが一定に維持されることを、接触部位としての足平部18R,18Lの運動に関する目標とされている。
【0340】
本実施形態における制御入力決定部85の処理は、前記式5−22の右辺の演算を行なうために用いる接触部位ヤコビアンJc及び目標値↑Cが、第1実施形態のものと相違するものであること以外は、第1実施形態と同じである。
【0341】
次に、本実施形態におけるコンプライアンス制御部86の処理を説明する。
【0342】
本実施形態におけるコンプライアンス制御部86には、第1実施形態と同様に、基本パラメータ群決定部81で決定された遠心力・コリオリ力依存一般化力ベクトル↑N及び重力依存一般化力ベクトル↑G(又は非線形項一般化力ベクトル(↑N+↑G))と、制御入力決定部85で決定された目標関節駆動トルク↑τ1_cmdと、前記接触部位ヤコビアン決定部82で決定された接触部位代表要素規定比率ratとが逐次入力される。さらに、コンプライアンス制御部86には、制御入力決定部85で算出された行列Rc、Jc'、Jc#、接触部位代表要素目標加速度↑C(本実施形態では、“0”ベクトル)、各足平部18R,18Lにそれぞれ作用する実際の床反力↑FM_act_R,↑FM_act_Lの計測値、代表リンク10の移動速度の計測値、ロボット1の代表リンク(下側上体)10の姿勢角の計測値及びその時間的変化率(角速度)の計測値、並びに、各関節の回転角度の計測値及びその時間的変化率(角速度)の計測値も逐次入力される。
【0343】
そして、コンプライアンス制御部86は、第1実施形態と同様に、前記式7−1の演算によって、接触部位代表要素目標作用力↑Fc_cmdを算出する。この場合、本実施形態における接触部位代表要素目標作用力↑Fc_cmdは、接触部位代表要素の運動加速度↑Xcc'を↑Cに一致させ、且つ、ロボット1の各関節の実際の関節駆動トルクを↑τ1_cmdにより規定される目標関節駆動トルクに一致させた場合に、接触部位代表要素に作用すべき外力の推定値、すなわち前記全床反力ベクトル↑FMtの推定値としての意味を持つものである。
【0344】
そこで、本実施形態では、コンプライアンス制御部86は、前記式7−1の演算によって算出される接触部位代表要素目標作用力↑Fc_cmdを、そのまま、全床反力の目標値としての目標全床反力↑FMt_cmdとして設定する。
【0345】
さらに、コンプラインアンス制御部86は、第1実施形態と同様に、各足平部18R,18Lにそれぞれ作用する実際の床反力↑FM_act_R,↑FM_act_Lの計測値から、実際の全床反力↑FMt_actの計測値を算出する。
【0346】
そして、コンプライアンス制御部86は、算出した目標全床反力↑FMt_cmdと全床反力↑FMt_actの計測値との偏差↑ΔFMt(=↑FMt_cmd−↑FMt_act)を算出し、この偏差↑ΔFMtを“0”に収束させる操作量としての目標関節駆動トルク↑τ1_cmdの補正量↑Δτtを、前記式7−2と同様の形態の次式7−4により算出する。
【0347】

↑Δτt=(Jc#T-1*↑ΔFMt ……式7−4

この場合、本実施形態では、接触部位代表要素に直接的に全床反力↑FMtが作用するものとしているので、前記式7−2の右辺の↑ΔFcを、↑ΔFMtに置き換えた式7−4によって補正量↑Δτtが算出される。なお、式7−4のJc#は、本実施形態における接触部位ヤコビアンJcを用いて前記式5−8の定義式に従って算出されたものである。
【0348】
これにより、フィードバック制御則としての比例則により、偏差↑ΔFMtを“0”に収束させるように、↑Δτtが決定されることとなる。
【0349】
そして、コンプライアンス制御部86は、第1実施形態と同様に、前記式7−3の演算によって、補正後目標関節駆動トルク↑τ1c_cmdを決定する。
【0350】
これにより、目標関節駆動トルク↑τ1_cmdに対応する全床反力である目標全床反力↑FMt_cmdと実際の全床反力↑FMt_actの計測値との偏差を“0”に近づけるように、目標関節駆動トルク↑τ1_cmdが補正されることとなる。
【0351】
以上が本実施形態におけるコンプライアンス制御部86の処理である。
【0352】
本実施形態は、以上説明した事項以外は、前記第1実施形態と同じである。かかる本実施形態によれば、状態量目標値ベクトル↑S1'_cmdの決定の仕方は、第1実施形態と同じであるので、第1実施形態と同様に、ロボット1の実際の全体重心点の位置が適切な目標位置からずれるの防止することができる。ひいては、ロボット1の各関節が柔軟性を有していても、ロボット1の姿勢のふらつき等が生じるのを防止し、該ロボット1の挙動の安定性を高めることができる。
【0353】
また、本実施形態では、接触部位代表要素の運動加速度↑Xcc''を接触部位代表要素目標加速度↑C(本実施形態では“0”ベクトル)により規定した上で、ロボット1の制御対象状態量に関する目標値としての状態量目標値ベクトル↑S1'_cmdに基づいて、前記式5−20により↑τ1_cmdが決定される。
【0354】
このため、第1実施形態と同様に、ロボット1に作用する外力の値を特定することなく、↑Cと↑S1'_cmdとを実現し得る適切な↑τ1_cmdを決定できる。この場合、本実施形態においても、↑Cと↑S1'_cmdとのトータルの自由度数は、ロボット1の全体のトータルの自由度数(前記一般化力ベクトル↑qの自由度数)よりも小さいため、第1実施形態と同様に、ロボット1に作用する外力の変動等に伴うロボット1の関節の動きの柔軟性を高めることができる。
【0355】
加えて、本実施形態では、接触部位代表要素の運動加速度↑Xcc''及び接触部位代表要素目標加速度↑Cの自由度数が、前記第1実施形態の場合よりもより少ない自由度数(本実施形態では6)となる。このため、各足平部18R,18Lの接地(床との接触)に伴うロボット1の関節の自由度の制約を、第1実施形態のものよりも少なくできる。その結果、ロボット1の関節の動きの柔軟性をより一層高めることができる。
【0356】
ここで、本実施形態と本発明との対応関係について補足しておく。
【0357】
本実施形態では、接触部位代表要素ばね性変位量↑Xccが、本発明における接触部位代表要素の位置及び姿勢のばね性変位量Xccに相当する。
【0358】
また、右側の脚リンク3Rが本発明における第1の脚リンクに相当すると共に、右側の足平部18Rが該第1の脚リンクの先端部に相当する。そして、右側足平部18Rに関するばね性変位量↑X_Rが本発明における第1の脚リンクの先端部の位置及び姿勢のばね性変位量X1に相当する。
【0359】
また、左側の脚リンク3Lが本発明における第2の脚リンクに相当すると共に、左側の足平部18Lが該第2の脚リンクの先端部に相当する。そして、左側足平部18Lに関するばね性変位量↑X_Lが本発明における第2の脚リンクの先端部の位置及び姿勢のばね性変位量X2に相当する。
【0360】
また、前記式8−18が、本発明における前記式02に相当する。この場合、式8−18の右辺の行列A_R、A_Lがそれぞれ、本発明における行列A1,A2に相当する。
【0361】
また、前記式8−20が、本発明における前記式03に相当する。この場合、式8−20の右辺のヤコビアンJcc_R,Jcc_Lがそれぞれ、本発明におけるヤコビアンJ1,J2に相当する。
【0362】
以上説明した事項以外は、本実施形態と本発明との対応関係は、前記第1実施形態と本発明との対応関係と同じである。
【0363】
次に、以上説明した実施形態の変形態様をいくつか説明しておく。
【0364】
前記各実施形態では、ロボット1を、脚式移動ロボットである2足歩行ロボットとしたが、本発明におけるロボットは、脚式移動ロボット以外の移動ロボット(例えば、車輪により移動する形態のロボット)でもよい。
【0365】
また、ロボット1の歩行動作を行う場合に限らず、走行動作を行なったり、あるいは、ハンド30R,30Lによる作業と移動動作と並行して行なうような場合にも本発明を適用できる。
【0366】
また、運動状態量としての状態量ベクトル↑Sは、全並進運動量↑Pのうちの鉛直方向成分だけであってもよい。あるいは、↑Pの鉛直方向成分と、全角運動量↑Lとの組を制御対象の運動状態量として用いてもよい。
【0367】
また、前記第1実施形態では、接触部位代表点目標加速度↑Cを“0”としたが、接触部位代表点a1〜a4の他の運動形態の目標を↑Cとして設定するようにしてもよい。例えば、接触部位代表点a1〜a4の運動パターンを正弦波状のパターンに設定してもよい。また、例えば、ロボット1がエレベータ等、加速度が発生する系に存在するような場合には、その系の加速度(慣性座標系から見た加速度)を接触部位代表点目標加速度↑Cに付加するようにしてもよい。
【0368】
同様に、前記第2実施形態における接触部位代表点目標加速度↑Cとして、“0”ベクトル以外の目標値を設定するようにしてもよい。
【0369】
また、前記コンプライアンス制御部86を省略してもよい。すなわち、制御入力決定部85が決定した目標関節駆動トルク↑τ1_cmdをそのまま使用して、ロボット1の各関節の駆動トルクを制御するようにしてもよい。
【符号の説明】
【0370】
1…ロボット、2…上体リンク、3…脚リンク、4…腕リンク、5…頭部(リンク)、10…下側上体(リンク)、11…上側上体(リンク)、12,19〜24,31〜37,39,40…関節、14…大腿部(リンク)、16…下腿部(リンク)、18…足平部(リンク)、26…上腕部(リンク)、28…前腕部(リンク)、30…ハンド(リンク)、60…制御装置、73…関節駆動制御部(アクチュエータ制御手段)、81…基本パラメータ群決定部(基本パラメータ群算出手段)、82…接触部位ヤコビアン決定部(接触部位ヤコビアン算出手段)、83…状態量ヤコビアン決定部(状態量ヤコビアン算出手段)84…状態量目標値決定部(運動状態量目標値決定手段)、85…制御入力決定部(目標駆動力決定手段)、86…コンプライアンス制御手段(アクチュエータ制御手段、接触部位外力目標値決定手段、駆動力補正量算出手段)。

【特許請求の範囲】
【請求項1】
関節を介して相互に連結された複数のリンクと、各関節を駆動するアクチュエータとを備えると共に、各関節とアクチューエータとの間の動力伝達系に、該アクチュエータが発生する動力を弾性力に変換して該関節に付与するばね部材を備える移動ロボットの制御装置であって、
前記移動ロボットの各関節の変位量と該移動ロボットの所定の代表リンクのグローバル座標系での位置及び姿勢とを成分として構成されるベクトルである該移動ロボットの一般化変数ベクトルの値に依存する値を有する該移動ロボットの所定種類の運動状態量に関する目標値である運動状態量目標値を決定する運動状態量目標値決定手段と、
前記決定された運動状態量目標値が入力され、少なくとも該運動状態量目標値を用いて逆動力学演算の処理を実行することによって前記移動ロボットの各関節に付与すべき目標駆動力を決定する目標駆動力決定手段と、
少なくとも前記決定された目標駆動力に応じて、前記アクチュエータの動作を制御するアクチュエータ制御手段とを備え、
前記運動状態量目標値は、前記移動ロボットの全体の並進運動量の1階微分値の鉛直方向成分の目標値を少なくとも含んでおり、前記運動状態量目標値決定手段は、前記移動ロボットの全体重心点の鉛直方向の位置の観測値をフィードバック制御則により所定の目標値に収束させるように前記並進運動量の1階微分値の鉛直方向成分の目標値を決定する手段を有することを特徴とする移動ロボットの制御装置。
【請求項2】
請求項1記載の移動ロボットの制御装置において、
前記運動状態量目標値は、前記移動ロボットの全体の並進運動量の1階微分値の水平方向成分の目標値をさらに含んでおり、前記運動状態量目標値決定手段は、前記移動ロボットの全体重心点の水平方向の位置の観測値をフィードバック制御則により所定の目標値に収束させるように前記並進運動量の1階微分値の水平方向成分の目標値を決定する手段をさらに有することを特徴とする移動ロボットの制御装置。
【請求項3】
請求項1又は2記載の移動ロボットの制御装置において、
前記運動状態量目標値は、前記移動ロボットの全体の所定の基準点周りの角運動量の1階微分値の目標値をさらに含んでおり、前記運動状態量目標値決定手段は、前記移動ロボットの全体重心点の水平方向の位置の観測値をフィードバック制御則により所定の目標値に収束させるように前記角運動量の1階微分値の目標値を決定する手段をさらに有することを特徴とする移動ロボットの制御装置。
【請求項4】
請求項1〜3のいずれか1項に記載の移動ロボットの制御装置において、
前記一般化変数ベクトルの2階微分値を一般化力ベクトルに変換するためのイナーシャ行列と、前記移動ロボットの各リンクに作用する重力により発生する一般化力ベクトルの値である重力依存一般化力ベクトル値とから成る基本パラメータ群、又は、前記イナーシャ行列と前記重力依存一般化力ベクトルと前記移動ロボットの各リンクに作用する遠心力及びコリオリ力による発生する一般化力ベクトルの値である遠心力・コリオリ力依存一般化力ベクトル値とから成る基本パラメータ群を、少なくとも前記移動ロボットの各関節の実際の変位量の観測値を含む一般化変数観測情報に基づいて算出する基本パラメータ群算出手段と、
前記移動ロボットの移動時に外界と接触する1つ以上の接触部位の接触状態を示す接触状態情報と前記一般化変数観測情報とが入力され、前記外界に接触している前記1つ以上の接触部位の運動を代表する要素として設定した所定の接触部位代表要素の運動速度と前記一般化変数ベクトルの1階微分値との間の関係を表現するヤコビアンである接触部位ヤコビアンを、少なくとも入力された接触状態情報と一般化変数観測情報とを基に算出する接触部位ヤコビアン算出手段と、
前記一般化変数観測情報が入力され、前記運動状態量と前記一般化変数ベクトルの1階微分値との間の関係を表現するヤコビアンである状態量ヤコビアンを、少なくとも入力された一般化変数観測情報に基づいて算出する状態量ヤコビアン算出手段とをさらに備え、
前記目標駆動力決定手段は、前記算出された基本パラメータ群、接触部位ヤコビアン及び状態量ヤコビアンと、前記接触部位代表要素の運動加速度の目標値である接触部位代表要素運動加速度目標値と、前記一般化変数観測情報と、前記決定された運動状態量目標値とが入力されると共に、当該入力データを用いて、次式01の関係を満足する一般化力ベクトルの目標である目標一般化力ベクトルτcmdのうち各関節の変位量に対応する成分値を算出し、その算出した成分値を該関節に付与する目標駆動力として決定することを特徴とする移動ロボットの制御装置。

S'+(Js*M-1*Tc−Js')*q'
=(Js*M-1*Pc)*(τcmd−τcmpn) ……式01
但し、
q:一般化変数ベクトル
q':qの1階微分値(=dq/dt)の観測値
S:状態量
S':Sの1階微分値(=dS/dt)の目標値
M:イナーシャ行列
τcmpn:τcmpn≡(N+G)−Pc-1*Cc、又はτcmpn≡G−Pc-1*Ccにより定義されるベクトル
G:重力依存一般化力ベクトル値
N:遠心力・コリオリ力依存一般化力ベクトル値
Pc:Pc≡I−JcT*(Jc#)Tにより定義される行列
I:単位行列
Jc:接触部位ヤコビアン
Jc#:Jc#≡(M-1)T*JcT*RcTにより定義される行列
Rc:Rc≡((Jc*M-1*JcT)-1)Tにより定義される行列
Cc:Cc≡−JcT*Rc*Cにより定義されるベクトル
C:接触部位代表要素運動加速度目標値(スカラー又はベクトル)
Tc:Tc≡−JcT*Rc*Jc'により定義される行列
Jc':Jcを1階微分してなる行列(=dJc/dt)
Js:状態量ヤコビアン
Js':Jsを1階微分してなる行列(=dJs/dt)
【請求項5】
請求項4記載の移動ロボットの制御装置において、
前記移動ロボットは、2つの脚リンクの先端部を床面に交互に接地させる運動により該床面上を移動する2脚移動ロボットであり、
前記接触部位代表要素は、その位置及び姿勢が、前記2つの脚リンクにそれぞれ作用する床反力の合力である全床反力に応じたばね性変位を生じる要素であって、且つ、該接触部位代表要素の位置及び姿勢のばね性変位量が、前記2つの脚リンクのうちの第1の脚リンクに作用する床反力に応じて生じる該第1の脚リンクの先端部の位置及び姿勢のばね性変位量と、前記2つの脚リンクのうちの第2の脚リンクに作用する床反力に応じて生じる該第2の脚リンクの先端部の位置及び姿勢のばね性変位量と次式02の関係を有する要素であり、
前記接触部位ヤコビアン算出手段は、次式03の右辺の演算によって、前記接触部位ヤコビアンJcを算出することを特徴とする移動ロボットの制御装置。

Xcc=rat*A1*X1+(1−rat)*A2*X2 ……式02

Jc=rat*A1*J1+(1−rat)*A2*J2 ……式03

但し、
Xcc:接触部位代表要素の位置及び姿勢のばね性変位量を成分とするベクトル
rat:前記第1の脚リンクのみが接地している状態でrat=0、前記第2の脚リンクのみが接地している状態でrat=1となり、且つ、第1の脚リンク及び第2の脚リンクの両方が接地している状態では、0≦rat≦1の範囲で連続的に変化するように前記接触状態情報に応じて設定される係数
X1:前記第1の脚リンクに作用する床反力に応じて生じる該第1の脚リンクの先端部の位置及び姿勢のばね性変位量を成分とするベクトル
X2:前記第2の脚リンクに作用する床反力に応じて生じる該第2の脚リンクの先端部の位置及び姿勢のばね性変位量を成分とするベクトル
A1:前記第1の脚リンクに作用する床反力の並進力成分とモーメント成分とからなる第1床反力ベクトイルを、前記接触部位代表要素に作用する床反力ベクトルに変換する行列
A2:前記第2の脚リンクに作用する床反力の並進力成分とモーメント成分とからなる第2床反力ベクトイルを、前記接触部位代表要素に作用する床反力ベクトルに変換する行列
J1:X1の1階微分値X1'(=dX1'/dt)と一般化変数ベクトルqの1階微分値q'との間の関係をX1'=J1*q'により表すヤコビアン
J2:X2の1階微分値X2'(=dX2'/dt)と一般化変数ベクトルqの1階微分値q'との間の関係をX2'=J2*q'により表すヤコビアン
【請求項6】
請求項4又は5記載の移動ロボットの制御装置において、
前記アクチュエータ制御手段は、前記移動ロボットの各関節に実際に付与する駆動力を前記決定された目標駆動力に一致させ、且つ前記接触部位代表要素の実際の運動加速度を前記接触部位代表要素運動加速度目標値を一致させたと仮定した場合に前記接触部位に作用する外力の推定値としての接触部位外力目標値を、前記決定された目標駆動力と接触部位運動加速度目標値とを用いて逆動力学演算の処理を実行することにより決定する接触部位外力目標値決定手段と、該接触部位外力目標値と前記接触部位に実際に作用する外力の観測値との偏差を“0”に収束させるように、フィードバック制御則により前記目標駆動力の補正量を決定する駆動力補正量算出手段とを含み、該補正量により補正した前記目標駆動力に応じて、前記アクチュエータの動作を制御することを特徴とする移動ロボットの制御装置。

【図1】
image rotate

【図2】
image rotate

【図3】
image rotate

【図4】
image rotate

【図5】
image rotate

【図6】
image rotate


【公開番号】特開2011−152634(P2011−152634A)
【公開日】平成23年8月11日(2011.8.11)
【国際特許分類】
【出願番号】特願2010−204855(P2010−204855)
【出願日】平成22年9月13日(2010.9.13)
【出願人】(000005326)本田技研工業株式会社 (23,863)
【Fターム(参考)】