(57)【要約】【課題】  実時間での２足歩行の運動制御を行いつつ、環境の変化や突発的外乱への速やかな対応を可能とする２足歩行制御装置を備えた２足歩行移動体を提供する。【解決手段】  記憶装置１０４には、２つの脚を有する２足歩行移動体の受動歩行パタンについて、２つの脚の股関節角度を記述関数で表記して、記述関数のパラメータを組織的に変化させる事前のシミュレーションにより、２足歩行移動体を記述する状態空間を覆う２つの脚の絶対角および角速度についての軌道データが格納される。演算処理部１０２は、センサにより検知された絶対角および角速度を軌道データと照合することにより、記述関数の目標値を算出し、目標値に基づいて股関節角度を目標値となるように制御する。【選択図】        図２
2005088113.tif 000002
【特許請求の範囲】
【請求項１】
２足歩行移動体であって、
２つの脚を有する脚部と、
各前記脚に設けられ、対応する前記脚の重力方向に対する絶対角および角速度を検知するための検知手段と、
前記２足歩行移動体の受動歩行パタンについて、前記２つの脚の股関節角度を記述関数で表記して、前記記述関数のパラメータを組織的に変化させる事前のシミュレーションにより獲得された、前記２足歩行移動体を記述する状態空間を覆う前記絶対角および前記角速度についての軌道データを格納するための記憶手段と、
前記検知手段の検知結果を前記記憶手段中の前記軌道データと照合することにより、前記記述関数の目標値を算出し、前記目標値に基づいて制御信号を生成する演算処理手段と、
前記演算処理手段からの前記制御信号に基づいて、前記股関節角度を前記目標値となるように制御する駆動手段とを備える、２足歩行移動体。
【請求項２】
前記記述関数は、前記股関節角度を時間の関数として表現した三角関数である、請求項１記載の２足歩行移動体。
【請求項３】
２つの脚を有する２足歩行移動体に対するモデルを、受動要素によりモデル化するステップと、
前記モデルの受動歩行パタンについて、前記２つの脚の股関節角度を記述関数で表記して、前記記述関数のパラメータを組織的に変化させる事前のシミュレーションにより、前記２足歩行移動体を記述する状態空間を覆う前記２つの脚の絶対角および角速度についての軌道データを獲得するステップと、
前記獲得された軌道データを記憶手段に格納するステップと、
各前記脚に設けられ、対応する前記脚の重力方向に対する絶対角および角速度を検知するステップと、
検知された前記絶対角および角速度を前記記憶手段中の前記軌道データと照合することにより、前記記述関数の目標値を算出し、前記目標値に基づいて前記股関節角度を前記目標値となるように制御するステップとを備える、２足歩行制御方法。
【請求項４】
２つの脚を有する２足歩行移動体の受動歩行パタンについて、前記２つの脚の股関節角度を記述関数で表記して、前記記述関数のパラメータを組織的に変化させる事前のシミュレーションにより、前記２足歩行移動体を記述する状態空間を覆う前記２つの脚の絶対角および角速度についての軌道データを記憶手段に格納して準備するステップと、
各前記脚に設けられ、対応する前記脚の重力方向に対する絶対角および角速度を検知するステップと、
検知された前記絶対角および角速度を前記記憶手段中の前記軌道データと照合することにより、前記記述関数の目標値を算出し、前記目標値に基づいて前記股関節角度を前記目標値となるように制御するステップとを備える、２足歩行制御方法。
【請求項５】
前記記述関数は、前記股関節角度を時間の関数として表現した三角関数である、請求項３または４記載の２足歩行制御方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、脚式移動体を２足歩行させるための２足歩行制御装置を備えた２足歩行移動体および２足歩行制御方法の構成に関する。
【背景技術】
【０００２】
劣駆動（機械）系とは、その機械系が持つ全自由度に比べて、能動的に駆動・制御できる自由度が少ないものを言う。自動制御の世界でしばしば例題として用いられる台車型や回転型の倒立振子はその典型例であり、振り子の根本が駆動機を含まない自由関節となっており、台車側に何も制御を加えないと転倒してしまう機械系である。
【０００３】
こうした系は制御器を適用した場合に、その効果が明白に分かりやすい。逆に言えば、そもそも扱いづらい機械系である。倒立振子は人為的な例題だが、脚移動（機械）系も、マニピュレータ等と違い、本来的に安定した基盤上に固定されていない系であり、地面と脚の先端に仮想的に直接制御が出来ない自由関節が存在するような劣駆動系である。仮想的自由関節と対応する足圧中心点を狭い足裏内に留めている限りにおいては、上記の議論からはずれる事が出来るが、その場合、それを可能とするために、逆に運動の側が制限される。特に脚が少なく、重心の高さに比して支持面が狭い２足歩行系は、転倒しないで動き続けるためのバランス維持が主要な課題となる。
【０００４】
これまでの脚式移動体、特に２足歩行の研究には、大きく２つの方向性があった。
【０００５】
一つは、何らかの基準に従って理想的運動状態の時系列を目標軌道として与え、外乱やモデル化誤差等の何らかの要因によりそこからはずれた場合に、そこに引き戻すような制御を行う、と言う方法である。目標軌道という形で事前に行動計画が出来ていると、それに沿うように計画的に各関節を動かしていく、と言う事が可能なので、比較的性能の低い関節角サーボで実装が可能になる、と言う利点がある。
【０００６】
もう一つは、「受動歩行」と呼ばれ、軌道等を所与のものとして明示的に与えず、機械系を適切に構成する事により、制御器や駆動器を用いる事なく歩行運動を生成させる、と言う方法である。ただし、明示的には与えていないのだが、状態空間内に、結果としての軌道（リミットサイクル）は存在する。目標軌道を天下り的に適当に決めてしまうのではなく、それを実行する物理系（機械系）が動きやすいように調整していくという考え方である。目標軌道が理想的なものであるため、機械系が自発的に、目標軌道に沿うように動く。
【０００７】
前者においては、歩行におけるバランス維持（その条件下で何らかの目標値に近づける）、と言う制御の目標に対して、特定の目標軌道や状態の時系列を事前に決定し、はずれた場合にそこへ引き戻すように制御を行う事は、十分条件であって必要条件ではない。つまり、過剰な（不必要に厳しい）制御が行われている、と言って良い。
【０００８】
後者においては、歩行運動を生成させる適切な構成となる機械的（物理的）パラメータの組み合わせがひどく限られたものとなり、また制御器を含まないため異なる環境への適応能力や外乱への対応能力に乏しかった。
【０００９】
また、上記の両者とも異なり、動的なバランス維持を可能とする平衡点を見出し、バランス維持を行わせ、また平衡点から状態をずらす事で、目標に沿った運動を行わせる、と言う制御方法も存在していた。しかし、これ等は一般に機械系の簡素化の仕方が極端だったり、離散的であったり、バランス維持と目標に沿わせる運動との兼ね合いがはっきりしていなかったりした（非特許文献１を参照）。
【００１０】
このような従来の２足歩行の制御方法のうち前者（第１の方法）については、軌道を事前に計画した上でメモリに保存しておき、実行時に必要な軌道を取り出して再現する、と言う方法がある（たとえば、特許文献１を参照）。しかし、当時の貧弱な計算機でも実現可能な方法として考えられており、ある一歩の内で、その一歩に対して一つの軌道を設定し、間引いた軌道データ点間を補完する、という手法である。
【００１１】
ただし、このような制御の原則は、その改良された方法である、ＺＭＰ（ゼロモーメントポイント）を歩行における安定状態の判別規範として用い、ヨー軸モーメントを含めて上体運動で補償する方法においても、「求められた軌道を設定歩行パターンとして歩行ロボットをプログラム制御する」ものであって、その基本的システム構成は同じである（たとえば、非特許文献２を参照）。同様に、安定に歩行が可能な理想の軌道を措定しておき、その軌道から外れた場合に、最適レギュレータ理論の手法を用いて補正を行う、と言う方法が提案されている（たとえば、特許文献２および特許文献３を参照）。
【００１２】
一方で、機械系が本来固有に持つ性質を利用して、２足歩行運動を生成させようとする研究の先駆けとして、「受動歩行」の研究がある（たとえば、非特許文献３を参照）。
【００１３】
この方式は、うまく歩けた場合には、非常にエネルギ効率の良い歩行を行わせる事が出来る。しかし、これは機械系のパラメータ設定が高度にうまく調整されたようなある特定の状態で、非常に制限された環境に応じたほぼ唯一の歩容で歩行を行うもので、同一環境に対して、異なる歩容を意図的（能動的）に作り出す事は出来ない方式であり、又わずかに異なる環境に対しては歩行運動が可能だが、その適応範囲（変動範囲）は非常に狭いものであり、外乱にも非常に弱い。
【特許文献１】特開昭６２−９７００６号公報明細書
【特許文献２】特開平５−２４５７８０号公報明細書
【特許文献３】特開平５−２７７９６８号公報明細書
【非特許文献１】Marc H. Raibert著、「Legged Robots That Balance」 The MIT Press, (1986)
【非特許文献２】山口仁一、高西淳夫,加藤一郎「上体運動により3軸モーメントを補償する２足歩行ロボットの開発」,JRSJ, Vol. ll, No. 4, pp.581-586. (1993)
【非特許文献３】Tad McGeer 「Passive Dynamic Walking」 IJRR, Vol 9. No. 2 (1990)
【発明の開示】
【発明が解決しようとする課題】
【００１４】
本発明は、上記のような問題を解決するためになされたものであって、その目的は、実時間での２足歩行の運動制御を行いつつ、環境の変化や突発的外乱への速やかな対応を可能とする２足歩行制御装置を備えた２足歩行移動体および２足歩行制御方法を提供することである。
【課題を解決するための手段】
【００１５】
このような目的を達成するために、本発明の２足歩行移動体は、２つの脚を有する脚部と、各脚に設けられ、対応する脚の重力方向に対する絶対角および角速度を検知するための検知手段と、２足歩行移動体の受動歩行パタンについて、２つの脚の股関節角度を記述関数で表記して、記述関数のパラメータを組織的に変化させる事前のシミュレーションにより獲得された、２足歩行移動体を記述する状態空間を覆う絶対角および角速度についての軌道データを格納するための記憶手段と、検知手段の検知結果を記憶手段中の軌道データと照合することにより、記述関数の目標値を算出し、目標値に基づいて制御信号を生成する演算処理手段と、演算処理手段からの制御信号に基づいて、股関節角度を目標値となるように制御する駆動手段とを備える。
【００１６】
好ましくは、記述関数は、股関節角度を時間の関数として表現した三角関数である。
【００１７】
この発明の他の局面に従うと、２足歩行制御方法であって、２つの脚を有する２足歩行移動体に対するモデルを、受動要素によりモデル化するステップと、モデルの受動歩行パタンについて、２つの脚の股関節角度を記述関数で表記して、記述関数のパラメータを組織的に変化させる事前のシミュレーションにより、２足歩行移動体を記述する状態空間を覆う２つの脚の絶対角および角速度についての軌道データを獲得するステップと、獲得された軌道データを記憶手段に格納するステップと、各脚に設けられ、対応する脚の重力方向に対する絶対角および角速度を検知するステップと、検知された絶対角および角速度を記憶手段中の軌道データと照合することにより、記述関数の目標値を算出し、目標値に基づいて股関節角度を目標値となるように制御するステップとを備える。
【００１８】
この発明のさらに他の局面に従うと、２足歩行制御方法であって、２つの脚を有する２足歩行移動体の受動歩行パタンについて、２つの脚の股関節角度を記述関数で表記して、記述関数のパラメータを組織的に変化させる事前のシミュレーションにより、２足歩行移動体を記述する状態空間を覆う２つの脚の絶対角および角速度についての軌道データを記憶手段に格納して準備するステップと、各脚に設けられ、対応する脚の重力方向に対する絶対角および角速度を検知するステップと、検知された絶対角および角速度を記憶手段中の軌道データと照合することにより、記述関数の目標値を算出し、目標値に基づいて股関節角度を目標値となるように制御するステップとを備える。
【００１９】
好ましくは、記述関数は、股関節角度を時間の関数として表現した三角関数である。
【発明の効果】
【００２０】
本発明の２足歩行制御装置を備えた２足歩行移動体および２足歩行制御方法では、機械系の自然な運動に基づく受動歩行を基盤的運動としながらも、それを能動的に拡張する方法であるため、自然な安定化が可能である。
【００２１】
また、本発明の２足歩行制御装置を備えた２足歩行移動体および２足歩行制御方法では、その一歩における唯一の目標軌道、と言う形を使わず、状態に応じて軌道間を渡り歩くようなやり方をするため、広い領域での安定化が可能である。
【発明を実施するための最良の形態】
【００２２】
以下、図面を参照して本発明の実施の形態について説明する。
【００２３】
以下の説明で明らかとなるとおり、本発明は、２足歩行を行う機械システムで、環境と接する部分が等価的に自由関節で置き換えられるような場合（足が面積を持たない点状で、足首トルクは掛けられない）であっても、バランス維持をしながら、バランスを失わない範囲で、目的の運動をも行わせられる制御手法を提供する。ただし、面積を持った足裏等が存在する事を妨げるものではない。
【００２４】
（本発明のシステム構成）
図１は、本発明の２足歩行制御装置を用いた２足歩行移動システム１０００の一例を示す概念図である。
【００２５】
図１を参照して、システム１０００は、２足歩行制御装置として機能する胴部１００と、胴部１００により駆動制御される脚部とを備える。脚部は、２つの脚を有し、各脚は、上腿部１０と、下腿部１２と、下腿部１２の接地面近傍に設けられるセンサ２０とを備える。
【００２６】
後に説明するように、上腿部１０と下腿部１２とは、直動関節により接続され、折り曲がりはできないものの、伸縮が可能になっている。
【００２７】
また、センサ２０は、接地面から支持脚の重力方向に対する絶対角θ、角速度ｄθ/ｄｔ、脚が接地しているか否かという情報を検出し、胴部１００に通知する。または、ジャイロ、加速度計等を胴部１００あるいは脚部に設け、支持脚の重力方向に対する絶対角θ、角速度ｄθ/ｄｔを検出しても良い。
【００２８】
胴部１００は、センサ２０からの情報と、後に説明するように事前に収集しておいたデータ集合とに基づいて、股関節角ψの大きさおよび脚の伸張・収縮を制御する。
【００２９】
図２は、図１に示した２足歩行制御装置として機能する胴部１００の構成をブロック図形式で示す図である。
【００３０】
図２を参照して、胴部１００は、センサ２０からの信号を受け取る通信インタフェース１０６と、後に説明する事前に収集しておいた軌道データ群を格納しておくための記憶装置１０４と、センサ２０からの情報に基づいて、事前に求めた軌道データ集合との照合（検索）を行い、システム１０００に対する後述する記述関数の対応パラメータを取り出して、制御信号を生成する演算処理部１０２と、演算処理部１０２からの制御信号に基づいて、股関節の駆動制御および脚長の制御を行うための駆動部１０８とを備える。
【００３１】
以下では、２足歩行制御装置の制御動作のための準備の処理および制御動作について説明する。
【００３２】
図３は、本発明の２足歩行制御方法の大きな流れを説明するためのフローチャートである。
【００３３】
図３を参照して、まず、制御対象のモデル化が行われる（ステップＳ１００）。すなわち、対象とする機械システム全体を簡素化し、受動要素（リンクやフリージョイント、あるいはバネやダンパ）のみを用いて、出来る限り簡単にモデル化を行う。
【００３４】
続いて、この簡素化したモデルを用いて、基本とする受動的運動パタンを決定する（ステップＳ１０２）。２足歩行の場合、この「受動的運動パタン」とは、「受動歩行」に対応する。
【００３５】
次に、受動的運動パタンについて、系の自由度の内、直接制御できるものを記述関数で表記し、その記述関数のパラメータを組織的・網羅的に変化させるシミュレーションを行って、系全体の状態空間を事前に可能な限り軌道で覆い尽くすようにデータを事前に獲得する（ステップＳ１０４）。
【００３６】
すなわち、簡単な目標値関数で、得られた受動的基本運動パタンのパラメトリックな表記を行う。これを「記述関数」と呼ぶ。次に、動力学シミュレータ等において、記述関数のパラメータを変化させて、パラメータの変化に対するデータ取得を組織的に行い、パラメータの変化に対応づけた形でデータを獲得する。
【００３７】
このようにして獲得したデータを２足歩行制御装置の記憶装置１０４に格納しておく（ステップＳ１０６）。
【００３８】
以上のような準備の下で、２足歩行システム１０００の制御を行う（ステップＳ１０８）。
【００３９】
すなわち、以下のような処理を行う。
【００４０】
（ａ）系の運動全体を表すような状態量、たとえば、上述した支持脚の重力方向に対する絶対角θ、角速度ｄθ/ｄｔ、脚が接地しているか否かという情報を検出する。
【００４１】
（ｂ）事前に求めたデータ集合との照合（検索）を行い、記述関数の対応パラメータ（の組）を取り出す。
【００４２】
（ｃ）この取り出したパラメータ（の組）の内、複数ある場合は適切なものを選択して、記述関数のパラメータとして供給する。この記述関数が、制御目標値を生成する関数となる。
【００４３】
（ｄ）この制御目標値に基づいて、演算処理部１０２により生成される制御信号により、運動制御を行う。
【００４４】
（各手続きの詳細な説明）
以下、図３で説明した各手続きをより詳しく説明する。
【００４５】
（１）モデル化と受動的運動パタンの取得
（ａ）対象とする機械システム全体を簡素化し、受動要素（リンクやフリージョイント、あるいはバネやダンパ）のみを用いて、出来る限り簡単にモデル化する。ヒトの２足歩行をモデル化する場合は、図４に示すように簡素化したモデル化を行う。
【００４６】
モデル化において、ヒトのような回転型の膝を持つ脚構造を単純化して、直動型の脚構造でモデル化している。こうしたモデル化は、ＭｃＧｅｅｒ等によって行われ「Ｃｏｍｐａｓｓ−ｌｉｋｅ  ｂｉｐｅｄ  ｍｏｄｅｌ」と呼ばれている。
【００４７】
図４を参照して、２足歩行システム１０００は、３リンク（その内、一つ（胴部）は質点）にて構成される。両脚には分布質量を持たせ、胴部は質点としてモデル化される。
【００４８】
胴部と脚との質量配分は、ヒトに近いものとする。つまり、胴部に全質量の２／３程度を割り当て、脚部のそれぞれに１／６程度を割り当てる。この値に厳密性は無く、ヒト型の歩行を目指さない場合には、他の質量配分であって構わない。
【００４９】
特に限定されないが、たとえば、脚は、上腿が６ｋｇ、下腿が４ｋｇ、上体は４０ｋｇに設定する。脚長は１ｍとする。
【００５０】
股関節は、回転型として、摩擦や粘性は無いものとしてモデル化する。また、地面と支持脚先端は、同様に回転型の関節でつながれているとした。このモデルにおいて、脚の先端は点状である。これは、地面と支持脚先端の上記の関係と矛盾しない。立脚中期のフット・クリアランスを作るため、地面は支持脚の足下だけ少し掘り込んである。または、遊脚の先端を振り抜きの間ほんの少しだけ短くしても良い。
【００５１】
脚は、直動関節により伸縮が可能になっている。この直動関節は、上腿と下腿の間（膝関節）、または、脚部と点状の足先との間（足首関節）に置く。
【００５２】
運動パタンのモデル化。このモデルに対しては、両脚を広げた状態を初期状態とし、ある適切な初速度を上体に与える事により、立脚中期を境にちょうど対称に一歩を踏み出す運動パタンが、その歩幅に対して一つだけ定まる。これを、以後、一歩の踏み出し運動の基本運動パタンとする。
【００５３】
この時に、この対称となる一歩の踏み出し運動パタンを誘発する（胴部の）初速度は、シミュレーションによる自動探索によって求めることが可能である。
【００５４】
なお、制御において、重心と接地（中心）点を結ぶ直線の鉛直線との角度を、全身の傾きを示す状態量として使用する、と言う方法は、「Ｇｌｏｂａｌ  Ａｎｇｌｅ」と呼ばれる。この「Ｇｌｏｂａｌ  Ａｎｇｌｅ」については、文献１：Gentaro Taga 「A Model of the Neuro-musculo-skeletal System for Human Locomotion」 Biological Cybernetics, Vol. 73. pp.97-111 ,(1995)に開示されている。
【００５５】
ただし、以下の説明において、本発明での直動脚によるモデル化、支持脚の絶対角度と角速度によるデータ獲得と制御は、重心点を股関節の中心で置き換え、接地（中心）点を点状の足先で置き換えたものの近似的表現である。
【００５６】
（ｂ）この簡素化したモデルを用いて、基本とする運動パタンを決める。
【００５７】
定常的歩行を対象とする場合には、適切な初速度を胴体部に与えた場合に、慣性に基づいて対称的に運動するような一歩の踏み出し（コンパス状歩行）を基本運動パタンとする。この間、脚長は基本的に変化させない。
【００５８】
この時、歩幅と初速度との間に一意な関係が生じる。このような内容については、たとえば、文献２：森田晋、大塚敏之「コンパス型モデルの対称性を用いた平地における歩容生成」 Robotics symposia. pp.101-106,(2002)、または、文献３：宮腰清一、山本知幸、多賀厳太郎、国吉康夫 「脚伸縮機構による二足歩行シミュレーション」 P.RSJ, pp. 1107-1108.(2000)に開示がある。
【００５９】
本発明においては、この関係を維持できた時に、歩行におけるバランスが維持できていると見なす。また、実際に、この関係が満たされている状態においては、転倒は発生しない。
【００６０】
この基本運動パタンとして、上記の定常的踏み出し運動だけではなく、歩行からの両脚をそろえての静止や逆に踏み出し、あるいは歩行ではなく走行の（受動的）基本運動パタンを得る事も、同様に出来る。
【００６１】
（２）データ獲得の局面
（ａ）簡単な目標値関数で、得られた受動的基本運動パタンのパラメトリックな表記を行う。これを上述のとおり「記述関数」と呼ぶ。もちろん、この表記を行う場合は、この記述関数は、元々の受動的運動パタンと類似性を持っていなければならない。
【００６２】
股関節の角度（脚間の相対角度）を表す記述関数としては、以下の余弦関数を用いる。
【００６３】
ψ＝ａ×ｃｏｓ（２πｆｔ）
ここで、ψは股関節角度、ａは振幅、ｆは周波数、ｔは時刻を表す。この関数を用いるのは、元々の受動的歩行パタンにおいて、股関節角度が、一般にこの余弦関数と非常に類似した時間変化をし、またこの関数が歩行という周期運動において重要なパラメータである歩幅と歩行周期・着地タイミングに対応する振幅と周波数、という少数パラメータによって簡潔に表現される関数だからである。この関数は、より一般的には三角関数である。
【００６４】
この余弦関数による記述関数に従って股関節角度が変化するモデルの挙動と元々の自由関節のみで構成されたモデルの動作は、記述関数のパラメータが適切に選ばれ、設定されている場合、元々の自由関節のモデルの動きとほぼ同じように動く事が、シミュレーション等により確かめられる。
【００６５】
（ｂ）動力学シミュレータ等において、記述関数のパラメータを変化させて、パラメータの変化に対するデータ取得を組織的に行い、パラメータの変化に対応づけた形で、それ等のデータを保存しておく。
【００６６】
ここでは、記述関数を股関節目標値として理想的に角度制御される場合に、対称的踏み出し運動を行うように胴体初速度を調整された条件下で、記述関数の振幅と周波数を変化させたそれぞれの場合に対して、支持脚角度と角速度の時間軸での軌跡を、（サンプリング周期毎の）時刻とも対応する形で、データ表（配列）を作成する。
【００６７】
図５は、このようなデータ表を作成する手続きを示す概念図である。
【００６８】
図５に示すとおり、記述関数のパラメータ（振幅ａ、周波数ｆ、時間ｔ）をそれぞれ所定のステップで変化させる。これにより、動力学シミュレータにより、重力方向に対する支持脚の絶対角θ、角速度ｄθ/ｄｔ（図中では、θの頭部に「・」を打って表す）、胴部の速度ＳT（初速Ｓ０）の値をシミュレートする。
【００６９】
本来、系に対して作用を及ぼすのは、系全体の重心と足圧中心点とが成す「ｇｌｏｂａｌ  ａｎｇｌｅ」であるが、ここでは、系の質量配分をヒトのそれに近づけてあるため、系全体の重心は胴部の股関節近傍のすぐ下に存在し、足圧中心点は地面と接触している点状の足先に存在する。そこで、近似的に、重心を胴部（股関節）にあり、足圧中心点は足先にあると考えても良く、その場合、「ｇｌｏｂａｌ  ａｎｇｌｅ」は支持脚角度（と角速度）を指す事になる。
【００７０】
この説明においては、このような近似手法を用いているが、もちろん、本来の重心と足圧中心点で軌道データを収集しておくやり方でも本質的な違いは無い。
【００７１】
この時のパラメータ変化をさせる間隔（結果として得られる軌道データの間隔）は、得られたデータとパラメータの組との対応がつく限り、一定でなくとも良い。通常運動で行われやすいようなパラメータの組の近傍では細かく軌道を取得し、そうでないところでは荒く取る事で、データの総量を減少させて構わない。
【００７２】
個別の運動軌道をシミュレーションで得る時に、地面と支持脚との間に存在する回転関節において、地面に対して垂直と水平方向に掛かる力を計算する事が出来る。適当な摩擦係数μを仮定すると、垂直方向の力Ｆｖと水平方向の力Ｆｈの絶対値の比から、（仮想的回転関節ではなく、本当に点状の足先を地面においた場合に）支持脚のスリップが発生するか否かが分かる。スリップが発生しないための条件は、以下のとおりである。
【００７３】
Ｆｈ≦μＦｖ
歩幅が広く周波数の高い（周期の短い）一歩の踏み出しを行うとスリップが発生しやすくなるが、一歩踏み出す運動の期間の内、どこかの時刻でこの現象が発生した場合には、その軌道は破棄し、データ群の中には含めない。こうしておく事により、スリップを誘発するような運動目標を生成してしまう事態を予防できる。同様に、関節の可動域の制限にかかってしまう起動や駆動部の発生トルクの制限にかかってしまう軌道を事前に除いておいても良い。
【００７４】
次に、具体的にシミュレートされた結果について述べる。
【００７５】
以下の説明では、一例として、振幅をおよそ０．０２ｒａｄ刻み、周波数を０．１Ｈｚ刻みで変化させたそれぞれの場合において、対称に一歩を踏み出す運動をさせた時の支持脚の角度と角速度の軌道（時間変化するデータ）を、この二つのパラメータでラベル付けし、さらに、軌道上の一定時間毎のデータ点に対し、それに対応する時刻でもラベル付けを行ってシミュレートしている。つまり、ある時刻の（支持脚）角度および角速度データに対し、振幅、周波数、時刻でラベル付けがされた事になる。全てのパラメータの全ての軌道上の各点に対して、ラベル付けを行い、整理して配列し、記憶装置１０４に保存しておく。
【００７６】
上記のように、パラメータの刻み幅は、必ずしも一定である必要はない。重要なのは、あるパラメータの組み合わせの下でのある時刻におけるデータである、というように、対応付けが出来ていて、逆にたどれるようになっている事である。
【００７７】
股関節を記述関数を目標値として能動的に動かした場合でも、地面との間は（点接触を置き換えた、制御されない）自由関節でつながれているので、受動的運動時と同様に胴体部への初速度は、与えられた記述関数パラメータの下で、全体の一歩を踏み出す動きが対称的になるように、適切な値を（自動）探索する。
【００７８】
歩幅と初速度の対応関係（軌道の始状態と終状態だけを集めたもの）も求まる。これは、股関節を自由関節から記述関数を目標値とした角度制御関節に置き換えた後、両脚支持期の脚長（蹴り出し速度）制御に用いる。
【００７９】
図６〜図８は、このようにしてシミュレートされた軌道のデータ群を表す図である。
【００８０】
図６〜図８において、横軸は、支持脚の接地面に対する絶対角θを表し、縦軸は、角速度ｄθ/ｄｔを表す。また、図６は、周波数ｆが０．５Ｈｚ、図７は、周波数ｆが１．０Ｈｚ、図８は、周波数ｆが１．５Ｈｚの場合の例を示す。
【００８１】
各図の左側（角度がマイナス）の始状態から一歩の踏み出しが始まり、各軌道に沿って右側の終状態まで運動が行われる。各軌道は、初期角度の相違に対応しており、初期角度０．０５ｒａｄ〜０．５ｒａｄまで、０．０５ｒａｄ刻みで値を変化させている。
【００８２】
各周波数における軌道群は、同一周期における、異なる歩幅での一歩の運動を表している。周波数は、その定義上、周期の逆数であるため、同一周波数の図においては、異なる軌道であっても、時刻の刻み幅が同一であるならば、各時刻（サンプリング・タイム）に対応する同数のデータ点を含んでいる。
【００８３】
この機械系全体は、倒立振子と似た挙動を示すために、中央部（立脚中期）のポテンシャル・バリア（位置エネルギーが一番大きくなる姿勢）を超えるために、適当な初速度（角速度）を必要とする。低い周波数における歩行は、ゆっくりした運動であり、全体の運動がゆっくりになるため、運動速度（角速度）が中央部のポテンシャル・バリアを超えられる最低速度（角速度）に近づいてくる。すると、ポテンシャル・バリアの近く（頂点）で、速度（角速度）が０に近づき（停止しそうになり）、その後倒れ込みに従い加速するような、加速度の多い運動（図では谷間が深くなる）になる。通常、ゆっくりした歩行は、運動速度（角速度）が小さいため、股関節での駆動は少なくてよく、すなわち、より受動方向に近い歩行になる。これに比べて、高い周波数における歩行は、歩行周期が短いため、すなわち速い運動であり、そのため、歩幅が広いものは一層大きな初速度（角速度）を必要とするため、角速度が高い範囲まで軌道が分布し、運動中の加減速も少ない（谷間が小さい）。
【００８４】
（３）データからの検索と運動制御・生成の局面
（ａ）まず、演算処理部１０２は、系の運動全体を表す状態量を検出する。
【００８５】
すなわち、センサ２０から、支持脚の絶対角θ、角速度ｄθ/ｄｔを検出する。
【００８６】
（ｂ）次に、演算処理部１０２は、事前に求めたデータ集合との照合（検索）を行い、その状態量と対応する記述関数のパラメータの組を記憶装置１０４から取り出す。
【００８７】
ここでは、その支持脚角度・角速度を既に得てある軌道データ群の中の各点と比較し、最も近いものを選ぶ。その最も近い点に対応する振幅、周波数、時刻のパラメータの組は、軌道データ群を取得する時に対応づけて保存されているので、求める事が出来る。
【００８８】
ただし、軌道群からなるデータ集合には、同一の状態（ある時刻での支持脚状態の瞬時値）に対しても、異なる複数のパラメータの組が対応し得る、と言う冗長性が存在する。
【００８９】
逆に言えば、同一の状態に対しても、歩幅と着地タイミング（周波数）がある関係を満たしているならば、ある範囲で歩幅を選択する、あるいは着地タイミング（周波数）を選択する事が出来る事を意味する。つまり、バランスを維持する、と言う事を意味している関係性（歩幅・初速度関係を満たす対称踏み出し軌道が意味する、歩幅・着地タイミング（周波数）パラメータの組み合わせ）を守ったまま、歩容を変化させられる事になる。
【００９０】
飛び石状の路面、階段、障害物のある路面上を歩行する場合は、歩幅を選択すれば良く、ダンスのステップのような歩容を必要とする場合は、着地タイミングを適切に選択すれば良い。また、平地を自由歩行する場合は、双方を適当な範囲に納めるように決めれば良い。この時、遊脚を振り子と見た場合の自然周波数（受動歩行の周波数に近いところ）に定めると駆動の必要性が下がるため効率の良い（エネルギをあまり使わない）歩行が可能になる。以下の説明では、いずれの基準を用いるかは、事前に設定されているものとし、特に限定されないが、たとえば、遊脚を振り子と見た場合の自然周波数（受動歩行の周波数に近いところ）に定めるとの基準に基づくものとする。
【００９１】
（ｃ）この取り出した複数組のパラメータの組の内、上記基準にしたがって、適切な組を選択して、記述関数のパラメータとする。すると、この記述関数が、股関節の制御目標値を生成する関数となる。
【００９２】
図９は、以上のような関節の制御目標値を生成する手続きを示す概念図である。
【００９３】
検出された支持脚の絶対角θ、角速度ｄθ/ｄｔに基づいて、データ群から探索を行い、パラメータ（振幅ａ、周波数ｆ、時間ｔ）を選択し、股関節目標角ψdを決定する。
【００９４】
パラメータの組が決まれば、関係式：ψd＝ａ×ｃｏｓ（２πｆｔ）から股関節目標角度ψdが求まる。記述関数を微分しておけば、股関節目標角速度ｄψ／ｄｔも求まる。
【００９５】
軌道群からなるデータ集合は、股関節の記述関数のパラメータと対応付けられる形でデータ取得が行われている。しかし、記述関数の形で股関節角度（と角速度）の運動を表現するのではなく、直接股関節角度（と角速度）と対応付ける形で求めておいても良い。これは、図９で、θとdθ/dtから直接ψdを求めることに相当する制御とそのためのデータの集合である。
【００９６】
（ｄ）この制御目標値に基づいて、運動生成・制御を行う。
【００９７】
股関節の角度・角速度の制御は、簡単なＰＤ（Proportional Differential）制御系でも実現できる。もちろん、より高度な最適制御やロバスト制御の手法を用いた制御を行っても良い。
【００９８】
図１０は、本発明の制御の様子を説明するための概念図である。
【００９９】
たとえば、図７に示したパラメータの１つの始状態から、一歩を踏み出す動作をしているときに、システム１０００に外乱が加わったとしても、２足歩行制御装置は、股関節角度および股関節角速度を、それぞれ、上述した股関節目標角度および股関節目標角速度となるように制御する。この結果、もとの始状態に対応する軌道とは異なる他の軌道を通過して、終状態あるいはその近傍に到達することで、システム１０００は、２足歩行を継続することができる。なお、図１０を用いた説明では、説明の簡単のために同一の周波数ｆに対応する他の（歩幅の異なる）軌道に、運動が移り変わる場合を説明しているが、より一般には、他の周波数ｆに対応する他の振幅も異なる軌道に、運動が移り変わることになる。
【０１００】
図１１は、このようにして制御される脚部の運動を模式的に示す図である。
【０１０１】
図では、右足を実線、左足を破線で示す。図の左側に比べて、右側では、歩幅が狭くなっている。すなわち、異なる振幅ａに対応する軌道に移り変わっても、安定に２足歩行が維持できる。
【０１０２】
（制御系の構成）
以下、演算処理部１０２により実行される制御系の動作について、さらに詳しく説明する。
【０１０３】
制御系は、以下の４つの部分（ルーチン）からなり、機械系動力学シミュレータから、上記の情報を受け取り、以下の手順に従って、制御を行う。
（１）脚の接地状況によって、単脚支持期、両脚支持期、空中に両脚とも浮いている、と判定する部分。判定に基づいて、以下の処理のどれかを行う。
（２）単脚支持期に、股関節角度と脚長の目標値とを生成する部分。それに基づいて角度（と角速度）、位置（脚長）制御を行う制御器。
（３）両脚支持期に、脚長の目標値を生成する部分。それに基づいて位置（脚長）制御を行う制御器。
（４）空中に両脚とも浮いている場合は、制御を掛けない。
以上を、歩行している間、繰り返す。
【０１０４】
図１２は、このような制御系の動作を説明するためのフローチャートである。
【０１０５】
図１２を参照して、演算処理部１０２は、まず、センサ２０からの情報に基づいて、脚の接地状況（支持状態）を把握する（ステップＳ２００）。すなわち、脚の接触状態により、単脚支持期（状態）、両脚支持期（状態）として分類し、また、左右の脚の状態（角度・角速度）を、支持脚、遊脚と分類し、支持脚状態、遊脚状態として割り当てる。
【０１０６】
演算処理部１０２は、脚の状態が、単脚支持期であると判断すると（ステップＳ２０２）、演算処理部１０２により実行される股関節制御系のルーチンは、センサ２０からの情報により支持脚の状態（角度・角速度）を獲得し（ステップＳ２１０）、さらに、既にシミュレーションで生成され記憶装置１０４に格納されている軌道データ配列から支持脚の状態（角度・角速度）を手掛かりにして照合し（ステップＳ２１２）、対応するパラメータ（周波数、振幅、時刻）の組を取り出す（ステップＳ２１４）。
【０１０７】
上述したように、この時、一つの状態（角度・角速度）に対しても、パラメータの組は複数が求まる場合がある。特に規定の歩幅や周波数を決める必要がない場合、最も歩きやすい受動歩行に近い歩容となるパラメータの組を選ぶ。
【０１０８】
求めたパラメータの組と時刻を記述関数に与え、記述関数の出力した値を、股関節の角度目標値ψdとする。また、記述関数を微分した関数の値を、股関節の角速度目標値ｄψd/ｄｔとする（ステップＳ２１６）。
【０１０９】
演算処理部１０２は、股関節の実際の角度・角速度が目標値になるように、ここではＰＤ制御に基づいて、機械系へのトルクτの目標値を生成する。
【０１１０】
τ＝Ｋp（ψ―ψd）＋Ｋd（ｄψ/ｄｔ―ｄψd/ｄｔ）
ここで、ＫpおよびＫdは、予め求められている定数であるものとする。
【０１１１】
股関節角度・角速度は、両脚の相対角度・角速度から求められる。もちろん、股関節にセンサを直接装着して求めても良い。
【０１１２】
駆動部１０８は、このトルクτにより股関節を制御する（ステップＳ２１８）。
【０１１３】
なお、ここでは、股関節の制御トルクを生成するためにＰＤ制御系を用いたが、もちろん、より高度な最適制御やロバスト制御の方法を用いて良い。
【０１１４】
また、演算処理部１０２により実行される脚長制御系は、立脚中期のフットクリアランスを作るために、遊脚を短縮（膝の屈曲に相当）して脚長を短くし、支持脚を延長（膝の伸展に相当）する。そのための遊脚と支持脚の脚長の目標値を以下のように定める。
【０１１５】
股関節の目標値を作る記述関数に対して、周波数と時刻のデータが与えられるが、この周波数は歩行周期Ｔと、その定義上Ｔ＝１/ｆの関係がある。この歩行周期と時刻で、位相φをφ＝ｔ/Ｔと定義できる。歩行の一歩を踏み出す間に、この位相の値は０（離床時）から１（着床時）まで変化する。
【０１１６】
脚伸縮運動を簡単な正弦関数によって作る。この時、この正弦関数の係数Ｋfは、股関節の振りにおいて逆引きで求められた目標周波数の値を３倍し、さらに２分の１にして、その値とする（すなわち、１．５倍）。脚長ｌdは、以下の式で与えられる。
【０１１７】
ｌd＝ａl×ｓｉｎ（２πＫfφ）
（φ：０〜１，２πＫfφ：０〜３π）
遊脚と支持脚は、フット・クリアランスを作る上でつじつまが合うように、符号を逆にしておき、支持脚で伸長、遊脚で収縮するようにしておく。
【０１１８】
この時、フットクリアランスを作るためだけには、より簡単な目標値（たとえば、ステップ関数）を使用して良いが、上記の目標値に従って制御を行うと、ヒトと同様の床反力のパタンを得る事が出来る。
【０１１９】
以上の処理の後、処理はステップＳ２００に復帰する。
【０１２０】
また、ステップＳ２０２において、両脚支持期であると判断された場合は、演算処理部１０２により実行される股関節制御系のルーチンは、センサ２０からの情報により支持脚の状態（角度・角速度）を獲得し（ステップＳ２２０）、さらに、既にシミュレーションで生成され記憶装置１０４に格納されている軌道データ配列から支持脚の状態（角度・角速度）を手掛かりにして照合する（ステップＳ２２２）。演算処理部１０２により実行される股関節制御系としては、両脚と足先が挟んでいる地面の線分とから成る三角形により、股関節角度が決まってしまうために、股関節角度を制御する事は無用である。そのため、股関節の制御系へのトルク目標値は０として良い。
【０１２１】
ただし、脚長制御系は、立脚中期のポテンシャルバリア（位置エネルギの山）を越えるための運動エネルギを、後側の脚を伸展する（同時に前側の脚を屈曲する）事により得られる胴部の初速度によって、生成しなければいけない。この時、歩幅と初速度との関係として、収集してある軌道データ群の始状態と終状態の部分を用いる。現在の前方の脚（これから支持脚になる脚）の角度を調べて、その角度に対応する角速度を求める。この角速度を目標角速度ｖuとする。この角速度から、幾何学的条件より、脚の伸長（収縮）目標速度ｖlを以下の式でもとめる（ステップＳ２２４）。
【０１２２】
ｖl＝ｖu/ｓｉｎθ
こうして求めた速度目標値を後側の脚（前側の脚）の速度目標値として、速度制御系により、脚長を制御する（ステップＳ２２６）。あるいは、１時遅れ系等のフィルタを通して、後側の脚長（前側の脚長）を以下の式によりステップ状に目標値を変化させる事で、必要な脚伸縮の速度を生成して制御する。
【０１２３】
ｄd＝Ｋl・ｖl  （：適当な係数）
地面に接している限りいつまでたっても両脚支持期と判断されてしまうと、いつまで経っても単脚支持にならず股関節の制御が適切に働く事が出来ない状態になり、最終的に両脚がそろって転倒してしまう。そこで、脚長変化により、一定期間蹴り出し（ｐｕｓｈ→ｏｆｆ）動作が行われた場合、その後逆に後ろ側の脚を縮めるように動かすと、後ろ足を引きずってしまう事による転倒を予防する事が出来る。
【０１２４】
以上の処理の後、処理はステップＳ２００に復帰する。
【０１２５】
また、ステップＳ２０２において、空中期であると判断された場合は、演算処理部１０２により実行される股関節制御系および脚長制御系とも、動作を停止する（ステップＳ２３０）。
【０１２６】
なお、本発明の２足歩行制御装置および２足歩行制御方法では、前進と後退の取り扱いの一体化を行うこともできる。すなわち、対称的踏み出し運動であるため、求められた軌道データ群は、前進の場合と後退の場合で、角速度の符号が反対になるだけで、基本的な軌道データ形状は同じままなので、前進用に求めた軌道データ群を、角速度の符号だけ変える事で、そのまま使う事が出来る。
【０１２７】
以上説明したとおり、本発明の２足歩行制御装置および２足歩行制御方法は、大きな外乱への適応が可能である。すなわち、歩行途中の一歩を踏み出した状態で、胴部に突発的に力が掛かったりした場合でも、あるいは、地震のように地面が動いた場合でも、着地点と着地タイミングの両方を、対称踏み出し軌道データ群より適宜求められるので、相当大きな外乱に対しても、安定性を失わずに、その時の状態に合わせて歩行を続けられる。
【０１２８】
シミュレーションでは、前方に歩行途中に、０．０５ｓの間、胴部にステップ状に外力を加えた場合、後ろからさらに押される方向で約１０００Ｎ、後ろに押される方向で約１３００Ｎの大きさの力に対しても、適切に着地点と着地タイミングを選び、転倒する事がなかった。
【０１２９】
また、本発明の２足歩行制御装置および２足歩行制御方法は、実時間での処理に適している。オフラインで事前にデータを求めておき、実際に動作を行う時には、テーブル・ルック・アップを行うような制御形式なので、動いている最中には、殆ど難しい計算をする必要がないため、状況の変化や突発的な外乱に対して、より即応的で高度な対処能力を持っている。
【０１３０】
あるいは、データ集合の交換により多様な運動様態に対応することも可能である。以上の説明においては、定常的歩行運動のための軌道データ群として、一歩の踏み出し運動の軌道群を用いたが、歩き出しや停止、走行に対しても、同様の手順で軌道データ群を求めておいて、データ群を切り替える事で、歩行だけでなく、様々な運動を生成・制御する事が可能である。
【０１３１】
なお、以上の説明では、軌道データ群を求めて、そこから記述関数のパラメータを探索（テーブル・ルック・アップ）によって求めたが、そこで行っている事は、支持脚の角度・角速度（「Ｇｌｏｂａｌ  Ａｎｇｌｅ」の角度・角速度）から、対応する記述関数のためのパラメータを通して、股関節の目標角度や目標角速度を求める事であり、この対応関係を、直接何らかの学習機構（ニューラル・ネット）や近似関数によって求める機構を考えても、本方式と本質的には同一の動作を実施できる。
【０１３２】
今回開示された実施の形態はすべての点で例示であって制限的なものではないと考えられるべきである。本発明の範囲は上記した説明ではなくて特許請求の範囲によって示され、特許請求の範囲と均等の意味および範囲内でのすべての変更が含まれることが意図される。
【図面の簡単な説明】
【０１３３】
【図１】本発明の２足歩行制御装置を用いた２足歩行システム１０００の一例を示す概念図である。
【図２】図１に示した２足歩行制御装置として機能する胴部１００の内部構成をブロック図形式で示す図である。
【図３】本発明の２足歩行制御方法の大きな流れを説明するためのフローチャートである。
【図４】２足歩行システム１０００を簡素化したモデルを示す図である。
【図５】データ表を作成する手続きを示す概念図である。
【図６】シミュレートされた軌道のデータ群を表す第１の図である。
【図７】シミュレートされた軌道のデータ群を表す第２の図である。
【図８】シミュレートされた軌道のデータ群を表す第３の図である。
【図９】関節の制御目標値を生成する手続きを示す概念図である。
【図１０】本発明の制御の様子を説明するための概念図である。
【図１１】制御される脚部の運動を模式的に示す図である。
【図１２】制御系の動作を説明するためのフローチャートである。
【符号の説明】
【０１３４】
１０  上腿部、１２  下腿部、２０  センサ、１００  胴部、１０２  演算処理部、１０４  記憶装置、１０６  通信インタフェース、１０８  駆動部、１０００  ２足歩行移動システム。
【図１】
2005088113.tif 000003
【図２】
2005088113.tif 000004
【図３】
2005088113.tif 000005
【図４】
2005088113.tif 000006
【図５】
2005088113.tif 000007
【図６】
2005088113.tif 000008
【図７】
2005088113.tif 000009
【図８】
2005088113.tif 000010
【図９】
2005088113.tif 000011
【図１０】
2005088113.tif 000012
【図１１】
2005088113.tif 000013
【図１２】
2005088113.tif 000014