JP2002099893A - 自己再構成可能ロボット中のモジュールへのソフトウェアの提供方法、自己再構成可能ロボットに含まれるモジュール、コンピュータ可読メモリを含む製品、及び自己再構成可能ロボット - Google Patents

自己再構成可能ロボット中のモジュールへのソフトウェアの提供方法、自己再構成可能ロボットに含まれるモジュール、コンピュータ可読メモリを含む製品、及び自己再構成可能ロボット

Info

Publication number
JP2002099893A
JP2002099893A JP2001200395A JP2001200395A JP2002099893A JP 2002099893 A JP2002099893 A JP 2002099893A JP 2001200395 A JP2001200395 A JP 2001200395A JP 2001200395 A JP2001200395 A JP 2001200395A JP 2002099893 A JP2002099893 A JP 2002099893A
Authority
JP
Japan
Prior art keywords
module
self
software
robot
task
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.)
Pending
Application number
JP2001200395A
Other languages
English (en)
Inventor
H Bennett Forest Iii
エイチ.ベネット、ザ サード フォレスト
Riefel Eleanor
リーフェル エレノア
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Fujifilm Business Innovation Corp
Original Assignee
Fuji Xerox Co Ltd
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by Fuji Xerox Co Ltd filed Critical Fuji Xerox Co Ltd
Publication of JP2002099893A publication Critical patent/JP2002099893A/ja
Pending legal-status Critical Current

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06NCOMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
    • G06N3/00Computing arrangements based on biological models
    • G06N3/004Artificial life, i.e. computing arrangements simulating life
    • G06N3/008Artificial life, i.e. computing arrangements simulating life based on physical entities controlled by simulated intelligence so as to replicate intelligent life forms, e.g. based on robots replicating pets or humans in their appearance or behaviour
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06NCOMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
    • G06N3/00Computing arrangements based on biological models
    • G06N3/12Computing arrangements based on biological models using genetic models
    • G06N3/126Evolutionary algorithms, e.g. genetic algorithms or genetic programming

Landscapes

  • Engineering & Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • Theoretical Computer Science (AREA)
  • Health & Medical Sciences (AREA)
  • Life Sciences & Earth Sciences (AREA)
  • Biophysics (AREA)
  • Biomedical Technology (AREA)
  • General Physics & Mathematics (AREA)
  • Computational Linguistics (AREA)
  • Data Mining & Analysis (AREA)
  • Evolutionary Computation (AREA)
  • General Health & Medical Sciences (AREA)
  • Molecular Biology (AREA)
  • Computing Systems (AREA)
  • General Engineering & Computer Science (AREA)
  • Artificial Intelligence (AREA)
  • Mathematical Physics (AREA)
  • Software Systems (AREA)
  • Evolutionary Biology (AREA)
  • Bioinformatics & Cheminformatics (AREA)
  • Bioinformatics & Computational Biology (AREA)
  • Robotics (AREA)
  • Physiology (AREA)
  • Genetics & Genomics (AREA)
  • Feedback Control In General (AREA)
  • Manipulator (AREA)

Abstract

(57)【要約】 【課題】 局所レベル及びグローバルレベルで良好な挙
動を示すソフトウエアを自己再構成可能ロボットに含ま
れるモジュールに提供すること。 【解決手段】 本方法は、提供された複数のモジュール
機能を実行する第1の複数のソフトウェアプログラムに
ついて、複数のそれぞれの適応度関数値を計算するステ
ップ(1003)と、それぞれの適応度関数値に基づい
て、第1の複数のソフトウェアプログラムから、第2の
複数のソフトウェアプログラムを選択するステップ(1
004)と、遺伝的操作を用いて、第2の複数のソフト
ウェアプログラムから、第3の複数のソフトウェアプロ
グラムを構築するステップ(1005)と、を備える。

Description

