(57)【要約】【課題】体幹位置ベクトルＰと体幹捩じれベクトルＱを指定することによって２足歩行するロボットの歩行速度を向上させる。【解決手段】歩行指令データに体幹捩じれベクトルＱを用意し、左右の足を結ぶ線と歩行方向がなす角度の範囲内で体幹を捩じりながら歩行する。例えば、左右の足を結ぶ線と歩行方向がなす角度と、体幹の左右を結ぶ線と歩行方向がなす角度とが比例する関係を維持しながら歩行する。体幹をにじらないで歩行するロボットの場合よりも歩幅を大きく確保することができ、高速歩行させることができる。【選択図】  図２５
2004202652.tif 000002
【特許請求の範囲】
【請求項１】
左右の足を結ぶ線と歩行方向に直交する線とがなす角度範囲内に体幹の左右を結ぶ線が入るように体幹を捩じりながら歩行する２足ロボット。
【請求項２】
左右の足を結ぶ線と歩行方向に直交する線とがなす角度と、体幹の左右を結ぶ線と歩行方向に直交する線とがなす角度との間に比例関係を維持しながら歩行する２足ロボット。
【請求項３】
２足歩行するロボットの歩行中の姿勢を指令する歩行指令データに、左右の足を結ぶ線と歩行方向に直交する線とがなす角度範囲内で体幹の左右を結ぶ線を捩じる体幹捩じれベクトルを用意することによって、ロボットに体幹を捩じりながら歩行させる方法。
【発明の詳細な説明】
【０００１】
【発明の属する技術分野】本発明は、２足歩行ロボットの歩行速度を向上させる技術に関する。
【０００２】
【従来の技術】２足歩行ロボットをオペレータが意図するように歩行させるために、通常はロボットの位置と姿勢を示す下記のベクトルを用意する。
体幹位置ベクトルＰ：座標原点から見たロボットの体幹位置を示す。
体幹姿勢ベクトルＲ：ロボットの体幹の向きを示す。人間の背骨に相当する部材が伸びる方向を示す。
左足先位置ベクトルＣ：座標原点から見たロボットの左足先位置を示す。体幹位置ベクトルＰからのベクトルで指定することもできる。
左足先姿勢ベクトルＤ：左足先の向きを示す。
右足先位置ベクトルＥ：座標原点から見たロボットの右足先位置を示す。体幹位置ベクトルＰからのベクトルで指定することもできる。
右足先姿勢ベクトルＦ：右足先の向きを示す。
オペレータは、これらの６種のベクトルを時系列に従って次々に指定する。このようにして作成された歩行指令データをロボットにティーチングすることによって、ロボットは、オペレータが指定したコースを指定した姿勢で歩行する。
ロボットは、歩行中に、「倒立振子制御」と通称される技術で制御され、歩行中に転倒しないように制御される。「倒立振子制御」によって、ロボットの体幹姿勢が修正される。また「ＺＭＰ補償制御」と通称される技術で制御され、予期せぬ凹凸等に遭遇したときに転倒しないように制御される。「ＺＭＰ補償制御」によって、ロボットの体幹位置が修正される。
従来技術の一例が特許文献１に記載されている。
【特許文献１】
特開平５−３０５５７９号公報
【０００３】
【発明が解決しようとする課題】２足歩行ロボットの場合、前記したように、体幹位置ベクトルＰと体幹姿勢ベクトルＲを指定することによって歩行することが可能となる。
ロボットに搭載できるアクチュエータのパワーには限界があり、前記した歩行制御技術で歩行するロボットの歩行速度は低速であるといわざるを得ない。
本発明では、ロボットの歩行動作を制御する技術を改善することによって、ロボットの機械的構成を変えないで、ロボットを高速歩行させることのできる技術を実現することを目的に開発された。
【０００４】
【課題を解決するための手段と作用】本発明のロボットは、左右の２足で歩行する。本発明のロボットは、体幹の左右を結ぶ線が、左右の足を結ぶ線と歩行方向に直交する線とがなす角度の範囲内に入るように、体幹を捩じりながら歩行することを特徴とする。ここでいう体幹とは、左右の足の基部になる部分を言い、胴部が腰部（下胴部）と胸部（上胴部）に分離されている場合には腰部が体幹に相当し、下胴部と上胴部が一体であれば胴部全体が体幹に相当する。
このロボットの場合、体幹に対する足の回転速度が同一であっても、体幹を捩じらないで歩行するロボットの場合よりも歩幅を大きく確保することができ、結局においてより高速で歩行することが可能となる。
ロボットに体幹を捩じりながら歩行させる場合に、請求項３に記載のように、歩行指令データに体幹捩じれベクトルを用意してもよいが、ロボットに教示された足先位置ベクトル等から、体幹の捩じれ角度を計算して体幹を捩じる動作を実現させてもよい。
【０００５】
左右の足を結ぶ線と歩行方向に直交する線とがなす角度と、体幹の左右を結ぶ線と歩行方向に直交する線とがなす角度との間に比例関係を維持しながら歩行することが好ましい。例えば左足が着地して右足が宙に浮いて前進するときに、左足と右足を結ぶ線が進行方向に直交する線となす角がθであるときに、体幹の左右を結ぶ線と歩行方向に直交する線がなす角度をαθに調整しながら歩行する。ここでαは１未満の定数とする。この場合、足の前進移動に同期して体幹を捩じることができ、体幹を捩じらないで歩行するロボットの場合よりも歩幅を大きく確保することができる。
【０００６】
２足歩行するロボットの歩行中の姿勢を指令する歩行指令データに、左右の足を結ぶ線と歩行方向に直交する線とがなす角度範囲内で体幹の左右を結ぶ線を捩じる体幹捩じれベクトルを用意することによって、ロボットに体幹を捩じりながら歩行させることが可能となる。
体幹捩じれベクトルの時系列的変化を指定するデータは、各種の態様で作成することができ、オペレータが体幹位置ベクトルや体幹姿勢ベクトルを指定するのと同時に体幹捩じれベクトルを指定してもよいし、足先位置ベクトルから体幹捩じれベクトルをコンピュータによって自動的に計算させてもよい。
【０００７】
【実施例】図５は、２足で歩行するロボットにティーチングする歩行指令データを作成する装置１を示している。この歩行指令データ作成装置１は、２足歩行ロボットを実際に動作させるのに先立って用いられ、２足歩行ロボットを実際に動作させるために必要な歩行指令データを作成するために利用される。この装置１で作成された歩行指令データは、２足歩行ロボットにティーチングされる。２足歩行ロボットはティーチングされた歩行指令データに従って歩行する。
【０００８】
歩行指令データ作成装置１には、オペレータが、２足歩行ロボットを歩行させたいコース等のデータを入力する。具体的には、図５の左下の（Ａ）に示される６個のベクトルを入力する。ベクトルＰは体幹位置ベクトルであり、座標原点から見たロボットの体幹位置を示す。ベクトルＲは体幹姿勢ベクトルであり、ロボットの体幹の向きを示す。人間の背骨に相当する部材が伸びる方向を示す。胴部が腰部（下胴部）と上胴部に分離されている場合には、腰部が体幹に相当し、体幹位置ベクトルＰは腰部の中心位置を定義し、体幹姿勢ベクトルＲは腰部に垂直な方向を定義する。ベクトルＣは左足先位置ベクトルであり、座標原点から見たロボットの左足先位置を示す。体幹位置ベクトルＰからのベクトルで指定することもできる。ベクトルＤは左足先姿勢ベクトルであり、左足先の向きを示す。ベクトルＥは右足先位置ベクトルであり、座標原点から見たロボットの右足先位置を示す。体幹位置ベクトルＰからのベクトルで指定することもできる。ベクトルＦは右足先姿勢ベクトルであり、右足先の向きを示す。オペレータは、これらの６種のベクトルを時系列に従って次々に入力する。なお、このためのデータ入力支援ソフトが開発されており、主要タイミングでのデータを指定することで、時系列での中間データが補完計算されるようになっている。また、一歩分の歩行指令データを繰り返して利用するように指示することで、入力量を低減することができる。
【０００９】
オペレータは、さらに、目標ＺＭＰ位置を時系列に従って入力する。この場合ベクトルＣ〜Ｆによって、左足接地状態・両足接地状態・右足接地状態の別がわかっていることから、左足接地状態では左足接地面内の位置を指定し、右足接地状態では右足接地面内の位置を指定する。図５の右下に示される（Ｂ）は、Ｙ方向の目標ＺＭＰの時系列変化の一例を示し、両足接地期間内の目標ＺＭＰは入力の必要がない。歩行方向（Ｘ方向）の目標ＺＭＰも同様であり、左足接地状態では左足接地面内の位置を入力し、右足接地状態では右足接地面内の位置を入力する。両足接地期間内のＸ方向の目標ＺＭＰは入力する必要がない。
【００１０】
図１は、目標ＺＭＰの設定方法を示している。この場合、ロボットはＸ方向に歩行する。歩行方向に直交する方向をＹ方向とする。ロボットは、両足接地期間と片足接地期間を交互に繰り返して歩行する。片足接地期間内の目標ＺＭＰは、接地足の接地面内になければならない。さもなければ、実際ＺＭＰを目標ＺＭＰに一致させてもロボットは転倒してしまう。両足接地期間内の目標ＺＭＰは、２つの接地面を結ぶ領域にあればよい。Ｙ方向の現象を考察すると明らかに、両足が接地している期間内に、目標ＺＭＰは左足接地面内から右足接地面内に移動しなければならない（傾斜線Ｃ２参照）。あるいは、右足接地面内から左足接地面内に移動しなければならない（傾斜線Ｃ４参照）。水平線Ｃ１は、左足のみが接地している場合の目標ＺＭＰを示し、目標ＺＭＰは左足接地面内に維持されている。水平線Ｃ３は、右足のみが接地している場合の目標ＺＭＰを示し、目標ＺＭＰは右足接地面内に維持されている。
【００１１】
Ｘ方向の目標ＺＭＰもほぼ同様の条件を満たす必要がある。水平線Ｃ６は、左足のみが接地している場合のＸ方向の目標ＺＭＰを示し、Ｘ方向の目標ＺＭＰは左足接地面内に維持されている。水平線Ｃ８は、右足のみが接地している場合のＸ方向の目標ＺＭＰを示し、Ｘ方向の目標ＺＭＰは右足接地面内に維持されている。両足が接地している期間内に、Ｘ方向の目標ＺＭＰは左足接地面内から右足接地面内に移動し（傾斜線Ｃ７参照）、あるいは、右足接地面内から左足接地面内に移動しなければならない（傾斜線Ｃ９参照）。水平線Ｃ１０は、再び左足のみが接地している場合のＸ方向の目標ＺＭＰを示し、Ｘ方向の目標ＺＭＰは左足接地面内に維持されている。この場合、ロボットが歩行してＸ方向に移動するために、水平線Ｃ６のＸ座標と水平線Ｃ１０のＸ座標は、歩幅分変化している。
【００１２】
図１に示した目標ＺＭＰを設定しておき、歩行時に観測される実際ＺＭＰが目標ＺＭＰに一致するように制御することによって、ロボットは転倒しないで歩行することが可能となる。
しかしながら、図１に示す目標ＺＭＰは、時間に対して、静止・等速変化・静止・等速変化・・・を繰り返す。静止から等速変化に切り替わるタイミングや、等速変化から静止に切り替わるタイミングでは、無限大の加速度または減速度が必要とされ、ロボットには大きな負荷が作用する。またロボットの動作はぎこちないものとなる。これらの要素が、ロボットの最大歩行速度を低く抑えている。
【００１３】
無限大の加速度または減速度が必要とされる目標ＺＭＰの変化パターンを修正する試みがいくつかなされている。図２（Ｂ）は、図２（Ａ）のパターンを遅延処理することによって平滑化したものであり、平滑化することによって、必要な加速度や減速度の最大値を小さく抑えることができる。
遅延処理して平滑化した目標ＺＭＰは、歩行パターンに比して遅れるために、ロボットの歩行姿勢が安定しないという問題が生じる。図２（Ｂ）のＰ１２は、両足接地状態から右足接地状態に移行するタイミングに相当する。このときには目標ＺＭＰが右足接地面内になければならない。しかしながら、図２（Ｂ）に示すように、遅延処理して平滑化した目標ＺＭＰの変化パターンは遅すぎ、例えば右足接地面内になければならないときにまだ右足接地面内にないことがあり、その遅れがロボットの歩行姿勢を不安定なものとし、ひどい場合には転倒してしまうことになる。
なお本明細書では「右足接地状態」という場合は、右足のみが接地している状態を意味する。両足接地状態でも右足は接地しているが、その場合には両足接地状態といい、右足接地状態とはいわない。左足接地状態も同様である。
【００１４】
図２（Ｃ）は、目標ＺＭＰのシャープな変化点をスムージング処理した目標ＺＭＰを示している。スムージング処理することによって、必要な加速度や減速度の最大値を小さく抑えることができる。
スムージング処理した目標ＺＭＰは、歩行パターンに比して、早すぎたり遅すぎたりするためにロボットの歩行姿勢が安定しないという問題が生じる。図２（Ｃ）のＰ１３は、両足接地状態に移行する直前であって左足接地状態にまだあるタイミングに相当する。それにも係わらず、目標ＺＭＰは左足接地面内から外れ始めている。これでは早すぎる。図２（Ｃ）のＰ１４は、両足接地状態から右足接地状態に移行するタイミングに相当する。このときには、目標ＺＭＰが右足接地面内になければならない。それにも係わらず、目標ＺＭＰはまだ右足接地面内にない。これでは遅すぎる。スムージング処理した目標ＺＭＰは、歩行パターンに比して早すぎたり遅すぎたりし、そのずれがロボットの歩行姿勢を不安定なものとし、ひどい場合には転倒してしまうことになる。
【００１５】
現在の技術では、図２（Ａ）に示した目標ＺＭＰ軌道が持つ問題点を、新たな問題が起こらないようにして解決することができず、ロボットの高速歩行を妨げる一つの要因となっている。この問題に対して、本実施例では、下記のように対応する。
【００１６】
図５（Ｂ）に例示されるように、入力された目標ＺＭＰは時間軸に沿ってみると不連続である。歩行指令データ作成装置１には、時間に対して不連続な目標ＺＭＰを接続する軌道を計算する処理部６が用意されている。処理部６では、図５（Ｂ）に例示された時間的に不連続な期間（両足接地期間に相当する）を、図５（Ｃ）に例示するように、当加速度軌道Ａと等速度軌道Ｂと等減速度軌道Ｃで接続する軌道を計算する。
等加速度軌道Ａでは、２足方向ロボットが無理なく実現できる最高加速度を維持するものとする。等加速度軌道Ａによって目標ＺＭＰの移動速度は増速する。目標ＺＭＰの移動速度が２足方向ロボットの最高速度に到達すると、以後は等速度軌道Ｂを採用する。反対足側の目標ＺＭＰに接近すると、等減速度軌道Ｃに切り変える。等減速度軌道Ｃでは、２足方向ロボットが無理なく実現できる最高減速度を維持するものとする。等減速軌道Ｃによって目標ＺＭＰの移動速度はゼロとなる。ゼロになったときに、目標ＺＭＰが反対足側の目標ＺＭＰに一致する軌道が計算される。これは、あたかも、電車が加速して最高速度を維持して減速して停止するのと同様であり、無理無駄のかからない運動パターンである。減速して所定位置に停止させる軌道を計算する様々な技術が開発されている。
図２（Ｄ）は、等加速度軌道と等減速度軌道を含む軌道で接続した目標ＺＭＰ軌道の一例を示しており、点Ｐ１５に示すように、両足接地状態に移行するのを待ってから目標ＺＭＰは他方の足側に移動するから、目標ＺＭＰの変化が早すぎるという問題はない。一方点Ｐ１６に示すように、両足接地状態から片足接地状態に変化するのに先立って、目標ＺＭＰは片足接地面内の位置に移動しており、目標ＺＭＰの変化が遅すぎるいう問題もない。図２（Ｅ）は、目標ＺＭＰの移動速度の時間変化を示し、等加速度軌道で増速し、最高速度に達すれば最高速度を維持し、ついで等減速度で減速する。
【００１７】
図２では、片足接地期間内の目標ＺＭＰが静止しているとした。しかしながら片足接地期間内の目標ＺＭＰが静止している必要はなく、例えば、踵方向から爪先方向に移動してもよい。片足接地期間内の目標ＺＭＰは、接地している足の接地面内にあればよく、人間の場合には、踵方向から爪先方向に移動する。
図３は、片足接地期間内に踵方向から爪先方向に移動する目標ＺＭＰの軌道（Ｃ１１、Ｃ１２、Ｃ１３）を、等加速度軌道と最高速度の等速度軌道と等減速度軌道によって接続した軌道Ｃ１４を例示している。等加速度軌道は、片足接地期間内に踵方向から爪先方向に移動する目標ＺＭＰの移動速度で開始し、等減速度軌道は、片足接地期間内の目標ＺＭＰの移動速度で終了する。目標ＺＭＰの移動速度は連続的に変化し、不連続な変化が生じない。
図３のＣ１５は、従来の技術で接続した目標ＺＭＰの軌道を示し、速度が不連続に変動するために、ロボットは大きな加速度または減速度で動作することが求められる
【００１８】
図２、図３に例示した軌道は、時間軸に対するＸ座標またはＹ座標の変化を示す。ここでは、ロボットが最高速度で歩行するものとして時間軸を設定する。等加速度軌道、等速度軌道、等減速度軌道では、ロボットの能力の範囲内で可能な最高加速度、最高速度、最高減速度で計算する。
歩行指令データ作成装置１で作成されたデータは、時間軸を引き伸ばしてロボットに教示されることがある。例えば、時間軸に対して図４（Ａ）に例示されるパターンで設定された目標ＺＭＰ軌道を、図４（Ｂ）に示すように、徐々にゆっくりしたパターンに変換してロボットに教示することがある。この場合、ロボットの動作は徐々に緩やかになる。歩行指令データ作成装置１で作成された１秒分のデータを、２秒分のデータとしてロボットに教示すると、ロボットの動作速度は半分に低下する。あるいは、ロボットに教示された歩行指令データを実行する段階で、時間軸を引き伸ばして実行することによって動作をゆっくりさせることもある。歩行指令データ作成装置１で作成した段階では、等加速度軌道、等速度軌道、等減速度軌道であったものが、ロボットの実際の動作段階では、等加速度軌道、等速度軌道、等減速度軌道にならないことがある。本技術は、最高速度で想定する目標ＺＭＰ軌道の算出に用いられるものであり、その段階で、等加速度軌道、等速度軌道、等減速度軌道で接続することが重要であり、ロボットの実際の動作段階では、等加速度軌道、等速度軌道、等減速度軌道にならなくてもかまわない。
一歩分の、体幹姿勢ベクトルＲや足先位置ベクトルＣ，Ｅや足先姿勢ベクトルＤ，Ｆや目標ＺＭＰの変化パターンを規格化しておくことができ、一歩分の変化が規格化されていれば、体幹位置ベクトルＰを指定することで歩行指令データを生成することができる。体幹位置ベクトルＰはジョイスティック等を利用して指定することができる。歩行するロボットを観測しながらジョイスティックを操作して体幹位置ベクトルＰをほぼリアルタイムで入力することが可能であり、歩行指令データ作成装置１が高速で歩行指令データを作成してロボットに指令することによって、２足歩行ロボットの歩行コースををほぼリアルタイムで指定することができる。
【００１９】
歩行指令データ作成装置１は、オペレータが入力した６種のベクトルに基づいて２足歩行ロボットの動力学計算をして、実際に生じるであろうＺＭＰを演算する装置２を備えている。ここでは、オペレータが入力した６種のベクトルの時系列で記述される動作を実現することによって発生する慣性力を計算し、これと重力とから、路面からロボットに作用する反力によるモーメントがゼロとなる位置を計算する。
計算されたＺＭＰは、比較装置３によって、目標ＺＭＰと比較される。ここで用いられる目標ＺＭＰは、装置６によって接続されたものであり、図５（Ｃ）に例示されるように、時間に対して滑らかに変化する。
【００２０】
計算されたＺＭＰと目標ＺＭＰが不一致であれば、オペレータが入力した６種のベクトルの時系列に無理があることになる。そこでこの実施例では、装置４によって、体幹位置ベクトルＰを修正する。ここでは、計算されたＺＭＰが目標ＺＭＰに接近する側に体幹位置ベクトルＰを修正する。ＺＭＰ演算部２は、修正された体幹位置ベクトルＰを用いて、再度ＺＭＰを演算しなおす。計算されたＺＭＰと目標ＺＭＰがほぼ一致するまで、上記のサイクルを繰り返す。
【００２１】
計算されたＺＭＰが目標ＺＭＰにほぼ一致するように体幹位置ベクトルＰが修正されると、修正された体幹位置ベクトルＰと、入力された５ベクトルと、入力されて接続処理された目標ＺＭＰによって、ロボットを歩行させられることになる。即ち、動力学的に成立する歩行指令データが作成されたことになる。そこで修正された体幹位置ベクトルＰと、入力された５ベクトルと、入力されて接続処理された目標ＺＭＰによって、歩行指令データが完成するので、これを記憶する（装置５）。完成された歩行指令データは、２足歩行ロボットにティーチングされる。
前記したように、一歩分の歩行姿勢を規格化しておき、ジョイスティックによってほぼリアルタイムで体幹位置ベクトルＰを入力するようにすると、２足歩行ロボットにほぼリアルタイムでティーチングすることができ、２足歩行ロボットの挙動を見ながら次の歩行動作を指令することができる。
【００２２】
次に２足歩行ロボットの機械的構造を、図６〜１８を参照して説明する。本明細書では、足部の前後方向（ロボットの進行方向）をＸ軸とし、左右方向をＹ軸とし、垂直軸をＺ軸とする。各軸は相互に直交している。図６は本実施例の２足歩行ロボットの両下肢の正面図であり、図７は左下肢の側面図であり、図８は足首関節の構造を説明するための図であり、図９はアクチュエータの詳細を説明する図であり、図１０〜１３は足部の動きを説明する図である。なお、左右の下肢形状は鏡対称である
【００２３】
図６に示すように、本実施例のロボット１０の左右の下肢１２は、大腿部１４と下腿部（脛）１６と足部１８から構成され、大腿部１４と胴体部２０は股関節２２によって接続されており、大腿部１４と下腿部１６は膝関節２４によって接続されており、下腿部１６と足部１８は足首関節２６によって接続されている。
【００２４】
最初に股関節２２について説明する。ほぼ水平に伸びる板状の骨盤部２８には、図７に示すように、Ｚ軸回りに回転する円板３６がベアリング３４によって取付けられている。円板３６は、図６において左右に一対設けられている。各円板３６の中心には、骨盤部２８側から大腿部１４側に伸びる（Ｚ軸方向に伸びる）シャフト３０が固定されている。シャフト３０は骨盤部２８に対してＺ軸回りに回転する。板状の骨盤部２８には、体幹が固定されている。
シャフト３０の下端に対して大腿部１４の上端がユニバーサルジョイント３２によって接続されている。ユニバーサルジョイント３２は、十字型自在継手を備えており、シャフト３０に対して大腿部１４がＸ軸回りとＹ軸回りに回転することを許容する。股関節２２は、骨盤部２８に対してＺ軸回りに回転できるシャフト３０と、シャフト３０に対して大腿部１４がＸ軸回りとＹ軸回りに回転することを許容するユニバーサルジョイント３２を持ち、Ｘ，Ｙ，Ｚ軸のそれぞれの回りに回転することを許容する３軸関節である。
【００２５】
次に膝関節２４を説明する。各大腿部１４の下端にはＹ軸方向に平行に並ぶ２つのフランジ４０が下方へ伸びており、各下腿部１６を構成するシャフト４２の上端にはＹ軸方向に平行に並ぶ２つのフランジ４４が上向きに設けられている。膝関節２４は、これらのフランジ４０，４４を貫通してＹ軸方向に伸びる軸４６を備える。膝関節２４は、大腿部１４に対して下腿部１６がＹ軸回りに回転することを許容する。
【００２６】
次に足首関節２６を説明する。図８は足首関節２６の構造を説明するために単純化してデフォルメした図であり、実際の形状や寸法とは必ずしも一致しない。下腿部１６のシャフト４２の下部にはＸ軸方向に平行に並んだ２つのフランジ５８が下方に伸びている。また、足部１８の上面にはＹ軸方向に平行に並んだ２つのフランジ６０が上方に伸びている。これら下腿部１６のフランジ５８と足部１８のフランジ６０は十字型自在継手６２によって接続されてユニバーサルジョイントを成している。足首関節２６は、下腿部２４に対して足部１８が、Ｘ軸回りとＹ軸回りに回転することを許容する。即ち、足首関節２６はＸ，Ｙ軸のそれぞれについて自由度を持つ２軸関節である。
【００２７】
各関節はワイヤによって駆動される（股関節のＺ軸回りの回転を除く。この回転のみはワイヤを利用せずに、モータで直接に回転される）。各ワイヤの一端は末端側部材に取付けられており、他端はモータと送りネジから構成されるアクチュエータに接続されている。モータによって送りネジ（Ｚ方向に伸びる）が回転すると、送りネジに螺合しているナットが送りネジ方向に送られ、ナットに接続されているワイヤ先端がＺ軸方向に進退する。ワイヤ先端をＺ軸方向に進退させることによってワイヤによって末端側部材を引いたり緩めたりすることができる。
【００２８】
最初に図７と８を参照して足首関節を回転させるワイヤ群を説明する。足部１８には、図示しない取付け板によってワイヤ終端ガイド７０ａ，７０ｂ，７０ｃが固定されている。各ワイヤ終端ガイド７０ａ，７０ｂ，７０ｃは円弧形状であり、それぞれの円弧の中心軸はＹ軸方向に伸びており、円弧面は所定の巾（Ｙ軸に沿って伸びる距離）を有している。ワイヤ終端ガイド７０ａは足首関節２６のＹ軸よりも前方に位置し、Ｘ軸上配置されている。その円弧面はＸ軸前方を向いている。ワイヤ終端ガイド７０ｂ，７０ｃは足首関節２６のＹ軸よりも後方に位置している。ワイヤ終端ガイド７０ｂは足首関節２６のＸ軸よりも外側に位置し、ワイヤ終端ガイド７０ｃは足首関節２６のＸ軸よりも内側に位置している。ワイヤ終端ガイド７０ｂ，７０ｃの円弧面はＸ軸後方を向いている。
３本のワイヤ６６ａ，６６ｂ，６６ｃの下端は、ワイヤ終端ガイド７０ａ，７０ｂ，７０ｃのそれぞれの下端のワイヤ接続点７２ａ，７２ｂ，７２ｃに固定されており、各ワイヤ６６ａ，６６ｂ，６６ｃの他端は、膝関節２４側に伸びている。各ワイヤ終端ガイド７０ａ，７０ｂ，７０ｃの円弧面はワイヤ６６ａ，６６ｂ，６６ｃが小さな曲率半径で鋭く曲がることを禁止している。
【００２９】
ワイヤ接続点７２ａは足首関節２６のＹ軸よりも前方に位置しており、ワイヤ６６ａが膝関節２４側に引かれると足部１８は足首関節２６のＹ軸回りに回転して爪先を持ち上げる。ワイヤ接続点７２ａは足首関節２６のＸ軸上に配置されており、ワイヤ６６ａが膝関節２４側に引かれても足部１８のＸ軸回りの回転角には影響しない。ワイヤ接続点７２ｂは足首関節２６のＸ軸よりも外側に位置しており、ワイヤ６６ｂが膝関節２４側に引かれると足部１８は足首関節２６のＸ軸回りに回転して足部１８の外側を持ち上げる。ワイヤ接続点７２ｃは足首関節２６のＸ軸よりも内側に位置しており、ワイヤ６６ｃが膝関節２４側に引かれると足部１８は足首関節２６のＸ軸回りに回転して足部１８の内側を持ち上げる。足部１８の内側を持ち上げる場合には、ワイヤ６６ｃを引くと同時にワイヤ６６ｂを緩めて足部１８の外側が下がることを許容する。同様に、足部１８の外側を持ち上げる場合には、ワイヤ６６ｂを引くと同時にワイヤ６６ｃを緩めて足部１８の内側が下がることを許容する。足部１８を足首関節２６のＸ軸回りに回転させる場合にはワイヤ６６ａを操作する必要はない。ワイヤ６６ｂ、６６ｃを同時に引くと足部１８は足首関節２６のＹ軸回りに回転してかかとを持ち上げる。この場合には、ワイヤ６６ａを緩めて爪先が下がるのを許容する。ワイヤ６６ａを引いて爪先を持ち上げるときには、ワイヤ６６ｂ、６６ｃを緩めてかかとが下がるのを許容する。
３本のワイヤ６６ａ、６６ｂ、６６ｃによって、足首関節２６のＸ軸回りの回転角とＹ軸回りの回転角を独立に調整することができる。
【００３０】
なお、ワイヤ接続点を足首関節２６のＹ軸よりも前方のＸ軸の両側と、Ｙ軸よりも後方のＸ軸上に配置してもよい。このようにワイヤ接続点を配置しても、ワイヤによって足首関節２６のＸ軸回りの回転角とＹ軸回りの回転角を独立して調整することができる。
【００３１】
図１０〜１３は足部１８の動きを説明するための模式図であり、図１０と図１１はＸ軸回りの回転を説明するための図である。図１０は足部１８の平面図であり、図１１は足部１８の背面図である。各ワイヤ６６ａ，６６ｂ，６６ｃの終端ではワイヤ終端ガイド７０ａ，７０ｂ，７０ｃの図示を省略し、ワイヤ接続点７２ａ，７２ｂ，７２ｃのみで示してある。
【００３２】
図１０は、ワイヤ接続点７２ａに接続されているワイヤ（図示省略）は中立状態を維持しながらワイヤ接続点７２ｂに接続されているワイヤ６６ｂの有効長を収縮させ、ワイヤ接続点７２ｃに接続されているワイヤ６６ｃの有効長を伸長させることを示している。このとき、足部１８は図１１の破線で示したようにＸ軸回りに矢印の方向に回転する。また、ワイヤの有効長の伸長・収縮を逆にすると、足部１８は矢印とは逆方向に回転する。即ち、このようにワイヤの有効長の伸長・収縮を調整することによって、足部１８をＸ軸の回りに自在に回転させることができる。
【００３３】
図１２と図１３はＹ軸回りの回転を説明するための図である。図１２は足部１８の平面図であり、図１３は足部１８の側面図である。各ワイヤ６６ａ，６６ｂ，６６ｃの終端ではワイヤ終端ガイド７０ａ，７０ｂ，７０ｃの図示を省略し、ワイヤ接続点７２ａ，７２ｂ，７２ｃのみで示してある。図１２はワイヤ接続点７２ａに接続されているワイヤ６６ａの有効長を収縮させ、ワイヤ接続点７２ｂ，７２ｃに接続されているワイヤ６６ｂ，６６ｃの有効長を共に伸長させた場合を示している。このとき、足部１８は図１３の破線で示すように、Ｙ軸回りに矢印の方向に回転する。また、ワイヤの有効長の伸長・収縮を逆にすると、足部１８は矢印と逆方向に回転する。このようにワイヤの有効長の伸長・収縮を調整することによって、足部１８をＹ軸の回りに自在に回転させることができる。
なお、足部１８の前側を持ち上げるのに要するワイヤの張力に比べ、足部１８の後ろ側を持ち上げるのに要するワイヤの張力は大きい。このため、３点のワイヤ接続点７２ａ，７２ｂ，７２ｃのうちの１点を前側にし、２点を後側にし、２本のワイヤと２個のアクチュエータでかかとを持ち上げることが好ましい。この場合、各アクチュエータの能力を等しくすることができる。
【００３４】
なお図示はしないが、足部１８を同時にＸ軸回りにもＹ軸回りにも回転させることができる。例えば、ワイヤ６６ｂの有効長を速度ａ−ｂで収縮させ、ワイヤ６６ｃの有効長を速度ａ＋ｂで伸長させ（即ち−ａ−ｂで収縮させる）、ワイヤ６６ａの有効長をｂで収縮させると、足部１８はＸ軸の回りに速度ａで回転して外側が上がり、且つ、Ｙ軸の回りに速度ｂで回転して前側が上がる。このように３本のワイヤの有効長を同時に調整すると、足部１８をＸ軸の回りとＹ軸の回りに同時に自在に回転させることができる。またＸ軸回りの回転速度とＹ軸回りの回転速度を自在に調整することもできる。これらのことから、Ｘ，Ｙの２軸に対して３本のワイヤ、即ち、軸数＋１本のワイヤを用いることによって、Ｘ，Ｙ軸について互いに独立に調整することが可能である。
【００３５】
図８に示すように、下腿部１６のシャフト４２の上部には、フランジ４４を貫通するＹ軸方向の軸４６の回りに自由回転可能な３つのプーリ６４ａ，６４ｂ，６４ｃが２つのフランジ４４と交互に配されている。それぞれのプーリ６４ａ，６４ｂ，６４ｃにはワイヤ６６ａ，６６ｂ，６６ｃが１本ずつ巻かれている。ワイヤ６６ａ，６６ｂ，６６ｃは、プーリ６４ａ，６４ｂ，６４ｃの前側でプーリから離反している。ワイヤ６６ａ，６６ｂ，６６ｃは足部１８に対して膝関節の前方位置から引張力を加える。このために、３本のワイヤ６６ａ，６６ｂ，６６ｃを同時に同一速度で収縮させると、下腿部１６に対する足部１８の回転角度は変えないで（足首関節２６を回転させないで）、下腿部１６を膝関節２４の回りに前向きに回転させることができる。
【００３６】
図８に明瞭に示されている３本のワイヤ６６ａ，６６ｂ，６６ｃの上端はアクチュエータ６８ａ，６８ｂ，６８ｃ（図６、図７参照）に接続されている。図６と７では図示の明瞭化のためにアクチュエータが簡略化されて表示されている。図９はアクチュエータ６８の詳細を模式的に示しており（すべてのアクチュエータは同様の構造を有するために、添え字を省略して共通的に説明する）、一対のフランジ１０２と１０６が３本の案内ロッド１０８，１１０，１１２で接続されている。一対のフランジ間には送りネジ１２０が回転自在で軸方向には移動不能に配置されている。送りネジ１２０は、モータ１１４とギヤ１１６と１１８によって回転させられる。可動プレート１０４は送りネジ１２０に螺合するナットを備えている。可動プレート１０４は案内ロッド１０８，１１０，１１２に案内されて軸方向に移動可能で回転不能となっている。その可動プレート１０４にワイヤ６６の先端が固定されている。
モータ１１４が回転すると送りネジ１２０が回転して可動プレート１０４が案内ロッドに沿って滑り、ワイヤ６６が引き込まれたり、緩められたりする。
アクチュエータ６８のモ−タは１１４と、一対のフランジ１０２、１０６は大腿部１４に固定されている。案内ロッド１０８，１１０，１１２は大腿部１４の長手方向に伸びており、モ−タは１１４がアクチュエータ６８を回転させることで、ワイヤ６６は大腿部１４の長手方向に引かれたり緩められたりする。
ワイヤ６６ａ，６６ｂ，６６ｃのプーリ６４ａ，６４ｂ，６４ｃと接続点７２ａ、７２ｂ、７２ｃ間の距離をワイヤの有効長とすると、ワイヤ６６ａ，６６ｂ，６６ｃの有効長はモータ１１４によって伸長させられる。ワイヤ６６ａ，６６ｂ，６６ｃの有効長を伸長させるアクチュエータ群６８ａ，６８ｂ，６８ｃは、股関節２２に近い大腿部１４に配置されている。
【００３７】
図９に示されているように、アクチュエータ６８にコントローラ２００が接続されている。コントローラ２００には、ロボット１０の動き全体を制御している別のコントローラ（図示省略）から、足首関節２６の回転角と各ワイヤ（６６ａ、６６ｂ、６６ｃ）の張力を指示する信号が入力される。コントローラ２００は、モータ１１４の回転角及び／またはトルクを制御する。
【００３８】
図７に示されているように、下腿部４２には下腿部４２を膝関節２４の回りに後方に回転させるワイヤ６６ｄの一端が接続されている。ワイヤ６６ｄは膝関節に回転自在に配置されているプーリ６４ｄ（図６参照）の後方を通ってアクチュエータ６８ｄの可動プレート１０４に接続されている。アクチュエータ６８ｄの可動プレート１０４はモータによって進退する。可動プレート１０４が進退すると、ワイヤ６６ｄは引き込まれたり、緩められたりする。
【００３９】
以上によって下記の姿勢変化が実現される。
（１）アクチュエータ６８ａを縮めてアクチュエータ６８ｂ、６８ｃを緩めることで爪先が上がる。アクチュエータ６８ａを緩めてアクチュエータ６８ｂ、６８ｃを縮めることで爪先が下がる。
（２）アクチュエータ６８ｂを縮めてアクチュエータ６８ｃを緩めることで足部１８の外側が上がる。アクチュエータ６８ｂを緩めてアクチュエータ６８ｃを縮めることで内側が上がる。
（３）アクチュエータ６８ａ、６８ｂ、６８ｃを縮めてアクチュエータ６８ｄを緩めることで下腿部１６が前方に回転する。アクチュエータ６８ａ、６８ｂ、６８ｃを緩めてアクチュエータ６８ｄを縮めることで下腿部１６が後方に回転する。
４本のアクチュエータと４本のワイヤで、足首関節２６のＸ軸回りの回転角（前記２の回転）と、足首関節２６のＹ軸回りの回転角（前記１の回転）と、膝関節２４回りの回転角（前記３の回転）が独立に調整できる。
４本のアクチュエータで３軸回りの回転角を調整するために、アクチュエータは冗長であるように見える。しかしながら、この冗長性を利用して回転角に関する剛性を調整することができる。なおこの点については後記する。
【００４０】
膝関節２４のみならず足首関節２６の回転角を調整するためのアクチュエータまでもが大腿部１４に配置されているために、この人工下肢の先端部は軽く、股関節回りの慣性モーメントは小さい。このために、小さなトルクで股関節２２の回りに高速に回転させることができる下肢が得られる。
【００４１】
次に股関節２２回りの回転角を調整するワイヤとアクチュエータを説明する。図６と図７に示すように、大腿部１４の上部の所定位置には３個の円弧形状のワイヤ終端ガイド４８ａ，４８ｂ，４８ｃが３箇所に取付けられ、それぞれにワイヤ５０ａ，５０ｂ，５０ｃが１本ずつ掛けられている。それぞれのワイヤ５０ａ，５０ｂ，５０ｃの下端はそれぞれワイヤ終端ガイド４８ａ，４８ｂ，４８ｃの下端４９ａ，４９ｂ，４９ｃに固定されている。後側に取付けられたワイヤ５０ｃの中程にはプーリ５４が配置され、プーリ５４は股関節２２のＹ軸よりも後方に位置している。ワイヤ５０ａ，５０ｂ，５０ｃの上端はそれぞれアクチュエータ５２ａ，５２ｂ，５２ｃの可動プレートに接続されている。アクチュエータ５２ａ，５２ｂのそれぞれの送りネジはそれぞれ図示しないモータによって回転するために、送りネジに螺合している可動プレートはモータの回転によって進退する。この結果、ワイヤ５０ａ，５０ｂ，５０ｃの有効長が伸長・収縮する。なお、アクチュエータ５２ａ，５２ｂ，５２ｃとそのためのモータ５６等は胴体部に配置されており、股関節２２の回りに回転する下肢の慣性モーメントを全く増加させない。
【００４２】
アクチュエータ５２ａ，５２ｂは、股関節２２のＹ軸よりも前方に位置しており、収縮すると大腿部１４を股関節２２のＹ軸の回りに前方に回転させる。ワイヤ５０ｃを案内するプーリ５４は股関節２２のＹ軸よりも後方に位置しており、アクチュエータ５２ｃが収縮すると大腿部１４を股関節２２のＹ軸の回りに後方に回転させる。なお、骨盤部２８に回転自在な円板３６はモータ３８によってＺ軸の回りに回転させられる。モータ３８は骨盤部２８に固定されている。
【００４３】
ワイヤ接続点４９ｃは股関節２２のＹ軸よりも後方に位置しており、ワイヤ５０ｃが引かれると大腿部１４は股関節２２のＹ軸回りに後方に回転する。ワイヤ接続点４９ｃは股関節２２のＸ軸上に配置されており、ワイヤ５０ｃが引かれても大腿部１４のＸ軸回りの回転には影響しない。ワイヤ接続点４９ａは股関節２２のＸ軸よりも外側に位置しており、ワイヤ５０ａが引かれると大腿部１４は股関節２２のＸ軸回りに回転して大腿部１４を開ける。ワイヤ接続点４９ｂは股関節２２のＸ軸よりも内側に位置しており、ワイヤ５０ｂが引かれると大腿部１４は股関節２２のＸ軸回りに回転して大腿部１４を閉じる。大腿部１４を閉じる場合には、ワイヤ５０ｂを引くと同時にワイヤ５０ａを緩めて大腿部１４が閉じることを許容する。同様に、大腿部１４を開ける場合には、ワイヤ５０ａを引くと同時にワイヤ５０ｂを緩めて大腿部１４が開くことを許容する。大腿部１４を股関節２２のＸ軸回りに回転させる場合にはワイヤ５０ｃを操作する必要はない。ワイヤ５０ａ，５０ｂを同時に引くと大腿部１４は股関節２２のＹ軸回りに前方に回転して大腿部１４を持ち上げる。この場合には、ワイヤ５０ｃを緩めて大腿部１４が前方に回転するのを許容する。ワイヤ５０ｃを引いて大腿部１４を後方に回転させる場合には、同時にワイヤ５０ａ，５０ｂを緩めて大腿部が下がるのを許容する。
【００４４】
以上によって股関節２２は下記のように調整される。
（１）アクチュエータ５２ｃを縮めてアクチュエータ５２ａ，５２ｂを緩めることで大腿部１４は後方に回転する。アクチュエータ５２ｃを緩めてアクチュエータ５２ａ、５２ｂを縮めることで大腿部１４が前方に回転する。大腿部１４を前方に持ち上げるには大きなトルクが必要とされるのに対し、後方に下げるには大きなトルクが要らない。大きなトルクが必要とされる側に２本のアクチュエータと２本のワイヤが利用され、小さな力しか必要とされない側に１本のアクチュエータと１本のワイヤが利用されている。
（２）アクチュエータ５２ａを縮めてアクチュエータ５２ｂを緩めることで大腿部１４が外向きに持ち上げられる。アクチュエータ５２ａを緩めてアクチュエータ５２ｂを縮めることで大腿部１４が閉じる。
３本のアクチュエータと３本のワイヤで、股関節２２のＸ軸回りの回転角（前記２の回転）と、股関節２２のＹ軸回りの回転角（前記１の回転）が独立に調整できる。
【００４５】
股関節２２の回りに大腿部１４を動かすためのアクチュエータは胴体側に配置されているために、大腿部１４を動かす際にはアクチュエータごとに動かす必要がない。股関節２２回りの慣性モーメントは小さい。このために、小さなトルクで股関節２２の回りに下肢を高速に回転させることができる。
【００４６】
図８に明瞭に示されている３本のワイヤ６６ａ，６６ｂ，６６ｃ等の中間部には、図１４、図１５に示す非線形バネ１４０が挿入されている。バネ１４０はバネ鋼で形成されており、平板部１２２と一対のフランジ１２６，１２６ともう一対のフランジ対１３０，１３０を備えている。フランジ対１２６，１２６間にはシャフト１２８が差し渡され、フランジ対１３０，１３０間にはシャフト１３２が差し渡されている。平板部１２２には、シャフト１２８，１３２と平行に伸びる峰部１２４が形成されている。ワイヤ６６は、屈曲しながら、シャフト１２８の下方、峰部１２４の上方、シャフト１３２の下方を通過している。
図１６に示されるように、ワイヤ６６が強く引かれると、バネ鋼製の平板部１２２が撓んでワイヤ６６は引き伸ばされる。
【００４７】
上記のバネ１４０がワイヤに挿入されているために、アクチュエータによってワイヤ張力を調整することができる。
図６において、アクチュエータ６８ｂの引き込み量とアクチュエータ６８ｃの引き込み量が等しく、足部１８はＸ軸回りに下腿部１６のシャフト４２に直角に調整されているとする。この状態から、アクチュエータ６８ｂとアクチュエータ６８ｃを同一速度でさらに引き込むとする。この場合、ワイヤ６６ｂとワイヤ６６ｃは同一速度で引き込まれるために、足部１８はＸ軸の回りに回転しない。しかしながら、ワイヤ６６ｂとワイヤ６６ｃが引き込まれるのに応じて、図１６に示すように、バネ１４０が変形し、ワイヤ６６ｂとワイヤ６６ｃの張力は増大する。即ち、このロボットは、２本のワイヤの一方を引いて時計方向に回転させ、他方のワイヤを引いて反時計方向に回転させる方式であるために、両方のワイヤを同時に引き込むことによって、回転角を変えないで、ワイヤ張力のみを増大させることができる。同様に、両方のワイヤを同時に緩めることによって、回転角を変えないで、ワイヤ張力のみを減少させることができる。
【００４８】
ワイヤ張力は関節回りの回転角の剛性を決定する。例えば、図６の足部１８が地面に接地する場合、両ワイヤの張力が弱くて剛性が低ければ、接地した地面が足部の左側で高くて右側で低い場合に、足部１８の右側を引き上げているワイヤが伸びて足部１８が地面の傾斜に倣って傾斜して足部１８の全体が接地する。剛性が低ければ外部事象に柔軟に追従する。
一方において、片側の足部１８が空中にある場合、その空中姿勢を調整する両ワイヤの張力が弱くて剛性が低ければ、ロボットにわずかな外力が作用することでワイヤが伸びるために空中姿勢が不安定となる。姿勢を安定させるためには、剛性が高い方が好ましい。剛性が高い状態の方が、アクチュエータの動きと関節回りの回転角が良く一致し、関節回りに高速で回転ないし動作させることができる。
【００４９】
この実施例のロボットは、２本のワイヤのうちの一方を引いて時計方向に回転させ、他方のワイヤを引いて反時計方向に回転させる方式（プルプル方式）であり、しかも、ワイヤの中間部に非線形バネを挿入しているために、ロボット姿勢とは独立に剛性を調整できる。柔軟に追従することが必要な時には低剛性とし、姿勢を安定させることが必要な時には高剛性に調整することができる。
【００５０】
プルプル方式と非線形バネとによって、関節回りの剛性を調整できる理由を、図１７、図１８を参照しながら説明する。なお、この説明では、２本のワイヤによって足部がＹ軸回りに回転する簡単な例を取り上げて説明する。図１７は、このような構成を模式的に図示したものである。図１７に示されているように、足部３０２は円筒状のプーリ３０３と一体化されている。プーリ３０３は、Ｙ軸３０３ｃの回りに回転可能に軸支されている。前方ワイヤ３０４と後方ワイヤ３０６はプーリ３０３に巻き付けられ、それぞれの一端はワイヤ接続点３０３ａ、３０３ｂでプーリ３０３に接続されている。前方ワイヤ３０４と後方ワイヤ３０６の他端は、それぞれ前方アクチュエータ３１２と後方アクチュエータ３１４に接続されている。前方アクチュエータ３１２と後方アクチュエータ３１４は、固定部材３２２、３２４に固定されている。アクチュエータ３１２、３１４は、ワイヤ３０４、３０６を引き込んだり、緩めたりする。ワイヤ３０４、３０６の途中には、前方非線形バネ３０５と後方非線形バネ３０７が装着されている。
【００５１】
図１８は、前方非線形バネ３０５と後方非線形バネ３０７のバネ特性を示すグラフである。縦軸（ｙ軸）はバネ力を示し、横軸（ｘ軸）はバネの伸び量を示している。ｙ軸の右側のカーブが後方非線形バネ３０７のバネ特性を表し、ｙ軸の左側が前方非線形バネ３０５のバネ特性を表している。図１８から明らかなように、前方非線形バネ３０５と後方非線形バネ３０７のバネ特性は、その伸びが大きくなると急にバネ力が大きくなる（カーブの傾斜が急になる）非線形性を有している。すなわちフックの法則には従わない。
図１８を用いて、足部３０２の回転軸３０３ｃ回りの剛性が調整される様子を具体的に説明する。例えば、バネ３０５、３０７の伸び量がゼロで足部３０２の角度が所定位置に調整されたときのアクチュエータ３１２、３１４の作動量からアクチュエータ３１２、３１４がさらにＡ（ｍｍ）づつ引き込まれとする。するとバネ３０５、３０７が伸び、Ｂ（ｋｇ）のバネ力が発生する（点Ｄ、点Ｆ参照）。ワイヤ張力はＢ（ｋｇ）に調整される。前方ワイヤ３０４と後方ワイヤ３０６の張力は等しいので、足部３０２は回転せず、調整された位置を保つ。この状態で足部３０２に時計方向のモーメントを加えて回転させ、後方バネ３０７がＣ（ｍｍ）伸びたとする（点Ｄ→点Ｅ）。一方、後方バネ３０７がＣ（ｍｍ）伸びると、これと等しい量（Ｃ（ｍｍ））前方バネ３０５は縮む（点Ｆ→点Ｇ）。従って、足部３０２を回転させてバネ（３０５、３０７）をＣ（ｍｍ）伸縮させるのには、点Ｅと点Ｇのバネ力の差であるＨ（ｋｇ）の力をプーリ３０３に加える必要がある。
【００５２】
アクチュエータ３１２、３１４が大きくＪ（ｍｍ）づつ引き込まれたとする（点Ｌ、点Ｍ）。このときにバネ３０５、３０７が発生するバネ力はＫ（ｋｇ）である。この場合でも、ワイヤ３０４、３０６の張力は等しいので、足部３０２は回転せずにそのままの位置を保つ。この状態で足部３０２に時計方向のモーメントが加わって、後方バネ３０７がＣ（ｍｍ）伸びたとする（点Ｌ→点Ｎ）。前方バネ３０５はＣ（ｍｍ）縮む（点Ｍ→点Ｐ）。従って、足部３０２を回転させてバネ３０７、３０５をＣ（ｍｍ）伸縮させるのには、点Ｎと点Ｐのバネ力の差であるＱ（ｋｇ）の力をプーリ３０３に加える必要がある。
【００５３】
アクチュエータ３１２、３１４がＡ（ｍｍ）引き込まれて実現された張力Ｂの状態からバネ３０７、３０５をＣ（ｍｍ）伸縮させるのに必要な力は、Ｈ（ｋｇ）である。アクチュエータ３１２、３１４がＪ（ｍｍ）引き込まれて実現された張力Ｋの状態からバネ３０７、３０５をＣ（ｍｍ）伸縮させるのに必要な力は、Ｑ（ｋｇ）である。明らかにＱ（ｋｇ）の方が、Ｈ（ｋｇ）よりも大きい。すなわち、アクチュエータ３１２、３１４を大きく引き込んで、大きな張力をワイヤ３０４、３０６に発生させているときの方が、足部３０２の剛性（足部３０２を所定角回転させるに要するＹ軸回りの回転モーメント）は高くなる。アクチュエータ３１２、３１４がワイヤ３０４、３０６を引き込む量を変化させることによって、足部３０２の剛性を調整することができる。
プルプル方式と非線形バネ組合せて用いると、関節の回転角と独立に、剛性を調整することができる。
【００５４】
図１８のバネ特性グラフの傾斜角が剛性に比例する。そこで、その傾斜角が意図した剛性に相当するバネの伸び量を求め、その伸び量を与えることで、意図した剛性に調整することができる。
ロボットの姿勢にかかわらず、回転中心からワイヤにおろした垂線の長さ、即ちモーメントの腕の長さがほぼ一定であれば、剛性から張力ないし伸び量を決定することができる。
しかしながら、回転中心からワイヤにおろした垂線の長さ、即ちモーメントの腕の長さが変化する場合には、剛性から張力を決定するまでの間にモーメントの腕の長さを考慮しなければならない。例えば、ともにワイヤ張力が１ｋｇであるとする。このとき、回転中心からその１ｋｇの張力の作用点までの長さが１０ｃｍ（ケース１）と２０ｃｍ（ケース２）とする。このとき、ケース２の方がモーメントの腕の長さが長く、モーメントも大きい。ケース２の方が、同じ張力でありながら、外力に抗して関節回転角を所定値に維持する程度は強い。剛性は、張力とモーメントの腕の長さによって決まる。
コントローラ２００は、剛性が指定されたときに、指定された剛性とそのときのモーメントの腕の長さから指定された剛性に調整するのに必要な張力を計算し、次いで、その張力に調整するのに必要なワイヤの伸びの長さを計算する。ロボットの姿勢と独立して関節回りの柔軟性を指定された剛性に調整することができる。
足首関節２６のＸ軸回りの回転角度は、アクチュエータ６８ｂによるワイヤ６６ｂの引き込み量によって決定され、ワイヤ６６ｃは冗長である。本実施例では冗長な、アクチュエータ６８ｃによるワイヤ６６ｃの引き込量を利用して、足首関節２６のＸ軸回りの回転に対する剛性を制御する。
足首関節２６のＹ軸回りの回転角度は、アクチュエータ６８ａによるワイヤ６６ａの引き込み量によって決定され、ワイヤ６６ｂとワイヤ６６ｃは冗長である。本実施例では、冗長な、アクチュエータ６８ｂによるワイヤ６６ｂの引き込み量とアクチュエータ６８ｃによるワイヤ６６ｃの引き込量を利用して、足首関節２６のＹ軸回りの回転に対する剛性を制御する。
膝関節２４の回りの回転角度は、アクチュエータ６８ａ、６８ｂ、６８ｃによって決定され、ワイヤ６６ｄは冗長である。本実施例では、冗長な、アクチュエータ６８ｄによるワイヤ６６ｄの引き込量を利用して、膝関節２４の回りの回転に対する剛性を制御する。
股関節２２のＸ軸回りの回転角度は、アクチュエータ５２ａによるワイヤ５０ａの引き込み量によって決定され、ワイヤ５０ｂは冗長である。本実施例では、冗長な、アクチュエータ５２ｂによるワイヤ５０ｂの引き込量を利用して、股関節２２のＸ軸回りの回転に対する剛性を制御する。
股関節２２のＹ軸回りの回転角度は、アクチュエータ５２ｃによるワイヤ５０ｃの引き込み量によって決定され、ワイヤ５０ａとワイヤ５０ｂは冗長である。本実施例では、冗長な、アクチュエータ５２ａによるワイヤ５０ａの引き込み量とアクチュエータ５２ｂによるワイヤ５０ｂの引き込量を利用して、股関節２２のＹ軸回りの回転に対する剛性を制御する。
【００５５】
本発明のロボットはワイヤ駆動であり、各関節にアクチュエータを実装する必要がない。アクチュエータを関節から離れた位置に実装することができるため、関節を小型化、軽量化することができ、アクチュエータの実装位置の自由度が上がる。また、本発明の場合、ワイヤ数は２軸の関節に対しては３本、３軸の関節に対しては４本、即ち、１関節に対して軸数＋１本でよい。通常であれば、関節の１自由度について２本のワイヤを必要とする。必要なワイヤ本数とアクチュエータ数が少数化するため、四肢等のスリム化や軽量化が図れる。これらのことにより、末端側部材の動きを高速化することができ、外観的にも動作的にも人間や動物に類似したロボットを実現することが可能となる。
【００５６】
アクチュエータ群は大腿部に配置されることに限られるものではない。例えば、上肢の上腕部にアクチュエータ群を配置し、個々のアクチュエータが動作して上腕に対して前腕が回転されたり、前腕に対して手部が回転されたりするように構成することができる。
上述したアクチュエータのコントローラは、関節の回転角と張力とが入力されているが、張力に代えて関節の剛性を入力するように構成してもよい。
このような構成では、コントローラは、関節の回転角から末端側部材（例えば、足部）の回転中心とワイヤの接続点との間のモーメントアームの長さを計算し、このモーメントアームの長さから関節が所望の剛性となるワイヤの張力を計算する。そして、ワイヤの張力を計算された値とするアクチュエータの作動量がアクチュエータに出力される。モーメントアームが末端側部材の回転にともなって大きく変化する構成（ワイヤ終端ガイドが存在しないような構成）においては、上記のように張力に代えて剛性をコントローラに入力し、これを計算処理することにより、関節の剛性をより正確にコントロールすることができる。
【００５７】
次に、上記の機械構成を備える２足歩行ロボットの制御装置を説明する。
図１９は、ロボットの２足歩行を制御する制御装置の構成を示し、歩行指令データ作成装置１で作成された、体幹位置ベクトルＰ（これは歩行指令データ作成装置１によってオペレータが入力したものから修正されている）と、体幹姿勢ベクトルＲと、左足先位置ベクトルＣと、左足先姿勢ベクトルＤと、右足先位置ベクトルＥと、右足先姿勢ベクトルＦを入力し、逆キネマティクス計算する計算装置３０４を備えている。ただし、体幹位置ベクトルＰについては、歩行指令データ作成装置１によって修正されるのみならず、後記する「倒立振子制御」と「ならい制御」を実施するために、さらに修正されて計算装置３０４に入力される。また、体幹姿勢ベクトルＲについても、実際の体幹姿勢ベクトルが目標体幹姿勢ベクトルに一致するように、目標体幹姿勢ベクトルを補正する処理が実施されて計算装置３０４に入力される。
【００５８】
計算装置３０４は、入力された体幹位置ベクトルＰ（これは修正されている）と、体幹姿勢ベクトルＲ（これも補正されている）と、左足先位置ベクトルＣと、左足先姿勢ベクトルＤと、右足先位置ベクトルＥと、右足先姿勢ベクトルＦに基づいて、入力した各ベクトルで記述される位置と姿勢を実現するのに必要な各関節の回転角θを計算する。回転角は、各関節を回転させるモータの回転量で計算される。図１９では、２個のアクチュエータ分しか表示されていないが、すべてのアクチュエータのモータ回転量が計算される。この計算では、逆キネマティクス演算が実施される。
各アクチュエータごとに計算された目標回転量θは、各アクチュエータのためのドライバ３０６，３１６に入力される。各ドライバは、目標回転量と実際回転量の偏差に基づいて各アクチュエータのモータ３０８，３１８に加えるトルクを調整する。実際回転量は、アクチュエータのモータ毎に設けられているエンコーダ３１０，３２０で検出される。このフィードバック制御によって、アクチュエータのモータ３０８，３１８は、実際回転量が目標回転量に一致するようにフィードバック制御される。
【００５９】
目標ＺＭＰは、倒立振子モデル３３４に入力される。倒立振子モデル３３４には、実際の体幹位置ベクトルPも入力される。実際の体幹位置ベクトルPは、ロボットの体幹に設けられているジャイロ３２８の信号を演算装置３３０で演算して求められる。
倒立振子モデル３３４は、目標ＺＭＰと実際の体幹位置ベクトルPを用いて、目標ＺＭＰから体幹位置ベクトルPに向かう傾斜線の垂直からの傾きφを計算する。計算されたφは、ＺＭＰの修正量算出装置３３６に入力される。ＺＭＰの修正量算出装置３３６は、ΔＺＭＰ＝ｋ１×φ+ｋ２×dφ/ｄｔの式によって、ＺＭＰの修正量を算出する。即ち、前記した傾斜角φに比例する値と、傾斜角φの時間微分に比例する値を加算してＺＭＰの修正量を算出する。算出されたＺＭＰの修正量ΔＺＭＰは、入力された目標ＺＭＰに加算され、目標ＺＭＰはΔＺＭＰだけ修正される。以上のように、目標ＺＭＰをΔＺＭＰだけ修正する処理を、通常は倒立振子制御と称している。
人間は、歩行する場合、とくに高速で走行する場合には顕著なように、体幹を前方に傾けて走行しやすくする。体幹を前方に傾斜させることで重心を前方に移動させ、前方に移動した重心に追従するように足を前方に移動させる。倒立振子制御は、人間のこの種の制御に対応するものであり、体幹位置を前方に傾ける制御をする。
【００６０】
倒立振子モデルで修正された目標ＺＭＰ（３４０）は、実際のＺＭＰ（３２６）と比較され、その偏差（３４２）が算出される。実際のＺＭＰ（３２６）は、ロボットの足の裏に設けられている複数の力センサ３２２の出力を演算装置３２４によって演算することで演算される。偏差３４２にはゲインｋ３が乗じられて体幹位置ベクトルＰのディメンジョンに変換される。体幹位置ベクトルＰのディメンジョンに変換された偏差ΔＰは、体幹位置ベクトルPに足し合わされる。目標ＺＭＰ（３４０）と実際ＺＭＰ（３２６）の偏差（３４２）を体幹位置ベクトルＰのディメンジョンに変換して体幹位置ベクトルPに足し合わせる処理を、通常は「ならい制御処理」と称している。
【００６１】
ロボットが歩行する面には、体幹位置ベクトルＰと、体幹姿勢ベクトルＲと、左足先位置ベクトルＣと、左足先姿勢ベクトルＤと、右足先位置ベクトルＥと、右足先姿勢ベクトルＦと、目標ＺＭＰを決定する段階では、予期していない凹凸が存在し、ロボットの足が例えば凸を踏むことがある。これは、人間であれば蹴躓くことに相当する。人間はそのとき、膝を曲げて腰の位置を前方に送ることによって転倒しないようにする。ならい制御処理は、人間のこの種の制御に対応するものであり、体幹を前方に平行移動する制御をする。
膝を曲げて体幹を前方に平衡移動することによって転倒を防止する場合、そのままでは歩行を続けることができない。転倒を防止したあとには、膝を伸ばして通常の歩行姿勢に復帰することが必要である。倒立振子モデルは、それに相当する制御を実行する。
比喩的にいえば、ならいモデルは体の柔軟性に相当し、倒立振子モデルは歩行姿勢の維持力に相当する。
【００６２】
本実施例では、倒立振子制御系３３４で目標ＺＭＰを修正し、ならい制御系で目標ＺＭＰと実際ＺＭＰの偏差（３４２）によって目標体幹位置ベクトルＰを修正するにあたって、修正量制限装置３４６を組み込むことによって修正量を制限している。
ならい制御モデルで算出した目標体幹位置ベクトルの修正量をΔPとする。入力された体幹位置ベクトルPに修正量ΔPをベクトル加算し、それによって逆キネマティクス計算装置３０４で逆キネマティクスを解いて関節角を計算すると、計算された関節角が関節の許容回転範囲を超えてしまうことがある。この場合、ロボットの機械的制約によって、図１９の制御装置が演算したならい制御を実行することができない。本実施例では、ならい制御ループで算出した目標体幹位置ベクトルの修正量ΔPにαｎを乗じたもので体幹位置ベクトルPを修正する。ここでαは０から１の間の数であり、ｎは後記する回数であり、ｎ＝０，１，２，３・・・と変化する。
即ち、従来のように一律にP+ΔPの式で体幹位置ベクトルPを修正するではなく、P+αｎ×ΔPに従って体幹位置ベクトルPを修正する。最初にｎ＝０で対応できれば、P+α０×ΔP（＝P+ΔP）で修正する。２回目のｎ＝１で対応できれば、P+α１×ΔPで修正する。３回目のｎ＝２で対応できれば、P+α２×ΔPで修正する。４回目のｎ＝３で対応できれば、P+α３×ΔPで修正する。
具体的処理手順は下記のものである。
(1)ならい制御モデルで算出した目標体幹位置ベクトルの修正量をΔPとする。
(2) 最初にｎ＝０として、P+α０×ΔP（＝P+ΔP）で修正する。
(3) P+ΔPで、逆キネマティクスを解いて関節角θを求めた結果、すべての関節で許容回転角内であれば、そこで処理を終了する。
(4)前記の(3)で、少なくとも一つの関節について、計算された関節角θが許容回転角外となれば、修正量を低下させる。
(5)そのために、ｎ＝１として、P+α×ΔPで修正する。αは１以下であり、修正量は低減される。
(6) P+α×ΔPで、逆キネマティクスを解いて関節角θを求めた結果、すべての関節で許容回転角内であれば、そこで処理を終了する。
(7) 前記の(6)で、少なくとも一つの関節について、計算された関節角θが許容回転角外となれば、修正量を低下させる。
(5)そのために、ｎ＝２として、P+α２×ΔPで修正する。αは１以下であり、修正量は低減される。
以下ｎ＝３，４，５・・としながら、P+αｎ×ΔPで修正された体幹位置ベクトルPを実現するすべての関節回転角θが許容回転角内となるまで、上記手順を繰り返す。
【００６３】
P＋αｎ×ΔPと補正することから、ｎ＝０でない限り、ならい制御は不十分である。しかしながら、ロボットがならい制御を十分に効かせるだけの柔軟性を備えていなければ、ならい制御が不十分となってもやむをえない。ならい制御を十分に効かせた結果、関節回転角が限界まで回転し、限界となってもまだ回転角が不足していると転倒の恐れがある。本実施例のように、関節回転角が限界内で収まるようにならい制御の制御量を低減させるようにすると、ロボットが持つ柔軟性の範囲内でならい制御が実施され、ロボットが転倒する事態を著減することができる。
【００６４】
ならい制御は、体の柔軟性に相当する。ならい制御のためのゲインｋ３（変換装置３４４）が大きいほど、ロボットの肢体は柔軟に姿勢を変え、受けるショックを和らげる。従って、着地時等のようにショックを受ける場合には、ならい制御が強く働くことが好ましい。
反面ならい制御が常時に強く働いていると、片足立脚時に慣性力で姿勢が乱れ、着地予定でないタイミングで着地して着地ショックが大きくなることがある。ならい制御のためのゲインｋ３の値の設定には、上述した相反する要素があり、最適値に調整することが難しい。
【００６５】
本実施例では、この相反関係を解決するために、ならい制御のためのゲインｋ３の値をロボットの状態に合わせて増減する手法を取り入れた。
図２０の（A）は、歩行パターンの変化等に合わせてならい制御のためのゲインｋ３を変化させる例を示し、片足接地状態から両足接地状態に切り替わる前後において、ならい制御のためのゲインｋ３を増大させ、その他のときには低く維持する。この場合、着地ショックを受ける前後ではならい制御がよく効くためにロボットの肢体は柔軟に対応して着地ショックを和らげる。その他のときには、ならい制御のためのゲインｋ３は小さく、姿勢維持力が高く保たれる。片足立脚時に慣性力で姿勢が乱れることがなく、着地予定でないタイミングで着地するために着地ショックが大きくなることもない。ならい制御のためのゲインｋ３は、歩行指令データ作成装置１で作成される６個のベクトルの時系列変化に合わせて増減させることができる。
【００６６】
図２０の（Ｂ）は、左足裏に設置されている力センサが受ける力を示し、（Ｃ）は、右足裏に設置されている力センサが受ける力を示し、（Ｄ）は、両センサの受ける力の合計を示している。着地時には、強い慣性力が働くために、合計した力は着地時に大きい。合計した力とならい制御のためのゲインｋ３を比例させれば、着地ショックを受けるときにならい制御のためのゲインｋ３を大きくし、その他のときには低く維持することができる。図１９の力センサ３２２の信号を演算する装置３２４から、変換装置３４４に伸びる処理３６０は、力センサ３２２が受ける力の合計力に、ならい制御のためのゲインｋ３を比例させる処理を示している。
なお、ならい制御を強く働かせる場合に、倒立振子モデルのゲインｋ１、ｋ２を同時に増大させてもよいが、ならい制御のためのゲインｋ３のみを大きくしてもよい。
【００６７】
倒立振子モデルでは、目標ＺＭＰから体幹位置ベクトルPに向かう傾斜線の垂直からの傾きφを計算する（図１９の３３４参照）。計算されたφは、ＺＭＰの修正量算出装置３３６に入力され、ΔＺＭＰ＝ｋ１×φ+ｋ２×dφ/ｄｔの式によって、ＺＭＰの修正量ΔＺＭＰを算出する。ロボットが円滑に歩行するには、ゲインｋ１とｋ２の値を適当な値に調整する必要がある。さらには、ならい制御のためのゲインｋ３も適当な値に調整する必要がある。
ゲインｋ１、ｋ２、ｋ３の値を歩行制御に適当な値に調整しておくと、ロボットが歩行しないで静止しているあいだにも、ロボットが体幹を前方に傾けてからそれを修正する動作を繰り返すことが生じる。ここではそれを自励振動という。自励振動が生じると、ロボットの動力が無駄に消費されて不都合である。
これを解消するために、ロボットが歩行しないで静止している間は、ＺＭＰの修正量ΔＺＭＰを算出するｋ１×φ+ｋ２×dφ/ｄｔの式に用いるゲインｋ１、ｋ２の値を、歩行時に適当な値よりも下げることが有効であることがわかった。この場合、ならい制御のためのゲインｋ３も同時にさげてもよいが、ゲインｋ１、ｋ２の値を下げれば、ならい制御のためのゲインｋ３は下げないでもすむ。ロボットが歩行しないで静止している間に、ゲインｋ１、ｋ２（さらにはゲインｋ3）の値を下げても、ロボットは直立しつづけることが確認されている。自励振動に無駄に動力が消費されることがない。
図１９では、力センサ３２２の信号を演算する装置３２４によって、ロボットが静止しているか歩行しているかを判別し、その結果によってゲインｋ１、ｋ２を切替えることを図示している。
【００６８】
この実施例のロボットは、２本のワイヤのうちの一方を引いて時計方向に回転させ、他方のワイヤを引いて反時計方向に回転させる方式（プルプル方式）であり、ワイヤの中間部に非線形バネを挿入しているために、ロボット姿勢とは独立に剛性を調整できる。この特性を活用し、歩行時に剛性を変化させながら歩行するのが有効である。
着地中には、予期しない凹凸を踏んでいることがあり、下肢が柔軟な方が予期しない凹凸の影響を受けにくい。剛性を高めて指示された姿勢に忠実に制御すると、予期しない凹凸の影響を吸収できないためにロボットがスリップしたり転倒したりする恐れがある。
そこで、本実施例では、歩行パターンの進行に合わせて剛性を変化させる。ここでは、左右の下肢の剛性を別々に変化させる。
図２１（Ａ）は、歩行パターンと左右の下肢の剛性の変化パターンを示し、左右の下肢とも、接地中は剛性が低く維持されて、空中移動している間は高く保たれる。左足接地状態から両足接地状態に移行する直前タイミングで右下肢の剛性が下げられ、右足接地状態から両足接地状態に移行する直前タイミングで左下肢の剛性が下げられる。左下肢の剛性と右下肢の剛性は別々に制御される。接地中の下肢の剛性が低いために、予期しない凹凸を踏んでいても、接地した下肢が柔軟に対応して凹凸の影響を吸収する。一方、空中にある足の剛性は高く維持され、姿勢維持力が高く保たれる。片足立脚時に慣性力で姿勢が乱れることがない。
剛性の変化パターンには、図２１の（Ａ）〜（Ｃ）に例示する種々のバリエーションが存在する。
（Ａ）  左下肢の剛性を、左足接地状態と両足接地状態の間は低め、右足接地状態の間は高める。右下肢の剛性を、右足接地状態と両足接地状態の間は低め、左足接地状態の間は高める。
（Ｂ、Ｃ）  左下肢の剛性を、右足接地状態から両足接地状態に移行する直前タイミングで下げ、次の右足接地状態までの間に高める。右下肢の剛性を、左足接地状態から両足接地状態に移行する直前タイミングで下げ、次の左足接地状態までの間に高める。
（Ｂ）  下肢の剛性を連続的に上昇させる。
（Ｃ）  下肢の剛性を階段状に上昇させる。
いずれの変化パターンによっても、接地した下肢が柔軟に対応して凹凸の影響を吸収する一方、空中にある足の剛性は高く維持され、姿勢維持力が高く保たれる。
【００６９】
以下では、図１９の制御装置によって、経時的に変化する目標回転角と、経時的に変化する剛性に関する指示値に追従するようにアクチュエータを制御する技術を説明する。以下では、アクチュエータ６８ｂと６８ｃによって、足首関節２６のＸ軸回りの回転角と剛性を、指示された回転角と剛性に追従するように制御する例について説明する。
【００７０】
（第１の制御技術）
図２２は、足首関節２６をワイヤ６６ｂによってＸ軸回りに外向きに回転させるアクチュエータ６８ｂのためのコントローラ２００ｂの制御ブロック図と、ワイヤ６６ｃによって内向きに回転させるアクチュエータ６８ｃのためのコントローラ２００ｃの制御ブロック図を示す。これは、図１９のドライバ３０６と３１６の詳細に対応する。この場合、逆キネマティクス計算装置３０４は、関節の回転に対する剛性も指示する。剛性の指示値は、経時的に変化する。
最初にコントローラ２００ｂについて説明する。第１変換機２ｂは、足首関節２６の回転角の指示値Ｐ１から、その回転角の指示値Ｐ１を実現するのに必要なモータ１１４ｂの回転角Ｐ２に変換する。ここでは、バネ１４０が伸びないものとして計算する。計算された回転角Ｐ２は、モータ１１４ｂの実際の回転角Ｐ７と比較されて偏差Ｐ３が求められる。モータ１１４ｂの実際の回転角Ｐ７は、モータ１１４ｂに内蔵されているエンコーダ１１５ｂから得られる。第２変換機４ｂは、回転角偏差Ｐ３をモータ１１４ｂの回転速度Ｐ４に変換する。ここでは、偏差Ｐ３が大きいほど大きな回転速度Ｐ４に変換する。偏差Ｐ３がゼロであれば回転速度Ｐ４もゼロである。第３変換機６ｂは、モータ１１４ｂの回転速度Ｐ４をモータ１１４ｂに加えるトルクＰ５に変換する。モータ１１４ｂは、通電する電流値と発生するトルクが比例する特性を備えている。モータ１１４ｂに加えるトルクＰ５は電流の単位で指令される。電流の単位で指令されるトルクＰ５は、指示された回転角と実際の回転角との偏差に基づいてアクチュエータのトルクをフィードバック制御するトルクの増減値に相当し、指示された回転角に対して不十分なアクチュエータのトルクを増大させ、指示された回転角に対して過大なアクチュエータのトルクを減少させる。これによって、実際の回転角が指示された回転角にフィードバック制御される。
剛性の指示値Ｑ１は、第４変換機１０ｂに入力される。第４変換機１０ｂは、回転角の指示値Ｐ１からワイヤ６６ｂの張力が足首関節２６の回りのモーメントを発生させる腕の長さを計算し、剛性の指示値Ｑ１とモーメントの腕の長さから指示された剛性Ｑ１に調整するのに必要なワイヤ張力Ｑ２を計算する。ここでは図１８に示したバネ特性が参照され、バネ定数とモーメントの腕の長さから、指示された剛性Ｑ１に調整できるバネ特性を実現するワイヤ張力Ｑ２に変換する。第５変換機１２ｂは、張力Ｑ２をモータトルクＱ３に変換する。この変換には、図９のアクチュエータの特性式が利用される。モータのトルクの全部がワイヤ張力に反映されるわけでない。モータトルクの一部は、アクチュエータ等の摩擦や慣性に費やされる。第６変換機１４ｂは、必要なワイヤ張力を発生するモータトルクＱ３に摩擦や慣性に費やされる分を補償して実際に必要とされるモータトルクＱ４を算出する。
摩擦や慣性に費やされる分を補償したモータトルクＱ４は、回転角のフィードバック制御によって算出されたモータトルクの増減値Ｐ５に加算される。最終的には、加算されたモータトルクＰ６が指令される。実際には、モータ１１４ｂのトルクは通電電流に比例するので、モータ１１４ｂに、加算されたトルクＰ６に比例する電流を通電する。
【００７１】
コントローラ２００ｃについても、制御ブロックは同一であり、重複説明はしない。この場合、アクチュエータ６８ｂとアクチュエータ６８ｃは左右対称のために、Ｐ２とＱ２とＱ３は、コントローラ２００ｂと２００ｃとで、異符号で同じ値を持つ。ただし、慣性項と摩擦項は左右対称にならないので、Ｑ４の値は等しくならない。
【００７２】
この制御ブロックによると、指示された剛性に調整するのに必要なモータトルクＱ４が加算される。このために、足首関節２６のＸ軸回りの剛性は、指示された剛性Ｑ１に制御される。指示された剛性Ｑ１に調整するためのモータトルクＱ３（ここではワイヤ張力となるモータトルク）は、アクチュエータ６８ｂとアクチュエータ６８ｃによるものとがバランスし、足首関節２６のＸ軸回りの回転角に影響しない。足首関節２６のＸ軸回りの回転角は、剛性に調整するためのモータトルクと無関係に、指示された回転角Ｐ１にフィードバック制御される。
図２２の制御ブロックによると、回転角Ｐ１と剛性Ｑ１が独立に指示されても、指示された回転角Ｐ１と剛性Ｑ１に制御することができる。
上記した事象は、回転角と剛性の指示値Ｐ１、Ｑ１が時々刻々に変化する動作中常に得られ、経時的に変化する指示値Ｐ１、Ｑ１に常に追従させることができる。
剛性の指示値Ｑ１を歩行の状態に応じて経時的に変化させるには、歩行指令データの経時的変化に対応させてもよいし、ロボットの足の裏に接地されている力センサ３２２の出力に基づいて変化させてもよい。図１９の場合、力センサ３２２が検知する力によって、モータドライバ３０６、３１６に指示する剛性の値を変化させる。
【００７３】
（第２の制御技術）
図２３は、第２の制御技術に係わるコントローラ２００ｂとコントローラ２００ｃの制御ブロック図を示す。図１９のドライバ３０６と３１６に対応する。この場合、逆キネマティクス演算回路３０４は、関節の回転角を調整するアクチュエータについては目標回転角を演算し、関節の回転角を調整するには冗長なアクチュエータについては目標剛性値を演算する。この場合、モータ１１４ｂは関節の回転角を調整するアクチュエータであり、モータ１１４ｃは関節の回転角を調整するには冗長なアクチュエータであり、剛性を調整する。
この場合、コントローラ２００ｂは、回転角の指示値Ｐ１に基づいてモータ１１４ｂの回転角をフィードバック制御し、コントローラ２００ｃは、剛性の指示値に基づいてモータ１１４ｃのトルクをフィードバック制御する。モータ１１４ｃの実際のトルクＱ６は、モータ１１４ｃに通電する電流を測定する電流計１１５ｃで測定される。モータは１１４ｂ、１１４ｃは、電流値とトルクが比例する特性をもっている。
モータ１１４ｂの回転角のフィードバック制御のための制御ブロック図は、図２２とほぼ同様であり、モータ１１４ｃのトルクのフィードバック制御のための制御ブロック図も図２２とほぼ同様であり、重複説明はしない。
この制御技術によると、指示された剛性Ｑ１に調整するために必要なトルクがモータ１１４ｃから加えられる。このトルクが働いた状態で、モータ１１４ｂは、指示された回転角Ｐ１に調整するのに必要なだけ回転される。このとき、結果的には、モータ１１４ｂのトルクも、指示された剛性Ｑ１に調整するのに必要なトルクに調整され、モータ１１４ｃの回転角も、指示された回転角Ｐ１に調整するのに必要な回転角に調整される。
図２３の制御技術は、回転角という１の自由度に対して、２個のモータを利用するという冗長性を利用して、回転角と剛性を独立に制御するものであり、ヒトに類似している。ヒトも、関節の自由度からみると冗長な数の筋肉を利用して関節の回りに回転させる。その冗長性を利用して剛性を調整している。
図２３の制御ブロックによると、回転角と剛性が独立に指示されたときに、指示された回転角と剛性に制御することができる。
【００７４】
図２２，２３の技術を用いると、歩行パターンに合わせて剛性を変化させることができ、姿勢を柔軟に変える必要があるときには柔軟にでき、姿勢を維持する必要があるときには剛性を上げて姿勢を維持することができる。本実施例では、図２１で説明したように、接地した足の剛性を低くし、宙に浮いている足の剛性を高く調整しながら歩行する。
【００７５】
本実施例では、歩行パターンにあわせて、ならい制御のためのゲインｋ３と、下肢の剛性を変化させる。ゲインの変化と剛性の変化のいずれか一方のみを用いても有用であるが、組合わせて用いることが有効であり、組合わせて用いると、ならい制御と剛性の変化の相乗作用によって、ロボットの挙動を柔軟で安定したものとできる。
【００７６】
図５に示した歩行指令データ作成装置１を用いて歩行指令データを作成する場合、通常は体幹姿勢については体幹姿勢ベクトルRのみを指定する。確かに、体幹姿勢ベクトルRを指定すれば、ロボットは円滑に歩行することができる。
ただしより高速で歩行する場合、体幹を捩って歩行することが有利であり、体幹ベクトルの他に、体幹の捩れに関する姿勢も入力するのが有利である。
【００７７】
図２４（Ａ）は、従来のティーチング技術による場合の歩行姿勢を示し、体幹は前方に傾くことがあっても、捩れることはない。そもそも体幹の捩れを指定するベクトルが教示されていない。
図２４（Ｂ）は、体幹の左右対称軸線の方向を示す体幹ベクトルＲに加えて、体幹の左右を結ぶ線の方向を示す体幹捩れベクトルＱを教示することによって得られる歩行姿勢を示している。足の動きに連動して体幹を捩じると、体幹に対する足の動作速度が同じでも一歩の歩幅を伸ばすことができ、ロボットは高速で歩行することが可能となる。
図２４（Ｃ）は、体幹捩れベクトルＱの教示例を示し、平面視している。（１）は左右の足が揃っている状態を示し、（２）は左足を踏み出した状態を示し、（３）は左足をさらに大きく踏み出した状態を示し、（４）は右足を踏み出した状態を示している。
左足先位置ベクトルＣと右足先位置ベクトルＥが教示されているために、左右の足の中心同士を結ぶ線Ｌが進行方向Ｘに直交する線Ｙとなす角度θがわかる。そこで、体幹の左右を結ぶ体幹捩れベクトルＱを、体幹捩れベクトルＱと進行方向Ｘに直交する線Ｙとなす角度がαθとなるように教示する。ここではαを５０％とする。体幹捩れベクトルＱとY軸のなす角度が、左右の足の中心同士を結ぶ線LがY軸となす角度θの５０％となるような体幹捩れベクトルＱをロボットにティーチングするのである。なお前記の比率は５０％に限定されるものでなく、その前後の幅を有している。比率があまりに小さいと体幹を捩る意味がなく、比率があまりに大きいと体幹に捩るのに大きなエネルギーが費やされることになるので、３０〜６０％くらいの範囲が好ましい。図２４（Ｃ）の（１）から（４）に示すように、比率αを一定に維持してもよいが、一歩のストロークの中で比率αを変化させてもよい。
左右の足の動きに連動して捩じる体幹ベクトルＱを教示すると、同じ能力のロボットの歩幅を広げることができ、高速歩行させることができる。
体幹捩じれベクトルQを指定する代わりに、左右の足の中心同士を結ぶ線LがY軸となす角度から体幹捩じれベクトルQを計算して求めるようにしてもよい。
図２５に示すように、ロボットの上半身２５０を腰部（下胴部）２５４と胸部（上胴部）２５２に分離し、両者が人間の背骨に相当する部材を中心にして相対回転可能に構成することができる。この場合、左右の足の基部である腰部２５４を捩じりながら歩行し、胸部２５２については常時進行方向に向けておくことができる。このようにしても、体幹（腰部）に対する足の動作速度を同じにしながら歩幅を伸ばすことができる。図２６の平面図に示すように、体幹２５４を捩じることによって歩幅を距離Ｄだけ大きくすることができる。この場合、胸部２５２は安定しており、ロボットの歩行姿勢は安定したものとなる。また歩幅が伸びることからロボットが高速で歩行することが可能となる
左右の足の踏跡が一直線２５６上にあると、歩行姿勢が美しいだけでなく、狭い通路を通過することが可能となる。図２７は、体幹を捩じらないで条件で、左右の足を直線２５６上において歩行する場合の平面図を示し、体幹に対して左右の足を水平面内で角度αだけスイングしなければならない。図２８は、体幹を捩じりながら左右の足を直線２５６上において歩行する場合の平面図を示し、体幹に対して左右の足を水平面内で角度βだけスイングすればたりる。明らかに、体幹を捩じりながら歩行すると、左右の足を直線２５６上において歩行するのに必要なスイング角度が小さく抑えられ、ロボットは無理なく直線上を歩行できることになる。左右の足の足跡が厳密な意味では直線上になく、２本の平行な直線上にある場合でも、その２本の直線間距離が小さいと、ロボットの歩行姿勢がきれいで安定感のあるものとなる。体幹を捩じると、２本の直線間の距離を小さくしやすく、体幹を捩じることによって歩行姿勢をきれいで安定感のあるもにしやすい。
【００７８】
図１９の制御装置では、体幹姿勢ベクトルＲを入力し、逆キネマティクス演算し、入力された体幹姿勢ベクトルＲに制御するために必要な関節角を演算し、そうして得られた関節角を目標関節角としてフィードバック制御するため、実際の体幹ベクトルＲは、指示された体幹ベクトルＲ、即ち、歩行指令データ作成装置１（図５）で得られた体幹ベクトルＲに一致するはずである。しかしながら、ロボットにジャイロを取付けて実際の体幹ベクトルを測定すると一致しないことが判明した。これは、関節のガタや部材の撓み等に起因するものと推測される。
目標体幹姿勢ベクトルと実際体幹姿勢ベクトルが一致しなければ、意図する体幹姿勢をロボットにとらせることができない。
本実施例では、図５の歩行指令データ作成装置１で作成された体幹姿勢ベクトルＲ（ここには、オペレータがロボットにとらせたい姿勢が記述されている）をそのままロボットに教示せず（そのまま教示すると、目標体幹姿勢ベクトルと実際体幹姿勢ベクトルが一致しなので、実際体幹姿勢ベクトルを意図したものにすることができない）、目標体幹姿勢ベクトルと実際体幹姿勢ベクトルが一致しないことを見越し、目標体幹姿勢ベクトルを人為的に補正し、補正された目標体幹姿勢ベクトルと実際体幹姿勢ベクトルが一致しないために、結果として目標体幹姿勢ベクトルと実際体幹姿勢ベクトルを一致させる手法を採用している。
【００７９】
(1)  具体的は、最初に、歩行指令データ作成装置１で作成された体幹姿勢ベクトルＲをロボットにティーチングする。ティーチングされたロボットを動作させて実際の体幹姿勢ベクトルＲを検出する。
以下では、目標体幹姿勢ベクトルをＲ１とし、実際体幹姿勢ベクトルをＲ２とする。実際体幹姿勢ベクトルをＲ２はジャイロ３２８の出力を演算する装置３３０で演算される。
(2)  目標の体幹姿勢ベクトルＲ１と実際の体幹姿勢ベクトルＲ２のずれベクトルΔＲを計算する（図１９の装置３５０）。ずれベクトルΔＲは、Ｒ１・Ｒ２−１で計算できる。
(3)  そこで、目標体幹姿勢ベクトルをＲ１の方を、ずれベクトルΔＲを見越して補正する。補正された目標体幹姿勢ベクトルをＲ１＊とすると、Ｒ１＊＝Ｒ１・ΔＲで計算される。
(4)ロボットは、補正された目標体幹姿勢ベクトルＲ１＊を目標として動作する。ロボットによって実現される実際体幹姿勢ベクトルはＲ１＊とならない。それからはずれる。はずれた結果、目標体幹姿勢ベクトルＲ１に一致する。補正された目標体幹姿勢ベクトルＲ１＊は、オペレータと意図する体幹姿勢ベクトルＲ１にずれベクトルΔＲを見越して補正されているからである。
(5)  補正された目標体幹姿勢ベクトルをＲ１＊を計算する際に、まず、
Ｙ＝α・ΔＲ＋（１−α）・Ｉを計算し、ついで、Ｒ１＊＝Ｒ１・Ｙで計算してもよい。図１９の補正装置３５２は、この処理を実行する。ここで、αは１以下の正の値であり、Ｉは単位ベクトルである。
この場合、ずれベクトルΔＲのα％だけを見越して目標体幹姿勢ベクトルＲ１を補正することに相当する。
目標体幹姿勢ベクトルの補正処理は、種々の段階で実施できる。ずれベクトルΔＲが判明した段階で、歩行指令データ作成装置１で作成された体幹姿勢ベクトルＲを補正し、補正された目標体幹姿勢ベクトルをロボットに教示してもよい。この場合、ロボットの制御装置には、目標体幹姿勢ベクトルを補正するための装置３５０，３５２は要らない。それに代わって、ずれベクトルΔＲで補正する前の目標体幹姿勢ベクトルをロボットに教示し、ロボットの動作中に次々とずれベクトルΔＲを算出し、ずれベクトルΔＲが算出されとき以降の目標体幹姿勢ベクトルをずれベクトルΔＲで補正するようにしてもよい。
【００８０】
以上、本発明の具体例を詳細に説明したが、これらは例示にすぎず、特許請求の範囲を限定するものではない。特許請求の範囲に記載の技術には、以上に例示した具体例を様々に変形、変更したものが含まれる。
本明細書または図面に説明した技術要素は、単独であるいは各種の組み合わせによって技術的有用性を発揮するものであり、出願時請求項記載の組み合わせに限定されるものではない。また、本明細書または図面に例示した技術は複数目的を同時に達成するものであり、そのうちの一つの目的を達成すること自体で技術的有用性を持つものである。
【図面の簡単な説明】
【図１】目標ＺＭＰが移動する様子を説明する図。
【図２】シャープに変化する目標ＺＭＰをスムーズにした各種のカーブを例示する図。
【図３】目標ＺＭＰが移動する他の例を説明する図。
【図４】目標ＺＭＰのデータを出力する速度が可変であることを説明する図。
【図５】歩行指令データ作成装置の構成を示す図。
【図６】本実施例のロボットの両下肢の正面図。
【図７】同ロボットの左下肢の側面図。
【図８】同ロボットの足首関節の構造を説明するための図。
【図９】同ロボットのアクチュエータの詳細を説明する図。
【図１０】同ロボットの足部の動きを説明する図。
【図１１】同ロボットの足部の動きを説明する図。
【図１２】同ロボットの足部の動きを説明する図。
【図１３】同ロボットの足部の動きを説明する図。
【図１４】ワイヤの組込まれている非線形バネの正面図。
【図１５】ワイヤの組込まれている非線形バネの側面図。
【図１６】ワイヤテンションによって非線形バネが変形する様子を示す図。
【図１７】同ロボットの関節回りの剛性を説明する図。
【図１８】非線形ばね特性と関節回りの剛性を説明するグラフ。
【図１９】制御装置の構成を示す制御ブロック図。
【図２０】歩行パターンに追従してならい制御のためのゲインを増減するパターンを示す図。
【図２１】歩行パターンに追従して下肢の剛性を増減するパターンを示す図。
【図２２】関節回転角と剛性を独立に制御する第１の制御ブロック図。
【図２３】関節回転角と剛性を独立に制御する第２の制御ブロック図。
【図２４】体幹捩じれベクトルの教示方法と教示結果を模式的に示す図。
【図２５】上半身が腰部（下胴部）と胸部（上胴部）に分割されたロボットが体幹を捩じりながら歩行する姿勢を示す。
【図２６】体幹を捩じることで歩幅が広がることを示す平面図。
【図２７】体幹を捩じらないで直線上を歩行するのに必要な足の水平面内のスイング角を示す。
【図２８】体幹を捩じりながら直線上を歩行するのに必要な足の水平面内のスイング角を示す。
【符号の説明】
１：歩行指令データ作成装置
２：ＺＭＰ演算部
３：比較部
４：体幹位置ベクトル修正部
５：完成した歩行指令データ
１０：ロボット
１２：下肢部
１４：大腿部
１６：下腿部
１８：足部
２０：胴体部
２２：股関節
２４：膝関節
２６：足首関節
２８：骨盤部
３０：シャフト
３２：ユニバーサルジョイント
３４：ベアリング
３６：円板
３８：モータ
４０：フランジ
４２：シャフト
４４：フランジ
４６：軸
４８ａ，４８ｂ，４８ｃ：ワイヤ終端ガイド
４９ａ，４９ｂ，４９ｃ：ワイヤ接続点
５０ａ，５０ｂ，５０ｃ：ワイヤ
５２ａ，５２ｂ，５２ｃ：アクチュエータ
５４：プーリ
５６：アクチュエータ
５８：フランジ
６０：フランジ
６２：十字型自在継手
６４ａ，６４ｂ，６４ｃ，６４ｄ：プーリ
６６ａ，６６ｂ，６６ｃ，６６ｄ：ワイヤ
６８ａ，６８ｂ，６８ｃ，６８ｄ：アクチュエータ（ボールネジ）
１０２：フランジ
１０４：可動プレート
１０６：フランジ
１０８：案内ロッド
１１０：案内ロッド
１１２：案内ロッド
１１４：モータ
１１６：ギヤ
１１８：ギヤ
１２０：送りネジ
１２２：平板部
１２４：峰部
１２６：フランジ
１２８：シャフト
１３０：フランジ
１３２：シャフト
３０４：逆キネマティクス計算部
３３４：倒立振子モデル
ｋ１、ｋ２、ｋ３：ゲイン
３２２：力センサ
３２８：ジャイロ
３５０：ずれベクトル演算部
３５２：目標体幹姿勢ベクトル補正ベクトル演算装置
【図１】
2004202652.tif 000003
【図２】
2004202652.tif 000004
【図３】
2004202652.tif 000005
【図４】
2004202652.tif 000006
【図５】
2004202652.tif 000007
【図６】
2004202652.tif 000008
【図７】
2004202652.tif 000009
【図８】
2004202652.tif 000010
【図９】
2004202652.tif 000011
【図１０】
2004202652.tif 000012
【図１１】
2004202652.tif 000013
【図１２】
2004202652.tif 000014
【図１３】
2004202652.tif 000015
【図１４】
2004202652.tif 000016
【図１５】
2004202652.tif 000017
【図１６】
2004202652.tif 000018
【図１７】
2004202652.tif 000019
【図１８】
2004202652.tif 000020
【図１９】
2004202652.tif 000021
【図２０】
2004202652.tif 000022
【図２１】
2004202652.tif 000023
【図２２】
2004202652.tif 000024
【図２３】
2004202652.tif 000025
【図２４】
2004202652.tif 000026
【図２５】
2004202652.tif 000027
【図２６】
2004202652.tif 000028
【図２７】
2004202652.tif 000029
【図２８】
2004202652.tif 000030