例示の目的のため、本書において記載され、描かれたシステムおよび方法は、主要目的として、ユーザを楽しませる目標を有する玩具の脈絡において、構造物を組み立てる移動エージェントに言及する。しかしながら、当業者は、本明細書において記載された技術が構造物を組み立てる、感情を表示する、協力する、競争する、および/または他の行動を行うことができる移動エージェントを充当することが役立つもしくは望ましいかもしれない多くの様々な脈絡および環境に適用され得ることが分かるであろう。その結果、本明細書において記載された技術は、このような脈絡または環境であれば適用できることが意図され、本明細書において提示された具体的な実施に限定されることが意図されていない。
その上、以下の説明は、単独で、または、種々の組み合わせで実施され得る多くの様々な概念、特徴、およびメカニズムを明記する。当業者は、種々の実施形態が適当であればどんな組み合わせでも使用するこのような概念、特徴、およびメカニズムのうち1つまたは複数を使用して実施され得ることが分かるであろう。
以下の説明の目的のため、用語「コンポーネント」は、ある程度の数の様々なタイプの個々のブロックおよび/またはその他の要素のうちいずれにも適用することが意図されている。より詳細に後述されるように、コンポーネントは、受動的、準能動的および能動的の3タイプのうち1つに属するものとして分類され得る。さらに、用語「ブロック」または「コンポーネント」の使用は、限定的なものとして考えられるべきではなく、特に、コンポーネントが従来のブロックの概念と適合する幾何学的形状もしくは組成に矛盾しない形で現れなければならないことを強制しない。たとえば、作業面は、従来のブロック形状と似ている可能性は低いが、役割および機能の観点で、作業面は、後述されるように、受動コンポーネントタイプのカテゴリに含まれる。さらに、後述されるように、移動エージェントは、コンポーネントの一種であると考えられ得る。
分類の観点で、コンポーネントを3つのコンポーネントタイプに分割することは、クラス内の一貫性およびクラス間の区別を議論するのに便利な順序付けおよび参照記号を提供するが、しかしながら、このような分類は、選択的であり発明の範囲を限定するように考えられるべきではない。より詳細に後述されるように、コンポーネントの種々の分類は、コンポーネント相互に関連して、および、全体的なシステムの範囲内でコンポーネントの役割、ならびに、システム全体としての特質を理解するのに役立つことがある特有の特性および違いがある。
システムの種々の要素は、単一のシステムの組立の範囲内で動作する統合フレームワークの観点で見ることができる。少なくとも一実施形態において、システムは、種々のタイプと、コンポーネント自体の構造物を構築するタスクを課され得る自律性および機能性の程度とからなるコンポーネントを含む可能性がある。1人または複数のユーザが所望の完成設計図を提供することによって、および/または、(ブロックのような)コンポーネントを運ぶおよび置く能力がある移動エージェントに指示する高水準命令を提供することによって、および/または、個々のエージェントの別々の行動を直接的に制御することによってこの活動に参加することがある。
種々の実施形態において、ユーザ(群)は、適当な通信メカニズム、および/または、ユーザインターフェースメカニズムを使用して、システムと、および/または、個々のエージェントと相互作用できる。少なくとも一実施形態において、システムは、たとえば、タブレットコンピュータ、スマートフォン、および/または、その他のモバイルコンピューティング装置のような適当な装置(または2台以上の装置)を介して、ユーザと移動エージェントとの間に堅牢なインターフェースをサポートする。少なくとも一実施形態において、タッチベースの画面インターフェース、または、その他の直接マニピュレーションインターフェースがサポートされるが、その他のタイプのユーザインターフェースが使用される可能性がある。代替的な実施形態において、たとえば、音声入力、テキストベース入力、マウス入力、ジョイスティック入力などのようなその他のタイプのインターフェースメカニズムがサポートされ得る。このような入力メカニズムは、適当な出力メカニズム(群)、および/または、フィードバックと共に、グラフィカル(または非グラフィカル)インターフェースを提供するために使用され得る。システムのエージェントは、適当な、および、所望の自律性の程度で、および/または、適当な、および、望ましいユーザ制御の水準の下で動作することができる。
少なくとも一実施形態において、システムは、マットのような作業面を含む。マットは、移動エージェントが移動エージェント上の(光センサのような)センサを用いて自分の位置を決定するために使用することができるロケーション情報をエンコードする機械読み取り可能なコード601、またはマークが付けられることがある。
今度は図18を参照すると、数台の移動エージェント104が、一実施形態により、作業面407上の(ブロックとして示された)種々のコンポーネント402を操作する過程にある実施例が示される。この実施例から分かるように、種々の移動エージェント104は、互いに協働して稼働することがあり、代替的に、これらは、互いに別々に稼働することがあり、または、互いに干渉および/または競争することさえある。コンポーネント402のマニピュレーションは、構造物の組立、破壊、もしくはその他の適当なマニピュレーションと共に含む可能性がある。コンポーネント402は、より詳細に後述されるように、多くの様々な形をとる可能性があり、ブロックである必要はない。
図18は、面407およびコンポーネント402と関連してエージェント104の相互作用および挙動のいくつかの実施例を描き、これらの実施例の多くは、本明細書においてより詳細に記載される。図18の実施例において、一部のコンポーネント402は、ブロック供給エリア1801に保持され、このエリアから、エージェント104は、組立プロジェクトのため必要に応じてコンポーネント402を取ることができる。エージェント104Gは、供給エリア1801から、組立プロジェクトが進行中である構築エリア1803までコンポーネント402Nを運ぶ過程にある。少なくとも一実施形態において、表面407は、通行用および構築用の明確なゾーンを画定するマーキングまたはコードを含むことがあるので、このようなエージェント104Gは、このようなやり方で402Nのようなコンポーネントを運搬するときに通行回廊を使用するかもしれない。
さらなる実施例として、図18は、シザースリフト104H(これ自体がエージェント104Jによって動作させられるツールでもよく、または、これ自体がエージェントでもよい)を使用して、コンポーネント402Pをそうでなければ高すぎて届かない列に置くエージェント104Jを描く。図18は、機能的なドアとして実施された能動コンポーネント402G(能動コンポーネントは、さらに後述される)をさらに描く。本実施例において、能動コンポーネント402Gのドアは、能動コンポーネントが信号能動コンポーネント402Hを受信するときに開くことができ、このコンポーネント402Hは、物体(たとえば、エージェント104またはその他のコンポーネント402)が閾値距離の範囲内で検出されたときに信号を送信する距離センサとして実施される。たとえば、反射光、超音波、Bluetooth近接などのような近接または動き検出のための適当なメカニズムが使用され得る。本実施例において、コンポーネント402Mを運ぶために協働するエージェント104L、104Mは、コンポーネント402Hの距離センサを作動させ、コンポーネント402Hに物体の検出を示す信号を放射させる。コンポーネント402Gのドアは、開くことによって応答し、エージェント104L、104Mが構造物の中へ進入することを許す。
図18は、物理環境とこの物理環境の仮想モデルとの間に矛盾を生じさせることがあるコンポーネント402の崩壊を検査するエージェント104Nをさらに示す。より詳細に後述されるように、システムは、たとえば、検出された物理環境の状態に基づいて仮想環境を調整することによって、または、(たとえば、エージェント104および/またはコンポーネント402を動かすことにより)物理的調整を行うことによって、このような検出された矛盾に反応して、物理環境を仮想環境に適合させることができる。
少なくとも一実施形態において、移動エージェント104は、互いに対する、および/または、面407に対する各々の相対的なロケーションを突き止めるために、互いに通信することがある。少なくとも一実施形態において、面407は、保管および開梱を便利にするため巻き込み式または折り畳み式マットとして実施され、代替的に、面407は、曲げられないことがあり、または、ある程度の数の連結部品を有することがある。
作業面407は、(ブロックのような)コンポーネント402が操作され、組み立てられることがあるエリアを提供することを意図されている。少なくとも一実施形態において、作業面407は、一旦配備されると、コンポーネント402を組み立てるため実質的に平坦なエリアを提供する。しかしながら、少なくとも一実施形態において、特殊な面が提供される必要はなく、コンポーネント402は、フロア、テーブル、またはその他の利用可能な従来とおりの面の上で操作され、組み立てられることがある。その上、少なくとも一実施形態において、システムは、作業面407の限界を越えるコンポーネント機能性を実現し易くする。他の実施形態において、コンポーネント構成は、可変面を受け入れることができ、たとえば、作業面407は、種々の高さにある相互接続された区別できる平坦な(および/または平坦ではない)エリアに広がる可能性がある。
例示の目的のため、作業面407は、マーキングなしの無地の矩形面として図18において示されている。しかしながら、少なくとも一実施形態において、作業面407は、機会読み取り可能なコードおよび/またはその他のマーキングを含むことがある。今度は図14を参照すると、機械読み取り可能なコード601を含む作業面407の実施例が示されている。本実施例において、面407は、六角格子を含み、しかしながら、当業者は、その他のタイプの格子もしくは全く格子のないその他の配置構成が可能であることが分かるであろう。その上、コード602は、どのような適当な形でもとることができ、図14に示された特有のコード601に似ている必要はない。
受動コンポーネント402
今度は図4を参照すると、作業面407の上に、ブロックとして実施され、少なくとも一実施形態によるいくつかのコンポーネントタイプの特性でもある典型的な外観を有する受動コンポーネント402Aから402Dのいくつかの実施例が示されている。図4は、二股タイプのホイスト403を装備した移動エージェント104の実施例をさらに描く。
受動コンポーネント402は、機能的に自動力のない要素を含む。このようなコンポーネントの一実施例は、立方体、直方体、またはその他の適当な形状でもよい自動力のないブロックである。これらの要素は、これらの要素をシステム内の他の要素に役立つようにさせるマークを有することがあり、および/または、これらの要素は、構造的な役割を果たすことがある。概して、受動コンポーネントは、状態を変えることができない。
種々の実施形態において、受動コンポーネント402に関する関連データは、コンポーネント4に貼り付けられた、印刷された、または近接して配置された機械読み取り可能なコードの形式を含む、適当なやり方で記憶および/またはエンコードされる可能性があり、このようなコードは、光学的もしくは磁気的に読み取り可能なマーク、RFIDタグなどのいずれかまたは全部を含む可能性がある。今度は図17を参照すると、種々の実施形態による機械読み取り可能なコード601の実施例が示されているが、他の実施形態において、機械読み取り可能なコードは、適当な形をとることができる。適当な手段を使用してこのような関連データを記憶および/またはエンコードすることは、コンポーネント402と協力し、コンポーネント402を操作し、および/または、コンポーネント402の周りの環境内で動作する移動エージェント104によるこのようなデータの読み取りまたはデコーディングを可能にさせる。このような実施形態は、外部エージェントまたはその他のエンティティの機能をサポートし、同時に、コンポーネント402は、受動要素の状態を保つ。同様に、一部の実施形態において、受動コンポーネント402は、構築のため使用される可能性があり、種々の位置または姿勢で置かれ、および/または、類似した、もしくは、その他のクラスの中の対等のコンポーネント402と一緒に配置構成の中に積み重ねられることがあるが、この役割は、受動的な役割であり、このようなコンポーネント402は、依然として受動的として分類されるということになる。
受動コンポーネント402は、プレースメント中にアライメントを実現し易くし、隣接するコンポーネント402とのある程度の固着もしくは受動的インターロック(たとえば、重力嵌め合い)をもたらすインターフェース用要素を有するという観点から準能動または能動コンポーネント402と似ていることがあるが、概して、受動コンポーネント402は、機能的エレクトロニクスまたは動作可能なメカニズムを欠いている(または、受動コンポーネントがこのような要素を本当に含んでいる場合、これらの要素は、機能的ではないか、または、本明細書に記載された動作とは無関係である動作を実行する)。
コンポーネント402Bは、表面幾何学的形状を有するコンポーネント402の実施例である。この場合、表面幾何学的形状は、コンポーネント402Bのどの面が下向きに向きを合わされているか、または、どのエッジが二股に向かって直交させられているかを問わずに、ホイスト403の二股を収容できるように構成されている。コンポーネント402Cは、このコンポーネントの底部にあるこの形状の反転とかみ合うものである(それによって、この設計のコンポーネントがインターロック状態で積み重なることが可能となる)このコンポーネントの上面から延びる***した幾何学的特徴形状404を有する別の実施例である。コンポーネント402Dは、コンポーネント402Cの特徴形状404に類似する***した幾何学的特徴形状405を有し、幾何学的特徴形状405の底部に最上部からのコンポーネント402の持ち上げを実現し易くするスロット付き開口部406が追加されているさらに別の実施例である。
好ましい実施形態の範囲にある性能の観点から、作業面407は、同様に受動コンポーネント402であると考えられ得る。作業面407は、マーク、機械読み取り可能なコード、RFIDタグ、および/または、移動エージェント104のナビゲーションおよび面407へのコンポーネント402のプレースメントを実現し易くするその他の適当な要素を含む可能性がある。
準能動コンポーネント
準能動コンポーネント402は、ある範囲のコンポーネントタイプ候補を含む。本明細書における説明の目的のため、準能動コンポーネント402は、受動コンポーネント402と類似する基本的な性質を有することがあるが、ユーザおよび/または移動エージェント104によって制御されることがある機能性も持っていることがある。たとえば、準能動コンポーネント402は、機械的またはその他の状態変化に耐える能力がある。このようなコンポーネント402の実施例は、別のコンポーネント402とのインターロックを可能にさせる機械的システムを有するコンポーネントである。このようなシナリオにおいて、移動エージェント104は、準能動コンポーネント402を動作させる傾向があるマニピュレータと共に構成され得る。たとえば、回転式延長ロッドは、コンポーネント402のソケットに差し込むことができ、ソケットを回すことにより、移動エージェント104は、1つまたは複数の隣接したコンポーネント402上の表面特徴形状にラッチを掛けるインターロック部品に係わり合うことができる。類似する結果は、コンポーネント402間に結合力を与える磁石を使って達成される可能性があり、この場合、コンポーネント402を操作するタスクを課された移動エージェント104は、代替的に、コンポーネント402の中に格納されている磁石がアームに付着することを許すために、または、コイルの中を流れる電流を送ることにより磁石を解放するために、マニピュレータの端部でフェライト磁心を含んでいる磁気コイルを用いることができる。1つまたは複数の準能動コンポーネント402が状態変化する能力がある1つまたは複数の要素(群)を格納するその他の構成が可能である。
今度は図5を参照すると、各面503の中心に位置している矩形または正方形凹部501と各エッジからオフセットした円形凹部502とを有するブロックコンポーネント402Eの実施例が示されている。鉄パネル(図示せず)は、平坦に取り付けられていれば、凹部501の面に存在する可能性がある識別用マークまたは特徴形状が隣接する表面によって傷または磨り減りが生じ難いように、各凹部501の内部に固定され得る。
図5は、ブロックコンポーネント402Eのようなコンポーネントを位置決めするタスクを課された移動エージェント(図示せず)によっておそらくは取り付けられた、または、そうでなければ、制御されるマニピュレーションツールまたはマニピュレータ504をさらに描く。この場合、マニピュレータ504は、コンポーネント402Eの面503上の円形凹部502と合うように対応するサイズおよび間隔の突起部505を有する。マニピュレータ504の中心には、コンポーネント402Eの凹部501との接触を確実にするためにこのマニピュレータの取り付け面507の周りにセットされた、電磁石として動作するように構成されている永久磁石または鉄材料でもよいリング要素506が存在する。マニピュテータ504がコンポーネント402Eに適用されるとき、リング要素506と凹部501のパネルとの間の磁力を通じて作り出された引力は、両者の間にある程度の固着を作り出し、これによって、マニピュレータ504を制御する移動エージェントがコンポーネント402Eを動かす、持ち上げる、またはそうではければ操作することを可能にさせる。凹部502と突起部505とを合わせる幾何学的形状は、互いにインターロックされたとき、マニピュレータ504と相対的なコンポーネント402Eの位置および姿勢に関する一貫性および予測可能性を保証する。当業者は、空間内でコンポーネント402Eのようなコンポーネント402を動かすことおよび置くことの精度を維持する重要性がマニピュレータ504の位置のような既知位置に関するコンポーネント402の相対的な位置の認識度に頼っていることが分かるであろう。しかしながら、その他の技術がこのような精度を保証するため使用され得る。
コンポーネントサイズと、合わせ特徴幾何学的形状および位置と、マニピュレータ504の位置および関連した動き制御についての作業中知識の制限とのような要因に依存して、合わせ特徴形状のインターロックを保証するようにコンポーネント402Eの面503にマニピュレータ504を適用することに成功することは、難しくなる可能性があることも認められる。ある程度の数の技術のうちいずれかがコンポーネント402Eに対するマニピュレータ504の位置決めを実現し易くするために使用され得る。たとえば、少なくとも一実施形態において、カメラ507または類似するイメージング装置は、マニピュレータ504の中心軸と同じ場所に位置することがある。このような実施形態において、コンポーネント402Eの凹状エリア501付近にある適当なマーク(群)(図示せず)は、中心点もしくはその他の既知点の使いやすい識別を可能にするように構成されることがあるので、回転姿勢がパネルの回転姿勢と一致する状態でパネルの中心に垂直なベクトルに沿ってマニピュレータ504を整列することは、合わせ特徴形状が意図した通りにインターロックすることを保証する。コンポーネント402Eが係わり合って、このコンポーネントの位置または姿勢が意図したとおりに変更されると、マニピュレータ504とコンポーネント402Eとの間の粘着を持続する磁力は、2つの本体を一体として保持する電磁石に給電する電流を停止することによって、または、このような磁石がコンポーネント402Eをマニピュレータ504に固定しているかもしれない永久磁石の力を無効にすることになる配置構成内の電磁石に電流を印加することによって、破られる可能性がある。
同様の形式で自然な磁石の引力を局所的に無効にすることもまた移動エージェントが磁力によって拘束されたコンポーネント402を分離することができるための手段である。
当業者は、上記電磁結合が、移動エージェントがコンポーネント402Eのようなコンポーネント402を操作することができるための単なる一実施例であることが分かるであろう。上記のとおり、コンポーネント402Eのような準能動コンポーネント402における状態変化は、このようなマニピュレーションを実現し易くすることができる。しかしながら、このような状態変化が実行されると、マニピュレータ504とコンポーネント402Eとの間の動作可能なインターロックは、移動エージェントが係わり合う、および、操作する能力を有する1つのインターロックである可能性がある。
少なくとも一実施形態において、移動エージェントは、互いに機械的に接合されていることによる利益を受けるコンポーネント402の組立体を構築するためにコンポーネント402Eのようなコンポーネント402を使用する。互いに取り付けるためのコンポーネント402の機械的またはその他の手段の潜在的な利点は、移動エージェントが構築するかもしれない構造物が従来型の壁のような同種のコンポーネント402の組立体であるか、または、ブロックの上に取り付けられた尖ったブロックにラッチを掛けるブロックのような異種のコンポーネントタイプの組立体であるかを問わずに、これらの構造物の強度または安定性を改善することにある。
上記実施例において、メカニズムは、ラッチメカニズムの状態(たとえば、ロック解除状態またはロック状態)を変えるためエネルギーを供給するために外部オペレータに頼ること、または、頼らないことがある。少なくとも一実施形態において、(コンポーネント402Eのような)準能動コンポーネント402は、これの機能的な動作をサポートするために専用内部電源(図示せず)を有することがある。
当業者は、多くのその他のタイプの準能動コンポーネント402が使用され得ることが分かるであろう。準能動コンポーネント402のその他の実施例は、照明または状態報告のためのLEDを装備したコンポーネント、出入り口が統合されたコンポーネント402、またはLCDディスプレイを格納しているコンポーネント402であり、これらのいずれかは、コンポーネント402の表面の可変位置にある機械的スイッチ、または、指示を提供する無線信号の受信のような潜在的に広範囲の手段に基づいて状態を変化させることがある。準能動コンポーネント402は、構造的な要素(ブロック)それ自体に似ていないことがある形をとることもあり、これらの構造的な要素の主要な機能のような役目を果たさないことがある。この種の準能動コンポーネント402の実施例は、移動エージェントがタスクを実行するのを実現し易くするか、または、より良くできるようにするコンポーネント402を含む。一実施例は、フロアの外の低い高さからより高い高さまでプラットフォームを上昇させる能力があるシザースリフトが取り付けられた車輪付きの車台である。このようなコンポーネント402は、典型的な構造ブロック形式からは実質的に異なる可能性があるが、このコンポーネントを上昇させるプラットフォームがより高い構造物を構築する、または、プラットフォームを上昇および下降させるのを支援するということになる位置へ動かすために移動エージェント104による運転を許可するように設計され得る。このようにして、この特質を持つ準能動コンポーネント402は、(この場合、一種の組立設備として)ツールの機能的な役目を遂行することになる。
準能動コンポーネント402としての車輪付きプラットフォームの実施例は、このコンポーネントタイプの共通の特徴であるかもしれないものが何であるかを示す。コンポーネント402は、単一の移動エージェント104、または、協働して作動する複数の移動エージェント104による運転のため設計されるかもしれないことを認めることができる(たとえば、一方の移動エージェント104は、車輪付きプラットフォームを受動コンポーネント402が置かれるべきロケーションに動かし、その間に、別の移動エージェント104は、コンポーネント402を指定された位置の中に置くためにプラットフォーム上に位置決めされる)。代替的に、プラットフォームは、コンポーネント402を把持し、操作するために、移動エージェントのハードウェアに類似したハードウェアも装備されることがある。このようにして、本実施例における準能動コンポーネント402は、移動エージェント104のマニピュレーションおよびプレースメント能力を伸ばすために役立つ。
能動コンポーネント402
能動コンポーネント402は、移動エージェント104からの直接の機械的または電気的な入力もしくは指示なしに、自律的に行動する、または、そうでなければ、機能を実行するこれらの能力によって主として区別される。このコンポーネント402のカテゴリは、機能性の最広義のタイプ、ならびに、最も高い多用途性および自律性を表現する。これらのコンポーネントは、それ以外では、機能性の観点から準能動コンポーネント402に似ているが、かなりの程度の独立性で行動する。これらのコンポーネント402は、たとえば、行動につながるプロセスを始動させるセンサを含んでいることがあり、および/または、これらのコンポーネントは、プログラムされたルーチンに従うことがある。
いくつもの特殊化されたコンポーネント402は、このカテゴリに当てはまることがある。これらのコンポーネント402のうち一部は、受動または準能動コンポーネント402と同じ外側幾何学的形状を有することがあり、これらのコンポーネントが、たとえば、受動および/または準能動コンポーネント402で構築された構造物の内部で積み重なることを可能にさせる。しかしながら、能動コンポーネント402は、物理サポートを越えた付加機能も提供することがある。一実施例は、近傍における動きを検出するために面にセンサを装備したコンポーネント402である。このようなコンポーネント402は、たとえば、バッテリー給電式電動ドアを含んでいる別の能動コンポーネント402に無線信号を送信するためにプログラムされることがある。第2のコンポーネント402が第1のコンポーネントから信号を受信するとき、第2のコンポーネントは、ドアメカニズムを作動させ、コンポーネント402の中を通る通路を許可する。
別の実施例において、能動コンポーネント402は、街路灯に類似するタイミングスキームを利用し、跳ね橋を上昇および下降することにより交通の流れを制御することがある。機能的なハードウェア、通信の手段、および、ことによるとある程度のプログラマビリティを組み合わせると(コンポーネント402が独立したホスト装置によって直接的に制御されない場合)、相互作用的な構築環境を作り出すときに能動コンポーネント402の役目に多岐に亘る可能性が存在する。能動コンポーネント402は、このようにして、たとえば、サウンド装置、ディジタルディスプレイスクリーン、照明、および/または、作業面407上で動作する移動エージェント104の活動に直接的に応答する、および/または、影響を与えるメカニズム、および/または、これらの何らかの組み合わせのような適当な要素が様々に装備され得る。準能動コンポーネント402の説明が構造的な役割を果たさないツールまたは動作可能なコンポーネント402を含んでいたのと同じように、移動エージェント104自体は、機能的であり、および、高程度の自律性で行動する場合、能動コンポーネント402のタイプであると考えられる。明瞭さの目的のため、移動エージェント104に関与する以下の説明は、引き続きこれらの移動エージェントをそのようなものとして参照するが、このようなエージェント104は、本明細書に記載された脈絡においてあるタイプの能動コンポーネント402であるとさらに考えられ得る。それ故に、図18の実施例において、コンポーネント402は、受動および/または準能動であることがあり得るが、エージェント104は、あるタイプの能動コンポーネント402であると考えられ得る。
1つの特有のタイプの能動コンポーネント402は、ある程度の水準の自律移動性を有する移動エージェント104である。移動エージェント104は、完全に自律的に動作することができ、および/または、これらは、ある種の中央制御ユニットを介してもしくは個別にユーザによって制御され得る。代替的に、移動エージェント104は、中央制御ユニット内の自律制御メカニズムによって指示されるとおりに動作することができる。少なくとも一実施形態において、移動エージェント104およびその他の能動コンポーネント402は、ユーザもしくは制御ユニットによって指定される可能性がある高水準目標を達成しようとして機能し、その間に、このような目標を達成するために低水準で自律的に機能することができる
今度は図1を参照すると、電源要素、センシング要素、処理要素および通信要素、ならびに、アクチュエータおよび(場合によっては)出力装置(群)を含む、一実施形態による移動エージェント104の概念アーキテクチャを描くブロック図が示されている。当業者は、移動エージェント104の中に含まれているとして図1に表された種々の要素が単なる典型であり、要素の一部が選択的でもよいことが分かるであろう。その上、代替的な実施形態において、図1に表されていないその他の要素は、移動エージェント104に含まれ得る。その上、様々な要素の構成を有する様々なタイプの移動エージェント104が含まれ得る。
電源要素102は、電力を移動要素104に供給する。電力は、バッテリー、太陽光電池などのような適当な供給源から供給されることがある。
センシング要素(群)103(すなわちセンサ)は、たとえば、光学、加速度、ジャイロ、音響、エンコーディング組立体(たとえば、磁気車輪エンコーダ)、および/または、圧力/力および(たとえば、赤外線または超音波に基づく)距離センサのような適当な要素または要素の組み合わせを含むことができる。種々の実施形態によれば、センサ103は、位置を決定および監視(測位)する、他のコンポーネント402を識別する、コンポーネント402を操作するなどのような各種の機能において移動エージェント104を支援することがある。センサ103は、移動エージェント104による利用可能なタスクの実行に関わる活動を実行する際に使用され得る。その上、一部の実施形態において、一部のセンサ103は、位置に関係する回転速度もしくは特定の回転角度に関する車輪エンコーダ提供情報のようなエージェント104の内部状態を監視することに向けられることがある。外向きのセンサ103は、2Dイメージャのような高機能コンポーネント、ならびに、超音波距離センサのようなより簡素なコンポーネントを含む可能性がある。少なくとも一実施形態において、外向きのセンサ103は、移動エージェント104の周囲の状態を監視するために役立つ可能性があり、エージェント104による他のコンポーネント402のマニピュレーションまたは運搬に関係する情報を含む周囲の範囲内の変化を検出する可能性がある。
エージェント104は、たとえば、マイクロコントローラおよび関連したメモリモジュールのような適当なタイプの内蔵プロセッサ(群)105、および/または、その他の適当な要素をさらに含む可能性がある。
エージェント104は、公知技術に従って実施される可能性があり、適当な規格に頼る可能性がある適当なタイプの通信モジュール(群)107をさらに含む可能性がある。実施例は、Bluetooth、Wi−Fi、および/または、無線周波数もしくは赤外線光を使用する技術などのような適当な有線および/または無線技術を含む。通信モジュール(群)107は、利用可能な通信ネットワークを介して通信する可能性がある。
エージェント104は、移動エージェント104および/またはこれの周囲の態様に直接的(または間接的)に影響を与えるために動作することができる適当なタイプのアクチュエータ(群)106をさらに含む可能性がある。このような変形は、たとえば、エージェント104を動かすこと、もしくは、姿勢変更すること、および/または、(たとえば、ブロックもしくは他のコンポーネントを取り上げ、動かすために)コンポーネントおよび/またはその他のエージェント104と相互作用すること含む可能性がある。アクチュエータ106は、推進メカニズム、モータ、ボイスコイル、アームなどのような機械的に変化をもたらす要素を含む可能性がある。
エージェント104は、出力装置(群)107をさらに含む可能性があるが、このような装置は、選択的である。このような出力装置(群)107は、ユーザにより知覚可能な出力を供給するため適した要素を含む可能性があり、実施例は、スピーカー、LED、および/またはLCDディスプレイを含む。出力は、視覚、聴覚、触覚、および/またはこれらの組み合わせとなり得る。少なくとも一実施形態において、出力装置(群)107は、これらのセンサ(群)103を介して他のエージェント104に信号を送り得る(または、他のエージェント104に信号を送るように見える)出力を発生させる可能性があり、たとえば、一方のエージェント104は、別のエージェント104によって発生させられた出力に応答することがある。エージェント104によって発生させられたこのような出力は、他のエージェント104によって知覚できるとしても、人間によって知覚されることも知覚されないこともある。出力装置(群)107は、含まれているとき、1つのタイプのアクチュエータ106であると考えられることがある。
装置(群)112によって発生させられた出力の実施例は、移動エージェント104が達成を必要とする要求と、感情応答の表示と、フィードバックと、(装置上で専用ユーザインターフェースを通してそのようにすることの代替、または、これへの補完のいずれかとしての)要求の詳細な明確表現、および/またはそのようなものとを有するというユーザへの通知を含む。
少なくとも一実施形態において、移動エージェント104は、図1において識別された一部または全部の要素の複数のコピーを含むことがある。逆に、移動エージェント104が図1において識別された全ての要素を含むことは必要ではない。移動エージェント104は、各種の形式をとることがあるので、ハードウェア構成は、エージェント104の特有の機能的能力に従って変化することがある。
少なくとも一実施形態において、移動エージェント104は、作業環境と相対的なこれらのロケーションおよび姿勢に関するデータを認識し、維持する。少なくとも一実施形態において、エージェント104が動作している作業面407は、エージェント測位をサポートするために強化されることがある平面を提供する。動作面が平坦であることは必要ではなく、むしろ、少なくとも一実施形態において、動作面は、曲率、不連続性、および/またはその他の不規則性を有することがある。
測位
少なくとも一実施形態において、移動エージェント104は、空間内でのこれらの現在位置および姿勢についての作業知識を有するので、動きまたは移動性に関与するタスクの最適な実行を可能にさせ、サポートすると共に、互いに協働する、競争する、およびそうでなければ相互作用することができる。経路計画、物体マニピュレーション、および複数のエージェント104の間での努力の連携のようなより高水準のプロセスは、位置および姿勢または個別のエージェント104の持続的な監視を行うことによって実施される。エージェント104は、他のエージェント104のロケーションを気付かされるので、エージェント104の間での種々のタイプの相互作用を実現し易くすることができる。
少なくとも一実施形態において、システムは、環境内部のエージェント104の位置の仮想モデルを維持する。このような仮想モデルは、集中的に、および/または、分散形式で記憶される可能性があり、個別のエージェント104が利用できるようにされ得るので、個別のエージェントは、他のエージェント104に対するこれらの相対的な位置および作業面407、コンポーネント402、および/または他の環境要素に対するこれらの相対的な位置を気付かされることがある。少なくとも一実施形態において、システムおよび方法は、物理環境の内部のエージェント104の実際の物理的ロケーションと仮想環境の内部のこれらのエージェント104の対応する仮想表現のロケーションとの間で等価性を維持する。2013年8月9日付けで出願された、“Integration of a Robotic System with One or More Computing Devices”と題する関連する米国特許出願第13/963,638号(代理人整理番号ANK002)に記載されるように、等価性を維持することは、物理ロケーションおよび仮想ロケーションを検出することと、その結果、一方またはもう一方を調整することとを含む可能性がある。優先度は、物理環境に与えられる可能性があり、この場合、仮想位置が物理位置の検出に基づいて調整される。代替的に、優先度が仮想環境に充てられる可能性があり、この場合、エージェント104は、仮想環境内の対応する要素の位置と適合するように、これ自体および/またはコンポーネント402を動かすことを命令される。
仮想環境と物理環境との間で等価性を維持することは、いくつかの理由のため有利になり得る。少なくとも一実施形態において、エージェント104は、環境の仮想表現に基づいて行動を計画し、イベントに応答し、その結果、物理環境とこの物理環境の仮想モデルとの間の差が行動の実行の成功を複雑にする可能性がある。それ故に、等価性を維持することは、矛盾を検出し、矛盾を是正するのに役立つことによって、エージェント104が自分の計画した行動をより正確に実行するために役立つ。
さらに、意図していないイベント、または、活動の計画された進路の外側にあるイベントは、タスクに従事している1つまたは複数のエージェント104を妨害する可能性がある。たとえば、ブロックの構造物が崩壊する場合、見物人による意図的な妨害によるか、または、何らかの他の理由であるかを問わずに、システムは、少なくとも一実施形態において、エージェント104が、物理環境がこの物理環境の仮想モデルから実質的に相違したことを認識するために用いることができるメカニズムを提供する。エージェント104は、このような相違が、部分的または完全に関連性がないかもしれない仮想モデルの状態の周りで計画されていた現在の行動の組を継続することを不可能にすることがあることをさらに認識することがある。
その結果、少なくとも一実施形態において、システムは、利用可能な検出手段を通して決定されたようなエージェント104およびコンポーネント402のロケーション、位置および/または姿勢のような情報を取得し、このような情報を仮想モデル内の対応する空間と比較し、結果に従って物理環境および/または仮想環境を調整することにより仮想環境と物理環境との間で等価性を維持する。少なくとも一実施形態において、物理環境とこの物理環境の仮想表現との間に現れることがある差を、差の大きさ、および、この差が存在する期間に関連して、最小限に抑えることがより望ましい。しかしながら、他の実施形態において、特に、本明細書に記載されているように、性格の要素がエージェント104の動作に影響を与える実施形態において、等価性が物理と仮想との間で失われる時点と、エージェント104が応答してこれの行動を調整する時点との間の遅延は、エージェント104によって明示されることが意図された性格特徴、または、エージェント104によって表出された認識の全体的な印象を補強することがあることを認めることができる。たとえば、エージェントが自分の行動を従来型の意識の低い概念に類似させたいと思わせるように意図された性格プロファイルを有する場合、物理環境と仮想モデルとの間に実質的な差を生み出すイベントが起こる時点と、このようなイベントへのエージェント104の応答との間により長い遅延時間が導入され得る。この点に関して、物理と仮想との間で等価性を維持しようとするプロセスは、差を検出するが、エージェント104に性格の要素を提示することに関連するアルゴリズムは、エージェントによる差の識別およびエージェントによるこの差への応答の際にエージェントを人為的に遅延させる。本明細書に記載されているように、このような遅延時間は、人間観察者に娯楽の源泉も提供する可能性がある。
上記の物理構造物の崩壊の実施例のような物理環境と仮想表現との間の相違を生じる計画外のイベントは、エージェント104の性格プロファイルの一部であるかもしれない感情応答に関連付けられた1つまたは複数の行動のためのトリガーとしても役立つ可能性がある。たとえば、構築プロセスへの妨げとして、構造物の崩壊は、組立仕事への参加者にとって意気消沈させる、または、苛立たしいイベントとなりそうである。その結果、本システムの脈絡において、エージェント104は、たとえば、高速で円形に動くエージェント104、または、擬人化された性質を伝達するディスプレイ(たとえば、通常は、斜視、下向きに曲がった眉および赤色に変わった目の色を示唆するために画像をアニメーションする目および眉、可聴雑音、または怒りを表現する声などを表現することが意図された画像を描くLCDディスプレイ)の見え方の変化のようなフラストレーションの標識を投影するかもしれない。概して、システムは、イベントへの感情応答を伝えるためにボディランゲージという広範な社会的な方言に頼る可能性がある物理的またはディジタル的アニメーションの合図を使用することができる。
相違が検出されると、少なくとも一実施形態において、物理環境とこの物理環境の仮想表現との間で等価性を維持するために、システムは、この相違の程度および性質を調べるためにエージェント104に協力を求めることができる。多くの(ブロックのような)コンポーネント402を有する構造物の崩壊の場合、物理と仮想との間の等価性を修復するプロセスは、多少時間を要する可能性があり、散乱したコンポーネント402の新しい位置およびロケーションに関するデータを提供するためにこれらのコンポーネント402の周りを進むある程度の数のエージェント104を巻き込むことがあるかもしれないことを認めることができる。このような例において、システムは、特に、エージェント104の行動を案内するプロセスが構造物を再構築する試みを指示する場合、応答を策定する前にこのような風景の調査を完了させることができる。一部の場合、構造物の制御されていない崩壊のような相違を追跡する環境の調査は、全てのコンポーネント402の不完全なマッピングを生み出すかもしれないものであり、なぜならば、一部のコンポーネント402は、他のコンポーネントによって、エージェント104が利用できるあらゆる手段および観測の位置から遮られるためであり、または、コンポーネント402は、もはや形式上の環境にないからである(たとえば、エージェント104は、テーブルの上で動作し、1つまたは複数のコンポーネント402は、より低い床に降下している)。このような状況において持ち込まれた不確実性は、相違の前に物理空間内のコンポーネントの構成を回復させることに関連して、特に、構造物の中に予め存在する全てのコンポーネント402を考慮に入れることができない実施例において、エージェント104のため策定された行動の要因となる可能性がある。一部の実施形態は、再構築のためのエリアを片付けるために、および/または、崩壊に巻き込まれたコンポーネント402、および、これらのコンポーネントの間で、もはや考慮される必要がないコンポーネント(たとえば、これらのコンポーネントがエージェントによってアクセスできるエリアの外側でひっくり返っている場合)を見積もるために、調査プロセスに従事するエージェント104をさらに含むかもしれない。これを終了すると、エージェント104は、次に、行動の進路、すなわち、コンポーネント402を使用し、必要に応じて、見当たらないコンポーネントを他の場所で利用できる他のコンポーネントで補完して再構築するか、さらなる指示が必要とされることをユーザに通知するか、または、応答として何らかの他の行動を行うかを決定することができる。
測位は、適当な手段を使用して行われ得る。少なくとも一実施形態において、たとえば、信号を放射し、信号反射の受信に基づいてロケーションを決定することによる、能動的な方法が使用される。これらは、超音波に基づくまたは光に基づく測定技術を含む。このタイプのアプローチは、放射された信号に従って応答するように始動されることがある反射体またはビーコンのような作業環境の範囲内に意図的に置かれた要素によって強化されることがある。カメラまたは物理(空間)環境に関するデータを収集するその他の光学に基づく手段から画像を獲得することに基づく方法を含む、より受動的な方法も存在する。受動的なプロセスは、マーカー、または、このようなマーカーを認識するために開発されたシステムによるより容易な測位のための環境を構築することが意図されたその他の要素を利用することもある。磁場検出に頼るシステムのような非光学的な受動的なシステムのため、エージェント動作のため利用可能な空間の範囲にある何らかのマーカーの分布が測位のため使用されることがある。
少なくとも一実施形態において、移動エージェント104が上で動作する作業面407(またはマット)は、面407上に存在する読み取り可能なコード(たとえば、光学、RFID、および/または磁気コード)によって測位情報を提供することがある。少なくとも一実施形態において、エージェント104は、2010年5月27日付けで出願され、2013年1月15日付けで米国特許第8,353,737号として発行された、“Distributed System of Autonomously Controlled Toy Vehicles”と題する、関連する米国特許出願第12/788,605号(代理人整理番号ANK001)に記載されたように、エージェント104の環境およびこの環境内のエージェントのロケーションに関する決定を行うために、面407上のマークを光学的に検出およびデコードすることができる。他の実施形態において、しかしながら、作業面407は、省略されることがあり、および/または、測位情報を提供しないことがあり、それどころか、移動エージェント104は、たとえば、環境内の物体または信号を用いる三角測量を含んで、これ自体を測位するその他のメカニズム、他のエージェント104および/または基準特徴形状の光学検出など、または、これらの何らかの組み合わせを使用することがある。
ある程度の数のアプローチのうちいずれかは、局所的な観測および/またはコードの読み取りに基づいて位置または姿勢の決定を実現し易くする基準情報もしくは基準点を使って環境を構築するために使用され得る。たとえば、少なくとも一実施形態において、移動エージェント104は、エージェント104上のカメラが光学コードを格納している作業面407の一部分の画像を収集する光学観測システムを利用する。光学コードは、適当なパターンまたは類似する構造化されたマークを含むことができる。非光学コード(たとえば、RFIDおよび/または磁気コード)に関与するその他のシステムも使用され得る。
たとえば、上記の関連する米国特許第8,353,737号に記載されているように、作業面407は、好ましい進行経路または経路群と同一直線上にある光学的に読み取り可能なエンコーディングスキームを含むことができる。このようにして、コードは、移動エージェント104の軌道セグメントと共にロケーションに関する情報を提供することができる。このような方法は、かくして、多くの特有の基準点のうち1つに対する測位の手段を提供し、コード構造の規則性を利用してこのような点の間の相対的な位置を推定する。今度は図16を参照すると、このような構造に従って配置されたコード601A、601Bの実施例が示されている。
少なくとも一実施形態において、図16の実施例に示されるように、密集し、好ましい進行経路もしくは経路群と同一直線上に位置している繰り返しの目盛または類似する標識の線で構成された計量線が含まれる。このようにして基準として計量線を使用すると、コードの基準点によって確定された絶対位置に基づいて相対的な位置決めが計算され得る精度は、所定の長さに沿って目盛または計量盤を構成する計量線の頻度によって定義され得る。他のアプローチは、誘導経路として設けられた線に直接的に計量を組み込むことがある。たとえば、図6および図14の六角格子を形成するコード601において、目盛または何らかの他の標識(群)は、格子のセルとセルとの間の境界に含まれる可能性がある。
図16のコード例601Aに示されるように、少なくとも一実施形態において、均一な幅の線を使用するのではなく、システムは、太いセクションと細いセクションとの間を規則的なステップで交番する幅を持つ線を使用する。経路は、連続した状態を保つが、幅のステップ状変化の規則的な間隔は、対称的な方形波に類似する外観を生じ、これは、他の位置情報マーク間の進行距離を監視するため役立つ可能性がある。
さらに別の実施形態において、コード例601Bに示されるように、進行経路の幅は、鋸歯形とより良く一致する見え方で膨張および収縮するように、規則的な間隔で直線的に変化することがある。このようなアプローチは、最大幅および最小幅と相対的に特有の点で線の幅に従って経路に沿って膨張点と収縮点との間の相対的な位置の決定を実現し易くする。
少なくとも一実施形態において、測位をエンコードするスキームが採用される。移動エージェント104は、(たとえば、前述された、および/または、上記参照された関連する特許に記載されたように軌道セグメントに沿って)作業環境の内部に好ましい進行経路を有することがある。しかしながら、エンコーディングスキームが特有の進行経路または経路群に関連なしに測位をサポートするために有利になることがある。たとえば、参照情報のエンコーディングは、面から離れた観測の可能な姿勢からの認識をサポートする可能性がある。これは、たとえば、認識を成功させるために、好ましい、または、必要でさえあるマークもしくはマーク群の観測の姿勢が存在する場合、観測データが正しい姿勢を見つけるために調整され得るように、観測中に収集されたデータを解析することによって達成され得る。このようなシナリオの実施例は、作業面上にエンコードされた情報を格納しているパターンまたはパターンの一部分の収集された画像に関与するかもしれない。パターンが解析のため好ましい姿勢を有するならば、処理は、好ましい姿勢を見つけるために、面の画像を調整することができる。本実施例において、マークは、位置の決定を可能にさせることがある。マークの好ましい姿勢から離れた観測姿勢を訂正するプロセスは、作業面と相対的なエージェント104の姿勢も提供することができる。
少なくとも一実施形態において、コードは、複数の姿勢から読み取られるように設計されたマークとして提示される。今度は図6を参照すると、複数の姿勢から読み取られ得るこのような機械読み取り可能なコード601の実施例が示されている。コード601は、たとえば、前述された配置構成および方法のいずれかに関連して使用される可能性があり、たとえば、一実施形態に従って、面407上で動作するエージェント104の測位をサポートするために作用面407全域で使用される可能性がある。
図6に示されるように、少なくとも一実施形態において、データは、一連の放射状バーコードを効率的に構成する線の太さが変化する同心の六角形および円形でエンコードされる。しかしながら、当業者は、他のタイプの機械読み取り可能なコード601が使用され得ることと、このようなコード601が適当な形および外観をとり得ることとが分かるものであり、これらのコードは、人間の目に見えることも、見えないこともある。少なくとも一実施形態において、エンコードされたデータは、局所的位置情報(たとえば、基準原点までの順序距離)を含む可能性がある。しかしながら、コード601は、複数の方向からの読み取りをサポートすることが意図されているので、コード601と相対的な観察者の姿勢を推定することは、より一層困難になる可能性がある。これに対する改善措置として、補充マーキングは、姿勢を指示することによりコード601を強化することができる。この改善を行うための使いやすいアプローチの実施例は、基準姿勢または好ましい基本方向を指示する矢印もしくはドットを使って姿勢を指示するため同心円状に体系化されたマークの中心を用意しておくことである。この標識は、しかしながら、基準姿勢を確立するどのような形でもとることできるので、よく知られた磁気コンパスのレイアウトの慣例を使うことも使わないこともある。今度は図15を参照すると、種々のタイプの姿勢標識1501を含む機械読み取り可能なコード601の実施例が示されている。当業者は、しかしながら、姿勢標識がどのような望ましい外観または形でもとることができることが分かるであろう。
別の実施形態において、情報は、クイックレスポンス(QR)コードなどのような好ましい姿勢を有する機械読み取り可能なコードの中にエンコードされ得る。QRコード(または同種のもの)に基づくマーキングスキームを使用する利点は、幾何学的形状がどれも格子パターンにうまく配置され、スキームが比較的多量の情報を小型の空間内にエンコーディングするのに適することである。QRコードは、好ましい姿勢およびスケールを指示する基準マークを格納する。少なくとも一実施形態において、システムは、QRコード(または同種のもの)の形をしたマークの格子を含む作業面407を提供する。図6に関連して前述された放射状または六角形コード601と同様に、QRコードは、固有識別コード、材料ID、および/または、同種のもののような種々の情報を格納することができる。面上の隣接したコードは、異なる情報を提供することができる。
今度は図20を参照すると、種々の実施形態による、各々が同心円状コードスキームを使用するコードタイプの付加的な実施例が示されている。コード601C、601D、601E、601F、601Gの各実施例において、データは、各セルの中心2001から放射状に順序付けられた線の太さの配列にエンコードされている。少なくとも一実施形態において、各セル2001の中心の何もない空間2002は、たとえば、具体的な空間基準、順序方向、および/またはエリア指定を示すために(たとえば、一方の建物エリア対別の建物エリアを示すために)マーカーまたは他の識別子で埋められることがある。これらの実施例のうち一部において、各セル2001の境界を示す計量線は、セル2001を越える推移における測位のための基準を提供する。代替的に、コード601Eに示されるように、セル2001は、境界を確立するために互いに間隔を空けられる可能性がある。
少なくとも一実施形態において、線の太さは、(セル2001のような)具体的なコード要素の値を示すことができるので、セルの中心の周りに放射状に配置された閉じた線の配列は、エンコードされた情報を生じるため各半径の線の太さに従って読み取られ得る。少なくとも一実施形態において、セル2001は、相対的な位置に関する情報を推定することができるように、サイズが一定であり、規則的な形式で配置され、エンコードされた情報が空間ロケーションを格納する実例、および/または、セル2001がグラフィック要素もしくは読み取り可能なデータのいずれかとしてセル2001の内部でマークされた基準点を格納する実例では、グローバル位置は、既知空間ロケーションの点から離れた相対的な位置から決定され得る。
一部の脈絡において、特有の面407でエンコードされた様々なタイプのデータを提供することは、役立つことがある。たとえば、複数の作業面407が同時に使用されるかもしれない実施形態において、各面407は、特有の面407を固有に識別するコード601が散りばめられている。代替的に、本明細書に記載されたコード601のいずれかは、使用されている特有の面407を識別する情報をさらに含む可能性がある。このような技術は、そうでなければ互いに混同されるかもしれない複数の面407を使用することによって取り込まれた潜在的な不確実性を回避するのに役立つ可能性がある。
今度は図19を参照すると、入り交じったコードタイプが使用された作業面407の実施例が示されている。六角形コード601Aは、複数の方向からの読み取りを実現し易くするものであり、密集したコード線は、建物のため指定された面407のエリア内での測位の精密さを実現し易くするものである。このようなコード601Aは、その結果、ブロックのようなコンポーネント402の一般化されたプレースメントのため適合している。
コード601Bは、通行のため指定された面407のエリアに位置し、その結果、コンポーネント402のマニピュレーションおよびプレースメントのため典型的に使用される低速の動きより高速での直線進行を目的として配置されている。その結果、コード601Bの内部のマーキングは、より長くされ、より遠くに離されている。少なくとも一実施形態において、図19の実施例に示されているように、コード601Bは、一方のコードゾーンから別のコードゾーンへの推移を認識するのを支援するために両側の境界を示す白色方形歯計量バーを含む。場合によっては、ある程度の不確実さは、エージェント104が一方のコードベース内の既知位置を離れるときから他のコードベース内の新しい基準位置を確立するまでの時間に存在することがある。
測位に関連して、データの一部分は、コードの幾何学的中心またはコード内部何らかの他の点から作業空間の基準原点(マットまたはその他の作業面407の場合に、特有のコーナー)までの順序距離にある可能性がある。付加情報は、コード自体の寸法を含むことがあり、代替的に、コード寸法は、エージェント104またはエージェントの管理する制御システムによって事前に指定され、既知である可能性があり、たとえば、エージェント104は、コードの基準点の順序距離と結合されたとき、コードの外形の範囲内にある点までの測位を可能にするルックアップ情報を参照することができる。QRコードが好ましい姿勢を有するとき、少なくとも一実施形態において、コードは、いずれの姿勢でも読み取られ得るものであり、コード内部の基準点は、エージェント104が好ましい姿勢を決定することを可能にさせ、このことから、コードに対する観測の相対的な姿勢(および、それによって作業面407)が決定される可能性がある。
放射状に設計されたエンコーディングスキームまたはORコードのような好ましい姿勢を持つエンコーディング方法の何れを使用する場合でも、コードマークの間でサイズの一様性を維持することは必要ではない。少なくとも一実施形態において、作業面407の一部分は、移動エージェントの精密な動きが他のエリアより重要であるエリアを有することがある。実施例は、運搬ルートとして特化されることが意図された作業面407の一部分を含むことがあり、その結果、構造物がない状態が保たれることは、非常に厳しい精密さまでの測位があまり必要性ではないことがあり、それよりもむしろ、このようなエリアを通る迅速なナビゲーションを優先するかもしれない。この場合、より大きいコードは、移動エージェント104によって構築された構造物をサポートすることが意図された作業面407のゾーンにあると共に、より速い速度で進行することがこれらのエリアのためのより優れた選択肢である可能性がある間により一層の基準をもたらすかもしれないが、エージェントがこれらのエージェントの位置決めおよびコンポーネント402のプレースメントをより小さい許容範囲でより良く制御することを可能にさせるためには、より小さいコードのサイズによって恩恵を受けるかもしれない。
少なくとも一実施形態において、データをデコードするためにコード全体が捕捉される必要はない。これは、放射状コーディング技術が使用されるときに特に適用できる。このようなスキームの利点のうち1つは、中心点からのデータの全方向性提示が単一の放射状ベクトルの可視性から完全なエンコードされたデータを読み取ることを可能にすることである。その結果、放射状コーディングは、翻訳のためコード601の画像の全体捕捉を必要とするエンコーディングスキームとは違って、コード601の一部分だけが可視であるか、または、捕捉されたときに、エンコードされたデータを完全に読み取ることが尤度をより高くすることができる。
ここまで検討された測位方法は、マークのパターンで構成されたコードの範囲内でロケーションデータをエンコードする技術を提供する。他の実施形態において、しかしながら、他の方法は、移動エージェント104が作業面407上の1つまたは複数のコードの翻訳から位置および姿勢を推定するため使用される。局所的なコードに記憶されたデータをデコードすることに頼らない一実施形態において、作業面407上のマークのパターン全体のレイアウトは、ロケーションの決定が局所的な観測において捕捉されたコードを大規模なパターンの内部の対応するロケーション(群)にマッチングすることに基づくように、予め既知であることがある。このシナリオにおいて、アプローチは、より大規模な空間特徴集合の内部で局所的な特徴の部分集合を識別することに基づいてマップ上のロケーションを見つけることに類似している。
たとえば、作業面407、または、作業面407の中でエージェント動作を対象とした部分のマークのパターンは、パターンの局所的な観測が複数のロケーション候補を生じることがないように、繰り返しのないパターンの画素で構成されるかもしれない。このような実施形態において、最小限の個数の画素がパターン全体を構成するより大規模な集合の内部での局所的な特徴のマッチングを可能にするために観測の範囲で捕捉される。局所的な特徴をマッチングするとき、観測の姿勢は、測位プロセスの一部として記憶された大域的な基準パターンの姿勢にマッチさせるために何らかの姿勢変更の方式を必要とする局所的なパターンを生じることが可能である。変形がパターンを姿勢変更するために適用される可能性があり、このような変形は、作業面407に対する観測の姿勢に関する情報も生じる。
システムアーキテクチャ
少なくとも一実施形態において、システムは、何らかの適当な手段を使って互いに通信できる種々のコンポーネントを使用して実施される。少なくとも一実施形態において、システムは、2013年8月9日付けで出願された、“Integration of a Robotic System with One or More Computing Devices”と題する関連する米国特許出願第13/963,638号(代理人整理番号ANK002)に記載されているように、制御がエージェント104と無線接続型中央装置との間で分担されるか、もしくは、移動エージェント104の間でさらに分割される移動エージェント104の組と、動作環境の物理状態と仮想状態との間で等価性を能動的に維持する中央装置と、移動エージェント104の動きおよび行動の直接的な制御をユーザに提供するための専用装置とを使用して実施され得る。
今度は図13を参照すると、一実施形態による実施アーキテクチャが示されている。図13に描かれるように、少なくとも一実施形態において、システム1300は、たとえば、スマートフォン、タブレット、ラップトップコンピュータなど、および/または、これらの何らかの組み合わせのような、動くまたは動かないを問わずに、適当なコンピューティング装置上で実施されることがあるホスト装置108によってホストされている。少なくとも一実施形態において、ホスト装置108は、システム全体の動作を実施するソフトウェアの中に格納された種々のアルゴリズムをサポートし、動かす。ホスト装置108および関連付けられたソフトウェアは、本明細書において集合的に基地局または中央制御ユニットと称される。図13は、ホスト装置108を通るあらゆる通信を描くが、代替的な実施形態において、エージェント104は、互いに直接的に通信する可能性があり、ホスト装置108は、完全に省かれる可能性もある。
多種多様の装置のいずれかは、ホスト装置108として働く可能性があり、実施例は、スマートフォン、タブレットコンピュータ、ラップトップコンピュータ、デスクトップコンピュータ、ビデオゲームコンソール、および/または、システムのための制御ソフトウェアをサポートする能力があるその他のコンピューティング装置を含む。少なくとも一実施形態において、このような装置は、例として、かつ、限定なしに、カリフォルニア州クパチーノ市のApple Inc.から入手可能であるiOSもしくはMacOS、カリフォルニア州マウンテンビュー市のGoogle Inc.から入手可能なAndroid、または、ワシントン州レドモンド市のMicrosoft Corporationから入手可能であるWindowsを含む適当なオペレーティングシステムを使用する可能性がある。少なくとも一実施形態において、ホスト装置108は、カリフォルニア州クパチーノ市のApple Inc.から入手可能であり、適当なソフトウェアアプリケーション(「app」)を動かすiPhoneもしくはiPadである。少なくとも一実施形態において、ホスト装置108を制御するソフトウェアは、物理空間でエージェント104を動作させ、ゲームプレー、組立、協働、競争、および/または、同種のものを含むエージェント104間の相互作用を計画、連携、および実行するために適切な機能性およびゲームプレー構造を含むダウンロード可能なアプリケーション(「app」)のような適当な手段を介して提供されることがあり、これらの相互作用は、ルールに従って、および、ユーザ入力、人工知能、もしくはこれらの組み合わせの指示の下で行われる可能性がある。少なくとも一実施形態において、ホスト装置108は、エージェント104の状態を維持し、エージェント104との間でコマンドを送受信する。ホスト装置108は、システムとのユーザ相互作用を実現し易くする適当なユーザインターフェースをさらに含むことがある。
本明細書において述べられた説明の目的のため、エージェント104は、エージェントの一部または全部が動かないかもしれないが、移動エージェント104と称される。前述のとおり、エージェント104は、受動、準能動、および能動を含む他のコンポーネントおよび要素を含むアーキテクチャフレームの内部にあるコンポーネント402の1タイプである可能性がある。少なくとも一実施形態において、エージェント104は、玩具組立車両のような車両であるが、これらのエージェントは、他の物体またはコンポーネントでもよい。
少なくとも一実施形態において、ホスト装置108は、エージェント104に送信されたあらゆる活動および制御コマンドのための集中ノードであり、コマンドは、物理的に存在する、または、遠く離れて位置しているユーザ109Dから109Kによって制御される制御装置101Dから発生するのではなく、ホスト装置108上で動くアルゴリズムから発生し、ホスト装置108を通って経路制御される。他の実施形態において、ホスト装置108があらゆる活動および制御コマンドのための集中ノードである必要はない、より分散型のアーキテクチャが実施されることがある。
図13に示された実施例は、特定の台数のコントローラ101Dから101Kと、エージェント104と、AI制御型エージェント104Jとを含む。当業者は、図13に描かれた、および、本明細書に記載された特有の量の要素が単なる典型例であること、ならびに、システムがその他の量を使用して、および/または、適切な場合、要素のうち一部が省略されて実施され得ることが分かるであろう。その上、エージェント104は、図13において、車両として描かれているが、これらは、適当な形状をとることができる。
図13のアーキテクチャにおいて、システム1300は、コントローラ101Dから101Kおよびエージェント104が他の要素と共にホスト装置108と通信する集中方式で実施される。図示されるように、少なくとも一実施形態において、複数のユーザ109(またはプレーヤー)は、複数のエージェント104を制御する可能性があるが、他のエージェント104Jは、人工知能を用いて制御されることがある。
図13に示されるように、任意の台数の外部装置は、たとえば、セルラー/インターネット接続111のような適当な通信プロトコルを介してホスト装置108に接続されることがある。種々の外部装置は、ホスト装置108と同一または同一ではないことがある。外部装置の一部または全部は、コントローラとしての役目を果たす。図13は、(ユーザ109J、109Kによってそれぞれ制御される)何台ものコントローラ101J、101K付きのゲームコンソール101Bと、(ユーザ109Dによって制御される)ラップトップコンピュータ101Dと、(ユーザ109Eによって制御される)スタンドアローン型コントローラ101Eと、(ユーザ109F、109G、および109Hによってそれぞれ制御される)スマートフォン101F、101G、および101Hとを含むコントローラとして使用され得る装置の種々の実施例を描く。少なくとも一実施形態において、コントローラ101のいずれかまたは全部は、カリフォルニア州クパチーノ市のApple Inc.から入手可能であり、適当なソフトウェアアプリケーション(「app」)を動かすiPhoneもしくはiPadである可能性がある。コントローラ101J、101K、101Eは、たとえば、コンソールゲーム装置と共によく使用されるコントローラを含む何らかの適当なタイプである可能性がある。
少なくとも一実施形態において、ゲームまたはプレー環境は、ホスト装置108上でホストされる。ホスト装置108は、エージェント101のゲームプレーおよび/または他のマニピュレーション、コンポーネント402、および/または、(面407上のような)物理環境、ならびに、ソフトウェアの指示の下にある仮想環境における物理空間内の他の要素をサポートし、仮想環境の状態は、ホスト装置108上のメモリおよび/または他の場所に維持される。
2013年8月9日付けで出願された、“Integration of a Robotic System with One or More Computing Devices”と題する関連する米国特許出願第13/963,638号(代理人整理番号ANK002)に記載されているように、少なくとも一実施形態において、ホスト装置108上で動く基地局ソフトウェアは、エージェント104およびコンポーネント402の位置を含む環境の仮想モデルを維持し、このような仮想モデルを物理空間内で検出されたエージェント104およびコンポーネント402のロケーションと一致させるために動作を実行することができる。このようにして、ホスト装置108は、エージェント104および/またはコンポーネント402の位置、向き、速度およびその他の態様に関連する記憶された情報を更新することにより、物理環境におけるイベントとの等価性を連続的に維持する。少なくとも一実施形態において、ホスト装置108は、いずれかの時点で、物理環境の状態と仮想環境の状態とが同一(もしくは実質的に同一)であること、または、少なくとも、仮想環境の状態がゲームプレー目的のための精密さに少なくとも十分な程度で物理状態の表現であることを保証する。少なくとも一実施形態において、システムは、仮想空間において出現するイベントが物理状態に影響を与えることができ、逆もまた同様であるように、状態間の双方向の影響を考慮する。優先度は、本明細書および関連する特許出願に記載されているように、仮想状態または物理状態のいずれかに与えられ得る。
少なくとも一実施形態において、人工知能ソフトウェアは、ホスト装置108上で動き、1台または複数のエージェント104Jを制御するために(無線通信メカニズムまたは他のメカニズムを介して)コマンドを発行する。他の実施形態において、エージェント104Jを制御するソフトウェアは、他の場所に位置することがあり、および/または、エージェント104J自体で動くことがある。
少なくとも一実施形態において、ホスト装置108は、エージェント104を制御する人間ユーザ109Aのための制御ユニットとしての役目を同時に果たす可能性がある。このような機能性は、ホスト装置108上に設けられる可能性があるが、ホスト装置108は、他の車両104を制御する他の装置101Dないし101Kから入ってくる制御コマンドのための導管および翻訳者としての役目も果たす。別の実施形態において、ホスト装置108は、人間ユーザ109のための制御ユニットとしての役目を果たすのではなく、むしろ、専用中央制御ユニットとして動作する。
プレーヤーコントローラ101Dから101Kは、ホスト装置108と直接的に通信することがあり、または、中間装置を介して通信することがある。たとえば、図1において、コントローラ101Jおよび101Kは、ゲームコンソール101Bを介してホスト装置108と通信する。同様に、元のホスト装置108までネットワーク化された一連の装置を通してホスト装置108に接続する1台または複数のスマートフォンのような何層もの接続がプレーヤーコントローラ101Dから101Kとホスト装置108との間に構成される可能性がある。
ユーザ109の数とAI制御された相手方の数とが増加するのにつれて、ホスト装置108上の性能要求が同様に増加することが当業者によって認められ得る。エージェント104の数とホスト装置108の容量とに依存して、計算要件の増加は、たとえば、性能に影響を与える可能性がある。少なくとも一実施形態において、システムは、たとえば、ホスト装置108が、ホスト装置のロジックの一部分を、ホスト装置が接続され、ロジックの実行をサポートする能力がある何台もの装置に分散させる能力を有する分散型環境において実施される。これらの実施例は、スマートフォン、タブレットコンピュータ、ラップトップ、ゲームコンソール、および/または、同種のものを含むが、これに割り当てられたロジックを動かすために必要なサポートを提供する能力がある何らかの適当な装置である可能性もある。少なくとも一実施形態において、たとえば、オペレーティングシステム1300に関連付けられた処理タスクの一部は、1台または複数のコントローラ101Dから101Hに分散させることができる。
分散が局所的にとどまることは必要ではなく、少なくとも一実施形態において、ロジックは、たとえば、1つまたは複数の遠く離れて位置しているサーバ(図示せず)に分散させられ得る。ホスト装置108の構造のモジュラー設計は、ロジックの使いやすい分散に役立つ可能性があり、ホスト装置108から負荷軽減されたロジックプロセスのタイプは、機能またはプロセスの1つの特有のタイプである必要はない。少なくとも一実施形態において、たとえば、ロジックの分散は、ホスト装置108のリソースの最も負荷の大きいロジックが最初にどこかに割り付けられるように、計算およびメモリ要求に従って優先度を付けられ得る。
コントローラ101Dから101Hと、および/または、コントローラ101Dから101Hの間で通信するために採用された無線インターフェースがユーザ109の制御下でエージェント104に接続するため使用された無線インターフェースと同一であることは必要ではない。たとえば、ホスト装置108は、Wi−Fiを使ってコントローラ101Dから101Hと通信することが可能であるが、ホスト装置108は、Bluetoothを使ってエージェント104と通信する。このような場合、ホスト装置108は、(Wi−Fiのような)高出力プロトコルと(Bluetoothのような)低出力プロトコルとの間でブリッジとしての役目を果たすことができる。このようなアプローチの利点は、ホスト装置108を使ってユーザ109によって制御された、または、(AI制御下のエージェント104Jの場合に)ホスト装置108によって直接的に制御されたエージェント104の電力割当が制限されている実例において認められ得る。
前述のとおり、コントローラ101Dから101Hは、適当な装置を使用して実施され得る。この場合も、無線ゲームパッドもしくはジョイスティックのようなあまり高性能ではないコントローラ101J、101Kが使用され得る。ホスト装置108との直接通信をサポートする無線通信モジュールを具備しないゲームパッドもしくはジョイスティック101J、101Kが使用される実例において、ホスト装置108への接続は、ゲームコンソール101Bもしくは他の中間手段を介して、または、ホスト装置108上の適切なポートに差し込まれるドングル(図示せず)の使用を介して実現され得る。このようなドングルは、コントローラ101に無線連結し、通信をこのドングルが差し込まれたポートに通す。ドングルの代替的な実施形態は、コントローラ101との互換性がある無線プロトコルとホスト装置108との互換性がある無線プロトコルとの間でブリッジを実施するユニットを含む可能性がある。
ユーザ109のコマンドを、ホスト装置108を介して、車両104Bから104Fに渡すことに加えて、コントローラ101Dから101Hは、ホスト装置108からゲームの現在状態を反映する更新内容を受信する可能性もある。少なくとも一実施形態において、一部もしくは全部のコントローラ101Dから101Hは、受信された状態情報に基づいてプレー体験を強化することができるように、(ディスプレイ、スピーカー、触覚出力メカニズム、および/または、同種のもののような)1台または複数の出力装置を装備する可能性がある。このような強化は、たとえば、現実感を増すために、または、そうでなければ見えない細部をユーザ109に提供するために、ゲームトラック上の行動を表現する、および/または、このような行動を増強させるレンダリング、触覚出力(たとえば、振動)、および/またはオーディオを含む可能性がある。
少なくとも一実施形態において、一部もしくは全部のコントローラ101Dから101Hを通してユーザ109に提示された視覚、触覚、および/またはオーディオ情報は、各装置に特有である可能性がある。種々のエージェント104は、(たとえば、位置、速度、状態、行動などに関して)所定の時点で異なった状態にあることがあり、その上、複数のユーザ109が単一のエージェント104を制御する場合、ユーザの役割もしくは制御は、異なることがある。その結果、各ユーザ109に提示された種々のキューおよびデータは、エージェント104の現在状態およびユーザ109の特有の役割に合わされ得る。
種々の実施形態において、コントローラ101Dから101Hのユーザは、物理的に存在することがあり、その結果、コントローラ101Dから101Hは、(Bluetoothのような無線プロトコルを使って)ホスト装置108と直接的に通信する。代替的に、コントローラ101Dから101Hのユーザは、離れて位置し、(ネットワーク111のような)ホストネットワークを介して接続されることがある。コントローラ101Dから101Hは、ゲーム状態に関してホスト装置108から送り返された情報に頼ることがある。
前述のとおり、少なくとも一実施形態において、複数のユーザ109は、ゲームの中の単一のエージェント104を制御することができる。たとえば、3人のユーザ109が単一のエージェント104を制御するかもしれないことがあり、1人のユーザ109が向きおよび速度の制御を提供し、別のユーザ109がエージェント104のアームもしくはフォークリフトを制御することができ、第3のユーザ109が補助操作要素を制御することができる。このようなシナリオにおいて、コントローラ101は、各ユーザ109によってこなされる役割に合わされた情報を提供する。
少なくとも一実施形態において、システムは、全体的な構築タスク割当のような高水準機能が移動エージェント104の外部にある制御装置によって担われ、個別のコンポーネント402のマニピュレーションのような低水準コマンドが各移動エージェント104の中で管理されるように、制御を分割するアーキテクチャを使用して実施される。このようなアーキテクチャは、たとえば、上記関連する出願に記載された技術を使用して実施され得る。他の実施形態において、たとえば、必ずしもより計算集約的なプロセスの負荷を対等の装置に課すことに頼ることのないその他の適当なアーキテクチャが使用され得る。
少なくとも一実施形態において、移動エージェント104が処理のため、または、ほかの高水準もしくは低水準機能性のため対等の装置に頼る必要がないとしても、このような装置は、ユーザが命令を1台または複数の移動エージェント104に提供することを可能にするため依然として設けられる可能性がある。
コンポーネント402の認識
少なくとも一実施形態において、異なるタイプのコンポーネント402が作業面407上で同時に使用される可能性があり、これらのコンポーネント402は、移動エージェント104および/または他のコンポーネント402を含むことがある。実際には、作業面407は、それ自体が1つのタイプの受動コンポーネント402であると考えられることがある。前述のとおり、コンポーネント402は、受動、準能動、または能動として分類され得るものであり、前述のとおり、コンポーネント402は、サイズ、形状、質量および/または物理的特性の他の態様が異なることがある。システムが最適に機能するため、少なくとも一実施形態において、移動エージェント104を制御するシステムは、コンポーネント402を認識し、各個別のコンポーネント402のタイプを決定する。
コンポーネント402は、特有の機能の観点でコンポーネントを識別する他の属性も有することがあり、このような差は、外観検査で見えることも見えないこともある。少なくとも一実施形態において、作業面で動作する移動エージェント104は、コンポーネント402を無事に、および、確実に動かし、操作するために、(他の移動エージェント104を含む)コンポーネント402を正確かつ確実に識別すると共に、作業面407上の、および/または、ある基準点に関するコンポーネント402の位置および姿勢を決定する能力を有している。
ある程度の数の方法のうちいずれかは、コンポーネントタイプ認識およびコンポーネント402の位置/姿勢認識のため使用され得る。少なくとも一実施形態において、1)機械読み取り可能なコード、2)純粋な画像処理、および3)構造化光のうち少なくとも1つを採用する光学に基づくアプローチが使用され得る。これらの方法は、単独で、または、相互の何らかの適当な組み合わせで使用され得る。
たとえば、構造化光アプローチは、単独で、または、他の方法のうち一方もしくは両方の補完として使用され得る。構造化光スキャナは、1台または複数のエージェント104に含まれる可能性がある。構造化光の応用の一実施例は、格子のような画素の既知パターンのスクリーンへの投影と、既知パターンが面に衝突したとき変形する様子を観察することとを含む。このようにして、構造化光は、空間の幾何学的離散化を生じさせる。構造化光は、色またはテクスチャに関する情報を省くことがあるので、色に基づいて検出可能なコンポーネント402の差は、構造化光方法によっては容易に識別できないことがある。付加的に、構造化光スキームの分解能と比べるとささやかである表面特徴の差に基づく区別は、同様に検出することが困難になることがある。このようにして、少なくとも一実施形態において、構造化光を1つまたは複数の補完的な認識方法で補完することは、有用であることがある。
機械読み取り可能なコードを使用する実施形態において、作業面407上での測位を実現し易くるすための前述の方法のある種の態様は、コンポーネント402の認識に同様の形式で役立つことがある。具体的には、幾何学的パターン、および/または、QRコードのようなエンコードされたデータの使用は、コンポーネントタイプ、面503,および/または姿勢を認識するのに役立つ可能性がある。少なくとも一実施形態において、(コンポーネント402の面503をマークするためのQRコードのような2Dエンコーディングスキームの使用は、機械読み取り可能なコードの観測における好ましいコンポーネント402の姿勢を暗示する可能性がある。コンポーネントタイプ、コンポーネント402の寸法、または(マークを付けることができる)コンポーネント402の特異面503のような重要なコンポーネント402の特性を識別するのに役立つ可能性がある付加情報は、機械読み取り可能なコードの範囲内にエンコードされる可能性がある。
少なくとも一実施形態において、エンコーディングスキームは、移動エージェント104によるコンポーネント402の認識を実現し易くするため設けられ、このスキームは、たとえば、エンコードされたデータを順序付き配列のような適切な構造に体系化することができる。このような配列の実施例は、最初の2桁がコンポーネントタイプを識別し、最後の桁がコンポーネント402の特異面503を指示する3桁のコードである。(たとえば、立方体の形をしたコンポーネント402は、6個の特異面候補:北、東、南、西、上および下を有するものである)。このようなアプローチは、移動エージェント104が特有のコンポーネントタイプIDコードに対応するコンポーネント402の幾何学的形状に関する情報を入手可能にさせる。このような情報は、移動エージェント104上のメモリに記憶されることがあるか、または、必要に応じてダウンロードもしくはアクセスされることがある。当業者は、このようなエンコーディングスキームが単なる典型例であること、および、他のスキームが使用され得ることが分かるであろう。
別の実施形態において、画像データおよび/またはIDコードは、処理のため別の装置に渡される。このようなアプローチは、たとえば、移動エージェント104が集中制御される、もしくは、ホスト装置108のような単一の装置によって監視される実施形態において使用され得る。画像データおよび/またはIDコードは、このようにして、翻訳された結果が移動エージェント104に送信される、または、このような結果に基づく命令が移動エージェント104に送信されるのに伴って、ホスト装置108で処理される可能性がある。
さらに別の実施形態において、コンポーネント402の情報は、コンポーネント402の面503の直交する寸法、または、コンポーネント402の形状と、面寸法もしくはその他の決定的な特性を捕捉する後続の情報とを示すデータのようなエンコードされたデータ自体に組み込まれる可能性がある。当業者は、一部の状況において、上記IDエンコーディングスキームは、従来型の立方体形より複雑である、もしくは、異なる幾何学的形状を持つコンポーネント402(たとえば、実用的なサイズのここまでに検討されたコードを置き換えるために十分ではないサイズもしくは割合を持つ面で構成された幾何学的形状を持つコンポーネント402)と同じ様に特徴付ける傾向がないかもしれないことが分かるであろう。このような場合、代替的なエンコーディングフォーマットは、より広い形式のアレイにより良く適合するが、コンポーネント402の面503にコード化されたマークでサイズ、タイプ、および姿勢データを提供する基本的なアプローチを依然として維持する、と考えられるかもしれない。
好ましい姿勢の基準を提供する機械読み取り可能なコード(「マーク」とも称される)の見え方が観察者と垂直なマークされた面の相対的な回転姿勢を決定するために使用され得るのとちょうど同じ様に、観測された機械読み取り可能なコードの形状の見え方がこの面と垂直方向から見たときの見え方が相違する様子は、観測点に対する空間内のコンポーネント402の相対的な位置および姿勢に関する情報を提供する。具体的には、標準的な幾何学的フォーマットを固守するグラフィカルデータエンコーディングスキームが採用される状況において、標準的なフォーマットからの観測された機械読み取り可能なコードの偏りは、エージェント104上のカメラまたはスキャナに関してコンポーネント402の位置および姿勢を決定するために使用され得る。
たとえば、QRコードに対して、仮定される形は、正方形である。このようなコードがコードの中心に垂直であるベクトルの外側で観察されたとき、投影図は、形状を予測できる方法で変形させる。幾何学的形状が投影図によってどのように変形されるかについての理解に基づいて、システムは、観察者に関して、コードが付けられた面の相対的な位置および姿勢を推定することができる。このようにして、少なくとも一実施形態において、システムは、コードの垂直方向見え方およびサイズの知識を使用して、相対的な距離および姿勢を生じるために、観測されたコードの見え方を処理し、相対的な距離およびサイズの両方は、予備知識を通して、またはコードを読み取ることによって、あるいは、両方の何らかの組み合わせによって利用できるようにされる。
場合によっては、画像解像度、観測距離、および/またはその他の要因は、コード化された面の相対的な位置及び姿勢を決定するシステムの精度を制限する。その結果として、少なくとも一実施形態において、コード化されたマークの見え方の解析を通して情報を補完する他の方法が使用される。たとえば、付加的なマークが1つまたは複数のロケーションでコンポーネント402に設けられることがある。平坦な面を持つコンポーネント形に対して、コーナー点がコンポーネント402の幾何学的形状上で容易に識別可能な点と一致する基準を決めるためにマークされることがある。たとえば、立方体形状ブロックであるコンポーネント402に対して、基準マークが立方体の8つのコーナーに置かれることがあり、4個のマークは、立方体形状のブロックのいずれか特有の面に隣接して位置している。コンポーネント402の面503がこの上に位置しているコードマークより大きい実例において、面の限界(すなわち、コーナー)に位置している基準マークは、観測点と相対的な特有の面の位置および姿勢を識別するために役立ち得る改善された投影図を提供する。
種々の実施形態において、このような基準マークは、ある程度の数の形のうちいずれでもとることができる。少なくとも一実施形態において、マーク、および、マークとコンポーネント402の面503との関係の両方の認識の信頼性を改善する役目を果たすスキームが採用される。
今度は図7Aから図7Cを参照すると、ブロックのような立方体形状のコンポーネント402の面503に現れたときの基準マーク701のいくつかの実施例が示されている。図7Aに示されるように、基準マーク701の間の既知距離は、カメラまたはスキャナ(図示せず)からコンポーネント402の相対的な位置および姿勢を決定するために使用され得る。このような基準マーク701は、前述のとおりの機械読み取り可能なコード601に加えて面503に置かれることがあるが、このような機械読み取り可能なコード601は、明瞭さのため図7Aないし図7Cから省かれている。
図7Bに示されるように、少なくとも一実施形態において、面503の各コーナーに位置決めされたマーク701は、このマークの関連付けられた幾何学的コーナーを指し示すように成形され、向きを合わされる。このようなアプローチは、観測が複数の面、または、1つまたは複数の面503および/またはコードの不完全な視野を含むことがあるとき、別々の個々の面503の分解を実現し易くすることができる。このような実例において、各マーク701が関連付けられた幾何学的点を表現する基準マーク701からのデータ点の点群の生成は、別々の面503に正しく分解することが難しいことがある点の集合を生じさせる。これの理由の1つは、コーナーロケーションを示す空間データが、コーナーロケーションを画定する面がどのように収束するかを必ずしも示さないからである。数学用語で説明すると、3次元立方体に対して単一のコーナー点の知識しかない場合、交点がコーナー点を画定する3つの面503のいずれかに対する有効な位置は、3次元全てでコーナー点の周りに回転させられた立方体の全範囲の位置解候補で構成される。その結果、マークされた点と相対的に面503の拡張の向きの指標を与える基準マーク701の使用は、基準点の点群からの面503の分解を実現し易くする。
場合によっては、別々の面503上の基準マーク701は、特別な見晴らしの良い地点からの観測がマーク701を識別する困難さ、または、基準点に関する曖昧さを生じさせることがあるほど、非常に接近して位置することがある。たとえば、基準マーキングスキームが立方体のあらゆる面503のコーナーロケーションにマーク701を使用する場合、コーナーを定義する面503のうち目に見える2つ以上でコーナーを表現する観測点に対する立方体の姿勢は、同様に複数の参照マーク701を明らかにする。基準マーク701が立方体の局所的なエッジまで完全に延びる場合、結果として得られる集合形状を別々の基準マーク701に分解することは、困難になることがある。こういうわけで、各面503のエッジから遠くに基準マーク701をオフセットさせることは、有利になることがあるので(図7Aから図7Cに示されるように)、その結果、同じ点を指示する複数の基準マーク701を含むことがある観測値は、そのようなものとしてより簡単に識別され得る。
面530の空間特性を決定する手段としてコーナー点にマークを付ける上記技術は、本システムおよび方法に関連して使用され得るアプローチの単なる一実施例である。他の技術が使用され得る。たとえば、エッジは、コーナー点に類似する形式をした幾何学的描写の基礎を提供し、直線またはエッジ検出は、コーナーマーキングスキームと別々に、または、コーナーマーキングスキームを補完して続行されることがある代替的な手段を提供する。エッジ検出は、画像処理の技術分野において周知であり、特に、コンポーネント幾何学的形状候補が予め分かっているかもしれない、または、(コンポーネントIDコードのような手段によって)取得されることがある場合、本システムおよび方法の脈絡において特に役立つ可能性がある。一部の実例において、エッジは、点ではなく、曲線もしくはベクトルとして定義されるので、コーナーに対する優位性がある。少なくとも一実施形態において、その結果、マーキングスキームは、コーナーに加えて、または、コーナーマーキングアプローチに代えて、エッジを強調表示することに向けられることがある。
機械読み取り可能なコード601および/または基準マーク701を使って表面にマークを付けるため適当な形が使用され得る。少なくとも一実施形態において、色は、特別なコンポーネントタイプまたはこれの態様を識別するのをさらに支援するために使用され得る。少なくとも一実施形態において、マーキングは、(適当な色または色の組み合わせの)インクを塗布することにより、および/または、テクスチャリングもしくはレリーフによって、および/または何らかの物質変動によって実現され得る。少なくとも一実施形態において、マークは、可視スペクトルにおいて透明であるが、紫外線周波数もしくは赤外線周波数のような可視範囲の外側の光の波長で可視性であるインクを用いて表面に塗布される。このアプローチの優位性は、マークがユーザから見えず、その結果、コンポーネント402の見え方を邪魔することなく、損なうことがないことである。
コンポーネント402は、潜在的に複雑な面を有することがあり、および/または、機械的もしくは他の機能性を有することがあるので、一部のコンポーネント402が機械読み取り可能なコード601もしくは基準マーク(群)701を上に位置付けるために十分なもしくは使い勝手のよいエリアを欠いている面503を有することがある可能性がある。これらの実例において、コンポーネント402が面503のような面の存在を有効にするメカニズムを含むことは、そうでなければ存在したであろう識別マーク(機械読み取り可能なコード601もしくは基準マーク(群)701)の全部または一部をサポートする能力がないにもかかわらず、依然として望ましいことがある。少なくとも一実施形態において、コード601および/または基準マーク(群)701が不完全であるという識別が(機械読み取り可能なコード601もしくは参照マーク(群)701に加えて、または、これらの一部として)提供される。このようなアプローチは、完全な機械読み取り可能なコード601を捕捉しようとする面の繰り返し観測を抑制する役目を果たす可能性がある。
このようにして、少なくとも一実施形態において、パターンは、特別な面503上の完全に利用可能な空間の全域に適用される可能性があり、このようなパターンは、コンポーネント面503をコーディングするときに適用されたマークのタイプ(機械読み取り可能なコード601もしくは基準マーク(群)701)とは異なり、このようなパターンは、不完全な機械読み取り可能なコード601または基準マーク(群)701を示す。実施例は、姿勢が面503の支配的なエッジから45°オフセットされている縞模様パターンである。このパターンを検出する観測は、コンポーネント面503が不完全であるか、または、エンコードされたデータを提示しないことを決定する可能性があるが、面503の幾何学的限界の一部分の輪郭を描く可能性もある。このようにして、システムは、コンポーネント402の全体の空間的位置決めおよび姿勢(ならびに、他のコンポーネント402および面407との関係)の包括的な理解を生じさせることに向けて関連のあることがある情報を依然として取得することができる。
本明細書に記載された技術を使用して、その結果、システムおよび方法は、作業面407で動作している移動エージェント104の測位をサポートし、ブロックのようなコンポーネント402とのこのような移動エージェント104の相互作用を実現し易くする環境を提供する。本明細書に記載された技術は、移動エージェント104が移動エージェント104、他のコンポーネント402、および/または(これ自体がコンポーネント402であると考えられることがある)作業面407に関してこのようなコンポーネント402の位置および/または姿勢を決定することを可能にするために使用され得る。
少なくとも一実施形態において、各移動エージェント104は、動作環境の限界、および/または、環境の内部でのこの移動エージェントの位置を理解しているので、コンポーネント402の識別および認識と、エージェント104の既知位置および姿勢と相対的なこれらの空間的配置とのプロセスを通して、各エージェント104は、動作環境の限界および/または(たとえば、作業面407上の共通原点でもよい)大域的な基準点の脈絡において、コンポーネント402の空間的配置を理解することができる。その結果として、作業面407および他のコンポーネント402の両方は、移動エージェント104による測位を一体として、または、別々にサポートすることができる構造化環境を構成する。
種々の実施形態において、システムは、作業面407と、コンポーネント配置の現在知識とのいずれかまたは両方を使用する可能性がある、および/または、相互に切り替える可能性がある。移動エージェント104は、既知ロケーションにある特別なコンポーネント402をこれの現在位置からある距離だけ動かす仕事が課される一実施例において、システムは、好ましくは、従来通りのやり方でコンポーネント402を持ち上げ、把持し、または、そうでなければ、コンポーネント402の位置をとるためにエージェント104を配置するように、エージェント104をコンポーネント402のロケーションまで連れて行く経路を計画することがある。移動エージェント104がコンポーネント402のロケーションまで進む、または、コンポーネント402と共に意図された次のロケーションまで動く間に、エージェント104は、作業面407上で基準のため(または大域的な位置に関して)エンコードされた、または、そうでなければ、マークされた情報を利用することがある。移動エージェント104がコンポーネント402に十分に接近すると、しかしながら、コンポーネント402に関するエージェント104の位置および姿勢は、作業面407上での移動エージェント104の絶対位置より、コンポーネント402を捕捉する、もしくは、操作するという当面のタスクにより一層関連性があるかもしれない。作業面を用いて大域的な位置および姿勢の監視への注目から、捕捉またはマニピュレーションのため識別されたコンポーネント402に関する測位に向けられた注目に移行することは、たとえば、目標とするコンポーネント402のマップされたロケーションに存在する潜在的な誤差を認識することに基づくことがある。移動エージェント104をコンポーネント402の最も近いロケーションへ案内するためにマップデータに頼ることは、移動エージェント104が視線なしでコンポーネント402に効率的かつ確実に到達する手段を提供する。移動エージェント104が、エージェント104の内蔵センサを通して提供された処理データを使ってエージェント104に関してコンポーネント402の位置および姿勢を決定することが可能である程にコンポーネント402まで接近した距離の範囲に入ると、コンポーネント402がエージェント104によって捕捉されるまで、このアプローチに切り替わることが望ましいことがある。この時点で、移動エージェント104は、作業面407に関する(またはエージェント104の大域的位置に関する)測位に戻ることがある。
同じように、意図された位置および姿勢でのコンポーネント402のプレースメントは、移動エージェント104によって運ばれるコンポーネント402の意図された最終位置および姿勢に隣接する可能性がある他のコンポーネント402に関する優先的測位への切り替えを同様に含むことがある。このような場合、コンポーネント402の空間データは、たとえば、移動エージェントに取り付けられた下向きカメラによって、そして、移動エージェント104の幾何学的形状の既知の幾何学的形状をコンポーネント402および設置されたコンポーネント402の最終位置と関連性のあるその他のコンポーネント402(たとえば、設置されたコンポーネント402のロケーションの下に積み重ねられたコンポーネント402)の幾何学的形状と共に利用することによって、作業面407の測位スキームによってサポートされた精度の限界までの精度で定められる可能性がある。
少なくとも一実施形態において、複数の移動エージェント104は、作業面407上で同時に動作することがあり、別個のタスクに従事させられている、または、協働して(または、シミュレーション上であるか、現実であるかを問わずに、競争的に、もしくは互いに衝突して)作業している。移動エージェント104が互いに積極的に協働しているか否かを問わずに、作業面407の別々の観測を通して得られた情報は、単一の大域的な作業面407環境のモデルに組み合わされ得る。このようなデータの集約は、関連性のある作業面407の空間に位置している全てのコンポーネント402のより包括的またはより完全な概説と、コンポーネント402のそれぞれの位置および姿勢に関連するより正確な情報とを生じさせることがある。推定上、システムが、移動エージェント104が動作している物理空間の仮想モデルがホスト装置108のような集中ノードの中に存在するアーキテクチャを利用する場合、このようなモデルは、移動エージェント104を介して別々に取得された全てのコンポーネントタイプ、位置、および姿勢に関連した全ての関連性のある情報を組み込むことができ、および/または、このようなデータを全体的もしくは部分的に提供するために装備されることがあるその他のタイプのコンポーネント402を介して別々に取得されることもある。このようにして、関連性のある作業面407に近接しているコンポーネント402の包括的な表現が作り出され得る。このような包括的な表現は、2013年8月9日付けで出願された、“Integration of a Robotic System with One or More Computing Devices”と題する関連する米国特許出願第13/963,638号(代理人整理番号ANK002)に記載されているように、その後、コンポーネント402、作業面407、および/または移動エージェント104の仮想表現を構築するおよび/または維持するときに、ならびに、コンポーネント402、作業面407、および/または移動エージェント104の物理的位置及び姿勢を対応する仮想表現と一致させるため使用され得る。
別々の移動エージェント104から得られたコンポーネントタイプ、位置および/またはロケーションに関する情報が精密に一致しないことがある可能性のため、少なくとも一実施形態において、動作環境の単一の表現を構築するときと維持するときとの差を一致させるメカニズムが実施されることがある。データは、最小誤差を伴うデータが別々のソースからの情報を集約するときにより大きい誤差を伴うデータより大きい重みを持つように、潜在的な誤差に従って優先度が付けられ得る。
たとえば、2台の移動エージェント104が作業面407上の別々のロケーションから、すなわち、一方がコンポーネント402に接近した見晴らしの良い地点から、もう一方が遠く離れたロケーションから、同じコンポーネント402を観測することを仮定する。移動エージェント104が同じ精度の水準で作業面407からこれらの固有の位置及び姿勢情報を導き出し、両方がコンポーネント402を観測するために同じカメライメージング技術を利用する場合、コンポーネント402により接近して位置決めされた移動エージェント104は、ほとんどの場合、相互に考慮されるコンポーネント402の空間的配置に関して、エージェント104がより遠くに位置決めされた場合より信頼できる情報を提供することが期待される。視野角の差、または、1台の移動エージェント104が動いている間にコンポーネント402を観測しているかどうか、もしくは、一方が部分的に遮られた視野を有するかどうかのような種々の要因がこのような実施例におけるデータの品質に影響を与えることがある。その他の差は、観測の条件にさらに存在することがある。少なくとも一実施形態において、このような要因のいずれかもしくは全部は、2つのソースからのデータに優先度を付ける際に考慮され得る。
当業者は、他のスキームが異なるソースから受信された矛盾したデータに優先度を付けるため使用され得ることが分かるであろう。
少なくとも一実施形態において、移動エージェント104(および/または他のコンポーネント402)は、作業面を含む環境の物理状態の正確な仮想表現を構築し、維持するために、進行中の監視および/または探査に携わる。少なくとも一実施形態において、
移動エージェント104は、既に多くのコンポーネント402が入っている空間に案内されるものであると期待されることがある。同様に、一部の状況において、コンポーネント402の構成は、組立体が偶然に崩壊することがあるとき、または、意図的に解体されるときにように、予測することが難しい方法で変化することがある。いずれの場合も、エージェント104は、物理状態と構築された仮想表現との間の不一致を認識するように構成されることがある。
本明細書において検討されるように、エージェント104および/またはコンポーネント402の仮想表現と物理的位置との間の衝突の場合、適切な調整が物理的位置および/または仮想表現のいずれかまたは両方に行われる可能性がある。優先度が、必要に応じて、仮想または物理のいずれかに与えられる可能性がある。
今度は図8を参照すると、移動エージェント104が仮想状態と物理状態との間で等価性を維持するために継続的に利用することがあるプロセスを記述するフローチャートが示されている。図8に描かれたステップおよび機能は、移動エージェント104の唯一の区別できるタスクであることがあり、または、他の活動と組み合わされることがあり、このような他の活動と同時に実行されることさえある。このような調停のための付加的な技術は、たとえば、2013年8月9日付けで出願された、“Integration of a Robotic System with One or More Computing Devices”と題する関連する米国特許出願第13/963,638号(代理人整理番号ANK002)に記載され、この米国特許出願は、参照によって本明細書に組み込まれる。
この方法は、800で始まる。最初に、移動エージェント104は、他のタスクと同時に実行されることがあるサービス機能として実施されることがある観測および監視状態801にある。この状態にある間に、エージェント104は、イベントを検出すること、および/または、外部ソースから、すなわち、他の移動エージェント104から、もしくは、代替的なイベント通知の形を使って受信された情報を受信することができる。たとえば、移動エージェント104は、落下するコンポーネント402と調和する音、または、加速度計によってピックアップされた作業面内の振動を検出することがある。
少なくとも一実施形態において、ステップ802において、イベントが検出されなかった場合、エージェント104は、作業面407の全てのエリアが調査されたか否かを決定803し、そうである場合、この方法は、観測および監視状態801に戻る。まだ調査されていないエリアが残されている場合、少なくとも一実施形態において、さらなる調査が、たとえば、作業面407上で位置を移すこと、姿勢を変えること、および/または、何らかの他の動作を実行することのようなある調整804が行われることにより、実行され得る。この方法は、次に、観測および監視状態801に戻る。
イベントの検出802、たとえば、移動エージェント104によるコンポーネント402の検出に応答して、コンポーネント認識ステップ805が始まる。ここで、移動エージェント104は、状態が変化したコンポーネント402を認識しようとする。コンポーネント402がうまく認識された場合、移動エージェント104は、結果として得られるコンポーネントタイプ、位置および姿勢に関する情報が物理空間の仮想表現内で更新される報告および更新ステップ808を実行する。イベントが報告され、仮想環境がその結果として更新808されると、この方法は、観測および監視状態801に戻る。
検出802および認識805は、コンポーネント402の位置が上位の観測データに応答して僅かに修正されるときのような小さな出来事に、または、コンポーネント402が長距離に亘って動かされるとき、もしくは、落下したコンポーネント402の散乱物が作業面407上で突然に検出されるとき、もしくは、積み重ねられたコンポーネント402の組立体が崩壊もしくは予期しない除去の結果としてこの組立体の前のロケーションから突然に消えるときのようなより大きな出来事に応答して実行され得る
ステップ805において、検出されたコンポーネント402がうまく認識されなかった場合、少なくとも一実施形態において、移動エージェント104は、代替的な見晴らしの良い地点が見込まれるか否かを決定806することがあり、見込まれる場合、エージェント104は、コンポーネント402を識別するか、または、そのようにするための利用可能な見晴らしのよい地点を使い尽くすまで、認識されていないコンポーネント402への集中を維持したままの状態で、この見晴らしの良い地点を調整807することを試行する。調整807の後、この方法は、検出802および認識805がもう一度試行され得るようにステップ801に戻る。
少なくとも一実施形態において、代替的な見晴らしの良い地点がステップ806において見込まれない場合、移動エージェント104は、ユーザ支援が利用できるか否かを決定809することがあり、利用できる場合、ユーザ(または他のソース)からの支援を要求811する。少なくとも一実施形態において、このような要求は、システムもしくはシステムの移動エージェント104が認識することのできない物理状態の態様が存在することをユーザに通知することにより実行されることがある。このような通知に応答して、ユーザは、たとえば、そうでなければ認識できた筈のまぜこぜにされたブロックの山を解体することにより、および/または、作業面407上に存在することがある非ブロックコンポーネント402(すなわち、ブロックとして認識可能なコンポーネント402のエコシステムとは異質である品目)を除去することにより、適切な解決を提供できることがある。
ステップ809において、ユーザ支援が利用できない場合、移動エージェント104は、前述の解体および除去プロセス自体を実行することを試行810することがある。たとえば、移動エージェント104は、コンポーネント402もしくはその他の物体を識別する試行を中止し、その代わり、(たとえば、押しのけることにより)これを作業面407から除去することを試行するときを決定するために適当な技術を使用することがあり、このような決定は、たとえば、コンポーネント402を識別する試行が所定の失敗回数に到達すること、および/または、その他の基準に基づいて、移動エージェント104もしくはホスト装置108によって、または、何らかの他のコンポーネントによって自動的に行われることがある。
注意すべきことは、少なくとも一実施形態において、図8に示されたプロセスフローが完了を示すのではなく、むしろ、観測および監視ステップ801に戻るループを示すが、動作は、トリガーイベント、コマンド、もしくはその他の条件に基づいていつでも適当な時点に終了できることである。
少なくとも一実施形態において、何台もの移動エージェント104が図8に描かれたプロセスフローに類似したプロセスフローを同時に実行することがあり、このような並列動作は、単一のエージェント104から生じるより高速に作業面407の環境における物理空間のより正確な表現を生じることがある。複数のエージェント104の使用は、プロセスフローを改善する機会を提供する可能性がある。たとえば、最初の物体の認識に失敗した場合、複数のエージェント104は、観測データを同時に収集し、共有して、コンポーネント402もしくは他の物体の認識成功の尤度を高める可能性がある。同様に、エージェント104は、コンポーネント402もしくは他の物体を解体するときに効率改善を実現し易くするために協働する可能性がある。
移動エージェント104に作業面407の周りの環境の物理状態の変化を検出する能力を与えることは、システムおよび方法が物理状態と、行動の計画および実行のための基礎として使用されるこの物理状態の仮想表現との間に一貫性を維持することを可能にさせる。この点において頑強性は、変化に対する有利な応答性を生じさせる可能性があるが、変化を検出する際の遅延は、必ずしもシステムがユーザから引き出す係わり合いの水準を低下させることを要しない。実際に、移動エージェント104が予期しないまたは計画されていないこの移動エージェントの環境の変化を検出するために要する時間は、ユーザにとって娯楽の源泉になり得る。一部のユーザは、移動エージェント104が変化イベントを検出するためにうまく配置されていない時にコンポーネント402の構成もしくはプレースメントを変更し、その後、移動エージェント104が差を検出し、変化を認識し、もしあれば、応答としてどの行動をとるべきかを引き続き決定するために要する時間の長さを観察することを想像できる。
作業空間の共有表現に頼る複数の移動エージェント104の動作は、タスクを実行するために移動エージェント104の間の協働を体系化するのに役立つ。その結果、少なくとも一実施形態において、複数の移動エージェント104は、共有する目的に個々に寄与することがあり、または、タスクを共有することがある。たとえば、2台の移動エージェント104は、単一のコンポーネント402、または、非常に嵩張るもしく非常に重い、あるいは、そうでなければ、非常に扱いにくいために単一の移動エージェント104によって扱うことができないコンポーネント402の組立体を運ぶかもしれない。
今度は図9を参照すると、2台の移動エージェント104が係わり合い、各々がコンポーネント402Fの一方の端部から物理的負荷(コンポーネント402F)を持ち上げる実施例が示されている。エージェント104は、その後、これらの共用の貨物のための意図されたロケーションまで連携して移動する。このようなタスクは、計画および動き制御の両方と、このような協調を許す機構とを必要とする。たとえば、図9の右手側に示されるように、弧901に沿ってコンポーネント402Fを動かすことは、より詳細に後述されるように、操舵動作が2台のエージェント104の間で連携されることを必要とする。
種々の実施形態において、移動エージェント104に設計された移動の手段は、たとえば、歩行型システム、軌道もしくは車輪のようなローリングシステム、および/または同種のもののようないくつかの形のうちいずれかをとる可能性がある。本明細書において記載され、描かれた特定の移動技術は、単なる典型例である。少なくとも一実施形態において、様々なエージェント104は、様々な移動手段を有する可能性があり、少なくとも一実施形態において、システムおよび方法は、協働行動を含む行動を計画および実行する際に、種々の移動エージェント104のための移動手段の特質(ならびに、これらのそれぞれの能力および/または限界)を考慮する。
図9の現在の実施例において、移動エージェントが、回転することなく作業面に平行である水平平面の内部でいずれのベクトルでも任意に動く能力(たとえば、カニに類似する自由度を持つ脚組立体)、または、コンポーネント402を持ち上げるおよび制御するために使用されるこの移動エージェントのハードウェアに関してこの移動エージェントの移動システムを回転させる能力のいずれかを有することは、重要であると考えられることがある。このようにして、少なくとも一実施形態において、このシステムは、図9の実施例に示されるように、共用の貨物を運搬する2台の移動エージェントがどのようにして向きを変えるかを検討する際にこのような柔軟性を考慮する。
具体的には、前述のとおり、図9は、2台の移動エージェント104がコンポーネント402Fを運搬する際に協働することを描く。図9の左手側は、直線状の運搬のための配置構成を示し、右手側は、進行経路が直線から逸れる(たとえば、弧901に沿う)ときに、各エージェントの昇降および搬送システムとは独立に各エージェント104の移動システムの回転を許す機械的システムの重要性を示す。自在脚部902は、単一のまとまったユニットとしてのこれらの回転を許すが、回転ジョイントを介して持ち上げシステムに接続された移動プラットフォーム903は、軌道型もしくは車輪型エージェント104が共用の貨物(たとえば、コンポーネント402F)の運搬中に蝶番点としての役目を果たすことを可能にさせる。本明細書に記載された特定のシステムは、コンポーネント402の連携された運搬に含まれる複雑さを取り扱うときに独特の優位性を提供し、同等の装置内の集中制御に基づくネットワークアーキテクチャを使用することにより、システムおよび方法は、ある程度の台数の移動エージェント104の間でこのような作業をより簡単に連携させることができる。
場合によっては、コンポーネント組立体を構築するときの空間的制約は、コンポーネント402の最終位置においてコンポーネント402の使い勝手の良いプレースメントを除外することがある。たとえば、2台の移動エージェント104によって搬送されたコンポーネント402を2個の既に存在しているコンポーネント402の間の狭い空間の中へ滑らせることが意図されている場合、機械的設計および空間的構成に依存して、エージェント104が搬送されているコンポーネント402をこのコンポーネントの最終位置に直接的に置くことが不可能であることがある。このような実例において、2台の移動エージェント104の動きを連携させる計画システムまたは方法は、たとえば、移動エージェント104にこの組立体を最終位置の近くにある便利なロケーションに置かせ、引き続いて、(所望の位置への単一もしくは連携型の押し込みのような)何らかの代替的な手段を使ってこの組立体を置かせることがある。
感情
少なくとも一実施形態において、システムは、移動エージェントのタスクを実行する過程で、学習、移動エージェント104の間の高機能相互作用、ならびに、意味のある感情の表現を持続する可能性がある状況認識の頑強なプラットフォームを提供する。このような応答システムは、多くの形をとることがある。一部の実例において、感情は、移動エージェント104によって行われる基本的なタスクの実行を実質的に変更することなく、体験に豊かさのレベルを追加することがある。他の場合、イベントに対する感情応答は、進行中であるか、計画中であるかを問わずにタスクの系列もしくは実行についての結果を伝える。
今度は図10を参照すると、一実施形態により、移動エージェント104がユーザからのコンポーネント402を要求するシナリオを概説するプロセスフローチャートが示されている。最初に、ユーザからの支援が要求され1001、具体的には、移動エージェント104に近接したある特定のロケーションにブロックを置くことをユーザに依頼する。要求が行われると、待機期間が開始し1002、この期間中に、エージェント104は、観測もしくは他の移動エージェント104による報告のいずれかによって、または、これらの組み合わせによって、作業面407上で発生するイベントを監視する。イベントは、要求の達成を充足する一致が存在するか否かを決定するために、エージェント104の要求と比較して検査される。関連性のあるイベントが検出もしくは報告され1003、認識され1005、要求に一致すると決定された場合1006、移動エージェント104は、プロセスの開始時に支援の要求を促したタスクを再開し1007、この方法は終了する1099。
ステップ1005において、イベントが認識されていないか、または、ステップ1006において、イベントが要求に一致しないと決定された場合、この方法は、ステップ1002に戻る。
このプロセスの間に、要求に一致するイベントが発生するまで、経過時間が制限taと対照して監視され1004、制限を超えるとステップ1001に戻ることが促され、ユーザは、再び支援を依頼される。
今度は図11を参照すると、図10に示されたのと同じ結果をサポートするが、付加的な結果および/または状態として感情的考慮を含むプロセスが示されている。これらの潜在的な感情応答および/または状態の導入は、本実施例においてより複雑な相互作用を提供する。場合によっては、これらの新しい結果は、(図10に関連して前述されたように)感情状態が存在しない場合に起こることになる期待された結果と同じではない。娯楽製品のジャンルにおいて、このような期待されない結果は、これらの製品が表現することがある驚きおよび多様性で評価される可能性がある。
本実施例において、タスクに関連して提供されることがある感情表現は、広いカテゴリ(積極的、消極的、穏やか、および困惑)の下で識別されるが、これらは、単に実施例として挙げられている。提示され得る特定の状態、および、これらがどのように具現化されるかは、変化する可能性があることが認めるであろう。
その上、少なくとも一実施形態において、この感情的考慮は、たとえば、エージェント104が進んで待機する時間の長さ(ta)、または、要求が繰り返されることがある回数(Ar)のようなパラメータに影響を与える可能性がある。感情は、多種多様な方法で表れることがあるので、他の実施形態は、性格のシミュレーションを含む他の感情応答を提供し、実施する可能性がある。
今度は図2をさらに参照すると、一般化された性格タイプに従って、プロセス内の種々のステップでの行動を通知する応答およびパラメータの組を描いている表201が示されている。たとえば、「外向積極的」な性格タイプに適合する移動エージェント104は、性格プロファイルが「繊細消極的」である移動エージェントと比べると、より強い忍耐強さ、より友好的な係わり合いを示し、より高い可能性で好感をもたれる結果を生じさせる感情応答を表出する。
このような応答は、図11に関連して前述された方法に直接的に適用可能である。移動エージェントが待機状態にある間にイベントが検出されない場合1003、この方法は、経過時間が所定の期間taに達したか否かを検査し1004、taが経過すると、この方法は、ユーザに対して行われた支援要求の回数が所定の量Arを超えたか否かを決定する1102。支援要求の回数が未だArを超えていない場合、この方法は、ステップ1001に戻って、要求を繰り返す。ステップ1102において、支援要求の回数がArを超えている場合、エージェント104は、消極的な感情表現および/または物理的行動を表出し1103、この方法が終了する1199。種々の性格タイプに対する消極的な感情表現および/または物理的行動の実施例は、図2の表201に示されている。
図2の表に示されるように、taおよびArは、移動エージェント104の性格タイプに依存して変化する可能性がある。このようにして、外向積極的な移動エージェント104が元の要求を繰り返す前に待機する期間は、繊細消極的な移動エージェント104が待機する期間より長くされることがあり、どちらも控えめな積極的な移動エージェント104が待機するより長く待機することはない。同様に繊細消極的な移動エージェント104は、taに達した後に元の要求を繰り返すことはなく(Ar=1)、その代わりに、消極的な感情表現および/または消極的な物理的行動1103を使って未充足の要求に応答することになる。
図11は、感情表現および/または物理的行動が表出され得る他の実例をさらに含む。たとえば、イベントが検出または報告されているが1003、イベントが認識されていない場合1005、エージェント104は、ステップ1001に戻る前に、困惑した感情表現および/または物理的行動を表出する1101可能性がある。別の実施例として、イベントが検出され1003、認識され1005、要求と一致すると決定された場合1006、経過時間tまたは支援要求の回数Aがそれぞれの閾値taおよびArを既に超えているか否かに関して決定が行われる1104。既に超えている場合、少なくとも一実施形態において、エージェント104は、穏やかな感情表現および/または物理的行動を表出し1105、その後、このエージェントのタスクを再開する前に1107、積極的な感情表現および/または物理的行動を表出する1106。経過時間tもしくは支援要求の回数Aがそれぞれの閾値taおよびArを未だ超えていない場合、エージェント104は、穏やかな感情表現および/または物理的行動を表出することがなく1105、このエージェントのタスクを再開する前に1107、積極的な感情表現および/または物理的な行動へそのまま進むだけである。特定の特性およびイベントに依存して、他の変形例が考えられ得る。
図2は、移動エージェント104の様々な性格タイプに対する種々の応答タイプを構成する行動が何であるかを記載する。概して、この表にプロファイルされた性格タイプは、1つずつに関連付けられた応答およびパラメータに対する省略記号表示としての役目を果たす可能性がある。
図2における表は、実施例としての役目を果たすことが意図され、当業者は、本明細書に記載された技術に従って、性格を定義し、傾向もしくは特徴をこれらの性格に一致させるときに、多くの様々なアプローチが使用され得ることが分かるであろう。図2の実施例において、この表は、プロセスフローの中の特定のステップもしくは状態に対応する応答一式を提供する。他の表現が考えられるが、しかしながら、たとえば、別の実施形態において、性格パラメータは、対立する特性の間のスケール上の点に関して定義され得る。今度は図3を参照すると、このようなスキームにおいて利用されるいくつかの特性の実施例を記載する表301が示されている。このようなアプローチは、離散的なタイプを使用しておおよそ定義され得る性格より多様な性格の組を生じさせる可能性がある。
いくつもの特性が性格の次元を定義する際に使用され得る。多数のパラメータが性格タイプを定義することは、より短いパラメータの組を巧く避ける巧妙さを生じさせる可能性があるが、特徴がどのようにして全体的な挙動特質にまとまるかを理解する能力は、獲得することがより困難になる可能性がある。少なくとも一実施形態において、システムは、結果として得られる挙動が少なくともある程度は首尾一貫するように(たとえば、一旦は完全に自制心がある、および、完全に無謀である性格、または、完全に無神経であると共に完全に外向的である性格を定義することを回避するために)、特定のエージェント104に割り当てられる可能性がある特徴または相関の数に制約を課すことがある。
挙動特徴を、行動を予測する数学的モデルに適する形に抽出することは、心理学の分野のある特定のセグメントにおける顕著な研究の主題である。挙動および決定のモデリング技術もまた人工知能の分野において公知である。少なくとも一実施形態において、システムは、移動エージェント104の感情気質とこの移動エージェントの周りで起こるイベントに対する感情応答とを決定するためのシステムを利用する。このシステムは、動的な感情システムを物理環境において起こるイベントに接続するための機能を果たし、さらに、物理環境において起こるイベントに対するこのシステムの影響を関連付ける。
少なくとも一実施形態において、感情応答は、本明細書に記載されたシステムの動作において有用な役割を果たすことがある。システムは、物理的タスクを実行する移動エージェント104に感情能力を与える可能性があるだけでなく、このような移動エージェント104によって作られた建物構造物に関連付けられたさらなる機能性を提供する可能性がある。
少なくとも一実施形態において、感情は、非機能的な方法で、たとえば、エージェント104によって行われているタスクに著しく影響を与えることがない音、ジェスチャー、またはその他の行動および/または出力を導入するために、移動エージェント104の挙動に組み込まれる可能性がある。他の実施形態において、しかしながら、(たとえば、移動エージェント104の性格プロファイルによって定義された)感情は、移動エージェント104の機能的動作に影響を与える可能性がある。所与の状況に適切な感情を表現するシステムを、タスクを実行する移動エージェント104の能力と結合することにより、システムは、より一層説得力のある認識および性格の投影を作り出すことができる。少なくとも一実施形態において、性格のパラメータは、移動エージェント104で利用可能な行動候補を含むモデルへの入力としての役目を果たすようにさせられる可能性があるので、移動エージェント104の挙動に機能的および実質的な方法で影響を与えることができ、感情成分のないシステムの場合に起こり得るものから結果を顕著に逸らす。
今度は図12を参照すると、移動エージェント104がユーザからのコンポーネント402を要求する実施例が示されている。同図に示されるように、各状態が2つの別々のコンポーネント組立体1201Y、1201Zを含んでいる、組み立てられたコンポーネント402の6つの状態1202が存在する。このシナリオにおいて、各コンポーネント組立体1201Y、1201Zは、異なる移動エージェント104の進行中の作業の結果であり、左側の組立体1201Yは、ユーザからのコンポーネント402を要求するロボットにより構築中である。6つの状態1202のうち1つずつは、構築の様々な実例を表現する。状態1202A1、1202A2、1202A3からなる左手の列は、感情が移動エージェントによって実行されるタスクの経過に影響を与えることがない構築段階の進行系列である。状態1202B1、1202B2、1202B3からなる右手の列は、同様の進行系列であるが、移動エージェント104がこれらの行動の過程に影響を与える可能性がある感情を表示(またはモデル化)する系列である。
状態1202A1および1202B1は、同一であり、この実施例の一致する開始点を示す。両方のシナリオにおいて、左側にあるコンポーネント組立体1201Yを構築する移動エージェント104は、2つのコンポーネント402をこの組立体1201Yに追加する要求をユーザに信号で知らせ、両方のシナリオにおいて、ユーザは、(図11に関連して前述されたとおり)移動エージェントが要求を繰り返す前に待機する時間の長さを指示する時間制限内に応答することはない。
図12の左手側で、遅延の結果は、状態1202A1から状態1202A2まで新たな構築がない点で明白である。移動エージェント104は、(図11の方法ごとに)この移動エージェントの要求を繰り返し、待機し続ける。
図12の右手側で、しかしながら、移動エージェント104の動作の経過は、長い待機時間に対するこの移動エージェントの感情応答による影響を受ける。例示の目的のため、移動エージェント104の性格プロファイルを定義する特性は、スケールの一方の端部に「自制心がある」のようなスケーリング特徴、および、これの反対側の限界としての「気まぐれ」、または、「共感的」、および、反対限界としての「冷淡」を含んでいる、と想像すると使い勝手がよい。描かれた実施例において、コンポーネント402を要求している移動エージェントは、自制心があるより気まぐれの方に実質的に接近し、同様に、「共感的」より「よそよそしい」の方に接近していると共に、「従順」より「反抗的」の方に接近している傾向を明らかにするパラメトリック設定によって記述される。その結果、この設定の組み合わせは、この移動エージェントの一次タスクの実行中に適切なプロセスを無視する傾向がより強い性格を記述する可能性がある。
この実施例において、システムは、感情応答が物理環境においてとられた行動に影響を与えることを可能にする。このようにして、初期状態1202B1から、上記特性を有する移動エージェント104は、ユーザが要求されたコンポーネント(群)402を提供するのを非情に長い待機に耐える可能性が低い。移動エージェント104は、隣接する組立体1201Zがこの移動エージェントがユーザから要求したコンポーネントと一致するコンポーネント402を格納していることを認識するかもしれない。移動エージェントの感情気質、および、移動エージェントの性格特徴(すなわち、反抗的、冷淡、および気まぐれ)が移動エージェントの決定に影響を与えることを可能にさせる制御システムを仮定すると、移動エージェント104は、自分の固有の組立体1201Yに設置するために隣接する組立体1201Zからコンポーネント402を盗み取る傾向があるかもしれない。状態1202B2は、組立体1201Zからの2つのコンポーネント402が組立体1201Yの中に置かれているこのような行動の結果を示す。このような行動の結果は、感情応答が物理的行動の計画および実行に影響を与えることを可能にさせるシステムが感情的考慮なし(たとえば、効率)に従って計画されたイベントの経過に激しく影響を与える可能性がある程度を表出する。
記述された実施例における感情的影響は、全ての後続のイベントの系列を通じて持続し得ることを認めることができる。たとえば、(盗み取られたコンポーネント(群)402から)組立体1201Zを構築することに携わった移動エージェント104が短気および気まぐれの性格プロファイルを有する場合、このエージェント104は、(あらゆるイベントと移動エージェントによって行われた行動とのより大規模なシステムによる監視によってもたらされた)盗みの行為を認識することがあり、報復することがある。その結果、状態1202B3において、組立体1201Yは、解体または破壊され、短気な近隣エージェント104が組立体1201Yにおいて用いるためこの近隣エージェントの組立体1201Zからコンポーネント402を盗み取った移動エージェント104に物理的におよび執念深く応答するときに起こり得る結果である。
状態1202A3と1202B3との比較は、移動エージェント104の計画活動および実行活動への物理的イベントに応答する感情システムの導入がどのように物理環境におけるイベントの経過に影響を与える可能性があるかを示す。状態1202A3は、計画された最終状態を達成することだけに焦点が合わされたプロセスを忠実に守るシステムの最終状態である。状態1202B3は、移動エージェント104に帰された感情気質がこれらの移動エージェントのタスクの個々の計画および実行に影響を与えることが許されている場合を表出する。状態1202A3において、移動エージェント104によるコンポーネント402の要求を充足するユーザの遅延は、移動エージェント104による意図されたコンポーネント402の使用の実行だけを遅延させるであろう。これに反して、状態1202B3において、移動エージェント104は、短気と、自制心および共感の弱い考えとのような感情特性を表示し、これは、状態1202A3において達成された目標から遠く離れた状態1202B3につながるイベントを促した。
少なくとも一実施形態において、移動エージェント104は、多くの異なった形をとることがあり、専門化した役割を担うこともあり、たとえば、移動エージェント104は、監督という一次役割を有することがある。1つの可能性において、このような監督は、個々のエージェント104の能力と比べて特に複雑であるタスクに携わった多数の移動エージェント104の連携のため役立つことがある。少なくとも一実施形態において、監督の役割を果たす移動エージェント104は、エージェント104のうち1台または複数が怒りっぽい性向を生じさせるものである性格プロファイルを有する場合に潜在的に重要な役割である一方もしくは両方の行動に関する議論に陥るかもしれない移動エージェント104に抑圧または修正の影響を与えることがある。
エージェント104は、適当な手段を用いて、監督役割を行う可能性があり、たとえば、このエージェントは、協調して、または、同じ空間の範囲で作用するエージェント104のチームまでの物理的近接性および/または視線に基づいて、他のエージェント104の挙動を観測する可能性がある。前述のとおり、少なくとも一実施形態において、システムは、空間内のエージェント104のロケーションを追跡する仮想モデルを維持し、その結果、システムは、監督エージェント104が潜在的に怒りっぽいエージェント104のグループの臨界閾値距離の範囲にあるか否かを決定するために、このようなモデルを使用する可能性がある。他の技術も、たとえば、確率を距離と共に変化する監督エージェント104の効率に帰することによって、または、距離を視線と組み合わせることによって、他の潜在的に手に負えない、または相反するエージェント104の間で順序を維持する監督エージェント104の能力が、近接性と、監督エージェントがこの監督エージェントの視野の範囲内でエージェントを監督下に置いているか否かとの両方に頼るという程度で使用される可能性がある。確率論的決定は、感情をあらわに出そうとする傾向があるエージェント104の気質のような付加的な要素も考慮に入れることがあり、たとえば、より一層怒りっぽい状態にあるエージェント104は、監督エージェント104の相対的な近接性にもかかわらず、感情をあらわに出す可能性がより高いかもしれない。このようにして、不正な行動をする型にはまった人間との類似性は、明白になり、エージェント104は、監督エージェント104が十分に離れている場合、または、そうでなければ、効率的に監督できない場合(たとえば、監督エージェントが合理的な近接性にあるが、この監督エージェントの注意の焦点(たとえば、カメラもしくはイメージャ、または、エージェントのおおよその姿勢)が他の場所に向けられている場合)、消極的な挙動を表出する、または、別のエージェント104に逆らって行動する可能性がより高くなることがある。
本明細書に記載された説明において、用語「感情」は、移動エージェントの意図されたタスクの重大な部分でありそうにない移動エージェント104の表現および行動に関係している種々の様相を包含する。これらは、たとえば、満足もしくは落胆の指標を含むことがあり、または、計画されたイベントの過程で直接の物理的結果を担う形で現れることがある。たとえば、図12に関連して前述されているように、好ましくない応答は、意図されたタスク、または、タスクの系列の進行を邪魔することがある。その結果、少なくとも一実施形態において、システムは、特に、性格が変化する複数の移動エージェント104がタスクの引き受けに関与しているとき、(コンポーネント組立体の構築のような)わずかのタスクの実施を予測し難く、従って、より一層意外に、およびより面白くさせる可能性がある。
前述のとおり、一部の状況において、エージェント間の性格対立は、所望の目標に向かう進捗を悪化させることがある。他の状況において、性格を持つエージェント104間の相互作用が有益または有害である可能性がある非対立的なシナリオが起こる可能性がある。たとえば、短気および無謀の強い特性が割り当てられた移動エージェント104は、より高速でコンポーネント402を運搬し、あまり注意することなくこれらを置くことがある。その結果は、より早い構造物の完成、または、過剰な性急さおよび不注意から生じ、一部が再構築されることを必要とする崩壊イベント(またはその他の破壊イベント)を原因とするより遅い構築であることがある。
さらに、コンポーネント402が作業面の周囲エッジの向こう側にひっくり返るという結果を生じる組立体崩壊のような危険な機会を示す状況を考慮することも可能である。前述のとおり、移動エージェント104は、作業面407に基づく測位を補完するために目印としてコンポーネント面503を使用する可能性がある。この実例において、移動エージェント104は、逸脱したコンポーネント402を追跡して作業面407の境界から出ることがあり、ナビゲーションのためコンポート面503を頼りに、および、同様に、帰路のナビゲーションのため作業面上のコンポーネント402を頼りにしている。しかしながら、作業面から外れることは、ナビゲーションされる可能性のある面の特質が移動エージェント104にとって未知であるため、かなりの危険を提示することになる。その結果、(無謀、奔放、および気まぐれな特徴の何らかの強い組み合わせを有する移動エージェントのような)「大胆な」移動エージェント104は、作業面407を降りて、無事に戻る、もしくは、その過程で行方不明になるかもしれない。より従順かつ注意深い移動エージェント104は、作業面407を降りるのではなく、コンポーネント402を回収するためにユーザからの支援を要求する、または、コンポーネント402は手が届かないと見なすかもしれない。
少なくとも一実施形態において、移動エージェント104は、自らの「経験」への関連付けを学習するもしくは発展させる可能性があり、このような関連付けを計画および感情応答と組み合わせて自らのその後の行動に適用する可能性がある。このようにして、この学習は、コンポーネント402の測位およびシステムコンポーネント402間の通信の前述の能力を補完する。作業面407上の全てのコンポーネント402についての作業知識は、感情応答を指示する機能と組み合わせて、有意義な方法で学習する機能的なシステムを構築するための頑強な基礎である。この点に関して、学習は、スキルの脈略を前提とすることがある。
たとえば、少なくとも一実施形態において、最初に配備された移動エージェント104は、意図的に制限されたコンポーネント402を操作および運搬する能力を有するかもしれない。ある程度の期間の後、エージェント104は、たとえば、累積動作時間もしくは単純な行動が繰り返された回数に基づいて、自らのスキルセットを高める経験を獲得できる。少なくとも一実施形態において、移動エージェント104のスキルセットが拡大する速度は、ユーザが構築すべきエージェントの設計を開発するときにエージェント104の能力の限界を打破する程度に直接的に結び付けられる可能性がある。
少なくとも一実施形態において、さらなる挙動が移動エージェント104のこれまでの具体的なイベントに結び付けられる可能性がある。たとえば、エージェント104は、過去の経験において、崩壊のような好ましくないイベントに終わった組立ステップをより慎重に注意して進めるかもしれない。少なくとも一実施形態において、エージェント104は、たとえば、過去におけるより大胆な行動が好ましいもしくは好ましくない結果を招いた程度に基づいて、このエージェントが危険を冒す傾向を調整することにより、過去の経験から学習する可能性がある。
少なくとも一実施形態において、エージェント104は、互いに親近感もしくは関係性を有する可能性があるので、第1のエージェント104の経験は、第1のエージェント104が親近感もしくは関係性を有するエージェント(群)104のような他のエージェント(群)104の未来の挙動に影響を与える可能性がある。
学習は、感情応答の領域において、移動エージェント104の未来の挙動に情報を与える、もしくは、影響を与えるためにも適用される可能性がある。第1の移動エージェント104が第2の移動エージェント104の組立体からコンポーネント402を盗み取った図12に示された実施例を再び参照すると、第1の移動エージェント104が第2の移動エージェント104の応答(第1の移動エージェント104の組立体を取り壊す)を見るとすぐに、第1の移動エージェント104は、後で遭遇したときに第2の移動エージェント104の前で、自分の挙動を変化させることがある。実際には、両方のエージェント104は、たとえば、互いに協働する気が進まないこと、または、互いに向けられた敵意もしくは恨みの度合いさえも模擬的に現すために、以前の相互作用に基づいて相互に関連して自らの未来の挙動を変化させることがある。
少なくとも一実施形態において、このような挙動変化が現れる度合いは、エージェント104の性格に帰属させられた特性と、これらの特性に基づいて応答を決定する機能とに依存する可能性がある。忍耐強さの度合いが高い移動エージェント104は、たとえば、仮にあるとしても、以前に自分の動作を邪魔した移動エージェント104とのその後の遭遇の際に、自らの挙動を非常に僅かしか変えないことがある。あまり忍耐強くないエージェント104は、別のエージェント104によってとられた消極的な行動により素早く反応することがある。その上、少なくとも一実施形態において、新しい経験は、気質を変える可能性があり、単一のイベントの効果は、繰り返しによる強化なしに経時的に弱められる可能性がある。
以上の記載および参照された図面は、考えられる実施形態に関して特別な詳細を示す。当業者は、他の実施形態が考えられることが分かるであろう。第一に、コンポーネントの特別な命名、用語の大文字化、属性、データ構造、または、その他のプログラミング上もしくは構造上の態様が強制的また重要であるということはなく、本明細書に記載されたメカニズムは、異なった名前、形、もしくはプロトコルを有することがある。さらに、システムは、ハードウェアとソフトウェアとの組み合わせを使って、完全にハードウェア要素で、または完全にソフトウェア要素で実施されることがある。同様に、本明細書に記載された種々のシステムコンポーネント間での機能性の特別な分割は、単なる典型例であり、強制的ではなく、単一のシステムコンポーネントによって実行される機能は、代わりに、複数のコンポーネントによって実行されることがあり、複数のコンポーネントによって実行される機能は、代わりに、単一のコンポーネントによって実行されることがある。
明細書中での「一実施形態」もしくは「実施形態」への言及は、実施形態に関連して記載された特別な特徴、構造、もしくは特性が少なくとも一実施形態に含まれていることを意味する。明細書の種々の箇所での「一実施形態において」もしくは「少なくとも一実施形態において」という言い回しの出現は、必ずしも全てが同じ実施形態を指しているわけではない。
一部の実施形態は、単独もしくは何らかの組み合わせのいずれかで上記技術を実行するシステムもしくは方法を含むことがある。他の実施形態は、非一時的なコンピュータ読み取り可能な記憶媒体と、媒体上にエンコードされ、コンピューティング装置もしくは他の電子装置内のプロセッサに上記技術を実行させるコンピュータログラムコードとを備えるコンピュータプログラムプロダクトを含むことがある。
上記のうちいくつかの部分は、コンピューティング装置のメモリの内部にあるアルゴリズムおよびデータビットに対する演算の記号表現の観点から提示される。これらのアルゴリズム的記述および表現は、データ処理技術の当業者によって自分の業績を他の当業者に最も効率的に伝達するために使用される手段である。アルゴリズムは、ここで、および一般に、所望の結果を導く首尾一貫したステップ(命令)の系列であると考えられる。これらのステップは、物理量の物理操作を必要とするステップである。通常は、不可欠ではないが、これらの量は、記憶される、転送される、組み合わされる、比較される、およびそうでなければ操作されることができる電気的、磁気的もしくは光学的信号の形をしている。時に使い勝手がよいのは、主に共通使用の理由のため、これらの信号をビット、値、要素、記号、文字、項、数などと呼ぶことである。その上、さらに時に使い勝手がよいのは、物理量の物理操作を必要とするステップの特定の配置を、一般性を失うことなく、モジュールもしくはコード装置と呼ぶことである。
しかしながら、これらの用語および類似した用語の全てが適切な物理量と関連付けられるべきであり、かつ、これらの量に付けられた単に使い勝手のよいラベルであることに留意すべきである。以下の説明から明白であるように特に断らない限り、説明の全体を通して、「処理する」、「計算する」、「算出する」、「表示する」、「決定する」などのような用語を利用する考察は、コンピュータシステムメモリもしくはレジスタ、または、他のこのような情報記憶、伝送、もしくは表示装置の内部にある物理(電子)量として表現されたデータを操作し変形するコンピュータシステムもしくは同様の電子コンピューティングモジュールおよび/または装置の行動およびプロセスを指すことが認められる。
いくつかの態様は、アルゴリズムの形で本明細書において記載されたプロセスステップおよび命令を含む。プロセスステップおよび命令は、ソフトウェア、ファームウェア、および/またはハードウェアの中に具現化される可能性があり、ソフトウェアの中に具現化されたとき、種々のオペレーティングシステムによって使用される異なったプラットフォームに存在し、異なったプラットフォームから動作させられるようにダウンロードされ得ることに注意すべきである。
いくつかの実施形態は、本明細書に於ける動作を実行する装置に関係する。この装置は、要求された目的のため専用に構成されることがあり、または、コンピューティング装置内に記憶されたコンピュータプログラムによって選択的に起動もしくは再構成された汎用コンピューティング装置を備えることがある。このようなコンピュータプログラムは、限定されることなく、フロッピィディスク、光ディスク、CD−ROM、DVD−ROM、光磁気ディスクを含むいずれかのタイプのディスク、リードオンリーメモリ(ROM)、ランダムアクセスメモリ(RAM)、EPROM、EEPROM、フラッシュメモリ、ソリッドステートドライブ、磁気もしくは光カード、特定用途向け集積回路(ASIC)、または、電子命令を記憶するため好適であり、各々がコンピュータシステムバスに連結されたいずれかのタイプの媒体のようなコンピュータ読み取り可能な記憶媒体に記憶されることがある。さらに、本明細書において言及されたコンピューティング装置は、信号プロセッサを含むことがあり、または、コンピューティング能力を高めるためマルチプロセッサ設計を採用するアーキテクチャとなることがある。
本明細書において提示されたアルゴリズムおよび表示は、何らかの特別なコンピューティング装置、仮想化システム、または他の装置に本質的に関係付けられていない。種々の汎用システムは、本明細書における教示に従うプログラムと共に使用されることもあり、または、要求された方法ステップを実行するようにより専用化された装置を構成するために使い勝手がよいことが判明することがある。これらの種々のシステムのため要求された構成は、本明細書に記載された説明から明白であろう。その上、本明細書に記載されたシステムおよび方法は、特別なプログラミング言語を参照せずに説明されている。種々のプログラミング言語が本明細書に記載された教示を実施するために使用されることがあり、特別な言語への上記言及は、例示の目的のためだけに行われていることが認められるであろう。
その結果、種々の実施形態は、コンピュータシステム、コンピューティング装置、もしくはその他の電子装置、または、これらの何らかの組み合わせもしくは多数を制御するソフトウェア、ハードウェア、および/または、他の要素を含むことがある。このような電子装置は、当該技術分野において周知である技術に従って、たとえば、プロセッサ、入力装置(たとえば、キーボード、マウス、タッチパッド、トラックパッド、ジョイスティック、トラックボール、マイクロホン、および/またはこれらの何らかの組み合わせ)、出力装置(たとえば、スクリーン、スピーカー、および/または同種のもの)、メモリ、長期記憶装置(たとえば、磁気記憶装置、光記憶装置、および/または同種のもの)、および/または、ネットワーク接続性を含む可能性がある。そのような電子装置は、ポータブルまたは据え置き型であることがある。使用されることがある電子装置の実施例は、携帯電話機、個人情報端末、スマートフォン、キオスク、サーバコンピュータ、エンタープライズコンピューティング装置、デスクトップコンピュータ、ラップトップコンピュータ、タブレットコンピュータ、消費者向け電子装置などを含む。本明細書に記載されたシステムもしくは方法を実施する電子装置は、たとえば、限定されることなく、Linux、ワシントン州レドモンド市のMicrosoft Corporationから入手可能であるMicrosoft Windows、カリフォルニア州クパチーノ市のApple Inc.から入手可能であるMacOS、カリフォルニア州クパチーノ市のApple Inc.から入手可能であるiOS、カリフォルニア州マウンテンビュー市のGoogle Inc.から入手可能なAndroid、および/または、装置で用いるため適している他のオペレーティングシステムのようなオペレーティングシステムを使用することがある。
限られた数の実施形態が本明細書において記載されているが、上記説明の利益を得る当業者は、請求項の範囲を逸脱することがない他の実施形態が考え出されることがあることが分かるであろう。さらに、明細書中で使用された言語は、主に可読性および教育目的のため選択され、発明の主題の輪郭を描くため、または、制限するため選択されているとはいえないことに注意すべきである。従って、本開示は、限定的ではなく、例示的であることが意図されている。