JP3888295B2 - Walking robot that lowers the gain of inverted pendulum control when stationary - Google Patents
Walking robot that lowers the gain of inverted pendulum control when stationary Download PDFInfo
- Publication number
- JP3888295B2 JP3888295B2 JP2002343096A JP2002343096A JP3888295B2 JP 3888295 B2 JP3888295 B2 JP 3888295B2 JP 2002343096 A JP2002343096 A JP 2002343096A JP 2002343096 A JP2002343096 A JP 2002343096A JP 3888295 B2 JP3888295 B2 JP 3888295B2
- Authority
- JP
- Japan
- Prior art keywords
- robot
- wire
- walking
- foot
- target
- 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
【0001】
【発明の属する技術分野】
本発明は、歩行するロボットが転倒しないように制御する技術、すなわち、倒立振子制御と通称される制御技術に関する。
【0002】
【従来の技術】
歩行ロボットの場合、ZMP(ゼロモーメントポイント:動的平衡点ともいう:ロボットが歩行するとロボットから路面に重力と歩行運動に伴って生じる慣性力が作用し、ロボットには路面からその反力が作用する。路面からロボットに作用する反力によるモーメントがゼロになる点をZMPという)を参照してロボットを制御することによってロボットが転倒しないようにする制御技術が採用される。
具体的は、ロボットの実際の体幹位置と目標ZMPを結ぶ線と目標ZMPを通る垂線とがなす角度を算出し、算出された角度に基づいて目標ZMPを補正する制御系を用意する。この制御系が用意されていると、ロボットの転倒方向に目標ZMPを送り出す制御が実施され、ロボットが転倒することが防止される。
【0003】
通常は下記の処理手順を実行する。
(1)ロボットの実際の体幹位置を示す体幹位置ベクトルを求める。
(2)体幹位置ベクトルが指すポイントと目標ZMPを結ぶ線と目標ZMPを通る垂線とがなす角度φを算出する。
(3)算出された角度φにゲインを乗じることによって、目標ZMPの補正量を求める。
(4)補正前の目標ZMPに、目標ZMPの補正量を加えて、補正後の目標ZMPを算出する。
(5) 補正された目標ZMPと、ロボットの位置や姿勢を指定するベクトルに基づいて、ロボットの各関節の関節角を計算する。
(6) 各関節の実際回転角を、計算された関節回転角に一致させる。
上記した制御は「倒立振子制御」と通称され、ロボットの転倒方向に目標ZMPを送り出すことによってロボットが転倒することを防止できる。
上記において、算出された角度φにゲインを乗じることによって目標ZMPの補正量を求める比例制御に代えて、角度φに第1ゲインを乗じた値と角度φの変化速度に第2ゲインを乗じた値とを合計して目標ZMPの補正量を算出してもよい。比例微分制御を導入することによって応答速度を改善することができる。
ロボットの実際の体幹位置の高さが変わらなければ、ロボットの実際の体幹位置と目標ZMPの水平方向の偏差が前記の角度φに相当するために、角度φに代えて水平方向の偏差を用いることもできる。
従来の技術の一例が特許文献1に記載されている。
【特許文献1】
特開平5−305579号公報
【0004】
【発明が解決しようとする課題】
「倒立振子制御」をロボットに実装することによって、ロボットは転倒方向に支持点を移動することによって転倒を免れる。
ロボットが歩行するには、「倒立振子制御」が適度に効くことが必要であり、角度φに乗じる第1ゲインの値や、角度φの変化速度に乗じる第2ゲインの値等を適値に調整しておかなければならない。
しかしながら、ロボットが歩行するのに適当なゲインの値に調整しておくと、ロボットの静止(歩行しないで立っていることをいう)時に、ロボットが体幹を前方に傾けてからそれを修正する動作を繰り返す現象が生じる。ここではそれを自励振動という。自励振動が生じると、ロボットの動力が無駄に消費されて不都合である。
本発明では、歩行中に「倒立振子制御」が適度に効いて転倒しないで歩行することができ、しかも静止中に「自励振動」を起こさないロボットを実現することを課題とする。
【0005】
【課題を解決するための手段と作用】
本発明のロボットは、ロボットの実際の体幹位置と目標ZMPを結ぶ線と、目標ZMPを通る鉛直線がなす角度φに基づいて目標ZMPを補正する制御、すなわち、「倒立振子制御」を実行するロボットに関する。
本発明の歩行ロボットは、歩行動作中は前記角度φに対して大きな目標ZMPの補正量ΔZMPを算出し、静止中は前記角度φに対して小さな目標ZMPの補正量ΔZMPを算出する。より具体的には、このロボットの制御系は、前記角度φに基づく値にゲインを乗じたZMP補正量によって目標ZMPを補正するものであり、ロボットの歩行動作中のゲインの値よりもロボットの静止中のゲインの値を小さくする。
このロボットの場合、歩行中は「倒立振子制御」が適度に効くために転倒しないで歩行することができ、静止中は「倒立振子制御」の効きが抑制されるために「自励振動」を起こさない。
前記角度φに第1ゲインを乗じた値と角度φの変化速度に第2ゲインを乗じた値とを合計して目標ZMPの補正量ΔZMPを算出する場合、すなわち、比例微分制御方式を採用する場合、歩行動作中は大きな第1ゲインと第2ゲインを採用し、静止中は小さな第1ゲインと第2ゲインを採用するゲイン変化手段を備えることが好ましい。
ロボットの実際の体幹位置の高さが実質上変わらなければ、ロボットの実際の体幹位置と目標ZMPの水平方向の偏差が前記の角度φにほぼ比例するとできるので、前記した水平方向の偏差に基づいて目標ZMPを補正することができる。この場合、歩行動作中は前記偏差に対して大きな目標ZMPの補正量を算出し、静止中は前記偏差に対して小さな目標ZMPの補正量を算出する。
偏差に基づいて比例微分制御を採用することもでき、この場合には、偏差に第1ゲインを乗じた値と偏差の変化速度に第2ゲインを乗じた値とを合計して目標ZMPの補正量を算出する。歩行動作中は大きな第1ゲインと第2ゲインを採用し、静止中は小さな第1ゲインと第2ゲインを採用する。
【0006】
【発明の実施の形態】
下記に説明する実施例の主要な特徴を列記する。
(形態1) 補正された目標ZMPは実際のZMPと比較され、偏差によって目標体幹位置ベクトルを補正するために利用する。
(形態2) 静止中は、補正された目標ZMPと実際のZMPの偏差を目標体幹位置ベクトルの補正量に変換するゲインk3も下げる。
(形態3) 歩行中と静止中とで、前記ゲインk3の値を変えない。
【0007】
【実施例】
図5は、2足で歩行するロボットにティーチングする歩行指令データを作成する装置1を示している。この歩行指令データ作成装置1は、2足歩行ロボットを実際に動作させるのに先立って用いられ、2足歩行ロボットを実際に動作させるために必要な歩行指令データを作成するために利用される。この装置1で作成された歩行指令データは、2足歩行ロボットにティーチングされる。2足歩行ロボットはティーチングされた歩行指令データに従って歩行する。
【0008】
歩行指令データ作成装置1には、オペレータが、2足歩行ロボットを歩行させたいコース等のデータを入力する。具体的には、図5の左下の(A)に示される6個のベクトルを入力する。ベクトルPは体幹位置ベクトルであり、座標原点から見たロボットの体幹位置を示す。ベクトルRは体幹姿勢ベクトルであり、ロボットの体幹の向きを示す。人間の背骨に相当する部材が伸びる方向を示す。ベクトルCは左足先位置ベクトルであり、座標原点から見たロボットの左足先位置を示す。体幹位置ベクトルPからのベクトルで指定することもできる。ベクトルDは左足先姿勢ベクトルであり、左足先の向きを示す。ベクトルEは右足先位置ベクトルであり、座標原点から見たロボットの右足先位置を示す。体幹位置ベクトルPからのベクトルで指定することもできる。ベクトルFは右足先姿勢ベクトルであり、右足先の向きを示す。オペレータは、これらの6種のベクトルを時系列に従って次々に入力する。なお、このためのデータ入力支援ソフトが開発されており、主要タイミングでのデータを指定することで、時系列での中間データが補完計算されるようになっている。また、一歩分の歩行指令データを繰り返して利用するように指示することで、入力量を低減することができる
【0009】
オペレータは、さらに、目標ZMP位置を時系列に従って入力する。この場合ベクトルC〜Fによって、左足接地状態・両足接地状態・右足接地状態の別がわかっていることから、左足接地状態では左足接地面内の位置を指定し、右足接地状態では右足接地面内の位置を指定する。図5の右下に示される(B)は、Y方向の目標ZMPの時系列変化の一例を示し、両足接地期間内の目標ZMPは入力の必要がない。歩行方向(X方向)の目標ZMPも同様であり、左足接地状態では左足接地面内の位置を入力し、右足接地状態では右足接地面内の位置を入力する。両足接地期間内のX方向の目標ZMPは入力する必要がない。
【0010】
図1は、目標ZMPの設定方法を示している。この場合、ロボットはX方向に歩行する。歩行方向に直交する方向をY方向とする。ロボットは、両足接地期間と片足接地期間を交互に繰り返して歩行する。片足接地期間内の目標ZMPは、接地足の接地面内になければならない。さもなければ、実際ZMPを目標ZMPに一致させてもロボットは転倒してしまう。両足接地期間内の目標ZMPは、2つの接地面を結ぶ領域にあればよい。Y方向の現象を考察すると明らかに、両足が接地している期間内に、目標ZMPは左足接地面内から右足接地面内に移動しなければならない(傾斜線C2参照)。あるいは、右足接地面内から左足接地面内に移動しなければならない(傾斜線C4参照)。水平線C1は、左足のみが接地している場合の目標ZMPを示し、目標ZMPは左足接地面内に維持されている。水平線C3は、右足のみが接地している場合の目標ZMPを示し、目標ZMPは右足接地面内に維持されている。
【0011】
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座標は、歩幅分変化している。
【0012】
図1に示した目標ZMPを設定しておき、歩行時に観測される実際ZMPが目標ZMPに一致するように制御することによって、ロボットは転倒しないで歩行することが可能となる。
しかしながら、図1に示す目標ZMPは、時間に対して、静止・等速変化・静止・等速変化・・・を繰り返す。静止から等速変化に切り替わるタイミングや、等速変化から静止に切り替わるタイミングでは、無限大の加速度または減速度が必要とされ、ロボットには大きな負荷が作用する。またロボットの動作はぎこちないものとなる。これらの要素が、ロボットの最大歩行速度を低く抑えている。
【0013】
無限大の加速度または減速度が必要とされる目標ZMPの変化パターンを修正する試みがいくつかなされている。図2(B)は、図2(A)のパターンを遅延処理することによって平滑化したものであり、平滑化することによって、必要な加速度や減速度の最大値を小さく抑えることができる。
遅延処理して平滑化した目標ZMPは、歩行パターンに比して遅れるために、ロボットの歩行姿勢が安定しないという問題が生じる。図2(B)のP12は、両足接地状態から右足接地状態に移行するタイミングに相当する。このときには目標ZMPが右足接地面内になければならない。しかしながら、図2(B)に示すように、遅延処理して平滑化した目標ZMPの変化パターンは遅すぎ、例えば右足接地面内になければならないときにまだ右足接地面内にないことがあり、その遅れがロボットの歩行姿勢を不安定なものとし、ひどい場合には転倒してしまうことになる。
なお本明細書では「右足接地状態」という場合は、右足のみが接地している状態を意味する。両足接地状態でも右足は接地しているが、その場合には両足接地状態といい、右足接地状態とはいわない。左足接地状態も同様である。
【0014】
図2(C)は、目標ZMPのシャープな変化点をスムージング処理した目標ZMPを示している。スムージング処理することによって、必要な加速度や減速度の最大値を小さく抑えることができる。
スムージング処理した目標ZMPは、歩行パターンに比して、早すぎたり遅すぎたりするためにロボットの歩行姿勢が安定しないという問題が生じる。図2(C)のP13は、両足接地状態に移行する直前であって左足接地状態にまだあるタイミングに相当する。それにも係わらず、目標ZMPは左足接地面内から外れ始めている。これでは早すぎる。図2(C)のP14は、両足接地状態から右足接地状態に移行するタイミングに相当する。このときには、目標ZMPが右足接地面内になければならない。それにも係わらず、目標ZMPはまだ右足接地面内にない。これでは遅すぎる。スムージング処理した目標ZMPは、歩行パターンに比して早すぎたり遅すぎたりし、そのずれがロボットの歩行姿勢を不安定なものとし、ひどい場合には転倒してしまうことになる。
【0015】
現在の技術では、図2(A)に示した目標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】
以上、本発明の具体例を詳細に説明したが、これらは例示にすぎず、特許請求の範囲を限定するものではない。特許請求の範囲に記載の技術には、以上に例示した具体例を様々に変形、変更したものが含まれる。
例えば本実施例では、力センサ322の信号を演算する装置324によって、ロボットが静止しているか歩行しているかを判別し、その判別結果によってゲインk1、k2を切替えるが、歩行指令データの時系列変化に対応してゲインk1、k2を変化させてもよい。また、ゲインk1、k2は、大小の間で不連続的に切替えてもよいし、連続的に変化させてもよい。
また本実施例では、体幹位置ベクトルPが指すポイントと目標ZMPを結ぶ傾斜線と、目標ZMPを通る垂線がなす角度φによって、目標ZMPの修正量を計算するが、ロボットの実際の体幹位置の高さが実質上変わらなければ、角度φに代えて、ロボットの実際の体幹位置と目標ZMPの水平方向の偏差を用いてもよい。
また、本実施例では、角度φ(または水平偏差)に比例微分処理を施して目標ZMPの修正量を計算するが、単純に比例させるだけでもよいし、比例微分積分処理してもよい。
本明細書または図面に説明した技術要素は、単独であるいは各種の組み合わせによって技術的有用性を発揮するものであり、出願時請求項記載の組み合わせに限定されるものではない。また、本明細書または図面に例示した技術は複数目的を同時に達成するものであり、そのうちの一つの目的を達成すること自体で技術的有用性を持つものである。
【0081】
【発明の効果】
本発明によると、ロボットの歩行中は「倒立振子制御」が適度に効くために転倒しないで歩行することができ、静止中は「倒立振子制御」の効きが抑制されるために「自励振動」を起こさない。ロボットが自励振動のために動力を無駄に消費することが防止される。
【図面の簡単な説明】
【図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:目標体幹姿勢ベクトル補正ベクトル演算装置[0001]
BACKGROUND OF THE INVENTION
The present invention relates to a technique for controlling a walking robot so as not to fall, that is, a control technique commonly called inverted pendulum control.
[0002]
[Prior art]
In the case of a walking robot, ZMP (Zero moment point: also called dynamic equilibrium point: When the robot walks, the inertial force generated by gravity and walking motion acts on the road surface from the robot, and the reaction force acts on the robot from the road surface. A control technique is adopted in which the robot is prevented from falling by controlling the robot with reference to ZMP (the point at which the moment caused by the reaction force acting on the robot from the road surface becomes zero).
Specifically, a control system for calculating an angle between a line connecting the actual trunk position of the robot and the target ZMP and a perpendicular passing through the target ZMP and correcting the target ZMP based on the calculated angle is prepared. When this control system is prepared, control for sending out the target ZMP in the direction in which the robot falls is performed, and the robot is prevented from falling.
[0003]
Usually, the following processing procedure is executed.
(1) A trunk position vector indicating the actual trunk position of the robot is obtained.
(2) An angle φ formed by a line connecting the point indicated by the trunk position vector and the target ZMP and a perpendicular passing through the target ZMP is calculated.
(3) The correction amount of the target ZMP is obtained by multiplying the calculated angle φ by a gain.
(4) The corrected target ZMP is calculated by adding the correction amount of the target ZMP to the target ZMP before correction.
(5) Based on the corrected target ZMP and a vector designating the position and orientation of the robot, the joint angle of each joint of the robot is calculated.
(6) The actual rotation angle of each joint is matched with the calculated joint rotation angle.
The above-described control is commonly referred to as “inverted pendulum control”, and the robot can be prevented from falling by sending the target ZMP in the direction of the robot's falling.
In the above, instead of the proportional control for obtaining the correction amount of the target ZMP by multiplying the calculated angle φ by the gain, the value obtained by multiplying the angle φ by the first gain and the changing speed of the angle φ are multiplied by the second gain. The correction amount of the target ZMP may be calculated by summing the values. Response speed can be improved by introducing proportional derivative control.
If the height of the actual trunk position of the robot does not change, the horizontal deviation between the actual trunk position of the robot and the target ZMP corresponds to the angle φ. Therefore, the horizontal deviation is substituted for the angle φ. Can also be used.
An example of a conventional technique is described in
[Patent Document 1]
JP-A-5-305579
[0004]
[Problems to be solved by the invention]
By mounting “inverted pendulum control” on the robot, the robot can avoid the fall by moving the support point in the fall direction.
In order for the robot to walk, the “inverted pendulum control” needs to be moderately effective, and the first gain value multiplied by the angle φ, the second gain value multiplied by the change speed of the angle φ, etc. are set to appropriate values. Must be adjusted.
However, if the robot is adjusted to a gain value appropriate for walking, it will be corrected after the robot tilts its trunk forward when the robot is stationary (that is, standing without walking). The phenomenon of repeated operation occurs. This is called self-excited vibration. When self-excited vibration occurs, the power of the robot is wasted, which is inconvenient.
It is an object of the present invention to realize a robot that can be walked without falling while the “inverted pendulum control” is moderately effective during walking, and that does not cause “self-excited vibration” while stationary.
[0005]
[Means and Actions for Solving the Problems]
The robot of the present invention includes a line connecting the actual trunk position of the robot and the target ZMP.,Pass the target ZMPVerticalThe present invention relates to a robot that performs control for correcting a target ZMP based on an angle φ formed by a line, ie, “inverted pendulum control”.
The walking robot of the present invention calculates a large correction amount ΔZMP of the target ZMP with respect to the angle φ during the walking motion, and calculates a small correction amount ΔZMP of the target ZMP with respect to the angle φ when stationary.More specifically, the control system of the robot corrects the target ZMP by a ZMP correction amount obtained by multiplying the value based on the angle φ by a gain. Decrease the value of gain while still.
In this robot, “inverted pendulum control” works properly while walking, so it can walk without falling, and while it is stationary, “inverted pendulum control” suppresses the effect of “self-excited vibration”. Do not wake up.
When the value obtained by multiplying the angle φ by the first gain and the value obtained by multiplying the change speed of the angle φ by the second gain are calculated to calculate the correction amount ΔZMP of the target ZMP, that is, a proportional differential control method is adopted. In this case, it is preferable to provide a gain changing means that employs a large first gain and a second gain during walking motion and employs a small first gain and a second gain during rest.
If the height of the actual trunk position of the robot does not change substantially, the horizontal deviation between the actual trunk position of the robot and the target ZMP can be approximately proportional to the angle φ. Based on this, the target ZMP can be corrected. In this case, the correction amount of the large target ZMP is calculated with respect to the deviation during the walking motion, and the small correction amount of the target ZMP is calculated with respect to the deviation during the stationary state.
Proportional differential control can also be adopted based on the deviation. In this case, the value obtained by multiplying the deviation by the first gain and the value obtained by multiplying the change rate of the deviation by the second gain are added to correct the target ZMP. Calculate the amount. The large first gain and the second gain are adopted during the walking motion, and the small first gain and the second gain are adopted during the stationary motion.
[0006]
DETAILED DESCRIPTION OF THE INVENTION
The main features of the embodiments described below are listed.
(Mode 1) The corrected target ZMP is compared with the actual ZMP, and is used to correct the target trunk position vector by the deviation.
(Mode 2) While stationary, the gain k3 for converting the deviation between the corrected target ZMP and the actual ZMP into the correction amount of the target trunk position vector is also lowered.
(Mode 3) The value of the gain k3 is not changed between walking and stationary.
[0007]
【Example】
FIG. 5 shows an
[0008]
An operator inputs data such as a course that the biped walking robot wants to walk to the walking command
[0009]
The operator further inputs the target ZMP position according to time series. In this case, since the left foot contact state, the both foot contact state, and the right foot contact state are known from the vectors C to F, the position on the left foot contact surface is specified in the left foot contact state, and the right foot contact surface is specified in the right foot contact state. Specify the position of. (B) shown in the lower right of FIG. 5 shows an example of a time-series change of the target ZMP in the Y direction, and the target ZMP within the both-foot contact period does not need to be input. The same applies to the target ZMP in the walking direction (X direction). In the left foot contact state, the position in the left foot contact surface is input, and in the right foot contact state, the position in the right foot contact surface is input. It is not necessary to input the target ZMP in the X direction within the both-foot contact period.
[0010]
FIG. 1 shows a method for setting the target ZMP. In this case, the robot walks in the X direction. The direction orthogonal to the walking direction is defined as the Y direction. The robot walks by alternately repeating the both-foot contact period and the one-foot contact period. The target ZMP within the one foot contact period must be within the contact surface of the contact foot. Otherwise, even if the actual ZMP is matched with the target ZMP, the robot falls. The target ZMP within the both-foot contact period may be in the region connecting the two contact surfaces. Obviously, considering the phenomenon in the Y direction, the target ZMP must move from the left foot contact surface to the right foot contact surface within the period in which both feet are in contact (see the inclined line C2). Alternatively, it has to move from the right foot contact surface to the left foot contact surface (see inclined line C4). The horizontal line C1 indicates the target ZMP when only the left foot is in contact with the ground, and the target ZMP is maintained within the left foot contact surface. The horizontal line C3 indicates the target ZMP when only the right foot is in contact with the ground, and the target ZMP is maintained within the right foot contact surface.
[0011]
The target ZMP in the X direction needs to satisfy almost the same conditions. The horizontal line C6 indicates the target ZMP in the X direction when only the left foot is in contact with the ground, and the target ZMP in the X direction is maintained within the left foot contact surface. The horizontal line C8 indicates the target ZMP in the X direction when only the right foot is in contact with the ground, and the target ZMP in the X direction is maintained within the right foot contact surface. The target ZMP in the X direction must move from the left foot contact surface to the right foot contact surface (see slope line C7) or from the right foot contact surface to the left foot contact surface while both feet are in contact with the ground. (See slope line C9). The horizontal line C10 indicates the target ZMP in the X direction when only the left foot is in contact with the ground again, and the target ZMP in the X direction is maintained within the left foot contact surface. In this case, since the robot walks and moves in the X direction, the X coordinate of the horizontal line C6 and the X coordinate of the horizontal line C10 change by the stride.
[0012]
By setting the target ZMP shown in FIG. 1 and controlling the actual ZMP observed during walking to match the target ZMP, the robot can walk without falling down.
However, the target ZMP shown in FIG. 1 repeats stationary / constant velocity change / static / constant velocity change... With respect to time. An infinite acceleration or deceleration is required at the timing of switching from stationary to constant velocity change, and the timing of switching from constant velocity variation to stationary, and a large load acts on the robot. Also, the robot's movement becomes awkward. These factors keep the maximum walking speed of the robot low.
[0013]
Some attempts have been made to correct the change pattern of the target ZMP where infinite acceleration or deceleration is required. FIG. 2B is obtained by smoothing the pattern of FIG. 2A by delay processing. By smoothing, the maximum values of necessary acceleration and deceleration can be kept small.
Since the target ZMP smoothed by the delay process is delayed as compared with the walking pattern, there arises a problem that the walking posture of the robot is not stable. P12 in FIG. 2 (B) corresponds to the timing of transition from the both-foot contact state to the right foot contact state. At this time, the target ZMP must be within the right foot contact surface. However, as shown in FIG. 2 (B), the change pattern of the target ZMP smoothed by delay processing is too slow, for example, when it must be in the right foot contact surface, it may not yet be in the right foot contact surface, The delay makes the robot's walking posture unstable, and if it is severe, it will fall.
In the present specification, the “right foot grounding state” means a state where only the right foot is grounded. The right foot is grounded even when both feet are grounded, but in this case, both feet are grounded, not the right foot grounded state. The same applies to the left foot contact state.
[0014]
FIG. 2C shows a target ZMP obtained by smoothing a sharp change point of the target ZMP. By performing the smoothing process, the maximum values of necessary acceleration and deceleration can be kept small.
Since the target ZMP subjected to the smoothing process is too early or too late as compared with the walking pattern, there arises a problem that the walking posture of the robot is not stable. P13 in FIG. 2C corresponds to the timing just before the transition to the both-foot contact state and still in the left-foot contact state. Nevertheless, the target ZMP is starting to deviate from the left foot contact surface. This is too early. P14 in FIG. 2C corresponds to the timing of transition from the both-foot contact state to the right foot contact state. At this time, the target ZMP must be within the right foot contact surface. Nevertheless, the target ZMP is not yet within the right foot contact surface. This is too late. The smoothed target ZMP is too early or too late as compared with the walking pattern, and the deviation makes the robot's walking posture unstable, and if it is severe, the target ZMP falls.
[0015]
With the current technology, the problem of the target ZMP trajectory shown in FIG. 2A cannot be solved without causing a new problem, which is one factor that hinders high-speed walking of the robot. Yes. In this embodiment, this problem is addressed as follows.
[0016]
As illustrated in FIG. 5B, the input target ZMP is discontinuous when viewed along the time axis. The walking command
In the uniform acceleration trajectory A, the maximum acceleration that can be reasonably realized by the biped robot is assumed to be maintained. The moving speed of the target ZMP is increased by the uniform acceleration trajectory A. When the moving speed of the target ZMP reaches the maximum speed of the biped robot, the uniform speed trajectory B is used thereafter. When approaching the target ZMP on the opposite foot side, it switches to the uniform deceleration trajectory C. In the uniform deceleration trajectory C, the maximum deceleration that can be easily realized by the biped robot is assumed to be maintained. Due to the uniform deceleration trajectory C, the moving speed of the target ZMP becomes zero. When zero, a trajectory where the target ZMP matches the target ZMP on the opposite foot side is calculated. This is the same movement pattern as if the train accelerates, maintains the maximum speed, decelerates and stops, and does not waste any effort. Various techniques for calculating a trajectory for decelerating and stopping at a predetermined position have been developed.
FIG. 2D shows an example of a target ZMP trajectory connected by a trajectory including a constant acceleration trajectory and a constant deceleration trajectory. As indicated by a point P15, after waiting for the transition to the both-foot contact state, the target ZMP trajectory is shown. Since ZMP moves to the other foot side, there is no problem that the target ZMP changes too quickly. On the other hand, as indicated by a point P16, the target ZMP has moved to a position within the one-foot grounding surface before changing from the both-foot grounding state to the one-foot grounding state, and there is no problem that the change of the target ZMP is too slow. FIG. 2 (E) shows the change over time of the moving speed of the target ZMP. The speed is increased on a uniform acceleration trajectory, the maximum speed is maintained when the maximum speed is reached, and then the vehicle is decelerated at a constant deceleration.
[0017]
In FIG. 2, it is assumed that the target ZMP within one leg contact period is stationary. However, the target ZMP within the one-foot contact period does not need to be stationary, and may move from the heel direction to the toe direction, for example. The target ZMP within the one-foot contact period only needs to be within the contact surface of the contacted foot, and in the case of a human, moves from the heel direction to the toe direction.
FIG. 3 shows a trajectory C14 in which the trajectories (C11, C12, C13) of the target ZMP that move from the heel direction to the toe direction during the one-foot contact period are connected by a constant acceleration trajectory, a maximum speed constant speed trajectory, and a constant deceleration trajectory. Is illustrated. The uniform acceleration trajectory starts at the moving speed of the target ZMP that moves from the heel direction to the toe direction during the one-foot contact period, and the uniform deceleration track ends at the moving speed of the target ZMP during the one-foot contact period. The moving speed of the target ZMP changes continuously and no discontinuous change occurs.
C15 in FIG. 3 shows the trajectory of the target ZMP connected by the conventional technique, and since the speed fluctuates discontinuously, the robot is required to operate with a large acceleration or deceleration.
[0018]
The trajectory illustrated in FIGS. 2 and 3 shows changes in the X coordinate or the Y coordinate with respect to the time axis. Here, the time axis is set assuming that the robot walks at the maximum speed. For the constant acceleration trajectory, constant velocity trajectory, and constant deceleration trajectory, calculation is performed using the maximum acceleration, maximum speed, and maximum deceleration possible within the range of the robot's ability.
The data created by the walking command
[0019]
The walking command
The calculated ZMP is compared with the target ZMP by the comparison device 3. The target ZMP used here is connected by the device 6 and changes smoothly with respect to time as illustrated in FIG. 5C.
[0020]
If the calculated ZMP and the target ZMP do not match, the time series of the six types of vectors input by the operator is impossible. Therefore, in this embodiment, the trunk position vector P is corrected by the device 4. Here, the trunk position vector P is corrected so that the calculated ZMP approaches the target ZMP. The
[0021]
When the trunk position vector P is corrected so that the calculated ZMP substantially matches the target ZMP, the corrected trunk position vector P, the five input vectors, and the target ZMP that has been input and processed for connection By this, the robot can be walked. That is, walking command data that is dynamically established is created. Therefore, the walking command data is completed by the corrected trunk position vector P, the inputted five vectors, and the target ZMP inputted and processed for connection, and this is stored (device 5). The completed walking command data is taught to the biped walking robot.
[0022]
Next, the mechanical structure of the biped walking robot will be described with reference to FIGS. In this specification, the front-rear direction of the foot (the direction of movement of the robot) is the X axis, the left-right direction is the Y axis, and the vertical axis is the Z axis. Each axis is orthogonal to each other. 6 is a front view of both lower limbs of the biped walking robot of this embodiment, FIG. 7 is a side view of the left lower limb, FIG. 8 is a diagram for explaining the structure of the ankle joint, and FIG. It is a figure explaining the detail of an actuator, and FIGS. 10-13 is a figure explaining the motion of a foot | leg part. The left and right lower limbs are mirror-symmetric.
[0023]
As shown in FIG. 6, the left and right
[0024]
First, the hip joint 22 will be described. As shown in FIG. 7, a
The upper end of the
[0025]
Next, the knee joint 24 will be described. Two
[0026]
Next, the ankle joint 26 will be described. FIG. 8 is a simplified and deformed view for explaining the structure of the ankle joint 26, and does not necessarily match the actual shape and dimensions. Two
[0027]
Each joint is driven by a wire (excluding the rotation of the hip joint around the Z axis. This rotation alone is directly rotated by a motor without using a wire). One end of each wire is attached to the end side member, and the other end is connected to an actuator composed of a motor and a feed screw. When the feed screw (extending in the Z direction) is rotated by the motor, the nut screwed to the feed screw is sent in the feed screw direction, and the tip of the wire connected to the nut is advanced and retracted in the Z-axis direction. The distal end member can be pulled or loosened by the wire by advancing and retracting the wire tip in the Z-axis direction.
[0028]
First, a group of wires for rotating the ankle joint will be described with reference to FIGS. Wire end guides 70a, 70b, 70c are fixed to the
The lower ends of the three
[0029]
The
With the three
[0030]
In addition, you may arrange | position a wire connection point on the both sides of the X-axis ahead of the Y-axis of the ankle joint 26, and on the X-axis behind the Y-axis. Even when the wire connection points are arranged in this way, the rotation angle around the X axis and the rotation angle around the Y axis of the ankle joint 26 can be independently adjusted by the wire.
[0031]
10 to 13 are schematic diagrams for explaining the movement of the
[0032]
FIG. 10 shows that the wire (not shown) connected to the
[0033]
12 and 13 are diagrams for explaining the rotation around the Y-axis. FIG. 12 is a plan view of the
Note that the wire tension required to lift the rear side of the
[0034]
Although not shown, the
[0035]
As shown in FIG. 8, three
[0036]
The upper ends of the three
When the
The
When the distance between the
[0037]
As shown in FIG. 9, the
[0038]
As shown in FIG. 7, one end of a
[0039]
As described above, the following posture change is realized.
(1) The toe is raised by contracting the
(2) The outer side of the
(3) The
With the four actuators and four wires, the rotation angle of the ankle joint 26 around the X axis (2 rotation), the rotation angle of the ankle joint 26 around the Y axis (1 rotation), and the knee joint 24 The rotation angle of rotation (the rotation of 3) can be adjusted independently.
In order to adjust the rotation angle around three axes with four actuators, the actuators appear redundant. However, the rigidity relating to the rotation angle can be adjusted using this redundancy. This point will be described later.
[0040]
Since not only the knee joint 24 but also the actuator for adjusting the rotation angle of the ankle joint 26 is disposed on the
[0041]
Next, the wire and actuator for adjusting the rotation angle around the hip joint 22 will be described. As shown in FIGS. 6 and 7, three arc-shaped wire terminal guides 48a, 48b, and 48c are attached at predetermined positions on the upper portion of the
[0042]
The
[0043]
The
[0044]
As described above, the
(1) The
(2) The
With the three actuators and the three wires, the rotation angle of the
[0045]
Since the actuator for moving the
[0046]
A
As shown in FIG. 16, when the
[0047]
Since the
In FIG. 6, it is assumed that the retracted amount of the
[0048]
The wire tension determines the stiffness of the rotation angle around the joint. For example, when the
On the other hand, when the
[0049]
The robot of this embodiment is a system (pull-pull system) in which one of the two wires is pulled and rotated in the clockwise direction, and the other wire is pulled and rotated in the counterclockwise direction. Since a non-linear spring is inserted, the rigidity can be adjusted independently of the robot posture. When it is necessary to follow flexibly, the rigidity is low, and when it is necessary to stabilize the posture, the rigidity can be adjusted to high rigidity.
[0050]
The reason why the rigidity around the joint can be adjusted by the pull-pull method and the nonlinear spring will be described with reference to FIGS. In this description, a simple example in which the foot is rotated around the Y axis by two wires will be described. FIG. 17 schematically illustrates such a configuration. As shown in FIG. 17, the
[0051]
FIG. 18 is a graph showing the spring characteristics of the front
The manner in which the rigidity of the
[0052]
It is assumed that the
[0053]
The force required to expand and contract the
When combined with a pull-pull system and a non-linear spring, the rigidity can be adjusted independently of the rotation angle of the joint.
[0054]
The inclination angle of the spring characteristic graph of FIG. 18 is proportional to the rigidity. Therefore, by obtaining the amount of elongation of the spring whose inclination angle corresponds to the intended stiffness and giving the amount of elongation, the desired stiffness can be adjusted.
Regardless of the posture of the robot, if the length of the perpendicular line from the center of rotation to the wire, that is, the length of the arm of the moment is substantially constant, the tension or the extension amount can be determined from the rigidity.
However, if the length of the perpendicular line from the center of rotation to the wire, that is, the length of the moment arm changes, the length of the moment arm must be taken into account before determining the tension from the stiffness. . For example, it is assumed that the wire tension is 1 kg. At this time, the length from the center of rotation to the point of application of the 1 kg tension is 10 cm (case 1) and 20 cm (case 2). At this time, the
When the stiffness is specified, the
The rotation angle around the X axis of the ankle joint 26 is determined by the amount of pulling of the
The rotation angle around the Y axis of the ankle joint 26 is determined by the amount of pulling of the
The rotation angle around the knee joint 24 is determined by the
The rotation angle of the
The rotation angle of the
[0055]
The robot of the present invention is wire-driven, and there is no need to mount an actuator on each joint. Since the actuator can be mounted at a position away from the joint, the joint can be reduced in size and weight, and the degree of freedom in mounting the actuator is increased. In the case of the present invention, the number of wires may be three for a biaxial joint, four for a triaxial joint, that is, the number of axes plus one for one joint. Normally, two wires are required for one degree of freedom of the joint. Since the required number of wires and the number of actuators are reduced, the limbs can be slimmed and lightened. As a result, it is possible to speed up the movement of the distal side member, and it is possible to realize a robot similar to humans and animals in terms of appearance and operation.
[0056]
The actuator group is not limited to being arranged on the thigh. For example, an actuator group may be arranged on the upper arm portion of the upper limb, and each actuator may be operated to rotate the forearm relative to the upper arm or rotate the hand relative to the forearm.
The actuator controller described above receives the rotation angle and tension of the joint, but may be configured to input the joint stiffness instead of the tension.
In such a configuration, the controller calculates the length of the moment arm between the rotation center of the distal member (for example, the foot) and the connection point of the wire from the rotation angle of the joint, and the length of the moment arm From this, the tension of the wire at which the joint has the desired rigidity is calculated. Then, the operation amount of the actuator with the wire tension calculated is output to the actuator. In a configuration where the moment arm changes greatly with the rotation of the end side member (a configuration in which there is no wire end guide), the rigidity is input to the controller instead of the tension as described above, and this is processed. Thus, the rigidity of the joint can be controlled more accurately.
[0057]
Next, a control device for a biped walking robot having the above-described mechanical configuration will be described.
FIG. 19 shows a configuration of a control device for controlling biped walking of a robot, and a trunk position vector P created by the walking command data creation device 1 (this is input by the operator using the walking command data creation device 1). ), A trunk posture vector R, a left foot tip position vector C, a left foot tip posture vector D, a right foot tip position vector E, and a right foot tip posture vector F are input, and inverse kinematics calculation is performed. A
[0058]
The
The target rotation amount θ calculated for each actuator is input to the
[0059]
The target ZMP is input to the
The
When a person walks, particularly when traveling at a high speed, the human body makes it easier to travel by tilting the trunk forward. The center of gravity is moved forward by tilting the trunk forward, and the foot is moved forward so as to follow the center of gravity moved forward. Inverted pendulum control corresponds to this kind of human control, and controls to tilt the trunk position forward.
[0060]
The target ZMP (340) corrected by the inverted pendulum model is compared with the actual ZMP (326), and the deviation (342) is calculated. The actual ZMP (326) is calculated by calculating the outputs of a plurality of
[0061]
On the surface on which the robot walks, a trunk position vector P, a trunk posture vector R, a left foot tip position vector C, a left foot tip posture vector D, a right foot tip position vector E, a right foot tip posture vector F, At the stage of determining the target ZMP, unexpected irregularities exist, and the robot's feet may step, for example. This is equivalent to kicking a person. At that time, the human is prevented from falling by bending the knee and sending the position of the waist forward. The profile control process corresponds to this kind of human control, and controls to move the trunk forward.
When a fall is prevented by bending the knee and moving the trunk forward in a balanced manner, walking cannot be continued as it is. After preventing a fall, it is necessary to extend the knee and return to the normal walking posture. The inverted pendulum model executes control corresponding to it.
Figuratively speaking, the follow model is equivalent to body flexibility, and the inverted pendulum model is equivalent to the ability to maintain walking posture.
[0062]
In this embodiment, the
Let ΔP be the amount of correction of the target trunk position vector calculated by the profile control model. When the correction amount ΔP is added to the input trunk position vector P and the inverse
That is, instead of correcting the trunk position vector P uniformly with the formula of P + ΔP as in the past, P + αnThe trunk position vector P is corrected according to × ΔP. If you can cope with n = 0 first, P + α0Correct by xΔP (= P + ΔP). If we can cope with the second n = 1, P + α1Correct with xΔP. If you can cope with the third n = 2, P + α2Correct with xΔP. If you can cope with the fourth n = 3, P + α3Correct with xΔP.
The specific processing procedure is as follows.
(1) The correction amount of the target trunk position vector calculated by the profile control model is ΔP.
(2) First, n = 0 and P + α0Correct by xΔP (= P + ΔP).
(3) If P + ΔP solves the inverse kinematics and obtains the joint angle θ, if all the joints are within the allowable rotation angle, the process is terminated.
(4) In (3) above, if the calculated joint angle θ is outside the allowable rotation angle for at least one joint, the correction amount is reduced.
(5) For that purpose, n = 1 and correct by P + α × ΔP. α is 1 or less, and the correction amount is reduced.
(6) As a result of solving the inverse kinematics by P + α × ΔP and obtaining the joint angle θ, if all the joints are within the allowable rotation angle, the process is terminated.
(7) In (6), if the calculated joint angle θ is outside the allowable rotation angle for at least one joint, the correction amount is reduced.
(5) For that purpose, n = 2 and P + α2Correct with xΔP. α is 1 or less, and the correction amount is reduced.
P + α with n = 3,4,5nThe above procedure is repeated until all joint rotation angles θ realizing the trunk position vector P corrected by × ΔP are within the allowable rotation angle.
[0063]
P + αnSince the correction is made as xΔP, unless n = 0, the follow-up control is insufficient. However, if the robot does not have enough flexibility to make the profile control sufficiently effective, it is inevitable that the profile control will be insufficient. As a result of sufficiently performing the profile control, the joint rotation angle rotates to the limit, and if the rotation angle is still insufficient even if the limit is reached, there is a risk of falling. As in this embodiment, when the control amount of the control is reduced so that the joint rotation angle is within the limit, the control is executed within the flexibility of the robot, and the situation where the robot falls It can be greatly reduced.
[0064]
Follow-up control corresponds to body flexibility. The greater the gain k3 (conversion device 344) for the profile control, the more flexible the limb of the robot changes its posture, and the received shock is reduced. Therefore, it is preferable that the profile control works strongly when receiving a shock such as when landing.
On the other hand, if the profile control is working strongly at all times, the posture may be disturbed by inertial force when standing on one foot, and landing may occur at a timing that is not scheduled to land, resulting in a large landing shock. The setting of the value of the gain k3 for the profile control has the above-mentioned conflicting elements, and it is difficult to adjust to the optimum value.
[0065]
In this embodiment, in order to solve this reciprocal relationship, a method of increasing or decreasing the value of the gain k3 for the follow-up control in accordance with the state of the robot is adopted.
FIG. 20A shows an example in which the gain k3 for follow-up control is changed in accordance with the change of the walking pattern and the like, and the gain k3 for follow-up control is set before and after switching from the one-foot contact state to the both-foot contact state. Increase, otherwise keep low. In this case, since the control that works well before and after receiving the landing shock works well, the limbs of the robot flexibly respond to the landing shock. At other times, the gain k3 for follow-up control is small, and the posture maintenance force is kept high. The posture is not disturbed by the inertial force when standing on one leg, and the landing shock does not increase because the landing is made at a timing not scheduled to land. The gain k3 for the profile control can be increased or decreased in accordance with the time series change of the six vectors created by the walking command
[0066]
20B shows the force received by the force sensor installed on the left sole, FIG. 20C shows the force received by the force sensor installed on the right sole, and FIG. 20D shows both sensors. The total power received by Since a strong inertial force works when landing, the total force is large when landing. If the gain k3 for control following the total force is made proportional, the gain k3 for control following the landing shock can be increased and kept low at other times. A
Note that when the profile control is to be applied strongly, the gains k1 and k2 of the inverted pendulum model may be increased simultaneously, but only the gain k3 for the profile control may be increased.
[0067]
In the inverted pendulum model, the inclination φ from the vertical of the inclination line from the target ZMP toward the trunk position vector P is calculated (see 334 in FIG. 19). The calculated φ is input to the ZMP correction
If the values of gains k1, k2, and k3 are adjusted to appropriate values for walking control, the robot tilts the trunk forward and corrects it while the robot is stationary without walking May occur repeatedly. This is called self-excited vibration. When self-excited vibration occurs, the power of the robot is wasted, which is inconvenient.
In order to solve this problem, while the robot is stationary without walking, the values of gains k1 and k2 used in the equation of k1 × φ + k2 × dφ / dt for calculating the ZMP correction amount ΔZMP are It was found that it is effective to lower the value below an appropriate value. In this case, the gain k3 for the follow-up control may be reduced at the same time, but if the gains k1 and k2 are lowered, the gain k3 for the follow-up control need not be lowered. It has been confirmed that the robot continues to stand upright even if the gains k1 and k2 (and gain k3) are decreased while the robot is stationary without walking. No power is wasted on the self-excited vibration.
FIG. 19 illustrates that the
[0068]
The robot of this embodiment is a system (pull-pull system) in which one of two wires is pulled and rotated clockwise, and the other wire is pulled and rotated counterclockwise. Since the spring is inserted, the rigidity can be adjusted independently of the robot posture. It is effective to use this characteristic to walk while changing rigidity during walking.
While landing, you may be stepping on unexpected irregularities, and if your lower limbs are flexible, you are less likely to be affected by unexpected irregularities. If the rigidity is increased and the posture is controlled faithfully, the influence of unexpected unevenness cannot be absorbed and the robot may slip or fall over.
Therefore, in this embodiment, the stiffness is changed according to the progress of the walking pattern. Here, the stiffness of the left and right lower limbs is changed separately.
FIG. 21A shows a walking pattern and a change pattern of rigidity of the left and right lower limbs, and both the left and right lower limbs are kept low in rigidity during ground contact and kept high while moving in the air. The rigidity of the right lower limb is reduced immediately before the transition from the left foot contact state to the both foot contact state, and the left lower limb rigidity is decreased immediately before the transition from the right foot contact state to the both foot contact state. The stiffness of the left leg and the stiffness of the right leg are controlled separately. Since the lower limbs in contact with the ground are low in rigidity, the grounded lower limbs flexibly absorb the influence of the unevenness even if an unexpected unevenness is stepped on. On the other hand, the rigidity of the foot in the air is kept high, and the posture maintenance force is kept high. The posture is not disturbed by the inertial force when standing on one leg.
Various variations exemplified in FIGS. 21A to 21C exist in the change pattern of rigidity.
(A) Increase the rigidity of the left lower limb between the left foot contact state and the both foot contact state and increase the right foot contact state. The rigidity of the right lower limb is lowered during the right foot contact state and the both foot contact state, and is increased during the left foot contact state.
(B, C) The rigidity of the left lower limb is lowered at the timing just before the transition from the right foot grounding state to the both foot grounding state, and is increased until the next right foot grounding state. The rigidity of the right lower limb is lowered immediately before the transition from the left foot contact state to the both foot contact state, and is increased until the next left foot contact state.
(B) Continuously increasing the rigidity of the lower limbs.
(C) Raise the rigidity of the lower limbs in a staircase pattern.
According to any of the change patterns, the grounded lower limb flexibly responds to the influence of unevenness, while the rigidity of the foot in the air is maintained high, and the posture maintenance force is maintained high.
[0069]
In the following, a technique for controlling an actuator so as to follow a target rotation angle that changes with time and an instruction value related to stiffness that changes with time using the control device of FIG. 19 will be described. Hereinafter, an example will be described in which the rotation angle and rigidity of the ankle joint 26 around the X axis are controlled by the
[0070]
(First control technology)
FIG. 22 is a control block diagram of the
First, the
The stiffness instruction value Q1 is input to the
The motor torque Q4 compensated for the friction and inertia is added to the motor torque increase / decrease value P5 calculated by the feedback control of the rotation angle. Finally, the added motor torque P6 is commanded. Actually, since the torque of the
[0071]
Also for the
[0072]
According to this control block, the motor torque Q4 necessary for adjusting to the instructed rigidity is added. For this reason, the rigidity of the ankle joint 26 around the X axis is controlled to the instructed rigidity Q1. The motor torque Q3 (in this case, the motor torque as the wire tension) for adjusting to the specified rigidity Q1 is balanced between the actuator 68b and the
According to the control block of FIG. 22, even when the rotation angle P1 and the rigidity Q1 are instructed independently, the instructed rotation angle P1 and the rigidity Q1 can be controlled.
The above-described event is always obtained during the operation in which the rotation angle and stiffness command values P1 and Q1 change from moment to moment, and can always follow the command values P1 and Q1 that change with time.
In order to change the stiffness instruction value Q1 with time according to the state of walking, the stiffness command value Q1 may correspond to the time-dependent change of the walking command data, or the output of the
[0073]
(Second control technology)
FIG. 23 is a control block diagram of the
In this case, the
The control block diagram for feedback control of the rotation angle of the
According to this control technique, a torque necessary for adjusting to the instructed stiffness Q1 is applied from the
The control technique shown in FIG. 23 controls the rotation angle and the rigidity independently by using the redundancy of using two motors for one degree of freedom of the rotation angle, and is similar to that of humans. ing. Humans also rotate around the joints using redundant muscles in terms of joint freedom. The rigidity is adjusted using the redundancy.
According to the control block of FIG. 23, when the rotation angle and the rigidity are instructed independently, the instructed rotation angle and the rigidity can be controlled.
[0074]
22 and 23, the rigidity can be changed in accordance with the walking pattern. When the posture needs to be changed flexibly, the rigidity can be changed. When the posture needs to be maintained, the rigidity is increased to change the posture. Can be maintained. In the present embodiment, as described with reference to FIG. 21, walking is performed while the rigidity of the grounded foot is lowered and the rigidity of the foot floating in the air is adjusted to be high.
[0075]
In the present embodiment, the gain k3 for follow-up control and the stiffness of the lower limb are changed in accordance with the walking pattern. Although it is useful to use only one of gain change and stiffness change, it is effective to use in combination. The behavior can be made flexible and stable.
[0076]
When the walking command data is created using the walking command
However, when walking at a higher speed, it is advantageous to walk with the trunk twisted, and it is advantageous to input a posture related to the trunk twist in addition to the trunk vector.
[0077]
FIG. 24 (A) shows a walking posture in the case of the conventional teaching technique, and the trunk does not twist even if it tilts forward. In the first place, a vector specifying the torsion of the trunk is not taught.
FIG. 24B shows a walking posture obtained by teaching a trunk torsion vector Q indicating the direction of the line connecting the left and right sides of the trunk, in addition to the trunk vector R indicating the direction of the symmetrical line of the trunk. Is shown. When the trunk is twisted in conjunction with the movement of the foot, even if the movement speed of the foot relative to the trunk is the same, the step length of one step can be increased, and the robot can walk at high speed.
FIG. 24C shows a teaching example of the trunk torsion vector Q, which is viewed in plan. In order to teach the left foot tip position vector C and the right left foot tip position vector E, the angle formed by the line connecting the centers of the left and right feet with the X axis is known. Here, the robot is taught with a trunk torsion vector Q such that the angle between the trunk torsion vector Q and the X axis is 50% of the angle between the line connecting the centers of the left and right feet with the X axis. In addition, the said ratio is not limited to 50%, It has the width | variety before and behind. If the ratio is too small, there is no point in twisting the trunk, and if the ratio is too large, a large amount of energy is consumed to twist the trunk, so a range of about 30 to 60% is preferable.
If the trunk vector Q that is twisted in conjunction with the movement of the foot is taught, the stride of the robot having the same ability can be increased and the robot can be walked at high speed.
Instead of designating the trunk torsion vector, the trunk torsion vector may be calculated from the angle formed by the line connecting the centers of the left and right feet with the X axis.
[0078]
In the control apparatus of FIG. 19, the trunk posture vector R is input, inverse kinematics calculation is performed, a joint angle necessary for controlling the input trunk posture vector R is calculated, and the joint thus obtained is calculated. In order to perform feedback control using the angle as a target joint angle, the actual trunk vector R matches the trunk vector R instructed, that is, the trunk vector R obtained by the walking command data creation device 1 (FIG. 5). It should be. However, it was found that the actual trunk vector measured by attaching a gyro to the robot did not agree. This is presumed to be caused by looseness of joints, deflection of members, and the like.
If the target trunk posture vector and the actual trunk posture vector do not match, the robot cannot take the intended trunk posture.
In the present embodiment, the trunk posture vector R created by the walking command
[0079]
(1) Specifically, the trunk posture vector R created by the walking command
In the following, the target trunk posture vector is R1, and the actual trunk posture vector is R2. The actual trunk posture vector R2 is calculated by the
(2) A deviation vector ΔR between the target trunk posture vector R1 and the actual trunk posture vector R2 is calculated (
(3) Therefore, the target trunk posture vector R1 is corrected in anticipation of the deviation vector ΔR. The corrected target trunk posture vector is R1*R1*= R1 · ΔR
(4) The robot uses the corrected target trunk posture vector R1.*Operate with the goal. The actual trunk posture vector realized by the robot is R1.*Not. Then deviate. As a result of the deviation, it matches the target trunk posture vector R1. Corrected target trunk posture vector R1*This is because the trunk posture vector R1 intended by the operator is corrected in anticipation of the shift vector ΔR.
(5) The corrected target trunk posture vector is R1*When calculating
Y = α · ΔR + (1−α) · I is calculated, and then R1*= R1 · Y may be calculated. The
In this case, this corresponds to correcting the target trunk posture vector R1 in anticipation of α% of the deviation vector ΔR.
The target trunk posture vector correction process can be performed at various stages. When the deviation vector ΔR is found, the trunk posture vector R created by the walking command
[0080]
Specific examples of the present invention have been described in detail above, but these are merely examples and do not limit the scope of the claims. The technology described in the claims includes various modifications and changes of the specific examples illustrated above.
For example, in this embodiment, the
In this embodiment, the correction amount of the target ZMP is calculated based on the angle φ formed by the slope line connecting the point indicated by the trunk position vector P and the target ZMP and the perpendicular passing through the target ZMP. If the height of the position does not change substantially, the horizontal deviation between the actual trunk position of the robot and the target ZMP may be used instead of the angle φ.
In the present embodiment, the correction amount of the target ZMP is calculated by performing proportional differentiation processing on the angle φ (or horizontal deviation), but it may be simply made proportional, or proportional differential integration processing may be performed.
The technical elements described in the present specification or the drawings exhibit technical usefulness alone or in various combinations, and are not limited to the combinations described in the claims at the time of filing. In addition, the technology illustrated in the present specification or the drawings achieves a plurality of objects at the same time, and has technical utility by achieving one of the objects.
[0081]
【The invention's effect】
According to the present invention, the “inverted pendulum control” is effective during walking of the robot, so that the robot can walk without falling, while the “inverted pendulum control” is suppressed during the stationary state, ”Will not occur. The robot is prevented from wasting power due to self-excited vibration.
[Brief description of the drawings]
FIG. 1 is a diagram for explaining how a target ZMP moves.
FIG. 2 is a diagram illustrating various curves in which a target ZMP that changes sharply is smoothed.
FIG. 3 is a diagram for explaining another example in which a target ZMP moves.
FIG. 4 is a diagram for explaining that the speed at which target ZMP data is output is variable.
FIG. 5 is a diagram showing a configuration of a walking command data creation device.
FIG. 6 is a front view of both lower limbs of the robot according to the present embodiment.
FIG. 7 is a side view of the left lower limb of the robot.
FIG. 8 is a view for explaining the structure of the ankle joint of the robot.
FIG. 9 is a diagram illustrating details of an actuator of the robot.
FIG. 10 is a view for explaining the movement of the foot of the robot.
FIG. 11 is a view for explaining the movement of the foot of the robot.
FIG. 12 is a view for explaining the movement of the foot of the robot.
FIG. 13 is a view for explaining the movement of the foot of the robot.
FIG. 14 is a front view of a nonlinear spring in which a wire is incorporated.
FIG. 15 is a side view of a non-linear spring incorporating a wire.
FIG. 16 is a diagram showing a state in which a nonlinear spring is deformed by wire tension.
FIG. 17 is a view for explaining the rigidity around the joint of the robot.
FIG. 18 is a graph for explaining nonlinear spring characteristics and stiffness around a joint.
FIG. 19 is a control block diagram illustrating a configuration of a control device.
FIG. 20 is a diagram showing a pattern for increasing / decreasing a gain for follow-up control following a walking pattern.
FIG. 21 is a diagram showing a pattern for increasing / decreasing the stiffness of the lower limb following the walking pattern.
FIG. 22 is a first control block diagram for independently controlling the joint rotation angle and rigidity.
FIG. 23 is a second control block diagram for independently controlling the joint rotation angle and the stiffness.
FIG. 24 is a diagram schematically illustrating a trunk torsion vector teaching method and a teaching result.
[Explanation of symbols]
1: Walking command data creation device
2: ZMP calculation unit
3: Comparison part
4: Trunk position vector correction unit
5: Completed walking command data
10: Robot
12: Lower limb
14: thigh
16: Lower leg
18: Foot
20: trunk
22: Hip joint
24: Knee joint
26: Ankle joint
28: Pelvis
30: Shaft
32: Universal joint
34: Bearing
36: Disc
38: Motor
40: Flange
42: Shaft
44: Flange
46: axis
48a, 48b, 48c: wire termination guide
49a, 49b, 49c: wire connection points
50a, 50b, 50c: wire
52a, 52b, 52c: Actuator
54: Pulley
56: Actuator
58: Flange
60: Flange
62: Cross-shaped universal joint
64a, 64b, 64c, 64d: pulley
66a, 66b, 66c, 66d: wire
68a, 68b, 68c, 68d: Actuator (ball screw)
102: Flange
104: Movable plate
106: Flange
108: Guide rod
110: Guide rod
112: Guide rod
114: Motor
116: Gear
118: Gear
120: Lead screw
122: Flat plate part
124: Minebe
126: Flange
128: Shaft
130: Flange
132: Shaft
304: Inverse kinematics calculator
334: Inverted pendulum model
k1, k2, k3: Gain
322: Force sensor
328: Gyro
350: Deviation vector calculation unit
352: Target trunk posture vector correction vector calculation device
Claims (4)
前記制御系は、前記角度に基づく値にゲインを乗じたZMP補正量によって目標ZMPを補正するものであり、ロボットの歩行動作中のゲインの値よりもロボットの静止中のゲインの値を小さくすることを特徴とする歩行ロボット。A walking robot with a line connecting the actual torso position and the target ZMP of the robot, the control system for correcting the desired ZMP on the basis of the angle between the vertical line passing through the target ZMP,
The control system corrects the target ZMP by a ZMP correction amount obtained by multiplying the value based on the angle by a gain, and makes the gain value when the robot is stationary smaller than the gain value when the robot is walking. A walking robot characterized by that .
前記制御系は、前記偏差に基づく値にゲインを乗じたZMP補正量によって目標ZMPを補正するものであり、ロボットの歩行動作中のゲインの値よりもロボットの静止中のゲインの値を小さくすることを特徴とする歩行ロボット。A walking robot having a control system for correcting a target ZMP based on a horizontal deviation between the actual trunk position of the robot and the target ZMP;
The control system corrects the target ZMP by a ZMP correction amount obtained by multiplying the value based on the deviation by a gain, and makes the gain value when the robot is stationary smaller than the gain value when the robot is walking. A walking robot characterized by that .
補正された目標ZMPに基づいて目標体幹位置の補正量を算出する体幹位置補正量算出手段と、Trunk position correction amount calculating means for calculating a correction amount of the target trunk position based on the corrected target ZMP;
目標体幹位置の補正量に基づいて補正された目標体幹位置を実現する歩行ロボットの関節角を算出する関節角算出手段を備え、A joint angle calculating means for calculating a joint angle of a walking robot that realizes the target trunk position corrected based on the correction amount of the target trunk position;
前記関節角算出手段は、算出する関節角が関節の許容回転範囲外の場合に、算出する関節角が許容回転範囲内となるまで目標体幹位置の補正量を漸減させて繰り返し関節角を算出することを特徴とする請求項1又は2に記載の歩行ロボット。When the calculated joint angle is outside the allowable rotation range of the joint, the joint angle calculation means repeatedly calculates the joint angle by gradually decreasing the correction amount of the target trunk position until the calculated joint angle is within the allowable rotation range. The walking robot according to claim 1 or 2, characterized in that:
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2002343096A JP3888295B2 (en) | 2002-11-26 | 2002-11-26 | Walking robot that lowers the gain of inverted pendulum control when stationary |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2002343096A JP3888295B2 (en) | 2002-11-26 | 2002-11-26 | Walking robot that lowers the gain of inverted pendulum control when stationary |
Publications (2)
Publication Number | Publication Date |
---|---|
JP2004174653A JP2004174653A (en) | 2004-06-24 |
JP3888295B2 true JP3888295B2 (en) | 2007-02-28 |
Family
ID=32704951
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2002343096A Expired - Fee Related JP3888295B2 (en) | 2002-11-26 | 2002-11-26 | Walking robot that lowers the gain of inverted pendulum control when stationary |
Country Status (1)
Country | Link |
---|---|
JP (1) | JP3888295B2 (en) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102405449A (en) * | 2009-04-28 | 2012-04-04 | 丰田自动车株式会社 | Control portion for inverted vehicle |
Families Citing this family (11)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2004181600A (en) * | 2002-12-05 | 2004-07-02 | Sony Corp | Leg type moving robot |
JP4086765B2 (en) * | 2003-11-28 | 2008-05-14 | ソニー株式会社 | Robot equipment |
JP2004181599A (en) * | 2002-12-05 | 2004-07-02 | Sony Corp | Leg type moving robot |
US7366587B2 (en) | 2002-12-05 | 2008-04-29 | Sony Corporation | Legged mobile robot |
JP2004181601A (en) * | 2002-12-05 | 2004-07-02 | Sony Corp | Leg type moving robot |
JP4115374B2 (en) * | 2003-11-18 | 2008-07-09 | ソニー株式会社 | Robot device |
JP2004249374A (en) * | 2003-02-18 | 2004-09-09 | Sony Corp | Leg type mobile robot |
JP2004195554A (en) * | 2002-12-16 | 2004-07-15 | Sony Corp | Leg type mobile robot |
JP4742263B2 (en) * | 2005-12-16 | 2011-08-10 | 国立大学法人電気通信大学 | Walking assist device |
JP4844416B2 (en) * | 2007-02-01 | 2011-12-28 | トヨタ自動車株式会社 | Biped robot |
KR100958114B1 (en) | 2007-12-17 | 2010-05-18 | 한국과학기술연구원 | Apparatus and method for balancing and damping control in whole body coordination framework for biped humanoid robot |
-
2002
- 2002-11-26 JP JP2002343096A patent/JP3888295B2/en not_active Expired - Fee Related
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102405449A (en) * | 2009-04-28 | 2012-04-04 | 丰田自动车株式会社 | Control portion for inverted vehicle |
CN102405449B (en) * | 2009-04-28 | 2013-08-21 | 丰田自动车株式会社 | Control device for inverted vehicle |
Also Published As
Publication number | Publication date |
---|---|
JP2004174653A (en) | 2004-06-24 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
JP3888294B2 (en) | Robot walking while changing the gain of ZMP compensation control | |
US7072740B2 (en) | Legged mobile robot | |
US7615956B2 (en) | Robot | |
US7278501B2 (en) | Legged walking robot and motion control method therefor | |
US8825213B2 (en) | Gait generating device for legged mobile robot and operational target generating device for robot | |
US7366587B2 (en) | Legged mobile robot | |
US7053577B2 (en) | Robot and motion control method of robot | |
JP5803039B2 (en) | Method for controlling walking motion of mobile robot and robot implementing the method | |
JP3888295B2 (en) | Walking robot that lowers the gain of inverted pendulum control when stationary | |
JP3888310B2 (en) | Data creation device for walking robot control and ZMP position calculation method | |
JP2009291932A (en) | Walking robot and control method therefor | |
JP2009190122A (en) | Legged robot and method of controlling the same | |
JP3864907B2 (en) | Biped robot walking with twisting trunk and method for the same | |
JP2004322283A (en) | Wire type robot capable of independently controlling attitude and rigidity | |
JP4707372B2 (en) | Biped robot and its walking control method | |
JP3901079B2 (en) | Robot walking with changing stiffness | |
JP4057840B2 (en) | Multi-axis joint robot | |
JP3900074B2 (en) | A method for accurately controlling the trunk posture of a biped robot | |
JP3900073B2 (en) | Biped walking robot that limits the amount of control within the allowable range | |
JP3888293B2 (en) | Biped walking robot target ZMP trajectory calculation device | |
JPH03161290A (en) | Control unit for joint of leg walking robot | |
KR20090131781A (en) | Robot and method for controlling walking of the same | |
JP4043839B2 (en) | robot | |
JP2007061954A (en) | Bipedal walking robot moved by lumbar vertical motion, and method of controlling walking thereof | |
JP3962281B2 (en) | robot |
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 |