JP2008126330A - 脚式ロボット、及びその制御方法 - Google Patents
脚式ロボット、及びその制御方法 Download PDFInfo
- Publication number
- JP2008126330A JP2008126330A JP2006311483A JP2006311483A JP2008126330A JP 2008126330 A JP2008126330 A JP 2008126330A JP 2006311483 A JP2006311483 A JP 2006311483A JP 2006311483 A JP2006311483 A JP 2006311483A JP 2008126330 A JP2008126330 A JP 2008126330A
- Authority
- JP
- Japan
- Prior art keywords
- target torque
- limit value
- target
- state quantity
- robot
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Pending
Links
Landscapes
- Manipulator (AREA)
Abstract
【課題】立脚状態を安定して維持することができる脚式ロボット、及びその制御方法を提供すること。
【解決手段】本発明の一態様にかかる脚式ロボットは、足首関節が設けられた脚部10と、脚部10に連結された胴体部50とを備える脚式ロボットであって、駆動信号に応じて足首関節を駆動するモータと、胴体部の状態量を計測するセンサ150と、センサ150からの出力に応じて、足首関節の目標トルクを算出する目標トルク算出部135と、目標トルクに対するリミット値が設定されたリミット値設定部136と、リミット値と目標トルクを比較して、目標トルクが前記リミット値を超えた場合にリミット値に応じた駆動信号をモータ142に出力する比較部137と、を備えるものである。
【選択図】図2
【解決手段】本発明の一態様にかかる脚式ロボットは、足首関節が設けられた脚部10と、脚部10に連結された胴体部50とを備える脚式ロボットであって、駆動信号に応じて足首関節を駆動するモータと、胴体部の状態量を計測するセンサ150と、センサ150からの出力に応じて、足首関節の目標トルクを算出する目標トルク算出部135と、目標トルクに対するリミット値が設定されたリミット値設定部136と、リミット値と目標トルクを比較して、目標トルクが前記リミット値を超えた場合にリミット値に応じた駆動信号をモータ142に出力する比較部137と、を備えるものである。
【選択図】図2
Description
本発明は、脚部を有する脚式ロボット、及びその制御方法に関するものである。
近年、歩行するための脚部を備え、この脚部を駆動し、脚部の下端に設けられた足平部分を所定の歩容データに基づいて床面上に配置することで歩行動作を行う脚式移動型のロボットが開発されている。(例えば特許文献1)
このような脚式移動型のロボットは、まず、脚部の足平部分を床面に接触させて支持脚とし、その後に足平の裏面で床面を押して脚部全体(ロボット全体)を上げるように脚部を駆動することで、次の歩行動作を行う。駆動された脚部は遊脚となる一方、他の脚部が支持脚となり、このように、遊脚と支持脚とを交互に繰り返して切り換えることで、歩行動作を行うことが可能になる。
このような歩行動作を安定して行う際には、ロボット全体の重心位置を制御して、脚部を駆動する必要がある。すなわち、左右に各々脚部を有する2足歩行タイプの脚式歩行型ロボットの場合、歩行する床面に接地する支持脚の足平部分の接地面内部に、ロボット全体の重心によるモーメントが作用しない点(ZMP=Zero Moment Point)を位置させる。
特開平5−305580号公報
特許文献1に示されている脚式移動型ロボットの脚部は、股関節、大腿、膝関節、下腿、足首関節、及び足平を備えている。そして、脚部に連結された胴体の目標重心位置と実際の重心位置との偏差から、腰の移動量を算出している。そして、算出された腰の移動量から駆動する関節角度をそれぞれ求めて、駆動している。
ところで、脚式移動ロボットでは、立脚時に外乱が生じると転倒してしまうという問題点がある。例えば、立脚状態において、床面Fが上下に動いたり、ロボット1が押されたりすると、転倒してしまう。特許文献1の脚式移動ロボットでは、センサによって検出した足平の絶対角度や傾斜角速度によって関節の駆動制御値を補正している。この制御では、センサからの出力に対してフィルタ処理を行っている。そして、フィルタ処理された出力に対して補正するための演算を行っている。そのため、この脚式移動ロボットでは、フィルタ処理や演算で遅れが生じてしまい、応答性を上げ難い。従って、従来の脚式移動ロボットでは、外乱に対応することができず、ロボットが転倒してしまう。このように、従来の制御では、立脚状態を安定して、維持することが困難であるという問題点があった。
本発明は、このような問題を解決するためになされたものであり、立脚状態を安定して維持することができる脚式ロボット、及びその制御方法を提供することを目的とする。
本発明の第1の態様にかかる脚式ロボットは、足首関節が設けられた脚部と、前記脚部に連結された胴体部とを備える脚式ロボットであって、駆動信号に応じて前記足首関節を駆動する足首関節駆動部と、前記胴体部の状態量を計測するセンサと、前記センサからの出力に応じて、前記足首関節の目標トルクを算出する目標トルク算出部と、前記目標トルクに対するリミット値を設定し、前記設定されたリミット値を記憶するリミット値設定部と、前記リミット値と前記目標トルクを比較して、前記目標トルクが前記リミット値を超えた場合に前記リミット値に応じた駆動信号を前記足首関節駆動部に出力する比較部と、備えるものである。これにより、立脚状態を安定して維持することができる。
本発明の第2の態様にかかる脚式ロボットは、上記の脚式ロボットにおいて、前記胴体部の状態量が、前記胴体部の現在の状態を示す値であることを特徴とするものである。
本発明の第2の態様にかかる脚式ロボットは、上記の脚式ロボットにおいて、前記胴体部の状態量が、前記胴体部の現在の状態を示す値であることを特徴とするものである。
本発明の第3の態様にかかる脚式ロボットは、上記の脚式ロボットにおいて、前記目標トルク算出部が、前記センサによって計測された胴体部の状態量と、前記胴体部の目標状態量との差に基づいて目標トルクを算出するものである。これにより、外乱が生じた場合でも、速やかに制御することができる。
本発明の第4の態様にかかる脚式ロボットは、上記の脚式ロボットにおいて、前記リミット値が可変であることを特徴とするものである。これにより、立脚状態をより安定して維持することができる。
本発明の第5の態様にかかる脚式ロボットの制御方法は、足首関節が設けられた脚部と、前記脚部に連結された胴体部とを備える脚式ロボットの制御方法であって、前記胴体部の状態量を計測するステップと、前記センサからの出力に応じて、前記足首関節の目標トルクを算出するステップと、前記リミット値と前記目標トルクを比較して、前記目標トルクが前記リミット値を超えた場合に前記リミット値に応じた駆動信号を出力するステップと、前記駆動信号に基づいて、前記足首関節を駆動するステップと、を備えるものである。これにより、立脚状態を安定して維持することができる。
本発明の第6の態様にかかる脚式ロボットの制御方法は、上記の脚式ロボットにおいて、前記胴体部の状態量が、前記胴体部の現在の状態を示す値であることを特徴とするものである。
本発明の第6の態様にかかる脚式ロボットの制御方法は、上記の脚式ロボットにおいて、前記胴体部の状態量が、前記胴体部の現在の状態を示す値であることを特徴とするものである。
本発明の第7の態様にかかる脚式ロボットの制御方法は、上記の制御方法において、前記目標トルクを算出するステップでは、前記計測された胴体部の状態量と、前記胴体部の目標状態量との差に基づいて目標トルクを算出するものである。これにより、外乱が生じた場合でも、速やかに制御することができる。
本発明の第8の態様にかかる脚式ロボットは、上記の脚式ロボットにおいて、前記リミット値が可変であることを特徴とするものである。これにより、立脚状態をより安定して維持することができる。
本発明によれば、立脚状態を安定して維持することができる脚式ロボット、及びその制御方法を提供することが可能となる。
発明の実施の形態1.
以下に、図1を参照しつつ本発明の実施の形態1にかかる脚式移動ロボット(以下、単にロボットという)について説明する。
以下に、図1を参照しつつ本発明の実施の形態1にかかる脚式移動ロボット(以下、単にロボットという)について説明する。
図1は、ロボット1を正面から見た様子を概略的に表す概略図であり、床面F上をロボット1が歩行する様子を表している。なお、図1においては、説明の便宜上、ロボット1が進行する向き(前後方向)をx軸、ロボット1が進行する方向について水平方向に直交する向き(左右方向)をy軸、移動体の移動する平面から鉛直方向に延びる向き(上下方向)をz軸とし、これらの3軸からなる座標系を用いて説明する。すなわち、図1中において、前記x軸は紙面の奥行方向、y軸は紙面に向かって左右方向、z軸は紙面中の上下方向を示す。
図1に示すように、ロボット1は、頭部2と、体幹(胴体)3と、体幹3に結合された腰部4と、体幹3に接続された右腕5、左腕6と、腰部4に対して回動自在に固定される脚部10と、を備えた2足歩行型のロボットである。以下、詳細に説明する。
頭部2は、ロボット1の周囲の環境を視覚的に撮像するための左右一対の撮像部(図示せず)を備えているとともに、体幹3に対して頭部2を鉛直方向に平行な軸周りに回動させることで、周囲の環境を広く撮像する。撮像した周囲の環境を示す画像データは、後述する制御部130に送信され、ロボット1の動作を決定するための情報として用いられる。
体幹3は、その内部にロボット1の動作を制御する制御部130や、脚部のモータ等に電力を供給するためのバッテリー(図示せず)等を収容するものである。制御部130は、脚部10を駆動し、ロボット1を動かすための歩容データを記憶する記憶領域と、この記憶領域に記憶された歩容データを読み出す演算処理部と、脚部10に含まれるモータを駆動するモータ駆動部と、を備えている。なお、制御部130の構成については後述する。これらの各構成要素は、体幹3の内部に設けられたバッテリー(図示せず)から電力を供給されることで動作する。
また、演算処理部は、記憶領域に記憶された歩容データを読み出すとともに、読み出した歩容データによって特定されるロボット1の姿勢を実現するために必要な脚部10の関節角を算出する。そして、このように算出した関節角に基づく信号をモータ駆動部に送信する。
モータ駆動部は、演算処理部より送信された信号に基づいて、脚部を駆動するための各モータの駆動量を特定し、これらの駆動量でモータを駆動させるためのモータ駆動信号を各モータに送信する。これによって脚部10の各関節における駆動量が変更され、ロボット1の動きが制御される。
また、演算処理部は、読み出した歩容データに基づいてモータの駆動を行うように指令するほか、ロボット1に組み込まれたジャイロや加速度計やロータリーエンコーダなどセンサ(図示せず)からの信号を受けて、モータの駆動量を調整する。このように、センサにより検出したロボット1に作用する外力や、ロボット1の姿勢などに応じて脚部10の関節角を調整することで、ロボット1が安定した状態を維持することができる。
右腕5および左腕6は、体幹3に対して回動自在に接続されており、肘部分および手首部分に設けられた関節部分を駆動することにより、人間の腕部と同様の動きを行うことができる。また、手首部分の先端に接続された手先部は、図示を省略するが物体を把持するためのハンド構造を備えており、ハンド構造に組み込まれた複数の指関節を駆動することで、様々な形状の物体を把持することが可能となる。
腰部4は、体幹3に対して回動するように接続されており、歩行動作を行う際に腰部4の回動動作を組み合わせることで、脚部10を駆動するために必要な駆動エネルギーを低減させることができる。
2足歩行を行うための脚部10(右脚20、左脚30)は、右脚20と左脚30とから構成されている。詳細には、図2に示すように、右脚20は右股関節21、右上腿22、右膝関節23、右下腿24、右足首関節25、右足平26を備え、同様に、左脚30は左股関節31、左上腿32、左膝関節33、左下腿34、左足首関節35、左足平36を備えている。
そして、右脚20および左脚30とは、図示しないモータからの駆動力が、同じく図示しないプーリおよびベルトを介して伝達されることで、各関節部が所望の角度に駆動され、その結果、脚部に所望の動きをさせることができる。
なお、本実施形態においては、脚部10(右脚20および左脚30)は、下腿を膝関節回りに前方側に持ち上げると、人間の脚部のように、上腿と下腿が後方側に向かって開いた状態(上腿の延長線よりも後方側に、下腿が膝関節回りに回転した状態)となる。
記憶領域に記憶された歩容データは、操作部(図示せず)から送られる信号で特定される脚部10の移動量に対応づけて、脚部10の足平(右足平26、左足平36)の先端(足先)の位置と、ロボット1本体の位置とを、ロボット1の移動する空間を定める座標系(例えばxyz座標系)において経時的に指示するものである。なお、歩容データの生成については、従来から広く用いられている方法を用いることができるため、説明を省略する。
ここで、制御部130について説明する。制御部130は、演算処理部であるCPU(Central Processing Unit)、記憶領域であるROM(Read Only Memory)やRAM(Random Access Memory)、通信用のインターフェースなどを有し、ロボット1の各種動作を制御する。例えば、ROMには、制御するための制御プログラムや、各種の設定データ等が記憶されている。そして、CPUは、このROMに記憶されている制御プログラムを読み出し、RAMに展開する。そして、設定データや、センサ等からの出力に応じてプログラムを実行する。
体幹3には、センサ150が設けられている。センサ150は、例えば、ジャイロセンサや、加速度センサである。そして、センサ150は、体幹3及び腰部4とからなる胴体部の傾斜角速度、傾斜角度を計測する。あるいは、センサ150は、胴体部の並進角速度を計測する。なお、センサ150の数は、1つに限られるものではなく、2つ以上であってもよい。例えば、センサ150は、傾斜角度、傾斜加速度を計測するジャイロセンサと、並進加速度を計測する加速度センサとを有していてよい。そして、制御部130はロボット1の立脚時において、センサ150からの出力に基づいてフィードバック制御を行っている。これにより、外乱等が生じた場合でも、ロボット1が転倒するのを防ぐことができる。
次に、ロボット1において立脚状態を維持するための制御について図2、及び図3を用いて説明する。図2は、制御部130の構成を示すブロック図である。図3は、立脚時のロボット1の構成を模式的に示す側面図である。なお、図3では、説明の簡略化のため、脚部20と胴体部50のみを示している。ここで、胴体部50は、例えば、図1に示すロボット1の体幹3、及び腰部4を含んでいる。従って、胴体部50は脚部に連結されている。また、図3では、右脚20と左脚30とがそろった状態となっているため、右脚20と左脚30との各関節角度が一致している。
制御部130は、目標状態量設定部132と、アンプ133と、目標トルク算出部135と、リミット値設定部136と、比較部137と、を備えている。そして、制御部130は、モータ141、及びモータ142を駆動するための駆動信号を出力する。そして、制御部130は、立脚状態のロボット1が転倒しないように制御する。ここでは、傾斜している床面Fにロボット1が立脚た状態で静止している。制御部130は、傾斜した床面Fの傾きが変わる、あるいは床面Fが上下に動く、などの外乱が生じた場合でも、ロボット1が転倒しないようにフィードバック制御する。
ここで、目標状態量設定部132には、ロボット1の目標状態量が設定されている。目標状態量には、胴体部50の目標状態量と、胴体部50以外の箇所の目標状態量が含まれる。胴体部50の目標状態量としては、例えば、胴体傾斜角度、胴体傾斜角速度、胴体並進加速度が含まれる。一方、胴体部50以外の目標状態量としては、足首関節以外の各関節の目標角度が含まれる。目標状態量設定部132には、例えば、脚部10の股関節や膝関節の目標関節角度が設定されている。なお、立脚状態における目標状態量は、予め定められていてもよく、所定のプログラムによって算出してもよい。
胴体部以外の目標状態量は、アンプ133に入力される。ここでは、1つのアンプ133が示されているが、実際には、関節の自由度に応じて複数のアンプ133が設けられている。アンプ133は、足首関節以外を駆動するためのアンプである。すなわち、アンプ133は、膝関節や股関節等を駆動するためのアンプである。そして、上記のアンプ133は左脚30、及び右脚20のそれぞれに対して設けられている。
アンプ133には適当なゲインが設定されている。そして、アンプ133は、目標関節角度に基づいて目標トルクを算出し、モータ141の目標トルクに応じた駆動信号を出力する。アンプ133から出力された駆動信号はモータ141に入力される。モータ141は、例えば、膝関節や股関節を駆動するための関節駆動部である。そして、モータ141は、アンプ133から入力される駆動信号によって駆動される。これにより、足首関節以外の関節が目標トルクで駆動され、目標関節角度になるよう制御される。なお、実際には、モータ141、及びアンプ133は、足首関節以外の関節の自由度に応じた数だけ設けられている。
胴体部50の目標状態量は、足首関節の目標トルクを算出する目標トルク算出部135に入力される。さらに、目標トルク算出部135には、センサ150で計測された胴体部50の状態量が入力される。胴体部50の状態量とは、胴体部50の現在の状態を示す値であり、胴体部50の状態が変化すると状態量も変化する。ここでは、胴体傾斜角度、胴体傾斜角速度、及び胴体並進加速度が状態量として、目標トルク算出部135に入力される。したがって、胴体部50の傾斜角度、傾斜角速度、並進加速度が変化すると、それに応じた状態量が変化する。もちろん、状態量は、胴体傾斜角度、胴体傾斜角速度、及び胴体並進加速度のうちの一つでもよく、2つ以上であってもよい。さらには、胴体傾斜角度、胴体傾斜角速度、及び胴体並進加速度以外の状態量を用いてもよい。
目標トルク算出部135は、センサ150で計測された胴体部50の状態量と、目標状態量とに基づいて、目標トルクを算出するためのコントローラである。具体的には、胴体傾斜角度、胴体傾斜角速度、及び胴体並進加速度のそれぞれに対して、目標状態量設定部132からの目標値とセンサ150からの計測値との差を求める。そして、目標値と計測値との差に所定のフィードバックゲインをかけて、目標トルクとする。これにより、足首関節25のモータ142に対する目標トルクが算出される。そして、目標トルク算出部135は、センサ150からの出力に応じてフィードバック制御を行う。従って、胴体部50の状態変化に応じて足首関節25の目標トルクが変化する。
目標トルク算出部135は、センサ150で計測された胴体部50の状態量と、目標状態量とに基づいて、目標トルクを算出するためのコントローラである。具体的には、胴体傾斜角度、胴体傾斜角速度、及び胴体並進加速度のそれぞれに対して、目標状態量設定部132からの目標値とセンサ150からの計測値との差を求める。そして、目標値と計測値との差に所定のフィードバックゲインをかけて、目標トルクとする。これにより、足首関節25のモータ142に対する目標トルクが算出される。そして、目標トルク算出部135は、センサ150からの出力に応じてフィードバック制御を行う。従って、胴体部50の状態変化に応じて足首関節25の目標トルクが変化する。
ここで、目標状態量設定部132に立脚状態における目標状態量を設定しておく。すなわち、目標状態量設定部132に、ロボット1が立って静止している状態における足首関節以外の目標関節角度や、胴体部50の目標傾斜角度等を設定しておく。これにより、立脚状態で静止しているときに外乱が生じても、転倒するのを防ぐことができる。例えば、立脚状態で床面Fの傾斜角が変化すると、床面Fから力を受ける。従って、傾斜角の変化に応じてロボット1の状態が変化する。この場合、センサ150で計測されている胴体傾斜角、胴体傾斜角速度、胴体並進加速度が設定されている目標状態量の値から変化する。目標トルク算出部135は、目標状態量とセンサ150での計測値との差に基づいて、目標トルクを算出する。また、足首関節以外の関節の角度が設定されている目標関節角度から変化する。ロータリーエンコーダなどで足首関節以外の角度を計測し、各関節角度が目標関節角度に戻るよう制御してもよい。これにより、胴体部50の状態量が目標状態量に近づいていき、外乱が生じた場合でも、転倒するのを防ぐことができる。そして、床面Fの傾斜角の変化が収束すれば、静止して、元の立脚状態に戻る。このように、目標状態量と計測値との差に基づいてフィードバック制御することによって、速やかに動作することができる。よって、転倒するのを防ぐことができ、安定して立脚状態を維持することができる。
ここで、目標トルク算出部135からの出力される目標トルクは、比較部137に入力される。なお、入力される目標トルクは足首関節を駆動するためのものである。リミット値設定部136には、足首関節の目標トルクに対するリミット値が設定されている。すなわち、リミット値設定部136は目標トルクに対するリミット値を設定し、その設定されたリミット値を記憶する。リミット値はモータ142が出力可能な最大トルクとは異なるものであり、最大トルクよりも低い値となっている。リミット値設定部136に設定されているリミット値は、比較部137に入力される。比較部137は、リミット値と、目標トルクとを比較する。そして、目標トルクがリミット値を越えていない場合、目標トルクに応じた駆動信号を、モータ142に出力する。一方、目標トルクがリミット値を越えていた場合、リミット値に応じた駆動信号をモータ142に出力する。これにより、モータ142がリミット値に対応するトルクで駆動する。すなわち、リミット値を駆動トルクとして、モータ142が駆動する。
なお、リミット値としては、目標トルクの上限、及び下限が設定される。ここで、足首関節の回転方向に応じて、トルクが正負となる。すなわち、正のトルクと負のトルクでは、足首関節の回転方向が反対となる。例えば、リミット値設定部136には、正のリミット値がトルクの上限値として設定され、負のリミット値がトルクの下限値として設定される。これにより、目標トルクの許容範囲が設定される。従って、足首関節を駆動する駆動トルクが許容範囲外となるのを防ぐことができる。すなわち、目標トルクが上限以上の場合は、上限値を駆動トルクとし、目標トルクが下限以下の場合は、下限値を駆動トルクとする。ここで、左右両脚の足首関節にそれぞれリミット値を設定する。
目標トルクにリミット値が設定されている場合、足首関節が柔らかくなる。従って、急に床面Fの傾斜角が変化した場合でも、足平が床面Fに倣う。すなわち、足裏が床面Fから剥がれない。換言すると、外乱が生じた場合でも足裏が床面Fから剥がれないようなリミット値を設定する。足平が床面Fに倣うため、足首関節のトルクを床面Fに確実に伝えることができる。すなわち、床反力によって胴体部50の姿勢を確実に制御することができる。これにより、外乱が生じた場合でも、ロボット1が転倒するのを防ぐことができる。
一方、足首関節の目標トルクにリミット値を設定していない場合、床面Fの傾斜角が急に変化すると、胴体部50の状態量の変化が大きくなってしまう。この場合、目標トルクが過大になってしまう。目標トルクが大きすぎると、足裏が床面Fから剥がれてしまう。よって、足首関節のトルクが床面Fに伝わらなくなり、姿勢を制御することが困難になる。姿勢を制御するためには、フィードバックゲインを低くして、足裏が剥がれないようにする必要用がある。しかしながら、フィードバックゲインを低くすると、制御性が低下してしまう。
本実施の形態では、足首関節の目標トルクにリミット値を設けている。そして、目標トルクがリミット値を越えた場合に、リミット値で足首関節を駆動している。これにより、足平が床面Fに倣うため、転倒するのを防ぐことができる。すなわち、床面Fの外乱によって、胴体部50の傾斜角度が変化すると、その傾斜角度を元に戻そうとする制御を行う。このとき、足裏が床面Fから剥がれない。さらに、傾斜角度の変化が大きい場合、足首関節の目標トルクのリミット値で制御される。このため、フィードバックゲインを高くすることができ、制御性を向上することができる。さらに、フィードバックゲインの細かな設定が不要となるため、コントローラをシンプルにすることができる。すなわち、外乱の周波数に応じて、フィードバックゲインを最適化する必要が無いため、コントローラを容易に設計することができる。このように、上記の制御は、高周波数から低周波数までの広い帯域の外乱に対して効果的である。さらに、従来技術のように、関節角度の補正量を算出する必要が無いため、制御の遅れを低減することができる。
また、目標トルクに基づいて足首関節を駆動しているため、外乱が生じた場合でも、速やかに元の状態に戻すことができる。なお、センサ150は、胴体部50の変化を検出できるものであればよく、上記のセンサに限られるものではない。すなわち、倒立振子でモデル化した場合、倒立振子が動いていることを検出することができるセンサ150を用いることができる。リミット値は、例えば、床反力中心点の存在領域に基づいて設定することができる。すなわち、つま先、又は踵が浮き始める直前の床反力の中心点位置を床反力中心点の存在領域の境界とする。具体的には、垂直荷重、及び水平荷重を求めて、存在領域の境界における足首周りのモーメントのつりあい式によって、リミット値を算出することができる。
なお、上記の説明では、図3のように両脚がそろっている状態について説明したが、この状態に限るものではない。例えば、左右両脚が前後方向に開いている状態であっても、立脚状態を維持することができる。また、脚の数は、2本に限られるものではなく、1本でもよく、3本以上でもよい。
次に、目標トルク算出部135の構成について図4〜図7を用いて説明する。図4〜図7は、目標トルク算出部135の構成を模式的に示すブロック線図である。ここで、図4〜図7には、それぞれ目標トルク算出部135の構成例が示されている。すなわち、図4〜図7には、目標トルク算出部135の異なる構成例が示されている。
まず、図4を用いて第1の構成例について説明する。図4では、胴体部50の傾斜角度、及び傾斜角速度に基づいて、フィードバック制御を行っている。具体的には、目標状態量設定部132に設定されている目標胴体傾斜角度と、センサ150で計測された胴体傾斜角度との差を取る。すなわち、傾斜角度に対して目標状態量と計測値との差を算出する。そして、この傾斜角度の差にフィードバックゲインK1をかける。そして、このフィードバックゲインK1からの出力値と、センサ150で計測された胴体傾斜角速度との差を取る。そして、傾斜角速度の差にフィードバックゲインK2をかけて目標トルクとする。このようにして目標トルクを繰り返し算出し、上述のようにフィードバック制御を行っている。
図5に示されている第2の構成例では、胴体部50の傾斜角度、傾斜角速度、及び並進加速度に基づいてフィードバック制御を行っている。具体的には、目標状態量設定部132に設定されている目標胴体傾斜角度と、センサ150で計測された胴体傾斜角度との差を取る。そして、この傾斜角度の差にフィードバックゲインK1をかける。そして、このフィードバックゲインK1からの出力値と、センサ150で計測された胴体傾斜角速度との差を取る。そして、この差にフィードバックゲインK2をかける。さらに、目標状態量設定部132に設定されている目標胴体並進加速度と、センサ150で計測された胴体並進加速度との差を取る。そして、この差にフィードバックゲインK3をかける。そして、フィードバックゲインK2からの出力値と、フィードバックゲインK3からの出力値との和を目標トルクとする。このように、第2の構成例では、胴体部50の並進加速度を考慮して目標トルクを繰り返し算出し、上述のようにフィードバック制御を行っている。
図6に示されている第3の構成例では、第2の構成例と同様に、胴体部50の傾斜角度、傾斜角速度、及び並進加速度に基づいてフィードバック制御を行っている。具体的には、目標状態量設定部132に設定されている目標胴体傾斜角度と、センサ150で計測された胴体傾斜角度との差を取る。そして、この傾斜角度の差にフィードバックゲインK1をかける。そして、このフィードバックゲインK1からの出力値と、センサ150で計測された胴体傾斜角速度との差を取る。そして、この差にフィードバックゲインK2をかける。さらに、目標状態量設定部132に設定されている目標胴体並進加速度と、センサ150で計測された胴体並進加速度との差を取る。そして、この差にフィードバックゲインK3をかける。ここまでの演算処理、第2の構成例と同様である。さらに、第3の構成例では、傾斜角度に対して時間積分を行なっている。すなわち、傾斜角度の差に対して時間積分を行った後、フィードバックゲインK4をかける。そして、フィードバックゲインK4の出力値と、フィードバックゲインK2の出力値と、フィードバックゲインK3の出力値との和を目標トルクとする。このように、第3の構成例では、胴体部50の並進加速度を考慮して、目標トルクを繰り返し算出し、上述のようにフィードバック制御を行っている。
図7に示されている第4の構成例では、胴体部50の傾斜角度、及び傾斜角速度に基づいてフィードバック制御を行っている。具体的には、目標状態量設定部132に設定されている目標胴体傾斜角度と、センサ150で計測された胴体傾斜角度との差を取る。そして、この傾斜角度の差にフィードバックゲインK1をかける。さらに、目標状態量設定部132に設定されている目標胴体傾斜角速度と、センサ150で計測された胴体傾斜角速度との差を取る。そして、胴体部50の傾斜角速度の差にフィードバックゲインK2をかける。フィードバックゲインK1の出力値と、フィードバックゲインK2の出力値との和を目標トルクとする。このようにして目標トルクを繰り返し算出し、上述のようにフィードバック制御を行っている。
なお、リミット値は、状況や環境に応じて変更してもよい。例えば、床面Fの傾斜角度や材質が異なる場合に、異なるリミット値を設定してもよい。例えば、床面Fが水平で傾斜角度が0°の時と、床面Fが45°傾斜している時で、リミット値を変えてもよい。さらに、垂直荷重が変化するような場合に、垂直加重に応じてリミット値を変化させてもよい。具体的には、ロボット1がエレベータなどに乗っており、床面が鉛直方向に加減速する状況では、ロボット1にかかる垂直荷重が変化する。このような場合、上昇時と、下降時と、静止時とで、異なるリミット値を設定するようにしてもよい。このように、リミット値を可変とすることで、状況に応じた制御を行うことができ、より立脚状態を安定して維持することができる。
1 ロボット、2 頭部、3 体幹、4 腰部、5 右腕、6左腕、
10 脚部、20 右脚、21 右股関節、22 右上腿、23 右膝関節、
24 右下腿、25 右足首関節、26 右足平、
30 左脚30、31 左股関節、32 左上腿、33 左膝関節、34 左下腿、
35 左足首関節、36 左足平、
130 制御部、132 目標状態量設定部、133 アンプ、
135 目標トルク算出部、136 リミット値設定部、137 比較部、
141 モータ、142 モータ、150 センサ、
10 脚部、20 右脚、21 右股関節、22 右上腿、23 右膝関節、
24 右下腿、25 右足首関節、26 右足平、
30 左脚30、31 左股関節、32 左上腿、33 左膝関節、34 左下腿、
35 左足首関節、36 左足平、
130 制御部、132 目標状態量設定部、133 アンプ、
135 目標トルク算出部、136 リミット値設定部、137 比較部、
141 モータ、142 モータ、150 センサ、
Claims (8)
- 足首関節が設けられた脚部と、前記脚部に連結された胴体部とを備える脚式ロボットであって、
駆動信号に応じて前記足首関節を駆動する足首関節駆動部と、
前記胴体部の状態量を計測するセンサと、
前記センサからの出力に応じて、前記足首関節の目標トルクを算出する目標トルク算出部と、
前記目標トルクに対するリミット値を設定し、前記設定したリミット値を記憶するリミット値設定部と、
前記リミット値と前記目標トルクを比較して、前記目標トルクが前記リミット値を超えた場合に前記リミット値に応じた駆動信号を前記足首関節駆動部に出力する比較部と、
を備える脚式ロボット。 - 前記胴体部の状態量が、前記胴体部の現在の状態を示す値であることを特徴とする請求項1に記載の脚式ロボット。
- 前記目標トルク算出部が、前記センサによって計測された胴体部の状態量と、前記胴体部の目標状態量との差に基づいて目標トルクを算出する請求項1、又は2に記載の脚式ロボット。
- 前記リミット値が可変であることを特徴とする請求項1、2、又は3に記載の脚式ロボット。
- 足首関節が設けられた脚部と、前記脚部に連結された胴体部とを備える脚式ロボットの制御方法であって、
前記胴体部の状態量を計測するステップと、
前記センサからの出力に応じて、前記足首関節の目標トルクを算出するステップと、
リミット値と前記目標トルクを比較して、前記目標トルクが前記リミット値を超えた場合に前記リミット値に応じた駆動信号を出力するステップと、
前記駆動信号に基づいて、前記足首関節を駆動するステップと、を備える脚式ロボットの制御方法。 - 前記胴体部の状態量が、前記胴体部の現在の状態を示す値であることを特徴とする請求項5に記載の脚式ロボットの制御方法。
- 前記目標トルクを算出するステップでは、前記計測された胴体部の状態量と、前記胴体部の目標状態量との差に基づいて目標トルクを算出する請求項5、又は6に記載の脚式ロボットの制御方法。
- 前記リミット値が可変であることを特徴とする請求項5、6、又は7に記載の脚式ロボットの制御方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2006311483A JP2008126330A (ja) | 2006-11-17 | 2006-11-17 | 脚式ロボット、及びその制御方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2006311483A JP2008126330A (ja) | 2006-11-17 | 2006-11-17 | 脚式ロボット、及びその制御方法 |
Publications (1)
Publication Number | Publication Date |
---|---|
JP2008126330A true JP2008126330A (ja) | 2008-06-05 |
Family
ID=39552689
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2006311483A Pending JP2008126330A (ja) | 2006-11-17 | 2006-11-17 | 脚式ロボット、及びその制御方法 |
Country Status (1)
Country | Link |
---|---|
JP (1) | JP2008126330A (ja) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2011206289A (ja) * | 2010-03-30 | 2011-10-20 | Toyota Motor Corp | 歩行支援装置 |
-
2006
- 2006-11-17 JP JP2006311483A patent/JP2008126330A/ja active Pending
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2011206289A (ja) * | 2010-03-30 | 2011-10-20 | Toyota Motor Corp | 歩行支援装置 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
JP6227343B2 (ja) | ロボットの歩行制御方法 | |
JP4998506B2 (ja) | ロボット制御装置、ロボット制御方法、及び脚式ロボット | |
KR101772974B1 (ko) | 휴머노이드 로봇의 인간 유사 동작 생성 방법 | |
TW544385B (en) | Two-legged walking-type moving apparatus and controlling device and method thereof | |
JP4417300B2 (ja) | 歩行補助装置 | |
EP2343163B1 (en) | Walking robot and method of controlling balance thereof | |
KR20130095973A (ko) | 보행 로봇 및 그 제어 방법 | |
KR20120134036A (ko) | 로봇 및 그 제어방법 | |
KR101766755B1 (ko) | 보행 로봇 및 그 제어방법 | |
EP2343161A1 (en) | Walking robot and method of controlling the same | |
KR20130049029A (ko) | 보행 로봇 및 그 제어 방법 | |
KR101466312B1 (ko) | 보행 로봇 및 그 제어 방법 | |
JP2004223712A (ja) | 歩行式ロボット及びその位置移動方法 | |
US20110172823A1 (en) | Robot and control method thereof | |
KR20120024098A (ko) | 보행 로봇 및 그 제어방법 | |
US20200290209A1 (en) | Control device for robot | |
US9802315B2 (en) | Controller for mobile robot | |
JP5198035B2 (ja) | 脚式ロボット及びその制御方法 | |
JP4985776B2 (ja) | ロボット制御装置、ロボット制御方法およびロボット制御プログラム | |
JP2009107033A (ja) | 脚式移動ロボット及びその制御方法 | |
JP4905041B2 (ja) | ロボット制御装置 | |
JP5040693B2 (ja) | 脚式ロボット、及びその制御方法 | |
JP2008126382A (ja) | 脚式移動ロボット、及びその制御方法 | |
JP2008126330A (ja) | 脚式ロボット、及びその制御方法 | |
JP2009255231A (ja) | 歩行制御装置および歩行制御方法 |