(57)【要約】【課題】  脚式ロボットが、脚リンク群（特に接地脚）を伸ばしながら歩行することを可能とする技術を提供する。【解決手段】  脚式ロボットは、体幹と、基端が体幹に揺動可能に連結されており、先端に足先を備えている複数の脚リンクと、事前に準備されている歩容データを、実際の歩行状態に基づいて補正する手段と、脚リンク毎に、補正した歩容データの体幹目標位置に基づいて基端位置を特定する手段と、脚リンク毎に、特定した基端位置を鉛直方向に移動したときに補正した歩容データの足先目標位置からの距離が所定距離となるときの鉛直移動量を計算する手段と、脚リンク毎に計算した鉛直移動量から鉛直下方に最大の移動量を選択する手段と、補正した歩容データの体幹目標位置の鉛直座標を選択手段で選択した鉛直移動量だけ鉛直方向に修正する手段とを備える。【選択図】図３
2006068871.tif 000002
【特許請求の範囲】
【請求項１】
体幹と、
基端が体幹に揺動可能に連結されており、先端に足先を備えている複数の脚リンクと、
事前に準備されている歩容データを、実際の歩行状態に基づいて補正する手段と、
脚リンク毎に、補正した歩容データの体幹目標位置に基づいて、基端位置を特定する手段と、
脚リンク毎に、特定した基端位置を鉛直方向に移動したときに、補正した歩容データの足先目標位置からの距離が所定距離となるときの鉛直移動量を計算する手段と、
脚リンク毎に計算した鉛直移動量から、鉛直下方に最大の移動量を選択する手段と、
補正した歩容データの体幹目標位置の鉛直座標を、選択手段で選択した鉛直移動量だけ鉛直方向に修正する手段と、
を備える脚式ロボット。
【請求項２】
脚リンク毎に、事前に準備されている歩容データの体幹目標位置から特定される基端位置と、事前に準備されている歩容データの足先目標位置から、両者間の距離を計算する手段をさらに備え、
前記の鉛直移動量計算手段は、前記の距離計算手段で計算した距離を前記所定距離とすることを特徴とする請求項１の脚式ロボット。
【請求項３】
前記選択手段は、鉛直下方への移動量が存在しなければ、ゼロを選択することを特徴とする請求項１又は２の脚式ロボット。
【請求項４】
基端が体幹に揺動可能に連結されているとともに先端に足先を備えている複数の脚リンクを備えているロボットに予定している歩行を記述する歩容データを事前に準備しておく工程と、
事前に準備しておいた歩容データを、実際の歩行状態に基づいて補正する工程と、
脚リンク毎に、補正した歩容データの体幹目標位置に基づいて、基端位置を特定する工程と、
脚リンク毎に、特定した基端位置を鉛直方向に移動したときに、補正した歩容データの足先目標位置からの距離が所定距離となるときの鉛直移動量を計算する工程と、
脚リンク毎に計算した鉛直移動量から、鉛直下方に最大の移動量を選択する工程と、
補正した歩容データの体幹目標位置の鉛直座標を、選択工程で選択した鉛直移動量だけ鉛直方向に修正する工程と、
修正した歩容データを脚式ロボットの関節角群計算装置に教示する工程と、
を備える脚式ロボットの歩行制御方法。
【請求項５】
基端が体幹に揺動可能に連結されているとともに先端に足先を備えている複数の脚リンクを備えているロボットの脚リンク毎に、足先位置の経時的変化を記述する足先目標位置データを記憶しておく手段と、
その足先目標位置データに追従して歩行することを可能とする体幹位置の経時的変化を仮定する手段と、
脚リンク毎に、仮定した体幹目標位置に基づいて、基端位置を特定する手段と、
脚リンク毎に、特定した基端位置を鉛直方向に移動したときに、記憶している足先目標位置からの距離が所定距離となるときの鉛直移動量を計算する手段と、
脚リンク毎に計算した鉛直移動量から、鉛直下方に最大の移動量を選択する手段と、
仮定した体幹目標位置の鉛直座標を、選択手段で選択した鉛直移動量だけ鉛直方向に修正する手段と、
修正した体幹目標位置が、記憶している足先目標位置データに追従して歩行することを可能とする位置でなければ、体幹位置の経時的変化を再び仮定する手段と、
を備える歩容データの作成装置。
【請求項６】
前記の鉛直移動量計算手段は、脚リンクの最大長さを前記所定距離とすることを特徴とする請求項５の歩容データの作成装置。
【請求項７】
修正した体幹目標位置を所定周期毎にサンプリングする手段と、
サンプリングした体幹目標位置を連続曲線でなぞる平滑軌道を作成する手段と、
作成した平滑軌道が、修正した体幹目標位置よりも、鉛直上方に位置する期間を特定する手段と、
特定した期間に対応する修正した体幹目標位置を、鉛直下向きに所定距離だけ再修正する手段と、
再修正後の体幹目標位置を用いて、平滑軌道を再度作成する手段と、
をさらに備えることを特徴とする請求項５又は６の歩容データの作成装置。
【請求項８】
基端が体幹に揺動可能に連結されているとともに先端に足先を備えている複数の脚リンクを備えているロボットの脚リンク毎に、足先位置の経時的変化を記述する足先目標位置データを用意して記憶しておく工程と、
その足先目標位置データに追従して歩行することを可能とする体幹位置の経時的変化を仮定する工程と、
脚リンク毎に、仮定した体幹目標位置に基づいて、基端位置を特定する工程と、
脚リンク毎に、特定した基端位置を鉛直方向に移動したときに、記憶している足先目標位置からの距離が所定距離となるときの鉛直移動量を計算する工程と、
脚リンク毎に計算した鉛直移動量から、鉛直下方に最大の移動量を選択する工程と、
仮定した体幹目標位置の鉛直座標を、選択工程で選択した鉛直移動量だけ鉛直方向に修正する工程と、
修正した体幹目標位置が、記憶している足先目標位置データに追従して歩行することを可能とする位置でなければ、体幹位置の経時的変化を再び仮定する工程と、
を備える歩容データの作成方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、体幹（胴部）に複数（典型的には２本）の脚リンクが揺動可能に連結されている機械（脚式ロボット）を歩行させる技術に関する。
【背景技術】
【０００２】
体幹と脚リンク群の相対的姿勢を変化させることによって歩行する脚式ロボット（以下では単にロボットと記すことがある）が開発されている。脚式ロボットは、歩容データを用いて歩行する。
歩容データは、足先位置の経時的変化を記述する足先目標位置データと、足先位置の経時的変化に追従して歩行しつづけることを可能とする体幹位置の経時的変化を記述する体幹目標位置データ等から構成されている。
ロボットが転倒しない歩容データを得るためには、ロボットのダイナミクスを考慮に入れた複雑な計算を必要とする。以下に、その一例を説明する。
（１）ロボットの左足先位置と右足先位置の経時的変化を記述する足先目標位置データを指定する。
（２）足先位置の経時的変化を考慮してロボットのＺＭＰが存在しなければならない位置を指定する。ＺＭＰ（zero moment point）とは、ロボットに作用する重力や床反力や慣性力の合力によるモーメントがゼロになる床上の点のことである。ＺＭＰが接地脚の足先内にあればロボットは転倒しない。逆にいうと、ロボットが転倒しないためには、ＺＭＰが接地脚の足先内になければならない。そこで接地脚の足先位置を考慮し、下記の関係を満たす目標ＺＭＰを指定する。即ち、一方の脚リンク（例えば左脚）が遊脚になっている間は接地脚（右脚）の足先内に存在し、その一方の脚（左脚）が接地して両足接地状態になった時に新たに接地した脚（左脚）の足先内に向けて移動開始し、それまでに接地していた脚（右脚）が遊脚となる前に新たに接地した脚（左脚）の足先内に移動し終えるＺＭＰを指定する。このようにして指定されたＺＭＰは、目標ＺＭＰと呼ばれる。実際のＺＭＰが目標ＺＭＰのとおりに移動すれば、ロボットは転倒することなく歩行しつづける。
（３）両足先位置の経時変化とそれに追従して変化する目標ＺＭＰが指定されると、体幹位置の経時的変化を仮定してロボットのダイナミクスを計算する。計算する時点で、足先位置が指定されているので、ロボットの体幹位置を仮定するとロボットの姿勢が決まる。ロボットの姿勢が決まると、その姿勢におけるＺＭＰの位置を計算することが可能となる。ＺＭＰの位置を計算するためには、静的な要素に加えて、ロボットに作用する慣性力の影響を織り込まなければならない。仮定した体幹位置の経時的変化を計算に含めることで、ロボットのダイナミクスまで考慮してＺＭＰの位置を計算することが可能となる。体幹位置の経時的変化（体幹軌道）を仮定するとＺＭＰの位置を計算することができることから、目標ＺＭＰに一致するＺＭＰを実現する体幹位置の経時的変化（体幹軌道）を探求することができる。
（４）以上の工程によって予め歩容データを準備しておく。
ロボットは、歩容データからいわゆる逆キネマティクスを解くことによって、各関節の関節角を計算する関節角群計算装置を備えている。ロボットが実際に動作する際には、歩容データに従った歩行を実現する各関節の関節角を計算する。ロボットは各関節の関節角を計算した角度に調節することによって、歩容データに従って歩行する。歩容データに従ってロボットが歩行すれば、実際のＺＭＰが目標ＺＭＰに一致し、ロボットは転倒せずに歩行しつづけることができる。
【０００３】
足先位置や体幹位置は、時間に対する位置の変化で記述することができるが、位置と速度と加速度は関連しており、そのうちの一つの量から他の量を計算することができることから、速度や加速度で位置を記述することができる。位置のデータという場合、速度や加速度で位置を特定するデータも含む。
足先位置や体幹位置という場合、足先や体幹は剛体であるから、代表点の位置によって足先や体幹の位置を示すことができる。また、足先位置や体幹位置という場合、位置のみならず、足先姿勢や体幹姿勢を含むものとする。姿勢は、足先や体幹の姿勢角によって記述することができる。歩行中の足先姿勢や体幹姿勢が所定のパターンに従う場合には、歩容データからは姿勢を記述するデータが不要化される。
目標ＺＭＰに一致するＺＭＰをもたらす体幹位置（通常は姿勢を含む）の経時的変化を解析的に探求する手法は、足先位置の変化に追従してロボットが転倒しないように体幹を移動させるのに必要な体幹の目標位置を算出する手法の典型例である。脚式ロボットの体幹目標位置を算出する手法は、これに限定されるものではない。
【０００４】
ロボットが事前に準備されている歩容データに従って歩行している間に、ロボットに予期せぬ外乱力が作用することがある。路面の予期せぬ凹凸によって予期せぬ外乱力が作用することもあるし、ロボットに外界から押したり引いたりする外力が加えられることもある。ロボットの構造上のたわみや、ロボットの関節のガタや、ロボットの応答遅れ等に起因してロボットの実際の位置や姿勢が歩容データから外れれば、予期せぬ外乱力が作用したのと同じことになる。予期せぬ外乱力が作用した場合、事前に準備されている歩容データどおりには歩行しつづけることができなくなる。
そこでロボットには、実際の歩行状態に基づいて、事前に準備されている歩容データを補正する手段が用意されている。予期せぬ外乱力が作用したときには、例えば事前に準備されている歩容データの体幹目標位置を補正することによって、予期せぬ外乱力が作用した場合でも歩行しつづけることができるようにしている。
【発明の開示】
【発明が解決しようとする課題】
【０００５】
事前に準備されている歩容データを、実際の歩行状態に基づいて補正するときに、脚リンク（特に接地脚）がすでに伸びきった状態になっていると、体幹位置や足先位置を補正した目標位置にまで動かすことができないことがある。この場合、ロボットが転倒する可能性が生じてくる。
そこで従来の技術では、体幹の高さを低く設定した歩容データを事前に準備している。この歩容データを用いると、脚リンクが伸びきった状態となることがない。実際の歩行状態に基づいて補正するときに必要ならば脚リンクをさらに伸ばすことが可能である。脚リンクが伸びきらない歩容データを事前に準備しておくことによって、実際の歩行状態に基づいて補正することができるようにしている。
しかしながら、そのことは結果として、事前に準備されている歩容データのままに歩行する場合には、接地脚を常に曲げた状態で歩行することとなる。実際の歩行状態に基づいて補正できるようにするためには、接地脚を常に曲げておき、必要に応じてさらに伸ばせるようにしておく必要がある以上、通常は接地脚を常に曲げた状態で歩行する他はない。
しかしながら、接地脚を常に曲げながら歩行すると、脚リンクの関節に作用する曲げモーメントが大きくなってしまう。これは、人が膝を曲げて歩行すると大腿部等の筋肉が強く緊張するとともに膝関節に強い負担を感じる一方、膝を伸ばして歩行すると大腿部等の筋肉の緊張が弱められ膝関節に作用する負担も軽くなることに相当する。また人を模した二足歩行ロボットの場合には、接地脚を常に曲げて歩行すると、その歩行動作にロボット特有の不自然さが発現してしまう。
本発明は上記の問題を解決する。本発明では、ロボットが脚リンク群（特に接地脚）を伸ばして歩行することを可能とする技術を提供する。
【課題を解決するための手段】
【０００６】
本発明によって具現化される脚式ロボットは、体幹と複数の脚リンクを供えている。各脚リンクの基端は体幹に揺動可能に連結されており、各脚リンクの先端には足先が用意されている。このロボットは、事前に準備されている歩容データを実際の歩行状態に基づいて補正する手段を備えている。
このロボットは、歩容データをさらに修正して用いる。そのために、補正した歩容データの体幹目標位置に基づいて、脚リンクの基端位置を特定する手段と、特定した基端位置を鉛直方向に移動したときに、補正した歩容データの足先目標位置からの距離が所定距離となるときの鉛直移動量を計算する手段を備えている。これらの手段は、脚リンク毎に用意されている。さらに、脚リンク毎に計算した鉛直移動量から、鉛直下方に最大の移動量を選択する手段と、補正した歩容データの体幹目標位置の鉛直座標を、選択手段で選択した鉛直移動量だけ鉛直方向に修正する手段を備えている。
【０００７】
前記したように、事前に準備されている歩容データを用いることによって、ロボットは意図した歩行を実現する。予期せぬ外乱力が作用することが避けられないことから、ロボットは、事前に準備されている歩容データを実際の歩行状態に基づいて補正する手段を備えている。このときに、事前に準備されている歩容データによって、脚リンク（特に接地脚）がすでに伸びきった状態になっていると、体幹位置や足先位置を実際の歩行状態に基づいて補正した目標位置にまで動かすことができないことがある。そこで、従来の技術では、事前に準備されている歩容データでは、脚リンクを伸ばしきらない歩行姿勢を記述しておく必要があった。
本発明では、体幹目標位置の鉛直座標を鉛直方向に修正する手段を利用することから、事前に準備しておく歩容データでは脚リンクを伸ばしきらない歩行姿勢を記述しておく必要がなくされる。事前に準備しておいた歩容データに従うと脚リンク（特に接地脚）を伸ばしきることになる状態において、実際の歩行状態に基づいて補正した体幹目標位置や足先目標位置がさらに脚リンクを伸ばすことを要求する場合、従来の技術ではそれ以上に脚リンクを伸ばせないので対応不能となるのに対し、本発明では脚リンクの長さの不足を補うだけ体幹目標位置を鉛直下方に修正することができる。
上記のために、本発明では、補正した歩容データの体幹目標位置に基づいて脚リンクの基端位置を特定する手段を利用する。特定した基端位置と、補正した歩容データの足先目標位置の間の距離を計算する手段を利用する。後記の計算手段は、基端位置を鉛直方向に移動させた場合の基端と足先間の距離を計算することが可能であり、基端と足先間の距離が所定距離となるときの鉛直移動量を計算することができる。このとき、足先の位置は脚リンク先端の位置を一義的に示すことから、足先目標位置自体を計算に用いるようにしてもよいし、あるいは足先目標位置に基づいて脚リンクの先端位置を特定し、特定した先端位置を計算に用いるようにしてもよい。
この所定距離を、有限な長さを持つ脚リンクで実現可能な距離としておけば、修正された歩容データに従って歩行することが可能となる。事前に準備しておく歩容データでは脚リンクを伸ばしきらない歩行姿勢を記述しておく必要がなくなる。
このロボットでは、脚リンク毎に計算した鉛直移動量から、鉛直下方に最大の移動量を選択し、補正後の歩容データが記述している体幹目標位置の鉛直座標を、選択した鉛直移動量だけ修正する。それにより、すべての脚リンクにとって実現可能な歩容データに修正することができる。なお、脚リンクの長さからすると基端を不必要に大きく鉛直下方に修正する脚リンクが登場することになるが、それに対しては脚リンクを曲げることで対応することができる。
鉛直方向に体幹目標位置を修正すると、ＺＭＰが目標ＺＭＰからずれる恐れがあるが、体幹目標位置を鉛直方向に移動させることによってＺＭＰが変化する変化量は小さく、実際には問題とならない。
この脚式ロボットでは、脚リンク群（特に接地脚）を曲げて歩行する歩容データを事前に準備しておく必要がなく、脚リンク群を自然に伸ばして歩行することができる。
【０００８】
上記の脚式ロボットでは、事前に準備しておく歩容データで、脚リンク群を自然に伸ばして歩行する運動を記述しておくことが好ましい。
そして、事前に準備されている歩容データの体幹目標位置から特定される基端位置と、事前に準備されている歩容データの足先目標位置から、両者間の距離を計算する手段を備えていることが好ましい。この手段は、脚リンク毎に脚リンクの基端と足先間の距離を計算する。
その上で、鉛直移動量計算手段では、前記の距離計算手段で計算した距離を所定距離として鉛直移動量を計算することが好ましい。
このロボットでは、修正後の歩容データで規定される脚リンクの基端と足先間の距離が、事前に準備しておく歩容データで規定される基端と足先間の距離に近い値となる。それにより、事前に準備しておく歩容データを作成したオペレータ等が意図している歩行姿勢を保ちながら歩行することができる。
【０００９】
上記のロボットの選択手段は、脚リンク毎に計算した鉛直移動量の中に、鉛直下方への移動量が存在しなければ、ゼロを選択することが好ましい。
体幹位置を鉛直上方に移動するように修正すると、ロボットの歩行動作に不自然さが発現することがある。このロボットでは、補正された歩容データの体幹目標位置を修正する際に、鉛直上方に修正することを禁止し、鉛直下方にのみ修正する。それにより、脚式ロボットは、より自然に足を伸ばしながら歩行することができる。
この場合、事前に準備しておく歩容データでは、脚リンクを伸ばしきって歩行するレベルに体幹目標位置の鉛直座標を設定しておいてもよい。鉛直下方に修正する機会が多く、鉛直上方に修正する機会が少ないようにしておくことができる。
【００１０】
本発明の技術は、脚式ロボットの歩行動作を制御する方法に具現化することもできる。この歩行制御方法は、基端が体幹に揺動可能に連結されているとともに先端に足先を備えている複数の脚リンクを備えているロボットの歩行を制御する。
この歩行制御方法は、ロボットに予定している歩行を記述する歩容データを事前に準備しておく工程と、事前に準備しておいた歩容データを実際の歩行状態に基づいて補正する工程を備えている。
この歩行制御方法では、歩容データをさらに修正して用いる。そのために、補正した歩容データの体幹目標位置に基づいて、脚リンクの基端位置を特定する工程と、特定した基端位置を鉛直方向に移動したときに、補正した歩容データの足先目標位置からの距離が所定距離となるときの鉛直移動量を計算する工程を備えている。これらの工程では、脚リンク毎に計算する。さらに、脚リンク毎に計算した鉛直移動量から鉛直下方に最大の移動量を選択する工程と、補正した歩容データの体幹目標位置の鉛直座標を選択工程で選択した鉛直移動量だけ鉛直方向に修正する工程と、修正した歩容データを脚式ロボットの関節角群計算装置に教示する工程を備えている。
この歩行制御方法によると、脚リンク群（特に接地脚）を無用に曲げて歩行する歩容データを事前に準備しておく必要がなくなる。脚式ロボットは脚リンク群を自然に伸ばしながら歩行することができる。
【００１１】
本発明はまた、脚式ロボットが用いる歩容データを事前に準備しておく装置をも提供する。この歩容データの作成装置は、基端が体幹に揺動可能に連結されているとともに先端に足先を備えている複数の脚リンクを備えているロボットに教示する歩容データを事前に準備しておくために利用される。
この歩容データの作成装置は、脚リンク毎に足先位置の経時的変化を記述する足先目標位置データを記憶しておく手段と、その足先目標位置データに追従して歩行することを可能とする体幹目標位置を仮定する手段を備えている。
仮定した体幹目標位置を修正するために、仮定した体幹目標位置に基づいて脚リンクの基端位置を特定する手段と、特定した基端位置を鉛直方向に移動したときに、記憶している足先目標位置からの距離が所定距離となるときの鉛直移動量を計算する手段を備えている。これらの手段は、脚リンク毎に用意されている。
さらに、脚リンク毎に計算した鉛直移動量から、鉛直下方に最大の移動量を選択する手段と、作成しておいた体幹目標位置の鉛直座標を、選択手段で選択した鉛直移動量だけ鉛直方向に修正する手段を備えている。
そして、修正した体幹目標位置が、記憶している足先目標位置データに追従して歩行することを可能とする位置でなければ、体幹位置の経時的変化を再び仮定する手段を備えている。
【００１２】
この装置では、足先位置の経時的変化を記述する足先目標位置データに追従して脚式ロボットが転倒しないで歩行することを可能とする体幹位置の経時的変化を仮定する。体幹位置の経時的変化を仮定する段階では、各脚リンクの長さを考慮する必要はない。脚リンクの長さが足らず、実際には実現不能なほど高い体幹目標位置を仮定してもよい。
この装置では、最初に仮定した体幹目標位置に基づいて脚リンクの基端位置を特定する。さらに、特定した基端位置を鉛直方向に移動したときに、鉛直方向に移動した基端位置と、記憶している足先目標位置の間の距離が、所定距離となるときの鉛直移動量を計算する。この鉛直移動量は、脚リンク毎に計算される。
この装置では、脚リンク毎に計算した鉛直移動量から、鉛直下方に最大の移動量を選択し、仮定した体幹目標位置の鉛直座標を、選択した鉛直移動量だけ鉛直方向に修正する。これによって、すべての脚リンクの長さに関して、実現可能な体幹目標位置に修正することができる。
この装置では、修正した体幹目標位置が、記憶している足先目標位置データに追従して歩行することを可能とする位置でなければ、体幹位置の経時的変化を新たに仮定する。新たに仮定された体幹目標位置は、上記の処理によって再び鉛直座標が修正される。体幹位置の経時的変化を仮定し、仮定した体幹目標位置の鉛直座標を修正して、脚式ロボットが歩行することを可能とする体幹目標位置を探求する。導出される体幹目標位置は、脚リンクの長さに関して実現可能な位置となる。
この歩容データの作成装置では、仮定された体幹目標位置を修正する際に、体幹位置を鉛直方向に修正する。脚式ロボットの動的バランスを大きく変化させることなく、各脚リンクの基端と足先の間の距離を大きく変化させることができる。
この歩容データの作成装置によると、脚式ロボットが脚リンク群を自然に伸ばしながら歩行する歩容データを作成することができる。この歩容データの作成装置で作成する歩容データは、上述した脚式ロボットや脚式ロボットの歩行制御方法に有効に用いることができる。上述した脚式ロボットや脚式ロボットの歩行制御方法では、脚リンクを曲げた歩容データを必要とせず、脚リンク群を自然に伸ばしながら歩行する歩容データに対応することが可能だからである。
本発明の技術思想は、歩容データを事前に準備しておく段階で活用することもできれば、歩容データを修正しながら実際の歩行を制御する段階で活用することもできる。
【００１３】
前記した鉛直移動量計算手段では、脚リンクの最大長さを所定距離として鉛直方向移動距離を計算することが好ましい。それにより、脚式ロボットの少なくとも１つの脚リンクを最大に伸ばしながら歩行する歩容データを作成することができる。
【００１４】
鉛直方向に修正することによって得られた体幹目標位置は経時的に変化し、軌道を規定する。この軌道は不連続に変化するものでなく、スムーズな連続曲線であることが好ましい。
そのためには、鉛直方向に修正した体幹目標位置を所定周期毎にサンプリングする手段と、サンプリングした体幹目標位置を連続曲線でなぞる平滑軌道を作成する手段と、作成した平滑軌道が修正した体幹目標位置よりも鉛直上方に位置する期間を特定する手段と、特定した期間に対応する修正した体幹目標位置を鉛直下向きに所定距離だけ再修正する手段と、再修正後の体幹目標位置を用いて平滑軌道を再度作成する手段をさらに備えていることが好ましい。
【００１５】
この歩容データの作成装置では、鉛直下方に修正した体幹目標位置（時間とともに高さと水平面内位置を変える）を所定周期毎にサンプリングし、サンプリングした複数の体幹目標位置を連続曲線で滑らかになぞる平滑軌道を作成する。このように作成した平滑軌道には、平滑化前の体幹目標位置よりも鉛直上方に位置する期間が存在しうる。その期間の平滑軌道は、いずれかの脚リンクに関して実現不可能な軌道となることから、そのままでは歩容データに用いることが難しい。
そこで、この歩容データの作成装置では、作成した平滑軌道が平滑化前の体幹目標位置よりも鉛直上方に位置する期間を特定する。特定された期間については、体幹目標位置を所定距離だけ鉛直下方にさらに修正する。その後に、平滑軌道を再度作成する。
以上の処理を繰り返すことによって、最初に算出した体幹目標位置よりも常に鉛直下方に位置する平滑軌道を得ることができる。脚リンクの長さからみて実現可能な平滑軌道が得られる。
【００１６】
本発明の技術は、歩容データを作成する方法にも具現化することができる。この歩容データの作成方法は、基端が体幹に揺動可能に連結されているとともに先端に足先を備えている複数の脚リンクを備えているロボットに教示する歩容データを事前に準備しておくために利用される。
この歩容データの作成方法は、脚リンク毎に足先位置の経時的変化を記述する足先目標位置データを記憶しておく工程と、その足先目標位置データに追従して歩行することを可能とする体幹目標位置を仮定する工程を備えている。
仮定した体幹目標位置を修正するために、仮定した体幹目標位置に基づいて脚リンクの基端位置を特定する工程と、特定した基端位置を鉛直方向に移動したときに、記憶している足先目標位置からの距離が所定距離となるときの鉛直移動量を計算する工程を備えている。これらの工程は、脚リンク毎に実行される。
さらに、脚リンク毎に計算した鉛直移動量から、鉛直下方に最大の移動量を選択する工程と、仮定した体幹目標位置の鉛直座標を、選択工程で選択した鉛直移動量だけ鉛直方向に修正する工程を備えている。
そして、修正した体幹目標位置が、記憶している足先目標位置データに追従して歩行することを可能とする位置でなければ、体幹位置の経時的変化を再び仮定する工程を備えている。
【００１７】
この歩容データの作成方法によると、脚式ロボットが脚リンク群を自然に伸ばしながら歩行する歩容データを作成することができる。この歩容データの作成方法で作成する歩容データは、上述した脚式ロボットや脚式ロボットの歩行制御方法に有効に用いることができる。
【発明の効果】
【００１８】
本発明により、脚式ロボットが脚リンク群（特に接地脚）を伸ばしながら歩行することを可能とする技術が提供される。
【発明を実施するための最良の形態】
【００１９】
最初に、以下に説明する実施例の主要な特徴を列記する。
（形態１）  ロボットは、事前に準備された歩容データの体幹目標位置を、実際の歩行状態に基づいて補正する歩容データの補正装置を備えている。
（形態２）  ロボットが備える歩容データの補正装置は、事前に準備された歩容データの体幹目標位置を、水平方向に移動した位置に補正する。
（形態３）  歩容データの作成装置は、仮定した体幹目標位置が、与えられた足先目標位置の経時的変化に追従して歩行することを可能とする位置であるか否かを判別する装置を備えている。
【実施例】
【００２０】
（実施例１）  本発明を実施する実施例１について図面を参照して説明する。本実施例は、本発明の技術を二足歩行ロボットに適用したものである。
図１に本実施例の二足歩行ロボット（以下、単にロボットと記す）６を示す。図１に示すように、ロボット６は、体幹１２と、体幹１２に対して揺動可能に接続されている左脚リンク３０と右脚リンク４０を備えている。またロボット６は、体幹１２に対して揺動可能に接続されている左腕リンク１６と右腕リンク１８と頭部２０等を供えている。
図１に示すように、左脚リンク３０は、左大腿部３２と、左下腿部３６と、左大腿部３２と左下腿部３６を連結している左膝関節３４を備えている。左膝関節３４は、１軸回りに自由度を持つ関節である。左脚リンク３０の基端は左股関節３１を介して体幹１２に連結されている。左脚リンク３０の先端には左足首関節３７を介して左足（左足先）３８が連結されている。左股関節３１は３軸回りに自由度を持つ関節であり、左足首関節３７は２軸回りに自由度を持つ関節である。
右脚リンク４０は、左脚リンク３０と鏡面対称の関係となるように構成されている。右脚リンク４０に関して、図１に右股関節４１、右大腿部４２、右膝関節４４、右下腿部４６、右足首関節４７、右足（右足先）４８が示されている。
ロボット６は、各関節を駆動するためのアクチュエータ群を備えている。アクチュエータ群は、後述する制御装置１４によって制御される。
ロボット６は、ロボット６の実際の運動を検出するためのセンサ群を備えている。センサ群は、例えば各関節の関節角を検出するためのエンコーダや、体幹１２等の運動を検出するための加速度センサ等である。センサ群の出力信号は、後述する制御装置１４の処理に利用される。
【００２１】
図１に示すように、ロボット６は、右足４８が接地している間に左脚リンク３０を遊脚として左足３８を軌道７のように移動させ、左足３８が接地すると今度は右脚リンク４０を遊脚として右足４８を軌道８のように移動させ、以下同様に、左足３８を軌道９のように移動させ、次に右足４８を軌道１０のように移動させて歩行を続ける。
本実施例では、図１に示すように、ロボット６の歩行方向をｘ軸とし、体側方向をｙ軸とし、高さ方向をｚ軸とする。ｘｙ平面は水平面であり、ｚ軸方向は鉛直方向である。
【００２２】
ロボット６は、図１に示す歩行動作をするために歩容データを必要とする。歩容データは、オペレータによって事前に準備され、ロボット６に指示される。事前に準備する歩容データは、コンピュータ装置を利用した歩容データ作成装置によって作成することができる。歩容データの作成過程を簡単に説明すると、オペレータは足先目標位置データを用意し、歩容データ作成装置に教示する。歩容データ作成装置は、教示された足先目標位置データとロボット６の力学モデルに基づいて、予定された状況で歩行することを可能とする体幹１２の運動を計算し、計算した体幹１２の運動を記述する体幹目標位置データを作成する。
ロボット６が利用する歩容データは、左足３８の目標とする位置と姿勢の経時的変化を記述する左足目標位置データや、右足４８の目標とする位置と姿勢の経時的変化を記述する右足目標位置データや、体幹１２の目標とする位置と姿勢の経時的変化を記述する体幹目標位置データや、左右の腕先の目標とする位置と姿勢の経時的変化を記述する腕先目標位置データや、目標ＺＭＰの経時的変化を記述している目標ＺＭＰデータ等を備えている。
体幹目標位置データは、体幹１２の位置を代表点Ｗの位置ＰＷ（ｘＷ，ｙＷ，ｚＷ）で記述し、体幹１２の姿勢を体幹１２の姿勢角（ロール角、ピッチ角、ヨー角）で記述している。左足目標位置データは、左足３８の位置を代表点Ｌの位置ＰＬ（ｘＬ，ｙＬ，ｚＬ）で記述し、左足３８の姿勢を左足３８の姿勢角で記述している。右足目標位置データは、右足４８の位置を代表点Ｒの位置ＰＲ（ｘＲ，ｙＲ，ｚＲ）で記述し、右足４８の姿勢を右足４８の姿勢角で記述している。位置や姿勢のデータは、経過時間とともに値を変える経時的データである。
【００２３】
ロボット６は、ロボット６の動作を制御する制御装置１４を備えている。制御装置１４は、ＣＰＵ、ＲＯＭ、ＲＡＭ、ハードディスク等を備えている。制御装置１４のハードウェア構成は汎用のコンピュータと同じであり、説明は省略する。
【００２４】
図２は、制御装置１４の機能的な構成を示すブロック図である。図２に示すように、制御装置１４は、機能的に、歩容データ記憶装置１１０と、歩容データ補正装置１１２と、体幹位置修正装置１１４と、関節角群計算装置１１８と、アクチュエータ制御装置１２０と、実際運動計算装置１１６等を備えている。図２に示す要素のうち、ロボットの機械系１２２と各種センサ１２４は、制御装置１４の構成要素に含まれないが、以下の説明を明瞭にするために併せて記載している。
制御装置１４は、全体が物理的に１つの装置に含まれていてもよいし、物理的に分離された装置ごとに分けて収容されていてもよい。また制御装置１４の各要素は、必ずしもロボット６に搭載されていなくてもよい。ロボット６外に配備され、ロボット６に無線又は有線で指示するようにしてもよい。
【００２５】
歩容データ記憶装置１１０は、オペレータ等が事前に準備した歩容データを記憶している。歩容データ記憶装置１１０が記憶している歩容データは、歩容データ補正装置１１２と、体幹位置修正装置１１４に入力される。
歩容データ補正装置１１２は、歩容データ記憶装置１１０が記憶している歩容データと、実際運動計算装置１１６から入力したロボット６の実際運動に基づいて、歩容データ記憶装置１１０から入力した歩容データを補正する。補正された歩容データは、体幹位置修正装置１１４と、関節角群計算装置１１８に入力される。ただし、補正後の体幹目標位置データについては、関節角群計算装置１１８には入力されず、体幹位置修正装置１１４のみに入力される。
体幹位置修正装置１１４は、歩容データ補正装置１１２によって補正された体幹１２のｚ座標を、左脚リンク３０と右脚リンク３０の長さを考慮して修正する。体幹位置修正装置１１４の詳細については後述する。
関節角群計算装置１１８は、体幹目標位置データや左足３８や右足４８等の各部の目標位置データを入力し、入力した目標位置に基づいて、いわゆる逆キネマティクスを解くことでロボット６の各関節角θ１（ｔ）、θ２（ｔ）、θ３（ｔ）、・・・を計算する装置である。計算された関節角群データは、アクチュエータ制御部１１４に入力される。
アクチュエータ制御装置１２０は、入力した関節角群データに基づいて、ロボット６に搭載されているアクチュエータ群を制御する装置である。アクチュエータ制御装置１２０がアクチュエータ群を制御することによって、ロボット６の機械系１２２が歩行動作を実施する。
【００２６】
ロボット６が実際に行う歩行動作は、予期しない路面の凹凸や、ロボットの構造上のたわみなどによる外乱力の影響を受ける。ロボット６が実際に行っている歩行動作は、ロボット６に搭載されているセンサ群１２４によって検出される。
実際運動計算装置１１６は、センサ群１２４の出力信号に基づいて、ロボット６の実際の運動を計算する。実際運動計算装置１１６は、例えば左足３８の実際の運動や、右足４８の実際の運動や、体幹１２の実際の運動を計算することができる。実際運動計算装置１１６で計算されたロボット６の実際運動は、歩容データ補正装置１１２に入力される。
先に説明したように、歩容データ補正装置１１２は、実際運動計算装置１１６で計算されたロボット６の実際運動に基づいて、歩容データ記憶装置１１０に記憶されている歩容データを補正する。制御装置１４は、ロボット６の実際の運動に基づいてフィードバックしながら、ロボット６の歩行動作を制御する。
【００２７】
歩容データ補正装置１１２が、ロボット６の実際運動に基づいて歩容データを補正する処理について説明する。歩容データ補正装置１１２は、第一に、ロボット６の実際運動に基づいて、左足３８の目標とする位置と姿勢と、右足４８の目標とする位置と姿勢を補正する。次に、補正した左足３８の目標とする位置と姿勢と、補正した右足４８の目標とする位置と姿勢に基づいて、体幹目標位置を補正する。
歩容データ補正装置１１２は、体幹１２の目標位置を補正する際に、補正前の体幹１２の目標位置を水平面内で移動させるように補正する。即ち、体幹目標位置のｚ座標は固定されている。
ロボット６のような歩行ロボットでは、体幹１２の位置を水平方向に移動するとＺＭＰの位置がよく移動する。それに対して体幹１２の位置を鉛直方向に移動してもＺＭＰの位置はあまり移動しない。そのことから、体幹目標位置を水平方向にのみ補正しても、ＺＭＰが目標ＺＭＰに一致するように体幹目標位置を補正することができる。
なお、ロボット６が実際の歩行状況に基づいて歩容データを補正する方法は、上記の方法に限定されるものではない。例えばロボット６がカメラを搭載し、前方の歩行面の凹凸を予め検出しながら、歩容データを補正してもよい。ロボット６は、指示された歩容データを実際の状況に応じて補正する様々な方法を採用することができる。
【００２８】
図３は、体幹位置修正装置１１４の機能的な構成を示すブロック図である。図３に示すように、体幹位置修正装置１１４は、機能的に、左脚指示位置計算装置１４２と、左脚補正位置計算装置１４４と、右脚指示位置計算装置１４６と、右脚補正位置計算装置１４８と、左体幹修正量計算装置１５２と、右体幹修正量計算装置１５４と、修正量選択装置１５６と、体幹高さ抽出装置１５８と、加算器１６２と、体幹高さ書換装置１６４とを備えている。
【００２９】
左脚指示位置計算装置１４２は、歩容データ記憶装置１１０が記憶している事前に準備されていた歩容データを入力し、入力した歩容データが示す左足首関節３７に対する左股関節３１の相対的な位置関係を計算する。
図４を参照して、左脚指示位置計算装置１４２の処理を説明する。図４は、歩容データ記憶装置１１０に記憶されている歩容データに従うときのロボット６を模式的に示している。図４に示すように、歩容データ記憶装置１１０に記憶されている歩容データが示す体幹１２の目標位置をＰｗ０とする。体幹１２の目標とする姿勢をＤｗ０（例えばロール角、ピッチ角、ヨー角を記述する行列）とする。左足３８の目標とする位置をＰＬ０とする。左足３８の目標とする姿勢をＤＬ０とする。右足４８の目標とする位置をＰＲ０とする。右足４８の目標とする姿勢をＤＲ０とする。
左脚指示位置計算装置１４２は、体幹１２の目標位置Ｐｗ０と体幹１２の目標姿勢Ｄｗ０と、予め記憶している体幹１２の代表点Ｗと左股関節３１との相対的な位置関係に基づいて、左股関節３１の位置を求める。左股関節３１の位置は、左脚リンク３０の体幹１２側の基端の位置でもある。また左脚指示位置計算装置１４２は、左足３８の目標位置ＰＬ０と左足３８の目標姿勢ＤＬ０と、予め記憶している左足３８の代表点Ｌと左足首関節３７との相対的な位置関係に基づいて、左足首関節３７の位置を求める。左足首関節３７の位置は、左脚リンク３０の左足３８側の基端の位置でもある。そして、左足首関節３７の位置から左股関節３１の位置へと向かうベクトルＨＬ０＝（ｘＬ０、ｙＬ０、ｚＬ０）を求める。
【００３０】
左脚補正位置計算装置１４４は、歩容データ補正装置１１２によって補正された歩容データを入力し、入力した補正後の歩容データが示す左足首関節３７に対する左股関節３１の相対的な位置関係を計算する。
図５を参照して、左脚補正位置計算装置１４４の処理を説明する。図５は、歩容データ補正装置１１２による補正後の歩容データに従うときのロボット６を模式的に示している。補正後の歩容データが示す体幹１２の目標位置をＰｗ１とする。体幹１２の目標とする姿勢をＤｗ１とする。左足３８の目標とする位置をＰＬ１とする。左足３８の目標とする姿勢をＤＬ１とする。右足４８の目標とする位置をＰＲ１とする。右足４８の目標とする姿勢をＤＲ１とする。歩容データ補正装置１１２は、歩容データを補正する際に、体幹１２の目標位置を水平方向に移動した位置に補正することから、補正後の体幹１２の目標位置Ｐｗ１は、補正前の体幹１２の目標位置Ｐｗ０を水平方向に移動した位置となる。
左脚指示位置計算装置１４２は、体幹１２の目標位置Ｐｗ１と体幹１２の目標姿勢Ｄｗ１と、予め記憶している体幹１２の代表点Ｗと左股関節３１との相対的な位置関係に基づいて、左股関節３１の位置を求める。また左脚指示位置計算装置１４２は、左足３８の目標位置ＰＬ０と左足３８の目標姿勢ＤＬ０と、予め記憶している左足３８の代表点Ｌと左足首関節３７との相対的な位置関係に基づいて、左足首関節股３７の位置を求める。そして、左足首関節３７の位置から左股関節３１の位置へと向かうベクトルＨＬ１＝（ｘＬ１、ｙＬ１、ｚＬ１）を求める。なお、ここではｚＬ１＝ｚＬ０となる。
【００３１】
歩容データの補正の前後で、歩容データが示す左足首関節３７と左股関節３１の距離は変化する。即ち、上記した図４に示すベクトルＨＬ０の長さと、上記した図５に示すベクトルＨＬ１の長さは一致しない。補正後の歩容データが示す左足首関節３７と左股関節３１の距離（ベクトルＨＬ１の長さ）が、左脚リンク３０を最大に伸ばしたときの両端間距離（左脚リンク３０の長さ）を超える場合もある。この場合、補正後の歩容データは、左脚リンク３０の長さに対して実現できない歩容データである。従来の技術では、このような結果が導出されないようにするために、指示する歩容データが示す左足首関節３７と左股関節３１の距離の上限を、左脚リンク３０の長さに対して十分に低く設定する必要があった。それにより、ロボットは接地脚の膝関節を不自然に曲げた歩行を実施する。
本実施例のロボット６は、歩容データを補正する段階では、左脚リンク３０の最大長さの制約から実際には実現できない歩容データに補正することを許容する。換言すれば、事前に準備しておく歩容データが示す左足首関節３７と左股関節３１の距離の上限を、左脚リンク３０の最大長さに略等しく設定してことが可能である。
【００３２】
左体幹修正量計算装置１５２は、図６に示すように、左脚補正位置計算装置１４４で計算したベクトルＨＬ１のｚ方向成分ｚＬ１を修正したときに、その修正後のベクトル（図中のベクトルＨＬ２）が、左脚指示位置計算装置１４４で計算したベクトルＨＬ０の長さ｜ＨＬ０｜に等しくなるときの、修正量ΔｚＬを計算する。修正量ΔｚＬは、
ΔｚＬ＝−ｚＬ１＋（｜ＨＬ０｜２−（ｘＬ１）２−（ｙＬ１）２）１／２
と計算することができる。ここで、
｜ＨＬ０｜２＝（ｘＬ０）２＋（ｙＬ０）２＋（ｚＬ０）２
である。ΔｚＬは正負の符合を持つ値であり、ΔｚＬが正の値であるときは、ｚ軸の正方向（鉛直上向き）への修正を示す。
図７は、補正後の歩容データが記述する体幹の目標位置Ｐｗ１を、計算した修正量ΔｚＬだけ鉛直方向に修正した位置Ｐｗ２を示している。体幹１２が位置Ｐｗ２に位置する場合、左足首関節３７に対する左股関節３１の相対位置は、図６に示したベクトルＨＬ２に等しくなる。即ち、左足首関節３７と左股関節３１の距離が、補正前の歩容データが示す左足首関節３７と左股関節３１の距離に等しい状態であって、左脚リンク３０に関して実現可能な距離となる。従って、補正後の歩容データが記述する体幹１２の目標位置ＰＷ１を、修正量ΔｚＬだけ鉛直方向に修正することによって、補正後の歩容データを左脚リンク３０の長さに対して実現可能な歩容データに修正することができる。
左体幹修正量計算装置１５２は、修正量ΔｚＬを計算する際に、歩容データから計算される足首関節３７と左股関節３１の距離｜ＨＬ０｜にかえて、左脚リンク３０の最大長さを超えない所定値を用いることもできる。左脚リンク３０の最大長さとは、左脚リンク３０が実現できる両端間の最大距離を意味する。即ち、左膝関節３４を伸ばしたときの左脚リンク３０の長さを意味する。
【００３３】
右脚指示位置計算装置１４６は、左脚指示位置計算装置１４２と略同様の処理によって、補正前の歩容データが示す右足首関節４７に対する右股関節４１の相対的な位置関係を計算する。
右脚補正位置計算装置１４８は、左脚補正位置計算装置１４４と略同様の処理によって、補正後の歩容データが示す右足首関節４７に対する右股関節４１の相対的な位置関係を計算する。
右体幹修正量計算装置１５４は、左体幹修正量計算装置１５２と略同様に処理によって、右脚リンクに関する修正量ΔｚＲを計算する。
【００３４】
修正量決定装置１５６は、左体幹修正量計算装置１５２で計算した修正量ΔｚＬと、右体幹修正量計算装置１５４で計算した修正量ΔｚＲに基づいて、体幹１２の目標位置ＰＷ２を鉛直方向に修正するときの体幹修正量Δｚを決定する。修正量決定装置１５６は、左脚リンク３０に関する修正量ΔｚＬと、右脚リンク４０に関する修正量ΔｚＲのうち、小さい方（正確にいうと、マイナス側であって、絶対値が大きなマイナスの値をいう）の修正量を体幹修正量Δｚに決定する。即ち、体幹１２の目標位置ＰＷ１をより鉛直下向きに修正する修正量を選択する。鉛直下方に大きく修正する量によって体幹１２の目標位置Ｐｗ１を修正すれば、補正後の歩容データは左脚リンク３０と右脚リンク４０の両者の長さに対して実現可能な歩容データに修正されることとなる。また、両脚の修正量がともに正の値であり、鉛直下方への修正量が計算されない場合には、体幹修正量Δｚをゼロと決定する。即ち、体幹１２の目標位置ＰＷ２を鉛直上向きに修正することを禁止する。ロボット６では、体幹１２の位置を鉛直上向きに移動すると、歩行動作に不自然さが発現しやすい。体幹１２の目標位置ＰＷ２を鉛直上向きに修正することを禁止することにより、ロボット６が不自然な動作をすることを抑制する。修正量決定装置１５６で決定された修正量Δｚは、加算器１６２に入力される。
体幹高さ抽出装置１５８は、歩容データ補正装置１１２による補正後の歩容データが記述する体幹１２の目標位置Ｐｗ１のｚ座標を抽出し、加算器１６２に入力する。
加算器１６２は、修正量決定装置１５６から入力した体幹修正量Δｚと、体幹高さ抽出装置１５８から入力したｚ座標を加算した値を出力する。
体幹高さ書換装置１６４は、補正後の歩容データが記述する体幹１２の目標位置Ｐｗ１のｚ座標を、加算器１６２から入力した値に書き換える。ｚ座標が書き換えられた体幹１２の目標位置は、関節角群計算装置１１８に入力される。
【００３５】
図２に示したように、歩容データ補正装置１１２は、各種センサ１２４と実際運動計算装置１１６で認識される実際の歩行状態に基づいて、歩容データ記憶装置１１０に記憶されている事前に準備されて歩容データを補正する。
図３に示したように、左脚補正位置計算装置１４４は、補正した歩容データの体幹目標位置に基づいて、左股関節（左基端）位置を特定する。左脚補正位置計算装置１４４は、補正した歩容データの左足先目標位置に基づいて、左足首関節３７の位置も特定する。
左体幹修正量計算装置１５２は、左脚補正位置計算装置１４４が特定した左基端位置を鉛直方向に移動したときに、歩容データ補正装置１１２が補正した歩容データによるときの足先目標位置（左足首関節の位置に置き換えてもよい）からの距離が所定距離となるときの鉛直移動量を計算する。
そこで利用する所定距離は、歩容データ記憶装置１１０に記憶されている事前に準備された歩容データによるときの、左股関節３１と左足首関節３７の距離であってもよいし、左膝関節３４を伸ばしたときの左股関節３１と左足首関節３７の距離であってもよい。
右脚補正位置計算装置１４４と右体幹修正量計算装置１５２は、上記と同様にして、右脚リンクの鉛直移動量を計算する。
修正量決定装置１５６は、脚リンク毎に計算した鉛直移動量から、鉛直下方に最大の移動量を選択する。加算器１６２は、歩容データ補正装置１１２が補正した歩容データの体幹目標位置の鉛直方向座標を、修正量決定装置１５６が選択した鉛直移動量だけ鉛直下方に修正する。
上記に代えて、接地脚についてのみ鉛直移動量を計算するようにしてもよい。実際上は接地脚についての鉛直移動量の方が、遊脚についての鉛直移動量よりも、鉛直下方に向けて大きいことが多いことから、接地脚について鉛直移動量を計算することは、鉛直下方に最大の鉛直移動量を計算するのと数学的に同等の場合が多いからである。
【００３６】
図８を参照して、ロボット６の歩行制御方法の流れを説明する。
ステップＳ２では、事前に準備された歩容データを歩容データ記憶装置１１０に記憶する。
ステップＳ４では、ロボット６が歩行制御を開始する。ロボット６は、以下に説明するステップＳ６からステップＳ１４の処理を、所定の動作周期で繰り返し実行する。
ステップＳ６では、実際運動計算装置１１６が、ロボット６に搭載されている各種センサ１２４の出力に基づいて、ロボット６が実際に行っている運動を計算する。
ステップＳ８では、歩容データ補正装置１１２が、ステップＳ２で指示された歩容データを、ステップＳ６で計算されたロボット６の実際運動に基づいて補正する。歩容データ補正装置１１２は、体幹１２の目標位置を補正する場合、指示された歩容データが記述する体幹１２の目標位置を、水平面内で移動する位置に限定して補正する。
ステップＳ１０では、体幹位置修正装置１１４が、歩容データ補正装置１１２による補正後の歩容データが記述する体幹１２の目標位置（実際には高さ）の修正処理を行う。ステップＳ１０で行う処理の詳細については後述する。
ステップＳ１２では、関節角群記憶装置１１８が、ステップＳ８で補正された歩容データ（体幹１２の高さ座標を除く）と、ステップＳ１０で修正された体幹の目標高さ座標を入力し、いわゆる逆キネマティクスを解くことによってロボット６の各関節角θ１（ｔ）、θ２（ｔ）、θ３（ｔ）・・・を計算する。
ステップＳ１４では、アクチュエータ制御装置１２０が、ステップＳ１２で計算された各関節角を入力し、ロボット６の各関節を動かすアクチュエータ群の動作を制御する。ロボット６は歩行動作を実施する。ロボット６に搭載されている各種センサ１２４から、ロボット６の実際の運動状態に応じた出力が実際運動計算装置１１６に入力される。このステップＳ１４の処理が終わると、再びステップＳ４の処理に戻る。
【００３７】
図９を参照して、図８のステップＳ１０で行う処理を詳細に説明する。
ステップＳ３２では、左脚指示位置計算装置１４２が、ステップＳ２で記憶された歩容データが示す左足首関節３７と左股関節３１の相対位置を計算する。詳しくは、左足首関節３７に対する左股関節３１の位置（図４に示すベクトルＨＬ０）を計算する。
ステップＳ３４では、左脚補正位置計算装置１４４が、ステップＳ８による補正後の歩容データが示す左足首関節３７と左股関節３１の相対位置を計算する。詳しくは、左足首関節３７に対する左股関節３１の位置（図５に示すベクトルＨＬ１）を計算する。
ステップＳ３６では、左体幹修正量計算装置１５２が、ステップＳ３４で計算したベクトルＨＬ１のｚ座標を修正したときに、修正後のベクトル（図６に示すベクトルＨＬ２）の長さが、ステップＳ３２で計算したベクトルＨＬ０の長さと等しくなるときの修正量ΔｚＬを計算する。図７に示したように、歩容データ補正装置１１２による補正後の体幹１２の目標位置ＰＷ１を鉛直方向に修正量ΔｚＬだけ修正すると、修正後の歩容データが示す左足首関節３７と左股関節３１の距離が、事前に準備された歩容データが示す左足首関節３７と左股関節３１の距離と等しくなる。即ち、修正後の歩容データが示す左脚リンク３０の両端間距離と、事前に準備された歩容データが示す左脚リンク３０の両端間距離が等しくなる。
【００３８】
ステップＳ３８では、右脚指示位置計算装置１４６が、ステップＳ２で記憶された歩容データが示す右足首関節４７と右股関節４１の相対位置を計算する。詳しくは、右足首関節４７に対する右股関節４１の位置を計算する。
ステップＳ４０では、右脚補正位置計算装置１４８が、ステップＳ８による補正後の歩容データが示す右足首関節４７と右股関節４１の相対位置を計算する。詳しくは、右足首関節４７に対する右股関節４１の位置を計算する。
ステップＳ４２では、右体幹修正量計算装置１５４が、ステップＳ４０で計算したベクトルのｚ座標を修正したときに、修正後のベクトルの長さが、ステップＳ３８で計算したベクトルの長さと等しくなるときの修正量ΔｚＲを計算する。
上記のステップＳ３８〜Ｓ４２は、ステップＳ３２〜Ｓ３６で左足リンク３０に関して行った処理を、右脚リンク４０に関して同様に行うものである。
【００３９】
ステップＳ４４では、体幹修正量計算装置１５６が、ステップＳ３６で計算した左脚リンク３０に関する修正量ΔｚＬと、ステップＳ４２で計算した右脚リンク４０に関する修正量ΔｚＲのなかから、鉛直下方に向けて大きい方を選択する。即ち、鉛直下向きに大きく修正することを示す修正量を選択する。
ステップＳ４６では、ステップＳ４４で選択した修正量が正の値であれば、選択した修正量をゼロに変更する。即ち、選択した修正量が鉛直上向きに修正することを示す修正量であれば、修正量をゼロに変更する。即ち、左右の脚リンクに関する修正量がともに正であり、鉛直下方に向く修正量が計算されない場合には、ゼロを選択するのである。
ステップＳ４８では、ステップＳ８による補正後の歩容データが記述する体幹１２の目標位置の高さ座標を、ステップＳ４４、Ｓ４６で決定した修正量だけ、鉛直下向きに修正する。
【００４０】
上述のように、ロボット６は、事前に準備された歩容データを実際の状況に応じて補正するとともに、補正後の歩容データを左右の脚リンク３０、４０の長さを考慮して修正する。それにより、事前に準備された歩容データを実際の状況に応じて補正する際に、左右の脚リンク３０、４０の最大長さの制約から実現できない歩容データに補正されることを許容することができる。事前に準備する歩容データを作成する段階で、左右の脚リンク３０、４０に伸縮する余裕を与えておく必要がない。ロボット６は、接地脚の膝関節を自然に伸ばした歩行動作を実施することができる。
ロボット６は、補正後の歩容データを左右の脚リンク３０、４０の長さを考慮して修正する際に、体幹１２の目標位置を鉛直下方に移動させた位置に修正する。ロボット６では、体幹の位置を鉛直方向に移動しても、特に鉛直下方に移動しても、ＺＰＭの位置はさほど移動しないことから、この修正処理によってロボット６がバランスを崩すこともない。
【００４１】
（実施例２）  本発明を実施する実施例２について図面を参照して説明する。本実施例は、本発明の技術を事前に準備する歩容データの作成装置に適用したものである。本実施例の歩容データ作成装置は、例えば実施例１のロボット６に指示する歩容データを事前に作成するために利用することができる。以下、実施例１のロボット６に指示する歩容データを事前に作成する場合を例に挙げて、本実施例の歩容データ作成装置を詳細に説明する。
【００４２】
図１０に示すように、本実施例の歩容データ作成装置２００は、機能的に、記憶装置２１０と、体幹軌道データ作成装置２１４と、平滑軌道データ作成装置２２０を備えている。
記憶装置２１０は、オペレータ等が指示した各種のデータを記憶する。記憶装置２１０は、左足目標位置データ２０２と、右足目標位置データ２０４と、体幹初期位置データ２０６と、目標ＺＭＰデータ２０７と、ロボット６の諸元を記述しているロボット諸元データ２０８等を記憶することができる。目標位置データ２０２、２０４、体幹初期位置データ２０６、目標ＺＭＰデータ２０７は、経過時間とともに座標を変える経時的データである。これらのデータは、オペレータ等によって予め作成される。
図１１を参照して、記憶装置２１０が記憶しているデータについて説明する。左足目標位置データ２０２は、左足３８が接地位置３８ａ、３８ｂ、３８ｃ・・を順に移動するときの左足３８の位置の経時的変化（軌道）を記述している。右足目標位置データ２０４は、右足４８が接地位置４８ａ、４８ｂ、４８ｃ・・を順に移動するときの右足４８の位置の経時的変化（軌道）を記述している。体幹初期位置データ２０６は、体幹１２の代表点Ｗの経時的な目標位置の経時的変化を記述しており、図１１に示す軌道ＰＷＡ（ｔ）を記述している。体幹１２の軌道ＰＷＡ（ｔ）は、ｚ方向の高さ位置が、ロボット６が直立したときの体幹１２の代表点Ｗの高さ位置ｚＡに固定されている。即ち、軌道ＰＷＡ（ｔ）は、ｚ座標がｚＡである水平面上の軌道を示す。本実施例の歩容データの作成装置２００は、体幹初期位置データ２０６が記述している体幹目標位置を初期値として、以下に説明する処理を実施する。目標ＺＭＰデータ２０７は、図１１に示す軌道ＺＭＰ（ｔ）を記述している。
体幹初期位置データ２０６が記述している体幹１２の目標位置は、左右の脚リンク３０、４０の長さを考慮すると、ロボット６にとって実現不可能な位置となりうることがある。歩容データの作成装置２００では、この段階において、体幹初期位置データ２０６が記述している体幹１２の目標位置が、ロボット６にとって実現不可能な位置であることを許容する。
ここで、体幹初期位置データ２０６（軌道ＰＷＡ（ｔ））を作成する方法を例示しておく。第１に、左足目標位置データ２０２が記述する左足３８の接地位置３８ａ、３８ｂ、３８ｃ・・と、右足目標位置データ２０４が記述する右足４８の接地位置４８ａ、４８ｂ、４８ｃ・・に基づいて、目標とするＺＭＰの軌道ＺＭＰ（ｔ）を計算する。次に、ロボット諸元データ２０８を用いて、ロボット６が直立した場合の体幹１２の代表点Ｗの高さ位置ｚＡを計算する。次に、体幹位置１２の代表点Ｗの高さ位置（ｚ座標）を座標ｚＡに固定し、計算した目標ＺＭＰの軌道ＺＭＰ（ｔ）を満たす体幹１２の代表点Ｗの軌道ＰＷＡ（ｔ）：（ｘ（ｔ），ｙ（ｔ），ｚＡ）を解析計算する。この水平面内の軌道ＰＷＡ（ｔ）を記述するデータが、体幹初期位置データ２０６である。体幹初期位置データ２０６は、従来の歩容データの作成装置を用いて作成することができる。
体幹初期位置データは、必ずしも目標ＺＭＰを正確に満足する体幹目標位置を記述している必要はなく、概算して求めた位置でもよい。また、ロボット６が直立したときの代表点Ｗの高さ位置ｚＡにかえて、他の高さ位置の軌道を記述するものでもよい。また、必ずしも水平面内に固定された軌道データを記述していなくてもよい。
【００４３】
体幹軌道データ作成装置２１４は、記憶装置２１０に記憶されているデータに基づいて、体幹軌道データを作成する。体幹軌道データとは、体幹初期位置データが記述する体幹１２の目標位置を修正したものである。
平滑軌道データ作成装置２１６は、体幹軌道データ作成装置２１４が作成した体幹軌道データが記述する体幹１２の鉛直方向の目標軌道を、微分可能な連続曲線を描く平滑な軌道に修正した平滑軌道データを作成する。平滑軌道データ作成装置２１６は、サンプリングデータ作成部２２２と、曲線補完部２２４と、データ比較部２２６と、サンプリングデータ修正部２２８等を備えている。
【００４４】
図１２に示すように、体幹軌道データ作成装置２１４は、体幹位置仮定装置２１２と、左脚位置計算装置２４２、右脚位置計算装置２４４、左修正量計算装置２４６、右修正量計算装置２４８、修正量決定装置２５０、体幹高さ修正装置２５１、ＺＭＰ計算装置２５２と、体幹軌道データ記憶装置２５４を備えている。
体幹位置仮定装置２１２は、体幹１２の目標位置を仮定する装置である。体幹位置仮定装置２１２は、体幹目標位置を仮定する際に、体幹初期位置データ２０６に記述されている体幹１２の目標位置を、仮定する体幹目標位置の初期値として用いる。
左脚位置計算装置２４２は、記憶装置２１０から左足目標位置データ２０２とロボット諸元データ２０８を入力し、体幹位置仮定装置２１２から体幹１２の仮定された目標位置を入力する。左脚位置計算装置２４２は、まずロボット諸元データ２０８を利用して、体幹１２の代表点Ｗと左股関節３１の相対位置を把握する。次いで、把握した代表点Ｗと左股関節３１の相対位置と、体幹位置仮定装置２１２で仮定された体幹１２の目標位置から、体幹１２が仮定された目標位置にあるときの左股関節３１の位置を計算する。また左脚位置計算装置２４２は、ロボット諸元データ２０８を利用して、左足３８の代表点Ｌと左足首関節３７の相対位置を把握する。次いで、把握した代表点Ｌと左足首関節３７の相対位置と、左足目標位置データ２０２が記述している左足３８の目標位置から、左足３８が左足目標位置データ２０２に従って運動するときの左足首関節３７の位置を計算する。左脚位置計算装置２４２は、計算した左股関節３１の位置と計算した左足首関節３７の位置から、左股関節３１に対する左足首関節３７の相対位置を計算する。即ち、脚位置計算装置２４２は、図５に示すベクトルＨＬ１に相当するベクトル（以下、相当ベクトルＨＬ１ということがある）を計算する。相当ベクトルＨＬ１は経時的に変化することから、時刻（歩行時間）の関数となる。
【００４５】
左修正量計算装置２４６は、記憶装置２１０からロボット諸元データ２０８を入力し、左脚位置計算装置２４２から左股関節３１に対する左足首関節３７の相対位置（相当ベクトルＨＬ１）を入力する。
左修正量計算装置２４６は、まずロボット諸元データ２０８を利用して、左脚リンク３０の最大長さを計算する。左脚リンク３０の最大長さを、図６に示すベクトルＨＬ０の長さに対応させると理解しやすい。次いで、左脚位置計算装置２４２が計算した相当ベクトルＨＬ１のｚ方向成分を修正したときに、その修正後のベクトル（図６のベクトルＨＬ２に相当する）の長さが、計算した左脚リンク３０の最大長さに等しくなるときの、修正量（図６の修正量ΔｚＬに相当する）を計算する。この修正量は経時的に変化することから、時刻（歩行時間）の関数となる。
【００４６】
右脚位置計算装置２４４は、左脚位置計算装置２４２と略同様の処理を右脚リンク４０に関して行うことで、体幹１２の仮定された目標位置と右足目標位置データ２０４に従ってロボット６が歩行するときの右足首関節４７に対する右股関節４１の相対的な位置関係を計算する。
右修正量計算装置２４８は、左修正量計算装置２４６と略同様に処理によって、右脚リンク４０に関する修正量を計算する。
【００４７】
修正量決定装置２５０は、左修正量計算装置２４６で計算した修正量と、右修正量計算装置２４８で計算した修正量に基づいて、仮定された体幹１２の目標位置を、高さ方向（鉛直方向）に修正する体幹修正量Δｚを決定する。即ち、修正量決定装置２５０は、実施例１のロボット６が備える修正量決定装置１５２に対応する処理を行う。
修正量決定装置２５０は、左修正量計算装置２４６と右修正量計算装置２４８のそれぞれで計算された修正量を入力し、小さい方の修正量（鉛直上方を正とする）を体幹修正量Δｚに採用する。即ち、鉛直下方に向けて大きい方の修正量を採用する。
体幹高さ修正装置２５１は、体幹位置仮定装置２１２で仮定された体幹１２の目標位置の高さ位置（ｚ座標）を、修正量決定装置２５０で決定された修正量だけ、修正する。
ＺＭＰ計算装置２５２は、記憶装置２１０に記憶されているデータと、体幹高さ修正装置２５１で修正された体幹１２の目標位置に基づいて、ロボット６のＺＭＰを計算する。そして、計算したＺＭＰと、目標ＺＭＰデータ２０７が記述している目標ＺＭＰとを比較し、その偏差を計算する。計算した偏差が所定値以下であれば、体幹高さ修正装置２５１から入力した体幹１２の目標位置を、体幹軌道データ記憶装置２５４に教示する。体幹軌道データ記憶装置２５４は、教示された体幹１２の目標位置を記憶する。一方、計算した偏差が所定値よりも大きいときは、体幹高さ修正装置２５１から入力した体幹１２の目標位置を、計算した偏差とともに、体幹位置仮定装置２１２に教示する。
体幹位置仮定装置２１２は、ＺＭＰ計算装置２５２から、体幹１２の目標位置とＺＭＰに関する偏差を入力すると、体幹１２の目標位置を再び仮定する。体幹位置仮定装置２１２が新たに仮定する体幹１２の目標位置は、入力したＺＭＰに関する偏差に基づいて、入力した体幹１２の目標位置を水平方向に移動した位置である。
体幹位置仮定装置２１２が新たに仮定した体幹１２の目標位置は、再び左脚位置計算装置２４２と右脚位置計算装置２４２に入力される。新たに仮定された体幹１２の目標位置は、再びｚ座標が修正され、目標ＺＭＰを満足するか否かが判別される。以上の処理が繰り返されることによって、目標ＺＭＰを満足するとともに左右の脚リンク３０、４０の長さに関して実現可能な体幹１２の目標位置が、体幹軌道データ記憶装置２５４に記憶される。
体幹軌道データ作成装置２１４は、体幹初期位置データ２０６に経時的に記述されているすべての体幹目標位置に対して上述の処理を繰り返す。その結果、体幹軌道データ記憶装置２５４には、目標ＺＭＰを満足するとともに左右の脚リンク３０、４０の長さに関して実現可能な体幹軌道ＰＷＢ（ｔ）を記述する体幹軌道データが記憶される。
【００４８】
体幹軌道データ作成装置２１４が作成する体幹軌道データは、記憶装置２１０が記憶している左足目標位置データ２０２や右足目標位置データ２０４と併せて、ロボット６に指示する歩容データとして利用することができる。この歩容データをロボット６に指示すると、ロボット６は左右の脚リンク３０、４０を自然に伸ばしながら歩行をすることになる。ロボット６は、実施例１で説明した歩行制御によって、予期せぬ外乱力が作用した場合でも、歩行しつづけることができる。
【００４９】
図１３は、体幹軌道データＰＷＢ（ｔ）が記述する鉛直方向の軌道ｚＢ（ｔ）を示している。図１３に示すように、体幹軌道データＰＷＢ（ｔ）が記述する鉛直方向の軌道ｚＢ（ｔ）では、軌道が不連続的に変化する箇所が存在する。このような体幹軌道データＰＷＢ（ｔ）をロボット６に指示すると、ロボット６は体幹１２を乱暴に上下させて歩行することとなり、ロボット６の歩行動作に不自然さが発現してしまう。
そこで、本実施例の歩容データの作成装置２００では、平滑軌道データ作成装置２１６用意されている。
【００５０】
平滑軌道データ２１６の処理を、図１３、図１４、図１５を参照しながら説明する。平滑軌道データ作成装置２１６は、体幹軌道データ作成装置２１４から体幹軌道データＰＷＢ（ｔ）を入力する。
図１３に示すように、平滑軌道データ作成装置２１６のサンプリングデータ作成部２２２は、入力した体幹軌道データＰＷＢ（ｔ）が記述する鉛直方向の軌道ｚＢ（ｔ）から、１歩時間ΔＴの略４分の１の周期毎の軌道点ＳＰ１、ＳＰ２、ＳＰ３、・・・をサンプリングし、軌道点ＳＰ１、ＳＰ２、ＳＰ３、・・・を記述するサンプリングデータを作成する。
図１４に示すように、平滑軌道データ作成装置２１６の曲線補完部２２４は、サンプリングデータ作成部２２２が作成したサンプリングデータを入力し、サンプリングデータが記述する軌道点ＳＰ１、ＳＰ２、ＳＰ３、・・・を曲線で補完した補完曲線ｚＥ（ｔ）を作成する。詳しくは、まず軌道点ＳＰ１、ＳＰ２、ＳＰ３、・・・を直線で連結した補完屈折線ｚＣ（ｔ）を作成し、補完屈折線ｚＣ（ｔ）に対して移動平均処理を行うことで、補完曲線ｚＥ（ｔ）を作成する。補完曲線ｚＥ（ｔ）は、軌道点ＳＰ１、ＳＰ２、ＳＰ３、・・・を微分可能な連続曲線でなぞる軌道である。図１４に示すように、補完曲線ｚＥ（ｔ）は、軌道点ＳＰ１、ＳＰ２、ＳＰ３、・・・を通るとは限らない。なお、補完曲線ｚＥ（ｔ）の作成方法は、この方法に限定されず、様々な近似曲線の作成方法を用いることができる。
【００５１】
平滑軌道データ作成装置２１６のデータ比較部２２６は、体幹軌道データ作成装置２１４から入力した体幹軌道データが記述する鉛直方向の軌道ｚＢ（ｔ）と、曲線補完部２２４が作成した補完曲線ｚＥ（ｔ）を比較する。そして、例えば図１４に示す期間Ｍのように、補完曲線ｚＥ（ｔ）が軌道ｚＢ（ｔ）よりも鉛直上方に位置する期間を検出すると、その期間をサンプリングデータ修正部２２８に指示する。
サンプリングデータ修正部２２８は、データ比較部２２６から指示された期間を画定している軌道点をサンプリングデータから抽出し、抽出した軌道点の位置を所定距離だけ鉛直下方に修正する。例えば図１４に示す区間Ｍが指示された場合では、軌道点ＳＰ３を修正軌道点ＳＱ３に修正し、軌道点ＳＰ４の位置を修正軌道点ＳＱ４に修正にする。
サンプリングデータ修正部２２８によってサンプリングデータが修正されると、再び曲線補完部２２４が補完曲線を作成する。曲線補完部２２４が再作成した補完曲線は、データ比較部２２６によって軌道ｚＢ（ｔ）と再び比較される。再作成した補完曲線が軌道ｚＢ（ｔ）よりも再び上方に位置していれば、サンプリングデータ修正部２２８がサンプリングデータを再び修正する。
平滑軌道データ作成装置２１６は、上記の処理を繰り返すことによって、図１５に示す平滑鉛直軌道ｚＤ（ｔ）を作成する。図１５に示すＳＱ１〜ＳＱ９は、サンプリングデータ修正部２２８によって修正された修正軌道点である。平滑鉛直軌道ｚＤ（ｔ）は、体幹軌道データＰＷＢ（ｔ）が記述する鉛直方向の軌道ｚＢ（ｔ）よりも、常に鉛直下方に位置している。
平滑軌道データ作成装置２１６は、体幹軌道データＰＷＢ（ｔ）が記述している鉛直方向の軌道ｚＢ（ｔ）を、作成した平滑鉛直軌道ｚＤ（ｔ）に書き換えることによって、平滑軌道データを作成する。
【００５２】
図１５に示すように、平滑軌道データが記述する平滑鉛直軌道ｚＤ（ｔ）は、微分可能な曲線を描いている。平滑軌道データをロボット６に指示すると、ロボット６は体幹１２を滑らかに上下させながら歩行することとなり、ロボット６は左右の脚リンク３０、４０を自然な感じに伸ばして歩行することとなる。
平滑軌道データは、体幹軌道データ作成装置２１４で作成した体幹軌道データＰＷＢ（ｔ）に対して、体幹１２の目標位置が鉛直方向に移動されている。それにより、平滑軌道データから計算されるＺＭＰの位置は、目標ＺＭＰの位置に対して偏差を生じている。体幹１２の鉛直方向の移動はＺＭＰの位置の変化に影響が少ないことから、この偏差はさほど大きくなく、ロボット６は平滑軌道データを用いて歩行することができる。
【００５３】
一方、平滑軌道データ作成装置２１６で作成した平滑軌道データを、体幹軌道データ作成装置２１４に入力することができるように構成してもよい。体幹軌道データ作成装置２１４は、平滑軌道データが記述する体幹１２の目標位置を初期値として、新たな体幹軌道データ作成する。新たに作成された体幹軌道データは、再び平滑軌道データ作成装置２１６に入力されて、新たな平滑軌道データが作成される。それにより、脚リンク３０、４０を自然に伸ばしながら、ロボット６が体幹１２を滑らかに移動させて歩行する歩容データであって、動的バランスが正確に維持される歩容データを作成することができる。
【００５４】
以上、本発明の具体例を詳細に説明したが、これらは例示にすぎず、特許請求の範囲を限定するものではない。特許請求の範囲に記載の技術には、以上に例示した具体例を様々に変形、変更したものが含まれる。
本明細書または図面に説明した技術要素は、単独であるいは各種の組み合わせによって技術的有用性を発揮するものであり、出願時請求項記載の組み合わせに限定されるものではない。また、本明細書または図面に例示した技術は複数目的を同時に達成するものであり、そのうちの一つの目的を達成すること自体で技術的有用性を持つものである。
【図面の簡単な説明】
【００５５】
【図１】実施例１のロボットを模式的に示す図。
【図２】ロボットが搭載している制御装置の構成を示すブロック図。
【図３】制御装置の体幹位置修正装置の構成を示すブロック図。
【図４】事前に準備された歩容データに従うときの脚リンクの両端の位置を説明する図。
【図５】補正された歩容データに従うときの脚リンクの両端の位置を説明する図。
【図６】体幹位置の修正量を説明する図。
【図７】体幹位置が修正されたときの脚リンクの両端の位置を説明する図。
【図８】制御装置の処理の流れを示すフローチャート。
【図９】体幹位置修正装置の処理の流れを示すフローチャート。
【図１０】実施例２の歩容データの作成装置の構成を示すブロック図。
【図１１】記憶装置に記憶されているデータが記述している軌道を説明する図。
【図１２】体幹軌道データ作成装置の構成を示すブロック図。
【図１３】体幹軌道データが記述する体幹の鉛直方向の軌道を示す図。
【図１４】サンプリングした軌道点から作成した平滑軌道を示す図。
【図１５】修正した軌道点から作成した平滑軌道を示す図。
【符号の説明】
【００５６】
６：ロボット
１２：体幹
１４：制御装置
１６：左腕リンク
１８：右腕リンク
２０：頭部
３０：左脚リンク
３１：左股関節
３２：左大腿部
３４：左膝関節
３６：左下腿部
３７：左足首関節
４０：右脚リンク
４１：右股関節
４２：右大腿部
４４：右膝関節
４６：右下腿部
４７：右足首関節
１１０：歩容データ記憶装置
１１２：歩容データ補正装置
１１４：体幹位置修正装置
１１６：実際運動計算装置
１１８：関節角群計算装置
１２０：アクチュエータ制御装置
１２２：ロボットの機械系
１２４：各種センサ
１４２：左脚指示位置計算装置
１４４：左脚補正位置計算装置
１４６：右脚指示位置計算装置
１４８：右脚補正位置計算装置
１５２：左体幹修正量計算装置
１５４：右体幹修正量計算装置
１５６：修正量決定装置
１５８：体幹高さ抽出装置
１６４：体幹高さ書換装置
２００：歩容データの作成装置
２１０：記憶装置
２１２：体幹位置仮定装置
２１４：体幹軌道データ作成装置
２１６：平滑軌道データ作成装置
２２２：サンプリングデータ作成部
２２４：曲線補完部
２２６：データ比較部
２２８：サンプリングデータ修正部
２４２：左脚位置計算装置
２４４：右脚位置計算装置
２４６：左修正量計算装置
２４８：右修正量計算装置
２５０：修正量決定装置
２５１：体幹高さ修正装置
２５２：ＺＭＰ計算装置
２５４：体幹軌道データ記憶装置
【図１】
2006068871.tif 000003
【図２】
2006068871.tif 000004
【図３】
2006068871.tif 000005
【図４】
2006068871.tif 000006
【図５】
2006068871.tif 000007
【図６】
2006068871.tif 000008
【図７】
2006068871.tif 000009
【図８】
2006068871.tif 000010
【図９】
2006068871.tif 000011
【図１０】
2006068871.tif 000012
【図１１】
2006068871.tif 000013
【図１２】
2006068871.tif 000014
【図１３】
2006068871.tif 000015
【図１４】
2006068871.tif 000016
【図１５】
2006068871.tif 000017