(57)【特許請求の範囲】
【請求項１】
遺伝的アルゴリズムに基づいて、単一或いは複数の脚部により歩行する歩行型ロボットが満たすべき複数の評価条件を下位から上位に向かって段階的に分割し、各段の評価条件に適合した最適解の候補を進化個体群としてそれぞれ演算する手段と、
下位側の進化個体群と上位側の進化個体群との間で個体の評価値に応じて個体交換を行う手段と、
最上位の進化個体群に基づいて最適化演算の収束判定を行う手段と、
最適化演算が収束した最上位の進化個体群に基づいて、上記歩行型ロボットの制御パラメータを更新する手段とを備え、
上記上位側の評価条件には、上記下位側の評価条件を含むことを特徴とするロボット装置。
【請求項２】
上記進化個体群の演算を、複数の演算器で分散して実行することを特徴とする請求項１記載のロボット装置。
【請求項３】
上記評価値を、上記歩行型ロボットの動きをモデル化したシミュレータからのデータに基づいて算出することを特徴とする請求項１又は２記載のロボット装置。
【請求項４】
上記評価値を、上記歩行型ロボットからの実機データに基づいて算出することを特徴とする請求項１，２，３の何れか一に記載のロボット装置。
【発明の詳細な説明】
【０００１】
【発明の属する技術分野】
本発明は、遺伝的アルゴリズムを用いて歩容を生成し、脚によって歩行するロボット装置に関する。
【０００２】
【従来の技術】
従来、脚を持ったロボットの歩容を生成する場合には、多くのパラメータを決定する必要があり、シミュレーション及び実験等に多くの工数を要していた。
【０００３】
このため、例えば、特開２００１−１９１２８４号公報には、歩行型ロボットの歩行を制御するためのパラメータを、歩行の評価値が向上するよう、遺伝的アルゴリズムを用いて更新することで、歩行パターンの生成作業を容易化する技術が開示されている。
【０００４】
【発明が解決しようとする課題】
しかしながら、歩行型ロボットの歩容生成は煩雑であるため、ロボットの歩行において満たすべき評価条件が多く、且つ、それぞれの条件が相互に影響しあっていたり、トレードオフの関係になることがある。
【０００５】
このため、先行術のように、遺伝的アルゴリズムを用いた進化的学習法を適用しても、進化計算の収束が遅く、結果的に局所解にトラップされて進化が停滞してしまう現象が発生する場合がある。
【０００６】
本発明は上記事情に鑑みてなされたもので、遺伝的アルゴリズムを用いた歩容生成における最適解の収束性を高めて進化の停滞を防止し、高速且つ信頼性の高い歩容パターンを得ることのできるロボット装置を提供することを目的としている。
【０００７】
【課題を解決するための手段】
上記目的を達成するため、請求項１記載の発明は、遺伝的アルゴリズムに基づいて、単一或いは複数の脚部により歩行する歩行型ロボットが満たすべき複数の評価条件を下位から上位に向かって段階的に分割し、各段の評価条件に適合した最適解の候補を進化個体群としてそれぞれ演算する手段と、下位側の進化個体群と上位側の進化個体群との間で個体の評価値に応じて個体交換を行う手段と、最上位の進化個体群に基づいて最適化演算の収束判定を行う手段と、最適化演算が収束した最上位の進化個体群に基づいて、上記歩行型ロボットの制御パラメータを更新する手段とを備え、上記上位側の評価条件には、上記下位側の評価条件を含むことを特徴とする。
【０００８】
請求項２記載の発明は、請求項１記載の発明において、上記進化個体群の演算を、複数の演算器で分散して実行することを特徴とする。
【０００９】
請求項３記載の発明は、請求項１又は２記載の発明において、上記評価値を、上記歩行型ロボットの動きをモデル化したシミュレータからのデータに基づいて算出することを特徴とする。
【００１０】
請求項４記載の発明は、請求項１，２，３の何れか一に記載の発明において、上記評価値を、上記歩行型ロボットからの実機データに基づいて算出することを特徴とする。
【００１１】
すなわち、請求項１記載の発明は、歩行型ロボットが満たすべき複数の評価条件を下位から上位に向かって段階的に分割して上位側の評価条件に下位側の評価条件を含め、下位側の進化個体群と上位側の進化個体群との間で個体の評価値に応じて個体交換を行いながら、各段の評価条件に適合した最適解の候補をそれぞれ演算する。そして、最上位の進化個体群の最適化演算が収束判定されたとき、この最上位の進化個体群に基づいて歩行型ロボットの制御パラメータを更新することで、最適解の収束性を高めて進化の停滞を防止する。
【００１２】
その際、進化個体群の演算は、請求項２記載の発明のように、複数の演算器で分散して実行することが望ましく、解探索をより高速化することができる。また、個体の評価値は、請求項３記載の発明のように、歩行型ロボットの動きをモデル化したシミュレータからのデータ、或いは、請求項４記載の発明のように、歩行型ロボットからの実機データに基づいて算出することができる。
【００１３】
【発明の実施の形態】
以下、図面を参照して本発明の実施の形態を説明する。図１〜図８は本発明の実施の一形態に係わり、図１はロボット装置の全体構成図、図２は段階的進化法を用いた最適化装置のブロック図、図３は複数の演算装置を用いた最適化装置のブロック図、図４はＧＡエンジン間での移民処理のフローチャート、図５は４脚歩行型ロボットに上下方向の動きを与える関節角の説明図、図６は４脚歩行型ロボットに前後・左右方向の動きを与える関節角の説明図、図７は１脚分の歩容パターンを生成するニューラルネットワークの説明図、図８はシミュレータの処理を示すフローチャートである。
【００１４】
図１に示すロボット装置は、単一或いは複数の脚部を有し、この脚部の駆動によって歩行する歩行型ロボット１と、この歩行型ロボット１の歩行制御パラメータを生成・更新するパラメータ発生器１０と、歩行型ロボット１をモデル化したシミュレータ２０と、複数の評価条件に応じて段階的進化を実現するため、下位から上位へ逐次的に評価条件が追加されていくＮ個の評価部３１を伴い、同時並行的に演算を実行するＮ個の遺伝的アルゴリズム計算部（ＧＡエンジン）３２を有するＧＡエンジン群３０とを備えて構成される。
【００１５】
ＧＡエンジン群３０は、進化の初期段階から歩行型ロボット１に与えるタスクを徐々に複雑化することにより進化の停滞を防ぐ、いわゆる段階的進化法を用いた最適化装置として構成される。詳細には、図２に示すように、ＧＡエンジン群３０は、Ｎ個の評価部３１及び対応するＮ個のＧＡエンジン３２に対し、（Ｎ−１）個の個体移民制御部３３と、収束判定部３４とを備えて構成される。
【００１６】
ＧＡエンジン３２は、下位から上位に亘って複数段設けられ、後述するように、個々のＧＡエンジン３２に対して評価部３１で設定される評価条件が下位から上位へ段階的に追加される。尚、各段の評価部３１及びＧＡエンジン３２は、最下位を１段目、上位に向かって順次２段目，３段目，…、そして最上位をＮ段目と定義する。
【００１７】
個体移民制御部３３は、互いに隣接したＧＡエンジン３２の間に設けられており、最適化対象となる進化個体群ＰＧｎ（ｎ＝１〜Ｎ）中の一部個体群を、互いに隣接した直近段の間で移動させる。本明細書では、上下の進化個体群ＰＧｎ間で移動される個体を「移民」と呼ぶ。
【００１８】
収束判定部３４は、最上位のＧＡエンジン３２のみに付随しており、最上位のＧＡエンジン３２で出力される進化個体群ＰＧＮに基づいて、最適化の収束判定を行う。ここで、「最上位」とは、最終的な目的となる最適解を含み得る目的段、換言すれば、最終的に与えるべき全条件が設定されている段をいう。従って、最終的に求める最適解、すなわち考慮すべき全条件に適合する解は、最上位のＧＡエンジン３２において算出される。
【００１９】
各段の評価部３１でＧＡエンジン３２に対して設定される評価条件は、下位から上位に向かって階段的に追加された形態となっている。すなわち、１段目の評価条件（１段目のＧＡエンジン３２に設定される評価条件）が単一の「条件１」のみであるのに対して、２段目の評価条件は１段目の「条件１」に新たな「条件２」を追加した「条件１＋２」（”＋”は「且つ（ａｎｄ）」の意味）となっている。また、３段目の評価条件は、直下位の評価条件である「条件１＋２」に新たな「条件３」を追加した「条件１＋２＋３」になっている。すなわち、複数の条件が組み合わさった「評価条件１＋２＋・・・＋Ｎ」（最終的な評価条件）を段階的に分割し、下位から上位に亘って条件が段階的に追加されるように各段の評価条件を個別に設定する。
【００２０】
尚、各段に追加する条件は単一である必要は必ずしもなく、複数の条件を同時に追加してもよい。例えば、１段目の評価条件を「条件１」とし、２段目の評価条件を「条件１＋２＋３」とするといった如くである。
【００２１】
それぞれのＧＡエンジン３２に段階的に追加される条件は、拘束力の強いものほど下位に配置し、拘束力の弱いものほど上位に配置する。換言すれば、下位側には必要条件的な条件を配置し、上位側には十分条件的な条件を配置する。具体的には、歩行型ロボット１に関する歩行の最適化で考慮すべき条件として、以下に説明するように、「脚で立つ」、「転倒しない」、「なるべく足音を立てずに歩行する」等があり、歩行の大前提である「脚で立つ」という拘束力の強い条件が最下位の「条件１」に相当し、「転倒しない」という条件がそれに統く「条件２」に相当し、高度な条件である「なるべく足音を立てずに歩行する」という条件が最上位の「条件Ｎ」（拘束力が最も弱い）に相当する。
【００２２】
詳細には、単一又は複数の脚部を持つロボットの歩行に要求される条件として、例えば、以下の（１）〜（９）に示す条件等があり、概ね（１）→（９）の順序で拘束力が強い。
（１）脚で立つ（体を地面につけない）。
（２）転倒しない（体の角度を限度内に保つ）。
（３）移動する（足踏みだけではない）。
（４）行きたい方向へ進む。
（５）より速く歩行する。
（６）より安定した歩行をする（外乱に耐える）。
（７）使用するエネルギーが少ない。
（８）なるべく姿勢を崩さずに歩行する。
（９）なるべく足音を立てずに歩行する。
【００２３】
これらの条件のうち、最も拘束力の強い条件、すなわち（１）の「脚で立つ」条件を１段目の評価部３１にて判定し、最も拘束力の強い条件と、２番目に拘束力の強い条件、この場合は（２）の「転倒しない」条件とを同時に、２段目の評価部３１で判定する。このように、拘束力が強い条件から順次、評価部３１に付け加えるように、Ｎ個の条件に対してＮ個の独立したＧＡエンジン３２を用意することで、Ｎ段目のＧＡエンジン３２では、要求される全ての条件に対して評価が行われることとなる。
【００２４】
このＧＡエンジン群３０をスタンドアロンのシングルプロセッサ型のコンピュータ等の単一の演算装置で実現する場合、単一のコンピュータがＮ個の評価部３１及びＧＡエンジン３２、（Ｎ−１）個の個体移民制御部３３、収束判定部３４の全機能を担うが、処理速度の高速化を図るために、マルチプロセッサ型のコンピュータ或いはＬＡＮ等によってネットワーク接続された複数のシングルプロセッサ型のコンピュータ等、複数の演算装置でＧＡエンジン群３０を実現することも可能である。
【００２５】
この場合、図３に示すように、Ｎ個のコンピュータ（プロセッサ）３０−１，３０−２，…，３０−Ｎのそれぞれが、１個の評価部３１及びＧＡエンジン３２、それに対応した個体移民制御部３３の機能を実現し、並列処理を行うコンピュータ（プロセッサ）間の情報伝達（個体交換）は、ネットワーク、バス、マルチポートメモリ、その他のインターフェースを介して行われる。そして、最上位のＧＡエンジン３２に相当するコンピュータ（プロセッサ）に収束判定部３４の機能を担わせる。
【００２６】
それぞれのＧＡエンジン３２は、互いに独立してＧＡ演算を行うため簡単に並列化でき、最適化に要する処理時間は、使用するコンピュータ（プロセッサ）の数の増加に伴い短縮化される。互いに隣接したＧＡエンジン３２間の個体交換に要するデータ量は比較的少なく、その発生頻度も高くない。そのため、個体交換用のインターフェースとして高速な専用線を用いる必要は必ずしもない。尚、単一のＧＡエンジン３２に通常の分散ＧＡを用いて更に細分化・並列化すれば、処理速度の一層の高速化を図ることができる。
【００２７】
以上の構成によるロボット装置では、パラメータ発生器１０で生成した歩容パラメータでシミュレータ２０又は歩行型ロボット１によって動作状況をシミュレートし、その結果をＧＡエンジン群３０の評価部３１で評価する。すなわち、ＧＡ演算は繰り返し学習を行う手法であるため、計算時間の制約から評価は実機（歩行型ロボット１）でなくシミュレータを用いて進化を進め、最も上位の評価条件を持つものの最良個体の結果を実機に適用しても良いが、制御の確実性と制御結果を得るまでの時間との兼ね合いを考慮し、評価の一部又は全部を実機に対して適用することも可能である。
【００２８】
そして、ＧＡエンジン群３０では、各評価部３１からの評価値に基づいて各ＧＡエンジン３２における最良個体の評価値が向上するように演算を行い、新たなパラメータをパラメータ発生器１０に渡し、パラメータ発生器１０から歩行型ロボット１に出力する歩容パラメータ（制御パラメータ）を更新する。そして、再度、シミュレータ２０又は歩行型ロボット１による動作状況の評価を繰り返すことにより、徐々に評価値の高い歩容パラメータに進化させていく。
【００２９】
このＧＡエンジン群３０における最適化演算は、最下位のＧＡエンジン３２で最も単純な評価条件１、例えば「脚で立つ」条件のみに基づいて解探索を行い、進化個体群ＰＧ１を出力する。また、これよりも１つ上位のＧＡエンジン３２は、評価条件１に、新たな評価条件２、例えば「転倒しない」条件を加え、両者の評価条件（１＋２）下で解探索を行い、進化個体群ＰＧ２を出力する。
【００３０】
同様に、ＧＡエンジン３２が上位になるにつれて評価条件が段階的に追加され、より複雑な評価条件下での最適化が試みられる。各段のＧＡエンジン３２は、個別に設定された評価条件に適合した解の候補を進化個体群ＰＧｎとして出力する。進化個体群ＰＧｎを構成する個々の個体は、最適化に応じて適宜設定されたルールに従いコーディングされている。尚、各段の進化個体群ＰＧｎの初期設定は、個体の多様性を確保するために、ＧＡエンジン３２毎にランダムに作り出すことが好ましい。また、各段のＧＡエンジン３２に設定する進化個体群ＰＧｎの個体数は同一であっても良いが、異なる個体数に設定しても良い。
【００３１】
一方、進化個体群の中で評価値の悪い個体は、下位の評価条件の少ない群に移民し、評価値の良い個体は、上位の評価条件の多い群に移民する。すなわち、個体移民制御部３３は、定められたタイミングで進化個体群ＰＧｎから定められた数の個体（移民）を、相対的な評価値の良い順番に、上位の進化個体群ＰＧｎ+1に移動させる（ステップアップ）。移民を受け入れた上位側のＧＡエンジン３２は、下位の評価条件についてはそこそこの評価を得ている個体から進化操作を行う。従って、評価条件の段階的な追加とともに最適解が存在するであろう空間を限定していくことができるため、最適解発見の可能性を高めることができる。
【００３２】
また、個体移民制御部３３は、定められたタイミングで、進化個体群ＰＧｎから定められた数の移民を、相対的な評価値の悪い順番に、下位の進化個体群ＰＧｎ-1に移動させる（ステップダウン）。移民を受け入れた下位側のＧＡエンジン３２は、従前よりも単純な評価条件下で解探索をリトライする。これは、複合条件での解探索が難しかった場合に、条件を簡略化して個体近傍の新たな局所解を素早く見つけ、再度上位に個体移動させるためである。
【００３３】
このように、より単純な評価条件を満たした個体は、１つ上位の進化個体群にステップアップし、より複雑な評価条件下での最適化が行われる。一方、複雑な評価条件を満たせなかった個体は、１つ下位の進化個体群にステップダウンし、単純な評価条件下での最適化を再トライする。
【００３４】
すなわち、段階的に条件が追加された評価環境の下で、最適化演算を段階的に実行し、上下間で進化個体群ＰＧｎの一部を相互に交換を行うことで、個体の最適化度合いに応じた進化計算を自動的・自律的に行うことが可能となる。それとともに、上位側における進化個体群ＰＧｎの解探索も効率的に行われ、個体遺伝子の偏りも避けられる（多様性の維持）。従って、局所解に陥ったとしても、局所解脱出の可能性が飛躍的に高まるとともに、進化の進行度合いはより連続的になるため、複雑な評価条件下においても良質な解を高速に算出することが可能となる。
【００３５】
ここで、上位に位置する複合度の増した解空間において局所解（最適解）へは近いがアプローチが難しい場合（解にたどり着くまでに１山あるようなケース）を考える。本実施形態では、個体移民制御部３３による制御でステップアップしたものの進化に行き詰まった場合、その個体をステップダウンし、下位側で若干の修正を加えた後に再度ステップアップするというリトライループが結果として構成される。
【００３６】
このリトライループによって、下位にステップダウンした個体に若干の変更を加えて再びステップアップすれば、アプローチの角度が変わり、結果的に山を迂回し解にたどり着く可能性を高めることができる。すなわち、多数の条件が組み合わさった複雑な評価条件が与えられるほど解空間が飛躍的に広がるため、従来の単純ＧＡでは局所解に陥り易いが、本実施形態に係る最適化手法では、進化の進み具合は連続的となり、局所解に陥ることなく良好な最適解が得られることになる。
【００３７】
また、本実施形態によれば、集団の多様性が維持できるという効果もある。ＧＡにおいて多様性の維持こそが広い解探索を保証する唯一の拠り所であり、下位側において生成・変更された個体を移民することは、上位側における集団の多様性維持に大きく貢献している。また、下位側には上位側よりも拘束力が強い条件を設けることで、最終的な最適解の探索を効率的に行うことが可能となる。一般に、ある条件に合致する解が存在する空間は、与えられた条件の拘束力が大きいほど大きくなる傾向がある。従って、下位側になるほど拘束力の強い条件を段階的に追加し、下位側において求められた大域的な解を考慮した上で、上位側での解探索を実行すれば、上位側での解探索を効率的に行うことが期待できる。
【００３８】
ＧＡエンジン間での移民処理は、図４に示す手順に従って実行される。この処理は、それぞれの個体移民制御部３３において独立して実行されるものであるが、以下、中間段であるｎ段目のＧＡエンジン３２に関する処理を例示しながら説明する。
【００３９】
先ず、ステップＳ１において、上位移民タイミング、すなわち、進化個体群ＰＧｎの一部を直上位にステップアップさせるタイミングであるか否かが判断される。このタイミングは、例えば２０世代毎のような固定タイミングでも良く、或いは一定確率による抽選で決定しても良い。
【００４０】
ステップＳ１で肯定判定された場合には、ステップＳ２に進む。これに対して、このステップＳ１で否定判定された場合には、上位移民処理（ステップＳ２〜Ｓ５）をスキップしてステップＳ６に進む。尚、最上位のＧＡエンジン３２に関しては、上位側にＧＡエンジン３２が存在しないため、上位移民処理（すなわち、移民のステップアップ処理および上位側からの交換移民の受取り処理）は行われない。
【００４１】
ステップＳ２において、ｎ段目の進化個体群ＰＧｎの中で上位側にステップアップさせる一部個体群、すなわち上位側への移民個体が決定される。具体的には、所定の個体選択法に基づいて進化個体群を構成する個々の個体を評価し、基本的には、この進化個体群の中で相対的な評価が良い個体をステップアップする移民として選択する。選択される移民数は一定であり、進化個体群ＰＧｎの全体個体数が進化計算中に変化することはない。また、移民数は、最初に全個体数からの割合で決めるのが妥当である。
【００４２】
ＧＡには評価値の良い個体を選択する手法として一般的な手法がいくつかあり、適宜の手法に基づいて上位側への移民が決定される。これらの手法は、単純に評価値が良いものだけを順位から一意に決定するという方法ではなく、集団の遺伝子の多様性を維持するという意味合いから確率的選択で行う。代表的なものとしては、ルーレット式選択、ランク方式選択、トーナメント式選択等が挙げられる。標準的なＧＡにおいて、これらの手法は、次世代の個体を作り出す際の親個体の選択に用いられるが、本実施形態ではそれと同等な選択方式を採用している。
【００４３】
ステップＳ３において、上位側の進化個体群ＰＧｎ+1への移民に関する個体データが上位側である（ｎ＋１）段目に送信される。すなわち、ｎ段目で決定された移民は、（ｎ＋１）段目に対して送信され、ｎ段目は、交換個体データの受信待ち状態となる（ステップＳ４）。そして、（ｎ＋１）段目からの交換個体データをｎ段目が受信すると、受信した受領個体データがｎ段目の進化個体群ＰＧｎにセットされる（ステップＳ５）。
【００４４】
ステップＳ５に続くステップＳ６において、ｎ段目が下位側である（ｎ−１）段目からの移民個体データを受信しているか否かが判断される。移民個体データを受信している場合、ステップＳ７に進み、下位移民処理（ステップＳ７〜Ｓ９）が行われる。最下位のＧＡエンジン３２に関しては、下位側にＧＡエンジン３２が存在しないため、下位移民処理（すなわち、移民のステップダウン処理および下位側からの交換移民の受取り処理）は行われない。
【００４５】
この下位移民処理では、例えば、「脚で立つ」と「転倒しない」という２つの評価条件を満たした個体を考えると、この個体が一つ上位の条件である「移動する」という条件を加えた上位側のＧＡエンジン３２で評価されるべく移民したにも拘らず、その個体群の中で評価値が悪い状態にいる場合、この個体は淘汰されてしまうのではなく、もう一度もとの２つの評価条件の下位側に移民されて近くの解が探索される。そこで、２つの評価条件において、評価値の良い個体となることで、再度、上位の評価条件を加えたＧＡエンジン３２での最適化の挑戦が可能となる。
【００４６】
具体的は、ステップＳ７において、進化個体群ＰＧｎの中で下位側に移動させる個体、すなわち下位側への移民個体が決定される。この下位側への移民は、所定の個体選択法に基づいて進化個体群を構成する個々の個体を評価し、基本的には、この進化個体群の中で相対的な評価が悪い個体をステップダウンさせる移民として選択する。下位側への移民数は一定であり、進化個体群ＰＧｎの全体個体数が進化計算中に変化することはない。また、移民数は、最初に全個体数からの割合で決めるのが妥当である。下位側への移民を決定する手法としては、逆ルーレット式選択、逆ランク方式選択、逆トーナメント式選択といった周知の手法を用いることができ、選択率を評価値に関して逆転させて（評価値の悪い方が選択率が高まるように）使用する。
【００４７】
ステップＳ８において、ｎ段目は、下位側の進化個体群ＰＧｎ-1への移民に関する個体データを下位側である（ｎ−１）段目に送信する。そして、ステップＳ９において、ｎ段目の進化個体群ＰＧｎには、一部個体を移民として削除したことに代えて、下位側からの受領個体データがセットされ、次の世代の進化計算へ進む。
【００４８】
尚、上述の移民処理は、互いに隣接した直近の進化個体群ＰＧｎ，ＰＧｎ+i（またはＰＧｎ，ＰＧｎ-1）の間で個体移動を行う例について説明したが、例えば２つ跳ばしといった飛び級的な個体移動に対して適用することも可能である。更に、上述したリトライループによる最適解の精度向上よりも処理速度の方を優先する場合には、ステップダウンを行うことなく、ステップアップのみを単独で行っても良い。その場合、ステップダウンについては単独で行っても意味はなく、ステップアップと併せて行う必要がある。
【００４９】
以上の世代進化計算に対し、最上位に位置する収束判定部３４は、最上位のＧＡエンジン３２により算出された進化個体群ＰＧＮを常時観測し、最終的な評価条件である「条件１＋２＋・・・＋Ｎ」を満足する最適化が行われたか否かを判断する。具体的は、この「評価条件１＋２＋・・・＋Ｎ」に適合する個体ほど高い適合度が得られるように適切に設定された評価関数に基づいて、最上位の進化個体群ＰＧＮを構成する個体を個別に評価する。
【００５０】
そして、ある世代Ｋにおいて、満足な最適化が完了しない場合には、個体移民を伴う世代進化計算を続行し、最適化が満足されたならば、最上位の演算結果をパラメータ発生器１０に出力するとともに、各ＧＡエンジン３２に対してＧＡ演算の終了を指示する。これにより、ＧＡエンジン群３０で全体の最適化演算が終了する。
【００５１】
尚、最適化の結果を見て新たな評価条件を逐次的に追加（挿入）したい場合には、その評価条件を加えた新たなＧＡエンジン３２を一つ追加すれば良い。ＧＡエンジン３２の追加（挿入）位置は、新たに追加（挿入）する評価条件に関する拘束力の強さに基づいて決定する。つまり、追加する条件の拘束力が強いならば、下位側にＧＡエンジン３２を追加することが好ましく、追加する条件の拘束力が弱いならば、上位側にＧＡエンジン３２を追加することが好ましい。これにより、実際の解探索アプローチにマッチした優れた利便性を有するシステムを実現することができる。
【００５２】
ＧＡエンジン群３０での最適化演算が終了すると、パラメータ発生器１０において、ＧＡエンジン群３０で進化させた個体からシミュレータ２０又は歩行型ロボット１に出力する制御パラメータが生成・更新される。
【００５３】
本実施形態においては、歩行型ロボット１を四脚歩行型ロボットとして、その歩容パターンを生成するケースについて説明する。歩行型ロボット１は、図５，図６に示すように、胴体部２から延出される４つの脚部３ａ，３ｂ，３ｃ，３ｄを備え、各脚部を駆動するサーボ機構や姿勢を検出する検出部を備えている。そして、上下方向の動きを与える各脚部の関節角θ２，θ３及び前後・左右方向の動きを与える関節角θ１に対する指示値を入力することにより、サーボ機構によって各脚部の関節の駆動し、歩行を行う。
【００５４】
パラメータ発生器１０は、３層のフィードフォワード型ニューラルネットワークから構成され、各個体の遺伝子をニューロン間の結合係数として、シグモイド関数を用いる。このニューラルネットワークの結合係数が段階的進化法で調整され、最適な歩容パターンが生成される。歩行は周期運動であることから、図７に示す１脚分のニューラルネットワークには、経過時間ｔと歩行周期ｗとを引数とするｓｉｎ関数とｃｏｓ関数とを入力し、歩行型ロボット１の各関節角度指示値θ１，θ２，θ３を出力する。
【００５５】
パラメータ発生器１０からの関節角度指示値が歩行型ロボット１に出力されると、歩行型ロボット１ではサーボ機構により各関節指示値に基づいて各脚部を適当な位相差で駆動して歩行を行い、実際の各関節角度θ１，θ２，θ３や姿勢データ等をＧＡエンジン群３０の評価部３１に対して出力する。
【００５６】
一方、シミュレータ２０は、実機の歩行型ロボット１を模擬したモデルであり、パラメータ発生器１０からの関節角度指示値が入力されると、ロボットの姿勢、歩行距離、転倒判定等の演算を行い、結果をＧＡエンジン群３０の評価部３１に対して出力する。
【００５７】
図８は、シミュレータ２０における処理手順を示し、この処理では、先ず、ステップＳ１１において、パラメータ発生器１０から関節指示値を受け取る。次にステップＳ１２へ進み、ロボットモデルから関節指示値に基づいて各脚部の位置を計算し、ステップＳ１３で各脚部の位置から全体の姿勢を計算する。
【００５８】
続くステップＳ１４においては、先に計算したロボットの脚部の位置や姿勢から体の角度が設定限度を越え、転倒したか否かが判断される。そして、転倒したと判断される場合には、ステップＳ１７へジャンプし、転倒していないと判断される場合、ステップＳ１５で各脚部の位置及び姿勢から安定性を計算し、ステップＳ１６で歩容パターンの１周期が終了したか否かを判断する。そして、１周期分のシミュレーションが終了していない場合には、ステップＳ１１へ戻って同様の処理を続行する。
【００５９】
一方、ステップＳ１４における転倒判断、或いはステップＳ１６における１周期分のシミュレーション終了判断がなされると、ステップＳ１７において、ロボットの総移動距離、使用エネルギーが計算される。そして、ステップＳ１８で評価部３１にデータが渡され、１周期分の処理が終了する。
【００６０】
評価部３１において歩容パターンを評価する評価条件としては、「脚で立つ（体を地面につけない）」，「転倒しない」といった拘束の強い条件をはじめとして、比較的拘束の弱い「使用するエネルギーが少ない」，「なるべく姿勢を崩さずに歩行する」，「なるべく足音を立てずに歩行する」といった様々な条件が考えられる。このうち拘束力が強い条件が下位になるように、図２に示した各ＧＡエンジン３２に評価条件を個別に割り当てていく。
【００６１】
例えば、「脚で立つ」という評価条件を最下位に割り当てた場合における下位空間（調整パラメータがなす空間）では、「脚で立つ」いくつかの局所解がＧＡによる進化で算出される。この局所解は、下位空間上に多数存在し、互いに無関係の位置にあるかも知れないものの、この局所解近傍にある個体を確率的に選択することで、「脚で立つ＋転倒しない」を評価条件とする上位側に移民する。上位側では、「脚で立つ」という条件については、そこそこの評価を得ている個体から進化操作が行えるので、最適解発見の可能性が高まる。
【００６２】
また、上位側からは評価が低い個体を移民として受け入れ、「脚で立つ」という単純な条件のみで解探索をやり直す。その理由は、上述したように、複合条件での解探索が難しかった場合、条件を単一化・簡略化することにより、その個体近傍に存在する新たな局所解を素早く見つけ、再度上位に個体移動させるためである。
【００６３】
このように、歩行型ロボットとして満たすべき評価条件が多数で、且つ相互に複雑な関連をもつ場合においても、ＧＡによる最適化演算を段階的に接続し、相互に進化個体交換を行うことで、個体の最適化度合いに応じた進化計算を自動的・自立的に行うことができ、最適な歩容を生成することができる。
【００６４】
また、より望ましい歩行を実現する歩容の解探索も効率的に行うことができ、個体遺伝子の偏りも避けられる。一部の評価条件によって歩容が局所解にトラップされる可能性が低くなり、進化の度合いがより継続的になる。
【００６５】
【発明の効果】
以上説明したように本発明によれば、歩行型ロボットが満たすべき複数の評価条件を下位から上位に向かって段階的に分割して上位側の評価条件に下位側の評価条件を含め、下位側の進化個体群と上位側の進化個体群との間で個体の評価値に応じて個体交換を行いながら、各段の評価条件に適合した最適解の候補をそれぞれ演算し、最上位の進化個体群の最適化演算が収束判定されたとき、この最上位の進化個体群に基づいて歩行型ロボットの制御パラメータを更新するので、歩容生成における最適解の収束性を高めて進化の停滞を防止し、高速且つ信頼性の高い歩容パターンを得ることができる。
【図面の簡単な説明】
【図１】ロボット装置の全体構成図
【図２】段階的進化法を用いた最適化装置のブロック図
【図３】複数の演算装置を用いた最適化装置のブロック図
【図４】ＧＡエンジン間での移民処理のフローチャート
【図５】４脚歩行型ロボットに上下方向の動きを与える関節角の説明図
【図６】４脚歩行型ロボットに前後・左右方向の動きを与える関節角の説明図
【図７】１脚分の歩容パターンを生成するニューラルネットワークの説明図
【図８】シミュレータの処理を示すフローチャート
【符号の説明】
１  歩行型ロボット
３ａ，３ｂ，３ｃ，３ｄ  脚部
１０  パラメータ発生器
２０  シミュレータ
３０  ＧＡエンジン群
３１  評価部
３２  ＧＡエンジン
３３  個体移民制御部
３４  収束判定部
ＰＧｎ  進化個体群
【図１】
0003905413.tif 000002
【図２】
0003905413.tif 000003
【図３】
0003905413.tif 000004
【図４】
0003905413.tif 000005
【図５】
0003905413.tif 000006
【図６】
0003905413.tif 000007
【図７】
0003905413.tif 000008
【図８】
0003905413.tif 000009