JP4501601B2 - 脚式ロボットとその制御方法ならびに歩容データの作成装置と作成方法 - Google Patents
脚式ロボットとその制御方法ならびに歩容データの作成装置と作成方法 Download PDFInfo
- Publication number
- JP4501601B2 JP4501601B2 JP2004257671A JP2004257671A JP4501601B2 JP 4501601 B2 JP4501601 B2 JP 4501601B2 JP 2004257671 A JP2004257671 A JP 2004257671A JP 2004257671 A JP2004257671 A JP 2004257671A JP 4501601 B2 JP4501601 B2 JP 4501601B2
- Authority
- JP
- Japan
- Prior art keywords
- trunk
- target position
- data
- gait data
- robot
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Expired - Fee Related
Links
Images
Classifications
-
- B—PERFORMING OPERATIONS; TRANSPORTING
- B62—LAND VEHICLES FOR TRAVELLING OTHERWISE THAN ON RAILS
- B62D—MOTOR VEHICLES; TRAILERS
- B62D57/00—Vehicles characterised by having other propulsion or other ground- engaging means than wheels or endless track, alone or in addition to wheels or endless track
- B62D57/02—Vehicles characterised by having other propulsion or other ground- engaging means than wheels or endless track, alone or in addition to wheels or endless track with ground-engaging propulsion means, e.g. walking members
- B62D57/032—Vehicles characterised by having other propulsion or other ground- engaging means than wheels or endless track, alone or in addition to wheels or endless track with ground-engaging propulsion means, e.g. walking members with alternately or sequentially lifted supporting base and legs; with alternately or sequentially lifted feet or skid
Description
歩容データは、足先位置の経時的変化を記述する足先目標位置データと、足先位置の経時的変化に追従して歩行しつづけることを可能とする体幹位置の経時的変化を記述する体幹目標位置データ等から構成されている。
ロボットが転倒しない歩容データを得るためには、ロボットのダイナミクスを考慮に入れた複雑な計算を必要とする。以下に、その一例を説明する。
(1)ロボットの左足先位置と右足先位置の経時的変化を記述する足先目標位置データを指定する。
(2)足先位置の経時的変化を考慮してロボットのZMPが存在しなければならない位置を指定する。ZMP(zero moment point)とは、ロボットに作用する重力や床反力や慣性力の合力によるモーメントがゼロになる床上の点のことである。ZMPが接地脚の足先内にあればロボットは転倒しない。逆にいうと、ロボットが転倒しないためには、ZMPが接地脚の足先内になければならない。そこで接地脚の足先位置を考慮し、下記の関係を満たす目標ZMPを指定する。即ち、一方の脚リンク(例えば左脚)が遊脚になっている間は接地脚(右脚)の足先内に存在し、その一方の脚(左脚)が接地して両足接地状態になった時に新たに接地した脚(左脚)の足先内に向けて移動開始し、それまでに接地していた脚(右脚)が遊脚となる前に新たに接地した脚(左脚)の足先内に移動し終えるZMPを指定する。このようにして指定されたZMPは、目標ZMPと呼ばれる。実際のZMPが目標ZMPのとおりに移動すれば、ロボットは転倒することなく歩行しつづける。
(3)両足先位置の経時変化とそれに追従して変化する目標ZMPが指定されると、体幹位置の経時的変化を仮定してロボットのダイナミクスを計算する。計算する時点で、足先位置が指定されているので、ロボットの体幹位置を仮定するとロボットの姿勢が決まる。ロボットの姿勢が決まると、その姿勢におけるZMPの位置を計算することが可能となる。ZMPの位置を計算するためには、静的な要素に加えて、ロボットに作用する慣性力の影響を織り込まなければならない。仮定した体幹位置の経時的変化を計算に含めることで、ロボットのダイナミクスまで考慮してZMPの位置を計算することが可能となる。体幹位置の経時的変化(体幹軌道)を仮定するとZMPの位置を計算することができることから、目標ZMPに一致するZMPを実現する体幹位置の経時的変化(体幹軌道)を探求することができる。
(4)以上の工程によって予め歩容データを準備しておく。
ロボットは、歩容データからいわゆる逆キネマティクスを解くことによって、各関節の関節角を計算する関節角群計算装置を備えている。ロボットが実際に動作する際には、歩容データに従った歩行を実現する各関節の関節角を計算する。ロボットは各関節の関節角を計算した角度に調節することによって、歩容データに従って歩行する。歩容データに従ってロボットが歩行すれば、実際のZMPが目標ZMPに一致し、ロボットは転倒せずに歩行しつづけることができる。
足先位置や体幹位置という場合、足先や体幹は剛体であるから、代表点の位置によって足先や体幹の位置を示すことができる。また、足先位置や体幹位置という場合、位置のみならず、足先姿勢や体幹姿勢を含むものとする。姿勢は、足先や体幹の姿勢角によって記述することができる。歩行中の足先姿勢や体幹姿勢が所定のパターンに従う場合には、歩容データからは姿勢を記述するデータが不要化される。
目標ZMPに一致するZMPをもたらす体幹位置(通常は姿勢を含む)の経時的変化を解析的に探求する手法は、足先位置の変化に追従してロボットが転倒しないように体幹を移動させるのに必要な体幹の目標位置を算出する手法の典型例である。脚式ロボットの体幹目標位置を算出する手法は、これに限定されるものではない。
そこでロボットには、実際の歩行状態に基づいて、事前に準備されている歩容データを補正する手段が用意されている。予期せぬ外乱力が作用したときには、例えば事前に準備されている歩容データの体幹目標位置を補正することによって、予期せぬ外乱力が作用した場合でも歩行しつづけることができるようにしている。
そこで従来の技術では、体幹の高さを低く設定した歩容データを事前に準備している。この歩容データを用いると、脚リンクが伸びきった状態となることがない。実際の歩行状態に基づいて補正するときに必要ならば脚リンクをさらに伸ばすことが可能である。脚リンクが伸びきらない歩容データを事前に準備しておくことによって、実際の歩行状態に基づいて補正することができるようにしている。
しかしながら、そのことは結果として、事前に準備されている歩容データのままに歩行する場合には、接地脚を常に曲げた状態で歩行することとなる。実際の歩行状態に基づいて補正できるようにするためには、接地脚を常に曲げておき、必要に応じてさらに伸ばせるようにしておく必要がある以上、通常は接地脚を常に曲げた状態で歩行する他はない。
しかしながら、接地脚を常に曲げながら歩行すると、脚リンクの関節に作用する曲げモーメントが大きくなってしまう。これは、人が膝を曲げて歩行すると大腿部等の筋肉が強く緊張するとともに膝関節に強い負担を感じる一方、膝を伸ばして歩行すると大腿部等の筋肉の緊張が弱められ膝関節に作用する負担も軽くなることに相当する。また人を模した二足歩行ロボットの場合には、接地脚を常に曲げて歩行すると、その歩行動作にロボット特有の不自然さが発現してしまう。
本発明は上記の問題を解決する。本発明では、ロボットが脚リンク群(特に接地脚)を伸ばして歩行することを可能とする技術を提供する。
このロボットは、歩容データをさらに修正して用いる。そのために、補正した歩容データの体幹目標位置に基づいて、脚リンクの基端位置を特定する手段と、特定した基端位置を鉛直方向に移動する移動量及び向きを示す値であって、補正した歩容データの足先目標位置から移動後の基端位置までの距離を所定距離に等しくする鉛直移動量を計算する手段を備えている。これらの手段は、脚リンク毎に用意されている。さらに、脚リンク毎に計算した複数の鉛直移動量のなかから、鉛直下方に最大の移動を示す鉛直移動量を選択する手段と、補正した歩容データの体幹目標位置の鉛直座標を、選択手段で選択した鉛直移動量が示す移動量だけ、その鉛直移動量が示す向きへ鉛直方向に修正する手段を備えている。
本発明では、体幹目標位置の鉛直座標を鉛直方向に修正する手段を利用することから、事前に準備しておく歩容データでは脚リンクを伸ばしきらない歩行姿勢を記述しておく必要がなくされる。事前に準備しておいた歩容データに従うと脚リンク(特に接地脚)を伸ばしきることになる状態において、実際の歩行状態に基づいて補正した体幹目標位置や足先目標位置がさらに脚リンクを伸ばすことを要求する場合、従来の技術ではそれ以上に脚リンクを伸ばせないので対応不能となるのに対し、本発明では脚リンクの長さの不足を補うだけ体幹目標位置を鉛直下方に修正することができる。
上記のために、本発明では、補正した歩容データの体幹目標位置に基づいて脚リンクの基端位置を特定する手段を利用する。特定した基端位置と、補正した歩容データの足先目標位置の間の距離を計算する手段を利用する。後記の計算手段は、基端位置を鉛直方向に移動させた場合の基端と足先間の距離を計算することが可能であり、基端と足先間の距離が所定距離となるときの移動量及び向きを示す鉛直移動量を計算することができる。このとき、足先の位置は脚リンク先端の位置を一義的に示すことから、足先目標位置自体を計算に用いるようにしてもよいし、あるいは足先目標位置に基づいて脚リンクの先端位置を特定し、特定した先端位置を計算に用いるようにしてもよい。
この所定距離を、有限な長さを持つ脚リンクで実現可能な距離としておけば、修正された歩容データに従って歩行することが可能となる。事前に準備しておく歩容データでは脚リンクを伸ばしきらない歩行姿勢を記述しておく必要がなくなる。
このロボットでは、脚リンク毎に計算した複数の鉛直移動量のなかから、鉛直下方に最大の移動を示す鉛直移動量を選択し、補正後の歩容データが記述している体幹目標位置の鉛直座標を、選択した鉛直移動量が示す移動量だけ、その鉛直移動量が示す向きへ鉛直方向に修正する。それにより、すべての脚リンクにとって実現可能な歩容データに修正することができる。なお、脚リンクの長さからすると基端を不必要に大きく鉛直下方に修正する脚リンクが登場することになるが、それに対しては脚リンクを曲げることで対応することができる。
鉛直方向に体幹目標位置を修正すると、ZMPが目標ZMPからずれる恐れがあるが、体幹目標位置を鉛直方向に移動させることによってZMPが変化する変化量は小さく、実際には問題とならない。
この脚式ロボットでは、脚リンク群(特に接地脚)を曲げて歩行する歩容データを事前に準備しておく必要がなく、脚リンク群を自然に伸ばして歩行することができる。
そして、事前に準備されている歩容データの体幹目標位置から特定される基端位置と、事前に準備されている歩容データの足先目標位置から、両者間の距離を計算する手段を備えていることが好ましい。この手段は、脚リンク毎に脚リンクの基端と足先間の距離を計算する。
その上で、鉛直移動量計算手段では、前記の距離計算手段で計算した距離を所定距離として鉛直移動量を計算することが好ましい。
このロボットでは、修正後の歩容データで規定される脚リンクの基端と足先間の距離が、事前に準備しておく歩容データで規定される基端と足先間の距離に近い値となる。それにより、事前に準備しておく歩容データを作成したオペレータ等が意図している歩行姿勢を保ちながら歩行することができる。
体幹位置を鉛直上方に移動するように修正すると、ロボットの歩行動作に不自然さが発現することがある。このロボットでは、補正された歩容データの体幹目標位置を修正する際に、鉛直上方に修正することを禁止し、鉛直下方にのみ修正する。それにより、脚式ロボットは、より自然に足を伸ばしながら歩行することができる。
この場合、事前に準備しておく歩容データでは、脚リンクを伸ばしきって歩行するレベルに体幹目標位置の鉛直座標を設定しておいてもよい。鉛直下方に修正する機会が多く、鉛直上方に修正する機会が少ないようにしておくことができる。
この歩行制御方法は、ロボットに予定している歩行を記述する歩容データを事前に準備しておく工程と、事前に準備しておいた歩容データを実際の歩行状態に基づいて補正する工程を備えている。
この歩行制御方法では、歩容データをさらに修正して用いる。そのために、補正した歩容データの体幹目標位置に基づいて、脚リンクの基端位置を特定する工程と、特定した基端位置を鉛直方向に移動する移動量及び向きを示す値であって、補正した歩容データの足先目標位置から移動後の基端位置までの距離を所定距離に等しくする鉛直移動量を計算する工程を備えている。これらの工程では、脚リンク毎に計算する。さらに、脚リンク毎に計算した複数の鉛直移動量のなかから鉛直下方に最大の移動を示す鉛直移動量を選択する工程と、補正した歩容データの体幹目標位置の鉛直座標を選択工程で選択した鉛直移動量が示す移動量だけ、その鉛直移動量が示す向きへ鉛直方向に修正する工程と、修正した歩容データを脚式ロボットの関節角群計算装置に教示する工程を備えている。
この歩行制御方法によると、脚リンク群(特に接地脚)を無用に曲げて歩行する歩容データを事前に準備しておく必要がなくなる。脚式ロボットは脚リンク群を自然に伸ばしながら歩行することができる。
この歩容データの作成装置は、脚リンク毎に足先位置の経時的変化を記述する足先目標位置データを記憶しておく手段と、その足先目標位置データに追従して歩行することを可能とする体幹目標位置を仮定する手段を備えている。
仮定した体幹目標位置を修正するために、仮定した体幹目標位置に基づいて脚リンクの基端位置を特定する手段と、特定した基端位置を鉛直方向に移動する移動量及び向きを示す値であって、記憶している足先目標位置から移動後の基端位置までの距離を所定距離に等しくする鉛直移動量を計算する手段を備えている。これらの手段は、脚リンク毎に用意されている。
さらに、脚リンク毎に計算した複数の鉛直移動量のなかから、鉛直下方に最大の移動を示す鉛直移動量を選択する手段と、作成しておいた体幹目標位置の鉛直座標を、選択手段で選択した鉛直移動量が示す移動量だけ、その鉛直移動量が示す向きへ鉛直方向に修正する手段を備えている。
そして、修正した体幹目標位置が、記憶している足先目標位置データに追従して歩行することを可能とする位置でなければ、体幹位置の経時的変化を再び仮定する手段を備えている。
この装置では、最初に仮定した体幹目標位置に基づいて脚リンクの基端位置を特定する。さらに、特定した基端位置を鉛直方向に移動したときに、鉛直方向に移動した基端位置と、記憶している足先目標位置の間の距離が、所定距離となるときの鉛直移動量を計算する。この鉛直移動量は、脚リンク毎に計算される。
この装置では、脚リンク毎に計算した鉛直移動量から、鉛直下方に最大の移動量を選択し、仮定した体幹目標位置の鉛直座標を、選択した鉛直移動量だけ鉛直方向に修正する。これによって、すべての脚リンクの長さに関して、実現可能な体幹目標位置に修正することができる。
この装置では、修正した体幹目標位置が、記憶している足先目標位置データに追従して歩行することを可能とする位置でなければ、体幹位置の経時的変化を新たに仮定する。新たに仮定された体幹目標位置は、上記の処理によって再び鉛直座標が修正される。体幹位置の経時的変化を仮定し、仮定した体幹目標位置の鉛直座標を修正して、脚式ロボットが歩行することを可能とする体幹目標位置を探求する。導出される体幹目標位置は、脚リンクの長さに関して実現可能な位置となる。
この歩容データの作成装置では、仮定された体幹目標位置を修正する際に、体幹位置を鉛直方向に修正する。脚式ロボットの動的バランスを大きく変化させることなく、各脚リンクの基端と足先の間の距離を大きく変化させることができる。
この歩容データの作成装置によると、脚式ロボットが脚リンク群を自然に伸ばしながら歩行する歩容データを作成することができる。この歩容データの作成装置で作成する歩容データは、上述した脚式ロボットや脚式ロボットの歩行制御方法に有効に用いることができる。上述した脚式ロボットや脚式ロボットの歩行制御方法では、脚リンクを曲げた歩容データを必要とせず、脚リンク群を自然に伸ばしながら歩行する歩容データに対応することが可能だからである。
本発明の技術思想は、歩容データを事前に準備しておく段階で活用することもできれば、歩容データを修正しながら実際の歩行を制御する段階で活用することもできる。
そのためには、鉛直方向に修正した体幹目標位置を所定周期毎にサンプリングする手段と、サンプリングした体幹目標位置を連続曲線でなぞる平滑軌道を作成する手段と、作成した平滑軌道が修正した体幹目標位置よりも鉛直上方に位置する期間を特定する手段と、特定した期間に対応する修正した体幹目標位置を鉛直下向きに所定距離だけ再修正する手段と、再修正後の体幹目標位置を用いて平滑軌道を再度作成する手段をさらに備えていることが好ましい。
そこで、この歩容データの作成装置では、作成した平滑軌道が平滑化前の体幹目標位置よりも鉛直上方に位置する期間を特定する。特定された期間については、体幹目標位置を所定距離だけ鉛直下方にさらに修正する。その後に、平滑軌道を再度作成する。
以上の処理を繰り返すことによって、最初に算出した体幹目標位置よりも常に鉛直下方に位置する平滑軌道を得ることができる。脚リンクの長さからみて実現可能な平滑軌道が得られる。
この歩容データの作成方法は、脚リンク毎に足先位置の経時的変化を記述する足先目標位置データを記憶しておく工程と、その足先目標位置データに追従して歩行することを可能とする体幹目標位置を仮定する工程を備えている。
仮定した体幹目標位置を修正するために、仮定した体幹目標位置に基づいて脚リンクの基端位置を特定する工程と、特定した基端位置を鉛直方向に移動する移動量及び向きを示す値であって、記憶している足先目標位置から移動後の基端位置までの距離を所定距離に等しくする鉛直移動量を計算する工程を備えている。これらの工程は、脚リンク毎に実行される。
さらに、脚リンク毎に計算した複数の鉛直移動量のなかから、鉛直下方に最大の移動を示す鉛直移動量を選択する工程と、仮定した体幹目標位置の鉛直座標を、選択工程で選択した鉛直移動量が示す移動量だけ、その鉛直移動量が示す向きへ鉛直方向に修正する工程を備えている。
そして、修正した体幹目標位置が、記憶している足先目標位置データに追従して歩行することを可能とする位置でなければ、体幹位置の経時的変化を再び仮定する工程を備えている。
(形態1) ロボットは、事前に準備された歩容データの体幹目標位置を、実際の歩行状態に基づいて補正する歩容データの補正装置を備えている。
(形態2) ロボットが備える歩容データの補正装置は、事前に準備された歩容データの体幹目標位置を、水平方向に移動した位置に補正する。
(形態3) 歩容データの作成装置は、仮定した体幹目標位置が、与えられた足先目標位置の経時的変化に追従して歩行することを可能とする位置であるか否かを判別する装置を備えている。
図1に本実施例の二足歩行ロボット(以下、単にロボットと記す)6を示す。図1に示すように、ロボット6は、体幹12と、体幹12に対して揺動可能に接続されている左脚リンク30と右脚リンク40を備えている。またロボット6は、体幹12に対して揺動可能に接続されている左腕リンク16と右腕リンク18と頭部20等を供えている。
図1に示すように、左脚リンク30は、左大腿部32と、左下腿部36と、左大腿部32と左下腿部36を連結している左膝関節34を備えている。左膝関節34は、1軸回りに自由度を持つ関節である。左脚リンク30の基端は左股関節31を介して体幹12に連結されている。左脚リンク30の先端には左足首関節37を介して左足(左足先)38が連結されている。左股関節31は3軸回りに自由度を持つ関節であり、左足首関節37は2軸回りに自由度を持つ関節である。
右脚リンク40は、左脚リンク30と鏡面対称の関係となるように構成されている。右脚リンク40に関して、図1に右股関節41、右大腿部42、右膝関節44、右下腿部46、右足首関節47、右足(右足先)48が示されている。
ロボット6は、各関節を駆動するためのアクチュエータ群を備えている。アクチュエータ群は、後述する制御装置14によって制御される。
ロボット6は、ロボット6の実際の運動を検出するためのセンサ群を備えている。センサ群は、例えば各関節の関節角を検出するためのエンコーダや、体幹12等の運動を検出するための加速度センサ等である。センサ群の出力信号は、後述する制御装置14の処理に利用される。
本実施例では、図1に示すように、ロボット6の歩行方向をx軸とし、体側方向をy軸とし、高さ方向をz軸とする。xy平面は水平面であり、z軸方向は鉛直方向である。
ロボット6が利用する歩容データは、左足38の目標とする位置と姿勢の経時的変化を記述する左足目標位置データや、右足48の目標とする位置と姿勢の経時的変化を記述する右足目標位置データや、体幹12の目標とする位置と姿勢の経時的変化を記述する体幹目標位置データや、左右の腕先の目標とする位置と姿勢の経時的変化を記述する腕先目標位置データや、目標ZMPの経時的変化を記述している目標ZMPデータ等を備えている。
体幹目標位置データは、体幹12の位置を代表点Wの位置PW(xW,yW,zW)で記述し、体幹12の姿勢を体幹12の姿勢角(ロール角、ピッチ角、ヨー角)で記述している。左足目標位置データは、左足38の位置を代表点Lの位置PL(xL,yL,zL)で記述し、左足38の姿勢を左足38の姿勢角で記述している。右足目標位置データは、右足48の位置を代表点Rの位置PR(xR,yR,zR)で記述し、右足48の姿勢を右足48の姿勢角で記述している。位置や姿勢のデータは、経過時間とともに値を変える経時的データである。
制御装置14は、全体が物理的に1つの装置に含まれていてもよいし、物理的に分離された装置ごとに分けて収容されていてもよい。また制御装置14の各要素は、必ずしもロボット6に搭載されていなくてもよい。ロボット6外に配備され、ロボット6に無線又は有線で指示するようにしてもよい。
歩容データ補正装置112は、歩容データ記憶装置110が記憶している歩容データと、実際運動計算装置116から入力したロボット6の実際運動に基づいて、歩容データ記憶装置110から入力した歩容データを補正する。補正された歩容データは、体幹位置修正装置114と、関節角群計算装置118に入力される。ただし、補正後の体幹目標位置データについては、関節角群計算装置118には入力されず、体幹位置修正装置114のみに入力される。
体幹位置修正装置114は、歩容データ補正装置112によって補正された体幹12のz座標を、左脚リンク30と右脚リンク30の長さを考慮して修正する。体幹位置修正装置114の詳細については後述する。
関節角群計算装置118は、体幹目標位置データや左足38や右足48等の各部の目標位置データを入力し、入力した目標位置に基づいて、いわゆる逆キネマティクスを解くことでロボット6の各関節角θ1(t)、θ2(t)、θ3(t)、・・・を計算する装置である。計算された関節角群データは、アクチュエータ制御部114に入力される。
アクチュエータ制御装置120は、入力した関節角群データに基づいて、ロボット6に搭載されているアクチュエータ群を制御する装置である。アクチュエータ制御装置120がアクチュエータ群を制御することによって、ロボット6の機械系122が歩行動作を実施する。
実際運動計算装置116は、センサ群124の出力信号に基づいて、ロボット6の実際の運動を計算する。実際運動計算装置116は、例えば左足38の実際の運動や、右足48の実際の運動や、体幹12の実際の運動を計算することができる。実際運動計算装置116で計算されたロボット6の実際運動は、歩容データ補正装置112に入力される。
先に説明したように、歩容データ補正装置112は、実際運動計算装置116で計算されたロボット6の実際運動に基づいて、歩容データ記憶装置110に記憶されている歩容データを補正する。制御装置14は、ロボット6の実際の運動に基づいてフィードバックしながら、ロボット6の歩行動作を制御する。
歩容データ補正装置112は、体幹12の目標位置を補正する際に、補正前の体幹12の目標位置を水平面内で移動させるように補正する。即ち、体幹目標位置のz座標は固定されている。
ロボット6のような歩行ロボットでは、体幹12の位置を水平方向に移動するとZMPの位置がよく移動する。それに対して体幹12の位置を鉛直方向に移動してもZMPの位置はあまり移動しない。そのことから、体幹目標位置を水平方向にのみ補正しても、ZMPが目標ZMPに一致するように体幹目標位置を補正することができる。
なお、ロボット6が実際の歩行状況に基づいて歩容データを補正する方法は、上記の方法に限定されるものではない。例えばロボット6がカメラを搭載し、前方の歩行面の凹凸を予め検出しながら、歩容データを補正してもよい。ロボット6は、指示された歩容データを実際の状況に応じて補正する様々な方法を採用することができる。
図4を参照して、左脚指示位置計算装置142の処理を説明する。図4は、歩容データ記憶装置110に記憶されている歩容データに従うときのロボット6を模式的に示している。図4に示すように、歩容データ記憶装置110に記憶されている歩容データが示す体幹12の目標位置をPw0とする。体幹12の目標とする姿勢をDw0(例えばロール角、ピッチ角、ヨー角を記述する行列)とする。左足38の目標とする位置をPL0とする。左足38の目標とする姿勢をDL0とする。右足48の目標とする位置をPR0とする。右足48の目標とする姿勢をDR0とする。
左脚指示位置計算装置142は、体幹12の目標位置Pw0と体幹12の目標姿勢Dw0と、予め記憶している体幹12の代表点Wと左股関節31との相対的な位置関係に基づいて、左股関節31の位置を求める。左股関節31の位置は、左脚リンク30の体幹12側の基端の位置でもある。また左脚指示位置計算装置142は、左足38の目標位置PL0と左足38の目標姿勢DL0と、予め記憶している左足38の代表点Lと左足首関節37との相対的な位置関係に基づいて、左足首関節37の位置を求める。左足首関節37の位置は、左脚リンク30の左足38側の基端の位置でもある。そして、左足首関節37の位置から左股関節31の位置へと向かうベクトルHL0=(xL0、yL0、zL0)を求める。
図5を参照して、左脚補正位置計算装置144の処理を説明する。図5は、歩容データ補正装置112による補正後の歩容データに従うときのロボット6を模式的に示している。補正後の歩容データが示す体幹12の目標位置をPw1とする。体幹12の目標とする姿勢をDw1とする。左足38の目標とする位置をPL1とする。左足38の目標とする姿勢をDL1とする。右足48の目標とする位置をPR1とする。右足48の目標とする姿勢をDR1とする。歩容データ補正装置112は、歩容データを補正する際に、体幹12の目標位置を水平方向に移動した位置に補正することから、補正後の体幹12の目標位置Pw1は、補正前の体幹12の目標位置Pw0を水平方向に移動した位置となる。
左脚指示位置計算装置142は、体幹12の目標位置Pw1と体幹12の目標姿勢Dw1と、予め記憶している体幹12の代表点Wと左股関節31との相対的な位置関係に基づいて、左股関節31の位置を求める。また左脚指示位置計算装置142は、左足38の目標位置PL0と左足38の目標姿勢DL0と、予め記憶している左足38の代表点Lと左足首関節37との相対的な位置関係に基づいて、左足首関節股37の位置を求める。そして、左足首関節37の位置から左股関節31の位置へと向かうベクトルHL1=(xL1、yL1、zL1)を求める。なお、ここではzL1=zL0となる。
本実施例のロボット6は、歩容データを補正する段階では、左脚リンク30の最大長さの制約から実際には実現できない歩容データに補正することを許容する。換言すれば、事前に準備しておく歩容データが示す左足首関節37と左股関節31の距離の上限を、左脚リンク30の最大長さに略等しく設定してことが可能である。
ΔzL=−zL1+(|HL0|2−(xL1)2−(yL1)2)1/2
と計算することができる。ここで、
|HL0|2=(xL0)2+(yL0)2+(zL0)2
である。ΔzLは正負の符合を持つ値であり、ΔzLが正の値であるときは、z軸の正方向(鉛直上向き)への修正を示す。
図7は、補正後の歩容データが記述する体幹の目標位置Pw1を、計算した修正量ΔzLだけ鉛直方向に修正した位置Pw2を示している。体幹12が位置Pw2に位置する場合、左足首関節37に対する左股関節31の相対位置は、図6に示したベクトルHL2に等しくなる。即ち、左足首関節37と左股関節31の距離が、補正前の歩容データが示す左足首関節37と左股関節31の距離に等しい状態であって、左脚リンク30に関して実現可能な距離となる。従って、補正後の歩容データが記述する体幹12の目標位置PW1を、修正量ΔzLだけ鉛直方向に修正することによって、補正後の歩容データを左脚リンク30の長さに対して実現可能な歩容データに修正することができる。
左体幹修正量計算装置152は、修正量ΔzLを計算する際に、歩容データから計算される足首関節37と左股関節31の距離|HL0|にかえて、左脚リンク30の最大長さを超えない所定値を用いることもできる。左脚リンク30の最大長さとは、左脚リンク30が実現できる両端間の最大距離を意味する。即ち、左膝関節34を伸ばしたときの左脚リンク30の長さを意味する。
右脚補正位置計算装置148は、左脚補正位置計算装置144と略同様の処理によって、補正後の歩容データが示す右足首関節47に対する右股関節41の相対的な位置関係を計算する。
右体幹修正量計算装置154は、左体幹修正量計算装置152と略同様に処理によって、右脚リンクに関する修正量ΔzRを計算する。
体幹高さ抽出装置158は、歩容データ補正装置112による補正後の歩容データが記述する体幹12の目標位置Pw1のz座標を抽出し、加算器162に入力する。
加算器162は、修正量決定装置156から入力した体幹修正量Δzと、体幹高さ抽出装置158から入力したz座標を加算した値を出力する。
体幹高さ書換装置164は、補正後の歩容データが記述する体幹12の目標位置Pw1のz座標を、加算器162から入力した値に書き換える。z座標が書き換えられた体幹12の目標位置は、関節角群計算装置118に入力される。
図3に示したように、左脚補正位置計算装置144は、補正した歩容データの体幹目標位置に基づいて、左股関節(左基端)位置を特定する。左脚補正位置計算装置144は、補正した歩容データの左足先目標位置に基づいて、左足首関節37の位置も特定する。
左体幹修正量計算装置152は、左脚補正位置計算装置144が特定した左基端位置を鉛直方向に移動したときに、歩容データ補正装置112が補正した歩容データによるときの足先目標位置(左足首関節の位置に置き換えてもよい)からの距離が所定距離となるときの鉛直移動量を計算する。
そこで利用する所定距離は、歩容データ記憶装置110に記憶されている事前に準備された歩容データによるときの、左股関節31と左足首関節37の距離であってもよいし、左膝関節34を伸ばしたときの左股関節31と左足首関節37の距離であってもよい。
右脚補正位置計算装置144と右体幹修正量計算装置152は、上記と同様にして、右脚リンクの鉛直移動量を計算する。
修正量決定装置156は、脚リンク毎に計算した鉛直移動量から、鉛直下方に最大の移動量を選択する。加算器162は、歩容データ補正装置112が補正した歩容データの体幹目標位置の鉛直方向座標を、修正量決定装置156が選択した鉛直移動量だけ鉛直下方に修正する。
上記に代えて、接地脚についてのみ鉛直移動量を計算するようにしてもよい。実際上は接地脚についての鉛直移動量の方が、遊脚についての鉛直移動量よりも、鉛直下方に向けて大きいことが多いことから、接地脚について鉛直移動量を計算することは、鉛直下方に最大の鉛直移動量を計算するのと数学的に同等の場合が多いからである。
ステップS2では、事前に準備された歩容データを歩容データ記憶装置110に記憶する。
ステップS4では、ロボット6が歩行制御を開始する。ロボット6は、以下に説明するステップS6からステップS14の処理を、所定の動作周期で繰り返し実行する。
ステップS6では、実際運動計算装置116が、ロボット6に搭載されている各種センサ124の出力に基づいて、ロボット6が実際に行っている運動を計算する。
ステップS8では、歩容データ補正装置112が、ステップS2で指示された歩容データを、ステップS6で計算されたロボット6の実際運動に基づいて補正する。歩容データ補正装置112は、体幹12の目標位置を補正する場合、指示された歩容データが記述する体幹12の目標位置を、水平面内で移動する位置に限定して補正する。
ステップS10では、体幹位置修正装置114が、歩容データ補正装置112による補正後の歩容データが記述する体幹12の目標位置(実際には高さ)の修正処理を行う。ステップS10で行う処理の詳細については後述する。
ステップS12では、関節角群記憶装置118が、ステップS8で補正された歩容データ(体幹12の高さ座標を除く)と、ステップS10で修正された体幹の目標高さ座標を入力し、いわゆる逆キネマティクスを解くことによってロボット6の各関節角θ1(t)、θ2(t)、θ3(t)・・・を計算する。
ステップS14では、アクチュエータ制御装置120が、ステップS12で計算された各関節角を入力し、ロボット6の各関節を動かすアクチュエータ群の動作を制御する。ロボット6は歩行動作を実施する。ロボット6に搭載されている各種センサ124から、ロボット6の実際の運動状態に応じた出力が実際運動計算装置116に入力される。このステップS14の処理が終わると、再びステップS4の処理に戻る。
ステップS32では、左脚指示位置計算装置142が、ステップS2で記憶された歩容データが示す左足首関節37と左股関節31の相対位置を計算する。詳しくは、左足首関節37に対する左股関節31の位置(図4に示すベクトルHL0)を計算する。
ステップS34では、左脚補正位置計算装置144が、ステップS8による補正後の歩容データが示す左足首関節37と左股関節31の相対位置を計算する。詳しくは、左足首関節37に対する左股関節31の位置(図5に示すベクトルHL1)を計算する。
ステップS36では、左体幹修正量計算装置152が、ステップS34で計算したベクトルHL1のz座標を修正したときに、修正後のベクトル(図6に示すベクトルHL2)の長さが、ステップS32で計算したベクトルHL0の長さと等しくなるときの修正量ΔzLを計算する。図7に示したように、歩容データ補正装置112による補正後の体幹12の目標位置PW1を鉛直方向に修正量ΔzLだけ修正すると、修正後の歩容データが示す左足首関節37と左股関節31の距離が、事前に準備された歩容データが示す左足首関節37と左股関節31の距離と等しくなる。即ち、修正後の歩容データが示す左脚リンク30の両端間距離と、事前に準備された歩容データが示す左脚リンク30の両端間距離が等しくなる。
ステップS40では、右脚補正位置計算装置148が、ステップS8による補正後の歩容データが示す右足首関節47と右股関節41の相対位置を計算する。詳しくは、右足首関節47に対する右股関節41の位置を計算する。
ステップS42では、右体幹修正量計算装置154が、ステップS40で計算したベクトルのz座標を修正したときに、修正後のベクトルの長さが、ステップS38で計算したベクトルの長さと等しくなるときの修正量ΔzRを計算する。
上記のステップS38〜S42は、ステップS32〜S36で左足リンク30に関して行った処理を、右脚リンク40に関して同様に行うものである。
ステップS46では、ステップS44で選択した修正量が正の値であれば、選択した修正量をゼロに変更する。即ち、選択した修正量が鉛直上向きに修正することを示す修正量であれば、修正量をゼロに変更する。即ち、左右の脚リンクに関する修正量がともに正であり、鉛直下方に向く修正量が計算されない場合には、ゼロを選択するのである。
ステップS48では、ステップS8による補正後の歩容データが記述する体幹12の目標位置の高さ座標を、ステップS44、S46で決定した修正量だけ、鉛直下向きに修正する。
ロボット6は、補正後の歩容データを左右の脚リンク30、40の長さを考慮して修正する際に、体幹12の目標位置を鉛直下方に移動させた位置に修正する。ロボット6では、体幹の位置を鉛直方向に移動しても、特に鉛直下方に移動しても、ZPMの位置はさほど移動しないことから、この修正処理によってロボット6がバランスを崩すこともない。
記憶装置210は、オペレータ等が指示した各種のデータを記憶する。記憶装置210は、左足目標位置データ202と、右足目標位置データ204と、体幹初期位置データ206と、目標ZMPデータ207と、ロボット6の諸元を記述しているロボット諸元データ208等を記憶することができる。目標位置データ202、204、体幹初期位置データ206、目標ZMPデータ207は、経過時間とともに座標を変える経時的データである。これらのデータは、オペレータ等によって予め作成される。
図11を参照して、記憶装置210が記憶しているデータについて説明する。左足目標位置データ202は、左足38が接地位置38a、38b、38c・・を順に移動するときの左足38の位置の経時的変化(軌道)を記述している。右足目標位置データ204は、右足48が接地位置48a、48b、48c・・を順に移動するときの右足48の位置の経時的変化(軌道)を記述している。体幹初期位置データ206は、体幹12の代表点Wの経時的な目標位置の経時的変化を記述しており、図11に示す軌道PWA(t)を記述している。体幹12の軌道PWA(t)は、z方向の高さ位置が、ロボット6が直立したときの体幹12の代表点Wの高さ位置zAに固定されている。即ち、軌道PWA(t)は、z座標がzAである水平面上の軌道を示す。本実施例の歩容データの作成装置200は、体幹初期位置データ206が記述している体幹目標位置を初期値として、以下に説明する処理を実施する。目標ZMPデータ207は、図11に示す軌道ZMP(t)を記述している。
体幹初期位置データ206が記述している体幹12の目標位置は、左右の脚リンク30、40の長さを考慮すると、ロボット6にとって実現不可能な位置となりうることがある。歩容データの作成装置200では、この段階において、体幹初期位置データ206が記述している体幹12の目標位置が、ロボット6にとって実現不可能な位置であることを許容する。
ここで、体幹初期位置データ206(軌道PWA(t))を作成する方法を例示しておく。第1に、左足目標位置データ202が記述する左足38の接地位置38a、38b、38c・・と、右足目標位置データ204が記述する右足48の接地位置48a、48b、48c・・に基づいて、目標とするZMPの軌道ZMP(t)を計算する。次に、ロボット諸元データ208を用いて、ロボット6が直立した場合の体幹12の代表点Wの高さ位置zAを計算する。次に、体幹位置12の代表点Wの高さ位置(z座標)を座標zAに固定し、計算した目標ZMPの軌道ZMP(t)を満たす体幹12の代表点Wの軌道PWA(t):(x(t),y(t),zA)を解析計算する。この水平面内の軌道PWA(t)を記述するデータが、体幹初期位置データ206である。体幹初期位置データ206は、従来の歩容データの作成装置を用いて作成することができる。
体幹初期位置データは、必ずしも目標ZMPを正確に満足する体幹目標位置を記述している必要はなく、概算して求めた位置でもよい。また、ロボット6が直立したときの代表点Wの高さ位置zAにかえて、他の高さ位置の軌道を記述するものでもよい。また、必ずしも水平面内に固定された軌道データを記述していなくてもよい。
平滑軌道データ作成装置216は、体幹軌道データ作成装置214が作成した体幹軌道データが記述する体幹12の鉛直方向の目標軌道を、微分可能な連続曲線を描く平滑な軌道に修正した平滑軌道データを作成する。平滑軌道データ作成装置216は、サンプリングデータ作成部222と、曲線補完部224と、データ比較部226と、サンプリングデータ修正部228等を備えている。
体幹位置仮定装置212は、体幹12の目標位置を仮定する装置である。体幹位置仮定装置212は、体幹目標位置を仮定する際に、体幹初期位置データ206に記述されている体幹12の目標位置を、仮定する体幹目標位置の初期値として用いる。
左脚位置計算装置242は、記憶装置210から左足目標位置データ202とロボット諸元データ208を入力し、体幹位置仮定装置212から体幹12の仮定された目標位置を入力する。左脚位置計算装置242は、まずロボット諸元データ208を利用して、体幹12の代表点Wと左股関節31の相対位置を把握する。次いで、把握した代表点Wと左股関節31の相対位置と、体幹位置仮定装置212で仮定された体幹12の目標位置から、体幹12が仮定された目標位置にあるときの左股関節31の位置を計算する。また左脚位置計算装置242は、ロボット諸元データ208を利用して、左足38の代表点Lと左足首関節37の相対位置を把握する。次いで、把握した代表点Lと左足首関節37の相対位置と、左足目標位置データ202が記述している左足38の目標位置から、左足38が左足目標位置データ202に従って運動するときの左足首関節37の位置を計算する。左脚位置計算装置242は、計算した左股関節31の位置と計算した左足首関節37の位置から、左股関節31に対する左足首関節37の相対位置を計算する。即ち、脚位置計算装置242は、図5に示すベクトルHL1に相当するベクトル(以下、相当ベクトルHL1ということがある)を計算する。相当ベクトルHL1は経時的に変化することから、時刻(歩行時間)の関数となる。
左修正量計算装置246は、まずロボット諸元データ208を利用して、左脚リンク30の最大長さを計算する。左脚リンク30の最大長さを、図6に示すベクトルHL0の長さに対応させると理解しやすい。次いで、左脚位置計算装置242が計算した相当ベクトルHL1のz方向成分を修正したときに、その修正後のベクトル(図6のベクトルHL2に相当する)の長さが、計算した左脚リンク30の最大長さに等しくなるときの、修正量(図6の修正量ΔzLに相当する)を計算する。この修正量は経時的に変化することから、時刻(歩行時間)の関数となる。
右修正量計算装置248は、左修正量計算装置246と略同様に処理によって、右脚リンク40に関する修正量を計算する。
修正量決定装置250は、左修正量計算装置246と右修正量計算装置248のそれぞれで計算された修正量を入力し、小さい方の修正量(鉛直上方を正とする)を体幹修正量Δzに採用する。即ち、鉛直下方に向けて大きい方の修正量を採用する。
体幹高さ修正装置251は、体幹位置仮定装置212で仮定された体幹12の目標位置の高さ位置(z座標)を、修正量決定装置250で決定された修正量だけ、修正する。
ZMP計算装置252は、記憶装置210に記憶されているデータと、体幹高さ修正装置251で修正された体幹12の目標位置に基づいて、ロボット6のZMPを計算する。そして、計算したZMPと、目標ZMPデータ207が記述している目標ZMPとを比較し、その偏差を計算する。計算した偏差が所定値以下であれば、体幹高さ修正装置251から入力した体幹12の目標位置を、体幹軌道データ記憶装置254に教示する。体幹軌道データ記憶装置254は、教示された体幹12の目標位置を記憶する。一方、計算した偏差が所定値よりも大きいときは、体幹高さ修正装置251から入力した体幹12の目標位置を、計算した偏差とともに、体幹位置仮定装置212に教示する。
体幹位置仮定装置212は、ZMP計算装置252から、体幹12の目標位置とZMPに関する偏差を入力すると、体幹12の目標位置を再び仮定する。体幹位置仮定装置212が新たに仮定する体幹12の目標位置は、入力したZMPに関する偏差に基づいて、入力した体幹12の目標位置を水平方向に移動した位置である。
体幹位置仮定装置212が新たに仮定した体幹12の目標位置は、再び左脚位置計算装置242と右脚位置計算装置242に入力される。新たに仮定された体幹12の目標位置は、再びz座標が修正され、目標ZMPを満足するか否かが判別される。以上の処理が繰り返されることによって、目標ZMPを満足するとともに左右の脚リンク30、40の長さに関して実現可能な体幹12の目標位置が、体幹軌道データ記憶装置254に記憶される。
体幹軌道データ作成装置214は、体幹初期位置データ206に経時的に記述されているすべての体幹目標位置に対して上述の処理を繰り返す。その結果、体幹軌道データ記憶装置254には、目標ZMPを満足するとともに左右の脚リンク30、40の長さに関して実現可能な体幹軌道PWB(t)を記述する体幹軌道データが記憶される。
そこで、本実施例の歩容データの作成装置200では、平滑軌道データ作成装置216用意されている。
図13に示すように、平滑軌道データ作成装置216のサンプリングデータ作成部222は、入力した体幹軌道データPWB(t)が記述する鉛直方向の軌道zB(t)から、1歩時間ΔTの略4分の1の周期毎の軌道点SP1、SP2、SP3、・・・をサンプリングし、軌道点SP1、SP2、SP3、・・・を記述するサンプリングデータを作成する。
図14に示すように、平滑軌道データ作成装置216の曲線補完部224は、サンプリングデータ作成部222が作成したサンプリングデータを入力し、サンプリングデータが記述する軌道点SP1、SP2、SP3、・・・を曲線で補完した補完曲線zE(t)を作成する。詳しくは、まず軌道点SP1、SP2、SP3、・・・を直線で連結した補完屈折線zC(t)を作成し、補完屈折線zC(t)に対して移動平均処理を行うことで、補完曲線zE(t)を作成する。補完曲線zE(t)は、軌道点SP1、SP2、SP3、・・・を微分可能な連続曲線でなぞる軌道である。図14に示すように、補完曲線zE(t)は、軌道点SP1、SP2、SP3、・・・を通るとは限らない。なお、補完曲線zE(t)の作成方法は、この方法に限定されず、様々な近似曲線の作成方法を用いることができる。
サンプリングデータ修正部228は、データ比較部226から指示された期間を画定している軌道点をサンプリングデータから抽出し、抽出した軌道点の位置を所定距離だけ鉛直下方に修正する。例えば図14に示す区間Mが指示された場合では、軌道点SP3を修正軌道点SQ3に修正し、軌道点SP4の位置を修正軌道点SQ4に修正にする。
サンプリングデータ修正部228によってサンプリングデータが修正されると、再び曲線補完部224が補完曲線を作成する。曲線補完部224が再作成した補完曲線は、データ比較部226によって軌道zB(t)と再び比較される。再作成した補完曲線が軌道zB(t)よりも再び上方に位置していれば、サンプリングデータ修正部228がサンプリングデータを再び修正する。
平滑軌道データ作成装置216は、上記の処理を繰り返すことによって、図15に示す平滑鉛直軌道zD(t)を作成する。図15に示すSQ1〜SQ9は、サンプリングデータ修正部228によって修正された修正軌道点である。平滑鉛直軌道zD(t)は、体幹軌道データPWB(t)が記述する鉛直方向の軌道zB(t)よりも、常に鉛直下方に位置している。
平滑軌道データ作成装置216は、体幹軌道データPWB(t)が記述している鉛直方向の軌道zB(t)を、作成した平滑鉛直軌道zD(t)に書き換えることによって、平滑軌道データを作成する。
平滑軌道データは、体幹軌道データ作成装置214で作成した体幹軌道データPWB(t)に対して、体幹12の目標位置が鉛直方向に移動されている。それにより、平滑軌道データから計算されるZMPの位置は、目標ZMPの位置に対して偏差を生じている。体幹12の鉛直方向の移動はZMPの位置の変化に影響が少ないことから、この偏差はさほど大きくなく、ロボット6は平滑軌道データを用いて歩行することができる。
本明細書または図面に説明した技術要素は、単独であるいは各種の組み合わせによって技術的有用性を発揮するものであり、出願時請求項記載の組み合わせに限定されるものではない。また、本明細書または図面に例示した技術は複数目的を同時に達成するものであり、そのうちの一つの目的を達成すること自体で技術的有用性を持つものである。
12:体幹
14:制御装置
16:左腕リンク
18:右腕リンク
20:頭部
30:左脚リンク
31:左股関節
32:左大腿部
34:左膝関節
36:左下腿部
37:左足首関節
40:右脚リンク
41:右股関節
42:右大腿部
44:右膝関節
46:右下腿部
47:右足首関節
110:歩容データ記憶装置
112:歩容データ補正装置
114:体幹位置修正装置
116:実際運動計算装置
118:関節角群計算装置
120:アクチュエータ制御装置
122:ロボットの機械系
124:各種センサ
142:左脚指示位置計算装置
144:左脚補正位置計算装置
146:右脚指示位置計算装置
148:右脚補正位置計算装置
152:左体幹修正量計算装置
154:右体幹修正量計算装置
156:修正量決定装置
158:体幹高さ抽出装置
164:体幹高さ書換装置
200:歩容データの作成装置
210:記憶装置
212:体幹位置仮定装置
214:体幹軌道データ作成装置
216:平滑軌道データ作成装置
222:サンプリングデータ作成部
224:曲線補完部
226:データ比較部
228:サンプリングデータ修正部
242:左脚位置計算装置
244:右脚位置計算装置
246:左修正量計算装置
248:右修正量計算装置
250:修正量決定装置
251:体幹高さ修正装置
252:ZMP計算装置
254:体幹軌道データ記憶装置
Claims (8)
- 体幹と、
基端が体幹に揺動可能に連結されており、先端に足先を備えている複数の脚リンクと、
事前に準備されている歩容データを、実際の歩行状態に基づいて補正する手段と、
脚リンク毎に、補正した歩容データの体幹目標位置に基づいて、基端位置を特定する手段と、
脚リンク毎に、特定した基端位置を鉛直方向に移動する移動量及び向きを示す値であって、補正した歩容データの足先目標位置から移動後の基端位置までの距離を所定距離に等しくする鉛直移動量を計算する手段と、
脚リンク毎に計算した複数の鉛直移動量のなかから、鉛直下方に最大の移動を示す鉛直移動量を選択する手段と、
補正した歩容データの体幹目標位置の鉛直座標を、選択手段で選択した鉛直移動量が示す移動量だけ、その鉛直移動量が示す向きへ鉛直方向に修正する手段と、
を備える脚式ロボット。 - 脚リンク毎に、事前に準備されている歩容データの体幹目標位置から特定される基端位置と、事前に準備されている歩容データの足先目標位置から、両者間の距離を計算する手段をさらに備え、
前記の鉛直移動量計算手段は、前記の距離計算手段で計算した距離を前記所定距離とすることを特徴とする請求項1の脚式ロボット。 - 前記選択手段は、脚リンク毎に計算した複数の鉛直移動量のなかに、鉛直下方への移動を示す鉛直移動量が存在しなければ、ゼロを選択することを特徴とする請求項1又は2の脚式ロボット。
- 基端が体幹に揺動可能に連結されているとともに先端に足先を備えている複数の脚リンクを備えているロボットに予定している歩行を記述する歩容データを事前に準備しておく工程と、
事前に準備しておいた歩容データを、実際の歩行状態に基づいて補正する工程と、
脚リンク毎に、補正した歩容データの体幹目標位置に基づいて、基端位置を特定する工程と、
脚リンク毎に、特定した基端位置を鉛直方向に移動する移動量及び向きを示す値であって、補正した歩容データの足先目標位置から移動後の基端位置までの距離を所定距離に等しくする鉛直移動量を計算する工程と、
脚リンク毎に計算した複数の鉛直移動量のなかから、鉛直下方に最大の移動を示す鉛直移動量を選択する工程と、
補正した歩容データの体幹目標位置の鉛直座標を、選択工程で選択した鉛直移動量が示す移動量だけ、その鉛直移動量が示す向きへ鉛直方向に修正する工程と、
修正した歩容データを脚式ロボットの関節角群計算装置に教示する工程と、
を備える脚式ロボットの歩行制御方法。 - 基端が体幹に揺動可能に連結されているとともに先端に足先を備えている複数の脚リンクを備えているロボットの脚リンク毎に、足先位置の経時的変化を記述する足先目標位置データを記憶しておく手段と、
その足先目標位置データに追従して歩行することを可能とする体幹位置の経時的変化を仮定する手段と、
脚リンク毎に、仮定した体幹目標位置に基づいて、基端位置を特定する手段と、
脚リンク毎に、特定した基端位置を鉛直方向に移動する移動量及び向きを示す値であって、記憶している足先目標位置から移動後の基端位置までの距離を所定距離に等しくする鉛直移動量を計算する手段と、
脚リンク毎に計算された複数の鉛直移動量のなかから、鉛直下方に最大の移動を示す鉛直移動量を選択する手段と、
仮定した体幹目標位置の鉛直座標を、選択手段で選択した鉛直移動量が示す移動量だけ、その鉛直移動量が示す向きへ鉛直方向に修正する手段と、
修正した体幹目標位置が、記憶している足先目標位置データに追従して歩行することを可能とする位置でなければ、体幹位置の経時的変化を再び仮定する手段と、
を備える歩容データの作成装置。 - 前記の鉛直移動量計算手段は、脚リンクの最大長さを前記所定距離とすることを特徴とする請求項5の歩容データの作成装置。
- 修正した体幹目標位置を所定周期毎にサンプリングする手段と、
サンプリングした体幹目標位置を連続曲線でなぞる平滑軌道を作成する手段と、
作成した平滑軌道が、修正した体幹目標位置よりも、鉛直上方に位置する期間を特定する手段と、
特定した期間に対応する修正した体幹目標位置を、鉛直下向きに所定距離だけ再修正する手段と、
再修正後の体幹目標位置を用いて、平滑軌道を再度作成する手段と、
をさらに備えることを特徴とする請求項5又は6の歩容データの作成装置。 - 基端が体幹に揺動可能に連結されているとともに先端に足先を備えている複数の脚リンクを備えているロボットの脚リンク毎に、足先位置の経時的変化を記述する足先目標位置データを用意して記憶しておく工程と、
その足先目標位置データに追従して歩行することを可能とする体幹位置の経時的変化を仮定する工程と、
脚リンク毎に、仮定した体幹目標位置に基づいて、基端位置を特定する工程と、
脚リンク毎に、特定した基端位置を鉛直方向に移動する移動量及び向きを示す値であって、記憶している足先目標位置から移動後の基端位置までの距離を所定距離に等しくする鉛直移動量を計算する工程と、
脚リンク毎に計算した複数の鉛直移動量のなかから、鉛直下方に最大の移動を示す鉛直移動量を選択する工程と、
仮定した体幹目標位置の鉛直座標を、選択工程で選択した鉛直移動量が示す移動量だけ、その鉛直移動量が示す向きへ鉛直方向に修正する工程と、
修正した体幹目標位置が、記憶している足先目標位置データに追従して歩行することを可能とする位置でなければ、体幹位置の経時的変化を再び仮定する工程と、
を備える歩容データの作成方法。
Priority Applications (4)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2004257671A JP4501601B2 (ja) | 2004-09-03 | 2004-09-03 | 脚式ロボットとその制御方法ならびに歩容データの作成装置と作成方法 |
US11/661,751 US20070267994A1 (en) | 2004-09-03 | 2005-09-05 | Legged Robot, Method for Controlling Legged Robot, and Device and Method for Generating Gait Data |
DE112005001917T DE112005001917T5 (de) | 2004-09-03 | 2005-09-05 | Roboter auf Beinen, Verfahren zur Steuerung eines Roboters auf Beinen und Vorrichtung und Verfahren zur Erzeugung von Gangdaten |
PCT/JP2005/016679 WO2006025616A1 (ja) | 2004-09-03 | 2005-09-05 | 脚式ロボットとその制御方法ならびに歩容データの作成装置と作成方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2004257671A JP4501601B2 (ja) | 2004-09-03 | 2004-09-03 | 脚式ロボットとその制御方法ならびに歩容データの作成装置と作成方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
JP2006068871A JP2006068871A (ja) | 2006-03-16 |
JP4501601B2 true JP4501601B2 (ja) | 2010-07-14 |
Family
ID=36000239
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2004257671A Expired - Fee Related JP4501601B2 (ja) | 2004-09-03 | 2004-09-03 | 脚式ロボットとその制御方法ならびに歩容データの作成装置と作成方法 |
Country Status (4)
Country | Link |
---|---|
US (1) | US20070267994A1 (ja) |
JP (1) | JP4501601B2 (ja) |
DE (1) | DE112005001917T5 (ja) |
WO (1) | WO2006025616A1 (ja) |
Families Citing this family (10)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
KR101464124B1 (ko) * | 2008-06-04 | 2014-11-20 | 삼성전자주식회사 | 로봇 및 그 보행제어방법 |
US8818553B2 (en) * | 2009-12-28 | 2014-08-26 | Honda Motor Co., Ltd. | Robot control device |
KR20120069333A (ko) * | 2010-12-20 | 2012-06-28 | 삼성전자주식회사 | 로봇의 보행 제어 장치 및 그 제어 방법 |
US9412010B2 (en) * | 2011-07-15 | 2016-08-09 | Panasonic Corporation | Posture estimation device, posture estimation method, and posture estimation program |
JP6228097B2 (ja) * | 2014-10-06 | 2017-11-08 | 本田技研工業株式会社 | 移動ロボット |
US10157260B2 (en) * | 2014-12-11 | 2018-12-18 | Honda Motor Co., Ltd. | Walking state estimating device and walking state estimating method |
WO2018151317A1 (ja) * | 2017-02-20 | 2018-08-23 | 友樹 橋本 | 多関節ロボットにおける動作教示・再現駆動システム及び動作教示・再現駆動方法 |
CN109987169B (zh) * | 2017-12-29 | 2021-01-08 | 深圳市优必选科技有限公司 | 双足机器人的步态控制方法、装置、终端设备及介质 |
CN110920769B (zh) * | 2019-11-28 | 2020-12-15 | 深圳市优必选科技股份有限公司 | 机器人的足腰协调步态规划方法、装置、介质及机器人 |
WO2023175751A1 (ja) * | 2022-03-16 | 2023-09-21 | 株式会社ソニー・インタラクティブエンタテインメント | 制御装置、制御方法およびプログラム |
Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2003136440A (ja) * | 2001-10-26 | 2003-05-14 | Tokai Univ | 移動ロボットの制動制御装置 |
JP2003231082A (ja) * | 2002-02-12 | 2003-08-19 | Univ Tokyo | バックラッシュクラッチおよびそれを具えたロボット用関節機構 |
JP2003231081A (ja) * | 2002-02-07 | 2003-08-19 | Univ Tokyo | 双腕ロボットの双腕肩関節機構および二足歩行ロボットの両足股関節機構 |
JP2004017248A (ja) * | 2002-06-19 | 2004-01-22 | Osaka Industrial Promotion Organization | ロボット及びロボット操作システム |
JP2005034984A (ja) * | 2003-07-03 | 2005-02-10 | Kansai Tlo Kk | 二足歩行ロボット |
Family Cites Families (20)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US5355064A (en) * | 1992-03-04 | 1994-10-11 | Honda Giken Kogyo Kabushiki Kaisha | Control system for legged mobile robot |
US5337235A (en) * | 1992-03-12 | 1994-08-09 | Honda Giken Kogyo Kabushiki Kaisha | Locomotion control system for legged mobiled robot |
JP3269852B2 (ja) * | 1992-05-29 | 2002-04-02 | 本田技研工業株式会社 | 脚式移動ロボットの姿勢安定化制御装置 |
US5808433A (en) * | 1995-09-29 | 1998-09-15 | Honda Giken Kogyo Kabushiki Kaisha | Method of generating gait of legged walking robot and system for controlling its locomotion |
JP3663034B2 (ja) * | 1996-07-25 | 2005-06-22 | 本田技研工業株式会社 | 脚式移動ロボットの歩容生成装置 |
WO1998004388A1 (fr) * | 1996-07-25 | 1998-02-05 | Honda Giken Kogyo Kabushiki Kaisha | Dispositif de reproduction de la demarche pour robot articule muni de jambes |
US5872893A (en) * | 1996-07-25 | 1999-02-16 | Honda Giken Kogyo Kabushiki Kaisha | Gait generation system of legged mobile robot |
DE69734835T2 (de) * | 1996-12-19 | 2006-07-20 | Honda Giken Kogyo K.K. | Haltungskontrolleur einen sich auf beinen bewegenden robotern |
JP3672426B2 (ja) * | 1996-12-19 | 2005-07-20 | 本田技研工業株式会社 | 脚式移動ロボットの姿勢制御装置 |
EP1514777B1 (en) * | 1997-01-31 | 2009-03-11 | Honda Giken Kogyo Kabushiki Kaisha | Control system of legged mobile robot |
JP3672406B2 (ja) * | 1997-01-31 | 2005-07-20 | 本田技研工業株式会社 | 脚式移動ロボットの歩容生成装置 |
JP3655056B2 (ja) * | 1997-08-04 | 2005-06-02 | 本田技研工業株式会社 | 脚式移動ロボットの制御装置 |
DE69943148D1 (de) * | 1998-04-20 | 2011-03-03 | Honda Motor Co Ltd | Steuereinheit für einen mit beinen beweglichen roboter |
CA2271498C (en) * | 1998-05-11 | 2007-01-09 | Honda Giken Kogyo Kabushiki Kaisha | Legged mobile robot |
JP2000153476A (ja) * | 1998-09-14 | 2000-06-06 | Honda Motor Co Ltd | 脚式移動ロボット |
JP3443077B2 (ja) * | 1999-09-20 | 2003-09-02 | ソニー株式会社 | ロボットの運動パターン生成装置及び運動パターン生成方法、並びにロボット |
JP3555107B2 (ja) * | 1999-11-24 | 2004-08-18 | ソニー株式会社 | 脚式移動ロボット及び脚式移動ロボットの動作制御方法 |
JP3615702B2 (ja) * | 1999-11-25 | 2005-02-02 | ソニー株式会社 | 脚式移動ロボットの動作制御装置及び動作制御方法、並びに、脚式移動ロボット |
TW499349B (en) * | 2000-11-17 | 2002-08-21 | Sony Corp | Legged mobile robot, leg structure of legged mobile robot, and mobile leg unit for legged mobile robot |
KR100837988B1 (ko) * | 2000-11-20 | 2008-06-13 | 소니 가부시끼 가이샤 | 각식 이동 로봇을 위한 동작 제어 장치 및 동작 제어방법, 및 로봇 장치 |
-
2004
- 2004-09-03 JP JP2004257671A patent/JP4501601B2/ja not_active Expired - Fee Related
-
2005
- 2005-09-05 DE DE112005001917T patent/DE112005001917T5/de not_active Ceased
- 2005-09-05 US US11/661,751 patent/US20070267994A1/en not_active Abandoned
- 2005-09-05 WO PCT/JP2005/016679 patent/WO2006025616A1/ja active Application Filing
Patent Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2003136440A (ja) * | 2001-10-26 | 2003-05-14 | Tokai Univ | 移動ロボットの制動制御装置 |
JP2003231081A (ja) * | 2002-02-07 | 2003-08-19 | Univ Tokyo | 双腕ロボットの双腕肩関節機構および二足歩行ロボットの両足股関節機構 |
JP2003231082A (ja) * | 2002-02-12 | 2003-08-19 | Univ Tokyo | バックラッシュクラッチおよびそれを具えたロボット用関節機構 |
JP2004017248A (ja) * | 2002-06-19 | 2004-01-22 | Osaka Industrial Promotion Organization | ロボット及びロボット操作システム |
JP2005034984A (ja) * | 2003-07-03 | 2005-02-10 | Kansai Tlo Kk | 二足歩行ロボット |
Also Published As
Publication number | Publication date |
---|---|
WO2006025616A1 (ja) | 2006-03-09 |
DE112005001917T5 (de) | 2007-07-26 |
US20070267994A1 (en) | 2007-11-22 |
JP2006068871A (ja) | 2006-03-16 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
JP4513320B2 (ja) | ロボット装置、並びにロボット装置の運動制御方法 | |
JP4812426B2 (ja) | ロボット制御装置 | |
US7805218B2 (en) | Robot device and control method of robot device | |
KR101029228B1 (ko) | 로봇과 그 제어 방법 | |
JP3972854B2 (ja) | ロボットの運動制御装置 | |
JP6823569B2 (ja) | 目標zmp軌道の生成装置 | |
JP3599244B2 (ja) | ロボット装置、ロボット装置の運動制御装置並びに運動制御方法 | |
JP4392037B2 (ja) | 脚式ロボット、及びその制御方法 | |
US20130079929A1 (en) | Robot and control method thereof | |
US20070267994A1 (en) | Legged Robot, Method for Controlling Legged Robot, and Device and Method for Generating Gait Data | |
JP4810880B2 (ja) | ロボットとその制御方法 | |
JP2024502726A (ja) | 外骨格を動かす方法 | |
JP4483254B2 (ja) | ロボット装置及びロボット装置の制御方法 | |
KR101760883B1 (ko) | 로봇 및 그 제어방법 | |
CN111572667A (zh) | 机器人的行走控制系统和控制方法 | |
US8761926B2 (en) | Apparatus and method for robot control | |
JP5035005B2 (ja) | 脚式ロボット、その制御方法、その制御システム | |
JP2007007803A (ja) | ロボットとその制御方法 | |
JP3674779B2 (ja) | 脚式移動ロボットのための動作制御装置及び動作制御方法、並びにロボット装置 | |
JP2003117858A (ja) | ロボットの歩行制御装置及び歩行制御方法 | |
JP3674787B2 (ja) | ロボット装置の動作制御装置及び動作制御方法、並びにコンピュータ・プログラム | |
JP4696727B2 (ja) | 歩容データの作成装置と作成方法 | |
JP4311159B2 (ja) | ロボットの歩容データ作成装置及びシステム | |
JP4583098B2 (ja) | ロボットの運動パターン作成用プログラム、並びに運動パターン作成装置及びそれを用いたロボット。 | |
JP4848686B2 (ja) | 脚式ロボットとその動作調節方法 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A621 | Written request for application examination |
Free format text: JAPANESE INTERMEDIATE CODE: A621 Effective date: 20061109 |
|
A131 | Notification of reasons for refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A131 Effective date: 20100112 |
|
A521 | Request for written amendment filed |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20100212 |
|
A131 | Notification of reasons for refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A131 Effective date: 20100302 |
|
A521 | Request for written amendment filed |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20100309 |
|
TRDD | Decision of grant or rejection written | ||
A01 | Written decision to grant a patent or to grant a registration (utility model) |
Free format text: JAPANESE INTERMEDIATE CODE: A01 Effective date: 20100330 |
|
A01 | Written decision to grant a patent or to grant a registration (utility model) |
Free format text: JAPANESE INTERMEDIATE CODE: A01 |
|
A61 | First payment of annual fees (during grant procedure) |
Free format text: JAPANESE INTERMEDIATE CODE: A61 Effective date: 20100412 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20130430 Year of fee payment: 3 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20130430 Year of fee payment: 3 |
|
LAPS | Cancellation because of no payment of annual fees |