(57)【特許請求の範囲】
【請求項１】
システムであって、
仮想現実（ＶＲ）ヘッドセットであって、前部剛体と、後部剛体と、前記前部剛体および後部剛体の各々に配置された複数のロケータと、前記仮想現実ヘッドセット上の参照点の１つ又は複数の中間推定位置を含む高速較正データを出力するように構成される慣性測定ユニット（ＩＭＵ）とを含み、前記１つ又は複数の中間推定位置は、前記仮想現実ヘッドセットの推定された位置を示し、各中間推定位置は、位置時刻値により後続する中間推定位置から隔てられ、前記前部剛体は、前記後部剛体に非剛性結合されている、前記仮想現実ヘッドセットと、
前記仮想現実ヘッドセットの外部にある撮像デバイスであって、該撮像デバイスは、前記仮想現実ヘッドセットの複数の画像を取得し、前記仮想現実ヘッドセットに配置された複数のロケータの観測ロケータの部分を示す一連の画像を含む低速較正データを出力するように構成され、各画像は、前記位置時刻値よりも大きな画像時刻値により、前記一連中の後続画像から隔てられる、前記撮像デバイスと、
仮想現実コンソールと、を備え、
前記仮想現実コンソールは、
プロセッサと、
前記プロセッサに結合され、命令を含むメモリと、を備え、
前記命令は、前記プロセッサによって実行されると、前記プロセッサに、
低速較正データ及び高速較正データを用いて前記仮想現実ヘッドセットを追跡すること、を実行させる、システム。
【請求項２】
前記慣性測定ユニットは、角速度を測定する３軸ジャイロスコープを含む、請求項１に記載されたシステム。
【請求項３】
前記慣性測定ユニットは、３軸加速度計を含む、請求項１に記載されたシステム。
【請求項４】
前記慣性測定ユニットは、３軸磁力計を含む、請求項１に記載されたシステム。
【請求項５】
前記複数のロケータは、同一平面ではない仮想現実ヘッドセットのパターンで配置される、請求項１に記載されたシステム。
【請求項６】
前記複数のロケータは、複数の発光ダイオード（ＬＥＤ）である、請求項１に記載されたシステム。
【請求項７】
前記複数の発光ダイオードは、時間間隔にわたり２つ以上の所定の輝度レベルのうちの１つを維持するように変調される、請求項６に記載されたシステム。
【請求項８】
前記複数の発光ダイオードの変調は、振幅変調、周波数変調、及びこれらの組合せからなるグループから選択される、請求項７に記載されたシステム。
【請求項９】
前記複数の発光ダイオードは、可視帯域及び赤外線帯域からなるグループから選択された特定の帯域の光を発する、請求項６に記載されたシステム。
【請求項１０】
前記複数のロケータは、赤外線帯域で照射し、
前記仮想現実ヘッドセットの外面は、赤外線帯域で可視であり、可視帯域で不透明である、請求項７に記載されたシステム。
【請求項１１】
前記命令は、
前記プロセッサによって実行されると、前記プロセッサに、
前記仮想現実ヘッドセットに関連付けられた記憶ヘッドセットモデルを使用して、前記仮想現実ヘッドセットにあり、前記低速較正データからの少なくとも１つの画像に含まれるロケータにそれぞれ対応するモデルロケータを識別すること、
前記仮想現実ヘッドセットのモデルを使用して、前記仮想現実ヘッドセットにあり、前記低速較正データからの少なくとも１つの画像に含まれる前記ロケータの１つ又は複数の推定位置を生成すること、
１つ又は複数の較正パラメータを調整して、前記仮想現実ヘッドセットにあり、前記低速較正データからの少なくとも１つの画像に含まれる前記ロケータの１つ又は複数の調整推定位置と対応するモデルロケータの位置との相対距離が閾値未満であるように、前記推定位置を調整すること、
少なくとも部分的に、前記仮想現実ヘッドセットにあり、前記低速較正データからの少なくとも１つの画像に含まれる前記ロケータの１つ又は複数の調整推定位置に基づいて、前記参照点の較正位置を生成することであって、較正位置には、前記低速較正データからの画像が関連付けられる、前記較正位置を生成すること、
少なくとも部分的に、前記参照点の較正位置に基づいて、前記参照点の１つ又は複数の予測位置を特定することであって、予測位置には、前記低速較正データからの後続画像間の時間が関連付けられる、前記予測位置を特定すること、
前記参照点の中間推定位置が、前記参照点の特定された予測位置の閾値距離内にあるように、前記較正パラメータの１つ又は複数を調整すること、を実行させる較正命令を含む、請求項１に記載のシステム。
【請求項１２】
前記前部剛体は、前記慣性測定ユニットを含む、請求項１に記載されたシステム。
【請求項１３】
前記前部剛体は、弾性ヘッドバンドによって後部剛体に非剛性結合される、請求項１２に記載されたシステム。
【請求項１４】
較正命令をさらに備え、
前記較正命令は、前記プロセッサによって実行されると、前記プロセッサに、
前記低速較正データを使用して、特定の画像時刻値での前記後部剛体の観測位置を特定すること、
前記高速較正データと、前記前部剛体と前記後部剛体との較正オフセットを示す位置ベクトルとを使用して、前記特定の画像時刻値での前記後部剛体の予測位置を特定すること、
前記観測位置と前記予測位置との差が閾値よりも大きいと判断すること、
前記後部剛体の観測位置と前記後部剛体の予測位置との差が閾値よりも大きいとの判断に応答して、前記観測位置と前記予測位置との差が前記閾値未満であるようなオフセット値により、前記位置ベクトルを調整すること、
前記高速較正データ及び調整された位置ベクトルに基づいて、前記画像時刻値後に発生する後続画像時刻値に関連付けられた前記一連の画像からの画像での前記後部剛体の後続予測位置を特定すること、を実行させる、請求項１２に記載されたシステム。
【請求項１５】
システムであって、
仮想現実（ＶＲ）ヘッドセットであって、前部剛体と、後部剛体と、前記前部剛体および後部剛体の各々に配置された複数のロケータと、前記仮想現実ヘッドセット上の参照点の１つ又は複数の中間推定位置を含む高速較正データを出力するように構成される慣性測定ユニット（ＩＭＵ）とを含み、前記１つ又は複数の中間推定位置は、前記仮想現実ヘッドセットの推定された位置を示し、各中間推定位置は、位置時刻値により後続する中間推定位置から隔てられ、前記前部剛体は、前記後部剛体に非剛性結合されている、前記仮想現実ヘッドセットと、
前記仮想現実ヘッドセット上の前記複数のロケータの観測ロケータの部分を示す一連の画像を含む低速較正データを出力するように構成される撮像デバイスであって、各画像は、前記位置時刻値よりも大きな画像時刻値により、前記一連中の後続画像から隔てられる、前記撮像デバイスと、
仮想現実コンソールと、を備え、
前記仮想現実コンソールは、
プロセッサと、
前記プロセッサに結合され、命令を含むメモリと、を備え、
前記命令は、前記プロセッサによって実行されると、前記プロセッサに、
低速較正データ及び高速較正データを用いて前記仮想現実ヘッドセットを追跡すること、を実行させる、システム。
【請求項１６】
前記複数のロケータは、時間間隔にわたり２つ以上の所定の輝度レベルのうちの１つを維持するように変調される発光ダイオード（ＬＥＤ）を含む、請求項１５に記載されたシステム。
【請求項１７】
前記複数の発光ダイオードの変調は、振幅変調、周波数変調、及びこれらの組合せからなるグループから選択される、請求項１６に記載されたシステム。
【請求項１８】
前記複数の発光ダイオードは、可視帯域及び赤外線帯域からなるグループから選択された特定の帯域の光を発する、請求項１６に記載されたシステム。
【請求項１９】
前記複数の発光ダイオードは、赤外線帯域で照射し、
前記仮想現実ヘッドセットの外面は、赤外線帯域で可視であり、可視帯域で不透明である、請求項１８に記載されたシステム。
【請求項２０】
前記前部剛体は、前記慣性測定ユニットを含む、請求項１５に記載されたシステム。
【発明の詳細な説明】
【技術分野】
【０００１】
本開示は、概して較正システムに関し、より詳細には仮想現実システムの較正に関する。
【背景技術】
【０００２】
動作追跡は、多くのデバイスで対処されてきた昔からある問題である。例としては、全地球測位システム、航空機レーダシステム、ロボットシステム、及び家庭娯楽システムが挙げられる。最後の事例では、既存のデバイスは、ゲームコントローラ又はゲームと対話する人々の動きを追跡する。
【０００３】
幾つかの重要な特性により、最も適切な検知及び計算ハードウェアのタイプが決まる：１）剛体のサイズ、２）剛体が移動し得る空間の容積、３）剛体の最大速度及び加速度の限界、４）剛体の予測可能性。
【０００４】
動作追跡システムでは、通常、比較的小さな空間にある間、通常、屋内で着座している間に人体に対して保持されるデバイスの動きを追跡する必要があるが、これは必要なことではない。より詳細には、その意図は、ユーザがヘッドマウントディスプレイを装着している間、頭部の動きを追跡することである。これは、システムの性能に対して極めて厳しい要件を生じさせる。例えば、仮想現実では、位置及び向きのエラーは、ユーザが真の没入を感じないため、不良な経験を生じさせる。さらに、ディスプレイを見ている間、人間の前庭系によって脳に提供される信号と、人間の視覚系によって脳に提供される信号との不一致があり得る。
【０００５】
この使用例は、動きが生じ得る空間の容積に制限を課す。これは、さらに、人間の動きから誘導される速度及び加速度への速度及び加速度を制限するが、一般に動きが予測不可能であることも極めて重要である。さらに、人体の動きの複雑性及び他の剛体との人体の対話により、動きを支配する物理学をモデリングすることは困難である。
【発明の概要】
【発明が解決しようとする課題】
【０００６】
仮想現実（ＶＲ）デバイスは、ユーザが装着したヘッドセットの位置及び動きを特定する構成要素を含む。これらの構成要素は、最初は製造許容差に起因し、続けてシステムの通常の使用に起因して、様々なときに較正する必要がある。較正されたＶＲデバイスを不適切に動作させると、ヘッドセットの位置又は動きの追跡が不適切になり、これは、ユーザの動きとヘッドセットを介してユーザに提示されるメディアとの間に不一致を生じさせる。さらに、ヘッドのセットの位置及び動きを特定する構成要素の１つ又は複数は、時間の経過に伴い又は使用に伴い較正を失うおそれがある。例えば、温度又は振動の変化は、ヘッドセットの動きを撮像しているカメラの較正を失わせるおそれがある。
【課題を解決するための手段】
【０００７】
ＶＲシステムの仮想現実（ＶＲ）ヘッドセットは、一緒に非剛性結合される前部剛体及び後部剛体を含む。例えば、前部剛体は、弾性ヘッドバンドによって後部剛体に結合され、それにより、ＶＲシステムは、前部剛体がＶＲシステムに含まれる撮像デバイスから離れて向けられたとき、ＶＲヘッドセットを装着しているエンティティの動きを引き続き検出する。前部剛体及び後部剛体は両方とも、ＶＲヘッドセットの位置を追跡するためのロケータを含む。ロケータとは、ＶＲヘッドセットの別のロケータ等の１つ又は複数の構成要素に相対するとともに、ＶＲヘッドセット上の参照点に相対して、ＶＲヘッドセット上の特定の位置に配置される物体である。前部剛体と後部剛体との関係は必ずしも一定ではないため、ＶＲシステムは、後部剛体に相対する前部剛体の位置の追跡を失い、ＶＲシステムに再較正させて、ＶＲヘッドセットの追跡を再取得させることがある。幾つかの実施形態では、ＶＲコンソールは、後部剛体に対する前部剛体の再較正を行うことができるまで、高速較正データと、オフセット値によって調整された位置ベクトルとを使用して、後部剛体からのロケータのみを含む低速較正データ内の画像の特定の画像時刻値後の時間での後部剛体の後続予測位置を特定する。
【０００８】
ＶＲシステムは、前部剛体の位置又は後部剛体の位置の追跡が失われるとき、それ自体を較正する。例えば、ＶＲシステムは、後部体のロケータの推定位置と、前部剛体に含まれる１つ又は複数の位置センサ（例えば、加速度計、ジャイロスコープ）からのデータに基づいて前部剛体内の慣性測定ユニット（ＩＭＵ）によって特定される前部剛体の参照点の中間推定位置との測定差に基づいて、いつ再較正するかを決定する。参照点の中間推定位置は、高速較正データから特定される位置であり、画像に関連付けられた時間又は画像に関連付けられた時間と低速較正データからの後続画像との間の時間が関連付けられ得る。
【０００９】
仮想現実（ＶＲ）システムの構成要素は、ＶＲシステムに関連付けられたＶＲヘッドセットの追跡を維持するように較正される。ＶＲシステムは、撮像デバイスから受信される低速較正データ及びＶＲヘッドセットに含まれる慣性測定ユニット（ＩＭＵ）から受信される高速較正データを較正に使用する。幾つかの実施形態では、ＶＲシステムの構成要素は、まず１つ又は複数のデフォルトパラメータを構成要素に適用することによって較正し得る。デフォルトパラメータに基づいて、ＶＲシステムは、ＶＲヘッドセットに含まれる１つ又は複数のロケータに関連付けられた位置を識別することにより、ＶＲヘッドセットの動きを追跡する。ロケータとは、ＶＲヘッドセットの別のロケータ等の１つ又は複数の構成要素に相対するとともに、ＶＲヘッドセット上の参照点に相対して、ＶＲヘッドセット上の特定の位置に配置される物体である。幾つかの実施形態では、ＶＲヘッドセットは、互いに非剛性結合された２つの剛体を含み、ロケータは、ユーザの頭部の位置及び向きを追跡するために、各剛体に含まれる。ＶＲシステムは、閾値未満である１つ又は複数のロケータの観測位置と１つ又は複数のロケータの推定位置との間の差まで、１つ又は複数の較正パラメータを調整する。
【００１０】
幾つかの実施形態では、ＶＲシステムは、撮像デバイスからのＶＲヘッドセットの複数のロケータの部分を示す一連の画像を含む低速較正データを受信するＶＲコンソールを含む。各画像は、画像時刻値により、一連内の後続画像から隔てられる。さらに、ＶＲコンソールは、ＶＲヘッドセットに含まれるＩＭＵから、ＶＲヘッドセットの参照点の１つ又は複数の中間位置を含む高速較正データを受信する。参照点の中間推定位置は、高速較正データから特定される位置であり、画像に関連付けられた時間又は画像に関連付けられた時間と低速較正データからの後続画像との間の時間が関連付けられ得る。ＩＭＵは、ＶＲヘッドセットに含まれる１つ又は複数の位置センサ（例えば、加速度計、ジャイロスコープ）からのデータに基づいて、参照点の中間推定位置を特定する。各中間推定位置は、画像時間未満値である位置時刻値により、後続中間推定位置から隔てられる。
【００１１】
幾つかの実施形態では、ＶＲシステムに含まれるＶＲコンソールは、撮像デバイスから画像時刻値において撮影されたＶＲヘッドセットの一連の画像を含む低速較正データを受信する。一連の画像の少なくとも１つの画像は、後部剛体のロケータのみを含み、特定の画像時刻値が関連付けられる。さらに、ＶＲコンソールは、ＩＭＵから、ＶＲヘッドセットの前部剛体に含まれる１つ又は複数の位置センサから特定されるＶＲヘッドセットの前部剛体の参照点の１つ又は複数の中間推定位置を含む高速較正データを受信する。ＶＲコンソールは、低速較正データを使用して、特定の画像時刻値での後部剛体の観測位置を特定し、高速較正データと、前部剛体と後部剛体との較正オフセットを示す位置ベクトルとを使用して、ＶＲヘッドセットの後部剛体のみからのロケータを含む画像に関連付けられた画像時刻値での後部剛体の予測位置を特定する。
【００１２】
ＶＲコンソールは、後部剛体の観測位置と後部剛体の予測位置との差を特定する。この差が閾値よりも大きい場合、ＶＲコンソールは、後部剛体の観測位置と後部剛体の予測位置との差が閾値未満であるような一時的オフセット値により、後部剛体の予測位置を調整する。幾つかの実施形態では、ＶＲコンソールは、後部剛体への前部剛体の再較正を行うことができるまで、高速較正データと、オフセット値により調整された位置ベクトルとを使用して、後部剛体からのロケータのみを含む低速較正データ内の画像の特定の画像時刻値後の画像の後部剛体の後続予測位置を特定する。
【００１３】
再較正は、後部剛体のロケータのみを含む画像の特定の時間後の時間を有し、少なくとも、前部剛体の前部閾値数の観測ロケータ及び後部剛体の後部閾値数の観測ロケータを含む、低速較正データからの少なくとも１つの画像を使用する。ＶＲコンソールは、ＶＲヘッドセットのヘッドセットモデルを使用して、低速較正データ内の画像からの観測ロケータに対応するモデルロケータを識別する。例えば、ＶＲコンソールは、低速較正データ内の画像からロケータ情報を抽出し、ロケータ情報は、所与の画像内の互いに対する、ＶＲヘッドセットの観測ロケータの位置を示す。低速較正データからの画像の少なくとも１つでは、ＶＲコンソールは、前部剛体及び後部剛体の両方の観測ロケータに対応するモデルロケータを識別する。ＶＲコンソールは、ロケータ情報をヘッドセットモデルと比較して、観測ロケータに対応するモデルロケータを識別する。
【００１４】
ロケータ情報に基づいて、ＶＲコンソールは、ヘッドセットモデルを使用して観測ロケータの推定位置を生成する。例えば、ＶＲコンソールは、ヘッドセットモデルと、観測ロケータの位置を識別する情報とを使用して、（ヘッドセットモデルによって記述される）理想的な位置を（観測ロケータの画像によって示される）撮像デバイスの画像平面上の位置に変換するための射影行列を特定する。ＶＲコンソールは射影行列を使用して、観測ロケータの位置を推定する。ＶＲコンソールは、射影行列を使用して観測ロケーションの位置を推定し、１つ又は複数の較正パラメータを調整して、前部剛体の観測ロケータの調整推定位置と、ヘッドセットモデル観測ロケーションによって特定される対応する位置との相対距離が閾値未満になるまで、前部剛体の観測ロケータの推定位置の１つ又は複数を調整する。同様に、ＶＲコンソールは、後部剛体の観測ロケータの推定位置を特定し、上述したように、後部剛体の観測ロケーションの推定位置を調整する。前部剛体の観測ロケータの調整推定位置に基づいて、ＶＲコンソールは、低速較正データからの１つ又は複数の画像の前部剛体の参照点の較正位置を特定する。
【００１５】
ＶＲコンソールは、前部剛体の参照点に相対する後部剛体の位置を特定する。例えば、ＶＲコンソールは、後部剛体の観測ロケータの調整推定位置を使用して、後部剛体の後部参照点を識別する。次に、ＶＲコンソールは、前部剛体の参照点に相対する後部参照点の位置を識別する。代替の実施形態では、ＶＲコンソールは、前部剛体の参照点に相対する後部剛体の各観測ロケータの位置を識別する。ＶＲコンソールはさらに、前部剛体の参照点及び／又は後部参照点の中間推定位置が、前部剛体の参照点の較正位置及び／又は低速較正データからの後部参照点の較正位置（例えば、曲線近似を介して）から特定される前部剛体及び／又は後部剛体の参照点の予測位置の閾値内であるように、１つ又は複数の較正パラメータを調整する。
【００１６】
ＶＲシステムの実施形態は、多数とは対照的に単一のカメラのみを使用することにより、高精度の追跡を提供するとともに、体の表面に上手く分散した多数のＬＥＤを通して高精度を達成する。変調手法により、各ＬＥＤは一意に識別することができ、その結果、オクルージョン及び近傍の光源からの干渉に対するロバスト性がより高いシステムになる。さらに、変調手法はデジタルハードウェアと併せて、消費電力を低減し、その理由は、ＬＥＤが、カメラシャッタが開かれているときのみ給電されるためである。
【００１７】
ＶＲシステムは、仮想現実及び拡張現実に適するレベルの性能で、同時に既存の技術と比較して経済的要件及び論理的要件を劇的に低減しながら、ヘッドマウントディスプレイ又はゲームコントローラ等の他の物体を追跡する問題を解消する。
【図面の簡単な説明】
【００１８】
【図１】実施形態による仮想現実コンソールが動作するシステム環境のブロック図である。
【図２Ａ】実施形態による仮想現実ヘッドセットのワイヤ図である。
【図２Ｂ】実施形態による前部剛体及び後部剛体を含む仮想現実ヘッドセットのワイヤ図である。
【図３】実施形態による仮想現実コンソールの追跡モジュールのブロック図である。
【図４】実施形態による仮想現実システムを較正するプロセスのフローチャートである。
【図５】実施形態による、仮想現実システムに含まれる仮想現実ヘッドセット内の２つの剛体間に較正を再確立するプロセスのフローチャートである。
【図６】実施形態による、仮想現実システムに含まれる仮想現実ヘッドセット内の２つの剛体間の位置関係を維持するプロセスのフローチャートである。
【図７】実施形態による、仮想現実ヘッドセットの一連の較正位置を示すグラフ例である。
【図８】位置追跡システムの高レベル図例である。
【図９】観測された明るいドット及び予測射影の例を示す。
【図１０】ポーズ最適化の例を示す。
【発明を実施するための形態】
【００１９】
図は、単に例示を目的として本開示の実施形態を示す。以下の説明から、本明細書に記載される本開示の原理又は得られる利点から逸脱せずに、本明細書に示される構造及び方法の代替の実施形態が利用可能であることを当業者は容易に認識しよう。
【００２０】
システムアーキテクチャ
図１は、ＶＲコンソール１１０が動作する仮想現実（virtual reality : ＶＲ）システム環境１００の一実施形態のブロック図である。図１に示されるシステム環境１００は、ＶＲヘッドセット１０５と、撮像デバイス１３５と、ＶＲ入力インターフェース１４０とを備え、それぞれがＶＲコンソール１１０に結合されている。図１は、１つのＶＲヘッドセット１０５、１つの撮像デバイス１３５、及び１つのＶＲ入力インターフェース１４０を含む例としてのシステム１００を示すが、他の実施形態では、任意の数のこれらの構成要素がシステム１００に含まれ得る。例えば、それぞれが関連付けられたＶＲ入力インターフェース１４０を有し、１つ又は複数の撮像デバイス１３５によってモニタされる複数のＶＲヘッドセット１０５があり得、各ＶＲヘッドセット１０５、ＶＲ入力インターフェース１４０、及び撮像デバイス１３５は、ＶＲコンソール１１０と通信する。代替の構成では、異なる及び／又は追加の構成要素がシステム環境１００に含まれ得る。
【００２１】
ＶＲヘッドセット１０５は、メディアをユーザに提示するヘッドマウントディスプレイである。ＶＲヘッドセットによって提示されるメディアの例としては、１つ又は複数の画像、ビデオ、オーディオ、又はそれらの何らかの組合せが挙げられる。幾つかの実施形態では、オーディオは、オーディオ情報をＶＲヘッドセット１０５、ＶＲコンソール１１０、又は両方から受信し、オーディオ情報に基づいてオーディオデータを提示する外部デバイス（例えば、スピーカ及び／又はヘッドフォン）を介して提示される。ＶＲヘッドセット１０５の実施形態例については、図２Ａ及び図２Ｂと併せて更に後述する。
【００２２】
様々な実施形態では、ＶＲヘッドセット１０５は、互いに剛性結合又は非剛性結合し得る１つ又は複数の剛体（rigid body）を備え得る。剛体間の剛性結合は、結合された剛体を単一の剛性実体として機能させる。逆に、剛体間の非剛性結合は、剛体が互いに対して移動できるようにする。一緒に非剛性結合される２つの剛体を含むＶＲヘッドセット１０５の実施形態について、図２Ｂと併せて更に後述する。
【００２３】
ＶＲヘッドセット１０５は、電子ディスプレイ１１５、１つ又は複数のロケータ（locator）１２０、１つ又は複数の位置センサ１２５、及び慣性測定ユニット（ＩＭＵ：ｉｎｅｒｔｉａｌ  ｍｅａｓｕｒｅｍｅｎｔ  ｕｎｉｔ）１３０を含む。電子ディスプレイ１１５は、ＶＲコンソール１１０から受信されるデータに従って画像をユーザに表示する。様々な実施形態では、電子ディスプレイ１１５は、単一の電子ディスプレイ又は複数の電子ディスプレイ（例えば、ユーザのそれぞれの目に１つのディスプレイ）を含み得る。電子ディスプレイ１１５の例としては、液晶ディスプレイ（ＬＣＤ）、有機発光ダイオード（ＯＬＥＤ）ディスプレイ、アクティブマトリックス式有機発光ダイオード（ＡＭＯＬＥＤ）、何らかの他のディスプレイ、又はそれらの何らかの組合せが挙げられる。さらに、電子ディスプレイ１１５には、１つ又は複数のタイプの光学エラー（例えば、像面歪曲、収差、樽形歪曲、糸巻歪曲、色収差等）を補正する１つ又は複数の光学構成要素が関連付けられ得る。幾つかの実施形態では、ユーザに提示するために電子ディスプレイ１１５に提供されるメディアは、１つ又は複数のタイプの光学エラーの補正を補助するために予め歪ませられる。さらに、光学構成要素は、倍率又は別の適する方法を通して、表示されたメディアの視野を増大させることができる。例えば、表示されるメディアの視野は、表示されるメディアがユーザの視野の略全て（例えば、１１０度対角）又は幾つかの場合では全てを使用して提示されるようなものである。
【００２４】
ロケータ１２０は、互いに相対するとともに、ＶＲヘッドセット１０５上の特定の参照点に相対してＶＲヘッドセット１０５上の特定の位置に配置される物体である。ロケータ１２０は、発光ダイオード（ＬＥＤ）、コーナーキューブリフレクタ、反射マーカ、ＶＲヘッドセット１０５が動作する環境と対照的な光源の一種、又はそれらの何らかの組合せであり得る。ロケータ１２０がアクティブ（すなわち、ＬＥＤ又は他のタイプの発光デバイス）である実施形態では、ロケータ１２０は、可視帯域（約３８０ｎｍ〜７５０ｎｍ）、赤外線（ＩＲ）帯域（約７５０ｎｍ〜１ｍｍ）、紫外線帯域（１０ｎｍ〜３８０ｎｍ）、電磁スペクトルの何らかの他の部分、又はそれらの組合せの光を発し得る。
【００２５】
幾つかの実施形態では、ロケータは、ロケータ１２０によって発せられるか、若しくは反射される光の波長を透過するか、又はロケータ１２０によって発せられるか、若しくは反射される光の波長を実質的に減衰させないほど十分に薄いＶＲヘッドセット１０５の外面の下に配置される。さらに、幾つかの実施形態では、ＶＲヘッドセット１０５の外面又は他の部分は、可視帯域で不透明である。したがって、ロケータ１２０は、ＩＲ帯域では透明であるか、可視帯域では不透明な外面下でＩＲ帯域の光を発し得る。
【００２６】
ＩＭＵ１３０は、位置センサ１２５の１つ又は複数から受信される測定信号に基づいて高速較正データを生成する電子デバイスである。位置センサ１２５は、ＶＲヘッドセット１０５の動きに応答して１つ又は複数の測定信号を生成する。位置センサ１２５の例としては、１つ又は複数の加速度計、１つ又は複数のジャイロスコープ、１つ又は複数の磁力計、任意の他の適するタイプのセンサ、又はそれらの何らかの組合せが挙げられる。位置センサ１２５は、ＩＭＵ１３０の外部、ＩＭＵ１３０の内部、又はそれらの何からの組合せに配置し得る。
【００２７】
１つ又は複数の位置センサ１２５からの１つ又は複数の測定信号に基づいて、ＩＭＵ１３０は、ＶＲヘッドセット１０５の初期位置に相対するＶＲヘッドセット１０５の推定位置を示す高速較正データを生成する。例えば、位置センサ１２５は、並進移動（前／後、上／下、左／右）を測定する複数の加速度計と、回転移動（例えば、ピッチ、ヨー、ロール）を測定する複数のジャイロスコープとを含む。幾つかの実施形態では、ＩＭＵ１３０は、測定信号を高速サンプリングし、サンプリングデータからＶＲヘッドセット１０５の推定位置を計算する。例えば、ＩＭＵ１３０は、加速度計から時間の経過に伴い受信した測定信号を積分して、速度ベクトルを推定し、時間の経過に伴って速度ベクトルを積分して、ＶＲヘッドセット１０５上の参照点の推定位置（例えば、中間推定位置）を測定する。代替的には、ＩＭＵ１３０は、サンプリングされた測定信号をＶＲコンソール１１０に提供し、ＶＲコンソール１１０は高速較正データを特定する。参照点とは、ＶＲヘッドセット１０５の位置の特定に使用し得る点である。参照点は一般に、空間内の点として定義し得るが、実際には、参照点は、ＶＲヘッドセット１０５内の点（例えば、ＩＭＵ１３０の中心）として定義される。
【００２８】
ＩＭＵ１３０は、１つ又は複数の較正パラメータをＶＲコンソール１１０から受信する。更に後述するように、１つ又は複数の較正パラメータは、ＶＲヘッドセット１０５の追跡を維持するために使用される。受信された較正パラメータ（例えば、ＩＭＵパラメータ）に基づいて、ＩＭＵ１３０は動作を調整（例えば、サンプリングレート等を変更）し得る。幾つかの実施形態では、更に後述するように、特定の較正パラメータは、ＩＭＵ１３０に、ＶＲヘッドセット１０５の推定位置をオフセットさせ、ＶＲヘッドセット１０５の特定の部分のみが撮像デバイス１３５に可視である場合に生じ得る位置エラーを補正する。幾つかの実施形態では、特定の較正パラメータは、参照点の初期位置が参照点の次の較正位置に対応するように、ＩＭＵ１３０に参照点の初期位置を更新させる。参照点の次の較正位置として、参照点の初期位置を更新することは、特定された推定位置に関連付けられた累積エラーを除去するのに役立つ。累積エラーは、ドリフトエラーとも呼ばれ、時間の経過に伴い、参照点の推定位置を参照点の実際の位置から離す。
【００２９】
撮像デバイス１３５は、ＶＲコンソール１１０から受信される較正パラメータに従って低速較正データを生成する。低速較正データは、撮像デバイス１３５によって検出可能なロケータ１２０の観測位置を示す１つ又は複数の画像を含む。撮像デバイス１３５は、１つ又は複数のカメラ、１つ又は複数のビデオカメラ、ロケータ１２０の１つ又は複数を含む画像を捕捉可能な任意の他のデバイス、又はそれらの任意の組合せを含み得る。さらに、撮像デバイス１３５は、１つ又は複数のフィルタ（例えば、信号対雑音比の増大に使用される）を含み得る。撮像デバイス１３５は、撮像デバイス１３５の視野にロケータ１２０から放射されるか、又は反射される光を検出するように構成される。ロケータ１２０が受動要素（例えば、再帰反射器）を含む実施形態では、撮像デバイス１３５は、ロケータ１２０の幾つか又は全てを照明する光源を含み得、ロケータ１２０は、光を撮像デバイス１３５内の光源に向けて再帰反射する。低速較正データは、撮像デバイス１３５からＶＲコンソール１１０に通信される。撮像デバイス１３５は、１つ又は複数の較正パラメータをＶＲコンソール１１０から受信し、較正パラメータに基づいて１つ又は複数の撮像パラメータ（例えば、焦点距離、焦点、フレームレート、ＩＳＯ、センサ温度、シャッタ速度、アパーチャ等）を調整し得る。
【００３０】
ＶＲ入力インターフェース１４０は、ユーザが動作要求をＶＲコンソール１１０に送信できるようにするデバイスである。動作要求は、特定の動作を実行する要求である。例えば、動作要求は、アプリケーションの開始若しくは終了又はアプリケーション内の特定の動作を実行する要求であり得る。ＶＲ入力インターフェース１４０は、１つ又は複数の入力デバイスを含み得る。入力デバイス例としては、キーボード、マウス、ゲームコントローラ、又は動作要求を受信し、受信した動作要求をＶＲコンソール１１０に通信する任意の他の適するデバイスが挙げられる。ＶＲ入力インターフェース１４０によって受信された動作要求は、ＶＲコンソール１１０に通信され、ＶＲコンソール１１０は、動作要求に対応する動作を実行する。幾つかの実施形態では、ＶＲ入力インターフェース１４０は、ＶＲコンソール１１０から受信される命令に従って触覚フィードバックをユーザに提供し得る。例えば、触覚フィードバックは、動作要求が受信されるときに提供されるか、又はＶＲコンソール１１０は、動作を実行するとき、ＶＲ入力インターフェース１４０に触覚フィードバックを生成させる命令をＶＲ入力インターフェース１４０に通信する。
【００３１】
ＶＲコンソール１１０は、撮像デバイス１３５、ＶＲヘッドセット１０５、及びＶＲ入力インターフェース１４０のうちの１つ又は複数から受信される情報に従って、ユーザに提示されるメディアをＶＲヘッドセット１０５に提供する。図１に示される例では、ＶＲコンソール１１０は、メディアストア１４５、追跡モジュール１５０、及び仮想現実（ＶＲ）エンジン１５５を含む。ＶＲコンソール１１０の幾つかの実施形態は、図１と併せて説明されるモジュールとは異なるモジュールを有する。同様に、更に後述する機能は、本明細書に記載されるものとは異なる様式でＶＲコンソール１１０の構成要素に分散し得る。
【００３２】
アプリケーションストア１４５は、ＶＲコンソール１１０による実行のために１つ又は複数のアプリケーションを記憶する。アプリケーションは、プロセッサによって実行されると、ユーザに提示されるメディアを生成する命令群である。アプリケーションによって生成されるメディアは、ＨＲヘッドセット１０５又はＶＲインターフェースデバイス１４０の動きを介してユーザから受信される入力に応答し得る。アプリケーション例としては、ゲーミングアプリケーション、会議アプリケーション、ビデオ再生アプリケーション、又は他の適するアプリケーションが挙げられる。
【００３３】
追跡モジュール１５０は、１つ又は複数の較正パラメータを使用してシステム環境１００を較正する。図３〜図５と併せて更に説明するように、追跡モジュール１５０は、１つ又は複数の較正パラメータを調整して、ＶＲヘッドセット１０５の位置特定におけるエラーを低減し得る。例えば、追跡モジュール１５０は、撮像デバイス１３５の合焦を調整して、ＶＲヘッドセット１０５の観測ロケータのより正確な位置を取得する。さらに、追跡モジュール１５０によって実行される較正は、ＩＭＵ１３０から受信される情報も考慮する。さらに、図４及び図５と併せて更に後述するように、ＶＲヘッドセット１０５のその追跡が失われる（例えば、撮像デバイス１３５が、少なくとも閾値数のロケータ１２０の視線を失う）場合、追跡モジュール１５０は、システム環境１００の幾つか又は全てを再較正する。本明細書で使用される場合、「追跡の損失（loss of tracking）」は一般に、撮像デバイス１３５若しくはＩＭＵ１３０の較正の損失、ＶＲヘッドセット１０５内の１つ又は複数の剛体の相対位置の損失、撮像デバイス１３５に相対するＶＲヘッドセット１０５の位置の損失、又はそれらの何らかの組合せを指し得る。
【００３４】
システム環境１００の再較正は一般に、ユーザにとってトランスペアレント（transparent）である。幾つかの実施形態では、追跡モジュール１５０は、ＶＲヘッドセット１０５をＶＲヘッドセット１０５の１つ又は複数の側が撮像デバイス１３５にとって可視である向きに移動するようにユーザに促し得る。例えば、追跡モジュール１５０は、ＶＲヘッドセット１０５の１つ又は複数の側が撮像デバイス１３５にとって可視であるように、上、下、左、右、又は別の指定された方向を見るようにユーザに促す。ＶＲヘッドセット１０５上の閾値数のロケータ１２０が撮像デバイス１３５によって撮像されると、追跡モジュール１５０は較正を再確立する。幾つかの実施形態では、追跡モジュール１５０は、システム環境１００を連続して較正し得るか、又は定期的な間隔でシステム環境１００を較正して、ＶＲヘッドセット１０５の正確な追跡を維持する。
【００３５】
追跡モジュール１５０は、１つ又は複数の剛体を備えるＶＲヘッドセット１０５を含むシステム環境１００（例えば、図２Ａ及び図２Ｂ参照）を較正し得る。さらに、図３及び図５と併せて更に後述するように、較正は、非剛性結合される（例えば、弾性バンドを介して一緒に結合される）２つの剛体を含むＶＲヘッドセット１０５を考慮する。２つの剛体は、ユーザの目の前に位置決めされるＩＭＵ１３０を含む前部剛体及びユーザの頭部の後部に位置決めされる後部剛体であり得る。前部剛体及び後部剛体のこの構成では、ユーザは撮像デバイス１３５に相対して３６０度回転させることができる。しかし、前部剛体と後部剛体との関係は必ずしも固定されないため、システム環境１００は、後部剛体に相対する前部剛体の位置の較正を失うことがある。さらに、図６に関して詳細に後述するように、幾つかの実施形態では、追跡がＶＲヘッドセット１０５での複数の剛体間で失われる場合、追跡モジュール１５０は、再較正を行うことができるまで、剛体の位置をオフセットし得る。これらの場合、幾つかの実施形態では、追跡モジュール１５０は、ＶＲヘッドセット１０５の中間推定位置へのオフセット値を特定し、較正パラメータとしてＩＭＵ１３０に提供し得る。代替的には、追跡モジュール１５０は、オフセット値により後部剛体への前部剛体の相対位置を示す位置ベクトルを調整し得る。幾つかの実施形態では、追跡モジュール１５０は、後部剛体のロケータ１２０によって示される動きと、ＩＭＵ１３０から受信される高速較正データを使用して予測される動きとの測定差に基づいて、いつ再較正するかを判断する。追跡モジュール１５０は、前部剛体のロケータ１２０と、後部剛体のロケータとを含む１つ又は複数の画像を含む低速較正データを使用して再較正する。
【００３６】
さらに、追跡モジュール１５０は、撮像デバイス１３からの低速較正データを使用して、ＶＲヘッドセット１０５の動きを追跡する。図３と併せて更に後述するように、追跡モジュール１５０は、低速較正データからの観測ロケータ及びＶＲヘッドセット１０５のモデルを使用して、ＶＲヘッドセット１０５の参照点の位置を特定する。追跡モジュール１５０は、高速較正データからの位置情報を使用して、ＶＲヘッドセット１０５の参照点の位置も特定する。さらに、幾つかの実施形態では、追跡モジュール１５０は、高速較正データの部分、低速較正データの部分、又はそれらの何らかの組合せを使用して、ヘッドセット１０５の将来のロケーションを予測し得る。追跡モジュール１５０は、ＶＲヘッドセット１０５の推定又は予測された将来の位置をＶＲエンジン１５５に提供する。
【００３７】
ＶＲエンジン１５５は、システム環境内のアプリケーションを実行し、追跡モジュール１５０からＶＲヘッドセット１０５の位置情報、加速度情報、速度情報、予測される将来の位置、又はそれらの何らかの組合せを受信する。受信した情報に基づいて、ＶＲエンジン１５５は、ユーザに提示するためにＶＲヘッドセット１０５に提供するメディアを決定する。例えば、受信した情報が、ユーザが左を見たことを示す場合、ＶＲエンジン１５５は、仮想環境でユーザの動きをミラーリングする、ＶＲヘッドセット１０５へのメディアを生成する。さらに、ＶＲエンジン１５５は、ＶＲ入力インターフェース１４０から受信される動作要求に応答して、ＶＲコンソール１１０で実行中のアプリケーション内で動作を実行し、動作が実行されたことのフィードバックをユーザに提供する。提供されたフィードバックは、ＶＲヘッドセット１０５を介する可視若しくは可聴的フィードバックであってもよく、又はＶＲ入力インターフェース１４０を介する触覚フィードバックであってもよい。
【００３８】
図２Ａは、仮想現実ヘッドセットの一実施形態のワイヤ図である。ＶＲヘッドセット２００は、ＶＲヘッドセット１０５の実施形態であり、前部剛体２０５及びバンド２１０を含む。前部剛体２０５は、電子ディスプレイ１１５（図示せず）、ＩＭＵ１３０、１つ又は複数の位置センサ１２５、及びロケータ１２０を含む。図２Ａに示される実施形態では、位置センサ１２５は、ＩＭＵ１３０内に配置され、位置センサ１２５もＩＭＵ１３０もユーザにとって不可視である。
【００３９】
ロケータ１２０は、互いに相対するとともに、参照点２１５に相対して前部剛体２０５の固定位置に配置される。図２Ａの例では、参照点２１５は、ＩＭＵ１３０の中心に配置される。各ロケータ１２０は、撮像デバイス１３５によって検出可能な光を発する。ロケータ１２０又はロケータ１２０の部分は、図２Ａの例では、前部剛体２０５の前側２２０Ａ、上側２２０Ｂ、下側２２０Ｃ、右側２２０Ｄ、及び左側２２０Ｅに配置される。
【００４０】
図２Ｂは、前部剛体２０５及び後部剛体２３０を含むＶＲヘッドセット２２５の実施形態のワイヤ図である。図２Ｂに示されるＶＲヘッドセット２２５は、前部剛体２０５及び後部剛体２３０がバンド２１０を介して一緒に結合されるＶＲヘッドセット１０５の実施形態である。バンド２１０は非剛性（例えば、弾性）であり、したがって、前部剛体２０５は後部剛体２３０に剛性結合されない。したがって、後部剛体２３０は、前部剛体２０５に関連して移動し得、特に、参照点２１５に関連して移動し得る。図３及び図５と併せて更に後述するように、後部剛体２３０は、前部剛体２０５が撮像デバイス１３５にとって不可視である場合であっても、ＶＲコンソール１１０がＶＲヘッドセット１０５の追跡を維持できるようにする。後部剛体２３０のロケータ１２０は、互いに相対するとともに、前部剛体２０５の参照点２１５に相対して固定位置に配置される。図２Ｂの例では、後部剛体２３０の１つ又は複数のロケータ１２０又はロケータ１２０の部分は、後部剛体２３０の前側２３５Ａ、上側２３５Ｂ、下側２３５Ｃ、右側２３５Ｄ、及び左側２３５Ｅに配置される。
【００４１】
図３は、ＶＲコンソール１１０に含まれる追跡モジュール１５０の一実施形態のブロック図である。追跡モジュール１５０の幾つかの実施形態は、本明細書に記載されるモジュールとは異なるモジュールを有する。同様に、図３と併せて説明される機能は、本明細書に記載されるものとは異なる様式で構成要素に分散し得る。図３の例では、追跡モジュール１５０は、追跡データベース３１０、初期化モジュール３２０、推定モジュール３３０、パラメータ調整モジュール３４０、及びモニタリングモジュール３５０を含む。
【００４２】
追跡データベース３１０は、１つ又は複数のＶＲヘッドセット１０５を追跡するために、追跡モジュール１５０によって使用された情報を記憶する。例えば、追跡データベース３１０は、１つ又は複数のヘッドセットモデル、１つ又は複数の較正パラメータ値、又はＶＲヘッドセット１０５の追跡に適する任意の他の情報を記憶する。図１に関して上で参照したように、ヘッドセットモデルは、互いに対し且つ参照点２１５に対する各ロケータ１２０の理想的な位置を記述する。各ロケータ１２０には、ヘッドセットモデル内の対応するモデルロケータ（model locator）が関連付けられ、したがって、ロケータ１２０に対応するモデルロケータは、ヘッドセットモデルに従ってロケータ１２０の理想的な位置を示す。さらに、ヘッドセットモデルは、異なる較正パラメータの関数として、ロケータ１２０のモデル位置又は参照点２１５の変化を示す情報を含み得る。幾つかの実施形態では、ヘッドセットモデルは、互いに対する後部剛体２３０上のロケータ１２０のモデル位置を記述し得、後部参照点のモデル位置は、後部剛体２３０の位置、前部剛体２０５上の参照点２１５に相対する後部参照点のデフォルト位置、参照点２１５に相対して後部剛体２３０上のロケータ１２０のモデル位置のデフォルト位置、又はそれらの何らかの組合せを示す。
【００４３】
較正パラメータは、ＶＲヘッドセット１０５の較正に影響を及ぼすように調整し得るパラメータである。較正パラメータの例としては、撮像パラメータ、ＩＭＵパラメータ、又はそれらの何らかの組合せが挙げられる。撮像パラメータ及びＩＭＵパラメータは、較正パラメータに含まれ得る。撮像パラメータの例としては、焦点距離、焦点、フレームレート、ＩＳＯ、シャッタ速度、アパーチャ、カメラの向き、ソースアクティブ化（撮像デバイス１３５が反射ロケータ１２０を照明するソースを使用する実施形態において）、撮像デバイス１３５のレンズの中心からの撮像センサのオフセット、レンズ歪みパラメータ、センサ温度、又は低速較正データを出力するために撮像デバイス１３５によって使用される任意の他のパラメータが挙げられる。ＩＭＵパラメータは、高速較正データの収集を制御するパラメータである。ＩＭＵパラメータの例としては、位置センサ１２５からの測定信号の１つ又は複数のサンプリングレート、高速較正データの出力レート、高速較正データを生成するＩＭＵ１３０によって使用される他の適するパラメータ、ＩＭＵ１３０への給電をオン又はオフにするコマンド、初期位置を参照点の現在位置に更新するコマンド、オフセット情報（例えば、位置情報へのオフセット）、又は任意の他の適する情報が挙げられる。
【００４４】
初期化モジュール３２０は、追跡データベース３１０から検索される較正パラメータ等の追跡データベース３１０からの情報を使用して、システム環境１００を初期化する。システム環境１００が前に較正されていなかった実施形態では、デフォルト較正パラメータが追跡データベース３１０から検索される。システム環境１００が前に較正された場合、調整較正パラメータが追跡データベース３１０から検索され得る。初期化モジュール３２０は、検索された較正パラメータをＩＭＵ１３０及び／又は撮像デバイス１３０に提供する。
【００４５】
推定モジュール３３０は、ＶＲヘッドセット１０５及び／又はＩＭＵ１３０から低速較正データ及び／又は高速較正データを受信する。低速較正データは、低速データレート（例えば、２０Ｈｚ）で撮像デバイス１３５から受信される。これとは対照的に、高速較正データは、低速較正データが受信されるデータレートよりもはるかに高速であるデータレート（例えば、２００Ｈｚ以上）でＩＭＵ１３０から受信される。したがって、高速較正データは、低速較正データに含まれるＶＲヘッドセット１０５の画像間のＶＲヘッドセット１０５の位置情報を特定するのに使用し得る。
【００４６】
追跡データベース３１０からのヘッドセットモデル及び撮像デバイス１３５からの低速較正データを使用して、推定モジュール３３０は、撮像デバイス１３５によって捕捉された画像から識別されたＶＲヘッドセット１０５の１つ又は複数のロケータに対応するモデルロケータを識別する。推定モジュール３３０は、低速較正データ内の画像からロケータ情報を抽出し、ロケータ情報は、所与の画像内の互いに相対する観測ロケータ１２０の位置を示す。所与の画像において、ロケータ情報は、画像内の観測ロケータ１２０間の相対位置を示す。例えば、画像が観測ロケータＡ、Ｂ、及びＣを示す場合、ロケータ情報は、ＡとＢ、ＡとＣ、及びＢとＣの相対距離を示すデータを含む。上述したように、ヘッドセットモデルは、ＶＲヘッドセット１０５のロケータの１つ又は複数のモデル位置を含む。推定モジュール３３０は、観測ロケータ１２０の相対位置をモデルロケータの相対位置と比較して、ＶＲヘッドセット１０５の観測ロケータ１２０とヘッドセットモデルからのモデルロケータとの対応性を特定する。複数の剛体を含むＶＲヘッドセット２２５に対する較正が行われている実施形態では、前部剛体２０５及び後部剛体２３０の観測ロケータに対応するモデルロケータは、低速較正データの画像の少なくとも１つから識別される。
【００４７】
さらに、ヘッドセットモデル並びにモデルロケータ及び観測ロケータ１２０を示す情報に基づいて、推定モジュール３３０は、観測ロケータ１２０の推定位置を生成する。推定モジュール３３０は、ヘッドセットモデルと、モデルロケータ及び観測ロケータ１２０を示す情報とに基づいて射影行列を特定する。射影行列は、ヘッドセットモデルによって記述されるロケータ１２０の理想的な位置を、撮像デバイス１３５の、観測ロケータ１２０の画像によって示される画像平面上の位置に変換する数学的構造である。したがって、推定モジュール３３０は、射影行列（projection matrix）と、ヘッドセットモデルにおいて記述されるモデルロケータの位置とを使用して観測ロケータ１２０の位置を推定する。１つ又は複数の較正パラメータは、射影行列に適用し得、それにより、較正パラメータの１つ又は複数への調整は、観測ロケータ１２０の推定位置を変更する。
【００４８】
推定モジュール３３０は、中間位置情報、中間速度情報、中間加速度情報、又はそれらの何らかの組合せも高速較正データから抽出する。高速較正データは、低速較正データよりも高い周波数で受信されるため、高速較正データから抽出された情報により、推定モジュール３３０は、低速較正データからの画像間の時間期間での位置情報、速度情報、又は加速度情報を特定することができる。中間推定位置情報（例えば、中間推定位置）は、画像に関連付けられた時刻又は画像に関連付けられた時刻と低速較正データからの後続画像に関連付けられた時刻との間の時間での参照点２１５の位置を示す。中間速度情報は、画像に関連付けられた時刻と低速較正データからの後続画像に関連付けられた時刻との間の時間での参照点２１５に関連付けられた速度ベクトルを示す。中間加速度情報は、画像に関連付けられた時刻と低速較正データからの後続画像に関連付けられた時刻との間の時間での参照点２１５に関連付けられた加速度ベクトルを示す。幾つかの実施形態では、推定モジュール３３０は、中間加速度情報を使用して、又は中間速度情報から中間推定位置情報を取得するように構成される。推定モジュール３３０は、中間位置をパラメータ調整モジュール３４０に提供する。
【００４９】
パラメータ調整モジュール３４０は、１つ又は複数の較正パラメータを調整して、観測ロケータ１２０の調整推定位置と対応するモデルロケータの位置との相対距離が閾値未満になるまで、推定位置を調整する。観測ロケータ１２０の推定位置と対応するモデルロケータの位置との相対距離が閾値（例えば、１ｍｍ）に等しいか、又は超える場合、パラメータ調整モジュール３４０は、相対距離が閾値未満になるまで、１つ又は複数の較正パラメータ（例えば、撮像パラメータ）を調整する。例えば、パラメータ調整モジュール３４０は、他の較正パラメータを一定に保ちながら、１つの較正パラメータを変更して、観測ロケータ１２０の推定位置と対応するロケータの位置との閾値距離未満になる変更中の較正パラメータの値を特定する。次に、パラメータ調整モジュール３４０は、較正パラメータを特定された値に修正し、少なくとも閾値数の観測ロケータ１２０の調整推定位置と対応するモデルロケータの位置との相対距離が、閾値未満になるまで、他の較正パラメータを一定に保ちながら、個々の較正パラメータの値を変更するプロセスを繰り返し得る。観測ロケータ１２０の調整推定位置を使用して、パラメータ調整モジュール３４０は、低速較正データの１つ又は複数のフレームの参照点２１５の較正位置を生成する。
【００５０】
ＶＲヘッドセット１０５が２つの剛体（例えば、ＶＲヘッドセット２２５）を含む実施形態では、パラメータ調整モジュール３４０は、前部剛体２０５の参照点２１５に相対する後部剛体２３０の位置を特定する。幾つかの実施形態では、パラメータ調整モジュール３４０は、後部剛体２３０の観測ロケータ１２０と、対応するモデルロケータとを使用して、後部剛体２３０の後部参照点を識別する。次に、パラメータ調整モジュール３４０は、前部剛体２０５の参照点２１５に相対する後部参照点の位置を識別する。代替的には、ＶＲコンソール１１０は、前部剛体２０５の参照点２１５に相対する後部剛体２３０の各観測ロケータ１２０の位置を識別する。幾つかの実施形態では、パラメータ調整モジュール３４０は、各剛体２０５、２３０の１つ又は複数の側で閾値数のロケータが撮像された（観測ロケータ）か、又は各剛体２０５、２３０の全ての側で閾値数のロケータが撮像された（観測ロケータ）との判断に応答して、参照点２１５の較正位置を生成する。例えば、剛体２０５、２３０の側で撮像された閾値数のロケータは、ゼロ以上である。閾値数のロケータが撮像されない場合、パラメータ調整モジュール３４０は、ＶＲヘッドセット１０５又は別の適する構成要素を介して、ＶＲヘッドセット１０５を撮像デバイス１３５に相対して特定の方向に向けるか、又は閾値数のロケータが撮像されるまで、ＶＲヘッドセット１０５を動かし続けるようにユーザに促し得る。
【００５１】
パラメータ調整モジュール３４０は、参照点２１５の位置を予測する予想関数も特定し、高速較正データからの参照点２１５の中間推定位置が、参照点２１５の予測位置の閾値内になるまで、１つ又は複数の較正パラメータを調整する。例えば、予測関数は、一連の較正位置に曲線を近似することによって生成される。次に、パラメータ調整モジュール３４０は、参照点２１５の中間推定位置と参照点２１５の予測位置との距離が閾値未満になるまで、１つ又は複数の較正パラメータを調整する。例えば、パラメータ調整モジュール３４０は、参照点２１５の中間推定位置と参照点２１５の予測位置との距離が１ｍｍ以下になるまで、ＩＭＵ１４０のサンプリングレートを増大させ得る。他の実施形態では、パラメータ調整モジュール３４０は、画像に関連付けられた参照点２１５の各中間推定位置と較正位置（例えば、ＣＰ１）との距離が、画像に関連付けられた参照点２１５の較正位置（例えば、ＣＰ１）と後続画像に関連付けられた参照点２１５の較正位置（例えば、ＣＰ２）との距離値未満であるように、１つ又は複数の較正パラメータを調整する。
【００５２】
幾つかの実施形態では、パラメータ調整モジュール３４０は、ＩＭＵ１３０の初期位置を参照点２１５の次の較正位置に更新する。図１と併せて上述し、図６と併せて後述するように、ＩＭＵ１３０は、ＩＭＵ１３０によって前に特定された参照点２１５の位置に相対する高速較正データを収集する。したがって、ドリフトエラーは、ＩＭＵ１３０が、初期位置を較正位置に更新せずにデータを収集する時間が長いほど、増大する。パラメータ調整モジュール３４０は、中間推定位置を更新閾値と比較する。中間推定位置の１つ又は複数が更新閾値を超える場合、パラメータ調整モジュール３４０は、次の較正位置に関連付けられた位置として、初期位置を更新する命令をＩＭＵ１３０に通信する。代替的には、較正位置を特定した後、パラメータ調整モジュール３４０は、初期位置を特定された較正位置に更新するようにＩＭＵ１３０に命令する。パラメータ調整モジュール３４０は、調整較正パラメータの値を追跡データベース３１０に記憶し、調整較正パラメータをＶＲコンソール１１０内の他の構成要素に提供することもできる。
【００５３】
モニタリングモジュール３５０は、較正の損失についてシステム環境１００をモニタする。様々な実施形態では、モニタリングモジュール３５０は、観測ロケータ１２０の調整推定位置と対応するモデルロケータの位置との相対距離をモニタする。観測ロケータの調整推定位置と対応するモデルロケータの位置との相対距離が閾値（例えば、１ｍｍ）未満である場合、モニタリングモジュール３５０は、観測ロケータ１２０の位置から特定された参照点２１５の較正位置をＶＲエンジン１５５に提供する。これとは対照的に、観測ロケータと対応するモデルロケータとの相対距離が閾値（例えば、１ｍｍ）を超える場合、モニタリングモジュール３５０は、較正が失われたと判断し、システム環境１００を再較正するようにパラメータ調整モジュール３４０に促す。
【００５４】
中間推定位置と対応する予測位置とのパラメータ調整モジュール３４０によって特定される相対距離をモニタするために、予測位置と対応する中間推定位置との距離が閾値（例えば、１ｍｍ）未満である場合、モニタリングモジュール３５０は、中間推定位置をＶＲエンジン１５５に提供する。幾つかの実施形態では、モニタリングモジュール３５０は、高速較正データから抽出された中間速度情報又は中間加速度情報をＶＲエンジン１５５に提供することもできる。これとは対照的に、予測位置と対応する中間推定位置との距離が閾値を超える場合、モニタリングモジュール３５０は、較正が失われたと判断し、システム環境１００に較正を再確立させる。
【００５５】
幾つかの場合、後部剛体２３０のロケータ１２０のみが、撮像デバイス１３５にとって可視である。後部剛体２３０のロケータ１２０のみが撮像デバイス１３５にとって可視である場合、幾つかの実施形態では、（例えば、後部剛体２３０の観測ロケータ１２０から生成される）後部剛体２３０の推定位置と、（例えば、高速較正データを使用して生成し得る）後部剛体２３０の予測位置との差が、閾値よりも大きいとき、モニタリングモジュール３５０は、較正が失われたと判断し、システム環境１００に較正を再確立させる。さらに、後部剛体２３０の推定位置と後部剛体２３０の予測位置との差が、閾値よりも大きい場合、ＶＲコンソール１１０は、後部剛体２３０の推定位置と後部剛体２３０の予測位置との距離が閾値未満であるような一時的なオフセット値で、後部剛体２３０の予測位置を調整する。次に、モニタリングモジュール３５０は、一時的なオフセット値（又は続けて生成される一時的なオフセット値）を使用して、前部剛体２０５と後部剛体２３０との間で再較正が行われ得るまで、後部剛体２３０の位置をより正確に予測し得る。代替的には、後部剛体２３０のロケータ１２０の推定位置と、参照点２１５に相対する対応するモデルロケータの位置との差が、閾値よりも大きい場合、モニタリングモジュール３５０は、較正が失われたと判断し、システム環境１００に較正を再確立させる。幾つかの実施形態では、低速較正データが、前部剛体２０５の閾値数のロケータと、後部剛体２３０の閾値数のロケータとを含む画像を含む場合、追跡モジュール１５０は再較正を開始する。さらに、幾つかの実施形態では、追跡が失われると、モニタリングモジュール３５０は、前部剛体２０５及び後部剛体２３０の両方のロケータが可視であるようにＶＲヘッドセット１０５を調整するようにユーザに自動的に促す。
【００５６】
仮想現実システムの較正
図４は、図１と併せて上述したシステム環境１００等のＶＲシステムを較正するプロセスの一実施形態のフローチャートである。他の実施形態では、プロセスは、図４に示されるステップとは異なる、追加の、又はより少数のステップを含む。さらに、幾つかの実施形態では、図４と併せて説明されるステップは、異なる順序で実行してもよい。
【００５７】
ＶＲコンソール１１０は、１つ又は複数の較正パラメータを使用してシステム環境を初期化する（４１０）。例えば、ＶＲコンソール１１０は、追跡データベース３１０から、ＶＲヘッドセット１０５に関連付けられた１つ又は複数の較正パラメータを検索する。幾つかの実施形態では、ＶＲコンソール１１０は、撮像デバイス１３５又はＩＭＵ１３０が特定のＶＲヘッドセット１０５について前に較正された場合、追跡データベース３１０から調整較正パラメータ値を検索する。撮像デバイス１３５又はＩＭＵ１３０がＶＲヘッドセット１０５を前に較正していなかった場合、ＶＲコンソール１１０は、追跡データベース３１０からデフォルト較正パラメータを検索する。ＶＲコンソール１１０は、較正パラメータをＩＭＵ１３０又は撮像デバイス１３５に提供する。
【００５８】
ＶＲコンソール１１０は、撮像デバイス１３５から低速較正データを受信し、ＩＭＵ１３０から高速較正データを受信する（４２０）。低速較正データは、ＶＲヘッドセット１０５のロケータ１２０の１つ又は複数を含む一連の画像を含む。低速較正データからの画像に含まれるロケータ１２０は、本明細書では、「観測ロケータ（observed locator）」と呼ばれる。高速較正データは、参照点２１５（例えば、ＩＭＵ１３０の中心）の１つ又は複数の中間推定位置を含み得る。他の実施形態では、高速較正データは、中間加速度情報及び／又は中間速度情報を含み、これ（ら）から、ＶＲコンソール１１０は参照点２１５の１つ又は複数の中間推定位置を特定する。
【００５９】
少なくとも部分的に、低速較正データ及びヘッドセットモデルに基づいて、ＶＲコンソール１１０は、ヘッドセットモデル内のロケータであるモデルロケータを識別する（４３０）。ＶＲコンソール１１０は、低速較正データから互いに相対する観測ロケータ１２０の位置を示すロケータ情報を抽出し、ロケータ情報を追跡データベース３１０から検索されたヘッドセットモデルと比較して、観測ロケータに対応するモデルロケータを識別する（４３０）。モデルロケータは、ヘッドセットモデルの構成要素であり、したがって、観測ロケータに関連付けられたモデルロケータの識別４３０により、ＶＲコンソール１１０は続けて、観測ロケータの位置を観測ロケータに関連付けられたモデルロケータのヘッドセットモデルからの理想的な位置と比較することができる。
【００６０】
ヘッドセットモデルを使用して、ＶＲコンソール１１０は、観測ロケータ１２０の１つ又は複数の推定位置を生成する（４４０）。ヘッドセットモデルは、ロケータ１２０と参照点２１５との間の理想的な位置決めを記述する。様々な実施形態では、ＶＲコンソール１１０は、ヘッドセットモデル及びロケータ情報を使用して、ヘッドセットモデルでの理想的な位置を撮像デバイス１３５の画像平面上の位置に変換する射影行列を特定する。ＶＲコンソール１１０は、射影行列を使用して、観測ロケーションの位置を推定する。したがって、観測ロケータ１２０の推定位置は、低速較正データからの画像の画像平面上の観測ロケータ１２０の理想的な位置を識別する。
【００６１】
少なくとも部分的に、１つ又は複数の観測ロケータ１２０の推定位置と、１つ又は複数の観測ロケータ１２０に対応するモデルロケータの位置との相対距離に基づいて、ＶＲコンソール１１０は、観測ロケータ１２０の推定位置と、ヘッドセットモデルからの対応するモデルロケータの位置との相対距離が、閾値（例えば、１ｍｍ）未満であるように、１つ又は複数のロケータ１２０の推定位置を調整する１つ又は複数の較正パラメータを調整する（４５０）。較正パラメータの調整は、射影行列に影響を及ぼし（例えば、焦点距離等を変更し）、したがって、１つ又は複数の較正パラメータの変更は、観測ロケータ１２０の推定位置に影響を及ぼし得る。観測ロケータ１２０の推定位置と対応するモデルロケータの位置との距離が、閾値以上である場合、一実施形態では、ＶＲコンソール１１０は、他の較正パラメータを一定に保ちながら、１つの較正パラメータを調整して、閾値未満の観測ロケータ１２０の推定位置と対応するモデルロケータの位置との距離を生じさせる調整中の較正パラメータの値を特定する（４５０）。次に、較正パラメータは特定された値に固定され得、その間、別の較正パラメータは、追加のロケータ１２０の推定位置と追加のロケータに対応するモデルロケータの追加の位置との距離が閾値未満であるように変更される。様々な較正パラメータは、少なくとも閾値数の観測ロケータ１２０の調整推定位置と対応するモデルロケータの位置との相対距離が閾値未満であるように、上述したように調整し得る（４５０）。少なくとも閾値数の観測ロケータ１２０の推定位置と対応するモデルロケータの位置との距離が、閾値未満である場合、較正パラメータは調整されない（４５０）。
【００６２】
ＶＲコンソール１１０は、閾値数の観測ロケータ１２０が前部剛体２０５の各側（すなわち、前側２２０Ａ、上側２２０Ｂ、下側２２０Ｃ、右側２２０Ｄ、及び左側２２０Ｅ）からのものであるか否かを判断する（４６０）。閾値数の観測ロケータ１２０が各側に関連付けられている場合、ＶＲコンソール１１０は、観測ロケータの調整推定位置を使用して、低速較正データの１つ又は複数のフレームの参照点２１５の較正位置を生成する（４７０）。ＶＲヘッドセット１０５が複数の剛体を含む実施形態では、ＶＲコンソール１１０は、閾値数のロケータが各剛体２０５、２３０の１つ又は複数の側で撮像された（観測ロケーション）との判断に応答して、又は各剛体２０５、２３０の全ての側で閾値数のロケータが撮像された（観測ロケータ）との判断に応答して、参照点２１５の較正位置を生成する。閾値数の観測ロケータ１２０が各側に関連付けられていない場合、ＶＲコンソール１１０は、ＶＲヘッドセット１０５の１つ又は複数の側からのロケータを含む低速較正データが捕捉可能なように、ＶＲヘッドセット１０５を再位置決めするプロンプトをＶＲヘッドセット１０５又は別の構成要素を介してユーザに通信し得る。
【００６３】
ＶＲコンソール１１０は、高速較正データから受信したＶＲヘッドセット１０５の中間推定位置が、ＶＲヘッドセット１０５又は参照点２１５の予測位置の閾値距離内になるまで、１つ又は複数の較正パラメータを更に調整し（４８０）、捕捉位置は、低速較正データからの様々な画像に関連付けられた参照点２１５の較正位置から特定される。幾つかの実施形態では、ＶＲコンソール１１０は、低速較正データからの異なる画像に関連付けられた参照点２１５の較正位置を使用して、予測関数を生成する（例えば、曲線近似により）ことにより、参照点２１５の予測位置を特定する。ＶＲコンソール１１０は、参照点２１５の中間推定位置と参照点２１５の予測位置との距離が閾値距離未満になるまで、較正パラメータの１つ又は複数を調整する。例えば、ＶＲコンソール１１０は、参照点２１５の中間推定位置と参照点２１５の予測位置との距離が全て１ｍｍ以下になるまで、又は参照点２１５の少なくとも閾値数の中間推定位置と参照点２１５の予測位置との距離が１ｍｍ未満になるまで、ＩＭＵ１３０のサンプリングレートを増大させ得る。他の実施形態では、ＶＲコンソール１１０は、低速較正データからの画像に関連付けられた参照点２１５の較正位置と、低速較正データからの後続画像に関連付けられた参照点２１５の較正位置との間の位置として、参照点２１５の予測位置を特定する。次に、ＶＲコンソール１１０は、画像に関連付けられた参照点２１５の各中間推定位置と較正位置（例えば、ＣＰ１）との距離が、画像に関連付けられた参照点２１５の較正位置（例えば、ＣＰ１）と後続画像に関連付けられた参照点２１５の較正位置（例えば、ＣＰ２）との距離未満であるように、１つ又は複数の較正パラメータを調整する（４８０）。さらに、ＶＲコンソール１１０は、参照点２１５の較正位置であるようにＩＭＵ１３０の初期位置を更新し得る。
【００６４】
幾つかの実施形態では、ＶＲコンソール１１０は、調整較正パラメータの値を追跡データベース３１０に記憶するか、又は調整較正パラメータの値をＶＲコンソール１１０内の他の構成要素に提供する。調整較正値は、システム環境１００の後続動作での較正時間を低減し、ユーザ経験を改善する。
【００６５】
ＶＲコンソール１１０は、較正の損失についてシステム環境１００をモニタする（４９０）。例えば、ＶＲコンソール１１０は、観測ロケータ１２０の調整推定位置と対応するモデルロケータの位置との相対距離をモニタする。観測ロケータ１２０の調整推定位置と対応するモデルロケータの位置との相対距離が閾値（例えば、１ｍｍ）未満である場合、ＶＲコンソール１１０は、較正位置をＶＲエンジン１５５に提供する。これとは対照的に、観測ロケータの推定位置と対応するモデルロケータの位置との相対距離が、閾値（例えば、１ｍｍ）を超える（又は以上である）場合、ＶＲコンソール１１０は、較正が失われたと判断し、低速較正データ及び高速較正データを受信し（４２０）、上で識別した関数を実行して、システム環境１００を再較正する。
【００６６】
さらに、ＶＲコンソール１１０は、参照点２１５の中間推定位置と参照点２１５の予測位置との相対距離をモニタする（４９０）。例えば、参照点２１５の予測位置の曲線と参照点２１５の中間推定位置との距離が、閾値距離（例えば、１ｍｍ）未満である場合、ＶＲコンソール１１０は、中間推定位置をＶＲエンジン１５５に提供する。幾つかの実施形態では、ＶＲコンソール１１０は、高速較正データから抽出された中間速度情報又は中間加速度情報もＶＲエンジン１５５に提供し得る。これとは対照的に、参照点２１５の予測位置と参照点２１５の中間推定位置との距離が、閾値距離を超えるか、又は閾値距離以上である場合、ＶＲコンソール１１０は、較正が失われたと判断し、低速較正データ及び高速較正データを受信し（４２０）、上で識別した関数を実行して、システム環境１００を再較正する。
【００６７】
幾つかの実施形態では、ＩＭＵ１３０及び撮像デバイス１３５は、同時に較正し得る。ＩＭＵ１３０及び撮像デバイス１３５を同時に較正するために、ＶＲコンソール１１０は、観測ロケータの推定位置を使用して、一連の画像の参照点２１５の位置を推定する。さらに、ＶＲコンソール１１０は、ＩＭＵ１３０及び撮像デバイス１３５を較正するとき、低速較正データ内の画像に対応する特定の時刻値（time value）での参照点２１５の中間推定位置を含む高速較正データを使用する。ＩＭＵ１３０及び撮像デバイス１３５の較正パラメータを同時に調整する場合、ＶＲコンソール１１０は、（１）観測ロケータの調整推定位置と対応するモデルロケータの位置との相対距離が閾値未満であるように、観測ロケータの推定位置を調整し、（２）低速較正データ内の画像に対応する特定の時刻値での参照点の推定位置と、モデルロケータから特定されるモデル参照点の位置との相対距離が閾値未満であるように、参照点の推定値を調整する。
【００６８】
図５は、システム環境１００に含まれる仮想現実ヘッドセット２２５の２つの剛体間に較正を再確立するプロセスの一実施形態を示すフローチャートである。他の実施形態では、プロセスは、図５に示されるステップとは異なる、追加の、又はより少数のステップを含む。さらに、幾つかの実施形態では、図５と併せて説明されるステップは、異なる順序で実行してもよい。
【００６９】
ＶＲコンソール１１０は、ＶＲヘッドセット２２５の前部剛体２０５の前部閾値数のロケータ１２０と、ＶＲヘッドセット２２５の後部剛体２３０の後部閾値数（例えば、少なくとも１つ）のロケータ１２０とを示す画像を含む低速較正データを受信する（５１０）。低速較正データからの画像に含まれるロケータ１２０は、本明細書では「観測ロケータ」と呼ばれる。図２〜図４と併せて上述したように、ＶＲコンソール１１０は、撮像デバイス１３５から低速較正データを受信し、ＩＭＵ１３０から高速較正データを受信する（５１０）。高速較正データは、中間加速度情報及び／又は中間速度情報も含み得、これ（ら）から、ＶＲコンソール１１０はＶＲヘッドセット２２５の参照点２１５の１つ又は複数の中間推定位置を特定する。
【００７０】
少なくとも部分的に、低速較正データ及びヘッドセットモデルに基づいて、ＶＲコンソール１１０は、モデルロケータを識別し（５２０）、モデルロケータはヘッドセットモデル内のロケータである。ＶＲコンソール１１０は、低速較正データからの互いに相対する観測ロケータ１２０の位置を示すロケータ情報を抽出し、ロケータ情報を追跡データベース３１０から検索されるヘッドセットモデルと比較して、観測ロケータ１２０に対応するモデルロケータを識別する（５２０）。画像の少なくとも１つでは、ＶＲヘッドセット２２５の前部剛体２０５及び後部剛体２３０の観測ロケータに対応するモデルロケータが識別される。モデルロケータは、ヘッドセットモデルの構成要素であり、したがって、観測ロケータに関連付けられたモデルロケータを識別すること（５２０）により、ＶＲコンソール１１０は、観測ロケータの位置を観測ロケータに関連付けられたモデルロケータのヘッドセットモデルからの理想的な位置と続けて比較することができる。
【００７１】
ヘッドセットモデルを使用して、ＶＲコンソール１１０は、観測ロケータ１２０の１つ又は複数の推定位置を生成する（５３０）。ヘッドセットモデルは、ロケータ１２０と参照点２１５との間の理想的な位置決めを記述する。様々な実施形態では、ＶＲコンソール１１０は、ヘッドセットモデル及びロケータ情報を使用して、ヘッドセットモデル内の理想的な位置を撮像デバイス１３５の画像平面上の位置に変換する射影行列を特定する。ＶＲコンソール１１０は、射影行列を使用して、観測ロケータ１２０の位置を推定する。したがって、観測ロケータ１２０の推定位置は、低速較正データからの画像の画像平面上の観測ロケータ１２０の理想的な位置を識別する。
【００７２】
少なくとも部分的に、１つ又は複数の観測ロケータ１２０の推定位置と１つ又は複数の観測ロケータ１２０に対応するモデルロケータの位置との相対距離に基づいて、ＶＲコンソール１１０は、第１の剛体２０５の観測ロケータの推定位置と対応するモデルロケータの位置との相対距離が閾値（例えば、１ｍｍ）未満となるように調整する（５４０）。較正パラメータの調整は射影行列に影響を及ぼし（例えば、焦点距離等を変更し）、したがって、１つ又は複数の較正パラメータの変更は、観測ロケータ１２０の推定位置に影響を及ぼし得る。観測ロケータ１２０の推定位置と対応するモデルロケータの位置との距離が、閾値以上である場合、一実施形態では、ＶＲコンソール１１０は、他の較正パラメータを一定に保ちながら、１つの較正パラメータを調整して、閾値未満である観測ロケータ１２０の推定位置と対応するモデルロケータの位置との距離になる調整中の較正パラメータの値を特定する（５４０）。較正パラメータの調整５４０については、図４と併せて更に上述されている。少なくとも閾値数の観測ロケータ１２０の推定値と対応するモデルロケータの位置との距離が閾値未満である場合、較正パラメータは調整されない（５４０）。
【００７３】
観測ロケータの推定位置と対応するモデルロケータの位置との閾値数の相対距離が閾値未満であるように較正パラメータを調整した（５４０）後、ＶＲコンソール１１０は、観測ロケータ１２０の調整推定位置を使用して、低速較正データの１つ又は複数の画像に関連付けられた参照点２１５の較正位置を生成する（５５０）。幾つかの実施形態では、ＶＲコンソール１１０は、各剛体２０５、２３０の１つ又は複数の側の閾値数のロケータが撮像された（観測ロケータ）との判断又は各剛体２０５、２３０の全ての側で閾値数のロケータが撮像された（観測ロケータ）との判断に応答して、参照点２１５の較正位置を生成する。閾値数のロケータ（各剛体２０５、２３０の側又は全ての側）が撮像されない場合、ＶＲコンソール１１０は、ＶＲヘッドセット１０５又は別の適する構成要素を介して、撮像デバイス１３５に相対して特定の方向にＶＲヘッドセット１０５を向けるか、又は閾値数のロケータが撮像されるまで、ＶＲヘッドセット１０５を動かし続けるように、ユーザに促し得る。
【００７４】
ＶＲコンソール１１０は、参照点２１５に相対する後部剛体２３０の位置も特定する（５６０）。幾つかの実施形態では、ＶＲコンソール１１０は、観測ロケータ１２０と、対応するモデルロケータとを使用して、後部剛体２３０の後部参照点を識別する。次に、ＶＲコンソール１１０は、後部参照点が、位置ベクトルにより参照点２１５に相対して位置決めされるように、前部剛体２０５の参照点２１５に相対する後部参照点の位置を識別する。代替的には、ＶＲコンソール１１０は、参照点２１５に相対して後部剛体２３０の各観測ロケータの位置を識別し、したがって、後部剛体２３０の各観測ロケータの位置は、それ自体の位置ベクトルにより、参照点２１５に相対して位置決めされる。
【００７５】
ＶＲコンソール１１０は、参照点２１５の中間推定位置が参照点２１５の予測位置の閾値距離内にあるように、１つ又は複数の較正パラメータを調整する（５７０）。参照点２１５の中間推定位置が参照点の予測位置の閾値内にあるような較正パラメータの調整については、図４と併せて更に上述されている。１つ又は複数の較正パラメータの調整５７０後、ＶＲコンソール１１０は、図４と併せて上述したように、システム環境１００の較正の損失についてモニタする（５８０）。
【００７６】
較正の損失についてモニタする（５８０）とき、ＶＲコンソール１１０は、第１の剛体２０５、後部剛体２３０、又はそれらの何らかの組合せのロケータ１２０の観測位置を含み得る低速較正データからの画像を使用する。幾つかの実施形態では、観測ロケータ１２０の位置と対応するモデルロケータの位置との間の閾値は、観測ロケータ１２０が配置される剛体に基づいて異なり得る。例えば、閾値は、前部剛体２０５の観測ロケータ１２０では１ｍｍであり得、後部剛体２３０の観測ロケータ１２０では２ｍｍであり得る。
【００７７】
さらに、幾つかのシナリオでは、撮像デバイス１３５は、前部剛体２０５のロケータ１２０を見ることはできないが、後部剛体２３０のロケータを見ることはできる。これらのシナリオでは、追跡は、図６に関して後述するプロセスを使用してモニタされる。
【００７８】
低速較正データが、前部剛体２０５の閾値数のロケータと、後部剛体２３０の閾値数のロケータとを含む画像を含む場合、図５と併せて上述したステップが繰り返されて、システム環境１００の較正を再確立する。幾つかの実施形態では、追跡が失われると、ＶＲコンソール１１０は、前部剛体２０５及び後部剛体２３０の両方のロケータが撮像デバイス１３５にとって可視であるように、ＶＲヘッドセット１０５を調整するようにユーザに自動的に促す。ユーザに提示されるプロンプトは、前部剛体２０５及び後部剛体２３０の両方のロケータが撮像デバイス１３５にとって可視であるようにＶＲヘッドセット１０５を位置決めする特定の指示をユーザに提供し得る。
【００７９】
図６は、システム環境１００に含まれる仮想現実ヘッドセット２２５の２つの剛体間の位置関係を維持するプロセスの一実施形態を示すフローチャートである。他の実施形態では、プロセスは、図６に示されるステップとは異なる、追加の、又はより少数のステップを含む。さらに、幾つかの実施形態では、図６と併せて説明されるステップは、異なる順序で実行してもよい。
【００８０】
ＶＲコンソール１１０は、撮像デバイス１３５から低速較正データを受信する（６１０）。低速較正データは、画像時刻値（image time value）に関連付けられ、撮像デバイス１３５にとって可視の後部剛体２３０の観測ロケータ１２０のみを有する画像を含む一連の画像を含む。画像時刻値は、画像が撮像デバイス１３５によって捕捉されたときの時刻値である。さらに、ＶＲコンソール１１０は、ＩＭＵ１３０から、画像時刻値を含む一連の時刻値での参照点２１５の中間推定位置を含む高速較正データを受信する（６２０）。
【００８１】
低速較正データに基づいて、ＶＲコンソール１１０は、画像時刻値での後部剛体２３０の観測位置を特定する（６３０）。後部剛体２３０の観測位置を特定する（６２０）ために、ＶＲコンソール１１０は、低速較正データから、互いに相対する後部剛体２３０の観測ロケータ１２０の位置を示すロケータ情報を抽出し、ロケータ情報を追跡データベース３１０から検索されるヘッドセットモデルと比較して、観測ロケータ１２０に対応するモデルロケータを識別する。モデルロケータを識別した後、ＶＲコンソール１１０は、各モデルロケータに対応する観測ロケータ１２０を特定し、観測ロケータ１２０の位置を使用して、後部剛体２３０の後部参照点を特定する。幾つかの実施形態では、後部剛体２３０の観測位置は、後部参照点の位置である。代替の実施形態では、後部剛体２３０の観測位置は、観測ロケータの１つ又は複数の観測位置であり得る。
【００８２】
ＶＲコンソール１１０は、高速較正データ及び位置ベクトルを使用して、画像時刻値での後部剛体２３０の予測位置を特定する（６４０）。位置ベクトルは、前部剛体２０５と後部剛体２３０との較正オフセットを示す。例えば、位置ベクトルは、前部剛体２０５に関連付けられた参照点２１５と、後部剛体２３０に関連付けられた後部参照点との間の較正オフセットを示す。さらに、幾つかの実施形態では、位置ベクトルは、参照点２１５と後部剛体２３０の異なるロケータとの間の相対較正オフセットをそれぞれ示す１つ又は複数のサブベクトルを含み得る。
【００８３】
高速較正データから、ＶＲコンソール１１０は、前部剛体２０５の参照点２１５の中間推定位置を特定する。幾つかの実施形態では、ＶＲコンソール１１０は、位置ベクトルに基づいて、参照点２１５の位置に相対する位置として、後部剛体２３０の予測位置を特定する。例えば、位置ベクトルは、参照点２１５への後部剛体２３０の後部参照点の相対位置決めを識別する。代替的には、位置ベクトルは、参照点２１５に相対する後部剛体２３０の１つ又は複数のロケータ１２０（観測ロケータを含む）の相対位置決めを識別する。
【００８４】
ＶＲコンソール１１０は、観測位置と予測位置との差が閾値（例えば、１ｍｍ）を超えるか否かを判断する（６５０）。差が閾値未満の場合、ＶＲヘッドセット２２５の追跡は維持され、低速較正データが受信され（６１０）、プロセスは上述したように進む。しかし、後部剛体２３０の観測位置と後部剛体２３０の予測位置との間の差が閾値を超える場合、ＶＲコンソール１１０は、ＶＲヘッドセット１０５の追跡が失われたと判断し、オフセット値により予測位置を調整する（６６０）。オフセット値は、後部剛体２３０の観測位置と後部剛体２３０の予測位置との差が閾値未満であるように決定される。例えば、ＶＲコンソール１１０は、オフセット値によって変更された位置ベクトルを使用して、高速較正データからの後部剛体２３０の位置をより正確に特定する。代替的には、ＶＲコンソール１１０は、位置ベクトルを変更せずにオフセット値に基づいて推定中間位置をオフセットする命令をＩＭＵ１３０に通信する。
【００８５】
高速較正データ及び調整ベクトルに基づいて、ＶＲコンソール１１０は、再較正が行われるまで（例えば、図５に関連して更に上述したように）、後部剛体の後続予測位置を特定する（６７０）。幾つかの実施形態では、追跡が失われる場合、ＶＲコンソール１１０は、前部剛体２０５及び後部剛体２３０の両方のロケータが撮像デバイス１３５に可視であるようにＶＲヘッドセット１０５を調整するようユーザに促す。ユーザに提示されるプロンプトは、前部剛体２０５及び後部剛体２３０の両方のロケータが撮像デバイス１３５にとって可視であり、それにより、図５を参照して詳細に上述した再較正を容易にするようにＶＲヘッドセット１０５を位置決めする特定の命令をユーザに提供し得る。
【００８６】
図７は、仮想現実ヘッドセット１０５の一連の較正位置を示す例としてのグラフ７００を示す。図７では、縦軸は位置を表し、横軸は時間を表す。グラフ７００は、時間Ｔ１、Ｔ２、及びＴ３それぞれでのＶＲヘッドセット１０５の参照点の一連の較正位置７１０Ａ〜７１０Ｃを含む。グラフ７００は、参照点の一連の中間推定位置７１５Ａ〜７１５Ｄ及び７２０Ａ〜７２０Ｈも含む。較正位置７１０Ａ〜７１０Ｃは、撮像デバイス１３５からの低速較正データを使用して生成され、中間推定位置７１５Ａ〜７１５Ｄ及び７２０Ａ〜７２０Ｈは、ＶＲヘッドセット１０５に含まれるＩＭＵ１３０からの高速較正データを使用して生成される。なお、較正位置７１０Ａ〜７１０Ｃ及び中間推定位置７１５Ａ〜７１５Ｄの相対時間尺度は異なり、中間推定位置７１５Ａ〜７１５Ｄ及び７２０Ａ〜７２０Ｈは、較正位置７１０Ａ〜７１０Ｃよりも頻繁に特定される。
【００８７】
グラフ７００は、参照点の予測位置を示す予測関数によって示される予測位置曲線７２５を示す。予測関数は、較正位置７１０Ａ〜７１０Ｃに曲線を近似し、近似曲線を示す関数を特定することによって生成される。較正位置７１０Ａ〜７１０Ｃから位置関数を特定するために、任意の適する方法が使用可能である。
【００８８】
図７の例では、中間推定位置７１５Ａ〜７１５Ｄは、較正パラメータの調整前に高速較正データを使用して特定される初期中間推定位置である。中間推定位置７１５Ａは、図７の予測位置曲線に比較的近いが、時間が進むにつれて、予測位置曲線７２５から離れて動き、図７の中間推定位置７１５Ｄは、予測位置曲線７２５から最も離れる。予測位置曲線と中間推定位置との差は、実際のユーザの動き、ドリフトエラー、及び追加の要因の組合せを原因とし得る。上述したように、ＩＭＵ１３０は、前に特定された位置に相対して中間推定位置を特定するため、エラーは蓄積され、時間の経過に伴って予測位置曲線７２５と中間推定位置７１５とのずれが大きくなる。ドリフトエラーを考慮するために、ＶＲコンソール１１０は、後続較正位置としてＩＭＵ１３０の初期位置を更新し得る。ＩＭＵ１３０は次に、更新された初期位置及び初期位置後に特定された中間推定位置に関して高速較正を生成する。この実施形態では、ＶＲコンソール１１０は、較正位置７１０Ｂとして初期点を更新する。
【００８９】
中間推定位置に関連付けられたエラーを低減する別の方法は、中間推定位置が特定される頻度を増大させることによるものである。図７の例では、ＶＲコンソール１１０は、中間推定位置７１５Ａ〜７１５Ｄの頻度の２倍で中間推定位置７２０Ａ〜７２０Ｈを特定し、中間推定位置７２０Ａ〜７２０Ｈと予測位置曲線７２５との差をより小さくした。
【００９０】
追加の構成情報
剛体の予測不可能な動きを追跡する剛体追跡システムが提示される。そのような剛体追跡システムは、仮想現実、拡張現実、ゲーミング、教育、トレーニング、及びセラピーに有用であり得る。
【００９１】
剛体追跡システムの一実施形態は、ユーザの頭部に取り付けられたヘッドマウントディスプレイの動きを追跡することである。この場合、ＬＥＤがディスプレイの表面に取り付けられる。慣性測定ユニットが、ディスプレイの内部に搭載され、１つ又は複数のジャイロスコープ等の角速度を測定するセンサを含み得る。慣性測定ユニットは、１つ又は複数の加速度計及び１つ又は複数の磁力計を更に含み得る。別個のカメラが、ユーザに面して、固定位置に配置される。幾つかの実施形態では、剛体追跡システムはＶＲシステム１００である。
【００９２】
別の実施形態では、追跡される剛体はユーザの手に保持され得る。これは、例えば、手の位置及び向きを仮想現実経験で維持できるようにし得る。別の実施形態では、カメラは、２つ以上のヘッドセット及び２つ以上の追加のハンドヘルド物体を含め、複数の剛体を追跡し得る。
【００９３】
慣性測定ユニットを形成するセンサは、剛体の向きの推定に十分な測定を提供する。これらのセンサは、ジャイロスコープ、加速度計、及び恐らくは磁力計を含む。剛体が静止カメラの視野内にあり、適切な距離のところにある場合、追加の向き情報は推測可能である。さらに、剛体の位置が推測される。追跡方法は、１つ又は複数のカメラを含め、全ての検知源からの測定値を組み合わせ、それにより、剛体の位置及び向きが正確に維持される。剛体追跡システムにとって重要なのは、剛体の表面上のＬＥＤの配置、数、及び変調である。これらの要因は一緒に、剛体の確実で高精度の追跡に繋がる。
【００９４】
なお、本発明の様々な特徴は、単独又は組み合わせて実施することができる。本発明のこれら及び他の特徴について、本発明の詳細な説明において図８〜図１０と併せてより詳細に後述する。
【００９５】
剛体追跡システムは、２つのソースからのセンサデータを融合することによって機能する：剛体の内部の慣性測定ユニット及び体を見る静止カメラ。最も一般的な実施形態は、剛体が人の頭部に固定されるヘッドマウントディスプレイであるものである。この場合、頭部の位置及び向きは、低い待ち時間及びジッタで追跡されなければならない。ソースによって提供される情報は、慣性測定ユニットが頭部の向きに対して最も強力な制約を提供し、カメラが頭部の位置に対して最も強力な制約を提供するという意味で、相補的なものである。これらは一緒に、頭部の位置及び向きを推定するフィルタに入力を提供する。
【００９６】
慣性測定入力の最も重要な構成要素は、高周波３軸ジャイロスコープであり、これは、剛体の角速度を測定する。時間の経過に伴って累積されたセンサデータが数値積分されると、初期向きに対する現在の向きが推定される。時間の経過に伴って累積するデッドレコニングエラー（dead reckoning error）を考慮するために、加速度計又は他のセンサが使用されて、「下」方向を推定して、傾斜エラーを補償し得る。可能な場合、磁力計が慣性測定に含まれて、垂直軸（重力に平行）回りの回転に関する推定向きエラーを補償し得る。これは、剛体がカメラの視野にない場合に特に有用であり、磁力計が用いられない場合、代替として、カメラがこの補正を提供し得る。
【００９７】
カメラは、標準レート６０Ｈｚでフレームを捕捉するが、他の実施形態では、より高いレート及びより低いレートの両方が利点を提供し得る。解像度は６４０×４８０（標準ＶＧＡ）であり、他の解像度の使用も可能である。画像は、シリアル通信リンク（ＵＳＢ）を介して中央プロセッサに送信される。カメラとＶＲヘッドセットの間にもシリアルリンクがある。これは、厳密に時間が測られる短い間隔にわたり、シャッタを開閉するようにカメラに命令するために使用される。典型的な時間露出時間は０．１ミリ秒である。レンズは、狭視野、広角、又は魚眼を含め、任意のジオプタ（diopter）のものであり得る。カメラは、レンズの上に赤外線（ＩＲ）フィルタを有してもよく、又は有さなくてもよい。
【００９８】
ユーザがＶＲヘッドセットを装着し、現実世界から仮想世界に魔法のようにトランスポートすることを考える。理想的には、現実世界でのユーザの頭部の動きは、ユーザの脳が完全に騙されるように、仮想現実に完璧にミラーリングされるべきである。ユーザの目に仮想現実のイメージが提示される場合、それらは厳密に、ユーザの没入感に基づいてユーザが見ると予期するものに対応すべきである。これを達成するために重要な構成要素は、頭部の追跡であり、これは、センサからデータを収集し、データを処理して、ユーザの頭部がいかに動いているかを特定することを含む。
【００９９】
ユーザの頭部及びＶＲヘッドセットは一緒に、３Ｄ空間を通して動く剛体としてみなすことができる。剛体は、最高で６つの自由度（degrees of freedom : ＤＯＦ）を有し、これは、空間での位置及び向きを完全に指定するために、６つの独立したパラメータが必要なことを意味する。これら６つのパラメータを使用して、体上の任意のポイントの座標を計算することができる。（これは、物理学の歴史の中で解明に長い時間がかかっており、最も大きな功績は１８世紀後半のオイラー及びラグランジェによる）。これらのパラメータを選ぶ多くの方法があるが、それらの方法は通常、３つが向きに対応し（体がいかに回転するか）、３つが位置に対応する（体がどこに配置されるか）ように行われる。これは、向きパラメータ：ヨー、ピッチ、及びロールと呼ばれ得る。従来の方法では、これらの３つのパラメータのみが追跡され、３ＤＯＦ追跡が生成された。これらを使用して、ＶＲシステムは、頭部がどの方向を指しているかを知るが、不都合なことに、ユーザの目がどこに配置され得るかを推測する必要がある。
【０１００】
３つのパラメータを使用して、３Ｄ回転が頭部モデルのベースに適用され、目は妥当な場所に動くが、それは必ずしも正確であるわけではない。第１の問題は、頭部モデルの測定である（どれだけユーザの頭部が大きいか？）。より大きな問題は、ユーザが頭部のベースを動かすことを妨げるものがないことである。例えば、ユーザが前を見て、横から横に動かす場合、頭部の回転は極わずかであるが、位置は大きく変化する。代替的には、ユーザが、首を固定しながら腰を曲げて前方に屈む場合、頭部のベースは遠くに移動する。頭部ベースのそのような動きを考慮することができないことは、前庭の不一致を生じさせ、これはシミュレータ酔いの原因となり得る。問題は、ユーザの内耳内のセンサが、目が見ている物と一致しないことである。内耳は動きを検出するが、目は動きを見ない。
【０１０１】
剛体追跡システムは、追加の３つの位置パラメータを推測する必要があるのではなく、センサデータから直接、６つ全てのパラメータを追跡する。これは、６ＤＯＦ追跡であり、この追跡では、剛体追跡システムは、ユーザが面している方向及び頭部をあちこち動かす際の眼球の位置の両方を高い信頼性で推定することができる。これは、瞳孔間距離（ＩＰＤ）等の幾つかの一定の人固有の数量が測定されていると仮定する。前庭の不一致の低減に加えて、没入のレベルは信じられないほど高い。ユーザは、頭部を前後に動かして、深度を判断することができる。海賊船の厚板に立っている間、ユーザは屈んで恐ろしい海面を見ることができる。可能性は無限である。
【０１０２】
ビジョンベースの位置追跡
位置追跡は、ＶＲでの新しい問題ではない。様々な技術を使用して多くの試みがなれてきた：少数を挙げれば、単一又は複数のカメラ、構造化された光、飛行時間、及び磁気センサ。解決策は、コスト、消費電力、精度、必要な計算、及び環境制約によって様々である。そのために、幾つかの実施形態は、単一の安価で低解像度のカメラに頼る位置追跡解決策を記述する。
【０１０３】
カメラベースの位置追跡は、ポーズ推定（pose estimation）としても知られ、多くのコンピュータビジョン及びロボット工学アプリケーションで重要な問題である。関連する文献は膨大である。しかし、この文献の大半は精度、計算リソース、及び待ち時間に関連していない。砂漠で車をナビゲートする場合、数センチメートルずれた位置推定はかなり良好であり、位置をあまり頻繁に更新する必要はない。これとは対照的に、ＶＲの状況では、追跡は、非常に低い待ち時間で非常に精密でなければならず、レンダリングされるコンテンツから計算リソースを引き離すことはできない。
【０１０４】
幾つかの実施形態では、位置追跡システムは３つの構成要素から構成される：ＶＲヘッドセット（例えば、ＶＲヘッドセット１０５）に埋め込まれる１組のマーカ、ＩＭＵ、及び外部カメラ。図８は、剛体追跡システムの高レベル流れ図を示す。
【０１０５】
剛体追跡システムは、ＶＲヘッドセットの画像を取得する。画像処理を通して、剛体追跡システムは、マーカの画像位置を抽出する。各マーカはＩＲ  ＬＥＤである。マーカの画像位置及びＶＲヘッドセットの既知の３Ｄモデルに基づいて、剛体追跡システムは６Ｄポーズを計算する。アルゴリズムは、ＩＭＵ（ジャイロスコープ、磁力計、及び加速度計）から提供される情報を利用する。ビジョンデータ及びＩＭＵデータを融合した後、最適なヘッドセットポーズを決定する。結果は、レンダリングのためにアプリケーションに提供される。これより、アルゴリズムの個々の構成要素をより詳細に参照する。
【０１０６】
剛体追跡システムは、可視マーカ（ＬＥＤ）のそれぞれ１つを識別する。あらゆる捕捉画像において、剛体追跡システムは複数の明るいドットを検出する。各ドットはＬＥＤに対応する。剛体追跡システムは、物理的ＬＥＤのいずれが各ドットを生成するかを識別する。これが行われると、剛体追跡システムは、ＶＲヘッドセットのＬＥＤの既知の３Ｄモデルに観測画像射影を関連付ける。この関連付けを用いて、較正カメラを所与として、剛体追跡は、ドットの観測パターンを最良に説明するポーズを推定することができる。
【０１０７】
分かるように、識別問題は困難である。個々のＬＥＤを識別するために、剛体追跡システムは、それぞれ１つについての幾らかの一意の情報を抽出する。まさにそれを達成する多くの可能な方法がある。例えば、剛体追跡システムは、様々な可視光ＬＥＤを使用し、色に基づいて可視光ＬＥＤを区別することができる。別の興味深い手法は、幾何学的形状情報を線又は他の形状の形態で埋め込むことである。点がいかに編成されるかに基づいて、剛体追跡システムは、ＬＥＤの個々のＩＤを特定することができる。そして、同一平面にあるマーカのみを可能にする等の空間構成も識別を単純化することができる。
【０１０８】
これらの概念の大半は、計算的に複雑であり、オクルージョン（occlusion）及びノイズに対してロバストではなく、又は厳密な要件をＶＲヘッドセットの幾何学的形状及び外観に課す。幾つかの実施形態では、ＩＲ  ＬＥＤが一般的な３Ｄ構成に使用される。ＬＥＤは、外観に基づいて区別することができない。ＬＥＤは全て、明るいドットのように見える。また、ＬＥＤの識別を簡易化することができるいかなる特別な幾何学的構成もない。明るいスポットは、画像にかなりたくさんあり、ノイズ、他の光源、及びＬＥＤは全て同じに見える。そして最後に、ＬＥＤはＶＲヘッドセット全体にわたって拡散するため、ＬＥＤの幾つかのみが任意の所与の画像で可視であり、幾つかのＬＥＤはユーザの手で隠され得る。
【０１０９】
ＬＥＤは、ＶＲヘッドセットに埋め込まれる。幾つかの実施形態では、解決策は、ＬＥＤの輝度の変調に頼る。時間の経過に伴い、各ＬＥＤは光の一意のパターンを表示する。ＬＥＤは、ＩＲに近いスペクトルで動作するため、人間の目には見えない。しかし、ＩＲスペクトルでは、ＬＥＤは非常に明るく、広い照明野（約１２０度）を有する。カメラは、ＩＲ近くの周波数の光に感度を有するように設計され、広視野レンズを有する。これらの特性（明るいＬＥＤ及び広視野）により、大きな追跡容積が可能になる。
【０１１０】
ビジョンアルゴリズムは、個々のＬＥＤを検出し、幾つかのフレームにわたり個々のＬＥＤを追跡する。次に、ビジョンアルゴリズムは、光の表示パターンを分析して、各ＬＥＤの一意のＩＤを特定する。剛体追跡システムは各ＬＥＤを個々に復号化するため、この手法はノイズ及びオクルージョンに対してロバストである。しかし、この手法は、復号化が達成される前に幾つかのフレームを使用する。これは、任意の所与のフレームにおいて、幾つかの新しいＬＥＤ（まだ復号化されていない）があり、幾つかの復号化されたＬＥＤが視野から外れることも意味する。再構築アルゴリズムは、偽陽性に対してロバストである必要がある。
【０１１１】
なお、カメラは非常に短いシャッタ（１ミリ秒長未満）を有し、ＬＥＤは、シャッタが開いているときだけ照明するように同期される。その結果、剛体追跡システムは、カメラによって収集される周囲光の量を大幅に低減し、電力を節減し、高速頭部移動中のピンぼけを最小に抑え、最も重要なことには、カメラとＶＲヘッドセットとの既知のタイミングを維持することができる。これは、剛体追跡システムがＩＭＵとビジョン測定との間でセンサ融合を実行する場合に重要であり得る。
【０１１２】
ポーズ再構築
各ＬＥＤのＩＤが分かると、ＬＥＤの既知の３Ｄモデルを所与として、剛体追跡システムは、ＬＥＤの観測射影を最良に説明するＶＲヘッドセットの６Ｄポーズ（３Ｄ位置及び向き）が何であるかという従来の射影幾何学的形状問題を解決する準備ができる。
【０１１３】
剛体追跡システムは、２つのタイプのポーズ再構築モードを有する：ブートストラップ及びインクリメント。
第１の変形であるブートストラップは、剛体追跡システムがＬＥＤを最初に撮像するときに行われる。剛体追跡システムは前に識別問題を解決しており、これは、フレーム内の明るいドットの幾つかのＩＤの推測を有し得ることを意味する。しかし、剛体追跡システムは注意しなければならない。ＩＤの幾つかは誤っている可能性があり、ドットの幾つかはまだ識別されていないことがあり、ドットの幾つかは、環境内の他の光源によるものであり得る。ブートストラップ中、剛体追跡システムは、これらの全ての競合を素早く解決し、ＶＲヘッドセットのポーズを計算する必要がある。
【０１１４】
ブートストラップは、復号化されたＬＥＤに基づいてポーズ仮説を生成する計算的に非常に効率的な方法である。剛体追跡システムは、ランザック（ＲａｎＳＡＣ：Ｒａｎｄｏｍ  Ｓａｍｐｌｉｎｇ  Ａｎｄ  Ｃｏｎｓｅｎｓｕｓ）の変形を使用してこれらの仮説を通してソートして、正確に識別されたＬＥＤのサブセットを見つける。
【０１１５】
これらのポーズ仮説が何であるかを理解するために、画像平面三角形に射影された三角形ＡＢＣをとる。ポーズ仮説は逆行して機能し、画像を説明する三角形の位置及び向きが何であるかを剛体追跡システムに教える。点Ａ、Ｂ、及びＣの場合、同じ射影を有する２つ以上のポーズがあり得る。点が同じ平面にない場合、このポーズの曖昧さが消え、点の数が３つを超えて増えるにつれて、曖昧さが低減することに気付くことが重要である。
【０１１６】
ブートストラップの最後の部分は、可能な限り多くのＬＥＤを包含することにより、再構築されたポーズを改良することである。剛体追跡システムは、計算されたポーズを使用して、３Ｄモデルを画像に射影することによってこれを行う。次に、剛体追跡システムは、予期ＬＥＤ位置を観測ＬＥＤ位置と照合する。これにより、剛体追跡システムは、識別されるＬＥＤの数を劇的に増大させることができ、その結果として、計算されたポーズを改良する。予期ＬＥＤ画像位置を観測と照合することは、ポーズ再構築問題の第２のバージョン（インクリメント問題を解く鍵）であることが分かる。
【０１１７】
図９は、観測された明るいドット（より大きなドット）及び予測射影（より小さなドット）を示す。幾つかの場合では、予測ＬＥＤと観測ＬＥＤとの対の一致は困難であり得る。
【０１１８】
予期ＬＥＤ位置と観測ＬＥＤ位置との一致が、特に高速頭部移動下で、全てのＬＥＤが同じように見えるため、非常に困難であり得ることに気付くことに価値がある。
ポーズ推定問題の第２の変形ははるかに容易である。幸運なことに、第２の変形が、剛体追跡システムが大半のときに解決する必要があるものである。剛体追跡システムは、インクリメントモードである場合、現在のフレームでのポーズを計算するための開始点として、前のフレームからのＶＲヘッドセットのポーズを使用することができる。これがいかに機能するか。一言では、予測である。インクリメントモード中、剛体追跡システムは、ビジョン及びＩＭＵからの情報を融合して、ＶＲヘッドセットがあると予期される場所を計算する。次に、剛体追跡システムは、予測を観測と照合し、必要に応じて補正を実行する。
【０１１９】
インクリメント推定は、多くの様々な問題に適用されてきている。例えば、多くの最適化アルゴリズムは、あらゆるステップが解決策に少しずつ近づく反復手法を使用する。別の例は、測定がリアルタイム（オンライン）で提供される問題である。多種多様なフィルタが提案されており、その中でも最も普及しているものは、ベイジアンフィルタ（Bayesian filter）の類のものである。この類には、カルマンフィルタ、拡張カルマンフィルタ、シーケンシャルモンテカルロフィルタ等が含まれる。リアルタイムポーズ推定も、ベイジアンフィルタを使用して対処されることが多い。
【０１２０】
剛体追跡システムは、情報を融合するカスタムフィルタを使用し、予測を行うことができる。開始点は、前のフレームで計算された位置及び向きである。これは良好な開始点であるが、カメラフレーム間で必ず少し動き得る（１６．６ｍｓ＠６０Ｈｚ）。剛体追跡システムは、最後の少数のフレームにわたりポーズを見る場合、速度に基づいて幾らかの予測を行うことができる。ここで、本発明は少し近い。幸運なことに、剛体追跡システムはＩＭＵも有する。これは、前の画像と現在の画像との間で、剛体追跡システムが実際に、角速度及び線形加速度の約１６の測定値を有することを意味する。本発明のカスタムフィルタは、この情報を全て融合し、位置、速度、及び加速度に基づく履歴ベースのポーズ推定を提供する。最終結果は、現在フレームでの実際のポーズにかなり近い。
【０１２１】
剛体追跡システムは、予測ポーズを使用して、ＬＥＤを画像平面に射影する。次に、剛体追跡システムは、予測ＬＥＤ画像座標を観測値と対にする。予測が正確である場合、一致は完全である。そして最後に、剛体追跡システムは、完全な一致を生じさせる推定ポーズに必要な補正を計算する。
【０１２２】
図１０は、ポーズ最適化ステップを示す。図１０は、最適解が大域的最小（global minimum）である２Ｄランドスケープを示す。剛体追跡システムは、履歴、速度、及び加速度に基づいて予測されたポーズで開始される。解は、剛体追跡システムが最適なポーズを見つけるまで、勾配降下最適化を使用して繰り返し改善される。インクリメントポーズ推定は、計算的に効率的であり、時間の大半で予期される剛体追跡システムのモードである。ブートストラップが成功し、ＶＲヘッドセットがカメラに可視である限り、システムは、ポーズ予測、観測値との照合、ポーズの改良というこのプロセスを連続して進む。
【０１２３】
剛体追跡システムの３つの主な考慮事項は、オクルージョンへのロバスト性、効率的な計算、及び精度である。本方法は、本質的にオクルージョンに対してロバストである。識別中、剛体追跡システムは個々のＬＥＤを認識することができる。一条件は、幾つかのフレームで少数のＬＥＤを見ることである。ポーズ再構築もオクルージョンに対してロバストである。剛体追跡システムは、精度を検証し、フレーム毎に少数のＬＥＤを見ることに基づいて、ＶＲヘッドセットのポーズ推定を改良することができる。
【０１２４】
ＶＲでの頭部追跡の精度要件は高い。剛体追跡システムは、ＶＲヘッドセットでのＬＥＤの配置の入念な設計を通して必要な安定性（＜０．１ｍｍ且つ＜０．１度）を提供するとともに、ＬＥＤ、ＩＭＵ、及びカメラの間での信頼性の高い同期を提供する。全ての情報を一緒に融合することは、最終的に精密な予測及び平滑な追跡を可能にするものである。
【０１２５】
位置追跡の興味深い特性はグラウンディング（grounding）である。例えば、剛体追跡システムはここで、「前を向く」ことに意味を加えることができる。これは単に、カメラを見ることを意味する。ジャイロスコープ、加速度計、及び磁力計とは対照的に、ビジョンはドリフトしない。したがって、位置追跡を用いて、剛体追跡システムは、ドリフト補正に信頼性が高く単純な解決策を有する。
【０１２６】
位置追跡は、幾つかの興味深い問題を残す。尺度はよい一例である。ユーザは、現実世界での動きと現実世界での動きとの間に１対１のマッピングを予期するか。いかなる不一致もユーザの前庭系を混乱させ得るため、ユーザは恐らく１対１のマッピングを予期する。しかしここでも、頭部変位（ユーザが中心から遠いほど、ユーザが速く動くこと）に基づいて速度を制御することが有用である幾つかの使用事例がある。別の興味深い問題は、ユーザがカメラの視野に留まることをいかに促進するかである。
【０１２７】
別の例は、ユーザがいつ視野を出て、剛体追跡システムが位置追跡を失うが、それでもなおＩＭＵにより向き追跡を有するかである。剛体追跡システムは、位置追跡を再取得する度、３Ｄから６Ｄに戻る。剛体追跡システムが、６Ｄに再入するためにすべきことは何か。２つの可能な解決策は、ビジョンが再取得されるとすぐに、正確な位置に移ること及び正確な位置にゆっくりと補間することであるが、両解決策は様々な方法で不安定である。
関心エリア
追加のシステム構成要素：追跡中の体の外部の少なくとも１つの静止デジタルカメラ、追跡中の体にしっかりと取り付けられる１つの慣性測定ユニット、並びに慣性測定ユニット、カメラ、及びメインＣＰＵの構成要素間で情報を送受信するデジタルハードウェアを用いて、体表面に配置された多数の変調ＬＥＤに起因して、剛体追跡システムは、高精度及びオクルージョンロバスト性を達成する。
【０１２８】
剛体追跡システムにおいて、慣性測定ユニットは、角速度を測定する３軸ジャイロスコープである。
剛体追跡システムにおいて、慣性測定は３軸加速度計を含む。
【０１２９】
剛体追跡システムにおいて、慣性測定は３軸磁力計を含む。
剛体追跡システムにおいて、表面ＬＥＤは、同一平面になく、近傍ＬＥＤ間に十分な隔たりを提供する入念なパターンに配置される。
【０１３０】
剛体追跡システムにおいて、ＬＥＤは、所望の時間間隔にわたり２つ以上の所定の赤外線輝度レベルのうちの１つを維持し得るように変調される。
剛体追跡システムにおいて、ＬＥＤの変調はデジタルハードウェア構成要素によって制御される。
【０１３１】
剛体追跡システムにおいて、ＬＥＤの変調は、振幅、周波数、何らかの組合せ、又は他の信号符号化手段であり得る。
剛体追跡システムにおいて、ＬＥＤは、可視光スペクトル又は赤外線スペクトルであり得る。
【０１３２】
剛体追跡システムにおいて、カメラシャッタが開かれる時間又は慣性測定ユニットが新しい測定を提供する時間について、サブミリ秒時間スタンプが生成され、デジタルハードウェア構成要素によって記録される。
【０１３３】
ヘッドマウントディスプレイとの併用に有用な剛体追跡方法であって、頭部追跡方法は、慣性測定ユニット内のジャイロスコープによって得られる高周波（少なくとも１０００Ｈｚ）角速度測定値から体の向き推定を更新すること、ＬＥＤの一意に識別されるサブセットを含む画像から推定される体の位置を更新すること、慣性測定ユニット及び１つ又は複数のカメラの両方からの測定値を密に統合することにより、計算効率及び推定精度を改善すること、将来の位置及び向きを予測する追加の能力を用いて、体の位置及び向きの推定を提供することを含む。
【０１３４】
上述した方法において、加速度計測定値は、向き傾斜デッドレコニングエラーの補償に使用される。
上述した方法において、カメラ画像、場合によっては磁力計測定値が、向きヨーデッドレコニングエラー（orientation tilt dead-reckoning error）の補償に使用される。
【０１３５】
上述した方法において、低レベル画像処理が実行されて、サブピクセル精度で画像のＬＥＤ中心位置を抽出する。
上述した方法において、ＬＥＤ変調レベルが、連続カメラ画像にわたりデジタル符号化された識別子を提供し、それにより、ＬＥＤ識別問題を解決する。
【０１３６】
上述した方法において、画像からの位置及び向きの推定は、フレーム毎にインクリメントされて計算される。
上述した方法において、連続してシャッタが開く間の時間間隔にわたるジャイロスコープ及び加速度計からの測定値が利用される。
【０１３７】
上述した方法において、位置及び向きの正確な予測推定は、前のフレームからの推定を累積されたジャイロスコープ及び加速度計の測定値と結合することにより行われる。
上述した方法において、新しい位置及び向きの推定が、画像での予期されるＬＥＤの中心位置と画像でのＬＥＤの測定位置との不一致であるエラーを最適化するまで、予測推定を繰り返し摂動させる。
【０１３８】
概要
本開示の実施形態の上記説明は、例示のために提示され、網羅的である、すなわち本開示を開示される厳密な形態に限定する意図はない。多くの変更及び変形が上記開示に鑑みて可能であることを当業者は理解することができる。
【０１３９】
本開示の実施形態の上記説明は、例示のために提示され、網羅的である、すなわち本開示を開示される厳密な形態に限定する意図はない。多くの変更及び変形が上記開示に鑑みて可能であることを当業者は理解することができる。
【０１４０】
この説明の幾つかの部分は、アルゴリズム及び情報への動作の象徴的表現に関して本開示の実施形態を説明している。これらのアルゴリズム的説明及び表現は、当業者が他の当業者に仕事の実質を効率的に伝えるために一般に使用するものである。これらの動作は、機能的、計算的、又は論理的に説明され、コンピュータプログラム又は同等の電気回路、マイクロコード等によって実施されると理解される。さらに、時により、一般性を失うことなく、これらの動作構成をモジュールと呼ぶことが好都合であることも証明されている。説明された動作及び関連付けられたモジュールは、ソフトウェア、ファームウェア、ハードウェア、又はそれらの任意の組合せで実施し得る。
【０１４１】
本明細書に記載される任意のステップ、動作、又はプロセスは、単独又は他のデバイスと組み合わせて１つ又は複数のハードウェア又はソフトウェアモジュールを用いて実行又は実施し得る。一実施形態では、ソフトウェアモジュールは、コンピュータプログラムコードを含むコンピュータ可読媒体を備えるコンピュータプログラム製品を用いて実施され、コンピュータプログラムコードは、コンピュータプロセッサによって実行されて、記載される任意又は全てのステップ、動作、又はプロセスを実行することができる。
【０１４２】
本開示の実施形態は、本明細書における動作を実行する装置にも関し得る。この装置は、必要とされる目的に向けて特に構築されてもよく、且つ／又はコンピュータに記憶されたコンピュータプログラムによって選択的にアクティブ化又は再構成される汎用計算デバイスを備えてもよい。そのようなコンピュータプログラムは、非一時的の実体的なコンピュータ可読記憶媒体又はコンピュータシステムバスに結合し得る電子命令の記憶に適する任意のタイプの媒体に記憶し得る。さらに、本明細書で参照される任意の計算システムは、単一のプロセッサを含んでもよく、又は計算能力を増大させるために複数のプロセッサ設計を利用したアーキテクチャであってもよい。
【０１４３】
本開示の実施形態は、本明細書に記載される計算プロセスによって生成される製品に関することもできる。そのような製品は、計算プロセスから生じる情報を備え得、情報は非一時的で実体的なコンピュータ可読記憶媒体に記憶され、コンピュータプログラム製品の任意の実施形態又は本明細書に記載される他のデータの組合せを含み得る。
【０１４４】
最後に、本明細書で使用される用語は主に、可読性及び指示を目的として選択されており、本発明の趣旨を表現又は制限するものとして選択されていないことがある。したがって、本開示の範囲がこの詳細な説明によって限定されず、むしろ、本明細書に基づいた出願で発行される任意の特許請求の範囲によって限定されることが意図される。したがって、実施形態の本開示は、本開示の範囲の限定ではなく例示であることが意図され、本開示の範囲は以下の特許請求の範囲に記載される。
【図１】
0006381711.tif 000002
【図２Ａ】
0006381711.tif 000003
【図２Ｂ】
0006381711.tif 000004
【図３】
0006381711.tif 000005
【図４】
0006381711.tif 000006
【図５】
0006381711.tif 000007
【図６】
0006381711.tif 000008
【図７】
0006381711.tif 000009
【図８】
0006381711.tif 000010
【図９】
0006381711.tif 000011
【図１０】
0006381711.tif 000012