【発明の詳細な説明】
【0001】
【発明の属する技術分野】本発明は、モジュラーロボッ
トに関し、より詳細には、モジュラーロボットのための
ソフトウェアに関する。
【0002】
【従来の技術】自己を再構成することのできるモジュラ
ーハードウェアは、一般に、自己再構成可能モジュラー
ロボットと呼ばれる。自己再構成可能モジュラーロボッ
トは、多くの同一モジュールから構成され、よく知られ
ているようなロボットの外観とは似ていない。それぞれ
のモジュールは、典型的には、電源、プロセッサ、メモ
リ、モータを単独であるいは組み合わせて有する。モジ
ュールは、お互いに結合および分離することができる。
個々のモジュールは、単独では、ほとんど何もできない
が、個々のモジュールの能力を利用すれば、ロボット
は、自己を再構成して問題を解決することができる。
【0003】自己再構成可能モジュラーロボットの利点
には、様々に変化する問題と環境に適応することのでき
る物理的適応性、故障した場合に同一モジュールであれ
ばお互いに交換することができることによるロバスト
性、および、製造プロセスにおけるスケールの経済性が
含まれる。
【0004】自己を再構成するモジュラーロボットの例
としては、以下のようなものがある。 1)自律ロボットジャーナル、モジュラー再構成可能ロ
ボットに関する特集号、2000年(Autonomous Robot
s Journal,special issue on Modular Reconfigurable
Robots,2000)に寄稿されたC.Unsal、H.Ki
lic c ote、P.K.Khoslaによる「2つの
部分からなる3次元モジュラー自己再構成可能ロボット
システム:その実現方法および運動計画(A 3-D Modula
r Self-Reconfigurable Bipartite Robotic System: Im
plementation and Motion Planning)」に記述されるよ
うなCMUのI次元立方体(CMU’s I-cubes)。 2)議事録、SPIE センサ融合および分散制御I
I、頁236〜245、Boston、1999年9月
(Proc.SPIE Sensor Fusion and Decentralized Contro
l II,pp.236-245,Boston,Sep.1999)のP.Wil
l、A.Castano および W−M.Shenに
よる「自己再構成のためのロボットモジュラリティー
(Robot Modularity for Self-Reconfiguration)」に
記述されるようなUSC−ISIのスパイダーリンクモ
デル(USC-ISI’s Spider Link Models)。 3)インテリジェントロボットおよびシステムに関する
1998年の国際会議の議事録(Proceeding of the 19
98 International Conference on IntellitgentRobots
and Systems,1998)、1998年、における、Kota
y,K、Rus,D、Vona,M and McGr
ay,C.による「自己再構成ロボット分子:設計およ
び制御アルゴリズム(The Self-reconfiguring robotic
molecule: design and control algorithms)」に記述
されるようなDartmouthの分子ロボット(Dart
mouth’s Molecular Robots)。 4)ロボット工学およびオートメーションに関する19
99年のIEEE国際会議における、Rus,D.、
M.Vonaによる「圧縮ユニットモジュールを備えた
自己再構成計画(Self-Reconfiguration Planning with
Compressible UnitModules)」に記述されるような結
晶構造ロボット(Crystalline Robots)。 5)1999年10月、東京、におけるシステム、人、
および、サイバネティックスに関するIEEE国際会議
の議事録、R.L.Tummala、R.Mukher
jee、D.Aslam、N.Xi、S.Mahade
van、J.Wengによる「再構成可能可適応マイク
ロ−ロボット(Reconfigurable AdaptableMicro-Robo
t)」に記述されるようなMSUの再構成可能可適応マ
イクロ−ロボット(MSU’s Reconfigurable Adaptable
Micro-Robot) 6)ロボットおよびオートメーションに関するIEEE
の会報、頁531〜545、第13巻、第4号、199
7年8月(「Pamecha」)における、Amit
Pamecha、Imme Ebert−Uphof
f、GregoryS.Chirikjianによる
「モジュラーロボット運動計画のための有効な測定基準
(A Useful Metrics for Modular Robot Motion Planni
ng)」に記述されるようなJohns Hopkins
大学の変態形成ロボット(Metamorphic Robots)。 7)ロボット工学およびオートメーションに関するIE
EE国際会議(ICRA),2000におけるYim、
Mark、Duff、David G.、Roufa
s、Kimon D.によるXerox PARC社の
ポリボット(PolyBot)。 8)ロボット工学およびオートメーションに関するIE
EE国際会議(ICRA),2000におけるHris
to Bojinov、Aranch Casal、T
ad Hoggによる「自己再構成可能ロボットにおけ
る最先端の構造(Emergent Structures in Modular Sel
f-reconfigurable Robots)」に記述されるようなタン
パク質ロボット(Proteo robots)。
【0005】自己再構成モジュラーロボットに使用する
ための効率的なソフトウェアを設計するのは難しいこと
である。人間であろうが機械であろうが、中央制御装置
とは無関係にタスクを実行することができるように、完
全に分散化され、かつ、完璧に自律的なソフトウェアを
有することが望ましい。やがては、数百のモジュールど
ころか数百万ものモジュールが、お互いに協力して動作
することが期待されている。分散化された制御は、個々
のモジュールの計算能力をうまく利用するものであり、
そして、より少ない通信帯域幅しか必要としない。典型
的には、すべてのモジュールが、同じソフトウェアプロ
グラムを実行するが、個々のセンサの値、内部状態、近
くのモジュールから受信したメッセージなどに応じて、
様々に異なる行動をなす。
【0006】
【発明が解決しようとする課題】したがって、局所的な
レベルで動作し、しかも、グローバルなレベルでも有能
な挙動をなすことのできる、自己再構成可能モジュラー
ロボットのための分散化されたソフトウェアコントロー
ラを提供することが望まれている。
【0007】
【課題を解決するための手段】方法およびコンピュータ
可読媒体が、自己再構成可能ロボットに含まれるモジュ
ールに使用されるソフトウェアプログラムを設計するた
めに提供される。
【0008】その方法は、それぞれの複数のモジュール
機能を実行する複数のソフトウェア関数を提供するステ
ップを含む。タスクを解決する第1の複数のソフトウェ
アプログラムが、複数のソフトウェア関数から構築され
る。第1の複数のソフトウェアプログラムが、実行さ
れ、複数の結果が得られる。この方法は、第1の複数の
ソフトウェアプログラムについての適応度関数値を得る
ための適応度関数を提供するステップを含む。第2の複
数のソフトウェアプログラムが、それぞれの適応度関数
値に基づいて、第1の複数のソフトウェアプログラムか
ら選択される。第2の複数のソフトウェアプログラム
が、遺伝的操作によって変更され、第3の複数のソフト
ウェアプログラムが、構築される。
【0009】本発明の1つの態様によれば、遺伝的操作
は、交叉操作、突然変異操作、および/または、クロー
ニング操作を単独または組み合わせて含む。
【0010】本発明の1つの態様によれば、交叉操作
は、第2の複数のソフトウェアプログラムの中の第1お
よび第2の「親」コンピュータプログラムのそれぞれの
パーズツリー表現を得て、第1および第2の親コンピュ
ータプログラム間で、無作為に選択されたサブツリーを
交換することによって、第1および第2の「子」ソフト
ウェアプログラムを生成することを含む。
【0011】本発明のもう1つの態様によれば、突然変
異操作は、第2の複数のコンピュータプログラムの中の
第1のソフトウェアコンピュータプログラムのパーズツ
リー表現を得ることを含む。そのパーズツリーは、第1
のサブツリーを含む。そして、第1のサブツリーが、無
作為に選択され、無作為に生成された第2のサブツリー
と取り替えられる。
【0012】本発明のもう1つの態様によれば、クロー
ニング操作は、第2の複数のソフトウェアプログラムの
中の第1のソフトウェアプログラムをコピーすることを
含む。
【0013】本発明のもう1つの特徴によれば、複数の
関数は、以下のものを単独または組み合わせて含む。す
なわち、(GetMemory index)関数、
(MoveLine direction)関数、(M
oveSingle direction)関数、(R
eadMessage direction)関数、
(ReadSensorSelf directio
n)関数、(ReadSensorSelfBroke
n direction)関数、(ReadSenso
rWall direction)関数、(Rotat
e direction)関数、(SendMessa
ge message direction)関数、
(SetMemory Index value)関
数、(BlockMove xpos xneg yp
os yneg)関数、(And)関数、(If)関
数、(Less)関数、(Divide)関数、(Mo
dules)関数。
【0014】本発明のもう1つの特徴によれば、モジュ
ールは、スライド式モジュール、回転式モジュール、お
よび/または、圧縮可能なモジュールである。
【0015】本発明のもう1つの態様によれば、タスク
は、狭い通路を自己再構成可能ロボットに通過させるも
のである。
【0016】本発明のもう1つの態様によれば、タスク
は、スイッチバック通路を自己再構成可能ロボットに通
過させるものである。
【0017】本発明のもう1つの態様によれば、タスク
は、スイッチバック通路を、故障モジュールを有する自
己再構成可能ロボットに通過させるものである。
【0018】本発明のもう1つの特徴によれば、タスク
は、スイッチバック通路を自己再構成可能ロボットに通
過させ、かつ、故障モジュールを排除するものである。
【0019】本発明のもう1つの態様によれば、タスク
は、間隙に橋を架けるものである。
【0020】本発明のもう1つの態様によれば、タスク
は、自己再構成可能ロボットをゴールに向かって移動さ
せるものである。
【0021】本発明のもう1つの態様によれば、タスク
は、障害物のあるところで、自己再構成可能ロボットを
ゴールに向かって移動させるものである。
【0022】本発明のもう1つの態様によれば、モジュ
ールは、センサ、モータ、および、エネルギ供給源を単
独または組み合わせて含む。
【0023】本発明のもう1つの態様によれば、適応度
関数は、ロボットの位置と選択された位置との間の距離
を測定することを含む。
【0024】本発明のもう1つの態様によれば、遺伝的
プログラミングによって生成されたソフトウェアを備え
た自己再構成可能ロボットに含まれるモジュールが、提
供される。モジュールは、メモリに結合されたプロセッ
サーを含む。メモリは、問題を解決するためのソフトウ
ェアプログラムを記憶し、ソフトウェアプログラムは、
遺伝的プログラムによって構築される。
【0025】コンピュータ可読メモリを含む製品が提供
される。コンピュータ可読メモリは、自己再構成可能ロ
ボットに含まれるそれぞれの複数のモジュールタスクを
実行する第1の複数のソフトウェア関数を含む。第1の
ソフトウェアプログラムは、第1の複数の関数を無作為
に選択して、複数のソフトウェアプログラムを構築す
る。適応度関数は、それぞれの第1の複数のソフトウェ
アプログラムについて、それぞれの複数の適応度関数値
を得る。第2のソフトウェアプログラムは、それぞれの
複数の適応度関数値に基づいて、第1の複数のプログラ
ムから、第2の複数のプログラムを選択する。第3のソ
フトウェアプログラムは、遺伝的操作によって、第2の
複数のソフトウェアプログラムから、第3の複数のソフ
トウェアプログラムを構築する。
【0026】
【発明の実施の形態】I.概要 A.遺伝的プログラミング 遺伝的プログラミングは、解決されるべき問題を表現す
る高水準記述を与えられたときに、その問題を解決する
コンピュータプログラムを生成することのできる進化論
的方法である。遺伝的プログラミングの記述は、Joh
n R.KozaによるGenetic Progra
mming:On the Programming
of Computers by Means of
a Natural Selection(遺伝的プロ
グラミング:自然淘汰によるコンピュータプログラミン
グについて).Cambridge,MA:MIT P
ress(“Koza 1992”)から知ることがで
きる。遺伝的プログラミングを用いてコンピュータプロ
グラムを生成するためには、その方法に、解決されるべ
き問題のための目的関数(または、適応度関数)、プロ
グラムを組み立てるための基本関数セット(数値、論理
値、文字...)、各基本関数ごとの戻り型、各基本関
数ごとの引数の数、および、各基本関数のそれぞれの引
数の型といくつかのパラメータを提供しなければならな
い。
【0027】遺伝的プログラミング法は、目的言語にお
いて文法的に正しいランダムプログラムからなる集団を
生成することから始める。集団内のそれぞれのプログラ
ムの適応度は、それぞれのプログラムを実行して、その
プログラムが適応度関数でどれくらいの評価点を得るこ
とができるかを測定することによって判定される。
【0028】そして、既存のコンピュータプログラムの
集団が、遺伝的操作を用いて、新しいコンピュータプロ
グラムの集団を生成するのに使用される。遺伝オペレー
タが、コンピュータプログラムの適応度に応じて施さ
れ、その結果として、より適応性のあるプログラムが、
より頻繁に、新しいコンピュータプログラムを生成する
のに使用されることになる。すなわち、より適応性のあ
るプログラムが、より頻繁に、次の世代における新しい
コンピュータプログラムを生成するための「親」として
選択される。
【0029】使用される遺伝的操作は、交叉、突然変
異、および、クローニングである。
【0030】交叉操作は、選択された適応度を有する2
人の「親」コンピュータプログラムのパーズツリー表現
を取り出し、2人の親間で、無作為に選択されたサブツ
リーを交換することによって、新しい2人の「子」プロ
グラムを生成する。
【0031】突然変異操作は、選択された適応度を有す
る1つのコンピュータプログラムのパーズツリー表現を
取り出し、それのサブツリーの中から1つを無作為に選
択し、そのサブツリーを無作為に生成された新しいサブ
ツリーと取り替える。
【0032】クローニング操作は、選択された適応度を
有する1つのコンピュータプログラムを取り出し、それ
のコピーを生成し、新しい集団を得る。
【0033】まったく新しい集団が、遺伝的操作を古い
集団に施すことによって生成された後、上述したよう
に、適応度関数を用いて、新しい集団内のそれぞれのプ
ログラムの適応度が測定される。プログラムの新しい集
団を生成し、そして、それらの適応度を測定するプロセ
スは、コンピュータプログラムが適応度関数によって最
適な評価点を得たことがわかるまで、あるいは、プロセ
スが終了させられるまで、反復される。適応度関数によ
るこれまでのところで最高の評価点を有するコンピュー
タプログラムが、このプロセスの結果として得られる。
【0034】本発明の実施形態において、適応度関数を
計算することは、シミュレーション領域において、進化
したコンピュータプログラムを実行し、モジュラーロボ
ットのシミュレーションを制御することを意味する。適
応度関数で計算された値は、モジュラーロボットがどの
くらい良好に目的を達成できるかの評価値である。例え
ば、適応度関数は、シミュレーション領域において、モ
ジュラーロボットと目標位置との間の距離を測定しても
よい。
【0035】別の実施形態においては、遺伝的アルゴリ
ズム(Genetic Algorithm)および進
化論的プログラミング(Evolutionary P
rogramming)が、単独で、あるいは、組み合
わせて使用されてもよい。 II.ロボットモジュール 実施形態においては、Pamechaに記述されるよう
に、また、図1に示されるように、自己再構成可能ロボ
ット100abが、使用される。矩形のモジュールは、
図2に示されるように、互いに対して摺動することによ
って、2次元平面内を移動する。MoveSingle
関数の前においては、2つのモジュール100abは、
連結エッジを有し(ステップ1)、そして、MoveS
ingle関数の後においては、2つのモジュール10
0abは、依然として、共有のコーナーで連結されてい
る(ステップ2)。モジュールが、それが押し動かしあ
るいは引き寄せることのできる別のモジュールに連結さ
れていなければ、モジュールは、まったく移動すること
ができない。それぞれのモジュールは、シミュレーショ
ン領域内の1格子単位を占め、あらゆる移動は、全格子
単位の中でなされる。本発明の実施形態においては、感
知機能、通信機能、および、処理機能が、Pamech
aで使用される自己再構成可能モジュールに付加されて
いる。
【0036】それぞれの矩形ロボットモジュールは、1
つの領域において、1つの格子位置を占める。ロボット
モジュールの状態には、1)その領域におけるそれの位
置、2)8つの方向のそれぞれに位置する隣接ロボット
モジュールから受信した最近のメッセージの値、3)そ
れのメモリロケーション内の値、4)モジュールが故障
しているかどうか、および、5)向いている方向、があ
る。 A.方向 方向は、0.0〜1.0の間の実数値として符号化さ
れ、ここで、方向0.0は、ロボットモジュールの正の
x軸であり、方向値は、反時計回りに進むにつれて増加
する。それぞれのロボットモジュールによって使用され
る方向値は、そのモジュール自体の座標系でしか通用し
ない。ロボットモジュールの座標系において、ロボット
モジュールが向いている方向は、常に、方向0.0であ
る。方向0.25は、それらの領域においてロボットモ
ジュールが向いている方向から左へ90°の方向であ
る。 B.センサ 各モジュールは、他のロボットモジュールを検出するた
めの8つのセンサと、壁及び障害物を検出するための8
つのセンサとを有する。それぞれのセンサに対応する8
つの方向は、0.0=東、0.125=北東、0.25
=北、0.375=北西、0.5=西、0.625=南
西、0.75=南、及び0.875=南東である。モジ
ュールのセンサは、0.0〜1.0の間にある大きさの
単位で読み取り、ここで、その大きさは、感知した物体
までの距離の逆数であり、0.0は、物体がまったく感
知されなかったことを意味し、1.0は、物体が格子位
置と接触した状態で感知されたことを意味する。 D.移動 ロボットモジュールは、4つの方向、すなわち、東、
北、西、南にしか移動することができない。ロボットモ
ジュールは、それ自身で移動することはできない。すな
わち、ロボットモジュールは、隣接するロボットモジュ
ールに対して摺動することによってしか移動することが
できない。
【0037】摺動するために、ロボットモジュールは、
運動方向を基準にして90°の角度でそれに隣接する別
のロボットモジュールに沿ってそれ自身を押し動かすこ
とができる。
【0038】同様に、ロボットモジュールは、それと対
角線上に隣接する別のロボットモジュールを運動方向に
引き寄せることができる。引き寄せながら移動している
様子が、ステップ2を初期の相対的な配置と考え、か
つ、ステップ1を移動した結果と考えることによって、
図2に説明される。
【0039】ロボットモジュールは、2つの異なる種類
の移動を開始して、ロボットを再構成することができ
る。「単独」移動は、ただ1つのロボットモジュールの
運動であり、これは、そのロボットモジュールが、空き
の格子位置内へ移動しており、かつ、押し動かしあるい
は引き寄せるモジュールが存在する場合にのみできるこ
とである。「列」移動は、ロボットモジュールからなる
列全体の運動であり、これは、その列の先頭のモジュー
ルが、空きの格子位置内へ移動している場合にのみでき
ることである。列移動は、ロボットモジュールの列の中
にあるいずれのロボットモジュールによっても開始する
ことができる。 III.タスクの例 それぞれのモジュールのコントローラソフトウェアを構
築するために、本発明による方法を用いて、6つのタス
クが、解決された。
【0040】それぞれのタスクにおいては、図3に示さ
れるように、それぞれの適応度評価の冒頭において、3
×3の四角形として配置された9つのモジュールロボッ
ト301を使用する。ロボットは、一辺が40単位ある
四角形領域内でシミュレーションされた。通ることので
きない障害物の一枚壁302が、領域全体を取り囲んで
いる。 A.Passageタスク ロボット401は、できるだけ迅速に、領域400を分
割する狭くて曲がりくねった通路403を見つけ出し
て、この通路403を移動しなければならない。ロボッ
ト401は、最初は、領域400の下端中央に配置され
る。ロボット401に含まれるモジュールが配置される
順序、および、それぞれのモジュールが最初に向いてい
る方向は、実行の冒頭で無作為に決定され、かつ、それ
は、すべての適応度評価において、変わることがなかっ
た。 B.Switchbackタスク 図3に示されるように、ロボット301は、できるだけ
迅速に、領域300を分割する狭くてスイッチバックの
通路303を見つけ出して、その通路303をナビゲー
トしなければならない。このタスクを解決するには、通
路303の内部で局所的最適条件にはまり込んで動かな
くなるのを避けなければならない。適応度評価のたび
に、ロボット401に含まれるモジュールは、番号順に
配置され、最初に向いている方向は、無作為に設定され
る。 C.Passage−and−Carry−Broke
n−Moduleタスクロボット401は、最初は、1
つの故障または不良のモジュール402をそれの構成内
に含む。図4に示されるように、ロボット401は、で
きるだけ迅速に、それが狭い通路403を見つけ出して
そこを通過するというタスクを達成するときに、故障モ
ジュール402を運搬しなければならない。モジュール
は、故障モジュールを検出するためのセンサを有する。
故障モジュール402は、動くことができず、あるい
は、メッセージを送信し、あるいは、受信することがで
きない。ロボット401に含まれるモジュールの初期配
置は、switchbackタスクの場合と同じであ
る。 D.Passage−and−Eject−Broke
n−Moduleタスクロボット401は、最初は、1
つの故障または不良のモジュール402をそれの構成内
に含む。ロボット401は、できるだけ迅速に、モジュ
ール402を構成外へ排除し、そして、図4に示される
ように、できるだけ迅速に、狭い通路403を見つけ出
して、そこを通過しなければならない。モジュールは、
故障モジュールを検出するためのセンサを有する。故障
モジュールは、動くことができず、あるいは、メッセー
ジを送信し、あるいは、受信することができない。ロボ
ット401に含まれるモジュールの初期配置は、swi
tchbackタスクの場合と同じである。 E.Bridgeタスク 矩形領域502の内部にあるモジュールは、移動を開始
することができず、そのために、それらのモジュール
は、矩形領域502の外部にある他のモジュールによっ
て動かされなければならない。矩形領域502は、7行
2列の高さと幅を有し、ロボット501のモジュールを
用いて橋を架け、そして、間隙のどちらか一方の側から
それらのモジュールを押しあるいは引くことによっては
じめてロボット501が渡ることのできる地形上の間隙
と考えることができる。図5に示されるように、ロボッ
ト501は、矩形領域502を見つけ出し、それを渡っ
て、領域500の上端へ行かなければならない。ロボッ
ト501は、最初は、領域500の中央に配置され、3
×3の四角形として構成される。適応度評価のたびに、
ロボット501に含まれるモジュールは、番号順に配置
され、最初は、東を向いている。 F.Move−to−Goalタスク ロボット601は、36個の領域それぞれの中央から、
無作為に配置された障害物602を迂回して、ゴールま
で移動しなければならなず、そのゴールは、それぞれの
領域ごとに、異なる位置に配置される。図6は、このタ
スクに使用される36の領域の中の1つを示す。ロボッ
トモジュール601は、ゴールの方向を検出することが
できる。モジュールは、最初は、領域600の中央にお
いて、3×3の四角形として構成される。それぞれの領
域において、モジュールは、番号順に配置され、かつ、
最初は、東を向いている。 IV.関数セット6つのタスクのすべてにおいて、以下
の基本関数セットが、使用される。
【0041】BASIC_FUNCTION_SET={MoveSingle,Move
Line,Rotate,ReadMessage,SendMessage,ReadSensorSel
f,ReadSensorWall,GetMemory,SetMemory,And,If,Less,D
ivide, Modulus} タスクの内の二つは、1つの補足的な関数を使用する。
passage−and−eject−broken−
moduleタスクおよびpassage−and−c
arry−broken−moduleタスクは、基本
関数セットに、ReadSensorSelfBrok
enと呼ばれる関数を補足的に含む。
【0042】これらの関数のそれぞれについて、当業者
にはよく知られている共通関数のAnd,Divid
e,If,Less,Modulusを除いて、以下で
説明する。 A.(GetMemory Index)関数 (GetMemory index)関数は、ロボット
モジュールのメモリ番号インデックスの現在値を得る。
この関数は、メモリ内の値を戻す。 B.(MoveLine Direction)関数 (MoveLine direction)関数は、ロ
ボットモジュールの1列全体を、それらが移動できる場
合に、相対方向であるdirectionへ移動させ
る。移動すべきモジュール列は、現在のモジュールと同
一直線上にあり、現在のモジュールの相対方向に連結さ
れたモジュール列である。モジュール列は、列の先頭モ
ジュールが、固定された壁または障害物によって阻止さ
れることがなく、かつ、その列に隣接し、それが押し動
かしあるいは引き寄せることのできる別のモジュールが
存在する場合にのみ、移動することができる。この関数
は、モジュール列が移動できた場合には、真を戻し、移
動できない場合には、偽を戻す。 C.(MoveSingle Direction)関
数 (MoveSingle direction)関数
は、現在のロボットモジュールを、それらが移動できる
場合に、相対方向に移動させる。モジュールは、それ
が、他のいかなる物体によっても阻止されることがな
く、かつ、それに隣接し、それが押し動かしあるいは引
き寄せることのできる別のロボットモジュールが存在す
る場合にのみ、移動することができる。この関数は、モ
ジュール列が移動できた場合には、真を戻し、移動でき
ない場合には、偽を戻す。 D.(ReadMessage Direction)
関数 (ReadMessage direction)関数
は、受信するモジュールの相対方向direction
に位置する隣接するモジュール(もしあれば)から実数
値を含むメッセージを読み取る。direction
は、mod1と解釈され、そして、隣接する8つの格子
位置の中の1つを示すために、最も近似する8分の1の
単位に丸められる。この関数は、読み取った値のメッセ
ージを戻す。 E.(ReadSensorSelf Directi
on)関数 (ReadSensorSelf directio
n)関数は、自己センサの検出値を読み取る。大きさ
は、相対方向directionにある最も近いロボッ
トモジュールまでの距離の逆数である。大きさは、その
方向にロボットモジュールが存在しなければ、0であ
り、隣接矩形内にモジュールが存在すれば、1である。
この関数は、検出値を戻す。 F.(ReadSensorSelfBroken D
irection)関数 (ReadSensorSelfBroken dir
ection)関数は、SelfBrokenセンサの
検出値を読み取る。大きさは、相対方向directi
onにある最も近い故障ロボットモジュールまでの距離
の逆数である。大きさは、その方向に故障ロボットモジ
ュールが存在しなければ、0であり、隣接矩形内に故障
ロボットモジュールが存在すれば、1である。この関数
は、検出値を戻す。 G.(ReadSensorWall Directi
on)関数 (ReadSensorWall directio
n)関数は、壁センサの検出値を読み取る。大きさは、
相対方向directionにある壁または障害物まで
の距離の逆数である。大きさは、その方向に壁または障
害物が存在しなければ、0であり、隣接四角形内に壁ブ
ロックが存在すれば、1である。この関数は、検出値を
戻す。 H.(Rotate Direction)関数 (Rotate direction)関数は、dir
ectionの量だけロボットモジュールを回転させ
る。これは、モジュールを物理的に動かすものではな
く、ただ単に、内部状態であるロボットモジュールの内
部が向いている方向を設定し直すだけである。この関数
は、directionの値を戻す。 I.(SendMessage Message Di
rection)関数 (SendMessage message dire
ction)関数は、実数値を含むメッセージmess
ageを、送信モジュールから、送信するモジュールの
座標系を基準にして方向directionにある隣接
モジュール(もしあれば)へ送信する。directi
onは、mod1と解釈され、そして、隣接する8つの
格子位置の中の1つを示すために、最も近似する8分の
1の単位に丸められる。この関数は、読み取った値のメ
ッセージを戻す。 J.(SetMemory Index Value)
関数 (SetMemory index value)関数
は、ロボットモジュールのメモリ番号インデックスの値
をvalueに設定する。この関数は、valueを戻
す。 K.(MoveBlock Direction XP
os XNeg YPos YNeg)関数 (BlockMove direction xpos
xneg yposyneg)関数は、ロボットモジ
ュールのブロック全体を、それらが移動できる場合に、
相対方向に移動させる。移動すべきモジュールのブロッ
クは、現在のモジュールを取り囲むモジュールからなる
連結矩形である。連結矩形は、xpos、xneg、y
pos、および、ynegによって指定され、ここで、
矩形は、xposモジュールを方向direction
に、xnegモジュールをそれとは反対方向に、ypo
sモジュールをdirectionから左に90°の方
向に、そして、ynegモジュールをdirectio
nから右に90°の方向に広げる。モジュールのブロッ
クは、ブロック内の先頭モジュールが固定された壁また
は障害物によって阻止されることがなく、かつ、そのブ
ロックに隣接し、そのブロックが押し動かしあるいは引
き寄せることのできる別のモジュールが存在する場合に
のみ、移動することができる。この関数は、モジュール
のブロックが移動できた場合には、真を戻し、移動でき
ない場合には、偽を戻す。 V.ターミナルセット 以下のターミナルセットが、すべてのタスクによって使
用される。
【0043】BASIC_TERMINAL_SET={GetTurn, 0.0,0.
25,0.5,0.75,1.0,-1.0} move−to−goalタスクのためにターミナルセ
ットは、3つの補足的なターミナルを有する。すなわ
ち、 MOVE_TO_GOAL_TERMINAL_SET=BASIC_TERMINAL_SET
+{GoalDirection,GoalX,GoalY} それぞれのターミナルについての説明は、以下の通りで
ある。 A.(GetTurn)関数 (GetTurn)関数は、シミュレーションに使用さ
れるturn変数の現在値を戻す。turn変数は、シ
ミュレーションの冒頭において、0に設定され、そし
て、ロボットのモジュールのすべてが実行されるたびに
インクリメントされる。 B.Six Constant−Valuedターミナ
ル 6つの定数値を有するターミナルである0.0,0.2
5,0.5,0.75,1.0,−1.0が与えられ
る。プログラムツリーは、演算を用いて、別の数値を生
成することができる。 C.(GoalDirection)関数 (GoalDirection)関数は、そのモジュー
ルの座標系における現在のロボットモジュールからゴー
ルまでの方向に対応した方向値を戻す。 D.(GoalX)関数 (GoalX)関数は、そのモジュールの座標系におけ
る現在のモジュールからゴールまでの距離xを戻す。 E.(GoalY)関数 (GoalY)関数は、そのモジュールの座標系におけ
る現在のモジュールからゴールまでの距離yを戻す。 VI.適応度関数 6つのタスクの各々の適応度関数が、ロボットの行動の
シミュレーションをそれぞれの領域で実行することによ
って計算される。シミュレーションは、所定の回数だけ
旋回することが実行される。この簡単なコードフラグメ
ントに示されるように、旋回するたびに、進化したプロ
グラムツリーが、モジュールごとに1回だけ実行され
る。コルーチンを使用するような、より強力なアプロー
チも可能である。
【0044】for (turn=0;turn<maxTurns;turn++)for
(module=0;module<maxModules; module++)programTree.
eval(module); ただ1つのモジュールについてプログラムを実行してい
るとき、センサによる読み取り、モジュールの内部状態
にアクセスする関数、および、移動関数が、その1つの
モジュールについて、すべて実行される。それぞれの適
応度評価の冒頭において、通信の受信バッファーの値、
および、ロボットのすべてのメモリロケーション内の値
が、0に初期化される。 A.Passageタスク passageタスクの場合、適応度関数は、シミュレ
ーションのそれぞれの旋回がそれぞれのモジュールにつ
いて実行された後に計算されるペナルティーの合計であ
る。ペナルティーは、すべてのロボットモジュールの、
通路403の出口に位置する行の上端までの距離を合計
したものである。この適応度関数は、シミュレーション
におけるそれぞれの時点において、すべてのモジュール
の距離にペナルティーを与え、したがって、それは、タ
スクを迅速に解決したことに対しては、そのロボット4
01に報酬を与える。 B.Switchbackタスク passageタスクの場合と同じようにして、適応度
関数が、計算される。 C.Passage−and−Carry−Broke
n−Moduleタスク passageタスクの場合と同じようにして、適応度
関数が、計算される。モジュールの1つが、故障してお
り、そのために、それは、移動または他のモジュールと
の通信を開始することができない。このタスクを解決す
るには、ロボット401は、故障モジュール402を通
路から運び出さなければならない。 D.Passage−and−Eject−Broke
n−Moduleタスク 適応度関数は、passageタスクの場合と同じよう
に、作業モジュールにペナルティーを与える。故障モジ
ュール402の適応度への貢献度は、故障モジュール4
02と領域の下端との間の距離に等しい。このペナルテ
ィーは、それぞれのモジュールがシミュレーションされ
た後に、適応度関数に加算され、したがって、ロボット
は、故障モジュールを迅速に排除したことに対して、報
酬を与えられる。 E.Bridgeタスク 適応度関数は、シミュレーションの終了時点で計算され
る。適応度は、それぞれのモジュールと領域の上端との
間の距離を合計したものである。間隙を渡るために、ロ
ボットは、それ自身を橋の中へ入り込めるように構成し
なければならない。 F.Move−to−Goalタスク 適応度関数は、シミュレーションの終了時点で計算さ
れ、2つのペナルティーを組み合わせる。第1のペナル
ティーは、ゴールに接近したことに対して、それぞれの
ロボットのスタート位置とゴールとの間に残された距離
の割合を平均することによって、ロボット601に報酬
を与える。第2のペナルティーは、分離されたことに対
して、ゴールに到達するまでに最密連結モジュールグル
ープから分離されたモジュールの割合をもとめることに
よって、ロボット601にペナルティーを与える。適応
度関数は、第1のペナルティーに、第2のペナルティー
を2倍したものを加えたものである。 VII.パラメータ 6つのタスクのすべてに使用されるパラメータ値は、集
団の大きさを除けば、すべて同じである。タスクごとの
集団の大きさは、結果の章で説明される。交叉率および
突然変異率は、それぞれ、99%および1%である。交
叉は、ツリーに存在するすべてのノードから、ノードを
均一に選択する。世代繁殖モデルが、トーナメント選択
方式とともに使用され、トーナメントサイズは7であ
る。エリート主義が、使用され、それは、それぞれの世
代の中の最も適応性のある個体が、次の世代にクローン
化されることを保証する。世代0において、突然変異操
作によって、プログラムツリーを生成する方法は、Ko
za 1992に記述されるような「最大(ful
l)」方法である。世代0におけるプログラムツリーの
最大の深さは、6である。交叉および突然変異によって
生成されたプログラムツリーの場合の最大の深さは、1
0である。突然変異によって生成されたサブツリーの最
大の深さは、4である。強制的に型宣言がなされた遺伝
的プログラミングが、遺伝的アルゴリズムに関する第6
回国際会議の議事録,San Francisco,C
A:Morgan Kaufmann.271−27
8、Haynes、Thomas、Wainwrigh
t、Roger、Sen、Sandip、Schoen
feld、Daleによる「Strongly Tyu
pedgenetic Programming in
Evolving Cooperation Str
ategies(進化協力計画における強制的に型宣言
がなされた遺伝的プログラミング)」に記述されるよう
に使用される。 VIII.並列化 集団は、Wright、Sewellによる「Isol
ation by Distance(距離による隔
離)」,Genetics 28:144−138,1
943に記述されるように、デームと呼ばれる半隔離部
分集団に分割される。繁殖は、各デーム内における任意
交配であり、デーム間ではまれにしか起こらない。並列
化法は、John R.Koza,Forrest
H.Bennett III,David Andr
e,Martin A.Keaneによる「Genet
ic Programming III:Darwin
ianInvention and Task Sol
ving(遺伝的プログラミングIII:ダーウィンの
発見およびタスク解決)」,Morgan Kaufm
ann:San Francisco,CA 199
9.に記述されるような分散した非同期の島による方法
である。デーム間の通信トポロジーは、周期的な境界条
件を備えた環状格子である。それぞれのプロセッサー
は、それの4近傍とだけ通信を行う。それぞれの世代の
最後に、集団の2%が、無作為に選択され、4つの主方
向のそれぞれへ移住する。 IX.フローチャート 当業者には明らかなように、図10は、本発明の実施形
態の具体的な関数を実行する論理ブロックを示す。別の
実施形態においては、それよりも多いかまたは少ない論
理ブロックが使用されるかもしれない。本発明の実施形
態において、論理ブロックは、ソフトウェアプログラ
ム、ソフトウェアオブジェクト、ソフトウェア関数、ソ
フトウェアサブルーチン、コードフラグメント、ハード
ウェア動作、ユーザ操作を単独であるいは組み合わせて
表現する。
【0045】図10は、本発明の実施形態による自己再
構成可能ロボットに含まれるモジュールに使用されるソ
フトウェアプログラムを構築するための方法1000の
フローチャートである。論理ブロック1001によって
示されるように、複数のソフトウェア関数が得られる。
実施形態においてモジュールに使用される複数のソフト
ウェア関数については上述した。
【0046】論理ブロック1002に示されるように、
タスクを解決するための第1の複数のソフトウェアプロ
グラムを提供するために、複数のソフトウェア関数が、
無作為に選択される。本発明の実施形態においては、タ
スクは、上述したタスクの中の1つであり、単独で、あ
るいは、組み合わせて使用される。1つの実施形態のお
いては、関数は、第1の複数のソフトウェアプログラム
内のソフトウェアプログラムを形成するために、重複し
て選択されてもよい。
【0047】論理ブロック1003に示されるように、
それぞれの適応度関数値を計算することによって、第1
の複数のソフトウェアプログラムを評価するために、適
応度関数が使用される。1つの実施形態においては、適
応度関数は、ユーザによって提供される。本発明の実施
形態においては、上述したように、適応度関数が、単独
で、あるいは、組み合わせて使用される。
【0048】論理ブロック1004に示されるように、
第2の複数のソフトウェアプログラムは、第1の複数の
ソフトウェアプログラムごとの適応度関数値に基づい
て、第1の複数のソフトウェアプログラムから選択され
る。1つの実施形態においては、第2の複数のソフトウ
ェアプログラムは、第1の複数のソフトウェアプログラ
ムの中のソフトウェアプログラムを重複して含む。
【0049】論理ブロック1005に示されるように、
第2の複数のソフトウェアプログラムは、交叉、突然変
異、及びクローニングのような遺伝的操作によって変更
され、それらは、単独で、あるいは、組み合わせて使用
される。
【0050】論理ブロック1006に示されるように、
さらなる複数のプログラムが構築されるかどうか、すな
わち、新しい世代または集団が形成されるかどうかが判
定される。
【0051】新しい世代のソフトウェアプログラムが所
望される場合には、制御は論理ブロック1003に移
り、そこで、論理ブロック1003〜1005で説明し
た関数が反復される。新しい世代のソフトウェアプログ
ラムが所望されない場合には、論理は、論理ブロック1
007に移り、そこで、モジュールで使用される最も高
い適応度関数を有するソフトウェアプログラムが、選択
される。
【0052】本発明の実施形態においては、方法100
0は、磁気ハードディスク、フロッピー(登録商標)デ
ィスク、CD−ROM、または、その他の書き込み可能
データ記憶装置のようなコンピュータ可読媒体製品に、
単独または組み合わせて記憶されたコンピュータソフト
ウェアプログラムによって、少なくとも部分的に実行さ
れる。 X.タスク例の結果 A.Switchbackタスク このタスクは、集団全体が50,000となるように、
20のデーム、および、1デームにつき2,500の個
体によって実行された。このタスクは、それをたった1
回だけ実行することによって解決された。
【0053】このタスクのために進化した最良のプログ
ラムは、適応度12,770を有し、その実行の156
世代目に現れた。このプログラムは、73の命令を有す
る。すなわち、 この進化したソフトウェアコントローラプログラムの定
性的挙動は、以下の通りである。モジュールは、Mov
eLineを使用して通路へ向かうとき、迅速に、それ
らが向いている方向をすべて東に向くように整列させ
た。それらは、効率的に、通路入口に向かって移動し、
通路の最初の区間を通過した。残りの運動も、やはり、
ほんのたまに引き返すだけで、まずまず効率的であっ
た。ロボット301は、それが、第3の角を曲がり始め
るまでは、一体のままであり、その第3の角の位置にお
いて、ロボット301は、分離して2つになり、前にあ
るその一方は、3つのモジュールを含み、後ろにあるも
う一方は、6つのモジュールを含んでいた。少し移動し
た後、後ろにあるモジュールの中の2つが、6つのグル
ープから分離し、通路303をまさに出ようとするとき
には、それらは、前にある3つのグループに加わってい
た。残りの4つのモジュールは、通路を一緒に出た。
【0054】モジュールは、通路の第1の区間を通過す
るときには東を向いており、第1の角に沿って移動する
間は、北を向いており、いずれの場合にも、運動の主方
向から90°だけずれていた。同じように、第3の区間
においては、モジュールは、西を向いていた。最後の2
つの区間においては、それぞれのモジュールが向いてい
る方向は、同じではなかった。 B.Passage−and−Carry−Broke
n−Moduleタスク このタスクは、集団全体が15,000となるように、
6つのデーム、および、1デームにつき2,500の個
体によって実行された。このタスクは、それをたった1
回だけ実行することによって解決された。
【0055】このタスクのために進化した最良のプログ
ラムは、適応度7786を有し、その実行の476世代
目に現れた。このプログラムは、65の命令を有する。
すなわち、 ロボット401のモジュールは、まっすぐに北へ移動す
る間、東を向くように整列した。それらは、壁に衝突す
ると、それらは、通路403の入口に向かって東へ移動
し、依然として、3×3の隊列のままである。それら
が、通路403の入口に到達すると、1つのモジュール
が、入口の左側へ移動し、そして、その他のモジュール
は、通路403の内部へ進む。入口の左側へ移動したモ
ジュールは、その後、故障モジュール402を通路の中
に押し込めた。通路に入る前に、これらの2つのモジュ
ールに加えて第3のモジュールが、残りのロボットから
次第に分離されたが、第1の区間内でその他のモジュー
ルに加わる。故障モジュール402は、まず最初に、前
にある1つのモジュールによって、MoveLine関
数を用いて、第2の区間に沿って角から引き出され、そ
して、3つのモジュールが、縦に一列に並んで、それを
押していくのを助ける。故障モジュール402は、再
び、1つのモジュールによって、最後の区間の中へ引き
込まれ、そして、それの後ろにあるモジュールによっ
て、押される。 C.Passage−and−Eject−Broke
n−Moduleタスク このタスクは、集団全体が10,000となるように、
4つのデーム、および、1デームにつき2,500の個
体によって実行された。このタスクは、それをたった1
回だけ実行することによって解決された。
【0056】このタスクのために進化した最良のプログ
ラムは、適応度17,343を有し、その実行の29世
代目に現れた。このプログラムは、63の命令を有す
る。すなわち、 まず最初に、ロボット401は、それが通路入口に並ぶ
までは、3×3の隊列で東に移動する。モジュールの大
部分は、まっすぐに通路入口へ向かうが、3つの南西側
に位置するモジュールは、残りのモジュールから分離す
る。最南端に位置する1つのモジュールは、それを迂回
して左に曲がる前に、故障モジュールを前へ2回だけ押
し、そして、もう1つのモジュールは、それを前へ1回
だけ引き、そのために、最終的な状態は、完全に最適な
ものではない。モジュールのすべては、それらが故障モ
ジュール402を後方に置き去りにしてしまえば、北を
向く。ロボットは、それが通路に入るときには、3つの
部分からなる状態である。通路403内において、グル
ープは、再び、連結するが、通路403から出る前に
は、再度、2つのグループに分離する。 D.Bridgeタスク このタスクは、集団全体が16,000となるように、
4つのデーム、および、1デームにつき4,000の個
体によって実行された。このタスクは、それをたった1
回だけ実行することによって解決された。
【0057】このタスクのために進化した最良のプログ
ラムは、適応度9を有し、その実行の60世代目に現れ
た。このプログラムは、49の命令を有する。すなわ
ち、 ロボット501は、それが壁505に向かってまっすぐ
に北へ進み、そして、間隙502の入口に向かって西へ
進むときには、3×3の隊列のままである。最前列が、
一つ一つ間隙502に入り、それと同時に、その他のモ
ジュールは、壁に向かって前進する。モジュールは、一
列縦隊で間隙502を渡る。向こう側に渡ってしまえ
ば、先頭のモジュールは、左に移動し、それによって、
それは、その他のモジュールを引いて間隙を横断させる
ことができる。ロボット510は、それが間隙502を
渡ってしまうまでは、一体のままである(それが、この
タスクを解決できる唯一の方法である)。そして、ただ
1つの列を北側の壁に沿って形成する前に、ロボット5
10は、2つに分離する。モジュールは、始めから終わ
りまで、東を向いている。 E.Move−to−Goalタスク このタスクは、2,000の個体からなる1つのデーム
によって実行された。このタスクは、20回だけ実行さ
れ、それらの20回の実行の中で最善の解決法と思われ
るものをここで説明する。
【0058】このタスクのために進化した最良のプログ
ラムは、適応度0.1248を有し、その実行の20世
代目に現れた。このプログラムは、16の命令を有す
る。すなわち、 このプログラムは、まず最初に、現在のモジュールをゴ
ール方向へ移動させることを試みる。これがうまくいけ
ば、プログラムは終了する。うまくいかなければ、プロ
グラムは、モジュールを90°だけ左に回転させ、Mo
veOne関数を試みる。MoveOne関数がうまく
いけば、さらに、モジュールは、ゴール方向へ、Mov
eLine関数を試みる。MoveLine関数がうま
くいかなければ、モジュールは、ゴールまでXだけずれ
た方向へ、MoveLine関数を試みる。MoveL
ine関数がうまくいけば、モジュールは、90°だけ
左に回転する。 XI.比較 passageタスクについて、6組の比較実行が、実
施され、実行パラメータを様々に変えた結果が評価され
た。すべての実行は、3000からなる集団を使用し
た。あらゆる比較に使用される基本ケースは、上述した
ように、passageタスクが40回だけ実行され
た。
【0059】第1の調査においては、MoveOne関
数を関数セットから除外して、passageタスクが
37回だけ実行された。第2の調査においては、Mov
eLine関数を除外して、passageタスクが4
0回だけ実行された。図7からわかるように、100世
代目の近くで、基本ケースの実行のうち45%が、解決
し、MoveOne関数のない実行のうち73%が、解
決し、MoveLine関数のない実行は、それの5%
が、解決したにすぎなかった。MoveOne関数は、
モジュールが備えている実際の基本移動能力を表現する
ものであり、それに対して、MoveLine関数は、
より高いレベルの移動を抽象化するものである。結果
は、より高いレベルの移動関数を含むことの利点を示し
ている。
【0060】第3の調査は、100%の突然変異および
無交叉を用いて、passageタスクが40回だけ実
行され、第4の調査は、90%の交叉および10%のク
ローニングを用いて、passageタスクが47回だ
け実行された。図8からわかるように、100世代目の
近くで、基本ケースの場合のほんの45%と比べれば、
交叉のない実行のうち67.5%が、解決し、10%の
クローニングのある実行のうち55.3%が、解決し
た。
【0061】第5の調査は、Prog2関数を関数セッ
トに追加して、passageタスクが48回だけ実行
された。Prog2関数は、2つの引数を有する関数で
ある。第1の引数が、評価され、そして、第2の引数
が、評価される。第6の調査は、以下の6つの関数:A
dd、Sub、Mult、GreaterThanOr
Equal、Or、Notを関数セットに追加して、p
assageタスクが37回だけ実行された。図9から
わかるように、Prog2関数を追加することは、中間
世代において、いくぶん好都合であったが、100世代
目の近くでは、基本ケースと比べてほとんど違いがなか
った。補足的な6つの関数を備えた実行は、60世代目
までは、基本ケースと肩を並べるものであったが、その
後は、はかばかしいものではなかった。
【0062】本発明の好ましい実施形態を説明の目的で
上述したが、それは、本発明を余すところなく網羅する
ものではなく、あるいは、本発明を開示された形態その
ものに限定するものではない。当然ながら、当業者は、
多くの変更および変形を実施することができる。上述し
た実施形態は、本発明の原理およびそれの実用化をよく
理解できるように選択および説明されたものであり、そ
れによって、この分野に精通する別の者が、特定の用途
に適合するように、様々に具体化し、そして、様々に変
更するために、本発明を理解できるようにするものであ
る。本発明の範囲は、請求の範囲およびそれらと等価な
ものによって規定される。
【図面の簡単な説明】
【図1】本発明の実施形態による、自己再構成可能ロボ
ットに含まれる2つのモジュールを示す図である。
【図2】本発明の実施形態による、自己再構成可能ロボ
ットモジュールに使用されるMoveSingle操作
を示す図である。
【図3】本発明の実施形態による、switch−ba
ck領域を示す図であり、自己再構成可能ロボットが、
その下端に存在している。
【図4】本発明の実施形態による、passage−a
nd−eject−broken−module領域と
passage−broken−module領域を示
す図であり、自己再構成可能ロボットの初期位置は、領
域の下端である。
【図5】本発明の実施形態による、bridge領域を
示す図であり、通路が狭いことがわかる。
【図6】本発明の実施形態による、move−to−g
oal領域を示す図であり、障害物が、無作為に配置さ
れている。
【図7】本発明の実施形態による、基本ケースによる実
行、関数セットにMoveOne関数のない実行、関数
セットにMoveLine関数のない実行において、世
代によって解決された実行の百分率を示す図である。
【図8】本発明の実施形態による、基本ケースによる実
行、交叉のない実行、クローニングを可能にした実行に
おいて、世代によって解決された実行の百分率を示す図
である。
【図9】本発明の実施形態による、基本ケースによる実
行、Prog2が追加された場合の実行、6つの関数が
追加された場合の実行において、世代によって解決され
た実行の百分率を示す図である。
【図10】本発明の実施形態による、自己再構成可能ロ
ボットに含まれるモジュールで使用されるソフトウェア
プログラムを構築するためのフローチャートを示す図で
ある。
───────────────────────────────────────────────────── フロントページの続き (72)発明者 エレノア リーフェル アメリカ合衆国 94043 カリフォルニア 州 マウンテン ビュー フェイ ウエイ 343 Fターム(参考) 5H004 GA30 GB16 KD67 MA04 MA36

