(57)【要約】      （修正有）【課題】ロボットに対して外力が加えられた場合であっても、転倒せずに安定して歩行が可能な脚式ロボット、及びその制御方法を提供する。【解決手段】脚式ロボットは、胴体と、胴体に連結された脚部と、脚部の下端に設けられた足部と、歩容データに基づいて脚部の関節を駆動制御する制御部３０と、足部の足裏と路面との距離を検出する距離検出部と、を備え、制御部３０が、距離検出部の検出結果が所定の閾値を越えるまでは当該検出結果の影響を受けずに歩容データ５１に基づいて脚部の関節を駆動制御する不感帯と、距離検出部１６の検出結果に基づいて、歩容データを修正する歩容データ修正手段と、を備える。【選択図】図３
2009101497.tif 000002
【特許請求の範囲】
【請求項１】
胴体と、該胴体に連結された脚部と、該脚部の下端に設けられた足部と、歩容データに基づいて前記脚部の関節を駆動制御する制御部と、前記足部の足裏と路面との距離を検出する距離検出部と、を備えた脚式ロボットであって、
前記制御部が、
前記距離検出部の検出結果が所定の閾値を越えるまでは当該検出結果の影響を受けずに前記歩容データに基づいて前記脚部の関節を駆動制御する不感帯と、
前記距離検出部の検出結果に基づいて、前記歩容データを修正する歩容データ修正手段と、を備える
ことを特徴とする脚式ロボット。
【請求項２】
前記制御部は、
前記距離検出部の検出結果に基づいて、前記足部の目標とする位置姿勢と実際の位置姿勢との偏差を計算し、
前記歩容データ修正手段は、
当該偏差を小さくするように前記歩容データを修正する
ことを特徴とする請求項１記載の脚式ロボット。
【請求項３】
前記制御部は、
前記脚部が支持脚である場合に、前記不感帯を用いて前記脚部の関節を駆動制御する
ことを特徴とする請求項１又は２記載の脚式ロボット。
【請求項４】
前記制御部は、
前記脚部が遊脚である場合に、前記不感帯を用いずに前記脚部の関節を駆動制御する
ことを特徴とする請求項３記載の脚式ロボット。
【請求項５】
前記胴体の位置姿勢を検出する胴体位置姿勢検出部を更に備え、
前記制御部は、
前記胴体位置姿勢検出部の検出結果に基づいて、前記胴体の目標とする位置姿勢と実際の位置姿勢との偏差を計算し、
前記歩容データ修正手段は、
当該偏差を小さくするように前記歩容データを修正する
ことを特徴とする請求項１記載の脚式ロボット。
【請求項６】
前記距離検出部は、前記足部の足裏に設けられた距離センサの出力信号から前記足部の足裏と路面との距離を検出する
ことを特徴とする請求項１乃至５いずれか１項記載の脚式ロボット。
【請求項７】
前記足部の足裏に、着地時の衝撃を吸収する衝撃吸収部材が設けられている
ことを特徴とする請求項１乃至６いずれか１項記載の脚式ロボット。
【請求項８】
胴体と、該胴体に連結された脚部と、該脚部の下端に設けられた足部と、を備えた脚式ロボットの制御方法であって、
歩容データに基づいて前記脚部の関節を駆動制御する制御ステップでは、
前記足部の足裏と路面との距離を検出する距離検出ステップと、
前記ステップにおいて検出された検出結果に基づいて、前記足部の目標とする位置姿勢と実際の位置姿勢との偏差を計算するステップと、
前記計算された偏差が所定の閾値を越えるまでは当該検出結果の影響を受けずに前記歩容データに基づいて前記脚部の関節を駆動制御する不感帯と、
前記計算された偏差を小さくするように前記歩容データを修正する歩容データ修正ステップと、を備える
ことを特徴とする脚式ロボットの制御方法。
【請求項９】
前記制御ステップでは、
前記脚部が支持脚である場合に、前記不感帯を用いて前記脚部の関節を駆動制御する
ことを特徴とする請求項８記載の脚式ロボット。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は脚式ロボット、及びその制御方法に関する。
【背景技術】
【０００２】
脚式移動ロボットを転倒させずに安定して移動させるためには、ロボットの支持脚を路面に密着させることが必要である。また、ロボットの遊脚を着地させる際には、予期しない路面凹凸からの外乱力を抑制することも効果的である。このため、ロボットの足裏と路面との関係を目標どおりに制御することが重要である。本明細書においては、足裏を路面に倣わせる制御を足裏倣い制御、足平から胴体への位置姿勢を目標の位置姿勢に維持する制御を倒立制御という。
【０００３】
足裏倣い制御と倒立制御を組合せて、ロボットの歩行安定化を行う技術が知られている。本願出願人による出願（特願２００７−０２２７４０号）には、足裏に路面との距離を検出する距離センサを設け、距離センサの検出結果に基づく足裏倣い制御により歩行安定化を行う２足ロボットが開示されている。当該２足ロボットでは、足裏倣い制御と倒立制御を組み合わせて制御する際に、倒立制御を外側のループに配置し、倒立制御の出力を足裏倣い制御の目標値補正量とし、さらにその倒立制御の出力に制限を設けることで、足裏が路面から完全に離れることを防止するものである。
【０００４】
また、特許文献１には、ロボットの目標歩容を生成する際に、外力操作量の値が不感帯に存在するときには、仮想外力を０とし、不感帯域から逸脱しているときには、仮想外力を不感帯域から逸脱した分の値とすることで、円滑な運動を可能とする脚式移動ロボットの制御装置が開示されている。特許文献１に開示される脚式移動ロボットの制御装置では、脚式移動ロボットの所定方向の並進運動（鉛直方向並進運動）に関する実際の状態量と目標歩容の状態量との偏差である状態量偏差（上体の鉛直位置の偏差）を求め、その状態量偏差を０に近づけるように目標歩容の目標運動を決定する。ここで、目標運動は、目標歩容を生成するための動力学モデルに、状態量偏差に応じて決定した仮想外力を付加的に入力することにより、該動力学モデルを用いて決定する。併せて、状態量偏差０に応じてロボットの目標床反力を修正し、コンプライアンス制御によりロボットの運動と床反力とを目標歩容の目標運動と目標床反力とに追従させる。
【特許文献１】再表０３−０９０９７８号
【発明の開示】
【発明が解決しようとする課題】
【０００５】
ところで、ロボットの動作中に、ロボットに対して一定の範囲内の外力が加えられた場合には、ロボットが転倒しないで倒立状態を維持可能とするため、外力に耐えるように足裏を路面に倣わせる必要がある。しかしながら、従来技術では、ロボットに対して外力が実際に加えられた場合には、ロボットが転倒しないで倒立状態を維持することが困難である。図９は、ロボットに対して外力が加えられた場合の問題点を説明するための図である。図９に示すように、ロボット２０１に対して外力Ｆが加えられた場合には、ロボット２０１は足裏倣い制御によって足裏を路面に倣わせ続けようと制御するため、ロボットの足首関節が必要以上に柔らかくなり、破線で示す倒立状態から実線で示す状態へと傾いてしまう。また、図１０（ａ）に示すように、ロボット２０１の足平リンク１２６の足裏に衝撃吸収用の弾性部材１１７が備えられる構成においては、外力によってロボットに作用する床反力中心が移動することで、図１０（ｂ）に示すように弾性部材が歪んでしまう。このため、足裏に距離センサを設け、足裏と路面との距離を測定し、距離センサの偏差を小さくするように足裏倣い制御を行うものとした場合には、ロボット２０１は弾性部材の歪みに起因する偏差ｄθを小さくするように足裏倣い制御を行うため、必要以上に足首関節が柔らかくなり、倒立状態を維持できずに転倒する虞がある。即ち、距離センサの微小な偏差に対しても足裏倣い制御を実行させてしまい、外力に対して必要以上に不安定となることで、ロボットが転倒する虞がある。
【０００６】
このように、従来の脚式ロボットによれば、ロボットに対して外力が加えられた場合に、足裏倣い制御によってロボットの足首関節が必要以上に柔らかくなり、ロボットが転倒しやすくなるという問題点があった。
【０００７】
本発明は、かかる課題を解決するためになされたものであり、ロボットに対して外力が加えられた場合であっても、転倒せずに安定して歩行が可能な脚式ロボット、及びその制御方法を提供することを目的とする。
【課題を解決するための手段】
【０００８】
本発明に係る脚式ロボットは、胴体と、該胴体に連結された脚部と、該脚部の下端に設けられた足部と、歩容データに基づいて前記脚部の関節を駆動制御する制御部と、前記足部の足裏と路面との距離を検出する距離検出部と、を備えた脚式ロボットであって、前記制御部が、前記距離検出部の検出結果が所定の閾値を越えるまでは当該検出結果の影響を受けずに前記歩容データに基づいて前記脚部の関節を駆動制御する不感帯と、前記距離検出部の検出結果に基づいて、前記歩容データを修正する歩容データ修正手段と、を備えるものである。
【０００９】
これにより、脚部の関節を駆動制御するための歩容データは、ロボットに対して外力が加えられた場合であっても、距離検出部の検出結果が所定の閾値を超えるまでは検出結果の影響を受けないため、足裏を路面に倣わせる制御を抑制することができる。従って、足首関節を不要に柔らかくすることなく、ロボットを転倒せずに安定して歩行させることができる。
【００１０】
また、前記制御部は、前記距離検出部の検出結果に基づいて、前記足部の目標とする位置姿勢と実際の位置姿勢との偏差を計算し、前記歩容データ修正手段は、当該偏差を小さくするように前記歩容データを修正するようにしてもよい。
【００１１】
さらにまた、前記制御部は、前記脚部が支持脚である場合に、前記不感帯を用いて前記脚部の関節を駆動制御するようにしてもよい。このように、脚部が支持脚の場合にのみ不感帯を用いて関節を駆動制御することで、ロボットに対して外力が加えられた場合であっても、遊脚の場合と比べて足首関節を硬くすることで、足平から胴体への位置姿勢を目標の位置姿勢に維持する倒立制御をより効果的に行うことできる。尚、本発明に係る脚式ロボットは、まず、脚部の足平部分を床面に接触させて支持脚とし、その後に足平の裏面で床面を押して脚部全体（ロボット全体）を持ち上げるように脚部を駆動することで、次の歩行動作を行う。駆動された脚部は遊脚となる一方、他の脚部が支持脚となり、このように、遊脚と支持脚を交互に繰り返して切替えることで、歩行動作を行うことができる。
【００１２】
また、前記制御部は、前記脚部が遊脚である場合に、前記不感帯を用いずに前記脚部の関節を駆動制御するようにしてもよい。このように、脚部が支持脚であるか又は遊脚であるかに応じて不感帯の使用を動的に変更することで、遊脚着地時には、路面の凹凸に対してより速やかに足裏を倣わせることができる。
【００１３】
さらにまた、前記胴体の位置姿勢を検出する胴体位置姿勢検出部を更に備え、前記制御部は、前記胴体位置姿勢検出部の検出結果に基づいて、前記胴体の目標とする位置姿勢と実際の位置姿勢との偏差を計算し、前記歩容データ修正手段は、当該偏差を小さくするように前記歩容データを修正するようにしてもよい。また、前記距離検出部は、前記足部の足裏に設けられた距離センサの出力信号から前記足部の足裏と路面との距離を検出するようにしてもよい。さらにまた、前記足部の足裏に、着地時の衝撃を吸収する衝撃吸収部材が設けられているようにしてもよい。これにより、着地時の衝撃を吸収することができる。
【００１４】
本発明に係る脚式ロボットの制御方法は、胴体と、該胴体に連結された脚部と、該脚部の下端に設けられた足部と、を備えた脚式ロボットの制御方法であって、歩容データに基づいて前記脚部の関節を駆動制御する制御ステップでは、前記足部の足裏と路面との距離を検出する距離検出ステップと、前記ステップにおいて検出された検出結果に基づいて、前記足部の目標とする位置姿勢と実際の位置姿勢との偏差を計算するステップと、前記計算された偏差が所定の閾値を越えるまでは当該検出結果の影響を受けずに前記歩容データに基づいて前記脚部の関節を駆動制御する不感帯と、前記計算された偏差を小さくするように前記歩容データを修正する歩容データ修正ステップと、を備えるものである。
【００１５】
これにより、脚部の関節を駆動制御するための歩容データは、ロボットに対して外力が加えられた場合であっても、距離検出ステップにおける検出結果が所定の閾値を超えるまでは検出結果の影響を受けないため、足裏を路面に倣わせる制御を抑制することができる。従って、足首関節を不要に柔らかくすることなく、ロボットを転倒せずに安定して歩行させることができる。
【００１６】
また、前記制御ステップでは、前記脚部が支持脚である場合に、前記不感帯を用いて前記脚部の関節を駆動制御するようにしてもよい。
【発明の効果】
【００１７】
本発明によれば、ロボットに対して外力が加えられた場合であっても、転倒せずに安定して歩行が可能な脚式ロボット、及びその制御方法を提供することを目的とする。
【発明を実施するための最良の形態】
【００１８】
発明の実施の形態１．
本実施の形態１にかかる脚式ロボットは、胴体と、胴体に連結された脚部と、脚部の下端に設けられた足部と、歩容データに基づいて脚部の関節を駆動制御する制御部と、足部の足裏と路面との距離を検出する距離検出部と、を備える。ここで、ロボットの制御部は、距離検出部の検出結果が所定の閾値を越えるまでは当該検出結果の影響を受けずに歩容データに基づいて脚部の関節を駆動制御する不感帯と、距離検出部の検出結果に基づいて、歩容データを修正する歩容データ修正手段と、を備える。
【００１９】
歩行ロボットの動作においては、足裏に設けられた距離センサを用いて足裏を路面に倣わせる足裏倣い制御と、姿勢センサを用いてロボットの姿勢を倒立させる倒立振子制御を組み合わせることによって安定化制御を実現している。本実施の形態１にかかる脚式ロボットによれば、脚部の関節を駆動制御するための歩容データは、ロボットに対して外力が加えられた場合であっても、距離検出部の検出結果が所定の閾値を超えるまでは検出結果の影響を受けないため、足裏を路面に倣わせる制御が不要に実行されることを抑制することができる。従って、足首関節を不要に柔らかくすることなく、ロボットを転倒せずに安定して歩行させることができる。
【００２０】
以下、図面を参照しながら本実施の形態１に係るロボットの制御方法について説明する。図１は、本実施の形態１に係る脚式ロボットの概要を示す図である。ロボット１００は、胴体１０と、胴体１０に連結された２本の脚を有する。尚、図１には、一方の脚部２０のみを示しており、他方の脚部は図示を省略している。胴体１０は、ロボット１００の動作（脚部の各関節の動作）を制御する制御部３０と、胴体の加速度を検出する加速度センサ１２と、胴体の１０の鉛直方向に対する傾斜角（姿勢角）を検出する姿勢角センサ１４を備える。
【００２１】
脚部２０は、股関節２１、膝関節２３、足首関節２５、大腿リンク２２、脛リンク２４、及び足部としての足平リンク２６を備える。大腿リンク２２と脛リンク２４は、直線で模式化して示してある。股関節２１は、胴体１０と大腿リンク２２を揺動可能に連結している。膝関節２３は、大腿リンク２２と脛リンク２４を揺動可能に連結している。足首関節２５は、脛リンク２４と足平リンク２６を揺動可能に連結している。脚部２０の下端には足部としての足平リンク２６が設けられる。足平リンク２６は板状の部材であり、足平リンクの裏面（足裏面）は平面となっている。
【００２２】
足平リンク２６には、距離検出部としての少なくとも３個以上の距離センサ１６が設けられている。距離センサ１６は、足平リンク２６の裏面（足裏面）と接地面Ｓとの距離を検出する。図２は、足平リンク２６の構成を説明するための図である。図２に示すように、足平リンク２６は、上面視において、略矩形状に形成されている。足平リンク２６の四隅近傍には、４つの距離センサ１６ａ、１６ｂ、１６ｃ、１６ｄがそれぞれ設けられている。ここでは、足平リンク２６の爪先側に２つの距離センサ１６ａ及び１６ｄが、踵側に２つ距離センサ１６ｂ及び１６ｃが設けられている。距離センサ１６ａ及び１６ｄは、足平リンク２６の前方の所定位置における足裏面と接地面Ｓとの距離を検出し、距離センサ１６ｂ及び１６ｃは、足平リンク２６の後方の所定位置における足裏面と接地面Ｓとの距離を検出する。従って、距離センサ１６ａ及び１６ｄが検出する距離と１６ｂ及び１６ｃが検出する距離の差から、足平リンク２６の足裏面の接地面Ｓに対する傾きを求めることができる。足平リンク２６と路面との間に着地時の衝撃を吸収するための衝撃吸収部材が設けられる。衝撃吸収部材は距離センサ１６と一体的に形成される。
【００２３】
各関節には図示しないモータが内蔵されており、制御部３０からの指令に基づいて駆動される。モータを駆動することによって、関節に連結されたリンク同士を揺動させることができる。図示を省略している他方の脚部も、脚部２０と同様の構造を有する。制御部３０が２本の脚部の関節（詳細には関節角）を適宜制御することにより、ロボット１００を歩行させることができる。
【００２４】
図１においては、説明の便宜上、ロボット１００が進行する向き（前後方向）をｘ軸、ロボット１００が進行する方向に対して水平方向に直交する向き（左右方向）をｙ軸、ロボット１００の進行する平面から鉛直方向に延びる向き（上下方向）をｚ軸とし、これら３軸からなる絶対座標系を用いて説明する。即ち、図１において、ｘ軸は紙面に向かって左右方向、ｙ軸は紙面の奥行き方向、ｚ軸は紙面中の上下方向を示す。尚、ロボット１００の胴体１０に対して点Ｏｂを特定し固定する。足平リンク２６に対して点Ｏｆを特定し固定する。
【００２５】
ロボット１００は、記憶部５０に記憶されている歩容データに基づいて制御される。歩容データには、胴体１０の目標位置（目標胴体位置）、胴体１０の目標姿勢角（目標胴体姿勢角）、足平リンク２６の目標位置（目標足平位置）、及び足平リンク２６の目標姿勢角（目標足平姿勢角）のそれぞれの時系列データが含まれる。歩容データには、ロボット１００が有する脚部のそれぞれの目標足平位置・姿勢角の時系列データが含まれる。
【００２６】
歩容データは、シミュレーション等によってロボット１００を安定して歩行させることができるように作成されている。即ち、目標胴体位置、目標胴体姿勢角、目標足平位置、及び目標足平姿勢角は、ロボット１００のＺＭＰ位置が接地面に接地した足裏で囲まれた凸包内となる関係を満足するように設定されている。作成された歩容データは、ロボット１００の記憶部５０に記憶される。後述するように、制御部３０は、歩容データに含まれる目標胴体位置等に実胴体位置等を一致させるように各関節を制御する。
【００２７】
目標胴体位置は、絶対座標系に対する特定点Ｏｂの位置で表される。特定点Ｏｂを原点とする胴体座標系を用いる場合には、目標胴体姿勢角は、絶対座標系に対する胴体座標系の傾きで表される。実胴体姿勢角は、胴体１０に備えられた姿勢角センサ１４によって検出することができる。目標足平位置は、絶対座標系に対する特定点Ｏｆの位置で表される。目標足平姿勢角は、接地面に対する足裏面の角度で表される。特定点Ｏｆを原点とする足平座標系を用いる場合には、目標足平姿勢角は、絶対座標系に対する足平座標系の傾きで表してもよい。実足平姿勢角は、後述するように、足平リンク２６に備えられた距離センサ１６によって検出することができる。
【００２８】
続いて、本実施の形態１に係るロボット１００の制御システム１の詳細について説明する。制御システム１は、倒立制御を実行すると共に、足裏倣い制御を実行する。倒立制御は、実胴体位置及び実胴体姿勢角をそれぞれ目標胴体位置及び目標胴体姿勢角に一致する制御である。足裏倣い制御は、接地面から見た相対的な実足平位置及び実足平姿勢角をそれぞれ目標足平位置及び目標足平姿勢角に一致する制御である。
【００２９】
図３は、制御システム１の機能構成を示す機能ブロック図である。制御システム１は、制御部３０と、記憶部５０と、姿勢角センサ１４と、モータ１５と、足裏距離センサ１６等を有している。
【００３０】
記憶部５０には、歩容データ５１及び路面ノミナル位置・傾斜情報５２が記憶されている。歩容データ５１は、目標胴体位置、目標胴体姿勢角、目標足平位置、及び目標足平姿勢角の時系列データを含む。歩容データ上で足裏が接地面と接触するときは、足裏面と接地面を面接触状態とするため、目標足平姿勢角（仮想的な接地面に対する仮想的な足裏面の傾き）はゼロに設定されている。また、歩容データ上の各目標値は、ロボット１００のＺＭＰ位置が接地している脚の足裏で囲まれた凸包内となる関係を満たすように決定されている。路面ノミナル位置・傾斜情報５２は、ロボット１００が移動する路面の存在情報であり、路面の位置・傾斜に関する基準値を示す。
【００３１】
制御部３０は、記憶部５０に記憶された歩容データ５１等を読み出すと共に、読み出した歩容データ５１等によって特定されるロボット１００の姿勢を実現するために必要な脚部２０の関節角を算出する。そして、このように算出した関節角に基づく信号をモータ１５に送信する。また、制御部３０は、センサからの信号を受けて、モータの駆動量を調整する。
【００３２】
より詳細には、制御部３０は、足裏倣い制御部６１と、倒立制御部６２と、関節角変換部６３と、各軸制御器６４と、を備える。制御部３０内では、実胴体姿勢角と目標胴体姿勢角の偏差に基づくフィードバック制御系（倒立制御部６２による倒立制御系）と、接地面から見た相対的な実足平姿勢角と目標足平姿勢角の偏差に基づくフィードバック制御系（足裏倣い制御部６１による倣い制御系）が含まれる。以後、足裏倣い制御の偏差については、接地面から見た相対的な足平姿勢角に関するものを示すものとする。
【００３３】
足裏倣い制御部６１は、実足平姿勢角を目標足平姿勢角に一致させるように、例えば足裏が接地面に密着している状態を目標として、踵側が接地面から浮いている場合には、足平リンク２６の爪先側を脛リンク２４に近づける方向に足平リンク２６を回転させる。即ち、足裏面と接地面との面接触を維持するように足平リンク２６を回転させる。実足平姿勢角は、足平リンク２６が備える距離センサ１６ａ、１６ｂ、１６ｃ、１６ｄの出力値から求められる。尚、足裏倣い制御部６１の詳細については後述する。
【００３４】
倒立制御部６２は、ロボット１００の胴体位置姿勢を目標位置姿勢に維持する機能を果たす。胴体位置姿勢は、実際の胴体位置と胴体姿勢角であり、目標位置姿勢は、目標の胴体位置と胴体姿勢角である。実胴体姿勢角は、胴体１０に備えられた姿勢角センサ１４で検出される。姿勢角センサ１４は、例えば胴体１０の角速度を検出するジャイロと、ジャイロの出力（角速度）を積分する積分器と、重力加速度ベクトルを検出する３軸加速度センサで構成される。尚、倒立制御部６２の詳細については後述する。
【００３５】
制御部３０の歩容データ修正手段（不図示）は、距離センサ１６からの出力信号に基づいて、足裏と路面との位置関係が目標値に追従するように歩容データを修正する。まず、距離センサ１６の出力値と追従すべき目標値との足偏差を計算する。そして、計算された足偏差から、歩容データを修正するための補正量を計算する。次いで、偏差に関する伝達関数を用いて、補正量を算出する。
【００３６】
より詳細には、以下のようにして記憶部５０に記憶された歩容データ（目標胴体位置、目標胴体姿勢角、目標足平位置、及び目標足平姿勢角の時系列データ）が修正され、関節角変換部６３に入力される。図３においては、胴体位置姿勢目標値が、目標胴体位置及び目標胴体姿勢角の時系列データを含み、足先位置姿勢目標値が、目標足平位置及び目標足平姿勢角の時系列データを含む。
【００３７】
記憶部５０に記憶された目標胴体位置は、目標胴体加速度と実胴体加速度の偏差に基づいて補正された後に関節角変換部６３に入力される。目標胴体加速度は、目標胴体位置を２回微分することによって求められる。実胴体加速度は、加速度センサ１２により検出される。
【００３８】
記憶部５０に記憶された目標足平位置は、目標足平位置と実足平位置の偏差に基づいて補正された後に関節角変換部６３に入力される。
【００３９】
記憶部５０に記憶された目標胴体姿勢角は、そのまま関節角変換部６３に入力される。同時に、目標胴体姿勢角と実胴体姿勢角の偏差（胴体姿勢角偏差）が求められる。胴体姿勢角偏差は倒立制御部６２に入力されて、胴体姿勢角偏差を小さくする方向に胴体を回転させる胴体補正角が算出される。実胴体姿勢角は、姿勢角センサ１４により検出される。尚、図３においては、胴体補正角は足裏倣い制御部６１における補正量となるため、胴体補正角を倣い制御目標値補正量という。
【００４０】
記憶部５０に記憶された目標足平姿勢角と実足平姿勢角の偏差（足平姿勢角偏差）が求められる。実足平姿勢角は、距離センサ１６により検出される。足平姿勢角偏差と上述した胴体補正角（倣い制御目標値補正量）とが加算され、加算された結果が、足裏倣い制御部６１に入力される。足裏倣い制御部６１によって、入力された角度（胴体補正角と足平姿勢角偏差を加算した角度）を小さくする方向へ足平を回転させる足平補正角が求められる。記憶部５０に記憶された目標足平姿勢角は、上述した足平補正角が加算された後に（足平補正角で補正された後に）関節角変換部６３に入力される。尚、図３においては、足平補正角を足先目標値補正量という。
【００４１】
関節角変換部６３には、以上のようにして修正された歩容データが入力される。これらの値から、関節角変換部６３では、逆キネマティクスの演算によって脚部２０の各関節の目標関節角が算出される。ここで、それぞれの目標値は、絶対座標系に対する値で表されている。関節角変換部６３では、目標足平位置と目標胴体位置の差から足平と胴体の相対位置を計算し、目標足平姿勢角（足平補正角によって補正されている）と目標胴体姿勢角の差から足平と胴体の相対回転角を計算する。計算された相対位置と相対回転角を実現する目標関節角が算出される。
【００４２】
各軸制御器６４は、関節角変換部６３により送信された目標関節角の信号に基づいて、脚部２０を駆動するための各モータ１５の駆動量を特定し、これらの駆動量でモータ１５を駆動させるためのモータ駆動信号を各モータに送信する。これによって、脚部２０の各関節における駆動量が変更され、ロボット１００の動きが制御される。
【００４３】
続いて、図４乃至図６を参照しながら、本実施の形態１に係る足裏倣い制御部６１について詳細に説明する。図４は、足裏倣い制御部６１の機能構成を示す機能ブロック図である。図５は、足裏倣い制御部６１による制御処理の概要を説明するためのフローチャートである。図６は、足裏倣い制御部６１が有する距離センサ１６の偏差に関する不感帯を説明するための図である。図４に示すように、足裏倣い制御部６１は、距離センサ目標値計算部６１１と、差分器６１２と、位置姿勢偏差計算部６１３と、不感帯６１４と、切替器６１５と、加算器６１６と、補償器６１７を有する。
【００４４】
まず、足裏倣い制御部６１の距離センサ目標値計算部６１１において、歩容データ５１に含まれる足先位置姿勢目標値（目標足平位置・姿勢角の軌道）と、路面の存在情報である路面のノミナル位置・傾斜情報５２とから、距離センサ１６の高さ目標値を計算する（ステップＳ１０１）。言い換えると、足平リンク２６の目標位置・姿勢角を示す軌道データと、足平２６が実際に着地する地点（ノミナル位置・傾斜）とから、距離センサ１６の目標とする時系列値を計算する。即ち、目標とする距離センサ１６の出力値を計算する。尚、ノミナル位置・傾斜に代えて、ロボット１００の一歩分の着地位置から足平リンク２６の着地位置・姿勢を計算することで、目標とする距離センサ１６の出力値を計算するようにしてもよい。
【００４５】
次いで、ステップＳ１０１で計算した距離センサ１６の目標値と、距離センサ１６によって実際に計測された計測値とから、足裏距離センサ１６の偏差を差分器６１２により計算する（ステップＳ１０２）。次いで、位置姿勢偏差計算部６１３において、Ｓ１０２で計算した足裏距離センサ１６の偏差から、足平リンク２６の足裏と路面との相対位置偏差・相対姿勢偏差を計算する（Ｓ１０３）。より詳細には、足平リンク２６の目標位置姿勢に対する実際の位置姿勢の足偏差（ロール、ピッチ、ｚ）を計算する。ここで、足平リンク２６の目標位置姿勢に対する実際の位置姿勢の足偏差（ロール、ピッチ、ｚ）を（Δφ，Δθ，Δｚ）とする。尚、ｚは鉛直方向の測定高さを示す。次式において示す変換行列によれば、足裏と距離センサ１６が配置される位置の幾何学的関係から近似を用いて、各距離センサ１６ａ乃至１６ｄの出力値の偏差（Δｚ１，Δｚ２，Δｚ３，Δｚ４）と、各距離センサ１６の偏差に対応する３行４列の変換行列とから、足偏差を一意に決定することができる。
【数１】
2009101497.tif 000003
【００４６】
次いで、切替器６１５が、脚部２０が遊脚であるか、又は、支持脚であるかを判定する（ステップＳ１０４）。脚部２０が遊脚である場合には、ステップＳ１０３で計算した偏差に対して不感帯６１４を用いずにステップＳ１０６へと進む。脚部２０が支持脚であるか又は遊脚であるかに応じて不感帯６１４の使用を動的に変更することで、遊脚着地時には、路面の凹凸に対してより速やかに足裏を倣わせることができる。
【００４７】
一方、脚部２０が支持脚である場合には、ステップＳ１０３で計算した偏差に対して不感帯６１４を設ける（ステップＳ１０５）。このように、脚部２０が支持脚の場合にのみ不感帯６１４を用いることで、ロボットに対して外力が加えられた場合であっても、遊脚の場合と比べて足首関節を硬くすることで、足平リンク２６から胴体１０への位置姿勢を目標の位置姿勢に維持する倒立制御をより効果的に行うことできる。これにより、足首関節が必要以上に柔らかくなることを抑制し、転倒を防止することができる。
【００４８】
図６は、足裏倣い制御部６１が有する距離センサ１６の偏差に関する不感帯６１４を説明するための図である。図６に示す不感帯では、横軸を実際の足裏と路面との姿勢偏差ｄθ（ここでは、足裏と路面との相対姿勢偏差（ロール、ピッチ）を示す。）、縦軸を制御において使用する足裏と路面との姿勢偏差とする。言い換えると、横軸は図５のステップＳ１０３で計算した相対姿勢偏差（ロール、ピッチ）を、縦軸は図５の後述するステップＳ１０６での補正量の計算に使用する相対姿勢偏差（ロール、ピッチ）をそれぞれ示す。
【００４９】
図６に示す不感帯６１４によれば、距離センサ１６の偏差の大きさが所定の閾値を越えるまでは、補正量の計算に使用するための相対姿勢偏差（ロール、ピッチ）を０とする。一方、所定の閾値を越えた場合は、実際の足裏と路面との姿勢偏差ｄθを相対姿勢偏差として補正量の計算に使用する。言い換えると、距離センサ１６の偏差の大きさが所定の範囲の不感帯域に含まれる場合には、当該偏差の影響を受けずに、歩容データに基づいて脚部２０の関節を駆動制御する。
【００５０】
尚、不感帯域を示す不感帯の幅Ｌ（値−ｄθｍａｘ〜ｄθｍａｘ間の距離）は、足裏に配置される衝撃吸収部材としての弾性部材の剛性に基づいて、予め許容可能な偏差の大きさを計算することで決定することができる。ここで、偏差が許容可能であるとは、偏差が不感帯域に含まれる場合においては、足裏加重中心が足裏面内に余裕を持って存在することができ、安定余裕があるということを意味する。また、距離センサ１６の偏差に関する不感帯６１４は、偏差ｄθとしてロール及びピッチ方向の偏差である相対姿勢偏差に対して設けることができ、ｚ方向の偏差である相対位置偏差に対しては不感帯６１４を設けなくともよい。
【００５１】
図５に戻って説明を続ける。次いでロボット１００の制御部３０は、ステップＳ１０４で計算した距離センサ１６の相対位置偏差・相対姿勢偏差を用いて、実際に歩容データを補正するための足先目標値補正量を計算し、計算された足先目標値補正量を実現するように歩容データを修正する（ステップＳ１０６）。より詳細には、倣い制御部６１において、相対位置偏差・相対姿勢偏差と倣い制御目標値補正量とが加算器６１６により加算され、加算された結果が、補償器６１７に入力される。補償器６１７において、所定の伝達関数を用いて足先目標値補正量を計算し、計算された足先目標値補正量により、偏差が小さくなるように足平リンク２６の目標位置姿勢を補正する。足先目標値補正量の計算は、例えば、足偏差を入力とし、足先目標値補正量を出力とする伝達関数を通すことで実現することができる。足先目標値補正量（ロール）に関しては、ロール偏差Δφを伝達関数Ｃφ（ｓ）に通す。足先目標値補正量（ピッチ）に関しては、ピッチ偏差Δθを伝達関数Ｃθ（ｓ）に通す。足先目標値補正量（ｚ）に関しては、ｚ偏差Δｚを伝達関数Ｃｚ（ｓ）に通す。
【００５２】
続いて、図７及び図８を参照しながら、本実施の形態１に係る倒立制御部６２について詳細に説明する。図７は、倒立制御部６２の機能構成を示す機能ブロック図である。図８は、倒立制御部６２による制御処理の概要を説明するためのフローチャートである。図７に示すように、倒立制御部６２は、姿勢偏差計算部６２１と、コントローラ６２２と、リミッタ６２３と、を有する。
【００５３】
まず、姿勢偏差計算部６２１において、胴体姿勢目標値（胴体の目標姿勢）と、胴体姿勢計測値（姿勢角センサ１４により検出した実姿勢）との偏差を計算する（ステップＳ２０１）。
【００５４】
次いで、ステップＳ２０１で計算した胴体の姿勢偏差に基づき、所定のコントローラ６２２によって、足裏倣い制御で使用する足裏と路面との目標相対位置・目標相対姿勢の補正量を計算する（ステップＳ２０２）
【００５５】
次いで、足裏距離センサ１６の出力値に基づき、足裏が路面から剥がれたか否かを判定する（ステップＳ２０３）。判定の結果、足裏が路面から剥がれていない場合には、ステップＳ２０２において計算された目標相対位置・目標相対姿勢に対して補正を行わずに、倣い制御目標値補正量として出力する。
【００５６】
一方、判定の結果、足裏が路面から剥がれた場合には、リミッタ６２３を介してステップＳ２０２で計算した補正量を制限する（ステップＳ２０４）。即ち、リミッタ６２３は、目標相対位置・目標相対姿勢の補正量の大きさに制限を加えるものである。リミッタ６２３は、入力された補正量の大きさが許容範囲内を超えているときに、許容限界の値を出力する。このリミッタ６２３を設けることで、足裏倣い制御部６１に入力される倣い制御目標値補正量を制限する。これによって、倣い制御系（足裏倣い制御部６１）が倒立制御系（倒立制御部６２）よりも優勢に作用することを保証する。従って、倣い制御系が優勢に作用して、足裏面が接地面と面接触することを保証することができる。
【００５７】
次いで、計算された補正量に基づいて、胴体の姿勢偏差を小さくする方向へ、足裏と路面との目標相対位置・目標相対姿勢を補正する（ステップＳ２０５）。補正された目標相対位置・目標相対姿勢を倣い制御目標値補正量として足裏倣い制御部６１へと出力する。
【００５８】
以上説明したようにロボット１００の足裏倣い制御部６１において、距離センサ１６の偏差に対する不感帯６１４を設けることで、歩容データ５１は、ロボット１００に対して外力が加えられた場合であっても、距離センサ１６の偏差が所定の閾値を超えるまでは距離センサ１６による検出結果の影響を受けないため、不要な足裏倣い制御を抑制することができる。従って、足首関節を不要に柔らかくすることなく、ロボットを転倒せずに安定して歩行させることができる。
【００５９】
その他の実施の形態．
上述した実施の形態においては、ロボット１００は２本の脚を備えるものとしたが本発明はこれに限定されない。少なくとも２本以上の脚を有し、それぞれの脚の下端には足部が設けられ、足部の足裏には少なくとも３個以上の距離センサを備える脚式ロボットに対しても、本発明を適用することができる。
【００６０】
尚、本発明は上述した実施の形態のみに限定されるものではなく、既に述べた本発明の要旨を逸脱しない範囲において種々の変更が可能であることは勿論である。
【図面の簡単な説明】
【００６１】
【図１】本発明の実施の形態１に係る脚式ロボットの構成図である。
【図２】本発明の実施の形態１に係る脚式ロボットの足平リンクの構成図である。
【図３】本発明の実施の形態１に係る脚式ロボットシステムの構成を示す機能ブロック図である。
【図４】本発明の実施の形態１に係る脚式ロボットの足裏倣い制御部の構成を示す機能ブロック図である。
【図５】本発明の実施の形態１に係る脚式ロボットの足裏倣い制御部が行う処理を示すフローチャートである。
【図６】本発明の実施の形態１に係る脚式ロボットの不感帯を説明するための図である。
【図７】本発明の実施の形態１に係る脚式ロボットの倒立制御部の構成を示す機能ブロック図である。
【図８】本発明の実施の形態１に係る脚式ロボットの倒立制御部が行う処理を示すフローチャートである。
【図９】従来の脚式ロボットにおける問題点を説明するための図である。
【図１０】従来の脚式ロボットにおける問題点を説明するための図である。
【符号の説明】
【００６２】
１  制御システム、
１０  胴体、
１２  加速度センサ、１４  姿勢角センサ、１５  モータ、１６  距離センサ
２０  脚部、２１  股関節、２２  大腿リンク、２３  膝関節、２４  脛リンク、
２５  足首関節、２６  足平リンク、２６ａ  爪先部、２６ｂ  踵部、２７  爪先関節、
３０  制御部、５０  記憶部、
５１  歩容データ、５２  路面ノミナル位置・傾斜、
６０  演算処理部、６１  倣い制御部、６２  倒立制御部、６３  関節角変換部、
６４  各軸制御器、
６１１  距離センサ目標値計算部、６１３  位置姿勢偏差計算部、６１４  不感帯、
６１７  補償器、
６２１  姿勢偏差計算部、６２２  コントローラ、６２３  リミッタ、
１００  ロボット
【図１】
2009101497.tif 000004
【図２】
2009101497.tif 000005
【図３】
2009101497.tif 000006
【図４】
2009101497.tif 000007
【図５】
2009101497.tif 000008
【図６】
2009101497.tif 000009
【図７】
2009101497.tif 000010
【図８】
2009101497.tif 000011
【図９】
2009101497.tif 000012
【図１０】
2009101497.tif 000013