説明

マルチエージェント型制御装置およびマルチエージェント型制御プログラム

【課題】 ネットワークを通して相互作用する複数のコンピュータからなるシステムにおいて、個々のコンピュータの学習により、システム全体のパフォーマンスを向上させるネットワークパラメータ学習装置を提供する。
【解決手段】 移動ロボット1000では、制御処理学習部110は、カメラ10により撮影された目標対象物2の位置に基づいて駆動モータ202および204に対する制御信号を各々算出するための、複数のコロニーに離隔された複数のエージェントの学習処理を行なう。制御処理学習部110は、コロニー内のエージェントの分裂・消滅およびコロニーによる動的離隔を行なう動的離隔型遺伝的アルゴリズムの処理を行なう。

【発明の詳細な説明】
【技術分野】
【0001】
本発明は、遺伝的アルゴリズムによるマルチエージェントを用いた学習により制御則を最適化することが可能なマルチエージェント型制御装置およびマルチエージェント型制御プログラムに関する。
【背景技術】
【0002】
従来、マルチエージェントにより視覚と行動を統合して制御するための制御エージェントを実現する試みについての報告がある(たとえば、非特許文献1、非特許文献2を参照)。
【0003】
この非特許文献2においては、視覚処理エージェント群の協調により特徴追跡を行い、ロボットが、任意形状ペグ挿入のタスクを行なう例が開示されている。ただし、エージェントを用いた制御についての開示はあるものの、その制御の最適化については開示がされていない。
【0004】
一方で、エージェントを用いる制御ではないものの、遺伝的アルゴリズム(GA:Genetic Algorithm)を用いて制御側を最適化する機構を利用して、非特許文献3では、並列二重倒立振り子の振り上げ安定制御を試みた例は報告されている(たとえば、非特許文献3を参照)。
【0005】
また、個々のエージェントが、システムの大域的目的やその達成度などの一部しか知覚できないため、エージェントが知覚できる範囲に基づく学習を、いかにシステム全体の大域的目的と整合させるかという問題に関しては、たとえば、エージェントが知覚できる範囲の情報である利得や報酬、評価などを個体最適性と定義し、システムの大域的目的として、すべてのエージュントがそれぞれの行動から得る利得の総和をシステム最適性とそれぞれ定義したときに、エージェント学習によるシステム最適性の向上をシミュレート可能な「動的離隔型遺伝的アルゴリズム(Dynamically Separating Genetic Algorithms、以下、DS−GAと記す)」の提案がなされている(たとえば、非特許文献4を参照)。
【0006】
このDS−GAは、個体数に応じて個体を「コロニー」と呼ぶグループに動的に離隔する遺伝的アルゴリズム(以下、GA)である。個体を離隔する遺伝的アルゴリズムとしては、他に島モデルGAなどがあるが、DS−GAは離隔状態が個体数に応じて動的に変化する点で異なる。ただし、非特許文献4に記載されるようなDS−GAについては、エージェントをコロニーに並列に離隔することを前提としており、このような遺伝的アルゴリズムをいかにして、制御系に対して適用するかについては開示がない。
【非特許文献1】納谷 太、森 啓、大里 延康 著:マルチエージェント制御ロボット実験系の構築、1996年電子情報通信学会総合大会、D−8,p.168
【非特許文献2】納谷 太、森 啓、平松 薫、大里 延康 著:多種視覚情報処理の協調に基づく能動的トラッキングとマニピュレータ行動との統合、情報処理学会第55回全国大会、Vol.2,pp.136−137,1997
【非特許文献3】井口 圭一、木村 元、小林 重信:GAによる並列二重倒立振り子の振り上げ安定制御、計測自動制御学会第13回自律分散シンポジウム、pp.277−283(2001)。
【非特許文献4】中山 功一、松井博和、野村由司彦著:動的離隔型GA(DS−GA)の提案、情報処理学会誌:数理モデル化と応用,Vol.43, No.SIG10(TOM7), pp.95-109, Nov.2002
【発明の開示】
【発明が解決しようとする課題】
【0007】
したがって、従来は、制御則の最適化を行なうにあたり、遺伝的アルゴリズムを用いたマルチエージェントの学習をいかに利用するかという点が必ずしも明らかでない、という問題があった。
【0008】
本発明は、上記のような問題を解決するためになされたものであって、その目的は、遺伝的アルゴリズムによるマルチエージェントを用いた学習により制御則を最適化することが可能なマルチエージェント型制御装置およびマルチエージェント型制御プログラムを提供することである。
【課題を解決するための手段】
【0009】
このような目的を達成するために、本発明のマルチエージェント型制御装置は、被制御対象に対する制御信号の生成を学習により行なうためのマルチエージェント型制御装置であって、制御対象量を観測して獲得するための観測手段と、観測された制御対象量に基づいて制御信号を各々算出するための、複数のコロニーに離隔された複数のエージェントの学習処理を行なうための制御処理学習手段と、制御対象量が目標値に接近するに従い増加するように更新される、各エージェントに対応する評価値を格納するための記憶手段とを備え、制御処理学習手段は、コロニーを順次選択しつつ、選択されたコロニー内において、複数のエージェントの各々に対して、それぞれ所定期間ずつ、対応する第1の関数形を使用して、制御信号を算出させ、算出された制御信号により被制御対象を駆動し、駆動後に観測された制御対象量に応じて選択されたエージェントの評価値の更新を行う相互作用処理手段と、更新された評価値に基づいて、エージェントの分裂および消滅処理を行なうための分裂消滅処理手段と、コロニー内のエージェントの個数が所定の値を超えることに応じて、コロニーを離隔する処理を行う離隔処理手段とを備える。
【0010】
好ましくは、エージェントは、制御エージェントと観測制御量算出エージェントとを含み、観測手段は、制御対象量を物理的に測定するための測定手段と、測定手段の測定結果を制御エージェントが制御信号を算出するために使用する観測制御量に変換する処理を、対応する第2の関数系を使用し、複数の観測制御量算出エージェントにそれぞれ実行させるための観測制御量算出手段とを含む。
【0011】
この発明の他の局面に従うと、被制御対象に対する制御信号の生成を学習により行なうためのマルチエージェント型制御プログラムであって、プログラムは、観測された制御対象量に基づいて制御信号を各々算出するための、複数のコロニーに離隔された複数のエージェントの学習処理を、制御対象量が目標値に接近するに従い増加するように各エージェントに対応する評価値を更新することにより行なうための制御処理学習ステップを備え、制御処理学習ステップは、コロニーを順次選択しつつ、選択されたコロニー内において、複数のエージェントの各々に対して、それぞれ所定期間ずつ、対応する第1の関数形を使用して、制御信号を算出させ、算出された制御信号により被制御対象を駆動し、駆動後に観測された制御対象量に応じて選択されたエージェントの評価値の更新を行う相互作用処理ステップと、更新された評価値に基づいて、エージェントの分裂および消滅処理を行なうための分裂消滅処理ステップと、コロニー内のエージェントの個数が所定の値を超えることに応じて、コロニーを離隔する処理を行う離隔処理ステップとを備える。
【0012】
好ましくは、エージェントは、制御エージェントと観測制御量算出エージェントとを含み、測定手段による制御対象量の測定結果を制御エージェントが制御信号を算出するために使用する観測制御量に変換する処理を、対応する第2の関数系を使用し、複数の観測制御量算出エージェントにそれぞれ実行させるための観測制御量算出ステップをさらに備える。
【発明を実施するための最良の形態】
【0013】
以下、図面を参照して本発明の実施の形態について説明する。
【0014】
(本発明の概要)
上述した従来のDS−GAでは、エージェントをコロニーに並列に離隔する必要があった。このため、相互作用する複数のコンピュータからなるシステムそのものが並列処理できない場合に適用できない。
【0015】
以下にも説明するとおり、本発明では、エージェントが並列に離隔できないシステムにおいて、時分割コロニーを用いて直列(逐次的)に離隔することで、DS−GAを並列処理できないシステムへ適用可能なマルチエージェント型制御装置およびマルチエージェント型制御プログラムを提供する。
【0016】
すなわち、本発明は、システムの適応的な最適化を実現する学習手法を具体化したものであり、システム制御を構成する要素(エージェント)間の相互作用を、一定時間(時分割コロニー)に制限する。各エージェントは区分された時間内において評価され、分裂と消滅により学習する。
【0017】
言い換えると、システム制御プログラムは多数のエージェントからなり、エージェントは、相互作用を一定時間内に制限される。このため、本発明は、システムに存在するエージェントの処理が並列に分割できない場合に有効である。
【0018】
以下では、本発明を2つのキャタピラで移動するロボットの制御に適用した場合について説明する。しかしながら、本発明は、このような構成に限定されることなく、たとえば、複数の制御パラメータの組合せにより制御則が表現されるような制御系、さらには、複数の関数の組合せにより制御則が表現されるような制御系についても、適用可能なものである。
【0019】
[発明の実施の形態]
(実施の形態1)
図1は、本発明のマルチエージェント型制御プログラムを用いた制御装置(マルチエージェント型制御装置)が適用される移動ロボット1000の一例を示す図である。
【0020】
図1を参照して、移動ロボット1000は、ロボット1000が追跡する目標対象物を映像として認識するための画像を撮影するカメラ10と、制御ボード(以下、「制御部」と呼ぶ)100と、制御部100からの制御信号によりそれぞれ駆動される駆動モータ202および204と、駆動モータ202および204によりそれぞれトルクを与えられて移動ロボット1000を移動させるためのキャタピラ212および214とを備える。
【0021】
図2は、図1に示した移動ロボット1000を上面から見た図である。
【0022】
左側キャタピラ212は駆動モータ202により、右側キャタピラ214は駆動モータ204により、それぞれ駆動される。
【0023】
図3は、図1および図2に示した移動ロボット1000の構成を示す機能ブロック図である。
【0024】
カメラ10は、目標対象物2を含む画像を撮像し、制御部100の撮像系インタフェース102に当該画像に対応するデジタル画像データを与える。
【0025】
制御部100では、撮像系インタフェース102を介して入力されたデジタル画像データは、一旦、画像データバッファ部104に格納され、CPU(Central Processing Unit)108が、画像データバッファ部104中のデジタル画像データを、たとえば、1フレームごとに、移動ロボット1000の移動動作を制御するための処理を実行する。
【0026】
すなわち、CPU108では、メモリ106に格納されているプログラムに基づいて、まず、画像認識処理部112が、上述した1フレームの画像データ中で、目標対象物2の位置を認識する処理を行なう。このような画像認識は、周知の画像認識処理により、たとえば、色情報や形状情報に基づいて行なわれる。さらに、CPU108の制御処理学習部110は、画像認識処理部により認識された目標対象物2の位置を特定するための情報に基づいて、駆動モータを制御するための制御信号、たとえば、駆動モータ202および204に与える駆動トルクに対応した制御信号を計算して、制御系インタフェース114に与える。
【0027】
なお、メモリ106は、たとえば、ROM(Read Only Memory) およびRAM (Random Access Memory)を含んでおり、ROMには上述した制御プログラムが記憶されており、RAMは、この制御プログラムの動作のための一時記憶メモリとして動作する。したがって、後に説明する各エージェントの属性や評価値は、このRAMに格納される。あるいは、ROMには、制御プログラムを走らせるためのOS(Operating System)が記憶されており、制御プログラムは、RAMに読み込まれて実行されることとしてもよい。この場合は、RAMに読み込む制御プログラムを格納するための記憶装置(たとえば、ハードディスクや外部記憶媒体など)が、このメモリ106と結合していてもよい。
【0028】
本発明のマルチエージェント型制御装置の主要部は、制御部100を構成するコンピュータハードウェアと、CPU108により実行されるソフトウェアとにより構成される。一般的にこうしたソフトウェアはメモリカード等の記憶媒体に格納されて流通させることも可能で、この場合は、ドライブ装置により記憶媒体から読取られてメモリ106に一旦格納される。図3に示すようなコンピュータのハードウェア自体およびその動作原理は一般的なものである。したがって、本発明の最も本質的な部分は、メモリ106に記憶されるソフトウェアである。
【0029】
以下では、上述したDS−GAを改良して、移動ロボット1000の動作の制御を行なえるようにしたアルゴリズムを、sDS−GA(Serial Dynamically Separating Genetic Algorithm)と呼ぶことにする。
【0030】
[sDS−GAのアルゴリズム]
まず、図4は、カメラ10により撮像された画像の1フレーム分の画像を示す概念図である。
【0031】
図4に示すとおり、画像認識処理部112により、目標対象物2は、画面中で中心線から距離d(d≧0:座標xの絶対値)だけ離れた位置にあると認識される。
【0032】
図5は、sDS−GAのアルゴリズムの流れを示す概念図である。
【0033】
sDS−GAでは、自律型の移動ロボット1000の機能に合わせて、それぞれをエージェントとし、全体をマルチエージェントシステムとして設計する。それぞれのエージェントの相互作用を時分割コロニーに制限し、エージェントレベルでの遺伝的アルゴリズムによるシステム最適化を行なう。
【0034】
例えば、制御エージェントであれば、ロボット制御の役割ごとにエージェントを設計する。このとき、同じ役割のエージェントでも、別々のパラメータ調整などが必要な場合は、それぞれ別のエージェントとして設計する方が好ましい。たとえば、図1〜図3で説明した移動ロボット1000では、左駆動モータ202と右駆動モータ204を制御する制御信号の生成はそれぞれ別の制御エージェントによるものとして設計される。
【0035】
自律移動ロボットを制御するこれらのエージェントは、制御の担当を時間的に交替し、自らが担当の時間帯に個々に制御の役割を果たす。
【0036】
すなわち、コロニーと呼ばれる集団にそれぞれ属するエージェントは、時間tcごとに各エージェントがロボットを制御し、この時間tcの間で制御された結果、制御量がどの程度目標値に近づいたかに応じて、各エージェントに報償を与える。この報償に基づいて、エージェントの分裂と消滅が行なわれる。
【0037】
各コロニーごとに上述したような分裂と消滅が行なわれた後に、コロニーが動的に離隔され、また、必要に応じてコロニーの消去が行なわれる。
【0038】
以上の処理を単位として、この単位の処理が順次繰り返されると、移動ロボットを制御するために最適なエージェントが選択的に生き残り、最終的には、いずれのコロニーに属するエージェントも、同様の制御則を実行するようになる。
【0039】
図6は、sDS−GAのアルゴリズムを説明するためのフローチャートである。
【0040】
以下、図6を参照して、sDS−GAのアルゴリズムについて、さらに詳しく説明する。
【0041】
まず、以下のような初期設定の処理が行われる(ステップ100)。
【0042】
(1)初期設定
すなわち、制御学習部110は、sDS−GAを適用するNa個(Na:2以上の自然数)の制御エージェントをランダムに生成する。たとえば、以下では、左駆動モータ202と右駆動モータ204を制御する制御信号の生成する制御エージェントは、それぞれ、以下の式に基づいて、駆動トルクTklを計算するものとする。
【0043】
kl=αkl×x …(1)
ここで、kは、左駆動モータ202と右駆動モータ204のいずれの制御信号を分担するかを識別するための添え字であり、lは、制御エージェントを区別するための添え字である。したがって、Na=k×lである。なお、エージェントの初期個数Naは、CPU108の処理能力を考慮して、その個数を予め設定するものとする。
【0044】
ここで、駆動トルクTklを計算するための係数である制御パラメータαklは、特に、限定されないが、予め定められた範囲内の数値からランダムに選ばれるものとする。このような制御パラメータαklのランダムな選択が、制御エージェントのランダムな生成に対応する。上述した式(1)の例では、制御パラメータαklが遺伝子として機能することになる。
【0045】
なお、駆動トルクTklの計算は、式(1)においては、認識された対象物2の中心線からのずれxに比例する関数により行なわれるとしたが、たとえば、複数の制御パラメータをそれぞれ多項式の係数とする位置xの関数としてもよい。この場合は、複数の制御パラメータの組が遺伝子として機能する。より一般的には、この位置xに基づいて駆動トルクTklを計算する関数形を複数個予め準備しておき、このような関数形からランダムに関数形を選択することで、ランダムに制御エージェントを発生させることとしてもよい。このような制御エージェントのランダムな生成を「エージェントの初期生成」と呼ぶことにする。
【0046】
さらに、各制御エージェントごとに、評価値E(k、l、t1)の値が初期値として、たとえば、0に設定される。ここで、t1は時間を表し、初期値は0である。
【0047】
再び、図6を参照して、続いて、コロニーの数Ncolの値がN0に設定されるとともに、各コロニーにN1個ごとに制御エージェントがランダムに割り当てられる(ステップS102)。i番目のコロニーに含まれる制御エージェントの組の個数をNagnt(i)と表す。ここで、「制御エージェントの組の個数」とは、各コロニーにおいて、左駆動モータ202と右駆動モータ204の制御信号の生成をそれぞれ分担するエージェントの組として排他的に選択しうる最大の組の数である。実施の形態1では、たとえば、コロニーに2n個のエージェントが含まれる場合は、「制御エージェントの組の個数」はn個である。また、Na=N0×N1の関係も成り立つ。
【0048】
さらに、初期設定として、変数i,jの値が、それぞれ1に設定され、t1の値は0とされる。
【0049】
(2)相互作用:
続いて、各エージェントは、以下に説明するような行動と相互作用を行なう。
【0050】
まず、処理時間パラメータtの値が0に設定される(ステップS104)。
【0051】
続いて、i番目のコロニーにおいて、j番目のエージェントの組がランダムに選択される。すなわち、左駆動モータ202と右駆動モータ204の制御信号をそれぞれ分担する制御エージェントの組がランダムに選択され、上記式(1)に基づいて制御信号が計算される(ステップS106)。
【0052】
続いて、計算された制御信号により、所定時間tcの間だけ、左駆動モータ202と右駆動モータ204が駆動される(ステップS108)。
【0053】
さらに、ステップS108の駆動の後に、目標対象物2の位置が再び画像認識処理部112において認識される。このとき、目標対象物2が画面の中心線から距離dの位置にあると認識されたとすると、以下の式に基づいて、選択されて制御を担当した制御エージェントの組の評価値が更新される(ステップS110)。
【0054】
E(k、l、t1+1)=E(k、l、t1)+(E0−d)…(2)
ここで、E0は所定の定数である。
【0055】
なお、評価値は、ステップS108の駆動の後に、測定された距離dのみに基づくのではなく、それまでに測定された距離dの積算値に基づいて計算されることとしてもよい。
【0056】
また、評価値の計算は、上記式(2)の方法に限定されることなく、より目標に近づくほど、順次、より評価値が増大するような関数であれば、他の計算式によってもよい。
【0057】
(3)エージェントの分裂と消滅:
エージェントは、エージェントの評価値が所定の値、たとえば、初期値の倍以上になると分裂を起こすものとする。このとき、各エージェントは、分裂前の評価値を半分ずつ持つ2個体に分裂し、それぞれ遺伝子を引き継ぐ。また、エージェントは、自身の評価値が0以下になると消滅するものとする(ステップS112)。
【0058】
なお、遺伝子が、所定の突然変異確率p1で変異するものとしてもよい。すなわち、i番目のコロニー内のエージェントについて、この突然変異確率p1で、再度、「エージェントの初期生成」処理により、遺伝子が変異することとしてもよい。
【0059】
また、所定の移動確率p2により、i番目のコロニー内のエージェントについて、移動が起こることとしてもよい。このような移動が行なわれる場合は、エージェントは、無作為に選ばれるコロニーに移動するものとする。
【0060】
次に、時間tが、t=t+tcと更新され(ステップS114)、続いて、時間tが、所定の処理時間T0よりも小さいかが判断される(ステップS116)。
【0061】
ここで、所定の処理時間T0は、1つのコロニー内の各エージェントが、少なくとも複数回は制御を担当する程度に十分な長さを有するものとする。
【0062】
時間tが、所定の処理時間T0よりも小さい場合、続いて、変数jが、i番目のコロニーのエージェントの組の数Nagnt(i)以上であるかが判断される(ステップS118)。
【0063】
変数jが、エージェント数Nagnt(i)よりも小さい場合、jの値が1だけインクリメントされ(ステップS120)、処理は、ステップS106に復帰して、次のエージェントの組が選択される。一方、ステップS118において、変数jが、i番目のコロニーのエージェントの組の数Nagnt(i)よりも小さいと判断された場合は、変数jが1に設定され、処理はステップS106に復帰する。
【0064】
(4)コロニーの動的離隔:
一方、ステップS116において、時間tが、所定の処理時間T0以上であると判断されると、CPU108は、コロニーの動的離隔処理を行なう(ステップS124)。動的離隔処理は、コロニー内のエージェント数が限界数Nlimを超えた場合に起きる。このとき、1つのコロニー内に存在するエージェントは、2つのコロニーに離隔される。ただし、2つのコロニーの個体数の差は1以下とする。
【0065】
(5)ランダム消去:
sDS−GAのアルゴリズムには、原理的には、存在できるエージェント数に制限はないが、CPU108の容量には制限がある。そこで、CPU108は、エージェント総数が初期エージェント数より増えた場合、学習処理を行なうコロニー数を限定する意味で、エージェント総数が初期エージェント数以下になるまで、コロニーを無作為に消去する(ステップS126)。コロニー数Ncolの値は、コロニーの消去後の値に更新される。
【0066】
また、コロニーの番号iと、i番目のコロニー内の制御エージェントの組の個数Nagnt(i)とについても、動的離隔と消去とに応じて、適宜、割り当てが更新されるものとする。
【0067】
次に、変数iの値が、コロニーの総数Ncolより小さいかが判定され(ステップS128)、変数iの値が、コロニーの総数Ncolより小さい場合、変数iの値は1だけインクリメントされ、jの値は1に設定されて(ステップS130)、処理はステップS104に復帰する。
【0068】
一方、ステップS128において、変数iの値が、コロニーの総数Ncol以上である場合、変数iの値は1に設定され、jの値は1に設定されて(ステップS132)、処理はステップS104に復帰する。
【0069】
以上のステップS104〜ステップS128での処理を1単位時間とし、CPU108は、この処理を繰り返すことで、エージェントの学習処理を実行する。
【0070】
以上のような処理においては、時間的にエージェントが入れ替わるので、実際には、過去に担当したエージェントの行動により、現在のエージェントの評価が変わる。したがって、一般には、現在のエージェント単体の評価がしにくい。
【0071】
しかしながら、上述したような集団最適性をもつ動的離隔型遺伝的アルゴリズムDS−GAを用いれば、個々に評価されるエージェントを、集団最適性をもつように学習させることができる。
【0072】
このDS−GAは、エージェントをある程度の大きさをもつコロニーごとに離隔し、あるコロニーに所属するエージェント間の相互の影響に比べて、当該コロニーに属するエージェントが他のコロニーに所属するエージェントに対して与える影響が小さくなるようにすることで、集団最適性の高いエージェントを増やす仕組みになっている。
【0073】
つまり、それぞれのエージェントは、時系列的にロボットを動かしているので、過去のエージェントの影響を完全に遮断することはできない。しかし、実行される順番が近いものほど現在のエージェントに影響を与えやすく、遠ければ、影響を与えにくい。そこで、エージェントをある程度の数のコロニーに分ける。あるコロニーを選び、そのコロニーから所定時間T0の間、集中的にエージェントを選べば、そのコロニー内で相互にエージェントが影響を与え合う。所定時間T0の間、そのコロニー内のエージェントの処理を実行したら、別のコロニーに実行を移す。実行するコロニーを移すときに、前のコロニーの影響を現在のコロニーのエージェントは受けるが、コロニー内の影響に比べれば、コロニー間の影響は小さくなる。
【0074】
以上のような処理により、エージェント間の影響に時間的な距離の差をつくるsDA−GAによって、仮想的な離隔を実現して、エージェントの処理を並列に行なうことができないハードウェアの制御に対して動的離隔型遺伝的アルゴリズムを適用し、制御則の最適化を自律的に適応的に行なうことが可能となる。
【0075】
(実施の形態1の変形例)
実施の形態1においては、カメラ10により撮影された図4に示す画像上において、中心線からの目標対象物2の位置xに直接基づいて、駆動トルクTklを計算していた。
【0076】
しかしながら、ロボット1000と目標対象物2との絶対的な配置は同じでも、カメラ10に撮影される画像中においては、カメラの配置やカメラの設置角度などにより距離dが変化するので、単純に、中心線からの目標対象物2の位置xに基づくよりも、たとえば、画像から、ロボット1000の現在の進行方向に対して、ロボットから目標対象物2を結ぶ線がなす角度θをもとめ、この角度θに基づいて、駆動トルクTklを計算することがより望ましい。また、画像処理により生成される制御信号は、画像処理そのものの処理の時間遅れを考慮して、調整しなければ、その動きの遅さやオーバーシュートを引き起こす。この時間遅れは、ロボットの状況により変化する可能性があるので、自動で調整されることが望ましい。言い換えれば、上述した角度θは、このような時間遅れの影響を考慮した値とすることが望ましく、必ずしも、物理的に正確なロボット1000の現在の進行方向に対するロボットから目標対象物2を結ぶ線がなす角度というよりも、実効的に制御に対して最適な角度θとして計算されるべきものである。
【0077】
したがって、実施の形態1の変形例では、画像認識処理部112においても、マルチエージェントにより、撮影した画像から角度θを求める処理を最適化するものとする。
【0078】
つまり、画像処理と制御信号の生成という2つの機能をそれぞれ別の種類のエージェントとして設計し、それぞれの制御を担当するエージェントを時間的に交替させることで、自律移動ロボットを制御する。
【0079】
すなわち、上述した制御エージェントに加えて、実施の形態1の変形例では、たとえば、以下のような式により、角度θを計算する映像処理エージェントを導入する。
【0080】
θ=fm(x、y) …(3)
ここで、yは、図4における目標対象物2の垂直方向の座標であり、関数形fm(…)は、予め複数の関数形が準備されているものとする。座標yは、ロボット1000から目標対象物2までの距離に依存するから、座標xが同じでも、ロボット1000から目標対象物2までの距離に応じて、時間遅れの影響を異ならせるために関数fm(…)の引数としている。したがって、たとえば、特に限定されないが、座標xに比例する部分と、座標yの増加(ロボット1000から目標対象物2までの距離の増加)に比例する部分との和の関数形などを用いることができる。
【0081】
そして、駆動トルクTklを計算する式を以下のように変更する。
【0082】
kl=α´kl×θ …(1´)
ただし、このような2種類の映像処理エージェントと制御エージェントを使用する場合も、処理の流れは、基本的に図6に示した流れと同様としてよい。したがって、以下では、図6を参照しつつ、実施の形態1と異なる点についてのみ説明する。
【0083】
すなわち、実施の形態1の変形例では、図6のステップS100において、制御学習部110は、sDS−GAを適用するNa個(Na:3以上の自然数)の映像処理エージェントと制御エージェントとをランダムに生成する。このとき、映像処理エージェントは、撮影されたデジタル画像に基づいて認識した目標対象物2に対する角度θを式(3)により算出する。関数形fm(…)は、予め複数の関数形からランダムに選択される。制御エージェントは、左駆動モータ202と右駆動モータ204を制御する制御信号の生成するそれぞれ、式(1´)に基づいて、駆動トルクTklを計算する。
【0084】
ここで、駆動トルクTklを計算するための係数である制御パラメータα´klも、特に、限定されないが、予め定められた範囲内の数値からランダムに選ばれるものとする。このような関数形fm(…)のランダムな選択、制御パラメータα´klのランダムな選択が、エージェントのランダムな生成に対応する。実施の形態1の変形例では、関数形fm(…)および制御パラメータα´klが遺伝子として機能することになる。
【0085】
なお、駆動トルクTklの計算が、認識された角度θに比例する関数により行なわれる場合に限定されないのは、実施の形態1と同様である。このような映像処理エージェントおよび制御エージェントのランダムな生成を、実施の形態1の変形例でも「エージェントの初期生成」と呼ぶことにする。
【0086】
また、評価値を、E(k、l、m、t1)と表現することにし、たとえば、m=0であれば、制御エージェントに対する評価値を、mがそれ以外の値であれば、映像処理エージェントに対する評価値を表すものとする。
【0087】
そして、個数Nagnt(i)は、i番目のコロニーに含まれる、映像処理エージェントと制御エージェントの対の組の個数を表すものとする。ここで、「映像処理エージェントと制御エージェントの対の組」とは、各コロニーにおいて、映像処理により角度θを計算する処理および左駆動モータ202と右駆動モータ204の制御信号の生成をそれぞれ分担するエージェント対の組として排他的に選択しうる最大の組の数である。たとえば、実施の形態1の変形例では、たとえば、コロニーにn個の映像処理エージェントと2n個の制御エージェントが含まれる場合は、「映像処理エージェントと制御エージェントの対の組」はn個である。
【0088】
また、図6のステップS106においては、i番目のコロニーにおいて、j番目のエージェントの組として、映像処理により角度θを計算する処理を行なう1つの映像処理エージェントおよび左駆動モータ202と右駆動モータ204の制御信号の生成をそれぞれ分担する制御エージェントの対がランダムに選択されて、上記式(3)および(1´)に基づいて制御信号が計算される。
【0089】
また、ステップS108の駆動の後に、ステップS110においては、目標対象物2の位置が画像認識処理部112において認識される。このとき、目標対象物2が画面の中心線から距離dの位置にあると認識されたとすると、以下の式に基づいて、選択されて制御を担当した画像処理エージェントと制御エージェントの組の評価値が更新される(ステップS110)。
【0090】
E(k、l、m、t1+1)=E(k、l、m、t1)+(E0−d)…(2´)
ここで、E0は所定の定数である。
【0091】
ただし、評価値の計算が、式(2´)のような関数形に限定されないのも、実施の形態1と同様である。
【0092】
後のエージェントの分裂、消滅や、コロニーの動的離隔については、制御エージェントについてだけでなく、映像処理エージェントに対しても同様の処理がされることになる。たとえば、動的離隔処理は、コロニー内の画像処理エージェント数と制御エージェント数の和が限界数Nlimを超えた場合に起きる。
【0093】
以上のような処理によっても、実施の形態1と同様の効果が奏される。
【0094】
今回開示された実施の形態はすべての点で例示であって制限的なものではないと考えられるべきである。本発明の範囲は上記した説明ではなくて特許請求の範囲によって示され、特許請求の範囲と均等の意味および範囲内でのすべての変更が含まれることが意図される。
【図面の簡単な説明】
【0095】
【図1】本発明のマルチエージェント型制御プログラムを用いた制御装置(マルチエージェント型制御装置)が適用される移動ロボット1000の一例を示す図である。
【図2】図1に示した移動ロボット1000を上面から見た図である。
【図3】図1および図2に示した移動ロボット1000の構成を示す機能ブロック図である。
【図4】カメラ10により撮像された画像の1フレーム分の画像を示す概念図である。
【図5】sDS−GAのアルゴリズムの流れを示す概念図である。
【図6】sDS−GAのアルゴリズムを説明するためのフローチャートである。
【符号の説明】
【0096】
2 目標対象物、10 カメラ、100 制御部、102 撮像系インタフェース、104 画像データバッファ部、106 メモリ、108 CPU、110 制御処理学習部、112 画像認識処理部、114 駆動系インタフェース、200 駆動系、202,204 駆動モータ、212 左キャタピラ、214 右キャタピラ、1000 移動ロボット。

