以下、添付図面を参照して本発明の実施形態を説明する。尚、本明細書の実施形態では、移動ロボットとしては2足移動ロボットを例にとる。
図1は、本発明の実施形態を適用する2足移動ロボットの全体的構成の概略を示す概略図である。
図示の如く、2足移動ロボット(以下、ロボットという)1は上体(ロボット1の基体)3から下方に延設された左右一対の脚体2,2を備える。両脚体2,2は同一構造であり、それぞれ6個の関節を備える。その6個の関節は上体3側から順に、股(腰部)の回旋(回転)用(上体3に対するヨー方向の回転用)の関節10R,10Lと、股(腰部)のロール方向(X軸まわり)の回転用の関節12R,12Lと、股(腰部)のピッチ方向(Y軸まわり)の回転用の関節14R,14L、膝部のピッチ方向の回転用の関節16R,16Lと、足首のピッチ方向の回転用の関節18R,18Lと、足首のロール方向の回転用の関節20R,20Lとから構成される。なお、本明細書において、符号R,Lはそれぞれロボット1の右側、左側に対応するものであることを意味する符号である。
各脚体2の足首の2つの関節18R(L),20R(L)の下部には、各脚体2の先端部を構成する足平(足部)22R(L)が取着されると共に、両脚体2,2の最上位には、各脚体2の股の3つの関節10R(L),12R(L),14R(L)を介して前記上体3が取り付けられている。上体3の内部には、詳細を後述する制御ユニット60などが格納される。なお、図1では図示の便宜上、制御ユニット60を上体3の外部に記載している。
上記構成の各脚体2においては、股関節(あるいは腰関節)は関節10R(L),12R(L),14R(L)から構成され、膝関節は関節16R(L)から構成され、足首関節は関節18R(L),20R(L)から構成される。また股関節と膝関節とは大腿リンク24R(L)で連結され、膝関節と足首関節とは下腿リンク26R(L)で連結される。
なお、本明細書においては、ロボット1の「リンク」はロボット1の剛体とみなせる部位の意味で使用する。例えば上体3も1つのリンク(剛体)であり、その意味で上体3を上体リンクと言うこともある。
上体3の上部の両側部には左右一対の腕体5,5が取り付けられると共に、上体3の上端部には頭部4が配置される。各腕体5は、3つの関節30R(L),32R(L),34R(L)から構成された肩関節と、関節36R(L)から構成された肘関節と、関節38R(L)から構成された手首関節と、この手首関節に連結された手先部40R(L)とを備えている。肩関節と肘関節との間、および肘関節と手首関節との間はそれぞれリンクで連結されている。
上記のロボット1の構成により、各脚体2の足平22R(L)は、上体3に対して6つの自由度を与えられている。そして、ロボット1の歩行等の移動中に、両脚体2,2を合わせて6*2=12個(この明細書で「*」はスカラに対する演算としては乗算を、ベクトルに対する演算としては外積を示す)の関節を適宜な角度で駆動することで、両足平22R,22Lの所望の運動を行うことができる。これにより、ロボット1は任意に3次元空間を移動することができる。また、各腕体5は、その肩関節、肘関節、手首関節の回転によって、腕振り等の運動を行うことができる。
図1に示す如く、各脚体2の足首関節18R(L),20R(L)の下方には足平22R(L)との間に公知の6軸力センサ50が介装されている。該6軸力センサ50は、各脚体2の足平22R(L)の着地の有無、および各脚体2に作用する床反力(接地荷重)等を検出するためのものであり、該床反力の並進力の3方向成分Fx,Fy,Fz並びにモーメントの3方向成分Mx,My,Mzの検出信号を制御ユニット60に出力する。また、上体3には、Z軸(鉛直方向(重力方向))に対する上体3の傾斜角およびその角速度を検出するための姿勢センサ54が備えられ、その検出信号が該姿勢センサ54から制御ユニット60に出力される。この姿勢センサ54は、図示を省略する加速度センサおよびジャイロセンサを備え、これらのセンサの検出信号が上体3の傾斜角およびその角速度を検出するために用いられる。また、詳細構造の図示は省略するが、ロボット1の各関節には、それを駆動するための電動モータ64(図3参照)と、その電動モータ64の回転量(各関節の回転角)を検出するためのエンコーダ(ロータリエンコーダ)65(図3参照)とが設けられ、該エンコーダ65の検出信号が該エンコーダ65から制御ユニット60に出力される。
さらに、図1では図示を省略するが、ロボット1の外部には、ロボット1を操縦するためのジョイスティック(操作器)73(図3参照)が設けられ、そのジョイスティック73を操作することで、直進移動しているロボット1を旋回させるなど、ロボット1の歩容に対する要求を必要に応じて制御ユニット60に入力できるように構成されている。ジョイスティック73は有線もしくは無線により制御ユニット60との通信が可能とされている。
図2は本実施形態における各脚体2の先端部分(各足平22R(L)を含む)の基本構成を概略的に示す図である。同図に示すように、各足平22R(L)の上方には、前記6軸力センサ50との間にばね機構70が装備されると共に、足底(各足平22R(L)の底面)にはゴムなどからなる足底弾性体71が貼られている。これらのばね機構70及び足底弾性体71によりコンプライアンス機構72が構成されている。詳細な図示は省略するが、ばね機構70は、足平22R(L)の上面部に取り付けられた方形状のガイド部材(図示省略)と、足首関節18R(L)(図2では足首関節20R(L)を省略している)および6軸力センサ50側に取り付けられ、前記ガイド部材に弾性材(ゴムやばね)を介して微動自在に収納されるピストン状部材(図示省略)とから構成されている。
図2に実線で表示された足平22R(L)は、床反力を受けていないときの状態を示している。各脚体2が床反力を受けると、コンプライアンス機構72のばね機構70と足底弾性体71とがたわみ、足平22R(L)は図中に点線で例示したような位置姿勢に移る。このコンプラインアス機構72の構造は、着地衝撃を緩和するためだけでなく、制御性を高めるためにも重要なものである。その詳細は、例えば本出願人が先に提案した特開平5−305584号公報に詳細に説明されているので、本明細書でのさらなる説明は省略する。
図3は制御ユニット60の構成を示すブロック図である。該制御ユニット60はマイクロコンピュータにより構成されており、CPUからなる第1の演算装置90及び第2の演算装置92、A/D変換器80、カウンタ86、D/A変換器96、RAM84、ROM94、並びにこれらの間のデータ授受を行うバスライン82を備えている。この制御ユニット60では、各脚体2の6軸力センサ50、姿勢センサ54(加速度センサおよびレートジャイロセンサ)、ジョイスティック73等の出力信号はA/D変換器80でデジタル値に変換された後、バスライン82を介してRAM84に送られる。またロボット1の各関節のエンコーダ65(ロータリーエンコーダ)の出力は、カウンタ86を介してRAM84に入力される。
前記第1の演算装置90は後述の如く目標歩容を生成すると共に、関節角変位指令(各関節の変位角もしくは各電動モータ64の回転角の指令値)を算出し、RAM84に送出する。また、第2の演算装置92はRAM84から関節角変位指令と、前記エンコーダ65の出力信号に基づいて検出された関節角の実測値とを読み出し、各関節の駆動に必要な操作量を算出する。そして、その算出された操作量がD/A変換器96とサーボアンプ64aとを介して各関節を駆動する電動モータ64に出力される。
図4は、本明細書の実施形態におけるロボット1の制御ユニット60の主な機能的構成を示すブロック図である。この図4中の「実ロボット」の部分以外の部分が制御ユニット60が実行する処理機能(主として第1の演算装置90及び第2の演算装置92の機能)によって構成されるものである。その処理機能は、制御ユニット60に実装されたプログラム等によって実現されている。尚、以下の説明では、ロボット1の各部(脚体2、腕体5など)の左右を特に区別する必要がないときは、前記符号R,Lを省略する。
以下説明すると、制御ユニット60は、後述の如く目標歩容を自在かつリアルタイムに生成して出力する歩容生成装置100を備えている。この歩容生成装置100は、その機能によって本発明の実施形態を実現するものである。この歩容生成装置100が出力する目標歩容は、補正目標上体姿勢軌道(上体3の目標姿勢の軌道)、補正目標上体位置軌道(上体3の目標位置の軌道)、目標足平位置姿勢軌道(各足平22の目標位置及び目標姿勢の軌道)、目標腕姿勢軌道(各腕体の目標姿勢の軌道)、目標ZMP(目標全床反力中心点)軌道、目標ZMPまわりの補正目標床反力モーメント軌道および目標全床反力軌道から構成される。尚、脚体2や腕体5以外に、上体3に対して可動な部位(頭部など)を備える場合には、その可動部位の目標位置姿勢軌道が目標歩容に加えられる。
ここで、本明細書での歩容に関する基本的な用語の定義などについて説明しておく。歩容における「軌道」は時間的変化のパターン(時系列パターン)を意味し、「軌道」の代わりに「パターン」と称することもある。また、「姿勢」は空間的な向きを意味する。例えば上体姿勢はZ軸(鉛直軸)に対するロール方向(X軸まわり)の上体3の傾斜角(姿勢角)とピッチ方向(Y軸まわり)の上体3の傾斜角(姿勢角)とで表され、足平姿勢は各足平22に固定的に設定された2軸の空間的な方位角で表される。本明細書では、上体姿勢は上体姿勢角ということもある。なお、腕体5に関する目標腕姿勢は、本明細書の実施形態では上体3に対する相対姿勢で表される。
上体位置は、上体3のあらかじめ定めた代表点(上体3に対して任意に固定設定したローカル座標系でのある固定点)の位置を意味する。同様に、足平位置は、各足平22のあらかじめ定めた代表点(各足平22に対して任意に固定設定したローカル座標系での固定点)の位置を意味する。例えば各足平22の代表点は、各足平22の底面上(より具体的には各脚体2の足首関節の中心から各足平22の底面への垂線が該底面と交わる点等)に設定される。
上体3に関する前記補正目標上体姿勢および補正目標上体位置は、ある基本となる目標上体姿勢(仮目標上体姿勢)および目標上体位置(仮目標上体位置)を補正したものである。本明細書の実施形態では、基本となる目標上体位置姿勢は、後述の変位次元補正上体位置姿勢が相当する。
なお、以降の説明では、誤解を生じるおそれがない場合には、しばしば「目標」を省略する。
歩容のうちの、床反力に係わる構成要素以外の構成要素、すなわち足平位置姿勢、上体位置姿勢等、ロボット1の各部位の位置姿勢に関する構成要素を総称的に「運動」という。また、各足平22に作用する床反力(並進力及びモーメントからなる床反力)を「各足平床反力」と呼び、ロボット1の全て(2つ)の足平22R,22Lについての「各足平床反力」の合力を「全床反力」という。ただし、以下の説明においては、各足平床反力はほとんど言及しないので、特に断らない限り、「床反力」は「全床反力」と同義として扱う。
目標床反力は、一般的には、作用点とその点に作用する並進力及びモーメントとによって表現される。作用点はどこにとっても良いので、同一の目標床反力でも無数の表現が考えられるが、特に目標床反力中心点(全床反力の中心点の目標位置)を作用点にして目標床反力を表現すると、目標床反力のモーメント成分は、鉛直成分(鉛直軸(Z軸)まわりのモーメント成分)を除いて0になる。換言すれば、目標床反力中心点まわりの目標床反力のモーメントの水平成分(水平軸(X軸及びY軸)まわりのモーメント)は0になる。
なお、動力学的平衡条件を満足する歩容では、ロボット1の目標運動軌道から算出されるZMP(目標運動軌道から算出される慣性力とロボット1に作用する重力との合力がその点まわりに作用するモーメントが、鉛直成分を除いて0になる点)と目標床反力中心点とは一致することから、目標床反力中心点軌道の代わりに目標ZMP軌道を与えると言っても同じことである。
ここで、ロボット1の歩行を行う場合には、例えば本出願人が先に特開平10−86080号公報で提案した上体高さ決定手法によってロボット1の上体3の鉛直位置(上体高さ)が決定されると、並進床反力鉛直成分は従属的に決定される。さらに、目標歩容の運動による慣性力と重力との合力が目標ZMPまわりに発生するモーメントの水平成分が0になるようにロボット1の上体水平位置軌道(あるいは全体重心の位置軌道)を決定することで、並進床反力水平成分も従属的に決定される。このため、ロボット1の歩行を行う場合には、目標歩容の床反力に関して明示的に設定すべき物理量としては、目標ZMPだけでもよい。
一方、床反力が0もしくはほぼ0になるような時期を伴う歩容でのロボット1の移動、例えばロボット1の走行を行う場合には、並進床反力鉛直成分もロボット1の動作制御上重要である。このため、並進床反力鉛直成分の目標軌道を明示的に設定した上で、ロボット1の目標上体鉛直位置等の軌道を決定することが望ましい。また、ロボット1の歩行においても、摩擦係数が低い床面上(低ミュー路上)でロボット1を移動させるような場合には、並進床反力鉛直成分(より厳密には並進床反力の床面に垂直な成分)が摩擦力に影響を及ぼすことから、ロボット1のスリップなどを防止する上で、並進床反力鉛直成分の目標軌道を明示的に設定することが望ましい。さらに、本発明の実施形態では、最終的に歩容生成装置100が出力する目標歩容では、目標ZMPまわりに補正目標床反力モーメント(水平成分が0とは限らないモーメント)を発生させる。
このようなことから、本明細書の実施形態では、歩容生成装置100が出力する目標歩容の床反力に関する構成要素として、目標ZMP軌道のほか、目標ZMPまわりの補正目標床反力モーメントと、目標並進床反力鉛直成分とを含ませている。
そして、本明細書では、歩容生成装置100が出力する目標歩容は、広義には、「1歩もしくは複数歩の期間の目標運動軌道と目標床反力軌道との組」の意味で使用され、狭義には、「1歩の期間の目標運動軌道と、目標ZMP、補正目標床反力モーメント及び目標並進床反力鉛直成分を含む目標床反力軌道との組」の意味で使用される。
但し、本明細書の実施形態においては、最終的な目標歩容(歩容生成装置100が出力する目標歩容)を決定するまでの過程で作成する目標歩容(仮目標歩容)では、目標ZMPまわりの目標床反力モーメントの水平成分は、本来の目標ZMPの定義どおりに0とされる。従って、最終的に決定する目標歩容以外の仮目標歩容(後述の単純化モデル歩容や変位次元補正歩容)では、上記狭義の目標歩容から、補正目標床反力モーメントを除いたものが目標歩容の意味で使用される。補足すると、本明細書の実施形態では、最終的な目標歩容(歩容生成装置100が出力する目標歩容)を決定するまでの過程で作成する目標歩容(仮目標歩容)が本発明に密接に関連するものとなっている。このため、以降の説明で現れる目標歩容の大部分は、前記狭義の目標歩容から、補正目標床反力モーメントを除いたもの(目標ZMPを満足する歩容)の意味で使用される。
なお、以降の説明では、「床反力鉛直成分」は「並進床反力鉛直成分」を意味するものとし、床反力のうちのモーメントの鉛直成分(鉛直軸回り成分)は、「モーメント」という用語を用いて「床反力鉛直成分」と区別をする。同様に、「床反力水平成分」は「並進床反力水平成分」を意味するものとする。
また、目標歩容の「1歩」は、ロボット1の片方の脚体2が着地してからもう一方の脚体2が着地するまでの意味で使用する。
また、歩容における両脚支持期とは、ロボット1がその自重を両脚体2,2で支持する期間、片脚支持期とはいずれか一方のみの脚体2でロボット1の自重を支持する期間、空中期とは両脚体2,2が床から離れている(空中に浮いている)期間を言う。片脚支持期においてロボット1の自重を支持しない側の脚体2を遊脚と呼ぶ。なお、片脚支持期と空中期とが交互に繰り返されるロボット1の走行歩容では両脚支持期は無い。この場合、空中期では両脚2,2とも、ロボット1の自重を支持しないこととなるが、便宜上、該空中期の直前の片脚支持期において遊脚であった脚体2、支持脚であった脚体2をそれぞれ該空中期においても遊脚、支持脚と呼ぶ。
また、目標歩容の軌道は、グローバル座標系(床に固定された座標系)で記述される。グローバル座標系としては、例えば支持脚足平22の着地位置姿勢に対応して定まる支持脚座標系が用いられる。この支持脚座標系は、例えば支持脚足平22の底面のほぼ全面を床に接地した状態で、その足平22が連結された足首関節の中心から床面に延ばした垂線が床と交わる点を原点とし、その原点を通る水平面に支持脚足平22を投影したときの該足平22の前後方向をX軸方向、左右方向をY軸方向とする座標系(Z軸方向は鉛直方向)である。
図5は、歩容生成装置100の詳細を示すブロック図である。この図5を参照して、歩容生成装置100の処理のより具体的な概要を以下に説明する。
図示の如く、歩容生成装置100は歩容パラメータ決定部100aを備える。歩容パラメータ決定部100aは、目標歩容を規定する歩容パラメータの値あるいは時系列テーブルを決定する。
本明細書の実施形態では、歩容パラメータ決定部100aが決定する歩容パラメータには、目標歩容のうちの、目標足平位置姿勢軌道、目標腕姿勢軌道、目標ZMP軌道、および目標床反力鉛直成分軌道をそれぞれ規定するパラメータが含まれる。
ここで、歩容生成装置100が目標歩容を生成するとき、遊脚足平22の着地予定位置姿勢、着地予定時刻、あるいは歩幅、移動速度等の歩容生成用の基本的な要求値(要求パラメータ)が、前記ジョイスティック73、もしくは図示しない行動計画部(ロボット1の行動計画を作成する装置)などの装置から歩容生成装置100に与えられる。あるいは、上記要求パラメータをあらかじめ記憶保持した記憶媒体から該要求パラメータを歩容生成装置100が読み込む。そして、歩容生成装置100の歩容パラメータ決定部100aは、その要求パラメータに応じて歩容パラメータを決定する。
また、本明細書の実施形態では、歩容パラメータ決定部100aが決定する歩容パラメータには、基準上体姿勢軌道、ZMP許容範囲、床反力水平成分許容範囲をそれぞれ規定するパラメータも含まれる。
ここで、前記基準上体姿勢軌道は、最終的に歩容生成装置100が出力するものではないが、目標歩容を決定するときに参酌されるものである。この基準上体姿勢軌道は、ロボット1の上体姿勢に関して、前記ジョイスティック73あるいは行動計画部から与えられ、もしくはあらかじめ定められた要求(上体姿勢を鉛直姿勢に保つなどの要求)にそのまま従って生成される上体姿勢軌道である。目標上体姿勢(以降、「基準」が付いていない「上体姿勢」は、目標上体姿勢を表す)は、基準上体姿勢に長期的に追従するか、または一致するように生成される。
また、前記ZMP許容範囲に関して補足すると、本明細書の実施形態では、目標歩容は、目標ZMPのまわりに補正目標床反力モーメント(これは一般には0ではない)を発生するように修正される。したがって、目標ZMPは、本来の定義(床反力モーメント水平成分が0である点という定義)とは異なる点となり、本来の定義を満足するZMP(以下、真のZMPという)は、補正目標床反力モーメントを目標床反力鉛直成分で割った値だけ目標ZMPからずれた位置に移る。
修正された歩容(歩容生成装置100が最終的に出力する目標歩容)の真のZMPは、少なくともZMP存在可能範囲(いわゆる支持多角形のこと。床と足平22の底面との間に粘着力が作用しないと仮定した場合における床反力中心点(ZMP)の存在可能範囲)内になければならない。さらにロボット1の安定余裕を十分にとるためには、修正された歩容の真のZMPは、ZMP存在可能範囲のなかの中心付近の範囲にあることが望ましい。そこで、本明細書の実施形態では修正された歩容の真のZMPが存在できる許容範囲を設定する。この範囲をZMP許容範囲と呼ぶ。ZMP許容範囲は、ZMP存在可能範囲と一致するように、あるいはZMP存在可能範囲内に包含されるように設定される。
なお、前記したように、目標ZMPまわりの補正目標床反力モーメントを目標床反力鉛直成分で除算したものが、目標ZMPに対する真のZMPの位置のずれ量を表すので、目標ZMPまわりの補正目標床反力モーメントを設定する代わりに、目標ZMPに対する真のZMPの位置のずれ量(補正目標床反力モーメントのZMP換算値)を設定してもよい。また、ZMP許容範囲は、その境界の位置と目標床反力鉛直成分とを用いて、補正目標床反力モーメントの許容範囲に変換することができ、その補正目標床反力モーメントの許容範囲をZMP許容範囲の代わりに設定するようにしてもよい。
また、前記床反力水平成分許容範囲は、ロボット1の足平22の床との接地面に、足平22が滑らないような大きさの摩擦力を発生させ得る床反力水平成分の許容範囲である。本明細書の実施形態では、少なくとも最終的に歩容生成装置100が出力する目標歩容の運動(目標運動)は、それによって発生するロボット1の慣性力の水平成分に釣り合う床反力水平成分が床反力水平成分許容範囲内に収まるように生成される。
歩容パラメータ決定部100aで決定された歩容パラメータは目標瞬時値発生部100bに入力される。目標瞬時値発生部100bは入力された歩容パラメータに基づき、基準上体姿勢、目標足平位置姿勢、目標ZMP、目標床反力鉛直成分等、目標歩容の一部の構成要素の瞬時値(前記制御ユニット60の所定の制御処理周期毎の値)を逐次算出(発生)する。なお、図5では一部の目標瞬時値のみを代表的に記載している。
目標瞬時値発生部100bで算出された目標瞬時値は、単純化モデル歩容生成部100cに入力される。単純化モデル歩容生成部100cは、入力された目標瞬時値を基に、ロボット1の運動と床反力との関係を近似表現する後述の動力学モデル(以下、単純化モデルという)を用いて目標上体位置姿勢(仮目標上体位置姿勢)の瞬時値を算出する。単純化モデル歩容生成部100cは、単純化モデル上での動力学的平衡条件が満たされるように、すなわち単純化モデル上でのロボット1の目標運動によって発生する慣性力とロボット1に作用する重力との合力が目標ZMPまわりに発生するモーメントの水平成分が0になるように目標上体位置姿勢の瞬時値を算出する。補足すると、本明細書の実施形態では、目標床反力鉛直成分軌道も明示的に設定するので、目標上体位置姿勢の瞬時値は、目標運動によって発生する慣性力とロボット1に作用する重力との合力が目標ZMPまわりに発生するモーメント水平成分が0になるほか、その合力の並進力鉛直成分(換言すれば、ロボット1の全体重心の鉛直方向の並進運動に伴う慣性力と重力との合力)が目標床反力鉛直成分に釣り合うように決定される。
これにより、目標上体位置姿勢を含む目標歩容(仮目標歩容)の瞬時値が逐次決定されていくこととなる。以降、単純化モデル歩容生成部100cで求められた目標上体位置姿勢を構成要素とする目標歩容を単純化モデル歩容という。なお、単純化モデル歩容生成部100cに入力される目標瞬時値は、目標瞬時値発生部100bで算出されたすべての目標瞬時値である必要はない。単純化モデル歩容生成部100cに必要な入力は、単純化モデルの構造、あるいはそれに適宜付加される制約条件に依存する。例えば図5では、目標足平位置姿勢を単純化モデル歩容生成部100cに入力しているが、後述する単純化モデルでは、目標足平位置姿勢を入力する必要はない。
なお、単純化モデル歩容生成部100cは、目標瞬時値発生部100bと合わせて、本発明における瞬時歩容発生手段を構成する。
単純化モデル歩容生成部100cで算出された目標上体位置姿勢は、変位次元歩容補正部100dに入力される。変位次元歩容補正部100dには、目標上体位置姿勢のほか、目標足平位置姿勢の瞬時値、目標ZMPの瞬時値も入力される。但し、変位次元歩容補正部100dには、目標ZMPを入力することは必須ではなく、より一般的には、後述する角運動量積に関する中心点が入力される。図5では、その中心点の一例として目標ZMPを変位次元歩容補正部100dに入力するようにしている。なお、後述の第3実施形態では、変位次元歩容補正部100dには、上記した入力値のほか、目標腕姿勢の瞬時値も入力される。
この変位次元歩容補正部100dは、入力された目標上体位置姿勢の瞬時値などを基に、後述の第1および第2変位次元補正用モデルを用いて、単純化モデル歩容生成部100cで求めた目標上体位置姿勢を補正してなる変位次元補正上体位置姿勢の瞬時値を求める。詳細は後述するが、第1および第2変位次元補正用モデルは、一般的には、質点とイナーシャをもつリンクとのうちの少なくともいずれか一方を要素として構成されるモデル(幾何学モデル)であり、その要素の配置(質点の位置、リンクの姿勢)が、ロボット1の瞬時運動における1つ以上の部位の位置姿勢に対応づけられる。この場合、これらの第1および第2変位次元補正用モデルは、共に同じ要素で構成される。但し、これらの第1および第2変位次元補正用モデルでは、その要素の配置に関して互いに異なる幾何学的拘束条件が定められており、ロボット1の任意の瞬時目標運動(ロボット1の各部位の位置姿勢の瞬時値)と、それに対応する各変位次元補正用モデルの要素の配置とが各別の幾何学的拘束条件に基づいて対応づけられるようになっている。従って、ある瞬時目標運動が与えられたとき、それに対応する各変位次元補正用モデルの要素の配置は一般には互いに異なる。そして、変位次元歩容補正部100dは、一般的には、これらの第1および第2変位次元補正用モデルにおける要素の配置の差(質点の位置の差、あるいはリンクの姿勢角の差)を基に、単純化モデル歩容の瞬時目標運動を逐次補正する。本明細書の各実施形態では、変位次元歩容補正部100dは、両変位次元補正用モデルの要素の配置の差を基に、単純化モデル歩容の瞬時目標運動のうちの目標上体位置姿勢を補正し、それにより変位次元補正上体位置姿勢の瞬時値を逐次求める。
変位次元歩容補正部100dで求めた変位次元補正上体位置姿勢の瞬時値は、フルモデル補正部100eに入力される。フルモデル補正部100eには、変位次元補正上体位置姿勢の瞬時値のほか、目標瞬時値発生部100bで算出された各目標瞬時値(基準上体位置姿勢の瞬時値を除く)が入力される。このフルモデル補正部100bは、単純化モデルよりも動力学的精度の高い動力学モデルとしてのフルモデルを用いて変位次元上体位置姿勢を補正してなる補正目標上体位置姿勢を算出すると共に、目標ZMPまわりの床反力モーメント水平成分の目標値である補正目標床反力モーメントを算出する。
フルモデル補正部100eは、より一般的には、次のD1〜D3の条件を満足するように、E1あるいはE2の処理を実行する。すなわち、フルモデル補正部100eは、
D1)単純化モデルを用いて生成した歩容(単純化モデル歩容)を変位次元補正用モデルを用いて修正してなる歩容(以降、変位次元補正歩容と呼ぶ)よりも高い精度で動力学的平衡条件を満足する。
D2)真のZMP(目標ZMPのまわりに補正目標床反力モーメントを発生させることによって修正された本来の定義を満足するZMP)は、ZMP許容範囲(安定余裕が十分維持できる許容範囲)に存在する。
D3)床反力水平成分は床反力水平成分許容範囲内になる。
という条件を満足するように、
E1)前記変位次元補正歩容の上体位置姿勢を補正する。
あるいは
E2)前記変位次元補正歩容の上体位置姿勢を補正すると共に、目標ZMPまわりの補正目標床反力モーメントを出力する(目標床反力を補正する)。
本明細書の実施形態では、D1〜D3の条件を満足するように、E2の処理が実行される。なお、本明細書の実施形態におけるフルモデル補正部100eの処理は、例えば本願出願人が先に提案したPCT国際公開公報WO/03/057427/A1にて詳細に説明されているもの(具体的には、同公報の図13のS038の処理)と同じである。従って、本明細書でのフルモデル補正部100eの処理の詳細な説明は省略する。
図4に戻って、上述のように決定される補正目標上体位置姿勢、目標ZMPまわりの補正目標床反力モーメント、目標足平位置姿勢の瞬時値を含む目標歩容の瞬時値は、複合コンプライアンス制御装置101(図4で破線で囲んだ部分)に入力される。この複合コンプライアンス制御装置101は、ロボット1のバランスを保ちつつ、目標歩容に追従するように関節アクチュエータ(電動モータ64)を制御する。
以上が歩容生成装置100の概要である。なお、以上説明した歩容生成装置100の概要は、本明細書のいずれの実施形態及び参考例においても同じである。
以降、本発明の実施形態を具体的に説明する前に、便宜上、その実施形態に関連するいくつかの参考例を説明しておく。
[第1参考例]
本発明の実施形態に関連する第1参考例を具体的に説明する。まず、第1参考例における前記単純化モデル(動力学モデル)、第1変位次元補正用モデル、第2変位次元補正用モデルについて説明する。
図6は、第1参考例における単純化モデルの構造を示している。図示の如く、この単純化モデルは、ロボット1の上体3に対応する1つの質点(上体質点)3mを備える1質点モデルである。なお、図6に示すロボット1は、側面から見たロボット1を模式化して示し、腕体5,5や頭部6の図示を省略している。この図6以降の図面(第1参考例以外の参考例及び実施形態の図面を含む)では、ロボット1を図示するときに、特に上体3と区別する必要がある場合を除いて、図6と同様に、腕体5,5や頭部6の記載を省略する。また、図6を含む以降の図面で記載されるX軸、Z軸は、グローバル座標系を示している。
図6の単純化モデルの上体質点3mは、上体3の位置姿勢に対応して一義的に定まる点、すなわち上体3に任意に固定設定されたローカル座標系でのある固定点(ローカル座標系で上体3の代表点と所定の位置関係を有する点)に設定されている。また、上体質点3mの質量は、ロボット1の総質量mtotalと同一とされている。なお、上体質点3mは、上体3の代表点と一致していてもよいが、一般には異なる。
この単純化モデルの動力学は、上体質点3mと、これを目標ZMPを支点として揺動自在に支持する可変長リンク3bとから構成される倒立振子の動力学により表現される。より具体的には、単純化モデルでのロボット1の運動と床反力との関係を表す運動方程式は、以下に示す式01、式02、式03で表される。ただし、本明細書の理解を容易にするために、ここではサジタルプレーン(前後軸(X軸)と鉛直軸(Z軸)を含む平面で、いわゆる矢状面)での運動方程式のみを記述し、ラテラルプレーン(左右軸(Y軸)と鉛直軸(Z軸)を含む平面で、いわゆる前額面)での運動方程式は省略する。
なお、本明細書では、任意の変数Xに対してd2X/dt2は変数Xの2階微分値を意味するものとする。また、図6の単純化モデルの動力学に関する変数は以下のように定義する。
g:重力加速度、Zb:上体質点の鉛直位置、Xb:上体質点の水平位置、mtotal:ロボット1の総質量、Fx:床反力水平成分(詳しくは並進床反力の前後方向(X軸)成分)、Fz:床反力鉛直成分(詳しくは並進床反力の鉛直方向(Z軸)成分)、My:目標ZMPまわりの床反力モーメント(詳しくは床反力モーメントの左右軸(Y軸)まわり成分)、Xzmp:目標ZMPの水平位置、Zzmp:目標ZMPの鉛直位置。
Fz=mtotal*(g+d2Zb/dt2) …式01
Fx=mb*d2Xb/dt2 …式02
My=−mtotal*(Xb−Xzmp)*(g+d2Zb/dt2)+mtotal*(Zb−Zzmp)*(d2Xb/dt2)
…式03
これらの式01〜03により記述される単純化モデルでは、例えば目標ZMPと目標床反力鉛直成分とを決めたとき、式01に従って、上体質点3mの鉛直位置Zbを決定できることとなる。さらに、ロボット1の動力学的平衡状態では、式03の左辺のMyが0になる(目標ZMPまわりの床反力モーメントの水平成分が0になる)から、上体質点3mの鉛直位置Zbと式03とから上体質点3mの水平位置Xbを決定できることとなる。
なお、第1参考例の単純化モデルは1質点モデルとしたが、例えば各脚体2の足平22の近傍にも質点を持たせた3質点モデルとしてもよい。また、例えば上体3が上体質点3mのまわりにイナーシャ(慣性モーメント)をもつようなモデルであってもよい。
次に第1参考例における第1変位次元補正用モデルを説明する。図7(a),(b),(c)の右側の図は、第1参考例における第1変位次元補正用モデルの構造を示し、左側の図は、右側の図にそれぞれ対応するロボット1の目標とする全体的な姿勢状態(単純化モデル歩容の姿勢状態)と前記単純化モデルとを示している。なお、図7(a),(b),(c)の右側に示すロボット1は、両脚体2,2を左右方向(Y軸方向)に並べて直立姿勢で起立している状態のロボット1を側面視(サジタルプレーン)で表したものである。このため、両脚体2,2は図面上、重なっている。
第1参考例の第1変位次元補正用モデルは、ロボット1の上体3に対応する1つの上体質点A1、各脚体2の膝関節近傍の大腿リンク部分に対応する大腿質点A2,A3、および各脚体2の先端部(足平22)にそれぞれ対応する足平質点A4,A5からなる5質点モデルである。また、第1変位次元補正用モデルにおける上体3(上体リンク)は、上体質点A1のまわりにイナーシャ(慣性モーメント)Ibを持つものとされている。つまり、第1変位次元補正用モデルは、質点A1〜A5とイナーシャIbをもつ上体リンクとを要素として構成されている。この場合、第1変位次元補正用モデルの質点A2〜A5とイナーシャIbをもつ上体リンクは、前記した図6の単純化モデルが持たない要素であり、それぞれに対応する部位の運動(上体3についてはその姿勢変化運動)によって慣性力を発生するものとなっている。
この第1変位次元補正用モデルの上体質点A1と、足平質点A4,A5とは、それぞれに対応する部位(上体3、各足平22)の位置姿勢に対応して一義的に定まる点、すなわち、対応する部位に任意に固定設定されたローカル座標系上でのある固定点(その対応する部位のローカル座標系上で、該部位の代表点と所定の位置関係を有する点)に設定されている。但し、上体3のローカル座標系上での上体質点A1の位置は、図6に示した前記単純化モデルの上体質点3mとは一般には異なる。また、大腿質点A2,A3は、各脚体2の大腿リンク24に任意に固定設定されたローカル座標系でのある固定点(膝関節近傍の固定点)に設定されている。なお、上体質点A1、各足平質点A4,A5および各大腿質点A2,A3の質量の総和は、ロボット1の総質量mtotalと一致する。また、上体質点A1の質量は、上体3の質量のほか、両腕体5,5および頭部4の質量を含んでいる。
そして、第1変位次元補正用モデルの要素の配置には、ある幾何学的拘束条件が設定されている。具体的には、第1変位次元補正用モデルでは、ロボット1の姿勢状態は、上体3を鉛直姿勢にすると共に、両脚体2,2をロボット1の左右方向(Y軸方向)に所定間隔で並べて起立している姿勢状態(直立姿勢状態)に定常的に拘束されている(このため、図7(a),(b),(c)の右側の第1変位次元補正用モデルの図では一方の脚体2に対応する各質点A2,A4はそれぞれ他方の脚体2に対応する各質点A3,A5と重なっている)。
従って、上体質点A1、各足平質点A4,A5および大腿質点A2,A3の相互の相対的位置関係が、ロボット1の直立姿勢状態に対応する所定の位置関係に拘束されている。また、第1変位次元補正用モデルにおいてイナーシャをもつリンク(剛体)である上体3の姿勢は、鉛直姿勢(鉛直軸に対する姿勢角が0となる姿勢)に拘束されている。
また、第1変位次元補正用モデルの各質点A1〜A5のグローバル座標系(床に固定された座標系)上での位置は、単純化モデル歩容の運動の瞬時値に対応して定まるものとされている。すなわち、第1参考例の第1変位次元補正用モデルでは、その質点A1〜A5の全体重心の位置が単純化モデル上でのロボット1の全体重心の位置、すなわち、単純化モデルの上体質点3mの位置(グローバル座標系での位置)と一致するように、質点A1〜A5のグローバル座標系での位置が決定される。この場合、前記したように第1変位次元補正用モデルの質点A1〜A5の相互の相対的位置関係は一定であるので、それらの質点A1〜A5の全体重心の位置(グローバル座標系での位置)が決まれば、各質点A1〜A5のグローバル座標系での位置も一義的に定まる。
このようにグローバル座標系での質点A1〜A5の位置が単純化モデル歩容に対応して定められる第1変位次元補正用モデルでは、その全体重心の運動が単純化モデル上での全体重心の運動と一致するため、単純化モデル上でロボット1に作用する床反力と、第1変位次元補正用モデル上でロボット1に作用する床反力とが同等になる。
ここで、第1参考例で上記のように第1変位次元補正用モデルの要素の配置を定めるということは、第1変位次元補正用モデルの要素の配置(グローバル座標系での質点A1〜A5の位置および上体リンクの姿勢)を定めるための幾何学的拘束条件(1)を次のように定義したとき、単純化モデル歩容の瞬時運動から、その幾何学的拘束条件(1)に従って第1変位次元補正用モデルの要素の配置を定めることと同じである。
幾何学的拘束条件(1):与えられた任意の瞬時目標運動に対して、第1変位次元補正用モデルの要素の配置に対応するロボット1の姿勢状態が定常的に直立姿勢状態に維持され、且つ第1変位次元補正用モデルの要素の全体重心が、与えられた瞬時目標運動におけるロボット1の全体重心に一致する。
次に第1参考例における第2変位次元補正用モデルを説明する。図8は、その第2変位次元補正用モデルの構造を示している。この第2変位次元補正用モデルは、その構成要素は、第1変位次元補正用モデルと同じであり、第1変位次元補正用モデルと同様に5個の質点A1〜A5を有すると共に、上体3(上体リンク)が質点A1のまわりにイナーシャIbを持つモデルである。各質点A1〜A5の質量と、各質点A1〜A5の、対応する部位に固定設定されたローカル座標系での位置とは、第1変位次元補正用モデルと同一である。また、上体3のイナーシャIbも第1変位次元補正用モデルと同一である。
この第2変位次元補正用モデルでは、第1変位次元補正用モデルのようにロボット1の姿勢は直立姿勢状態には拘束されておらず、各質点A1〜A5および上体3(上体リンク)はロボット1が採り得る任意の姿勢状態に対応する位置姿勢に移動可能とされている。
別の言い方をすれば、第2変位次元補正用モデルの要素の配置(グローバル座標系での質点A1〜A5の位置および上体リンクの姿勢)と、これに対応するロボット1の瞬時目標運動(各部位の目標位置姿勢の瞬時値)との間には、次のような幾何学的拘束条件(2)が設定されていることとなる。
幾何学的拘束条件(2):第2変位次元補正用モデルの各要素の配置により定まる、ロボット1の各要素に対応する部位の位置姿勢と、当該配置に対応する瞬時目標運動におけるロボット1の各要素に対応する部位の位置姿勢とは一致する。
従って、第2変位次元補正用モデルでは、その質点A1〜A5の全体重心の位置が、該第2変位次元補正用モデルの各要素の配置(質点A1〜A5の位置および上体リンクの姿勢)に対応する姿勢状態での実際のロボット1の真の全体重心の位置にほぼ一致する。
補足すると、任意の瞬時目標運動から、上記幾何学的拘束条件(2)に従って第2変位次元補正用モデルの要素の配置を決定するということは、第2変位次元補正用モデルの各要素の配置が、与えられた瞬時目標運動に従うロボット1における該要素に対応する部位の配置(位置姿勢)に一致するように第2変位次元補正用モデルの各要素の配置を決定するということと等価である。また、第2変位次元補正用モデルの要素の任意の配置から、幾何学的拘束条件(2)に従って瞬時目標運動を決定するということは、瞬時目標運動に従うロボット1の各要素に対応する部位の配置(位置姿勢)が、与えられた第2変位次元補正用モデルの要素の配置に一致するように瞬時目標運動を決定するということと等価である。
第2変位次元補正用モデルは、第1変位次元補正用モデルと協働して前記変位次元補正上体位置姿勢を決定するモデルであり、その変位次元補正上体位置姿勢を決定するときに、第2変位次元補正用モデルの要素の位置姿勢(グローバル座標系での位置姿勢)が次のように決定される。すなわち、第2変位次元補正用モデルの各足平質点A4,A5の位置は、単純化モデル歩容の各足平位置姿勢に対応する位置に決定される。また、上体質点A1および各大腿質点A2,A3の位置、並びに上体3(上体リンク)の姿勢角は、第1変位次元補正用モデルおよび第2変位次元補正用モデルの全体重心と、それらのモデル間の後述する角運動量積とに関する所定の条件を満たすように決定される。これについては、詳細を後述する。
補足すると、ロボット1の各脚体2はそれぞれ6自由度をもつので、両足平22,22の位置姿勢および上体3の位置姿勢が決まれば、ロボット1の脚体2,2の全体の姿勢(ロボット1の各脚体2,2の各部位(各リンク)の位置姿勢)は一義的に定まる。従って、第2変位次元補正用モデル上での両足平質点A4,A5並びに上体質点A1の位置および上体3(上体リンク)の姿勢を決めれば、それに対応して大腿質点A2,A3の位置は従属的に定まる。
なお、以降の説明では、単純化モデル、第1および第2変位次元補正用モデルに係わる各質点の「位置」、あるいはイナーシャをもつリンクの「姿勢」は特にことわらない限り、グローバル座標系での位置、姿勢を意味するものとする。
次に、第1参考例での歩容生成装置100の処理の詳細をより具体的に説明する。歩容生成装置100は、以下に説明するフローチャートの処理によって、ロボット1の片方の脚体2が着地してから他方の脚体2が着地するまでの1歩分の目標歩容(前記狭義の目標歩容)を単位として、その1歩分の目標歩容を順番に生成する。このとき、新たに生成しようとしている目標歩容を「今回歩容」と呼ぶ。
図9は、歩容生成装置100のメインルーチン処理を示す構造化フローチャートである。以下、詳説すると、まずS010において時刻tを0に初期化するなど種々の初期化作業が行なわれる。この処理は歩容生成装置100の起動時等に行なわれる。次いで、S012を経てS014に進み、歩容生成装置100は、制御周期(図9のフローチャートの演算処理周期)毎のタイマ割り込みを待つ。制御周期はΔtである。以降、その制御周期Δt毎に、S014からS032までの処理が繰り返される。
S014の次にS016に進み、歩容の切り替わり目であるか否かが判断され、歩容の切り替わり目であるときはS018に進むと共に、切り替わり目でないときはS022に進む。ここで、「歩容の切り替わり目」は、今回歩容の生成を開始するタイミングを意味し、例えば今回歩容の1つ前の目標歩容の生成が完了した制御周期の次の制御周期が歩容の切り替わり目になる。
S018に進むときには、現在時刻tを0に初期化した後、S020に進んで今回歩容の歩容パラメータが決定される。このS020の処理は、前記図5の歩容パラメータ決定部100aの処理に相当し、目標足平位置姿勢軌道、目標腕姿勢軌道、目標ZMP軌道、および目標床反力鉛直成分軌道を規定するパラメータが決定されると共に、基準上体姿勢軌道、床反力水平成分許容範囲、およびZMP許容範囲を規定するパラメータが決定される。
このS020の処理は、例えば本願出願人が先に提案したPCT国際公開公報WO/03/057427/A1(以下、公報文献1という)の図13のS022〜S030に対応する処理であり、同公報文献1と同様に行われる。それを要約的に説明すれば、まず、今回歩容がつながり、もしくは漸近すべき仮想的な周期的歩容としての定常歩容(ロボット1の2歩分の歩容を1周期とする歩容)が決定される。定常歩容は、今回歩容を含む2歩先までの遊脚足平22の着地予定位置姿勢、着地予定時刻などを基に、周期性の条件(定常歩容の1周期の初期の状態(ロボット1の各部の位置姿勢やその変化速度など)と終端の状態とが一致するという条件)を満たすように決定される。そして、今回歩容がその定常歩容につながり、もしくは漸近するように目標足平位置姿勢軌道、目標腕姿勢軌道、目標ZMP軌道、および目標床反力鉛直成分軌道を規定する歩容パラメータが決定される。ここで、目標足平位置姿勢軌道を規定する歩容パラメータは、例えば本願出願人が先に特許3233450号で提案した有限時間整定フィルタを用いて目標足平位置姿勢軌道を生成する場合、今回歩容の遊脚足平22の着地予定位置姿勢および着地予定時刻、今回歩容の支持脚足平22の次の着地予定位置姿勢および着地予定時刻などから構成される。また、例えば目標ZMP軌道、目標床反力鉛直成分軌道を規定する歩容パラメータは、それらの軌道が折れ線状の軌道であるとした場合、その折れ点での値やその折れ点の時刻などから構成される。なお、本参考例では、基準上体姿勢は、例えば鉛直姿勢(鉛直軸に対する上体3の傾斜角(姿勢角)が0である姿勢)とされる。また、本参考例のS020で決定する歩容パラメータのうち、床反力水平成分許容範囲を規定する歩容パラメータは、前記公報文献1の図13のS030で決定するフルモデル補正用の床反力水平成分許容範囲のパラメータに相当するものである。
補足すると、前記公報文献1で今回歩容の歩容パラメータを決定するための処理では、定常歩容の作成などのために動力学モデルを使用しているが、その動力学モデルとして、本参考例では、前記単純化モデルが用いられる。この場合、本参考例の単純化モデルは、公報文献1の図11で例示した動力学モデルとは同じでなないものの、同公報文献1の動力学モデルの両脚質点の質量を0とし、且つ上体に関するイナーシャ(フライホールのイナーシャ)を0としたものと等価である。従って、同公報文献1の図11の動力学モデルの両脚質点の質量を0とし、且つ上体に関するイナーシャを0とすれば、同公報文献1の図13のS022〜S030の処理をそのまま適用して、本参考例におけるS020の処理を実行できる。また、同公報文献1の図13のS022〜S028の処理では、定常歩容の作成などのために、単純化モデル歩容用の床反力水平成分許容範囲(この許容範囲は歩容生成装置から出力されるものではない)を設定して使用しているが、本参考例では、その単純化モデル歩容用の床反力水平成分許容範囲は、例えば無限大の範囲とするか、もしくは、単純化モデル歩容(あるいは定常歩容)の床反力水平成分が常にその床反力水平成分許容範囲内に収まるような広い範囲に定めておけばよい。このようにすることで、同公報文献1に示したアルゴリズムを本参考例のS020の処理で支障なく適用できる。
次いで、S020の処理の後、あるいはS016の判断結果がNOであった場合には、S022に進んで、今回歩容の瞬時値を決定する。この処理は、前記図5の目標瞬時値発生部100bおよび単純化モデル歩容生成部100cで実行される処理であり、S020で決定された歩容パラメータに基づいて今回歩容の瞬時値(単純化モデル歩容の瞬時値)が決定される。
この処理は、より具体的には前記公報文献1の図13のS032の処理に相当するものであり、同公報文献1と同様に行われる。それを要約的に説明すれば、前記S020で決定した歩容パラメータを基に、目標足平位置姿勢、目標ZMP、目標腕姿勢、目標床反力鉛直成分、基準上体姿勢の瞬時値が決定され、さらに、それらの瞬時値を基に、前記単純化モデル上で、目標ZMPと目標床反力鉛直成分とを満足するように(ロボット1の運動が発生する慣性力と重力との合力が目標ZMPまわりに作用するモーメント水平成分が0になり、また、その合力の並進力鉛直成分が目標床反力鉛直成分に釣り合うように)目標上体位置姿勢の瞬時値が決定される。ここで、目標上体位置姿勢の瞬時値に関して補足すると、目標上体姿勢の瞬時値は本参考例では基準上体姿勢の瞬時値と同じとされる。また、目標上体位置鉛直成分は、目標床反力鉛直成分と前記式01とから求められる単純化モデルの上体質点3mの鉛直位置に対応して決定される。そして、単純化モデルの上体質点3mの水平位置が前記式03の左辺を0とした式を満たすように(目標ZMPまわりの床反力モーメント水平成分が0になるように)決定され、この上体質点3mの水平位置に対応して目標上体位置水平成分が決定される。
なお、前記公報文献1の図13のS032の処理では、単純化モデル歩容用の床反力水平成分許容範囲を使用しているが、本参考例では、前記S020の処理に関して説明した場合と同様、単純化モデル歩容用の床反力水平成分許容範囲は、例えば無限大の範囲とするか、もしくは、単純化モデル歩容(あるいは定常歩容)の床反力水平成分が常にその床反力水平成分許容範囲内に収まるように定めておけばよい。
S022の処理で、逐次(制御周期Δt毎に)、瞬時値が決定される目標歩容(今回歩容)は、それを簡潔にいえば、前記単純化モデル上において、その運動が発生する慣性力と重力との合力が目標ZMPまわりに発生するモーメントの水平成分が0になり、また、その合力の並進力鉛直成分が目標床反力鉛直成分に釣り合うような歩容である。
次いで、S024に進んで、変位次元歩容補正サブルーチンを実行する。この変位次元歩容補正サブルーチンは、本発明の中核に係わるものであり、以下に詳細に説明する。
前記単純化モデルを用いた目標歩容の生成処理では、今回歩容(発散しない今回歩容)を安定にリアルタイムで決定できるという利点がある反面、生成される歩容の動力学的な近似精度が低い。このため、本明細書で説明する参考例及び実施形態では、単純化モデルよりも動力学的精度の高いフルモデルを使用して、歩容の一部(目標上体位置姿勢、目標ZMPまわりのモーメント)を補正する。この場合、単純化モデル歩容の動力学的近似精度が低いこと、フルモデルの非線形性が強いことなどのために、単純化モデル歩容をフルモデルに入力するようにすると、単純化モデル歩容の補正が適正に行われずに、ロボット1の継続的な運動を行い得ない歩容が生成されてしまうなどの不具合が生じる場合がある。特に、ロボット1の走行のように脚体2の運動が短い時間内で大きく変化するような歩容を生成する場合には、単純化モデルでは考慮されていない各脚体2の膝関節の曲げ動作などに伴う慣性力の変化の影響が大きくなって、単純化モデル歩容の動力学的な近似精度が低下し、上記の不具合が生じやすくなる。そして、このような不具合を解消するために、例えば各脚体2に複数の質点をもつ動力学モデルを構築したり、さらには上体などの、ロボットの1つ以上のリンクにイナーシャ(慣性モーメント)をもつ動力学モデルを構築し、それを単純化モデルとして用いることで、単純化モデル歩容の動力学的近似精度を高めることが考えられる。しかし、このようにした場合には、単純化モデルの非線形性が高まって、定常歩容につながる今回歩容の歩容パラメータ(ロボット1の運動の継続性を確保し得る歩容パラメータ)を安定して適正に見出すことが困難となる場合があると共に、その演算処理に時間がかかり、ひいては、適正な歩容をリアルタイムに生成することが困難となる。
そこで、第1参考例を含む各参考例及び本発明の各実施形態では、第1および第2変位次元補正用モデルを用いて、目標ZMPや床反力を含む動力学方程式を用いたりすることなく、第1および第2変位次元補正用モデルの要素の配置(質点とイナーシャをもつリンクの位置、姿勢)に関する幾何学的な処理(位置と姿勢との変位の次元での処理)によって、単純化モデル歩容の一部の運動(具体的には上体位置姿勢)のみを補正するようにした。そして、それによって、単純化モデル歩容よりも動力学的精度の高い歩容、詳しくは、その歩容の運動によってロボット1が発生する実際の慣性力と重力との合力の並進力成分がより高精度に目標床反力の並進力成分に釣り合い、且つ、該合力が目標ZMPまわりに作用するモーメントの水平成分がより高精度に0になるような歩容を生成するようにした。この場合、一般に、両変位次元補正用モデルは、ロボット1のいくつかの部位に対応する質点を同じように備え、あるいは、質点とイナーシャを持つリンク(上体3など)とを同じように備える。また、両変位次元補正用モデルは、単純化モデルよりも多くの質点を有し、あるいは、単純化モデルが持たないイナーシャを持つ。但し、第1変位次元補正用モデルでは、各質点の相互の位置関係あるいはイナーシャを持つリンク(上体3など)の姿勢にある適当な拘束条件が付加される。
より詳しく説明すると(ここでは第1参考例に限らない一般的な説明を行なう)、生成した単純化モデル歩容の各部位の位置姿勢の瞬時値(運動の瞬時値)に対応して、第1変位次元補正用モデルの各質点の位置が決定される。このとき、第1変位次元補正用モデルが、ロボット1の1つ以上のリンク(上体3など)にイナーシャをもつモデルである場合には、そのリンクの姿勢角も決定される。ただし、第1変位次元補正用モデルでは、各質点の位置関係、あるいはイナーシャを持つリンク(上体3など)の姿勢にある適当な幾何学的拘束条件が付加されており、これによって、単純化モデル歩容の各部位の位置姿勢の瞬時値(運動の瞬時値)に対応させて、第2変位次元補正用モデルの各質点の位置や、イナーシャをもつリンクの姿勢角を決定したとき、単純化モデル歩容の床反力と同じような床反力が第1変位次元補正用モデルでも発生するようにする。
さらに、第1変位次元補正用モデルで設定された幾何学的拘束条件を持たない第2変位次元補正用モデルに対し、第1変位次元補正用モデルとの間で、次の条件1,2を満足するように第2変位次元補正用モデルの各質点の位置(あるいは各質点の位置とイナーシャをもつリンクの姿勢角)が決定される。
条件1)第1変位次元補正用モデルの全体重心の位置と第2変位次元補正用モデルの全体重心の位置とはほぼ一致する。
条件2)ある点Qを定めたとき、第1変位次元補正用モデルに対する第2変位次元補正用モデルの、点Qのまわりの角運動量積の総和がある一定値(所定値)になる。
ここで、条件1は、両変位次元補正用モデルで、並進床反力もしくは全体重心の運動によって発生する慣性力がほぼ同じになるための条件である。条件1は別の言い方をすれば、第1変位次元補正用モデルの各質点の位置とこれに対応する第2変位次元補正用モデルの質点の位置との差(位置ベクトルの差)のベクトルを該質点の並進加速度とみなしたときに、各質点が発生する慣性力の並進力成分(質点の質量*並進加速度)の、全ての質点についての総和がほぼ0になるという条件と等価である。
また、条件2に関する前記角運動量積は、各変位次元補正用モデルの各質点に対する基準位置をそれぞれ任意に定め、また、前記点Qの位置を任意に定めたとき、その各質点毎に以下の如く定義されるものである。さらに、各変位次元補正用モデルがイナーシャを持つ場合(ある1つ以上のリンクにイナーシャが設定されている場合)には、そのイナーシャをもつ各リンクに対する基準姿勢角をそれぞれ任意に定めたとき、角運動量積は、その各リンク毎に以下の如く定義されるものである。
すなわち、各変位次元補正用モデルの各質点に係る角運動量積は、点Qとその質点に対応する基準位置の点(以下、基準点という)とを結ぶ線分(その線分のベクトル)と、該質点の該基準点からの位置のずれ(その位置ずれのベクトル)との外積に、該質点の質量を乗算したものに相当するものである。なお、この場合、上記外積と質量との積に比例関係を有するもの、あるいは該外積と質量との積に近似的に等しいものを当該質点に係る角運動量積と定義してもよい。また、各変位次元補正用モデルの、イナーシャを持つリンクに係る角運動量積は、そのリンクの姿勢角の、該リンクに対応する基準姿勢角からのずれと該リンクのイナーシャとの積に相当するものである。なお、この場合、リンクの姿勢角の基準姿勢角からのずれとイナーシャとの積に比例関係を有するもの、あるいは該積に近似的に等しいものを当該リンクに係る角運動量積と定義してもよい。
また、各変位次元補正用モデルの質点に係る角運動量積について補足すると、任意の質点に係る角運動量積は、質点と前記所定の点Qとを結ぶ線分と、その質点に対する基準点と前記所定の点Qとを結ぶ線分とのなす角度に対して単調に変化する関数(単調増加関数または単調減少関数)となる。
このように角運動量積を定義したとき、条件2は、より詳しく言えば、第1変位次元補正用モデルの各質点の位置を、第2変位次元補正用モデルの各質点に対応する基準位置とし、また、第1変位次元補正用モデルのイナーシャをもつ各リンクの姿勢角を、第2変位次元補正用モデルのイナーシャを持つ各リンクの基準姿勢角としたときの、第2変位次元補正用モデルの角運動量積の総和がある一定値になる、という条件である。
また、別の言い方をすれば、条件2は、第1変位次元補正用モデルの各質点の位置とこれに対応する第2変位次元補正用モデルの質点の位置との差(位置ベクトルの差)のベクトルを該質点の並進加速度とみなし、また、両変位次元補正用モデルのイナーシャをもつ各リンクの姿勢角の差を該リンクの角加速度とみなしたときに、各質点が発生する慣性力の並進力成分が点Qのまわりに作用するモーメントとイナーシャをもつ各リンクの慣性力(回転運動の慣性力)が点Qまわりに作用するモーメントとの総和がある一定値(所定値)になる、という条件と等価である。
そして、本明細書で詳説する参考例及び実施形態では、上記点Qは例えば目標ZMPに設定される。なお、点Qは、目標ZMPに限られるものではないが、これについては後に補足する。また、必ずしも上記条件1,2の両者を満たす必要はないが、これについても後に補足する。
本明細書の参考例及び実施形態では、上記した如く、第2変位次元補正用モデルの各質点の位置(イナーシャを持つ場合には、各質点の位置とイナーシャをもつ各リンクの姿勢角)を決定することで、単純化モデル歩容の目標上体位置姿勢を補正してなる変位次元補正上体位置姿勢が求められる。前記図6のフローチャートのS024の処理は、上記の如く変位次元補正上体位置姿勢を求める処理である。
以下、第1参考例でのS024のサブルーチン処理を図10を参照して具体的に説明する。なお、ここでは、本明細書の参考例及び実施形態の理解の便宜上、サジタルプレーン(X軸、Z軸を含む平面)上での上体位置姿勢の補正(変位次元補正上体位置姿勢の算出)について説明し、ラテラルプレーン(Y軸、Z軸を含む平面)上での上体位置姿勢の補正に関しては省略する。
まず、S200において、現在時刻tでの単純化モデル歩容の瞬時値(目標上体位置姿勢などの目標運動の瞬時値)を基に、第1変位次元補正用モデルの各質点A1〜A5の位置と、イナーシャをもつ上体3(上体リンク)の姿勢角とを求める。つまり、単純化モデル歩容の瞬時値から、前記幾何学的拘束条件(1)に従って、第1変位次元補正用モデルの要素の配置を求める。具体的には、単純化モデル歩容でのロボット1の全体重心の位置と、第1変位次元補正用モデル上でのロボット1の全体重心の位置とが等しくなるように第1変位次元補正用モデルの各質点A1〜A5の位置が決定される。この場合、本参考例では、単純化モデル歩容でのロボット1の全体重心の位置は、単純化モデルの上体質点3mの位置に一致するので、その位置は、単純化モデル歩容の目標上体位置姿勢から一義的に定まる。そして、第1変位次元補正用モデルでは、前記した通り各質点A1〜A5の相対的位置関係が拘束されているので、それらの質点A1〜A5の全体重心の位置(第1変位次元補正用モデルでのロボット1の全体重心の位置)を単純化モデルの上体質点3mの位置に一致させることで、各質点A1〜A5の位置が一義的に決定されることとなる。また、第1変位次元補正用モデルの上体リンクの姿勢角は、単純化モデル歩容の上体姿勢角(本参考例では鉛直姿勢)と同一とされる。
次いで、S202からの処理が実行され、第1変位次元補正用モデルに対して前記条件1、2を満たすような第2変位次元補正用モデルの各質点A1〜A5の位置と、イナーシャをもつ上体3(上体リンク)の姿勢角との組、すなわち、第2変位次元補正用モデルの要素の配置が探索的に決定される。そして、その配置における上体質点A1および上体リンクの姿勢に対応するロボット1の上体位置および姿勢が、それぞれ変位次元補正上体位置Pb2および変位次元補正上体姿勢θb2として決定される。
さらに詳細には、まず、S202において、変位次元補正上体位置Pb2および変位次元補正上体姿勢θb2の初期候補(Pb2_s,θb2_s)を決定する。初期候補(Pb2_s,θb2_s)は、今回時刻t(現在時刻t)での変位次元補正上体位置Pb2および変位次元補正上体姿勢θb2の概略的な予想値に相当するものであり、例えば次のように決定される。すなわち、今回時刻tでの変位次元補正上体位置Pb2と単純化モデル歩容の上体位置Pbとの差分(位置のずれ量)は、前回時刻(前回の制御周期の時刻)t−ΔtでのPb2とPbとの差分に近いと考えられる。同様に、今回時刻tでの変位次元補正上体姿勢θb2と単純化モデル歩容の上体姿勢θbとの差分(姿勢角のずれ量)は、前回時刻t−Δtでのθb2とθbとの差分に近いと考えられる。そこで、初期候補(Pb2_s,θb2_s)を、今回時刻tでのPb,θbと、前回時刻t−ΔtでのPb,θbの値Pb_p,θb_pと、前回時刻t−ΔtでのPb2,θb2の値Pb2_p,θb2_pとから次式により決定する。
Pb2_s=Pb+(Pb2_p−Pb_p) …式04
θb2_s=θb+(θb2_p−θb_p) …式05
次いで、S204を経て、S206〜S216のループ処理を実行する。S206では、変位次元補正上体位置姿勢の現在の候補(Pb2_s,θb2_s)と、今回時刻tでの単純化モデル歩容の目標両足平位置姿勢とを基に、第2変位次元補正モデルでの各質点A1〜A5の位置を求める。この場合、第2変位次元補正用モデルでのロボット1の上体3の位置姿勢が現在の候補(Pb2_s,θb2_s)に一致し、且つ、第2変位次元補正用モデルでのロボット1の各足平22の位置姿勢が単純化モデル歩容の目標足平位置姿勢に一致しているとして、各質点A1〜A5の位置が求められる。別の言い方をすれば、単純化モデル歩容の運動瞬時値のうちの、上体位置姿勢の瞬時値のみを候補(Pb2_s,θb2_s)で置き換えた運動瞬時値から、前記幾何学的拘束条件(2)に従って、第2変位次元補正用モデルにおける各質点A1〜A5の位置が求められる。
具体的には、足平質点A3,A4の位置は、目標足平位置姿勢から決定される。また、上体質点A1の位置は、候補(Pb2_s,θb2_s)から決定され、上体3(上体リンク)の姿勢角はθb2_sと同一とされる。そして、各大腿質点A2,A3の位置は、目標両足平位置姿勢と候補(Pb2_s,θb2_s)とから定まるロボット1の各脚体2の姿勢から決定される。補足すると、前記したように本明細書の参考例及び実施形態のロボット1では、各脚体2はそれぞれ6自由度を有するので、両足平22,22および上体3の位置姿勢が定まれば、各脚体2の各部の位置姿勢も一義的に定まる。従って、第2変位次元補正用モデルの上体質点A1の位置、上体リンクの姿勢角、両足平質点A4,A5の位置が定まれば、各大腿質点A2,A3の位置が一義的に定まる。
次いで、S208に進み、第1変位次元補正用モデルと第2変位次元補正用モデルとの間での全体重心の位置のずれGc_err(以下、モデル間全体重心ずれGc_errという)と、第1変位次元補正用モデルに対する第2変位次元補正用モデルの角運動量積の総和L_errのずれ量(以下、モデル間角運動量積ずれL_errという)とを求める。この処理を以下により具体的に説明する。なお、以下の説明では、第1および第2変位次元補正用モデルの各質点A1〜A5の質量をそれぞれmi(i=1,2,…,5)、位置(位置ベクトル)をPi1もしくはPi2(i=1,2,…,5)で表す。Pi1は第1変位次元補正用モデルの質点Aiの位置、Pi2は第2変位次元補正用モデルの質点Aiの位置である。また、第1および第2変位次元補正用モデルでの上体3(上体リンク)の姿勢角をそれぞれθb1、θb2で表す。本参考例では、θb1は、単純化モデル歩容の目標上体姿勢θb(鉛直姿勢)と同一である。
モデル間全体重心ずれGc_errおよびモデル間角運動量積ずれL_errは、それぞれ例えば次式06,07により算出される。
Gc_err=Σ(mi*(Pi2−Pi1)) …式06
L_err=Σ(mi*(Pi1−Q)*(Pi2−Pi1))+Ib*(θb2−θb1)+Const …式07
ここで、これらの式のΣはそれに続く括弧内の部分の、全ての質点Ai(i=1,2,…,5)についての総和を意味する。また、式07の「Const」は、あらかじめ定めた所定値であり、前記条件2における「一定値」(所定値)に相当するものである。また、式07のQは、本参考例では、単純化モデル歩容の目標ZMPの位置と同一である。
これらの式06,07において、式06の右辺は、第1変位次元補正用モデルの各質点A1〜A5の位置Pi1(i=1,2,…,5)により定まる全体重心の位置と第2変位次元補正用モデルの各質点A1〜A5の位置Pi2(i=1,2,…,5)全体重心の位置とのずれを意味している。従って、モデル間全体重心ずれGc_errの値が0(0ベクトル)もしくはほぼ0であれば、前記条件1が満たされることとなる。
また、式07の右辺から「Const」を除いた項は、第1変位次元補正用モデルに対する第2変位次元補正用モデルの角運動量積の総和を意味する。別の言い方をすれば、式07の右辺から「Const」を除いた項は、第1変位次元補正用モデルの各質点A1〜A5の位置Pi1(i=1,2,…,5)を第2変位次元補正用モデルの各質点A1〜A5の基準位置とし、且つ、第1変位次元補正用モデルの上体3(上体リンク)の姿勢角を、第2変位次元補正用モデルの上体3(上体リンク)の基準姿勢角としたときの、第2変位次元補正用モデルの角運動量積の総和を意味する。
従って、モデル間角運動量積ずれL_errの値が常に0もしくはほぼ0であれば前記条件2が満たされることとなる。
ここで式07の右辺のΣに続く括弧内の項について補足すると、(Pi1−Q)*(Pi2−Pi1)は、点Qと質点Aiとを結ぶ線分のベクトルと、第1変位次元補正用モデルの質点Aiに対する第2変位次元補正用モデルの質点Aiの位置ずれのベクトルとの外積である。それを視覚的に表現すれば、(Pi1−Q)*(Pi2−Pi1)は、図11に示す如く、斜線もしくは網掛けを付した各三角形の面積の2倍の大きさの量に相当する。なお、図11では、第1および第2変位次元補正用モデルのそれぞれにおける質点Ai(i=1,2,…,5)の位置Pi1,Pi2をPi1(Ai),Pi2(Ai)というように記載している。
また、角運動量積に関する式07に関しては、これの代わりに、次式08〜10のいずれかを用いてもよい。
L_err=Σ(Ci*mi*角度(Pi1_Q_Pi2))+Ib*(θb2−θb1)+Const …式08
L_err=Σ(mi*(質点Aiの水平成分変位*高さ))
+Ib*(θb2−θb1)+Const …式09
L_err=Σ(mi*(質点Aiの水平成分変位*高さ)*C(質点Aiの高さ))
+Ib*(θb2−θb1)+Const …式10
ここで、式08中の「角度(Pi1_Q_Pi2)」は、第1変位次元補正用モデルの質点Aiと点Qとを結ぶ線分と、第2変位次元補正用モデルの質点Aiと点Qとを結ぶ線分とのなす角度を意味する。また、式08中の「Ci」は所定の係数であり、その値は、Ci*mi*角度(Pi1_Q_Pi2)が、両変位次元補正用モデルの質点Aiと点Qとで形成される三角形の面積の2倍にほぼ等しくなるように決定される。また、式09および10における「質点Aiの水平成分変位」は、第1変位次元補正用モデルの質点Aiと第2変位次元補正用モデルの質点Aiとの位置ずれ(Pi2−Pi1)の水平成分を意味し、「高さ」は第1または第2変位次元補正用モデルの質点Aiの点Qに対する相対高さ、すなわち、Pi1−QまたはPi2−Qの鉛直成分を意味する。また、式10の「C(質点Aiの高さ)」は、第1または第2変位次元補正用モデルの質点Aiの点Qに対する相対高さ(Pi1−QまたはPi2−Qの鉛直成分)のある関数値を意味する。この場合、関数値C(質点Aiの高さ)は、基本的には、質点Aiの高さが高いほど、値が小さくなるような単調関数であることが好適である。
角運動量積に関する上記式07〜10のいずれを用いても、その式の右辺の「Const」を除いた項は、角運動量積の総和にほぼ比例するかもしくは概ね等しいものとなる。なお、式07〜10の「Const」は一般には互いに相違する。
補足すると、前記式07〜10の右辺のΣに続く各項は、第1変位次元補正用モデルの質点Aiと点Qとを結ぶ線分と、第2変位次元補正用モデルの質点Aiと点Qとを結ぶ線分とのなす角度(Pi1_Q_Pi2)に対してほぼ単調に変化する関数となる。
本参考例では、S208において、前記式6のPi1にS200で求めた第1変位次元補正用モデルの各質点A1〜A5の位置を代入すると共に、同式6のPi2にS206で求めた各質点A1〜A5の位置を代入することで、モデル間重心位置ずれGc_errが算出される。また、前記式7のPi1,Pi2を式6と同じにすると共に、θb1にS200で求めた上体姿勢(本参考例では鉛直姿勢)を代入し、さらに、θb2に変位次元補正上体姿勢の候補の現在値θb2_sを代入することで、モデル間角運動量積ずれLc_errが算出される。
上述のようにS208において、モデル間全体重心ずれGc_errとモデル間角運動量積ずれL_errを求めた後、S210に進んで、Gc_errとL_errとが0近傍の所定の範囲内にあるか否かが判断される。そして、この判断結果がYESである場合には、S212を経て、後述のS218に進む。一方、その判断結果がNOである場合には、S214に進んで、変位次元補正上体位置姿勢の現在の候補(Pb2_s,θb2_s)の近辺に複数の仮候補(Pb2_s+ΔPbx,θb2_s)、(Pb2_s+ΔPbz,θb2_s)、(Pb2_s,θb2_s+Δθb)を決める。ΔPbx、ΔPbzはそれぞれ変位次元補正上体位置の候補Pb2_sを現在値からX軸方向、Z軸方向に微小量変化させるための所定値であり、Δθbは変位次元補正上体姿勢の候補θb2を現在値からY軸まわりに微小量変化させるための所定値である。そして、これらの各仮候補に対して、前記S206、S208と同じ処理を実行して、モデル間全体重心ずれGc_errとモデル間角運動量積ずれL_errとを求める。この処理は、変位次元上体位置姿勢の候補(Pb2_s,θb2_s)を現在値から変化させたときのGc_errとL_errとの変化の度合いを観測するための処理である。
次いで、S216に進んで、S214で求めたGc_err、L_errを基に、それらの値が0に近づくように変位次元補正上体位置姿勢の新たな候補を決定し、それを(Pb2_s,θb2_s)に代入する。新たな候補は、例えばヤコビアン(感度マトリクス)を用いて決定される。そして、S206からの処理が再び実行される。
以上のようにして、S206〜S216のループ処理によって、Gc_errとL_errとが0近傍の所定の範囲内に収まるような変位次元補正上体位置姿勢、換言すれば、前記条件1,2を満たすような変位次元補正上体位置姿勢が探索的に求められる。
そして、S210の判断結果がYESになると、S212を経てS218に進み、現在の(Pb2_s,θb2_s)が今回時刻tにおける変位次元補正上体位置姿勢(Pb2,θb2)として決定される。これにより、単純化モデル歩容の上体位置姿勢を補正してなる目標歩容(以下、変位次元補正歩容ということがある)が得られることとなる。この変位次元補正歩容は、単純化モデル歩容のうちの、目標上体位置姿勢のみを補正したものであり、目標足平位置姿勢、目標ZMP、目標床反力鉛直成分など、目標歩容の他の構成要素は単純化モデル歩容と同一である。
ここで、前記変位次元補正歩容について図12〜図14を参照して補足説明をしておく。図12は第2変位次元補正用モデルの各質点Ai(i=1,2,…,5)の位置および上体3(上体リンク)の姿勢角を単純化モデル歩容通りに決定した場合(すなわち単純化モデル歩容を前記S024で補正しない場合)における第2変位次元補正用モデルの各質点Aiの位置および上体3(上体リンク)の姿勢角と、第1変位次元補正用モデルの各質点Aiの位置および上体3(上体リンク)の姿勢角との関係を例示している。この場合の第2変位次元補正用モデルの各質点Aiの位置および上体3の姿勢角、すなわち、第2変位次元補正用モデルの要素の配置は、別の言い方をすれば、単純化モデル歩容の瞬時運動から、前記幾何学的拘束条件(2)に従って決定されたものと言える。なお、前記図12では、単純化モデル歩容に対応する第2変位次元補正用モデルの各質点Ai(i=1,2,…,5)の位置をPi2'(Ai)で表している。
また、図13は上記した変位次元歩容補正サブルーチンによって決定される変位次元補正歩容に対応する第2変位次元補正用モデルの各質点Aiの位置および上体3(上体リンク)の姿勢角と、第1変位次元補正用モデルの各質点Aiの位置および上体3(上体リンク)の姿勢角との関係を例示している。
なお、以降の説明では、一般に、第1変位次元補正用モデルの任意のある質点と、これに対応する第2変位次元補正用モデルの該質点との位置ずれを並進加速度とみなしたときのその並進加速度を、その質点のモデル間擬似並進加速度という。また、第1変位次元補正用モデルのイナーシャをもつあるリンクと、これに対応する第2変位次元補正用モデルの該リンクの姿勢角のずれを角加速度とみなしたときのその角加速度を、そのリンクのモデル間擬似角加速度という。
図12に示す例において、単純化モデル歩容に対応する第2変位次元補正用モデルの各質点Aiの位置Pi2'では、両脚体2,2の質点A2〜A5のうち、支持脚側の質点A2,A4は、第1変位次元補正用モデルに対して若干、ロボット1の前方側に位置ずれする。また、第2変位次元補正用モデルの遊脚側の質点A3,A5は、第1変位次元補正用モデルに対して比較的大きくロボット1の後方側に位置ずれする。このため、第2変位次元補正用モデルでのロボット1の全体重心が第1変位次元補正用モデルでのロボット1の全体重心(これは本参考例では単純化モデル歩容でのロボット1の全体重心に一致する)よりもロボット1の後方側(X軸の負方向)に偏る。別の言い方をすれば、両脚体2,2の各質点A2〜A5のモデル間擬似並進加速度によって各質点A2〜A5が発生する慣性力の並進力成分(=各質点A2〜A5の質量*モデル間擬似並進加速度)の総和がロボット1の前方側に比較的大きなものとなる。また、各質点A2〜A5のモデル間擬似並進加速度によって各質点A2〜A5が発生する慣性力が目標ZMPまわりに作用するモーメントが、ロボット1の前傾側に比較的大きなものとなる。なお、本参考例では、単純化モデル歩容の上体姿勢と第1変位次元補正用モデルの上体姿勢とは同一であるので、図12の例では、上体質点A1のモデル間擬似並進加速度は0であり、また、上体リンクのモデル間擬似角加速度も0である。
これに対して、前記変位次元歩容補正サブルーチンで変位次元補正歩容に対応する第2変位次元補正用モデルの各質点Aiの位置および上体リンクの姿勢角を決定したときには、図13に見られるように、両脚体2,2の質点A2〜A5の重心の上記の偏りを補償するようにして、第2変位次元補正用モデルの上体質点A1の位置が、第1変位次元補正用モデルの上体質点A1よりも前方側に決定され、換言すれば、変位次元補正上体位置が単純化モデル歩容よりも前方側に補正される。同時に、第2変位次元補正用モデルの各質点A1〜A5の位置並びにイナーシャをもつ上体3の姿勢は、前記した角運動量積の総和がある一定値になるように決定される。図示の例では、第2変位次元補正用モデルでの上体姿勢(実線で示す上体3の姿勢)は、単純化モデル歩容の上体姿勢(破線で示す上体3の姿勢)に対して、角度θb2−θb1だけ後傾している。
このため、変位次元補正歩容に対応する第2変位次元補正用モデルの各質点Aiの位置および上体リンクの姿勢角では、各質点Aiのモデル間擬似並進加速度に伴う慣性力の並進力成分の総和が図12に示した場合よりも小さくなって、ほぼ0になると共に、該慣性力が目標ZMPまわりに作用するモーメントの総和も図12に示した場合よりも所定の値(前記条件2の「一定値」に相当する値)に近づく。
これにより、変位次元補正歩容は、単純化モデル歩容では考慮されていない各脚体の運動に伴う慣性力の影響を補償して、単純化モデル歩容の目標床反力と同じような床反力が発生するようにロボット1の目標運動を補正したものとなる。
また、図14は、単純化モデル歩容に対する変位次元補正歩容の変化の形態の典型的な例を示している。これは、より詳しくは、ロボット1の直立姿勢状態から目標ZMPを動かさずに両脚体2,2の膝関節を曲げて、上体3を下げる場合の例であり、図14(a)は、ロボット1の直立姿勢状態、図14(b)は膝関節を曲げて上体3を下げた状態(膝曲げ状態)を示している。ロボット1の直立姿勢状態では、単純化モデル歩容と変位次元補正歩容とはほぼ一致し、ひいては、図14(a)に示す如く、第1および第2変位次元補正用モデルの各質点Ai(i=1,2,…,5)の位置Pi1,Pi2および上体3の姿勢は、両変位次元補正用モデルでほぼ一致する。
この状態から、目標ZMPを維持したまま上体3を下げるような歩容を生成するとき、単純化モデル歩容は、両足平22の位置姿勢を維持すると共に、上体3の姿勢を直立姿勢(鉛直姿勢)に維持したまま、上体3を下げる歩容となる。従って、第1変位次元補正用モデルでの各質点Aiの位置Pi1は、それらの位置関係を維持したまま図14(a)の位置から下がる。そして、このとき、両脚体2,2の膝関節がロボット1の前方側に突き出ることに対応して、第2変位次元補正用モデルでは、その大腿質点A2,A3の位置P22,P32が、第1変位次元補正用モデルの大腿質点A2,A3の位置P21,P31よりも図14(b)に示す如くロボット1の前方側の位置になる。このため、両変位次元補正用モデルで全体重心を一致させるべく(前記条件1を満たすべく)、第2変位次元補正用モデルの上体質点A1の位置P12は、第1変位次元補正用モデルの上体質点A1の位置P11よりも後方側の位置になる。別の言い方をすれば、両大腿質点A2,A3のモデル間擬似並進加速度に伴う慣性力の並進力成分を、上体質点A1のモデル間擬似並進加速度に伴う慣性力の並進力成分によって打ち消すようにして、第2変位次元補正用モデルの上体質点A1の位置P12は、第1変位次元補正用モデルの上体質点A1の位置P11よりも後方側の位置になる(脚体2,2の上体3への連結部(股関節)が後方側に移る)。
また、このとき、仮に上体3の姿勢を維持すると、第1変位次元補正用モデルと第2変位次元補正用モデルとの間で前記モデル間角運動量積ずれL_errが発生する。この場合、このモデル間角運動量積ずれは、図14(b)に斜線を付した2つの三角形の面積の差分の2倍に相当するものとなるので、このずれを解消すべく(前記条件2を満たすべく)、第2変位次元補正モデルでの上体姿勢(図14(b)に実線で示す上体3の姿勢)、すなわち変位次元補正歩容の上体姿勢は、第1変位次元補正モデルでの上体姿勢(図14(b)に破線で示す上体3)、すなわち、単純化モデル歩容の上体姿勢に対して前傾側に傾く。別の言い方をすれば、両大腿質点A2,A3および上体質点A1のモデル間擬似並進加速度に伴う慣性力が目標ZMPまわりに作用するモーメントを、上体リンクのモデル間擬似角加速度に伴う慣性力が目標ZMPまわりに作用するモーメントを打ち消すようにして、第2変位次元補正歩容の上体姿勢は、単純化モデル歩容の上体姿勢に対して前傾側に傾く。
一般的にいえば、各脚体2の膝関節が、該脚体2の股関節の中心と足首関節の中心とを結ぶ線分に対してロボット1の前方側に突き出るほど、第2変位次元補正用モデルの上体質点A1の位置は、ロボット1の後方側に移動し、また、上体3(上体リンク)は前傾側に傾く。
このように単純化モデル歩容に対して運動(上体位置姿勢)を修正した変位次元補正歩容が決定されることで、目標ZMPまわりの床反力モーメントの水平成分が0になること等の動力学的平衡条件を単純化モデル歩容と同じように満たしつつ、単純化モデル歩容よりも動力学的精度の高い変位次元補正歩容が決定されることとなる。
図9の説明に戻って、前述の如く変位次元歩容補正サブルーチンを実行した後、S026に進んで、ロボット1のスピン(鉛直軸まわりの回転)をキャンセルするための腕体5,5の動作が決定される。この処理は、ロボット1の腕体5,5を振らずに目標歩容通りにロボット1を運動させた場合に目標ZMPまわりに発生する床反力モーメントの鉛直成分と逆向きの床反力モーメントを腕体5,5の腕振り(両腕体5,5を前後逆方向に振る運動)によって発生させるように腕体5,5の姿勢を決定するものであり、前記公報文献1の図13のS034と同様に行われる。その詳細は、同公報文献1に記載されているので、ここではさらなる説明を省略する。
次いで、S028に進んで、フルモデル補正用(前記フルモデル補正部100eの処理用)のZMP許容範囲の瞬時値と、床反力水平成分許容範囲の瞬時値とが決定される。これは、前記目標瞬時値発生部100bで実行される処理であり、前記S020で決定した今回歩容パラメータのうちのZMP許容範囲および床反力水平成分許容範囲を規定する歩容パラメータに基づいて決定される。
次いで、S030に進んで、フルモデルを用いた補正歩容を発生する。この処理は、前記フルモデル補正部100eにより実行される処理である。この処理は、前記公報文献1の図13のS038の処理と同一であり、同公報文献1に記載されたとおりに実行される。従って、本明細書では詳細な説明は省略する。この処理により、目標上体位置姿勢(前記変位次元補正歩容の上体位置姿勢)をさらに修正してなる補正目標上体位置姿勢と補正目標床反力モーメントとが決定される。
なお、前記フルモデル補正部100eで用いるフルモデルは、例えば図15に示す如く、ロボット1の上体3、各脚体2の股関節、大腿リンク、下腿リンク、足首関節、足平22にそれぞれ質点をもち、また、上体3(上体リンク)にイナーシャIbを持つような多質点モデルである。この場合、上体3以外のリンクにもイナーシャを設定するようにしてもよい。
以上が、本参考例における歩容生成装置100の歩容生成処理である。
次に図4を参照して複合コンプアライアンス制御装置101の動作を説明しておく。なお、複合コンプライアンス制御装置101の動作は、本出願人が先に出願した特開平10−277969号公報などに詳細に記載されているので、本明細書では概略的な説明にとどめる。歩容生成装置100において、上記したように生成された目標歩容のうち、補正目標上体位置姿勢(軌道)、目標腕姿勢(軌道)が、ロボット幾何学モデル(逆キネマティクス演算部)102に送出される。
また、目標足平位置姿勢(軌道)、目標ZMP軌道(目標全床反力中心点軌道)、および目標全床反力(軌道)(補正目標床反力モーメントと目標床反力鉛直成分)は、複合コンプライアンス動作決定部104に送られると共に、目標床反力分配器106にも送られる。そして、目標床反力分配器106で、床反力は各足平22に分配され、目標各足平床反力中心点および目標各足平床反力が決定される。この決定された目標各足平床反力中心点および目標各足平床反力は複合コンプライアンス動作決定部104に送られる。
複合コンプライアンス動作決定部104から、機構変形補償付き修正目標足平位置姿勢(軌道)がロボット幾何学モデル102に送られる。なお、機構変形補償付き修正目標足平位置姿勢は、各脚体2のコンプライアンス機構72の変形(各脚体2に作用する床反力による変形)を考慮しつつ、6軸力センサ50により検出される実際の床反力を目標床反力に近づけるように各足平22の目標足平位置姿勢を補正したものを意味する。ロボット幾何学モデル102は、目標上体位置姿勢(軌道)と機構変形補償付き修正目標足平位置姿勢(軌道)とが入力されると、それらを満足する脚体2,2の12個の関節の関節変位指令(値)を算出して変位コントローラ108に送る。変位コントローラ108は、ロボット幾何学モデル102で算出された関節変位指令(値)を目標値としてロボット1の12個の関節の変位を追従制御する。また、ロボット幾何学モデル102は、目標腕姿勢を満足する腕関節の変位指令(値)を算出して変位コントローラ108に送る。変位コントローラ108は、ロボット幾何学モデル102で算出された関節変位指令(値)を目標値としてロボット1の腕体の12個の関節の変位を追従制御する。
ロボット1に生じた床反力(詳しくは実各足床反力)は6軸力センサ50によって検出される。その検出値は前記複合コンプライアンス動作決定部104に送られる。また、ロボット1に生じた姿勢傾斜偏差θerrx,θerry(詳しくは目標上体姿勢角に対する実上体姿勢角の偏差で、ロール方向(X軸回り)の姿勢傾斜偏差がθerrxであり、ピッチ方向(Y軸回り)の姿勢傾斜偏差がθerryである)が姿勢センサ54を介して検出され、その検出値は姿勢安定化制御演算部112に送られる。この姿勢安定化制御演算部112で、ロボット1の上体姿勢角を目標上体姿勢角に復元するための目標全床反力中心点(目標ZMP)まわり補償全床反力モーメントが算出されて複合コンプライアンス動作決定部104に送られる。複合コンプライアンス動作決定部104は、入力値に基づいて目標床反力を修正する。具体的には、目標全床反力中心点(目標ZMP)回りに補償全床反力モーメント、あるいは、補償全床反力モーメントと補正目標床反力モーメントとの和が作用するように目標床反力を修正する。
複合コンプライアンス動作決定部104は、修正された目標床反力に、センサ検出値などから算出される実ロボットの状態および床反力を一致させようと上記機構変形補償付き修正目標足平位置姿勢(軌道)を決定する。ただしすべての状態を目標に一致させることは事実上不可能であるので、これらの間にトレードオフ関係を与えて妥協的になるべく一致させる。すなわち、各目標に対する制御偏差に重みを与えて、制御偏差(あるいは制御偏差の2乗)の重み付き平均が最小になるように制御する。これにより、実際の足平位置姿勢と全床反力とが目標足平位置姿勢と目標全床反力(目標ZMPまわりの補償全床反力モーメントを含む)とに概ね従うように制御される。
[第2参考例]
次に、本発明の第2参考例を説明する。本参考例は、ロボット1の機構的構成および制御ユニット60の機能的構成(前記図4に示した機能的構成)は第1参考例と同一で、単純化モデルおよび第1変位次元補正用モデルと、歩容生成装置100の処理の一部とが第1参考例と相違するものである。従って、本参考例の説明では、第1参考例と同一部分については第1参考例と同じ符号および図面を用い、詳細な説明を省略する。
図16は、本参考例での単純化モデル(動力学モデル)の構造を示し、図17は本参考例での第1変位次元補正用モデルの構造を示している。
図16に示す本参考例の単純化モデルは、ロボット1の各脚体2(詳しくは各脚体2の足平22)にそれぞれ対応する2つの足平質点2m2,2m2、及び上体3に対応する上体質点3m2からなる3質点と、イナーシャJがあって質量のないフライホイールFHとから構成されるモデルであり、前記公報文献1の図11に示したモデルと同一である。従って、本明細書での詳細な説明は省略するが、その概要は次の通りである。
すなわち、この単純化モデルでは、各足平質点2m2,2m2の動力学(運動と床反力との関係)、並びに上体質点3m2及びフライホイールFHの動力学が相互に非干渉に構成されると共に、ロボット1全体の動力学は、それらの線形結合で表される。また、フライホイールFHの回転運動によって発生する床反力は、上体3の姿勢角の回転運動(並進床反力を変化させずに、床反力モーメントだけを変化させる回転運動)によって発生する床反力に対応する。なお、上体質点3m2は、上体3の位置姿勢に対応して一義的に定まる点(上体3に任意に固定されたローカル座標系上でのある固定点)に設定されており、各脚質点2m2は、各脚体2の足平22の位置姿勢に対応して一義的に定まる点(足平22に任意に固定されたローカル座標系上でのある固定点)に設定されている。また、各質点2m2,2m2,3m2の質量の総和は、ロボット1の総質量と同一である。上体質点3m2の質量は、上体3の質量のほか、両腕体5,5の質量を含んでいる。
この単純化モデルの動力学を記述する式(運動方程式)は、以下の式11〜13により表される。但し、本明細書の理解の便宜上、ここではサジタルプレーン(前後軸(X軸)と鉛直軸(Z軸)を含む平面)での運動方程式のみを記述し、ラテラルプレーン(左右軸(Y軸)と鉛直軸(Z軸)を含む平面)での運動方程式は省略する。また、式11〜13の変数は以下のように定義する。
Zsup:支持脚足平質点鉛直位置、Zswg:遊脚足平質点鉛直位置、Zb:上体質点鉛直位置、Xsup:支持脚足平質点水平位置、Xswg:遊脚足平質点水平位置、Xb:上体質点水平位置、θby:鉛直方向に対するY軸回りの上体姿勢角、mb:上体質点質量、msup:支持脚足平質点質量、mswg:遊脚足平質点質量、J:フライホイールの慣性モーメント、Fx:床反力水平成分、Fz:床反力鉛直成分、My:目標ZMPまわりの床反力モーメント(詳しくは床反力モーメントの左右軸(Y軸)まわり成分)
Fz=mb*(g+d2Zb/dt2)+msup*(g+d2Zsup/dt2)
+mswg*(g+d2Zswg/dt2) ……式11
Fx=mb*d2Xb/dt2+msup*d2Xsup/dt2+mswg*d2Xswg/dt2 ……式12
My=−mb*(Xb−Xzmp)*(g+d2Zb/dt2)+mb*(Zb−Zzmp)*(d2Xb/dt2)
−msup*(Xsup−Xzmp)*(g+d2Zsup/dt2)
+msup*(Zsup−Zzmp)*(d2Xsup/dt2)
−mswg*(Xswg−Xzmp)*(g+d2Zswg/dt2)
−mswg*(Zswg−Zzmp)*(d2Xswg/dt2)+J*d2θby/dt2
…式13
かかる単純化モデルを用いる第2参考例では、後述する如く、前記公報文献1と全く同様に、目標ZMPを満足する単純化モデル歩容が生成される。
次に、図17を参照して本参考例の第1変位次元補正用モデルを説明すると、このモデルは、上体3、各脚体2の大腿リンク、足平22にそれぞれ対応する上体質点A1、大腿質点A2,A3、足平質点A4,A5からなる5質点モデルである。また、ロボット1の上体3(上体リンク)が、上体質点A1のまわりにイナーシャ(慣性モーメント)Ibをもつものとされている。つまり、本参考例の第1変位次元補正用モデルは、第1参考例の第1および第2変位次元補正用モデルと同様、質点A1〜A5とイナーシャをもつ上体リンクとを要素として構成されている。
この場合、上体質点A1、各足平質点A4,A5は、前記第1参考例の第1もしくは第2変位次元補正用モデルのものと同様、それぞれに対応する部位(上体3、各足平22)の位置姿勢に対応して一義的に定まる点(その対応する部位に任意に固定設定したローカル座標系でのある固定点)に設定されている。なお、上体質点A1、各足平質点A4,A5および各大腿質点A2,A3の質量の総和は、ロボット1の総質量mtotalと一致する。また、上体質点A1の質量は、上体3の質量のほか、両腕体5,5および頭部4の質量を含んでいる。
そして、本参考例においても第1変位次元補正用モデルの要素の配置には、ある幾何学的拘束条件が設定されている。具体的には、この第1変位次元補正用モデルでは、ロボット1の各脚体2の膝関節を、該脚体2の足首関節の中心と股関節の中心とを結ぶ線分の方向にのみ伸縮する直動型(テレスコピック型)の関節とみなしており、各大腿質点A2,A3は、対応する脚体2の足首関節の中心と股関節の中心とを結ぶ線分の内分点に設定されている。その内分点は、該内分点から足首関節の中心までの距離と股関節の中心までの距離との比率が所定の比率となるような点であり、各脚体2を直線状に延ばしたときの膝関節の近傍の点(例えば、該膝関節の中心よりも若干、大腿リンク24寄りの点)である。従って、本参考例での第1変位次元補正用モデルでは、大腿質点A2,A3が対応する脚体2の足首関節の中心と股関節の中心とを結ぶ線分の内分点に拘束されている。
なお、大腿質点A2,A3は、上記内分点から上記線分と直角な方向に所定の距離だけオフセットした点に設定してもよい。言い換えると、上記線分から所定の距離だけ離れた、該線分に平行な直線上に各大腿質点A2,A3を設定してもよい。
また、この第1変位次元補正用モデルの各質点A1〜A5のグローバル座標系上での位置、並びに上体3(上体リンク)の姿勢角は、単純化モデル歩容の運動の瞬時値に対応して幾何学的に定まるものとされている。より具体的には、本参考例の第1変位次元補正用モデルの上体質点A1のグローバル座標系での位置は、単純化モデル歩容の上体位置姿勢に対応する位置に決定され、各足平質点A4,A5のグローバル座標系での位置は、単純化モデル歩容の各足平位置姿勢に対応する位置に決定される。さらに、上体リンクの姿勢角は、単純化モデル歩容の上体姿勢と同一とされる。そして、各大腿質点A2,A3のグローバル座標系上での位置は、単純化モデル歩容の上体位置姿勢と各足平位置姿勢を基に定まる前記の内分点の位置に決定される。すなわち、ロボット1の上体位置姿勢および各足平位置姿勢に対応して、各脚体2の各股関節および各足首関節の中心点のグローバル座標系での位置が一義的に定まるので、各脚体2の股関節の中心点および足首関節の中心点を結ぶ線分の内分点としての各大腿質点A2,A3のグローバル座標系での位置が定まる。
また、第2参考例の第1変位次元補正用モデルでは、その質点A1〜A5の全体重心が単純化モデル上でのロボット1の全体重心の位置、すなわち、単純化モデルの全ての質点2m2,2m2,3m2の重心の位置に一致するように前記内分点に係る所定の比率と、質点A1〜A5の質量比とが決定されている。
ここで、第2参考例で上記のように第1変位次元補正用モデルの要素の配置を定めるということは、第1変位次元補正用モデルの要素の配置(グローバル座標系での質点A1〜A5の位置および上体リンクの姿勢)を定めるための幾何学的拘束条件(3)を次のように定義したとき、単純化モデル歩容の瞬時運動から、その幾何学的拘束条件(3)に従って第1変位次元補正用モデルの要素の配置を定めることと同じである。
幾何学的拘束条件(3):与えられた任意の瞬時目標運動に対して、第1変位次元補正用モデルの要素のうちの上体質点A1および上体リンクの配置が、与えられた瞬時目標運動におけるロボット1の上体3の位置姿勢に対応して定まる配置に一致し、且つ、各足平質点A4,A5の位置が、与えられた瞬時目標運動におけるロボット1の各足平位置姿勢に対応して定まる配置に一致し、且つ、各大腿質点A2,A3の位置が、与えられた瞬時目標運動における各脚体2の股関節の中心と足首関節の中心とを結ぶ線分上の所定の内分点の位置に一致する。
なお、本参考例では、第2変位次元補正用モデルの構造は、前記図8に示した第1参考例のものと同じ構造であり、本参考例(第2参考例)における第1変位次元補正用モデルと同様に、上体質点A1、大腿質点A2,A3、および足平質点A4,A5を有し、また、上体リンクにイナーシャIbをもっている。この場合、上体質点A1,各足平質点A4,A5の、対応する部位(上体3、各足平22)に固定されたローカル座標系での位置は、図17の第1変位次元補正用モデルと同じである。また、各質点A1〜A5の質量と上体リンクのイナーシャIbとは、図17の第1変位次元補正用モデルのものと同じである。そして、第2変位次元補正用モデルにおいては、各質点A1〜A5および上体3(上体リンク)はロボット1が採り得る任意の姿勢状態に対応する位置姿勢に移動可能とされている。すなわち、ロボット1の任意の瞬時目標運動と第2変位次元補正用モデルの各要素の配置との間には、前記第1参考例で説明した前記幾何学的拘束条件(2)が設定されている。
次に、本参考例(第2参考例)における歩容生成装置100の処理を詳細に説明する。本参考例における歩容生成装置100の基本的処理手順は、第1参考例と同じであり、前記図9のフローチャートに従って歩容が生成される。
具体的には、S010からS018までの処理が第1参考例と同様に実行される。これらの処理は、第1参考例と同一である。
そして、S018の次にS020の処理が実行され、今回歩容の歩容パラメータが決定される。すなわち、今回歩容の目標足平位置姿勢軌道、目標腕姿勢軌道、目標ZMP軌道、および目標床反力鉛直成分軌道を規定するパラメータが決定されると共に、基準上体姿勢軌道、床反力水平成分許容範囲、およびZMP許容範囲を規定するパラメータが決定される。この場合、本参考例での単純化モデルは、前記したように前記公報文献1で用いている動力学モデルと同一であるので、同公報文献1の図13のS022〜S030の処理と同一の処理を本参考例のS020で実行することで、今回歩容の歩容パラメータが決定される。
なお、同公報文献1の図13のS022〜S028の処理では、定常歩容の作成などのために、単純化モデル歩容用の床反力水平成分許容範囲を設定して使用しているが、本参考例では、その単純化モデル歩容用の床反力水平成分許容範囲は、例えば同公報文献1の図13のS30で設定するフルモデル補正用の床反力水平成分許容範囲と同一にするか、もしくは、それよりも広めの範囲に設定すればよい。あるいは、本明細書の第1参考例と同様に、単純化モデル歩容用の床反力水平成分許容範囲を無限大の範囲とするか、もしくは、単純化モデル歩容(あるいは定常歩容)の床反力水平成分が常にその床反力水平成分許容範囲内に収まるような広い範囲に定めてもよい。
次いで、図9のS020の処理の後、あるいはS016の判断結果がNOであった場合には、S022に進んで、歩容パラメータ(S020で決定した歩容パラメータ)を基に、今回歩容(単純化モデル歩容)の瞬時値が決定される。この場合、本参考例での単純化モデルは、前記したように前記公報文献1で用いている動力学モデルと同一であるので、同公報文献1の図13のS032の処理と同一の処理を本参考例のS022で実行することで、単純化モデル歩容の瞬時値が決定される。
より具体的には、前記S020で決定した歩容パラメータを基に、目標足平位置姿勢、目標ZMP、目標腕姿勢、目標床反力鉛直成分、基準上体姿勢の瞬時値が決定され、さらに、前記図16の単純化モデル上で、ロボット1の運動が発生する慣性力と重力との合力が目標ZMPまわりに作用するモーメント水平成分が0になり、且つ、その合力の並進力鉛直成分が目標床反力鉛直成分に釣り合い、且つ、床反力水平成分が単純化モデル歩容用の床反力水平成分許容範囲を超えないように目標上体位置姿勢の瞬時値が決定される。ここで、目標上体位置姿勢の瞬時値に関して補足すると、目標上体位置鉛直成分は、目標床反力鉛直成分と前記式11とから求められる単純化モデルの上体質点3m2の鉛直位置に対応して決定される。そして、目標床反力鉛直成分が比較的大きい時期では、主に上体3の水平加速度を調整して、目標ZMPまわりのモーメント水平成分が0になるようにしつつ、目標上体姿勢の瞬時値が基準上体姿勢(例えば鉛直姿勢)に近づくように目標上体姿勢および目標上体位置水平成分が決定される。また、目標床反力鉛直成分が比較的小さいか、もしくは0となる時期では、上体3の水平加速度をほぼ0にしつつ、主に上体3の姿勢角の角加速度を調整して、目標ZMPまわりのモーメント水平成分が0になるように、目標上体姿勢および目標上体位置水平成分の瞬時値が決定される。
なお、S022の処理で用いる単純化モデル歩容用の床反力水平成分許容範囲は、前記S020の処理で用いるものと同一でよい。
次いで、S024に進んで変位次元補正サブルーチンが実行される。このサブルーチン処理は、基本的処理手順は、前記第1参考例と同一であり、前記図10のフローチャートに従って実行される。すなわち、まず、S200において、現在時刻tの単純化モデル歩容の瞬時値を基に、第1変位次元補正用モデルの各質点A1〜A5の位置とイナーシャをもつ上体リンクの姿勢角とを求める。この場合、前記したように、第1変位次元補正用モデルの上体質点A1の位置は、単純化モデル歩容の上体位置姿勢の瞬時値に対応する位置に決定され、各足平質点A4,A5の位置は、単純化モデル歩容の各足平位置姿勢に対応する位置に決定される。また、各大腿質点A2,A3の位置は、単純化モデル歩容の上体位置姿勢と各足平位置姿勢を基に定まるロボット1の各脚体2の股関節の中心点と足首関節の中心点とを結ぶ線分を、所定の比率で内分してなる内分点の位置に決定される。また、第1変位次元補正用モデルの上体リンクの姿勢角は、単純化モデル歩容の上体姿勢角と同一とされる。
これにより単純化モデル歩容の瞬時目標運動(今回時刻tの瞬時値)から、本参考例での第1変位次元補正用モデルに係る前記幾何学的拘束条件(3)に従って、第1変位次元補正用モデルの各要素の配置が決定されることとなる。
次いで、S202からS218までの処理が実行される。これらの処理は、第1参考例と同じである。すなわち、前記条件1,2を満たすような第2変位次元補正用モデルの要素の配置、ひいては変位次元補正上体位置姿勢が探索的に求められ、それが、今回時刻tにおける変位次元補正上体位置姿勢(Pb2,θb2)として決定される。これにより、単純化モデル歩容の上体位置姿勢を修正してなる変位次元補正歩容が得られる。補足すると、本参考例では、各変位次元補正用モデルの両足平質点A5,A6の位置は、両変位次元補正用モデルで同じである。従って、S208でモデル間全体重心ずれGc_errとモデル間角運動量積ずれL_errとを算出するに当たっては、両足平質点A5,A6に係わる項は省略してもよい。
図9の説明に戻って、前述の如く変位次元歩容補正サブルーチンを実行した後、S026〜S032の処理が第1参考例と同様に実行される。これらの処理は、第1参考例と同一である。
なお、歩容生成装置100で以上説明したように生成される目標歩容を入力する複合コンプライアンス制御装置101の動作は前記第1参考例と同一である。
ここで、本参考例での前記変位次元補正歩容について図18および図19を参照して補足説明をしておく。図18は第2変位次元補正用モデルの各質点Ai(i=1,2,…,5)の位置および上体3(上体リンク)の姿勢角を単純化モデル歩容通りに決定した場合(すなわち単純化モデル歩容を前記S024で補正しない場合)における第2変位次元補正用モデルの各質点Aiの位置および上体3(上体リンク)の姿勢角と、第1変位次元補正用モデルの各質点Aiの位置および上体3(上体リンク)の姿勢角との関係を例示している。この場合の第2変位次元補正用モデルの各質点Aiの位置および上体3の姿勢角、すなわち、第2変位次元補正用モデルの要素の配置は、別の言い方をすれば、単純化モデル歩容の瞬時運動から、前記幾何学的拘束条件(2)に従って決定されたものと言える。なお、図18では、単純化モデル歩容に対応する第2変位次元補正用モデルの各質点Ai(i=1,2,…,5)の位置をPi2'(Ai)で表している。
また、図19は上記した変位次元歩容補正サブルーチンによって決定される第2変位次元補正用モデルの各質点Aiの位置および上体3(上体リンク)の姿勢角と、第1変位次元補正用モデルの各質点Aiの位置および上体3(上体リンク)の姿勢角との関係を例示している。
図18に示す例において、単純化モデル歩容に対応する第2変位次元補正用モデルの各質点Aiの位置Pi2'では、大腿質点P22',P32'が第1変位次元補正用モデルに対してロボット1の前方側に在る。すなわち、第2変位次元補正用モデルでのロボット1の全体重心が単純化モデル歩容でのロボット1の全体重心よりもロボット1の前方側(X軸の正方向)に偏る。別の言い方をすれば、両脚体2,2の各大腿質点A2,A3のモデル間擬似並進加速度によって各大腿質点A2,A3が発生する慣性力の並進力成分(=各質点A2,A3の質量*モデル間擬似並進加速度)の総和がロボット1の後方側に発生するものとなる。また、各大腿質点A2,A3のモデル間擬似並進加速度によって各大腿質点A2,A3が発生する慣性力が目標ZMPまわりに作用するモーメントが、ロボット1の後傾側に発生するものとなる。なお、本参考例では、単純化モデル歩容と第1変位次元補正用モデルとで、両足平位置姿勢および上体位置姿勢は同一であるので、図18の例では、上体質点A1、各足平質点A4,A5のそれぞれのモデル間擬似並進加速度は0であり、また、上体リンクのモデル間擬似角加速度も0である。
これに対して、前記変位次元歩容補正サブルーチンで変位次元補正歩容に対応する第2変位次元補正用モデルの各質点Aiの位置を決定したときには、図19に見られるように、大腿質点A2,A3の前方側への偏りを補償するようにして、第2変位次元補正用モデルの上体質点A1の位置が、第1変位次元補正用モデルの上体質点A1よりも後方側に決定され、換言すれば、上体位置が単純化モデル歩容よりも後方側に補正される。同時に、第2変位次元補正用モデルの各質点A1〜A5の位置並びにイナーシャをもつ上体3の姿勢は、前記した角運動量積がある一定値になるように決定される。図示の例では、第2変位次元補正用モデルでの上体姿勢(実線で示す上体3の姿勢)は、単純化モデル歩容の上体姿勢(破線で示す上体3の姿勢)に対して、角度θb2−θb1だけ前傾している。補足すると、図19の斜線もしくは横線を付した三角形の面積の2倍が、それぞれ、上体質点A1、大腿質点A2,A3に係る角運動量積に相当するものである。
このため、変位次元補正歩容に対応する第2変位次元補正用モデルの各質点Aiの位置および上体リンクの姿勢角では、各質点Aiのモデル間擬似並進加速度に伴う慣性力の並進力成分の総和が図18に示した場合よりも小さくなって、ほぼ0になると共に、該慣性力が目標ZMPまわりに発生するモーメントの総和も図18に示した場合よりも所定の値(前記条件2に係る「一定値」に相当する値)に近づく。
これにより、変位次元補正歩容は、単純化モデル歩容では考慮されていない各脚体の膝関節付近の部分の運動に伴う慣性力の影響を補償して、単純化モデル歩容の目標床反力と同じような床反力が発生するようにロボット1の目標運動を運動を補正したものとなる。
なお、本参考例によるときには、ロボット1の直立姿勢状態から目標ZMPを一定に維持して、両脚体2,2の膝関節を曲げつつ、上体3を下げるような歩容を生成したときには、前記第1参考例と同様に(前記図14に示したものと同様に)、変位次元補正上体位置姿勢は、上体3と両脚体2,2との連結部である股関節(上体3の下端部)が単純化モデル歩容のよりもロボット1の後方側(つまり膝関節が突き出る向きとほぼ逆向き)に変位し、且つ、上体3が単純化モデル歩容の上体姿勢よりも前傾側に傾くような位置姿勢となる。
[第3参考例]
次に、本発明の第3参考例を説明する。本参考例は、ロボット1の機構的構成は第1参考例と同一で、単純化モデル、第1変位次元補正用モデルおよび第2変位次元補正用モデルの構造と、歩容生成装置100の処理の一部とが第1および第2参考例と相違するものである。従って、本参考例の説明では、第1または第2参考例と同一部分については第1または第2参考例と同じ符号および図面を用い、詳細な説明を省略する。以下、前記第1または第2参考例と相違する部分を主体として、本参考例を説明する。
本参考例では、単純化モデルは、例えば前記図8の第2変位次元補正用モデルと同じ構造のモデルとされている。すなわち、本参考例の単純化モデルは、前記図8に示した如く、上体3、両脚体2,2の大腿リンク、両足平22,22にそれぞれ対応する上体質点A1、大腿質点A2,A3、足平質点A4,A5からなる5質点を有し、また、上体3(上体リンク)が上体質点A1のまわりにイナーシャIbを持つ動力学モデルである。この単純化モデルの動力学は、その式の記載は省略するが、前記した第2参考例の単純化モデルなどと同様に、各質点A1〜A5の並進運動および上体リンクの回転運動と、床反力(並進床反力および目標ZMPまわりの床反力モーメント)との関係式として記述される。例えば、各質点A1〜A5および上体リンクの動力学は相互に非干渉に構成され、ロボット1の全体の動力学は、それらの線形結合で表される。
図20は、本参考例における第1変位次元補正用モデルの構造を示している。なお、図20では、ロボット1の姿勢状態が両脚体2,2を左右方向(Y軸方向)に並列させて起立している状態であるため、両脚体2,2が図面上、重なっている。
この第1変位次元補正用モデルは、ロボット1の上体3に対応する1つの上体質点B1、各脚体2の膝関節近傍の大腿リンク部分に対応する大腿質点B2,B3、各脚体2の先端部(足平22)にそれぞれ対応する足平質点B4,B5、並びに、ロボット1の各腕体5にそれぞれ対応する腕質点B6,B7からなる7質点モデルである。また、第1変位次元補正用モデルにおける上体3(上体リンク)は、上体質点A1のまわりにイナーシャ(慣性モーメント)Itを持つと共に、各腕体5は、各腕質点B6,B7のまわりにイナーシャIaを持つものとされている。つまり、本参考例の第1変位次元補正用モデルは、質点B1〜B7と、イナーシャItをもつ上体3と、イナーシャIaをそれぞれつ腕体5,5とを要素として構成されている。
この場合、第1変位次元補正用モデルでの上体質点B1と、大腿質点B2,B3と、足平質点B4,B5とは、前記第1参考例の第2変位次元補正用モデルの各質点A1〜A5と同様に、それぞれに対応する部位(上体3、各大腿リンク、各足平22)に任意に固定されたローカル座標系上でのある固定点に設定されている。また、腕質点B6,B7は、各腕体5の1つのリンク、例えば腕体5の肘関節と手首関節との間のリンクに任意に固定されたローカル座標系でのある固定点(腕体5の先端部寄りの点)に設定されている。
なお、第1変位次元補正用モデルの各質点B1〜B7の質量の総和は、ロボット1の総質量と同一であると共に、上体質点B1および腕質点B6,B7の質量の総和は、本参考例における単純化モデル(図8)の上体質点A1と同一の質量とされている。
そして、本参考例においても第1変位次元補正用モデルの要素の配置には、ある幾何学的拘束条件が設定されている。具体的には、本参考例の第1変位次元補正用モデルでは、両腕体5,5は、いずれも上体3に対して図20に示すような姿勢状態に固定された状態に拘束されている。すなわち、第1変位次元補正用モデルでの両腕体5,5の上体3に対する相対姿勢、ひいては、上体質点B1と腕質点B6,B7との間の相対的位置関係は一定である。
補足すると、第1変位次元補正用モデルの上体質点B1および腕体質点B6,B7の重心点は、本参考例における単純化モデル(図8)の上体質点A1と一致するものとされている。また、上体リンクのイナーシャItと、各腕体5のイナーシャIaとは、本参考例の単純化モデルの上体リンクのイナーシャIbと次の関係式14を満たすように設定されている。
Ib=It+Ib
+上体質点B1の質量*(上体質点B1と上体質点A1との距離)2
+腕体質点B6の質量*(腕体質点B6と上体質点A1との距離)2
+腕体質点B7の質量*(腕体質点B7と上体質点A1との距離)2
…式14
また、この第1変位次元補正用モデルの各質点B1〜B7のグローバル座標系上での位置、並びに上体3の姿勢は、単純化モデル歩容の運動の瞬時値に対応して幾何学的に定まるものとされている。より具体的には、本参考例の第1変位次元補正用モデルの上体質点B1のグローバル座標系での位置は、単純化モデル歩容の上体位置姿勢に対応する位置に決定され、各足平質点B4,B5のグローバル座標系での位置は、単純化モデル歩容の各足平位置姿勢に対応する位置に決定される。また、各大腿質点B2,B3の位置は、単純化モデル歩容の上体位置姿勢および両足平位置姿勢から定まる各脚体2の大腿リンクの位置姿勢に対応する位置に決定される。なお、第1変位次元補正用モデルでは、上体3に対する腕体5,5の相対姿勢は前記した如く一定であるので、腕質点5,5のグローバル座標系での位置は、単純化モデル歩容の上体位置姿勢に対応して一義的に定まることとなる。
ここで、第3参考例で上記のように第1変位次元補正用モデルの要素の配置を定めるということは、第1変位次元補正用モデルの要素の配置(グローバル座標系での質点B1〜B7の位置、並びに上体リンクおよび各腕体の姿勢)を定めるための幾何学的拘束条件(4)を次のように定義したとき、単純化モデル歩容の瞬時運動から、その幾何学的拘束条件(4)に従って第1変位次元補正用モデルの要素の配置を定めることと同じである。
幾何学的拘束条件(4):与えられた任意の瞬時目標運動に対して、第1変位次元補正用モデルの要素のうちの上体質点B1および上体リンクの配置が、与えられた瞬時目標運動におけるロボット1の上体3の位置姿勢に対応して定まる配置に一致し、且つ、各足平質点B4,B5の位置が、与えられた瞬時目標運動におけるロボット1の各足平位置姿勢に対応して定まる位置に一致し、且つ、各大腿質点B2,B3の位置が、与えられた瞬時目標運動における各脚体2の大腿リンクの位置姿勢に対応して定まる位置に一致し、且つ、各腕質点B6,B7および各腕体5(イナーシャを持つリンク)の配置が、与えられた瞬時目標運動におけるロボット1の上体3の位置姿勢に対して所定の相対関係を持つ配置になる。
図21は本参考例における第2変位次元補正用モデルの構造を示している。この第2変位次元補正用モデルは、基本的構造は、図20の第1変位次元補正用モデルと同じであり、第1変位次元補正用モデルと同様に7個の質点B1〜B7を有すると共に、上体3(上体リンク)が質点B1のまわりにイナーシャItを持ち、また、各腕体5が腕質点B6,B7のまわりにイナーシャIaを持つモデルである。各質点B1〜B7の質量と、各質点B1〜B7の、対応する部位に固定設定されたローカル座標系での位置とは、図20の第1変位次元補正用モデルと同一である。また、各イナーシャIt,Iaも図20の第1変位次元補正用モデルと同一である。そして、この第2変位次元補正用モデルにおいては、各質点B1〜B7、並びに上体3(上体リンク)および各腕体5はロボット1が採り得る任意の姿勢状態に対応する位置姿勢に移動可能とされている。すなわち、ロボット1の任意の瞬時目標運動と第2変位次元補正用モデルの各要素の配置との間には、前記第1参考例で説明した前記幾何学的拘束条件(2)が設定されている。
この第2変位次元補正用モデルの各質点B1〜B7のグローバル座標系での位置に関しては、各足平質点B4,B5の位置は、単純化モデル歩容の各足平位置姿勢に対応する位置に決定される。また、上体質点B1、各大腿質点B2,B3の位置、および各腕質点5の位置並びに上体3(上体リンク)および腕体5の姿勢は、前記条件1,2を満たし、且つ、上体3に対する腕体5の相対姿勢が単純化モデル歩容の相対姿勢に一致するように決定される。
次に、本参考例(第3参考例)における歩容生成装置100の処理を詳細に説明する。本参考例における歩容生成装置100の基本的処理手順は、第1参考例と同じであり、前記図9のフローチャートに従って歩容が生成される。但し、本参考例では、S026の処理は省略される。
具体的には、S010からS018までの処理が第1参考例と同様に実行される。これらの処理は、第1参考例と同一である。
そして、S018の次にS020の処理が実行され、今回歩容の歩容パラメータが決定される。すなわち、今回歩容の目標足平位置姿勢軌道、目標腕姿勢軌道、目標ZMP軌道、および目標床反力鉛直成分軌道を規定するパラメータが決定されると共に、基準上体姿勢軌道、床反力水平成分許容範囲、およびZMP許容範囲を規定するパラメータが決定される。この場合、S020の処理は、例えば前記第2参考例と同様に行えばよい。但し、本参考例では、S020の処理を行うための動力学モデル(単純化モデル)として、前記図16の動力学モデルに代えて、図8の単純化モデルが用いられる。
次いで、図9のS020の処理の後、あるいはS016の判断結果がNOであった場合には、S022に進んで、歩容パラメータ(S020で決定した歩容パラメータ)を基に、今回歩容(単純化モデル歩容)の瞬時値が決定される。この処理は、例えば前記第2参考例と同様に行われる。但し、本参考例では、今回歩容の瞬時値(詳しくは上体位置姿勢の瞬時値)を決定するために、図8の単純化モデルが用いられる。補足すると、本参考例における図8の単純化モデルでは、上体3に対する両腕体5,5の相対姿勢は前記図20に示した姿勢状態に固定されているものとしている。従って、S022で求められる今回歩容の瞬時値のうち、上体位置姿勢の瞬時値は、上体3に対する両腕体5,5の相対姿勢を図20の姿勢状態に固定していると見なして、図8の単純化モデル上で目標ZMPまわりの床反力モーメントの水平成分が0になるように決定されたものとなる。
次いで、S024に進んで変位次元補正サブルーチンが実行される。このサブルーチン処理は、基本的処理手順は、前記第1参考例と同様であるが、一部の処理が第1参考例と相違している。その処理は図23のフローチャートに従って実行される。すなわち、まず、S400において、現在時刻tの単純化モデル歩容の瞬時値を基に、第1変位次元補正用モデルの各質点B1〜B7の位置と、イナーシャをもつ上体リンクおよび各腕体5,5の姿勢を求める。この場合、前記したように、本参考例の第1変位次元補正用モデルの上体質点B1および両腕質点B6,B7の位置は、単純化モデル歩容の上体位置姿勢に対応する位置に決定され、各足平質点B4,B5の位置は、単純化モデル歩容の各足平位置姿勢に対応する位置に決定される。また、各大腿質点B2,B3の位置は、単純化モデル歩容の上体位置姿勢および両足平位置姿勢から定まる各脚体2の大腿リンクの位置姿勢に対応する位置に決定される。また、第1変位次元補正用モデルの上体リンクの姿勢は、単純化モデル歩容の上体姿勢と同一とされる。なお、第1変位次元補正用モデルの各腕体5,5の姿勢は、前記した如く、上体3に対して図20の姿勢状態に固定されているので、第1変位次元補正用モデルの上体3(上体リンク)の姿勢が定まれば、一義的に各腕体5,5の姿勢も定まる。従って、第1変位次元補正用モデルでの各腕体5,5の姿勢は、一般には単純化モデル歩容の腕姿勢の瞬時値とは異なる。
次いで、S402に進んで、前記図10のS202と全く同様に、変位次元補正上体位置姿勢の初期候補が決定される。
次いで、S404を経て、S406〜S416のループ処理が図10のS206〜S216と同様に実行される。この場合、S406、S408、S414の処理の一部が第1参考例と相違する。具体的には、S406では、変位次元補正上体位置姿勢の現在の候補(Pb2_s,θb2_s)と、今回時刻tでの単純化モデル歩容の目標両足平位置姿勢および目標腕姿勢とを基に、第2変位次元補正モデルでの各質点B1〜B7の位置を求める。この場合、第2変位次元補正用モデルでのロボット1の上体3の位置姿勢が現在の候補(Pb2_s,θb2_s)に一致し、且つ、第2変位次元補正用モデルでのロボット1の各足平22の位置姿勢が単純化モデル歩容の目標足平位置姿勢に一致し、且つ、第2変位次元補正用モデルでのロボット1の両腕体5,5の上体3に対する相対姿勢が単純化モデル歩容の腕姿勢に一致しているとして、各質点B1〜B7の位置と各腕体5,5の姿勢とが求められる。
具体的には、足平質点B3,B4の位置は、目標足平位置姿勢から決定される。また、上体質点B1の位置は、候補(Pb2_s,θb2_s)から決定され、上体3(上体リンク)の姿勢角はθb2_sと同一とされる。そして、各大腿質点B2,B3の位置は、目標両足平位置姿勢と候補(Pb2_s,θb2_s)とから定まるロボット1の各脚体2の姿勢から決定される。さらに、第2変位次元補正用モデルの両腕体5,5の姿勢(上体3に対する相対姿勢)は、目標腕姿勢と同一とされる。さらに、両腕質点B6,B7の位置は、上体3に対する目標腕姿勢に対応する位置に決定される。補足すると、上体位置姿勢と、上体3に対する両腕体5,5の相対姿勢が決まれば、両腕質点B6,B7の位置(グローバル座標系のでの位置)は一義的に定まる。
また、S408の処理では、モデル間全体重心ずれGc_errは、第1参考例と同様に、前記式06で求められる。但し、この場合の式06の右辺のΣの演算は本参考例での変位次元補正用モデルの全ての質点B1〜B7についての総和である。また、モデル間角運動量積ずれL_errは、例えば前記式07の右辺の「Ib*(θb2−θb1)」を「It*(θb2−θb1)+Ia*(θa2R−θa1R)+Ia*(θa2L−θa1L)」で置き換えた式によって算出される。ここで、θa2Rは、第2変位次元補正用モデルの右側腕体5Rの上体3に対する姿勢を代表する姿勢角(例えば腕体5の肩関節と肘関節とを連結するリンクの上体3に対する相対傾斜角)である。同様に、θa1Rは、第1変位次元補正用モデルの右側腕体5Rの上体3に対する姿勢角、θa2Lは、第2変位次元補正用モデルの左側腕体5Lの上体3に対する姿勢角、θa1Lは、第1変位次元補正用モデルの左側腕体5Lの上体3に対する姿勢角である。なお、本参考例では、両腕体5,5の目標腕姿勢は、肘関節の曲げ角を一定としている。補足すると、本参考例では、式07の右辺のΣの演算は、モデル間全体重心ずれGc_errの場合と同様、全ての質点B1〜B7についての総和である。
また、S414で、モデル間全体重心ずれおよびモデル間角運動量積ずれを求める場合も、S408と同様に行われる。
S406〜S416のループ処理に続いて、S418の処理が実行され、今回時刻tの変位次元補正上体位置姿勢(Pb2,θb2)が決定される。この処理は、図10のS218と全く同様である。
上述した変位次元歩容補正サブルーチンによって、前記条件1,2を満たすような変位次元補正上体位置姿勢が探索的に求められ、それが、今回時刻tにおける変位次元補正上体位置姿勢(Pb2,θb2)として決定される。これにより、単純化モデル歩容の上体位置姿勢を修正してなる変位次元補正歩容が得られる。補足すると、本参考例では、各変位次元補正用モデルの両足平質点B5,B6の位置は、両変位次元補正用モデルで同じである。従って、S208でモデル間全体重心ずれGc_errとモデル間角運動量積ずれL_errとを算出するに当たっては、両足平質点B5,B6に係わる項は省略してもよい。
図9の説明に戻って、前述の如く変位次元歩容補正サブルーチンを実行した後、S026の処理を省略して、S028〜S032の処理が第1参考例と同様に実行される。S028〜S032の処理は、第1参考例と同一である。
なお、歩容生成装置100で以上説明したように生成される目標歩容を入力する複合コンプライアンス制御装置101の動作は前記第1参考例と同一である。
ここで、本参考例での前記変位次元補正歩容について図22を参照して補足説明をしておく。図22は、例えば図20のようにロボット1を直立姿勢で起立させた状態から、目標ZMPを維持したまま、両腕体5,5の先端部を上体3の前方側に突き出すような歩容を生成する場合において、上記した変位次元歩容補正サブルーチンによって決定される第2変位次元補正用モデルの各質点Bi(i=1,2,…,7)の位置、上体3(上体リンク)の姿勢角、および両腕体5,5の姿勢と、第1変位次元補正用モデルの各質点Biの位置、上体3(上体リンク)の姿勢角、および両腕体5,5の姿勢との関係を例示している。なお、この場合、先に示した図21のロボット1の姿勢状態は、第2変位次元補正用モデルの各質点Biと、上体2の姿勢角、および両腕体5,5の姿勢(上体3に対する相対姿勢)を単純化モデル歩容どおりに決定した場合に相当するものとなっている。換言すれば、図21における第2変位次元補正用モデルの各質点Biの位置、並びに上体3の姿勢角および各腕体3の姿勢、すなわち、第2変位次元補正用モデルの要素の配置は、単純化モデル歩容の瞬時運動から、前記幾何学的拘束条件(2)に従って決定されたものとなっている。
ロボット1の図20の姿勢状態から、両腕体5,5を図22のように前方側に突き出す歩容を生成する場合、単純化モデル歩容では、図21に示すように、上体位置姿勢を維持したまま、両腕体5,5を前方に突き出すような歩容となる。このため、単純化モデル歩容通りに第2変位次元補正用モデルの各質点Biの位置、上体3の姿勢、および両腕体5,5の姿勢を決定すると、第2変位次元補正用モデルの両腕質点B6,B7が第1変位次元補正用モデル(図20参照)に対して前方側に突き出ることとなる。このため、図22に示す如く、両変位次元補正用モデルで全体重心を一致させるべく(前記条件1を満たすべく)、第2変位次元補正用モデルの上体質点B1の位置P12は、第1変位次元補正用モデルの上体質点B1の位置P11よりも後方側の位置になる。別の言い方をすれば、両腕質点B6,B7のモデル間擬似並進加速度に伴う慣性力の並進力成分を、上体質点A1のモデル間擬似並進加速度に伴う慣性力の並進力成分によって打ち消すようにして、第2変位次元補正用モデルの上体質点B1の位置P12は、第1変位次元補正用モデルの上体質点B1の位置P11よりも後方側の位置になる。なお、このとき、第1変位次元補正用モデルの上体質点B1の位置P11よりも後方側の位置になることに付随して、第2変位次元補正用モデルの大腿質点B2,B3の位置P22,P32も、第1変位次元補正用モデルの大腿質点B2,B3の位置P21,P31に対して若干ずれる。
また、このとき、仮に上体3の姿勢を維持すると、第1変位次元補正用モデルと第2変位次元補正用モデルとの間で前記モデル間角運動量積ずれL_errが発生する。そして、このずれL_errを解消すべく(前記条件2を満たすべく)、第2変位次元補正モデルでの上体姿勢(図22に示す上体3の姿勢)、すなわち変位次元補正歩容の上体姿勢は、第1変位次元補正モデルでの上体姿勢(図20に示す上体3の姿勢)、すなわち、単純化モデル歩容の上体姿勢に対して前傾側に傾く。より詳しく言えば、上体質点B1、大腿質点B2,B3および腕質点B6,B7のモデル間擬似並進加速度に伴う慣性力、並びに、腕体5,5のモデル間擬似角加速度に伴う慣性力が目標ZMPまわりに作用するモーメントを打ち消すようにして、変位次元補正歩容の上体姿勢は、単純化モデル歩容の上体姿勢に対して前傾側に傾く。
このように単純化モデル歩容に対して運動(上体位置姿勢)を修正した変位次元補正歩容が決定されることで、目標ZMPまわりの床反力モーメントの水平成分が0になること等の動力学的平衡条件を単純化モデル歩容と同じように満たしつつ、単純化モデル歩容よりも動力学的精度の高い変位次元補正歩容が決定されることとなる。
補足すると、以上説明した第1〜第3参考例では、前記したように第1の幾何学的拘束条件と第2の幾何学的拘束条件とを設定しているため、単純化モデル歩容の瞬時運動から、第1の幾何学的拘束条件に従って決定される第1変位次元補正用モデルの各要素の配置の時間的変化(歩容生成装置100の演算処理周期毎の変化)によって発生する各要素の慣性力の合力に釣り合う床反力(目標ZMPまわりの床反力モーメント)と、該単純化モデル歩容の瞬時運動から、前記第2の幾何学的拘束条件に従って第2変位次元補正用モデルの各要素の配置を決定した場合における該第2変位次元補正用モデルの各要素の配置の時間的変化(歩容生成装置100の演算処理周期毎の変化)によって発生する、その各要素の慣性力の合力に釣り合う床反力(目標ZMPまわりの床反力モーメント)との差に所定の定常オフセット(前記式07〜10の「Const」に相当するもの)を加えたものが、単純化モデル歩容の瞬時運動が単純化モデル上で発生する床反力(目標ZMPまわりの床反力モーメント)の誤差にほぼ一致するものとなっている。
次に、以上説明した第1〜第3参考例に関連した変形態様をいくつか説明する。
前記第1〜第3参考例では、角運動量積に係る点Qとして、目標ZMPを用いたが、点Qは目標ZMP以外の点でもよく、例えば、次のような点でもよい。
a)歩容を記述する座標系(グローバル座標系)の原点
b)ロボット1とともに連続的に移動する適当に設定した点
c)フルモデルにおけるロボット1の全体重心
d)単純化モデルにおけるロボット1の全体重心
e)第1および第2変位次元補正用モデルに係るある所定の質点の集合の重心(具体的には、第1および第2変位次元補正用モデルの間で位置の差を生じる可能性がある質点の集合の重心。例えば、第1参考例では、全ての質点A1〜A5の集合の重心が相当し、第2参考例では、上体質点A1,大腿質点A2,A3の集合の重心が相当する)
また、前記第1〜第3参考例の説明では、図9のS024の変位次元歩容補正サブルーチンの処理において、サジタルプレーン上での単純化モデル歩容の上体位置姿勢を補正する処理について説明したが、サジタルプレーンに直交するラテラルプレーン上での上体位置姿勢を合わせて補正するようにしてもよい。この場合には、例えば図10のS200〜S218の処理を3次元に拡張して行えばよい。あるいは、サジタルプレーン上での上体位置姿勢の補正処理と、ラテラルプレーン上での上体位置姿勢の補正処理とを図10と同様のアルゴリズムによって、それぞれ独立に行うようにしてもよい。補足すると、上体位置の鉛直成分を含めて上体位置姿勢を補正する場合において、サジタルプレーン上での上体位置姿勢の補正処理と、ラテラルプレーン上での上体位置の補正処理とを独立して行う場合には、上体位置の鉛直成分の補正は、サジタルプレーン上、あるいはラテラルプレーン上のいずれか一方のプレーン上での補正処理によって行い、他方のプレーン上での補正処理では、上体位置の鉛直成分を除いて、その他方のプレーン上での上体位置姿勢の補正を行うようにすればよい。
また、ホリゾンタルプレーン(水平面)での上体位置姿勢を合わせて補正するようにしてもよい。あるいは、サジタルプレーン、ラテラルプレーン、ホリゾンタルプレーンのいずれか一つまたは二つに対して上体位置姿勢を補正するようにしてもよい。
また、第1〜第3参考例の図9のS024の変位次元歩容補正サブルーチンの処理では、変位次元補正上体位置姿勢の初期候補(Pb2_s,θb2_s)を、前回制御周期の時刻で求めた変位次元補正上体位置姿勢を用いて決定したが、例えば該初期候補(Pb2_s,θb2_s)を単純化モデル歩容の上体位置姿勢と同一にしてもよい。但し、前記条件1,2を満たす変位次元補正上体位置姿勢を短時間で探索する上では、前記第1〜第3参考例で説明した如く、初期候補(Pb2_s,θb2_s)を決定することが望ましい。
また、第1〜第3参考例の変位次元歩容補正サブルーチンの処理では、前記条件1,2を満たす変位次元補正上体位置姿勢を探索的に求めるようにしたが、例えば第2変位次元補正用モデルの要素の配置(各質点の位置とイナーシャを持つ各リンクの姿勢)を前記幾何学的拘束条件(2)に従って(単純化モデル歩容に対応させて)決定したときのその配置と、第1変位次元補正用モデルの要素の配置との差(両モデル間の各質点の位置の差と、イナーシャをもつ各リンクの姿勢角の差)から、あらかじめ作成した関数式あるいはマップなどを用いて、単純化モデル歩容の上体位置姿勢から変位次元補正上体位置姿勢への補正量を決定し、その補正量で単純化モデル歩容の上体位置姿勢を補正することで、変位次元補正上体位置姿勢を決定するようにしてもよい。
また、第1〜第3参考例の変位次元歩容補正サブルーチンの処理で、モデル間全体重心ずれGc_errとモデル間角運動量積ずれLc_errとがそれぞれ許容範囲内であるか否かの判定(図10のS210または図23のS410の処理)を行わず、探索回数(候補(Pb2_s,θb2_s)の更新回数)が所定回数に達したら探索完了とし、そのときの候補(Pb2_s,θb2_s)を変位次元補正上体位置姿勢として決定するようにしてもよい。あるいは、モデル間全体重心ずれGc_errとモデル間角運動量積ずれLc_errとがそれぞれ許容範囲内に収まるか、もしくは、探索回数が所定回数に達したら探索完了として、そのときの候補(Pb2_s,θb2_s)を変位次元補正上体位置姿勢として決定するようにしてもよい。
また、前記第2参考例に関して、第1および第2変位次元補正用モデルの間での各大腿質点A2,A3のそれぞれの位置ずれは、各脚体2の足首関節の中心点と股関節の中心点とを結ぶ線分に対する第2変位次元補正モデルの大腿質点A2,A3の位置ずれ(該線分にほぼ直交する面内での位置のずれ)、あるいは、該線分に対する膝関節の中心点の位置ずれにほぼ等しい。従って、モデル間全体重心ずれGc_errとモデル間角運動量積ずれL_errとを求めるときに、例えば前記式06,07における各大腿質点A2,A3に係る位置ずれ(P22−P21),(P32−P31)の代わりに、上記線分と、大腿質点A2,A3もしくは各膝関節の中心との距離(以下、大腿質点A2,A3の擬似位置ずれ距離という)を用いてもよい。
さらには、この大腿質点A2,A3の擬似位置ずれ距離は、各脚体2の膝関節の曲げ角と密接な関係があり、この大腿質点A2,A3の擬似位置ずれを膝関節の曲げ角から求めるようにしてもよい。より具体的には、前記した図18に示すように、各大腿リンク24の長さ(大腿リンク24の両端の股関節および膝関節のそれぞれの中心点の間の距離)をL、膝関節の曲げ角(大腿リンクの軸心(股関節の中心と膝関節の中心とを通る直線)に対する下腿リンクの軸心(膝関節の中心と足首関節の中心とを通る直線)の傾斜角)をθとしたとき、各大腿質点A2,A3の擬似位置ずれ距離は、ほぼ、L*sin(θ/2)に等しいものとなる。なお、長さLは、両大腿リンク24,24について同一である。従って、例えば前記式06,07における各大腿質点A2,A3に係る位置ずれ(P22−P21),(P32−P31)の代わりに、各脚体2の膝関節の曲げ角θに応じて定まるL*sin(θ/2)を用いるようにしてもよい。補足すると、上体位置姿勢と両足平位置姿勢を定めれば、各脚体2の膝関節の曲げ角はロボット1の幾何学モデル(リンクモデル)によって一義的に決定できる。
また、前記第2参考例において、第1および第2変位次元補正用モデルの両足平質点A4,A5の位置は、いずれも単純化モデル歩容の両足平位置姿勢に対応する位置に決定される。このため、変位次元補正上体位置姿勢は、結果的に、第1および第2変位次元補正用モデルの間での、各大腿質点A2,A3の位置のずれに応じて定まることとなる。従って、前記したように第2変位次元補正用モデルの要素の配置を前記幾何学的拘束条件(2)に従って(単純化モデル歩容に対応させて)決定したときのその配置と、第1変位次元補正用モデルの要素の配置とのずれから、あらかじめ作成した関数式あるいはマップなどを用いて、単純化モデル歩容の上体位置姿勢から変位次元補正上体位置姿勢への補正量を決定するようにしたときには、単純化モデル歩容に対応する第2変位次元補正用モデルの各大腿質点A2,A3の位置と、第1変位次元補正用モデルの各大腿質点A2,A3の位置との間の位置ずれに応じてフィードフォワード制御則によって直接的に(微積分演算を用いることなく)、単純化モデル歩容に対する変位次元補正上体位置姿勢の補正量を決定できることとなる。そして、この場合に、各大腿質点A2,A3の位置のずれの代わりに、前記した擬似位置ずれ距離を用いたり、あるいは、その擬似位置ずれに対応する各脚体2の膝関節の曲げ角θを用いることによって、その擬似位置ずれ距離または膝関節の曲げ角θから、フィードフォワード制御則によって直接的に変位次元補正上体位置姿勢(単純化モデル歩容の上体位置姿勢から変位次元補正上体位置姿勢の補正量)を決定できることとなる。
[実施形態]
以上説明したことを基礎として、以下に本発明の一実施形態を図24を参照して説明する。この実施形態は、前記図9のS024の変位次元歩容補正サブルーチンのみが前記第2参考例と相違するものであり、該サブルーチン処理を示すフローチャートが図24である。
以下説明すると、S600において、現在時刻tの単純化モデル歩容の瞬時値(図9のS022で求められたもの)を基に、各脚体2の膝関節の曲げ角θが求められる。具体的には、単純化モデル歩容の上体位置姿勢と両足平位置姿勢とから各脚体2の姿勢状態が一義的に定まるので、それによって、各脚体2の膝関節の曲げ角θが求められる。この曲げ角θは、単純化モデル歩容そのものに対応する膝関節の曲げ角である。
次いで、S602に進んで、各脚体2の膝関節の曲げ角θから、例えばあらかじめ定められた所定の関数により、上体位置姿勢の補正量を決定する。この場合、各膝関節の曲げ角θに対して、上体位置の補正量と上体姿勢の補正量とが単調に増加又は減少するように前記所定の関数が設定される。より具体的には、膝関節の曲げ角θが大きくなるに伴い、上体位置の補正量が、ロボット1の後方側に大きくなり、また、上体姿勢の補正量が上体3の前傾側に大きくなるように前記所定の関数が設定される。
次いで、S604に進んで、単純化モデル歩容の上体位置姿勢の瞬時値をS602で上記の如く求めた補正量で補正することにより、現在時刻tでの変位次元補正上体位置姿勢を決定する。
以上が、本実施形態における変位次元歩容補正サブルーチンの処理である。本実施形態によるときには、第1および第2変位次元補正用モデルを使用せずに、単純化モデル歩容の上体位置姿勢が、各脚体2,2の膝関節の曲げ角に応じてフィードフォワード制御則によって決定されることとなる。そして、上体位置姿勢の補正量を決定する関数を上記のように設定しておくことで、結果的に、第2参考例と同様に第1および第2変位次元補正用モデルを用いて前記条件1,2を満たすように変位次元補正上体位置姿勢を決定した場合と同じように、単純化モデル歩容の上体位置姿勢を補正できることとなる。
なお、本実施形態では、上体位置姿勢の補正量を決定するために関数を用いたが、マップを用いてもよいことはもちろんである。また、膝関節の曲げ角の代わりに、各脚体2の前記擬似位置ずれ距離を用いてもよい。この場合、各脚体の擬似位置ずれ距離から上体位置姿勢の補正量を決定するための関数もしくはマップは、擬似位置ずれ距離が大きくなるに伴い、上体位置の補正量が、ロボット1の後方側に大きくなり、また、上体姿勢の補正量が上体3の前傾側に大きくなるように設定しておけばよい。このようにすることで、本発明の他の実施形態が構成されることとなる。
また、両腕体5,5の肘関節の屈伸を行うような場合には、前記第2参考例での第1および第2変位次元補正用モデルで大腿質点を備えた場合と同様に、肘関節もしくはその近傍に対応する質点を備えるようにしてもよい。より具体的には、例えば図25に示すように、第1および第2変位次元補正用モデルで、各腕体5の肘関節近傍にそれぞれ対応する肘質点B8,B9と、各腕体5の先端部近傍にそれぞれ対応する手先質点B6,B7を備えるようにして、第1変位次元補正用モデルでは、各腕体5の肩関節の中心と手首関節の中心とを結ぶ線分上の、所定の内分比で定まる点に肘質点B8,B9が拘束されるようにする。そして、第1変位次元補正用モデルと第2変位次元補正用モデルとの間での肘関節B8,B9の位置の差を含めて、前記第2実施形態と同様に、モデル間全体重心ずれGc_errおよびモデル間角運動量積ずれL_errが0に近づくように(前記条件1、2を満たすように)単純化モデル歩容の上体位置姿勢を補正する。なお、第1変位次元補正用モデルに関しては、第1参考例で、各脚体2の姿勢を拘束した場合と同様に、第1変位次元補正用モデルの腕姿勢を、ロボット1の直立姿勢状態における腕姿勢(上下方向に伸ばした姿勢)に拘束するようにしてもよい。
あるいは、前記実施形態で説明した場合と同様に、各腕体5の肩関節の中心と手首関節の中心とを結ぶ線分からの肘関節の中心までの距離、あるいは、肘関節の曲げ角に応じて所定の関数やマップなどにより、単純化モデル歩容の上体位置姿勢の補正量を決定し、その補正量で単純化モデル歩容の上体位置姿勢を補正することで、変位次元補正上体位置姿勢を決定するようにすることも可能である。
また、第1〜第3参考例及び実施形態に関して補足すると、これらの第1〜第3参考例及び実施形態では、第1変位次元補正用モデルの全ての要素の質量の総和がロボット1の総質量と一致し、ロボット1の瞬時目標運動に対する第1変位次元補正用モデルの全体重心位置G1は、該瞬時目標運動に対する単純化モデルの全体重心位置Gsに一致あるいはほぼ一致するようにしている。また、第2変位次元補正用モデルの全ての要素の質量の総和もロボット1の総質量と一致し、ロボット1の瞬時目標運動に対する第2変位次元補正用モデルの全体重心位置G2は、該瞬時目標運動に対する実際のロボット1の真の全体重心位置Gfにほぼ一致するようにしている。
従って、第1〜第3参考例及び実施形態では、G1とG2との差(G1−G2)は、単純化モデルの全体重心位置Gsとロボット1の真の全体重心位置Gfとの差(Gs−Gf)、すなわち単純化モデルの全体重心位置の誤差にほぼ一致するものとなっている。
なお、この場合において、先に述べたように、足平の近傍の質点(足平質点)のように、両変位次元補正用モデルでの配置が同一位置となるような質点は、それを両変位次元補正用モデルから除いてもよいことはもちろんである。
また、前記各参考例及び実施形態では、上体位置姿勢を補正するようにしたが、上体以外の他の部位の位置姿勢、あるいは、上体を含めた複数の部位の位置姿勢を補正するようにしてもよい。