(57)【特許請求の範囲】
【請求項１】
少なくとも基体と、前記基体に関節を介して連結される複数本の脚部リンクとからなる脚式移動ロボットの歩容生成装置において、
ａ．少なくとも前記ロボットの基体の変位および速度の少なくともいずれかに関するパラメータと前記ロボットに接地床面から作用する床反力に関するパラメータとからなる時系列的に続く少なくとも２個の歩容を生成する歩容生成手段、
ｂ．前記生成された少なくとも２個の歩容の間の境界における、前記基体の変位および速度の少なくともいずれかの不連続量を算出する不連続量算出手段、
ｃ．前記床反力の摂動に対する前記基体の変位および速度の少なくともいずれかの摂動の関係を近似する摂動動力学モデル、
ｄ．前記算出された不連続量に基づいて、前記モデルが前記算出された不連続量を相殺しつつ、所定の時点において前記モデルが所定の状態となるように、前記モデルへの入力を決定するモデル入力決定手段、
ｅ．前記決定された入力に基づいて前記モデルの出力を算出するモデル出力算出手段、
および
ｆ．前記決定された入力および前記算出されたモデル出力に基づいて前記少なくとも２個の歩容の少なくともいずれかを修正する歩容修正手段、
を備えたことを特徴とする脚式移動ロボットの歩容生成装置。
【請求項２】
前記モデルを複数個備えると共に、前記複数個のモデルが所定の歩容の数だけずれて前記算出された不連続量を相殺するように設定されることを特徴とする請求項１項記載の脚式移動ロボットの歩容生成装置。
【請求項３】
前記モデルが、前記ロボットを倒立振子で近似することを特徴とする請求項１項または２項記載の脚式移動ロボットの歩容生成装置。
【請求項４】
さらに、
ｇ．前記モデル入力に対するモデル出力の特性を予め求めて記憶する記憶手段、
を備え、前記モデル入力決定手段は、前記記憶された特性に基づいて前記モデル入力を決定することを特徴とする請求項１項から３項のいずれかに記載の脚式移動ロボットの歩容生成装置。
【請求項５】
前記モデルが前記歩容のうちの時系列的に最後の歩容の終端において停止するように設定されることを特徴とする請求項１項から４項のいずれかに記載の脚式移動ロボットの歩容生成装置。
【請求項６】
前記モデル出力が、前記床反力および前記基体の変位の少なくともいずれかであることを特徴とする請求項１項から５項のいずれかに記載の脚式移動ロボットの歩容生成装置。
【発明の詳細な説明】
【０００１】
【発明の属する技術分野】
この発明は、脚式移動ロボットの歩容生成装置に関し、より詳しくは脚式移動ロボットにおいて長期的に継続できる歩容を自在に生成するものに関する。
【０００２】
【従来の技術】
従来の脚式移動ロボットにおいて、例えば特開平５−２８５８６８号公報記載の技術に示されるように、直進、方向転換などの種々の歩容を予めオフラインで設計し、設計値をロボットに搭載した制御用マイクロコンピュータのメモリに記憶させておき、歩行時に適当な順で出力して実行することが提案されている。
【０００３】
また、特開昭６２−９７００６号（特公平５−６２３６３号）公報記載の技術も同様に予めオフラインで生成した歩行パターンデータをメモリに記憶させておき、歩行時に出力すると共に、必要に応じて記憶された時系列データ間を時間的に補間して刻み時間を細分化することを提案している。
【０００４】
【発明が解決しようとする課題】
しかしながら、上記した従来技術にあっては、歩容データが予め決められているので、任意の歩幅や旋回角を実現するなど歩容を自在かつリアルタイムに生成することができなかった。
【０００５】
そこで、本出願人は先に、特願平８−２１４２６１号において、従来技術の上記した不都合を解消すべく、脚式移動ロボットの位置（変位）、速度および床反力などのパラメータからなる歩容を、１歩づつ任意かつリアルタイムに生成して所望の歩幅や旋回角などを実現できるようにした技術を提案している。
【０００６】
この発明の目的はその先に提案した技術の改良にあり、１歩と１歩との間の歩容の境界を滑らかに連続させるために、常に複数歩を考慮に入れることで歩容境界での連続性を保ちつつ長期に安定な姿勢を保って歩行継続できる歩容を任意に生成するようにした脚式移動ロボットの歩容生成装置を提供することにある。
【０００７】
更には、常に複数歩を考慮に入れることで歩容境界での連続性を保つと共に、演算誤差による歩容の発散を防止し、よって長期に安定な姿勢を保ちつつ歩行継続できる歩容を任意に生成するようにした脚式移動ロボットの歩容生成装置を提供することにある。
【０００８】
【課題を解決するための手段】
上記の目的を達成するために、この発明の構成を添付図面に使用する符号および実施の形態での表現を用いて説明する。
【０００９】
請求項１項記載の発明においては、少なくとも基体（上体）２４と、前記基体に関節１０，１２，１４Ｒ（Ｌ）を介して連結される複数本の脚部リンク２とからなる脚式移動ロボット１の歩容生成装置において、少なくとも前記ロボットの基体２４の変位および速度の少なくともいずれかに関するパラメータ（上体位置・速度）と前記ロボットに接地床面から作用する床反力に関するパラメータ（ＺＭＰ）とからなる時系列に続く少なくとも２個の歩容（第１歩容および第２歩容または今回歩容および次回歩容）生成する歩容生成手段（図３の標準歩容の集合、歩容生成処方決定装置および歩容混合装置。図２０フロー・チャートのＳ１０，Ｓ３０，Ｓ３２）、前記生成された少なくとも２個の歩容の間の境界における、前記基体の変位および速度の少なくともいずれかの不連続量Ｘｍ，Ｖｍ，Ｄｍを算出する不連続量算出手段（図３のモデル挙動パラメータ決定器。図２０フロー・チャートのＳ３０、図２６フロー・チャートのＳ１１２、図２７フロー・チャートのＳ２００からＳ２０６）、前記床反力の摂動に対する前記基体の変位および速度の少なくともいずれかの摂動の関係を近似する摂動動力学モデル（図３の摂動動力学モデルＲ，Ｌ。図２０フロー・チャートのＳ３６、図２６フロー・チャートのＳ１１４）、前記算出された不連続量に基づいて、前記モデルが前記算出された不連続量を相殺しつつ、所定の時点において前記モデルが所定の状態となるように、前記モデルへの入力Ｂ１，Ｂ２を決定するモデル入力決定手段（図３のモデル挙動パラメータ決定器。図２０フロー・チャートのＳ３０、図２６フロー・チャートのＳ１１２、図２７フロー・チャートのＳ２０８からＳ２１０）、前記決定された入力に基づいて前記モデルの出力（モデルＲ，ＬＺＭＰ、モデルＲ，Ｌ状態量）を算出するモデル出力算出手段（図３のモデルＲ，Ｌ用ＺＭＰ波形発生器。図２０フロー・チャートのＳ３０，Ｓ３４，Ｓ３６、図２６フロー・チャートのＳ１１４，Ｓ１１６）、および前記決定された入力および前記算出されたモデル出力に基づいて前記少なくとも２個の歩容の少なくともいずれかを修正する歩容修正手段（図２０フロー・チャートのＳ３８）を備える如く構成した。上記で「変位」は位置を意味する。
【００１０】
請求項２項に記載する発明にあっては、前記モデルを複数個（摂動動力学モデルＲ，Ｌの２個）備えると共に、前記複数個のモデルが所定の歩容の数だけ（１歩）ずれて前記算出された不連続量を相殺するように設定される如く構成した。尚、前記モデルの個数は、３個以上であっても良い。
【００１１】
請求項３項に記載する発明にあっては、前記モデル（摂動動力学モデルＲ，Ｌ）が、前記ロボット１を倒立振子で近似する如く構成した。
【００１２】
請求項４項に記載する発明にあっては、さらに、前記モデル入力に対するモデル出力の特性を予め求めて記憶する記憶手段（図２０フロー・チャートのＳ１４、ＲＯＭ８４，ＲＡＭ７４）を備え、前記モデル入力決定手段は、前記記憶された特性に基づいて前記モデル入力を決定する如く構成した。
【００１３】
請求項５項に記載する発明にあっては、前記モデル（摂動動力学モデルＲ，Ｌ）が前記歩容のうちの時系列的に最後の歩容の終端において停止するように設定される如く構成した。尚、所定の挙動は、結果として２つの挙動が滑らかに連続するようになるものであればどのようなものでも良い。
【００１４】
請求項６項に記載する発明にあっては、前記モデル出力が前記床反力（モデルＺＭＰ和）および前記基体の変位（モデル変位和）の少なくともいずれかである如く構成した。
【００１５】
【作用】
請求項１項に記載する発明にあっては、１歩と１歩との間の歩容の境界条件を滑らかに連続させ、換言すれば、常に複数歩を考慮に入れることで歩容境界での連続性を保ちつつ長期に安定な姿勢を保って歩行継続できる歩容を自在かつ適切に生成することができる。
【００１６】
請求項２項に記載する発明にあっては前記モデルを複数個備えると共に、前記複数個のモデルが所定歩数ずれて前記算出された不連続量を相殺するように設定される如く構成したので、上記した作用・効果に加え、演算誤差が累積せず、よって長期に安定な姿勢を保ちつつ歩行継続することができる歩容を自在かつ適切に生成することができる。
【００１７】
請求項３項に記載する発明にあっては前記モデルが前記ロボットを倒立振子で近似する如く構成したので、上記した作用効果に加え、演算量を低減することができる。
【００１８】
請求項４項に記載する発明にあっては、さらに前記モデル入力に対するモデル出力の特性を予め求めて記憶する記憶手段を備え、前記モデル入力決定手段は前記記憶された特性に基づいて前記モデル入力を決定する如く構成したので、上記した作用効果に加えて演算量を一層低減することができる。
【００１９】
請求項５項にあっては、前記モデルが終端状態において直立停止するように設定される如く構成したので、歩容境界での連続性を保ちつつ長期に安定な姿勢を保って歩行継続できる歩容を一層適切に生成することができる。
【００２０】
請求項６項にあっては、前記モデル出力が前記床反力および／または前記基体の変位である如く構成したので、歩容境界での連続性を保ちつつ長期に安定な姿勢を保って歩行継続できる歩容を一層適切に生成することができる。
【００２１】
【発明の実施の形態】
以下、添付図面を参照してこの発明に係る脚式移動ロボットの歩容生成装置を説明する。尚、脚式移動ロボットとしては２足歩行ロボットを例にとる。
【００２２】
図１はその２足歩行ロボット１を含む装置全体の説明図である。
【００２３】
図示の如く、２足歩行ロボット１は左右それぞれの脚部リンク２に６個の関節を備える（理解の便宜のために各関節をそれを駆動する電動モータで示す）。６個の関節は上から順に、股（腰部）の脚部回旋用の関節１０Ｒ，１０Ｌ（右側をＲ、左側をＬとする。以下同じ）、股（腰部）のロール方向（Ｙ軸まわり）の関節１２Ｒ，１２Ｌ、同ピッチ方向（Ｘ軸まわり）の関節１４Ｒ，１４Ｌ、膝部のロール方向の関節１６Ｒ，１６Ｌ、足部のロール方向の関節１８Ｒ，１８Ｌ、同ピッチ方向の関節２０Ｒ，２０Ｌから構成される。
【００２４】
足部には足平２２Ｒ，２２Ｌが取着されると共に、最上位には上体（基体）２４が設けられ、その内部に図２に関して後述するマイクロコンピュータからなる制御ユニット２６などが格納される。上記において股関節（あるいは腰関節）は関節１０Ｒ（Ｌ），１２Ｒ（Ｌ），１４Ｒ（Ｌ）から、足関節は関節１８Ｒ（Ｌ），２０Ｒ（Ｌ）から構成される。また股関節と膝関節とは大腿リンク２８Ｒ，２８Ｌ、膝関節と足関節とは下腿リンク３０Ｒ，３０Ｌで連結される。
【００２５】
上記の構成により、脚部リンク２は左右の足についてそれぞれ６つの自由度を与えられ、歩行中にこれらの６＊２＝１２個の関節を適宜な角度で駆動することで、足全体に所望の動きを与えることができ、任意に３次元空間を歩行させることができる（この明細書で「＊」は乗算を示す）。
【００２６】
尚、この明細書で後述する上体の位置およびその速度は、上体２４の所定位置、具体的には上体２４の重心位置などの代表点およびその（変位）速度を意味する。
【００２７】
図１に示す如く、足関節の下方には公知の６軸力センサ４４が取着され、接地面（床面）からロボット１に作用する床反力の３方向成分Ｆｘ，Ｆｙ，Ｆｚとモーメントの３方向成分Ｍｘ，Ｍｙ，Ｍｚとを測定し、足部の着地の有無ないしは接地荷重などを検出する。また、上体２４には傾斜センサ６０が設置され、Ｚ軸（鉛直方向）に対する傾きとその角速度を検出する。また各関節の電動モータには、その回転量を検出するロータリエンコーダが設けられる。
【００２８】
更に、図１では図示を省略するが、２足歩行ロボット１の適宜な位置にはジョイスティック６２が設けられ、外部から必要に応じて直進歩行しているロボットを旋回させるなど、歩容に対する要求を入力できるように構成される。尚、歩容に対する要求は、ジョイスティックに代え、遠隔操縦装置を設けて行っても良く、あるいは通信を介して行っても良い。
【００２９】
図２は制御ユニット２６の詳細を示すブロック図であり、マイクロ・コンピュータから構成される。そこにおいて傾斜センサ６０などの出力はＡ／Ｄ変換器７０でデジタル値に変換され、その出力はバス７２を介してＲＡＭ７４に送られる。また各電動モータに隣接して配置されるエンコーダの出力はカウンタ７６を介してＲＡＭ７４内に入力される。
【００３０】
制御ユニット内にはＣＰＵからなる第１、第２の演算装置８０，８２が設けられており、第１の演算装置８０は後述の如く、ＲＯＭ８４に格納されている標準歩容に基づいて後述の如く自在かつリアルタイムに歩容を生成すると共に、関節角指令値を算出し、ＲＡＭ７４に送出する。また第２の演算装置８２はＲＡＭ７４からその指令値と検出された実測値とを読み出し、各関節の駆動に必要な制御値を算出してＤ／Ａ変換器８６とサーボアンプを介して各関節を駆動する電動モータに出力する。
【００３１】
図３はこの装置の構成および動作を機能的に示すブロック図である。
【００３２】
最初に、先の出願（特願平８−２１４２６１号）で提案した歩容生成手法について概説する。
【００３３】
その先に提案した技術（特願平８−２１４２６１号）は、本出願人が更にその前に特開平５−３０５５８５号公報において提案したコンプライアンス制御技術を前提とする。
【００３４】
そのコンプライアンス制御技術においては、床反力の目標位置と実測位置の偏差を検出し、その偏差を解消するように脚部の一方または双方を駆動して姿勢の安定化を図ると共に、ロボットが倒れそうになると、目標床反力を意図的にずらすことによって実床反力をずらして姿勢復元力を得ている。先の出願（特願平８−２１４２６１号）では、そのようなコンプライアンス制御によるロボットの姿勢安定化制御を行うために必要な目標歩容を自在に生成することを意図した。
【００３５】
それらで提案した脚式移動ロボットの制御においては、目標運動軌跡と目標床反力パターンの関係が動力学的平衡条件を満足していなければ、安定した歩行を実現することができない。動力学的平衡条件とは、具体的には、例えば、目標床反力中心点（目標床反力分布の２次モーメントが０になる床上の作用点）とＺＭＰ（Zero Moment Point...運動による慣性力と重力の合力が床と交わる点）が一致することである。一致していないと、コンプライアンス制御が働いたときに、慣性力と重力の合力と床反力との間の動バランスを崩し、転倒する。
【００３６】
先に提案したコンプライアンス制御においては、それをロボットが不安定となったときの姿勢回復に逆用しているが、脚式移動ロボットにおいてはこのように歩行制御に与える目標歩容として、目標の運動パターンだけではなく、目標の運動パターンと動力学的平衡条件を満足する目標床反力パターンも必要である。
【００３７】
目標床反力は、一般的には、作用点とその点に作用する力と力のモーメントによって表現される。作用点はどこにとっても良いので、同一の目標床反力でも無数の表現が考えられるが、特に前述の目標床反力中心点を作用点にして目標床反力を表現すると、力のモーメントは、床に垂直な成分を除けば、０になる。
【００３８】
尚、前述のように、目標の運動軌道と動力学的平衡条件を満足する目標床反力中心点軌道はＺＭＰと一致するから、目標床反力作用中心点軌道の代わりに目標ＺＭＰ軌道を与えると言っても同じことである。従って、上記は、「歩行制御に与える目標値（目標歩容）としては、目標運動軌跡だけでなく、目標ＺＭＰ軌道（目標床反力パターン）も必要である」と言い換えることができる。
【００３９】
このように、目標歩容は広義には１歩ないしは複数歩の期間の目標運動軌跡とその目標床反力パターンの組であり、狭義には１歩の期間（例えば、両脚支持期の初期から片脚支持期の終端まで）の目標運動軌跡とそのＺＭＰ軌道の組であって、一連の歩行は、いくつかの歩容がつながったものである。尚、両脚支持期は言うまでもなく、ロボット１がその自重を脚部リンク２の双方で支持する期間を、片脚支持期は脚部リンク２の一方で支持する期間をいう。片脚支持期においてロボット１の自重を支持しない側の脚部リンクを遊脚という。
【００４０】
目標歩容は、以下の条件を満たさなければならない。
条件１）動力学的平衡条件を満足していること。即ち、ロボット１の目標運動軌跡から動力学的に算出されるＺＭＰ軌道が目標ＺＭＰ軌道と一致していること。条件２）ロボット１の歩行計画部や歩行経路誘導部（共に図示せず）、あるいはオペレータから歩幅や旋回角など歩容が満たすべき条件が要求される場合、それらの要求条件を満たしていること。
【００４１】
条件３）足平が床を掘ったり擦ったりしない、関節角度が可動範囲を超えない、関節速度が限界を超えないなどの、キネマティクス（運動学）に関する制約条件を満たしていること。
条件４）片脚支持期においてＺＭＰが支持脚足平接地面内になければならない、駆動系の最大能力を超えないなどの、ダイナミクスに関する制約条件を満たしていること。
【００４２】
条件５）境界条件を満たしていること。即ち、条件１）の当然の帰結として、歩容と歩容の境界では、少なくとも、各部位の位置・速度が連続であるという境界条件が導かれる（不連続であれば、無限大の力が発生したり、ＺＭＰが接地面からはるかに遠くの点に移動してしまうから）。
【００４３】
即ち、第ｎ＋１回歩容の初期状態は、第ｎ回歩容の終端状態（特に、足平位置に対する上体の位置・姿勢および速度）に一致するように設定されなければならない。
【００４４】
一般的に、目標歩容は、後述する標準歩容のように、パラメータ値あるいは時系列テーブルを含む歩容発生アルゴリズムによって発生させられる。しかし、パラメータ値あるいは時系列テーブルを十分な配慮もせずに設定しただけでは、作成された歩容が前記の歩容条件をすべて満足しているか否かは分からない。
【００４５】
特に、長期的歩行に適した終端上体位置および速度の範囲が分かっていたとしても、ＺＭＰ軌道に基づいて上記した条件１）を満足する上体の軌道を歩容発生アルゴリズムに従って生成する場合には、発生した歩容の終端での上体位置と速度の両方がその範囲に入るようにＺＭＰ軌道に関するパラメータを設定することは、極めて難しい。
【００４６】
その理由は次の通りである。
理由１）上体は、一旦、ＺＭＰから遠くに離れると、さらに遠くに離れようとする発散傾向がある。これを説明するために、図４に示すようなロボットの上体の挙動に近い倒立振子の挙動を例に挙げる。
【００４７】
倒立振子は重心の床投影点が支点からずれると、ずれが発散して倒れる。しかし、そのときも倒立振子の慣性力と重力の合力は支点上に作用し（即ち、ＺＭＰが支点に一致し）、支点から受ける床反力に釣り合っている。即ち、動力学的平衡条件は、運動する物体のその瞬間における慣性力と重力と床反力の関係を表すだけのものである。
【００４８】
動力学的平衡条件を満足していればロボットの長期歩行が保証されたように錯覚しやすいが、ロボットの姿勢が崩れているか否かとは全く関係がない。倒立振子の重心が支点の真上から離れると、ますます遠くに離れようとする傾向があるように、ロボットの重心がＺＭＰの真上から遠くに離れるとますます遠くに離れようとする発散傾向がある。
【００４９】
理由２）片脚支持期においてＺＭＰが支持脚足平接地面内になければならないなどの厳しい制約条件があるために、上体の加減速パターンを恣意的に設定することができず、位置を合わせようとすると速度が合わず、速度を合わせようとすると位置が合わず、なかなか両方を同時に一致させることは難しい。
【００５０】
以上の問題点のために、前記歩容条件を全て満たした目標歩容のパラメータやテーブルをリアルタイムに決定することは、従来では不可能であった。そのため、前記した従来技術では、自在な歩行は実現されていなかった。その意図から、先の出願（特願平８−２１４２６１号）では、一歩の歩容を、パラメータに対する要求を満たしつつ生成するようにした。
【００５１】
ところで、既に生成された目標歩容１に連結する、目標歩容２を生成する場合、この２つの歩容の境界において、上体や足平の位置（変位）・速度が連続になっていなければならない。先の出願では、目標歩容を以下の手順で生成した。先ず、目標歩容１との境界での上体の位置・速度の条件を無視し、それ以外の目標歩容２に関する要求を満足するように予め記憶しておいた複数の標準歩容を混合することにより生成していた。
【００５２】
次に、図４に示すような倒立振子型の摂動動力学モデルを用い、混合歩容に補正ＺＭＰパターンと動力学平衡条件を満足する補正上体位置パターンを加えることにより、目標歩容１との境界条件も満足する目標歩容２を生成していた。
【００５３】
しかし、連続にするための上体の初期位置・速度の要求値が、上記混合歩容から大きくずれている場合でも、補正上体位置パターンをその境界条件を満足させるように強引に変更させていたことから、補正ＺＭＰパターンの振幅が過大になり、ＺＭＰの足平接地面内での存在などを要求する補正制約条件を満足しきれなくなることがあった。
【００５４】
それを解消しようとして、逆に、補正ＺＭＰパターンの振幅を十分な配慮をせずに強引に小さく抑えてしまうと、それと動力学平衡条件を満足する補正上体位置パターンが犠牲になり、終端上体位置・速度が長期的歩行に適した範囲を超えてしまう。この状態を放置しておくと、上体位置が発散し、大きく姿勢を崩して歩行が困難になる。このように、隣合う歩容の境界条件を設定する際に、単に一方の歩容に他方の境界条件を合わせるだけでは不十分であった。
【００５５】
従って、この発明においては、先の出願で提案したように一歩ごとに境界条件を直接的に設定する手法は用いずに、複数の歩容、より具体的には２歩の間でＺＭＰパターンと上体位置パターンを操作するようにした。
【００５６】
即ち、図５に示す如く、先の出願で提案した手法に従って生成された２個の歩容を連続させて継続的に目標歩容を発生させるときに、歩容境界での上体位置・速度に不連続が生じ、ＺＭＰが距離ａだけ無限遠点に移動してしまう。尚、この明細書では１つないしは複数の歩容から、歩容の境界条件を除く、要求を満足する歩容を生成することを「歩容混合」という。
【００５７】
しかしながら、歩容境界において摂動動力学モデルの位置・速度を上記歩容と逆向きに不連続にすると、その瞬間だけ、摂動動力学モデルのＺＭＰは、上記歩容と逆向きに距離−ａだけ移動し、それによってＺＭＰの移動を相殺できることが知見された。
【００５８】
即ち、混合歩容の運動に対して動力学的平衡条件を満たすＺＭＰに摂動動力学モデルのＺＭＰを加えると、同図に示す如く、合成された目標歩容において上体の位置は連続し、ＺＭＰの瞬間的な移動を解消できることが知見された。混合歩容を作成するときに用いるロボットモデルと摂動動力学モデルがかけ離れていなければ、混合歩容の運動に対して、動力学的平衡条件を満たすＺＭＰと摂動動力学モデルのＺＭＰは互いに打ち消し合う。
【００５９】
この発明は、以上の知見に基づく。
【００６０】
ところで、混合歩容のＺＭＰは、歩行時には設定ＺＭＰパラメータから算出される。設定ＺＭＰパラメータから算出されるＺＭＰは、もともと歩容境界での不連続がないものとして設定されている。従って、設定ＺＭＰパラメータから算出されるＺＭＰと摂動動力学モデルのＺＭＰから目標ＺＭＰを求める場合には、摂動動力学モデルの位置・速度を歩容境界で不連続にすることによる摂動動力学モデルのＺＭＰへの影響は零とみなす必要がある。
【００６１】
換言すれば、不連続に対応するＺＭＰの移動がどのくらいであるかを気にする必要はなく、従って図６に示す如く、ただ単に、混合歩容の歩容境界条件の不連続を打ち消すように、摂動動力学モデルの上体位置・速度だけを不連続に変化させれば良いことになる。
【００６２】
ここで、図４に示す倒立振子型の摂動動力学モデルについて説明する。倒立振子型の摂動動力学モデルは、ＺＭＰの摂動に対する上体位置・速度の摂動の関係を表す線形モデルであり、この発明でも使用する。
【００６３】
即ち、ロボット１の上体２４の質量がそれ以外の部位の質量に比べて十分に大きく、かつ歩行時に上体の上下加速度が小さいと仮定すると、ＺＭＰの摂動に対する上体位置・速度の摂動の関係は、次式および図４に示す如く、線形倒立振子モデルで近似することができる。図示の如く、このモデルにあっては、支点２２ａも移動自在である。
【００６４】
ｄｘｍｄｌ／ｄｔ＝ｖ
ｄｖｍｄｌ／ｄｔ＝ω０＊（ｘｍｄｌ−ＺＭＰｍｄｌ）
ここで、ｘｍｄｌ：線形倒立振子の重心位置、ｖｍｄｌ：線形倒立振子の重心速度である。またω０は正の定数であり、上体重心高さｈと重力加速度ｇとほぼ次の関係を持つ。
ω０＝√（ｇ／ｈ）
【００６５】
このように、倒立振子で近似したことから、演算量を低減させることができる。尚、図においてＺＭＰｍｄｌは線形倒立振子のＺＭＰである。
【００６６】
この装置においては先の出願と同様に上記のような摂動動力学モデルを備えると共に、境界での上体の位置・速度と目標ＺＭＰの連続性を無視して生成した２個の混合歩容の間にＸ，Ｙ方向の位置・速度の不連続量が生じたとき、図７に示す如く摂動動力学モデルにモデル位置スキップ量、モデル速度スキップ量、モデルＺＭＰ移動量を発生させ、歩容境界での不連続を解消するようにした。
【００６７】
尚、ここで図７および以下の明細書で使用する用語について少し触れておくと、２個の混合歩容の内の時間的に先行する歩容を「第１歩容」、後行する歩容を「第２歩容」という。「第１歩容」および「第２歩容」は、摂動動力学モデルの挙動を論じるときの概念である。「第１歩容」「第２歩容」に加え、「第１混合歩容」「第２混合歩容」という表現も使用するが、「第１混合歩容」は第１歩容の生成に用いられる混合歩容を、「第２混合歩容」は第２歩容の生成に用いられる混合歩容を意味する。
【００６８】
また、上で述べたように混合歩容境界でのずれを「不連続量」、具体的には位置不連続量Ｘｍ、速度不連続量Ｖｍ、ＺＭＰ不連続量Ｄｍといい、その不連続量を打ち消すために摂動動力学モデルに加える、意図的なずらし量を、上記の如く「スキップ量」、具体的には、モデル位置スキップ量Ｘｓ、モデル速度スキップ量Ｖｓ、モデルＺＭＰ移動量Ｄｓという。
【００６９】
尚、モデルＺＭＰ移動量はＺＭＰ不連続量に対応して求められるが、そのＺＭＰ不連続量はより具体的には、第２歩容の初期遊脚位置要求値と混合歩容の初期遊脚位置との差である。補足すると、本来、この差が０であれば、混合歩容のＺＭＰは連続になるように生成されるが、歩幅や歩隔を変更するために混合歩容の初期遊脚位置を変更すると、この差が０ではなくなり、混合歩容のＺＭＰは不連続になる。これを打ち消すように、モデルＺＭＰ移動量が決定される。
【００７０】
これらスキップ量は具体的には、次のように決定される。
Ｘｓ＝−Ｘｍ
Ｖｓ＝−Ｖｍ
Ｄｓ＝−Ｄｍ
【００７１】
ここで、図７に示すように、倒立振子に与えるＺＭＰパターンは台形状の波形となっている。台形の高さを「バイアス」ともいい、第１歩容のそれを「第１歩容ＺＭＰバイアスＢ１」第２歩容のそれを「第２歩容ＺＭＰバイアスＢ２」という。バイアスＢ１，Ｂ２は、より具体的には第１歩容および第２歩容でのＺＭＰの定常的な摂動量を示す。尚、この明細書で位置・速度およびＺＭＰはＸ方向についてのみ示すが、Ｙ方向についても同様である。
【００７２】
尚、モデルＺＭＰの座標系原点は、支持脚接地面に設定する。従って、第１歩容と第２歩容とでは座標系の原点が異なる。モデルＺＭＰを第１歩容の座標系から見続ければ連続である。しかし、第１歩容の座標系から見た第１歩容終端モデルＺＭＰは０であるが、第２歩容の座標系から見た第２歩容の初期モデルＺＭＰは、図７に示す如く、−Ｄｓとなる。一方、第２混合歩容の初期遊脚位置を初期遊脚位置要求値に書き換えると、つまさきにあるべき初期ＺＭＰが、つまさきから−Ｄｍ位置にずれる。従って、第２混合歩容に、第２歩容の座標系から見たモデルＺＭＰを加えることにより得られる第２歩容の初期ＺＭＰは、つまさきから−Ｄｓ−Ｄｍ（＝０）の位置、即ち、本来あるべき、つまさきに存在する。
【００７３】
ここで、モデル演算誤差について説明する。
【００７４】
モデルの挙動、即ち、モデルＺＭＰを長時間演算した場合、図８に示すようにモデル位置、即ち、モデル変位には誤差が累積する。倒立振子型摂動動力学モデルは不安定系なので、わずかな演算誤差があっても、それが累積すれば発散してしまう。例えば、倒立振子型摂動動力学モデルの挙動計算を数十秒間実行すると、倒立振子に１度以上の誤差が発生することがある。
【００７５】
従って、長期継続的な歩行を実現するためにはその累積誤差を解消することが望ましい。そのために、この発明においては倒立振子型摂動動力学モデルを複数個備え、１つの倒立振子（型摂動動力学モデル）が歩行終端時期など所定の時期になったら、その倒立振子を変位がＺＭＰ操作量と一致するように、強制的に所定の姿勢、具体的には直立停止させるようにした。
【００７６】
即ち、図９に示す如く、倒立振子型摂動動力学モデルを２個備え、図１０に示すようにモデルそれぞれには２歩の間に直立停止する（前記した「所定の挙動を示す」に相当）ようなモデルＺＭＰパターンしか加えないこととし、２歩後にモデルを強制的にリセット、即ち、モデルの速度を０に書き換え、変位をモデルＺＭＰに強制的に一致させるようにした。
【００７７】
図１０でモデル１はＡ点で、モデル２はＢ点で速度を０にされて直立停止させられる。従って、モデル全体としては図１０下部に示すように連続する動作を示すが、個々のモデルの演算値はその度にリセットされるので、誤差が累積することがない。
【００７８】
この場合、数歩以上にわたる複雑なモデルＺＭＰパターンは、それぞれのモデルに与えられるモデルＺＭＰパターンの和によって作成すれば良い。
【００７９】
上記を前提として図３を参照してこの発明に係る装置を説明する。尚、同図において線Ｃより上の部位の処理は歩行の始め、あるいは１歩ごとに行われ、下の部位の処理は制御周期ごと、例えば２０ｍｓごとに行われる。
【００８０】
この装置にあっても先の出願と同様に、標準歩容の集合が用意される。標準歩容は、オフラインにおいて上体が発散せず、その後の長期継続的な歩行が保証される終端状態を持つように生成される。例えば、静止状態から歩き始める始動歩容、加速歩容、等速度歩容、減速歩容、停止歩容など、一連の連続した歩容の列は、長期継続的な歩行が保証された標準歩容の代表例である。
【００８１】
歩容は、歩容パラメータによって記述される。歩容パラメータは、運動パラメータとＺＭＰパラメータ（より一般的に表現すれば、床反力パラメータ）から構成される。尚、この明細書で「床反力パラメータ」なる語は、「床反力の時間的なパターンに関するパラメータ」を意味するものとして使用する。
【００８２】
ＺＭＰパラメータは、Ｘ，Ｙ，Ｚ座標（方向）について折れ線グラフ状のＺＭＰ軌道の折れ点の位置と通過時刻で示される（図１３などに示す）。この明細書および図面ではＸ座標のみ言及するが、Ｙ座標についても同様である。尚、ＺＭＰのＺ方向は混合歩容を生成する段階で連続になっているものとし、ＺＭＰのＺ方向を倒立振子によって連続化する必要はないものとする。
【００８３】
運動パラメータは、足平軌道パラメータと上体軌道パラメータとから構成される。足平軌道パラメータは、初期（離床時）遊脚位置および姿勢、終端（着床時）遊脚位置および姿勢、両脚支持期時間、片脚支持期時間などを含む。上体軌道パラメータは、上体の姿勢を決定するパラメータ、上体高さ（Ｚ方向の値）を決定するパラメータ、初期の上体位置（変位）および速度パラメータなどから構成される。
【００８４】
それらに基づき、混合歩容瞬時値発生器において先に本出願人が別途、特開平５−３１８３３９号および特開平５−３２４１１５号公報などで提案した技術を用いて、両足平の位置・姿勢および上体の位置・速度および姿勢の瞬時値が求められる。但し、上体の位置・速度の境界条件は無視して作られる。尚、ここで「瞬時値」は、制御周期ごとの値を意味する。
【００８５】
速度は具体的には、位置の制御周期ごとの値（瞬時値）の差分を演算して求める。尚、ここで「姿勢」は空間上の向きを、上体の位置は前記の如く、上体２４の重心位置などの代表点の位置を意味する。
【００８６】
シーケンサは一連の歩行の時間管理と歩容の切替えを行ない、具体的には時刻を初期化する、制御周期ごとに時刻を更新する、目標歩容の終端時期を判断して目標歩容を切替え、時刻を初期化し、支持脚を切り替えるなどの作業を行う。尚、両脚支持期においても、脚の区別をつけるために、１歩の間、常に接地している脚を支持脚、それ以外を遊脚という。
【００８７】
歩容生成処方決定装置においては、目標歩容を生成するための混合歩容の作り方を決定する。具体的には、混合する標準歩容を選択し、加重平均の重みを決定し、遊脚足平位置の修正量を決定する。ここで、遊脚足平位置の修正量は、目標歩容の遊脚初期位置要求値と混合歩容の初期遊脚位置の差である。
【００８８】
モデル挙動パラメータ決定器においては先に触れたように、先ず、歩容生成処方決定装置で作られた今回混合歩容と次回混合歩容の間の上体位置・速度の不連続量を求める。更に、その不連続量と遊脚足平位置の修正量に基づいて摂動動力学モデルの位置・速度スキップ量とモデルＺＭＰ移動量を、最終的に得られる目標歩容が連続するように、決定する。また、摂動動力学モデルの位置・速度スキップ量とモデルＺＭＰ移動量から、ＺＭＰ補正量を決定する。
【００８９】
モデル挙動パラメータ決定器が決定するＺＭＰ補正量は、原則として１歩の時間の間に１回だけ台形パターンを発生する。ＺＭＰ補正量は摂動動力学モデルに与えるＺＭＰのパターンであるので、この明細書では「モデルＺＭＰ」、より詳しくは「モデルＺＭＰパラメータ」または「モデルＺＭＰ軌道パラメータ」という。モデル挙動パラメータ決定器は、このようにＺＭＰ補正量（図に「モデルＲ用ＺＭＰパラメータ」あるいは「モデルＬ用ＺＭＰパラメータ」と示す）も決定する。モデルＺＭＰパラメータは、台形の高さと、モデルＺＭＰ移動量と各折れ点の時間配分とから構成されるが、この実施の形態では時間配分は歩容に関わらず、固定する。
【００９０】
モデルＲないしＬ用ＺＭＰ波形発生器においては、そのＺＭＰパラメータに基づき、モデルＺＭＰ（瞬時値）を算出する。
【００９１】
この装置においてはＲとＬの２つの摂動動力学モデルＲ，Ｌを備え、ＺＭＰ波形発生器もモデルＲ用とモデルＬ用の２つからなる。摂動動力学モデルＲ，Ｌは図４に示した倒立振子型の摂動動力学モデルであり、リアルタイムで状態量（モデルの上体位置・速度）を計算する。
【００９２】
歩容混合装置においては、歩容生成処方決定装置で決定した歩容生成処方および標準歩容（の集合）に基づき、混合歩容生成アルゴリズムに従って後述の如く混合歩容パラメータを生成する。
【００９３】
混合歩容瞬時値発生器においては、歩容生成処方決定装置で決定した歩容生成処方に基づき、前述の混合歩容生成アルゴリズムに従って混合歩容の瞬時値（制御周期ごとの値）、具体的には混合上体位置・速度、混合目標ＺＭＰ、混合上体姿勢（目標上体姿勢）および混合足平位置・姿勢（目標足平位置・姿勢）を決定する。
【００９４】
決定された混合上体位置には、摂動動力学モデルＲ，Ｌを介して決定されるモデルＲ，Ｌの変位の和が加算され、目標上体位置が決定される。また、決定された混合目標ＺＭＰには、モデルＲ，Ｌ用ＺＭＰ波形発生器を介して決定されるモデルＲ，ＬのＺＭＰの和が加算され、目標ＺＭＰが決定される。
【００９５】
目標上体位置などは安定化制御装置に送られ、そこで上体傾斜角など検出された各種姿勢安定化制御量に基づき、必要に応じて目標上体位置などが修正され、修正目標上体位置・速度、修正目標ＺＭＰ、修正目標足平位置・姿勢および修正目標上体姿勢が決定される。これが、前記したコンプライアンス制御に相当する。
【００９６】
姿勢安定化制御装置の出力は逆キネマティクス演算器に送られ、そこで入力値から逆キネマティクス演算によって関節角指令値が決定される。脚式移動ロボット１の関節は図１に示すように１２関節から構成されているので、１２個の関節について関節角指令値が一義的に決定される。上記の処理は図２に示す第１の演算装置８０の動作であり、決定された関節角指令値となるように第２の演算装置８２において関節角サーボ制御が行われる。尚、安定化制御装置およびそれ以降の構成はこの発明に係る歩容生成装置を構成せず、それらでの処理は先の出願に述べたので、説明は省略する。
【００９７】
ここで標準歩容についての説明を補足すると、標準歩容はより具体的には、この明細書で時間関数として表し、１つの歩容は次のように定義されるg(t)とf(t)の組で表すようにした。
g(t)：運動を記述する関数（この関数値は、時刻ｔにおけるロボット全体の位置・姿勢を表す。具体的には全体の位置・姿勢は、上体の位置・姿勢、両足平の位置・姿勢で表される）。
f(t)：ＺＭＰ軌道を記述する関数（この関数の値は前記の如く、時刻ｔにおけるＺＭＰの位置(x,y,z) を表す）。
【００９８】
また歩容関数はパラメータを意識して記号表記するようにした。即ち、g(t)とf(t)は、共に歩容パラメータをパラメータとして持つ関数である。異なる歩容を明確に示すためには全パラメータを明示的に表記すべきであるが、パラメータの種類は非常に多いので、以降の説明に必要なパラメータ変数だけを明記した、以下の表記を用いることとする。
g( t:  a, b, c, d, x(k), y(k))：運動軌道を記述する関数
f( t:  a, b, c, d)：ＺＭＰ軌道を記述する関数（床反力を記述する関数）
但し、
a ：初期遊脚足平向き（ロボット旋回角）
b ：初期遊脚足平前後位置（歩幅）
c ：片脚支持期のＺＭＰのＸ座標
d ：片脚支持期のＺＭＰのＹ座標
x(k)：上体位置のＸ座標時系列
y(k)：上体位置のＹ座標時系列
【００９９】
この表記では、時系列も一種のパラメータとして扱っている。本来は、初期上体位置・速度パラメータを与えることで、上体高さを決定する拘束条件があれば、上体位置の時系列テーブルがなくても歩容は一義的に定まる。即ち、上体位置の時系列は冗長なものであるが、前述したようにリアルタイム歩容生成の演算時間短縮のために、上体位置の時系列テーブルも歩容を記述するパラメータのように扱っている。
【０１００】
この実施の形態では、初期上体位置・速度パラメータも歩容によって異なるが、上体位置の時系列を明記している場合には、時系列の最初の２つから初期上体位置・速度パラメータ値が算出できるので、その記述を省略する。
【０１０１】
この実施の形態においては標準歩容として、前記した如く、静止状態から歩き始める歩容など複数種の歩容をオフラインで予め作成しておくが、以下３種の歩容を具体例として例示する。
第０標準歩容
g( t:  a0, b0, c0, d0, x0(k), y0(k))
f( t:  a0, b0, c0, d0)
第１標準歩容
g( t:  a1, b0, c1, d1, x1(k), y1(k))
f( t:  a1, b0, c1, d1)
第２標準歩容
g( t:  a0, b2, c2, d2, x2(k), y2(k))
f( t:  a0, b2, c2, d2)
【０１０２】
これら標準歩容の初期遊脚足平位置・姿勢と終端遊脚足平位置・姿勢などを、図１１ないし図１７に示す。歩容を表現するために、座標系を図に示すように、支持脚足平接地位置のある基準点を原点にし、支持脚足平の前後方向をＸ軸、左右方向をＹ軸にとる。
【０１０３】
ここで図１８および図１９に示すような歩容に関する要求が与えられたと仮定し、上記した標準歩容から前記歩容条件を満たすように要求歩容（以下「要求混合歩容」と言う）を生成する作業を例にとって歩容混合装置の動作を説明する。尚、要求混合歩容は、任意の初期遊脚足平向きａ３および任意の初期遊脚足平前後位置ｂ３を持つ。尚、要求混合歩容に対し、歩容境界での上体位置・速度と初期および終端遊脚足平位置は、要求しなくても良い。この要求は、要求混合歩容に摂動動力学モデルの挙動を加えることによって満たされるからである。
【０１０４】
当然、要求混合歩容のパラメータａの値はａ３、ｂの値はｂ３である。問題は、歩容の条件を満たすように、その他のパラメータｃ，ｄおよびテーブルx(k), y(k)を如何に決定するかである。
【０１０５】
そこで、要求混合歩容を
g( t:  a3, b3, c3, d3, x3(k), y3(k))
f( t:  a3, b3, c3, d3)
とおき、パラメータc3, d3および時系列テーブルx3(k), y3(k)を決定する。
【０１０６】
ここで、用語を定義すると、パラメータａおよびｂは、この装置以外の外部（オペレータのジョイスティック６２などの操作による）または別の装置からこの装置に対して要求設定値（前記した「歩容に関する要求」に同じ）として入力される値を含む。このように、直接的にある設定値を要求されるパラメータを直接設定パラメータと呼ぶ。
【０１０７】
それに対し、パラメータｃ，ｄおよびテーブルx(k), y(k)のように、直接設定パラメータの値に応じて歩容の条件を満たすように値が決定されるパラメータ（またはテーブル）を、従属パラメータ（または従属テーブル）と呼ぶ。時系列テーブルを直接的に設定することは極めて難しいので、時系列テーブルが直接設定パラメータとなることはほとんどない。
【０１０８】
また、第０標準歩容以外の第１および第２標準歩容は、第０標準歩容を基準として、直接設定パラメータ（ここでは、パラメータａとｂ）の内でただひとつだけを変えたものである。このように、選択された標準歩容の核となる歩容（第０標準歩容）をベース歩容と呼ぶ。
【０１０９】
ここで、要求歩容のパラメータ（この明細書では要求歩容のパラメータを「混合パラメータ」とも言う）の求め方を説明すると、従属パラメータc3, d3および従属時系列テーブルx3(k), y3(k)は、いずれも、歩容の条件を満たすために、直接設定パラメータａとｂに応じて変化する。しかも、パラメータａとｂの変化に対して、これらの値は連続的に変化するものと考えられる。即ち、これらは、パラメータａとｂの連続関数である。そこで以下に述べる近似原理を利用することができる。即ち、近似演算を行うことにより要求歩容のパラメータを求めることができる。
【０１１０】
関数P が滑らかな連続関数であるならば、以下の式を用いて近似することができる。
P(a0+ Δa, b0+Δb) = P(a0, b0) +δP / δa~(a=a0,b=b0) ＊Δa + δP /
δb~(a=a0,b=b0) ＊Δb ・・・近似式１
但し、
δP / δa~(a=a0,b=b0) ：a=a0,b=b0 でのP のa に関する偏微分値
δP / δb~(a=a0,b=b0) ：a=a0,b=b0 でのP のb に関する偏微分値
【０１１１】
更に、
δP / δa~(a=a0,b=b0)  =  ( P(a0+ Δa1, b0)  - P(a0, b0) ) /Δa1
δP / δb~(a=a0,b=b0)  =  ( P(a0, b0+ Δb2)  - P(a0, b0) ) /Δb2
であるので、近似式１は
P(a0+ Δa, b0+Δb) = P(a0, b0)
+ ( P(a0+ Δa1, b0)  - P(a0, b0) )／Δa1＊Δa
+ ( P(a0, b0+ Δb2)  - P(a0, b0) )／Δb2＊Δb
・・・・・・・・・・・・・・近似式２
と書き直すことができる。
【０１１２】
要求歩容のパラメータの求め方の説明を続けると、具体的には以下の式のように全ての従属パラメータ、全ての従属時系列テーブルに対して内分または外分することによって、標準歩容から要求混合歩容のパラメータを求める。これは、直接設定パラメータと従属パラメータとは比例関係にあると考えることができるからである。
【０１１３】
ａ３がａ１とａ２の内側にあれば内分、外側にあれば外分である。また、違いが動力学的に無視できる一部のパラメータ、一部の時系列テーブルは、内分、外分せず、ベース歩容のままであっても良い。更に、時系列テーブルに関しては、全時刻のデータをすべて一度に計算すると第１の演算装置８０の負荷が大き過ぎるので、制御周期毎に今回時刻のデータだけ内分、外分すれば良い。
【０１１４】
以下に従属パラメータおよび従属テーブルの混合式（内分または外分による）を示す。
c3 = c0
+ ( c1 - c0 ) ＊( a3 - a0 ) / ( a1 - a0 )
+ ( c2 - c0 ) ＊( b3 - b0 ) / ( b2 - b0 )
d3 = d0
+ ( d1 - d0 ) ＊( a3 - a0 ) / ( a1 - a0 )
+ ( d2 - d0 ) ＊( b3 - b0 ) / ( b2 - b0 )
x3(k) = x0(k)
+ ( x1(k) - x0(k) ) ＊( a3 - a0 ) / ( a1 - a0 )
+ ( x2(k) - x0(k) ) ＊( b3 - b0 ) / ( b2 - b0 )
y3(k) = y0(k)
+ ( y1(k) - y0(k) ) ＊( a3 - a0 ) / ( a1 - a0 )
+ ( y2(k) - y0(k) ) ＊( b3 - b0 ) / ( b2 - b0 )
【０１１５】
上記の混合式は、各標準パラメータおよびテーブル値の加重平均（重み付き平均）となっている。例えば、c3を求める式を変形すると、
c3 = ( 1 - ( a3 - a0 ) / ( a1 - a0 ) -  ( b3 - b0 ) / ( b2 - b0 ) ) ＊c0
+  ( a3 - a0 ) / ( a1 - a0 )＊c1
+  ( b3 - b0 ) / ( b2 - b0 )＊ c2
となり、c0とc1とc2の係数の和が１になっているので、c3は、c0とc1と c2 に対する重みがそれぞれ
( 1 - ( a3 - a0 ) / ( a1 - a0 ) -  ( b3 - b0 ) / ( b2 - b0 ) )
( a3 - a0 ) / ( a1 - a0 )
( b3 - b0 ) / ( b2 - b0 )
の加重平均となっている。
【０１１６】
上記の手法によって混合歩容のパラメータを決定し、次いでオフラインで作成された標準歩容と同一の歩容生成アルゴリズムによって混合歩容の各時刻における瞬時値（制御周期ごとの値）を生成する。
【０１１７】
上記を前提として、以下、図２０フロー・チャートを参照してこの装置の動作を説明する。
【０１１８】
先ず、Ｓ１０においてオフラインで作成した前記標準歩容のデータ群をＲＯＭ８４（またはＲＡＭ７４）に記憶させる。次いでＳ１２に進み、各々の標準歩容の終端の上体位置・速度を求めて記憶する。
【０１１９】
支持脚の位置・姿勢を一致させながら、複数個の標準歩容を加重平均して得られる混合歩容においては、初期・終端での上体位置・速度は、標準歩容の歩容境界における上体位置・速度の加重平均に一致する。そこでこの実施の形態においては、予め標準歩容の初期・終端での上体位置・速度をテーブル化して記憶し、歩行時に読み出し、混合歩容の初期および終端の上体位置・速度を演算する。
【０１２０】
例えば、終端の上体位置・速度は先に述べた如く、上体２４の位置が関数x(k),y(k) としてテーブル化されているので、終端位置・速度はテーブルの最後とその直前の時刻のデータから求める。具体的には最後の時刻の値を終端位置とすると共に、最後とその直前の時刻の値の差分を求めて終端速度とする。
【０１２１】
次いで、Ｓ１４に進んで摂動動力学モデルの挙動に関する知識を獲得する。
【０１２２】
摂動動力学モデルの挙動予測を瞬時に行って希望通りのモデル挙動を実現するモデルＺＭＰ軌道パターンを即座に求めるために、この実施の形態では基本的なモデルＺＭＰ軌道パターンに対するモデルの挙動特性を予め求めて前記ＲＯＭ８４あるいはＲＡＭ７４に記憶する。以降、このための基本的なモデルＺＭＰ軌道パターンを、「基本モデルＺＭＰパターン」という。
【０１２３】
即ち、図２１および図２２に示す如く、第１歩容および第２歩容においてモデルＺＭＰを移動させたときのモデル変位、即ち、ＺＭＰバイアスに対する挙動特性を予め求めて記憶する。
【０１２４】
更に、図２３ないし図２５に示すように、モデルＺＭＰ移動量、モデル位置スキップ量、およびモデル速度スキップ量についても単位量当たりのモデルの挙動特性も演算して記憶しておく。これらは後述の如く、ＺＭＰバイアスを決定するときに使用する。
【０１２５】
ここで、モデルＺＭＰ軌道パターン（図では「モデルＺＭＰ」と示す）は前記の如く台形パターンによって構成され、その時間配分は、第１歩容と第２歩容の種類（始動歩容、定常旋回歩容、停止歩容など）によって固定される。基本モデルＺＭＰ軌道パターンは時間配分以外のパラメータに対して１つだけを単位量とし、それ以外を０とした。
【０１２６】
具体的には、倒立振子（モデル）の初期状態を直立停止状態（即ち、モデル変位＝０）とし、各基本ＺＭＰ軌道パターンに対する倒立振子の挙動を逐次演算で求めるか、あるいは解析的に導き、倒立振子の第２歩容終端での位置・速度を保存する。また、倒立振子の初期状態を直立停止状態とし、モデルＺＭＰを０として第１歩容と第２歩容の境界において倒立振子の位置または速度を不連続的に単位量だけスキップさせた場合の挙動を求め、第２歩容終端での位置・速度を保存する。
【０１２７】
このように、摂動動力学モデルが線形であるので、所望の特徴を持つモデル挙動を上記基本モデル挙動の線形結合で実現することができ、モデル入力を基本モデルＺＭＰパターンの線形結合として容易に得ることができることから、演算量を低減することができる。
【０１２８】
図２０フロー・チャートの説明に戻ると、次いでＳ１６に進み、摂動動力学モデルとそれに関連したパラメータ、即ち、モデル軌道パラメータ（歩容境界でのスキップ量など）やモデルＺＭＰパラメータなどの初期化を行う。
【０１２９】
続いてＳ１８に進んでタイマ値ｔを０とし（タイマをスタートさせ）、Ｓ２０を経てＳ２２に進み、タイマ割り込みを待つ（Ｓ１８のタイマとは異なる）。この割り込み用タイマは例えば、２０ｍｓ（制御周期２０ｍｓ）ごとに起動される。
【０１３０】
Ｓ２２でタイマ割り込みが確認されるとＳ２４に進み、そこで歩容の切り替わり目、即ち、現在の１歩の歩容が完了したか否か判断する。そして否定されるときは直ちにＳ３２に進むと共に、肯定されるときはＳ２６に進んでタイマを０にリセットし、Ｓ２８に進んで支持脚の切換えを行う。具体的には、前回（前の支持脚）がＲならば今回はＬ、前回がＬならば今回はＲとする。
【０１３１】
尚、説明の便宜のため、今回支持脚をＲ（Ｌ）、今回遊脚をＬ（Ｒ）で表す。尚、以降、混乱を起こさないように、「今回歩容」と「次回歩容」、および「第１歩容」と「第２歩容」の使い分けを説明する。「今回歩容」とは、今回の制御周期における歩容生成演算が完了して出力される歩容である。この歩容の直前につながる歩容が「前回歩容」、この歩容の直後につながる歩容が「次回歩容」である。これに対し、「第１歩容」および「第２歩容」は前記の如く、摂動動力学モデルの挙動を論じるときの概念である。
【０１３２】
続いてＳ３０に進んで歩容切り替わり目処理を行う。
【０１３３】
図２６はその処理を示すサブルーチン・フロー・チャートである。
【０１３４】
以下説明すると、先ずＳ１００において歩容の切り替わり目であることから、今回歩容パラメータ値を前回歩容パラメータに、次回歩容パラメータ値を今回歩容パラメータに上書きする（書き換える）。また、次回混合歩容を作成するための、混合する標準歩容の識別ナンバーと重みの値も、今回混合歩容を作成するための、混合する標準歩容の識別ナンバーと重みの変数に上書きする。
【０１３５】
続いてＳ１０２に進み始動歩容か、即ち、歩行初めか否か判断し、否定されるときは直ちにＳ１０８に進むと共に、肯定されるときはＳ１０４に進んで今回歩容（摂動動力学モデルＲ（Ｌ）にとっての第１歩容）の直接設定パラメータの要求値を読み込み、Ｓ１０６に進んで今回混合歩容（同様に摂動動力学モデルＲ（Ｌ）にとっての第１混合歩容）を作成するための、混合する標準歩容の選択と重みを決める。このとき、終端における遊脚足平位置に対する要求は無視しても良い。但し、旋回角（初期遊脚足平姿勢）は満足することとする。
【０１３６】
続いてＳ１０８に進んで次回歩容（第２歩容）の直接設定パラメータの要求値を読み込み、Ｓ１１０に進んで次回混合歩容（第２混合歩容）を作成するための、混合する標準歩容の選択と重みを決める。
【０１３７】
このとき、初期と終端における遊脚足平位置に対する要求は無視しても良い。但し、旋回角（初期遊脚足平向き）は満足させることとする。標準歩容として、初期遊脚足平位置が異なるものが用意されているならば、ベース歩容としてその中から最も要求値に近いものを選ぶ。選んだ後は、混合によって要求値に厳密に一致させる必要はない。強引に一致させると、上体の軌道が標準歩容から大きくずれ、歩容の長期継続性が損なわれるからである。
【０１３８】
続いてＳ１１２に進んでモデルＲ（Ｌ）の軌道パラメータ（状態量）とＺＭＰパラメータを決定する。前述の如く、モデルＲ（Ｌ）軌道パラメータは、モデルＲ（Ｌ）が今回混合歩容（第１混合歩容）と次回混合歩容（第２混合歩容）の境界での混合歩容の不連続を打ち消すように決定すると共に、モデルＲ（Ｌ）用ＺＭＰパラメータは、今回歩容と次回歩容のＺＭＰ軌道がつながり、かつモデルＲ（Ｌ）が２歩後、即ち、次回歩容終了後に直立停止するように決定する。
【０１３９】
図２７はその作業を示すサブルーチン・フロー・チャートである。
【０１４０】
先ずＳ２００において、前記した第２歩容に対する初期遊脚位置要求値と第２混合歩容（第２歩容のための混合歩容）の初期遊脚位置の差Ｄｍを算出する。例えば、第２歩容の初期遊脚位置を−５０cmと予定したが、生成された混合歩容では−４０cmであった場合にその差−１０cmを算出する作業である。
【０１４１】
続いてＳ２０２に進み、モデルＲ（Ｌ）のＺＭＰパラメータの内のモデルＺＭＰ移動量Ｄｓに値−Ｄｍを代入する。（例で言えば、モデルＺＭＰ移動量Ｄｓは１０cmとなる。）
【０１４２】
続いてＳ２０４に進み、今回混合歩容（第１混合歩容）の終端上体位置・速度と次回混合歩容（第２混合歩容）の初期上体位置・速度を求める。これは、混合する各々の標準歩容の終端または初期位置・速度にそれぞれ混合重みを乗算し、求めた積の和を求めることで行う。標準歩容の終端位置・速度は先のＳ１２で求めて記憶されているので、それを利用して算出することによって演算の高速化を図る。
【０１４３】
続いてＳ２０６に進み、算出した今回混合歩容と次回混合歩容の境界での、前記した上体位置・速度の不連続量Ｘｍ，Ｖｍを算出する。
【０１４４】
続いてＳ２０８に進み、上記不連続量Ｘｍ，Ｖｍをキャンセルするため、その逆数−Ｘｍ，−Ｖｍを、モデルＲ（Ｌ）の軌道パラメータの内のモデルの位置スキップ量Ｘｓおよびモデルの速度スキップ量Ｖｓに代入する。
【０１４５】
続いてＳ２１０に進み、上記設定に加え、更に、第２歩容終端でモデルが停止するように、即ち、第１歩容の座標系から見て終端でのモデル位置ＸｃがＤｓ（即ち、−Ｄｍ）、モデル速度Ｖｃが０になるように、モデルＲ（Ｌ）のＺＭＰパラメータの内の第１歩容ＺＭＰと第２歩容ＺＭＰを強制的に移動させる量（前記第１、第２歩容ＺＭＰバイアス）Ｂ１，Ｂ２を決定する。具体的には、以下の原理に基づいて決定する。第１、第２歩容ＺＭＰバイアスＢ１，Ｂ２は図７に良く示す。
【０１４６】
先ず、Ｂ１とＢ２を０にしたまま、設定した位置スキップ量Ｘｓ、速度スキップ量ＶｓおよびモデルＺＭＰ移動量Ｄｓ通りの挙動をさせると、その挙動は線形結合であることから、各設定値を単独で設定したときの挙動の和になる。従って、この挙動の第２歩容終端でのモデル位置Ｘｃと速度Ｖｃは、次式で求められる。尚、次式のＸｘなどの定数の意味は、図２１ないし図２５に示す通りである。
【０１４７】
0003672406.tif 000002
【０１４８】
上記挙動に、更に第１歩容ＺＭＰバイアスＢ１に対する挙動と第２歩容ＺＭＰバイアスＢ２に対する挙動を合成したときに第２歩容終端でのモデル位置ＸｃがＤｓ（即ち、−Ｄｍ）、速度Ｖｃが０になるように第１歩容ＺＭＰバイアスＢ１と第２歩容ＺＭＰバイアスＢ２の値を決定する。
【０１４９】
そのためには、次式を満足しなければならない。
0003672406.tif 000003
【０１５０】
式１と式２から次式が得られる。
0003672406.tif 000004
【０１５１】
即ち、式１によりモデル位置Ｘｃおよびモデル速度Ｖｃを求め、次に式３の連立方程式を解いて第１、第２歩容ＺＭＰバイアスＢ１，Ｂ２を求めれば良い。
【０１５２】
図２６に戻ると、続いてＳ１１４に進み、丁度１歩前に動き出したモデルＬ（Ｒ）の位置・速度を、１歩前にＳ２１０で演算されたモデルＬ（Ｒ）の位置スキップ量Ｘｓ、速度スキップ量Ｖｓに従って動作（スキップ）させる。尚、同時にモデルを今回歩容の座標系に変換すると共に、モデルＬ（Ｒ）のＺＭＰパラメータも座標変換する。尚、モデルＬ（Ｒ）は１歩前から動き出しているので、モデルＬ（Ｒ）にとって第１歩容は前回歩容であり、第２歩容は今回歩容である。
【０１５３】
続いてＳ１１６に進み、モデルＲ（Ｌ）を直立停止（強制リセット）させる。即ち、位置および速度を０にする。これは前記の如く、演算誤差累積防止のためである。
【０１５４】
続いてＳ１１８に進み、選択された標準歩容と重みから今回混合歩容パラメータを作成する。このときの標準歩容と重みは、今回歩容が始動歩容でなければ、一歩手前の歩容切り替わり目にＳ１１０で求められた次回用のものが、Ｓ１００で今回用に上書きされたものである。
【０１５５】
続いてＳ１２０に進んで今回混合歩容パラメータの遊脚終端位置に要求値を代入する。遊脚終端位置を変更しても、遊脚の慣性力が少し変化するだけであるから、混合歩容の動力学的平衡には余り影響しない。従って、遊脚終端位置を変更しても、ＺＭＰパラメータは変更しない。
【０１５６】
続いて、Ｓ１２２に進んで前回混合歩容と今回混合歩容の足平軌道の境界条件を一致させるように、今回混合歩容の初期遊脚位置（正確には両脚支持期にあって接地中であるが、離床しようとする方の脚の位置パラメータ）を書き換える。初期遊脚位置を書き換えたことによってＺＭＰの初期位置が遊脚つまさきからずれて不連続を生じることに対しては、前記の如く、モデルＺＭＰ移動量によって不連続量が解消される。
【０１５７】
図２０に戻ると、続いてＳ３２に進んで混合歩容の瞬時値（制御周期ごとの値、制御周期：ｔ）を生成する（Ｓ２４で否定されるときも同様である）。
【０１５８】
図２８はその作業を示すサブルーチン・フロー・チャートである。
【０１５９】
以下説明すると、先ずＳ３００において混合歩容パラメータに基づいて時刻ｔにおける混合目標ＺＭＰを求め、Ｓ３０２に進んで混合歩容パラメータおよび標準歩容に基づいて前記提案技術を用いて時刻ｔでの混合足平位置・姿勢を求め、Ｓ３０４に進んで時刻ｔの混合足平位置・姿勢と時刻ｔ−Δｔの上体水平位置から時刻ｔでの上体高さを求める。これは例えば、本出願人が特願平８−２１４２６０号で提案した技術を用いる。
【０１６０】
続いてＳ３０６に進み、選択した標準歩容（ベース歩容を含む）の時刻ｔでの上体位置に基づいて前記した混合式に従って時刻ｔでの上体水平位置を算出する。これで、混合歩容の瞬時値が全て決定されたことになる。
【０１６１】
図２０に戻ると、続いてＳ３４に進んで摂動動力学モデルＲとＬ用のモデルＺＭＰの今回瞬時値を計算する。
【０１６２】
この作業を説明すると、モデルＲ（Ｌ）用ＺＭＰパラメータに基づき、第１歩容におけるモデルＺＭＰ瞬時値を算出してモデルＲ（Ｌ）のＺＭＰ瞬時値とする。続いてモデルＬ（Ｒ）用ＺＭＰパラメータに基づき、第２歩容におけるモデルＺＭＰ瞬時値を算出してモデルＬ（Ｒ）のＺＭＰ瞬時値とする。但し、第２歩容におけるモデルＺＭＰは第１歩容の場合とは座標系が異なり、両脚支持期の終端時のＺＭＰ瞬時値が、図２９に示す如く、０になるように設定する。
【０１６３】
続いてＳ３６に進み、摂動動力学モデルＲ，Ｌに上記で求めた各モデル用ＺＭＰ瞬時値を入力することによって摂動動力学モデルＲ，Ｌの挙動を計算する。更に、図３に示す如く、モデルＲ，Ｌを介して演算したモデルＺＭＰを加算してモデルＺＭＰの和を求めると共に、モデルＲ，Ｌの変位（上体の位置）を加算してモデル変位和を演算する。
【０１６４】
続いてＳ３８に進んで混合歩容と摂動動力学モデルＲ，Ｌを合成する。即ち、図３に示す如く、演算したモデル変位和を混合上体位置・速度に加算して目標上体位置・速度とすると共に、演算したモデルＺＭＰ和を混合目標ＺＭＰに加算して目標ＺＭＰとする。
【０１６５】
尚、この実施の形態においては、混合歩容ではＺＭＰ軌道パラメータは初期遊脚足平位置の変更分を考慮していない。しかし、初期遊脚足平位置の変更によって必要なＺＭＰ軌道の変更は、摂動動力学モデル（倒立振子モデル）のＺＭＰ軌道に考慮されている。従って、合成される最終的な目標歩容のＺＭＰ軌道は、初期遊脚足平位置の変更分が考慮されたものとなり、不連続を生じない。
【０１６６】
続いてＳ４０に進んで時刻ｔをΔｔだけ更新し、Ｓ２２に戻って上記の処理を繰り返す。
【０１６７】
上記の如くして図３に示す如く、目標上体位置、目標上体姿勢（混合上体姿勢）、目標足平位置・姿勢（混合足平位置・姿勢）および目標ＺＭＰが決定され、前述の如く、姿勢安定化制御装置において必要があるときは姿勢修正（コンプライアンス制御）が行われ、逆キネマティクス演算器で関節角指令値が決定される。
【０１６８】
この実施の形態は上記の如く構成したので、歩容を自在かつリアルタイムに生成して任意の歩幅や旋回角を実現することができる。更には、リアルタイムに生成された歩容に基づいて脚式移動ロボットを目標関節角度に駆動制御させつつ、自在に歩行させることができる。
【０１６９】
より詳しくは、歩幅や旋回角についての任意の要求に対して記憶された幾つかの標準歩容からベースとなる歩容を適当に選択し、合成や変形などの混合操作、即ち、前記した近似演算を行うことにより、前記した歩容条件や歩容に関する要求を満足する近似歩容をリアルタイムに生成することができる。
【０１７０】
更には上記の如く構成したことから、微妙な角度・歩幅に設定することができ、ある程度（境界状態が近ければ）既存の標準歩容同士を組み合わせて混合することにより、それらの中間的な歩容を任意に生成することも可能である。
【０１７１】
また、上記の如く構成したことで演算量を低減することができる。具体的には、リアルタイムにダイナミクスを解くのに比べて第１の演算装置８０の演算量が１／１０程度に低減する。更に、最適な標準歩容を記憶しておき、それらを混合して歩容を生成するので、メモリ（ＲＯＭ８４）の容量も低減させることができる。更に、最適性を満足するので、条件１）から５）を満足する歩容を、試行錯誤を経ずに、容易に得ることができる。
【０１７２】
図３０はこの発明に係る装置の第２の実施の形態を示す、図９と同様の倒立振子型摂動動力学モデルの説明図である。
【０１７３】
第１の実施の形態に係る装置においては、摂動動力学モデルを２個備えたが、第２の実施の形態においては３個備えるようにした。図３１に示す如く、この場合、モデルＺＭＰ１は１歩目の初期から歩行を開始し、２歩目の終わり（終端）で強制リセット（直立停止）させられる。モデルＺＭＰ２は２歩目の中途から歩行を開始し、３歩の終わり（終端）で強制リセット（直立停止）させられ、モデルＺＭＰ３は３歩目の中途から歩行を開始し、４歩の終わり（終端）で強制リセット（直立停止）させられる。
【０１７４】
このように第２の実施の形態においても全体の動作としては図３１下部に示すように連続するが、個々のモデルＺＭＰは２歩ごとにリセットされる。その結果、計算値は理想値となり、演算誤差が累積することがない。
【０１７５】
以上の如く、第１および第２の実施の形態においては、少なくとも基体（上体）２４と、前記基体に関節１０，１２，１４Ｒ（Ｌ）を介して連結される複数本の脚部リンク２とからなる脚式移動ロボット１の歩容生成装置において、少なくとも前記ロボットの基体２４の変位および／または速度に関するパラメータ（上体位置・速度）と前記ロボットに接地床面から作用する床反力に関するパラメータ（ＺＭＰ）とからなる１歩分の歩容を少なくとも２個（第１歩容および第２歩容または今回歩容および次回歩容）生成する歩容生成手段（図３の標準歩容の集合、歩容生成処方決定装置および歩容混合装置。図２０フロー・チャートのＳ１０，Ｓ３０，Ｓ３２）、前記生成された少なくとも２個の歩容の境界における、前記基体の変位および／または速度ならびに前記床反力の不連続量Ｘｍ，Ｖｍ，Ｄｍを算出する不連続量算出手段（図３のモデル挙動パラメータ決定器。図２０フロー・チャートのＳ３０、図２６フロー・チャートのＳ１１２、図２７フロー・チャートのＳ２００からＳ２０６）、前記床反力の摂動に対する前記基体の変位および／または速度の摂動の関係を近似する摂動動力学モデル（図３の摂動動力学モデルＲ，Ｌ。図２０フロー・チャートのＳ３６、図２６フロー・チャートのＳ１１４）、前記算出された不連続量に基づいて、前記モデルが前記算出された不連続量を相殺するように、前記モデルへの入力Ｂ１，Ｂ２を決定するモデル入力決定手段（図３のモデル挙動パラメータ決定器。図２０フロー・チャートのＳ３０、図２６フロー・チャートのＳ１１２、図２７フロー・チャートのＳ２０８からＳ２１０）、前記決定された入力に基づいて前記モデルの出力（モデルＲ，ＬＺＭＰ、モデルＲ，Ｌ状態量）を算出するモデル出力算出手段（図３のモデルＲ，Ｌ用ＺＭＰ波形発生器。図２０フロー・チャートのＳ３０，Ｓ３４，Ｓ３６、図２６フロー・チャートのＳ１１４，Ｓ１１６）、および前記決定された入力および前記算出されたモデル出力に基づいて前記少なくとも２個の歩容の少なくともいずれかを修正する歩容修正手段（図２０フロー・チャートのＳ３８）を備える如く構成した。これによって、１歩と１歩との間の歩容の境界条件を滑らかに連続させ、換言すれば、常に複数歩を考慮に入れることで歩容境界での連続性を保ちつつ長期に安定な姿勢を保って歩行継続できる歩容を適切に生成することができる。
【０１７６】
また、前記モデルを複数個（摂動動力学モデルＲ，Ｌの２個）備えると共に、前記複数個のモデルが所定歩数（１歩）ずれて前記算出された不連続量を相殺するように設定される如く構成した。それによって、上記した作用・効果に加え、演算誤差が累積せず、よって長期に安定な姿勢を保ちつつ歩行継続することができる歩容を適切に生成することができる。
【０１７７】
また、前記モデル（摂動動力学モデルＲ，Ｌ）が、前記ロボット１の摂動挙動を倒立振子で近似する如く構成した。それによって、上記した作用効果に加え、演算量を低減することができる。
【０１７８】
また、さらに、前記モデルに対し基本波形を入力したときのモデル出力の挙動特性（特に終端位置・速度）を予め求めて記憶する記憶手段（図２０フロー・チャートのＳ１４。ＲＯＭ８４，ＲＡＭ７４）を備え、前記モデル入力決定手段は、前記記憶された挙動特性に基づいて前記モデル入力を算出する如く構成した。それによって、上記した作用効果に加えて演算量を一層低減することができる。
【０１７９】
また、前記モデル（摂動動力学モデルＲ，Ｌ）が終端状態において直立停止するように設定される如く構成した。それによって、歩容境界での連続性を保ちつつ長期に安定な姿勢を保って歩行継続できる歩容を一層適切に生成することができる。
【０１８０】
また、前記モデル出力が前記床反力（モデルＺＭＰ和）および／または前記基体の変位（モデル変位和）である如く構成した。それによって、歩容境界での連続性を保ちつつ長期に安定な姿勢を保って歩行継続できる歩容を一層適切に生成することができる。
【０１８１】
尚、第１および第２の実施の形態において、図１０および図３１に示す如く、境界条件を２歩の間で連続させるようにしたが、これに限られるものではなく、境界条件を３歩以上の間で連続させても良い。歩数が増加するほど、僅かなＺＭＰバイアス（モデルＺＭＰ用台形波形の高さ）で歩容境界を滑らかにすることができるが、歩容要求の変更に対する動作の応答性は低下する。更には、無限時間の間、摂動動力学モデルを動作させることによって２歩以上の歩容間の境界条件を連続させるようにしても良い。
【０１８２】
また、摂動動力学モデルは２歩ごとに直立停止するようにしたが、別の姿勢をとっても良い。また２歩ごとではなく、３歩ごとに、あるいは４歩以上ごとに所定の姿勢をとるようにしても良い。更には、無限時間かけて所定の姿勢に漸近させても良い。
【０１８３】
また、摂動動力学モデルを２個あるいは３個備えたが、これに限られるものではなく、１個あるいは４個以上であっても良い。
【０１８４】
また、モデルの波形（軌道）は、テーブル化も可能である。２歩分の単位入力波形（軌道）に対するモデル出力波形と２歩の歩容の境界での単位不連続に対するモデル出力波形をテーブル化し、これらを入力の大きさや不連続の大きさに比例して拡大し、合成すれば良い。但し、テーブルは時間の拡大縮小ができないので、歩容の時間分割が一定でない場合には、テーブル数が非常に多くなる。
【０１８５】
また、歩容混合の例として先の出願の第１の実施の形態を用いたが、その他の実施の形態であっても良い。また、近似演算の例は図示のものに止まらず、他にも種々の変形が可能である。歩容を混合しなくても良い。
【０１８６】
また、上記において、歩容パラメータとして（変位）加速度については述べなかったが、歩容の境界において加速度まで合わせる方が、より滑らかな歩容が生成されることは言うまでもない。但し、加速度はＺＭＰと上体のずれに比例した値となるので、実際的には制御パラメータとして不要である。
【０１８７】
また、この発明を２足歩行ロボットに関して説明してきたが、２足歩行ロボットに限らず、多脚ロボットにも応用することができる。
【０１８８】
【発明の効果】
請求項１項に記載する発明にあっては、１歩と１歩との間の歩容の境界条件を滑らかに連続させ、換言すれば、常に複数歩を考慮に入れることで歩容境界での連続性を保ちつつ長期に安定な姿勢を保って歩行継続できる歩容を適切に生成することができる。
【０１８９】
請求項２項に記載する発明にあっては前記モデルを複数個備えると共に、前記複数個のモデルが所定歩数ずれて前記所定の挙動を示すように設定される如く構成したので、上記した作用・効果に加え、演算誤差が累積せず、よって長期に安定な姿勢を保ちつつ歩行継続することができる歩容を適切に生成することができる。
【０１９０】
請求項３項に記載する発明にあっては前記モデルが前記ロボットを倒立振子で近似する如く構成したので、上記した作用効果に加え、演算量を低減することができる。
【０１９１】
請求項４項に記載する発明にあっては、さらに前記モデル入力に対するモデル出力の単位変化量を予め求めて記憶する記憶手段を備え、前記モデル入力決定手段は前記記憶された単位変化量に基づいて前記モデル入力を決定する如く構成したので、上記した作用効果に加えて演算量を一層低減することができる。
【０１９２】
請求項５項にあっては、前記モデルが示す所定の挙動が直立停止である如く構成したので、歩容境界での連続性を保ちつつ長期に安定な姿勢を保って歩行継続できる歩容を一層適切に生成することができる。
【０１９３】
請求項６項にあっては、前記モデル出力が前記床反力および前記基体の変位である如く構成したので、歩容境界での連続性を保ちつつ長期に安定な姿勢を保って歩行継続できる歩容を一層適切に生成することができる。
【図面の簡単な説明】
【図１】この発明に係る脚式移動ロボットの歩容生成装置を全体的に示す説明図である。
【図２】図１に示す２足歩行ロボットの制御ユニットの詳細を示すブロック図である。
【図３】この発明に係る脚式移動ロボットの歩容生成装置の構成および動作を機能的に示すブロック図である。
【図４】図３装置で使用する倒立振子モデルを示す説明図である。
【図５】２つの歩容の境界において不連続があるときのＺＭＰの不連続を防止する手法を示す説明タイミング・チャートである。
【図６】図５と同様な説明タイミング・チャートである。
【図７】２つの歩容の境界における不連続をキャンセルするための手法をより具体的に示す説明タイミング・チャートである。
【図８】図３装置で用いる摂動動力学モデルの挙動の演算誤差を示す説明タイミング・チャートである。
【図９】図３装置の２個の摂動動力学モデルを備える構成を示す説明ブロック図である。
【図１０】図９の構成に基づいて合成したモデルの挙動を示す説明タイミング・チャートである。
【図１１】図３装置で使用する標準歩容の中の第０標準歩容の遊脚位置および姿勢を示す説明図である。
【図１２】図１１の第０標準歩容の足平軌跡を示すタイミング・チャートである。
【図１３】図１１の第０標準歩容のＺＭＰ（Ｘ座標）のタイミング・チャートである。
【図１４】図３装置で使用する標準歩容の中の第１標準歩容の遊脚位置および姿勢を示す説明図である。
【図１５】図１４の第１標準歩容のＺＭＰ（Ｘ座標）のタイミング・チャートである。
【図１６】図３装置で使用する標準歩容の中の第２標準歩容の遊脚位置および姿勢を示す説明図である。
【図１７】図１６の第２標準歩容のＺＭＰ（Ｘ座標）のタイミング・チャートである。
【図１８】図３装置の歩容生成動作で要求された要求歩容の遊脚位置および姿勢を示す説明図である。
【図１９】図１８の要求歩容のＺＭＰ（Ｘ座標）のタイミング・チャートである。
【図２０】図３装置の動作を示すフロー・チャートである。
【図２１】図２０フロー・チャートの知識獲得作業で獲得される第１歩容（今回歩容）のＺＭＰ移動量（バイアス）に対する挙動特性を示す説明図である。
【図２２】図２０フロー・チャートの知識獲得作業で獲得される第２歩容（次回歩容）のＺＭＰ移動量（バイアス）に対する挙動特性を示す説明図である。
【図２３】図２０フロー・チャートの知識獲得作業で獲得される単位モデルＺＭＰ移動量（バイアス）に対する挙動特性を示す説明図である。
【図２４】図２０フロー・チャートの知識獲得作業で獲得される単位モデル位置スキップ量に対する挙動特性を示す説明図である。
【図２５】図２０フロー・チャートの知識獲得作業で獲得される単位モデル速度スキップ量に対する挙動特性を示す説明図である。
【図２６】図２０フロー・チャートの歩容切り替わり目処理作業を示すサブルーチン・フロー・チャートである。
【図２７】図２６フロー・チャートの中のモデル軌道パラメータとモデルＺＭＰパラメータ決定作業を示すサブルーチン・フロー・チャートである。
【図２８】図２０フロー・チャートの中の混合歩容の瞬時値生成作業を示すサブルーチン・フロー・チャートである。
【図２９】図２０フロー・チャートの中のモデルＺＭＰの今回瞬時値計算作業を示す説明図である。
【図３０】この発明の第２の実施の形態に係る装置の構成を示す、図９と同様の摂動動力学モデルの構成を示す説明図である。
【図３１】図３０の構成に基づいて合成したモデルの挙動を示す説明タイミング・チャートである。
【符号の説明】
１                      ２足歩行ロボット（脚式移動ロボット）
２                      脚部リンク
１０，１２，１４Ｒ，Ｌ  股関節
１６Ｒ，Ｌ              膝関節
１８，２０Ｒ，Ｌ        足関節
２２Ｒ，Ｌ              足平
２４                    上体（基体）
２６                    制御ユニット
４４                    ６軸力センサ
７４                    ＲＡＭ
８４                    ＲＯＭ
【図１】
0003672406.tif 000005
【図２】
0003672406.tif 000006
【図３】
0003672406.tif 000007
【図４】
0003672406.tif 000008
【図５】
0003672406.tif 000009
【図６】
0003672406.tif 000010
【図７】
0003672406.tif 000011
【図８】
0003672406.tif 000012
【図９】
0003672406.tif 000013
【図１０】
0003672406.tif 000014
【図１１】
0003672406.tif 000015
【図１２】
0003672406.tif 000016
【図１３】
0003672406.tif 000017
【図１４】
0003672406.tif 000018
【図１５】
0003672406.tif 000019
【図１６】
0003672406.tif 000020
【図１７】
0003672406.tif 000021
【図１８】
0003672406.tif 000022
【図１９】
0003672406.tif 000023
【図２０】
0003672406.tif 000024
【図２１】
0003672406.tif 000025
【図２２】
0003672406.tif 000026
【図２３】
0003672406.tif 000027
【図２４】
0003672406.tif 000028
【図２５】
0003672406.tif 000029
【図２６】
0003672406.tif 000030
【図２７】
0003672406.tif 000031
【図２８】
0003672406.tif 000032
【図２９】
0003672406.tif 000033
【図３０】
0003672406.tif 000034
【図３１】
0003672406.tif 000035