(57)【特許請求の範囲】
【請求項１】
各々移動可能に隣接して配置された複数のモジュールユニットで構成され、所定の特性を有する少なくとも１つのオブジェクトに対し、該複数のモジュールユニットが選択的に移動して、該オブジェクトを該オブジェクトの特性に応じて選択的に通過させる第１の機能、及び、該オブジェクトを該オブジェクトの特性に応じて所定位置に配置させる第２の機能の少なくとも一方を行うロボットであって、
前記複数のモジュールユニット各々は、
前記複数のモジュールユニット各々が移動するための移動手段と、
隣接する他のモジュールユニットと通信する通信手段と、
前記オブジェクトの特性の情報を取得するセンサと、
前記通信手段により前記隣接する他のモジュールユニットと通信した結果及び前記センサにより取得された前記オブジェクトの特性の情報に基づいて、前記第１の機能及び前記第２の機能の少なくとも一方を行うように前記移動手段を制御する制御手段と、
を備えたロボット。
【請求項２】
請求項１記載のロボットのオブジェクトの通過及び配置の少なくとも一方を行う方法であって、
前記複数のモジュールユニット各々の前記通信手段が、前記隣接する他のモジュールユニットと通信するステップと、
前記センサが、前記オブジェクトの特性の情報を取得するステップと、
制御手段が、前記通信手段により前記隣接する他のモジュールユニットと通信した結果及び前記センサにより取得された前記オブジェクトの特性の情報に基づいて、前記第１の機能及び前記第２の機能の少なくとも一方を行うように前記移動手段を制御するステップと、
を備えたオブジェクトの通過及び配置の少なくとも一方を行う方法。
【発明の詳細な説明】
【０００１】
【発明の属する技術分野】
本発明は、プログラム可能スマート膜及びその方法に係る装置及び方法に関する。
【０００２】
【従来の技術】
いくつかの関連技術のデバイスとしては、マイクロマシンである分類機が挙げられる。例えば、米国特許第５，６５５，６６５号には、マイクロマシンである、流体中に浮遊する磁粉用の磁粉マニピュレータ及び分離器が開示されている。
【０００３】
別のマイクロマシンである分類機が、米国特許第５，８９３，９７４号に開示されている。この特許では、所望の小さな生物分子を通過させ、同時にそれよりも大きな例えば抗体のような分子全てを通過させないようにできる、小さな孔のあいたマイクロ規模の受動フィルタが開示されている。
【０００４】
別の関連技術のマイクロマシンである分類機としては、エム．コッホ(M. Koch)、シー．シャブミューラー(C. Schabmueller)、エー．ジー．アール．エヴァンズ(A. G. R. Evans)、エー．ブルンシュヴァイラー(A. Brunnschweiler)による「マイクロマシンである粒子分類機：原理とテクノロジー(“A Micromachined Particle Sorter: Principle and Technology”)」（テクノロジー  ダイジェスト、ユーロセンサーズ  ＸII、英国−サウサンプトン、１９９８年９月１３日〜１６日(Tech. Digest, Eurosensors XII, Southampton, UK, September 13-16, 1998)）によって開示されている、受動粒子分類機が挙げられる。
【０００５】
しかし、これらの関連技術のマイクロマシンである分類機は、予め定義された特性によって粒子を分類することしかできない、即ち静的／受動的であるため、プログラム不可能である。
【０００６】
その他の関連技術のデバイスとしては、ナノメートル規模の膜が挙げられる。例えば、ヨシヒロ  イトウ(Yoshihiro Ito)による「極小多孔性膜における高分子電解質毛衣による信号応答性ゲート(“Signal-responsive Gating by a Polyelectrolyte Pelage on a Nanoporous Membrane”)」（ナノテクノロジー、２０５〜２０７頁、第９巻、第３号、１９９８年９月(Nanotechnology, pp. 205-207, Vol. 9, No. 3, September 1998)）には、膜の透水率がｐＨレベル及びイオン強度によって制御される、ナノメートル規模の能動膜が開示されている。
【０００７】
別のナノメートル規模の膜が、ケー．エリック  ドレクスラー(K. Eric Drexler)による「ナノシステム：分子機械、製造、及び計算(“Nanosystem: Molecular Machinery, Manufacturing, and Computation”)」（ジョン  ウィリー  アンド  サンズ株式会社、１９９２年(John Wiley & Sons, Inc., 1992)）に開示されている。ドレクスラーは、バリヤを越えて特定分子を移送することのできる一方向能動分子分類機の設計を開示している。ドレクスラーは、受容体を弾性変形させることにより、又は受容体周囲の局部電荷分布を変更することにより、移送分子の特異性を変更することができる、この設計の変形例の可能性について言及している。
【０００８】
別の関連技術である、電動ポリマーアクチュエータにより制御されるナノメートル規模の多孔性膜については、トリビオ  エフ．オテロ(Toribio F. Otero)、パイス  ヴァスコ大学(Univ. del Pais Vasco)、及びサン  セバスチャン(San Sebastian)による「多官能価及び生体情報科学材料としてのＥＡＰ(“EAP as Multifunctional and Biomimetic Materials”)」（「スマート構造及び材料１９９９：電動ポリマーアクチュエータ及びデバイス」より、編集：ヨセフ  バー−コヘン、２６〜３４頁、１９９９年(in Smart Structures and Materials 1999: Electroactive Polymer Actuators and Devices, edited by Yoseph Bar-Cohen, pp. 26-34, 1999)）に記載されている。
【０００９】
しかし、関連技術であるこれらのナノメートル規模の膜は全て、予め設定されており後で変更することのできないフィルタリング機能を有している。
【００１０】
関連技術である制御方法及び技術としては、移動ロボット用途に対する駆動及び制御統合モジュラーシステムである、米国特許第６，０１１，３７２号に開示されたシステムが挙げられる。しかし、このモジュラーシステムのロボットはモジュール式ではなく、このロボットの制御は階層的である。
【００１１】
【発明が解決しようとする課題】
本発明は、従来技術の欠陥及び不足分を克服する、ロボット及びオブジェクトの通過及び配置の少なくとも一方を行う方法を提供する。
【００４１】
【課題を解決するための手段】
本発明の第１の態様は、各々移動可能に隣接して配置された複数のモジュールユニットで構成され、所定の特性を有する少なくとも１つのオブジェクトに対し、該複数のモジュールユニットが選択的に移動して、該オブジェクトを該オブジェクトの特性に応じて選択的に通過させる第１の機能、及び、該オブジェクトを該オブジェクトの特性に応じて所定位置に配置させる第２の機能の少なくとも一方を行うロボットであって、前記複数のモジュールユニット各々は、前記複数のモジュールユニット各々が移動するための移動手段と、隣接する他のモジュールユニットと通信する通信手段と、前記オブジェクトの特性の情報を取得するセンサと、前記通信手段により前記隣接する他のモジュールユニットと通信した結果及び前記センサにより取得された前記オブジェクトの特性の情報に基づいて、前記第１の機能及び前記第２の機能の少なくとも一方を行うように前記移動手段を制御する制御手段と、を備えている。
【００４２】
本発明の第２の態様は、請求項１記載のロボットのオブジェクトの通過及び配置の少なくとも一方を行う方法であって、前記複数のモジュールユニット各々の前記通信手段が、前記隣接する他のモジュールユニットと通信するステップと、前記センサが、前記オブジェクトの特性の情報を取得するステップと、制御手段が、前記通信手段により前記隣接する他のモジュールユニットと通信した結果及び前記センサにより取得された前記オブジェクトの特性の情報に基づいて、前記第１の機能及び前記第２の機能の少なくとも一方を行うように前記移動手段を制御するステップと、を備えている。
【００７９】
本発明のこれらの及びその他の特性並びに利点については、本発明によるシステム及び方法の様々な一般的な実施の形態に関する以下の詳細な説明に記載されている、又は以下の詳細な説明より明らかである。
【００８０】
【発明の実施の形態】
本発明は、関連技術の欠陥及び不足分を克服する、プログラム可能膜及びその方法である。
【００８１】
本発明は、アイテムの特性若しくは属性に依って、アイテムを拒絶、移送、及び／又は吸収するようにプログラムすることのできる、スマート膜を含む。本発明のスマート膜は、複数のモジュールユニットを備える。このスマート膜全体は、外部からの援助が一切無くても再構成することができるという点で、自己再構成可能である。各モジュールユニットは、その環境に関する情報に基づいて、機能を実行する。各モジュールユニットが、それと隣接するモジュールユニットと通信し且つ相対的に移動することによって、例えばフィルタリングのような、膜全体のタスク全体が行われる。このモジュールユニットによって実行される機能は、セントラルプログラム／方法に基づいている。
【００８２】
本発明の様々な一般的な実施の形態を、添付の図面を参照しながら詳細に説明する。
【００８３】
図１〜図３は、本発明によるスマート膜１００の１つの一般的な実施の形態を示している。このスマート膜１００は、複数のモジュールユニット１１０を備える。この一般的な実施の形態におけるスマート膜１００は、一方向フィルタとして機能している。その他の様々な一般的な実施の形態では、本発明によるスマート膜は、それぞれ図４〜図６、図７〜図９、及び図１０〜図１２に示されているように、オブジェクトを多方向にフィルタリングしたり、分類したり、捕捉／吸収したりする機能を果たすこともできる、ということは認識されるべきである。
【００８４】
図１〜図３に示されているように、スマート膜１００は、オブジェクトをフィルタリングして、第１の属性を有するオブジェクト１２０には膜１００を通過させ、第２の属性を有するオブジェクト１３０には膜１００を通過させないようにする。説明の便宜上、第１の属性を有するオブジェクト１２０は三角で、第２の属性を有するオブジェクト１３０は丸で示されている。
【００８５】
図１はフィルタリングの初期段階を、図２はフィルタリングの中間段階を、図３はフィルタリングの最終段階を示している。図２に示されているように、一時移送チャネル１４０が、モジュールユニット１１０の作用により生成される。この一時移送チャネル１４０は、オブジェクト１２０に膜１００を通過させる。
【００８６】
この一般的な実施の形態では、モジュールユニット１１０は同一である。しかし、その他の様々な一般的な実施の形態では、モジュールユニット１１０は全てが同一なわけではない、ということは認識されるべきである。
【００８７】
この一般的な実施の形態では、モジュールユニット１１０は、同一セットの命令若しくは方法に基づいて作動する。しかし、その他の様々な一般的な実施の形態では、モジュールユニット１１０全てが、同一の方法に基づいて作動するわけではない、ということは理解されるべきである。
【００８８】
各モジュールユニット１１０は、そのモジュールユニット周囲の環境に関する情報を得る。様々な一般的な実施の形態では、この情報はローカル情報である。このローカル情報とは、そのモジュールユニットのすぐ周囲にある環境に関する情報である。その他の様々な一般的な実施の形態では、この情報は、モジュールユニット全て即ち膜の環境から得られるグローバル情報である。
【００８９】
この情報を得る方法は、膜の各用途に基づいて様々であってよい。例えば、様々な一般的な実施の形態では、この情報は、そのモジュールと、それと隣接するモジュールユニットを含む環境とを、物理的に接触させることによって得られる。その他の様々な一般的な実施の形態では、この情報は、そのモジュールユニットと、それと隣接するモジュールユニットを含む環境とを、電気的に接続させることによって得られる。
【００９０】
様々な一般的な実施の形態では、この情報はセンサによって得られる。このセンサは、いずれの既知の若しくはこれから開発されるセンサ、或いは、感知デバイス及び／又は方法であってもよい。様々な一般的な実施の形態では、このセンサは、モジュールユニットの上及び／又は中に配置される。様々な一般的な実施の形態では、このセンサは、オブジェクト１２０及び１３０、並びに／又は、膜１００の環境の境界を検出するためのものである。様々な一般的な実施の形態では、このセンサは赤外線センサである。
【００９１】
その他の様々な一般的な実施の形態では、この情報は、環境と通信するモジュールユニットによって得られる。例えば、様々な一般的な実施の形態では、モジュールユニットは、互いに通信する。様々な一般的な実施の形態では、モジュールユニットは、すぐに隣接したモジュールユニットとのみ通信する。その他の一般的な実施の形態では、モジュールユニットは、オブジェクト１２０及び１３０、並びに／又は、環境の境界と通信する。いずれの既知の若しくはこれから開発される通信方法、及び／又は通信デバイスを用いてもよい。様々な一般的な実施の形態では、この通信は無線通信によって行われる。
【００９２】
様々な一般的な実施の形態では、モジュールユニットは、センサのみ、或いは通信デバイスのみ、或いはその両方を備えていてもよい、ということは認識されるべきである。また、このセンサと通信デバイスとは、１つのデバイスに組み合わされていてもよい、ということも認識されるべきである。さらに、様々な一般的な実施の形態では、感知及び通信デバイスを介して得られる情報としては、オブジェクトの特性、即ち、例えば、色、大きさ、形状、温度、密度、重量、剛度、弾力度、電荷、力、反射率、磁束、導電率、摩擦率、圧縮率、動き、オブジェクトとの通信、以上の属性のうちのいずれかの時間の経過に伴う変化の仕方、及び、以上の属性のうちのいずれかのオブジェクトにわたる変動の仕方が挙げられるが、これらに限定されるわけではない、ということも認識されるべきである。
【００９３】
モジュールユニットによって得られたこの情報は、モジュールユニット１１０がそれらそれぞれの機能に関して従属する制御方法に基づいて処理される。
【００９４】
この情報は、処理された結果、それぞれのモジュールユニット１１０に対する機能命令となる。この機能命令とは、モジュールユニット１１０に特定機能（単数又は複数）を実行させる命令である。この機能命令には、モジュールユニット１１０に何の機能も実行しないように命令する、非機能命令も含まれる。この一般的な実施の形態では、機能命令は、移動、通信、及び内部状態変更命令である。しかし、この機能命令には様々な動作／機能が含まれるであろう、ということは認識されるべきである。例えば、様々な一般的な実施の形態では、この機能として、環境との通信、他のモジュールユニットとの接続、不動、モジュールユニットの内部状態変更が挙げられるが、これらに限定されるわけではない。
【００９５】
その他の様々な一般的な実施の形態では、この機能命令は、それぞれのモジュールユニット１１０に対するエフェクタ命令である。例えば、ラッチ用の面板を有するモジュールユニットは、例えば、その面板を隣接するモジュールユニットの面板にラッチ又はラッチ解除することによって、隣接するモジュールユニットに対して着脱することができる。
【００９６】
様々な一般的な実施の形態では、この機能命令は、それぞれのモジュールユニット１１０に対する通信命令である。例えば、モジュールユニットは、他のモジュールユニットに対して、メッセージを送受信することができる。これらのメッセージとしては、あらゆるタイプの情報の共有や、情報の要求などが挙げられる。
【００９７】
その他の様々な一般的な実施の形態では、この機能命令は、モジュールユニットの内部状態を変更するための命令である。この命令としては、計算結果、センサ読取り値、又は将来参照用の計画動作を記憶しているような、それぞれのモジュールユニット１１０の内部メモリの内容を変更する、セントラル方法を変更／修正するための命令が挙げられるが、これに限定されるわけではない。
【００９８】
機能がモジュールユニットの移動である様々な一般的な実施の形態では、各モジュールユニットの移動は、１セットの予め定義された制限に限定される。例えば、モジュールユニットは、モジュールユニット１１０の移動を制限する物理的構造を有していてもよい。その他の一般的な実施の形態では、複数のモジュールユニットを合わせて１グループとして保持するように、この移動制限を設定してもよい。特定の移動制限の一例としては、モジュールユニットが、少なくとも１つの他のモジュールユニットと隣接している場合にのみ移動することができる、というものがある。
【００９９】
各モジュールユニット１１０がそれぞれの環境情報にのみ基づいて独立して動作することにより、膜全体が所望のとおりに動作する。
【０１００】
個々のモジュールユニット１１０が従属している方法は、モジュールユニット１１０がどのように集合的に動作するかを決定する。様々な一般的な実施の形態におけるこの制御方法は、コンピュータプログラムである。様々な一般的な実施の形態では、このコンピュータプログラムは、遺伝プログラミング法を用いて開発されている。この遺伝プログラミング法としては、例えば、２０００年７月７日に出願された同時係属出願の米国特許出願番号第０９／６１１，３９５号（これは、参照によりその全体が本明細書中に援用される）に開示されている、自動制御プログラム生成方法が挙げられるが、これに限定されるわけではない。
【０１０１】
オブジェクト１２０及び１３０の第１及び第２の属性は、方法及びデバイスを得る情報を介してモジュールユニット１１０により取得若しくは学習することのできるものであれば、いずれのタイプの属性であってもよい、ということも認識されるべきである。また、各オブジェクトは複数の属性を有していてもよく、各属性は時間の経過に伴って且つ実際のオブジェクトにわたって変化してもよい、ということも認識されるべきである。様々な一般的な実施の形態では、これらの属性としては、色、大きさ、形状、温度、密度、重量、剛度、弾力度、電荷、力、反射率、磁束、導電率、摩擦率、圧縮率、オブジェクトの動き、オブジェクトとの通信、以上の属性のうちのいずれかの時間の経過に伴う変化の仕方、及び、以上の属性のうちのいずれかのオブジェクトにわたる変動の仕方があるが、これらに限定されるわけではない。
【０１０２】
様々な一般的な実施の形態では、膜１００は、膜１００を起動及び起動停止させるメカニズム（図示せず）を備える。この起動メカニズムは、膜１００の「オン／オフ」スイッチである。様々な一般的な実施の形態では、このメカニズムは、既知の若しくはこれから開発される無線通信方法及びデバイスを介して起動される。その他の様々な一般的な実施の形態では、この起動メカニズムは、ユーザがこのメカニズムを手動で起動させることができるように、膜１００又はモジュールユニット１１０上に配置される。その他の様々な一般的な実施の形態では、この起動メカニズムは、個々のモジュールユニット１１０を起動させる複数のデバイスを備える。
【０１０３】
図４〜図６は、本発明によるスマート膜２００の１つの一般的な実施の形態を示している。このスマート膜２００は、複数のモジュールユニット２１０を備える。この一般的な実施の形態におけるスマート膜２００は、オブジェクト２２０及び２３０に対する二方向フィルタとして機能している。この膜２００は、二方向フィルタとして機能していることを除いては、膜１００と同一である、ということは認識されるべきである。即ち、オブジェクト２２０及び２３０が二方向から膜２００に接近し、膜２００がこのオブジェクト２２０及び２３０をその属性に基づいてフィルタリングすることによって、オブジェクト２２０は膜２００の下方にフィルタリングされ移動し、オブジェクト２３０は膜２００の上方にフィルタリングされ移動する。このオブジェクト２２０及び２３０はオブジェクト１２０及び１３０と同一である、ということも認識されるべきである。図４はフィルタリングの初期段階を、図５はフィルタリングの中間段階を、図６はフィルタリングの最終段階を示している。図５に示されているように、一時移送チャネル２４０が、モジュールユニット２１０の機能／作用により生成される。この一時移送チャネル２４０は、オブジェクト２２０及び２３０に、膜２００を通過させる。
【０１０４】
図７〜図９は、本発明によるスマート膜３００の１つの一般的な実施の形態を示している。このスマート膜３００は、複数のモジュールユニット３１０を備える。この一般的な実施の形態におけるスマート膜３００は、オブジェクト３２０及び３３０に対する分類機として機能している。この膜３００は、分類機として機能していることを除いては、膜１００と同一である、ということは認識されるべきである。この一般的な実施の形態では、オブジェクト３２０及び３３０が一方向（膜３００の上方）から膜３００に接近し、膜３００がこのオブジェクト３２０及び３３０をその属性に基づいて分類することによって、オブジェクト３２０は膜３００下方領域の第１サイドに分類され、オブジェクト３３０は膜下方領域の第２サイドに分類される。このオブジェクト３２０及び３３０はオブジェクト１２０及び１３０と同一である、ということも認識されるべきである。図７は分類の初期段階を、図８は分類の中間段階を、図９は分類の最終段階を示している。図８に示されているように、一時移送チャネル３４０が、モジュールユニット３１０の機能／作用により生成される。この一時移送チャネル３４０は、オブジェクト３２０及び３３０に、膜３００を通過させる。
【０１０５】
図１０〜図１２は、本発明によるスマート膜４００の１つの一般的な実施の形態を示している。このスマート膜４００は、複数のモジュールユニット４１０を備える。この一般的な実施の形態におけるスマート膜４００は、オブジェクト４２０或いは４３０をその１つ以上の属性に基づいて吸収する吸収器として機能している。この膜４００は、吸収器として機能していることを除いては、膜１００と同一である、ということは認識されるべきである。この一般的な実施の形態では、オブジェクト４２０及び４３０は、膜４００の上方から膜４００に接近する。膜４００は、所定の属性（単数又は複数）を有するオブジェクトのみを吸収する。この実施の形態では、オブジェクト４２０が適当な所定の属性を有しているのに対し、オブジェクト４３０は適当な所定の属性を有していない。膜４００は、それぞれのオブジェクトの属性に基づいて、オブジェクト４２０を吸収し、オブジェクト４３０を膜の中に入れないようにする。このオブジェクト４２０及び４３０はオブジェクト１２０及び１３０と同一である、ということも認識されるべきである。図１０は吸収の初期段階を、図１１は吸収の中間段階を、図１２は吸収の最終段階を示している。図１１に示されているように、一時移送チャネル４４０が、モジュールユニット４１０の機能／作用により生成される。この一時移送チャネル４４０は、オブジェクト４２０を膜４００内に侵入させる。
【０１０６】
図１３は、本発明による一般的なスマート膜のモジュールユニット５００の、１つの一般的な実施の形態を示すブロック図である。このモジュールユニット５００は、モジュール制御回路／ルーチン／マネジャー５１０、メモリ５２０、センサ５３０、通信回路／ルーチン／マネジャー５４０、及び、機能回路／ルーチン／マネジャー５５０を備えており、これらはそれぞれ信号／データバス５１２に接続されている。
【０１０７】
センサ５３０は、上述したように、モジュールユニット５００周囲の環境に関する情報を得る、少なくとも１つのセンサを含む。このセンサ５３０によって得られた情報は、モジュール制御回路／ルーチン／マネジャー５１０に送られる。様々なその他の一般的な実施の形態では、この感知された情報は、評価などのために後で呼び出すことができるように、メモリ５２０に記憶される。
【０１０８】
通信回路／ルーチン／マネジャー５４０は、モジュールユニット５００の通信を制御して、上述したように、モジュールユニット５００周囲の環境に関する情報を得る。様々な一般的な実施の形態では、この通信回路／ルーチン／マネジャー５４０は、モジュールユニットを制御するのに用いるために、モジュール制御回路／ルーチン／マネジャー５１０の新しい方法を得ることを含む。この通信回路／ルーチン／マネジャー５４０によって得られた情報は、モジュール制御回路／ルーチン／マネジャー５１０に送られる。様々なその他の一般的な実施の形態では、この通信情報は、評価などのために後で呼び出すことができるように、メモリ５２０に記憶される。
【０１０９】
通信回路／ルーチン／マネジャー５４０とセンサ５３０とは、１つのデバイスに一体化されたエレメントであってもよい、ということは認識されるべきである。
【０１１０】
モジュール制御回路／ルーチン／マネジャー５１０は、モジュールユニット５００の機能を制御する方法を含む。このモジュール制御回路／ルーチン／マネジャー５１０は、この制御方法を実行し、センサ５３０及び通信回路／ルーチン／マネジャー５４０によって得られた情報に基づいて機能命令を生成する。この一般的な実施の形態では、このセンサ５３０及び通信回路／ルーチン／マネジャー５４０によって得られた情報とは、モジュールユニット５００のローカル情報である。機能命令は、機能回路／ルーチン／マネジャー５５０に送られる。様々なその他の一般的な実施の形態では、この機能命令は、評価などのために後で呼び出すことができるように、メモリ５２０に記憶される。
【０１１１】
機能回路／ルーチン／マネジャー５５０は、モジュール制御回路／ルーチン／マネジャー５１０からの機能命令に基づいて、機能を実行する。様々な一般的な実施の形態では、機能回路／ルーチン／マネジャー５５０は、この機能命令に基づいて、モジュールユニット５００の上及び／又は中に配置された移動モータを制御する。
【０１１２】
図１３に示されているメモリ５２０は、可変、揮発性、若しくは不揮発性メモリ、又は、不可変、若しくは固定メモリのうちのいずれの適当な組み合わせを用いて実施してもよい。可変メモリは、揮発性であろうと不揮発性であろうと、スタティックＲＡＭ若しくはダイナミックＲＡＭ、フロッピー(登録商標)ディスク及びディスクドライブ、書込み可能若しくは再書込み可能光ディスク及びディスクドライブ、ハードドライブ、フラッシュメモリなどのうちのいずれの１つ以上を用いて実施してもよい。同様に、不可変若しくは固定メモリは、ＲＯＭ、ＰＲＯＭ、ＥＰＲＯＭ、ＥＥＰＲＯＭ、例えばＣＤ−ＲＯＭやＤＶＤ−ＲＯＭディスクのような光ＲＯＭディスク及びディスクドライブなどのうちのいずれの１つ以上を用いて実施してもよい。
【０１１３】
メモリ５２０は、センサ５３０若しくは通信回路／ルーチン／マネジャー５４０によって得られたあらゆる情報、機能回路／ルーチン／マネジャー５５０によって生成されたあらゆる情報、又は、モジュール制御回路／ルーチン／マネジャー５１０からの機能命令を記憶することができる。
【０１１４】
さらに、メモリ５２０をモジュール制御ユニット５１０に接続しているデータバス５１２は、ネットワーク（図示せず）への有線リンクであっても無線リンクであってもよい、ということは認識されるべきである。このネットワークは、ローカルエリアネットワーク、イントラネット、又はその他いずれの分散処理及び記憶ネットワークであってもよい。
【０１１５】
図１３に示された回路／ルーチン／マネジャーはそれぞれ、適切にプログラムされた汎用コンピュータの一部として実施してもよい、ということも理解されるべきである。或いは、この図１３に示された回路／ルーチン／マネジャーはそれぞれ、ＡＳＩＣ内における物理的に別個のハードウェア回路／ルーチン／マネジャーとして実施してもよいし、ＦＰＧＡ、ＰＤＬ、ＰＬＡ、若しくはＰＡＬを用いて実施してもよいし、離散型論理エレメント、若しくは離散型回路／ルーチン／マネジャーエレメントを用いて実施してもよい。この図１３に示された回路／ルーチン／マネジャーそれぞれの特定形式は、設計選択である。
【０１１６】
図１４は、本発明による一般的なスマート膜のモジュールユニット６００の、１つの一般的な実施の形態を示すブロック図である。このモジュールユニット６００は、Ｉ／Ｏインタフェース６２０、モジュラーユニットコントローラ６３０、メモリ６４０、センサ６５０、通信回路／ルーチン／マネジャー６６０、及び、機能回路／ルーチン／マネジャー６７０を備えており、これらはそれぞれ信号／データバス６０２に接続されている。Ｉ／Ｏインタフェース６２０は、リンク６１２によって、モジュールコントローラ回路／ルーチン／マネジャー６１０に接続されている。
【０１１７】
このリンク６１２は、モジュールコントローラ回路／ルーチン／マネジャー６１０をモジュールユニット６００に接続することができるものであれば、いずれの既知の若しくはこれから開発されるデバイス又はシステムであってもよく、このデバイス又はシステムとしては、例えば、直接ケーブル接続、ワイドエリアネットワーク若しくはローカルエリアネットワークを介する接続、イントラネットを介する接続、インターネットを介する接続、又は、その他のあらゆる分散処理ネットワーク若しくはシステムが挙げられる。通常、このリンク６１２は、いずれの既知の若しくはこれから開発される接続システム又は構造であってもよい。
【０１１８】
センサ６５０は、上述したように、モジュールユニット６００周囲の環境に関する情報を得る、少なくとも１つのセンサを含む。このセンサ６５０によって得られた情報は、モジュラーユニットコントローラ６３０の制御下において、Ｉ／Ｏインタフェース６２０を介して、モジュールコントローラ回路／ルーチン／マネジャー６１０に送られる。様々なその他の一般的な実施の形態では、この感知された情報は、評価などのために後で呼び出すことができるように、モジュラーユニットコントローラ６３０の制御下において、メモリ６４０に記憶される。
【０１１９】
通信回路／ルーチン／マネジャー６６０は、モジュールユニット６００の通信を制御して、上述したように、モジュールユニット６００周囲の環境に関する情報を得る。この通信回路／ルーチン／マネジャー６６０によって得られた情報は、モジュラーユニットコントローラ６３０の制御下において、Ｉ／Ｏインタフェース６２０を介して、モジュールコントローラ回路／ルーチン／マネジャー６１０に送られる。様々なその他の一般的な実施の形態では、この通信情報は、評価などのために後で呼び出すことができるように、コントローラ６３０の制御下において、メモリ６４０に記憶される。
【０１２０】
通信回路／ルーチン／マネジャー６６０とセンサ６５０とは、１つのデバイスに一体化されたエレメントであってもよい、ということは認識されるべきである。
【０１２１】
モジュールコントローラ回路／ルーチン／マネジャー６１０は、モジュールユニット６００の機能を制御する方法を含む。このモジュールコントローラ回路／ルーチン／マネジャー６１０は、モジュールユニット６００の外側に配置されている。様々な一般的な実施の形態では、このモジュールコントローラ回路／ルーチン／マネジャー６１０は、モジュールユニット６００から離れて位置している。様々な一般的な実施の形態では、このモジュールコントローラ回路／ルーチン／マネジャー６１０は、制御方法を実行し、センサ６５０及び通信回路／ルーチン／マネジャー６６０によって得られた情報に基づいて、機能命令を生成することによって、モジュールユニット６００を分散制御する。その他の様々な一般的な実施の形態では、このモジュールコントローラ回路／ルーチン／マネジャー６１０は、制御方法を実行し、センサ６５０及び通信回路／ルーチン／マネジャー６６０によって得られた情報、並びにその他のモジュールユニットによって得られた情報に基づいて、機能命令を生成することによって、モジュールユニット６００を集中制御する。機能命令は、Ｉ／Ｏインタフェース６２０を介して、機能回路／ルーチン／マネジャー６７０に送られる。様々なその他の一般的な実施の形態では、この機能命令は、評価などのために後で呼び出すことができるように、Ｉ／Ｏインタフェース６２０を介して、メモリ６４０に記憶される。
【０１２２】
機能回路／ルーチン／マネジャー６７０は、モジュールコントローラ回路／ルーチン／マネジャー６１０からの機能命令に基づいて、機能を実行する。様々な一般的な実施の形態では、機能回路／ルーチン／マネジャー６７０は、この機能命令に基づいて、モジュールユニット６００の上及び／又は中に配置された移動モータを制御する。
【０１２３】
図１４に示されているメモリ６４０は、可変、揮発性、若しくは不揮発性メモリ、又は、不可変、若しくは固定メモリのうちのいずれの適当な組み合わせを用いて実施してもよい。可変メモリは、揮発性であろうと不揮発性であろうと、スタティックＲＡＭ若しくはダイナミックＲＡＭ、フロッピー(登録商標)ディスク及びディスクドライブ、書込み可能若しくは再書込み可能光ディスク及びディスクドライブ、ハードドライブ、フラッシュメモリなどのうちのいずれの１つ以上を用いて実施してもよい。同様に、不可変若しくは固定メモリは、ＲＯＭ、ＰＲＯＭ、ＥＰＲＯＭ、ＥＥＰＲＯＭ、例えばＣＤ−ＲＯＭやＤＶＤ−ＲＯＭディスクのような光ＲＯＭディスク及びディスクドライブなどのうちのいずれの１つ以上を用いて実施してもよい。
【０１２４】
メモリ６４０は、センサ６５０若しくは通信回路／ルーチン／マネジャー６６０によって得られたあらゆる情報、機能回路／ルーチン／マネジャー６７０によって生成されたあらゆる情報、又は、モジュールコントローラ回路／ルーチン／マネジャー６１０からの機能命令を記憶することができる。
【０１２５】
さらに、メモリ６４０をモジュラーユニットコントローラ６３０に接続しているデータバス６０２は、ネットワーク（図示せず）への有線リンクであっても無線リンクであってもよい、ということは認識されるべきである。このネットワークは、ローカルエリアネットワーク、イントラネット、又はその他いずれの分散処理及び記憶ネットワークであってもよい。
【０１２６】
図１４に示された回路／ルーチン／マネジャーはそれぞれ、適切にプログラムされた汎用コンピュータの一部として実施してもよい、ということも理解されるべきである。或いは、この図１４に示された回路／ルーチン／マネジャーはそれぞれ、ＡＳＩＣ内における物理的に別個のハードウェア回路／ルーチン／マネジャーとして実施してもよいし、ＦＰＧＡ、ＰＤＬ、ＰＬＡ、若しくはＰＡＬを用いて実施してもよいし、離散型論理エレメント、若しくは離散型回路／ルーチン／マネジャーエレメントを用いて実施してもよい。この図１４に示された回路／ルーチン／マネジャーそれぞれの特定形式は、設計選択である。
【０１２７】
以下の説明は、本発明のスマート膜の一般的な実施の形態に関するものである。本発明のスマート膜は、様々な実施の形態を取ってもよく、以下の一般的な実施の形態に限定されるべきではない、ということは認識されるべきである。本発明のスマート膜の様々な一般的な実施の形態には、この膜をモジュラーロボットとするものが含まれる。
【０１２８】
本発明によるモジュラーロボットスマート膜は、例えば、色、大きさ、形状、又は、感知若しくは測定可能なその他のあらゆる属性（これらに限定されるわけではない）のような、様々なセットの特性若しくは属性に基づいて、オブジェクトに対し、能動的にフィルタリング、分類、吸収などを行うことのできる、自己再構成可能なモジュラーロボットデバイスである。本発明のモジュラーロボットスマート膜は、複数のロボットモジュール若しくはモジュラーハードウェアを備える。
【０１２９】
自己再構成することのできるモジュラーハードウェアは、通常、自己再構成可能モジュラーロボットと呼ばれる。自己再構成可能モジュラーロボットとは、それぞれが独自の電源、モータ、計算法、メモリ、及びセンサを有する、多数のモジュールで構成されたロボットである。これらのモジュールは、移動してタスク若しくは機能を実行するために、モータと、モジュールを互いに着脱させることのできる止め金と、を有している。個々のモジュールは、独力ではほとんど何もできないが、ロボットがこの個々のモジュールの能力を用いるだけで、自己再構成し、必要に応じて異なるタスクを実行することができる。様々な一般的な実施の形態では、これらのロボットモジュールは、同一の構成要素である。
【０１３０】
様々な一般的な実施の形態では、このモジュラーロボットを制御するモジュラーロボット制御ソフトウェアは、人間或いは機械がセントラルコントローラを参照しなくてもタスクを実行することができるように、完全に分散化され且つ完全に自律的であるのが好ましい。様々な一般的な実施の形態では、本発明によるモジュラーロボット制御ソフトウェアは、遺伝プログラミングを用いて生成されている。本明細書中に援用される、２０００年７月７日に出願された米国特許出願番号第０９／６１１，３９５号には、遺伝プログラミングを用いて制御ソフトウェアを生成する一般的な方法が開示されている。しかし、この制御ソフトウェアは、いくつかの異なる技法によって生成することができ、予め決定若しくは供給されていてもよい、ということは認識されるべきである。
【０１３１】
スマート膜は、自己再構成可能モジュラーロボットであれば、いずれを用いて実施してもよく、このモジュラーロボットとしては、例えば、以下に挙げるようなタイプの自己再構成可能モジュラーロボットがある。
【０１３２】
自己再構成可能モジュラーロボットの１つのタイプとしては、例えばダートマス(Dartmouth)で開発された結晶体ロボット(Crystalline Robot)のような、互いにすれ違うようにスライド可能な立方体モジュールから構成される、圧縮可能モジュラーロボットがある。これらのロボットは、一方向又は他方向への２つのファクターの１つによりその立方体と接触するモータを介してのみ、移動が可能である。二次元及び三次元両方のバージョンが可能である。
【０１３３】
自己再構成可能モジュラーロボットの別のタイプとしては、ゼロックス  パルク(Xerox PARC)のプロテオ(Proteo)ロボットのような、モジュールが、その頂点（二次元）又は辺（三次元）におけるヒンジを介して互いに対して回転する、回転モジュラーロボットが挙げられる。この個々のモジュールは、二次元では正方形や六角形、又は三次元ではプロテオに用いられた立方体や斜方十二面体のような、異なる形状であってもよい。
【０１３４】
自己再構成可能モジュラーロボットの別のタイプとしては、ゼロックス  パルクのポリボット(Polybot)のような、モジュールが、楔形に収縮すると共に互いに着脱することのできる立方体である、柱状結合モジュラーロボットが挙げられる。このモジュールの構造には、他のモジュールに時折取り付けられて、例えば、ヘビ型、クモ型、及びタンク−トレッド型のロボットを形成する、長いストリング状の要素が含まれる。
【０１３５】
自己再構成可能モジュラーロボットの１つのタイプとしては、ＵＳＣのＩＳＩのスパイダー連結(Spider Link)ロボットのような、互いに対して回転することのできる、回転結合モジュラーロボットが挙げられる。同じく、このモジュールの構造にも、他のモジュールに時折取り付けられる、長いストリング状の要素が含まれる。
【０１３６】
自己再構成可能モジュラーロボットの別のタイプとしては、ＣＭＵのＩキューブ(I-cube)及びダートマスの分子ロボット(Molecule Robot)のような、互いに着脱すると共に互いに対して回転することのできる２つのタイプのモジュール、即ち立方体及び連結部から構成される、複合ユニットモジュラーロボットが挙げられる。
【０１３７】
図１５は、モジュラーロボットであるスマート膜７００の、１つの一般的な実施の形態を示す概略図である。この膜７００は、複数のロボットモジュール７１０を備える。この一般的な実施の形態では、スマート膜７００は、外部オブジェクト７２０及び７３０を形状によって分類する。オブジェクト７２０は正方形であり、オブジェクト７３０は丸である。
【０１３８】
膜７００は、複数の壁７４２を含むワールド７４０内に配置される。この膜７００全体の目的若しくは機能は、正方形のオブジェクト７２０には膜７００を通過させ、丸のオブジェクト７３０には膜７００を通過させないようにすることである。正方形と丸の両方の外部オブジェクト７２０及び７３０は、膜の上方から、即ち膜７００の第１サイド７０２上において、膜７００と接触する。この膜７００は、正方形のオブジェクト７２０にはワールド７４０の底部へ向けて通過させ、丸のオブジェクト７３０には膜７００の第２サイド７０４を通過させないように、自己構成する。
【０１３９】
このスマート膜７００のフィルタリング性能は、その構成要素であるロボットモジュール７１０の単純な動きから成る。様々な一般的な実施の形態では、モジュール７１０は、膜７００全体が所望の動作を行うために各モジュール７１０が取る必要のある動きを決定する、中央処理装置（図示せず）によって制御される。次に、この情報は、関係するモジュールに伝搬される。この中央処理装置は、いずれの既知の若しくはこれから開発される処理デバイスであってもよい。
【０１４０】
その他の様々な一般的な実施の形態では、膜７００の制御は、分散制御パラダイムに基づいて行われる。分散制御に関し、各モジュール７１０は、それぞれ独自のプロセッサを有しており、センサ及び他のモジュールとのインターアクションによって供給される情報を用いて、次に取る動きを決定する。
【０１４１】
様々な一般的な実施の形態では、各モジュール７１０は、同じ制御プログラムを実行しており、膜全体の適切なフィルタリング動作は、このプログラム、センサ読取り値、及び他のモジュール７１０との通信により決定される、個々のモジュール７１０の動作から成る。
【０１４２】
モジュール７１０は全て、それらの制御プログラムを実行するが、個々のセンサ値、内部状態、及び隣接したモジュールから受信したメッセージに依って、様々に動作する。
【０１４３】
この制御プログラムは、遺伝プログラミング法から生成することができ、この遺伝プログラミング法としては、例えば、本明細書中に援用される、２０００年７月７日に出願された米国特許出願番号第０９／６１１，３９５号に開示されている方法が挙げられるが、これに限定されるわけではない。その他の様々な一般的な実施の形態では、この制御プログラムは、いずれの既知の若しくはこれから開発される学習プログラミング法によって生成されてもよい。また、この制御プログラムは、いずれの予め定義されたプログラムであってもよい。
【０１４４】
遺伝プログラミングとは、解決する問題の記述レベルが高くても、その問題を解決するコンピュータプログラムを生成することのできる、進化計算法である。遺伝プログラミングについては、ジョン  Ｒ．コザ(John R. Koza)による「遺伝プログラミング：自然選択の手段によるコンピュータのプログラミングについて(“Genetic Programming: On the Programming of Computers by Means of a Natural Selection”)」（マサチューセッツ州、ケンブリッジ：ＭＩＴ出版、１９９２年(Cambridge, MA: MIT Press 1992)）（これは、参照によりその全体が本明細書中に援用される）に記載されている。
【０１４５】
以下は、本発明による、制御プログラムが遺伝プログラミングにより生成される方法の、１つの一般的な実施の形態に関する説明である。遺伝プログラミングを用いてコンピュータプログラムを生成するには、解決する問題に対する目的関数、プログラムを組み立てるのに用いる１セットのプリミティブ関数、数個のパラメータ、並びに、各プリミティブ関数に対するリターンタイプ、引数の数、及び引数のタイプを、アルゴリズムに供給する必要がある。
【０１４６】
遺伝プログラミング法は、目的言語における文法的に正当なランダムプログラムの母集団を生成することにより始まる。この母集団における各プログラムの適合度は、各プログラムを実行し、そのプログラムがどんな値の目的関数を取るかを測定することによって、決定される。
【０１４７】
次に、コンピュータプログラムの既存の母集団を用いて、遺伝オペレータを用いるコンピュータプログラムの新しい母集団が生成される。この遺伝オペレータは、コンピュータプログラムの適合度に応じて適用されることによって、より適合するプログラムがより頻繁に用いられて、新しいコンピュータプログラムが生成される。つまり、より適合するプログラムがより頻繁に選択されて、次の世代における新しいコンピュータプログラムの生成に対する「親」となる。
【０１４８】
用いられる遺伝オペレーションは、交差オペレーション、突然変異オペレーション、及びクローニングオペレーションである。
【０１４９】
交差オペレーションは、２つの適合度選択された「親」コンピュータプログラムのパーズツリー表現を取り出して、この２つの親間においてランダムに選択されたサブツリーを交換することにより、２つの新しい「子」プログラムを生成する。
【０１５０】
突然変異オペレーションは、１つの適合度選択されたコンピュータプログラムのパーズツリー表現を取り出し、そのサブツリーのうちの１つをランダムに選択し、そのサブツリーをランダムに生成された新しいサブツリーと交換する。
【０１５１】
クローニングオペレーションは、１つの適合度選択されたコンピュータプログラムを取り出し、そのコピーを生成してプログラムの新しい母集団に含める。
【０１５２】
前の母集団に対し遺伝オペレーションを行うことによって完全に新しい母集団が生成されると、前と同じように、新しい母集団における各プログラムの適合度が適合度／目的関数を用いて測定される。
【０１５３】
プログラムの新しい母集団を生成してそれらの適合度を測定するこの処理は、最適な値の適合度関数を取るコンピュータプログラムが発見されるまで、又はこの処理が終わるまで繰り返される。この処理の結果、コンピュータプログラムは、最良の値の適合度関数を有する。
【０１５４】
１つの一般的な実施の形態では、各モジュールユニットに対して進化されたコンピュータプログラムを実行して、模擬ワールドにおけるモジュラーロボットスマート膜のシミュレーションを制御することにより、適合度関数を計算する。この計算された目的関数の値は、そのモジュラーロボットが目標タスクに対してどのぐらい良く機能したかということを測定したものである。例えば、この適合度関数は、いくつの外部オブジェクトが膜を越えて正確に分類されるかを測定したものであってもよい。この適合度関数が測定する各プログラムの特性は多数あってもよい、ということは認識されるべきである。これらのプログラムは、評価された特性に基づいて比較され、どのプログラムが目標に対する最良の解決法を有しているかが判定される。さらに、所望の目標に対する最良のプログラムを決定するには、いずれの既知の若しくはこれから開発される多目的最適化方法を用いてもよい、ということも認識されるべきである。
【０１５５】
適合度関数（若しくは目的関数）は、解決されている特定のタスク若しくは目標に対する遺伝プログラミングシステムに供給されなければならない。様々な一般的な実施の形態では、通常、この関数は、個々のモジュールが良く機能するほど、その適合度の値が低くなるように定義されている。この適合度関数の一例としては、誤って受容される不適切オブジェクトの数と、膜により誤って拒絶される適切オブジェクトの数とを合計したものがある。また、この適合度関数としては、問題を解決するのにかかる時間や、問題を解決するのに用いられる電力量などのような事項に関する、不利益も挙げられる。
【０１５６】
各モジュールにおける各分散コントローラは、ワールドにおけるモジュラーロボットのシミュレーションを実行することにより評価される。この評価において、各モジュールは、独自の分散コントローラコピーによって制御される。このシミュレーションは、全ての壁及びオブジェクト、並びに、ワールドにおける各ロボットモジュールの位置を含む、ワールドの状態を追跡する。
【０１５７】
一例である実施の形態では、シミュレーションの各ターンにおいて、ロボットモジュールがそれぞれ１度に１つずつ実行される。別の実施の形態では、ロボットモジュール全てが同時に実行される。このシミュレーションは、ターンの予め特定された最大数分、或いはコンピュータ時間の予め特定された最大量分、或いは何か他の予め定義された停止条件が満たされるまで実行される。
【０１５８】
進化されたコンピュータプログラムを構成するプリミティブ関数は、遺伝プログラミングシステムに供給される。様々な一般的な実施の形態では、設計者がこのプリミティブ関数を供給する。その他の様々な一般的な実施の形態では、別のコンピュータプログラムがこのプリミティブ関数を供給する。プリミティブ関数を供給できる方法は他にも多数あり、この方法としては、例えば、モジュールの関数を決定するためにモジュールを照会し、その照会の結果に基づいてプリミティブ関数を生成する、プログラムが挙げられるが、これに限定されるわけではない、ということは認識されるべきである。
【０１５９】
様々な一般的な実施の形態では、各プリミティブ関数のインプリメンテーションが、遺伝プログラミングシステムに供給される。様々な一般的な実施の形態では、各プリミティブ関数のリターンタイプ及びパラメータタイプも供給される。このプリミティブ関数の例としては、演算関数、ブール関数、ループ構成体、条件関数などがある。様々な一般的な実施の形態では、ロボットモジュールのセンサ、内部状態、及びモータにアクセスするためのプリミティブ関数も用いられる。
【０１６０】
様々な一般的な実施の形態では、進化されたコンピュータプログラムに対する言語が定義される。様々な一般的な実施の形態では、この言語は、その言語に対する明示的なＢＮＦ文法を供給することにより定義される。また、この言語は、その言語における各プリミティブ関数のリターンタイプ及びパラメータタイプを特定することによっても定義することができる。この場合、そのセット全体のプリミティブ関数のタイプを一緒に特定すると、その言語に対する暗示的な文法が定義される。
【０１６１】
様々な一般的な実施の形態では、遺伝プログラミングシステムに供給されるパラメータとして、以下のものが挙げられる。
ａ．母集団の大きさ（即ち、考えられているプログラムの数）
ｂ．交差、突然変異、及びクローニングオペレーションを行う割合
ｃ．生成するコンピュータプログラムの最大深さ（即ち、母集団の最初の大きさ以外は、この制約条件が、生成されるプログラムの数の大きさを制御する）
ｄ．ランの初めにおいてランダムに生成するコンピュータプログラムの最大深さ
ｅ．突然変異に対して生成するサブプログラムの最大深さ
ｆ．適合度評価の際に用いるコンピュータ時間若しくはシミュレーションステップの最大量
【０１６２】
上に挙げたａ〜ｆのパラメータは特定の値に設定する必要はない、ということは認識されるべきである。さらに、アルゴリズムを用いて、人間が一切介入することなくこれらのパラメータを自動的に決定してもよい、ということも理解されるべきである。
【０１６３】
この方法は、各モジュールにおいて実行されると共に、プログラム可能なスマート膜全体に所望の分類動作を行わせることのできる、プログラムを出力する。
【０１６４】
以下の説明は、本発明によるモジュラーロボットスマート膜の１つの一般的な実施の形態に関するものである。しかし、本発明によるモジュラーロボットスマート膜は、その他多数の実施の形態を含んでいてもよい、ということは認識されるべきである。
【０１６５】
図１６は、本発明による制御プログラムを生成する方法の、１つの一般的な実施の形態を示すフローチャートである。図１６は、本発明の１つの実施の形態の特定関数を示しているが、別の実施の形態では、より多くの又はより少ない関数を用いてもよい、ということは認識されるべきである。本発明の１つの実施の形態では、図１６に示したステップ／関数は、ソフトウェアプログラム、ソフトウェアオブジェクト、ソフトウェア関数、ソフトウェアサブルーチン、コードフラグメント、ハードウェアオペレーション、ユーザオペレーションを、単独で又は組み合わせて表してもよい。
【０１６６】
この方法は、ステップＳ８００で始まり、ステップＳ８０５に進む。このステップＳ８０５では、本明細書中に説明したように、複数のソフトウェア関数が得られる。ステップＳ８１０では、本明細書中に説明したように、この複数のソフトウェア関数のうちの１セットがランダムに選択されて、問題を解決するための第１の複数のソフトウェアプログラムが提供される。
【０１６７】
ステップＳ８１５では、本明細書中に説明したように、適合度関数が用いられ、それぞれの適合度関数の値を計算することにより、第１の複数のソフトウェアプログラムが評価される。様々な一般的な実施の形態では、適合度関数はユーザによって供給される。
【０１６８】
ステップＳ８２０では、本明細書中に説明したように、第１の複数のソフトウェアプログラムから、そのそれぞれの適合度関数の値に基づいて、第２の複数のソフトウェアプログラムが選択される。様々な一般的な実施の形態では、この第２の複数のソフトウェアプログラムは、第１の複数のソフトウェアプログラムの複写ソフトウェアプログラムを含む。
【０１６９】
ステップＳ８２５では、本明細書中に説明したように、交差、突然変異、及びクローニングのような遺伝オペレーションを単独で又は組み合わせて行うことにより、第２の複数のソフトウェアプログラムが変更される。
【０１７０】
ステップＳ８３０では、別の複数のプログラムを構成するかどうか、即ち、新しい世代若しくは母集団を形成するかどうかという決定が成される。
【０１７１】
新しい世代のソフトウェアプログラムが望まれる場合、この方法はステップＳ８１５に戻り、ステップＳ８１５〜Ｓ８２５が繰り返される。そうでない場合には、この方法はステップＳ８３５に進み、このステップＳ８３５では、本明細書中に説明したように、適合度関数が最も低いモジュールのソフトウェアプログラムが、制御プログラムとして選択される。
【０１７２】
図１７は、複数のロボットモジュール９１０を備えるモジュラーロボットスマート膜９００の、１つの一般的な実施の形態を概略的に示している。この膜９００は、色に基づいて、オブジェクトをフィルタリングする。オブジェクト９２０は第１の色を有し、オブジェクト９３０は第２の色を有する。この第２の色は、第１の色以外であれば、いずれの色であってもよい。オブジェクト９３０の第２の色は、全てが同じ色でなくてもよい。
【０１７３】
膜がそのセンサ、処理、及びメモリ性能を用いることによって計算することのできるものであれば、いずれのセットの特性も、フィルタリングの基準として用いることができる、ということは理解されるべきである。
【０１７４】
この一般的な実施の形態では、オブジェクト９２０及び９３０は、ロボットモジュール９１０一個分の大きさである。しかし、このオブジェクト９２０及び９３０は、ロボットモジュール９１０一個分より大きくても小さくてもよい、ということは認識されるべきである。
【０１７５】
まず、オブジェクト９２０及び９３０が、スマート膜９００の上部に置かれる。膜９００は、第２の色を有するオブジェクト９３０が膜９００の上方に残り、第１の色を有するオブジェクト９２０がワールド９４０の底部へ移動するように、自己再構成する。様々な一般的な実施の形態では、膜９００は、フィルタリング後、初期位置に近い位置に戻る必要があるが、膜内の個々のモジュール９１０は、元の位置に近い位置に戻らなくてもよい。
【０１７６】
この一般的な実施の形態では、モジュラーロボットスマート膜９００に対する制御ソフトウェアを進化させるのに用いられる模擬ワールド９４０は、一辺が１０ユニットの正方形である。この一般的な実施の形態では、この壁ユニットは、モジュールユニット９１０と同じ大きさである。しかし、その他の様々な一般的な実施の形態では、この壁ユニットの大きさは様々であってよい、ということは理解されるべきである。この一般的な実施の形態では、ワールド９４０は、１０2＝１００グリッド位置に分けられる。このワールド全体の周辺グリッド位置は、ロボットモジュールが通過することのできない壁境界オブジェクトを含む。
【０１７７】
この一般的な実施の形態では、各ロボットモジュール９１０は、ワールド９４０における１つのグリッド位置を占める正方形をしている。ロボットモジュールの状態としては、ワールドにおけるその位置、８方向それぞれにおいて隣接するロボットモジュールから受信した最も新しいメッセージの値、そのレジスタの値、センサの現在値、及びモジュールの正面方向が挙げられる。
【０１７８】
この一般的な実施の形態では、方向は、[0.0, 1.0]における実数値としてコード化される。方向0.0はロボットモジュール９１０の正のｘ軸であり、方向値は反時計回りに増加していく。各ロボットモジュール９１０によって用いられるこの方向値は、各モジュール９１０の基準枠９１２に対してローカルな値である。通常、ロボットモジュール９１０の正面方向は方向0.0であり、例えば、方向0.25は正面方向から左に９０度の方向である。その他の様々な一般的な実施の形態では、この方向値はとびとびではなく連続している。
【０１７９】
センサには３つのタイプがあり、１つは壁を検出するためのセンサ、１つは他のロボットモジュールを検出するためのセンサ、１つは外部オブジェクトを検出するためのセンサである。モジュールはそれぞれ、各タイプのセンサを８つ有しており、この８つのセンサは、異なる方向に向いている。このセンサの８方向とは、0.0＝東、0.125＝北東、0.25＝北、0.375＝北西、0.5＝西、0.625＝南西、0.75＝南、0.875＝南東である。これらのセンサの値は、[0.0, 1.0]における輝度の単位で示される。この輝度は感知された物までの距離の逆数であって、0.0は物が全く感知されなかったことを意味し、1.0は物がグリッド位置のすぐ近くで感知されたことを意味する。
【０１８０】
ロボットモジュール９１０は、互いに相関して移動することができる。この一般的な実施の形態では、モジュール９１０は、東、北、西、南の４方向に移動する。この実施の形態では、個々のロボットモジュール９１０は、隣接したロボットモジュール９１０に対しスライドすることによって移動する。この一般的な実施の形態では、ロボットモジュール９１０は、そのモジュールに対し動作方向から９０度の角度で隣接する、別のロボットモジュール９１０に沿ってそのモジュール自体を押し付けることにより移動する。同様に、ロボットモジュール９１０は、そのモジュールに対し動作方向において斜めに隣接する、別のロボットモジュールを引っ張ることができる。このタイプの移動を伴うモジュールは、ジョン・ホプキンス大学(Johns Hopkins University)で実施されてきた。これについては、アミット  パメカ(Amit Pamecha)、イム  エバート−アップホフ(Imme Ebert-Uphoff)、グレゴリー  エス．チリキアン(Gregory S. Chirikjian)による「モジュラーロボット動作プラニングのための有用なメートル法(“A Useful Metrics for Modular Robot Motion Planning”)」（ロボット及びオートメーションに関するＩＥＥＥ会報、５３１〜５４５頁、第１３巻、第４号、１９９７年８月(IEEE Transactions on Robots and Automation, pp 531-545, Vol. 13, No. 4, August 1997)（これは、参照によりその全体が本明細書中に援用される）を参照されたい。この一般的な実施の形態に関しては、パメカにより開示されたモジュールに、感知、通信、及び処理性能が追加されている。
【０１８１】
この一般的な実施の形態では、ロボットモジュール９１０は、異なるタイプの移動を開始することによって、膜９００を再構成する。この一般的な実施の形態では、モジュール９１０の移動タイプとして、単独移動とライン移動とがある。
【０１８２】
図１８(ａ)〜(ｃ)はそれぞれ、３つに分かれたステップにおいて、時間の経過に伴う２つのモジュール９１０ａ及び９１０ｂの単独移動を示している。この単独移動とは、１つのモジュールの移動である。この単独移動は、移動ロボットモジュール９１０が、「ｘ」及び「ｙ」で識別された空きグリッド位置に移動している場合に有益である。
【０１８３】
図１９(ａ)、(ｂ)は、２つのステップにおいて、時間の経過に伴う１ラインのロボットモジュール９１０ｃのライン移動を示している。このライン移動とは、ライン全体のロボットモジュール９１０ｃの移動である。このライン移動は、ラインにおける一番前のモジュール９１０ｄが、「ｗ」で識別された空きグリッド位置に移動している場合に有益である。ライン移動は、１ラインのロボットモジュールにおけるいずれのロボットモジュール９１０によって開始されてもよい。
【０１８４】
この一般的な実施の形態では、オブジェクト９２０及び９３０は、ロボットモジュール９１０と同じ大きさの非動作モジュールである。しかし、これらのオブジェクトは、ロボットモジュール９１０と同じ大きさでなくてもよく、大きさにばらつきがあってもよい、ということは理解されるべきである。ロボットモジュール９１０は、他のロボットモジュールに対してできるのと同じように、これらの非動作モジュールを押したり引いたりすることができる。
【０１８５】
以下の論議は、前述した一般的な膜の制御プログラムを進化させる、１つの一般的な実施の形態に関するものである。この一般的な実施の形態では、個々のプログラムの適合度は、２４の模擬ワールドにわたる適合度の加重平均として計算される。個々のプログラムの適合度は、複数の模擬ワールドにわたる適合度の加重平均として計算される。その他の様々な一般的な実施の形態では、個々のプログラムの適合度は、１つの模擬ワールドに基づいていてもよい、ということは認識されるべきである。
【０１８６】
この一般的な実施の形態では、各模擬ワールドの初期状態は、スマート膜のモジュールが、左壁９４６から右壁９４８へ８ユニット分延び且つ垂直方向において中心に位置する長方形に配列された状態に、設定される。この実施の形態では、２４の模擬ワールドのうちの１２においては、膜９００はモジュール９１０三個分の高さを有しており、その他の１２においては、膜９００はモジュール９１０四個分の高さを有している。各モジュール９１０は、正面方向を有している。この一般的な実施の形態では、各モジュール９１０の正面方向と、モジュール９１０のプログラムが実行される順序とは、各ワールドに対してランダムに決定される。これらの要素は予め定義若しくは予め設定されてもよい、ということは認識されるべきである。
【０１８７】
適合度を測定するのに用いられる各模擬ワールドには、膜９００の上部に置かれたフィルタリングされるオブジェクト（第１の色を有するオブジェクト９２０或いは第２の色を有するオブジェクト９３０）も含まれる。膜９００の目標は、オブジェクトをフィルタリングすることによって、第２の色を有するオブジェクト９３０が膜９００の上方に残り、第１の色を有するオブジェクト９２０が膜９００を通過して膜９００の下方に来るようにすることである。
【０１８８】
この一般的な実施の形態では、オブジェクトの可能水平位置の代表サンプルが、２４の適合度ワールドに含まれている。これらのワールドのうちの６つにおいては、膜の上方に最初に現れるオブジェクトは、第２の色を有するオブジェクト９３０であり、この場合、オブジェクト９３０は全く移動する必要がない。その他の１８のワールドにおいては、膜の上方に最初に現れるオブジェクトは、第１の色を有するオブジェクト９２０であり、膜９００は、このオブジェクト９２０を膜９００の反対側へ通過させなくてはならない。
【０１８９】
特定ワールドに対する個々のプログラムの適合度を評価するには、プログラムが、その模擬ワールドにおける各モジュールに対して導入される。次に、ロボットモジュール９１０が、１度に１つずつ順番にそのプログラムを実行する。この一般的な実施の形態では、個々のモジュール９１０によってプログラムを実行する順序は、その特定ワールドに対してランダムに選択される。ロボットモジュールによるプログラムの実行全てのシーケンスが、シミュレーション「ターン」である。この一般的な実施の形態では、特定プログラムの適合度は、１０のシミュレーションターン毎に、この適合度により与えられる値を平均することによって決定される。この実施の形態では、適合度の値が低いほど良く、この個々のプログラムが進化される次の世代において子孫を有しやすくする。
【０１９０】
この一般的な実施の形態に関しては、この適合度の値は、２つの測定値の加重和である。第１の測定値は、膜９００に対するオブジェクト９２０又は９３０の位置である。第２の測定値は、膜９００の現在の絶対位置である。その他の様々な一般的な実施の形態では、この適合度の値は、２つより多い又は少ない測定値に基づいていてもよい、ということは認識されるべきである。
【０１９１】
第１の測定値は、オブジェクト９２０又は９３０からモジュール９１０までの垂直方向寸法における平均オフセットにより、最も望ましくない変位の一部として決定される。例えば、このオブジェクトが第１の色を有するオブジェクト９２０である場合、この項は、オブジェクト９２０が膜モジュール９１０全ての下方に来るように再構成することにより、最小化することができる。この項は、確実に各オブジェクトが適切な最終位置に来るようにする効果を有する。
【０１９２】
第２の測定値は、膜９００の開始位置の水平方向中心軸９５０からの各モジュール９１０の平均絶対変位により決定される。この測定値は、オブジェクト９２０又は９３０がフィルタリングされている間に、膜９００の元の構造及び位置をそのままに保持できないプログラムを不利にする。
【０１９３】
１つの一般的な実施の形態では、進化工程の間に生成される各分散コントローラプログラムは、以下に示すＢＮＦ文法により定義される言語の正当なインスタンスである。この一般的な文法では、開始記号は<program>である。
言語文法：
【外１】
0004427940.tif 000002
【０１９４】
以下は、上の一般的な関数の説明である。
Ａ．(sendMessage message direction)
この関数は、送信モジュールの基準枠に関し、方向directionにおいて、その送信モジュールから（もしあれば）隣接したモジュールへ、実数値メッセージmessageを送信する。このdirectionは、mod 1と解釈され、次に、最も近い８方向のうちの１つに丸められて、隣接した８つのグリッド位置のうちの１つを示す。この関数は、送信されたメッセージの値を戻す。
【０１９５】
Ｂ．(readMessage direction)
この関数は、その送信モジュールから相対方向directionに位置する（もしあれば）その隣接したモジュールからの、その実数値メッセージを読み取る。このdirectionは、mod 1と解釈され、次に、最も近い８方向のうちの１つに丸められて、隣接した８つのグリッド位置のうちの１つを示す。この関数は、読み取られたメッセージの値を戻す。
【０１９６】
Ｃ．(rotate direction)
この関数は、direction量だけロボットモジュールを回転させる。これは、モジュールを物理的に動かすのではなく、ロボットモジュールの内部正面方向の内部状態を再設定するだけである。この関数は、directionの値を戻す。
【０１９７】
Ｄ．(setRegister index value)
この関数は、indexからvalueまで番号付けされたロボットモジュールのレジスタの値を設定する。この関数は、valueを戻す。
【０１９８】
Ｅ．(getRegister index)
この関数は、indexを番号付けされたロボットモジュールのレジスタの現在値を得る。この関数は、レジスタの値を戻す。
【０１９９】
Ｆ．(readSensorSelf direction)
この関数は、自己センサの輝度の値を読み取る。この輝度は、相対方向directionにおける最も近いロボットモジュールまでの距離の逆数である。この輝度は、その方向にロボットモジュールが無い場合、０である。この関数は、輝度の値を戻す。
【０２００】
Ｇ．(readSensorWall direction)
この関数は、壁センサの輝度の値を読み取る。この輝度は、相対方向directionにおける壁若しくは障害物までの距離の逆数である。この輝度は、その方向に壁若しくは障害物が無い場合、０である。この関数は、輝度の値を戻す。
【０２０１】
Ｈ．(readSensorExternalObject direction)
この関数は、外部オブジェクトセンサの輝度の値を読み取る。この輝度は、相対方向directionにおける外部オブジェクトまでの距離の逆数である。この輝度は、その方向に外部オブジェクトが無い場合、０である。この関数は、輝度の値を戻す。
【０２０２】
Ｉ．(getTurn)
この関数は、シミュレーションに対する「ターン」変数の現在値を戻す。この「ターン」変数は、シミュレーションの初めでは０に設定され、ロボットモジュール全てが実行される毎に増加する。
【０２０３】
Ｊ．(protectedDivide operand1 operand2)
この関数は、両方のオペランドを評価して、オペランド２で割ったオペランド１を戻す。オペランド２が０の場合、この関数は１を戻す。
【０２０４】
Ｋ．(protectedModulus operand1 operand2)
この関数は、両方のオペランドを評価して、オペランド２で割ったオペランド１の実数値剰余を戻す。オペランド２が０の場合、この関数は１を戻す。
【０２０５】
Ｌ．(if condition expression1 expression2)
この関数は、ブールのconditionを評価する。このconditionが真である場合には、expression1が評価されて、その値が戻される。このconditionが偽である場合には、expression2が評価されて、その値が戻される。
【０２０６】
Ｍ．(progn expression1 expression2)
この関数は、expression1及びexpression2を評価して、expression2の結果を戻す。
【０２０７】
Ｎ．(moveLine direction)
この関数は、１ライン全体のロボットモジュールを、それらが移動可能であれば、相対方向directionに移動させる。この移動するラインのロボットモジュールは、現在のロボットモジュールの相対方向directionにおいて、現在のロボットモジュールと同一直線上にあるラインのモジュールである。このラインのモジュールは、ラインにおける一番前のロボットモジュールが移動不可能な壁若しくは障害物によって遮られていない場合且つその場合に限り、並びに、これらのモジュールを押したり引いたりすることのできる別のロボットモジュールがそのラインに隣接してある場合、移動することができる。この関数は、そのラインのモジュールが移動可能である場合には真を、そうでない場合には偽を戻す。
【０２０８】
Ｏ．(moveSingle direction)
この関数は、現在のロボットモジュールを、それが移動可能であれば、相対方向directionに移動させる。このモジュールは、その他のいずれのオブジェクトにも遮られていない場合且つその場合に限り、並びに、このモジュールを押したり引いたりすることのできる別のロボットモジュールがそのモジュールに隣接してある場合、移動することができる。この関数は、そのモジュールが移動可能である場合には真を、そうでない場合には偽を戻す。
【０２０９】
Ｐ．(and operand1 operand2)
この関数は、両方のオペランドを評価し、そのオペランドの両方が真である場合且つその場合に限り真を、そうでない場合には偽を戻す。
【０２１０】
Ｑ．(less operand1 operand2)
この関数は、両方のオペランドを評価し、operand1がoperand2よりも少ない場合真を、そうでない場合には偽を戻す。
【０２１１】
Ｒ．(isFirst color direction)
この関数は、方向directionにおいて、このモジュールのすぐ隣に第１の色をしたオブジェクトがある場合には真を、そうでない場合には偽を戻す。
【０２１２】
Ｓ．(isSecond color direction)
この関数は、方向directionにおいて、このモジュールのすぐ隣に第２の色をしたオブジェクトがある場合には真を、そうでない場合には偽を戻す。
【０２１３】
実験結果
図１７に示された膜のこの一般的な実施の形態は、以下のパラメータを用いて評価された。
・母集団の大きさ＝７２，０００個体
・交差オペレーションを行う割合＝９９．０％
・突然変異オペレーションを行う割合＝１．０％
・クローニングオペレーションを行う割合＝０．０％
・生成するコンピュータプログラムの最大深さ＝９
・ランの初めにおいてランダムに生成するコンピュータプログラムの最大深さ＝５
・突然変異に対して生成するサブプログラムの最大深さ＝４
・適合度評価の際に用いるコンピュータ時間の最大量＝無限
・シミュレートするターンの数＝１０
【０２１４】
この実施の形態の制御プログラムに対する有効な解は、評価／ランの３２世代目に現れた。この解は、４９のプリミティブ関数参照と３２の実数値定数とから構成されていた。この解の動作が、シミュレーション中の時系列順に３つの時点、つまり、初期段階、中間段階、及び後続段階における、１つの初期ワールド状態に関して、それぞれ図２０(ａ)〜(ｃ)に示されている。図２０(ｃ)に示されているように、一時移送チャネル９８０が、モジュラーユニットの移動によって形成される。この制御プログラムの記号列表現は、以下のとおりである。
【外２】
0004427940.tif 000003
【０２１５】
このプログラムは、１０×１０のワールドを含み、膜の高さが３及び４であり、１度に１つのオブジェクトがフィルタリングされる、１つの一般的な実施の形態に関して進化されたが、ソフトウェアは、非常に多様な高さ及び幅を有する長方形に配列された何百ものモジュールから構成される、その他の一般的な実施の形態の膜に関して作動するように基準化する、ということは認識されるべきである。また、このソフトウェアは、同時に複数のオブジェクトも好適にフィルタリングする。例えば、図２１に示されているように、プログラムは、膜の高さがモジュール８個分であり、６つのオブジェクト（膜の上部に沿って均等に離間された、第２の色を有する３つのオブジェクト１３３０及び第１の色を有する３つのオブジェクト１３２０）がフィルタリングされる、６４×６４のワールド１３４０における、膜１３００の４９６個の各ロボットモジュール１３１０に対して導入されると、好適に機能した。図２１は、フィルタリング完了後におけるこの一般的な実施の形態を、概略的に示している。
【０２１６】
様々な一般的な実施の形態では、スマート膜は、その所望の機能を実行しながら、又は接触するオブジェクトを待機しながら、能動的に移動するように、プログラムすることができる、ということは認識されるべきである。例えば、スマート膜のモジュールユニットは、膜の上面を揺動させることによって、この上面が上下して、フィルタリング、分類、又は吸収されるオブジェクトと接触するように、プログラムされてもよい。様々な一般的な実施の形態では、この揺動は正弦波形の動きである。
【０２１７】
本発明によるスマート膜のその他の一般的な実施の形態、及び本発明によるロボットモジュール以外のタイプのモジュールユニットがある、ということも認識されるべきである。さらに、本発明は、例えば部品分類機（これに限定されるわけではない）のようなマクロ規模から、例えば物質を精製する化学的用途や生化学及び生物医学的用途（これらに限定されるわけではない）のようなナノメートル規模まで、様々な用途において用いられてもよい。
【０２１８】
また、本発明のスマート膜は、例えばオブジェクトを組み合わせたり分解したりというような他の使用法に適用可能である、ということも認識されるべきである。
【０２１９】
本発明を、以上略述した特定の実施の形態に関して説明してきたが、当業者には、多数の代替物、変更物、及び改造物が明らかであろう、ということは明白である。従って、以上説明したような本発明の好適な実施の形態は、例示を意図するものであって、限定を意図するものではない。本発明の趣旨及び範囲を逸脱しない限り、様々な変更が行われてもよい。
【図面の簡単な説明】
【図１】オブジェクトをフィルタリングする本発明によるスマート膜の、１つの一般的な実施の形態を示す概略図である。
【図２】オブジェクトをフィルタリングする本発明によるスマート膜の、１つの一般的な実施の形態を示す概略図である。
【図３】オブジェクトをフィルタリングする本発明によるスマート膜の、１つの一般的な実施の形態を示す概略図である。
【図４】オブジェクトを二方向にフィルタリングする本発明によるスマート膜の、一般的な実施の形態を示す概略図である。
【図５】オブジェクトを二方向にフィルタリングする本発明によるスマート膜の、一般的な実施の形態を示す概略図である。
【図６】オブジェクトを二方向にフィルタリングする本発明によるスマート膜の、一般的な実施の形態を示す概略図である。
【図７】オブジェクトを分類する本発明によるスマート膜の、一般的な実施の形態を示す概略図である。
【図８】オブジェクトを分類する本発明によるスマート膜の、一般的な実施の形態を示す概略図である。
【図９】オブジェクトを分類する本発明によるスマート膜の、一般的な実施の形態を示す概略図である。
【図１０】オブジェクトを吸収する本発明によるスマート膜の、一般的な実施の形態を示す概略図である。
【図１１】オブジェクトを吸収する本発明によるスマート膜の、一般的な実施の形態を示す概略図である。
【図１２】オブジェクトを吸収する本発明によるスマート膜の、一般的な実施の形態を示す概略図である。
【図１３】本発明による一般的なスマート膜のモジュールユニットの１つの一般的な実施の形態を示すブロック図であり、この実施の形態では、モジュール制御回路はモジュールユニット内に配置されている。
【図１４】本発明による一般的なスマート膜のモジュールユニットの別の一般的な実施の形態を示すブロック図であり、この実施の形態では、モジュール制御回路はモジュールユニット内に配置されていない。
【図１５】本発明によるモジュラーロボットスマート膜の、１つの一般的な実施の形態を示す概略図である。
【図１６】本発明によるスマート膜のモジュールユニットに対するソフトウェアプログラムを構成する、１つの一般的な実施の形態を示すフローチャートである。
【図１７】本発明によるモジュラーロボットスマート膜の、別の一般的な実施の形態を示す概略図である。
【図１８】  (ａ)〜(ｃ)は、一般的なロボットモジュールの単独移動を示す概略図である。
【図１９】  (ａ)、(ｂ)は、一般的なロボットモジュールのライン移動を示す概略図である。
【図２０】  (ａ)〜(ｃ)は、オブジェクトのフィルタリングの初期段階、中間段階、及び後続段階における、図１７のスマート膜を示す概略図である。
【図２１】本発明によるモジュラーロボットスマート膜の、別の一般的な実施の形態を示す概略図である。
【符号の説明】
１００、２００、３００、４００、７００、９００、１３００    スマート膜
１１０、２１０、３１０、４１０、５００、６００、７１０、９１０、１３１０    モジュールユニット（ロボットモジュール）
１２０、１３０、２２０、２３０、３２０、３３０、４２０、４３０、７２０、７３０、９２０、９３０、１３２０、１３３０    オブジェクト
１４０、２４０、３４０、４４０、９８０    一時移送チャネル
５１２、６０２    信号／データバス
６１２    リンク
７０２    膜の第１サイド
７０４    膜の第２サイド
７４０、９４０、１３４０    ワールド
７４２    壁
９１２    基準枠
９４６    左壁
９４８    右壁
９５０    中心軸
【図１】
0004427940.tif 000004
【図２】
0004427940.tif 000005
【図３】
0004427940.tif 000006
【図４】
0004427940.tif 000007
【図５】
0004427940.tif 000008
【図６】
0004427940.tif 000009
【図７】
0004427940.tif 000010
【図８】
0004427940.tif 000011
【図９】
0004427940.tif 000012
【図１０】
0004427940.tif 000013
【図１１】
0004427940.tif 000014
【図１２】
0004427940.tif 000015
【図１３】
0004427940.tif 000016
【図１４】
0004427940.tif 000017
【図１５】
0004427940.tif 000018
【図１６】
0004427940.tif 000019
【図１７】
0004427940.tif 000020
【図１８】
0004427940.tif 000021
【図１９】
0004427940.tif 000022
【図２０】
0004427940.tif 000023
【図２１】
0004427940.tif 000024