Claims (28)

    【特許請求の範囲】
  1. 【請求項1】 自己再構成可能ロボットに含まれるモジ
    ュールにソフトウェアを提供する方法であって、(a)
    それぞれの複数のモジュール機能を実行する複数のソフ
    トウェア関数を提供するステップと、(b)複数のソフ
    トウェア関数から、タスクを解決する第1の複数のソフ
    トウェアプログラムを構築するステップと、(c)第1
    の複数のソフトウェアプログラムを実行して、複数のそ
    れぞれの結果を得るステップと、(d)適応度値を提供
    するタスク適応度関数を得るステップと、(e)第1の
    複数のソフトウェアプログラムについて、複数のそれぞ
    れの適応度関数値を計算するステップと、(f)それぞ
    れの適応度関数値に基づいて、第1の複数のソフトウェ
    アプログラムから、第2の複数のソフトウェアプログラ
    ムを選択するステップと、(g)遺伝的操作を用いて、
    第2の複数のソフトウェアプログラムから、第3の複数
    のソフトウェアプログラムを構築するステップと、を備
    えた自己再構成可能ロボット中のモジュールへのソフト
    ウェアの提供方法。
  2. 【請求項2】 遺伝的操作が、交叉操作である請求項1
    に記載の方法。
  3. 【請求項3】 交叉操作が、第2の複数のソフトウェア
    プログラムの中の第1および第2の(「親」)コンピュ
    ータプログラムのそれぞれのパーズツリー表現を得て、
    第1および第2の親コンピュータプログラム間で、無作
    為に選択されたサブツリーを交換することによって、第
    1および第2の(「子」)ソフトウェアプログラムを生
    成することを含む請求項2に記載の方法。
  4. 【請求項4】 交叉操作が、第2の複数のソフトウェア
    プログラムの中の第1および第2の(「親」)コンピュ
    ータプログラムのそれぞれのパーズツリー表現を得て、
    第1および第2の親コンピュータプログラム間で、無作
    為に選択されたサブツリーを交換することによって、第
    1の(「子」)ソフトウェアプログラムだけを生成する
    ことを含む請求項2に記載の方法。
  5. 【請求項5】 遺伝的操作が、突然変異操作である請求
    項1に記載の方法。
  6. 【請求項6】 突然変異操作が、第2の複数のコンピュ
    ータプログラムの中の第1のソフトウェアコンピュータ
    プログラムの、第1のサブツリーを含むパーズツリー表
    現を得ることを含み、そして、第1のサブツリーを無作
    為に選択して、その第1のサブツリーを、無作為に生成
    された第2のサブツリーと交換することを含む請求項4
    に記載の方法。
  7. 【請求項7】 遺伝的操作が、クローニング操作である
    請求項1に記載の方法。
  8. 【請求項8】 クローニング操作が、第2の複数のソフ
    トウェアプログラムの中の第1のソフトウェアプログラ
    ムをコピーすることを含む請求項7に記載の方法。
  9. 【請求項9】 複数のタスクが、再構成タスクを含む請
    求項1に記載の方法。
  10. 【請求項10】 モジュールが、スライド式モジュール
    である請求項1に記載の方法。
  11. 【請求項11】 モジュールが、回転式モジュールであ
    る請求項1に記載の方法。
  12. 【請求項12】 モジュールが、圧縮可能なモジュール
    である請求項1に記載の方法。
  13. 【請求項13】 タスクが、狭い通路を自己再構成可能
    ロボットに通過させるものである請求項1に記載の方
    法。
  14. 【請求項14】 タスクが、スイッチバック通路を自己
    再構成可能ロボットに通過させるものである請求項1に
    記載の方法。
  15. 【請求項15】 タスクが、スイッチバック通路を、故
    障モジュールを有する自己再構成可能ロボットに通過さ
    せるものである請求項1に記載の方法。
  16. 【請求項16】 タスクが、1)スイッチバック通路を
    自己再構成可能ロボットに通過させ、かつ、2)故障モ
    ジュールを排除するものである請求項1に記載の方法。
  17. 【請求項17】 タスクが、間隙に橋を架けるものであ
    る請求項1に記載の方法。
  18. 【請求項18】 タスクが、自己再構成可能ロボットを
    ゴールに向かって移動させるものである請求項1に記載
    の方法。
  19. 【請求項19】 タスクが、障害物のあるところで、自
    己再構成可能ロボットをゴールに向かって移動させるも
    のである請求項1に記載の方法。
  20. 【請求項20】 ロボットが、複数のモジュールを含
    み、適応度関数が、連結された多くのモジュールを含む
    請求項1に記載の方法。
  21. 【請求項21】 自己再構成可能ロボットに含まれるモ
    ジュールであって、(a)プロセッサーと、(b)遺伝
    的プログラミングによって構築されてタスクを解決する
    ソフトウェアプログラムを記憶するための、プロセッサ
    ーに結合されたメモリと、を備えた自己再構成可能ロボ
    ットに含まれるモジュール。
  22. 【請求項22】 モジュールが、スライド式モジュール
    である請求項21に記載のモジュール。
  23. 【請求項23】 モジュールが、回転式モジュールであ
    る請求項21に記載のモジュール。
  24. 【請求項24】 モジュールが、圧縮可能なモジュール
    である請求項21に記載のモジュール。
  25. 【請求項25】 コンピュータ可読メモリを含む製品で
    あって、(a)自己再構成可能ロボットに含まれるそれ
    ぞれの複数のモジュール機能を実行する第1の複数のソ
    フトウェア関数と、(b)複数のソフトウェア関数を無
    作為に選択して、第1の複数のソフトウェアプログラム
    を構築する第1のソフトウェアプログラムと、(c)そ
    れぞれの第1の複数のソフトウェアプログラムについ
    て、それぞれの複数の適応度関数値を得る適応度関数
    と、(d)複数のそれぞれの適応度関数値に基づいて、
    第1の複数のソフトウェアプログラムから、第2の複数
    のソフトウェアプログラムを構築する第2のソフトウェ
    アプログラムと、を備えたコンピュータ可読メモリを含
    む製品。
  26. 【請求項26】 (a)第2の複数のソフトウェアプロ
    グラムの中のソフトウェアプログラムに遺伝的操作を用
    いることによって、第2の複数のソフトウェアプログラ
    ムから、第3の複数のソフトウェアプログラムを構築す
    る第3のソフトウェアプログラム、をさらに備えた請求
    項25に記載の製品。
  27. 【請求項27】 自己再構成可能ロボットであって、
    (a)第1のモジュールと、(b)タスクを解決するソ
    フトウェアプログラムを記憶するための、プロセッサー
    に結合されたメモリを有する第2のモジュールと、を備
    え、前記ソフトウェアプログラムは、遺伝的プログラミ
    ングによって構築され、かつ、第1のモジュールが故障
    してもタスクを完了することができる、自己再構成可能
    ロボット。
  28. 【請求項28】 自己再構成可能ロボットであって、
    (a)第1のモジュールと、(b)タスクを解決するソ
    フトウェアプログラムを記憶するための、プロセッサー
    に結合されたメモリを有する第2のモジュールと、を備
    え、前記ソフトウェアプログラムは、遺伝的プログラミ
    ングによって構築され、また、第1および第2のモジュ
    ールは、ソフトウェアプログラムを記憶した複数のモジ
    ュールが追加されてもタスクを完了することができる、
    自己再構成可能ロボット。
