JP3888293B2 - 2足歩行ロボットの目標zmp軌道算出装置 - Google Patents
2足歩行ロボットの目標zmp軌道算出装置 Download PDFInfo
- Publication number
- JP3888293B2 JP3888293B2 JP2002343039A JP2002343039A JP3888293B2 JP 3888293 B2 JP3888293 B2 JP 3888293B2 JP 2002343039 A JP2002343039 A JP 2002343039A JP 2002343039 A JP2002343039 A JP 2002343039A JP 3888293 B2 JP3888293 B2 JP 3888293B2
- Authority
- JP
- Japan
- Prior art keywords
- foot
- wire
- robot
- axis
- target zmp
- 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
Landscapes
- Manipulator (AREA)
Description
【発明の属する技術分野】
本発明は、2足で歩行するロボットを円滑に動作させて高速に歩行させる技術に関する。
【0002】
【従来の技術】
2足歩行ロボットの場合、ZMP(ゼロモーメントポイント:動的平衡点ともいう:ロボットが歩行するとロボットから路面に重力と歩行運動に伴って生じる慣性力が作用し、ロボットには路面からその反力が作用する。路面からロボットに作用する力によるモーメントがゼロになる点をZMPという)を接地面内に維持することによって、転倒を防止できる。
そこで、歩行時の接地面位置の時間的変化を考察し、時間的に変化する接地面位置に追従して変化する目標ZMPを設定し、歩行時に観測される実際ZMPが目標ZMPに一致するように制御することによって、ロボットが転倒しないで歩行することが可能となる。
【0003】
図1は、目標ZMPの設定方法を示している。この場合、ロボットはX方向に歩行する。歩行方向に直交する方向をY方向とする。ロボットは、両足接地期間と片足接地期間を交互に繰り返して歩行する。片足接地期間内の目標ZMPは、接地足の接地面内になければならない。さもなければ、実際ZMPを目標ZMPに一致させてもロボットは転倒してしまう。両足接地期間内の目標ZMPは、2つの接地面を結ぶ領域にあればよい。Y方向の現象を考察すると明らかに、両足が接地している期間内に、目標ZMPは左足接地面内から右足接地面内に移動しなければならない(傾斜線C2参照)。あるいは、右足接地面内から左足接地面内に移動しなければならない(傾斜線C4参照)。水平線C1は、左足のみが接地している場合の目標ZMPを示し、目標ZMPは左足接地面内に維持されている。水平線C3は、右足のみが接地している場合の目標ZMPを示し、目標ZMPは右足接地面内に維持されている。
【0004】
X方向の目標ZMPもほぼ同様の条件を満たす必要がある。水平線C6は、左足のみが接地している場合のX方向の目標ZMPを示し、X方向の目標ZMPは左足接地面内に維持されている。水平線C8は、右足のみが接地している場合のX方向の目標ZMPを示し、X方向の目標ZMPは右足接地面内に維持されている。両足が接地している期間内に、X方向の目標ZMPは左足接地面内から右足接地面内に移動し(傾斜線C7参照)、あるいは、右足接地面内から左足接地面内に移動しなければならない(傾斜線C9参照)。水平線C10は、再び左足のみが接地している場合のX方向の目標ZMPを示し、X方向の目標ZMPは左足接地面内に維持されている。この場合、ロボットが歩行してX方向に移動するために、水平線C6のX座標と水平線C10のX座標は、歩幅分変化している。
目標ZMP軌道を決定する技術が特許文献1,2に記載されている。
【特許文献1】
特開平5−305581号公報
【特許文献2】
特開2001−277158号公報
【0005】
図1に示した目標ZMPを設定しておき、歩行時に観測される実際ZMPが目標ZMPに一致するように制御することによって、ロボットは転倒しないで歩行することが可能となる。
しかしながら、図1に示す目標ZMPは、時間に対して、静止・等速変化・静止・等速変化・・・を繰り返す。静止から等速変化に切り替わるタイミングや、等速変化から静止に切り替わるタイミングでは、無限大の加速度または減速度が必要とされ、ロボットには大きな負荷が作用する。またロボットの動作はぎこちないものとなる。これらの要素が、ロボットの最大歩行速度を低く抑えている。
【0006】
無限大の加速度または減速度が必要とされる目標ZMPの変化パターンを修正する試みがいくつかなされている。図2(B)は、図2(A)のパターンを遅延処理することによって平滑化したものであり、平滑化することによって、必要な加速度や減速度の最大値を小さく抑えることができる。
遅延処理して平滑化した目標ZMPは、歩行パターンに比して遅れるために、ロボットの歩行姿勢が安定しないという問題が生じる。図2(B)のP12は、両足接地状態から右足接地状態に移行するタイミングに相当する。このときには目標ZMPが右足接地面内になければならない。しかしながら、図2(B)に示すように、遅延処理して平滑化した目標ZMPの変化パターンは遅すぎ、例えば右足接地面内になければならないときにまだ右足接地面内にないことがあり、その遅れがロボットの歩行姿勢を不安定なものとし、ひどい場合には転倒してしまうことになる。
なお本明細書では「右足接地状態」という場合は、右足のみが接地している状態を意味する。両足接地状態でも右足は接地しているが、その場合には両足接地状態といい、右足接地状態とはいわない。左足接地状態も同様である。
【0007】
図2(C)は、目標ZMPのシャープな変化点をスムージング処理した目標ZMPを示している。スムージング処理することによって、必要な加速度や減速度の最大値を小さく抑えることができる。
スムージング処理した目標ZMPは、歩行パターンに比して、早すぎたり遅すぎたりするためにロボットの歩行姿勢が安定しないという問題が生じる。図2(C)のP13は、両足接地状態に移行する直前であって左足接地状態にまだあるタイミングに相当する。それにも係わらず、目標ZMPは左足接地面内から外れ始めている。これでは早すぎる。図2(C)のP14は、両足接地状態から右足接地状態に移行するタイミングに相当する。このときには、目標ZMPが右足接地面内になければならない。それにも係わらず、目標ZMPはまだ右足接地面内にない。これでは遅すぎる。スムージング処理した目標ZMPは、歩行パターンに比して早すぎたり遅すぎたりし、そのずれがロボットの歩行姿勢を不安定なものとし、ひどい場合には転倒してしまうことになる。
【0008】
現在の技術では、図2(A)に示した目標ZMP軌道が持つ問題点を、新たな問題が起こらないようにして解決することができず、ロボットの高速歩行を妨げる一つの要因となっている。
【0009】
【発明が解決しようとする課題】
本発明では、図2(A)の目標ZMP軌道が持つ問題点を、新たな問題が起こらないようにして解決することができる技術を創作し、もってロボットの動作を円滑で負荷のかからないものとして最高歩行速度を向上させることを目的とする。
【0010】
【課題を解決するための手段と作用】
本発明は、2足で歩行するロボットが歩行制御時に参照する目標ZMP軌道を算出する装置に関する。
本装置は、一方の足のみが接地する「一方の足の片足接地期間」内は一方の足の接地面内にある目標ZMPと、他方の足のみが接地する「他方の足の片足接地期間」内は他方の足の接地面内にある目標ZMPを、一方の足の片足接地期間と他方の足の片足接地期間との間にある両足接地期間内に等加速度軌道と等減速度軌道を含む軌道で接続する軌道を計算する。その結果、一方の足の片足接地期間内は一方の足の接地面内にあり、両足接地期間に移行した後に一方の足の接地面内から等加速度で離脱し、両足接地期間から他方の足の片足接地期間に移行するのに先立って等減速度で他方の足の接地面内に至る軌道に沿って移動し、他方の足の片足接地期間内は他方の足の接地面内にある目標ZMP軌道が算出される。
【0011】
一方の足(例えば左足)のみが接地する「一方の足の片足接地期間」内は左足の接地面内にあり、両足接地期間に移行した後に左足の接地面内から等加速度で離脱し、右足の接地面に近づくと、両足接地期間から他方の足のみが接地する「他方の足の片足接地期間」に移行するのに先立って等減速度で右足の接地面内に至る軌道に沿って移動し、右足の片足接地期間内は右足の接地面内にある目標ZMP軌道が得られると、目標ZMPの変化パターンが平滑化され、実際ZMPを目標ZMPに一致させるのに必要なロボット動作の加速度と減速度を小さく抑えることが可能となる。ロボットの動作は円滑化され、高速で歩行させることが可能となる。
しかも、目標ZMPの変化パターンを平滑化することによって、目標ZMPの変化パターンが歩行パターンに対して早すぎたり遅すぎたりすることもない。
図2(D)は、等加速度軌道と等減速度軌道を含む軌道で接続した目標ZMP軌道の一例を示しており、点P15に示すように、両足接地状態に移行するのを待ってから目標ZMPは他方の足側に移動するから、目標ZMPの変化が早すぎるという問題はない。一方点P16に示すように、両足接地状態から片足接地状態に変化するのに先立って、目標ZMPは片足接地面内の位置に移動しており、目標ZMPの変化が遅すぎるいう問題もない。
図1と図2で説明したように、片足接地中の目標ZMPは静止していてもよいが、接地面内に維持されていれば静止していなくてもよく、例えば、踵から爪先に向かって移動するものであってもよい。
本発明の装置によると、ロボットの歩行姿勢を安定化させ、ロボットの動作を円滑で負荷の少ないものとする目標ZMP軌道を得ることができ、ロボットの最高歩行速度を向上させることができる。
【0012】
【発明の実施の形態】
下記に説明する実施例の主要な特徴を列記する。
(形態1) 一方の足の接地面内から等加速度軌道で離脱し、最高速度に達すれば最高速度の等速度軌道を維持し、ついで等減速度軌道で他方の足の接地面内に至る軌道を計算する。図2(E)は、目標ZMPの移動速度の時間変位を示し、等加速度軌道で増速し、最高速度に達すれば最高速度を維持し、ついで等減速度で減速する。
(形態2) コンピュータに、左足接地期間内は左足接地面内にある目標ZMPと、右足接地期間内は右足接地面内にある目標ZMPを入力する。ついで、そのコンピュータによって、両足接地期間内に、等加速度軌道と等減速度軌道を含む軌道によって入力された目標ZMPを連続させる軌道を計算させる。それによって目標ZMP軌道が算出される。
【0013】
【実施例】
図5は、2足で歩行するロボットにティーチングする歩行指令データを作成する装置1を示している。この歩行指令データ作成装置1は、2足歩行ロボットを実際に動作させるのに先立って用いられ、2足歩行ロボットを実際に動作させるために必要な歩行指令データを作成するために利用される。この装置1で作成された歩行指令データは、2足歩行ロボットにティーチングされる。2足歩行ロボットはティーチングされた歩行指令データに従って歩行する。
【0014】
歩行指令データ作成装置1には、オペレータが、2足歩行ロボットを歩行させたいコース等のデータを入力する。具体的には、図5の左下の(A)に示される6個のベクトルを入力する。ベクトルPは体幹位置ベクトルであり、座標原点から見たロボットの体幹位置を示す。ベクトルRは体幹姿勢ベクトルであり、ロボットの体幹の向きを示す。人間の背骨に相当する部材が伸びる方向を示す。ベクトルCは左足先位置ベクトルであり、座標原点から見たロボットの左足先位置を示す。体幹位置ベクトルPからのベクトルで指定することもできる。ベクトルDは左足先姿勢ベクトルであり、左足先の向きを示す。ベクトルEは右足先位置ベクトルであり、座標原点から見たロボットの右足先位置を示す。体幹位置ベクトルPからのベクトルで指定することもできる。ベクトルFは右足先姿勢ベクトルであり、右足先の向きを示す。オペレータは、これらの6種のベクトルを時系列に従って次々に入力する。なお、このためのデータ入力支援ソフトが開発されており、主要タイミングでのデータを指定することで、時系列での中間データが補完計算されるようになっている。また、一歩分の歩行指令データを繰り返して利用するように指示することで、入力量を低減することができる。
【0015】
オペレータは、さらに、目標ZMP位置を時系列に従って入力する。この場合ベクトルC〜Fによって、左足接地状態・両足接地状態・右足接地状態の別がわかっていることから、左足接地状態では左足接地面内の位置を指定し、右足接地状態では右足接地面内の位置を指定する。図5の右下に示される(B)は、Y方向の目標ZMPの時系列変化の一例を示し、両足接地期間内の目標ZMPは入力の必要がない。歩行方向(X方向)の目標ZMPも同様であり、左足接地状態では左足接地面内の位置を入力し、右足接地状態では右足接地面内の位置を入力する。両足接地期間内のX方向の目標ZMPは入力する必要がない。
【0016】
図5(B)に例示されるように、入力された目標ZMPは時間軸に沿ってみると不連続である。歩行指令データ作成装置1には、時間に対して不連続な目標ZMPを接続する軌道を計算する処理部6が用意されている。処理部6では、図5(B)に例示された時間的に不連続な期間(両足接地期間に相当する)を、図5(C)に例示するように、当加速度軌道Aと等速度軌道Bと等減速度軌道Cで接続する軌道を計算する。
等加速度軌道Aでは、2足方向ロボットが無理なく実現できる最高加速度を維持するものとする。等加速度軌道Aによって目標ZMPの移動速度は増速する。目標ZMPの移動速度が2足方向ロボットの最高速度に到達すると、以後は等速度軌道Bを採用する。反対足側の目標ZMPに接近すると、等減速度軌道Cに切り変える。等減速度軌道Cでは、2足方向ロボットが無理なく実現できる最高減速度を維持するものとする。等減速軌道Cによって目標ZMPの移動速度はゼロとなる。ゼロになったときに、目標ZMPが反対足側の目標ZMPに一致する軌道が計算される。これは、あたかも、電車が加速して最高速度を維持して減速して停止するのと同様であり、無理無駄のかからない運動パターンである。減速して所定位置に停止させる軌道を計算する様々な技術が開発されている。
図2(D)は、等加速度軌道と等減速度軌道を含む軌道で接続した目標ZMP軌道の一例を示しており、点P15に示すように、両足接地状態に移行するのを待ってから目標ZMPは他方の足側に移動するから、目標ZMPの変化が早すぎるという問題はない。一方点P16に示すように、両足接地状態から片足接地状態に変化するのに先立って、目標ZMPは片足接地面内の位置に移動しており、目標ZMPの変化が遅すぎるいう問題もない。図2(E)は、目標ZMPの移動速度の時間変化を示し、等加速度軌道で増速し、最高速度に達すれば最高速度を維持し、ついで等減速度で減速する。
【0017】
図2では、片足接地期間内の目標ZMPが静止しているとした。しかしながら片足接地期間内の目標ZMPが静止している必要はなく、例えば、踵方向から爪先方向に移動してもよい。片足接地期間内の目標ZMPは、接地している足の接地面内にあればよく、人間の場合には、踵方向から爪先方向に移動する。
図3は、片足接地期間内に踵方向から爪先方向に移動する目標ZMPの軌道(C11、C12、C13)を、等加速度軌道と最高速度の等速度軌道と等減速度軌道によって接続した軌道C14を例示している。等加速度軌道は、片足接地期間内に踵方向から爪先方向に移動する目標ZMPの移動速度で開始し、等減速度軌道は、片足接地期間内の目標ZMPの移動速度で終了する。目標ZMPの移動速度は連続的に変化し、不連続な変化が生じない。
図3のC15は、従来の技術で接続した目標ZMPの軌道を示し、速度が不連続に変動するために、ロボットは大きな加速度または減速度で動作することが求められる
【0018】
図2、図3に例示した軌道は、時間軸に対するX座標またはY座標の変化を示す。ここでは、ロボットが最高速度で歩行するものとして時間軸を設定する。等加速度軌道、等速度軌道、等減速度軌道では、ロボットの能力の範囲内で可能な最高加速度、最高速度、最高減速度で計算する。
歩行指令データ作成装置1で作成されたデータは、時間軸を引き伸ばしてロボットに教示されることがある。例えば、時間軸に対して図4(A)に例示されるパターンで設定された目標ZMP軌道を、図4(B)に示すように、徐々にゆっくりしたパターンに変換してロボットに教示することがある。この場合、ロボットの動作は徐々に緩やかになる。歩行指令データ作成装置1で作成された1秒分のデータを、2秒分のデータとしてロボットに教示すると、ロボットの動作速度は半分に低下する。あるいは、ロボットに教示された歩行指令データを実行する段階で、時間軸を引き伸ばして実行することによって動作をゆっくりさせることもある。歩行指令データ作成装置1で作成した段階では、等加速度軌道、等速度軌道、等減速度軌道であったものが、ロボットの実際の動作段階では、等加速度軌道、等速度軌道、等減速度軌道にならないことがある。本技術は、最高速度で想定する目標ZMP軌道の算出に用いられるものであり、その段階で、等加速度軌道、等速度軌道、等減速度軌道で接続することが重要であり、ロボットの実際の動作段階では、等加速度軌道、等速度軌道、等減速度軌道にならなくてもかまわない。
【0019】
歩行指令データ作成装置1は、オペレータが入力した6種のベクトルに基づいて2足歩行ロボットの動力学計算をして、実際に生じるであろうZMPを演算する装置2を備えている。ここでは、オペレータが入力した6種のベクトルの時系列で記述される動作を実現することによって発生する慣性力を計算し、これと重力とから、路面からロボットに作用する反力によるモーメントがゼロとなる位置を計算する。
計算されたZMPは、比較装置3によって、目標ZMPと比較される。ここで用いられる目標ZMPは、装置6によって接続されたものであり、図5(C)に例示されるように、時間に対して滑らかに変化する。
【0020】
計算されたZMPと目標ZMPが不一致であれば、オペレータが入力した6種のベクトルの時系列に無理があることになる。そこでこの実施例では、装置4によって、体幹位置ベクトルPを修正する。ここでは、計算されたZMPが目標ZMPに接近する側に体幹位置ベクトルPを修正する。ZMP演算部2は、修正された体幹位置ベクトルPを用いて、再度ZMPを演算しなおす。計算されたZMPと目標ZMPがほぼ一致するまで、上記のサイクルを繰り返す。
【0021】
計算されたZMPが目標ZMPにほぼ一致するように体幹位置ベクトルPが修正されると、修正された体幹位置ベクトルPと、入力された5ベクトルと、入力されて接続処理された目標ZMPによって、ロボットを歩行させられることになる。即ち、動力学的に成立する歩行指令データが作成されたことになる。そこで修正された体幹位置ベクトルPと、入力された5ベクトルと、入力されて接続処理された目標ZMPによって、歩行指令データが完成するので、これを記憶する(装置5)。完成された歩行指令データは、2足歩行ロボットにティーチングされる。
【0022】
次に2足歩行ロボットの機械的構造を、図6〜18を参照して説明する。本明細書では、足部の前後方向(ロボットの進行方向)をX軸とし、左右方向をY軸とし、垂直軸をZ軸とする。各軸は相互に直交している。図6は本実施例の2足歩行ロボットの両下肢の正面図であり、図7は左下肢の側面図であり、図8は足首関節の構造を説明するための図であり、図9はアクチュエータの詳細を説明する図であり、図10〜13は足部の動きを説明する図である。なお、左右の下肢形状は鏡対称である
【0023】
図6に示すように、本実施例のロボット10の左右の下肢12は、大腿部14と下腿部(脛)16と足部18から構成され、大腿部14と胴体部20は股関節22によって接続されており、大腿部14と下腿部16は膝関節24によって接続されており、下腿部16と足部18は足首関節26によって接続されている。
【0024】
最初に股関節22について説明する。ほぼ水平に伸びる板状の骨盤部28には、図7に示すように、Z軸回りに回転する円板36がベアリング34によって取付けられている。円板36は、図6において左右に一対設けられている。各円板36の中心には、骨盤部28側から大腿部14側に伸びる(Z軸方向に伸びる)シャフト30が固定されている。シャフト30は骨盤部28に対してZ軸回りに回転する。板状の骨盤部28には、体幹が固定されている。
シャフト30の下端に対して大腿部14の上端がユニバーサルジョイント32によって接続されている。ユニバーサルジョイント32は、十字型自在継手を備えており、シャフト30に対して大腿部14がX軸回りとY軸回りに回転することを許容する。股関節22は、骨盤部28に対してZ軸回りに回転できるシャフト30と、シャフト30に対して大腿部14がX軸回りとY軸回りに回転することを許容するユニバーサルジョイント32を持ち、X,Y,Z軸のそれぞれの回りに回転することを許容する3軸関節である。
【0025】
次に膝関節24を説明する。各大腿部14の下端にはY軸方向に平行に並ぶ2つのフランジ40が下方へ伸びており、各下腿部16を構成するシャフト42の上端にはY軸方向に平行に並ぶ2つのフランジ44が上向きに設けられている。膝関節24は、これらのフランジ40,44を貫通してY軸方向に伸びる軸46を備える。膝関節24は、大腿部14に対して下腿部16がY軸回りに回転することを許容する。
【0026】
次に足首関節26を説明する。図8は足首関節26の構造を説明するために単純化してデフォルメした図であり、実際の形状や寸法とは必ずしも一致しない。下腿部16のシャフト42の下部にはX軸方向に平行に並んだ2つのフランジ58が下方に伸びている。また、足部18の上面にはY軸方向に平行に並んだ2つのフランジ60が上方に伸びている。これら下腿部16のフランジ58と足部18のフランジ60は十字型自在継手62によって接続されてユニバーサルジョイントを成している。足首関節26は、下腿部24に対して足部18が、X軸回りとY軸回りに回転することを許容する。即ち、足首関節26はX,Y軸のそれぞれについて自由度を持つ2軸関節である。
【0027】
各関節はワイヤによって駆動される(股関節のZ軸回りの回転を除く。この回転のみはワイヤを利用せずに、モータで直接に回転される)。各ワイヤの一端は末端側部材に取付けられており、他端はモータと送りネジから構成されるアクチュエータに接続されている。モータによって送りネジ(Z方向に伸びる)が回転すると、送りネジに螺合しているナットが送りネジ方向に送られ、ナットに接続されているワイヤ先端がZ軸方向に進退する。ワイヤ先端をZ軸方向に進退させることによってワイヤによって末端側部材を引いたり緩めたりすることができる。
【0028】
最初に図7と8を参照して足首関節を回転させるワイヤ群を説明する。足部18には、図示しない取付け板によってワイヤ終端ガイド70a,70b,70cが固定されている。各ワイヤ終端ガイド70a,70b,70cは円弧形状であり、それぞれの円弧の中心軸はY軸方向に伸びており、円弧面は所定の巾(Y軸に沿って伸びる距離)を有している。ワイヤ終端ガイド70aは足首関節26のY軸よりも前方に位置し、X軸上配置されている。その円弧面はX軸前方を向いている。ワイヤ終端ガイド70b,70cは足首関節26のY軸よりも後方に位置している。ワイヤ終端ガイド70bは足首関節26のX軸よりも外側に位置し、ワイヤ終端ガイド70cは足首関節26のX軸よりも内側に位置している。ワイヤ終端ガイド70b,70cの円弧面はX軸後方を向いている。
3本のワイヤ66a,66b,66cの下端は、ワイヤ終端ガイド70a,70b,70cのそれぞれの下端のワイヤ接続点72a,72b,72cに固定されており、各ワイヤ66a,66b,66cの他端は、膝関節24側に伸びている。各ワイヤ終端ガイド70a,70b,70cの円弧面はワイヤ66a,66b,66cが小さな曲率半径で鋭く曲がることを禁止している。
【0029】
ワイヤ接続点72aは足首関節26のY軸よりも前方に位置しており、ワイヤ66aが膝関節24側に引かれると足部18は足首関節26のY軸回りに回転して爪先を持ち上げる。ワイヤ接続点72aは足首関節26のX軸上に配置されており、ワイヤ66aが膝関節24側に引かれても足部18のX軸回りの回転角には影響しない。ワイヤ接続点72bは足首関節26のX軸よりも外側に位置しており、ワイヤ66bが膝関節24側に引かれると足部18は足首関節26のX軸回りに回転して足部18の外側を持ち上げる。ワイヤ接続点72cは足首関節26のX軸よりも内側に位置しており、ワイヤ66cが膝関節24側に引かれると足部18は足首関節26のX軸回りに回転して足部18の内側を持ち上げる。足部18の内側を持ち上げる場合には、ワイヤ66cを引くと同時にワイヤ66bを緩めて足部18の外側が下がることを許容する。同様に、足部18の外側を持ち上げる場合には、ワイヤ66bを引くと同時にワイヤ66cを緩めて足部18の内側が下がることを許容する。足部18を足首関節26のX軸回りに回転させる場合にはワイヤ66aを操作する必要はない。ワイヤ66b、66cを同時に引くと足部18は足首関節26のY軸回りに回転してかかとを持ち上げる。この場合には、ワイヤ66aを緩めて爪先が下がるのを許容する。ワイヤ66aを引いて爪先を持ち上げるときには、ワイヤ66b、66cを緩めてかかとが下がるのを許容する。
3本のワイヤ66a、66b、66cによって、足首関節26のX軸回りの回転角とY軸回りの回転角を独立に調整することができる。
【0030】
なお、ワイヤ接続点を足首関節26のY軸よりも前方のX軸の両側と、Y軸よりも後方のX軸上に配置してもよい。このようにワイヤ接続点を配置しても、ワイヤによって足首関節26のX軸回りの回転角とY軸回りの回転角を独立して調整することができる。
【0031】
図10〜13は足部18の動きを説明するための模式図であり、図10と図11はX軸回りの回転を説明するための図である。図10は足部18の平面図であり、図11は足部18の背面図である。各ワイヤ66a,66b,66cの終端ではワイヤ終端ガイド70a,70b,70cの図示を省略し、ワイヤ接続点72a,72b,72cのみで示してある。
【0032】
図10は、ワイヤ接続点72aに接続されているワイヤ(図示省略)は中立状態を維持しながらワイヤ接続点72bに接続されているワイヤ66bの有効長を収縮させ、ワイヤ接続点72cに接続されているワイヤ66cの有効長を伸長させることを示している。このとき、足部18は図11の破線で示したようにX軸回りに矢印の方向に回転する。また、ワイヤの有効長の伸長・収縮を逆にすると、足部18は矢印とは逆方向に回転する。即ち、このようにワイヤの有効長の伸長・収縮を調整することによって、足部18をX軸の回りに自在に回転させることができる。
【0033】
図12と図13はY軸回りの回転を説明するための図である。図12は足部18の平面図であり、図13は足部18の側面図である。各ワイヤ66a,66b,66cの終端ではワイヤ終端ガイド70a,70b,70cの図示を省略し、ワイヤ接続点72a,72b,72cのみで示してある。図12はワイヤ接続点72aに接続されているワイヤ66aの有効長を収縮させ、ワイヤ接続点72b,72cに接続されているワイヤ66b,66cの有効長を共に伸長させた場合を示している。このとき、足部18は図13の破線で示すように、Y軸回りに矢印の方向に回転する。また、ワイヤの有効長の伸長・収縮を逆にすると、足部18は矢印と逆方向に回転する。このようにワイヤの有効長の伸長・収縮を調整することによって、足部18をY軸の回りに自在に回転させることができる。
なお、足部18の前側を持ち上げるのに要するワイヤの張力に比べ、足部18の後ろ側を持ち上げるのに要するワイヤの張力は大きい。このため、3点のワイヤ接続点72a,72b,72cのうちの1点を前側にし、2点を後側にし、2本のワイヤと2個のアクチュエータでかかとを持ち上げることが好ましい。この場合、各アクチュエータの能力を等しくすることができる。
【0034】
なお図示はしないが、足部18を同時にX軸回りにもY軸回りにも回転させることができる。例えば、ワイヤ66bの有効長を速度a−bで収縮させ、ワイヤ66cの有効長を速度a+bで伸長させ(即ち−a−bで収縮させる)、ワイヤ66aの有効長をbで収縮させると、足部18はX軸の回りに速度aで回転して外側が上がり、且つ、Y軸の回りに速度bで回転して前側が上がる。このように3本のワイヤの有効長を同時に調整すると、足部18をX軸の回りとY軸の回りに同時に自在に回転させることができる。またX軸回りの回転速度とY軸回りの回転速度を自在に調整することもできる。これらのことから、X,Yの2軸に対して3本のワイヤ、即ち、軸数+1本のワイヤを用いることによって、X,Y軸について互いに独立に調整することが可能である。
【0035】
図8に示すように、下腿部16のシャフト42の上部には、フランジ44を貫通するY軸方向の軸46の回りに自由回転可能な3つのプーリ64a,64b,64cが2つのフランジ44と交互に配されている。それぞれのプーリ64a,64b,64cにはワイヤ66a,66b,66cが1本ずつ巻かれている。ワイヤ66a,66b,66cは、プーリ64a,64b,64cの前側でプーリから離反している。ワイヤ66a,66b,66cは足部18に対して膝関節の前方位置から引張力を加える。このために、3本のワイヤ66a,66b,66cを同時に同一速度で収縮させると、下腿部16に対する足部18の回転角度は変えないで(足首関節26を回転させないで)、下腿部16を膝関節24の回りに前向きに回転させることができる。
【0036】
図8に明瞭に示されている3本のワイヤ66a,66b,66cの上端はアクチュエータ68a,68b,68c(図6、図7参照)に接続されている。図6と7では図示の明瞭化のためにアクチュエータが簡略化されて表示されている。図9はアクチュエータ68の詳細を模式的に示しており(すべてのアクチュエータは同様の構造を有するために、添え字を省略して共通的に説明する)、一対のフランジ102と106が3本の案内ロッド108,110,112で接続されている。一対のフランジ間には送りネジ120が回転自在で軸方向には移動不能に配置されている。送りネジ120は、モータ114とギヤ116と118によって回転させられる。可動プレート104は送りネジ120に螺合するナットを備えている。可動プレート104は案内ロッド108,110,112に案内されて軸方向に移動可能で回転不能となっている。その可動プレート104にワイヤ66の先端が固定されている。
モータ114が回転すると送りネジ120が回転して可動プレート104が案内ロッドに沿って滑り、ワイヤ66が引き込まれたり、緩められたりする。
アクチュエータ68のモ−タは114と、一対のフランジ102、106は大腿部14に固定されている。案内ロッド108,110,112は大腿部14の長手方向に伸びており、モ−タは114がアクチュエータ68を回転させることで、ワイヤ66は大腿部14の長手方向に引かれたり緩められたりする。
ワイヤ66a,66b,66cのプーリ64a,64b,64cと接続点72a、72b、72c間の距離をワイヤの有効長とすると、ワイヤ66a,66b,66cの有効長はモータ114によって伸長させられる。ワイヤ66a,66b,66cの有効長を伸長させるアクチュエータ群68a,68b,68cは、股関節22に近い大腿部14に配置されている。
【0037】
図9に示されているように、アクチュエータ68にコントローラ200が接続されている。コントローラ200には、ロボット10の動き全体を制御している別のコントローラ(図示省略)から、足首関節26の回転角と各ワイヤ(66a、66b、66c)の張力を指示する信号が入力される。コントローラ200は、モータ114の回転角及び/またはトルクを制御する。
【0038】
図7に示されているように、下腿部42には下腿部42を膝関節24の回りに後方に回転させるワイヤ66dの一端が接続されている。ワイヤ66dは膝関節に回転自在に配置されているプーリ64d(図6参照)の後方を通ってアクチュエータ68dの可動プレート104に接続されている。アクチュエータ68dの可動プレート104はモータによって進退する。可動プレート104が進退すると、ワイヤ66dは引き込まれたり、緩められたりする。
【0039】
以上によって下記の姿勢変化が実現される。
(1)アクチュエータ68aを縮めてアクチュエータ68b、68cを緩めることで爪先が上がる。アクチュエータ68aを緩めてアクチュエータ68b、68cを縮めることで爪先が下がる。
(2)アクチュエータ68bを縮めてアクチュエータ68cを緩めることで足部18の外側が上がる。アクチュエータ68bを緩めてアクチュエータ68cを縮めることで内側が上がる。
(3)アクチュエータ68a、68b、68cを縮めてアクチュエータ68dを緩めることで下腿部16が前方に回転する。アクチュエータ68a、68b、68cを緩めてアクチュエータ68dを縮めることで下腿部16が後方に回転する。
4本のアクチュエータと4本のワイヤで、足首関節26のX軸回りの回転角(前記2の回転)と、足首関節26のY軸回りの回転角(前記1の回転)と、膝関節24回りの回転角(前記3の回転)が独立に調整できる。
4本のアクチュエータで3軸回りの回転角を調整するために、アクチュエータは冗長であるように見える。しかしながら、この冗長性を利用して回転角に関する剛性を調整することができる。なおこの点については後記する。
【0040】
膝関節24のみならず足首関節26の回転角を調整するためのアクチュエータまでもが大腿部14に配置されているために、この人工下肢の先端部は軽く、股関節回りの慣性モーメントは小さい。このために、小さなトルクで股関節22の回りに高速に回転させることができる下肢が得られる。
【0041】
次に股関節22回りの回転角を調整するワイヤとアクチュエータを説明する。図6と図7に示すように、大腿部14の上部の所定位置には3個の円弧形状のワイヤ終端ガイド48a,48b,48cが3箇所に取付けられ、それぞれにワイヤ50a,50b,50cが1本ずつ掛けられている。それぞれのワイヤ50a,50b,50cの下端はそれぞれワイヤ終端ガイド48a,48b,48cの下端49a,49b,49cに固定されている。後側に取付けられたワイヤ50cの中程にはプーリ54が配置され、プーリ54は股関節22のY軸よりも後方に位置している。ワイヤ50a,50b,50cの上端はそれぞれアクチュエータ52a,52b,52cの可動プレートに接続されている。アクチュエータ52a,52bのそれぞれの送りネジはそれぞれ図示しないモータによって回転するために、送りネジに螺合している可動プレートはモータの回転によって進退する。この結果、ワイヤ50a,50b,50cの有効長が伸長・収縮する。なお、アクチュエータ52a,52b,52cとそのためのモータ56等は胴体部に配置されており、股関節22の回りに回転する下肢の慣性モーメントを全く増加させない。
【0042】
アクチュエータ52a,52bは、股関節22のY軸よりも前方に位置しており、収縮すると大腿部14を股関節22のY軸の回りに前方に回転させる。ワイヤ50cを案内するプーリ54は股関節22のY軸よりも後方に位置しており、アクチュエータ52cが収縮すると大腿部14を股関節22のY軸の回りに後方に回転させる。なお、骨盤部28に回転自在な円板36はモータ38によってZ軸の回りに回転させられる。モータ38は骨盤部28に固定されている。
【0043】
ワイヤ接続点49cは股関節22のY軸よりも後方に位置しており、ワイヤ50cが引かれると大腿部14は股関節22のY軸回りに後方に回転する。ワイヤ接続点49cは股関節22のX軸上に配置されており、ワイヤ50cが引かれても大腿部14のX軸回りの回転には影響しない。ワイヤ接続点49aは股関節22のX軸よりも外側に位置しており、ワイヤ50aが引かれると大腿部14は股関節22のX軸回りに回転して大腿部14を開ける。ワイヤ接続点49bは股関節22のX軸よりも内側に位置しており、ワイヤ50bが引かれると大腿部14は股関節22のX軸回りに回転して大腿部14を閉じる。大腿部14を閉じる場合には、ワイヤ50bを引くと同時にワイヤ50aを緩めて大腿部14が閉じることを許容する。同様に、大腿部14を開ける場合には、ワイヤ50aを引くと同時にワイヤ50bを緩めて大腿部14が開くことを許容する。大腿部14を股関節22のX軸回りに回転させる場合にはワイヤ50cを操作する必要はない。ワイヤ50a,50bを同時に引くと大腿部14は股関節22のY軸回りに前方に回転して大腿部14を持ち上げる。この場合には、ワイヤ50cを緩めて大腿部14が前方に回転するのを許容する。ワイヤ50cを引いて大腿部14を後方に回転させる場合には、同時にワイヤ50a,50bを緩めて大腿部が下がるのを許容する。
【0044】
以上によって股関節22は下記のように調整される。
(1)アクチュエータ52cを縮めてアクチュエータ52a,52bを緩めることで大腿部14は後方に回転する。アクチュエータ52cを緩めてアクチュエータ52a、52bを縮めることで大腿部14が前方に回転する。大腿部14を前方に持ち上げるには大きなトルクが必要とされるのに対し、後方に下げるには大きなトルクが要らない。大きなトルクが必要とされる側に2本のアクチュエータと2本のワイヤが利用され、小さな力しか必要とされない側に1本のアクチュエータと1本のワイヤが利用されている。
(2)アクチュエータ52aを縮めてアクチュエータ52bを緩めることで大腿部14が外向きに持ち上げられる。アクチュエータ52aを緩めてアクチュエータ52bを縮めることで大腿部14が閉じる。
3本のアクチュエータと3本のワイヤで、股関節22のX軸回りの回転角(前記2の回転)と、股関節22のY軸回りの回転角(前記1の回転)が独立に調整できる。
【0045】
股関節22の回りに大腿部14を動かすためのアクチュエータは胴体側に配置されているために、大腿部14を動かす際にはアクチュエータごとに動かす必要がない。股関節22回りの慣性モーメントは小さい。このために、小さなトルクで股関節22の回りに下肢を高速に回転させることができる。
【0046】
図8に明瞭に示されている3本のワイヤ66a,66b,66c等の中間部には、図14、図15に示す非線形バネ140が挿入されている。バネ140はバネ鋼で形成されており、平板部122と一対のフランジ126,126ともう一対のフランジ対130,130を備えている。フランジ対126,126間にはシャフト128が差し渡され、フランジ対130,130間にはシャフト132が差し渡されている。平板部122には、シャフト128,132と平行に伸びる峰部124が形成されている。ワイヤ66は、屈曲しながら、シャフト128の下方、峰部124の上方、シャフト132の下方を通過している。
図16に示されるように、ワイヤ66が強く引かれると、バネ鋼製の平板部122が撓んでワイヤ66は引き伸ばされる。
【0047】
上記のバネ140がワイヤに挿入されているために、アクチュエータによってワイヤ張力を調整することができる。
図6において、アクチュエータ68bの引き込み量とアクチュエータ68cの引き込み量が等しく、足部18はX軸回りに下腿部16のシャフト42に直角に調整されているとする。この状態から、アクチュエータ68bとアクチュエータ68cを同一速度でさらに引き込むとする。この場合、ワイヤ66bとワイヤ66cは同一速度で引き込まれるために、足部18はX軸の回りに回転しない。しかしながら、ワイヤ66bとワイヤ66cが引き込まれるのに応じて、図16に示すように、バネ140が変形し、ワイヤ66bとワイヤ66cの張力は増大する。即ち、このロボットは、2本のワイヤの一方を引いて時計方向に回転させ、他方のワイヤを引いて反時計方向に回転させる方式であるために、両方のワイヤを同時に引き込むことによって、回転角を変えないで、ワイヤ張力のみを増大させることができる。同様に、両方のワイヤを同時に緩めることによって、回転角を変えないで、ワイヤ張力のみを減少させることができる。
【0048】
ワイヤ張力は関節回りの回転角の剛性を決定する。例えば、図6の足部18が地面に接地する場合、両ワイヤの張力が弱くて剛性が低ければ、接地した地面が足部の左側で高くて右側で低い場合に、足部18の右側を引き上げているワイヤが伸びて足部18が地面の傾斜に倣って傾斜して足部18の全体が接地する。剛性が低ければ外部事象に柔軟に追従する。
一方において、片側の足部18が空中にある場合、その空中姿勢を調整する両ワイヤの張力が弱くて剛性が低ければ、ロボットにわずかな外力が作用することでワイヤが伸びるために空中姿勢が不安定となる。姿勢を安定させるためには、剛性が高い方が好ましい。剛性が高い状態の方が、アクチュエータの動きと関節回りの回転角が良く一致し、関節回りに高速で回転ないし動作させることができる。
【0049】
この実施例のロボットは、2本のワイヤのうちの一方を引いて時計方向に回転させ、他方のワイヤを引いて反時計方向に回転させる方式(プルプル方式)であり、しかも、ワイヤの中間部に非線形バネを挿入しているために、ロボット姿勢とは独立に剛性を調整できる。柔軟に追従することが必要な時には低剛性とし、姿勢を安定させることが必要な時には高剛性に調整することができる。
【0050】
プルプル方式と非線形バネとによって、関節回りの剛性を調整できる理由を、図17、図18を参照しながら説明する。なお、この説明では、2本のワイヤによって足部がY軸回りに回転する簡単な例を取り上げて説明する。図17は、このような構成を模式的に図示したものである。図17に示されているように、足部302は円筒状のプーリ303と一体化されている。プーリ303は、Y軸303cの回りに回転可能に軸支されている。前方ワイヤ304と後方ワイヤ306はプーリ303に巻き付けられ、それぞれの一端はワイヤ接続点303a、303bでプーリ303に接続されている。前方ワイヤ304と後方ワイヤ306の他端は、それぞれ前方アクチュエータ312と後方アクチュエータ314に接続されている。前方アクチュエータ312と後方アクチュエータ314は、固定部材322、324に固定されている。アクチュエータ312、314は、ワイヤ304、306を引き込んだり、緩めたりする。ワイヤ304、306の途中には、前方非線形バネ305と後方非線形バネ307が装着されている。
【0051】
図18は、前方非線形バネ305と後方非線形バネ307のバネ特性を示すグラフである。縦軸(y軸)はバネ力を示し、横軸(x軸)はバネの伸び量を示している。y軸の右側のカーブが後方非線形バネ307のバネ特性を表し、y軸の左側が前方非線形バネ305のバネ特性を表している。図18から明らかなように、前方非線形バネ305と後方非線形バネ307のバネ特性は、その伸びが大きくなると急にバネ力が大きくなる(カーブの傾斜が急になる)非線形性を有している。すなわちフックの法則には従わない。
図18を用いて、足部302の回転軸303c回りの剛性が調整される様子を具体的に説明する。例えば、バネ305、307の伸び量がゼロで足部302の角度が所定位置に調整されたときのアクチュエータ312、314の作動量からアクチュエータ312、314がさらにA(mm)づつ引き込まれとする。するとバネ305、307が伸び、B(kg)のバネ力が発生する(点D、点F参照)。ワイヤ張力はB(kg)に調整される。前方ワイヤ304と後方ワイヤ306の張力は等しいので、足部302は回転せず、調整された位置を保つ。この状態で足部302に時計方向のモーメントを加えて回転させ、後方バネ307がC(mm)伸びたとする(点D→点E)。一方、後方バネ307がC(mm)伸びると、これと等しい量(C(mm))前方バネ305は縮む(点F→点G)。従って、足部302を回転させてバネ(305、307)をC(mm)伸縮させるのには、点Eと点Gのバネ力の差であるH(kg)の力をプーリ303に加える必要がある。
【0052】
アクチュエータ312、314が大きくJ(mm)づつ引き込まれたとする(点L、点M)。このときにバネ305、307が発生するバネ力はK(kg)である。この場合でも、ワイヤ304、306の張力は等しいので、足部302は回転せずにそのままの位置を保つ。この状態で足部302に時計方向のモーメントが加わって、後方バネ307がC(mm)伸びたとする(点L→点N)。前方バネ305はC(mm)縮む(点M→点P)。従って、足部302を回転させてバネ307、305をC(mm)伸縮させるのには、点Nと点Pのバネ力の差であるQ(kg)の力をプーリ303に加える必要がある。
【0053】
アクチュエータ312、314がA(mm)引き込まれて実現された張力Bの状態からバネ307、305をC(mm)伸縮させるのに必要な力は、H(kg)である。アクチュエータ312、314がJ(mm)引き込まれて実現された張力Kの状態からバネ307、305をC(mm)伸縮させるのに必要な力は、Q(kg)である。明らかにQ(kg)の方が、H(kg)よりも大きい。すなわち、アクチュエータ312、314を大きく引き込んで、大きな張力をワイヤ304、306に発生させているときの方が、足部302の剛性(足部302を所定角回転させるに要するY軸回りの回転モーメント)は高くなる。アクチュエータ312、314がワイヤ304、306を引き込む量を変化させることによって、足部302の剛性を調整することができる。
プルプル方式と非線形バネ組合せて用いると、関節の回転角と独立に、剛性を調整することができる。
【0054】
図18のバネ特性グラフの傾斜角が剛性に比例する。そこで、その傾斜角が意図した剛性に相当するバネの伸び量を求め、その伸び量を与えることで、意図した剛性に調整することができる。
ロボットの姿勢にかかわらず、回転中心からワイヤにおろした垂線の長さ、即ちモーメントの腕の長さがほぼ一定であれば、剛性から張力ないし伸び量を決定することができる。
しかしながら、回転中心からワイヤにおろした垂線の長さ、即ちモーメントの腕の長さが変化する場合には、剛性から張力を決定するまでの間にモーメントの腕の長さを考慮しなければならない。例えば、ともにワイヤ張力が1kgであるとする。このとき、回転中心からその1kgの張力の作用点までの長さが10cm(ケース1)と20cm(ケース2)とする。このとき、ケース2の方がモーメントの腕の長さが長く、モーメントも大きい。ケース2の方が、同じ張力でありながら、外力に抗して関節回転角を所定値に維持する程度は強い。剛性は、張力とモーメントの腕の長さによって決まる。
コントローラ200は、剛性が指定されたときに、指定された剛性とそのときのモーメントの腕の長さから指定された剛性に調整するのに必要な張力を計算し、次いで、その張力に調整するのに必要なワイヤの伸びの長さを計算する。ロボットの姿勢と独立して関節回りの柔軟性を指定された剛性に調整することができる。
足首関節26のX軸回りの回転角度は、アクチュエータ68bによるワイヤ66bの引き込み量によって決定され、ワイヤ66cは冗長である。本実施例では冗長な、アクチュエータ68cによるワイヤ66cの引き込量を利用して、足首関節26のX軸回りの回転に対する剛性を制御する。
足首関節26のY軸回りの回転角度は、アクチュエータ68aによるワイヤ66aの引き込み量によって決定され、ワイヤ66bとワイヤ66cは冗長である。本実施例では、冗長な、アクチュエータ68bによるワイヤ66bの引き込み量とアクチュエータ68cによるワイヤ66cの引き込量を利用して、足首関節26のY軸回りの回転に対する剛性を制御する。
膝関節24の回りの回転角度は、アクチュエータ68a、68b、68cによって決定され、ワイヤ66dは冗長である。本実施例では、冗長な、アクチュエータ68dによるワイヤ66dの引き込量を利用して、膝関節24の回りの回転に対する剛性を制御する。
股関節22のX軸回りの回転角度は、アクチュエータ52aによるワイヤ50aの引き込み量によって決定され、ワイヤ50bは冗長である。本実施例では、冗長な、アクチュエータ52bによるワイヤ50bの引き込量を利用して、股関節22のX軸回りの回転に対する剛性を制御する。
股関節22のY軸回りの回転角度は、アクチュエータ52cによるワイヤ50cの引き込み量によって決定され、ワイヤ50aとワイヤ50bは冗長である。本実施例では、冗長な、アクチュエータ52aによるワイヤ50aの引き込み量とアクチュエータ52bによるワイヤ50bの引き込量を利用して、股関節22のY軸回りの回転に対する剛性を制御する。
【0055】
本発明のロボットはワイヤ駆動であり、各関節にアクチュエータを実装する必要がない。アクチュエータを関節から離れた位置に実装することができるため、関節を小型化、軽量化することができ、アクチュエータの実装位置の自由度が上がる。また、本発明の場合、ワイヤ数は2軸の関節に対しては3本、3軸の関節に対しては4本、即ち、1関節に対して軸数+1本でよい。通常であれば、関節の1自由度について2本のワイヤを必要とする。必要なワイヤ本数とアクチュエータ数が少数化するため、四肢等のスリム化や軽量化が図れる。これらのことにより、末端側部材の動きを高速化することができ、外観的にも動作的にも人間や動物に類似したロボットを実現することが可能となる。
【0056】
アクチュエータ群は大腿部に配置されることに限られるものではない。例えば、上肢の上腕部にアクチュエータ群を配置し、個々のアクチュエータが動作して上腕に対して前腕が回転されたり、前腕に対して手部が回転されたりするように構成することができる。
上述したアクチュエータのコントローラは、関節の回転角と張力とが入力されているが、張力に代えて関節の剛性を入力するように構成してもよい。
このような構成では、コントローラは、関節の回転角から末端側部材(例えば、足部)の回転中心とワイヤの接続点との間のモーメントアームの長さを計算し、このモーメントアームの長さから関節が所望の剛性となるワイヤの張力を計算する。そして、ワイヤの張力を計算された値とするアクチュエータの作動量がアクチュエータに出力される。モーメントアームが末端側部材の回転にともなって大きく変化する構成(ワイヤ終端ガイドが存在しないような構成)においては、上記のように張力に代えて剛性をコントローラに入力し、これを計算処理することにより、関節の剛性をより正確にコントロールすることができる。
【0057】
次に、上記の機械構成を備える2足歩行ロボットの制御装置を説明する。
図19は、ロボットの2足歩行を制御する制御装置の構成を示し、歩行指令データ作成装置1で作成された、体幹位置ベクトルP(これは歩行指令データ作成装置1によってオペレータが入力したものから修正されている)と、体幹姿勢ベクトルRと、左足先位置ベクトルCと、左足先姿勢ベクトルDと、右足先位置ベクトルEと、右足先姿勢ベクトルFを入力し、逆キネマティクス計算する計算装置304を備えている。ただし、体幹位置ベクトルPについては、歩行指令データ作成装置1によって修正されるのみならず、後記する「倒立振子制御」と「ならい制御」を実施するために、さらに修正されて計算装置304に入力される。また、体幹姿勢ベクトルRについても、実際の体幹姿勢ベクトルが目標体幹姿勢ベクトルに一致するように、目標体幹姿勢ベクトルを補正する処理が実施されて計算装置304に入力される。
【0058】
計算装置304は、入力された体幹位置ベクトルP(これは修正されている)と、体幹姿勢ベクトルR(これも補正されている)と、左足先位置ベクトルCと、左足先姿勢ベクトルDと、右足先位置ベクトルEと、右足先姿勢ベクトルFに基づいて、入力した各ベクトルで記述される位置と姿勢を実現するのに必要な各関節の回転角θを計算する。回転角は、各関節を回転させるモータの回転量で計算される。図19では、2個のアクチュエータ分しか表示されていないが、すべてのアクチュエータのモータ回転量が計算される。この計算では、逆キネマティクス演算が実施される。
各アクチュエータごとに計算された目標回転量θは、各アクチュエータのためのドライバ306,316に入力される。各ドライバは、目標回転量と実際回転量の偏差に基づいて各アクチュエータのモータ308,318に加えるトルクを調整する。実際回転量は、アクチュエータのモータ毎に設けられているエンコーダ310,320で検出される。このフィードバック制御によって、アクチュエータのモータ308,318は、実際回転量が目標回転量に一致するようにフィードバック制御される。
【0059】
目標ZMPは、倒立振子モデル334に入力される。倒立振子モデル334には、実際の体幹位置ベクトルPも入力される。実際の体幹位置ベクトルPは、ロボットの体幹に設けられているジャイロ328の信号を演算装置330で演算して求められる。
倒立振子モデル334は、目標ZMPと実際の体幹位置ベクトルPを用いて、目標ZMPから体幹位置ベクトルPに向かう傾斜線の垂直からの傾きφを計算する。計算されたφは、ZMPの修正量算出装置336に入力される。ZMPの修正量算出装置336は、ΔZMP=k1×φ+k2×dφ/dtの式によって、ZMPの修正量を算出する。即ち、前記した傾斜角φに比例する値と、傾斜角φの時間微分に比例する値を加算してZMPの修正量を算出する。算出されたZMPの修正量ΔZMPは、入力された目標ZMPに加算され、目標ZMPはΔZMPだけ修正される。以上のように、目標ZMPをΔZMPだけ修正する処理を、通常は倒立振子制御と称している。
人間は、歩行する場合、とくに高速で走行する場合には顕著なように、体幹を前方に傾けて走行しやすくする。体幹を前方に傾斜させることで重心を前方に移動させ、前方に移動した重心に追従するように足を前方に移動させる。倒立振子制御は、人間のこの種の制御に対応するものであり、体幹位置を前方に傾ける制御をする。
【0060】
倒立振子モデルで修正された目標ZMP(340)は、実際のZMP(326)と比較され、その偏差(342)が算出される。実際のZMP(326)は、ロボットの足の裏に設けられている複数の力センサ322の出力を演算装置324によって演算することで演算される。偏差342にはゲインk3が乗じられて体幹位置ベクトルPのディメンジョンに変換される。体幹位置ベクトルPのディメンジョンに変換された偏差ΔPは、体幹位置ベクトルPに足し合わされる。目標ZMP(340)と実際ZMP(326)の偏差(342)を体幹位置ベクトルPのディメンジョンに変換して体幹位置ベクトルPに足し合わせる処理を、通常は「ならい制御処理」と称している。
【0061】
ロボットが歩行する面には、体幹位置ベクトルPと、体幹姿勢ベクトルRと、左足先位置ベクトルCと、左足先姿勢ベクトルDと、右足先位置ベクトルEと、右足先姿勢ベクトルFと、目標ZMPを決定する段階では、予期していない凹凸が存在し、ロボットの足が例えば凸を踏むことがある。これは、人間であれば蹴躓くことに相当する。人間はそのとき、膝を曲げて腰の位置を前方に送ることによって転倒しないようにする。ならい制御処理は、人間のこの種の制御に対応するものであり、体幹を前方に平行移動する制御をする。
膝を曲げて体幹を前方に平衡移動することによって転倒を防止する場合、そのままでは歩行を続けることができない。転倒を防止したあとには、膝を伸ばして通常の歩行姿勢に復帰することが必要である。倒立振子モデルは、それに相当する制御を実行する。
比喩的にいえば、ならいモデルは体の柔軟性に相当し、倒立振子モデルは歩行姿勢の維持力に相当する。
【0062】
本実施例では、倒立振子制御系334で目標ZMPを修正し、ならい制御系で目標ZMPと実際ZMPの偏差(342)によって目標体幹位置ベクトルPを修正するにあたって、修正量制限装置346を組み込むことによって修正量を制限している。
ならい制御モデルで算出した目標体幹位置ベクトルの修正量をΔPとする。入力された体幹位置ベクトルPに修正量ΔPをベクトル加算し、それによって逆キネマティクス計算装置304で逆キネマティクスを解いて関節角を計算すると、計算された関節角が関節の許容回転範囲を超えてしまうことがある。この場合、ロボットの機械的制約によって、図19の制御装置が演算したならい制御を実行することができない。本実施例では、ならい制御ループで算出した目標体幹位置ベクトルの修正量ΔPにαnを乗じたもので体幹位置ベクトルPを修正する。ここでαは0から1の間の数であり、nは後記する回数であり、n=0,1,2,3・・・と変化する。
即ち、従来のように一律にP+ΔPの式で体幹位置ベクトルPを修正するではなく、P+αn×ΔPに従って体幹位置ベクトルPを修正する。最初にn=0で対応できれば、P+α0×ΔP(=P+ΔP)で修正する。2回目のn=1で対応できれば、P+α1×ΔPで修正する。3回目のn=2で対応できれば、P+α2×ΔPで修正する。4回目のn=3で対応できれば、P+α3×ΔPで修正する。
具体的処理手順は下記のものである。
(1)ならい制御モデルで算出した目標体幹位置ベクトルの修正量をΔPとする。
(2) 最初にn=0として、P+α0×ΔP(=P+ΔP)で修正する。
(3) P+ΔPで、逆キネマティクスを解いて関節角θを求めた結果、すべての関節で許容回転角内であれば、そこで処理を終了する。
(4)前記の(3)で、少なくとも一つの関節について、計算された関節角θが許容回転角外となれば、修正量を低下させる。
(5)そのために、n=1として、P+α×ΔPで修正する。αは1以下であり、修正量は低減される。
(6) P+α×ΔPで、逆キネマティクスを解いて関節角θを求めた結果、すべての関節で許容回転角内であれば、そこで処理を終了する。
(7) 前記の(6)で、少なくとも一つの関節について、計算された関節角θが許容回転角外となれば、修正量を低下させる。
(5)そのために、n=2として、P+α2×ΔPで修正する。αは1以下であり、修正量は低減される。
以下n=3,4,5・・としながら、P+αn×ΔPで修正された体幹位置ベクトルPを実現するすべての関節回転角θが許容回転角内となるまで、上記手順を繰り返す。
【0063】
P+αn×ΔPと補正することから、n=0でない限り、ならい制御は不十分である。しかしながら、ロボットがならい制御を十分に効かせるだけの柔軟性を備えていなければ、ならい制御が不十分となってもやむをえない。ならい制御を十分に効かせた結果、関節回転角が限界まで回転し、限界となってもまだ回転角が不足していると転倒の恐れがある。本実施例のように、関節回転角が限界内で収まるようにならい制御の制御量を低減させるようにすると、ロボットが持つ柔軟性の範囲内でならい制御が実施され、ロボットが転倒する事態を著減することができる。
【0064】
ならい制御は、体の柔軟性に相当する。ならい制御のためのゲインk3(変換装置344)が大きいほど、ロボットの肢体は柔軟に姿勢を変え、受けるショックを和らげる。従って、着地時等のようにショックを受ける場合には、ならい制御が強く働くことが好ましい。
反面ならい制御が常時に強く働いていると、片足立脚時に慣性力で姿勢が乱れ、着地予定でないタイミングで着地して着地ショックが大きくなることがある。ならい制御のためのゲインk3の値の設定には、上述した相反する要素があり、最適値に調整することが難しい。
【0065】
本実施例では、この相反関係を解決するために、ならい制御のためのゲインk3の値をロボットの状態に合わせて増減する手法を取り入れた。
図20の(A)は、歩行パターンの変化等に合わせてならい制御のためのゲインk3を変化させる例を示し、片足接地状態から両足接地状態に切り替わる前後において、ならい制御のためのゲインk3を増大させ、その他のときには低く維持する。この場合、着地ショックを受ける前後ではならい制御がよく効くためにロボットの肢体は柔軟に対応して着地ショックを和らげる。その他のときには、ならい制御のためのゲインk3は小さく、姿勢維持力が高く保たれる。片足立脚時に慣性力で姿勢が乱れることがなく、着地予定でないタイミングで着地するために着地ショックが大きくなることもない。ならい制御のためのゲインk3は、歩行指令データ作成装置1で作成される6個のベクトルの時系列変化に合わせて増減させることができる。
【0066】
図20の(B)は、左足裏に設置されている力センサが受ける力を示し、(C)は、右足裏に設置されている力センサが受ける力を示し、(D)は、両センサの受ける力の合計を示している。着地時には、強い慣性力が働くために、合計した力は着地時に大きい。合計した力とならい制御のためのゲインk3を比例させれば、着地ショックを受けるときにならい制御のためのゲインk3を大きくし、その他のときには低く維持することができる。図19の力センサ322の信号を演算する装置324から、変換装置344に伸びる処理360は、力センサ322が受ける力の合計力に、ならい制御のためのゲインk3を比例させる処理を示している。
なお、ならい制御を強く働かせる場合に、倒立振子モデルのゲインk1、k2を同時に増大させてもよいが、ならい制御のためのゲインk3のみを大きくしてもよい。
【0067】
倒立振子モデルでは、目標ZMPから体幹位置ベクトルPに向かう傾斜線の垂直からの傾きφを計算する(図19の334参照)。計算されたφは、ZMPの修正量算出装置336に入力され、ΔZMP=k1×φ+k2×dφ/dtの式によって、ZMPの修正量ΔZMPを算出する。ロボットが円滑に歩行するには、ゲインk1とk2の値を適当な値に調整する必要がある。さらには、ならい制御のためのゲインk3も適当な値に調整する必要がある。
ゲインk1、k2、k3の値を歩行制御に適当な値に調整しておくと、ロボットが歩行しないで静止しているあいだにも、ロボットが体幹を前方に傾けてからそれを修正する動作を繰り返すことが生じる。ここではそれを自励振動という。自励振動が生じると、ロボットの動力が無駄に消費されて不都合である。
これを解消するために、ロボットが歩行しないで静止している間は、ZMPの修正量ΔZMPを算出するk1×φ+k2×dφ/dtの式に用いるゲインk1、k2の値を、歩行時に適当な値よりも下げることが有効であることがわかった。この場合、ならい制御のためのゲインk3も同時にさげてもよいが、ゲインk1、k2の値を下げれば、ならい制御のためのゲインk3は下げないでもすむ。ロボットが歩行しないで静止している間に、ゲインk1、k2(さらにはゲインk3)の値を下げても、ロボットは直立しつづけることが確認されている。自励振動に無駄に動力が消費されることがない。
図19では、力センサ322の信号を演算する装置324によって、ロボットが静止しているか歩行しているかを判別し、その結果によってゲインk1、k2を切替えることを図示している。
【0068】
この実施例のロボットは、2本のワイヤのうちの一方を引いて時計方向に回転させ、他方のワイヤを引いて反時計方向に回転させる方式(プルプル方式)であり、ワイヤの中間部に非線形バネを挿入しているために、ロボット姿勢とは独立に剛性を調整できる。この特性を活用し、歩行時に剛性を変化させながら歩行するのが有効である。
着地中には、予期しない凹凸を踏んでいることがあり、下肢が柔軟な方が予期しない凹凸の影響を受けにくい。剛性を高めて指示された姿勢に忠実に制御すると、予期しない凹凸の影響を吸収できないためにロボットがスリップしたり転倒したりする恐れがある。
そこで、本実施例では、歩行パターンの進行に合わせて剛性を変化させる。ここでは、左右の下肢の剛性を別々に変化させる。
図21(A)は、歩行パターンと左右の下肢の剛性の変化パターンを示し、左右の下肢とも、接地中は剛性が低く維持されて、空中移動している間は高く保たれる。左足接地状態から両足接地状態に移行する直前タイミングで右下肢の剛性が下げられ、右足接地状態から両足接地状態に移行する直前タイミングで左下肢の剛性が下げられる。左下肢の剛性と右下肢の剛性は別々に制御される。接地中の下肢の剛性が低いために、予期しない凹凸を踏んでいても、接地した下肢が柔軟に対応して凹凸の影響を吸収する。一方、空中にある足の剛性は高く維持され、姿勢維持力が高く保たれる。片足立脚時に慣性力で姿勢が乱れることがない。剛性の変化パターンには、図21の(A)〜(C)に例示する種々のバリエーションが存在する。
(A) 左下肢の剛性を、左足接地状態と両足接地状態の間は低め、右足接地状態の間は高める。右下肢の剛性を、右足接地状態と両足接地状態の間は低め、左足接地状態の間は高める。
(B、C) 左下肢の剛性を、右足接地状態から両足接地状態に移行する直前タイミングで下げ、次の右足接地状態までの間に高める。右下肢の剛性を、左足接地状態から両足接地状態に移行する直前タイミングで下げ、次の左足接地状態までの間に高める。
(B) 下肢の剛性を連続的に上昇させる。
(C) 下肢の剛性を階段状に上昇させる。
いずれの変化パターンによっても、接地した下肢が柔軟に対応して凹凸の影響を吸収する一方、空中にある足の剛性は高く維持され、姿勢維持力が高く保たれる。
【0069】
以下では、図19の制御装置によって、経時的に変化する目標回転角と、経時的に変化する剛性に関する指示値に追従するようにアクチュエータを制御する技術を説明する。以下では、アクチュエータ68bと68cによって、足首関節26のX軸回りの回転角と剛性を、指示された回転角と剛性に追従するように制御する例について説明する。
【0070】
(第1の制御技術)
図22は、足首関節26をワイヤ66bによってX軸回りに外向きに回転させるアクチュエータ68bのためのコントローラ200bの制御ブロック図と、ワイヤ66cによって内向きに回転させるアクチュエータ68cのためのコントローラ200cの制御ブロック図を示す。これは、図19のドライバ306と316の詳細に対応する。この場合、逆キネマティクス計算装置304は、関節の回転に対する剛性も指示する。剛性の指示値は、経時的に変化する。
最初にコントローラ200bについて説明する。第1変換機2bは、足首関節26の回転角の指示値P1から、その回転角の指示値P1を実現するのに必要なモータ114bの回転角P2に変換する。ここでは、バネ140が伸びないものとして計算する。計算された回転角P2は、モータ114bの実際の回転角P7と比較されて偏差P3が求められる。モータ114bの実際の回転角P7は、モータ114bに内蔵されているエンコーダ115bから得られる。第2変換機4bは、回転角偏差P3をモータ114bの回転速度P4に変換する。ここでは、偏差P3が大きいほど大きな回転速度P4に変換する。偏差P3がゼロであれば回転速度P4もゼロである。第3変換機6bは、モータ114bの回転速度P4をモータ114bに加えるトルクP5に変換する。モータ114bは、通電する電流値と発生するトルクが比例する特性を備えている。モータ114bに加えるトルクP5は電流の単位で指令される。電流の単位で指令されるトルクP5は、指示された回転角と実際の回転角との偏差に基づいてアクチュエータのトルクをフィードバック制御するトルクの増減値に相当し、指示された回転角に対して不十分なアクチュエータのトルクを増大させ、指示された回転角に対して過大なアクチュエータのトルクを減少させる。これによって、実際の回転角が指示された回転角にフィードバック制御される。
剛性の指示値Q1は、第4変換機10bに入力される。第4変換機10bは、回転角の指示値P1からワイヤ66bの張力が足首関節26の回りのモーメントを発生させる腕の長さを計算し、剛性の指示値Q1とモーメントの腕の長さから指示された剛性Q1に調整するのに必要なワイヤ張力Q2を計算する。ここでは図18に示したバネ特性が参照され、バネ定数とモーメントの腕の長さから、指示された剛性Q1に調整できるバネ特性を実現するワイヤ張力Q2に変換する。第5変換機12bは、張力Q2をモータトルクQ3に変換する。この変換には、図9のアクチュエータの特性式が利用される。モータのトルクの全部がワイヤ張力に反映されるわけでない。モータトルクの一部は、アクチュエータ等の摩擦や慣性に費やされる。第6変換機14bは、必要なワイヤ張力を発生するモータトルクQ3に摩擦や慣性に費やされる分を補償して実際に必要とされるモータトルクQ4を算出する。
摩擦や慣性に費やされる分を補償したモータトルクQ4は、回転角のフィードバック制御によって算出されたモータトルクの増減値P5に加算される。最終的には、加算されたモータトルクP6が指令される。実際には、モータ114bのトルクは通電電流に比例するので、モータ114bに、加算されたトルクP6に比例する電流を通電する。
【0071】
コントローラ200cについても、制御ブロックは同一であり、重複説明はしない。この場合、アクチュエータ68bとアクチュエータ68cは左右対称のために、P2とQ2とQ3は、コントローラ200bと200cとで、異符号で同じ値を持つ。ただし、慣性項と摩擦項は左右対称にならないので、Q4の値は等しくならない。
【0072】
この制御ブロックによると、指示された剛性に調整するのに必要なモータトルクQ4が加算される。このために、足首関節26のX軸回りの剛性は、指示された剛性Q1に制御される。指示された剛性Q1に調整するためのモータトルクQ3(ここではワイヤ張力となるモータトルク)は、アクチュエータ68bとアクチュエータ68cによるものとがバランスし、足首関節26のX軸回りの回転角に影響しない。足首関節26のX軸回りの回転角は、剛性に調整するためのモータトルクと無関係に、指示された回転角P1にフィードバック制御される。
図22の制御ブロックによると、回転角P1と剛性Q1が独立に指示されても、指示された回転角P1と剛性Q1に制御することができる。
上記した事象は、回転角と剛性の指示値P1、Q1が時々刻々に変化する動作中常に得られ、経時的に変化する指示値P1、Q1に常に追従させることができる。
剛性の指示値Q1を歩行の状態に応じて経時的に変化させるには、歩行指令データの経時的変化に対応させてもよいし、ロボットの足の裏に接地されている力センサ322の出力に基づいて変化させてもよい。図19の場合、力センサ322が検知する力によって、モータドライバ306、316に指示する剛性の値を変化させる。
【0073】
(第2の制御技術)
図23は、第2の制御技術に係わるコントローラ200bとコントローラ200cの制御ブロック図を示す。図19のドライバ306と316に対応する。この場合、逆キネマティクス演算回路304は、関節の回転角を調整するアクチュエータについては目標回転角を演算し、関節の回転角を調整するには冗長なアクチュエータについては目標剛性値を演算する。この場合、モータ114bは関節の回転角を調整するアクチュエータであり、モータ114cは関節の回転角を調整するには冗長なアクチュエータであり、剛性を調整する。
この場合、コントローラ200bは、回転角の指示値P1に基づいてモータ114bの回転角をフィードバック制御し、コントローラ200cは、剛性の指示値に基づいてモータ114cのトルクをフィードバック制御する。モータ114cの実際のトルクQ6は、モータ114cに通電する電流を測定する電流計115cで測定される。モータは114b、114cは、電流値とトルクが比例する特性をもっている。
モータ114bの回転角のフィードバック制御のための制御ブロック図は、図22とほぼ同様であり、モータ114cのトルクのフィードバック制御のための制御ブロック図も図22とほぼ同様であり、重複説明はしない。
この制御技術によると、指示された剛性Q1に調整するために必要なトルクがモータ114cから加えられる。このトルクが働いた状態で、モータ114bは、指示された回転角P1に調整するのに必要なだけ回転される。このとき、結果的には、モータ114bのトルクも、指示された剛性Q1に調整するのに必要なトルクに調整され、モータ114cの回転角も、指示された回転角P1に調整するのに必要な回転角に調整される。
図23の制御技術は、回転角という1の自由度に対して、2個のモータを利用するという冗長性を利用して、回転角と剛性を独立に制御するものであり、ヒトに類似している。ヒトも、関節の自由度からみると冗長な数の筋肉を利用して関節の回りに回転させる。その冗長性を利用して剛性を調整している。
図23の制御ブロックによると、回転角と剛性が独立に指示されたときに、指示された回転角と剛性に制御することができる。
【0074】
図22,23の技術を用いると、歩行パターンに合わせて剛性を変化させることができ、姿勢を柔軟に変える必要があるときには柔軟にでき、姿勢を維持する必要があるときには剛性を上げて姿勢を維持することができる。本実施例では、図21で説明したように、接地した足の剛性を低くし、宙に浮いている足の剛性を高く調整しながら歩行する。
【0075】
本実施例では、歩行パターンにあわせて、ならい制御のためのゲインk3と、下肢の剛性を変化させる。ゲインの変化と剛性の変化のいずれか一方のみを用いても有用であるが、組合わせて用いることが有効であり、組合わせて用いると、ならい制御と剛性の変化の相乗作用によって、ロボットの挙動を柔軟で安定したものとできる。
【0076】
図5に示した歩行指令データ作成装置1を用いて歩行指令データを作成する場合、通常は体幹姿勢については体幹姿勢ベクトルRのみを指定する。確かに、体幹姿勢ベクトルRを指定すれば、ロボットは円滑に歩行することができる。
ただしより高速で歩行する場合、体幹を捩って歩行することが有利であり、体幹ベクトルの他に、体幹の捩れに関する姿勢も入力するのが有利である。
【0077】
図24(A)は、従来のティーチング技術による場合の歩行姿勢を示し、体幹は前方に傾くことがあっても、捩れることはない。そもそも体幹の捩れを指定するベクトルが教示されていない。
図24(B)は、体幹の左右対称線の方向を示す体幹ベクトルRに加えて、体幹の左右を結ぶ線の方向を示す体幹捩れベクトルQを教示することによって得られる歩行姿勢を示している。足の動きに連動して体幹を捩じると、体幹に対する足の動作速度が同じでも一歩の歩幅を伸ばすことができ、ロボットは高速で歩行することが可能となる。
図24(C)は、体幹捩れベクトルQの教示例を示し、平面視している。左足先位置ベクトルCと、右左足先位置ベクトルEを教示するために、左右の足の中心同士を結ぶ線がX軸となす角度がわかる。ここでは、体幹捩れベクトルQとX軸のなす角度が、左右の足の中心同士を結ぶ線がX軸となす角度の50%となるような体幹捩れベクトルQをロボットにティーチングする。なお、前記の比率は50%に限定されるものでなく、その前後の幅を有している。比率があまりに小さいと体幹を捩る意味がなく、比率があまりに大きいと体幹に捩るのに大きなエネルギーが費やされることになるので、30〜60%くらいの範囲が好ましい。
足の動きに連動して捩じる体幹ベクトルQを教示すると、同じ能力のロボットの歩幅を広げることができ、高速歩行させることができる。
体幹捩じれベクトルを指定する代わりに、左右の足の中心同士を結ぶ線がX軸となす角度から体幹捩じれベクトルを計算して求めるようにしてもよい。
【0078】
図19の制御装置では、体幹姿勢ベクトルRを入力し、逆キネマティクス演算し、入力された体幹姿勢ベクトルRに制御するために必要な関節角を演算し、そうして得られた関節角を目標関節角としてフィードバック制御するため、実際の体幹ベクトルRは、指示された体幹ベクトルR、即ち、歩行指令データ作成装置1(図5)で得られた体幹ベクトルRに一致するはずである。しかしながら、ロボットにジャイロを取付けて実際の体幹ベクトルを測定すると一致しないことが判明した。これは、関節のガタや部材のたわみ等に起因するものと推測される。
目標体幹姿勢ベクトルと実際体幹姿勢ベクトルが一致しなければ、意図する体幹姿勢をロボットにとらせることができない。
本実施例では、図5の歩行指令データ作成装置1で作成された体幹姿勢ベクトルR(ここには、オペレータがロボットにとらせたい姿勢が記述されている)をそのままロボットに教示せず(そのまま教示すると、目標体幹姿勢ベクトルと実際体幹姿勢ベクトルが一致しなので、実際体幹姿勢ベクトルを意図したものにすることができない)、目標体幹姿勢ベクトルと実際体幹姿勢ベクトルが一致しないことを見越し、目標体幹姿勢ベクトルを人為的に補正し、補正された目標体幹姿勢ベクトルと実際体幹姿勢ベクトルが一致しないために、結果として目標体幹姿勢ベクトルと実際体幹姿勢ベクトルを一致させる手法を採用している。
【0079】
(1) 具体的は、最初に、歩行指令データ作成装置1で作成された体幹姿勢ベクトルRをロボットにティーチングする。ティーチングされたロボットを動作させて実際の体幹姿勢ベクトルRを検出する。
以下では、目標体幹姿勢ベクトルをR1とし、実際体幹姿勢ベクトルをR2とする。実際体幹姿勢ベクトルをR2はジャイロ328の出力を演算する装置330で演算される。
(2) 目標の体幹姿勢ベクトルR1と実際の体幹姿勢ベクトルR2のずれベクトルΔRを計算する(図19の装置350)。ずれベクトルΔRは、R1・R2−1で計算できる。
(3) そこで、目標体幹姿勢ベクトルをR1の方を、ずれベクトルΔRを見越して補正する。補正された目標体幹姿勢ベクトルをR1*とすると、R1*=R1・ΔRで計算される。
(4)ロボットは、補正された目標体幹姿勢ベクトルR1*を目標として動作する。ロボットによって実現される実際体幹姿勢ベクトルはR1*とならない。それからはずれる。はずれた結果、目標体幹姿勢ベクトルR1に一致する。補正された目標体幹姿勢ベクトルR1*は、オペレータと意図する体幹姿勢ベクトルR1にずれベクトルΔRを見越して補正されているからである。
(5) 補正された目標体幹姿勢ベクトルをR1*を計算する際に、まず、
Y=α・ΔR+(1−α)・Iを計算し、ついで、R1*=R1・Yで計算してもよい。図19の補正装置352は、この処理を実行する。ここで、αは1以下の正の値であり、Iは単位ベクトルである。
この場合、ずれベクトルΔRのα%だけを見越して目標体幹姿勢ベクトルR1を補正することに相当する。
目標体幹姿勢ベクトルの補正処理は、種々の段階で実施できる。ずれベクトルΔRが判明した段階で、歩行指令データ作成装置1で作成された体幹姿勢ベクトルRを補正し、補正された目標体幹姿勢ベクトルをロボットに教示してもよい。この場合、ロボットの制御装置には、目標体幹姿勢ベクトルを補正するための装置350,352は要らない。それに代わって、ずれベクトルΔRで補正する前の目標体幹姿勢ベクトルをロボットに教示し、ロボットの動作中に次々とずれベクトルΔRを算出し、ずれベクトルΔRが算出されとき以降の目標体幹姿勢ベクトルをずれベクトルΔRで補正するようにしてもよい。
【0080】
以上、本発明の具体例を詳細に説明したが、これらは例示にすぎず、特許請求の範囲を限定するものではない。特許請求の範囲に記載の技術には、以上に例示した具体例を様々に変形、変更したものが含まれる。
また、本明細書または図面に説明した技術要素は、単独であるいは各種の組み合わせによって技術的有用性を発揮するものであり、出願時請求項記載の組み合わせに限定されるものではない。また、本明細書または図面に例示した技術は複数目的を同時に達成するものであり、そのうちの一つの目的を達成すること自体で技術的有用性を持つものである。
【0081】
【発明の効果】
本発明によると、一方の足(例えば左足)の接地期間内は左足の接地面内にあり、両足接地期間内に左足の接地面内から等加速度で離脱して等減速度で右足の接地面内に至る軌道に沿って移動し、右足の接地期間内は右足の接地面内にある目標ZMP軌道が得られるために、目標ZMPの変化パターンが滑らかになり、実施ZMPを目標ZMPに一致させるのに必要なロボット動作の加速度と減速度を小さく抑えることが可能となる。ロボット動作は円滑化され、高速で歩行させることが可能となる。
【図面の簡単な説明】
【図1】 目標ZMPが移動する様子を説明する図。
【図2】 シャープに変化する目標ZMPをスムーズにした各種のカーブを例示する図。
【図3】 目標ZMPが移動する他の例を説明する図。
【図4】 目標ZMPのデータを出力する速度が可変であることを説明する図。
【図5】 歩行指令データ作成装置の構成を示す図。
【図6】 本実施例のロボットの両下肢の正面図。
【図7】 同ロボットの左下肢の側面図。
【図8】 同ロボットの足首関節の構造を説明するための図。
【図9】 同ロボットのアクチュエータの詳細を説明する図。
【図10】 同ロボットの足部の動きを説明する図。
【図11】 同ロボットの足部の動きを説明する図。
【図12】 同ロボットの足部の動きを説明する図。
【図13】 同ロボットの足部の動きを説明する図。
【図14】 ワイヤの組込まれている非線形バネの正面図。
【図15】 ワイヤの組込まれている非線形バネの側面図。
【図16】 ワイヤテンションによって非線形バネが変形する様子を示す図。
【図17】 同ロボットの関節回りの剛性を説明する図。
【図18】 非線形ばね特性と関節回りの剛性を説明するグラフ。
【図19】 制御装置の構成を示す制御ブロック図。
【図20】 歩行パターンに追従してならい制御のためのゲインを増減するパターンを示す図。
【図21】 歩行パターンに追従して下肢の剛性を増減するパターンを示す図。
【図22】 関節回転角と剛性を独立に制御する第1の制御ブロック図。
【図23】 関節回転角と剛性を独立に制御する第2の制御ブロック図。
【図24】 体幹捩じれベクトルの教示方法と教示結果を模式的に示す図。
【符号の説明】
1:歩行指令データ作成装置
2:ZMP演算部
3:比較部
4:体幹位置ベクトル修正部
5:完成した歩行指令データ
10:ロボット
12:下肢部
14:大腿部
16:下腿部
18:足部
20:胴体部
22:股関節
24:膝関節
26:足首関節
28:骨盤部
30:シャフト
32:ユニバーサルジョイント
34:ベアリング
36:円板
38:モータ
40:フランジ
42:シャフト
44:フランジ
46:軸
48a,48b,48c:ワイヤ終端ガイド
49a,49b,49c:ワイヤ接続点
50a,50b,50c:ワイヤ
52a,52b,52c:アクチュエータ
54:プーリ
56:アクチュエータ
58:フランジ
60:フランジ
62:十字型自在継手
64a,64b,64c,64d:プーリ
66a,66b,66c,66d:ワイヤ
68a,68b,68c,68d:アクチュエータ(ボールネジ)
102:フランジ
104:可動プレート
106:フランジ
108:案内ロッド
110:案内ロッド
112:案内ロッド
114:モータ
116:ギヤ
118:ギヤ
120:送りネジ
122:平板部
124:峰部
126:フランジ
128:シャフト
130:フランジ
132:シャフト
304:逆キネマティクス計算部
334:倒立振子モデル
k1、k2、k3:ゲイン
322:力センサ
328:ジャイロ
350:ずれベクトル演算部
352:目標体幹姿勢ベクトル補正ベクトル演算装置
Claims (1)
- 2足で歩行するロボットが歩行制御時に参照する目標ZMP軌道を算出する装置であり、
一方の足のみが接地する「一方の足の片足接地期間」内は一方の足の接地面内にある目標ZMPと、他方の足のみが接地する「他方の足の片足接地期間」内は他方の足の接地面内にある目標ZMPを、一方の足の片足接地期間と他方の足の片足接地期間との間にある両足接地期間内に等加速度軌道と等減速度軌道を含む軌道で接続する軌道を計算し、
一方の足の片足接地期間内は一方の足の接地面内にあり、両足接地期間に移行した後に一方の足の接地面内から等加速度で離脱し、両足接地期間から他方の足の片足接地期間に移行するのに先立って等減速度で他方の足の接地面内に至る軌道に沿って移動し、他方の足の片足接地期間内は他方の足の接地面内にある目標ZMP軌道を算出する装置。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2002343039A JP3888293B2 (ja) | 2002-11-26 | 2002-11-26 | 2足歩行ロボットの目標zmp軌道算出装置 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2002343039A JP3888293B2 (ja) | 2002-11-26 | 2002-11-26 | 2足歩行ロボットの目標zmp軌道算出装置 |
Publications (2)
Publication Number | Publication Date |
---|---|
JP2004174648A JP2004174648A (ja) | 2004-06-24 |
JP3888293B2 true JP3888293B2 (ja) | 2007-02-28 |
Family
ID=32704934
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2002343039A Expired - Fee Related JP3888293B2 (ja) | 2002-11-26 | 2002-11-26 | 2足歩行ロボットの目標zmp軌道算出装置 |
Country Status (1)
Country | Link |
---|---|
JP (1) | JP3888293B2 (ja) |
Families Citing this family (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
KR100709556B1 (ko) * | 2005-10-19 | 2007-04-20 | 한국과학기술연구원 | 인간형 로봇의 보행 제어 방법 |
-
2002
- 2002-11-26 JP JP2002343039A patent/JP3888293B2/ja not_active Expired - Fee Related
Also Published As
Publication number | Publication date |
---|---|
JP2004174648A (ja) | 2004-06-24 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
JP3888294B2 (ja) | Zmp補償制御のゲインを変化させながら歩行するロボット | |
US7615956B2 (en) | Robot | |
US7072740B2 (en) | Legged mobile robot | |
US8825213B2 (en) | Gait generating device for legged mobile robot and operational target generating device for robot | |
US8958915B2 (en) | Robot system controlling method, robot system, and control apparatus for quadrupedal robot | |
JP3888295B2 (ja) | 倒立振子制御のゲインを静止時に下げる歩行ロボット | |
US7278501B2 (en) | Legged walking robot and motion control method therefor | |
US7053577B2 (en) | Robot and motion control method of robot | |
US7366587B2 (en) | Legged mobile robot | |
JP5071140B2 (ja) | 脚式ロボット、及びその制御方法 | |
JP3888310B2 (ja) | 歩行ロボットの制御用データ作成装置とzmp位置の計算方法 | |
JP3864907B2 (ja) | 体幹を捩じって歩行する2足ロボットとそのための方法 | |
JP2004322283A (ja) | 姿勢と剛性を独立に制御できるワイヤ式ロボット | |
JP4707372B2 (ja) | 二足歩行ロボットとその歩行制御方法 | |
JP3901079B2 (ja) | 剛性を変化させながら歩行するロボット | |
JP4057840B2 (ja) | 複軸関節ロボット | |
JP3900074B2 (ja) | 2足歩行ロボットの体幹姿勢を精度よく制御する方法 | |
JP3900073B2 (ja) | ならい制御量を許容範囲内に制限する2足歩行ロボット | |
JP3888293B2 (ja) | 2足歩行ロボットの目標zmp軌道算出装置 | |
JPH03161290A (ja) | 脚式歩行ロボットの関節制御装置 | |
JP4043839B2 (ja) | ロボット | |
KR20090131781A (ko) | 로봇 및 그 보행제어방법 | |
JP3962281B2 (ja) | ロボット | |
JP2007061954A (ja) | 腰上下動による二足歩行ロボットとその歩行制御方法 | |
JP2007061953A (ja) | 支持脚伸縮による二足歩行ロボットとその歩行制御方法 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A621 | Written request for application examination |
Free format text: JAPANESE INTERMEDIATE CODE: A621 Effective date: 20050428 |
|
A131 | Notification of reasons for refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A131 Effective date: 20060808 |
|
A521 | Written amendment |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20061010 |
|
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: 20061107 |
|
A61 | First payment of annual fees (during grant procedure) |
Free format text: JAPANESE INTERMEDIATE CODE: A61 Effective date: 20061120 |
|
LAPS | Cancellation because of no payment of annual fees |