以下、添付図面を参照して本発明の実施形態を説明する。尚、本明細書の実施形態では、移動ロボットとしては2足移動ロボットを例にとる。
図1は、本発明の実施形態を適用する2足移動ロボットの全体的構成の概略を示す概略図である。
図示の如く、2足移動ロボット(以下、ロボットという)1は上体(ロボット1の基体)3から下方に延設された左右一対の脚体2,2を備える。上体3は本発明における「所定の部位」に相当するものである。両脚体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の移動方向を指定する、ロボット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軸)まわりのモーメント成分)を除いて零になる。換言すれば、目標床反力中心点まわりの目標床反力のモーメントの水平成分(水平軸(X軸及びY軸)まわりのモーメント)は零になる。
なお、動力学的平衡条件を満足する歩容では、ロボット1の目標運動軌道から算出されるZMP(目標運動軌道から算出される慣性力と重力との合力がその点まわりに作用するモーメントが、鉛直成分を除いて零になる点)と目標床反力中心点とは一致することから、目標床反力中心点軌道の代わりに目標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とされる。従って、最終的に決定する目標歩容以外の仮目標歩容(後述の単純化モデル歩容や、第1仮補正歩容、第2仮補正歩容、変位次元補正歩容)では、上記狭義の目標歩容から、補正目標床反力モーメントを除いたものが目標歩容の意味で使用される。補足すると、本明細書の実施形態では、最終的な目標歩容(歩容生成装置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に入力しているが、後述する第1実施形態における単純化モデルでは、目標足平位置姿勢を入力する必要はない。
なお、単純化モデル歩容生成部100cは、目標瞬時値発生部100bと合わせて、本発明における瞬時歩容発生手段を構成する。
単純化モデル歩容生成部100cで算出された目標上体位置姿勢は、変位次元歩容補正部100dに入力される。変位次元歩容補正部100dには、目標上体位置姿勢のほか、目標足平位置姿勢の瞬時値、目標ZMPの瞬時値も入力される。但し、変位次元歩容補正部100dには、目標ZMPを入力することは必須ではなく、より一般的には、後述する角運動量積に関する中心点が入力される。図5では、その中心点の一例として目標ZMPを変位次元歩容補正部100dに入力するようにしている。
この変位次元歩容補正部100dは、入力された目標上体位置姿勢の瞬時値などを基に、後述の第1および第2変位次元補正用モデルを用いて、単純化モデル歩容生成部100cで求めた目標上体位置姿勢を補正してなる変位次元補正上体位置姿勢の瞬時値を求める。詳細は後述するが、第1および第2変位次元補正用モデルは、一般的には、質点とイナーシャをもつリンクとのうちの少なくともいずれか一方を要素として構成されるモデル(幾何学モデル)であり、その各要素の配置(質点の位置、リンクの姿勢)が、ロボット1の瞬時運動における1つ以上の部位の位置姿勢に対応づけられる。この場合、これらの第1および第2変位次元補正用モデルは、共に同じ要素で構成される。但し、これらの第1および第2変位次元補正用モデルでは、その要素の配置に関して互いに異なる幾何学的拘束条件が定められており、ロボット1の任意の瞬時目標運動(ロボット1の各部位の位置姿勢の瞬時値)が与えられたとき、それに対応する各変位次元補正用モデルの要素の配置が各別の幾何学的拘束条件に基づいて定まるようになっている。従って、ある目標瞬時運動が与えられたとき、それに対応する各変位次元補正用モデルの要素の配置は一般には互いに異なる。そして、変位次元歩容補正部100dは、これらの第1および第2変位次元補正用モデルにおける要素の配置の差(質点の位置の差、あるいはリンクの姿勢角の差)を基に、単純化モデル歩容の目標上体位置姿勢を補正して変位次元補正上体位置姿勢の瞬時値を逐次求める。
また、図5では図示を省略しているが、変位次元歩容補正部100dには、前記ジョイスティック73あるいはロボット1の行動計画部(図示しない)から、目標歩容において要求されるロボット1の運動形態(ロボット1の歩行、走行など)や、床面の摩擦状態(摩擦係数の大きさなど)を示すロボット1の動作モードも入力される。そして、変位次元歩容補正部100dは、入力された動作モードに応じて変位次元補正上体位置姿勢の瞬時値を可変的に求める。本明細書の実施形態では、上記動作モードは、ロボット1の走行を行う走行モードと、比較的摩擦係数の小さな床面上(低ミュー路上)でロボット1の歩行を行う低摩擦床面歩行モードと、これらのモード以外の動作モードである通常モードとがある。通常モードには、比較的摩擦係数の大きな床面(通常的な床面)上でロボット1の歩行を行う動作モードが含まれる。
なお、変位次元歩容補正部100dは、その機能によって、第1発明における第1仮補正運動決定手段、第2仮補正運動決定手段および目標運動補正手段を構成し、あるいは、第2発明における仮補正運動決定手段および目標運動補正手段を構成するものである。
変位次元歩容補正部100dで求めた変位次元補正上体位置姿勢の瞬時値は、フルモデル補正部100eに入力される。フルモデル補正部100eには、変位次元補正上体位置姿勢の瞬時値のほか、目標瞬時値発生部100bで算出された各目標瞬時値(基準上体位置姿勢の瞬時値を除く)が入力される。このフルモデル補正部100eは、単純化モデルよりも動力学的精度の高い動力学モデルとしてのフルモデルを用いて変位次元上体位置姿勢を補正してなる補正目標上体位置姿勢を算出すると共に、目標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)を制御する。なお、複合コンプライアンス制御装置101のより具体的な処理は後述する。
以上が歩容生成装置100の概要である。なお、以上説明した歩容生成装置100の概要は、本明細書のいずれの実施形態においても同じである。
[第1実施形態]
次に、本発明の第1実施形態を具体的に説明する。まず、第1実施形態における前記単純化モデル(動力学モデル)、第1変位次元補正用モデル、第2変位次元補正用モデルについて説明する。なお、第1実施形態は、前記第1、3、4、7〜9、11〜14発明の一実施形態である。
図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実施形態の単純化モデルは、上体3にのみ質点3mを持つ1質点モデルであるため、各脚体2の運動によって発生する慣性力や、上体3のイナーシャ(慣性モーメント)は無視されている。つまり、第1実施形態の単純化モデルは、各脚体2の運動(並進あるいは姿勢変化運動)や上体3の姿勢変化運動によって発生する慣性力を0と見なして構築された動力学モデルであると言える。補足すると、第1実施形態を含む本明細書の各実施形態での単純化モデルは、ロボット1の少なくとも1つ以上の特定部位の、特定の運動(並進運動、姿勢変化運動など)によって発生する慣性力がほぼ0であるとみなして(該慣性力を無視して)構築されている。
なお、第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実施形態では、この幾何学的拘束条件(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の幾何学的拘束条件に相当するものである。
幾何学的拘束条件(2):第2変位次元補正用モデルの各要素の配置により定まる、ロボット1の各要素に対応する部位の位置姿勢と、当該配置に対応する瞬時目標運動におけるロボット1の各要素に対応する部位の位置姿勢とは一致する。
従って、第2変位次元補正用モデルでは、その質点A1〜A5の全体重心が、該第2変位次元補正用モデルの各要素の配置(質点A1〜A5の位置および上体リンクの姿勢)に対応する姿勢状態での実際のロボット1の真の全体重心の位置にほぼ一致する。
補足すると、任意の瞬時目標運動から、上記幾何学的拘束条件(2)に従って第2変位次元補正用モデルの要素の配置を決定するということは、第2変位次元補正用モデルの各要素の配置が、与えられた瞬時目標運動に従うロボット1における該要素に対応する部位の配置(位置姿勢)に一致するように第2変位次元補正用モデルの各要素の配置を決定するということと等価である。また、第2変位次元補正用モデルの要素の任意の配置から、幾何学的拘束条件(2)に従って瞬時目標運動を決定するということは、瞬時目標運動に従うロボット1の各要素に対応する部位の配置(位置姿勢)が、与えられた第2変位次元補正用モデルの要素の配置に一致するように瞬時目標運動を決定するということと等価である。
第2変位次元補正用モデルは、第1変位次元補正用モデルと協働して前記変位次元補正上体位置姿勢を決定するためのモデルであり、その変位次元補正上体位置姿勢を決定するに際して、第2変位次元補正用モデルの要素の2種類の配置が仮決定される。その1つの配置では、第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の位置は従属的に定まる。
また、変位次元補正上体位置姿勢を決定するに際して仮決定される第2変位次元補正用モデルの要素の他の1つの配置では、第2変位次元補正用モデルの各足平質点A4,A5の位置は、単純化モデル歩容の各足平位置姿勢に対応する位置に決定される。さらに、上体リンクの姿勢は、単純化モデル歩容の上体姿勢と同一に決定される。また、上体質点A1および各大腿質点A2,A3の位置は、第1変位次元補正用モデルおよび第2変位次元補正用モデルの間の後述する角運動量積に関する所定の条件を満たすように決定される。これについても詳細は後述する。
そして、第2変位次元補正用モデルの要素の上記の2種類の配置を基に、最終的に変位次元補正上体位置姿勢が決定される。
なお、以降の説明では、単純化モデル、第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の運動を行うと、股関節に過大なモーメントが発生する。その結果、股関節用アクチュエータに過大な負荷が掛かったり、股関節部分およびその近辺が撓んで振動し、ロボット1の姿勢が急速に不安定になりやすい。また、ロボット1の頭部4などに視覚装置として撮像装置を搭載した場合には、その揺れが生じやすくなって、該撮像装置による環境認識を正確に行うことが困難となる。
一方、例えば比較的摩擦係数の大きい床上でロボット1の歩行を行う目標歩容を生成する場合には、主に上体3の並進運動の調整によって、ロボット1のスリップを生じることなく目標ZMPを満足する歩容を生成することが可能である。従って、単純化モデル歩容の上体姿勢および上体位置のうち、主に上体位置を補正することで、目標ZMPを満足しつつ動力学的な精度を高めることが可能である。他方、比較的摩擦係数の小さい床上でロボット1の歩行を行う場合や、ロボット1の走行のように、目標床反力鉛直成分が0もしくは微小となる時期をもたざるを得ない目標歩容を生成する場合には、目標ZMPを満足するために上体姿勢のある程度の変動は避けられない。これは、ロボット1の上体3の並進運動によって発生し得る慣性力の水平成分(より正確には床面に平行な成分)が制限を受け、その制限内での上体3の並進運動の調整だけでは、目標ZMPを満足することが困難となるからである。
このようなことから、第1実施形態を含む本発明の各実施形態では、ロボット1の目標歩容における運動形態や床の摩擦状態を考慮しつつ、前記第1変位次元補正用モデルと第2変位次元補正用モデルとを用いて、できるだけ上体姿勢の変動を抑えながら動力学的な精度を高められるように単純化モデル歩容の上体位置姿勢を補正することとした。
このように単純化モデル歩容の上体位置姿勢を補正するために用いる第1および第2変位次元補正用モデルは、通常、ロボット1のいくつかの部位に対応する質点を同じように備え、あるいは、質点とイナーシャを持つリンク(上体3など)とを同じように備える。そして、両変位次元補正用モデルは、単純化モデルよりも多くの質点を有し、あるいは、単純化モデルが持たないイナーシャを持つ。なお、本明細書の各実施形態における両変位次元補正用モデルでは、単純化モデル歩容の上体位置姿勢を補正するために、いずれも上体3に対応する質点とイナーシャをもつ上体リンクとが含まれる。
この場合、第1変位次元補正用モデルでは、各質点の相互の位置関係あるいはイナーシャを持つリンク(上体3など)の姿勢にある適当な拘束条件が付加される。
より詳しく説明すると(ここでは第1実施形態に限らない一般的な説明を行う)、生成した単純化モデル歩容の各部位の位置姿勢の瞬時値(瞬時運動)に応じて、第1変位次元補正用モデルの各質点の位置が決定される。このとき、第1変位次元補正用モデルが、ロボット1の1つ以上のリンク(上体3など)にイナーシャをもつモデルである場合には、そのリンクの姿勢角も決定される。ただし、第1変位次元補正用モデルでは、各質点の位置関係、あるいはイナーシャを持つリンク(上体3など)の姿勢にある適当な幾何学的拘束条件が付加されており、これによって、単純化モデル歩容の各部位の位置姿勢の瞬時値(瞬時運動)に応じて、第1変位次元補正用モデルの各質点の位置や、イナーシャをもつリンクの姿勢角を決定したとき、単純化モデル歩容の床反力と同じような床反力が第1変位次元補正用モデルでも発生するようにする。第1実施形態では、このような幾何学的拘束条件として、前記幾何学的拘束条件(1)が第1変位次元補正用モデルに付加されている。
さらに、第1変位次元補正用モデルで設定された幾何学的拘束条件を持たない第2変位次元補正用モデルに対し、第1変位次元補正用モデルとの間で、次の条件1,2を満足するような第2変位次元補正用モデルの各質点の位置(あるいは各質点の位置とイナーシャをもつリンクの姿勢角)が、第2変位次元補正用モデルの第1要素配置として仮決定される。
条件1)第1変位次元補正用モデルの全体重心の位置と第2変位次元補正用モデルの全体重心の位置とはほぼ一致する。
条件2)ある点Qを定めたとき、第1変位次元補正用モデルに対する第2変位次元補正用モデルの、点Qのまわりの角運動量積の総和がある一定値(所定値)になる。
ここで、条件1は、両変位次元補正用モデルで並進床反力もしくは全体重心の運動によって発生する慣性力がほぼ同じになるための条件である。条件1は別の言い方をすれば、第1変位次元補正用モデルの各質点の位置とこれに対応する第2変位次元補正用モデルの質点の位置との差(位置ベクトルの差)のベクトルを該質点の並進加速度とみなしたときに、各質点が発生する慣性力の並進力成分(質点の質量*並進加速度)の、全ての質点についての総和がほぼ0になるという条件と等価である。
また、条件2に関する前記角運動量積は、各変位次元補正用モデルの各質点に対する基準位置をそれぞれ任意に定め、また、前記点Qの位置を任意に定めたとき、その各質点毎に以下の如く定義されるものである。さらに、各変位次元補正用モデルがイナーシャを持つ場合(ある1つ以上のリンクにイナーシャが設定されている場合)には、そのイナーシャをもつ各リンクに対する基準姿勢角をそれぞれ任意に定めたとき、その各リンク毎に以下の如く定義されるものである。
すなわち、各変位次元補正用モデルの質点に係る角運動量積は、点Qとその質点に対応する基準位置の点とを結ぶ線分(その線分のベクトル)と、該質点の該基準点からの位置のずれ(その位置ずれのベクトル)との外積に、該質点の質量を乗算したものに相当するものである。なお、この場合、上記外積と質量との積に比例関係を有するもの、あるいは該外積と質量との積に近似的に等しいものを当該質点に係る角運動量積と定義してもよい。また、各変位次元補正用モデルの、イナーシャを持つリンクに係る角運動量積は、そのリンクの姿勢角の、該リンクに対応する基準姿勢角からのずれと該リンクのイナーシャとの積に相当するものである。なお、この場合、リンクの姿勢角の基準姿勢角からのずれとイナーシャとの積に比例関係を有するもの、あるいは該積に近似的に等しいものを当該リンクに係る角運動量積と定義してもよい。
また、各変位次元補正用モデルの質点に係る角運動量積について補足すると、任意の質点に係る角運動量積は、質点と前記所定の点とを結ぶ線分と、その質点に対する基準点と前記所定の点とを結ぶ線分とのなす角度に対して単調に変化する関数(単調増加関数または単調減少関数)となる。
このように角運動量積を定義したとき、条件2は、より詳しく言えば、第1変位次元補正用モデルの各質点の位置を、第2変位次元補正用モデルの各質点に対応する基準位置とし、また、第1変位次元補正用モデルのイナーシャをもつ各リンクの姿勢角を、第2変位次元補正用モデルのイナーシャを持つ各リンクの基準姿勢角としたときの、第2変位次元補正用モデルの角運動量積の総和がある一定値になる、という条件である。
また、別の言い方をすれば、条件2は、第1変位次元補正用モデルの各質点の位置とこれに対応する第2変位次元補正用モデルの質点の位置との差(位置ベクトルの差)のベクトルを該質点の並進加速度とみなし、また、両変位次元補正用モデルのイナーシャをもつ各リンクの姿勢角の差を該リンクの角加速度とみなしたときに、各質点が発生する慣性力の並進力成分が点Qのまわりに作用するモーメントとイナーシャをもつ各リンクの慣性力(回転運動の慣性力)が点Qまわりに作用するモーメントとの総和がある一定値(所定値)になる、という条件と等価である。
そして、本明細書で詳説する実施形態では、上記点Qは例えば目標ZMPに設定される。なお、点Qは、目標ZMPに限られるものではないが、これについては後に補足する。
さらに、本明細書の第1および第2実施形態では、第2変位次元補正用モデルに対して、ロボット1の上体姿勢を単純化モデル歩容での姿勢に規制した上で、第1変位次元補正用モデルとの間で、前記条件2を満足するような第2変位次元補正用モデルの各質点の位置(あるいは各質点の位置とイナーシャをもつリンクの姿勢角)が第2変位次元補正用モデルの第2要素配置として仮決定される。そして、ロボット1の目標歩容における運動形態や床の摩擦状態に応じた重みを用いて、前記第1要素配置に対応する上体姿勢と前記第2要素配置に対応する上体姿勢との重み付け平均が、変位次元補正上体姿勢として決定されると共に、第1要素配置に対応する上体位置と第2要素配置に対応する上体位置との重み付け平均が変位次元補正上体位置として決定される。あるいは、本明細書の第3実施形態では、第2変位次元補正用モデルに対して、ロボット1の目標歩容における運動形態や床の摩擦状態とに応じた重みを用いて、ロボット1の上体姿勢を、前記第1要素配置に対応する上体姿勢と単純化モデル歩容の上体姿勢との重み付け平均に規制した上で、前記条件2を満足するような第2変位次元補正用モデルの各質点の位置(あるいは各質点の位置とイナーシャをもつリンクの姿勢角)が第2変位次元補正用モデルの第2要素配置として決定される。そして、この第2要素配置に対応する上体位置姿勢が、そのまま変位次元補正上体位置姿勢として決定される。
本明細書の各実施形態では、上記した如く、第1変位次元補正用モデルおよび第2変位次元補正用モデルを用いて、単純化モデル歩容の目標上体位置姿勢を補正してなる変位次元補正上体位置姿勢が求められる。前記図6のフローチャートのS024の処理は、上記の如く変位次元補正上体位置姿勢を求める処理である。
以下、第1実施形態の説明に戻って、該第1実施形態でのS024のサブルーチン処理を図10を参照して具体的に説明する。なお、ここでは、本明細書の実施形態の理解の便宜上、サジタルプレーン(X軸、Z軸を含む平面)上での上体位置姿勢の補正(変位次元補正上体位置姿勢の算出)について説明し、ラテラルプレーン(Y軸、Z軸を含む平面)上での上体位置姿勢の補正に関しては省略する。
まず、S100において、第1変位次元補正用モデルと第2変位次元補正用モデルとの間の重心に関する前記条件1と、角運動量積に関する前記条件2とを満足するように第1仮補正上体位置姿勢(Pb21,θb21)(第1仮補正上体位置Pb21と第1仮補正上体姿勢θb21との組)が決定される。より正確に言えば、両モデル間での前記条件1,2を満足するように第2変位次元補正用モデルの前記第1要素配置が決定され、その第1要素配置における上体質点A1の位置および上体リンクの姿勢に対応するロボット1の上体位置姿勢が前記第1仮補正上体位置姿勢(Pb21,θb21)として決定される。
このS100の処理は、図11のサブルーチン処理によって実行される。以下説明すると、まず、S200において、今回時刻(現在時刻)tでの単純化モデル歩容の瞬時値(目標上体位置姿勢などの目標運動の瞬時値)を基に、第1変位次元補正用モデルの各質点A1〜A5の位置と、イナーシャをもつ上体3(上体リンク)の姿勢角とを求める。具体的には、単純化モデル歩容でのロボット1の全体重心の位置と、第1変位次元補正用モデル上でのロボット1の全体重心の位置とが等しくなるように第1変位次元補正用モデルの各質点A1〜A5の位置が決定される。この場合、本実施形態では、単純化モデル歩容でのロボット1の全体重心の位置は、単純化モデルの上体質点3mの位置に一致するので、その位置は、単純化モデル歩容の目標上体位置姿勢から一義的に定まる。そして、第1変位次元補正用モデルでは、前記した通り各質点A1〜A5の相対的位置関係が拘束されているので、それらの質点A1〜A5の全体重心の位置(第1変位次元補正用モデルでのロボット1の全体重心の位置)を単純化モデルの上体質点3mの位置に一致させることで、各質点A1〜A5の位置が一義的に決定されることとなる。また、第1変位次元補正用モデルの上体リンクの姿勢角は、単純化モデル歩容の上体姿勢角(本実施形態では鉛直姿勢)と同一とされる。これにより単純化モデル歩容の瞬時運動(今回時刻tの瞬時値)から、第1変位次元補正用モデルに係る前記幾何学的拘束条件(1)に従って、第1変位次元補正用モデルの各要素の配置が決定されることとなる。なお、この第1変位次元補正用モデルの要素の配置は、本発明の第1発明における「第1の配置」に相当するものである。
次いで、S202からの処理が実行され、第1変位次元補正用モデルに対して前記条件1、2を満たすような第2変位次元補正用モデルの各質点A1〜A5の位置と、イナーシャをもつ上体3(上体リンク)の姿勢角との組、すなわち、第2変位次元補正用モデルの前記第1要素配置が探索的に決定され、その第1要素配置における上体質点A1および上体リンクの姿勢に対応するロボット1の上体位置姿勢が第1仮補正上体位置姿勢(Pb21,θb21)として決定される。
さらに詳細には、まず、S202において、第1仮補正上体位置姿勢の初期候補(Pb21_s,θb21_s)を決定する。初期候補(Pb21_s,θb21_s)は、今回時刻t(現在時刻t)での第1仮補正上体位置Pb21および第1仮補正上体姿勢θb21の概略的な予想値に相当するものであり、例えば次のように決定される。すなわち、今回時刻tでの第1仮補正上体位置Pb21と単純化モデル歩容の上体位置Pbとの差分(位置のずれ量)は、前回時刻(前回の制御周期の時刻)t−ΔtでのPb21とPbとの差分に近いと考えられる。同様に、今回時刻tでの第1仮補正上体姿勢θb21と単純化モデル歩容の上体姿勢θbとの差分(姿勢角のずれ量)は、前回時刻t−Δtでのθb21とθbとの差分に近いと考えられる。そこで、初期候補(Pb21_s,θb21_s)を、今回時刻tでのPb,θbと、前回時刻t−ΔtでのPb,θbの値Pb_p,θb_pと、前回時刻t−ΔtでのPb21,θb21の値Pb21_p,θb21_pとから次式により決定する。
Pb21_s=Pb+(Pb21_p−Pb_p) …式04a
θb21_s=θb+(θb21_p−θb_p) …式05a
次いで、S204を経て、S206〜S216のループ処理を実行する。S206では、第1仮補正上体位置姿勢の現在の候補(Pb21_s,θb21_s)と、今回時刻tでの単純化モデル歩容の目標両足平位置姿勢とを基に、第2変位次元補正モデルでの各質点A1〜A5の位置を求める。この場合、第2変位次元補正用モデルでのロボット1の上体3の位置姿勢が現在の候補(Pb21_s,θb21_s)に一致し、且つ、第2変位次元補正用モデルでのロボット1の各足平22の位置姿勢が単純化モデル歩容の目標足平位置姿勢に一致しているとして、各質点A1〜A5の位置が求められる。別の言い方をすれば、単純化モデル歩容の瞬時運動のうちの、上体位置姿勢の瞬時値のみを候補(Pb21_s,θb21_s)で置き換えた瞬時運動から、前記幾何学的拘束条件(2)に従って、第2変位次元補正用モデルにおける各質点A1〜A5の位置が求められる。
具体的には、足平質点A3,A4の位置は、目標足平位置姿勢から決定される。また、上体質点A1の位置は、候補(Pb21_s,θb21_s)から決定され、上体3(上体リンク)の姿勢角はθb21_sと同一とされる。そして、各大腿質点A2,A3の位置は、目標両足平位置姿勢と候補(Pb21_s,θb21_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)は、図13に示す如く、斜線もしくは網掛けを付した各三角形の面積の2倍の大きさの量に相当する。なお、図13では、第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に第1仮補正上体姿勢の候補の現在値θb21を代入することで、モデル間角運動量積ずれLc_errが算出される。
上述のようにS208において、モデル間全体重心ずれGc_errとモデル間角運動量積ずれL_errを求めた後、S210に進んで、Gc_errとL_errとが0近傍の所定の範囲内にあるか否かが判断される。そして、この判断結果がYESである場合には、S212を経て、後述のS218に進む。一方、その判断結果がNOである場合には、S214に進んで、第1仮補正上体位置姿勢の現在の候補(Pb21_s,θb21_s)の近辺に複数の仮候補(Pb21_s+ΔPb21x,θb21_s)、(Pb21_s+ΔPb21z,θb21_s)、(Pb21_s,θb21_s+Δθb21)を決める。ΔPb21x、ΔPb21yはそれぞれ第1仮補正上体位置の候補Pb21_sを現在値からX軸方向、Y軸方向に微小量変化させるための所定値であり、Δθb21は第1仮補正上体姿勢の候補θb21をY軸まわりに微小量変化させるための所定値である。そして、これらの各仮候補に対して、前記S206、S208と同じ処理を実行して、モデル間全体重心ずれGc_errとモデル間角運動量積ずれL_errとを求める。このS214の処理は、第1仮補正上体位置姿勢の候補(Pb21_s,θb21_s)を現在値から変化させたときのGc_errとL_errとの変化の度合いを観測するための処理である。
次いで、S216に進んで、S208およびS214で求めたGc_err、L_errを基に、それらの値が0に近づくように第1仮補正上体位置姿勢の新たな候補を決定し、それを(Pb21_s,θb21_s)に代入する。新たな候補は、例えばヤコビアン(感度マトリクス)を用いて決定される。そして、S206からの処理が再び実行される。
以上のようにして、S206〜S216のループ処理によって、Gc_errとL_errとが0近傍の所定の範囲内に収まるような第1仮補正上体位置姿勢、換言すれば、前記条件1,2を満たすような第1仮補正上体位置姿勢が探索的に求められる。補足すると、S210の条件が満たされたときの第1仮補正上体位置姿勢と、このS210の直前のS206で求められた各質点の位置との組が、前記第1要素配置に相当するものとなる。また、この第1要素配置は、本発明の第1発明における「第2の配置」に相当するものである。
そして、S210の判断結果がYESになると、S212を経てS218に進み、現在の(Pb21_s,θb21_s)が今回時刻tにおける第1仮補正上体位置姿勢(Pb21,θb21)として決定される。これにより、単純化モデル歩容の上体位置姿勢を前記条件1,2を満たすように補正してなる歩容(以下、第1仮補正歩容ということがある)が得られることとなる。この第1仮補正歩容は、単純化モデル歩容のうちの、目標上体位置姿勢のみを補正したものであり、目標足平位置姿勢、目標ZMP、目標床反力鉛直成分など、目標歩容の他の構成要素は単純化モデル歩容と同一である。また、この第1仮補正歩容の運動は、S210の条件が満たされたときの第2変位次元補正用モデルの配置(前記第1要素配置)から、前記幾何学的拘束条件(2)に従って決定される瞬時目標運動と同じである。また、この第1仮補正歩容の運動は、本発明の第1発明における第1の仮補正瞬時目標運動に相当する。従って、S100の処理によって、本発明の第1発明おける第1仮補正運動決定手段が構成されていることとなる。
以上がS100のサブルーチン処理である。
図10のフローチャートの説明に戻って、上述したようにS100の処理を実行した後、S102の処理が実行される。このS102の処理では、第2変位次元補正用モデルでの上体姿勢を単純化モデル歩容の瞬時値(今回時刻tでの瞬時値)における上体姿勢と同一にして、第1変位次元補正用モデルと第2変位次元補正用モデルとの間の角運動量積に関する前記条件2を満足するように第2仮補正上体位置姿勢(Pb22,θb22)(第2仮補正上体位置Pb22と第2仮補正上体姿勢θb22との組)が決定される。より正確に言えば、第2変位次元補正用モデルでの上体姿勢を単純化モデル歩容の上体姿勢と同一にした上で、両モデル間での前記条件2を満足するように第2変位次元補正用モデルの前記第2要素配置が決定され、その第2要素配置における上体質点A1の位置および上体リンクの姿勢に対応するロボット1の上体位置姿勢が前記第2仮補正上体位置姿勢(Pb22,θb22)として決定される。なお、このS102の処理では、第2仮補正上体姿勢θb22は、単純化モデル歩容の上体姿勢と同一にされるので、該S102の処理は、実質的には、条件2を満足するように第2仮補正上体位置Pb22を決定する処理であると言える。
このS102の処理は、図12のサブルーチン処理によって実行される。以下説明すると、まず、S300において、今回時刻(現在時刻)tでの単純化モデル歩容の瞬時値(目標上体位置姿勢などの目標運動の瞬時値)を基に、第1変位次元補正用モデルの各質点A1〜A5の位置と、イナーシャをもつ上体3(上体リンク)の姿勢角とを求める。この処理は、図11のS200の処理と同じであり、求められる第1変位次元補正用モデルの各要素の配置もS200の処理で求められるものと同一である。従って、S200で求めた第1変位次元補正用モデルの各要素の配置を、そのまま図12のサブルーチン処理で用いるようにすれば、S300の処理は省略してもよい。
次いで、S302からの処理が実行され、第1変位次元補正用モデルに対して前記条件2を満たすような第2変位次元補正用モデルの各質点A1〜A5の位置と、イナーシャをもつ上体3(上体リンク)の姿勢角との組、すなわち、第2変位次元補正用モデルの前記第2要素配置が探索的に決定され、その第2要素配置における上体質点A1および上体リンクの姿勢に対応するロボット1の上体位置姿勢が第2仮補正上体位置姿勢(Pb22,θb22)として決定される。但し、この場合、第2仮補正上体姿勢θb22は、単純化モデル歩容の瞬時値(今回時刻tの瞬時値)と同一とされる。従って、S302からの処理は、実質的には、第2仮補正上体位置Pb22を前記条件2を満たすように決定する処理である。
さらに詳細には、まず、S302において、第2仮補正上体位置姿勢の初期候補(Pb22_s,θb22_s)を決定する。すなわち、初期候補(Pb22_s,θb22_s)のうちの、Pb22_sを、今回時刻tでの単純化モデル歩容の上体位置Pbと、前回時刻t−Δtでの単純化モデル歩容の上体位置の値Pb_pと、前回時刻t−Δtでの第2仮補正上体位置の値Pb22_pとから次式04bにより決定すると共に、今回時刻tでの単純化モデル歩容の上体姿勢θbから次式05bにより決定する。
Pb22_s=Pb+(Pb22_p−Pb_p) …式04b
θb21_s=θb …式05b
従って、第2仮補正上体位置の初期候補Pb22_sは、前記S202で先に説明したように決定される第1仮補正上体位置の初期候補Pb21_sと同様に決定される一方、第2仮補正上体姿勢の初期候補θb22_sは、単純化モデル歩容の上体姿勢と同一とされる。
次いで、S304を経て、S306〜S316のループ処理を実行する。S306では、第2仮補正上体位置姿勢の現在の候補(Pb22_s,θb22_s)と、今回時刻tでの単純化モデル歩容の目標両足平位置姿勢とを基に、第2変位次元補正モデルでの各質点A1〜A5の位置を求める。この処理は、候補(Pb22_s,θb22_s)の値以外は、前記S206と同じであり、今回時刻tでの単純化モデル歩容の瞬時運動のうちの、上体位置姿勢のみを候補(Pb22_s,θb22_s)で置き換えた瞬時運動から、前記幾何学的拘束条件(2)に従って、第2変位次元補正用モデルにおける各質点A1〜A5が求められる。
次いで、S308に進み、第1変位次元補正用モデルと第2変位次元補正用モデルとの間でのモデル間角運動量積ずれL_errを求める。この求め方は、前記S208でモデル間角運動量積ずれを求める場合と同様である。すなわち、前記式(7)のPi1にS300で求めた第1変位次元補正用モデルの各質点A1〜A5の位置を代入すると共に、同式(7)のPi2に、S306で求めた各質点A1〜A5の位置を代入し、さらに、式(7)のθb2に第2仮補正上体姿勢の候補の現在値θb22(=今回時刻tのθb)を代入することで、モデル間角運動量積ずれLc_errが算出される。なお、式(7)の代わりに前記式(8)〜(10)を用いてもよい。
次いで、S310に進んで、L_errが0近傍の所定の範囲内にあるか否かが判断される。そして、この判断結果がYESである場合には、S312を経て、後述のS318に進む。一方、その判断結果がNOである場合には、S314に進んで、第2仮補正上体位置姿勢の現在の候補(Pb22_s,θb22_s)の近辺に、該候補の上体位置Pb22_sのみを微小量変化させた複数の仮候補(Pb22_s+ΔPb22x,θb22_s)、(Pb22_s+ΔPb22y,θb22_s)を決める。ΔPb22x、ΔPb22yはそれぞれ第1仮補正上体位置の候補Pb22_sを現在値からX軸方向、Y軸方向に微小量変化させるための所定値である。そして、これらの各仮候補に対して、前記S306、S308と同じ処理を実行して、モデル間角運動量積ずれL_errとを求める。このS314の処理は、第2仮補正上体位置姿勢の候補(Pb22_s,θb22_s)のうちの上体位置の候補だけを現在値から変化させたときのL_errとの変化の度合いを観測するための処理である。
次いで、S316に進んで、S308およびS314で求めたL_errを基に、その値が0に近づくように第2仮補正上体位置姿勢の新たな候補を決定し、それを(Pb22_s,θb22_s)に代入する。新たな候補は、例えばヤコビアン(感度マトリクス)を用いて決定される。そして、S306からの処理が再び実行される。
以上のようにして、S306〜S316のループ処理によって、第2仮補正上体姿勢を単純化モデル歩容の上体姿勢と同じにした状態で、L_errが0近傍の所定の範囲内に収まるような第2仮補正上体位置、換言すれば、前記条件2を満たすような第2仮補正上体位置が探索的に求められる。補足すると、S310の条件が満たされたときの第2仮補正上体位置姿勢と、このS310の直前のS306で求められた各質点の位置との組が、前記第2要素配置に相当するものとなる。また、この第2要素配置は、本発明の第1発明における「第3の配置」に相当するものである。
そして、S310の判断結果がYESになると、S312を経てS318に進み、現在の(Pb22_s,θb22_s)が今回時刻tにおける第2仮補正上体位置姿勢(Pb22,θb22)として決定される。これにより、単純化モデル歩容の上体位置を前記条件2を満たすように補正してなる歩容(以下、第2仮補正歩容ということがある)が得られることとなる。この第2仮補正歩容は、単純化モデル歩容のうちの、目標上体位置のみを補正したものであり、目標上体姿勢、目標足平位置姿勢、目標ZMP、目標床反力鉛直成分など、目標歩容の他の構成要素は単純化モデル歩容と同一である。また、この第2仮補正歩容は、S310の条件が満たされたときの第2変位次元補正用モデルの配置(前記第2要素配置)から、前記幾何学的拘束条件(2)に従って決定される瞬時目標歩容と同じである。また、この第2仮補正歩容の運動は、本発明の第1発明における第2の仮補正瞬時目標運動に相当する。従って、S102の処理によって、本発明の第1発明における第2仮補正運動決定手段が構成されていることとなる。
以上がS102のサブルーチン処理である。
図10のフローチャートの説明に戻って、上述したようにS102の処理を実行した後、S104の処理が実行される。この処理では、前記第1仮補正上体位置姿勢および第2仮補正上体位置姿勢から最終的に変位次元補正上体位置姿勢を決定するための重みw1に関する基本値w1_aim(以下、重み基本値w1_aimという)が決定される。具体的には、今回歩容に係るロボット1の動作モードが前記走行モードである場合には、w1_aim=1、前記低摩擦床面歩行モードである場合には、w1_aim=0.5、これら以外の動作モード(すなわち前記通常モード)である場合には、w1_aim=0とされる。
次いで、S106において、重みw1の値を現在値(前回時刻t−Δtに決定された値)から、今回時刻tのS104で上記の如く決定した重み基本値w1_aimに徐々に近づけるように決定する。具体的には、例えば、重みw1の現在値と重み基本値w1_aimとの差に所定の係数値(0<係数値<1)を乗算したものを、重みw1の現在値に加えることで、今回時刻tでの重みw1を決定する。このようにすることで、重みw1は、重み基本値w1_aimに応答遅れを伴いつつ徐々に追従するように決定される。これは、ロボット1の動作モードが変わって、重み基本値w1_aimが変わったときに、重みw1の値の急変(不連続な変化)を避けるための処理である。なお、重みw1は、重み基本値w1_aimが定常的に同じ値に維持されれば、最終的にその重み基本値w1_aimと同じ値に維持されることとなる。
次いで、S108において、他のもう一つの重みw2が決定される。この重みw2は、先に決定した重みw1との和が1になるように決定される。すなわち、重みw2は、次式11により決定される。
w2=1−w1 …式11
次いで、S110において、今回時刻tの変位次元補正上体位置姿勢(Pb2,θb2)が最終的に、次式により決定される。
Pb2=w1*Pb21+w2*Pb22 …式12
θb2=w1*θb21+w2*θb22 …式13
すなわち、変位次元補正上体位置Pb2は、今回時刻tで、前述の如く求めた第1仮補正上体位置Pb21、第2仮補正上体位置Pb22にそれぞれ重みw1,w2を乗じたものの総和、換言すれば、第1仮補正上体位置Pb21、第2仮補正上体位置Pb22の重み付き平均値として求められる。また、変位次元補正上体姿勢θb2は、第1仮補正上体姿勢θb21、第2仮補正上体姿勢θb22にそれぞれ重みw1,w2を乗じたものの総和、換言すれば、第1仮補正上体姿勢θb21および第2仮補正上体姿勢θb22の重み付き平均値として求められる。
以上のようにして、変位次元歩容補正サブルーチンの処理が実行されて、変位次元補正上体位置姿勢が求められる。これにより、単純化モデル歩容の上体位置姿勢を補正してなる目標歩容(以下、変位次元補正歩容ということがある)が得られることとなる。この変位次元補正歩容は、単純化モデル歩容のうちの、目標上体位置姿勢のみを補正したものであり、目標足平位置姿勢、目標ZMP、目標床反力鉛直成分など、目標歩容の他の構成要素は単純化モデル歩容と同一である。
補足すると、第1実施形態における上記変位次元補正歩容の運動は、本発明の第1発明における補正後瞬時目標運動に相当する。従って、S024の変位次元歩容補正サブルーチンの処理によって、該第1発明における目標運動補正手段が構成されることとなる。
ここで、単純化モデル歩容と、この単純化モデル歩容の上体位置姿勢を前記第1仮補正上体位置姿勢に補正してなる歩容(前記第1仮補正歩容)と、単純化モデル歩容の上体位置姿勢を前記第2仮補正上体位置姿勢に補正してなる歩容(前記第2仮補正歩容)と、変位次元補正歩容との関係について図14〜図16を参照して補足説明をしておく。図14は第2変位次元補正用モデルの各質点Ai(i=1,2,…,5)の位置および上体3(上体リンク)の姿勢角を単純化モデル歩容通りに決定した場合(すなわち単純化モデル歩容を前記S024で補正しない場合)における第2変位次元補正用モデルの各質点Aiの位置および上体3(上体リンク)の姿勢角と、該単純化モデル歩容に対応して定まる第1変位次元補正用モデルの各質点Aiの位置および上体3(上体リンク)の姿勢角との関係を例示している。この場合の第2変位次元補正用モデルの各質点Aiの位置および上体3の姿勢角、すなわち、第2変位次元補正用モデルの要素の配置は、別の言い方をすれば、単純化モデル歩容の瞬時運動から、前記幾何学的拘束条件(2)に従って決定されたものと言える。なお、前記図14では、単純化モデル歩容に対応する第2変位次元補正用モデルの各質点Ai(i=1,2,…,5)の位置をPi2'(Ai)で表している。
また、図15は前記第1仮補正歩容に対応する第2変位次元補正用モデルの各質点Aiの位置および上体3(上体リンク)の姿勢角と、第1変位次元補正用モデルの各質点Aiの位置および上体3(上体リンク)の姿勢角との関係を例示している。この図15の第2変位次元補正用モデルの各要素の配置は、図14で想定している単純化モデル歩容の瞬時値に対応して、前記図10のS100で最終的に決定される第2変位次元補正用モデルの前記第1要素配置である。この配置は、前記第1仮補正歩容から、前記幾何学的拘束条件(2)に従って定まるものと同一である。なお、図15では、第1仮補正歩容に対応する第2変位次元補正用モデルの各質点Ai(i=1,2,…,5)の位置をPi21(Ai)で表している。また、図15に示す第1変位次元補正用モデルの各質点Aiの位置および上体3(上体リンク)の姿勢角は、図14と同じである。
また、図16は前記第2仮補正歩容に対応する第2変位次元補正用モデルの各質点Aiの位置および上体3(上体リンク)の姿勢角と、第1変位次元補正用モデルの各質点Aiの位置および上体3(上体リンク)の姿勢角との関係を例示している。この図16の第2変位次元補正用モデルの各要素の配置は、図14で想定している単純化モデル歩容の瞬時値に対応して、前記図10のS102で最終的に決定される第2変位次元補正用モデルの前記第2要素配置である。この配置は、前記第2仮補正歩容から、前記幾何学的拘束条件(2)に従って定まるものと同一である。なお、図16では、第2仮補正歩容に対応する第2変位次元補正用モデルの各質点Ai(i=1,2,…,5)の位置をPi22(Ai)で表している。また、図16に示す第1変位次元補正用モデルの各質点Aiの位置および上体3(上体リンク)の姿勢角は、図14と同じである。
以降の説明では、一般に、第1変位次元補正用モデルのある任意の質点と、これに対応する第2変位次元補正用モデルの質点との位置ずれを並進加速度とみなしたときのその並進加速度を、その質点のモデル間擬似並進加速度という。また、第1変位次元補正用モデルのイナーシャをもつあるリンクと、これに対応する第2変位次元補正用モデルのリンクの姿勢角のずれを角加速度とみなしたときのその角加速度を、そのリンクのモデル間擬似角加速度という。
図14に示す例において、単純化モデル歩容に対応する第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変位次元補正用モデルの上体姿勢とは同一であるので、図14の例では、上体質点A1のモデル間擬似並進加速度は0であり、また、上体リンクのモデル間擬似角加速度も0である。
これに対して、前記第1仮補正歩容に対応する第2変位次元補正用モデルの要素の配置(第1要素配置)、すなわち、前記図10のS100で最終的に決定される第2変位次元補正用モデルの各質点Aiの位置および上体リンクの姿勢角により定まる第2変位次元補正用モデルの要素の配置にあっては、図15に見られるように、両脚体2,2の質点A2〜A5の重心の上記の偏りを補償するようにして、第2変位次元補正用モデルの上体質点A1の位置が、第1変位次元補正用モデルの上体質点A1よりも前方側に決定され、換言すれば、第1仮補正上体位置が単純化モデル歩容よりも前方側に補正される。同時に、第2変位次元補正用モデルの各質点A1〜A5の位置並びにイナーシャをもつ上体3の姿勢は、前記した角運動量積の総和がある一定値になるように決定される。図示の例では、第2変位次元補正用モデルでの上体姿勢(実線で示す上体3の姿勢)は、単純化モデル歩容の上体姿勢(破線で示す上体3の姿勢)に対して、角度θb21−θbだけ後傾している。
このため、第1仮補正歩容に対応する第2変位次元補正用モデルの各質点Aiの位置および上体リンクの姿勢角では、各質点Aiのモデル間擬似並進加速度に伴う慣性力の並進力成分の総和が図14に示した場合よりも小さくなって、ほぼ0になると共に、該慣性力が目標ZMPまわりに作用するモーメントの総和も図14に示した場合よりも所定の値(前記条件2の「一定値」に相当する値)に近づく。
これにより、第1仮補正歩容は、単純化モデル歩容では考慮されていない各脚体の運動に伴う慣性力の影響を補償して、単純化モデル歩容の目標床反力(並進床反力および床反力モーメント、より厳密には、単純化モデル歩容によって単純化モデルが発生する床反力)と同じような床反力が発生するようにロボット1の目標運動(より詳しくは目標上体位置および目標上体姿勢)を補正したものとなる。このため、第1仮補正歩容は、その歩容の運動どおりに実際のロボット1を動作させたときに発生する実床反力が、単純化モデル歩容の運動どおりに実際のロボット1を動作させたときに発生する実床反力よりも、目標床反力(=単純化モデル歩容の床反力)により近いものとなる。つまり、第1仮補正歩容の運動と床反力(並進床反力および床反力モーメント)との間の動力学的精度が単純化モデル歩容の運動と床反力の間の動力学的精度よりも高まることとなる。
一方、前記第2仮補正歩容に対応する第2変位次元補正用モデルの要素の配置(第2要素配置)、すなわち、前記図10のS102で最終的に決定される第2変位次元補正用モデルの各質点Aiの位置および上体リンクの姿勢角により定まる第2変位次元補正用モデルの要素の配置にあっては、図16に見られるように、上体姿勢を単純化モデル歩容の瞬時上体姿勢と同じに維持したまま、第2変位次元補正用モデルの各質点A1〜A5の位置が、前記した角運動量積の総和がある一定値になるように決定される。
このため、第2仮補正歩容に対応する第2変位次元補正用モデルの各質点Aiの位置および上体リンクの姿勢角では、各質点Aiのモデル間擬似並進加速度に伴う慣性力が目標ZMPまわりに作用するモーメントの総和が図14に示した場合よりも所定の値(前記条件2の「一定値」に相当する値)に近づく。
これにより、第2仮補正歩容は、ロボット1の目標上体姿勢を単純化モデル歩容の上体姿勢と同じに維持しながら、単純化モデル歩容では考慮されていない各脚体の運動に伴う慣性力の影響を補償して、単純化モデル歩容の床反力モーメントと同じような床反力モーメントが発生するように、ロボット1の目標上体位置を補正したものとなる。このような第2仮補正歩容は、その歩容の運動どおりに実際のロボット1を動作させたときに発生する実床反力モーメントが、単純化モデル歩容の運動どおりに実際のロボット1を動作させたときに発生する実床反力モーメントよりも、目標床反力モーメント(=単純化モデル歩容の床反力モーメント)により近いものとなる。つまり、第2仮補正歩容の運動と床反力モーメントとの間の動力学的精度が単純化モデル歩容の運動と床反力モーメントとの間の動力学的精度よりも高まることとなる。但し、第2仮補正歩容を決定する(第2変位次元補正用モデルの第2要素配置を決定する)ときには、第1および第2変位次元補正用モデルの間の全体重心のずれは考慮していないので、第2仮補正歩容の運動と並進床反力との間の動力学的な精度は、必ずしも単純化モデル歩容の運動と並進床反力との間の動力学的な精度よりも高まるとは限らない。
上述したような第1仮補正歩容の上体位置姿勢と第2仮補正歩容の上体位置姿勢とから、S024の変位次元歩容補正サブルーチンで最終的に決定される変位次元補正歩容の上体位置姿勢、すなわち変位次元補正上体位置姿勢は、前記式12および式13によって決定される。この場合、ロボット1の動作モードが定常的に前記通常モード(走行モードおよび低摩擦床面歩行モード以外の動作モードで、摩擦係数の高い通常的な床面をロボット1の歩行などを行う動作モード)であるときには(このときw1=0,w2=1)、変位次元補正上体姿勢が単純化モデルで想定している姿勢(基準姿勢)、具体的には本実施形態では鉛直姿勢に維持されると共に、変位次元補正上体位置は、第2仮補正歩容の上体位置(第2仮補正上体位置)と同一になる。このため、変位次元補正歩容は、上体姿勢を変動させない(上体姿勢を補正しない)ようにしつつ、単純化モデル歩容の上体位置を補正して、変位次元補正歩容の運動と床反力モーメントとの間の動力学的な精度を単純化モデル歩容よりも高めることができる歩容となる。つまり、変位次元補正歩容の運動は、これに従って実際のロボット1を動作させたときに、単純化モデル歩容の運動に従って実際のロボット1を動作させたときよりも精度よく目標ZMPを満足するものとなる。
また、ロボット1の動作モードが定常的に走行モードであるときには(このときw1=1,w2=0)、変位次元補正上体姿勢および変位次元補正上体位置が、それぞれ第1仮補正歩容の上体姿勢(第1仮補正上体姿勢)と同一になる。このため、変位次元補正歩容は、単純化モデル歩容の上体位置および上体姿勢の両者を補正して、変位次元補正歩容の運動と床反力(並進床反力および床反力モーメント)との間の動力学的な精度を単純化モデル歩容よりも高めることができる歩容となる。補足すると、走行モードでは、目標床反力鉛直成分が0に近い時期(ロボット1と床面との間の摩擦力が微小となる時期)が必然的に存在することとなる。そして、そのような時期では、一般には、上体3の並進加速度をほとんど操作できないことから、上体姿勢を一定に維持したままでは目標ZMPを満足することはできず、上体姿勢の変化が必要となる。このため、本実施形態では、ロボット1の動作モードが定常的に走行モードであるときには、変位次元補正歩容の動力学的な精度を高めることを重視し、変位次元補正上体を姿勢が第1仮補正上体姿勢と同一になるようにしている。
また、ロボット1の動作モードが定常的に低摩擦床面歩行モードであるときには(このときw1=w2=0.5)、変位次元補正上体姿勢は、第1仮補正歩容の上体姿勢角の1/2の姿勢角(第1仮補正歩容の上体姿勢角よりも鉛直方向に対する傾き角が小さい上体姿勢角、より厳密には、第1仮補正歩容の上体姿勢角の1/2と第2仮補正歩容の上体姿勢角の1/2との和)とされ、変位次元補正上体位置は、第1仮補正歩容の上体位置と第2仮補正歩容の上体位置との中間位置とされる。このため、変位次元補正歩容は、上体姿勢の変動を抑制しつつ、変位次元補正歩容の運動と床反力(並進床反力および床反力モーメント)との間の動力学的な精度を単純化モデル歩容よりも高めるように単純化モデル歩容の上体位置および上体姿勢の両者を補正したものとなる。この場合、変位次元補正上体位置を、第1仮補正歩容の上体位置と第2仮補正歩容の上体位置との中間位置とすることで、変位次元補正歩容の運動によってロボット1に発生する並進慣性力水平成分が過大になるのを防止することができる。同時に、変位次元補正上体姿勢を、第1仮補正歩容の上体姿勢角よりも小さい傾き角にすることで、上体姿勢の変動を抑制しつつ、目標ZMPを満足することもできる。従って、ロボット1の動作モードが定常的に低摩擦床面歩行モードであるときには、変位次元補正歩容は、単純化モデル歩容よりも動力学的精度を高めつつ、且つ、上体姿勢の変動を極力抑えつつ、且つ、ロボット1のスリップを防止しつつ、ロボット1の安定な動作を可能とする歩容となる。
なお、ロボット1の動作モードが切り替る際には、前記図10のS106の処理によって、重みw1の値を(ひいては、重みw2も)徐々に変化させるので、変位次元補正上体姿勢や変位次元補正上体位置が急変することはない。
図9の説明に戻って、前述の如く変位次元歩容補正サブルーチンを実行した後、S026に進んで、ロボット1のスピン(鉛直軸まわりの回転)をキャンセルするための腕体の動作が決定される。この処理は、ロボット1の腕を振らずに目標歩容通りにロボット1を運動させた場合に目標ZMPまわりに発生する床反力モーメントの鉛直成分と逆向きの床反力モーメントを腕体の腕振り(両腕を前後逆方向に振る運動)によって発生させるように腕体の姿勢を決定するものであり、前記公報文献1の図13のS034と同様に行われる。その詳細は、同公報文献1に記載されているので、ここではさらなる説明を省略する。
次いで、S028に進んで、フルモデル補正用(前記フルモデル補正部100eの処理用)のZMP許容範囲の瞬時値と、床反力水平成分許容範囲の瞬時値とが決定される。これは、前記目標瞬時値発生部100bで実行される処理であり、前記S020で決定した今回歩容パラメータのうちのZMP許容範囲および床反力水平成分許容範囲を規定する歩容パラメータに基づいて決定される。
次いで、S030に進んで、フルモデルを用いた補正歩容を発生する。この処理は、前記フルモデル補正部100eにより実行される処理である。この場合、この処理は、前記公報文献1の図13のS038の処理と同一であり、同公報文献1に記載されたとおりに実行される。従って、本明細書では詳細な説明は省略する。この処理により、目標上体位置姿勢(前記変位次元補正歩容の上体位置姿勢)をさらに修正してなる補正目標上体位置姿勢と補正目標床反力モーメントとが決定される。
なお、前記フルモデル補正部100eで用いるフルモデルは、例えば図17に示す如く、ロボット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の変形を考慮しつつ、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乗)の重み付き平均が最小になるように制御する。これにより、実際の足平位置姿勢と全床反力とが目標足平位置姿勢と目標全床反力とに概ね従うように制御される。
[第2実施形態]
次に、本発明の第2実施形態を図18〜図22を参照しつつ説明する。本実施形態は、ロボット1および制御ユニット60の構成は第1実施形態と同一で、単純化モデルおよび第1変位次元補正用モデルと、歩容生成装置100の処理の一部とが第1実施形態と相違するものである。従って、本実施形態の説明では、第1実施形態と同一部分については第1実施形態と同じ符号および図面を用い、詳細な説明を省略する。なお、第2実施形態は、本発明の第1、3、4、7〜10、13〜15発明の一実施形態である。
図18は、本実施形態での単純化モデル(動力学モデル)の構造を示し、図19は本実施形態での第1変位次元補正用モデルの構造を示している。
図18に示す本実施形態の単純化モデルは、ロボット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の質量のほか、両腕体の質量を含んでいる。
この単純化モデルの動力学を記述する式(運動方程式)は、以下の式14〜16により表される。但し、本明細書の理解の便宜上、ここではサジタルプレーン(前後軸(X軸)と鉛直軸(Z軸)を含む平面)での運動方程式のみを記述し、ラテラルプレーン(左右軸(Y軸)と鉛直軸(Z軸)を含む平面)での運動方程式は省略する。また、式14〜16の変数は以下のように定義する。
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) ……式14
Fx=mb*d2Xb/dt2+msup*d2Xsup/dt2+mswg*d2Xswg/dt2 ……式15
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
……式16
かかる単純化モデルを用いる第2実施形態では、後述する如く、前記公報文献1と全く同様に、目標ZMPを満足する単純化モデル歩容が生成される。
補足すると、この第2実施形態の単純化モデルは、各脚体2の膝関節の曲げ動作に伴う該膝関節の近傍部位の運動によって発生する慣性力は無視されている。つまり、第2実施形態の単純化モデルは、各脚体2の膝関節の曲げ動作に伴う該膝関節の近傍部位の運動によって発生する慣性力を0と見なして構築された動力学モデルであると言える。
次に、図19を参照して本実施形態の第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実施形態では、この幾何学的拘束条件(3)が本発明における第1の幾何学的拘束条件に相当するものである。
なお、本実施形態では、第2変位次元補正用モデルの構造は、前記図8に示した第1実施形態のものと同じ構造であり、本実施形態(第2実施形態)における第1変位次元補正用モデルと同様に、上体質点A1、大腿質点A2,A3、および足平質点A4,A5を有し、また、上体リンクにイナーシャIbをもっている。この場合、上体質点A1,各足平質点A4,A5の、対応する部位(上体3、各足平22)に固定されたローカル座標系での位置は、図19の第1変位次元補正用モデルと同じである。また、各質点A1〜A5の質量は、図19の第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になり、且つ、床反力水平成分が単純化モデル歩容用の床反力水平成分許容範囲を超えないように目標上体位置姿勢の瞬時値が決定される。ここで、目標上体位置姿勢の瞬時値に関して補足すると、目標上体位置鉛直成分は、目標床反力鉛直成分と前記式14とから求められる単純化モデルの上体質点3m2の鉛直位置に対応して決定される。そして、目標床反力鉛直成分が比較的大きい時期では、主に上体3の水平加速度を調整して、目標ZMPまわりのモーメント水平成分が0になるようにしつつ、目標上体姿勢の瞬時値が基準上体姿勢(例えば鉛直姿勢)に近づくように目標上体姿勢および目標上体位置水平成分が決定される。また、目標床反力鉛直成分が比較的小さいか、もしくは0となる時期では、上体3の水平加速度をほぼ0にしつつ(厳密には、全体重心の水平加速度をほぼ0にしつつ)、主に上体3の姿勢角の角加速度を調整して、目標ZMPまわりのモーメント水平成分が0になるように、目標上体姿勢および目標上体位置水平成分の瞬時値が決定される。
なお、S022の処理で用いる単純化モデル歩容用の床反力水平成分許容範囲は、前記S020の処理で用いるものと同一でよい。
次いで、S024に進んで変位次元補正サブルーチンが実行される。このサブルーチン処理は、基本的処理手順は、前記第1実施形態と同一であり、前記図10のフローチャートに従って実行される。すなわち、まず、S100において、前記第1実施形態と同様に、第1変位次元補正用モデルと第2変位次元補正用モデルとの間の重心に関する前記条件1と、角運動量積に関する前記条件2とを満足するように第1仮補正上体位置姿勢(Pb21,θb21)が決定される。この処理は、第1実施形態と同様に、図11のサブルーチン処理によって実行される。
具体的には、S200において、今回時刻(現在時刻)tでの単純化モデル歩容の瞬時値(目標上体位置姿勢などの目標運動の瞬時値)を基に、第1変位次元補正用モデルの各質点A1〜A5の位置と、イナーシャをもつ上体3(上体リンク)の姿勢角とを求める。この場合、前記したように、第1変位次元補正用モデルの上体質点A1の位置は、単純化モデル歩容の上体位置姿勢の瞬時値に対応する位置に決定され、各足平質点A4,A5のグローバル座標系での位置は、単純化モデル歩容の各足平位置姿勢に対応する位置に決定される。また、各大腿質点A2,A3の位置は、単純化モデル歩容の上体位置姿勢と各足平位置姿勢を基に定まるロボット1の各脚体2の股関節の中心点と足首関節の中心点とを結ぶ線分を、所定の比率で内分してなる内分点の位置に決定される。また、第1変位次元補正用モデルの上体リンクの姿勢角は、単純化モデル歩容の上体姿勢角と同一とされる。
これにより単純化モデル歩容の瞬時運動(今回時刻tの瞬時値)から、本実施形態での第1変位次元補正用モデルに係る前記幾何学的拘束条件(3)に従って、第1変位次元補正用モデルの各要素の配置が決定されることとなる。なお、この第1変位次元補正用モデルの要素の配置は、本発明の第1発明における「第1の配置」に相当するものである。
次いで、S202からS218までの処理が実行される。これらの処理は、第1実施形態と同じである。すなわち、前記条件1,2を満たすような第1仮補正上体位置姿勢が探索的に求められ、それが、今回時刻tにおける第1仮補正上体位置姿勢(Pb21,θb21)として決定される。これにより、単純化モデル歩容の上体位置姿勢を前記条件1,2を満たすように補正してなる歩容(第1仮補正歩容)が得られる。この第1仮補正歩容の運動は、S210の条件が満たされたときの第2変位次元補正用モデルの配置(前記第1要素配置)から、前記幾何学的拘束条件(2)に従って決定される瞬時目標運動と同じである。
補足すると、本実施形態では、各変位次元補正用モデルの両足平質点A4,A5の位置は、両変位次元補正用モデルで同じである。従って、S208でモデル間全体重心ずれGc_errとモデル間角運動量積ずれL_errとを算出するに当たっては、両足平質点A4,A5に係わる項は省略してもよい。
上述したようにS100の処理を実行した後、S102の処理が前記第1実施形態と同様に実行され、第2変位次元補正用モデルでの上体姿勢を単純化モデル歩容の瞬時値(今回時刻tでの瞬時値)における上体姿勢と同一にして、第1変位次元補正用モデルと第2変位次元補正用モデルとの間の角運動量積に関する前記条件2を満足するように第2仮補正上体位置姿勢(Pb22,θb22)が決定される。なお、このS102の処理では、第2仮補正上体姿勢θb22は、単純化モデル歩容の上体姿勢と同一にされるので、該S102の処理は、実質的には、条件2を満足するように第2仮補正上体位置Pb22を決定する処理であると言える。
この処理は、第1実施形態と同様に、図12のサブルーチン処理によって実行される。
具体的には、S300において、今回時刻(現在時刻)tでの単純化モデル歩容の瞬時値を基に、第1変位次元補正用モデルの各質点A1〜A5の位置と、イナーシャをもつ上体3(上体リンク)の姿勢角とを求める。この処理およびそれにより求められる第1変位次元補正用モデルの要素の配置は、本実施形態での図11のS200の処理と同じである。従って、本実施形態においても、S200で求めた第1変位次元補正用モデルの各要素の配置を、そのまま図12のサブルーチン処理で用いるようにすれば、S300の処理は省略してもよい。
次いで、S302〜S318までの処理が第1実施形態と同様に実行される。これらの処理は、第1実施形態と同じである。すなわち、上体姿勢が単純化モデル歩容の上体姿勢と同一で、且つ、前記条件2を満たすような第2仮補正上体位置姿勢が探索的に求められ、それが、今回時刻tにおける第2仮補正上体位置姿勢(Pb22,θb22)として決定される。これにより、単純化モデル歩容の上体位置のみを前記条件2を満たすように補正してなる歩容(第2仮補正歩容)が得られる。この第2仮補正歩容は、S310の条件が満たされたときの第2変位次元補正用モデルの配置(前記第2要素配置)から、前記幾何学的拘束条件(2)に従って決定される瞬時目標歩容と同じである。
補足すると、本実施形態では、各変位次元補正用モデルの両足平質点A4,A5の位置は、両変位次元補正用モデルで同じであので、前記S208の処理の場合と同様、S308でモデル間角運動量積ずれL_errとを算出するに当たっては、両足平質点A4,A5に係わる項は省略してもよい。
上述したようにS102の処理を実行した後、S104〜S110の処理が第1実施形態と同様に実行される。これらの処理は、第1実施形態と全く同一である。これにより、今回時刻tにおける変位次元補正上体位置姿勢(Pb2,θb2)が決定され、単純化モデル歩容の上体位置姿勢を補正してなる変位次元補正歩容が得られる。
本実施形態(第2実施形態)では、以上のように図9のS024の処理(変位次元歩容補正サブルーチン)を実行した後、S026〜S032の処理が第1実施形態と同様に実行される。これらの処理は、第1実施形態と同一である。
なお、歩容生成装置100で以上説明したように生成される目標歩容を入力する複合コンプライアンス制御装置101の動作は前記第1実施形態と同一である。
また、補足すると、第2実施形態における変位次元歩容補正サブルーチンの処理は、本発明の第1発明における目標運動補正手段を構成しており、この処理で決定される変位次元補正歩容の運動が該第1発明における補正後瞬時目標運動に相当する。また、第2実施形態におけるS100の処理、S102の処理が、それぞれ第1発明における第1仮補正運動決定手段、第2仮補正運動決定手段に相当し、それぞれの処理で決定される第1仮補正歩容、第2仮補正歩容がそれぞれ第1発明における第1の仮補正瞬時目標運動、第2の仮補正瞬時目標運動に相当する。
ここで、本実施形態での単純化モデル歩容と、前記第1仮補正歩容と、前記第2仮補正歩容と、変位次元補正歩容との関係について図20〜図22を参照して補足説明をしておく。図20は第2変位次元補正用モデルの各質点Ai(i=1,2,…,5)の位置および上体3(上体リンク)の姿勢角を単純化モデル歩容通りに決定した場合(すなわち単純化モデル歩容を前記S024で補正しない場合)における第2変位次元補正用モデルの各質点Aiの位置および上体3(上体リンク)の姿勢角と、該単純化モデル歩容に対応して定まる第1変位次元補正用モデルの各質点Aiの位置および上体3(上体リンク)の姿勢角との関係を例示している。この場合の第2変位次元補正用モデルの要素の配置は、単純化モデル歩容の瞬時運動から、前記幾何学的拘束条件(2)に従って決定されたものと言える。なお、前記図20では、単純化モデル歩容に対応する第2変位次元補正用モデルの各質点Ai(i=1,2,…,5)の位置をPi2'(Ai)で表している。
また、図21は前記第1仮補正歩容に対応する第2変位次元補正用モデルの各質点Aiの位置および上体3(上体リンク)の姿勢角と、第1変位次元補正用モデルの各質点Aiの位置および上体3(上体リンク)の姿勢角との関係を例示している。この図21の第2変位次元補正用モデルの各要素の配置は、図20で想定している単純化モデル歩容の瞬時値に対応して、前記図10のS100で最終的に決定される第2変位次元補正用モデルの前記第1要素配置である。この配置は、前記第1仮補正歩容から、前記幾何学的拘束条件(2)に従って定まるものと同一である。なお、図21では、第1仮補正歩容に対応する第2変位次元補正用モデルの各質点Ai(i=1,2,…,5)の位置をPi21(Ai)で表している。また、図21に示す第1変位次元補正用モデルの各質点Aiの位置および上体3(上体リンク)の姿勢角は、図20と同じである。
また、図22は前記第2仮補正歩容に対応する第2変位次元補正用モデルの各質点Aiの位置および上体3(上体リンク)の姿勢角と、第1変位次元補正用モデルの各質点Aiの位置および上体3(上体リンク)の姿勢角との関係を例示している。この図22の第2変位次元補正用モデルの各要素の配置は、図20で想定している単純化モデル歩容の瞬時値に対応して、前記図10のS102で最終的に決定される第2変位次元補正用モデルの前記第2要素配置である。この配置は、前記第2仮補正歩容から、前記幾何学的拘束条件(2)に従って定まるものと同一である。なお、図22では、第2仮補正歩容に対応する第2変位次元補正用モデルの各質点Ai(i=1,2,…,5)の位置をPi22(Ai)で表している。また、図22に示す第1変位次元補正用モデルの各質点Aiの位置および上体3(上体リンク)の姿勢角は、図20と同じである。
図20に示す例において、単純化モデル歩容に対応する第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変位次元補正用モデルとで、両足平位置姿勢および上体位置姿勢は同一であるので、図20の例では、上体質点A1、各足平質点A4,A5のそれぞれのモデル間擬似並進加速度は0であり、また、上体リンクのモデル間擬似角加速度も0である。
これに対して、前記第1仮補正歩容に対応する第2変位次元補正用モデルの要素の配置(第1要素配置)、すなわち、本実施形態で前記図10のS100で最終的に決定される第2変位次元補正用モデルの各質点Aiの位置および上体リンクの姿勢角により定まる第2変位次元補正用モデルの要素の配置にあっては、図21に見られるように、大腿質点A2,A3の前方側への偏りを補償するようにして、第2変位次元補正用モデルの上体質点A1の位置が、第1変位次元補正用モデルの上体質点A1よりも後方側に決定され、換言すれば、上体位置が単純化モデル歩容よりも後方側に補正される。同時に、第2変位次元補正用モデルの各質点A1〜A5の位置並びにイナーシャをもつ上体3の姿勢は、前記した角運動量積がある一定値(所定値)になるように決定される。図示の例では、第2変位次元補正用モデルでの上体姿勢(実線で示す上体3の姿勢)は、単純化モデル歩容の上体姿勢(破線で示す上体3の姿勢)に対して、角度θb21−θbだけ前傾している。補足すると、図21の斜線もしくは横線を付した三角形の面積の2倍が、それぞれ、上体質点A1、大腿質点A2,A3に係る角運動量積に相当するものである。
このため、第1仮補正歩容に対応する第2変位次元補正用モデルの各質点Aiの位置および上体リンクの姿勢角では、各質点Aiのモデル間擬似並進加速度に伴う慣性力の並進力成分の総和が図20に示した場合よりも小さくなって、ほぼ0になると共に、該慣性力が目標ZMPまわりに発生するモーメントの総和も図20に示した場合よりも所定の値(前記条件2に係る「一定値」に相当する値)に近づく。
これにより、第1仮補正歩容は、単純化モデル歩容では考慮されていない各脚体の膝関節付近の部分の運動に伴う慣性力の影響を補償して、単純化モデル歩容の目標床反力(並進床反力および床反力モーメント)と同じような床反力が発生するようにロボット1の目標運動(より詳しくは目標上体位置および目標上体姿勢)を補正したものとなる。このため、第1仮補正歩容は、その歩容の運動どおりに実際のロボット1を動作させたときに発生する実床反力が、単純化モデル歩容の運動どおりに実際のロボット1を動作させたときに発生する実床反力よりも、目標床反力(=単純化モデル歩容の床反力)により近いものとなる。つまり、第1仮補正歩容の運動と床反力(並進床反力および床反力モーメント)との間の動力学的精度が単純化モデル歩容の運動と床反力の間の動力学的精度よりも高まることとなる。
一方、前記第2仮補正歩容に対応する第2変位次元補正用モデルの要素の配置(第2要素配置)、すなわち、本実施形態で前記図10のS102で最終的に決定される第2変位次元補正用モデルの各質点Aiの位置および上体リンクの姿勢角により定まる第2変位次元補正用モデルの要素の配置にあっては、図22に見られるように、上体姿勢を単純化モデル歩容の瞬時上体姿勢と同じに維持したまま、第2変位次元補正用モデルの各質点A1〜A5の位置が、前記した角運動量積の総和がある一定値(所定値)になるように決定される。
このため、第2仮補正歩容に対応する第2変位次元補正用モデルの各質点Aiの位置および上体リンクの姿勢角では、各質点Ai(より詳しくは上体質点A1および大腿質点A2,A3)のモデル間擬似並進加速度に伴う慣性力が目標ZMPまわりに作用するモーメントの総和が図20に示した場合よりも所定の値(前記条件2の「一定値」に相当する値)に近づく。
これにより、第2仮補正歩容は、ロボット1の目標上体姿勢を単純化モデル歩容の上体姿勢と同じに維持しながら、単純化モデル歩容では考慮されていない各脚体の膝関節付近の部分の運動に伴う慣性力の影響を補償して、単純化モデル歩容の床反力モーメントと同じような床反力モーメントが発生するように、ロボット1の目標上体位置を補正したものとなる。このような第2仮補正歩容は、その歩容の運動どおりに実際のロボット1を動作させたときに発生する実床反力モーメントが、単純化モデル歩容の運動どおりに実際のロボット1を動作させたときに発生する実床反力モーメントよりも、目標床反力モーメント(=単純化モデル歩容の床反力モーメント)により近いものとなる。つまり、第2仮補正歩容の運動と床反力モーメントとの間の動力学的精度が単純化モデル歩容の運動と床反力モーメントとの間の動力学的精度よりも高まることとなる。但し、第2仮補正歩容を決定する(第2変位次元補正用モデルの第2要素配置を決定する)ときには、第1および第2変位次元補正用モデルの間の全体重心のずれは考慮していないので、第2仮補正歩容の運動と並進床反力との間の動力学的な精度は、必ずしも単純化モデル歩容の運動と並進床反力との間の動力学的な精度よりも高まるとは限らない。
そして、本実施形態では、上述したような第1仮補正歩容の上体位置姿勢と第2仮補正歩容の上体位置姿勢とから、第1実施形態と同様に前記式12および式13によって変位次元補正上体位置姿勢が決定される。このため、第1実施形態と同様、ロボット1の動作モードが定常的に通常モードであるときには、変位次元補正歩容は、上体姿勢を変動させない(上体姿勢を補正しない)ようにしつつ、単純化モデル歩容の上体位置を補正して、変位次元補正歩容の運動と床反力モーメントとの間の動力学的な精度を単純化モデル歩容よりも高めることができる歩容となる。
また、ロボット1の動作モードが定常的に走行モードであるときには、第1実施形態と同様に、変位次元補正歩容は、単純化モデル歩容の上体位置および上体姿勢の両者を補正して、変位次元補正歩容の運動と床反力(並進床反力および床反力モーメント)との間の動力学的な精度を単純化モデル歩容よりも高めることができる歩容となる。
また、ロボット1の動作モードが定常的に低摩擦床面歩行モードであるときには、第1実施形態と同様に、変位次元補正歩容は、単純化モデル歩容よりも動力学的精度を高めつつ、且つ、上体姿勢の変動を極力抑えつつ、且つ、ロボット1のスリップを防止しつつ、ロボット1の安定な動作を可能とする歩容となる。
さらに、ロボット1の動作モードが切り替る際には、前記図10のS106の処理によって、重みw1が(ひいては、重みw2も)の値を徐々に変化させるので、変位次元補正上体姿勢や変位次元補正上体位置が急変することはない。
[第3実施形態]
次に、本発明の第3実施形態を図23〜図25を参照しつつ説明する。本実施形態は、ロボット1の構成は第1および第2実施形態と同一で、また、単純化モデル、第1変位次元補正用モデルおよび第2変位次元補正用モデルの構造は第2実施形態と同一である。そして、本実施形態は、歩容生成装置100の処理の一部のみが第2実施形態と相違するものである。従って、本実施形態の説明では、第2実施形態と同一部分については第2実施形態と同じ符号および図面を用い、詳細な説明を省略する。以下、前記第2実施形態と相違する部分を主体として、本実施形態を説明する。なお、本実施形態は、本発明の第2〜4、第7〜10、第13〜15発明の一実施形態である。
本実施形態では歩容生成装置100の処理は、図9のS024の変位次元歩容補正サブルーチンのみが前記第2実施形態と相違している。従って、この変位次元歩容補正サブルーチン以外の処理については説明を省略する。
本実施形態における変位次元歩容補正サブルーチンは、図23のフローチャートで示す如く行われる。以下説明すると、まず、S500において、第1変位次元補正用モデルと第2変位次元補正用モデルとの間の重心に関する前記条件1と、角運動量積に関する前記条件2とを満足するように第1仮補正上体位置姿勢(Pb21,θb21)が決定される。
この処理は、第2実施形態でのS100(図10)の処理と同一であり、図11のサブルーチン処理によって第2実施形態と全く同様に実行される。補足すると、本実施形態(第3実施形態)では、図11のS200の処理で求められる第1変位次元補正用モデルの各要素の配置が、本発明の第2発明における「第1の配置」に相当し、また、S210の条件が成立したときの第2変位次元補正用モデルの各要素の配置が前記第1要素配置に相当すると共に、本発明の第2発明における「第2の配置」に相当する。
次いで、S502、S504およびS506の処理が、それぞれ第2実施形態におけるS104、S106、S108と全く同じように実行され、今回時刻tでの重みw1,w2の値が決定される。
次いで、S508において、第2変位次元補正用モデルでの上体姿勢を、S500で決定した第1仮補正上体姿勢θb21にS504で決定した重みw1を乗算してなる姿勢と前記単純化モデル歩容の瞬時値における上体姿勢θbにS506で決定した重みw2を乗算してなる姿勢との和(w1*θb21+w2*θb)と同一にして、第1変位次元補正用モデルと第2変位次元補正用モデルとの間の角運動量積に関する前記条件2を満足するように第2仮補正上体位置姿勢(Pb22,θb22)が決定される。なお、このS508の処理では、第2仮補正上体姿勢θb22は、w1*θb21+w2*θbと同一にされるので、該S508の処理は、実質的には、条件2を満足するように第2仮補正上体位置Pb22を決定する処理であると言える。
このS508の処理は、図24のサブルーチン処理によって実行される。このサブルーチン処理は、前記第2実施形態における図12のサブルーチン処理に対して第2仮補正上体姿勢の候補θb22_sの値のみが相違するものである。すなわち、本実施形態(第3実施形態)の図24のサブルーチン処理では、第2仮補正上体姿勢の候補θb22_sがw1*θb21+w2*θb(今回時刻tの重みw1を今回時刻tの第1仮補正上体姿勢θb21に乗じてなる姿勢角と今回時刻tの重みw2を今回時刻tの単純化モデル歩容の瞬時値における状態姿勢θbに乗じてなる姿勢角との和)に固定され、この点でのみ、図12のサブルーチン処理と相違する(図12のサブルーチン処理では、候補θb22_sは単純化モデル歩容の瞬時値における上体姿勢に固定されている)。より具体的には、図24のサブルーチン処理は、S602の処理で、初期候補θb22_sがw1*θb21+w2*θbに設定され、これ以外は、図12のサブルーチン処理と同一である。この場合、図24のS600、S604〜S618がそれぞれ図12のS300、S304〜S318と同じである。
かかるS508の処理により、単純化モデル歩容の上体姿勢をw1*θb21+w2*θbに補正し、且つ、単純化モデル歩容の上体位置を前記条件2を満たすように補正してなる歩容としての第2仮補正歩容が得られることとなる。
上記のようにS508の処理を実行した後、S510の処理が実行され、今回時刻tにおける変位次元補正上体位置姿勢(Pb2,θb2)が決定される。すなわち、第2仮補正歩容の上体位置姿勢(Pb22,θb22)(=(Pb22,w1*θb21+w2*θb))がそのまま、変位次元補正上体位置姿勢(Pb2,θb2)として決定される。補足すると、本実施形態(第3実施形態)では、S610の条件が成立したときの第2変位次元補正用モデルの要素の配置が前記第2要素配置に相当すると共に、本発明の第2発明における「第3の配置」に相当する。
以上が本実施形態(第3実施形態)での変位次元歩容補正サブルーチンの詳細である。
補足すると、この第3実施形態では、変位次元歩容補正サブルーチンの処理が、本発明の第2発明における目標運動補正手段に相当し、この処理で決定される変位次元補正歩容の運動(第3実施形態ではこれは第2仮補正歩容の運動に等しい)が、該第2発明における補正後瞬時目標運動に相当する。さらに、S500の処理が第2発明における仮補正運動決定手段に相当し、この処理で決定される第1仮補正歩容が第2発明における仮補正瞬時目標運動に相当する。
以上説明した本実施形態では、第1仮補正歩容は、第2実施形態と同一である。従って、前記図20および図21を参照して説明した如く、第1仮補正歩容は、単純化モデル歩容では考慮されていない各脚体の膝関節付近の部分の運動に伴う慣性力の影響を補償して、単純化モデル歩容の目標床反力(並進床反力および床反力モーメント)と同じような床反力が発生するようにロボット1の目標運動(より詳しくは目標上体位置および目標上体姿勢)を補正したものとなる。このため、第1仮補正歩容は、その歩容の運動どおりに実際のロボット1を動作させたときに発生する実床反力が、単純化モデル歩容の運動どおりに実際のロボット1を動作させたときに発生する実床反力よりも、目標床反力(=単純化モデル歩容の床反力)により近いものとなる。つまり、第1仮補正歩容の運動と床反力(並進床反力および床反力モーメント)との間の動力学的精度が単純化モデル歩容の運動と床反力の間の動力学的精度よりも高まることとなる。
一方、図25は、本実施形態(第3実施形態)での第2仮補正歩容に対応する第2変位次元補正用モデルの要素の配置(第2要素配置)と第1変位次元補正用モデルの要素の配置との関係を例示している。この図25の第2変位次元補正用モデルの各要素の配置は、前記図20で想定している単純化モデル歩容の瞬時値に対応して、前記図23のS506で最終的に決定される第2変位次元補正用モデルの前記第2要素配置である。この配置は、前記第2仮補正歩容から、前記幾何学的拘束条件(2)に従って定まるものと同一である。なお、図25では、第2仮補正歩容に対応する第2変位次元補正用モデルの各質点Ai(i=1,2,…,5)の位置をPi22(Ai)で表している。また、図25に示す第1変位次元補正用モデルの各質点Aiの位置および上体リンクの姿勢角は、前記図20と同じである。
この図25に見られるように、第2仮補正歩容に対応する第2変位次元補正用モデルの要素の配置では、上体姿勢を、第1仮補正上体姿勢θb21に重みw1を乗じてなる姿勢角と前記単純化モデル歩容の瞬時値における上体姿勢θbに重みw2を乗算してなる姿勢角との和に規制した状態で、第2変位次元補正用モデルの各質点A1〜A5の位置が、前記した角運動量積の総和がある一定値(所定値)になるように決定される。補足すると、図25の斜線もしくは横線を付した三角形の面積の2倍が、それぞれ、上体質点A1、大腿質点A2,A3に係る角運動量積に相当するものである。
このため、第2仮補正歩容に対応する第2変位次元補正用モデルの各質点Aiの位置および上体リンクの姿勢角では、各質点Ai(より詳しくは上体質点A1および大腿質点A2,A3)のモデル間擬似並進加速度に伴う慣性力が目標ZMPまわりに作用するモーメントの総和が図20に示した場合よりも所定の値(前記条件2の「一定値」に相当する値)に近づく。
これにより、第2仮補正歩容は、ロボット1の目標上体姿勢を単純化モデル歩容の瞬時値における上体姿勢(本実施形態では鉛直姿勢)と第1仮補正上体姿勢との間の姿勢に規制しながら、単純化モデル歩容では考慮されていない各脚体の膝関節付近の部分の運動に伴う慣性力の影響を補償して、単純化モデル歩容の床反力モーメントと同じような床反力モーメントが発生するように、ロボット1の目標上体位置を補正したものとなる。このような第2仮補正歩容は、その歩容の運動どおりに実際のロボット1を動作させたときに発生する実床反力モーメントが、単純化モデル歩容の運動どおりに実際のロボット1を動作させたときに発生する実床反力モーメントよりも、目標床反力モーメント(=単純化モデル歩容の床反力モーメント)により近いものとなる。つまり、第2仮補正歩容の運動と床反力モーメントとの間の動力学的精度が単純化モデル歩容の運動と床反力モーメントとの間の動力学的精度よりも高まることとなる。
そして、本実施形態では、第2仮補正上体位置姿勢が変位次元補正上体位置姿勢として決定される。この場合、ロボット1の動作モードが定常的に通常モードである場合(w1=0である場合)には、変位次元補正歩容(=第2仮補正歩容)は、第2実施形態と同様に、上体姿勢を変動させない(一定に維持する)ようにしつつ、単純化モデル歩容の上体位置を補正して、変位次元補正歩容の運動と床反力モーメントとの間の動力学的な精度を単純化モデル歩容よりも高めることができる歩容となる。この場合、単純化モデル歩容が前記第2実施形態と同一であれば、本実施形態(第3実施形態)における変位次元補正歩容も第2実施形態と同じになる。
また、ロボット1の動作モードが定常的に走行モードである場合(w1=1である場合)には、前記図23のS506で決定される第2仮補正上体位置姿勢は第1仮補正上体位置姿勢と同一か、もしくはほぼ同一となる(両者の上体位置は、完全に同一になるとは限らない)。このため、この場合の変位次元補正歩容(=第2仮補正歩容)は、単純化モデル歩容の上体位置および上体姿勢の両者を補正して、変位次元補正歩容の運動と床反力(並進床反力および床反力モーメント)との間の動力学的な精度を単純化モデル歩容よりも高めることができる歩容となる。この場合も、単純化モデル歩容が前記第2実施形態と同一であれば、本実施形態(第3実施形態)における変位次元補正歩容も第2実施形態と同じになる。
また、ロボット1の動作モードが定常的に低摩擦床面歩行モードである場合(w1=0.5である場合)には、変位次元補正上体姿勢は、第1仮補正歩容の上体姿勢角の1/2の姿勢角と単純化モデル歩容の上体姿勢角の1/2の姿勢角との和とされ、変位次元補正上体位置は、上体姿勢角が第1仮補正歩容の上体姿勢角の1/2の姿勢角と単純化モデル歩容の上体姿勢角の1/2の姿勢角との和である場合に対応する第2仮補正歩容の上体位置とされる。このため、この場合の変位次元補正歩容は、前記第2実施形態と同様、上体姿勢の変動を抑制しつつ、変位次元補正歩容の運動と床反力(並進床反力および床反力モーメント)との間の動力学的な精度を単純化モデル歩容よりも高めるように単純化モデル歩容の上体位置および上体姿勢の両者を補正したものとなる。ひいては、該変位次元補正歩容は、単純化モデル歩容よりも動力学的精度を高めつつ、且つ、上体姿勢の変動を極力抑えつつ、且つ、ロボット1のスリップを防止しつつ、ロボット1の安定な動作を可能とする歩容となる。また、この場合、本実施形態では、変位次元補正上体位置は、補正後の上体姿勢としての変位次元補正上体姿勢に対応して、前記条件2を満たすように決定されるものであるため、その変位次元補正上体位置姿勢を含む変位次元補正歩容の運動どおりに実際のロボット1の動作させたときに発生する実床反力モーメントと目標床反力モーメントとの誤差を効果的に低減できる。
なお、ロボット1の動作モードが切り替る際には、前記図23のS504の処理によって、重みw1の値を徐々に変化させるので、前記第1および第2実施形態と同様、変位次元補正上体姿勢や変位次元補正上体位置が急変することはない。
次に、以上説明した第1〜第3実施形態に関連した変形態様をいくつか説明する。
前記第1〜第3実施形態では、変位次元補正上体姿勢は、前記第1仮補正上体姿勢に、重みw1を乗じたものに応じて決定される。この場合、第1仮補正上体姿勢(第1仮補正歩容の上体の傾斜角)に対して、重みw1が周波数特性を持つようにしてもよい。例えば、第1仮補正上体姿勢の周波数成分に対して、図26(a)に示す如く、重みw1にローカット特性を持たせる。このようにした場合には、第1仮補正上体姿勢が定常的にほぼ一定に維持されるような状態、例えば、ロボット1を直立姿勢状態で継続的に静止させるような目標歩容を生成する場合には、第1仮補正上体姿勢に重みw1を乗じてなる変位次元補正上体姿勢を、鉛直方向に対するオフセットが発生することなく、確実に定常的に鉛直姿勢に維持することができる。このため、ロボット1の全体姿勢の見栄えがよくなる。あるいは、必要に応じて、図26(b)に示す如く、重みw1にハイカット特性を持たせるようにしてもよい。このようにした場合には、第1仮補正上体姿勢の高周波成分、すなわち、第1仮補正上体姿勢を高速で振動させる成分を除去して、変位次元補正上体姿勢を決定できることとなる。この結果、変位次元補正上体姿勢の細かな振動が生じるのを防止し、ロボット1の頭部等に搭載される撮像装置の揺れを防止できる。
なお、図26(a)あるいは図26(b)のように重みw1に周波数特性をもたせることで、本発明の第5発明の一実施形態が構築されることとなる。
また、前記第1〜第3実施形態では、角運動量積に係る点Qとして、目標ZMPを用いたが、点Qは目標ZMP以外の点でもよく、例えば、次のような点でもよい。
a)歩容を記述する座標系(グローバル座標系)の原点
b)ロボット1とともに連続的に移動する適当に設定した点
c)フルモデルにおけるロボット1の全体重心
d)単純化モデルにおけるロボット1の全体重心
e)第1および第2変位次元補正用モデルに係るある所定の質点の集合の重心(具体的には、第1および第2変位次元補正用モデルの間で位置の差を生じる可能性がある質点の集合の重心。例えば、第1実施形態では、全ての質点A1〜A5の集合の重心が相当し、第2および第3実施形態では、上体質点A1,大腿質点A2,A3の集合の重心が相当する)
また、前記第1実施形態では、図9のS024の変位次元歩容補正サブルーチンを図10の処理により行うようにしたが、前記第3実施形態と同様に、図23の処理により行うようにしてもよい。これにより、本発明の第2発明に係る他の実施形態が構成されることとなる。
また、前記第1〜第3実施形態の説明では、図9のS024の変位次元歩容補正サブルーチンの処理において、サジタルプレーン上での単純化モデル歩容の上体位置姿勢を補正する処理について説明したが、サジタルプレーンに直交するラテラルプレーン上での上体位置姿勢を合わせて補正するようにしてもよい。この場合には、例えば図11のS200〜S218の処理、図12のS300〜S318の処理、および図24のS600〜S618の処理を3次元に拡張して行えばよい。あるいは、サジタルプレーン上での上体位置姿勢の補正処理と、ラテラルプレーン上での上体位置姿勢の補正処理とを図11、図12、図24と同様のアルゴリズムによって、それぞれ独立に行うようにしてもよい。補足すると、上体位置の鉛直成分を含めて上体位置姿勢を補正する場合において、サジタルプレーン上での上体位置姿勢の補正処理と、ラテラルプレーン上での上体位置の補正処理とを独立して行う場合には、上体位置の鉛直成分の補正は、サジタルプレーン上、あるいはラテラルプレーン上のいずれか一方のプレーン上での補正処理によって行い、他方のプレーン上での補正処理では、上体位置の鉛直成分を除いて、その他方のプレーン上での上体位置姿勢の補正を行うようにすればよい。
また、ホリゾンタルプレーン(水平面)での上体位置姿勢を合わせて補正するようにしてもよい。あるいは、サジタルプレーン、ラテラルプレーン、ホリゾンタルプレーンのいずれか一つまたは二つに対して上体位置姿勢を補正するようにしてもよい。
また、第1〜第3実施形態では、図10のS100あるいは図23のS500において、第1仮補正上体位置姿勢の初期候補(Pb21_s,θb21_s)を、前回制御周期の時刻で求めた第1仮補正上体位置姿勢を用いて決定したが、例えば該初期候補(Pb21_s,θb21_s)を単純化モデル歩容の上体位置姿勢と同一にしてもよい。同様に、図10のS102あるいは図23のS506において、第2仮補正上体位置の初期候補Pb22_sを、前回制御周期の時刻で求めた第2仮補正上体位置を用いて決定したが、例えば該初期候補Pb22_sを単純化モデル歩容の上体位置と同一にしてもよい。但し、前記条件1,2を満たす第1仮補正上体位置姿勢、あるいは前記条件2を満たす第2仮補正上体位置を短時間で探索する上では、前記第1〜第3実施形態で説明した如く、初期候補(Pb2_s,θb2_s)を決定することが望ましい。
また、第1〜第3実施形態の変位次元歩容補正サブルーチンの処理で、前記条件1,2を満たす第1仮補正上体位置姿勢を探索的に求めようにしたが、例えば第2変位次元補正用モデルの要素の配置(各質点の位置とイナーシャを持つ各リンクの姿勢)を前記幾何学的拘束条件(2)に従って単純化モデル歩容に対応させて決定したときのその配置と、第1変位次元補正用モデルの要素の配置との差(両モデル間の各質点の位置の差と、イナーシャをもつ各リンクの姿勢角の差)から、あらかじめ作成した関数式あるいはマップなどを用いて、単純化モデル歩容の上体位置姿勢から第1仮補正上体位置姿勢への補正量を決定し、その補正量で単純化モデル歩容の上体位置姿勢を補正することで、第1仮補正上体位置姿勢を決定することも可能である。
また、第1および第2実施形態の変位次元歩容補正サブルーチンの処理では、上体姿勢を単純化モデル歩容の上体姿勢と同一にしたときに前記条件2を満たす第2仮補正上体位置を探索的に求めるようにしたが、第2変位次元補正用モデルの要素の配置(各質点の位置とイナーシャを持つ各リンクの姿勢)を前記幾何学的拘束条件(2)に従って単純化モデル歩容に対応させて決定したときのその配置と、第1変位次元補正用モデルの要素の配置との差(両モデル間の各質点の位置の差と、イナーシャをもつ各リンクの姿勢角の差)から、あらかじめ作成した関数式あるいはマップなどを用いて、単純化モデル歩容の上体位置から第2仮補正上体位置への補正量を決定し、その補正量で単純化モデル歩容の上体位置を補正することで、第2仮補正上体位置を決定することも可能である。同様に、第3実施形態にあっては、単純化モデル歩容の上体姿勢を第1仮補正上体姿勢に前記重みw1を乗じたものと単純化モデル歩容の上体姿勢に前記重みw2を乗じたものとの和で置き換えてなる歩容(以下、ここでの説明では置き換え歩容という)の瞬時値から前記幾何学的拘束条件(2)に従って第2変位次元補正用モデルの要素の配置を決定したときのその配置と、第1変位次元補正用モデルの要素の配置との差から、あらかじめ作成した関数式あるいはマップなどを用いて、上記置き換え歩容の上体位置から第2仮補正上体位置への補正量を決定し、その補正量で該置き換え歩容の上体位置を補正することで、第2仮補正上体位置を決定することも可能である。
また、第1〜第3実施形態の変位次元歩容補正サブルーチンの処理で、第1仮補正上体位置姿勢を決定するときに、モデル間全体重心ずれGc_errとモデル間角運動量積ずれLc_errとがそれぞれ許容範囲内であるか否かの判定(図11のS210の処理)を行わず、探索回数(候補(Pb21_s,θb21_s)の更新回数)が所定回数に達したら探索完了とし、そのときの候補(Pb21_s,θb21_s)を第1仮補正上体位置姿勢として決定するようにしてもよい。あるいは、モデル間全体重心ずれGc_errとモデル間角運動量積ずれLc_errとがそれぞれ許容範囲内に収まるか、もしくは、探索回数が所定回数に達したら探索完了として、そのときの候補(Pb21_s,θb21_s)を第1仮補正上体位置姿勢として決定するようにしてもよい。
同様に、第1〜第3実施形態の変位次元歩容補正サブルーチンの処理で、第2仮補正上体位置姿勢を決定するときに、モデル間角運動量積ずれLc_errとがそれぞれ許容範囲内であるか否かの判定(図12のS310の処理、あるいは図24のS610の処理)を行わず、探索回数(候補(Pb22_s,θb22_s)の更新回数)が所定回数に達したら探索完了とし、そのときの候補(Pb22_s,θb22_s)を第2仮補正上体位置姿勢として決定するようにしてもよい。あるいは、モデル間角運動量積ずれLc_errとがそれぞれ許容範囲内に収まるか、もしくは、探索回数が所定回数に達したら探索完了として、そのときの候補(Pb22_s,θb22_s)を第2仮補正上体位置姿勢として決定するようにしてもよい。
また、前記第1〜第3実施形態では、モデル間角運動量積ずれLc_errを算出するときに、先にも述べたように、前記式07の代わりに例えば前記式08を用いるようにしてもよい。この場合、式08の右辺のΣに続く各項は、第1変位次元補正用モデルの質点Aiと点Qとを結ぶ線分と、第2変位次元補正用モデルの質点Aiと点Qとを結ぶ線分とのなす角度(Pi1_Q_Pi2)に対してほぼ単調に変化する関数となる。従って、前記第1〜第3実施形態では、モデル間角運動量積ずれLc_errを算出するために、式08を使用することで、本発明の第6発明の一実施形態が構築されることとなる。
また、前記第2および第3実施形態に関して、第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の擬似位置ずれを膝関節の曲げ角から求めるようにしてもよい。より具体的には、前記した図20に示すように、各大腿リンク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の幾何学モデル(リンクモデル)によって一義的に決定できる。
また、前記第1〜第3実施形態では、第1および第2変位次元補正用モデルにおける各脚体2の質点を2つとしたが、例えば各脚体2の足平22の近傍、下腿リンク、および大腿リンクにそれぞれ質点をもつような(各脚体2に3質点をもつような)変位次元補正用モデルを構築してもよい。この場合、第2あるいは第3実施形態のように、第1変位次元補正用モデルの質点の位置を拘束するときには、各足平質点以外の2つの質点を、例えば足首関節の中心と股関節の中心とを結ぶ線分上の所定の内分比で定まる2つの点に設定するようにすればよい。また、下腿リンクおよび/または上体リンクに相当するイナーシャをもつ剛体(リンク)を両変位次元補正用モデルの要素として加えてもよい。
また、第2および第3実施形態における第1および第2変位次元補正用モデルの足平質点A4,A5のように、両変位次元補正用モデルでの配置が同一位置となるような質点は、それを両変位次元補正用モデルから除いてもよい。
また、前記第1〜第3実施形態において、例えばロボット1の動作モードが前記通常モード(走行モードおよび低摩擦床面歩行モード)でないときに、ロボット1を立ち止まらせて両腕体5,5を共に前方に突き出したりするような運動を行う目標歩容を生成するような場合には、第1および第2変位次元補正用モデルで、各腕体5に対応する部位に質点やイナーシャをもたせるようにしてもよい。
さらには、両腕体5,5の肘関節の屈伸を行うような場合には、前記第2および第3実施形態での第1および第2変位次元補正用モデルで大腿質点を備えた場合と同様に、肘関節もしくはその近傍に対応する質点を備えるようにしてもよい。より具体的には、例えば図27に示すように、第1および第2変位次元補正用モデルで、上体質点B1、大腿質点B2,B3および足平質点B4,B5に加えて、各腕体5の肘関節近傍にそれぞれ対応する肘質点B8,B9と、各腕体5の先端部近傍にそれぞれ対応する手先質点B6,B7を備えるようにして、第1変位次元補正用モデルでは、各腕体5の肩関節の中心と手首関節の中心とを結ぶ線分上の、所定の内分比で定まる点に肘質点B8,B9が拘束されるようにする。そして、第1変位次元補正用モデルと第2変位次元補正用モデルとの間での肘関節B8,B9の位置の差を含めて、前記第2あるいは第3実施形態と同様に、モデル間全体重心ずれGc_errおよびモデル間角運動量積ずれL_errが0に近づくように(前記条件1、2を満たすように)第1仮補正上体位置姿勢を求めると共に、上体姿勢を単純化モデル歩容の上体姿勢と同一にし、もしくは第1仮補正上体姿勢に前記重みw1を乗じたものと単純化モデル歩容の上体姿勢に前記重みw2を乗じたものとの和と同一にした状態で、モデル間角運動量積ずれL_errが0に近づくように(前記条件2を満たすように)第2仮補正上体位置姿勢を決定する。なお、第1変位次元補正用モデルに関しては、第1実施形態で、各脚体2の姿勢を拘束した場合と同様に、第1変位次元補正用モデルの腕姿勢を、ロボット1の直立姿勢状態における腕姿勢(上下方向に伸ばした姿勢)に拘束するようにしてもよい。
また、第1〜第3実施形態に関して補足すると、第1実施形態では、本発明における第1の幾何学的拘束条件に相当する前記幾何学的拘束条件(1)と、第2の幾何学的拘束条件に相当する前記幾何学的拘束条件(2)とが前記した如く設定されていることによって、それらの幾何学的拘束条件(1)、(2)は本発明の第9発明の如く設定されていることとなっている。同様に、第2および第3実施形態では、本発明における第1の幾何学的拘束条件に相当する前記幾何学的拘束条件(3)と、第2の幾何学的拘束条件に相当する前記幾何学的拘束条件(2)とが前記した如く設定されていることによって、それらの幾何学的拘束条件(3)、(2)は本発明の第8発明の如く設定されていることとなっている。
さらに、第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)、すなわち単純化モデルの全体重心位置の誤差にほぼ一致するものとなっている。従って、第1〜第3実施形態は、本発明における第1の幾何学的拘束条件としての前記幾何学的拘束条件(1)または(3)と、第2の幾何学的拘束条件としての前記幾何学的拘束条件(2)とが前記した第9発明の如く設定されていることとなる。なお、この場合において、先に述べたように、足平の近傍の質点(足平質点)のように、両変位次元補正用モデルでの配置が同一位置となるような質点は、それを両変位次元補正用モデルから除いてもよいことはもちろんである。