(57)【特許請求の範囲】
【請求項１】
所定の期間における移動ロボットの歩容を規定する複数のパラメータの組である歩容パラメータを決定し、その決定した歩容パラメータと前記移動ロボットの動力学モデルとを用いて前記所定の期間における移動ロボットの目標歩容を生成する歩容生成装置において、
前記目標歩容に関する要求が与えられ、前記歩容パラメータのうちの所定のパラメータを優先パラメータとし、該優先パラメータ以外のパラメータを非優先パラメータとしたとき、前記要求を満足するための前記優先パラメータの値である優先パラメータ要求値を決定する優先パラメータ要求値決定手段と、
前記移動ロボットのあらかじめ用意された基準歩容を規定する歩容パラメータと、所定の境界条件を満たすように過去に決定された歩容パラメータとのうちのいずれかの歩容パラメータをベース歩容パラメータとして設定するベース歩容パラメータ設定手段と、
前記ベース歩容パラメータの優先パラメータの値を、該値が前記優先パラメータ要求値に一致するまで段階的に前記優先パラメータ要求値に漸近させるように更新する優先パラメータ漸近手段と、
該優先パラメータ漸近手段による優先パラメータの値の更新の都度、その更新後の値の優先パラメータを有し、且つ前記所定の境界条件を満足する歩容を前記動力学モデルを用いて生成し得る歩容パラメータである新規歩容パラメータを探索的に決定する新規歩容パラメータ決定手段とを備えると共に、
前記新規歩容パラメータ決定手段は、前記新規歩容パラメータを新たに決定するときの前記優先パラメータ漸近手段による優先パラメータの値の更新回数をｎ（ｎ：ｎ≧１を満たす整数）とし、その第ｎ回目の更新処理によって得られた優先パラメータの値を第ｎ優先パラメータ更新値とし、当該新たに決定する新規歩容パラメータを第ｎ新規歩容パラメータとし、前記ベース歩容パラメータを第０新規歩容パラメータとしたとき、非優先パラメータの値に第ｎ−１新規歩容パラメータの非優先パラメータの値を設定し、且つ、優先パラメータの値を第ｎ優先パラメータ更新値に設定してなる歩容パラメータを初期探索候補歩容パラメータとして、この初期探索候補歩容パラメータの非優先パラメータのうちの所定のパラメータである探索対象パラメータの値を前記所定の境界条件を満たすように探索することにより第ｎ新規歩容パラメータを決定する手段であり、
前記優先パラメータ漸近手段による優先パラメータの値の最後の更新時に決定された新規歩容パラメータを前記目標歩容を規定する歩容パラメータとして、該新規歩容パラメータと前記動力学モデルとを用いて該目標歩容を生成するようにしたことを特徴とする移動ロボットの歩容生成装置。
【請求項２】
所定の期間における移動ロボットの目標歩容を生成するとき、該目標歩容に続く仮想的な周期的歩容である定常歩容を規定する複数のパラメータの組である定常歩容パラメータを決定すると共に、その決定した定常歩容パラメータと前記移動ロボットの動力学モデルとを用いて生成される定常歩容に前記目標歩容を近づけるように該目標歩容を生成する移動ロボットの歩容生成装置において、
前記目標歩容に対応する定常歩容に関する要求が入力され、前記定常歩容パラメータのうちの所定のパラメータを優先パラメータとし、該優先パラメータ以外のパラメータを非優先パラメータとしたとき、前記要求を満足するための該優先パラメータの値である優先パラメータ要求値を決定する優先パラメータ要求値決定手段と、
前記移動ロボットのあらかじめ用意された基準定常歩容を規定する定常歩容パラメータと、所定の境界条件を満たすように過去に決定された定常歩容パラメータとのうちのいずれかの定常歩容パラメータをベース定常歩容パラメータとして設定するベース定常歩容パラメータ設定手段と、
前記ベース定常歩容パラメータの優先パラメータの値を、該値が前記優先パラメータ要求値に一致するまで段階的に前記優先パラメータ要求値に漸近させるように更新する優先パラメータ漸近手段と、
該優先パラメータ漸近手段のよる優先パラメータの値の更新の都度、その更新後の値の優先パラメータを有し、且つ前記所定の境界条件を満たす歩容を前記動力学モデルを用いて生成し得る定常歩容パラメータである新規定常歩容パラメータを探索的に決定する新規定常歩容パラメータ探索手段とを備えると共に、
前記新規定常歩容パラメータ探索手段は、前記新規定常歩容パラメータを新たに決定するときの前記優先パラメータ漸近手段による優先パラメータの値の更新回数をｎ（ｎ：ｎ≧１を満たす整数）とし、その第ｎ回目の更新後の優先パラメータの値を第ｎ優先パラメータ更新値とし、当該新たに決定する新規定常歩容パラメータを第ｎ新規定常歩容パラメータとし、前記ベース定常歩容パラメータを第０新規定常歩容パラメータとしたとき、非優先パラメータの値に第ｎ−１新規定常歩容パラメータの非優先パラメータの値を設定し、且つ、優先パラメータの値に第ｎ優先パラメータ更新値を設定してなる歩容パラメータを初期探索候補歩容パラメータとして、この初期探索候補歩容パラメータの非優先パラメータのうちの所定のパラメータである探索対象パラメータの値を前記所定の境界条件を満たすように探索することにより第ｎ新規定常歩容パラメータを決定する手段であり、
前記優先パラメータ漸近手段による優先パラメータの値の最後の更新時に決定された新規定常歩容パラメータを前記目標歩容に対応する定常歩容の定常歩容パラメータとして、該定常歩容パラメータと前記動力学モデルとを用いて生成される定常歩容に近づけるように前記目標歩容を生成するようにしたことを特徴とする移動ロボットの歩容生成装置。
【請求項３】
前記優先パラメータ漸近手段による優先パラメータの値の総更新回数は、前記ベース歩容パラメータの優先パラメータの値と、前記優先パラメータ要求値との差に応じて設定されることを特徴とする請求項１記載の移動ロボットの歩容生成装置。
【請求項４】
前記優先パラメータ漸近手段による優先パラメータの値の総更新回数は、前記ベース定常歩容パラメータの優先パラメータの値と、前記優先パラメータ要求値との差に応じて設定されることを特徴とする請求項２記載の移動ロボットの歩容生成装置。
【請求項５】
前記歩容パラメータは、前記目標歩容のうちの目標ＺＭＰ軌道を規定するパラメータを前記探索対象パラメータとして含むことを特徴とする請求項１記載の移動ロボットの歩容生成装置。
【請求項６】
前記定常歩容パラメータは、前記定常歩容の１周期の期間の一端における移動ロボットの運動の所定の状態量を規定するパラメータを前記探索対象パラメータとして含むことを特徴とする請求項２記載の移動ロボットの歩容生成装置。
【請求項７】
前記所定の境界条件は、前記所定の期間における歩容の境界における移動ロボットの運動の所定の状態量が前記境界において隣接する歩容における移動ロボットの運動の該所定の状態量と一致するという条件を含むことを特徴とする請求項１記載の移動ロボットの歩容生成装置。
【請求項８】
前記所定の境界条件は、前記所定の期間における歩容の終端側の境界における移動ロボットの運動の所定の状態量が該歩容に続くべき仮想的な周期的歩容として決定された定常歩容における移動ロボットの運動の該所定の状態量と一致するという条件を含むことを特徴とする請求項１記載の移動ロボットの歩容生成装置。
【請求項９】
前記所定の境界条件は、前記定常歩容の１周期の始端と終端における移動ロボットの運動の所定の状態量が一致するという条件を含むことを特徴とする請求項２記載の移動ロボットの歩容生成装置。
【請求項１０】
前記移動ロボットは、上体から延設された複数の脚体を備えた脚式移動ロボットであり、前記所定の状態量は、該ロボットの上体の位置、該上体の速度、該上体の姿勢角、該上体の姿勢角の角速度、該上体の位置と速度との重み付き平均値、該ロボットの全体重心の位置、該全体重心の速度、該全体重心の位置と速度との重み付き平均値、および発散成分のうちの少なくともいずれか一つを含むことを特徴とする請求項６〜９のいずれか１項に記載の移動ロボットの歩容生成装置。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は２足移動ロボット等の移動ロボットの歩容を生成する装置に関する。
【背景技術】
【０００２】
２足移動ロボット等の移動ロボットの目標歩容を生成する技術としては、例えば特開２００２−３２６１７３号公報（特許文献１）や、ＰＣＴ国際公開公報ＷＯ／０３／０５７４２７／Ａ１（特許文献２）に見られるものが本願出願人により提案されている。これらの文献に見られる技術は、ロボットの運動（各部位の位置、姿勢）と、床反力との関係を表す第１の動力学モデル（単純化モデル）を用いて該第１の動力学モデル上での動力学的平衡条件（床反力の並進力成分が目標値になる、ある点のまわりの床反力モーメントが目標値になるなどの条件）を満足するようにロボットの目標運動の瞬時値（瞬時目標運動）と目標床反力の瞬時値（瞬時目標床反力）とからなる瞬時目標歩容が逐次作成される。そして、この瞬時目標歩容を第２の動力学モデル（フルモデル）に入力して、該瞬時目標運動の一部（目標上体位置姿勢や目標ＺＭＰまわりの目標モーメントなど）を補正することで、最終的な瞬時目標歩容を時系列的に生成するようにしている。なお、文献１，２に見られる技術では、目標歩容は、２足移動ロボットの１歩の期間分の歩容を単位として、１歩毎に生成される。この場合、ロボットの１歩毎の目標歩容の瞬時値を生成するにあたっては、まず、その目標歩容に続く仮想的な周期的歩容である定常歩容を規定する歩容パラメータ（各足平の位置姿勢軌道を規定するパラメータ、目標ＺＭＰ軌道を規定するパラメータなどから構成されるもの）が、その歩容パラメータと前記第１の動力学モデルとを用いて所要の境界条件（定常歩容の１周期の始端と終端とで該歩容の状態が一致するという条件）を満たすように決定される。さらに、目標歩容を規定する歩容パラメータが、その歩容パラメータと前記第１の動力学モデルとを用いて生成される歩容が所要の境界条件（目標歩容がその終端側で定常歩容に近づくという条件）を満たすように決定される。そして、このように決定された目標歩容の歩容パラメータと第１の動力学モデルとを用いて該目標歩容の瞬時値の時系列が生成される。【０００３】
上記のように目標歩容を生成する技術では、第１の動力学モデル（単純化モデル）としては、線形性の高いモデルが一般に使用される。線形性の高い動力学モデルを用いて瞬時目標歩容を作成することで、仮想的な周期的歩容である定常歩容につながり、もしくは漸近するような歩容（ロボットの安定な運動を継続的に行い得る歩容）を効率よく短時間で作成することが可能となり、ひいては実ロボットの実際の運動を行いながら、リアルタイムでロボットの瞬時目標歩容を逐次生成することが可能となる。また、定常歩容の歩容パラメータを決定する場合にも、該定常歩容の境界条件を満足し得る歩容パラメータを効率よく短時間で決定することが可能となる。【０００４】
ところが、線形性の高い動力学モデルは、ロボットの種々様々の動作において一般に動力学的精度が比較的低くなりがちである。すなわち、その動力学モデル上でのロボットの動力学は、実ロボットの実際の動力学に対して誤差を生じやすい。このため、第１の動力学モデルを用いて作成される瞬時目標歩容を、そのまま実ロボットに適用して、該実ロボットの動作を行わせると、第１の動力学モデル上で保証された動力学的平衡条件が、実ロボット上では成立せず、実ロボットの動作が安定性に欠けるものとなりやすい。【０００５】
そこで、前記特許文献１、２に見られる技術では、第１の動力学モデルを用いて作成した瞬時目標歩容の一部をさらに、第２の動力学モデルを用いて補正するようにしている。この場合、第２の動力学モデルとしては、第１の動力学モデルよりも動力学的精度の高いモデルが用いられる。これにより、第１の動力学モデルを用いて作成した歩容よりも、より動力学的精度の高い（実ロボットの動力学により近い）歩容を生成することが可能となる。【０００６】
しかし、前記特許文献１，２に見られる技術では、第２動力学モデルを用いて作成される歩容は発散しやすいため、目標ＺＭＰ軌道を修正するかもしくは目標ＺＭＰまわりに床反力モーメントを発生させるようにして、ロボットの目標運動軌道が第１の動力学モデルで作成された歩容からかけはなれないようにする必要があった。そして、この場合、目標ＺＭＰ軌道の修正量や、目標ＺＭＰまわりの床反力モーメントが比較的大きくなることがあり、このような場合には、安定余裕を高く保つことが困難となる場合あった。逆に、安定余裕を高く保つために、目標ＺＭＰ軌道の修正量や、目標ＺＭＰまわりの床反力モーメントの許容範囲を狭く設定すると、歩容が発散する恐れが高まるという不具合があった。【０００７】
また、定常歩容の歩容パラメータを決定する場合にあっても、第１の動力学モデルの動力学的精度を高くすると、該第１の動力学モデルの線形性が低下して、定常歩容の境界条件を満たし得る定常歩容パラメータを効率よく短時間で見出すことが困難となることから、前記第２の動力学モデルでの歩容の発散が生じ難い適切な定常歩容パラメータを決定することが困難であった。ひいては、前記した如く、安定余裕を高く保つことが困難となったり、第２の動力学モデルで生成される歩容の発散が生じやすくなるという不都合があった。【０００８】
本発明はかかる背景に鑑みてなされたものであり、目標歩容の発散を防止しつつ、所要の境界条件を満足し得る目標歩容を効率よく生成することができる移動ロボットの歩容生成装置を提供することを目的とする。また、本発明は、定常歩容を規定する歩容パラメータを決定する場合に、定常歩容が所要の境界条件を満足し得る定常歩容パラメータを効率よく決定し、ひいては目標歩容の発散を防止することができる移動ロボットの歩容生成装置を提供することを目的とする。
【発明の開示】
【０００９】
かかる目的を達成するために、本発明の移動ロボットの歩容生成装置の第１発明は、
所定の期間における移動ロボットの歩容を規定する複数のパラメータの組である歩容パラメータを決定し、その決定した歩容パラメータと前記移動ロボットの動力学モデルとを用いて前記所定の期間における移動ロボットの目標歩容を生成する歩容生成装置において、
前記目標歩容に関する要求が与えられ、前記歩容パラメータのうちの所定のパラメータを優先パラメータとし、該優先パラメータ以外のパラメータを非優先パラメータとしたとき、前記要求を満足するための前記優先パラメータの値である優先パラメータ要求値を決定する優先パラメータ要求値決定手段と、
前記移動ロボットのあらかじめ用意された基準歩容を規定する歩容パラメータと、所定の境界条件を満たすように過去に決定された歩容パラメータとのうちのいずれかの歩容パラメータをベース歩容パラメータとして設定するベース歩容パラメータ設定手段と、
前記ベース歩容パラメータの優先パラメータの値を、該値が前記優先パラメータ要求値に一致するまで段階的に前記優先パラメータ要求値に漸近させるように更新する優先パラメータ漸近手段と、
該優先パラメータ漸近手段による優先パラメータの値の更新の都度、その更新後の値の優先パラメータを有し、且つ前記所定の境界条件を満足する歩容を前記動力学モデルを用いて生成し得る歩容パラメータである新規歩容パラメータを探索的に決定する新規歩容パラメータ決定手段とを備えると共に、
前記新規歩容パラメータ決定手段は、前記新規歩容パラメータを新たに決定するときの前記優先パラメータ漸近手段による優先パラメータの値の更新回数をｎ（ｎ：ｎ≧１を満たす整数）とし、その第ｎ回目の更新処理によって得られた優先パラメータの値を第ｎ優先パラメータ更新値とし、当該新たに決定する新規歩容パラメータを第ｎ新規歩容パラメータとし、前記ベース歩容パラメータを第０新規歩容パラメータとしたとき、非優先パラメータの値に第ｎ−１新規歩容パラメータの非優先パラメータの値を設定し、且つ、優先パラメータの値を第ｎ優先パラメータ更新値に設定してなる歩容パラメータを初期探索候補歩容パラメータとして、この初期探索候補歩容パラメータの非優先パラメータのうちの所定のパラメータである探索対象パラメータの値を前記所定の境界条件を満たすように探索することにより第ｎ新規歩容パラメータを決定する手段であり、
前記優先パラメータ漸近手段による優先パラメータの値の最後の更新時に決定された新規歩容パラメータを前記目標歩容を規定する歩容パラメータとして、該新規歩容パラメータと前記動力学モデルとを用いて該目標歩容を生成するようにしたことを特徴とするものである。
【００１０】
なお、この第１発明を含めて本願発明においては、目標歩容は、ロボットの運動（各部位の位置・姿勢、あるいは各関節の変位量）の目標瞬時値の時系列から構成され、あるいは、該運動の目標瞬時値の時系列とロボットに作用する床反力（並進力、モーメント、作用点の少なくともひとつ）の目標瞬時値の時系列とから構成される。また、ロボットの動力学モデルは、少なくともロボットの運動とロボットに作用する床反力との関係を表す運動・床反力モデル（ロボットの動力学方程式）を含むモデルである。この動力学モデルには、ロボットの運動に関する制約条件（ロボットのある部位の可動範囲や、リンク機構の幾何学的な拘束条件など）あるいは床反力に関する制約条件（床反力の所定成分の許容範囲、あるいは該床反力の作用点の存在許容範囲など）が付加されていてもよく、その場合、それらの制約条件と上記運動・床反力モデルとを合わせたものが動力学モデルである。また、歩容パラメータと動力学モデルとを用いて歩容を生成するということは、歩容パラメータを基に、動力学モデルに対する入力量あるいは動力学モデルの状態量を決定して、該動力学モデル上の動力学（運動・床反力モデルの関係、あるいはその関係と付加された制約条件）を満たす歩容を生成することを意味する。
【００１１】
前記第１発明によれば、前記優先パラメータ漸近手段による優先パラメータの値の更新の都度、前記新規歩容パラメータ決定手段により新たに決定される前記新規歩容パラメータの優先パラメータの値は、優先パラメータ漸近手段による更新後の優先パラメータの値に一致する。従って、該新規歩容パラメータの優先パラメータの値は、前記ベース歩容パラメータ（＝第０新規歩容パラメータ）から段階的に優先パラメータ要求値、すなわち前記目標歩容に関する要求を満足するための優先パラメータの値に近づいていき、最終的に該優先パラメータ要求値に一致するように更新されることとなる。
【００１２】
また、優先パラメータの値の任意の第ｎ回目の更新時に決定される第ｎ新規歩容パラメータは、非優先パラメータの値に第ｎ−１新規歩容パラメータの非優先パラメータの値を設定し、且つ、優先パラメータの値を第ｎ回目の更新後の値（第ｎ優先パラメータ更新値）に設定してなる歩容パラメータ（優先歩容パラメータ以外のパラメータが第ｎ−１新規歩容パラメータと同一になる歩容パラメータ）を初期探索候補歩容パラメータとして、この初期探索候補歩容パラメータの非優先パラメータのうちの所定のパラメータである探索対象パラメータの値を前記所定の境界条件を満たすように探索することにより決定される。該該境界条件は、例えば前記所定の期間の一端（始端または終端の時刻）における歩容（瞬時値）の所定の状態量（例えばロボットのある部位の位置、姿勢、もしくはその変化速度、あるいは、床反力）が所定の値に一致またはほぼ一致するというような条件である。
【００１３】
この場合、初期探索候補歩容パラメータは、その探索パラメータ以外のパラメータが、これから決定しようとする第ｎ新規歩容パラメータと同一である。そして、該初期探索候補歩容パラメータと先に決定された第ｎ−１新規歩容パラメータとは、それらの優先パラメータの値の差を十分に小さくできるので、新たに決定しようとする第ｎ新規歩容パラメータの、前記所定の境界条件を満たし得るような適正な探索対象パラメータの値は、第ｎ−１新規歩容パラメータの探索対象パラメータの値から大きくかけ離れたものとなることはない。このため、前記境界条件を満たし得るような第ｎ新規歩容パラメータの探索対象パラメータを容易に短時間で探索することができる。
【００１４】
そして、優先パラメータの値の最後の更新時、すなわち、優先パラメータの値を最終的に前記優先パラメータ要求値に一致させたときに決定された新規歩容パラメータと前記動力学モデルとを用いて前記目標歩容が生成される。
【００１５】
従って、第１発明によれば、生成しようとする前記目標歩容を規定する歩容パラメータは、その優先パラメータの値を前記ベース歩容パラメータの優先パラメータの値から徐々に（段階的に）、本来の要求値である優先パラメータ要求値に近づけつつ、優先パラメータでない探索対象パラメータの値を探索的に調整していくことで、最終的に前記境界条件を満足し得るように決定されることとなる。換言すれば、ベース歩容パラメータを起点として、それを、前記目標歩容に関する要求と境界条件とを徐々に満たしていくように変化させていくことで該目標歩容を規定する歩容パラメータが決定されることとなる。この場合、ベース歩容パラメータは、あらかじめ用意された基準歩容を規定する歩容パラメータと、所定の境界条件を満たすように過去に決定された歩容パラメータとのうちのいずれかであるので、それと、動力学モデルとを用いて歩容を生成したときにその歩容の発散などの不都合を生じないか、もしくは生じ難い歩容パレメータ（歩容パラメータとして適切なもの）である。このため、第１発明で、目標歩容を規定するものとして最終的に決定される歩容パラメータは、それと動力学モデルとを用いて生成される歩容が発散を生じないか、もしくは発散が生じ難いものとすることが可能となる。また、前記したように、優先パラメータの各回の更新時に、適正な新規歩容パラメータの探索対象パラメータは容易に短時間で探索できるので、結果的に、前記目標歩容を規定する最終的な歩容パラメータを効率よく決定できることとなる。
【００１６】
よって、第１発明によれば、目標歩容の発散を防止しつつ、所要の境界条件を満足し得る目標歩容を効率よく生成することができる。また、発散しない、あるいは発散し難い目標歩容を生成できることから、発散を防止するために目標歩容のうちの目標ＺＭＰや目標床反力モーメントなどを大きく修正したりする必要がなくなり、移動ロボットの安定余裕を高めることができる。
【００１７】
また、本発明の移動ロボットの歩容生成装置の第２発明は、前記の目的を達成するために、
所定の期間における移動ロボットの目標歩容を生成するとき、該目標歩容に続く仮想的な周期的歩容である定常歩容を規定する複数のパラメータの組である定常歩容パラメータを決定すると共に、その決定した定常歩容パラメータと前記移動ロボットの動力学モデルとを用いて生成される定常歩容に前記目標歩容を近づけるように該目標歩容を生成する移動ロボットの歩容生成装置において、
前記目標歩容に対応する定常歩容に関する要求が入力され、前記定常歩容パラメータのうちの所定のパラメータを優先パラメータとし、該優先パラメータ以外のパラメータを非優先パラメータとしたとき、前記要求を満足するための該優先パラメータの値である優先パラメータ要求値を決定する優先パラメータ要求値決定手段と、
前記移動ロボットのあらかじめ用意された基準定常歩容を規定する定常歩容パラメータと、所定の境界条件を満たすように過去に決定された定常歩容パラメータとのうちのいずれかの定常歩容パラメータをベース定常歩容パラメータとして設定するベース定常歩容パラメータ設定手段と、
前記ベース定常歩容パラメータの優先パラメータの値を、該値が前記優先パラメータ要求値に一致するまで段階的に前記優先パラメータ要求値に漸近させるように更新する優先パラメータ漸近手段と、
該優先パラメータ漸近手段のよる優先パラメータの値の更新の都度、その更新後の値の優先パラメータを有し、且つ前記所定の境界条件を満たす歩容を前記動力学モデルを用いて生成し得る定常歩容パラメータである新規定常歩容パラメータを探索的に決定する新規定常歩容パラメータ探索手段とを備えると共に、
前記新規定常歩容パラメータ探索手段は、前記新規定常歩容パラメータを新たに決定するときの前記優先パラメータ漸近手段による優先パラメータの値の更新回数をｎ（ｎ：ｎ≧１を満たす整数）とし、その第ｎ回目の更新後の優先パラメータの値を第ｎ優先パラメータ更新値とし、当該新たに決定する新規定常歩容パラメータを第ｎ新規定常歩容パラメータとし、前記ベース定常歩容パラメータを第０新規定常歩容パラメータとしたとき、非優先パラメータの値に第ｎ−１新規定常歩容パラメータの非優先パラメータの値を設定し、且つ、優先パラメータの値に第ｎ優先パラメータ更新値を設定してなる歩容パラメータを初期探索候補歩容パラメータとして、この初期探索候補歩容パラメータの非優先パラメータのうちの所定のパラメータである探索対象パラメータの値を前記所定の境界条件を満たすように探索することにより第ｎ新規定常歩容パラメータを決定する手段であり、
前記優先パラメータ漸近手段による優先パラメータの値の最後の更新時に決定された新規定常歩容パラメータを前記目標歩容に対応する定常歩容の定常歩容パラメータとして、該定常歩容パラメータと前記動力学モデルとを用いて生成される定常歩容に近づけるように前記目標歩容を生成するようにしたことを特徴とするものである。
【００１８】
この第２発明によれば、前記優先パラメータ漸近手段による優先パラメータの値の更新の都度、前記新規定常歩容パラメータ決定手段により新たに決定される前記新規定常歩容パラメータの優先パラメータの値は、優先パラメータ漸近手段による更新後の優先パラメータの値に一致する。従って、該新規定常歩容パラメータの優先パラメータの値は、前記ベース定常歩容パラメータ（＝第０新規定常歩容パラメータ）から段階的に優先パラメータ要求値、すなわち前記定常歩容に関する要求を満足するための優先パラメータの値に近づいていき、最終的に該優先パラメータ要求値に一致するように更新されることとなる。
【００１９】
また、優先パラメータの値の任意の第ｎ回目の更新時に決定される第ｎ新規定常歩容パラメータは、非優先パラメータの値に第ｎ−１新規定常歩容パラメータの非優先パラメータの値を設定し、且つ、優先パラメータの値を第ｎ回目の更新後の値（第ｎ優先パラメータ更新値）に設定してなる歩容パラメータ（優先歩容パラメータ以外のパラメータが第ｎ−１新規定常歩容パラメータと同一になる歩容パラメータ）を初期探索候補歩容パラメータとして、この初期探索候補歩容パラメータの非優先パラメータのうちの所定のパラメータである探索対象パラメータの値を前記所定の境界条件を満たすように探索することにより決定される。該境界条件は、例えば定常歩容の１周期の期間の両端（該期間の始端および終端）における該歩容の所定の状態量（ロボットのある部位の位置、姿勢、もしくはその変化速度、あるいは、床反力）が互いに一致するというような条件である。
【００２０】
この場合、初期探索候補歩容パラメータは、その探索パラメータ以外のパラメータが、これから決定しようとする第ｎ新規定常歩容パラメータと同一である。そして、該初期探索候補歩容パラメータと先に決定された第ｎ−１新規定常歩容パラメータとは、それらの優先パラメータの値の差を十分に小さくできるので、新たに決定しようとする第ｎ新規定常歩容パラメータの、前記所定の境界条件を満たし得るような適正な探索対象パラメータの値は、第ｎ−１新規定常歩容パラメータの探索対象パラメータの値から大きくかけ離れたものとなることはない。このため、前記境界条件を満たし得るような第ｎ新規定常歩容パラメータの探索対象パラメータを容易に短時間で探索することができる。
【００２１】
従って、第２発明によれば、生成しようとする前記目標歩容に対応する定常歩容を規定する定常歩容パラメータは、その優先パラメータの値を前記ベース歩容パラメータの優先パラメータの値から徐々に（段階的に）、本来の要求値である優先パラメータ要求値に近づけつつ、優先パラメータでない探索対象パラメータの値を探索的に調整していくことで、最終的に前記境界条件を満足し得るように決定されることとなる。換言すれば、ベース歩容パラメータを起点として、それを、前記定常歩容に関する要求と境界条件とを徐々に満たしていくように変化させていくことで該定常歩容を規定する定常歩容パラメータが決定されることとなる。この場合、ベース歩容パラメータは、あらかじめ用意された基準定常歩容を規定する歩容パラメータと、所定の境界条件を満たすように過去に決定された定常歩容パラメータとのうちのいずれかであるので、それと、動力学モデルとを用いて定常歩容を生成したときに前記境界条件を満足し得るような適切な歩容パラメータである。このため、第２発明で、前記目標歩容に対応する定常歩容を規定するものとして最終的に決定される定常歩容パラメータは、それと動力学モデルとを用いて生成される定常歩容が、前記境界条件を適切に満足し得るものとすることが可能となる。また、前記したように、優先パラメータの各回の更新時に、適正な新規定常歩容パラメータの探索対象パラメータは容易に短時間で探索できるので、結果的に、前記目標歩容に対応する定常歩容を規定する最終的な定常歩容パラメータを効率よく決定できることとなる。
【００２２】
そして、第２発明では、優先パラメータの値の最後の更新時、すなわち、優先パラメータの値を最終的に前記優先パラメータ要求値に一致させたときに決定された新規定常歩容パラメータと前記動力学モデルとを用いて生成される定常歩容に近づけるように前記目標歩容が生成されるので、該目標歩容は、第ｎ動力学モデル上でロボットの継続的な安定性を適切に高め得る歩容となり、該目標歩容の発散を防止することができる。また、発散しない、あるいはし難い目標歩容を生成できることから、発散を防止するために目標歩容のうちの目標ＺＭＰや目標床反力モーメントなどを大きく修正したりする必要がなくなり、移動ロボットの安定余裕を高めることができる。
【００２３】
なお、第１発明と第２発明とは複合させてもよい。すなわち、第１発明において、所定の期間における目標歩容を第２発明における定常歩容に近づけるように生成し、このとき、その定常歩容を規定する定常歩容パラメータを第２発明の如く決定する。この場合、第１発明における動力学モデルと第２発明における動力学モデルとは同じでよいことはもちろんであるが、異なるものでもよい。
【００２４】
前記第１発明では、前記優先パラメータ漸近手段による優先パラメータの値の総更新回数は、前記ベース歩容パラメータの優先パラメータの値と、前記優先パラメータ要求値との差に応じて設定されることが好ましい（第３発明）。
【００２５】
同様に、前記第２発明では、前記優先パラメータ漸近手段による優先パラメータの値の総更新回数は、前記ベース定常歩容パラメータの優先パラメータの値と、前記優先パラメータ要求値との差に応じて設定されることが好ましい（第４発明）。
【００２６】
これらの第３発明または第４発明によれば、優先パラメータの値の各更新時における更新量が過大あるいは過小にならないような適切な更新量にして、各第ｎ新規歩容パラメータまたは各第ｎ新規定常歩容パラメータの探索対象パラメータの探索処理を効率よく行なうことができる。
【００２７】
また、前記第１発明では、前記歩容パラメータは、前記目標歩容のうちの目標ＺＭＰ軌道を規定するパラメータを前記探索対象パラメータとして含むことが好ましい（第５発明）。
【００２８】
この第５発明によれば、目標ＺＭＰ軌道をロボットの安定余裕を確保するために好適な軌道から大きく修正しないようにしつつ、前記境界条件を満足し得る目標歩容を生成することが可能となる。
【００２９】
また、前記第２発明では、前記定常歩容パラメータは、前記定常歩容の１周期の期間の一端における移動ロボットの運動の所定の状態量を規定するパラメータを前記探索対象パラメータとして含むことが好ましい（第６発明）。
【００３０】
この第６発明によれば、定常歩容の境界条件が満たされる定常歩容パラメータを、定常歩容の１周期の期間の一端における移動ロボットの運動の所定の状態量を調整することで決定することとなるので、安定余裕の高い定常歩容を規定する定常歩容パラメータを決定できる。なお、定常歩容は、周期的な歩容であるので、その１周期の一端におけるロボットの運動の所定の状態量を調整することは、１周期の他端におけるロボットの運動の所定の状態量を調整することを意味する。
【００３１】
また、前記第１発明では、前記所定の境界条件は、前記所定の期間における歩容の境界における移動ロボットの運動の所定の状態量が前記境界において隣接する歩容における移動ロボットの運動の該所定の状態量と一致するという条件を含む（第７発明）。
【００３２】
すなわち、目標歩容は、連続している必要があるので、前記所定の期間における目標歩容を生成するとき、該所定の期間における歩容の境界（該所定の期間の始端または終端における歩容）で、移動ロボットの歩容の運動の所定の状態量（例えばある移動ロボットのある部位の位置、姿勢、もしくはその変化速度）が該歩容に隣接する歩容における当該運動の所定の状態量と一致することが望ましい。
【００３３】
また、第１発明において、前記所定の期間における目標歩容に続く仮想的な周期的歩容である定常歩容（あるいはこれを規定する定常歩容パラメータ）を決定した上で、この目標歩容に近づけるように目標歩容を生成する場合には、前記所定の境界条件は、前記所定の期間における歩容の終端側の境界における移動ロボットの運動の所定の状態量が該歩容に続くべき仮想的な周期的歩容として決定された定常歩容における移動ロボットの運動の該所定の状態量と一致するという条件を含むことが好ましい（第８発明）。
【００３４】
このように前記目標歩容に対応する境界条件を定めることで、目標歩容の終端側（前記所定の期間の終端側）で定常歩容に近づけるような目標歩容を生成し得る歩容パラメータを効率よく生成できる。なお、第８発明において、定常歩容は、必ずしもそれを規定する定常歩容パラメータを第２発明の如く段階的に決定する必要はないが、第２発明の如く決定するようにしてもよい。
【００３５】
また、第２発明においては、前記所定の境界条件は、前記定常歩容の１周期の始端と終端における移動ロボットの運動の所定の状態量が一致するという条件を含むことが好ましい（第９発明）。
【００３６】
定常歩容は、周期的な歩容であるので、上記のように境界条件を定めることで、周期性の条件を満たす定常歩容を生成し得る定常歩容パラメータを適切に決定できる。なお、この第９発明における定常歩容の１周期の始端は必ずしも、前記目標歩容の終端と一致する必要はない。
【００３７】
前記第６〜第９発明では、特に、前記移動ロボットが、上体から延設された複数の脚体を備えた脚式移動ロボットである場合には、前記所定の状態量は、該ロボットの上体の位置、該上体の速度、該上体の姿勢角、該上体の姿勢角の角速度、該上体の位置と速度との重み付き平均値、該ロボットの全体重心の位置、該全体重心の速度、該全体重心の位置と速度との重み付き平均値、および発散成分のうちの少なくともいずれか一つを含むことが好ましい（第１０発明）。
【００３８】
これによれば、第６発明にあっては、前記探索対象パラメータを少なくしつつ、定常歩容の境界条件を満たすような定常歩容パラメータを効率よく決定できる。また、特に第８発明にあっては、前記所定の期間における目標歩容を定常歩容に近づけるための歩容パラメータを、探索対象パラメータを少なくしつつ効率よく決定できる。なお、第８発明では、特に、前記所定の状態量としては、上体の位置と速度との重み付き平均値、あるいは全体重心の位置と速度との重み付き平均値、あるいは発散成分が好適である。
【発明を実施するための最良の形態】
【００３９】
以下、添付図面を参照して本発明の実施形態を説明する。尚、本明細書の実施形態では、移動ロボットとしては脚式移動ロボットとしての２足移動ロボットを例にとる。【００４０】
図１は、本発明の実施形態を適用する２足移動ロボットの全体的構成の概略を示す概略図である。【００４１】
図示の如く、２足移動ロボット（以下、ロボットという）１は上体(ロボット１の基体）３から下方に延設された左右一対の脚体（脚部リンク）２，２を備える。両脚体２，２は同一構造であり、それぞれ６個の関節を備える。その６個の関節は上体３側から順に、股（腰部）の回旋（回転）用（上体３に対するヨー方向の回転用）の関節１０Ｒ，１０Ｌと、股（腰部）のロール方向（Ｘ軸まわり）の回転用の関節１２Ｒ，１２Ｌと、股（腰部）のピッチ方向（Ｙ軸まわり）の回転用の関節１４Ｒ，１４Ｌ、膝部のピッチ方向の回転用の関節１６Ｒ，１６Ｌと、足首のピッチ方向の回転用の関節１８Ｒ，１８Ｌと、足首のロール方向の回転用の関節２０Ｒ，２０Ｌとから構成される。なお、本明細書において、符号Ｒ，Ｌはそれぞれロボット１の右側、左側に対応するものであることを意味する符号である。【００４２】
各脚体２の足首の２つの関節１８Ｒ（Ｌ），２０Ｒ（Ｌ）の下部には、各脚体２の先端部を構成する足平（足部）２２Ｒ（Ｌ）が取着されると共に、両脚体２，２の最上位には、各脚体２の股の３つの関節１０Ｒ（Ｌ），１２Ｒ（Ｌ），１４Ｒ（Ｌ）を介して前記上体３が取り付けられている。上体３の内部には、詳細を後述する制御ユニット６０などが格納される。なお、図１では図示の便宜上、制御ユニット６０を上体３の外部に記載している。【００４３】
上記構成の各脚体２においては、股関節（あるいは腰関節）は関節１０Ｒ（Ｌ），１２Ｒ（Ｌ），１４Ｒ（Ｌ）から構成され、膝関節は関節１６Ｒ（Ｌ）から構成され、足首関節は関節１８Ｒ（Ｌ），２０Ｒ（Ｌ）から構成される。また股関節と膝関節とは大腿リンク２４Ｒ（Ｌ）で連結され、膝関節と足首関節とは下腿リンク２６Ｒ（Ｌ）で連結される。【００４４】
上体３の上部の両側部には左右一対の腕体５，５が取り付けられると共に、上体３の上端部には頭部４が配置される。各腕体５は、３つの関節３０Ｒ（Ｌ），３２Ｒ（Ｌ），３４Ｒ（Ｌ）から構成された肩関節と、関節３６Ｒ（Ｌ）から構成された肘関節と、関節３８Ｒ（Ｌ）から構成された手首関節と、この手首関節に連結された手先部４０Ｒ（Ｌ）とを備えている。肩関節と肘関節との間、および肘関節と手首関節との間はそれぞれ剛体状のリンクで構成されている。【００４５】
上記のロボット１の構成により、各脚体２の足平２２Ｒ（Ｌ）は、上体３に対して６つの自由度を与えられている。そして、ロボット１の歩行等の移動中に、両脚体２，２を合わせて６＊２＝１２個（この明細書で「＊」はスカラに対する演算としては乗算を、ベクトルに対する演算としては外積を示す）の関節を適宜な角度で駆動することで、両足平２２Ｒ，２２Ｌの所望の運動を行うことができる。これにより、ロボット１は任意に３次元空間を移動することができる。また、各腕体５は、その肩関節、肘関節、手首関節の回転によって、腕振り等の運動を行うことができる。【００４６】
図１に示す如く、各脚体２の足首関節１８Ｒ（Ｌ），２０Ｒ（Ｌ）の下方には足平２２Ｒ（Ｌ）との間に公知の６軸力センサ５０が介装されている。該６軸力センサ５０は、各脚体２の足平２２Ｒ（Ｌ）の着地の有無、および各脚体２に作用する床反力（接地荷重）等を検出するためのものであり、該床反力の並進力の３方向成分Ｆｘ，Ｆｙ，Ｆｚ並びにモーメントの３方向成分Ｍｘ，Ｍｙ，Ｍｚの検出信号を制御ユニット６０に出力する。また、上体３には、Ｚ軸（鉛直方向（重力方向））に対する上体３の傾斜角（姿勢角）およびその角速度を検出するための姿勢センサ５４が備えられ、その検出信号が該姿勢センサ５４から制御ユニット６０に出力される。この姿勢センサ５４は、図示を省略する加速度センサおよびジャイロセンサを備え、これらのセンサの検出信号が上体３の傾斜角およびその角速度を検出するために用いられる。また、詳細構造の図示は省略するが、ロボット１の各関節には、それを駆動するための電動モータ６４（図３参照）と、その電動モータ６４の回転量（各関節の回転角）を検出するためのエンコーダ（ロータリエンコーダ）６５（図３参照）とが設けられ、該エンコーダ６５の検出信号が該エンコーダ６５から制御ユニット６０に出力される。【００４７】
さらに、図１では図示を省略するが、ロボット１の外部には、ロボット１を操縦するためのジョイスティック（操作器）７３（図３参照）が設けられ、そのジョイスティック７３を操作することで、直進移動しているロボット１を旋回させるなどロボット１の移動方向を指定する、ロボット１の歩行、走行などの運動形態および床面の摩擦状態（路面状態）を指定するなど、ロボット１の歩容に対する要求もしくは制約条件を必要に応じて制御ユニット６０に入力できるように構成されている。ジョイスティック７３は有線もしくは無線により制御ユニット６０との通信が可能とされている。【００４８】
図２は本実施形態における各脚体２の先端部分（各足平２２Ｒ（Ｌ）を含む）の基本構成を概略的に示す図である。同図に示すように、各足平２２Ｒ（Ｌ）の上方には、前記６軸力センサ５０との間にばね機構７０が装備されると共に、足底（各足平２２Ｒ，Ｌの底面）にはゴムなどからなる足底弾性体７１が貼られている。これらのばね機構７０及び足底弾性体７１によりコンプライアンス機構７２が構成されている。詳細な図示は省略するが、ばね機構７０は、足平２２Ｒ（Ｌ）の上面部に取り付けられた方形状のガイド部材（図示省略）と、足首関節１８Ｒ（Ｌ）（図２では足首関節２０Ｒ（Ｌ）を省略している）および６軸力センサ５０側に取り付けられ、前記ガイド部材に弾性材（ゴムやばね）を介して微動自在に収納されるピストン状部材（図示省略）とから構成されている。【００４９】
図２に実線で表示された足平２２Ｒ（Ｌ）は、床反力を受けていないときの状態を示している。各脚体２が床反力を受けると、コンプライアンス機構７２のばね機構７０と足底弾性体７１とがたわみ、足平２２Ｒ（Ｌ）は図中に点線で例示したような位置姿勢に移る。このコンプラインアス機構７２の構造は、着地衝撃を緩和するためだけでなく、制御性を高めるためにも重要なものである。その詳細は、例えば本出願人が先に提案した特開平５−３０５５８４号公報に詳細に説明されているので、本明細書でのさらなる説明は省略する。【００５０】
図３は制御ユニット６０の構成を示すブロック図である。該制御ユニット６０はマイクロコンピュータにより構成されており、ＣＰＵからなる第１の演算装置９０及び第２の演算装置９２、Ａ／Ｄ変換器８０、カウンタ８６、Ｄ／Ａ変換器９６、ＲＡＭ８４、ＲＯＭ９４、並びにこれらの間のデータ授受を行うバスライン８２を備えている。この制御ユニット６０では、各脚体２の６軸力センサ５０、姿勢センサ５４（加速度センサおよびレートジャイロセンサ）、ジョイスティック７３等の出力信号はＡ／Ｄ変換器８０でデジタル値に変換された後、バスライン８２を介してＲＡＭ８４に送られる。またロボット１の各関節のエンコーダ６５（ロータリーエンコーダ）の出力は、カウンタ８６を介してＲＡＭ８４に入力される。【００５１】
前記第１の演算装置９０は後述の如く目標歩容を生成すると共に、関節角変位指令（各関節の変位角もしくは各電動モータ６４の回転角の指令値）を算出し、ＲＡＭ８４に送出する。また、第２の演算装置９２はＲＡＭ８４から関節角変位指令と、前記エンコーダ６５の出力信号に基づいて検出された関節角の実測値とを読み出し、各関節の駆動に必要な操作量を算出して、その操作量をＤ／Ａ変換器９６とサーボアンプ６４ａとを介して各関節を駆動する電動モータ６４に出力する。【００５２】
図４は、本明細書の実施形態におけるロボット１の制御ユニット６０の主な機能的構成を示すブロック図である。この図４中の「実ロボット」の部分以外の部分が制御ユニット６０が実行する処理機能（主として第１の演算装置９０及び第２の演算装置９２の機能）によって構成されるものである。その処理機能は、制御ユニット６０に実装されたプログラム等によって実現されている。尚、以下の説明では、ロボット１の各部（脚体２、腕体５など）の左右を特に区別する必要がないときは、前記符号Ｒ，Ｌを省略する。【００５３】
以下説明すると、制御ユニット６０は、後述の如く目標歩容を自在かつリアルタイムに生成して出力する歩容生成装置１００を備えている。この歩容生成装置１００は、その機能によって本発明の実施形態を実現するものである。この歩容生成装置１００が出力する目標歩容は、補正目標上体姿勢軌道（上体３の目標姿勢の軌道）、補正目標上体位置軌道（上体３の目標位置の軌道）、目標足平位置姿勢軌道（各足平２２の目標位置及び目標姿勢の軌道）、目標腕姿勢軌道（各腕体の目標姿勢の軌道）、目標ＺＭＰ（目標全床反力中心点）軌道、目標ＺＭＰまわりの補正目標床反力モーメント軌道および目標全床反力軌道から構成される。尚、脚体２や腕体５以外に、上体３に対して可動な部位（頭部など）を備える場合には、その可動部位の目標位置姿勢軌道が目標歩容に加えられる。【００５４】
ここで、本明細書での歩容に関する基本的な用語の定義などについて説明しておく。歩容における「軌道」は時間的変化のパターン（時系列パターン）を意味し、「軌道」の代わりに「パターン」と称することもある。また、「姿勢」は空間的な向きを意味する。例えば上体姿勢はＺ軸（鉛直軸）に対するロール方向（Ｘ軸まわり）の上体３の傾斜角（姿勢角）とピッチ方向（Ｙ軸まわり）の上体３の傾斜角（姿勢角）とで表され、足平姿勢は各足平２２に固定的に設定された２軸の空間的な方位角で表される。本明細書では、上体姿勢は上体姿勢角もしくは上体傾斜角ということもある。なお、腕体５に関する目標腕姿勢は、本明細書の実施形態では上体３に対する相対姿勢で表される。【００５５】
上体位置は、上体３のあらかじめ定めた代表点（上体３に対して任意に固定設定したローカル座標系でのある固定点）の位置を意味する。同様に、足平位置は、各足平２２のあらかじめ定めた代表点（各足平２２に対して任意に固定設定したローカル座標系での固定点）の位置を意味する。例えば各足平２２の代表点は、各足平２２の底面上（より具体的には各脚体２の足首関節の中心から各足平２２の底面への垂線が該底面と交わる点等）に設定される。【００５６】
上体３に関する前記補正目標上体姿勢および補正目標上体位置は、ある基本となる目標上体姿勢（仮目標上体姿勢）および目標上体位置（仮目標上体位置）を補正したものである。本明細書の実施形態では、基本となる目標上体位置姿勢は、後述する目標瞬時値発生部で決定される目標上体位置姿勢（後述の図１２のＳ０３２で決定される目標上体位置姿勢）が相当する。【００５７】
なお、以降の説明では、誤解を生じるおそれがない場合には、しばしば「目標」を省略する。【００５８】
歩容のうちの、床反力に係わる構成要素以外の構成要素、すなわち足平位置姿勢、上体位置姿勢等、ロボット１の各部位の位置姿勢に関する構成要素を総称的に「運動」という。また、各足平２２に作用する床反力（並進力及びモーメントからなる床反力）を「各足平床反力」と呼び、ロボット１の全て（２つ）の足平２２Ｒ，２２Ｌについての「各足平床反力」の合力を「全床反力」という。ただし、以下の説明においては、各足平床反力はほとんど言及しないので、特に断らない限り、「床反力」は「全床反力」と同義として扱う。【００５９】
目標床反力は、一般的には、作用点とその点に作用する並進力及びモーメントによって表現される。作用点はどこにとっても良いので、同一の目標床反力でも無数の表現が考えられるが、特に目標床反力中心点（全床反力の中心点の目標位置）を作用点にして目標床反力を表現すると、目標床反力のモーメント成分は、鉛直成分（鉛直軸（Ｚ軸）まわりのモーメント成分）を除いて零になる。換言すれば、目標床反力中心点まわりの目標床反力のモーメントの水平成分（水平軸（Ｘ軸及びＹ軸）まわりのモーメント）は零になる。【００６０】
なお、動力学的平衡条件を満足する歩容では、ロボット１の目標運動軌道から算出されるＺＭＰ（目標運動軌道から算出される慣性力と重力との合力がその点まわりに作用するモーメントが、鉛直成分を除いて零になる点）と目標床反力中心点とは一致することから、目標床反力中心点軌道の代わりに目標ＺＭＰ軌道を与えると言っても同じことである。【００６１】
ここで、ロボット１の歩行を行う場合には、例えば本出願人が先に特開平１０−８６０８０号公報で提案した上体高さ決定手法によってロボット１の上体３の鉛直位置（上体高さ）が決定されると、並進床反力鉛直成分は従属的に決定される。さらに、目標歩容の運動による慣性力と重力との合力が目標ＺＭＰまわりに発生するモーメントの水平成分が０になるようにロボット１の上体水平位置軌道（あるいは全体重心の位置軌道）を決定することで、並進床反力水平成分も従属的に決定される。このため、ロボット１の歩行を行う場合には、目標歩容の床反力に関して明示的に設定すべき物理量としては、目標ＺＭＰだけでもよい。【００６２】
一方、床反力が０もしくはほぼ０になるような時期を伴う歩容でのロボット１の移動、例えばロボット１の走行を行う場合には、並進床反力鉛直成分もロボット１の動作制御上重要である。このため、並進床反力鉛直成分の目標軌道を明示的に設定した上で、ロボット１の目標上体鉛直位置等の軌道を決定することが望ましい。また、ロボット１の歩行においても、摩擦係数が低い床面上（低ミュー路上）でロボット１を移動させるような場合には、並進床反力鉛直成分（より厳密には並進床反力の床面に垂直な成分）が摩擦力に影響を及ぼすことから、ロボット１のスリップなどを防止する上で、並進床反力鉛直成分の目標軌道を明示的に設定することが望ましい。さらに、本発明の実施形態では、最終的に歩容生成装置１００が出力する目標歩容では、目標ＺＭＰまわりに補正目標床反力モーメント（水平成分が０とは限らないモーメント）を発生させる。【００６３】
このようなことから、本明細書の実施形態では、歩容生成装置１００が出力する目標歩容の床反力に関する構成要素として、目標ＺＭＰ軌道のほか、目標ＺＭＰまわりの補正目標床反力モーメントと、目標並進床反力鉛直成分とを含ませている。【００６４】
そして、本明細書では、歩容生成装置１００が出力する目標歩容は、広義には、「１歩ないしは複数歩の期間の目標運動軌道と目標床反力軌道との組」の意味で使用され、狭義には、「１歩の期間の目標運動軌道と、目標ＺＭＰ、補正目標床反力モーメント及び目標並進床反力鉛直成分を含む目標床反力軌道との組」の意味で使用される。【００６５】
但し、本明細書の実施形態においては、最終的な目標歩容（歩容生成装置１００が出力する目標歩容）を決定するまでの過程で作成する目標歩容（仮目標歩容）では、目標ＺＭＰまわりの目標床反力モーメントの水平成分は、本来の目標ＺＭＰの定義どおりに０とされる。従って、最終的に決定する目標歩容以外の仮目標歩容では、上記狭義の目標歩容から、補正目標床反力モーメントを除いたものが目標歩容の意味で使用される。補足すると、本明細書の実施形態では、最終的な目標歩容（歩容生成装置１００が出力する目標歩容）を決定するまでの過程で作成する目標歩容（仮目標歩容）が本発明に密接に関連するものとなっている。このため、以降の説明で現れる目標歩容の大部分は、前記狭義の目標歩容から、補正目標床反力モーメントを除いたもの（目標ＺＭＰを満足する歩容）の意味で使用される。【００６６】
なお、以降の説明では、「床反力鉛直成分」は「並進床反力鉛直成分」を意味するものとし、床反力のうちのモーメントの鉛直成分（鉛直軸回り成分）は、「モーメント」という用語を用いて「床反力鉛直成分」と区別をする。同様に、「床反力水平成分」は「並進床反力水平成分」を意味するものとする。【００６７】
また、目標歩容の「１歩」は、ロボット１の片方の脚体２が着地してからもう一方の脚体２が着地するまでの意味で使用する。【００６８】
また、歩容における両脚支持期とは、ロボット１がその自重を両脚体２，２で支持する期間、片脚支持期とはいずれか一方のみの脚体２でロボット１の自重を支持する期間、空中期とは両脚体２，２が床から離れている（空中に浮いている）期間を言う。片脚支持期においてロボット１の自重を支持しない側の脚体２を遊脚と呼ぶ。なお、片脚支持期と空中期とが交互に繰り返されるロボット１の走行歩容では両脚支持期は無い。この場合、空中期では両脚２，２とも、ロボット１の自重を支持しないこととなるが、便宜上、該空中期の直前の片脚支持期において遊脚であった脚体２、支持脚であった脚体２をそれぞれ該空中期においても遊脚、支持脚と呼ぶ。【００６９】
また、目標歩容の軌道は、グローバル座標系（床に固定された座標系）で記述される。グローバル座標系としては、例えば支持脚足平２２の着地位置姿勢に対応して定まる支持脚座標系が用いられる。この支持脚座標系は、例えば支持脚足平２２の底面のほぼ全面を床に接地した状態で、その足平２２が連結された足首関節の中心から床面に延ばした垂線が床と交わる点を原点とし、その原点を通る水平面に支持脚足平２２を投影したときの該足平２２の前後方向をＸ軸方向、左右方向をＹ軸方向とする座標系（Ｚ軸方向は鉛直方向）である。以降の説明では、特にことわらない限り、Ｘ、Ｙ、Ｚ座標は、この支持脚座標系の座標を意味する。【００７０】
図５は、歩容生成装置１００の詳細を示すブロック図である。この図５を参照して、歩容生成装置１００の処理のより具体的な概要を以下に説明する。【００７１】
図示の如く、歩容生成装置１００は歩容パラメータ決定部１００ａを備える。歩容パラメータ決定部１００ａは、目標歩容を規定する歩容パラメータの値あるいは時系列テーブルを決定する。この歩容パラメータ決定部１００ａは、本発明の中核に係わる処理を担うものである。【００７２】
本明細書の実施形態では、歩容パラメータ決定部１００ａが決定する歩容パラメータには、目標歩容のうちの、目標足平位置姿勢軌道、目標腕姿勢軌道、目標ＺＭＰ軌道、および目標床反力鉛直成分軌道をそれぞれ規定するパラメータが含まれる。【００７３】
ここで、歩容生成装置１００が目標歩容を生成するとき、遊脚足平２２の着地予定位置姿勢、着地予定時刻、あるいは歩幅、移動速度等の歩容生成用の基本的な要求値（要求パラメータ）が、前記ジョイスティック７３、もしくは図示しない行動計画部（ロボット１の行動計画を作成する装置）などの装置から歩容生成装置１００に与えられる。あるいは、上記要求パラメータをあらかじめ記憶保持した記憶媒体から該要求パラメータを歩容生成装置１００が読み込む。そして、歩容生成装置１００の歩容パラメータ決定部１００ａは、その要求パラメータに応じて歩容パラメータを決定する。【００７４】
また、本明細書の実施形態では、歩容パラメータ決定部１００ａが決定する歩容パラメータには、基準上体姿勢軌道、ＺＭＰ許容範囲、床反力水平成分許容範囲をそれぞれ規定するパラメータも含まれる。【００７５】
ここで、前記基準上体姿勢軌道は、最終的に歩容生成装置１００が出力するものではないが、目標歩容を決定するときに参酌されるものである。この基準上体姿勢軌道は、ロボット１の上体姿勢に関して、前記ジョイスティック７３あるいは行動計画部から与えられ、もしくはあらかじめ定められた要求（上体姿勢を鉛直姿勢に保つなどの要求）にそのまま従って生成される上体姿勢軌道である。目標上体姿勢（以降、「基準」が付いていない「上体姿勢」は、目標上体姿勢を表す）は、基準上体姿勢に長期的に追従するか、または一致するように生成される。【００７６】
また、前記ＺＭＰ許容範囲に関して補足すると、本明細書の実施形態では、目標歩容は、目標ＺＭＰのまわりに補正目標床反力モーメント（これは一般には０ではない）を発生するように修正される。したがって、目標ＺＭＰは、本来の定義（床反力モーメント水平成分が０である点という定義）とは異なる点となり、本来の定義を満足するＺＭＰ（以下、真のＺＭＰという）は、補正目標床反力モーメントを目標床反力鉛直成分で割った値だけ目標ＺＭＰからずれた位置に移る。【００７７】
修正された歩容（歩容生成装置１００が最終的に出力する目標歩容）の真のＺＭＰは、少なくともＺＭＰ存在可能範囲（いわゆる支持多角形のこと。床と足平２２の底面との間に粘着力が作用しないと仮定した場合における床反力作用点（ＺＭＰ）の存在可能範囲）内になければならない。さらにロボット１の安定余裕を十分にとるためには、修正された歩容の真のＺＭＰは、ＺＭＰ存在可能範囲のなかの中心付近の範囲にあることが望ましい。そこで、本明細書の実施形態では修正された歩容の真のＺＭＰが存在できる許容範囲を設定する。この範囲をＺＭＰ許容範囲と呼ぶ。ＺＭＰ許容範囲は、ＺＭＰ存在可能範囲と一致あるいはＺＭＰ存在可能範囲内に包含されるように設定される。【００７８】
なお、前記したように、目標ＺＭＰまわりの補正目標床反力モーメントを目標床反力鉛直成分で除算したものが、目標ＺＭＰに対する真のＺＭＰの位置のずれ量を表すので、目標ＺＭＰまわりの補正目標床反力モーメントを設定する代わりに、目標ＺＭＰに対する真のＺＭＰの位置のずれ量（補正目標床反力モーメントのＺＭＰ換算値）を設定してもよい。また、ＺＭＰ許容範囲は、その境界の位置に目標床反力鉛直成分を乗算することで、補正目標床反力モーメント許容範囲に変換することができ、その補正目標床反力モーメント許容範囲をＺＭＰ許容範囲の代わりに設定するようにしてもよい。【００７９】
また、前記床反力水平成分許容範囲は、ロボット１の足平２２の床との接地面に、足平２２が滑らないような大きさの摩擦力を発生させ得る床反力水平成分の許容範囲である。本明細書の実施形態では、少なくとも最終的に歩容生成装置１００が出力する目標歩容の運動（目標運動）は、それによって発生するロボット１の慣性力の水平成分に釣り合う床反力水平成分が床反力水平成分許容範囲内に収まるように生成される。【００８０】
なお、本明細書の実施形態で設定する床反力水平成分許容範囲は、後述のＳ０２２の処理で設定される定常歩容用のものと、Ｓ０２６の処理で設定される基本歩容用のものと、Ｓ０３０で設定される歩容補正用（フルモデル補正用）のものとがある。ただし、これらの床反力水平成分許容範囲は必ずしも互いに異なる必要はなく、同一でもよい。一方、ＺＭＰ許容範囲は、Ｓ０３０処理で設定される歩容補正用（フルモデル補正用）のものだけである。【００８１】
補足すると、目標歩容を生成するための歩容パラメータには、上記したパラメータ以外のパラメータも含まれる。それらは、歩容パラメータ決定部１００ａの中で、所要の境界条件を満たすように決定される。【００８２】
歩容パラメータ決定部１００ａで決定された歩容パラメータは目標瞬時値発生部１００ｂに入力される。目標瞬時値発生部１００ｂは入力された歩容パラメータに基づき、動力学モデルを用いて目標上体位置姿勢、目標足平位置姿勢、目標ＺＭＰ、目標床反力鉛直成分、ＺＭＰ許容範囲、床反力水平成分許容範囲等、目標歩容の構成要素の瞬時値（前記制御ユニット６０の所定の制御処理周期毎の値）を逐次算出（発生）する。なお、図５では一部の目標瞬時値のみを代表的に記載している。【００８３】
目標瞬時値発生部１００ｂで算出された目標瞬時値は、フルモデル補正部１００ｃに入力される。このフルモデル補正部１００ｃは、目標瞬時値発生部１００ｂが求めた目標上体位置姿勢を、動力学的精度の高い動力学モデルとしてのフルモデルを用いて補正してなる補正目標上体位置姿勢を算出すると共に、目標ＺＭＰまわりの床反力モーメント水平成分の目標値である補正目標床反力モーメントを算出する。【００８４】
フルモデル補正部１００ｃは、より一般的には、次のD1〜D3の条件を満足するように、E1あるいはE2の処理を実行する。すなわち、フルモデル補正部１００ｃは、
D1）目標瞬時値発生部１００ｂで生成した歩容よりも高い精度で動力学的平衡条件を満足する。
D2）真のＺＭＰ（目標ＺＭＰのまわりに補正目標床反力モーメントを発生させることによって修正された本来の定義を満足するＺＭＰ）は、ＺＭＰ許容範囲（安定余裕が十分維持できる許容範囲）に存在する。
D3）床反力水平成分は床反力水平成分許容範囲内になる。
という条件を満足するように、
E1）目標瞬時値発生部１００ｂで生成した歩容の上体位置姿勢を補正する。
あるいは
E2）目標瞬時値発生部１００ｂで生成した歩容の上体位置姿勢を補正すると共に、目標ＺＭＰまわりの補正目標床反力モーメントを出力する（目標床反力を補正する）。【００８５】
本明細書の実施形態では、D1〜D3の条件を満足するように、E2の処理が実行される。なお、本明細書の実施形態におけるフルモデル補正部１００ｃの処理は、例えば本願出願人が先に提案したＰＣＴ国際公開公報ＷＯ／０３／０５７４２７／Ａ１にて詳細に説明されているもの（具体的には、同公報の図１３のＳ０３８の処理）と同じである。従って、本明細書でのフルモデル補正部１００ｃの処理の詳細な説明は省略する。【００８６】
また、本明細書の実施形態では、フルモデル補正部１００ｃによる補正を行うが、その補正を省略し、目標瞬時値発生部１００ｂで決定した目標歩容の瞬時値をそのまま歩容生成装置１００から出力するようにしてもよい。【００８７】
図４に戻って、上述のように決定される補正目標上体位置姿勢、目標ＺＭＰまわりの補正目標床反力モーメント、目標足平位置姿勢の瞬時値を含む目標歩容の瞬時値は、複合コンプライアンス制御装置１０１（図４で破線で囲んだ部分）に入力される。この複合コンプライアンス制御装置１０１では、ロボット１のバランスを保ちつつ、目標歩容に追従するように関節アクチュエータ（電動モータ６４）が制御される。なお、複合コンプライアンス制御装置１０１のより具体的な処理は後述する。【００８８】
以上が歩容生成装置１００の概要である。【００８９】
次に、本発明の実施形態を具体的に説明していく。本実施形態では、歩容パラメータ決定部１００ａは、前記制御ユニット６０の制御処理周期毎に、目標ＺＭＰ軌道（より正確には歩容パラメータのうちの目標ＺＭＰ軌道を規定するパラメータ）を修正するためのパラメータを段階的に決定したり、前記したパラメータ以外のパラメータを探索的に決定することにより、そして、その決定した歩容パラメータと前記動力学モデルとを用いて目標瞬時値発生部１００ｂにより目標歩容の瞬時値の時系列を決定する。この場合、歩容パラメータは、既に作成済みの歩容に係わる歩容パラメータを初期値として、その歩容パラメータの一部のパラメータを、これから作成しようとする歩容に対応して定まる歩容パラメータに段階的に近づけつつ、残りのパラメータのうちの所定のパラメータが探索的に決定される。【００９０】
ここで、本実施形態で歩容生成に用いられる上体運動モードと動力学モデルとについて説明する。【００９１】
走行など、空中期がある歩容や、低摩擦床面での歩行においては、単に上体水平加速度を調整するだけでは、目標歩容の床反力水平成分が許容範囲内（あるいは摩擦限界内）に存在しつつ動力学的平衡条件を満足することができない場合がある。そこで、本実施形態では、以下に説明する上体３の２つの運動モード（上体並進モード及び上体回転モード）を複合的に発生させることにより、目標歩容の床反力水平成分が許容範囲内（あるいは摩擦限界内）に存在しつつ動力学的平衡条件を満足するようにしている。【００９２】
図６（ａ）のように、ある運動状態から、上体水平加速度だけを摂動させると、全体重心水平加速度と全体重心まわりの角運動量が摂動する。すなわち、上体水平加速度の摂動は、それによって発生する慣性力と重力の合力に対して動力学的に釣り合う床反力鉛直成分を摂動させずに、目標ＺＭＰまわりの床反力モーメント（ただし鉛直軸まわり成分を除く）と床反力水平成分（厳密には、並進床反力水平成分）とを摂動させる。この運動モードを上体並進モードと呼ぶ。【００９３】
言いかえると、床反力鉛直成分を変化させずに、目標ＺＭＰまわりの床反力モーメントの水平成分と床反力水平成分（並進床反力水平成分）を変化させる運動を上体並進モードと呼ぶ。【００９４】
この時の単位加速度当たりの床反力モーメント成分の変化をΔMｐ、単位加速度当たりの床反力水平成分の変化をΔFpとする。図６（ａ）に示す状況で上体３を前方に水平加速すると、ΔMｐとΔFpは図６（ａ）に示す矢印の向きに作用する。【００９５】
感覚的に判り易くするために、運動によって発生する慣性力と重力の合力に釣り合う床反力を用いて表現したが、慣性力と重力の合力を用いて表現した方が、理論的には的確である。なお、上記合力と床反力は、互いに大きさが同じで向きが逆になっている。【００９６】
一方、図６（ｂ）のように、ある運動状態から、ある点Ｐｒまわりに上体姿勢角加速度を摂動させると、全体重心は摂動せずに、全体重心まわりの角運動量が摂動する。すなわち、点Ｐｒまわりの上体姿勢角加速度摂動は、床反力鉛直成分と床反力水平成分（厳密には、並進床反力鉛直成分と並進床反力水平成分）を摂動させずに、目標ＺＭＰまわりの床反力モーメントの水平成分を摂動させる。この運動モードを上体回転モードと呼ぶ。【００９７】
言いかえると、床反力鉛直成分と床反力水平成分を変化させずに、目標ＺＭＰまわりの床反力モーメントの水平成分を変化させる運動を上体回転モードと呼ぶ。【００９８】
この時の単位角加速度当たりの床反力モーメント成分の変化をΔMｒ、単位角加速度当たりの床反力の水平成分の変化をΔFｒとする。ΔFｒは零である。図６（ｂ）に示す状況で上体が前傾するように角加速度を与えると、ΔMｒは図６（ｂ）に示す矢印の向きに作用する。【００９９】
上体３の運動には、上体並進モードと上体回転モード以外に、上体鉛直移動モードがある。これは、上体３を鉛直方向に移動させる運動である。【０１００】
第１実施形態においては、目標瞬時値発生部１００ｂは、以下に示す動力学モデルを用いて歩容を生成する。本実施形態では、その動力学モデルとして、例えば図７に示す動力学モデルが用いられる。【０１０１】
図７を参照して、この動力学モデルはロボット１の各脚体２にそれぞれ対応する２つの質点（足平質点）２ｍ，２ｍ、及び上体３に対応する質点（上体質点）２４ｍからなる合計３質点と、イナーシャがあって質量のないフライホイールＦＨとから構成されるモデルである。上体質点は、上体３に任意に固定設定されたローカル座標系において上体３の代表点と一定の位置関係を有する点である。同様に、各足平質点は、それに対応する足平２２に任意に固定設定されたローカル座標系において該足平２２の代表点と一定の位置関係を有する点である。この動力学モデルは、本願出願人が例えば先に提案したＰＣＴ国際公開公報ＷＯ／０３／０５７４２７／Ａ１に例示した動力学モデルである。従って、本明細書での詳細な説明は省略するが、該動力学モデルの動力学は、次のように変数を定義したとき、式２ａ〜２ｃにより表される。なお、ここでは、本明細書の理解を容易にするために、サジタルプレーン（前後軸（Ｘ軸）と鉛直軸（Ｚ軸）を含む平面）での動力学方程式（運動と床反力との関係を表す式）のみを記述し、ラテラルプレーン（左右軸（Ｙ軸）と鉛直軸（Ｚ軸）を含む平面）での動力学方程式を省略する。
Ｚ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）での上体姿勢は、基準上体姿勢と同一とされ、基準上体姿勢軌道パラメータから従属的に決定される。本明細書では、一つの上位のパラメータから従属的に決定されるパラメータは、その上位のパラメータと同じ属性（優先パラメータであるか、非優先パラメータであるか、探索対象パラメータであるか、固定的なパラメータであるかの属性）のパラメータであると見なす。そして、複数の上位のパラメータを基に決定される下位のパラメータについては、上位のパラメータに探索対象パラメータが含まれる場合には、下位のパラメータも探索対象パラメータと見なし、上位のパラメータに探索対象パラメータが含まれず、且つ優先パラメータが含まれる場合には、下位のパラメータは優先パラメータと見なす。本明細書では、全ての定常歩容パラメータの構成パラメータを列挙することは省略し、本願発明を理解する上で十分な典型的なパラメータだけを例示する。【０１２７】
図９の説明に戻って、次にＳ０２４に進み、定常歩容の初期状態が算出される。ここで算出される初期状態は、定常歩容の初期上体水平位置速度（水平方向での初期上体位置及び初期上体速度）、初期上体鉛直位置速度（鉛直方向での初期上体位置及び初期上体速度）、初期発散成分、初期上体姿勢角およびその角速度である。この初期状態の算出は、図１１のサブルーチン処理のフローチャートに従って探索処理により行なわれる。なお、図１１の処理で最終的に決定する定常歩容の初期状態は、今回歩容の終端の時刻（定常歩容の本来の初期時刻０）での状態であるが、本実施形態では、図１１のＳ２００８の処理が終了するまでは、図１０のＳ１１２で設定した初期時刻Tsでの状態を定常歩容の初期状態とする。【０１２８】
図１１のサブルーチン処理を説明すると、まず、Ｓ２０００において、前回歩容（今回歩容の１歩前の歩容）を生成したときのＳ０２２およびＳ０２４の処理で最終的に決定された、初期（時刻Ts）上体位置Xsおよびその変化速度Vxs、初期（時刻Ts）上体姿勢角速度ωbs、並びに上体傾斜復元モーメントＺＭＰ換算値ピーク値ZMPrecpeekを含む第２旋回歩容パラメータ（第２旋回歩容を規定する歩容パラメータ）の各パラメータ値を今回歩容に対応する定常旋回歩容の第１旋回歩容パラメータの各パラメータの仮値とする。【０１２９】
なお、前記上体傾斜復元モーメントＺＭＰ換算値ピーク値ZMPrecpeekは、ロボット１の片脚支持期（より詳しくは、片脚支持期の開始直後から終了直前までの時期。以下、上体傾斜角復元期間ということがある）で上体姿勢を基準上体姿勢に近づけるために必要な床反力モーメントのＺＭＰ換算値ZMPrec（基準となる目標ＺＭＰ（Ｓ０２２で決定したＺＭＰ軌道パラメータにより規定される目標ＺＭＰ）からのずれ量）のピーク値を示すものであり、その例を図示したものが図２０である。ZMPrecは同図示の如く台形状のパターンとされ、そのピーク値（台形の高さ）がZMPrecpeekである。【０１３０】
Ｓ２０００においてはさらに、前回歩容を生成するときのＳ０２２およびＳ０２４の処理で最終的に決定された第１旋回歩容パラメータ（第１旋回歩容を規定するパラメータ）の各パラメータ値を今回歩容に対応する定常旋回歩容の第２旋回歩容パラメータの各パラメータの仮値とする。なお、前回歩容に対応する定常旋回歩容における上体３の初期状態を旋回歩容パラメータに含ませたのは、本実施形態では、定常旋回歩容の１周期分を生成するときの初期時刻Tsが本来の初期時刻０と異なり、本来の初期時刻０での上体３の初期状態は、第２旋回歩容内の途中時刻における上体３の状態と同じになるからである。以上がＳ２０００の処理である。【０１３１】
このＳ２０００の処理は、今回歩容に対応する定常旋回歩容の第１旋回歩容パラメータおよび第２旋回歩容パラメータの候補をそれぞれ、とりあえず、前回歩容に対応する定常旋回歩容の第２旋回歩容パラメータ、第１旋回歩容パラメータに一致させるということを意味する。このように設定された、今回歩容に対応する第１旋回歩容パラメータおよび第２旋回歩容パラメータからなる定常旋回歩容パラメータを基に前記動力学モデルを用いて定常旋回歩容を生成すると、その定常旋回歩容は、定常旋回歩容の境界条件を満たすものとなる。なお、上記のように設定された今回歩容に対応する第１旋回歩容パラメータおよび第２旋回歩容パラメータからなる定常旋回歩容パラメータは、第２発明におけるベース定常歩容パラメータに相当するものである。従って、Ｓ２０００の処理は、第２発明におけるベース定常歩容パラメータ設定手段に相当する。【０１３２】
次いで、Ｓ２０００−１において、探索対象（探索対象パラメータ）である初期（Ts）上体水平位置Xs、初期（Ts）上体水平速度、初期（Ts）上体姿勢角速度ωbsおよび上体傾斜復元モーメント換算値ZMPrecpeekを除く定常歩容パラメータの優先パラメータ（より詳しくはＳ０２２で決定する定常歩容の足平軌道パラメータ、基準上体姿勢軌道パラメータ、腕姿勢軌道パラメータ、床反力鉛直成分軌道パラメータ、床反力水平成分許容範囲を規定するパラメータ、ＺＭＰ軌道パラメータ）の値を現在候補値（Ｓ２０００で設定された値）から前記Ｓ０２２で決定した値に所定量だけ近づけた値に更新する。【０１３３】
次いで、Ｓ２００４−１において、現在候補の定常歩容パラメータ（Ｓ２０００で仮決定された定常歩容パラメータの優先パラメータをＳ２００２−１で更新したもの）を基に、定常歩容の境界条件を満足するような探索対象Xs、Vxs、ωbs、ZMPrecpeekの値を探索的に決定する。この処理は、図１２のフローチャートに示す如く行なわれる。なお、以下の図１２の処理（その処理の中のサブルーチン処理を含む）の説明においては、歩容パラメータの各パラメータの値に関する「現在値」は、該当するパラメータの「現在（該当処理の実行時点）設定されている候補値もしくは仮値」の意味で使用する。また、「現在の○○」（○○はあるパラメータ）というときは、「現在（該当処理の実行時点）候補となっている○○」の意味で使用する。【０１３４】
以下、図１２の処理を説明すると、まず、Ｓ１２００において、現在の定常旋回歩容パラメータを基に足平位置姿勢、上体姿勢角θbsおよび腕姿勢の初期状態（定常旋回歩容の初期時刻Tsでの状態）が決定される。なお、これらの初期状態は、第１旋回歩容の支持脚座標系（前記次回歩容支持脚座標系）で見た状態である。この処理では、足平位置姿勢の初期状態は、現在の定常歩容パラメータの足平軌道パラメータを基に有限時間整定フィルタを用いて算出される足平位置姿勢軌道のうちの時刻Tsでの各足平２２の位置姿勢に決定される。該有限時間整定フィルタは、前記公報文献１等にて説明されているので、ここでの説明は省略する。また、上体姿勢角θbsの初期状態は、現在の定常歩容パラメータの基準上体姿勢軌道パラメータから定まる時刻Tsでの基準上体姿勢角と同一に決定され、腕姿勢の初期状態は、現在の定常歩容パラメータの腕姿勢軌道パラメータにより定まる時刻Tsでの状態と同一に決定される。【０１３５】
次いで、Ｓ１２０２において、探索対象である初期（時刻Ｔs）上体水平位置、初期上体水平速度、初期上体姿勢角速度、および上体傾斜復元モーメントＺＭＰ換算値ピーク値（Xs1，Vx1，ωbs1，ZMPrecpeek1）の現在値を、これらの探索対象の初期候補として設定する。なお、これらの探索対象の値は、第１旋回歩容の支持脚座標系（前記次回歩容支持脚座標系）で見た値である。【０１３６】
次いで、Ｓ１２０６〜Ｓ１２１８のループ処理が実行される。その処理を概略的に説明すれば、前記の如く設定した探索対象の初期候補を含む定常歩容パラメータと前記動力学モデルとを用いて定常歩容の終端（時刻Ｔs＋Ｔcyc）までの歩容を生成する。そして、その生成した定常歩容が境界条件（初期と終端での状態（本実施形態では上体水平位置、上体水平速度、上体姿勢角、上体姿勢角速度）がほぼ一致すること）を満たしているか否かを判断し、満たしていない場合には、探索対象の値を変更する。これを繰り返すことで、最終的に前記動力学モデル上で定常歩容の境界条件を満たすことができる該定常歩容の初期状態が決定される。【０１３７】
Ｓ１２０２〜Ｓ１２１８の処理をより具体的に説明すると、Ｓ１２０２において、動力学モデル上での定常歩容の初期（時刻Ts）の上体鉛直位置および上体鉛直速度（Zs，Vzs）が決定される。この場合、動力学モデル上でのロボット１の全体重心の鉛直方向の慣性力と重力との合力が目標床反力鉛直成分に釣り合い、且つ、全体重心の鉛直位置が定常歩容の境界条件を満たすように決定される。この処理は、前記公報文献１の図２０のＳ２０６の処理と同様に行なわれる。なお、（Zs，Vzs）は、前記探索対象Xs，Vxs，θbs，ωsに依存する。従って、（Zs，Vzs）は従属的な探索対象パラメータとしての属性を持つ。【０１３８】
次いで、Ｓ１２０８において、上体３の初期状態（θbs，Xs，Ｖxs，ωbs，Zs，Vzs）の現在値とZMPrecpeekの現在値とを含む定常歩容パラメータを基に、動力学モデルを用いて定常歩容が時刻Ts＋Tcyc（定常歩容の終端）まで生成される。この処理は、図１３のフローチャートで示すサブルーチン処理により実行され、さらに、この図１３のＳ３０４の処理は、図１４のフローチャートで示すサブルーチン処理により実行される。さらに、図１４のＳ４１２の処理は、図１５フローチャートで示すサブルーチン処理により実行される。これらの処理については後述する。【０１３９】
次いで、Ｓ１２１０において、Ｓ１２０８で生成した定常歩容の終端の上体水平位置、上体水平速度、上体姿勢角およびその角速度を、該定常歩容の次の１歩の支持脚座標系（定常歩容の第２旋回歩容に続く第１旋回歩容の支持脚座標系）から見た値に変換し、その値を(Xe1，Vxe1，θbe1，ωbe1）とする。【０１４０】
そして、Ｓ１２１２において、現在の(Xs1，Vxs1，θbs1，ωbs1）の値と、(Xe1，Vxe1，θbe1，ωbe1）の値との差を定常歩容の境界条件誤差（errx，errv，errθ，errω）として求める。定常歩容の境界条件を満足するためには、境界条件誤差はほぼ０でなければならない。この境界条件誤差は、Ｓ１２０８において作成した定常歩容の、境界条件からのずれ度合いを表すものである。【０１４１】
次いで、Ｓ１２１４において、errx，errv，errθ，errωがいずれも十分に小さい（０近傍の）所定の許容範囲内にあるか否かを判断し、その判断結果がＹＥＳである場合には、Ｓ１２０６〜Ｓ１２１８のループ処理を終了する。この場合、このループ処理の終了時現在の定常歩容パラメータが動力学モデル上で境界条件を満たし得る定常歩容パラメータとして得られる。【０１４２】
一方、Ｓ１２１４の判断結果がＮＯである場合には、現在の探索対象（Xs，Vx，ωbs，ZMPrecpeek）の値の近辺に、それぞれのパラメータの値を所定の微小量ΔXs，ΔVx，Δωbs，ΔZMPrecpeekだけ変化させた複数（本実施形態では４個）の探索対象の候補を決めて、それぞれの探索対象の候補を含む定常歩容パラメータ（現在の定常歩容パラメータの探索対象を新たに決めた各候補に修正した定常歩容パラメータ）を基に、Ｓ１２０６〜Ｓ１２１２と同じ処理を実行して、それぞれの探索対象の候補に対応する境界条件誤差を求める。【０１４３】
次いで、Ｓ１２１８において、現在の（Xs，Vx，ωbs，ZMPrecpeek）およびその近辺の探索対象の候補のそれぞれに対応する境界条件誤差を基に、最急降下法やシンプレックス法などの探索手法によって、探索対象（Xs，Vx，ωbs，ZMPrecpeek）の新たな候補を決定する。そして、Ｓ１２０６からの処理が再び繰り返される。【０１４４】
以上のようにして、（Xs，Vx，ωbs，ZMPrecpeek）を探索対象として、定常歩容の境界条件を満たす新たな定常歩容パラメータが探索的に決定される。なお、図１２の処理では、定常歩容パラメータのうちの優先パラメータ（足平軌道パラメータ、基準上体姿勢軌道パラメータなど）は図１２の処理の開始時の値に維持される。【０１４５】
補足すると、図１２の処理の基本的な考え方（手法）は、前記公報文献１の図２０の処理と同様である。但し、本明細書の実施形態では、上記探索対象として、上体姿勢角速度と上体傾斜復元モーメントＺＭＰ換算値ピーク値とが含まれ、この点は、前記公報文献１の図２０の処理と相違している。また、後述するＳ１２０８の処理の細部の処理（サブルーチン処理）の一部も前記公報文献１のものと相違している。【０１４６】
前記Ｓ１２０８のサブルーチン処理を以下に説明する。【０１４７】
Ｓ１２０８のサブルーチン処理である図１３の処理は、図示の通り、（Xs，Vxs，θbs，ωbs，Zs，Ｖzs）の現在値（候補値または仮決め値）を定常歩容における上体３の運動の初期状態として（Ｓ３００）、その初期（時刻Ｔs)状態から、時刻Ｔs＋Ｔcycまで（終端状態まで）の定常歩容の瞬時値を時系列的に実際に作成する（Ｓ３０２〜Ｓ３０６）処理である。なお、図１３の「ｋ」は、作成する定常歩容の瞬時値の時系列の時刻である。【０１４８】
この図１３のＳ３０４のサブルーチン処理（定常歩容の瞬時値を決定するサブルーチン処理）である図１４の処理では、Ｓ４００〜Ｓ４１０の処理によって、現在の定常歩容パラメータ（詳しくは優先パラメータ）を基に、目標床反力鉛直成分、目標ＺＭＰ、目標両足平位置姿勢、基準上体姿勢、目標腕姿勢、目標上体鉛直位置、床反力水平成分許容範囲の瞬時値が求められる。【０１４９】
さらに、Ｓ４１２の処理によって、動力学モデルを用いて、図中に記載された条件を満たすように上体水平加速度および上体姿勢角加速度の瞬時値が決定される。そして、Ｓ４１４の処理によって、上体水平加速度および上体姿勢角加速度をそれぞれ２階積分して、上体水平位置および上体姿勢角の瞬時値が決定される。【０１５０】
補足すると、図１４の処理のうち、Ｓ４１２以外の処理は、前記公報文献１の図２２ののＳ４００〜Ｓ４１０、Ｓ４１４の処理と同じである。従って、Ｓ４１２の処理以外の図１３の処理については詳細な説明を省略する。【０１５１】
図１４のＳ４１２のサブルーチン処理である図１５の処理では、まず、定常歩容の上体傾斜角復元期間を規定する時刻Tm、Ts2、Tm2を決定する。これらの時刻は、それぞれ、図２０に示す如く、前記上体傾斜復元モーメンＺＭＰ換算値ZMPrecを発生させる期間を規定するものである。すなわち、定常歩容の初期時刻Tsの後の最初の片脚支持期の開始直後の時刻をTm、該片脚支持期の終了直前の時刻をTs2、次の片脚支持期の開始直後の時刻をTm2として決定する。そして、期間［Tm，Ts2］と、期間［Tm2，Te］を、それぞれZMPrecを発生させる期間（以下、上体傾斜角復元期間という）とする。これは、前記公報文献１の図２３のＳ５００の処理と同じである。【０１５２】
次いで、Ｓ５０２において、定常歩容の瞬時値を作成しようとしている現在時刻ｋ（作成中の定常歩容内での時刻）が上体傾斜角復元期間にあるか否かが判断される。そして、現在時刻ｋが前記上体傾斜角復元期間内の時刻でないとき、換言すれば、現在時刻ｋが、片脚支持期の終了直前から次の片脚支持期の開始直後までの期間（目標床反力鉛直成分が０であるかもしくは０に近い期間）にあるときには、Ｓ５０４〜Ｓ５１６の処理によって、動力学モデル上で、目標ＺＭＰを満足し、且つ、該動力学モデル上でのロボット１の全体重心の水平加速度による慣性力に釣り合う床反力水平成分が時刻ｋの床反力水平成分許容範囲の瞬時値内に収まるように、上体並進モードの上体水平加速度αと、上体回転モードの上体角加速度β（上体姿勢角の角加速度）とが決定される。これらのＳ５０４〜Ｓ５１６の処理は、前記公報文献１の図１９のＳ５０４〜Ｓ５１６の処理と同じである。【０１５３】
また、現在時刻ｋ（作成中の定常歩容内での時刻）が前記上体傾斜角復元期間内の時刻であるときには、Ｓ５１８〜Ｓ５２６の処理によって、上体角加速度βは、動力学モデル上で、上体傾斜復元モーメントＺＭＰ換算値パターンの瞬時値（これは、現在設定されている上体傾斜復元モーメントＺＭＰ換算値ピーク値（図１２のＳ１２０８の処理の直前に決定された候補値）と現在時刻ｋとに応じて定まる。図２０を参照）に対応する床反力モーメントを目標ＺＭＰまわりに発生するように決定される。また、上体水平加速度は、動力学モデル上で、上体並進モードによって発生する目標ＺＭＰまわりの床反力モーメントが０になるための上体水平加速度と、上体角加速度βによる目標ＺＭＰまわりの床反力モーメントと同等の床反力モーメントを発生する上体水平加速度との差として求められる。これにより、上体傾斜角復元期間では、上体姿勢を基準上体姿勢に向かって復元させつつ、目標ＺＭＰを満足するように上体角加速度βおよび上体水平加速度αが決定される。【０１５４】
補足すると、本実施形態の図１５のＳ５１８〜Ｓ５２６の処理は、前記公報文献１の図２３のＳ５２０〜Ｓ５２８の処理と同じである。【０１５５】
以上、説明した図１１のＳ２００２−１、２００４−１の処理は、それを簡潔的に言えば、定常歩容パラメータの優先パラメータ（足平軌道パラメータなど）の値を現在値（現在候補値）からＳ０２２の処理（詳しくは図１０のＳ１００〜Ｓ１１０の処理）で決定した値に所定量だけ近づけて更新し、その更新後の優先パラメータを含んで、定常歩容の境界条件を動力学モデル上で満足し得る新たな定常歩容パラメータを探索する処理である。そして、この処理では、（Xs，Vx，ωbs，ZMPrecpeek）が探索対象とされる。なお、Ｓ２００２−１における定常歩容パラメータの優先パラメータの現在値（更新前の候補値）は、Ｓ２０００で決定された定常歩容パラメータの仮値のうちの優先パラメータの値である。また、Ｓ２００４−１の処理では、探索対象の初期候補値として、Ｓ２０００で決定された仮値が用いられる。【０１５６】
図１１の説明に戻って、Ｓ２００２−１，Ｓ２００４−１の上記した処理の後、Ｓ２００２−１，Ｓ２００４−１の処理と同様の処理（図１１ではＳ２００２−２，Ｓ２００４−２）が繰り返される。そして、最終的に、Ｓ２００４−ｎ（ｎは総繰り返し回数）において、定常歩容パラメータの優先パラメータは、Ｓ０２２の処理で決定された値に一致させる。さらに、Ｓ２００４−ｎにおいて、Ｓ２００４−１と同様に、現在候補の定常歩容パラメータを基に、動力学モデル上で定常歩容の境界条件を満足するような探索対象Xs，Vx，ωbs，ZMPrecpeekの値が探索的に決定され、新たな定常歩容パラメータが決定される。【０１５７】
これらの繰り返し処理において、Ｓ２００２−ｋ（ｋ＝２，…，ｎ）で優先パラメータを更新する前における優先パラメータの値は、Ｓ２００２−（ｋ−１）での更新後の優先パラメータの値である（Ｓ２００２−１では、前記したように更新前の優先パラメータの値はＳ２０００で決定された仮値である）。また、Ｓ２００４−ｋ（ｋ＝２，…，ｎ）の処理は、Ｓ２００４−１の処理と同じである。但し、Ｓ２００４−ｋでは、探索対象Xs，Vx，ωbs，ZMPrecpeekの初期値補（図１２のＳ１２０２で設定する初期値候補）として、Ｓ２００４−ｋの処理の開始時に設定されている値、すなわち、Ｓ２００４−（ｋ−１）の処理で最終的に探索された探索対象の値が用いられる（Ｓ２００４−１では、前記したように探索対象の初期値候補は、Ｓ２０００で決定された仮値である）。【０１５８】
以上のようにして、Ｓ２０００で決定された定常歩容パラメータの優先パラメターの値（仮値）を初期値として、該優先パラメータの値が、段階的にＳ０２２の処理で決定された値（これは今回歩容に関する要求を満足するための優先パラメータの値（優先パラメータ要求値）である）に近づくように、該優先パラメータの値が段階的に更新され、最終的にＳ０２２の処理で決定された値に一致させられる（Ｓ２００２−１，Ｓ２００２−２，……，Ｓ２００２−ｎ）。従って、これらのＳ２００２−１，Ｓ２００２−２，……，Ｓ２００２−ｎの処理は、第２発明における優先パラメータ漸近手段に相当する。そして、その優先パラメータの更新の都度、その更新後の優先パラメータを含む定常歩容パラメータの探索対象の値が、その更新の直前に決定された値を初期値候補として、定常歩容の境界条件を満たすように探索され、その探索結果の探索対象を含む定常歩容パラメータが新たに決定される（Ｓ２００４−１，２００４−２，……，Ｓ２００４−ｎ）。従って、これらのＳ２００４−１，Ｓ２００４−２，……，Ｓ２００４−ｎの処理は、第２発明における新規定常歩容パラメータ決定手段に相当し、それぞれの処理で最終的に決定される探索対象を含む定常歩容パラメータが第２発明における新規定常歩容パラメータに相当する。そして、Ｓ２００４−ｎで最終的に決定された新たな定常歩容パラメータがこれから生成しようとする今回歩容に続くべき定常歩容の歩容パラメータとされる。【０１５９】
補足すると、上記の繰り返し処理の総繰り返し回数ｎは、Ｓ２０００で決定する定常歩容パラメータの優先パラメータの値と、Ｓ０２２で決定した優先パラメータの値（優先パラメータ要求値）との差に応じて決定される。また、定常歩容パラメータのうち、優先パラメータおよび探索対象のパラメータ以外のパラメータ（固定的なパラメータ）は、Ｓ２０００で決定された定常歩容パラメータの当該パラメータの値に維持される。【０１６０】
上記の如くＳ２００２−１〜Ｓ２００４−ｎの繰り返し処理が実行された後、Ｓ２００６において、現在候補の定常旋回歩容（Ｓ２００４−ｎの処理で最後に作成された定常歩容）を基に、本来の初期時刻０における定常歩容の上体３の運動状態である初期上体水平位置X0、初期上体水平速度Vx0、初期上体姿勢角θb0およびその角速度ωb0、並びに初期上体鉛直位置Z0、初期上体鉛直速度Vz0が求められる。さらに、Ｓ２００８において、前記した初期発散成分ｑの定義式に従って、定常旋回歩容の、本来の初期時刻０における発散成分である定常旋回初期発散成分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を含む今回歩容パラメータが新たに決定される。【０１７９】
Ｓ１７０６〜Ｓ１７１６の処理をより具体的に説明すると、Ｓ１７０６において、仮今回歩容の終端での上体位置速度（Xe，Ve）から、今回歩容の終端発散成分ｑ0[ｋ]を前記した発散成分の定義式に従って算出する。
【０１８０】
次いで、Ｓ１７０８において、この終端発散成分ｑ0[ｋ]と定常旋回歩容の初期発散成分ｑ''との差を終端発散成分誤差errqとして求める。【０１８１】
さらに、Ｓ１７１０において、定常歩容の初期上体姿勢角と、今回歩容（仮今回歩容）の終端上体姿勢角との差を終端上体姿勢角誤差θberrとして求めると共に、定常歩容の初期上体姿勢角速度と、今回歩容（仮今回歩容）の終端上体姿勢角速度との差を終端上体姿勢角速度誤差ωberrとして求める。【０１８２】
上記の如くもとめた誤差errq、θberr、ωberrは、Ｓ１７０４において作成した仮今回歩容の、境界条件からのずれ度合いを表すものである。【０１８３】
次いで、Ｓ１７１２において、上記の如くもとめたerrq、θberr、ωberrがいずれも０近傍の所定の許容範囲内にあるか否かを判断し、その判断結果がＹＥＳである場合には、Ｓ１７０４〜Ｓ１７１６のループ処理を終了する。この場合、このループ処理の終了時現在の探索対象を含む今回歩容パラメータが動力学モデル上で境界条件を満たし得る今回歩容パラメータとして得られる。【０１８４】
一方、Ｓ１７１２の判断結果がＮＯである場合には、現在の探索対象（ａ，ZMPrecpeeka，ZMPrecpeekb）の値の近辺に、それぞれのパラメータの値を所定の微小量Δa，ΔZMPrecpeeka，ΔZMPrecpeekbだけ変化させた複数（本実施形態では３個）の探索対象の候補を決めて、それぞれの探索対象の候補を含む今回歩容パラメータ（現在の今回歩容パラメータの探索対象を新たに決めた各候補に修正した今回歩容パラメータ）を基に、Ｓ１７０４〜Ｓ１７１０と同じ処理を実行して、それぞれの探索対象の候補に対応する誤差（errq、θberr、ωberr）の組を求める。【０１８５】
次いで、Ｓ１７１６において、現在の（ａ，ZMPrecpeeka，ZMPrecpeekb）およびその近辺の探索対象の候補のそれぞれに対応する誤差（errq、θberr、ωberr）の組を基に、最急降下法やシンプレックス法などの探索手法によって、探索対象（ａ，ZMPrecpeeka，ZMPrecpeekb）の新たな候補を決定する。そして、Ｓ１７０４からの処理が再び繰り返される。【０１８６】
以上のようにして、（ａ，ZMPrecpeeka，ZMPrecpeekb）を探索対象として、今回歩容の終端の境界条件を満たす新たな今回歩容パラメータが探索的に決定される。なお、図１８の処理では、今回歩容パラメータのうちの優先パラメータ（足平軌道パラメータ、基準上体姿勢軌道パラメータなど）は、図１８の処理の開始時の値に維持される。【０１８７】
この図１８の処理中の前記Ｓ１７０４の処理を以下に説明する。この処理は、図１９のフローチャートで示すサブルーチン処理により実行される。図１９のサブルーチン処理は、図示の通り、前回歩容の終端状態（詳しくは今回歩容の支持脚座標系で見た前回歩容の終端状態）を今回歩容（仮今回歩容）の初期状態として（Ｓ８００）、その初期状態から今回歩容の終端時刻Ｔcurr（今回歩容の遊脚足平２２の着地予定時刻）まで今回歩容の瞬時値を時系列的に作成する（Ｓ８０２〜Ｓ８０６）処理である。なお、図１９の「ｋ」は、作成する今回歩容の瞬時値の時系列の時刻である。そして、図１９のＳ８０４のサブルーチン処理は、先に定常歩容の作成処理に関して説明した図１４の処理と同様に行なわれる。【０１８８】
この場合の図１４の処理では、Ｓ４００、Ｓ４０４〜Ｓ４１０の処理では、現在の今回歩容パラメータの優先パラメータを基に、目標床反力鉛直成分、目標両足平位置姿勢、基準上体姿勢、目標腕姿勢、目標上体鉛直位置、床反力水平成分許容範囲の瞬時値が求められる。また、図１９のＳ８０４の中で実行される図１４中のＳ４０２の処理では、ＺＭＰ修正パラメータａの現在値（候補値）ａにより規定されるＺＭＰ修正量（図２２の中段図を参照）を現在の今回歩容パラメータのＺＭＰ軌道パラメータにより規定される目標ＺＭＰ軌道（図２２の上段図を参照）に加えることで、該目標ＺＭＰ軌道を修正してなるＺＭＰ軌道（図２２の下段図を参照）の瞬時値が求められる。【０１８９】
さらに、Ｓ４１２の処理によって、動力学モデルを用いて、図中に記載された条件を満たすように上体水平加速度および上体姿勢角加速度の瞬時値が決定される。そして、Ｓ４１４の処理によって、上体水平加速度および上体姿勢角加速度をそれぞれ２階積分して、上体水平位置および上体姿勢角の瞬時値が決定される。【０１９０】
また、仮今回歩容の作成時におけるＳ４１２のサブルーチン処理である図１５の処理も、定常歩容の場合と同様に行われる。すなわち、仮今回歩容の瞬時値を作成しようとしている現在時刻ｋ（作成中の仮今回歩容内での時刻）が前記上体傾斜角復元期間内の時刻でないときには、Ｓ５０４〜Ｓ５１６の処理によって、動力学モデル上で、目標ＺＭＰ（ＺＭＰ修正量により修正した目標ＺＭＰ）を満足し、且つ、全体重心の水平加速度による慣性力に釣り合う床反力水平成分が時刻ｋの床反力水平成分許容範囲の瞬時値内に収まるように、上体並進モードの上体水平加速度αと、上体回転モードの上体角加速度β（上体姿勢角の角加速度）とが決定される。【０１９１】
また、現在時刻ｋ（作成中の仮今回歩容内での時刻）が前記上体傾斜角復元期間内の時刻であるときには、Ｓ５１８〜Ｓ５２６の処理によって、上体角加速度βは、動力学モデル上で、上体傾斜復元モーメントＺＭＰ換算値パターンの瞬時値（これは上体傾斜復元モーメントＺＭＰ換算値の第１ピーク値ZMPrecpeekaおよび第２ピーク値ZMPrecpeekbの現在値（候補値）と現在時刻ｋとに応じて定まる。図２１を参照）に対応する床反力モーメントを発生するように決定される。また、上体水平加速度は、動力学モデル上で、上体並進モードによって発生する目標ＺＭＰ（ＺＭＰ修正量により修正した目標ＺＭＰ）まわりの床反力モーメントが０になるための上体水平加速度と、上体角加速度βによる床反力モーメントと同等の床反力モーメントを発生する上体水平加速度との差として求められる。これにより、上体姿勢を基準上体姿勢に向かって復元させつつ、目標ＺＭＰを満足するように上体角加速度βおよび上体水平加速度αが決定される。【０１９２】
なお、仮今回歩容を生成する場合の上体傾斜角復元期間は前記図１６のＳ６１２で決定した時刻ＴａからＴｂの期間であるので、図１５のＳ５００の処理は省略される。【０１９３】
以上、説明した図１７のＳ２１０２−１、２１０４−１の処理は、それを簡潔的に言えば、今回歩容パラメータの優先パラメータ（足平軌道パラメータなど）の値を現在値（現在候補値）からＳ０２６の処理（詳しくは図１６のＳ６００〜Ｓ６１０の処理）で決定した値に所定量だけ近づけて更新し、その更新後の優先パラメータを含んで、今回歩容の境界条件を動力学モデル上で満足し得る新たな今回歩容パラメータを探索する処理である。そして、この処理では、（ａ，ZMPrecpeeka，ZMPrecpeekb）が探索対象とされる。なお、Ｓ２１０２−１における今回歩容パラメータの優先パラメータの現在値（更新前の候補値）は、Ｓ２１００で決定された今回歩容パラメータの仮値のうちの優先パラメータの値である。また、Ｓ２１０４−１の処理では、探索対象の初期候補値として、Ｓ２１００で決定された仮値が用いられる。【０１９４】
図１７の説明に戻って、Ｓ２１０２−１，Ｓ２１０４−１の上記した処理の後、Ｓ２１０２−１，Ｓ２１０４−１の処理と同様の処理（図１７ではＳ２１０２−２，Ｓ２１０４−２）が繰り返される。そして、最終的に、Ｓ２１０４−ｎ（ｎは総繰り返し回数）において、今回歩容パラメータの優先パラメータは、Ｓ０２６の処理で決定された値に一致させる。さらに、Ｓ２１０４−ｎにおいて、Ｓ２１０４−１と同様に、現在候補の今回歩容パラメータを基に、動力学モデル上で今回歩容の境界条件を満足するような探索対象ａ，ZMPrecpeeka，ZMPrecpeekbの値が探索的に決定され、新たな今回歩容パラメータが決定される。【０１９５】
これらの繰り返し処理において、Ｓ２１０２−ｋ（ｋ＝２，…，ｎ）で優先パラメータを更新する前における優先パラメータの値は、Ｓ２１０２−（ｋ−１）での更新後の優先パラメータの値である（Ｓ２１０２−１では、前記したように更新前の優先パラメータの値はＳ２１００で決定された仮値である）。また、Ｓ２１０４−ｋ（ｋ＝２，…，ｎ）の処理は、Ｓ２１０４−１の処理と同じである。但し、Ｓ２１０４−ｋでは、探索対象ａ，ZMPrecpeeka，ZMPrecpeekbの初期値候補（図１８のＳ１７００で設定する初期値候補）として、Ｓ２１０４−ｋの処理の開始時に設定されている値、すなわち、Ｓ２１０４−（ｋ−１）の処理で最終的に探索された探索対象の値が用いられる（Ｓ２１０４−１では、前記したように探索対象の初期値候補は、Ｓ２１００で決定された仮値である）。
【０１９６】
以上のようにして、Ｓ２１００で決定された今回歩容パラメータの優先パラメータの値（仮値）を初期値として、該優先パラメータの値が段階的にＳ０２６の処理で決定された値（これは今回歩容に関する要求を満足するための優先パラメータの値（優先パラメータ要求値）である）に近づくように、該優先パラメータの値が段階的に更新され、最終的にＳ０２６の処理で決定された値に一致させられる（Ｓ２１０２−１，Ｓ２１０２−２，……，Ｓ２１０２−ｎ）。従って、これらのＳ２１０２−１，Ｓ２１０２−２，……，Ｓ２１０２−ｎの処理は、第１発明における優先パラメータ漸近手段に相当する。そして、その優先パラメータの更新の都度、その更新後の優先パラメータを含む今回歩容パラメータの探索対象の値が、その更新の直前に決定された値を初期値候補として、今回歩容の境界条件を満たすように探索され、その探索結果の探索対象を含む今回歩容パラメータが新たに決定される（Ｓ２１０４−１，２１０４−２，……，Ｓ２１０４−ｎ）。従って、これらのＳ２１０４−１，Ｓ２１０４−２，……，Ｓ２１０４−ｎの処理は、第１発明における新規歩容パラメータ決定手段に相当し、それぞれの処理で最終的に決定される探索対象を含む今回歩容パラメータが第１発明における新規歩容パラメータに相当する。そして、Ｓ２１０４−ｎで最終的に決定された新たな今回歩容パラメータがこれから生成しようとする今回歩容の歩容パラメータである。【０１９７】
補足すると、上記の繰り返し処理の総繰り返し回数ｎは、Ｓ２１００で決定する今回歩容パラメータの優先パラメータの値と、Ｓ０２６で決定した優先パラメータの値（優先パラメータ要求値）との差に応じて決定される。また、今回歩容パラメータのうち、優先パラメータおよび探索対象のパラメータ以外のパラメータ（固定的なパラメータ）は、Ｓ２１００で決定された今回歩容パラメータの当該パラメータの値に維持される。【０１９８】
以上説明した図１７の処理によって、Ｓ２１００で決定された仮の今回歩容パラメータ（今回歩容の境界条件を満足するように過去に決定された今回歩容パラメータ）の優先パラメータの値を徐々にＳ０２６で決定した優先パラメータ（これから生成しようとする今回歩容の優先パラメータ）の値に近づけるように更新しつつ、その更新の都度、境界条件を満足する今回歩容パラメータが新たに決定される。このため、境界条件を満足するような今回歩容を上体位置姿勢の発散が生じたりすることなく、効率よく短時間で作成することができる。【０１９９】
図１２の説明に戻って、以上説明したようにＳ０２８の処理を実行した後、Ｓ０３０に進んで、フルモデル補正用のＺＭＰ許容範囲と床反力水平成分許容範囲を規定するパラメータが決定される。【０２００】
この処理は、前記公報文献１の図１３のＳ０３０の処理と同一であり、ここでの説明は省略する。【０２０１】
以上説明したＳ０１８からＳ０３０までの処理が、前記図５の歩容パラメータ決定部１００ａで実行される処理である。【０２０２】
Ｓ０３０の処理を実行した後、あるいは、Ｓ０１６の判断結果がＮＯであるときには、Ｓ０３２に進んで、今回歩容の瞬時値を逐次決定する。この処理のサブルーチン処理は、仮今回歩容の生成に関して説明した前記図１９のフローチャートの処理と同じである。この場合、ＺＭＰ修正パラメータａ、上体傾斜復元モーメントＺＭＰ換算値の第１ピーク値ZMPrecpeekaおよび第２ピーク値ZMPrecpeekbとしては、図１２のＳ０２８で最終的に決定したもの（図１７のＳ２１０４−ｎの処理で最終的に探索されたもの）が用いられる。
【０２０３】
次いで、Ｓ０３４に進んで、ロボット１のスピン（鉛直軸まわりの回転）をキャンセルするための腕体５，５の動作が決定される。この処理は、ロボット１の腕を振らずに目標歩容通りにロボット１を運動させた場合に目標ＺＭＰまわりに発生する床反力モーメントの鉛直成分と逆向きの床反力モーメントを腕体５，５の腕振り（両腕体５，５を前後逆方向に振る運動）によって発生させるように腕体５，５の姿勢を決定するものであり、前記公報文献１の図１３のＳ０３４と全く同様に行われる。その詳細は、同公報文献１に記載されているので、ここではさらなる説明を省略する。【０２０４】
次いで、Ｓ０３６に進んで、フルモデル補正用（前記フルモデル補正部１００ｃの処理用）のＺＭＰ許容範囲の瞬時値と、床反力水平成分許容範囲の瞬時値とが決定される。この処理では、前記Ｓ０３０で決定したＺＭＰ許容範囲および床反力水平成分許容範囲を規定する歩容パラメータに基づいて決定される。
【０２０５】
以上説明したＳ０３２〜Ｓ０３６の処理が、前記図５の目標瞬時値発生部１００ｂで実行される処理の詳細である。【０２０６】
次いで、Ｓ０３８に進んで、フルモデルを用いた補正歩容を発生する。この処理は、前記フルモデル補正部１００ｃにより実行される処理である。この場合、この処理は、前記公報文献１の図１３のＳ０３８の処理と同一であり、同公報文献１に記載されたとおりに実行される。従って、本明細書では詳細な説明は省略する。この処理により、目標上体位置姿勢（前記変位次元補正歩容の上体位置姿勢）をさらに修正してなる補正目標上体位置姿勢と補正目標床反力モーメントとが決定される。【０２０７】
以上が、本実施形態における歩容生成装置１００の歩容生成処理である。【０２０８】
次に図４を参照して複合コンプアライアンス制御装置１０１の動作を説明しておく。なお、複合コンプライアンス制御装置１０１の動作は、本出願人が先に出願した特開平１０−２７７９６９号公報などに詳細に記載されているので、本明細書では概略的な説明にとどめる。歩容生成装置１００において、上記したように生成された目標歩容のうち、補正目標上体位置姿勢（軌道）、目標腕姿勢（軌道）が、ロボット幾何学モデル（逆キネマティクス演算部）１０２に送出される。【０２０９】
また、目標足平位置姿勢（軌道）、目標ＺＭＰ軌道（目標全床反力中心点軌道）、および目標全床反力（軌道）（補正目標床反力モーメントと目標床反力鉛直成分）は、複合コンプライアンス動作決定部１０４に送られると共に、目標床反力分配器１０６にも送られる。そして、目標床反力分配器１０６で、床反力は各足平２２に分配され、目標各足平床反力中心点および目標各足平床反力が決定される。この決定された目標各足平床反力中心点および目標各足平床反力は複合コンプライアンス動作決定部１０４に送られる。【０２１０】
複合コンプライアンス動作決定部１０４から、機構変形補償付き修正目標足平位置姿勢（軌道）がロボット幾何学モデル１０２に送られる。ロボット幾何学モデル１０２は、目標上体位置姿勢（軌道）と機構変形補償付き修正目標足平位置姿勢（軌道）を入力されると、それらを満足する脚体２，２の１２個の関節の関節変位指令（値）を算出して変位コントローラ１０８に送る。変位コントローラ１０８は、ロボット幾何学モデル１０２で算出された関節変位指令（値）を目標値としてロボット１の１２個の関節の変位を追従制御する。また、ロボット幾何学モデル１０２は、目標腕姿勢を満足する腕関節の変位指定（値）を算出して変位コントローラ１０８に送る。変位コントローラ１０８は、ロボット幾何学モデル１０２で算出された関節変位指令（値）を目標値としてロボット１の腕体の１２個の関節の変位を追従制御する。【０２１１】
ロボット１に生じた床反力（詳しくは実各足床反力）は６軸力センサ５０によって検出される。その検出値は前記複合コンプライアンス動作決定部１０４に送られる。また、ロボット１に生じた姿勢傾斜偏差θerrx，θerry（詳しくは目標上体姿勢角に対する実姿勢角の偏差で、ロール方向（Ｘ軸回り）の姿勢角偏差がθerrxであり、ピッチ方向（Ｙ軸回り）の姿勢角偏差がθerryである）が姿勢センサ５４を介して検出され、その検出値は姿勢安定化制御演算部１１２に送られる。この姿勢安定化制御演算部１１２で、ロボット１の上体姿勢角を目標上体姿勢角に復元するための目標全床反力中心点（目標ＺＭＰ）まわり補償全床反力モーメントが算出されて複合コンプライアンス動作決定部１０４に送られる。複合コンプライアンス動作決定部１０４は、入力値に基づいて目標床反力を修正する。具体的には、目標全床反力中心点（目標ＺＭＰ）回りに補償全床反力モーメント、あるいは、補償全床反力モーメントと補正目標床反力モーメントとの和が作用するように目標床反力を修正する。【０２１２】
複合コンプライアンス動作決定部１０４は、修正された目標床反力に、センサ検出値などから算出される実ロボットの状態および床反力を一致させようと上記機構変形補償付き修正目標足平位置姿勢（軌道）を決定する。この場合、機構変形補償付き修正目標足平位置姿勢は、前記コンプライアンス機構７２の等の機構的変形を考慮したものである。ただしすべての状態を目標に一致させることは事実上不可能であるので、これらの間にトレードオフ関係を与えて妥協的になるべく一致させる。すなわち、各目標に対する制御偏差に重みを与えて、制御偏差（あるいは制御偏差の２乗）の重み付き平均が最小になるように制御する。これにより、実際の足平位置姿勢と全床反力とが目標足平位置姿勢と目標全床反力とに概ね従うように制御される。【０２１３】
なお、以上説明した実施形態では、歩容パラメータ（定常歩容パラメータおよび今回歩容パラメータ）を、前回歩容（過去に決定した歩容）に対応するものから徐々に更新していくようにしたが、定常歩容、今回歩容のいずれにおいても、あらかじめ該歩容の境界条件を満足する標準（基準）歩容パラメータを用意（作成）して記憶保持しておき、それを起点として歩容パラメータを徐々に更新していくようにしてもよい。例えば、今回歩容の足平軌道パラメータに係る遊脚足平２２の着地予定位置姿勢を、ロボット１の同じ場所での足踏みを行なう場合の位置姿勢から、要求値に対応する位置姿勢に徐々に更新したり、歩行周期を徐々に更新していくようにしてもよい。【０２１４】
また、前記実施形態では、今回歩容を定常歩容に近づけるために、今回歩容の終端の発散成分を定常歩容の初期発散成分にほぼ一致させることを今回歩容の境界条件として、その境界条件を満たすように今回歩容パラメータの探索対象を探索して決定するようにしたが、今回歩容の終端の上体位置（水平位置および鉛直位置）と、上体速度（水平速度および鉛直速度）とをそれぞれ定常歩容の初期の上体位置、上体速度にほぼ一致させることを今回歩容の境界条件とし、この境界条件を満たすように今回歩容パラメータの探索対象を探索して決定するようにしてもよい。【０２１５】
あるいは、今回歩容の終端のロボット１の全体重心の位置とその変化速度との重み付き平均値を、定常歩容の初期の当該重み付き平均値にほぼ一致させることを境界条件として、その境界条件を満たすように今回歩容パラメータの探索対象を決定するようにしてもよい。【０２１６】
また、定常歩容パラメータを決定するとき、定常歩容の境界条件を満たすために、定常歩容パラメータの探索対象として、ロボット１の上記重み付き平均値、または発散成分を用いてもよい。なお、重み付き平均値は、所定の重みを設定することで、絶対的な大きさを無視すれば、発散成分と等価（より正確には、発散成分と比例関係）になる。
【産業上の利用可能性】
【０２１７】
以上の説明から明らかなように、本発明の移動ロボットの歩容生成装置は、歩容の発散を防止しつつ、所要の境界条件を満足し得る歩容を効率よく生成することができ、特に２足移動ロボットのような本来的な安定性が低い移動ロボットの歩容を該移動ロボットの安定性を確保しつつ生成できる点で有用である。
【図面の簡単な説明】
【０２１８】
【図１】本発明の実施形態を適用する移動ロボット（２足歩行ロボット）の全体構成の概略を示す図。
【図２】図１のロボットの各脚体の足平部分の構成を示す側面図。
【図３】図１のロボットに備えた制御ユニットの構成を示すブロック図。
【図４】図３の制御ユニットの機能的構成を示すブロック図。
【図５】図４に示す歩容生成装置の機能を示すブロック図。
【図６】（ａ），（ｂ）はそれぞれロボットの運動モード（上体並進モード、上体回転モード）を説明するための図。
【図７】歩容生成で用いる動力学モデルの構造を示す図。
【図８】歩容生成で用いるフルモデルの構造を示す図。
【図９】実施形態における歩容生成装置のメインルーチン処理を示すフローチャート。
【図１０】図９のサブルーチン処理を示すフローチャート。
【図１１】図１０のサブルーチン処理を示すフローチャート。
【図１２】図１１のサブルーチン処理を示すフローチャート。
【図１３】図１２のサブルーチン処理を示すフローチャート。
【図１４】図１３のサブルーチン処理を示すフローチャート。
【図１５】図１４のサブルーチン処理を示すフローチャート。
【図１６】図９のサブルーチン処理を示すフローチャート。
【図１７】図９のサブルーチン処理を示すフローチャート。
【図１８】図１７のサブルーチン処理を示すフローチャート。
【図１９】図１８のサブルーチン処理を示すフローチャート。
【図２０】定常歩容における上体傾斜復元モーメントＺＭＰ換算値の例を示すグラフ。
【図２１】今回歩容における上体傾斜復元モーメントＺＭＰ換算値の例を示すグラフ。
【図２２】今回歩容における仮目標ＺＭＰとＺＭＰ修正量と目標ＺＭＰとの例を示すグラフ。
【図１】
0004800038.tif 000002
【図２】
0004800038.tif 000003
【図３】
0004800038.tif 000004
【図４】
0004800038.tif 000005
【図５】
0004800038.tif 000006
【図６】
0004800038.tif 000007
【図７】
0004800038.tif 000008
【図８】
0004800038.tif 000009
【図９】
0004800038.tif 000010
【図１０】
0004800038.tif 000011
【図１１】
0004800038.tif 000012
【図１２】
0004800038.tif 000013
【図１３】
0004800038.tif 000014
【図１４】
0004800038.tif 000015
【図１５】
0004800038.tif 000016
【図１６】
0004800038.tif 000017
【図１７】
0004800038.tif 000018
【図１８】
0004800038.tif 000019
【図１９】
0004800038.tif 000020
【図２０】
0004800038.tif 000021
【図２１】
0004800038.tif 000022
【図２２】
0004800038.tif 000023