(19)【発行国】日本国特許庁(JP)
(12)【公報種別】特許公報(B2)
(11)【特許番号】
(24)【登録日】2024-04-04
(45)【発行日】2024-04-12
(54)【発明の名称】低電力セミパッシブ相対6自由度トラッキング
(51)【国際特許分類】
G06F 3/01 20060101AFI20240405BHJP
【FI】
G06F3/01 510
(21)【出願番号】P 2022568904
(86)(22)【出願日】2021-10-08
(86)【国際出願番号】 US2021071791
(87)【国際公開番号】W WO2022077028
(87)【国際公開日】2022-04-14
【審査請求日】2022-11-16
(32)【優先日】2020-10-09
(33)【優先権主張国・地域又は機関】US
(32)【優先日】2021-09-24
(33)【優先権主張国・地域又は機関】US
(73)【特許権者】
【識別番号】502208397
【氏名又は名称】グーグル エルエルシー
【氏名又は名称原語表記】Google LLC
【住所又は居所原語表記】1600 Amphitheatre Parkway 94043 Mountain View, CA U.S.A.
(74)【代理人】
【識別番号】110001195
【氏名又は名称】弁理士法人深見特許事務所
(72)【発明者】
【氏名】マルドーン,イアン
(72)【発明者】
【氏名】キンバー,クレイトン
(72)【発明者】
【氏名】スワードロー,ジェレミー
(72)【発明者】
【氏名】ラビンドラン,スリバットサン
【審査官】星野 裕
(56)【参考文献】
【文献】特表2018-530797(JP,A)
【文献】国際公開第2018/167843(WO,A1)
【文献】特表2017-527053(JP,A)
【文献】特表2017-516185(JP,A)
【文献】特表2018-534643(JP,A)
【文献】特表2016-506530(JP,A)
【文献】特開2010-113530(JP,A)
(58)【調査した分野】(Int.Cl.,DB名)
G06F 3/01
(57)【特許請求の範囲】
【請求項1】
システムであって、
ヘッドマウントディスプレイ(HMD)を備え、前記HMDは、
カメラと、
前記HMDの動作を制御するコントローラとを含み、前記システムはさらに、
前記HMDとペアリングされ、インターフェースデバイスを含む外部デバイスを備え、
前記HMDの前記コントローラは、前記HMDと前記外部デバイスとのペアリング状態に起因する前記外部デバイスの既知の画面状態に基づいて、前記外部デバイスの位置を判定するように構成され、前記外部デバイスの前記既知の画面状態は、前記外部デバイスが前記HMDの前記カメラの視野内にある間に前記HMDの前記カメラによって検出可能であ
り、前記既知の画面状態は、前記外部デバイスの位置の判定以外の用途を有する、前記外部デバイスの標識を含む、システム。
【請求項2】
前記HMDの前記コントローラは、前記外部デバイスの前記既知の画面状態の検出および前記外部デバイスの前記位置の判定に応答して、前記HMDによって表示される仮想コンテンツが前記外部デバイスの前記インターフェースデバイスと位置合わせされるように、前記HMDの表示デバイスを制御するように構成されている、請求項1に記載のシステム。
【請求項3】
前記HMDの前記コントローラは、
前記HMDの前記カメラの前記視野内における前記外部デバイスの前記既知の画面状態の検出に基づいて、前記外部デバイスの位置データを検出し、
前記位置データと、前記外部デバイスから受信した加速度データまたは方位データのうちの少なくとも1つと組み合わせ、
組み合わされた前記位置データと前記加速度データまたは前記方位データのうちの少なくとも1つとに基づいて、前記HMDに対する前記外部デバイスの6自由度(6DOF)位置を判定するように構成されている、請求項1に記載のシステム。
【請求項4】
前記HMDの前記コントローラは、前記外部デバイスの判定された前記6DOF位置に対応する位置および方位で、拡張現実環境において仮想コンテンツを表示するように、前記HMDの表示デバイスの動作を制御するように構成されている、請求項3に記載のシステム。
【請求項5】
前記HMDの前記コントローラは、前記外部デバイスが前記HMDの前記カメラの前記視野内に留まっている間、前記HMDによって表示される前記仮想コンテンツが前記外部デバイスと前記インターフェースデバイスの前記6DOF位置との位置合わせを維持するように、前記HMDの前記表示デバイスを制御するように構成されている、請求項4に記載のシステム。
【請求項6】
前記HMDの前記コントローラは、前記外部デバイスの前記インターフェースデバイスの位置および方位の対応する変化に応答して、前記HMDによって表示される前記仮想コンテンツの位置および方位が変化するように、前記HMDの前記表示デバイスを制御するように構成されている、請求項4に記載のシステム。
【請求項7】
前記HMDの前記コントローラは、前記外部デバイスの前記インターフェースデバイスにおいて検出された入力に応答して仮想コンテンツを表示するように、前記HMDの前記表示デバイスを制御するように構成されている、請求項1~請求項6のいずれか1項に記載のシステム。
【請求項8】
前記外部デバイスの前記既知の画面状態は、前記外部デバイスをアイドル状態からウェイクさせる、前記外部デバイスに適用されるジェスチャコマンドに応答して、外部デバイスの前記インターフェースデバイスによって出力される基準マーカを含み、前記外部デバイスの前記インターフェースデバイスによって出力される前記基準マーカは、前記HMDの前記カメラによって検出可能である、請求項1~請求項7のいずれか1項に記載のシステム。
【請求項9】
前記外部デバイスは、前記外部デバイスが前記HMDの前記カメラの前記視野内にあるときに前記HMDの前記カメラによって検出可能な少なくとも1つのアクティブマーカと少なくとも1つのパッシブマーカとを含み、前記HMDの前記コントローラは、前記HMDの前記カメラの前記視野内における前記少なくとも1つのアクティブマーカと前記少なくとも1つのパッシブマーカとの検出に応答して、前記HMDによって表示される仮想コンテンツが前記外部デバイスと位置合わせされるように、前記表示デバイスを制御するように構成されている、請求項1~請求項8のいずれか1項に記載のシステム。
【請求項10】
前記標識は、前記外部デバイスにおいて実行される1以上のアプリケーションのウィジェットまたはアイコンの少なくとも一方を含む、請求項1~請求項9のいずれか1項に記載のシステム。
【請求項11】
コンピュータによって実施される方法であって、
ヘッドマウントディスプレイ(HMD)のカメラが、前記カメラの視野内の外部デバイス上で少なくとも1つのマーカを検出することを備え、前記外部デバイスは前記HMDとペアリングされ、前記少なくとも1つのマーカは、前記外部デバイスと前記HMDとのペアリング状態に起因する前記外部デバイスの既知の画面状態を含み、前記コンピュータによって実施される方法はさらに、
前記HMDのプロセッサが、前記少なくとも1つのマーカの検出に基づいて、前記外部デバイスの位置データを検出することと、
前記プロセッサが、検出された前記位置データを、前記外部デバイスから受信した加速度データおよび方位データと組み合わせることと、
前記プロセッサが、組み合わされた前記位置データ、前記加速度データ、および前記方位データに基づいて、前記HMDに対する前記外部デバイスの6自由度(6DOF)位置を判定することとを備え
、前記少なくとも1つのマーカは、前記外部デバイスの位置データの検出以外の用途を有する、前記外部デバイスにおける標識を含む、コンピュータによって実施される方法。
【請求項12】
前記HMDの表示デバイスが、前記外部デバイスの判定された前記6DOF位置に対応する位置において仮想コンテンツを表示するためにトリガすることをさらに備える、請求項
11に記載のコンピュータによって実施される方法。
【請求項13】
前記仮想コンテンツを表示するためにトリガすることは、前記外部デバイスが前記HMDの前記カメラの前記視野内に留まっている間、前記仮想コンテンツの表示と前記外部デバイスのインターフェースデバイスの前記6DOF位置との位置合わせを維持することを含む、請求項
12に記載のコンピュータによって実施される方法。
【請求項14】
前記仮想コンテンツの表示のためにトリガすることは、
前記外部デバイスの位置または方位のうちの少なくとも1つの変化を検出することと、
前記仮想コンテンツの表示の位置または方位のうちの少なくとも1つを、前記外部デバイスの前記位置または前記方位のうちの前記少なくとも1つの検出された前記変化に対応するように、変更することとを含む、請求項
12に記載のコンピュータによって実施される方法。
【請求項15】
前記仮想コンテンツの表示のためにトリガすることは、前記HMDの前記表示デバイスが、前記外部デバイスのインターフェースデバイスにおいて検出された入力に応答して、前記仮想コンテンツの表示のためにトリガすることを含む、請求項
12に記載のコンピュータによって実施される方法。
【請求項16】
前記外部デバイスの前記既知の画面状態は、前記外部デバイスをアイドル状態からウェイクさせる、前記外部デバイスによって出力される基準マーカを含み、前記外部デバイスによって出力される前記基準マーカは、前記HMDの前記カメラによって検出可能である、請求項
11~請求項
15のいずれか1項に記載のコンピュータによって実施される方法。
【請求項17】
前記少なくとも1つのマーカは、前記外部デバイスが前記HMDの前記カメラの前記視野内にあるときに前記HMDの前記カメラによって検出可能な少なくとも1つのアクティブマーカと少なくとも1つのパッシブマーカとを含む、請求項
11~請求項
16のいずれか1項に記載のコンピュータによって実施される方法。
【請求項18】
前記標識は、前記外部デバイスにおいて実行される1以上のアプリケーションのウィジェットまたはアイコンの少なくとも一方を含む、請求項11~請求項17のいずれか1項に記載のコンピュータによって実施される方法。
【請求項19】
コンピューティングデバイスによって実行されると、前記コンピューティングデバイスに請求項
11~請求項
18のいずれか1項に記載の方法を実施させる命令を有する、プログラム。
【発明の詳細な説明】
【技術分野】
【0001】
関連出願の相互参照
本出願は、2020年5月18日に出願された、「LOW-POWER SEMI-PASSIVE RELATIVE SIX-DEGREE-OF-FREEDOM TRACKING(低電力セミパッシブ相対6自由度トラッキング)」と題された国際特許出願PCT/US20/70057号の一部継続出願であると共にその優先権を主張する、2020年10月9日に出願された、「LOW-POWER SEMI-PASSIVE RELATIVE SIX-DEGREE-OF-FREEDOM TRACKING(低電力セミパッシブ相対6自由度トラッキング)」と題された米国特許出願第16/949,027号の継続出願であると共にその優先権を主張する、2021年9月24日に出願された、「LOW-POWER SEMI-PASSIVE RELATIVE SIX-DEGREE-OF-FREEDOM TRACKING(低電力セミパッシブ相対6自由度トラッキング)」と題された米国特許出願第17/448,768号の継続出願であると共にその優先権を主張し、これらの開示全体が引用により本明細書に援用される。
【0002】
分野
本発明は、概して拡張現実環境および/または仮想現実環境における電子デバイスの検出およびトラッキングに関する。
【背景技術】
【0003】
背景
仮想現実(virtual reality:VR)システム、または拡張現実(augmented reality:AR)システム、または複合現実(mixed reality:MR)システムは、仮想コンテンツを生成および提示し、仮想コンテンツとのユーザ対話を提供することなどのために、種々の異なるタイプの電子デバイスを利用し得る。たとえば、ユーザは、ディスプレイ、眼鏡またはゴーグルを含むヘッドマウントデバイス、ハンドヘルドデバイス、手首装着型デバイスなどの外部電子デバイス、および他のそのような電子デバイスを通して、VR/AR/MR仮想環境における仮想コンテンツを体験し、それと対話することができる。電子デバイスの動作時間が延長されると、特に、仮想コンテンツとのユーザ対話のためにいくらか電力が制約された電子デバイスを使用する場合に、ユーザ体験が向上し得る。
【発明の概要】
【0004】
概要
ある一般的な態様では、システムはヘッドマウントディスプレイ(head mounted display:HMD)を備え、HMDは、カメラと、HMDの動作を制御するコントローラとを含み、システムはさらに、HMDとペアリングされ、インターフェースデバイスを含む外部デバイスを備える。HMDのコントローラは、HMDと外部デバイスとのペアリング状態に起因する外部デバイスの既知の画面状態に基づいて、外部デバイスの位置を判定するように構成されてもよく、外部デバイスの既知の画面状態は、外部デバイスがHMDのカメラの視野内にある間にHMDのカメラによって検出可能である。
【0005】
いくつかの実装形態では、HMDのコントローラは、外部デバイスの既知の画面状態の検出および外部デバイスの位置の判定に応答して、HMDによって表示される仮想コンテンツが外部デバイスのインターフェースデバイスと位置合わせされるように、HMDの表示デバイスを制御するように構成されている。
【0006】
いくつかの実装形態では、HMDのコントローラは、HMDのカメラの視野内における外部デバイスの既知の画面状態の検出に基づいて、外部デバイスの位置データを検出し、位置データを、外部デバイスから受信した加速度データまたは方位データのうちの少なくとも1つと組み合わせ、組み合わされた位置データと加速度データまたは方位データのうちの少なくとも1つとに基づいて、HMDに対する外部デバイスの6自由度(six-degree-of-freedom:6DOF)位置を判定するように構成されている。HMDのコントローラは、外部デバイスの判定された6DOF位置に対応する位置および方位で、拡張現実環境において仮想コンテンツを表示するように、前記HMDの前記表示デバイスの動作を制御するように構成されてもよい。HMDのコントローラは、外部デバイスがHMDのカメラの視野内に留まっている間、HMDによって表示される仮想コンテンツが外部デバイスのインターフェースデバイスの6DOF位置との位置合わせを維持するように、HMDの表示デバイスを制御するように構成されてもよい。HMDのコントローラは、外部デバイスのインターフェースデバイスの位置および方位の対応する変化に応答して、HMDによって表示される仮想コンテンツの位置および方位が変化するように、HMDの表示デバイスを制御するように構成されてもよい。いくつかの実装形態では、HMDのコントローラは、外部デバイスのインターフェースデバイスにおいて検出された入力に応答して仮想コンテンツを表示するように、HMDの表示デバイスを制御するように構成されている。
【0007】
いくつかの実装形態では、外部デバイスの既知の画面状態は、外部デバイスをアイドル状態からウェイクさせる、外部デバイスに適用されるジェスチャコマンドに応答して、外部デバイスのインターフェースデバイスによって出力される基準マーカを含み、外部デバイスのインターフェースデバイスによって出力される基準マーカは、HMDのカメラによって検出可能である。
【0008】
いくつかの実装形態では、外部デバイスは、外部デバイスがHMDのカメラの視野内にあるときにHMDのカメラによって検出可能な少なくともアクティブマーカと少なくとも1つのパッシブマーカとを含み、HMDのコントローラは、HMDのカメラの視野内における少なくとも1つのアクティブマーカと少なくとも1つのパッシブマーカとの検出に応答して、HMDによって表示される仮想コンテンツが外部デバイスと位置合わせされるように、表示デバイスを制御するように構成されている。
【0009】
別の一般的な態様では、コンピュータによって実施される方法は、ヘッドマウントディスプレイ(HMD)のカメラが、カメラの視野内の外部デバイス上で少なくとも1つのマーカを検出することを備え、外部デバイスはHMDとペアリングされ、少なくとも1つのマーカは、外部デバイスとHMDとのペアリング状態に起因する外部デバイスの既知の画面状態を含み、コンピュータによって実施される方法はさらに、HMDのプロセッサが、少なくとも1つのマーカの検出に基づいて外部デバイスの位置データを検出することと、プロセッサが、検出された位置データを、外部デバイスから受信した加速度データおよび方位データと組み合わせることと、プロセッサが、組み合わされた位置データ、加速度データおよび方位データに基づいて、HMDに対する外部デバイスの6自由度(6DOF)位置を判定することとを備える。
【0010】
いくつかの実装形態では、方法はさらに、HMDの表示デバイスが、外部デバイスの判定された6DOF位置に対応する位置において仮想コンテンツを表示するためにトリガすることを備える。仮想コンテンツを表示するためにトリガすることは、外部デバイスがHMDのカメラの視野内に留まっている間、仮想コンテンツのディスプレイと外部デバイスのインターフェースデバイスの6DOF位置との位置合わせを維持することを含んでもよい。仮想コンテンツの表示のためにトリガすることは、外部デバイスの位置または方位のうちの少なくとも1つの変化を検出することと、仮想コンテンツの表示の位置または方位のうちの少なくとも1つを、外部デバイスの位置または方位のうちの少なくとも1つの検出された変化に対応するように、変更することとを含んでもよい。仮想コンテンツの表示のためにトリガすることは、HMDの表示デバイスが、外部デバイスのインターフェースデバイスにおいて検出された入力に応答して、仮想の表示のためにトリガすることを含んでもよい。
【0011】
いくつかの実装形態では、外部デバイスの既知の画面状態は、外部デバイスをアイドル状態からウェイクさせる、外部デバイスに適用されるジェスチャコマンドに応答して、外部デバイスによって出力される基準マーカを含み、外部デバイスによって出力される基準マーカは、HMDのカメラによって検出可能である。いくつかの実装形態では、少なくとも1つのマーカは、外部デバイスがHMDのカメラの視野内にあるときにHMDのカメラによって検出可能な少なくともアクティブマーカと少なくとも1つのパッシブマーカとを含む。
【0012】
別の一般的な態様では、非一時的コンピュータ読取可能媒体は命令を格納し、命令は、コンピューティングデバイスによって実行されると、コンピューティングデバイスに、コンピューティングデバイスのカメラによって、カメラの視野内にある外部デバイス上で、少なくとも1つのマーカを検出させ、外部デバイスはコンピューティングデバイスとペアリングされており、少なくとも1つのマーカは、外部デバイスとコンピューティングデバイスとのペアリング状態に起因する外部デバイスの既知の画面状態を含み、命令は、コンピューティングデバイスにさらに、コンピューティングデバイスのプロセッサによって、少なくとも1つのマーカの検出に基づいて、外部デバイスの位置データを検出させ、プロセッサによって、検出された位置データを、外部デバイスから受信した加速度データおよび方位データと組み合わさせ、プロセッサによって、組み合わされた位置データ、加速度データ、および方位データに基づいて、コンピューティングデバイスに対する外部デバイスの6自由度(6DOF)位置を判定させる。
【0013】
いくつかの実装形態では、命令は、コンピューティングデバイスに、コンピューティングデバイスの表示デバイスによって、外部デバイスの判定された6DOF位置に対応する位置において仮想コンテンツを表示するためにトリガさせる。命令は、コンピューティングデバイスに、外部デバイスがコンピューティングデバイスのカメラの視野内で検出される間、外部デバイスの位置または方位のうちの少なくとも1つの検出された変化に応答して、表示された仮想コンテンツと外部デバイスの6DOF位置との位置合わせを維持させてもよい。命令は、コンピューティングデバイスに、外部デバイスをアイドル状態からウェイクさせる、外部デバイスに適用されるジェスチャコマンドに応答して、外部デバイスによって出力される基準マーカを含む、外部デバイスの既知の画面状態を検出させもよく、外部デバイスによって出力される基準マーカは、コンピューティングデバイスのカメラによって検出可能である。
【0014】
別の一般的な態様では、システムは、仮想コンテンツを表示するように構成されたヘッドマウントディスプレイ(HMD)を備え、HMDは、表示デバイスと、カメラと、照明デバイスと、HMDの動作を制御するコントローラとを含み、システムはさらに、HMDとペアリングされた外部デバイスを備え、外部デバイスは、インターフェースデバイスと、HMDのカメラによって検出可能な少なくとも1つのアクティブマーカと、HMDのカメラによって検出可能な少なくとも1つのパッシブマーカと、外部デバイスの動作を制御するコントローラとを含み、HMDのコントローラは、HMDによって表示される仮想コンテンツが、HMDのカメラの視野内における少なくとも1つのアクティブマーカまたは少なくとも1つのパッシブマーカのうちの少なくとも1つの検出に応答して外部デバイスの入力面と位置合わせされるように、表示デバイスを制御するように構成されている。
【0015】
いくつかの実装形態では、HMDのコントローラは、HMDによって表示される仮想コンテンツが、HMDのカメラの視野内における少なくとも1つのアクティブマーカまたは少なくとも1つのパッシブマーカのうちの少なくとも1つの検出に応答して外部デバイスの入力面と位置合わせされるように、表示デバイスを制御するように構成されている。インターフェースデバイスは、入力デバイスまたは出力デバイスのうちの少なくとも1つを含んでもよく、HMDのコントローラは、外部デバイスのインターフェースデバイスにおいて検出された入力に応答して仮想コンテンツを表示するように、表示デバイスを制御するように構成されている。
【0016】
いくつかの実装形態では、少なくとも1つのアクティブマーカは、外部デバイス上の第1の位置における第1のアクティブマーカと、外部デバイス上の第2の位置における第2のアクティブマーカとを含み、少なくとも1つのパッシブマーカは、外部デバイスの第3の位置における再帰反射マーカを含む。第1のアクティブマーカは、HMDのカメラによって検出される光を選択的に放出する光源を含んでもよい。第2のアクティブマーカは、HMDのカメラによって検出される光を選択的に放出する光源を含んでもよく、第1のアクティブマーカの光源によって放出される光の強度の少なくとも1つは、第2のアクティブマーカの光源によって放出される光の強度と異なる、または、第1のアクティブマーカの光源から放出される光のパターンは、第2のアクティブマーカの光源によって放出される光のパターンと異なる。いくつかの実装形態では、外部デバイスがHMDのカメラの視野内にあるとき、第1のアクティブマーカおよび第2のアクティブマーカは、カメラによって検出可能であり、再帰反射マーカは、照明デバイスによるカメラの視野の照明に応答して、カメラによって検出可能である。
【0017】
いくつかの実装形態では、外部デバイスのコントローラは、第1のアクティブマーカおよび第2のアクティブマーカの動作を制御するように構成され、外部デバイスのコントローラは、外部デバイスが視野内にある動作時間のブロック内の少なくとも1つの期間の間に、第1のアクティブマーカがオンになると共にHMDのコントローラのカメラによって検出可能であるように、動作時間のブロック内の少なくとも1つの期間の間に、第2のアクティブマーカがオンになると共にHMDのカメラによって検出可能になるように、かつ、動作時間のブロック内の少なくとも1つの期間の間に、照明デバイスがオンになると共に再帰反射マーカがHMDのカメラによって検出可能になるように、動作時間のブロックの間に照明デバイスの動作を制御するように構成されている。いくつかの実装形態では、第1のアクティブマーカがオンになる少なくとも1つの期間の間、第2のアクティブマーカはオフであり、照明デバイスはオフであり、第2のアクティブマーカがオンである少なくとも1つの期間の間、第1のアクティブマーカはオフであり、照明デバイスはオフであり、照明デバイスがオンになる少なくとも1つの期間の間、第1のアクティブマーカはオフであり、第2のアクティブマーカはオフである。
【0018】
いくつかの実装形態では、HMDのコントローラは、第1のアクティブマーカ、第2のアクティブマーカ、およびパッシブマーカの検出に基づいて、外部デバイスの位置データを検出し、位置データを、外部デバイスから受信した加速度データまたは方位データのうちの少なくとも1つと組み合わせ、組み合わされた位置データと、加速度データまたは方位データのうちの少なくとも1つとに基づいて、HMDに対する外部デバイスの6自由度(6DOF)位置を判定するように構成されている。HMDのコントローラは、外部デバイスの判定された6DOF位置に対応する位置において、拡張現実環境において仮想コンテンツを表示するように、表示デバイスの動作を制御するように構成されてもよい。
【0019】
別の一般的な態様では、コンピュータによって実施される方法は、ヘッドマウントディスプレイ(HMD)のカメラが、カメラの視野内の外部デバイス上で少なくとも1つのマアクティブーカと少なくとも1つのパッシブマーカとを検出することを備え、外部デバイスはHMDとペアリングされ、コンピュータによって実施される方法はさらに、HMDのプロセッサが、少なくとも1つのマーカの検出に基づいて、外部デバイスの位置データを検出することと、プロセッサが、検出された位置データを、外部デバイスから受信した加速度データおよび方位データと組み合わせることと、プロセッサが、組み合わされた位置データ、加速度データ、および方位データに基づいて、HMDに対する外部デバイスの6自由度(6DOF)位置を判定することと、HMDの表示デバイスが、外部デバイスの判定された6DOF位置に対応する位置において仮想コンテンツを表示するためにトリガすることとを備える。
【0020】
いくつかの実装形態では、仮想コンテンツの表示のためにトリガすることは、外部デバイスの入力面と位置合わせされた位置において仮想コンテンツを表示することを含む。いくつかの実装形態では、少なくとも1つのアクティブマーカを検出することは、外部デバイス上の第1の位置における第1のアクティブマーカを検出することと、外部デバイス上の第2の位置における第2のアクティブマーカを検出することとを含み、少なくとも1つのパッシブマーカを検出することは、外部デバイス上の第3の位置における再帰反射マーカを検出することを含む。いくつかの実装形態では、第1のアクティブマーカを検出することは、第1のアクティブマーカの光源によって選択的に放出される光を検出することを含み、第2のアクティブマーカを検出することは、第2のアクティブマーカの光源によって選択的に放出される光を検出することを含み、再帰反射マーカを検出することは、HMDの照明デバイスによるカメラの視野内の照明に応答して、再帰反射マーカを検出することを含む。いくつかの実装形態では、第1のアクティブマーカの光源によって放出される光の強度の少なくとも1つは、第2のアクティブマーカの光源によって放出される光の強度と異なる、または、第1のアクティブマーカの光源によって放出される光のパターンは、第2のアクティブマーカの光源によって放出される光のパターンと異なる。
【0021】
いくつかの実施態様では、外部デバイスがカメラの視野内にある動作時間のブロックの間、第1のアクティブマーカを検出することと、第2のアクティブマーカを検出することと、再帰反射マーカを検出することは、第1のアクティブマーカがオンであると共にHMDのコントローラのカメラによって検出可能な動作時間のブロック内の少なくとも1つの期間の間に第1のアクティブマーカを検出することと、第2のアクティブマーカがオンであると共にHMDのコントローラのカメラによって検出可能な動作時間のブロック内の少なくとも1つの期間の間に第2のアクティブマーカを検出することと、照明デバイスがオンであると共にパッシブマーカがHMDのカメラによって検出可能である動作時間のブロック内の少なくとも1つの期間の間に再帰反射マーカを検出することとを含む。
【0022】
いくつかの実装形態では、第1のアクティブマーカを検出することは、第1のアクティブマーカがオンであり、第2のアクティブマーカがオフであり、照明デバイスがオフである少なくとも1つの期間の間に、第1のアクティブマーカを検出することを含み、第2のアクティブマーカを検出することは、第2のアクティブマーカがオンであり、第1のアクティブマーカがオフであり、照明デバイスがオフである少なくとも1つの期間の間に、第2のアクティブマーカを検出することを含み、再帰反射マーカを検出することは、照明デバイスがオンであり、第1のアクティブマーカがオフであり、第2のアクティブマーカがオフである少なくとも1つの期間の間に、再帰反射マーカを検出することを含む。
【0023】
別の一般的な態様では、非一時的コンピュータ読取可能媒体は命令を格納し、命令は、コンピューティングデバイスによって実行されると、コンピューティングデバイスに、コンピューティングデバイスのカメラによって、カメラの視野内にある外部デバイス上で、少なくとも1つのアクティブマーカと少なくとも1つのパッシブマーカとを検出させ、外部デバイスはコンピューティングデバイスとペアリングされ、命令は、コンピューティングデバイスにさらに、コンピューティングデバイスのプロセッサによって、少なくとも1つのマーカの検出に基づいて、外部デバイスの位置データを検出させ、プロセッサによって、検出された位置データを、外部デバイスから受信した加速度データおよび方位データと組み合わさせ、プロセッサによって、組み合わされた位置データ、加速度データ、および方位データに基づいて、コンピューティングデバイスに対する外部デバイスの6自由度(6DOF)位置を判定させ、コンピューティングデバイスの表示デバイスによって、外部デバイスの判定された6DOF位置に対応する位置において仮想コンテンツを表示するためにトリガさせる。
【0024】
いくつかの実装形態では、命令は、コンピューティングデバイスに、外部デバイスの入力面と位置合わせされた位置にコンテンツを表示させる。いくつかの実装形態では、命令は、コンピューティングデバイスに、第1のアクティブマーカの光源によって放出された光に基づいて、外部デバイス上の第1の位置における第1のアクティブマーカを検出させ、第2のアクティブマーカの光源によって放出された光に基づいて、外部デバイス上の第2の位置における第2のアクティブマーカを検出させ、コンピューティングデバイスの照明デバイスによって放出され、かつ再帰反射マーカによってカメラに反射で戻された光に基づいて、外部デバイスの第3の位置における再帰反射マーカを検出させる。
【0025】
いくつかの実施態様では、外部デバイスがコンピューティングデバイスのカメラの視野内にある動作時間のブロックの間、第1のアクティブマーカの検出、第2のアクティブマーカの検出、および再帰反射マーカの検出の際に、命令は、コンピューティングデバイスに、第1のアクティブマーカがオンであると共にコンピューティングデバイスのカメラによって検出可能であり、第2のアクティブマーカがオフであり、照明デバイスがオフである動作時間のブロック内の第1の期間の間に、第1のアクティブマーカを検出させ、第2のアクティブマーカがオンであると共にコンピューティングデバイスのカメラによって検出可能であり、第1のアクティブマーカがオフであり、照明デバイスがオフである動作時間のブロック内の第2の期間の間に、第2のアクティブマーカを検出させ、照明デバイスがオンであり、パッシブマーカがコンピューティングデバイスのカメラによって検出可能であり、第1のアクティブマーカがオフであり、第2のアクティブマーカがオフである動作時間のブロック内の少なくとも1つの期間の間に、再帰反射マーカを検出させる。
【0026】
いくつかの実装形態では、命令は、コンピューティングデバイスに、外部デバイスがHMDのカメラの視野内で検出される間、表示された仮想コンテンツと外部デバイスの6DOF位置との位置合わせを維持させる。
【0027】
1つ以上の実装形態の詳細は、添付の図面および以下の説明に記載されている。他の特徴は、説明および図面、ならびに特許請求の範囲から明らかになるであろう。
【図面の簡単な説明】
【0028】
【
図1】本明細書で説明する実装形態に係る、ヘッドマウント表示デバイスと入力デバイスとを含むシステムの一例を示す図である。
【
図2A】本明細書で説明する実装形態に係る、ヘッドマウント表示デバイスの例を示す正面図である。
【
図2B】本明細書で説明する実装形態に係る、入力デバイスの例を示す正面図である。
【
図2C】本明細書で説明する実装形態に係る、入力デバイスの例を示す正面図である。
【
図3】本明細書で説明する実装形態に係る、ヘッドマウント表示デバイスの例および入力デバイスの例を示すブロック図である。
【
図4】本明細書で説明する実装形態に係る、ヘッドマウント表示デバイスの例および入力デバイスの例を含むシステムを示す図である。
【
図5】本明細書で説明する実装形態に係る、
図4に示すシステムの例の照明パターンの例を示す図である。
【
図6A】本明細書で説明する実装形態に係る、
図4に示すシステムの例の使用例を示す図である。
【
図6B】本明細書で説明する実装形態に係る、
図4に示すシステムの例の使用例を示す図である。
【
図6C】本明細書で説明する実装形態に係る、
図4に示すシステムの例の使用例を示す図である。
【
図6D】本明細書で説明する実装形態に係る、
図4に示すシステムの例の使用例を示す図である。
【
図7】本明細書で説明する実装形態に係る、入力デバイスの例のバンド部分を示す底面図/背面図である。
【
図8】本明細書で説明する実装形態に係る、HMDに対して入力デバイスを追跡する方法を示すフローチャートである。
【
図9A】本明細書で説明する実装形態に係る、ヘッドマウント表示デバイスの例に対する外部デバイスの例の移動を概略的に示す図である。
【
図9B】本明細書で説明する実装形態に係る、ヘッドマウント表示デバイスの例に対する外部デバイスの例の移動を概略的に示す図である。
【
図9C】本明細書で説明する実装形態に係る、ヘッドマウント表示デバイスの例に対する外部デバイスの例の移動を概略的に示す図である。
【
図9D】本明細書で説明する実装形態に係る、ヘッドマウント表示デバイスの例に対する外部デバイスの例の移動を概略的に示す図である。
【
図10】本明細書で説明する技法を実現するために使用可能なコンピューティングデバイスおよびモバイルコンピューティングデバイスの例を示す図である。
【発明を実施するための形態】
【0029】
詳細な説明
ユーザは、たとえば、仮想コンテンツを体験するための表示デバイス、および仮想コンテンツと対話するための外部デバイス、または補助デバイス、または入力デバイス等のさまざまな電子デバイスを使用して、AR環境、またはMR環境、またはVR環境において、仮想コンテンツの体験およびそれとの対話が可能である。同様に、外部補助/入力デバイスから利用可能なコンテンツは、表示デバイスと共有可能である。たとえば、いくつかの実装形態では、ヘッドマウントディスプレイ(HMD)デバイスは、AR、またはMR、またはVR環境を生成し、ユーザに提示可能である。いくつかの実装形態では、HMDは、ユーザ入力を受信することが可能であり得る。しかしながら、場合によっては、ユーザがHMDに含まれるコントロールを介して仮想コンテンツと対話することは困難なことがある。したがって、いくつかの実装形態では、外部デバイス、または補助デバイス、または入力デバイスは、仮想コンテンツとのユーザ対話を容易にするために、HMDに動作可能に結合され得る。いくつかの実装形態では、外部デバイス、または補助デバイス、または入力デバイスは、たとえば、スマートウォッチ等のウェアラブルデバイスでもよい。いくつかの実装形態では、外部デバイス、または補助デバイス、または入力デバイスは、スマートフォンおよびハンドヘルドコントローラなどのハンドヘルドデバイスでもよい。いくつかの実装形態では、外部デバイス、または補助デバイス、または入力デバイスは、たとえば、タブレットコンピューティングデバイスおよびラップトップコンピューティングデバイスなどの、別のタイプのモバイル電子デバイスでもよい。いくつかの実装形態では、外部デバイス、補助デバイス、または入力デバイスの位置および/または方位は、たとえば、仮想コンテンツとのユーザ対話を容易にするために、たとえば、HMDに対して追跡され得る。種々の異なる方法が、HMDに対する入力デバイスの位置および/または方位を追跡する際に実装され得る。これらの種々の異なる方法は、たとえば、入力デバイスとHMDとの間のセンサデータの交換、HMDによる、入力デバイス上の追跡デバイス、たとえばアクティブ追跡デバイスおよび/またはパッシブ追跡デバイス、外部デバイス上に設けられたおよび/または外部デバイスによって生成された基準マーカの検出などを含み得る。
【0030】
状況によっては、外部補助/入力デバイスは、たとえば、外部補助/入力デバイスの電力貯蔵デバイス(すなわち、バッテリ)のサイズおよび/または容量、他の電力要件などに起因して、いくらか電力が制約されることがある。外部補助/入力デバイスがいくらか電力を制約される状況では、外部補助/入力デバイスの位置および/または方位を追跡する際に消費される電力の量を低減または最小化することが有益な場合がある。
【0031】
図1に示す実施形態例では、ユーザは、外部補助/入力デバイス20の例がHMD10の例に動作可能に結合可能な状態で、表示デバイス10の例、たとえばヘッドマウントディスプレイ(HMD)デバイス10の例を装着している。HMD10の例は、たとえば、ウェアラブルスマートグラス10の例、またはユーザに仮想コンテンツの表示を提供することができるゴーグル10の例でもよい。
図1に示す配置例では、HMD10は、単に説明および例示を目的として、スマートグラス10の例の形態である。外部補助/入力デバイス20の例は、ハンドヘルドデバイス、ウェアラブル入力デバイス、手首装着型入力デバイス、スマートウォッチ、およびHMD10によって提示される仮想コンテンツとの対話を容易にすることができ、かつ/またはHMD10とコンテンツを共有することができる他のそのようなデバイスを含む。
図1に示す配置例は、単に説明および例示の目的で、スマートウォッチ20Aの例の形態の第1の外部デバイス20Aと、スマートフォン20Bの形態の第2の外部デバイス20Bとを含む。上述したように、他の電子デバイスが、HMD10の例に動作可能に結合されてもよい。
【0032】
図2Aは、
図1においてユーザによって装着されるHMD10の例を示す正面図である。
図2Bは、
図1に示す第1の外部デバイス20Aの正面図である。
図2Cは、
図1に示す第2外部デバイス20Bの正面図である。
【0033】
この例におけるスマートグラス10の例の形態のHMD10の例は、フレーム11を含んでもよく、表示デバイス12がフレーム11内で結合されている。いくつかの実装形態では、オーディオ出力デバイス13がフレーム11に結合されてもよい。HMD10は、HMD10の動作を容易にするために、さまざまな感知システムデバイスを含む感知システム16と、さまざまな制御システムデバイスを含む制御システム17とを含み得る。制御システム17は、制御システム17の構成要素に動作可能に結合されたプロセッサ19を含み得る。HMD10はまた、画像センサ18(すなわち、カメラ18)を含み得る。いくつかの実装形態では、画像センサ18またはカメラ18は、静止画および/または動画をキャプチャすることが可能でもよい。いくつかの実装形態では、画像センサ18またはカメラ18は、画像センサ18またはカメラ18からの外部物体の距離に関連するデータを収集可能な深度カメラでもよい。いくつかの実装形態では、画像センサ18またはカメラ18は、たとえば、外部デバイス上の光学マーカ等の外部デバイス上の1つ以上の光学マーカを検出し、それに追従することができる点追跡カメラ18でもよい。いくつかの実装形態では、HMD10は、画像センサ18またはカメラ18の視野内の物体を検出するために、たとえば画像センサ18またはカメラ18と共に選択的に動作し得る照明デバイス15を含み得る。
【0034】
スマートウォッチ20Aの形態の外部補助/入力デバイス20Aの例、およびスマートフォン20Bの形態の外部補助/入力デバイス20Bの例は、インターフェースデバイス21(21A,21B)を含み得る。いくつかの実装形態では、インターフェースデバイス21は、たとえば、ユーザからのタッチ入力を受信可能なタッチ面22(22A,22B)を含む入力デバイスとして機能してもよい。いくつかの実装形態では、インターフェースデバイス21は、たとえば、インターフェースデバイス21がユーザに情報を出力できるようにする表示部23(23A,23B)を含む出力デバイスとして機能してもよい。いくつかの実装形態では、インターフェースデバイス21は、入力デバイスおよび出力デバイスとして機能することができる。補助/入力デバイス20A,20Bは、さまざまな感知システムデバイスを含む感知システム26(26A,26B)を含み得る。補助/入力デバイス20A,20Bは、外部デバイス20A,20Bの動作を容易にするために、さまざまな制御システムデバイスを含む制御システム27(27A,27B)と、プロセッサ29(29A,29B)とを含み得る。いくつかの実装形態では、外部デバイス20A,20Bは、複数のマーカ25(25A,25B)を含み得る。複数のマーカ25は、HMD10によって、たとえば、HMD10の画像センサ18またはカメラ18によって検出可能であってもよく、HMD10に対する外部デバイス20A,20Bの位置および/または方位の検出ならびに追跡のためのデータを提供し得る。いくつかの実装形態では、複数のマーカ25はアクティブマーカでもよい。アクティブマーカは、アクティブマーカが有効にされているとき、またはオン状態にあるとき、HMD10の画像センサ18またはカメラ18によって実質的に常に検出可能であり得る。いくつかの実装形態では、複数のマーカ25は、たとえば、HMD10の照明デバイス15によって照明される場合など、事前設定された条件下でHMD10の画像センサ18またはカメラ18によって検出可能なパッシブマーカでもよい。いくつかの実装形態では、複数のマーカ25は、アクティブマーカとパッシブマーカとの組み合わせを含んでもよい。
【0035】
本明細書で説明する実装形態に係る相対追跡システムのブロック図が、
図3に示されている。システムは、第2の電子デバイス200と通信する第1のユーザ電子デバイス100を含み得る。第1の電子デバイス100は、たとえば、
図1および
図2Aに関して上述したような、ユーザに仮想コンテンツを表示可能なHMDなどのHMDでもよい。第2の電子デバイス200は、たとえば、HMDと通信し、HMDによって表示される仮想コンテンツとのユーザ対話を容易にし、HMDなどとコンテンツを共有する、外部デバイス、または補助デバイス、または
図1、
図2Bおよび
図2Cに関して上述した外部補助/入力デバイスなどの入力デバイスであり得る。第1の電子デバイス100と第2の電子デバイス200とは、情報を交換するために通信することができる。たとえば、第1の電子デバイス100および第2の電子デバイス200は、たとえば有線接続、たとえばWi-FiもしくはBluetooth(登録商標)を介した無線接続、または他のタイプの接続を介した通信を容易にするために、動作可能に結合され得る。
【0036】
第1の電子デバイス100は、感知システム160およびコントローラ170を含み得る。いくつかの実装形態では、感知システム160およびコントローラ170は、
図1および
図2Aに関して上述した感知システム16および制御システム17と同様(または同じ、または同一)でもよい。感知システム160は、たとえば、画像センサ、またはカメラ、オーディオセンサ、またはマイクロフォン、たとえば、慣性測定ユニット(IMU)などに含まれる加速度計、ジャイロスコープ、磁力計などの位置および/または方位センサなど、ならびに他のセンサおよび/またはセンサの異なる組み合わせ(複数可)を含む、多数の異なるタイプのセンサを含み得る。コントローラ170は、たとえば、電源/休止制御デバイス、画像および音声制御デバイス、ならびに他のそのようなデバイスおよび/またはデバイスの異なる組み合わせ(複数可)を含む、多数の異なるタイプのデバイスを含み得る。いくつかの実装形態では、感知システム160および/またはコントローラ170は、特定の実装形態に応じて、より多くのまたはより少ないデバイスを含んでもよい。
【0037】
第1の電子デバイス100は、感知システム160およびコントローラ170と通信するプロセッサ190と、たとえばコントローラ170のモジュールによってアクセス可能なメモリ195と、第1の電子デバイス100とたとえば第2の電子デバイス200などの別の外部デバイスとの間の通信を提供する通信モジュール175とを含み得る。コントローラ170は、たとえば、上述したコントローラ170の制御デバイスを介して受信された入力、および/または通信モジュール175を介して第2の電子デバイス200から受信された入力に応答して、第1の電子デバイス100のオーディオおよび/またはビデオ出力コンポーネントの動作を含む、第1の電子デバイス100の全体的な動作を制御してもよい。
【0038】
第2の電子デバイス200は、第2の電子デバイス200と、たとえば、第2の電子デバイス200に動作可能に結合されるかまたはそれとペアリングされる第1の電子デバイス100などの別の外部デバイスとの間の通信を提供する通信モジュール275を含み得る。第2の電子デバイス200は、複数の異なるセンサを含む感知システム260を含み得る。たとえば、いくつかの実装形態では、感知システム260はIMUを含んでもよく、IMUは、たとえば、加速度計、ジャイロスコープおよび磁力計などを含む。いくつかの実装形態では、感知システム260は、たとえば、オーディオセンサ、画像センサ、タッチセンサ、ならびに他のセンサおよび/またはセンサの異なる組み合わせ(複数可)を含んでもよい。プロセッサ290は、第2の電子デバイス200の感知システム260およびコントローラ270と通信することができ、コントローラ270は、メモリ295にアクセスし、第2の電子デバイス200の全体的な動作を制御する。いくつかの実装形態では、感知システム260およびコントローラ270は、
図1、
図2Bおよび
図2Cに関して上述した感知システム26および制御システム27と同様(または同じ、または同一)でもよい。
【0039】
上述したように、AR、またはMRまたはVR環境では、第1の電子デバイス100(すなわち、HMD100の例)は、ユーザが第2の電子デバイス200を使用して第1の電子デバイス100によってユーザに提示される仮想コンテンツと対話することができ、第1の電子デバイス100と第2の電子デバイス200等との間でコンテンツを共有することができるように、第2の電子デバイス200と動作可能に結合されてもよい。
【0040】
以下では、単に説明および例示を容易にするために、本明細書で説明する実装形態に係るシステムおよび方法について、拡張現実(AR)環境に関して説明し、拡張現実(AR)環境では、AR環境においてスマートメガネによって提示される仮想コンテンツとの対話のために、スマートグラスの形態のヘッドマウント表示デバイスが、スマートウォッチの形態の補助/入力デバイスと動作可能に結合されている。このように説明される概念は、仮想現実(VR)環境および混合現実(MR)環境に、および/または仮想コンテンツの提示および仮想コンテンツとの対話、コンテンツの共有などのために使用されている電子デバイス(複数可)の他の組み合わせ(複数可)と共に適用可能である。
【0041】
図4は、単に説明および例示を目的として、スマートウォッチ200の形態の外部デバイス200の例と動作可能に結合された、スマートグラス100の形態のHMD100の例を示す。HMD100の例および外部デバイス200の例は、ユーザが外部デバイス200を使用してHMD100によって提示される仮想コンテンツと対話できるように、動作可能に結合され得る。たとえばHMD100に対する外部デバイス200の位置および/または方位は、HMD100によって提示される仮想コンテンツとの対話のための外部デバイス200の使用を容易にするために検出および追跡され得る。
【0042】
HMD100の例は、フレーム110において結合された表示デバイス120およびオーディオデバイス130を含み得る。HMD100は、上述のようなさまざまな感知システムデバイスを含む感知システム160と、上述のようなさまざまな制御システムデバイスを含むコントローラ170と、HMD100の動作を容易にするためのプロセッサ190とを含み得る。HMD10はまた、画像センサ180またはカメラ180と、画像センサ180またはカメラ180の視野内の物体の検出を容易にするための画像センサ180またはカメラ180と共に選択的に動作し得る照明デバイス150とを含み得る。
【0043】
外部デバイス200の例は、入力デバイス200がユーザによって着用されることを可能にするバンド280に結合されたインターフェースデバイス210を含み得る。上述したように、いくつかの実装形態では、インターフェースデバイス210は、たとえば、ユーザからタッチ入力を受信することができるタッチ面220を含む入力デバイスとして機能し得る。いくつかの実装形態では、インターフェースデバイス210は、たとえば、インターフェースデバイス210がユーザに視覚情報を出力することを可能にする表示部230を含む出力デバイスとして機能し得る。いくつかの実装形態では、インターフェースデバイス210は、入力デバイスと出力デバイスとの両方として機能することができる。外部デバイス200は、外部デバイス200の動作を容易にするために、上記のようなさまざまな感知システムデバイスを含む感知システム260と、上記のようなさまざまな制御システムデバイスを含むコントローラ270と、プロセッサ290とを含み得る。いくつかの実装形態では、外部デバイス200は、外部デバイス200が画像センサ180またはカメラ180の視野内にある場合に、HMD100に対する外部デバイス200の位置および/または方位の検出ならびに追跡用のデータを提供するために、HMD100によって、たとえば、HMD100の画像センサ180またはカメラ180によって検出可能である複数のマーカを含み得る。
【0044】
いくつかの実装形態では、複数のマーカは、パッシブマーカ240とアクティブマーカ250との組み合わせを含み得る。いくつかの実装形態では、アクティブマーカは、実質的に常にオンでもよく、したがって、外部デバイス200がHMD100の画像センサ180またはカメラ180の視野内にある場合に、実質的に常に検出可能でもよい。いくつかの実装形態では、たとえば、HMD100の画像センサ180またはカメラ180の視野内にある場合に、アクティブマーカが周期的または断続的に検出可能であるように、アクティブマーカは周期的または断続的に照明されてもよい。パッシブマーカは、HMD100の画像センサ180またはカメラ180の視野内にある場合、特定の条件下で検出可能であり得る。たとえば、パッシブマーカは、HMD100の画像センサ180またはカメラ180の視野内にある間に照明デバイス150によって照明されると、検出可能であり得る。アクティブマーカ250が、実質的に、常にオンであるか、または周期的/断続的にオンであるかにかかわらず、アクティブマーカ250の照明のための電力は、外部デバイス200によって提供される。したがって、外部デバイス200において消費される電力の量は、たとえば、外部デバイス200の追跡のためにアクティブマーカのすべてまたはアクティブマーカのみが使用される配置と比較した場合、アクティブマーカ250とパッシブマーカ240との組み合わせを使用することによって低減され得る。アクティブマーカ250(複数可)とパッシブマーカ240との数および/または組み合わせ、ならびにアクティブマーカ250(複数可)とパッシブマーカ240との相対的な位置決めは、たとえば、外部デバイス200の既知の物理的構成、マーカ240,250の検出可能性、および他のそのような要因に基づき得る。
図4に示す配置例では、外部デバイス200の例は、1つのパッシブマーカ240および2つのアクティブマーカ250(250A,250B)を含み、インターフェースデバイス210は、説明および例示の目的で、実質的に長方形の構成を有する。いくつかの実装形態では、マーカの他の組み合わせが可能であり得る。たとえば、いくつかの実装形態では、外部デバイス200は、1つのアクティブマーカと2つのパッシブマーカとを含んでもよい。いくつかの実装形態では、たとえば、外部デバイスの構成/サイズ/形状、マーカを検出する際のHMD100のカメラ180の能力、外部デバイス200の電力貯蔵容量、および他のそのような要因に応じて、アクティブマーカとパッシブマーカとの他の組み合わせが組み込まれてもよい。
【0045】
図4に示すシステム例では、HMD100の例の感知システム160は、上述のようなIMUを含んでもよく、外部デバイス200の例の感知システム260は、上述のようなIMUを含んでもよい。それぞれのIMUは、外部デバイス200の位置および/または方位、たとえば、HMD100に対する外部デバイス200の位置/方位の判定を少なくとも部分的に制約するために使用可能なデータを提供し得る。ユーザが外部デバイス200を移動させることができるボリュームに向けられた画像センサ180またはカメラ180によって収集されたデータは、外部デバイス200およびHMD100の相対位置/方位の判定をさらに制約するために使用され得る。たとえば、カメラ180によってキャプチャされた画像内で検出された外部デバイス200とHMD100との間の既知の対応点は、外部デバイス200とHMD100との相対位置の判定をさらに制約し得る。
【0046】
いくつかの実装形態では、HMD100のカメラ180は、カメラ180の視野D内、および/またはユーザの前方のボリューム内で、たとえば、上述したようなマーカの形態の輝点を観察、または検出、またはキャプチャしてもよく、検出された輝点に関連する位置情報を検出してもよい。このように収集された位置情報は、外部デバイス200とHMD100との相対的な位置/方位の判定をさらに制約するために使用され得る。外部デバイス200上のマーカがすべてアクティブマーカである配置では、アクティブマーカは、既に電力が制約されているデバイスにおいて比較的大量の電力を消費し得る。上述したように、外部デバイス200においてこの目的のための電力消費を低減する目的で、HMD100に対する外部デバイス200の位置を追跡するためのアクティブマーカの必要性を低減または排除することが有利であり得る。いくつかの実装形態では、
図4に示す配置例におけるように、パッシブマーカ240とアクティブマーカ250との組み合わせが、電力を節約しながら、このようにHMD100に対する外部デバイス200の位置/方位の追跡を提供してもよい。
【0047】
特に、上述したように、
図4に示す配置例において、外部デバイス200の例は、外部デバイス200上の第1の場所における第1のアクティブマーカ250Aと、外部デバイス200上の第2の場所における第2のアクティブマーカ250Bと、外部デバイス200上の第3の場所におけるパッシブマーカ240とを含む。いくつかの実施態様では、パッシブマーカ240は、たとえば、外部デバイス200からの電力を消費しないパッシブ再帰反射マーカでもよい。どちらかと言えば、(再帰反射マーカの形態の)パッシブマーカ240に入射する光は、反射され、照明源に向けられてもよい。たとえば、外部デバイス200がHMD100のカメラ180の視野内にあるとき、照明デバイス150によって放出された光は、パッシブ再帰反射マーカ240に照明デバイス150(およびそれに隣接するカメラ180)に向かって光を方向D3で反射させることができる。いくつかの実施態様では、照明デバイス150は、パッシブ再帰反射マーカ240からの光の反射が照明デバイス150に隣接するカメラ180に実質的に戻されるように、HMD100のカメラ180に隣接して位置決めされてもよい。いくつかの実装形態では、照明デバイス150はカメラ180内に組み込まれてもよい。このようにして、HMD100のカメラ180によるパッシブ再帰反射マーカ240によって反射された光の検出によって、HMD100がHMD100に対するパッシブ再帰反射マーカ240の位置を識別することができ、この位置は、外部デバイス200上の既知の第3の位置と関連付けられている。
【0048】
上述したように、
図4に示す配置例では、外部デバイス200の例は、外部デバイス200上の第1の位置における第1のアクティブマーカ250Aと、外部デバイス200上の第2の位置における第2のアクティブマーカ250Bとを含む。アクティブマーカ250は、たとえば発光ダイオード(LED)などの光源を含み得る。第1のアクティブマーカ250Aによって放出される光は、方向DIに沿ってカメラ180によって検出可能であり、検出された点は、外部デバイス200上の既知の第1の場所と関連付けられている。同様に、第2のアクティブマーカ250Bによって放出された光は、方向D2に沿ってカメラ180によって検出可能であり、検出された点は、外部デバイス200上の既知の第2の位置に関連付けられている。いくつかの実装形態では、アクティブマーカ250は、アクティブマーカ250によって放出された光がユーザに見えないように、赤外領域の光を放出してもよい。いくつかの実装形態では、アクティブマーカ250A,250Bの各々は、HMD100のカメラ180/プロセッサ190による検出および処理のために特定のアクティブマーカ250A,250Bを識別する特定の特性を有する光を放出してもよい。たとえば、いくつかの実装形態では、第1のアクティブマーカ250Aは、第1のアクティブマーカ250Aを第2のアクティブマーカ250Bと区別するために、第2の強度を有する光を放出する第2のアクティブマーカ250Bとは異なる第1の強度を有する光を放出してもよい。いくつかの実装形態では、第1のアクティブマーカ250Aは、第1のアクティブマーカ250Aを第2のアクティブマーカ250Bと区別するために、第2のパターンを有する光を放出する第2のアクティブマーカ250Bとは異なる第1のパターンを有する光を放出してもよい。上述したように、いくつかの実装形態では、アクティブマーカ250A,250Bのうちの1つまたは複数は、実質的に常にオン状態でもよく、それにより、外部デバイス200がカメラ180の視野内にあるとき、照明デバイス150によって提供される照明を必要とすることなく、アクティブマーカ250A,250Bは、カメラ180によって実質的に常に検出可能である。いくつかの実装形態では、アクティブマーカ250A,250Bの各々は、外部デバイス200の電力を節約するために、たとえば、アクティブマーカ250がHMD100のカメラ180の既知の視野内にあるとき、設定された周期で周期的にまたは断続的に照明されてもよい。HMD100のカメラ180による、アクティブマーカ250によって放出される光の検出によって、HMD100がHMD100に対するアクティブマーカ250の位置を識別することが可能になり、第1のアクティブマーカ250Aおよび第2のアクティブマーカ250Bはそれぞれ、外部デバイス200上の既知の第1の位置および第2の位置と関連付けられている。
【0049】
仮想コンテンツとのユーザ対話を容易にするために、HMD100のカメラ180によるマーカ240,250の組み合わせの検出に基づいて判定された位置情報を、IMUから受信された方位/加速度情報と共に使用して、HMD100に対する外部デバイス200の6自由度(6DOF)位置を追跡することが可能である。外部デバイス200の6DOF位置は、外部デバイス200の座標位置、およびその座標位置における外部デバイス200の方位または姿勢を表す。たとえば、X軸、Y軸およびZ軸に沿った外部デバイス200の移動、ならびに外部デバイス200の方位の変化に対応するX軸、Y軸およびZ軸を中心とした回転を追跡して、外部デバイス200の6DOF位置および方位を得ることができる。いくつかの実装形態では、IMU(たとえば、外部デバイス200のIMUおよび/またはHMD100のIMU)によって提供されるデータは、HMD100と外部デバイス200との間の回転自由度(たとえば、3つの回転自由度のうちの少なくとも2つ)を制約するために処理され得る。外部デバイス200の位置は、外部デバイス200上のマーカ240,250の既知の幾何学的形状または配置、およびカメラ180の視野内のマーカ240,250の位置決めの検出に基づいて導出され得る。IMU(複数可)によって提供される回転データと、上述したようにマーカ240,250の組み合わせの検出によって得ることができる位置データとの融合によって、HMDに対する外部デバイス200の6DOF追跡が可能になり得る。
【0050】
上述したように、
図4に示すスマートウォッチ200の例などの電力制限された外部デバイスでは、外部デバイス200上の既知の位置における1つ以上のアクティブマーカ250と組み合わせた外部デバイス200上の既知の位置(複数可)における1つ以上のパッシブ再帰反射マーカ240の使用によって、HMD100に対する外部デバイス200の位置の追跡(すなわち、HMD100に対する外部デバイス200の6DOF追跡)の問題に対する比較的低電力の解決策がもたらされ得る。上述したように、いくつかの実装形態では、外部デバイス200は、外部デバイス200(およびアクティブマーカ(複数可)250)がHMD100のカメラ180の視野内にあるときのみアクティブマーカ(複数可)250がオンになるように制御されてもよい。このように、HMD100に対する外部デバイス200の6DOF追跡を達成するために外部デバイス200において消費される電力を、さらに低減することができる。
【0051】
いくつかの実装形態では、HMD100は、カメラ180の視野内の外部デバイス200の検出に応答して照明デバイス150が光を放出するように、照明デバイス150の動作を制御してもよい。いくつかの実装形態では、HMD100は、たとえば、IMU(複数可)から受信されたデータと、受信されたIMUデータに基づく外部デバイス200の予測された移動方向および/または速度とに基づいて、外部デバイス200がカメラ180の視野内へ移動することを予想して照明デバイス150が光を放出するように、照明デバイス150の動作を制御してもよい。同様に、いくつかの実装形態では、外部デバイス200は、たとえば、HMD100のカメラ180の既知の視野にあるとき、アクティブマーカ250A,250Bが周期的または断続的に光を放出するように、第1のアクティブマーカ250Aおよび第2のアクティブマーカ250Bの動作を制御してもよい。
【0052】
図5は、本明細書で説明する実装形態に係る、動作時間のブロック例内のシステムの動作パターン例を示すチャートである。動作時間のブロック例内のシステムの動作のための時間パターンのこの例では、説明および例示の目的で、外部デバイス200およびその上のマーカ240,250がHMD100のカメラ180によって検出可能であるように、外部デバイス200がカメラ180の視野内にあると仮定することができる。この動作時間のブロック例では、カメラ180は、図示される各期間の間、実質的に常にオンのままである。期間1および2の例の間、照明デバイス150はオン状態であり、(1つ以上の)パッシブ再帰反射マーカ240の位置は、照明デバイス150/カメラ180に反射して戻る光に基づいて検出することができる。期間3および4の例の間、照明デバイス150はオフ状態であり、したがって、パッシブ再帰反射マーカ240の位置は期間3および4では検出されない。期間3の例の間、第1のアクティブマーカ250Aはオン状態であり(第2のアクティブマーカ250Bはオフであり)、第1のアクティブマーカ250Aの位置が、第1のアクティブマーカ250Aとカメラ180との間で検出される光に基づいて検出され得る(カメラ180と第1のアクティブマーカ250Aとの間の視線DIに沿って検出可能である)。期間4の例の間、第2のアクティブマーカ250Bはオン状態であり(第1のアクティブマーカ250Aはオフであり)、第2のアクティブマーカ250Bの位置は、第2のアクティブマーカ250Bとカメラ180との間で検出される光に基づいて検出され得る(カメラ180と第2のアクティブマーカ250Bとの間の視線D2に沿って検出可能である)。期間5,6,7および8の例の間、照明デバイス150は再びオン状態であり、(1つ以上の)パッシブ再帰反射マーカ240の更新された位置が、照明デバイス150/カメラ180に反射して戻る光に基づいて検出され得る。
図5では、第1のアクティブマーカ250Aの例は、期間3の例の間のみ照明されるように示され、第2のアクティブマーカ250Bの例は、期間4の例の間のみ照明されるように示されている。しかしながら、いくつかの実装形態では、アクティブマーカ250A,250Bは、関連する期間の間の外部デバイス200の位置の判定用の追加のデータを提供するために、実質的に常にオン状態でもよく、または期間3および4より長い間(照明デバイス150がオン状態であるか否かにかかわらず)オン状態でもよい。
【0053】
いくつかの実装形態では、外部デバイス200とHMD100との間に共通クロックが確立されてもよい。共通クロックは、カメラ180がフレームを記録する時間を、(パッシブ再帰反射マーカ250の検出を容易にするために)照明デバイス150がオンである時間と調整または同期させるために使用され得る。同様に、共通クロックは、カメラ180がフレームを記録する時間と、アクティブマーカ250が照明される時間とを調整または同期させるために使用され得る。このように共通クロックに従って動作を同期させることにより、パッシブ再帰反射マーカ(複数可)240およびアクティブマーカ(複数可)250のそれぞれの位置の記録を同期させることが可能になる。アクティブオン時間が減ることによって、外部デバイス200だけでなく、HMD100における電力消費がさらに低減され得る。概して、フレーム記録時間が減少するにつれて、(アクティブマーカ250によって、および照明デバイス150によって放出される)光の強度は、追跡データを改善するように(減少したフレーム記録時間に対して)増加され得る。
【0054】
いくつかの実施態様では、パッシブ再帰反射マーカ(複数可)240は、外部デバイス200の外観を改善するために、パッシブ再帰反射マーカ(複数可)240がユーザに見えないように、外部デバイス200の表面で見えにくくされてもよい。たとえば、いくつかの実施態様では、パッシブ再帰反射マーカ(複数可)240は、パッシブ再帰反射マーカ(複数可)240が上述したように光を反射することができるがユーザには見えないように、視覚的に不透明で赤外光を透過するコーティングまたは層の背後に位置してもよい。
【0055】
図6A~
図6Dは、本明細書で説明する実装形態に係る、
図4に示すシステム例などのシステムの使用を示す。
図6A~
図6Dでは、システム例は、単に説明および例示を容易にするために、上述のHMD100の例またはスマートグラス100の形態の表示デバイスの例と、上述のスマートウォッチ200の例の形態の外部デバイスの例とを含む。
【0056】
図6Aに示すように、ユーザは、表示デバイス100またはHMD100と、外部デバイス200またはスマートウォッチ200とを使用して、HMD100によってユーザに表示される仮想コンテンツを眺め、それと対話することができる。たとえば、ユーザは、仮想コンテンツを表示するコマンドを発行してもよい。いくつかの実装形態では、ユーザは、たとえば、HMD100の制御デバイスまたは外部デバイス200の制御デバイスの操作、HMD100または外部デバイス200に発行された音声コマンド、ジェスチャコマンド、および仮想コンテンツを表示するコマンドを実装する他のそのようなモードによってコマンドを発行してもよい。いくつかの実装形態では、上述したようなHMD100に対する外部デバイス200の位置および/または方位の追跡によって、HMD100によってユーザに表示される仮想コンテンツが外部デバイス200に取り付けられるか、またはオーバーレイされてもよい。仮想コンテンツがユーザの視野内で浮かんでいるように見える態様でユーザに仮想コンテンツが表示されると、特に、ユーザが外部デバイス200のインターフェースデバイス210のいずれかやジェスチャなどを使用して仮想コンテンツと対話することになる場合、やや非現実的でやや不快な体験をユーザに提供する可能性がある。表示された仮想コンテンツをこのように外部デバイス200に取り付けることによって、より固定された、より現実的な体験をユーザに提供し得る。表示された仮想コンテンツをこのように外部デバイスに取り付けることにより、特に外部デバイス200が仮想コンテンツとのユーザの対話に関与することになる場合に、仮想コンテンツとの対話を容易にし得る。
【0057】
図6Bは、表示する仮想コンテンツを選択するための外部デバイス200のインターフェースデバイス210のユーザ操作を示す。この例では、ユーザは、単に説明および例示の目的で、表示する仮想コンテンツを選択するために、外部デバイス200のタッチ面220上の外部でタッチを行う。しかしながら、上述したように、他のタイプのユーザ外部/コマンドが、仮想コンテンツを選択および表示させるために実装されてもよい。
【0058】
HMD100によって表示される仮想コンテンツのユーザ選択に応答して、
図6Cに示されるように、仮想コンテンツ300がHMD100によってユーザに表示され得る。
図6Cに示す配置例では、仮想コンテンツ300は、外部デバイス200が第1の位置/方位にある状態で、外部デバイス200に取り付けられるか、またはそれと位置合わせされる。
図6Dに示す配置例では、ユーザは、外部デバイス200を第2の位置/方位に移動させており、仮想コンテンツ300は、外部デバイス200に取り付けられたままであり、第2の位置/方位に外部デバイス200を追跡している。
図6Dでは、ユーザは、たとえば、外部デバイス200のタッチ面220上のタッチ入力を通して、仮想コンテンツ300と対話している。いくつかの実装形態では、ユーザは、たとえば、音声コマンド、ジェスチャコマンド、外部デバイス200の他の入力機構の操作、HMD100の入力機構の操作など、他の方法で仮想コンテンツ300と対話してもよい。いくつかの実装形態では、仮想コンテンツ300は、たとえば、さらに別のユーザ入力または対話なしに、情報目的でユーザに表示されてもよい。
【0059】
上述したような表示デバイス100の例および外部デバイス200の例を含むシステム例は、HMD100に対する外部デバイス200の6DOF位置を追跡するためのデータを提供するために、外部デバイス200上の既知の配置および位置決めと共に、アクティブマーカ240とパッシブマーカ250との組み合わせを利用する。状況によっては、カメラ180は、個々のパッシブマーカ(これらは、アクティブマーカのように異なる出力強度および/または出力パターンを有することができない)を区別することが困難なことがある。たとえば、状況によっては、外部デバイス200の幾何学的形状または構成は、上述したスマートウォッチの例の形態の外部デバイス200の例のインターフェースデバイス210など、比較的小さくてもよい。この例では、外部デバイス200のサイズ/構成に起因して、複数の非アクティブマーカは必然的に互いに比較的近く、特に外部デバイス200がユーザの前方のボリューム内で移動している場合、互いに区別することが困難である。したがって、1つ以上のアクティブマーカを使用して、外部デバイス200のインターフェースデバイス210の相対的な幾何学的形状およびマーカ240,250の相対的な位置決についての基準系を確立することが可能である。
【0060】
スマートウォッチ200の例の形態の外部デバイス200の例が、外部デバイス200のバンド280の背面側に第1のパッシブ再帰反射マーカ440Aおよび第2のパッシブ再帰反射マーカ440Bを含む実装形態が
図7に示されている。
図7に示す配置例では、第1のパッシブ再帰反射マーカ440Aと第2のパッシブ再帰反射マーカ440Bとの間の距離を、HMD100のカメラ180が、照明デバイス150によって放出された光に応答して明スポットと、第1の再帰反射マーカ440Aおよび第2の再帰反射マーカ440Bからの反射とを区別するのに、十分になるよう大きくすることができる。この配置では、(外部デバイス200のインターフェースデバイス210は、この方位での入力のためにユーザにとっていくらかアクセス不可能なことがあるため)仮想コンテンツの表示は、たとえば、ユーザの手のひらに固定または取り付け可能である。HMD100がジェスチャ認識可能であるいくつかの実装形態では、ユーザは、ハンドジェスチャを使用して仮想コンテンツと対話してもよい。いくつかの実施態様では、
図7に示す方位での第1のパッシブ再帰反射マーカ440Aおよび第2のパッシブ再帰反射マーカ440Bの検出は、モード切り替えを示し得る。
【0061】
本明細書で説明する実装形態に係る、ヘッドマウントディスプレイ(HMD)デバイスに対して外部補助/入力デバイスを追跡する方法800が
図8に示される。上述したように、外部デバイスは、たとえば、
図4に示すスマートウォッチ200の例、またはHMDと動作可能に結合され得る他のタイプのデバイスであり得る。HMDは、たとえば、
図4に示すスマートグラス100の例、または仮想コンテンツをユーザに表示することができる他のタイプの表示デバイスであり得る。HMDおよび外部デバイスが起動され、ペアリングされた後(ブロック810)、HMDに対する外部デバイスの位置データが、HMDの点追跡カメラによって収集され得る(ブロック820)。詳細に上述したように、HMDの点追跡カメラによるデータの収集は、たとえば、アクティブマーカおよびパッシブマーカの組み合わせ、ならびにそれぞれに関連付けられた外部デバイス上のそれぞれの位置の検出を含み得る。外部デバイスの位置情報の検出は、外部デバイスが点追跡カメラの視野内にある間に行われてもよい。パッシブマーカおよび外部デバイス上の関連する位置の検出は、
図5に示されるように、HMDの照明デバイスの動作と共に実行され得る。加速度データおよび方位データは、外部デバイスのIMUから、および/またはHMDのIMUから収集され得る(ブロック830)。データ合成は、外部デバイスの位置および移動を追跡するために、HMDおよび外部デバイスによって実行され得る。たとえば、HMDの点追跡カメラによって収集された位置データならびにIMU(複数可)によって収集された加速度データおよび/または方位データは、実質的に連続して収集および処理され得る。現時点において取得された位置および移動および/または方位データは、データが連続して収集、処理、および/または合成されるにつれて連続して更新される移動軌道を判定するように、前の時点における位置および移動および/または方位データと比較されてもよい(ブロック840)。HMDに対する外部デバイスの位置および方位の追跡は、たとえば、
図6A~
図6Dに関して上述したように、仮想コンテンツを外部デバイスに取り付けるために使用可能である。このプロセスは、体験が終了したと判定されるまで繰り返し実行され得る(ブロック850)。
【0062】
上述したように、いくつかの実装形態では、HMD100は、外部デバイス200の1つ以上の基準マーカまたは参照マーカの検出に応答して、外部デバイス(複数可)200を検出および/または位置特定してもよい。いくつかの実装形態では、基準マーカ(複数可)または参照マーカ(複数可)は、外部デバイス200によって生成されてもよい。いくつかの実装形態では、外部デバイス200は、たとえば、外部デバイス200がHMD100のカメラ180の視野D内に移動したことに応答して、基準マーカを生成してもよい。いくつかの実装形態では、基準マーカ(複数可)は、たとえば、デバイス200が検出/位置特定されると外部デバイス200の6DOF位置を追跡する上述した方法などの他の追跡方法を用いて、HMD100のカメラ180の視野Dへの外部デバイス200の進入を検出すること、外部デバイス200の位置を確立することなどに使用可能である。いくつかの実装形態では、システムは、HMD100に対する外部デバイス200の6DOF追跡を実行するために基準マーカ(複数可)に依拠し続けることができる。いくつかの実装形態では、基準マーカ(複数可)は、外部デバイス200の検出および/または位置特定および/または追跡を容易にするように、具体的に生成される。いくつかの実装形態では、基準マーカ(複数可)は、外部デバイス200の検出および/または位置特定および/または追跡に特有の基準マーカを生成することなく、たとえば、外部デバイス200の画面状態等の外部デバイス200の既知の特性を含む。
【0063】
図9A~9Dは、本明細書で説明する実装形態に係る、基準マーカの検出に基づく外部デバイス200の例の検出および/または位置特定を概略的に示す。
図9A~9Dに示す例では、外部デバイス200は、単に説明および例示の目的で、ハンドヘルドデバイスまたはスマートフォンの形態である。本明細書で説明する原理は、たとえば、上述のスマートウォッチ、およびHMD100と通信することができる他のそのようなデバイスなど、他のタイプの外部デバイスに適用され得る。
【0064】
上述したように、この例では、外部デバイス200およびHMD100は、外部デバイス200とHMD100との間の通信および対話を提供するために、動作可能に結合またはペアリングされている。この例では、外部デバイス200のインターフェースデバイス210の表示部230にさまざまな項目が表示されている。
図9Aに示す配置例では、時間ウィジェットTと、天気ウィジェットWと、第1のアプリケーションを表す第1のアイコンAと、第2のアプリケーションを表す第2のアイコンBと、第3のアプリケーションを表す第3のアイコンCとが、外部デバイス200の表示部230に表示されている。
【0065】
図9Aでは、外部デバイス200は、HMD100のカメラ180の視野Dの外側にある。
図9Bおよび
図9Cでは、ユーザは、外部デバイス200をHMD100のカメラ180の視野Dに向かって、およびその中に移動させている。
【0066】
いくつかの実装形態では、外部デバイス200およびHMD100の動作可能に結合された状態またはペアリングされた状態において、ペアリングされた状態のHMD100に知られている外部デバイス200の画面状態は、HMD100のカメラ180の視野D内の外部デバイス200を検出および/または位置特定および/または追跡するために使用可能な基準マーカを定義し得る。たとえば、いくつかの実装形態では、ウィジェットTおよびWならびにアプリケーションおよび/または外部デバイス200の表示部230上のそれらのそれぞれの位置を表すアイコンA,BおよびCのうちの1つまたは複数は、1つ以上の基準マーカを定義してもよい。いくつかの実装形態では、ウィジェットTおよびWの両方を3つのアイコンA,BおよびCと共に含む、全体としての画面状態は、一緒に基準マーカを定義してもよい。
【0067】
図9Cに示すように、外部デバイス200がカメラ180の視野内に移動すると、カメラ180は、外部デバイス200の画面状態によって定義される1つ以上の基準マーカを検出し得る。このような基準マーカ(複数可)の検出に応答して、システムは、外部デバイス200を検出/認識および/または位置特定することができ、基準マーカ(複数可)または
図4~
図6Dに関して上述した追跡方法、または、HMD100に対する外部デバイス200の6DOF位置を追跡する他の方法を使用して、外部デバイスの6DOF位置を追跡することができる。
【0068】
カメラ180が実質的に常にオンであるいくつかの実装形態では、カメラ180は、外部デバイス200がHMD100のカメラ180の視野内に移動されるときに、1つ以上の基準マーカを実質的に連続して走査し、検出することができる。いくつかの実装形態では、
図9Aに示す位置から
図9Cに示す位置への外部デバイス200の移動、および外部デバイス200の方位の対応する変化は、ジェスチャコマンドを定義してもよい。いくつかの実装形態では、このタイプのジェスチャコマンドは、(たとえば、カメラ180がアイドル状態である状況で)外部デバイス200をスキャンするように、HMD100のカメラ180をトリガしてもよい。
【0069】
いくつかの実装形態では、このタイプのジェスチャコマンドは、基準マーカを生成するように外部デバイス200をトリガするウェイクアップジェスチャを定義し得る。たとえば、外部デバイス200がアイドル状態にあり、表示部230にほとんどまたは全く表示されていない状況では、このタイプのジェスチャコマンドは、最終画面状態(これは、ペアリング状態の外部デバイス200とHMD100との両方に知られている)を表示するように、外部デバイス200をトリガし得る。いくつかの実装形態では、このタイプのジェスチャコマンドは、
図9Dに示されるように、外部デバイス200の検出および追跡に特有である基準マーカ900を表示するように、外部デバイス200をトリガしてもよい。
図9Dに示される基準マーカ900の例は、単に説明および例示の目的で、クイックレスポンス(quick response:QR)コード(登録商標)である。ユーザによって生成および記憶された基準マーカを含む、他のタイプの基準マーカが、同様に生成および表示されてもよい。いくつかの実装形態では、ジェスチャコマンドは、
図9Dに示す基準マーカ900の表示をアイドル画面状態からトリガすることができる。いくつかの実装形態では、
図9Dに示す基準マーカ900は、たとえば、外部デバイス200の検出および追跡を容易にするために、アクティブ画面状態(たとえば、ウィジェットTおよびWならびにアイコンA,BおよびCを含む)から生成および表示可能である。
【0070】
いくつかの実装形態では、外部デバイス200に関連付けられた基準マーカが、外部デバイス200の既知の外周輪郭によって画定されてもよい。たとえば、動作可能に結合/ペアリングされた状態において、上述のようなジェスチャコマンドが、外部デバイス200の検出された外周輪郭に基づいて、カメラ180の視野内の外部デバイス200を検出/認識するように、HMD100のカメラ180をトリガし得る。
【0071】
図10は、本明細書で説明する技法と共に使用され得るコンピュータデバイス1300およびモバイルコンピュータデバイス1350の一例を示す。コンピューティングデバイス1300は、プロセッサ1302と、メモリ1304と、ストレージデバイス1306と、メモリ1304および高速拡張ポート1310に接続する高速インターフェース1308と、低速バス1314およびストレージデバイス1306に接続する低速インターフェース1312とを含む。構成要素1302,1304,1306,1308,1310および1312の各々は、さまざまなバスを使用して相互接続されており、共通のマザーボード上に、または必要に応じて他の態様で実装され得る。プロセッサ1302は、高速インターフェース1308に結合されたディスプレイ1316などの外部入出力デバイス上にGUIのためのグラフィカル情報を表示するために、メモリ1304またはストレージデバイス1306に記憶された命令を含む、コンピューティングデバイス1300内で実行するための命令を処理することができる。他の実装形態では、複数のプロセッサおよび/または複数のバスが、必要に応じて、複数のメモリおよび複数のタイプのメモリと共に使用されてもよい。また、複数のコンピューティングデバイス1300が接続されてもよく、各デバイスは、(たとえば、サーババンクとして、ブレードサーバのグループとして、またはマルチプロセッサシステムとして)必要な動作の一部を提供する。
【0072】
メモリ1304は、コンピューティングデバイス1300内の情報を記憶する。一実装形態では、メモリ1304は、1つ以上の揮発性メモリユニットである。別の実装形態では、メモリ1304は、1つ以上の不揮発性メモリユニットである。メモリ1304はまた、磁気ディスクまたは光ディスクなどの別の形態のコンピュータ読取可能媒体でもよい。
【0073】
ストレージデバイス1306は、コンピューティングデバイス1300のための大容量ストレージを提供可能である。一実装形態では、ストレージデバイス1306は、フロッピー(登録商標)ディスクデバイス、ハードディスクデバイス、光ディスクデバイス、もしくはテープデバイスなどのコンピュータ読取可能媒体、フラッシュメモリもしくは他の同様のソリッドステートメモリデバイス、またはストレージエリアネットワークもしくは他の構成内のデバイスを含むデバイスのアレイであるか、またはそれらを含み得る。コンピュータプログラム製品は、情報担体において有形に具現化することができる。コンピュータプログラム製品はまた、実行されると、上述したものなどの1つ以上の方法を実行する命令を含み得る。情報担体は、メモリ1304、ストレージデバイス1306、またはプロセッサ1302上のメモリなどのコンピュータ読取可能媒体または機械読取可能媒体である。
【0074】
高速コントローラ1308は、コンピューティングデバイス1300のための帯域幅集約型動作を管理し、低速コントローラ1312は、より低い帯域幅集約型動作を管理する。そのような機能の割り当ては、一例に過ぎない。一実装形態では、高速コントローラ1308は、メモリ1304、ディスプレイ1316(たとえば、グラフィックスプロセッサまたはアクセラレータを介する)、およびさまざまな拡張カード(図示せず)を受け付けることができる高速拡張ポート1310に結合されている。この実装形態では、低速コントローラ1312は、ストレージデバイス1306および低速拡張ポート1314に結合されている。さまざまな通信ポート(たとえば、USB、Bluetooth(登録商標)、イーサネット(登録商標)、無線イーサネット(登録商標))を含み得る低速拡張ポートは、キーボード、ポインティングデバイス、スキャナ、またはスイッチもしくはルータなどのネットワーキングデバイスといった1つ以上の入出力デバイスに、たとえばネットワークアダプタを介して結合され得る。
【0075】
コンピューティングデバイス1300は、図に示されるように、多くの異なる形態で実装され得る。たとえば、標準サーバ1320として、またはそのようなサーバのグループ内で複数回、実装されてもよい。また、ラックサーバシステム1324の一部として実装されてもよい。くわえて、ラップトップコンピュータ1322などのパーソナルコンピュータにおいて実装されてもよい。代替的に、コンピューティングデバイス1300からの構成要素は、デバイス1350などのモバイルデバイス(図示せず)内の他の構成要素と組み合わされ得る。そのようなデバイスの各々は、コンピューティングデバイス1300,1350のうちの1つまたは複数を含んでもよく、システム全体は、互いに通信する複数のコンピューティングデバイス1300,1350で構成されてもよい。
【0076】
コンピューティングデバイス1350は、特に、プロセッサ1352と、メモリ1364と、ディスプレイ1354などの入出力デバイスと、通信インターフェース1366と、トランシーバ1368とを含む。デバイス1350はまた、追加のストレージを提供するために、マイクロドライブまたは他のデバイスなどのストレージデバイスを備え得る。構成要素1350,1352,1364,1354,1366および1368の各々は、さまざまなバスを使用して相互接続され、構成要素のうちのいくつかは、共通のマザーボード上に、または必要に応じて他の態様で実装され得る。
【0077】
プロセッサ1352は、メモリ1364に格納された命令を含む、コンピューティングデバイス1350内の命令を実行することができる。プロセッサは、別個の複数のアナログおよびデジタルプロセッサを含むチップのチップセットとして実装され得る。プロセッサは、たとえば、ユーザインターフェースの制御、デバイス1350によって実行されるアプリケーション、およびデバイス1350によるワイヤレス通信など、デバイス1350の他の構成要素の調整を提供し得る。
【0078】
プロセッサ1352は、ディスプレイ1354に結合された制御インターフェース1358および表示インターフェース1356を通してユーザと通信し得る。ディスプレイ1354は、たとえば、TFT LCD(薄膜トランジスタ液晶ディスプレイ)およびLED(発光ダイオード)またはOLED(有機発光ダイオード)ディスプレイ、または他の適切なディスプレイ技術であり得る。表示インターフェース1356は、グラフィカル情報および他の情報をユーザに提示するようにディスプレイ1354を駆動するための適切な回路を含み得る。制御インターフェース1358は、ユーザからコマンドを受信し、それらをプロセッサ1352にサブミットするために変換し得る。くわえて、外部インターフェース1362は、他のデバイスとのデバイス1350の近距離通信を可能にするように、プロセッサ1352と通信して提供され得る。外部インターフェース1362は、たとえば、いくつかの実装形態では有線通信を提供してもよく、または他の実装形態では無線通信を提供してもよく、複数のインターフェースが使用されてもよい。
【0079】
メモリ1364は、コンピューティングデバイス1350内の情報を格納する。メモリ1364は、1つ以上のコンピュータ読取可能媒体、1つ以上の揮発性メモリユニット、または1つ以上の不揮発性メモリユニットのうちの1つまたは複数として実装可能である。拡張メモリ1374はまた、たとえばSIMM(Single In-Line Memory Module)カードインターフェースを含み得る拡張インターフェース1372を介して提供され、デバイス1350に接続され得る。そのような拡張メモリ1374は、デバイス1350のための余分な記憶空間を提供してもよい、またはデバイス1350のためのアプリケーションもしくは他の情報を格納してもよい。具体的には、拡張メモリ1374は、上述したプロセスを実行または補足するための命令を含んでもよく、セキュア情報も含んでもよい。したがって、たとえば、拡張メモリ1374は、デバイス1350のためのセキュリティモジュールとして提供されてもよく、デバイス1350の安全な使用を可能にする命令でプログラムされてもよい。さらに、ハッキング不可能な態様でSIMMカード上に識別情報を配置するなど、追加の情報と共に、安全なアプリケーションがSIMMカードを介して提供されてもよい。
【0080】
メモリは、以下で説明するように、たとえば、フラッシュメモリおよび/またはNVRAMメモリを含み得る。一実装形態では、コンピュータプログラム製品は、情報担体において有形に具現化される。コンピュータプログラム製品は、実行されると、上述の方法などの1つ以上の方法を実行する命令を含む。情報担体は、メモリ1364、拡張メモリ1374、またはプロセッサ1352上のメモリ等のコンピュータ読取可能媒体または機械読取可能媒体であり、たとえば、トランシーバ1368または外部インターフェース1362を介して受信されてもよい。
【0081】
デバイス1350は、必要に応じてデジタル信号処理回路を含み得る通信インターフェース1366を介して、無線で通信し得る。通信インターフェース1366は、特に、GSM(登録商標)音声通話、SMS、EMS、もしくはMMSメッセージング、CDMA、TDMA、PDC、WCDMA(登録商標)、CDMA2000、もしくはGPRSなどのさまざまなモードまたはプロトコルの下での通信を提供し得る。そのような通信は、たとえば、無線周波数トランシーバ1368を通して発生し得る。さらに、Bluetooth、Wi-Fi、または他のそのようなトランシーバ(図示せず)の使用などによって、短距離通信が発生し得る。くわえて、GPS(全地球測位システム)受信機モジュール1370は、デバイス1350上で実行されるアプリケーションによって適宜使用され得る追加のナビゲーション関連無線データおよび位置関連無線データを、デバイス1350に提供し得る。
【0082】
デバイス1350はまた、ユーザからの発話情報を受信してそれを使用可能なデジタル情報に変換し得る音声コーデック1360を使用して、可聴的に通信可能である。音声コーデック1360は、同様に、たとえばデバイス1350のハンドセット内のスピーカを通じてなど、ユーザのための可聴音を生成し得る。そのような音は、音声電話通話からの音を含んでもよく、録音された音(たとえば、音声メッセージ、音楽ファイルなど)を含んでもよく、デバイス1350上で動作するアプリケーションによって生成された音を含んでもよい。
【0083】
コンピューティングデバイス1350は、図に示されるように、多くの異なる形態で実装され得る。たとえば、携帯電話1380として実装されてもよい。また、スマートフォン1382、携帯情報端末、または他の同様のモバイルデバイスの一部として実装されてもよい。
【0084】
本明細書で説明するシステムおよび技法のさまざまな実装は、デジタル電子回路、集積回路、特別に設計されたASIC(特定用途向け集積回路)、コンピュータハードウェア、ファームウェア、ソフトウェア、および/またはそれらの組み合わせで実現することができる。これらのさまざまな実装形態は、ストレージシステム、少なくとも1つの入力デバイス、および少なくとも1つの出力デバイスに対するデータおよび命令の受信もしくは送信を行うように結合された、専用または汎用であり得る少なくとも1つのプログラマブルプロセッサを含むプログラマブルシステム上で実行可能および/または解釈可能である1つ以上のコンピュータプログラムにおける実装形態を含み得る。
【0085】
これらのコンピュータプログラム(プログラム、ソフトウェア、ソフトウェアアプリケーションまたはコードとしても知られている)は、プログラマブルプロセッサのための機械命令を含み、高水準手続き型および/もしくはオブジェクト指向プログラミング言語で、ならびに/またはアセンブリ/機械言語で実装可能である。本明細書で使用される場合、「機械読取可能媒体」、「コンピュータ読取可能媒体」という用語は、機械読取可能信号として機械命令を受信する機械読取可能媒体を含む、機械命令および/またはデータをプログラマブルプロセッサに提供するために使用される任意のコンピュータプログラム製品、装置、および/またはデバイス(たとえば、磁気ディスク、光ディスク、メモリ、プログラマブル論理デバイス(PLD))を指す。「機械読取可能信号」という用語は、機械命令および/またはデータをプログラマブルプロセッサに提供するために使用される任意の信号を指す。
【0086】
ユーザとの対話を提供するために、本明細書で説明するシステムおよび技法は、情報をユーザに表示するための表示デバイス(LED(発光ダイオード)またはOLED(有機LED)またはLCD(液晶ディスプレイ)モニタ/画面)と、ユーザが入力をコンピュータに提供することができるキーボードおよびポインティングデバイス(たとえば、マウスまたはトラックボール)とを有するコンピュータ上で実装することができる。他の種類のデバイスを使用して、ユーザとの対話を提供することもでき、たとえば、ユーザに提供されるフィードバックは、任意の形態の感覚フィードバック(たとえば、視覚フィードバック、聴覚フィードバック、または触覚フィードバック)でもよく、ユーザからの入力は、音響、音声、または触覚入力を含む任意の形態で受信することができる。
【0087】
本明細書で説明するシステムおよび技法は、(たとえば、データサーバとして)バックエンド構成要素を含むコンピューティングシステム、またはミドルウェア構成要素(たとえば、アプリケーションサーバ)を含むコンピューティングシステム、またはフロントエンド構成要素(たとえば、グラフィカルユーザインターフェースまたはウェブブラウザを有するクライアントコンピュータであって、それを通して、ユーザが本明細書で説明するシステムおよび技法の実装と対話することができるクライアントコンピュータ)を含むコンピューティングシステム、またはそのようなバックエンド、ミドルウェア、もしくはフロントエンド構成要素の任意の組み合わせにおいて、実装可能である。システムの構成要素は、デジタルデータ通信(たとえば、通信ネットワーク)の任意の形態または媒体によって相互接続することができる。通信ネットワークの例は、ローカルエリアネットワーク(「LAN」)、ワイドエリアネットワーク(「WAN」)、およびインターネットを含む。
【0088】
コンピューティングシステムは、クライアントおよびサーバを含み得る。クライアントおよびサーバは、概して、互いに遠隔地にあり、典型的には、通信ネットワークを通して対話する。クライアントとサーバとの関係は、それぞれのコンピュータ上で実行され、互いにクライアント-サーバ関係を有するコンピュータプログラムによって生じる。
【0089】
いくつかの実装形態では、図示されるコンピューティングデバイスは、物理空間内の挿入されたコンテンツを閲覧するための拡張環境を生成するために、ARヘッドセット/HMDデバイス1390とインターフェースするセンサを含み得る。たとえば、コンピューティングデバイス1350または図示される他のコンピューティングデバイス上に含まれる1つ以上のセンサは、ARヘッドセット1390に入力を提供するか、または概して、AR空間に入力を提供することができる。これらのセンサは、タッチスクリーン、加速度計、ジャイロスコープ、圧力センサ、バイオメトリックセンサ、温度センサ、湿度センサ、および周囲光センサを含むことができるが、それらに限定されない。コンピューティングデバイス1350は、センサを使用して、次にAR空間への入力として使用することができるAR空間におけるコンピューティングデバイスの絶対位置および/または検出された回転を判定することができる。たとえば、コンピューティングデバイス1350は、コントローラ、レーザポインタ、キーボード、武器などの仮想オブジェクトとしてAR空間に組み込まれ得る。AR空間に組み込まれたときのユーザによるコンピューティングデバイス/仮想オブジェクトの位置決めによって、ユーザが、AR空間において特定の態様で仮想オブジェクトを眺められるように、コンピューティングデバイスを位置決めすることが可能になる。たとえば、仮想オブジェクトがレーザポインタを表す場合、ユーザは、それがあたかも実際のレーザポインタであるかのようにコンピューティングデバイスを操作することができる。ユーザは、コンピューティングデバイスを左右、上下、円形などに移動させ、レーザポインタを使用するのと同様の方法でデバイスを使用することができる。いくつかの実装形態では、ユーザは、仮想レーザポインタを使用して、目標位置に狙いを定めることができる。
【0090】
いくつかの実装形態では、コンピューティングデバイス1350上に含まれる、またはそれに接続する1つ以上の入力デバイスが、AR空間への入力として使用可能である。入力デバイスは、タッチスクリーン、キーボード、1つ以上のボタン、トラックパッド、タッチパッド、ポインティングデバイス、マウス、トラックボール、ジョイスティック、カメラ、マイクロフォン、入力機能を有するイヤホンまたはイヤーバッド、ゲームコントローラ、または他の接続可能入力デバイスを含み得るが、それらに限定されない。コンピューティングデバイスがAR空間に組み込まれるときにコンピューティングデバイス1350上に含まれる入力デバイスと対話するユーザは、AR空間内で特定のアクションを発生させることができる。
【0091】
いくつかの実装形態では、コンピューティングデバイス1350のタッチスクリーンは、AR空間内のタッチパッドとしてレンダリングされ得る。ユーザは、コンピューティングデバイス1350のタッチスクリーンと対話することができる。対話は、たとえばARヘッドセット1390において、AR空間内のレンダリングされたタッチパッド上移動としてレンダリングされる。レンダリングされた移動は、AR空間内の仮想オブジェクトを制御することができる。
【0092】
いくつかの実装形態では、コンピューティングデバイス1350上に含まれる1つ以上の出力デバイスは、AR空間内のARヘッドセット1390のユーザに、出力および/またはフィードバックを提供することができる。出力およびフィードバックは、視覚的、触覚的、または聴覚的であり得る。出力および/またはフィードバックは、振動、1つ以上のライトもしくはストロボのオンおよびオフもしくは点滅および/または点滅、アラームを鳴らすこと、チャイムを再生すること、曲を再生すること、およびオーディオファイルを再生することを含み得るが、それらに限定されない。出力デバイスは、振動モータ、振動コイル、圧電デバイス、静電デバイス、発光ダイオード(LED)、ストロボ、およびスピーカを含み得るが、それらに限定されない。
【0093】
いくつかの実装形態では、コンピューティングデバイス1350は、コンピュータ生成3D環境において別のオブジェクトとして現れてもよい。ユーザによるコンピューティングデバイス1350との対話(たとえば、タッチスクリーンを回転させる、振る、タッチスクリーンに触れる、タッチスクリーンを横切って指をスワイプする)は、AR空間内のオブジェクトとの対話として解釈可能である。AR空間内のレーザポインタの例では、コンピューティングデバイス1350は、コンピュータ生成3D環境内の仮想レーザポインタとして現れる。ユーザがコンピューティングデバイス1350を操作すると、AR空間内のユーザは、レーザポインタの移動が見える。ユーザは、コンピューティングデバイス1350上またはARヘッドセット1390上のAR環境におけるコンピューティングデバイス1350との対話からフィードバックを受信する。コンピューティングデバイスとのユーザの対話は、制御可能デバイスのためのAR環境内で生成されるユーザインターフェースとの対話に変換され得る。
【0094】
いくつかの実装形態では、コンピューティングデバイス1350はタッチスクリーンを含み得る。たとえば、ユーザは、タッチスクリーンと対話して、制御可能デバイスのためのユーザインターフェースと対話することができる。たとえば、タッチスクリーンは、制御可能デバイスの特性を制御することができるスライダ等のユーザインターフェース要素を含み得る。
【0095】
コンピューティングデバイス1300は、ラップトップ、デスクトップ、ワークステーション、携帯情報端末、サーバ、ブレードサーバ、メインフレーム、および他の適切なコンピュータを含むがこれらに限定されない、さまざまな形態のデジタルコンピュータおよびデバイスを表すことが意図されている。コンピューティングデバイス1350は、携帯情報端末、携帯電話、スマートフォン、および他の同様のコンピューティングデバイスなど、さまざまな形態のモバイルデバイスを表すと意図されている。本明細書に示される構成要素、それらの接続および関係、ならびにそれらの機能は単なる例示であることが意図されており、本明細書で説明および/または請求される本発明の実装形態を限定することを意図するものではない。
【0096】
多数の実施形態について説明した。それにもかかわらず、本明細書の精神および範囲から逸脱することなく、種々の修正が行われ得ることが理解されるであろう。
【0097】
くわえて、図に示す論理フローは、所望の結果を達成するために、示される特定の順序または連続順序を必要としない。くわえて、他のステップが提供されてもよい、またはステップが、説明されるフローから削除されてもよく、他の構成要素が、説明されるシステムに追加されてもよく、またはそこから除去されてもよい。したがって、他の実施形態は、以下の特許請求の範囲内にある。
【0098】
説明される実装形態の特定の特徴が本明細書で説明するように示されているが、当業者には、多くの修正、置換、変更、および均等物が思い浮かぶであろう。したがって、添付の特許請求の範囲は、実装形態の範囲内のすべてのそのような修正および変更を包含することが意図されていることを理解されたい。これらは、限定的ではなく例としてのみ提示されており、形態および詳細のさまざまな変更が行われ得ることを理解されたい。本明細書で説明する装置および/または方法の任意の部分は、相互排他的な組み合わせを除いて、任意の組み合わせで組み合わせられてもよい。本明細書で説明する実装形態は、説明する異なる実装形態の機能、構成要素および/もしくは特徴のさまざまな組み合わせならびに/または部分的組み合わせを含み得る。