【特許請求の範囲】
【請求項1】
被制御対象に対する制御信号の生成を学習により行なうためのマルチエージェント型制御装置であって、
制御対象量を観測して獲得するための観測手段と、
観測された前記制御対象量に基づいて前記制御信号を各々算出するための、複数のコロニーに離隔された複数のエージェントの学習処理を行なうための制御処理学習手段と、
前記制御対象量が目標値に接近するに従い増加するように更新される、各前記エージェントに対応する評価値を格納するための記憶手段とを備え、
前記制御処理学習手段は、
前記コロニーを順次選択しつつ、選択された前記コロニー内において、前記複数のエージェントの各々に対して、それぞれ所定期間ずつ、対応する第1の関数形を使用して、前記制御信号を算出させ、算出された制御信号により被制御対象を駆動し、駆動後に観測された前記制御対象量に応じて前記選択されたエージェントの評価値の更新を行う相互作用処理手段と、
前記更新された評価値に基づいて、前記エージェントの分裂および消滅処理を行なうための分裂消滅処理手段と、
前記コロニー内の前記エージェントの個数が所定の値を超えることに応じて、前記コロニーを離隔する処理を行う離隔処理手段とを備える、マルチエージェント型制御装置。
【請求項2】
前記エージェントは、制御エージェントと観測制御量算出エージェントとを含み、
前記観測手段は、
前記制御対象量を物理的に測定するための測定手段と、
前記測定手段の測定結果を前記制御エージェントが前記制御信号を算出するために使用する観測制御量に変換する処理を、対応する第2の関数系を使用し、複数の前記観測制御量算出エージェントにそれぞれ実行させるための観測制御量算出手段とを含む、請求項1記載のマルチエージェント型制御装置。
【請求項3】
被制御対象に対する制御信号の生成を学習により行なうためのマルチエージェント型制御プログラムであって、
前記プログラムは、
観測された制御対象量に基づいて前記制御信号を各々算出するための、複数のコロニーに離隔された複数のエージェントの学習処理を、前記制御対象量が目標値に接近するに従い増加するように各前記エージェントに対応する評価値を更新することにより行なうための制御処理学習ステップを備え、
前記制御処理学習ステップは、
前記コロニーを順次選択しつつ、選択された前記コロニー内において、前記複数のエージェントの各々に対して、それぞれ所定期間ずつ、対応する第1の関数形を使用して、前記制御信号を算出させ、算出された制御信号により被制御対象を駆動し、駆動後に観測された前記制御対象量に応じて前記選択されたエージェントの評価値の更新を行う相互作用処理ステップと、
前記更新された評価値に基づいて、前記エージェントの分裂および消滅処理を行なうための分裂消滅処理ステップと、
前記コロニー内の前記エージェントの個数が所定の値を超えることに応じて、前記コロニーを離隔する処理を行う離隔処理ステップとを備える、マルチエージェント型制御プログラム。
【請求項4】
前記エージェントは、制御エージェントと観測制御量算出エージェントとを含み、
測定手段による前記制御対象量の測定結果を前記制御エージェントが前記制御信号を算出するために使用する観測制御量に変換する処理を、対応する第2の関数系を使用し、複数の前記観測制御量算出エージェントにそれぞれ実行させるための観測制御量算出ステップをさらに備える、請求項3記載のマルチエージェント型制御プログラム。

【図3】
image rotate

【図4】
image rotate

【図5】
image rotate

【図6】
image rotate

【図1】
image rotate

【図2】
image rotate


【公開番号】特開2006−127411(P2006−127411A)
【公開日】平成18年5月18日(2006.5.18)
【国際特許分類】
【出願番号】特願2004−318356(P2004−318356)
【出願日】平成16年11月1日(2004.11.1)
【国等の委託研究の成果に係る記載事項】(出願人による申告)平成16年度独立行政法人情報通信研究機構、研究テーマ「人間情報コミュニケーションの研究開発」に関する委託研究、産業活力再生特別措置法第30条の適用を受ける特許出願
【出願人】(304026696)国立大学法人三重大学 (270)
【出願人】(393031586)株式会社国際電気通信基礎技術研究所 (905)