開示される実施形態は、拡張現実と対話するためのユーザー対話装置に、詳細にはユーザーがユーザー領域(すなわち「現実世界」)にある仮想オブジェクトと対話できるようにする技術に関する。現在利用可能な拡張現実感システムは、ユーザーが、表示装置(たとえばテレビジョン、タブレット・コンピュータなど)に表示される仮想オブジェクトと対話できるようにしうるもので、ユーザーは、さまざまなジェスチャーを実行し、それがモーション・キャプチャー装置によって捕捉されることで仮想オブジェクトと対話しうる。実施形態では、ユーザーは、現実の(物理的な)オブジェクトとの仮想的なバインディングを生成するために一つまたは複数のジェスチャーを実行してもよく、生成された仮想的なバインディングは、属性を取り、現実のオブジェクトに基づくアクションを生成/実行しうる。投影装置が現実の(物理的な)オブジェクトを認識し、バインディングおよび/または投影された仮想オブジェクトに、種々のユーザー・ジェスチャーおよび/または音声コマンドに応答してさまざまなアクションを実行させうる。さらに、システムは、ユーザー・ジェスチャー/音声コマンドに応答して、装備された物理オブジェクト(instrumented physical object)(たとえばロボット、電気機械装置など)に命令を送って、かかる物理的な装置にさまざまなアクションを実行させてもよい。
以下の詳細な説明は、付属の図面を参照する。同じ参照符号が異なる図面において、同じまたは同様の要素を参照するために使用されることがある。以下の記述において、限定ではなく説明の目的で、特許請求される発明のさまざまな側面の十全な理解を提供するために、具体的な構造、アーキテクチャー、インターフェース、技法などといった個別的な詳細が記載される。しかしながら、本開示の恩恵をもつ当業者には、特許請求される発明のさまざまな側面は、こうした個別的詳細から外れる他の例で実施されてもよいことは明白であろう。ある種の事例では、本発明の記述を無用な詳細で埋没させないよう、よく知られた装置、回路および方法の記述は割愛される。
例示的実施形態のさまざまな側面が、自分の仕事の実質を他の当業者に伝えるために当業者が一般的に用いる用語を使って記述される。しかしながら、代替的な実施形態が、記載される側面の一部のみを用いて実施されてもよいことは当業者には明白であろう。説明の目的のため、例示的実施形態の十全な理解を与えるために、個別的な数、材料および構成が記載されるが、代替的な実施形態がそうした個別的な詳細なしで実施されてもよいことは当業者には明白であろう。他方では、例示的実施形態を埋没させないために、よく知られた特徴は省略または単純化される。
さらに、さまざまな動作が、例示的実施形態を理解するのに最も助けになる仕方で、複数の離散的な動作として記述されるが、記述の順序は、これらの動作が必ず順序異存であることを含意すると解釈されるべきではない。特に、これらの動作は、呈示の順序で実行される必要はない。
「さまざまな実施形態において」「いくつかの実施形態では」などの句が繰り返し使われる。この句は一般的に同じ実施形態を指すものではないが、そうであることもある。「有する」、「含む」、「備える」の用語は、文脈がそうでないことを示すのでない限り、同義である。句「Aおよび/またはB」は(A)、(B)または(AおよびB)を意味する。句「A/B」および「AまたはB」は、「Aおよび/またはB」と同様に(A)、(B)または(AおよびB)を意味する。本開示の目的のためには、「AおよびBの少なくとも一つ」は(A)、(B)または(AおよびB)を意味する。本稿は「ある実施形態では」「実施形態では」「いくつかの実施形態では」および/または「さまざまな実施形態において」という句を使うことがあるが、これはそれぞれ同じまたは異なる実施形態の一つまたは複数を指しうる。さらに、「有する」、「含む」、「備える」などの用語は、本開示の実施形態に関して使われるところでは、同義である。
例示的実施形態が、フローチャート、流れ図、データフロー図、構造図またはブロック図として描かれたプロセスとして記載されることがある。フローチャートは動作を逐次的なプロセスとして記述することがあるが、動作の多くは並列に、並行してまたは同時に実行されてもよい。さらに、動作の順序が再配列されてもよい。プロセスは、その動作が完了したときに終了されうるが、図に含まれない追加的な段階をも有していてもよい。プロセスは、方法、関数、手順、サブルーチン、サブプログラムなどに対応しうる。プロセスが関数に対応するとき、その終了は、関数の、呼び出し元関数および/またはメイン関数への復帰に対応しうる。
例示的実施形態は、プログラム・コード、ソフトウェア・モジュールおよび/または機能プロセスのような、上述した回路の一つまたは複数によって実行されるコンピュータ実行可能命令の一般的コンテキストにおいて記述されることがある。プログラム・コード、ソフトウェア・モジュールおよび/または機能プロセスは、特定のタスクを実行するまたは特定のデータ型を実装するルーチン、プログラム、オブジェクト、コンポーネント、データ構造などを含んでいてもよい。本稿で論じられるプログラム・コード、ソフトウェア・モジュールおよび/または機能プロセスは、既存の通信ネットワークにおける既存のハードウェアを使って実装されてもよい。たとえば、本稿で論じられるプログラム・コード、ソフトウェア・モジュールおよび/または機能プロセスは、既存のネットワーク要素または制御ノードにおける既存のハードウェアを使って実装されてもよい。
本稿での用法では、用語「回路」は、記載される機能を提供するよう構成された、電子回路、論理回路、プロセッサ(共有、専用またはグループ)および/またはメモリ(共有、専用またはグループ)、特定用途向け集積回路(ASIC)、フィールドプログラマブルデバイス(FPD)(たとえばフィールドプログラマブルゲートアレイ(FPGA)、プログラマブル論理デバイス(PLD)、複雑PLD(CPLD)、高容量PLD(HCPLD)、構造化ASICまたはプログラム可能なシステムオンチップ(SoC))、デジタル信号プロセッサ(DSP)などのようなハードウェア・コンポーネントを指す、またはかかるハードウェア・コンポーネントの一部である、またはかかるハードウェア・コンポーネントを含む。いくつかの実施形態では、回路は、記載される機能の少なくとも一部を提供するための一つまたは複数のソフトウェアまたはファームウェア・プログラムを実行してもよい。
本稿での用法では、用語「プロセッサ回路」は、算術演算もしくは論理演算のシーケンスを逐次的かつ自動的に実行し、デジタル・データを記録、記憶および/または転送することのできる回路を指す、またはかかる回路の一部である、またはかかる回路を含む。用語「プロセッサ回路」は、一つまたは複数のアプリケーション・プロセッサ、一つまたは複数のベースバンド・プロセッサ、物理的な中央処理ユニット(CPU)、単一コア・プロセッサ、二連コア・プロセッサ、三連コア・プロセッサ、四連コア・プロセッサおよび/またはプログラム・コード、ソフトウェア・モジュールおよび/または機能プロセスのようなコンピュータ実行可能命令を実行するまたは他の仕方で作動させることのできる他の任意のデバイスを指しうる。
本稿の用法では、用語「インターフェース回路」は、二つ以上のコンポーネントまたは装置の間の情報の交換のための備えをする回路を指す、またはかかる回路の一部である、またはかかる回路を含む。用語「インターフェース回路」は、一つまたは複数のハードウェア・インターフェース(たとえば、バス、入出力(I/O)インターフェース、周辺コンポーネント・インターフェース、ネットワーク・インターフェース・カードおよび/またはその他)を指すことがある。本稿での用法では、「インスタンス化」「インスタンス生成」などの用語は、インスタンスの生成を指してもよく、「インスタンス」は、プログラム・コードの実行中に生起しうるオブジェクトの具体的な生起を指してもよい。
本稿での用法では、用語「コンピュータ装置」は、算術演算もしくは論理演算のシーケンスを逐次的かつ自動的に実行することができ、データを機械可読媒体に記録/記憶し、データを通信ネットワークにおける一つまたは複数の他の装置から受信し、送信する備えがある任意の物理的なハードウェア装置を記述する。コンピュータ装置は、コンピュータ、コンピューティング・プラットフォーム、コンピューティング装置などと同義であると考えられてもよく、以下、時折そのように称されることがある。用語「コンピュータ・システム」は、任意の型の相互接続された電子装置、コンピュータ装置またはそのコンポーネントを含みうる。さらに、用語「コンピュータ・システム」および/または「システム」は、互いと通信上結合されたコンピュータのさまざまなコンポーネントを指しうる。さらに、用語「コンピュータ・システム」および/または「システム」は、互いと通信上結合され、コンピューティング資源および/またはネットワーキング資源を共有するよう構成された複数のコンピュータ装置および/または複数のコンピューティング・システムを指しうる。「コンピュータ装置」「コンピュータ・システム」などの例は、携帯電話またはスマートフォン、フィーチャーフォン、タブレット・パーソナル・コンピュータ、ウェアラブル・コンピューティング装置、自律的センサー、ラップトップ・コンピュータ、デスクトップ・パーソナル・コンピュータ、ビデオ・ゲーム・コンソール、デジタル・メディア・プレーヤー、ハンドヘルド・メッセージング・デバイス、携帯情報端末、電子書籍リーダー、拡張現実感装置、サーバー・コンピュータ装置(たとえばスタンドアローン、ラックマウント、ブレードなど)、クラウド・コンピューティング・サーバー/システム、ネットワーク要素、乗り物内インフォテインメント(IVI: in-vehicle infotainment)、車載エンターテインメント(ICE: in-car entertainment)装置、インストルメントクラスター(IC: Instrument Cluster)、ヘッドアップディスプレイ(HUD)デバイス、オンボード診断(OBD)デバイス、ダッシュトップモバイル機器(DME)、モバイルデータ端末(MDT)、電子エンジン管理システム(EMS)、電子/エンジン制御ユニット(ECU)、電子/エンジン制御モジュール(ECM)、組み込みシステム、マイクロコントローラ、制御モジュール、エンジン管理システム(EMS)、ネットワーク型または「スマート」機器、マシン型通信(MTC)デバイス、マシンツーマシン(M2M)デバイス、IoT(Internet of Things)デバイス、および/または他の同様の電子デバイスを含みうる。さらに、用語「乗り物埋め込みコンピュータ装置」は、乗り物に物理的に搭載され、内蔵され、あるいは他の仕方で埋め込まれたコンピュータ装置および/またはコンピュータ・システムを指しうる。
本稿での用法では、用語「ネットワーク要素」は、ネットワーク・コンピュータ、ネットワーキング・ハードウェア、ネットワーク設備、ルーター、スイッチ、ハブ、ブリッジ、無線ネットワーク・コントローラ、無線アクセス・ネットワーク装置、ゲートウェイ、サーバー、および/または他の任意の同様の装置と同義であると考えられてもよく、および/またはそのように称されてもよい。用語「ネットワーク要素」は、有線または無線の通信ネットワークの物理的なコンピューティング装置を記述し、仮想マシンをホストするように構成されてもよい。さらに、用語「ネットワーク要素」は、ネットワークと一または複数のユーザーとの間のデータおよび/または音声接続性のための無線ベースバンド機能を提供する設備を記述することがある。用語「ネットワーク要素」は、「基地局」と同義であると考えられ、および/またはそのように称されることがある。本稿での用法では、用語「基地局」は、ノードB、向上または進化型ノードB(eNB)、次世代ノードB(gNB)、ベース・トランシーバー・ステーション(BTS)、アクセスポイント(AP)、路側ユニット(RSU)などと同義であると考えられて、および/またはそのように称されることがあり、ネットワークと一または複数のユーザーの間のデータおよび/または音声接続性のための無線ベースバンド機能を提供する設備を記述することがある。本稿での用法では、用語「乗り物対乗り物(vehicle-to-vehicle)」および「V2V」は、メッセージの源または宛先として乗り物を含む任意の通信を指してもよい。さらに、本稿で使用される「乗り物対乗り物」および「V2V」という用語は、乗り物対インフラストラクチャー(V2I)通信、乗り物対ネットワーク(V2N)通信、乗り物対歩行者(V2P)通信またはV2X通信を包含してもよく、あるいはそれと等価であってもよい。
本稿での用法では、用語「チャネル」は、データまたはデータストリームを通信するために使用されうる有形または無形の任意の伝送媒体を指しうる。用語「チャネル」は、「通信チャネル」、「データ通信チャネル」、「伝送チャネル」、「データ伝送チャネル」、「アクセス・チャネル」、「データ・アクセス・チャネル」、「リンク」、「データ・リンク」、「キャリア」、「無線周波数キャリア」および/またはデータが通信される経路または媒体を表わす他の同様の用語と同義であり、および/またはそれと等価であってもよい。さらに、用語「リンク」は、情報を送信および受信する目的で、無線アクセス技術(RAT)を通じて二つの装置の間の接続を指してもよい。
図面を参照すると、図1は、さまざまな実施形態が実施されうる構成100を示している。構成100は、拡張現実感(AR)プラットフォーム105、ネットワーク150、ローカル・ネットワーク155および一つまたは複数のサーバー145を含んでいる。ローカル・ネットワーク155は、ウェアラブル装置110および環境115とともにユーザー108を含んでいてもよい。環境115は、センサー・アレイ120、出力アレイ122およびオブジェクト131を含んでいてもよい。
ARプラットフォーム105は、本稿のさまざまな実施形態によれば、動きおよび/またはオブジェクトを検出し、検出されたオブジェクトおよび/または動きに基づいて仮想バインディングおよび/または仮想オブジェクトを生成し、仮想バインディングおよび/または仮想オブジェクトを環境115内に表示させることができる一つまたは複数のコンピュータ装置であってもよい。これに関し、ARプラットフォーム105は、本稿の実施形態の機能を実行するために、プロセッサ、メモリ・デバイス、通信デバイスおよび/または他の同様のコンポーネントを含んでいてもよい。ARプラットフォーム105の例示的実装が、図2に示され、その関連で記述される。
ARプラットフォーム105は、(たとえばセンサー・アレイ120および/またはウェアラブル装置110のセンサーから得られたデータを利用して)一つまたは複数のユーザー対話を検出して仮想バインディング135A-Bを生成し、バインディング135A-Bを物理的な(「現実の」)オブジェクト130P(たとえば物理オブジェクト131P)、仮想オブジェクト131Vおよび/または装備されたオブジェクト131Iに接続(connect)または関連付け(associate)してもよい。ユーザー対話は、ユーザー108によって実行されるエアおよびタッチ・ジェスチャーおよび/またはユーザー108によって発される音声コマンドを含みうる。たとえば、ユーザー108は、バインディング135に属性を割り当てるためにまたは特定のセッションまたはセットアップのためのイベントおよび物理を選択するために音声コマンドを使ってもよく、ユーザー108は、バインディング135を選択し、操作するためにジェスチャーを使ってもよい。
図1の例では、ユーザー108は、ARプラットフォーム105との対話を介して、仮想バインディング135Aを生成し、バインディング135Aを仮想オブジェクト131V-1および物理オブジェクト131Pと接続または関連付けしている。さらに、ユーザー108は、ARプラットフォーム105との対話を介して、仮想バインディング135Bを生成し、バインディング135Bを仮想オブジェクト131V-2および装備されたオブジェクト131Iと接続または関連付けしている。仮想バインディング135は、検出された物理オブジェクト/装備されたオブジェクトに基づいて属性を取り、および/またはアクションを実行してもよい。実施形態では、属性および/またはアクションは、環境115のコンテキスト、環境内の他のオブジェクトおよびバインディングおよび/または環境115内のさまざまなオブジェクトおよびバインディングの間の関係に基づいていてもよい。環境115の「コンテキスト」は、環境115内のオブジェクト131のセッティングまたは配置が存在するまたは生起する相互関係した条件または状況を指してもよく、そのセッティングまたは配置に先行するさまざまなイベント、条件、基準などに基づいていてもよい。
ARプラットフォーム105は、オブジェクト131を認識し、バインディング135に(たとえば物理法則に従う)適切な物理的属性および他の意味のある応答をもって振る舞わせるために、センサー・アレイ120のセンサーを制御してもよい。ARプラットフォーム105はまた、バインディングに属性を割り当てるために、ユーザー・ジェスチャー(エアおよびタッチ・ジェスチャーを含む)、音声コマンドおよび/または他のユーザー入力を解釈してもよい。たとえば、ユーザー108が、バインディング135を引っ張るために、引っ張るまたはドラッグするジェスチャーを実行するとき、ARプラットフォーム105はバインディング135に、環境コンテキストに基づいて弾性、スチフネス、硬度、流動性、色などといったさまざまな物理的特性を割り当ててもよい。もう一つの例では、ユーザー108は、たとえば指を使って、ドロー型のジェスチャーを実行して、特定の形状およびサイズをもつバインディングのような特定の型のバインディング135を描いてもよい。さらに、ARプラットフォーム105は、ユーザー・ジェスチャーなどに基づいて、装備されたオブジェクト131Iがユーザー・ジェスチャーに対応するアクションを実行するよう、装備されたオブジェクト131Iと通信してもよい。
環境115は、その中/上でユーザー108が物理オブジェクト、装備されたオブジェクトおよび仮想オブジェクトと対話しうる任意の型のセッティングまたはエリアでありうる。いくつかの実施形態では、環境115はテーブル、物理的なプラットフォームまたは他の同様の家具オブジェクトであってもよく、さまざまな仮想画像がテーブル、物理的なプラットフォームなどの表面に投影されてもよい。いくつかの実施形態では、環境115は、(たとえばタッチレス・ユーザー・インターフェース(TUI: touchless user interface)を提供するために)その中に仮想画像が投影されうる部屋または部屋の中のエリアであってもよい。いくつかの実施形態では、環境115は、画像/光をユーザーに向けて上方に投影することによってさまざまな仮想画像が投影されるテーブルトップ表示装置であってもよい。一例では、環境115は、光の回折を利用して、一つまたは複数の仮想オブジェクト131Vの仮想的な三次元(3D)画像を生成するホログラフィー表示システムを含んでいてもよい。代替的な実施形態では、ユーザー108は、環境115を見るために、先に論じたようなテーブルまたはオブジェクト・ベースの型の環境を使うのではなく、ARヘッドギア、単眼または双眼の光学式ヘッドマウントディスプレイ(OHMD)、3D眼鏡と一緒の3Dテレビジョンなどを使ってもよい。ARプラットフォーム105および環境115は、まとめて、「ARシステム」などと称されることがある。
図のように、環境115は、センサー・アレイ120および出力アレイ122を含んでいてもよい。センサー・アレイ120は一つまたは複数のセンサー(たとえば図2との関連で示され、記述されるセンサー220)を含んでいてもよく、該センサーは物理的な環境115におけるイベントまたは変化を感知、検出、捕捉、測定することができる装置であってもよく、感知されたイベントまたは環境変化を、コンピューティング装置が読むことのできる信号および/またはセンサー・データに変換してもよい。センサー・アレイ120のセンサーは、中でも、一つまたは複数の画像/動き検出/捕捉装置(たとえばカメラ、奥行きセンサー、赤外線カメラなど)、加速度計、ジャイロスコープ、重力計、磁気計、近接センサー、周囲光センサー、マイクロフォン、圧力センサー、容量性表面、伝導検出器、電磁エネルギー(たとえば無線周波(RF)、赤外線、可視光など)の検出器、振動検出器、近接検出器、基準マーカー検出器などを含んでいてもよい。いくつかの実装では、センサー・アレイ120は、互いとの関係が既知の二つ以上のカメラおよび/または奥行きセンサー/カメラを含むステレオ・カメラ・システム、あるいは現実世界のオブジェクトまたは環境をスキャンして分析してその形状および可能性としてはその外観(たとえば色、テクスチャーなど)についてのデータを収集するために構造化光、ToFおよび/または赤外線レーザー投影、三角測量技法を使用する3Dスキャナー・システム(たとえば、共振MEMSマイクロミラーデバイス、マイクロオプトエレクトロメカニカルシステム(MOEMS)、飛行時間(ToF)カメラ/センサーなど)を含んでいてもよい。ある例示的実装では、センサー・アレイ120は、オンボード画像処理回路を備えたステレオ・カメラ・システムを有する単一の筐体を有していてもよく、該画像処理回路は、ステレオ・カメラ・システムのカメラの視野内にはいる任意のオブジェクト131上のピクセル間の距離を測定してもよい。センサー・アレイの例には、インテル(登録商標)RealSense(商標)Depth Camera、マイクロソフト(登録商標)Kinect(商標)センサー、Occipital社によるStructure Sensor、グーグル(登録商標)Tangoデバイス、Motion Contrast 3D Scanning(MC3D)カメラまたは他のいくつかの同様のデバイスが含まれる。
センサー・アレイ120のセンサーは、たとえば、環境115における物理オブジェクト131Pおよび/または装備されたオブジェクト131Iのデジタルまたは物理的特徴を検出しうる。これらの特徴はたとえば、時間、配向、位置、位置/配向の変化率、相対位置、エンコードされた情報、色、形状、サイズ、音、材料または他の同様の物理的特性を含みうる。位置、配向および位置/配向の変化率は、センサーに対して、他のオブジェクト(たとえば物理オブジェクト、仮想オブジェクトまたは装備されたオブジェクト)に対してまたは外部参照系に対してでありうる。さまざまな実施形態において、検出された特徴は、ARプラットフォーム105によって、バインディング135および/または仮想オブジェクト131Vのさまざまな物理的特徴/特性を模倣するために使用されてもよい。検出された特徴は、追加的なまたは代替的な仮想オブジェクト131Vを生成して表示するまたは装備されたオブジェクト131Iに一つまたは複数のアクションを実行するよう命令することによるなどして、イベントをトリガーしたり、あるいは再生状態を遷移させたりするために使用されてもよい。実施形態では、これらの特徴は、ARプラットフォーム105によって、オブジェクト・プロファイル322および/または追跡履歴323記録として記憶されうる(たとえば図3参照)。
出力アレイ120は、電子的に生成された信号/データを、人間の感覚系によって把握できる媒体に変換するよう構成されている一つまたは複数の装置を含んでいてもよい。視覚、触覚、聴覚および化学を含むさまざまな出力モダリティーが使用されうる。たとえば、バインディング135についてのユーザー対話(たとえばジェスチャーまたは音声コマンド)はARプラットフォーム105に、さまざまな画像を生成および表示させ、オブジェクト131および環境115の表面についてのサウンド効果または触覚的振動を発させ、および/または気体、化学物質の臭いなどを発させることができる。実施形態では、出力アレイ120の出力装置は、表示装置、オーディオ出力装置、触覚出力装置、化学物質放出装置などを含んでいてもよい。表示装置は、受領された電気信号に基づいて視覚的な形で情報を呈示することのできる任意の型の出力装置でありうる。たいていの実施形態では、表示装置は、受領された信号に基づいて環境115の表示表面上に画像または動画像を投影しうる画像またはビデオ・プロジェクターであってもよい(たとえば図2に関して示され、記述されるピクチャー生成ユニット(PGU: picture generating unit)230およびホログラフィー光学要素(HOE: holographic optical element))。他の実施形態では、表示装置は、発光ダイオード(LED)表示装置、有機LED(OLED)表示装置、液晶ディスプレイ(LCD)装置、量子ドット表示装置などといったモニターを含んでいてもよい。表示装置は、仮想オブジェクト131V-1および131V-2に関連する一つまたは複数の画像を表示するために使われてもよい。触覚出力装置は、電気機械コンポーネント・アレイ(EMC: electro-mechanical component array)を含んでいてもよく(たとえば、図2に関して示され、記述されるEMC 222)、環境115および/または環境115内のオブジェクト131を制御してもよい。
ネットワーク150およびローカル・ネットワーク155は、ネットワーク接続を通じてコンピュータ間で通信を可能にするコンピュータ、コンピュータ間のネットワーク接続およびソフトウェア・ルーチンを含んでいてもよい。これに関し、ネットワーク150およびローカル・ネットワーク155は、それぞれ、一つまたは複数のプロセッサ、通信システム(たとえばネットワーク・インターフェース・コントローラ、一つまたは複数のアンテナに接続された一つまたは複数の送信機/受信機など)およびコンピュータ可読媒体を含んでいてもよい。そのようなネットワーク要素の例は、無線アクセスポイント(WAP)、家庭/ビジネス・サーバー(無線周波数(RF)通信回路ありまたはなし)、ルーター、スイッチ、ハブ、無線ビーコン、基地局、ピコセルもしくは小型セル基地局および/または他の任意の同様のネットワーク装置を含みうる。ネットワーク150またはローカル・ネットワーク155への接続は、下記で論じるさまざまな通信プロトコルを使用する有線接続または無線接続を介したものであってもよい。本稿での用法では、有線または無線通信プロトコルは、データのパケット化/パケット化解除、信号の変調/復調、プロトコル・スタックの実装などのための命令を含む、他の装置と通信するための通信装置/システムによって実装される標準化された規則または命令のセットを指しうる。図示された装置間の通信セッションには、複数のネットワークが関与することがある。ネットワーク150および/またはローカル・ネットワーク155への接続は、コンピュータが、たとえばコンピュータ・ネットワーキングのOSIモデルの七つの階層または同等のものを無線(セルラー)電話ネットワークで可能にするソフトウェア・ルーチンを実行することを必要とすることがある。
ネットワーク150は、たとえば、一つまたは複数のサーバー145とARプラットフォーム105またはローカル・ネットワーク155内のコンポーネントとの間のような比較的長距離の通信を可能にするために使用されてもよい。ネットワーク150は、独自のおよび/または企業のネットワーク、転送制御プロトコル(TCP)/インターネット・プロトコル(IP)ベースのネットワークまたはそれらの組み合わせを含め、インターネット、一つまたは複数のセルラー・ネットワーク、ローカルエリアネットワーク(LAN)または広域ネットワーク(WAN)を表わしうる。そのようなネットワークおよび/またはプロトコルの例は、図2に関して下記で論じられる。そのような実施形態では、ネットワーク150は、一つまたは複数の基地局またはアクセスポイント、デジタル・データもしくは電話のコールをルーティングするための一つまたは複数のサーバー(たとえばコア・ネットワークまたはバックボーン・ネットワーク)などといった、ネットワーク関連サービスを提供するために必要な設備および他の要素を所有または管理するネットワーク事業者に関連していてもよい。
ローカル・ネットワーク155は、たとえば、ARプラットフォーム105とセンサー・アレイ120のセンサー、出力アレイ122の出力デバイス130、装備されたオブジェクト131I、ウェアラブル装置110などとの間のような比較的短距離の通信を可能にするために使用されてもよい。ローカル・ネットワーク155は短距離ネットワーク、たとえば個人対個人(P2P)またはパーソナル・エリア・ネットワーク(PAN)(たとえば、ZigBee、低電力ワイヤレス・パーソナル・エリア・ネットワークを通じたIPv6(6LoWPAN)、WirelessHart、MiWi、Threadなどを含むIEEE802.15.4ベースのプロトコル;WiFiダイレクト;ブルートゥース(登録商標)/BLEプロトコル;ANTプロトコル;Z-Wave;LTE D2DまたはProSe;UPnPなど)を表わしていてもよく、または本稿で論じるような他の任意のネットワークまたはプロトコルを表すことができる。
一つまたは複数のサーバー145は、ネットワーク(たとえばネットワーク150)を通じて一つまたは複数のサービスをユーザー(たとえば、ユーザー108および/またはARプラットフォーム105)に提供するための一つまたは複数のシステムおよび/またはアプリケーションを含んでいてもよい一つまたは複数のハードウェア・コンピューティング装置であってもよい。さらに、一つまたは複数のサーバー145は、一つまたは複数のプロセッサ、一つまたは複数のメモリ・デバイス、一つまたは複数のネットワーク・インターフェースなどを含んでいてもよい。さらに、一つまたは複数のサーバー145は、一つまたは複数のデータ記憶装置(図示せず)に接続されていてもよいし、あるいは他の仕方で関連付けられていてもよい。サーバー145は、サーバーの一般的な管理および動作のための実行可能なプログラム命令を提供しうるオペレーティング・システム(OS)を含んでいてもよく、サーバーのプロセッサによって実行されるときにサーバーがその意図された機能を実行できるようにしうる命令を記憶するコンピュータ可読媒体を含んでいてもよい。OSのための適切な実装およびサーバーの一般的な機能は、知られているかまたは商業的に入手可能であり、当業者によって容易に実装されうる。
実施形態では、サーバー145によって提供されるサービスは、没入的ゲーム経験のためのアカウント処理または他の仕方での運営を含んでいてもよい。たとえば、サービスは、仮想オブジェクト131V、バインディング135および/または装備されたオブジェクト131Iのための命令を生成するためおよび該オブジェクト/バインディングをユーザー対話、オブジェクト/バインディング属性、コンテキスト、ゲームプレイ規則、加入データおよび/または他の同様の基準もしくはパラメータに基づいて操作するために使われるべきデータを提供することを含んでいてもよい。サービスは、ユーザー108、ゲームなどに関連付けられたユーザー・プロファイルを生成し、記憶し、変更/調整することを含んでいてもよい。ユーザー・プロファイルは、あるゲームに関連する当該ユーザーに関連付けられた、あるいは一つまたは複数のゲームをプレイする複数のユーザーに関係した、ゲーム基準またはパラメータを示していてもよい。サービスは、ゲームプレイ・ポイント/特性および/またはゲームプレイ効果、たとえば仮想通貨/特性/ポイント勘定(tallies)(ポイント、健康ダメージ損失、パワー・レベル、「魔法パワー」などを含む)、仮想または物理的なオン/オフ、オープン/クローズおよび/またはロック/ロック解除指示、物理的な引き出し量(dispense amount)および/またはその他を追跡あるいはアカウント処理することを含んでいてもよい。ゲームプレイ特性は、サーバー145によってアカウント処理される数値、文字列などとして表わされてもよく、時間の経過、時刻および/または日付、タスクの完了、環境115におけるさまざまなオブジェクトの位置/配向、環境115におけるさまざまなオブジェクトの互いとの関係(または関係の変化)および/またはその他といったさまざまな要因に基づいて増減しうる。サーバー145は、一つまたは複数の物理オブジェクト、仮想オブジェクトおよび/または装備されたオブジェクトを許諾されたユーザー108と関連付けることを含むユーザー・セットアップおよびプレイ登録を実行するまたは容易にすること、環境115内の要素または装置のソフトウェアおよび/またはファームウェア更新を開始および制御すること、一つまたは複数のゲームに関連付けられた結果を記録すること、要求されたユーザー認証クレデンシャルを提供すること、コンテンツ管理を提供すること、新規ゲームをセットアップするおよび/または既存のゲームを修正するためのユーザー・インターフェースおよび/または制御要素を提供することおよび/またはARプラットフォーム105および/または環境115内のコンポーネント/装置のための計算集約的なタスクを実行することができてもよい。いくつかの実施形態では、サーバー145によって実行される機能の一部または全部がARプラットフォーム105によって実装されてもよく、逆にARプラットフォーム105によって実行される機能の一部または全部がサーバー145によって実装されてもよい。
仮想オブジェクト131Vおよびバインディング135は、ユーザー対話(たとえばジェスチャー、音声コマンドなど)、環境115内のさまざまな物理オブジェクト131P、環境115内のさまざまな装備されたオブジェクト131I、環境115内のさまざまなバインディング135、一つまたは複数のゲーム内基準および/またはその他に基づいて表示される、一つまたは複数の画像、アニメーション、ビデオ・クリップ、ホログラム、ホログラフィー光学要素などであってもよい。仮想オブジェクト131Vおよびバインディング135は、画像生成モジュールおよび/またはレンダリング・モジュール(たとえば図3に関して記述されるARエンジン331および/またはARレンダラー333)によって、コンピュータ・グラフィックスを生成するための一つまたは複数の既知の方法に従って生成され、レンダリング(すなわち表示および/または投影)されてもよい。たとえば、仮想オブジェクト131Iおよびバインディング135に関連付けられた画像は、ラスタ・イメージング・アプリケーションを使って生成された二次元(2D)ピクセル・グラフィック、カスケーディング・スタイル・シート(CSS)を使って生成されたスプライト・グラフィック、スケーラブル・ベクター・グラフィックス(SVG)規格に従って生成されたベクター・グラフィック、一つまたは複数の既知の3Dモデリングおよび/または3Dレンダリング・アプリケーションを使って生成された三次元(3D)グラフィック、コンピュータ生成映像(CGI: computer-generated imagery)などでありうる。いくつかの実装では、仮想オブジェクト131Iは、拡張可能マークアップ言語(XML)、JavaScript(登録商標)オブジェクト記法(JSON)、拡張現実感マークアップ言語(ARML)および/または他の同様のデータ構造もしくは言語またはその変形を使って記述されてもよい。先に暗示したように、仮想オブジェクト131Iおよびバインディング135は、2Dまたは3Dモデルに基づいて、一つまたは複数の既知の方法に従って、たとえば一つまたは複数のデータ・パケットからオブジェクト・データおよび/または画像データを取得し、幾何情報、視点情報、シーン、情報、テクスチャー情報、照明情報、陰影情報、特徴情報、視覚的アセット情報、アンカー(たとえば幾何構成、追跡可能物、参照基準(relative-to)、スクリーン・アンカーなど)および/またはその他を考慮に入れて該オブジェクト・データおよび/または画像データを処理してシーン・ファイルにし、処理されたデータをデジタル画像ファイル、ラスタ画像ファイルなどに出力することによって、生成され、レンダリングされてもよい。画像生成モジュールおよびレンダリング・モジュール(たとえば図3に関して記述されるARエンジン331および/またはARレンダラー333)によって使用されるハードウェア装置は、グラフィック処理ユニット(GPU)および/または複雑なレンダリング計算を実行するよう構成された他の任意の同様のハードウェア装置を含んでいてもよい。生成された画像は、一つまたは複数の既知のビデオ・マッピングまたは投影マッピング方法、一つまたは複数の既知の投影方法および/または画像を表示するための他の任意の同様の既知の方法に従って表示されてもよい。
仮想オブジェクト131Iおよびバインディング135の両方は、同じまたは同様の仕方で生成および/またはレンダリングされうるが、仮想オブジェクト131Iおよびバインディング135はいくつかの点で異なっていてもよい。いくつかの実施形態では、仮想オブジェクト131Iは、現実世界のオブジェクトを表わすデジタル画像(現実の画像および仮想画像を含む)であってもよい。一方、バインディング(binding)135は、一つまたは複数のオブジェクト(物理オブジェクト131P、仮想オブジェクト131V、装備されたオブジェクト131Iおよび/または他のバインディング135を含む)に結びつくまたは他の仕方で関連付けられる、一つまたは複数の他のオブジェクトに結びつく、あるいは何にも結びつかないデジタル画像(現実の画像および仮想画像を含む)であってもよい。実施形態では、バインディングは、センサー・アレイ120のセンサーによって検出される環境115内の他のオブジェクト(またはそれらの間の関係)、ユーザー対話などに基づく属性を取り得る。実施形態では、属性は、バインディング135が模倣すべきさまざまな物理的属性を定義しうる(または定義するために使用されうる)。
実施形態では、ARプラットフォーム105は、ユーザー106が、異なる物理側面をもつ複数の仮想バインディング型の一つを選択することを可能にしてもよく、ユーザー108がバインディング135の挙動および外観を選択できるようにする。一例では、ARプラットフォーム105は、前記複数のバインディング型を投影してもよく、該バインディング型のうちの所望されるものを選択するために、ユーザー108は一つまたは複数のジェスチャーを実行してもよい。さらに、複数のバインディング135およびオブジェクト131が、複数のユーザー108によって同時に使用されてもよい。
物理オブジェクト131Pは、環境115内に物理的に存在する任意の型のオブジェクトであってもよく、たとえばカード(たとえばトランプ、収集カード、トレーディングカードなど)、アナログおもちゃ(たとえばアクション・フィギュア/人形、組み立てセットまたは組み立てセット・ピース、おもちゃの乗り物、パズルまたはパズル・ピース、ボードゲームなど)、家具、オフィス備品(たとえば筆記用具、穴開けパンチ、切手、ステープラー、ステープル、ペーパークリップなど)、スポーツ用品(たとえば野球のバット、野球のグローブ、ゴルフクラブ、ゴルフボール、テニスラケット、テニスボールなど)および/または他の同様の物理オブジェクトを含みうる。上述した例は不動オブジェクトだが、本願の実施形態は動体オブジェクト(たとえばロボットまたは他の機械的装置)および/または生命体(たとえば犬、猫または他の型のペット)にも適用可能である。
装備されたオブジェクト(instrumented object)131Iは、ほとんどまたは全くユーザー介入なしに、該装備されたオブジェクト131Iが一つまたは複数のアクションを実行し、任意的にはイベント一つまたは複数の他の装置に関連するデータを捕捉/記録し、ネットワークを通じて通信することを可能にするハードウェア・コンポーネントおよび/または電気機械デバイス(EMC)を埋め込まれている物理オブジェクトであってもよい。実施形態では、装備されたオブジェクト131Iは、ロボット、スマートトイ、スマート機器および/またはその他のような他の何らかの装置またはオブジェクトに埋め込まれているコンピュータ装置/システムを含んでいてもよく、マイクロコントローラまたはマイクロプロセッサ、メモリ/記憶装置、通信回路(たとえばトランシーバー、モデム、アンテナ要素など)、センサー/メーター、画像捕捉装置、マイクロフォン、発光デバイス、オーディオ放出装置、画像/ビデオ再生装置、EMCおよび/または本稿で論じられるものと同じまたは同様でありうる他の同様のコンポーネントを含んでいてもよい。
装備されたオブジェクト(instrumented object)131Iは、先述した一つまたは複数のアクションを実行するためのプログラム・コードを記憶していてもよい(あるいは適切な論理ブロック/ファブリックなどを事前構成されたFPDを有していてもよい)。さまざまな実施形態によれば、装備されたオブジェクト131Iの通信回路は、ARプラットフォーム105から一つまたは複数のメッセージを受領してもよく、該メッセージは、前記一つまたは複数のアクションのうちの指示されたアクションを実行するための命令を含んでいてもよい。前記命令は、ARプラットフォーム105によって検出されるユーザー対話に基づいていてもよい。これは、装備されたオブジェクト131Iが、環境115におけるさまざまなユーザー対話に基づいてユーザー108および/または他のオブジェクト(たとえば物理オブジェクト、仮想オブジェクトまたは装備されたオブジェクト)と対話することを許容してもよい。装備されたオブジェクト131Iがイベントに関連付けられたデータを捕捉し、記憶/記録し、通信しうる実施形態では、装備されたオブジェクト131Iによって捕捉されたイベント・データは、センサー・アレイ120のセンサーからのセンサー・データを使ってなされる環境モデリング機構を拡張または補足するために使われてもよい。
ユーザー108は、ARプラットフォーム105の操作者であってもよく、環境115におけるさまざまなオブジェクト131と対話してもよい。いくつかの実装では、ユーザー108はウェアラブル装置110を自分の体に固定または結合してもよい。図では、ウェアラブル装置110は、ユーザーの手首と結合されているが、ユーザー108は複数のウェアラブル装置110を体に取り付けてもよい。ユーザー108の各手首のためのウェアラブル装置110、ユーザー108の胴と結合されたウェアラブル装置110などである。ウェアラブル装置110によって捕捉されたセンサー・データは、ユーザー108の一つまたは複数の身体部分の位置および/または配向情報および/または身体動きを判別するために使われてもよい。さらに、図1は単一のユーザー108しか示していないが、本願の実施形態は、複数のユーザー108が複数のオブジェクト131および複数のバインディング135と対話することを許容してもよい。
ウェアラブル装置110(または「ウェアラブル110」)は、慣性センサー・ユニット(IMU)またはウェアラブル110の動き、加速、回転および/または配向の測定および/または検出を可能にするハードウェアを埋め込まれた他の何らかの好適な装置でありうる。ウェアラブル110は、一つまたは複数の微小電気機械システム(MEMS)またはセンサー、たとえば加速度計、ジャイロスコープ、磁気計および/または他の同様のセンサーを含んでいてもよい。前記一つまたは複数のMEMS/センサーは、ウェアラブル110の速度、加速度および/または動きのサイズおよび方向を決定するよう構成されてもよく、ウェアラブル110の速度、加速度および/または動きを位置および/または配向情報に変換してもよい。ウェアラブル110の位置および/または配向の変化は、ウェアラブル110のユーザー108によって実行される生物機械的な動きを示していてもよい。前記一つまたは複数のMEMS/センサーは、該生物機械的な動きをセンサー・データとして検出するよう構成されてもよい。センサー・データは、ウェアラブル110の位置および/または配向についての一つまたは複数の空間座標(または空間座標の変化)を含むまたは他の仕方で示してもよい。センサー・データは、その後、ウェアラブル110の一つまたは複数のプロセッサおよび/またはセンサー・ハブに渡されて、生物機械的シーケンス、センサー座標および/または他の任意の型のフォーマットの解析、処理またはフォーマットされたデータに変換されてもよい。さらに、ウェアラブル110は、センサー・データが収集および/または処理される際に該センサー・データにタイムスタンプ付けすることによって、生物機械的な動きのタイミングを追跡してもよい。ウェアラブル110は、ほとんどまたは全くユーザー介入なしに有線または無線のネットワークを介してネットワーク(たとえばネットワーク150またはローカル・ネットワーク155)を通じて一つまたは複数の他の装置(たとえばARプラットフォーム105および/またはサーバー145)と通信することができるようにする通信回路を含んでいてもよく、あるいはかかる通信回路と結合されていてもよい。これに関し、一つまたは複数のメモリ・デバイスおよび一つまたは複数のプロセッサ。例として、ウェアラブル110は、いかなる型のウェアラブル・コンピュータ装置またはウェアラブル技術であってもよい。たとえばスマートウォッチ、フィットネスまたは活動追跡器、設備もしくは衣服に埋め込まれたセンサー・システム、テレメトリー・システムおよび/またはその他である。ユーザー108がウェアラブル110を使う実施形態では、ウェアラブル110によって捕捉されたセンサー・データは、センサー・アレイ120のセンサーからのセンサー・データを使うジェスチャー検出機構を拡張または補足するために使われてもよい。
図1はさまざまな実施形態に基づいてさまざまな装置および/またはコンポーネントを示しているが、任意の数のコンピューティング装置(クライアントおよびサーバー)、センサー、出力装置、ユーザーおよび/またはデータベース(図示せず)が存在してもよい。さらに、図1によって示される装置コンポーネントの一部または全部が別個でさまざまな配置に位置されていてもよく、互いに共位置であってもよく、一つの物理的なハードウェア装置上にまたは互いと完全に統合されて存在してもよく、仮想マシンとして実装されてもよくおよび/または多数の実装、配置および/または環境でセットアップされてもよい。このように、図1の例示的実施形態の描出は、本開示の範囲に限定されず、例示的な性質であると解釈されるべきである。
図2は、さまざまな実施形態に基づいてコンピュータ装置200の例示的実装を示している。図2は、コンピュータ装置200に存在しうるコンポーネントの例のブロック図を示している。コンピュータ装置200は、図2に示されるコンポーネントの任意の組み合わせを含んでいてもよい。コンポーネントは、集積回路(IC)またはその一部、離散的な電子装置または他のモジュール、論理、ハードウェア、ソフトウェア、ファームウェア、ミドルウェアまたはそれらの組み合わせをコンピュータ装置200において適応したものとして、あるいは他の仕方でより大きなシステムのシャーシ内に組み込まれたコンポーネントとして実装されてもよい。
コンピュータ装置200は、組み込みシステムまたは本稿で論じられる他の任意の型のコンピュータ装置であってもよい。図2に示される例では、コンピュータ装置200は、拡張現実感(AR)プラットフォーム105または本稿で論じられる他の同様の装置/システムにおいてまたはそれとして用いられてもよい。図2はコンピュータ装置200をARプラットフォーム105において実装されるものとして示しているが、コンピュータ装置200またはコンピュータ装置200に似たコンピュータ装置は、装備されたオブジェクト131Iおよび一つまたは複数のサーバー145のような本稿で論じられる他の装置において実装されてもよい。もう一つの例では、コンピュータ装置200は、本稿で論じられる実施形態のAR解決策を実行するために特に設計された別個で専用のおよび/または特殊目的のコンピュータ装置であってもよい。
プロセッサ202(「プロセッサ回路202」とも称される)は、命令を実行することによって基本的な算術演算、論理演算および入出力動作を実行するように構成された一つまたは複数の処理要素であってもよい。プロセッサ回路202は、スタンドアローンのシステム/デバイス/パッケージとして、またはARシステム110の既存のシステム/デバイス/パッケージの一部として実装されてもよい。プロセッサ回路202は、一つ以上のマイクロプロセッサ、一つ以上のシングルコア・プロセッサ、一つまたは複数のマルチスレッド・プロセッサ、一つまたは複数のGPU、一つまたは複数の超低電圧プロセッサ、一つまたは複数の埋め込みプロセッサ、一つまたは複数のDSP、一つまたは複数のFPD(ハードウェア・アクセラレータ)、たとえばFPGA、構造化されたASIC、プログラマブルSoC(PSoC)などおよび/または他のプロセッサまたは処理/制御回路であってもよい。プロセッサ回路202は、システムオンチップ(SoC)の一部であってもよく、そこで、プロセッサ回路202および本稿で論じられる他の構成要素が単一のICまたは単一のパッケージに形成される。例として、プロセッサ回路202は、一つまたは複数のIntelのPentium(登録商標)、Core(登録商標)、Xeon(登録商標)、Atom(登録商標)、またはCore M(登録商標)プロセッサ;Advanced Micro Devices(AMD)のAccelerated Processing Units(APU)、Epyc(登録商標)またはRyzen(登録商標)プロセッサ;Apple社のAシリーズ、Sシリーズ、Wシリーズなどのプロセッサ;Qualcommのsnapdragon(登録商標)プロセッサ;SamsungのExynos(登録商標)プロセッサ;および/またはその他を含みうる。
実施形態では、プロセッサ回路202は、センサー220から得られたデータを処理することによってコプロセッサとして作用しうるセンサー・ハブを含んでいてもよい。センサー・ハブは、センサー220の各々から得られたデータを、算術演算、論理演算、入出力動作を実行することによって統合するよう構成された回路を含んでいてもよい。実施形態では、センサー・ハブは、取得されたセンサー・データをタイムスタンプ付けすること、センサー・データをそのようなデータのクエリーに応答してプロセッサ回路202に提供すること、センサー・データをバッファリングすること、各センサー322についての独立なストリームを含むセンサー・データをプロセッサ回路202に連続的にストリーミングすること、あらかじめ定義された閾値または条件/トリガーに基づいてセンサー・データを報告すること、および/または他の同様のデータ処理機能ができてもよい。
メモリ204(「メモリ回路204」などとも称される)は、コンピュータ装置200を動作させるためのデータまたは論理を記憶するように構成された回路であってもよい。メモリ回路204は、いくつかのメモリ・デバイスを含んでいてもよく、所与の量のシステム・メモリを提供するために使われてもよい。例として、メモリ回路204は、揮発性メモリ・デバイス(たとえば、ランダムアクセスメモリ(RAM)、動的RAM(DRAM)、静的RAM(SAM)など)および/または不揮発性メモリ・デバイス(たとえば、読み出し専用メモリ(ROM)、消去可能なプログラム可能な読み出し専用メモリ(EPROM)、電気的に消去可能なプログラム可能な読み出し専用メモリ(EEPROM)、フラッシュメモリ、アンチヒューズなど)であって知られているような任意の好適な実装で構成されうるものの任意の好適な型、数および/または組み合わせであることができる。さまざまな実装では、個々のメモリ・デバイスは、任意の数の異なるパッケージ型、たとえばシングルダイパッケージ(SDP)、デュアルダイパッケージ(DDP)またはクワッドダイパッケージ(Q17P)、デュアルインラインメモリモジュール(DIMM)、たとえばマイクロDIMMまたはミニDIMMおよび/または他の任意の同様のメモリ・デバイスで形成されてもよい。データ、アプリケーション、オペレーティング・システムなどの情報の持続的記憶を提供するために、メモリ回路204は、一つまたは複数の大容量記憶装置、たとえば半導体ディスクドライブ(SSDD);SDカード、マイクロSDカード、xDピクチャーカードなどのフラッシュメモリカードおよびUSBフラッシュドライブ;(たとえば低電力実装における)プロセッサ回路202に付随したダイ上メモリまたはレジスタ;マイクロハードディスクドライブ(HDD);Intel(登録商標)およびMicron(登録商標)などからの三次元クロスポイント(3D XPOINT)メモリを含んでいてもよい。
FPDが使用される場合、プロセッサ回路202およびメモリ回路204(および/またはデバイス記憶回路208)は、論理ブロックまたは論理ファブリック、メモリセル、入出力(I/O)ブロックおよび他の相互接続された資源であって本稿で論じられる例示的実施形態のさまざまな機能を実行するようにプログラムされうるものを含みうる。メモリセルは、さまざまな論理機能を実装するためにプロセッサ回路202によって使用されるルックアップテーブル(LUT)にデータを格納するために使用されてもよい。メモリセルは、EPROM、EEPROM、フラッシュメモリ、SRAM、アンチヒューズなどを含むが、それに限定されないさまざまなレベルのメモリ/記憶の任意の組み合わせを含んでいてもよい。
共有されるまたはそれぞれのコントローラをもつデータ記憶回路208(「記憶回路208」などとも称される)は、モジュール209、オペレーティング・システムなどの情報の持続的な記憶を提供しうる。記憶回路208は、半導体ドライブ(SSD);半導体ディスクドライブ(SSDD);シリアルATアタッチメント(SATA)記憶装置(たとえばSATA SSD);フラッシュドライブ;フラッシュメモリカード、たとえばSDカード、マイクロSDカード、xDピクチャーカードなどおよびUSBフラッシュドライブ;三次元クロスポイント(3D Xpoint)メモリ・デバイス;プロセッサ回路202に付随するダイ上メモリまたはレジスタ;ハードディスクドライブ(HDD);マイクロHDD;抵抗変化メモリ;相変化メモリ;ホログラフィックメモリ;または化学的メモリなどとして実装されうる。図では、記憶回路208はコンピュータ装置200に含まれているが、他の実施形態では、記憶回路208は、コンピュータ装置200の他の要素とは別個のARプラットフォーム105に搭載された一つまたは複数の別個の装置として実装されてもよい。
いくつかの実施形態では、記憶回路208は、汎用オペレーティング・システムまたはコンピュータ装置200のために特に書かれ、仕立てられたオペレーティング・システムでありうるオペレーティング・システム(OS)(図示せず)を含んでいてもよい。OSは、一つまたは複数のセンサー220および/またはEMC 222からのデータを制御および/または取得/処理するためのモジュール209および/または制御システム構成のためのプログラム・コードおよび/またはソフトウェア・コンポーネントを提供する一つまたは複数のドライバ、ライブラリおよび/またはアプリケーションプログラミングインターフェース(API)を含んでいてもよい。
モジュール209は、コンピュータ装置200のさまざまな機能を実行するためおよび/または本願で論じられる例示的実施形態の機能を実行するために使用されるソフトウェア・モジュール/コンポーネントであってもよい。プロセッサ回路202およびメモリ回路204がプロセッサ・コアだけでなくハードウェア・アクセラレータ(たとえばFPGAセル)を含む実施形態では、(プロセッサ・コアによって実行されるプログラミング命令を用いる代わりに)ハードウェア・アクセラレータ(たとえばFPGAセル)が、(たとえば適切なビットストリーム、論理ブロック/ファブリックなどを用いて)、本願の実施形態のいくつかの機能を実行する論理を事前構成されてもよい。たとえば、モジュール209は、図3に関して論じる対応するエンティティーのための論理を有していてもよい。すなわち、モデリング・エンジン301、ユーザー入力解析エンジン311、オブジェクト認識モジュール321、ARエンジン331、コンテキスト・エンジン341、およびコンテンツ/アプリケーション351を含んでいてもよい。これらのエンティティーは、図3に関してより詳細に論じる。
コンピュータ装置200および/またはARシステム110のコンポーネントは、バス206を通じて互いと通信してもよい。バス206は、ローカル相互接続ネットワーク(LIN);業界標準アーキテクチャー(ISA);拡張ISA(EISA);PCI;PCI拡張(PCIx);PCIe;集積回路間(I2C)バス;並列小型コンピュータシステムインターフェース(SPI)バス;共通アプリケーションプログラミングインターフェース(CAPI);ポイントツーポイントインターフェース;パワーバス;独自バス、たとえばインテル(登録商標)Ultra Path Interface(UPI)、インテル(登録商標)アクセラレータリンク(IAL)またはSoCベースのインターフェースで使用されるその他の独自バスなどの専用バス;または任意の数の他の技術といったいくつもある技術を含みうる。いくつかの実施形態では、バス206は、さまざまなデバイス(たとえば、センサー220、EMC 222など)がメッセージまたはフレームを使って互いと通信することを許容しうるコントローラエリアネットワーク(CAN)バス・システム、時間トリガープロトコル(TTP)システムまたはFlexRayシステムであってもよい。
通信回路305は、無線ネットワークまたは有線ネットワークと通信するための回路を含んでいてもよい。たとえば、通信回路305は、トランシーバー(Tx)211およびネットワーク・インターフェース・コントローラ(NIC)212を含んでいてもよい。通信回路305は、特定の無線通信プロトコルに専用の一つまたは複数のプロセッサ(たとえばベースバンド・プロセッサ、モデムなど)を含んでいてもよい。
ネットワーク150および/または他の装置への有線通信リンクを提供するために、NIC 212が含められてもよい。有線通信は、イーサネット(登録商標)接続、イーサネットオーバーUSBおよび/またはその他を提供してもよく、あるいはDeviceNet、ControlNet、DataHighway+、PROFIBUSまたはPROFINETなどの他の型のネットワークに基づいていてもよい。第二のネットワーク(図示せず)または他の装置への接続を許容するために追加的なNIC 212が含まれてもよい。たとえば、第一のNIC 212がイーサネットを通じたネットワーク150への通信を提供し、第二のNIC 212がパーソナル・コンピュータ(PC)装置を含むパーソナル・エリア・ネットワーク(PAN)のような別の型のネットワークを通じて他の装置への通信を提供する。いくつかの実施形態では、環境115のさまざまなコンポーネント、たとえばセンサー220、EMC 222、PGU 230などは、下記で論じるI/O回路218を介してではなく、上記で論じたNIC 212を介してシステム110に接続されてもよい。
Tx 211は、ネットワーク150および/または他の装置と無線で通信するための一つまたは複数の無線機を含んでいてもよい。Tx 211は、固体または非固体媒体を通じて変調された電磁放射を使って有線ネットワークおよび/または他の装置との通信を可能にするハードウェア装置を含んでいてもよい。そのようなハードウェア装置は、データを一つまたは複数の他の装置に送信するための電波を生成し、あるいは他の仕方で発生させ、受信された信号をデジタル・データのような使用可能な情報に変換することによって、無線経由(OTA)の通信を容易にするためのスイッチ、フィルタ、増幅器、アンテナ要素などを含んでいてもよい。該デジタル・データはコンピュータ装置200の一つまたは複数の他のコンポーネントに提供されてもよい。いくつかの実施形態では、センサー220、EMC 222、PGU 230などのような環境115のさまざまなコンポーネントは、下記で論じるI/O回路218を介してではなく上記で論じたTx 211を介してシステム110に接続されてもよい。一例では、一つまたは複数のセンサー220は、BLEなどの短距離通信プロトコルを介してシステム110と結合されてもよい。別の例では、PGUは、(たとえばTx 211などを介して)無線接続を介してシステム110と結合され、一つまたは複数のリモート・ディスプレイ・プロトコルと連携して動作してもよい。該プロトコルは、無線ギガビットアライアンス(WiGiG)プロトコル、リモート・デスクトップ・プロトコル(RDP)、PC-over-IP(PCoIP)プロトコル、high-definition experience(HDX)プロトコルおよび/または他の同様のリモート・ディスプレイ・プロトコルといったものである。
Tx 211は、いくつもある3GPP(第三世代パートナーシッププロジェクト)規格と互換な一つまたは複数の無線機を含んでいてもよい。該規格は特に、ロングタームエボリューション(LTE)、ロングタームエボリューションアドバンスド(LTE-A)、ロングタームエボリューションアドバンスドプロ(LTE-A Pro)および第五世代(5G)ニューラジオ(NR)である。いくつもある他の固定、移動または衛星通信技術および規格と互換な無線機が選択されてもよいことが留意できる。これらは、たとえば、任意のセルラーワイドエリア無線通信技術を含んでいてもよく、これはたとえば下記を含んでいてもよい。5G通信システム、グローバル移動通信システム(GSM(登録商標))無線通信技術、General Packet Radio Service(GPRS)無線通信技術またはEnhanced Data Rates for GSM Evolution(EDGE)無線通信技術を含みうる。使用されうる他の第三世代パートナーシッププロジェクト(3GPP)無線通信技術は、UMTS(ユニバーサル移動体通信システム)、FOMA(フリーダムオブマルチメディアアクセス)、3GPP LTE(ロングタームエボリューション)、3GPP LTEアドバンスド(ロングタームエボリューションアドバンスド)、3GPP LTEアドバンスドプロ(ロングタームエボリューションアドバンスドプロ)、CDMA2000(符号分割多重アクセス2000)、CDPD(セルラーデジタルパケットデータ)、Mobitex、3G(第三世代)、CSD(回線交換データ)、HSCSD(ハイスピード回線交換データ)、UMTS(3G)(ユニバーサル移動体通信システム(第三世代))、W-CDMA(UMTS)(広帯域符号分割多重アクセス(ユニバーサル移動体通信システム))、HSPA(高速パケットアクセス)、HSDPA(高速下りリンク・パケットアクセス)、HSUPA(高速上りリンク・パケットアクセス)、HSPA+(高速パケットアクセスプラス)、UMTS-TDD(ユニバーサル移動体通信システム‐時分割複信)、TD-CDMA(時分割‐符号分割多重アクセス)、TD-SCDMA(時分割‐同期符号分割多重アクセス)、3GPP Rel.8(Pre-4G)(第三世代パートナーシッププロジェクトリリース8(プレ第四世代))、3GPP Rel.9(第三世代パートナーシッププロジェクトリリース9)、3GPP Rel.10(第三世代パートナーシッププロジェクトリリース10)、3GPP Rel.11(第三世代パートナーシッププロジェクトリリース11)、3GPP Rel.12(第三世代パートナーシッププロジェクトリリース12)、3GPP Rel.13(第三世代パートナーシッププロジェクトリリース13)、3GPP Rel.14(第三世代パートナーシッププロジェクトリリース14)、3GPP LTE Extra、LTE Licensed-Assisted Access(LAA)、UTRA(UMTS Terrestrial Radio Access)、E-UTRA(Evolved UMTS Terrestrial Radio Access)、LTE Advanced(4G)(ロングタームエボリューションアドバンスト(第四世代))、cdmaOne(2G)、CDMA2000(3G)(符号分割多重アクセス2000(第三世代))、EV-DO(Evolution-Data OptimizedまたはEvolution-Data Only)、AMPS(1G)(アドバンスト携帯電話システム(第一世代))、TACS/ETACS(Total Access Communication System/Extended Total Access Communication System)、D-AMPS(2G)(デジタルAMPS(第二世代))、PTT(Push-to-Talk)、MTS(携帯電話システム)、IMTS(改善携帯電話システム)、AMTS(アドバンスト携帯電話システム)、OLT(Offentlig Landmobil Telefoni[公共地上移動電話]のノルウェー語)、MTD(Mobiltelefonisystem Dすなわち移動電話システムDのスウェーデン語の略)、Autotel/PALM(公共自動化地上モバイル)、ARP(Autoradiopuhelin、「自動車無線電話」のフィンランド語)、NMT(北欧モバイル電話)、Hicap(NTT(日本電信電話)の高容量版)、CDPD(セルラー・デジタル・パケット・データ)、Mobitex、データTAC、iDEN(統合デジタル向上ネットワーク)、PDC(パーソナル・デジタル・セルラー)、CSD(回線交換データ)、PHS(パーソナル・ハンディホン・システム)、WiDEN(ワイドバンド統合デジタル向上ネットワーク)、iBurst、未ライセンス・モバイル・アクセス(UMA;3GPP一般アクセス・ネットワーク(Generic Access Network)またはGAN規格とも称される)、無線ギガビットアライアンス(WiGig)規格、ミリメートル波規格一般(WiGig、IEEE802.11ad、IEEE802.11ayなどのような10~90GHz以上で動作する無線システム。上記で挙げた規格に加えて、いくつもある衛星上りリンク技術が、上りリンク・トランシーバ711のために使われてもよい。それはたとえば、ITU(国際電気通信連合)またはETSI(欧州電気通信標準機関)などによって発行された規格に準拠する無線を含む。このように、本稿で与えられる例は、既存のものおよびまだ策定されていないもの両方のさまざまな他の通信技術に適用可能であると理解される。上述したプロトコルの実装、コンポーネントおよび詳細は、当技術分野で知られているものであってもよく、簡潔にするためにここでは割愛される。
入出力(I/O)インターフェース218は、コンピュータ装置200をセンサー220、EMC 222、PGU 230などといった外部コンポーネント/装置と接続するために使用される、外部拡張バス(たとえばユニバーサルシリアルバス(USB)、FireWire、Thunderbolt、PCI/PCIe/PCIxなど)といった回路を含んでいてもよい。I/Oインターフェース回路218は、プロセッサ回路202、メモリ回路204、データ記憶回路208、通信回路305およびコンピュータ装置200の他のコンポーネントのうちの一つまたは複数を相互接続するための任意の好適なインターフェース・コントローラおよびコネクタを含みうる。インターフェース・コントローラは、メモリ・コントローラ、ストレージ・コントローラ(たとえば、独立ディスクの冗長なアレイ(RAID)コントローラ、ベースボード管理コントローラ(BMC)、入出力コントローラ、ホスト・コントローラなどを含みうるが、それに限定されない。コネクタは、たとえばバス206、ポート、スロット、ジャンパー、相互接続モジュール、レセプタクル、モジュラー・コネクタなどを含みうる。I/O回路218はシステム110をセンサー220、EMC 320、PGUなどと、USB、FireWire、Thunderbolt、RCA、ビデオグラフィックスアレイ(VGA)、デジタルビジュアルインターフェース(DVI)および/またはミニDVI、高精細度マルチメディアインターフェース(HDMI(登録商標))、S-ビデオおよび/またはその他を使うなどして、有線接続を介して、結合しうる。図2は、センサー220、EMC 222およびPGU 230がインターフェース回路218を介してコンピュータ装置200に結合されていることを示しているが、他の実施形態では、センサー220、EMC 222およびPGU 230は、Tx 211を介して、短距離無線リンク、WiFi信号伝達などを使ってコンピュータ装置220と通信上結合されてもよい。
センサー220は、イベントまたは環境変化を検出し、検出されたイベントを電気信号および/またはデジタル・データに変換し、該信号/データをコンピュータ装置200および/または一つまたは複数のEMC 222に伝送/送信するよう構成された任意の装置でありうる。センサー220のいくつかは、環境115においてコンピュータ生成された感覚入力を提供するために使用されるセンサーであってもよい。センサー220のいくつかは、動きおよび/またはオブジェクト検出に使用されるセンサーであってもよい。このようなセンサー220の例は、とりわけ、電荷結合素子(CCD)、相補型金属‐酸化物‐半導体(CMOS)能動画素センサー(APS)、レンズレス画像捕捉装置/カメラ、サーモグラフィー(赤外線)カメラ、光イメージング検出および測距(LIDAR)システムおよび/またはその他を含みうる。いくつかの実装では、センサー220は、アパーチャ要素のアレイを含むレンズレス画像捕捉機構を含んでいてもよく、アパーチャ要素のアレイを通過する光が画像のピクセルを画定する。実施形態では、動き検出センサー220は、光生成装置、たとえば赤外光のグリッドをシーンまたは環境115に投影するための一つまたは複数の赤外線プロジェクターに結合されていてもよく、あるいはそれに付随していてもよい。ここで、赤外線カメラは、奥行き情報を計算するために反射された赤外光を記録してもよい。
センサー220のいくつかは、位置および/または配向の検出、周囲/環境状態の検出などのために使用されてもよい。そのようなセンサー220の例は、とりわけ、コンピュータ装置200に関連する環境条件または位置情報を決定するために使用されうる、圧電、ピエゾ抵抗性および/または容量性コンポーネントを有する微小電気機械システム(MEMS)を含みうる。実施形態では、MEMSは、三軸加速度計、三軸ジャイロスコープおよび/または磁気計を含みうる。いくつかの実施形態では、センサー220は、一つまたは複数の重力計、高度計、気圧計、近接センサー(たとえば赤外放射検出器など)、奥行きセンサー、周囲光センサー、熱センサー(温度計)、超音波トランシーバーおよび/またはその他をも含みうる。
EMC 222は、コンピュータ装置200が、状態、位置、向きを変え、機構またはシステムを動かすおよび/または制御することを許容する装置であってもよい。EMC 222は、一つまたは複数のスイッチ;触覚出力装置、たとえばアクチュエーターおよび/またはモーター(たとえば偏心回転質量体(ERM)アクチュエーター、線形共振アクチュエーター(LRA)、圧電アクチュエーター、サーボ機構、回転モーター、リニアモーターおよびステップモーターなど)、スラスター、(たとえば、ばねを装荷された圧縮された空気/流体を使う)投射体発射装置および/またはその他を含みうる。実施形態では、EMC 222は、スピーカー、デジタル・レンダリング・モジュール(たとえば、内部にデジタル・レンダリング・モジュールを有する物理オブジェクト)および/または物理オブジェクト130Pによって発されるまたは経験される音響エネルギー放出、電磁放射放出、電気エネルギー印加、磁場および加速もしくは減速を制御する他の仕方を有していてもよい。これらの放出等は、装備されたオブジェクト131Iによるものを含む。実施形態では、コンピュータ装置200は、検出されたユーザー対話または他の同様のイベントに基づいて、EMC 222に命令または制御信号を伝送/送信することによって、一つまたは複数のEMC 222を動作させるように構成されてもよい。
ピクチャー生成ユニット(PGU: picture generation unit)230および光学要素(OE: optical element)232。PGU 230は、OE 232(たとえばディスプレイ表面)に方向付けられるおよび/または方向付けられ直すことができる(たとえばデジタル画像に基づく)光を生成しうる。デジタル画像は、記憶回路208によって記憶される、通信回路205を介してリモート装置からストリーミングされるおよび/またはさまざまなセンサー220、EMC 222および/または装備されたオブジェクト131Iからの出力に基づく、任意の型のコンテンツでありうる。生成された光は、同じOE 232に方向付けし直される外部光(たとえば自然光)と組み合わされ、あるいは重ね合わされてもよい。生成された光を外部光と組み合わせるOE 232は、「組み合わせ器要素」または「結合器」と称されることがある。
PGU 230は、OE 232に向けられるデジタル画像を生成/作成する一つまたは複数の電子装置であってもよい。PGU 230は、受領された信号に基づいて一つまたは複数の反射表面(たとえば鏡)を介して静止画像または動画像をOE 232の表面に投影しうるプロジェクターであってもよく、あるいはかかるプロジェクターを有していてもよい。各PGU 330のプロジェクターは、LEDプロジェクター、レーザダイオードプロジェクター、LCDプロジェクター、デジタル光処理(DLP)プロジェクター、液晶オンシリコン(LCoS)プロジェクターおよび/または他の任意の同様の投影装置であってもよい。プロジェクターは、一つまたは複数のプロセッサ/GPU、一つまたは複数のメモリ・デバイスおよび他の同様のコンポーネントなどといった、表示用の画像を生成しうる光源およびさまざまな電子デバイス(または電子システム)を有していてもよい。これは、画像を、種々の色および強度の光を生成/出力するよう光源を制御するための信号に変換することによって、なされてもよい。プロジェクターはまた、色のパレットを画定するために異なる光路を一つの光路に組み合わせることができる組み合わせ器(「組み合わせ器光学素子」などとも称される)を有していてもよい。いくつかの実施形態では、プロジェクターは、画素ごとに画像をコピーし、次いで表示のために該画像を投影する走査ミラーを有していてもよい。いくつかの実施形態では、PGU 230は、中継レンズアセンブリーおよび(プロジェクターの組み合わせ器とは異なっていてもよい)組み合わせ器要素を有していてもよい。中継レンズアセンブリーは、プロジェクターからの像を中間像に再イメージングする一つまたは複数の中継レンズを有していてもよく、その中間像が、その後、反射器を通じてOE 232(たとえば前記組み合わせ器要素)に到達する。
組み合わせ器要素(および他のOE 232)は、プロジェクター/PGU 230によって出力されたデジタル画像を、観察される現実世界のオブジェクトと混合して、拡張された現実を容易にする表示表面であってもよく、完全にまたは部分的に不透明または透明であってもよい。OE 232のうちの一つまたは複数は、透過ビーム(参照ビーム)がOE 232に当たり、回折ビームがOE 232を通過する透過光学素子であってもよい。一つまたは複数のOE 232は、透過ビーム(参照ビーム)がOE 232に当たり、回折ビームがOE 232から反射する(たとえば、参照ビームおよび回折ビームがOE 232の同じ側にある)反射光学素子であってもよい。実施形態では、OE 232は、ホログラフィックOEであってもよく、いくつかの実施形態では、前記組み合わせ器要素は、ホログラムまたはホログラフィック画像(たとええば、透過型HOEまたは反射型HOE)であってもよい。
HOE 232が使われるとき、該HOE 232の一つまたは複数が、導波路ホログラフィー技法を使って、導波路パイプ内の全反射(TIR)によって案内されるコリメートされた画像を漸進的に抽出してもよい。導波路パイプは、生成された光を観察者/ユーザーに送るよう、その中を通じて、前記生成された光が跳ね返るガラスまたはプラスチックの薄いシートであってもよい。いくつかの実施形態では、HOE 232は、ホログラフィック回折格子(たとえばブラッグ回折格子)を利用して、生成された光を臨界角で導波路に提供する。そのような光は導波路を通って進む。光は、ホログラフィック回折格子を利用する一つまたは複数の他のHOE 232によってユーザー/観察者に向けてステアリングされる。これらのHOE 232は、溝付き反射格子および/または交互の屈折率の複数の層(たとえば、液晶、フォトレジスト基板などを含む)を有していてもよい;溝付き反射格子および/または屈折率層は、建設的および破壊的干渉およびウェーブレット分散を提供しうる。
バッテリー228は、コンピュータ装置200に電力を与えてもよい。実施形態では、バッテリー328は、リチウムイオン電池、亜鉛空気電池、アルミニウム空気電池、リチウム空気電池、リチウムポリマー電池などの金属空気電池であってもよい。バッテリー・モニター226は、バッテリー228の充電状態(SoCh)、健康状態(SoH)およびバッテリー228の機能状態(SoF)のようなバッテリー228のさまざまなパラメータを追跡/監視するためにコンピュータ装置200に含まれていてもよい。バッテリー・モニター226は、バッテリー情報をバス206を通じてプロセッサ回路202に通信しうるバッテリー監視ICを含んでいてもよい。
バス206は、コンピュータ装置200および/またはARシステム110のコンポーネントが互いと通信することを許容しうる。バス206は、ローカル相互接続ネットワーク(LIN);業界標準アーキテクチャー(ISA);拡張ISA(EISA);周辺コンポーネントインターコネクトエクスプレス(PCI);PCI拡張(PCIx);PCI Express(PCIe);集積回路間(I2C)バス;並列小型コンピュータシステムインターフェース(SPI)バス;ポイントツーポイントインターフェース;電力バス;たとえばSoCベースのインターフェースで使用される独自バス;いくつもある他の技術といった、任意の数の技術を含みうる。そのようなバス・システムの好適な実装および一般的な機能は知られており、当業者によって容易に実装される。
図示していないが、さまざまな他の装置がコンピュータ装置200内に存在していてもよく、あるいはコンピュータ装置200に接続されていてもよい。たとえば、ディスプレイ、タッチスクリーンまたはキーパッドなどのI/O装置が、入力を受け入れ、出力を表示するために、バス206を介してコンピュータ装置200に接続されてもよい。もう一つの例では、コンピュータ装置200は、グローバル航法衛星システム(GNSS)の衛星配位から受信された信号に基づいて座標を決定するよう構成された位置決め回路を含むか、またはそれに結合されてもよい。もう一つの例では、通信回路305は、ユニバーサル集積回路カード(UICC)、埋め込み型UICC(eUICC)および/または一つまたは複数の無線ネットワークを通じて通信するために使用されうる他の要素/コンポーネントを含んでいてもよい。
図3は、本稿で論じられる実施形態によって描かれるさまざまな機能を実行するようプロセッサ302に指令するためのコードを含む非一時的な機械可読媒体(NTMRM)300のブロック図である。さまざまな実施形態において、非一時的な機械可読媒体300は、ARプラットフォーム105および/またはサーバー145において実装されてもよい。プロセッサ302およびバス306は、それぞれ図2のプロセッサ202およびバス206に関して述べたのと同じまたは同様であってもよい。非一時的な機械可読媒体300は、図2の大容量記憶装置208について記述した装置を含んでいてもよく、あるいは光ディスク、サムドライブまたはいくつもある他のハードウェア・デバイスを含んでいてもよい。代替実施形態では、機械可読媒体300は、一時的であってもよく、たとえば信号であってもよい。NTMRM 300は、センサー・アレイ120のセンサー220から第一のセンサー・データを取得するようプロセッサ302に指令するための、モデリング・エンジン301のコードを含んでいてもよい。第一のセンサー・データは、物理的な環境(環境115)および/または環境115中の物理オブジェクト131Pを表わしていてもよい。いくつかの実施形態では、モデリング・エンジン301は、第一のセンサー・データの情報に基づいて、環境115中の物理オブジェクト131Pを追跡するようプロセッサ302に指令してもよい。いくつかの実施形態では、モデリング・エンジン301は、第一のセンサー・データに基づいて、AR環境のための物理的な環境115の三次元(3D)モデル303を生成するよう、プロセッサ302に指令してもよい。3Dモデル303は、さまざまな幾何学的形状またはエンティティーによって接続された3D空間におけるデータ点の好適な集合であってもよく、環境115のさまざまな表面のためのテキスト情報を含んでいてもよい。3Dモデル303は、いかなる好適なモデリング技法/技術を使って生成されてもよい。いくつかの実施形態では、モデリング・エンジン301は、3Dモデル303を、センサー220によって捕捉される他のセンサー・データ(たとえば画像またはビデオ・データ)と比較してもよい。
NTMRM 300は、センサー・アレイのセンサー220から、一つまたは複数のユーザー対話を表わす第二のセンサー・データを取得するようプロセッサ302に指令するための、ユーザー入力解析エンジン311のコードを含んでいてもよい。ユーザー対話は、ユーザー108によって実行されたジェスチャーおよび/またはユーザー108が発した音声コマンドを含んでいてもよい。いくつかの実施形態では、第二のセンサー・データは、ユーザー108が身につけるウェアラブル装置110から得られたセンサー・データを含んでいてもよく、該センサー・データは、第二のセンサー・データを拡張または補足するために使われてもよい。
ジェスチャー認識に関して、一例では、ユーザー入力解析エンジン311は、3D/スケルトン・ベースのモデルまたは外観ベースのモデルにおけるキー・ポインターを使って、身体部分の特徴検出を含め、ジェスチャーを検出してもよく、特定のジェスチャーを一つまたは複数の特定のアクションに相関付けるジェスチャー・ライブラリを利用してアクションを決定してもよい。環境115が容量性、抵抗性またはタッチ表面などその他である実施形態では、ユーザー入力解析エンジン311は、タッチ表面の回路からタッチ信号を取得してもよい。タッチ信号は、タッチの位置(タッチの面積、形状またはスケルトンを記述する(x,y)座標の一つまたは複数の集合)、タッチの圧力(たとえばユーザーの指または変形可能なスタイラスとタッチスクリーン104との間の接触の面積によってまたは圧力センサーによって測られる)、接触の継続時間に関する情報、他の任意の好適な情報またはそのような情報の任意の組み合わせを含んでいてもよい。この実施形態において、ユーザー入力解析エンジン311は、タッチ信号の情報に基づいて、先に論じたジェスチャー・ライブラリを利用して、ジェスチャー(単数または複数)を識別してもよい。
音声認識に関して、ユーザー入力解析エンジン311は、音響モデリング、言語モデリング手法、隠れマルコフ・モデリング、動的時間ラッピング(dynamic time wrapping)、ニューラルネットワークおよび/またはその他を使って発話認識を実行してもよく;自然言語処理(NLP)アルゴリズム(単数または複数)を使って、認識されたスピードから特定の音声コマンドを識別してもよい。検出された音声コマンドは、先に論じたジェスチャー・ライブラリと同じまたは同様であってもよい音声コマンド・ライブラリを使って一つまたは複数のアクションに翻訳されてもよい。アクションは、さまざまな投影/表示、触覚、音および/または化学的な出力を生成および提供することを含んでいてもよい。アクションは、装備されたオブジェクト131Iにさまざまなアクションを実行するよう命令するために、装備されたオブジェクト131Iへのメッセージを生成して送ることを含んでいてもよい。
NTMRM 300は、3Dモデル303内で物理オブジェクトを識別するようプロセッサ302に指令するためのオブジェクト認識エンジン321のコードを含んでいてもよい。たとえば、オブジェクト認識エンジン321は、特徴検出器、仮説形成器、仮説検証器およびオブジェクト・モデルを含むモデル・データベースを含んでいてもよい。特徴検出器は、3Dモデル303に演算子を適用してもよく、オブジェクト仮説を形成するためのさまざまな特徴の位置を識別してもよい。特徴は、サイズ、色、形状、他のオブジェクトとの関係などといったオブジェクトの属性であってもよい。オブジェクト認識エンジン321によって使用される特徴は、オブジェクト・プロファイル322および/または追跡履歴323によって示されるオブジェクトならびにモデル・データベースの編成に依存してもよい。検出された特徴を使って、仮説形成器は、3Dモデル303におけるそれぞれの潜在的なオブジェクトに対して確からしさ/確率を割り当てて、候補オブジェクトを生成してもよい。検証器は、仮説を検証し、オブジェクトに割り当てられた確からしさ/確率を洗練するために、モデル・データベースからのオブジェクト・モデルを使ってもよい。モデル・データベースにおけるオブジェクト・モデルは、定性的または機能的な記述、幾何学的な表面情報および/または抽象的な特徴ベクトルであってもよい。ありそうもないオブジェクト候補を可能な考察から消去することを容易にするために、モデル・データベースは、何らかの型のインデックス付け方式を使って編成されていてもよい。オブジェクト認識エンジン321は、各候補オブジェクトについて、最も高い確からしさ/確率をもつオブジェクト・モデルからのオブジェクトを、検出されたオブジェクトとして選択してもよい。
図のように、オブジェクト認識エンジン321は、オブジェクト・プロファイル322および追跡履歴323を含んでいてもよい。オブジェクト・プロファイル322は、オブジェクト認識のために使用されるべき、検出されたオブジェクト131(物理オブジェクト131P、仮想オブジェクト131V、装備されたオブジェクト131Iおよび/または他のバインディング135)についてのさまざまな属性、たとえばサイズ、形状、色などを示していてもよく、さまざまなバインディング135の生成および/または操作に影響しうるさまざまなバインディングまたはゲームプレイ関係の属性を含むか示すかしていてもよい。バインディング(binding)またはゲームプレイ関係の属性(gameplay-related attribute)は、バインディング135がもつ/示す/模倣するべきさまざまな物理的特性、たとえばサイズ、形状、色、弾性、スチフネス、流動性などを示していてもよい。ロールプレイヤーゲーム(RPG)またはファイティングもしくは決闘ベースのゲームでは、バインディングまたはゲームプレイ関係の属性は、ヒット・ポイント、寿命または他の同様の属性を示していてもよい。さらに、オブジェクト・プロファイル322はまた、関連付けられたオブジェクト131に基づいてバインディング135に適用される属性であってもよい関係ベースの属性(relationship-based attribute)を含んでいてもよい。これは、関連付けられたオブジェクト131に基づいてバインディング135に適用される属性であってもよい。たとえば、バインディング135は、ユーザー108がバインディング135を一つまたは複数の物理オブジェクト131Pに関連付けるときの、一つまたは複数の、物理オブジェクトへの仮想バインディング(VB-PO: virtual binding to physical object)属性、ユーザー108がバインディング135を一つまたは複数の仮想オブジェクト131Vに関連付けるときの、一つまたは複数の、VOへの仮想バインディング(VB-VO)属性ならびにユーザー108がバインディング135を一つまたは複数の装備されたオブジェクト131Iに関連付けるときの、一つまたは複数の、装備されたオブジェクト131Iへの仮想バインディング(VB-IO)属性を含みうる。VB-PO、VB-VOおよび/またはVB-IO属性は、オブジェクト・プロファイル322によって示される、対応する物理オブジェクト131P、仮想オブジェクト131Vおよび/または装備されたオブジェクト131Iの属性に基づいていてもよい。さらに、装備されたオブジェクト131Iのオブジェクト・プロファイル322は、さまざまなアクションを実行するよう、装備されたオブジェクト131Iに命令するための情報を含んでいてもよい。たとえば、個別のアクションを実行するための命令、サポートされるメッセージ・フォーマット、サポートされる信号伝達プロトコルおよび/またはその他などである。追跡履歴323は、先に検出されたオブジェクトおよび/または先に検出されたオブジェクトの属性を示してもよく、バインディング135に関連する属性に影響しうる。オブジェクト・プロファイル322および追跡履歴323は、XML、JSON、抽象シンタックス記法1(ASN.1)、ARMLまたは他の何らかの好適なデータ構造といったいかなる好適なフォーマットを使って形成されてもよい。
NTMRM 300は、(たとえばオブジェクト認識エンジン321によって決定された)一つまたは複数の識別/検出されたオブジェクト131および(たとえばユーザー入力解析エンジン311によって決定された)識別/検出されたユーザー対話に基づいて、仮想バインディング135のインスタンスを生成するようプロセッサ302に指令するための、ARエンジン331のコードを含んでいてもよい。仮想バインディング135のインスタンスは、検出されたオブジェクト131のオブジェクト・プロファイル322の属性に基づいていてもよい、仮想バインディング135によってまたはバインディング135を使って実行されうる一つまたは複数のアクションに影響する一つまたは複数の属性を有していてもよい。ARエンジン331は、バインディング・モデル331を含んでいてもよい。これは、オブジェクト・プロファイル322の前記一つまたは複数の属性に基づいてバインディング135のインスタンスを生成するためのプロセスを記述または定義してもよい。ARレンダラー333は、ARエンジン331と連携して動作して、一つまたは複数の既知のビデオ・マッピングまたは投影マッピング方法、一つまたは複数の既知の投影方法および/または他の任意の同様の既知の画像を表示/投影する方法に従って、生成された画像を表示/投影するよう動作してもよい。ARエンジン331およびARレンダラー333によって使われるハードウェア装置は、一つまたは複数のGPUならびに/または複雑な画像生成および/もしくはレンダリング計算を実行するよう構成された他の任意の同様のハードウェア装置を含んでいてもよい。
ARエンジン331は、バインディング135の生成されたインスタンスをインターフェース回路に提供してもよく、該インターフェース回路は、表示/レンダリング/投影されるべき仮想バインディング135のインスタンスを、該インスタンスが表示されたときに、仮想バインディング135がオブジェクト131に取り付けられているように見えうるよう、あるいはオブジェクト131と相互作用するように見えうるよう、提供してもよい。さらに、ARエンジン331は、前記命令/コマンドをインターフェース回路および/または通信回路に提供してもよく、それらの回路は、前記命令/コマンドをさまざまなアクションを実行するために装備されたオブジェクト131Iに提供してもよい。
第一の例では、検出されたユーザー対話が、特定の仮想バインディング135の選択を示すユーザー対話であるとき、ARエンジン331は、検出されたオブジェクト131のオブジェクト・プロファイル322から一つまたは複数のオブジェクト属性を取得して、該一つまたは複数の取得された属性によって示されるさまざまな物理的特性を模倣するよう、その仮想バインディング135の選択インスタンスを生成してもよい。
第二の例では、検出されたユーザー対話が仮想バインディング135を検出されたオブジェクト131に関連付けるユーザー対話であるとき、ARエンジン331は、その仮想バインディング135が、表示されたときに、検出されたオブジェクト131に取り付けられているように見えるよう、あるいは検出されたオブジェクト131と他の仕方で相互作用するように見えるよう、仮想バインディング135の関連付けインスタンスを生成してもよい。検出されたオブジェクト131のオブジェクト型に依存して、ARエンジン331は、仮想バインディング135の物理オブジェクト131Pとの関連付けの一つまたは複数のVB-PO/VO/IO属性を識別してもよく、該VB-PO/VO/IO属性は、仮想バインディング135がどのように相互作用するかおよび/または操作されるかを示してもよい。
実施形態において、ARエンジン331は、検出されたオブジェクト131、検出されたユーザー対話および/またはさまざまなバインディング135に基づいて仮想オブジェクト131Vのインスタンスを生成してもよい。仮想オブジェクト131Vは、対応するオブジェクト・プロファイル322によって示されるオブジェクト属性を含んでいてもよい。ARエンジン331は、仮想オブジェクト131Vの生成されたインスタンスを、インターフェース回路に提供してもよく、該インターフェース回路は、仮想オブジェクト131Vの該インスタンスを、表示/レンダリング/投影されるよう提供してもよい。
NTMRM 300は、バインディング135がどのように生成および/または操作されるべきかに影響するために使用されうる一つまたは複数のコンテキスト属性を決定するよう、プロセッサ302に指令するためのコンテキスト・エンジン341のコードを含んでいてもよい。コンテキスト・エンジン341は、ユーザー活動、ユーザー属性、意味的位置、ソーシャルな状況、周囲/環境条件、電子装置の存在、スケジュール、通信などといった、どの望ましいアクションが所与の状況にありうるかをARプラットフォーム105が決定できるようにしうる側面を決定してもよい。ユーザー活動コンテキストは、身体(または身体部分)位置/配向のようなユーザー108に関係した任意の情報を含んでいてもよい。ユーザー属性は、ユーザー108に関係した任意の情報、たとえばさまざまなゲームもしくはオブジェクト131についてのユーザーの選好および/またはユーザーの好み、関心、目標などを示す他の任意の同様の選好を含んでいてもよい。ユーザー選好は、ユーザー108によって設定されてもよく、あるいはコンピューティング装置110で走る一つまたは複数のアプリケーション351から得られてもよい。ユーザー選好は、(たとえばユーザーのレーティングおよび/またはランキングを得ることによって)明示的に得られてもよく、あるいは(たとえばコンテンツ/アプリ351のクリックスルー・データ、ログ・データ、ユーザー・プロファイル・データなどをマイニングすることによって)暗黙的に得られてもよい。ユーザー属性は、インターネット・サービスまたはセルラー・サービス申し込み型またはデータ・プラン、一つまたは複数のコンテンツ提供サービスへの申し込み、ユーザー選好、人口動態情報などといった他の情報をも含んでいてもよい。環境ベースのコンテキスト情報は、環境115におけるユーザー108とさまざまなオブジェクト131の間の距離、周囲照明、背景ノイズ、まわりの電磁場および/またはユーザー108および/または環境115を取り巻く他の任意の同様の生物的もしくは非生物的な因子といった情報を含んでいてもよい。コンテキストは、装置属性、たとえばARプラットフォーム105および/または環境115のコンポーネントの一つまたは複数の周辺装置(たとえばセンサー220、EMC 222など)および/または内部コンポーネント(たとえばプロセッサ型、メモリ・デバイスなど)を示す情報をも含んでいてもよい。
図3は、NTMRM 300によって記憶されているさまざまなモジュールまたはエンジンのプログラム・コードを示しているが、いくつかの実装では、該プログラム・コードと、そのプログラム・コードの機能を実行するために使われるハードウェア要素(または電気もしくは電子システムにおいて使われる回路の組み合わせ)(たとえばプロセッサ302、NTMRM 300、バス306など)との組み合わせが、特定の型の回路として参照されてもよい。たとえば、さまざまなハードウェア要素およびモデリング・エンジン301の組み合わせが「モデリング回路」と称されてもよく、さまざまなハードウェア要素およびユーザー入力解析エンジン311の組み合わせが「ユーザー入力回路」と称されてもよく、さまざまなハードウェア要素とオブジェクト認識エンジン321の組み合わせが「オブジェクト認識回路」と称されてもよく、さまざまなハードウェア要素とARエンジン331の組み合わせが「AR回路」と称されてもよく、さまざまなハードウェア要素とコンテキスト・エンジン341の組み合わせが「コンテキスト回路」と称されてもよい。他の組み合わせが他の実施形態において可能であってもよい。
図4~図5は、さまざまな実施形態に基づく、バインディング135を生成し、表示するためのプロセス400~500を示している。例解の目的のために、上述したプロセスの動作は、図1~図3に関して論じたさまざまな要素によって実行されるものとして記述されるが、他のコンピューティング装置(またはそのコンポーネント)が、多数の実装、構成および/または環境において、プロセス400~500を機能させてもよいことは注意しておくべきである。実施形態では、プロセス400~500は、プロセッサによって実行されるときにコンピュータ・システムに、前記プロセスのさまざまな動作を実行させるプログラム・コードとして実装されてもよい。図4~図5では動作の特定の例および順序が示されているが、さまざまな実施形態において、これらの動作は並べ替えられてもよく、追加的な動作に分離されてもよく、組み合わされてもよく、あるいは完全に省略されてもよい。
図4を参照するに、プロセス400は、ARプラットフォーム105がオンにされるまたは他の仕方で作動された後に、あるいはユーザー108が動作するようARプラットフォーム105を制御するときに始まってもよい。動作405では、ARプラットフォーム105のユーザー入力解析エンジン311が、仮想バインディング135の選択を識別してもよい。該識別は、一つまたは複数のユーザー対話(たとえばジェスチャー、音声コマンドなど)を表わすセンサー・データに基づいていてもよい。動作410では、ユーザー入力解析エンジン311が、仮想バインディング135を物理オブジェクト131Pに取り付けるユーザー対話を検出してもよい。ARプラットフォーム105は、環境115をスキャンするようセンサー・アレイ120のセンサー220を制御してもよく、スキャンされた環境115を表わすセンサー・データを生成してもよい。ARシステム115は、このセンサー・データを取得し、環境115の中にある物理オブジェクトまたは装備されたオブジェクト131Iがあればそれも含めて環境115の3Dモデル303を生成してもよい。3Dモデル303が生成された後、ARプラットフォーム105は、ジェスチャーおよび/または音声コマンドを含むユーザー対話を検出するようセンサー・アレイ120のセンサー220を制御してもよい。
動作415では、ARプラットフォーム105のオブジェクト認識エンジン321が、物理オブジェクト131Pを識別してもよく、動作420では、ARプラットフォーム105のARエンジン331は、識別された物理オブジェクト131Pのオブジェクト・プロファイル322を使って物理オブジェクト131Pの一つまたは複数の物理的属性を判別してもよい。動作420では、ARプラットフォーム105のARエンジン331は、物理オブジェクト131P属性に基づいておよび/またはオブジェクト・プロファイル322を使って、物理オブジェクト131Pへの仮想バインディング135(VB-PO)属性を決定してもよい。動作430では、ARプラットフォーム105のARエンジン331は、仮想バインディング135のインスタンスを生成してもよく、表示のために仮想バインディング135のインスタンスを提供するようARプラットフォーム105のインターフェース回路を制御してもよい。
動作435では、ARプラットフォーム105のユーザー入力解析エンジン311は、仮想オブジェクト131Vを仮想バインディング135と関連付ける別のユーザー対話を検出してもよい。動作440では、ARプラットフォーム105のARエンジン331は、仮想オブジェクト131Vへの仮想バインディング135(VB-VO)属性を決定してもよく、それは仮想オブジェクト131Vの属性および/または仮想オブジェクト131Vのオブジェクト・プロファイル322に基づいていてもよい。動作445では、ARプラットフォーム105のユーザー入力解析エンジン311は、仮想バインディング135を操作するユーザー対話を検出してもよい。動作445では、ARプラットフォーム105のARエンジン331は、仮想バインディング135の操作インスタンスを生成してもよく、表示される仮想バインディング135の操作インスタンスを提供するためにARプラットフォーム105のインターフェース回路を制御してもよい。動作450の実行後、プロセス400は必要に応じて繰り返されてもよく、あるいは終了してもよい。
図5を参照するに、プロセス500は、ARプラットフォーム105がオンにされるまたは他の仕方で作動された後に、あるいはユーザー108が動作するようARプラットフォーム105を制御するときに始まってもよい。動作505では、ARプラットフォーム105のユーザー入力解析エンジン311が、仮想バインディング135の選択を識別してもよい。該識別は、一つまたは複数のユーザー対話(たとえばジェスチャー、音声コマンドなど)を表わすセンサー・データに基づいていてもよい。動作510では、ユーザー入力解析エンジン311は、仮想バインディング135を装備されたオブジェクト131Iに取り付けるユーザー対話を検出してもよい。動作505および510は、プロセス400の動作405および410と同じまたは同様であってもよい。
動作515では、ARプラットフォーム105のオブジェクト認識エンジン321は、装備されたオブジェクト131Iを識別してもよい。動作520では、ARプラットフォーム105のARエンジン331は、該装備されたオブジェクト131Iとの接続を確立するよう、通信回路205を制御してもよい。動作525では、ARプラットフォーム105のARエンジン331は、仮想バインディング135のインスタンスを生成してもよく、表示されるべき仮想バインディング135のインスタンスを提供するようARプラットフォーム105のインターフェース回路を制御してもよい。
動作530では、ARプラットフォーム105のARエンジン331は、装備されたオブジェクト131Iの属性および/または該装備されたオブジェクト131I属性に基づくVB-IO属性を決定してもよい。これらの属性は、オブジェクト認識エンジン321によって記憶されている、装備されたオブジェクト131Iに関連付けられたオブジェクト・プロファイル322から識別されてもよい。これらの属性は、一つまたは複数のアクションを実行するよう装備されたオブジェクト131Iに命令するための命令および/または他の同様の情報をも含んでいてもよい。
動作535では、ユーザー入力解析エンジン311は、仮想バインディング135および/または装備されたオブジェクト131Iを操作するユーザー対話を検出してもよく、動作540では、ARプラットフォーム105のARエンジン331は、動作535で検出されたユーザー対話に基づいて一つまたは複数のアクションを実行するよう装備されたオブジェクト131Iに選択された命令を送信するよう通信回路205を制御してもよい。動作540の実行後、プロセス500は必要に応じて繰り返されてもよく、あるいは終了してもよい。
図6~図7は、さまざまな実施形態に基づくさまざまなユーザー対話段階を示している。図6~図7によって示される例は、ユーザーが仮想バインディング(たとえばバインディング635)を使って投射体(仮想オブジェクト630V-2)を使って一組のピン(たとえば仮想オブジェクト630V-1)を倒そうとする、スリングショット式ボウリング・ゲームであってもよい。
図6を参照するに、段階1において、ユーザー608(図6では手によって表現されている)は二つの物理オブジェクト630P-1および630P-2を結びつけるよう、バインディング635をARプラットフォーム105によって生成させてもよい。これは、第一の物理オブジェクト630P-1において人差し指を使ってタップ・ホールド・ジェスチャーを実行し、人差し指の先端を第一の物理オブジェクト630P-1から第二の物理オブジェクト630P-2のほうにドラッグすることによってでもよい。ひとたびユーザー608の人差し指が第二の物理オブジェクト630P-2に到着したら、ARプラットフォーム105はバインディング635の末端を第二の物理オブジェクト630P-2と接続し、ユーザー608はホールド・ジェスチャーを解放してもよい。この例では、物理オブジェクト630P-1および630P-2は、古典的なスリングショット〔パチンコ〕において典型的に使われるY形フレームの先端を表わしていてもよい。段階1は第三の物理オブジェクト630P-3(たとえば定規)および投影された仮想オブジェクト630V-1(たとえば図5におけるピンのフォーメーション)をも示している。この例では、ゲームは、ユーザー608が、オブジェクト630P-3で反跳することによってオブジェクト630V-1のピンを倒すように投射体を発射することを要求するものであってもよい。
段階2では、ユーザー608は、前記バインディングに対してつかんで保持するジェスチャーを実行して、次いで、バインディング635をユーザー608のほうに伸ばす引っ張りジェスチャーをしてもよい。ユーザー608がバインディング635を伸ばすにつれて、バインディング635の複数のインスタンスがARプラットフォーム105によって生成されて、表示されてもよい。それにより、バインディング635は、さまざまな物理的特性を示すように見える。たとえば、典型的なスリングショットは、蓄積された弾性エネルギーを使って、投射体を高速で発射するよう機能する。ここで、弾性エネルギーは、スリングショット操作者が、スリングショットのY形フレームに接続されているゴムバンドを後に引く際に生成され、蓄積される。この例では、ARプラットフォーム105は、ユーザー608がつかんで引っ張るジェスチャーを実行する際に、バインディング635に蓄積される弾性エネルギーを模倣〔エミュレート〕しうる。これはたとえば、線形または非線形な弾性の式を使うことによる。
段階3では、仮想オブジェクト630V-2がARプラットフォーム105によって生成されてもよく、表示されてもよい。この例では、仮想オブジェクト630V-2は、物理オブジェクト630P-3を介して仮想オブジェクト630V-1に向けて発射される投射体であってもよい。実施形態では、バインディング635に関してまたはそのまわりで実行されるジェスチャーは、生成されるべき所望される仮想オブジェクトを示してもよい。この例では、段階2におけるバインディング635をユーザー608のほうに引っ張る行為が、ユーザー608がスリングショット・ポケットを生成することを望んでいることを示しうる。段階2においてつかむおよび/または引っ張るジェスチャーを検出することに応答して、ARプラットフォーム105は、段階3において、曲げられたバインディング635によって作り出されるスリングショット・ポケットにおいて投射体オブジェクト630V-2を生成し、表示してもよい。
図7を参照するに、段階4において、ユーザー608は、バインディング635を解放するジェスチャーを実行してもよく、応答して、ARプラットフォーム105は、バインディング635および仮想オブジェクト630V-2が該ジェスチャーに反応するところを示すさまざまな画像またはアニメーションを生成し、表示してもよい。それは段階4、5、6によって示されている。この例では、解放ジェスチャーを実行すると、バインディング635によって蓄積された弾性エネルギーが解放されて、投射体630P-2の運動エネルギーに変換されるところを示す、バインディング635のさまざまなインスタンスが生成され、表示されてもよい。段階6では、ARプラットフォーム105は、仮想オブジェクト630V-2が物理オブジェクト630P-3で反跳するところを示すさまざまな画像またはアニメーションを生成し、表示してもよい。段階7では、ARプラットフォーム105は、仮想オブジェクト630V-2および仮想オブジェクト630V-1が互いと相互作用するところを示すさまざまな画像またはアニメーションを生成し、表示してもよい。この例では、ARプラットフォーム105は、一組のピン630V-3が、物理オブジェクト630P-3から反跳した後の投射体630V-2によって倒されるところのさまざまな画像またはアニメーションを生成し、表示してもよい。
図8は、さまざまな実施形態に基づくさまざまなユーザー対話段階を示している。図8によって示される例は、装備されたオブジェクト(instrumented object)830Iと対話するユーザー808を示している。この例では、装備されたオブジェクト830Iはおもちゃの自動車であり、これはARプラットフォーム105と通信する回路を有していてもよく、該おもちゃの自動車を推進するための車輪のようなEMCを制御するための回路(たとえばプロセッサ、メモリなど)をも有していてもよい。さらに、バインディング835は、ロープ、ひも、ゴムバンド、ハンドルまたは他の何らかの同様の接続子のはたらきをしてもよく、あるいはそれを模倣してもよい。
段階1では、ユーザー808(図8では手および腕によって表現されている)は、装備されたオブジェクト830Iに結びつけられるよう、バインディング835をARプラットフォーム105によって生成させてもよい。これは、装備されたオブジェクト830Iにおいて人差し指を使ってタップ・ホールド・ジェスチャーを実行し、人差し指の先端を装備されたオブジェクト830Iから離れるようにドラッグすることによってでもよい。ひとたびユーザー808の人差し指が装備されたオブジェクト830Iから所定の距離のところに達したら、あるいはユーザー808が人差し指をドラッグするのを止めたとき、ARプラットフォーム105はバインディング835を設定または確立してもよい。
段階2では、ユーザー808は、前記バインディング835および/または装備されたオブジェクト830Iと対話するまたはこれを操作することを示す、つまんで保持するジェスチャーを実行してもよい。段階2~3において、ユーザー808は、バインディング835を使って装備されたオブジェクト830Iを動かすために、つまんで保持するジェスチャーを実行し続ける間に、ドラッグ・ジェスチャーを実行してもよい。段階2~3において、ARプラットフォーム105は、ユーザー808がドラッグ・ジェスチャーを実行する間、装備されたオブジェクト830Iに一つまたは複数のアクションを行なうよう命令する命令を装備されたオブジェクト830Iに送ってもよい。この例では、命令は、装備されたオブジェクト830Iをドラッグ・ジェスチャーと一致する方向に推進するために、装備されたオブジェクト830Iに、そのEMCを作動させるよう命令してもよい。
いくつかの限定しない例は次のとおり。
実施例1は、拡張現実感(AR)システムにおいて用いられるコンピュータ装置を含んでいてもよい。当該コンピュータ装置は: 物理的な環境および該物理的な環境における物理オブジェクトを表わす第一のセンサー・データをセンサー・アレイから取得し、前記第一のセンサー・データに基づいて前記物理的な環境における前記物理オブジェクトを追跡するモデリング回路と; ユーザーによって実行されたジェスチャーを表わす第二のセンサー・データを前記センサー・アレイから取得するユーザー入力回路と; 追跡された物理オブジェクトを識別するオブジェクト認識回路と; 識別された前記物理オブジェクトおよび前記ジェスチャーに基づいて仮想バインディングのインスタンスを生成するAR回路であって、前記仮想バインディングのインスタンスは、識別された前記物理オブジェクトに基づく、前記仮想バインディングによって実行される一つまたは複数のアクションに影響する一つまたは複数の仮想バインディング属性をもつ、AR回路と; 前記仮想バインディングのインスタンスを、該インスタンスの表示に際して前記仮想バインディングが前記物理オブジェクトに取り付けられているように見えるまたは前記物理オブジェクトと相互作用するように見えるよう、表示されるように提供するインターフェース回路とを有する。
実施例2は、実施例1および/または本願の他の何らかの実施例のコンピュータ装置であって、前記AR回路が、前記ジェスチャーが特定の仮想バインディングの選択を示すジェスチャーであるときに前記仮想バインディングの前記インスタンスを生成する、コンピュータ装置を含んでいてもよい。
実施例3は、実施例1および/または本願の他の何らかの実施例のコンピュータ装置であって、前記AR回路が前記物理オブジェクトの一つまたは複数のオブジェクト属性を取得し、前記一つまたは複数のオブジェクト属性に基づいて前記仮想バインディングの前記インスタンスを生成する、コンピュータ装置を含んでいてもよい。
実施例4は、実施例1および/または本願の他の何らかの実施例のコンピュータ装置であって、前記インスタンスが選択インスタンスであり、前記AR回路が: 前記ジェスチャーが前記仮想バインディングを前記物理オブジェクトと関連付けることを示すジェスチャーであるとき、前記仮想バインディングの関連付けインスタンスを生成し、 前記仮想バインディングの前記物理オブジェクトとの前記関連付けの、一つまたは複数の、物理オブジェクトへの仮想バインディング(VB-PO)属性を識別し、 前記インターフェース回路が、前記仮想バインディングの前記関連付けインスタンスを、表示されるよう提供し、前記一つまたは複数のVB-PO属性は、前記関連付けインスタンスの表示に際して前記仮想バインディングが前記物理オブジェクトに取り付けられているように見えるか前記物理オブジェクトと相互作用するように見えるかを示す、コンピュータ装置を含んでいてもよい。
実施例5は、実施例4および/または本願の他の何らかの実施例のコンピュータ装置であって、前記AR回路が、前記ジェスチャーが前記仮想バインディングを操作するジェスチャーであるときに、前記仮想バインディングのPO操作インスタンスを生成し; 前記インターフェース回路が、前記仮想バインディングが前記ジェスチャーの実行に応答して操作されているように見えるよう表示されるよう前記仮想バインディングの前記PO操作インスタンスを提供する、コンピュータ装置を含んでいてもよい。
実施例6は、実施例5および/または本願の他の何らかの実施例のコンピュータ装置であって、一つまたは複数のコンテキスト属性を決定するコンテキスト回路をさらに有しており、前記一つまたは複数のコンテキスト属性は、ユーザー活動、意味的位置、ソーシャルな状況、周囲条件、一つまたは複数の電子装置の存在、スケジュールおよびユーザー通信を含み、 前記AR回路は、前記一つまたは複数のコンテキスト属性に基づいて前記PO操作インスタンスを生成する、コンピュータ装置を含んでいてもよい。
実施例7は、実施例1ないし6および/または本願の他の何らかの実施例のコンピュータ装置であって、前記インスタンスが選択インスタンスであり、前記AR回路が: 仮想オブジェクト(VO)を、前記ジェスチャーが該VOを選択することを示すジェスチャーであるときに生成し、 前記ジェスチャーが前記仮想バインディングを前記VOと関連付けることを示すジェスチャーであるとき、前記仮想バインディングのVOインスタンスを生成し、 前記仮想バインディングの前記VOとの前記関連付けの、一つまたは複数の、VOへの仮想バインディング(VB-VO)属性を識別し、 前記ジェスチャーが前記仮想バインディングを操作するジェスチャーであるときに、前記仮想バインディングのVO操作インスタンスを生成し; 前記インターフェース回路が: 前記VOおよび前記仮想バインディングの前記VOインスタンスを、表示されるよう提供する段階であって、前記一つまたは複数のVB-VO属性は、前記VOインスタンスおよび前記VOの表示に際して前記仮想バインディングが前記VOに取り付けられているように見えるか前記VOと相互作用するように見えるかを示す、段階と、 前記仮想バインディングの前記VO操作インスタンスを、前記仮想バインディングが、前記仮想バインディングを操作する前記ジェスチャーの実行に応答して操作されているように見えるよう、表示されるよう提供する段階、とを実行する、コンピュータ装置を含んでいてもよい。
実施例8は、実施例1ないし7および/または本願の他の何らかの実施例のコンピュータ装置であって、前記モデリング回路が前記物理的な環境の三次元(3D)モデルを生成し、前記オブジェクト認識回路が前記3Dモデル内の前記物理オブジェクトを識別する、コンピュータ装置を含んでいてもよい。
実施例9は、実施例1ないし8および/または本願の他の何らかの実施例のコンピュータ装置であって、前記インスタンスが選択インスタンスであり、前記AR回路が: 前記ジェスチャーが前記仮想バインディングを装備されたオブジェクトと関連付けることを示すジェスチャーであるとき、前記仮想バインディングの装備されたオブジェクト(IO)インスタンスを生成し、 前記仮想バインディングの前記VOとの前記関連付けの、一つまたは複数の、IOへの仮想バインディング(VB-IO)属性を識別し、 前記装備されたオブジェクトとネットワーク接続を確立させ、 前記仮想バインディングの前記IOインスタンスを、表示されるよう提供し、前記一つまたは複数のVB-IO属性は、前記IOインスタンスの表示に際して前記仮想バインディングが前記装備されたオブジェクトに取り付けられているように見えるか前記装備されたオブジェクトと相互作用するように見えるかを示す、コンピュータ装置を含んでいてもよい。
実施例10は、実施例9および/または本願の他の何らかの実施例のコンピュータ装置であって、 前記AR回路は、前記ジェスチャーが前記装備されたオブジェクトに対して作用するよう前記仮想バインディングを操作するジェスチャーであるときに、前記仮想バインディングのIO操作インスタンスを生成し、 前記インターフェース回路は: 前記仮想バインディングの前記IO操作インスタンスを、前記仮想バインディングが、前記ジェスチャーの実行に応答して操作されているように見えるよう、表示されるよう提供し、 前記ネットワーク接続を通じて前記装備されたオブジェクトにメッセージを送信させ、前記命令は、前記装備されたオブジェクトに、前記仮想バインディングの前記操作に応答して一つまたは複数のアクションを実行するよう命令するものである、コンピュータ装置を含んでいてもよい。
実施例11は、命令を有する一つまたは複数のコンピュータ可読媒体(CRM)であって、前記命令は、コンピュータ装置の一つまたは複数のプロセッサによって実行されたときに、前記コンピュータ装置に: 物理的な環境を表わす第一のセンサー・データをセンサー・アレイから取得する段階と; 前記第一のセンサー・データに基づいて前記物理的な環境における物理オブジェクトを追跡する段階と; オブジェクトを識別し、識別されたオブジェクトに関連付けられたオブジェクト属性を識別する段階と; ユーザーによって実行されたジェスチャーを表わす第二のセンサー・データを前記センサー・アレイから取得する段階と; 前記第二のセンサー・データに基づいて前記ジェスチャーを識別する段階と; 前記ジェスチャーの識別に応答して、前記オブジェクト属性に基づく仮想バインディングのインスタンスを生成する段階であって、前記仮想バインディングのインスタンスは、前記仮想バインディングによって実行される一つまたは複数のアクションに影響する一つまたは複数の仮想バインディング属性をもつ、段階と; 前記仮想バインディングのインスタンスを、該インスタンスの表示に際して前記仮想バインディングが前記オブジェクトに取り付けられているように見えるまたは前記オブジェクトと相互作用するように見えるよう、表示されるように提供する段階とを実行させるものである、一つまたは複数のCRMを含んでいてもよい。
実施例12は、実施例11および/または本願の他の何らかの実施例の一つまたは複数のCRMであって、前記ジェスチャーが特定の仮想バインディングの選択を示すジェスチャーであるときに前記仮想バインディングの前記インスタンスが選択インスタンスである、一つまたは複数のCRMを含んでいてもよい。
実施例13は、実施例11および/または本願の他の何らかの実施例の一つまたは複数のCRMであって、前記命令の実行が前記コンピュータ装置にさらに、前記識別されたオブジェクトに関連付けられたオブジェクト・プロファイルを取得し、前記オブジェクト・プロファイルから前記オブジェクト属性を識別し、前記オブジェクト属性に基づいて前記仮想バインディング属性を決定することを実行させる、一つまたは複数のCRMを含んでいてもよい。
実施例14は、実施例11および/または本願の他の何らかの実施例の一つまたは複数のCRMであって、前記オブジェクトが物理オブジェクトであり、前記命令の実行が前記コンピュータ装置にさらに: 前記ジェスチャーが前記仮想バインディングを前記物理オブジェクトと関連付けることを示すジェスチャーであるとき、前記仮想バインディングの関連付けインスタンスを生成し、 前記仮想バインディングの前記物理オブジェクトとの前記関連付けの、一つまたは複数の、物理オブジェクトへの仮想バインディング(VB-PO)属性を識別し、 前記仮想バインディングの前記関連付けインスタンスを、表示されるよう提供することを実行させ、前記一つまたは複数のVB-PO属性は、前記関連付けインスタンスの表示に際して前記仮想バインディングが前記物理オブジェクトに取り付けられているように見えるか前記物理オブジェクトと相互作用するように見えるかを示す、一つまたは複数のCRMを含んでいてもよい。
実施例15は、実施例14および/または本願の他の何らかの実施例の一つまたは複数のCRMであって、前記命令の実行が前記コンピュータ装置にさらに:前記ジェスチャーが前記仮想バインディングを操作するジェスチャーであるときに、前記仮想バインディングのPO操作インスタンスを生成し; 前記仮想バインディングが前記ジェスチャーの実行に応答して、かつ前記仮想バインディング属性に従って操作されているように見えるよう表示されるよう前記仮想バインディングの前記PO操作インスタンスを提供することを実行させる、一つまたは複数のCRMを含んでいてもよい。
実施例16は、実施例15および/または本願の他の何らかの実施例の一つまたは複数のCRMであって、前記命令の実行が前記コンピュータ装置に:一つまたは複数のコンテキスト属性を決定する段階であって、前記一つまたは複数のコンテキスト属性は、ユーザー活動、意味的位置、ソーシャルな状況、周囲条件、一つまたは複数の電子装置の存在、スケジュールおよびユーザー通信を含む、段階と; 前記一つまたは複数のコンテキスト属性に基づいて前記PO操作インスタンスを生成する段階とを実行させる、一つまたは複数のCRMを含んでいてもよい。
実施例17は、実施例11および/または本願の他の何らかの実施例の一つまたは複数のCRMであって、前記命令の実行が前記コンピュータ装置に:仮想オブジェクト(VO)を、前記ジェスチャーが該VOを選択することを示すジェスチャーであるときに生成する段階と; 前記ジェスチャーが前記仮想バインディングを前記VOと関連付けることを示すジェスチャーであるとき、前記仮想バインディングのVOインスタンスを生成する段階と; 前記仮想バインディングの前記VOとの前記関連付けの、一つまたは複数の、VOへの仮想バインディング(VB-VO)属性を識別する段階と; 前記ジェスチャーが前記仮想バインディングを操作するジェスチャーであるときに、前記仮想バインディングのVO操作インスタンスを生成する段階と; 前記VOおよび前記仮想バインディングの前記VOインスタンスを、表示されるよう提供する段階であって、前記一つまたは複数のVB-VO属性は、前記VOインスタンスおよび前記VOの表示に際して前記仮想バインディングが前記VOに取り付けられているように見えるか前記VOと前記仮想バインディング属性に従って相互作用するように見えるかを示す、段階と; 前記仮想バインディングの前記VO操作インスタンスを、前記仮想バインディングが、前記ジェスチャーの実行に応答して、前記仮想バインディング属性に従って操作されているように見えるよう、表示されるよう提供する段階とを実行させる、一つまたは複数のCRMを含んでいてもよい。
実施例18は、実施例17および/または本願の他の何らかの実施例の一つまたは複数のCRMであって、前記命令の実行が前記コンピュータ装置に:前記センサー・データに基づいてAR環境のための前記物理的な環境の三次元(3D)モデルを生成する段階と;前記3Dモデル内の前記物理オブジェクトを識別する段階とを実行させる、一つまたは複数のCRMを含んでいてもよい。
実施例19は、実施例11および/または本願の他の何らかの実施例の一つまたは複数のCRMであって、前記命令の実行が前記コンピュータ装置に: 前記ジェスチャーが前記仮想バインディングを装備されたオブジェクトと関連付けることを示すジェスチャーであるとき、前記仮想バインディングの装備されたオブジェクト(IO)インスタンスを生成する段階と; 前記仮想バインディングの前記VOとの前記関連付けの、一つまたは複数の、IOへの仮想バインディング(VB-IO)属性を識別する段階と; 前記装備されたオブジェクトとネットワーク接続を確立させる段階と; 前記仮想バインディングの前記IOインスタンスを、表示されるよう提供する段階であって、前記一つまたは複数のVB-IO属性は、前記IOインスタンスの表示に際して前記仮想バインディングが前記装備されたオブジェクトに取り付けられているように見えるか前記装備されたオブジェクトと、前記仮想バインディング属性に従って相互作用するように見えるかを示す、段階とを実行させる、一つまたは複数のCRMを含んでいてもよい。
実施例20は、実施例19および/または本願の他の何らかの実施例の一つまたは複数のCRMであって、前記命令の実行が前記コンピュータ装置に:前記ジェスチャーが前記装備されたオブジェクトに対して作用するよう前記仮想バインディングを操作するジェスチャーであるときに、前記仮想バインディングのIO操作インスタンスを生成する段階と; 前記仮想バインディングの前記IO操作インスタンスを、前記仮想バインディングが、前記ジェスチャーの実行に応答して操作されているように見えるよう、表示されるよう提供する段階と; 前記ネットワーク接続を通じて前記装備されたオブジェクトにメッセージが送信されるようにする段階であって、前記命令は、前記装備されたオブジェクトに、前記仮想バインディングの前記操作に応答して一つまたは複数のアクションを実行するよう命令するものである、段階とを実行させる、一つまたは複数のCRMを含んでいてもよい。
実施例21は、コンピュータ装置によって実行される方法を含んでいてもよい。当該方法は: 前記コンピュータ装置によって、物理的な環境を表わす第一のセンサー・データをセンサー・アレイから取得する段階と; 前記コンピュータ装置によって、前記センサー・データに基づいて前記物理的な環境における物理オブジェクトを追跡する段階と; 前記コンピュータ装置によって、前記物理的な環境内のオブジェクトを識別し、識別されたオブジェクトに関連付けられたオブジェクト属性を識別する段階と; 前記コンピュータ装置によって、ユーザーによって実行されたジェスチャーを表わす第二のセンサー・データを前記センサー・アレイから取得する段階と; 前記コンピュータ装置によって、前記第二のセンサー・データに基づいて前記ジェスチャーを識別する段階と; 前記コンピュータ装置によって、前記ジェスチャーの識別に応答して、前記オブジェクト属性に基づく仮想バインディングのインスタンスを生成する段階であって、仮想バインディングのインスタンスは、前記仮想バインディングによって実行される一つまたは複数のアクションに影響する一つまたは複数の仮想バインディング属性をもつ、段階と; 前記コンピュータ装置によって、前記仮想バインディングのインスタンスを、該インスタンスの表示に際して前記仮想バインディングが前記オブジェクトに取り付けられているように見えるまたは前記オブジェクトと相互作用するように見えるよう、表示されるように提供する段階とを含む。
実施例22は、実施例21および/または本願の他の何らかの実施例の方法であって、前記ジェスチャーが特定の仮想バインディングの選択を示すジェスチャーであるときに前記仮想バインディングの前記インスタンスが選択インスタンスである、方法を含んでいてもよい。
実施例23は、実施例21および/または本願の他の何らかの実施例の方法であって、前記コンピュータ装置によって、前記識別されたオブジェクトに関連付けられたオブジェクト・プロファイルを取得し;前記コンピュータ装置によって、前記オブジェクト・プロファイルから前記オブジェクト属性を識別し;前記コンピュータ装置によって、前記オブジェクト属性に基づいて前記仮想バインディング属性を決定することをさらに含む、方法を含んでいてもよい。
実施例24は、実施例21および/または本願の他の何らかの実施例の方法であって、前記オブジェクトが物理オブジェクトであり、前記命令の実行が前記コンピュータ装置に: 前記コンピュータ装置によって、前記ジェスチャーが前記仮想バインディングを前記物理オブジェクトと関連付けることを示すジェスチャーであるとき、前記仮想バインディングの関連付けインスタンスを生成する段階と; 前記コンピュータ装置によって、前記仮想バインディングの前記物理オブジェクトとの前記関連付けの、一つまたは複数の、物理オブジェクトへの仮想バインディング(VB-PO)属性を識別する段階と; 前記コンピュータ装置によって、前記仮想バインディングの前記関連付けインスタンスを、表示されるよう提供する段階であって前記一つまたは複数のVB-PO属性は、前記関連付けインスタンスの表示に際して前記仮想バインディングが前記物理オブジェクトに取り付けられているように見えるか前記物理オブジェクトと相互作用するように見えるかを示す、段階とを実行させる、方法を含んでいてもよい。
実施例25は、実施例24および/または本願の他の何らかの実施例の方法であって、前記コンピュータ装置によって、前記ジェスチャーが前記仮想バインディングを操作するジェスチャーであるときに、前記仮想バインディングのPO操作インスタンスを生成する段階と; 前記仮想バインディングが前記ジェスチャーの実行に応答して、かつ前記仮想バインディング属性に従って操作されているように見えるよう表示されるよう前記仮想バインディングの前記PO操作インスタンスを提供する段階とをさらに含む、方法を含んでいてもよい。
実施例26は、実施例25および/または本願の他の何らかの実施例の方法であって、前記命令の実行が前記コンピュータ装置に:前記コンピュータ装置によって、一つまたは複数のコンテキスト属性を決定する段階であって、前記一つまたは複数のコンテキスト属性は、ユーザー活動、意味的位置、ソーシャルな状況、周囲条件、一つまたは複数の電子装置の存在、スケジュールおよびユーザー通信を含む、段階と;前記コンピュータ装置によって、前記一つまたは複数のコンテキスト属性に基づいて前記PO操作インスタンスを生成する段階とを実行させる、方法を含んでいてもよい。
実施例27は、実施例21および/または本願の他の何らかの実施例の方法であって、 前記コンピュータ装置によって、仮想オブジェクト(VO)を、前記ジェスチャーが該VOを選択することを示すジェスチャーであるときに、生成する段階と; 前記コンピュータ装置によって、前記ジェスチャーが前記仮想バインディングを前記VOと関連付けることを示すジェスチャーであるとき、前記仮想バインディングのVOインスタンスを生成する段階と; 前記コンピュータ装置によって、前記仮想バインディングの前記VOとの前記関連付けの、一つまたは複数の、VOへの仮想バインディング(VB-VO)属性を識別する段階と; 前記コンピュータ装置によって、前記ジェスチャーが前記仮想バインディングを操作するジェスチャーであるときに、前記仮想バインディングのVO操作インスタンスを生成する段階と; 前記コンピュータ装置によって、前記VOおよび前記仮想バインディングの前記VOインスタンスを、表示されるよう提供する段階であって、前記一つまたは複数のVB-VO属性は、前記VOインスタンスおよび前記VOの表示に際して、前記仮想バインディングが前記VOに取り付けられているように見えるか前記VOと、前記仮想バインディング属性に従って相互作用するように見えるかを示す、段階と; 前記コンピュータ装置によって、前記仮想バインディングの前記VO操作インスタンスを、前記仮想バインディングが、前記ジェスチャーの実行に応答して、かつ前記仮想バインディング属性に従って操作されているように見えるよう、表示されるよう提供する段階とをさらに含む、方法を含んでいてもよい。
実施例28は、実施例27および/または本願の他の何らかの実施例の方法であって、前記命令の実行が前記コンピュータ装置に:前記コンピュータ装置によって、前記センサー・データに基づいてAR環境のための前記物理的な環境の三次元(3D)モデルを生成する段階と;前記コンピュータ装置によって、前記3Dモデル内のオブジェクトを識別する段階とを実行させる、方法を含んでいてもよい。
実施例29は、実施例21および/または本願の他の何らかの実施例の方法であって、前記インスタンスが第一のインスタンスであり、前記命令の実行が前記コンピュータ装置に: 前記コンピュータ装置によって、前記ジェスチャーが前記仮想バインディングを装備されたオブジェクトと関連付けることを示すジェスチャーであるとき、前記仮想バインディングの装備されたオブジェクト(IO)インスタンスを生成する段階と; 前記コンピュータ装置によって、前記仮想バインディングの前記VOとの前記関連付けの、一つまたは複数の、IOへの仮想バインディング(VB-IO)属性を識別する段階と; 前記コンピュータ装置によって、前記装備されたオブジェクトとネットワーク接続を確立する段階と; 前記コンピュータ装置によって、前記仮想バインディングの前記IOインスタンスを、表示されるよう提供する段階であって、前記一つまたは複数のVB-IO属性は、前記IOインスタンスの表示に際して前記仮想バインディングが前記装備されたオブジェクトに取り付けられているように見えるか前記装備されたオブジェクトと、前記仮想バインディング属性に従って相互作用するように見えるかを示す、段階とを実行させる、方法を含んでいてもよい。
実施例30は、実施例29および/または本願の他の何らかの実施例の方法であって、前記命令の実行が前記コンピュータ装置に: 前記コンピュータ装置によって、前記ジェスチャーが前記装備されたオブジェクトに対して作用するよう前記仮想バインディングを操作するジェスチャーであるときに、前記仮想バインディングのIO操作インスタンスを生成する段階と; 前記コンピュータ装置によって、前記仮想バインディングの前記IO操作インスタンスを、前記仮想バインディングが、前記ジェスチャーの実行に応答して操作されているように見えるよう、表示されるよう提供する段階と; 前記コンピュータ装置によって、前記ネットワーク接続を通じて前記装備されたオブジェクトにメッセージを送信する段階であって、前記命令は、前記装備されたオブジェクトに、前記仮想バインディングの前記操作に応答して一つまたは複数のアクションを実行するよう命令するものである、段階とを実行させる、方法を含んでいてもよい。
実施例31は、拡張現実感(AR)システムであって: センサー・アレイおよび出力装置アレイを有する環境であって、前記センサー・アレイは一つまたは複数のセンサーを有し、前記出力装置アレイは一つまたは複数の電気機械装置を有する、環境と; 前記センサー・アレイおよび前記出力装置アレイと通信上結合されたARプラットフォームであって、前記ARプラットフォームは:メモリ回路、通信回路およびインターフェース回路と結合されたプロセッサ回路を有し、前記プロセッサ回路は: 前記センサー・アレイの前記一つまたは複数のセンサーから第一のセンサー・データを取得するよう前記インターフェース回路または前記通信回路を制御する段階と; 前記第一のセンサー・データに基づいて前記環境内の物理オブジェクトを追跡する段階と; 前記3Dモデル内のオブジェクトを識別し、識別されたオブジェクトに関連付けられたオブジェクト属性を識別する段階と; ユーザーによって実行されたジェスチャーを表わす第二のセンサー・データを、前記センサー・アレイの前記一つまたは複数のセンサーから取得する段階と; 前記第二のセンサー・データに基づいて前記ジェスチャーを識別する段階と; 前記ジェスチャーに識別に応答して、前記オブジェクト属性に基づく仮想バインディングのインスタンスを生成する段階であって、前記仮想バインディングのインスタンスは、前記仮想バインディングによって実行される一つまたは複数のアクションに影響する一つまたは複数の仮想バインディング属性をもつ、段階と; 前記仮想バインディングのインスタンスを、前記出力装置アレイの前記一つまたは複数の出力装置の個別の出力装置に提供するよう前記インターフェース回路または前記通信回路を制御する段階であって、前記個別の出力装置が、該インスタンスの表示に際して前記仮想バインディングが前記オブジェクトに取り付けられているように見えるまたは前記オブジェクトと相互作用するように見えるよう、前記仮想バインディングのインスタンスを表示する、段階とを実行する、ARシステムを含んでいてもよい。
実施例32は、実施例31および/または本願の他の何らかの実施例のARシステムであって、前記ジェスチャーが特定の仮想バインディングの選択を示すジェスチャーであるときに前記仮想バインディングの前記インスタンスが選択インスタンスである、ARシステムを含んでいてもよい。
実施例33は、実施例31および/または本願の他の何らかの実施例のARシステムであって、前記プロセッサ回路が、前記識別されたオブジェクトに関連付けられたオブジェクト・プロファイルを取得し、前記オブジェクト・プロファイルから前記オブジェクト属性を識別し、前記オブジェクト属性に基づいて前記仮想バインディング属性を決定する、ARシステムを含んでいてもよい。
実施例34は、実施例31および/または本願の他の何らかの実施例のARシステムであって、前記プロセッサ回路が: 前記ジェスチャーが前記仮想バインディングを前記物理オブジェクトと関連付けることを示すジェスチャーであるとき、前記仮想バインディングの関連付けインスタンスを生成する段階と; 前記仮想バインディングの前記物理オブジェクトとの前記関連付けの、一つまたは複数の、物理オブジェクトへの仮想バインディング(VB-PO)属性を識別する段階と; 前記仮想バインディングの前記関連付けインスタンスを、表示されるよう提供するよう前記インターフェース回路または前記通信回路を制御する段階であって、前記一つまたは複数のVB-PO属性は、前記関連付けインスタンスの表示に際して前記仮想バインディングが前記物理オブジェクトに取り付けられているように見えるか前記物理オブジェクトと相互作用するように見えるかを示す、段階とを実行する、ARシステムを含んでいてもよい。
実施例35は、実施例34および/または本願の他の何らかの実施例のARシステムであって、前記ジェスチャーが前記仮想バインディングを操作するジェスチャーであるときに、前記仮想バインディングのPO操作インスタンスを生成する段階と; 前記仮想バインディングが前記ジェスチャーの実行に応答して、かつ前記仮想バインディング属性に従って操作されているように見えるよう表示されるよう前記仮想バインディングの前記PO操作インスタンスを提供するよう、前記インターフェース回路または前記通信回路を制御する段階とを実行する、ARシステムを含んでいてもよい。
実施例36は、実施例35および/または本願の他の何らかの実施例のARシステムであって、前記プロセッサ回路が:一つまたは複数のコンテキスト属性を決定する段階であって、前記一つまたは複数のコンテキスト属性は、ユーザー活動、意味的位置、ソーシャルな状況、周囲条件、一つまたは複数の電子装置の存在、スケジュールおよびユーザー通信を含む、段階と; 前記一つまたは複数のコンテキスト属性に基づいて前記PO操作インスタンスを生成する段階とを実行する、ARシステムを含んでいてもよい。
実施例37は、実施例31および/または本願の他の何らかの実施例のARシステムであって、前記プロセッサ回路が:仮想オブジェクト(VO)を、前記ジェスチャーが該VOを選択することを示すジェスチャーであるときに、生成する段階と; 前記ジェスチャーが前記仮想バインディングを前記VOと関連付けることを示すジェスチャーであるとき、前記仮想バインディングのVOインスタンスを生成する段階と; 前記仮想バインディングの前記VOとの前記関連付けの、一つまたは複数の、VOへの仮想バインディング(VB-VO)属性を識別する段階と; 前記ジェスチャーが前記仮想バインディングを操作するジェスチャーであるときに、前記仮想バインディングのVO操作インスタンスを生成する段階と; 前記VOおよび前記仮想バインディングの前記VOインスタンスを、表示されるよう提供するよう前記インターフェース回路または前記通信回路を制御する段階であって、前記一つまたは複数のVB-VO属性は、前記VOインスタンスおよび前記VOの表示に際して、前記仮想バインディングが前記VOに取り付けられているように見えるか前記VOと、前記仮想バインディング属性に従って相互作用するように見えるかを示す、段階と; 前記仮想バインディングの前記VO操作インスタンスを、前記仮想バインディングが、前記ジェスチャーの実行に応答して、かつ前記仮想バインディング属性に従って操作されているように見えるよう、表示されるよう提供するよう前記インターフェース回路または前記通信回路を制御する段階とを実行する、ARシステムを含んでいてもよい。
実施例38は、実施例37および/または本願の他の何らかの実施例のARシステムであって、前記プロセッサ回路が前記センサー・データに基づいてAR環境のための前記物理的な環境の三次元(3D)モデルを生成し、前記3Dモデル内の前記物理オブジェクトを識別する、ARシステムを含んでいてもよい。
実施例39は、実施例31および/または本願の他の何らかの実施例のARシステムであって、前記プロセッサ回路が: 前記ジェスチャーが前記仮想バインディングを装備されたオブジェクトと関連付けることを示すジェスチャーであるとき、前記仮想バインディングの装備されたオブジェクト(IO)インスタンスを生成する段階と; 前記仮想バインディングの前記VOとの前記関連付けの、一つまたは複数の、IOへの仮想バインディング(VB-IO)属性を識別する段階と; 前記装備されたオブジェクトとネットワーク接続を確立させる段階と; 前記仮想バインディングの前記IOインスタンスを、表示されるよう提供するよう、前記インターフェース回路または前記通信回路を制御する段階であって、前記一つまたは複数のVB-IO属性は、前記IOインスタンスの表示に際して前記仮想バインディングが前記装備されたオブジェクトに取り付けられているように見えるか前記装備されたオブジェクトと、前記仮想バインディング属性に従って相互作用するように見えるかを示す、段階とを実行する、ARシステムを含んでいてもよい。
実施例40は、実施例39および/または本願の他の何らかの実施例のARシステムであって、前記プロセッサ回路は: 前記ジェスチャーが前記装備されたオブジェクトに対して作用するよう前記仮想バインディングを操作するジェスチャーであるときに、前記仮想バインディングのIO操作インスタンスを生成する段階と; 前記仮想バインディングの前記IO操作インスタンスを、前記仮想バインディングが、前記ジェスチャーの実行に応答して操作されているように見えるよう、表示されるよう提供するよう、前記インターフェース回路または前記通信回路を制御する段階と; 前記ネットワーク接続を通じて前記装備されたオブジェクトにメッセージを送信するよう前記通信回路を制御する段階であって、前記命令は、前記装備されたオブジェクトに、前記仮想バインディングの前記操作に応答して一つまたは複数のアクションを実行するよう命令するものである、段階とを実行する、ARシステムを含んでいてもよい。
実施例41は、拡張現実感(AR)システムにおいて用いられるコンピュータ装置であって、当該コンピュータ装置は:センサー・アレイから得られた第一のセンサー・データに基づいて物理的な環境の三次元(3D)モデルを生成するモデリング手段と;ユーザーのユーザー対話を表わす、前記第二のセンサー・アレイから得られた第二のセンサー・データに基づいてユーザー対話を判別するユーザー入力解析手段と;前記3Dモデル内の物理オブジェクトを識別するオブジェクト認識手段と;識別された前記物理オブジェクトおよび前記ジェスチャーに基づいて仮想バインディングのインスタンスを生成するAR手段であって、前記仮想バインディングのインスタンスは、識別された前記物理オブジェクトに基づく、前記仮想バインディングによって実行される一つまたは複数のアクションに影響する一つまたは複数の仮想バインディング属性をもつ、AR手段と;表示されるべき前記仮想バインディングのインスタンスを、該インスタンスの表示に際して前記仮想バインディングが前記物理オブジェクトに取り付けられているように見えるまたは前記物理オブジェクトと相互作用するように見えるよう、表示する表示手段とを有する、コンピュータ装置を含んでいてもよい。
実施例42は、実施例41および/または本願の他の何らかの実施例のコンピュータ装置であって、前記AR手段が、前記ジェスチャーが特定の仮想バインディングの選択を示すジェスチャーであるときに前記仮想バインディングの前記インスタンスを生成するためのものである、コンピュータ装置を含んでいてもよい。
実施例43は、実施例41および/または本願の他の何らかの実施例のコンピュータ装置であって、前記AR手段が前記物理オブジェクトの一つまたは複数のオブジェクト属性を取得し、前記一つまたは複数のオブジェクト属性に基づいて前記仮想バインディングの前記インスタンスを生成するためのものである、コンピュータ装置を含んでいてもよい。
実施例44は、実施例41および/または本願の他の何らかの実施例のコンピュータ装置であって、前記AR手段が: 前記ジェスチャーが前記仮想バインディングを前記物理オブジェクトと関連付けることを示すジェスチャーであるとき、前記仮想バインディングの関連付けインスタンスを生成し、 前記仮想バインディングの前記物理オブジェクトとの前記関連付けの、一つまたは複数の、物理オブジェクトへの仮想バインディング(VB-PO)属性を識別するためのものであり; 前記表示手段が、表示されるべき前記仮想バインディングの前記関連付けインスタンスを表示するためのものであり、前記一つまたは複数のVB-PO属性は、前記関連付けインスタンスの表示に際して前記仮想バインディングが前記物理オブジェクトに取り付けられているように見えるか前記物理オブジェクトと相互作用するように見えるかを示す、コンピュータ装置を含んでいてもよい。
実施例45は、実施例44および/または本願の他の何らかの実施例のコンピュータ装置であって、前記AR手段が、前記ジェスチャーが前記仮想バインディングを操作するジェスチャーであるときに、前記仮想バインディングのPO操作インスタンスを生成するためのものであり; 前記表示手段が、前記仮想バインディングが前記ジェスチャーの実行に応答して操作されているように見えるよう表示されるべき前記仮想バインディングの前記PO操作インスタンスを表示するためのものである、コンピュータ装置を含んでいてもよい。
実施例46は、実施例45および/または本願の他の何らかの実施例のコンピュータ装置であって、一つまたは複数のコンテキスト属性を決定するコンテキスト手段をさらに有しており、 前記一つまたは複数のコンテキスト属性は、ユーザー活動、意味的位置、ソーシャルな状況、周囲条件、一つまたは複数の電子装置の存在、スケジュールおよびユーザー通信を含み、 前記AR手段は、前記一つまたは複数のコンテキスト属性に基づいて前記PO操作インスタンスを生成するためのものである、コンピュータ装置を含んでいてもよい。
実施例47は、実施例41および/または本願の他の何らかの実施例のコンピュータ装置であって、前記インスタンスが選択インスタンスであり、前記AR手段が: 仮想オブジェクト(VO)を、前記ジェスチャーが該VOを選択することを示すジェスチャーであるときに生成し、 前記ジェスチャーが前記仮想バインディングを前記VOと関連付けることを示すジェスチャーであるとき、前記仮想バインディングのVOインスタンスを生成し、 前記仮想バインディングの前記VOとの前記関連付けの、一つまたは複数の、VOへの仮想バインディング(VB-VO)属性を識別するためのものであり;前記表示手段が、 表示されるべき、前記VOおよび前記仮想バインディングの前記VOインスタンスを表示するためのものであり、前記一つまたは複数のVB-VO属性は、前記VOインスタンスおよび前記VOの表示に際して前記仮想バインディングが前記VOに取り付けられているように見えるか前記VOと相互作用するように見えるかを示す、コンピュータ装置を含んでいてもよい。
実施例48は、実施例47および/または本願の他の何らかの実施例のコンピュータ装置であって、前記AR手段が、前記ジェスチャーが前記仮想バインディングを操作するジェスチャーであるときに、前記仮想バインディングのVO操作インスタンスを生成するためのものであり;前記表示手段が、表示されるべき前記仮想バインディングの前記VO操作インスタンスを、前記仮想バインディングが、前記ジェスチャーの実行に応答して操作されているように見えるよう、表示するためのものである、コンピュータ装置を含んでいてもよい。
実施例49は、実施例41および/または本願の他の何らかの実施例のコンピュータ装置であって、前記インスタンスが選択インスタンスであり、前記AR手段が: 前記ジェスチャーが前記仮想バインディングを装備されたオブジェクトと関連付けることを示すジェスチャーであるとき、前記仮想バインディングの装備されたオブジェクト(IO)インスタンスを生成し、 前記仮想バインディングの前記VOとの前記関連付けの、一つまたは複数の、IOへの仮想バインディング(VB-IO)属性を識別するためのものであり、前記表示手段が、表示されるべき前記仮想バインディングの前記IOインスタンスを表示するためのものであり、前記一つまたは複数のVB-IO属性は、前記IOインスタンスの表示に際して前記仮想バインディングが前記装備されたオブジェクトに取り付けられているように見えるか前記装備されたオブジェクトと相互作用するように見えるかを示し、当該装置は、前記装備されたオブジェクトと確立されるべきネットワーク接続を確立する通信手段を有する、コンピュータ装置を含んでいてもよい。
実施例50は、実施例49および/または本願の他の何らかの実施例のコンピュータ装置であって、前記AR手段は、前記ジェスチャーが前記装備されたオブジェクトに対して作用するよう前記仮想バインディングを操作するジェスチャーであるときに、前記仮想バインディングのIO操作インスタンスを生成するものであり;前記表示手段は、表示されるべき前記仮想バインディングの前記IO操作インスタンスを、前記仮想バインディングが、前記ジェスチャーの実行に応答して操作されているように見えるよう、表示するものであり、前記通信手段が、 前記ネットワーク接続を通じて前記装備されたオブジェクトにメッセージを送信するものであり、前記命令は、前記装備されたオブジェクトに、前記仮想バインディングの前記操作に応答して一つまたは複数のアクションを実行するよう命令するものである、コンピュータ装置を含んでいてもよい。
本開示の精神または範囲から外れることなく、開示される装置および関連する方法の開示される実施形態にさまざまな修正および変形がなされてもよいことは当業者には明白であろう。このように、本開示は、上記で開示される実施形態の修正および変形を、かかる修正および変形がいずれかの請求項およびその等価物の範囲内にはいる限り、カバーすることが意図されている。