(19)【発行国】日本国特許庁(JP)
(12)【公報種別】特許公報(B2)
(11)【特許番号】
(24)【登録日】2022-03-29
(45)【発行日】2022-04-06
(54)【発明の名称】仮想現実システムにおける物体の位置および向きの追跡
(51)【国際特許分類】
G01S 3/784 20060101AFI20220330BHJP
G01S 5/16 20060101ALI20220330BHJP
【FI】
G01S3/784
G01S5/16
(21)【出願番号】P 2019559776
(86)(22)【出願日】2018-04-30
(86)【国際出願番号】 US2018030095
(87)【国際公開番号】W WO2018204219
(87)【国際公開日】2018-11-08
【審査請求日】2020-07-30
(32)【優先日】2017-05-01
(33)【優先権主張国・地域又は機関】US
(32)【優先日】2018-04-27
(33)【優先権主張国・地域又は機関】US
(73)【特許権者】
【識別番号】502208397
【氏名又は名称】グーグル エルエルシー
【氏名又は名称原語表記】Google LLC
【住所又は居所原語表記】1600 Amphitheatre Parkway 94043 Mountain View, CA U.S.A.
(74)【代理人】
【識別番号】110001195
【氏名又は名称】特許業務法人深見特許事務所
(72)【発明者】
【氏名】キーマニ,グーラム
(72)【発明者】
【氏名】コラコ,アンドレア
(72)【発明者】
【氏名】ビララン,ルイス
(72)【発明者】
【氏名】トレハン,チンタン
【審査官】藤田 都志行
(56)【参考文献】
【文献】特表平11-513483(JP,A)
【文献】米国特許出願公開第2016/0363768(US,A1)
【文献】米国特許出願公開第2017/0011553(US,A1)
(58)【調査した分野】(Int.Cl.,DB名)
G01S 1/00- 1/82
G01S 3/00- 3/86
G01S 5/00- 5/30
(57)【特許請求の範囲】
【請求項1】
ハンドコントローラとヘッドマウントディスプレイ(HMD)とを含む仮想現実(VR)システムにおいて、前記ハンドコントローラの位置および向きを追跡する方法であって、
処理回路が、前記HMDに配置された複数の放射トランスミッタからの拡散電磁放射のパルスを、前記ハンドコントローラの複数の放射検出器において受け取ることと、
前記処理回路が、前記拡散電磁放射からデジタル信号を生成することと、
前記処理回路が、前記デジタル信号に基づいて前記ハンドコントローラの位置および向きを取得することとを備える、方法。
【請求項2】
前記デジタル信号に基づいて前記ハンドコントローラの位置および向きを取得することは、
前記デジタル信号をルックアップテーブル(LUT)の複数の信号表現と比較することを含み、前記複数の信号表現の各々は前記ハンドコントローラのそれぞれの位置および向きに対応する、請求項1に記載の方法。
【請求項3】
前記LUTの前記複数の信号表現の各所定の信号表現は、前記HMDに配置された前記複数の放射トランスミッタの各々に対するそれぞれの信号部分を含む、請求項
2に記載の方法。
【請求項4】
前記LUTの前記複数の信号表現の各所定の信号表現は、拡散放射のパルスが前記HMDの前記複数の拡散放射トランスミッタから送信される時間に対応する、請求項2または3に記載の方法。
【請求項5】
前記デジタル信号は、第1の部分と第2の部分とを含み、
前記デジタル信号を前記LUTの前記複数の信号表現の前記所定の信号表現と比較することは、
前記拡散放射のパルスが前記HMDの前記複数の拡散放射トランスミッタから送信される時間を前記デジタル信号の前記第1の部分に基づいて生成することと、
前記信号の前記第2の部分と、前記拡散放射のパルスが前記HMDの前記複数の拡散放射トランスミッタから送信される時間とに基づいて、前記ハンドコントローラの位置および向きを生成することとを含む、請求項4に記載の方法。
【請求項6】
前記複数の拡散放射トランスミッタは、前記HMD内に特定の角度パターンで配置される、請求項2~5のいずれか1項に記載の方法。
【請求項7】
前記処理回路はフォトダイオードを含み、
前記方法は、さらに、前記HMDの各拡散放射トランスミッタからの照明に対する前記フォトダイオードの応答のシミュレーションを実行することにより、前記LUTをオフラインで生成することを備え、前記フォトダイオードの応答は、ノイズプロファイルと信号プロファイルとを有する伝達関数を有し、前記信号プロファイルは、上側周波数と下側周波数とを有する特定の周波数帯域外では0であり、前記ノイズプロファイルは前記信号プロファイルの前記周波数帯域の前記下側周波数を下回る臨界周波数を下回る1/fノイズを含む、請求項2~6のいずれか1項に記載の方法。
【請求項8】
前記デジタル信号を前記LUTの複数の信号表現と比較することは、検出された拡散放射のパターンに対する前記LUTの信号表現の近さを示すヒートマップを生成することを含み、
前記ヒートマップは、信号表現が前記検出された拡散放射のパターンに対応するホット領域と、信号表現が前記検出された拡散放射のパターンに対応しないクール領域とを含み、前記デジタル信号を前記LUTの複数の信号表現と比較することはさらに、
前記ヒートマップの前記ホット領域において信号表現を選択することを含む、請求項2~7のいずれか1項に記載の方法。
【請求項9】
前記ヒートマップは3次元位置空間にプロットされ、
前記LUTの前記ホット領域内で前記信号表現を選択することは、前記ハンドコントローラの位置を前記ヒートマップの前記ホット領域における座標トリプレットとして識別することを含む、請求項8に記載の方法。
【請求項10】
前記LUTの前記ホット領域内で前記信号表現を選択することは、
前記ハンドコントローラの位置として識別される前記ヒートマップの前記ホット領域内の前記座標トリプレットで第2のヒートマップを生成することをさらに含み、前記第2のヒートマップは3次元のピッチヨーロール角空間にプロットされ、前記第2のヒートマップは、信号表現が検出された拡散放射のパターンに対応するホット領域と、信号表現が前記検出された拡散放射のパターンに対応しないクール領域とを含み、前記LUTの前記ホット領域内で前記信号表現を選択することはさらに、
前記第2のヒートマップの前記ホット領域で信号表現を選択することを含む、請求項9に記載の方法。
【請求項11】
前記ハンドコントローラは、(i)前記拡散電磁放射のパルスから第1の電流を生成し、前記HMDに配置された前記複数の放射トランスミッタの外部の放射源から受け取った外部放射から第2の電流を生成するように構成されたトランスインピーダンス増幅器(TIA)と、(ii)前記第2の電流を打ち消すように構成された誤差増幅器とを含み、
前記方法は、さらに、
前記誤差増幅器で前記第2の電流を受け取ることをさらに備え、前記第2の電流は前記誤差増幅器で第2の電圧を生成し、前記方法はさらに、
前記第2の電流を受け取ることに応じて、前記第2の電圧と基準電圧との差に比例する制御電圧を生成することと、
前記制御電圧から負の電流を生成することとを備え、前記負の電流は前記TIAから前記第2の電流を引き抜く、請求項2から10のいずれか1項に記載の方法。
【請求項12】
非一時的記憶媒体を備えるコンピュータプログラム製品であって、ヘッドマウントディスプレイ(HMD)も含む仮想現実(VR)システムのハンドコントローラの処理回路によって実行されると、前記処理回路に方法を実行させるコードを含み、前記方法は、
前記HMDに配置された複数の放射トランスミッタからの拡散電磁放射のパルスを、前記ハンドコントローラの複数の放射検出器において受け取ることと、
前記拡散電磁放射からデジタル信号を生成することと、
前記デジタル信号に基づいて前記ハンドコントローラの位置および向きを取得することとを備える、コンピュータプログラム製品。
【請求項13】
前記デジタル信号に基づいて前記ハンドコントローラの位置および向きを取得することは、
前記デジタル信号をルックアップテーブル(LUT)の複数の信号表現と比較することを含み、前記複数の信号表現の各々は前記ハンドコントローラのそれぞれの位置および向きに対応する、請求項12に記載のコンピュータプログラム製品。
【請求項14】
前記LUTの前記複数の信号表現の各所定の信号表現は、前記HMDに配置された前記複数の放射トランスミッタの各々に対するそれぞれの信号部分を含む、請求項13に記載のコンピュータプログラム製品。
【請求項15】
ヘッドマウントディスプレイ(HMD)とハンドコントローラとを含む仮想現実(VR)システムであって、
メモリと、
前記メモリに結合される制御回路とを備え、前記制御回路は、
前記HMDに配置された複数の放射トランスミッタからの拡散電磁放射のパルスを、前記ハンドコントローラの複数の放射検出器において受け取り、
前記拡散電磁放射からデジタル信号を生成し、
前記デジタル信号に基づいて前記ハンドコントローラの位置および向きを取得するよう構成される、仮想現実(VR)システム。
【発明の詳細な説明】
【技術分野】
【0001】
関連出願への相互参照
本出願は、2018年4月27日に出願された米国特許出願第15/964,499号の優先権を主張し、かつその継続出願であり、それは、2017年5月1日に出願された米国特許出願第62/492,801号の優先権を主張し、これらの開示はいずれもその全体が本明細書に引用により援用される。
【0002】
技術分野
本記載は、仮想現実(VR)システムで用いられる現実の物体の3次元の位置および向きの追跡に関する。
【背景技術】
【0003】
背景
一部のVRシステムでは、ユーザはヘッドマウントディスプレイ(HMD)と一対のハンドコントローラとを用いて、仮想環境内で任意の数の仮想オブジェクトと対話する。そのようなVRシステムでは、ユーザがHMDで仮想オブジェクトを見たり聞いたりする一方で、VRシステムがハンドコントローラを用いてコントローラの位置および向きを追跡する。VRシステムは、コントローラの6自由度(6DOF)、つまり3次元の位置および向きをHMDにフィードバックして、仮想環境内のユーザのビューを更新する。
【0004】
概要
1つの一般的な態様では、VRシステムはハンドコントローラとHMDとを備えることができる。このVRシステムでは、方法は、処理回路が、HMDに配置された複数の放射トランスミッタからの拡散電磁放射のパルスを受信することを備えることができる。この方法は、処理回路が、拡散電磁放射からデジタル信号を生成することを備えることもできる。この方法は、さらに、処理回路が、デジタル信号に基づいてハンドコントローラの位置および向きを取得することを備えることができる。
【0005】
1つまたは複数の実装例の詳細は、添付の図面および以下の記載に記載される。他の特徴は、記載および図面、ならびに特許請求の範囲から明らかになるであろう。
【図面の簡単な説明】
【0006】
【
図1A】VRシステムにおける例示的なHMDおよびハンドコントローラを示す図である。
【
図1B】HMDに含まれるLEDトランスミッタの例を示す図である。
【
図1C】典型的なLEDの輝度プロファイルの例を示す図である。
【
図1D】LEDの別の輝度プロファイルの例を示す図である。
【
図2】
図1Bに示される輝度プロファイルが与えられたLEDの例示的なシミュレートされたプロットを示す図である。
【
図3A】バンドパスフィルタリング前における、
図1に示されるLEDから放出されるパルス放射の例示的な時間プロファイルを示す図である。
【
図3B】バンドパスフィルタリング後における、
図1に示されるLEDから放出されるパルス放射の例示的な時間プロファイルを示す図である。
【
図4A】ハンドコントローラに位置するフォトダイオードの例示的なセットの図である。
【
図4B】ハンドコントローラにおける典型的なフォトダイオードの例示的な応答の図である。
【
図4C】ハンドコントローラにおける典型的なフォトダイオードのためにバンドパスフィルタリングを与える例示的な回路の図である。
【
図5A】ハンドコントローラが空間内で占めることができる可能な3次元座標の例示的なセットの図である。
【
図5B】ハンドコントローラが空間内で占めることができる可能な3次元座標の例示的なセットの図である。
【
図5C】ハンドコントローラが空間内で占めることができる可能な3次元座標の例示的なセットの図である。
【
図5D】ハンドコントローラが空間内で占めることができる可能な3次元座標の例示的なセットの図である。
【
図6】HMDにおけるLEDからの拡散放射の受け取りから生じる例示的な信号を示す図である。
【
図7】ハンドコントローラの位置および向きを導出することができる例示的なルックアップテーブル(LUT)を示す図である。
【
図8】LUTおよびLEDからの拡散放射の受光に応答してフォトダイオードによって生成される信号からヒートマップを導出するための例示的なプロセスを示すフローチャートである。
【
図9A】外部光源からのDC光を阻止するための例示的な回路トポロジーを示す図である。
【
図9B】外部光源からのDC光を阻止するための例示的な回路を示す図である。
【
図10】本明細書で説明する回路とともに用いることができるコンピュータデバイスおよびモバイルコンピュータデバイスの例を示す。
【
図11】例示的なVRヘッドマウントディスプレイ(HMD)を示す図である。
【
図12A】例示的なVR HMDおよびコントローラを示す図である。
【
図12B】例示的なVR HMDおよびコントローラを示す図である。
【
図12C】例示的なVR HMDおよびコントローラを示す図である。
【発明を実施するための形態】
【0007】
詳細な説明
従来のVRシステムでは、ハンドコントローラなどの物体の追跡データを提供する外部システムが必要である。そのような外部システムの例は、例えば部屋の両角に配置された一対の固定されたトランスミッタ(「基地局」)の形式をとる。このようなトランスミッタは、コリメートされた近赤外線(NIR)レーザーまたはLED照明を用い、回転モーター構成を用いてシーンをラスタスキャンする。本明細書で説明する実装形態では、集束照明データを収集し、照明データから物体の位置および向きを生成する高帯域幅センサを介して物体を追跡しなくてもよい。本明細書で説明する実装形態では、大きな空間つまり部屋全体を必要とする固定されたトランスミッタ、および照明をコリメートする高価な光学機器を必要としなくてもよい。さらに、本明細書で説明する実装形態では、光ノイズに対する望ましくない感度を導入し得る高帯域幅センサを排除することができる。
【0008】
本明細書に記載の実装形態によれば、VRシステムにおいてハンドコントローラを追跡する改善された技術は、ハンドコントローラのフォトダイオードが、HMDにおいて拡散LEDにより生成される拡散放射のパターンを検出することを含む。装置および方法は、検出されたパターンを、以前にオフラインでシミュレートされ、ルックアップテーブル(LUT)で表されたパターンと比較することも含むことができる。LUTにおいて検出されたパターンを探索することにより、VRシステムは、サブミリメートルの精度でハンドコントローラの位置および/または向きを判断し得る。改良された技術のいくつかの利点は、ハンドコントローラの位置および向きを導出する際の精度を犠牲にすることなく、コンポーネントが単純および/または低コストであることにある。改良されたVRシステムを用いるために大きな空間を確保する必要はない。拡散放射を生成する光学素子およびハンドコントローラのフォトダイオードは、コリメーションに必要なものよりも安価である。さらに、フォトダイオードに適用される新規な回路は、改良されたVRシステムの、外部光に対する低感度を提供する。
【0009】
図1Aは、HMD105およびハンドコントローラ103を含む例示的なVRシステム100を示す。HMD100は、ユーザの頭の上にフィットし、ユーザの前に突出されるように示されるディスプレイ204で彼/彼女の目を覆う。HMD105内のディスプレイ204は、仮想環境115をユーザに示す。この特定のユーザ環境115には、仮想オブジェクト120がある。ユーザは、ハンドコントローラ103を用いて仮想オブジェクト120を操作してもよい。
【0010】
VRシステム100は、ハンドコントローラ103を用いて、ユーザの動きを追跡し、したがって、仮想環境115に何を表示するかを判断する。特に、VRシステム100は、ハンドコントローラ103の位置および場合によっては向きを追跡するように構成される。したがって、VRシステムが、典型的には1ミリメートル以内の十分な精度でハンドコントローラ103の位置および向きを追跡できることが重要である。
【0011】
改良された技術によれば、VRシステム100は、HMD105における放射源130(たとえばLED)によって生成された拡散電磁放射(たとえば近赤外線放射)を用いてハンドコントローラ103を追跡する。そのような放射源130は、ヘルメット内、例えば、HMD105のハウジング内にアレイ状に配置することができる。
【0012】
ハンドコントローラのこの追跡の一部として、ハンドコントローラ103は放射検出器140を含む。本明細書に記載されるものなどのいくつかの実装形態では、放射検出器はフォトダイオードを含む。いくつかの実装形態では、放射検出器は、光電子増倍管、電荷結合デバイスなどを含んでもよい。
【0013】
図1Aに示されるように、HMDは処理回路132も含む。処理回路122は、放出された放射を受け取ることに応答してハンドコントローラ103において放射検出器140によって生成された信号を検出し、検出された信号に基づいてハンドコントローラ103の位置および/または向きを判断するように構成される。いくつかの構成では、処理回路132は、LUT138を格納するメモリ136に結合もされる。そのような構成では、処理回路132は、検出された信号とメモリ136内のLUT138との比較動作を実行するように構成される。
【0014】
本明細書で説明するように、VRシステム100は、プロセッサ132を介して、放射源130および放射検出器140のシミュレーション、ならびに検出器で回路によって生成される信号を処理して、LUT138を構築するように構成される。
【0015】
いくつかの構成では、処理回路132およびメモリ136は、HMDの外部において、例えば、ハンドコントローラ103、またはハンドコントローラ103およびHMD105の外部のコンピュータ内に配置される。
【0016】
図1Bは、HMD105(
図1A)などのHMDに含まれ得る例示的なLEDトランスミッタを示す。
図1Bにおいて、HMDに埋め込まれる曲面に配置された12個のLEDがある。各LEDはプリント回路基板にはんだ付けされ、HMDから電力を引き出す。いくつかの実装形態では、LEDは、近赤外(NIR)波長(たとえば700nmと1000nmとの間)で電磁放射を放出する。いくつかの実装形態では、LEDは、そのような放射を、光学波長、中赤外線波長、遠赤外線波長、およびマイクロ波波長で放出する。
【0017】
本明細書で実証されるように、HMD105内の放射源によって放出される放射パターンをシミュレートして、実際の放射パターンが、ハンドコントローラ103で検出されたときに、ハンドコントローラ103の位置および向きを判断できるようにすることは、有利である。このために、各放射源130は、放射を既知の輝度プロファイルに従って放出し、そのようなプロファイルは、ハンドコントローラ103で受け取られた輝度を判断するために用いられ得る。ハンドコントローラ103は放射検出器140、例えば放射エネルギーを電気エネルギーに変換するフォトダイオードを含むため、ハンドコントローラ103の位置および向きは、検出器140で受信される放射プロファイルを決定する。検出器140の回路は、受信プロファイルに基づいて、これもシミュレートされてもよい、電気信号を生成する。メモリ136内でLUT138に記録されるのは、この回路によって生成される信号である。本明細書で論じられるものを含むいくつかの実装形態では、ハンドコントローラ103内に複数の放射検出器があってもよい。
【0018】
図1Cおよび
図1Dは、NIR波長について、
図1Bに示されるLEDに典型的な放射輝度グラフの例示的な対を示す図である。そのような輝度プロファイルは、本明細書で説明される実装形態において、ハンドコントローラ103によって受信される放射信号をシミュレートするよう用いることができる。各グラフには、左側に極座標プロットおよび右側にデカルトプロットの、プロットの対がある。極座標プロットは、輝度がLEDの垂直軸に対する極角の関数である放射プロファイルの半分を示す。デカルトプロットは同じプロットを示すが、輝度の、より小さな値の、より詳細な検査を示す。
【0019】
図1Cに示されるように、グラフは比較的狭い輝度プロファイルを示す。すなわち、輝度はLEDの垂直軸から比較的速く減少する。しかしながら、デカルトプロットは、輝度がLEDの水平軸に向かってよりゆっくりと減少することを示す。対照的に、
図1Dのグラフは、比較的広いプロファイルを示す。つまり、輝度はLEDの垂直軸から比較的ゆっくりと減少する。しかしながら、デカルトプロットは、輝度がLEDの水平軸に向かってより速く減少することを示す。
【0020】
図2は、各LED放射トランスミッタについて、ハンドコントローラ103内のフォトダイオードで受け取られた、シミュレートされた放射のプロットの配列を示す図である。シミュレーションでは、
図1Bに示される12個のLEDの位置および向きを、
図1Cおよび
図1Dに例が示されている輝度データとともに用いた。各プロットは平面のヒートマップであり、明るい部分は最も高い受信強度の領域を表し、暗い部分は最も低い受信強度の領域を表す。各プロットの水平軸および垂直軸は、ハンドコントローラの受信領域に沿った位置、たとえばフォトダイオードのすぐ上の位置を表す。
【0021】
図3Aは、ミリ秒の時間スケールにわたる例示的なシミュレートされた放射パルス列のプロットを示す図である。
図3Aのプロットは、LEDから受け取られ、フォトダイオードに入射し、その後アナログ‐デジタル変換(ADC)される拡散電磁放射のパルスから生じるパルス列の積分強度(フォトダイオードの領域にわたる)を表す。デジタルパルスの周期は、0.1ミリ秒より少し大きい。
【0022】
拡散放射に起因するパルス信号の時間的側面は、LUTにおけるパターンが時間依存であることを意味する。したがって、本明細書で実証されるように、実信号をLUTにおけるパターンと比較するプロセスは、実信号をLUTに同期させて、パターンの正しい位相を判断することを含む。
【0023】
上のプロットのパルス列の周波数成分は、約1000Hz(パルス列の1/周期)を中心とする大量の周波数を含み得るが、ある程度の低周波数(信号のDC部分に関連付けられる)および少量の高周波も伴う。低周波数成分および高周波数成分は、両方とも、望ましくないさまざまなノイズの寄与に関連付けられる可能性があり、ハンドコントローラ103の位置および向きの導出に不正確さを引き起こす可能性がある。したがって、VRシステム100は、いくつかの実装形態では、バンドパスフィルタを含んでもよい。例示のパルス列に適用された例示のバンドパスフィルタの結果が、下のプロットに示される。
【0024】
図3Bは、ミリ秒単位の時間に対するフィルタリングされた信号電圧をボルト単位で示すプロットである。フィルタリングされたパルス列の周期はフィルタリングされていないパルス列と同じであるが、振幅および位相が変わっている。LUT138におけるパターンの位相を判断するのは、このバンドパスフィルタリングされたパルス列である。
【0025】
上述のように、ハンドコントローラでの放射のシミュレーションは、ハンドコントローラ105がHMD105の放射源130から放射を受け取ることに応じて、ハンドコントローラの位置および向きを判断するために用いられるLUT138を構築するために必要である。上記の議論は、ハンドコントローラ103で受け取られる放射の空間的および時間的特性を示した。加えて、VRシステム100によって受信される実際の電気信号の正確なシミュレーションのために、受信機の特性も必要になる場合がある。
【0026】
図4Aは、ハンドコントローラ103におけるフォトダイオード放射検出器140(
図1A参照)の例示的なセットを示す。フォトダイオードは、事前に指定されたパターンでハンドコントローラ103の表面に沿って配置され、各フォトダイオードは、その表面に入射する放射に応じて独自の信号を生成する。
【0027】
図4Bは、ハンドコントローラにおけるフォトダイオードの例示的な伝達関数のプロットである。このプロットでは、伝達関数はバンドパスフィルタに典型的であり、低周波数fHおよび高周波数fLより下では0である。このプロットは、さらに、フォトダイオードのノイズプロファイルを示しており、1/fノイズは臨界周波数fc<fH未満であり、DCノイズは臨界周波数fcより上であると予想される。
【0028】
図4Cは、フォトダイオードおよびバンドパスフィルタの概略回路図である。回路図には、2つのオペアンプが示される。第1のオペアンプは拡散放射の入射パルスによって生成された信号を増幅し、第2のオペアンプは周囲光によって生成された電流を打ち消す。このような構成により、ハンドコントローラで用いられるフォトダイオードは、周囲光やその他のDCノイズに対して堅牢とされる。
【0029】
VRシステム100がハンドコントローラ103を介して受信および処理される信号を判断すると、VRシステム100は次にハンドコントローラ103の位置を判断する。通常は、可能なハンドコントローラの位置のセットは、VRシステムの構成(たとえば、ハンドコントローラのVRシステムへの接続など)によって制約される。
【0030】
図5Aは、ハンドコントローラ位置の例示的な制限された空間を示す図である。
図5Aの制限された空間は、3次元座標空間において立体オブジェクトの形をとる。逆ピラミッドのような形をした立体オブジェクトは、ハンドコントローラが占有できる空間内のすべての可能な位置のセットを表す。この立体オブジェクトの各点には、その点に対してハンドコントローラを保持できる、可能なすべての向きのセットがある。離散サンプリングの場合、可能な各離散位置は、ボクセルまたはボリュームピクセル、つまり3次元ピクセルとして表される。
図5B、
図5C、および
図5Dは、それぞれ、制限された空間の上面図、側面図、および正面図を示す。
【0031】
図4Aでは、典型的には、ハンドコントローラ103において複数のフォトダイオードがあることが想起される。各フォトダイオードは、VRシステム用の独自のパルス列信号を生成する。LUTは最終的に各信号を個別に表してもよい。LUT138は、例えば平均化することにより、複数の信号を単一の信号に結合してもよい。
【0032】
図6は、HMD105におけるLEDからのパルス拡散放射の受け取りでハンドコントローラ103におけるフォトダイオードによって出力される例示的なパルス列を示す図である。この例では、9つのフォトダイオードがある。この例の各フォトダイオードは、
図1Bに示す12個のLEDの各々から、それぞれの相異なる信号を生成する。各フォトダイオードはLEDに対して異なる遠近関係を持つため、各フォトダイオードは異なる信号列を生成する。
【0033】
図7は、例示的なLUT138を示す図である。
図7に示すLUT139は、カラープロットとして表示されるが、実際にはボクセルインデックスと時間とでインデックス付けされた一連の離散パターンである。ボクセルインデックスは、ハンドコントローラが取り得る、可能な離散的な位置および向きの整数関数である。たとえば、ボクセルインデックスは、3つの位置座標(X、Y、Z)の各々と3つの角度座標(ピッチ、ヨー、ロール)との、丸められた重み付き一次結合であってもよい。これらの3つの位置座標および3つの角度座標は、ボクセルインデックスから一意に判断されるべきである。
【0034】
図7のLUT138の各離散的要素は、ハンドコントローラに配置された各フォトダイオードに1つずつの、9つのパターンのセットである。これらのラインに沿って、ADCおよびバンドパスフィルタから出力される信号は2つの部分に分割される。第1の短い部分はパターンの時間または位相を判断するために用いられ、第2の長い部分は最適のボクセルインデックスを判断するために用いられる。
図7に示すLUT138の場合、最適な行は、パターンの第1の部分を特定の列におけるパターンの各々にマッチングさせることに基づいて判断される。いくつかの構成では、時間は、たとえば列全体のパターンを平均することにより、複数の列にわたって最適な行を見つけることによって、判断される。次に、最適な行を検索して、最適なボクセルインデックスを見つける。
【0035】
図8は、ハンドコントローラ103が取っている可能性が最も高い位置を判断する例示的なプロセスを示す図である。
図8に示すように、フォトダイオードの配列は、各々、拡散放射のパルスの受信に応じて、それぞれのADCに信号を出力する。次いで、各ADCはデジタル信号を出力し、デジタル信号はデジタル信号プロセッサに入力されてノイズを軽減し、他の信号との干渉を検出する。次に、最終デジタル信号が検出され、LUT138との相関演算に入力される。相関演算の出力は、
図5に示すボクセルのヒートマップである。
【0036】
ボクセルの3次元ヒートマップは、ボクセルインデックスを3次元オブジェクトにおける位置に逆マッピングした結果である。この3次元ヒートマップは、ボクセルで表される位置にハンドコントローラが存在する可能性を表す。
図8に示す例では、明るい領域は、ハンドコントローラがとる可能性が最も高い位置を表し、暗い領域は、ハンドコントローラがとる可能性が最も低い位置を表す。
【0037】
一部の実装形態では、相関演算によるヒートマップの生成を、各フォトダイオードで生成された信号をLUTで表された信号で差分し、差分の二乗または絶対値を平均してメトリックを生成することにより行う。ヒートマップの色は、その場合、メトリックの値に基づいてもよい。
【0038】
最も可能性の高い位置から、第2の3次元ヒートマップを、ボクセルインデックスに基づく向きについて、同様の方法で生成してもよく、ハンドコントローラの最も可能性の高い向きをこの第2のヒートマップから導出してもよい。
【0039】
最も可能性の高い姿勢が3Dヒートマップから導出されると、ボクセルおよび外部信号によって引き起こされるノイズを除去するために、さらに時間的な追跡およびフィルタリングが行われる。次に、このフィルタリングされた結果は、特定の瞬間のハンドコントローラの姿勢としてVRシステム100に入力される。
【0040】
図9Aは、フォトダイオード回路のトランスインピーダンス増幅器(TIA)部分からDCノイズ電流を差し引くための回路トポロジーの例示的なセットを示す図である。示されている第1のトポロジー(「トポロジー1」)では、このようなDC電流を差し引く追加の回路はなく、回路のゲインプロファイルには、周囲光に対する感度を表し得る非常に大きく不要な低周波数成分がある。示されている第2のトポロジー(「トポロジー2」)では、回路が変更され、分圧器の両側に2つの抵抗が配置される。このような分圧器は、TIA出力から低周波電流を引き離すのに役立ち得る。その結果、低周波数での回路のゲインが減少し、第1のトポロジーよりも改善される。
【0041】
第3のトポロジー(「トポロジー3」)は、TIAの出力に接続されTIAにフィードバックされるサーボループを有する。その結果は、しきい値周波数を下回る0ゲインであり、低周波およびDC電流がTIAから必要に応じて打ち消されたことを示す。サーボループのさらなる詳細が
図9bに示されている。
【0042】
図9Bは、TIAにおいて低周波およびDC電流を打ち消す
図9Aのサーボループを示す図である。サーボループは、TIA出力に接続される第2のオペアンプと、オペアンプの出力に接続され、TIAに入力し戻されるローパスフィルタとを含む。低周波電流がオペアンプで受け取られ、低周波電流は誤差増幅器で低周波電圧を生成する。低周波電流の受け取りに応じて、オペアンプは低周波電圧と基準電圧との差に比例する制御電圧を生成する。次いで、制御電圧はローパスフィルタに入力され、制御電圧から負電流が生成される。負電流は、低周波数電流を分圧器単独よりも効果的にTIAから引き抜く。
【0043】
本明細書で開示する要素およびインターフェイスの1つまたは複数を複製し、並列に実装し、単数で実装し、組み合わせ、分割し、再構成し、省略し、除去し、および/または他の方法で実装することができる。さらに、開示される要素およびインターフェイスのいずれも、
図10に関連して以下で説明する例示的なプロセッサプラットフォームP00およびP50などのプロセッサ、コンピュータおよび/またはプロセッサを有するマシンによって実装されてもよい。プロセッサの例には、回路、プログラマブルプロセッサ、ヒューズ、特定用途向け集積回路(ASIC)、プログラマブルロジックデバイス(PLD)、フィールドプログラマブルロジックデバイス(FPLD)、フィールドプログラマブルゲートアレイ(FPGA)、デジタルシグナルプロセッサ(DSP)、グラフィックス処理装置(GPU)、中央処理装置(CPU)、マイクロコントローラ、コントローラなどが含まれるが、これらに限定はされない。本明細書で開示される要素およびインターフェイスのいずれも、例えば、プロセッサ、コンピュータ、および/またはプロセッサを有するマシンのうちの1つまたは複数によって実行される命令、プログラムコード、機械可読命令などとして実装されてもよい。プロセッサ、コンピュータおよび/またはプロセッサを有するマシンを使用、構成および/またはプログラミングして、本明細書に開示される例を実行してもよい。例えば、例のいずれも、
図10に関連して以下で説明する例示的なプロセッサプラットフォームP00およびP50などのプロセッサ、コンピュータおよび/またはプロセッサを有するマシンによってアクセス可能な有形および/または非一時的なコンピュータ可読媒体に格納された命令、プログラムコード、機械可読命令などで具現化されてもよい。機械可読命令には、たとえば、プロセッサ、コンピュータ、および/またはプロセッサを有するマシンに1つまたは複数の特定のプロセスまたは方法を実行させる命令が含まれる。
図10の要素の1つまたは複数を組み込んだこの特許の請求項が純粋にソフトウェアおよび/またはファームウェアの実装形態を保護するように読まれる場合、
図10の要素のうちの少なくとも1つは、本明細書により、ファームウェアおよび/またはソフトウェアなどの機械可読命令を記憶する有形の機械可読媒体などの有形の製造品を含むように明示的に定義される。
【0044】
本明細書で開示される例示的な方法は、例えば、プロセッサ、コンピュータ、および/またはプロセッサを有する他のマシンによって実行される命令、プログラムコード、機械可読命令として実現されてもよい。プロセッサ、コントローラ、および/または
図10に示されているような他の任意の適切な処理デバイスは、例示的な方法を実行するよう使用、構成、および/またはプログラムされてもよい。例えば、それらは、
図10との関連で以下に論じられるもののような、プロセッサ、コンピュータおよび/またはプロセッサを有する他のマシンによってアクセス可能な有形および/または非一時的なコンピュータ可読媒体に格納された命令、プログラムコード、および/または機械可読命令において実施されてもよい。例示的な方法を実現する他の多くの方法が採用されてもよい。例えば、実行の順序を変更することができ、および/または説明したブロックおよび/または対話の1つまたは複数を変更、削除、再分割、または組み合わせることができる。加えて、例示的な方法のいずれかまたは全体は、例えば、別個の処理スレッド、プロセッサ、デバイス、離散的ロジック、回路などによって、順次および/または並列で実行されてもよい。
【0045】
本明細書で用いられる「コンピュータ可読媒体」および「機械可読媒体」という用語は、伝搬信号を明示的に除外する。コンピュータ可読媒体または機械可読媒体の例には、揮発性および/または不揮発性メモリ、揮発性および/または不揮発性メモリデバイス、コンパクトディスク(CD)、デジタル多用途ディスク(DVD)、読み取り専用メモリ(ROM)、ランダムアクセスメモリ(RAM)、フラッシュドライブ、フロッピー(登録商標)ディスク、同期ダイナミックランダムアクセスメモリ(SDRAM)、ダイナミックランダムアクセスメモリ(DRAM)、RAMBUSダイナミックランダムアクセスメモリ(RDRAM)、プログラマブルROM(PROM)、電子的にプログラム可能なROM(EPROM)、電子的に消去可能なPROM(EEPROM)、ソリッドステート(SS)メモリ、ソリッドステートディスク(SSD)、光学式ストレージディスク、光学式ストレージデバイス、磁気ストレージディスク、ネットワーク接続ストレージ(NAS)デバイス、磁気ストレージデバイス、キャッシュ、および/または情報が任意の期間(例:長期間、永続的、短い瞬間、一時的なバッファリング、および/または情報のキャッシュ用に)格納されプロセッサ、コンピュータ、および/またはプロセッサを有する他のマシンからアクセスできるその他の記憶媒体の1つまたは任意の組み合わせが含まれるが、これらに限定はされない。
【0046】
図10は、ここに記載される技術とともに用いられてもよい汎用コンピュータデバイスP00および汎用モバイルコンピュータデバイスP50の例を示す。コンピューティングデバイスP00は、ラップトップ、デスクトップ、タブレット、ワークステーション、携帯情報端末、テレビ、サーバ、ブレードサーバ、メインフレーム、および他の適切なコンピューティングデバイスといった、様々な形態のデジタルコンピュータを表わすことを意図している。コンピューティングデバイスP50は、携帯情報端末、セルラー電話、スマートフォン、および他の同様のコンピューティングデバイスといった、様々な形態のモバイルデバイスを表わすことを意図している。ここに示すコンポーネント、それらの接続および関係、ならびにそれらの機能は例示であることが意図されているに過ぎず、本文書に記載のおよび/または請求項に記載の本発明の実現例を限定することを意図していない。
【0047】
コンピューティングデバイスP00は、プロセッサP02、メモリP04、記憶装置P06、メモリP04および高速拡張ポートP10に接続している高速インターフェイスP08、ならびに低速バスP14および記憶装置P06に接続している低速インターフェイスP12を含む。プロセッサP02は、半導体ベースのプロセッサであることができる。メモリP04は、半導体ベースのメモリであることができる。コンポーネントP02,P04,P06,P08,P10およびP12の各々は様々なバスを用いて相互に接続されており、共通のマザーボード上にまたは他の態様で適宜搭載され得る。プロセッサP02は、コンピューティングデバイスP00内で実行される命令を処理可能であり、この命令には、GUIのためのグラフィック情報を高速インターフェイスP08に結合されているディスプレイP16などの外部入出力デバイス上に表示するためにメモリP04内または記憶装置P06上に記憶されている命令が含まれる。他の実現例では、複数のプロセッサおよび/または複数のバスが、複数のメモリおよび複数種類のメモリとともに必要に応じて用いられ得る。また、複数のコンピューティングデバイスP00が接続され得、各デバイスは(例えばサーババンク、ブレードサーバのグループ、またはマルチプロセッサシステムとして)必要な動作の一部を提供する。
【0048】
メモリP04は情報をコンピューティングデバイスP00内に記憶する。一実現例では、メモリP04は1つまたは複数の揮発性メモリユニットである。別の実現例では、メモリP04は1つまたは複数の不揮発性メモリユニットである。また、メモリP04は、磁気ディスクまたは光ディスクといった別の形態のコンピュータ読取可能媒体であってもよい。
【0049】
記憶装置P06は、コンピューティングデバイスP00に大容量記憶を提供可能である。一実現例では、記憶装置P06は、フロッピー(登録商標)ディスクデバイス、ハードディスクデバイス、光ディスクデバイス、またはテープデバイス、フラッシュメモリもしくは他の同様のソリッドステートメモリデバイス、またはストレージエリアネットワークもしくは他のコンフィギュレーションにおけるデバイスを含む多数のデバイスといった、コンピュータ読取可能媒体であってもよく、または当該コンピュータ読取可能媒体を含んでいてもよい。コンピュータプログラムプロダクトが情報媒体内に有形に具体化され得る。また、コンピュータプログラムプロダクトは、実行されると上述のような1つ以上の方法を実行する命令を含み得る。情報媒体は、メモリP04、記憶装置P06、またはプロセッサP02上のメモリといった、コンピュータ読取可能媒体または機械読取可能媒体である。
【0050】
高速コントローラP08はコンピューティングデバイスP00のための帯域幅集約的な動作を管理するのに対して、低速コントローラP12はより低い帯域幅集約的な動作を管理する。そのような機能の割当ては例示に過ぎない。一実現例では、高速コントローラP08はメモリP04、ディスプレイP16に(例えばグラフィックスプロセッサまたはアクセラレータを介して)、および様々な拡張カード(図示せず)を受付け得る高速拡張ポートP10に結合される。当該実現例では、低速コントローラP12は記憶装置P06および低速拡張ポートP14に結合される。様々な通信ポート(例えばUSB、ブルートゥース(登録商標)、イーサネット(登録商標)、無線イーサネット)を含み得る低速拡張ポートは、キーボード、ポインティングデバイス、スキャナ、またはスイッチもしくはルータといったネットワーキングデバイスなどの1つ以上の入出力デバイスに、例えばネットワークアダプタを介して結合され得る。
【0051】
コンピューティングデバイスP00は、図に示すように多数の異なる形態で実現されてもよい。例えば、コンピューティングデバイスP00は標準的なサーバP20として、またはそのようなサーバのグループ内で複数回実現されてもよい。また、コンピューティングデバイスP00はラックサーバシステムP24の一部として実現されてもよい。さらに、コンピューティングデバイスP00はラップトップコンピュータP22などのパーソナルコンピュータにおいて実現されてもよい。あるいは、コンピューティングデバイスP00からのコンポーネントは、デバイスP50などのモバイルデバイス(図示せず)内の他のコンポーネントと組合されてもよい。そのようなデバイスの各々がコンピューティングデバイスP00,P50の1つ以上を含んでいてもよく、システム全体が、互いに通信する複数のコンピューティングデバイスP00,P50で構成されてもよい。
【0052】
コンピューティングデバイスP50は、数あるコンポーネントの中でも特に、プロセッサP52、メモリP64、ディスプレイP54などの入出力デバイス、通信インターフェイスP66、およびトランシーバP68を含む。また、デバイスP50には、マイクロドライブまたは他のデバイスなどの記憶装置が提供されて付加的なストレージが提供されてもよい。コンポーネントP50,P52,P64,P54,P66およびP68の各々は様々なバスを用いて相互に接続されており、当該コンポーネントのいくつかは共通のマザーボード上にまたは他の態様で適宜搭載され得る。
【0053】
プロセッサP52は、メモリP64に記憶されている命令を含む、コンピューティングデバイスP50内の命令を実行可能である。プロセッサは、別個の複数のアナログおよびデジタルプロセッサを含むチップのチップセットとして実現されてもよい。プロセッサは、例えば、ユーザインターフェイス、デバイスP50が実行するアプリケーション、およびデバイスP50による無線通信の制御といった、デバイスP50の他のコンポーネントの協調を提供し得る。
【0054】
プロセッサP52は、ディスプレイP54に結合された制御インターフェイスP58およびディスプレイインターフェイスP56を介してユーザと通信し得る。ディスプレイP54は、例えば、TFT LCD(薄膜トランジスタ液晶ディスプレイ)もしくはOLED(有機発光ダイオード)ディスプレイ、または他の適切なディスプレイ技術であり得る。ディスプレイインターフェイスP56は、ディスプレイP54を駆動してグラフィックおよび他の情報をユーザに提示するための適切な回路を含み得る。制御インターフェイスP58はユーザからコマンドを受信し、当該コマンドをプロセッサP52に提出するために変換し得る。さらに、外部インターフェイスP62が、デバイスP50と他のデバイスとの隣接通信を可能にするために、プロセッサP52と通信した状態で提供されてもよい。外部インターフェイスP62は、例えば、ある実現例では有線通信を提供し、他の実現例では無線通信を提供してもよく、また、複数のインターフェイスが用いられてもよい。
【0055】
メモリP64は情報をコンピューティングデバイスP50内に記憶する。メモリP64は、1つもしくは複数のコンピュータ読取可能媒体、1つもしくは複数の揮発性メモリユニット、または1つもしくは複数の不揮発性メモリユニットの1つ以上として実現され得る。さらに、拡張メモリP74が提供され、例えばSIMM(Single In Line Memory Module)カードインターフェイスを含み得る拡張インターフェイスP72を介してデバイスP50に接続されてもよい。このような拡張メモリP74はデバイスP50に余分のストレージスペースを提供し得るか、またはデバイスP50のためのアプリケーションもしくは他の情報をさらに記憶し得る。具体的には、拡張メモリP74は上述のプロセスを実行または補足するための命令を含み得、さらにセキュア情報を含み得る。ゆえに、例えば、拡張メモリP74はデバイスP50のためのセキュリティモジュールとして提供されてもよく、デバイスP50のセキュアな使用を許可する命令でプログラムされてもよい。さらに、ハッキング不可能なようにSIMMカード上に識別情報を置くといったように、セキュアなアプリケーションが付加的な情報とともにSIMMカードを介して提供されてもよい。
【0056】
メモリは、以下に記載のように、例えばフラッシュメモリおよび/またはNVRAMメモリを含み得る。一実現例では、コンピュータプログラムプロダクトが情報媒体内に有形に具体化される。コンピュータプログラムプロダクトは、実行されると上述のような1つ以上の方法を実行する命令を含む。情報媒体は、メモリP64、拡張メモリP74、またはプロセッサP52上のメモリといった、コンピュータ読取可能媒体または機械読取可能媒体であり、これは、例えばトランシーバP68または外部インターフェイスP62上で受信され得る。
【0057】
デバイスP50は、必要に応じてデジタル信号処理回路を含み得る通信インターフェイスP66を介して無線通信し得る。通信インターフェイスP66は、とりわけ、GSM(登録商標)音声通話、SMS、EMS、またはMMSメッセージング、CDMA、TDMA、PDC、WCDMA(登録商標)、CDMA2000、またはGPRSといった、様々なモードまたはプロトコル下の通信を提供し得る。そのような通信は、例えば無線周波数トランシーバP68を介して起こり得る。さらに、ブルートゥース、Wi-Fi、または他のそのようなトランシーバ(図示せず)を用いるなどして、短距離通信が起こり得る。さらに、GPS(全地球測位システム)レシーバモジュールP70が付加的なナビゲーション関連および位置関連の無線データをデバイスP50に提供し得、当該データはデバイスP50上で実行されるアプリケーションによって適宜用いられ得る。
【0058】
また、デバイスP50は、ユーザから口頭情報を受信して当該情報を使用可能なデジタル情報に変換し得る音声コーデックP60を用いて可聴的に通信し得る。音声コーデックP60も同様に、例えばデバイスP50のハンドセット内で、スピーカを介すなどしてユーザに可聴音を生成し得る。そのような音は音声電話からの音を含んでいてもよく、録音された音(例えば音声メッセージ、音楽ファイル等)を含んでいてもよく、さらに、デバイスP50上で実行されるアプリケーションが生成する音を含んでいてもよい。
【0059】
コンピューティングデバイスP50は、図に示すように多数の異なる形態で実現されてもよい。例えば、コンピューティングデバイスP50はセルラー電話P80として実現されてもよい。また、コンピューティングデバイスP50は、スマートフォンP82、携帯情報端末、または他の同様のモバイルデバイスの一部として実現されてもよい。
【0060】
図11は、
図1Aに示される頭部装着型ディスプレイの例示的実現例である。
図11において、HMD700を装着しているユーザはポータブルハンドヘルド電子デバイス702を保持している。ハンドヘルド電子デバイス702は、例えば、HMD700によって生成される没入型仮想環境における対話のためにHMD700とペアにされ通信することができるスマートフォン、コントローラ、ジョイスティック、または他のポータブルハンドヘルド電子デバイスとすることができる。ハンドヘルド電子デバイス702は、例えば、有線接続、または例えばWiFiもしくはBluetooth(登録商標)接続などの無線接続を介して、HMD700と動作可能に結合されるか、またはペアリングされることができる。ハンドヘルド電子デバイス702とHMD700とのこのペアリングまたは動作可能な結合は、ハンドヘルド電子デバイス702とHMD700との間の通信、およびハンドヘルド電子デバイス702とHMD700との間のデータの交換を提供することができる。これにより、ハンドヘルド電子デバイス602は、HMD700によって生成された没入型仮想環境内で対話するためにHMD700と通信するコントローラとして機能することが可能になる。すなわち、たとえば、ハンドヘルド電子デバイス702によって放出され、選択のために仮想オブジェクトもしくは機能に向けられたビームもしくは光線など、および/またはハンドヘルド電子デバイス702のタッチ面で受信された入力、および/またはハンドヘルド電子デバイス702の動きなどのような、ハンドヘルド電子デバイス702の操作は、HMD700によって生成される没入型仮想環境において、対応する選択、移動、または他の種類の対話に変換することができる。例えば、HMD700は、ハンドヘルド電子デバイス702とともに、上述のような仮想環境を生成してもよく、ハンドヘルド電子デバイス702は、上述の仮想環境内の仮想機能に対するユーザーのスケールまたは遠近感における変化をもたらすように操作されてもよい。
【0061】
図12Aおよび
図12Bは、例えば
図11のユーザが着用するHMD700などの例示的なHMDの斜視図であり、
図12Cは、例えば
図11に示されるハンドヘルド電子デバイス702などの例示的なハンドヘルド電子デバイスを示す。
【0062】
ハンドヘルド電子デバイス802は、デバイス802の内部コンポーネントが収容されるハウジング803と、ユーザがアクセス可能なハウジング803の外側のユーザインターフェイス804とを含むことができる。ユーザインターフェイス804は、ユーザタッチ入力を受信するように構成されたタッチセンシティブ面806を含むことができる。ユーザインターフェイス804は、例えば、作動ボタン、ノブ、ジョイスティックなど、ユーザによる操作のための他のコンポーネントも含むことができる。いくつかの実装形態では、ユーザインターフェイス804の少なくとも一部をタッチスクリーンとして構成することができ、ユーザインターフェイス804のその部分は、ユーザインターフェイスアイテムをユーザに表示し、また、タッチセンシティブ面806でユーザからタッチ入力を受信するように構成される。ハンドヘルド電子デバイス802は、例えば、ユーザインターフェイス804で受信されたユーザ入力に応じて、ハウジング803におけるポートを通して、例えばビームまたは光線などの光を選択的に発光するように構成された光源808を含むこともできる。
【0063】
HMD800は、フレーム820に結合されるハウジング810を含むことができ、例えば、ヘッドホンに取り付けられるスピーカを含む音声出力装置830も、フレーム820に結合されてもよい。
図8Bにおいて、ハウジング810の前部分810aは、ハウジング810のベース部分810bから離れるように回転され、ハウジング810に収容されたコンポーネントのいくつかが見える。ディスプレイ840は、ハウジング810の前部分810aの内部に面する側に取り付けられてもよい。前部分810aがハウジング810のベース部分810bに対して閉位置にあるときに、レンズ850は、ハウジング810においてユーザの目とディスプレイ840との間に取り付けられてもよい。いくつかの実装形態では、HMD800は、HMD800の動作を容易にするよう、様々なセンサを含む検知システム860と、プロセッサ890および様々な制御システムデバイスを含む制御システム870とを含んでもよい。
【0064】
いくつかの実装形態では、HMD800は、静止画像および動画像をキャプチャするようカメラ880を含んでもよい。カメラ880によってキャプチャされた画像は、現実世界、もしくは仮想環境に対する物理的環境における、ユーザおよび/もしくはハンドヘルド電子デバイス802の物理的位置の追跡を支援するために使用されてもよく、ならびに/またはディスプレイ840上においてパススルーモードでユーザに表示され、HMD800を取り外したり、もしくはそうでなければHMD800の構成を変更してハウジング810をユーザの視線から移動させることなく、ユーザが一時的に仮想環境を離れて物理的環境に戻ることを可能にしてもよい。
【0065】
いくつかの実装形態では、HMD800は、ユーザの目での注視を検出および追跡するための注視追跡装置865を含んでもよい。注視追跡装置865は、例えば、ユーザの目の画像、例えば、瞳孔のようなユーザの目の特定の部分の画像をキャプチャして、ユーザの注視の方向および移動を検出ならびに追跡するよう、画像センサ865Aまたは複数の画像センサ865Aを含んでもよい。いくつかの実装形態では、HMD800は、検出された注視が没入型仮想体験における対応する対話に変換されるべきユーザ入力として処理されるように構成されてもよい。
【0066】
本明細書に記載のシステムおよび技術の様々な実現例は、デジタル電子回路、集積回路、特別に設計されたASIC(特定用途向け集積回路)、コンピュータハードウェア、ファームウェア、ソフトウェア、および/またはそれらの組合せで実現され得る。これらの様々な実現例は、少なくとも1つのプログラマブルプロセッサを含むプログラマブルシステム上で実行可能および/または解釈可能な1つ以上のコンピュータプログラムにおける実現例を含んでいてもよく、当該プロセッサは専用であっても汎用であってもよく、ストレージシステム、少なくとも1つの入力デバイス、および少なくとも1つの出力デバイスからデータおよび命令を受信するように、かつこれらにデータおよび命令を送信するように結合されている。
【0067】
これらのコンピュータプログラム(プログラム、ソフトウェア、ソフトウェアアプリケーションまたはコードとしても公知)はプログラマブルプロセッサのための機械命令を含んでおり、高レベル手続きおよび/もしくはオブジェクト指向プログラミング言語で、ならびに/またはアセンブリ/機械言語で実現され得る。本明細書において使用する「機械読取可能媒体」「コンピュータ読取可能媒体」という用語は、機械命令および/またはデータをプログラマブルプロセッサに提供するために用いられる任意のコンピュータプログラムプロダクト、装置および/またはデバイス(例えば磁気ディスク、光ディスク、メモリ、プログラマブルロジックデバイス(PLD))を指し、機械命令を機械読取可能信号として受信する機械読取可能媒体を含む。「機械読取可能信号」という用語は、機械命令および/またはデータをプログラマブルプロセッサに提供するために用いられる任意の信号を指す。
【0068】
ユーザとの相互作用を提供するために、本明細書に記載のシステムおよび技術は、情報をユーザに表示するためのディスプレイデバイス(例えばCRT(陰極線管)またはLCD(液晶ディスプレイ)モニタ)と、ユーザが入力をコンピュータに提供する際に使用可能なキーボードおよびポインティングデバイス(例えばマウスまたはトラックボール)とを有するコンピュータ上で実現され得る。他の種類のデバイスを用いてユーザとの相互作用を提供することもでき、例えば、ユーザに提供されるフィードバックは任意の形態の感覚フィードバック(例えば視覚フィードバック、聴覚フィードバック、または触覚フィードバック)であり得、ユーザからの入力は、音響、スピーチ、または触覚入力を含む任意の形態で受信され得る。
【0069】
本明細書に記載のシステムおよび技術は、バックエンドコンポーネントを(例えばデータサーバとして)含む、またはミドルウェアコンポーネントを(例えばアプリケーションサーバとして)含む、またはフロントエンドコンポーネント(例えば、ユーザが上記のシステムおよび技術の実現例と相互に作用する際に使用可能なグラフィックユーザインターフェイスもしくはウェブブラウザを有するクライアントコンピュータ)、またはそのようなバックエンド、ミドルウェア、もしくはフロントエンドコンポーネントの任意の組合せを含むコンピューティングシステムにおいて実現され得る。システムのコンポーネントは、任意の形態または媒体のデジタルデータ通信(例えば通信ネットワーク)によって相互に接続され得る。通信ネットワークの例として、ローカルエリアネットワーク(「LAN」)、ワイドエリアネットワーク(「WAN」)、およびインターネットが挙げられる。
【0070】
コンピューティングシステムはクライアントおよびサーバを含み得る。クライアントおよびサーバは一般に互いにリモートであり、典型的に通信ネットワークを介して相互に作用する。クライアントとサーバとの関係は、それぞれのコンピュータ上で実行されて互いにクライアント-サーバ関係を有するコンピュータプログラムによって生じる。
【0071】
多数の実施形態を説明した。しかしながら、本発明の精神および範囲から逸脱することなく様々な変更がなされ得ることが理解されるであろう。
【0072】
ある要素が他の要素の上にある、他の要素に接続されている、他の要素に電気的に接続されている、他の要素に結合されている、または他の要素に電気的に結合されていると称される場合、それは他の要素の直接上にある、他の要素に直接接続される、もしくは他の要素に直接結合されてもよく、または1つ以上の介在要素が存在してもよいことも理解される。対照的に、ある要素が他の要素の直接上にある、他の要素に直接接続されている、または他の要素に直接結合されていると称される場合、介在する要素は存在しない。詳細な説明全体を通して、直接上にある、直接接続されている、または直接結合されているという表現は使用されない場合があるが、直接上にある、直接接続されている、または直接結合されていると図示されている要素は、そのように称され得る。本願の請求項は、明細書に記載されているかまたは図面に示されている例示的な関係を記載するよう補正される場合がある。
【0073】
記載された実現例の特定の特徴が本明細書に記載されているように示されているが、当業者には多くの修正、置換、変更および均等物がここで思い浮かぶであろう。したがって、特許請求の範囲は、実現例の範囲内にあるすべてのそのような修正および変更を包含するように意図されていることを理解されたい。それらは限定ではなく単なる例として提示されたものであり、形態および細部の様々な変更がなされ得ることを理解されたい。相互排他的な組み合わせを除いて、本明細書に記載の装置および/または方法の任意の部分を、任意の組み合わせで組み合わせることができる。本明細書で説明される実現例は、説明される異なる実現例の機能、構成要素、および/または特徴の様々な組合せおよび/または下位組合せを含むことができる。
【0074】
加えて、図面において示される論理フローは、望ましい結果を達成するために、示された特定の順序または連続する順序を必要としない。さらに、説明されたフローから、他のステップが与えられてもよく、またはステップが削除されてもよく、他の構成要素が、説明されたシステムに追加され、またはそこから除去されてもよい。従って、他の実施形態は以下の請求の範囲内にある。
【0075】
実施形態の例:
実施形態1:
ハンドコントローラとヘッドマウントディスプレイ(HMD)とを含む仮想現実(VR)システムにおいて、ハンドコントローラの位置および向きを追跡する方法であって、
処理回路が、HMDに配置された複数の放射トランスミッタからの拡散電磁放射のパルスを受け取ることと、
処理回路が、拡散電磁放射からデジタル信号を生成することと、
処理回路が、デジタル信号に基づいてハンドコントローラの位置および向きを取得することとを備える、方法。
【0076】
実施形態2:
デジタル信号に基づいてハンドコントローラの位置および向きを取得することは、
デジタル信号をルックアップテーブル(LUT)の複数の信号表現と比較することを含み、複数の信号表現の各々はハンドコントローラのそれぞれの位置および向きに対応する、実施形態1の方法。
【0077】
実施形態3:
LUTの複数の信号表現の各所定の信号表現は、HMDに配置された複数の放射トランスミッタの各々に対するそれぞれの信号部分を含む、実施形態1または2の方法。
【0078】
実施形態4:
LUTの複数の信号表現の各所定の信号表現は、拡散放射のパルスがHMDの複数の拡散放射トランスミッタから送信される時間に対応する、実施形態2または3の方法。
【0079】
実施形態5:
デジタル信号は、第1の部分と第2の部分とを含み、
デジタル信号をLUTの複数の信号表現の所定の信号表現と比較することは、
拡散放射のパルスがHMDの複数の拡散放射トランスミッタから送信される時間をデジタル信号の第1の部分に基づいて生成することと、
信号の第2の部分と、拡散放射のパルスがHMDの複数の拡散放射トランスミッタから送信される時間とに基づいて、ハンドコントローラの位置および向きを生成することとを含む、実施形態4の方法。
【0080】
実施形態6:
複数の拡散放射トランスミッタは、HMD内に特定の角度パターンで配置される、実施形態2~5のいずれか1つの方法。
【0081】
実施形態7:
処理回路はフォトダイオードを含み、
方法は、さらに、HMDの各拡散放射トランスミッタからの照明に対するフォトダイオードの応答のシミュレーションを実行することにより、LUTをオフラインで生成することを備え、フォトダイオードの応答は、ノイズプロファイルと信号プロファイルとを有する伝達関数を有し、信号プロファイルは、上側周波数と下側周波数とを有する特定の周波数帯域外では0であり、ノイズプロファイルは信号プロファイルの周波数帯域の下側周波数を下回る臨界周波数を下回る1/fノイズを含む、実施形態2~6のいずれか1つの方法。
【0082】
実施形態8:
デジタル信号をLUTの複数の信号表現と比較することは、
検出された拡散放射のパターンに対するLUTの信号表現の近さを示すヒートマップを生成することを含み、ヒートマップは、信号表現が検出された拡散放射のパターンに対応するホット領域と、信号表現が検出された拡散放射のパターンに対応しないクール領域とを含み、デジタル信号をLUTの複数の信号表現と比較することはさらに、
ヒートマップのホット領域において信号表現を選択することを含む、実施形態2~7のいずれか1つの方法。
【0083】
実施形態9:
ヒートマップは3次元位置空間にプロットされ、
LUTのホット領域内で信号表現を選択することは、ハンドコントローラの位置をヒートマップのホット領域における座標トリプレットとして識別することを含む、実施形態8の方法。
【0084】
実施形態10:
LUTのホット領域内で信号表現を選択することは、
ハンドコントローラの位置として識別されるヒートマップのホット領域内の座標トリプレットで第2のヒートマップを生成することをさらに含み、第2のヒートマップは3次元のピッチヨーロール角空間にプロットされ、第2のヒートマップは、信号表現が検出された拡散放射のパターンに対応するホット領域と、信号表現が検出された拡散放射のパターンに対応しないクール領域とを含み、LUTのホット領域内で信号表現を選択することはさらに、
第2のヒートマップのホット領域で信号表現を選択することを含む、実施形態9の方法。
【0085】
実施形態11:
ハンドコントローラは、(i)拡散電磁放射のパルスから第1の電流を生成し、HMDに配置された複数の放射トランスミッタの外部の放射源から受け取った外部放射から第2の電流を生成するように構成されたトランスインピーダンス増幅器(TIA)と、(ii)第2の電流を打ち消すように構成された誤差増幅器とを含み、
方法はさらに、
誤差増幅器で第2の電流を受け取ることをさらに備え、第2の電流は誤差増幅器で第2の電圧を生成し、方法はさらに、
第2の電流を受け取ることに応じて、第2の電圧と基準電圧との差に比例する制御電圧を生成することと、
制御電圧から負の電流を生成することとを備え、負の電流はTIAから第2の電流を引き抜く、実施形態2から10のいずれか1つの方法。
【0086】
実施形態12:
非一時的記憶媒体を備えるコンピュータプログラム製品であって、ヘッドマウントディスプレイ(HMD)も含む仮想現実(VR)システムのハンドコントローラの処理回路によって実行されると、処理回路に方法を実行させるコードを含み、方法は、
HMDに配置された複数の放射トランスミッタからの拡散電磁放射のパルスを受け取ることと、
拡散電磁放射からデジタル信号を生成することと、
デジタル信号に基づいてハンドコントローラの位置および向きを取得することとを備える、コンピュータプログラム製品。
【0087】
実施形態13:
デジタル信号に基づいてハンドコントローラの位置および向きを取得することは、
デジタル信号をルックアップテーブル(LUT)の複数の信号表現と比較することを含み、複数の信号表現の各々はハンドコントローラのそれぞれの位置および向きに対応する、実施形態12のコンピュータプログラム製品。
【0088】
実施形態14:
LUTの複数の信号表現の各所定の信号表現は、HMDに配置された複数の放射トランスミッタの各々に対するそれぞれの信号部分を含む、実施形態13のコンピュータプログラム製品。
【0089】
実施形態15:
ヘッドマウントディスプレイ(HMD)とハンドコントローラとを含む仮想現実(VR)システムであって、
メモリと、
メモリに結合される制御回路とを備え、制御回路は、
HMDに配置された複数の放射トランスミッタからの拡散電磁放射のパルスを受け取り、
拡散電磁放射からデジタル信号を生成し、
デジタル信号に基づいてハンドコントローラの位置および向きを取得するよう構成される、仮想現実(VR)システム。