(57)【要約】  運動方程式における二足歩行ロボットの重心のｚ成分ｚ（ｔ）に関する項と１次式（ａ１ｔ＋ａ０）とからなる補助方程式を用いて任意の時刻ｔにおける重心のｚ成分ｚ（ｔ）を演算すると共に（Ｓ１２０〜Ｓ１４０）、重心のｚ成分ｚ（ｔ）に関する項を１次式で置き換えた運動方程式を用いて任意の時刻ｔにおける二足歩行ロボットの重心のｘ，ｙ成分ｘ（ｔ），ｙ（ｔ）を演算し（Ｓ１５０，Ｓ１６０）、演算した重心のｘ，ｙ，ｚ成分ｘ（ｔ），ｙ（ｔ），ｚ（ｔ）を用いて二足歩行ロボットの各関節ｋの目標角度θk（ｔ）を演算する（Ｓ１７０）。これにより、重心のｚ成分ｚ（ｔ）の運動を加味した歩容を生成することができ、より多様な歩容を生成できる。
2008105506.tif 000002
【特許請求の範囲】
【請求項１】
二足歩行を行なう歩行体の歩容を生成する歩容生成装置であって、
任意の時刻における前記歩行体の重心の床面に対して鉛直方向の位置に関する項である重心鉛直方向位置項を時刻についてのｎ次式（ｎは値０以上の整数）または該ｎ次式の逆数で置いた前記床面から前記歩行体に作用するモーメントがゼロとなるゼロモーメント位置と任意の時刻における前記歩行体の重心の前記床面に対して水平方向の位置との関係を示す運動方程式と、前記重心鉛直方向位置項と前記ｎ次式または該ｎ次式の逆数とからなる補助方程式と、を用いて任意の時刻における前記歩行体の重心の前記床面に対して水平方向および鉛直方向の目標位置を演算する目標位置演算手段と、
前記演算された歩行体の重心の目標位置に基づいて前記歩行体の歩容を生成する歩容生成手段と、
を備える歩容生成装置。
【請求項２】
請求項１記載の歩容生成装置であって、
前記目標位置演算手段は、任意の時刻における前記ゼロモーメント位置と所定時刻における前記歩行体の重心の位置および該歩行体の重心の位置の変化速度とに基づいて任意の時刻における前記歩行体の重心の目標位置を演算する手段である
歩容生成装置。
【請求項３】
請求項１記載の歩容生成装置であって、
前記運動方程式は、ｔを時刻，ｐｘ（ｔ），ｐｙ（ｔ），ｐｚ（ｔ）を任意の時刻ｔにおける前記ゼロモーメント位置のｘ，ｙ，ｚ成分，Ｍを前記歩行体の全質量，ｇを重力加速度，ｘ（ｔ），ｙ（ｔ）を任意の時刻ｔにおける前記歩行体の重心のｘ，ｙ成分，Ｐｘ（ｔ），Ｐｙ（ｔ），Ｐｚ（ｔ）を任意の時刻ｔにおける前記歩行体の運動量のｘ，ｙ，ｚ成分，Ｌｘ（ｔ），Ｌｙ（ｔ）を任意の時刻ｔにおける前記歩行体の角運動量のｘ，ｙ成分としたときに式（１），（２）により表わされ、該式（１），（２）において任意の時刻ｔにおける前記ゼロモーメント位置ｐｚ（ｔ）を値０とすると共に任意の時刻ｔにおける前記角運動量のｘ，ｙ成分Ｌｘ（ｔ），Ｌｙ（ｔ）のうち前記歩行体の重心回りの角運動量の変化の影響を前記歩行体の重心のｘ，ｙ成分ｘ（ｔ），ｙ（ｔ）の影響に比して十分に小さいとして無視し、ｚ（ｔ）を任意の時刻ｔにおける前記歩行体の重心のｚ成分としたときに、式（３），（４）により表わされる方程式であり、
前記重心鉛直方向位置項は、前記式（３），（４）における「ｚ（ｔ）／（ｚ（ｔ）の二階微分＋ｇ）」である
歩容生成装置。
【数１】
2008105506.tif 000058
【請求項４】
請求項３記載の歩容生成装置であって、
前記補助方程式は、式（５）により表わされる方程式であり、
前記運動方程式は、前記式（３），（４）における前記重心鉛直方向位置項を前記式（５）を用いて置き換えた方程式である
歩容生成装置。
【数２】
2008105506.tif 000059
ここで、「ａ1」，「ａ0」は、任意の時刻ｔにおける前記歩行体の重心のｚ成分ｚ（ｔ）を演算するためのパラメータである。
【請求項５】
請求項４記載の歩容生成装置であって、
前記目標位置演算手段は、前記補助方程式の解としての式（６）を用いて任意の時刻ｔにおける前記歩行体の重心のｚ成分ｚ（ｔ）を演算する手段である
歩容生成装置。
【数３】
2008105506.tif 000060
ここで、「Ｃz1」，「Ｃz2」は、積分定数である。また、「Ｉ」，「Ｋ」は、それぞれ第１種変形Ｂｅｓｓｅｌ関数，第２種変形Ｂｅｓｓｅｌ関数であり、「Ｉ1」，「Ｋ1」は、それぞれ式（７），（８）における「ν」に値１を設定したものにより表わされる。前記式（７），（８）における「φ1」は、式（９）により表わされる。前記式（７）中、「Γ」はＧａｍｍａ関数である。
【数４】
2008105506.tif 000061
【請求項６】
請求項５記載の歩容生成装置であって、
前記目標位置演算手段は、前記運動方程式の任意の時刻ｔにおける前記ゼロモーメント位置のｘ，ｙ成分ｐｘ（ｔ），ｐｙ（ｔ）がそれぞれ式（１０），（１１）により表わされるｎ１次式，ｎ２次式（ｎ１，ｎ２は共に値０以上の整数）で与えられたときに、該運動方程式の解としての式（１２），（１３）を用いて任意の時刻ｔにおける前記歩行体の重心のｘ，ｙ成分ｘ（ｔ），ｙ（ｔ）を演算する手段である
歩容生成装置。
【数５】
2008105506.tif 000062
ここで、「ｂ１i」，「ｂ２i」はｉ次の項の係数であり、「Ｃx1」，「Ｃx2」，「Ｃy1」，「Ｃy2」は、積分定数である。また、「Ｉ1」，「Ｋ1」は、それぞれ前記式（７），（８）における「ν」に値１を設定したものにより表わされる。さらに、「ｂ１」と「Ｂ１」との関係，「ｂ２」と「Ｂ２」との関係は、式（１４），（１５）により表わされる。
【数６】
2008105506.tif 000063
【請求項７】
請求項６記載の歩容生成装置であって、
前記目標位置演算手段は、複数の時刻における前記歩行体の重心のｚ成分ｚ（ｔ）と該歩行体の重心のｚ成分ｚ（ｔ）の変化速度（ｚ（ｔ）の一階微分）と前記式（６）とに基づいて該式（６）における「Ｃz1」，「Ｃz2」，「ａ1」，「ａ0」を演算すると共に該演算した「Ｃz1」，「Ｃz2」，「ａ1」，「ａ0」を該式（６）に代入して任意の時刻ｔにおける前記歩行体の重心のｚ成分ｚ（ｔ）を設定し、該演算した「ａ1」，「ａ0」と複数の時刻における前記歩行体の重心のｘ成分ｘ（ｔ）と任意の時刻ｔにおける前記ゼロモーメント位置のｘ成分ｐｘ（ｔ）と前記式（１２）とに基づいて該式（１２）における「Ｃx1」，「Ｃx2」を演算すると共に該演算した「Ｃx1」，「Ｃx2」を該式（１２）に代入して任意の時刻ｔにおける前記歩行体の重心のｘ成分ｘ（ｔ）を演算し、前記演算した「ａ1」，「ａ0」と複数の時刻における前記歩行体の重心のｙ成分ｙ（ｔ）と任意の時刻ｔにおける前記ゼロモーメント位置のｙ成分ｐｙ（ｔ）と前記式（１３）とに基づいて該式（１３）における「Ｃy1」，「Ｃy2」を演算すると共に該演算した「Ｃy1」，「Ｃy2」を該式（１３）に代入して任意の時刻ｔにおける前記歩行体の重心のｙ成分ｙ（ｔ）を演算する手段である
歩容生成装置。
【請求項８】
請求項３記載の歩容生成装置であって、
前記補助方程式は、式（１６）により表わされる式であり、
前記運動方程式は、前記式（３），（４）における前記重心鉛直方向位置項を前記式（１６）を用いて置き換えた方程式である
歩容生成装置。
【数７】
2008105506.tif 000064
ここで、「ａ3」，「ａ2」は、任意の時刻ｔにおける前記歩行体の重心のｚ成分ｚ（ｔ）を演算するためのパラメータである。
【請求項９】
請求項８記載の歩容生成装置であって、
前記目標位置演算手段は、前記補助方程式の解としての式（１７）を用いて任意の時刻ｔにおける前記歩行体の重心のｚ成分ｚ（ｔ）を演算する手段である
歩容生成装置。
【数８】
2008105506.tif 000065
ここで、「Ｃz3」，「Ｃz4」は、積分定数である。また、「ＡｉｒｙＡｉ」，「ＡｉｒｙＢｉ」は、Ａｉｒｙ関数であり、それぞれ式（１８），（１９）により表わされる。さらに、「Ｇｉ」は、Ｓｃｏｒｅｒ関数であり、式（２０）により表わされる。前記式（１８）〜（２０）における「φ2」は式（２１）により表わされる。前記式（１８）中、「Ｋ」は第２種変形Ｂｅｓｓｅｌ関数であり、「Ｋ1/3」は式（２２）における「ν」に１／３を設定したものにより表わされる。前記式（１９），（２２）中、「Ｉ」は第１種変形Ｂｅｓｓｅｌ関数であり、「Ｉ1/3」，「Ｉ-1/3」は、それぞれ式（２３）における「ν」に１／３，−１／３を設定したものにより表わされる。前記式（２０），（２３）中、「Γ」はＧａｍｍａ関数である。前記式（２２），（２３）中、「φ3」は式（２４）により表わされる。
【数９】
2008105506.tif 000066
【数１０】
2008105506.tif 000067
【請求項１０】
請求項９記載の歩容生成装置であって、
前記目標位置演算手段は、前記運動方程式の任意の時刻ｔにおける前記ゼロモーメント位置のｘ，ｙ成分ｐｘ（ｔ），ｐｙ（ｔ）が式（２５），（２６）により表わされる１次式で与えられたときに、該運動方程式の解としての式（２７），（２８）を用いて任意の時刻ｔにおける前記歩行体の重心のｘ，ｙ成分ｘ（ｔ），ｙ（ｔ）を演算する手段である
歩容生成装置。
【数１１】
2008105506.tif 000068
ここで、「ｂ３i」，「ｂ４i」はｉ次の項の係数であり、「Ｃx3」，「Ｃx4」，「Ｃy3」，「Ｃy4」は、積分定数である。また、「ＡｉｒｙＡｉ」，「ＡｉｒｙＢｉ」は、前記式（１８），（１９）により表わされる。
【請求項１１】
請求項１０記載の歩容生成装置であって、
前記目標位置演算手段は、複数の時刻における前記歩行体の重心のｚ成分ｚ（ｔ）と該歩行体の重心のｚ成分ｚ（ｔ）の変化速度（ｚ（ｔ）の一階微分）と前記式（１７）とに基づいて該式（１７）における「Ｃz3」，「Ｃz4」，「ａ3」，「ａ2」を演算すると共に該演算した「Ｃz3」，「Ｃz4」，「ａ3」，「ａ2」を該式（１７）に代入して任意の時刻ｔにおける前記歩行体の重心のｚ成分ｚ（ｔ）を設定し、該演算した「ａ3」，「ａ2」と複数の時刻における前記歩行体の重心のｘ成分ｘ（ｔ）と任意の時刻ｔにおける前記ゼロモーメント位置のｘ成分ｐｘ（ｔ）と前記式（２７）とに基づいて該式（２７）における「Ｃx3」，「Ｃx4」を演算すると共に該演算した「Ｃx3」，「Ｃx4」を該式（２７）に代入して任意の時刻ｔにおける前記歩行体の重心のｘ成分ｘ（ｔ）を演算し、前記演算した「ａ3」，「ａ2」と複数の時刻における前記歩行体の重心のｙ成分ｙ（ｔ）と任意の時刻ｔにおける前記ゼロモーメント位置のｙ成分ｐｙ（ｔ）と前記式（２８）とに基づいて該式（２８）における「Ｃy3」，「Ｃy4」を演算すると共に該演算した「Ｃy3」，「Ｃy4」を該式（２８）に代入して任意の時刻ｔにおける前記歩行体の重心のｙ成分ｙ（ｔ）を演算する手段である
歩容生成装置。
【請求項１２】
前記歩行体と、請求項１記載の歩容生成装置と、を備える歩行体装置。
【請求項１３】
二足歩行を行なう歩行体の歩容を生成する歩容生成方法であって、
ｔを時刻，ｐｘ（ｔ），ｐｙ（ｔ），ｐｚ（ｔ）を任意の時刻ｔにおけるゼロモーメント位置のｘ，ｙ，ｚ成分，Ｍを前記歩行体の全質量，ｇを重力加速度，ｘ（ｔ），ｙ（ｔ）を任意の時刻ｔにおける前記歩行体の重心のｘ，ｙ成分，Ｐｘ（ｔ），Ｐｙ（ｔ），Ｐｚ（ｔ）を任意の時刻ｔにおける前記歩行体の運動量のｘ，ｙ，ｚ成分，Ｌｘ（ｔ），Ｌｙ（ｔ）を任意の時刻ｔにおける前記歩行体の角運動量のｘ，ｙ成分としたときに式（２９），（３０）により表わされ、該式（２９），（３０）において任意の時刻ｔにおける前記ゼロモーメント位置ｐｚ（ｔ）を値０とすると共に任意の時刻ｔにおける前記角運動量のｘ，ｙ成分Ｌｘ（ｔ），Ｌｙ（ｔ）のうち前記歩行体の重心回りの角運動量の変化の影響を前記歩行体の重心のｘ，ｙ成分ｘ（ｔ），ｙ（ｔ）の影響に比して十分に小さいとして無視し、ｚ（ｔ）を任意の時刻ｔにおける前記歩行体の重心のｚ成分としたときに式（３１），（３２）により表わされる運動方程式における前記歩行体の重心のｚ成分ｚ（ｔ）に関する項「ｚ（ｔ）／（ｚ（ｔ）の二階微分＋ｇ）」を時刻についてのｎ次式（ｎは値０以上の整数）または該ｎ次式の逆数で置いたものと、前記項「ｚ（ｔ）／（ｚ（ｔ）の二階微分＋ｇ）」と前記ｎ次式または該ｎ次式の逆数とからなる補助方程式と、を用いて任意の時刻ｔにおける前記歩行体の重心のｘ，ｙ，ｚ成分ｘ（ｔ），ｙ（ｔ），ｚ（ｔ）を演算し、
該演算した歩行体の重心のｘ，ｙ，ｚ成分ｘ（ｔ），ｙ（ｔ），ｚ（ｔ）を用いて前記歩行体の歩容を生成する、
歩容生成方法。
【数１２】
2008105506.tif 000069
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、歩容生成装置およびこれを備える歩行体装置並びに歩容生成方法に関し、詳しくは、二足歩行を行なう歩行体の歩容を生成する歩容生成装置およびこれを備える歩行体装置並びに歩容生成方法に関する。
【背景技術】
【０００２】
従来、この種の歩容生成装置としては、二脚ロボットの重心の鉛直方向の運動が水平方向の運動に及ぼす影響を十分小さいものとみなして、床反力の重心（ＺＭＰ，Ｚｅｒｏ  Ｍｏｍｅｎｔ  Ｐｏｉｎｔ）の目標軌道である目標ＺＭＰ軌道を指数関数で設計すると共に設計した目標ＺＭＰ軌道を用いてＺＭＰとロボットの重心との関係を示す運動方程式を解くことにより重心の目標軌道を計画し、計画した重心の目標軌道と目標ＺＭＰ軌道とを用いて歩容を生成するものが提案されている（例えば、非特許文献１参照）。この装置では、目標ＺＭＰ軌道を指数関数で設計すると共にこれを用いて重心の目標軌道を計画することにより歩容を高速で計画できるとしている。
【非特許文献１】杉原、中村，「境界条件緩和による二脚ロボットのオンライン歩容計画法」，第１０回ロボティクスシンポジア，ｐｐ．１５３−１５８，２００５．３．
【発明の開示】
【０００３】
しかしながら、上述の歩容生成装置では、二脚ロボットの歩容を生成できる範囲が重心の鉛直方向の運動を誤差として扱える範囲に限定されてしまう。こうした歩容生成装置では、より多様な歩容を生成すること、即ち、重心の鉛直方向の運動を誤差として扱える範囲だけでなく、大きな重心の鉛直方向の運動を伴う範囲でも歩容を生成できるようにすることが望まれる。
【０００４】
本発明の歩容生成装置およびこれを備える歩行体装置並びに歩容生成方法は、二足歩行を行なう歩行体のより多様な歩容を生成できるようにすることを目的の一つとする。また、本発明の歩容生成装置およびこれを備える歩行体装置並びに歩容生成方法は、二足歩行を行なう歩行体の重心の鉛直方向の運動を伴う歩容を生成できるようにすることを目的の一つとする。
【０００５】
本発明の歩容生成装置および歩容生成方法は、上述の目的を達成するために以下の手段を採った。
【０００６】
本発明の歩容生成装置は、
二足歩行を行なう歩行体の歩容を生成する歩容生成装置であって、
任意の時刻における前記歩行体の重心の床面に対して鉛直方向の位置に関する項である重心鉛直方向位置項を時刻についてのｎ次式（ｎは値０以上の整数）または該ｎ次式の逆数で置いた前記床面から前記歩行体に作用するモーメントがゼロとなるゼロモーメント位置と任意の時刻における前記歩行体の重心の前記床面に対して水平方向の位置との関係を示す運動方程式と、前記重心鉛直方向位置項と前記ｎ次式または該ｎ次式の逆数とからなる補助方程式と、を用いて任意の時刻における前記歩行体の重心の前記床面に対して水平方向および鉛直方向の目標位置を演算する目標位置演算手段と、
前記演算された歩行体の重心の目標位置に基づいて前記歩行体の歩容を生成する歩容生成手段と、
を備えることを要旨とする。
【０００７】
本発明の歩容生成装置では、任意の時刻における歩行体の重心の床面に対して鉛直方向の位置に関する項である重心鉛直方向位置項を時刻についてのｎ次式（ｎは値０以上の整数）またはその逆数で置いた床面から歩行体に作用するモーメントがゼロとなるゼロモーメント位置と任意の時刻における歩行体の重心の床面に対して水平方向の位置との関係を示す運動方程式と、重心鉛直方向位置項とｎ次式またはその逆数とからなる補助方程式と、を用いて任意の時刻における歩行体の重心の床面に対して水平方向および鉛直方向の目標位置を演算し、演算した歩行体の重心の目標位置に基づいて前記歩行体の歩容を生成する。したがって、任意の時刻における歩行体の重心の床面に対して水平方向の目標位置だけでなく鉛直方向の目標位置も演算し、演算した目標位置を用いて歩行体の歩容を生成するから、歩行体の重心の鉛直方向の運動を伴った歩容を生成することができる。この結果、より多様な歩容を生成することができる。
【０００８】
こうした本発明の歩容生成装置において、前記目標位置演算手段は、任意の時刻における前記ゼロモーメント位置と所定時刻における前記歩行体の重心の位置および該歩行体の重心の位置の変化速度とに基づいて任意の時刻における前記歩行体の重心の目標位置を演算する手段であるものとすることもできる。
【０００９】
また、本発明の歩容生成装置において、前記運動方程式は、ｔを時刻，ｐｘ（ｔ），ｐｙ（ｔ），ｐｚ（ｔ）を任意の時刻ｔにおける前記ゼロモーメント位置のｘ，ｙ，ｚ成分，Ｍを前記歩行体の全質量，ｇを重力加速度，ｘ（ｔ），ｙ（ｔ）を任意の時刻ｔにおける前記歩行体の重心のｘ，ｙ成分，Ｐｘ（ｔ），Ｐｙ（ｔ），Ｐｚ（ｔ）を任意の時刻ｔにおける前記歩行体の運動量のｘ，ｙ，ｚ成分，Ｌｘ（ｔ），Ｌｙ（ｔ）を任意の時刻ｔにおける前記歩行体の角運動量のｘ，ｙ成分としたときに式（１），（２）により表わされ、該式（１），（２）において任意の時刻ｔにおける前記ゼロモーメント位置ｐｚ（ｔ）を値０とすると共に任意の時刻ｔにおける前記角運動量のｘ，ｙ成分Ｌｘ（ｔ），Ｌｙ（ｔ）のうち前記歩行体の重心回りの角運動量の変化の影響を前記歩行体の重心のｘ，ｙ成分ｘ（ｔ），ｙ（ｔ）の影響に比して十分に小さいとして無視し、ｚ（ｔ）を任意の時刻ｔにおける前記歩行体の重心のｚ成分としたときに、式（３），（４）により表わされる方程式であり、前記重心鉛直方向位置の項は、前記式（３），（４）における「ｚ（ｔ）／（ｚ（ｔ）の二階微分＋ｇ）」であるものとすることもできる。
【００１０】
【数１】
2008105506.tif 000003
【００１１】
この運動方程式が式（３），（４）により表わされる態様の本発明の歩容生成装置において、前記補助方程式は、式（５）により表わされる方程式であり、前記運動方程式は、前記式（３），（４）における前記重心鉛直方向位置の項を前記式（５）を用いて置き換えた方程式であるものとすることもできる。ここで、式（５）中、「ａ1」，「ａ0」は、任意の時刻ｔにおける前記歩行体の重心のｚ成分ｚ（ｔ）を演算するためのパラメータである。
【００１２】
【数２】
2008105506.tif 000004
【００１３】
この補助方程式が式（５）により表わされる態様の本発明の歩容生成装置において、前記目標位置演算手段は、前記補助方程式の解としての式（６）を用いて任意の時刻ｔにおける前記歩行体の重心のｚ成分ｚ（ｔ）を演算する手段であるものとすることもできる。ここで、式（６）中、「Ｃz1」，「Ｃz2」は、積分定数である。また、式（６）中、「Ｉ」，「Ｋ」は、それぞれ第１種変形Ｂｅｓｓｅｌ関数，第２種変形Ｂｅｓｓｅｌ関数であり、「Ｉ1」，「Ｋ1」は、それぞれ式（７），（８）における「ν」に値１を設定したものにより表わされる。式（７），（８）における「φ1」は、式（９）により表わされる。式（７）中、「Γ」はＧａｍｍａ関数である。なお、式（５）の解法、即ち、式（５）から式（６）を導出する方法については後述する。
【００１４】
【数３】
2008105506.tif 000005
【数４】
2008105506.tif 000006
【００１５】
この任意の時刻ｔにおける歩行体の重心のｚ成分ｚ（ｔ）が式（６）により表わされる態様の本発明の歩容生成装置において、前記目標位置演算手段は、前記運動方程式の任意の時刻ｔにおける前記ゼロモーメント位置のｘ，ｙ成分ｐｘ（ｔ），ｐｙ（ｔ）がそれぞれ式（１０），（１１）により表わされるｎ１次式，ｎ２次式（ｎ１，ｎ２は共に値０以上の整数）で与えられたときに、該運動方程式の解としての式（１２），（１３）を用いて任意の時刻ｔにおける前記歩行体の重心のｘ，ｙ成分ｘ（ｔ），ｙ（ｔ）を演算する手段であるものとすることもできる。ここで、式（１０），（１１）中、「ｂ１i」，「ｂ２i」はｉ次の項の係数であり、式（１２），（１３）中、「Ｃx1」，「Ｃx2」，「Ｃy1」，「Ｃy2」は、積分定数である。また、式（１２），（１３）中、「Ｉ1」，「Ｋ1」は、それぞれ前述の式（７），（８）における「ν」に値１を設定したものにより表わされる。さらに、「ｂ１」と「Ｂ１」との関係，「ｂ２」と「Ｂ２」との関係は、式（１４），（１５）により表わされる。
【００１６】
【数５】
2008105506.tif 000007
【数６】
2008105506.tif 000008
【数７】
2008105506.tif 000009
【００１７】
この任意の時刻ｔにおける歩行体の重心のｘ，ｙ，ｚ成分ｘ（ｔ），ｙ（ｔ），ｚ（ｔ）がそれぞれ式（１２），（１３），（６）により表わされる態様の本発明の歩容生成装置において、前記目標位置演算手段は、複数の時刻における前記歩行体の重心のｚ成分ｚ（ｔ）と該歩行体の重心のｚ成分ｚ（ｔ）の変化速度（ｚ（ｔ）の一階微分）と前記式（６）とに基づいて該式（６）における「Ｃz1」，「Ｃz2」，「ａ1」，「ａ0」を演算すると共に該演算した「Ｃz1」，「Ｃz2」，「ａ1」，「ａ0」を該式（６）に代入して任意の時刻ｔにおける前記歩行体の重心のｚ成分ｚ（ｔ）を設定し、該演算した「ａ1」，「ａ0」と複数の時刻における前記歩行体の重心のｘ成分ｘ（ｔ）と任意の時刻ｔにおける前記ゼロモーメント位置のｘ成分ｐｘ（ｔ）と前記式（１２）とに基づいて該式（１２）における「Ｃx1」，「Ｃx2」を演算すると共に該演算した「Ｃx1」，「Ｃx2」を該式（１２）に代入して任意の時刻ｔにおける前記歩行体の重心のｘ成分ｘ（ｔ）を演算し、前記演算した「ａ1」，「ａ0」と複数の時刻における前記歩行体の重心のｙ成分ｙ（ｔ）と任意の時刻ｔにおける前記ゼロモーメント位置のｙ成分ｐｙ（ｔ）と前記式（１３）とに基づいて該式（１３）における「Ｃy1」，「Ｃy2」を演算すると共に該演算した「Ｃy1」，「Ｃy2」を該式（１３）に代入して任意の時刻ｔにおける前記歩行体の重心のｙ成分ｙ（ｔ）を演算する手段であるものとすることもできる。
【００１８】
運動方程式が式（３），（４）により表わされる態様の本発明の歩容生成装置において、前記補助方程式は、式（１６）により表わされる式であり、前記運動方程式は、前記式（３），（４）における前記重心鉛直方向位置項を前記式（１６）を用いて置き換えた方程式であるものとすることもできる。式（１６）中、「ａ3」，「ａ2」は、任意の時刻ｔにおける前記歩行体の重心のｚ成分ｚ（ｔ）を演算するためのパラメータである。
【００１９】
【数８】
2008105506.tif 000010
【００２０】
この補助方程式が式（１６）により表わされる態様の本発明の歩容生成装置において、前記目標位置演算手段は、前記補助方程式の解としての式（１７）を用いて任意の時刻ｔにおける前記歩行体の重心のｚ成分ｚ（ｔ）を演算する手段であるものとすることもできる。ここで、式（１７）中、「Ｃz3」，「Ｃz4」は、積分定数である。また、式（１７）中、「ＡｉｒｙＡｉ」，「ＡｉｒｙＢｉ」は、Ａｉｒｙ関数であり、それぞれ式（１８），（１９）により表わされる。さらに、式（１７）中、「Ｇｉ」は、Ｓｃｏｒｅｒ関数であり、式（２０）により表わされる。式（１８）〜（２０）における「φ2」は式（２１）により表わされる。式（１８）中、「Ｋ」は第２種変形Ｂｅｓｓｅｌ関数であり、「Ｋ1/3」は式（２２）における「ν」に１／３を設定したものにより表わされる。式（１９），（２２）中、「Ｉ」は第１種変形Ｂｅｓｓｅｌ関数であり、「Ｉ1/3」，「Ｉ-1/3」は、それぞれ式（２３）における「ν」に１／３，−１／３を設定したものにより表わされる。式（２０），（２３）中、「Γ」はＧａｍｍａ関数である。式（２２），（２３）中、「φ3」は式（２４）により表わされる。なお、式（１６）の解法、即ち、式（１６）から式（１７）を導出する方法については後述する。
【００２１】
【数９】
2008105506.tif 000011
【数１０】
2008105506.tif 000012
【数１１】
2008105506.tif 000013
【００２２】
この任意の時刻ｔにおける歩行体の重心のｚ成分ｚ（ｔ）が式（１７）により表わされる態様の本発明の歩容生成装置において、前記目標位置演算手段は、前記運動方程式の任意の時刻ｔにおける前記ゼロモーメント位置のｘ，ｙ成分ｐｘ（ｔ），ｐｙ（ｔ）が式（２５），（２６）により表わされる１次式で与えられたときに、該運動方程式の解としての式（２７），（２８）を用いて任意の時刻ｔにおける前記歩行体の重心のｘ，ｙ成分ｘ（ｔ），ｙ（ｔ）を演算する手段であるものとすることもできる。ここで、式（２５），（２６）中、「ｂ３i」，「ｂ４i」はｉ次の項の係数であり、式（２７），（２８）中、「Ｃx3」，「Ｃx4」，「Ｃy3」，「Ｃy4」は、積分定数である。また、式（２７），（２８）中、「ＡｉｒｙＡｉ」，「ＡｉｒｙＢｉ」は、前述の式（１８），（１９）により表わされる。
【００２３】
【数１２】
2008105506.tif 000014
【数１３】
2008105506.tif 000015
【００２４】
この任意の時刻ｔにおける歩行体の重心のｘ，ｙ，ｚ成分ｘ（ｔ），ｙ（ｔ），ｚ（ｔ）がそれぞれ式（２７），（２８），（１７）により表わされる態様の本発明の歩容生成装置において、前記目標位置演算手段は、複数の時刻における前記歩行体の重心のｚ成分ｚ（ｔ）と該歩行体の重心のｚ成分ｚ（ｔ）の変化速度（ｚ（ｔ）の一階微分）と前記式（１７）とに基づいて該式（１７）における「Ｃz3」，「Ｃz4」，「ａ3」，「ａ2」を演算すると共に該演算した「Ｃz3」，「Ｃz4」，「ａ3」，「ａ2」を該式（１７）に代入して任意の時刻ｔにおける前記歩行体の重心のｚ成分ｚ（ｔ）を設定し、該演算した「ａ3」，「ａ2」と複数の時刻における前記歩行体の重心のｘ成分ｘ（ｔ）と任意の時刻ｔにおける前記ゼロモーメント位置のｘ成分ｐｘ（ｔ）と前記式（２７）とに基づいて該式（２７）における「Ｃx3」，「Ｃx4」を演算すると共に該演算した「Ｃx3」，「Ｃx4」を該式（２７）に代入して任意の時刻ｔにおける前記歩行体の重心のｘ成分ｘ（ｔ）を演算し、前記演算した「ａ3」，「ａ2」と複数の時刻における前記歩行体の重心のｙ成分ｙ（ｔ）と任意の時刻ｔにおける前記ゼロモーメント位置のｙ成分ｐｙ（ｔ）と前記式（２８）とに基づいて該式（２８）における「Ｃy3」，「Ｃy4」を演算すると共に該演算した「Ｃy3」，「Ｃy4」を該式（２８）に代入して任意の時刻ｔにおける前記歩行体の重心のｙ成分ｙ（ｔ）を演算する手段であるものとすることもできる。
【００２５】
本発明の歩行体装置は、前記歩行体と、上述のいずれか態様の本発明の歩容生成装置、即ち、基本的には、二足歩行を行なう歩行体の歩容を生成する歩容生成装置であって、任意の時刻における前記歩行体の重心の床面に対して鉛直方向の位置に関する項である重心鉛直方向位置項を時刻についてのｎ次式（ｎは値０以上の整数）または該ｎ次式の逆数で置いた前記床面から前記歩行体に作用するモーメントがゼロとなるゼロモーメント位置と任意の時刻における前記歩行体の重心の前記床面に対して水平方向の位置との関係を示す運動方程式と、前記重心鉛直方向位置項と前記ｎ次式または該ｎ次式の逆数とからなる補助方程式と、を用いて任意の時刻における前記歩行体の重心の前記床面に対して水平方向および鉛直方向の目標位置を演算する目標位置演算手段と、前記演算された歩行体の重心の目標位置に基づいて前記歩行体の歩容を生成する歩容生成手段と、を備える歩容生成装置と、を備えることを要旨とする。
【００２６】
この本発明の歩行体装置は、上述のいずれかの態様の本発明の歩容生成装置を備えるから、本発明の歩容生成装置が奏する効果、例えば、歩行体の重心の鉛直方向の運動を伴った歩容を生成することができ、より多様な歩容を生成することができる効果などと同様の効果を奏することができる。
【００２７】
本発明の歩容生成方法は、
二足歩行を行なう歩行体の歩容を生成する歩容生成方法であって、
ｔを時刻，ｐｘ（ｔ），ｐｙ（ｔ），ｐｚ（ｔ）を任意の時刻ｔにおけるゼロモーメント位置のｘ，ｙ，ｚ成分，Ｍを前記歩行体の全質量，ｇを重力加速度，ｘ（ｔ），ｙ（ｔ）を任意の時刻ｔにおける前記歩行体の重心のｘ，ｙ成分，Ｐｘ（ｔ），Ｐｙ（ｔ），Ｐｚ（ｔ）を任意の時刻ｔにおける前記歩行体の運動量のｘ，ｙ，ｚ成分，Ｌｘ（ｔ），Ｌｙ（ｔ）を任意の時刻ｔにおける前記歩行体の角運動量のｘ，ｙ成分としたときに式（２９），（３０）により表わされ、該式（２９），（３０）において任意の時刻ｔにおける前記ゼロモーメント位置ｐｚ（ｔ）を値０とすると共に任意の時刻ｔにおける前記角運動量のｘ，ｙ成分Ｌｘ（ｔ），Ｌｙ（ｔ）のうち前記歩行体の重心回りの角運動量の変化の影響を前記歩行体の重心のｘ，ｙ成分ｘ（ｔ），ｙ（ｔ）の影響に比して十分に小さいとして無視し、ｚ（ｔ）を任意の時刻ｔにおける前記歩行体の重心のｚ成分としたときに式（３１），（３２）により表わされる運動方程式における前記歩行体の重心のｚ成分ｚ（ｔ）に関する項「ｚ（ｔ）／（ｚ（ｔ）の二階微分＋ｇ）」を時刻についてのｎ次式（ｎは値０以上の整数）または該ｎ次式の逆数で置いたものと、前記項「ｚ（ｔ）／（ｚ（ｔ）の二階微分＋ｇ）」と前記ｎ次式または該ｎ次式の逆数とからなる補助方程式と、を用いて任意の時刻ｔにおける前記歩行体の重心のｘ，ｙ，ｚ成分ｘ（ｔ），ｙ（ｔ），ｚ（ｔ）を演算し、
該演算した歩行体の重心のｘ，ｙ，ｚ成分ｘ（ｔ），ｙ（ｔ），ｚ（ｔ）を用いて前記歩行体の歩容を生成する、
ことを要旨とする。
【００２８】
【数１４】
2008105506.tif 000016
【００２９】
この本発明の歩容生成方法では、ｔを時刻，ｐｘ（ｔ），ｐｙ（ｔ），ｐｚ（ｔ）を任意の時刻ｔにおけるゼロモーメント位置のｘ，ｙ，ｚ成分，Ｍを歩行体の全質量，ｇを重力加速度，ｘ（ｔ），ｙ（ｔ）を任意の時刻ｔにおける歩行体の重心のｘ，ｙ成分，Ｐｘ（ｔ），Ｐｙ（ｔ），Ｐｚ（ｔ）を任意の時刻ｔにおける歩行体の運動量のｘ，ｙ，ｚ成分，Ｌｘ（ｔ），Ｌｙ（ｔ）を任意の時刻ｔにおける歩行体の角運動量のｘ，ｙ成分としたときに式（２９），（３０）により表わされ、式（２９），（３０）において任意の時刻ｔにおけるゼロモーメント位置ｐｚ（ｔ）を値０とすると共に任意の時刻ｔにおける角運動量のｘ，ｙ成分Ｌｘ（ｔ），Ｌｙ（ｔ）のうち歩行体の重心回りの角運動量の変化の影響を歩行体の重心のｘ，ｙ成分ｘ（ｔ），ｙ（ｔ）の影響に比して十分に小さいとして無視し、ｚ（ｔ）を任意の時刻ｔにおける歩行体の重心のｚ成分としたときに式（３１），（３２）により表わされる運動方程式における歩行体の重心のｚ成分ｚ（ｔ）に関する項「ｚ（ｔ）／（ｚ（ｔ）の二階微分＋ｇ）」を時刻についてのｎ次式（ｎは値０以上の整数）またはその逆数で置いたものと、項「ｚ（ｔ）／（ｚ（ｔ）の二階微分＋ｇ）」とｎ次式またはその逆数とからなる補助方程式と、を用いて任意の時刻ｔにおける歩行体の重心のｘ，ｙ，ｚ成分ｘ（ｔ），ｙ（ｔ），ｚ（ｔ）を演算し、演算した歩行体の重心のｘ，ｙ，ｚ成分ｘ（ｔ），ｙ（ｔ），ｚ（ｔ）を用いて前記歩行体の歩容を生成する。したがって、任意の時刻における歩行体の重心の床面に対して水平方向の目標位置だけでなく鉛直方向の目標位置も演算し、演算した目標位置を用いて歩行体の歩容を生成するから、歩行体の重心の鉛直方向の運動を伴った歩容を生成することができる。この結果、より多様な歩容を生成することができる。
【図面の簡単な説明】
【００３０】
【図１】本発明の第１実施例としてのロボット装置２０の外観を示す外観図である。
【図２】ロボット装置２０の構成の概略を示す構成図である。
【図３】第１実施例の制御ユニット３２により実行される歩容生成処理ルーチンの一例を示すフローチャートである。
【図４】ゼロモーメント位置等設定処理の一例を示すフローチャートである。
【図５】ゼロモーメント位置等設定処理により設定された足の位置の一例を示す説明図である。
【図６】ゼロモーメント位置等設定処理により設定されたゼロモーメント位置（ＺＭＰ）のｘ，ｙ成分ｐｘ（ｔ），ｐｙ（ｔ）と時刻ｔとの関係の一例を示す説明図である。
【図７】重心ｚ成分演算処理の一例を示すフローチャートである。
【図８】重心ｘ成分演算処理の一例を示すフローチャートである。
【図９】二足歩行ロボット２２の歩行の様子の一例を示す説明図である。
【図１０】二足歩行ロボット２２の歩行の様子の一例を示す説明図である。
【図１１】第２実施例の制御ユニット３２により実行される歩容生成処理ルーチンの一例を示すフローチャートである。
【図１２】重心ｚ成分演算処理の一例を示すフローチャートである。
【図１３】重心ｘ成分演算処理の一例を示すフローチャートである。
【発明を実施するための最良の形態】
【００３１】
次に、本発明を実施するための最良の形態を実施例を用いて説明する。【００３２】
図１は、本発明の第１実施例としてのロボット装置２０の外観を示す外観図であり、図２は、ロボット装置２０の構成の概略を示す構成図である。第１実施例のロボット装置２０は、二足歩行を行なう二足歩行ロボット２２と、二足歩行ロボット２２を操作する操作装置３０と、を備える。【００３３】
二足歩行ロボット２２は、ｋｎ個の関節と、各関節ｋ（ｋは１≦ｋ≦ｋｎを満たす整数）の角度θkを変化させる図示しないアクチュエータ（例えば、電動モータなど）とを有し、アクチュエータの駆動により各関節ｋの角度θkを変化させて二足歩行を行なう。【００３４】
操作装置３０は、主として二足歩行ロボット２２の歩容を生成する制御ユニット３２と、二足歩行ロボット２２の歩行指示を行なうために操作者が操作するジョイスティック４０と、を備える。制御ユニット３２は、中央処理演算回路としてのＣＰＵ３４を中心とするマイクロコンピュータとして構成されており、ＣＰＵ３４の他に、処理プログラムなどを記憶するＲＯＭ３６や一時的にデータを記憶するＲＡＭ３８，図示しない入出力ポートを備える。制御ユニット３２には、ジョイスティック４０の傾斜方向や傾斜角を検出する傾斜検出センサ４２からのジョイスティック４０の傾斜方向や傾斜角，二足歩行ロボット２２の各関節ｋに取り付けられた角度センサからの各関節ｋの角度θkなどが入力されており、制御ユニット３２からは、二足歩行ロボット２２の各関節ｋの角度θkを変化させる図示しないアクチュエータへの駆動信号などが出力されている。第１実施例では、主として、制御ユニット３２が歩容生成装置に相当する。【００３５】
次に、こうして構成されたロボット装置２０の動作、特に、二足歩行ロボット２２が停止している状態で操作者によりジョイスティック４０が操作されて二足歩行ロボット２２が歩行する際の動作について説明する。図３は、制御ユニット３２により実行される歩容生成処理ルーチンの一例を示すフローチャートである。このルーチンは、操作者によりジョイスティック４０が操作されて傾斜検出センサ４２から傾斜方向や傾斜角が入力されたときに実行される。以下、説明の都合上、ジョイスティック４０からの操作に応じて歩行を開始する歩行開始時刻を時刻ｔ0，歩行を終了する歩行終了時刻を時刻ｔfとし、時刻ｔ0〜時刻ｔfをＭ区間に分割したときの各区間の境界の時刻および歩行終了時刻を時刻ｔj（ｊは１≦ｊ≦ｆを満たす整数）とし、時刻ｔj-1〜時刻ｔjを区間Ｊ（Ｊは１≦Ｊ≦Ｍを満たす整数）として説明する。また、区間の境界は、第１実施例では、単脚支持期から両脚支持期に移行する時刻を用いるものとした。したがって、例えば、５歩の歩行を行なうときには、５区間に分割することになる。【００３６】
歩容生成処理ルーチンが実行されると、制御ユニット３２のＣＰＵ３４は、まず、区間１〜区間Ｍの各区間Ｊの任意の時刻ｔにおける二足歩行ロボット２２のゼロモーメント位置（ＺＭＰ）のｘ，ｙ成分ｐｘ(J)（ｔ），ｐｙ(J)（ｔ）や、歩行開始時刻ｔ0および歩行終了時刻ｔfにおける二足歩行ロボット２２の重心のｘ，ｙ成分ｘ（ｔ0），ｙ（ｔ0），ｘ（ｔf），ｙ（ｔf），歩行開始時刻ｔ0や時刻ｔ1〜歩行終了時刻ｔfの各時刻ｔjにおける重心のｚ成分ｚ（ｔ0），ｚ（ｔj）（１≦ｊ≦ｆ）およびその変化速度（ｚ（ｔ0）の一階微分），（ｚ（ｔj）の一階微分），二足歩行ロボット２２の足の位置など制御に必要などデータを入力する処理を実行する（ステップＳ１００）。これらのデータは、第１実施例では、図４に例示するゼロモーメント位置等設定処理により設定されたものを入力するものとした。図４のゼロモーメント位置等設定処理では、傾斜検出センサ４２からジョイスティック４０の傾斜方向や傾斜角を入力し（ステップＳ２００）、入力したジョイスティック４０の傾斜方向や傾斜角に基づいて歩幅Δｘａや両足の間隔Δｙａ，歩行周期（単脚指示時間と両脚指示時間との和に応じた時間）ΔＴなどを設定し（ステップＳ２１０）、設定した歩幅Δｘａや両足の間隔Δｙａに基づいて二足歩行ロボット２２の足の位置を設定し（ステップＳ２２０）、設定した足の位置や歩行周期ΔＴなどに基づいて区間１〜区間Ｍの各区間Ｊの任意の時刻ｔにおけるゼロモーメント位置（ＺＭＰ）のｘ，ｙ成分ｐｘ(J)（ｔ），ｐｙ(J)（ｔ）をそれぞれ式（３３），（３４）により表わされるｎ１次式，ｎ２次式（ｎ１，ｎ２は値０以上の整数）として設定すると共に（ステップＳ２３０）、歩幅Δｘａや両足の間隔Δｙａ，歩行周期ΔＴなどに基づいて歩行開始時刻ｔ0および歩行終了時刻ｔfにおける二足歩行ロボット２２の重心のｘ，ｙ成分ｘ（ｔ0），ｙ（ｔ0），ｘ（ｔf），ｙ（ｔf）や、歩行開始時刻ｔ0や時刻ｔ1〜歩行終了時刻ｔfの各時刻ｔjにおける重心のｚ成分ｚ（ｔ0），ｚ（ｔj）およびその変化速度（ｚ（ｔ0）の一階微分），（ｚ（ｔj）の一階微分）を設定して（ステップＳ２４０）、このルーチンを終了する。図４のゼロモーメント位置等設定処理のステップＳ２２０で設定された二足歩行ロボット２２の足の位置の一例を図５に示し、ステップＳ２３０で設定されたゼロモーメント位置（ＺＭＰ）のｘ，ｙ成分ｐｘ（ｔ），ｐｙ（ｔ）と時刻ｔとの関係の一例を図６に示す。なお、両足の間隔Δｙａは、ジョイスティック４０の傾斜方向や傾斜角に拘わらず一定の値を用いるものとしてもよい。また、歩行開始時刻ｔ0における重心のｘ，ｙ，ｚ成分ｘ（ｔ0），ｙ（ｔ0），ｚ（ｔ0）は、二足歩行ロボット２２の重心の位置を検出する図示しないセンサからの重心のｘ，ｙ，ｚ成分ｘ（ｔ0），ｙ（ｔ0），ｚ（ｔ0）を用いるものとしてもよい。【００３７】
【数１５】
2008105506.tif 000017
【００３８】
こうしてデータを入力すると、区間Ｊに値１を設定すると共に（ステップＳ１１０）、時刻ｔj-1，ｔjにおける重心のｚ成分ｚ（ｔj-1），ｚ（ｔj）およびその変化速度（ｚ（ｔj-1）の一階微分），（ｚ（ｔj）の一階微分）と次式（３５）とに基づいて図６に例示する重心ｚ成分演算処理により区間Ｊの任意の時刻ｔにおける重心のｚ成分ｚ(J)（ｔ）を演算する（ステップＳ１２０）。図７の重心ｚ成分演算処理では、時刻ｔj-1，ｔjにおける重心のｚ成分ｚ（ｔj-1），ｚ（ｔj）を式（３５）の右辺の「ｔ」を「ｔ−ｔj-1」に置き換えた式（３６）に代入した２つの方程式と、時刻ｔj-1，ｔjにおける重心のｚ成分ｚ（ｔj-1），ｚ（ｔj）の変化速度（ｚ（ｔj-1）の一階微分），（ｚ（ｔj）の一階微分）を式（３５）の両辺を「ｔ」で微分したものの右辺の「ｔ」を「ｔ−ｔj-1」に置き換えた式（３７）に代入した２つの方程式と、の４つの方程式を連立して解くことにより、区間Ｊの「Ｃz1(J)」，「Ｃz2(J)」，「ａ1(J)」，「ａ0(J)」を演算すると共に（ステップＳ３００）、演算した区間Ｊの「Ｃz1(J)」，「Ｃz2(J)」，「ａ1(J)」，「ａ0(J)」を式（３６）に代入して区間Ｊの任意の時刻ｔにおける重心のｚ成分ｚ(J)（ｔ）を演算して（ステップＳ３１０）、重心ｚ成分演算処理を終了する。ここで、式（３５）〜（３７）中、「Ｉ」，「Ｋ」は、それぞれ第１種変形Ｂｅｓｓｅｌ関数，第２種変形Ｂｅｓｓｅｌ関数であり、式（３５），（３６）中、「Ｉ1」，「Ｋ1」は、式（３８），（３９）における「ν」に値１を設定したものにより表わされ、式（３７）中、「Ｉ0」，「Ｋ0」は、式（３８），（３９）における「ν」に値０を設定したものにより表わされる。また、式（３８），（３９）における「φ1」は、式（４０）により表わされる。さらに、式（３８）中、「Γ」はＧａｍｍａ関数である。各区間Ｊの任意の時刻ｔにおける重心のｚ成分ｚ(J)（ｔ）の演算の際に式（３５）を用いる理由については後述する。なお、ステップＳ３００の連立方程式を解く処理は、例えば、Ｎｅｗｔｏｎ法などにより行なうことができる。こうして区間Ｊの任意の時刻ｔにおける重心のｚ成分ｚ(J)（ｔ）を演算すると、区間Ｊが区間Ｍであるか否かを判定し（ステップＳ１３０）、区間Ｊが区間Ｍでないときには、区間Ｊに値１を加えて（ステップＳ１４０）、ステップＳ１２０に戻る。このようにして、区間１〜区間Ｍの各区間Ｊの任意の時刻ｔにおける重心のｚ成分ｚ(J)（ｔ）を演算するのである。【００３９】
【数１６】
2008105506.tif 000018
【数１７】
2008105506.tif 000019
【数１８】
2008105506.tif 000020
【数１９】
2008105506.tif 000021
【００４０】
そして、ステップＳ１３０で区間Ｊが区間Ｍであると判定されると、演算した区間１〜区間Ｍの各区間Ｊの「ａ1(J)」，「ａ0(J)」と、各区間Ｊの任意の時刻ｔにおけるゼロモーメント位置（ＺＭＰ）のｘ成分ｐｘ(J)（ｔ）と、時刻ｔ0，ｔfにおける重心のｘ成分ｘ（ｔ0），ｘ（ｔf）と、次式（４１）とに基づいて図７に例示する重心ｘ成分演算処理により各区間Ｊの任意の時刻ｔにおけるｘ成分ｘ(J)（ｔ）を演算すると共に（ステップＳ１５０）、各区間Ｊの「ａ1(J)」，「ａ0(J)」と、各区間Ｊの任意の時刻ｔにおけるゼロモーメント位置（ＺＭＰ）のｙ成分ｐｙ(J)（ｔ）と、時刻ｔ0，ｔfにおける重心のｙ成分ｙ（ｔ0），ｙ（ｔj）と，式（４２）とに基づいて図示しない重心ｙ成分演算処理により各区間Ｊの任意の時刻ｔにおける重心のｙ成分ｙ(J)（ｔ）を演算する（ステップＳ１６０）。各区間Ｊの任意の時刻ｔにおける重心のｘ，ｙ成分ｘ(J)（ｔ），ｙ(J)（ｔ）は、前述の式（４１），（４２）が同様の構造の式であり、同様に演算することができるため、ここでは、重心のｘ成分ｘ(J)（ｔ）の演算処理について説明し、重心のｙ成分ｙ(J)（ｔ）の演算処理の詳細な説明は省略する。なお、式（４１），（４２）中、「Ｂ１i」，「Ｂ２i」は、それぞれ式（４３），（４４）により表わされる。図８の重心ｘ成分演算処理では、式（４１）の右辺の「ｔ」を「ｔ−ｔj-1」に置き換えた式（４５）に歩行開始時刻（区間１の開始時刻）ｔ0における重心のｘ成分ｘ（ｔ0）を代入すると共にその式（４５）の「ｊ」と「Ｊ」とに共に値１を設定した式（４６）と、式（４５）に歩行終了時刻（区間Ｍの終了時刻）ｔfにおける重心のｘ成分ｘ（ｔf）を代入すると共にその式（４５）の「ｊ」，「Ｊ」にそれぞれ「ｆ」，「Ｍ」を設定したした式（４７）と、連続する二つの区間の境界における重心のｘ成分ｘ（ｔ）が連続する条件を満たす式（４８）により表わされる（Ｍ−１）個の式と、同じく連続する二つの区間の境界における重心のｘ成分ｘ（ｔ）の変化速度（ｘ（ｔ）の一階微分）が連続する条件を満たす式（４９）により表わされる（Ｍ−１）個の式と、の２Ｍ個の方程式を連立して解くことにより、各区間Ｊの「Ｃx1(J)」，「Ｃx2(J)」を演算すると共に（ステップＳ４００）、演算した各区間Ｊの「Ｃx1(J)」，「Ｃx2(J)」と「ａ1(J)」，「ａ0(J)」とを式（４５）に代入して各区間Ｊの任意の時刻ｔにおける重心のｘ成分ｘ(J)（ｔ）を演算して（ステップＳ４１０）、重心ｘ成分演算処理を終了する。ここで、式（４１），（４２），（４５）〜（４８）中、「Ｉ1」，「Ｋ1」は、式（３８），（３９）における「ν」に値１を設定したものにより表わされ、式（４９）中、「Ｉ0」，「Ｋ0」は、式（３８），（３９）における「ν」に値０を設定したものにより表わされる。また、式（３８），（３９）における「φ1」は、式（４０）により表わされる。ステップＳ４００の連立方程式を解く処理は、前述のステップＳ３００の処理と同様にＮｅｗｔｏｎ法などにより行なうことができる。このように連続する二つの区間の境界における重心のｘ成分ｘ（ｔ）およびその変化速度（ｘ（ｔ）の一階微分）が連続する式を用いて各区間Ｊの「Ｃx1(J)」，「Ｃx2(J)」を演算すると共にこの「Ｃx1(J)」，「Ｃx2(J)」を用いて各区間Ｊの任���の時刻ｔにおけるｘ(J)（ｔ）を演算することにより、連続する二つの区間の境界やその近傍における重心のｘ成分ｘ（ｔ）およびその変化速度（ｘ（ｔ）の一階微分）を連続的なものにすることができる。同様の手法により、各区間Ｊの「Ｃy1(J)」，「Ｃy2(J)」を演算して各区間Ｊの任意の時刻ｔにおける重心のｙ成分ｙ(J)（ｔ）を演算することができる。各区間Ｊの任意の時刻ｔにおける重心のｘ，ｙ成分ｘ(J)（ｔ），ｙ(J)（ｔ）の演算の際に式（４１），（４２）を用いる理由については後述する。【００４１】
【数２０】
2008105506.tif 000022
【数２１】
2008105506.tif 000023
【数２２】
2008105506.tif 000024
【数２３】
2008105506.tif 000025
【数２４】
2008105506.tif 000026
【数２５】
2008105506.tif 000027
【数２６】
2008105506.tif 000028
【００４２】
こうして区間１〜区間Ｍの各区間Ｊの任意の時刻ｔにおける重心のｘ，ｙ，ｚ成分ｘ(J)（ｔ），ｙ(J)（ｔ），ｚ(J)（ｔ）を演算すると、演算した重心のｘ，ｙ，ｚ成分ｘ(J)（ｔ），ｙ(J)（ｔ），ｚ(J)（ｔ）や時刻ｔj-1，ｔjにおける二足歩行ロボット２２の足の位置などに基づいて各区間Ｊの任意の時刻ｔにおける二足歩行ロボット２２の各関節ｋの目標角度θk(J)（ｔ）を演算して（ステップＳ１７０）、歩容生成処理ルーチンを終了する。各関節ｋの目標角度θk(J)（ｔ）の設定については、例えば、下記の引用文献１，２に記載されている方法などと同様に行なうことができる。制御ユニット３２は、こうして演算された各区間Ｊの任意の時刻ｔにおける二足歩行ロボット２２の各関節ｋの目標角度θk(J)（ｔ）や現在の角度（現在θk）などを用いて二足歩行ロボット２２の各関節ｋの角度θkを変化させる図示しないアクチュエータを駆動して二足歩行ロボット２２に歩行を行なわせる。二足歩行ロボット２２の歩行の様子の一例を図９および図１０に示す。図９および図１０の例では、一歩目で上体を屈ませ、二歩目で上体を戻している。任意の時刻ｔにおける重心のｚ成分ｚ（ｔ）を演算することにより、こうした重心のｚ成分ｚ（ｔ）の変化を伴う歩行を行なうことができる。
引用文献１：梶田，金広，金子，藤原，原田，横井，比留川，「分解運動量制御：運動量と角運動量とに基づくヒューマノイドロボットの全身運動生成」，日本ロボット学会誌，Ｖｏｌ．２２，Ｎｏ．６，ｐｐ．７７２−７７９，２００４
引用文献２：T. Sugihara and Y. Nakamura, Whole-body Cooperative Balancing of Humanoid Robot using COG Jacobian, In Proc.of IEEE/RSJ Int. Conf. on Intelligent Robots and Systems, pp. 2575-2580, 2002.【００４３】
次に、各区間Ｊの任意の時刻ｔにおける重心のｚ，ｘ，ｙ成分ｚ(J)（ｔ），ｘ(J)（ｔ），ｙ(J)（ｔ）の演算処理（ステップＳ１２０，Ｓ１５０，Ｓ１６０）において、式（３５），（４１），（４２）を用いることができる理由について説明する。ｔを時刻，ｐｘ（ｔ），ｐｙ（ｔ），ｐｚ（ｔ）を任意の時刻ｔにおけるゼロモーメント位置（ＺＭＰ）のｘ，ｙ，ｚ成分，Ｍを二足歩行ロボット２２の全質量，ｇを重力加速度，ｘ（ｔ），ｙ（ｔ）を任意の時刻ｔにおける二足歩行ロボット２２の重心のｘ，ｙ成分，Ｐｘ（ｔ），Ｐｙ（ｔ），Ｐｚ（ｔ）を任意の時刻ｔにおける二足歩行ロボット２２の運動量のｘ，ｙ，ｚ成分，Ｌｘ（ｔ），Ｌｙ（ｔ）を任意の時刻ｔにおける二足歩行ロボット２２の角運動量のｘ，ｙ成分としたときに、任意の時刻ｔにおけるゼロモーメント位置（ＺＭＰ）のｘ，ｙ，ｚ成分ｐｘ（ｔ），ｐｙ（ｔ），ｐｚ（ｔ）と重心のｘ，ｙ成分ｘ（ｔ），ｙ（ｔ）との関係を示す運動方程式は式（５０），（５１）により表わされるが、式（５０），（５１）において、任意の時刻ｔにおけるゼロモーメント位置のｚ成分ｐｚ（ｔ）を値０とすると共に角運動量のｘ，ｙ成分Ｌｘ（ｔ），Ｌｙ（ｔ）のうち二足歩行ロボット２２の重心回りの変化の影響を重心の水平成分の影響に比して十分に小さいとして無視し、ｚ（ｔ）を任意の時刻ｔにおける重心のｚ成分とすると、運動方程式は、式（５２），（５３）のように書き直すことができる。従来は、この式（５２），（５３）において、重心のｚ成分ｚ（ｔ）を定数、即ち、重心のｚ成分ｚ（ｔ）を一定とするまたはその変化を無視して定数Ｚｃと置いて式（５２），（５３）を式（５４），（５５）のように書き直して重心のｘ，ｙ成分ｘ（ｔ），ｙ（ｔ）を演算していた。しかしながら、二足歩行ロボット２２は、重心のｚ成分ｚ（ｔ）の運動を加味したより多様な運動を行なうことが望まれる。したがって、第１実施例では、式（５２），（５３）における重心のｚ成分ｚ（ｔ）に関する項を式（５６）で示したように１次式（ａ1ｔ＋ａ0）で置き、この式（５６）を解析的に解くことにより式（３５）により表わされる任意の時刻ｔにおける重心のｚ成分ｚ（ｔ）の一般解を得ると共に、式（５２），（５３）における重心のｚ成分ｚ（ｔ）に関する項を式（５６）で示した１次式（ａ1ｔ＋ａ0）で置き換えた式（５７），（５８）を解析的に解くことにより式（４１），（４２）により表わされる任意の時刻ｔにおける重心のｘ，ｙ成分ｘ（ｔ），ｙ（ｔ）の一般解を得て、式（３５），（４１），（４２）における「ａ1」，「ａ0」，「Ｃz1」，「Ｃz2」，「Ｃx1」，「Ｃx2」，「Ｃy1」，「Ｃy2」を決定し、任意の時刻ｔにおける重心のｚ，ｘ，ｙ成分ｚ（ｔ），ｘ（ｔ），ｙ（ｔ）を演算するものとした。以下、式（５６）〜（５８）の解法について説明する。なお、第１実施例では、式（５６）が本発明の補助方程式に相当する。【００４４】
【数２７】
2008105506.tif 000029
【数２８】
2008105506.tif 000030
【数２９】
2008105506.tif 000031
【００４５】
まず、式（５６）の解法について説明する。式（５６）を解く際には、式（５６）を式（５９）のように変形し、変形した式（５９）の右辺を値０と置いた同次方程式を解く。この際、式（５９）を式（６０），（６１）を用いて変形すると、同次方程式は式（６２）により表わされる。この方程式は変形Ｂｅｓｓｅｌ方程式と呼ばれるものであり、その解は式（６３）により表わされる。ここで、式（６３）中、「Ｃα1」，「Ｃβ1」は積分定数である。また、式（６３）中、「Ｉ1」，「Ｋ1」は、それぞれ式（３８），（３９）における「ν」を値１とすると共に「φ1」を「τ」に置き換えたものにより表わされる。したがって、式（５９）の同次方程式の同次解は、式（６４）により表わされる。また、式（５９）の特解は式（６５）により表わされる。これらより、式（５９）の一般解は、式（３５）のように表わすことができる。次に、式（５７）の解法について説明する。この式を変形すると式（５９）と同様の構造の式になるから、重心のｘ成分ｘ（ｔ）の同次解は式（６４）と同様になる。また、重心のｘ成分のｘ（ｔ）の特解は、ゼロモーメント位置（ＺＭＰ）のｘ成分ｐｘ（ｔ）が式（３３）により表わされるものとすると、式（６６）により表わされる。式（６６）中、「Ｂ１i」は、式（４３）により表わされる。これらより、重心のｘ成分ｘ（ｔ）の一般解は、式（４１）のように表わすことができる。次に、式（５８）の解法について説明する。式（５８）は、式（５７）と同様の構造の式であるから、同様に解くことができ、重心のｙ成分ｙ（ｔ）の一般解は、式（４２）のように表わすことができる。こうした式（３５），（４１），（４２）を用いて得られる任意の時刻ｔにおける重心のｘ，ｙ，ｚ成分ｘ（ｔ），ｙ（ｔ），ｚ（ｔ）を用いて二足歩行ロボット２２の歩容を生成することにより、重心のｚ成分ｚ（ｔ）の変化を伴って歩行することができる。これにより、より多様な歩行を行なうことができる。なお、式（３８）や式（３９）により表わされる第１種変形Ｂｅｓｓｅｌ関数や第２種変形Ｂｅｓｓｅｌ関数は、ＧＳＬ（例えば、引用文献３参照）等のライブラリで精度よく高速に演算することができる。
引用文献３：GSL-GNU Scientific Library, http://www.gnu.org/software/gsl/【００４６】
【数３０】
2008105506.tif 000032
【数３１】
2008105506.tif 000033
【数３２】
2008105506.tif 000034
【数３３】
2008105506.tif 000035
【００４７】
以上説明した第１実施例のロボット装置２０によれば、運動方程式のうち任意の時刻ｔにおける重心のｚ成分ｚ（ｔ）に関する項を１次式に置き換えたものと、重心のｚ成分ｚ（ｔ）に関する項と１次式とからなる補助方程式と、を用いて任意の時刻ｔにおける重心のｘ，ｙ，ｚ成分ｘ（ｔ），ｙ（ｔ），ｚ（ｔ）を演算すると共に演算した重心のｘ，ｙ，ｚ成分ｘ（ｔ），ｙ（ｔ），ｚ（ｔ）を用いて二足歩行ロボット２２の歩容を生成するから、重心のｚ成分ｚ（ｔ）の変化を伴った歩容を生成することができる。この結果、より多様な歩容を生成することができるから、二足歩行ロボット２２はより多様な歩行を行なうことができる。【００４８】
第１実施例のロボット装置２０では、図３の歩容生成処理ルーチンのステップＳ１２０で演算した区間１〜区間Ｍの各区間Ｊの「ａ1(J)」，「ａ0(J)」や、各区間Ｊの任意の時刻ｔにおけるゼロモーメント位置（ＺＭＰ）のｘ成分ｐｘ(J)（ｔ），時刻ｔ0，ｔfにおける重心のｘ成分ｘ（ｔ0），ｘ（ｔf），式（４１）に基づいて重心ｘ成分演算処理により各区間Ｊの「Ｃx1」，「Ｃx2」を演算して各区間Ｊの任意の時刻ｔにおけるｘ成分ｘ(J)（ｔ）を演算すると共に、各区間Ｊの「ａ1(J)」，「ａ0(J)」や、各区間Ｊの任意の時刻ｔにおけるゼロモーメント位置（ＺＭＰ）のｙ成分ｐｙ(J)（ｔ），時刻ｔ0，ｔfにおける重心のｙ成分ｙ（ｔ0），ｙ（ｔf），式（４２）に基づいて各区間Ｊの「Ｃy1」，「Ｃy2」を演算して各区間Ｊの任意の時刻ｔにおける重心のｙ成分ｙ(J)（ｔ）を演算するものとしたが、各区間Ｊの任意の時刻ｔにおける重心のｘ，ｙ成分ｘ(J)（ｔ），ｙ(J)（ｔ）の演算方法はこれに限られず、例えば、各区間Ｊの「ａ1(J)」，「ａ0(J)」と時刻ｔj-1，ｔj（１≦ｊ≦ｆ）における重心のｘ成分ｘ（ｔj-1），ｘ（ｔj）と式（４１）とに基づいて各区間Ｊの「Ｃx1」，「Ｃx2」を演算して各区間Ｊの任意の時刻ｔにおける重心のｘ成分ｘ(J)（ｔ）を演算すると共に、各区間Ｊの「ａ1(J)」，「ａ0(J)」と時刻ｔj-1，ｔjにおける重心のｙ成分ｙ（ｔj-1），ｙ（ｔj）と式（４２）とに基づいて各区間Ｊの「Ｃy1」，「Ｃy2」を演算して各区間Ｊの任意の時刻ｔにおける重心のｙ成分ｙ(J)（ｔ）を演算するものとしてもよい。【００４９】
第２実施例のロボット装置２０Ｂは、図１および図２に例示した第１実施例のロボット装置２０と同一のハード構成をしている。したがって、重複した説明を回避するため、第２実施例のロボット装置２０Ｂのハード構成については、第１実施例のロボット装置２０のハード構成と同一の符号を付し、その詳細な説明は省略する。【００５０】
第２実施例のロボット装置２０Ｂでは、図３の歩容生成処理ルーチンに代えて、図１１の歩容生成処理ルーチンを実行する。図１１のルーチンは、図３のルーチンのステップＳ１００の区間１〜区間Ｍの各区間Ｊの任意の時刻ｔにおけるゼロモーメント位置のｘ，ｙ成分ｘ(J)（ｔ），ｙ(J)（ｔ）を変更した点や、ステップＳ１２０，Ｓ１５０，Ｓ１６０で二足歩行ロボット２２の重心のｚ，ｘ，ｙ成分ｚ(J)（ｔ），ｘ(J)（ｔ），ｙ(J)（ｔ）の演算に用いられる式を変更した点を除いて図３のルーチンと同一である。したがって、以下、異なる処理を中心に説明する。なお、同一の処理については同一のステップ番号を付した。【００５１】
図１１の歩容生成処理ルーチンが実行されると、図３の歩容生成処理ルーチンのステップＳ１００の処理と同様に、区間１〜区間Ｍの各区間Ｊの任意の時刻ｔにおける二足歩行ロボット２２のゼロモーメント位置（ＺＭＰ）のｘ，ｙ成分ｐｘ(J)（ｔ），ｐｙ(J)（ｔ）や、歩行開始時刻ｔ0および歩行終了時刻ｔfにおける二足歩行ロボット２２の重心のｘ，ｙ成分ｘ（ｔ0），ｙ（ｔ0），ｘ（ｔf），ｙ（ｔf），歩行開始時刻ｔ0や時刻ｔ1〜歩行終了時刻ｔfの各時刻ｔjにおける重心のｚ成分ｚ（ｔ0），ｚ（ｔj）（１≦ｊ≦ｆ）およびその変化速度（ｚ（ｔ0）の一階微分），（ｚ（ｔj）の一階微分），二足歩行ロボット２２の足の位置など制御に必要などデータを入力する処理を実行する（ステップＳ１００ｂ）。ここで、各区間Ｊの任意の時刻ｔにおけるゼロモーメント位置（ＺＭＰ）のｘ，ｙ成分ｐｘ(J)（ｔ），ｐｙ(J)（ｔ）として、図３の歩容生成ルーチンではそれぞれ式（３３），（３４）で表わされるｎ１次式，ｎ２次式を用いるものとしたが、このルーチンでは、それぞれ式（６７），（６８）により表わされる１次式を用いるものとした。【００５２】
【数３４】
2008105506.tif 000036
【００５３】
こうしてデータを入力すると、区間Ｊに値１を設定すると共に（ステップＳ１１０）、時刻ｔj-1，ｔjにおける重心のｚ成分ｚ（ｔj-1），ｚ（ｔj）およびその変化速度（ｚ（ｔj-1）の一階微分），（ｚ（ｔj）の一階微分）と次式（６９）とに基づいて図１２に例示するの重心ｚ成分演算処理により区間Ｊの任意の時刻ｔにおける重心のｚ成分ｚ(J)（ｔ）を演算する（ステップＳ１２０ｂ）。図１２の重心ｚ成分演算処理では、時刻ｔj-1，ｔjにおける重心のｚ成分ｚ（ｔj-1），ｚ（ｔj）を式（６７）の右辺の「ｔ」を「ｔ−ｔj-1」に置き換えた式（７０）に代入した２つの方程式と、時刻ｔj-1，ｔjにおける重心のｚ成分ｚ（ｔj-1），ｚ（ｔj）の変化速度（ｚ（ｔj-1）の一階微分），（ｚ（ｔj）の一階微分）を式（６９）の両辺を「ｔ」で微分したものの右辺の「ｔ」を「ｔ−ｔj-1」に置き換えた式（７１）に代入した２つの方程式と、の４つの方程式を連立して解くことにより、区間Ｊの「Ｃz3(J)」，「Ｃz4(J)」，「ａ3(J)」，「ａ2(J)」を演算すると共に（ステップＳ５００）、演算した区間Ｊの「Ｃz3(J)」，「Ｃz4(J)」，「ａ3(J)」，「ａ2(J)」を式（７０）に代入して区間Ｊの任意の時刻ｔにおける重心のｚ成分ｚ(J)（ｔ）を演算して（ステップＳ５１０）、重心ｚ成分演算処理を終了する。ここで、式（６９），（７０）中、「ＡｉｒｙＡｉ」，「ＡｉｒｙＢｉ」は、Ａｉｒｙ関数であり、それぞれ式（７２），（７３）により表わされる。また、「Ｇｉ」は、Ｓｃｏｒｅｒ関数であり、式（７４）により表わされる。さらに、式（７２）〜（７４）中、「φ2」は式（７５）により表わされる。式（７２）中、「Ｋ」は第２種変形Ｂｅｓｓｅｌ関数であり、「Ｋ1/3」は式（７６）における「ν」に１／３を設定したものにより表わされる。式（７３），（７６）中、「Ｉ」は第１種変形Ｂｅｓｓｅｌ関数であり、式（７３）中、「Ｉ1/3」，「Ｉ-1/3」は、それぞれ式（７７）における「ν」に１／３，−１／３を設定したものにより表わされる。式（７４）中、「Γ」はＧａｍｍａ関数である。式（７６），（７７）中、「φ3」は式（７８）により表わされる。式（７１）中、「ＡｉｒｙＡｉＰｒｉｍｅ」，「ＡｉｒｙＢｉＰｒｉｍｅ」，「ＧｉＰｒｉｍｅ」は、それぞれ「ＡｉｒｙＡｉ」，「ＡｉｒｙＢｉ」，「Ｇｉ」の微分である。各区間Ｊの重心のｚ成分ｚ(J)（ｔ）の演算の際に式（６９）を用いる理由については後述する。なお、ステップＳ５００の連立方程式を解く処理は、第１実施例と同様に、Ｎｅｗｔｏｎ法などにより行なうことができる。こうして区間Ｊの任意の時刻ｔにおける重心のｚ成分ｚ(J)（ｔ）を演算すると、区間Ｊが区間Ｍであるか否かを判定し（ステップＳ１３０）、区間Ｊが区間Ｍでないときには、区間Ｊに値１を加えて（ステップＳ１４０）、ステップＳ１２０ｂに戻る。このようにして、区間１〜区間Ｍの各区間Ｊの任意の時刻ｔにおける重心のｚ成分ｚ(J)（ｔ）を演算するのである。【００５４】
【数３５】
2008105506.tif 000037
【数３６】
2008105506.tif 000038
【数３７】
2008105506.tif 000039
【数３８】
2008105506.tif 000040
【数３９】
2008105506.tif 000041
【００５５】
そして、ステップＳ１３０で区間Ｊが区間Ｍであると判定されると、演算した区間１〜区間Ｍの各区間Ｊの「ａ3(J)」，「ａ2(J)」と、各区間Ｊの任意の時刻ｔにおけるゼロモーメント位置（ＺＭＰ）のｘ成分ｐｘ(J)（ｔ）と、時刻ｔ0，ｔfにおける重心のｘ成分ｘ（ｔ0），ｘ（ｔf）と、次式（７９）とに基づいて図１３に例示する重心ｘ成分演算処理により各区間Ｊの任意の時刻ｔにおけるｘ成分ｘ(J)（ｔ）を演算すると共に（ステップＳ１５０ｂ）、各区間Ｊの「ａ3(J)」，「ａ2(J)」と、各区間Ｊの任意の時刻ｔにおけるゼロモーメント位置（ＺＭＰ）のｙ成分ｐｙ(J)（ｔ）と、時刻ｔ0，ｔfにおける重心のｙ成分ｙ（ｔ0），ｙ（ｔj）と、式（８０）とに基づいて図示しない重心ｙ成分演算処理により各区間Ｊの任意の時刻ｔにおける重心のｙ成分ｙ(J)（ｔ）を演算し（ステップＳ１６０ｂ）、演算した重心のｘ，ｙ，ｚ成分ｘ(J)（ｔ），ｙ(J)（ｔ），ｚ(J)（ｔ）や時刻ｔj-1，ｔjにおける二足歩行ロボット２２の足の位置などに基づいて各区間Ｊの任意の時刻ｔにおける二足歩行ロボット２２の各関節ｋの目標角度θk(J)（ｔ）を演算して（ステップＳ１７０）、歩容生成処理ルーチンを終了する。各区間Ｊの任意の時刻ｔにおける重心のｘ，ｙ成分ｘ(J)（ｔ），ｙ(J)（ｔ）は、前述の式（７９），（８０）が同様の構造の式であり、同様に演算することができるため、ここでは、重心のｘ成分ｘ(J)（ｔ）の演算処理について説明し、重心のｙ成分ｙ(J)（ｔ）の演算処理の詳細な説明は省略する。図１３の重心ｘ成分演算処理では、式（７９）の右辺の「ｔ」を「ｔ−ｔj-1」に置き換えた式（８１）に歩行開始時刻（区間１の開始時刻）ｔ0における重心のｘ成分ｘ（ｔ0）を代入すると共にその式（８１）の「ｊ」と「Ｊ」とに共に値１を設定した式（８２）と、式（８１）に歩行終了時刻（区間Ｍの終了時刻）ｔfにおける重心のｘ成分ｘ（ｔf）を代入すると共にその式（８１）の「ｊ」，「Ｊ」にそれぞれ「ｆ」，「Ｍ」を設定した式（８３）と、連続する二つの区間の境界における重心のｘ成分ｘ（ｔ）が連続する条件を満たす式（８４）により表わされる（Ｍ−１）個の式と、同じく連続する二つの区間の境界における重心のｘ成分ｘ（ｔ）の変化速度（ｘ（ｔ）の一階微分）が連続する条件を満たす式（８５）により表わされる（Ｍ−１）個の式と、の２Ｍ個の方程式を連立して解くことにより、各区間Ｊの「Ｃx3(J)」，「Ｃx4(J)」を演算すると共に（ステップＳ６００）、演算した各区間Ｊの「Ｃx3(J)」，「Ｃx4(J)」と「ａ3(J)」，「ａ2(J)」とを式（８１）に代入して各区間Ｊの任意の時刻ｔにおける重心のｘ成分ｘ(J)（ｔ）を演算して（ステップＳ６１０）、重心ｘ成分演算処理を終了する。ここで、式（７９）〜（８４）中、「ＡｉｒｙＡｉ」，「ＡｉｒｙＢｉ」は、それぞれ前述の式（７２），（７３）により表わされる。また、式（７２），（７３）中、「φ2」は式（７５）により表わされる。式（７２）中、「Ｋ1/3」は式（７６）における「ν」に１／３を設定したものにより表わされる。式（７３）中、「Ｉ1/3」，「Ｉ-1/3」は、それぞれ式（７７）における「ν」に１／３，−１／３を設定したものにより表わされる。式（７６），（７７）中、「φ3」は式（７８）により表わされる。式（８５）中、「Ａｉｒｙ���ｉＰｒｉｍｅ」，「ＡｉｒｙＢｉＰｒｉｍｅ」は、それぞれ「ＡｉｒｙＡｉ」，「ＡｉｒｙＢｉ」の微分である。ステップＳ６００の連立方程式を解く処理は、第１実施例と同様に、Ｎｅｗｔｏｎ法などにより行なうことができる。このように連続する二つの区間の境界における重心のｘ成分ｘ（ｔ）およびその変化速度（ｘ（ｔ）の一階微分）が連続する式を用いて各区間Ｊの「Ｃx3(J)」，「Ｃx4(J)」を演算すると共にこの「Ｃx3(J)」，「Ｃx4(J)」を用いて各区間Ｊの任意の時刻ｔにおけるｘ(J)（ｔ）を演算することにより、連続する二つの区間の境界やその近傍における重心のｘ成分ｘ（ｔ）およびその変化速度（ｘ（ｔ）の一階微分）を連続的なものにすることができる。同様の手法により、各区間Ｊの「Ｃy3(J)」，「Ｃy4(J)」を演算して各区間Ｊの任意の時刻ｔにおける重心のｙ成分ｙ(J)（ｔ）を演算することができる。【００５６】
【数４０】
2008105506.tif 000042
【数４１】
2008105506.tif 000043
【数４２】
2008105506.tif 000044
【数４３】
2008105506.tif 000045
【数４４】
2008105506.tif 000046
【数４５】
2008105506.tif 000047
【００５７】
次に、各区間Ｊの任意の時刻ｔにおける重心のｚ，ｘ，ｙ成分ｚ(J)（ｔ），ｘ(J)（ｔ），ｙ(J)（ｔ）の演算処理（ステップＳ１２０ｂ，Ｓ１５０ｂ，Ｓ１６０ｂ）において、式（６９），（７９），（８０）を用いることができる理由について説明する。第２実施例では、前述の式（５２），（５３）により表わされる運動方程式における重心のｚ成分ｚ（ｔ）に関する項を式（８６）で示したように１次式の逆数（１／（ａ1ｔ＋ａ0））で置き、この式（８６）を解析的に解くことにより式（６９）により表わされる任意の時刻ｔにおける重心のｚ成分ｚ（ｔ）の一般解を得ると共に、式（５２），（５３）における重心のｚ成分ｚ（ｔ）に関する項を式（８６）で示した１次式の逆数（１／（ａ1ｔ＋ａ0））で置き換えた式（８７），（８８）を解析的に解くことにより式（７９），（８０）により表わされる任意の時刻ｔにおける重心のｘ，ｙ成分ｘ（ｔ），ｙ（ｔ）の一般解を得て、式（６９），（７９），（８０）における「ａ3」，「ａ2」，「Ｃz3」，「Ｃz4」，「Ｃx3」，「Ｃx4」，「Ｃy3」，「Ｃy4」を決定し、任意の時刻ｔにおける重心のｚ，ｘ，ｙ成分ｚ（ｔ），ｘ（ｔ），ｙ（ｔ）を演算するものとした。以下、式（８６）〜（８８）の解法について説明する。なお、第２実施例では、式（８６）が本発明の補助方程式に相当する。【００５８】
【数４６】
2008105506.tif 000048
【数４７】
2008105506.tif 000049
【００５９】
まず、式（８６）の解法について説明する。式（８６）を解く際には、式（８６）を式（８９）のように変形し、変形した式（８９）の右辺を値０と置いた同次方程式を解く。この際、式（８９）を式（９０），（９１）を用いて変形すると、同次方程式は式（９２）により表わされる。この式（９２）は、Ａｉｒｙ方程式と呼ばれるものであり、解は式（９３）により表わされる。ここで、式（９３）中、「Ｃα2」，「Ｃβ2」は積分定数である。また、式（９３）中、「ＡｉｒｙＡｉ」，「ＡｉｒｙＢｉ」は、それぞれ式（７２），（７３）の「φ2」を「τ」に置き換えたものにより表わされる。したがって、式（８９）の同時方程式の同次解は、式（９４）により表わされる。また、式（８６）を式（９５），（９６）を用いて変形すると式（９７）が得られ、この解は式（９８）により表わされる。ここで、式（９８）中、「Ｇｉ」は、式（７４）の「φ2」を「τ」に置き換えたものにより表わされる。したがって、式（８９）の特解は、式（９９）により表わされる。これらより、式（８６）の一般解は、式（６９）のように表わすことができる。次に、式（８７）の解法について説明する。この式を変形すると、式（８９）と同様の構造の式になるから、重心のｘ成分ｘ（ｔ）の同次解は式（９４）と同様になる。また、重心のｘ成分のｘ（ｔ）の特解は、ゼロモーメント位置（ＺＭＰ）のｘ成分ｐｘ（ｔ）が式（６７）により表わされるものとすると、式（１００）により表わされる。これらより、重心のｘ成分ｘ（ｔ）の一般解は、式（７９）のように表わすことができる。次に、式（８８）の解法について説明する。式（８８）は、式（８７）と同様の構造の式であるから、式（８７）と同様に解くことができ、重心のｙ成分ｙ（ｔ）の一般解は、式（８０）のように表わすことができる。こうした式（６９），（７９），（８０）を用いて得られる任意の時刻ｔにおける重心のｘ，ｙ，ｚ成分ｘ（ｔ），ｙ（ｔ），ｚ（ｔ）を用いて二足歩行ロボット２２の歩容を生成することにより、重心のｚ成分ｚ（ｔ）の変化を伴って歩行することができる。これにより、より多様な歩行を行なうことができる。【００６０】
【数４８】
2008105506.tif 000050
【数４９】
2008105506.tif 000051
【数５０】
2008105506.tif 000052
【数５１】
2008105506.tif 000053
【数５２】
2008105506.tif 000054
【数５３】
2008105506.tif 000055
【数５４】
2008105506.tif 000056
【００６１】
以上説明した第２実施例のロボット装置２０Ｂによれば、運動方程式のうち任意の時刻ｔにおける重心のｚ成分ｚ（ｔ）に関する項を１次式の逆数に置き換えたものと、重心のｚ成分ｚ（ｔ）に関する項と１次式の逆数とからなる補助方程式と、を用いて任意の時刻ｔにおける重心のｘ，ｙ，ｚ成分ｘ（ｔ），ｙ（ｔ），ｚ（ｔ）を演算すると共に演算した重心のｘ，ｙ，ｚ成分ｘ（ｔ），ｙ（ｔ），ｚ（ｔ）を用いて二足歩行ロボット２２の歩容を生成するから、第１実施例と同様に、重心のｚ成分ｚ（ｔ）の変化を伴った歩容を生成することができる。この結果、より多様な歩容を生成することができるから、二足歩行ロボット２２はより多様な歩行を行なうことができる。【００６２】
第２実施例のロボット装置２０Ｂでは、各区間Ｊの任意の時刻ｔにおけるゼロモーメント位置（ＺＭＰ）のｘ，ｙ成分ｐｘ(J)（ｔ），ｐｙ(J)（ｔ）として、１次式を用いるものとしたが、それぞれｎ１次式，ｎ２次式を用いるものとしてもよい。【００６３】
第２実施例のロボット装置２０Ｂでは、図１１の歩容生成処理ルーチンのステップＳ１２０ｂで演算した区間１〜区間Ｍの各区間Ｊの「ａ3(J)」，「ａ2(J)」や、各区間Ｊの任意の時刻ｔにおけるゼロモーメント位置（ＺＭＰ）のｘ成分ｐｘ(J)（ｔ），時刻ｔ0，ｔfにおける重心のｘ成分ｘ（ｔ0），ｘ（ｔf），式（７９）に基づいて重心ｘ成分演算処理により各区間Ｊの「Ｃx3」，「Ｃx4」を演算して各区間Ｊの任意の時刻ｔにおけるｘ成分ｘ(J)（ｔ）を演算すると共に、各区間Ｊの「ａ3(J)」，「ａ2(J)」や、各区間Ｊの任意の時刻ｔにおけるゼロモーメント位置（ＺＭＰ）のｙ成分ｐｙ(J)（ｔ），時刻ｔ0，ｔfにおける重心のｙ成分ｙ（ｔ0），ｙ（ｔf），式（８０）に基づいて各区間Ｊの「Ｃy1」，「Ｃy2」を演算して各区間Ｊの任意の時刻ｔにおける重心のｙ成分ｙ(J)（ｔ）を演算するものとしたが、各区間Ｊの任意の時刻ｔにおける重心のｘ，ｙ成分ｘ(J)（ｔ），ｙ(J)（ｔ）の演算方法はこれに限られず、例えば、各区間Ｊの「ａ3(J)」，「ａ2(J)」と時刻ｔj-1，ｔj（１≦ｊ≦ｆ）における重心のｘ成分ｘ（ｔj-1），ｘ（ｔj）と式（７９）とに基づいて各区間Ｊの「Ｃx3」，「Ｃx4」を演算して各区間Ｊの任意の時刻ｔにおける重心のｘ成分ｘ(J)（ｔ）を演算すると共に、各区間Ｊの「ａ3(J)」，「ａ2(J)」と時刻ｔj-1，ｔjにおける重心のｙ成分ｙ（ｔj-1），ｙ（ｔj）と式（８０）とに基づいて各区間Ｊの「Ｃy3」，「Ｃy4」を演算して各区間Ｊの任意の時刻ｔにおける重心のｙ成分ｙ(J)（ｔ）を演算するものとしてもよい。【００６４】
第２実施例のロボット装置２０Ｂでは、二足歩行ロボット２２の両足のうち少なくとも一方の足を床面に接触させながら（以下、この状態を接地状態という）二足歩行ロボット２２を歩行させる際の歩容の生成について説明したが、接地状態と両足とも床面から離れる離床状態とを含んで二足歩行ロボット２２を走行させる際には、接地状態の歩容の生成について実施例と同様に行なうことができる。なお、離床状態の歩容の生成については、例えば、式（１０１）〜（１０３）と、離床を開始する離床開始時刻，離床を終了する離床終了時刻の重心と、離床中の所定時刻における重心および速度の連続条件と、を用いて行なうことができる。したがって、この変形例では、こうして生成した接地状態の歩容と離床状態の歩容とを組み合わせることにより、二足歩行ロボット２２を走行させる際の歩容を生成することができる。なお、二足歩行ロボット２２を歩行させるか走行させるかは、例えば、操作者によるジョイスティック４０の操作の程度などに応じて選択することができる。【００６５】
【数５５】
2008105506.tif 000057
【００６６】
第１実施例のロボット装置２０では、運動方程式のうち任意の時刻ｔにおける重心のｚ成分ｚ（ｔ）に関する項を１次式に置き換えたものと、重心のｚ成分ｚ（ｔ）に関する項と１次式とからなる補助方程式と、を用いて任意の時刻ｔにおける重心のｘ，ｙ，ｚ成分ｘ（ｔ），ｙ（ｔ），ｚ（ｔ）を演算するものとし、第２実施例のロボット装置２０Ｂでは、運動方程式のうち任意の時刻ｔにおける重心のｚ成分ｚ（ｔ）に関する項を１次式の逆数に置き換えたものと、重心のｚ成分ｚ（ｔ）に関する項と１次式の逆数とからなる補助方程式と、を用いて任意の時刻ｔにおける重心のｘ，ｙ，ｚ成分ｘ（ｔ），ｙ（ｔ），ｚ（ｔ）を演算するものとしたが、操作者によるジョイスティック４０の操作の程度に応じてこれらのうちいずれかを選択して任意の時刻ｔにおける重心のｘ，ｙ，ｚ成分ｘ（ｔ），ｙ（ｔ），ｚ（ｔ）を演算するものとしてもよい。【００６７】
第１実施例や第２実施例のロボット装置２０，２０Ｂでは、二足歩行ロボット２２が停止している状態で操作者によりジョイスティック４０が操作されたときの二足歩行ロボット２２の歩容を生成する処理について説明したが、ジョイスティック４０が操作されて二足歩行ロボット２２が歩行している最中にジョイスティック４０が再操作されたときには、その再操作に応じて二足歩行ロボット２２の歩容を再生成する処理を実行するものとしてもよい。【００６８】
第１実施例や第２実施例のロボット装置２０，２０Ｂでは、式（５６）や式（８６）に示したように、式（５２），（５３）により表わされる運動方程式のうち二足歩行ロボット２２の重心のｚ成分ｚ（ｔ）に関する項を時刻に対する１次式またはその逆数で置くものとしたが、１次以外のｎ次式（ｎは値０以上の整数）またはその逆数で置くものとしてもよい。この場合、ｎが値０のときであっても、重心のｚ成分ｚ（ｔ）そのものを定数として置く訳ではないため、重心のｚ成分ｚ（ｔ）の運動を加味することができる。【００６９】
第１実施例や第２実施例のロボット装置２０，２０Ｂでは、区間の境界として、単脚支持期から両脚支持期に移行する時刻を用いるものとしたが、これに限られず、如何なる時刻を用いるものとしてもよい。また、第１実施例や第２実施例のロボット装置２０，２０Ｂでは、式（６），（９），（１２），（１３），（３５）〜（３７），（４０）〜（４２），（４５）〜（４９），（６０）の分母の「ａ１」，「ａ１（Ｊ）」，「ａ１（Ｊ＋１）」，「ａ１（Ｍ）」については根号に入れないものとしたが、これらの分母を２乗して根号の内側に入れるものとしてもよい。これにより、プログラム解析上で解がより得やすくなると考えられる。【００７０】
第１実施例や第２実施例のロボット装置２０，２０Ｂでは、操作者によるジョイスティック４０の操作、即ちジョイスティック４０の傾斜方向や傾斜角に応じて二足歩行ロボット２２に歩行を行なわせるものとしたが、操作者は、ジョイスティック４０の操作に代えてまたは加えて、歩行開始時刻ｔ0や歩行終了時刻ｔf，連続する２つの区間の境界の時刻，これらの各時刻における重心のｚ成分やその変化速度，歩行開始時刻ｔ0や歩行終了時刻ｔfにおける重心のｘ，ｙ成分なども図示しないスイッチ等により設定できるものとしてもよい。【００７１】
第１実施例や第２実施例のロボット装置２０，２０Ｂでは、制御ユニット３２は、ジョイスティック４０と共に操作装置３０が備えるものとしたが、ジョイスティック４０と一体でないもの、例えば、二足歩行ロボット２２に搭載されるものとしてもよい。【００７２】
ここで、実施例や変形例の主要な要素と課題を発明の開示の欄に記載した発明の主要な要素との対応関係について説明する。第１実施例では、式（５２），（５３）により表わされる運動方程式における二足歩行ロボット２２の重心のｚ成分ｚ（ｔ）に関する項と１次式（ａ１ｔ＋ａ０）とからなる式（５６）の解としての式（３５）を用いて区間１〜区間Ｍの各区間Ｊの任意の時刻ｔにおける二足歩行ロボット２２の重心のｚ成分ｚ(J)（ｔ）を演算すると共に式（５２），（５３）における重心のｚ成分ｚ（ｔ）に関する項を１次式（ａ１ｔ＋ａ０）で置いた式（５７），（５８）の解としての式（４１），（４２）を用いて区間１〜区間Ｍの各区間Ｊの任意の時刻ｔにおける二足歩行ロボット２２の重心のｘ，ｙ成分ｘ(J)（ｔ），ｙ(J)（ｔ）を演算する処理を実行する制御ユニット３２が「目標位置演算手段」に相当し、演算した重心のｘ，ｙ，ｚ成分ｘ(J)（ｔ），ｙ(J)（ｔ），ｚ(J)（ｔ）を用いて二足歩行ロボット２２の各関節ｋの目標角度θk(J)（ｔ）を演算する処理を実行する制御ユニット３２が「歩容生成手段」に相当する。第２実施例では、式（５２），（５３）により表わされる運動方程式における二足歩行ロボット２２の重心のｚ成分ｚ（ｔ）に関する項と１次式の逆数（１／（ａ１ｔ＋ａ０））とからなる式（８６）の解としての式（６９）を用いて区間１〜区間Ｍの各区間Ｊの任意の時刻ｔにおける二足歩行ロボット２２の重心のｚ成分ｚ(J)（ｔ）を演算すると共に式（５２），（５３）における重心のｚ成分ｚ（ｔ）に関する項を１次式の逆数（１／（ａ１ｔ＋ａ０））で置いた式の解としての式（７９），（８０）を用いて区間１〜区間Ｍの各区間Ｊの任意の時刻ｔにおける二足歩行ロボット２２の重心のｘ，ｙ成分ｘ(J)（ｔ），ｙ(J)（ｔ）を演算する処理を実行する制御ユニット３２が「目標位置演算手段」に相当し、演算した重心のｘ，ｙ，ｚ成分ｘ(J)（ｔ），ｙ(J)（ｔ），ｚ(J)（ｔ）を用いて二足歩行ロボット２２の各関節ｋの目標角度θk(J)（ｔ）を演算する処理を実行する制御ユニット３２が「歩容生成手段」に相当する。なお、実施例や変形例の主要な要素と課題を発明の開示の欄に記載した発明の主要な要素との対応関係は、実施例が課題を発明の開示の欄に記載した発明を実施するための最良の形態を具体的に説明するための一例であることから、課題を発明の開示の欄に記載した発明の要素を限定するものではない。即ち、課題を発明の開示の欄に記載した発明についての解釈はその欄の記載に基づいて行なわれるべきものであり、実施例は課題を発明の開示の欄に記載した発明の具体的な一例に過ぎないものである。【００７３】
実施例では、ロボット装置２０の形態として説明したが、二足歩行ロボットの歩容を生成する歩容生成装置の形態や歩容生成方法の形態として用いるものとしてもよい。【００７４】
以上、本発明を実施するための最良の形態について実施例を用いて説明したが、本発明はこうした実施例に何等限定されるものではなく、本発明の要旨を逸脱しない範囲内において、種々なる形態で実施し得ることは勿論である。
【産業上の利用可能性】
【００７５】
本発明は、二足歩行ロボットの歩容生成装置の製造産業などに利用可能である。
【図２】
2008105506.tif 000070
【図３】
2008105506.tif 000071
【図４】
2008105506.tif 000072
【図５】
2008105506.tif 000073
【図６】
2008105506.tif 000074
【図７】
2008105506.tif 000075
【図８】
2008105506.tif 000076
【図１０】
2008105506.tif 000077
【図１１】
2008105506.tif 000078
【図１２】
2008105506.tif 000079
【図１３】
2008105506.tif 000080
【図１】
2008105506.tif 000081
【図９】
2008105506.tif 000082
【国際調査報告】
2008105506.tif 000083
2008105506.tif 000084