(57)【要約】  複数のコンピュータ実装セルを備えたヘテラキカルデバイスコントロールシステムが提供され、少なくとも一つのセルは、予め定められたタスクを実行するために、被制御デバイスに、該デバイスにとってネイティブな言語で命令を伝達するように構成されたソフトウェアを有するコントロールセルであり、少なくとも一つのセルは、前記タスクの実行を容易にするためにコントロールセルに入力するセンサデータを発生するように構成されたセンサセルであり、このセンサデータは、例えば、デバイスの位置、移動速度、上昇角度等の環境関連のデータであり、これらのセル間で送信されるメッセージは、共通のフォーマットに従って形成され、該フォーマットは、例えば、高レベルのプログラミング言語、低レベルのプログラミング言語又はプロトコルであり、このような構成により、故障に対する耐性が高く、拡張性及び自律性を有するコントロールシステムが得られる。【選択図】  図４
2015518597.tif 000002
【特許請求の範囲】
【請求項１】
複数此のコンピュータ実装セルを備えたヘテラキカルなデバイスコントロールシステムであって、
少なくとも一つのセルは、予め定められたタスクを実行するように、被制御デバイスにネイティブな言語で該デバイスに指令を伝達するように構成されたソフトウェアを有するコントロールセルであり、
少なくとも一つのセルは、前記タスクの実行を容易にするために、前記コントロールセルに入力するセンサデータを発生するように構成されたセンサセルであり、
これらのセル間で送信されるメッセージは、共通のフォーマットで構成されているデバイスコントロールシステム。
【請求項２】
前記共通のフォーマットは、高レベルのプログラミング言語、低レベルのプログラミング言語又はプロトコルである請求項１に記載のデバイスコントロールシステム。
【請求項３】
前記センサデータは、前記デバイスの周囲環境に関係している請求項１又は２に記載のデバイスコントロールシステム。
【請求項４】
前記セル内で実行されるソフトウェアは、如何なるソフトウェアプラットフォームにも依存しない請求項１ないし３の何れかに記載のデバイスコントロールシステム。
【請求項５】
少なくとも一つのセルは、前記デバイスに内蔵又は保持されている請求項１ないし４の何れかに記載のデバイスコントロールシステム。
【請求項６】
前記センサセルは、前記コントロールセルとは異なるセルである請求項１ないし５の何れかに記載のデバイスコントロールシステム。
【請求項７】
前記デバイスにネイティブな言語は、前記共通のフォーマットとは同一ではない請求項１ないし６の何れかに記載のデバイスコントロールシステム。
【請求項８】
前記デバイスにネイティブな言語は、前記共通のフォーマットと同一である請求項１ないし７の何れかに記載のデバイスコントロールシステム。
【請求項９】
前記センサセルは、あるパラメータを測定するように構成されたセンサである請求項１ないし８の何れかに記載のデバイスコントロールシステム。
【請求項１０】
前記センサセルは、コンパス、ＧＰＳデバイス、タッチセンサ、カメラ又は温度センサである請求項１ないし９の何れかに記載のデバイスコントロールシステム。
【請求項１１】
前記ソフトウェアは、ランタイム時に少なくとも一つのセルに付与される請求項１ないし１０の何れかに記載のデバイスコントロールシステム。
【請求項１２】
前記ソフトウェアは、他のセルから与えられるか又はユーザーから直接与えられる請求項１ないし１１の何れかに記載のデバイスコントロールシステム。
【請求項１３】
前記ソフトウェアは、ランタイム時より前に少なくとも一つのセルに与えられる請求項１ないし１２の何れかに記載のデバイスコントロールシステム。
【請求項１４】
前記複数のセルのそれぞれは、前記予め定められたタスクを実行するためにランタイム時にユーザーからの入力を必要としないように、前記システムが自律性を有している請求項１ないし１３の何れかに記載のデバイスコントロールシステム。
【請求項１５】
前記システムは、複数の被制御デバイスを備え、各デバイスは、少なくとも一つのコントロールセルと、各デバイス内に組み込まれるが又は外から接続される少なくとも一つのセンサセルを備えている請求項１ないし１４の何れかに記載のデバイスコントロールシステム。
【請求項１６】
セルのクラスタ（集合体）が、クラスタコントロールセルとの間で情報のやりとりを行うために、セルのロジカルな連合体を形成するように構成され、前記クラスタは、予め定められたタスクを実行するように構成されている請求項１ないし１５の何れかに記載のデバイスコントロールシステム。
【請求項１７】
前記クラスタは、複数のセンサセル及び／又は複数のコントロールセルを備えている請求項１６に記載のデバイスコントロールシステム。
【請求項１８】
前記クラスタコントロールセルは、前記クラスタ内のセルの動作を連係させるように構成されたソフトウェアを備えている請求項１６又は１７に記載のデバイスコントロールシステム。
【請求項１９】
前記クラスタコントロールセルは、前記クラスタ内のセルに命令を伝達するように構成され；及び／又は、
前記クラスタ内のセルは相互間で情報の伝達を行うように構成され；及び／又は、
前記クラスタ内のセルが発生したデータが前記クラスタ内の他のセル及び／又は他のクラスタコントロールセルに伝達されるように構成されている、
請求項１６ないし１８の何れかに記載のデバイスコントロールシステム。
【請求項２０】
複数のクラスタが設けられて、該複数のクラスタにより、論理的なスワーム（logical swaram）が形成され、少なくとも一つの通信経路が前記複数のクラスタ相互間に設けられている請求項１６ないし１９の何れかに記載のデバイスコントロールシステム。
【請求項２１】
予め定められたタスクを実行するために前記クラスタ（複数）の動作を連係させるように構成されたソフトウェアを備えたスワームコントロールセルが設けられている請求項２０に記載のデバイスコントロールシステム。
【請求項２２】
前記スワームコントロールセルが有するソフトウェアは、前記クラスタコントロールセル及び／又は各クラスタ内の他のセルと通信を行うように構成されている請求項２１に記載のデバイスコントロールシステム。
【請求項２３】
前記複数のクラスタの内の少なくとも２つのクラスタは、互いに物理的に接続されるか、又は他のクラスタから物理的に分離している請求項２０ないし２２の何れかに記載のデバイスコントロールシステム。
【請求項２４】
システムアーキテクチャーが、共通のフォーマットで通信を行う複数の自律性を有するセルの拡張可能な連合体を含み、各セルが低レベルのタスクを実行することにより、複数のセルが論理的に結合されてより高レベルのタスクを実行するように構成されている請求項１ないし２３の何れかに記載のデバイスコントロールシステム。
【請求項２５】
少なくとも一つのデバイスを制御する方法であって、請求項１ないし２４の何れかに記載されたデバイスコントロールシステムを用意するステップと、該システムに指示を与えるステップと、該システムを構成するステップ及び／又は該システムを運営するステップとを備えたデバイスコントロール方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、デバイスコントロールシステム（Device Control System）に関するものである。特に、本発明は、あるタスクを達成するために、自律性を有する複数のセル（cells）が、単独でも集合的にも機能する、ヘテラキカルな（heterarchical）コントロールシステムに関するものである。
【背景技術】
【０００２】
デバイスコントロールシステムは、他のデバイスの動作を管理するか、又は他のデバイスの活動に影響を及ぼす複数のデバイスからなっている。コントロールシステムは、種々の応用分野、特に物理量を一連の入力パラメータに応じて変化させることが必要とされる種々の応用分野に関する多くの産業において有用であることが分かっている。有用であることが分かっている応用分野は、無線アンテナを地球に向けて正確に向けることが必要とされる宇宙開発から、自動化された製造工程におけるロボットアームの操作にまで及ぶ。
【０００３】
近年、ハイスピードで低コストなコンピュータ技術が、種々の用途に用いるコンピュータ実装コントロールシステム（デジタルコントロールシステム）の発展をもたらしてきた。更に、小形のマイクロコンピュータが、制御すべきデバイスに組み込まれるいくつかのコントロールシステムを生み出してきた。このようなコントロールシステムでは、デバイスの振る舞いを決める意思決定システムで計算や他の動作を実行するために、内部で実行されるソフトウェアが、センサから得られる計測値を用いる。またネットワーク技術及び分散型のコンピュータ技術の進歩も、ネットワークコントロールシステム（ＮＣＳ）の発展をもたらしてきた。このようなシステムでは、制御信号及びフィードバック信号が、遠隔通信又はコンピュータネットワークを通して移動する情報パッケージの形で、システムのコンポーネント間でやりとりされる。
【０００４】
通常、コントロールシステムは、以下の４つの基本的なコンポーネントを備えている。
１．センサー（複数）：計測されたデータ及びコントローラが必要とする周囲の情報を取得する。
２．コントローラ：センサから得たデータに基づいて種々の決定を行ってアクチュエータにコマンド（命令）を与える。
３．アクチュエータ：コントローラにより与えられた命令を実行する。
４．通信ネットワーク：コントロールシステム間で情報の交換と命令(instructions）の交換とを容易にする。
【０００５】
これらのコンポーネントを既知のコントロールシステムに結び付けるために、システムのアーキテクチャー(system architecture）に関して、種々のアプローチが採用されている。システムのアーキテクチャーの分野では、ヒエラルキー（hierarchy:階層構造）という用語と、ヘテラルキー（heterarchy）という用語とがよく知られている。これらの語は、異なるデータフロー（data flows)を有する異なるアーキテクチャーを指す語であると理解されている。
【０００６】
ヒエラキカル(階層構造的）コントロールシステム
図１に、典型的なヒエラキカルコントロールシステムが示されている。
【０００７】
出願時における、ウィキペディア（Wikipedia）の「ヒエラルキー」の項目のところには、次のように記載されている。
「ヒエラルキー（階層構造）は、複数の要素（目的，名前、値、カテゴリー等）が、相互間で『上位』にあるか、『下位』にあるか又は『同レベル』にあるかによって表わされる、要素の配列である。ヒエラルキーは、抽象的には、根付き木（rooted tree）構造で数学的にモデル化することができる。 根付き木構造では、木の根が、トップレベルを形成しており、所定の頂点(vertex)を有する子達が、共通の親の下で、同一のレベルにある。
ヒエラルキー（階層構造）では、複数の要素を、直接又は間接的に、及び垂直又は水平にリンクする（結ぶ）ことができる。大形の階層構造を有するシステムでは、他の階層構造が組み込まれることもあるが、階層構造である限り、階層構造内で直接リンクするのは、直属の上位要素か、又は直属の下位要素だけである。あるパスをたどり、複数のリンクを経由して、間接的な階層構造的リンクが、上方又は下方に向って、『縦方向に』延びることもあり得る。縦方向にリンクされることがない階層構造のすべての要素は、直接的又は間接的な上位要素を見出すために、階層構造を上方に移動した後、下方に移動することにより、あるパスを通して『水平方向に』リンクすることができる。これは、二人の仕事仲間、即ち同僚と同じようなものである；二人の同僚は、それぞれが共通の上司に報告をするが、二人が相互に有する権限は同等である。階層構造と代替的で、かつ相補的な組織形態が存在する。ヘテラルキーはそのような形態の一つである。」
【０００８】
システムのアーキテクチャーに関して、最も広く採用されるコントロールシステムアーキテクチャーとして一般的に認められているのは、階層構造的な構成の仕方である。前述のように、階層構造的なシステムは、ツリー構造として理解することができる。ツリー構造では、ツリーの各レベルにある各ノード（複数）が独立に動作して、それぞれの親ノード（ツリーのより上位のノード）から伝達されるタスクを実行し、次いでそれぞれの子ノード（ツリーのより下位のノード）がタスクを実行することを要求する。ツリーの頂部には、トップレベルのノードがある。このノードは、システム内の活動を監督するセントラルコントローラである。ツリーの底部には、末端ノード（「リーフ」ノード）がセンサーやアクチュエータとして実装されている。ツリーにおける各中間レベルは、手順及び／又はデータを抽象化する他のレイヤーと同等である。
【０００９】
階層構造的システムにおけるデータフローは、トップダウンである。従って、階層構造的システム内におけるセルコントローラ（ロジカルブロック用の制御機能を実行する中間レベルのノード）は、階層構造の更に上位にあるシステムコンポーネントに従属して働く。セルコントローラは、単一の親ノード（parent node)からタスクを受け取って、自らの権限で子ノード(child nodes)に向けてコマンドを出力する。セルコントローラは、子ノードから受け取った結果をツリーをさかのぼってより高位のノードに伝達する。
【００１０】
しかしながら、階層構造的システムは、システムコンポーネントの数，即ちノードの数が多くなったときに、非常に複雑になることがある。ノードのレベルまたはツリーのブランチ（branch）が追加される毎に（例えば、ショップの備品の数が増加したときに），抽象化層のより高位のレベルで情報伝送量（information traffic）が増加させられる。結果として、セントラルコントローラにかかる負担が大きくなりすぎることがあり、システムは、刺激に対して応答する際に失敗したり、応答が遅れたりすることが比較的高い確率で起こり易い状態におかれることがある。ある種のアプリケーションにおいては、階層構造的モデルの故障が高い確率で起こったり、障害に対する耐性が低かったりすることは許されない。中間レベルの制御ノードが一つでも故障すると、そのノードより下位のすべての機能が動作不能な状態になってしまう。
【００１１】
階層構造的システムの公知例には、ＥＰ２２４４１４８Ａ１、ＷＯ  ００／５７３６７、ＵＳ２００４／２３０９８０Ａ、ＵＳ５１８９６２４Ａ、ＵＳ４８９６０８７Ａ及びＧＢ２２５１３１６Ａ が含まれる。これらに開示された構成のすべては、それぞれの構造及びデータフローが完全に階層構造的である。更に、これらの公知の構成のそれぞれは、ナノレベルというよりはマクロレベルで動作し、本来的に障害に対する耐性を有しない。
【００１２】
階層構造に関しては、階層構造的アーキテクチャーについての上記の記述、即ち、「階層構造において、直接リンクするのは、直属の上位要素又は直属の下位要素だけである。」という記述に注意しておくことが重要である。システムアーキテクチャー及びシステムデザインの分野の当業者は、この点をよく認識しているであろうし、またこれが、下記に説明するヘテラキカルなアプローチのアーキテクチャーと対照をなすものであることをよく理解しているであろう。
【００１３】
ヘテラキカル（又は「分散型」）コントロールシステム
典型的な、ヘテラキカルコントロールシステムのアーキテクチャーが、図２に示されている。
【００１４】
出願時に検索された、ウィキペディアの‘ヘテラルキー（heterarchy)’の項目には、下記の記載がある。
「ヘテラルキーは、重複性（overlap),多重性（multiplicity），混合支配的（mixed ascendancy）及び（または）発散的（divergent）であるが共存的な（coexistent）関係を有する形態を備えた組織からなるシステムである。ヘテラルキーは、階層構造（hierarchy）とパラレルであってもよく、階層構造に組み込まれてもよく、また複数の階層構造を包含していてもよい。これら２種類の構造は、相互に排他的ではない。実際、階層構造的なシステム内の各レベルは、その構成要素を含むヘテラキカルなグループにより構成し得る。ヘテラルキーは、関連している要素のグループにおいて、任意の要素のペアーが２以上の異なる方法で関係づけられる可能性がある状態である。階層構造では、グループを、漸次より小さいカテゴリーと、更に下位のサブカテゴリーとに分けるのに対し、ヘテラルキーでは、現れたり消えたりする多数の関連事項に従って、大局的な視点から、グループを種々に分割したり結合したりする。重要なことであるが、ヘテラキカルなシステムを分割する、ある一通りの方法だけが、システム像全体を分割する（又は網羅する）方法になり得ることはない。各方法による分割は、明らかに不完全なものであり、多くの場合、分割が不完全であると、理解者としての我々は、事例を分割する新しい方法を試みる気にさせられることになる。」
【００１５】
このようなことから、ヘテラキカルな制御アーキテクチャーでは、セントラルコントローラを取り除いて、対等な地位で解決策を見出して解決に向けて協調するローカルな自律的コンポーネント（即ち「セル」）で置き換える。このようにして、セントラルコントローラにプランニングと処理動作とを実行させる代わりに、これらのタスクに対する責務を、ヘテラキカル構造全体に分散させる。
【００１６】
セルコントローラは、互いに協働してグローバルなタスクを遂行するために必要なローカルな決定を行うセル相互間で起こる情報の流れの大部分を管理する。
【００１７】
完全に階層構造的なシステムに関して、セル間の通信が実行できない程にビジー（busy）になって停滞状態を招くと、この問題を解決するための指示を行うコンポーネントがないことに起因して、かち合う情報のパケットが互いに通過することができなくなるという批判がある。また大形のヘテラキカルシステムに関しても、セルのフラットな構造に起因して、上記のことが、レスポンスの遅れと、情報の流れの効率の低下とを招くことがある。
【００１８】
ハイブリッドコントロールシステム
ハイブリッドな、ヒエラキカル／ヘテラキカルコントロールシステムが、シー・オウ・ヤング及びジェイ・エス・リン著「ジョブの発送における入札方法に適用するハイブリッド・ヒエラキカル／ヘテラキカル・ショップフロアーコントロールシステム」（ロボット及びコンピュータを活用した生産，第１４巻、第３号、１９９８年７月  １９９ページないし２１７ページ）（ C. Ou-Yang and J.S. Lin, "The development of a Hybrid Hierarchical/Heterarchical Shop Floor Control System Applying a Bidding Method in Job Dispatching" (Robotics and Computer-Integrated Manufacturing, Volume 14, Issue 3, June 1998, pp 199 to 217)に提案されている。 この公知のハイブリッドシステムのアーキテクチャーが図３に示されている。
【００１９】
このハイブリッドモデルにおいては、ヘテラキカル／ヒエラキカル・アプローチの混成アプローチが採用される。このアプローチでは、ショップフロアーコントローラ（shop floor controller）にグローバルなタスクに対する責務が与えられ、各セルコントローラは、各セルの生産計画を決定することが許される。セルコントローラは、セルのレベルに関係するタスク（例えば，関連するデバイスにオペレーションタスク（operation task）を与えるジョブを取得するタスク、又はプロセスを監視するタスク）を実行する。これに対し、セントラルコントローラは、オーダーの発生、セル間の通信の処理、及び障害や異常事態への対応等、設備のより広い領域に影響を与える、よりハイレベルのタスクに対する責務を引き受ける。
【００２０】
このアーキテクチャーを実行するために、「競り」過程が採用される。この「競り」過程では、セントラルコントローラが、各セルコントローラに、各タスクに関係するデータを「アナウンス（公表)）する。このとき各セルコントローラは、自らが利用し得るリソース（資源）に基づいてタスクの実行について「入札」を行う。タスクは、最も低い入札価格で（負担や起こり得る障害を最も少なくした状態で）、ショップフロアーコントローラによる要求通りに実行されることになる。
【発明の概要】
【発明が解決しようとする課題】
【００２１】
障害に対する耐性に関して、図３を参照する。図３は、第１のラインで、大形のＣＮＣマシンに障害が発生していることを示している。このとき、第１のラインは、ジョブに関するデータを他のセル（複数）に送信する。このとき各セルコントローラは、待ち行列内に存在する他の要素と協調してジョブを遂行するためにかかる「コスト」を計算して、このコストを、ジョブの再割り当てを行うことをタスクとしているショップフロアコントローラに戻す。しかしながら、図３から明らかなように、もしセルコントローラが正常に機能しない場合には、すべてのラインの機能が失われることになる。
【００２２】
同様の根本的な制約が、階層構造的コントロールシステムのアーキテクチャーにも、ヘテラキカキカルなコントロールシステムのアーキテクチャーにも、ハイブリッドコントロールシステムのアーキテクチャーにも存在する。即ち：
大形のコントロールシステムは、ツリーの上位のブランチで、遅延をもたらす高レベルの情報のやりとり（information traffic）を必要とし；
セルコントローラのロスは、ツリー内で下位の機能のすべてにロスを生じさせ；
コントロールシステムの構造は、設計時に決められるため、外部擾乱が生じたことを背景として動作中に変更することはできない。  
【課題を解決するための手段】
【００２３】
そこでここに、改良された解決策が提案される。
従って、本発明によれば、コンピュータが実装された複数のセルを備えたヘテラキカルなデバイスコントロールシステムが提供される。本発明のシステムは以下のように構成される：
セル間で送信されるメッセージは、共通のフォーマットに従って形成され；  
少なくとも一つのセルは、予め定められたタスクを実行するように制御されるデバイスに、そのデバイスに通用する言語で指令を伝達するように構成されたソフトウェアを備えたコントロールセルであり；
少なくとも一つのセルは、予め定められたタスクの実行を容易にするために，コントロールセルに入力するためのセンサデータを発生するように構成されたセンサーセルである。
【００２４】
従って、本発明は、少なくとも一つのデバイスの操作又は制御を容易にするために設けられて、該デバイスの操作又は制御を容易にするように構成されたセル（複数）を備えたコンピュータ実装システムを備えている。上記デバイスは、例えば、生産ラインに設けられる車輪付きの走行体や、ロボット等の任意のタイプのデバイスである。
【００２５】
システムは、独立であるが協調動作するコンポーネント（「セル」）の集合体により構成することができる。各セルにはコンピュータが実装されている。即ち、各セルは、専用のプロセッサと当該プロセッサで実行するソフトウェアとを備えている。
【００２６】
システム内の２以上のセルが、１を超える数のパスを通して相互間の通信を行うことが好ましい。
【００２７】
セルのソフトウェアは、特定の機能の実行に関する命令を備えていることが好ましい。セルの機能性は、システムの機能上の必要条件を満たすように、動作中に（オンザフライ（on the fly）で）再設定されるようになっていることが好ましい。各セルの機能性は（従って全システムの機能性も）、セルプロセッサ（単数又は複数）で実行させるために設けられたソフトウェアにより実現される。このことにより、新しい異なるタスクを遂行するようにソフトウェアが設計された他のセルを組み込むことで、及び／又は当該セルを追加することで、システムの機能性を拡張することができるという利益が得られる。
【００２８】
更に、各セルが専用のプロセッサを備えているため、処理を行うリソース（資源）が、システム全体に分散され、これにより、システムを拡張する際に、権限が集中している中央のＣＰＵにかかる負担が増大することがない、無限に規模の拡大が可能なシステムが提供される。また処理資源が分散されているという本発明の特性と、情報のやりとりをするためのパスを複数得ることができる性能とが相俟って、従来のアーキテクチャーに比べて、強化された復元性と障害に対する耐性とが得られる。
【００２９】
各セルは、予め定められたタスクを追跡して、そのソフトウェアを独立に実行するように構成されているという点で、自律性を有していることが好ましい。従って、セルは、ソフトウェア実行時に、連続した命令、入力又は操作員の介入を必要としない。
【００３０】
少なくとも一つのセルは、デバイスに内蔵しておくか、又は保持しておくことができる。システムは、デバイスに内蔵されるか、取り付けられるか、さもなければ、デバイスに接続された少なくとも一つのコントロールセルとセンサセルとを備えていることが好ましい。この場合、コントロールセルとセンサセルとは、デバイスコントローラを構成するように結合されていてもよい。
【００３１】
ソフトウェア実行時に１以上のセルにソフトウェアが提供されるようにすることができる。ソフトウェアは、例えば他のセルから提供されるか、又はユーザから直接提供される。これにより、各セルの機能を要求に応じて変更することが可能になる。
【００３２】
また他の方法として、ソフトウェアを実行する前に任意の形のメモリにソフトウェアをプリインストールしておくことにより、ソフトウェア実行前にセルにソフトウェアを与えておくようにしてもよい。ソフトウェアは、最初から組み込まれていてもよく、前の動作から保存するようにしてもよい。
【００３３】
セルは、共通のフォーマットで互いに通信を行うことができるのが好ましい。即ち、セル間でやりとりされる情報は、すべてのセルが理解し得る形で作成される。メッセージは、共通に承認されたフォーマットですべてのセルにより直接理解されて処理されるので、セルは、メッセージを受信した際に、翻訳する必要がない。
【００３４】
上記共通のフォーマットは、ある言語とすることができ、例えば、ローレベルのプログラミング言語等の人工言語とすることができる。共通のフォーマットは、マシンコード又はアッセンブリ語とすることができる。このようにすれば、２つのセルが互いに共通の言語で「話す」ことができ、他のセルが何を言っているかについて、その構文と妥当性との双方を理解することができる。
【００３５】
共通のフォーマットは、あるプロトコル（通信規約）であってもよい。例えば、コントロールセルとセンサセルとの間で送信されたデータが表現されるようなプロトコルで、両セルが通信を行うようにしてもよい。
【００３６】
低レベルのプログラミング言語（マシンコード又はアッセンブリ語）で書かれたソフトウェアは、セル内に存在するソフトウェアが機能するために、特定のソフトウェアプラットフォーム（software platform)に依存することがないようなものであることが好ましい。従って、従来のシステムと異なり、セル内にオペレーティングシステムやサポート用ソフトウェア資源を設けておく必要がない。これにより、実行速度の増大、セル内で必要とするスペース（格納スペース）の減少、及びシステムの拡張性の向上を含む数々の利点が得られる。
【００３７】
コントロールセルは、センサセルとの間で通信を行うことができるように書かれたソフトウェアを備えることができる。他のセルが必要なときにセンサデータを利用することができるようにしておくために、コントロールセルとセンサセルとの間の通信は、共通のフォーマットで行われるのが好ましい。
【００３８】
また、コントロールセルは、デバイスに命令を与えて、デバイスの動作を制御するか、又はデバイスの動作に影響を及ぼすことができるように構成されていることが好ましい。上記の命令は、コントロールセルからデバイスに共通のフォーマットで送られる。このように構成する代りに、コントロールセルがデバイスと共通フォーマットと異なるフォーマットで通信を行うようにすることもできる。この共通でないフォーマットは、デバイスに固有のものでなくてもよい。例えば、当該フォーマットは、スタンダードなＰＬＣの出力であってもよい。
【００３９】
センサセルは、デバイスが配置されている環境（environment）に関係するデータを発生する（測定及び／又は記憶する）ことができる。センサセルは、コントロールセルとは異なるセルであることが好ましい。コントロールセルは、１を超えるセンサセルと通信を行うことができるようになっている。
【００４０】
従って、デバイスコントロールシステムは、１以上のコントロールセルと、１以上のセンサセルとを備えて、デバイスの機能を管理するか、又はデバイスの機能に影響を与える。
【００４１】
センサセルは、パラメータを計測するように構成され、配置されたセンサからなっている。
複数の異なるタイプのデータを測定又は記録するために、種々のタイプのセンサセルが用意される。例えば、システムは、コンパス（方位計）、衛星を利用した測位システム（ＧＰＳ）デバイス、マイクロ波装置、カメラ、タッチセンサ、温度センサ等を備えることができる。本発明は、セル内に組み込まれるセンサの形式に限定されることを意図してはいない。
【００４２】
セル（複数）は、コントローラとセンサの単一の結合体に比べて、更に複雑で、高度化されたタスクを達成することができる更に複雑で高度化された集合体を形成するように論理的に結合されることが好ましい。従って、セルの論理的な共同体を形成するために、セルのクラスタ（cluster（集団）)が、クラスタコントロールセル（‘クラスタコントローラ’と呼ぶこともある。）と通信を行うように構成されることが好ましい。クラスタコントロールセルは、その管理下で個々のセル又はセル群の動作を連系させ、かつ他のクラスタコントローラーと通信を行うように構成されたソフトウェアを備えることができる。  
【００４３】
クラスタコントロールセルは、クラスタ（セルの集団）に通信で命令を伝達するように構成されることが好ましい。この通信は、共通のフォーマットで行われることが好ましい。またクラスタ（セル群）内のセル（複数）も相互間で通信を行うように構成されていることが好ましい。この通信も、共通のフォーマットで行われる。
【００４４】
クラスタ内のセルに蓄積されたデータは、そのクラスタ内の他のセル又はクラスタコントロールセルで利用することができることが好ましい。
【００４５】
クラスタ内の各セルが、そのデータをクラスタコントロールセル及び／又は他のセルに共通のフォーマットで通信することができるようになっていることが好ましい。
【００４６】
各セルが、そのデータをクラスタコントローラ及び／又は他のセルに繰り返し通信することができるようになっていることが好ましい。
【００４７】
上記データは、セル識別子及び／又はセンサが発生した一つのセンサデータを含んでいることが好ましい。上記データは、更に，又はセンサデータに代えて、演算結果として発生させられたデータを含んでいてもよい。 上記データは、更に、又は上記のデータに代えて、タスクの動作を容易にするためにコントロールセルが要求する他の任意のデータを含んでいてもよい。
【００４８】
手続の抽象化（procedural abstraction）のレベルを更に追加するために、更に他のセルを追加することにより、システムの機能を拡張することができるようにしておくことが有益である。そのため、システムは，複数の被制御デバイスを備えることができる。この場合、各デバイスは、内蔵されるか、各デバイスに接続されるか又は各デバイスに保持された、少なくとも一つのコントロールセルを備えることができる。複数のクラスタは、物理的に接続されていてもよく、孤立していてもよいが、相互間に１以上の通信経路を有していることが好ましい。このような制御デバイスの集合体は、「スワーム（swarm）」として知られている。
【００４９】
スワームの動作は、スワームコントロールセルにより管理される。このスワームコントロールセルは、１以上のクラスタコントローラ又は他のセルに命令を与える責務を有する。
【００５０】
スワームコントロールセルは、所定のタスクを実行するためにスワーム内に設けられたクラスタ（複数）の動作を連系(coordinate)させるように構成されたソフトウェアを備えることができる。当該タスクは、個々のセル又は低レベルのセル群により実行されるタスクよりもハイレベルのタスクである。
【００５１】
スワームコントロールセルは、１以上のクラスタコントロールセル又は他のセルからデータを受信することができる。これらのデータの通信は、共通のフォーマットにより行うことができる。
【００５２】
従って、このシステムは、共通のフォーマット（言語及び／又はプロトコル）で通信を行う自律したセル（複数）からなる拡張可能な連合体を備える。各セル又はセルのクラスタは、それらに割り当てられたタスクに対して自立性を保持していて、通信が確立したとき又は再確立したときに、タスクの割り当てに対してアップデートが可能であるため、セル間、クラスタ間又はスワーム間で通信をコンスタントに、途切れることがなく行わせることは、システムの機能にとって重要なことではない。これにより、各セルは、ローレベルのタスクを実行するように構成することができ、各セルにタスクを実行させることにより、アップデートされるまでの間、セルを論理的に結合し、抽象化層の各レベルにタスク又は一連のタスクを実行させて、クラスタ内での機能の取り合わせにより、更に高レベルのタスクを実行させることができる。
【００５３】
また、本発明によれば、少なくとも一つのデバイスを制御する方法が提供される。この方法は、ほぼ前記したような構成を有するデバイスコントロールシステムを用意し、該システムに命令を与え、該システムを設定し、及び／又は該システムを動作させるステップを備えている。
【００５４】
従って、上記の方法は、デバイスを制御する方法からなっている。この方法は、複数のセルを用意するステップを備えている。このステップにおいては：
各セルは、プロセッサと、該プロセッサで実行するソフトウェアとを備え；
セル間で送信されるメッセージは、共通のフォーマットで作成され：
少なくとも一つのセルは、予め定められたタスクを実行するためにデバイスのネイティブ言語でデバイスに通信で命令を伝えるように構成されたソフトウェアを備えたコントロールセルであり；
少なくとも一つのセルは、予め定められたタスクの実行を容易にするために該セルコントローラに入力するセンサデータを発生するように構成されたセンサセルである。
【００５５】
上述した本発明の態様及び他の態様は、以下に記載される実施形態から明らかにされ、下記の実施形態を参照して説明される。
【００５６】
以下、あくまでも一例を示す目的で、本発明の実施形態を下記の図面を参照して説明する。
【図面の簡単な説明】
【００５７】
【図１】図１は、当該技術分野で公知のコントロールシステムのアーキテクチャーを示す図である。
【図２】図２は、当該技術分野で公知のコントロールシステムのアーキテクチャーを示す図である。
【図３】図３は、当該技術分野で公知のコントロールシステムのアーキテクチャーを示す図である。
【図４】図４は、戦車の活動を管理する機能的コントロールシステムを構成するために協働するコントロールセルとセンサセルとを備えた本発明の簡単な実施形態を示した図である。
【図５】図５は、システムがスワームの一部を形成する２つの論理セル（即ち、「クラスタ」）を備えるようにシステムの機能性が拡張された本発明の実施形態を示した図である。
【図６】図６は、本発明の実施形態により制御される種々のデバイスを備えたスワームの高位置から見た斜視図である。
【図７】図７は、同じセンサセルを共有していて、それぞれのインターフェースが互いに見えるように露呈された２つのクラスタを備えた本発明の実施形態を示した図である。
【発明を実施するための形態】
【００５８】
本発明は、コンピュータ実装システムを構成するために、種々の複数の形態で構成され、かつ種々の方法で結合された複数の基本的なコンポーネント（セル）を備えている。このコンピュータ実装システムは、所定の目標を達成するために、必要に応じて（物理的にも，論理的にも）簡単な構成をとることもあれば、複雑な構成をとることもある。各コンポーネントは、固有の機能ではあるが、変わり得る機能を果たすようにプログラムされた、自律性を有するセルであって、独立的にも、集団的にも働き得るように、他のセルとデータを共有して、協働する。
【００５９】
本発明は、人体のような有機的なシステムにどこか似たところがある。全有機的システム内で、異なるセルは異なる役割を演じるが、全体として見ると、これらのセルは、共生するする実体を形成するために一緒になって働く。この類似性を更に理解すると、個々のセルのレベル、器官を形成しているクラスタ（cluster：集合体）、即ち人体のレベルのような、種々の抽象化されたレベルから人体を観察することができる。
【００６０】
本発明によれば、システムの基本構成ブロックが，コントロールセル１（以下このセルを「神経セル」と呼ぶこともある。）と、少なくとも一つのセンサセル２とを備えている。これらのセルは、制御されるべきデバイスに内蔵されるか、該デバイスに取り付けられるか、又は該デバイスに保持される。適切に構成された本発明の実施例を用いることにより、任意の形態のデバイスを制御できることに注目すべきであるが、図においては、制御されるデバイスが戦車である。このことは、図４に示されている。図４は、デバイス３（本例では、戦車の左側及び右側の無限軌道を制御するコントローラ）の動きを制御するように接続された神経セル１とセンサセル２とを示している。
【００６１】
神経セル１は、マザーボード上に設けられていて、プロセッサ４ａと、該プロセッサ上で実行されるように構成されたソフトウェアとを備えている。該ソフトウェアとこのソフトウエアと関連するデータとを記憶しておくために、メモリ５ａが設けられている。ソフトウェアを実行する間、プロセッサ４ａの動作による指示に従って、メモリ５ａからの命令及びデータの読み出しと、命令及びデータのメモリ５ａへの書き込みとが行われる。これは、図４に図示されている。
【００６２】
各神経セル１にインストールされたソフトウェアは、特定の性能を持たせることを念頭に置いて設計されているため、システムは、異なる機能性を付与するように設計された種々の神経セルを備えているが、各神経セルは、潜在的には、ランタイムの間に新しい機能性を有することができる。
【００６３】
従って、神経セル１のソフトウェアは、予め定められた目標の達成に関係する命令からなっている。これらの命令は、任意の言語又は構造化されたプログラミング言語（structual scheme）により書式設定することができる。例えば、ローレベルの人工言語により記述することができる。またその代りに、任意の他の言語、プロトコル（protocol）、規則体系(rule system)、即ちフォーマット（書式）を用いることもできる。しかしながら、以下の説明では、簡単にするために、これらの書式に対して「言語」という用語を用いる。  
【００６４】
すべてのセルは、この共通の言語を用いて互いに通信することができるため、以後、この言語を「共通言語」と呼ぶことにする。神経セル１は、該セルを使用する前に該セル内にソフトウェア及び／又は構成データをインストールしておくことにより予め構成しておいてもよく、動作時（即ちソフトウェア実行時に）神経セルにソフトウェアを送信するようにしてもよい。
【００６５】
神経セル１は、デバイス３の搭載プロセッサ（on-board processor）に命令を送信することにより、該デバイス３の動作をコントロールし、支配することができる。本発明が既存のデバイスに組み込まれている場合、神経セル１とデバイス３との間で行う上記の通信は、セル間の通信で用いる「共通言語」よりもむしろデバイスに固有の言語で行われる。代わりに、デバイスが本発明の実施形態につないで使用するように設計されている場合には、神経セルとデバイス間の通信はおそらく共通言語を用いて行われる。図４には、デバイスと神経セルとの間の通信が、一方向にのみ行われるように図示されているが、デバイスと神経セルとの間の通信は、双方向通信（即ち、神経セルは、デバイスへ送信することもでき、デバイスから受信することもできる。）であってもよく、単方向通信（即ち，神経セルからデバイスへの送信のみ）であってもよい。
【００６６】
神経セルは、デバイスと通信を行うと同時に、１以上のセンサセル２と通信を行うことができる。センサセルは、また、自らのプロセッサ４ｂとメモリ５ｂとを備えている。センサデバイスは、また、センサセルに結合されている。システムに組み込むことができるある種のセンサデバイスは、例えば、コンパス（方位計）、ＧＰＳデバイス、温度センサ、カメラ、マイクロウェーブデバイス、タッチセンサ等（これらに限られないが）を含んでいる。従って、各センサセル２は、センサが置かれている物理的状況、例えば、デバイスの現在の高度、正確な位置、周囲の大気温度等に関するデータを発生することができる。センサセル２は、計測されたデータを１以上の神経セル１に与えることにより（他のセンサセル２にも与えることにより）、システムが、「実の世界（real world）」と交流することを可能にする。これにより、データを処理して、他のセンサの意思決定プロセス又は較正（キャリブレーション）に使用することが可能になる。このことは、以下に更に詳細に説明される。
【００６７】
センサセル２は、そのデータを処理するために神経セル１に送信することができる。従って、神経セル１は、そのセンサデータに反応することができ、またシステム内の他のセンサが発生したデータをモニタすることができる。
【００６８】
センサセル２は、その関連する神経セル１と直接通信するように構成されているが、そのデータは、また、他のセル（複数）と抽象化レベル（複数）とを通して行われる通信のルーティングにより、クラスタ内の他の任意の神経セルに対しても可視化されている。
【００６９】
神経セル１及びセンサセル２は、それぞれが自らのプロセッサ４ａ，４ｂを備えていて、与えられた目的を達成するために共通の言語で通信を行うので、ユーザが絶えず介入したり、他のセルクラスタと連続的に通信を行ったりすることを必要とせずに機能することが可能な、自律性を有する構成要素を形成している。
【００７０】
更に、オペレーティングシステム、従来型のユーティリティソフト及びリソースのような支援ソフトプラットフォームを必要としない。従って、システムの構成部品は、セルのソフトウェアを実行するためにユーティリティソフトの下部層を必要としないという意味で、正しく、「プラットフォーム非異存(platform non-dependent)」である。
【００７１】
もしシステム内で新しい機能性が必要になった場合には、新しい神経セル又はセンサセルをシステムに迅速かつ容易に組み込むことができ、理論的には、無限の機能性及びシステム拡張性を得ることができる。
【００７２】
最も簡単な形態では、図４に示されているように、デバイスを制御するために、システムが、一つのセンサセル２に接続された一つの神経セル１を備えている。例えば、戦車にコンパス（方位計測）センサセル２と神経セル１とを取り付けて、コンパスセル２から受け取った出力に基づいて、タンクを常に北に向けるようにデバイスをターンさせるための命令を神経セル１に実行させることができる。このようにして、基本的構成要素を形成するために、神経セル及びセンサセルを論理的に結合することができる。
【００７３】
しかしながら、これらの基本的構成要素は、図５に示されているように、更に複雑な問題、即ちタスクに解決策を与える更に大形のシステムを構築するためにも用いることができる。例えば、１以上の神経セル１とセンサ２（即ち、セルの論理的「クラスタ」）とを管理し、連系させるために、論理的に更に高レベルのセル（以下「クラスタコントローラ」６という。）を用いることができる。クラスタコントローラ６も、また、自らのプロセッサと、メモリ及びソフトウェアとを備えていて、更に高レベルのセルから（又はユーザから直接）命令を受け取って、論理セル内で下位のセルに向けて命令を出すことができる。
【００７４】
個々のセルは、他のセル（複数）及びクラスタコントローラ６と「会話」することができる。このようなセルの集合体（clusters)は、また「スーパーセル（super cell）」と見做すことができる。スーパーセルは、オーバラップすることがあることに注目すべきである。例えば、２以上のクラスタコントローラが、同じセンサセルと相互作用をするように構成される場合には、２つのスーパーセルがそのセンサセルを共有していると見ることができる。
【００７５】
更に、個別のセルを結合してクラスタコントローラの協調の下で結合することが可能な構成要素を構成する方法と同様の方法で、更に高度のタスクを遂行するために、更に高レベルのコントローラ７を用いてクラスタを結合することができる。更に高レベルの各コントローラは、連合した異種のコントロールシステムに、他のレベルの手続上の及び／又はデータの抽象化を導入する。
【００７６】
クラスタ内でセルが発生したデータは、グループ内の他のセルにも見える状態（即ち利用可能な状態）にされ、更に、クラスタコントローラを介して、更に高レベルのクラスタにも見える状態にされる。これにより、単一のセルと同じようではあるが、更に高度な複雑性を持って機能する論理的セル（スーパーセル）を形成することが可能になる。
【００７７】
図７は、縦方向に延びる分割ラインの左側及び右側に図示された２つの別々のクラスタを示している。全体の機能は、縦方向に延びる分割ラインを通して一つにまとまった機能として見えるようにされる。この例では、データバスが一つであるため、クラスタ間のアイソレーションは、論理的であり、両クラスタは、同じセンサセルを共有しており、それぞれのインターフェースを互いに露呈させている。
【００７８】
このようにして、クラスタコントローラを使用すると、協働するセルの連合システムの構築を可能にする。連合システム内では、抽象化されたレベル（抽象化層）内で局部的に通信が行われ、各クラスタコントローラは、ローカライズされたデータの処理及び制御と、システム内で上位にある論理レイヤー(層)からの抽象化（abstraction）とを行うが、所望の目標を達成するように集合的に働く。
【００７９】
このアーキテクチャを他の抽象化レベルに適用すると、前述のようにネットワーク化されたセルの連合システムにより制御されて被制御デバイスを複数結合することが可能になり、これにより、デバイス３の「スワーム」を形成することができる。このことは、図６に示されている。スワームについての理論及びスワームの実現の仕方は、クラスタに対して既に述べものと同様である。
【００８０】
クラスタは、１以上のセルを共有していることに注目すべきである。これは、クラスタ内に付加的な通信経路を形成することになる。
【００８１】
ここで、説明のための一実施例を示す。パワーが投入された際には、すべてのセルが自分自身のことを、システム内の他のセルに「アナウンス（公表）」する。各セルは、これをきっかけとして、そのＩＤ（各セルを特定する情報）と、自分自身に関する具体的なデータと、自らの機能性及び／又は性能とを他のセルにアナウンスする。例えば、セルは、自らが神経セルであって、セル＃４０として識別される神経セルであること、及び自らは戦車の左右のトラック（無限軌道）を制御することをアナウンスする。
【００８２】
クラスタコントローラが存在する場合には、該コントローラがこれらのアナウンスを受け取って、該コントローラが受け取る更に高レベルの命令を如何にして処理するかということと、自らの下に存在するセル（複数）に基づいてこれらの命令を如何にして実行するかということとを「知る」ように、自らに命令を出す。
【００８３】
クラスタコントローラが設けられて、該コントローラが、神経セルと、コンパス、タッチセンサ、ＧＰＳセル、及び温度センサをそれぞれ有するセンサセル（複数）とをコントロールするというシナリオを想定する。これらのセルは、下記の識別子を有している。
クラスタコントローラ＝セル＃１
神経セル＝セル＃２
コンパスセル＝セル＃３
タッチセンサセル＝セル＃４
ＧＰＳ＝セル＃５
温度セル＝セル＃６
【００８４】
システムのパワーが投入されると、＃２から＃６までのすべてのセルが自分自身のことをクラスタコントローラにアナウンスして、クラスタコントローラに各セルの識別子と、各セル（のソフトウェア）が何を実行するように構成されているのかを知らせる。このようにして、クラスタコントローラは、その下に持っている機能性セルについての情報を取得する。クラスタコントローラは、その下位に存在する構成についての上記の情報を蓄積する。セル（複数）は、この情報を、共通の標準言語又はプロトコルを用いてクラスタコントローラに伝達する。  
【００８５】
ランタイムの間、各セルはそのデータをクラスタコントローラに毎秒何百回となく、さもなければ、要求されたときに「アナウンス」する。もし、特定のセルが通信に失敗した場合、クラスタコントローラは、クラスタ内のすべてのセルに、自分自身のことと、自分の性能とをアナウンスすることを求めることにより、この障害から回復することができる。もしあるセルが自分自身のこと及び自らの能力をアナウンスしないなら、クラスタコントローラは、（もし親コントローラがある場合には）その親コントローラにそのエラーについて報告することができるが、この場合でも、クラスタコントローラは、未だ動作しているセルから得た情報に基づいて、その動作を状況に適応させることができる。
【００８６】
各セルが自分自身のことをアナウンスするとき、他のすべてのセルは、そのアナウンスを傾聴する。下記の例で更に詳細に説明するように、センサの種類についてある種のローカルマッピング（local mappinng）が行われる。
【００８７】
コンパスセル（方位計測セル）は、それに搭載されている３軸の磁力計（magnetometer)と直接通信を行って、戦車の方向を算出するめに、tan、sin及びccsの値を計算する。コンパスセルは自分自身のことを、クラスタコントローラと他のセルとに繰り返しアナウンスする。例えば、「自分はセル＃３であって、私があなた達に与えるために持っている数値は７３（注：この数値は０〜６５５３５の間の任意の値をとりうる。）である。」とアナウンスする。
【００８８】
タッチセンサは、ストレインゲージ（ひずみ計）が発生する局所信号（local signal）の処理と増幅とを行って、温度（温度セルにより得られる温度）に基づいて行うことが必要とされる較正（キャリブレーション）を行う。ここで、タッチセンサが初期設定データと、０ないしフルレンジまでの歪み量（０〜１０００の歪み量）を出力すべき旨の命令と、２５℃を超える範囲では１℃当たり１を加え、２５℃を下回る範囲では１℃当たり１を減じる較正を行うべき旨の命令とを取得しているものとする。また温度センサが自らの存在をアナウンスしていて、そのセンサセルが温度を連続的に検出している状態にあるとする。要するに、センサセルが自動設定過程（auto configuration process)を行ったものとする。
【００８９】
他の実施形態においては、システムが、複数の温度センサを備えることができ、各セル内に設けられたソフトウェアは、そのセルに、複数の温度センサの内の特定の温度センサのアナウンスを聴かせるように構成されている。このようにすることにより、セル＃６（このセルは温度センサである。）に、アイテム＃５０の温度を検出していることを伝えることができ、次いで、タッチセンサに、アイテム＃５０の温度を検出すべきことを伝えることができる。このようにすると、温度セルが交換されて、そのＩＤが変わったとしても、ロジカルマッピングは、正しい状態に保持されたままであり、この変更は、システムの動作に影響を及ぼさない。従って、従来のシステムに比べて、システムの拡張性が向上させられる。
【００９０】
このようにして、コンパスセルは、「自分はセル＃３であり、自分が皆に与えるために持っている値は７３である」ことを何度もアナウンスし、タッチセンサは、「自分は、セル＃４であって、自分が皆に与えるために持っている数値は７２である」ことを数百回も自らにアナウンスする。
【００９１】
上記のことから、両センサが同じ言語を話し、同じ通信方法を用いていることを理解することができる。
【００９２】
神経セルのソフトウェアは、優先事項１として、セル＃３が言うことを聴いてその出力に特定の方法で反応し、優先事項２として、セル＃４が言うことを聴いて異なる方法でそれに反応するように構成することもできる。この場合、優先事項１のルールが満たされた場合に、次いで優先事項２のルールが評価されることになる。
【００９３】
各センサセルは、その出力毎に上記のようなルールを何百でも持つことができる。従って、システムが用いるロジックは非常に簡単であるが、複数の簡単なルールを組み合わせることにより、最下位の神経セルのレベルでも、極めてパワフルで、反応が速く、しかも自律性を有する動作を行わせることが可能になる。これにより、スケールを（無限に）拡大して，非常に強力な組織体（super organism）を得ることができる。
【００９４】
ＧＰＳセルは、自分自身のことを何度も連続してアナウンスすることにより、例えば、「私は、セル＃５で、出力は優先事項１の出力（この出力は例えば高度（高さ）である。）であり、あなた方に与えるために持っている値は６０である」ということを、連続して何度も自らにアナウンスすることにより、同様に動作することができる。この値は、0〜65535の範囲の任意の値とすることができ、その出力は、今までに供給されたコンフィギュレーションデータに基づいている。一例として、コンフィギュレーションデータが１ｋｍの高度を示す数値として４０００をセットし、海面のレベルを示す数値として0をセットし、２ｋｍの高度を示す数値として６５５３５をセットしているものとする。 これは、海面レベルから１ｋｍの範囲よりも１ｋｍから２ｋｍの範囲でより高い分解能を有する特性曲線をもたらす。これは多分、ある特定のミッションが、高度１ｋｍ〜２ｋｍの範囲で非常に精密なコントロールを必要としているからである。神経セルには、各センサから与えられる値に対する反応の仕方と、各動作指令に対して設定されている優先順位とが（ソフトウェアにより）伝えられているが、各神経セルが上記のような事情に配慮することはない。
【００９５】
続いて述べる実施例では、ＧＰＳが「セル＃５であって、出力の優先順位が２であること」等をアナウンスしているとする。この実施形態においては、ＧＰＳセルが、その出力を他のセルが出力しているなにがしかの他の値に合わせるように修正していることがあり得る。
【００９６】
この実施例は、本発明のクラスタコントローラと類似するコンポーネントがコンパス、ＧＰＳ、アクチュエータ等と直接通信を行う公知の提案（エレクトロニクスに関するもので、ソフトウェアに関するものではない）と対照的である。結果的に、公知のシステムのプロセッサは、センサを更に複雑にし、及び／又はセンサの数をおびただしく増やすことで、スケールアップを図らざるを得ない。
【００９７】
更に、公知のシステムのプロセッサは、コンパスから得られる生のデータや、ＧＰＳから得られる生データ及び各アクチュエータを制御するためのノウハウを理解しなければならない。  
【００９８】
本発明に係るシステムは、有利なことに、複数のセル（即ちクラスタコントローラの使用によりグループ化された複数のロジックセル）を追加することで簡単にスケールアップすることができる。すべてのセルは、目的と、他のセルと通信を行うためのノウハウとを有しており、システムは、自らシステム構成をすることができる。
【００９９】
本発明の有利な点を挙げると下記の通りである。
−特定の機能を果たすように特化された各神経セルは、該セルが設けられているレイヤーから得られるセンサデータの処理と、デバイスの動作を整合させるためにそのレイヤーで行う動作との双方を行うことができる；従って、セルは、デバイス関連タスクを実行するために、個別的にも集合的にも動作することができる。
−セルは自律性を有する。−ひとたび所定のタスクに対してソフトウェアを作成して、該ソフトウェアをセルのプロセッサ上で実行させるために該プロセッサにインストールした後は、更なるユーザの介入を必要としない。システムは、ソフトウェアの管理の下に、所定の目的を達成すべく、ユーザーから独立して機能することができる。
−各セルは自分自身のプロセッサを有していて、処理する負荷がシステム全体に分散されるので、責務を処理することにより、個々のセル、複数のセルのグループ又は抽象化レイヤーに過剰な負担がかかることがない。
−機能性を拡大又は調整するために、追加のセルを、モジュラー組立方式で組立てて、システムに追加することができる；その代わりに、セルのグループは、コントローラを用いることにより「クラスタ化」することができる；システムは、（理論的には）無限に大規模化することができる。
−システムは、オペレーティングシステムを必要としない点で、プラットフォーム依存性を有しない。
−システムは、システム内のどこかで生じたセルの故障の処理の仕方、該故障に対する適応の仕方及び／又は該故障からの回復の仕方に関してセルに指示を与える能力を有しているので、本質的に高い復元性を有している。
【０１００】
オウ−ヤング（Ou-Yang)及びリン(Lin)によるハイブリッド型のヘテラキカル／ヒエラーキカル・アーキテクチャーと、本発明との比較を示すと下記の通りである：
１．オウ−ヤングに開示されたシステムは、１又は２レベルのヘテラルキーシステムである。開示された方法を用いて多レベルのシステムを構築するためには、多くの設計変更と作業とを必要とする；これに対し、本発明によるシステムは、本来的に規模の拡大が可能である。
２．オウ−ヤングのセルコントローラのレベルは、本願により権利が請求されるシステムにおいて、スーパーセルを形成するために用いられるクラスタコントローラに相当する。本発明による場合、他のセルコントローラがデータを必要としたときに、該データは、該他のセルコントローラがあたかも同じスーパーセル内に存在しているかのように、本来的に見える状態に置かれる。従って本発明に係るスーパーセル（複数）は、連合体の一つの例である。このコンセプトは、データが、ヘテラルキー構造において必要とされる多くの層の全体に自然に露呈されることを可能にする。
３．図３においては、オウ−ヤングのシステムにおける第１列目の大形のCNCマシンに故障がある；このときジョブに関するデータは他のセルに送られる。このとき各セルは、その待ち行列内に存在する項目とともに、該ジョブを遂行することについての「コスト」を計算して、該ジョブを再配分するために、計算したコストをショップフロアーコントローラに送り返す。これに対し、本発明に係るシステム内で故障が生じた場合、本来的に備わった柔軟性により、故障したスーパーセルにつながるインターフェースとともに他のすべてのスーパーセルが見えるように露呈される。従って、そのような状況での動作を制御するためのソフトウェアに最初のコンフィギュレーションデータ（configuration data）が組み込まれている場合には、ジョブを再配分する必要がない；故障を有するスーパーセルは、自動的にそのジョブを他のスーパーセル内のデバイスに渡すことができるので、スーパーセルはあたかも大規模のセルであるかのように働く。
４．図３において、オウ−ヤングのセルコントローラは、オペレーティングシステムがインストールされて、多数のバックグラウンドタスクが実行される大形のコンピュータサーバである。オペレーティングシステムは、優先順位の処理について必要とされるタスクを実行する。
しかしながら、本発明による場合、セルが最も単純なレベルで存在していて、優先順位はタスクを管理する必要があるレベルでのみ処理されるので、コントロールシステムは、上記の点に関しては、大幅に低いレベルで処理を行う。従って、本発明によれば、信じられないほど簡単なセルを用いて、我々の自然環境に類似した、パワフルで複雑な問題解決手段を構成することが可能になる。これに対し、図３は、優れたヘテラルキー構造を示してはいるが、同構造は、大形で複雑な複数のセル間のヘテラルキー構造であるので、セルレベルでの柔軟性の点で劣っている。もし、図３に示されたオウ−ヤングのセルコントローラが故障した場合には、故障点より下流側ですべての機能が失われることになる。
【０１０１】
要約すると、本発明の構成要素は、非常に規模が小さく、構成が簡単なロジックユニットであって、本発明によれば、自律性を有する個々のセルを用いることにより自然に得られる柔軟性を持った大形でヘテラキカルな連合制御システムを迅速かつ容易に構成することができる。これは、比較的大形のプロセッサや、追加のメモリ資源や、仮想化技術や、大形のサーバーを組み込むことにより、個々の欠点を解決する公知の方法とは対照的である。このような公知の従来技術に関する文献例には、ＥＰ２２４４１４８Ａ１、ＷＯ  ００／５７３６７、ＵＳ２００４／２３０９８０Ａ、ＵＳ５１８９６２４Ａ、ＵＳ４８９６０８７Ａ及びＧＢ２２５１３１６Ａ が含まれる。
【０１０２】
更に、自己治癒性を有し、事故点をバイパスすることを許容する多重の通信経路がコントロールシステム全体に亘って存在することにより、故障に対して高いレベルの耐性が得られる。従来の制御システムアーキテクチャーを用いたのでは、多くの余分なコンポーネントを用意して、システムの複雑性と管理経費とを更に増大させることによってしか、上記のようなことを実現することはできない。
【０１０３】
公知の方法と本発明の方法との間の違いを示す他の観点は、本発明の構成要素をよく見ると、マクロレベルからミクロレベルまで同じデータフローチャートが観察されるということである。これに対し、従来技術のシステムを観察した場合、ロジックのフローは、各レベル（階層）毎に非常に異なっている。
【０１０４】
上記した複数の実施形態は、本発明を限定することを示すものではなく、むしろ、当業者が、添付のクレーム（特許請求の範囲）により定義される発明の範囲から逸脱することなしに、多くの代替的な実施形態をデザインすることができることを示すためのものであることに注目すべきである。例えば、本発明は、下記の点に限定されるべきではない：
システムにより制御されるデバイス（単数又は複数）の種類；
センサセル内で用いるセンサデバイスの種類；
コントロールシステム又はコントロールシステム内で用いられる特定のソフトウェアの  種類；  
システム内に設けられたセルの数又はクラスタの数。
【０１０５】
請求の範囲において、括弧内に示された参照符号は、クレームを限定するものとして解釈されるべきではない。「備えている（comprising)）、「備える（comprises）」等の語は、クレーム又は明細書全体に挙げられた他の構成要素及びステップ（過程）を備えることを排除するものではない。本明細書において、「備える（comprises)）の語は、「含む(including)」又は、からなる(consists of)」を意味し、「備えている（comprising)）の語は、「含んでいる(including)又は  からなっている(consisting of)」を意味する。構成要素の一つだけに言及している場合でも、該言及が、該構成要素を複数備えることを排除するわけではない。逆の場合も同じである。本発明は特定の構成要素をいくつか備えたハードウェアにより実施されてもよく、適正にプログラムされたコンピュータにより実施されてもよい。複数の手段が列挙された装置クレームにおいて、該複数の手段は、一つの同じハードウェア部品により具体化されてもよい。異なる従属クレームで特定の手段が挙げられているという事実があったとしても、この事実だけで、有利な効果を得るためにこれらの手段を組み合わせて用いることができないということになるわけではない。
【図１】
2015518597.tif 000003
【図２】
2015518597.tif 000004
【図３】
2015518597.tif 000005
【図４】
2015518597.tif 000006
【図５】
2015518597.tif 000007
【図６】
2015518597.tif 000008
【図７】
2015518597.tif 000009
【国際調査報告】
2015518597.tif 000010
2015518597.tif 000011