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