(57)【要約】【課題】絶対座標系基準の足平から胴体への位置姿勢を目標の位置姿勢に維持する制御系と足裏面を接地面に面接触させる制御系を設計し易い２足ロボットを提供する。【解決手段】絶対座標系基準の足平から胴体への位置姿勢を目標の位置姿勢に維持する制御は胴体の実際の姿勢角を目標胴体姿勢角に一致させる倒立制御部６４が担当する。接地面に対する足裏面の傾斜角は足平に設けられた距離センサ１６と足平姿勢角演算部５２によって検出される。検出された傾斜角と目標足平姿勢角の偏差は倒立制御部６４の出力に加算され倣い制御部５４へ入力される。足裏面を接地面に面接触させる制御は倣い制御部５４が担当する。ロボットの全体の制御系は倒立制御系のループの内側に倣い制御系のループが入れ子状に配置された構成となる。この構成により倣い制御系を設計した後に倒立制御系を設計することができる。倒立制御系と倣い制御系を順序立てて設計することができる。【選択図】図３
2008188684.tif 000002
【特許請求の範囲】
【請求項１】
脚の関節を駆動することによって実際の胴体姿勢角を目標胴体姿勢角に一致させる２足ロボットであり、
実際の胴体姿勢角を検出する手段と、
目標胴体姿勢角に対する検出した実際の胴体姿勢角の偏差を小さくするように、胴体を足首関節の回りに回転させるための胴体補正角を算出する手段と、
接地面に対する足裏面の相対角を検出する手段と、
検出した相対角に算出した胴体補正角を加算した角度を小さくする方向へ足平を回転させるための足平補正角を算出する手段と、
胴体と足平の相対回転角を、目標胴体姿勢角に足平補正角を加算した角度に一致させるように脚の関節を駆動する手段と、
を備えることを特徴とする２足ロボット。
【請求項２】
脚の関節を駆動することによって実際の胴体位置を目標胴体位置に一致させる２足ロボットであり、
実際の胴体位置を検出する手段と、
目標胴体位置に対する検出した実際の胴体位置の偏差を小さくするように、足平を軸にして胴体を回転させるための胴体補正角を算出する手段と、
接地面に対する足裏面の相対角を検出する手段と、
検出した相対角に算出した胴体補正角を加算した角度を小さくする方向へ足平を回転させるための足平補正角を算出する手段と、
胴体と足平の相対回転角を、目標胴体姿勢角に足平補正角を加算した角度に一致させるように脚の関節を駆動する手段と、
を備えることを特徴とする２足ロボット。
【請求項３】
足平補正角を算出する手段は、検出した相対角に加える胴体補正角の大きさに制限を設けることを特徴とする請求項１又は２に記載の２足ロボット。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、２本の脚が胴体に連結された２足ロボットに関する。
【背景技術】
【０００２】
２足ロボットは、胴体と、胴体に連結されている２本の脚を有する。脚は複数のリンクと複数の関節を有しており、隣接するリンク同士が関節を介して揺動可能に連結されている。脚の先端のリンクであり、接地面と接触するリンクを足平と称する。足平の底面、即ち接地面と接触する面を足裏面と称する。
２足ロボットを安定して立たせるためには、或いは安定して歩行させるためには、２足ロボットのＺＭＰ位置が適切な位置（予め設定された目標ＺＭＰ位置）となるようにロボットの関節を適切に制御する必要がある。なお、以下では「２足ロボット」を単に「ロボット」と称することがある。
ところで、接地面に予定外の凹凸が存在したり、接地面が予定外に傾斜していると、接地している脚の足裏面が予定外に傾斜し、その結果ロボット全体が予定外に傾斜する。ロボット全体が予定外に傾斜すると、接地している脚の足平と胴体の水平方向の偏差が大きくなり、ＺＭＰ位置が足裏の端まで移動してしまう虞がある。その結果、足裏の端のＺＭＰ位置を回転中心としてロボットが転倒する虞が生じる。
ロボット全体の傾斜は胴体の姿勢角に影響を与える。即ち、足平に対するＺＭＰ位置の相対的位置の変化は胴体の姿勢角の変化に顕著に現れる。そこで、ＺＭＰ位置を足裏面内に維持するために、胴体の姿勢角に応じてロボットを制御する技術が特許文献１に開示されている。特許文献１に開示されたロボットでは、胴体の実際の姿勢角を望ましい姿勢角（目標胴体姿勢角）に一致させるフィードバック制御系が構成されている。
【０００３】
【特許文献１】特開平５−２５３８６６号公報
【発明の開示】
【発明が解決しようとする課題】
【０００４】
前述したように２足ロボットでは、転倒を回避するために、絶対座標系基準のロボットの足平から胴体への位置姿勢を目標の位置姿勢に維持する制御が必要である。絶対座標系基準のロボットの足平から胴体への位置姿勢を目標の位置姿勢に維持する制御を倒立制御と称する。特許文献１に例示されるように、２足ロボットの制御に、実際の胴体姿勢角と目標胴体姿勢角の偏差を小さくするフィードバック制御系が倒立制御系として実装される場合がある。
２足ロボットでは、倒立制御のほかに、脚の足裏面を接地面に面接触させる制御が必要となる。足裏面と接地面が面接触していないと、床反力に基づくモーメントをロボット全体に加えることができず、ロボット全体の傾斜を制御することができないからである。脚の足裏面を接地面に面接触させる制御を倣い制御と称する。具体的には、２足ロボットに、接地面に対する足裏面の相対角（接地面に対する足裏面の傾斜角）を検出するセンサを搭載する。倣い制御系は、検出した相対角を小さくする（最終的にはゼロにする）フィードバック制御系として実現される。なお、接地面に対する足裏面の相対角を足平姿勢角と称する場合がある。
倒立制御系は胴体姿勢角を制御するものであり、倣い制御系は足平姿勢角を制御するものであるため、従来の２足ロボットでは、夫々の制御系が独立かつ並列したフィードバック制御系として実装されていた。そのような制御系では、倒立制御系によって胴体姿勢角が決定され倣い制御系によって足平姿勢角が決定される。
ところで、リンクと関節で構成される脚を有するロボットでは、最終的には夫々の関節の目標駆動量（典型的には目標関節角）を算出し、目標駆動量に基づいて各関節を駆動する。例えば目標関節角を算出する場合には、各関節は、その角度が目標関節角に一致するように制御される。ここで、目標関節角は胴体と足平の相対位置と相対回転角を規定する。従って目標関節角は、倒立制御系によって決定された胴体姿勢角と倣い制御系によって決定された足平姿勢角の角度差（即ち胴体と足平の相対回転角）を実現する関節角として算出される。倒立制御系と倣い制御系は共に胴体と足平の相対回転角に影響を与える。倣い制御が相対回転角に与える影響と倒立制御が相対回転角に与える影響が互いに相反する場合がある。以下、図１、２を参照して具体的に説明する。
図１、２は、胴体１０と脚２０を有する２足ロボット１００の模式的側面図である。なお、図１、２には、ロボット１００の胴体１０と一方の脚２０のみを示しており他方の脚は図示を省略してある。また、図１、２は、説明を簡単にするために、ロボット１００の動作を２次元に限定している。図１、２に示す座標系Ｏｇ−ＸｇＺｇは絶対座標系であり、軸Ｚｇは鉛直方向を向いている。胴体１０の位置は、胴体１０に固定された点Ｏｂの絶対座標系における位置で表現される。足平リンク２６の位置は、足平リンク２６に固定された点Ｏｆの絶対座標系における位置で表現される。Ｖｂは点Ｏｂを通る鉛直線を表しており、Ｖｆは点Ｏｆを通る鉛直線を表している。胴体１０の姿勢角は、胴体１０に固定された座標系Ｏｂ−ＸｂＺｂのＺｂ軸の鉛直線に対する角度で表現される。
図１に、ロボットに実現させたい全体姿勢（絶対座標系に対する姿勢）を示す。ロボットに実現させたい全体姿勢を目標全体姿勢と称する。今、図１に示す目標全体姿勢となるようにロボットを制御した結果、図２に示す姿勢が実現された場合を想定する。図２は、実現された姿勢が目標全体姿勢よりも前傾した姿勢となっていることを示している。なお、胴体１０と足平リンク２６の相対回転角は図１と図２で同じである。
図１に示すように、目標全体姿勢においては、胴体１０と足平リンク２６の水平方向の偏差はＬｄである。一方、実現された姿勢においては、胴体１０と足平リンク２６の水平方向の偏差はＬｒである。実現された姿勢は前傾しているために、実際の偏差Ｌｒは目標とする偏差Ｌｄよりも大きくなる。即ち、ロボット全体が傾斜すると、ロボットのＺＭＰ位置が足裏の端に移動してしまう可能性が大きくなる。ロボット全体が前傾したことは、胴体１０の姿勢角θｂに反映される。従って、倒立制御系は、図２に示す胴体姿勢角θｂを図１に示す角度（図１に示す目標全体姿勢では胴体の姿勢角（目標胴体姿勢角）はゼロである）に一致するように胴体姿勢角を修正する。具体的には図２において胴体１０を、足首関節を中心に反時計回りにθｂだけ回転させる。その結果、ロボットの目標関節角は、胴体姿勢角と足平姿勢角の相対的な角度差が反時計回りにθｂだけ修正されるように決定される。決定された目標関節角が実現されると、爪先側（図２において足平リンク２６の右側）が脛から遠ざかる方向に足平リンク２６が回転する。足平リンク２６が接地面Ｓに接地している場合には、足平リンク２６は絶対座標系に対して動かずにロボット全体が足平リンク２６を軸にして反時計回りに回転する。その結果、実際の偏差Ｌｒを目標とする偏差Ｌｄに近づけることができる。
一方、ロボット全体が前傾すると、足平リンク２６は踵側（図２において足平リンク２６の左側）が接地面から離れる方向に傾く。このとき倣い制御系は、足裏面と接地面の面接触を維持するように、爪先側を脛に近づける方向（図２において反時計回り）に足平リンク２６を回転させる。
上記の場合、倒立制御系と倣い制御系は、胴体と足平の相対的な回転角を相反する方向へ変化させようとする。どちらの制御が優勢に作用するかは夫々の制御系の設計次第である。
上記の通り、倒立制御系と倣い制御系は、自己の制御特性が互いに相手の制御性能に影響を及ぼす。従って、倒立制御系と倣い制御系が独立かつ並列したフィードバックループの場合には、夫々の制御系の設計（例えばＰＤ制御則を用いるかＰＩＤ制御則を用いるかなどの制御則の選定、或いは、選定した制御系の時定数のパラメータの決定など）は試行錯誤的にならざるを得ない。制御系の設計が困難となる。
本発明は、上記の課題に鑑みてなされたものであり、その目的は、倒立制御系と倣い制御系の設計が容易な２足ロボットを提供することにある。
【課題を解決するための手段】
【０００５】
本発明の２足ロボットは、脚の関節を駆動することによって実際の胴体姿勢角を目標胴体姿勢角に一致させるロボットに具現化できる。この２足ロボットは、実際の胴体姿勢角を検出する手段と、目標胴体姿勢角に対する検出した実際の胴体姿勢角の偏差を小さくするように、胴体を足首関節の回りに回転させるための胴体補正角を算出する手段と、接地面に対する足裏面の相対角を検出する手段と、検出した相対角に算出した胴体補正角を加算した角度を小さくする方向へ足平を回転させるための足平補正角を算出する手段と、胴体と足平の相対回転角を、目標胴体姿勢角に足平補正角を加算した角度に一致させるように脚の関節を駆動する手段を備える。
なお、「目標胴体姿勢角に対する検出した実際の胴体姿勢角の偏差」は、目標胴体姿勢角を基準としたときの、目標胴体姿勢角に対する検出した実際の胴体姿勢角の差を意味する。同様に、「接地面に対する足裏面の相対角」も、接地面を基準としたときの、接地面に対する足裏面の角度を意味する。従って、偏差、及び相対角には正負の区別がある。また、偏差と相対角の正負は、ともに同じ特定の座標系（典型的には絶対座標系）を基準に規定される。上記の偏差に正負の区別があるので、偏差に基づいて算出される胴体補正角にも正負の区別がある。従って、「検出した相対角に算出した胴体補正角を加算した角度を小さくする方向」とは、特定の座標系からみたときの相対角と胴体補正角を加算した角度を、その特定の座標系からみて小さくする方向を意味する。
【０００６】
上記の２足ロボットでは、胴体補正角を算出する手段が倒立制御系に相当する。足平補正角を算出する手段が倣い制御系に相当する。ただし、上記の２足ロボットは、倒立制御系の出力（即ち、胴体補正角）に、接地面に対する足裏面の相対角を加算した角度を倣い制御系へ入力する。即ち、上記の２足ロボットの全体の制御系は、倒立制御系のフィードバックループ（実際の胴体姿勢角と目標胴体姿勢角の偏差をフィードバックするループ）の内側に倣い制御系のフィードバックループ（足裏面の相対角をフィードバックするループ）が入れ子状に連結した制御系を構成している。この全体制御系では、関節の目標駆動量（例えば目標関節角）を最終的に決定するのは倣い制御系となる。即ち、倒立制御系の出力が関節の目標駆動量の決定に直接には影響を与えることがなく（倣い制御系を介して間接的には影響する）、倣い制御の出力が関節の目標駆動量を直接に決定する。従って、適切に機能する内側の倣い制御系を設計し、倣い制御系の制御性能を確定した上で、外側の倒立制御系を設計することが可能となる。制御系の設計を段階的に行えるので、制御系の設計が容易になる。しかも、倣い制御系のフィードバックループを倒立制御系のフィードバックループの内側に配置することによって、倒立制御系より先に倣い制御系が機能する制御系を実現できる。これにより、倒立制御に先立って足裏面と接地面の面接触を保証する制御系を実現できる。
なお、関節の目標駆動量は、目標関節角の他に関節の目標トルクや目標関節角速度で与えられてもよい。
本発明によれば、倒立制御と倣い制御の制御系の設計が容易であり、倒立制御系より先に倣い制御系が機能する制御系を有する２足ロボットを実現できる。
【０００７】
図１と図２で説明したように、胴体と足平の水平方向の偏差は胴体姿勢角に顕著に現れる。そこで、上記の２足ロボットでは、倒立制御系を、実際の胴体姿勢角と目標胴体姿勢角の偏差をフィードバックする制御系として構成した。実際の胴体位置が検出できる場合には、２足ロボットは次の構成であってもよい。
２足ロボットは、実際の胴体位置を検出する手段を備える。また、検出した実際の胴体位置と目標胴体位置の偏差を小さくするように、足平を軸にして胴体を回転させるための胴体補正角を算出する手段を備える。
また、この２足ロボットは、前述した２足ロボットと同様に、接地面に対する足裏面の相対角（傾斜角）を検出する手段と、検出した相対角に算出した胴体補正角を加算した角度を小さくする方向へ足平を回転させるための足平補正角を算出する手段と、胴体と足平の相対回転角を、目標胴体姿勢角に足平補正角を加算した角度に一致させるように脚の関節を駆動する手段を備える。
【０００８】
図１における胴体の位置（点Ｏｂの位置）が目標胴体位置に相当する。図１、図２において「実際の胴体位置と目標胴体位置の偏差」は、図１のＬｄから図２のＬｒを引いた値に相当する。図１、２から、この値が、実際の胴体姿勢角と目標胴体姿勢角の偏差（図２のθｂ）に対応することは明らかである。従って、倒立制御系として、前述した２足ロボットにおける「検出した実際の胴体姿勢角と目標胴体姿勢角の偏差を小さくするように胴体を足首関節の回りに回転させるための胴体補正角を算出する手段」を、「検出した実際の胴体位置と目標胴体位置の偏差を小さくするように、足平を軸にして胴体を回転させるための胴体補正角を算出する手段」に置き換えても同様の効果を得ることができる。
【０００９】
また本発明の２足ロボットでは、足平補正角を算出する手段は、検出した相対角に加える胴体補正角の大きさに制限を設けることが好ましい。
足平補正角を算出する手段、即ち倣い制御系は、接地面に対する足平の相対角に胴体補正角を加算した角度を入力として足平補正角を算出する。胴体補正角が大きくなると、足裏を接地面に面接触させる倣い制御系の本来の目的が達成できなくなる可能性がある。即ち、足裏面が接地面から離れてしまう虞がある。胴体補正角の大きさを制限することによって、倣い制御系が適切に機能することを保証する。足裏面が接地面から離れてしまうことを防止できる。
【発明の効果】
【００１０】
本発明によれば、倒立制御系と倣い制御系の設計が容易な２足ロボットを実現することができる。
【実施例】
【００１１】
本発明に係る実施例の２足ロボットを、図面を参照して説明する。なお、本実施例では、説明を簡単にするために、２足ロボット１００の動作を２次元に限定して説明する。以下の説明は、３次元空間で動作する場合においても同様に成立する。以下では２足ロボット１００を単にロボット１００と称する場合がある。
図１は、ロボット１００の模式的断面図である。ロボット１００は、胴体１０と、胴体１０に連結された２本の脚を有する。なお、図１には、一方の脚２０のみを示しており、他方の脚は図示を省略している。図１において、ロボット１００の右側がロボット１００の前方である。
胴体１０は、ロボット１００の動作（脚の各関節の動作）を制御するコントローラ３０と、胴体１０の加速度を検出する加速度センサ１２と、胴体１０の鉛直方向に対する傾斜角（姿勢角）を検出する姿勢角センサ１４を備える。
脚２０は、股関節２１、膝関節２３、足首関節２５、大腿リンク２２、脛リンク２４、及び足平リンク２６を備える。大腿リンク２２と脛リンク２４は、直線で模式化して示してある。股関節２１は、胴体１０と大腿リンク２２を揺動可能に連結している。膝関節２３は、大腿リンク２２と脛リンク２４を揺動可能に連結している。足首関節２５は、脛リンク２４と足平リンク２６を揺動可能に連結している。
足平リンク２６には、足平リンク２６の裏面（足裏面）と接地面Ｓとの距離を検出する距離センサ１６ａ、１６ｂが備えられている。距離センサ１６ａは、足平リンク２６の前側の所定位置に固定されており、足裏面の前側の所定位置と接地面Ｓの間の距離を検出する。距離センサ１６ｂは、足平リンク２６の後ろ側の所定位置に固定されており、足裏面の後ろ側所定位置と接地面Ｓの間の距離を検出する。
各関節には図示しないモータが内蔵されており、コントローラ３０からの指令に基づいて駆動される。モータを駆動することによって、関節に連結されたリンク同士を揺動させることができる。図示を省略している他方の脚も、脚２０と同様の構造を有している。コントローラ３０が２本の脚の関節（より厳密には関節の関節角）を適宜制御することによって、ロボット１００は歩行することができる。
【００１２】
図１に示すように、絶対座標系Ｏｇ−ＸｇＺｇを設定する。座標軸Ｚｇは、鉛直方向に伸びている。
胴体１０には、胴体座標系Ｏｂ−ＸｂＺｂが設定されている。胴体座標系Ｏｂ−ＸｂＺｂは、胴体１０に対して固定された特定点を原点Ｏｂとし、胴体１０に対して固定されている座標系である。座標軸Ｘｂは、原点Ｏｂから胴体１０の前方に伸びており、座標軸Ｚｂは、原点Ｏｂから胴体１０の上方へ伸びている。
足平リンク２６には、足平座標系Ｏｆ−ＸｆＺｆが設定されている。足平座標系Ｏｆ−ＸｆＺｆは、足平リンク２６に対して固定された特定点を原点Ｏｆとし、足平リンク２６に対して固定されている座標系である。座標軸Ｘｆは、足平リンク２６が水平な接地面Ｓに面接触しているときに、水平面内で足平リンク２６の前方へ伸びる方向に設定されている。座標系Ｚｆは、足平リンク２６が水平な接地面Ｓに面接触しているときに、垂直方向へ伸びる方向に設定されている。
なお、図１に示す破線Ｖｂは、胴体位置Ｏｂを通る鉛直線を表しており、破線Ｂｆは、足平位置Ｏｆを通る鉛直線を表している。
【００１３】
ロボット１００は、コントローラ３０に記憶されている歩容データに基づいて制御される。歩容データには、胴体１０の目標位置（目標胴体位置）、胴体１０の目標姿勢角（目標胴体姿勢角）、足平リンク２６の目標位置（目標足平位置）、及び足平リンク２６の目標姿勢角（目標足平姿勢角）の夫々の時系列データが含まれる。歩容データにはロボット１００が有する２本の脚の夫々の足平の目標足平位置と目標足平姿勢角の時系列データが含まれる。
歩容データは、ロボット１００を実際に動作させる前に、シミュレーション等によってロボット１００を安定して歩行させることができるように作成されている。即ち、目標胴体位置、目標胴体姿勢角、目標足平位置、及び目標足平姿勢角は、ロボットのＺＭＰ位置が足裏面内となる関係を満足するように設定されている。作成された歩容データは、ロボット１００のコントローラ３０に記憶される。後述するように、コントローラ３０は、歩容データに含まれる目標胴体位置等に実胴体位置等を一致させるように各関節を制御する。
【００１４】
目標胴体位置は、絶対座標系Ｏｇ−ＸｇＺｇに対する胴体座標系Ｏｂ−ＸｂＺｂの原点Ｏｂの位置で表される。目標胴体姿勢角は、絶対座標系Ｏｇ−ＸｇＺｇに対する胴体座標系Ｏｂ−ＸｂＺｂの傾きで表される。絶対座標系の座標軸Ｚｇは鉛直上方に伸びているので、目標胴体姿勢角は、鉛直方向に伸びる直線と胴体座標系の座標軸Ｚｂのなす角度で表すことができる。胴体１０の実際の位置と姿勢角を夫々実胴体姿勢角と実胴体姿勢角と称する。実胴姿勢角は、胴体１０に備えられた姿勢角センサ１４によって検出することができる。
目標足平位置は、絶対座標系Ｏｇ−ＸｇＺｇに対する足平座標系Ｏｆ−ＸｆＺｆの原点Ｏｆの位置で表される。目標足平姿勢角は、接地面に対する足裏面の角度で表される。目標足平姿勢角は、絶対座標系Ｏｇ−ＸｇＺｇに対する足平座標系Ｏｆ−ＸｆＺｆの傾きで表されていてもよい。目標足平姿勢角は、接地面に対する足裏面の角度で表されていても、絶対座標系Ｏｇ−ＸｇＺｇに対する足平座標系Ｏｆ−ＸｆＺｆの傾きで表されていても、両者は実質的に等価である。これは次の理由による。歩容データの目標足平姿勢角を作成するときの接地面は、シミュレーション上で設定された仮想的な接地面である。仮想的な接地面の絶対座標系Ｏｇ−ＸｇＺｇにおける傾きは、実際の接地面の傾きに基づいて設定されてもよいし、実際の接地面の傾きに関わらず仮の傾きに設定されてもよい。いずれの場合もシミュレーションにおける仮想的な接地面の絶対座標系Ｏｇ−ＸｇＺｇに対する傾きが設定されている。従って、目標足平姿勢角が、接地面に対する足裏面の角度で表されていても、絶対座標系Ｏｇ−ＸｇＺｇに対する足平座標系Ｏｆ−ＸｆＺｆの傾きで表されていても、両者は実質的に等価となる。以下では、足平リンク２６の実際の位置と姿勢角を夫々実足平位置と実足平姿勢角と称する。
実足平姿勢角は、実際の接地面と足裏面がなす角度（傾き）で表され、後述するように足平リンク２６に備えられた距離センサ１６で検出することができる。実足平姿勢角と比較しやすいように、目標足平姿勢角は仮想的な接地面に対する仮想的な足裏面の傾きで表されているとする。
【００１５】
コントローラ３０が実行する制御の概要について説明する。コントローラ３０の構造は後述する。コントローラ３０は、実胴体位置と実胴体姿勢角を夫々目標胴体位置と目標胴体姿勢角に一致させる制御（この制御が倒立制御である）を実行するとともに、実足平位置と実足平姿勢角を夫々目標足平位置と目標足平姿勢角に一致させる制御（この制御が倣い制御である）を実行する。
図２は、ロボット１００が前方（絶対座標系において座標軸Ｘｇが伸びる方向）へ傾斜したときの状態を示す模式的側面図である。今、図１に示すように目標胴体姿勢角（鉛直方向に対する胴体の傾きの目標値）はゼロ度であるとする。目標足平姿勢角（歩行面に対する足裏面の傾きの目標値）はゼロ度である。目標足平姿勢角がゼロ度であるのは、目標足平位置が、足平リンク２６が接地面Ｓに接触する位置を示すときには、目標足平姿勢角は、足平リンク２６の足裏面が接地面Ｓと面接触する角度に設定されるからである。なお、「目標足平位置が、足平リンク２６が接地面Ｓに接触する位置を示すとき」とは、歩容データを作成するときにコンピュータシミュレーション上で仮想的な足平リンク２６の足裏面が仮想的な接地面に接触する位置を示すとき、という意味である。
【００１６】
図２に示す状態（ロボット１００が前傾した状態）では、実胴体姿勢角はθｂとなり、実足平姿勢角はθｆとなる。なお、後述するように、実足平姿勢角は目標足平姿勢角に一致するように制御されるので、実際には図２のように実足平姿勢角θｆが大きくなることはない。
実胴体姿勢角θｂは、胴体１０に備えられた姿勢角センサ１４で検出される。姿勢角センサ１４は、例えば胴体１０の角速度を検出するジャイロと、ジャイロの出力（角速度）を積分する積分器と、重力加速度ベクトルを検出する３軸加速度センサで構成される。実足平姿勢角θｆは、足平リンク２６が備える距離センサ１６ａ、１６ｂの出力から求められる。距離センサ１６ａは、夫々足平リンク２６の前方の所定位置における足裏面と接地面Ｓとの距離を検出し、距離センサ１６ｂは、足平リンク２６の後方の所定位置における足裏面と接地面Ｓとの距離を検出する。従って、距離センサ１６ａが検出する距離と１６ｂが検出する距離の差から足平リンク２６の足裏面の接地面Ｓに対する傾きを求めることができる。
なお、目標足平姿勢角は歩容データを作成するときのコンピュータシミュレーションにおける仮想的な接地面に対してゼロ度に設定されている。従って、実際の接地面Ｓが仮想的な接地面と異なる傾き（絶対座標系に対する傾き）を有している場合でも、実足平姿勢角を目標足平姿勢角に一致させることによって、足裏面を接地面に面接触させることができる。
【００１７】
まず倒立制御系について説明する。
倒立制御系は、ロボット１００の胴体位置姿勢（実際の胴体位置と実際の胴体姿勢角）を目標位置姿勢（目標胴体位置と目標胴体姿勢角）に維持する機能を果たす。図１では、足平リンク２６と胴体１０の水平方向の偏差はＬｄである。このＬｄは、足平リンク２６の位置と胴体１０の位置が夫々目標足平位置と目標胴体位置に位置するときの偏差を表している。即ち、Ｌｄは、歩容データ上における足平と胴体の水平方向の偏差の大きさを表している。図２に示す状態では、ロボット１００全体が前傾することによって、実際の偏差Ｌｒは、歩容データ上の偏差Ｌｄよりも大きくなっている。しかしながら、足平リンク２６と胴体１０の水平方向の偏差Ｌｒを検出することは厄介である。そこで、足平リンク２６と胴体１０の水平方向の偏差Ｌｒの代わりに胴体１０の実際の姿勢角と目標胴体姿勢角の偏差を利用する。姿勢角の偏差を小さくすることによってＺＭＰ位置を足裏面に維持できるのは次の理由による。
歩容データでは胴体１０と足平リンク２６の夫々の目標位置と姿勢角が与えられるが、実際の制御対象は関節角である。関節角は、胴体１０と足平リンク２６の相対位置と相対回転角を規定するにすぎない。即ち、ロボットの各関節は、歩容データから算出される胴体１０と足平リンク２６の相対位置と相対回転角を実現するように制御される。ロボットの各関節が、歩容データから算出される胴体１０と足平リンク２６の相対位置と相対回転角を実現するようにほぼ正確に制御されていると仮定すると、ロボット全体をひとつの剛体と見なすことができる。ここで、足裏面が接地する接地面に予定外の凹凸や予定外の傾斜が存在する場合、ロボット全体が傾斜する。胴体１０の実際の姿勢角は目標胴体姿勢角からロボット全体の傾斜角だけすれる。ロボット全体が剛体と見なせる場合には、足平リンク２６と胴体１０の水平方向の偏差は、ロボット全体の傾斜角（即ち、胴体１０の実際の姿勢角と目標胴体姿勢角の偏差）にほぼ比例する。倒立制御系は、胴体１０の姿勢角を目標胴体姿勢角に近づける胴体補正角を算出する。図２に示す状態の場合、胴体姿勢角を足首関節の回りに反時計回りに回転させる胴体補正角を求める。胴体補正角を実現させると、足平リンク２６に対する胴体１０の相対回転角が反時計回りに胴体補正角だけ変化すると共に、足平リンク２６と胴体１０の相対位置も変化する。その結果、胴体１０と足平リンク２６の水平方向の偏差を小さくすることができる。
【００１８】
次に倣い制御系について説明する。倣い制御系は、実足平姿勢角を目標足平姿勢角に一致させるように（即ち、足裏面と接地面の面接触を維持するように）、足平リンク２６の爪先側を脛リンク２４に近づける方向に足平リンク２６を回転させる。
【００１９】
即ち、コントローラ３０内では、実胴体姿勢角と目標胴体姿勢角の偏差に基づくフィードバック制御系（倒立制御系）と実足平姿勢角と目標足平姿勢角の偏差（この偏差は、接地面に対する足裏面の傾斜角に相当する）に基づくフィードバック制御系（倣い制御系）が混在する。本実施例のコントローラ３０内では、前者のフィードバック制御系の内側に後者のフィードバック制御系が入れ子状に構成される。
なお、従来は、倒立制御系が実胴体姿勢角と目標胴体姿勢角の偏差に基づいて目標胴体姿勢角を補正し、倒立制御系と同時並行して倣い制御系が実足平姿勢角と目標足平姿勢角の偏差に基づいて目標足平姿勢角を補正する。補正された目標胴体姿勢角と補正された目標足平姿勢角を実現する目標関節角を算出する。即ち、２足ロボットのコントローラ内には、倒立制御系と倣い制御系が並列に構成されていた。そうすると、倒立制御系と倣い制御系は夫々独立に設計しなければならず、倒立制御系と倣い制御系が互いに相反する方向に足平リンクを回転させようとする状況においてどちらの制御系をどの程度優勢に作用させたらよいか試行錯誤的に夫々の制御系を設計しなければならなかった。
次に、本発明のロボット１００のコントローラ３０の構成について詳細に説明する。
【００２０】
図３にロボット１００のブロック図を示す。図３は特に、コントローラ３０内の制御ブロック図を詳細に示している。
コントローラ３０は、記憶部５０、足平姿勢角演算部５２、倣い制御部５４、逆キネマティクス演算部５６（図３には「逆キネマ演算部」と記載してある）、モータドライバ５８、加速度制御部６２、倒立制御部６４、リミッタ６６、及び２回微分器６０（図３には「ｓ２」と記載してある）を備えている。その他に、加算器７２、７４、及び７６、差分器７０、７８、及び８０を備えている。図３に示す２回微分器の「ｓ」は、ラプラス演算子を意味しており、「ｓ２」が２回微分することを意味している。
記憶部５０には、歩容データ（目標胴体位置、目標胴体姿勢角、目標足平位置、及び目標足平姿勢角の時系列データ）が記憶されている。歩容データ上で足裏が接地面と接触するときは、目標足平姿勢角（仮想的な接地面に対する仮想的な足裏面の傾き）はゼロに設定されている。足裏面と接地面を面接触状態にするためである。また、歩容データ上の各目標値は、ロボットのＺＭＰ位置が接地している脚の足裏面内となる関係を満たすように決定されている。
【００２１】
コントローラ３０の構成の概要を説明する。
記憶部５０に記憶された目標足平位置は、逆キネマティクス演算部５６に入力される。なお、目標足平位置は、目標足平位置と実足平位置の偏差に基づいて補正された後に逆キネマティクス演算部５６に入力されるが、ここでは説明を省略する。目標足平位置の補正については後述する。
記憶部５０に記憶された目標胴体位置は、目標胴体加速度（目標胴体位置を２回微分することによって求められる）と実胴体加速度の偏差に基づいて補正された後に逆キネマティクス演算部５６に入力される。
記憶部５０に記憶された目標胴体姿勢角は、そのまま逆キネマティクス演算部５６に入力される。同時に、差分器８０によって、目標胴体姿勢角と実胴体姿勢角の偏差（胴体姿勢角偏差）が求められる。胴体姿勢角偏差は倒立制御部６４に入力されて、胴体姿勢角偏差を小さくする方向に胴体を回転させる胴体補正角が算出される。
記憶部５０に記憶された目標足平姿勢角は、差分器７０によって、実足平姿勢角との偏差（足平姿勢角偏差）が求められる。加算器７２によって、胴体補正角と足平姿勢角偏差が加算される。加算された結果は倣い制御部５４に入力される。倣い制御部５４によって、入力された角度（胴体補正角と足平姿勢角偏差を加算した角度）を小さくする方向へ足平を回転させる足平補正角が求められる。
記憶部５０に記憶された目標足平姿勢角は、加算器７４で足平補正角が加算された後に（足平補正角で補正された後に）逆キネマティクス演算部５６へ入力される。
以上により、逆キネマティクス演算部５６には、補正された目標胴体位置と補正された目標足平位置（目標足平位置の補正制御系については図示を省略してある）と補正された目標足平姿勢角と補正されていない目標胴体姿勢角が入力される。これらの値から、逆キネマティクス演算部５６では逆キネマティクスの演算によって足の各関節の目標関節角が算出される。ここで、夫々の目標値は、絶対座標系に対する値で表されている。逆キネマティクス演算部５６では、目標足平位置と目標胴体位置の差から足平と胴体の相対位置を計算し、目標足平姿勢角（足平補正角によって補正されている）と目標胴体姿勢角の差から足平と胴体の相対回転角を計算する。計算された相対位置と相対回転角を実現する目標関節角が算出される。
ここで、前述したように、歩容データ上で足裏が接地面に接地しているとき（及び歩容データ上で接地面に接地する直前と接地面から離れる直後）には目標足平姿勢角（仮想的な接地面に対する仮想的な足裏面の傾き）はゼロであるので、加算器７４から逆キネマティクス演算部５６へ入力される角度は足平補正角に等しくなる。即ち、逆キネマティクス演算部５６は、胴体１０と足平リンク２６の相対回転角を目標胴体姿勢角に足平補正角を加算した角度に一致させる目標関節角を算出する。
算出された各関節の目標関節角はモータドライバ５８に入力される。モータドライバ５８は、各関節の関節角が目標関節角に一致するように関節に内蔵されたモータを制御する。
【００２２】
次にコントローラ３０の機能を詳細に説明する。
まず、実胴体位置を目標胴体位置に高域で一致させる制御系を詳細に説明する。なお、「高域」とは、制御系の周波数帯域の高域を意味する。即ち、「実胴体位置を目標胴体位置に高域で一致させる制御系」とは、実胴体位置を目標胴体位置に迅速に一致させる制御系を意味する。
記憶部５０に記憶された目標胴体位置は、２回微分器６０に送られる。２回微分器６０は、目標胴体位置を２回微分して胴体１０の目標加速度（目標胴体加速度）を出力する。なお、コントローラ３０はデジタル制御系として構成されているので、目標胴体位置の微分は、より正確には目標胴体位置の時系列データの差分によって近似的に求められる。
胴体１０に備えられた姿勢角センサ１４によって胴体１０の実際の加速度（実胴体加速度）が検出される。差分器７８によって、目標胴体加速度と実胴体加速度の差分（加速度差分）が求められる。加速度差分は、加速度制御部６２に入力される。
加速度制御部６２では、加速度差分に基づいて目標胴体位置の補正量が求められる。具体的には、加速度制御部６２には、比例要素と２次遅れ要素などの伝達関数に基づく制御系が構成されている。また加速度制御部６２は、加速度の次元を有する入力を位置の次元に変換して出力する。加速度制御部６２によって求められた目標胴体位置の補正量は、加算器７６によって、記憶部５０に記憶された目標胴体位置に加算される。目標胴体位置の補正量によって補正された目標胴体位置は、逆キネマティクス演算部５６に入力される。
【００２３】
次に、実胴体位置と実胴体姿勢角を夫々目標胴体位置と目標胴体姿勢角に一致させる制御系を詳細に説明する。この制御系は、胴体の姿勢角に関する倒立制御系である。
記憶部５０に記憶された目標胴体姿勢角は、直接に逆キネマティクス演算部５６に入力される。一方で、差分器８０によって、目標胴体姿勢角と実胴体姿勢角の偏差（胴体姿勢角偏差）が求められる。実胴体姿勢角は、胴体１０に備えられた姿勢角センサ１４によって検出される。
胴体姿勢角偏差は、倒立制御部６４に入力される。倒立制御部６４には、ＰＤ制御則やＰＩＤ制御則などの制御系が構成されている。倒立制御部６４の制御性能（即ち、実胴体姿勢角を目標姿勢角に一致させる制御の制御性能）は、このＰＤ制御或いはＰＩＤ制御の制御系の性能で決定される。倒立制御部６４は、胴体姿勢角偏差を小さくする方向に胴体を回転させる胴体補正角を算出する。胴体補正角は、本来は実胴体姿勢角を記憶部５０に記憶された目標胴体姿勢角に一致させるための目標胴体姿勢角の補正量である。即ち、従来の制御系では、記憶部５０に記憶された目標胴体姿勢角が胴体補正角によって補正されて逆キネマティクス演算部５６に入力される。本実施例のコントローラ３０では、胴体補正角は目標胴体姿勢角に加算せずに次に説明する足平姿勢角偏差に加算する。
【００２４】
次に、実足平姿勢角を目標足平姿勢角に一致させる制御系を詳細に説明する。この制御系は、足平の姿勢角に関する倣い制御系である。
差分器７０によって、記憶部５０に記憶された目標足平姿勢角と実足平姿勢角の偏差（足平姿勢角偏差）が求められる。実足平姿勢角は、足平リンク２６に備えられた距離センサ１６（１６ａ、１６ｂ）の検出結果から足平姿勢角演算部５２によって求められる。足平姿勢角演算部５２が距離センサ１６の出力から接地面に対する足裏面の傾き（実足平姿勢角）を算出する方法は前述した通りである。
胴体補正角と足平姿勢角偏差は、加算器７２によって加算された後に倣い制御部５４に入力される。なお、図３に示すように、倒立制御部６４から出力される胴体補正角は、リミッタ６６を介して加算器７２へ入力される。リミッタ６６は、倒立制御部６４が算出した胴体補正角の大きさに制限を加えるものである。リミッタ６６は、入力された胴体補正角の大きさが許容範囲を超えているときに、許容限界の値を出力する。
倣い制御部５４では、足平姿勢角偏差に胴体補正角を加算した角度を小さくする方向に胴体に対して足平を回転させる足平補正角を算出する。倣い制御部５４には、ＰＩ制御系（比例−積分制御系）などの制御系が構築されている。倣い制御部５４の制御性能（即ち、実足平姿勢角を目標足平姿勢角に一致させる制御であり、換言すれば足平リンク２６の足裏面と接地面の面接触を維持する制御の制御性能）は、この倣い制御部５４内に実現されるＰＩ制御則の制御系の性能で決定される。
倣い制御部５４が出力する足平補正角は、加算器７４によって記憶部５０に記憶された目標足平姿勢角に加算される。即ち、記憶部５０に記憶された目標足平姿勢角は、足平補正角によって補正される。補正された目標足平姿勢角は逆キネマティクス演算部５６へ入力される。
【００２５】
こうして逆キネマティクス演算部５６には、補正された目標胴体位置と補正された目標足平位置と補正された目標足平姿勢角と補正されていない目標胴体姿勢角が入力される。前述したように、逆キネマティクス演算部５６ではこれらの値から足の各関節の目標関節角が求められる。前述したように、歩容データ上で足裏が接地面に接地しているときには目標足平姿勢角（仮想的な接地面に対する仮想的な足裏面の傾き）はゼロであるので、加算器７４から逆キネマティクス演算部５６へ入力される角度は足平補正角に等しくなる。即ち、逆キネマティクス演算部５６は、胴体１０と足平リンク２６の相対回転角を目標胴体姿勢角に足平補正角を加算した角度に一致させる目標関節角を算出する。
算出された各関節の目標関節角はモータドライバ５８に入力される。モータドライバ５８は、各関節の関節角が目標関節角に一致するように関節に内蔵されたモータを制御する。
【００２６】
上記の制御系を実行すると、実胴体姿勢角は記憶部５０に記憶された目標胴体姿勢角に一致し、実足平姿勢角は記憶部５０に記憶された目標足平姿勢角に一致する。前者によって、絶対座標系基準のロボットの足平から胴体への位置姿勢を目標の位置姿勢に維持し、後者によって、足裏面と接地面の面接触状態が維持される。
【００２７】
上記の制御系の効果について説明する。上記の制御系では、倒立制御部６４が胴体姿勢角偏差を小さくする方向へ胴体を回転させる胴体補正角を出力（算出）する。倒立制御部６４が出力する胴体補正角は、足平姿勢角偏差に加算されて倣い制御部５４へ入力される。倣い制御部５４は、入力されたデータ（胴体補正角と足平姿勢角偏差の合計角度）に基づいて目標足平姿勢角の補正角（足平補正角）を出力（算出）する。倣い制御部５４は、胴体補正角と足平姿勢角偏差の合計角度を小さくする方向に胴体に対して足平を回転させるように足平補正角を算出する。最も単純な足平補正角は、胴体補正角と足平姿勢角偏差の合計角度に所定の負値の係数を乗じた値でよい。目標足平姿勢角に足平補正角を加算した角度が逆キネマティクス演算部５６に入力される。逆キネマティクス演算部５６には、記憶部５０に記憶された目標胴体姿勢角が入力される。逆キネマティクスとは、胴体の位置と姿勢、及び足平の位置と姿勢から、胴体に対する足平の相対位置と相対回転角を実現する目標関節角度を出力する。前述したように歩容データ上で脚が接地面に接地しているときには目標足平姿勢角はゼロである。従って、歩容データ上で脚が接地面に接地しているときには、逆キネマティクス演算部５６は、胴体と足平の相対回転角を目標胴体姿勢角に足平補正角を加算した角度に一致させる目標関節角を算出する。逆キネマティクス演算部５６が出力する目標回転角に基づいて各関節が制御される。
胴体姿勢角偏差と足平姿勢角偏差は双方とも、最終的に倣い制御部５４を通して足平補正角に反映される。即ち、倣い制御部５４の制御性能がロボットの関節角の制御に支配的な影響を与える。換言すれば、ロボットの関節角の制御について、倣い制御部５４の制御性能が倒立制御部６４の制御性能よりも支配的となる。従って、倣い制御部５４と倒立制御部６４の夫々の制御部に組み込む制御系を設計する場合、まず、倣い制御部５４に組み込む制御系を設計すればよい。具体的には、胴体姿勢角偏差の影響を無視して、足平姿勢角偏差をゼロにする制御系として（接地面に対する実際の足平姿勢角の傾きをゼロにさせる制御系として）設計すればよい。倣い制御部５４を設計した後に、倒立制御部６４に組み込む制御系を設計する。このように図３に示すコントローラ３０の構造によれば、倣い制御部５４を設計し、倣い制御系の制御性能を確保した上で倒立制御部６４を設計することができる。倒立制御系と倣い制御系を設計しやすいロボットを実現できる。
【００２８】
また、上記のロボットのコントローラでは、胴体姿勢角偏差は、逆キネマティクス演算部５６へ入力される目標胴体姿勢角に反映されない。胴体姿勢角偏差は足平姿勢角偏差とともに、逆キネマティクス演算部５６へ入力される目標足平姿勢角へ、その補正角として反映される。従って、倣い制御部５４を設計するときも倒立制御部６４を設計するときも、夫々の偏差の変化に対する足平補正角の変化を見ることで制御性能を把握することができる。倣い制御系と倒立制御系という異なる目的を有する２つの制御系を、足平補正角の変化という同一のパラメータを指標として設計できる。この点も、ロボットを歩行させるための制御系の設計を容易にする。
【００２９】
倣い制御系と倒立制御系では、倣い制御系の方が重要である。倣い制御系によって、足裏面を接地面に面接触させた状態を実現した上でないと、足平で踏ん張って実胴体姿勢角を目標胴体姿勢角に一致させることができないからである。この事実を鑑みて、実施例のロボット１００では、最終的な関節角の制御に、倣い制御部５４の制御が倒立制御部６４の制御よりも支配的に作用する構成を実現している。これによって、足裏面と接地面が面接触する状態を確保した上で、実胴体姿勢角を目標姿勢角に一致させる全体制御系を容易に設計することが可能となる。例えば、図２に示す状態において、実姿勢角θｆをゼロにする制御が実胴体姿勢角θｂをゼロにする制御よりも支配的に（優先的に）作用する制御系をコントローラ３０内に容易に設計することができる。
なお、倣い制御部５４の時定数は、倒立制御部６４の時定数よりも小さい値に設定されていることが好ましい。足裏面を接地面に面接触させる倣い制御系を倒立制御系よりも早い応答が実現できるからである。ここでいう時定数とは、制御系を設計する際に一般的に用いられているパラメータであり、制御系の応答の早さを計る指標である。時定数は例えば、制御系のステップ応答が入力の所定割合に達するまでの時間である。
【００３０】
上記の構成は別の表現をすれば、目標胴体姿勢角と実胴体姿勢角の偏差に基づく倒立制御のフィードバックループの内側に目標足平姿勢角と実足平姿勢角の偏差に基づく倣い制御のフィードバックループを形成した制御系と表現することもできる。
【００３１】
上記のロボットは、倣い制御系が倒立制御系より優勢に作用するコントローラの設計を容易にすることができる。容易にすることができるとはいえ、胴体姿勢角偏差があまりにも大きいと、優勢であるとはいえ倣い制御系も充分に機能しなくなる可能性がある。そこで、上記のコントローラ３０には、リミッタ６６を組み込んでいる。リミッタは、胴体姿勢角偏差に基づいて算出される胴体補正角の大きさを制限する。このリミッタ６６の作用によって、倣い制御部５４に入力される胴体補正角の大きさを制限する。胴体補正角の大きさを制限することによって、倣い制御系（倣い制御部５４）が倒立制御系（倒立制御部６４）よりも優勢に作用することを保証する。倣い制御系が優勢に作用して足裏面が接地面と面接触することを保証することができる。
【００３２】
図３では、実足平位置を目標足平位置に一致させる制御系（位置に関する倣い制御系）については説明を省略した。ここで、この制御系について説明する。
足平姿勢角演算部５２は、距離センサ１６から足平リンク２６と接地面の距離を求める。より正確には足平リンク２６に固定された座標原点Ｏｆと接地面の間の距離を求める。この距離は、接地面に対する実足平位置を表す。目標足平位置（ここでは歩容データを作成する際のシミュレーション上での仮想的な接地面と仮想的な足平リンクの間の距離）と実足平位置の偏差に基づいて目標足平位置の補正量を算出する。算出された補正量を記憶装置５０に記憶された目標足平位置に加算した値（目標足平位置の補正量で補正された目標足平位置）を逆キネマティクス演算部５６へ入力する。そのような制御系によって、実足平位置を目標足平位置に一致させることができる。例えば、実際のロボットの遊脚が実際の接地面に着地するタイミングを、歩容データ上で遊脚が接地面に着地するタイミングに一致させることができる。
【００３３】
倣い制御部５４や倒立制御部６２に構築される制御系はＰＤ制御やＰＩＤ制御、或いはＰＩ制御に限られない。例えば、スライディングモード制御、最適制御、或いはＨ無限大制御等の制御則を用いる制御系であってもよい。
【００３４】
実施例の足平リンク２６が請求項の「足平」に相当する。距離センサ１６と足平姿勢角演算部５２が請求項の「接地面に対する足裏面の相対角を検出する手段」に相当する。倒立制御部６４が，請求項の「検出した実際の胴体姿勢角と目標胴体姿勢角の偏差を小さくするように、胴体を足首関節の回りに回転させるための胴体補正角を算出する手段」に相当する。倣い制御部５４が、請求項の「検出した相対角に算出した胴体補正角を加算した角度を小さくする方向へ足平を回転させるための足平補正角を算出する手段」に相当する。目標胴体姿勢角、目標脚平姿勢角（接地面に対する足裏面の傾きの目標値がゼロに設定されている）、及び足平補正角が入力され、胴体と足平の相対回転角を目標胴体姿勢角に足平補正角を加算した角度に一致させる目標関節角を算出する逆キネマティクス演算部５６と、モータドライバ５８が、請求項の「胴体と足平の相対回転角を、目標胴体姿勢角に足平補正角を加算した角度に一致させるように脚の関節を駆動する手段」に相当する。
【００３５】
上記説明した実施例では、倒立制御系として実際の胴体姿勢角（実胴体姿勢角）を目標胴体姿勢角に一致させる制御系を構築した。
実際の胴体位置が検出できる場合には、倒立制御系は、実際の胴体位置と目標胴体位置の偏差を小さくする方向へ足平を軸にして胴体を回転させる胴体補正角を算出する制御系であってよい。このことを、図面を用いて説明する。図１に示す胴体位置が目標胴体位置に相当する。図２に示す胴体位置が実際の胴体位置に相当する。従って、実際の胴体位置と目標胴体位置の偏差は図２に示す偏差Ｌｒから図１に示す偏差Ｌｄを引いたものに相当する。前述したように、検出した実際の胴体位置と目標胴体位置の偏差を小さくする方向へ、足平を軸にして胴体を回転させる胴体補正角は、前述した実胴体姿勢角と目標胴体姿勢角の偏差に基づく胴体補正角と同等である。従って、倒立制御系が、「実胴体位置と目標胴体位置の水平方向の偏差を小さくする方向へ、足平を軸にして胴体を回転させる胴体補正角を算出する」制御系として実現されても実施例の２足ロボットと同じ効果を得ることができる。
足平と胴体の実際の水平偏差は、例えばロボットを外部から撮影するカメラの画像から検出する。ロボットに実現させたい姿勢が図１の姿勢であり、実際のロボットが実現した姿勢が図２の姿勢であるとする。このとき、実胴体位置と目標胴体位置の水平方向の偏差は（Ｌｄ−Ｌｒ）である。図３の倒立制御部６４の代わりに、この偏差（Ｌｄ−Ｌｒ）を入力とし、この偏差を小さくする方向へ足平に対して胴体を回転させる胴体補正角を算出する倒立制御系を図３のコントローラ３０に組み込む。なお、図２の場合、胴体補正角は反時計周りの方向となる。このときの倒立制御系の出力（胴体補正角）は、図３のリミッタ６６へ入力させる。その他は図３の制御系と同じ構造でよい。そのような構成によっても、実施例１のロボットと同様の効果を得ることができる。
【００３６】
上記の実施例では、脚の各関節は、その関節角が逆キネマティクス演算部５６の出力する目標関節角に一致するように駆動（制御）される。各関節を駆動する際の目標値は目標関節角に限られない。例えば、各関節を駆動するときの目標値はトルクの次元や関節角速度の次元で与えられてもよい。例えば、逆キネマティクス演算部５６が出力する目標関節角と実際の関節角の偏差に所定の定数を乗じた値を目標トルク指令値として関節を駆動してもよい。
【００３７】
以上、本発明の具体例を詳細に説明したが、これらは例示に過ぎず、特許請求の範囲を限定するものではない。特許請求の範囲に記載の技術には、以上に例示した具体例を様々に変形、変更したものが含まれる。
本明細書または図面に説明した技術要素は、単独であるいは各種の組合せによって技術的有用性を発揮するものであり、出願時請求項記載の組合せに限定されるものではない。また、本明細書または図面に例示した技術は複数目的を同時に達成し得るものであり、そのうちの一つの目的を達成すること自体で技術的有用性を持つものである。
【図面の簡単な説明】
【００３８】
【図１】２足ロボットの模式的側面図である。
【図２】２足ロボットが前傾した状態を示す模式的側面図である。
【図３】２足ロボットのブロック図である。
【符号の説明】
【００３９】
１００：２足ロボット
１０：胴体
１２：加速度センサ
１４：姿勢角センサ
１６ａ、１６ｂ：距離センサ
２０：脚
２６：足平リンク
３０：コントローラ
５０：記憶部
５２：足平姿勢角演算部
５４：倣い制御部
５６：逆キネマティクス演算部
５８：モータドライバ
６０：２回微分器
６２：加速度制御部
６４：倒立制御部
６６：リミッタ
【図１】
2008188684.tif 000003
【図２】
2008188684.tif 000004
【図３】
2008188684.tif 000005