(57)【特許請求の範囲】
【請求項１】
所定の期間における移動ロボットの歩容を規定する複数のパラメータの組である歩容パラメータを決定し、その決定した歩容パラメータと前記移動ロボットの動力学モデルとを用いて前記所定の期間における移動ロボットの目標歩容を生成する歩容生成装置において、
前記移動ロボットの運動と該ロボットに作用する床反力との関係を表す運動・床反力モデルを含むと共に、該運動・床反力モデルと、該運動・床反力モデルにおける移動ロボットの運動に対して付加される制約条件と、該運動・床反力モデルにおける床反力に対して付加される制約条件とのうちの少なくともいずれか一つが互いに異なるように構成されたｎ個（ｎ：２以上の整数）の動力学モデルと、
前記複数のパラメータの仮値の組である第１歩容パラメータを、該第１歩容パラメータと前記ｎ個の動力学モデルのうちの所定の動力学モデルである第１動力学モデルとを用いて生成される前記所定の期間における歩容が所定の境界条件を満たすように決定する第１歩容パラメータ決定手段と、
前記ｎ個の動力学モデルのうちの前記第１動力学モデルを除くｎ−１個の動力学モデルのそれぞれを第ｍ動力学モデル（ｍ：２≦ｍ≦ｎを満たす整数）としたとき、第ｍ−１歩容パラメータのうちの所定の修正対象パラメータを修正してなる歩容パラメータである第ｍ歩容パラメータを、第ｍ動力学モデルを用いて第２歩容パラメータから第ｎ歩容パラメータまで順番に決定する歩容パラメータ修正手段とを備えると共に、
前記第ｍ動力学モデルは、第ｍ−１動力学モデルよりも動力学的精度が高くなるように構成された動力学モデルであり、
前記歩容パラメータ修正手段は、前記第ｍ歩容パラメータをそれぞれ決定するとき、第ｍ−１歩容パラメータと第ｍ動力学モデルとを用いて前記所定の期間における歩容を生成し、少なくともその生成した歩容の前記所定の境界条件からのずれ度合いである修正前ずれ度合いを基に、第ｍ歩容パラメータと第ｍ動力学モデルとを用いて生成される前記所定の期間における歩容の前記所定の境界条件からのずれ度合いである修正後ずれ度合いが前記修正前ずれ度合いよりも小さくなり、または、該修正後ずれ度合いが所定のずれ度合い許容範囲に収まるように前記第ｍ−１歩容パラメータのうちの前記修正対象パラメータを修正することにより前記第ｍ歩容パラメータを決定する手段であり、
前記決定された第ｎ歩容パラメータと第ｎ動力学モデルとを用いて、前記所定の期間における目標歩容を生成するようにしたことを特徴とする移動ロボットの歩容生成装置。
【請求項２】
所定の期間における移動ロボットの目標歩容を生成するとき、該目標歩容に続く仮想的な周期的歩容である定常歩容を規定する複数のパラメータの組である定常歩容パラメータを決定すると共に、その決定した定常歩容パラメータと前記移動ロボットのあらかじめ定めた動力学モデルとを用いて生成される定常歩容に前記目標歩容を近づけるように該目標歩容を生成する移動ロボットの歩容生成装置において、
前記移動ロボットの運動と該ロボットに作用する床反力との関係を表す運動・床反力モデルを含むと共に、該運動・床反力モデルと、該運動・床反力モデルにおける移動ロボットの運動に対して付加される制約条件と、該運動・床反力モデルにおける床反力に対して付加される制約条件とのうちの少なくともいずれか一つが互いに異なるように構成されたｎ個（ｎ：２以上の整数）の動力学モデルと、
前記複数のパラメータの仮値の組である第１定常歩容パラメータを、該第１定常歩容パラメータと前記ｎ個の動力学モデルのうちの所定の動力学モデルである第１動力学モデルとを用いて生成される定常歩容が所定の境界条件を満たすように決定する第１定常歩容パラメータ決定手段と、
前記ｎ個の動力学モデルのうちの前記第１動力学モデルを除くｎ−１個の動力学モデルのそれぞれを第ｍ動力学モデル（ｍ：２≦ｍ≦ｎを満たす整数）としたとき、第ｍ−１定常歩容パラメータのうちの所定の修正対象パラメータを修正してなる定常歩容パラメータである第ｍ定常歩容パラメータを、第ｍ動力学モデルを用いて第２定常歩容パラメータから第ｎ定常歩容パラメータまで順番に決定する定常歩容パラメータ修正手段とを備えると共に、
前記第ｍ動力学モデルは、第ｍ−１動力学モデルよりも動力学的精度が高くなるように構成された動力学モデルであり、
前記定常歩容パラメータ修正手段は、前記第ｍ定常歩容パラメータを決定するとき、第ｍ−１定常歩容パラメータと第ｍ動力学モデルとを用いて少なくとも前記定常歩容の１周期の期間の歩容を生成し、少なくともその生成した歩容の前記所定の境界条件からのずれ度合いである修正前ずれ度合いを基に、第ｍ定常歩容パラメータと第ｍ動力学モデルとを用いて生成される歩容の前記所定の境界条件からのずれ度合いである修正後ずれ度合いが前記修正前ずれ度合いよりも小さくなり、または、該修正後ずれ度合いが所定のずれ度合い許容範囲に収まるように前記第ｍ−１定常歩容パラメータのうちの前記修正対象パラメータを修正することにより前記第ｍ定常歩容パラメータを決定する手段であり、
前記決定された第ｎ定常歩容パラメータと第ｎ動力学モデルとを用いて生成される定常歩容に近づけるように前記所定の期間における目標歩容を生成するようにしたことを特徴とする移動ロボットの歩容生成装置。
【請求項３】
前記ｎ個の動力学モデルは、任意の歩容パラメータと前記第ｍ−１動力学モデルとを用いて生成される歩容の前記所定の境界条件からのずれ度合いと、該歩容パラメータのうちの前記修正対象パラメータとの間の線形性が、該歩容パラメータと前記第ｍ動力学モデルとを用いて生成される歩容の前記所定の境界条件からのずれ度合いと、該歩容パラメータのうちの前記修正対象パラメータとの間の線形性よりも高くなるように構成されていることを特徴とする請求項１記載の移動ロボットの歩容生成装置。
【請求項４】
前記ｎ個の動力学モデルは、任意の定常歩容パラメータと前記第ｍ−１動力学モデルとを用いて生成される定常歩容の前記所定の境界条件からのずれ度合いと、該定常歩容パラメータのうちの前記修正対象パラメータとの間の線形性が、該定常歩容パラメータと前記第ｍ動力学モデルとを用いて生成される定常歩容の前記所定の境界条件からのずれ度合いと、該歩容パラメータのうちの前記修正対象パラメータとの間の線形性よりも高くなるように構成されていることを特徴とする請求項２記載の移動ロボットの歩容生成装置。
【請求項５】
前記ｎ個の動力学モデルは、任意の歩容パラメータと前記第ｍ−１動力学モデルとを用いてコンピュータにより前記所定の期間における歩容を生成するときの演算時間が、該歩容パラメータと前記第ｍ動力学モデルとを用いて前記コンピュータにより前記所定の期間における歩容を生成するときの演算時間より短くなるように構成されていることを特徴とする請求項１記載の移動ロボットの歩容生成装置。
【請求項６】
前記ｎ個の動力学モデルは、任意の定常歩容パラメータと前記第ｍ−１動力学モデルとを用いてコンピュータにより前記定常歩容の１周期の期間の歩容を生成するときの演算時間が、該歩容パラメータと前記第ｍ動力学モデルとを用いて前記コンピュータにより前記定常歩容の１周期の期間の歩容を生成するときの演算時間よりも短くなるように構成されていることを特徴とする請求項２記載の移動ロボットの歩容生成装置。
【請求項７】
前記移動ロボットは脚式移動ロボットであり、
前記ｎ個の動力学モデルのうちの少なくとも第１動力学モデルと第２動力学モデルとは、第１動力学モデルにおける移動ロボットの全体質量に対する該ロボットの脚体の質量の比が、前記第２動力学モデルにおける移動ロボットの全体質量に対する該ロボットの脚体の質量の比よりも小さくなるように構成されていることを特徴とする請求項１または２記載の移動ロボットの歩容生成装置。
【請求項８】
前記ｎ個の動力学モデルのうちの第ｎ動力学モデルを除く一つの所定の動力学モデルを第ｋ動力学モデル（ｋ：１≦ｋ≦ｎ−１を満たすいずれかの整数）としたとき、少なくとも該第ｋ動力学モデルと第ｋ＋１動力学モデルとは、それぞれ、該動力学モデルと任意の歩容パラメータを用いて生成される歩容における移動ロボットの運動および床反力のうちの少なくともいずれか一方がそれぞれの動力学モデルに対して設定された所定の許容範囲に収まることを前記制約条件として付加される動力学モデルであり、前記第ｋ＋１動力学モデルで用いる前記許容範囲は、前記第ｋ動力学モデルで用いる前記許容範囲よりも狭い範囲に設定されることを特徴とする請求項１記載の移動ロボットの歩容生成装置。
【請求項９】
前記ｎ個の動力学モデルのうちの第ｎ動力学モデルを除く一つの所定の動力学モデルを第ｋ動力学モデル（ｋ：１≦ｋ≦ｎ−１を満たすいずれかの整数）としたとき、少なくとも該第ｋ動力学モデルと第ｋ＋１動力学モデルとは、それぞれ、該動力学モデルと任意の定常歩容パラメータを用いて生成される定常歩容における移動ロボットの運動および床反力のうちの少なくともいずれか一方がそれぞれの動力学モデルに対して設定された所定の許容範囲に収まることを前記制約条件として付加される動力学モデルであり、前記第ｋ＋１動力学モデルで用いる前記許容範囲は、前記第ｋ動力学モデルで用いる前記許容範囲よりも狭い許容範囲に設定されることを特徴とする請求項２記載の移動ロボットの歩容生成装置。
【請求項１０】
前記移動ロボットの運動と床反力との関係を表すものとしてあらかじめ定めた運動・床反力モデルを第Ａ運動・床反力モデルとし、前記移動ロボットの運動と床反力との関係を表すものとしてあらかじめ定められ、且つ該ロボットの所定の運動に対応して発生する床反力が前記第Ａ運動・床反力モデルと異なるように前記関係が構成された運動・床反力モデルを第Ｂ運動・床反力モデルとし、前記ｎ個の動力学モデルのうちの第ｎ動力学モデルを除く一つの所定の動力学モデルを第ｋ動力学モデル（ｋ：１≦ｋ≦ｎ−１を満たすいずれかの整数）としたとき、前記第ｋ動力学モデルは、前記移動ロボットの任意の運動に対応して該第ｋ動力学モデル上で発生する床反力が、該運動に対応して前記第Ａ運動・床反力モデル上で発生する床反力と、該運動に対応して前記第Ｂ運動・床反力モデル上で発生する床反力とから所定の重みを用いて算出される重み付き平均値となる動力学モデルであり、第ｋ＋１動力学モデルは、前記移動ロボットの任意の運動に対応して該第ｋ動力学モデル上で発生する床反力が、該運動に対応して前記第Ａ運動・床反力モデル上で発生する床反力と、該運動に対応して前記第Ｂ運動・床反力モデル上で発生する床反力とから前記第ｋ動力学モデルと異なる所定の重みを用いて算出される重み付き平均値となる動力学モデルであることを特徴とする請求項１または２記載の移動ロボットの歩容生成装置。
【請求項１１】
前記歩容パラメータは、前記所定の期間における歩容のうちの目標ＺＭＰ軌道を規定するパラメータを前記修正対象パラメータとして含むことを特徴とする請求項１記載の移動ロボットの歩容生成装置。
【請求項１２】
前記定常歩容パラメータは、前記定常歩容の１周期の期間の一端における移動ロボットの運動の所定の状態量を規定するパラメータを前記修正対象パラメータとして含むことを特徴とする請求項２記載の移動ロボットの歩容生成装置。
【請求項１３】
前記所定の境界条件は、前記所定の期間における歩容の境界における移動ロボットの運動の所定の状態量が前記境界において隣接する歩容における移動ロボットの運動の該所定の状態量と一致するという条件を含むことを特徴とする請求項１記載の移動ロボットの歩容生成装置。
【請求項１４】
前記所定の境界条件は、前記所定の期間における歩容の終端側の境界における移動ロボットの運動の所定の状態量が該歩容に続くべき仮想的な周期的歩容として決定された定常歩容における移動ロボットの運動の該所定の状態量と一致するという条件を含むことを特徴とする請求項１記載の移動ロボットの歩容生成装置。
【請求項１５】
前記所定の境界条件は、前記定常歩容の１周期の始端と終端における移動ロボットの運動の所定の状態量が一致するという条件を含むことを特徴とする請求項２記載の移動ロボットの歩容生成装置。
【請求項１６】
前記移動ロボットは、上体から延設された複数の脚体を備えた脚式移動ロボットであり、前記所定の状態量は、該ロボットの上体の位置、該上体の速度、該上体の姿勢角、該上体の姿勢角の角速度、該上体の位置と速度との重み付き平均値、該ロボットの全体重心の位置、該全体重心の速度、該全体重心の位置と速度との重み付き平均値、および発散成分のうちの少なくともいずれか一つを含むことを特徴とする請求項１２〜１５のいずれか１項に記載の移動ロボットの歩容生成装置。
【請求項１７】
前記歩容パラメータ修正手段は、前記第ｍ歩容パラメータをそれぞれ決定するとき、第ｍ−１歩容パラメータと第ｍ動力学モデルとを用いて前記所定の期間における歩容を生成すると共に、前記第ｍ−１歩容パラメータのうちの前記修正対象パラメータを所定量だけ修正してなる少なくとも一組の補助歩容パラメータを決定して、その決定した各組の補助歩容パラメータと前記第ｍ動力学モデルとを用いて前記所定の期間における歩容を生成し、前記第ｍ−１歩容パラメータを用いて生成した歩容の前記所定の境界条件からのずれ度合いである修正前ずれ度合いと、前記各組の補助歩容パラメータを用いて生成した歩容の前記所定の境界条件からのずれ度合いである補助ずれ度合いとを基に、前記第ｍ−１歩容パラメータのうちの前記修正対象パラメータを修正量を決定して、該修正対象パラメータを修正することにより前記第ｍ歩容パラメータを決定する手段であることを特徴とする請求項１記載の移動ロボットの歩容生成装置。
【請求項１８】
前記定常歩容パラメータ修正手段は、前記第ｍ定常歩容パラメータをそれぞれ決定するとき、第ｍ−１定常歩容パラメータと第ｍ動力学モデルとを用いて少なくとも前記定常歩容の１周期の期間の歩容を生成すると共に、前記第ｍ−１歩容パラメータのうちの前記修正対象パラメータを所定量だけ修正してなる少なくとも一組の補助定常歩容パラメータを決定して、その決定した各組の補助定常歩容パラメータと前記第ｍ動力学モデルとを用いて少なくとも前記定常歩容の１周期の期間の歩容を生成し、前記第ｍ−１定常歩容パラメータを用いて生成した歩容の前記所定の境界条件からのずれ度合いである修正前ずれ度合いと、前記各組の補助定常歩容パラメータを用いて生成した歩容の前記所定の境界条件からのずれ度合いである補助ずれ度合いとを基に、前記第ｍ−１定常歩容パラメータのうちの前記修正対象パラメータを修正量を決定して、該修正対象パラメータを修正することにより前記第ｍ定常歩容パラメータを決定する手段であることを特徴とする請求項２記載の移動ロボットの歩容生成装置。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は２足移動ロボット等の移動ロボットの歩容を生成する装置に関する。
【背景技術】
【０００２】
２足移動ロボット等の移動ロボットの目標歩容を生成する技術としては、例えば特開２００２−３２６１７３号公報（特許文献１）や、ＰＣＴ国際公開公報ＷＯ／０３／０５７４２７／Ａ１（特許文献２）に見られるものが本願出願人により提案されている。これらの文献に見られる技術は、ロボットの運動（各部位の位置、姿勢）と、床反力との関係を表す第１の動力学モデル（単純化モデル）を用いて該第１の動力学モデル上での動力学的平衡条件（床反力の並進力成分が目標値になる、ある点のまわりの床反力モーメントが目標値になるなどの条件）を満足するようにロボットの目標運動の瞬時値（瞬時目標運動）と目標床反力の瞬時値（瞬時目標床反力）とからなる瞬時目標歩容が逐次作成される。そして、この瞬時目標歩容を第２の動力学モデル（フルモデル）に入力して、該瞬時目標運動の一部（目標上体位置姿勢や目標ＺＭＰまわりの目標モーメントなど）を補正することで、最終的な瞬時目標歩容を時系列的に生成するようにしている。なお、文献１，２に見られる技術では、目標歩容は、２足移動ロボットの１歩の期間分の歩容を単位として、１歩毎に生成される。この場合、ロボットの１歩毎の目標歩容の瞬時値を生成するにあたっては、まず、その目標歩容に続く仮想的な周期的歩容である定常歩容を規定する歩容パラメータ（各足平の位置姿勢軌道を規定するパラメータ、目標ＺＭＰ軌道を規定するパラメータなどから構成されるもの）が、その歩容パラメータと前記第１の動力学モデルとを用いて所要の境界条件（定常歩容の１周期の始端と終端とで該歩容の状態が一致するという条件）を満たすように決定される。さらに、目標歩容を規定する歩容パラメータが、その歩容パラメータと前記第１の動力学モデルとを用いて生成される歩容が所要の境界条件（目標歩容がその終端側で定常歩容に近づくという条件）を満たすように決定される。そして、このように決定された目標歩容の歩容パラメータと第１の動力学モデルとを用いて該目標歩容の瞬時値の時系列が生成される。【０００３】
上記のように目標歩容を生成する技術では、第１の動力学モデル（単純化モデル）としては、線形性の高いモデルが一般に使用される。線形性の高い動力学モデルを用いて瞬時目標歩容を作成することで、仮想的な周期的歩容である定常歩容につながり、もしくは漸近するような歩容（ロボットの安定な運動を継続的に行い得る歩容）を効率よく短時間で作成することが可能となり、ひいては実ロボットの実際の運動を行いながら、リアルタイムでロボットの瞬時目標歩容を逐次生成することが可能となる。また、定常歩容の歩容パラメータを決定する場合にも、該定常歩容の境界条件を満足し得る歩容パラメータを効率よく短時間で決定することが可能となる。【０００４】
ところが、線形性の高い動力学モデルは、ロボットの種々様々の動作において一般に動力学的精度が比較的低くなりがちである。すなわち、その動力学モデル上でのロボットの動力学は、実ロボットの実際の動力学に対して誤差を生じやすい。このため、第１の動力学モデルを用いて作成される瞬時目標歩容を、そのまま実ロボットに適用して、該実ロボットの動作を行わせると、第１の動力学モデル上で保証された動力学的平衡条件が、実ロボット上では成立せず、実ロボットの動作が安定性に欠けるものとなりやすい。【０００５】
そこで、前記特許文献１、２に見られる技術では、第１の動力学モデルを用いて作成した瞬時目標歩容の一部をさらに、第２の動力学モデルを用いて補正するようにしている。この場合、第２の動力学モデルとしては、第１の動力学モデルよりも動力学的精度の高いモデルが用いられる。これにより、第１の動力学モデルを用いて作成した歩容よりも、より動力学的精度の高い（実ロボットの動力学により近い）歩容を生成することが可能となる。【０００６】
しかし、前記特許文献１，２に見られる技術では、第２動力学モデルを用いて作成される歩容は発散しやすいため、目標ＺＭＰ軌道を修正するかもしくは目標ＺＭＰまわりに床反力モーメントを発生させるようにして、ロボットの目標運動軌道が第１の動力学モデルで作成された歩容からかけはなれないようにする必要があった。そして、この場合、目標ＺＭＰ軌道の修正量や、目標ＺＭＰまわりの床反力モーメントが比較的大きくなることがあり、このような場合には、安定余裕を高く保つことが困難となる場合あった。逆に、安定余裕を高く保つために、目標ＺＭＰ軌道の修正量や、目標ＺＭＰまわりの床反力モーメントの許容範囲を狭く設定すると、歩容が発散する恐れが高まるという不具合があった。【０００７】
また、定常歩容の歩容パラメータを決定する場合にあっても、第１の動力学モデルの動力学的精度を高くすると、該第１の動力学モデルの線形性が低下して、定常歩容の境界条件を満たし得る定常歩容パラメータを効率よく短時間で見出すことが困難となることから、前記第２の動力学モデルでの歩容の発散が生じ難い適切な定常歩容パラメータを決定することが困難であった。ひいては、前記した如く、安定余裕を高く保つことが困難となったり、第２の動力学モデルで生成される歩容の発散が生じやすくなるという不都合があった。【０００８】
本発明はかかる背景に鑑みてなされたものであり、目標歩容の発散を防止しつつ、所要の境界条件を高い動力学的精度で満足し得る目標歩容を効率よく生成することができる移動ロボットの歩容生成装置を提供することを目的とする。また、本発明は、定常歩容を規定する歩容パラメータを決定する場合に、定常歩容が所要の境界条件を高い動力学的精度で満足し得る定常歩容パラメータを効率よく決定し、ひいては目標歩容の発散を防止することができる移動ロボットの歩容生成装置を提供することを目的とする。
【発明の開示】
【０００９】
かかる目的を達成するために、本発明の移動ロボットの歩容生成装置の第１発明は、
所定の期間における移動ロボットの歩容を規定する複数のパラメータの組である歩容パラメータを決定し、その決定した歩容パラメータと前記移動ロボットの動力学モデルとを用いて前記所定の期間における移動ロボットの目標歩容を生成する歩容生成装置において、
前記移動ロボットの運動と該ロボットに作用する床反力との関係を表す運動・床反力モデルを含むと共に、該運動・床反力モデルと、該運動・床反力モデルにおける移動ロボットの運動に対して付加される制約条件と、該運動・床反力モデルにおける床反力に対して付加される制約条件とのうちの少なくともいずれか一つが互いに異なるように構成されたｎ個（ｎ：２以上の整数）の動力学モデルと、
前記複数のパラメータの仮値の組である第１歩容パラメータを、該第１歩容パラメータと前記ｎ個の動力学モデルのうちの所定の動力学モデルである第１動力学モデルとを用いて生成される前記所定の期間における歩容が所定の境界条件を満たすように決定する第１歩容パラメータ決定手段と、
前記ｎ個の動力学モデルのうちの前記第１動力学モデルを除くｎ−１個の動力学モデルのそれぞれを第ｍ動力学モデル（ｍ：２≦ｍ≦ｎを満たす整数）としたとき、第ｍ−１歩容パラメータのうちの所定の修正対象パラメータを修正してなる歩容パラメータである第ｍ歩容パラメータを、第ｍ動力学モデルを用いて第２歩容パラメータから第ｎ歩容パラメータまで順番に決定する歩容パラメータ修正手段とを備えると共に、
前記第ｍ動力学モデルは、第ｍ−１動力学モデルよりも動力学的精度が高くなるように構成された動力学モデルであり、
前記歩容パラメータ修正手段は、前記第ｍ歩容パラメータをそれぞれ決定するとき、第ｍ−１歩容パラメータと第ｍ動力学モデルとを用いて前記所定の期間における歩容を生成し、少なくともその生成した歩容の前記所定の境界条件からのずれ度合いである修正前ずれ度合いを基に、第ｍ歩容パラメータと第ｍ動力学モデルとを用いて生成される前記所定の期間における歩容の前記所定の境界条件からのずれ度合いである修正後ずれ度合いが前記修正前ずれ度合いよりも小さくなり、または、該修正後ずれ度合いが所定のずれ度合い許容範囲に収まるように前記第ｍ−１歩容パラメータのうちの前記修正対象パラメータを修正することにより前記第ｍ歩容パラメータを決定する手段であり、
前記決定された第ｎ歩容パラメータと第ｎ動力学モデルとを用いて、前記所定の期間における目標歩容を生成するようにしたことを特徴とするものである。
【００１０】
なお、この第１発明を含めて本願発明においては、目標歩容は、ロボットの運動（各部位の位置・姿勢、あるいは各関節の変位量）の目標瞬時値の時系列から構成され、あるいは、該運動の目標瞬時値の時系列とロボットに作用する床反力（並進力、モーメント、作用点の少なくともひとつ）の目標瞬時値の時系列とから構成される。また、ロボットの動力学モデルは、少なくともロボットの運動とロボットに作用する床反力との関係を表す運動・床反力モデル（ロボットの動力学方程式）を含むモデルである。この動力学モデルには、ロボットの運動に関する制約条件（ロボットのある部位の可動範囲など）あるいは床反力に関する制約条件（床反力の所定成分の許容範囲、あるいは該床反力の作用点の存在許容範囲など）が付加されていてもよく、その場合、それらの制約条件と上記運動・床反力モデルとを合わせたものが動力学モデルである。また、歩容パラメータと動力学モデルとを用いて歩容を生成するということは、歩容パラメータを基に、動力学モデルに対する入力量あるいは動力学モデルの状態量を決定して、該動力学モデル上の動力学（運動・床反力モデルの関係、あるいはその関係と付加された制約条件）を満たす歩容を生成することを意味する。
【００１１】
前記第１発明によれば、第１歩容パラメータは、それと第１動力学モデルとを用いて前記所定の期間における歩容を生成したとき、その歩容が第１動力学モデル上で所定の境界条件を満足するように決定される。該境界条件は、例えば前記所定の期間の一端（始端または終端の時刻）における歩容（瞬時値）の所定の状態量（例えばロボットのある部位の位置、姿勢、もしくはその変化速度、あるいは、床反力）が所定の値に一致またはほぼ一致するというような条件である。そして、この第１歩容パラメータを起点として、第ｍ−１歩容パラメータの修正対象パラメータを第ｍ動力学モデルを用いて修正して、第ｍ動力学モデル上で前記所定の境界条件を満足する歩容を生成し得る第ｍ歩容パラメータ、あるいは、第ｍ−１歩容パラメータよりも前記所定の境界条件に対する適合性がより高い歩容を第ｍ動力学モデル上で生成し得る第ｍ歩容パラメータを決定する処理が、前記歩容パラメータ修正手段により順次実行され、最終的に第ｎ歩容パラメータが決定される。つまり、第１歩容パラメータが第１動力学モデルを除く各動力学モデルを用いて段階的に修正されていく。
【００１２】
従って、例えば任意のｍに対して第ｍ−１動力学モデルよりも第ｍ動力学モデルの方がその動力学的精度が高いようにしておき、また、その動力学的精度の違いが極端に大きくならないようにしておくことで、最終的に第ｎ歩容パラメータを決定したときに、動力学精度を高めつつ、所定の境界条件を適切に満足し得る歩容を第ｎ動力学モデル上で生成することが可能な第ｎ歩容パラメータを決定することが可能となる。なお、動力学モデルの動力学的精度は、該動力学モデル上でのロボットの運動と床反力の関係の、実際のロボットの運動と床反力との関係に対する一致度合いを意味し、動力学的精度が高いほど、その一致度合いが高まる。
【００１３】
ここで、第ｍ歩容パラメータは、第ｍ−１歩容パラメータと第ｍ動力学モデルとを用いて生成した歩容の前記所定の境界条件からのずれ度合い（修正前ずれ度合い）を基に、換言すれば、第ｍ動力学モデル上で第ｍ−１歩容パラメータの前記所定の境界条件に対する適合度合いを基に、該第ｍ−１歩容パラメータの修正対象パラメータを修正することによって決定される。そして、その修正は、それにより決定される第ｍ歩容パラメータと第ｍ動力学モデルとを用いて歩容を生成したときに、その歩容の前記所定の境界条件からのずれ度合い（修正後ずれ度合い）が第ｍ−１歩容パラメータに対応する修正前ずれ度合いよりも小さくなり、または、該修正後ずれ度合いが所定のずれ度合い許容範囲に収まるように決定される。
【００１４】
この場合、第ｍ−１歩容パラメータは、第ｍ−１動力学モデル上で前記所定の境界条件を満たす歩容パラメータ、もしくはそれに近い歩容パラメータであるから、前記の如く、第ｍ動力学モデルの動力学的精度を第ｍ−１動力学モデルの動力学的精度よりも若干高いものにしておくことで、前記修正前ずれ度合いを基に、第ｍ動力学モデル上で適正な第ｍ歩容パラメータ（所定の境界条件を満たすかもしくは該境界条件に対する適合性の高い第ｍ歩容パラメータ）を決定し得る修正対象パラメータの修正量を容易に予測することができる。従って、最終的な第ｎ動力学モデルの動力学的精度を比較的高いものとしても、第ｎ動力学モデル上で適正な第ｎ歩容パラメータを、該第ｎ歩容パラメータに対応する歩容の発散などを生じることなく、第１歩容パラメータから段階的に効率よく決定することができる。そして、第１発明では、最終的に決定された第ｎ歩容パラメータと第ｎ動力学モデルとを用いて、前記所定の期間における目標歩容が生成されるので、該目標歩容は、第ｎ動力学モデル上で前記所定の境界条件を十分に満たし得る歩容となる。
【００１５】
従って、第１発明によれば、目標歩容の発散を防止しつつ、所要の境界条件を高い動力学的精度で満足し得る目標歩容を効率よく生成することが可能となる。また、発散しない、あるいは発散し難い目標歩容を生成できることから、発散を防止するために目標歩容のうちの目標ＺＭＰや目標床反力モーメントなどを大きく修正したりする必要がなくなり、移動ロボットの安定余裕を高めることができる。
【００１６】
また、本発明の移動ロボットの歩容生成装置の第２発明は、前記の目的を達成するために、
所定の期間における移動ロボットの目標歩容を生成するとき、該目標歩容に続く仮想的な周期的歩容である定常歩容を規定する複数のパラメータの組である定常歩容パラメータを決定すると共に、その決定した定常歩容パラメータと前記移動ロボットのあらかじめ定めた動力学モデルとを用いて生成される定常歩容に前記目標歩容を近づけるように該目標歩容を生成する移動ロボットの歩容生成装置において、
前記移動ロボットの運動と該ロボットに作用する床反力との関係を表す運動・床反力モデルを含むと共に、該運動・床反力モデルと、該運動・床反力モデルにおける移動ロボットの運動に対して付加される制約条件と、該運動・床反力モデルにおける床反力に対して付加される制約条件とのうちの少なくともいずれか一つが互いに異なるように構成されたｎ個（ｎ：２以上の整数）の動力学モデルと、
前記複数のパラメータの仮値の組である第１定常歩容パラメータを、該第１定常歩容パラメータと前記ｎ個の動力学モデルのうちの所定の動力学モデルである第１動力学モデルとを用いて生成される定常歩容が所定の境界条件を満たすように決定する第１定常歩容パラメータ決定手段と、
前記ｎ個の動力学モデルのうちの前記第１動力学モデルを除くｎ−１個の動力学モデルのそれぞれを第ｍ動力学モデル（ｍ：２≦ｍ≦ｎを満たす整数）としたとき、第ｍ−１定常歩容パラメータのうちの所定の修正対象パラメータを修正してなる定常歩容パラメータである第ｍ定常歩容パラメータを、第ｍ動力学モデルを用いて第２定常歩容パラメータから第ｎ定常歩容パラメータまで順番に決定する定常歩容パラメータ修正手段とを備えると共に、
前記第ｍ動力学モデルは、第ｍ−１動力学モデルよりも動力学的精度が高くなるように構成された動力学モデルであり、
前記定常歩容パラメータ修正手段は、前記第ｍ定常歩容パラメータを決定するとき、第ｍ−１定常歩容パラメータと第ｍ動力学モデルとを用いて少なくとも前記定常歩容の１周期の期間の歩容を生成し、少なくともその生成した歩容の前記所定の境界条件からのずれ度合いである修正前ずれ度合いを基に、第ｍ定常歩容パラメータと第ｍ動力学モデルとを用いて生成される歩容の前記所定の境界条件からのずれ度合いである修正後ずれ度合いが前記修正前ずれ度合いよりも小さくなり、または、該修正後ずれ度合いが所定のずれ度合い許容範囲に収まるように前記第ｍ−１定常歩容パラメータのうちの前記修正対象パラメータを修正することにより前記第ｍ定常歩容パラメータを決定する手段であり、
前記決定された第ｎ定常歩容パラメータと第ｎ動力学モデルとを用いて生成される定常歩容に近づけるように前記所定の期間における目標歩容を生成するようにしたことを特徴とするものである。
【００１７】
この第２発明によれば、第１定常歩容パラメータは、それと第１動力学モデルとを用いて前記定常歩容を生成したとき、その定常歩容が第１動力学モデル上で所定の境界条件を満足するように決定される。該境界条件は、例えば定常歩容の１周期の期間の両端（該期間の始端および終端）における該歩容の所定の状態量（ロボットのある部位の位置、姿勢、もしくはその変化速度、あるいは、床反力）が互いに一致するというような条件である。そして、この第１定常歩容パラメータを起点として、第ｍ−１定常歩容パラメータの修正対象パラメータを第ｍ動力学モデルを用いて修正して、第ｍ動力学モデル上で前記所定の境界条件を満足する定常歩容を生成し得る第ｍ定常歩容パラメータ、あるいは、第ｍ−１定常歩容パラメータよりも前記所定の境界条件に対する適合性がより高い定常歩容を第ｍ動力学モデル上で生成し得る第ｍ定常歩容パラメータを決定する処理が、前記定常歩容パラメータ修正手段により順次実行され、最終的に第ｎ定常歩容パラメータが決定される。つまり、第１定常歩容パラメータが第１動力学モデルを除く各動力学モデルを用いて段階的に修正されていく。
【００１８】
従って、第１発明の場合と同様に、例えば任意のｍに対して第ｍ−１動力学モデルよりも第ｍ動力学モデルの方がその動力学的精度が高いようにしておき、また、その動力学的精度の違いが極端に大きくならないようにしておくことで、最終的に第ｎ定常歩容パラメータを決定したときに、動力学精度を高めつつ、所定の境界条件を適切に満足し得る定常歩容を第ｎ動力学モデル上で生成することが可能な第ｎ定常歩容パラメータを決定することが可能となる。
【００１９】
ここで、第ｍ定常歩容パラメータは、第ｍ−１定常歩容パラメータと第ｍ動力学モデルとを用いて生成した定常歩容（少なくとも１周期の期間の定常歩容）の前記所定の境界条件からのずれ度合い（修正前ずれ度合い）を基に、換言すれば、第ｍ動力学モデル上で第ｍ−１定常歩容パラメータの前記所定の境界条件に対する適合度合いを基に、該第ｍ−１定常歩容パラメータの修正対象パラメータを修正することによって決定される。そして、その修正は、それにより決定される第ｍ定常歩容パラメータと第ｍ動力学モデルとを用いて歩容を生成したときに、その定常歩容の前記所定の境界条件からのずれ度合い（修正後ずれ度合い）が第ｍ−１定常歩容パラメータに対応する修正前ずれ度合いよりも小さくなり、または、該修正後ずれ度合いが所定のずれ度合い許容範囲に収まるように決定される。
【００２０】
この場合、第ｍ−１定常歩容パラメータは、第ｍ−１動力学モデル上で前記所定の境界条件を満たす定常歩容パラメータ、もしくはそれに近い定常歩容パラメータであるから、前記の如く、第ｍ動力学モデルの動力学的精度を第ｍ−１動力学モデルの動力学的精度よりも若干高いものにしておくことで、前記修正前ずれ度合いを基に、第ｍ動力学モデル上で適正な第ｍ定常歩容パラメータ（所定の境界条件を満たすかもしくは該境界条件に対する適合性の高い第ｍ定常歩容パラメータ）を決定し得る修正対象パラメータの修正量を容易に予測することができる。従って、最終的な第ｎ動力学モデルの動力学的精度を比較的高いものとしても、第ｎ動力学モデル上で適正な第ｎ定常歩容パラメータを、その第ｎ定常歩容パラメータに対応する定常歩容の発散などを生じることなく、第１定常歩容パラメータから段階的に効率よく決定することができる。
【００２１】
その結果、第２発明によれば、定常歩容が所要の境界条件を高い動力学的精度で満足し得る定常歩容の歩容パラメータ（定常歩容パラメータ）を効率よく決定することが可能となる。そして、第２発明では、最終的に決定された第ｎ定常歩容パラメータと第ｎ動力学モデルとを用いて生成される定常歩容に近づけるように、前記所定の期間における目標歩容が生成されるので、該目標歩容は、第ｎ動力学モデル上でロボットの継続的な安定性を適切に高め得る歩容となるので、該目標歩容の発散を防止することができる。また、発散しない、あるいはし難い目標歩容を生成できることから、発散を防止するために目標歩容のうちの目標ＺＭＰや目標床反力モーメントなどを大きく修正したりする必要がなくなり、移動ロボットの安定余裕を高めることができる。
【００２２】
なお、第１発明と第２発明とは複合させてもよい。すなわち、第１発明において、所定の期間における目標歩容を第２発明における定常歩容に近づけるように生成し、このとき、その定常歩容を規定する定常歩容パラータを第２発明の如く決定する。この場合、第１発明において第ｎまでの歩容パラメータを決定するためのｎ個の動力学モデルと、第２発明において第ｎまでの定常歩容パラメータを決定するためのｎ個の動力学モデルとは、同じ動力学モデルでよい。但し、同じである必要はなく歩容パラメータを決定する場合と、定常歩容パラメータを決定する場合とで、互いに異なる（あるいは一部の動力学モデルのみが異なる）複数の動力学モデルを使用してもよい。さらには、両者の場合において使用する動力学モデルの個数が互いに相違してもよい。
【００２３】
前記第１発明では、前記ｎ個の動力学モデルは、任意の歩容パラメータと前記第ｍ−１動力学モデルとを用いて生成される歩容の前記所定の境界条件からのずれ度合いと、該歩容パラメータのうちの前記修正対象パラメータとの間の線形性が、該歩容パラメータと前記第ｍ動力学モデルとを用いて生成される歩容の前記所定の境界条件からのずれ度合いと、該歩容パラメータのうちの前記修正対象パラメータとの間の線形性よりも高くなるように構成されていることが好ましい（第３発明）。
【００２４】
同様に、第２発明にあっては、前記ｎ個の動力学モデルは、任意の定常歩容パラメータと前記第ｍ−１動力学モデルとを用いて生成される定常歩容の前記所定の境界条件からのずれ度合いと、該定常歩容パラメータのうちの前記修正対象パラメータとの間の線形性が、該定常歩容パラメータと前記第ｍ動力学モデルとを用いて生成される定常歩容の前記所定の境界条件からのずれ度合いと、該歩容パラメータのうちの前記修正対象パラメータとの間の線形性よりも高くなるように構成されていることが好ましい（第４発明）。
【００２５】
前記第３発明によれば、前記所定の境界条件からのずれ度合いと、前記歩容パラメータのうちの修正対象パラメータとの間の線形性が第ｍ動力学モデルよりも第ｍ−１動力学モデルの方が高いので、特に各番数の歩容パラメータの修正対象パラメータを探索的に決定する場合に、歩容番数の低い動力学モデルを用いた歩容パラメータの決定を効率よく短時間で行なうことが可能となる。これは、探索処理の際の修正対象パラメータの初期値が本来の適正値から比較的大きくずれていても、適正値を容易に探索できるからである。この場合、番数の高い動力学モデル（これを例えば第ｍa動力学モデルとする）は、線形性が低くなるものの、その一つ前の番数の動力学モデルである第ｍa−１動力学モデルを用いて、適切な第ｍa歩容パラメータに近い第ｍa−１歩容パラメータが決定されているので、その第ｍa−１歩容パラメータを探索処理の初期値とすることで、第ｍa歩容パラメータもさほど時間を要したりすることなく決定できる。ひいては、第ｎ歩容パラメータまでの決定処理を短時間で効率よく行なうことができる。同様に、第４発明によれば、第ｎ定常歩容パラメータまでの決定処理を短時間で効率よく行なうことができる。
【００２６】
また、前記第１発明においては、前記ｎ個の動力学モデルは、任意の歩容パラメータと前記第ｍ−１動力学モデルとを用いてコンピュータにより前記所定の期間における歩容を生成するときの演算時間が、該歩容パラメータと前記第ｍ動力学モデルとを用いて前記コンピュータにより前記所定の期間における歩容を生成するときの演算時間より短くなるように構成されていることが好ましい（第５発明）。
【００２７】
同様に、第２発明においては、前記ｎ個の動力学モデルは、任意の定常歩容パラメータと前記第ｍ−１動力学モデルとを用いてコンピュータにより前記定常歩容の１周期の期間の歩容を生成するときの演算時間が、該歩容パラメータと前記第ｍ動力学モデルとを用いて前記コンピュータにより前記定常歩容の１周期の期間の歩容を生成するときの演算時間よりも短くなるように構成されていることが好ましい（第６発明）。
【００２８】
前記第５発明によれば、特に各番数の歩容パラメータの修正対象パラメータを探索的に決定する場合に、番数の低い動力学モデルを用いた歩容パラメータの決定を短時間で行なうことが可能となる。これは、探索処理において、実際に歩容を生成する処理を短時間で行なうことができるからである。そして、番数の高い動力学モデル（例えば第ｍa動力学モデルとする）は、歩容を生成するのに要する時間が長くなるものの、その一つ前の番数の動力学モデルである第ｍa−１動力学モデルを用いて、適切な第ｍa歩容パラメータまたは第ｍaに近い第ｍa−１歩容パラメータが決定されているので、その第ｍa−１歩容パラメータを探索処理の初期値とすることで、第ｍa歩容パラメータもさほど時間を要したりすることなく決定できる。ひいては、第ｎ歩容パラメータまでの決定処理を短時間で効率よく行なうことができる。同様に、第６発明によれば、第ｎ歩容パラメータまでの決定処理を短時間で効率よく行なうことができる。
【００２９】
また、前記第１発明または第２発明において、前記移動ロボットが脚式移動ロボットである場合には、前記ｎ個の動力学モデルのうちの少なくとも第１動力学モデルと第２動力学モデルとは、第１動力学モデルにおける移動ロボットの全体質量に対する該ロボットの脚体の質量の比が、前記第２動力学モデルにおける移動ロボットの全体質量に対する該ロボットの脚体の質量の比よりも小さくなるように構成されていることが好ましい（第７発明）。
【００３０】
この第７発明によれば、少なくとも第１動力学モデルは第２動力学モデルよりも線形性が高まるので、特に第１動力学モデルを用いて前記第１歩容パラメータあるいは第１定常歩容パラメータを探索的に決定する場合に、第１動力学モデル上で境界条件を満たす前記所定期間における歩容または定常歩容に対応する歩容パラメータまたは定常歩容パラメータを効率よく短時間で決定することができる。
【００３１】
前記第１発明または第２発明では、ｎ個の動力学モデルは、基本的にはその運動・床反力モデルの構造（構成要素の質点数やイナーシャなど）あるいは動力学方程式（運動方程式）が互いに異なるものであればよいが、必ずしも、運動・床反力モデルが互いに異なることは必須ではない。
【００３２】
例えば、第１発明において、前記ｎ個の動力学モデルのうちの第ｎ動力学モデルを除く一つの所定の動力学モデルを第ｋ動力学モデル（ｋ：１≦ｋ≦ｎ−１を満たすいずれかの整数）としたとき、少なくとも該第ｋ動力学モデルと第ｋ＋１動力学モデルとは、それぞれ、該動力学モデルと任意の歩容パラメータを用いて生成される歩容における移動ロボットの運動および床反力のうちの少なくともいずれか一方がそれぞれの動力学モデルに対して設定された所定の許容範囲に収まることを前記制約条件として付加される動力学モデルであり、前記第ｋ＋１動力学モデルで用いる前記許容範囲は、前記第ｋ動力学モデルで用いる前記許容範囲よりも狭い範囲に設定されるようにしてもよい（第８発明）。
【００３３】
同様に、第２発明において、前記ｎ個の動力学モデルのうちの第ｎ動力学モデルを除く一つの所定の動力学モデルを第ｋ動力学モデル（ｋ：１≦ｋ≦ｎ−１を満たすいずれかの整数）としたとき、少なくとも該第ｋ動力学モデルと第ｋ＋１動力学モデルとは、それぞれ、該動力学モデルと任意の定常歩容パラメータを用いて生成される定常歩容における移動ロボットの運動および床反力のうちの少なくともいずれか一方がそれぞれの動力学モデルに対して設定された所定の許容範囲に収まることを前記制約条件として付加される動力学モデルであり、前記第ｋ＋１動力学モデルで用いる前記許容範囲は、前記第ｋ動力学モデルで用いる前記許容範囲よりも狭い許容範囲に設定されるようにしてもよい（第９発明）。
【００３４】
このようにした場合、動力学的精度は、第ｋ動力学モデルよりも第ｋ＋１動力学モデルの方が高めることが可能であるが、第ｋ動力学モデルの方が第ｋ＋１動力学モデルよりも線形性を高めることができる。従って、第ｋ動力学モデルを用いた第ｋ歩容パラメータまたは第ｋ定常歩容パラメータの決定を迅速に行いつつ、第ｋ＋１動力学モデルを用いて動力学的精度の高い歩容を生成し得る第ｋ＋１歩容パラメータまたは第ｋ＋１定常歩容パラメータを決定できる。
【００３５】
また、前記第１発明または第２発明において、前記ｎ個の動力学モデルは、必ずしも互いに独立した構造を持つものである必要はなく、例えば２つの互いに異なる運動・床反力モデルを合成することで、複数の動力学モデルを構成するようにしてもよい。具体的には、前記移動ロボットの運動と床反力との関係を表すものとしてあらかじめ定めた運動・床反力モデルを第Ａ運動・床反力モデルとし、前記移動ロボットの運動と床反力との関係を表すものとしてあらかじめ定められ、且つ該ロボットの所定の運動に対応して発生する床反力が前記第Ａ運動・床反力モデルと異なるように前記関係が構成された運動・床反力モデルを第Ｂ運動・床反力モデルとし、前記ｎ個の動力学モデルのうちの第ｎ動力学モデルを除く一つの所定の動力学モデルを第ｋ動力学モデル（ｋ：１≦ｋ≦ｎ−１を満たすいずれかの整数）としたとき、前記第ｋ動力学モデルを、前記移動ロボットの任意の運動に対応して該第ｋ動力学モデル上で発生する床反力が、該運動に対応して前記第Ａ運動・床反力モデル上で発生する床反力と、該運動に対応して前記第Ｂ運動・床反力モデル上で発生する床反力とから所定の重みを用いて算出される重み付き平均値となる動力学モデルとし、第ｋ＋１動力学モデルを、前記移動ロボットの任意の運動に対応して該第ｋ動力学モデル上で発生する床反力が、該運動に対応して前記第Ａ運動・床反力モデル上で発生する床反力と、該運動に対応して前記第Ｂ運動・床反力モデル上で発生する床反力とから前記第ｋ動力学モデルと異なる所定の重みを用いて算出される重み付き平均値となる動力学モデルとする（第１０発明）。
【００３６】
このようにすることで、運動と床反力との関係（すなわち運動・床反力モデル）が互いに相違する第ｋ動力学モデルと第ｋ＋１動力学モデルとを第Ａ運動・床反力モデルおよび第Ｂ運動・床反力モデルから合成的に構成することができる。なお、例えば第Ａ運動・床反力モデルの動力学的精度が第Ｂ運動・床反力モデルの動力学的精度よりも高いとした場合、第ｋ＋１動力学モデルは、第ｋ動力学モデルよりも、所定の運動に対する床反力が第Ａ運動・床反力モデルにより近いものとなることが望ましい。また、第１発明または第２発明における動力学モデルの総数ｎが３以上である場合には、第ｋ動力学モデルと第ｋ＋１動力学モデル以外の全ての動力学モデルあるいは複数の動力学モデルを第ｋ動力学モデル、第ｋ＋１動力学モデルと同様に、第Ａ運動・床反力モデルおよび第Ｂ運動床反力モデルの床反力の重み付き平均値が前記所定の運動に対応して発生するように構成してもよい。この場合、それらの動力学モデル（第ｋ動力学モデル、第ｋ＋１動力学モデルを含む）に対応する重みは、互いに異なる重みに設定される。
【００３７】
また、前記第１発明においては、前記歩容パラメータは、前記所定の期間における歩容のうちの目標ＺＭＰ軌道を規定するパラメータを前記修正対象パラメータとして含むことが好ましい（第１１発明）。
【００３８】
この第１１発明によれば、目標ＺＭＰ軌道をロボットの安定余裕を確保するために好適な軌道から大きく修正しないようにしつつ、第ｎ動力学モデル上で境界条件を満足し得る目標歩容を生成することが可能となる。
【００３９】
また、前記第２発明においては、前記定常歩容パラメータは、前記定常歩容の１周期の期間の一端における移動ロボットの運動の所定の状態量を規定するパラメータを前記修正対象パラメータとして含むことが好ましい（第１２発明）。
【００４０】
この第１２発明によれば、第ｍ動力学モデル上で定常歩容の境界条件が満たされる定常歩容パラメータ、あるいはそれに近い定常歩容パラメータを、定常歩容の１周期の期間の一端における移動ロボットの運動の所定の状態量を調整することで決定することとなるので、安定余裕の高い定常歩容を規定する定常歩容パラメータを決定できる。なお、定常歩容は、周期的な歩容であるので、その１周期の一端におけるロボットの運動の所定の状態量を調整することは、１周期の他端におけるロボットの運動の所定の状態量を調整することを意味する。
【００４１】
また、前記第１発明において、前記所定の境界条件は、前記所定の期間における歩容の境界における移動ロボットの運動の所定の状態量が前記境界において隣接する歩容における移動ロボットの運動の該所定の状態量と一致するという条件を含む（第１３発明）。
【００４２】
すなわち、目標歩容は、連続している必要があるので、前記所定の期間における目標歩容を生成するとき、該所定の期間における歩容の境界（該所定の期間の始端または終端における歩容）で、移動ロボットの歩容の運動の所定の状態量（例えばある移動ロボットのある部位の位置、姿勢、もしくはその変化速度）が該歩容に隣接する歩容における当該運動の所定の状態量と一致することが望ましい。
【００４３】
また、第１発明において、前記所定の期間における目標歩容に続く仮想的な周期的歩容である定常歩容（あるいはこれを規定する定常歩容パラメータ）を決定した上で、この目標歩容に近づけるように目標歩容を生成する場合には、前記所定の境界条件は、前記所定の期間における歩容の終端側の境界における移動ロボットの運動の所定の状態量が該歩容に続くべき仮想的な周期的歩容として決定された定常歩容における移動ロボットの運動の該所定の状態量と一致するという条件を含むことが好ましい（第１４発明）。
【００４４】
このように前記目標歩容に対応する境界条件を定めることで、目標歩容の終端側（前記所定の期間の終端側）で定常歩容に近づけるような目標歩容を第ｎ動力学モデル上で生成し得る第ｎ歩容パラメータを効率よく生成できる。なお、第１４発明において、定常歩容は、必ずしもそれを規定する定常歩容パラメータを第２発明の如く複数の動力学モデルを用いて段階的に決定する必要はないが、第２発明の如く決定するようにしてもよい。
【００４５】
また、前記第２発明においては、前記所定の境界条件は、前記定常歩容の１周期の始端と終端における移動ロボットの運動の所定の状態量が一致するという条件を含むことが好ましい（第１５発明）。
【００４６】
定常歩容は、周期的な歩容であるので、上記のように境界条件を定めることで、周期性の条件を満たす定常歩容を生成し得る定常歩容パラメータを適切に決定できる。なお、この第１５発明における定常歩容の１周期の始端は必ずしも、前記目標歩容の終端と一致する必要はない。
【００４７】
前記第１２〜第１５発明では、特に前記移動ロボットが、上体から延設された複数の脚体を備えた脚式移動ロボットである場合には、前記所定の状態量は、該ロボットの上体の位置、該上体の速度、該上体の姿勢角、該上体の姿勢角の角速度、該上体の位置と速度との重み付き平均値、該ロボットの全体重心の位置、該全体重心の速度、該全体重心の位置と速度との重み付き平均値、および発散成分のうちの少なくともいずれか一つを含むことが好ましい（第１６発明）。
【００４８】
これによれば、第１２発明にあっては、第ｍ定常歩容パラメータを決定するときの修正対象パラメータを少なくしつつ、定常歩容の境界条件を満たすような第ｍ定常歩容パラメータを効率よく決定できる。また、特に第１４発明にあっては、前記所定の期間における目標歩容を定常歩容に近づけるための第ｍ歩容パラメータを、修正対象パラメータを少なくしつつ効率よく決定できる。なお、第１４発明では、特に、前記所定の状態量としては、上体の位置と速度との重み付き平均値、あるいは全体重心の位置と速度との重み付き平均値、あるいは発散成分が好適である。
【００４９】
また、前記第１発明においては、前記歩容パラメータ修正手段は、前記第ｍ歩容パラメータをそれぞれ決定するとき、第ｍ−１歩容パラメータと第ｍ動力学モデルとを用いて前記所定の期間における歩容を生成すると共に、前記第ｍ−１歩容パラメータのうちの前記修正対象パラメータを所定量だけ修正してなる少なくとも一組の補助歩容パラメータを決定して、その決定した各組の補助歩容パラメータと前記第ｍ動力学モデルとを用いて前記所定の期間における歩容を生成し、前記第ｍ−１歩容パラメータを用いて生成した歩容の前記所定の境界条件からのずれ度合いである修正前ずれ度合いと、前記各組の補助歩容パラメータを用いて生成した歩容の前記所定の境界条件からのずれ度合いである補助ずれ度合いとを基に、前記第ｍ−１歩容パラメータのうちの前記修正対象パラメータを修正量を決定して、該修正対象パラメータを修正することにより前記第ｍ歩容パラメータを決定する手段であることが好ましい（第１７発明）。
【００５０】
同様に第２発明においては、前記定常歩容パラメータ修正手段は、前記第ｍ定常歩容パラメータをそれぞれ決定するとき、第ｍ−１定常歩容パラメータと第ｍ動力学モデルとを用いて少なくとも前記定常歩容の１周期の期間の歩容を生成すると共に、前記第ｍ−１歩容パラメータのうちの前記修正対象パラメータを所定量だけ修正してなる少なくとも一組の補助定常歩容パラメータを決定して、その決定した各組の補助定常歩容パラメータと前記第ｍ動力学モデルとを用いて少なくとも前記定常歩容の１周期の期間の歩容を生成し、前記第ｍ−１定常歩容パラメータを用いて生成した歩容の前記所定の境界条件からのずれ度合いである修正前ずれ度合いと、前記各組の補助定常歩容パラメータを用いて生成した歩容の前記所定の境界条件からのずれ度合いである補助ずれ度合いとを基に、前記第ｍ−１定常歩容パラメータのうちの前記修正対象パラメータを修正量を決定して、該修正対象パラメータを修正することにより前記第ｍ定常歩容パラメータを決定する手段であることが好ましい（第１８発明）。
【００５１】
前記第１７発明においては、前記第ｍ歩容パラメータをそれぞれ決定するとき、第ｍ−１歩容パラメータと第ｍ動力学モデルとを用いて前記所定の期間における歩容を生成すると共に、前記第ｍ−１歩容パラメータのうちの前記修正対象パラメータを所定量だけ修正してなる少なくとも一組の補助歩容パラメータを決定して、その決定した各組の補助歩容パラメータと前記第ｍ動力学モデルとを用いて前記所定の期間における歩容を生成するので、第ｍ−１歩容パラメータのうちの修正対象パラメータを修正したときに、どのように第ｍ動力学モデル上で生成される歩容が変化するかを観測することができ、ひいては第ｍ動力学モデル上で境界条件を満たす第ｍ歩容パラメータ、あるいはそれに近い第ｍ歩容パラメータの修正対象パラメータの修正量の予測がつきやすくなる。従って、前記第ｍ−１歩容パラメータを用いて生成した歩容の境界条件からのずれ度合いである修正前ずれ度合いと、前記各組の補助歩容パラメータを用いて生成した歩容の境界条件からのずれ度合いである補助ずれ度合いとを基に、前記第ｍ−１歩容パラメータのうちの修正対象パラメータの適切な修正量を容易に決定して、適切な第ｍ歩容パラメータを効率よく探索することが容易になる。
【００５２】
同様に第１８発明においても、前記第ｍ−１定常歩容パラメータのうちの修正対象パラメータの適切な修正量を容易に決定して、適切な第ｍ定常歩容パラメータを効率よく探索することが容易になる。
【発明を実施するための最良の形態】
【００５３】
以下、添付図面を参照して本発明の実施形態を説明する。尚、本明細書の実施形態では、移動ロボットとしては脚式移動ロボットとしての２足移動ロボットを例にとる。【００５４】
図１は、本発明の実施形態を適用する２足移動ロボットの全体的構成の概略を示す概略図である。【００５５】
図示の如く、２足移動ロボット（以下、ロボットという）１は上体(ロボット１の基体）３から下方に延設された左右一対の脚体（脚部リンク）２，２を備える。両脚体２，２は同一構造であり、それぞれ６個の関節を備える。その６個の関節は上体３側から順に、股（腰部）の回旋（回転）用（上体３に対するヨー方向の回転用）の関節１０Ｒ，１０Ｌと、股（腰部）のロール方向（Ｘ軸まわり）の回転用の関節１２Ｒ，１２Ｌと、股（腰部）のピッチ方向（Ｙ軸まわり）の回転用の関節１４Ｒ，１４Ｌ、膝部のピッチ方向の回転用の関節１６Ｒ，１６Ｌと、足首のピッチ方向の回転用の関節１８Ｒ，１８Ｌと、足首のロール方向の回転用の関節２０Ｒ，２０Ｌとから構成される。なお、本明細書において、符号Ｒ，Ｌはそれぞれロボット１の右側、左側に対応するものであることを意味する符号である。【００５６】
各脚体２の足首の２つの関節１８Ｒ（Ｌ），２０Ｒ（Ｌ）の下部には、各脚体２の先端部を構成する足平（足部）２２Ｒ（Ｌ）が取着されると共に、両脚体２，２の最上位には、各脚体２の股の３つの関節１０Ｒ（Ｌ），１２Ｒ（Ｌ），１４Ｒ（Ｌ）を介して前記上体３が取り付けられている。上体３の内部には、詳細を後述する制御ユニット６０などが格納される。なお、図１では図示の便宜上、制御ユニット６０を上体３の外部に記載している。【００５７】
上記構成の各脚体２においては、股関節（あるいは腰関節）は関節１０Ｒ（Ｌ），１２Ｒ（Ｌ），１４Ｒ（Ｌ）から構成され、膝関節は関節１６Ｒ（Ｌ）から構成され、足首関節は関節１８Ｒ（Ｌ），２０Ｒ（Ｌ）から構成される。また股関節と膝関節とは大腿リンク２４Ｒ（Ｌ）で連結され、膝関節と足首関節とは下腿リンク２６Ｒ（Ｌ）で連結される。【００５８】
上体３の上部の両側部には左右一対の腕体５，５が取り付けられると共に、上体３の上端部には頭部４が配置される。各腕体５は、３つの関節３０Ｒ（Ｌ），３２Ｒ（Ｌ），３４Ｒ（Ｌ）から構成された肩関節と、関節３６Ｒ（Ｌ）から構成された肘関節と、関節３８Ｒ（Ｌ）から構成された手首関節と、この手首関節に連結された手先部４０Ｒ（Ｌ）とを備えている。肩関節と肘関節との間、および肘関節と手首関節との間はそれぞれ剛体状のリンクで構成されている。【００５９】
上記のロボット１の構成により、各脚体２の足平２２Ｒ（Ｌ）は、上体３に対して６つの自由度を与えられている。そして、ロボット１の歩行等の移動中に、両脚体２，２を合わせて６＊２＝１２個（この明細書で「＊」はスカラに対する演算としては乗算を、ベクトルに対する演算としては外積を示す）の関節を適宜な角度で駆動することで、両足平２２Ｒ，２２Ｌの所望の運動を行うことができる。これにより、ロボット１は任意に３次元空間を移動することができる。また、各腕体５は、その肩関節、肘関節、手首関節の回転によって、腕振り等の運動を行うことができる。【００６０】
図１に示す如く、各脚体２の足首関節１８Ｒ（Ｌ），２０Ｒ（Ｌ）の下方には足平２２Ｒ（Ｌ）との間に公知の６軸力センサ５０が介装されている。該６軸力センサ５０は、各脚体２の足平２２Ｒ（Ｌ）の着地の有無、および各脚体２に作用する床反力（接地荷重）等を検出するためのものであり、該床反力の並進力の３方向成分Ｆｘ，Ｆｙ，Ｆｚ並びにモーメントの３方向成分Ｍｘ，Ｍｙ，Ｍｚの検出信号を制御ユニット６０に出力する。また、上体３には、Ｚ軸（鉛直方向（重力方向））に対する上体３の傾斜角（姿勢角）およびその角速度を検出するための姿勢センサ５４が備えられ、その検出信号が該姿勢センサ５４から制御ユニット６０に出力される。この姿勢センサ５４は、図示を省略する加速度センサおよびジャイロセンサを備え、これらのセンサの検出信号が上体３の傾斜角およびその角速度を検出するために用いられる。また、詳細構造の図示は省略するが、ロボット１の各関節には、それを駆動するための電動モータ６４（図３参照）と、その電動モータ６４の回転量（各関節の回転角）を検出するためのエンコーダ（ロータリエンコーダ）６５（図３参照）とが設けられ、該エンコーダ６５の検出信号が該エンコーダ６５から制御ユニット６０に出力される。【００６１】
さらに、図１では図示を省略するが、ロボット１の外部には、ロボット１を操縦するためのジョイスティック（操作器）７３（図３参照）が設けられ、そのジョイスティック７３を操作することで、直進移動しているロボット１を旋回させるなどロボット１の移動方向を指定する、ロボット１の歩行、走行などの運動形態および床面の摩擦状態（路面状態）を指定するなど、ロボット１の歩容に対する要求もしくは制約条件を必要に応じて制御ユニット６０に入力できるように構成されている。ジョイスティック７３は有線もしくは無線により制御ユニット６０との通信が可能とされている。【００６２】
図２は本実施形態における各脚体２の先端部分（各足平２２Ｒ（Ｌ）を含む）の基本構成を概略的に示す図である。同図に示すように、各足平２２Ｒ（Ｌ）の上方には、前記６軸力センサ５０との間にばね機構７０が装備されると共に、足底（各足平２２Ｒ，Ｌの底面）にはゴムなどからなる足底弾性体７１が貼られている。これらのばね機構７０及び足底弾性体７１によりコンプライアンス機構７２が構成されている。詳細な図示は省略するが、ばね機構７０は、足平２２Ｒ（Ｌ）の上面部に取り付けられた方形状のガイド部材（図示省略）と、足首関節１８Ｒ（Ｌ）（図２では足首関節２０Ｒ（Ｌ）を省略している）および６軸力センサ５０側に取り付けられ、前記ガイド部材に弾性材（ゴムやばね）を介して微動自在に収納されるピストン状部材（図示省略）とから構成されている。【００６３】
図２に実線で表示された足平２２Ｒ（Ｌ）は、床反力を受けていないときの状態を示している。各脚体２が床反力を受けると、コンプライアンス機構７２のばね機構７０と足底弾性体７１とがたわみ、足平２２Ｒ（Ｌ）は図中に点線で例示したような位置姿勢に移る。このコンプラインアス機構７２の構造は、着地衝撃を緩和するためだけでなく、制御性を高めるためにも重要なものである。その詳細は、例えば本出願人が先に提案した特開平５−３０５５８４号公報に詳細に説明されているので、本明細書でのさらなる説明は省略する。【００６４】
図３は制御ユニット６０の構成を示すブロック図である。該制御ユニット６０はマイクロコンピュータにより構成されており、ＣＰＵからなる第１の演算装置９０及び第２の演算装置９２、Ａ／Ｄ変換器８０、カウンタ８６、Ｄ／Ａ変換器９６、ＲＡＭ８４、ＲＯＭ９４、並びにこれらの間のデータ授受を行うバスライン８２を備えている。この制御ユニット６０では、各脚体２の６軸力センサ５０、姿勢センサ５４（加速度センサおよびレートジャイロセンサ）、ジョイスティック７３等の出力信号はＡ／Ｄ変換器８０でデジタル値に変換された後、バスライン８２を介してＲＡＭ８４に送られる。またロボット１の各関節のエンコーダ６５（ロータリーエンコーダ）の出力は、カウンタ８６を介してＲＡＭ８４に入力される。【００６５】
前記第１の演算装置９０は後述の如く目標歩容を生成すると共に、関節角変位指令（各関節の変位角もしくは各電動モータ６４の回転角の指令値）を算出し、ＲＡＭ８４に送出する。また、第２の演算装置９２はＲＡＭ８４から関節角変位指令と、前記エンコーダ６５の出力信号に基づいて検出された関節角の実測値とを読み出し、各関節の駆動に必要な操作量を算出して、その操作量をＤ／Ａ変換器９６とサーボアンプ６４ａとを介して各関節を駆動する電動モータ６４に出力する。【００６６】
図４は、本明細書の実施形態におけるロボット１の制御ユニット６０の主な機能的構成を示すブロック図である。この図４中の「実ロボット」の部分以外の部分が制御ユニット６０が実行する処理機能（主として第１の演算装置９０及び第２の演算装置９２の機能）によって構成されるものである。その処理機能は、制御ユニット６０に実装されたプログラム等によって実現されている。尚、以下の説明では、ロボット１の各部（脚体２、腕体５など）の左右を特に区別する必要がないときは、前記符号Ｒ，Ｌを省略する。【００６７】
以下説明すると、制御ユニット６０は、後述の如く目標歩容を自在かつリアルタイムに生成して出力する歩容生成装置１００を備えている。この歩容生成装置１００は、その機能によって本発明の実施形態を実現するものである。この歩容生成装置１００が出力する目標歩容は、補正目標上体姿勢軌道（上体３の目標姿勢の軌道）、補正目標上体位置軌道（上体３の目標位置の軌道）、目標足平位置姿勢軌道（各足平２２の目標位置及び目標姿勢の軌道）、目標腕姿勢軌道（各腕体の目標姿勢の軌道）、目標ＺＭＰ（目標全床反力中心点）軌道、目標ＺＭＰまわりの補正目標床反力モーメント軌道および目標全床反力軌道から構成される。尚、脚体２や腕体５以外に、上体３に対して可動な部位（頭部など）を備える場合には、その可動部位の目標位置姿勢軌道が目標歩容に加えられる。【００６８】
ここで、本明細書での歩容に関する基本的な用語の定義などについて説明しておく。歩容における「軌道」は時間的変化のパターン（時系列パターン）を意味し、「軌道」の代わりに「パターン」と称することもある。また、「姿勢」は空間的な向きを意味する。例えば上体姿勢はＺ軸（鉛直軸）に対するロール方向（Ｘ軸まわり）の上体３の傾斜角（姿勢角）とピッチ方向（Ｙ軸まわり）の上体３の傾斜角（姿勢角）とで表され、足平姿勢は各足平２２に固定的に設定された２軸の空間的な方位角で表される。本明細書では、上体姿勢は上体姿勢角もしくは上体傾斜角ということもある。なお、腕体５に関する目標腕姿勢は、本明細書の実施形態では上体３に対する相対姿勢で表される。【００６９】
上体位置は、上体３のあらかじめ定めた代表点（上体３に対して任意に固定設定したローカル座標系でのある固定点）の位置を意味する。同様に、足平位置は、各足平２２のあらかじめ定めた代表点（各足平２２に対して任意に固定設定したローカル座標系での固定点）の位置を意味する。例えば各足平２２の代表点は、各足平２２の底面上（より具体的には各脚体２の足首関節の中心から各足平２２の底面への垂線が該底面と交わる点等）に設定される。【００７０】
上体３に関する前記補正目標上体姿勢および補正目標上体位置は、ある基本となる目標上体姿勢（仮目標上体姿勢）および目標上体位置（仮目標上体位置）を補正したものである。本明細書の実施形態では、基本となる目標上体位置姿勢は、後述するで決定される目標上体位置姿勢（後述の図１２のＳ０３２で決定される目標上体位置姿勢）が相当する。【００７１】
なお、以降の説明では、誤解を生じるおそれがない場合には、しばしば「目標」を省略する。【００７２】
歩容のうちの、床反力に係わる構成要素以外の構成要素、すなわち足平位置姿勢、上体位置姿勢等、ロボット１の各部位の位置姿勢に関する構成要素を総称的に「運動」という。また、各足平２２に作用する床反力（並進力及びモーメントからなる床反力）を「各足平床反力」と呼び、ロボット１の全て（２つ）の足平２２Ｒ，２２Ｌについての「各足平床反力」の合力を「全床反力」という。ただし、以下の説明においては、各足平床反力はほとんど言及しないので、特に断らない限り、「床反力」は「全床反力」と同義として扱う。【００７３】
目標床反力は、一般的には、作用点とその点に作用する並進力及びモーメントによって表現される。作用点はどこにとっても良いので、同一の目標床反力でも無数の表現が考えられるが、特に目標床反力中心点（全床反力の中心点の目標位置）を作用点にして目標床反力を表現すると、目標床反力のモーメント成分は、鉛直成分（鉛直軸（Ｚ軸）まわりのモーメント成分）を除いて零になる。換言すれば、目標床反力中心点まわりの目標床反力のモーメントの水平成分（水平軸（Ｘ軸及びＹ軸）まわりのモーメント）は零になる。【００７４】
なお、動力学的平衡条件を満足する歩容では、ロボット１の目標運動軌道から算出されるＺＭＰ（目標運動軌道から算出される慣性力と重力との合力がその点まわりに作用するモーメントが、鉛直成分を除いて零になる点）と目標床反力中心点とは一致することから、目標床反力中心点軌道の代わりに目標ＺＭＰ軌道を与えると言っても同じことである。【００７５】
ここで、ロボット１の歩行を行う場合には、例えば本出願人が先に特開平１０−８６０８０号公報で提案した上体高さ決定手法によってロボット１の上体３の鉛直位置（上体高さ）が決定されると、並進床反力鉛直成分は従属的に決定される。さらに、目標歩容の運動による慣性力と重力との合力が目標ＺＭＰまわりに発生するモーメントの水平成分が０になるようにロボット１の上体水平位置軌道（あるいは全体重心の位置軌道）を決定することで、並進床反力水平成分も従属的に決定される。このため、ロボット１の歩行を行う場合には、目標歩容の床反力に関して明示的に設定すべき物理量としては、目標ＺＭＰだけでもよい。【００７６】
一方、床反力が０もしくはほぼ０になるような時期を伴う歩容でのロボット１の移動、例えばロボット１の走行を行う場合には、並進床反力鉛直成分もロボット１の動作制御上重要である。このため、並進床反力鉛直成分の目標軌道を明示的に設定した上で、ロボット１の目標上体鉛直位置等の軌道を決定することが望ましい。また、ロボット１の歩行においても、摩擦係数が低い床面上（低ミュー路上）でロボット１を移動させるような場合には、並進床反力鉛直成分（より厳密には並進床反力の床面に垂直な成分）が摩擦力に影響を及ぼすことから、ロボット１のスリップなどを防止する上で、並進床反力鉛直成分の目標軌道を明示的に設定することが望ましい。さらに、本発明の実施形態では、最終的に歩容生成装置１００が出力する目標歩容では、目標ＺＭＰまわりに補正目標床反力モーメント（水平成分が０とは限らないモーメント）を発生させる。【００７７】
このようなことから、本明細書の実施形態では、歩容生成装置１００が出力する目標歩容の床反力に関する構成要素として、目標ＺＭＰ軌道のほか、目標ＺＭＰまわりの補正目標床反力モーメントと、目標並進床反力鉛直成分とを含ませている。【００７８】
そして、本明細書では、歩容生成装置１００が出力する目標歩容は、広義には、「１歩ないしは複数歩の期間の目標運動軌道と目標床反力軌道との組」の意味で使用され、狭義には、「１歩の期間の目標運動軌道と、目標ＺＭＰ、補正目標床反力モーメント及び目標並進床反力鉛直成分を含む目標床反力軌道との組」の意味で使用される。【００７９】
但し、本明細書の実施形態においては、最終的な目標歩容（歩容生成装置１００が出力する目標歩容）を決定するまでの過程で作成する目標歩容（仮目標歩容）では、目標ＺＭＰまわりの目標床反力モーメントの水平成分は、本来の目標ＺＭＰの定義どおりに０とされる。従って、最終的に決定する目標歩容以外の仮目標歩容では、上記狭義の目標歩容から、補正目標床反力モーメントを除いたものが目標歩容の意味で使用される。補足すると、本明細書の実施形態では、最終的な目標歩容（歩容生成装置１００が出力する目標歩容）を決定するまでの過程で作成する目標歩容（仮目標歩容）が本発明に密接に関連するものとなっている。このため、以降の説明で現れる目標歩容の大部分は、前記狭義の目標歩容から、補正目標床反力モーメントを除いたもの（目標ＺＭＰを満足する歩容）の意味で使用される。【００８０】
なお、以降の説明では、「床反力鉛直成分」は「並進床反力鉛直成分」を意味するものとし、床反力のうちのモーメントの鉛直成分（鉛直軸回り成分）は、「モーメント」という用語を用いて「床反力鉛直成分」と区別をする。同様に、「床反力水平成分」は「並進床反力水平成分」を意味するものとする。【００８１】
また、目標歩容の「１歩」は、ロボット１の片方の脚体２が着地してからもう一方の脚体２が着地するまでの意味で使用する。【００８２】
また、歩容における両脚支持期とは、ロボット１がその自重を両脚体２，２で支持する期間、片脚支持期とはいずれか一方のみの脚体２でロボット１の自重を支持する期間、空中期とは両脚体２，２が床から離れている（空中に浮いている）期間を言う。片脚支持期においてロボット１の自重を支持しない側の脚体２を遊脚と呼ぶ。なお、片脚支持期と空中期とが交互に繰り返されるロボット１の走行歩容では両脚支持期は無い。この場合、空中期では両脚２，２とも、ロボット１の自重を支持しないこととなるが、便宜上、該空中期の直前の片脚支持期において遊脚であった脚体２、支持脚であった脚体２をそれぞれ該空中期においても遊脚、支持脚と呼ぶ。【００８３】
また、目標歩容の軌道は、グローバル座標系（床に固定された座標系）で記述される。グローバル座標系としては、例えば支持脚足平２２の着地位置姿勢に対応して定まる支持脚座標系が用いられる。この支持脚座標系は、例えば支持脚足平２２の底面のほぼ全面を床に接地した状態で、その足平２２が連結された足首関節の中心から床面に延ばした垂線が床と交わる点を原点とし、その原点を通る水平面に支持脚足平２２を投影したときの該足平２２の前後方向をＸ軸方向、左右方向をＹ軸方向とする座標系（Ｚ軸方向は鉛直方向）である。以降の説明では、特にことわらない限り、Ｘ、Ｙ、Ｚ座標は、この支持脚座標系の座標を意味する。【００８４】
図５は、歩容生成装置１００の詳細を示すブロック図である。この図５を参照して、歩容生成装置１００の処理のより具体的な概要を以下に説明する。【００８５】
図示の如く、歩容生成装置１００は歩容パラメータ決定部１００ａを備える。歩容パラメータ決定部１００ａは、目標歩容を規定する歩容パラメータの値あるいは時系列テーブルを決定する。この歩容パラメータ決定部１００ａは、本発明の中核に係わる処理を担うものである。【００８６】
本明細書の実施形態では、歩容パラメータ決定部１００ａが決定する歩容パラメータには、目標歩容のうちの、目標足平位置姿勢軌道、目標腕姿勢軌道、目標ＺＭＰ軌道、および目標床反力鉛直成分軌道をそれぞれ規定するパラメータが含まれる。【００８７】
ここで、歩容生成装置１００が目標歩容を生成するとき、遊脚足平２２の着地予定位置姿勢、着地予定時刻、あるいは歩幅、移動速度等の歩容生成用の基本的な要求値（要求パラメータ）が、前記ジョイスティック７３、もしくは図示しない行動計画部（ロボット１の行動計画を作成する装置）などの装置から歩容生成装置１００に与えられる。あるいは、上記要求パラメータをあらかじめ記憶保持した記憶媒体から該要求パラメータを歩容生成装置１００が読み込む。そして、歩容生成装置１００の歩容パラメータ決定部１００ａは、その要求パラメータに応じて歩容パラメータを決定する。【００８８】
また、本明細書の実施形態では、歩容パラメータ決定部１００ａが決定する歩容パラメータには、基準上体姿勢軌道、ＺＭＰ許容範囲、床反力水平成分許容範囲をそれぞれ規定するパラメータも含まれる。【００８９】
ここで、前記基準上体姿勢軌道は、最終的に歩容生成装置１００が出力するものではないが、目標歩容を決定するときに参酌されるものである。この基準上体姿勢軌道は、ロボット１の上体姿勢に関して、前記ジョイスティック７３あるいは行動計画部から与えられ、もしくはあらかじめ定められた要求（上体姿勢を鉛直姿勢に保つなどの要求）にそのまま従って生成される上体姿勢軌道である。目標上体姿勢（以降、「基準」が付いていない「上体姿勢」は、目標上体姿勢を表す）は、基準上体姿勢に長期的に追従するか、または一致するように生成される。【００９０】
また、前記ＺＭＰ許容範囲に関して補足すると、本明細書の実施形態では、目標歩容は、目標ＺＭＰのまわりに補正目標床反力モーメント（これは一般には０ではない）を発生するように修正される。したがって、目標ＺＭＰは、本来の定義（床反力モーメント水平成分が０である点という定義）とは異なる点となり、本来の定義を満足するＺＭＰ（以下、真のＺＭＰという）は、補正目標床反力モーメントを目標床反力鉛直成分で割った値だけ目標ＺＭＰからずれた位置に移る。【００９１】
修正された歩容（歩容生成装置１００が最終的に出力する目標歩容）の真のＺＭＰは、少なくともＺＭＰ存在可能範囲（いわゆる支持多角形のこと。床と足平２２の底面との間に粘着力が作用しないと仮定した場合における床反力作用点（ＺＭＰ）の存在可能範囲）内になければならない。さらにロボット１の安定余裕を十分にとるためには、修正された歩容の真のＺＭＰは、ＺＭＰ存在可能範囲のなかの中心付近の範囲にあることが望ましい。そこで、本明細書の実施形態では修正された歩容の真のＺＭＰが存在できる許容範囲を設定する。この範囲をＺＭＰ許容範囲と呼ぶ。ＺＭＰ許容範囲は、ＺＭＰ存在可能範囲と一致あるいはＺＭＰ存在可能範囲内に包含されるように設定される。【００９２】
なお、前記したように、目標ＺＭＰまわりの補正目標床反力モーメントを目標床反力鉛直成分で除算したものが、目標ＺＭＰに対する真のＺＭＰの位置のずれ量を表すので、目標ＺＭＰまわりの補正目標床反力モーメントを設定する代わりに、目標ＺＭＰに対する真のＺＭＰの位置のずれ量（補正目標床反力モーメントのＺＭＰ換算値）を設定してもよい。また、ＺＭＰ許容範囲は、その境界の位置に目標床反力鉛直成分を乗算することで、補正目標床反力モーメント許容範囲に変換することができ、その補正目標床反力モーメント許容範囲をＺＭＰ許容範囲の代わりに設定するようにしてもよい。【００９３】
また、前記床反力水平成分許容範囲は、ロボット１の足平２２の床との接地面に、足平２２が滑らないような大きさの摩擦力を発生させ得る床反力水平成分の許容範囲である。本明細書の実施形態では、少なくとも最終的に歩容生成装置１００が出力する目標歩容の運動（目標運動）は、それによって発生するロボット１の慣性力の水平成分に釣り合う床反力水平成分が床反力水平成分許容範囲内に収まるように生成される。【００９４】
なお、本明細書の実施形態で設定する床反力水平成分許容範囲は、後述のＳ０２２の処理で設定される定常歩容用のものと、Ｓ０２６の処理で設定される基本歩容用のものと、Ｓ０３０で設定される歩容補正用（フルモデル補正用）のものとがある。ただし、これらの床反力水平成分許容範囲は必ずしも互いに異なる必要はなく、同一でもよい。一方、ＺＭＰ許容範囲は、Ｓ０３０処理で設定される歩容補正用（フルモデル補正用）のものだけである。【００９５】
補足すると、目標歩容を生成するための歩容パラメータには、上記したパラメータ以外のパラメータも含まれる。それらは、歩容パラメータ決定部１００ａの中で、所要の境界条件を満たすように決定される。【００９６】
歩容パラメータ決定部１００ａで決定された歩容パラメータは目標瞬時値発生部１００ｂに入力される。目標瞬時値発生部１００ｂは入力された歩容パラメータに基づき、動力学モデルを用いて目標上体位置姿勢、目標足平位置姿勢、目標ＺＭＰ、目標床反力鉛直成分、ＺＭＰ許容範囲、床反力水平成分許容範囲等、目標歩容の構成要素の瞬時値（前記制御ユニット６０の所定の制御処理周期毎の値）を逐次算出（発生）する。なお、図５では一部の目標瞬時値のみを代表的に記載している。【００９７】
目標瞬時値発生部１００ｂで算出された目標瞬時値は、フルモデル補正部１００ｃに入力される。このフルモデル補正部１００ｃは、目標瞬時値発生部１００ｂが求めた目標上体位置姿勢を、動力学的精度の高い動力学モデルとしてのフルモデルを用いて補正してなる補正目標上体位置姿勢を算出すると共に、目標ＺＭＰまわりの床反力モーメント水平成分の目標値である補正目標床反力モーメントを算出する。【００９８】
フルモデル補正部１００ｃは、より一般的には、次のD1〜D3の条件を満足するように、E1あるいはE2の処理を実行する。すなわち、フルモデル補正部１００ｃは、
D1）目標瞬時値発生部１００ｂで生成した歩容よりも高い精度で動力学的平衡条件を満足する。
D2）真のＺＭＰ（目標ＺＭＰのまわりに補正目標床反力モーメントを発生させることによって修正された本来の定義を満足するＺＭＰ）は、ＺＭＰ許容範囲（安定余裕が十分維持できる許容範囲）に存在する。
D3）床反力水平成分は床反力水平成分許容範囲内になる。
という条件を満足するように、
E1）目標瞬時値発生部１００ｂで生成した歩容の上体位置姿勢を補正する。
あるいは
E2）目標瞬時値発生部１００ｂで生成した歩容の上体位置姿勢を補正すると共に、目標ＺＭＰまわりの補正目標床反力モーメントを出力する（目標床反力を補正する）。【００９９】
本明細書の実施形態では、D1〜D3の条件を満足するように、E2の処理が実行される。なお、本明細書の実施形態におけるフルモデル補正部１００ｃの処理は、例えば本願出願人が先に提案したＰＣＴ国際公開公報ＷＯ／０３／０５７４２７／Ａ１にて詳細に説明されているもの（具体的には、同公報の図１３のＳ０３８の処理）と同じである。従って、本明細書でのフルモデル補正部１００ｃの処理の詳細な説明は省略する。【０１００】
また、本明細書の実施形態では、フルモデル補正部１００ｃによる補正を行うが、その補正を省略し、目標瞬時値発生部１００ｂで決定した目標歩容の瞬時値をそのまま歩容生成装置１００から出力するようにしてもよい。【０１０１】
図４に戻って、上述のように決定される補正目標上体位置姿勢、目標ＺＭＰまわりの補正目標床反力モーメント、目標足平位置姿勢の瞬時値を含む目標歩容の瞬時値は、複合コンプライアンス制御装置１０１（図４で破線で囲んだ部分）に入力される。この複合コンプライアンス制御装置１０１では、ロボット１のバランスを保ちつつ、目標歩容に追従するように関節アクチュエータ（電動モータ６４）が制御される。なお、複合コンプライアンス制御装置１０１のより具体的な処理は後述する。【０１０２】
以上が歩容生成装置１００の概要である。なお、以上説明した歩容生成装置１００の概要は、本明細書のいずれの実施形態においても同じである。【０１０３】
次に、本発明の第１実施形態を具体的に説明していく。第１実施形態では、歩容パラメータ決定部１００ａによって、前記制御ユニット６０の制御処理周期毎に、複数の動力学モデルを用いて、目標ＺＭＰ軌道（より正確には歩容パラメータのうちの目標ＺＭＰ軌道を規定するパラメータ）を修正するためのパラメータを段階的に決定したり、前記したパラメータ以外のパラメータを探索的に決定することにより、目標歩容を規定する一組の歩容パラメータを決定する。そして、その決定した歩容パラメータと１つの動力学モデルとを用いて目標瞬時値発生部１００ｂにより目標歩容の瞬時値の時系列を決定する。【０１０４】
ここで、第１実施形態で歩容生成に用いられる上体運動モードと動力学モデルとについて説明する。【０１０５】
走行など、空中期がある歩容や、低摩擦床面での歩行においては、単に上体水平加速度を調整するだけでは、目標歩容の床反力水平成分が許容範囲内（あるいは摩擦限界内）に存在しつつ動力学的平衡条件を満足することができない場合がある。そこで、本実施形態では、以下に説明する上体３の２つの運動モード（上体並進モード及び上体回転モード）を複合的に発生させることにより、目標歩容の床反力水平成分が許容範囲内（あるいは摩擦限界内）に存在しつつ動力学的平衡条件を満足するようにしている。【０１０６】
図６（ａ）のように、ある運動状態から、上体水平加速度だけを摂動させると、全体重心水平加速度と全体重心まわりの角運動量が摂動する。すなわち、上体水平加速度の摂動は、それによって発生する慣性力と重力の合力に対して動力学的に釣り合う床反力鉛直成分を摂動させずに、目標ＺＭＰまわりの床反力モーメント（ただし鉛直軸まわり成分を除く）と床反力水平成分（厳密には、並進床反力水平成分）とを摂動させる。この運動モードを上体並進モードと呼ぶ。【０１０７】
言いかえると、床反力鉛直成分を変化させずに、目標ＺＭＰまわりの床反力モーメントの水平成分と床反力水平成分（並進床反力水平成分）を変化させる運動を上体並進モードと呼ぶ。【０１０８】
この時の単位加速度当たりの床反力モーメント成分の変化をΔMｐ、単位加速度当たりの床反力水平成分の変化をΔFpとする。図６（ａ）に示す状況で上体３を前方に水平加速すると、ΔMｐとΔFpは図６（ａ）に示す矢印の向きに作用する。【０１０９】
感覚的に判り易くするために、運動によって発生する慣性力と重力の合力に釣り合う床反力を用いて表現したが、慣性力と重力の合力を用いて表現した方が、理論的には的確である。なお、上記合力と床反力は、互いに大きさが同じで向きが逆になっている。【０１１０】
一方、図６（ｂ）のように、ある運動状態から、ある点Ｐｒまわりに上体姿勢角加速度を摂動させると、全体重心は摂動せずに、全体重心まわりの角運動量が摂動する。すなわち、点Ｐｒまわりの上体姿勢角加速度摂動は、床反力鉛直成分と床反力水平成分（厳密には、並進床反力鉛直成分と並進床反力水平成分）を摂動させずに、目標ＺＭＰまわりの床反力モーメントの水平成分を摂動させる。この運動モードを上体回転モードと呼ぶ。【０１１１】
言いかえると、床反力鉛直成分と床反力水平成分を変化させずに、目標ＺＭＰまわりの床反力モーメントの水平成分を変化させる運動を上体回転モードと呼ぶ。【０１１２】
この時の単位角加速度当たりの床反力モーメント成分の変化をΔMｒ、単位角加速度当たりの床反力の水平成分の変化をΔFｒとする。ΔFｒは零である。図６（ｂ）に示す状況で上体が前傾するように角加速度を与えると、ΔMｒは図６（ｂ）に示す矢印の向きに作用する。【０１１３】
上体３の運動には、上体並進モードと上体回転モード以外に、上体鉛直移動モードがある。これは、上体３を鉛直方向に移動させる運動である。【０１１４】
第１実施形態においては、歩容生成装置１００は、以下に示す複数の動力学モデルを用いて歩容を生成する。本実施形態では、その複数の動力学モデルとして、例えば第１〜第３の３個の動力学モデルが用いられる。【０１１５】
図７に第１動力学モデル（より正確には、第１動力学モデルのうちの、ロボット１の運動と床反力との関係を表す運動・床反力モデルの構造）の例を示す。この第１動力学モデルは、上体３に対応する上体質点を有する倒立振子と、各足平２２に対応する足平質点とで構成されたモデルであり、上体質点の水平運動が前記上体並進モードに対応している。上体質点は、上体３に任意に固定設定されたローカル座標系において上体３の代表点と一定の位置関係を有する点である。同様に、各足平質点は、それに対応する足平２２に任意に固定設定されたローカル座標系において該足平２２の代表点と一定の位置関係を有する点である。この第１動力学モデルは、本願出願人が先に例えば特開２００２−５４２５７４号公報もしくはＰＣＴ国際公開公報ＷＯ／０２／０４０２２４に例示した動力学モデルである。従って、本明細書での詳細な説明は省略するが、第１動力学モデルの動力学（運動と床反力との関係）は、次のように変数を定義したとき、式１ａ〜１ｄにより表される。

msup1：支持脚足平質点の質量、mswg1：遊脚足平質点の質量、mb1：上体質点の質量、mtotal：ロボット１の全体質量（＝msup1＋mswg1＋mb1）、mfeet：両脚質量（＝msup1＋mswg1）、xsup：支持脚足平質点の位置、xswg：遊脚足平質点の位置、xb：上体質点の位置、ｈ：倒立振子の高さ（倒立振子の支点から上体質点までの高さ）、ｇ：重力加速度定数、Ｇ：Ｘ、Ｙ座標成分が０で、Ｚ座標成分が−ｇである重力加速度ベクトル。なお、本明細書において、任意の変数Ｘに対してd2X/dt2は、Ｘの2階微分値を意味するものとする。
【０１１６】
点Ｐまわりの脚総慣性力モーメント
＝msup1＊(xsup1−xp)＊Ｇ−msup1＊(xsup1−xp)＊d2xsup1/dt2
＋mswg1＊(xswg1−xp)＊Ｇ−mswg＊(xswg1−xp)＊d2xswg1/dt2          …式１ａ
点Ｐまわりの脚総慣性力モーメント＝mfeet＊(ZMPfeet−xp)＊Ｇ          …式１ｂ
ZMPpend＝mtotal／mb＊目標ZMP−mfeet／mb＊ZMPfeet                 …式１ｃ
d2xb/dt2の水平成分＝ｇ／ｈ＊(xbの水平成分−ZMPpendの水平成分)     …式１ｄ
ここで、ZMPpendは上体質点のＺＭＰであり、倒立振子の支点の位置である。また、ZMPfeetは両脚体２，２（両足平質点）の運動によって発生する慣性力と重力との合力（総慣性力）がある点Ｐのまわりに発生するモーメント（脚総慣性力モーメント）に擬似的に対応させたＺＭＰ（脚総慣性力モーメントのＺＭＰ換算値。以下、脚ＺＭＰという）であり、その点Ｐの位置がxpである。この場合、点Ｐは、第１の動力学モデルの近似精度ができるだけ高くなるように設定される。補足すると、第１動力学モデルでは、全体質量mtotalに対する両脚質量mfeetの比率を０に近づけると、さらに線形性の高い単純倒立振子となる。【０１１７】
図８は第１動力学モデルを用いた上体位置姿勢の算出処理を示すブロック図である。第１動力学モデルでは、目標足平位置姿勢、目標ＺＭＰおよび目標上体姿勢から、同図のブロック図に従って演算を行うことで目標上体位置姿勢が算出される。この場合、第１動力学モデルを用いた上体位置姿勢の算出処理では、上体姿勢は、基準上体姿勢と同一とされる。ここで、同ブロック図中の脚ＺＭＰ算出器２００は、前記式１ａ、１ｂとを基にZMPfeetを算出するものであり、線形倒立振子２０１は、前記式１ｄを基に、d2xb/dt2の水平成分を求め、さらに、それを２階積分することで、上体質点の水平位置xbを求めるものである。また、上体位置姿勢決定器２０２は、目標上体姿勢と上体質点の水平位置xbとから目標上体位置姿勢を決定するものである。この場合、上体位置姿勢決定器２０２が出力する目標上体姿勢は、入力される目標上体姿勢（基準上体姿勢）と同一である。また、上体質点の鉛直位置（倒立振子の高さ）は、上体位置姿勢決定器２０２において、第１動力学モデルの全体重心の鉛直方向の慣性力と重力との合力が目標床反力鉛直成分に釣り合う（目標床反力鉛直成分の符号を反転させたものに等しくなる）ように決定される。【０１１８】
図９に、第２動力学モデル（より正確には、第２動力学モデルのうちの、ロボット１の運動と床反力との関係を表す運動・床反力モデルの構造）の例を示す。図示の如く、この第２動力学モデルはロボット１の各脚体２にそれぞれ対応する２つの質点（足平質点）２ｍ，２ｍ、及び上体３に対応する質点（上体質点）２４ｍからなる合計３質点と、イナーシャがあって質量のないフライホイールＦＨとから構成されるモデルである。上体質点は、上体３に任意に固定設定されたローカル座標系において上体３の代表点と一定の位置関係を有する点である。同様に、各足平質点は、それに対応する足平２２に任意に固定設定されたローカル座標系において該足平２２の代表点と一定の位置関係を有する点である。この第２動力学モデルは、本願出願人が例えば先に提案したＰＣＴ国際公開公報ＷＯ／０３／０５７４２７／Ａ１に例示した動力学モデルである。従って、本明細書での詳細な説明は省略するが、第２動力学モデルの動力学は、次のように変数を定義したとき、式２ａ〜２ｃにより表される。なお、ここでは、本明細書の理解を容易にするために、サジタルプレーン（前後軸（Ｘ軸）と鉛直軸（Ｚ軸）を含む平面）での動力学方程式（運動と床反力との関係を表す式）のみを記述し、ラテラルプレーン（左右軸（Ｙ軸）と鉛直軸（Ｚ軸）を含む平面）での動力学方程式を省略する。
Ｚsup2：支持脚質点鉛直位置、Ｚswg2：遊脚質点鉛直位置、Ｚb2：上体質点鉛直位置、ＺGtotal2：全体重心鉛直位置、Ｘsup2：支持脚質点水平位置、Ｘswg2：遊脚質点水平位置、Ｘb2：上体質点水平位置、ＸGtotal2：全体重心水平位置、θby2：鉛直方向に対するＹ軸回りの上体姿勢角（傾斜角）、mb2：上体質点質量、msup2：支持脚質点質量、mswg2：遊脚質点質量、mtotal：ロボット総質量（＝mb2＋msup2＋mswg2）、Ｊ：上体慣性モーメント（上体回転モードにおける等価慣性モーメント）、Fx：床反力水平成分（詳しくは並進床反力の前後方向（Ｘ軸）成分）、Fz：床反力鉛直成分（詳しくは並進床反力の鉛直方向（Ｚ軸）成分）、My：目標ＺＭＰまわりの床反力モーメント（詳しくは床反力モーメントの左右軸（Ｙ軸）まわり成分）。
Ｆz＝mb2＊(g+d2Zb2/dt2)＋msup2＊(g＋d2Zsup2/dt2)
＋mswg2＊(g＋d2Zswg2/dt2)            ……式２ａ
Ｆx＝mb2＊d2Xb/dt2＋msup2＊d2Xsup2/dt2＋mswg2＊d2Xswg2/dt2
……式２ｂ
Ｍy＝−mb2＊(Xb2−Xzmp)＋(g＋d2Zb2/dt2)＋mb2＊(Zb2−Zzmp)＊d2Xb2/dt2
−msup2＊(Xsup2−Xzmp)＊(g＋d2Zsup2/dt2)
＋msup2*(Zsup2−Zzmp)＊d2Xsup2/dt2
−mswg2＊(Xswg2−Xzmp)＊(g＋d2Zswg2/dt2)
＋mswg2*(Zswg2−Zzmp)＊(d2Xswg2/dt2)＋J＊d2θby/dt2
……式２ｃ
なお、ロボット全体重心位置には次の関係式が成立する。
ＺGtotal2＝(mb2＊Zb2＋msup2＊Zsup2＋mswg2＊Zswg2)／mtotal  …式２ｄ
ＸGtotal2＝(mb2＊Xb2＋msup2＊Xsup2＋mswg2＊Xswg2)／mtotal  …式２ｅ
この第２動力学モデルでは、脚体２，２の動力学（各質点２ｍ，２ｍの動力学）と上体３の動力学（質点２４ｍ及びフライホイールＦＨの動力学）とが相互に非干渉に構成されると共に、ロボット１全体の動力学は、それらの線形結合で表される。また、さらに、上体３の運動と床反力との関係は、上体３の並進運動（上体並進モード）と床反力との関係、並びに上体３の回転運動（上体回転モード）と床反力との関係に分離される。具体的には、上体質点２４ｍの水平運動によって発生する床反力は、上体３の水平方向並進運動（上体並進モード）によって発生する床反力に対応し、フライホイールの回転運動によって発生する床反力は、上体３の姿勢角の回転運動（上体回転モード）によって発生する床反力に対応する。【０１１９】
尚、ロボット１の腕体の質量は上体質点２４ｍに含まれるものとし、上体質点２４ｍは腕体の質量を含む質量をもつ。本実施形態では、目標歩容における腕体の運動（腕振り運動）は、後述するように、ロボット１の腕振り以外の運動によってロボット１に発生する鉛直軸まわりの慣性力のモーメントを打ち消しつつも、上体３に対する両腕体の全体の重心の相対位置が動かないように行なわれるので、腕体の腕振り運動による（鉛直軸まわり成分を除く）床反力モーメントへの影響と床反力水平成分への影響とは無視する。補足すると、第２動力学モデルの全体質量に対する両脚体２，２の質量（両足平質点の質量の和）の比率は、前記第１動力学モデルの全体質量に対する両脚体２，２の質量（両足平質点の質量の和）の比率よりも大きいものとなっている。【０１２０】
図１０に第３動力学モデル（より正確には、第３動力学モデルのうちの、ロボット１の運動と床反力との関係を表す運動・床反力モデルの構造）を例示する。同図に示す如く、第３動力学モデルは、上体３、各足平２２、各脚体２の膝関節の近傍部分（大腿リンクの膝関節寄りの部分）にそれぞれ対応する質点を有すると共に、上体３に上体質点の回りにイナーシャ（慣性モーメント）Ｉｂをもつモデルである。この第３動力学モデルでは、動力学的方程式は省略するが、ロボット１の運動と床反力との関係は、前記第２動力学モデルと同様に、各質点の並進運動および上体３の姿勢変化運動と、床反力（並進床反力および目標ＺＭＰ回りの床反力モーメント）との関係として記述される。なお、ロボット１の上体３の位置姿勢と、両足平２２の位置姿勢とが決定されると各脚体２の各部の位置姿勢は一義的に定まるので、第３動力学モデルにおいては、上体質点と各足平質点と各膝関節の近傍分の質点との間の位置関係には、所定の制約条件が付加されており、その制約条件の範囲内で、各質点の運動が可能とされている。【０１２１】
前記第１〜第３動力学モデルは、その順番で、動力学的な精度が高いものとなっている。また、本実施形態では、各動力学モデルには、後述するように、床反力水平成分に関する制約条件が付加され、その制約条件が満たされる範囲内で各動力学モデルの質点の運動が可能とされている。【０１２２】
なお、前記フルモデル補正部１００ｃで用いるフルモデルは、例えば図１１に示す如く、ロボット１の各リンクに質点をもつような多質点モデルである。この場合、ロボット１の各リンクは、それに対応する質点の回りにイナーシャをもつようなものであってもよい。【０１２３】
次に、本発明の第１実施形態に関して、歩容生成装置１００の処理の詳細をより具体的に説明する。【０１２４】
本実施形態における歩容生成装置１００は、ロボット１の片方の脚体２が着地してから他方の脚体２が着地するまでの１歩の期間の目標歩容（前記狭義の目標歩容）を単位として、その１歩の期間の目標歩容を順番に生成する。ここで、新たに生成しようとしている目標歩容を「今回歩容」、その次の目標歩容を「次回歩容」、さらにその次の目標歩容を「次次回歩容」、というように呼ぶ。また、「今回歩容」の一つ前に生成した目標歩容を「前回歩容」と呼ぶ。「今回歩容」は、本発明における「所定の期間における目標歩容」に相当するものである。【０１２５】
また、歩容生成装置１００が今回歩容を新たに生成するとき、該歩容生成装置１００には、ロボット１の２歩先までの遊脚側足平２２の着地予定位置姿勢、着地予定時刻の要求値（要求）等が歩容に対する要求パラメータとして入力される（あるいは歩容生成装置１００が記憶装置から要求パラメータを読み込む）。そして、歩容生成装置１００は、これらの要求パラメータを基に、補正目標上体位置姿勢軌道、目標足平位置姿勢軌道、目標ＺＭＰ軌道、目標床反力鉛直成分軌道、目標腕姿勢軌道、補正目標床反力モーメント軌道等を生成する。なお、本実施形態では、要求パラメータには、２歩先までの遊脚側足平２２の着地予定位置姿勢、着地予定時刻の要求値の他、基準上体姿勢に対する要求、上体姿勢に対する相対的な腕姿勢に対するの要求、目標床反力鉛直成分のパターンに対する要求、床の摩擦力（もしくは摩擦係数）に対する要求などを規定するパラメータも含まれる。基準上体姿勢に対する要求は、例えば上体姿勢を鉛直姿勢に維持するというような要求であり、腕姿勢に対する要求は、上体３に対して腕姿勢を所定の姿勢に維持するというような要求である。また、目標床反力鉛直成分のパターンに対する要求は、ロボット１の空中期では、目標床反力鉛直成分を０にし、また、片脚支持期では、目標床反力鉛直成分を台形状のパターンで変化させるというような要求である。また、床の摩擦力に対する要求は、目標床反力鉛直成分と摩擦係数（要求値）との積により定まる摩擦力限界に対して、どの程度の範囲内に目標床反力水平成分を収めるかというような要求である。【０１２６】
以下に歩容生成装置１００の歩容生成処理の詳細を図１２〜図２７を参照しつつ説明する。図１２は、その歩容生成装置１００が実行する歩容生成処理のメインルーチンを示すフローチャート（構造化フローチャート）である。なお、このメインルーチン処理の手順自体は、その一部のサブルーチン処理を除いて、例えば本願出願人による前記ＰＣＴ国際公開公報ＷＯ／０３／０５７４２７／Ａ１（以下、公報文献１という）と同じである。【０１２７】
まずＳ０１０において時刻ｔを０に初期化するなど種々の初期化作業が行なわれる。この処理は、歩容生成装置１００の起動時等に行なわれる。次いで、Ｓ０１２を経てＳ０１４に進み、歩容生成装置１００は、制御周期（図１２のフローチャートの演算処理周期）毎のタイマ割り込みを待つ。制御周期はΔｔである。【０１２８】
次いで、Ｓ０１６に進み、歩容の切り替わり目であるか否かが判断され、歩容の切り替わり目であるときはＳ０１８に進むと共に、切り替わり目でないときはＳ０３０に進む。ここで、上記「歩容の切り替わり目」は、前回歩容の生成が完了し、今回歩容の生成を開始するタイミングを意味し、例えば前回歩容の生成を完了した制御周期の次の制御周期が歩容の切り替わり目になる。【０１２９】
Ｓ０１８に進むときは時刻ｔが０に初期化され、次いでＳ０２０に進み、次回歩容支持脚座標系、次次回歩容支持脚座標系、今回歩容周期および次回歩容周期が読み込まれる。これらの支持脚座標系及び歩容周期は、前記要求パラメータにより定まるものである。すなわち、本実施形態では、歩容生成装置１００にジョイスティック４４等から与えらる要求パラメータは、２歩先までの遊脚足平２２の着地予定位置姿勢（足平２２が着地してから足底を床面にほぼ全面的に接触させるように、滑らさずに回転させた状態での足平位置姿勢）、着地予定時刻の要求値を含んでおり、その１歩目の要求値、２歩目の要求値がそれぞれ、今回歩容、次回歩容に対応するものとして、今回歩容の生成開始時（前記Ｓ０１６の歩容の切り替わり目）以前に歩容生成装置１００に与えられたものである。なお、これらの要求値は今回歩容の生成途中でも変更することは可能である。【０１３０】
そして、上記要求パラメータにおける１歩目の遊脚足平２２（今回歩容での遊脚足平２２）の着地予定位置姿勢の要求値に対応して次回歩容支持脚座標系が定まる。また、２歩目の遊脚足平２２の着地予定位置姿勢の要求値に応じて次々回歩容支持脚座標系が定まる。また、今回歩容周期は、今回歩容の支持脚足平２２の着地予定時刻（要求値）から、１歩目（今回歩容）の遊脚足平２２の着地予定時刻（要求値）までの時間として定まり、次回歩容周期は、１歩目の遊脚足平２２の着地予定時刻（要求値）から２歩目の遊脚足平２２の着地予定時刻（要求値）までの時間として定まる。【０１３１】
このＳ０２０の処理は、前記公報文献１の図１３のＳ０２０の処理と同一であり、本明細書での説明は以上に留める。【０１３２】
次いでＳ０２２に進み、歩容生成装置１００は、今回歩容に続く仮想的な周期的歩容としての定常歩容の歩容パラメータ（定常歩容パラメータ）を決定する。ここで決定する歩容パラメータとしては、定常歩容における各足平２２の目標足平位置姿勢軌道を規定する足平軌道パラメータ、基準とする上体姿勢軌道を規定する基準上体姿勢軌道パラメータ、目標腕姿勢軌道を規定する腕姿勢軌道パラメータ、目標ＺＭＰ軌道を規定するＺＭＰ軌道パラメータ、目標床反力鉛直成分軌道を規定する床反力鉛直成分軌道パラメータと、目標床反力水平成分許容範囲を規定するパラメータとがある。【０１３３】
この明細書で「定常歩容」は、その歩容を繰り返したときに歩容の境界においてロボット１の運動状態（足平位置姿勢、上体位置姿勢等の状態）に不連続が生じないような周期的歩容を意味するものとして使用する。「定常歩容」は、ロボット１を直進させる周期的歩容を含むことはもちろん、ロボット１を旋回させる周期的歩容も含む。この場合、旋回率を零とするときは直進を意味することから、「旋回」には、広義の意味で直進も含まれる。このため、本明細書の実施形態では、「定常歩容」をしばしば「定常旋回歩容」と言うこともある。【０１３４】
定常旋回歩容の詳細は、前記公報文献１や特願２０００−３５２０１１号などにて説明されているので、本明細書での詳細な説明は省略するが、その概要は次の通りである。【０１３５】
周期的歩容である定常旋回歩容は、本実施形態では、ロボット１の２歩分の歩容、すなわち今回歩容に続く第１旋回歩容と該第１旋回歩容に続く第２旋回歩容とからなる歩容を該定常旋回歩容の１周期分の歩容として、その１周期分の歩容を繰り返す歩容である。また、生成する今回歩容が例えばロボット１の走行を行う走行歩容（片脚支持期と空中期とを有する歩容）であるときには、定常旋回歩容の第１旋回歩容及び第２旋回歩容も走行歩容であり、ロボット１の歩行を行う歩行歩容（片脚支持期と両脚支持期とを有する歩容）であるときには、定常旋回歩容の第１旋回歩容及び第２旋回歩容も走行歩容である。つまり、第１旋回歩容及び第２旋回歩容の基本的な歩容形態は今回歩容と同一である。【０１３６】
なお、以降の説明では、特にことわらない限り、生成する歩容として走行歩容を例にとって説明する。【０１３７】
定常旋回歩容は、歩容生成装置１００で今回歩容の終端における発散成分や上体鉛直位置速度、上体姿勢角及びその角速度等のロボット１の運動の状態量を決定するために暫定的に作成されるものであり、歩容生成装置１００からそのまま出力されるものではない。【０１３８】
尚、「発散」とは、ロボット１の上体３の位置が両足平２２，２２の位置からかけ離れた位置にずれてしまうことを意味する。発散成分の値とは、ロボット１の上体３の位置が両足平２２，２２の位置（より具体的には、支持脚側足平２２の接地面に設定されたグローバル座標系（支持脚座標系）の原点）からかけ離れていく具合を表す数値である。例えば、本明細書の実施形態では、前記した各動力学モデルに対して、発散成分は、次式により求められる。【０１３９】
発散成分＝上体質点水平位置＋上体質点水平速度／ω0      …式３
この式３のω0は所定の値である。なお、歩容における発散成分は、式３の上体質点水平位置、上体質点水平速度の代わりに、それぞれ上体水平位置、上体水平速度を用いて発散成分が求められる。【０１４０】
本明細書の実施形態では、目標歩容が前記発散を生じることなく、継続的に生成されるように、発散成分を指標にして歩容（今回歩容）を生成するようにした。すなわち、これから生成しようとする今回歩容の後に続く定常歩容（より正確には定常歩容パラメータ）が前記今回歩容に係わる要求パラメータ等に応じて決定され、定常歩容の初期発散成分を求めてから、今回歩容の終端発散成分を定常歩容の初期発散成分に一致させる（より一般的には、今回歩容を定常歩容に連続させ、もしくは近づける）ように、今回歩容を生成する。【０１４１】
本題に戻り、Ｓ０２２では、図１３に示すサブルーチン処理のフローチャートに従って、定常歩容の歩容パラメータが決定される。すなわち、定常歩容に係る前記足平軌道パラメータ、基準上体姿勢軌道パラメータ、腕軌道パラメータ、ＺＭＰ軌道パラメータ、床反力鉛直成分軌道パラメータ、目標床反力水平成分許容範囲を規定するパラメータがそれぞれＳ１００〜Ｓ１１０の処理で決定される。そして、Ｓ１１２において、定常歩容の初期時刻Tsと、１歩の期間（定常歩容の１周期の時間）Tcycとが再定義される。これらの処理は、前記公報文献１の図１５のフローチャートの処理と同一であるので、ここでの詳細な説明は省略するが、Ｓ１００〜Ｓ１１０で決定される定常歩容のパラメータは、そのそれぞれのパラメータにより規定される軌道が定常歩容の周期性を満たしつつ、前記した要求パラメータなどにより表される歩容に関する要求を満足するように決定されるパラメータである。例えば、前記公報文献１の図１５のフローチャートに関して説明されている如く、定常歩容の足平軌道パラメータは、今回歩容に続く第１旋回歩容の遊脚足平２２の着地予定位置姿勢（前記次回歩容支持脚座標系で見た着地予定位置姿勢）が前記した２歩目の着地予定位置姿勢（要求値）に合致し、且つ、該第２旋回歩容の遊脚足平２２の着地予定位置姿勢（前記次次回歩容支持脚座標系で見た着地予定位置姿勢）が、今回歩容の遊脚足平２２の着地予定位置姿勢（要求値）に合致するように決定される。なお、ＺＭＰ軌道パラメータは、足平軌道パラメータを基に、目標ＺＭＰが支持脚足平２２の接地面のほぼ中央付近に位置し、且つ、定常歩容の全期間にわたって連続的に変化するように決定される。【０１４２】
また、図１３のＳ１１２で再定義する定常歩容の初期時刻Ｔsは、定常歩容の１周期分の歩容を後述するように作成するときの始点の時刻（これは本実施形態では今回歩容の終端の時刻とは相違する）を意味し、第１旋回歩容の空中期（目標床反力鉛直成分が０となる時期）の開始直前の時刻である。また、定常歩容の１歩の期間Ｔcycは、定常歩容の第１旋回歩容と第２旋回歩容との合計時間の期間である。定常歩容は、その周期性によって、任意の時刻Ｔxにおける状態（ロボット１の各部位の位置姿勢やその変化速度の状態）は時刻Ｔx＋Ｔcycにおける状態と同一になる歩容である。定常歩容は、２歩分の歩容を１周期とする周期的な歩容であるので、本明細書では、その１周期の期間（第１旋回歩容と第２旋回歩容）との合計時間を定常歩容の１歩の期間とみなす。【０１４３】
補足すると、Ｓ１００〜Ｓ１１０の処理で決定される定常歩容のパラメータは、定常歩容パラメータを構成する全てのパラメータではない。本実施形態では、定常歩容を規定する歩容パラメータ（定常歩容パラメータ）は、Ｓ０２２で決定するパラメータの他に、定常歩容の１周期の期間の始端（該期間の開始時刻）あるいは終端（該期間の終了時刻）における上体３の位置および速度、並びに上体３の姿勢角およびその角速度と、後述の上体傾斜復元モーメントＺＭＰ換算値のピーク値とが含まれる。これらのパラメータのうち、上体３の水平位置および水平速度、上体３の姿勢角の角速度、上体傾斜復元モーメントＺＭＰ換算値のピーク値は、後述のＳ０２４の処理で探索的に決定される。定常歩容パラメータは、それを構成する各パラメータの値と、前記した各動力学モデルとを用いて定常歩容を一義的に生成することができる歩容パラメータである。【０１４４】
次いで、Ｓ０２４に進み、定常歩容の初期状態が算出される。ここで算出される初期状態は、定常歩容の初期上体水平位置速度（水平方向での初期上体位置及び初期上体速度）、初期上体鉛直位置速度（鉛直方向での初期上体位置及び初期上体速度）、初期発散成分、初期上体姿勢角およびその角速度である。この初期状態の算出は、図１４のサブルーチン処理のフローチャートに従って、前記第１〜第３動力学モデルを順次使用する段階的な探索処理により行なわれる。【０１４５】
図１４に示すとおり、Ｓ２００−１、Ｓ２００−２、……、Ｓ２００−ｎ（第１実施形態ではｎ＝３）、Ｓ２０４、Ｓ２２２、Ｓ２２４の処理が順次実行され、最終的に第ｎモデル（第ｎ動力学モデル）上で、定常歩容の境界条件（定常歩容の任意の時刻での状態と、１周期後の時刻での状態とが一致もしくはほぼ一致するという条件）を満たすように、定常歩容の初期状態が決定される。なお、図１４の処理で最終的に決定する定常歩容の初期状態は、今回歩容の終端の時刻（定常歩容の本来の初期時刻０）での状態であるが、本実施形態では、Ｓ２００−１〜Ｓ２００−ｎの処理が終了するまでは、図１３のＳ１１２で設定した初期時刻Tsでの状態を定常歩容の初期状態とする。【０１４６】
補足すると、図１４中の「第１モデル」、「第２モデル」、……、「第ｎモデル」は、第１動力学モデル、第２動力学モデル、……、第ｎ動力学モデルのことである。以降、この明細書では、一般的に第ｋ動力学モデル（ｋ＝１、２、……、ｎ）を単に第ｋモデルということがある。第１実施形態では、ｎ＝３である。また、図１４のフローチャートの処理中で求める上体傾斜復元モーメントＺＭＰ換算値ピーク値ZMPrecpeekは、ロボット１の片脚支持期（より詳しくは、片脚支持期の開始直後から終了直前までの時期。以下、上体傾斜角復元期間ということがある）で上体姿勢を基準上体姿勢に近づけるために必要な床反力モーメントのＺＭＰ換算値ZMPrec（基準となる目標ＺＭＰ（Ｓ０２２で決定したＺＭＰ軌道パラメータにより規定される目標ＺＭＰ）からのずれ量）のピーク値を示すものであり、その例を図示したものが図２５である。ZMPrecが同図示の如く台形状のパターンとされ、そのピーク値（台形の高さ）がZMPrecpeekである。【０１４７】
図１４の処理の概要を説明すると、まず、定常歩容の境界条件を第１動力学モデル上で満たすように（前記Ｓ０２２で決定したパラメータを含む定常歩容パラメータと第１動力学モデルとを用いて生成される定常歩容がその境界条件を満たすように）定常歩容の初期状態（時刻Tsでの状態）が探索的に決定される。そして、この第１動力学モデルを用いて決定した定常歩容の初期状態を、新たに探索初期値として用い、定常歩容の境界条件を第２動力学モデル上で満たすように（前記Ｓ０２２で決定したパラメータを含む定常歩容パラメータと第２動力学モデルとを用いて生成される定常歩容がその境界条件を満たすように）定常歩容の初期状態時刻（Tsでの状態）が改めて探索的に決定される。さらに、この第２動力学モデルを用いて決定した定常歩容の初期状態を、探索初期値として用い、定常歩容の境界条件を第３動力学モデル上で満たすように（前記Ｓ０２２で決定したパラメータを含む定常歩容パラメータと第３動力学モデルとを用いて生成される定常歩容がその境界条件を満たすように）定常歩容の初期状態（Tsでの状態）が改めて探索的に決定される。より一般化して言えば、動力学モデルの個数をｎとしたとき、第ｍ−１動力学モデル（ｍ：２以上、ｎ以下の整数）を用いて決定した定常歩容の初期状態を、探索初期値として用い、定常歩容の境界条件を第ｍ動力学モデル上で満たすように（前記Ｓ０２２で決定したパラメータを含む定常歩容パラメータと第ｍ動力学モデルとを用いて生成される定常歩容がその境界条件を満たすように）定常歩容の初期状態（Tsでの状態）を探索的に決定する、という処理を繰り返す。そして、最終的に、第ｎ動力学モデルを用いて決定した定常歩容の初期状態（時刻０での状態）が、求めるべき初期状態として得られる（該初期状態をパラメータとして持つ定常歩容パラメータが決定される）。【０１４８】
Ｓ２００−１の処理は、より詳しくは、図１５のフローチャートに示す如く実行される。すなわち、まず、Ｓ２５０において、定常旋回歩容パラメータを基に足平位置姿勢、上体姿勢角θbs1および腕姿勢の初期状態（定常旋回歩容の初期時刻Tsでの状態）が決定される。なお、これらの初期状態は、第１旋回歩容の支持脚座標系（前記次回歩容支持脚座標系）で見た状態である。この処理では、足平位置姿勢の初期状態は、前記Ｓ０２２で決定した足平軌道パラメータを基に有限時間整定フィルタを用いて算出される足平位置姿勢軌道のうちの時刻Tsでの各足平２２の位置姿勢に決定される。該有限時間整定フィルタは、前記公報文献１等にて説明されているので、ここでの説明は省略する。また、上体姿勢角θbs1の初期状態は、Ｓ０２２で決定した基準上体姿勢軌道パラメータから定まる時刻Tsでの基準上体姿勢角と同一に決定され、腕姿勢の初期状態は、Ｓ０２２で決定した腕姿勢軌道パラメータにより定まる時刻Tsでの状態と同一に決定される。【０１４９】
次いで、Ｓ２５２において、第１モデル（第１動力学モデル）上での初期（時刻Ｔs）上体水平位置、初期上体水平速度、初期上体姿勢角速度、および上体傾斜復元モーメントＺＭＰ換算値ピーク値を探索対象（この探索対象は前記第２発明における修正対象パラメータに相当する）として、これらの探索対象の初期状態の候補（Xs1，Vx1，ωbs1，ZMPrecpeek1）が仮決めされる（定常歩容パラメータのうちの探索対象のパラメータの候補値の初期値が決定される）。この場合、その仮決めの候補値は、基本的には任意でよいが、例えば、前回歩容の生成時に求めた定常歩容の初期状態を基に決定してもよい。この仮決めにより、該探索対象を含む定常歩容パラメータの全体が仮決めされることとなる。なお、これらの仮決めされる値は、第１旋回歩容の支持脚座標系（前記次回歩容支持脚座標系）で見た値である。【０１５０】
次いで、Ｓ２５６〜Ｓ２６８のループ処理が実行される。その処理を概略的に説明すれば、前記の如く仮決めした探索対象を含む定常歩容パラメータと第１動力学モデルとを用いて定常歩容の終端（時刻Ｔs＋Ｔcyc）までの歩容を生成する。そして、その生成した定常歩容が境界条件（初期と終端での状態（本実施形態では上体水平位置、上体水平速度、上体姿勢角、上体姿勢角速度）がほぼ一致すること）を満たしているか否かを判断し、満たしていない場合には、探索対象の値を変更する。これを繰り返すことで、最終的に第１モデル上で定常歩容の境界条件を満たすことができる該定常歩容の初期状態が決定される。【０１５１】
Ｓ２５６〜Ｓ２６８の処理をより具体的に説明すると、Ｓ２５６において、第１モデル上での定常歩容の初期（時刻Ts）の上体鉛直位置および上体鉛直速度（Zs1，Vzs1）が決定される。この場合、第１モデル上でのロボット１の全体重心の鉛直方向の慣性力と重力との合力が目標床反力鉛直成分に釣り合い、且つ、全体重心の鉛直位置が定常歩容の境界条件を満たすように決定される。この処理は、前記公報文献１の図２０のＳ２０６の処理と同様に行なわれる。但し、ここで使用する動力学モデルは、本実施形態では前記第１モデルであり、この動力学モデルのみが公報文献１のものと相違している。なお、（Zs1，Vzs1）は、前述の如く決定もしくは仮決めされたXs1，Vxs1，θbs1，ωs1に依存する。【０１５２】
次いで、Ｓ２５８において、現在の探索候補の値と、上体３の鉛直位置および鉛直速度と、ZMPrecpeek1とを含む定常歩容パラメータを基に、第１動力学モデルを用いて定常歩容としての第１モデル歩容が時刻Ts＋Tcyc（定常歩容の終端）まで生成される。この処理は、図１７のフローチャートで示すサブルーチン処理により実行され、さらに、この図１７のＳ３０４の処理は、図１８のフローチャートで示すサブルーチン処理により実行される。さらに、図１８のＳ４１２の処理は、図１９のフローチャートで示すサブルーチン処理により実行される。これらの処理については後述する。【０１５３】
次いで、Ｓ２６０において、Ｓ２５８で生成した歩容（第１モデル歩容）の終端の上体水平位置、上体水平速度、上体姿勢角およびその角速度を、該１モデル歩容の次の１歩の支持脚座標系（第１モデル歩容の第２旋回歩容に続く第１旋回歩容の支持脚座標系）から見た値に変換し、その値を(Xe1，Vxe1，θbe1，ωbe1）とする。【０１５４】
そして、Ｓ２６２において、現在の(Xs1，Vxs1，θbs1，ωbs1）の値と、(Xe1，Vxe1，θbe1，ωbe1）の値との差を第１モデル歩容（定常歩容）の境界条件誤差（errx，errv，errθ，errω）として求める。定常歩容の境界条件を満足するためには、境界条件誤差はほぼ０でなければならない。この境界条件誤差は、Ｓ２５８において作成した定常旋回歩容の、境界条件からのずれ度合いを表すものである。【０１５５】
次いで、Ｓ２６４において、errx，errv，errθ，errωがいずれも十分に小さい（０近傍の）所定の許容範囲内にあるか否かを判断し、その判断結果がＹＥＳである場合には、Ｓ２５６〜Ｓ２６８のループ処理を終了する（Ｓ２００−１の処理が終了する）。この場合、現在の定常歩容パラメータが第１モデル上で境界条件を満たし得る定常歩容パラメータとして得られる。【０１５６】
一方、Ｓ２６４の判断結果がＮＯである場合には、現在の探索対象（Xs1，Vx1，ωbs1，ZMPrecpeek1）の値の近辺に、それぞれのパラメータの値を所定の微小量ΔXs，ΔVx，Δωbs，ΔZMPrecpeekだけ変化させた複数（本実施形態では４個）の探索対象の候補を決めて、それぞれの探索対象の候補を含む定常歩容パラメータ（現在の定常歩容パラメータの探索対象を新たに決めた各候補に修正した定常歩容パラメータ）を基に、Ｓ２５８〜Ｓ２６２と同じ処理を実行して、それぞれの探索対象の候補に対応する境界条件誤差を求める。【０１５７】
次いで、Ｓ２６８において、現在の（Xs1，Vx1，ωbs1，ZMPrecpeek1）およびその近辺の探索対象の候補のそれぞれに対応する境界条件誤差を基に、最急降下法やシンプレックス法などの探索手法によって、探索対象（Xs1，Vx1，ωbs1，ZMPrecpeek1）の新たな候補を決定する。そして、Ｓ２５６からの処理が再び繰り返される。【０１５８】
以上のようにして、（Xs1，Vx1，ωbs1，ZMPrecpeek1）を探索対象として、定常歩容の境界条件を満たす定常歩容パラメータが探索的に決定される。【０１５９】
なお、以上説明したＳ２００−１の処理は、第２発明における第１定常歩容パラメータ決定手段を構成するものである。そして、この処理で、最終的に探索された（Xs1，Vx1，ωbs1，ZMPrecpeek1）を含む歩容パラメータが第２発明における第１定常歩容パラメータに相当するものである。【０１６０】
補足すると、図１５の処理の基本的な考え方（手法）は、前記公報文献１の図２０の処理と同様である。但し、本明細書の実施形態では、上記探索対象として、上体姿勢角速度と上体傾斜復元モーメントＺＭＰ換算値ピーク値とが含まれ、この点は、前記公報文献１の図２０の処理と相違している。また、後述するＳ２５８の処理の細部の処理（サブルーチン処理）の一部も前記公報文献１のものと相違している。【０１６１】
また、図１４のＳ２００−２、……、Ｓ２００−ｎの処理は、いずれも図１６のフローチャートに示す如く実行される。この処理は、Ｓ１２０２で設定する探索対象の初期値と、Ｓ１２０８およびＳ１２１６で用いる動力学モデルとが図１５の処理と相違し、これ以外は、図１５の処理と同一である。なお、図１６では、「ｎ」は、２以上の整数を一般的に表しており、本実施形態では、２又は３である。すなわち、Ｓ２００−２の処理は、図１６の「ｎ」を「２」とした処理であり、Ｓ２００−３の処理は、図１６の「ｎ」を「３」とした処理である。【０１６２】
Ｓ１２０２では、第ｎモデル（第ｎ動力学モデル）上での初期（時刻Ｔs）上体水平位置姿勢、初期上体水平速度、初期上体姿勢角速度、上体傾斜復元モーメントＺＭＰ換算値ピーク値からなる探索対象の初期値（初期候補値）として、第ｍモデル（ｍ＝ｎ−１）を用いて先に求めた探索対象の値（Ｓ２００−ｍで最終的に求めた値）を設定する。そして、Ｓ１２０８およびＳ１２１６の処理では、第ｎモデルを用いて定常歩容が作成される。【０１６３】
なお、図１６の処理のうちのＳ１２０８の処理は、図１５のＳ２５８と同様、図１７のフローチャートで示すサブルーチン処理により実行され、さらに、この図１７のＳ３０４の処理は、図１８のフローチャートで示すサブルーチン処理により実行される。さらに、図１８のＳ４１２の処理は、図１９のフローチャートで示すサブルーチン処理により実行される。以下、図１７〜図１９の処理を説明する。なお、これらの図１７〜図１９の処理の説明では、「ｎ」は、１，２，３のいずれかの整数であるとする。ｎ＝１の場合は、図１５のＳ２５８の処理に対応しており、ｎ＝２または３の場合は、図１６のＳ１２０２の処理に対応している。【０１６４】
図１７の処理は、図示の通り、図１５または図１６の処理で仮決めもしくは決定した（Xsn，Vxsn，θbsn，ωbsn，Zsn，Ｖzsn）を定常歩容における上体３の運動の初期状態として（Ｓ３００）、その初期（時刻Ｔs)状態から、時刻Ｔs＋Ｔcycまで（終端状態まで）の定常歩容の瞬時値を時系列的に実際に作成する（Ｓ３０２〜Ｓ３０６）処理である。なお、図１７の「ｋ」は、作成する定常歩容の瞬時値の時系列の時刻である。【０１６５】
この図１７のＳ３０４のサブルーチン処理（第ｎモデルを使用した定常歩容の瞬時値を決定するサブルーチン処理）である図１８の処理では、Ｓ４００〜Ｓ４１０の処理によって、Ｓ０２２で求めた定常歩容のパラメータを基に、目標床反力鉛直成分、目標ＺＭＰ、目標両足平位置姿勢、基準上体姿勢、目標腕姿勢、目標上体鉛直位置、床反力水平成分許容範囲の瞬時値が求められる。【０１６６】
さらに、Ｓ４１２の処理によって、第nモデル（ｎは、Ｓ２００−１の処理の中では「１」、Ｓ２００−２の処理の中では「２」、……、Ｓ２００−ｎの処理の中では「ｎ」。このことは、後述の図１９においても同じ）を用いて、図中に記載された条件を満たすように上体水平加速度および上体姿勢角加速度の瞬時値が決定される。そして、Ｓ４１４の処理によって、上体水平加速度および上体姿勢角加速度をそれぞれ２階積分して、上体水平位置および上体姿勢角の瞬時値が決定される。【０１６７】
補足すると、図１８の処理のうち、Ｓ４１２以外の処理は、前記公報文献１の図２２ののＳ４００〜Ｓ４１０、Ｓ４１４の処理と同じである。従って、Ｓ４１２の処理以外の図１８の処理については詳細な説明を省略する。【０１６８】
図１８のＳ４１２のサブルーチン処理である図１９の処理では、まず、定常歩容の上体傾斜角復元期間を規定する時刻Tm、Ts2、Tm2を決定する。これらの時刻は、それぞれ、図２５に示す如く、前記上体傾斜復元モーメントZMP換算値ZMPrecを発生させる期間を規定するものである。すなわち、定常歩容の初期時刻Tsの後の最初の片脚支持期の開始直後の時刻をTm、該片脚支持期の終了直前の時刻をTs2、次の片脚支持期の開始直後の時刻をTm2として決定する。そして、期間［Tm，Ts2］と、期間［Tm2，Te］を、それぞれZMPrecを発生させる期間（以下、上体傾斜角復元期間という）とする。これは、前記公報文献１の図２３のＳ５００の処理と同じである。【０１６９】
次いで、Ｓ５０２において、定常歩容の瞬時値を作成しようとしている現在時刻ｋ（作成中の定常歩容内での時刻）が上体傾斜角復元期間にあるか否かが判断される。そして、現在時刻ｋが前記上体傾斜角復元期間内の時刻でないとき、換言すれば、現在時刻ｋが、片脚支持期の終了直前から次の片脚支持期の開始直後までの期間（目標床反力鉛直成分が０であるかもしくは０に近い期間）にあるときには、Ｓ５０４〜Ｓ５１６の処理によって、第ｎモデル上で、目標ＺＭＰを満足し、且つ、該第ｎモデル上でのロボット１の全体重心の水平加速度による慣性力に釣り合う床反力水平成分が時刻ｋの床反力水平成分許容範囲の瞬時値内に収まるように、上体並進モードの上体水平加速度αと、上体回転モードの上体角加速度β（上体姿勢角の角加速度）とが決定される。これらのＳ５０４〜Ｓ５１６の処理は、使用する動力学モデル以外は、前記公報文献１の図１９のＳ５０４〜Ｓ５１６の処理と同じである（ｎ＝２のときは、動力学モデルも前記公報文献１のものと同じ）。【０１７０】
ただし、本実施形態では、第１動力学モデルは、上体回転モードを考慮していないので、Ｓ２００−１の処理の中で、図１９のＳ５０４〜Ｓ５１６の処理を行うときには、床反力水平成分許容範囲は、前記図１８のＳ４１０で決定したものによらずに、常に、強制的に無限大の範囲とするか、もしくは、床反力水平成分が確実に許容範囲内に収まるように十分に大きい範囲に定める。この場合、Ｓ５１６の処理によって、α＝αtmp、β＝０となる。あるいは、Ｓ２００−１の処理の中での図１８のＳ４１０において、第１モデル用の床反力水平成分許容範囲を上記のように決定してもよい。【０１７１】
なお、第１実施形態において第２モデルあるいは第３モデルを使用するＳ２００−２またはＳ２００−３の中で設定する床反力水平成分許容範囲は基本的には同じでよいが、異なる範囲に設定してもよい。この場合、第３モデルは第２モデルよりも動力学的精度が高いので、例えばＳ２００−３の中で設定する床反力水平成分許容範囲を、Ｓ２００−２の中で設定する床反力水平成分許容範囲よりも、床面の実際の摩擦力の範囲により近いものに設定してもよい。【０１７２】
また、現在時刻ｋ（作成中の定常歩容内での時刻）が前記上体傾斜角復元期間内の時刻であるときには、Ｓ５１８〜Ｓ５２６の処理によって、上体角加速度βは、第ｎ動力学モデル上で、上体傾斜復元モーメントＺＭＰ換算値パターンの瞬時値（これは、前記仮決定された上体傾斜復元モーメントＺＭＰ換算値ピーク値と現在時刻ｋとに応じて定まる。図２５を参照）に対応する床反力モーメントを目標ＺＭＰまわりに発生するように決定される。また、上体水平加速度は、第ｎ動力学モデル上で、上体並進モードによって発生する目標ＺＭＰまわりの床反力モーメントが０になるための上体水平加速度と、上体角加速度βによる目標ＺＭＰまわりの床反力モーメントと同等の床反力モーメントを発生する上体水平加速度との差として求められる。これにより、上体傾斜角復元期間では、上体姿勢を基準上体姿勢に向かって復元させつつ、目標ＺＭＰを満足するように上体角加速度βおよび上体水平加速度αが決定される。【０１７３】
なお、本実施形態では、第１モデルは、上体回転モードを考慮していないので、Ｓ２００−１の処理の中で、図１９のＳ５１８〜Ｓ５２６の処理を行うときには、常にβ＝０とされる。【０１７４】
補足すると、本実施形態の図１９のＳ５１８〜Ｓ５２６の処理は、使用する動力学モデル以外は、前記公報文献１の図２３のＳ５２０〜Ｓ５２８の処理と同じである（ｎ＝２のときは、動力学モデルも前記公報文献１のものと同じ）。【０１７５】
また、本願発明との関連性について補足すると、図１４のＳ２００−２〜２００−ｎの処理は、第２発明における定常歩用パラメータ修正手段を構成するものである。そして、図１４のＳ２００−２〜２００−ｎのそれぞれの処理の中で実行される図１６のＳ１２１２で求められる境界条件誤差は第２発明におけるずれ度合いに相当するものである。さらに同図１６のＳ１２１６で決定される、現在の探索対象（Xsn，Vxn，ωbsn，ZMPrecpeekn）の値の近辺の複数の候補を探索対象（修正対象パラメータ）として持つ歩容パラメータは、第１８発明における補助定常歩容パラメータに相当し、それらの補助定常歩容パラメータにそれぞれ対応する境界条件誤差は、第１８発明における補助ずれ度合いに相当するものである。なお、探索対象（Xsn，Vxn，ωbsn，ZMPrecpeekn）は、第２発明におえる修正対象パラメータに相当するものであることはもちろんであるが、（Zsn，Vzsn）も、第２発明における修正対象パラメータである。これは、（Zsn，Vzsn）は、前述の如く決定もしくは仮決めされたXsn，Vxsn，θbsn，ωsnに依存するので、Xsn，Vxsn，ωsnを修正すると、（Zsn，Vzsn）も従属的に修正されるからである。このように、直接的な探索対象に従属して修正されるパラメータも第２発明における修正対象パラメータに含まれる。【０１７６】
以上説明した図１４の処理において、本実施形態では、第１動力学モデル、第２動力学モデル、第３動力学モデルは、この順に動力学的な精度が高いものとなっている。このため、図１４の処理によって、定常歩容の境界条件を満足するような定常歩容を上体位置姿勢の発散が生じたりすることなく、しかも、動力学的な精度も十分に満たしつつ効率よく短時間で作成して、定常歩容の初期状態を適切に求めることができる。【０１７７】
また、第ｎ動力学モデル（ｎ＝１，２，３）は、前記した如く構成されているので、前記図１５または図１６の処理の如く、探索処理を行なうとき、定常歩容パラメータの前記探索対象の値と、前記境界条件誤差との間の線形性（探索対象の値の変化に対する境界条件誤差の変化のリニアリティ）は、ｎの値が小さいほど、高いものとなっている。このため、第１動力学モデルを使用する前記図１５の探索処理では、迅速に境界条件を満足する探索対象の値を見出すことができる。そして、第２動力学モデルを使用した探索処理では、第１動力学モデルを使用した探索処理よりも線形性は低下すものの、第１動力学モデルを使用した探索処理で、近似的に適切な定常歩容パラメータの探索対象が得られているので、それを初期候補として、探索処理を行なうことで、第２動力学モデル上で適切な（境界条件を満たす）定常歩容パラメータを、探索対象の値の発散を生じたりすることなく、迅速に決定できる。第３動力学モデルを使用した探索処理においても同様である。【０１７８】
また、第ｎ動力学モデル（ｎ＝１，２，３）は、前記した如く構成されているので、ｎの値が小さいほど、定常歩容を実際に生成するときの演算時間が、短いものとなる。この場合、ｎの値が大きいほど、定常歩容を実際に生成するときの演算時間は長くなるものの、探索対象の初期候補を前記したように適切に設定できることから、境界条件を満たす探索対象を迅速に見出だすことができる。従って、結果的に、最終的な定常歩容パラメータを効率よく短時間で決定できる。【０１７９】
なお、以降の説明では、定常歩容の初期状態は、本来の初期時刻０での状態を意味するものとする。【０１８０】
図１４の説明に戻って、上記の如くＳ２００−１〜Ｓ２００−ｎの処理を実行して、第ｎ動力学モデル（ｎ＝３）上で境界条件を満たす定常歩容を作成した後、Ｓ２０４において、その第ｎモデル定常旋回歩容を基に、本来の初期時刻０における定常歩容の上体３の運動状態である第ｎモデル初期上体水平位置X0n、初期上体水平速度Vx0n、初期上体姿勢角θb0nおよびその角速度ωb0n、並びに初期上体鉛直位置Z0n、初期上体鉛直速度Vz0nとが求められる。さらに、Ｓ２２２において、前記した初期発散成分ｑの定義式に従って、第ｎモデル定常旋回歩容の、本来の初期時刻０における発散成分である第ｎモデル定常旋回初期発散成分q[0]が求められる。Ｓ２０４およびＳ２２２で求められる値は、今回歩容に続く定常旋回歩容の第１旋回歩容の支持脚座標系で見た値である。そして、Ｓ２２４において、第ｎモデル定常旋回初期発散成分ｑ[0]を今回歩容の支持脚座標系から見た値であるｑ''と、第ｎモデル初期上体鉛直位置・速度を今回歩容の支持脚座標系から見た値である（Z0''，Vz0''）を求める。【０１８１】
以上が、図１４の処理の詳細である。【０１８２】
図１２の説明に戻って、以上説明したようにＳ０２４の処理を実行した後、Ｓ０２６において、今回歩容の歩容パラメータが決定（一部は仮決定）される。この処理は、図２０のフローチャートに従って実行される。ここで決定する歩容パラメータとしては、今回歩容における足平位置姿勢軌道（各足平２２の位置姿勢軌道）、基準上体姿勢軌道、腕姿勢軌道、床反力鉛直成分軌道、床反力水平成分許容範囲、ＺＭＰ軌道をそれぞれ規定するパラメータがあり、これらの各パラメータがＳ６００〜Ｓ６１０の処理で決定される。そして、Ｓ６１２において、今回歩容における上体傾斜角復元期間［Ta，Ｔｂ]が設定される。これらの処理は、前記公報文献１の図３３のフローチャートの処理と同一であるので、ここでの詳細な説明は省略するが、上記各軌道が前回歩容の終端の状態（＝今回歩容の初期状態）から、今回歩容に関する前記した要求を満たしつつ、定常歩容につながるように各軌道を規定するパラメータが決定される。例えば、今回歩容の遊脚足平２２に関する足平軌道パラメータは、今回歩容の遊脚足平２２の着地予定位置姿勢および時刻がそれらの要求値を満たしつつ、今回歩容の終端において該遊脚足平２２の位置姿勢が定常歩容の初期（今回歩容の終端の時刻）で一致するように決定される。【０１８３】
補足すると、Ｓ６１０で決定されるＺＭＰ軌道パラメータは仮値であり、その仮値により規定されるＺＭＰ軌道の例（Ｘ軸方向の軌道の例）が図２７の最上段に示されている。該ＺＭＰ軌道パラメータは、今回歩容の片脚支持期において、支持脚足平２２の接地面のほぼ中央付近に目標ＺＭＰ位置し、且つ、片脚支持期に続く空中期では、目標ＺＭＰが今回歩容の終端において定常歩容の初期のＺＭＰまで連続的に変化するように決定される。また、図２０のＳ６１２で設定する上体傾斜角復元期間は、図２７の時刻Ｔａから時刻Ｔｂまでの期間であり、今回歩容の片脚支持期の開始直後から終了直前までの期間である。【０１８４】
補足すると、Ｓ６００〜Ｓ６１０の処理で決定される今回歩容のパラメータは、今回歩容パラメータを構成する全てのパラメータではない。本実施形態では、今回歩容を規定する歩容パラメータ（今回歩容パラメータ）は、Ｓ０２２で決定するパラメータの他に、ＺＭＰ軌道パラメータを修正するためのＺＭＰ修正量（ＺＭＰ修正パラメータ）と、上体傾斜復元モーメントＺＭＰ換算値のピーク値（この場合２種類のピーク値）とが含まれる。これらのパラメータは、以下に説明するＳ０２８の処理の中で探索的に決定される。【０１８５】
次いで、図１２のＳ０２８に進んで、今回歩容の歩容パラメータ（ＺＭＰ軌道パラメータ）が修正される（最終的な今回歩容パラメータが決定される）。この処理では、今回歩容の終端における発散成分がＳ０２４で決定した定常旋回歩容の初期発散成分ｑ''に一致するように（より詳しくは上体位置姿勢軌道を定常歩容に連続させ、もしくは近づけるように）、今回歩容の歩容パラメータが修正されて、最終的な今回歩容パラメータが決定される（より詳しくは、ＺＭＰ修正パラメータと上体傾斜復元モーメントＺＭＰ換算値の２種類のピーク値とが決定される）。本実施形態では、上記の如く、今回歩容の終端における発散成分が定常旋回歩容の初期発散成分ｑ''に一致する（もしくはほぼ一致する）ことが今回歩容の終端における境界条件である。【０１８６】
この処理は、図２１のフローチャートで示すサブルーチン処理に従って、前記第１〜第３動力学モデルを順次使用する段階的な探索処理により行われる。【０１８７】
図２１に示すとおり、Ｓ７００−１、Ｓ７００−２、……、Ｓ７００−ｎ（第１実施形態ではｎ＝３）の処理が順次実行され、最終的に第ｎモデル（第ｎ動力学モデル）上で、今回歩容の終端発散成分が定常歩容の初期発散成分に一致もしくはほぼ一致するように（今回歩容の終端での境界条件を満足するように）、ＺＭＰ修正パラメータａと、上体傾斜復元モーメントＺＭＰ換算値の第１ピーク値ZMPrecpeekaおよび第２ピーク値ZMPrecpeekbとが決定される。ここで、図２１のフローチャートの処理中で求める上体傾斜復元モーメントＺＭＰ換算値の第１ピーク値ZMPrecpeekaおよび第２ピーク値ZMPrecpeekbは、今回歩容の上体傾斜角復元期間［Ta，Tb］で上体姿勢を基準上体姿勢に近づけるために必要な床反力モーメントのＺＭＰ換算値のパターンの２つのピーク値を示すものであり、その例を図示したものが図２６である。定常歩容の場合の上体傾斜復元モーメントＺＭＰ換算値のピーク値は１つであったが、今回歩容の終端における上体姿勢角およびその角速度をそれぞれ定常歩容の初期上体姿勢角およびその角速度に一致させるために、本実施形態では、上体傾斜復元モーメントＺＭＰ換算値の調整可能な２つのパラメータとして、第１ピーク値ZMPrecpeekaおよび第２ピーク値ZMPrecpeekbが用いられる。本実施形態では、図２６に示す如く、今回歩容における上体傾斜復元モーメントＺＭＰ換算値は、片脚支持期の前半の台形状のパターンと、後半側の台形状のパターンとを合成した形のパターンとされ、その前半側の台形状のパターンのピーク値が第１ピーク値ZMPrecpeeka、後半側の台形状のパターンのピーク値が第２ピーク値ZMPrecpeekbである。【０１８８】
また、図２１のフローチャートの処理中で求めるＺＭＰ修正パラメータａは、今回歩容を定常歩容につなげる（今回歩容の終端の発散成分を定常歩容の初期発散成分ｑ''にほぼ一致させる）ための目標ＺＭＰの修正量を規定するパラメータであり、その例を図示したものが、図２７の中段の図である。図示の如く、ＺＭＰ修正量は、片脚支持期の開始直後から終了直前まで発生させる台形状のパターンとされ、そのピーク値ａがＺＭＰ修正量のパターンを規定するＺＭＰ修正パラメータとして用いられる。【０１８９】
図２１の処理の概要を説明すると、まず、第１動力学モデル上で今回歩容を定常歩容につながらせるように（今回歩容の終端発散成分を定常歩容の初期発散成分に一致もしくはほぼ一致させるように）、換言すれば、Ｓ０２８で決定したパラメータを含む今回歩容パラメータと第１動力学モデルとを用いて生成される今回歩容がその終端の境界条件を満たすように、探索対象としてのＺＭＰ修正パラメータａと、上体傾斜復元モーメントＺＭＰ換算値の第１ピーク値ZMPrecpeekaおよび第２ピーク値ZMPrecpeekbとが探索的に決定される。そして、この第１動力学モデルを用いて決定したａ、ZMPrecpeekaおよびZMPrecpeekbを新たに探索初期値として用い、第２動力学モデル上で今回歩容を定常歩容につながらせるように（今回歩容の終端の境界条件を満たすように）ａ、ZMPrecpeekaおよびZMPrecpeekbが改めて探索的に決定される。さらに、この第２動力学モデルを用いて決定したａ、ZMPrecpeekaおよびZMPrecpeekbを新たに探索初期値として用い、第３動力学モデル上で今回歩容を定常歩容につながらせるように（今回歩容の終端の境界条件を満たすように）ａ、ZMPrecpeekaおよびZMPrecpeekbが改めて探索的に決定される。より一般化して言えば、動力学モデルの個数をｎとしたとき、第ｍ−１動力学モデル（ｍ：２以上、ｎ以下の整数）を用いて決定したａ、ZMPrecpeekaおよびZMPrecpeekbを探索初期値として用い、第ｍ動力学モデル上で今回歩容を定常歩容につながらせるようにａ、ZMPrecpeekaおよびZMPrecpeekbを改めて探索的に決定する、という処理を繰り返す。そして、最終的に、第ｎ動力学モデルを用いて決定したａ、ZMPrecpeekaおよびZMPrecpeekbが求めるべき歩容パラメータ（今回歩容の歩容パラメータ）の修正値として得られる。【０１９０】
Ｓ７００−１の処理は、より詳しくは、図２２のフローチャートに示す如く実行される。すなわち、まず、Ｓ７５０において、探索対象であるａ、ZMPrecpeekaおよびZMPrecpeekbの第１モデル（第１動力学モデル）上での値の初期候補が仮決定される。この場合、その初期候補は、基本的には、任意でよいが、例えば前回歩容の作成時に最終的に決定したａ、ZMPrecpeekaおよびZMPrecpeekbの値などを基に決定してもよい。【０１９１】
次いで、Ｓ７５４〜Ｓ７６６のループ処理が実行される。その処理を概略的に説明すれば、まず、Ｓ７５４において、探索対象であるａ、ZMPrecpeekaおよびZMPrecpeekbの現在値と第１モデルとを用いて今回歩容（仮今回歩容）が算出される。より詳しくは、ＺＭＰ修正パラメータａの現在値を基に修正したＺＭＰ軌道パラメータと、ZMPrecpeekaおよびZMPrecpeekbの現在値と、Ｓ０２６で決定したＺＭＰ軌道パラメータ以外のパラメータとから構成される今回歩容パラメータと、第１モデルとを用いて仮今回歩容が算出される。なお、Ｓ７５４のより具体的な処理については後述する。【０１９２】
そして、Ｓ７５６〜Ｓ７６６において、Ｓ７５４で算出した仮今回歩容の終端（今回歩容の遊脚足平の着地予定時刻）での発散成分と定常歩容の初期発散成分ｑ''（前記Ｓ０２４で第ｎモデルを用いて最終的に算出したもの）との差、仮今回歩容の終端での上体姿勢角と定常歩容の初期上体姿勢角（前記Ｓ０２４で第ｎモデルを用いて最終的に算出したもの）との差、並びに、仮今回歩容の終端での上体姿勢角の角速度と定常歩容の初期上体姿勢角速度（前記Ｓ０２４で第ｎモデルを用いて最終的に算出したもの）との差が求められる。そして、これらの差の値がいずれも許容範囲内にあるか否か（０に近いか否か）の条件を満たしているか判断し、満たしていない場合には、探索対象の値を変更する。これを繰り返すことで、最終的に第１モデル上で仮今回歩容を定常歩容につながらせることが可能な歩容パラメータの修正値としてのａ、ZMPrecpeekaおよびZMPrecpeekbが決定される。【０１９３】
Ｓ７５６〜Ｓ７６６の処理をより具体的に説明すると、Ｓ７５６において、仮今回歩容の終端での上体位置速度（Xe1，Ve1）から、今回歩容の終端発散成分ｑ01ｋを前記した発散成分の定義式に従って算出する。【０１９４】
次いで、Ｓ７５８において、この終端発散成分ｑ01ｋと定常旋回歩容の初期発散成分ｑ''との差を終端発散成分誤差errqとして求める。【０１９５】
さらに、Ｓ７６０において、第ｎモデル（ｎ＝３）を用いて求めた定常歩容の初期上体姿勢角と、第１モデルを用いて求めた今回歩容の終端上体姿勢角との差を終端上体姿勢角誤差θberrとして求めると共に、第ｎモデル（ｎ＝３）を用いて求めた定常歩容の初期上体姿勢角速度と、第１モデルを用いて求めた今回歩容の終端上体姿勢角速度との差を終端上体姿勢角速度誤差ωberrとして求める。【０１９６】
上記の如くもとめた誤差errq、θberr、ωberrは、Ｓ７５４において作成した仮今回歩容の、境界条件からのずれ度合いを表すものである。【０１９７】
次いで、Ｓ７６２において、上記の如くもとめたerrq、θberr、ωberrがいずれも０近傍の所定の許容範囲内にあるか否かを判断し、その判断結果がＹＥＳである場合には、Ｓ７５４〜Ｓ７６６のループ処理を終了する（Ｓ７００−１の処理が終了する）。この場合、現在の探索対象を含む今回歩容パラメータが第１モデル上で境界条件を満たし得る今回歩容パラメータとして得られる。【０１９８】
一方、Ｓ７６２の判断結果がＮＯである場合には、現在の探索対象（ａ1，ZMPrecpeeka1，ZMPrecpeekb1）の値の近辺に、それぞれのパラメータの値を所定の微小量Δa，ΔZMPrecpeeka，ΔZMPrecpeekbだけ変化させた複数（本実施形態では３個）の探索対象の候補を決めて、それぞれの探索対象の候補を含む今回歩容パラメータ（現在の今回歩容パラメータの探索対象を新たに決めた各候補に修正した今回歩容パラメータ）を基に、Ｓ７５４〜Ｓ７６０と同じ処理を実行して、それぞれの探索対象の候補に対応する誤差（errq、θberr、ωberr）の組を求める。【０１９９】
次いで、Ｓ７６６において、現在の（ａ1，ZMPrecpeeka1，ZMPrecpeekb1）およびその近辺の探索対象の候補のそれぞれに対応する誤差（errq、θberr、ωberr）の組を基に、最急降下法やシンプレックス法などの探索手法によって、探索対象（ａ1，ZMPrecpeeka1，ZMPrecpeekb1）の新たな候補を決定する。そして、Ｓ７５４からの処理が再び繰り返される。【０２００】
以上のようにして、（ａ1，ZMPrecpeeka1，ZMPrecpeekb1）を探索対象として、今回歩容の終端の境界条件を満たす今回歩容パラメータが探索的に決定される。【０２０１】
なお、図２２の処理のうちのＳ７５４の処理は、図２４のフローチャートで示すサブルーチン処理により実行される。これについては後述する。【０２０２】
以上説明したＳ７００−１の処理は、第１発明における第１歩容パラメータ決定手段を構成するものである。【０２０３】
また、図２１のＳ７００−２、……、Ｓ７００−ｎの処理は、いずれも図２３のフローチャートに示す如く実行される。この処理は、Ｓ１７００で設定する探索対象の初期値と、Ｓ１７０４およびＳ１７１４で用いる動力学モデルとが図２２の処理と相違し、これ以外は、図２２の処理と同一である。なお、図２３では、「ｎ」は、２以上の整数を一般的に表しており、第１実施形態では、２又は３である。すなわち、Ｓ７００−２の処理は、図２３の「ｎ」を「２」とした処理であり、Ｓ７００−３の処理は、図２３の「ｎ」を「３」とした処理である。【０２０４】
Ｓ１７００では、探索対象であるａ、ZMPrecpeekaおよびZMPrecpeekbの初期値（初期候補値）として、第ｍモデル（ｍ＝ｎ−１）を用いて先に求めた探索対象の値（Ｓ７００−ｍで求めた値）を設定する。そして、Ｓ１７０４およびＳ１７１４の処理では、第ｎモデルを用いて仮今回歩容が算出される。【０２０５】
なお、図２３の処理のうちのＳ１７０４の処理は、図２２のＳ７５４と同様、図２４のフローチャートで示すサブルーチン処理により実行される。【０２０６】
図２４の処理は、図示の通り、前回歩容の終端状態（詳しくは今回歩容の支持脚座標系で見た前回歩容の終端状態）を今回歩容（仮今回歩容）の初期状態として（Ｓ８００）、その初期状態から今回歩容の終端時刻Ｔcurr（今回歩容の遊脚足平２２の着地予定時刻）まで今回歩容の瞬時値を時系列的に作成する（Ｓ８０２〜Ｓ８０６）処理である。なお、図２４の「ｋ」は、作成する定常歩容の瞬時値の時系列の時刻である。そして、図２４のＳ８０４のサブルーチン処理は、先に定常歩容の作成処理に関して説明した図１８の処理と同様に行なわれる。【０２０７】
この場合の図１８の処理では、Ｓ４００、Ｓ４０４〜Ｓ４１０の処理では、Ｓ０２６で求めた今回歩容のパラメータを基に、目標床反力鉛直成分、目標両足平位置姿勢、基準上体姿勢、目標腕姿勢、目標上体鉛直位置、床反力水平成分許容範囲の瞬時値が求められる。これらは、図２１のＳ７００−１、７００−２、……、７００−ｎのいずれにおいても同じである。また、図２１のＳ７００−ｍ（ｍ＝１，２，３）のそれぞれの中で実行される図１８中のＳ４０２の処理では、前記図２０のＳ６１０で仮決定したＺＭＰ軌道パラメータをＺＭＰ修正パラメータａの現在の候補値ａmで補正したものを基に、目標ＺＭＰの瞬時値が求められる。すなわち、現在の候補値ａmにより規定されるＺＭＰ修正量（図２７の中段図を参照）をＳ６１０で仮決定したＺＭＰ軌道パラメータにより規定される目標ＺＭＰ軌道（図２７の上段図を参照）に加えることで、該目標ＺＭＰ軌道を修正してなるＺＭＰ軌道（図２７の下段図を参照）の瞬時値が、Ｓ４０２で求められる。【０２０８】
さらに、Ｓ４１２の処理によって、第nモデル（ｎは、Ｓ７００−１の処理の中では「１」、Ｓ７００−２の処理の中では「２」、……、Ｓ７００−ｎの処理の中では「ｎ」。このことは、Ｓ４１２のサブルーチン処理である図１９においても同じ）を用いて、図中に記載された条件を満たすように上体水平加速度および上体姿勢角加速度の瞬時値が決定される。そして、Ｓ４１４の処理によって、上体水平加速度および上体姿勢角加速度をそれぞれ２階積分して、上体水平位置および上体姿勢角の瞬時値が決定される。【０２０９】
また、仮今回歩容の作成時におけるＳ４１２のサブルーチン処理である図１９の処理も、定常歩容の場合と同様に行われる。すなわち、仮今回歩容の瞬時値を作成しようとしている現在時刻ｋ（作成中の仮今回歩容内での時刻）が前記上体傾斜角復元期間内の時刻でないときには、Ｓ５０４〜Ｓ５１６の処理によって、第ｎモデル上で、目標ＺＭＰ（ＺＭＰ修正量により修正した目標ＺＭＰ）を満足し、且つ、全体重心の水平加速度による慣性力に釣り合う床反力水平成分が時刻ｋの床反力水平成分許容範囲の瞬時値内に収まるように、上体並進モードの上体水平加速度αと、上体回転モードの上体角加速度β（上体姿勢角の角加速度）とが決定される。【０２１０】
補足すると、本実施形態では、第１動力学モデルは、上体回転モードを考慮していないので、Ｓ７００−１の処理の中で、図１９のＳ５０４〜Ｓ５１６の処理を行うときには、Ｓ２００−１の処理の中で図１９のＳ５０４〜Ｓ５１６の処理を行う場合と同様に、床反力水平成分許容範囲は、無限大の範囲とするか、もしくは、床反力水平成分が確実に許容範囲内に収まるように十分に大きい範囲に設定される。【０２１１】
なお、本実施形態において第２モデルあるいは第３モデルを使用するＳ７００−２またはＳ７００−３の中で設定する床反力水平成分許容範囲は、Ｓ２００−２、Ｓ２００−３の場合と同様、基本的には同じでよいが、異なる範囲に設定してもよい。【０２１２】
また、現在時刻ｋ（作成中の仮今回歩容内での時刻）が前記上体傾斜角復元期間内の時刻であるときには、Ｓ５１８〜Ｓ５２６の処理によって、上体角加速度βは、第ｎ動力学モデル上で、上体傾斜復元モーメントＺＭＰ換算値パターンの瞬時値（これは、Ｓ７００−ｎ（ｎ＝１，２，３）の中で仮決定された上体傾斜復元モーメントＺＭＰ換算値の第１ピーク値ZMPrecpeekaおよび第２ピーク値ZMPrecpeekbの現在の候補値と現在時刻ｋとに応じて定まる。図２６を参照）に対応する床反力モーメントを発生するように決定される。また、上体水平加速度は、第ｎ動力学モデル上で、上体並進モードによって発生する目標ＺＭＰまわりの床反力モーメントが０になるための上体水平加速度と、上体角加速度βによる床反力モーメントと同等の床反力モーメントを発生する上体水平加速度との差として求められる。これにより、上体姿勢を基準上体姿勢に向かって復元させつつ、目標ＺＭＰを満足するように上体角加速度βおよび上体水平加速度αが決定される。【０２１３】
なお、第１実施形態では、第１動力学モデルは、上体回転モードを考慮していないので、Ｓ７００−１の処理の中で、図１９のＳ５１８〜Ｓ５２６の処理を行うときには、常にβ＝０とされる。【０２１４】
また、仮今回歩容を生成する場合の上体傾斜復元期間は前記図２０のＳ６１２で決定した時刻ＴａからＴｂの期間であるので、図１９のＳ５００の処理は省略される。【０２１５】
ここで、本願発明との関連性について補足すると、図２１のＳ７００−２〜７００−ｎの処理は、第１発明における歩用パラメータ修正手段を構成するものである。そして、図２１のＳ７００−２〜７００−ｎのそれぞれの処理の中で実行される図２３のＳ１７１２で求められるerrq，θberr，ωberrの組は第１発明におけるずれ度合いに相当するものである。さらに同図２３のＳ１７１４で決定される、現在の探索対象（an，ZMPrecpeekan，ZMPrecpeekbn）の値の近辺の複数の候補を探索対象（修正対象パラメータ）として持つ歩容パラメータは、第１７発明における補助歩容パラメータに相当し、それらの補助歩容パラメータにそれぞれ対応するerrq，θberr，ωberrの組は、第１７発明における補助ずれ度合いに相当するものである。なお、探索対象（an，ZMPrecpeekan，ZMPrecpeekbn）は、第２発明における修正対象パラメータであることはもちろんである。この場合、anは目標ＺＭＰ軌道パラメータを修正するものであるので、目標ＺＭＰ軌道パラメータ自体の少なくとも一部も修正対象パラメータであると言える。【０２１６】
以上説明した図２１の処理において、本実施形態では、第１動力学モデル、第２動力学モデル、第３動力学モデルは、この順に動力学的な精度が高いものとなっている。このため、図２１の処理によって、定常歩容につながるような（今回歩容の終端の境界条件を満たすような）今回歩容を作成し得る歩容パラメータを、上体位置姿勢の発散が生じたりすることなく、しかも、動力学的な精度も十分に満たしつつ効率よく短時間で決定できる。【０２１７】
また、第ｎ動力学モデル（ｎ＝１，２，３）は、前記した如く構成されているので、前記図２２または図２３の処理の如く、探索処理を行なうとき、今回歩容パラメータの前記探索対象の値と、今回歩容の終端の誤差errq、θberr、ωberrとの間の線形性（探索対象の値の変化に対する誤差の変化のリニアリティ）は、ｎの値が小さいほど、高いものとなっている。このため、第１動力学モデルを使用する前記図２２の探索処理では、迅速に境界条件を満足する探索対象の値を見出すことができる。そして、第２動力学モデルを使用した探索処理では、第１動力学モデルを使用した探索処理よりも線形性は低下すものの、第１動力学モデルを使用した探索処理で、近似的に適切な今回歩容パラメータの探索対象が得られているので、それを初期候補として、探索処理を行なうことで、第２動力学モデル上で適切な（境界条件を満たす）今回歩容パラメータを、探索対象の値の発散を生じたりすることなく、迅速に決定できる。第３動力学モデルを使用した探索処理においても同様である。【０２１８】
また、第ｎ動力学モデル（ｎ＝１，２，３）は、前記した如く構成されているので、ｎの値が小さいほど、今回歩容を実際に生成するときの演算時間が、短いものとなる。この場合、ｎの値が大きいほど、今回歩容を実際に生成するときの演算時間は長くなるものの、探索対象の初期候補を前記したように適切に設定できることから、境界条件を満たす探索対象を迅速に見出だすことができる。従って、結果的に、最終的な今回歩容パラメータを効率よく短時間で決定できる。【０２１９】
図１２の説明に戻って、以上説明したようにＳ０２８の処理を実行した後、Ｓ０３０に進んで、フルモデル補正用のＺＭＰ許容範囲と床反力水平成分許容範囲を規定するパラメータが決定される。【０２２０】
この処理は、前記公報文献１の図１３のＳ０３０の処理と同一であり、ここでの説明は省略する。【０２２１】
以上説明したＳ０１８からＳ０３０までの処理が、前記図５の歩容パラメータ決定部１００ａで実行される処理である。【０２２２】
Ｓ０３０の処理を実行した後、あるいは、Ｓ０１６の判断結果がＮＯであるときには、Ｓ０３２に進んで、今回歩容の瞬時値を逐次決定する。この処理のサブルーチン処理は、仮今回歩容の生成に関して説明した前記図２４のフローチャートの処理と同じである。但し、この場合に使用する動力学モデルは、本実施形態では第３モデルに固定される。また、ＺＭＰ修正量を規定するＺＭＰ修正パラメータａ、上体傾斜復元モーメントＺＭＰ換算値の第１ピーク値ZMPrecpeekaおよび第２ピーク値ZMPrecpeekbとしては、図１２のＳ０２８で最終的に決定したもの（図２１のＳ７００−ｎの処理で最終的に探索されたもの）が用いられる。【０２２３】
次いで、Ｓ０３４に進んで、ロボット１のスピン（鉛直軸まわりの回転）をキャンセルするための腕体５，５の動作が決定される。この処理は、ロボット１の腕を振らずに目標歩容通りにロボット１を運動させた場合に目標ＺＭＰまわりに発生する床反力モーメントの鉛直成分と逆向きの床反力モーメントを腕体５，５の腕振り（両腕体５，５を前後逆方向に振る運動）によって発生させるように腕体５，５の姿勢を決定するものであり、前記公報文献１の図１３のＳ０３４と全く同様に行われる。その詳細は、同公報文献１に記載されているので、ここではさらなる説明を省略する。【０２２４】
次いで、Ｓ０３６に進んで、フルモデル補正用（前記フルモデル補正部１００ｅの処理用）のＺＭＰ許容範囲の瞬時値と、床反力水平成分許容範囲の瞬時値とが決定される。この処理では、前記Ｓ０３０で決定したＺＭＰ許容範囲および床反力水平成分許容範囲を規定する歩容パラメータに基づいて決定される。【０２２５】
以上説明したＳ０３２〜Ｓ０３６の処理が、前記図５の目標瞬時値発生部１００ｂで実行される処理の詳細である。【０２２６】
次いで、Ｓ０３８に進んで、フルモデルを用いた補正歩容を発生する。この処理は、前記フルモデル補正部１００ｃにより実行される処理である。この場合、この処理は、前記公報文献１の図１３のＳ０３８の処理と同一であり、同公報文献１に記載されたとおりに実行される。従って、本明細書では詳細な説明は省略する。この処理により、目標上体位置姿勢（前記変位次元補正歩容の上体位置姿勢）をさらに修正してなる補正目標上体位置姿勢と補正目標床反力モーメントとが決定される。【０２２７】
以上が、本実施形態における歩容生成装置１００の歩容生成処理である。【０２２８】
次に図４を参照して複合コンプアライアンス制御装置１０１の動作を説明しておく。なお、複合コンプライアンス制御装置１０１の動作は、本出願人が先に出願した特開平１０−２７７９６９号公報などに詳細に記載されているので、本明細書では概略的な説明にとどめる。歩容生成装置１００において、上記したように生成された目標歩容のうち、補正目標上体位置姿勢（軌道）、目標腕姿勢（軌道）が、ロボット幾何学モデル（逆キネマティクス演算部）１０２に送出される。【０２２９】
また、目標足平位置姿勢（軌道）、目標ＺＭＰ軌道（目標全床反力中心点軌道）、および目標全床反力（軌道）（補正目標床反力モーメントと目標床反力鉛直成分）は、複合コンプライアンス動作決定部１０４に送られると共に、目標床反力分配器１０６にも送られる。そして、目標床反力分配器１０６で、床反力は各足平２２に分配され、目標各足平床反力中心点および目標各足平床反力が決定される。この決定された目標各足平床反力中心点および目標各足平床反力は複合コンプライアンス動作決定部１０４に送られる。【０２３０】
複合コンプライアンス動作決定部１０４から、機構変形補償付き修正目標足平位置姿勢（軌道）がロボット幾何学モデル１０２に送られる。ロボット幾何学モデル１０２は、目標上体位置姿勢（軌道）と機構変形補償付き修正目標足平位置姿勢（軌道）を入力されると、それらを満足する脚体２，２の１２個の関節の関節変位指令（値）を算出して変位コントローラ１０８に送る。変位コントローラ１０８は、ロボット幾何学モデル１０２で算出された関節変位指令（値）を目標値としてロボット１の１２個の関節の変位を追従制御する。また、ロボット幾何学モデル１０２は、目標腕姿勢を満足する腕関節の変位指定（値）を算出して変位コントローラ１０８に送る。変位コントローラ１０８は、ロボット幾何学モデル１０２で算出された関節変位指令（値）を目標値としてロボット１の腕体の１２個の関節の変位を追従制御する。【０２３１】
ロボット１に生じた床反力（詳しくは実各足床反力）は６軸力センサ５０によって検出される。その検出値は前記複合コンプライアンス動作決定部１０４に送られる。また、ロボット１に生じた姿勢傾斜偏差θerrx，θerry（詳しくは目標上体姿勢角に対する実姿勢角の偏差で、ロール方向（Ｘ軸回り）の姿勢角偏差がθerrxであり、ピッチ方向（Ｙ軸回り）の姿勢角偏差がθerryである）が姿勢センサ５４を介して検出され、その検出値は姿勢安定化制御演算部１１２に送られる。この姿勢安定化制御演算部１１２で、ロボット１の上体姿勢角を目標上体姿勢角に復元するための目標全床反力中心点（目標ＺＭＰ）まわり補償全床反力モーメントが算出されて複合コンプライアンス動作決定部１０４に送られる。複合コンプライアンス動作決定部１０４は、入力値に基づいて目標床反力を修正する。具体的には、目標全床反力中心点（目標ＺＭＰ）回りに補償全床反力モーメント、あるいは、補償全床反力モーメントと補正目標床反力モーメントとの和が作用するように目標床反力を修正する。【０２３２】
複合コンプライアンス動作決定部１０４は、修正された目標床反力に、センサ検出値などから算出される実ロボットの状態および床反力を一致させようと上記機構変形補償付き修正目標足平位置姿勢（軌道）を決定する。この場合、機構変形補償付き修正目標足平位置姿勢は、前記コンプライアンス機構７２の等の機構的変形を考慮したものである。ただしすべての状態を目標に一致させることは事実上不可能であるので、これらの間にトレードオフ関係を与えて妥協的になるべく一致させる。すなわち、各目標に対する制御偏差に重みを与えて、制御偏差（あるいは制御偏差の２乗）の重み付き平均が最小になるように制御する。これにより、実際の足平位置姿勢と全床反力とが目標足平位置姿勢と目標全床反力とに概ね従うように制御される。【０２３３】
なお、以上説明した第１実施形態では、前記した第１〜第３動力学モデルを用いたが、これ以外の複数の動力学モデルを用いてもよい。この場合の複数の動力学モデルは、例えば次のように構成してもよい。以下、これを第２実施形態として説明する。【０２３４】
すわなち、図２８を参照して、モデルＡを例えば前記第２動力学モデル、モデルＢを前記第３動力学モデルとする。この場合、モデルＡ，Ｂは、いずれも、目標上体位置姿勢などの目標運動と、目標ＺＭＰ、目標床反力水平成分許容範囲などを入力として、目標ＺＭＰまわりの床反力モーメントと並進床反力（床反力水平成分）とを出力する動力学モデルとして表現できることとなる。そして、モデルＣを、モデルＡが出力する床反力モーメントにある重みｒ（０≦ｒ≦１）を乗算したものとモデルＢが出力する床反力モーメントに重み１−ｒを乗算したものとの和の床反力モーメントを出力すると共に、モデルＡが出力する並進床反力に重みｒを乗算したものとモデルＢが出力する並進床反力に重み１−ｒを乗算したものとの和の並進床反力を出力するモデルとする。このようにモデルＣを定めたとき、モデルＣは、重みｒを１に近づけると、その動力学的挙動はモデルＡに近くなり、重みｒを０に近づけると、その動力学的挙動はモデルＢに近くなる。従って、ｒの値を０から１の範囲で、複数種類の値に設定すれば、複数種類の動力学モデルＣが構築できることとなる。そこで、第２実施形態では、このように構築した複数の動力学モデルを前記第１〜第３動力学モデルの代わりに使用することとした。この場合、例えば、重みｒの値として、０、０．５、１の３種類を設定し、それぞれに対応して定まる動力学モデルＣを第１動力学モデル、第２動力学モデル、第３動力学モデルとする。そして、これらの第１〜第３動力学モデルを第１実施形態の第１〜第３動力学モデルの代わりに用いることで、第２実施形態を構築した。従って、第２実施形態では、図１４のＳ２００−１、Ｓ２００−２、……、Ｓ２００−ｎ（ｎ＝３）と、図２１のＳ７００−１、Ｓ７００−２、……、Ｓ７００−ｎ（ｎ＝３）とで使用する第１〜第３動力学モデルだけが第１実施形態のものと相違するものであり、それ以外は、第１実施形態と同じである。【０２３５】
なお、前記第１実施形態の如く、上体回転モードを調整することによって並進床反力水平成分許容範囲を満足する歩容を生成する場合には、モデルＡ，Ｂはいずれも上体回転モードによって発生する床反力モーメントを考慮した（無視しない）モデルである必要がある。この場合、例えばモデルＡ，Ｂをそれぞれ第１実施形態の第２動力学モデル、第３動力学モデルと同じにすることで、その必要条件が満たされる。この場合、第２実施形態では、いずれの動力学モデルでも、上体回転モードを調整できるので、第１実施形態で説明したように第１動力学モデルを使用するときに、床反力水平成分許容範囲を実質的に無視できるような大きな許容範囲もしくは無限大の許容範囲に設定する必要はなく、いずれの動力学モデルにおいても、適切な許容範囲を設定できる。【０２３６】
以上が本発明の第２実施形態である。【０２３７】
また、前記第１実施形態では、複数の動力学モデルは、その運動と床反力との関係を表す運動・床反力モデルを互いに異なる構造に設定したが、複数の動力学モデルは、その運動・床反力モデル（該モデルの質点、イナーシャなどの構造と動力学的方程式（運動方程式））を互いに同じにしつつ、それぞれの動力学モデルに付加するロボット１の運動あるいは床反力に関する制約条件を互いに異なるものとしてもよい。その例を第３実施形態として以下に説明すると、複数（本実施形態では３つの）の動力学モデルの運動・床反力モデルを第１実施形態の例えば第２動力学モデルの運動・床反力モデルと同じとする。そして、第１〜第３の各動力学モデルに付加される床反力の制約条件としての床反力水平成分許容範囲が図２９に示す如く、互いに異なるようにする。この例では、ロボット１の片脚支持期における床反力水平成分許容範囲は、第１動力学モデル、第２動力学モデル、第３動力学モデルの順に小さくなるように設定される。そして、第３実施形態では、図１４のＳ２００−１、Ｓ２００−２、……、Ｓ２００−ｎ（ｎ＝３）と、図２１のＳ７００−１、Ｓ７００−２、……、Ｓ７００−ｎ（ｎ＝３）とで使用する第１〜第３動力学モデルとして、上記の如く構築した第１〜第３動力学モデルが使用され、それ以外は、第１実施形態と同じである。なお、第３実施形態では、いずれの動力学モデルでも、上体回転モードを調整できるので、第１実施形態で説明したように第１動力学モデルを使用するときに、床反力水平成分許容範囲を実質的に無視できるような大きな許容範囲もしくは無限大の許容範囲に設定する必要はない。【０２３８】
補足すると、第３実施形態では、第ｎ動力学モデル（ｎ＝１、２、３）は、ｎの値が小さいほど、床反力水平成分の許容範囲が広くなって、線形性が高まる。従って、第１動力学モデルにより歩容パラメータ（定常歩容パラメータまたは今回歩容パラメータ）の探索対象を探索するとき、その探索処理を短時間で完了することができる。【０２３９】
また、複数の動力学モデルのうちの最も動力学的精度の高いモデルは、前記フルモデルと同じでもよい。その場合、これらの複数の動力学モデル（前記図１２のＳ０２４、Ｓ０２８で用いる動力学モデル）に対する床反力水平成分許容範囲は、歩容パラメータの探索処理の収束性を高めるために、フルモデル補正用のものよりも広めにすることが望ましい。【０２４０】
補足すると、前記図１２のＳ０２４、Ｓ０２８で用いる複数の動力学モデルは、フルモデル補正用のフルモデルよりも若干動力学的精度が低いものであることが効果的である。これは、歩容パラメータの探索処理の収束性を高めつつ、フルモデル補正における目標ＺＭＰまわりの補正目標床反力モーメント、あるいはこれに相当する目標ＺＭＰの修正量を小さくでき、その結果、最終的にフルモデル補正によって生成される歩容の安定余裕を高めることができるからである。【０２４１】
なお、以上説明した各実施形態では、今回歩容を定常歩容に近づけるために、今回歩容の終端の発散成分を定常歩容の初期発散成分にほぼ一致させることを今回歩容の境界条件として、その境界条件を満たすように今回歩容パラメータの探索対象を探索して決定するようにしたが、今回歩容の終端の上体位置（水平位置および鉛直位置）と、上体速度（水平速度および鉛直速度）とをそれぞれ定常歩容の初期の上体位置、上体速度にほぼ一致させることを今回歩容の境界条件とし、この境界条件を満たすように今回歩容パラメータの探索対象を探索して決定するようにしてもよい。【０２４２】
あるいは、今回歩容の終端のロボット１の全体重心の位置とその変化速度との重み付き平均値を、定常歩容の初期の当該重み付き平均値にほぼ一致させることを境界条件として、その境界条件を満たすように今回歩容パラメータの探索対象を決定するようにしてもよい。【０２４３】
また、定常歩容パラメータを決定するとき、定常歩容の境界条件を満たすために、定常歩容パラメータの探索対象として、ロボット１の上記重み付き平均値、または発散成分を用いてもよい。なお、重み付き平均値は、所定の重みを設定することで、絶対的な大きさを無視すれば、発散成分と等価（より正確には、発散成分と比例関係）になる。
【産業上の利用可能性】
【０２４４】
以上の説明から明らかなように、本発明の移動ロボットの歩容生成装置は、歩容の発散を防止しつつ、所要の境界条件を高い動力学的精度で満足し得る歩容を効率よく生成することができ、特に２足移動ロボットのような本来的な安定性が低い移動ロボットの歩容を該移動ロボットの安定性を確保しつつ生成できる点で有用である。
【図面の簡単な説明】
【０２４５】
【図１】本発明の実施形態を適用する移動ロボット（２足歩行ロボット）の全体構成の概略を示す図。
【図２】図１のロボットの各脚体の足平部分の構成を示す側面図。
【図３】図１のロボットに備えた制御ユニットの構成を示すブロック図。
【図４】図３の制御ユニットの機能的構成を示すブロック図。
【図５】図４に示す歩容生成装置の機能を示すブロック図。
【図６】（ａ），（ｂ）はそれぞれロボットの運動モード（上体並進モード、上体回転モード）を説明するための図。
【図７】歩容生成で用いる第１動力学モデルの構造を示す図。
【図８】第１動力学モデルの演算処理を示すブロック図。
【図９】歩容生成で用いる第２動力学モデルの構造を示す図。
【図１０】歩容生成で用いる第３動力学モデルの構造を示す図。
【図１１】歩容生成で用いるフルモデルの構造を示す図。
【図１２】第１実施形態における歩容生成装置のメインルーチン処理を示すフローチャート。
【図１３】図１２のサブルーチン処理を示すフローチャート。
【図１４】図１２のサブルーチン処理を示すフローチャート。
【図１５】図１４のサブルーチン処理を示すフローチャート。
【図１６】図１４のサブルーチン処理を示すフローチャート。
【図１７】図１５または図１６のサブルーチン処理を示すフローチャート。
【図１８】図１７のサブルーチン処理を示すフローチャート。
【図１９】図１８のサブルーチン処理を示すフローチャート。
【図２０】図１２のサブルーチン処理を示すフローチャート。
【図２１】図１２のサブルーチン処理を示すフローチャート。
【図２２】図２１のサブルーチン処理を示すフローチャート。
【図２３】図２１のサブルーチン処理を示すフローチャート。
【図２４】図２２または図２３のサブルーチン処理を示すフローチャート。
【図２５】定常歩容における上体傾斜復元モーメントＺＭＰ換算値の例を示すグラフ。
【図２６】今回歩容における上体傾斜復元モーメントＺＭＰ換算値の例を示すグラフ。
【図２７】今回歩容における仮目標ＺＭＰとＺＭＰ修正量と目標ＺＭＰとの例を示すグラフ。
【図２８】第２実施形態における動力学モデルの構成例を示すブロック図。
【図２９】第３実施形態における各動力学モデルで床反力水平成分許容範囲を異ならせる場合の例を示すグラフ。
【図１】
0004800039.tif 000002
【図２】
0004800039.tif 000003
【図３】
0004800039.tif 000004
【図４】
0004800039.tif 000005
【図５】
0004800039.tif 000006
【図６】
0004800039.tif 000007
【図７】
0004800039.tif 000008
【図８】
0004800039.tif 000009
【図９】
0004800039.tif 000010
【図１０】
0004800039.tif 000011
【図１１】
0004800039.tif 000012
【図１２】
0004800039.tif 000013
【図１３】
0004800039.tif 000014
【図１４】
0004800039.tif 000015
【図１５】
0004800039.tif 000016
【図１６】
0004800039.tif 000017
【図１７】
0004800039.tif 000018
【図１８】
0004800039.tif 000019
【図１９】
0004800039.tif 000020
【図２０】
0004800039.tif 000021
【図２１】
0004800039.tif 000022
【図２２】
0004800039.tif 000023
【図２３】
0004800039.tif 000024
【図２４】
0004800039.tif 000025
【図２５】
0004800039.tif 000026
【図２６】
0004800039.tif 000027
【図２７】
0004800039.tif 000028
【図２８】
0004800039.tif 000029
【図２９】
0004800039.tif 000030