(57)【特許請求の範囲】
【請求項１】
ロボットが現在おこなっている第１の動作から第２の動作へと動作を切り替える場合にロボットの動作を制御するロボット制御装置であって、
ロボットの第２の動作の複数の時点における姿勢に係る第２の姿勢情報を取得する姿勢情報取得手段と、
ロボットの各関節が慣性力に影響を及ぼす大きさに応じて各関節の優先順位を記憶しておき、第２の姿勢情報に含まれる姿勢のうち、動作の切り替え前の第１の動作におけるロボットの第１の姿勢の関節の角度と関節の角度の差が、前記優先順位の高い順に最小の値となる姿勢を第２の姿勢として選択する選択手段と、
前記選択手段により選択された第２の姿勢に基づいて第１の動作から第２の動作へのロボットの動作の切り替えを制御する動作制御手段と、
を備えたことを特徴とするロボット制御装置。
【請求項２】
前記第２の姿勢と当該第２の姿勢のつぎの時点における姿勢との間の差異に基づいて、動作の切り替え前の第１の動作におけるロボットの第１の姿勢を補正する補正量を算出する算出手段をさらに備え、前記動作制御手段は、前記算出手段により算出された補正量に基づいて、ロボットの動作の切り替えを制御することを特徴とする請求項１に記載のロボット制御装置。
【請求項３】
ロボットの姿勢はロボットが転倒することなく立ち止まる参照姿勢を含み、ロボットの姿勢が参照姿勢に滑らかに遷移するようロボットの姿勢を制御する姿勢制御手段をさらに備え、前記動作制御手段は、前記姿勢制御手段により姿勢が制御されるロボットの動作の切り替えを制御することを特徴とする請求項１に記載のロボット制御装置。
【請求項４】
第１の動作はロボットが移動をおこなわない動作を含み、第１の動作を転倒することなくおこなうロボットの姿勢を制御する姿勢制御手段をさらに備え、前記動作制御手段は、前記姿勢制御手段により姿勢が制御されるロボットの動作の切り替えを制御することを特徴とする請求項１に記載のロボット制御装置。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、ロボットの動作を制御するロボット制御装置に関する。
【背景技術】
【０００２】
近年、ヒューマノイドロボット、特にヒューマノイドロボットの歩行は数多くの研究者の注意を引いている。このヒューマノイドロボットの歩行に関する研究の大部分は、ＺＭＰ（Zero Moment Point）規範を用いている。このＺＭＰ規範は、支持多角形の内部にＺＭＰを留めるように制御する。このアプローチでは、ヒューマノイドロボットやロボットの周囲環境を正確にモデリングし、微分方程式を解くことになる。ところが、このモデリングはアンノウンな要素がある場合には難しくなる。さらに、微分方程式を解くのに時間がかかるため、リアルタイム制御は困難なものとなる。
【０００３】
ひとつのアプローチとして、ＺＭＰ規範を用いない方法がある。たとえば、ロボットの可動部の周期運動を利用して、ロボットの姿勢が安定するよう周期運動の位相を調節する従来技術がある（特許文献１を参照）。ここで、可動部とは、ロボットの脚や腕である。
【０００４】
【特許文献１】特開２００５−９６０６８号公報
【発明の開示】
【発明が解決しようとする課題】
【０００５】
しかしながら、ヒューマノイドロボットは、さまざまな動作をおこない、ある動作から別の動作に動作を切り替える。たとえば、ヒューマノイドロボットは、キック動作から歩行動作に動作を切り替える。ヒューマノイドロボットが動作を切り替える場合には、その周期運動は影響を受け、真の周期運動から大きく逸れる可能性があるため、ヒューマノイドロボットの姿勢が不安定になる。
【０００６】
そのため、ヒューマノイドロボットを不安定な状態にすることなく、さまざまな動作の切り替えをおこなうことができる技術の開発が必要とされている。
【課題を解決するための手段】
【０００７】
本発明の一側面によれば、ロボットが現在おこなっている第１の動作から第２の動作へと動作を切り替える場合にロボットの動作を制御するロボット制御装置は、ロボットの第２の動作の複数の時点における姿勢に係る第２の姿勢情報を取得する姿勢情報取得手段と、ロボットの各関節が慣性力に影響を及ぼす大きさに応じて各関節の優先順位を記憶しておき、第２の姿勢情報に含まれる姿勢のうち、動作の切り替え前の第１の動作におけるロボットの第１の姿勢の関節の角度と関節の角度の差が、前記優先順位の高い順に最小の値となる姿勢を第２の姿勢として選択する選択手段と、前記選択手段により選択された第２の姿勢に基づいて第１の動作から第２の動作へのロボットの動作の切り替えを制御する動作制御手段と、を備える。
【０００８】
さらに、上記ロボット制御装置は、動作の切り替え前の第１の動作におけるロボットの第１の姿勢に最も類似したロボットの第２の姿勢を第２の姿勢情報に基づいて選択する選択手段を備える。前記動作制御手段は、前記選択手段により選択された第２の姿勢に基づいてロボットの動作の切り替えを制御する。
【０００９】
さらに、上記ロボット制御装置は、前記第２の姿勢と当該第２の姿勢のつぎの時点における姿勢との間の差異に基づいて、動作の切り替え前の第１の動作におけるロボットの第１の姿勢を補正する補正量を算出する算出手段を備える。前記動作制御手段は、前記算出手段により算出された補正量に基づいて、ロボットの動作の切り替えを制御する。
【００１０】
さらに、上記ロボット制御装置では、ロボットの姿勢はロボットが転倒することなく立ち止まる参照姿勢を含む。また、上記ロボット制御装置は、ロボットの姿勢が参照姿勢に滑らかに遷移するようロボットの姿勢を制御する姿勢制御手段を備える。前記動作制御手段は、前記姿勢制御手段により姿勢が制御されるロボットの動作の切り替えを制御する。
【００１１】
さらに、上記ロボット制御装置では、前記ロボットは、２本脚のロボットであり、前記参照姿勢は、ロボットが一方の脚のみで単独で立っている歩幅が０である姿勢である。前記動作制御手段は、ロボットの姿勢が参照姿勢である場合にロボットの動作の切り替えがおこなわれるように制御する。
【００１２】
さらに、上記ロボット制御装置では、第１の動作はロボットが移動をおこなわない動作を含む。また、上記ロボット制御装置は、第１の動作を転倒することなくおこなうロボットの姿勢を制御する姿勢制御手段を備える。前記動作制御手段は、前記姿勢制御手段により姿勢が制御されるロボットの動作の切り替えを制御する。
【００１３】
本発明のもう一つの側面によれば、ロボットが現在おこなっている第１の動作から第２の動作へと動作を切り替える場合にロボットの動作を制御するロボット制御方法は、ロボットの第２の動作の複数の時点における姿勢に係る第２の姿勢情報を取得する姿勢情報取得工程と、第２の姿勢情報に基づいて第１の動作から第２の動作へのロボットの動作の切り替えを制御する動作制御工程と、を含む。
【発明の効果】
【００１４】
本発明によれば、ロボットの動作が別の動作に切り替えられる場合に切り替え後の動作の複数の時点におけるあらかじめ設定された姿勢に係る情報を取得し、取得した姿勢に係る情報に基づいてロボットの動作を切り替えるよう制御することとしたので、切り替え後の複数の時点の姿勢をあらかじめ設定し、その姿勢に基づいて動作の切り替えをおこなうことにより、ロボットが動作の切り替えを安定しておこなうことができるよう効率的に制御することができるという効果を奏する。
【００１５】
また、本発明によれば、取得された姿勢に係る情報に基づいて複数の時点におけるあらかじめ設定された姿勢のうち切り替え前の動作の姿勢に最も類似した姿勢を選択し、選択した姿勢に係る情報に基づいてロボットの動作を切り替えるよう制御することとしたので、最も類似した姿勢に基づいてロボットの動作を切り替えることにより、姿勢の大幅な変化を緩和し、ロボットが動作の切り替えを安定しておこなうことができるよう効率的に制御することができるという効果を奏する。
【００１６】
また、本発明によれば、切り替え前の動作の姿勢に最も類似した切り替え後の動作の姿勢と、当該切り替え後の動作の姿勢のつぎの時点における姿勢との間の差異に基づいて切り替え前の動作の姿勢から姿勢を補正する補正量を算出し、算出した補正量に基づいてロボットの動作を切り替えるよう制御することとしたので、切り替え後の動作の変化に基づいて姿勢を制御することにより、切り替え後の動作に迅速に動作を近づけることができるという効果を奏する。
【００１７】
また、本発明によれば、ロボットの姿勢をロボットが転倒することなく移動を停止した姿勢に遷移するように制御し、姿勢の制御がなされたロボットの動作に係る切り替えを実行するよう制御することとしたので、移動を伴う動作に係る切り替えを、ロボットが転倒することなく、安定しておこなうことができるようにロボットを制御することができるという効果を奏する。
【００１８】
また、本発明によれば、ロボットが転倒することなく移動を停止する姿勢は、２つの脚を有するロボットが一方の脚のみで立っており、ロボットの歩幅が０である姿勢であり、ロボットが転倒することなく移動を停止する姿勢からロボットの動作を別の動作を切り替えるよう制御することとしたので、ロボットの動作を別の動作に安定的に移行するよう制御することができるという効果を奏する。
【００１９】
また、本発明によれば、所定の動作をおこなっているロボットが転倒することなく移動を停止した状態を持続するようロボットの姿勢を制御し、姿勢の制御がなされた動作に係る切り替えを実行するよう制御することとしたので、移動を伴わない動作に係る切り替えを、ロボットが転倒することなく、安定しておこなうことができるようにロボットを制御することができるという効果を奏する。
【発明を実施するための最良の形態】
【００２０】
以下に添付図面を参照して、本発明に係るロボット制御装置の好適な実施例を詳細に説明する。なお、ここでは、２足歩行をおこなうヒューマノイドロボットをロボットの例として取り上げるが、４足歩行をおこなうロボットなど、その他のロボットに対して本発明を適用することとしてもよい。
【実施例】
【００２１】
図１は、本発明の概念について説明する図である。図１では、キック動作から歩行動作にロボットの動作を切り替える場合を例に挙げて説明するが、切り替えに係る動作はそれらの動作に限定されない。
【００２２】
ここでは、あらかじめ各動作に対して動作中のさまざまな姿勢を定義する複数のフレームが設定される。正確には、フレームはロボットの関節の角度などのパラメータを定義する。
【００２３】
図１の例では、キック動作に対してＰ０からＰ７までの８つのフレームが設定され、歩行動作に対してはＱ０からＱ１１まで１２のフレームが設定されている。しかしながら、フレームの数は任意である。フレームＰ０は、ロボットがキック動作を開始する前に静止状態で立っているロボットの姿勢に相当する。フレームＰ７は、ロボットがキック動作が終了した後に静止状態で立っているロボットの姿勢に相当する。フレームＱ０は、ロボットが歩行動作を開始する前に静止状態で立っているロボットの姿勢に相当する。
【００２４】
歩行動作のように、一連の姿勢が繰り返されるロボットの動作の場合には、Ｑ０からＱ１１までのフレームのうちいくつかのフレームでは、ロボットが倒れずに、また、動作をおこなうことなく静止して立つようにロボットの姿勢が設定される。
【００２５】
たとえば、歩行動作においては、フレームＱ１，Ｑ６，Ｑ１１の姿勢が上記姿勢に対応する。フレームＱ１とフレームＱ１１とは同じ姿勢である。すなわち、フレームＱ１，Ｑ１１においては、ロボットのリニア速度は０であり、ロボットは右脚のみで立っており、歩幅は０となっている。歩幅が０とは、ロボットの両脚が揃っていることを意味する。フレームＱ６においては、ロボットのリニア速度は０であり、ロボットは左脚のみで立っており、歩幅は０となっている。
【００２６】
フレームＱ１，Ｑ６，Ｑ１１においては、ロボットは単独で立っており、また、歩幅は０であるので、これらのフレームをリファレンスフレームと呼ぶこととする。これらのリファレンスフレームＱ１，Ｑ６，Ｑ１１を設定し、ロボットの姿勢がリファレンスフレームＱ１，Ｑ６，Ｑ１１の姿勢となるようロボットの姿勢を制御することにより、たとえ姿勢が不安定になった場合でも、姿勢を回復することができる。
【００２７】
フレームＰ０〜Ｐ７，Ｑ０〜Ｑ１１間の姿勢の切り替えは、フレーム間において姿勢を補間することによりおこなわれる。また、リファレンスフレーム以外のフレームに対応する姿勢は大まかに定義されたものであり、その姿勢はロボットが安定して歩行できるように随時修正される。
【００２８】
図２は、キック動作に対応するフレームＰ０〜Ｐ７および歩行動作に対応するフレームＱ０〜Ｑ１１の状態遷移図である。キック動作においては、フレームＰ０からフレームＰ７まで状態が一方向で遷移する。一方、歩行動作においては、フレームＱ０からリファレンスフレームＱ１（リファレンスフレームＱ１１と同じ）あるいはリファレンスフレームＱ６に状態が遷移することが可能である。また、リファレンスフレームＱ１あるいはリファレンスフレームＱ６からフレームＱ０に状態が遷移することもできる。
【００２９】
図１の例では、フレームＱ０からリファレンスフレームＱ１に状態が遷移する。その後、リファレンスフレームＱ１からリファレンスフレームＱ１１まで状態が順に遷移する。
【００３０】
図１では、ロボットの動作が別の動作に切り替えられる場合に、切り替えをおこなう時点での姿勢に最も近い姿勢が、切り替え後の動作を定義した姿勢の中から選択される。
【００３１】
図１には、ロボットの姿勢がフレームＰ４のキック動作の姿勢である場合に、キック動作から歩行動作への動作の切り替えがなされる場合が示されている。この場合、フレームＰ４の姿勢に最も近い姿勢である歩行動作のフレームが探索される。この例では、フレームＱ７が探索されたものとする。
【００３２】
その後、フレームＱ７の姿勢と、フレームＱ７に引き続くフレームであるフレームＱ８の姿勢との間の差異に基づいて、フレームＰ４の姿勢の補正量が算出される。キック動作から歩行動作への動作の切り替えは、算出された補正量とフレームＰ４の姿勢とに基づいておこなわれる。
【００３３】
図３は、補正量の算出処理について説明する図である。ここでは、説明の簡略化のためロボットの腕の動きにのみ注目している。さらに、ここでは、動作Ｍ1から動作Ｍ2に動作が切り替えられるものとする。
【００３４】
ここで、姿勢ｆは、ロボットが動作Ｍ1を実行中に動作の切り替えをおこなう際のロボットの姿勢である。姿勢ｋは、動作の切り替えがない場合に動作Ｍ1において姿勢ｆから遷移する姿勢である。また、姿勢ｂは、切り替え後の動作Ｍ2の姿勢のうち、姿勢ｆに最も近い姿勢として選択された姿勢である。また、姿勢ｄは、動作の切り替えがない場合に動作Ｍ2において姿勢ｂから遷移する姿勢である。
【００３５】
ロボットの動作は以下のようにして表現することができる。
【数１】
0004812426.tif 000002
【００３６】
ここで、Ｍ1jおよびＭ2jは、それぞれ動作Ｍ1および動作Ｍ2における関節ｊ（ｊ＝０〜ｍ−１：ｍは関節の数）の動きを表し、αijはβijは、それぞれ動作Ｍ1および動作Ｍ2においてフレームｉ（ｉ＝０〜ｎ，０〜ｚ：ｎおよびｚは動作Ｍ1および動作Ｍ2において定義されたフレームの数）の姿勢を定義する関節ｊの角度を表す。
【００３７】
また、ｐiおよびｑiは、それぞれ動作Ｍ1および動作Ｍ2においてフレーム間の姿勢の遷移を定義する遷移パターンであり、ｐiおよびｑiは０から１まで変化する。式（２）および式（４）において、ｋpiおよびｋqiは、姿勢が遷移する速度を規定する正の定数であり、ｔpiおよびｔqiは、姿勢の遷移が始まる時間である。δpiは、ｔ≧ｔpiの場合１であり、時間ｔがｔ≧ｔpiを満足しない場合０である。また、δqiは、ｔ≧ｔqiの場合１であり、時間ｔがｔ≧ｔqiを満足しない場合０である。
【００３８】
そして、ロボットの動作の切り替えは、以下のように表される。
【数２】
0004812426.tif 000003
【００３９】
ここで、Ｍjは、ロボットの動作が切り替えられる場合の関節ｊの動きを表す。式（５）から分かるように、姿勢ｄの関節の角度は、姿勢ｆの角度αfjに姿勢ｂから姿勢ｄへの変化分βdj−βbjを加えた角度となる。このように、切り替え後の動作の変化に基づいて姿勢を制御することにより、ロボットの動作を切り替え後の動作に迅速に近づけることができる。
【００４０】
なお、ここでは、ロボットの姿勢がフレームで定義された姿勢である場合にロボットの動作の切り替えをおこなうこととしているが、動作の切り替えのタイミングはこれに限定されず、任意のタイミングでおこなうこととしてもよい。
【００４１】
その場合、ロボットの動作の切り替えは、以下のように表される。
【数３】
0004812426.tif 000004
【００４２】
ここで、ｓは、動作の切り替えをロボットがおこなう場合の任意の時点での姿勢であり、αsjは、関節ｊの角度を検出するセンサにより得られた任意の時点での関節ｊの角度である。
【００４３】
このように、切り替え後の動作における複数の時点のあらかじめ設定されたフレームの情報を取得し、取得したフレームの情報に基づいてロボットの動作を切り替えるよう制御することとしたので、ロボットが動作の切り替えを安定しておこなうことができるよう効率的に制御することができる。
【００４４】
なお、ここでは、ロボットの動作が移動を伴う動作であることとしているが、ロボットの動作は移動を伴う動作に限定されない。たとえば、ロボットの動作は、荷物を持ち上げる動作を含んでもよい。
【００４５】
図４は、ロボットが荷物を持ち上げる動作を示す図である。図４には、３つのフレームＲ０，Ｒ１，Ｒ２が示してある。各フレームは、荷物を持ち上げる動作におけるロボットの姿勢を定義している。この荷物を持ち上げる動作は、ロボットが移動する動作を含んでいないが、式（６）を用いることにより動作の切り替えが実行され得る。
【００４６】
図５は、本実施例に係るロボットの概略図である。このロボットは、胴体２０、胴体に備えられたジャイロセンサ６０、右脚３０Ｒおよび左脚３０Ｌの２本の脚を有する。また、各脚は６つの関節を有する。すなわち、各脚の自由度は６である。なお、関節の数は任意である。
【００４７】
関節は、ピッチ腰関節１０、右ヨー股関節１１Ｒ、左ヨー股関節１１Ｌ、右ロール股関節１２Ｒ、左ロール股関節１２Ｌ、右ピッチ股関節１３Ｒ、左ピッチ股関節１３Ｌ、右ピッチ膝関節１４Ｒ、左ピッチ膝関節１４Ｌ、右ピッチ足首関節１５Ｒ、左ピッチ足首関節１５Ｌ、右ロール足首関節１６Ｒ、左ロール足首関節１６Ｌを含む。各関節には、モータ（図示せず）が組み込まれている。各関節のモータは、それぞれの関節の動きを制御する。
【００４８】
ピッチ腰関節１０は、胴体２０の前後の動き（ピッチング）を制御する。右ヨー股関節１１Ｒおよび左ヨー股関節１１Ｌは、それぞれの脚の付け根部分におけるロボットの左右に回転する動き（ヨーイング）を生じさせる。
【００４９】
右ロール股関節１２Ｒおよび左ロール股関節１２Ｌは、それぞれの脚の付け根部分におけるロボットの横向きの回転（ローリング）を生じさせる。右ピッチ股関節１３Ｒおよび左ピッチ股関節１３Ｌは、それぞれの脚の付け根部分におけるロボットの前後の回転（ピッチング）を生じさせる。
【００５０】
また、右ピッチ膝関節１４Ｒおよび左ピッチ膝関節１４Ｌは、それぞれの膝部分におけるロボットの前後の動き（ピッチング）を生じさせる。右ピッチ足首関節１５Ｒおよび左ピッチ足首関節１５Ｌは、それぞれの足首部分におけるロボットの前後の動き（ピッチング）を生じさせる。右ロール足首関節１６Ｒおよび左ロール足首関節１６Ｌは、それぞれの足首部分におけるロボットの横向きの動き（ローリング）を生じさせる。
【００５１】
また、それぞれの脚には、足裏が取り付けられている。図５には、左脚３０Ｌに取り付けられた足裏４０が示されている。それぞれの足裏には、４つの力センサが組み込まれている。なお、力センサの数は任意である。図５には、足裏４０に備えられた力センサ５０ａ〜５０ｄが示されている。これらの力センサは、足裏４０が床面から受ける反力を測定する。
【００５２】
ジャイロセンサ６０は、横向き（ローリング）方向および前後（ピッチング）方向の胴体２０の回転角度を測定する。力センサにより測定された反力およびジャイロセンサ６０により測定された回転角度は、ロボットの動きのフィードバック制御に用いられる。
【００５３】
なお、ここでは、ロボットの下半身にある関節について説明したが、ロボットが頭部や腕を有する場合もある。ロボットが頭部や腕を有する場合には、このロボットは、一般に首関節や２つの肩関節、２つの肘関節、２つの手首関節を備える。動作切り替え時のこれらの関節の動きは、式（６）を用いることにより算出される。
【００５４】
図６は、本実施例によるロボット制御システムの機能ブロック図である。このロボット制御システムは、外部端末装置１００とロボット１１０とを含む。
【００５５】
外部端末装置１００は、ロボットの動作を管理するオペレータにより操作されるパーソナルコンピュータなどである。この外部端末装置１００は、ロボット１１０との間で通信をおこなう。この通信は、さまざまな種類の情報の授受を含むものである。
【００５６】
この外部端末装置１００は、あらかじめ設定したロボット１１０のフレーム情報および／またはロボット１１０への指令情報などをロボット１１０に送信したり、ロボット１１０からロボット１１０の状態（姿勢や速度など）に係る情報などを受信する。ロボット１１０から得られた情報は、表示装置（図示せず）に表示される。
【００５７】
ロボット１１０は、たとえば２本脚のヒューマノイドロボットである。このロボット１１０は、ジャイロセンサ１１１、ジャイロセンサ制御部１１２、関節１１３1〜１１３n、関節制御部１１４1〜１１４n（ｎは自然数）、力センサ１１５1〜１１５m（ｍは自然数）、力センサ制御部１１６1〜１１６m、通信インターフェース１１７、メモリ１１８、中央制御部１１９を有する。
【００５８】
ジャイロセンサ１１１は、図３に示したジャイロセンサ６０と同様の機能を有する。このジャイロセンサ１１１は、ロボット１１０の胴体２０に備えられ、横向き（ローリング）方向および前後（ピッチング）方向の胴体２０の回転角度を測定する。ジャイロセンサ制御部１１２は、ジャイロセンサ１１１の機能を制御するとともに、ジャイロセンサ１１１により測定された回転角度の情報を中央制御部１１９に送信する。このジャイロセンサ１１１は、図５に示したジャイロセンサ６０に対応するものである。
【００５９】
ジャイロセンサ制御部１１２は、ジャイロセンサ１１１の機能を制御するとともに、ジャイロセンサ１１１により測定された回転角度の情報を中央制御部１１９に送信する。
【００６０】
関節１１３1〜１１３nは、ロボット１１０のさまざまな関節を動かすものである。モータ（図示せず）がこれらの関節を駆動させる。ジョイントには、図５で説明したピッチ腰関節１０、右ヨー股関節１１Ｒ、左ヨー股関節１１Ｌ、右ロール股関節１２Ｒ、左ロール股関節１２Ｌ、右ピッチ股関節１３Ｒ、左ピッチ股関節１３Ｌ、右ピッチ膝関節１４Ｒ、左ピッチ膝関節１４Ｌ、右ピッチ足首関節１５Ｒ、左ピッチ足首関節１５Ｌ、右ロール足首関節１６Ｒ、左ロール足首関節１６Ｌが含まれる。
【００６１】
関節制御部１１４1〜１１４nは、各関節１１３1〜１１３nの動作を制御する。特に、関節制御部１１４1〜１１４nは、関節１１３1〜１１３nが所定の時間に、所定の角速度で所定の角度だけ回転するよう制御する。この角度、角速度、時間は中央制御部１１９により指定される。
【００６２】
力センサ１１５1〜１１５mは、ロボット１１０の右脚および左脚の足裏に設けられる。この力センサ１１５1〜１１５mは、床面からの反力を測定する。また、この力センサ１１５1〜１１５mは、図５で説明した力センサ５０ａ〜５０ｄと同様の機能を有する。力センサ制御部１１６1〜１１６mは、力センサ１１５1〜１１５mの機能を制御するとともに、力センサ１１５1〜１１５mにより測定された反力の情報を中央制御部１１９に送信する。
【００６３】
通信インターフェース１１７は、外部端末装置１００との間で通信をおこなう。この通信インターフェース１１７は、外部端末装置１００との間で無線通信および／または有線通信をおこなう。
【００６４】
メモリ１１８は、さまざまな情報を記憶する。たとえば、メモリ１１８は、外部端末装置１００から受信した情報および／または外部端末装置１００に送信される情報を記憶するとともに、中央制御部１１９によりなされた種々の演算の結果に係る情報を記憶する。
【００６５】
中央制御部１１９は、ロボット１１０を全体制御する。この中央制御部１１９は、たとえば、外部端末装置１００から受信したフレーム情報を基にして、ロボット１１０が動作する際の各関節１１３1〜１１３nの回転開始時間、角速度、回転角などを算出し、その結果を関節制御部１１４1〜１１４nに送信する。
【００６６】
また、中央制御部１１９は、外部端末装置１００から通信インターフェース１１７を介してロボット１１０が実行中の動作を別の動作に変更する動作変更要求を受け付ける。そして、中央制御部１１９は、動作変更要求を受け付けた場合に、式（６）を用いて動作変更後の各関節の角度を算出し、算出した角度を関節制御部１１４1〜１１４nに送信する。
【００６７】
なお、ここでは、中央制御部１１９が角度を算出することとしているが、外部端末装置１００がそれらのパラメータを算出し、それらをロボット１１０に送信する構成としてもよい。そのような構成が採用される場合、外部端末装置１００は、各関節１１３1〜１１３nの角度を算出の算出に必要となる、ロボット１１０の現時点での各関節１１３1〜１１３nの角度の情報などを受信し、角度を算出する。そして、外部端末装置１００は、算出結果の情報を関節制御部１１４1〜１１４nに送信し、関節制御部１１４1〜１１４nは受信した算出結果に基づいて各関節１１３1〜１１３nの制御をおこなう。
【００６８】
以下に、中央制御部１１９がおこなうロボット制御処理について詳細に説明する。このロボット制御処理は、基本リカレントニューラルネットワーク回路を用いてフレーム間の姿勢の遷移を制御することを含む。ここで、基本リカレントニューラルネットワーク回路とは、フレーム間の姿勢の遷移を表現するＲＮＮ回路である。
【００６９】
まず、ニューロンの数式モデルについて説明する。図７は、ニューロンの数式モデルについて説明する図である。図７に示すニューロンモデルは、以下のような一次微分方程式（７）で表すことができる。
【数４】
0004812426.tif 000005
【００７０】
ここで、ｙiはニューロンｉの出力であり、εiは時間遅延定数であり、ｙjは重み係数ｃijで入力されるニューロンｊの出力である。時間遅延定数は、ステップ入力に対する応答遅れの程度を表す時定数に相当するものである。
【００７１】
図８は、基本ＲＮＮ回路の構成要素の定義について説明する図である。基本ＲＮＮ回路は、主な構成要素として、ニューロン、ワイヤ、ケーブル−Ｗ、ケーブル−Ｎ、スレショールド、スイッチャー、デッドニューロンを含む。
【００７２】
時間遅延定数がεで、初期値がｙ0であるニューロンは、以下のようにして定義される。
ニューロン：ｖａｒ  ｙ（ε）＝ｙ0．
ここで、ｖａｒは、ケーブル−Ｗ、ケーブル−Ｎ、そして、その他の構成要素を定義することを意味する。
【００７３】
また、ワイヤは、２つのニューロンを所定の重み係数で接続するために用いられる。たとえば、出力がｙ1であるニューロンと出力がｙ2であるニューロンとの間の接続は、以下のように表現される。
ワイヤ：ｙ2：＝Ｃ＊ｙ1．
【００７４】
ケーブル−Ｗは、ワイヤの重み係数を変更するために用いられる。時間遅延定数がεで、初期値がＶ0であるケーブル−Ｗは、以下のように定義される。
ケーブル−Ｗ：ｖａｒ  Ｃ（ε）＝Ｖ0．
ワイヤ：ｙ2：＝Ｃ＊ｙ1．
【００７５】
ケーブル−Ｎは、他のニューロンの時間遅延定数を変更するために用いられる。時間遅延定数がｅｐｓで、初期値がＷ0であるニューロンの時間遅延定数を変更する時間遅延定数がε、初期値がＶ0のケーブル−Ｎは、以下のように定義される。
ケーブル−Ｎ：ｖａｒ  ｅｐｓ（ε）＝Ｖ0．
ニューロン：ｖａｒ  ｙ（ｅｐｓ）＝Ｗ0．
【００７６】
スレショールドは、あるニューロンから出力された値ｙ1が所定の値ｘよりも大きい場合、あるいは、所定の値ｘよりも小さい場合に値ｙ1を入力値として受け入れるために用いられる。すなわち、このスレショールドは、それぞれ以下のように表される。
スレショールド：ｙ2：＝Ｃ＊（ｘ＞）ｙ1，
あるいは、
スレショールド：ｙ2：＝Ｃ＊（ｘ＜）ｙ1．
【００７７】
たとえば、ｘ＝１のときは、
スレショールド：ｙ2：＝Ｃ＊（１＞）ｙ1，
あるいは
スレショールド：ｙ2：＝Ｃ＊（１＜）ｙ1，
となる。
【００７８】
スイッチャーは、あるニューロンから出力された値ｙ3が所定の値ｘよりも大きい場合、あるいは、所定の値ｘよりも小さい場合に別のニューロンから出力された値ｙ1を入力値として受け入れるために用いられる。すなわち、このスレショールドは、それぞれ以下のように表される。
スイッチャー：ｙ2：＝ｉｆ（ｙ3＞ｘ）Ｃ＊ｙ1，
あるいは、
スイッチャー：ｙ2：＝ｉｆ（ｙ3＜ｘ）Ｃ＊ｙ1．
【００７９】
たとえば、ｘ＝１のときは、
スイッチャー：ｙ2：＝ｉｆ（ｙ3＞１）Ｃ＊ｙ1，
あるいは、
スイッチャー：ｙ2：＝ｉｆ（ｙ3＜１）Ｃ＊ｙ1，
となる。
【００８０】
上記スレショールドは、スイッチャーの一種と考えることもできる。また、デッドニューロンは、時間遅延定数が０であるニューロンのことである。
【００８１】
図９は、基本ＲＮＮ回路について説明する図である。この基本ＲＮＮ回路は、２つのニューロンｕおよびｎと、サブ回路Ｓとを含む。ニューロンｕは、単位定数を生成する。一方、ニューロンｎは、ニューロンｕの出力が重み係数Ｃｓのワイヤを介してニューロンｎに入力された場合に、一次多項式を生成する。
【００８２】
また、サブ回路Ｓに属するすべてのニューロンの時間遅延定数は０である。さらに、パラメータｓｗは、基本ＲＮＮ回路により生成される動作のオン／オフを切り替えるために用いられるものである。
【００８３】
図１０は、図９に示した基本ＲＮＮ回路の出力について説明する図である。図１０は、時間ｔsに所定の角速度ｋ＝ｃsｍで始まる１度の回転を表している。本発明では、複数のフレームが設定されるが、あるフレームからつぎのフレームへの遷移操作は時間ｔsに開始される。
【００８４】
さらに、時間遅延定数εが１である場合、出力ｖ1は、
ｖ1＝ｃsｔ−ｔs，
と表される。
【００８５】
フレーム間の姿勢の遷移は、２つのパラメータ、すなわち、開始時間ｔsと関節の角速度ｋとにより決定される。各関節の回転は、開始時間ｔsに角速度ｋで始まる基本運動と振幅とを考慮して実現される。
【００８６】
そして、フレームｉからフレームｉ＋１へとロボットの姿勢が遷移する場合の関節ｊiの動きは、以下のように表される。
【数５】
0004812426.tif 000006
【００８７】
ここで、ｃiは角度であり、ｋiは角速度であり、ｋi＝ｃsｍi≧０である。ｍiは、時間ｔiから時間ｔi+1までの関節の動きの速さを決定するパラメータである。この値は試行錯誤により決定される。さらに、δiは、ｔ≧ｔiの場合１であり、ｔがｔ≧ｔiを満足しない場合０である。
【００８８】
また、ロボット１１０の動作中に振動が発生する場合がある。このような振動は、ロボット１１０を不安定にする。このような振動を最小限に抑えるため、ジャイロセンサ１１１により測定された角速度を用いてフィードバック制御がおこなわれる。
【００８９】
さらに、胴体２０を床面に対して垂直に保つため、足裏に設けられた力センサ１１５1〜１１５mにより測定された反力を用いてもう１つのフィードバック制御がおこなわれる。これにより、図１に示したような、大まかに設定されたロボット１１０の歩行パターンが、なめらかで安定した歩行となるように補正される。
【００９０】
図１１は、ジャイロセンサ１１１あるいは力センサ１１５1〜１１５mからの入力を受け付けるコントローラを示す図である。このコントローラ１２０は、２次のコントローラであり、その状態空間表現は、一般に、以下のように表される。
【数６】
0004812426.tif 000007
【００９１】
ここで、ｘは、状態ベクトル、ｕは入力ベクトル、ｙは出力ベクトル、Ａはシステム行列、Ｂは入力行列、Ｃは出力行列である。なお、２次のコントローラは一例であり、他の次数のコントローラを用いることとしてもよい。後に示すコントローラ１２１，１２２もコントローラ１２０と同様の構成を有する。
【００９２】
また、式（１０）は、以下のように表現することができる。
【数７】
0004812426.tif 000008
【００９３】
さらにこの式は、以下のように変形することができる。
【数８】
0004812426.tif 000009
【００９４】
ここで、δi＝ｓｉｇｎ（ａii）である。式（１３）の左辺はニューロンからの出力を表し、右辺はニューロンに対する入力を表す。
【００９５】
図１１は、ｎが２の場合のＲＮＮ回路を示している。ここで、ｋi＝１＋δi、εi＝δi／ａii、ｄi＝δiｂi／ａii、ｆi＝δiａij／ａii（ｉ≠ｊ）である。このコントローラにおける各パラメータは、学習プロセスあるいは試行錯誤により適切な値に調節される。
【００９６】
最終的には、コントローラ１２０からのフィードバックを受け付ける場合の関節の制御パラメータは、式（８）と式（１１）とから、以下のように表現することができる。
【数９】
0004812426.tif 000010
【００９７】
図１２は、ジャイロセンサ６０（あるいは１１１）や力センサ１１５1〜１１５mからのフィードバックに基づいてロボット１１０の歩行を実現するニューラルネットワークを示す図である。図１２に示したニューラルネットワークには、図１１に示したコントローラ１２０，１２１，１２２が含まれている。
【００９８】
図１２のロボット１１０の模式図には、図５で説明したジャイロセンサ６０と、関節１２Ｒ〜１６Ｒ，１２Ｌ〜１６Ｌと、右脚３０Ｒおよび左脚３０Ｌの足裏に設けられた力センサ（右力センサおよび左力センサ）とが示されている。
【００９９】
図１１に示したコントローラは、上述のさまざまなセンサからの入力を受け付ける。たとえば、図１２に示すように、コントローラ１２０は右足３０Ｒの足裏に設けられた力センサからの入力を受け付け、右ピッチ股関節１３Ｒ、右ピッチ膝関節１４Ｒ、右ピッチ足首関節１５Ｒに対する制御パラメータを生成する。
【０１００】
また、コントローラ１２１は左脚３０Ｌの足裏に設けられた力センサからの入力を受け付け、左ピッチ股関節１３Ｌ、左ピッチ膝関節１４Ｌ、左ピッチ足首関節１５Ｌに対する制御信号を生成する。また、コントローラ１２２はジャイロセンサ６０からの入力を受け付け、右ピッチ足首関節１５Ｒおよび左ピッチ足首関節１５Ｌに対する制御パラメータを生成する。
【０１０１】
また、図１２におけるパラメータ「ピッチ」を変更することにより、歩幅を変更することができる。具体的には、パラメータ「ピッチ」は、ケーブル−Ｗを用いてワイヤの重み係数を変更することにより歩幅を変更する。
【０１０２】
また、このニューラルネットワークでは、各関節の各速度の連続性を保つため、各関節に対する出力に時間遅延定数がαであるニューロンを通過させる。このニューロンは、１次のローパスフィルタとして機能するものである。
【０１０３】
図１３は、所定の時間遅延定数を有するニューロンの働きについて説明する図である。時間遅延定数は、ステップ入力に対する応答遅れの程度を表す時定数に相当するものである。そのため、時間遅延定数αを有するニューロンを介して各関節に制御パラメータを出力することにより、各関節の角速度の急激な変化を抑制し、角速度の連続性を確保することができる。
【０１０４】
なお、ここでは、１次のローパスフィルタを構成するニューロンを用いることとしたが、ローパスフィルタの次数はこれに限定されない。また、各ニューロンの時間遅延定数を同一の値αとしているが、それぞれ異なる値としてもよい。また、時間遅延定数αは試行錯誤により得られる。
【０１０５】
つぎに、図６に示した中央制御部１１６がおこなうロボット１１０の姿勢の調節処理について詳しく説明する。図１４は、ロボット１１０が歩行動作をおこなう場合の調節処理について説明する図である。
【０１０６】
この調節処理においては、ロボット１１０の動作が歩行動作から他の動作へ、あるいは、他の動作から歩行動作へ切り替えられる場合に、ロボット１１０の歩幅がさまざまな値であっても安定的にロボット１１０の姿勢を制御できるようにするため、ロボット１１０にさまざまな歩幅で歩行をさせてパラメータの調節をおこなう。
【０１０７】
具体的には、ロボット１１０の歩幅を所定の値ずつ広げながらパラメータの調節をおこなう。図１４の例では、ロボット１１０の歩幅を２ｃｍずつ広げながらパラメータの調節をおこなう。
【０１０８】
ここで、ロボット１１０の姿勢は、各歩幅の場合において、フレームＱｉj（０≦ｉ≦６，０≦ｊ≦４）のように定義されている。ｉは、ロボット１１０が指定された歩幅で一歩歩行し、はじめに持ち上げた脚とは反対の脚が持ち上げられた状態でロボット１１０が静止するまでの姿勢を定義したフレームの番号である。また、ｊは、ロボット１１０の歩幅を広げてパラメータの調節をおこなう回数である。この場合、ｊの最大値は４であるので、歩幅を８ｃｍまで広げることになる。
【０１０９】
図１５は、ロボット１１０が歩行動作をおこなう場合の調節処理を説明するフローチャートである。図１５に示すように、まず、ロボット１１０の歩幅は０ｃｍに設定される（ステップＳ１０１）。この状態は、図１４におけるｊ＝０（すなわち、Ｑ０0〜Ｑ６0）の場合である。
【０１１０】
そして、フレームＱ０jにおけるロボット１１０の胴体のローリング角が調節される（ステップＳ１０２）。すなわち、ロボット１１０の関節の動きは、式（３）で説明したようにして表されるが、フレームＱ０jでは、以下のようにして関節の動きを補正することによりローリング角が調節される。
【数１０】
0004812426.tif 000011
ここで、Δβijは関節の動きの補正量である。
【０１１１】
続いて、フレームＱ０jからフレームＱ２jまでの間におけるロボット１１０の姿勢の安定性の調節とギアバックラッシュ補償とがおこなわれる（ステップＳ１０３）。具体的には、ロボット１１０の足裏に設置された力センサが検出した反力からロボット１１０の力の重心位置を算出し、ロボット１１０が安定して立つことができる範囲内にロボット１１０の重心が位置するようにΔβijが調節される。
【０１１２】
図１６は、力センサ５０ａ〜５０ｄを用いておこなわれる姿勢制御について説明する図である。ロボット１１０の脚が床面に着地している場合には、図１６に示すように、床面からの反力が各力センサ５０ａ〜５０ｄにより検出される。そして、検出された反力の重心位置（Ｇx，Ｇy）が以下ようにして算出される。
【数１１】
0004812426.tif 000012
そして、この重心位置が、ロボット１１０が安定して立つことのできる安定領域内に常にあるようにΔβijが調節される。
【０１１３】
また、ジャイロセンサ１１１により検出されたローリング角を用いてΔβijが調節される。具体的には、ローリング角が以下の評価関数を最小化するようΔβijが調節される。
【数１２】
0004812426.tif 000013
ここで、Ｊｙｒｏyは実際のローリング角であり、Ｊｙｒｏhは、ロボット１１０が垂直に立っているときのローリング角であり、ｔaおよびｔbは所定の時間である。
【０１１４】
その後、フレームＱ２jからフレームＱ３jまでの間において、床面に着地する際の脚の動きを制御するコントローラのゲインが調節される（ステップＳ１０４）。具体的には、フレームＱ３jにおいて着地時のショックを小さくするよう脚を柔らかに着地させるため、図１２に示したコントローラ２０，２１の入力に対する重み係数ｗを最大値ｗmaxに設定する。
【０１１５】
さらに、フレームＱ３jからフレームＱ５jまでの間において、ロボットが両脚で立っている場合および片脚を持ち上げる場合の脚の動きを制御するコントローラのゲインが調節される（ステップＳ１０５）。具体的には、フレームＱ３jからフレームＱ４jまでの間において着地後に床面を脚が確実に捉えることができるよう重み係数ｗが最大値ｗmaxの半分に低減される。
【０１１６】
また、フレームＱ４jからフレームＱ５jまでの間においてロボットが片足を持ち上げる際、もう一方の足が床面をさらに確実に捉えることができるよう、重み係数ｗが最小値ｗminに設定される。ここで、ｗmaxの値およびｗminの値は、ロボット１１０の胴体が床面に対して垂直になるよう試行錯誤により決定される。
【０１１７】
その後、フレームＱ５jからフレームＱ６jまでの間においてロボット１１０の胴体のローリング角の調節がおこなわれ、さらにロボット１１０がリファレンスフレームＱ６jの姿勢で動きを停止することができるように、各関節の角速度が調節される（ステップＳ１０６）。
【０１１８】
具体的には、力センサ５０ａ〜５０ｄが検出した反力からロボット１１０の力の重心位置を算出し、ロボット１１０が安定して立つことができる範囲内にロボット１１０の重心が位置するように式（１５）におけるΔβijが調節される。
【０１１９】
また、Δβijは、ロボット１１０の胴体のローリング角の時間平均が最も小さくなるように調節される。この調節は、ジャイロセンサ１１１が検出したローリング角を用いておこなわれる。また、各関節の角速度は、式（４）におけるｋqi、すなわち、図９に示した基本ＲＮＮ回路のｍを変化させることにより調節することができる。
【０１２０】
その後、現在の歩幅が８ｃｍ（すなわち、ｊ＝４）であるか否かが調べられ（ステップＳ１０７）、現在の歩幅が８ｃｍである場合には（ステップＳ１０７，Ｙｅｓ）、この姿勢の調節処理を終了する。
【０１２１】
現在の歩幅が８ｃｍでない場合には（ステップＳ１０７，Ｎｏ）、歩幅を２ｃｍ増加させ（ｊ＝ｊ＋１）（ステップＳ１０８）、ステップＳ１０２に移行して、新しく設定された歩幅でステップＳ１０２からステップＳ１０７の処理を繰り返す。
【０１２２】
なお、図１２には、ロボット１１０の歩行動作を生成するニューラルネットワークを示したが、他の動作を生成するニューラルネットワークも同様に構成することができる。たとえば、図１７は、図４に示した荷物を持ち上げる動作を生成するニューラルネットワークを示す図である。
【０１２３】
図４の例では、３つのフレームＲ０，Ｒ１，Ｒ２が設定されている。そして、図１７に示したニューラルネットワークは、３つのフレームＲ０，Ｒ１，Ｒ２間の姿勢の補間をおこなうため、２つの基本ＲＮＮ回路から構成される。
【０１２４】
なお、図１７には図示していないが、図１２に示したようなコントローラも備えられる。そして、力センサ５０ａ〜５０ｄにより得られた反力の情報に基づいてロボット１１０の姿勢の制御がおこなわれる。
【０１２５】
すなわち、力センサ５０ａ〜５０ｄが検出した反力からロボット１１０の力の重心位置を算出し、ロボット１１０が安定して立つことができる安定領域内に重心が位置するように、式（１５）におけるΔβijが調節される。
【０１２６】
図１７には、ロボット１１０が荷物を持ち上げる動作をおこなう場合に、ロボット１１０が安定して立つことができるように調節された右ロール足首関節１６Ｒの角度の変化の例が示されている。
【０１２７】
そして、次回ロボット１１０が荷物を持ち上げる動作をおこなう場合には、力センサ５０ａ〜５０ｄからの反力の情報を用いることなく、一回目の動作で調節された関節の角度を用い、ロボット１１０の動作を安定化させる。
【０１２８】
具体的には、一回目の動作で調節された関節の角度δ0とδ1とから係数ｃ0＝δ0、および、ｃ1＝δ1−δ0を算出し、算出した係数ｃ0およびｃ1を右ロール足首関節１６Ｒの動きを生成するニューラルネットワークの重み係数として設定する。
【０１２９】
なお、ここでは、右ロール足首関節１６Ｒの制御について説明したが、左ロール足首関節１６Ｌや右ピッチ足首関節１５Ｒ、左ピッチ足首関節１５Ｌなどの他の関節に対しても同様の制御をおこなう。
【０１３０】
また、ここでは、一回目の動作において力センサ５０ａ〜５０ｄにより検出された反力に基づいて関節の角度の調節をおこなうこととしているが、ジャイロセンサ１１１により検出されたロボット１１０の胴体の傾斜角に基づいて関節の角度の調節をおこなうこととしてもよい。
【０１３１】
なお、ロボット１１０のさまざまな動作は、図９に示した基本ＲＮＮ回路を用いて容易に生成することができる。図１８は、ロボット１１０のさまざまな動作を生成するニューラルネットワークについて説明する図である。
【０１３２】
図１０で説明したように、基本ＲＮＮ回路は、各フレーム間の姿勢の遷移を制御する。外部端末装置１００などから動作切り替え要求が受信された場合には、切り替え後の動作に対応する基本ＲＮＮ回路が選択され、選択された基本ＲＮＮ回路によりフレーム間の姿勢の遷移が制御される。
【０１３３】
つぎに、図６に示した中央制御部１１６がおこなうロボット１１０の動作切り替え処理の処理手順について説明する。図１９は、ロボット１１０の動作切り替え処理の処理手順を示すフローチャートである。
【０１３４】
図１９に示すように、外部端末装置１００などから動作切り替え要求が受信された場合に、切り替え前の姿勢が検出される（ステップＳ２０１）。具体的には、各関節の角度の情報が関節制御部１１４1〜１１４nにより検出され、検出された情報が中央制御部１１６に送信される。
【０１３５】
そして、切り替え後の動作のフレーム情報がメモリ１１８から取得される（ステップＳ２０２）。さらに、ロボット１１０が片脚立ちか否かが調べられる（ステップＳ２０３）。
【０１３６】
ロボット１１０が片脚立ちである場合には（ステップＳ２０３，Ｙｅｓ）、切り替え後の動作のフレームの中から、片脚立ちの姿勢であり、かつ、接地している脚（右脚／左脚）が同一であるフレームが抽出される（ステップＳ２０４）。上記条件に該当するフレームが複数ある場合には、それらすべてのフレームが抽出される。
【０１３７】
そして、抽出されたフレームの中から、下半身の関節の角度が切り替え前の関節の角度と最も近い姿勢であるフレームが選択される（ステップＳ２０５）。具体的には、図５に示した各関節の中からロボット１１０の慣性力に影響を及ぼす関節を選択し、その影響の大きさに応じて関節の優先順位を設定しておく（たとえば、股関節、膝関節、足首関節の順）。
【０１３８】
そして、優先順位が最も高い関節について、動作の切り替えの前後で関節の角度の比較をおこない、関節の角度の差が最も小さい姿勢のフレームが選択される。ここで、フレームが複数選択された場合には、２番目に優先順位の高い関節について動作の切り替えの前後での角度の比較をおこない、関節の角度の差が最も小さい姿勢のフレームが選択される。
【０１３９】
そして、２番目に優先順位の高い関節についても複数のフレームが選択された場合には、３番目に優先順位の高い関節について角度の比較をおこなう。このような処理が、フレームが１つだけ選択されるか、あるいは、優先順位が設定された関節すべてに対して角度の比較が終了するまで繰り返される。
【０１４０】
一方、ロボット１１０が片脚立ちの姿勢でない場合は（ステップＳ２０３，Ｎｏ）、ロボット１１０が両脚で立っていることを意味する。したがって、切り替え後の動作のフレームの中から、両脚立ちの姿勢のフレームが抽出される（ステップＳ２０６）。上記条件に該当するフレームが複数ある場合には、上記条件に該当するすべてのフレームが抽出される。
【０１４１】
そして、片脚立ちの姿勢の場合と同様にして、抽出されたフレームの中から、下半身の関節の角度が切り替え前の関節の角度と最も近い姿勢のフレームが選択される（ステップＳ２０７）。
【０１４２】
その後、ステップＳ２０５またはステップＳ２０７の処理により、最終的に複数のフレームが選択されたか否かが調べられる（ステップＳ２０８）。すなわち、優先順位を設定して下半身の各関節の角度の比較をおこなった結果、複数のフレームが選択された状態であるか否かが調べられる。
【０１４３】
そして、フレームが１つだけ選択された状態である場合には（ステップＳ２０８，Ｎｏ）、そのフレームにおける姿勢の情報に基づいて、式（６）を用いて姿勢の切り替え制御が実行され（ステップＳ２１０）、この動作切り替え処理が終了する。
【０１４４】
また、複数のフレームが選択された状態である場合には（ステップＳ２０８，Ｙｅｓ）、複数のフレームのうち上半身にある関節の角度が切り替え前の関節の角度に最も近い姿勢のフレームが選択される（ステップＳ２０９）。
【０１４５】
具体的には、ロボット１１０の上半身にある各関節の中からロボット１１０の慣性力に影響を及ぼす関節を選択し、その影響の大きさに応じて関節の優先順位を設定しておく（たとえば、肩関節、肘関節、手首関節の順）。
【０１４６】
そして、優先順位が最も高い関節について、動作の切り替えの前後で角度の比較をおこない、関節の角度の差が最も小さい姿勢のフレームが選択される。ここで、フレームが複数選択された場合には、２番目に優先順位の高い関節について動作の切り替えの前後で角度の比較をおこない、関節の角度の差が最も小さい姿勢のフレームが選択される。
【０１４７】
そして、２番目に優先順位の高い関節についてもフレームが複数選択された場合には、３番目に優先順位の高い関節について角度の比較をおこなう。このような処理が、フレームが１つだけ選択されるか、あるいは、優先順位が設定された関節すべてに対して角度の比較が終了するまで繰り返される。このような処理によっても、複数のフレームが選択される場合には、それらのフレームのうち任意の１つが選択される。
【０１４８】
その後、選択されたフレームにおける姿勢の情報に基づいて、式（６）を用いて姿勢の切り替え制御が実行され（ステップＳ２１０）、この動作切り替え処理が終了する。
【０１４９】
上述してきたように、本実施例では、ロボット１１０の中央制御部１１９は、ロボット１１０の動作が別の動作に切り替えられる場合に切り替え後の動作の複数の時点におけるあらかじめ設定された姿勢に係るフレーム情報を取得し、取得したフレーム情報に基づいてロボット１１０の動作を切り替える。その結果、切り替え後の複数の時点の姿勢をあらかじめ設定し、その姿勢に基づいて動作の切り替えをおこなうことにより、ロボット１１０が動作の切り替えを安定しておこなうことができるよう効率的に制御することができる。
【０１５０】
さらに、中央制御部１１９は、メモリ１１８から取得したフレーム情報に基づいて、複数の時点におけるあらかじめ設定された姿勢のうち切り替え前の動作の姿勢に最も類似した姿勢を選択し、選択した姿勢に係る情報に基づいてロボット１１０の動作を切り替える。その結果、最も類似した姿勢に基づいてロボット１１０の動作を切り替えることにより、ロボット１１０が姿勢の大幅な変化を緩和でき、動作の切り替えを安定しておこなうことができるよう効率的に制御することができる。
【０１５１】
さらに、中央制御部１１９は、式（６）を用いて、切り替え前の動作の姿勢に最も類似した切り替え後の動作の姿勢と、当該切り替え後の動作の姿勢のつぎの時点における姿勢との間の差異に基づいて、切り替え前の動作の姿勢からロボット１１０の姿勢を補正する補正量を算出し、算出した補正量に基づいてロボット１１０の動作を切り替える。その結果、切り替え後の動作の変化に基づいて姿勢を制御することにより、切り替え後の動作に迅速に動作を近づけることができる。
【０１５２】
さらに、中央制御部１１９は、ロボット１１０の姿勢を転倒することなく移動を停止した姿勢に遷移するように制御し、姿勢の制御がなされたロボット１１０の動作に係る切り替えを実行するよう制御する。その結果、歩行運動などを含んだ動作に係る切り替えを、ロボット１１０が転倒することなく、安定しておこなうことができる。
【０１５３】
さらに、転倒することなく移動を停止するロボット１１０の姿勢は、２つの脚を有するロボット１１０が一方の脚のみで立っており、ロボット１１０の歩幅が０である姿勢であり、中央制御部１１９は、ロボット１１０が転倒することなく移動を停止した際の姿勢においてロボット１１０の動作を切り替える。その結果、ロボット１１０の動作を安定的に切り替えることができる。
【０１５４】
さらに、中央制御部１１９は、ロボット１１０が荷物の持ち上げ動作など、所定の動作をおこなっている間に、ロボット１１０が転倒することなく移動を停止した状態を持続するようロボット１１０の姿勢を制御し、姿勢の制御がなされた動作に係る切り替えを実行する。その結果、ロボット１１０の動作を安定的に切り替えることができる。
【０１５５】
さて、これまで本発明の実施例について説明したが、本発明は上述した実施例に限定されず、特許請求の範囲に記載した技術的思想の範囲内において種々の異なる実施例にて実施されてもよいものである。
【０１５６】
また、本実施例において説明した各処理のうち、自動的におこなわれるものとして説明した処理の全部または一部を手動的におこなうこともでき、あるいは、手動的におこなわれるものとして説明した処理の全部または一部を公知の方法で自動的におこなうこともできる。
【０１５７】
この他、上記文書中や図面中で示した処理手順、制御手順、具体的名称、各種のデータやパラメータを含む情報については、特記する場合を除いて任意に変更することができる。
【０１５８】
また、図示した各装置の各構成要素は機能概念的なものであり、必ずしも物理的に図示のように構成されていることを要しない。すなわち、ロボット制御装置の分散・統合の具体的形態は図示のものに限られず、その全部または一部を、各種の負荷や使用状況などに応じて、任意の単位で機能的または物理的に分散・統合して構成することができる。
【０１５９】
さらに、ロボット制御装置にて行なわれる各処理機能は、その全部または任意の一部が、ＣＰＵおよび当該ＣＰＵにて解析実行されるプログラムにて実現され、あるいは、ワイヤードロジックによるハードウェアとして実現され得る。
【０１６０】
なお、本実施例で説明したロボット制御方法は、あらかじめ用意されたプログラムをコンピュータで実行することによって実現することができる。
【０１６１】
このプログラムは、インターネットなどのネットワークを介して配布することができる。また、このプログラムは、ハードディスク、フレキシブルディスク（ＦＤ）、ＣＤ−ＲＯＭ、ＭＯ、ＤＶＤなどのコンピュータで読み取り可能な記録媒体に記録され、コンピュータによって記録媒体から読み出されることによって実行することもできる。
【０１６２】
（付記１）ロボットが現在おこなっている第１の動作から第２の動作へと動作を切り替える場合にロボットの動作を制御するロボット制御装置であって、
ロボットの第２の動作の複数の時点における姿勢に係る第２の姿勢情報を取得する姿勢情報取得手段と、
第２の姿勢情報に基づいて第１の動作から第２の動作へのロボットの動作の切り替えを制御する動作制御手段と、
を備えたことを特徴とするロボット制御装置。
【０１６３】
（付記２）動作の切り替え前の第１の動作におけるロボットの第１の姿勢に最も類似したロボットの第２の姿勢を第２の姿勢情報に基づいて選択する選択手段をさらに備え、前記動作制御手段は、前記選択手段により選択された第２の姿勢に基づいてロボットの動作の切り替えを制御することを特徴とする付記１に記載のロボット制御装置。
【０１６４】
（付記３）動作の切り替え前の第１の動作におけるロボットの第１の姿勢に最も類似した切り替え後の動作の姿勢と当該切り替え後の動作の姿勢のつぎの時点における姿勢との間の差異に基づいて、動作の切り替え前の第１の動作におけるロボットの第１の姿勢を補正する補正量を算出する算出手段をさらに備え、前記動作制御手段は、前記算出手段により算出された補正量に基づいて、ロボットの動作の切り替えを制御することを特徴とする付記２に記載のロボット制御装置。
【０１６５】
（付記４）ロボットの姿勢はロボットが転倒することなく立ち止まる参照姿勢を含み、ロボットの姿勢が参照姿勢に滑らかに遷移するようロボットの姿勢を制御する姿勢制御手段をさらに備え、前記動作制御手段は、前記姿勢制御手段により姿勢が制御されるロボットの動作の切り替えを制御することを特徴とする付記１に記載のロボット制御装置。
【０１６６】
（付記５）前記ロボットは、２本脚のロボットであり、前記参照姿勢は、ロボットが一方の脚のみで単独で立っている歩幅が０である姿勢であり、前記動作制御手段は、ロボットの動作の切り替えを、ロボットの姿勢が参照姿勢である場合に当該切り替えがおこなわれるように制御することを特徴とする付記４に記載のロボット制御装置。
【０１６７】
（付記６）第１の動作はロボットが移動をおこなわない動作を含み、第１の動作を転倒することなくおこなうロボットの姿勢を制御する姿勢制御手段をさらに備え、前記動作制御手段は、前記姿勢制御手段により姿勢が制御されるロボットの動作の切り替えを制御することを特徴とする付記１に記載のロボット制御装置。
【０１６８】
（付記７）ロボットが現在おこなっている第１の動作から第２の動作へと動作を切り替える場合にロボットの動作を制御するロボット制御方法であって、
ロボットの第２の動作の複数の時点における姿勢に係る第２の姿勢情報を取得する姿勢情報取得工程と、
第２の姿勢情報に基づいて第１の動作から第２の動作へのロボットの動作の切り替えを制御する動作制御工程と、
を含んだことを特徴とするロボット制御方法。
【産業上の利用可能性】
【０１６９】
以上のように、本発明に係るロボット制御装置は、ロボットがある動作の実行中に動作の切り替えを安定しておこなうことができるよう効率的に制御することができるロボット制御システムに対して有用である。
【図面の簡単な説明】
【０１７０】
【図１】本発明の概念について説明する図である。
【図２】キック動作および歩行動作における各フレームの状態遷移図である。
【図３】ロボットの姿勢の補正量の算出処理について説明する図である。
【図４】荷物を持ち上げるロボットを示す図である。
【図５】ロボットの概略図である。
【図６】本実施例に係るロボット制御システムの機能ブロック図である。
【図７】ニューロンの数式モデルについて説明する図である。
【図８】基本ＲＮＮ回路の構成要素の定義について説明する図である。
【図９】基本ＲＮＮ回路について説明する図である。
【図１０】図９に示した基本ＲＮＮ回路の出力について説明する図である。
【図１１】図５に示したジャイロセンサあるいは力センサからの入力を受け付けるコントローラを示す図である。
【図１２】ジャイロセンサおよび力センサのフィードバックに基づいてロボットの歩行を実現するニューラルネットワークを示す図である。
【図１３】所定の時間遅延定数を有するニューロンの働きについて説明する図である。
【図１４】ロボットが歩行動作をおこなう場合の姿勢の調節処理について説明する図である。
【図１５】ロボットが歩行動作をおこなう場合の姿勢の調節処理の処理手順を示すフローチャートである。
【図１６】図５に示した力センサを用いておこなわれる姿勢制御について説明する図である。
【図１７】図４に示した荷物を持ち上げる動作を生成するニューラルネットワークを示す図である。
【図１８】ロボットのさまざまな動作を生成するニューラルネットワークについて説明する図である。
【図１９】ロボットの動作切り替え処理の処理手順を示すフローチャートである。
【符号の説明】
【０１７１】
１０    ピッチ腰関節
１１Ｒ    右ヨー股関節
１１Ｌ    左ヨー股関節
１２Ｒ    右ロール股関節
１２Ｌ    左ロール股関節
１３Ｒ    右ピッチ股関節
１３Ｌ    左ピッチ股関節
１４Ｒ    右ピッチ膝関節
１４Ｌ    左ピッチ膝関節
１５Ｒ    右ピッチ足首関節
１５Ｌ    左ピッチ足首関節
１６Ｒ    右ロール足首関節
１６Ｌ    左ロール足首関節
２０    胴体
３０Ｒ    右脚
３０Ｌ    左脚
４０    足裏
５０ａ〜５０ｄ，１１５1〜１１５m    力センサ
６０，１１１    ジャイロセンサ
１００    外部端末装置
１１０    ロボット
１１２    ジャイロセンサ制御部
１１３1〜１１３n    関節
１１４1〜１１４n    関節制御部
１１６1〜１１６m    力センサ制御部
【図１】
0004812426.tif 000014
【図２】
0004812426.tif 000015
【図３】
0004812426.tif 000016
【図４】
0004812426.tif 000017
【図５】
0004812426.tif 000018
【図６】
0004812426.tif 000019
【図７】
0004812426.tif 000020
【図８】
0004812426.tif 000021
【図９】
0004812426.tif 000022
【図１０】
0004812426.tif 000023
【図１１】
0004812426.tif 000024
【図１２】
0004812426.tif 000025
【図１３】
0004812426.tif 000026
【図１４】
0004812426.tif 000027
【図１５】
0004812426.tif 000028
【図１６】
0004812426.tif 000029
【図１７】
0004812426.tif 000030
【図１８】
0004812426.tif 000031
【図１９】
0004812426.tif 000032