(57)【特許請求の範囲】
【請求項１】
基体に連結される複数の脚体を駆動することにより、複数の脚体のうちいずれかの足部に床反力が作用している着床期と、全ての脚体の足部に床反力が作用していない空中期とを繰り返しながら移動する脚式移動ロボットであって、
離床開始後、足部の床面に対する傾斜角度を徐々に変化させて、空中期の途中までに足部の接地面と床面とが平行になる傾斜角度にし、それ以降は、その傾斜角度を着床時まで保持するように、脚体を駆動することを特徴とする脚式移動ロボット。
【請求項２】
脚体が離床する直前に、該脚体がその足部の先端部において着床したまま、該足部の後端部が床面から徐々に離れるように該脚体を駆動することを特徴とする請求項１記載の脚式移動ロボット。
【請求項３】
上体と、上体から下方に延設された複数の脚体とを備え、各脚体に対して回動可能な足平における離床及び着床を伴う各脚体の動作により移動するとともに、全ての脚体が離床している空中期を伴って移動する脚式移動ロボットであって、
床面に対する足平の傾斜角度を測定する足平傾斜角度測定手段と、
足平傾斜角度測定手段により測定された床面に対する該脚体の足平の傾斜角度が、離床開始後、空中期の途中までに徐々に０にし、それ以降は、その０を着床時まで保持するように、該脚体に対する足平の回動動作を制御する足平動作制御手段とを備えていることを特徴とする脚式移動ロボット。
【請求項４】
足平動作制御手段が、離床期の直前に、脚体が足平の先端部において着床したまま、足平傾斜角度測定手段により測定された床面に対する該足平の傾斜角度が、該足平の後端部が先端部よりも床面から遠くなるような正側に増大するように、該脚体に対する足平の回動動作を制御することを特徴とする請求項３記載の脚式移動ロボット。
【請求項５】
基体に連結される複数の脚体を駆動することにより、複数の脚体のうちいずれかの足部に床反力が作用している着床期と、全ての脚体の足部に床反力が作用していない空中期と
を繰り返しながら移動する脚式移動ロボットを制御する機能を該ロボットに搭載されているコンピュータに対して付与するプログラムであって、
離床開始後、足部の床面に対する傾斜角度を徐々に変化させて、空中期の途中までに足部の接地面と床面とが平行になる傾斜角度にし、それ以降は、その傾斜角度を着床時まで保持するように、前記ロボットの脚体の作動を制御する機能を該ロボットに搭載されているコンピュータに対して付与することを特徴とする制御プログラム。
【請求項６】
脚体が離床する直前に、該脚体がその足部の先端部において着床したまま、該足部の後端部が床面から徐々に離れるように前記ロボットの脚体の作動を制御する機能を該ロボットに搭載されているコンピュータに対して付与することを特徴とする請求項５記載の制御プログラム。
【請求項７】
上体と、上体から下方に延設された複数の脚体とを備え、各脚体に対して回動可能な足平における離床及び着床を伴う各脚体の動作により移動するとともに、全ての脚体が離床している空中期を伴って移動する脚式移動ロボットを制御する機能を該ロボットに搭載されているコンピュータに付与するプログラムであって、
床面に対する足平の傾斜角度を測定する足平傾斜角度測定機能と、
足平傾斜角度測定機能により測定された床面に対する該脚体の足平の傾斜角度が、離床開始後、空中期の途中までに徐々に０にし、それ以降は、その０を着床時まで保持するように、該脚体に対する足平の回動動作を制御する足平動作制御機能とを前記ロボットに搭載されているコンピュータに対して付与することを特徴とする制御プログラム。
【請求項８】
足平動作制御機能として、離床期の直前に、脚体が足平の先端部において着床したまま、足平傾斜角度測定機能により測定された床面に対する該足平の傾斜角度が、該足平の後端部が先端部よりも床面から遠くなるような正側に増大するように、該脚体に対する足平の回動動作を制御する機能を前記ロボットに搭載されているコンピュータに対して付与することを特徴とする請求項７記載の制御プログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、脚式移動ロボットおよびその制御プログラムに関する。
【背景技術】
【０００２】
従来、脚式移動ロボットの階段昇降時等におけるロボットへの着地衝撃を緩和し、動作の安定化させるための技術的手法が提案されている（例えば、特開平５−３１８３４２号公報参照）。【０００３】
しかし、全ての脚体が床面から浮いている空中期と、複数の脚体の先端にある足底のうちいずれかが床面に接している着床期とを繰り返すことによりロボットが走行するとき、着地時にロボットが受ける衝撃は特に大きくなる。また、空中期におけるロボットの移動速度やヨー軸回りの角速度が過大である等のため、着地時にロボットがその足底においてスリップしたり、スピンしたりするおそれがある。【０００４】
そこで、本発明は、脚体の着床時の衝撃を緩和するとともに当該脚体の足底におけるスリップやスピンを回避して安定に歩行または走行可能な脚式移動ロボット、およびその制御プログラムを提供することを解決課題とする。
【発明の開示】
【０００５】
前記課題を解決するための本発明の第１態様の脚式移動ロボットは、基体に連結される複数の脚体を駆動することにより、複数の脚体のうちいずれかの足部に床反力が作用している着床期と、全ての脚体の足部に床反力が作用していない空中期とを繰り返しながら移動する脚式移動ロボットであって、離床開始後、足部の床面に対する傾斜角度を徐々に変化させて、空中期の途中までに足部の接地面と床面とが平行になる傾斜角度にし、それ以降は、その傾斜角度を着床時まで保持するように、脚体を駆動することを特徴とする。
【０００６】
本発明の第１態様の脚式移動ロボットによれば、脚体の離床期の中間時点から着床期の開始時点にかけてこの脚体の足部の床面に対する傾斜角度が徐々に０に近づくように脚体の動作が制御される。これにより、離床期から着床期に移行した直後の脚体の足部（接地面）における着床面積が大きいものとなるので、その着床時の衝撃を足底に広く分散させ、ロボットが受ける衝撃が緩和され得る。また、足部（接地面）と床面とのフリクションが大きなものとなるので、脚体の着床直前におけるロボットの移動速度およびヨー軸回りの角速度が大きくても、このフリクションによってスリップやスピンを防止することができる。
【０００７】
従って、本発明のロボットは、脚体の足部における着床時の衝撃を緩和するとともにこの足部におけるスリップやスピンを回避して安定に歩行または走行することができる。
【０００８】
また、本発明の第１態様の脚式移動ロボットは、脚体が離床する直前に、該脚体がその足部の先端部において着床したまま、該足部の後端部が床面から徐々に離れるように該脚体を駆動することを特徴とする。
【０００９】
本発明の脚式移動ロボットによれば、足部の先端部（爪先）で床面を蹴るような形で脚体の動作が制御される。これにより、ロボットの推進力が増強される一方、前記のように着床時にロボットの足底におけるスリップやスピンが防止されるので、ロボットをその挙動を安定なものとしながら高速移動させることができる。
【００１４】
前記課題を解決するための本発明の第２態様の脚式移動ロボットは、上体と、上体から下方に延設された複数の脚体とを備え、各脚体に対して回動可能な足平における離床及び着床を伴う各脚体の動作により移動するとともに、全ての脚体が離床している空中期を伴って移動する脚式移動ロボットであって、床面に対する足平の傾斜角度を測定する足平傾斜角度測定手段と、足平傾斜角度測定手段により測定された床面に対する該脚体の足平の傾斜角度が、離床開始後、空中期の途中までに徐々に０にし、それ以降は、その０を着床時まで保持するように、該脚体に対する足平の回動動作を制御する足平動作制御手段とを備えていることを特徴とする。
【００１５】
本発明の第２態様の脚式移動ロボットによれば、脚体の離床期の中間時点から着床期の開始時点にかけてこの脚体の足平（足底）の床面に対する傾斜角度が徐々に０に近づくように脚体に対する足平の回動動作が制御される。これにより、離床期から着床期に移行した直後の脚体の足平（足底）における着床面積が大きいものとなるので、その着床時の衝撃を足底に広く分散させ、ロボットが受ける衝撃が緩和され得る。また、足底と床面とのフリクションが大きなものとなるので、脚体の着床直前におけるロボットの移動速度およびヨー軸回りの角速度が大きくても、このフリクションによってスリップやスピンを防止することができる。
【００１６】
従って、本発明のロボットは、脚体の足平における着床時の衝撃を緩和するとともにこの足平におけるスリップやスピンを回避して安定に歩行または走行することができる。また、本発明の脚式移動ロボットによれば、空中期から脚体が着床するとき、他の脚体が着床している状態で当該脚体が着床する場合よりも当該脚体の着床衝撃が大きくなるものの、前記のように着床面積が大きく確保されることで着床時の衝撃を軽減することができる。
【００１７】
また、本発明の第２態様の脚式移動ロボットは、足平動作制御手段が、離床期の直前に、脚体が足平の先端部において着床したまま、足平傾斜角度測定手段により測定された床面に対する該足平の傾斜角度が、該足平の後端部が先端部よりも床面から遠くなるような正側に増大するように、該脚体に対する足平の回動動作を制御することを特徴とする。
【００１８】
本発明の脚式移動ロボットによれば、足平の先端部（爪先）で床面を蹴るような形で当該足平の脚体に対する回動動作が制御される。これにより、ロボットの推進力が増強される一方、前記のように着床時にロボットの足底におけるスリップやスピンが防止されるので、ロボットをその挙動を安定なものとしながら高速移動させることができる。
【００２３】
さらに、本発明の第２態様の脚式移動ロボットは、全ての脚体が離床している空中期を伴って移動することを特徴とする。
【００２５】
前記課題を解決するための本発明の第１態様の制御プラグラムは、基体に連結される複数の脚体を駆動することにより、複数の脚体のうちいずれかの足部に床反力が作用している着床期と、全ての脚体の足部に床反力が作用していない空中期とを繰り返しながら移動する脚式移動ロボットを制御する機能を該ロボットに搭載されているコンピュータに対して付与するプログラムであって、離床開始後、足部の床面に対する傾斜角度を徐々に変化させて、空中期の途中までに足部の接地面と床面とが平行になる傾斜角度にし、それ以降は、その傾斜角度を着床時まで保持するように、前記ロボットの脚体の作動を制御する機能を該ロボットに搭載されているコンピュータに対して付与することを特徴とする。
【００２６】
本発明の第１態様の制御プログラムによれば、脚体の足部における着床時の衝撃を緩和するとともにこの足部におけるスリップやスピンを回避して安定に歩行または走行するようにロボットを制御する機能が、このロボットに搭載されているコンピュータに付与される。
【００２７】
また、本発明の第１態様の制御プログラムは、脚体が離床する直前に、該脚体がその足部の先端部において着床したまま、該足部の後端部が床面から徐々に離れるように前記ロボットの脚体の作動を制御する機能を該ロボットに搭載されているコンピュータに対して付与することを特徴とする。
【００３０】
前記課題を解決するための本発明の第２態様の制御プログラムは、上体と、上体から下方に延設された複数の脚体とを備え、各脚体に対して回動可能な足平における離床及び着床を伴う各脚体の動作により移動するとともに、全ての脚体が離床している空中期を伴って移動する脚式移動ロボットを制御する機能を該ロボットに搭載されているコンピュータに付与するプログラムであって、床面に対する足平の傾斜角度を測定する足平傾斜角度測定機能と、足平傾斜角度測定機能により測定された床面に対する該脚体の足平の傾斜角度が、離床開始後、空中期の途中までに徐々に０にし、それ以降は、その０を着床時まで保持するように、該脚体に対する足平の回動動作を制御する足平動作制御機能とを前記ロボットに搭載されているコンピュータに対して付与することを特徴とする。
【００３１】
本発明の第２態様の制御プログラムによれば、脚体の足部における着床時の衝撃を緩和するとともにこの足部におけるスリップやスピンを回避して安定に歩行または走行するようにロボットを制御する機能が、このロボットに搭載されているコンピュータに付与される。
【００３２】
また、本発明の第２態様の制御プログラムは、足平動作制御機能として、離床期の直前に、脚体が足平の先端部において着床したまま、足平傾斜角度測定機能により測定された床面に対する該足平の傾斜角度が、該足平の後端部が先端部よりも床面から遠くなるような正側に増大するように、該脚体に対する足平の回動動作を制御する機能を前記ロボットに搭載されているコンピュータに対して付与することを特徴とする。
【図面の簡単な説明】
【００３６】
【図１】本発明の実施形態における脚式移動ロボットとしての２足移動ロボットの全体的構成の概略を示す概略図。
【図２】図１のロボットの各脚体の足平部分の構成を示す側面図。
【図３】図１のロボットに備えた制御ユニットの構成を示すブロック図。
【図４】図３の制御ユニットの機能的構成を示すブロック図。
【図５】図１のロボットの走行歩容を例示する説明図。
【図６】ロボット走行時の足平位置姿勢軌道の説明図。
【図７】足底と床面との距離ｄの説明図。
【図８】足底と床面とのなす角度θの説明図。
【図９】目標床反力鉛直成分の設定例を示す線図。
【図１０】目標ＺＭＰの設定例を示す線図。
【図１１】図３の制御ユニットに備えた歩容生成装置のメインルーチン処理を示すフローチャート。
【図１２】図１１のフローチャートサブルーチン処理を示すフローチャート。
【図１３】定常歩容の床反力水平成分許容範囲の設定例を示す線図。
【図１４】図１１のフローチャートのサブルーチン処理を示すフローチャート。
【図１５】今回歩容の床反力水平成分許容範囲の設定例を示す線図。
【図１６】歩行歩容における目標床反力鉛直成分の設定例を示す線図。
【図１７】歩行歩容における目標床反力鉛直成分の設定処理を例示するフローチャートである。
【発明を実施するための最良の形態】
【００３７】
本発明の脚式移動ロボットおよびその制御プログラムの実施形態について図面を用いて説明する。【００３８】
図１に示されている２足移動ロボット（以下、ロボットという）１は上体２４から下方に延設された左右一対の脚体（脚部リンク）２，２を備える。両脚体２，２は同一構造であり、それぞれ６個の関節を備える。その６個の関節は上体２４側から順に、股（腰部）の回旋（回転）用（上体２４に対するヨー方向の回転用）の関節１０Ｒ，１０Ｌ（符号Ｒ、Ｌはそれぞれ右側脚体、左側脚体に対応するものであることを意味する符号である。以下同じ）と、股（腰部）のロール方向（Ｘ軸まわり）の回転用の関節１２Ｒ，１２Ｌと、股（腰部）のピッチ方向（Ｙ軸まわり）の回転用の関節１４Ｒ，１４Ｌと、膝部のピッチ方向の回転用の関節１６Ｒ，１６Ｌと、足首のピッチ方向の回転用の関節１８Ｒ，１８Ｌと、足首のロール方向の回転用の関節２０Ｒ，２０Ｌとから構成される。【００３９】
各脚体２の足首の２つの関節１８Ｒ（Ｌ），２０Ｒ（Ｌ）の下部には、各脚体２の先端部を構成する足平（足部）２２Ｒ（Ｌ）が取着されると共に、両脚体２，２の最上位には、各脚体２の股の３つの関節１０Ｒ（Ｌ），１２Ｒ（Ｌ），１４Ｒ（Ｌ）を介して前記基体（上体）２４が取り付けられている。上体２４の内部には、詳細を後述する制御ユニット２６などが格納されている。なお、図１では図示の便宜上、制御ユニット２６を上体２４の外部に記載している。
【００４０】
制御ユニット２６は、ハードウェアとしてのＣＰＵ、ＲＯＭ、ＲＡＭ、信号入力回路、信号出力回路等と、このハードウェアに対してロボット１の作動制御機能を付与するソフトウェアとしての本発明の「制御プログラム」とより構成されている。【００４１】
上記構成の各脚体２においては、股関節（あるいは腰関節）は関節１０Ｒ（Ｌ），１２Ｒ（Ｌ），１４Ｒ（Ｌ）から構成され、膝関節は関節１６Ｒ（Ｌ）から構成され、足関節（足首関節）は関節１８Ｒ（Ｌ），２０Ｒ（Ｌ）から構成される。また股関節と膝関節とは大腿リンク２８Ｒ（Ｌ）で連結され、膝関節と足関節とは下腿リンク３０Ｒ（Ｌ）で連結される。【００４２】
なお、図示は省略するが、上体２４の上部の両側部には左右一対の腕体が取り付けられると共に、上体２４の上端部には頭部が配置される。これらの腕体および頭部は、本発明の要旨と直接的な関連を有しないので詳細な説明は省略するが、各腕体は、それに備える複数の関節によって、該腕体を上体２４に対して前後に振る等の運動を行なうことが可能となっている。【００４３】
各脚体２の上記構成により、各脚体２の足平（本発明の「足部」に相当する。）２２Ｒ（Ｌ）は、上体２４に対して６つの自由度を与えられている。そして、ロボット１の移動に際して両脚体２，２を合わせて６*２＝１２個（この明細書で「*」はスカラに対する演算においては乗算を示し、ベクトルに対する演算においては外積を示す）の関節を適宜な角度で駆動することで、両足平２２Ｒ，２２Ｌの所望の運動を行なうことができる。これによりロボット１は任意に３次元空間を移動することができる。【００４４】
なお、この明細書で後述する上体２４の位置および速度は、上体２４の所定位置、具体的には上体２４のあらかじめ定めた代表点（例えば左右の股関節の間の中央点等）の位置およびその移動速度を意味する。同様に、各足平２２Ｒ，２２Ｌの位置および速度は、各足平２２Ｒ，２２Ｌのあらかじめ定めた代表点の位置およびその移動速度を意味する。この場合、本実施形態では各足平２２Ｒ，２２Ｌの代表点は、例えば各足平２２Ｒ，２２Ｌの底面上（より具体的には各脚体２の足首関節の中心から各足平２２Ｒ，２２Ｌの底面への垂線が該底面と交わる点等）に設定される。【００４５】
図１に示す如く、各脚体２の足首関節１８Ｒ（Ｌ），２０Ｒ（Ｌ）の下方には足平２２Ｒ（Ｌ）との間に公知の６軸力センサ３４が介装されている。該６軸力センサ３４は、各脚体２の足平２２Ｒ（Ｌ）の着地の有無、および各脚体２に作用する床反力（接地荷重）などを検出するためのものであり、該床反力の並進力の３方向成分Ｆｘ，Ｆｙ，Ｆｚ並びにモーメントの３方向成分Ｍｘ，Ｍｙ，Ｍｚの検出信号を制御ユニット２６に出力する。また、上体２４には、Ｚ軸（鉛直方向（重力方向））に対する上体２４の傾き（姿勢角）とその角速度とを検出するための傾斜センサ３６が設置され、その検出信号が該傾斜センサ３６から制御ユニット２６に出力される。また、詳細構造の図示は省略するが、ロボット１の各関節には、それを駆動するために電動モータ３２（図３参照）と、その電動モータ３２の回転量（各関節の回転角）を検出するためのエンコーダ（ロータリエンコーダ）３３（図３参照）とが設けられ、該エンコーダ３３の検出信号が該エンコーダ３３から制御ユニット２６に出力される。【００４６】
図２に示すように、各足平２２Ｒ（Ｌ）の上方には、前記６軸力センサ３４との間にばね機構３８が装備されると共に、足底（各足平２２Ｒ（Ｌ）の底面）にはゴムなどからなる足底弾性体４０が貼られている。これらのばね機構３８および足底弾性体４０によりコンプライアンス機構４２が構成されている。ばね機構３８は具体的には、足平２２Ｒ（Ｌ）の上面部に取り付けられた方形状のガイド部材（図示せず）と、足首関節１８Ｒ（Ｌ）（図２では足首関節２０Ｒ（Ｌ）を省略している）および６軸力センサ３４側に取り付けられ、前記ガイド部材内に弾性材（ゴムやばね）を介して微動自在に収納されるピストン状部材（図示せず）とから構成されている。【００４７】
図２に実線で表示された足平２２Ｒ（Ｌ）は、床反力を受けていないときの状態を示している。各脚体２が床反力を受けると、コンプライアンス機構４２のばね機構３８と足底弾性体４０とがたわみ、足平２２Ｒ（Ｌ）は図中に点線で例示したような位置姿勢に移る。このコンプライアンス機構４２の構造は、着地衝撃を緩和するためだけでなく、ロボット１の制御性を高めるためにも重要なものである。なお、その詳細は本出願人に先に提案した特開平５−３０５５８４号に記載されているので、詳細な説明は省略する。【００４８】
さらに、図１では図示を省略するが、ロボット１の外部には、該ロボット１の操縦用のジョイスティック（操作器）４４（図３参照）が設けられ、そのジョイスティック４４を操作することで、直進移動しているロボット１を旋回させるなど、ロボット１の歩容に対する要求を必要に応じて制御ユニット２６に入力できるように構成される。この場合、入力できる要求は、例えばロボット１の移動時の歩容形態（歩行、走行等）、遊脚の着地位置姿勢や着地時刻、あるいはこれらの着地位置姿勢や着地時刻を規定する指令データ（例えばロボット１の移動方向、移動速度等）である。【００４９】
図３は制御ユニット２６の構成を示すブロック図である。該制御ユニット２６はマイクロコンピュータにより構成されており、ＣＰＵからなる第１の演算装置６０および第２の演算装置６２、Ａ／Ｄ変換器５０、カウンタ５６、Ｄ／Ａ変換器６６、ＲＡＭ５４、ＲＯＭ６４、並びにこれらの間のデータ授受を行なうバスライン５２を備えている。この制御ユニット２６では、前記各脚体２の６軸力センサ３４、傾斜センサ３６、ジョイスティック４４等の出力信号はＡ／Ｄ変換器５０でデジタル値に変換された後、バスライン５２を介してＲＡＭ５４に入力される。また、ロボット１の各関節のエンコーダ３３（ロータリエンコーダ）の出力はカウンタ５６を介してＲＡＭ５４に入力される。【００５０】
前記第１の演算装置６０は後述の如く、目標歩容を生成すると共に、関節角変位指令（各関節の変位角または各電動モータ３２の回転角の指令値）を算出し、ＲＡＭ５４に送出する。また第２の演算装置６２はＲＡＭ５４から関節角変位指令と、前記エンコーダ３３の出力信号に基づいて検出された関節角の実測値とを読み出し、各関節の駆動に必要な操作量を算出してＤ／Ａ変換器６６とサーボアンプ３２ａとを介して各関節を駆動する電動モータ３２に出力する。【００５１】
図４は、本実施形態におけるロボット１の歩容生成装置および制御装置の機能的構成を全体的に示すブロック図である。この図４中の「実ロボット」の部分以外の部分が制御ユニット２６が実行する処理機能（主として第１の演算装置６０および第２の演算装置６２の機能）によって構成されるものである。なお、以下の説明では、脚体２の左右を特に区別する必要がないときは、前記符号Ｒ，Ｌを省略する。【００５２】
以下説明すると、制御ユニット２６は、後述の如く目標歩容を自在かつリアルタイムに生成して出力する歩容生成装置１００を備えている。該歩容生成装置１００は、その機能によって、本願発明の各手段を構成するものである。この歩容生成装置１００が出力する目標歩容は、目標上体位置姿勢軌道（上体２４の目標位置および目標姿勢の軌道）、目標足平位置姿勢軌道（各足平２２の目標位置および目標姿勢の軌道）、目標腕姿勢軌道（各腕体の目標姿勢の軌道）、目標全床反力中心点（目標ＺＭＰ）軌道、および目標全床反力軌道から構成される。なお、脚体２や腕体以外に、上体２４に対して可動な部位を備える場合には、その可動部位の目標位置姿勢軌道が目標歩容に加えられる。【００５３】
ここで、上記歩容における「軌道」は時間的変化のパターン（時系列パターン）を意味し、以下の説明では、「軌道」の代わりに「パターン」と称することもある。また、「姿勢」は空間的な向きを意味する。具体的には、例えば上体姿勢はＺ軸（鉛直軸）に対するロール方向（Ｘ軸まわり）の上体２４の傾斜角（姿勢角）とピッチ方向（Ｙ軸まわり）の上体２４の傾斜角（姿勢角）とで表され、足平姿勢は各足平２２に固定的に設定された２軸の空間的な方位角で表される。本明細書では、上体姿勢は上体姿勢角ということもある。【００５４】
なお、以下の説明では、誤解を生じるおそれがない場合には、しばしば「目標」を省略する。また、歩容のうちの、床反力に係わる構成要素以外の構成要素、すなわち足平位置姿勢、上体位置姿勢等、ロボット１の運動に係わる歩容を総称的に「運動」という。また、各足平２２に作用する床反力（並進力およびモーメントからなる床反力）を「各足平床反力」と呼び、ロボット１の全て（２つ）の足平２２Ｒ，２２Ｌについての「各足平床反力」の合力を「全床反力」という。但し、以下の説明においては、各足平床反力はほとんど言及しないので、特に断らない限り、「床反力」は「全床反力」と同義として扱う。【００５５】
目標床反力は、一般的には、作用点とその点に作用する並進力およびモーメントによって表現される。作用点はどこにとっても良いので、同一の目標床反力でも無数の表現が考えられるが、特に目標床反力中心点（全床反力の中心点の目標位置）を作用点にして目標床反力を表現すると、目標床反力のモーメント成分は、鉛直成分（鉛直軸（Ｚ軸）まわりのモーメント）を除いて零になる。換言すれば、目標床反力中心点まわりの目標床反力のモーメントの水平成分（水平軸（Ｘ軸およびＹ軸）回りのモーメント）は零になる。【００５６】
なお、動力学的平衡条件を満足する歩容では、ロボット１の目標運動軌道から算出されるＺＭＰ（目標運動軌道から算出される慣性力と重力との合力がその点まわりに作用するモーメントが、鉛直成分を除いて零になる点）と目標床反力中心点は一致することから、目標床反力中心点軌道の代わりに目標ＺＭＰ軌道を与えると言っても同じことである（詳細は、本願出願人による特願２０００−３５２０１１号等を参照）。【００５７】
このような背景から、上記特願２０００−３５２０１１号の明細書では目標歩容を、次のように定義していた。
ａ）広義の目標歩容とは、１歩ないしは複数歩の期間の目標運動軌道とその目標床反力軌道との組である。
ｂ）狭義の目標歩容とは、１歩の期間の目標運動軌道とそのＺＭＰ軌道との組である。
ｃ) 一連の歩容は、いくつかの歩容がつながったものとする。【００５８】
歩行においては、本出願人が先に特開平１０−８６０８０号公報で提案した上体高さ決定手法によってロボット１の上体２４の鉛直位置（上体高さ）が決定されると、並進床反力鉛直成分は従属的に決定される。さらに、目標歩容の運動による慣性力と重力との合力が目標ＺＭＰまわりに発生するモーメントの水平成分が零になるようにロボット１の上体水平位置軌道を決定することで、並進床反力水平成分も決定される。このため、特願２０００−３５２０１１号の明細書では、目標歩容の床反力に関して明示的に設定すべき物理量としては、目標ＺＭＰだけで十分であった。従って、狭義の目標歩容の定義としては、上記のｂ）で十分であった。それに対し、本実施形態で説明するロボット１の走行歩容（詳細は後述する）においては、床反力鉛直成分（並進床反力鉛直成分）も制御上重要である。このため本発明では、この床反力鉛直成分の目標軌道を明示的に設定した上で、ロボット１の目標上体鉛直位置等の軌道を決定する。そこで、本明細書では、狭義の目標歩容の定義として、次のｂ’）を用いる。
ｂ’）狭義の目標歩容とは、１歩の期間の目標運動軌道とその目標ＺＭＰ軌道と目標並進床反力鉛直成分軌道との組である。【００５９】
この明細書では以降、理解を容易にするために、特にことわらない限り、目標歩容は上記ｂ’）の狭義の目標歩容の意味で使用する。この場合、目標歩容の「１歩」は、ロボット１の片方の脚体２が着地してからもう一方の脚体２が着地するまでの意味で使用する。なお、以下の説明では、「床反力鉛直成分」は「並進床反力鉛直成分」を意味するものとし、床反力のうちのモーメントの鉛直成分（鉛直軸回り成分）は、「モーメント」という用語を用いて「床反力鉛直成分」と区別をする。同様に、「床反力水平成分」は「並進床反力水平成分」を意味するものとする。【００６０】
また、歩容における両脚支持期とは言うまでもなく、ロボット１がその自重を両脚体２，２で支持する期間、片脚支持期とはいずれか一方のみの脚体２でロボット１の自重を支持する期間、空中期とは両脚体２，２が床から離れている（空中に浮いている）期間を言う。片脚支持期においてロボット１の自重を支持しない側の脚体２を「遊脚」と呼ぶ。なお、本実施形態で説明する走行歩容では、両脚支持期は無く、片脚支持期（着地期）と空中期とが交互に繰り返される。この場合、空中期では両脚２，２とも、ロボット１の自重を支持しないこととなるが、該空中期の直前の片脚支持期において遊脚であった脚体２、支持脚であった脚体２をそれぞれ該空中期においても遊脚、支持脚と呼ぶ。【００６１】
図５に示す走行歩容を例にして、歩容生成装置１００が生成する目標歩容の概要を説明する。なお、歩容に関するその他の定義および詳細は、先に本願出願人が提案した特開平１０−８６０８１号公報にも記載されているので、以下では、特開平１０−８６０８１号公報に記載されていない内容を主に説明する。【００６２】
まず、図５に示す走行歩容を説明する。この走行歩容は、人間の通常的な走行歩容と同様の歩容である。この走行歩容では、ロボット１の左右いずれか一方のみの脚体２（支持脚）の足平２２が着地（接地）する片脚支持期と、両脚体２，２が空中に浮く空中期とが交互に繰り返される。【００６３】
この走行歩容は、図５（ａ）に示されているように左脚体２Ｌの後方にある右脚体２Ｒが前方に振られ、左脚体２Ｌの足平２２Ｌがその底面のほぼ全面で着床している片脚支持期の中間時点（ｔ＝ｔ１）、図５（ｂ）に示されているように左脚体２Ｌの前方にある右脚体２Ｒが前方に振られ、左脚体２Ｌの足平２２Ｌが着床しながらもその後端側が上昇するように傾動している片脚支持期の終了時点（〜次の空中期の開始時点）（ｔ＝ｔ２）、図５（ｃ）に示されているように右脚体２Ｒが左脚体２Ｌより前にあって両脚体が離床している空中期（ｔ＝ｔ３）、図５（ｄ）に示されているように右脚体２Ｒの足平２２Ｌがその底面のほぼ全面で着床する片脚支持期の開始時点（〜前の空中期の終了時点）（ｔ＝ｔ４）、図５（ｅ）に示されているように右脚体２Ｒより前方にある左脚体２Ｌが前方に振られ、左脚体２Ｒの足平２２Ｒが着床しながらもその後端側が上昇するように傾動している片脚支持期の終了時点（〜次の空中期の開始時点）（ｔ＝ｔ５）、図５（ｆ）に示されているように左脚体２Ｌが右脚体２Ｒより前にあって両脚体が離床している空中期（ｔ＝ｔ６）、および図５（ｇ）に示されているように左脚体２Ｌの足平がその底面のほぼ全面で着床する片脚支持期の開始時点（〜前の空中期の終了時点）（ｔ＝ｔ７）へと変化するようなものである。【００６４】
図５の走行歩容を考慮しつつ、前記歩容生成装置１００が生成する目標歩容の基本的な概要を説明する。詳細は後述するが、歩容生成装置１００が目標歩容を生成するとき、遊脚側の足平２２の着地位置姿勢（着地予定位置姿勢）や着地時刻（着地予定時刻）等の目標歩容生成用の基本的な要求値（要求パラメータ）が、前記ジョイスティック４４の所要の操作等に応じて歩容生成装置１００に与えられる。そして、歩容生成装置１００は、その要求パラメータを用いて目標歩容を生成する。より詳しく言えば、歩容生成装置１００は、上記要求パラメータに応じて、目標歩容の目標足平位置姿勢軌道、目標床反力鉛直成分軌道等、目標歩容の一部の構成要素を規定するパラメータ（歩容パラメータという）を決定した上で、その歩容パラメータを用いて目標歩容の瞬時値を逐次決定し、該目標歩容の時系列パターンを生成する。【００６５】
この場合、目標足平位置姿勢軌道（より詳しくは、足平の位置および姿勢の空間的な各成分（Ｘ軸成分等）の目標軌道）は、例えば本出願人が特許第３２３３４５０号にて提案した有限時間整定フィルタを用いて各足平２２毎に生成される。この有限時間整定フィルタは、可変時定数の１次遅れフィルタ、すなわち、伝達関数が１／（１＋τｓ）の形で表されるフィルタ（τは可変の時定数。以下、このフィルタを単位フィルタという）を複数段（本実施形態では３段以上）、直列に接続したものであり、所望の指定時刻に指定値に到達するような軌道を生成・出力することができるものである。この場合、各段の単位フィルタの時定数τは、いずれも、有限時間整定フィルタの出力生成を開始してから、上記指定時刻までの残時間に応じて逐次可変的に設定される。より詳しくは、該残時間が短くなるに伴いτの値が所定の初期値（＞０）から減少されていき、最終的には、該残時間が０になる指定時刻にて、τの値が０になるように設定される。そして、有限時間整定フィルタには、前記指定値（より詳しくは、有限時間整定フィルタの出力の初期値から前記指定値への変化量）に応じた高さのステップ入力が与えられる。このような有限時間整定フィルタは、指定時刻にて指定値に達するような出力が生成されるだけでなく、指定時刻における有限時間整定フィルタの出力の変化速度を０またはほぼ０にすることができる。特に、単位フィルタを３段以上（３段でよい）、接続した場合には、有限時間整定フィルタの出力の変化加速度（変化速度の微分値）をも０またはほぼ０にすることができる。【００６６】
このような有限時間整定フィルタを用いる足平位置姿勢軌道（足平２２が着地してから次に着地するまでの位置姿勢軌道）の生成は、例えば次のように行なわれる。例えばＸ軸方向（前後方向）の目標足平位置軌道は次のように生成される。すなわち、前記要求パラメータにより定まる各足平２２の次の着地予定位置のＸ軸方向位置（より詳しくは、次の着地予定位置のひとつ前の着地位置に対するＸ軸方向の変化量（移動量）。これは前記指定値に相当する）に応じて有限時間整定フィルタへのステップ入力の高さが決定されると共に前記時定数τが所定の初期値に初期化された後、その決定されたステップ入力が有限時間整定フィルタに与えられ、足平２２のＸ軸方向位置の軌道生成が開始される。そして、この軌道生成時には、前記時定数τは、足平２２の着地予定時刻（これは前記指定時刻に相当する）までに初期値から０まで減少していくように、逐次可変設定される。これにより、着地予定時刻で着地予定位置に達するような、足平２２のＸ軸方向の位置の軌道が生成される。【００６７】
また、Ｚ軸方向（鉛直方向）の目標足平位置軌道は、例えば次のように生成される。すなわち、まず、足平２２の次の着地予定位置および着地予定時刻に応じて、該足平２２の高さ（鉛直位置）が最大になるときの該足平２２のＺ軸方向位置（以下、最高点位置という）とその最高点位置への到達時刻とが決定される。そして、その最高点位置（これは前記指定値に相当する）に応じて有限時間整定フィルタへのステップ入力の高さが決定されると共に時定数τが初期化された後、その決定されたステップ入力が有限時間整定フィルタに与えられ、前記最高点位置までのＺ軸方向の足平位置軌道が逐次生成される。この際、時定数τは、最高点位置への到達時刻（前記指定時刻に相当）までに初期値から０まで減少するように逐次可変設定される。さらに、最高点位置までのＺ軸方向位置の軌道の生成が終了したら、時定数τを初期化すると共にいままでのステップ入力と逆極性のステップ入力（より詳しくは、最高点位置から次の着地予定位置までのＺ軸方向の変化量（これは前記指定値に相当する）に応じた高さの逆極性のステップ入力）が有限時間整定フィルタに入力され、該最高点位置から着地予定位置までのＺ軸方向の足平位置の軌道が逐次生成される。この際、時定数τは足平２２の着地予定時刻までに初期値から０まで減少するように逐次可変設定される。【００６８】
これにより、図５の走行歩容における左脚体２Ｌの足底と床面との距離ｄが、図６および図７に示されているように変化するように、Ｚ軸方向（鉛直方向）の目標足平位置軌道が生成される。【００６９】
なお、Ｚ軸方向の足平位置軌道の生成においては、時定数τを軌道生成開始時刻から足平２２の着地予定時刻まで、初期値から０まで継続的に減少するように可変設定すると共に、最高点位置への到達時刻またはその近傍時刻で、ステップ入力の極性を逆極性に切り替えることで、Ｚ軸方向の足平位置軌道を生成するようにしてもよい。この場合には、足平２２を所望の最高点位置に精度よく到達させることはできないが、着地予定時刻での着地予定位置への到達は問題なく行なうことができる。【００７０】
足平姿勢軌道についても、上述した足平位置軌道と同様に有限時間整定フィルタを用いて生成することができる。この場合、足平姿勢の空間的な各成分のうち、その姿勢の角度変化が単調的（単調増加または単調減少）なものとなる成分については、前記したＸ軸方向の足平位置軌道の生成と同様に足平姿勢軌道を生成すればよい。また、姿勢の角度変化が極大値または極小値をもつような成分については、前記したＺ軸方向の足平位置軌道の生成と同様に足平姿勢軌道を生成すればよい。【００７１】
これにより、図５の走行歩容における左足平２２Ｌの横から見た姿勢が、図６および図８に示されているように変化するようにＺ軸方向の足平姿勢軌道が生成される。具体的には、離床期における足底が床面に対して先端部（爪先部）が後端部（踵部）よりも高い傾斜状態から、先端部を下降させるように連続的に傾動しながらこの離床期から次の着床期への移行直前にその床面に対して略平行になるように、足平２２Ｌの傾斜状態が変化する。当該角度θは、足底が床面に対して前方上がりのときは負（−）、前方下がりのときは正（＋）であると定義されている。【００７２】
本発明のロボット１は、空中期（図５（ｃ）（ｆ）参照）において、足底と床面とのなす角度θが０となるように足平２２の傾斜状態が制御される。すなわち、図５（ｇ）および図６に示されているように、遅くとも空中期から着床期に移行する時刻ｔ＝ｔ７には左足平２２Ｌの当該角度θが０に制御されている。【００７３】
なお、角度θが距離ｄの関数θ（ｄ）として定義されてもよい。前記のように離床期における足底が連続的に傾動しながら次の着床期への移行直前にその床面に対して略平行になるように、足平２２の傾斜状態が制御されている場合（図６参照）、θ（ｄ＝０）＝０、離床期から着床期への移行直前においてδθ／δｄ＞０となる。また、空中期の途中で角度θが０に制御され、そのまま着床期への移行時刻まで角度θが０に維持されてもよい。【００７４】
なお、上記のように有限時間整定フィルタにより生成される目標足平位置姿勢軌道は、床面に固定された後述の支持脚座標系での各足平２２の目標位置姿勢軌道である。【００７５】
上述のように生成される目標足平位置姿勢軌道は、各足平２２の位置が、その初期接地状態（目標歩容の初期時刻の状態）から着地予定位置に向かって徐々に加速しながら移動を開始するように生成される。そして、該目標足平位置姿勢軌道は、最終的に着地予定時刻までに徐々に位置の変化速度を０またはほぼ０にまで減速し、着地予定時刻にて着地予定位置に到達して停止するように生成される。このため、各足平２２の着地瞬間における対地速度（床に固定された支持脚座標系での各足平２２の位置の変化速度）が０またはほぼ０になる。従って、走行歩容において同時に全脚体２，２が空中に存在する状態（空中期での状態）から着地しても、着地衝撃が小さくなる。【００７６】
前記走行歩容においては、ロボット１に作用する重力によって空中期後半から上体２４の鉛直速度は下向きになり、着地時でも下向きのままである。従って、上記のように各足平２２の着地瞬間における対地速度が０またはほぼ０になるように目標足平位置姿勢軌道を生成すると共に、後述する如く動力学的平衡条件を満たすように上体２４の目標位置姿勢軌道を生成したとき、着地直前において、上体２４に対する遊脚側の足平２２の相対速度は、上向きになる。すなわち、走行歩容の着地瞬間では、ロボット１の目標歩容は遊脚側の足平２２を上体２４側に引っ込めながら着地するような歩容となる。言い換えれば、本実施例での目標歩容では、ロボット１は、着地瞬間において、遊脚側の足平２２の対地速度が０またはほぼ０になるように、上体２４から見て該足平２２を引き上げるようにして着地する。これによって、着地衝撃は小さくなり、着地衝撃が過大になるのを防止するようにしている。
【００７７】
また、本実施形態では、有限時間整定フィルタは、単位フィルタを３段以上（例えば３段）、直列に接続したものであるため、着地予定時刻までに各足平２２の速度（足平位置の変化速度）が０またはほぼ０になるだけでなく、各足平２２は、その加速度も着地予定時刻にて０またはほぼ０になって停止する。つまり、着地瞬間における対地加速度も０またはほぼ０になる。従って、着地衝撃がより一層小さくなる。特に、実際のロボット１の着地時刻が目標の着地時刻からずれても、衝撃があまり増大しなくなる。補足すると、着地予定時刻にて各足平２２の対地速度を０またはほぼ０にする上では、有限時間整定フィルタの単位フィルタの段数は２段でもよいが、この場合には、着地予定時刻での各足平２２の加速度は一般には０にならない。【００７８】
なお、足平姿勢に関しては、各足平２２が着地予定時刻にてその底面のほぼ全面で着地した後、しばらく一定に維持される。このため、該足平２２の底面のほぼ全面が床に接地する時刻を前記指定時刻に設定して、前記有限時間整定フィルタにより足平姿勢軌道が生成される。【００７９】
また、本実施形態では、有限時間整定フィルタを用いて足平位置軌道を生成したが、着地予定時刻での足平位置の変化速度が０またはほぼ０になる（足平位置の時間微分値が０になる）ように、さらには、該着地予定時刻での足平位置の変化加速度（変化速度の時間微分値）が０またはほぼ０になるように設定された多項式などの関数を用いて目標足平位置軌道を生成するようにしても良い。このことは、目標足平姿勢軌道の生成に関しても同様である。但し、該目標足平姿勢軌道の生成に関しては、上述の如く、各足平２２の底面のほぼ全面が床に接地する時刻にて、各足平２２の姿勢の変化速度、さらにはその変化加速度が０またはほぼ０になるように多項式などの関数が設定される。
【００８０】
目標床反力鉛直成分軌道は、例えば図９のように設定される。本実施形態では、走行歩容における目標床反力鉛直成分軌道の形状（詳しくは片脚支持期での形状）は、台形状（床反力鉛直成分の増加側に凸の形状）に定められており、その台形の高さ、折れ点の時刻を目標床反力鉛直成分軌道を規定する歩容パラメータとして、それらの歩容パラメータ（床反力鉛直成分軌道パラメータ）が決定される。なお、走行歩容の空中期では、目標床反力鉛直成分は定常的に０に設定される。この例のように、目標床反力鉛直成分軌道は、実質的に連続になるように（値が不連続にならないように）設定するのが良い。これは床反力を制御する際のロボット１の関節の動作を滑らかにするためである。なお、「実質的に連続」というのは、アナログ的に連続な軌道（真の意味での連続な軌道）を離散時間系でデジタル表現したときに必然的に生じる値の飛びは、該軌道の連続性を失わせるものではないということを意味するものである。【００８１】
目標ＺＭＰ軌道は次のように設定される。図５の走行歩容においては、前記したように支持脚側足平２２の底面のほぼ全面で着地し、次にその支持脚側足平２２の爪先で蹴って空中に飛び上がり、最後に遊脚側足平２２の底面のほぼ全面で着地する。従って、片脚支持期での目標ＺＭＰ軌道は、図１０の上段図に示すように、支持脚側足平２２の踵および爪先の中間位置を初期位置として、次に支持脚側足平２２の底面のほぼ全面が接地する期間において一定に維持され、その後、離床時までに支持脚側足平２２の爪先に移動するように設定される。ここで、図１０の上段図は、Ｘ軸方向（前後方向）の目標ＺＭＰ軌道を示すものであり、図１０の下段図はＹ軸方向（左右方向）の目標ＺＭＰ軌道を示すものである。なお、片脚支持期におけるＹ軸方向の目標ＺＭＰ軌道は、図１０の下段図に示すように、Ｙ軸方向での支持脚側脚体２の足首関節の中心位置と同じ位置に設定される。【００８２】
走行歩容では、さらに片脚支持期の終了後、両脚体２，２が床から離れ、床反力鉛直成分が０になる。床反力鉛直成分が０の時、すなわち空中期には、ロボット１の全体重心は自由落下運動をし、全体重心まわりの角運動量変化は零である。この時、床の任意の点において、ロボット１に作用する重力と慣性力との合力のモーメントは０であるので、目標ＺＭＰは不定である。すなわち、床のいずれの点も、「重力と慣性力との合力が作用するモーメントの水平成分が０である作用点」というＺＭＰの条件を満たす。言いかえれば、任意の点に目標ＺＭＰを設定しても、上記合力が目標ＺＭＰ回りに作用するモーメントの水平成分が０であるという動力学的平衡条件を満足する。従って、目標ＺＭＰを不連続に設定しても構わない。例えば、空中期では、目標ＺＭＰを、離床時（片脚支持期の終了時）の目標ＺＭＰ位置から移動しないように設定し、空中期終端において、着地時の目標ＺＭＰ位置に不連続（ステップ状）に移動するように該目標ＺＭＰ軌道を設定しても構わない。しかし本実施形態では、図１０の上段図に示すように、空中期における目標ＺＭＰ軌道のＸ軸方向位置は、次の遊脚側脚体２の着地までに支持脚側足平２２の爪先から遊脚側足平２２の踵および爪先の中間位置まで連続的に移動するようにした。また、図１０の下段図に示すように、空中期における目標ＺＭＰ軌道のＹ軸方向位置は、次の遊脚側脚体２の着地までに支持脚側脚体２の足首関節の中心のＹ軸方向位置から遊脚側脚体２の足首関節の中心のＹ軸方向位置まで連続的に移動するようにした。すなわち、歩容の全期間において目標ＺＭＰ軌道を連続（実質的に連続）にした。そして、後述するように、目標ＺＭＰまわりの重力と慣性力との合力のモーメント（鉛直成分を除く）が零になるように目標歩容を生成する（より具体的には目標上体位置姿勢軌道を調整する）ようにした。【００８３】
なお、本実施形態では、図１０に示したような目標ＺＭＰ軌道の折れ点の位置や時刻が、ＺＭＰ軌道パラメータ（目標ＺＭＰ軌道を規定するパラメータ）として設定される。また、上記したＺＭＰ軌道の「実質的に連続」の意味は、前記床反力鉛直成分軌道の場合と同様である。【００８４】
ＺＭＰ軌道パラメータは、安定余裕が高く、かつ急激な変化をしないように決定される。ここで、ロボット１の接地面を含む最小の凸多角形（いわゆる支持多角形）の中央付近に目標ＺＭＰが存在する状態を安定余裕が高いと言う（詳細は特開平１０−８６０８１号公報を参照）。図１０の目標ＺＭＰ軌道はこのような条件を満たすように設定したものである。【００８５】
また、目標腕姿勢は、上体２４に対する相対姿勢で表す。【００８６】
また、目標上体位置姿勢、目標足平位置姿勢および後述の基準上体姿勢はグローバル座標系で記述される。グローバル座標系は前述のごとく床に固定された座標系である。グローバル座標系としては、より具体的には、後述する支持脚座標系が用いられる。【００８７】
本実施形態における歩容生成装置１００は、ロボット１の片方の脚体２が着地してから他方の脚体２が着地するまでの１歩分の目標歩容（前記狭義の意味での目標歩容）を単位として、その１歩分の目標歩容を順番に生成する。従って、本実施形態で生成する図５の走行歩容では、該目標歩容は片脚支持期の開始時から、これに続く空中期の終了時（次の片脚支持期の開始時）までの目標歩容が順番に生成される。ここで、新たに生成しようとしている目標歩容を「今回歩容」、その次の目標歩容を「次回歩容」、さらにその次の目標歩容を「次次回歩容」、というように呼ぶ。また、「今回歩容」の一つ前に生成した目標歩容を「前回歩容」と呼ぶ。【００８８】
また、歩容生成装置１００が今回歩容を新たに生成するとき、該歩容生成装置１００には、ロボット１の２歩先までの遊脚側足平２２の着地予定位置姿勢、着地予定時刻の要求値（要求）が歩容に対する要求パラメータとして入力される（あるいは歩容生成装置１００が記憶装置から要求パラメータを読み込む）。そして、歩容生成装置１００は、これらの要求パラメータを用いて、目標上体位置姿勢軌道、目標足平位置姿勢軌道、目標ＺＭＰ軌道、目標床反力鉛直成分軌道、目標腕姿勢軌道等を生成する。このとき、これらの軌道を規定する歩容パラメータの一部は、歩行の継続性を確保するように適宜修正される。【００８９】
以下に図５の走行歩容を生成することを例にして、歩容生成装置１００の歩容生成処理の詳細を図１１〜図１５を参照しつつ説明する。図１１は、その歩容生成装置１００が実行する歩容生成処理を示すフローチャート（構造化フローチャート）である。【００９０】
まずＳ０１０において時刻ｔを０に初期化するなど種々の初期化作業が行なわれる。この処理は、歩容生成装置１００の起動時等に行なわれる。次いで、Ｓ０１２を経てＳ０１４に進み、歩容生成装置１００は、制御周期（図１１のフローチャートの演算処理周期）毎のタイマ割り込みを待つ。制御周期はΔｔである。【００９１】
次いで、Ｓ０１６に進み、歩容の切り替わり目であるか否かが判断され、歩容の切り替わり目であるときはＳ０１８に進むと共に、切り替わり目でないときはＳ０３０に進む。ここで、上記「歩容の切り替わり目」は、前回歩容の生成が完了し、今回歩容の生成を開始するタイミングを意味し、例えば前回歩容の生成を完了した制御周期の次の制御周期が歩容の切り替わり目になる。【００９２】
Ｓ０１８に進むときは時刻ｔが０に初期化され、次いでＳ０２０に進み、次回歩容支持脚座標系、次次回歩容支持脚座標系、今回歩容周期および次回歩容周期が読み込まれる。これらの支持脚座標系および歩容周期は、前記要求パラメータにより定まるものである。すなわち、本実施形態では、歩容生成装置１００にジョイスティック４４等から与えられる要求パラメータは、２歩先までの遊脚側足平２２の着地予定位置姿勢（足平２２が着地してから足底を床面にほぼ全面的に接触させるように、滑らさずに回転させた状態での足平位置姿勢）、着地予定時刻の要求値を含んでおり、その１歩目の要求値、２歩目の要求値がそれぞれ、今回歩容、次回歩容に対応するものとして、今回歩容の生成開始時（前記Ｓ０１６の歩容の切り替わり目）以前に歩容生成装置１００に与えられたものである。なお、これらの要求値は今回歩容の生成途中でも変更することは可能である。【００９３】
そして、上記要求パラメータにおける１歩目の遊脚側足平２２（今回歩容での遊脚側足平２２）の着地予定位置姿勢の要求値に対応して次回歩容支持脚座標系が定まる。【００９４】
次いでＳ０２２に進み、歩容生成装置１００は、今回歩容に続く仮想的な周期的歩容としての定常旋回歩容の歩容パラメータを決定する。該歩容パラメータは、定常旋回歩容における目標足平位置姿勢軌道を規定する足平軌道パラメータ、基準とする上体姿勢軌道を規定する基準上体姿勢軌道パラメータ、目標腕姿勢軌道を規定する腕軌道パラメータ、目標ＺＭＰ軌道を規定するＺＭＰ軌道パラメータ、目標床反力鉛直成分軌道を規定する床反力鉛直成分軌道パラメータを含む。さらに、目標床反力水平成分許容範囲を規定するパラメータも歩容パラメータに含まれる。【００９５】
なお、この明細書で「定常旋回歩容」は、その歩容を繰り返したときに歩容の境界（本実施形態では１歩毎の歩容の境界）においてロボット１の運動状態（足平位置姿勢、上体位置姿勢等の状態）に不連続が生じないような周期的歩容を意味するものとして使用する。以降、「定常旋回歩容」を「定常歩容」と略す場合もある。【００９６】
定常旋回歩容は、歩容生成装置１００で今回歩容の終端における発散成分や上体鉛直位置速度、上体姿勢角およびその角速度等のロボット１の運動状態を決定するために暫定的に作成されるものであり、歩容生成装置１００からそのまま出力されるものではない。【００９７】
なお、「発散」とは、２足移動ロボット１の上体２４の位置が両足平２２，２２の位置からかけ離れた位置にずれてしまうことを意味する。発散成分の値とは、２足移動ロボット１の上体２４の位置が両足平２２，２２の位置（より具体的には、支持脚側足平２２の接地面に設定されたグローバル座標系（支持脚座標系）の原点）からかけ離れていく具合を表す数値である。【００９８】
本題に戻り、Ｓ０２２では、図１２に示すフローチャートに従って、以下の処理が行われる。【００９９】
まず、Ｓ１００において、今回歩容、第１旋回歩容、第２旋回歩容の順に足平位置姿勢軌道がつながるように、定常歩容の歩容パラメータのうちの足平軌道パラメータが決定される。以下に具体的な設定方法を説明する。なお、以降の説明では、支持脚側の脚体２の足平２２を支持脚足平と称し、遊脚側の脚体２の足平２２を遊脚足平と称する。また、歩容の「初期」、「終端」はそれぞれ歩容の開始時刻、終了時刻またはそれらの時刻における瞬時歩容を意味する。
【０１００】
足平軌道パラメータは、第１旋回歩容および第２旋回歩容の初期および終端のそれぞれにおける支持脚足平および遊脚足平のそれぞれの位置姿勢、各旋回歩容の歩容周期等から構成される。この足平軌道パラメータのうち、第１旋回歩容初期遊脚足平位置姿勢は、次回歩容支持脚座標系から見た今回歩容終端支持脚足平位置姿勢とされる。この場合、走行歩容では、今回歩容終端における支持脚足平２２は、空中に移動している。そして、今回歩容終端支持脚足平位置姿勢は、今回歩容初期支持脚足平位置姿勢（＝前回歩容終端遊脚足平位置姿勢）から、前記要求パラメータにおける２歩目の遊脚側足平２２の着地予定位置姿勢の要求値（今回歩容の支持脚足平２２の次回歩容における着地予定位置姿勢の要求値）または該要求値に対応する次次回歩容支持脚座標系に応じて定まる次回歩容終端遊脚足平位置姿勢に至る足平位置姿勢軌道（詳しくは次回歩容支持脚座標系から見た軌道）を、今回歩容終端まで前記有限時間整定フィルタを用いて生成することにより求められる。【０１０１】
次に、Ｓ１０２に進み、目標上体姿勢が追従すべき基準上体姿勢軌道を規定する基準上体姿勢軌道パラメータが決定される。基準上体姿勢は、定常歩容の初期（第１旋回歩容の初期）と終端（第２旋回歩容の終端）とでつながるように（定常歩容の初期、終端での基準上体姿勢の姿勢角およびその角速度が一致するように）に設定されている限り、一定姿勢である必要はないが、本実施形態では理解を容易にするため、基準上体姿勢は、直立姿勢（鉛直姿勢）に設定される。つまり、本実施形態では、基準上体姿勢は、定常歩容の全期間において直立姿勢に設定される。従って、本実施形態では、基準上体姿勢の姿勢角の角速度および角加速度は０である。【０１０２】
次に、Ｓ１０４に進み、腕姿勢軌道パラメータ、より詳しくは鉛直軸（あるいは上体体幹軸）まわりの両腕体の角運動量変化に関すること以外の腕姿勢軌道パラメータが決定される。たとえば、上体２４に対する腕体の手先の相対高さや腕全体の相対重心位置などの腕姿勢軌道パラメータが決定される。なお、本実施形態では、腕全体の相対重心位置は、上体に対して一定に維持されるように設定される。【０１０３】
次に、Ｓ１０６に進み、床反力鉛直成分軌道パラメータが設定される。この場合、該パラメータにより規定される床反力鉛直成分軌道が、第１旋回歩容および第２旋回歩容のいずれにおいても図９のように実質的に連続な（値がステップ状に飛ばない）ものとなるように床反力鉛直成分軌道パラメータが設定される。そのパターンでは、第１旋回歩容および第２旋回歩容のいずれにおいても、片脚支持期では床反力鉛直成分が台形状に変化し、空中期では床反力鉛直成分が０に維持される。そして、このパターンの折れ点の時刻や、台形部分の高さ（ピーク値）が床反力鉛直成分軌道パラメータとして設定される。【０１０４】
次に、Ｓ１０８に進み、上記のごとく設定された床反力鉛直成分軌道に応じて、床反力水平成分の許容範囲[Fxmin，Fxmax]（より詳しくはこれを規定するパラメータ）が図１３のように設定される。図１３の負側の折れ線が床反力水平成分許容下限値Fxmin、正側の折れ線が床反力水平成分許容上限値Fxmaxを表す。これらの設定方法に関して以下に補足する。以下では、床面が水平である場合について説明する。【０１０５】
床反力水平成分は、床と足平２２との間の摩擦によって発生するが、摩擦はいくらでも発生できるわけではなく、限界がある。従って、生成された目標歩容に従って実際のロボット１が移動した時にスリップしないようにするためには、目標歩容の床反力水平成分が、常に摩擦限界以内になければならない。そこで、この条件を満足させるために、床反力水平成分許容範囲を設定し、後述するように、目標歩容の床反力水平成分がこの許容範囲内になるように、目標歩容を生成することとした。【０１０６】
床と足平２２との間の摩擦係数をμとすると、Fxminは、常に−μ*床反力鉛直成分以上に、Fxmaxはμ*床反力鉛直成分以下に設定されなければならない。最も単純な設定方法は、次式による設定である。但し、kaは１より小さい正の定数である。【０１０７】
Fxmin =−ka * μ* 床反力鉛直成分
Fxmax =  ka * μ* 床反力鉛直成分  ・・式１２
図１３の床反力水平成分許容範囲は、式１２に従って設定した例である。床反力水平成分許容範囲を規定するパラメータとして、図１３の台形波形などの折れ点での値と時刻を設定してもよいが、式１２により床反力水平成分許容範囲を決定するときには、単に式１２における(ka * μ)の値をパラメータとして設定するだけでも良い。
【０１０８】
次に、Ｓ１１０に進み、第１旋回歩容および第２旋回歩容を合わせた定常歩容のＺＭＰ軌道を規定するＺＭＰ軌道パラメータが設定される。この場合、目標ＺＭＰ軌道は、前述したように安定余裕が高くかつ急激な変化をしないように設定される。【０１０９】
さらに詳細には、図５の走行歩容においては、支持脚足平２２の底面のほぼ全面が着地した後、該支持脚足平２２の底面のほぼ全面が接地した状態が維持され、その後、支持脚足平２２の爪先だけが接地する。そして、次に支持脚足平２２の爪先で蹴って空中に飛び上がり、最後に遊脚足平２２の底面のほぼ全面で着地する。また、目標ＺＭＰは接地面内に存在しなければならない。そこで、本実施形態では、定常歩容の第１旋回歩容および第２旋回歩容のそれぞれの目標ＺＭＰのＸ軸方向の位置は、前記図１０の上段図に示したように、支持脚足平２２の踵および爪先の中間位置を初期位置として、しばらくの間一定に維持された後、該足平２２が爪先接地状態になるまでに爪先に移動し、その後、離床時まで支持脚足平２２の爪先に留まるように設定される。さらにその後は、目標ＺＭＰは、前述のごとく、次の遊脚足平２２の着地までに目標ＺＭＰが、支持脚足平２２の爪先から遊脚足平２２の踵および爪先の中間位置まで連続的に移動するように設定される。そして、この目標ＺＭＰ軌道の折れ点の時刻および位置がＺＭＰ軌道パラメータとして設定される。この場合、折れ点の時刻は、前記要求パラメータに応じて定めた第１旋回歩容および第２旋回歩容の歩容周期に応じて設定され、該折れ点の位置は、次回歩容支持脚座標系および次次回歩容支持脚座標系の位置姿勢あるいはこれらの座標系を規定する要求パラメータの１歩目および２歩目の遊脚側足平着地予定位置姿勢の要求値に応じて設定される。なお、ＺＭＰ軌道のＹ軸方向の位置は、前記図１０の下段図に示したものと同様に設定される。より詳しくは、第１旋回歩容における目標ＺＭＰのＹ軸方向位置の軌道は、図１０の下段図のものと同一パターンで設定され、第２旋回歩容における目標ＺＭＰのＹ軸方向位置の軌道は、第１旋回歩容のものと同じ形の軌道で、該軌道の終端につながるものに設定される。【０１１０】
図１１のＳ０１０からＳ０２２までに示す処理が行われた後、Ｓ０２４に進み、定常歩容の初期状態が算出される。ここで算出される初期状態は、定常歩容の初期上体水平位置速度（水平方向での初期上体位置および初期上体速度）、初期上体鉛直位置速度（鉛直方向での初期上体位置および初期上体速度）、初期発散成分、初期上体姿勢角およびその角速度である。この初期状態の算出は、探索的に行なわれる。【０１１１】
次いで、図１１のＳ０２６に進み、今回歩容の歩容パラメータを決定（一部は仮決定）する。Ｓ０２６では、より具体的には、図１４に示すフローチャートに従って、以下の処理が行われる。【０１１２】
まず、Ｓ６００において、今回歩容の足平位置姿勢軌道が定常歩容の足平位置姿勢軌道につながるように、今回歩容の足平軌道パラメータが設定される。【０１１３】
本願発明は、ロボットの着地時の衝撃を緩和するとともに足底のスリップやスピンを回避して、ロボットが安定に歩行または走行できるように足平２２の軌道パラメータが設定される点に特徴があるがこの点については後で詳述する。【０１１４】
次いで、Ｓ６０２に進み、今回歩容の基準上体姿勢軌道パラメータが、定常歩容の第１旋回歩容や第２旋回歩容と同様に決定される。但し、今回歩容の基準上体姿勢軌道が前記定常歩容の基準上体姿勢軌道に連続してつながる（今回歩容終端での基準上体姿勢角および角速度がそれぞれ定常歩容初期の基準上体姿勢角および角速度に一致する）ように上記パラメータが設定される。なお、本実施形態では、基準上体姿勢は、今回歩容および定常歩容のいずれでも定常的な鉛直姿勢である。【０１１５】
次いで、Ｓ６０４に進み、今回歩容の腕姿勢軌道パラメータが、定常歩容の第１旋回歩容や第２旋回歩容と同様に決定される。但し、今回歩容の腕姿勢軌道が前記定常歩容の腕姿勢軌道に連続してつながるように上記パラメータを設定する。なお、ここで決定される腕姿勢軌道パラメータは、定常歩容パラメータの決定（図１２のＳ１０４）の場合と同様、鉛直軸（あるいは上体体幹軸）まわりの両腕体の角運動量変化に関すること以外の運動パラメータであり、両腕体の重心位置の軌道を規定するパラメータである。【０１１６】
次いで、Ｓ６０６に進み、該パラメータにより規定される床反力鉛直成分軌道が前記図９のように実質的に連続な（値がステップ状に飛ばない）軌道になるように設定される。【０１１７】
但し、床反力鉛直成分軌道パラメータは、今回歩容の全体重心鉛直位置速度と床反力鉛直成分軌道とのいずれもが、前記定常歩容と連続してつながるように決定される。【０１１８】
次いで、Ｓ６０８に進み、床反力水平成分許容範囲[Fxmin，Fxmax]（具体的には該床反力水平成分許容範囲のパターンを規定するパラメータ）が、定常歩容の第１旋回歩容や第２旋回歩容と同様に設定される。たとえば図１５に示すようなパターンで床反力水平成分許容範囲が設定される。本実施形態では、先にＳ６０６で決定した床反力鉛直成分パターンに応じて前記式１２に基づいて床反力水平成分許容範囲が設定される。【０１１９】
次いで、Ｓ６１０に進み、今回歩容のＺＭＰ軌道（具体的にはＺＭＰ軌道を規定するパラメータで、軌道の折れ点の時刻や位置）が、定常歩容の第１旋回歩容や第２旋回歩容と同様、安定余裕が高くかつ急激な変化をしないように、前記図１０に示すごとく設定される。但し、今回歩容のＺＭＰ軌道が前記定常歩容のＺＭＰ軌道に連続してつながるように上記パラメータを設定される。つまり、今回歩容終端におけるＺＭＰの位置が定常歩容初期のＺＭＰ位置に一致するように、ＺＭＰ軌道パラメータが決定される。この場合、走行歩容では、片脚支持期におけるＺＭＰ軌道の折れ点の時刻や位置の設定の仕方は、前述した定常歩容のＺＭＰ軌道パラメータの設定の仕方と同様でよい。そして、空中期における目標ＺＭＰ軌道が、空中期開始時から、定常歩容初期のＺＭＰ位置まで、直線的に連続して変化するようにＺＭＰ軌道パラメータを設定すればよい。【０１２０】
なお、Ｓ６１０で決定される今回歩容のＺＭＰ軌道パラメータは、仮決定されただけであり、後述するように修正される。そこで、上記のごとく設定した今回歩容のＺＭＰ軌道を、以降、今回歩容の仮目標ＺＭＰ軌道と呼ぶこととする。【０１２１】
図１１の説明に戻って、上記のごとくＳ０２６に示す処理（今回歩容の歩容パラメータ決定処理）を行って後、次いでＳ０２８に進み、今回歩容の歩容パラメータ（ＺＭＰ軌道パラメータ）が修正される。この処理では、上体位置姿勢軌道を定常歩容に連続させ、または近づけるべくＺＭＰ軌道パラメータが修正される。【０１２２】
図１１に戻って、上記のごとくＳ０２８において今回歩容パラメータを修正した後、あるいはＳ０１６の判断結果がＮＯである場合には、Ｓ０３０に進み、修正された今回歩容パラメータに基づき、今回歩容瞬時値が決定される。【０１２３】
次いでＳ０３２に進み、スピン力をキャンセルする（ロボット１の腕以外の運動によって目標ＺＭＰ回りに発生する床反力モーメント鉛直成分を略零にする）ための腕動作が決定される。具体的には、腕を振らなかった場合の目標ＺＭＰにおける床反力モーメント鉛直成分軌道（厳密には、腕を振らずに歩容を生成した場合において、ロボットの重力と慣性力の合力が目標ＺＭＰに作用するモーメント鉛直成分軌道の各瞬時値の符号を反転したもの）が求められる。すなわち、Ｓ０３０の処理によって生成された歩容の運動（これには腕振りの運動は含まれていない）の瞬時値に釣り合う目標ＺＭＰ（瞬時値）回りの床反力モーメント鉛直成分で瞬時値が求められる。そして、これを、腕振り運動の等価慣性モーメントで割ることにより、スピン力キャンセルに必要な腕振り動作の角加速度が求められる。なお、補足すると、腕の振りが大き過ぎる場合には、等価慣性モーメントよりも大きな値で割れば良い。【０１２４】
次に、この角加速度を２階積分し、これを積分値が過大になるのを防ぐためのローカットフィルタに通して得た角度を腕振り動作角とする。但し、腕振り動作では、左右の腕を前後逆方向に振り、両腕体の重心位置を変化させないようにする。なお、スピン力をキャンセルするための腕振り運動を定常歩容でも生成しておき、これにつながるように、今回歩容における腕振り運動を決定するようにしてもよい。【０１２５】
次いでＳ０３４に進み、歩容生成用時刻ｔをΔｔだけ増やし、Ｓ０１４に戻り、以上のごとく歩容生成を続ける。【０１２６】
以上が、歩容生成装置１００における目標歩容生成処理である。【０１２７】
図４を参照して本実施形態に係る装置の動作をさらに説明すると、歩容生成装置１００において、上記したように目標歩容が生成される。生成された目標歩容のうち、目標上体位置姿勢（軌道）、目標腕姿勢（軌道）が、ロボット幾何学モデル（逆キネマティクス演算部）１０２に送出される。【０１２８】
また、目標足平位置姿勢（軌道）、目標ＺＭＰ軌道（目標全床反力中心点軌道）、および目標全床反力（軌道）（目標床反力水平成分と目標床反力鉛直成分）は、複合コンプライアンス動作決定部１０４に送られると共に、目標床反力分配器１０６にも送られる。そして、目標床反力分配器１０６で、床反力は各足平２２Ｒ，２２Ｌに分配され、目標各足平床反力中心点および目標各足平床反力が決定される。この決定された目標各足平床反力中心点および目標各足平床反力は複合コンプライアンス動作決定部１０４に送られる。【０１２９】
複合コンプライアンス動作決定部１０４から、機構変形補償付き修正目標足平位置姿勢（軌道）がロボット幾何学モデル１０２に送られる。ロボット幾何学モデル１０２は、目標上体位置姿勢（軌道）と機構変形補償付き修正目標足平位置姿勢（軌道）を入力されると、それらを満足する脚体２，２の１２個の関節（１０Ｒ（Ｌ）など）の関節変位指令（値）を算出して変位コントローラ１０８に送る。変位コントローラ１０８は、ロボット幾何学モデル１０２で算出された関節変位指令（値）を目標値としてロボット１の１２個の関節の変位を追従制御する。また、ロボット幾何学モデル１０２は、目標腕姿勢を満足する腕関節の変位指令（値）を算出して変位コントローラ１０８に送る。変位コントローラ１０８は、ロボット幾何学モデル１０２で算出された関節変位指令（値）を目標値としてロボット１の腕体の１２個の関節の変位を追従制御する。
【０１３０】
ロボット１に生じた床反力（詳しくは実各足床反力）は６軸力センサ３４によって検出される。その検出値は前記複合コンプライアンス動作決定部１０４に送られる。また、ロボット１に生じた姿勢傾斜偏差θerrx，θerry（詳しくは目標上体姿勢角に対する実姿勢角の偏差で、ロール方向（Ｘ軸回り）の姿勢角偏差がθerrxであり、ピッチ方向（Ｙ軸回り）の姿勢角偏差がθerryである）が傾斜センサ３６を介して検出され、その検出値は姿勢安定化制御演算部１１２に送られる。この姿勢安定化制御演算部１１２で、ロボット１の上体姿勢角を目標上体姿勢角に復元するための目標全床反力中心点（目標ＺＭＰ）まわり補償全床反力モーメントが算出されて複合コンプライアンス動作決定部１０４に送られる。複合コンプライアンス動作決定部１０４は、入力値に基づいて目標床反力を修正する。具体的には、目標全床反力中心点（目標ＺＭＰ）回りに補償全床反力モーメントが作用するように目標床反力を修正する。【０１３１】
複合コンプライアンス動作決定部１０４は、修正された目標床反力に、センサ検出値などから算出される実ロボットの状態および床反力を一致させようと上記機構変形補償付き修正目標足平位置姿勢（軌道）を決定する。但しすべての状態を目標に一致させることは事実上不可能であるので、これらの間にトレードオフ関係を与えて妥協的になるべく一致させる。すなわち、各目標に対する制御偏差に重みを与えて、制御偏差（あるいは制御偏差の２乗）の重み付き平均が最小になるように制御する。これにより、実際の足平位置姿勢と全床反力とが目標足平位置姿勢と目標全床反力とに概ね従うように制御される。【０１３２】
なお、この発明の要旨は歩容生成装置１００におけるロボット１の歩容生成にあり、上記した複合コンプライアンス動作決定部１０４などの構成および動作は、本出願人が先に出願した特開平１０−２７７９６９号公報などに詳細に記載されているので、説明を以上に止める。【０１３３】
次に、ロボット１の歩行歩容の生成に関して説明する。なお、ここで、歩行歩容は、空中期がなく、片脚支持期と両脚支持期とが交互に繰り返される歩容である。【０１３４】
歩行歩容を生成する場合には、Ｓ１０６およびＳ６０６において以下のような処理を行う。すなわち、膝の曲げ角度が適切であるかなど、少なくとも各脚体の関節の変位に関する幾何学的条件（幾何学的制約条件）から決定した上体鉛直位置軌道（本出願人による特開平１０−８６０８０号公報に示される上体高さ決定手法などを用いた上体鉛直位置軌道）の位相や振幅などの特徴量をできる限り満足するように床反力鉛直成分軌道を決定する。【０１３５】
これにより、歩容生成のアルゴリズムの主要部を走行と歩行とで共通化しつつ、歩行途中から走行へ、または走行途中から歩行に移行することもできるようになる。【０１３６】
図１７を用いてその処理を説明すると、まず、Ｓ１３００において、本出願人が先に特開平１０−８６０８０号公報に提案した上体高さ決定法などを用いて、少なくとも各脚体２の関節の変位に関する所定の幾何学的制約条件を満足する上体鉛直位置軌道を求める。以降、これを基準上体鉛直位置軌道と呼ぶ。より具体的には、まず、要求パラメータに応じて決定した足平軌道パラメータや目標ＺＭＰ軌道パラメータなどを基に、本出願人が先に提案した特願２０００−３５２０１１号の第１実施形態を用いて、上体水平位置軌道が求められる。なお、この場合、上体水平位置軌道は、床反力鉛直成分がロボット１の自重に一致し、また、上体鉛直位置が、あらかじめ定めた一定値であるとして、目標ＺＭＰ回りの床反力モーメントの水平成分が０になるように決定される。また、このときの上体姿勢軌道は例えば一定姿勢（鉛直姿勢等）の軌道でよい。【０１３７】
次に、本願出願人が先に提案した上体高さ決定法（特開平１０−８６０８０号公報。より具体的には同公報の図６の手法等）を用いて、足平軌道パラメータにより定まる足平軌道や上記の如く決定した上体水平位置軌道、上体姿勢軌道を基に上体鉛直位置軌道が算出され、これをもって前記基準上体鉛直位置軌道とする。【０１３８】
次にＳ１３０２に進み、基準上体鉛直位置軌道になるべく似た目標上体鉛直位置軌道を生成することが可能な床反力鉛直成分軌道を決定するために、基準上体鉛直位置軌道の振幅や位相などの特徴量が算出（抽出）される。例えば、基準上体鉛直位置軌道の振幅（最小値と最大値との差）が特徴量として算出される。【０１３９】
次にＳ１３０４に進み、床反力鉛直成分軌道パラメータを基に生成される上体鉛直位置軌道が、前記特徴量をできる限り満足し得るように（前記基準上体鉛直位置軌道にできるだけ似たパターンになるように）、床反力鉛直成分軌道パラメータ（折れ点での時刻や床反力鉛直成分の値）が決定される。より具体的には、歩行歩容の場合、定常歩容の第１旋回歩容と第２旋回歩容、および今回歩容の床反力鉛直成分軌道は、例えば、図１６のような折れ線状に設定される。すなわち、両脚支持期では、床反力鉛直成分の増加側に凸（上に凸）の台形状に設定され、片脚支持期では床反力鉛直成分の減少側に凸（下に凸）の台形状に設定される。そして、この床反力鉛直成分軌道を歩容初期（両脚支持期の開始時刻）から終端（片脚支持期の終了時刻）まで２階積分して得られるロボット１の全体重心鉛直位置軌道に対応する上体鉛直位置軌道の最大値と最小値との差が前記特徴量に一致するように、床反力鉛直成分軌道パラメータ、例えば該床反力鉛直成分軌道の２つの台形の高さC1，C2が決定される（この例では床反力鉛直成分軌道の折れ点の時刻は歩容周期に関する要求パラメータに応じて決定される）。【０１４０】
但し、定常歩容の床反力鉛直成分軌道のパラメータは、前述のごとく以下の条件も満足するように決定される。
（条件）床反力鉛直成分軌道の定常歩容全期間（第１旋回歩容と第２旋回歩容両方の期間）における平均値をロボットの自重と一致させる。すなわち、床反力鉛直成分の平均値がロボットに作用する重力と同じ大きさで反対向きになるようにする。【０１４１】
また、今回歩容の床反力鉛直成分軌道のパラメータは、前述のごとく、上体（全体重心）鉛直位置軌道が定常歩容に連続してつながるあるいは近づくように決定される。【０１４２】
以上により、歩行歩容における目標床反力鉛直成分軌道（これを規定するパラメータ）が決定されることとなる。以上説明した目標床反力鉛直成分軌道の決定処理以外の歩容生成処理は、前記した走行歩容に係る実施形態と同一でよい。【０１４３】
前記のように本願発明は、ロボットの着地時の衝撃を緩和するとともに足底のスリップやスピンを回避して、ロボットが安定に歩行または走行できるように足平２２の軌道パラメータが設定される点に特徴があるが（Ｓ６００参照）、以下この点について説明する。【０１４４】
図５の走行歩容における左足平２２Ｌの横から見た姿勢は図６に示されているように変化する。これに伴って左足平２２（または足底）と床面との距離ｄが図７に示されているように変化し、且つ、床面に対する足平２２（または足底）の傾斜角度θが図８に示されているように変化するように足平２２の脚体２に対する回動動作が制御される。具体的には、まず、離床期の初期（ｔ＝ｔ１〜ｔ２）に、左脚体２Ｌが左足平２２Ｌの先端部（爪先部）において着床したまま、足関節１８Ｌ（または足関節１８Ｌおよび２０Ｌ）のロータリエンコーダ３３の出力に基づいて測定された床面に対する左足平２２Ｌの傾斜角度が、左足平２２Ｌの後端部（踵部）が先端部（爪先部）よりも床面から遠くなるような正（＋）側に増大するように、左脚体２Ｌに対する左足平２２Ｌの回動動作を制御する。また、左脚体２Ｌの離床期における床面に対する左足平２２Ｌの傾斜角度θが、床面に対して後端部（踵部）が先端部（爪先部）より高い正（＋）側から、床面に対して先端部（爪先部）が後端部（踵部）よりも高い負（−）側に変化してから、徐々に０に近づくように、左脚体２Ｌに対する左足平２２Ｌの回動動作が制御されている。ロボット１の基本水平面や水平面等の基準面に対する床面の傾斜角度は、脚体２の一または複数の着床時における傾斜センサ３６の出力に応じた水平面に対する上体２４の傾斜角度や、カメラ９２により撮像された床面の画像解析等によって測定され得る。【０１４５】
本発明のロボット１は、遅くとも空中期から着床期に移行する時刻（着床期の開始時点）ｔ＝ｔ７には床面に対する左足平２２Ｌの当該傾斜角度θが０になるように左脚体２Ｌに対する左足平２２Ｌの回動動作が制御されている。
【０１４６】
なお、傾斜角度θが距離ｄの関数θ（ｄ）として定義されてもよい。前記のように脚体２の離床期の中間時点から着床期の開始時点にかけて、床面に対する足平２２の傾斜角度θが徐々に０に近づくように、脚体２に対する足平２２の回動動作が制御されている場合（図６、図８参照）、θ（ｄ＝０）＝０、離床期から着床期への移行直前において｜δθ／δｄ｜＞０となる。また、空中期の途中で角度θが０に制御され、そのまま着床期への移行時刻まで角度θが０に維持されてもよい。【０１４７】
前記機能を発揮するロボット１によれば、脚体２の足平２２（または足底）における離床期の中間時点から着床期の開始時点にかけて、床面に対する足平２２の傾斜角度θが徐々に０に近づくように脚体２に対する足平２２の回動動作が制御される（図５、図６および図８参照）。これにより、離床期から着床期に移行した直後の脚体２の足平２２（または足底）における着床面積が大きいものとなるので、その着床時の衝撃を足底に広く分散させ、ロボット１が受ける衝撃が緩和され得る。また、足平２２と床面とのフリクションが大きなものとなるので、脚体２の着床直前におけるロボット１の移動速度およびヨー軸回りの角速度が大きくても、このフリクションによって着床期移行後のロボット１のスリップやスピンを防止することができる。従って、本発明のロボット１は、脚体２の足平２２における着床時の衝撃を緩和するとともに足平２２におけるスリップやスピンを回避して安定に走行することができる。【０１４８】
また、足平２２の先端部（爪先）で床面を蹴るような形で当該足平２２の脚体２に対する回動動作が制御される（図６の時刻ｔ１〜ｔ２における足平位置姿勢軌道参照）。これにより、ロボット１の推進力が増強される一方、前記のように着床時にロボット１の足平２２におけるスリップやスピンが防止されるので、ロボット１をその挙動を安定なものとしながら高速移動させることができる。【０１４９】
さらに、離床期の開始時点から着床期の開始時点にかけて、足平２２を床面に対して踵上がりの姿勢（図６の時刻ｔ２〜ｔ４の足平位置姿勢軌道参照）から爪先上がりの姿勢（図６の時刻ｔ５〜ｔ６の足平位置姿勢軌道参照）としてから、さらに床面に平行な姿勢に近づけ、前記のようにロボット１のスリップやスピンを防止し得る程度に当該足平２２における着床面積を確保することができる。【０１５０】
なお、両脚体２がともに離床している空中期（図５（ｃ）（ｆ）参照）を含まない歩行時においても同様に脚体２に対する足平２２の回動動作が制御されてもよい。すなわち、ロボット１の歩行時においても、走行に関して前述したように、例えば、脚体２の離床期の中間時点から着床期の開始時点にかけて、床面に対する足平２２の傾斜角度θが徐々に０に近づくように、脚体２に対する足平２２の回動動作が制御されてもよい。【０１５１】
これにより、離床期から着床期に移行した直後の脚体２の足平２２（または足底）における着床面積が大きいものとなるので、その着床時の衝撃を足底に広く分散させ、ロボット１が受ける衝撃が緩和され得る。また、足平２２と床面とのフリクションが大きなものとなるので、脚体２の足着床直前におけるロボット１の移動速度およびヨー軸回りの角速度が大きくても、このフリクションによって着床期移行後のロボット１のスリップやスピンを防止することができる。従って、本発明のロボット１は、着床時の衝撃を緩和するとともに足平２２におけるスリップやスピンを回避して安定に歩行することができる。
【図１】
0005053644.tif 000002
【図２】
0005053644.tif 000003
【図３】
0005053644.tif 000004
【図４】
0005053644.tif 000005
【図５】
0005053644.tif 000006
【図６】
0005053644.tif 000007
【図７】
0005053644.tif 000008
【図８】
0005053644.tif 000009
【図９】
0005053644.tif 000010
【図１０】
0005053644.tif 000011
【図１１】
0005053644.tif 000012
【図１２】
0005053644.tif 000013
【図１３】
0005053644.tif 000014
【図１４】
0005053644.tif 000015
【図１５】
0005053644.tif 000016
【図１６】
0005053644.tif 000017
【図１７】
0005053644.tif 000018