(57)【要約】【課題】歩行制御装置及び歩行制御方法における演算負荷を軽減すること。【解決手段】歩行制御装置２００は、ロボット１００の倒立振子モデル３００における重心軌道Ｓに基づいて、ロボット１００の歩行制御を行う。また、歩行制御装置２００は、倒立振子モデル３００の重心軌道Ｓに基づいて、ロボット１００の歩行運動における現在の保存量を算出する保存量算出手段２１１と、ロボット１００の歩行の目標進行方向と、目標歩行速度とに基づいて、保存量の目標値を算出する目標値算出手段２１２と、保存量算出手段２１１により算出された現在の保存量と、目標値算出手段２１２により算出された目標値とに基づいて、ロボット１００の歩行制御を行う歩行制御手段２１３と、を備える。【選択図】図７
2009255231.tif 000002
【特許請求の範囲】
【請求項１】
ロボットの倒立振子モデルにおける重心軌道に基づいて、前記ロボットの歩行制御を行う歩行制御装置であって、
前記倒立振子モデルの重心軌道に基づいて、前記ロボットの歩行運動における現在の保存量を算出する保存量算出手段と、
予め設定された前記ロボットの歩行の目標進行方向と、目標歩行速度とに基づいて、前記保存量の目標値を算出する目標値算出手段と、
前記保存量算出手段により算出された前記現在の保存量と、前記目標値算出手段により算出された前記目標値とに基づいて、前記ロボットの歩行制御を行う歩行制御手段と、を備える、ことを特徴とする歩行制御装置。
【請求項２】
請求項１記載の歩行制御装置であって、
前記歩行制御手段は、前記保存量算出手段により算出された前記現在の保存量が、前記目標値算出手段により算出された前記目標値に収束するように、前記ロボットの歩行における次の遊脚の着地位置を決定する、ことを特徴とする歩行制御装置。
【請求項３】
請求項１又は２記載の歩行制御装置であって、
前記ロボットの歩行の進行方向を変更する進行方向変更手段を更に備え、
前記進行方向変更手段は、前記目標値算出手段により算出された前記目標値を増減させることで、前記ロボットの進行方向を変更する、ことを特徴とする歩行制御装置。
【請求項４】
請求項１乃至３のうちいずれか１項記載の歩行制御装置であって、
前記歩行制御手段は、前記保存量算出手段により算出された前記現在の保存量を保持し、かつ、次の１歩における前記ロボットの進行方向が、前記目標進行方向に漸近するように、現在の１歩の終端となる遊脚着地時の振子長を決定する、ことを特徴とする歩行制御装置。
【請求項５】
請求項１乃至４のうちいずれか１項記載の歩行制御装置であって、
前記ロボットの関節を駆動する関節駆動手段と、
前記ロボットの関節角度を検出する関節角度検出手段と、を更に備え、
前記歩行制御手段は、前記倒立振子モデルの重心軌道を満たすような前記ロボットの関節角度を、逆キネマティクスにより算出し、該算出した関節角度と、前記関節角度検出手段により検出された前記関節角度と、に基づいて、前記関節駆動手段を制御する、ことを特徴とする歩行制御装置。
【請求項６】
ロボットの倒立振子モデルにおける重心軌道に基づいて、前記ロボットの歩行制御を行う歩行制御方法であって、
前記ロボットの重心軌道に基づいて、前記ロボットの歩行運動における現在の保存量を算出する保存量算出工程と、
前記ロボットの歩行の目標進行方向と、目標歩行速度とに基づいて、前記保存量の目標値を算出する目標値算出工程と、
前記保存量算出工程で算出された前記現在の保存量と、前記目標値算出工程で算出された前記目標値とに基づいて、前記ロボットの歩行制御を行う歩行制御工程と、を含む、ことを特徴とする歩行制御方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、ロボットの歩行制御を行う歩行制御装置および歩行制御方法に関し、より詳細には、ロボットの倒立振子モデルにおける重心軌道に基づいて、ロボットの歩行制御を行う歩行制御装置および歩行制御方法に関するものである。
【背景技術】
【０００２】
脚式ロボットの歩行制御において、ＺＭＰ（Zero Moment Point）規範の歩行制御が行われており、安定した２足歩行を比較的に容易に実現できるようになっている。しかしながら、このＺＭＰ規範の歩行制御においては、消費エネルギーが大きく、その歩行動作は人間の歩行動作と比較して不自然になるというような問題が生じている。
【０００３】
一方で、遊脚側の脚部リンクが着地した後、脚部リンクの関節における制御値の補正量を保持し、立脚切り換え後に経時的に低減させる脚式移動ロボットの歩行制御装置が知られている（例えば、特許文献１参照）。
【０００４】
また、実際の支持脚の足平配置を計測し、計測された足平配置の目標とする足平配置経路からの差異に基づいて、動作計画を更新しながら歩行する脚式ロボットが知られている（例えば、特許文献２参照）。
【特許文献１】特開平５−２５３８６６号公報
【特許文献２】特開２００７−７８０２号公報
【発明の開示】
【発明が解決しようとする課題】
【０００５】
しかしながら、上記特許文献１の歩行制御装置及び特許文献２の脚式ロボットは、ロボットの歩行を目標進行方向及び目標歩行速度に漸近させるために、現在から数歩先の歩行を予測する予測演算を行い、その演算結果に基づいて、次の遊脚の着地位置や次の１歩を決定している。このため、繰り返し実行される予測演算等により演算負荷が高くなり、演算プロセスも複雑化する虞がある。
【０００６】
本発明は、このような問題点を解決するためになされたものであり、演算負荷を軽減した歩行制御装置及び歩行制御方法を提供することを主たる目的とする。
【課題を解決するための手段】
【０００７】
上記目的を達成するための本発明の一態様は、ロボットの倒立振子モデルにおける重心軌道に基づいて、前記ロボットの歩行制御を行う歩行制御装置であって、前記倒立振子モデルの重心軌道に基づいて、前記ロボットの歩行運動における現在の保存量を算出する保存量算出手段と、  予め設定された前記ロボットの歩行の目標進行方向と、目標歩行速度とに基づいて、前記保存量の目標値を算出する目標値算出手段と、前記保存量算出手段により算出された前記現在の保存量と、前記目標値算出手段により算出された前記目標値とに基づいて、前記ロボットの歩行制御を行う歩行制御手段と、を備えることを特徴とする歩行制御装置である。この一態様によれば、当該制御装置における演算負荷を軽減することができる。
【０００８】
この一態様において、前記歩行制御手段は、前記保存量算出手段により算出された前記現在の保存量が、前記目標値算出手段により算出された前記目標値に収束するように、前記ロボットの歩行における次の遊脚の着地位置を決定してもよい。これにより、現在の保存量を目標値に収束させることで、ロボットの歩行を目標歩行速度に近付けることができる。
【０００９】
この一態様において、前記ロボットの歩行の進行方向を変更する進行方向変更手段を更に備え、前記進行方向変更手段は、前記目標値算出手段により算出された前記目標値を増減させることで、前記ロボットの進行方向を変更してもよい。これにより、ロボットの進行方向を任意の方向に変更することができるため、ロボットの歩行を目標進行方向及び目標歩行速度に近付けることができる。
【００１０】
この一態様において、前記歩行制御手段は、前記保存量算出手段により算出された前記現在の保存量を保持し、かつ、次の１歩における前記ロボットの進行方向が、前記目標進行方向に漸近するように、現在の１歩の終端となる遊脚着地時の振子長を決定してもよい。これにより、ロボットの進行方向を任意の方向に変更することができるため、ロボットの歩行を目標進行方向及び目標歩行速度に近付けることができる。
【００１１】
この一態様において、前記ロボットの関節を駆動する関節駆動手段と、前記ロボットの関節角度を検出する関節角度検出手段と、を更に備え、前記歩行制御手段は、前記倒立振子モデルの重心軌道を満たすような前記ロボットの関節角度を、逆キネマティクスにより算出し、該算出した関節角度と、前記関節角度検出手段により検出された前記関節角度と、に基づいて、前記関節駆動手段を制御してもよい。これにより、倒立振子モデルの重心軌道を満たすように、ロボットの歩行制御を高精度に行うことができる。
【００１２】
他方、上記目的を達成するための本発明の一態様は、ロボットの倒立振子モデルにおける重心軌道に基づいて、前記ロボットの歩行制御を行う歩行制御方法であって、前記ロボットの重心軌道に基づいて、前記ロボットの歩行運動における現在の保存量を算出する保存量算出工程と、前記ロボットの歩行の目標進行方向と、目標歩行速度とに基づいて、前記保存量の目標値を算出する目標値算出工程と、前記保存量算出工程で算出された前記現在の保存量と、前記目標値算出工程で算出された前記目標値とに基づいて、前記ロボットの歩行制御を行う歩行制御工程と、を含む、ことを特徴とする歩行制御方法であってもよい。この一態様によれば、当該制御方法における演算負荷を軽減することができる。
【発明の効果】
【００１３】
本発明によれば、歩行制御装置及び歩行制御方法における演算負荷を軽減することができる。
【発明を実施するための最良の形態】
【００１４】
（本発明の実施形態１．）
以下、本発明を実施するための最良の形態について、添付図面を参照しながら実施形態１を挙げて説明する。図１は、本発明の実施形態１に係るロボットの機械構成を示したスケルトン図である。
【００１５】
図１に示すように、ロボット１００において、股関節は３軸、膝関節は１軸、足首関節は２軸、肩関節は２軸、肘関節は２軸、および、手首関節は１軸、で夫々構成されている。また、ロボット１００は、各関節にエンコーダ付きモータ１、２、・・・、２４を有している。各関節のモータ（関節駆動手段）１ａ、２ａ、・・・、２４ａ（図２）は、各関節の関節角度θ１、θ２、・・・、θ２４を調整できる。一方、各関節のエンコーダ（関節角度検出手段）１ｂ、２ｂ、・・・、２４ｂは、各関節の関節角度θ１、θ２・・・、θ２４を計測することができる。
【００１６】
ロボット１００は、右側及び左側の足平部１０１、１０２の裏側にホトセンサ２５、２６を、夫々有している。各ホトセンサ２５、２６は、各足平部１０１、１０２が接地しているのか否か、又は浮遊しているのか否か、を検出することができる。
【００１７】
図２は、本実施形態１に係るロボット１００の歩行制御装置２００のシステム構成を示すブロック図である。本実施形態１に係る歩行制御装置２００は、各関節のモータ１ａ〜２４ａ及びエンコーダ１ｂ〜２４ｂと、ホトセンサ２５、２６と、コントローラ２１０と、を備えている。
【００１８】
コントローラ２１０には、各関節のエンコーダ１ｂ〜２４ｂ及び各足平部１０１、１０２のホトセンサ２５、２６から、センサ出力が入力されている。また、コントローラ２１０は、各関節のモータ１ａ〜２４ａに対して、回転角度の制御信号を出力している。
【００１９】
なお、コントローラ２１０は、主要なハードウェア構成として、制御処理、演算処理等と行うＣＰＵ（Central Processing Unit）２１０ａと、ＣＰＵ２１０ａによって実行される制御プログラム、演算プログラム等が記憶されたＲＯＭ（Read Only Memory）２１０ｂと、処理データ等を一時的に記憶するＲＡＭ（Random Access Memory）２１０ｃと、を有するマイクロコンピュータにより構成されている。また、これらＣＰＵ２１０ａ、ＲＯＭ２１０ｂ、及びＲＡＭ２１０ｃは、データバス２１０ｄによって相互に接続されている。
【００２０】
コントローラ２１０は、ロボット１００を受動歩行させるような倒立振子モデルの重心軌道を、ロボット１００が歩行動作を開始する前に予め生成して、記憶している。コントローラ２１０は、ロボット１００の歩行動作を開始すると、予め記憶された重心軌道を読み出し、逆キネマティクス演算を行う。そして、コントローラ２１０は、各関節のモータ１ａ〜２４ａに対して制御指示するための、回転角度の時系列データを生成する。各モータ１ａ〜２４ａは、この生成された回転角度の時系列データに従って、各関節の関節角度θ１〜θ２４を調整する。これにより、ロボット１００は、受動歩行を行うことができる。
【００２１】
また、コントローラ２１０は、ロボット１００の受動歩行中に、ホトセンサ２５、２６及びエンコーダ１ｂ〜２４ｂからの検出結果に基づいて、ロボット１００の現在の状態（姿勢、相対位置等）を特定する。コントローラ２１０は、特定されたロボット１００の現在の状態に基づいて、読み出された重心軌道を修正して、各関節の関節角度θ１〜θ２４を生成する、いわゆるフィードバック制御（例えば、ＰＩＤ制御）を行う。
【００２２】
次に、ロボット１００の受動歩行について、詳細に説明する。本実施形態１に係るロボット１００において、一方の脚が支持脚として接地した状態で、支持脚の足首関節は、進行方向にも体側方向（後方向）にも回転自由である。この状態で、進行方向へ慣性が存在すると、ロボット１００は支持脚の足首関節を支点とした倒立振子の挙動を示し、進行方向へ向けて倒れ込む。このとき、遊脚が進行方向へ向けて振り出されると、ロボット１００が倒れ込むことによって、遊脚の足先が接地する。
【００２３】
遊脚の足先が接地した後、その接地した遊脚は新たに支持脚となる。このとき、新たな支持脚の足首関節は、進行方向又は体側方向にも回転自由となる。ロボット１００には、進行方向への慣性が作用しているため、ロボット１００は新たな支持脚の足首関節を支点とする倒立振子の挙動を示し、さらに進行方向へ向けて倒れ込む。また、そのときまで支持脚であった脚は、ロボット１００が倒れ込むことによって浮遊し、遊脚となる。その後、新たな遊脚を進行方向に向けて振り出しておけば、ロボット１００が倒れこむことによって、再び遊脚の足先が接地する。このような動作を繰り返すことによって、ロボット１００は、受動的な歩行を継続することができる。
【００２４】
なお、支持脚の足首関節を回転自由（非駆動関節）とした場合でも、実際には足首関節には摩擦が存在する。しかしながら、回転自由とする足首関節のモータ１ａ、２ａ、７ａ、８ａに、摩擦を相殺するだけのトルクを与えることによって、摩擦が存在しない状態を作り出すことができる。すなわち、本実施形態１において、関節を回転自由にするとは、足首関節のモータ１ａ、２ａ、７ａ、８ａに電流を加えないで受動回転を許容するようにするだけでなく、摩擦を相殺するだけのトルクを与えることによって実質的には摩擦が存在しない状態とすることの両者を含むものとする。
【００２５】
本実施形態１に係る歩行制御装置２００のコントローラ２１０は、倒立振子モデルにおけるロボット１００の重心軌道に基づいて、ロボットの歩行制御を行う。したがって、コントローラ２１０は、上述のロボット１００に受動歩行を行わせる際に、倒立振子モデルに基づいて、目標となる重心軌道Ｓを生成する。
【００２６】
図３は、本実施形態１に係るロボット１００の重心軌道を生成する倒立振子モデルの一例を示している。倒立振子モデル３００において、例えば、図３に示す如く、ロボット１００が右脚を支持脚として接地させ、左脚を遊脚として前方に振り出している状態をモデル化している。
【００２７】
倒立振子モデル３００では、質量ｍの質点３０１がロボット１００の重心Ｇに相当している。この重心Ｇは、支持脚リンク３０２を介して、支持脚の足平部１０１に対して接続されている。支持脚リンク３０２の下端は、支持脚の足平部１０１に対して、ピッチＰ及びヨーＹの２軸での回転が可能に接続されている。支持脚リンク３０２の上端は、重心Ｇに対して、ピッチＰ、ロールＲ及びヨーＹの３軸での回転が可能に接続されている。
【００２８】
さらに、支持脚リンク３０２の長さｌを伸縮させることで、倒立振子モデル３００の振子長Ｌを調整することができる。この６自由度の倒立振子モデル３００によって、支持脚の足平部１０１から見たロボット１００の重心Ｇの並進運動と、ロボット１００の重心Ｇ周りの回転運動を記述することができる。
【００２９】
本実施形態１に係る倒立振子モデル３００において、ロボット１００の重心Ｇが床面に対してピッチＰ及びロールＲの２軸に関して回転しないように制御される。また、倒立振子モデル３００において、遊脚リンク３０４が重心Ｇに対して、ピッチＰ、ロールＲ及びヨーＹの３軸での回転が可能に接続されている。遊脚リンク３０３の先端３０４は、ロボット１００の遊脚の足先に相当している。
【００３０】
なお、倒立振子モデル３００は、支持脚の接地位置を２軸に回転自由な支点とする倒立振子を表現している。この倒立振子モデル３００における重心Ｇは、図４に示す極座標（φ、θ、Ｌ）を用いることで、簡易的に扱うことができる。図４に示す極座標系では、支持脚の足平部１０１、１０２の基準点（例えば、中心点）を原点Ｏとして、重心Ｇの動径をＬとしている。支持脚の足平部１０１、１０２の接地面に垂直な方向（図４のｚ軸方向）からの重心Ｇの偏角（ピッチ角）をθとしている。支持脚の足平部１０１、１０２の接地面に重心Ｇを投影したときの支持脚の足平部１０１、１０２が向いている方向（図４のｘ軸方向）からの偏角（ロール角）をφとしている。
【００３１】
さらに、倒立振子モデル３００の重心軌道（重心Ｇの軌道）Ｓは、支持脚の足平部１０１、１０２の基準点を原点Ｏとする相対座標によって表現されている（図５）。したがって、例えば、支持脚が左脚である場合は、左脚の足平部１０２の基準点を原点Ｏとして、重心軌道Ｓの極座標（φ、θ、Ｌ）が構成される。一方、支持脚が左脚から右脚へ切り替わると、右脚の足平部１０１の基準点を原点Ｏとして、重心軌道Ｓの極座標（φ、θ、Ｌ）が構成される。これを繰り返すことにより、ロボット１００の連続的かつ自然な歩行運動が表現される（図６）。
【００３２】
なお、図５及び図６に示すように、偏角θは、支持脚期間の前半（倒立振子モデル３００の振子が起き上がる状態）において減少し、後半（倒立振子モデル３００の振子が倒れる状態）で増加している。一方で、偏角φは、支持脚期間において、上記前半及び後半を問わず、常に増加している。
【００３３】
また、倒立振子モデル３００の振子長Ｌは、ロボット１００の滑らかな歩行運動が実現されるように、多項式、スプライン関数等を用いて、調整される。例えば、振子長Ｌは、θの関数となる下記多項式（１）を用いて、調整することができる。
【数１】
2009255231.tif 000003
【００３４】
上記（１）式において、Ｌ０は振子長の初期値であり、予め設定される。また、上記（１）式において、ａ、ｂ、ｃ及びｄは、任意の定数である。
【００３５】
ところで、従来の歩行制御装置は、ロボットの歩行を目標進行方向及び／又は目標歩行速度に漸近させるために、現在から数歩先の歩行を予測する予測演算を行い、その演算結果に基づいて、次の遊脚の着地位置や次の１歩を決定している。このため、繰り返し実行される予測演算等によりコントローラの演算負荷が高くなり、計算プロセスも複雑化する虞がある。
【００３６】
そこで、本実施形態１に係る歩行制御装置２００において、歩行制御部２１３は、保存量算出部２１１により算出された現在の保存量Ｃ１、Ｃ２と、目標値算出部２１２により算出された保存量目標値Ｃ１Ｔ、Ｃ２Ｔと、に基づいて、ロボット１００の次の遊脚における着地位置を決定する。これにより、上述のような、繰り返し実行される数歩先の予測演算を必要としないため、演算プロセスを簡略化することができる。したがって、コントローラ２１０における演算負荷を軽減することができる。
【００３７】
図７は、本実施形態１に係る歩行制御装置２００のコントローラ２１０のシステム構成の一例を示すブロック図である。コントローラ２１０は、ロボット１００の歩行運動における現在の保存量Ｃ１、Ｃ２を算出する保存量算出部２１１と、保存量の目標値Ｃ１Ｔ、Ｃ２Ｔを算出する目標値算出部２１２と、ロボット１００の歩行制御を行う歩行制御部２１３と、を有している。
【００３８】
保存量算出部（保存量算出手段）２１１は、倒立振子モデル３００における重心Ｇ（φ、θ、Ｌ）の軌道に基づいて、ロボット１００の歩行運動における現在の保存量を算出する（保存量算出工程）。まず。倒立振子モデル３００において、重心Ｇ（質点ｍ）の運動方程式は、極座標（φ、θ、Ｌ）を用いて、下記（２）及び（３）式のように表現することができる。
【数２】
2009255231.tif 000004
【００３９】
保存量算出部２１１は、上記（２）及び（３）式に基づいて、例えば、現在の保存量である積分定数Ｃ１、Ｃ２を、下記（４）及び（５）式により算出する。
【数３】
2009255231.tif 000005
【００４０】
なお、現在の保存量Ｃ１、Ｃ２は、角運動量の２乗の次元を有している。また、現在の保存量Ｃ１、Ｃ２は、その１歩が開始されたときの初期条件によって決定され、その１歩間で一定値に維持される。
【００４１】
目標値算出部（目標値算出手段）２１２は、予め設定されたロボット１００の歩行の目標進行方向と、目標歩行速度と、目標値モデルパターンと、に基づいて、保存量の目標値Ｃ１Ｔ、Ｃ２Ｔを算出する（目標値算出工程）。ここで、目標値モデルパターンには、予めシミュレーション等により、目標進行方向及び目標歩行速度と、保存量の目標値（以下、保存量目標値と称す）Ｃ１Ｔ、Ｃ２Ｔとの相関関係（相関関数等）が導出され、設定されている。また、本実施形態１において、上記目標進行方向は、直進方向に固定されているものとする。
【００４２】
歩行制御部（歩行制御手段）２１３は、保存量算出部２１１により算出された現在の保存量Ｃ１、Ｃ２と、目標値算出部２１２により算出された保存量目標値Ｃ１Ｔ、Ｃ２Ｔと、に基づいて、ロボット１００の歩行制御を行う（歩行制御工程）。より具体的には、歩行制御部２１３は、保存量算出部２１１により算出された現在の保存量Ｃ１、Ｃ２と、目標値算出部２１２により算出された保存量目標値Ｃ１Ｔ、Ｃ２Ｔと、の差ΔＣ１（ΔＣ１＝Ｃ１−Ｃ１Ｔ）、ΔＣ２（ΔＣ２＝Ｃ２−Ｃ２Ｔ）が減少するように、次の１歩における重心Ｇの偏角（φ、θ）と振子長Ｌとの連動関数ｆ（φ、θ、Ｌ）、および、遊脚の着地位置を、夫々決定する。
【００４３】
ここで、歩行制御部２１３は、遊脚の足平部１０１、１０２の着地位置を、例えば、図８（ａ）乃至（ｃ）に示すようにして決定する。図８（ａ）において、例えば、振子長Ｌ１の後脚を支持脚とし、振子長Ｌ２の前脚を遊脚とする。この場合、図８（ｂ）において、遊脚の足平部１０２を支持脚の足平部１０１と対称となる位置から反時計方向（左方向）へ、重心Ｇを中心にして足平回転角度Δ（Δ>０）だけ回転させ、着地させる。同様に、図８（ｃ）において、遊脚の足平部１０２を支持脚の足平部１０１と対称となる位置から時計方向（右方向）へ、重心Ｇを中心にして足平回転角度Δ（Δ<０）だけ回転させ、着地させる。このように、歩行制御部２１３は、振子長Ｌ１、Ｌ２及び足平回転角度Δを決定することで、遊脚の足平部１０１、１０２の着地位置を、任意の位置に決定することができる。
【００４４】
次に、本実施形態１に係る歩行制御装置２００のコントローラ２１０による制御処理フローについて、詳細に説明する。図９は、本実施形態１に係る歩行制御装置２００のコントローラ２１０による制御処理フローの一例を示すフローチャートである。
【００４５】
まず、コントローラ２１０の目標値算出部２１２に、ロボット１００の目標歩行速度が、ユーザにより予め設定される。ここで、ロボット１００の目標進行方向は、上述の如く、直進方向となっている。そして、目標値算出部２１２は、設定された目標歩行速度に基づき、目標値モデルパターンを用いて、保存量目標値Ｃ１Ｔ、Ｃ２Ｔを算出する（ステップＳ１０）。
【００４６】
歩行制御部２１３は、極座標系の倒立振子モデル３００に基づいて、ロボット１００の重心軌道Ｓ（φ、θ、Ｌ）を逐次的に設定する（ステップＳ１１）。また、歩行制御部２１３は、上記重心軌道Ｓを満たすような各関節の関節角度θ１〜θ２４を、逆キネマティクスにより算出する（ステップＳ１２）。
【００４７】
歩行制御部２１３は、算出した関節角度θ１〜θ２４に応じた回転角度の信号を、対応する各関節のモータ１ａ〜２４ａに出力し、フィードバック制御を行う（ステップＳ１３）。各関節のモータ１ａ〜２４ａは、この回転角度の信号に基づいて、各関節を回転駆動する。ここで、足首関節は、支持脚期間において非駆動関節となるため、歩行制御部２１３は、足首関節のモータ１ａ、２ａ、７ａ、８ａに制御信号を供給しないものとする。
【００４８】
歩行制御部２１３は、保存量算出部２１１により算出された現在の保存量Ｃ１、Ｃ２と、目標値算出部２１２により算出された保存量目標値Ｃ１Ｔ、Ｃ２Ｔと、の差ΔＣ１Ｔ、ΔＣ２Ｔが０に収束するように、ロボット１００の次の１歩における、重心Ｇの偏角（φ、θ）と振子長Ｌとの連動関数ｆ（φ、θ、Ｌ）、および、足平回転角度Δを夫々決定し、次の遊脚の着地位置を決定する（ステップＳ１４）。
【００４９】
上述のように、ロボット１００の次の１歩における重心Ｇの偏角（φ、θ）と振子長Ｌとの連動関数ｆ（φ、θ、Ｌ）を決定することにより、現在の１歩の終端である遊脚着時の振子長Ｌ２と、その次の遊脚着地時の振子長Ｌ１とを、夫々決定することができる。なお、現在の１歩の終端となる遊脚着地時の振子長Ｌ１は、前回の遊脚着地時において既に決定されている。また、歩行制御部２１３は、保存量算出部２１１により算出された現在の保存量Ｃ１、Ｃ２と、目標値算出部２１２により算出された保存量目標値Ｃ１Ｔ、Ｃ２Ｔと、の差ΔＣ１、ΔＣ２が、夫々０に収束するように足平回転角度Δを決定する。
【００５０】
次に、歩行制御部２１３は、現在の１歩における支持脚期間中であると判断したとき（ステップＳ１５のＹＥＳ）、上記（ステップＳ１１）の処理に戻る。一方、歩行制御部２１３は、支持脚期間が終了したと判断したとき（ステップＳ１５のＮＯ）、本制御処理を終了する。
【００５１】
なお、各支持脚期間において、上記（ステップＳ１１）乃至（ステップＳ１４）の処理は、所定の制御周期毎に繰り返し実行される。これにより、ロボット１００の次の１歩における、重心Ｇの偏角（φ、θ）と振子長Ｌとの連動関数ｆ（φ、θ、Ｌ）、および、足平回転角度Δを更新することで、遊脚の着地位置を制御周期毎に更新することができる。したがって、制御周期毎に、保存量算出部２１１により算出される現在の保存量Ｃ１、Ｃ２を、目標値算出部２１２により算出される目標値Ｃ１Ｔ、Ｃ２Ｔへ、徐々に収束させることができる。その結果、ロボット１００の歩行速度を、予め設定された目標歩行速度に漸近させることができる。
【００５２】
以上、本実施形態１に係る歩行制御装置２００において、歩行制御部２１３は、保存量算出部２１１により算出された現在の保存量Ｃ１、Ｃ２と、目標値算出部２１２により算出された保存量目標値Ｃ１Ｔ、Ｃ２Ｔと、の差ΔＣ１Ｔ、ΔＣ２Ｔが減少するように、ロボット１００の次の１歩における、重心Ｇの偏角（φ、θ）と振子長Ｌとの連動関数ｆ（φ、θ、Ｌ）、および、足平回転角度Δを夫々決定し、次の遊脚の着地位置を決定する。これにより、繰り返し実行されるロボット１００の数歩先の予測演算を必要としないため、コントローラ２１０の演算プロセスが簡略化され、コントローラ２１０の演算負荷を軽減することができる。
（本発明の実施形態２．）
図１０は、本発明の実施形態２に係る歩行制御装置のコントローラのシステム構成の一例を示すブロック図である。本発明の実施形態２に係る歩行制御装置２２０のコントローラ２３０は、上記実施形態１に係る歩行制御装置２００のコントローラ２１０の構成に、ロボット１００の歩行の進行方向を任意の方向へ変更する進行方向変更部２３１を更に備えるものである。これにより、コントローラ２３０の演算負荷を軽減しつつ、ロボット１００の歩行を任意の進行方向へ制御することができる。
【００５３】
進行方向変更部２３１は、目標値算出部２１２により算出された保存量目標値Ｃ１Ｔ、Ｃ２Ｔを増減させることで、ロボット１００の進行方向を任意の方向へ変更することができる。例えば、進行方向変更部２３１は、ロボット１００を進行させる方向と反対側となる脚の支持脚期間中における、保存量目標値Ｃ１Ｔ、Ｃ２Ｔを増減させることで、１歩間の重心Ｇの偏角φの変化量を制御する。これにより、ロボット１００の進行方向を制御することができる。
【００５４】
より具体的には、ロボット１００を右方向へ進行させる場合、進行方向変更部２３１は、左脚の支持脚期間中における保存量目標値Ｃ１Ｔ、Ｃ２Ｔを増減させることで、１歩間の重心Ｇの偏角φの変化量を制御する。これにより、ロボット１００の進行方向を右方向へ制御することができる。一方、ロボット１００を左方向へ進行させる場合、進行方向変更部２３１は、右脚の支持脚期間中における保存量目標値Ｃ１Ｔ、Ｃ２Ｔを増減させることで、１歩間の重心Ｇの偏角φの変化量を制御する。これにより、ロボット１００の進行方向を左方向へ制御することができる。
【００５５】
図１１は、本発明の実施形態２に係る歩行制御装置２２０のコントローラ２３０による制御処理フローの一例を示すフローチャートである。まず、コントローラ２３０の目標値算出部２１２に、ロボット１００の目標進行方向及び目標歩行速度が、ユーザにより予め設定される。そして、目標値算出部２１２は、予め設定された目標進行方向と目標歩行速度とに基づき、目標値モデルパターンを用いて、保存量目標値Ｃ１Ｔ、Ｃ２Ｔを算出する（ステップＳ２０）。
【００５６】
歩行制御部２１３は、極座標系の倒立振子モデル３００に基づいて、ロボット１００の重心軌道Ｓ（φ、θ、Ｌ）を逐次的に設定する（ステップＳ２１）。また、歩行制御部２１３は、上記重心軌道Ｓを満たすような各関節の関節角度θ１〜θ２４を、逆キネマティクスにより算出する（ステップＳ２２）。
【００５７】
歩行制御部２１３は、算出した関節角度θ１〜θ２４に応じた回転角度の信号を、対応する各関節のモータ１ａ〜２４ａに対して出力し、フィードバック制御を行う（ステップＳ２３）。各関節のモータ１ａ〜２４ａは、この回転角度の信号に基づいて、各関節を駆動する。ここで、足首関節は、支持脚期間において非駆動関節となるため、歩行制御部２１３は、足首関節のモータ１ａ、２ａ、７ａ、８ａに制御信号を供給しないものとする。
【００５８】
歩行制御部２１３は、保存量算出部２１１により算出された現在の保存量Ｃ１、Ｃ２と、目標値算出部２１２により算出された保存量目標値Ｃ１Ｔ、Ｃ２Ｔと、の差ΔＣ１Ｔ、ΔＣ２Ｔが０に収束するように、ロボット１００の次の１歩における、重心Ｇの偏角（φ、θ）と振子長Ｌとの連動関数ｆ（φ、θ、Ｌ）、および、足平回転角度Δを夫々決定し、次の遊脚の着地位置を決定する（ステップＳ２４）。
【００５９】
次に、歩行制御部２１３は、現在の１歩における支持脚期間中であると判断したとき（ステップＳ２５のＹＥＳ）、重心Ｇの偏角θの角速度ｄθ／ｄｔが０（ｄθ／ｄｔ＝０）であるか否かを判断する（ステップＳ２６）。ここで、角速度ｄθ／ｄｔが０になるとは、倒立振子モデル３００の振子（支持脚）が起き上がり、倒れ始める直前の状態を指す。
【００６０】
歩行制御部２１３は、角速度ｄθ／ｄｔが０であると判断したとき（ステップＳ２６のＹＥＳ）、現在の保存量Ｃ１、Ｃ２を保持する。そして、歩行制御部２１３は、この保持状態で、次の１歩におけるロボット１００の進行方向が、設定された目標進行方向へ漸近するように、現在の１歩における重心Ｇの偏角（φ、θ）と振子長Ｌとの連動関数ｆ（φ、θ、Ｌ）を更新する。これにより、現在の１歩の終端となる遊脚着地時の振子長Ｌ１が更新される（ステップＳ２７）。
【００６１】
さらに、進行方向変更部２３１は、次の１歩における保存量目標値Ｃ１Ｔ、Ｃ２Ｔを所定時間だけ、増減させることで、重心Ｇの偏角φの変化量を制御する（ステップＳ２８）。これにより、ロボット１００の次の１歩における進行方向を、目標進行方向へ制御することができる。次に、本制御処理は、上記（ステップＳ２１）に戻る。
【００６２】
一方、歩行制御部２１３は、角速度ｄθ／ｄｔが０でないと判断したとき（ステップＳ２６のＮＯ）、上記（ステップＳ２１）に戻る。
【００６３】
以上、本実施形態２に係る歩行制御装置２２０において、歩行制御部２１３は、次の１歩におけるロボット１００の進行方向が、設定された目標進行方向に漸近するように、現在の１歩における重心Ｇの偏角（φ、θ）と振子長Ｌとの連動関数ｆ（φ、θ、Ｌ）を更新し、現在の１歩の終端である遊脚着地時の振子長Ｌ１を更新する。さらに、進行方向変更部２３１は、次の１歩における保存量目標値Ｃ１Ｔ、Ｃ２Ｔを、所定時間だけ増減させることで、ロボット１００の次の１歩における進行方向を目標進行方向へ制御する。これにより、ロボット１００の進行方向を任意の方向に変更することができる。すなわち、コントローラ２３０の演算負荷を軽減しつつ、ロボット１００の歩行を任意の進行方向へ制御することができる。
【００６４】
例えば、ロボット１００の歩行中に外乱が生じた場合でも、ロボット１００の歩行速度及び進行方向を、予め設定された目標歩行速度及び目標進行方向へ夫々漸近させることができる。したがって、ユーザは目標歩行速度及び目標進行方向をコントローラ２３０に予め設定するだけで、ロボット１００に外乱が生じた場合でも、このロボット１００に所望の歩行動作を行わせることができる。
【００６５】
なお、本発明を実施するための最良の形態について実施形態１及び２を用いて説明したが、本発明はこうした実施形態１及び２に何等限定されるものではなく、本発明の要旨を逸脱しない範囲内において、上述した実施形態１及び２に種々の変形及び置換を加えることができる。
【図面の簡単な説明】
【００６６】
【図１】本発明の実施形態１に係るロボットの機械構成を示したスケルトン図である。
【図２】本発明の実施形態１に係るロボットの歩行制御装置のシステム構成を示すブロック図である。
【図３】本発明の実施形態１に係るロボットの重心軌道を生成する倒立振子モデルの一例を示している。
【図４】倒立振子モデルにおける重心の極座標系を示している。
【図５】重心軌道が、支持脚の足平部の基準点を原点とする相対座標によって表現されている態様を示す図である。
【図６】倒立振子モデルにおけるロボットの重心軌道を３次元で見た図である。
【図７】本発明の実施形態１に係る歩行制御装置のコントローラのシステム構成の一例を示すブロック図である。
【図８】（ａ）歩行制御部による、遊脚の足平部における着地位置の決定方法を示す図である。（ｂ）歩行制御部による、遊脚の足平部における着地位置の決定方法を示す図である。（ｃ）歩行制御部による、遊脚の足平部における着地位置の決定方法を示す図である。
【図９】本発明の実施形態１に係る歩行制御装置のコントローラによる制御処理フローの一例を示すフローチャートである。
【図１０】本発明の実施形態２に係る歩行制御装置のコントローラのシステム構成の一例を示すブロック図である。
【図１１】本発明の実施形態２に係る歩行制御装置のコントローラによる制御処理フローの一例を示すフローチャートである。
【符号の説明】
【００６７】
１〜２４          エンコーダ付きモータ
１ａ〜２４ａ      モータ
１ｂ〜２４ｂ      エンコーダ
２５、２６        ホトセンサ
１００            ロボット
１０１、１０２    足平部
２００            歩行制御装置
２１０            コントローラ
２１１            保存量算出部
２１２            目標値算出部
２１３            歩行制御部          
３００            倒立振子モデル
Ｇ                重心
Ｓ                重心軌道
Ｌ、Ｌ１、Ｌ２    振子長
φ、θ            偏角
【図１】
2009255231.tif 000006
【図２】
2009255231.tif 000007
【図３】
2009255231.tif 000008
【図４】
2009255231.tif 000009
【図５】
2009255231.tif 000010
【図６】
2009255231.tif 000011
【図７】
2009255231.tif 000012
【図８】
2009255231.tif 000013
【図９】
2009255231.tif 000014
【図１０】
2009255231.tif 000015
【図１１】
2009255231.tif 000016