(57)【要約】【課題】立脚状態を安定して維持することができる脚式ロボット、及びその制御方法を提供すること。【解決手段】本発明の一態様にかかる脚式ロボットは、足首関節が設けられた脚部１０と、脚部１０に連結された胴体部５０とを備える脚式ロボットであって、駆動信号に応じて足首関節を駆動するモータと、胴体部の状態量を計測するセンサ１５０と、センサ１５０からの出力に応じて、足首関節の目標トルクを算出する目標トルク算出部１３５と、目標トルクに対するリミット値が設定されたリミット値設定部１３６と、リミット値と目標トルクを比較して、目標トルクが前記リミット値を超えた場合にリミット値に応じた駆動信号をモータ１４２に出力する比較部１３７と、を備えるものである。【選択図】図２
2008126330.tif 000002
【特許請求の範囲】
【請求項１】
足首関節が設けられた脚部と、前記脚部に連結された胴体部とを備える脚式ロボットであって、
駆動信号に応じて前記足首関節を駆動する足首関節駆動部と、
前記胴体部の状態量を計測するセンサと、
前記センサからの出力に応じて、前記足首関節の目標トルクを算出する目標トルク算出部と、
前記目標トルクに対するリミット値を設定し、前記設定したリミット値を記憶するリミット値設定部と、
前記リミット値と前記目標トルクを比較して、前記目標トルクが前記リミット値を超えた場合に前記リミット値に応じた駆動信号を前記足首関節駆動部に出力する比較部と、
を備える脚式ロボット。
【請求項２】
前記胴体部の状態量が、前記胴体部の現在の状態を示す値であることを特徴とする請求項１に記載の脚式ロボット。
【請求項３】
前記目標トルク算出部が、前記センサによって計測された胴体部の状態量と、前記胴体部の目標状態量との差に基づいて目標トルクを算出する請求項１、又は２に記載の脚式ロボット。
【請求項４】
前記リミット値が可変であることを特徴とする請求項１、２、又は３に記載の脚式ロボット。
【請求項５】
足首関節が設けられた脚部と、前記脚部に連結された胴体部とを備える脚式ロボットの制御方法であって、
前記胴体部の状態量を計測するステップと、
前記センサからの出力に応じて、前記足首関節の目標トルクを算出するステップと、
リミット値と前記目標トルクを比較して、前記目標トルクが前記リミット値を超えた場合に前記リミット値に応じた駆動信号を出力するステップと、
前記駆動信号に基づいて、前記足首関節を駆動するステップと、を備える脚式ロボットの制御方法。
【請求項６】
前記胴体部の状態量が、前記胴体部の現在の状態を示す値であることを特徴とする請求項５に記載の脚式ロボットの制御方法。
【請求項７】
前記目標トルクを算出するステップでは、前記計測された胴体部の状態量と、前記胴体部の目標状態量との差に基づいて目標トルクを算出する請求項５、又は６に記載の脚式ロボットの制御方法。
【請求項８】
前記リミット値が可変であることを特徴とする請求項５、６、又は７に記載の脚式ロボットの制御方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、脚部を有する脚式ロボット、及びその制御方法に関するものである。
【背景技術】
【０００２】
近年、歩行するための脚部を備え、この脚部を駆動し、脚部の下端に設けられた足平部分を所定の歩容データに基づいて床面上に配置することで歩行動作を行う脚式移動型のロボットが開発されている。（例えば特許文献１）
【０００３】
このような脚式移動型のロボットは、まず、脚部の足平部分を床面に接触させて支持脚とし、その後に足平の裏面で床面を押して脚部全体（ロボット全体）を上げるように脚部を駆動することで、次の歩行動作を行う。駆動された脚部は遊脚となる一方、他の脚部が支持脚となり、このように、遊脚と支持脚とを交互に繰り返して切り換えることで、歩行動作を行うことが可能になる。
【０００４】
このような歩行動作を安定して行う際には、ロボット全体の重心位置を制御して、脚部を駆動する必要がある。すなわち、左右に各々脚部を有する２足歩行タイプの脚式歩行型ロボットの場合、歩行する床面に接地する支持脚の足平部分の接地面内部に、ロボット全体の重心によるモーメントが作用しない点（ＺＭＰ＝Ｚｅｒｏ  Ｍｏｍｅｎｔ  Ｐｏｉｎｔ）を位置させる。
【特許文献１】特開平５−３０５５８０号公報
【発明の開示】
【発明が解決しようとする課題】
【０００５】
特許文献１に示されている脚式移動型ロボットの脚部は、股関節、大腿、膝関節、下腿、足首関節、及び足平を備えている。そして、脚部に連結された胴体の目標重心位置と実際の重心位置との偏差から、腰の移動量を算出している。そして、算出された腰の移動量から駆動する関節角度をそれぞれ求めて、駆動している。
【０００６】
ところで、脚式移動ロボットでは、立脚時に外乱が生じると転倒してしまうという問題点がある。例えば、立脚状態において、床面Ｆが上下に動いたり、ロボット１が押されたりすると、転倒してしまう。特許文献１の脚式移動ロボットでは、センサによって検出した足平の絶対角度や傾斜角速度によって関節の駆動制御値を補正している。この制御では、センサからの出力に対してフィルタ処理を行っている。そして、フィルタ処理された出力に対して補正するための演算を行っている。そのため、この脚式移動ロボットでは、フィルタ処理や演算で遅れが生じてしまい、応答性を上げ難い。従って、従来の脚式移動ロボットでは、外乱に対応することができず、ロボットが転倒してしまう。このように、従来の制御では、立脚状態を安定して、維持することが困難であるという問題点があった。
【０００７】
本発明は、このような問題を解決するためになされたものであり、立脚状態を安定して維持することができる脚式ロボット、及びその制御方法を提供することを目的とする。
【課題を解決するための手段】
【０００８】
本発明の第１の態様にかかる脚式ロボットは、足首関節が設けられた脚部と、前記脚部に連結された胴体部とを備える脚式ロボットであって、駆動信号に応じて前記足首関節を駆動する足首関節駆動部と、前記胴体部の状態量を計測するセンサと、前記センサからの出力に応じて、前記足首関節の目標トルクを算出する目標トルク算出部と、前記目標トルクに対するリミット値を設定し、前記設定されたリミット値を記憶するリミット値設定部と、前記リミット値と前記目標トルクを比較して、前記目標トルクが前記リミット値を超えた場合に前記リミット値に応じた駆動信号を前記足首関節駆動部に出力する比較部と、備えるものである。これにより、立脚状態を安定して維持することができる。
本発明の第２の態様にかかる脚式ロボットは、上記の脚式ロボットにおいて、前記胴体部の状態量が、前記胴体部の現在の状態を示す値であることを特徴とするものである。
【０００９】
本発明の第３の態様にかかる脚式ロボットは、上記の脚式ロボットにおいて、前記目標トルク算出部が、前記センサによって計測された胴体部の状態量と、前記胴体部の目標状態量との差に基づいて目標トルクを算出するものである。これにより、外乱が生じた場合でも、速やかに制御することができる。
【００１０】
本発明の第４の態様にかかる脚式ロボットは、上記の脚式ロボットにおいて、前記リミット値が可変であることを特徴とするものである。これにより、立脚状態をより安定して維持することができる。
【００１１】
本発明の第５の態様にかかる脚式ロボットの制御方法は、足首関節が設けられた脚部と、前記脚部に連結された胴体部とを備える脚式ロボットの制御方法であって、前記胴体部の状態量を計測するステップと、前記センサからの出力に応じて、前記足首関節の目標トルクを算出するステップと、前記リミット値と前記目標トルクを比較して、前記目標トルクが前記リミット値を超えた場合に前記リミット値に応じた駆動信号を出力するステップと、前記駆動信号に基づいて、前記足首関節を駆動するステップと、を備えるものである。これにより、立脚状態を安定して維持することができる。
本発明の第６の態様にかかる脚式ロボットの制御方法は、上記の脚式ロボットにおいて、前記胴体部の状態量が、前記胴体部の現在の状態を示す値であることを特徴とするものである。
【００１２】
本発明の第７の態様にかかる脚式ロボットの制御方法は、上記の制御方法において、前記目標トルクを算出するステップでは、前記計測された胴体部の状態量と、前記胴体部の目標状態量との差に基づいて目標トルクを算出するものである。これにより、外乱が生じた場合でも、速やかに制御することができる。
【００１３】
本発明の第８の態様にかかる脚式ロボットは、上記の脚式ロボットにおいて、前記リミット値が可変であることを特徴とするものである。これにより、立脚状態をより安定して維持することができる。
【発明の効果】
【００１４】
本発明によれば、立脚状態を安定して維持することができる脚式ロボット、及びその制御方法を提供することが可能となる。
【発明を実施するための最良の形態】
【００１５】
発明の実施の形態１．
以下に、図１を参照しつつ本発明の実施の形態１にかかる脚式移動ロボット（以下、単にロボットという）について説明する。
【００１６】
図１は、ロボット１を正面から見た様子を概略的に表す概略図であり、床面Ｆ上をロボット１が歩行する様子を表している。なお、図１においては、説明の便宜上、ロボット１が進行する向き（前後方向）をｘ軸、ロボット１が進行する方向について水平方向に直交する向き（左右方向）をｙ軸、移動体の移動する平面から鉛直方向に延びる向き（上下方向）をｚ軸とし、これらの３軸からなる座標系を用いて説明する。すなわち、図１中において、前記ｘ軸は紙面の奥行方向、ｙ軸は紙面に向かって左右方向、ｚ軸は紙面中の上下方向を示す。
【００１７】
図１に示すように、ロボット１は、頭部２と、体幹（胴体）３と、体幹３に結合された腰部４と、体幹３に接続された右腕５、左腕６と、腰部４に対して回動自在に固定される脚部１０と、を備えた２足歩行型のロボットである。以下、詳細に説明する。
【００１８】
頭部２は、ロボット１の周囲の環境を視覚的に撮像するための左右一対の撮像部（図示せず）を備えているとともに、体幹３に対して頭部２を鉛直方向に平行な軸周りに回動させることで、周囲の環境を広く撮像する。撮像した周囲の環境を示す画像データは、後述する制御部１３０に送信され、ロボット１の動作を決定するための情報として用いられる。
【００１９】
体幹３は、その内部にロボット１の動作を制御する制御部１３０や、脚部のモータ等に電力を供給するためのバッテリー（図示せず）等を収容するものである。制御部１３０は、脚部１０を駆動し、ロボット１を動かすための歩容データを記憶する記憶領域と、この記憶領域に記憶された歩容データを読み出す演算処理部と、脚部１０に含まれるモータを駆動するモータ駆動部と、を備えている。なお、制御部１３０の構成については後述する。これらの各構成要素は、体幹３の内部に設けられたバッテリー（図示せず）から電力を供給されることで動作する。
【００２０】
また、演算処理部は、記憶領域に記憶された歩容データを読み出すとともに、読み出した歩容データによって特定されるロボット１の姿勢を実現するために必要な脚部１０の関節角を算出する。そして、このように算出した関節角に基づく信号をモータ駆動部に送信する。
【００２１】
モータ駆動部は、演算処理部より送信された信号に基づいて、脚部を駆動するための各モータの駆動量を特定し、これらの駆動量でモータを駆動させるためのモータ駆動信号を各モータに送信する。これによって脚部１０の各関節における駆動量が変更され、ロボット１の動きが制御される。
【００２２】
また、演算処理部は、読み出した歩容データに基づいてモータの駆動を行うように指令するほか、ロボット１に組み込まれたジャイロや加速度計やロータリーエンコーダなどセンサ（図示せず）からの信号を受けて、モータの駆動量を調整する。このように、センサにより検出したロボット１に作用する外力や、ロボット１の姿勢などに応じて脚部１０の関節角を調整することで、ロボット１が安定した状態を維持することができる。
【００２３】
右腕５および左腕６は、体幹３に対して回動自在に接続されており、肘部分および手首部分に設けられた関節部分を駆動することにより、人間の腕部と同様の動きを行うことができる。また、手首部分の先端に接続された手先部は、図示を省略するが物体を把持するためのハンド構造を備えており、ハンド構造に組み込まれた複数の指関節を駆動することで、様々な形状の物体を把持することが可能となる。
【００２４】
腰部４は、体幹３に対して回動するように接続されており、歩行動作を行う際に腰部４の回動動作を組み合わせることで、脚部１０を駆動するために必要な駆動エネルギーを低減させることができる。
【００２５】
２足歩行を行うための脚部１０（右脚２０、左脚３０）は、右脚２０と左脚３０とから構成されている。詳細には、図２に示すように、右脚２０は右股関節２１、右上腿２２、右膝関節２３、右下腿２４、右足首関節２５、右足平２６を備え、同様に、左脚３０は左股関節３１、左上腿３２、左膝関節３３、左下腿３４、左足首関節３５、左足平３６を備えている。
【００２６】
そして、右脚２０および左脚３０とは、図示しないモータからの駆動力が、同じく図示しないプーリおよびベルトを介して伝達されることで、各関節部が所望の角度に駆動され、その結果、脚部に所望の動きをさせることができる。
【００２７】
なお、本実施形態においては、脚部１０（右脚２０および左脚３０）は、下腿を膝関節回りに前方側に持ち上げると、人間の脚部のように、上腿と下腿が後方側に向かって開いた状態（上腿の延長線よりも後方側に、下腿が膝関節回りに回転した状態）となる。
【００２８】
記憶領域に記憶された歩容データは、操作部（図示せず）から送られる信号で特定される脚部１０の移動量に対応づけて、脚部１０の足平（右足平２６、左足平３６）の先端（足先）の位置と、ロボット１本体の位置とを、ロボット１の移動する空間を定める座標系（例えばｘｙｚ座標系）において経時的に指示するものである。なお、歩容データの生成については、従来から広く用いられている方法を用いることができるため、説明を省略する。
【００２９】
ここで、制御部１３０について説明する。制御部１３０は、演算処理部であるＣＰＵ（Central Processing Unit）、記憶領域であるＲＯＭ（Read Only Memory）やＲＡＭ（Random Access Memory）、通信用のインターフェースなどを有し、ロボット１の各種動作を制御する。例えば、ＲＯＭには、制御するための制御プログラムや、各種の設定データ等が記憶されている。そして、ＣＰＵは、このＲＯＭに記憶されている制御プログラムを読み出し、RAMに展開する。そして、設定データや、センサ等からの出力に応じてプログラムを実行する。
【００３０】
体幹３には、センサ１５０が設けられている。センサ１５０は、例えば、ジャイロセンサや、加速度センサである。そして、センサ１５０は、体幹３及び腰部４とからなる胴体部の傾斜角速度、傾斜角度を計測する。あるいは、センサ１５０は、胴体部の並進角速度を計測する。なお、センサ１５０の数は、１つに限られるものではなく、２つ以上であってもよい。例えば、センサ１５０は、傾斜角度、傾斜加速度を計測するジャイロセンサと、並進加速度を計測する加速度センサとを有していてよい。そして、制御部１３０はロボット１の立脚時において、センサ１５０からの出力に基づいてフィードバック制御を行っている。これにより、外乱等が生じた場合でも、ロボット１が転倒するのを防ぐことができる。
【００３１】
次に、ロボット１において立脚状態を維持するための制御について図２、及び図３を用いて説明する。図２は、制御部１３０の構成を示すブロック図である。図３は、立脚時のロボット１の構成を模式的に示す側面図である。なお、図３では、説明の簡略化のため、脚部２０と胴体部５０のみを示している。ここで、胴体部５０は、例えば、図１に示すロボット１の体幹３、及び腰部４を含んでいる。従って、胴体部５０は脚部に連結されている。また、図３では、右脚２０と左脚３０とがそろった状態となっているため、右脚２０と左脚３０との各関節角度が一致している。
【００３２】
制御部１３０は、目標状態量設定部１３２と、アンプ１３３と、目標トルク算出部１３５と、リミット値設定部１３６と、比較部１３７と、を備えている。そして、制御部１３０は、モータ１４１、及びモータ１４２を駆動するための駆動信号を出力する。そして、制御部１３０は、立脚状態のロボット１が転倒しないように制御する。ここでは、傾斜している床面Ｆにロボット１が立脚た状態で静止している。制御部１３０は、傾斜した床面Ｆの傾きが変わる、あるいは床面Ｆが上下に動く、などの外乱が生じた場合でも、ロボット１が転倒しないようにフィードバック制御する。
【００３３】
ここで、目標状態量設定部１３２には、ロボット１の目標状態量が設定されている。目標状態量には、胴体部５０の目標状態量と、胴体部５０以外の箇所の目標状態量が含まれる。胴体部５０の目標状態量としては、例えば、胴体傾斜角度、胴体傾斜角速度、胴体並進加速度が含まれる。一方、胴体部５０以外の目標状態量としては、足首関節以外の各関節の目標角度が含まれる。目標状態量設定部１３２には、例えば、脚部１０の股関節や膝関節の目標関節角度が設定されている。なお、立脚状態における目標状態量は、予め定められていてもよく、所定のプログラムによって算出してもよい。
【００３４】
胴体部以外の目標状態量は、アンプ１３３に入力される。ここでは、１つのアンプ１３３が示されているが、実際には、関節の自由度に応じて複数のアンプ１３３が設けられている。アンプ１３３は、足首関節以外を駆動するためのアンプである。すなわち、アンプ１３３は、膝関節や股関節等を駆動するためのアンプである。そして、上記のアンプ１３３は左脚３０、及び右脚２０のそれぞれに対して設けられている。
【００３５】
アンプ１３３には適当なゲインが設定されている。そして、アンプ１３３は、目標関節角度に基づいて目標トルクを算出し、モータ１４１の目標トルクに応じた駆動信号を出力する。アンプ１３３から出力された駆動信号はモータ１４１に入力される。モータ１４１は、例えば、膝関節や股関節を駆動するための関節駆動部である。そして、モータ１４１は、アンプ１３３から入力される駆動信号によって駆動される。これにより、足首関節以外の関節が目標トルクで駆動され、目標関節角度になるよう制御される。なお、実際には、モータ１４１、及びアンプ１３３は、足首関節以外の関節の自由度に応じた数だけ設けられている。
【００３６】
胴体部５０の目標状態量は、足首関節の目標トルクを算出する目標トルク算出部１３５に入力される。さらに、目標トルク算出部１３５には、センサ１５０で計測された胴体部５０の状態量が入力される。胴体部５０の状態量とは、胴体部５０の現在の状態を示す値であり、胴体部５０の状態が変化すると状態量も変化する。ここでは、胴体傾斜角度、胴体傾斜角速度、及び胴体並進加速度が状態量として、目標トルク算出部１３５に入力される。したがって、胴体部５０の傾斜角度、傾斜角速度、並進加速度が変化すると、それに応じた状態量が変化する。もちろん、状態量は、胴体傾斜角度、胴体傾斜角速度、及び胴体並進加速度のうちの一つでもよく、２つ以上であってもよい。さらには、胴体傾斜角度、胴体傾斜角速度、及び胴体並進加速度以外の状態量を用いてもよい。
目標トルク算出部１３５は、センサ１５０で計測された胴体部５０の状態量と、目標状態量とに基づいて、目標トルクを算出するためのコントローラである。具体的には、胴体傾斜角度、胴体傾斜角速度、及び胴体並進加速度のそれぞれに対して、目標状態量設定部１３２からの目標値とセンサ１５０からの計測値との差を求める。そして、目標値と計測値との差に所定のフィードバックゲインをかけて、目標トルクとする。これにより、足首関節２５のモータ１４２に対する目標トルクが算出される。そして、目標トルク算出部１３５は、センサ１５０からの出力に応じてフィードバック制御を行う。従って、胴体部５０の状態変化に応じて足首関節２５の目標トルクが変化する。
【００３７】
ここで、目標状態量設定部１３２に立脚状態における目標状態量を設定しておく。すなわち、目標状態量設定部１３２に、ロボット１が立って静止している状態における足首関節以外の目標関節角度や、胴体部５０の目標傾斜角度等を設定しておく。これにより、立脚状態で静止しているときに外乱が生じても、転倒するのを防ぐことができる。例えば、立脚状態で床面Ｆの傾斜角が変化すると、床面Ｆから力を受ける。従って、傾斜角の変化に応じてロボット１の状態が変化する。この場合、センサ１５０で計測されている胴体傾斜角、胴体傾斜角速度、胴体並進加速度が設定されている目標状態量の値から変化する。目標トルク算出部１３５は、目標状態量とセンサ１５０での計測値との差に基づいて、目標トルクを算出する。また、足首関節以外の関節の角度が設定されている目標関節角度から変化する。ロータリーエンコーダなどで足首関節以外の角度を計測し、各関節角度が目標関節角度に戻るよう制御してもよい。これにより、胴体部５０の状態量が目標状態量に近づいていき、外乱が生じた場合でも、転倒するのを防ぐことができる。そして、床面Ｆの傾斜角の変化が収束すれば、静止して、元の立脚状態に戻る。このように、目標状態量と計測値との差に基づいてフィードバック制御することによって、速やかに動作することができる。よって、転倒するのを防ぐことができ、安定して立脚状態を維持することができる。
【００３８】
ここで、目標トルク算出部１３５からの出力される目標トルクは、比較部１３７に入力される。なお、入力される目標トルクは足首関節を駆動するためのものである。リミット値設定部１３６には、足首関節の目標トルクに対するリミット値が設定されている。すなわち、リミット値設定部１３６は目標トルクに対するリミット値を設定し、その設定されたリミット値を記憶する。リミット値はモータ１４２が出力可能な最大トルクとは異なるものであり、最大トルクよりも低い値となっている。リミット値設定部１３６に設定されているリミット値は、比較部１３７に入力される。比較部１３７は、リミット値と、目標トルクとを比較する。そして、目標トルクがリミット値を越えていない場合、目標トルクに応じた駆動信号を、モータ１４２に出力する。一方、目標トルクがリミット値を越えていた場合、リミット値に応じた駆動信号をモータ１４２に出力する。これにより、モータ１４２がリミット値に対応するトルクで駆動する。すなわち、リミット値を駆動トルクとして、モータ１４２が駆動する。
【００３９】
なお、リミット値としては、目標トルクの上限、及び下限が設定される。ここで、足首関節の回転方向に応じて、トルクが正負となる。すなわち、正のトルクと負のトルクでは、足首関節の回転方向が反対となる。例えば、リミット値設定部１３６には、正のリミット値がトルクの上限値として設定され、負のリミット値がトルクの下限値として設定される。これにより、目標トルクの許容範囲が設定される。従って、足首関節を駆動する駆動トルクが許容範囲外となるのを防ぐことができる。すなわち、目標トルクが上限以上の場合は、上限値を駆動トルクとし、目標トルクが下限以下の場合は、下限値を駆動トルクとする。ここで、左右両脚の足首関節にそれぞれリミット値を設定する。
【００４０】
目標トルクにリミット値が設定されている場合、足首関節が柔らかくなる。従って、急に床面Ｆの傾斜角が変化した場合でも、足平が床面Ｆに倣う。すなわち、足裏が床面Ｆから剥がれない。換言すると、外乱が生じた場合でも足裏が床面Ｆから剥がれないようなリミット値を設定する。足平が床面Ｆに倣うため、足首関節のトルクを床面Ｆに確実に伝えることができる。すなわち、床反力によって胴体部５０の姿勢を確実に制御することができる。これにより、外乱が生じた場合でも、ロボット１が転倒するのを防ぐことができる。
【００４１】
一方、足首関節の目標トルクにリミット値を設定していない場合、床面Ｆの傾斜角が急に変化すると、胴体部５０の状態量の変化が大きくなってしまう。この場合、目標トルクが過大になってしまう。目標トルクが大きすぎると、足裏が床面Ｆから剥がれてしまう。よって、足首関節のトルクが床面Ｆに伝わらなくなり、姿勢を制御することが困難になる。姿勢を制御するためには、フィードバックゲインを低くして、足裏が剥がれないようにする必要用がある。しかしながら、フィードバックゲインを低くすると、制御性が低下してしまう。
【００４２】
本実施の形態では、足首関節の目標トルクにリミット値を設けている。そして、目標トルクがリミット値を越えた場合に、リミット値で足首関節を駆動している。これにより、足平が床面Ｆに倣うため、転倒するのを防ぐことができる。すなわち、床面Ｆの外乱によって、胴体部５０の傾斜角度が変化すると、その傾斜角度を元に戻そうとする制御を行う。このとき、足裏が床面Ｆから剥がれない。さらに、傾斜角度の変化が大きい場合、足首関節の目標トルクのリミット値で制御される。このため、フィードバックゲインを高くすることができ、制御性を向上することができる。さらに、フィードバックゲインの細かな設定が不要となるため、コントローラをシンプルにすることができる。すなわち、外乱の周波数に応じて、フィードバックゲインを最適化する必要が無いため、コントローラを容易に設計することができる。このように、上記の制御は、高周波数から低周波数までの広い帯域の外乱に対して効果的である。さらに、従来技術のように、関節角度の補正量を算出する必要が無いため、制御の遅れを低減することができる。
【００４３】
また、目標トルクに基づいて足首関節を駆動しているため、外乱が生じた場合でも、速やかに元の状態に戻すことができる。なお、センサ１５０は、胴体部５０の変化を検出できるものであればよく、上記のセンサに限られるものではない。すなわち、倒立振子でモデル化した場合、倒立振子が動いていることを検出することができるセンサ１５０を用いることができる。リミット値は、例えば、床反力中心点の存在領域に基づいて設定することができる。すなわち、つま先、又は踵が浮き始める直前の床反力の中心点位置を床反力中心点の存在領域の境界とする。具体的には、垂直荷重、及び水平荷重を求めて、存在領域の境界における足首周りのモーメントのつりあい式によって、リミット値を算出することができる。
【００４４】
なお、上記の説明では、図３のように両脚がそろっている状態について説明したが、この状態に限るものではない。例えば、左右両脚が前後方向に開いている状態であっても、立脚状態を維持することができる。また、脚の数は、２本に限られるものではなく、１本でもよく、３本以上でもよい。
【００４５】
次に、目標トルク算出部１３５の構成について図４〜図７を用いて説明する。図４〜図７は、目標トルク算出部１３５の構成を模式的に示すブロック線図である。ここで、図４〜図７には、それぞれ目標トルク算出部１３５の構成例が示されている。すなわち、図４〜図７には、目標トルク算出部１３５の異なる構成例が示されている。
【００４６】
まず、図４を用いて第１の構成例について説明する。図４では、胴体部５０の傾斜角度、及び傾斜角速度に基づいて、フィードバック制御を行っている。具体的には、目標状態量設定部１３２に設定されている目標胴体傾斜角度と、センサ１５０で計測された胴体傾斜角度との差を取る。すなわち、傾斜角度に対して目標状態量と計測値との差を算出する。そして、この傾斜角度の差にフィードバックゲインＫ１をかける。そして、このフィードバックゲインＫ１からの出力値と、センサ１５０で計測された胴体傾斜角速度との差を取る。そして、傾斜角速度の差にフィードバックゲインＫ２をかけて目標トルクとする。このようにして目標トルクを繰り返し算出し、上述のようにフィードバック制御を行っている。
【００４７】
図５に示されている第２の構成例では、胴体部５０の傾斜角度、傾斜角速度、及び並進加速度に基づいてフィードバック制御を行っている。具体的には、目標状態量設定部１３２に設定されている目標胴体傾斜角度と、センサ１５０で計測された胴体傾斜角度との差を取る。そして、この傾斜角度の差にフィードバックゲインＫ１をかける。そして、このフィードバックゲインＫ１からの出力値と、センサ１５０で計測された胴体傾斜角速度との差を取る。そして、この差にフィードバックゲインＫ２をかける。さらに、目標状態量設定部１３２に設定されている目標胴体並進加速度と、センサ１５０で計測された胴体並進加速度との差を取る。そして、この差にフィードバックゲインＫ３をかける。そして、フィードバックゲインＫ２からの出力値と、フィードバックゲインＫ３からの出力値との和を目標トルクとする。このように、第２の構成例では、胴体部５０の並進加速度を考慮して目標トルクを繰り返し算出し、上述のようにフィードバック制御を行っている。
【００４８】
図６に示されている第３の構成例では、第２の構成例と同様に、胴体部５０の傾斜角度、傾斜角速度、及び並進加速度に基づいてフィードバック制御を行っている。具体的には、目標状態量設定部１３２に設定されている目標胴体傾斜角度と、センサ１５０で計測された胴体傾斜角度との差を取る。そして、この傾斜角度の差にフィードバックゲインＫ１をかける。そして、このフィードバックゲインＫ１からの出力値と、センサ１５０で計測された胴体傾斜角速度との差を取る。そして、この差にフィードバックゲインＫ２をかける。さらに、目標状態量設定部１３２に設定されている目標胴体並進加速度と、センサ１５０で計測された胴体並進加速度との差を取る。そして、この差にフィードバックゲインＫ３をかける。ここまでの演算処理、第２の構成例と同様である。さらに、第３の構成例では、傾斜角度に対して時間積分を行なっている。すなわち、傾斜角度の差に対して時間積分を行った後、フィードバックゲインＫ４をかける。そして、フィードバックゲインＫ４の出力値と、フィードバックゲインＫ２の出力値と、フィードバックゲインＫ３の出力値との和を目標トルクとする。このように、第３の構成例では、胴体部５０の並進加速度を考慮して、目標トルクを繰り返し算出し、上述のようにフィードバック制御を行っている。
【００４９】
図７に示されている第４の構成例では、胴体部５０の傾斜角度、及び傾斜角速度に基づいてフィードバック制御を行っている。具体的には、目標状態量設定部１３２に設定されている目標胴体傾斜角度と、センサ１５０で計測された胴体傾斜角度との差を取る。そして、この傾斜角度の差にフィードバックゲインＫ１をかける。さらに、目標状態量設定部１３２に設定されている目標胴体傾斜角速度と、センサ１５０で計測された胴体傾斜角速度との差を取る。そして、胴体部５０の傾斜角速度の差にフィードバックゲインＫ２をかける。フィードバックゲインＫ１の出力値と、フィードバックゲインＫ２の出力値との和を目標トルクとする。このようにして目標トルクを繰り返し算出し、上述のようにフィードバック制御を行っている。
【００５０】
なお、リミット値は、状況や環境に応じて変更してもよい。例えば、床面Ｆの傾斜角度や材質が異なる場合に、異なるリミット値を設定してもよい。例えば、床面Ｆが水平で傾斜角度が０°の時と、床面Ｆが４５°傾斜している時で、リミット値を変えてもよい。さらに、垂直荷重が変化するような場合に、垂直加重に応じてリミット値を変化させてもよい。具体的には、ロボット１がエレベータなどに乗っており、床面が鉛直方向に加減速する状況では、ロボット１にかかる垂直荷重が変化する。このような場合、上昇時と、下降時と、静止時とで、異なるリミット値を設定するようにしてもよい。このように、リミット値を可変とすることで、状況に応じた制御を行うことができ、より立脚状態を安定して維持することができる。
【図面の簡単な説明】
【００５１】
【図１】本発明に係るロボットの全体を概略的に表した全体概略図である。
【図２】本発明に係るロボットに設けられた制御部を示すブロック図である。
【図３】本発明に係るロボットの立脚時の構成を模式的に示す側面図である。
【図４】本発明に係るロボットにおける目標トルク算出部の第１の構成例を示すブロック線図である。
【図５】本発明に係るロボットにおける目標トルク算出部の第２の構成例を示すブロック線図である。
【図６】本発明に係るロボットにおける目標トルク算出部の第３の構成例を示すブロック線図である。
【図７】本発明に係るロボットにおける目標トルク算出部の第４の構成例を示すブロック線図である。
【符号の説明】
【００５２】
１  ロボット、２  頭部、３  体幹、４  腰部、５  右腕、６左腕、
１０  脚部、２０  右脚、２１  右股関節、２２  右上腿、２３  右膝関節、
２４  右下腿、２５  右足首関節、２６  右足平、
３０  左脚３０、３１  左股関節、３２  左上腿、３３  左膝関節、３４  左下腿、
３５  左足首関節、３６  左足平、
１３０  制御部、１３２  目標状態量設定部、１３３  アンプ、
１３５  目標トルク算出部、１３６  リミット値設定部、１３７  比較部、
１４１  モータ、１４２  モータ、１５０  センサ、
【図１】
2008126330.tif 000003
【図２】
2008126330.tif 000004
【図３】
2008126330.tif 000005
【図４】
2008126330.tif 000006
【図５】
2008126330.tif 000007
【図６】
2008126330.tif 000008
【図７】
2008126330.tif 000009