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