ウェアラブルVR/AR/MRシステムは、2Dまたは3D仮想画像をユーザに提示するために構成されることができる。画像は、静止画像、ビデオのフレーム、またはビデオ、またはその組み合わせまたは同等物であってもよい。ウェアラブルシステムは、ユーザ相互作用のために、VR、AR、またはMR環境を提示し得る、ウェアラブルデバイスを含むことができる。ウェアラブルVR/AR/MRシステムは、頭部搭載型デバイス(HMD)であることができる。
図1は、ユーザによって視認されるような仮想オブジェクトおよび物理的オブジェクトを伴う、MRまたはARシナリオの例証を描写する。AR/MR技術のユーザには、図1に描写され、人々、木々、背景内の建物、およびコンクリートプラットフォーム120を特徴とする、実世界公園状設定110を含む、場面100が見える。これらの実世界アイテムに加え、AR/MR技術のユーザはまた、実世界プラットフォーム120上に立っているロボット像130と、マルハナバチの擬人化のように見える、飛んでいる漫画のような仮想アバタ文字140とが「見える」と知覚するが、これらの要素は、実世界には存在しない。
3Dディスプレイが、見掛け深度のシミュレートされた感覚を生産するために、ディスプレイの視野内の点毎に、その仮想深度に対応する遠近調節応答を生成することが望ましくあり得る。ディスプレイ点に対する遠近調節応答が、収束および立体視の両眼深度キューによって決定されるようなその点の仮想深度に対応しない場合、ヒトの眼は、遠近調節衝突を体験し、不安定な結像、有害な眼精疲労、頭痛、および遠近調節情報の不在下では、見掛け深度のほぼ完全な欠如をもたらし得る。
VR、AR、およびMR体験は、複数の深度平面に対応する画像が視認者に提供されるディスプレイを有する、ディスプレイシステムによって提供されることができる。画像は、深度平面毎に異なってもよく(例えば、場面またはオブジェクトの若干異なる提示を提供する)、視認者の眼によって別個に集束され、それによって、異なる深度平面上に位置する場面に関する異なる画像特徴に合焦させるために要求される眼の遠近調節に基づいて、または合焦からずれている異なる深度平面上の異なる画像特徴を観察することに基づいて、ユーザに深度キューを提供することに役立ち得る。本明細書のいずれかに議論されるように、そのような深度キューは、信用できる深度の知覚を提供する。
図2は、ウェアラブルVR/AR/MRシステム200の実施例を図示する。ウェアラブルシステム200は、ディスプレイ220と、ディスプレイ220の機能をサポートするための種々の機械的および電子的モジュールおよびシステムとを含む。ディスプレイ220は、ユーザ、装着者、または視認者210によって装着可能である、フレーム230に結合されてもよい。ディスプレイ220は、ユーザ210の眼の正面に位置付けられることができる。ディスプレイ220は、AR/VR/MRコンテンツをユーザに提示することができる。ディスプレイ220は、ユーザの頭部に装着される、頭部搭載型ディスプレイ(HMD)をであることができる。いくつかの実施形態では、スピーカ240が、フレーム230に結合され、ユーザの外耳道に隣接して位置付けられる(示されない別のスピーカが、ユーザの他方の外耳道に隣接して位置付けられ、ステレオ/成形可能音響制御を提供する)。
ウェアラブルシステム200は、ユーザの周囲の環境内の世界を観察する、外向きに向いた結像システム464(図4に示される)を含むことができる。ウェアラブルシステム200はまた、ユーザの眼移動を追跡するために使用され得る、内向きに向いた結像システム462(図4に示される)を含むことができる。内向きに向いた結像システムは、一方の眼の移動または両方の眼の移動のいずれかを追跡することができる。内向きに向いた結像システム462は、フレーム230に取り付けられてもよく、内向きに向いた結像システムによって取得された画像情報を処理し、例えば、ユーザ210の眼の瞳孔直径または配向、眼の移動、または通視線を決定し得る、処理モジュール260または270と電気通信してもよい。
実施例として、ウェアラブルシステム200は、外向きに向いた結像システム464または内向きに向いた結像システム462を使用して、ユーザの姿勢またはジェスチャ等の画像を取得することができる。画像は、静止画像、ビデオのフレームまたはビデオ、またはその組み合わせ、または同等物であってもよい。
ディスプレイ220は、有線導線または無線接続等250によって、フレーム230に固定して取り付けられる、ユーザによって装着されるヘルメットまたは帽子に固定して取り付けられる、ヘッドホンに内蔵される、または別様にユーザ210に除去可能に取り付けられる(例えば、リュック式構成において、ベルト結合式構成において)等、種々の構成において搭載され得る、ローカルデータ処理モジュール260に動作可能に結合される250。
ローカル処理およびデータモジュール260は、ハードウェアプロセッサおよび不揮発性メモリ(例えば、フラッシュメモリ)等のデジタルメモリを備えてもよく、その両方とも、データの処理、キャッシュ、および記憶を補助するために利用され得る。データは、(a)画像捕捉デバイス(例えば、内向きに向いた結像システムおよび/または外向きに向いた結像システム内のカメラ)、マイクロホン、慣性測定ユニット(IMU)、加速度計、コンパス、全地球測位システム(GPS)ユニット、無線デバイス、またはジャイロスコープ等の(例えば、フレーム230に動作可能に結合される、または別様にユーザ210に取り付けられ得る)センサから捕捉されるデータ、または、(b)場合によっては、処理または読出後にディスプレイ220への通過のために、遠隔処理モジュール270および/または遠隔データリポジトリ280を使用して入手または処理されるデータ、を含んでもよい。ローカル処理およびデータモジュール260は、これらの遠隔モジュールがローカル処理およびデータモジュール260へのリソースとして利用可能であるように、有線または無線通信リンク等を介して、通信リンク262または264を遠隔処理モジュール270または遠隔データリポジトリ280に動作可能に結合されてもよい。加えて、遠隔処理モジュール280および遠隔データリポジトリ280は、相互に動作可能に結合されてもよい。
いくつかの実施形態では、遠隔処理モジュール270は、データおよび/または画像情報を分析および処理するように構成される、1つ以上のプロセッサを備えてもよい。いくつかの実施形態では、遠隔データリポジトリ280は、デジタルデータ記憶設備を備え得、これは、インターネットまたは「クラウド」リソース構成における他のネットワーキング構成を通して利用可能であってもよい。いくつかの実施形態では、全てのデータが、記憶され、全ての算出が、ローカル処理およびデータモジュールにおいて実施され、遠隔モジュールからの完全に自律的な使用を可能にする。
ヒト視覚系は、複雑であって、深度の現実的知覚を提供することは、困難である。オブジェクトの視認者は、輻輳・開散運動(vergence)と遠近調節(accmmodation)との組み合わせに起因して、オブジェクトを3次元として知覚し得ると考えられる。相互に対する2つの眼の輻輳・開散運動(すなわち、瞳孔が、相互に向かって、またはそこから離れるように移動し、眼の視線を収束させ、オブジェクトを固視するような瞳孔の回転運動)は、眼の水晶体の合焦(または「遠近調節」)と密接に関連付けられる。通常条件下、焦点を1つのオブジェクトから異なる距離における別のオブジェクトに変化させるための眼のレンズの焦点の変化または眼の遠近調節は、「遠近調節−輻輳・開散運動反射」として知られる関係下、輻輳・開散運動の整合変化を自動的に同一距離に生じさせるであろう。同様に、輻輳・開散運動の変化は、通常条件下、遠近調節の整合変化を誘起するであろう。遠近調節と輻輳・開散運動との間のより良好な整合を提供するディスプレイシステムは、3次元画像のより現実的かつ快適なシミュレーションを形成し得る。
図3は、複数の深度平面を使用して3次元画像をシミュレートするためのアプローチの側面を図示する。図3を参照すると、z−軸上の眼302および304からの種々の距離におけるオブジェクトが、異なる遠近調節度を使用して、合焦される。眼302および304は、特定の遠近調節された状態をとり、オブジェクトをz−軸に沿った異なる距離に合焦させる。その結果、特定の遠近調節された状態は、特定の深度平面におけるオブジェクトまたはオブジェクトの一部が、眼がその深度平面に対して遠近調節された状態にあるとき、合焦するように、関連付けられた焦点距離を有する、深度平面306のうちの特定の1つと関連付けられると言え得る。いくつかの実施形態では、3次元画像は、眼302および304毎に、画像の異なる提示を提供することによって、また、深度平面のそれぞれに対応する画像の異なる提示を提供することによって、シミュレートされてもよい。眼302および304の個別の視野は、例証を明確にするために、別個であるように示されるが、それらは、z−軸に沿った距離が増加するにつれて重複してもよい。加えて、深度平面の輪郭(特定の遠近調節された状態において眼によって合焦される、点の軌跡)は、例証を容易にするために、平坦であるように示されるが、それらは、物理的空間内では、湾曲され得る。ヒトの眼は、典型的には、有限数深度面を解釈し、深度知覚を提供することができると考えられる。その結果、知覚された深度の高度に真実味のあるシミュレーションが、眼にこれらの限定数の深度平面のそれぞれに対応する画像の異なる提示を提供することによって達成され得る。
導波管スタックアセンブリ
図4は、画像情報をユーザに出力するための導波管スタックの実施例を図示する。ウェアラブルシステム400は、複数の導波管432b、434b、436b、438b、4400bを使用して、3次元知覚を眼/脳に提供するために利用され得る、導波管のスタックまたはスタックされた導波管アセンブリ480を含む。いくつかの実施形態では、ウェアラブルシステム400は、図2のウェアラブルシステム200に対応してもよく、図4は、ウェアラブルシステム200のいくつかの部分をより詳細に図式的に示す。例えば、いくつかの実施形態では、導波管アセンブリ480は、図2のディスプレイ220の中に統合されてもよい。
図4を継続して参照すると、導波管アセンブリ480はまた、複数の特徴458、456、454、452を導波管の間に含んでもよい。いくつかの実施形態では、特徴458、456、454、452は、レンズであってもよい。他の実施形態では、特徴458、456、454、452は、レンズではなくてもよい。むしろ、それらは、単に、スペーサであってもよい(例えば、空気間隙を形成するためのクラッディング層または構造)。
導波管432b、434b、436b、438b、440bまたは複数のレンズ458、456、454、452は、種々のレベルの波面曲率または光線発散を用いて、画像情報を眼に送信するように構成されてもよい。各導波管レベルは、特定の深度平面と関連付けられてもよく、その深度平面に対応する画像情報を出力するように構成されてもよい。画像投入デバイス420、422、424、426、428は、それぞれ、眼410に向かって出力のために各個別の導波管を横断して入射光を分散させるように構成され得る、導波管440b、438b、436b、434b、432bの中に画像情報を投入するために利用されてもよい。光は、画像投入デバイス420、422、424、426、428の出力表面から出射し、導波管440b、438b、436b、434b、432bの対応する入力縁の中に投入される。いくつかの実施形態では、光の単一ビーム(例えば、コリメートされたビーム)が、各導波管の中に投入され、特定の導波管と関連付けられた深度面に対応する特定の角度(および発散量)において眼410に向かって指向される、クローン化されたコリメートビームの場全体を出力してもよい。
いくつかの実施形態では、画像投入デバイス420、422、424、426、428は、それぞれ、それぞれの対応する導波管440b、438b、436b、434b、432bの中への投入のための画像情報を生成する、離散ディスプレイである。いくつかの他の実施形態では、画像投入デバイス420、422、424、426、428は、例えば、1つ以上の光学導管(光ファイバケーブル等)を介して、画像情報を画像投入デバイス420、422、424、426、428のそれぞれに送り得る、単一の多重化されたディスプレイの出力端である。
コントローラ460が、スタックされた導波管アセンブリ480および画像投入デバイス420、422、424、426、428の動作を制御する。コントローラ460は、導波管440b、438b、436b、434b、432bへの画像情報のタイミングおよび提供を調整する、プログラミング(例えば、非一過性コンピュータ可読媒体内の命令)を含む。いくつかの実施形態では、コントローラ460は、単一の一体型デバイスまたは有線または無線通信チャネルによって接続される分散型システムであってもよい。コントローラ460は、いくつかの実施形態では、処理モジュール260または270(図2に図示される)の一部であってもよい。
導波管440b、438b、436b、434b、432bは、全内部反射(TIR)によって、光を各個別の導波管内で伝搬させるように構成されてもよい。導波管440b、438b、436b、434b、432bはそれぞれ、平面であるかまたは別の形状(例えば、湾曲)を有してもよく、主要上部表面および主要底部表面をそれらの主要上部表面と主要底部表面との間に延在する縁とともに有する。図示される構成では、導波管440b、438b、436b、434b、432bはそれぞれ、光を再指向させ、各個別の導波管内で伝搬させ、導波管から画像情報を眼410に出力することによって、光を導波管から抽出するように構成される、光抽出光学要素440a、438a、436a、434a、432aを含んでもよい。抽出された光はまた、外部結合光と称され得、光抽出光学要素はまた、外部結合光学要素と称され得る。抽出された光のビームは、導波管によって、導波管内で伝搬する光が光再指向要素に衝打する場所において出力される。光抽出光学要素(440a、438a、436a、434a、432a)は、例えば、反射または回折光学特徴であってもよい。説明を容易にし、図面を明確にするために、導波管440b、438b、436b、434b、432bの底部主要表面に配置されて図示されるが、いくつかの実施形態では、光抽出光学要素440a、438a、436a、434a、432aは、正面主要表面または背面主要表面に配置されてもよい、または直接導波管440b、438b、436b、434b、432bの容積内に配置されてもよい。いくつかの実施形態では、光抽出光学要素440a、438a、436a、434a、432aは、透明基板に取り付けられ、導波管440b、438b、436b、434b、432bを形成する、材料の層内に形成されてもよい。いくつかの他の実施形態では、導波管440b、438b、436b、434b、432bは、モノリシック材料部品であってもよく、光抽出光学要素440a、438a、436a、434a、432aは、その材料部品の表面上および/または内部に形成されてもよい。
図4を継続して参照すると、本明細書に議論されるように、各導波管440b、438b、436b、434b、432bは、光を出力し、特定の深度平面に対応する画像を形成するように構成される。例えば、眼の最近傍の導波管432bは、そのような導波管432bの中に投入されるにつれて、コリメートされた光を眼410に送達するように構成されてもよい。コリメートされた光は、光学無限遠焦点面を表し得る。次の上方の導波管434bは、眼410に到達し得る前に、第1のレンズ452(例えば、負のレンズ)を通して通過する、コリメートされた光を送出するように構成されてもよい。第1のレンズ452は、眼/脳が、その次の上方の導波管434bから生じる光を光学無限遠から眼410に向かって内向きにより近い第1の焦点面から生じるように解釈するように、若干の凸面波面曲率を生成するように構成されてもよい。同様に、第3の上方の導波管436bは、眼410に到達する前に、その出力光を第1のレンズ452および第2のレンズ454の両方を通して通過させる。第1および第2のレンズ452および454の組み合わせられた屈折力は、眼/脳が、第3の上方の導波管436bから生じる光が次の上方の導波管434bからの光であった光学無限遠から人物に向かって内向きにさらに近い第2の焦点面から生じるように解釈するように、別の漸増量の波面曲率を生成するように構成されてもよい。
他の導波管層(例えば、導波管438b、440b)およびレンズ(例えば、レンズ456、458)も同様に構成され、スタック内の最高導波管440bを用いて、人物に最も近い焦点面を表す集約焦点力のために、その出力をそれと眼との間のレンズの全てを通して送出する。スタックされた導波管アセンブリ480の他側の世界470から生じる光を視認/解釈するとき、レンズ458、456、454、452のスタックを補償するために、補償レンズ層430が、スタックの上部に配置され、下方のレンズスタック458、456、454、452の集約力を補償してもよい。そのような構成は、利用可能な導波管/レンズ対と同じ数の知覚される焦点面を提供する。導波管の光抽出光学要素およびレンズの集束側面は両方とも、静的であってもよい(例えば、動的ではないまたは電気活性ではない)。いくつかの代替実施形態では、一方または両方とも、電気活性特徴を使用して動的であってもよい。
図4を継続して参照すると、光抽出光学要素440a、438a、436a、434a、432aは、導波管と関連付けられた特定の深度平面のために、光をその個別の導波管から再指向し、かつ本光を適切な量の発散またはコリメーションを伴って出力するように構成されてもよい。その結果、異なる関連付けられた深度平面を有する導波管は、関連付けられた深度平面に応じて、異なる量の発散を伴う光を出力する、異なる構成の光抽出光学要素を有してもよい。いくつかの実施形態では、本明細書に議論されるように、光抽出光学要素440a、438a、436a、434a、432aは、光を具体的角度で出力するように構成され得る、立体特徴または表面特徴であってもよい。例えば、光抽出光学要素440a、438a、436a、434a、432aは、体積ホログラム、表面ホログラム、および/または回折格子であってもよい。回折格子等の光抽出光学要素は、2015年6月25日に公開された米国特許公開第2015/0178939号(参照することによってその全体として本明細書に組み込まれる)に説明される。
いくつかの実施形態では、光抽出光学要素440a、438a、436a、434a、432aは、「回折光学要素」(本明細書では、「DOE」とも称される)を形成する、回折特徴である。いくつかの実施形態では、DOEは、ビームの光の一部のみが、DOEとの各交差部で、眼410に向かって偏向される一方、残りが、全内部反射を介して、導波管を通して移動し続けるように、比較的に低回折効率を有する。画像情報を搬送する光は、したがって、複数の場所において導波管から出射する、いくつかの関連出射ビームに分割され、その結果、導波管内でバウンスする本特定のコリメートされたビームに関して、眼304に向かって非常に均一なパターンの出射放出となることができる。
いくつかの実施形態では、1つ以上のDOEは、能動的に回折する「オン」状態と有意に回折しない「オフ」状態との間で切替可能であってもよい。例えば、切替可能なDOEは、ポリマー分散液晶の層を備えてもよく、その中で微小液滴は、ホスト媒体中に回折パターンを備え、微小液滴の屈折率は、ホスト材料の屈折率に実質的に整合するように切り替えられることができる(その場合、パターンは、入射光を著しく回折させない)、または微小液滴は、ホスト媒体のものに整合しない屈折率に切り替えられることができる(その場合、パターンは、入射光を能動的に回折させる)。
いくつかの実施形態では、深度平面の数および分布は、視認者の眼の瞳孔サイズまたは配向に基づいて、動的に変動されてもよい。被写界深度は、視認者の瞳孔サイズと反比例して変化してもよい。その結果、視認者の眼の瞳孔のサイズが減少するにつれて、被写界深度は、その平面の場所が眼の焦点深度を越えるため判別不能である1つの平面が、判別可能となり、瞳孔サイズの低減および被写界深度の相当する増加に伴って、より合焦して現れ得るように増加する。同様に、異なる画像を視認者に提示するために使用される、離間される深度平面の数は、減少された瞳孔サイズに伴って減少されてもよい。例えば、視認者は、1つの深度平面から他の深度平面への眼の遠近調節を調節せずに、第1の深度平面および第2の深度平面の両方の詳細を1つの瞳孔サイズにおいて明確に知覚することが可能ではない場合がある。しかしながら、これらの2つの深度平面は、同時に、遠近調節を変化させずに、別の瞳孔サイズにおいてユーザに合焦するには十分であり得る。
いくつかの実施形態では、ディスプレイシステムは、瞳孔サイズおよび/または配向の決定に基づいて、または特定の瞳孔サイズ/または配向を示す電気信号の受信に応じて、画像情報を受信する導波管の数を変動させてもよい。例えば、ユーザの眼が、2つの導波管と関連付けられた2つの深度平面間を区別不能である場合、コントローラ460は、これらの導波管のうちの1つへの画像情報の提供を停止するように構成またはプログラムされてもよい。有利には、これは、システムへの処理負担を低減させ、それによって、システムの応答性を増加させ得る。導波管のためのDOEがオン状態およびオフ状態の間で切替可能である実施形態では、DOEは、導波管が画像情報を受信するとき、オフ状態に切り替えられてもよい。
いくつかの実施形態では、出射ビームに視認者の眼の直径未満の直径を有するという条件を満たさせることが望ましくあり得る。しかしながら、本条件を満たすことは、視認者の瞳孔のサイズの変動性に照らして、困難であり得る。いくつかの実施形態では、本条件は、視認者の瞳孔のサイズの決定に応答して出射ビームのサイズを変動させることによって、広範囲の瞳孔サイズにわたって満たされる。例えば、瞳孔サイズが減少するにつれて、出射ビームのサイズもまた、減少し得る。いくつかの実施形態では、出射ビームサイズは、可変開口を使用して変動されてもよい。
ウェアラブルシステム400は、世界470の一部を結像する、外向きに向いた結像システム464(例えば、デジタルカメラ)を含むことができる。世界470の本部分は、世界カメラの視野(FOV)と称され得、結像システム464は、時として、FOVカメラとも称される。視認者による視認または結像のために利用可能な領域全体は、動眼視野(FOR)と称され得る。FORは、装着者が、その身体、頭部、または眼を移動させ、空間内の実質的に任意の方向を知覚することができるため、ウェアラブルシステム400を囲繞する4πステラジアンの立体角を含んでもよい。他の状況では、装着者の移動は、より抑制されてもよく、それに応じて、装着者のFORは、より小さい立体角に対し得る。外向きに向いた結像システム464から得られた画像は、ユーザによって行われるジェスチャ(例えば、手または指のジェスチャ)を追跡し、ユーザの正面における世界470内のオブジェクトを検出する等のために、使用されることができる。
ウェアラブルシステム400はまた、眼移動および顔移動等のユーザの移動を観察する、内向きに向いた結像システム466(例えば、デジタルカメラ)を含むことができる。内向きに向いた結像システム466は、眼410の画像を捕捉し、眼304の瞳孔のサイズおよび/または配向を決定するために使用されてもよい。内向きに向いた結像システム466は、ユーザが見ている方向(例えば、眼姿勢)を決定する際に使用するために、またはユーザのバイオメトリック識別のために(例えば、虹彩識別を介して)、画像を得るために使用されることができる。いくつかの実施形態では、少なくとも1つのカメラが、眼毎に、独立して、各眼の瞳孔サイズまたは眼姿勢を別個に決定し、それによって、各眼への画像情報の提示がその眼に対して動的に調整されることを可能にするために利用されてもよい。いくつかの他の実施形態では、片眼410のみの瞳孔直径または配向(例えば、一対の眼あたり単一カメラのみを使用して)が、決定され、ユーザの両眼に関して類似すると仮定される。内向きに向いた結像システム466によって得られる画像は、ユーザに提示されるべきオーディオまたは視覚的コンテンツを決定するためにウェアラブルシステム400によって使用され得る、ユーザの眼姿勢または気分を決定するために分析されてもよい。ウェアラブルシステム400はまた、IMU、加速度計、ジャイロスコープ等のセンサを使用して、頭部姿勢(例えば、頭部位置または頭部配向)を決定してもよい。
ウェアラブルシステム400は、ユーザが、コマンドをコントローラ460に入力し、ウェアラブルシステム400と相互作用し得る、ユーザ入力デバイス466を含むことができる。例えば、ユーザ入力デバイス466は、トラックパッド、タッチスクリーン、ジョイスティック、多自由度(DOF)コントローラ、容量感知デバイス、ゲームコントローラ、キーボード、マウス、指向性パッド(Dパッド)、ワンド、触覚的デバイス、トーテム(例えば、仮想ユーザ入力デバイスとして機能する)等を含むことができる。マルチDOFコントローラは、コントローラの一部または全部の可能性として考えられる平行移動(例えば、左/右、前方/後方、または上/下)または回転(例えば、ヨー、ピッチ、またはロール)におけるユーザ入力を感知することができる。平行移動をサポートする、マルチDOFコントローラは、3DOFと称され得る一方、平行移動および回転をサポートする、マルチDOFコントローラは、6DOFと称され得る。ある場合には、ユーザは、指(例えば、親指)を使用して、タッチセンサ式入力デバイスを押下するかまたはその上でスワイプし、入力をウェアラブルシステム400に提供してもよい(例えば、ユーザ入力をウェアラブルシステム400によって提供されるユーザインターフェースに提供するために)。ユーザ入力デバイス466は、ウェアラブルシステム400の使用の間、ユーザの手によって保持されてもよい。ユーザ入力デバイス466は、ウェアラブルシステム400と有線または無線通信することができる。
図5は、導波管によって出力された出射ビームの実施例を示す。1つの導波管が図示されるが、導波管アセンブリ480内の他の導波管も同様に機能し得、導波管アセンブリ480は、複数の導波管を含むことを理解されたい。光520が、導波管432bの入力縁432cにおいて導波管432bの中に投入され、TIRによって導波管432b内を伝搬する。光520がDOE432aに衝突する点では、光の一部が、出射ビーム510として導波管から出射する。出射ビーム510は、略平行として図示されるが、また、導波管432bと関連付けられた深度平面に応じて、ある角度で眼410に伝搬するように再指向されてもよい(例えば、発散出射ビーム形成)。略平行出射ビームは、眼410からの遠距離(例えば、光学無限遠)における深度平面に設定されるように現れる画像を形成するように光を外部結合する、光抽出光学要素を伴う導波管を示し得ることを理解されたい。他の導波管または他の光抽出光学要素のセットは、より発散する、出射ビームパターンを出力してもよく、これは、眼410がより近い距離に遠近調節し、網膜に合焦させることを要求し、光学無限遠より眼410に近い距離からの光として脳によって解釈されるであろう。
図6は、導波管装置と、光を導波管装置へまたはそこから光学的に結合するための光学結合器サブシステムと、制御サブシステムとを含む、光学システムを示す、概略図である。光学システムは、多焦点立体ディスプレイまたはライトフィールドを生成するために使用されることができる。光学システムは、1つ以上の一次平面導波管632a(1つのみのが図6に示される)と、一次導波管632aの少なくともいくつかのそれぞれと関連付けられた1つ以上のDOE632bとを含むことができる。平面導波管632bは、図4を参照して議論される導波管432b、434b、436b、438b、440bに類似することができる。光学システムは、分散導波管装置を採用し、光を第1の軸(例えば、図6に示される垂直y−軸)に沿って中継し、第1の軸に沿って光の有効射出瞳を拡張させてもよい。分散導波管装置は、例えば、分散平面導波管622bと、分散平面導波管622bと関連付けられた少なくとも1つのDOE622aとを含んでもよい。分散平面導波管622bは、少なくともいくつかの点において、それと異なる配向を有する一次平面導波管632bと類似または同じであってもよい。同様に、少なくとも1つのDOE622aは、少なくともいくつかの点において、DOE632aと類似または同じであってもよい。例えば、分散平面導波管622bまたはDOE622aは、それぞれ、一次平面導波管632bまたはDOE632aと同一材料から成ってもよい。図6に示される光学ディスプレイシステム600の実施形態は、図2に示されるウェアラブルシステム200の中に統合されることができる。
中継され、射出瞳が拡張された光は、分散導波管装置から1つ以上の一次平面導波管632bの中に光学的に結合され得る。一次平面導波管632bは、好ましくは、第1の軸に直交する、第2の軸(例えば、図6に示される水平x−軸)に沿って、光を中継することができる。着目すべきこととして、第2の軸は、第1の軸に対して非直交軸であることができる。一次平面導波管632bは、その第2の軸に沿って、光の有効射出瞳を拡張させる。例えば、分散平面導波管622bは、光を垂直またはY−軸に沿って中継および拡張させることができ、そして、光を水平またはX−軸に沿って中継および拡張させ得る一次平面導波管632bにその光を通過させることができる。
光学システムは、単一モード光ファイバ640の近位端の中に光学的に結合され得る、1つ以上の着色光源(例えば、赤色、緑色、および青色レーザ光)610を含んでもよい。光ファイバ640の遠位端は、圧電材料の中空管642を通して螺合または受容されてもよい。遠位端は、固定されない可撓性カンチレバー644として、管642から突出する。圧電管642は、4つの象限電極(図示せず)と関連付けられることができる。電極は、例えば、管642の外側、外側表面または外側周縁、または直径に鍍着されてもよい。コア電極(図示せず)もまた、管642のコア、中心、内側周縁、または内径に位置してもよい。
例えば、ワイヤ660を介して電気的に結合される、駆動電子機器650は、対向する対の電極を駆動し、圧電管642を独立して2つの軸において屈曲させる。光ファイバ644の突出する遠位先端は、機械的共鳴モードを有する。共鳴の周波数は、光ファイバ644の直径、長さ、および材料性質に依存し得る。圧電管642をファイバカンチレバー644の第1の機械的共鳴モードの近傍で振動させることによって、ファイバカンチレバー644は、振動させられ、大偏向を通して掃引し得る。
2つの軸において共振振動を刺激することによって、ファイバカンチレバー644の先端は、2次元(2−D)走査を充填する面積内において2軸方向に走査される。光源610の強度をファイバカンチレバー644の走査と同期して変調させることによって、ファイバカンチレバー644から発せられる光は、画像を形成することができる。そのような設定の説明は、米国特許公開第2014/0003762号(参照することによってその全体として本明細書に組み込まれる)に提供されている。
光学結合器サブシステムのコンポーネントは、走査ファイバカンチレバー644から発せられる光をコリメートすることができる。コリメートされた光は、鏡面648によって、少なくとも1つの回折光学要素(DOE)622aを含有する、狭分散平面導波管622bの中に反射されることができる。コリメートされた光は、TIRによって分散平面導波管622bに沿って(図6に示される図に対して)垂直に伝搬し、そうすることによって、DOE622aと繰り返し交差することができる。DOE622aは、好ましくは、低回折効率を有する。これは、光の一部(例えば、10%)をDOE622aとの交差部の各点においてより大きい一次平面導波管632bの縁に向かって回折させ、光の一部をTIRを介して分散平面導波管622bの長さを辿ってそのオリジナル軌道上で継続させることができる。
DOE622aとの交差部の各点において、付加的光が、一次導波管632bの入口に向かって回折されることができる。入射光を複数の外部結合セットに分割することによって、光の射出瞳は、分散平面導波管622b内のDOE4によって垂直に拡張されることができる。分散平面導波管622bから外部結合された本垂直に拡張された光は、一次平面導波管632bの縁に進入することができる。
一次導波管632bに進入する光は、全内部反射(TIR)を介して、一次導波管632bに沿って(図6に示される図に対して)水平に伝搬することができる。光は、複数の点においてDOE632aと交差するにつれて、TIRを介して、一次導波管632bの長さの少なくとも一部に沿って水平に伝搬する。DOE632aは、有利には、線形回折パターンおよび半径方向対称回折パターンの総和である、位相プロファイルを有し、光の偏向および集束の両方を生成するように設計または構成され得る。DOE632aは、有利には、ビームの光の一部のみが、DOE632aの各交差部において視認者の眼に向かって偏向される一方、光の残りが、TIRを介して、一次導波管632bを通して伝搬し続けるように、低回折効率(例えば、10%)を有し得る。
伝搬する光とDOE632aとの間の交差部の各点において、光の一部は、一次導波管632bの隣接面に向かって回折され、光がTIRから逃散し、一次導波管632bの面から発せられることを可能にする。いくつかの実施形態では、DOE632aの半径方向対称回折パターンは、加えて、ある焦点レベルを回折された光に付与し、個々のビームの光波面を成形(例えば、曲率を付与する)し、かつビームを設計される焦点度に合致する角度に操向することの両方を行う。
故に、これらの異なる経路は、異なる角度におけるDOE632aの多重度、焦点深度、および/または射出瞳において異なる充填パターンをもたらすことによって、光を一次平面導波管632bの外部で結合させることができる。射出瞳における異なる充填パターンは、有利には、複数の深度平面を伴うライトフィールドディスプレイを生成するために使用されることができる。導波管アセンブリ内の各層またはスタック内の層のセット(例えば、3層)が、個別の色(例えば、赤色、青色、緑色)を生成するために採用されてもよい。したがって、例えば、第1の3つの隣接する層のセットが、それぞれ、赤色、青色および緑色光を第1の焦点深度において生成するために採用されてもよい。第2の3つの隣接する層のセットが、それぞれ、赤色、青色、および緑色光を第2の焦点深度において生成するために採用されてもよい。複数のセットが、種々の焦点深度を伴うフル3Dまたは4Dカラー画像ライトフィールドを生成するために採用されてもよい。
ウェアラブルシステムの他のコンポーネント
多くの実装では、ウェアラブルシステムは、上記に説明されるウェアラブルシステムのコンポーネントに加えて、またはその代替として、他のコンポーネントを含んでもよい。ウェアラブルシステムは、例えば、1つ以上の触知デバイスまたはコンポーネントを含んでもよい。触知デバイスまたはコンポーネントは、触覚をユーザに提供するように動作可能であってもよい。例えば、触知デバイスまたはコンポーネントは、仮想コンテンツ(例えば、仮想オブジェクト、仮想ツール、他の仮想構造)に触れると、圧力および/またはテクスチャの感覚を提供してもよい。触覚は、仮想オブジェクトが表す物理的オブジェクトの感覚を再現してもよい、または仮想コンテンツが表す想像上のオブジェクトまたはキャラクタ(例えば、ドラゴン)の感覚を再現してもよい。いくつかの実装では、触知デバイスまたはコンポーネントは、ユーザによって装着されてもよい(例えば、ユーザウェアラブルグローブ)。いくつかの実装では、触知デバイスまたはコンポーネントは、ユーザによって保持されてもよい。
ウェアラブルシステムは、例えば、1つ以上の物理オブジェクトを含んでもよく、これは、ユーザによって操作可能であって、ウェアラブルシステムへの入力またはそれとの相互作用を可能にする。これらの物理的オブジェクトは、本明細書では、トーテムと称され得る。いくつかのトーテムは、例えば、金属またはプラスチック片、壁、テーブルの表面等、無生物オブジェクトの形態をとってもよい。ある実装では、トーテムは、実際には、任意の物理的入力構造(例えば、キー、トリガ、ジョイスティック、トラックボール、ロッカスイッチ)を有していなくてもよい。代わりに、トーテムは、単に、物理的表面を提供してもよく、ウェアラブルシステムは、ユーザにトーテムの1つ以上の表面上にあるように見えるように、ユーザインターフェースをレンダリングしてもよい。例えば、ウェアラブルシステムは、トーテムの1つ以上の表面上に常駐するように見えるように、コンピュータキーボードおよびトラックパッドの画像をレンダリングしてもよい。例えば、ウェアラブルシステムは、トーテムとしての役割を果たす、アルミニウムの薄い長方形プレートの表面上に見えるように、仮想コンピュータキーボードおよび仮想トラックパッドをレンダリングしてもよい。長方形プレート自体は、任意の物理的キーまたはトラックパッドまたはセンサを有していない。しかしながら、ウェアラブルシステムは、仮想キーボードまたは仮想トラックパッドを介して行われた選択または入力として、長方形プレートを用いたユーザ操作または相互作用またはタッチを検出し得る。ユーザ入力デバイス466(図4に示される)は、トラックパッド、タッチパッド、トリガ、ジョイスティック、トラックボール、ロッカまたは仮想スイッチ、マウス、キーボード、多自由度コントローラ、または別の物理的入力デバイスを含み得る、トーテムの実施形態であってもよい。ユーザは、単独で、または姿勢と組み合わせて、トーテムを使用し、ウェアラブルシステムおよび/または他のユーザと相互作用してもよい。
本開示のウェアラブルデバイス、HMD、およびディスプレイシステムと使用可能な触知デバイスおよびトーテムの実施例は、米国特許公開第2015/0016777号(参照することによってその全体として本明細書に組み込まれる)に説明される。
例示的ウェアラブルシステム、環境、およびインターフェース
ウェアラブルVR/AR/MRシステムは、高被写界深度をレンダリングされたライトフィールド内で達成するために、種々のマッピング関連技法を採用してもよい。仮想世界をマッピングする際、実世界内の全ての特徴および点を把握し、仮想オブジェクトを実世界に関連して正確に描くことが有利である。この目的を達成するために、ウェアラブルシステムのユーザから捕捉されたFOV画像が、実世界の種々の点および特徴についての情報を伝達する新しい写真を含むことによって、世界モデルに追加されることができる。例えば、ウェアラブルシステムは、マップ点(2D点または3D点等)のセットを収集し、新しいマップ点を見出し、世界モデルのより正確なバージョンをレンダリングすることができる。第1のユーザの世界モデルは、第2のユーザが第1のユーザを囲繞する世界を体験し得るように、(例えば、クラウドネットワーク等のネットワークを経由して)第2のユーザに通信されることができる。
図7は、MR環境700の実施例のブロック図である。MR環境700は、入力(例えば、ユーザのウェアラブルシステムからの視覚的入力702、室内カメラ等の定常入力704、種々のセンサからの感覚入力706、ユーザ入力デバイス466からのジェスチャ、トーテム、眼追跡、ユーザ入力等)を1つ以上のユーザウェアラブルシステム(例えば、ウェアラブルシステム200またはディスプレイシステム220)または定常室内システム(例えば、室内カメラ等)から受信するように構成されてもよい。ウェアラブルシステムは、種々のセンサ(例えば、加速度計、ジャイロスコープ、温度センサ、移動センサ、深度センサ、GPSセンサ、内向きに向いた結像システム、外向きに向いた結像システム等)を使用して、ユーザの環境の場所および種々の他の属性を決定することができる。本情報はさらに、異なる視点からの画像または種々のキューを提供し得る、部屋内の定常カメラからの情報で補完されてもよい。カメラ(室内カメラおよび/または外向きに向いた結像システムのカメラ等)によって取得された画像データは、マッピング点のセットに低減されてもよい。
1つ以上のオブジェクト認識装置708が、受信されたデータ(例えば、点の集合)を通してクローリングし、点を認識またはマッピングし、画像をタグ付けし、マップデータベース710を用いて、意味論情報をオブジェクトに結び付けることができる。マップデータベース710は、経時的に収集された種々の点およびその対応するオブジェクトを備えてもよい。種々のデバイスおよびマップデータベースは、ネットワーク(例えば、LAN、WAN等)を通して相互に接続され、クラウドにアクセスすることができる。
本情報およびマップデータベース内の点の集合に基づいて、オブジェクト認識装置708a−708nは、環境内のオブジェクトを認識してもよい。例えば、オブジェクト認識装置は、顔、人物、窓、壁、ユーザ入力デバイス、テレビ、ユーザの環境内の他のオブジェクト等を認識することができる。1つ以上のオブジェクト認識装置が、ある特性を伴うオブジェクトのために特殊化されてもよい。例えば、オブジェクト認識装置708aは、顔を認識するために使用されてもよい一方、別のオブジェクト認識装置は、トーテムを認識するために使用されてもよい。
オブジェクト認識は、種々のコンピュータビジョン技法を使用して実施されてもよい。例えば、ウェアラブルシステムは、外向きに向いた結像システム464(図4に示される)によって入手された画像を分析し、場面再構成、イベント検出、ビデオ追跡、オブジェクト認識、オブジェクト姿勢推定、学習、インデックス化、運動推定、または画像復元等を実施することができる。1つ以上のコンピュータビジョンアルゴリズムが、これらのタスクを実施するために使用されてもよい。コンピュータビジョンアルゴリズムの非限定的実施例は、スケール不変特徴変換(SIFT)、スピードアップロバスト特徴(SURF)、配向FASTおよび回転BRIEF(ORB)、バイナリロバスト不変スケーラブルキーポイント(BRISK)、高速網膜キーポイント(FREAK)、Viola−Jonesアルゴリズム、Eigenfacesアプローチ、Lucas−Kanadeアルゴリズム、Horn−Schunkアルゴリズム、Mean−shiftアルゴリズム、視覚的同時位置推定およびマッピング(vSLAM)技法、シーケンシャルベイズ推定器(例えば、カルマンフィルタ、拡張カルマンフィルタ等)、バンドル調節、適応閾値化(および他の閾値化技法)、反復最近傍点(ICP)、セミグローバルマッチング(SGM)、セミグローバルブロックマッチング(SGBM)、特徴点ヒストグラム、種々の機械学習アルゴリズム(例えば、サポートベクトルマシン、k最近傍アルゴリズム、単純ベイズ、ニューラルネットワーク(畳み込みまたは深層ニューラルネットワークを含む)、または他の教師あり/教師なしモデル等)等を含む。
オブジェクト認識は、加えて、または代替として、種々の機械学習アルゴリズムによって実施されることができる。いったん訓練されると、機械学習アルゴリズムは、HMDによって記憶されることができる。機械学習アルゴリズムのいくつかの実施例は、教師ありまたは教師なし機械学習アルゴリズムを含むことができ、回帰アルゴリズム(例えば、通常の最小2乗回帰等)、インスタンスベースのアルゴリズム(例えば、学習ベクトル量子化等)、決定ツリーアルゴリズム(例えば、分類および回帰ツリー等)、ベイズアルゴリズム(例えば、単純ベイズ等)、クラスタリングアルゴリズム(例えば、k−平均クラスタリング等)、関連付けルール学習アルゴリズム(例えば、アプリオリアルゴリズム等)、人工ニューラルネットワークアルゴリズム(例えば、Perceptron等)、深層学習アルゴリズム(例えば、Deep Boltzmann Machine、または、深層ニューラルネットワーク等)、次元削減アルゴリズム(例えば、主成分分析等)、アンサンブルアルゴリズム(例えば、Stacked Gneralization等)、および/または他の機械学習アルゴリズムを含む。いくつかの実施形態では、個々のモデルは、個々のデータセットのためにカスタマイズされることができる。例えば、ウェアラブルデバイスは、ベースモデルを生成または記憶することができる。ベースモデルは、開始点として使用され、データタイプ(例えば、テレプレゼンスセッション内の特定のユーザ)、データセット(例えば、テレプレゼンスセッション内のユーザの取得される付加的画像のセット)、条件付き状況、または他の変形例に特有の付加的モデルを生成してもよい。いくつかの実施形態では、ウェアラブルHMDは、複数の技法を利用して、集約されたデータの分析のためのモデルを生成するように構成されることができる。他の技法は、事前に定義された閾値またはデータ値を使用することを含んでもよい。
マップデータベース内の本情報および点の集合に基づいて、オブジェクト認識装置708a−708nは、オブジェクトを認識し、オブジェクトを意味論情報で補完し、命をオブジェクトに与えてもよい。例えば、オブジェクト認識装置が、点のセットがドアであることを認識する場合、システムは、いくつかの意味論情報を結び付けてもよい(例えば、ドアは、ヒンジを有し、ヒンジを中心として90度移動を有する)。オブジェクト認識装置が、点のセットが鏡であることを認識する場合、システムは、鏡が、部屋内のオブジェクトの画像を反射させ得る、反射表面を有するという意味論情報を結び付けてもよい。経時的に、マップデータベースは、システム(ローカルに常駐し得る、または無線ネットワークを通してアクセス可能であり得る)がより多くのデータを世界から蓄積するにつれて成長する。いったんオブジェクトが認識されると、情報は、1つ以上のウェアラブルシステムに伝送されてもよい。例えば、MR環境700は、Californiaで起こっている場面についての情報を含んでもよい。環境700は、New Yorkにおける1人以上のユーザに伝送されてもよい。FOVカメラおよび他の入力から受信されたデータに基づいて、オブジェクト認識装置および他のソフトウェアコンポーネントは、場面が世界の異なる部分に存在し得る第2のユーザに正確に「パス」され得るように、種々の画像から収集された点をマッピングし、オブジェクトを認識すること等ができる。環境700はまた、場所特定目的のために、トポロジマップを使用してもよい。
図8は、認識されたオブジェクトに関連して仮想コンテンツをレンダリングする方法800の実施例のプロセスフロー図である。方法800は、仮想場面がウェアラブルシステムのユーザに表され得る方法を説明する。ユーザは、その場面から地理的に遠隔に存在してもよい。例えば、ユーザは、New Yorkに存在し得るが、Californiaで現在起こっている場面を視認することを所望し得る、またはCaliforniaに存在する友人と散歩に行くことを所望し得る。
ブロック810では、ウェアラブルシステムは、ユーザの環境に関する入力をユーザおよび他のユーザから受信してもよい。これは、種々の入力デバイスおよびマップデータベース内にすでに保有されている知識を通して達成されてもよい。ユーザのFOVカメラ、センサ、GPS、眼追跡等が、ブロック810において、情報をシステムに伝達する。ブロック820では、システムは、本情報に基づいて、疎点を決定してもよい。疎点は、ユーザの周囲における種々のオブジェクトの配向および位置を表示および理解する際に使用され得る、姿勢データ(例えば、頭部姿勢、眼姿勢、身体姿勢、または手のジェスチャ)を決定する際に使用されてもよい。ブロック830において、オブジェクト認識装置708a〜708nは、これらの収集された点を通してクローリングし、マップデータベースを使用して、1つ以上のオブジェクトを認識してもよい。本情報は、次いで、ブロック840において、ユーザの個々のウェアラブルシステムに伝達されてもよく、所望の仮想場面が、ブロック850において、適宜、ユーザに表示されてもよい。例えば、所望の仮想場面(例えば、CAにおけるユーザ)が、New Yorkにおけるユーザの種々のオブジェクトおよび他の周囲に関連して、適切な配向、位置等において表示されてもよい。
図9は、ウェアラブルVR/AR/MRシステムの別の実施例のブロック図である。本実施例では、ウェアラブルシステム900は、世界に関するマップデータを含み得る、マップを備える。マップは、部分的に、ウェアラブルシステム上にローカルに常駐してもよく、部分的に、有線または無線ネットワークによってアクセス可能なネットワーク化された記憶場所(例えば、クラウドシステム内)に常駐してもよい。姿勢プロセス910が、ウェアラブルコンピューティングアーキテクチャ(例えば、処理モジュール260またはコントローラ460)上で実行され、ウェアラブルコンピューティングハードウェアまたはユーザの位置および配向を決定するために、マップからのデータを利用してもよい。姿勢データは、ユーザが、システムを体験し、その世界内で動作するにつれて、オンザフライで収集されたデータから計算されてもよい。データは、実または仮想環境内のオブジェクトに関する画像、センサ(概して、加速度計およびジャイロスコープコンポーネントを備える、慣性測定ユニット等)からのデータ、および表面情報を備えてもよい。
疎点表現は、同時場所特定およびマッピング(入力が画像/視覚のみである構成を指す、SLAMまたはV−SLAM)プロセスの出力であってもよい。システムは、世界内の種々のコンポーネントの場所だけではなく、世界が何から成っているか見出すように構成されることができる。姿勢は、マップをポピュレートすることおよびマップからのデータを使用することを含め、多くの目標を達成する、構築ブロックであってもよい。
一実施形態では、疎点位置は、それ自体では完全に適正であり得ず、さらなる情報が、多焦点AR、VR、またはMR体験を生成するために必要とされ得る。概して深度マップ情報を指す、稠密表現が、少なくとも部分的に、本間隙を充填するために利用されてもよい。そのような情報は、立体視940と称されるプロセスから計算されてもよく、深度情報は、三角測量または飛行時間感知等の技法を使用して決定される。画像情報およびアクティブパターン(アクティブプロジェクタを使用して生成される赤外線パターン等)が、立体視プロセス940への入力としての役割を果たし得る。有意な量の深度マップ情報が、ともに融合されてもよく、このうちのいくつかは、表面表現を用いて要約されてもよい。例えば、数学的に定義可能な表面は、ゲームエンジンのような他の処理デバイスへの効率的(例えば、大規模点群と比較して)かつ摘要可能な入力であってもよい。したがって、立体視プロセス(例えば、深度マップ)940の出力は、融合プロセス930において組み合わせられてもよい。姿勢は、同様に、本融合プロセス930への入力であってもよく、融合930の出力は、マッププロセス920をポピュレートするための入力となる。サブ表面が、トポグラフィマッピング等において相互に接続し、より大きい表面を形成してもよく、マップは、点および表面の大規模ハイブリッドとなる。
複合現実プロセス960における種々の側面を解決するために、種々の入力が、利用されてもよい。例えば、図9に描写される実施形態では、ゲームパラメータは、システムのユーザが1匹以上のモンスタと種々の場所においてモンスタバトルゲームをプレーしていること、モンスタが死んでいるかまたは種々の条件下で逃げている(ユーザがモンスタを撃つ場合等)、種々の場所における壁または他のオブジェクト、および同等物を決定するための入力であってもよい。世界マップは、複合現実に対する別の有用な入力となる、そのようなオブジェクトが相互に対して存在する場所に関する情報を含んでもよい。世界に対する姿勢は、同様に、入力となり、ほぼあらゆる双方向システムに対して重要な役割を果たす。
ユーザからの制御または入力は、ウェアラブルシステム900への別の入力である。本明細書に説明されるように、ユーザ入力は、視覚的入力、ジェスチャ、トーテム、オーディオ入力、感覚入力等を含むことができる。動き回るまたはゲームをプレーするために、例えば、ユーザは、ウェアラブルシステム900に、自らが何をしたいかに関して命令する必要があり得る。空間内で自ら移動するだけではなく、利用され得る種々の形態のユーザ制御が、存在する。一実施形態では、トーテム(例えば、ユーザ入力デバイス)、または玩具銃等のオブジェクトが、ユーザによって保持され、システムによって追跡されてもよい。システムは、好ましくは、ユーザがアイテムを保持していることを把握し、ユーザがアイテムと行っている相互作用の種類を理解するように構成されるであろう(例えば、トーテムまたはオブジェクトが、銃である場合、システムは、場所および配向だけではなく、ユーザが、そのようなアクティビティがカメラのいずれかの視野内にないときでも、何が起こっているかの決定を補助し得る、IMU等のセンサを装備し得る、トリガまたは他の感知ボタンまたは要素をクリックしているかどうかも理解するように構成されてもよい。)
手のジェスチャ追跡または認識もまた、入力情報を提供してもよい。ウェアラブルシステム900は、ボタン押下のため、左または右、停止、握持、保持等をジェスチャするために、手のジェスチャを追跡および解釈するように構成されてもよい。例えば、1つの構成では、ユーザは、非ゲーム環境において電子メールまたはカレンダを通してフリップする、または別の人物または演奏者と「フィストバンプ」を行うことを所望し得る。ウェアラブルシステム900は、動的であり得る、またはそうではない場合がある、最小量の手のジェスチャを活用するように構成されてもよい。例えば、ジェスチャは、停止を示すために手を広げる、OKを示すために親指を上げる、OKではないことを示すために親指を下げる、または指向性コマンドを示すために左右または上下に手をフリップする等、単純な静的ジェスチャであってもよい。
眼追跡は、別の入力である(例えば、ユーザが見ている場所を追跡し、ディスプレイ技術を制御し、具体的深度または範囲においてレンダリングする)。一実施形態では、眼の輻輳・開散運動が、三角測量を使用して決定されてもよく、次いで、その特定の人物のために開発された輻輳・開散運動/遠近調節モデルを使用して、遠近調節が、決定されてもよい。
カメラシステムに関して、図9に示される例示的ウェアラブルシステム900は、3つの対のカメラ、すなわち、ユーザの顔の両側に配列される相対的広FOVまたは受動SLAM対のカメラと、ユーザの正面に配向され、立体視結像プロセス940をハンドリングし、また、ユーザの顔の正面の手のジェスチャおよびトーテム/オブジェクトの軌道を捕捉するための異なる対のカメラとを含むことができる。ステレオプロセス940に対するFOVカメラおよび対のカメラは、外向きに向いた結像システム464(図4に示される)の一部であってもよい。ウェアラブルシステム900は、眼ベクトルおよび他の情報を三角測量するために、ユーザの眼に向かって配向される眼追跡カメラ(図4に示される内向きに向いた結像システム462の一部であってもよい)を含むことができる。ウェアラブルシステム900はまた、1つ以上のテクスチャ化光プロジェクタ(赤外線(IR)プロジェクタ等)を備え、テクスチャを場面の中に投入してもよい。
図10は、ウェアラブルVR/AR/MRシステムへのユーザ入力を決定するための方法1000の実施例のプロセスフロー図である。本実施例では、ユーザは、トーテムと相互作用してもよい。ユーザは、複数のトーテムを有してもよい。例えば、ユーザは、ソーシャルメディアアプリケーションのための指定される1つのトーテム、ゲームをプレーするための別のトーテム等を有してもよい。ブロック1010では、ウェアラブルシステムは、トーテムの運動を検出してもよい。トーテムの移動は、外向きに向いたシステムを通して認識されてもよい、またはセンサ(例えば、触覚的グローブ、画像センサ、手追跡デバイス、眼追跡カメラ、頭部姿勢センサ等)を通して検出されてもよい。
少なくとも部分的に、検出されたジェスチャ、眼姿勢、頭部姿勢、またはトーテムを通した入力に基づいて、ウェアラブルシステムは、ブロック1020において、基準フレームに対するトーテム(またはユーザの眼または頭部またはジェスチャ)の位置、配向、および/または移動を検出する。基準フレームは、それに基づいてウェアラブルシステムがトーテム(またはユーザ)の移動をアクションまたはコマンドに変換する、マップ点のセットであってもよい。ブロック1030では、トーテムとのユーザの相互作用が、マッピングされる。基準フレーム1020に対するユーザ相互作用のマッピングに基づいて、システムは、ブロック1040において、ユーザ入力を決定する。
例えば、ユーザは、トーテムまたは物理的オブジェクトを前後に移動させ、仮想ページを捲り、次のページに移動する、または1つのユーザインターフェース(UI)ディスプレイ画面から別のUI画面に移動することを示してもよい。別の実施例として、ユーザは、ユーザのFOR内の異なる実または仮想オブジェクトを見るために、その頭部または眼を移動させてもよい。特定の実または仮想オブジェクトにおけるユーザの注視が、閾値時間より長い場合、その実または仮想オブジェクトは、ユーザ入力として選択されてもよい。いくつかの実装では、ユーザの眼の輻輳・開散運動が、追跡されることができ、遠近調節/輻輳・開散運動モデルが、ユーザが合焦している深度平面に関する情報を提供する、ユーザの眼の遠近調節状態を決定するために使用されることができる。いくつかの実装では、ウェアラブルシステムは、レイキャスティング技法を使用して、ユーザの頭部姿勢または眼姿勢の方向に沿っている実または仮想オブジェクトを決定することができる。種々の実装では、レイキャスティング技法は、実質的に殆ど横幅を伴わない細い光線束を投じる、または実質的横幅を伴う光線(例えば、円錐または円錐台)を投じることを含むことができる。
ユーザインターフェースは、本明細書に説明されるようなディスプレイシステム(図2におけるディスプレイ220等)によって投影されてもよい。また、1つ以上のプロジェクタ等の種々の他の技法を使用して表示されてもよい。プロジェクタは、画像をキャンバスまたは球体等の物理的オブジェクト上に投影してもよい。ユーザインターフェースとの相互作用は、システムの外部またはシステムの一部の1つ以上のカメラを使用して(例えば、内向きに向いた結像システム462または外向きに向いた結像システム464を使用して)追跡されてもよい。
図11は、仮想ユーザインターフェースと相互作用するための方法1100の実施例のプロセスフロー図である。方法1100は、本明細書に説明されるウェアラブルシステムによって行われてもよい。
ブロック1110では、ウェアラブルシステムは、特定のUIを識別してもよい。UIのタイプは、ユーザによって与えられてもよい。ウェアラブルシステムは、特定のUIがユーザ入力(例えば、ジェスチャ、視覚的データ、オーディオデータ、感覚データ、直接コマンド等)に基づいてポピュレートされる必要があることを識別してもよい。ブロック1120では、ウェアラブルシステムは、仮想UIのためのデータを生成してもよい。例えば、UIの境界、一般的構造、形状等と関連付けられたデータが、生成されてもよい。加えて、ウェアラブルシステムは、ウェアラブルシステムがユーザの物理的場所に関連してUIを表示し得るように、ユーザの物理的場所のマップ座標を決定してもよい。例えば、UIが、身体中心である場合、ウェアラブルシステムは、リングUIがユーザの周囲に表示され得る、または平面UIが壁上またはユーザの正面に表示され得るように、ユーザの物理的立ち位置、頭部姿勢、または眼姿勢の座標を決定してもよい。UIが、手中心の場合、ユーザの手のマップ座標が、決定されてもよい。これらのマップ点は、FOVカメラ、感覚入力を通して受信されたデータ、または任意の他のタイプの収集されたデータを通して導出されてもよい。
ブロック1130では、ウェアラブルシステムは、データをクラウドからディスプレイに送信してもよい、またはデータは、ローカルデータベースからディスプレイコンポーネントに送信されてもよい。ブロック1140では、UIは、送信されたデータに基づいて、ユーザに表示される。例えば、ライトフィールドディスプレイは、仮想UIをユーザの眼の一方または両方の中に投影することができる。いったん仮想UIが生成されると、ウェアラブルシステムは、ブロック1150において、単に、ユーザからのコマンドを待機し、より多くの仮想コンテンツを仮想UI上に生成してもよい。例えば、UIは、ユーザの身体の周囲の身体中心リングであってもよい。ウェアラブルシステムは、次いで、コマンド(ジェスチャ、頭部または眼移動、ユーザ入力デバイスからの入力等)を待機してもよく、認識される場合(ブロック1160)、コマンドと関連付けられた仮想コンテンツが、ユーザに表示されてもよい(ブロック1170)。実施例として、ウェアラブルシステムは、複数のステムトラックをミックスする前に、ユーザの手のジェスチャを待機してもよい。
ウェアラブルシステム、UI、およびユーザ体験(UX)の付加的実施例は、米国特許公開第2015/0016777号(参照することによってその全体として本明細書に組み込まれる)に説明されている。
種々のユーザ入力デバイスおよびモードとの例示的相互作用
図4および9を参照して説明されるように、ユーザは、ユーザ入力デバイス466、音声コマンド、または姿勢(例えば、頭部姿勢、眼視線、または手のジェスチャ)等の入力デバイスおよびモードを使用して、ユーザの環境内のオブジェクトと相互作用することができる。図12は、手のジェスチャ1260、タッチパッド1280、およびキーボード1240等の種々の入力デバイスおよびモードを使用してオブジェクトと相互作用する、実施例を図式的に図示する。
図12では、ユーザウェアラブルHMD1220は、ユーザのFOV1210内のオブジェクト1212を知覚することができる。HMD1220は、図2を参照して説明されるウェアラブルシステム200の一部であることができる。オブジェクト1212は、物理的オブジェクトまたは仮想オブジェクトであることができる。物理的オブジェクトは、ユーザの実周囲環境内に物理的に位置する、オブジェクトを含むことができる。例えば、居間環境では、物理的オブジェクトは、椅子、ソファ、壁等を含み得る。仮想オブジェクトは、ユーザの実環境上に仮想的に重畳されることができるか、または、ユーザの仮想環境内のオブジェクトであることができる。仮想オブジェクトは、例えば、削除されたファイルのためのゴミ箱、コマンドを入力するための端末、ファイルまたはディレクトリにアクセスするためのファイルマネージャ、アイコン、メニュー、オーディオまたはビデオストリーミングのためのアプリケーション、オペレーティングシステムからの通知等のオペレーティングシステムオブジェクトを含んでもよい。仮想オブジェクトはまた、例えば、アバタ、ゲーム内オブジェクト、グラフィックまたは画像等、アプリケーション内のオブジェクトを含んでもよい。いくつかの仮想オブジェクトは、オペレーティングシステムオブジェクトおよびアプリケーション内のオブジェクトの両方であることができる。いくつかの実施形態では、ウェアラブルシステムは、仮想要素を既存の物理的オブジェクトに追加することができる。例えば、ウェアラブルシステムは、部屋内のテレビと関連付けられた仮想メニューを追加してもよく、仮想メニューは、ユーザに、ウェアラブルシステムを使用して、テレビをオンにする、またはチャンネルを変更するためのオプションを与えてもよい。
仮想オブジェクトは、3次元(3D)、2次元(2D)、または1次元(1D)オブジェクトであってもよい。例えば、仮想オブジェクトは、3Dコーヒーマグカップ(例えば、物理的コーヒーメーカーのための仮想制御を表し得る)であってもよい。仮想オブジェクトはまた、時計の2Dグラフィカル表現であってもよい(現在の時間をユーザに表示する)。いくつかの実装では、1つ以上の仮想オブジェクトが、別の仮想オブジェクト内に表示されてもよい(またはそれと関連付けられる)。
ユーザのFOR内のオブジェクトは、図9を参照して説明されるような世界マップの一部であることができる。オブジェクトと関連付けられたデータ(例えば、場所、意味情報、性質等)が、例えば、アレイ、リスト、ツリー、ハッシュ、グラフ等の種々のデータ構造内に記憶されることができる。各記憶されたオブジェクトのインデックスは、適用可能である場合、例えば、オブジェクトの場所によって決定されてもよい。例えば、データ構造は、基準位置からのオブジェクトの距離等の単一座標によって、オブジェクトをインデックス化してもよい(例えば、基準位置の左または右までの距離、基準位置の上部または底部からの距離、または基準位置からの深度)。基準位置は、ユーザの位置(ユーザの頭部の位置等)に基づいて決定されてもよい。基準位置はまた、ユーザの環境内の仮想または物理的オブジェクト(標的オブジェクト等)の位置に基づいて決定されてもよい。このように、ユーザの環境内の3D空間は、仮想オブジェクトが基準位置からのオブジェクトの距離に従って配列される、2Dユーザインターフェースの中に畳み込まれてもよい。
ウェアラブルシステムは、FOR内のオブジェクトおよびFOV内のオブジェクトの追跡を維持し得る。例えば、ローカル処理およびデータモジュール260は、遠隔処理モジュール270および遠隔データリポジトリ280と通信し、ユーザのFOR内の仮想オブジェクトを読み出すことができる。ローカル処理およびデータモジュール260は、仮想オブジェクトを、例えば、バッファまたは一時的記憶装置内に記憶することができる。ローカル処理およびデータモジュール260は、本明細書に説明される技法を使用して、ユーザのFOVを決定することができる。ローカル処理およびデータモジュール260は、記憶された仮想オブジェクトにアクセスし、ユーザのFOV内にある、仮想オブジェクトのサブセットを識別およびレンダリングすることができる。ユーザの姿勢が変化すると、ローカル処理およびデータモジュール260は、適宜、ユーザのFOVを更新し、ユーザの現在のFOVに対応する仮想オブジェクトの別のセットをレンダリングすることができる。
本明細書に説明されるように、HMD1220は、1つ以上のオブジェクト認識装置708を介して、ユーザの手のジェスチャを認識および追跡することができる。例えば、HMDは、外向きに向いた結像システム464を使用して、ユーザの手のジェスチャの画像を入手することができる。オブジェクト認識装置708は、画像を分析し、手のジェスチャを識別することができる。ある実施形態では、ユーザの手のジェスチャは、HMDの外部のカメラによって追跡されてもよい。例えば、カメラは、室内カメラ(ユーザの環境内に位置付けられる)、ユーザ入力デバイス466(例えば、トーテムまたはキーボード等)に結合される(有線または無線で)カメラ、または別のコンピューティングデバイス上のカメラ(例えば、パーソナルコンピュータに結合されるウェブカム等)等の定常カメラを含んでもよい。
HMD1220はまた、ユーザ入力デバイス466とのユーザ相互作用をサポートすることができる。実施例として、図12では、ユーザは、図12におけるタッチパッド1280およびキーボード1240を作動させ、オブジェクト1212と相互作用することができる。ある実施形態では、入力デバイスおよびモードの組み合わせが、オブジェクト1212と相互作用するためにユーザによって使用されてもよい。例えば、ユーザは、キーボード1240上のキーを作動させ、手のジェスチャ1260を使用して、仮想メニューを移動させることによって、オブジェクト1212と関連付けられた仮想メニューを開くことができる。
ユーザ入力デバイスとHMDとのペアリングの実施例
ユーザ入力デバイス466(例えば、タッチパッド1280またはキーボード1240)は、有線または無線チャネルを介して(例えば、Bluetooth(登録商標)または無線周波数(RF)受信機を介して等)、HMD1220に結合されることができる。ユーザ入力デバイス466は、例えば、Bluetooth(登録商標)またはRFプロトコルを使用して無線で、または、例えば、USB接続等の有線接続を介して、HMD1220とペアリングされる、または通信接続を確立することができる。ペアリングプロセスは、ユーザ入力デバイス466によって、またはHMD1220によって、開始されてもよい。ペアリングプロセスが、HMDによって開始される場合、HMD1220は、種々の技法を使用して、ユーザの環境内の標的ユーザ入力デバイスを識別することができる。例えば、HMD1220は、直接、標的ユーザ入力デバイスにクエリすることができる。これは、例えば、そのようなクエリをサポートし得るプロトコルに従って、Wi−FiまたはBluetooth(登録商標)等のRF無線プロトコルによって、デバイスがそれ自体を識別することが可能である場合、可能である。
HMD1220はまた、視覚的キューを介して、標的ユーザ入力デバイスを識別することができる。例えば、HMD1220は、外向きに向いた結像システム464を使用して、標的ユーザ入力デバイスの画像を入手し、オブジェクト認識装置708を使用して、標的ユーザ入力デバイスのタイプを識別してもよい。オブジェクト認識装置708は、例えば、単語の袋タイプ検索と組み合わせられる特徴的特徴点方法(例えば、SIFT)、または人工ニューラルネットワーク(例えば、「Alex−net」)等の適用を通した、コンピュータビジョンアルゴリズムを実装することができる。HMDは、階層方式において、標的ユーザ入力デバイスを識別してもよい。例えば、HMDは、第1のアルゴリズムを起動し、オブジェクトが物理的キーボードであることを識別することができる。HMDは、次いで、第2のアルゴリズムを起動し、キーボードのレイアウトまたはキーボードの製造業者/モデル等、キーボードの特徴を識別することができる。
HMD1220はまた、ユーザ入力に基づいて(姿勢を介して)、標的ユーザ入力デバイスを識別することができる。例えば、ユーザは、その指をキーボードに向けることによって、ペアリングのためのキーボードを識別してもよい。HMD1220は、ユーザの指の先端からレイキャスティングを実施し、それが光線と交差するため、キーボードを選択することができる。
別の実施例として、標的入力デバイスは、バーコード、QRコード(登録商標)、LEDパターン等の光学的に可読の一意のラベルを含んでもよい。HMDは、ラベルを走査または結像し、情報をラベルから抽出するための光学センサ(例えば、世界カメラ)を含んでもよい。抽出された情報は、製造業者、デバイスのタイプ等のデバイス識別子を含んでもよい。ラベルは、標的デバイスに貼付またはその上にインプリントされてもよい。例えば、キーボード1240は、キーボード1240の製造業者、モデル、製造番号等を明示的に示す、ステッカまたはプラカードを有してもよい。別の実施例として、キーボード1240のブランドが、キーボード1240の表面上にインプリントされてもよい。
いくつかの実施形態では、いったんHMD1220が、ユーザ入力デバイス(例えば、キーボード1240またはタッチパッド1280)とペアリングすると、HMDは、ユーザ入力デバイスの機能性に関連する情報にアクセスし(例えば、そのような情報をユーザ入力デバイス自体から受信することによって、ネットワークを介して遠隔ソースからダウンロードすることによって、ローカルで記憶されるデータにアクセスすることによって等)、ユーザ入力デバイスの機能性に基づいて、構成設定を設定してもよい。例えば、HMD1220が、キーボード1240が外国語キーボードであることを認識する場合、HMD1220は、そのシステム言語設定(例えば、英語、スペイン語、中国語等)を変更し、キーボード1240のものに合致させてもよい。
加えて、いくつかの実施形態では、いったんHMD1220が、ユーザ入力デバイス(例えば、キーボード1240、タッチパッド1280、または任意の他のトーテム)とペアリングするかまたは別様にそれとの相互作用を検出すると、HMDは、コンピュータデータ構造を作成または修正してもよく、その特定のユーザ入力デバイスから受信される、またはそれを使用して実施される、ユーザ入力またはアクションは、それらの入力が行われたときにユーザ入力デバイスが相互作用する対応するHMDとタグ付けされる、ラベリングされる、または別様に、関連付けられる。データ構造は、データ構造が、1つ以上のユーザ入力デバイスからのユーザ入力と1つ以上のHMDデバイスとを関連させる情報を含み得るように、複数のHMDデバイス間で共有される(または別様にアクセス可能にされる)ことができる。ある場合には、データ構造は、単一ユーザ入力デバイスからのユーザ入力/アクションと複数のHMDデバイスとを関連付けてもよく、複数のユーザ入力デバイスからのユーザ入力/アクションと単一HMDデバイスとを関連付けてもよく、および/または、複数のユーザ入力デバイスからのユーザ入力/アクションと複数のHMDデバイスとを関連付けてもよい。本情報は、次いで、コンピュータファイルまたは仮想オブジェクトを作成または修正する、アクションを実施する等のために使用されることができる。ある場合には、各ユーザ入力/アクションと個別のHMDを関連付ける情報は、入力またはアクションを実施した人物の識別を示すために使用されることができる。
例えば、異なるHMDデバイスのユーザは、代替として、単一キーボード1240を使用して、テキスト、フォーマッティング変更等をテキストドキュメントの中に打ち込み得る。データ構造は、キーボード1240が第1のHMDと相互作用していたときに行われたそれらのキーボード入力およびキーボード1240が第2のHMDと相互作用していたときに行われたそれらのユーザ入力を記憶するために使用されることができる。本情報は、次いで、テキストドキュメントを修正するために使用されることができる。例えば、第1および第2のHMDデバイスにペアリングされている間に行われた個別の入力は、テキストをマークし(例えば、異なる色、フォント、フォーマッティング等を用いて)、第2のHMDがキーボード1240とペアリングされたときに第2のHMDユーザによって打ち込まれた、または行われたものと比較して、第1のHMDのユーザによって打ち込まれた、または行われたテキスト、フォーマッティング等を示すために使用されることができる。他の実施形態では、対応するHMDとともにユーザ入力/アクションを記憶する、データ構造からの情報は、同様に、他のアクションを実施するためにも使用されることができる。例えば、第1のトーテムのユーザによってゲームまたはアプリケーション内で実施されるアクションが、検出され、同一トーテムの第2のユーザによって実施されるアクションと区別されることができる。議論されたばかりのように、これは、各HMDが、HMDのユーザが相互作用しているトーテムを認識し、次いで、データ構造に、ユーザがそのトーテムと相互作用していた間に行われたそれらのアクションまたは入力を追加することに基づいて遂行されることができる。
例示的キーボードの概要
図12に示されるキーボード1240は、HMD1220によってレンダリングされた仮想キーボードまたは物理的キーボードであってもよい。ある実装では、キーボード1240は、複数のデバイスを制御することができる。例えば、キーボード1240は、単語説明をデスクトップコンピュータの中に入力するために使用されることができる一方、同一キーボード1240はまた、HMD1220との相互作用のための情報を入力するために使用されることができる。
ユーザは、タッチジェスチャ、タップジェスチャ、押下ジェスチャ等の種々の手のジェスチャを使用して、キーボード1240を作動させることができる。異なる手のジェスチャは、異なる入力機能と関連付けられてもよい。例えば、タッチジェスチャは、数字、記号、または文字をHMD1220の中に打ち込ませ得る一方、押下ジェスチャは、コマンドプロンプトをHMD1220によって開かせ得る。ある実施形態では、全てのキーが、同一タイプの手のジェスチャを認識するわけではないであろう。例えば、キーボード1240は、タッチジェスチャを認識するが、押下ジェスチャを認識しないように構成される、タッチ領域を含むことができる。別の実施例として、キーボード1240は、タッチジェスチャをサポートしない、キーを含むことができる。
HMD1220は、ジェスチャ認識を使用して、キーボードの作動を検出することができる。例えば、HMD1220は、外向きに向いた結像システム464または外部カメラから入手された画像を分析することによって(例えば、オブジェクト認識装置708を使用して)、ユーザの指の移動を追跡することができる。加えて、または代替として、HMD1220は、ユーザの眼視線に基づいて、レイキャスティングを実施し、ユーザの視線方向と交差するキーを識別することができる。HMD1220は、適宜、いったんキーがレイキャスティングから識別されると、動作(例えば、記号または文字を入力する、またはキーと関連付けられたコマンドを実行する)を実施することができる。いくつかの実施形態では、ユーザがキーを見ている間の所定の停留期間が、ユーザの眼視線によって「作動」されるべきキーを検討する前に要求され得る。
キーボードを作動させるためのジェスチャ認識およびレイキャスティング技法は、物理的キーボードおよび仮想キーボードに適用されることができる。その結果、ユーザは、キーを作動させるために、物理的キーボードにタッチする、または物理的キーボードを押下する必要がなくなり得る。
キーボード1240は、1つ以上の仕様と関連付けられることができる。仕様は、キーのレイアウトおよび対応するキー機能、タッチ表面、または他の制御を含んでもよい。図13A−13Cを参照して説明されるように、キーボード1240の仕様は、動的に構成可能であってもよい。例えば、キーボード1240は、ブランクの物理的キーボードであってもよい(例えば、物理的キーボードのキーは、恒久的に割り当てられた文字、数、記号等の恒久的に割り当てられた機能を有していない、および/またはそれでラベリングされていない場合がある)。HMDは、1つ以上の仮想キーを、対応する動的に割り当てられた機能とともに、ブランクの物理的キーボードのキー上にレンダリングすることができる。構成は、例えば、ユーザが1つのアプリケーションから別のアプリケーションに切り替えるとき、ある構成から別の構成に変化してもよい。例えば、HMD1220は、ユーザが10本の指でタイプする場合、ワード処理アプリケーションのために、QWERTYレイアウトをレンダリングすることができる。しかしながら、ユーザが、2本の親指タイプのために好ましい、ウェブベースのアプリケーションと相互作用する場合、HMD1220は、KALQレイアウトをブランクの物理的キーボード上にレンダリングすることができる。
仮想キーボードの仕様はまた、動的に再構成可能であることができる。例えば、仮想キーボードは、物理的キーボードのエミュレーションであってもよい。例えば、ウェアラブルシステムは、本明細書に説明される種々の技法を使用して、物理的キーボードを識別することができる。ウェアラブルシステムはさらに、コンピュータビジョン技法を使用して、またはデータベースにアクセスし、仕様を読み出すことによって、物理的キーボードの仕様にアクセスすることができる。例えば、ウェアラブルシステムは、物理的キーボードの製造業者と通信し、物理的キーボードの仕様を受信してもよい。ある実装では、仕様はまた、キー毎にエミュレートされるための実際のコード(例えば、文字、数、記号等のためのASCIIコード)を含んでもよい。別の実施例として、仮想キーボードは、1つのゲームアプリケーションのために、キー「A」、「D」、「W」、「S」をレンダリングする一方、異なるゲームアプリケーションのために、上、下、左、および右矢印キーをレンダリングしてもよい。
本明細書にさらに説明されるように、キーボード1240上の1つ以上のキーは、タッチセンサ式であってもよい。例えば、キーボード1240が、物理的キーボードである場合、キーボード上のスペースバーは、タッチ表面(ユーザによるキーの作動を受信するように構成される)と、ユーザのジェスチャを検出し得るタッチセンサと、タッチセンサから受信された信号をHMD1220に通信し得るPCBボードとを含んでもよい。キーボード1240が、仮想キーボードである場合、HMD1220は、1つ以上のキーの作動のための1つ以上のキー上のタッチジェスチャまたはスワイプジェスチャを検出することができる。
キーボード1240は、複数の双方向領域を含むことができる。1つの双方向領域は、あるタイプのユーザ相互作用と関連付けられることができる。例えば、1つの双方向領域(QWERTYキーボードの数字パッド領域等)は、タッチジェスチャ、スワイプジェスチャ、タップ、および押下ジェスチャをサポートすることができる一方、別の双方向領域(例えば、文字領域)は、押下ジェスチャのみをサポートすることができる。
例示的技法は、キーボードを参照して説明されるが、類似技法はまた、他のタイプのユーザ入力デバイス466に適用されることができる。例えば、トーテムの仕様もまた、動的に構成可能であってもよい。例えば、トーテム上のキーは、ゲームアプリケーションでは、左矢印と関連付けられる一方、数学関連アプリケーションでは、数字キーに割り当てられてもよい。
動的に再構成可能な物理的キーボードの実施例
図12を参照して説明されるように、物理的キーボードは、ラベルを有していない、1つ以上のブランクキーを含んでもよい(例えば、物理的キーボードのキーは、恒久的に割り当てられた文字、数、記号等の恒久的に割り当てられた機能を有していない、および/またはそれでラベリングされていない場合がある)。ウェアラブルシステムは、物理的キーボードのための仕様の少なくとも一部を動的に再構成することができる。図12を参照して説明されるように、ウェアラブルシステムは、キーボードと通信することによって、または視覚的キューを使用して、キーボードまたはキーボード内のキーを認識することができる。例えば、ウェアラブルシステムは、遠隔データリポジトリ280またはコンピューティングデバイス(例えば、キーボードの製造業者と関連付けられたコンピューティングデバイス等)と通信することにより、デバイス識別子をキーボードから受信し、記憶されたレイアウトにアクセスすることによって、キーボード内のキーのレイアウトを読み出すことができる。加えて、または代替として、ウェアラブルシステムは、オブジェクト認識装置708を使用して、キーボードおよびキーボード上のキーの数および場所を認識することができる。
図13A−13Cは、物理的キーボードの仕様を動的に構成する実施例を図示する。構成される仕様は、仮想キーラベルをキーボードにわたってレンダリングするために使用されてもよい。これらの図では、ユーザは、仮想ユーザインターフェース1310を知覚することができ、物理的キーボード1340は、HMD1210によって提示されるAR/MR場面を介して示される。物理的キーボード1340は、キーボード1240の実施形態であってもよい。物理的キーボード1340の一部は、物理的ラベルを含んでもよい。実施例として、キー1322a、1322b、1322c、および1322dは、A、S、D、Fとしてラベリングされる。その結果、キー1322aが、作動されると、キーボード1340は、文字Aがシステムの中に打ち込まれたことを示す信号を送信してもよい。例えば、押下されているキー1322aの信号は、ウェアラブルシステムに、キー1322aと関連付けられたASCII値を識別させてもよい。ウェアラブルシステムは、ASCII値をユーザインターフェース相互作用のための文字Aに自動的に変換することができる(例えば、ユーザが文を入力するとき)。
部分1342および1344等の物理的キーボードのある部分は、ブランクであって、ブランク物理的キーが、恒久的に割り当てられた文字、数、記号等の恒久的に割り当てられた機能を有していない、および/またはそれでラベリングされていない場合があることを意味し得る。HMD1210は、コンテキスト情報に基づいて、仮想キーラベルを提示することができる。
例えば、物理的キーボードの位置または配向、既存のレイアウト、物理的キーボードによってサポートされる作動のタイプ(例えば、タッチ、スワイプ等)、キーボードのサイズ、ブランクキーの数および場所等のコンテキスト情報が、物理的キーボードと関連付けられてもよい。例えば、セクション1342のためのレイアウトは、数字のために好適である。その結果、HMD1210は、図13Bに示されるように、セクション1342内の物理的キー上に重畳される仮想画像データとして(AR画像データとして)、数字0−9をレンダリングすることができる。ウェアラブルシステムは、図7を参照して説明される種々のコンピュータビジョンアルゴリズムを使用して、セクション1342およびそのレイアウトを認識することができる。例えば、ウェアラブルシステムは、セクション1342と関連付けられた表面の形状を図示する、画像を入手することができる。本実施例では、セクション1342と関連付けられた表面は、10個の正方形形状のバンプと、1個の長方形バンプとを含むことができる。オブジェクト認識装置708は、本表面形状と10個の正方形状のキーおよび1個の長方形状のキーのレイアウトを合致させることができる。ある実施形態では、物理的キーボードは、事前にラベリングされた1つ以上のキーを有してもよい。その結果、ウェアラブルシステムは、キーボードのラベル(例えば、画像内の文字列「QWERTY」のシーケンス)を検出することによって、オブジェクトがキーボードであることを認識することができる。別の実施例として、スペースバー(キー1324として図示される)は、タッチセンサ式表面を有してもよい。その結果、HMDは、スライドバーをキー1324上にレンダリングしてもよく、ユーザは、スライドバーを保持し、一端から他端に移動させ、例えば、アプリケーションを開く/閉じるまたは仮想オブジェクトをスライドバーの移動と同一方向に移動させる等のユーザインターフェース動作を実施することができる。さらに別の実施例として、ユーザは、物理的キーボードを、例えば、居間から寝室内の端部の机等に移動させてもよい。移動の結果、ウェアラブルシステムは、物理的キーボードの位置を再決定し、適宜、仮想キーラベルのレンダリング場所を更新することができる。ウェアラブルシステムは、オブジェクト認識装置708を使用して、物理的キーボードの場所を追跡することができる。例えば、ウェアラブルシステムは、物理的キーボードの画像を入手し、オブジェクト認識装置708を使用して、画像を解析し、物理的キーボードを識別することができる。ある実施形態では、ウェアラブルシステムは、テンプレートを使用して、物理的キーボード内のキーの位置を合致させることができる。テンプレートは、キーボードの物理的表面の形状を追跡し得る。画像を解析する間、オブジェクト認識装置708は、テンプレートと画像内の物理的キーボードを整合させるように試みることができる。いったん整合が成功すると、オブジェクト認識装置708は、テンプレートに基づいて、各キーの場所を決定することができる。さらに、ユーザは、タイプしながら、キーボードの場所または配向を変化させてもよい(例えば、より快適な位置を達成するため等)。ウェアラブルシステムはまた、キーボードの配向のそのような変化を検出し、適宜、仮想キーのレンダリング場所を調節することができる。
コンテキスト情報はまた、例えば、ユーザの環境内のオブジェクトのレイアウト、場所、サイズ、ユーザが現在相互作用しているオブジェクトのタイプまたは双方向特徴、ユーザの環境の照明条件(例えば、キーの照明を調節するために)等のユーザの環境またはHMDによって実行されているアプリケーションの特性と関連付けられてもよい。例えば、キー1324は、ユーザの環境内のオブジェクトが相互から比較的に遠く離れて位置する場合、スライドバーを含んでもよい。キー1324上でスライドさせることによって、ユーザは、仮想オブジェクトを別の場所により迅速に移動させることができる。しかしながら、ユーザの環境内のオブジェクトが、ともにより密接する場合、ウェアラブルシステムは、スライドバーをレンダリングしなくてもよい。むしろ、ユーザは、仮想オブジェクトを移動させるために、セクション1346内の矢印キーに依拠する必要があり得る。矢印キーを使用することによって、ユーザは、仮想オブジェクトをより精緻化された方式で移動させることができ、仮想オブジェクトと別のオブジェクトの衝突を回避することができる。別の実施例として、ユーザは、ユーザの台所内の適切に有効にされた物理的冷蔵庫と相互作用する間、キーボードを使用することを所望し得る。本実施例では、ユーザは、キーボードを使用して、冷蔵庫(例えば、冷蔵庫の温度等)をプログラムすることができる。ウェアラブルシステムは、ユーザの眼視線方向を検出し、レイキャスティング技法を使用して、冷蔵庫を識別することができる。ウェアラブルシステムはさらに、ユーザがキーボードを作動させるとき(例えば、長時間周期にわたるキー1324の押下を検出することによって)またはユーザがあるジェスチャを示すとき、ユーザが冷蔵庫をプログラムすることを意図することを決定することができる。その結果、ウェアラブルシステムは、冷蔵庫に特有の種々の制御をキーボード1340上にレンダリングすることができる。例えば、ウェアラブルシステムは、例えば、摂氏0、−10、または4度等のいくつかの事前に設定された温度をセクション1342内のキー上にレンダリングする一方、ユーザが温度をさらに調節するために、上矢印および下矢印をセクション1346内にレンダリングすることができる。
図13Bおよび13Cは、オブジェクトのタイプおよび双方向特徴に基づいて、キーボード1340を動的に再構成する実施例を図示する。ユーザは、HMD1210を介して、仮想オブジェクトA 1312aを知覚することができる。仮想オブジェクトA 1312aは、ユーザの3D環境内にレンダリングされてもよい。仮想オブジェクトA 1312aは、数学アプリケーションを含んでもよい。その結果、HMD1210は、数0−9をキーボード1340のセクション1342上にレンダリングすることができる。いくつかの状況では、数学アプリケーションは、会計特徴および数学的特徴の両方を含んでもよい。HMD1210は、ユーザが会計特徴を使用する場合、図13Bに示されるような仕様をレンダリングすることができる。しかしながら、ユーザが、数学的特徴に切り替える場合、HMD1210は、数学的特徴に特有の付加的キーをレンダリングしてもよい。例えば、HMDは、数学的演算子と関連付けられた記号をキーボードセクション1344内にレンダリングしてもよい。ユーザが、仮想オブジェクトA 1312aではなく、仮想オブジェクトB 1312bと相互作用している場合、ウェアラブルシステムは、キーボード1340の仕様を図13Cに示されるようなものに調節することができる。図13Cにおける仕様は、記号をセクション1342内に含み、数字は、セクション1342(図13Bに示されるように)ではなく、セクション1344内にレンダリングされる。これは、仮想オブジェクトB 1312bが、数学関連アプリケーションではなく、ワード処理アプリケーションと関連付けられるためであり得る。
コンテキスト情報はさらに、例えば、ユーザの人口統計情報、ユーザの選好、またはユーザの過去の相互作用等のユーザの特性に基づいてもよい。例えば、ウェアラブルシステムは、ユーザの母国語を決定し、ユーザの母国語のために設計される仕様に従って、キーラベルをキーボード1340上に重畳することができる。別の実施例として、ウェアラブルシステムは、ユーザの過去のタイプ挙動に基づいて、いくつかの頻繁に使用される絵文字を識別し、ユーザがアクセスするために、絵文字をキーボード1340のセクション1342内にレンダリングすることができる。さらに別の実施例として、ウェアラブルシステムは、AZERTYレイアウトの選択をデフォルトレイアウトとしてユーザから受信することによって、またはウェアラブルシステムとのユーザの過去の相互作用を観察することによって(例えば、ユーザは、多くの場合、QWERTYレイアウトではなく、AZERTYレイアウトを選択する)、AZERTYレイアウトがユーザにとってQWERTYレイアウトより好ましいことを決定してもよい。その結果、ウェアラブルシステムは、AZERTYレイアウトを、QWERTYレイアウトではなく、キーボード1340上にレンダリングすることができる。
種々の実施形態では、コンテキスト情報は、例えば、ディスプレイ220の光学特性等のHMDの特性を含むことができる。例えば、ディスプレイ220を通して知覚されるようなユーザのAR/MR FOVは、物理的キーボードのサイズより小さくあり得る。その結果、ユーザは、ユーザがHMDと相互作用しながら、キーボード1340全体を知覚することが不可能であり得る。本問題を解決するために、ウェアラブルシステムは、ユーザの眼視線および頭部姿勢に基づいて、キーの位置を動的に移動させることができる。例えば、ユーザがプレーしているゲームは、4つの指向性キー(上、下、右、および左)を要求し得るが、ウェアラブルシステムは、最初に、4つの指向性キーをセクション1346内にレンダリングすることができる。しかしながら、ユーザが左に方向転換する場合、ユーザのFOVは、適宜、更新されることができる。4つの方向キーが依然としてユーザのFOV内にあることを確実にするために(例えば、4つの方向キーとユーザのFOVとの間の相対的位置を維持することによって)、HMDは、適宜、4指向性キーのレンダリング場所をキーボード1340上の左に移動させることができる。本移動の結果、4指向性キーは、もはやセクション1346内のキー上にレンダリングされない。
HMDは、種々の技法を使用して、キーラベルを物理的キーボード1340上にレンダリングすることができる。HMDは、キー値のピクセルスティックを介して、キー値(例えば、文字「B」または「$」記号)をキーボードの物理的キー上にレンダリングすることができる。ピクセルスティックは、画像またはピクセルを3D空間内の場所またはオブジェクト(例えば、キー)と「スティック」させることができる。別の実施例として、ウェアラブルシステムは、物理的キーボードの物理的特性(例えば、キーのサイズ、場所等)に合致する仮想キーボードを物理的キーボードの上部にオーバーレイすることができる。種々の実施形態では、ウェアラブルシステムは、仮想キーラベルをキーボード1340の一部にレンダリングしてもよい。例えば、ウェアラブルシステムは、仮想キーラベルをセクション1342の中にレンダリングすることができるが、キーボード1340の他のセクションにはレンダリングしない。キーボード1340の他のセクションのうちのいくつかが、事前にラベリングされている場合(物理的ラベルで)、ユーザには、ディスプレイ220を通して見え、物理的ラベルによって示される機能に基づいて、これらの事前にラベリングされたキーと相互作用することができる。
ある実施形態では、ウェアラブルシステムは、仮想キーラベルを物理的ラベルをすでに有するキー上にレンダリングすることができる。仮想キーラベルは、物理的ラベルをオクルードしない場所にレンダリングされてもよい。例えば、ユーザは、HMDと相互作用するとき、英語およびヘブライ語の両方を使用してもよい。キーボード1340は、英語文字で事前にラベリングされてもよい。しかしながら、ユーザが、入力モードをヘブライ語に切り替えると、ウェアラブルシステムは、ヘブライ語文字をキーボードのキー上にレンダリングすることができる。ヘブライ語文字は、あるキー上の英語文字に近接してレンダリングされてもよい。ヘブライ語文字の位置は、英語文字をオクルードし得ない。その結果、ユーザは、英語文字(例えば、物理的ラベルに起因する)およびヘブライ語文字(例えば、仮想ラベルに起因する)の両方を知覚することができる。いくつかの実装では、仮想キーラベルは、物理的ラベルをオクルードしてもよい。例えば、仮想キーラベルの明度は、ユーザの環境内の光を上回ってもよい。その結果、ユーザは、仮想キーラベルが物理的ラベルにわたってレンダリングされると、物理的ラベルを知覚することが不可能になり得る。
仮想キーラベルのレンダリング場所に加え、またはその代替として、ウェアラブルシステムはまた、仕様に従って、キーの機能を動的に更新することができる。図13Bおよび13Cを参照すると、キー1352が、最初に、0であるように割り当てられると、ウェアラブルシステムは、キー1352の作動を示す信号を0と関連付けられたASCII値に変換することができる。ウェアラブルシステムは、適宜、0の入力値に従って、動作を実施することができる。しかしながら、図13Cでは、キー1352は、等号に割り当てられる。その結果、ウェアラブルシステムは、キー1352の作動を示す信号を「=」と関連付けられたASCII値に変換することができる。ウェアラブルシステムは、適宜、本入力に従って、動作(例えば、数学演算)を実施することができる。
図13A−13Cにおける例示的キーボード1340は、物理的ラベルを有するキーを含むが、ある実施形態では、キーボード1340は、全体的にブランクであることができ、およびウェアラブルシステムは、コンテキスト情報に基づいて、仮想キーラベルを物理的キーボード上にレンダリングすることができる。さらに、種々の実施形態では、1つを上回るコンテキスト要因が、物理的キーボードの仕様を決定するために使用されてもよい。例えば、ウェアラブルシステムは、物理的キーボード1340上にレンダリングされるべきレイアウトを決定するために、ユーザが現在相互作用しているアプリケーションに加え、ユーザの選好を考慮することができる。これらの実施例は、物理的キーボードを参照して説明されるが、類似技法およびコンテキスト情報はまた、仮想キーボードを動的に再構成するために使用されることができる。例えば、ウェアラブルシステムは、図13A−13Cを参照して説明されるコンテキスト情報に基づいて、キーボードテンプレート(ある仮想キーを有する)を種々の仮想キー値に動的に更新することができる。
物理的キーボードのキーの割り当てられた機能を動的に再構成することに加え、キーボード1340は、触覚的変換器または他の機械的または電気要素を含むことができ、これは、物理的キーボードの1つ以上のキーの「感触」を動的に変化させるために使用され得る。1つ以上のそのような要素は、キーあたり提供されることができる。作動されるときのユーザにとってのキーの感触または応答の方法に関する任意の特性は、これらの要素によって変化されることができる。例えば、キーの抵抗、加重、進行等は全て、変化されることができる。任意のキーの作動特性の変化は、キーボードの仕様の変化に応答して実施されることができる。例えば、キーの作動特性は、HMDがARピアノアプリケーションを実行している場合、よりピアノ様の感触をもたらすように変化されることができる。または作動特性は、HMDがARタイピングアプリケーションを実行している場合、タイプライタ様となるように変化されることができる。
キーボードの例示的セクションおよび双方向領域
ある実施形態では、物理的キーボードは、キーボードが複数のセクションから組み立てられ得るように、再構成可能であることができる。キーボードはまた、複数のセクションに分解されることができる。有利には、いくつかの実施形態では、再構成可能キーボードは、ユーザがキーボードのサイズおよび形状を容易に変化させることを可能にすることができる。
図14は、再構成可能物理的キーボード1420の実施例を図示する。再構成可能物理的キーボード1420は、図12に示されるキーボード1240の例示的実施形態であってもよい。物理的キーボード1420は、1412、1414、および1416等のセクション、および他のセクション1418に分離されることができる。例えば、ユーザが、ゲームをプレーしている間、ユーザは、キーボード1420全体ではなく、セクション1414を使用し得る。セクション1414をキーボード1420から切り離すことによって、ユーザは、HMD1210と相互作用する間、キーボード1420全体を持ち歩く必要がない。別の実施例として、ユーザは、セクション1412およびセクション1416をともに継ぎ合わせ、新しいキーボードを作成することができる。ユーザはさらに、他のセクションを新しいキーボードに取り付け、新しいキーボード内のキーのレイアウトをカスタマイズすることができる。例えば、ユーザは、セクション1414内のキーをセクション1420内のものより大きくすることを所望し得る。その結果、ユーザは、セクション1414と、セクション1414内のものより大きいキーを提供する、別のセクションを置換してもよい。他のセクションも、ユーザがより大きいキーをキーボード1420のオリジナルセクション1414内に伴うカスタマイズされたキーボードを有し得るように、キーボード1420に物理的に取り付けられてもよい。各セクションは、機械的および/または電気的コネクタを含み、他のセクションと噛合し、および/またはセクション間の電気通信を確立することができる。
個々のセクションは、キーボードまたはキーの機械的特性、キーと関連付けられた機能または潜在的コマンドに基づいて、分割されることができる。例えば、いくつかの実施形態では、スペースバーキーそれ自体が、セクション内にあってもよい。ユーザは、複数のスペースバーキーを順次様式で取り付け、ピアノの鍵盤に類似するキーボードを作成することができる。その結果、ユーザは、HMDがユーザが演奏するために仮想ピアノを提示すると、組み立てられたキーボードを使用することができる。別の実施例として、キーのセクションは、長方形形状であってもよく、これは、複数のセクションをユーザが移動させることが不便であり得る形状に組み立てる可能性を低減させることができる。
図12を参照して説明されるように、キーボードは、複数の双方向領域に分割されてもよく、各双方向領域は、類似ユーザ相互作用をサポートする、または類似機能を実施してもよい。双方向領域は、キーボードのセクションと一致する場合とそうではない場合がある。例えば、キーボードは、セクション1414と一致する1つの双方向領域と、セクション1416と一致する別の双方向領域とを含むことができる。セクション1414と一致する双方向領域は、オブジェクトを移動させる(例えば、上/下/左/右)ために設計されてもよい一方、セクション1416と一致する双方向領域は、数値操作等の機能を実施してもよい。しかしながら、セクション1412は、2つの双方向領域を有することができ、一方の双方向領域1422bは、他の双方向領域1422aより暗い陰影で図示される。双方向領域1422a内のキーは、容量タッチセンサを含んでもよく、その結果、タッチジェスチャを検出することができる。しかしながら、双方向領域1422b内のキーは、容量タッチセンサを装備しなくてもよく、したがって、それらは、タッチジェスチャを認識しなくてもよい。別の実施例として、ユーザは、セクション1412およびセクション1416を新しいキーボードの中に組み立てることができる。新しいキーボードは、キーボードが複数のセクションを有する場合でも、1つの双方向領域と見なされ得る。
図13A−13Cを参照して説明されるように、キーは、事前に印刷された物理的ラベルを有してもよい、またはブランクであってもよい。ユーザは、全てがキーブランクの状態で、または全てのキーが事前に印刷された物理的ラベルおよび恒久的に割り当てられた機能を有する状態で、またはキーボードの一部のみが事前に印刷された状態で(例えば、1つのセクションは、ブランクである一方、他のセクションは、事前に印刷されたラベルを有する)、キーボードを組み立てることができる。HMDは、図13A−13Cを参照して説明される類似技法を使用して、組み立てられたキーボードを構成することができる。例えば、HMDは、オブジェクト認識装置708を使用して、組み立てられたキーボード内のキーの数およびキーの位置を認識することができる。いったんHMDが、組み立てられたキーボードの物理的レイアウトを決定すると、HMDは、1つ以上のキーがブランクであるかどうか(例えば、キーの画像がラベルをそれらの上に有していないため)およびブランクキーに割り当てられるであろう機能/仮想ラベルを決定することができる。
図14における実施例は、物理的キーボードを参照して説明されるが、類似技法はまた、仮想キーボード上に適用されることができる。例えば、ユーザは、手のジェスチャおよび腕移動を使用して、仮想キーボードを組み立てる、または分解することができる。物理的キーボード内のセクションは、仮想キーボードの定義されたテンプレートに対応してもよい。
キーボードとの例示的ユーザ体験
図12を参照して説明されるように、キーボード1240は、ユーザのFOVおよびFOR内のオブジェクトと相互作用することができる。図15Aは、動眼視野(FOR)、世界カメラの視野(FOV)、ユーザの視野、およびユーザの固視野の実施例を図式的に図示する。
図4を参照して説明されるように、FOR1500は、ウェアラブルシステムを介してユーザによって知覚されることが可能なユーザの周囲の環境の一部を含む。FORは、装着者が、その身体、頭部、または眼を移動させ、空間内の実質的に任意の方向を知覚することができるため、ウェアラブルシステム400を囲繞する4πステラジアンの立体角を含み得る。他のコンテキストでは、装着者の移動は、より制約され得、故に、装着者のFORは、より小さい立体角に対し得る。
世界カメラの視野1570は、外向きに向いた結像システム464によって現在観察されている、ユーザのFORの一部を含むことができる。図4を参照すると、世界カメラの視野1570は、所与の時間にウェアラブルシステム400によって観察される、世界470を含んでもよい。世界カメラ1270のFOVのサイズは、外向きに向いた結像システム464の光学特性に依存し得る。例えば、外向きに向いた結像システム464は、ユーザの周囲の190度空間を結像し得る、広角カメラを含むことができる。ある実装では、世界カメラのFOV1570は、ユーザの眼の自然FOVより大きいまたはそれと等しくてもよい。
ユーザのFOV1550は、ユーザが所与の時間に知覚する、FOR1500の一部を含むことができる。ユーザのFOV1550は、ウェアラブルデバイスのディスプレイのサイズまたは光学特性に依存し得る。例えば、ARディスプレイは、ユーザがディスプレイの特定の部分を通して見るとき、AR機能性のみを提供する、光学系を含んでもよい。FOV1550は、例えば、スタックされた導波管アセンブリ480(図4)または平面導波管600(図6)等のARディスプレイを通して見ているときにユーザによって知覚可能な立体角に対応してもよい。ある実施形態では、ユーザのFOV1550は、ユーザの眼の自然FOVより小さくてもよい。
ウェアラブルシステムはまた、ユーザの固視野1590を決定することができる。固視野1590は、ユーザの眼が固視(例えば、視覚的視線をその部分に維持)し得る、FOV1550の一部を含むことができる。固視野1590は、ユーザのFOV1550より小さくあり得、例えば、固視野は、数度〜約5度であり得る。その結果、それにもかかわらず、ユーザは、固視野1590内にないが、ユーザの周辺視野内にある、FOV1550内のいくつかの仮想オブジェクトを知覚することができる。
物理的キーボードとの例示的UI相互作用
図15Bは、物理的キーボード1540を使用してユーザのFOR1500およびFOV1550内の仮想オブジェクトと相互作用する、実施例を図示する。図15Bでは、FOV1550は、破線1552によって図式的に図示される。ウェアラブルシステムのユーザは、仮想オブジェクト1542、仮想オブジェクト1544、および仮想オブジェクト1530の一部等のFOV1550内の複数のオブジェクトを知覚することができる。ユーザは、それらがFOR1500内にあるが、FOV1550内にないため、直接、仮想オブジェクト1510および1520を見ることが不可能である場合がある。
ユーザは、キーボード1540を作動させ、仮想オブジェクトをFOV1550の内外に移動させることができる。例えば、ユーザは、キー1548を押下し、オブジェクトを右に移動させてもよい。本実施例では、仮想マップ1510は、最初に、ユーザのFOV1550外にある。キー1548が、タッチされる場合、仮想マップ1510は、ユーザのFOV1550内に移動し得、例えば、仮想オブジェクト1230は、ユーザのFOV1550外に移動し得る。
図13A−13Cを参照して説明されるように、キーボード1540は、ブランクキーを伴うキーボードであってもよく、ウェアラブルシステムは、ブランクキーをある機能および機能に対応する仮想ラベルに割り当てることができる。いくつかの実施形態では、FOV1550が、ユーザの姿勢(例えば、頭部姿勢または眼視線)の変化に起因して変化する場合、ウェアラブルシステムは、ユーザが、依然として、キーボード1540を作動させ、同一機能を実施し得るように、仮想ラベルのレンダリング場所を動的に更新することができ、機能を新しいキーに再割当することができる。
図15Cは、物理的キーボードと関連付けられた仮想画面を提示する実施例を図示する。物理的キーボードは、ブランク物理的画面を含むことができ、これは、物理的キーボードに取り付けられる、そこから延在する、または別様にそれと統合される。そのような物理的画面は、1つ以上の仮想キーまたは他の双方向特徴とともに、仮想画面をレンダリングするための場所としての役割を果たすことができる。ウェアラブルシステムは、物理的キーボードと関連付けられた仮想画面を提示することができる。物理的キーボードの作動は、ユーザインターフェース動作を仮想画面上で実施させ得る。例えば、ウェアラブルシステムは、キーボード1540の近傍に現れるように、仮想画面1584を提示することができる。ユーザが、キーボード1540を押下すると、ユーザは、仮想画面1584上の仮想オブジェクト1582を移動させる、またはそのサイズを変化させ得る。ある実施形態では、仮想画面1584は、キーボード1540の画像をレンダリングすることができる。ユーザが、キーボード1540上のキーを作動させると、ウェアラブルシステムは、視覚的焦点インジケータを仮想画面1584上の対応するキーに提供することができる。視覚的焦点インジケータは、後光(対応する仮想キーを実質的に囲繞する、またはその近傍にある)、色、知覚されるサイズまたは深度変化(例えば、対応する仮想キーをより近くにおよび/またはより大きく現れさせる)、または他の視覚的効果を含むことができ、これは、ユーザの注意を引き付ける。有利には、いくつかの実施形態では、物理的キーボード1540に対応する仮想画面1584を提示することによって、ユーザは、押下しているキーを把握するために、下を見る必要がない。これは、ユーザがHMDと相互作用しているときのユーザ疲労を低減させることができる。
ある実装では、物理的キーボード1540上にレンダリングされた仮想キーラベルのサイズは、ユーザの頭部姿勢に基づいて変化してもよい。例えば、物理的キーボード1540は、テーブル上に提示されてもよい。仮想キーラベルは、ユーザが物理的キーボード1540を見下ろしていることをHMDのIMUが検出すると、ユーザが押下しているキーをユーザが見ることに役立つように拡大されてもよい。本サイズ変化は、物理的キーボード1540が対応する仮想画面を有する状況に限定されない。サイズ変化はまた、例えば、ユーザが、図15Bに示されるように、FOVおよびFOR内のオブジェクトと相互作用しているときに実装されることができる。
ウェアラブルシステムは、本明細書に説明されるコンテキスト情報に基づいて、レンダリング場所を更新する、または仮想画面が可視/不可視になるように設定することができる。例えば、ウェアラブルシステムは、キーボード1540がユーザのFOV内にある場合、仮想画面1584を表示することができる。ユーザの姿勢が変化し、キーボード1540は、もはやユーザのFOV内にない場合、ウェアラブルシステムは、仮想画面1584を隠蔽することができる。仮想画面1584は、種々の視覚的効果と関連付けられてもよい。例えば、ウェアラブルシステムは、仮想画面1584が可視に設定されると、仮想画面1584をロールダウンする動画を提示することができる。ウェアラブルシステムはまた、仮想画面1584が不可視に設定されると、ロールアップする動画を提示することができる。
本明細書に説明されるように、物理的キーボードは、仮想オブジェクトまたは物理的オブジェクトと相互作用するために使用されることができる。相互作用が、物理的オブジェクトとである場合、ウェアラブルシステムは、物理的キーボードの作動を検出し(例えば、物理的キーボードの容量センサからの信号を介して)、物理的オブジェクト(例えば、冷蔵庫、テレビ、またはコーヒーメーカー等)の対応するコマンドを通信し、物理的オブジェクトに、アクション(例えば、オン/オフにする、温度を変更する、チャンネル/音量を変更する等)を実施させることができる。
仮想キーボードとの例示的UI相互作用
種々の実施形態では、ウェアラブルシステムは、仮想キーボードを生成することができ、これは、ユーザの環境内の物理的または仮想オブジェクトとの相互作用のために使用され得る。仮想キーボードは、例えば、テーブルまたは壁等の表面上に重畳されたAR画像データでレンダリングされるてもよい、またはユーザの3D環境内にレンダリングされてもよい(例えば、表面と衝突せずに、ユーザの正面にレンダリングされる)。
本明細書に説明されるように、仮想キーボードはまた、コンテキスト情報に基づいて、動的に構成可能である。一実施例では、ウェアラブルシステムは、ユーザが現在相互作用しているオブジェクトに基づいて、仮想キーボードの仕様を決定することができ、仕様に基づいて、仮想キーボードをユーザの環境内にレンダリングすることができる。例えば、ウェアラブルシステムは、オブジェクトとの相互作用のために使用される、最も頻繁に使用されるキーを決定することができ、最も頻繁に使用されるキーを含むように、仮想キーボードをレンダリングすることができる。ユーザが、頻繁に使用されないキーであるキーを使用することを所望する場合、ユーザは、仮想キーボードを作動させる、またはその姿勢を変化させ、ウェアラブルシステムに、仮想キーボード上に前もってレンダリングされていない付加的キーを呼び出させてもよい。別の実施例として、アプリケーションが、数学ベースのアプリケーションである場合、ウェアラブルシステムは、仮想数字パッドをレンダリングすることができる。アプリケーションが、外国語(例えば、言語学習アプリケーションまたはメッセンジャアプリケーション)を伴う場合、ウェアラブルシステムは、キーが外国語にカスタマイズされた仮想キーボードをレンダリングすることができる。
別の実施例として、仮想キーボードは、ユーザの環境内の物理的キーボードのエミュレーションであってもよい。図12を参照して説明されるように、ウェアラブルシステムが、物理的キーボードを認識後、ウェアラブルシステムは、例えば、遠隔データリポジトリ280からの物理的キーボードの仕様にアクセスすることができる。ウェアラブルシステムは、ユーザの環境内の対応する仮想キーボードをレンダリングすることができる。その結果、ユーザは、ユーザの環境内のオブジェクトと相互作用するために、物理的キーボードを持ち歩く必要はない。
物理的キーボードが再構成可能である、いくつかの状況では、ウェアラブルシステムまた、ウェアラブルシステムが物理的キーボードの構成の更新を検出すると、適宜、仮想キーボードを更新する。例えば、ユーザは、最初に、物理的キーボードAと相互作用してもよい。ウェアラブルシステムは、適宜、物理的キーボードAの仕様に従って、仮想キーボードをレンダリングすることができる。しかしながら、ユーザは、新しい物理的キーボードが、一方のセクションが物理的キーボードAに対応する一方、他方のセクションが物理的キーボードBに対応する、2つのセクションを有し得るように、キーボードAとキーボードBを物理的に取り付けることによって、新しい物理的キーボードを組み立ててもよい。ウェアラブルシステムは、外向きに向いた結像システム464またはHMDの外部のカメラによって入手された画像に基づく、キーボードAおよびキーボードBに基づいて、新しいキーボードが組み立てられたことを検出することができる。例えば、ウェアラブルシステムは、ユーザがそれらをともに組み立てるにつれて、物理的キーボードAおよびBの移動を追跡することができる。ウェアラブルシステムはまた、物理的キーボードの画像を分析し、視覚的キュー(例えば、物理的キーボードのキーのレイアウト、キー上のラベル等)に基づいて、物理的キーボードの仕様を識別してもよい。ウェアラブルシステムは、物理的キーボードAおよびBのための仕様を組み合わせることによって、仕様を識別することができる。ウェアラブルシステムはまた、仕様の視覚的キューに基づいて、データ記憶装置にアクセスし、仕様を読み出すことができる。ウェアラブルシステムは、新しい物理的キーボードの仕様に従って、仮想キーボードを更新し、仮想キーボードをレンダリングすることができる。更新された仮想キーボードは、新しい物理的キーボードのレイアウトおよび機能を有してもよい。
いくつかの実施形態では、ユーザは、ユーザの姿勢の変化に基づいて、またはユーザ入力デバイスの作動に基づいて、物理的キーボードと仮想キーボードとの間で切り替えることができる。例えば、ユーザが、物理的キーボード上のキーを押下する場合、ウェアラブルシステムは、入力モードを仮想キーボードから物理的キーボードに変化させることができる。別の実施例として、ユーザは、手のジェスチャ(例えば、その手を2回振る)を使用して、HMDにユーザが相互作用するための仮想キーボードを提示させることができる。
ウェアラブルシステムはまた、切替を自動的に実施することができる。自動切替は、ユーザの姿勢(例えば、ジェスチャ、頭部姿勢、眼視線等)に基づいてもよい。例えば、ウェアラブルシステムは、ユーザ相互作用のための仮想キーボードを提示することができる。ユーザがその身体および頭部を移動させるにつれて、ウェアラブルシステムは、ユーザのFOV内の物理的キーボードを検出および認識し得る。ウェアラブルシステムは、仮想キーボードを物理的キーボード上にレンダリングさせ、仮想キーボードの機能を含むように、物理的キーボードの機能を動的に構成することができる。ユーザは、故に、物理的キーボードを使用して、ウェアラブルシステムと相互作用することができる。いくつかの状況では、ウェアラブルシステムは、仮想キーボードの一部を物理的キーボード上にレンダリングしてもよい。例えば、物理的キーボードは、数字パッドであってもよい。しかしながら、仮想キーボードはまた、数字ではない他のキー(例えば、文字等)を含むことができる。その結果、ウェアラブルシステムは、数字パッド上の数字のための仮想ラベルをレンダリングしてもよいが、仮想キーの残りを数字パッド上にレンダリングしない。数字パッドが事前にラベリングされている場合、ウェアラブルシステムは、仮想キーボード内の数字キーを隠蔽するが、ユーザが数字パッドを介して数字を打ち込むことを可能にしてもよい。
図16A−16Dは、例示的特徴および仮想キーボードとのユーザ相互作用を図示する。ユーザの環境は、複数の仮想キーボードと関連付けられてもよい。例えば、オブジェクトは、QWERTYキーボードまたはDvorakキーボードを使用して、相互作用されてもよい。別の実施例として、複数の物理的キーボードがユーザの環境内に存在し得、ウェアラブルシステムに、複数の対応する仮想キーボードを作成させることができる。さらに別の実施例として、ユーザの環境内のオブジェクトは、異なる仮想キーボードと関連付けられてもよい。テレビ1610は、遠隔コントローラに類似するレイアウトを有する、仮想キーボードと関連付けられてもよい一方、仮想アバタ1624は、タッチ可能領域を有する仮想キーボードと関連付けられてもよい。
ユーザは、姿勢を使用して、またはユーザ入力デバイスを作動させることによって、仮想キーボードを選択することができる。例えば、ユーザは、ある時間周期(例えば、5、10、15秒等)にわたって仮想キーボードを注視することによって、仮想キーボードを選択することができる。ユーザはまた、トーテムを使用して、オブジェクト(例えば、テレビ1610またはアバタ1624)に向けることができ、これは、ウェアラブルシステムに、オブジェクトと関連付けられた仮想キーボードを提示させることができる。いくつかの実施形態では、ウェアラブルシステムは、複数の仮想キーボードをユーザの環境内にレンダリングさせることができる。ユーザは、握持ジェスチャを使用することによって、1つ以上の仮想キーボードを選択することができる。ユーザはまた、投擲ジェスチャを使用して、他の仮想キーボードを除去することができる。
図16Aは、HMDのユーザによって知覚されるような環境の実施例を図示する。例示的環境1600aは、ユーザの自宅の居間を含む。環境1600aは、テレビ(TV)5110、TVスタンド1630、および窓5140等の物理的オブジェクトと、仮想建物1622および仮想アバタ1624等の仮想オブジェクトとを有する。
ユーザがHMDを装着している間、ユーザは、物理的オブジェクトを知覚し、仮想キーボードを用いて、物理的オブジェクトと相互作用することができる。例えば、ユーザは、HMDを装着している間、TV1610を鑑賞してもよい。仮想キーボード1620は、TVを制御するための遠隔装置としての役割を果たし得る(例えば、図16Dに示されるもの参照)。例えば、ユーザは、仮想スペースバーキー1652(図16Bに示されるように)を作動させ、TV1610をオン/オフにすることができる。ユーザはまた、指向性キー(例えば、上/下/左/右矢印でラベリングされたキー)を作動させ、TV1610のチャンネルまたは音量を変化させることができる。
ユーザはまた、仮想キーボード1620を作動させ、仮想オブジェクトと相互作用することができる。図16Aおよび16Bを参照すると、ユーザは、「−」でラベリングされたキーを使用して、仮想アバタ1624のサイズを低減させることができる(例えば、図16Aに示されるサイズから図16Bに示されるサイズに)。ユーザはまた、スペースバーキー1652上で左にスワイプし、仮想アバタ1624を図16Aに示される位置から図16Bに示される位置に移動させることができる。
例示的環境1600aおよび1600bでは、仮想キーボード1620が、レンダリングされ、窓1640の一部をオクルードする。いくつかの実施形態では、仮想キーボードは、ユーザが、仮想キーボード1620を通して窓1640を透けて見得るように、透明であってもよい。
仮想キーボードのレンダリング場所は、コンテキスト情報に依存し得る。例えば、ユーザが、TV1610と相互作用している場合、キーボード1620は、TV1610の近傍にレンダリングされてもよい。キーボード1620はまた、ユーザの腕が届く範囲内(例えば、ユーザから0.3〜1.5mの距離内)にレンダリングされてもよい。いくつかの状況では、仮想キーボードの仕様は、レンダリング場所に依存し得る。例えば、仮想キーボードが、ユーザから遠い場合、キーまたは仮想キーボード(全体として)のサイズは、増加してもよい。しかしながら、仮想キーボードが、ユーザの腕の届く範囲内にある場合、キーまたは仮想キーボードのサイズは、変化されなくてもよい。有利には、いくつかの実施形態では、距離に基づいて、キー/仮想キーボードのサイズを動的に調節することによって、ウェアラブルシステムは、ユーザ疲労を低減させ、仮想キーボードとのユーザ相互作用の正確度を増加させることができる。これは、ユーザがその腕を非常に精密な位置に保たない限り、遠くに位置するときに小キーを正確に示すことが困難であるためである。
コンテキスト情報に基づいてレンダリング場所を調節する別の実施例として、ウェアラブルシステムは、ユーザの移動に基づいて、レンダリング場所を調節してもよい。例えば、仮想キーボード1620は、ユーザの頭部移動とともに移動することができる。その結果、仮想キーボード1620は、ユーザの頭部の移動にかかわらず、ユーザのFOV内に留まることができる。
図13A−14を参照して説明されるように、いくつかの実施形態では、ウェアラブルシステムは、コンテキスト情報に基づいて、仮想キーボード1620の仕様を動的に更新することができる。例えば、ウェアラブルシステムは、コンテキスト情報に基づいて、仮想キーボード1620のセクションまたは仮想キーボード1620の1つ以上のキーを動的に示す、または除去してもよい。例えば、ユーザが、TV1610を鑑賞している間、ウェアラブルシステムは、キーの残りを隠蔽しながら、音量およびチャンネル調節のために、方向キーを仮想キーボード1620内に提示してもよい。
例えば、図16Dに示されるように、ウェアラブルシステムは、仮想キーボード1620が除去されると、仮想キーボード1620の遷移効果を提供することができる。除去は、長時間の無活動またはユーザの手のジェスチャ等のトリガイベントに応答してもよい。ウェアラブルシステムは、いったんウェアラブルシステムが、トリガイベントが満たされることを決定すると、仮想キーボード1620の透明度を徐々に増加させることができる。
図16Bに示されるように、手のジェスチャを使用して、仮想キーボードと相互作用することに加え、またはその代替として、ユーザはまた、図16Cに示されるように、頭部姿勢を使用して、仮想キーボードと相互作用することができる。例えば、ウェアラブルシステムは、内向きに向いた結像システム464を使用して、ユーザの視線方向を決定し、IMUを使用して、ユーザの頭部姿勢を決定することができる。眼視線および頭部姿勢に基づいて、ウェアラブルシステムは、レイキャスティングを仮想キーボード上のキー上で実施することができる。ウェアラブルシステムは、キーがレイキャスティングにおける光線と交差する場合、キーの作動を検出することができる。
物理的キーボードとのUI相互作用の例示的プロセス
図17Aは、物理的キーボードを動的に構成し、それと相互作用する、例示的プロセスを図示する。例示的プロセス1700は、本明細書に説明されるウェアラブルシステムによって実施されることができる。
ブロック1710では、ウェアラブルシステムは、ユーザの環境内の物理的キーボードを識別することができる。物理的キーボードは、所定のラベルまたは機能と関連付けられない、1つ以上のブランクキーを有する。ウェアラブルシステムは、物理的キーボードと電子的に通信することによって(例えば、Bluetooth(登録商標)、WiFi、またはRFプロトコル等を介して)、物理的キーボードを識別することができる。ウェアラブルシステムはまた、ユーザの環境の画像にアクセスし、分析することによって、物理的キーボードを識別することができる。画像は、ウェアラブルシステムの外向きに向いた結像システムによって、ユーザの環境内のカメラ(例えば、室内カメラ)によって、または別のコンピューティングデバイス(例えば、ラップトップまたはトーテム)のカメラによって入手されてもよい。図12を参照して説明されるように、ウェアラブルシステムは、オブジェクト認識装置708を使用して、画像を分析し、物理的キーボードを識別することができる。
随意のブロック1720では、ウェアラブルシステムは、物理的キーボードと頭部搭載型ディスプレイをペアリングすることができる。頭部搭載型ディスプレイは、ウェアラブルシステムの一部であることができ、図2におけるディスプレイ220の実施形態であることができる。物理的キーボードは、図12を参照して説明される種々の有線および無線ペアリング技法を使用して、頭部搭載型ディスプレイとペアリングされることができる。いくつかの実施形態では、物理的キーボード上のキーは、照明されてもよい。例えば、1つ以上のキーは、発光ダイオード(LED)を含む、またはキーを囲繞するLEDを有してもよい。ウェアラブルシステムは、物理的キーボードによって照明された光パターンの画像を捕捉し、オブジェクト認識装置708を使用して、光パターンに基づいて、情報を抽出することができる。例えば、物理的キーボードのデバイス識別子が1234であると仮定する。ラベル「1」、「2」、「3」、および「4」を有するキーが、照明されてもよい。外向きに向いた結像システムは、キーボードの画像内の本照明パターンを捕捉することができる。オブジェクト認識装置708は、キー上のラベル(例えば、「1」、「2」、「3」、「4」)を認識し、これらのキーの照明を認識することができる。オブジェクト認識装置708は、故に、照明パターンに基づいて、数1234を抽出することができる。この数「1234」は、ウェアラブルシステムによって、物理的キーボードのデバイス情報を入手するために使用されてもよい。いくつかの状況では、キーの照明は、シーケンスであってもよい。例えば、「1」でラベリングされたキーが、「2」でラベリングされたキーの前に照明され、数「12」を表してもよい。しかしながら、「2」でラベリングされたキーが、「1」でラベリングされたキーの前に照明される場合、本照明シーケンスから抽出される数は、「21」である。数に加え、またはその代替として、文字でラベリングされたキー等の他のキーもまた、デバイスペアリングの間に照明されることができる。さらに、キーボードはまた、照明パターンを使用して、デバイス識別子以外の情報を伝達することができる。例えば、キーボードは、本明細書に説明される照明パターンを使用して、ペアリングパスワード、キーボードの製造業者の情報、キーボードのモデル、キーボードによってサポートされる通信またはペアリングプロトコル等を伝達することができる。
ブロック1730では、ウェアラブルシステムは、コンテキスト情報にアクセスすることができる。図12−13Cを参照して説明されるように、コンテキスト情報は、単独で、または組み合わせて、キーボード、ユーザ、頭部搭載型ディスプレイ、環境と関連付けられてもよい。
ブロック1732では、ウェアラブルシステムは、ブランクキーおよび物理的キーボード上のブランクキーの位置を識別することができる。ウェアラブルシステムは、オブジェクト認識装置708を使用してそのような識別を行うことができる。例えば、ウェアラブルシステムは、キーが物理的ラベルを有していない場合、キーをブランクキーとして識別することができる。ウェアラブルシステムはまた、加えて、またはその代替として、キーの形状または位置を考慮することができる。例えば、ウェアラブルシステムは、キーがキーボードの縁の近傍に位置し、キーが長い長方形形状を有することを認識することができる。本キーは、ラベルをその上に有していない場合があるが、ウェアラブルシステムは、それにもかかわらず、本キーが、スペースバーキーとして指定されているため、ブランクキーではないことを決定し得る。
ブロック1734では、ウェアラブルシステムは、コンテキスト情報に基づいて、ブランクキーに割り当てられるであろう仮想キーを決定することができる。例えば、図13A−13Cを参照して説明されるように、ウェアラブルシステムは、ブランクキーの場所に基づいて、キーボードまたはキーボードの一部と関連付けられたレイアウトまたは機能等の仕様を決定することができる。
ブロック1736では、ウェアラブルシステムは、機能とブランクキーの作動を関連付ける、命令を生成することができる。例えば、ブランクキーは、記号「+」に割り当てられてもよい。その結果、ブランクキーが押下されると、記号「+」は、頭部搭載型ディスプレイによって表示されてもよい。いくつかの実施形態では、複数の機能が、1つのブランクキーに割り当てられることができる。各機能は、ブランクキーを作動させる、手のジェスチャと関連付けられてもよい。例えば、1つのキーが、商標名記号
および著作権記号
の両方に割り当てられてもよい。キーが、タッチされると、商標名記号は、ウェアラブルシステムの中に入力されることができるが、キーが、押下されると、著作権記号が、入力されることができる。
ブロック1738では、ウェアラブルシステムはまた、仮想キーの画像をブランクキー上にレンダリングすることができる。本サンプル実施例では、ウェアラブルシステムは、仮想キーラベル「+」をブランクキー上に重畳することができる。キーが、複数の記号を割り当てられる場合、ウェアラブルシステムは、キーラベルの両方(例えば、商標名記号および著作権記号の両方)をキー上にレンダリングすることができる。加えて、または代替として、ウェアラブルシステムは、キーが作動される方法に基づいて、仮想キーラベルをレンダリングすることができる。例えば、キーがタッチされると、商標名記号が、示されることができるが、キーが押下されると、著作権記号が、示されることができる。ユーザが、キーをある方法で作動させると、ウェアラブルシステムは、焦点インジケータを提供することができ、これは、キーが作動される方法を示す。例えば、キーがタッチされると、ウェアラブルシステムは、商標名記号のサイズの増加を示すことができる。図15Bを参照して説明される例示的視覚的焦点インジケータに加え、またはその代替として、焦点インジケータはまた、例えば、触覚的または聴覚的フィードバック等の他のタイプのフィードバックを含むことができる。例えば、キーボードまたはウェアラブルシステムは、キーが作動される方法に基づいて、音を再生することができる(例えば、キーがタッチされると、ある音を再生し、キーが押下されると、別の音を再生する)。キーボードはまた、キーが作動される方法に応じて、触覚的フィードバックを提供することができる。例えば、キーボードは、キーが押下されると、振動を提供してもよく、キーがタッチされると、振動を提供しない。いくつかの実施形態では、焦点インジケータ(視覚的、触覚的、または聴覚的)は、各キーと異なり得る。例えば、スペースバーの作動は、ある音と関連付けられてもよい一方、数字キーの作動は、別の音と関連付けられてもよい。
随意のブロック1740では、ウェアラブルシステムは、ブランクキーの作動のインジケーションを受信することができる。インジケーションは、キーボードから受信されてもよい(例えば、有線または無線通信チャネルを介して)。インジケーションはまた、画像の分析に基づいて検出されてもよい。例えば、ウェアラブルシステムは、オブジェクト認識装置708を使用して、ユーザの手の位置を識別し、手位置とキーの位置を比較し、ユーザの手の位置がキーと一致するかどうかを決定することができる。作動を検出するために使用される画像は、複数のソースから生じてもよい。例えば、ウェアラブルシステムは、外向きに向いた結像システム内のカメラから入手された画像とともに、キーボードのカメラによって入手された画像を使用して、キーの作動を検出することができる。
随意のブロック1742では、ウェアラブルシステムは、ブランクキーに割り当てられる機能に基づいて、動作(例えば、ユーザインターフェース動作)を実施することができる。例えば、ブランクキーに割り当てられる機能が、数学演算(例えば、加算)と関連付けられる場合、ウェアラブルシステムは、適宜、ブランクキーが作動されると、数学演算を実施することができる。
本図における実施例は、ブランクキーを構成することを参照して説明されるが、ウェアラブルシステムはまた、機能または仮想ラベルを事前に定義された機能または物理的ラベルをすでに有するキーに割り当てることができる。例えば、ウェアラブルシステムは、スペースバーキーが押下されると、スペースバーキーが空のスペースを入力するようにすでに構成されているにもかかわらず、スライドバー機能をスペースバーキーに割り当てることができる。スライドバー機能の結果、ユーザが、スペースバーキーをスワイプすると、ウェアラブルシステムは、適宜、アプリケーションを開くまたは閉じることができる。別の実施例として、ウェアラブルシステムは、絵文字と関連付けられた機能およびアイコンのセットをキーキーボード上の文字のうちのいくつかに割り当てることができる。
さらにいくつかの状況では、1つのキーのために機能および画像を割り当てるのではなく、キーボードのセクションまたは仮想キーボードが、物理的キーボードに割り当てられてもよい。例えば、ウェアラブルシステムは、ユーザが物理的キーボードを見ると、物理的キーボードの上部にオーバーレイされるように、仮想キーボードを自動的に移動させることができる。
仮想キーボードとのUI相互作用の例示的プロセス
図17Bは、仮想キーボードをレンダリングし、それと相互作用する、例示的プロセスを図示する。プロセス1750は、本明細書に説明されるウェアラブルシステムによって実施されることができる。
ブロック1752では、ウェアラブルシステムは、ユーザの環境と関連付けられたコンテキスト情報にアクセスすることができる。例えば、ウェアラブルシステムは、例えば、ユーザの環境内の物理的または仮想オブジェクトのタイプおよび機能等のユーザの環境内の物理的または仮想オブジェクトと関連付けられた情報にアクセスすることができる。いくつかの実施形態では、ウェアラブルシステムは、ユーザの頭部姿勢または眼視線に基づいて、ユーザが現在相互作用している、または相互作用することを意図する標的オブジェクトを識別することができる。
ブロック1754では、ウェアラブルシステムは、ユーザの環境内の仮想キーボードを識別することができる。仮想キーボードは、ユーザの入力に基づいて識別されてもよい。例えば、ユーザは、仮想キーボードのニックネームを発話することができ、ウェアラブルシステムは、適宜、ニックネームに基づいて、仮想キーボードを識別することができる。別の実施例として、ウェアラブルシステムは、ユーザの眼視線方向または手のジェスチャ(例えば、仮想キーボードに向いている)に基づいて、仮想キーボードを識別することができる。仮想キーボードはまた、物理的キーボードに基づいて識別されることができる。例えば、仮想キーボードは、ユーザの環境内の物理的キーボードのエミュレーションであってもよい。さらに、仮想キーボードは、ユーザの環境内のオブジェクトに基づいて識別されてもよい。例えば、ウェアラブルシステムは、ユーザの環境内のオブジェクトの全部(または大部分)と相互作用するために好適な仮想キーボードにアクセスすることができる。ウェアラブルシステムが、標的オブジェクトを識別した場合、ウェアラブルシステムは、標的オブジェクトと関連付けられた、または標的オブジェクトとの相互作用のために好適な仮想キーボードを識別することができる。
ブロック1756では、ウェアラブルシステムは、コンテキスト情報に基づいて、仮想キーボードの仕様を決定することができる。仕様は、仮想キーボード上のキーのレイアウトおよび機能を含んでもよい。例えば、ブロック1754において識別された仮想キーボードは、ブランク仮想キーボードテンプレートを含んでもよい。ブロック1756において決定された仕様は、ブランク仮想キーボードテンプレート内のキーのいくつか(または全部)に割り当てられるであろう機能または仮想キーラベルを規定することができる。加えて、本明細書に説明されるように、仮想キーボードのレイアウトはまた、変化してもよい。例えば、ブランク仮想キーボードテンプレート内のキーは、ユーザがあるオブジェクトと相互作用しているとき、数字を割り当てられてもよい。しかし、ユーザが別のオブジェクトと相互作用するとき、ウェアラブルシステムは、キーを文字に動的に再割当することができる。
ブロック1758では、ウェアラブルシステムは、少なくとも部分的に、仕様1758に基づいて、仮想キーボードをユーザの環境内にレンダリングすることができる。例えば、ウェアラブルシステムは、仮想キーラベルを仮想キーボード上にレンダリングすることができる。ウェアラブルシステムはまた、仮想キーのサブセットをレンダリングすることができる。例えば、ブランク仮想キーボードテンプレートが、1つを上回る仮想オブジェクトと相互作用するために使用される場合、ウェアラブルシステムは、ある仮想オブジェクトと一般に併用される第1のセットの仮想キーをレンダリングする一方、別の仮想オブジェクトと一般に併用される第2のセットの仮想キーをレンダリングすることができる。
随意のブロック1760では、ウェアラブルシステムは、仮想キーボードの作動のインジケーションを受信することができる。仮想キーボードはまた、種々の作動方法をサポートすることができる。例えば、仮想キーボードは、タッチまたはスワイプするジェスチャをサポートすることができる。ウェアラブルシステムは、外向きに向いた結像システムによって入手された画像に基づいて、ユーザの手の位置を追跡し、ユーザの手の位置が1つ以上の仮想キーと交差するかどうかを決定することができる。仮想キーボードはまた、押下ジェスチャをサポートすることができる。例えば、ウェアラブルシステムは、仮想キーと関連付けられたユーザの空間内の体積を規定することができる。ユーザの指が、体積の中に貫通すると、ウェアラブルシステムは、ユーザが仮想キーを作動させたことを決定することができる。
随意のブロック1762では、ウェアラブルシステムは、少なくとも部分的に、仮想キーボードの作動に基づいて、ユーザインターフェース動作を実施することができる。いくつかの例示的ユーザインターフェース動作は、作動されたキー(または仮想キーボード)のための焦点インジケータを提供するステップ、仮想オブジェクトを移動または選択するステップ、仮想または物理的オブジェクトと関連付けられた仮想メニューを開くステップ等を含んでもよい。仮想キーボードの作動はまた、ユーザインターフェース動作以外のコマンドを実施させることができる。例えば、仮想キーボードの作動は、ウェアラブルシステムに、テレビのチャンネルを変化させるための命令を生成させ、テレビに送信させてもよい。別の実施例として、仮想キーボードの作動は、ウェアラブルシステムに、MR場面からVR場面に切り替えさせてもよい。
実施例
いくつかの実施例では、システムは、仮想コンテンツをユーザの物理的環境内に提示するように構成される、ディスプレイシステムと、ユーザの物理的環境を結像するように構成される、外向きに向いた結像システムと、ディスプレイシステムおよび外向きに向いた結像システムと通信する、ハードウェアプロセッサであって、外向きに向いた結像システムによって入手された物理的環境の画像を分析し、画像の分析に基づいて、複数のキーを有する物理的キーボードを認識し、物理的キーボードと関連付けられたコンテキスト情報を決定し、少なくとも部分的に、コンテキスト情報に基づいて、物理的キーボードのための仕様を決定し、少なくとも部分的に、仕様に基づいて、物理的キーボードの少なくとも一部の機能を動的に構成し、少なくとも部分的に、仕様に基づいて、仮想キーラベルのレンダリング場所を決定し、ディスプレイシステムに、仮想キーラベルを決定されたレンダリング場所にレンダリングするように命令するようにプログラムされる、ハードウェアプロセッサとを備える。
先行実施例のいずれかでは、仮想コンテンツは、拡張または複合現実コンテンツのうちの少なくとも1つを含んでもよい。
先行実施例のいずれかでは、画像を分析するために、ハードウェアプロセッサは、オブジェクト認識装置を実行し、物理的キーボードの視覚的特性に基づいて、物理的キーボードを識別するようにプログラムされてもよい。
先行実施例のいずれかでは、視覚的特性は、物理的キーボードの表面の形状または物理的キーボードのラベルのうちの少なくとも1つを含んでもよい。
先行実施例のいずれかでは、外向きに向いた結像システムは、FOVを有する世界カメラを備えてもよく、FOVは、所与の時間において世界カメラによって観察される、物理的環境の一部を含んでもよく、物理的キーボードを認識するために、ハードウェアプロセッサは、物理的キーボードの少なくとも一部がFOV内にあることを検出するようにプログラムされてもよい。
先行実施例のいずれかでは、仕様は、複数のキーのレイアウトまたは複数のキーの機能のうちの少なくとも1つを含んでもよい。
先行実施例のいずれかでは、物理的キーボードのための仕様を決定するために、ハードウェアプロセッサは、画像の分析に基づいて、物理的キーボードのモデルを決定し、モデルの仕様を記憶するデータベースにアクセスし、仕様を読み出すようにプログラムされてもよい。
先行実施例のいずれかでは、複数のキーのうちの少なくとも1つのキーは、容量タッチセンサを有してもよい。
先行実施例のいずれかでは、コンテキスト情報は、物理的キーボードの位置または物理的キーボードの配向のうちの少なくとも1つを含んでもよい。
先行実施例のいずれかでは、物理的キーボードの一部は、ブランクキーを含んでもよく、物理的キーボードの少なくとも一部の機能を動的に構成するために、ハードウェアプロセッサは、コマンド機能をブランクキーに割り当てるようにプログラムされてもよく、コマンド機能は、システムに、ユーザインターフェース動作を実施させる。
先行実施例のいずれかでは、仮想キーラベルのレンダリング場所は、物理的キーボードの一部内のブランクキーの場所と一致してもよく、ハードウェアプロセッサは、ディスプレイシステムに、ピクセルスティックを使用して、仮想キーラベルをブランクキー上に重畳させるように命令するように構成されてもよい。
いくつかの実施例では、方法は、ユーザの3次元(3D)物理的環境内の複数のキーを有するキーボードの一部を識別するステップと、少なくとも部分的に、コンテキスト情報に基づいて、キーボードの一部のための仕様を決定するステップと、少なくとも部分的に、仕様に基づいて、キーボードの一部の機能を動的に構成するステップと、少なくとも部分的に、仕様に基づいて、キーボードの一部における仮想キーラベルのレンダリング場所を決定するステップと、ディスプレイシステムに、仮想キーラベルを決定されたレンダリング場所にレンダリングするように命令するステップとを含む。
先行実施例のいずれかでは、キーボードは、物理的キーボードを含んでもよい。
先行実施例のいずれかでは、物理的キーボードは、複数の着脱可能セクションから組み立てられてもよい。
先行実施例のいずれかでは、物理的キーボードは、ユーザの3D物理的環境内の仮想画面と関連付けられてもよく、仮想画面は、物理的キーボードの作動に応答して、ユーザインターフェース機能を実施するように構成されてもよい。
先行実施例のいずれかでは、キーボードは、仮想キーボードを含んでもよく、仮想キーボードは、ユーザの環境の表面上にレンダリングされる。
先行実施例のいずれかでは、表面は、物理的キーボードの表面を含んでもよい。
先行実施例のいずれかでは、キーボードを識別するステップは、キーボードと通信し、キーボードの識別情報を取得するステップと、コンテキスト情報に基づいて、複数のキーボードの中からキーボードを選択するステップと、キーボードの画像に基づいて、キーボードを認識するステップとのうちの少なくとも1つを含んでもよい。
先行実施例のいずれかでは、画像は、頭部搭載型デバイスの外向きに向いた結像システム、室内カメラ、または物理的キーボードに結合されたカメラのうちの少なくとも1つによって入手されてもよい。
先行実施例のいずれかでは、キーボードの一部は、ブランクキーを含んでもよい。
先行実施例のいずれかでは、コンテキスト情報は、キーボード、ユーザ、または3D物理的環境のうちの少なくとも1つと関連付けられてもよい。
いくつかの実施例では、コンピュータ可読媒体は、ハードウェアプロセッサによって読み取られると、ハードウェアプロセッサに、ユーザの3次元(3D)物理的環境内の複数のキーを有するキーボードの一部を識別するステップと、少なくとも部分的に、コンテキスト情報に基づいて、キーボードの一部のための仕様を決定するステップと、少なくとも部分的に、仕様に基づいて、キーボードの一部の機能を動的に構成するステップと、少なくとも部分的に、仕様に基づいて、キーボードの一部における仮想キーラベルのレンダリング場所を決定するステップと、ディスプレイシステムに、仮想キーラベルを決定されたレンダリング場所にレンダリングするように命令するステップとを含む、方法を実施させる、命令を備えてもよい。
先行実施例のいずれかでは、キーボードは、物理的キーボードを含んでもよい。
先行実施例のいずれかでは、物理的キーボードは、複数の着脱可能セクションから組み立てられてもよい。
先行実施例のいずれかでは、物理的キーボードは、ユーザの3D物理的環境内の仮想画面と関連付けられてもよく、仮想画面は、物理的キーボードの作動に応答して、ユーザインターフェース機能を実施するように構成される。
先行実施例のいずれかでは、キーボードは、仮想キーボードを含んでもよく、仮想キーボードは、ユーザの環境の表面上にレンダリングされる。
先行実施例のいずれかでは、表面は、物理的キーボードの表面を含んでもよい。
先行実施例のいずれかでは、キーボードを識別するステップは、キーボードと通信し、キーボードの識別情報を取得するステップと、コンテキスト情報に基づいて、複数のキーボードの中からキーボードを選択するステップと、キーボードの画像に基づいて、キーボードを認識するステップとのうちの少なくとも1つを含んでもよい。
先行実施例のいずれかでは、画像は、頭部搭載型デバイスの外向きに向いた結像システム、室内カメラ、または物理的キーボードに結合されたカメラのうちの少なくとも1つによって入手されてもよい。
先行実施例のいずれかでは、キーボードの一部は、ブランクキーを含んでもよい。
先行実施例のいずれかでは、コンテキスト情報は、キーボード、ユーザ、または3D物理的環境のうちの少なくとも1つと関連付けられてもよい。
いくつかの実施例では、システムは、仮想コンテンツをユーザの物理的環境内に提示するように構成される、ウェアラブルデバイスのディスプレイシステムと、ユーザの姿勢と関連付けられたデータを入手するように構成される、姿勢センサと、ディスプレイシステムおよび姿勢センサと通信する、ハードウェアプロセッサであって、姿勢に基づいて、ユーザの環境内のオブジェクトと相互作用するためのインジケーションを受信し、オブジェクトとの相互作用のためのキーボードを識別し、キーボードと関連付けられた仮想コンテンツを決定し、ユーザの環境内の仮想コンテンツのレンダリング場所を決定し、キーボードの作動を検出し、キーボードの実行に基づいて、コマンドの実行を命令するようにプログラムされる、ハードウェアプロセッサとを備える。
先行実施例のいずれかでは、姿勢センサは、ウェアラブルデバイスの世界カメラ、ウェアラブルデバイスの外部のカメラ、または眼カメラのうちの少なくとも1つを含んでもよい。
先行実施例のいずれかでは、姿勢は、頭部姿勢、眼視線、または手のジェスチャのうちの少なくとも1つを含んでもよい。
先行実施例のいずれかでは、ユーザの環境内のオブジェクトと相互作用するためのインジケーションは、頭部姿勢または眼視線のうちの少なくとも1つを含んでもよく、オブジェクトは、レイキャスティングを使用して識別されてもよい。
先行実施例のいずれかでは、キーボードは、少なくとも、ユーザの姿勢またはオブジェクトと関連付けられた特性のうちの1つに基づいて、識別されてもよい。
先行実施例のいずれかでは、キーボードは、物理的キーボードを含んでもよく、仮想コンテンツは、物理的キーボードの複数のキーのための仮想キーラベルを含んでもよい。
先行実施例のいずれかでは、キーボードは、仮想キーボードを含んでもよく、仮想コンテンツは、キーボードの仮想キーを含んでもよい。
先行実施例のいずれかでは、オブジェクトは、物理的オブジェクトを含んでもよく、キーボードは、仮想キーボードを含んでもよく、キーボードは、物理的オブジェクト上にレンダリングされてもよい。
先行実施例のいずれかでは、ハードウェアプロセッサはさらに、姿勢の変化を検出し、姿勢の変化に基づいて、仮想コンテンツのレンダリング場所を更新するようにプログラムされてもよい。
先行実施例のいずれかでは、キーボードは、物理的キーボードであってもよく、仮想コンテンツのレンダリング場所を更新するために、ハードウェアプロセッサは、第1のセットのキー上にレンダリングされたキーラベルを第2のセットのキーに移動させるようにプログラムされてもよい。
先行実施例のいずれかでは、キーボードの作動を検出するために、ハードウェアプロセッサは、キー押下と関連付けられた音、ユーザの手のジェスチャと関連付けられた画像、またはキーボードから受信された無線信号のうちの少なくとも1つと関連付けられたデータを分析するようにプログラムされてもよい。
先行実施例のいずれかでは、各キーは、音を割り当てられてもよく、キーの作動は、音を生成させる。
先行実施例のいずれかでは、ハードウェアプロセッサはさらに、別のオブジェクトとの別のユーザ相互作用の別のインジケーションを受信し、他のオブジェクトと関連付けられたコンテキスト情報に基づいて、キーボードを動的に再構成するようにプログラムされてもよい。
いくつかの実施例では、方法は、ウェアラブルデバイスのディスプレイシステムを使用して、仮想コンテンツをユーザの物理的環境内に提示するステップと、姿勢センサを使用して、ユーザの姿勢と関連付けられたデータを入手するステップと、ハードウェアプロセッサを使用して、姿勢に基づいて、ユーザの環境内のオブジェクトと相互作用するためのインジケーションを受信するステップと、ハードウェアプロセッサを使用して、オブジェクトとの相互作用のためのキーボードを識別するステップと、ハードウェアプロセッサを使用して、キーボードと関連付けられた仮想コンテンツを決定するステップと、ハードウェアプロセッサを使用して、ユーザの環境内の仮想コンテンツのレンダリング場所を決定するステップと、ハードウェアプロセッサを使用して、キーボードの作動を検出するステップと、ハードウェアプロセッサを使用して、キーボードの実行に基づいて、コマンドの実行を命令するステップとを含む。
先行実施例のいずれかでは、姿勢センサは、ウェアラブルデバイスの世界カメラ、ウェアラブルデバイスの外部のカメラ、または眼カメラのうちの少なくとも1つを含んでもよい。
先行実施例のいずれかでは、姿勢は、頭部姿勢、眼視線、または手のジェスチャのうちの少なくとも1つを含んでもよい。
先行実施例のいずれかでは、ユーザの環境内のオブジェクトと相互作用するためのインジケーションは、頭部姿勢または眼視線のうちの少なくとも1つを含んでもよく、オブジェクトは、レイキャスティングを使用して識別されてもよい。
先行実施例のいずれかでは、キーボードは、ユーザの姿勢またはオブジェクトと関連付けられた特性のうちの少なくとも1つに基づいて、識別されてもよい。
先行実施例のいずれかでは、キーボードは、物理的キーボードを含んでもよく、仮想コンテンツは、物理的キーボードの複数のキーのための仮想キーラベルを含む。
先行実施例のいずれかでは、キーボードは、仮想キーボードであってもよく、仮想コンテンツは、キーボードの仮想キーを含んでもよい。
先行実施例のいずれかでは、オブジェクトは、物理的オブジェクトを含んでもよく、キーボードは、仮想キーボードを含んでもよく、キーボードは、物理的オブジェクト上にレンダリングされてもよい。
先行実施例のいずれかでは、本方法はさらに、ハードウェアプロセッサを使用して、姿勢の変化を検出するステップと、ハードウェアプロセッサを使用して、姿勢の変化に基づいて、仮想コンテンツのレンダリング場所を更新するステップとを含んでもよい。
先行実施例のいずれかでは、キーボードは、物理的キーボードであってもよく、仮想コンテンツのレンダリング場所を更新するステップは、ハードウェアプロセッサを使用して、第1のセットのキー上にレンダリングされたキーラベルを第2のセットのキーに移動させるステップを含んでもよい。
先行実施例のいずれかでは、キーボードの作動を検出するステップは、キー押下と関連付けられた音、ユーザの手のジェスチャと関連付けられた画像、またはキーボードから受信された無線信号のうちの少なくとも1つと関連付けられたデータを分析するステップを含んでもよい。
先行実施例のいずれかでは、各キーは、音を割り当てられてもよく、キーの作動は、音を生成させてもよい。
先行実施例のいずれかでは、本方法はさらに、ハードウェアプロセッサを使用して、別のオブジェクトとの別のユーザ相互作用の別のインジケーションを受信するステップ、ハードウェアプロセッサを使用して、他のオブジェクトと関連付けられたコンテキスト情報に基づいて、キーボードを動的に再構成するステップとを含んでもよい。
いくつかの実施例では、非一過性コンピュータ可読媒体は、ハードウェアプロセッサによって読み取られると、ハードウェアプロセッサに、ウェアラブルデバイスのディスプレイシステムを使用して、仮想コンテンツをユーザの物理的環境内に提示するステップと、姿勢センサを使用して、ユーザの姿勢と関連付けられたデータを入手するステップと、姿勢に基づいて、ユーザの環境内のオブジェクトと相互作用するためのインジケーションを受信するステップと、オブジェクトとの相互作用のためのキーボードを識別するステップと、キーボードと関連付けられた仮想コンテンツを決定するステップと、ユーザの環境内の仮想コンテンツのレンダリング場所を決定するステップと、キーボードの作動を検出するステップと、キーボードの実行に基づいて、コマンドの実行を命令するステップとを含む、方法を実施させる、命令を備えてもよい。
先行実施例のいずれかでは、姿勢センサは、ウェアラブルデバイスの世界カメラ、ウェアラブルデバイスの外部のカメラ、または眼カメラのうちの少なくとも1つを含んでもよい。
先行実施例のいずれかでは、姿勢は、頭部姿勢、眼視線、または手のジェスチャのうちの少なくとも1つを含んでもよい。
先行実施例のいずれかでは、ユーザの環境内のオブジェクトと相互作用するためのインジケーションは、頭部姿勢または眼視線のうちの少なくとも1つを含んでもよく、オブジェクトは、レイキャスティングを使用して識別されてもよい。
先行実施例のいずれかでは、キーボードは、少なくとも、ユーザの姿勢またはオブジェクトと関連付けられた特性のうちの1つに基づいて、識別されてもよい。
先行実施例のいずれかでは、キーボードは、物理的キーボードを含んでもよく、仮想コンテンツは、物理的キーボードの複数のキーのための仮想キーラベルを含んでもよい。
先行実施例のいずれかでは、キーボードは、仮想キーボードであってもよく、および仮想コンテンツは、キーボードの仮想キーを含んでもよい。
先行実施例のいずれかでは、オブジェクトは、物理的オブジェクトを含んでもよく、キーボードは、仮想キーボードを含んでもよく、キーボードは、物理的オブジェクト上にレンダリングされてもよい。
先行実施例のいずれかでは、コンピュータ可読媒体によって引き起こされる方法はさらに、姿勢の変化を検出するステップと、姿勢の変化に基づいて、仮想コンテンツのレンダリング場所を更新するステップとを含んでもよい。
先行実施例のいずれかでは、キーボードは、物理的キーボードであってもよく、仮想コンテンツのレンダリング場所を更新するステップは、第1のセットのキー上にレンダリングされたキーラベルを第2のセットのキーに移動させるステップを含んでもよい。
先行実施例のいずれかでは、キーボードの作動を検出するステップは、キー押下と関連付けられた音、ユーザの手のジェスチャと関連付けられた画像、またはキーボードから受信された無線信号のうちの少なくとも1つと関連付けられたデータを分析するステップを含んでもよい。
先行実施例のいずれかでは、各キーは、音を割り当てられてもよく、キーの作動は、音を生成させる。
先行実施例のいずれかでは、コンピュータ可読媒体によって引き起こされる方法はさらに、別のオブジェクトとの別のユーザ相互作用の別のインジケーションを受信するステップと、他のオブジェクトと関連付けられたコンテキスト情報に基づいて、キーボードを動的に再構成するステップとを含んでもよい。
物理的キーボードとのユーザの相互作用に対応する仮想キーボード機能性の実施例
図18−20は、本明細書に説明されるVR/AR/MRシステムのいくつかの実施形態が物理的キーボードとのユーザの相互作用に対応する仮想キーボード機能性を実装し得る方法を図示する。明細書のいずれかの場所に説明されるように、1つ以上の物理的キーボードまたは他の入力デバイスが、VR/AR/MRシステムと相互作用するためのユーザ入力を受信するために提供されてもよい。使用の間、物理的キーボードは、ユーザの視野外に位置し、非効率的キーボード使用、正しくないキーストロークをもたらし、および/またはユーザが、繰り返し、着目エリアから眼を逸らし、キーボードおよび/またはキーボードに対するユーザの手および指の場所を見ることを要求し得る。ある場合には、VR/AR/MRシステムによって表示されている仮想コンテンツは、部分的または完全に、キーボードのユーザのビューをブロックし、ユーザが物理的キーボード上のその手および指の場所を正確に決定することを妨げ得る。したがって、仮想キーボードまたは物理的キーボードを表す他の仮想画像が、VR/AR/MRシステムのディスプレイによって、ユーザに表示されてもよい。加えて、VR/AR/MRシステムのディスプレイは、物理的キーボードに対して位置付けられるユーザの手の表現および/または物理的キーボード上でユーザによって行われるキーストロークを示してもよい。これは、ユーザは、VR/AR/MRシステムの視野内において、物理的キーボードを見る必要なく、物理的キーボードとのその相互作用を知覚することができるように、リアルタイムで行われてもよい。
図18は、物理的キーボード1820とのユーザの相互作用に基づいて仮想キーボード機能性をVR/AR/MRシステムのディスプレイ上に実装するためのシステム1800を図示する。いくつかの実施形態では、物理的キーボードは、1つ以上の内蔵センサを含み、これは、物理的キーボードに対するユーザの手および/または指の場所に関する情報を検出することができる。これらの内蔵手場所センサは、例えば、容量タッチセンサ、光検出器、電気または機械的スイッチ、カメラ、マイクロホン等を含むことができる。他の実施形態では、手場所検出センサは、物理的キーボード1820の外部にあることができ、VR/AR/MRシステムまたは別個のデバイスと統合されてもよい。例えば、外部手場所検出センサ1830は、1つ以上のマイクロホンおよび/またはカメラを含むことができる。
外部手場所検出センサとしてのマイクロホンの実施例では、マイクロホンは、押下されているキーの音に基づいて、キー押下を検出するように構成されてもよい。いくつかの実施形態では、各キーは、押下されると、一意の音プロファイルを有し、キーをキーボード1820の他のキーから区別するように構成されてもよい。したがって、マイクロホンは、キー押下に対応する音を検出してもよく、システム1800は、マイクロホンから受信された出力を分析することに基づいて、押下されたキーを決定してもよい。
手および/または指場所はさらに、決定されたキー押下の場所に基づいて、計算されてもよい。外部手場所検出センサとしてのカメラの実施例では、1つ以上のカメラが、例えば、キーボードの上方から、キーボードの画像を捕捉するように整合および構成されてもよい。いくつかの実施形態では、1つ以上の基準マーカが、キーボード上に提供され、捕捉された画像に基づいて、手場所の決定を促進してもよい。例えば、複数の基準が、キーボードのキーの表面上に印刷される、または別様にそこに適用されてもよい。キーボードの画像が、分析されると、画像内で可視の基準は、ユーザの手によって被覆されていないキーボード上の場所を示すことができ、既知であるが、画像内で不可視である基準は、ユーザの手によって被覆されるキーボード上の場所を示すことができる。手場所検出センサは、いくつかの実施形態では、VR/AR/MRシステムと相互作用するための入力信号を提供するためにユーザによって使用される、物理的キーボードのキーと明確に異なることができる。物理的キーボード1820および手場所センサ1830は、VR/AR/MRシステムと通信可能に結合されることができる。
ディスプレイ1810は、例えば、本明細書に説明されるディスプレイデバイスのいずれかであることができる。いくつかの実施形態では、図18に示されるディスプレイ1800は、図2に示されるディスプレイ220であることができ、物理的キーボード1820および手場所センサ1830は、ディスプレイ220、ローカル処理およびデータモジュール260、および/または遠隔処理モジュール270と通信することができる。概して、ディスプレイ1810は、光をユーザの眼の中に投影し、画像コンテンツをユーザに表示するように構成される。本明細書に議論されるように、いくつかの実施形態では、ディスプレイ1810は、例えば、頭部搭載型ディスプレイ等のウェアラブルデバイスである。画像コンテンツをユーザに表示することに加え、ディスプレイ1810はさらに、投影された画像コンテンツが、その周囲物理的環境のユーザのビュー上に重畳される拡張現実または複合現実画像コンテンツとしてユーザに提示されるように、周囲物理的環境からの光がユーザの眼に通過することを可能にするように構成されることができる。他の実施形態では、ディスプレイ1810は、仮想現実ディスプレイであることができ、これは、ユーザに、周囲物理的環境のビューを提供しない。ディスプレイ1810は、データを、物理的キーボード1820、外部センサ1830、および/または任意の他のデータソース、例えば、インターネット、1つ以上の遠隔処理および/またはメモリモジュール、または同等物から受信するように構成される、1つ以上のプロセッサおよび/またはメモリユニットを含む、またはそれに通信可能に結合されることができる。
物理的キーボード1820は、ユーザからの入力を検出し、ユーザ入力を示す信号を生成するように構成される、複数のキー1822を含む。キー1822は、例えば、テキスト、記号、コマンド等をVR/AR/MRシステムに入力するために使用されることができる。物理的キーボード1820は、キー1822のうちの1つ以上のものが押下されるときにユーザによって行われる、キーストロークを検出することができる。物理的キーボード1820は、内部キーストローク検出機構を使用して、キーストロークを検出してもよい。これらは、例えば、機械的または電気的スイッチ、容量センサ等を含んでもよい。加えて、キー1822の一部または全部は、キー1822が押下されているかどうかから独立して、キー1822と接触するユーザの指を検出するように構成される、タッチセンサ1824を含んでもよい。例えば、タッチセンサ1824は、タッチを検出することが可能な容量タッチセンサまたは任意の他のセンサであることができる。物理的キーボードが、信号をキーストローク検出機構から受信すると、タッチセンサ1824、および/または手場所センサは、信号、データ、および/またはパラメータをVR/AR/MRシステムに提供することができ、これは、例えば、物理的キーボードに対して位置付けられるユーザの手または指、ユーザのキーストローク等を示す。
内蔵または外部の手場所センサ1830は、物理的キーボードに対するユーザの手または指の場所、または物理的キーボード1820上またはその近傍のユーザの手および/または指の外観、音、または他の側面を示す、情報を検出する。手場所センサ1830は、ディスプレイ1810と通信可能に結合されることができる。例えば、手場所センサ1830は、センサにおいて検出されたデータ(例えば、画像、音、位置信号等)、および/またはデータに基づいて決定されたパラメータ(例えば、手および/または指場所等)をディスプレイデバイス1810に送信するように構成されることができる。
図19は、ディスプレイ1810が、物理的キーボード1820に対応する仮想画像コンテンツ1840、物理的キーボードに対するユーザの手および/または指場所、および/またはユーザによって行われるキーストロークを示し得る方法の実施例である。図19に例示的に示される実施形態では、画像コンテンツ1840は、物理的キーボード1820に対応する仮想キーボード1842と、ユーザの手1828に対応する仮想手1846とを含む。仮想手1846の指1848は、ユーザの手1828の指1829によってタッチされている物理的キーボード1820のキー1822に対応する仮想キー1844をタッチしているように示される。本画像は、リアルタイムで更新され、物理的キーボード上でユーザによって行われるキーストロークを示すことができる。
図19の例示的実施形態に示される画像コンテンツ1840は、例えば、物理的キーボード1820およびユーザの手1828および指1829の真の外観の3次元表現として表示されてもよい。しかしながら、種々の実施形態では、物理的キーボード1820およびユーザの手1828および/または指1829を示す他の視覚的コンテンツも、使用されることができる。例えば、いくつかの実施形態では、仮想キーボード1842および/または仮想手1846は、物理的キーボード1820、手1828、および/または指1829の実際の外観の表現ではなく、キーボードおよび/または手の汎用画像として描写されることができる。別の実施例では、仮想キーボード1842および/または仮想手1846は、物理的キーボード1820、手1828、および/または指1829の2次元表現に簡略化されることができる。一実施例では、ユーザの指1829の場所は、単に、ユーザの指1829によってタッチされている物理的キー1822に対応する、仮想キーボード1842の仮想キー1844上に重畳されるドットとして表されることができるかまたは他の記号として表されることができる。
いくつかの実施形態では、記号(例えば、文字、数、句読点、および/または他の文字)は、仮想キーボード1840の仮想キー1844上に表示される。例えば、図19に示されるように、仮想キー1844は、標準的QWERTYキーボードと一致する記号を表示する。仮想キー1844上に表示される記号は、物理的キーボード1820のキー上に表示される記号と一致する、または異なることができる。例えば、物理的キーボードは、QWERTYキーボードレイアウトに従って文字および記号でマークされるキー1822を有してもよい一方、仮想キー1844は、Dvorak簡略化キーボード、アルファベット順、絵文字キーボード、標準的外国語キーボードレイアウト、または任意の他の所望のキーボードレイアウトと一致する配列で文字および記号を表示してもよい。さらなる実施形態では、物理的キーボード1820は、仮想キー1844のみがラベリングされるように、印刷記号を伴わずに、ブランクキー1822を有してもよい。
図20を参照すると、仮想キーボードコンテンツを生成および表示する例示的方法2000が、説明されるであろう。方法2000は、ブロック2010から開始し、キーボード情報が、VR/AR/MRシステムの処理コンポーネントによって受信される。キーボード情報は、物理的キーボードのタイプ、および/または、例えば、仮想キーボード上のキーの数、サイズ、形状、またはレイアウト等の表示されるべき仮想キーボードのタイプ、および/または仮想キーボードのキー上に表示されるべき記号に対応するデータを含むことができる。いくつかの実施形態では、キーボード情報を受信するステップは、例えば、物理的キーボード上のキーの数、形状、サイズ、またはレイアウト等の物理的キーボードと関連付けられた情報に基づいて、仮想キーボード情報ファイルを選択する、ダウンロードする、または別様に取得するステップを含むことができる。他の実施形態では、キーボード情報は、方法2000を実施するために、VR/AR/MRシステムの中に事前にプログラムされることができる。
ブロック2020では、仮想キーボード画像が、ブロック2010において受信されたキーボード情報に基づいて生成される。上記に説明されるように、仮想キーボード画像は、物理的キーボードに対応する2次元または3次元画像を含むことができる。いくつかの実施形態では、キーボード画像は、例えば、形状、色、キーサイズ、およびレイアウト、または同等物が物理的キーボードに合致する、物理的キーボードの実質的に正確な再現である。他の実施形態では、仮想キーボード画像が、物理的キーボードの忠実な描写ではなく、物理的キーボードの概略表現であることができるように、仮想キーボード画像は、見掛けサイズ、形状、キーサイズ、キー形状、キーレイアウト、色、または他の品質が物理的キーボードと異なることができる。いくつかの実施形態では、仮想キーボード画像は、インターネット等の外部ソースから取得されてもよく、および/またはディスプレイシステム内の事前にプログラムされたキーボード画像であってもよい。
ブロック2030では、情報が、手または指場所センサから受信される。ブロック2030は、ブロック2010および/または2020の前、後、または同時に、実施されることができる。手または指場所センサ情報は、内蔵キーボードセンサ(例えば、タッチセンサまたはキーストローク検出機構)および/または外部センサ(例えば、カメラ、マイクロホン、または同等物)によって取得される任意の情報を含むことができる。故に、受信されたセンサ情報は、物理的キーボードに対するユーザの手の場所、物理的キーボードに対するユーザの指のうちの1つ以上のものの場所、押下されているキーのセット、ユーザの手の指によってタッチされているキーのセット、またはディスプレイシステムのセンサから導出される他の情報を示すことができる。
ブロック2040では、仮想手または指場所画像が、ブロック2030において受信されたセンサ情報に基づいて生成される。手または指場所画像は、図19を参照して説明される描写等のユーザの手および/または指の1つ以上の描写を含んでもよい。一実施例では、受信されたセンサ情報は、タッチされている物理的キーボードのキーのサブセットのインジケーションを含み、生成された手または指場所画像は、ユーザの指によってタッチされている物理的キーボードのキーに対応する仮想キーボード画像内の各場所における円形または他の記号等のグラフィックを含む。別の実施例では、生成された手または指場所画像は、指先端が受信されたセンサ情報に示されるキー上に静置された状態の指を有する、手の3次元レンダリングを含む。センサ情報がさらに1つ以上の手場所を示す情報を含む、実施形態に関して、指に結び付けられる仮想手の場所が、センサ情報に基づいて決定されることができる。物理的キーボードのキーの上側表面上に位置する容量タッチセンサは、キー上の指の存在を検出することが可能であるが、キーをタッチしているユーザの手の指を決定することは不可能であり得ることを理解されたい。いくつかの実施形態では、ディスプレイシステムは、タッチセンサデータの組み合わせに基づいて、推定された手位置を決定するように構成されることができる。例えば、タッチセンサが、指が物理的キーボードのA、S、D、F、J、K、L、およびセミコロンキー上に静置していることを示す場合、ディスプレイシステムは、A、S、D、およびFキーが、左手の指の場所を表す一方、物理的キーボードのJ、K、L、およびセミコロンキーが、右手の指の場所を表すことを決定してもよい。
ブロック2050では、仮想キーボード画像および手または指場所画像が、ユーザに表示される。ディスプレイシステムは、ユーザに表示される合成画像が、仮想キーボードをタイプする仮想手を、物理的キーボード上のユーザの手の位置および運動と一致する位置に示すように現れるように、キーボード画像および手または指場所画像を組み合わせることができる。故に、ユーザに表示される合成画像は、ユーザが、物理的キーボードを見下ろす必要なく、物理的キーボード上のその指先端の場所を決定することを可能にすることができる。いくつかの実施形態では、方法2000は、ブロック2010および2030の一方または両方に戻り、さらなるキーボードおよび/またはセンサ情報を受信し、仮想キーボードおよび/または手/指場所画像を再生成することができる。例えば、いくつかの実施形態では、キーボード画像は、一定のままである一方、方法2000は、キーボードセンサおよび/またはディスプレイシステムの外部センサから受信されたリアルタイムまたは近リアルタイムで更新された情報に基づいて、手/指場所画像を継続的にまたは繰り返し再生成する。故に、ユーザ画像が、再生成および再表示されるにつれて、ユーザ画像は、物理的キーボード上のユーザの手の実際の移動と一致する、仮想キーボード上を移動およびタイプする動画化された手として、ユーザに現れ得る。
実施例
いくつかの実施例では、システムは、仮想現実、拡張現実、または複合現実コンテンツをユーザに提示するように構成される、ディスプレイと、物理的キーボードであって、入力をユーザから受信するように構成される1つ以上のキーと、物理的キーボードに対するユーザの手または指のうちの1つ以上のものの場所を示す出力を生産するように構成される1つ以上のセンサとを含む、物理的キーボードと、1つ以上のハードウェアプロセッサと、システムによって実行されると、システムに、1つ以上のセンサの出力に基づいて、物理的キーボードに対する1つ以上の手または指の場所を決定するステップと、ディスプレイに、物理的キーボードの第1の画像表現およびユーザの手または指のうちの1つ以上のものの場所の第2の画像表現を提示させるステップであって、第1の画像表現に対する第2の画像表現の場所は、物理的キーボードに対する1つ以上の手または指の場所を示す、ステップとを含む、動作を実施させる命令を記憶する、1つ以上のコンピュータ記憶媒体とを備える。
先行実施例のいずれかでは、1つ以上のセンサは、キー上に配置されるタッチセンサを含んでもよい。
先行実施例のいずれかでは、タッチセンサは、容量タッチセンサを含んでもよい。
先行実施例のいずれかでは、本システムはさらに、物理的キーボードの近傍のオブジェクトの場所を検出するように構成される、少なくとも1つのカメラを備えてもよい。
先行実施例のいずれかでは、第1の画像表現は、1つ以上の仮想キーを備える、仮想キーボードを含んでもよく、各仮想キーは、物理的キーボードのキーに対応する。
先行実施例のいずれかでは、複数の仮想キーはそれぞれ、物理的キーボードの対応するキーの機能を示す記号を含んでもよい。
先行実施例のいずれかでは、複数の仮想キーのうちの少なくとも1つの記号は、物理的キーボードの対応するキー上に表示される記号と異なってもよい。
先行実施例のいずれかでは、物理的キーボードのキーは、記号を含まなくてもよい。
先行実施例のいずれかでは、第2の画像は、1つ以上の指の視覚的表現を含んでもよい。
先行実施例のいずれかでは、システムはさらに、物理的キーボードに対するユーザの少なくとも1つの手の場所を決定するように構成されてもよく、第2の画像表現は、少なくとも1つの手の視覚的表現を含んでもよい。
先行実施例のいずれかでは、第2の画像は、少なくとも部分的に、1つ以上のセンサの出力に基づいて、リアルタイムまたは近リアルタイムで更新されてもよい。
いくつかの実施例では、システムは、仮想現実、拡張現実、または複合現実コンテンツをユーザに提示するように構成される、ディスプレイと、1つ以上のハードウェアプロセッサと、システムによって実行されると、システムに、システムと通信する物理的キーボードから、物理的キーボードに対するユーザの手または指のうちの1つ以上のものの場所を示す情報を受信するステップと、受信された情報に基づいて、物理的キーボードに対する1つ以上の手または指の場所を決定するステップと、ディスプレイに、物理的キーボードの第1の画像表現およびユーザの手または指のうちの1つ以上のものの場所の第2の画像表現を提示させるステップであって、第1の画像表現に対する第2の画像表現の場所は、物理的キーボードに対する1つ以上の手または指の場所を示す、ステップとを含む、動作を実施させる命令を記憶する、1つ以上のコンピュータ記憶媒体とを備える。
いくつかの実施例では、方法は、物理的キーボードに対するユーザの手または指のうちの1つ以上のものの場所を示す入力を1つ以上のセンサから受信するステップと、1つ以上のセンサの入力に基づいて、物理的キーボードに対する1つ以上の手または指の場所を決定するステップと、ディスプレイに、物理的キーボードの第1の画像表現およびユーザの手または指のうちの1つ以上のものの場所の第2の画像表現を提示させるステップであって、第1の画像表現に対する第2の画像表現の場所は、物理的キーボードに対する1つ以上の手または指の場所を示す、ステップとを含む。
先行実施例のいずれかでは、1つ以上のセンサは、物理的キーボードのキー上に配置されるタッチセンサを含んでもよい。
先行実施例のいずれかでは、タッチセンサは、容量タッチセンサを含んでもよい。
先行実施例のいずれかでは、本方法はさらに、カメラからの画像データに基づいて、物理的キーボードの近傍のオブジェクトの場所を検出するステップを含んでもよい。
先行実施例のいずれかでは、第1の画像表現は、1つ以上の仮想キーを伴う仮想キーボードを含んでもよく、各仮想キーは、物理的キーボードのキーに対応する。
先行実施例のいずれかでは、複数の仮想キーはそれぞれ、物理的キーボードの対応するキーの機能を示す記号を含んでもよい。
先行実施例のいずれかでは、複数の仮想キーのうちの少なくとも1つの記号は、物理的キーボードの対応するキー上に表示される記号と異なってもよい。
先行実施例のいずれかでは、物理的キーボードのキーは、記号を含まなくてもよい。
先行実施例のいずれかでは、第2の画像表現は、1つ以上の指の視覚的表現を含んでもよい。
先行実施例のいずれかでは、本方法はさらに、物理的キーボードに対するユーザの少なくとも1つの手の場所を決定するステップを含んでもよく、第2の画像表現は、少なくとも1つの手の視覚的表現を含んでもよい。
先行実施例のいずれかでは、第2の画像表現は、少なくとも部分的に、1つ以上のセンサの出力に基づいて、リアルタイムまたは近リアルタイムで更新されてもよい。
いくつかの実施例では、非一過性コンピュータ可読媒体は、ハードウェアプロセッサによって読み取られると、ハードウェアプロセッサに、物理的キーボードに対するユーザの手または指のうちの1つ以上のものの場所を示す入力を1つ以上のセンサから受信するステップと、1つ以上のセンサの入力に基づいて、物理的キーボードに対する1つ以上の手または指の場所を決定するステップと、ディスプレイに、物理的キーボードの第1の画像表現およびユーザの手または指のうちの1つ以上のものの場所の第2の画像表現を提示させるステップであって、第1の画像表現に対する第2の画像表現の場所は、物理的キーボードに対する1つ以上の手または指の場所を示す、ステップとを含む、方法を実施させる、命令を備える。
先行実施例のいずれかでは、1つ以上のセンサは、物理的キーボードのキー上に配置されるタッチセンサを含んでもよい。
先行実施例のいずれかでは、タッチセンサは、容量タッチセンサを含んでもよい。
先行実施例のいずれかでは、コンピュータ可読媒体によって引き起こされる方法はさらに、カメラからの画像データに基づいて、物理的キーボードの近傍のオブジェクトの場所を検出するステップを含んでもよい。
先行実施例のいずれかでは、第1の画像表現は、1つ以上の仮想キーを伴う仮想キーボードを含んでもよく、各仮想キーは、物理的キーボードのキーに対応する。
先行実施例のいずれかでは、複数の仮想キーはそれぞれ、物理的キーボードの対応するキーの機能を示す記号を含んでもよい。
先行実施例のいずれかでは、複数の仮想キーのうちの少なくとも1つの記号は、物理的キーボードの対応するキー上に表示される記号と異なってもよい。
先行実施例のいずれかでは、物理的キーボードのキーは、記号を含まなくてもよい。
先行実施例のいずれかでは、第2の画像表現は、1つ以上の指の視覚的表現を含んでもよい。
先行実施例のいずれかでは、コンピュータ可読媒体によって引き起こされる方法はさらに、物理的キーボードに対するユーザの少なくとも1つの手の場所を決定するステップを含んでもよく、第2の画像表現は、少なくとも1つの手の視覚的表現を含む。
先行実施例のいずれかでは、第2の画像表現は、少なくとも部分的に、1つ以上のセンサの出力に基づいて、リアルタイムまたは近リアルタイムで更新されてもよい。
触覚的フィードバックを伴うVR/AR/MRシステムの実施例
図21は、ウェアラブルディスプレイシステム60の例示的実施形態を図示する。ウェアラブルディスプレイシステム60は、ディスプレイ70と、ディスプレイ70の機能をサポートするための種々の機械的および電子的モジュールおよびシステムとを含む。ウェアラブルディスプレイシステム60は、本明細書のいずれかに説明されるものに類似する(例えば、図2に示されるような)VR/AR/MRシステムであることができる。
いくつかの実施形態では、入力デバイス10は、ウェアラブルディスプレイシステム60と相互作用し、かつ/またはそれを制御するために使用されることができる。例えば、入力デバイス10は、ユーザが、ディスプレイ70によって投影された画像と相互作用するため、および他の動作を実施するために、文字およびコマンドを入力するように動作させる、キーボードであってもよい。入力デバイス10は、有線導線または無線コネクティビティ等による、通信リンク16によって、ローカルデータ処理モジュール140に動作可能に結合されてもよい。ローカル処理およびデータモジュール140によって処理、キャッシュ、および記憶されるデータは、キーストローク等の入力デバイスから受信されたデータ、ディスプレイ70上に投影された画像を移動させ、別様にそれと相互作用するための制御入力等を含んでもよい。
いくつかの実施形態では、入力デバイス10は、1つ以上の触覚的フィードバックコンポーネント15を含んでもよい。触覚的フィードバックコンポーネント15は、入力デバイス10内で使用され、ウェアラブルディスプレイシステム60と相互作用するとき、触覚的フィードバックをユーザのために提供してもよい。触覚的フィードバックコンポーネント15は、例えば、触覚的フィードバックをユーザに提供し、入力がウェアラブルディスプレイシステム60によって受信されたことを示してもよい。いくつかの実施形態では、触覚的フィードバックコンポーネント15は、力、振動、または運動を生成してもよく、これは、入力デバイス10に付与され、ユーザによって知覚可能である。例えば、入力デバイス10は、キーボードであってもよく、触覚的フィードバックコンポーネント15は、キーボードのキーまたは局所的領域とのユーザ相互作用に応答して、キーボードまたはその局所的領域を振動させてもよい。
いくつかの実施形態では、複数の触覚的フィードバックコンポーネント15が、入力デバイス10に提供されてもよい。そのような実施形態では、触覚的フィードバックコンポーネント15はそれぞれ、それぞれ、所与の触覚的フィードバックコンポーネント15と関連付けられた、またはそれに結合される、入力デバイス10の別個の領域またはエリア内に局所的振動または移動を生じさせてもよい。例えば、複数の触覚的フィードバックコンポーネント15は、それぞれ、キーボード入力デバイス10の異なるキーまたはキーのグループと関連付けられるように提供されてもよい。したがって、各触覚的フィードバックコンポーネント15は、触覚的応答(例えば、振動または移動)を関連付けられたキーまたはキーのグループに付与してもよい。
触覚的フィードバックコンポーネント15は、異なるタイプのユーザ相互作用に応答して反応するように構成可能であってもよい。例えば、上記に説明されるように、触覚的フィードバックコンポーネント15は、ユーザ入力ユーザ相互作用(例えば、キーストローク)に応答して、ユーザ入力デバイス10全体またはその局所的部分を通して振動を生産してもよい。別の実施例では、触覚的フィードバックコンポーネント15は、所与のキーまたは仮想入力要素との所与の近接度内でユーザの手が検出されると、局所的フィードバック応答を生産してもよい。したがって、ユーザの手が、キーに近接して検出される(例えば、適切な配向またはキーを検索している)場合、所与のキーと関連付けられた表面のエリアは、フィードバック応答を被り、ユーザがキーを識別することを補助し得る。いくつかの実施形態では、近接ユーザ相互作用と関連付けられたフィードバック応答は、あまり顕著ではないように、入力ユーザ相互作用より小さい大きさおよび/または周波数を有してもよい。いくつかの実施形態では、フィードバック応答は、ユーザが所望の入力要素のより近くに移動するにつれて増加されてもよい(例えば、フィードバック応答をより顕著にするように、大きさが、増加される、または周波数が、増加される)。他の構成も、可能性として考えられる。
触覚的フィードバックコンポーネント15は、入力デバイス10上に搭載される、またはその中に封入され、入力デバイス10に付与される振動を生成するように構成されてもよい。触覚的フィードバックコンポーネント15は、リンク12aによって、入力デバイス10に動作可能に結合されてもよい。いくつかの実装では、電気回路リンク12aは、フィードバック応答を生成するために、電気信号を触覚的フィードバックコンポーネント15内に生産するための電気電圧源を含む、またはそれに接続される。代替として、または組み合わせて、触覚的フィードバックコンポーネント15は、通信リンク12bによって、例えば、有線導線または無線コネクティビティ等によって、ローカル処理およびデータモジュール140に動作可能に結合されてもよい。触覚的フィードバックデバイスは、それぞれ、通信リンク12aおよび12bを介して、制御信号(本明細書では、「フィードバック信号」とも称される)を入力デバイス10および/またはローカルデータおよび処理モジュール140の一方または両方から受信してもよい。制御信号は、時として、本明細書では、触覚的フィードバックパラメータとも称される、触覚的フィードバックの量(例えば、大きさ、振幅、および/または周波数)を示す、データを含んでもよい。
いくつかの実施形態では、触覚的フィードバックコンポーネント15は、下記に説明されるように、所望のフィードバック応答を示すフィードバックパラメータ(例えば、力または振動の強度および方向)を含む、制御またはフィードバック信号を受信してもよい。いくつかの実施形態では、応答は、振動の大きさおよび/または周波数に基づいてもよい。異なるタイプのユーザ相互作用は、異なる触覚的フィードバック応答と関連付けられてもよい。例えば、キーボード上のキーストロークは、連続キーストロークとしてユーザによって知覚され得る、所与の大きさおよび周波数の局所的振動に対応してもよい。別の実施例として、ユーザ相互作用は、キーの押下を含んでもよく、これは、触覚的応答を入力デバイス10全体に対して生じさせ得る。いくつかの実施形態では、所望の触覚的フィードバック応答およびユーザ相互作用の関連付けは、非一過性データ記憶装置(例えば、ローカル処理およびデータモジュール140または遠隔データリポジトリ160)内に記憶されてもよい。例えば、関連付けは、検出されたユーザ相互作用に応答してローカルデータ処理モジュール140によってアクセス可能なルックアップ−テーブル(LUT)として記憶されてもよい。
いくつかの実装では、触覚的フィードバックデバイス15は、ディスプレイ上のイベントに応答して振動してもよい。例えば、表示されるオブジェクトは、別の表示されるオブジェクトまたは実世界オブジェクトと相互作用してもよく、本相互作用は、入力デバイス10に付与される触覚的フィードバックに対応してもよい。例えば、ウェアラブルディスプレイシステム60は、仮想オブジェクトをビデオゲームの一部として投影するために使用されてもよく、ゲーム内のアクションは、触覚的フィードバックを入力デバイス内に生産するための制御信号に変換されてもよい。
触覚的フィードバックコンポーネント15は、例えば、偏心回転質量モータ、リニア共振アクチュエータ、ピエゾ電子機器、または他の変換器であってもよい。触覚的フィードバックコンポーネント15は、電気回路に動作可能に結合され、電源に接続されてもよい。コントローラは、制御信号に基づいて、電源に、電流または電圧を触覚的フィードバックコンポーネント15に印加させ、振動を生成させてもよい。例えば、偏心回転質量モータが使用される場合、電流が、モータに印加され、軸外質量を回転させ、振動を生じさせてもよい。電流の量およびデューティサイクルは、振動の大きさおよび周波数を制御し得る。したがって、制御信号は、所望のフィードバック応答のために触覚的フィードバックデバイスに印加されるべき電流または電圧を示し得る。具体的実施例の触覚的フィードバックコンポーネント15が、説明されたが、他の構成も、可能性として考えられる。例えば、リニア共振アクチュエータの音声コイルは、そこに提供される電気信号に基づいて、同様に制御されてもよい。したがって、非一過性データ記憶装置内に記憶される触覚的フィードバック応答は、触覚的フィードバックコンポーネントに印加されるための電気信号を示し得る。
図22は、触覚的通信をウェアラブルディスプレイシステム(例えば、図21のウェアラブルディスプレイシステム60)のユーザに提供するための例証的プロセスフロー2200である。プロセスフロー2200は、上記に説明されるように、入力デバイスとのユーザ相互作用に応答して触覚的通信をユーザに提供する、実施例を対象とする。プロセスフロー2200は、ハードウェア(例えば、図21のウェアラブルディスプレイシステム)によって実施されてもよい。プロセスフロー2200は、ローカルデータおよび処理モジュール140の論理デバイスに動作可能に結合される非一過性データ記憶装置内に記憶される命令によってプログラムされる、ローカルデータおよび処理モジュール140によって実装されることができる。別の実施形態では、ローカルデータおよび処理モジュール140は、遠隔データリポジトリ160に動作可能に接続されるローカル処理モジュール140内の論理デバイスによって実行される遠隔処理モジュール150を介して、プロセスフロー2200を実装してもよい。
ブロック2210では、プロセスフロー2200は、触覚的フィードバックシステムがアクティブ化されることを決定してもよい。1つ以上の実施形態では、ユーザは、単に、触覚的フィードバックシステムをオンにしてもよい。または、他の実施形態では、触覚的フィードバックシステムは、デフォルトでアクティブであってもよく、ユーザは、触覚的フィードバックシステムをオフにすることを決定してもよい。ローカルデータおよび処理モジュール140は、触覚的フィードバックシステムがアクティブであることを示す信号を受信してもよい。
ブロック2220では、プロセスフロー2200は、入力デバイスを検出してもよい。上記に説明されるように、入力デバイスは、キーボード等の入力デバイス10であってもよい。1つ以上の実施形態では、入力デバイスを検出するステップは、入力デバイスのためのウェアラブルディスプレイシステムの動作構成または環境を監視するステップを含んでもよい。これは、例えば、外向きに向いたカメラを使用して、ユーザの正面の環境の画像を捕捉し、その中の入力デバイスを識別するように行われることができる。または、別の実施例では、ウェアラブルディスプレイシステムは、接続が、例えば、有線または無線通信リンク16を通して、入力デバイスと確立されたことを認識し得る。別の実施形態では、ユーザは、入力デバイスの存在を示すウェアラブルディスプレイシステムの機能を実行してもよい(例えば、キーボードが接続されたことを示す入力を選択する)。
ブロック2230では、プロセスフロー2200は、入力デバイスタイプまたは構成(例えば、実または仮想キーボード、ビデオゲームコントローラ等)を決定してもよい。入力デバイスタイプは、ブロック2220においてデバイスを検出するために使用されるものと類似手段(例えば、外向きに向いたカメラ、通信リンク、およびユーザ識別)を通して識別されてもよい。入力デバイスは、例えば、無線通信プロトコル(例えば、Bluetooth(登録商標)、ZigBee等)を通して、ウェアラブルディスプレイシステムとペアリングしてもよく、キーボードは、ハンドシェイクプロトコルを実行し、接続を確立し、識別データをウェアラブルディスプレイシステムと交換する。決定された入力デバイスタイプに基づいて、ウェアラブルディスプレイシステムは、予期されるユーザ相互作用のタイプおよび入力デバイス内の触覚的フィードバックコンポーネントの構成を決定することが可能であり得る。入力デバイスタイプはまた、異なる動作パラメータおよび構成を要求し得る、入力デバイス内の触覚的フィードバックコンポーネントの具体的タイプを識別してもよい。
いくつかの実施形態では、入力デバイスタイプは、ユーザ相互作用のデータ構造およびフィードバック信号と関連付けられてもよい。例えば、第1の入力デバイス(例えば、キーボード)は、ユーザ相互作用およびフィードバック信号の第1のリストと関連付けられてもよい一方、第2の入力デバイス(例えば、ゲームコントローラ)は、第2のものと関連付けられてもよい。データ構造は、ウェアラブルディスプレイデバイスまたは入力デバイス内に記憶されてもよい。さらに、種々のタイプのキーボード(例えば、文字キーボード、絵文字キーボード、数字キーボード等)等の類似タイプの異なる入力デバイスが、異なるユーザ相互作用およびフィードバック信号と関連付けられてもよい。したがって、ウェアラブルディスプレイシステムは、入力デバイスが実行することが可能である所望の触覚的フィードバック信号を伝送するように、ユーザ相互作用およびフィードバック信号ペアリングの正しいデータ構造を読み出すことが可能であり得る。これは、ウェアラブルディスプレイシステムが、例えば、触覚的フィードバックコンポーネントを含有する入力デバイスの局所的領域およびこれらのコンポーネントが実行することが可能である電圧および電流を把握することを可能にし得る。
プロセスフロー2200のブロック2240では、ウェアラブルディスプレイシステムは、随意に、入力デバイスに近接するユーザを検出してもよい。例えば、ウェアラブルディスプレイシステムは、入力デバイス内のセンサ(例えば、近接度または慣性センサ)または外向きに向いたカメラを通して、ユーザが近接しており、したがって、入力デバイスを使用することを意図することを検出してもよい。これは、所望のユーザ相互作用の結果ではない入力デバイスとの相互作用を検出する結果を限定し得る。
プロセスフロー2200のブロック2250では、ウェアラブルディスプレイシステムまたは入力デバイスは、例えば、相互作用を示す信号を受信することによって、相互作用が生じたかどうかを決定することができる。例えば、相互作用は、近接ユーザ相互作用、入力ユーザ相互作用、または他の仮想または実オブジェクトと相互作用する1つ以上の表示される仮想オブジェクトの相互作用を含んでもよい。相互作用が、生じていない場合、プロセスフローは、ブロック2240に戻り、検出可能相互作用を継続して監視する。しかしながら、相互作用が、検出される場合、入力デバイスまたはウェアラブルディスプレイシステムは、相互作用を特性評価する相互作用信号を伝送してもよい。例えば、相互作用がユーザ相互作用である場合、信号内のデータは、タッチが生じた場所(例えば、キー)およびウェアラブルディスプレイシステムがタッチに応答して反応する方法(例えば、表示される仮想オブジェクトが修正される方法)を含んでもよい。仮想相互作用(例えば、仮想オブジェクトがディスプレイ内の他のオブジェクト(実または仮想)と相互作用する)の場合、ウェアラブルディスプレイシステムは、入力デバイスを介してユーザに触覚的に通信され、没入型のエンターテインメント体験を向上させるための相互作用を決定してもよい。
ブロック2260では、プロセスフロー2200は、ブロック2250において受信された信号に基づいて、相互作用タイプを決定する。例えば、データ記憶装置は、入力デバイスおよび/またはウェアラブルディスプレイシステムから受信されたデータに基づいて識別可能なユーザ相互作用タイプの分類を含んでもよい。または、受信されたデータは、それ自体内でユーザ相互作用を識別してもよい。ユーザ相互作用は、上記に説明されるように、キーストローク、選択された数字、文字、機能、画像、ディスプレイデバイスによって表示される画像の意図される効果等を識別してもよい。ユーザ相互作用は、入力デバイスのタイプ(例えば、ブロック2230)およびユーザが入力デバイス上で選択した場所または要素に基づいてもよい。
ブロック2270では、プロセスフロー2200は、ブロック2260の決定された相互作用タイプに基づいて、触覚的フィードバックパラメータを読み出す。ローカルデータおよび処理モジュール140は、所望のフィードバック応答を表す複数のフィードバックパラメータを記憶するデータベースにアクセスするようにプログラムされてもよい。フィードバックパラメータは、上記に説明されるように、所与のユーザ相互作用のために所望される触覚的フィードバック応答の大きさおよび周波数を定義してもよい。したがって、近接ユーザ相互作用は、所望の大きさおよび周波数に対応してもよい一方、入力ユーザ相互作用は、異なる大きさおよび/または周波数と関連付けられる。同様に、異なる入力ユーザ相互作用は、異なる大きさおよび周波数と関連付けられてもよい。別の実施形態では、フィードバックパラメータはまた、入力デバイスタイプおよび/または触覚的フィードバックコンポーネントのタイプに基づいてもよい。
ブロック2280では、プロセスフロー2200は、触覚的フィードバック信号を入力デバイスに伝送する。触覚的フィードバック信号は、触覚的フィードバックパラメータを含んでもよい。入力デバイスは、プロセスフロー2300に関連して下記に説明されるように、触覚的フィードバック信号を利用して、所望の触覚的フィードバック応答を生成してもよい。フィードバック信号を伝送後、プロセスフローは、ブロック2250に戻り、将来的相互作用を監視する。
図23は、触覚的通信をウェアラブルディスプレイシステム(例えば、図21のウェアラブルディスプレイシステム60)のユーザに提供するための例証的フローチャートのプロセスフロー2300である。プロセスフロー2300は、上記に説明されるように、ユーザ相互作用に応答して触覚的通信をユーザに提供する、入力デバイスの実施例を対象とする。プロセスフロー2300は、ハードウェア(例えば、図21の入力デバイス10および/または触覚的フィードバックデバイス15)によって実施されてもよい。プロセスフローは、1つ以上のプロセッサの論理デバイスに動作可能に結合される非一過性データ記憶装置内に記憶される命令によってプログラムされる、入力デバイス10の1つ以上のハードウェアプロセッサによって実装されることができる。別の実施形態では、入力デバイスは、データ記憶装置に動作可能に接続されるローカル処理モジュール140内の論理デバイスによって実行されるローカルデータおよび処理モジュール140を介して、プロセスフロー2300を実装してもよい。
ブロック2310では、プロセスフロー2300は、触覚的フィードバックシステムがアクティブ化されることを決定してもよい。例えば、入力デバイスは、始動に応じて、デフォルトでアクティブ化されてもよい。別の実施例では、触覚的フィードバックシステムは、接続が、例えば、有線または無線通信リンク16を通して、入力デバイスと確立されると、アクティブ化されてもよい。接続は、例えば、ハンドシェイクプロトコルを通したデータの交換を含んでもよく、入力デバイスは、図22の2230に関連して上記に説明されるように、識別情報を伝送してもよい。識別情報はまた、その中の触覚的フィードバックコンポーネントの識別およびコンポーネントのための動作パラメータを含んでもよい。いくつかの実施形態では、識別情報は、予期されるユーザ相互作用および触覚的フィードバックコンポーネントのフィードバック応答能力の関連付けを含んでもよい。
ブロック2320では、プロセスフロー2300は、タッチまたはユーザ相互作用を検出する。例えば、入力デバイスは、デバイスの入力要素に印加される押下または力を介して、入力ユーザ相互作用を検出してもよい。別の実施例では、入力デバイスはまた、上記に説明されるように、近接ユーザ相互作用を検出してもよい。
ブロック2330では、プロセスフロー2300は、ユーザ相互作用を示すユーザ相互作用信号を伝送する。ユーザ相互作用信号は、図22に関連して説明されるような使用のための通信リンク16を経由して、ウェアラブルディスプレイシステムに伝送されてもよい。
ブロック2280に関連して上記に説明されるように、フィードバック信号が、入力デバイスに伝送され、ブロック2340では、フィードバック信号が、入力デバイスによって受信される。信号は、通信リンク16を経由して伝送されてもよい。上記に説明されるように、フィードバック信号は、ブロック2320において検出されたユーザ相互作用と関連付けられた所望のフィードバック応答の大きさおよび/または周波数を示すデータを含んでもよい。いくつかの実施形態では、フィードバック信号は、例えば、上記に説明されるように、仮想相互作用がウェアラブルディスプレイデバイスにおいて検出されると、ブロック2320におけるユーザ相互作用を検出するステップから独立して受信されてもよい。
ブロック2350では、プロセスフロー2300は、ブロック2340において受信された触覚的フィードバック信号に基づいて、触覚的フィードバック応答を生成する。種々の実施形態では、入力デバイスのコントローラは、フィードバック信号を受信および処理し、その中に含まれるフィードバックパラメータを読み出してもよい。フィードバックパラメータは、触覚的フィードバックコンポーネントに適用されてもよい。例えば、フィードバックパラメータは、1つ以上の触覚的フィードバックコンポーネントに印加し、所望のフィードバック応答を生産するための電流および/または電圧を定義してもよい。入力デバイスは、電流をそこに取り付けられる触覚的フィードバックコンポーネントに印加するように構成される電圧源を伴う、電気回路を含んでもよい。触覚的フィードバックパラメータに基づいて、電源は、所望のデューティサイクルを伴って、所与の大きさの電流を印加し、入力デバイスを通して所望の振動を生産するように構成されてもよい。プロセッサはまた、局所的フィードバック応答を生産するように、電流を印加するための局所的領域(例えば、触覚的フィードバックコンポーネントの識別されたグループ)を識別するように構成されてもよい。ユーザ相互作用場所および関連付けられた触覚的フィードバックコンポーネントのマッピングは、プロセッサにアクセス可能なデータ記憶装置内に記憶されてもよい。触覚的フィードバック応答を生成後、プロセスフローは、ブロック2320に戻り、将来的ユーザ相互作用を監視する。
実施例
いくつかの実施例では、頭部搭載型ディスプレイ(HMD)は、フレームと、フレームによってサポートされ、画像をユーザの眼に投影するように構成される、投影光学系と、HMDと動作可能に接続される入力デバイスとの相互作用を検出するためのセンサと、命令を記憶するように構成される、非一過性データ記憶装置と、非一過性データ記憶装置に動作可能に結合され、命令によって、センサから、ユーザ相互作用を示す信号を受信し、信号に基づいて、ユーザ相互作用のタイプを決定し、触覚的フィードバック信号を入力デバイスに伝送し、触覚的フィードバック信号は、入力デバイスを通してユーザに通信可能な触覚的応答を生成するための1つ以上のパラメータを含むように構成される、少なくとも1つのハードウェアプロセッサとを備える。
先行実施例のいずれかでは、入力デバイスは、触覚的フィードバックコンポーネントを含んでもよい。
先行実施例のいずれかでは、パラメータは、触覚的応答の大きさおよび周波数を示すデータを含んでもよい。
先行実施例のいずれかでは、パラメータは、触覚的フィードバックコンポーネントに供給されるべき電流および電圧のうちの少なくとも1つを示してもよい。
先行実施例のいずれかでは、触覚的フィードバックコンポーネントは、偏心回転質量モータ、リニア共振アクチュエータ、および圧電アクチュエータのうちの少なくとも1つを含んでもよい。
先行実施例のいずれかでは、入力デバイスは、キーボードであってもよい。
先行実施例のいずれかでは、センサは、フレーム上に配置される外向きに向いたカメラを含んでもよく、ディスプレイデバイスとのユーザ相互作用を検出するように構成されてもよい。
先行実施例のいずれかでは、外向きに向いたカメラは、複数の画像をHMDの正面から捕捉するように構成されてもよく、少なくとも1つのハードウェアプロセッサはさらに、複数の画像に基づいて、ユーザ相互作用を決定するように構成されてもよい。
先行実施例のいずれかでは、ユーザ相互作用のタイプは、入力デバイスのキーの押下、入力デバイスのコンポーネントの移動、および入力デバイスとの相互作用のうちの少なくとも1つを含んでもよい。
先行実施例のいずれかでは、非一過性データ記憶装置は、複数のユーザ相互作用のタイプおよび触覚的フィードバック信号を記憶するように構成されてもよく、各ユーザ相互作用のタイプは、1つ以上のパラメータのうちの1つと関連付けられる。
先行実施例のいずれかでは、少なくとも1つのハードウェアプロセッサはさらに、ユーザ相互作用のタイプに基づいて、1つ以上のパラメータを読み出すように構成されてもよく、フィードバック応答は、ユーザ相互作用のタイプに対応する。
いくつかの実施例では、方法は、センサから、入力デバイスを介したウェアラブルディスプレイシステムとのユーザ相互作用を示す信号を受信するステップと、信号に基づいて、ユーザ相互作用のタイプを決定するステップと、触覚的フィードバック信号を入力デバイスに伝送するステップであって、触覚的フィードバック信号は、入力デバイスを通してユーザに通信可能な触覚的応答を生成するための1つ以上のパラメータを含む、ステップとを含む。
先行実施例のいずれかでは、入力デバイスは、触覚的フィードバックコンポーネントを含んでもよい。
先行実施例のいずれかでは、パラメータは、触覚的応答の大きさおよび周波数を示すデータを含んでもよい。
先行実施例のいずれかでは、パラメータは、触覚的フィードバックコンポーネントに供給されるべき電流および電圧のうちの少なくとも1つを示してもよい。
先行実施例のいずれかでは、触覚的フィードバックコンポーネントは、偏心回転質量モータ、リニア共振アクチュエータ、および圧電アクチュエータのうちの少なくとも1つを含んでもよい。
先行実施例のいずれかでは、入力デバイスは、キーボードであってもよい。
先行実施例のいずれかでは、センサは、ウェアラブルディスプレイシステム上に配置され、ユーザ相互作用を検出するように構成される、外向きに向いたカメラを備えてもよい。
先行実施例のいずれかでは、外向きに向いたカメラは、複数の画像をウェアラブルディスプレイシステムの正面から捕捉するように構成されてもよく、本方法はさらに、複数の画像に基づいて、ユーザ相互作用を決定するステップを含んでもよい。
先行実施例のいずれかでは、ユーザ相互作用のタイプは、入力デバイスのキーの押下、入力デバイスのコンポーネントの移動、および入力デバイスとの相互作用のうちの少なくとも1つを含んでもよい。
先行実施例のいずれかでは、本方法はさらに、複数のユーザ相互作用のタイプおよび触覚的フィードバック信号を記憶するステップを含んでもよく、各ユーザ相互作用のタイプは、1つ以上のパラメータのうちの1つと関連付けられる。
先行実施例のいずれかでは、本方法はさらに、ユーザ相互作用のタイプに基づいて、1つ以上のパラメータを読み出すステップを含んでもよく、フィードバック応答は、ユーザ相互作用のタイプに対応する。
いくつかの実施例では、非一過性コンピュータ可読媒体は、ハードウェアプロセッサによって読み取られると、ハードウェアプロセッサに、センサから、入力デバイスを介したウェアラブルディスプレイシステムとのユーザ相互作用を示す信号を受信するステップと、信号に基づいて、ユーザ相互作用のタイプを決定するステップと、触覚的フィードバック信号を入力デバイスに伝送するステップであって、触覚的フィードバック信号は、入力デバイスを通してユーザに通信可能な触覚的応答を生成するための1つ以上のパラメータを含む、ステップとを含む、方法を実施させる、命令を備える。
先行実施例のいずれかでは、入力デバイスは、触覚的フィードバックコンポーネントを含んでもよい。
先行実施例のいずれかでは、パラメータは、触覚的応答の大きさおよび周波数を示すデータを含んでもよい。
先行実施例のいずれかでは、パラメータは、触覚的フィードバックコンポーネントに供給されるべき電流および電圧のうちの少なくとも1つを示してもよい。
先行実施例のいずれかでは、触覚的フィードバックコンポーネントは、偏心回転質量モータ、リニア共振アクチュエータ、および圧電アクチュエータのうちの少なくとも1つを含んでもよい。
先行実施例のいずれかでは、入力デバイスは、キーボードであってもよい。
先行実施例のいずれかでは、センサは、ウェアラブルディスプレイシステム上に配置され、ユーザ相互作用を検出するように構成される、外向きに向いたカメラを備えてもよい。
先行実施例のいずれかでは、外向きに向いたカメラは、複数の画像をウェアラブルディスプレイシステムの正面から捕捉するように構成されてもよく、本方法はさらに、複数の画像に基づいて、ユーザ相互作用を決定するステップを含んでもよい。
先行実施例のいずれかでは、ユーザ相互作用のタイプは、入力デバイスのキーの押下、入力デバイスのコンポーネントの移動、および入力デバイスとの相互作用のうちの少なくとも1つを含んでもよい。
先行実施例のいずれかでは、コンピュータ可読媒体によって引き起こされる方法はさらに、複数のユーザ相互作用のタイプおよび触覚的フィードバック信号を記憶するステップを含んでもよく、各ユーザ相互作用のタイプは、1つ以上のパラメータのうちの1つと関連付けられる。
先行実施例のいずれかでは、コンピュータ可読媒体によって引き起こされる方法はさらに、ユーザ相互作用のタイプに基づいて、1つ以上のパラメータを読み出すステップを含んでもよく、フィードバック応答は、ユーザ相互作用のタイプに対応する。
ユーザ入力デバイスと仮想モニタとの間の例示的協調
頭部搭載型ディスプレイ(HMD)等のウェアラブルディスプレイシステムは、物理的ユーザ入力デバイス(例えば、キーボード)等のコンパニオンデバイスと協働するように構成されてもよい。HMDおよび物理的ユーザ入力デバイスがともに協働することが可能であるために(例えば、情報を無線で交換するため)、コンパニオンデバイスおよびHMDは、最初に、相互にペアリングされる必要があり得る。ペアリング後、ウェアラブルディスプレイシステムは、仮想モニタをユーザに示すことができる。仮想モニタは、例えば、AR画像データがモニタの外観および機能をシミュレートするように表示される、HMDの視野のサブ部分であることができる。仮想モニタおよび仮想モニタに示されるコンテンツの場所は、物理的ユーザ入力デバイスの場所に基づく、および/またはユーザ入力デバイスの中への入力に基づくことができる。例えば、仮想モニタは、物理的キーボードの近傍に示されることができる。仮想モニタの場所は、物理的ユーザ入力デバイスの場所に基づいて決定されることができる。仮想モニタの場所は、ユーザに対するその相対的物理的場所が変化するにつれて、物理的ユーザ入力デバイスの新しい場所に基づいて更新されることができる。別の実施例として、物理的ユーザ−入力デバイスへの入力は、仮想モニタに示されるコンテンツの変化をもたらし得る。本開示は、そのような仮想モニタ−ユーザ入力デバイス連携のためのシステムおよび方法を提供する。
図24は、ウェアラブル頭部搭載型ディスプレイ(HMD)システム、関連付けられた物理的キーボード、およびHMDシステムのディスプレイ上に示される仮想モニタ間の例示的相互作用を図式的に図示する。HMDシステム2404は、物理的キーボード2408またはある他のタイプの物理的ユーザ入力デバイス(例えば、タッチパッド)等のコンパニオンデバイスを認証することができる。物理的キーボード2408に関して、ユーザは、物理的キーを押下し、押下されたキーに対応する信号を生成することができる。押下されたキーに対応する信号は、次いで、HMDシステムに伝送されることができ、これは、次いで、信号に対応するアクションを実施することができる。例えば、アクションは、仮想モニタ上に、押下されたキーに対応する文字、数、または記号を表示し得る。
HMDシステム2404および物理的キーボード2408は、例えば、無線周波数(RF)通信チャネル2412(例えば、WiFi、Bluetooth(登録商標)等)を経由して、無線で通信することができる。
HMDシステム2404は、カメラ等の外向きに向いた画像捕捉デバイスを含むことができ、これは、HMDシステム2404のユーザを囲繞する環境の画像を捕捉することができる。ユーザの視野(FOV)は、物理的キーボード2408を含むことができる。ユーザの環境の画像はまた、物理的キーボード2408を含むことができる。HMDシステム2404は、画像を分析することによって、ユーザのFOV内の物理的キーボード2408の存在を決定することができる。HMDシステム2404はまた、コンピュータビジョン技法を使用して、物理的キーボード2408の場所を決定することができる。物理的キーボード2408の場所に基づいて、HMDシステム2404は、仮想モニタ2416の場所を決定し、仮想モニタ2416を決定された場所に表示することができる。
仮想モニタは、HMDシステム2404の視野の一部に対応し得る。キーボード2408からのユーザ入力は、視野のその部分に示されることができる。いくつかの実施形態では、物理的キーボード2408の作動は、ユーザインターフェース動作を仮想モニタ上で実施させることができる。例えば、ウェアラブルシステムは、仮想モニタ2416を視野内の物理的キーボード2408の近傍に現れるように提示することができる。いくつかの実施形態では、視野内の物理的キーボード2408の検出された場所と仮想モニタに対応する画像データが視野内に示される場所との間には、固定された空間関係が存在する。例えば、視野内の物理的キーボード2408の場所が変化する場合、仮想モニタの表示される位置もまた、対応する様式で変化されることができる。
HMDシステム2404は、ユーザの視野(FOV)内の内容に基づいて、レンダリング場所を更新する、または仮想モニタ2416が可視/不可視になるように設定することができる。例えば、HMDシステム2404は、物理的キーボード2408がユーザのFOV内にある場合、仮想モニタ2416を表示することができる。ユーザの頭部姿勢が変化し、物理的キーボード2408がもはやユーザのFOV内にない場合、HMDシステム2404は、仮想モニタ2416を隠蔽することができる。
仮想モニタ場所の例示的決定
図25は、少なくとも部分的に、物理的キーボードの場所に基づいて、仮想モニタ、仮想ディスプレイ、または仮想画面の場所を決定する、例示的プロセス2500を図示する。ブロック2504では、ウェアラブルディスプレイは、ウェアラブルシステムのユーザの物理的環境の第1の画像を受信することができる。物理的環境の第1の画像は、世界カメラの視野(FOV)に対応する。世界カメラの視野は、ユーザの視野の少なくとも一部を含むことができる。第1の画像は、ユーザのFOVが物理的キーボード等の入力デバイスを含むことを示すことができる。
ブロック2508では、ウェアラブルシステムは、第1の画像を使用して、ユーザの環境内の物理的キーボードの第1の場所/配向を決定することができる。ウェアラブルシステムは、物理的キーボードの第1の場所がユーザのFOV内にあることを決定することができる。ウェアラブルシステムは、本明細書に開示される1つ以上のコンピュータビジョン技法を利用して、オブジェクト認識装置を実装し、ユーザのFOV内の物理的キーボードの存在および物理的キーボードの第1の場所/配向を決定することができる。
いくつかの実施形態では、ウェアラブルシステムは、本明細書に開示される1つ以上のコンピュータビジョン技法を利用して、オブジェクト認識装置を実装し、物理的キーボードの視覚的特性(例えば、基準の場所)を使用して、物理的キーボードの第1の場所/配向を決定することができる。例えば、視覚的特性は、物理的キーボードの表面の形状または物理的キーボードと関連付けられた少なくとも1つのラベルのうちの少なくとも1つを含むことができる。物理的キーボードと関連付けられたラベルは、ユーザに不可視であることができる(例えば、ヒトの眼に不可視の染料を使用して作成された基準)。
いくつかの実施形態では、物理的キーボードの第1の場所/配向は、物理的キーボードの場所/配向センサを使用して決定された、物理的キーボードから受信されることができる。例えば、場所/配向センサは、全地球測位システム(GPS)ユニット、加速度計、慣性測定ユニット、ジャイロスコープ、コンパス、またはそれらの組み合わせを含んでもよい。いくつかの実施形態では、場所/配向センサが、自由度の第1の数(例えば、3自由度)を伴う場所/配向情報を提供するために使用されることができる。次いで、コンピュータビジョン技法が、自由度の数を増加させる(例えば、場所/配向情報を6自由度に増加させる)ように、キーボードのセンサからの場所/配向情報を補完するために使用されることができる。いくつかの実施形態では、例えば、キーボードのセンサは、3−軸加速度計であり得、これは、キーボードの配向を提供する。コンピュータビジョン技法は、次いで、3次元空間内のキーボードの位置を位置特定するために使用され得る。類似技法は、トーテムを含む、任意の物理的オブジェクトの場所/配向を決定するために使用されることができる。
いくつかの実施形態では、キーボードの第1の場所/配向は、画像内の物理的キーボードの近傍のユーザの手に基づいて決定されることができる。例えば、物理的キーボードと近接近して結び付けられるタイプ運動は、ユーザがタイプしていることを示すことができる。物理的キーボードの場所/配向は、したがって、手の場所に基づいて決定されることができる。
いくつかの実施形態では、物理的キーボード上のキーは、非均一であることができる。例えば、あるキーは、より大きいまたはより高くあることができる(例えば、物理的キーボードの基準平面に対して)。他のキーに対するこれらのキーの性質は、物理的キーボードの場所/配向を決定するために使用されることができる。いくつかの実施形態では、ウェアラブルシステムは、ユーザの眼の画像を受信し、ユーザの眼の視線方向を決定することができる。視線方向に基づいて、ウェアラブルシステムは、眼が物理的キーボードの特定のキー(例えば、より高いまたはより広いキー)を見ていることを決定することができる。特定のキーを見ることは、ウェアラブルシステムに対する特定のキーと関連付けられたコマンドであることができる。コマンドは、例えば、物理的キーボードに対して比較的に固定されて現れるように仮想モニタをロックするためのロックコマンドを有効または無効にすることができる。
ブロック2512では、ウェアラブルシステムは、少なくとも部分的に、物理的キーボードの第1の場所に基づいて、仮想モニタの第1のレンダリング場所/配向を決定することができる。例えば、第1のレンダリング場所/配向は、物理的キーボードの第1の場所/配向に対することができる。別の実施例として、第1のレンダリング場所/配向は、ユーザからの物理的キーボードの距離に基づくことができる。
ブロック2516では、ウェアラブルシステムは、少なくとも部分的に、仮想モニタの第1のレンダリング場所/配向およびサイズ選好に基づいて、仮想モニタのサイズを決定することができる。例えば、仮想モニタのサイズ選好が、より大きい場合、レンダリングされる仮想モニタのサイズは、より大きくなるべきである。別の実施例として、キーボードが、ユーザから比較的に遠い場合、仮想モニタのサイズは、相対的に言って、サイズが比例するように、比較的に小さくレンダリングされることができる。ブロック2520では、ウェアラブルシステムは、ウェアラブルシステムのディスプレイシステムに、決定されたサイズおよび配向を伴う仮想モニタを第1のレンダリング場所にレンダリングするように命令することができる。いくつかの実施形態では、ウェアラブルシステムは、物理的入力デバイス上に重畳されるようにあらわれるように、仮想入力デバイスを第1の場所にレンダリングすることができる。
例示的仮想モニタ場所更新
図26は、物理的キーボードの場所に基づいて仮想モニタのレンダリング場所/配向を修正する、例示的プロセス2600を図示する。例証的方法2600は、ブロック2604が上記に説明されるブロック2520に続いて生じるように、上記に議論されるプロセス2500の実装に続いて実装されてもよい。
ブロック2604では、ウェアラブルシステムは、物理的環境の第2の画像を受信することができる。物理的環境の第2の画像は、世界カメラの視野(FOV)に対応する。世界カメラの視野は、ユーザの視野の少なくとも一部を含むことができる。第2の画像は、ユーザのFOVが物理的キーボード等の入力デバイスを含むことを示すことができる。
ブロック2608では、ウェアラブルシステムは、第2の画像を使用して(および/またはキーボードの場所/配向センサからの情報を使用して)、ユーザの環境内の物理的キーボードの第2の場所/配向を決定することができる。ウェアラブルシステムは、物理的キーボードの第2の場所がユーザのFOV内にあることを決定することができる。ウェアラブルシステムは、本明細書に開示されるもの等の1つ以上のコンピュータビジョン技法を利用して、オブジェクト認識装置を実装し、ユーザのFOV内の物理的キーボードの存在および物理的キーボードの第1の場所/配向を決定することができる。
いくつかの実施形態では、ウェアラブルシステムは、本明細書に開示されるもの等の1つ以上のコンピュータビジョン技法を利用して、オブジェクト認識装置を実装し、物理的キーボードの視覚的特性(例えば、基準の場所)を使用して、物理的キーボードの第2の場所/配向を決定することができる。例えば、上記に述べられたように、視覚的特性は、物理的キーボードと関連付けられた少なくとも1つのラベルを備えることができる。しかし、本ブロックに説明されるラベルおよびブロック2508を参照して説明されるラベルは、第1のブロックがもはやウェアラブルシステムに可視ではなくなり得る、または第2のラベルがより明確に見られ得る位置に位置し得るため、異なり得る。
ブロック2612では、ウェアラブルシステムは、再レンダリング基準が満たされるかどうかを決定することができる。再レンダリング基準は、以下の要因のうちの1つ以上のものに基づくことができる。例えば、再レンダリング基準は、少なくとも部分的に、物理的キーボードの第1の場所/配向と物理的キーボードの第2の場所/配向との間の距離/変化に基づくことができる。距離/変化が、閾値を下回る場合、再レンダリング基準は、満たされ得ず、仮想モニタの場所/配向は、変化される必要がなく、したがって、再レンダリングを不必要にし得る。
再レンダリング基準は、少なくとも部分的に、物理的キーボードの配向センサを使用して決定された物理的キーボードの配向に基づくことができる。ユーザは、物理的キーボードを回転させ、物理的ラップトップの蓋の閉鎖をシミュレートすることによって、仮想モニタを「閉鎖」するその意図を示すことができる。ウェアラブルディスプレイは、入力デバイスの配向または入力デバイスの配向の変化を受信し、ディスプレイシステムに、少なくとも部分的に、入力デバイスの配向に基づいて、仮想ディスプレイのレンダリングを中止させることができる。物理的キーボードの配向は、加速度計、慣性測定ユニット、ジャイロスコープ、コンパス、またはそれらの組み合わせ等の物理的キーボードの配向センサを使用して決定されることができる。いくつかの実施形態では、ウェアラブルシステムは、少なくとも部分的に、入力デバイスのタイプに基づいて、仮想ディスプレイのレンダリングを中止することができる。例えば、ウェアラブルディスプレイシステムは、物理的キーボードが物理的ラップトップのキーボードを表す場合、回転されている物理的キーボードのインジケーションを受信後、仮想モニタの表示を中止することができる。しかしながら、ウェアラブルディスプレイシステムは、物理的キーボードがデスクトップコンピュータのキーボードを表す場合、同一インジケーションを受信後、仮想モニタの表示を中止しなくてもよい。より一般的には、キーボードは、手のジェスチャに類似するその移動に基づくコマンドと関連付けられることができる。キーボード移動に基づくコマンドのうちのいくつかは、再レンダリング基準(例えば、物理的キーボードがデスクトップキーボードに対応する場合、物理的キーボードを回転させる)を満たし得ず、したがって、仮想モニタの再レンダリングを要求しない。実施例として、物理的キーボードをユーザからより遠くに離れるように移動させることは、仮想モニタの再レンダリングまたはリサイズを要求し得ない。
ブロック2616では、ウェアラブルシステムは、少なくとも部分的に、物理的キーボードの第2の場所/配向に基づいて、仮想モニタの第2のレンダリング場所/配向を決定することができる。例えば、第2のレンダリング場所/配向は、物理的キーボードの第2の場所/配向に対することができる。別の実施例として、第2のレンダリング場所/配向は、ユーザからの物理的キーボードの距離に基づくことができる。ブロック2620では、ウェアラブルシステムは、ディスプレイシステムに、仮想モニタを第2のレンダリング場所/配向に再レンダリングするように命令することができる。ウェアラブルシステムは、少なくとも部分的に、仮想モニタの第2のレンダリング場所およびサイズ選好に基づいて、仮想モニタのサイズを決定することができる。例えば、仮想モニタのサイズ選好が、より大きい場合、レンダリングされる仮想モニタのサイズは、より大きくなるべきである。別の実施例として、キーボードが、ユーザから遠い場合、仮想モニタのサイズは、相互に対してサイズが比例するように、より小さくなることができる。
仮想モニタを使用した例示的レンダリング
図27は、図25における仮想モニタを使用して物理的キーボードによって受信された入力をレンダリングする、例示的プロセスを図示する。例証的方法2700は、ブロック2704が上記に説明されるブロック2520またはブロック2620に続いて生じるように、上記に議論されるプロセス2500または処理する2600の実装に続いて実装されてもよい。
ブロック2704では、ウェアラブルシステムが、物理的キーボードの第1のキーの作動のインジケーションを受信することができる。例えば、物理的キーボードは、直接的にまたは通信チャネルを通して間接的に、データをウェアラブルシステムに伝送し、文字「M」に対応する物理的キーボードの第1のキーがユーザによって作動または押下されたことを示すことができる。ブロック2708では、ウェアラブルシステムは、ディスプレイシステムに、第1のキーに対応する第1の印を第1の文字の第1の場所において仮想モニタ内に現れるようにレンダリングするように命令することができる。例えば、文字「M」に対応するキーが作動されたことのデータを受信後、ウェアラブルシステムは、文字「M」に対応する第1の印を表示することができる。第1の印は、文字「M」の表現(例えば、特定のフォントおよびサイズを伴う)を含有することができる。第1の印は、仮想モニタの特定の場所において仮想モニタ上に表示されることができる。いくつかの実施形態では、ユーザの視野(FOV)は、仮想モニタの一部のみを含む。したがって、第1の印の場所が、ユーザのFOV内にない場合、印は、仮想モニタ上に表示されなくてもよい。いくつかの実施形態では、キーの作動は、仮想オブジェクトまたは物理的オブジェクトを移動させる等の本明細書に説明されるユーザインターフェース動作に対応する。いくつかの実施形態では、第1のキーの作動は、物理的キーボードに対して比較的に固定されて現れるように仮想モニタをロックするためのロックコマンドを有効または無効にすることに対応する。
ブロック2712では、ウェアラブルシステムは、物理的キーボードの第2のキーが押下されたことのインジケーションを受信することができる。例えば、物理的キーボードは、データをウェアラブルシステムに伝送し、直接的にまたは通信チャネルを通して間接的に、文字「A」に対応する物理的キーボードの第2のキーがユーザによって作動または押下されたことを示すことができる。いくつかの実施形態では、第2のキーの作動は、物理的キーボードに対して比較的に固定されて現れるように仮想モニタをロックするためのロックコマンドを有効または無効にすることに対応する。
ブロック2716では、ウェアラブルシステムは、少なくとも部分的に、第1の文字の第1の場所に基づいて、第2のキーに対応する第2の印の第2の場所を決定することができる。例えば、文字「A」に対応する第2の印の第2の場所は、ユーザが仮想モニタ上に示される仮想ドキュメントにタイプしているとき、第1の印に隣接することができる。ブロック2720では、ウェアラブルシステムは、ディスプレイシステムに、第2のキーに対応する第2の印を第2の文字の第2の場所において仮想モニタ内に現れるようにレンダリングするように命令することができる。例えば、文字「A」に対応するキーが作動されたことのデータを受信後、ウェアラブルシステムは、文字「A」に対応する第2の印を表示することができる。第2の印は、文字「M」の表現(例えば、特定のフォントおよびサイズ)を含有することができる。第2の印は、仮想モニタの特定の場所において仮想モニタ上に表示されることができる。ブロック2712−2716は、繰り返されることができ、したがって、ウェアラブルシステムは、物理的キーボードを通して、入力をユーザから継続的に受信することができる。
実施例
いくつかの実施例では、システムは、仮想モニタをユーザに提示するように構成される、ディスプレイシステムと、ユーザの物理的環境を結像するように構成される、外向きに向いた結像システムと、ディスプレイシステムおよび外向きに向いた結像システムと通信する、ハードウェアプロセッサであって、外向きに向いた結像システムによって入手された物理的環境の第1の画像を受信し、第1の画像を使用して、ユーザの環境内の物理的キーボードの第1の場所を決定し、少なくとも部分的に、物理的キーボードの第1の場所に基づいて、仮想モニタの第1のレンダリング場所を決定し、少なくとも部分的に、仮想モニタの第1のレンダリング場所およびサイズ選好に基づいて、仮想モニタのサイズを決定し、仮想モニタは、ユーザインターフェース機能のために構成され、ディスプレイシステムに、決定されたサイズを伴う仮想モニタを第1のレンダリング場所にレンダリングするように命令するようにプログラムされる、ハードウェアプロセッサとを備える。
先行実施例のいずれかでは、ユーザの環境内の物理的キーボードの第1の場所を決定するために、ハードウェアプロセッサは、オブジェクト認識装置を実行し、物理的キーボードの視覚的特性を使用して、物理的キーボードの第1の場所を決定するようにプログラムされてもよい。
先行実施例のいずれかでは、視覚的特性は、物理的キーボードの表面の形状または物理的キーボードと関連付けられたラベルのうちの少なくとも1つを含んでもよい。
先行実施例のいずれかでは、物理的キーボードと関連付けられたラベルは、ユーザに不可視であってもよい。
先行実施例のいずれかでは、物理的キーボードと関連付けられたラベルは、物理的キーボード上にあってもよい。
先行実施例のいずれかでは、物理的キーボードと関連付けられたラベルは、物理的キーボードに対して固定され、物理的キーボードからオフセットされたラベル場所であってもよい。
先行実施例のいずれかでは、外向きに向いた結像システムは、視野(FOV)を有する世界カメラを備えてもよく、FOVは、所与の時間において世界カメラによって観察される、物理的環境の一部を含み、物理的キーボードの第1の場所を決定するために、ハードウェアプロセッサは、物理的キーボードの少なくとも一部がFOV内にあることを検出するようにプログラムされてもよい。
先行実施例のいずれかでは、ハードウェアプロセッサはさらに、物理的キーボードの第1のキーの作動のインジケーションを受信し、ディスプレイシステムに、第1のキーに対応する第1の印を第1の文字の第1の場所において仮想モニタ内に現れるようにレンダリングするように命令するようにプログラムされてもよい。
先行実施例のいずれかでは、ハードウェアプロセッサはさらに、物理的キーボードの第2のキーが押下されたことのインジケーションを受信し、少なくとも部分的に、第1の文字の第1の場所に基づいて、第2のキーに対応する第2の印の第2の場所を決定し、ディスプレイシステムに、第2のキーに対応する第2の印を第2の文字の第2の場所において仮想モニタ内に現れるようにレンダリングするように命令するようにプログラムされてもよい。
先行実施例のいずれかでは、ハードウェアプロセッサはさらに、物理的キーボードの第1のキーの作動のインジケーションを受信し、物理的キーボードの第1のキーの作動に基づいて、コマンドの実行を命令するようにプログラムされてもよい。
先行実施例のいずれかでは、コマンドは、システムに、ユーザインターフェース動作を実施させてもよい。
先行実施例のいずれかでは、コマンドは、物理的キーボードに対して比較的に固定されて現れるように仮想モニタをロックするためのロックコマンドを有効または無効にすることを含んでもよい。
先行実施例のいずれかでは、ハードウェアプロセッサはさらに、外向きに向いた結像システムによって入手された物理的環境の第2の画像を受信し、第2の画像を使用して、ユーザの環境内の物理的キーボードの第2の場所を決定し、再レンダリング基準が満たされるかどうかを決定し、少なくとも部分的に、物理的キーボードの第2の場所に基づいて、仮想モニタの第2のレンダリング場所を決定し、ディスプレイシステムに、仮想モニタを第2のレンダリング場所に再レンダリングするように命令するようにプログラムされてもよい。
先行実施例のいずれかでは、ハードウェアプロセッサはさらに、物理的キーボードの第1の場所と物理的キーボードの第2の場所との間の距離を決定するようにプログラムされてもよく、再レンダリング基準は、少なくとも部分的に、距離に基づいてもよい。
先行実施例のいずれかでは、再レンダリング基準は、少なくとも部分的に、物理的キーボードに対して比較的に固定されて現れるように仮想モニタをロックするためのロックコマンドに基づいてもよい。
先行実施例のいずれかでは、再レンダリング基準は、少なくとも部分的に、物理的キーボードの配向センサを使用して決定された物理的キーボードの配向に基づいてもよい。
先行実施例のいずれかでは、物理的キーボードの第3のキーの性質および物理的キーボードの第4のキーの対応する性質は、異なってもよい。
先行実施例のいずれかでは、第3のキーの性質は、物理的キーボードの基準平面に対する第3のキーの高さを含んでもよい。
先行実施例のいずれかでは、本システムはさらに、ユーザの眼を結像するように構成される、内向きに向いた結像システムを備えてもよく、ハードウェアプロセッサはさらに、ユーザの眼の画像を受信し、ユーザの眼の画像内のユーザの眼の視線方向を決定し、眼の視線方向を使用して、眼の画像内の眼が物理的キーボードの第3のキーを見ていることを決定し、少なくとも部分的に、物理的キーボードの第3のキーを見ている眼の画像内の眼に基づいて、コマンドの実行を命令するようにプログラムされる。
先行実施例のいずれかでは、コマンドは、物理的キーボードに対して比較的に固定されて現れるように仮想モニタをロックするためのロックコマンドを有効または無効にすることを含んでもよい。
いくつかの実施例では、方法は、仮想ディスプレイオブジェクトのユーザの環境内の入力デバイスの第1の場所を受信するステップと、少なくとも部分的に、入力デバイスの第1の場所に基づいて、仮想ディスプレイオブジェクトの第1のレンダリング場所を決定するステップと、少なくとも部分的に、第1のレンダリング場所に基づいて、仮想ディスプレイオブジェクトのサイズを決定するステップと、ディスプレイシステムに、仮想ディスプレイを第1のレンダリング場所にレンダリングさせるステップとを含む。
先行実施例のいずれかでは、入力デバイスは、物理的キーボードを含んでもよい。
先行実施例のいずれかでは、入力デバイスの第1の場所を受信するステップは、場所センサを使用して入力デバイスによって決定された入力デバイスの第1の場所を受信するステップを含んでもよい。
先行実施例のいずれかでは、場所センサは、全地球測位システム(GPS)ユニット、加速度計、慣性測定ユニット、ジャイロスコープ、コンパス、またはそれらの組み合わせを含んでもよい。
先行実施例のいずれかでは、入力デバイスの第1の場所を受信するステップは、ユーザの環境内の入力デバイスの画像を使用して、入力デバイスの第1の場所を決定するステップを含んでもよい。
先行実施例のいずれかでは、入力デバイスの第1の場所を受信するステップはさらに、画像内の入力デバイスの近傍のユーザの手の場所を使用して、入力デバイスの第1の場所を決定するステップを含んでもよい。
先行実施例のいずれかでは、本方法はさらに、ディスプレイシステムに、仮想入力デバイスを物理的入力デバイス上に重畳されて現れるように第1の場所にレンダリングさせるステップを含んでもよい。
先行実施例のいずれかでは、本方法はさらに、入力デバイスの配向を受信するステップと、ディスプレイシステムに、少なくとも部分的に、入力デバイスの配向に基づいて、仮想ディスプレイのレンダリングを中止させるステップとを含んでもよい。
先行実施例のいずれかでは、入力デバイスの配向を受信するステップは、配向センサを使用して決定された入力デバイスの配向を受信するステップを含んでもよく、配向センサは、加速度計、慣性測定ユニット、ジャイロスコープ、コンパス、またはそれらの組み合わせを含む。
先行実施例のいずれかでは、ディスプレイシステムに仮想ディスプレイのレンダリングを中止させるステップは、少なくとも部分的に、入力デバイスのタイプに基づいて、ディスプレイシステムに仮想ディスプレイのレンダリングを中止させるステップを含んでもよい。
いくつかの実施例では、非一過性コンピュータ可読媒体は、コンピュータによって読み取られると、コンピュータに、仮想ディスプレイオブジェクトのユーザの環境内の入力デバイスの第1の場所を受信するステップと、少なくとも部分的に、入力デバイスの第1の場所に基づいて、仮想ディスプレイオブジェクトの第1のレンダリング場所を決定するステップと、少なくとも部分的に、第1のレンダリング場所に基づいて、仮想ディスプレイオブジェクトのサイズを決定するステップと、ディスプレイシステムに、仮想ディスプレイを第1のレンダリング場所にレンダリングさせるステップとを含む、方法を実施させる、命令を備える。
先行実施例のいずれかでは、入力デバイスは、物理的キーボードを含んでもよい。
先行実施例のいずれかでは、入力デバイスの第1の場所を受信するステップは、場所センサを使用して、入力デバイスによって決定された入力デバイスの第1の場所を受信するステップを含んでもよい。
先行実施例のいずれかでは、場所センサは、全地球測位システム(GPS)ユニット、加速度計、慣性測定ユニット、ジャイロスコープ、コンパス、またはそれらの組み合わせを含んでもよい。
先行実施例のいずれかでは、入力デバイスの第1の場所を受信するステップは、ユーザの環境内の入力デバイスの画像を使用して、入力デバイスの第1の場所を決定するステップを含んでもよい。
先行実施例のいずれかでは、入力デバイスの第1の場所を受信するステップはさらに、画像内の入力デバイスの近傍のユーザの手の場所を使用して、入力デバイスの第1の場所を決定するステップを含んでもよい。
先行実施例のいずれかでは、コンピュータ可読媒体によって引き起こされる方法はさらに、ディスプレイシステムに、仮想入力デバイスを物理的入力デバイス上に重畳されて現れるように第1の場所にレンダリングさせるステップを含んでもよい。
先行実施例のいずれかでは、コンピュータ可読媒体によって引き起こされる方法はさらに、入力デバイスの配向を受信するステップと、ディスプレイシステムに、少なくとも部分的に、入力デバイスの配向に基づいて、仮想ディスプレイのレンダリングを中止させるステップとを含んでもよい。
先行実施例のいずれかでは、入力デバイスの配向を受信するステップは、配向センサを使用して決定された入力デバイスの配向を受信するステップを含んでもよく、配向センサは、加速度計、慣性測定ユニット、ジャイロスコープ、コンパス、またはそれらの組み合わせを含む。
先行実施例のいずれかでは、ディスプレイシステムに仮想ディスプレイのレンダリングを中止させるステップは、少なくとも部分的に、入力デバイスのタイプに基づいて、ディスプレイシステムに仮想ディスプレイのレンダリングを中止させるステップを含んでもよい。
アプリケーション画像データと関連付けられたユーザインターフェース画像データとの間の相対的位置付けの実施例
本明細書に開示されるウェアラブルVR/AR/MRシステムは、画像データがユーザから異なる距離に位置する複数の見掛け深度または深度平面のいずれかから生じるように現れるように、仮想画像データを表示することが可能である。これらのウェアラブルVR/AR/MRシステムでは、仮想画像データは、したがって、2次元(2−D)面積内ではなく、また、空間の3次元(3−D)体積内にも表示されることができる。仮想画像データが表示される空間の体積は、例えば、ボックスであることができるが、他の形状もまた、可能性として考えられる。ボックスは、ユーザの通視線に沿った方向(例えば、図28および29A−29Eに図示されるz−方向)における深度寸法および側方幅および高さ寸法(例えば、それぞれ、図28および29A−29Eに図示されるx−およびy−方向)を有することができる。
本明細書に説明されるVR/AR/MRシステムは、複数のソフトウェアアプリケーション(例えば、ゲームアプリケーション、マップアプリケーション、カレンダアプリケーション、メッセージングアプリケーション、クロックアプリケーション、ワード処理アプリケーション等)を同時に実行することが可能であるため、かつこれらのアプリケーションはそれぞれ、その独自の関連付けられた仮想画像データを有することができるため、各アプリケーションがその関連付けられた画像データを表示し得る、別個の非重複空間体積を定義することが有利であり得る。各アプリケーションは、画像データをその割り当てられた空間体積外に表示することが禁止され得る。このように、異なるアプリケーションのための画像データ間の衝突は、回避されることができる。
いくつかの実施形態では、2つのアプリケーションは、第1のアプリケーションがその画像データを表示する第1の空間体積と、関連する第2のアプリケーションがその画像データを表示する第2の空間体積との間の特定の相対的空間関係を提供することが望ましくあり得るように、関連される、または別様に関連付けられてもよい。2つの関連アプリケーションは、別個のアプリケーションであってもよい、またはアプリケーションのうちの一方は、他方によって制御されるサブアプリケーションであってもよい。関連アプリケーションの一例示的ペアは、親アプリケーション(例えば、ゲームアプリケーション、マップアプリケーション、カレンダアプリケーション、メッセージングアプリケーション、クロックアプリケーション、ワード処理アプリケーション等)と、ユーザが親アプリケーションと相互作用することを可能にする(例えば、テキスト、コマンドを入力する等によって)、仮想キーボードアプリケーション等のユーザインターフェースアプリケーションである。種々の例示的システムおよび方法は、親アプリケーションと仮想キーボードアプリケーション等の関連ユーザインターフェースアプリケーションの実施例を使用して本明細書に開示されるが、同一システムおよび方法は、任意の関連アプリケーションまたは別様に関連付けられたアプリケーションと併用されることができることを理解されたい。
親アプリケーションと関連付けられた画像データおよび親アプリケーションのためのユーザインターフェースと関連付けられた画像データを表示するために割り当てられた個別の非重複空間体積の相対的空間場所を決定するとき、以下の目的、すなわち、1)VR/AR/MRシステムが、複数の親アプリケーションおよび複数の対応するユーザインターフェースを同時に表示し得るため、どのユーザインターフェース(例えば、仮想キーボード)インスタンスがどの親アプリケーションとペアリングされるかのインジケーションをユーザに提供すること、2)親アプリケーションに対するユーザインターフェースの場所を決定するための位置付け論理が、ユーザが選定する親アプリケーションの任意の部分を視認することを可能にすることを確実にすること、3)可読性を向上させ得る深度距離をユーザインターフェースと親アプリケーションとの間に提供することのうちの1つ以上のものを満たすことが望ましくあり得る。
図28は、ウェアラブルVR/AR/MRシステム200によって表示されるようなユーザインターフェース画像データ2810と親アプリケーション画像データ2820との間の相対的空間関係の実施例を図示する。両アプリケーションは、ユーザ205によって装着されるVR/AR/MRシステム200によって実行および表示される。
空間体積2812は、ユーザインターフェース画像データ2810を表示するために確保される。いくつかの実施形態では、空間体積2812は、図示されるz−方向における深度寸法と、図示されるx−およびy−方向における側方寸法とを伴う、ボックスである。図示される実施形態では、ユーザインターフェースは、仮想キーボードであって、ユーザインターフェース画像データ2810は、ユーザインターフェースボックス2812の正面表面上に表示される。他の実施形態では、ユーザインターフェース画像データ2810は、同時であるかまたは異なる瞬間であるかにかかわらず、ユーザインターフェースボックス2812の付加的部分を占有し得る。
異なる空間体積2822は、親アプリケーション画像データ2820を表示するために確保される。いくつかの実施形態では、空間体積2822はまた、図示されるz−方向における深度寸法と、図示されるx−およびy−方向における側方寸法とを伴う、ボックスである。図示される実施形態では、親アプリケーション画像データ2820は、親アプリケーションボックス2822の正面表面上に表示されるが、本割り当てられる空間体積の他の部分もまた、同時であるかまたは異なる瞬間であるかにかかわらず、親アプリケーション画像データ2820を表示するために使用され得る。
図示されるように、ユーザインターフェースボックス2812および親アプリケーションボックス2822は、2つのアプリケーション間の画像データ衝突を回避するように、重複しない。但し、図示される実施形態では、2つのボックス2822、2812は、親アプリケーションボックス2822の正面表面に隣接するユーザインターフェースボックス2812の背面表面に「触れる」。
図28は、ユーザインターフェース画像データ2810と親アプリケーション画像データ2820との間のz−方向における深度距離Dを示す。深度距離Dは、固定距離であることができる。いくつかの実施形態では、深度距離Dは、ユーザインターフェースボックス2812の深度寸法に対応する。
深度距離Dは、種々の方法で測定されることができる。いくつかの実施形態では、深度距離Dは、親アプリケーションボックス2822の表面からユーザインターフェースボックス2812の対応物表面まで測定される。例えば、深度距離Dは、図28に示されるように、親アプリケーションボックス2822の正面表面からユーザインターフェースボックス2812の正面表面まで測定されることができる。他の実施形態では、固定深度距離Dは、親アプリケーションボックス2822内の親アプリケーション画像データ2820の深度平面からユーザインターフェースボックス2812内のユーザインターフェース画像データ2810の深度平面まで測定されることができる。
ユーザインターフェース画像データ2810と親アプリケーション画像データ2820との間の深度距離Dは、親アプリケーションボックス2822またはユーザインターフェースボックス2812のいずれかが移動されるときでも、VR/AR/MRシステム200によって、固定値に維持されることができる。例えば、コマンドが、親アプリケーションボックス2822の深度場所を移動させ、および/またはボックス2822内の親アプリケーション画像データ2820の深度場所を移動させるように発行される(例えば、ユーザ2805によって、または親アプリケーション自体によって)場合、ウェアラブルVR/AR/MRシステム200は、固定深度距離Dを維持するように、深度方向において対応する量だけユーザインターフェースボックス2812および/またボックス2812内のユーザインターフェース画像データ2810を自動的に移動させることができる。
親アプリケーション画像データ2820の全部または一部と関連付けられたユーザインターフェース画像データ2810(例えば、仮想キーボード)の全部または一部との間および/または親アプリケーションボックス2822とユーザインターフェースボックス2812との間の固定深度距離を維持することによって、ユーザインターフェース体験(例えば、タイプ体験)は、向上されることができる。明確に異なる深度または深度平面は、ユーザインターフェース層と親アプリケーション層との間で容易に区別するユーザ2805の能力を改良する一方、固定距離Dは、ユーザが2つのアプリケーションが相互に関連することをコンテキスト的に理解することに役立つ。本配列はまた、ユーザインターフェースの背後の親アプリケーションコンテンツが、ユーザインターフェースが親アプリケーション層と同一平面上にある場合より可視および可読となることを可能にする。
加えて、固定距離Dは、種々のアプリケーションをVR/AR/MRシステム200上で使用する間、ユーザが順応しなければならない、輻輳・開散運動−遠近調節プッシュアップの入換の回数を限定することができる。輻輳・開散運動−遠近調節プッシュアップは、親アプリケーション画像データ2820とユーザインターフェース画像データ2810との間で往復して見ている間、異なる距離に合焦させるときにユーザの眼によって被られる歪みを説明する、用語である。本歪みは、全てのユーザによって直ちに知覚されない場合があるが、一部のユーザにとって、経時的に不快感を生じさせ得る。
輻輳・開散運動−遠近調節プッシュアップと関連付けられた焦点距離偏移が、比較的に多くの場合、キーボードキーおよびタイプされるテキストが異なる深度に位置するため、仮想キーボードのようなユーザインターフェースを用いて生じ得る。これらの深度間の距離が大きいほど、ユーザの眼によって被られる歪みは大きくなる。しかし、深度間の距離が小さいほど、ユーザがアプリケーション画像データ2820とユーザインターフェース画像データ2810との間で区別することがより困難になる。これらの2つの要因間の良好な平衡をとり得る、深度距離Dに関する値の範囲が存在する。いくつかの実施形態では、深度距離Dは、10〜30インチである。いくつかの実施形態では、深度距離Dは、15〜20インチである。いくつかの実施形態では、深度距離Dに関する16.85インチの値が、良好に作用することが見出されている。
いくつかの実施形態では、ユーザインターフェースアプリケーションは、親アプリケーションまたはユーザからのコマンドによって呼び出されることができる。ユーザインターフェースアプリケーションが、呼び出されると、ユーザインターフェースボックス2812は、親アプリケーションまたはユーザによって規定されたスポーン地点に位置することができる。例えば、親アプリケーションは、ローカル座標のセット(例えば、親アプリケーションボックス2822に対して規定された座標)を提供することができ、これは、ユーザインターフェースボックス2812上または該ユーザインターフェースボックス内の特定の点が位置すべき場所を示す。
いくつかの実施形態では、ローカル座標は、側方(x、y)座標のみを規定する必要があり、z座標は、固定深度距離Dに基づいて決定されることができる。しかし、ユーザインターフェース画像データ2810が、単に、規定された側方(x、y)座標および親アプリケーション画像データ2820からの固定深度距離に表示される場合、実際には、意図される場所に位置付けられるようにユーザ2805に現れない場合がある。これは、親アプリケーションボックス2822およびユーザインターフェースボックス2812がユーザの視点に対して位置する場所に応じて、例えば、親アプリケーション画像データ2820とユーザインターフェース画像データ2810との間の深度距離Dがユーザの視点からのある程度の見掛け側方偏移を導入し得るためである。
例えば、親アプリケーションによって与えられるローカル座標は、ユーザインターフェースボックス2812を親アプリケーションボックス2822の底部と同一平面に位置付けるように意図され得る。しかし、2つのボックスが、ユーザの視点の上方または下方に位置する場合、ユーザインターフェースボックス2812は、代わりに、深度距離Dに応じて、親アプリケーションボックス2822に重複するようにユーザ2805に現れ得る、または2つのボックス間に間隙が存在するようにユーザ2805に現れ得る。
したがって、いくつかの実施形態では、VR/AR/MRシステム200は、光線をローカル座標によって規定された点からユーザの視点に向かって投影することができる。VR/AR/MRシステム200は、次いで、投影された光線が親アプリケーション画像データ2820および/またはボックス2822からの所望の深度距離Dに位置する平面と交差する、点を計算することができる。ユーザインターフェース画像データ2810および/またはボックス2812は、次いで、交点のその点に基づく、スポーン地点に位置付けられることができる。例えば、ユーザインターフェースボックス2812の正面表面の上部縁の中央(またはユーザインターフェースボックス上または該ユーザインターフェースボックス内の任意の他の規定された点)が、交点に位置付けられることができる。このように、ユーザインターフェース画像データ2810および/またはボックス2822は、親アプリケーションボックス2822およびユーザインターフェースボックス2812がユーザの視点に対する場所にかかわらず、所望の位置に位置するようにユーザ2805に現れるであろう。
他の実施形態では、ユーザインターフェースを位置させるために提供されるローカル座標が、親アプリケーションボックス2822の内側にある場合、VR/AR/MRシステム200は、ユーザ205からローカル座標によって規定された点までの通視線に沿って親アプリケーションボックス2822の外側にあるスポーン地点を計算することができる(これは、親アプリケーションボックス2822およびユーザインターフェースボックス2812が重複することを防止するために行われることができる)。例えば、VR/AR/MRシステム200は、光線をローカル座標によって規定された点からユーザ205の視点に向かって投影することができる。VR/AR/MRシステム200は、次いで、投影された光線が親アプリケーションボックス2822の正面表面の平面と交差する場所を計算することができる。ユーザインターフェースボックス2812は、次いで、交点に基づいて、スポーンされることができる。例えば、ユーザインターフェースボックス2812の背面の上部縁の中心(またはユーザインターフェースボックス上または該ユーザインターフェースボックス内の任意の他の規定された点)が、交点に位置付けられることができる。ユーザインターフェースボックス2812の深度寸法が、固定深度距離Dと等しい場合、かつユーザインターフェース画像データ2810が、ユーザインターフェースボックスの正面表面に表示される場合、ユーザインターフェース画像データは、親アプリケーションボックス2822からの正しい距離に位置するであろう。
いくつかの実施形態では、ユーザインターフェース画像データ2810および/またはボックス2812は、親アプリケーション画像データ2820および/またはボックス2822に側方に触れていることが要求される。図29A−29Eは、許容空間関係および禁止空間関係の実施例を図示する。図29Aは、ユーザインターフェースボックス2812が親アプリケーションボックス2822と完全に側方に重複する、実施例を図示する。図29Bは、ユーザインターフェースボックス2812が親アプリケーションボックス2822と部分的に側方に重複する、実施例を図示する。図29Cは、ユーザインターフェースボックス2812の縁が親アプリケーションボックス2822の縁に側方に触れている、実施例を図示する。図29Dは、ユーザインターフェースボックス2812の角が親アプリケーションボックス2822の角に側方に触れている、実施例を図示する。一方、図29Eは、ユーザインターフェースボックス2812のいずれの部分も親アプリケーションボックス2822の任意の部分に側方に触れていない、実施例を図示する。ユーザインターフェースボックス2812が親アプリケーションボックス2822に側方に触れていることが要求される、実施形態では、図29A−29Dに示される配列は、許容される一方、図29Eに示される配列は、許容されない。他の実施形態では、ユーザインターフェース画像データ2810および/またはボックス2812は、親アプリケーション画像データ2820および/またはボックス2822に対して他の相対的空間関係に配列されることができ、これは、ユーザによって規定されてもよい。
いくつかの実施形態では、親アプリケーションボックス2822およびユーザインターフェースボックス2812は、整列隊形で相互にとともに移動することができる。親アプリケーションボックス2822を移動させるコマンドが、ユーザ2805または親アプリケーション自体から受信される場合、ユーザインターフェースボックス2812は、対応する量だけ移動されることができる。例えば、ユーザインターフェースボックス2812は、親アプリケーションボックス2822と同一方向に、同一量だけ移動されることができる。または、ユーザインターフェースボックス2812は、2つのボックス2812、2822間の同一見掛け相対的位置を維持する方向に、そのような量だけ移動されることができる。上記に議論されるように、2つのボックス2812、2822の間の見掛け相対的位置は、それらがユーザの視点に対して位置する場所およびボックス間の深度距離Dに依存し得る。したがって、コマンドが、親アプリケーションボックス2822を移動させるように発行される場合、上記に説明される光線投影技法が、ユーザインターフェースボックス2812のための新しい位置を決定するために使用されることができる。他の実施形態では、2つのボックス2812、2822間の位置は、固定され、見掛け相対的位置は、考慮されない。
いくつかの実施形態では、親アプリケーションは、ユーザインターフェースアプリケーションが、親アプリケーションボックス2822が操作されていることを通知され得ず、したがって、その独自の対応する移動挙動を提供することが不可能であり得るため、ユーザインターフェースボックス2812の移動を制御する。これは、親アプリケーションボックス2822の操作の開始時、ユーザインターフェースボックス2812を親アプリケーションボックス2822のシーングラフ子にすることによって遂行されることができる。シーングラフ子として、親アプリケーションボックス2822に適用される移動は、ユーザインターフェースボックス2812に自動的に適用されることができる。親アプリケーションボックス2822の操作の終了時、シーングラフ親−子関係は、解除されることができ、ユーザインターフェースボックス2812は、操作に先立った状態のように、再び、ルートシーングラフオブジェクトにされることができる。
いくつかの実施形態では、親アプリケーションボックス2822およびユーザインターフェースボックス2812は、ともに移動するが、正確な整列隊形ではない。代わりに、親アプリケーションボックス2822とユーザインターフェースボックス2812との間の相対的位置付けは、ボックス間の側方が触れている状態が維持される限り(例えば、図29A−29Dに図示されるように)、変化することができる。図30は、本タイプの移動を図示する、フローチャート3000である。
ブロック3010では、親アプリケーション画像データ2820は、親アプリケーションボックス2822等の第1の空間体積に表示される。一方、ユーザインターフェース画像データ2810は、ユーザインターフェースボックス2812等の第2の空間体積に表示される。ブロック3020に記載されるように、ユーザインターフェース画像データ2810は、親アプリケーション画像データ2820から固定深度距離Dに表示されることができる。
ブロック3030では、空間体積のうちの一方(例えば、親アプリケーションボックス2822)が、他方に対して側方に移動される。ブロック3040では、他方の空間体積(例えば、ユーザインターフェースボックス2812)の場所が、2つの空間体積間で依然として側方に触れている状態が存在する限り、移動を伴わずに維持される。これは、親アプリケーションボックス2822内の少なくとも1つの点およびユーザインターフェースボックス2812内の少なくとも1つの点が隣接する側方座標を有する、実際に側方に触れている状態を指し得る。また、ユーザの視点から見掛け上側方に触れている状態を指し得る(図31に関してさらに議論されるように)。ブロック3050では、第1の空間体積(例えば、親アプリケーションボックス2822)の移動が、第2の空間体積(例えば、ユーザインターフェースボックス2812)にもはや側方に触れていない状態をもたらすであろう場合、第2の空間体積もまた、側方に触れている状態を維持するように、移動されることができる。
図31は、フローチャート3100であって、これは、図30に示される方法3000のさらなる詳細を図示する。ブロック3110では、第1の空間体積(例えば、親アプリケーションボックス2822)の新しい水平位置(図示されるx−方向)が、決定される。次いで、ブロック3120では、VR/AR/MRシステム200が、光線を第2の空間体積の角(例えば、ユーザインターフェースボックス2812の背面の角)からユーザの視点に向かって投影する。ブロック3130では、投影された光線のうちの少なくとも1つが、その新しい水平位置において、第1の空間体積(例えば、親アプリケーションボックス2822)と交差する場合、第2の空間体積(例えば、ユーザインターフェースボックス2812)の水平位置は、維持される。そうでなければ、ブロック3140では、第2の空間体積(例えば、ユーザインターフェースボックス2812)が、第1の空間体積(例えば、親アプリケーションボックス2822)の水平移動に対応する量だけ水平に移動されることができる。または、第2の空間体積(例えば、ユーザインターフェースボックス2812)が、少なくとも第1の空間体積(例えば、親アプリケーションボックス2822)との水平接触を維持するために必要である量だけ水平に移動されることができる。
次いで、ブロック3150−3180では、類似ステップが、第1の空間体積(例えば、親アプリケーションボックス2822)の新しい垂直位置(図示されるy−方向)のために実施される。すなわち、ブロック3150では、第1の空間体積(例えば、親アプリケーションボックス2822)の新しい垂直位置が、決定される。次いで、ブロック3160では、VR/AR/MRシステム200が、光線を第2の空間体積の角(例えば、ユーザインターフェースボックス2812の背面の角)からユーザの視点に向かって投影する。ブロック3170では、投影された光線のうちの少なくとも1つが、その新しい垂直位置において、第1の空間体積(例えば、親アプリケーションボックス2822)と交差する場合、第2の空間体積(例えば、ユーザインターフェースボックス2812)の垂直位置は、維持される。そうでなければ、ブロック3180では、第2の空間体積(例えば、ユーザインターフェースボックス2812)が、第1の空間体積(例えば、親アプリケーションボックス2822)の垂直移動に対応する量だけ垂直に移動されることができる。または、第2の空間体積(例えば、ユーザインターフェースボックス2812)は、少なくとも第1の空間体積(例えば、親アプリケーションボックス2822)との垂直接触を維持するために必要である量だけ垂直に移動されることができる。
したがって、親アプリケーションボックス2822またはユーザインターフェースボックス2812のいずれかは、他方に対して側方に「摺動」するように、操作を介して移動されることが可能にされる。しかし、本移動のx−y側方範囲は、ボックス2812、2822のうちの一方がもはや側方接触しないほど他方から十分に離れるように摺動しないように、制約されることができる。図31は、水平移動が最初に行われ、次いで、垂直移動となる、移動が水平および垂直成分に分離される、プロセスを図示するが、他の実施形態では、垂直移動は、水平移動の前に行われることができる、または移動は、それらを水平および垂直成分に分離せずに行われることができる。
実施例
いくつかの実施例では、方法は、データを複数の深度に表示することが可能な仮想現実、拡張現実、または複合現実システムを使用して、第1のアプリケーションと関連付けられた画像データの少なくとも一部を第1の深度に表示するステップと、第2のアプリケーションと関連付けられた画像データの少なくとも一部を第2の深度に表示するステップとを含み、第1および第2のアプリケーションは、相互に関連し、第2の深度は、第1の深度から固定距離にあるように選択される。
先行実施例のいずれかでは、第2のアプリケーションは、ユーザが第1のアプリケーションと相互作用することを可能にする、ユーザインターフェースを含んでもよい。
先行実施例のいずれかでは、第2のアプリケーションは、キーボードを含んでもよい。
先行実施例のいずれかでは、固定距離は、10〜30インチであってもよい。
先行実施例のいずれかでは、固定距離は、15〜20インチであってもよい。
先行実施例のいずれかでは、本方法はさらに、コマンドに応答して、第1のアプリケーションと関連付けられた画像データを移動させるステップと、固定距離を維持するように、第2のアプリケーションと関連付けられた画像データを自動的に移動させるステップとを含んでもよい。
先行実施例のいずれかでは、第1のアプリケーションと関連付けられた画像データは、第1の空間体積内に表示されてもよく、第2のアプリケーションと関連付けられた画像データは、第2の空間体積内に表示されてもよい。
先行実施例のいずれかでは、固定距離は、第1の空間体積の正面表面から第2の空間体積の正面表面まで測定されてもよい。
先行実施例のいずれかでは、第1の空間体積の正面表面および第2の空間体積の背面表面は、隣接してもよい。
先行実施例のいずれかでは、第1のアプリケーションと関連付けられた画像データは、少なくとも第1のエリア内に表示されてもよく、第2のアプリケーションと関連付けられた画像データは、少なくとも第2のエリア内に表示されてもよい。
先行実施例のいずれかでは、第1のエリアおよび第2のエリアは、相互に側方に触れていてもよい。
先行実施例のいずれかでは、第1のエリアの少なくとも角は、第2のエリアの少なくとも角に側方に触れていてもよい。
先行実施例のいずれかでは、第1のエリアの少なくとも縁は、第2のエリアの少なくとも縁に側方に触れていてもよい。
先行実施例のいずれかでは、第1のエリアおよび第2のエリアは、相互に側方に重複してもよい。
先行実施例のいずれかでは、本方法はさらに、コマンドに応答して、第1のエリアを側方に移動させるステップと、第1のエリアおよび第2のエリアが相互に側方に触れている限り、第2のエリアの側方位置を維持するステップとを含んでもよい。
先行実施例のいずれかでは、本方法はさらに、第1のエリアおよび第2のエリアがもはや相互に側方に触れていなくなると、第1のエリアと第2のエリアとの間の側方接触を維持するように、第2のエリアを側方に移動させるステップを含んでもよい。
先行実施例のいずれかでは、本方法はさらに、1つ以上の光線を第2のエリアの1つ以上の周辺点からユーザの視点に向かって投影させ、光線のうちの少なくとも1つが第1のエリアと交差するかどうかを試験することによって、第1のエリアおよび第2のエリアが相互に側方に触れているかどうかを決定するステップを含んでもよい。
先行実施例のいずれかでは、1つ以上の周辺点は、第2のエリアの全ての角を含んでもよい。
いくつかの実施例では、システムは、データを複数の深度に表示することが可能な仮想現実、拡張現実、または複合現実ディスプレイと、第1のアプリケーションと関連付けられた画像データの少なくとも一部を第1の深度に表示し、第2のアプリケーションと関連付けられた画像データの少なくとも一部を第2の深度に表示し、第1および第2のアプリケーションは、相互に関連し、第2の深度は、第1の深度から固定距離にあるように選択されるように構成される、ハードウェアプロセッサとを備える。
先行実施例のいずれかでは、第2のアプリケーションは、ユーザが第1のアプリケーションと相互作用することを可能にする、ユーザインターフェースを含んでもよい。
先行実施例のいずれかでは、第2のアプリケーションは、キーボードを含んでもよい。
先行実施例のいずれかでは、固定距離は、10〜30インチであってもよい。
先行実施例のいずれかでは、固定距離は、15〜20インチであってもよい。
先行実施例のいずれかでは、ハードウェアプロセッサはさらに、コマンドに応答して、第1のアプリケーションと関連付けられた画像データを移動させ、固定距離を維持するように、第2のアプリケーションと関連付けられた画像データを自動的に移動させるように構成されてもよい。
先行実施例のいずれかでは、第1のアプリケーションと関連付けられた画像データは、第1の空間体積内に表示されてもよく、第2のアプリケーションと関連付けられた画像データは、第2の空間体積内に表示されてもよい。
先行実施例のいずれかでは、固定距離は、第1の空間体積の正面表面から第2の空間体積の正面表面まで測定されてもよい。
先行実施例のいずれかでは、第1の空間体積の正面表面および第2の空間体積の背面表面は、隣接してもよい。
先行実施例のいずれかでは、第1のアプリケーションと関連付けられた画像データは、少なくとも第1のエリア内に表示されてもよく、第2のアプリケーションと関連付けられた画像データは、少なくとも第2のエリア内に表示されてもよい。
先行実施例のいずれかでは、第1のエリアおよび第2のエリアは、相互に側方に触れていてもよい。
先行実施例のいずれかでは、第1のエリアの少なくとも角は、第2のエリアの少なくとも角に側方に触れていてもよい。
先行実施例のいずれかでは、第1のエリアの少なくとも縁は、第2のエリアの少なくとも縁に側方に触れていてもよい。
先行実施例のいずれかでは、第1のエリアおよび第2のエリアは、相互に側方に重複してもよい。
先行実施例のいずれかでは、ハードウェアプロセッサはさらに、コマンドに応答して、第1のエリアを側方に移動させ、第1のエリアおよび第2のエリアが相互に側方に触れている限り、第2のエリアの側方位置を維持するように構成されてもよい。
先行実施例のいずれかでは、ハードウェアプロセッサはさらに、第1のエリアおよび第2のエリアがもはや相互に側方に触れていなくなると、第1のエリアと第2のエリアとの間の側方接触を維持するように、第2のエリアを側方に移動させるように構成されてもよい。
先行実施例のいずれかでは、ハードウェアプロセッサはさらに、1つ以上の光線を第2のエリアの1つ以上の周辺点からユーザの視点に向かって投影させ、光線のうちの少なくとも1つが第1のエリアと交差するかどうかを試験することによって、第1のエリアおよび第2のエリアが相互に側方に触れているかどうかを決定するように構成されてもよい。
先行実施例のいずれかでは、1つ以上の周辺点は、第2のエリアの全ての角を含んでもよい。
いくつかの実施例では、非一過性コンピュータ可読媒体は、ハードウェアプロセッサによって読み取られると、ハードウェアプロセッサに、データを複数の深度に表示することが可能な仮想現実、拡張現実、または複合現実システムを使用して、第1のアプリケーションと関連付けられた画像データの少なくとも一部を第1の深度に表示するステップと、第2のアプリケーションと関連付けられた画像データの少なくとも一部を第2の深度に表示するステップとを含み、第1および第2のアプリケーションは、相互に関連し、第2の深度は、第1の深度から固定距離にあるように選択される、方法を実施させる、命令を備えてもよい。
先行実施例のいずれかでは、第2のアプリケーションは、ユーザが第1のアプリケーションと相互作用することを可能にする、ユーザインターフェースを含んでもよい。
先行実施例のいずれかでは、第2のアプリケーションは、キーボードを含んでもよい。
先行実施例のいずれかでは、固定距離は、10〜30インチであってもよい。
先行実施例のいずれかでは、固定距離は、15〜20インチであってもよい。
先行実施例のいずれかでは、コンピュータ可読媒体によって引き起こされる方法はさらに、コマンドに応答して、第1のアプリケーションと関連付けられた画像データを移動させるステップと、固定距離を維持するように、第2のアプリケーションと関連付けられた画像データを自動的に移動させるステップとを含んでもよい。
先行実施例のいずれかでは、第1のアプリケーションと関連付けられた画像データは、第1の空間体積内に表示されてもよく、第2のアプリケーションと関連付けられた画像データは、第2の空間体積内に表示されてもよい。
先行実施例のいずれかでは、固定距離は、第1の空間体積の正面表面から第2の空間体積の正面表面まで測定されてもよい。
先行実施例のいずれかでは、第1の空間体積の正面表面および第2の空間体積の背面表面は、隣接してもよい。
先行実施例のいずれかでは、第1のアプリケーションと関連付けられた画像データは、少なくとも第1のエリア内に表示されてもよく、第2のアプリケーションと関連付けられた画像データは、少なくとも第2のエリア内に表示されてもよい。
先行実施例のいずれかでは、第1のエリアおよび第2のエリアは、相互に側方に触れていてもよい。
先行実施例のいずれかでは、第1のエリアの少なくとも角は、第2のエリアの少なくとも角に側方に触れていてもよい。
先行実施例のいずれかでは、第1のエリアの少なくとも縁は、第2のエリアの少なくとも縁に側方に触れていてもよい。
先行実施例のいずれかでは、第1のエリアおよび第2のエリアは、相互に側方に重複してもよい。
先行実施例のいずれかでは、コンピュータ可読媒体によって引き起こされる方法はさらに、コマンドに応答して、第1のエリアを側方に移動させるステップと、第1のエリアおよび第2のエリアが相互に側方に触れている限り、第2のエリアの側方位置を維持するステップとを含んでもよい。
先行実施例のいずれかでは、コンピュータ可読媒体によって引き起こされる方法はさらに、第1のエリアおよび第2のエリアがもはや相互に側方に触れていなくなると、第1のエリアと第2のエリアとの間の側方接触を維持するように、第2のエリアを側方に移動させるステップを含んでもよい。
先行実施例のいずれかでは、コンピュータ可読媒体によって引き起こされる方法はさらに、1つ以上の光線を第2のエリアの1つ以上の周辺点からユーザの視点に向かって投影させ、光線のうちの少なくとも1つが第1のエリアと交差するかどうかを試験することによって、第1のエリアおよび第2のエリアが相互に側方に触れているかどうかを決定するステップを含んでもよい。
先行実施例のいずれかでは、1つ以上の周辺点は、第2のエリアの全ての角を含んでもよい。
結論
本明細書に説明される、および/または添付される図に描写されるプロセス、方法、およびアルゴリズムはそれぞれ、具体的かつ特定のコンピュータ命令を実行するように構成される、1つ以上の物理的コンピューティングシステム、特定用途向け回路、および/または電子ハードウェア(集合的に、ハードウェアプロセッサと称される)によって実行される、コードモジュールにおいて具現化され、それによって完全または部分的に自動化され得る。例えば、コンピューティングシステムは、具体的コンピュータ命令とともにプログラムされた汎用コンピュータ(例えば、サーバ)または専用コンピュータ、専用回路等を含むことができる。コードモジュールは、実行可能プログラムにコンパイルおよびリンクされる、動的リンクライブラリ内にインストールされ得る、または解釈されるプログラミング言語において書き込まれ得る。いくつかの実装では、特定の動作および方法が、所与の機能に特有の回路によって実施され得る。
さらに、本開示の機能性のある実装は、十分に数学的、コンピュータ的、または技術的に複雑であるため、(適切な特殊化された実行可能命令を利用する)特定用途向けハードウェアまたは1つ以上の物理的コンピューティングデバイスは、例えば、関与する計算の量または複雑性に起因して、または結果を実質的にリアルタイムで提供するために、機能性を実施する必要があり得る。例えば、ビデオは、多くのフレームを含み、各フレームは、数百万のピクセルを有し得、具体的にプログラムされたコンピュータハードウェアは、商業的に妥当な時間量において所望の画像処理タスクまたは用途を提供するようにビデオデータを処理する必要がある。
コードモジュールまたは任意のタイプのデータは、ハードドライブ、ソリッドステートメモリ、ランダムアクセスメモリ(RAM)、読取専用メモリ(ROM)、光学ディスク、揮発性または不揮発性記憶装置、同一物の組み合わせ、および/または同等物を含む、物理的コンピュータ記憶装置等の任意のタイプの非一過性コンピュータ可読媒体上に記憶され得る。本方法およびモジュール(またはデータ)はまた、無線ベースおよび有線/ケーブルベースの媒体を含む、種々のコンピュータ可読伝送媒体上で生成されたデータ信号として(例えば、搬送波または他のアナログまたはデジタル伝搬信号の一部として)伝送され得、種々の形態(例えば、単一または多重化アナログ信号の一部として、または複数の離散デジタルパケットまたはフレームとして)をとり得る。開示されるプロセスまたはプロセスステップの結果は、任意のタイプの非一過性有形コンピュータ記憶装置内に持続的または別様に記憶され得る、またはコンピュータ可読伝送媒体を介して通信され得る。
本明細書に説明される、および/または添付される図に描写されるフロー図における任意のプロセス、ブロック、状態、ステップ、または機能性は、プロセスにおいて具体的機能(例えば、論理または算術)またはステップを実装するための1つ以上の実行可能命令を含む、コードモジュール、セグメント、またはコードの一部を潜在的に表すものとして理解されたい。種々のプロセス、ブロック、状態、ステップ、または機能性は、組み合わせられる、再配列される、追加される、削除される、修正される、または別様に本明細書に提供される例証的実施例から変更されることができる。いくつかの実施形態では、付加的または異なるコンピューティングシステムまたはコードモジュールが、本明細書に説明される機能性のいくつかまたは全てを実施し得る。本明細書に説明される方法およびプロセスはまた、任意の特定のシーケンスに限定されず、それに関連するブロック、ステップ、または状態は、適切な他のシーケンスで、例えば、連続して、並行して、またはある他の様式で実施されることができる。タスクまたはイベントが、開示される例示的実施形態に追加される、またはそれから除去され得る。さらに、本明細書に説明される実装における種々のシステムコンポーネントの分離は、例証を目的とし、全ての実装においてそのような分離を要求するものとして理解されるべきではない。説明されるプログラムコンポーネント、方法、およびシステムは、概して、単一のコンピュータ製品においてともに統合される、または複数のコンピュータ製品にパッケージ化され得ることを理解されたい。多くの実装変形例が、可能である。
本プロセス、方法、およびシステムは、ネットワーク(または分散)コンピューティング環境において実装され得る。ネットワーク環境は、企業全体コンピュータネットワーク、イントラネット、ローカルエリアネットワーク(LAN)、広域ネットワーク(WAN)、パーソナルエリアネットワーク(PAN)、クラウドコンピューティングネットワーク、クラウドソースコンピューティングネットワーク、インターネット、およびワールドワイドウェブを含む。ネットワークは、有線または無線ネットワークまたは任意の他のタイプの通信ネットワークであり得る。
本開示のシステムおよび方法は、それぞれ、いくつかの革新的側面を有し、そのうちのいかなるものも、本明細書に開示される望ましい属性に単独で関与しない、またはそのために要求されない。上記に説明される種々の特徴およびプロセスは、相互に独立して使用され得る、または種々の方法で組み合わせられ得る。全ての可能な組み合わせおよび副次的組み合わせが、本開示の範囲内に該当することが意図される。本開示に説明される実装の種々の修正が、当業者に容易に明白であり得、本明細書に定義される一般原理は、本開示の精神または範囲から逸脱することなく、他の実装に適用され得る。したがって、請求項は、本明細書に示される実装に限定されることを意図されず、本明細書に開示される本開示、原理、および新規の特徴と一貫する最も広い範囲を与えられるべきである。
別個の実装の文脈において本明細書に説明されるある特徴はまた、単一の実装における組み合わせにおいて実装されることができる。逆に、単一の実装の文脈において説明される種々の特徴もまた、複数の実装において別個に、または任意の好適な副次的組み合わせにおいて実装されることができる。さらに、特徴がある組み合わせにおいて作用するものとして上記に説明され、さらに、そのようなものとして最初に請求され得るが、請求される組み合わせからの1つ以上の特徴は、いくつかの場合では、組み合わせから削除されることができ、請求される組み合わせは、副次的組み合わせまたは副次的組み合わせの変形例を対象とし得る。いかなる単一の特徴または特徴のグループも、あらゆる実施形態に必要または必須ではない。
とりわけ、「〜できる(can)」、「〜し得る(could)」、「〜し得る(might)」、「〜し得る(may)」、「例えば(e.g.)」、および同等物等、本明細書で使用される条件文は、別様に具体的に記載されない限り、または使用されるような文脈内で別様に理解されない限り、概して、ある実施形態がある特徴、要素、および/またはステップを含む一方、他の実施形態がそれらを含まないことを伝えることが意図される。したがって、そのような条件文は、概して、特徴、要素、および/またはステップが、1つ以上の実施形態に対していかようにも要求されること、または1つ以上の実施形態が、著者の入力または促しの有無を問わず、これらの特徴、要素、および/またはステップが任意の特定の実施形態において含まれる、または実施されるべきかどうかを決定するための論理を必然的に含むことを示唆することを意図されない。用語「〜を備える」、「〜を含む」、「〜を有する」、および同等物は、同義語であり、非限定的方式で包括的に使用され、付加的要素、特徴、行為、動作等を除外しない。また、用語「または」は、その包括的意味において使用され(およびその排他的意味において使用されず)、したがって、例えば、要素のリストを接続するために使用されると、用語「または」は、リスト内の要素のうちの1つ、いくつか、または全てを意味する。加えて、本願および添付される請求項で使用されるような冠詞「a」、「an」、および「the」は、別様に規定されない限り、「1つ以上の」または「少なくとも1つ」を意味するように解釈されるべきである。
本明細書で使用されるように、項目のリスト「〜のうちの少なくとも1つ」を指す語句は、単一の要素を含む、それらの項目の任意の組み合わせを指す。ある実施例として、「A、B、またはCのうちの少なくとも1つ」は、A、B、C、AおよびB、AおよびC、BおよびC、およびA、B、およびCを網羅することが意図される。語句「X、Y、およびZのうちの少なくとも1つ」等の接続文は、別様に具体的に記載されない限り、概して、項目、用語等がX、Y、またはZのうちの少なくとも1つであり得ることを伝えるために使用されるような文脈で別様に理解される。したがって、そのような接続文は、概して、ある実施形態が、Xのうちの少なくとも1つ、Yのうちの少なくとも1つ、およびZのうちの少なくとも1つがそれぞれ存在するように要求することを示唆することを意図されない。
同様に、動作は、特定の順序で図面に描写され得るが、これは、望ましい結果を達成するために、そのような動作が示される特定の順序でまたは連続的順序で実施されることまたは全ての図示される動作が実施されることの必要はないと認識されるべきである。さらに、図面は、フローチャートの形態で1つ以上の例示的プロセスを図式的に描写し得る。しかしながら、描写されない他の動作も、図式的に図示される例示的方法およびプロセス内に組み込まれることができる。例えば、1つ以上の付加的動作が、図示される動作のいずれかの前に、その後に、それと同時に、またはその間に実施されることができる。加えて、動作は、他の実装において再配列される、または再順序付けられ得る。ある状況では、マルチタスクおよび並列処理が、有利であり得る。さらに、上記に説明される実装における種々のシステムコンポーネントの分離は、全ての実装におけるそのような分離を要求するものとして理解されるべきではなく、説明されるプログラムコンポーネントおよびシステムは、概して、単一のソフトウェア製品においてともに統合される、または複数のソフトウェア製品にパッケージ化され得ることを理解されたい。加えて、他の実装も、以下の請求項の範囲内である。いくつかの場合では、請求項に列挙されるアクションは、異なる順序で実施され、依然として、望ましい結果を達成することができる。