JP2001200395A 2000-07-07 2001-07-02 自己再構成可能ロボット中のモジュールへのソフトウェアの提供方法、自己再構成可能ロボットに含まれるモジュール、コンピュータ可読メモリを含む製品、及び自己再構成可能ロボット Pending JP2002099893A (ja)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US611395 2000-07-07
US09/611,395 US6477444B1 (en) 2000-07-07 2000-07-07 Method for the automated design of decentralized controllers for modular self-reconfigurable robots

Publications (1)

Publication Number Publication Date
JP2002099893A true JP2002099893A (ja) 2002-04-05

Family

ID=24448849

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2001200395A Pending JP2002099893A (ja) 2000-07-07 2001-07-02 自己再構成可能ロボット中のモジュールへのソフトウェアの提供方法、自己再構成可能ロボットに含まれるモジュール、コンピュータ可読メモリを含む製品、及び自己再構成可能ロボット

Country Status (2)

Country Link
US (1) US6477444B1 (ja)
JP (1) JP2002099893A (ja)

Cited By (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2007128517A (ja) * 2005-11-01 2007-05-24 Fuji Xerox Co Ltd コンポーネントライブラリを自動設計するためのシステム、方法及びプログラム
JP2018010493A (ja) * 2016-07-14 2018-01-18 日本電信電話株式会社 行動制御システム、行動制御方法、プログラム
JP2019074997A (ja) * 2017-10-18 2019-05-16 日本電信電話株式会社 制御装置、方法及びプログラム
JP2019075013A (ja) * 2017-10-18 2019-05-16 日本電信電話株式会社 隊列制御装置、隊列制御方法、およびプログラム
JP2019082800A (ja) * 2017-10-30 2019-05-30 日本電信電話株式会社 隊列制御装置、隊列制御方法、およびプログラム
CN113485321A (zh) * 2021-06-09 2021-10-08 深圳市人工智能与机器人研究院 一种基于球形模块化自重构机器人的越障方法

Families Citing this family (38)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6636781B1 (en) * 2001-05-22 2003-10-21 University Of Southern California Distributed control and coordination of autonomous agents in a dynamic, reconfigurable system
US6725128B2 (en) * 2001-07-02 2004-04-20 Xerox Corporation Self-reconfigurable robot
US6842246B2 (en) * 2001-12-10 2005-01-11 Xerox Corporation Six degree of freedom position ranging
JP4638740B2 (ja) * 2003-01-15 2011-02-23 ピエトルズク,アンジェイ 三次元多目的素子システムおよび三次元多目的素子を生成するための方法
US20050072260A1 (en) * 2003-10-03 2005-04-07 Anani Ananiev Method for driving multiple-module mechanisms by a single motor and redundant modular robots produced therefrom
US7769488B2 (en) * 2004-04-08 2010-08-03 The United States Of America As Represented By The Administrator Of The National Aeronautics And Space Administration Reconfigurable structure
US7357684B2 (en) * 2005-02-03 2008-04-15 International Business Machines Corporation Control system for a linear propulsor array
US8051405B2 (en) * 2006-01-11 2011-11-01 Oracle International Corporation System and method for build script generation in a software development environment
EP2258608A1 (en) 2006-11-13 2010-12-08 Raytheon Sarcos LLC Conformable track assembly for a robotic crawler
EP2476604B1 (en) 2006-11-13 2013-08-21 Raytheon Company Tracked robotic crawler having a moveable arm
US7945346B2 (en) * 2006-12-14 2011-05-17 Palo Alto Research Center Incorporated Module identification method and system for path connectivity in modular systems
US8002716B2 (en) 2007-05-07 2011-08-23 Raytheon Company Method for manufacturing a complex structure
EP2170683A2 (en) * 2007-07-10 2010-04-07 Raytheon Sarcos, LLC Modular robotic crawler
KR101399199B1 (ko) * 2007-07-16 2014-05-27 삼성전자주식회사 소프트웨어 로봇의 유전자 코드 구성 방법
WO2009058982A2 (en) * 2007-10-30 2009-05-07 President And Fellows Of Harvard College Environmentally-adaptive shapes with a multi-agent system
US8392036B2 (en) 2009-01-08 2013-03-05 Raytheon Company Point and go navigation system and method
US9155961B2 (en) * 2009-05-28 2015-10-13 Anki, Inc. Mobile agents for manipulating, moving, and/or reorienting components
WO2010144813A1 (en) 2009-06-11 2010-12-16 Raytheon Sarcos, Llc Method and system for deploying a surveillance network
WO2010144820A2 (en) 2009-06-11 2010-12-16 Raytheon Sarcos, Llc Amphibious robotic crawler
US8742814B2 (en) 2009-07-15 2014-06-03 Yehuda Binder Sequentially operated modules
US8602833B2 (en) 2009-08-06 2013-12-10 May Patents Ltd. Puzzle with conductive path
US20110224873A1 (en) * 2009-09-17 2011-09-15 Reeve David R Vehicle assembly controller with automaton framework and control method
US9597607B2 (en) 2011-08-26 2017-03-21 Littlebits Electronics Inc. Modular electronic building systems with magnetic interconnections and methods of using the same
US9019718B2 (en) 2011-08-26 2015-04-28 Littlebits Electronics Inc. Modular electronic building systems with magnetic interconnections and methods of using the same
US11330714B2 (en) 2011-08-26 2022-05-10 Sphero, Inc. Modular electronic building systems with magnetic interconnections and methods of using the same
US8393422B1 (en) 2012-05-25 2013-03-12 Raytheon Company Serpentine robotic crawler
US9031698B2 (en) 2012-10-31 2015-05-12 Sarcos Lc Serpentine robotic crawler
US20140300211A1 (en) * 2013-03-06 2014-10-09 Massachusetts Institute Of Technology Discrete Motion System
US9409292B2 (en) 2013-09-13 2016-08-09 Sarcos Lc Serpentine robotic crawler for performing dexterous operations
US9566711B2 (en) 2014-03-04 2017-02-14 Sarcos Lc Coordinated robotic control
JP2018508847A (ja) 2015-01-05 2018-03-29 アンキ,インコーポレイテッド 適応データ解析サービス
US10071303B2 (en) 2015-08-26 2018-09-11 Malibu Innovations, LLC Mobilized cooler device with fork hanger assembly
US10293482B2 (en) 2015-11-12 2019-05-21 ITI Electromagnetic Products Inc. Self-assembling robotic construction system and associated methods
US10807659B2 (en) 2016-05-27 2020-10-20 Joseph L. Pikulski Motorized platforms
US10265844B2 (en) * 2017-03-24 2019-04-23 International Business Machines Corporation Creating assembly plans based on triggering events
CN109581868B (zh) * 2018-09-21 2021-11-30 长春工业大学 基于评判辨识结构的可重构机器人分散神经最优控制方法
US11616844B2 (en) 2019-03-14 2023-03-28 Sphero, Inc. Modular electronic and digital building systems and methods of using the same
US20230404685A1 (en) * 2020-01-24 2023-12-21 Siemens Healthcare Gmbh Machine-learned network for medical robot generation from configurable modules

Family Cites Families (21)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US4648997A (en) * 1985-03-18 1987-03-10 Tarver Stephen C Air injector
US4811210A (en) * 1985-11-27 1989-03-07 Texas Instruments Incorporated A plurality of optical crossbar switches and exchange switches for parallel processor computer
US5222192A (en) 1988-02-17 1993-06-22 The Rowland Institute For Science, Inc. Optimization techniques using genetic algorithms
US4935877A (en) 1988-05-20 1990-06-19 Koza John R Non-linear genetic algorithms for solving problems
US5586218A (en) 1991-03-04 1996-12-17 Inference Corporation Autonomous learning and reasoning agent
GB9519678D0 (en) 1995-09-27 1995-11-29 Philips Electronics Nv Behaviour prediction
JP3413694B2 (ja) 1995-10-17 2003-06-03 ソニー株式会社 ロボット制御方法およびロボット
JP3075170B2 (ja) 1996-02-14 2000-08-07 トヨタ自動車株式会社 車輌のサスペンション制御方法
US5867397A (en) 1996-02-20 1999-02-02 John R. Koza Method and apparatus for automated design of complex structures using genetic programming
CA2252423C (en) 1996-04-22 2003-07-08 Weld Tooling Corporation Unified modular system of drives and controls for mobile robotic applic ations
JP3327123B2 (ja) 1996-06-04 2002-09-24 トヨタ自動車株式会社 作業用ロボットの統合制御システム
US6004016A (en) 1996-08-06 1999-12-21 Trw Inc. Motion planning and control for systems with multiple mobile objects
US6032139A (en) 1996-09-27 2000-02-29 Yamaha Hatsudoki Kabushiki Kaisha Electronic controller using genetic evolution techniques suitable for controlling a motor
US5884206A (en) 1996-11-08 1999-03-16 Samsung Heavy Industries Co., Ltd. Distributed control system for heavy construction machine
US6003056A (en) * 1997-01-06 1999-12-14 Auslander; Lewis Dimensionless fast fourier transform method and apparatus
US5942869A (en) 1997-02-13 1999-08-24 Honda Giken Kogyo Kabushiki Kaisha Mobile robot control device
US5894450A (en) 1997-04-15 1999-04-13 Massachusetts Institute Of Technology Mobile underwater arrays
US5870698A (en) * 1997-05-03 1999-02-09 Atrix International, Inc. Multi-purpose machine metering/monitoring apparatus
US6256598B1 (en) * 1998-07-10 2001-07-03 The Regents Of The University Of Michigan Method and system for creating a control-flow structure which represents control logic, reconfigurable logic controller having the control logic, method for designing the controller and method for changing its control logic
US6243622B1 (en) * 1998-10-16 2001-06-05 Xerox Corporation Touchable user interface using self movable robotic modules
US6233503B1 (en) * 1998-10-16 2001-05-15 Xerox Corporation Space filling robotic polyhedra modules

Cited By (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2007128517A (ja) * 2005-11-01 2007-05-24 Fuji Xerox Co Ltd コンポーネントライブラリを自動設計するためのシステム、方法及びプログラム
JP2018010493A (ja) * 2016-07-14 2018-01-18 日本電信電話株式会社 行動制御システム、行動制御方法、プログラム
JP2019074997A (ja) * 2017-10-18 2019-05-16 日本電信電話株式会社 制御装置、方法及びプログラム
JP2019075013A (ja) * 2017-10-18 2019-05-16 日本電信電話株式会社 隊列制御装置、隊列制御方法、およびプログラム
JP2019082800A (ja) * 2017-10-30 2019-05-30 日本電信電話株式会社 隊列制御装置、隊列制御方法、およびプログラム
CN113485321A (zh) * 2021-06-09 2021-10-08 深圳市人工智能与机器人研究院 一种基于球形模块化自重构机器人的越障方法
CN113485321B (zh) * 2021-06-09 2023-08-08 深圳市人工智能与机器人研究院 一种基于球形模块化自重构机器人的越障方法

Also Published As

Publication number Publication date
US6477444B1 (en) 2002-11-05

Similar Documents

Publication Publication Date Title
JP2002099893A (ja) 自己再構成可能ロボット中のモジュールへのソフトウェアの提供方法、自己再構成可能ロボットに含まれるモジュール、コンピュータ可読メモリを含む製品、及び自己再構成可能ロボット
Elhoseny et al. Bezier curve based path planning in a dynamic field using modified genetic algorithm
Portugal et al. Cooperative multi-robot patrol with Bayesian learning
Mo et al. Research of biogeography particle swarm optimization for robot path planning
Nair et al. GM-VPC: An algorithm for multi-robot coverage of known spaces using generalized Voronoi partition
Lee et al. Structured triangulation in multi-robot systems: Coverage, patrolling, voronoi partitions, and geodesic centers
Cui et al. Learning world transition model for socially aware robot navigation
Christensen Evolution of shape-changing and self-repairing control for the ATRON self-reconfigurable robot
Desai et al. Efficient kinodynamic multi-robot replanning in known workspaces
Rossi et al. Multi-agent algorithms for collective behavior: A structural and application-focused atlas
Liang et al. From multi-agent to multi-robot: A scalable training and evaluation platform for multi-robot reinforcement learning
Li et al. A novel Q-learning algorithm based on improved whale optimization algorithm for path planning
Bennett et al. Design of decentralized controllers for self-reconfigurable modular robots using genetic programming
JP6285849B2 (ja) 行動制御システム、その方法及びプログラム
Song et al. Forming repeating patterns of mobile robots: A provably correct decentralized algorithm
He et al. A flocking algorithm for multi-agent systems with connectivity preservation under hybrid metric-topological interactions
Umari Multi-robot map exploration based on multiple rapidly-exploring randomized trees
Lee Distributed deformable configuration control for multi-robot systems with low-cost platforms
Fekete et al. Connected assembly and reconfiguration by finite automata
Zmudzinski et al. Controlling robot formations by means of spatial reasoning based on rough mereology
Alian Multi-agent asynchronous real-time maze-solving
Aroor Online learning and planning for crowd-aware service robot navigation
Yildiz et al. Consensus-based virtual leader tracking swarm algorithm with GDRRT*-PSO for path-planning of multiple-UAVs
Sundar et al. A Cooperative Multi-Agent Based Path-Planning and Optimization Strategy for Dynamic Environment
Brown Coverage path planning and room segmentation in indoor environments using the constriction decomposition method