(57)【要約】【課題】  ロボットに歩行動作を実現させる際に、歩行に必要とされるエネルギーが少なく、かつ外乱に対しても安定して歩行を持続することが可能な技術を提供する。【解決手段】  脚式ロボットの歩容データを生成する装置であって、受動歩行のシミュレーションを行う簡易モデルを用いて足先軌道とＺＭＰ軌道を生成する第１歩容データ生成手段と、能動歩行のシミュレーションを行う詳細モデルを用いて第１歩容データ生成手段で生成された足先軌道と組み合わせたときに第１歩容データ生成手段で生成されたＺＭＰ軌道を実現する腰軌道を生成する第２歩容データ生成手段と、第１歩容データ生成手段で生成された足先軌道と第２歩容データ生成手段で生成された腰軌道を含む歩容データを脚式ロボットに提供する出力手段とを備える歩容データ生成装置。【選択図】  図２
2008142861.tif 000002
【特許請求の範囲】
【請求項１】
脚式ロボットの歩容データを生成する装置であって、
受動歩行のシミュレーションを行う簡易モデルを用いて、足先軌道とＺＭＰ軌道を生成する第１歩容データ生成手段と、
能動歩行のシミュレーションを行う詳細モデルを用いて、第１歩容データ生成手段で生成された足先軌道と組み合わせたときに第１歩容データ生成手段で生成されたＺＭＰ軌道を実現する腰軌道を生成する第２歩容データ生成手段と、
第１歩容データ生成手段で生成された足先軌道と第２歩容データ生成手段で生成された腰軌道を含む歩容データを脚式ロボットに提供する出力手段と、
を備える歩容データ生成装置。
【請求項２】
脚式ロボットの歩容データを生成する方法であって、
受動歩行のシミュレーションを行う簡易モデルを用いて、足先軌道とＺＭＰ軌道を生成する第１歩容データ生成工程と、
能動歩行のシミュレーションを行う詳細モデルを用いて、第１歩容データ生成工程で生成された足先軌道と組み合わせたときに第１歩容データ生成工程で生成されたＺＭＰ軌道を実現する腰軌道を生成する第２歩容データ生成工程と、
第１歩容データ生成工程で生成された足先軌道と第２歩容データ生成工程で生成された腰軌道を含む歩容データを脚式ロボットに提供する出力工程と、
を備える歩容データ生成方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、脚式ロボットの歩容データを生成する装置と方法に関する。
【背景技術】
【０００２】
左脚と腰と右脚の相対的姿勢を変化させることによって歩行するロボットが開発されている。左脚と腰と右脚の相対的姿勢を変化させる場合、結果として歩行させることができるように、左脚と腰と右脚の相対的姿勢を変化させなければならない。このために、左足先と腰と右足先の位置と姿勢を指示する歩容データが利用される。
【０００３】
図５に示すように、歩容データは、ロボットが活動する空間の座標を定めるグローバル座標系において、左足先と腰と右足先の位置と姿勢を指示する。左足先と腰と右足先の位置を指示するために、左足先には基準点ＬＦが定められており、右足先には基準点ＲＦが定められており、腰には基準点Ｗが定められている。左足先と腰と右足先の姿勢を指示するために、左足先に垂直なベクトルＬＦｄが想定されており、右足先に垂直なベクトルＲＦｄが想定されており、体幹に沿って伸びるベクトルＷｄが想定されている。歩容データは、グローバル座標系において、左足先の基準点ＬＦのｘ、ｙ、ｚ座標、右足先の基準点ＲＦのｘ、ｙ、ｚ座標、腰の基準点Ｗのｘ、ｙ、ｚ座標を指示する。また、左足先に垂直なベクトルＬＦｄのピッチ角Ｌαと、ロール角Ｌβと、ヨー角Ｌγを指示し、右足先に垂直なベクトルＲＦｄのピッチ角Ｒαと、ロール角Ｒβと、ヨー角Ｒγを指示し、体幹に沿って伸びるベクトルＷｄのピッチ角Ｗαと、ロール角Ｗβと、ヨー角Ｗγを指示する。歩容データは、左足先と腰と右足先の位置と姿勢の経時的な変化を指示する。本明細書では、足先の位置と姿勢の経時的な変化を足先軌道という。また、腰の位置と姿勢の経時的な変化を腰軌道という。歩容データは、左脚の足先軌道と、右脚の足先軌道と、腰軌道を含んでいる。
【０００４】
歩容データが与えられると、ロボットは、左足先と腰と右足先がそれぞれ与えられた位置と姿勢をとるように各関節の回転角度を計算し、各関節を計算された回転角度に調整する。歩容データは経時的な変化を指示することから、各関節の回転角度も経時的に変化させられる。歩容データに従って、左脚と腰と右脚の相対的姿勢を経時的に変化させることによってロボットは歩行する。本明細書では、上記のように各関節の回転角度をロボットが能動的に調整する歩行を、能動歩行という。
【０００５】
ロボットを安定して持続的に歩行させる技術として、ＺＭＰ（Zero Moment Point）規範に基づく歩行技術が知られている。本明細書でＺＭＰとは、ロボットに作用する重力と慣性力に関して、床面に沿う回転軸まわりのモーメントの総和が０となる床面上の点のことを意味する。床面からロボットに作用する床反力の作用点の位置と、ＺＭＰの位置が一致していれば、ロボットには床面に沿う回転軸まわりのモーメント、すなわちロボットを床面に倒そうとするモーメントが作用しない。従って、右脚と左脚のうち一方を支持脚として接地し、他方を遊脚として前方へ振り出している状態でも、床反力作用点の位置とＺＭＰの位置が一致していれば、ロボットは転倒することがない。なお本明細書では、ＺＭＰの位置の経時的な変化をＺＭＰ軌道という。
【０００６】
ＺＭＰ規範に基づく歩行技術では、一方の脚のみを接地している状態においては、支持脚の足先が床面と接触している範囲内に維持されるＺＭＰ軌道を目標ＺＭＰ軌道とする。目標ＺＭＰ軌道が実現されるように、腰の位置（Ｗｘ、Ｗｙ，Ｗｚ）と姿勢（Ｗα、Ｗβ、Ｗγ）を設定しておくことで、ロボットは転倒しないで歩行を続けることができる。ＺＭＰの位置はロボットに作用する重力および慣性力から算出することができる。ロボットに作用する重力および慣性力は、ロボットの位置と姿勢の経時的な変化から、ロボットの動力学モデルに基づいて算出することができる。従って、目標ＺＭＰ軌道を実現するようなロボットの位置と姿勢の経時的な変化は、ロボットの動力学モデルを用いて探索的に求めることができる。このように、支持脚の足先の接地範囲内に維持される目標ＺＭＰ軌道を実現する歩容データを求め、その歩容データに従ってロボットの全身の関節を回転駆動することによって、ロボットは安定して持続的に歩行することができる。
【０００７】
上記したＺＭＰ規範に基づく歩行技術は、運動の自由度が高いという側面を有する。例えば予め定められた歩幅でロボットを歩行させたい場合には、右脚と左脚の足先軌道を予め与えておいて、支持脚の足先の接地範囲内に維持される目標ＺＭＰ軌道を実現するように腰軌道を調整することによって、安定して歩行可能な歩容データを生成することができる。また、ロボットが腕を備えており、ロボットに腕を使ったパフォーマンスを行わせたい場合には、手先の位置と姿勢の経時的な変化（手先軌道）を足先軌道とともに予め与えておいて、支持脚の足先の接地範囲内に維持される目標ＺＭＰ軌道を実現するように腰軌道を調整することによって、安定して歩行可能な歩容データを生成することができる。
特許文献１には、このようなＺＭＰ規範に基づく能動歩行の例が開示されている。
【０００８】
上記したＺＭＰ規範に基づく能動歩行においては、運動の自由度が高い反面、歩行に必要とされるエネルギーについては考慮されていないという問題がある。上記したＺＭＰ規範に基づく能動歩行においては、歩容データに従って各関節の回転角度を調整する際にアクチュエータ等で消費されるエネルギーを考慮せずに、歩容データを生成している。従って、ロボットの動作態様によっては、歩行に必要とされるエネルギーが過大なものとなってしまう。ロボットを自律的に歩行させる場合、ロボットに搭載されたバッテリーから各関節を駆動するアクチュエータ等にエネルギーが供給される。ロボットに搭載可能なバッテリーのサイズは限られているから、歩行のために必要とされるエネルギーは少ないほど好ましい。
【０００９】
上記したＺＭＰ規範の歩行技術とは異なり、ロボットが重力や慣性力によって自然に倒れこむ現象を利用して、ロボットを歩行させる技術が開発されている。この技術では、一方の脚のみが接地している状態において、支持脚の足先が床面に回転自由に支持されるようにしておく。これには、ロボットの脚の先端部分に丸みを持たせておいて、丸みのある先端部分が床面に接地するようにしてもよいし、ロボットの脚の先端に足平と足首関節を設けておいて、床面に足平が接地しているときに足首関節を回転自由としてもよい。この状態で、前方に向けた速度がロボットに与えられていると、ロボットは支持脚の足先を支点とする倒立振子の挙動を示し、前方に向けて自然に倒れこんでいく。これと同時に、遊脚を前方に向けて振り出しておけば、ロボットが床面に完全に倒れこんでしまう前に、遊脚の足先が床面に接地する。その後、新たに接地した脚を支持脚として、それまで接地していた脚を遊脚として、支持脚と遊脚を入れ替える。新たな支持脚についても、足先が床面に回転自由に支持されるようにすることで、再びロボットは倒立振子の挙動を示して、前方に向けた慣性によってロボットはさらに前方に向けて倒れこんでいく。これと同時に、新たに遊脚となった脚を前方に向けて振り出しておけば、ロボットが完全に倒れこんでしまう前に再び遊脚の足先が床面に接地する。このような動作を繰り返すことによって、ロボットは持続的に歩行を行うことができる。
上記のような歩行は、ロボットに作用する重力や慣性力に無理に逆らうことなく、重力や慣性力によって自然に倒れこむ現象を利用しており、受動的な歩行動作ということができる。本明細書では、このようなロボットの歩行を受動歩行と呼ぶ。特許文献２には、ロボットの受動歩行の例が開示されている。
【００１０】
受動歩行では、ロボットが重力と慣性力によって自然に倒れこむ現象を利用して歩行するため、ロボットの動作に無理が無く、歩行のために必要とされるエネルギーが少なくて済むという利点がある。また、人間が歩行する動作によく一致した自然で滑らかな動作で歩行することができ、見た目にも美しい。
【００１１】
【特許文献１】特開平０５−２５３８６７号公報
【特許文献２】特開２００４−２７６１６７号公報
【発明の開示】
【発明が解決しようとする課題】
【００１２】
ロボットに予期せぬ外乱が作用することがある。路面の予期せぬ凹凸によって外乱力が作用することもあるし、ロボットに外界から押したり引いたりする外力が加えられることもある。
受動歩行においてロボットに予期せぬ外乱がわずかでも作用すると、ロボットは外乱に対しても逆らうことなく動作し、バランスを崩してしまう。安定して歩行を持続するためには、予期せぬ外乱が作用した場合でも、大きな影響を受けずに安定した歩行を持続できることが好ましい。
【００１３】
他方、能動歩行においては、各関節の回転角度を能動的に調整しているため、わずかな外乱が作用しても、ロボットは外乱に抗して歩容データで表現される歩行動作を実現する。このため、外乱に対しても安定して歩行を持続することができる。しかしながら、上述したように、能動歩行においては歩行に必要とされるエネルギーが考慮されておらず、また動作がぎこちないものとなってしまうという難点がある。
【００１４】
受動歩行のように歩行に必要とされるエネルギーが少なく、かつ能動歩行のように予期せぬ外乱に対しても安定して歩行を持続することができる技術が待望されている。
【００１５】
本発明では上記課題を解決する。本発明では、ロボットに歩行動作を実現させる際に、歩行に必要とされるエネルギーが少なく、かつ外乱に対しても安定して歩行を持続することが可能な技術を提供する。
【課題を解決するための手段】
【００１６】
本発明は脚式ロボットの歩容データを生成する装置として具現化される。本発明の歩容データ生成装置は、受動歩行のシミュレーションを行う簡易モデルを用いて足先軌道とＺＭＰ軌道を生成する第１歩容データ生成手段と、能動歩行のシミュレーションを行う詳細モデルを用いて第１歩容データ生成手段で生成された足先軌道と組み合わせたときに第１歩容データ生成手段で生成されたＺＭＰ軌道を実現する腰軌道を生成する第２歩容データ生成手段と、第１歩容データ生成手段で生成された足先軌道と第２歩容データ生成手段で生成された腰軌道を含む歩容データを脚式ロボットに提供する出力手段とを備えている。
【００１７】
上記の歩容データ生成装置では、まず受動歩行のシミュレーションを行う簡易的なモデル（簡易モデル）を用いて、受動歩行時の足先軌道とＺＭＰ軌道をそれぞれ取得する。そして、能動歩行のシミュレーションを行う詳細なモデル（詳細モデル）を用いて、簡易モデルから生成された足先軌道と組み合わせたときに簡易モデルから生成されたＺＭＰ軌道を実現するような腰軌道を生成する。そして、簡易モデルから生成された足先軌道と詳細モデルから生成された腰軌道を含む歩容データを脚式ロボットに提供する。
【００１８】
受動歩行では、ロボットが床面に転倒してしまう前に遊脚の足先が接地し、支持脚を入れ替えることによって、ロボットは歩行を継続することができる。本発明の歩容データ生成装置では、このような受動歩行における足先軌道とＺＭＰ軌道を予め簡易モデルから生成しておいて、その足先軌道と組み合わせたときにそのＺＭＰ軌道を実現するような腰軌道を生成する。これによって、受動歩行と同様の動作を能動的にロボットに実現させることができる。ロボットの歩行中に予期せぬ外乱が作用した場合であっても、ロボットはその外乱の影響を受けることなく安定した歩行を持続することができる。
【００１９】
受動歩行時の足先軌道とＺＭＰ軌道を生成するためには、支持脚の足先が床面に対して回転自由に支持されているという条件のもとで、ロボットの動力学特性に基づいた運動方程式を導出して、導出された運動方程式を求解しなければならない。しかしながら、ロボットの動力学特性を詳細にモデル化すると、運動方程式を導出することが容易なことではなく、また導出された運動方程式を求解することも困難なものとなる。そこで本発明では、ロボットの動力学特性を簡略化した簡易モデルを用いて、受動歩行時の足先軌道とＺＭＰ軌道を生成する。簡易モデルとしては、例えば体幹と左右の脚をそれぞれリンクで表現した、３リンクのモデルが用いられる。
【００２０】
本発明の歩容データ生成装置で生成された歩容データは、簡易モデルにおける受動歩行を実現するものであり、現実のロボットにおける理想的な受動歩行を実現するものではない。しかしながら、簡易モデルでの受動歩行と現実のロボットにおける理想的な受動歩行との相違はわずかなものであるから、本発明の歩容データ生成装置で生成された歩容データを用いることで、通常のＺＭＰ規範の能動歩行にくらべて、歩行に必要とされるエネルギーを大幅に抑制することができる。また、見た目にも自然で滑らかな動作を実現することができる。
【００２１】
また本発明の歩容データ生成装置によって生成される歩容データは、通常のＺＭＰ規範に基づく能動歩行の歩容データと同様に、腰軌道と足先軌道を含んでいる。従って、従来技術によって生成されるＺＭＰ規範の能動歩行における歩容データと、連続的に接続することが容易である。例えば、ある期間については本発明の歩容データ生成装置で生成された歩容データを利用して歩行に要するエネルギーを抑制し、その直後の期間については従来のＺＭＰ規範に基づいて生成された歩容データを利用してダンスステップを行わせる、といった複合的な動作についても、容易に実現することができる。
また、本発明の歩容データ生成装置で生成された歩容データを用いることで、従来のＺＭＰ規範に基づく能動歩行において用いられていた歩行安定化技術、例えばフィードバックループを用いた実時間での歩容データの修正技術を併用することもできる。
【００２２】
本発明は方法としても具現化される。本発明の方法は、脚式ロボットの歩容データを生成する方法であって、受動歩行のシミュレーションを行う簡易モデルを用いて足先軌道とＺＭＰ軌道を生成する第１歩容データ生成工程と、能動歩行のシミュレーションを行う詳細モデルを用いて第１歩容データ生成工程で生成された足先軌道と組み合わせたときに第１歩容データ生成工程で生成されたＺＭＰ軌道を実現する腰軌道を生成する第２歩容データ生成工程と、第１歩容データ生成工程で生成された足先軌道と第２歩容データ生成工程で生成された腰軌道を含む歩容データを脚式ロボットに提供する出力工程とを備えている。
【発明の効果】
【００２３】
本発明の技術によれば、ロボットに歩行動作を実現させる際に、歩行に必要とされるエネルギーが少なく、かつ外乱に対しても安定して歩行を持続することができる。
【発明を実施するための最良の形態】
【００２４】
以下、本発明を具現化した実施例について図面を参照して説明する。
【実施例】
【００２５】
図１は本実施例の歩容データ生成装置１００と、歩容データ生成装置１００が歩容データを生成する対象とするロボット１１０を模式的に示している。ロボット１１０は体幹１１２と、頭１１４と、右腕１１６と、左腕１１８と、右脚１２０と、左脚１２２を備えている。ロボット１１０の歩行を制御するために、ロボット１１０の体幹１１２にコントローラ１３０が搭載されている。ロボット１１０は、右脚１２０が接地している間に左脚１２２を遊脚として前方へ移動させ、左脚１２２が接地すると今後は右脚１２０を遊脚として前方へ移動させ、以下同様に、左脚１２２を遊脚として前方へ移動させ、次いで右脚１２０を遊脚として前方へ移動させて、歩行していく。
【００２６】
右脚１２０および左脚１２２は、それぞれ体幹１１２の下部に対して２軸の股関節を介して接続されている。右脚１２０および左脚１２２は、それぞれ１軸の膝関節と２軸の足首関節を備えており、先端には床面に接地する足平を備えている。右腕１１６および左腕１１８は、それぞれ体幹１１２の上部の両側面に対して２軸の肩関節を介して接続されている。右腕１１６および左腕１１８は、それぞれ１軸の肘関節を備えている。頭１１４は体幹１１２の上部中央に３軸の首関節を介して接続されている。各関節にはエンコーダ付きのモータが設けられており、コントローラ１３０は各関節の回転角度を計測したり、各関節の回転角度を調整したりすることができる。
【００２７】
ロボット１１０が歩行するためには、右脚１２０と左脚１２２の足先の位置と姿勢の経時的な変化（足先軌道）を記述する足先軌道データや、右腕１１６と左腕１１８の手先の位置と姿勢の経時的な変化（手先軌道）を記述する手先軌道データや、体幹１１２の下端に位置する腰の位置と姿勢の経時的な変化（腰軌道）を記述する腰軌道データで構成される歩容データが必要とされる。ロボット１１０の歩容データは、ロボット１１０の当初の歩行方向をｘ軸とし、当初の体側方向をｙ軸とし、高さ方向をｚ軸とする、床面に固定されたグローバル座標系によって表現される。本実施例のロボット１１０では、右足先、左足先、腰、右手先および左手先の位置を指示するために、右脚１２０の足平に基準点ＲＦが設けられており、左脚１２２の足平に基準点ＬＦが設けられており、体幹１１２の下端に基準点Ｗが設けられており、右腕１１６の先端に基準点ＲＨが設けられており、左腕１１８の先端に基準点ＬＨが設けられている。また、右足先、左足先、腰、右手先および左手先の姿勢を指示するために、右脚１２０の足平に垂直な基準ベクトルＲＦｄが想定されており、左脚１２２の足平に垂直な基準ベクトルＬＦｄが設けられており、体幹１１２に沿って伸びる基準ベクトルＷｄが想定されており、右腕１１６の先端から伸びる基準ベクトルＲＨｄが想定されており、左腕１１８の先端から伸びる基準ベクトルＬＨｄが想定されている。以下では体幹１１２に関して、腰の基準点Ｗの位置と、基準ベクトルＷｄのピッチ角、ロール角およびヨー角の経時的な変化を、体幹１２２の腰軌道という。同様に、右脚１２０の基準点ＲＦの位置と、基準ベクトルＲＦｄのピッチ角、ロール角およびヨー角の経時的な変化を、右脚１２０の足先軌道といい、左脚１２２の基準点ＬＦの位置と、基準ベクトルＬＦｄのピッチ角、ロール角およびヨー角の経時的な変化を、左脚１２２の足先軌道という。また、右腕１１６の基準点ＲＨの位置と、基準ベクトルＲＨｄのピッチ角、ロール角およびヨー角の経時的な変化を、右腕１１６の手先軌道といい、左腕１１８の基準点ＬＨの位置と、基準ベクトルＬＨｄのピッチ角、ロール角およびヨー角の経時的な変化を、左腕１１８の手先軌道という。
図１では、歩容データに従って、左脚１２２を足先軌道ＬＦ１で移動させ、その後に右脚１２０を足先軌道ＲＦ１で移動させ、その後に左脚１２２を足先軌道ＬＦ２で移動させ、その後に右脚１２０を足先軌道ＲＦ２で移動させることによって、ロボット１１０は歩行する。
【００２８】
コントローラ１３０は、ＣＰＵ、ＲＯＭ、ＲＡＭ、ハードディスク等を有する。コントローラ１３０のハードウェア構成は汎用のコンピュータと同じであり、説明は省略する。コントローラ１３０は歩容データ生成装置１００で生成される歩容データを予め記憶しており、それに基づいてロボット１１０の各関節を制御する。ロボット１１０が歩行動作を開始すると、コントローラ１３０は記憶された歩容データを順次読み出しながら、歩容データで表現される腰軌道、足先軌道および手先軌道を実現するように、逆キネマティクス演算によって各関節の目標回転角度をリアルタイムに算出し、各関節のモータを制御して関節の回転角度を調整する。各関節の回転角度が調整されることによって、ロボット１１０の全身の姿勢が変化して、ロボット１１０は歩容データによって表現される歩行動作を実現する。
【００２９】
歩容データ生成装置１００は、ロボット１１０が歩行動作を開始するのに先立ち、ロボット１１０の歩容データを生成する。歩容データ生成装置１００は、ロボット１１０のコントローラ１３０と通信可能であり、生成された歩容データをコントローラ１３０へ送信する。ロボット１１０のコントローラ１３０は受信した歩容データを記憶しておく。
【００３０】
図２は歩容データ生成装置１００の構成を示している。歩容データ生成装置１００は、基準歩容データ生成装置２１０と、詳細歩容データ生成装置２２０と、出力装置２３０を備えている。
【００３１】
基準歩容データ生成装置２１０は、ロボット１００の動力学特性を簡易的に表現した簡易モデルを使用して、ロボット１００に受動歩行をさせた場合の足先軌道および腰軌道を生成する。また基準歩容データ生成装置２１０は、生成された足先軌道および腰軌道を実現した場合のＺＭＰ軌道を生成する。
図３は基準歩容データ生成装置２１０が扱う簡易モデル３００を模式的に示している。簡易モデル３００においては、ロボット１１０は体幹リンク３０２と、体幹リンク３０２の下端に回転自由に接続された２つの脚リンク（右脚リンク３０４および左脚リンク３０６）によって表現される。簡易モデル３００においては、体幹リンク３０２、右脚リンク３０４および左脚リンク３０６は、それぞれ質量を備えるリンクとして表現されている。体幹リンク３０２の質量は、ロボット１１０の体幹１１２と、頭１１４と、右腕１１６と、左腕１１８の重量の総和で与えられる。右脚リンク３０４および左脚リンク３０６の質量は、それぞれロボット１１０の右脚１２０および左脚１２２の重量で与えられる。
【００３２】
簡易モデル３００においては、以下の条件に基づいてロボット１１０の運動がシミュレートされる。
（１）一方の脚リンク（例えば左脚リンク３０６）が接地している状態において、支持脚となっている脚リンク（左脚リンク３０６）の先端は床面に対して回転自由に支持されている。
（２）一方の脚リンク（例えば左脚リンク３０６）が接地している状態において、遊脚となっている脚リンク（右脚リンク３０４）は、体幹リンク３０２の下端に回転自由に接続されている。
（３）一方の脚リンク（例えば左脚リンク３０６）が接地している状態において、遊脚となっている脚リンク（右脚リンク３０４）が接地すると、支持脚と遊脚を入れ替えて、それまで遊脚となっていた脚リンク（右脚リンク３０４）を新たに支持脚として、それまで支持脚となっていた脚リンク（左脚リンク３０６）を新たに遊脚とする。
【００３３】
簡易モデル３００においては、一方の脚リンクが接地してから、他方の脚リンクが接地するまでの期間について、ロボット１１０の挙動を倒立振子の運動として生成する。倒立振子の運動は、体幹リンク３０２、右脚リンク３０４および左脚リンク３０６で構成される３リンク系の運動方程式を数値積分によって求解することによって生成される。そして、遊脚となっている脚リンクが床面に接地すると、遊脚と支持脚を入れ替える。新たに支持脚となった脚リンクを床面に対して回転自由とし、新たに遊脚となった脚リンクを体幹リンク３０２に対して回転自由とする。また遊脚と支持脚を入れ替える前後において、体幹リンク３０２、右脚リンク３０４および左脚リンク３０６の運動が連続するように、その後の運動の初期条件を設定する。その後、新たに支持脚となった脚リンクの足先を支点とするロボット１１０の倒立振子としての挙動を、再び運動方程式を求解して生成する。これを繰り替えすことによって、床面ＧＦの上をロボット１１０が歩行していく様子がシミュレートされる。
【００３４】
簡易モデル３００においては、最初にロボット１１０に前方に向けた慣性が存在していれば、支持脚である脚リンクが床面に対して回転自由となっているため、ロボット１１０は全体として倒立振子の挙動を示し、前方へ向けて倒れこんでいく。このとき、遊脚である脚リンクは体幹リンク３０２に対して回転自由となっており、体幹リンク３０２の下端に支持された振子の挙動を示して、体幹リンク３０２の後方から前方へ向けて振り出される。ロボット１１０が前方へ倒れこんでいき、前方に振り出された脚リンクが床面に接地すると、支持脚と遊脚が入れ替わる。すなわち、前方で接地している脚リンクが新たに支持脚となり、後方で接地している脚リンクが新たに遊脚となる。その後、ロボット１１０はふたたび倒立振子の挙動を示し、さらに前方に向けて倒れこんでいく。また、新たに遊脚となった脚リンクは、後方から前方に向けて振り出される。このような動作を繰り返すことで、簡易モデル３００においてロボット１１０は受動的に歩行する。
【００３５】
簡易モデル３００において、歩行中の体幹リンク３０２の鉛直方向からの傾斜角γは、任意に与えておくことができる。体幹リンク３０２の傾斜角γを変化させると、ロボット１１０の支持脚の足先から見た重心位置が変化し、歩行時の歩幅や歩行速度が変化する。基準歩容データ生成装置２１０では、体幹リンク３０２の傾斜角γの経時的な変化を調整して、簡易モデル３００における所望の歩幅や歩行速度での受動歩行を探索的に生成することができる。
【００３６】
簡易モデル３００において所望の歩幅や歩行速度での受動歩行が生成されると、そのときの右脚リンク３０４の足先３１２についての足先軌道と、左脚リンク３０６の足先３１４についての足先軌道と、体幹リンク３０２の下端（腰）３１０についての腰軌道がそれぞれ取得される。また、簡易モデル３００から、生成された受動歩行時のロボット１１０のＺＭＰ軌道を計算することができる。ＺＭＰ軌道は、体幹リンク３０２、右脚リンク３０４および左脚リンク３０６のそれぞれの位置と姿勢の経時的な変化から、それぞれのリンクに作用する重力および慣性力の経時的な変化を算出し、ロボット１１０のＺＭＰ３１６の位置を経時的に計算していくことで生成することができる。
【００３７】
基準歩容データ生成装置２１０は、右脚リンク３０４の足先軌道と、左脚リンク３０６の足先軌道と、体幹リンク３０２の腰軌道と、ＺＭＰ軌道を、詳細歩容データ生成装置２２０に出力する。
【００３８】
詳細歩容データ生成装置２２０は、基準歩容データ生成装置２１０で生成された右脚と左脚の足先軌道と、体幹の腰軌道と、ＺＭＰ軌道に基づいて、詳細モデル４００を用いて腰軌道の修正を行う。
【００３９】
図４は詳細歩容データ生成装置２２０が扱う詳細モデル４００を模式的に示している。詳細モデル４００において、ロボット１１０は、体幹リンク４０２と、右脚リンク４０４と、左脚リンク４０６と、頭リンク４０８と、右腕リンク４１０と、左腕リンク４１２によって表現される。右腕リンク４１０は右上腕リンク４３４と右前腕リンク４３２を備えており、右上腕リンク４３４の一方の端部が肩関節によって体幹リンク４０２に接続され、他方の端部が肘関節によって右前腕リンク４３２に接続されている。左腕リンク４１２は左上腕リンク４３８と左前腕リンク４３６を備えており、左上腕リンク４３８の一方の端部が肩関節によって体幹リンク４０２に接続され、他方の端部が肘関節によって左前腕リンク４３６に接続されている。右脚リンク４０４は右腿リンク４４２、右脛リンク４４０および右足平を備えており、右腿リンク４４２の一方の端部が股関節によって体幹リンク４０２に接続されており、他方の端部が膝関節によって右脛リンク４４０に接続されている。右脛リンク４４０の先端には足首関節を介して右足平が接続されている。左脚リンク４０６は左腿リンク４４６、左脛リンク４４４および左足平を備えており、左腿リンク４４６の一方の端部が股関節によって体幹リンク４０２に接続されており、他方の端部が膝関節によって左脛リンク４４４に接続されている。左脛リンク４４４の先端には足首関節を介して左足平が接続されている。詳細モデル４００においては、ロボット１１０の質量分布を詳細に反映するように、各リンクに質量が分配されている。
【００４０】
詳細モデル４００においては、ロボット１１０の各関節の回転角度の経時的な変化を与えることによって、ロボット１１０の動作がシミュレートされる。詳細モデル４００においては、各関節の回転角度の経時的な変化から、幾何学的に各リンクの位置と姿勢の経時的な変化が計算される。各リンクの位置と姿勢の経時的な変化から、右腕リンク４１０の手先４２０の手先軌道や、左腕リンク４１２の手先４２２の手先軌道や、右脚リンク４０４の足先４２６の足先軌道や、左脚リンク４０６の足先４２８の足先軌道や、体幹リンク４０２の下端（腰）４２４の腰軌道を得ることができる。これによって、床面ＧＦの上をロボット１１０が歩行していく様子がシミュレートされる。
【００４１】
詳細歩容データ生成装置２２０は、基準歩容データ生成装置２１０で生成された右脚と左脚の足先軌道と、オペレータが任意に指定する右腕と左腕の手先軌道を、詳細モデル４００におけるシミュレーションの拘束条件として用いる。また、基準歩容データ生成装置２１０で生成された体幹の腰軌道を、詳細モデル４００における最初の拘束条件として用いる。詳細モデル４００においては、拘束条件として指定された足先軌道と手先軌道と腰軌道を実現するような各関節の回転角度の経時的な変化が探索的に生成される。
【００４２】
詳細モデル４００においても、簡易モデル３００と同じように、生成された歩行動作におけるＺＭＰ軌道を生成することができる。ＺＭＰ軌道は、各リンクに配分された質量と、各リンクのそれぞれの位置と姿勢の経時的な変化から、それぞれのリンクに作用する重力および慣性力の経時的な変化を算出し、ロボット１１０のＺＭＰ４３０の位置を経時的に計算していくことで生成することができる。
【００４３】
詳細モデル４００において、手先軌道と足先軌道を決めておいて、腰軌道を仮定すると、その手先軌道と足先軌道と腰軌道を実現した場合のロボット１１０のＺＭＰ軌道を生成することができる。詳細歩容データ生成装置２２０は、基準歩容データ生成装置２１０で生成されたＺＭＰ軌道を、詳細モデル４００における目標ＺＭＰ軌道に設定する。詳細モデル４００で生成されたＺＭＰ軌道と、目標ＺＭＰ軌道の差が小さくなるように、最初に仮定した腰軌道を修正して再び計算を行うことで、より目標ＺＭＰ軌道に近いＺＭＰ軌道を実現する腰軌道を得ることができる。これを繰り返すことによって、オペレータが指定した手先軌道と基準歩容データ生成装置２１０で生成された足先軌道と組み合わせたときに目標ＺＭＰ軌道を実現する腰軌道を探索的に生成することができる。
【００４４】
簡易モデル３００とは異なり、詳細モデル４００においては幾何学的な計算とＺＭＰの計算のみを行えばよく、各リンクで構成される多リンク系についての運動方程式を求解する必要がない点に注意されたい。運動方程式を解く必要がないため、ロボット１１０の動力学特性を詳細にモデル化した詳細モデル４００を用いても、詳細歩容データ生成装置２２０においてはそれほど負荷の高い演算を行う必要がない。
【００４５】
上記のように、詳細歩容データ生成装置２２０は、オペレータが指定した右腕と左腕の手先軌道、および基準歩容データ生成装置２１０で生成された右脚および左脚の足先軌道と組み合わせたときに、基準歩容データ生成装置２１０で生成されたＺＭＰ軌道、すなわち受動歩行時のＺＭＰ軌道を実現するような、ロボット１１０の腰軌道を生成することができる。詳細歩容データ生成装置２２０は、生成された腰軌道と、腰軌道の生成に用いた手先軌道を、出力装置２３０に出力する。
【００４６】
出力装置２３０は、基準歩容データ生成装置２１０から出力された右脚１２０と左脚１２２の足先軌道と、詳細歩容データ生成装置２２０から出力された体幹１１２の腰軌道と右腕１１６と左腕１１８の手先軌道を、ロボット１１０の歩容データとしてコントローラ１３０に送信する。コントローラ１３０は送信された歩容データを記憶する。
【００４７】
ロボット１００が歩行を開始すると、コントローラ１３０は歩容データを順次読み出して、逆キネマティクス演算によって各関節が目標とする回転角度をリアルタイムに算出し、モータを制御して各関節を駆動する。ロボット１１０の姿勢が歩容データに従って変化し、ロボット１１０は安定して歩行を持続することができる。
【００４８】
従来のＺＭＰ規範に基づく歩容データの生成技術では、目標ＺＭＰ軌道が支持脚の足先の接地範囲の内部に維持されるように腰軌道を設定しておくことで、歩行中のロボットの転倒を防止していた。
従来技術とは異なり、本実施例の歩容データ生成技術では、目標ＺＭＰ軌道を支持脚の足先の接地範囲の内部に維持するのではなく、簡易モデル３００から生成された受動歩行時のＺＭＰ軌道に一致させる。この場合、ロボット１１０は受動歩行時と同じような挙動を示し、ロボット１１０は重力と慣性力によって自然に倒れこんでいく。ロボット１１０が完全に転倒してしまう前に、遊脚が床面に接地して、支持脚と遊脚を入れ替えることによって、ロボット１１０は歩行することができる。
【００４９】
本実施例の歩容データ生成技術によれば、受動歩行時のＺＭＰ軌道を実現するような歩容データが生成される。このような歩容データに基づいて能動的にロボット１１０を動作させることによって、受動歩行と同様に、自然で滑らかな動作でロボット１１０を歩行させることができる。また、受動歩行と同様に、少ない消費エネルギーでロボット１１０を歩行させることができる。
【００５０】
本実施例の歩容データ生成技術によれば、ロボット１１０は完全に受動的に動作するわけではなく、ロボット１１０が受動歩行する場合の歩容データを予め生成しておいて、その歩容データに従ってロボット１１０は能動的に歩行する。このような構成とすることによって、ロボット１１０の歩行中に予期せぬ外乱が作用した場合であっても、ロボット１１０はその外乱の影響を受けることなく安定した歩行を持続することができる。
【００５１】
歩行に必要とされるエネルギーを抑制するという観点からは、簡易モデル３００を用いるのではなく、受動歩行についてより詳細な動力学モデルを導入して、その詳細なモデルから受動歩行時の歩容データを直接的に生成することが望ましい。しかしながら、受動歩行についての詳細な動力学モデルでは、運動方程式そのものが複雑となり、ロボット１１１０の運動をシミュレートするために多大な労力が必要となる。また、運動方程式が複雑なものとなるため、運動方程式を求解するための演算負荷も膨大なものとなってしまう。一般に、受動歩行において所望の態様の歩行動作を生成するためには、複数回のシミュレーションを通して調整可能なパラメータをチューニングしなければならず、上記のように詳細な動力学モデルを用いて受動歩行時の歩容データを生成することは現実的ではない。
【００５２】
本実施例では、簡易モデル３００を用いて受動歩行時の足先軌道とＺＭＰ軌道を生成しておいて、その足先軌道とＺＭＰ軌道を実現するように詳細モデル４００を用いて腰軌道を生成する。腰軌道の生成に詳細モデル４００を用いることから、簡易モデル３００の受動歩行とほぼ同じ態様の歩行動作を現実のロボット１１０に実現させることができる。この場合に実現される歩行動作は、簡易モデル３００における受動歩行であって、現実のロボット１１０における理想的な受動歩行ではない。しかしながら、簡易モデル３００における受動歩行と、現実のロボット１１０における理想的な受動歩行には大きな相違はないと考えられるため、本実施例の技術によれば、従来のＺＭＰ規範に基づく能動歩行にくらべて、歩行に必要とされるエネルギーを大幅に抑制することができる。
【００５３】
なお上記実施例では、受動歩行時の簡易モデル３００においてロボット１１０を体幹リンク３０２と右脚リンク３０４と左脚リンク３０６を備える３リンク系で表現する例を説明したが、簡易モデル３００の構成はこれに限られない。例えば、遊脚となっている方の脚リンクについては、膝関節を備える２重振子として扱うように、簡易モデル３００を構成してもよい。
【００５４】
以上、本発明の実施形態について詳細に説明したが、これらは例示に過ぎず、特許請求の範囲を限定するものではない。特許請求の範囲に記載の技術には、以上に例示した具体例を様々に変形、変更したものが含まれる。
また、本明細書または図面に説明した技術要素は、単独であるいは各種の組み合わせによって技術的有用性を発揮するものであり、出願時請求項記載の組み合わせに限定されるものではない。また、本明細書または図面に例示した技術は複数目的を同時に達成するものであり、そのうちの一つの目的を達成すること自体で技術的有用性を持つものである。
【図面の簡単な説明】
【００５５】
【図１】図１はロボットと歩容データ生成装置を模式的に示す図である。
【図２】図２は歩容データ生成装置の構成を示す図である。
【図３】図３は基準歩容データ生成装置が扱う簡易モデルを模式的に示す図である。
【図４】図４は詳細歩容データ生成装置が扱う詳細モデルを模式的に示す図である。
【図５】図５はロボットの歩行の様子を模式的に示す図である。
【符号の説明】
【００５６】
１００・・・歩容データ生成装置
１１０・・・ロボット
１１２・・・体幹
１１４・・・頭
１１６・・・右腕
１１８・・・左腕
１２０・・・右脚
１２２・・・左脚
２１０・・・基準歩容データ生成装置
２２０・・・詳細歩容データ生成装置
２３０・・・出力装置
３００・・・簡易モデル
３０２・・・体幹リンク
３０４・・・右脚リンク
３０６・・・左脚リンク
３１０・・・腰
３１２・・・右脚リンクの足先
３１４・・・左脚リンクの足先
３１６・・・ＺＭＰ
４００・・・詳細モデル
４０２・・・体幹リンク
４０４・・・右脚リンク
４０６・・・左脚リンク
４０８・・・頭リンク
４１０・・・右腕リンク
４１２・・・左腕リンク
４２０・・・右腕リンクの手先
４２２・・・左腕リンクの手先
４２４・・・腰
４２６・・・右脚リンクの足先
４２８・・・左脚リンクの足先
４３０・・・ＺＭＰ
４３２・・・右前腕リンク
４３４・・・右上腕リンク
４３６・・・左前腕リンク
４３８・・・左上腕リンク
４４０・・・右脛リンク
４４２・・・右腿リンク
４４４・・・左脛リンク
４４６・・・左腿リンク
【図１】
2008142861.tif 000003
【図２】
2008142861.tif 000004
【図３】
2008142861.tif 000005
【図４】
2008142861.tif 000006
【図５】
2008142861.tif 000007