IP Force 特許公報掲載プロジェクト 2022.1.31 β版

知財求人 - 知財ポータルサイト「IP Force」

▶ マジック リープ, インコーポレイテッドの特許一覧

特許74072193次元空間内の仮想オブジェクトの自動配置
(19)【発行国】日本国特許庁(JP)
(12)【公報種別】特許公報(B2)
(11)【特許番号】
(24)【登録日】2023-12-20
(45)【発行日】2023-12-28
(54)【発明の名称】3次元空間内の仮想オブジェクトの自動配置
(51)【国際特許分類】
   G06T 19/00 20110101AFI20231221BHJP
   G06F 3/04845 20220101ALI20231221BHJP
   G06F 3/01 20060101ALI20231221BHJP
【FI】
G06T19/00 600
G06F3/04845
G06F3/01 510
【請求項の数】 18
(21)【出願番号】P 2022049399
(22)【出願日】2022-03-25
(62)【分割の表示】P 2020099143の分割
【原出願日】2017-08-09
(65)【公開番号】P2022082641
(43)【公開日】2022-06-02
【審査請求日】2022-03-25
(31)【優先権主張番号】62/373,693
(32)【優先日】2016-08-11
(33)【優先権主張国・地域又は機関】US
(31)【優先権主張番号】62/373,692
(32)【優先日】2016-08-11
(33)【優先権主張国・地域又は機関】US
(73)【特許権者】
【識別番号】514108838
【氏名又は名称】マジック リープ, インコーポレイテッド
【氏名又は名称原語表記】Magic Leap,Inc.
【住所又は居所原語表記】7500 W SUNRISE BLVD,PLANTATION,FL 33322 USA
(74)【代理人】
【識別番号】100078282
【弁理士】
【氏名又は名称】山本 秀策
(74)【代理人】
【識別番号】100113413
【弁理士】
【氏名又は名称】森下 夏樹
(74)【代理人】
【識別番号】100181674
【弁理士】
【氏名又は名称】飯田 貴敏
(74)【代理人】
【識別番号】100181641
【弁理士】
【氏名又は名称】石川 大輔
(74)【代理人】
【識別番号】230113332
【弁護士】
【氏名又は名称】山本 健策
(72)【発明者】
【氏名】ポール アーミステッド フーバー
(72)【発明者】
【氏名】ジョナサン ローレンス マン
【審査官】中田 剛史
(56)【参考文献】
【文献】特開2007-222284(JP,A)
【文献】米国特許出願公開第2014/0333666(US,A1)
【文献】特表2016-507112(JP,A)
【文献】特開2011-159273(JP,A)
【文献】特表2017-500673(JP,A)
(58)【調査した分野】(Int.Cl.,DB名)
G06T 19/00
G06F 3/04845
G06F 3/01
(57)【特許請求の範囲】
【請求項1】
拡張現実(AR)システムであって、前記ARシステムは、
ハードウェアコンピュータプロセッサと、
フトウェア命令を記憶した非一過性コンピュータ可読媒体と
を備え、
前記ソフトウェア命令は、
前記ARシステムのユーザから、標的仮想オブジェクトを行先オブジェクトから結び付け解除するための結び付け解除インジケーションを受信することであって、前記結び付け解除インジケーションは、
行先オブジェクト場所から異なる焦点インジケータ場所に焦点インジケータを移動させる速度が、閾値速度より大きいこと、または
前記行先オブジェクト場所から前記異なる焦点インジケータ場所に前記焦点インジケータを移動させる加速が、閾値加速より大きいこと
のうちの1つ以上のものを示す1つ以上のユーザ入力を含む、ことと、
前記結び付け解除インジケーションに少なくとも部分的に応答して、前記行先オブジェクトからの前記標的仮想オブジェクトの結び付け解除を開始することと
を含む動作を前記ARシステムに実施させるように、前記ハードウェアコンピュータプロセッサによって実行可能であり、
前記ARシステムは、前記標的仮想オブジェクトを前記行先オブジェクトから結び付け解除するとき、前記焦点インジケータと前記行先オブジェクトとの間の弾性相互作用をシミュレートするように構成される、ARシステム。
【請求項2】
前記ARシステムは、前記標的仮想オブジェクトを前記行先オブジェクトから結び付け解除するとき、前記焦点インジケータと前記行先オブジェクトとの間の摩擦相互作用をシミュレートするように構成される、請求項1に記載のARシステム。
【請求項3】
前記標的仮想オブジェクトは、前記行先オブジェクトに結び付けられるとき、第1の配向を有し、前記ARシステムは、前記行先オブジェクトから結び付け解除されるとき、前記標的仮想オブジェクトの前記第1の配向を維持するように構成される、請求項1に記載のARシステム。
【請求項4】
前記標的仮想オブジェクトは、前記行先オブジェクトに結び付けられることに先立って、第1の配向を有し、
前記標的仮想オブジェクトは、前記行先オブジェクトに結び付けられるとき、第2の配向を有し、前記第2の配向は、前記第1の配向と異なり、
前記ARシステムは、前記行先オブジェクトから結び付け解除されるとき、前記標的仮想オブジェクトを前記第2の配向から前記第1の配向に戻るように変化させるように構成される、請求項1に記載のARシステム。
【請求項5】
前記結び付け解除インジケーションは、前記行先オブジェクト場所から前記異なる焦点インジケータ場所に前記焦点インジケータを移動させる加速が前記閾値加速より大きいことを含む、請求項1に記載のARシステム。
【請求項6】
前記動作は、
前記ARシステムの前記ユーザから、前記ユーザの仮想環境に含まれる前記標的仮想オブジェクトを移動させるためのインジケーションを受信することと、
前記仮想環境内の第2の行先オブジェクトを決定することと、
前記標的仮想オブジェクトと前記仮想環境内の前記第2の行先オブジェクトとの間の軌道を計算することと、
前記ARシステムのディスプレイ上に、前記軌道に沿って前記第2の行先オブジェクトに向かう前記標的仮想オブジェクトの移動を生成およびレンダリングすることと、
前記標的仮想オブジェクトと前記第2の行先オブジェクトとの間の距離を決定することと、
前記標的仮想オブジェクトと前記第2の行先オブジェクトとの間の距離が第1の閾値距離未満であることの決定に応答して、前記第2の行先オブジェクトに関連して前記標的仮想オブジェクトを自動的に配向することであって、前記第1の閾値距離は、配向速度と関連付けられたユーザ選好に少なくとも部分的に基づく、ことと
をさらに含む、請求項1に記載のARシステム。
【請求項7】
前記動作は、
前記ARシステムの前記ユーザから、前記ユーザの仮想環境に含まれる前記標的仮想オブジェクトを移動させるためのインジケーションを受信することと、
前記仮想環境内の第2の行先オブジェクトを決定することと、
前記標的仮想オブジェクトと前記仮想環境内の前記第2の行先オブジェクトとの間の軌道を計算することと、
前記ARシステムのディスプレイ上に、前記軌道に沿って前記第2の行先オブジェクトに向かう前記標的仮想オブジェクトの移動を生成およびレンダリングすることと、
前記標的仮想オブジェクトと前記第2の行先オブジェクトとの間の距離を決定することと、
前記標的仮想オブジェクトと前記第2の行先オブジェクトとの間の距離が第1の閾値距離未満であることの決定に応答して、前記第2の行先オブジェクトに関連して前記標的仮想オブジェクトを自動的に配向することと
をさらに含む、請求項1に記載のARシステム。
【請求項8】
前記動作は、
前記ARシステムの前記ユーザから、前記ユーザの仮想環境に含まれる前記標的仮想オブジェクトを移動させるためのインジケーションを受信することと、
前記仮想環境内の第2の行先オブジェクトを決定することと、
前記標的仮想オブジェクトと前記仮想環境内の前記第2の行先オブジェクトとの間の軌道を計算することと、
前記ARシステムのディスプレイ上に、前記軌道に沿って前記第2の行先オブジェクトに向かう前記標的仮想オブジェクトの移動を生成およびレンダリングすることと、
前記標的仮想オブジェクトと前記第2の行先オブジェクトとの間の距離を決定することと、
前記標的仮想オブジェクトと前記第2の行先オブジェクトとの間の距離が閾値距離未満であることの決定に応答して、前記標的仮想オブジェクトを前記第2の行先オブジェクトに自動的に結び付けることと
をさらに含み、
前記標的仮想オブジェクトを前記第2の行先オブジェクトに自動的に結び付けることは、前記標的仮想オブジェクトと前記第2の行先オブジェクトとの間の引力をシミュレートすることを含み、前記引力は、重力、弾性力、または接着力のうちの少なくとも1つを含む、請求項1に記載のARシステム。
【請求項9】
前記動作は、
前記ARシステムの前記ユーザから、前記ユーザの仮想環境に含まれる前記標的仮想オブジェクトを移動させるためのインジケーションを受信することと、
前記仮想環境内の第2の行先オブジェクトを決定することと、
前記標的仮想オブジェクトと前記仮想環境内の前記第2の行先オブジェクトとの間の軌道を計算することと、
前記ARシステムのディスプレイ上に、前記軌道に沿って前記第2の行先オブジェクトに向かう前記標的仮想オブジェクトの移動を生成およびレンダリングすることと
をさらに含み、
前記標的仮想オブジェクトの移動は、前記標的仮想オブジェクトの1つ以上の属性に基づいて、前記標的仮想オブジェクト、前記第2の行先オブジェクト、および前記仮想環境の相互作用をシミュレートすることを含み、
前記標的仮想オブジェクトの前記1つ以上の属性は、質量、密度、位相、または硬度のうちの少なくとも1つを含む、請求項1に記載のARシステム。
【請求項10】
拡張現実(AR)システムによって実施されるコンピュータ処理される方法であって、前記ARシステムは、1つ以上のハードウェアコンピュータプロセッサと、ソフトウェア命令を記憶している1つ以上の非一過性コンピュータ可読記憶デバイスとを有し、前記ソフトウェア命令は、前記コンピュータ処理される方法を実施するように、前記ARシステムによって実行可能であり、前記コンピュータ処理される方法は、
前記ARシステムのユーザから、標的仮想オブジェクトを行先オブジェクトから結び付け解除するための結び付け解除インジケーションを受信することであって、前記結び付け解除インジケーションは、
行先オブジェクト場所から異なる焦点インジケータ場所に焦点インジケータを移動させる速度が、閾値速度より大きいこと、または
前記行先オブジェクト場所から前記異なる焦点インジケータ場所に前記焦点インジケータを移動させる加速が、閾値加速より大きいこと
のうちの1つ以上のものを示す1つ以上のユーザ入力を含む、ことと、
前記結び付け解除インジケーションに少なくとも部分的に応答して、前記行先オブジェクトからの前記標的仮想オブジェクトの結び付け解除を開始することと
前記標的仮想オブジェクトを前記行先オブジェクトから結び付け解除するとき、前記焦点インジケータと前記行先オブジェクトとの間の摩擦相互作用をシミュレートすることと
を含む、方法。
【請求項11】
前記方法は、前記標的仮想オブジェクトを前記行先オブジェクトから結び付け解除するとき、前記焦点インジケータと前記行先オブジェクトとの間の弾性相互作用をシミュレートすることをさらに含む、請求項10に記載の方法。
【請求項12】
前記標的仮想オブジェクトは、前記行先オブジェクトに結び付けられるとき、第1の配向を有し、前記方法は、前記行先オブジェクトから結び付け解除されるとき、前記標的仮想オブジェクトの前記第1の配向を維持することをさらに含む、請求項10に記載の方法。
【請求項13】
前記標的仮想オブジェクトは、前記行先オブジェクトに結び付けられることに先立って、第1の配向を有し、
前記標的仮想オブジェクトは、前記行先オブジェクトに結び付けられるとき、第2の配向を有し、前記第2の配向は、前記第1の配向と異なり、
前記方法は、前記行先オブジェクトから結び付け解除されるとき、前記標的仮想オブジェクトを前記第2の配向から前記第1の配向に戻るように変化させることをさらに含む、請求項10に記載の方法。
【請求項14】
前記結び付け解除インジケーションは、行先オブジェクト場所から前記異なる焦点インジケータ場所に焦点インジケータを移動させる速度が前記閾値速度より大きいときを含む、請求項10に記載の方法。
【請求項15】
前記方法は、
前記ARシステムの前記ユーザから、前記ユーザの仮想環境に含まれる前記標的仮想オブジェクトを移動させるためのインジケーションを受信することと、
前記仮想環境内の第2の行先オブジェクトを決定することと、
前記標的仮想オブジェクトと前記仮想環境内の前記第2の行先オブジェクトとの間の軌道を計算することと、
前記ARシステムのディスプレイ上に、前記軌道に沿って前記第2の行先オブジェクトに向かう前記標的仮想オブジェクトの移動を生成およびレンダリングすることと、
前記標的仮想オブジェクトと前記第2の行先オブジェクトとの間の距離を決定することと、
前記標的仮想オブジェクトと前記第2の行先オブジェクトとの間の距離が第1の閾値距離未満であることの決定に応答して、前記第2の行先オブジェクトに関連して前記標的仮想オブジェクトを自動的に配向することであって、前記第1の閾値距離は、配向速度と関連付けられたユーザ選好に少なくとも部分的に基づく、ことと
をさらに含む、請求項10に記載の方法。
【請求項16】
前記方法は、
前記ARシステムの前記ユーザから、前記ユーザの仮想環境に含まれる前記標的仮想オブジェクトを移動させるためのインジケーションを受信することと、
前記仮想環境内の第2の行先オブジェクトを決定することと、
前記標的仮想オブジェクトと前記仮想環境内の前記第2の行先オブジェクトとの間の軌道を計算することと、
前記ARシステムのディスプレイ上に、前記軌道に沿って前記第2の行先オブジェクトに向かう前記標的仮想オブジェクトの移動を生成およびレンダリングすることと、
前記標的仮想オブジェクトと前記第2の行先オブジェクトとの間の距離を決定することと、
前記標的仮想オブジェクトと前記第2の行先オブジェクトとの間の距離が第1の閾値距離未満であることの決定に応答して、前記第2の行先オブジェクトに関連して前記標的仮想オブジェクトを自動的に配向することと
をさらに含む、請求項10に記載の方法。
【請求項17】
前記方法は、
前記ARシステムの前記ユーザから、前記ユーザの仮想環境に含まれる前記標的仮想オブジェクトを移動させるためのインジケーションを受信することと、
前記仮想環境内の第2の行先オブジェクトを決定することと、
前記標的仮想オブジェクトと前記仮想環境内の前記第2の行先オブジェクトとの間の軌道を計算することと、
前記ARシステムのディスプレイ上に、前記軌道に沿って前記第2の行先オブジェクトに向かう前記標的仮想オブジェクトの移動を生成およびレンダリングすることと、
前記標的仮想オブジェクトと前記第2の行先オブジェクトとの間の距離を決定することと、
前記標的仮想オブジェクトと前記第2の行先オブジェクトとの間の距離が閾値距離未満であることの決定に応答して、前記標的仮想オブジェクトを前記第2の行先オブジェクトに自動的に結び付けることと
をさらに含み、
前記標的仮想オブジェクトを前記第2の行先オブジェクトに自動的に結び付けることは、前記標的仮想オブジェクトと前記第2の行先オブジェクトとの間の引力をシミュレートすることを含み、前記引力は、重力、弾性力、または接着力のうちの少なくとも1つを含む、請求項10に記載の方法。
【請求項18】
前記方法は、
前記ARシステムの前記ユーザから、前記ユーザの仮想環境に含まれる前記標的仮想オブジェクトを移動させるためのインジケーションを受信することと、
前記仮想環境内の第2の行先オブジェクトを決定することと、
前記標的仮想オブジェクトと前記仮想環境内の前記第2の行先オブジェクトとの間の軌道を計算することと、
前記ARシステムのディスプレイ上に、前記軌道に沿って前記第2の行先オブジェクトに向かう前記標的仮想オブジェクトの移動を生成およびレンダリングすることと
をさらに含み、
前記標的仮想オブジェクトの移動は、前記標的仮想オブジェクトの1つ以上の属性に基づいて、前記標的仮想オブジェクト、前記第2の行先オブジェクト、および前記仮想環境の相互作用をシミュレートすることを含み、
前記標的仮想オブジェクトの前記1つ以上の属性は、質量、密度、位相、または硬度のうちの少なくとも1つを含む、請求項10に記載の方法。
【発明の詳細な説明】
【技術分野】
【0001】
(関連出願の相互参照)
本願は、米国仮出願第62/373693号、出願日2016年8月11日、発明の名称“AUTOMATIC PLACEMENT OF VIRTUAL OBJECTS
IN A 3D ENVIRONMENT”、および米国仮出願第62/373692号、出願日2016年8月11日、発明の名称“VIRTUAL OBJECT USER INTERFACE WITH GRAVITY”に対する35 U.S.C. §
119(e)のもとでの優先権の利益を主張するものであり、これらの開示の全体は、参照により本明細書中に援用される。
【0002】
本開示は、仮想現実および拡張現実結像ならびに可視化システムに関し、より具体的には、3次元(3D)空間内の仮想オブジェクトを自動的に再位置付けすることに関する。
【背景技術】
【0003】
現代のコンピューティングおよびディスプレイ技術は、デジタル的に再現された画像またはその一部が、現実であるように見える、もしくはそのように知覚され得る様式でユーザに提示される、いわゆる「仮想現実」、「拡張現実」、または「複合現実」体験のためのシステムの開発を促進している。仮想現実または「VR」シナリオは、典型的には、他の実際の実世界の視覚的入力に対する透過性を伴わずに、デジタルまたは仮想画像情報の提示を伴う。拡張現実または「AR」シナリオは、典型的には、ユーザの周囲の実際の世界の可視化に対する拡張としてのデジタルまたは仮想画像情報の提示を伴う。複合現実または「MR」は、物理的および仮想オブジェクトが、共存し、リアルタイムで相互作用する、新しい環境を生成するための実世界と仮想世界の融合に関連する。結論から述べると、ヒトの視知覚系は、非常に複雑であって、他の仮想または実世界画像要素の中で仮想画像要素の快適かつ自然のような感覚で豊かな提示を促進する、VR、AR、またはMR技術の生産は、困難である。本明細書に開示されるシステムおよび方法は、VR、AR、ならびにMR技術に関連する種々の課題に対処する。
【発明の概要】
【課題を解決するための手段】
【0004】
仮想オブジェクトを自動的に再位置付けするための拡張現実システムの種々の実施形態が、説明される。
【0005】
一例示的実施形態では、仮想オブジェクトを3次元(3D)環境内に自動的に再位置付けするための拡張現実(AR)システムが、開示される。ARシステムは、仮想コンテンツを3Dビュー内に提示するように構成される、ARディスプレイと、ARディスプレイと通信する、ハードウェアプロセッサとを備える。ハードウェアプロセッサは、ユーザの3D環境内の標的仮想オブジェクトを識別し、標的仮想オブジェクトは、第1の場所および第1の配向を表す1つのベクトルを割り当てられ、標的仮想オブジェクトを行先オブジェクトに結び付けるためのインジケーションを受信し、行先オブジェクトは、第2の場所および第2の配向を表す少なくとも1つのベクトルを割り当てられ、少なくとも部分的に、第1の場所および第2の場所に基づいて、標的仮想オブジェクトと行先オブジェクトとの間の軌道を計算し、標的仮想オブジェクトを軌道に沿って行先オブジェクトに向かって移動させ、標的仮想オブジェクトの現在の場所を追跡し、少なくとも部分的に、標的仮想オブジェクトの現在の場所および第2の場所に基づいて、標的仮想オブジェクトと行先オブジェクトとの間の距離を計算し、標的仮想オブジェクトと行先仮想オブジェクトとの距離が閾値距離未満であるかどうかを決定し、距離が閾値距離未満またはそれと等しいことの比較に応答して、自動的に、標的仮想オブジェクトを行先オブジェクトに結び付け、標的仮想オブジェクトを第2の配向に配向し、ARディスプレイによって、標的仮想オブジェクトを第2の場所に第2の配向を伴ってレンダリングし、標的仮想オブジェクトは、行先オブジェクト上にオーバーレイされるようにプログラムされる。
【0006】
別の例示的実施形態では、仮想オブジェクトを3次元(3D)環境内に自動的に再位置付けするための方法が、開示される。本方法は、コンピュータハードウェアを備える、拡張現実(AR)システムの制御下で実施されてもよく、ARシステムは、3D環境内のオブジェクトとのユーザ相互作用を可能にするように構成される。本方法は、ユーザの3D環境内の標的仮想オブジェクトを識別するステップであって、標的仮想オブジェクトは、第1の位置および第1の配向を有する、ステップと、標的仮想オブジェクトを行先オブジェクトに対して再位置付けするためのインジケーションを受信するステップと、標的仮想オブジェクトを再位置付けするためのパラメータを識別するステップと、3D環境、標的仮想オブジェクト、および行先オブジェクトのうちの少なくとも1つと関連付けられたアフォーダンスを分析するステップと、アフォーダンスに基づいて、標的仮想オブジェクトを再位置付けするためのパラメータの値を計算するステップと、標的仮想オブジェクトを再位置付けするためのパラメータの値に基づいて、標的仮想オブジェクトのための第2の位置および第2の配向ならびに標的仮想オブジェクトの移動を決定するステップと、標的仮想オブジェクトを第2の位置および第2の配向ならびに第1の位置および第1の配向から第2の位置および第2の配向に到達するための標的仮想オブジェクトの移動にレンダリングするステップとを含む。
【0007】
本明細書に説明される主題の1つ以上の実装の詳細が、付随の図面および以下の説明に記載される。他の特徴、側面、および利点は、説明、図面、および請求項から明白となるであろう。本概要または以下の発明を実施するための形態のいずれも、本発明の主題の範囲を定義または限定することを主張するものではない。
本発明は、例えば、以下を提供する。
(項目1)
仮想オブジェクトを3次元(3D)環境内に自動的に再位置付けするための拡張現実(AR)システムであって、前記ARシステムは、
仮想コンテンツを提示するように構成されるARディスプレイと、
前記ARディスプレイと通信するハードウェアプロセッサであって、前記ハードウェアプロセッサは、
ユーザの3D環境内の標的仮想オブジェクトを識別することであって、前記標的仮想オブジェクトは、第1の場所および第1の配向を表す1つのベクトルを割り当てられる、ことと、
前記標的仮想オブジェクトを行先オブジェクトに結び付けるためのインジケーションを受信することであって、前記行先オブジェクトは、第2の場所および第2の配向を表す少なくとも1つのベクトルを割り当てられる、ことと、
少なくとも部分的に、前記第1の場所および前記第2の場所に基づいて、前記標的仮想オブジェクトと前記行先オブジェクトとの間の軌道を計算することと、
前記標的仮想オブジェクトを前記軌道に沿って前記行先オブジェクトに向かって移動させることと、
前記標的仮想オブジェクトの現在の場所を追跡することと、
少なくとも部分的に、前記標的仮想オブジェクトの現在の場所および前記第2の場所に基づいて、前記標的仮想オブジェクトと前記行先オブジェクトとの間の距離を計算することと、
前記標的仮想オブジェクトと行先仮想オブジェクトとの距離が閾値距離未満であるかどうかを決定することと、
前記距離が前記閾値距離未満またはそれと等しいことの比較に応答して、自動的に、前記標的仮想オブジェクトを前記行先オブジェクトに結び付け、前記標的仮想オブジェクトを前記第2の配向に配向することと、
前記ARディスプレイによって、前記標的仮想オブジェクトを前記第2の場所に前記第2の配向を伴ってレンダリングすることであって、前記標的仮想オブジェクトは、前記行先オブジェクト上にオーバーレイされることと、
を行うようにプログラムされる、ハードウェアプロセッサと
を備える、ARシステム。
(項目2)
前記ハードウェアプロセッサはさらに、
前記標的仮想オブジェクト、前記行先オブジェクト、または前記環境のうちの少なくとも1つのアフォーダンスを分析するようにプログラムされ、
前記標的仮想オブジェクトを自動的に配向するために、前記ハードウェアプロセッサは、前記標的仮想オブジェクトを回転させ、前記標的仮想オブジェクトの第1の法線と前記行先オブジェクトの第2の法線を整合させるようにプログラムされる、
項目1に記載のARシステム。
(項目3)
前記アフォーダンスは、機能、配向、タイプ、場所、形状、またはサイズのうちの少なくとも1つを含む、項目2に記載のARシステム。
(項目4)
前記標的仮想オブジェクトを自動的に結び付けるために、前記ハードウェアプロセッサは、前記標的仮想オブジェクトと前記行先オブジェクトとの間の引力をシミュレートするようにプログラムされ、前記引力は、重力、弾性力、接着力、または磁力のうちの少なくとも1つを含む、項目1に記載のARシステム。
(項目5)
前記距離を計算するために、前記ハードウェアプロセッサは、前記標的仮想オブジェクトの現在の場所と前記行先オブジェクトと関連付けられた前記第2の場所との間の変位を計算するようにプログラムされる、項目1に記載のARシステム。
(項目6)
前記閾値距離は、ゼロである、項目5に記載のARシステム。
(項目7)
前記標的仮想オブジェクトを結び付けるためのインジケーションは、ユーザ入力デバイスの作動またはユーザの姿勢のうちの少なくとも1つから決定される、項目1に記載のARシステム。
(項目8)
前記ハードウェアプロセッサはさらに、焦点インジケータを前記ユーザの現在の位置に割り当てるようにプログラムされ、前記ユーザの現在の位置は、少なくとも部分的に、前記ユーザの姿勢または前記ユーザ入力デバイスと関連付けられた位置に基づいて決定される、項目7に記載のARシステム。
(項目9)
前記ハードウェアプロセッサはさらに、
前記標的仮想オブジェクトを前記行先オブジェクトから結び付け解除するためのインジケーションを受信することであって、前記インジケーションは、ユーザの現在の位置の変化と関連付けられる、ことと、
少なくとも部分的に、前記受信されたインジケーションに基づいて、前記標的仮想オブジェクトを結び付け解除するための閾値条件が満たされるかどうかを決定することと、
前記閾値条件が満たされることの決定に応答して、
前記標的仮想オブジェクトを前記行先オブジェクトから結び付け解除することと、
前記標的仮想オブジェクトを前記行先オブジェクトと関連付けられた前記第2の場所から第3の場所に移動させることと、
前記標的仮想オブジェクトを前記第3の場所にレンダリングすることと
を行うようにプログラムされる、項目1に記載のARシステム。
(項目10)
前記閾値条件が満たされることの決定に応答して、前記ハードウェアプロセッサはさらに、前記標的仮想オブジェクトのための前記第2の配向を留保しながら、前記標的仮想オブジェクトを前記第3の場所に移動させるようにプログラムされる、項目9に記載のARシステム。
(項目11)
前記第3の場所は、前記ユーザの現在の位置に対応する前記焦点インジケータの位置に対応する、項目9に記載のARシステム。
(項目12)
前記標的仮想オブジェクトを前記他のオブジェクトから結び付け解除するための閾値条件は、
前記標的仮想オブジェクトが前記行先オブジェクトに結び付けられる前記第2の場所と、前記焦点インジケータの位置との間の第2の距離が、第2の閾値距離以上であること、
前記第2の場所から前記焦点インジケータの位置まで移動させるための速度が、閾値速度以上であること、
前記第2の場所から離れるように移動させるための加速が、閾値加速以上であること、または
前記第2の場所から離れるように移動させるための躍度が、閾値躍度以上であること
のうちの少なくとも1つを含む、項目11に記載のARシステム。
(項目13)
前記ハードウェアプロセッサは、前記標的仮想オブジェクトを前記行先オブジェクトから結び付け解除するとき、物理的力をシミュレートするようにプログラムされ、前記物理的力は、摩擦または弾性のうちの少なくとも1つを含む、項目9に記載のARシステム。(項目14)
仮想オブジェクトを3次元(3D)環境内に自動的に再位置付けするための方法であって、前記方法は、
コンピュータハードウェアを備える拡張現実(AR)システムの制御下で、前記ARシステムは、3D環境内のオブジェクトとのユーザ相互作用を可能にするように構成され、
ユーザの3D環境内の標的仮想オブジェクトを識別することであって、前記標的仮想オブジェクトは、第1の位置および第1の配向を有する、ことと、
前記標的仮想オブジェクトを行先オブジェクトに対して再位置付けするためのインジケーションを受信することと、
前記標的仮想オブジェクトを再位置付けするためのパラメータを識別することと、
前記3D環境、前記標的仮想オブジェクト、および前記行先オブジェクトのうちの少なくとも1つと関連付けられたアフォーダンスを分析することと、
前記アフォーダンスに基づいて、前記標的仮想オブジェクトを再位置付けするためのパラメータの値を計算することと、
前記標的仮想オブジェクトを再位置付けするためのパラメータの値に基づいて、前記標的仮想オブジェクトのための第2の位置および第2の配向ならびに前記標的仮想オブジェクトの移動を決定することと、
前記標的仮想オブジェクトを前記第2の位置および前記第2の配向ならびに前記第1の位置および前記第1の配向から前記第2の位置および前記第2の配向に到達するための前記標的仮想オブジェクトの移動にレンダリングすることと
を含む、方法。
(項目15)
前記標的オブジェクトを再位置付けすることは、前記標的オブジェクトを前記行先オブジェクトに結び付けること、前記標的オブジェクトを再配向すること、または前記標的オブジェクトを前記行先オブジェクトから結び付け解除することのうちの少なくとも1つを含む、項目14に記載の方法。
(項目16)
前記行先オブジェクトは、物理的オブジェクトである、項目14に記載の方法。
(項目17)
前記標的仮想オブジェクトを再位置付けするためのインジケーションが閾値条件を満たすかどうかを決定することと、前記インジケーションが前記閾値条件を満たすことの決定に応答して、前記計算、決定、およびレンダリングを実施することとをさらに含む、項目14に記載の方法。
(項目18)
前記閾値条件は、前記標的仮想オブジェクトと前記行先オブジェクトとの間の距離を含む、項目17に記載の方法。
(項目19)
1つ以上の物理的属性が、前記標的仮想オブジェクトに割り当てられ、前記標的仮想オブジェクトの移動は、前記標的仮想オブジェクトの物理的属性に基づいて、前記標的仮想オブジェクト、前記行先オブジェクト、および前記環境の相互作用をシミュレートすることによって決定される、項目14に記載の方法。
(項目20)
前記標的仮想オブジェクトに割り当てられる前記1つ以上の物理的属性は、質量、サイズ、密度、位相、硬度、弾性、または電磁属性のうちの少なくとも1つを含む、項目19に記載の方法。
【図面の簡単な説明】
【0008】
図1図1は、人物によって視認されるある仮想現実オブジェクトおよびある物理的オブジェクトを伴う、複合現実シナリオの例証を描写する。
図2図2は、ウェアラブルシステムの実施例を図式的に図示する。
図3図3は、複数の深度平面を使用して3次元画像をシミュレートするためのアプローチの側面を図式的に図示する。
図4図4は、画像情報をユーザに出力するための導波管スタックの実施例を図式的に図示する。
図5図5は、導波管によって出力され得る、例示的出射ビームを示す。
図6図6は、導波管装置と、光を導波管装置へまたはそこから光学的に結合するための光学結合器サブシステムと、多焦点立体ディスプレイ、画像、またはライトフィールドの生成において使用される、制御サブシステムとを含む、光学システムを示す、概略図である。
図7図7は、ウェアラブルシステムの実施例のブロック図である。
図8図8は、認識されるオブジェクトに関連して仮想コンテンツをレンダリングする方法の実施例のプロセスフロー図である。
図9図9は、ウェアラブルシステムの別の実施例のブロック図である。
図10図10は、ウェアラブルシステムへのユーザ入力を決定するための方法の実施例のプロセスフロー図である。
図11図11は、仮想ユーザインターフェースと相互作用するための方法の実施例のプロセスフロー図である。
図12図12Aおよび12Bは、仮想オブジェクトをテーブルに自動的に結び付ける実施例を図示する。
図13図13A、13B、13C、および13Dは、仮想オブジェクトの一部が壁に触れると、仮想オブジェクトを自動的に配向する実施例を図示する。
図14A図14A、14B、14C、および14Dは、仮想オブジェクトをテーブルから壁に移動させる実施例を図示する。
図14B図14A、14B、14C、および14Dは、仮想オブジェクトをテーブルから壁に移動させる実施例を図示する。
図14C図14A、14B、14C、および14Dは、仮想オブジェクトをテーブルから壁に移動させる実施例を図示する。
図14D図14A、14B、14C、および14Dは、仮想オブジェクトをテーブルから壁に移動させる実施例を図示する。
図15A図15A、15B、および15Cは、側面図から、仮想オブジェクトを結び付け、配向する実施例を図示する。
図15B図15A、15B、および15Cは、側面図から、仮想オブジェクトを結び付け、配向する実施例を図示する。
図15C図15A、15B、および15Cは、側面図から、仮想オブジェクトを結び付け、配向する実施例を図示する。
図15D図15Dおよび15Eは、仮想オブジェクトを壁から結び付け解除する実施例を図示する。
図15E図15Dおよび15Eは、仮想オブジェクトを壁から結び付け解除する実施例を図示する。
図15F図15F、15G、および15Hは、側面図から、仮想オブジェクトを結び付け、配向する付加的実施例を図示す。
図15G図15F、15G、および15Hは、側面図から、仮想オブジェクトを結び付け、配向する付加的実施例を図示す。
図15H図15F、15G、および15Hは、側面図から、仮想オブジェクトを結び付け、配向する付加的実施例を図示す。
図16図16は、仮想オブジェクトを結び付け、配向するための例示的方法である。
図17図17は、仮想オブジェクトをユーザの環境内の別のオブジェクトから結び付け解除するための例示的方法である。
【0009】
図面全体を通して、参照番号は、参照される要素間の対応を示すために再使用され得る。図面は、本明細書に説明される例示的実施形態を図示するために提供され、本開示の範囲を限定することを意図されない。
【発明を実施するための形態】
【0010】
(概要)
AR/MR環境では、ユーザは、仮想オブジェクトの位置または配向を変化させることによって、仮想オブジェクトを再位置付けすることを所望し得る。一実施例として、ユーザは、3次元(3D)空間内の仮想オブジェクトを移動させ、仮想オブジェクトをユーザの環境内の物理的オブジェクトに結び付けることができる。仮想オブジェクトは、2次元(2D)または3Dオブジェクトであってもよい。例えば、仮想オブジェクトは、平面、2Dテレビディスプレイ、または3D仮想コーヒーポットであってもよい。ユーザは、ユーザ入力デバイス(例えば、トーテム等)を使用することによって、および/またはユーザの姿勢を変化させることによって、軌道に沿って仮想オブジェクトを移動させ、仮想オブジェクトを物理的オブジェクトに結び付けることができる。例えば、ユーザは、ユーザ入力デバイスを移動させ、仮想テレビ(TV)画面をテーブルから壁に移動させてもよい。同様に、ARシステムは、ユーザが、仮想オブジェクトを選択し、頭部姿勢に伴って、移動させることを可能にしてもよい。ユーザが、その頭部を移動させるにつれて、仮想オブジェクトもまた、移動し、適宜、位置付けられ、配向される。
【0011】
しかしながら、3D空間内の仮想オブジェクトの移動は、移動が、錯視を作成し得、これが、その現在の位置に関してユーザを混乱させ得るため、時として、ユーザにとって問題となり得る。例えば、ユーザは、オブジェクトが自分から離れるように移動しているのか、または自分に向かって移動しているのかどうかに関して混乱し得る。これらの錯視は、ユーザがARシステムと相互作用するとき、認知的疲労を生じさせ得る。
【0012】
さらに、ユーザが、仮想オブジェクトを行先オブジェクトの表面上または行先オブジェクトの内側に置くように試みる際、ユーザは、多くの場合、精緻化された移動を行い、仮想オブジェクトを3D空間内の複数の方向に配向し、位置付け、仮想オブジェクトと行先オブジェクトを整合させる必要がある。例えば、ユーザが、仮想TV画面をテーブルから壁に移動させるとき、ユーザは、TV画面の面法線がユーザに面する(例えば、TV画面によって表示されるコンテンツが、壁の代わりに、ユーザに面する)ように、仮想画面を配向する必要があり得る。ユーザはさらに、ユーザが、仮想TV画面を視認するとき、その頭部を旋回させる必要がないように、仮想画面を配向してもよい。加えて、仮想TV画面を壁上に現れさせるために(壁に内蔵されるように現れるのではなく)、ユーザは、微調整を仮想TV画面の位置に行う必要があり得る。これらの操作は、ユーザが精度を伴って実施するには時間がかかり、かつ困難であり得、物理的疲労をユーザに生じさせ得る。
【0013】
これらの問題の一部または全部を解決するために、ARシステムは、標的仮想オブジェクトの位置または配向を変化させることによって、標的仮想オブジェクトを自動的に再位置付けするように構成されることができる。一実施例として、ARシステムは、仮想オブジェクトと標的オブジェクトとの間の距離が閾値距離未満であるとき、標的仮想オブジェクトを配向し、標的仮想オブジェクトを行先オブジェクトに結び付けることができる。ARシステムはまた、物理的力(例えば、フックの法則等のばね力、重力、接着力、電磁力等)を被っているかのように、仮想オブジェクトを移動させることによって、標的仮想オブジェクトを自動的に再位置付けすることができる。例えば、仮想オブジェクトおよび標的オブジェクトが、閾値距離内にあるとき、ARシステムは、仮想オブジェクトおよび標的オブジェクトが、引力(例えば、磁力または重力を模倣する)に起因して、ともに誘引されるかのように、仮想オブジェクトを標的オブジェクト上に自動的に「スナップ」させてもよい。故に、ARシステムは、仮想力をオブジェクト間に適用してもよく、仮想力は、オブジェクト間の物理的力をシミュレートする、またはそのように作用する。多くの場合、仮想(またはシミュレートされた物理的)力は、引力であり得るが、これは、限定ではなく、他の場合では、仮想(またはシミュレートされた物理的)力は、反力であって、オブジェクトを相互から離れるように移動させる傾向にあってもよい。反発する仮想力は、他の近傍の仮想オブジェクトが、標的オブジェクトから反発され(少なくとも若干)、それによって、若干移動し、標的仮想オブジェクトの設置のための余裕を他の近傍のオブジェクト間に提供するように標的仮想オブジェクトを設置するときに、有利であり得る。
【0014】
ARシステムはさらに、仮想オブジェクトを配向し、仮想オブジェクトの面法線とユーザの視線方向を整合させてもよい。実施例として、仮想オブジェクトは、最初に、ユーザの環境内に浮遊していてもよい。ユーザは、仮想オブジェクトを、例えば、テーブルの表面または床等の水平表面に移動させる意図を示してもよい(例えば、身体ジェスチャまたはユーザ入力デバイスのアクティブ化を介して)。ARシステムは、重力の影響をシミュレートし、いったん仮想オブジェクトが水平表面に十分に近接すると、付加的ユーザ労力を伴わずに、仮想オブジェクトを水平表面上に自動的に落下させてもよい。
【0015】
いくつかの状況では、ユーザは、仮想オブジェクトを仮想オブジェクトが結び付けられているオブジェクトから結び付け解除することを所望し得る。ARシステムは、ユーザが仮想オブジェクトが結び付け解除されるべきであることの十分なインジケーションを提供しない限り、ユーザが仮想オブジェクトをオブジェクトから直ちに結び付け解除不能であり得るように、仮想オブジェクトとオブジェクトとの間の引力をシミュレートする(例えば、磁石が冷蔵庫等の磁気表面に粘着し得る様子または書籍が水平テーブル上にある様子をシミュレートする)ことができる。例えば、ユーザは、仮想オブジェクトをその手または仮想インジケータで「握り」、オブジェクトを「グイッと引っ張って」もよい(例えば、ユーザの手の位置または仮想インジケータの位置の十分に高速な変化によって)。仮想オブジェクトを結び付け解除するためのインジケーションは、閾値条件を上回る移動によって示されてもよい(移動が、閾値距離、閾値速度、閾値加速、または加速の閾値変化率、それらの組み合わせ、または同等物を超えるとき等)。これは、特に、ユーザが仮想オブジェクトと相互作用する間、ユーザが偶発的に仮想オブジェクトを結び付け解除する尤度を低減させるため、有利であり得る。実施例として、ユーザが、壁に結び付けられた仮想画面を使用して、ゲームをプレーしている間、ユーザは、そのトーテムを移動させ、友人または敵を見出す、もしくはそれと相互作用する必要があり得る。本タイプのゲーム移動は、仮想オブジェクトを壁から結び付け解除するための移動のタイプと一致し得る。ユーザの移動が好適な閾値を十分に上回る場合のみ、仮想オブジェクトを壁から結び付け解除することによって、仮想画面は、ゲームのプレーの間、不注意に結び付け解除されないであろう。加えて、ユーザは、通常、長時間にわたって、その姿勢またはユーザ入力デバイスをじっとしたまま保つことができない。その結果、仮想オブジェクトは、ユーザが仮想オブジェクトを結び付け解除することを意図しないとき、ユーザのわずかな移動によって、偶発的に結び付け解除され得る。故に、ユーザの移動が好適な閾値を十分に上回る場合のみ、仮想オブジェクトを結び付け解除することによって、ユーザによるわずかな移動または痙攣は、仮想オブジェクトをその意図される場所または配向から不注意に結び付け解除しないであろう。
(ウェアラブルシステムの3Dディスプレイの実施例)
【0016】
ウェアラブルシステム(本明細書では、拡張現実(AR)システムとも称される)は、2Dまたは3D仮想画像をユーザに提示するために構成されることができる。画像は、組み合わせまたは同等物における、静止画像、ビデオのフレーム、またはビデオであってもよい。ウェアラブルシステムは、ユーザ相互作用のために、単独で、または組み合わせて、VR、AR、またはMR環境を提示し得る、ウェアラブルデバイスを含むことができる。ウェアラブルデバイスは、頭部搭載型デバイス(HMD)であることができ、これは、ARデバイス(ARD)と同義的に使用される。さらに、本開示の目的のために、用語「AR」は、用語「MR」と同義的に使用される。
【0017】
図1は、人物によって視認される、ある仮想現実オブジェクトおよびある物理的オブジェクトを伴う、複合現実シナリオの例証を描写する。図1では、MR場面100が、描写され、MR技術のユーザには、人々、木々、背景における建物、およびコンクリートプラットフォーム120を特徴とする、実世界公園状設定110が見える。これらのアイテムに加え、MR技術のユーザはまた、実世界プラットフォーム120上に立っているロボット像130と、マルハナバチの擬人化のように見える、飛んでいる漫画のようなアバタキャラクタ140とが「見える」と知覚するが、これらの要素は、実世界には存在しない。
【0018】
3Dディスプレイが、真の深度感覚、より具体的には、表面深度のシミュレートされた感覚を生成するために、ディスプレイの視野内の点毎に、その仮想深度に対応する遠近調節応答を生成することが望ましくあり得る。ディスプレイ点に対する遠近調節応答が、収束および立体視の両眼深度キューによって決定されるようなその点の仮想深度に対応しない場合、ヒトの眼は、遠近調節衝突を体験し、不安定な結像、有害な眼精疲労、頭痛、および遠近調節情報の不在下では、表面深度のほぼ完全な欠如をもたらし得る。
【0019】
VR、AR、およびMR体験は、複数の深度平面に対応する画像が視認者に提供されるディスプレイを有する、ディスプレイシステムによって提供されることができる。画像は、深度平面毎に異なってもよく(例えば、場面またはオブジェクトの若干異なる提示を提供する)、視認者の眼によって別個に集束され、それによって、異なる深度平面上に位置する場面に関する異なる画像特徴に合焦させるために要求される眼の遠近調節に基づいて、または合焦からずれている異なる深度平面上の異なる画像特徴を観察することに基づいて、ユーザに深度キューを提供することに役立ち得る。本明細書のいずれかに議論されるように、そのような深度キューは、信用できる深度の知覚を提供する。
【0020】
図2は、ウェアラブルシステム200の実施例を図示する。ウェアラブルシステム200は、ディスプレイ220と、ディスプレイ220の機能をサポートするための種々の機械的ならびに電子的モジュールおよびシステムとを含む。ディスプレイ220は、ユーザ、装着者、または視認者210によって装着可能である、フレーム230に結合されてもよい。ディスプレイ220は、ユーザ210の眼の正面に位置付けられることができる。ディスプレイ220は、AR/VR/MRコンテンツをユーザに提示するができる。ディスプレイ220は、ユーザの頭部上に装着される、頭部搭載型ディスプレイを備えることができる。いくつかの実施形態では、スピーカ240が、フレーム230に結合され、ユーザの外耳道に隣接して位置付けられる(いくつかの実施形態では、示されない別のスピーカが、ユーザの他方の外耳道に隣接して位置付けられ、ステレオ/成形可能音響制御を提供する)。ディスプレイ220は、音声認識を実施すべき環境からオーディオストリームを検出するために、オーディオセンサ(例えば、マイクロホン)を含むことができる。
【0021】
ウェアラブルシステム200は、ユーザの周囲の環境内の世界を観察する、外向きに面した結像システム464(図4に示される)を含むことができる。ウェアラブルシステム200はまた、ユーザの眼移動を追跡することができる、内向きに面した結像システム462(図4に示される)を含むことができる。内向きに面した結像システムは、一方の眼の移動または両方の眼の移動のいずれかを追跡することができる。内向きに面した結像システム462は、フレーム230に取り付けられてもよく、内向きに面した結像システムによって入手された画像情報を処理し、例えば、ユーザ210の眼、眼の移動、または眼姿勢の瞳孔直径もしくは配向を決定し得る、処理モジュール260または270と電気通信してもよい。
【0022】
実施例として、ウェアラブルシステム200は、外向きに面した結像システム464または内向きに面した結像システム462を使用して、ユーザの姿勢の画像を入手することができる。画像は、静止画像、ビデオのフレームもしくはビデオ、その組み合わせ、または同等物であってもよい。
【0023】
ディスプレイ220は、有線導線または無線接続等によって、フレーム230に固定して取り付けられる、ユーザによって装着されるヘルメットもしくは帽子に固定して取り付けられる、ヘッドホンに内蔵される、または別様にユーザ210に除去可能に取り付けられる(例えば、リュック式構成において、ベルト結合式構成において)等、種々の構成において搭載され得る、ローカルデータ処理モジュール260に動作可能に結合される(250)。
【0024】
ローカル処理およびデータモジュール260は、ハードウェアプロセッサならびに不揮発性メモリ(例えば、フラッシュメモリ)等のデジタルメモリを備えてもよく、その両方とも、データの処理、キャッシュ、および記憶を補助するために利用され得る。データは、画像捕捉デバイス(例えば、内向きに面した結像システムおよび/または外向きに面した結像システム内のカメラ)、オーディオセンサ(例えば、マイクロホン)、慣性測定ユニット(IMU)、加速度計、コンパス、全地球測位システム(GPS)ユニット、無線デバイス、もしくはジャイロスコープ等の(例えば、フレーム230に動作可能に結合される、または別様にユーザ210に取り付けられ得る)センサから捕捉されるデータ(a)、または場合によっては処理もしくは読出後にディスプレイ220への通過のために、遠隔処理モジュール270もしくは遠隔データリポジトリ280を使用して入手もしくは処理されるデータ(b)を含んでもよい。ローカル処理およびデータモジュール260は、これらの遠隔モジュールがローカル処理およびデータモジュール260へのリソースとして利用可能であるように、有線または無線通信リンク等を介して、通信リンク262または264を遠隔処理モジュール270または遠隔データリポジトリ280に動作可能に結合されてもよい。加えて、遠隔処理モジュール280および遠隔データリポジトリ280は、相互に動作可能に結合されてもよい。
【0025】
いくつかの実施形態では、遠隔処理モジュール270は、データまたは画像情報を分析および処理するように構成される、1つ以上のプロセッサを備えてもよい。いくつかの実施形態では、遠隔データリポジトリ280は、デジタルデータ記憶設備を備え得、これは、インターネットまたは「クラウド」リソース構成における他のネットワーキング構成を通して利用可能であってもよい。いくつかの実施形態では、全てのデータが、記憶され、全ての算出が、ローカル処理およびデータモジュールにおいて実施され、遠隔モジュールからの完全に自律的な使用を可能にする。
【0026】
ヒト視覚系は、複雑であって、深度の現実的知覚を提供することは、困難である。理論によって限定されるわけではないが、オブジェクトの視認者は、輻輳・開散運動移動(vergence)と遠近調節(accommodation)の組み合わせに起因して、オブジェクトを3次元として知覚し得ると考えられる。相互に対する2つの眼の輻輳・開散運動(すなわち、瞳孔が、相互に向かって、またはそこから離れるように移動し、眼の視線を収束させ、オブジェクトを固視するような瞳孔の回転)は、眼の水晶体の合焦(または「遠近調節」)と緊密に関連付けられる。通常条件下、焦点を1つのオブジェクトから異なる距離における別のオブジェクトに変化させるための眼のレンズの焦点の変化または眼の遠近調節は、「遠近調節-輻輳・開散運動反射」として知られる関係下、輻輳・開散運動の整合変化を自動的に同一距離に生じさせるであろう。同様に、輻輳・開散運動の変化は、通常条件下、遠近調節の整合変化を誘起するであろう。遠近調節と輻輳・開散運動との間のより良好な整合を提供するディスプレイシステムは、3次元画像のより現実的かつ快適なシミュレーションを形成し得る。
【0027】
図3は、複数の深度平面を使用して3次元画像をシミュレートするためのアプローチの側面を図示する。図3を参照すると、z-軸上の眼302および304からの種々の距離におけるオブジェクトは、それらのオブジェクトが合焦するように、眼302および304によって遠近調節される。眼302および304は、特定の遠近調節された状態をとり、オブジェクトをz-軸に沿った異なる距離に合焦させる。その結果、特定の遠近調節された状態は、特定の深度平面におけるオブジェクトまたはオブジェクトの一部が、眼がその深度平面に対して遠近調節された状態にあるとき、合焦するように、関連付けられた焦点距離を有する、深度平面306のうちの特定の1つと関連付けられると言え得る。いくつかの実施形態では、3次元画像は、眼302および304毎に、画像の異なる提示を提供することによって、また、深度平面のそれぞれに対応する画像の異なる提示を提供することによって、シミュレートされてもよい。例証を明確にするために、別個であるように示されるが、眼302および304の視野は、例えば、z-軸に沿った距離が増加するにつれて、重複し得ることを理解されたい。加えて、例証を容易にするために、平坦であるように示されるが、深度平面の等高線は、深度平面内の全ての特徴が特定の遠近調節された状態における眼と合焦するように、物理的空間内で湾曲され得ることを理解されたい。理論によって限定されるわけではないが、ヒトの眼は、典型的には、有限数の深度平面を解釈し、深度知覚を提供することができると考えられる。その結果、知覚された深度の高度に真実味のあるシミュレーションが、眼にこれらの限定数の深度平面のそれぞれに対応する画像の異なる提示を提供することによって達成され得る。
(導波管スタックアセンブリ)
【0028】
図4は、画像情報をユーザに出力するための導波管スタックの実施例を図示する。ウェアラブルシステム400は、複数の導波管432b、434b、436b、438b、4400bを使用して、3次元知覚を眼/脳に提供するために利用され得る、導波管のスタックまたはスタックされた導波管アセンブリ480を含む。いくつかの実施形態では、ウェアラブルシステム400は、図2のウェアラブルシステム200に対応してもよく、図4は、ウェアラブルシステム200のいくつかの部分をより詳細に概略的に示す。例えば、いくつかの実施形態では、導波管アセンブリ480は、図2のディスプレイ220の中に統合されてもよい。
【0029】
図4を継続して参照すると、導波管アセンブリ480はまた、複数の特徴458、456、454、452を導波管間に含んでもよい。いくつかの実施形態では、特徴458、456、454、452は、レンズであってもよい。他の実施形態では、特徴458、456、454、452は、レンズではなくてもよい。むしろ、それらは、単に、スペーサであってもよい(例えば、空気間隙を形成するためのクラッディング層または構造)。
【0030】
導波管432b、434b、436b、438b、440bまたは複数のレンズ458、456、454、452は、種々のレベルの波面曲率または光線発散を用いて、画像情報を眼に送信するように構成されてもよい。各導波管レベルは、特定の深度平面と関連付けられてもよく、その深度平面に対応する画像情報を出力するように構成されてもよい。画像投入デバイス420、422、424、426、428は、それぞれ、眼410に向かって出力するために、各個別の導波管を横断して入射光を分散させるように構成され得る、導波管440b、438b、436b、434b、432bの中に画像情報を投入するために利用されてもよい。光は、画像投入デバイス420、422、424、426、428の出力表面から出射し、導波管440b、438b、436b、434b、432bの対応する入力縁の中に投入される。いくつかの実施形態では、光の単一ビーム(例えば、コリメートされたビーム)が、各導波管の中に投入され、特定の導波管と関連付けられた深度平面に対応する特定の角度(および発散量)において眼410に向かって指向される、クローン化されたコリメートビームの場全体を出力してもよい。
【0031】
いくつかの実施形態では、画像投入デバイス420、422、424、426、428は、それぞれ、それぞれの対応する導波管440b、438b、436b、434b、432bの中への投入のための画像情報を生成する、離散ディスプレイである。いくつかの他の実施形態では、画像投入デバイス420、422、424、426、428は、例えば、画像情報を1つ以上の光学導管(光ファイバケーブル等)を介して、画像投入デバイス420、422、424、426、428のそれぞれに送り得る、単一の多重化されたディスプレイの出力端である。
【0032】
コントローラ460が、スタックされた導波管アセンブリ480および画像投入デバイス420、422、424、426、428の動作を制御する。コントローラ460は、導波管440b、438b、436b、434b、432bへの画像情報のタイミングおよび提供を調整する、プログラミング(例えば、非一過性コンピュータ可読媒体内の命令)を含む。いくつかの実施形態では、コントローラ460は、単一一体型デバイスまたは有線もしくは無線通信チャネルによって接続される分散型システムであってもよい。コントローラ460は、いくつかの実施形態では、処理モジュール260または270(図2に図示される)の一部であってもよい。
【0033】
導波管440b、438b、436b、434b、432bは、全内部反射(TIR)によって各個別の導波管内で光を伝搬するように構成されてもよい。導波管440b、438b、436b、434b、432bはそれぞれ、主要な上部および底部表面ならびにそれらの主要上部表面と底部表面との間に延在する縁を伴う、平面である、または別の形状(例えば、湾曲)であってもよい。図示される構成では、導波管440b、438b、436b、434b、432bはそれぞれ、光を再指向させ、各個別の導波管内で伝搬させ、導波管から、画像情報を眼410に出力することによって、光を導波管から抽出するように構成される、光抽出光学要素440a、438a、436a、434a、432aを含んでもよい。抽出された光はまた、外部結合光と称され得、光抽出光学要素はまた、外部結合光学要素と称され得る。抽出された光のビームは、導波管によって、導波管内を伝搬する光が光再指向要素に衝打する場所に出力される。光抽出光学要素(440a、438a、436a、434a、432a)は、例えば、反射または回折光学特徴であってもよい。説明の容易性および図面の明確性のために、導波管440b、438b、436b、434b、432bの底部主要表面に配置されて図示されるが、いくつかの実施形態では、光抽出光学要素440a、438a、436a、434a、432aは、上部もしくは底部主要表面に配置されてもよい、または導波管440b、438b、436b、434b、432bの容積内に直接配置されてもよい。いくつかの実施形態では、光抽出光学要素440a、438a、436a、434a、432aは、透明基板に取り付けられ、導波管440b、438b、436b、434b、432bを形成する、材料の層内に形成されてもよい。いくつかの他の実施形態では、導波管440b、438b、436b、434b、432bは、材料のモノリシック部品であってもよく、光抽出光学要素440a、438a、436a、434a、432aは、材料のその部品の表面上および/またはその内部に形成されてもよい。
【0034】
図4を継続して参照すると、本明細書に議論されるように、各導波管440b、438b、436b、434b、432bは、光を出力し、特定の深度平面に対応する画像を形成するように構成される。例えば、眼の最近傍の導波管432bは、そのような導波管432bの中に投入されるにつれて、コリメートされた光を眼410に送達するように構成されてもよい。コリメートされた光は、光学無限遠焦点面を表し得る。次の上方の導波管434bは、眼410に到達し得る前に、第1のレンズ452(例えば、負のレンズ)を通して通過する、コリメートされた光を送出するように構成されてもよい。第1のレンズ452は、眼/脳が、その次の上方の導波管434bから生じる光を光学無限遠から眼410に向かって内向きにより近い第1の焦点面から生じるように解釈するように、若干の凸面波面曲率を生成するように構成されてもよい。同様に、第3の上方の導波管436bは、眼410に到達する前に、その出力光を第1のレンズ452および第2のレンズ454の両方を通して通過させる。第1および第2のレンズ452ならびに454の組み合わせられた屈折力は、眼/脳が、第3の導波管436bから生じる光が次の上方の導波管434bからの光であった光学無限遠から人物に向かって内向きにさらにより近い第2の焦点面から生じるように解釈するように、別の漸増量の波面曲率を生成するように構成されてもよい。
【0035】
他の導波管層(例えば、導波管438b、440b)およびレンズ(例えば、レンズ456、458)も同様に構成され、スタック内の最高導波管440bを用いて、人物に最も近い焦点面を表す集約焦点力のために、その出力をそれと眼との間のレンズの全てを通して送出する。スタックされた導波管アセンブリ480の他側の世界470から生じる光を視認/解釈するとき、レンズ458、456、454、452のスタックを補償するために、補償レンズ層430が、スタックの上部に配置され、下方のレンズスタック458、456、454、452の集約力を補償してもよい。そのような構成は、利用可能な導波管/レンズ対と同じ数の知覚される焦点面を提供する。導波管の光抽出光学要素およびレンズの集束側面は両方とも、静的であってもよい(例えば、動的または電気活性ではない)。いくつかの代替実施形態では、一方または両方とも、電気活性特徴を使用して動的であってもよい。
【0036】
図4を継続して参照すると、光抽出光学要素440a、438a、436a、434a、432aは、光をその個別の導波管から再指向し、かつ導波管と関連付けられた特定の深度平面のための適切な発散またはコリメーション量を用いて本光を出力することの両方のために構成されてもよい。その結果、異なる関連付けられた深度平面を有する導波管は、関連付けられた深度平面に応じて、異なる量の発散を伴う光を出力する、異なる構成の光抽出光学要素を有してもよい。いくつかの実施形態では、本明細書に議論されるように、光抽出光学要素440a、438a、436a、434a、432aは、具体的角度において光を出力するように構成され得る、立体または表面特徴であってもよい。例えば、光抽出光学要素440a、438a、436a、434a、432aは、体積ホログラム、表面ホログラム、および/または回折格子であってもよい。回折格子等の光抽出光学要素は、2015年6月25日に公開された米国特許公開第2015/0178939号(参照することによってその全体として本明細書に組み込まれる)に説明される。
【0037】
いくつかの実施形態では、光抽出光学要素440a、438a、436a、434a、432aは、回折パターンを形成する回折特徴、すなわち、「回折光学要素」(本明細書では、「DOE」とも称される)である。好ましくは、DOEは、ビームの光の一部のみが、DOEの各交差点を用いて、眼410に向かって偏向される一方、残りが、全内部反射を介して、導波管を通して移動し続けるように、比較的に低回折効率を有する。画像情報を搬送する光は、したがって、複数の場所において導波管から出射する、いくつかの関連出射ビームに分割され、その結果、導波管内でバウンスする本特定のコリメートされたビームに関して、眼304に向かって非常に均一パターンの出射放出となることができる。
【0038】
いくつかの実施形態では、1つ以上のDOEは、能動的に回折する「オン」状態と有意に回折しない「オフ」状態との間で切替可能であってもよい。例えば、切替可能なDOEは、ポリマー分散液晶の層を備えてもよく、その中で微小液滴は、ホスト媒体中に回折パターンを備え、微小液滴の屈折率は、ホスト材料の屈折率に実質的に整合するように切り替えられることができる(その場合、パターンは、入射光を著しく回折させない)、または微小液滴は、ホスト媒体のものに整合しない屈折率に切り替えられることができる(その場合、パターンは、入射光を能動的に回折させる)。
【0039】
いくつかの実施形態では、深度平面または被写界深度の数および分布は、視認者の眼の瞳孔サイズまたは配向に基づいて、動的に変動されてもよい。被写界深度は、視認者の瞳孔サイズと反比例して変化してもよい。その結果、視認者の眼の瞳孔のサイズが減少するにつれて、被写界深度は、その平面の場所が眼の焦点深度を越えるため判別不能である1つの平面が、判別可能となり、瞳孔サイズの低減および被写界深度の相当する増加に伴って、より合焦して現れ得るように増加する。同様に、異なる画像を視認者に提示するために使用される、離間される深度平面の数は、減少された瞳孔サイズに伴って減少されてもよい。例えば、視認者は、一方の深度平面から他方の深度平面への眼の遠近調節を調節せずに、第1の深度平面および第2の深度平面の両方の詳細を1つの瞳孔サイズにおいて明確に知覚することが可能ではない場合がある。しかしながら、これらの2つの深度平面は、同時に、遠近調節を変化させずに、別の瞳孔サイズにおいてユーザに合焦するには十分であり得る。
【0040】
いくつかの実施形態では、ディスプレイシステムは、瞳孔サイズおよび/または配向の決定に基づいて、もしくは特定の瞳孔サイズ/または配向を示す電気信号の受信に応じて、画像情報を受信する導波管の数を変動させてもよい。例えば、ユーザの眼が、2つの導波管と関連付けられた2つの深度平面間を区別不能である場合、コントローラ460(ローカル処理およびデータモジュール260の実施形態であり得る)は、これらの導波管のうちの1つへの画像情報の提供を停止するように構成またはプログラムされることができる。有利には、これは、システムへの処理負担を低減させ、それによって、システムの応答性を増加させ得る。導波管のためのDOEがオンおよびオフ状態間で切替可能である実施形態では、DOEは、導波管が画像情報を受信するとき、オフ状態に切り替えられてもよい。
【0041】
いくつかの実施形態では、出射ビームに視認者の眼の直径未満の直径を有するという条件を満たさせることが望ましくあり得る。しかしながら、本条件を満たすことは、視認者の瞳孔のサイズの変動性に照らして、困難であり得る。いくつかの実施形態では、本条件は、視認者の瞳孔のサイズの決定に応答して出射ビームのサイズを変動させることによって、広範囲の瞳孔サイズにわたって満たされる。例えば、瞳孔サイズが減少するにつれて、出射ビームのサイズもまた、減少し得る。いくつかの実施形態では、出射ビームサイズは、可変開口を使用して変動されてもよい。
【0042】
ウェアラブルシステム400は、世界470の一部を結像する、外向きに面した結像システム464(例えば、デジタルカメラ)を含むことができる。世界470の本部分は、世界カメラの視野(FOV)と称され得、結像システム464は、時として、FOVカメラとも称される。視認者による視認または結像のために利用可能な領域全体は、動眼視野(FOR)と称され得る。FORは、装着者が、その身体、頭部、または眼を移動させ、空間内の実質的に任意の方向を知覚するため、ウェアラブルシステム400を囲繞する4πステラジアンの立体角を含んでもよい。他のコンテキストでは、装着者の移動は、より抑制されてもよく、それに応じて、装着者のFORは、より小さい立体角に接し得る。外向きに面した結像システム464から得られた画像は、ユーザによって行われるジェスチャ(例えば、手または指のジェスチャ)を追跡し、ユーザの正面における世界470内のオブジェクトを検出する等のために、使用されることができる。
【0043】
ウェアラブルシステム400はまた、眼移動および顔移動等のユーザの移動を観察する、内向きに面した結像システム466(例えば、デジタルカメラ)を含むことができる。内向きに面した結像システム466は、眼410の画像を捕捉し、眼304の瞳孔のサイズまたは配向を決定するために使用されてもよい。内向きに面した結像システム466は、ユーザが見ている方向(例えば、眼姿勢)を決定する際に使用するため、またはユーザのバイオメトリック識別のため(例えば、虹彩識別を介して)、画像を得るために使用されることができる。いくつかの実施形態では、少なくとも1つのカメラが、眼毎に、独立して、各眼の瞳孔サイズまたは眼姿勢を別個に決定し、それによって、各眼への画像情報の提示がその眼に対して動的に調整されることを可能にするために利用されてもよい。いくつかの他の実施形態では、単一眼410のみの瞳孔直径または配向(例えば、対の眼あたり単一カメラのみを使用して)が、決定され、ユーザの両眼に関して類似すると仮定される。内向きに面した結像システム466によって得られる画像は、ユーザに提示されるべきオーディオまたは視覚的コンテンツを決定するためにウェアラブルシステム400によって使用され得る、ユーザの眼姿勢または気分を決定するために分析されてもよい。ウェアラブルシステム400はまた、IMU、加速度計、ジャイロスコープ等のセンサを使用して、頭部姿勢(例えば、頭部位置または頭部配向)を決定してもよい。
【0044】
ウェアラブルシステム400は、ユーザが、コマンドをコントローラ460に入力し、ウェアラブルシステム400と相互作用し得る、ユーザ入力デバイス466を含むことができる。例えば、ユーザ入力デバイス466は、トラックパッド、タッチスクリーン、ジョイスティック、多自由度(DOF)コントローラ、容量感知デバイス、ゲームコントローラ、キーボード、マウス、指向性パッド(Dパッド)、ワンド、触知デバイス、トーテム(例えば、仮想ユーザ入力デバイスとして機能する)等を含むことができる。マルチDOFコントローラは、コントローラの一部または全部の可能性として考えられる平行移動(例えば、左/右、前方/後方、もしくは上/下)または回転(例えば、ヨー、ピッチ、もしくはロール)におけるユーザ入力を感知することができる。平行移動をサポートする、マルチDOFコントローラは、3DOFと称され得る一方、平行移動および回転をサポートする、マルチDOFコントローラは、6DOFと称され得る。ある場合には、ユーザは、指(例えば、親指)を使用して、タッチセンサ式入力デバイスを押下またはその上でスワイプし、入力をウェアラブルシステム400に提供してもよい(例えば、ユーザ入力をウェアラブルシステム400によって提供されるユーザインターフェースに提供するために)。ユーザ入力デバイス466は、ウェアラブルシステム400の使用の間、ユーザの手によって保持されてもよい。ユーザ入力デバイス466は、ウェアラブルシステム400と有線または無線通信することができる。
【0045】
図5は、導波管によって出力された出射ビームの実施例を示す。1つの導波管が、図示されるが、導波管アセンブリ480内の他の導波管も、同様に機能してもよく、導波管アセンブリ480は、複数の導波管を含むことを理解されたい。光520が、導波管432bの入力縁432cにおいて導波管432bの中に投入され、TIRによって導波管432b内を伝搬する。光520がDOE432aに衝突する点において、光の一部が、出射ビーム510として導波管から出射する。出射ビーム510は、略平行として図示されるが、それらはまた、導波管432bと関連付けられた深度平面に応じて、ある角度で眼410に伝搬するように再指向されてもよい(例えば、発散出射ビーム形成)。略平行出射ビームは、光を外部結合し、眼410から遠距離(例えば、光学無限遠)における深度平面に設定されるように現れる画像を形成する光抽出光学要素を伴う、導波管を示し得ることを理解されたい。他の導波管または他の光抽出光学要素のセットは、より発散する、出射ビームパターンを出力してもよく、これは、眼410がより近い距離に遠近調節し、網膜に合焦させることを要求し、光学無限遠より眼410に近い距離からの光として脳によって解釈されるであろう。
【0046】
図6は、導波管装置と、光を導波管装置へまたはそこから光学的に結合するための光学結合器サブシステムと、多焦点立体ディスプレイ、画像、またはライトフィールドの生成において使用される制御サブシステムとを含む、光学システムを示す、概略図である。光学システムは、導波管装置と、光を導波管装置にまたはそこから光学的に結合するための光学結合器サブシステムと、制御サブシステムとを含むことができる。光学システムは、多焦点立体、画像、またはライトフィールドを生成するために使用されることができる。光学システムは、1つ以上の一次平面導波管632a(1つのみのが図6に示される)と、一次導波管632aの少なくともいくつかのそれぞれと関連付けられた1つ以上のDOE632bとを含むことができる。平面導波管632bは、図4を参照して議論される導波管432b、434b、436b、438b、440bに類似することができる。光学システムは、分散導波管装置を採用し、光を第1の軸(図6の図では、垂直またはY-軸)に沿って中継し、第1の軸(例えば、Y-軸)に沿って光の有効射出瞳を拡張させてもよい。分散導波管装置は、例えば、分散平面導波管622bと、分散平面導波管622bと関連付けられた少なくとも1つのDOE622a(二重破線によって図示される)とを含んでもよい。分散平面導波管622bは、少なくともいくつかの点において、それと異なる配向を有する一次平面導波管632bと類似または同じであってもよい。同様に、少なくとも1つのDOE622aは、少なくともいくつかの点において、DOE632aと類似または同じであってもよい。例えば、分散平面導波管622bまたはDOE622aは、それぞれ、一次平面導波管632bまたはDOE632aと同一材料から成ってもよい。図6に示される光学ディスプレイシステム600の実施形態は、図2に示されるウェアラブルシステム200の中に統合されることができる。
【0047】
中継され、射出瞳が拡張された光は、分散導波管装置から1つ以上の一次平面導波管632bの中に光学的に結合され得る。一次平面導波管632bは、好ましくは、第1の軸に直交する、第2の軸(例えば、図6の図では、水平またはX-軸)に沿って、光を中継することができる。着目すべきこととして、第2の軸は、第1の軸に対して非直交軸であることができる。一次平面導波管632bは、その第2の軸(例えば、X-軸)に沿って、光の有効射出瞳を拡張させる。例えば、分散平面導波管622bは、光を垂直またはY-軸に沿って中継および拡張させ、光を水平またはX-軸に沿って中継および拡張させ得る、一次平面導波管632bにその光を通過させることができる。
【0048】
光学システムは、単一モード光ファイバ640の近位端の中に光学的に結合され得る、1つ以上の着色光源(例えば、赤色、緑色、および青色レーザ光)610を含んでもよい。光ファイバ640の遠位端は、圧電材料の中空管642を通して螺合または受容されてもよい。遠位端は、固定されない可撓性カンチレバー644として、管642から突出する。圧電管642は、4つの象限電極(図示せず)と関連付けられることができる。電極は、例えば、管642の外側、外側表面もしくは外側周縁、または直径に鍍着されてもよい。コア電極(図示せず)もまた、管642のコア、中心、内側周縁、または内径に位置してもよい。
【0049】
例えば、ワイヤ660を介して電気的に結合される、駆動電子機器650は、対向する対の電極を駆動し、圧電管642を独立して2つの軸において屈曲させる。光ファイバ644の突出する遠位先端は、機械的共鳴モードを有する。共鳴の周波数は、光ファイバ644の直径、長さ、および材料性質に依存し得る。圧電管642をファイバカンチレバー644の第1の機械的共鳴モードの近傍で振動させることによって、ファイバカンチレバー644は、振動させられ、大偏向を通して掃引し得る。
【0050】
2つの軸において共振振動を刺激することによって、ファイバカンチレバー644の先端は、2次元(2-D)走査を充填する面積内において2軸方向に走査される。光源610の強度をファイバカンチレバー644の走査と同期して変調させることによって、ファイバカンチレバー644から発せられる光は、画像を形成することができる。そのような設定の説明は、米国特許公開第2014/0003762号(参照することによってその全体として本明細書に組み込まれる)に提供されている。
【0051】
光学結合器サブシステムのコンポーネントは、走査ファイバカンチレバー644から発せられる光をコリメートすることができる。コリメートされた光は、鏡面表面648によって、少なくとも1つの回折光学要素(DOE)622aを含有する、狭分散平面導波管622bの中に反射されることができる。コリメートされた光は、TIRによって分散平面導波管622bに沿って(図6の図に対して)垂直に伝搬し、そうすることによって、DOE622aと繰り返し交差することができる。DOE622aは、好ましくは、低回折効率を有する。これは、光の一部(例えば、10%)をDOE622aとの交差点の各点においてより大きい一次平面導波管632bの縁に向かって回折させ、光の一部をTIRを介して分散平面導波管622bの長さを辿ってそのオリジナル軌道上で継続させることができる。
【0052】
DOE622aとの交差点の各点において、付加的光が、一次導波管632bの入口に向かって回折されることができる。入射光を複数の外部結合セットに分割することによって、光の射出瞳は、分散平面導波管622b内のDOE622aによって垂直に拡張されることができる。分散平面導波管622bから外部結合された本垂直に拡張された光は、一次平面導波管632bの縁に進入することができる。
【0053】
一次導波管632bに進入する光は、TIRを介して、一次導波管632bに沿って(図6の図に対して)水平に伝搬することができる。光は、複数の点においてDOE632aと交差するにつれて、TIRを介して、一次導波管632bの長さの少なくとも一部に沿って水平に伝搬する。DOE632aは、有利には、線形回折パターンおよび半径方向対称回折パターンの総和である、位相プロファイルを有し、光の偏向および集束の両方を生成するように設計または構成され得る。DOE632aは、有利には、ビームの光の一部のみが、DOE632aの各交差点において視認者の眼に向かって偏向される一方、光の残りが、TIRを介して、一次導波管632bを通して伝搬し続けるように、低回折効率(例えば、10%)を有し得る。
【0054】
伝搬する光とDOE632aとの間の交差点の各点において、光の一部は、一次導波管632bの隣接面に向かって回折され、光がTIRから逃散し、一次導波管632bの面から発せられることを可能にする。いくつかの実施形態では、DOE632aの半径方向対称回折パターンは、加えて、ある焦点レベルを回折された光に付与し、個々のビームの光波面を成形(例えば、曲率を付与する)し、かつビームを設計される焦点レベルに合致する角度に操向することの両方を行う。
【0055】
故に、これらの異なる経路は、異なる角度におけるDOE632aの多重度、焦点レベル、または射出瞳において異なる充填パターンをもたらすことによって、光を一次平面導波管632bの外部で結合させることができる。射出瞳における異なる充填パターンは、有利には、複数の深度平面を伴うライトフィールドディスプレイを生成するために使用されることができる。導波管アセンブリ内の各層またはスタック内の層のセット(例えば、3層)が、個別の色(例えば、赤色、青色、緑色)を生成するために採用されてもよい。したがって、例えば、第1の3つの隣接する層のセットが、それぞれ、赤色、青色、および緑色光を第1の焦点深度において生成するために採用されてもよい。第2の3つの隣接する層のセットが、それぞれ、赤色、青色、および緑色光を第2の焦点深度において生成するために採用されてもよい。複数のセットが、種々の焦点深度を伴うフル3Dまたは4Dカラー画像ライトフィールドを生成するために採用されてもよい。
(ウェアラブルシステムの他のコンポーネント)
【0056】
多くの実装では、ウェアラブルシステムは、上記に説明されるウェアラブルシステムのコンポーネントに加えて、またはその代替として、他のコンポーネントを含んでもよい。ウェアラブルシステムは、例えば、1つ以上の触知デバイスまたはコンポーネントを含んでもよい。触知デバイスまたはコンポーネントは、触覚をユーザに提供するように動作可能であってもよい。例えば、触知デバイスまたはコンポーネントは、仮想コンテンツ(例えば、仮想オブジェクト、仮想ツール、他の仮想構造)に触れると、圧力および/またはテクスチャの感覚を提供してもよい。触覚は、仮想オブジェクトが表す物理的オブジェクトの感覚を再現してもよい、または仮想コンテンツが表す想像上のオブジェクトもしくはキャラクタ(例えば、ドラゴン)の感覚を再現してもよい。いくつかの実装では、触知デバイスまたはコンポーネントは、ユーザによって装着されてもよい(例えば、ユーザウェアラブルグローブ)。いくつかの実装では、触知デバイスまたはコンポーネントは、ユーザによって保持されてもよい。
【0057】
ウェアラブルシステムは、例えば、ユーザによって操作可能であって、ウェアラブルシステムへの入力またはそれとの相互作用を可能にする、1つ以上の物理的オブジェクトを含んでもよい。これらの物理的オブジェクトは、本明細書では、トーテムと称され得る。いくつかのトーテムは、例えば、金属またはプラスチック片、壁、テーブルの表面等、無生物オブジェクトの形態をとってもよい。ある実装では、トーテムは、実際には、任意の物理的入力構造(例えば、キー、トリガ、ジョイスティック、トラックボール、ロッカスイッチ)を有していなくてもよい。代わりに、トーテムは、単に、物理的表面を提供してもよく、ウェアラブルシステムは、ユーザにトーテムの1つ以上の表面上にあるように見えるように、ユーザインターフェースをレンダリングしてもよい。例えば、ウェアラブルシステムは、トーテムの1つ以上の表面上に常駐するように見えるように、コンピュータキーボードおよびトラックパッドの画像をレンダリングしてもよい。例えば、ウェアラブルシステムは、トーテムとしての役割を果たす、アルミニウムの薄い長方形プレートの表面上に見えるように、仮想コンピュータキーボードおよび仮想トラックパッドをレンダリングしてもよい。長方形プレート自体は、任意の物理的キーまたはトラックパッドもしくはセンサを有していない。しかしながら、ウェアラブルシステムは、仮想キーボードまたは仮想トラックパッドを介して行われた選択または入力として、長方形プレートを用いたユーザ操作または相互作用もしくはタッチを検出し得る。ユーザ入力デバイス466(図4に示される)は、トラックパッド、タッチパッド、トリガ、ジョイスティック、トラックボール、ロッカもしくは仮想スイッチ、マウス、キーボード、多自由度コントローラ、または別の物理的入力デバイスを含み得る、トーテムの実施形態であってもよい。ユーザは、単独で、または姿勢と組み合わせて、トーテムを使用し、ウェアラブルシステムおよび/または他のユーザと相互作用してもよい。
【0058】
本開示のウェアラブルデバイス、HMD、およびディスプレイシステムと使用可能な触知デバイスおよびトーテムの実施例は、米国特許公開第2015/0016777号(参照することによってその全体として本明細書に組み込まれる)に説明されている。
(例示的ウェアラブルシステム、環境、およびインターフェース)
【0059】
ウェアラブルシステムは、高被写界深度をレンダリングされたライトフィールド内で達成するために、種々のマッピング関連技法を採用してもよい。仮想世界をマッピングする際、実世界内の全ての特徴および点を把握し、仮想オブジェクトを実世界に関連して正確に描くことが有利である。この目的を達成するために、ウェアラブルシステムのユーザから捕捉されたFOV画像が、実世界の種々の点および特徴についての情報を伝達する新しい写真を含むことによって、世界モデルに追加されることができる。例えば、ウェアラブルシステムは、マップ点(2D点または3D点等)のセットを収集し、新しいマップ点を見出し、世界モデルのより正確なバージョンをレンダリングすることができる。第1のユーザの世界モデルは、第2のユーザが第1のユーザを囲繞する世界を体験し得るように、(例えば、クラウドネットワーク等のネットワークを経由して)第2のユーザに通信されることができる。
【0060】
図7は、MR環境700の実施例のブロック図である。MR環境700は、入力(例えば、ユーザのウェアラブルシステムからの視覚的入力702、室内カメラ等の定常入力704、種々のセンサからの感覚入力706、ユーザ入力デバイス466からのジェスチャ、トーテム、眼追跡、ユーザ入力等)を1つ以上のユーザウェアラブルシステム(例えば、ウェアラブルシステム200もしくはディスプレイシステム220)または定常室内システム(例えば、室内カメラ等)から受信するように構成されてもよい。ウェアラブルシステムは、種々のセンサ(例えば、加速度計、ジャイロスコープ、温度センサ、移動センサ、深度センサ、GPSセンサ、内向きに面した結像システム、外向きに面した結像システム等)を使用して、ユーザの環境の場所および種々の他の属性を決定することができる。本情報はさらに、異なる視点からの画像または種々のキューを提供し得る、部屋内の定常カメラからの情報で補完されてもよい。カメラ(室内カメラまたは外向きに面した結像システムのカメラ等)によって入手された画像データは、マッピング点のセットに低減されてもよい。
【0061】
1つ以上のオブジェクト認識装置708が、受信されたデータ(例えば、点の集合)を通してクローリングし、点を認識またはマッピングし、画像をタグ付けし、マップデータベース710を用いて、意味論情報をオブジェクトに結び付けることができる。マップデータベース710は、経時的に収集された種々の点およびその対応するオブジェクトを備えてもよい。種々のデバイスおよびマップデータベースは、ネットワーク(例えば、LAN、WAN等)を通して相互に接続され、クラウドにアクセスすることができる。
【0062】
本情報およびマップデータベース内の点集合に基づいて、オブジェクト認識装置708a-708nは、環境内のオブジェクトを認識してもよい。例えば、オブジェクト認識装置は、顔、人物、窓、壁、ユーザ入力デバイス、テレビ、ドキュメント(例えば、本明細書におけるセキュリティ実施例において説明されるような旅券、運転免許証、パスポート)、ユーザの環境内の他のオブジェクト等を認識することができる。1つ以上のオブジェクト認識装置が、ある特性を伴うオブジェクトのために特殊化されてもよい。例えば、オブジェクト認識装置708aは、顔を認識するために使用されてもよい一方、別のオブジェクト認識装置は、ドキュメントを認識するために使用されてもよい。
【0063】
オブジェクト認識は、種々のコンピュータビジョン技法を使用して実施されてもよい。例えば、ウェアラブルシステムは、外向きに面した結像システム464(図4に示される)によって入手された画像を分析し、場面再構成、イベント検出、ビデオ追跡、オブジェクト認識(例えば、人物またはドキュメント)、オブジェクト姿勢推定、顔認識(例えば、環境内の人物またはドキュメント上の画像から)、学習、インデックス化、運動推定、または画像分析(例えば、写真、署名、識別情報、旅行情報等のドキュメント内の印を識別する)等を実施することができる。1つ以上のコンピュータビジョンアルゴリズムが、これらのタスクを実施するために使用されてもよい。コンピュータビジョンアルゴリズムの非限定的実施例は、スケール不変特徴変換(SIFT)、スピードアップロバスト特徴(SURF)、配向FASTおよび回転BRIEF(ORB)、バイナリロバスト不変スケーラブルキーポイント(BRISK)、高速網膜キーポイント(FREAK)、Viola-Jonesアルゴリズム、Eigenfacesアプローチ、Lucas-Kanadeアルゴリズム、Horn-Schunkアルゴリズム、Mean-shiftアルゴリズム、視覚的同時位置推定およびマッピング(vSLAM)技法、シーケンシャルベイズ推定器(例えば、カルマンフィルタ、拡張カルマンフィルタ等)、バンドル調節、適応閾値化(および他の閾値化技法)、反復最近傍点(ICP)、セミグローバルマッチング(SGM)、セミグローバルブロックマッチング(SGBM)、特徴点ヒストグラム、種々の機械学習アルゴリズム(例えば、サポートベクトルマシン、k最近傍アルゴリズム、単純ベイズ、ニューラルネットワーク(畳み込みまたは深層ニューラルネットワークを含む)、または他の教師あり/教師なしモデル等)等を含む。
【0064】
オブジェクト認識は、加えて、または代替として、種々の機械学習アルゴリズムによって実施されることができる。いったん訓練されると、機械学習アルゴリズムは、HMDによって記憶されることができる。機械学習アルゴリズムのいくつかの実施例は、教師ありまたは教師なし機械学習アルゴリズムを含むことができ、回帰アルゴリズム(例えば、通常の最小2乗回帰等)、インスタンスベースのアルゴリズム(例えば、学習ベクトル量子化等)、決定ツリーアルゴリズム(例えば、分類および回帰ツリー等)、ベイズアルゴリズム(例えば、単純ベイズ等)、クラスタリングアルゴリズム(例えば、k-平均クラスタリング等)、関連付けルール学習アルゴリズム(例えば、アプリオリアルゴリズム等)、人工ニューラルネットワークアルゴリズム(例えば、Perceptron等)、深層学習アルゴリズム(例えば、Deep Boltzmann Machine、すなわち、深層ニューラルネットワーク等)、次元削減アルゴリズム(例えば、主成分分析等)、アンサンブルアルゴリズム(例えば、Stacked Gneralization等)、および/または他の機械学習アルゴリズムを含む。いくつかの実施形態では、個々のモデルは、個々のデータセットのためにカスタマイズされることができる。例えば、ウェアラブルデバイスは、ベースモデルを生成または記憶することができる。ベースモデルは、開始点として使用され、データタイプ(例えば、テレプレゼンスセッション内の特定のユーザ)、データセット(例えば、テレプレゼンスセッション内のユーザの取得される付加的画像のセット)、条件付き状況、または他の変形例に特有の付加的モデルを生成してもよい。いくつかの実施形態では、ウェアラブルHMDは、複数の技法を利用して、集約されたデータの分析のためのモデルを生成するように構成されることができる。他の技法は、事前に定義された閾値またはデータ値を使用することを含んでもよい。
【0065】
マップデータベース内の本情報および点の集合に基づいて、オブジェクト認識装置708a-708nは、オブジェクトを認識し、オブジェクトを意味論情報で補完し、生命をオブジェクトに与えてもよい。例えば、オブジェクト認識装置が、点のセットがドアであることを認識する場合、システムは、いくつかの意味論情報を結び付けてもよい(例えば、ドアは、ヒンジを有し、ヒンジを中心として90度移動を有する)。オブジェクト認識装置が、点のセットが鏡であることを認識する場合、システムは、鏡が、部屋内のオブジェクトの画像を反射させ得る、反射表面を有するという意味論情報を結び付けてもよい。意味論情報は、本明細書に説明されるように、オブジェクトのアフォーダンスを含むことができる。例えば、意味論情報は、オブジェクトの法線を含んでもよい。システムは、ベクトルを割り当てることができ、その方向は、オブジェクトの法線を示す。経時的に、マップデータベースは、システム(ローカルに常駐し得る、または無線ネットワークを通してアクセス可能であり得る)がより多くのデータを世界から蓄積するにつれて成長する。いったんオブジェクトが認識されると、情報は、1つ以上のウェアラブルシステムに伝送されてもよい。例えば、MR環境700は、Californiaで生成している場面についての情報を含んでもよい。環境700は、New Yorkにおける1人以上のユーザに伝送されてもよい。FOVカメラおよび他の入力から受信されたデータに基づいて、オブジェクト認識装置および他のソフトウェアコンポーネントは、場面が世界の異なる部分に存在し得る第2のユーザに正確に「パス」され得るように、種々の画像から収集された点をマッピングし、オブジェクトを認識すること等ができる。環境700はまた、位置特定目的のために、トポロジマップを使用してもよい。
【0066】
図8は、認識されたオブジェクトに関連して仮想コンテンツをレンダリングする方法800の実施例のプロセスフロー図である。方法800は、仮想場面がウェアラブルシステムのユーザに提示され得る方法を説明する。ユーザは、その場面から地理的に遠隔に存在してもよい。例えば、ユーザは、New Yorkに存在し得るが、Californiaで現在起こっている場面を視認することを所望し得る、またはCaliforniaに存在する友人と散歩に行くことを所望し得る。
【0067】
ブロック810では、ウェアラブルシステムは、ユーザの環境に関する入力をユーザおよび他のユーザから受信してもよい。これは、種々の入力デバイスおよびマップデータベース内にすでに保有されている知識を通して達成されてもよい。ユーザのFOVカメラ、センサ、GPS、眼追跡等が、ブロック810において、情報をシステムに伝達する。システムは、ブロック820において、本情報に基づいて、疎点を決定してもよい。疎点は、ユーザの周囲における種々のオブジェクトの配向および位置を表示ならびに理解する際に使用され得る、姿勢データ(例えば、頭部姿勢、眼姿勢、身体姿勢、または手のジェスチャ)を決定する際に使用されてもよい。オブジェクト認識装置708a、708nは、ブロック830において、これらの収集された点を通してクローリングし、マップデータベースを使用して、1つ以上のオブジェクトを認識してもよい。本情報は、次いで、ブロック840において、ユーザの個々のウェアラブルシステムに伝達されてもよく、所望の仮想場面が、ブロック850において、適宜、ユーザに表示されてもよい。例えば、所望の仮想場面(例えば、CAにおけるユーザ)が、New Yorkにおけるユーザの種々のオブジェクトおよび他の周囲に関連して、適切な配向、位置等において表示されてもよい。
【0068】
図9は、ウェアラブルシステムの別の実施例のブロック図である。本実施例では、ウェアラブルシステム900は、世界に関するマップデータを含み得る、マップを備える。マップは、部分的に、ウェアラブルシステム上にローカルに常駐してもよく、部分的に、有線または無線ネットワークによってアクセス可能なネットワーク化された記憶場所(例えば、クラウドシステム内)に常駐してもよい。姿勢プロセス910が、ウェアラブルコンピューティングアーキテクチャ(例えば、処理モジュール260またはコントローラ460)上で実行され、ウェアラブルコンピューティングハードウェアまたはユーザの位置および配向を決定するために、マップからのデータを利用してもよい。姿勢データは、ユーザが、システムを体験し、その世界内で動作するにつれて、オンザフライで収集されたデータから算出されてもよい。データは、実または仮想環境内のオブジェクトに関する画像、センサ(概して、加速度計およびジャイロスコープコンポーネントを備える、慣性測定ユニット等)からのデータ、および表面情報を備えてもよい。
【0069】
疎点表現は、同時位置特定およびマッピング(例えば、入力が画像/視覚のみである構成を指す、SLAMまたはvSLAM)プロセスの出力であってもよい。システムは、世界内の種々のコンポーネントの場所だけではなく、世界が構成される内容も見出すように構成されることができる。姿勢は、マップへの取込およびマップからのデータを使用することを含め、多くの目標を達成する、構築ブロックであり得る。
【0070】
一実施形態では、疎点位置は、それ自体では完全に適正であり得ず、さらなる情報が、多焦点AR、VR、またはMR体験を生成するために必要とされ得る。概して、深度マップ情報を指す、稠密表現が、少なくとも部分的に、本間隙を充填するために利用されてもよい。そのような情報は、立体視940と称されるプロセスから算出されてもよく、深度情報は、三角測量または飛行時間感知等の技法を使用して決定される。画像情報およびアクティブパターン(アクティブプロジェクタを使用して生成される赤外線パターン等)が、立体視プロセス940への入力としての役割を果たし得る。有意な量の深度マップ情報が、ともに融合されてもよく、このうちのいくつかは、表面表現を用いて要約されてもよい。例えば、数学的に定義可能な表面は、ゲームエンジンのような他の処理デバイスへの効率的(例えば、大規模点群に対して)かつ要約しやすい入力であってもよい。したがって、立体視プロセス(例えば、深度マップ)940の出力は、融合プロセス930において組み合わせられてもよい。姿勢950は、同様に、本融合プロセス930への入力であってもよく、融合930の出力は、マップ取込プロセス920への入力となる。サブ表面が、トポグラフィマッピング等において相互に接続し、より大きい表面を形成し得、マップは、点および表面の大規模ハイブリッドとなる。
【0071】
複合現実プロセス960における種々の側面を解決するために、種々の入力が、利用されてもよい。例えば、図9に描写される実施形態では、ゲームパラメータは、システムのユーザが1匹以上のモンスタと種々の場所においてモンスタバトルゲームをプレーしていること、モンスタが死んでいる、種々の条件下で逃げている(ユーザがモンスタを撃つ場合等)、種々の場所における壁または他のオブジェクト、および同等物を決定するための入力であってもよい。世界マップは、複合現実に対する別の有用な入力となる、そのようなオブジェクトが相互に対して存在する場所に関する情報を含んでもよい。世界に対する姿勢は、同様に、入力となり、ほぼあらゆる双方向システムに対して重要な役割を果たす。
【0072】
ユーザからの制御または入力は、ウェアラブルシステム900への別の入力である。本明細書に説明されるように、ユーザ入力は、視覚的入力、ジェスチャ、トーテム、オーディオ入力、感覚入力等を含むことができる。動き回るまたはゲームをプレーするために、例えば、ユーザは、ウェアラブルシステム900に、所望する対象に関して命令する必要があり得る。空間内で自ら移動するだけではなく、利用され得る種々の形態のユーザ制御が、存在する。一実施形態では、トーテム(例えば、ユーザ入力デバイス)、または玩具銃等のオブジェクトが、ユーザによって保持され、システムによって追跡されてもよい。システムは、好ましくは、ユーザがアイテムを保持していることを把握し、ユーザがアイテムと行っている相互作用の種類を理解するように構成されるであろう(例えば、トーテムまたはオブジェクトが、銃である場合、システムは、場所および配向だけではなく、ユーザが、そのようなアクティビティがカメラのいずれかの視野内にないときでも、生じている状況の決定を補助し得る、IMU等のセンサを装備し得る、トリガまたは他の感知ボタンもしくは要素をクリックしているかどうかも理解するように構成されてもよい。)
【0073】
手のジェスチャ追跡または認識もまた、入力情報を提供してもよい。ウェアラブルシステム900は、ボタン押下のため、左または右、停止、握持、保持等をジェスチャするために、手のジェスチャを追跡および解釈するように構成されてもよい。例えば、1つの構成では、ユーザは、非ゲーム環境において電子メールもしくはカレンダを通して捲る、または別の人物もしくはプレーヤと「フィストバンプ」を行うことを所望し得る。ウェアラブルシステム900は、動的である場合とそうではない場合がある、最小量の手のジェスチャを活用するように構成されてもよい。例えば、ジェスチャは、停止を示すために手を広げる、OKを示すために親指を上げる、OKではないことを示すために親指を下げる、または指向性コマンドを示すために左右もしくは上下に手をフリップする等、単純な静的ジェスチャであってもよい。
【0074】
眼追跡は、別の入力である(例えば、ユーザが見ている場所を追跡し、ディスプレイ技術を制御し、具体的深度または範囲にレンダリングする)。一実施形態では、眼の輻輳・開散運動が、三角測量を使用して決定されてもよく、次いで、その特定の人物のために開発された輻輳・開散運動/遠近調節モデルを使用して、遠近調節が、決定されてもよい。眼追跡は、眼カメラによって実施され、眼視線(例えば、片眼または両眼の方向もしくは配向)を決定することができる。他の技法も、例えば、眼の近傍に設置された電極による電位の測定(例えば、電気眼球図記録)等、眼追跡のために使用されることができる。
【0075】
音声認識は、単独で、または他の入力(例えば、トーテム追跡、眼追跡、ジェスチャ追跡等)と組み合わせて使用され得る、別の入力であり得る。システム900は、オーディオストリームを環境から受信する、オーディオセンサ(例えば、マイクロホン)を含むことができる。受信されたオーディオストリームは、処理され(例えば、処理モジュール260、270または中央サーバ1650によって)、ユーザの音声(他の音声または背景オーディオから)を認識し、コマンド、パラメータ等をオーディオストリームから抽出することができる。例えば、システム900は、オーディオストリームから、語句「あなたのIDを見せてください」が発せられたことを識別し、本語句がシステム900の装着者(例えば、検閲者の環境内の別の人物ではなく、セキュリティ検閲者)によって発せられたことを識別し、語句および状況のコンテキスト(例えば、セキュリティ検問所)から、実施されるべき実行可能コマンド(例えば、装着者のFOV内のもののコンピュータビジョン分析)およびコマンドが実施されるべきオブジェクト(「あなたのID」)が存在することを抽出し得る。システム900は、発話している人物(例えば、発話がARDの装着者または別の人物もしくは音声(例えば、環境内のラウドスピーカによって伝送される記録された音声)からのものであるかどうか)を決定するための話者認識技術と、発せられている内容を決定するための発話認識技術とを組み込むことができる。音声認識技法は、周波数推定、隠れマルコフモデル、ガウス混合モデル、パターンマッチングアルゴリズム、ニューラルネットワーク、マトリクス表現、ベクトル量子化、話者ダイアライゼーション、決定ツリー、および動的時間伸縮(DTW)技法を含むことができる。音声認識技法はまた、コホートモデルおよび世界モデル等のアンチ話者技法を含むことができる。スペクトル特徴は、話者特性を表す際に使用されてもよい。
【0076】
カメラシステムに関して、図9に示される例示的ウェアラブルシステム900は、3つの対のカメラ、すなわち、ユーザの顔の両側に配列される相対的広FOVまたは受動SLAM対のカメラと、ユーザの正面に配向され、立体視結像プロセス940をハンドリングし、また、ユーザの顔の正面の手のジェスチャおよびトーテム/オブジェクトの軌道を捕捉するための異なる対のカメラとを含むことができる。ステレオプロセス940に対するFOVカメラおよび対のカメラは、外向きに面した結像システム464(図4に示される)の一部であってもよい。ウェアラブルシステム900は、眼ベクトルおよび他の情報を三角測量するために、ユーザの眼に向かって配向される眼追跡カメラ(図4に示される内向きに面した結像システム462の一部であってもよい)を含むことができる。ウェアラブルシステム900はまた、1つ以上のテクスチャ化光プロジェクタ(赤外線(IR)プロジェクタ等)を備え、テクスチャを場面の中に投入してもよい。
【0077】
図10は、ウェアラブルシステムへのユーザ入力を決定するための方法1000の実施例のプロセスフロー図である。本実施例では、ユーザは、トーテムと相互作用してもよい。ユーザは、複数のトーテムを有してもよい。例えば、ユーザは、ソーシャルメディアアプリケーションのための指定される1つのトーテム、ゲームをプレーするための別のトーテム等を有してもよい。ブロック1010では、ウェアラブルシステムは、トーテムの運動を検出してもよい。トーテムの移動は、外向きに面した結像システムを通して認識されてもよい、またはセンサ(例えば、触知グローブ、画像センサ、手追跡デバイス、眼追跡カメラ、頭部姿勢センサ等)を通して検出されてもよい。
【0078】
少なくとも部分的に、検出されたジェスチャ、眼姿勢、頭部姿勢、またはトーテムを通した入力に基づいて、ウェアラブルシステムは、ブロック1020において、基準フレームに対するトーテム(またはユーザの眼もしくは頭部もしくはジェスチャ)の位置、配向、または移動を検出する。基準フレームは、それに基づいてウェアラブルシステムがトーテム(またはユーザ)の移動をアクションまたはコマンドに変換する、マップ点のセットであってもよい。ブロック1030では、トーテムとのユーザの相互作用が、マッピングされる。基準フレーム1020に対するユーザ相互作用のマッピングに基づいて、システムは、ブロック1040において、ユーザ入力を決定する。
【0079】
例えば、ユーザは、トーテムまたは物理的オブジェクトを前後に移動させ、仮想ページを捲り、次のページに移動する、または1つのユーザインターフェース(UI)ディスプレイ画面から別のUI画面に移動することを示してもよい。別の実施例として、ユーザは、ユーザのFOR内の異なる実または仮想オブジェクトを見るために、その頭部または眼を移動させてもよい。特定の実または仮想オブジェクトにおけるユーザの注視が、閾値時間より長い場合、その実または仮想オブジェクトは、ユーザ入力として選択されてもよい。いくつかの実装では、ユーザの眼の輻輳・開散運動が、追跡されることができ、遠近調節/輻輳・開散運動モデルが、ユーザが合焦している深度平面に関する情報を提供する、ユーザの眼の遠近調節状態を決定するために使用されることができる。いくつかの実装では、ウェアラブルシステムは、レイキャスティング技法を使用して、ユーザの頭部姿勢または眼姿勢の方向に沿っている実または仮想オブジェクトを決定することができる。種々の実装では、レイキャスティング技法は、実質的に殆ど横幅を伴わない細い光線束を投じる、または実質的横幅を伴う光線(例えば、円錐または円錐台)を投じることを含むことができる。
【0080】
ユーザインターフェースは、本明細書に説明されるようなディスプレイシステム(図2におけるディスプレイ220等)によって投影されてもよい。また、1つ以上のプロジェクタ等の種々の他の技法を使用して表示されてもよい。プロジェクタは、画像をキャンバスまたは球体等の物理的オブジェクト上に投影してもよい。ユーザインターフェースとの相互作用は、システムの外部またはシステムの一部の1つ以上のカメラを使用して(例えば、内向きに面した結像システム462または外向きに面した結像システム464を使用して)追跡されてもよい。
【0081】
図11は、仮想ユーザインターフェースと相互作用するための方法1100の実施例のプロセスフロー図である。方法1100は、本明細書に説明されるウェアラブルシステムによって行われてもよい。方法1100の実施形態は、ウェアラブルシステムのFOV内の人物またはドキュメントを検出するためにウェアラブルシステムによって使用されることができる。
【0082】
ブロック1110では、ウェアラブルシステムは、特定のUIを識別してもよい。UIのタイプは、ユーザによって与えられてもよい。ウェアラブルシステムは、特定のUIがユーザ入力(例えば、ジェスチャ、視覚的データ、オーディオデータ、感覚データ、直接コマンド等)に基づいて取り込まれる必要があることを識別してもよい。UIは、セキュリティシナリオに特有であることができ、システムの装着者は、ドキュメントを装着者に提示するユーザを観察する(例えば、旅客検問所において)。ブロック1120では、ウェアラブルシステムは、仮想UIのためのデータを生成してもよい。例えば、UIの境界、一般的構造、形状等と関連付けられたデータが、生成されてもよい。加えて、ウェアラブルシステムは、ウェアラブルシステムがユーザの物理的場所に関連してUIを表示し得るように、ユーザの物理的場所のマップ座標を決定してもよい。例えば、UIが、身体中心である場合、ウェアラブルシステムは、リングUIがユーザの周囲に表示され得る、または平面UIが壁上またはユーザの正面に表示され得るように、ユーザの物理的立ち位置、頭部姿勢、または眼姿勢の座標を決定してもよい。本明細書に説明されるセキュリティコンテキストでは、UIは、装着者が、旅行者および旅行者のドキュメントを見ている間、UIを容易に視認し得るように、UIがドキュメントをシステムの装着者に提示する旅行者を囲繞しているかのように表示され得る。UIが、手中心の場合、ユーザの手のマップ座標が、決定されてもよい。これらのマップ点は、FOVカメラ、感覚入力を通して受信されたデータ、または任意の他のタイプの収集されたデータを通して導出されてもよい。
【0083】
ブロック1130では、ウェアラブルシステムは、データをクラウドからディスプレイに送信してもよい、またはデータは、ローカルデータベースからディスプレイコンポーネントに送信されてもよい。ブロック1140では、UIは、送信されたデータに基づいて、ユーザに表示される。例えば、ライトフィールドディスプレイは、仮想UIをユーザの眼の一方または両方の中に投影することができる。いったん仮想UIが生成されると、ウェアラブルシステムは、ブロック1150において、単に、ユーザからのコマンドを待機し、より多くの仮想コンテンツを仮想UI上に生成してもよい。例えば、UIは、ユーザの身体またはユーザの環境内の人物(例えば、旅行者)の身体の周囲の身体中心リングであってもよい。ウェアラブルシステムは、次いで、コマンド(ジェスチャ、頭部または眼移動、音声コマンド、ユーザ入力デバイスからの入力等)を待機してもよく、認識される場合(ブロック1160)、コマンドと関連付けられた仮想コンテンツが、ユーザに表示されてもよい(ブロック1170)。
【0084】
ウェアラブルシステム、UI、およびユーザ体験(UX)の付加的実施例は、米国特許公開第2015/0016777号(参照することによってその全体として本明細書に組み込まれる)に説明されている。
(ユーザの環境内の例示的オブジェクト)
【0085】
図4を参照して説明されるように、拡張現実デバイス(ARD)のユーザは、動眼視野(FOR)を有することができ、これは、ユーザによってARシステムを介して知覚されることが可能なユーザの周囲の環境の一部を構成する。頭部搭載型ARDに関して、FORは、装着者が、その身体、頭部、または眼を移動させ、空間内の実質的に任意の方向を知覚することができるため、装着者を囲繞する4πステラジアン立体角の実質的に全てを含み得る。他のコンテキストでは、ユーザの移動は、より狭められ得、故に、ユーザのFORは、より小さい立体角に対し得る。
【0086】
FORは、オブジェクトのグループを含有することができ、これは、ARDを介して、ユーザによって知覚されることができる。オブジェクトは、仮想および/または物理的オブジェクトであってもよい。仮想オブジェクトは、例えば、削除されたファイルのためのゴミ箱、コマンドを入力するための端末、ファイルまたはディレクトリにアクセスするためのファイルマネージャ、アイコン、メニュー、オーディオまたはビデオストリーミングのためのアプリケーション、オペレーティングシステムからの通知等、例えば、オペレーティングシステムオブジェクトを含んでもよい。仮想オブジェクトはまた、例えば、アバタ、ウィジェット(例えば、クロックの仮想表現)、ゲーム内の仮想オブジェクト、グラフィック、または画像等、アプリケーション内のオブジェクトを含んでもよい。いくつかの仮想オブジェクトは、オペレーティングシステムオブジェクトおよびアプリケーション内のオブジェクトの両方であることができる。
【0087】
仮想オブジェクトは、3次元(3D)、2次元(2D)、または1次元(1D)オブジェクトであってもよい。例えば、仮想オブジェクトは、3Dコーヒーマグカップであってもよい(物理的コーヒーメーカーのための仮想制御を表してもよい)。仮想オブジェクトはまた、クロックの2Dグラフィカル表現であってもよく、これは、現在の時間をユーザに表示する。いくつかの実装では、1つ以上の仮想オブジェクトは、別の仮想オブジェクト内に(またはそれと関連付けられて)表示されてもよい。例えば、仮想コーヒーマグカップは、ユーザインターフェース平面の内側に示されてもよいが、仮想コーヒーマグカップは、3Dであるように現れる一方、ユーザインターフェース平面は、2Dであるように現れてもよい。
【0088】
いくつかの実施形態では、仮想オブジェクトは、物理的オブジェクトと関連付けられてもよい。例えば、図12Bに示されるように、仮想書籍1220が、テーブル1242の上にあるように現れてもよい。ユーザは、物理的書籍がテーブル1242上にあるかのように、仮想書籍1220と相互作用することができる(書籍を読み、そのページを捲る等)。別の実施例として、仮想ワードローブアプリケーションが、ユーザのFOR内のミラーと関連付けられてもよい。ユーザが、ミラーの近傍に居るとき、ユーザは、仮想ワードローブアプリケーションと相互作用可能であってもよく、これは、ユーザが、ARDを使用して、異なる洋服の外見をシミュレートすることを可能にする。
【0089】
ユーザのFOR内のオブジェクトは、図9を参照して説明されるように、世界モデルの一部であることができる。オブジェクトと関連付けられたデータ(例えば、場所、意味論情報、性質等)は、例えば、アレイ、リスト、ツリー、ハッシュ、グラフ等の種々のデータ構造内に記憶されることができる。各記憶されるオブジェクトのインデックスは、適用可能である場合、例えば、オブジェクトの場所によって決定されてもよい。例えば、データ構造は、基準位置からのオブジェクトの距離等の単一座標によって、オブジェクトをインデックス化してもよい(例えば、基準位置の左(または右)までの距離、基準位置の上部(または底部)からの距離、または基準位置からの深度)。ARDが、仮想オブジェクトをユーザに対して異なる深度平面に表示可能なライトフィールドディスプレイを備える、状況では、仮想オブジェクトは、異なる固定された深度平面に位置する複数のアレイに編成されることができる。いくつかの実装では、環境内のオブジェクトは、ベクトル形態で表されてもよく、これは、仮想オブジェクトの位置および移動を計算するために使用されることができる。例えば、オブジェクトは、原点と、重力の方向における下方ベクトルと、オブジェクトの面法線の方向における前方ベクトルとを有してもよい。例えば、ディスプレイ(例えば、仮想TV)の面法線は、表示される画像が視認され得る方向を示し得る(ディスプレイの背面が見られ得る方向ではなく)。ARシステムは、2つのベクトルの成分間の差異を計算し、それによって、2つのベクトルと関連付けられたオブジェクト間の空間関係を決定してもよい。ARシステムはまた、本差異を使用して、あるオブジェクトを他のオブジェクトの上部(または内側)に存在させるために必要な移動の量を計算してもよい。
(仮想オブジェクトを移動させる実施例)
【0090】
ユーザは、ユーザのFOR内のオブジェクトのサブセットと相互作用することができる。オブジェクトの本サブセットは、時として、相互作用可能オブジェクトと称され得る。ユーザは、例えば、相互作用可能オブジェクトを選択または移動させる、相互作用可能オブジェクトと関連付けられたメニューを作動させる、相互作用可能オブジェクトを使用して実施されるべき動作を選択すること等、ユーザインターフェース動作を実施することによって、相互作用可能オブジェクトと相互作用することができる。AR/VR/MR世界において明白であるように、仮想オブジェクトの移動は、仮想オブジェクトが、コンピュータ生成された画像であって、物理的オブジェクトではないため、仮想オブジェクトの実際の物理的移動を指すわけではない。
【0091】
ユーザは、単独で、または組み合わせて、頭部姿勢、眼姿勢、身体姿勢、音声コマンド、またはユーザ入力デバイス上の手ジェスチャを使用して、種々のユーザインタフェース動作を実施してもよい。例えば、ユーザは、手ジェスチャを使用することによって、相互作用可能オブジェクトと相互作用し、例えば、単独で、または組み合わせて、マウス上のクリック、タッチパッド上のタップ、タッチスクリーン上のスワイプ、容量ボタン上にかざすまたはタッチ、キーボードまたはゲームコントローラ(例えば、5方向d-パッド)上のキーの押下、ジョイスティック、ワンド、またはトーテムによるオブジェクトに向かってのポインティング、遠隔制御上のボタンの押下、またはユーザ入力デバイスとの他の相互作用等、ユーザ入力デバイス(例えば、図4におけるユーザ入力デバイス466参照)を作動させることによって、相互作用可能オブジェクトと相互作用してもよい。ユーザはまた、例えば、ある時間周期にわたって、オブジェクトを注視またはポインティングする、頭部を傾ける、オブジェクトに向かって手を振る等、頭部、眼、または身体姿勢を使用して、相互作用可能オブジェクトと相互作用してもよい。
【0092】
いくつかの実装では、ARシステムは、標的オブジェクトの位置を示す、焦点インジケータ(図14A-14Dおよび図15A-15Hに示される焦点インジケータ1450等)(例えば、図14Aにおける焦点インジケータ参照)を提供してもよい。焦点インジケータはまた、ユーザ入力デバイスの現在の位置またはユーザの姿勢を示すために使用されてもよい(例えば、図15Dにおける焦点インジケータ参照)。位置のインジケーションを提供することに加えて、またはその代替として、焦点インジケータはまた、標的オブジェクト、ユーザ入力デバイスの配向、またはユーザの姿勢のインジケーションを提供することができる。例えば、焦点インジケータは、後光、色、知覚されるサイズまたは深度の変化(例えば、標的オブジェクトを選択されたとき、より近くおよび/またはより大きく現れさせる)、カーソルのグラフィカル表現(レチクル等)、または他の聴覚的、触覚的、または視覚的効果を備えることができ、これは、ユーザの注意を引き付ける。焦点インジケータは、1D、2D、または3D画像として現れることができ、これは、静止フレーム画像または動画を含んでもよい。
【0093】
ARシステムによって焦点インジケータを提示する実施例として、ユーザが、ブランク壁を凝視しているとき、ARシステムは、仮想錐体または光線を壁上に投影し、ユーザの現在の視線方向を示してもよい。別の実施例として、ユーザは、ユーザ入力デバイスを作動させ、その環境内のオブジェクトと相互作用することを所望することを示してもよい。ARシステムは、ユーザがオブジェクトをより容易に知覚し得るように、焦点インジケータをそのオブジェクトに割り当ててもよい。ユーザが、その姿勢を変化させる、またはユーザ入力デバイスを作動させるにつれて、ARシステムは、焦点インジケータを1つの場所から別の場所に移してもよい。
(仮想オブジェクトをスナップおよび配向する実施例)
【0094】
本明細書に説明されるように、ユーザは、仮想オブジェクトを複数の方向に移動および回転させ得るため、ユーザは、時として、仮想オブジェクトを精密に位置および配向することが困難であると見出し得る。ユーザ疲労を低減させ、ユーザが相互作用する、改良されたARデバイス(ARD)を提供するために、ARDは、環境内の行先オブジェクトに対して仮想オブジェクトを自動的に再位置付けすることができる。例えば、ARDは、仮想オブジェクトが仮想または物理的オブジェクトから閾値距離内にあるとき、仮想オブジェクトを環境内の別の仮想または物理的オブジェクトに自動的に結び付ける(「スナップ」とも称される)ことができる。仮想オブジェクトを行先オブジェクトにスナップすることに加え、またはその代替として、ARDは、仮想オブジェクトが行先オブジェクトに近接するとき、自動的に、仮想オブジェクトの位置または配向を変化させることができる。例えば、ARDは、仮想オブジェクトの法線がユーザに面するように、仮想オブジェクトを回転させることができる。別の実施例として、ARDは、仮想オブジェクトが物理的書籍の一部であるように現れ得るように、仮想画像の境界と物理的書籍のものを整合させることができる。
【0095】
ARシステムは、仮想オブジェクトまたは標的オブジェクトのアフォーダンスに基づいて、仮想オブジェクトを適切な位置または配向に再位置付けすることができる。アフォーダンスは、オブジェクトとオブジェクトの環境との間の関係を含み、これは、オブジェクトと関連付けられたアクションまたは使用のための機会を与える。アフォーダンスは、例えば、仮想オブジェクトまたは行先オブジェクトの機能、配向、タイプ、場所、形状、またはサイズに基づいて決定されてもよい。アフォーダンスはまた、仮想オブジェクトまたは行先オブジェクトが位置する、環境に基づいてもよい。仮想オブジェクトのアフォーダンスは、仮想オブジェクトの一部としてプログラムされ、遠隔データリポジトリ280内に記憶されてもよい。例えば、仮想オブジェクトは、仮想オブジェクトの法線を示す、ベクトルを含むようにプログラムされてもよい。
【0096】
例えば、仮想ディスプレイ画面(例えば、仮想TV)のアフォーダンスは、ディスプレイ画面が画面に対する法線によって示される方向から視認され得るというものである。垂直壁のアフォーダンスは、オブジェクトがその面法線が壁に対する法線と平行な状態で壁上に設置され得る(例えば、壁上に「吊架」される)というものである。ユーザは、ARシステムを使用して、仮想ディスプレイを壁に近接するように移動させることができ、壁に十分に近接するとき、ARシステムは、さらなるユーザ入力を伴わずに、仮想ディスプレイをディスプレイ法線が壁法線と平行な状態で自動的に壁上にスナップさせることができる。仮想ディスプレイおよび壁の付加的アフォーダンスは、それぞれ、上部または底部を有するというものであり得る。仮想ディスプレイを壁上にスナップすると、ARシステムは、仮想ディスプレイの底部が、壁の底部に向かって配向され(またはディスプレイの上部が、壁の上部に向かって配向され)、それによって、仮想ディスプレイが上下逆の画像を提示しないことを確実にするように、仮想ディスプレイを自動的に配向することができる。
【0097】
いくつかの状況では、仮想オブジェクトを再位置付けするために、ARDはまた、仮想オブジェクトの他の特性を変化させることができる。例えば、仮想画像のサイズまたは形状は、物理的書籍と同一ではない場合がある。その結果、ARDは、仮想画像のサイズまたは形状を変化させ、物理的書籍のものに合致させ、仮想画像の境界を物理的書籍のものと整合させることができる。ARDは、(加えて、または代替として)他の近傍の仮想オブジェクトを再位置付けし、再位置付けされる仮想オブジェクトのための十分な空間を提供してもよい。
【0098】
事実上、ARシステムは、物理的および仮想オブジェクトのアフォーダンスを尊重し、少なくとも部分的に、その個別のアフォーダンスに基づいて、仮想オブジェクトを他の物理的または仮想オブジェクトに対して位置付ける、または配向する。これらの特徴に関するさらなる詳細は、以下に説明される。
(仮想オブジェクトを物理的オブジェクトに自動的に結び付ける実施例)
【0099】
図12Aおよび12Bは、仮想オブジェクトをテーブルに結び付ける実施例を図示する。図12Aに示されるように、仮想書籍1220は、最初、部屋1200a内のテーブル1242の上方に浮遊している。ユーザは、書籍1220を初期位置からテーブルの上方の位置に前もって移動させていてもよい(図12Aに示されるように)。ユーザは、ユーザ入力デバイスを作動させることによって、仮想書籍1220をテーブル1242上に設置するインジケーションを提供することができる。例えば、ユーザは、そのトーテムをクリックし、そのトーテムをテーブル1242にポインティングし、仮想書籍1220がテーブル1242上に設置される必要があることを示すことによって、仮想書籍1220を選択することができる。ARシステムは、ユーザが書籍をテーブル1220にドラッグすることを要求することなく、仮想書籍1220をテーブル1242に移動させることができる。別の実施例として、ユーザは、書籍が設置されるべきテーブル上の行先位置に眼を向けてもよく、ARシステムは、頭部姿勢または眼視線に基づいて、行先位置を決定することができ、ARシステムは、IMUを使用して、頭部姿勢に関するデータを入手する、または眼追跡カメラを使用して、ユーザの視線方向を決定することができる。ARシステムは、ユーザがトーテムを作動させると、仮想書籍1220をテーブル1242上の行先位置に自動的に設置することができる。いくつかの実装では、ARシステムが、仮想オブジェクトを標的オブジェクト上に引動させるように作用する引力をシミュレートし得るため、ユーザは、標的オブジェクトが移動される、テーブル1242または壁1210等の行先オブジェクトを示す必要がない。例えば、ユーザが、仮想書籍1220を選択すると、ARシステムは、仮想書籍1220に関する重力の影響をシミュレートすることができ、仮想書籍1220は、下向き方向1232に移動する。ARシステムは、下向き移動(矢印1232によって示されるように)における仮想書籍1220の経路上にある最初のオブジェクトであるため、テーブル1242を行先オブジェクトとして自動的に識別することができる。故に、仮想書籍は、物理的書籍であるかのように、テーブル1242上に降下されるように現れることができる。
【0100】
ARシステムは、仮想書籍、環境(例えば、部屋1200a)、または行先オブジェクトのアフォーダンスに基づいて、仮想書籍1220の再位置付けのためのパラメータを決定し、パラメータの値を計算することができる。移動のいくつかの例示的パラメータは、移動の量(例えば、進行した距離または軌道)、移動の速度、移動の加速、または他の物理学パラメータを含むことができる。
【0101】
ARシステムは、仮想書籍1220の位置およびテーブル1242の位置に基づいて、仮想書籍1220に関する移動の量を計算することができる。例えば、ARシステムは、ベクトルを部屋内の物理的オブジェクトおよび仮想オブジェクトに結び付けてもよい。ベクトルは、物理的および仮想オブジェクトの場所および方向情報を含んでもよい。仮想書籍1220に関するベクトルは、重力の方向(例えば、方向1232)に成分を有し得る。同様に、テーブル1242の表面に関するベクトルもまた、重力の方向にその現在の場所を示す成分を有し得る。ARシステムは、テーブル1242の表面の位置と重力の方向における仮想書籍1220の位置との間の差異を取得することができる。ARシステムは、本差異を使用して、仮想書籍1220が下向きに移動されるべき距離を決定することができる。ベクトルはまた、重力のサイズに関する情報を含むことができる。重力の大きさ(例えば、重力加速)は、ユーザの物理的または仮想環境に基づいて変化し得る。例えば、ユーザが、自宅に居るとき、重力は、地球の値9.8m/s(1「g」)に設定され得る。しかしながら、ユーザは、ARシステムを使用してゲームをプレーし得、これは、仮想環境をゲーム内に提示することができる。実施例として、仮想環境が、部屋である場合、重力加速の大きさは、1/6「g」であってもよく、仮想環境が木星の場合、重力加速の大きさは、2.5「g」であってもよい。
【0102】
ARシステムを用いて改良されたユーザ体験を提供するために、ARシステムは、仮想書籍1220が物理的オブジェクトであるかのように、種々の物理学の法則を使用して、図12Aから12Bの仮想書籍1220の移動をシミュレートすることができる。例えば、仮想書籍1220の下向き移動(矢印1232によって示されるように)は、自由落下運動に基づくことができる。自由落下運動は、ユーザの環境内の他の力(空気抵抗等)と組み合わせられ、現実的ユーザ体験を提供することができる。別の実施例として、部屋1200aは、開放ウィンドウを有してもよい。突風が、部屋1200aの中に吹き込むと、ARシステムは、仮想書籍1220のページを自動的に捲ることによって、風の影響をシミュレートすることができる。
【0103】
図12Aおよび12Bにおける本実施例を継続すると、テーブルのアフォーダンスは、オブジェクトをその表面上に支持し得、したがって、仮想書籍1220が、テーブル1242上に落下するというものである。したがって、重力の影響をシミュレートするとき、ARシステムは、ARシステムが、オブジェクトがテーブルを通して通過しないというテーブルのアフォーダンスを尊重するため、仮想書籍1220を床1230上に表示しない。テーブル1242は、仮想書籍1242が物理的書籍であるかのように、仮想書籍1220が重力の方向に移動し続けないように阻止するであろう。
【0104】
いくつかの状況では、テーブル1242の一部のみが、仮想書籍1220の下向き移動の経路上にある。その結果、仮想書籍1220の一部は、テーブル1242の表面を越えて延在し得る。ARシステムは、仮想書籍1220の重心がテーブル1242の表面上にあるかどうかを決定することができる。仮想書籍1220の重心が、テーブル1242の表面上に静置する場合、ARシステムは、仮想書籍1220をテーブル1242上に表示することができる。仮想書籍1220の重心が、テーブル1242の表面外にある場合、ARシステムは、仮想書籍1220が、テーブル1242上に留まらないであろうことを決定することができ、代わりに、仮想書籍1220を床上に表示することができる。
【0105】
別の実施例として、仮想オブジェクトは、仮想テニスボールであってもよく、そのアフォーダンスは、硬質表面から跳ね返ることを含む。したがって、仮想テニスボールが、テーブル1242に衝打すると、ARシステムは、仮想テニスボールが、テーブル1242から跳ね返り、床1230上に着地することを示すことができる。
【0106】
仮想オブジェクト(例えば、書籍)およびテーブルの付加的アフォーダンスは、オブジェクトに対する法線がテーブルに対する法線と平行であるべきである(例えば、仮想書籍は、テーブル上で平坦である)というものである。ARシステムは、図12Bに示されるように、テーブル1242上で平坦であるようにユーザに現れるように、仮想書籍1220を自動的に適切に配向することができる。
【0107】
仮想オブジェクトを重力の方向に移動させることに加え、ARシステムはまた、仮想オブジェクトを他の方向に移動させることができる。例えば、ユーザは、メモを壁に移動させることを所望し得る。ユーザは、壁1210の方向にポインティングすることができる(例えば、手またはトーテムを用いて)。ユーザによって示される方向に基づいて、ARシステムは、外向きに面した結像システムおよび/または世界モデルを使用して、壁1210の表面を識別し、メモを壁に自動的に「飛行」させることができる(例えば、図13A-13Dに示される例示的場面1300a、1300b、1300c、および1300d参照)。他の実装では、壁上のオブジェクトは、それらがメモを誘引し得るというアフォーダンスを有し得る。例えば、壁上のオブジェクトは、メモが典型的に結び付けられる、表面を表し得る(例えば、磁気メモが結び付けられ得る磁気メモボードまたはメモがピン留めされ得るコルクメモボード)。ARシステムは、壁オブジェクトが、「粘着性」アフォーダンスを有し(例えば、磁気またはコルクメモボード)、仮想メモが、対応する粘着性アフォーダンスを有する(例えば、メモは、磁気またはピン留め可能)ことを識別することができる。ARシステムは、仮想メモを壁オブジェクトに自動的に結び付けることができる。
【0108】
図7を参照して説明されるように、意味論情報が、物理的オブジェクト、仮想オブジェクト、物理的環境、および仮想環境に結び付けられることができる。意味論情報は、アフォーダンスを含むことができる。例えば、ARシステムは、例えば、以下の非排他的例証的属性、すなわち、質量、密度、直径、硬度(または軟度)、弾性、粘着性、電磁属性(例えば、電荷、伝導性、磁気属性)、位相(例えば、固体、液体、または気体)等、物理的属性を仮想オブジェクトに割り当てることができる。ARシステムはまた、重力、空気抵抗等、物理的属性を仮想環境に割り当てることができる。割り当てられる属性の値は、種々の物理学の法則を使用して、仮想オブジェクトとの相互作用をシミュレートするために使用されることができる。例えば、仮想オブジェクトの移動は、仮想オブジェクトに付与される力に基づいてもよい。図12Aおよび12Bを参照すると、仮想書籍1220の移動は、部屋1200aの重力および空気抵抗および仮想書籍1220の質量を使用して計算される力に基づいて、決定されてもよい。
(仮想コピーおよびペーストの実施例)
【0109】
いくつかの実施形態では、仮想オブジェクトを標的行先オブジェクトに再位置付けするのではなく、ARシステムは、仮想オブジェクトを複製し、複製された仮想オブジェクトを行先オブジェクトまたは環境内の場所に移動させることができる。一実施例として、ARシステムは、それによってユーザが1つ以上のアイテムを仮想メニューから選択し得る(例えば、トーテムまたは頭部もしくは眼姿勢を使用して)、仮想メニューをユーザに提示することができる。ARシステムは、選択されたアイテムおよびユーザの環境内のオブジェクトのアフォーダンスに基づいて、仮想メニューから選択されたアイテムを適切な場所に自動的に設置することができる。例えば、仮想メニューは、仮想TV、仮想オーディオプレーヤ、仮想ゲーム等を含む、ユーザにアイテムを提示してもよい。ユーザは、仮想TVを選択してもよい。ARシステムは、仮想TVをメニューからクリップボードの中にコピーすることができる。ユーザは、環境を見渡し、ユーザが仮想TVがARシステムによって設置されることを所望する、標的場所を見出すことができる。ユーザが、標的場所を見出すと、ユーザは、ユーザ入力デバイス(例えば、トーテム)を作動させ、標的場所の選択を確認してもよく、ARシステムは、仮想TVを所望の場所に自動的に表示することができる。ARシステムは、TVおよび標的場所のアフォーダンスに基づいて、仮想TVを表示することができる。例えば、所望の場所が、垂直壁上にある場合、ARシステムは、壁に対して平坦に吊架しているかのように、仮想TVを表示することができる。別の実施例として、標的場所が、水平テーブル上にある場合、ARシステムは、テーブル上に平坦にあるかのように、仮想TVを表示することができる。これらの実施例の両方において、ARシステムは、仮想TVの法線が、標的場所に対する法線、すなわち、壁法線またはテーブル法線と整合されるように、仮想TV(TVが視認され得る方向を示す法線を有する)を配向する。
【0110】
いくつかの状況では、仮想オブジェクトは、ユーザによって選択された標的場所に設置されることが不可能であり得る。例えば、ユーザは、仮想メモを設置するために、テーブル表面を選択してもよい。しかしながら、テーブル表面は、すでに他の文書によって被覆されている場合があり、したがって、仮想メモは、テーブル表面上に設置されることができない。ARシステムは、例えば、反発ばね力等の反力をシミュレートすることができ、これは、仮想メモがテーブル表面上に設置されないように防止するであろう。
【0111】
故に、ARシステムのそのような実施形態は、ARシステムが、仮想オブジェクトならびにユーザの環境内の他のオブジェクトのアフォーダンスについて把握しているため、最小限のユーザ相互作用を伴って、仮想オブジェクトをコピーし、それを所望の場所にペーストすることができる。ARシステムは、これらのアフォーダンスを利用して、仮想オブジェクトをユーザの環境内のその自然位置および/または配向に設置することができる。(仮想オブジェクトを自動的に枢動させる実施例)
【0112】
図13A-13Dは、仮想オブジェクト1320が壁1210に近接するときの仮想オブジェクト1320の位置および配向を自動的に調節することを示す。仮想オブジェクト1320は、4つの角1326、1328、1322、および1324を有する。いったんARシステムが、仮想オブジェクト1320が壁1210に触れている(例えば、角1322が、図13Bに示されるように、壁に触れている)ことを決定すると、ARシステムは、仮想オブジェクト1320が、壁1210の配向と整合されるように現れる、例えば、オブジェクト法線1355が、図13Dに示されるように、壁法線1350と平行になるように、仮想オブジェクト1320を再配向することができる。仮想オブジェクト1320を再配向するための移動は、3D空間内の複数の軸に沿ってもよい。例えば、図13Bおよび13Cに示されるように、ARシステムは、仮想オブジェクト1320を1330aの方向に枢動させることができ、その結果、角1324はまた、図13Cに示されるように、壁1210に触れる。仮想オブジェクト1320と壁1210をさらに整合させるために、ARシステムは、仮想オブジェクト1320を図13Cに示される1330bの方向に枢動することができる。故に、仮想オブジェクト1320の上角1326および1328もまた、図13Dに示されるように、壁に触れる。ある場合には、仮想オブジェクト1320はまた、壁1210上のその自然配向が水平に吊架することである(例えば、仮想絵画)というアフォーダンスを有し得る。ARシステムは、本アフォーダンスを使用して、仮想オブジェクト1320を壁1210上に適切に配向してもよい(例えば、仮想絵画が、ある角度においてではなく、壁から適切に吊架するように現れる)。
【0113】
ARシステムは、仮想オブジェクト1320の面法線1355を、法線1350と逆平行ではなく、壁1210の面法線1350と平行にすることによって、仮想オブジェクト1320を再配向することができる。例えば、仮想TV画面の片側のみが、ビデオを表示するように構成されてもよい、または仮想絵画の片側のみが、絵画を表示するように構成されてもよい。故に、ARシステムは、コンテンツを伴う側がユーザに面する(壁に面する代わりに)ように、仮想オブジェクトを反転させる必要があり得る。
(仮想オブジェクトが別のオブジェクトの閾値距離以内にあるときのスナップおよび再配向の実施例)
【0114】
ユーザは、例えば、ユーザ入力デバイス466を使用して、仮想オブジェクトをドラッグすることによって、仮想オブジェクトを別の場所に移動させることができる。仮想オブジェクトが、行先オブジェクトに近接するとき、ARシステムは、ユーザが、仮想オブジェクトと行先オブジェクトを整合させるために微調整を行う必要がないように、仮想オブジェクトを自動的にスナップおよび配向してもよい。
【0115】
図14A-14Dでは、ARDのユーザは、仮想オブジェクトをテーブルから壁に移動させる。仮想オブジェクト1430は、仮想TV画面であってもよい。図14Aでは、部屋1200b内の仮想TV画面1430は、最初、テーブル1242上にあって(テーブル1242上の破線によって示されるように)、壁1210に移動されつつある。ユーザは、仮想画面1430を選択し、仮想画面1430を方向1440aに(例えば、壁1210上の所望の行先位置に向かって)移動させることができる。ARシステムは、可視焦点インジケータ1450を仮想画面1430上に示し、仮想画面1430の現在の位置を示し、ユーザが画面1430を選択したことを示してもよい。
【0116】
ARシステムは、ユーザが仮想画面1430を移動させるにつれて、仮想画面1430の位置を監視することができる。ARシステムは、仮想画面1430と壁1210との間の距離が閾値距離未満離れているとき、仮想画面1430を自動的にスナップおよび配向することを開始することができる。ARシステムは、ARシステムが、図13A-13Dを参照して説明されるように、仮想画面の少なくとも一部が壁1210に触れると、仮想画面1430を自動的に結び付け、配向することを開始し得るように、閾値距離を設定してもよい。いくつかの実装では、閾値距離は、ARシステムが、仮想画面1430の任意の部分が壁に触れる前に、仮想画面1430を壁1210に自動的に結び付けるおよび/または配向することを開始するように、十分に大きくてもよい。これらの実装では、ARシステムは、壁と仮想オブジェクトとの間の磁気の影響をシミュレートしてもよい。例えば、仮想画面1430が、十分に近接する(閾値距離より小さい等)とき、オブジェクトは、ユーザからのさらなる労力を伴わずに、壁に自動的に誘引される。
【0117】
仮想画面1430と壁1210との間の距離は、種々の方法において測定されてもよい。例えば、仮想画面1430の重力の中心と壁1210の表面との間の変位に基づいて、計算されてもよい。いくつかの実施形態では、オブジェクトが、オブジェクトの位置を説明するベクトルと関連付けられるとき、ARシステムは、仮想画面1430に関するベクトルと、壁1210に関するベクトルとを使用して、ユークリッド距離を計算することができる。距離はまた、ベクトルの成分に基づいて、計算されてもよい。例えば、ARDは、水平軸におけるベクトルと仮想画面1430との間の位置差異を距離として計算してもよい。
【0118】
閾値距離は、仮想オブジェクトに関連するアフォーダンスに依存することができる。例えば、仮想画面1430は、サイズ(例えば、水平サイズ、垂直サイズ、厚さ、対角線サイズ等)と関連付けられ、閾値距離は、サイズのある割合であってもよい。実施例として、閾値距離が、画面の垂直サイズとほぼ等しい場合、ARシステムは、画面が壁から垂直サイズ距離以内になると、画面をその行先位置および配向に向かって配向することを開始してもよい。別の実施例として、閾値距離が、画面の垂直サイズより小さい場合、ARシステムは、仮想画面1430が壁にはるかに近づくまで、仮想画面1430を配向することを開始しなくてもよい。種々の実装では、閾値距離は、ユーザによって設定されることができる、またはデフォルト値(例えば、オブジェクトのサイズ等)に設定されることができる。閾値距離は、ARシステムとのユーザの体験に基づいて、変化してもよい。例えば、ユーザが、小閾値距離が、仮想オブジェクトの高速再配向につながり、注意を逸らすことを見出す場合、ユーザは、再配向がより大きな距離にわたってより徐々に生じるように、閾値距離をより大きくなるように再設定してもよい。
【0119】
仮想画面1430が、壁と平行ではないとき、ARシステムは、距離を計算するとき、壁に最も近い(図14Bに示される仮想画面1430の底部部分等)仮想画面1430の部分を終点として使用してもよい。本方法を使用して、距離が十分に小さくまたはゼロになると、ARシステムは、仮想画面1430の少なくとも一部が壁1210に触れたことを検出することができる。しかしながら、距離が、壁1210と仮想画面1430の重力の中心との間の変位に基づいて計算される場合、距離は、ARシステムが衝突を検出するとき、0を上回り得る(図14B参照)。これは、仮想画面1430が壁1210と平行ではないとき、仮想画面1430の重力の中心が壁1210に到達する前に、仮想画面1430の一部が壁1210に到達し得るためである。
【0120】
種々の実装では、仮想オブジェクトは、仮想オブジェクトの1つのみの表面が、コンテンツ(例えば、TV画面または絵画)を表示する、またはユーザに可視であるように設計されるテクスチャを有するというアフォーダンスを有し得る。例えば、仮想TVオブジェクトに関して、オブジェクトの1つのみの表面が、画面として作用し、コンテンツをユーザに表示し得る。その結果、ARシステムは、コンテンツを伴う表面が、壁の代わりに、ユーザに面するように、仮想オブジェクトを配向してもよい。例えば、図14A、14B、および14Cを参照すると、仮想画面1430の面法線は、最初、テーブルの正面に立っているとき、ユーザに仮想画面1430のコンテンツが見え得るように、天井(テーブルの代わりに)に面し得る。しかしながら、ユーザが、単に、仮想画面1430を持ち上げ、それを壁1210に結び付ける場合、面法線は、ユーザの代わりに、壁に面し得る。その結果、ユーザには、コンテンツが見えず、仮想画面1430の背面表面が見え得る。仮想画面1430が壁1210に移動されるとき、ユーザが、依然として、コンテンツを視認し得ることを確実にするために、ARシステムは、コンテンツを伴う表面がユーザ(壁ではなく)に面し得るように、仮想画面1430を軸の周囲で180度回転させることができる。本回転を用いることで、図14Bでは仮想画面1430の底部側であった側1434が、図14Cでは上部側となる一方、図14Bでは仮想画面1430の上部側であった側1432は、図14Cでは底部側となる。
【0121】
図14Cを参照して説明されるように、仮想オブジェクトを軸に沿って反転されることに加え、またはその代替として、ARシステムはまた、仮想オブジェクトが行先場所に移動される前と同一配向を留保するように、仮想オブジェクトを他の軸の周囲で回転させてもよい。図14Aおよび14Dを参照すると、仮想TV画面1430(およびそのコンテンツ)は、最初、テーブル1242上で縦向き配向にあり得る。しかしながら、仮想TV画面1430が、図14Bおよび14Cに示されるように、壁1210に移動された後、仮想TV画面は、横向き配向に配向される。仮想画面1430がテーブル1242上にあったときと同一ユーザ体験を留保するために、ARシステムは、仮想TV画面1430が縦向き配向(図14Dに示されるように)に現れるように、仮想TV画面1430を90度回転させてもよい。本回転を用いることで、図14Cでは画面1430の上部として示されていた側1434は、図14Dでは画面1430の左側となる一方、図14Cでは画面1430の底部側として示されていた側1432は、図14Dでは画面1430の右側になる。
【0122】
図15A、15B、および15Cは、仮想オブジェクトを結び付け、配向する実施例の側面図を図示する。本実施例では、仮想オブジェクトは、例証目的のために、平面オブジェクト(例えば、仮想画面)であるように描写されるが、仮想オブジェクトは、平面形状に限定されない。図14Aと同様に、図15Aにおける仮想画面1430は、壁1210に向かって1440aの方向に移動する。ARシステムは、焦点インジケータ1450を表示し、ユーザと関連付けられた位置(例えば、ユーザの視線方向またはユーザのユーザ入力デバイス466の位置等)を示すことができる。本実施例では、焦点インジケータ1450は、仮想画面1430上にあって、これは、仮想画面1430の選択を示すことができる。仮想画面1430は、壁1210と角度1552にある(図15Bに示される)。仮想画面1430が、図15Bに示されるように、壁1210の表面1510aに触れると、ARシステムは、仮想画面1430を角度方向1440bに回転させることができる。その結果、図15Cに示されるように、仮想画面1430と壁1210の表面1510aとの間に形成される角度は、角度1552から角度1554に減少され、図15Dでは、角度は、画面1430が壁1210に対して平坦であるため、ゼロまで低減されている。本実施例では、画面1430は、ユーザが若干壁1210から離れるように移動した(焦点インジケータ1450はもはや仮想オブジェクト1430上にない)後でも、壁上に留まる(壁の「粘着性」に起因して)。
【0123】
本明細書に説明される例示的図は、仮想オブジェクトの再配向が、仮想オブジェクトが壁に触れた後に生じることを示すが、ここでの実施例は、例証目的のためのものであって、限定であることを意図するものではないことに留意されたい。再配向は、仮想オブジェクトが物理的オブジェクトに触れる前にも生じることができる。例えば、ARシステムは、壁および仮想オブジェクトの面法線を計算することができ、仮想オブジェクトが壁に向かって移動する間、仮想オブジェクトを配向することができる。加えて、本明細書に提供される実施例は、仮想オブジェクトの底部部分が最初に壁に触れることを示すが、オブジェクトの任意の他の部分もまた、最初に壁に触れ得ることに留意されたい。例えば、仮想オブジェクトが、壁と平行であるとき、仮想オブジェクト全体が、壁と同時に衝突し得る。別の実施例として、オブジェクトが、3Dカップであるとき、カップの持ち手が、カップの任意の他の部分の前に壁と衝突し得る。
(仮想オブジェクトと物理的オブジェクトとの間のシミュレートされた引力の影響)
【0124】
本明細書に説明されるように、ARシステムは、仮想オブジェクトと壁またはテーブル等の物理的または仮想オブジェクトとの間の引力の影響をシミュレートすることができる(例えば、図12A-12Bにおける重力または図13A-13Dまたは14A-14Dに示されるような磁力もしくは「粘着性」)。仮想オブジェクトと物理的オブジェクトとの間の距離が、閾値未満となるにつれて、ARシステムは、2つのオブジェクトが引力(例えば、磁石の反対極性の引力または重力の下向きの引力)に起因してともに誘引されるかのように、仮想オブジェクトを物理的オブジェクトに自動的に結び付けることができる。
【0125】
ある場合には、ARシステムは、複数の引力を利用してもよく、これは、物理的オブジェクトの軌道をより正確に表し得る。例えば、図14A-14Bを参照すると、仮想画面1430をテーブル1242から壁1210に移動させることを所望する、ユーザは、仮想画面1430を壁1210上に投げるジェスチャを行なってもよい。ARシステムは、上記に説明されるように、磁気引力を利用して、画面1430を壁1210に結び付けることができる。加えて、ARシステムは、下向き重力を利用し、壁1210に向かって移動するにつれて、画面1430の弧状軌道を表すことができる。ARシステムによる1つ以上の引力の使用は、仮想オブジェクトが物理的オブジェクトの移動とほぼ同様に作用するため、より自然な方法において移動し、ユーザの環境内の他のオブジェクトと相互作用するように仮想オブジェクトを現れさせることができる。これは、有利には、より自然かつ現実的ユーザ体験につながることができる。
【0126】
他の状況では、ユーザは、仮想オブジェクトを仮想オブジェクトが現在結び付けられているオブジェクトから離れるように移動させることを所望し得る。しかしながら、時として、ARシステムは、仮想オブジェクトが壁に結び付けられているとき、仮想オブジェクトを結び付け解除する意図を示すユーザの移動と、仮想オブジェクトとのユーザ相互作用を区別することが不可能である場合がある。実施例として、ユーザが、壁に結び付けられている仮想画面を使用して、ゲームをプレーしている間、ユーザは、そのトーテムを移動させ、友人または敵を見出す、またはそれと相互作用する必要があり得る。本タイプのゲーム移動は、仮想オブジェクトを壁から結び付け解除する移動のタイプと一致し得る。ユーザの移動が好適な閾値を十分に上回る場合のみ、仮想画面を結び付け解除することによって、仮想画面は、ゲームプレーの間、不注意に結び付け解除されないであろう。加えて、ユーザは、通常、長時間にわたって、その姿勢またはユーザ入力デバイスをじっとしたまま保つことができない。その結果、仮想オブジェクトは、ユーザが仮想オブジェクトを結び付け解除することを意図しないとき、ユーザのわずかな移動によって偶発的に結び付け解除され得る。故に、ユーザの移動が好適な閾値を十分に上回る場合のみ、仮想オブジェクトを結び付け解除することによって、ユーザによるわずかな移動または痙攣は、仮想オブジェクトをその意図される場所または配向から不注意に結び付け解除しないであろう。
【0127】
これらの問題を解決し、ARシステムを改良するために、ARシステムは、ユーザの位置の変化が閾値を上回らない限り、ユーザが仮想オブジェクトを他のオブジェクトから直ちに結び付け解除し得ないように、仮想オブジェクトと物理的オブジェクトとの間の引力をシミュレートすることができる。例えば、図15Dに示されるように、画面1430は、壁1210に結び付けられる。ユーザは、焦点インジケータ1450が壁から離れるように移動されるように、そのユーザ入力デバイスを移動させることができる。しかしながら、仮想画面1430は、依然として、画面と壁との間のシミュレートされた引力の影響に起因して、表面1510aに結び付けられ得る。焦点インジケータが、より離れて移動し、画面1430と焦点インジケータ1450との間の閾値距離を超えるにつれて、ARシステムは、仮想画面1430を図15Eに示されるように、壁1210から結び付け解除してもよい。ARシステムによって提供される本相互作用は、不可視仮想ひもが焦点インジケータ1450と画面1430との間に存在するかのように作用する。焦点インジケータ1450と画面1430との間の距離が、仮想ひもの長さを超えると、仮想ひもは、緊張し、画面を壁1210か結び付け解除する。仮想ひもの長さは、閾値距離を表す。
【0128】
閾値距離に加え、またはその代替として、ARシステムはまた、他の要因を使用し、仮想オブジェクトを結び付け解除するかどうかを決定することができる。例えば、ARシステムは、ユーザの移動の加速または速度を測定してもよい。ARシステムは、図2および4を参照して説明されるIMUを使用して、加速および速度を測定してもよい。加速または速度が、閾値を超える場合、ARシステムは、仮想オブジェクトを物理的オブジェクトから結び付け解除してもよい。ある場合には、加速の変化率(「躍度」として知られる)が、測定されることができ、ユーザによって提供される躍度が、躍度閾値を上回る場合、仮想オブジェクトは、結び付け解除される。加速閾値または躍度閾値を利用する、ARシステムの実装は、ユーザがオブジェクトを他のオブジェクトから結び付け解除する様子をより自然に表し得る。例えば、壁上に粘着された物理的オブジェクトを除去するために、ユーザは、物理的オブジェクトの一部を握り、それを壁からグイッと引っ張り得る。仮想世界におけるこのようなグイッと引っ張る表現は、加速および/または躍度閾値を使用してモデル化されることができる。
【0129】
別の実装では、ARシステムは、摩擦または弾性等の他の物理的力をシミュレートしてもよい。例えば、ARシステムは、それらを接続する仮想ゴムバンドが存在するかのように、焦点インジケータ1450と画面1430との間の相互作用をシミュレートしてもよい。焦点インジケータ1450と画面1430との間の距離が、増加するにつれて、仮想ゴムバンドの仮想引張力は、増加し、仮想引張力が壁1210の粘着性を表す力閾値を上回ると、画面1430は、壁1210から結び付け解除される。別の実施例では、仮想オブジェクトが、物理的オブジェクトの水平表面上に現れると、ARシステムは、仮想摩擦が仮想オブジェクトと水平表面との間に存在するかのように、焦点インジケータと仮想オブジェクトとの間の相互作用をシミュレートしてもよい。ユーザは、焦点インジケータを水平表面に沿ってドラッグしてもよい一方、ARシステムは、ユーザによって印加される力が仮想摩擦を克服するために十分であるときのみ、仮想オブジェクトを移動させることを開始してもよい。
【0130】
故に、種々の実装では、ARシステムは、対応する閾値とともに、距離、速度、加速、および/または躍度測定を利用して、仮想オブジェクトを別のオブジェクトから結び付け解除するであるかどうかを決定することができる。同様に、ARシステムは、オブジェクト間の引力(粘着性、重力、または磁力を表す)に関する閾値を利用して、仮想オブジェクトが他のオブジェクトに結び付けられる強度を決定することができる。例えば、別のオブジェクト上に移動不可能に設置されることが意図される、仮想オブジェクトは、ユーザが仮想オブジェクトを結び付け解除することが非常に困難であり得るように、非常に高引力閾値と関連付けられてもよい。物理的オブジェクトの性質がその重量等によって設定される、物理的世界と異なり、仮想世界では、仮想オブジェクトの性質は、変化されることができる。例えば、ユーザが、「移動不可能な」仮想オブジェクトを意図的に移動させることを所望する場合、ユーザは、ARシステムに、その関連付けられた閾値がはるかに低くなるように、仮想オブジェクトの設定を一時的に変化させるように命令してもよい。仮想オブジェクトが、新しい位置に移動後、ユーザは、ARシステムに、再び移動不可能となるように、仮想オブジェクトの閾値を再設定するように命令することができる。
【0131】
仮想オブジェクトが、物理的オブジェクトから結び付け解除されると、仮想オブジェクトの配向は、仮想オブジェクトが物理的オブジェクトに結び付けられるとき、同一のままであることができる。例えば、図15Dでは、仮想画面1430が、壁に結び付けられると、仮想画面1430は、壁の表面1510aと平行である。故に、仮想画面1430が、図15Eにおいて、壁から離れるように移動するにつれて、仮想画面1430は、壁1430と平行のままであり得る。
【0132】
いくつかの実施形態では、仮想オブジェクトが、壁から結び付け解除されると、ARシステムは、仮想オブジェクトの配向を仮想オブジェクトが壁に結び付けられる前のそのオリジナル配向に戻るように変化させてもよい。例えば、図15Fに示されるように、仮想画面1430が、壁1210から結び付け解除されると、ARシステムは、仮想画面1430の配向を図15Aおよび15Bに示されるものと同一配向に戻してもよい。
【0133】
いったん仮想画面1430が、壁1210から結び付け解除されると、ユーザは、オブジェクト1430を移動させ、それを壁(または別のオブジェクト)に再び結び付けることができる。図15Gおよび15Hに示されるように、ユーザが、仮想画面1430を壁1210に戻るように移動させると、仮想オブジェクト1430は、1440cの方向に配向され、壁1210の表面1510bに結び付けられることができる。故に、図15Dに示されるように、ユーザは、オブジェクト1430を壁1210の左側に再び結び付け得る(例えば、図15Dにおける仮想画面1430の位置と図15Hにおけるその位置を比較する)。
【0134】
図14A-14Dおよび15A-15Hにおける実施例は、仮想オブジェクトを壁に自動的に結び付けることを参照して説明されるが、同一技法はまた、仮想オブジェクトをテーブル等の別のオブジェクトに自動的に結び付けることに適用されることができる。例えば、ARシステムは、さらなるユーザ労力を伴わずに、仮想書籍がテーブルに近接するときの下向き重力の影響をシミュレートし、仮想書籍をテーブル上に自動的に配向し、示すことができる。別の実施例として、ユーザは、手ジェスチャを使用して、仮想絵画を床に移動させ、それを床上に落下させることができる(仮想重力を介して)。ユーザの現在の位置は、焦点インジケータによって示されてもよい。ユーザが、絵画を床に移動させるにつれて、焦点インジケータは、ユーザの位置に追従することができる。しかしながら、仮想絵画がユーザの環境内のテーブルに近接するとき、仮想絵画は、テーブルが床の上にあり得るため、テーブルに偶発的に結び付けられ得る。ユーザは、その手、頭部、または眼ジェスチャを用いて、焦点インジケータを床の方向に移動させ続けることができる。焦点インジケータの場所とテーブルとの間の距離が、十分に大きいとき、ARシステムは、仮想絵をテーブルから結び付け解除し、それを焦点インジケータの場所に移動させ得る。ユーザは、次いで、床の近傍まで、仮想絵を移動させ続けることができ、ARシステムは、仮想重力下、それを定位置に落下させ得る。
【0135】
加えて、または代替として、本明細書に説明される技法はまた、仮想オブジェクトを別のオブジェクトの内側に押し込むために使用されることができる。例えば、ユーザは、仮想ボックスを有してもよく、これは、ユーザの写真を含有する。ARシステムが、写真を仮想ボックスの中に入れるインジケーションを受信すると、ARシステムは、自動的に、写真を仮想ボックスの内側に移動させ、写真と仮想ボックスを整合させることができる。(仮想オブジェクトを自動的にスナップおよび配向するための例示的方法)
【0136】
図16は、仮想オブジェクトを結び付け、配向するための例示的方法である。図16に示されるプロセス1600は、図2を参照して説明されるARシステム200によって実施されてもよい。
【0137】
ブロック1610では、ARシステムは、ユーザが相互作用することを所望する、ユーザの環境内の仮想オブジェクトを識別することができる。本仮想オブジェクトはまた、標的仮想オブジェクトと称され得る。ARシステムは、ユーザの姿勢に基づいて、標的仮想オブジェクトを識別することができる。例えば、ARシステムは、ユーザの視線方向と交差すると、仮想オブジェクトを標的仮想オブジェクトとして選択してもよい。ARシステムはまた、ユーザがユーザ入力デバイスを作動させると、標的仮想オブジェクトを識別してもよい。例えば、ユーザが、ユーザ入力デバイスをクリックすると、ARシステムは、ユーザ入力デバイスの現在の場所に基づいて、標的仮想オブジェクトを自動的に指定してもよい。
【0138】
標的仮想オブジェクトは、第1の場所および第1の配向を有してもよい。いくつかの実施形態では、標的仮想オブジェクトの場所および配向は、ベクトル形態において表されてもよい。標的仮想オブジェクトが動き回るにつれて、ベクトル内の値も、適宜、更新され得る。
【0139】
ブロック1620では、ARシステムは、標的仮想オブジェクトを行先オブジェクトに移動させるためのインジケーションを受信することができる。例えば、ユーザは、テーブルにポインティングし、ユーザ入力デバイスを作動させ、標的仮想オブジェクトをテーブルに移動させる意図を示してもよい。別の実施例として、ユーザは、仮想オブジェクトを壁の方向にドラッグし、仮想オブジェクトを壁に設置してもよい。行先オブジェクトは、場所および配向を有することができる。いくつかの実装では、標的仮想オブジェクトのように、行先オブジェクトの場所および配向もまた、ベクトル形態において表されてもよい。
【0140】
ブロック1630では、ARシステムは、標的仮想オブジェクトの場所および行先オブジェクトの場所に基づいて、標的仮想オブジェクトと行先オブジェクトとの間の距離を計算することができる。ARシステムは、計算された距離と閾値距離を比較することができる。距離が、ブロック1640に示されるように、閾値距離未満である場合、ARシステムは、自動的に、標的仮想オブジェクトを配向し、行先オブジェクトに結び付けることができる。
【0141】
いくつかの実装では、ARシステムは、複数の閾値距離(または速度、加速、または躍度)を含んでもよく、各閾値距離は、アクションのタイプと関連付けられる。例えば、ARシステムは、第1の閾値距離を設定してもよく、ARシステムは、標的仮想オブジェクトと行先オブジェクトとの間の距離が、閾値距離未満またはそれと等しい場合、仮想オブジェクトを自動的に回転させることができる。ARシステムはまた、第2の閾値距離を設定してもよく、ARシステムは、距離が、第2の閾値距離未満であるとき、標的仮想オブジェクトを行先オブジェクトに自動的に結び付けることができる。本実施例では、第1の閾値距離が、第2の閾値距離と同一である場合、ARシステムは、閾値距離が満たされると、同時に、標的仮想オブジェクトを結び付け、配向することを開始することができる。第1の閾値距離が、第2の閾値距離を上回る場合、ARシステムは、ARシステムが、標的仮想オブジェクトを行先オブジェクトに自動的に結び付けることを開始する前に、標的仮想オブジェクトを配向することを開始してもよい。他方では、第1の閾値距離が、第2の閾値距離未満である場合、ARシステムは、最初に、標的仮想オブジェクトを行先オブジェクトに結び付け、次いで、標的仮想オブジェクトを配向してもよい(標的仮想オブジェクトの一部がすでに行先オブジェクトに結び付けられているとき等)。別の実施例として、ARシステムは、ユーザ移動が、対応する速度、加速、または躍度閾値を超える場合、仮想オブジェクトを結び付け解除してもよい。
【0142】
ARシステムは、標的仮想オブジェクトを配向するとき、標的仮想オブジェクトを複数の軸に沿って配向することができる。例えば、ARシステムは、仮想オブジェクトの面法線がユーザに面する(行先オブジェクトの表面に面する代わりに)ように、仮想オブジェクトを回転させることができる。ARシステムはまた、仮想オブジェクトが行先オブジェクトと同一配向に現れるように、仮想オブジェクトを配向することができる。ARシステムはさらに、ユーザが仮想オブジェクトのコンテンツを不快な角度から視認しないように、仮想オブジェクトの配向を調節することができる。いくつかの実施形態では、ARシステムは、2つのオブジェクトをともに結び付けるとき、磁力および/または重力の影響をシミュレートしてもよい。例えば、ARシステムは、仮想TV画面が壁に近接するとき、仮想TV画面を壁に誘引する影響を示すことができる。別の実施例として、ARシステムは、ユーザが仮想書籍をテーブル上に置く意図を示すとき、自由落下運動をシミュレートしてもよい。
【0143】
磁力、粘着性、および重力の影響に加え、ARシステムはまた、仮想オブジェクトが物理的オブジェクトであるかのように、他の物理的影響をシミュレートしてもよい。例えば、ARシステムは、質量を仮想オブジェクトに割り当ててもよい。2つの仮想オブジェクトが衝突すると、ARシステムは、2つの仮想オブジェクトが、衝突後、ある距離にわたってともに移動し得るように、モーメンタムの影響をシミュレートしてもよい。
(仮想オブジェクトを結び付け解除するための例示的方法)
【0144】
図17は、仮想オブジェクトをユーザの環境内の別のオブジェクトから結び付け解除するための例示的方法である。図17に示されるプロセス1700は、図2を参照して説明されるARシステムによって実施されてもよい。
【0145】
ブロック1710では、ARシステムは、ユーザの動眼視野(FOR)内の標的仮想オブジェクトを識別することができる。FORは、ユーザによってARシステムを介して知覚されることが可能なユーザの周囲の環境の一部を構成する。標的仮想オブジェクトは、FOR内の別のオブジェクトに結び付けられてもよい。ARシステムは、他のオブジェクトに結び付けられると、第1の位置を標的オブジェクトに割り当ててもよい。
【0146】
ブロック1720では、ARシステムは、標的仮想オブジェクトをユーザのFOR内の第2の位置に移動させるインジケーションを受信することができる。インジケーションは、ユーザの姿勢の変化(その手を移動させる等)、ユーザ入力デバイスの移動(トーテムを移動させる等)、またはユーザ入力デバイス上の手ジェスチャ(タッチパッド上で軌道に沿って移動させる等)であってもよい。
【0147】
ブロック1730では、ARシステムは、移動のインジケーションが標的仮想オブジェクトを他のオブジェクトから結び付け解除するための閾値条件を満たすかどうかを決定することができる。ブロック1742に示されるように、閾値条件が満たされる場合、ARシステムは、仮想オブジェクトを結び付け解除し、それをユーザの位置(例えば、焦点インジケータによって示されるように)に移動させてもよい。閾値条件は、移動の速度/加速および/または位置変化に基づいてもよい。例えば、ユーザが、仮想オブジェクトを壁から結び付け解除することを所望すると、ARシステムは、ユーザがそのトーテムを壁から移動させた距離を計算することができる。ARシステムが、トーテムと壁との間の距離が閾値距離を満たすことを決定する場合、ARシステムは、仮想オブジェクトを結び付け解除してもよい。実施例として、ユーザが、そのトーテムを、閾値速度および/または閾値加速を満たす十分に高速で移動させると、ARシステムはまた、仮想オブジェクトを壁から結び付け解除してもよい。
【0148】
ARシステムが、閾値条件が満たされないことを決定する場合、ARシステムは、ブロック1744に示されるように、仮想オブジェクトから結び付け解除しなくてもよい。いくつかの実施形態では、ARシステムは、ユーザの現在の位置を示す、焦点インジケータを提供してもよい。例えば、閾値条件が満たされないとき、ARシステムは、焦点インジケータをユーザの現在の位置に示しながら、仮想オブジェクトを依然として環境内の他のオブジェクトに結び付けられているように示してもよい。
【0149】
本明細書に説明される実施例は、1つの仮想オブジェクトを移動させることを参照するが、これらの実施例は、限定ではないことに留意されたい。例えば、ARシステムは、本明細書に説明される技法を使用して、自動的に、仮想オブジェクトのグループを配向し、結び付け、環境内の別のオブジェクトから結び付け解除してもよい。
(付加的実施形態)
【0150】
第1の側面では、標的仮想オブジェクトをユーザの3次元(3D)環境内の行先オブジェクトに自動的にスナップするための方法であって、コンピュータハードウェアを備える、拡張現実(AR)システムの制御下で、ARシステムは、ユーザの3D環境内のオブジェクトとのユーザ相互作用を可能にするように構成され、ARシステムは、ユーザ入力デバイスを備え、標的仮想オブジェクトおよびユーザの3D環境内の行先オブジェクトを識別するステップであって、標的仮想オブジェクトは、第1の配向および第1の場所と関連付けられ、行先オブジェクトは、第2の配向および第2の場所と関連付けられる、ステップと、少なくとも部分的に、第1の場所および第2の場所に基づいて、標的仮想オブジェクトと行先オブジェクトとの間の距離を計算するステップと、距離と閾値距離を比較するステップと、距離が閾値距離未満またはそれと等しいことの比較に応答して、標的仮想オブジェクトを行先オブジェクトの表面に自動的に結び付けるステップと、少なくとも部分的に、第1の配向および第2の配向に基づいて、標的仮想オブジェクトを自動的に配向し、標的仮想オブジェクトと行先オブジェクトを整合させるステップとを含む、方法。
【0151】
第2の側面では、標的仮想オブジェクトおよび行先オブジェクトを識別するステップは、頭部姿勢、眼姿勢、身体姿勢、または手ジェスチャのうちの少なくとも1つに基づく、側面1に記載の方法。
【0152】
第3の側面では、行先オブジェクトは、物理的オブジェクトまたは仮想オブジェクトのうちの少なくとも1つを含む、側面1-2のいずれか1項に記載の方法。
【0153】
第4の側面では、行先オブジェクトは、壁またはテーブルを含む、側面3に記載の方法。
【0154】
第5の側面では、第1の配向または第2の配向は、垂直配向または水平配向のうちの少なくとも1つを含む、側面1-4のいずれか1項に記載の方法。
【0155】
第6の側面では、距離を計算するステップは、標的仮想オブジェクトと行先オブジェクトとの間の変位を計算するステップを含む、側面1-5のいずれか1項に記載の方法。
【0156】
第7の側面では、閾値距離は、ゼロである、側面1-6のいずれか1項に記載の方法。
【0157】
第8の側面では、標的仮想オブジェクトを自動的に配向し、標的仮想オブジェクトと行先オブジェクトを整合させるステップは、標的仮想オブジェクトを自動的に配向し、標的仮想オブジェクトの面法線をARシステムに面させるステップ、標的仮想オブジェクトを自動的に配向し、標的仮想オブジェクトの面法線を行先オブジェクトの表面と垂直にさせるステップ、または標的仮想オブジェクトを自動的に配向し、標的仮想オブジェクトの面法線を行先オブジェクトの法線と平行にさせるステップのうちの少なくとも1つを含む、側面1-7のいずれか1項に記載の方法。
【0158】
第9の側面では、焦点インジケータを標的仮想オブジェクトまたは行先オブジェクトのうちの少なくとも1つに割り当てるステップをさらに含む、側面1-8のいずれか1項に記載の方法。
【0159】
第10の側面では、コンピュータハードウェアと、ユーザ入力デバイスとを備える、拡張現実システムであって、側面1-9のいずれか1項に記載の方法を実施するように構成される、拡張現実システム。
【0160】
第11の側面では、標的仮想オブジェクトをユーザの3次元(3D)環境内の行先オブジェクトに自動的にスナップするための方であって、コンピュータハードウェアを備える、拡張現実(AR)システムの制御下で、ARシステムは、ユーザの3D環境内のオブジェクトとのユーザ相互作用を可能にするように構成され、ARシステムは、ユーザ入力デバイスと、ユーザの姿勢を測定するように構成される姿勢センサとを備え、ユーザの3D環境内の標的仮想オブジェクトを識別するステップであって、標的仮想オブジェクトは、第1の場所および第1の配向と関連付けられる、ステップと、姿勢センサを使用して、ユーザから、標的仮想オブジェクトを行先オブジェクトに移動させるインジケーションを受信するステップであって、行先オブジェクトは、第2の場所および第2の配向と関連付けられる、ステップと、少なくとも部分的に、第1の場所および第2の場所に基づいて、標的仮想オブジェクトと行先オブジェクトとの間の軌道を計算し、標的仮想オブジェクトを軌道に沿って行先オブジェクトに向かって移動させるステップと、少なくとも部分的に、標的仮想オブジェクトの現在の場所および第2の場所に基づいて、標的仮想オブジェクトと行先オブジェクトとの間の距離を計算するステップと、距離と閾値距離を比較するステップと、距離が閾値距離未満またはそれと等しいことの比較に応答して、標的仮想オブジェクトを行先オブジェクトに自動的に結び付けるステップと、少なくとも部分的に、第1の配向および第2の配向に基づいて、標的仮想オブジェクトを自動的に配向し、標的仮想オブジェクトと行先オブジェクトを整合させるステップとを含む、方法。
【0161】
第12の側面では、姿勢センサは、外向きに面した結像システム、慣性測定ユニット、または内向きに面した結像システムのうちの少なくとも1つを含む、側面11に記載の方法。
【0162】
第13の側面では、焦点インジケータをユーザの現在の位置に割り当てるステップをさらに含み、ユーザの現在の位置は、少なくとも部分的に、ユーザの姿勢またはユーザ入力デバイスと関連付けられた位置に基づいて決定される、側面12に記載の方法。
【0163】
第14の側面では、姿勢は、頭部姿勢、眼姿勢、または身体姿勢のうちの少なくとも1つを含む、側面13に記載の方法。
【0164】
第15の側面では、ユーザから、標的仮想オブジェクトを行先オブジェクトに移動させるインジケーションを受信するステップは、姿勢センサを使用して、ユーザの姿勢の変化を識別するステップと、少なくとも部分的に、ユーザの姿勢に基づいて、行先オブジェクトを識別するステップと、ユーザから、標的仮想オブジェクトを行先オブジェクトに移動させることの確認を受信するステップとを含む、側面14に記載の方法。
【0165】
第16の側面では、ユーザから、標的仮想オブジェクトを行先オブジェクトに移動させることのインジケーションを受信するステップは、行先オブジェクトのインジケーションをユーザ入力デバイスから受信するステップまたは標的仮想オブジェクトを行先オブジェクトに移動させることの確認をユーザから受信するステップのうちの少なくとも1つを含む、側面13に記載の方法。
【0166】
第17の側面では、確認は、ユーザの姿勢の変化またはユーザ入力デバイス上の手ジェスチャのうちの少なくとも1つを含む、側面15-16のいずれか1項に記載の方法。
【0167】
第18の側面では、コンピュータハードウェアと、ユーザ入力デバイスと、姿勢センサとを備える、拡張現実システムであって、側面11-17に記載のいずれか1項に方法を実施するように構成される、拡張現実システム。
【0168】
第19の側面では、標的仮想オブジェクトをユーザの3次元(3D)環境内の行先オブジェクトにスナップするための方法であって、コンピュータハードウェアを備える、拡張現実(AR)システムの制御下で、ARシステムは、ユーザの3D環境内のオブジェクトとのユーザ相互作用を可能にするように構成され、標的仮想オブジェクトおよびユーザの3D環境内の行先オブジェクトを識別するステップと、標的仮想オブジェクトを行先オブジェクトに結び付けるためのインジケーションを受信するステップと、標的仮想オブジェクトまたは行先オブジェクトのうちの少なくとも1つと関連付けられたアフォーダンスを決定するステップと、少なくとも部分的に、アフォーダンスに基づいて、標的仮想オブジェクトを自動的に配向するステップと、標的仮想オブジェクトを行先オブジェクトに自動的に結び付けるステップとを含む、方法。
【0169】
第20の側面では、標的仮想オブジェクトおよび行先オブジェクトを識別するステップは、頭部姿勢、眼姿勢、身体姿勢、手ジェスチャ、またはユーザ入力デバイスからの入力のうちの少なくとも1つに基づく、側面19に記載の方法。
【0170】
第21の側面では、行先オブジェクトは、物理的オブジェクトまたは仮想オブジェクトのうちの少なくとも1つを含む、側面19-20のいずれか1項に記載の方法。
【0171】
第22の側面では、行先オブジェクトは、垂直表面または水平表面を含む、側面21に記載の方法。
【0172】
第23の側面では、標的仮想オブジェクトを行先オブジェクトに結び付けるためのインジケーションを受信するステップは、ユーザの姿勢の変化を検出するステップまたは行先オブジェクトのインジケーションをユーザ入力デバイスから受信するステップのうちの1つ以上のものを含む、側面19-22のいずれか1項に記載の方法。
【0173】
第24の側面では、姿勢は、頭部姿勢、眼姿勢、または身体姿勢のうちの少なくとも1つを含む、側面23に記載の方法。
【0174】
第25の側面では、アフォーダンスは、標的仮想オブジェクトまたは行先オブジェクトの機能、配向、タイプ、場所、形状、サイズ、または環境のうちの1つ以上のものに基づいて決定される、側面19-24のいずれか1項に記載の方法。
【0175】
第26の側面では、標的仮想オブジェクトを自動的に配向するステップは、標的仮想オブジェクトを自動的に配向し、標的仮想オブジェクトの面法線をARシステムに面させるステップ、標的仮想オブジェクトを自動的に配向し、標的仮想オブジェクトの面法線を行先オブジェクトの表面と垂直にさせるステップ、または標的仮想オブジェクトを自動的に配向し、標的仮想オブジェクトの面法線を行先オブジェクトの法線と平行にさせるステップのうちの1つ以上のものを含む、側面19-25のいずれか1項に記載の方法。
【0176】
第27の側面では、標的仮想オブジェクトを行先オブジェクトに自動的に結び付けるステップは、標的仮想オブジェクトと行先オブジェクトとの間の引力をシミュレートすることによって実施される、側面19-26のいずれか1項に記載の方法。
【0177】
第28の側面では、引力は、重力または磁力のうちの1つ以上のものを含む、側面27に記載の方法。
【0178】
第29の側面では、コンピュータハードウェアを備える、拡張現実システムであって、側面19-28のいずれか1項に記載の方法を実施するように構成される、拡張現実システム。
【0179】
第30の側面では、標的仮想オブジェクトを3次元(3D)環境内の別のオブジェクトから結び付け解除するための方法であって、コンピュータハードウェアを備える、拡張現実(AR)システムの制御下で、ARシステムは、ユーザの動眼視野(FOR)内のオブジェクトとのユーザ相互作用を可能にするように構成され、FORは、ユーザによってARシステムを介して知覚されることが可能なユーザの周囲の環境の一部を構成し、ユーザによる標的仮想オブジェクトの選択を受信するステップであって、標的仮想オブジェクトは、ユーザのFOR内の第1の位置と関連付けられる、ステップと、ユーザに、標的仮想オブジェクトと関連付けられた焦点インジケータを表示するステップと、ユーザから、標的仮想オブジェクトを移動させるためのインジケーションを受信するステップと、ユーザに、少なくとも部分的に、インジケーションに基づいて、焦点インジケータを更新された位置に表示するステップと、標的仮想オブジェクトの第1の位置と焦点インジケータの更新された位置との間の距離を計算するステップと、距離と閾値距離を比較するステップと、距離が閾値距離以上であることの比較に応答して、標的仮想オブジェクトを第1の位置から焦点インジケータの更新された位置と関連付けられた第2の位置に移動させるステップと、ユーザに、標的仮想オブジェクトを第2の位置に表示するステップとを含む、方法。
【0180】
第31の側面では、ユーザによる標的仮想オブジェクトの選択を受信するステップは、ユーザの姿勢の変化を検出するステップまたはユーザ入力デバイスから入力を受信するステップのうちの少なくとも1つを含む、側面30に記載の方法。
【0181】
第32の側面では、他のオブジェクトは、物理的オブジェクトまたは仮想オブジェクトのうちの少なくとも1つを含む、側面30-31のいずれか1項に記載の方法。
【0182】
第33の側面では、他のオブジェクトは、壁またはテーブルを含む、側面32に記載の方法。
【0183】
第34の側面では、標的仮想オブジェクトを移動させるためのインジケーションを受信するステップは、ユーザ入力デバイスの移動を検出するステップ、ユーザ入力デバイス上の手ジェスチャを検出するステップ、またはユーザの姿勢の変化を検出するステップのうちの少なくとも1つを含む、側面30-33のいずれか1項に記載の方法。
【0184】
第35の側面では、ユーザの姿勢は、頭部姿勢、眼姿勢、または身体姿勢を含む、側面31-34のいずれか1項に記載の方法。
【0185】
第36の側面では、距離を計算するステップは、第1の位置と更新された位置との間の変位を計算するステップを含む、側面30-35のいずれか1項に記載の方法。
【0186】
第37の側面では、閾値距離は、ユーザによって規定される、側面30-36のいずれか1項に記載の方法。
【0187】
第38の側面では、ユーザに、標的仮想オブジェクトを第2の位置に表示するステップは、標的仮想オブジェクトが他のオブジェクトに触れる前に、標的仮想オブジェクトと関連付けられた配向を決定するステップと、ユーザに、第2の位置における配向を伴って、標的仮想オブジェクトを表示するステップとを含む、側面30-37のいずれか1項に記載の方法。
【0188】
第39の側面では、ユーザに、標的仮想オブジェクトを第2の位置に表示するステップは、第1の位置における標的仮想オブジェクトと関連付けられた配向を決定するステップと、ユーザに、第2の位置における配向を伴って、標的仮想オブジェクトを表示するステップとを含む、側面1-38のいずれか1項に記載の方法。
【0189】
第40の側面では、標的仮想オブジェクトを3次元(3D)環境内の別のオブジェクトから結び付け解除するための方法であって、コンピュータハードウェアを備える、拡張現実(AR)システムの制御下で、ARシステムは、ユーザの動眼視野(FOR)内のオブジェクトとのユーザ相互作用を可能にするように構成され、FORは、ユーザによってARシステムを介して知覚されることが可能なユーザの周囲の環境の一部を構成し、標的仮想オブジェクトの選択を受信するステップであって、標的仮想オブジェクトは、ユーザのFOR内の第1の位置と関連付けられ、標的仮想オブジェクトの少なくとも一部は、別のオブジェクトに触れている、ステップと、ユーザに、標的仮想オブジェクトと関連付けられた焦点インジケータを表示するステップと、ユーザから、標的仮想オブジェクトを他のオブジェクトから結び付け解除するためのインジケーションを受信するステップと、ユーザに、少なくとも部分的に、インジケーションに基づいて、焦点インジケータを更新された位置に表示するステップと、インジケーションが標的仮想オブジェクトを他のオブジェクトから結び付け解除するための閾値条件を満たすかどうかを決定するステップと、閾値条件が満たされることの決定に応答して、ユーザに、標的仮想オブジェクトを焦点インジケータの更新された位置と関連付けられた第2の位置に表示するステップと、閾値条件が満たされないことの決定に応答して、ユーザに、標的仮想オブジェクトを第1の位置に表示するステップとを含む、方法。
【0190】
第41の側面では、標的仮想オブジェクトの選択を受信するステップは、ユーザの姿勢の変化を検出するステップまたはユーザ入力デバイスから入力を受信するステップのうちの少なくとも1つを含む、側面40に記載の方法。
【0191】
第42の側面では、他のオブジェクトは、物理的オブジェクトまたは仮想オブジェクトのうちの少なくとも1つを含む、側面40-41のいずれか1項に記載の方法。
【0192】
第43の側面では、他のオブジェクトは、壁またはテーブルを含む、側面42に記載の方法。
【0193】
第44の側面では、標的仮想オブジェクトを結び付け解除するためのインジケーションを受信するステップは、ユーザ入力デバイスの移動を検出するステップ、ユーザ入力デバイス上の手ジェスチャを検出するステップ、またはユーザの姿勢の変化を検出するステップのうちの少なくとも1つを含む、側面40-43のいずれか1項に記載の方法。
【0194】
第45の側面では、ユーザの姿勢は、頭部姿勢、眼姿勢、または身体姿勢を含む、側面41-44のいずれか1項に記載の方法。
【0195】
第46の側面では、標的仮想オブジェクトを他のオブジェクトから結び付け解除するための閾値条件は、第1の位置と更新された位置との間の距離が、閾値距離以上であること、第1の位置から更新された位置に移動するための速度が、閾値速度以上であること、第1の位置から離れるように移動するための加速が、閾値加速以上であること、または第1の位置から離れるように移動するための躍度が、閾値躍度以上であることのうちの少なくとも1つを含む、側面41-45のいずれか1項に記載の方法。
【0196】
第47の側面では、ユーザに、標的仮想オブジェクトを第2の位置に表示するステップは、標的仮想オブジェクトが他のオブジェクトに触れる前に、標的仮想オブジェクトと関連付けられた配向を決定するステップと、ユーザに、第2の位置における配向を伴って、標的仮想オブジェクトを表示するステップとを含む、側面41-46のいずれか1項に記載の方法。
【0197】
第48の側面では、ユーザに、標的仮想オブジェクトを第2の位置に表示するステップは、第1の位置における標的仮想オブジェクトと関連付けられた配向を決定するステップと、ユーザに、第2の位置における配向を伴って、標的仮想オブジェクトを表示するステップとを含む、側面41-47のいずれか1項に記載の方法。
【0198】
第49の側面では、標的仮想オブジェクトをユーザの3次元(3D)環境内の別のオブジェクトから結び付け解除するための方法であって、コンピュータハードウェアを備える、拡張現実(AR)システムの制御下で、ARシステムは、ユーザの3D環境内のオブジェクトとのユーザ相互作用を可能にするように構成され、標的仮想オブジェクトの選択を受信するステップであって、標的仮想オブジェクトは、初期位置では、3D環境内の別のオブジェクトに結び付けられている、ステップと、ユーザに、初期位置における標的仮想オブジェクトと関連付けられた焦点インジケータを表示するステップと、ユーザから、標的仮想オブジェクトを他のオブジェクトから結び付け解除するためのインジケーションを受信するステップと、ユーザに、少なくとも部分的に、インジケーションに基づいて、焦点インジケータを更新された位置に表示するステップと、インジケーションが標的仮想オブジェクトを他のオブジェクトから結び付け解除するための閾値条件を満たすかどうかを決定するステップと、閾値条件が満たされることの決定に応答して、少なくとも部分的に、インジケーションに基づいて、標的仮想オブジェクトを結び付け解除するステップと、閾値条件が満たされないことの決定に応答して、ユーザに、標的仮想オブジェクトを初期位置に表示するステップとを含む、方法。
【0199】
第50の側面では、標的仮想オブジェクトの選択を受信するステップは、ユーザの姿勢の変化を検出するステップまたはユーザ入力デバイスから入力を受信するステップのうちの少なくとも1つを含む、側面49に記載の方法。
【0200】
第51の側面では、他のオブジェクトは、物理的オブジェクトまたは仮想オブジェクトのうちの少なくとも1つを含む、側面49-50のいずれか1項に記載の方法。
【0201】
第52の側面では、他のオブジェクトは、垂直表面または水平表面を含む、側面51に記載の方法。
【0202】
第53の側面では、標的仮想オブジェクトを他のオブジェクトから結び付け解除するためのインジケーションを受信するステップは、ユーザ入力デバイスの移動を検出するステップ、ユーザ入力デバイス上の手ジェスチャを検出するステップ、またはユーザの姿勢の変化を検出するステップのうちの少なくとも1つを含む、側面49-52のいずれか1項に記載の方法。
【0203】
第54の側面では、標的仮想オブジェクトを他のオブジェクトから結び付け解除するための閾値条件は、初期位置と更新された位置との間の距離が、閾値距離以上であること、初期位置から更新された位置に移動するための速度が、閾値速度以上であること、初期位置から離れるように移動するための加速が、閾値加速以上であること、または初期位置から離れるように移動するための躍度が、閾値躍度以上であるこのうちの少なくとも1つを含む、側面49-53のいずれか1項に記載の方法。
【0204】
第55の側面では、標的仮想オブジェクトを結び付け解除するステップは、物理的力をシミュレートすることによって実施される、側面49-54のいずれか1項に記載の方法。
【0205】
第56の側面では、物理的力は、重力、磁力、摩擦、または弾性のうちの少なくとも1つを含む、側面55に記載の方法。
【0206】
第57の側面では、コンピュータハードウェアを備える、拡張現実システムであって、側面30-56のいずれか1項に記載の方法を実施するように構成される、拡張現実システム。
【0207】
第58の側面では、仮想オブジェクトを3次元(3D)環境内に自動的に再位置付けするための拡張現実(AR)システムであって、仮想コンテンツを3Dビュー内に提示するように構成される、ARディスプレイと、ARディスプレイと通信する、ハードウェアプロセッサであって、ユーザの3D環境内の標的仮想オブジェクトを識別し、標的仮想オブジェクトは、第1の場所および第1の配向を表す1つのベクトルを割り当てられ、標的仮想オブジェクトを行先オブジェクトに結び付けるためのインジケーションを受信し、行先オブジェクトは、第2の場所および第2の配向を表す少なくとも1つのベクトルを割り当てられ、少なくとも部分的に、第1の場所および第2の場所に基づいて、標的仮想オブジェクトと行先オブジェクトとの間の軌道を計算し、標的仮想オブジェクトを軌道に沿って行先オブジェクトに向かって移動させ、標的仮想オブジェクトの現在の場所を追跡し、少なくとも部分的に、標的仮想オブジェクトの現在の場所および第2の場所に基づいて、標的仮想オブジェクトと行先オブジェクトとの間の距離を計算し、標的仮想オブジェクトと行先仮想オブジェクトとの距離が閾値距離未満であるかどうかを決定し、距離が閾値距離未満またはそれと等しいことの比較に応答して、自動的に、標的仮想オブジェクトを行先オブジェクトに結び付け、標的仮想オブジェクトを第2の配向に配向し、ARディスプレイによって、標的仮想オブジェクトを第2の場所に第2の配向を伴ってレンダリングし、標的仮想オブジェクトは、行先オブジェクト上にオーバーレイされるようにプログラムされる、ハードウェアプロセッサとを備える、ARシステム。
【0208】
第59の側面では、ハードウェアプロセッサはさらに、標的仮想オブジェクト、行先オブジェクト、または環境のうちの少なくとも1つのアフォーダンスを分析するようにプログラムされ、標的仮想オブジェクトを自動的に配向するために、ハードウェアプロセッサは、標的仮想オブジェクトを回転させ、標的仮想オブジェクトの第1の法線と行先オブジェクトの第2の法線を整合させるようにプログラムされる、側面58に記載のARシステム。
【0209】
第60の側面では、アフォーダンスは、機能、配向、タイプ、場所、形状、またはサイズのうちの少なくとも1つを含む、側面59に記載のARシステム。
【0210】
第61の側面では、標的仮想オブジェクトを自動的に結び付けるために、ハードウェアプロセッサは、標的仮想オブジェクトと行先オブジェクトとの間の引力をシミュレートするようにプログラムされ、引力は、重力、弾性力、接着力、または磁力のうちの少なくとも1つを含む、側面58-60のいずれか1項に記載のARシステム。
【0211】
第62の側面では、距離を計算するために、ハードウェアプロセッサは、標的仮想オブジェクトの現在の場所と行先オブジェクトと関連付けられた第2の場所との間の変位を計算するようにプログラムされる、側面58-61のいずれか1項に記載のARシステム。
【0212】
第63の側面では、閾値距離は、ゼロである、側面62に記載のARシステム。
【0213】
第64の側面では、標的仮想オブジェクトを結び付けるためのインジケーションは、ユーザ入力デバイスの作動またはユーザの姿勢のうちの少なくとも1つから決定される、側面58-63のいずれか1項に記載のARシステム。
【0214】
第65の側面では、ハードウェアプロセッサはさらに、焦点インジケータをユーザの現在の位置に割り当てるようにプログラムされ、ユーザの現在の位置は、少なくとも部分的に、ユーザの姿勢またはユーザ入力デバイスと関連付けられた位置に基づいて決定される、側面64に記載のARシステム。
【0215】
第66の側面では、ハードウェアプロセッサはさらに、標的仮想オブジェクトを行先オブジェクトから結び付け解除するためのインジケーションを受信し、インジケーションは、ユーザの現在の位置の変化と関連付けられ、閾値条件が満たされることの決定に応答して、少なくとも部分的に、受信されたインジケーションに基づいて、標的仮想オブジェクトを結び付け解除するための閾値条件が満たされるかどうかを決定し、標的仮想オブジェクトを行先オブジェクトから結び付け解除し、標的仮想オブジェクトを行先オブジェクトと関連付けられた第2の場所から第3の場所に移動させ、標的仮想オブジェクトを第3の場所にレンダリングするようにプログラムされる、側面58-65のいずれか1項に記載のARシステム。
【0216】
第67の側面では、閾値条件が満たされることの決定に応答して、ハードウェアプロセッサはさらに、標的仮想オブジェクトのための第2の配向を留保しながら、標的仮想オブジェクトを第3の場所に移動させるようにプログラムされる、側面66に記載のARシステム。
【0217】
第68の側面では、第3の場所は、ユーザの現在の位置に対応する、焦点インジケータの位置に対応する、側面67に記載のARシステム。
【0218】
第69の側面では、標的仮想オブジェクトを他のオブジェクトから結び付け解除するための閾値条件は、標的仮想オブジェクトが行先オブジェクトに結び付けられる、第2の場所と、焦点インジケータの位置との間の第2の距離が、第2の閾値距離以上であること、第2の場所から焦点インジケータの位置まで移動させるための速度が、閾値速度以上であること、第2の場所から離れるように移動させるための加速が、閾値加速以上であること、または第2の場所から離れるように移動させるための躍度が、閾値躍度以上であることのうちの少なくとも1つを含む、側面68に記載のARシステム。
【0219】
第70の側面では、ハードウェアプロセッサは、標的仮想オブジェクトを行先オブジェクトから結び付け解除するとき、物理的力をシミュレートするようにプログラムされ、物理的力は、摩擦または弾性のうちの少なくとも1つを含む、側面69に記載のARシステム。
【0220】
第71の側面では、仮想オブジェクトを3次元(3D)環境内に自動的に再位置付けするための方法であって、コンピュータハードウェアを備える、拡張現実(AR)システムの制御下で、ARシステムは、3D環境内のオブジェクトとのユーザ相互作用を可能にするように構成され、ユーザの3D環境内の標的仮想オブジェクトを識別するステップであって、標的仮想オブジェクトは、第1の位置および第1の配向を有する、ステップと、標的仮想オブジェクトを行先オブジェクトに対して再位置付けするためのインジケーションを受信するステップと、標的仮想オブジェクトを再位置付けするためのパラメータを識別するステップと、3D環境、標的仮想オブジェクト、および行先オブジェクトのうちの少なくとも1つと関連付けられたアフォーダンスを分析するステップと、アフォーダンスに基づいて、標的仮想オブジェクトを再位置付けするためのパラメータの値を計算するステップと、標的仮想オブジェクトを再位置付けするためのパラメータの値に基づいて、標的仮想オブジェクトのための第2の位置および第2の配向ならびに標的仮想オブジェクトの移動を決定するステップと、標的仮想オブジェクトを第2の位置および第2の配向ならびに第1の位置および第1の配向から第2の位置および第2の配向に到達するための標的仮想オブジェクトの移動にレンダリングするステップとを含む、方法。
【0221】
第72の側面では、標的オブジェクトを再位置付けするステップは、標的オブジェクトを行先オブジェクトに結び付けるステップ、標的オブジェクトを再配向するステップ、または標的オブジェクトを行先オブジェクトから結び付け解除するステップのうちの少なくとも1つを含む、側面71に記載の方法。
【0222】
第73の側面では、行先オブジェクトは、物理的オブジェクトである、側面71-72のいずれか1項に記載の方法。
【0223】
第74の側面では、標的仮想オブジェクトを再位置付けするためのインジケーションが閾値条件を満たすかどうかを決定するステップと、インジケーションが閾値条件を満たすことの決定に応答して、該計算、決定、およびレンダリングを実施するステップとをさらに含む、側面71-73のいずれか1項に記載の方法。
【0224】
第75の側面では、閾値条件は、標的仮想オブジェクトと行先オブジェクトとの間の距離を含む、側面74のいずれか1項に記載の方法。
【0225】
第76の側面では、1つ以上の物理的属性が、標的仮想オブジェクトに割り当てられ、標的仮想オブジェクトの移動は、標的仮想オブジェクトの物理的属性に基づいて、標的仮想オブジェクト、行先オブジェクト、および環境の相互作用をシミュレートすることによって決定される、側面71-75のいずれか1項に記載の方法。
【0226】
第77の側面では、標的仮想オブジェクトに割り当てられる1つ以上の物理的属性は、質量、サイズ、密度、位相、硬度、弾性、または電磁属性のうちの少なくとも1つを含む、側面76に記載の方法。
(他の考慮点)
【0227】
本明細書に説明される、ならびに/または添付される図に描写されるプロセス、方法、およびアルゴリズムはそれぞれ、具体的かつ特定のコンピュータ命令を実行するように構成される、1つ以上の物理的コンピューティングシステム、ハードウェアコンピュータプロセッサ、特定用途向け回路、および/もしくは電子ハードウェアによって実行される、コードモジュールにおいて具現化され、それによって完全もしくは部分的に自動化され得る。例えば、コンピューティングシステムは、具体的コンピュータ命令とともにプログラムされた汎用コンピュータ(例えば、サーバ)または専用コンピュータ、専用回路等を含むことができる。コードモジュールは、実行可能プログラムにコンパイルおよびリンクされ得る、動的リンクライブラリ内にインストールされ得る、または解釈されるプログラミング言語において書き込まれ得る。いくつかの実装では、特定の動作および方法が、所与の機能に特有の回路によって実施され得る。
【0228】
さらに、本開示の機能性のある実装は、十分に数学的、コンピュータ的、または技術的に複雑であるため、(適切な特殊化された実行可能命令を利用する)特定用途向けハードウェアまたは1つ以上の物理的コンピューティングデバイスは、例えば、関与する計算の量もしくは複雑性に起因して、または結果を実質的にリアルタイムで提供するために、機能性を実施する必要があり得る。例えば、ビデオは、多くのフレームを含み、各フレームは、数百万のピクセルを有し得、具体的にプログラムされたコンピュータハードウェアは、商業的に妥当な時間量において所望の画像処理タスクまたは用途を提供するようにビデオデータを処理する必要がある。
【0229】
コードモジュールまたは任意のタイプのデータは、ハードドライブ、ソリッドステートメモリ、ランダムアクセスメモリ(RAM)、読取専用メモリ(ROM)、光学ディスク、揮発性もしくは不揮発性記憶装置、同一物の組み合わせ、および/または同等物を含む、物理的コンピュータ記憶装置等の任意のタイプの非一過性コンピュータ可読媒体上に記憶され得る。本方法およびモジュール(またはデータ)はまた、無線ベースおよび有線/ケーブルベースの媒体を含む、種々のコンピュータ可読伝送媒体上で生成されたデータ信号として(例えば、搬送波または他のアナログもしくはデジタル伝搬信号の一部として)伝送され得、種々の形態(例えば、単一もしくは多重化アナログ信号の一部として、または複数の離散デジタルパケットもしくはフレームとして)をとり得る。開示されるプロセスまたはプロセスステップの結果は、任意のタイプの非一過性有形コンピュータ記憶装置内に持続的もしくは別様に記憶され得る、またはコンピュータ可読伝送媒体を介して通信され得る。
【0230】
本明細書に説明される、および/または添付される図に描写されるフロー図における任意のプロセス、ブロック、状態、ステップ、もしくは機能性は、プロセスにおいて具体的機能(例えば、論理もしくは算術)またはステップを実装するための1つ以上の実行可能命令を含む、コードモジュール、セグメント、またはコードの一部を潜在的に表すものとして理解されたい。種々のプロセス、ブロック、状態、ステップ、または機能性は、組み合わせられる、再配列される、追加される、削除される、修正される、または別様に本明細書に提供される例証的実施例から変更されることができる。いくつかの実施形態では、付加的または異なるコンピューティングシステムもしくはコードモジュールが、本明細書に説明される機能性のいくつかまたは全てを実施し得る。本明細書に説明される方法およびプロセスはまた、任意の特定のシーケンスに限定されず、それに関連するブロック、ステップ、または状態は、適切な他のシーケンスで、例えば、連続して、並行して、またはある他の様式で実施されることができる。タスクまたはイベントが、開示される例示的実施形態に追加される、またはそれから除去され得る。さらに、本明細書に説明される実装における種々のシステムコンポーネントの分離は、例証を目的とし、全ての実装においてそのような分離を要求するものとして理解されるべきではない。説明されるプログラムコンポーネント、方法、およびシステムは、概して、単一のコンピュータ製品においてともに統合される、または複数のコンピュータ製品にパッケージ化され得ることを理解されたい。多くの実装変形例が、可能である。
【0231】
本プロセス、方法、およびシステムは、ネットワーク(または分散)コンピューティング環境において実装され得る。ネットワーク環境は、企業全体コンピュータネットワーク、イントラネット、ローカルエリアネットワーク(LAN)、広域ネットワーク(WAN)、パーソナルエリアネットワーク(PAN)、クラウドコンピューティングネットワーク、クラウドソースコンピューティングネットワーク、インターネット、およびワールドワイドウェブを含む。ネットワークは、有線もしくは無線ネットワークまたは任意の他のタイプの通信ネットワークであり得る。
【0232】
本開示のシステムおよび方法は、それぞれ、いくつかの革新的側面を有し、そのうちのいかなるものも、本明細書に開示される望ましい属性に単独で関与しない、またはそのために要求されない。上記に説明される種々の特徴およびプロセスは、相互に独立して使用され得る、または種々の方法で組み合わせられ得る。全ての可能な組み合わせおよび副次的組み合わせが、本開示の範囲内に該当することが意図される。本開示に説明される実装の種々の修正が、当業者に容易に明白であり得、本明細書に定義される一般原理は、本開示の精神または範囲から逸脱することなく、他の実装に適用され得る。したがって、請求項は、本明細書に示される実装に限定されることを意図されず、本明細書に開示される本開示、原理、および新規の特徴と一貫する最も広い範囲を与えられるべきである。
【0233】
別個の実装の文脈において本明細書に説明されるある特徴はまた、単一の実装における組み合わせにおいて実装されることができる。逆に、単一の実装の文脈において説明される種々の特徴もまた、複数の実装において別個に、または任意の好適な副次的組み合わせにおいて実装されることができる。さらに、特徴がある組み合わせにおいて作用するものとして上記に説明され、さらに、そのようなものとして最初に請求され得るが、請求される組み合わせからの1つ以上の特徴は、いくつかの場合では、組み合わせから削除されることができ、請求される組み合わせは、副次的組み合わせまたは副次的組み合わせの変形例を対象とし得る。いかなる単一の特徴または特徴のグループも、あらゆる実施形態に必要もしくは必須ではない。
【0234】
とりわけ、「~できる(can)」、「~し得る(could)」、「~し得る(might)」、「~し得る(may)」、「例えば(e.g.)」、および同等物等、本明細書で使用される条件文は、別様に具体的に記載されない限り、または使用されるような文脈内で別様に理解されない限り、概して、ある実施形態がある特徴、要素、および/またはステップを含む一方、他の実施形態がそれらを含まないことを伝えることが意図される。したがって、そのような条件文は、概して、特徴、要素、および/もしくはステップが、1つ以上の実施形態に対していかようにも要求されること、または1つ以上の実施形態が、著者の入力または促しの有無を問わず、これらの特徴、要素、および/もしくはステップが任意の特定の実施形態において含まれる、もしくは実施されるべきかどうかを決定するための論理を必然的に含むことを示唆することを意図されない。用語「~を備える」、「~を含む」、「~を有する」、および同等物は、同義語であり、非限定的方式で包括的に使用され、付加的要素、特徴、行為、動作等を除外しない。また、用語「または」は、その包括的意味において使用され(およびその排他的意味において使用されず)、したがって、例えば、要素のリストを接続するために使用されると、用語「または」は、リスト内の要素のうちの1つ、いくつか、または全てを意味する。加えて、本願および添付される請求項で使用されるような冠詞「a」、「an」、および「the」は、別様に規定されない限り、「1つ以上の」もしくは「少なくとも1つ」を意味するように解釈されるべきである。
【0235】
本明細書で使用されるように、項目のリスト「のうちの少なくとも1つ」を指す語句は、単一の要素を含む、それらの項目の任意の組み合わせを指す。ある実施例として、「A、B、またはCのうちの少なくとも1つ」は、A、B、C、AおよびB、AおよびC、BおよびC、ならびにA、B、およびCを網羅することが意図される。語句「X、Y、およびZのうちの少なくとも1つ」等の接続文は、別様に具体的に記載されない限り、概して、項目、用語等がX、Y、またはZのうちの少なくとも1つであり得ることを伝えるために使用されるような文脈で別様に理解される。したがって、そのような接続文は、概して、ある実施形態が、Xのうちの少なくとも1つ、Yのうちの少なくとも1つ、およびZのうちの少なくとも1つがそれぞれ存在するように要求することを示唆することを意図されない。
【0236】
同様に、動作は、特定の順序で図面に描写され得るが、これは、望ましい結果を達成するために、そのような動作が示される特定の順序で、もしくは連続的順序で実施される、または全ての図示される動作が実施される必要はないと認識されるべきである。さらに、図面は、フローチャートの形態で1つ以上の例示的プロセスを図式的に描写し得る。しかしながら、描写されない他の動作も、図式的に図示される例示的方法およびプロセス内に組み込まれることができる。例えば、1つ以上の付加的動作が、図示される動作のいずれかの前に、その後に、それと同時に、またはその間に実施されることができる。加えて、動作は、他の実装において再配列される、または再順序付けられ得る。ある状況では、マルチタスクおよび並列処理が、有利であり得る。さらに、上記に説明される実装における種々のシステムコンポーネントの分離は、全ての実装におけるそのような分離を要求するものとして理解されるべきではなく、説明されるプログラムコンポーネントおよびシステムは、概して、単一のソフトウェア製品においてともに統合される、または複数のソフトウェア製品にパッケージ化され得ることを理解されたい。加えて、他の実装も、以下の請求項の範囲内である。いくつかの場合では、請求項に列挙されるアクションは、異なる順序で実施され、依然として、望ましい結果を達成することができる。
図1
図2
図3
図4
図5
図6
図7
図8
図9
図10
図11
図12
図13
図14A
図14B
図14C
図14D
図15A
図15B
図15C
図15D
図15E
図15F
図15G
図15H
図16
図17