(19)【発行国】日本国特許庁(JP)
(12)【公報種別】公表特許公報(A)
(11)【公表番号】
(43)【公表日】2022-12-22
(54)【発明の名称】視覚的慣性オドメトリのための重力推定およびバンドル調整
(51)【国際特許分類】
G06T 19/00 20110101AFI20221215BHJP
G06F 3/01 20060101ALI20221215BHJP
【FI】
G06T19/00 600
G06F3/01 510
【審査請求】未請求
【予備審査請求】未請求
(21)【出願番号】P 2022522895
(86)(22)【出願日】2020-10-16
(85)【翻訳文提出日】2022-06-14
(86)【国際出願番号】 US2020056163
(87)【国際公開番号】W WO2021077024
(87)【国際公開日】2021-04-22
(32)【優先日】2019-10-18
(33)【優先権主張国・地域又は機関】US
(32)【優先日】2020-09-09
(33)【優先権主張国・地域又は機関】US
(81)【指定国・地域】
(71)【出願人】
【識別番号】514108838
【氏名又は名称】マジック リープ, インコーポレイテッド
【氏名又は名称原語表記】Magic Leap,Inc.
【住所又は居所原語表記】7500 W SUNRISE BLVD,PLANTATION,FL 33322 USA
(74)【代理人】
【識別番号】100078282
【氏名又は名称】山本 秀策
(74)【代理人】
【識別番号】100113413
【氏名又は名称】森下 夏樹
(74)【代理人】
【識別番号】100181674
【氏名又は名称】飯田 貴敏
(74)【代理人】
【識別番号】100181641
【氏名又は名称】石川 大輔
(74)【代理人】
【識別番号】230113332
【氏名又は名称】山本 健策
(72)【発明者】
【氏名】フアン, ユー-シャン
(72)【発明者】
【氏名】レバイン, エバン グレゴリー
(72)【発明者】
【氏名】ナポルスキフ, イゴール
(72)【発明者】
【氏名】カスパー, ドミニク ミヒャエル
(72)【発明者】
【氏名】サンチェス ニクエサ, マヌエル キム
(72)【発明者】
【氏名】シマ, セルジュ
(72)【発明者】
【氏名】ラングマン, ベンジャミン
(72)【発明者】
【氏名】スワミナサン, アシュウィン
(72)【発明者】
【氏名】ツァーネアト, マルティン ゲオルク
(72)【発明者】
【氏名】ツプリンスキ, ブラジェイ マレク
(72)【発明者】
【氏名】ファロ, ジョアン アントニオ ペレイラ
(72)【発明者】
【氏名】トブラー, クリストフ
(72)【発明者】
【氏名】ガセマリザーデ, オミード
【テーマコード(参考)】
5B050
5E555
【Fターム(参考)】
5B050AA03
5B050BA09
5B050CA07
5B050DA07
5B050EA04
5B050EA26
5B050FA02
5B050FA05
5B050FA06
5E555AA54
5E555BA38
5E555BB38
5E555BC01
5E555CA44
5E555CB21
5E555CB66
5E555DA08
5E555DB53
5E555FA00
(57)【要約】
本開示の実施例は、仮想コンテンツをウェアラブル頭部デバイス上に提示するためのシステムおよび方法を説明する。いくつかの実施形態では、ウェアラブル頭部デバイスの状態が、再投影誤差と関連付けられる、低減された加重に基づいて、総誤差を最小限にすることによって決定される。ウェアラブル頭部デバイスの決定された状態を反映させる、ビューは、ウェアラブル頭部デバイスのディスプレイを介して、提示される。いくつかの実施形態では、ウェアラブル頭部デバイスが、ウェアラブル頭部デバイスのセンサを介して受信された、画像データと、ウェアラブル頭部デバイスの第1のIMUおよび第2のIMUを介して受信された、慣性データとに基づいて、第1の予備積分項および第2の予備積分項を計算する。
【特許請求の範囲】
【請求項1】
方法であって、
ウェアラブル頭部デバイスのセンサを介して、第1の位置における第1の特徴を示す第1のセンサデータを受信することと、
前記センサを介して、第2の位置における前記第1の特徴を示す第2のセンサデータを受信することと、
前記ウェアラブル頭部デバイス上の慣性測定ユニット(IMU)を介して、慣性測定値を受信することと、
前記慣性測定値に基づいて、速度を決定することと、
前記第1の位置および前記速度に基づいて、前記第1の特徴の第3の位置を推定することと、
前記第3の位置および前記第2の位置に基づいて、再投影誤差を決定することと、
前記再投影誤差と関連付けられる加重を低減させることと、
前記ウェアラブル頭部デバイスの状態を決定することであって、前記状態を決定することは、総誤差を最小限にすることを含み、前記総誤差は、前記再投影誤差と関連付けられる前記低減された加重に基づく、ことと、
前記ウェアラブル頭部デバイスのディスプレイを介して、前記ウェアラブル頭部デバイスの決定された状態を反映させるビューを提示することと
を含む、方法。
【請求項2】
前記再投影誤差と関連付けられる加重は、識別される特徴の数量に基づいて低減される、請求項1に記載の方法。
【請求項3】
前記再投影誤差と関連付けられる加重を低減させることは、前記再投影誤差が統計的誤対応を備えるかどうかを決定することを含む、請求項1に記載の方法。
【請求項4】
前記総誤差はさらに、前記慣性測定ユニットからの誤差に基づく、請求項1に記載の方法。
【請求項5】
前記ウェアラブル頭部デバイスの移動が閾値を下回るかどうかを決定することと、
前記ウェアラブル頭部デバイスの移動が前記閾値を下回らないことの決定に従って、情報行列を更新することと、
前記ウェアラブル頭部デバイスが前記閾値を下回ることの決定に従って、前記情報行列を更新しないことと
をさらに含む、請求項1に記載の方法。
【請求項6】
前記慣性測定値を予備積分することをさらに含む、請求項1に記載の方法。
【請求項7】
前記ウェアラブル頭部デバイス上の第2のIMUを介して、第2の慣性測定値を受信することと、
前記第2の慣性測定値を予備積分することと
をさらに含む、請求項6に記載の方法。
【請求項8】
前記第1のセンサデータは、第1の時間に受信され、
予備積分される前記慣性測定値は、前記第1の時間と第2の時間との間の前記ウェアラブル頭部デバイスの移動と関連付けられ、前記方法はさらに、
前記第1の時間と前記第2の時間との間の時間インターバルが最大時間インターバルを上回るかどうかを決定することと、
前記時間インターバルが前記最大時間インターバルを上回らないことの決定に従って、前記予備積分された慣性測定値を使用することと、
前記時間インターバルが前記最大時間インターバルを上回ることの決定に従って、前記予備積分された慣性測定値を使用しないことと
を含む、請求項6に記載の方法。
【請求項9】
前記ウェアラブル頭部デバイスの更新された状態に基づいて、補正を前記状態に適用することをさらに含む、請求項1に記載の方法。
【請求項10】
システムであって、
ウェアラブル頭部デバイスのセンサと、
前記ウェアラブル頭部デバイスの慣性測定ユニットと、
前記ウェアラブル頭部デバイスのディスプレイと、
1つまたはそれを上回るプロセッサであって、前記1つまたはそれを上回るプロセッサは、
前記ウェアラブル頭部デバイスのセンサを介して、第1の位置における第1の特徴を示す第1のセンサデータを受信することと、
前記センサを介して、第2の位置における前記第1の特徴を示す第2のセンサデータを受信することと、
前記ウェアラブル頭部デバイス上の慣性測定ユニットを介して、慣性測定値を受信することと、
前記慣性測定値に基づいて、速度を決定することと、
前記第1の位置および前記速度に基づいて、前記第1の特徴の第3の位置を推定することと、
前記第3の位置および前記第2の位置に基づいて、再投影誤差を決定することと、
前記再投影誤差と関連付けられる加重を低減させることと、
前記ウェアラブル頭部デバイスの状態を決定することであって、前記状態を決定することは、総誤差を最小限にすることを含み、前記総誤差は、前記再投影誤差と関連付けられる前記低減された加重に基づく、ことと、
前記ウェアラブル頭部デバイスのディスプレイを介して、前記ウェアラブル頭部デバイスの決定された状態を反映させるビューを提示することと、
を含む方法を実行するように構成される、1つまたはそれを上回るプロセッサと
を備える、システム。
【請求項11】
前記再投影誤差と関連付けられる加重は、識別される特徴の数量に基づいて低減される、請求項10に記載のシステム。
【請求項12】
前記再投影誤差と関連付けられる加重を低減させることは、前記再投影誤差が統計的誤対応を備えるかどうかを決定することを含む、請求項10に記載のシステム。
【請求項13】
前記総誤差はさらに、前記慣性測定ユニットからの誤差に基づく、請求項10に記載のシステム。
【請求項14】
前記方法はさらに、
前記ウェアラブル頭部デバイスの移動が閾値を下回るかどうかを決定することと、
前記ウェアラブル頭部デバイスの移動が前記閾値を下回らないことの決定に従って、情報行列を更新することと、
前記ウェアラブル頭部デバイスが前記閾値を下回ることの決定に従って、前記情報行列を更新しないことと
を含む、請求項10に記載のシステム。
【請求項15】
前記方法はさらに、前記慣性測定値を予備積分することを含む、請求項10に記載のシステム。
【請求項16】
前記方法はさらに、
前記ウェアラブル頭部デバイス上の第2のIMUを介して、第2の慣性測定値を受信することと、
前記第2の慣性測定値を予備積分することと
を含む、請求項15に記載のシステム。
【請求項17】
前記第1のセンサデータは、第1の時間に受信され、
予備積分される前記慣性測定値は、前記第1の時間と第2の時間との間の前記ウェアラブル頭部デバイスの移動と関連付けられ、
前記方法はさらに、
前記第1の時間と前記第2の時間との間の時間インターバルが最大時間インターバルを上回るかどうかを決定することと、
前記時間インターバルが前記最大時間インターバルを上回らないことの決定に従って、前記予備積分された慣性測定値を使用することと、
前記時間インターバルが前記最大時間インターバルを上回ることの決定に従って、前記予備積分された慣性測定値を使用しないことと
を含む、請求項15に記載のシステム。
【請求項18】
前記方法はさらに、前記ウェアラブル頭部デバイスの更新された状態に基づいて、補正を前記状態に適用することを含む、請求項10に記載のシステム。
【請求項19】
非一過性コンピュータ可読媒体であって、前記非一過性コンピュータ可読媒体は、命令を記憶しており、前記命令は、1つまたはそれを上回るプロセッサによって実行されると、前記1つまたはそれを上回るプロセッサに、
ウェアラブル頭部デバイスのセンサを介して、第1の位置における第1の特徴を示す第1のセンサデータを受信することと、
前記センサを介して、第2の位置における前記第1の特徴を示す第2のセンサデータを受信することと、
前記ウェアラブル頭部デバイス上の慣性測定ユニットを介して、慣性測定値を受信することと、
前記慣性測定値に基づいて、速度を決定することと、
前記第1の位置および前記速度に基づいて、前記第1の特徴の第3の位置を推定することと、
前記第3の位置および前記第2の位置に基づいて、再投影誤差を決定することと、
前記再投影誤差と関連付けられる加重を低減させることと、
前記ウェアラブル頭部デバイスの状態を決定することであって、前記状態を決定することは、総誤差を最小限にすることを含み、前記総誤差は、前記再投影誤差と関連付けられる前記低減された加重に基づく、ことと、
前記ウェアラブル頭部デバイスのディスプレイを介して、前記ウェアラブル頭部デバイスの決定された状態を反映させるビューを提示することと
を含む方法を実行させる、非一過性コンピュータ可読媒体。
【請求項20】
前記方法はさらに、前記慣性測定値を予備積分することを含む、請求項20に記載の非一過性コンピュータ可読媒体。
【発明の詳細な説明】
【技術分野】
【0001】
(関連出願の相互参照)
本願は、その開示全体が、あらゆる目的のために、参照することによって本明細書に組み込まれる、2019年10月18日に出願された、米国仮出願第62/923,317号、および2020年9月9日に出願された、米国仮出願第63/076,251号の利益を主張する。
【0002】
本開示は、一般に、視覚的情報をマッピングおよび表示するためのシステムおよび方法に関し、特に、複合現実環境内で視覚的情報をマッピングおよび表示するためのシステムおよび方法に関する。
【背景技術】
【0003】
仮想環境は、コンピューティング環境において普遍的であって、ビデオゲーム(仮想環境が、ゲーム世界を表し得る)、マップ(仮想環境が、ナビゲートされるべき地形を表し得る)、シミュレーション(仮想環境が、実環境をシミュレートし得る)、デジタルストーリーテリング(仮想キャラクタが、仮想環境内で相互に相互作用し得る)、および多くの他の用途において使用を見出している。現代のコンピュータユーザは、概して、快適に仮想環境を知覚し、それと相互作用する。しかしながら、仮想環境を伴うユーザの体験は、仮想環境を提示するための技術によって限定され得る。例えば、従来のディスプレイ(例えば、2Dディスプレイ画面)およびオーディオシステム(例えば、固定スピーカ)は、人を引き付け、現実的で、かつ没入型の体験を作成するように、仮想環境を実現することが不可能であり得る。
【0004】
仮想現実(「VR」)、拡張現実(「AR」)、複合現実(「MR」)、および関連技術(集合的に、「XR」)は、XRシステムのユーザにコンピュータシステム内のデータによって表される仮想環境に対応する感覚情報を提示する能力を共有する。本開示は、VR、AR、およびMRシステム間の特異性を考慮する(但し、いくつかのシステムは、一側面(例えば、視覚的側面)では、VRとしてカテゴリ化され、同時に、別の側面(例えば、オーディオ側面)では、ARまたはMRとしてカテゴリ化され得る)。本明細書で使用されるように、VRシステムは、少なくとも1つの側面においてユーザの実環境を置換する、仮想環境を提示する。例えば、VRシステムは、ユーザに、仮想環境のビューを提示し得る一方、同時に、光遮断頭部搭載型ディスプレイ等を用いて、実環境のそのビューを不明瞭にする。同様に、VRシステムは、ユーザに、仮想環境に対応するオーディオを提示し得る一方、同時に、実環境からのオーディオを遮断する(減衰させる)。
【0005】
VRシステムは、ユーザの実環境を仮想環境と置換することから生じる、種々の短所を被り得る。1つの短所は、仮想環境内のユーザの視野が、(仮想環境ではなく)実環境内におけるその平衡および配向を検出する、その内耳の状態にもはや対応しなくなるときに生じ得る、乗り物酔いを感じることである。同様に、ユーザは、自身の身体および四肢(そのビューは、ユーザが実環境内において「地に足が着いている」と感じるために依拠するものである)が直接可視ではない場合、VR環境内において失見当識を被り得る。別の短所は、特に、ユーザを仮想環境内に没入させようとする、リアルタイム用途において、完全3D仮想環境を提示しなければならない、VRシステムに課される算出負担(例えば、記憶、処理力)である。同様に、そのような環境は、ユーザが、仮想環境内のわずかな不完全性にさえ敏感である傾向にあって、そのいずれも、仮想環境内のユーザの没入感を破壊し得るため、没入していると見なされるために、非常に高水準の現実性に到達する必要があり得る。さらに、VRシステムの別の短所は、システムのそのような用途が、実世界内で体験する、種々の光景および音等の実環境内の広範囲の感覚データを利用することができないことである。関連短所は、実環境内の物理的空間を共有するユーザが、仮想環境内で直接見る、または相互に相互作用することが不可能であり得るため、VRシステムが、複数のユーザが相互作用し得る、共有環境を作成することに苦戦し得ることである。
【0006】
本明細書で使用されるように、ARシステムは、少なくとも1つの側面において実環境に重複またはオーバーレイする、仮想環境を提示する。例えば、ARシステムは、表示される画像を提示する一方、光が、ディスプレイを通してユーザの眼の中に通過することを可能にする、透過性頭部搭載型ディスプレイ等を用いて、ユーザに、実環境のユーザのビュー上にオーバーレイされる仮想環境のビューを提示し得る。同様に、ARシステムは、ユーザに、仮想環境に対応するオーディオを提示し得る一方、同時に、実環境からのオーディオを混合させる。同様に、本明細書で使用されるように、MRシステムは、ARシステムと同様に、少なくとも1つの側面において実環境に重複またはオーバーレイする、仮想環境を提示し、加えて、MRシステム内の仮想環境が、少なくとも1つの側面において実環境と相互作用し得ることを可能にし得る。例えば、仮想環境内の仮想キャラクタが、実環境内の照明スイッチを切り替え、実環境内の対応する電球をオンまたはオフにさせてもよい。別の実施例として、仮想キャラクタが、実環境内のオーディオ信号に反応してもよい(顔の表情等を用いて)。実環境の提示を維持することによって、ARおよびMRシステムは、VRシステムの前述の短所のうちのいくつかを回避し得る。例えば、ユーザにおける乗り物酔いは、実環境からの視覚的キュー(ユーザ自身の身体を含む)が、可視のままであり得、そのようなシステムが、没入型であるために、ユーザに、完全に実現された3D環境を提示する必要がないため、低減される。さらに、ARおよびMRシステムは、実世界感覚入力(例えば、景色、オブジェクト、および他のユーザのビューおよび音)を利用して、その入力を拡張させる、新しい用途を作成することができる。
【0007】
実環境に重複またはオーバーレイする、仮想環境を提示することは、困難であり得る。例えば、仮想環境と実環境を混合することは、仮想環境内のオブジェクトが実環境内のオブジェクトと競合しないように、実環境の複合的かつ完全な理解を要求し得る。さらに、実環境内の一貫性と対応する、仮想環境内の持続性を維持することが望ましくあり得る。例えば、物理的テーブル上に表示される仮想オブジェクトは、ユーザが、視線を逸らし、動き回り、次いで、物理的テーブルに視線を戻す場合でも、同一場所に現れることが望ましくあり得る。本タイプの没入感を達成するために、オブジェクトが実世界内に存在する場所およびユーザが実世界内に存在する場所の正確かつ精密な推定値を展開することが、有益であり得る。
【発明の概要】
【課題を解決するための手段】
【0008】
本開示の実施例は、仮想コンテンツをウェアラブル頭部デバイス上に提示するためのシステムおよび方法を説明する。例えば、重力推定およびバンドル調整を伴う、視覚的慣性オドメトリを実施するためのシステムおよび方法が、開示される。いくつかの実施形態では、第1の位置における第1の特徴を示す、第1のセンサデータが、ウェアラブル頭部デバイスのセンサを介して受信される。第2の位置における第1の特徴を示す、第2のセンサデータが、センサを介して受信される。慣性測定値は、ウェアラブル頭部デバイス上の慣性測定ユニットを介して受信さる。速度が、慣性測定値に基づいて決定される。第1の特徴の第3の位置が、第1の位置および速度に基づいて、推定される。再投影誤差が、第3の位置および第2の位置に基づいて決定される。再投影誤差と関連付けられる、加重が、低減される。ウェアラブル頭部デバイスの状態が、決定される。状態を決定するステップは、総誤差を最小限にするステップを含み、総誤差は、再投影誤差と関連付けられる、低減された加重に基づく。ウェアラブル頭部デバイスの決定された状態を反映させる、ビューが、ウェアラブル頭部デバイスのディスプレイを介して、提示される。
【0009】
いくつかの実施形態では、ウェアラブル頭部デバイスは、ウェアラブル頭部デバイスのセンサを介して、画像データを受信する。ウェアラブル頭部デバイスは、第1の慣性測定ユニット(IMU)および第2のIMUを介して、それぞれ、第1および第2の慣性データを受信する。ウェアラブル頭部デバイスは、画像データおよび慣性データに基づいて、第1の予備積分項および第2の予備積分項を計算する。ウェアラブル頭部デバイスは、第1および第2の予備積分項に基づいて、デバイスの位置を推定する。デバイスの位置に基づいて、ウェアラブル頭部デバイスは、仮想コンテンツを提示する。
【図面の簡単な説明】
【0010】
【
図1A】
図1A-1Cは、本開示の1つまたはそれを上回る実施形態による、例示的複合現実環境を図示する。
【
図1B】
図1A-1Cは、本開示の1つまたはそれを上回る実施形態による、例示的複合現実環境を図示する。
【
図1C】
図1A-1Cは、本開示の1つまたはそれを上回る実施形態による、例示的複合現実環境を図示する。
【
図2A】
図2A-2Dは、本開示の1つまたはそれを上回る実施形態による、例示的複合現実システムのコンポーネントを図示する。
【
図2B】
図2A-2Dは、本開示の1つまたはそれを上回る実施形態による、例示的複合現実システムのコンポーネントを図示する。
【
図2C】
図2A-2Dは、本開示の1つまたはそれを上回る実施形態による、例示的複合現実システムのコンポーネントを図示する。
【
図2D】
図2A-2Dは、本開示の1つまたはそれを上回る実施形態による、例示的複合現実システムのコンポーネントを図示する。
【0011】
【
図3A】
図3Aは、本開示の1つまたはそれを上回る実施形態による、例示的複合現実ハンドヘルドコントローラを図示する。
【0012】
【
図3B】
図3Bは、本開示の1つまたはそれを上回る実施形態による、例示的補助ユニットを図示する。
【0013】
【
図4】
図4は、本開示の1つまたはそれを上回る実施形態による、例示的複合現実システムのための例示的機能的ブロック図を図示する。
【0014】
【
図5】
図5は、本開示の1つまたはそれを上回る実施形態による、視覚的慣性オドメトリのための例示的パイプラインを図示する。
【0015】
【
図6】
図6A-6Bは、本開示の1つまたはそれを上回る実施形態による、視覚的慣性オドメトリのための例示的グラフを図示する。
【0016】
【
図7A】
図7A-7Bは、本開示の1つまたはそれを上回る実施形態による、バンドル調整を実施するための例示的決定プロセスを図示する。
【
図7B】
図7A-7Bは、本開示の1つまたはそれを上回る実施形態による、バンドル調整を実施するための例示的決定プロセスを図示する。
【0017】
【
図8】
図8は、本開示の1つまたはそれを上回る実施形態による、独立型重力推定のための例示的グラフを図示する。
【0018】
【
図9】
図9は、本開示の1つまたはそれを上回る実施形態による、例示的IMU構成を図示する。
【0019】
【
図10】
図10は、本開示の1つまたはそれを上回る実施形態による、例示的IMU構成を図示する。
【0020】
【
図11】
図11は、本開示の1つまたはそれを上回る実施形態による、SLAM算出の例示的グラフ表現を図示する。
【0021】
【
図12】
図12は、本開示の1つまたはそれを上回る実施形態による、仮想コンテンツを提示するための例示的プロセスを図示する。
【発明を実施するための形態】
【0022】
詳細な説明
実施例の以下の説明では、本明細書の一部を形成し、例証として、実践され得る具体的実施例が示される、付随の図面を参照する。他の実施例も、使用されることができ、構造変更が、開示される実施例の範囲から逸脱することなく、行われることができることを理解されたい。
【0023】
複合現実環境
【0024】
全ての人々と同様に、複合現実システムのユーザは、実環境内に存在する、すなわち、「実世界」の3次元部分と、そのコンテンツの全てとが、ユーザによって知覚可能である。例えば、ユーザは、通常の人間の感覚、すなわち、視覚、聴覚、触覚、味覚、嗅覚を使用して、実環境を知覚し、実環境内で自身の身体を移動させることによって、実環境と相互作用する。実環境内の場所は、座標空間内の座標として説明されることができる。例えば、座標は、緯度、経度、および海抜に対する高度、基準点から3つの直交次元における距離、または他の好適な値を含むことができる。同様に、ベクトルは、座標空間内の方向および大きさを有する、量を説明することができる。
【0025】
コンピューティングデバイスは、例えば、デバイスと関連付けられるメモリ内に、仮想環境の表現を維持することができる。本明細書で使用されるように、仮想環境は、3次元空間の算出表現である。仮想環境は、任意のオブジェクトの表現、アクション、信号、パラメータ、座標、ベクトル、またはその空間と関連付けられる他の特性を含むことができる。いくつかの実施例では、コンピューティングデバイスの回路(例えば、プロセッサ)は、仮想環境の状態を維持および更新することができる。すなわち、プロセッサは、第1の時間t0において、仮想環境と関連付けられるデータおよび/またはユーザによって提供される入力に基づいて、第2の時間t1における仮想環境の状態を決定することができる。例えば、仮想環境内のオブジェクトが、時間t0において、第1の座標に位置し、あるプログラムされた物理的パラメータ(例えば、質量、摩擦係数)を有し、ユーザから受信された入力が、力がある方向ベクトルにおいてオブジェクトに印加されるべきであることを示す場合、プロセッサは、運動学の法則を適用し、基本力学を使用して、時間t1におけるオブジェクトの場所を決定することができる。プロセッサは、仮想環境について既知の任意の好適な情報および/または任意の好適な入力を使用して、時間t1における仮想環境の状態を決定することができる。仮想環境の状態を維持および更新する際、プロセッサは、仮想環境内の仮想オブジェクトの作成および削除に関連するソフトウェア、仮想環境内の仮想オブジェクトまたはキャラクタの挙動を定義するためのソフトウェア(例えば、スクリプト)、仮想環境内の信号(例えば、オーディオ信号)の挙動を定義するためのソフトウェア、仮想環境と関連付けられるパラメータを作成および更新するためのソフトウェア、仮想環境内のオーディオ信号を生成するためのソフトウェア、入力および出力をハンドリングするためのソフトウェア、ネットワーク動作を実装するためのソフトウェア、アセットデータ(例えば、仮想オブジェクトを経時的に移動させるためのアニメーションデータ)を適用するためのソフトウェア、または多くの他の可能性を含む、任意の好適なソフトウェアを実行することができる。
【0026】
ディスプレイまたはスピーカ等の出力デバイスは、仮想環境のいずれかまたは全ての側面をユーザに提示することができる。例えば、仮想環境は、ユーザに提示され得る、仮想オブジェクト(無有生オブジェクト、人々、動物、光等の表現を含み得る)を含んでもよい。プロセッサは、仮想環境のビュー(例えば、原点座標、視軸、および錐台を伴う、「カメラ」に対応する)を決定し、ディスプレイに、そのビューに対応する仮想環境の視認可能場面をレンダリングすることができる。任意の好適なレンダリング技術が、本目的のために使用されてもよい。いくつかの実施例では、視認可能場面は、仮想環境内のいくつかの仮想オブジェクトのみを含み、ある他の仮想オブジェクトを除外してもよい。同様に、仮想環境は、ユーザに1つまたはそれを上回るオーディオ信号として提示され得る、オーディオ側面を含んでもよい。例えば、仮想環境内の仮想オブジェクトは、オブジェクトの場所座標から生じる音を生成してもよい(例えば、仮想キャラクタが、発話する、または音効果を生じさせ得る)、または仮想環境は、特定の場所と関連付けられる場合とそうではない場合がある、音楽キューまたは周囲音と関連付けられてもよい。プロセッサは、「聴取者」座標に対応するオーディオ信号、例えば、仮想環境内の音の合成に対応し、聴取者座標において聴取者によって聞こえるであろうオーディオ信号をシミュレートするように混合および処理される、オーディオ信号を決定し、ユーザに、1つまたはそれを上回るスピーカを介して、オーディオ信号を提示することができる。
【0027】
仮想環境は、算出構造としてのみ存在するため、ユーザは、直接、通常の感覚を使用して、仮想環境を知覚することができない。代わりに、ユーザは、例えば、ディスプレイ、スピーカ、触覚的出力デバイス等によって、ユーザに提示されるように、間接的にのみ、仮想環境を知覚することができる。同様に、ユーザは、直接、仮想環境に触れる、それを操作する、または別様に、それと相互作用することができないが、入力データを、入力デバイスまたはセンサを介して、デバイスまたはセンサデータを使用して、仮想環境を更新し得る、プロセッサに提供することができる。例えば、カメラセンサは、ユーザが仮想環境のオブジェクトを移動させようとしていることを示す、光学データを提供することができ、プロセッサは、そのデータを使用して、仮想環境内において、適宜、オブジェクトを応答させることができる。
【0028】
複合現実システムは、ユーザに、例えば、透過型ディスプレイおよび/または1つまたはそれを上回るスピーカ(例えば、ウェアラブル頭部デバイスの中に組み込まれ得る)を使用して、実環境および仮想環境の側面を組み合わせる、複合現実環境(「MRE」)を提示することができる。いくつかの実施形態では、1つまたはそれを上回るスピーカは、頭部搭載型ウェアラブルユニットの外部にあってもよい。本明細書で使用されるように、MREは、実環境および対応する仮想環境の同時表現である。いくつかの実施例では、対応する実および仮想環境は、単一座標空間を共有する。いくつかの実施例では、実座標空間および対応する仮想座標空間は、変換行列(または他の好適な表現)によって相互に関連する。故に、単一座標(いくつかの実施例では、変換行列とともに)は、実環境内の第1の場所と、また、仮想環境内の第2の対応する場所とを定義し得、その逆も同様である。
【0029】
MREでは、(例えば、MREと関連付けられる仮想環境内の)仮想オブジェクトは、(例えば、MREと関連付けられる実環境内の)実オブジェクトに対応し得る。例えば、MREの実環境が、実街灯柱(実オブジェクト)をある場所座標に含む場合、MREの仮想環境は、仮想街灯柱(仮想オブジェクト)を対応する場所座標に含んでもよい。本明細書で使用されるように、実オブジェクトは、その対応する仮想オブジェクトとともに組み合わせて、「複合現実オブジェクト」を構成する。仮想オブジェクトが対応する実オブジェクトに完璧に合致または整合することは、必要ではない。いくつかの実施例では、仮想オブジェクトは、対応する実オブジェクトの簡略化されたバージョンであることができる。例えば、実環境が、実街灯柱を含む場合、対応する仮想オブジェクトは、実街灯柱と概ね同一高さおよび半径の円筒形を含んでもよい(街灯柱が略円筒形形状であり得ることを反映する)。仮想オブジェクトをこのように簡略化することは、算出効率を可能にすることができ、そのような仮想オブジェクト上で実施されるための計算を簡略化することができる。さらに、MREのいくつかの実施例では、実環境内の全ての実オブジェクトが、対応する仮想オブジェクトと関連付けられなくてもよい。同様に、MREのいくつかの実施例では、仮想環境内の全ての仮想オブジェクトが、対応する実オブジェクトと関連付けられなくてもよい。すなわち、いくつかの仮想オブジェクトが、任意の実世界対応物を伴わずに、MREの仮想環境内にのみ存在し得る。
【0030】
いくつかの実施例では、仮想オブジェクトは、時として著しく、対応する実オブジェクトのものと異なる、特性を有してもよい。例えば、MRE内の実環境は、緑色の2本の枝が延びたサボテン、すなわち、とげだらけの無有生オブジェクトを含み得るが、MRE内の対応する仮想オブジェクトは、人間の顔特徴および無愛想な態度を伴う、緑色の2本の腕の仮想キャラクタの特性を有してもよい。本実施例では、仮想オブジェクトは、ある特性(色、腕の数)において、その対応する実オブジェクトに類似するが、他の特性(顔特徴、性格)において、実オブジェクトと異なる。このように、仮想オブジェクトは、創造的、抽象的、誇張された、または架空の様式において、実オブジェクトを表す、または挙動(例えば、人間の性格)をそうでなければ無生物である実オブジェクトに付与する潜在性を有する。いくつかの実施例では、仮想オブジェクトは、実世界対応物を伴わない、純粋に架空の創造物(例えば、おそらく、実環境内の虚空に対応する場所における、仮想環境内の仮想モンスタ)であってもよい。
【0031】
ユーザに、実環境を不明瞭にしながら、仮想環境を提示する、VRシステムと比較して、MREを提示する、複合現実システムは、仮想環境が提示される間、実環境が知覚可能なままであるであるという利点をもたらす。故に、複合現実システムのユーザは、実環境と関連付けられる視覚的およびオーディオキューを使用して、対応する仮想環境を体験し、それと相互作用することが可能である。実施例として、VRシステムのユーザは、本明細書中に述べられるように、ユーザは、直接、仮想環境を知覚する、またはそれと相互作用しない可能性があるため、仮想環境内に表示される仮想オブジェクトを知覚する、またはそれと相互作用することに苦戦し得るが、MRシステムのユーザは、その自身の実環境内の対応する実オブジェクトが見え、聞こえ、触れることによって、仮想オブジェクトと相互作用することが直感的および自然であると見出し得る。本レベルの相互作用は、ユーザの仮想環境との没入感、つながり、および関与の感覚を向上させ得る。同様に、実環境および仮想環境を同時に提示することによって、複合現実システムは、VRシステムと関連付けられる負の心理学的感覚(例えば、認知的不協和)および負の物理的感覚(例えば、乗り物酔い)を低減させることができる。複合現実システムはさらに、実世界の我々の体験を拡張または改変し得る用途に関する多くの可能性をもたらす。
【0032】
図1Aは、ユーザ110が複合現実システム112を使用する、例示的な実環境100を図示する。複合現実システム112は、ディスプレイ(例えば、透過型ディスプレイ)および1つまたはそれを上回るスピーカと、例えば、本明細書中に説明されるような1つまたはそれを上回るセンサ(例えば、カメラ)とを備えてもよい。示される実環境100は、その中にユーザ110が立っている、長方形の部屋104Aと、実オブジェクト122A(ランプ)、124A(テーブル)、126A(ソファ)、および128A(絵画)とを備える。部屋104Aはさらに、場所座標106を備え、これは、実環境100の原点と見なされ得る。
図1Aに示されるように、その原点を点106(世界座標)に伴う、環境/世界座標系108(x-軸108X、y-軸108Y、およびz-軸108Zを備える)は、実環境100のための座標空間を定義し得る。いくつかの実施形態では、環境/世界座標系108の原点106は、複合現実システム112の電源がオンにされた場所に対応してもよい。いくつかの実施形態では、環境/世界座標系108の原点106は、動作の間、リセットされてもよい。いくつかの実施例では、ユーザ110は、実環境100内の実オブジェクトと見なされ得る。同様に、ユーザ110の身体部分(例えば、手、足)は、実環境100内の実オブジェクトと見なされ得る。いくつかの実施例では、その原点を点115(例えば、ユーザ/聴取者/頭部座標)に伴う、ユーザ/聴取者/頭部座標系114(x-軸114X、y-軸114Y、およびz-軸114Zを備える)は、その上に複合現実システム112が位置する、ユーザ/聴取者/頭部のための座標空間を定義し得る。ユーザ/聴取者/頭部座標系114の原点115は、複合現実システム112の1つまたはそれを上回るコンポーネントに対して定義されてもよい。例えば、ユーザ/聴取者/頭部座標系114の原点115は、複合現実システム112の初期較正等の間、複合現実システム112のディスプレイに対して定義されてもよい。行列(平行移動行列および四元数行列または他の回転行列を含み得る)または他の好適な表現が、ユーザ/聴取者/頭部座標系114空間と環境/世界座標系108空間との間の変換を特性評価することができる。いくつかの実施形態では、左耳座標116および右耳座標117が、ユーザ/聴取者/頭部座標系114の原点115に対して定義されてもよい。行列(平行移動行列および四元数行列または他の回転行列を含み得る)または他の好適な表現が、左耳座標116および右耳座標117とユーザ/聴取者/頭部座標系114空間との間の変換を特性評価することができる。ユーザ/聴取者/頭部座標系114は、ユーザの頭部または頭部搭載型デバイスに対する、例えば、環境/世界座標系108に対する場所の表現を簡略化することができる。同時位置特定およびマッピング(SLAM)、ビジュアルオドメトリ、または他の技法を使用して、ユーザ座標系114と環境座標系108との間の変換が、リアルタイムで決定および更新されることができる。
【0033】
図1Bは、実環境100に対応する、例示的な仮想環境130を図示する。示される仮想環境130は、実長方形部屋104Aに対応する仮想長方形部屋104Bと、実オブジェクト122Aに対応する仮想オブジェクト122Bと、実オブジェクト124Aに対応する仮想オブジェクト124Bと、実オブジェクト126Aに対応する仮想オブジェクト126Bとを備える。仮想オブジェクト122B、124B、126Bと関連付けられるメタデータは、対応する実オブジェクト122A、124A、126Aから導出される情報を含むことができる。仮想環境130は、加えて、仮想モンスタ132を備え、これは、実環境100内の任意の実オブジェクトに対応しない。実環境100内の実オブジェクト128Aは、仮想環境130内の任意の仮想オブジェクトに対応しない。その原点を点134(持続的座標)に伴う、持続的座標系133(x-軸133X、y-軸133Y、およびz-軸133Zを備える)は、仮想コンテンツのための座標空間を定義し得る。持続的座標系133の原点134は、実オブジェクト126A等の1つまたはそれを上回る実オブジェクトと相対的に/それに対して定義されてもよい。行列(平行移動行列および四元数行列または他の回転行列を含み得る)または他の好適な表現は、持続的座標系133空間と環境/世界座標系108空間との間の変換を特性評価することができる。いくつかの実施形態では、仮想オブジェクト122B、124B、126B、および132はそれぞれ、持続的座標系133の原点134に対するその自身の持続的座標点を有してもよい。いくつかの実施形態では、複数の持続的座標系が存在してもよく、仮想オブジェクト122B、124B、126B、および132はそれぞれ、1つまたはそれを上回る持続的座標系に対するその自身の持続的座標点を有してもよい。
【0034】
図1Aおよび1Bに関して、環境/世界座標系108は、実環境100および仮想環境130の両方のための共有座標空間を定義する。示される実施例では、座標空間は、その原点を点106に有する。さらに、座標空間は、同一の3つの直交軸(108X、108Y、108Z)によって定義される。故に、実環境100内の第1の場所および仮想環境130内の第2の対応する場所は、同一座標空間に関して説明されることができる。これは、同一座標が両方の場所を識別するために使用され得るため、実および仮想環境内の対応する場所を識別および表示するステップを簡略化する。しかしながら、いくつかの実施例では、対応する実および仮想環境は、共有座標空間を使用する必要がない。例えば、いくつかの実施例では(図示せず)、行列(平行移動行列および四元数行列または他の回転行列を含み得る)または他の好適な表現は、実環境座標空間と仮想環境座標空間との間の変換を特性評価することができる。
【0035】
図1Cは、同時に、実環境100および仮想環境130の側面をユーザ110に複合現実システム112を介して提示する、例示的なMRE150を図示する。示される実施例では、MRE150は、同時に、ユーザ110に、実環境100からの実オブジェクト122A、124A、126A、および128A(例えば、複合現実システム112のディスプレイの透過性部分を介して)と、仮想環境130からの仮想オブジェクト122B、124B、126B、および132(例えば、複合現実システム112のディスプレイアクティブディスプレイ部分を介して)とを提示する。本明細書中に記載されるように、原点106は、MRE150に対応する座標空間のための原点として作用し得、座標系108は、座標空間のためのx-軸、y-軸、およびz-軸を定義する。
【0036】
示される実施例では、複合現実オブジェクトは、座標空間108内の対応する場所を占有する、対応する対の実オブジェクトおよび仮想オブジェクト(すなわち、122A/122B、124A/124B、126A/126B)を備える。いくつかの実施例では、実オブジェクトおよび仮想オブジェクトは両方とも、同時に、ユーザ110に可視であってもよい。これは、例えば、仮想オブジェクトが対応する実オブジェクトのビューを拡張させるように設計される情報を提示する、インスタンスにおいて望ましくあり得る(仮想オブジェクトが古代の損傷された彫像の欠けた部分を提示する、博物館用途等)。いくつかの実施例では、仮想オブジェクト(122B、124B、および/または126B)は、対応する実オブジェクト(122A、124A、および/または126A)をオクルードするように、表示されてもよい(例えば、ピクセル化オクルージョンシャッタを使用する、アクティブピクセル化オクルージョンを介して)。これは、例えば、仮想オブジェクトが対応する実オブジェクトのための視覚的置換として作用する、インスタンスにおいて望ましくあり得る(無生物実オブジェクトが「生きている」キャラクタとなる、双方向ストーリーテリング用途等)。
【0037】
いくつかの実施例では、実オブジェクト(例えば、122A、124A、126A)は、必ずしも、仮想オブジェクトを構成するとは限らない、仮想コンテンツまたはヘルパデータと関連付けられてもよい。仮想コンテンツまたはヘルパデータは、複合現実環境内の仮想オブジェクトの処理またはハンドリングを促進することができる。例えば、そのような仮想コンテンツは、対応する実オブジェクトの2次元表現、対応する実オブジェクトと関連付けられるカスタムアセットタイプ、または対応する実オブジェクトと関連付けられる統計的データを含み得る。本情報は、不必要な算出オーバーヘッドを被ることなく、実オブジェクトに関わる計算を可能にする、または促進することができる。
【0038】
いくつかの実施例では、本明細書中に説明される提示はまた、オーディオ側面を組み込んでもよい。例えば、MRE150では、仮想モンスタ132は、モンスタがMRE150の周囲を歩き回るにつれて生成される、足音効果等の1つまたはそれを上回るオーディオ信号と関連付けられ得る。本明細書中に説明されるように、複合現実システム112のプロセッサは、MRE150内の全てのそのような音の混合および処理された合成に対応するオーディオ信号を算出し、複合現実システム112内に含まれる1つまたはそれを上回るスピーカおよび/または1つまたはそれを上回る外部スピーカを介して、オーディオ信号をユーザ110に提示することができる。
【0039】
例示的な複合現実システム
【0040】
例示的な複合現実システム112は、ディスプレイ(接眼ディスプレイであり得る、左および右透過型ディスプレイと、ディスプレイからの光をユーザの眼に結合するための関連付けられるコンポーネントとを備え得る)と、左および右スピーカ(例えば、それぞれ、ユーザの左および右耳に隣接して位置付けられる)と、慣性測定ユニット(IMU)(例えば、頭部デバイスのつるのアームに搭載される)と、直交コイル電磁受信機(例えば、左つる部品に搭載される)と、ユーザから離れるように配向される、左および右カメラ(例えば、深度(飛行時間)カメラ)と、ユーザに向かって配向される、左および右眼カメラ(例えば、ユーザの眼移動を検出するため)とを備える、ウェアラブル頭部デバイス(例えば、ウェアラブル拡張現実または複合現実頭部デバイス)を含むことができる。しかしながら、複合現実システム112は、任意の好適なディスプレイ技術および任意の好適なセンサ(例えば、光学、赤外線、音響、LIDAR、EOG、GPS、磁気)を組み込むことができる。加えて、複合現実システム112は、ネットワーキング特徴(例えば、Wi-Fi能力)を組み込み、他の複合現実システムを含む、他のデバイスおよびシステムと通信してもよい。複合現実システム112はさらに、バッテリ(ユーザの腰部の周囲に装着されるように設計されるベルトパック等の補助ユニット内に搭載されてもよい)と、プロセッサと、メモリとを含んでもよい。複合現実システム112のウェアラブル頭部デバイスは、ユーザの環境に対するウェアラブル頭部デバイスの座標セットを出力するように構成される、IMUまたは他の好適なセンサ等の追跡コンポーネントを含んでもよい。いくつかの実施例では、追跡コンポーネントは、入力をプロセッサに提供し、同時位置特定およびマッピング(SLAM)および/またはビジュアルオドメトリアルゴリズムを実施してもよい。いくつかの実施例では、複合現実システム112はまた、ハンドヘルドコントローラ300、および/または本明細書中にさらに説明されるように、ウェアラブルベルトパックであり得る補助ユニット320を含んでもよい。
【0041】
図2A-2Dは、MRE(MRE150に対応し得る)または他の仮想環境をユーザに提示するために使用され得る、例示的な複合現実システム200(複合現実システム112に対応し得る)のコンポーネントを図示する。
図2Aは、例示的複合現実システム200内に含まれるウェアラブル頭部デバイス2102の斜視図を図示する。
図2Bは、ユーザの頭部2202上に装着されるウェアラブル頭部デバイス2102の上面図を図示する。
図2Cは、ウェアラブル頭部デバイス2102の正面図を図示する。
図2Dは、ウェアラブル頭部デバイス2102の例示的接眼レンズ2110の縁視図を図示する。
図2A-2Cに示されるように、例示的ウェアラブル頭部デバイス2102は、例示的な左接眼レンズ(例えば、左透明導波管セット接眼レンズ)2108と、例示的な右接眼レンズ(例えば、右透明導波管セット接眼レンズ)2110とを含む。各接眼レンズ2108および2110は、それを通して実環境が可視となる、透過性要素と、実環境に重複するディスプレイ(例えば、画像毎に変調された光を介して)を提示するためのディスプレイ要素とを含むことができる。いくつかの実施例では、そのようなディスプレイ要素は、画像毎に変調された光の流動を制御するための表面回折光学要素を含むことができる。例えば、左接眼レンズ2108は、左内部結合格子セット2112と、左直交瞳拡張(OPE)格子セット2120と、左出射(出力)瞳拡張(EPE)格子セット2122とを含むことができる。同様に、右接眼レンズ2110は、右内部結合格子セット2118と、右OPE格子セット2114と、右EPE格子セット2116とを含むことができる。画像毎に変調された光は、内部結合格子2112および2118、OPE2114および2120、およびEPE2116および2122を介して、ユーザの眼に転送されることができる。各内部結合格子セット2112、2118は、光をその対応するOPE格子セット2120、2114に向かって偏向させるように構成されることができる。各OPE格子セット2120、2114は、光をその関連付けられるEPE2122、2116に向かって下方に漸次的に偏向させ、それによって、形成されている射出瞳を水平に延在させるように設計されることができる。各EPE2122、2116は、その対応するOPE格子セット2120、2114から受信された光の少なくとも一部を、接眼レンズ2108、2110の背後に定義される、ユーザアイボックス位置(図示せず)に外向きに漸次的に再指向し、アイボックスに形成される射出瞳を垂直に延在させるように構成されることができる。代替として、内部結合格子セット2112および2118、OPE格子セット2114および2120、およびEPE格子セット2116および2122の代わりに、接眼レンズ2108および2110は、ユーザの眼への画像毎に変調された光の結合を制御するための格子および/または屈折および反射性特徴の他の配列を含むことができる。
【0042】
いくつかの実施例では、ウェアラブル頭部デバイス2102は、左つるのアーム2130と、右つるのアーム2132とを含むことができ、左つるのアーム2130は、左スピーカ2134を含み、右つるのアーム2132は、右スピーカ2136を含む。直交コイル電磁受信機2138は、左こめかみ部品またはウェアラブル頭部ユニット2102内の別の好適な場所に位置することができる。慣性測定ユニット(IMU)2140は、右つるのアーム2132またはウェアラブル頭部デバイス2102内の別の好適な場所に位置することができる。ウェアラブル頭部デバイス2102はまた、左深度(例えば、飛行時間)カメラ2142と、右深度カメラ2144とを含むことができる。深度カメラ2142、2144は、好適には、ともにより広い視野を網羅するように、異なる方向に配向されることができる。
【0043】
図2A-2Dに示される実施例では、画像毎に変調された光2124の左源は、左内部結合格子セット2112を通して、左接眼レンズ2108の中に光学的に結合されることができ、画像毎に変調された光2126の右源は、右内部結合格子セット2118を通して、右接眼レンズ2110の中に光学的に結合されることができる。画像毎に変調された光2124、2126の源は、例えば、光ファイバスキャナ、デジタル光処理(DLP)チップまたはシリコン上液晶(LCoS)変調器等の電子光変調器を含む、プロジェクタ、または側面あたり1つまたはそれを上回るレンズを使用して、内部結合格子セット2112、2118の中に結合される、マイクロ発光ダイオード(μLED)またはマイクロ有機発光ダイオード(μOLED)パネル等の発光型ディスプレイを含むことができる。入力結合格子セット2112、2118は、画像毎に変調された光2124、2126の源からの光を、接眼レンズ2108、2110のための全内部反射(TIR)に関する臨界角を上回る角度に偏向させることができる。OPE格子セット2114、2120は、伝搬する光をTIRによってEPE格子セット2116、2122に向かって下方に漸次的に偏向させる。EPE格子セット2116、2122は、ユーザの眼の瞳孔を含む、ユーザの顔に向かって、光を漸次的に結合する。
【0044】
いくつかの実施例では、
図2Dに示されるように、左接眼レンズ2108および右接眼レンズ2110はそれぞれ、複数の導波管2402を含む。例えば、各接眼レンズ2108、2110は、複数の個々の導波管を含むことができ、それぞれ、個別の色チャネル(例えば、赤色、青色、および緑色)専用である。いくつかの実施例では、各接眼レンズ2108、2110は、複数のセットのそのような導波管を含むことができ、各セットは、異なる波面曲率を放出される光に付与するように構成される。波面曲率は、例えば、ユーザの正面のある距離(例えば、波面曲率の逆数に対応する距離)に位置付けられる仮想オブジェクトを提示するように、ユーザの眼に対して凸面であってもよい。いくつかの実施例では、EPE格子セット2116、2122は、各EPEを横断して出射する光のPoyntingベクトルを改変することによって凸面波面曲率をもたらすために、湾曲格子溝を含むことができる。
【0045】
いくつかの実施例では、表示されるコンテンツが3次元である知覚を作成するために、立体視的に調節される左および右眼画像は、画像毎に光変調器2124、2126および接眼レンズ2108、2110を通して、ユーザに提示されることができる。3次元仮想オブジェクトの提示の知覚される現実性は、仮想オブジェクトが立体視左および右画像によって示される距離に近似する距離に表示されるように、導波管(したがって、対応する波面曲率)を選択することによって向上されることができる。本技法はまた、立体視左および右眼画像によって提供される深度知覚キューと人間の眼の自動遠近調節(例えば、オブジェクト距離依存焦点)との間の差異によって生じ得る、一部のユーザによって被られる乗り物酔いを低減させ得る。
【0046】
図2Dは、例示的ウェアラブル頭部デバイス2102の右接眼レンズ2110の上部からの縁視図を図示する。
図2Dに示されるように、複数の導波管2402は、3つの導波管2404の第1のサブセットと、3つの導波管2406の第2のサブセットとを含むことができる。導波管2404、2406の2つのサブセットは、異なる波面曲率を出射する光に付与するために異なる格子線曲率を特徴とする、異なるEPE格子によって区別されることができる。導波管2404、2406のサブセットのそれぞれ内において、各導波管は、異なるスペクトルチャネル(例えば、赤色、緑色、および青色スペクトルチャネルのうちの1つ)をユーザの右眼2206に結合するために使用されることができる。(
図2Dには図示されないが、左接眼レンズ2108の構造は、右接眼レンズ2110の構造に類似する。)
【0047】
図3Aは、複合現実システム200の例示的なハンドヘルドコントローラコンポーネント300を図示する。いくつかの実施例では、ハンドヘルドコントローラ300は、把持部分346と、上部表面348に沿って配置される、1つまたはそれを上回るボタン350とを含む。いくつかの実施例では、ボタン350は、例えば、カメラまたは他の光学センサ(複合現実システム200の頭部ユニット(例えば、ウェアラブル頭部デバイス2102)内に搭載され得る)と併せて、ハンドヘルドコントローラ300の6自由度(6DOF)運動を追跡するための光学追跡標的として使用するために構成されてもよい。いくつかの実施例では、ハンドヘルドコントローラ300は、ウェアラブル頭部デバイス2102に対する位置または配向等の位置または配向を検出するための追跡コンポーネント(例えば、IMUまたは他の好適なセンサ)を含む。いくつかの実施例では、そのような追跡コンポーネントは、ハンドヘルドコントローラ300のハンドル内に位置付けられてもよく、および/またはハンドヘルドコントローラに機械的に結合されてもよい。ハンドヘルドコントローラ300は、ボタンの押下状態、またはハンドヘルドコントローラ300の位置、配向、および/または運動(例えば、IMUを介して)のうちの1つまたはそれを上回るものに対応する、1つまたはそれを上回る出力信号を提供するように構成されることができる。そのような出力信号は、複合現実システム200のプロセッサへの入力として使用されてもよい。そのような入力は、ハンドヘルドコントローラの位置、配向、および/または移動(さらに言うと、コントローラを保持するユーザの手の位置、配向、および/または移動)に対応し得る。そのような入力はまた、ユーザがボタン350を押下したことに対応し得る。
【0048】
図3Bは、複合現実システム200の例示的な補助ユニット320を図示する。補助ユニット320は、エネルギーを提供し、システム200を動作するためのバッテリを含むことができ、プログラムを実行し、システム200を動作させるためのプロセッサを含むことができる。示されるように、例示的補助ユニット320は、補助ユニット320をユーザのベルトに取り付ける等のためのクリップ2128を含む。他の形状因子も、補助ユニット320のために好適であって、ユニットをユーザのベルトに搭載することを伴わない、形状因子を含むことも明白となるであろう。いくつかの実施例では、補助ユニット320は、例えば、電気ワイヤおよび光ファイバを含み得る、多管式ケーブルを通して、ウェアラブル頭部デバイス2102に結合される。補助ユニット320とウェアラブル頭部デバイス2102との間の無線接続もまた、使用されることができる。
【0049】
いくつかの実施例では、複合現実システム200は、1つまたはそれを上回るマイクロホンを含み、音を検出し、対応する信号を複合現実システムに提供することができる。いくつかの実施例では、マイクロホンは、ウェアラブル頭部デバイス2102に取り付けられる、またはそれと統合されてもよく、ユーザの音声を検出するように構成されてもよい。いくつかの実施例では、マイクロホンは、ハンドヘルドコントローラ300および/または補助ユニット320に取り付けられる、またはそれと統合されてもよい。そのようなマイクロホンは、環境音、周囲雑音、ユーザまたは第三者の音声、または他の音を検出するように構成されてもよい。
【0050】
図4は、本明細書中に説明される複合現実システム200(
図1に関する複合現実システム112に対応し得る)等の例示的な複合現実システムに対応し得る、例示的な機能ブロック図を示す。
図4に示されるように、例示的ハンドヘルドコントローラ400B(ハンドヘルドコントローラ300(「トーテム」)に対応し得る)は、トーテム/ウェアラブル頭部デバイス6自由度(6DOF)トーテムサブシステム404Aを含み、例示的ウェアラブル頭部デバイス400A(ウェアラブル頭部デバイス2102に対応し得る)は、トーテム/ウェアラブル頭部デバイス6DOFサブシステム404Bを含む。実施例では、6DOFトーテムサブシステム404Aおよび6DOFサブシステム404Bは、協働し、ウェアラブル頭部デバイス400Aに対するハンドヘルドコントローラ400Bの6つの座標(例えば、3つの平行移動方向におけるオフセットおよび3つの軸に沿った回転)を決定する。6自由度は、ウェアラブル頭部デバイス400Aの座標系に対して表されてもよい。3つの平行移動オフセットは、そのような座標系内におけるX、Y、およびZオフセット、平行移動行列、またはある他の表現として表されてもよい。回転自由度は、ヨー、ピッチ、およびロール回転のシーケンスとして、回転行列として、四元数として、またはある他の表現として表されてもよい。いくつかの実施例では、ウェアラブル頭部デバイス400A、ウェアラブル頭部デバイス400A内に含まれる、1つまたはそれを上回る深度カメラ444(および/または1つまたはそれを上回る非深度カメラ)、および/または1つまたはそれを上回る光学標的(例えば、本明細書中に説明されるようなハンドヘルドコントローラ400Bのボタン350またはハンドヘルドコントローラ400B内に含まれる専用光学標的)は、6DOF追跡のために使用されることができる。いくつかの実施例では、ハンドヘルドコントローラ400Bは、本明細書中に説明されるようなカメラを含むことができ、ウェアラブル頭部デバイス400Aは、カメラと併せた光学追跡のための光学標的を含むことができる。いくつかの実施例では、ウェアラブル頭部デバイス400Aおよびハンドヘルドコントローラ400Bはそれぞれ、3つの直交して配向されるソレノイドのセットを含み、これは、3つの区別可能な信号を無線で送信および受信するために使用される。受信するために使用される、コイルのそれぞれ内で受信される3つの区別可能な信号の相対的大きさを測定することによって、ハンドヘルドコントローラ400Bに対するウェアラブル頭部デバイス400Aの6DOFが、決定され得る。加えて、6DOFトーテムサブシステム404Aは、改良された正確度および/またはハンドヘルドコントローラ400Bの高速移動に関するよりタイムリーな情報を提供するために有用である、慣性測定ユニット(IMU)を含むことができる。
【0051】
いくつかの実施例では、例えば、座標系108に対するウェアラブル頭部デバイス400Aの移動を補償するために、座標をローカル座標空間(例えば、ウェアラブル頭部デバイス400Aに対して固定される座標空間)から慣性座標空間(例えば、実環境に対して固定される座標空間)に変換することが必要になり得る。例えば、そのような変換は、ウェアラブル頭部デバイス400Aのディスプレイが、ディスプレイ上の固定位置および配向(例えば、ディスプレイの右下角における同一位置)ではなく仮想オブジェクトを実環境に対する予期される位置および配向に提示し(例えば、ウェアラブル頭部デバイスの位置および配向にかかわらず、前方に面した実椅子に着座している仮想人物)、仮想オブジェクトが実環境内に存在する(かつ、例えば、ウェアラブル頭部デバイス400Aが偏移および回転するにつれて、実環境内に不自然に位置付けられて現れない)という錯覚を保存するために必要であり得る。いくつかの実施例では、座標空間間の補償変換が、座標系108に対するウェアラブル頭部デバイス400Aの変換を決定するために、SLAMおよび/またはビジュアルオドメトリプロシージャを使用して、深度カメラ444からの画像を処理することによって決定されることができる。
図4に示される実施例では、深度カメラ444は、SLAM/ビジュアルオドメトリブロック406に結合され、画像をブロック406に提供することができる。SLAM/ビジュアルオドメトリブロック406実装は、本画像を処理し、次いで、頭部座標空間と別の座標空間(例えば、慣性座標空間)との間の変換を識別するために使用され得る、ユーザの頭部の位置および配向を決定するように構成される、プロセッサを含むことができる。同様に、いくつかの実施例では、ユーザの頭部姿勢および場所に関する情報の付加的源が、IMU409から取得される。IMU409からの情報は、SLAM/ビジュアルオドメトリブロック406からの情報と統合され、改良された正確度および/またはユーザの頭部姿勢および位置の高速調節に関する情報をよりタイムリーに提供することができる。
【0052】
いくつかの実施例では、深度カメラ444は、ウェアラブル頭部デバイス400Aのプロセッサ内に実装され得る、手のジェスチャトラッカ411に、3D画像を供給することができる。手のジェスチャトラッカ411は、例えば、深度カメラ444から受信された3D画像を手のジェスチャを表す記憶されたパターンに合致させることによって、ユーザの手のジェスチャを識別することができる。ユーザの手のジェスチャを識別する他の好適な技法も、明白となるであろう。
【0053】
いくつかの実施例では、1つまたはそれを上回るプロセッサ416は、ウェアラブル頭部デバイスの6DOFヘッドギヤサブシステム404B、IMU409、SLAM/ビジュアルオドメトリブロック406、深度カメラ444、および/または手のジェスチャトラッカ411からのデータを受信するように構成されてもよい。プロセッサ416はまた、制御信号を6DOFトーテムシステム404Aに送信し、そこから受信することができる。プロセッサ416は、ハンドヘルドコントローラ400Bがテザリングされない実施例等では、無線で、6DOFトーテムシステム404Aに結合されてもよい。プロセッサ416はさらに、オーディオ/視覚的コンテンツメモリ418、グラフィカル処理ユニット(GPU)420、および/またはデジタル信号プロセッサ(DSP)オーディオ空間化装置422等の付加的コンポーネントと通信してもよい。DSPオーディオ空間化装置422は、頭部関連伝達関数(HRTF)メモリ425に結合されてもよい。GPU420は、画像毎に変調された光の左源424に結合される、左チャネル出力と、画像毎に変調された光の右源426に結合される、右チャネル出力とを含むことができる。GPU420は、例えば、
図2A-2Dに関して本明細書中に説明されるように、立体視画像データを画像毎に変調された光の源424、426に出力することができる。DSPオーディオ空間化装置422は、オーディオを左スピーカ412および/または右スピーカ414に出力することができる。DSPオーディオ空間化装置422は、プロセッサ419から、ユーザから仮想音源(例えば、ハンドヘルドコントローラ320を介して、ユーザによって移動され得る)への方向ベクトルを示す入力を受信することができる。方向ベクトルに基づいて、DSPオーディオ空間化装置422は、対応するHRTFを決定することができる(例えば、HRTFにアクセスすることによって、または複数のHRTFを補間することによって)。DSPオーディオ空間化装置422は、次いで、決定されたHRTFを仮想オブジェクトによって生成された仮想音に対応するオーディオ信号等のオーディオ信号に適用することができる。これは、複合現実環境内の仮想音に対するユーザの相対的位置および配向を組み込むことによって、すなわち、その仮想音が実環境内の実音である場合に聞こえるであろうもののユーザの予期に合致する仮想音を提示することによって、仮想音の信憑性および現実性を向上させることができる。
【0054】
図4に示されるようないくつかの実施例では、プロセッサ416、GPU420、DSPオーディオ空間化装置422、HRTFメモリ425、およびオーディオ/視覚的コンテンツメモリ418のうちの1つまたはそれを上回るものは、補助ユニット400C(本明細書中に説明される補助ユニット320に対応し得る)内に含まれてもよい。補助ユニット400Cは、バッテリ427を含み、そのコンポーネントを給電し、および/または電力をウェアラブル頭部デバイス400Aまたはハンドヘルドコントローラ400Bに供給してもよい。そのようなコンポーネントを、ユーザの腰部に搭載され得る、補助ユニット内に含むことは、ウェアラブル頭部デバイス400Aのサイズおよび重量を限定することができ、これは、ひいては、ユーザの頭部および頸部の疲労を低減させることができる。
【0055】
図4は、例示的な複合現実システムの種々のコンポーネントに対応する要素を提示するが、これらのコンポーネントの種々の他の好適な配列も、当業者に明白となるであろう。例えば、補助ユニット400Cと関連付けられているような
図4に提示される要素は、代わりに、ウェアラブル頭部デバイス400Aまたはハンドヘルドコントローラ400Bと関連付けられ得る。さらに、いくつかの複合現実システムは、ハンドヘルドコントローラ400Bまたは補助ユニット400Cを完全に無くしてもよい。そのような変更および修正は、開示される実施例の範囲内に含まれるものとして理解されるべきである。
【0056】
同時位置特定およびマッピング
【0057】
仮想コンテンツが実コンテンツに対応するように、仮想コンテンツを複合現実環境内に表示することは、困難であり得る。例えば、
図1Cにおける仮想オブジェクト122Bを実オブジェクト122Aと同一場所に表示することが望ましくあり得る。そうすることは、複合現実システム112のいくつかの能力を伴い得る。例えば、複合現実システム112は、実環境104Aおよび実環境104A内の実オブジェクト(例えば、ランプ122A)の3次元マップを作成してもよい。複合現実システム112はまた、実環境104A内のその場所(実環境内のユーザの場所に対応し得る)を確立してもよい。複合現実システム112はさらに、実環境104A内のその配向(実環境内のユーザの配向に対応し得る)を確立してもよい。複合現実システム112はまた、実環境104Aに対するその移動、例えば、線形および/または角速度および線形および/または角加速(実環境に対するユーザの移動に対応し得る)を確立してもよい。SLAMは、ユーザ110が、部屋104Aを動き回り、実オブジェクト122Aから視線を逸らし、実オブジェクト122Aに視線を戻す場合でも、仮想オブジェクト122Bを実オブジェクト122Aと同一場所に表示するための1つの方法であり得る。
【0058】
さらに、正確であるが、算出上効率的かつ短待ち時間様式において、SLAMを起動することが望ましくあり得る。本明細書で使用されるように、待ち時間は、複合現実システムのコンポーネントの位置または配向の変化(例えば、ウェアラブル頭部デバイスの回転)と複合現実システム内に表されるようなその変化の反映(例えば、ウェアラブル頭部デバイスのディスプレイに提示される視野の表示角度)との間の時間遅延を指し得る。算出非効率性および/または長待ち時間は、複合現実システム112を用いたユーザの体験に悪影響を及ぼし得る。例えば、ユーザ110が、部屋104Aを見回す場合、仮想オブジェクトが、ユーザの運動および/または長待ち時間の結果として、「微振動」するように現れ得る。正確度は、没入型の複合現実環境を生産するために不可欠であり得、そうでなければ、実コンテンツと競合する、仮想コンテンツは、ユーザに、仮想コンテンツと実コンテンツとの間の違いを思い出させ、ユーザの没入感を減少させ得る。さらに、ある場合には、待ち時間は、一部のユーザにとって、乗り物酔い、頭痛、または他の負の物理的体験をもたらし得る。算出非効率性は、複合現実システム112が、限定された電源(例えば、バッテリ)に依存する、モバイルシステムである、実施形態では、問題の悪化を引き起こし得る。本明細書に説明されるシステムおよび方法は、より正確であって、算出上効率的であって、および/またはより短い待ち時間のSLAMの結果として、改良されたユーザ体験を生産することができる。
【0059】
視覚的慣性オドメトリ
【0060】
図5は、バンドル調整および独立型重力推定を使用する、視覚的慣性オドメトリ(「VIO」)のための例示的パイプラインを図示する。ステップ504では、1つまたはそれを上回るセンサ502からのセンサ入力が、処理されることができる。いくつかの実施形態では、センサ502は、IMUであることができ、ステップ504においてIMU入力を処理するステップは、IMU測定値を予備積分するステップを含むことができる。IMU測定値を予備積分するステップは、単一の相対的運動制約をIMUから取得される一連の慣性測定値から決定するステップを含むことができる。IMU測定値を予備積分し、一連の慣性測定値全体を積分する算出複雑性を低減させることが望ましくあり得る。例えば、ビデオ記録内で捕捉されたシーケンシャルフレーム(また、キーフレームでもあり得る)間で収集された慣性測定値は、IMUによって辿られる、経路全体についてのデータを含み得る。キーフレームは、時間(例えば、前のキーフレーム選択以降の時間)、識別される特徴(例えば、前のキーフレームと比較して、十分な新しい識別される特徴を有する)、または他の基準に基づいて特別に選択される、フレームであり得る。しかしながら、いくつかの実施形態では、VIO方法は、(例えば、第1のフレームにおける)開始点と、(例えば、第2のフレームにおける)終了点とについてのデータのみを必要とし得る。いくつかの実施形態では、VIO方法は、現在の時点(例えば、直近のフレーム)と、前の状態(例えば、前のフレーム)とについてのデータのみを必要とし得る。VIO算出は、慣性測定値データを予備積分し、(例えば、第1のフレームから第2のフレームまでの)単一の相対的運動制約を生産することによって、簡略化され得る。予備積分された慣性測定値はさらに、他の予備積分された慣性測定値と、測定値の両方のセットを横断して予備積分を繰り返す必要なく、組み合わせられ得る。これは、例えば、キーフレーム間の慣性測定値が、予備積分されるが、キーフレームがもはや使用されるべきではないことが後に決定されるとき(例えば、冗長または陳腐化したものとして削除されたため、または最適化が、最初に、第1のキーフレームのサブセット上で実施され、次いで、第1の最適化の結果を再使用しながら、異なるキーフレームのセット上で実施される場合)、有用であり得る。例えば、フレーム1とフレーム2との間の慣性測定値が、すでに予備積分されており、フレーム2とフレーム3との間の慣性測定値が、すでに予備積分されている場合、予備積分された測定の両方のセットが、フレーム2が最適化から除去される場合、新しい予備積分を実施せずに、組み合わせられることができる。また、これは、任意の数のフレームを横断して実施され得ることが検討される。
【0061】
いくつかの実施形態では、ステップ504は、カメラフレーム内で識別される特徴を追跡するステップを含むことができ、カメラフレームは、センサ502からのセンサ入力であることができる。例えば、各画像は、コンピュータビジョンアルゴリズムを通してフィードされ、画像内の特徴(例えば、角および縁)を識別することができる。隣接または近接近するフレームが、相互に比較され、フレームを横断して、特徴間の対応を決定することができる(例えば、1つの特定の角が、2つの隣接するフレーム内で識別されることができる)。いくつかの実施形態では、隣接性は、時間的隣接性(例えば、連続して捕捉されたフレーム)および/または空間的隣接性(例えば連続して捕捉されていない場合がある、類似特徴を捕捉する、フレーム)を指し得る。いくつかの実施形態では、対応する特徴は、識別される特徴の所与の半径内で検索されることができる。検索半径は、固定またはフレーム間の速度の関数であることができる(例えば、IMUによって測定された線形加速を積分することによって計算される)。
【0062】
ステップ506では、VIO算出が、起動されることができる。VIOは、SLAMにおいて使用するための環境内の特徴を観察、追跡、および位置特定するための方法であり得る。VIOは、複数のタイプのセンサからの情報ストリームを含むことができる。例えば、VIOは、視覚的センサ(例えば、1つまたはそれを上回るカメラ)および慣性センサ(例えば、IMU)からの情報ストリームを含むことができる。VIOの一例示的方法では、移動する複合現実システム(例えば、複合現実システム112、200)上に搭載されるカメラが、複数の画像(例えば、ビデオ記録内のフレーム)を記録/捕捉することができる。各画像は、コンピュータビジョンアルゴリズムを通してフィードされ、画像内の特徴(例えば、角および縁)を識別することができる。隣接または近接近するフレームが、相互に比較され、フレームを横断して、特徴間の対応を決定することができる(例えば、1つの特定の角が、2つのシーケンシャルフレーム内で識別されることができる)。いくつかの実施形態では、3次元マップが、(例えば、立体視画像から)構築されることができ、識別される特徴は、3次元マップ内に位置することができる。
【0063】
いくつかの実施形態では、IMUセンサからの慣性情報は、1つまたはそれを上回るカメラからの視覚的情報と結合され、フレームを横断して、識別される特徴の予期される位置を照合および/または予測することができる。例えば、2つの捕捉されたフレーム間で集められたIMUデータは、線形加速および/または角速度を含み得る。IMUが、1つまたはそれを上回るカメラ(例えば、両方が、ウェアラブル頭部デバイスに内蔵される)に結合される、実施形態では、IMUデータは、1つまたはそれを上回るカメラに関する移動を決定することができる。本情報は、3次元マップ内のその推定される場所に基づいて、および1つまたはそれを上回るカメラの移動に基づいて、捕捉された画像内において、識別される特徴が見られ得る、場所を推定するために使用されることができる。いくつかの実施形態では、3次元マップ内の識別される特徴の新しく推定される位置は、2次元画像上に投影され、1つまたはそれを上回るカメラが識別される特徴を捕捉し得る方法を再現することができる。識別される特徴の推定される場所の本投影は、次いで、異なる画像(例えば、後続フレーム)と比較されることができる。推定される場所の投影と観察される場所との間の差異は、識別される特徴に関する再投影誤差であり得る。
【0064】
IMUもまた、VIO最適化に対する誤差に寄与し得る。例えば、センサ雑音は、IMUデータ内の誤差に寄与し得る。IMUセンサ出力はまた、IMUの物理的性質(例えば、温度または機械的応力)の関数であり得る、バイアス(例えば、移動を伴わない場合でも存在し得る、記録される測定値内のオフセット)を含み得る。いくつかの実施形態では、IMUデータにおける誤差は、IMUデータを経時的に積分する結果として、蓄積し得る。再投影誤差はまた、3次元マップ内の識別される特徴の場所の不正確な推定値の関数であり得る。例えば、識別される特徴の元々仮定される位置が、正しくない場合、移動後のその特徴に関して新しく推定される位置もまた、正しくなくなり得、その結果、2次元画像上への新しく推定される位置の投影もまた、正しくなくなり得る。VIO最適化は、再投影誤差およびIMU誤差を含み得る、全体的誤差を最小限にすることが望ましくあり得る。
【0065】
図6A-6Bは、VIO算出の例示的グラフを図示する。例示的グラフは、視覚的に、いくつかの変数の関数の非線形因子分解を描写し得る。例えば、変数(例えば、602aおよび602b)は、円形ノードとして表され得、変数の関数(例えば、因子とも呼ばれる、604、606、および610a)は、正方形ノードとして表され得る。各因子は、任意の結び付けられた変数の関数であり得る。描写される実施形態では、ノード602aおよび602bは、t=1において捕捉された画像と関連付けられるデータを表し得る。t=2において捕捉された画像およびt=3において捕捉された画像と関連付けられるデータも同様に、例示的実施形態内に表示される。ノード602aは、加速測定値を経時的に積分することによって取得され得る、バイアス(例えば、IMUバイアス)および速度を含む、可変情報を表し得る。ノード602aは、カメラがある画像を捕捉したときの時間t=1における、IMUのバイアスおよびIMUに添着されたカメラの速度を表し得る。ノード602bは、時間t=1における、姿勢推定値を表し得る。姿勢推定値は、(VIOの結果であり得る)3次元空間内のカメラの位置および配向の推定値を含むことができる。ノード604は、時間t=1における、n点透視(「PnP」)項を表し得る。PnP項は、3次元空間内の識別される特徴の位置および配向(例えば、画像内で識別されたオブジェクトの角)の推定値を含むことができる。ノード606は、時間t=1と時間t=2との間で捕捉されたIMU測定値を含むことができる。ノード606におけるIMU測定値は、随意に、予備積分され、算出負荷を低減させることができる。ノード608は、実環境に関する重力推定値を表し得る。重力推定値は、IMUからの慣性測定値に基づく、重力の推定される方向(例えば、ベクトル)のインジケーションを含むことができる。
【0066】
ノード610aおよび610bは、周辺化事前分布を含むことができる。いくつかの実施形態では、周辺化事前分布は、いくつかまたは全ての以前に捕捉されたフレームについての周辺化された情報を含むことができる。いくつかの実施形態では、周辺化事前分布は、いくつかまたは全ての前のカメラ状態(姿勢データを含み得る)、重力推定値、および/またはIMU付帯性質の推定値を含有することができる。いくつかの実施形態では、周辺化事前分布は、前の視覚的および/または慣性測定値への状態の依存性を捕捉し得る、情報行列を含むことができる。いくつかの実施形態では、周辺化事前分布は、ある線形化点に残余誤差を保持する、1つまたはそれを上回る誤差ベクトルを含むことができる。いくつかの理由から、周辺化事前分布を使用することが、有益であり得る。1つの利点は、周辺化項が、最適化が所定の限界を有しない場合、最適化問題が固定された数の変数を有することを可能にし得ることであり得る。例えば、VIOは、ユーザがVIOを起動させて複合現実システムを使用し得る時間長に応じて、任意の数のフレーム上で起動されてもよい。VIO最適化は、したがって、数千ものフレームを最適化することを要求し得、これは、ポータブルシステムの算出限界を超え得る。周辺化事前分布は、最適化問題が、はるかに少ない変数(例えば、3つの変数:周辺化事前分布および2つの直近のフレーム)を用いて算出し得るように、いくつかまたは全ての前のフレームについての情報を単一項内に提供することができる。別の利点は、周辺化事前分布が、前のフレームの長履歴を考慮し得ることである。例えば、算出限界は、最近のフレーム(例えば、3つの直近のフレーム)のみが最適化され得ることを要求し得る。結果として、最適化は、1つのフレーム内に導入される誤差が順方向に伝搬され続け得る、ドリフトに悩まされ得る。多くの前のフレームの情報に近似する、周辺化事前分布は、単一フレームによって導入される誤差を被りにくくあり得る。いくつかの実施形態では、周辺化事前分布610aは、時間t=1に先立って捕捉された全てのフレームからの情報に近似し得る。
【0067】
図6Bは、t=1において捕捉されたフレームおよびt=1において捕捉されたフレームと関連付けられるデータが、周辺化事前分布610aについてのデータと、t=1において捕捉された新しく周辺化されたフレームについてのデータとを含み得る、周辺化事前分布ノード610bの中に周辺化される、例示的実施形態を図示する。いくつかの実施形態では、VIOは、前のフレームを周辺化する、周辺化事前分布に加え、例えば、2つのフレームのスライディングウィンドウサイズを利用することができる。新しいフレームが、VIO最適化(誤差を最小限にし得る)に追加されるにつれて、最も古いフレームは、周辺化事前分布項の中に周辺化されることができる。任意のサイズのスライディングウィンドウが、使用されることができ、より大きいウィンドウサイズは、より正確なVIO推定を生産することができ、より小さいウィンドウサイズは、より効率的VIO計算を生産することができる。いくつかの実施形態では、VIO最適化は、PnP項を表す、ノード(例えば、ノード604)を固定し、姿勢(または状態)推定値、重力推定値、慣性測定値、および/またはIMU付帯性質(ノード602a内に含まれ得る)を表す、ノードのみを最適化することができる。状態推定は、速度推定およびバイアス推定に加え、姿勢推定を含むことができる。
【0068】
いくつかの実施形態では、状態のVIO推定値に因子分解される、各フレームは、関連付けられる加重を有することができる。例えば、誤差を最小限にすることは、多くの識別される特徴が、最適化においてより重く加重される、フレームをもたらし得る。誤差は、視覚的情報(例えば、再投影誤差)および/または慣性情報(例えば、IMUバイアス)から生じ得るため、多数の識別される特徴を伴うフレームは、著しく重く加重され、それによって、最小限化プロセスの間、慣性測定値相対的加重を減少させ得る。フレームの加重のスケーリングを、そのようなスケーリングが、比較によって、IMUデータの加重を低減させ得るため、およびスケーリングが、1つのフレームに対して他のフレームに対してよりはるかに多くの加重を割り当て得るため、識別される特徴に伴って減衰させることが望ましくあり得る。加重スケーリングを減衰させる1つのソリューションは、各識別される特徴の加重をフレーム内の全ての識別される特徴の全ての加重の和の平方根によって除算することである。各減衰された再投影誤差は、次いで、VIO最適化において最小限にされ、それによって、視覚的情報のスケーリングをより多くの識別される特徴に伴って減衰させることができる。
【0069】
いくつかの実施形態では、各識別される特徴は、識別される特徴内の信頼度と関連付けられる加重を有することができる。例えば、識別される特徴と、前のフレーム内の対応する特徴の観察と、フレーム間の推定される運動とに基づく、その予期される場所との間の再投影誤差が、加重され得る(例えば、より大きい再投影誤差は、より低い加重を割り当てられ得る)。別の実施例では、再投影誤差は、画像内の測定された再投影誤差の分布に基づいて、誤対応として、計算から除去されることができる。例えば、最高10%の再投影誤差が、誤対応として、計算から排除されることができるが、動的閾値を含む、任意の閾値は、使用されることができる。
【0070】
いくつかの実施形態では、複合現実システム(例えば、複合現実システム112、200)が、静的であって、移動していない場合、周辺化事前分布が更新される方法を修正することが望ましくあり得る。例えば、複合現実システムが、テーブル上に設定されるが、起動し続けている場合、特徴および慣性測定値を観察し続け得、これは、繰り返される測定に起因して、状態推定における過信頼度につながり得る。したがって、複合現実システムがある閾値時間量にわたって静的であることが検出される場合、周辺化事前分布における情報行列(不確実性を含み得る)の更新を停止することが望ましくあり得る。静的位置は、IMU測定値(例えば、雑音範囲外の有意な測定値を記録しない)から、視覚的情報(例えば、フレームが識別される特徴内の無移動を示し続ける)から、または他の好適な方法で決定されることができる。いくつかの実施形態では、周辺化事前分布の他の成分(例えば、誤差ベクトル、状態の推定)は、更新され続けることができる。
【0071】
バンドル調整および重力推定
【0072】
図5に戻って参照すると、キーリグ挿入が、ステップ508において、決定されることができる。キーリグの使用は、算出負荷を増加させずに、より長いタイムフレームにわたって、より疎のデータにつながり得るため、重力推定、バンドル調整、および/またはVIOのために、キーリグを使用することが、有益であり得る。いくつかの実施形態では、キーリグは、ある時間において捕捉されたものであり得る、マルチカメラシステム(例えば、2つまたはそれを上回るカメラを伴う、MRシステム)からのキーフレームのセットであることができる。いくつかの実施形態では、キーリグは、キーフレームであることができる。キーリグは、任意の基準に基づいて、選択されることができる。例えば、キーリグは、キーリグ間の経過時間に基づいて、時間ドメインにおいて選択されることができる(例えば、0.5秒毎に1つのフレームが、キーリグとして選択されることができる)。別の実施例では、キーリグは、識別される特徴に基づいて、空間ドメインにおいて選択されることができる(例えば、フレームは、前のキーリグと比較して、十分に類似または異なる特徴を有する場合、キーリグとして選択されることができる)。キーリグは、メモリに記憶および保存されることができる。
【0073】
いくつかの実施形態では、稠密キーリグ挿入(重力推定のために有用であり得る)が、実施されることができる(例えば、標準的キーリグ挿入が、著しく疎のデータを提供する場合)。いくつかの実施形態では、閾値条件が、稠密キーリグ挿入が実施される前に満たされ得る。1つの閾値条件は、VIO最適化が、依然として、重力入力を受け取っているかどうかであり得る。別の閾値条件は、閾値時間量(例えば、0.5秒)が最後のキーリグが挿入された以降に経過したかどうかであり得る。例えば、慣性測定値は、IMU誤差(例えば、バイアスまたはドリフト)の結果として、短時間長にわたってのみ有効であり得、したがって、慣性測定値が収集される(随意に、予備積分される)とき、キーリグ間の時間量を限定することが望ましくあり得る。別の閾値条件は、直近のキーリグ候補と直近のキーリグとの間に十分な運動が存在するかどうかであり得る(すなわち、全ての変数を観察可能にするために十分な運動を有することが望ましくあり得る)。別の閾値条件は、最も新しいキーリグ候補が、十分に高品質であるかどうかであり得る(例えば、新しいキーリグ候補が、再投影正対応と再投影誤対応の十分に高比率を有するかどうか)。これらの閾値条件のいくつかまたは全ては、稠密キーリグ挿入の前に要求され得、他の閾値条件も同様に、使用されてもよい。
【0074】
ステップ510では、キーリグバッファが、維持されることができる。キーリグバッファは、挿入されたキーリグを記憶するように構成される、メモリを含むことができる。いくつかの実施形態では、キーリグは、関連付けられる慣性測定値データ(例えば、未加工慣性測定値または予備積分された慣性測定値)および/または(例えば、キーリグが捕捉されたときの)関連付けられるタイムスタンプとともに記憶されることができる。また、キーリグ間の時間間隙が、慣性測定値を予備積分するための有効性を維持するために十分に短いかどうかも決定されることができる。時間間隙が十分に短くないことが決定される場合、バッファは、不良推定(例えば、不良重力推定)を回避するために、リセットされ得る。キーリグおよび関連付けられるデータは、データベース511内に記憶されることができる。
【0075】
ステップ512では、バンドル調整が、実施されることができる。バンドル調整は、フレームを横断して識別される特徴の繰り返される観察に基づいて、カメラ姿勢、状態、特徴位置、および/または他の変数の推定値を最適化し、(例えば、識別される特徴の位置の)推定の正確度および信頼度を増加させることができる。同一の識別される特徴が、複数回、観察され得るが、各観察は、誤差(例えば、IMUバイアス、特徴検出不正確度、カメラ較正誤差、算出簡略化等)の結果として、他の観察と一致しない場合がある。したがって、入力観察の誤差を最小限にしながら、識別される特徴の複数の観察を使用して、3次元マップ内の識別される特徴の可能性が高い位置を推定することが望ましくあり得る。バンドル調整は、(例えば、30個のキーリグの)スライディングウィンドウにわたって、フレーム(またはキーリグ)を最適化するステップを含み得る。これは、固定遅れ平滑化と称され得、過去の誤差を蓄積し得る、カルマンフィルタの使用より正確であり得る。いくつかの実施形態では、バンドル調整は、視覚的慣性バンドル調整であることができ、バンドル調整は、視覚的データ(例えば、カメラからの画像)と、慣性データ(例えば、IMUからの測定値)とに基づく。バンドル調整は、VIOによって生成された3次元マップより正確であり得る、識別される特徴の3次元マップを出力することができる。バンドル調整は、VIO推定が、フレーム毎ベースで実施され得、バンドル調整が、キーリグあたりベースで実施され得るため、VIO推定より正確であり得る。いくつかの実施形態では、バンドル調整は、MRシステムの位置および/または配向(ユーザの位置および/または配向に近似し得る)に加え、マップ点(例えば、識別される特徴)を最適化することができる。いくつかの実施形態では、VIO推定は、MRシステムの位置および/または配向のみを最適化し得る(例えば、VIO推定が、マップ点を固定入力としてとり得るため)。キーリグを利用することは、入力データが、算出負荷を増加させずに、より長いタイムフレームに及ぶことを可能にすることができ、これは、正確度の増加をもたらし得る。いくつかの実施形態では、バンドル調整は、VIOと比較してより正確な推定を可能にする(より最適化されたフレームに起因して)、より強力なプロセッサ上で遠隔で実施されてもよい。
【0076】
いくつかの実施形態では、バンドル調整は、視覚的誤差(例えば、再投影誤差)および/または慣性誤差(例えば、前のキーリグおよび次のキーリグへの移動に基づいて、識別される特徴の位置の推定値から生じる誤差)を含み得る、誤差を最小限にするステップを含み得る。誤差を最小限にするステップは、誤差の二乗平均平方根を識別し、全ての誤差の最低平均二乗平均平方根を達成するために、推定値を最適化することによって行われることができる。また、他の最小限化方法も、使用されてもよいことが検討される。いくつかの実施形態では、個々の測定値は、個々の加重を割り当てられることができる(例えば、測定値は、測定値の正確度における信頼度に基づいて、加重されることができる)。例えば、1つを上回るカメラから捕捉された画像からの測定値は、各カメラの品質に従って、加重されることができる(例えば、より高い品質のカメラは、より多くの加重を伴って、測定値を生産し得る)。別の実施例では、測定値は、測定値が記録された時間におけるセンサの温度に従って、加重されることができる(例えば、センサは、規定された温度範囲内で最適に性能を発揮し得、したがって、その温度範囲内で得られた測定値は、より重く加重され得る)。いくつかの実施形態では、深度センサ(例えば、LIDAR、飛行時間カメラ等)が、視覚的および慣性測定値に加え、情報を提供することができる。深度情報もまた、深度情報と関連付けられる誤差も最小限にすることによって、バンドル調整内に含まれることができる(例えば、深度情報が、視覚的および慣性情報から構築される推定される3次元マップと比較されるとき)。いくつかの実施形態では、大域的バンドル調整が、(例えば、キーリグの代わりに)バンドル調整出力を入力として使用して実施され、正確度をさらに改良することができる。
【0077】
図7Aは、バンドル調整を実施するための例示的決定プロセスを図示する。ステップ702では、新しいキーリグが、最適化のためのスライディングウィンドウに追加されることができる。ステップ704では、スライディングウィンドウ内の各キーリグ間の時間インターバルが、評価されることができる。時間インターバルのいずれも、ある静的または動的時間閾値(例えば、0.5秒)を上回らない場合、視覚的慣性バンドル調整が、ステップ706において、データベース705からの慣性測定値と、データベース712からのキーリグ(画像であり得る)とを使用して、実施されることができる。データベース705およびデータベース712は、同一データベースまたは別個のデータベースであることができる。いくつかの実施形態では、シーケンシャルキーリグ間の少なくとも1つの時間インターバルが、ある静的または動的時間閾値を上回る場合、空間バンドル調整が、ステップ710において、実施されることができる。時間インターバルが、静的または動的時間閾値を上回る場合、IMU測定値のみが、短期間にわたる積分のために有効であり得るため(例えば、センサ雑音および/またはドリフトに起因して)、慣性測定値を除外することが、有益であり得る。空間バンドル調整は、随意に、視覚的慣性バンドル調整と異なるキーリグのセットに依拠してもよい。例えば、スライディングウィンドウは、ある時間またはあるキーリグの数に固定された状態から、空間ドメインに固定された状態に変化してもよい(例えば、スライディングウィンドウは、ある移動の量に固定される)。ステップ708では、最も古いキーリグは、スライディングウィンドウから除去されることができる。
【0078】
図7Bは、バンドル調整を実施するための例示的決定プロセスを図示する。ステップ720では、新しいキーリグが、最適化のために、スライディングウィンドウに追加されることができる。ステップ722では、時間的に直近のキーリグが、キーリグ730のデータベースから読み出されることができる。例えば、最も直近で捕捉されたキーリグ(例えば、関連付けられるタイムスタンプに基づいて)の数(例えば、5)が、読み出されてもよい。ステップ724では、各読み出されたキーリグ間の時間インターバルが、静的または動的閾値(例えば、0.5秒)を下回るかどうかが決定されることができる。捕捉されたキーリグ間の各インターバルが、静的または動的閾値を下回る場合、視覚的慣性バンドル調整は、ステップ726において、実施されてもよく、これは、キーリグからの視覚的情報に加え、慣性測定値を利用してもよい。捕捉されたキーリグ間の少なくとも1つの時間インターバルが、静的または動的閾値を上回る場合、ステップ728では、空間的に近接するキーリグが、データベース730から読み出されてもよい。例えば、最も新しいキーリグ内の識別される特徴に対応する、閾値数の識別される特徴を伴う、キーリグが、読み出されることができる。ステップ728では、空間バンドル調整が、実施されてもよく、これは、キーリグからの視覚的情報を使用してもよく、バンドル調整に関する慣性情報を使用しなくてもよい。
【0079】
他の決定プロセスもまた、バンドル調整を実施するために使用されることができる。例えば、ステップ704および/または724では、シーケンシャルキーリグ間の任意の時間インターバルが、静的または動的閾値時間を超えるかどうかが決定されることができる。少なくとも1つの時間インターバルが、閾値を超えると決定される場合、慣性測定値は、2つの関連キーリグ間で無視されることができるが、依然として、時間インターバル閾値に準拠する、全ての残りのキーリグのために使用されることができる。別の実施例では、時間インターバルが、閾値を超えると決定される場合、1つまたはそれを上回る付加的キーリグが、2つの関連キーリグ間に挿入されることができ、視覚的慣性バンドル調整が、実施されることができる。いくつかの実施形態では、キーリグバッファ内またはデータベース511および/または730内に記憶される、キーリグは、バンドル調整の結果で更新されることができる。
【0080】
図5に戻って参照すると、ステップ514では、独立型重力推定が、実施されることができる。ステップ514において実施される独立型重力推定は、例えば、より強力なプロセッサ上で、またはより長いタイムフレームにわたって、実施され、付加的変数(例えば、フレームまたはキーリグ)にわたる最適化を可能にし得るため、ステップ506において決定されたVIO重力推定より正確であり得る。独立型重力推定は、キーリグ(キーフレームを備えることができる)を利用して、重力(例えば、ベクトル)を推定することができ、これは、SLAMおよび/またはVIOのために使用され得る。キーリグは、それらが、より長い期間にわたって、算出限界を超えずに、独立型重力推定が実施されることを可能にし得るため、有益であり得る。例えば、30秒にわたる独立型重力推定は、1秒にわたる独立型重力推定より正確であり得るが、30秒推定は、ビデオが30fpsで記録された場合、900枚のフレームを最適化することを要求し得る。キーリグは、重力推定が60フレームを最適化することのみを要求し得るように、より疎のインターバル(例えば、2回/秒)において取得されることができる。いくつかの実施形態では、独立型重力推定のために使用される、キーリグは、稠密キーリグ挿入(ステップ508において実施され得る)の結果であり得る。重力推定値はまた、単純フレームを利用することができる。実コンテンツに対応する、仮想コンテンツの表示をアンカするための重力の方向を推定することが望ましくあり得る。例えば、不良重力推定値は、仮想コンテンツが実コンテンツに対して傾斜されて現れることにつながり得る。IMUは、重力を含み得る、慣性測定値を提供し得るが、慣性測定値はまた、全ての他の運動(例えば、実際の運動または雑音)を含み得、これは、重力ベクトルを不明瞭にし得る。
【0081】
図8は、独立型重力推定の例示的グラフを図示する。例示的グラフは、視覚的に、いくつかの変数の関数の非線形因子分解を描写し得る。例えば、変数(例えば、802aおよび802b)は、円形ノードとして表され得、変数の関数(例えば、因子とも呼ばれる、804)は、正方形ノードとして表され得る。各因子は、任意の結び付けられた変数の関数であり得る。ノード802aおよび802bは、時間i=0において捕捉された画像と関連付けられるデータを表し得る。ノード802aは、IMU測定値における誤差の推定値であり得る、IMU状態を表す、データを含むことができる。IMU状態は、VIO方法から出力されることができる。ノード802bは、特定のキーリグと関連付けられるキーリグ姿勢を表す、データを含むことができる。キーリグ姿勢は、バンドル調整の出力に基づくことができる。ノード804は、IMU項縁を含むことができ、これは、予備積分された慣性移動を含むことができる。ノード804はまた、他の結び付けられるノードを相互に関連させる、誤差関数を定義し得る。ノード806は、IMU付帯性質(複合現実システムに対するIMUの精度および配向に対応し得る)を表す、データを含むことができ、ノード808は、重力推定値を含むことができる。重力推定最適化は、ノード804における誤差関数を最小限にするステップを含むことができる。いくつかの実施形態では、キーリグ姿勢およびIMU付帯性質(例えば、ノード802bおよび806)に関連するノードは、固定されることができる、IMU状態および重力(例えば、ノード802aおよび808)に関連するノードは、最適化されることができる。
【0082】
図5に戻って参照すると、ステップ515では、独立型重力推定およびバンドル調整からの結果が、VIO出力に適用されることができる。例えば、VIO重力推定値と独立型重力推定値との間の差異および/またはVIO姿勢推定値とバンドル調整姿勢推定値との間の差異が、変換行列によって表され得る。変換行列は、VIO姿勢推定値および/または周辺化事前分布の姿勢推定値に適用されることができる。いくつかの実施形態では、変換行列の回転成分が、VIOおよび/またはVIOの重力推定値によって推定される状態に適用されることができる。いくつかの実施形態では、独立型重力推定値は、生成されたマップが、大きすぎる状態になる場合、VIO重力推定値を補正するために適用され得ない(すなわち、独立型重力推定値が、多すぎるフレームに適用される必要がある場合、算出上実行不可能であり得る)。いくつかの実施形態では、グループ516内のブロックは、グループ518内のブロックと別個の場所で実施されることができる。例えば、グループ516は、電力効率的プロセッサと、ディスプレイとを含み得る、ウェアラブル頭部デバイスで実施されることができる。グループ518は、より強力なプロセッサを含み得る、取り付けられたデバイス(例えば、腰部装着可能デバイス)で実施されることができる。ユーザが仮想コンテンツのために短待ち時間視覚的フィードバックを有し得るように、ほぼリアルタイムで、ある計算(例えば、グループ516内のもの)を実施することが望ましくあり得る。また、より正確かつ算出上高価な計算並列および後方伝搬補正を実施し、仮想コンテンツの長期正確度を維持することが望ましくあり得る。
【0083】
二重IMU SLAM
【0084】
いくつかの実施形態では、2つまたはそれを上回るIMUが、SLAM計算のために使用されることができる。第2のIMUの追加は、SLAM算出の正確度を改良することができ、これは、ジッタおよび/またはドリフトを仮想コンテンツ内に殆どもたらし得ない。SLAM算出における第2のIMUの追加はまた、マップ点と関連付けられる情報が、より正確なSLAM算出のために十分ではあり得ない(例えば、低テクスチャ(例えば、1つの色における平坦壁等の幾何学的または視覚的特徴を欠いている壁)、低光量、低光量および低テクスチャ)、状況において有利であり得る。いくつかの実施例では、ドリフトに関して14~19%およびジッタに関して10~20%の低減が、SLAMを算出するための、1つのIMUの使用と比較して、2つのIMUを使用して、達成され得る。ドリフトおよびジッタは、実際の位置(例えば、複合現実環境内のオブジェクトの実際の位置)に対して弧分単位で測定され得る。
【0085】
いくつかの実施形態では、第2のIMUは、低光量または低テクスチャ状況で使用されてもよく、第2のIMUは、複合現実環境の照明および/またはテクスチャが十分である、状況では使用されなくてもよい。いくつかの実施形態では、複合現実システムのセンサからの1つまたはそれを上回る視覚的メトリックおよび情報が、複合現実環境の照明および/またはテクスチャが十分である(例えば、十分なテクスチャが、複合現実環境のオブジェクトから決定される、複合現実環境内の十分な照明が、決定される)かどうかを決定するために使用される。例えば、MRシステムのセンサが、複合現実環境と関連付けられる、照明および/またはテクスチャ情報を捕捉するために使用されてもよく、捕捉された情報は、照明および/またはテクスチャ閾値と比較され、照明および/またはテクスチャが十分であるかどうかを決定してもよい。照明および/またはテクスチャが、十分ではないと決定される場合、第2のIMUが、本明細書に開示されるように、予備積分項計算(例えば、より良好な正確度のため、潜在的ジッタおよび/またはドリフトを低減させるため)のために使用されてもよい。いくつかの実施形態では、1つのIMUを用いた算出および2つのIMUを用いた算出は、比較され、算出間の差異が、閾値内である場合、SLAM算出のために1つのIMUを使用することが、これらのインスタンスでは、十分であり得る。例示的利点として、複合現実環境の照明および/またはテクスチャが十分であると決定される、状況において、1つのIMUを使用する能力は、電力消費を低減させ、算出時間を短縮させ得る。
【0086】
いくつかの実施形態では、第2のIMUは、同一値の反復測定が得られることを有効にし得、これは、測定された値における信頼度を増加させ得る。例えば、第1のIMUは、第1の角速度を測定し得、第2のIMUは、同時に、第2の角速度を測定し得る。
【0087】
第1のIMUおよび第2のIMUは、同一剛体(例えば、剛体は、無視可能な変形を被る、剛体は、ウェアラブル頭部デバイスのフレームであってもよい)に結合されてもよい。第1のIMUと関連付けられる第1の角速度および第2のIMUと関連付けられる第2の角速度は両方とも、同一グラウンドトゥルース角速度の測定値であり得る。いくつかの実施形態では、同一値の反復測定は、各個々の測定値における雑音をキャンセリングすることによって、グラウンドトゥルース値のより正確な推定値を生産することができる。いくつかの実施形態では、2つのIMUを同一剛体に結合することは、本明細書に説明されるように、2IMUシステムにおいて、SLAM算出を促進し得る。短待ち時間は、SLAM計算にとって非常に重要であり得るため、付加的データの正確度利得を保存しながら、算出上効率的様式において、付加的慣性情報を組み込む、システムおよび方法を開発することが望ましくあり得る。
【0088】
図9は、いくつかの実施形態による、複合現実システム内の例示的IMU構成を図示する。いくつかの実施形態では、MRシステム900(MRシステム112、200に対応し得る)は、IMU902aと、IMU902bとを含むように構成されることができる。いくつかの実施形態では、IMU902aおよび902bは、IMUの速度が結合されるように、複合現実システムに剛性に結合される(例えば、複合現実システムのフレームに取り付けられる)。例えば、2つの速度間の関係が、個別のIMU位置と関連付けられる角速度およびベクトル等の既知の値を使用して、算出されてもよい。本明細書に説明されるように、2つの速度が結合されるIMUを備える、システムは、有利なこととして、概して、特に、複合現実環境における低光量および/または低テクスチャ状況において、1つのIMUシステムと比較して、より良好な算出正確度を観察しながら、システムと関連付けられる予備積分項の算出の複雑性を低減させ得る。
【0089】
いくつかの実施形態では、MRシステム900は、IMU902aが、可能な限り、カメラ904aに近接し、IMU902bが、可能な限り、カメラ904bに近接するように構成されることができる。いくつかの実施形態では、カメラ904aおよび904bは、SLAMのために使用されることができる(例えば、カメラ904aおよび904bは、オブジェクト/縁認識および/またはVIOの視覚的成分のために使用されることができる)。SLAMカメラによって被られる移動を正確に追跡するように(例えば、SLAMカメラの移動に関する代用として、IMUの移動を使用することによって)、IMUが、可能な限り、SLAMカメラに近接するように、MRシステム900を構成することが望ましくあり得る。
【0090】
図10は、いくつかの実施形態による、複合現実システム内の例示的IMU構成を図示する。いくつかの実施形態では、2つのIMUセンサ(例えば、IMU1002およびIMU1004)は、概して、2つのIMU項縁および/または予備積分項を提供することができる。例えば、IMU1002と関連付けられる、予備積分項の成分は、方程式(1)、(2)、および(3)によって表され得、式中、
【化1】
は、IMU1002に対応する、四元数(MRシステムの回転および/または配向を表し得る)を表し得、
【化2】
は、点W(MRシステム上に存在する、および/またはMRシステムの中心であり得る)を中心としてIMU1002によって測定される、角速度を表し得、
【化3】
は、点Wに対するIMU1002における、線形速度を表し得、
【化4】
は、点Wに対するIMU1002における、線形加速を表し得、
【化5】
は、点Wに対するIMU1002の場所を表し得る。
【化6】
【0091】
同様に、方程式(4)、(5)、および(6)は、IMU1004と関連付けられる、予備積分項の成分を表し得る。
【化7】
【0092】
tおよびΔtが、特定の時間における、個別のIMUの回転、角速度、および角加速を説明するために使用されるが、異なる数量は、正確に同時には捕捉され得ないことを理解されたい。例えば、ハードウェアタイミングに起因して、2つのIMU間のデータ捕捉またはサンプリング間には、遅延が存在し得る(例えば、200ms)。これらのインスタンスでは、MRシステムは、2つのIMU間のデータのセットを同期させ、本遅延を考慮し得る。別の実施例として、異なる数量と関連付けられる、IMUデータが、本システムの同一クロックサイクルの間の異なる時間において、サンプリングまたは捕捉され得る。クロックサイクルの周期は、システムのタイミング分解能要件によって決定されてもよい。
【0093】
いくつかの実施形態では、方程式(1)-(6)に関する解が、第1および第2のIMUと関連付けられる予備積分項を算出するために解法され得る。例えば、解は、連立方程式の解と関連付けられる誤差を低減させるために、回帰分析(例えば、最小二乗法)または他の好適な方法を使用してもよい。
【0094】
いくつかの実施形態では、IMU1002と関連付けられる予備積分項およびIMU1004と関連付けられる予備積分項は、IMU1002およびIMU1004が相互に剛性に結合される(例えば、MRシステム900に対応し得る、剛体1006を介して)場合、運動学的に制約され得る。これらのインスタンスでは、方程式(1)-(6)と関連付けられる、変数は、本結合に起因して、低減され得る。いくつかの実施形態では、IMU1002とIMU1004との間の剛性結合は、両方の予備積分項が同一変数内に表されることを可能にすることができる。方程式(7)は、(剛性結合に起因する)IMU1002において測定された変数とIMU1004において測定された変数との間の関係を表し得、式中、
【化8】
は、IMU1002とIMU1004との間の位置関係(例えば、ベクトル)を表し得、ωは、複合現実システムと関連付けられる角速度(例えば、IMU1002と関連付けられる角速度、IMU1004と関連付けられる角速度、IMU1002およびIMU1004と関連付けられる平均角速度、本システムと関連付けられる雑音低減された角速度、本システムと関連付けられるバイアス除去された角速度)を表し得る。
【化9】
【0095】
IMU1002とIMU1004との間の運動学的関係を使用して、方程式(8)、(9)、および(10)が、IMU1004に関する予備積分項の成分として、方程式(4)、(5)、および(6)に取って代わり得る。
【化10】
【0096】
上記に例示されるように、IMU1002およびIMU1004を剛性に結合することによって、2つのIMU間の関係が、導出され得(例えば、方程式(7)を使用して)、IMU予備積分項と関連付けられる、IMU方程式のセット(例えば、方程式(4)、(5)、および(6))は、有利なこととして、(例えば、方程式(8)、(9)、および(10)に)簡略化され、概して、1IMUシステムと比較して、より良好な算出正確度を観察しながら、2つのIMUと関連付けられる予備積分項の算出の複雑性を低減させることができる。
【0097】
方程式(4)、(5)、および(6)は、第1のIMUの観点から簡略化されるが、方程式(1)、(2)、および(3)は、代わりに、類似計算を実施するように簡略化されてもよい(例えば、第2のIMUの観点から)ことを理解されたい。IMU1002と関連付けられる、角速度が、方程式(8)、(9)、および(10)で使用されるが、複合現実システムと関連付けられる、異なる角速度が、予備積分項を計算するために使用されてもよいことを理解されたい。例えば、IMU1002とIMU1004との間の平均角速度が、方程式(8)、(9)、および(10)で使用されてもよい。
【0098】
MRシステムに結合するIMU(例えば、IMU902a、IMU902b、IMU1002、IMU1004)の剛性は、経時的に変化し得る。例えば、IMUをMRシステムのフレームに取り付けるために使用される機構は、塑性または非弾性変形を被り得る。これらの変形は、2つのIMU間の数学的関係に影響を及ぼし得る。具体的には、これらの変形は、方程式(7)の正確度と、方程式(7)から導出される、第1のIMU(例えば、IMU902a、IMU1002)と関連付けられる方程式のセットと第2のIMU(例えば、IMU902b、IMU1004)と関連付けられる方程式のセットとの間の関係の正確度とに影響を及ぼし得る。これらの変形は、IMUと関連付けられる、予備積分項の正確度にも影響を及ぼし得る。いくつかの実施形態では、IMUの位置は、SLAM算出に先立って、較正されてもよい。例えば、SLAM算出に先立って、IMUの現在の位置(例えば、MRシステムのセンサを使用することによって取得される)は、所定の値(例えば、既知のIMU位置、理想的IMU位置、製造されたIMU位置)と比較されてもよく、差異(例えば、オフセット)が、SLAM算出において考慮されてもよい(例えば、方程式(7)における差異を除去する)。SLAM算出に先立って、IMUを較正し、IMU結合における潜在的変形を考慮することによって、予備積分項およびSLAM算出と関連付けられる、正確度は、有利なこととして、増加され得る。
【0099】
図11は、いくつかの実施形態による、SLAMの例示的グラフ表現を図示する。
図11におけるグラフ表現は、いくつかの変数の関数の非線形因子分解を描写し得る。例えば、変数(例えば、1110、1112、1114、1116、および1122)は、円形ノードとして表され得、変数の関数(例えば、因子とも呼ばれる、1102、1118、および1120)は、正方形ノードとして表され得る。各因子は、任意の(または全ての)結び付けられる変数の関数であり得る。
【0100】
いくつかの実施形態では、状態1102は、時間t=1における、システム状態(例えば、MRシステムの状態)および/またはシステム状態における任意の変数を表し得る。同様に、状態1104は、時間t=2における、システム状態および/またはシステム状態における任意の変数を表し得、状態1106は、時間t=3における、システム状態および/またはシステム状態における任意の変数を表し得る。システム状態は、その時点で捕捉されたキーリグに対応し得る。システム状態は、状態内の1つまたはそれを上回る変数の状態を含む(および/またはそれによって定義される)ことができる。例えば、状態1102は、PnP項1108を含むことができる。いくつかの実施形態では、状態1102は、姿勢推定1110を含むことができる。いくつかの実施形態では、状態1102は、第1の(および/または左)IMU(IMU902aまたはIMU1002に対応し得る)のバイアス項1112を含むことができる。いくつかの実施形態では、バイアス項1112は、線形加速度計およびジャイロスコープに関するバイアス値を含むことができる。いくつかの実施形態では、バイアス項1112は、個々の測定軸に対応する、線形加速度計およびジャイロスコープ毎のバイアス値を含むことができる。いくつかの実施形態では、状態1102は、第2の(および/または右)IMU(IMU902bまたはIMU1004に対応し得る)のバイアス項1114を含むことができる。バイアス項1114は、バイアス項1112と類似する対応するバイアス値を含むことができる。いくつかの実施形態では、状態1102は、速度項1116を含むことができる。速度項1116は、本システムの角速度を含むことができる。いくつかの実施形態では、本システムが、実質的に剛体である場合、角速度は、第1のIMUと関連付けられる角速度、第2のIMUと関連付けられる角速度、第1および第2のIMUと関連付けられる平均角速度、本システムと関連付けられる雑音低減された角速度、および本システムと関連付けられるバイアス除去された角速度のうちの1つであり得る。いくつかの実施形態では、速度項1116は、本システム内の1つまたはそれを上回る場所に対応する、1つまたはそれを上回る線形速度値(例えば、本システム内の各IMUにおける線形速度値)を含むことができる。いくつかの実施形態では、状態1102は、ステートレス項1122を含むことができる。ステートレス項1122は、特定の状態に依存し得ない、1つまたはそれを上回る変数を含むことができる。例えば、ステートレス項1122は、重力変数を含むことができ、これは、重力の推定される方向を含み得る。いくつかの実施形態では、ステートレス項1122は、IMU付帯性質(例えば、MRシステム900内のIMU904aまたはIMU1002および/または904bまたは1004の相対的位置)を含むことができる。
【0101】
いくつかの実施形態では、2つの予備積分項が、2つのシステム状態を相互に関連させることができる。例えば、予備積分項1118および予備積分項1120は、状態1102を状態1104に関連させることができる。いくつかの実施形態では、予備積分項1118(IMU904aまたはIMU1002に対応し得る)および予備積分項1120(IMU904bまたはIMU1004に対応し得る)は、同一の変数のセットの関数であり得る。非線形最適化計算の本構造化は、いくつかの利点を提供することができる。例えば、第2の予備積分項(
図8における単一IMUを使用する、非線形因子分解と比較して)は、第2の予備積分項が、本明細書に説明されるように、第1の予備積分項に運動学的に制約され得るため、算出電力の比例増加を要求し得ない。しかしながら、第2のIMUからのデータの追加は、単一IMU因子分解と比較して、ジッタおよび/またはドリフトにおける改良をもたらし得る。
【0102】
図12は、いくつかの実施形態による、仮想コンテンツを提示するための例示的プロセスを図示する。簡潔にするために、
図9-11に関して説明される方法のステップと関連付けられる実施例は、再び、ここでは説明されないであろう。ステップ1202では、画像データが、受信されることができる(例えば、MRシステムのセンサを介して)。画像データは、写真および/または視覚的特徴(例えば、縁)を備えることができる。
【0103】
ステップ1204では、第1の慣性データが、第1の慣性測定ユニット(例えば、IMU902a、IMU1002)を介して受信されることができ、第2の慣性データが、第2の慣性測定ユニット(例えば、IMU902b、IMU1004)を介して受信されることができる。いくつかの実施形態では、第1の慣性測定ユニットおよび第2の慣性測定ユニットは、剛体を介して、ともに結合されることができる。剛体は、通常使用下で変形しないように構成される、物体であることができる(例えば、堅性プラスチック、金属等から成る)。第1の慣性データおよび/または第2の慣性データは、1つまたはそれを上回る線形加速測定値(例えば、3つの測定軸のそれぞれに沿った3つの測定値)および/または1つまたはそれを上回る角速度測定値(例えば、3つの測定軸のそれぞれに沿った3つの測定値)を含むことができる。いくつかの実施形態では、第1の慣性データおよび/または第2の慣性データは、線形速度測定値および/または角加速測定値を含むことができる。
【0104】
ステップ1206では、第1の予備積分項および第2の予備積分項が、画像データ、第1の慣性データ、および第2の慣性データに基づいて、計算されることができる。いくつかの実施形態では、第1の予備積分項および第2の予備積分項は、非線形に関連する変数および関数のグラフ最適化を使用して、計算されることができる。例えば、
図11に描写される因子グラフが、第1の予備積分項(例えば、予備積分項1118)および第2の予備積分項(例えば、予備積分項1120)を計算するために使用されることができる。いくつかの実施形態では、因子グラフを最適化し、および/または因子グラフ内の関数を計算するステップは、その他を最適化しながら、いくつかの変数を固定するステップを伴い得る。
【0105】
ステップ1208では、ウェアラブル頭部デバイスの位置が、第1の予備積分項および第2の予備積分項に基づいて、推定されることができる。いくつかの実施形態では、位置が、非線形に関連する変数および関数のグラフ最適化を使用して、推定されることができる。例えば、
図11に描写される因子グラフが、位置を推定するために使用されることができる(例えば、姿勢項1110)。いくつかの実施形態では、因子グラフを最適化し、および/または因子グラフ内の関数を計算するステップは、その他を最適化しながら、いくつかの変数を固定するステップを伴い得る。
【0106】
ステップ1210では、仮想コンテンツが、位置に基づいて、提示されることができる。いくつかの実施形態では、仮想コンテンツは、本明細書に説明されるように、ウェアラブル頭部デバイスの1つまたはそれを上回る透過型ディスプレイを介して、提示されることができる。いくつかの実施形態では、MRシステムは、位置に基づいて、ユーザの視野を推定し得る。仮想コンテンツがユーザの視野内にあることが決定される場合、仮想コンテンツは、ユーザに提示されることができる。
【0107】
いくつかの実施形態では、キーリグが、時間インターバルによって分離される。例えば、
図6A、6B、8、および11に関して説明されるように、隣接するキーリグ(例えば、t=0およびt=1、t=1およびt=2等、i=0およびi=1、i=1およびi=2等、変数1102および1104の関数、変数1104および1106の関数等)が、個別の時間インターバルによって分離される。個別の時間インターバルは、異なってもよい(例えば、キーリグが生成された時間が、本システムによって決定されてもよい)。いくつかの実施例では、キーリグ間の時間インターバが、最大時間インターバル(例えば、5秒)を上回るとき、視覚的慣性バンドル調整のために予備積分(例えば、ノード606、ノード804、予備積分項1118、1120)を使用する利点は、低減され得る(例えば、隣接するキーリグが最大時間インターバル未満のときに予備積分を使用することと比較して、低減された正確度、隣接するキーリグが最大時間インターバルを上回るときに予備積分を使用しないことと比較して、低減された正確度)。したがって、予備積分の利点が低減されるとき、バンドル調整のために予備積分を使用しないことが望ましくあり得る。
【0108】
いくつかの実施形態では、本システム(例えば、複合現実システム112、複合現実システム200、
図4における複合現実システム、複合現実システム900)は、キーリグ間の時間インターバルが最大時間インターバル(例えば、5秒)を上回るかどうかを決定する。本決定に基づいて、本システムは、隣接するキーリグに対応するバンドル調整のために、予備積分を使用するかどうかを決定する。例示的利点として、バンドル調整正確度が、予備積分があまり正確ではないとき(例えば、隣接するキーリグ間の時間インターバルが最大時間インターバルを上回るとき)に予備積分を使用しないことによって、最適化される(例えば、隣接するキーリグが最大時間インターバルを上回るときに予備積分を使用することと比較して改良された正確度、隣接するキーリグが最大時間インターバルを上回り、加重が調節されないときに予備積分を使用することと比較して改良された正確度)。いくつかの実施形態では、別の例示的利点として、予備積分があまり正確ではないとき、予備積分を使用しないことによって、バンドル調整正確度が、任意の加重調節を伴わずに、かつコンピューティング時間およびリソース必要性を低減させずに、最適化され得る。
【0109】
いくつかの実施形態では、時間インターバルが最大時間インターバルを上回らないことの決定に従って、本システムは、バンドル調整のために、予備積分を使用する。例えば、時間インターバルが、最大時間インターバルを上回らないとき、視覚的慣性バンドル調整が、本明細書に説明されるように、実施される。
【0110】
いくつかの実施形態では、時間インターバルが最大時間インターバルを上回ることの決定に従って、本システムは、バンドル調整のために、予備積分を使用しない。例えば、時間インターバルが、最大時間インターバルを上回るとき、空間バンドル調整が、本明細書に説明されるように、実施される(例えば、視覚的慣性バンドル調整の代わりに)。本ステップを含む、方法は、ハイブリッド視覚的慣性バンドル調整として知られ得る。別の実施例として、時間インターバルが、最大時間インターバルを上回るとき、視覚的慣性バンドル調整が、実施されるが、対応する予備積分項(例えば、ノード606、ノード804、予備積分項1118、1120)は、
図6A、6B、8、および11に関して説明されるように、グラフに追加されない。本ステップを含む、方法は、部分的視覚的慣性バンドル調整として知られ得る。
【0111】
図11および二重IMUに関して本明細書に説明される技法および方法はまた、他の点に適用されることができる。例えば、二重IMUデータは、
図6A-6Bに関して説明される、VIO方法で使用されることができる。二重IMUデータはまた、
図8に関して説明される重力推定方法のために使用されることができる。例えば、第2の予備積分項は、
図6A-6Bおよび/または
図8におけるグラフ最適化および各IMUのバイアスのための変数に追加されることができる。
【0112】
グラフ最適化(例えば、
図6A-6B、8、および/または11に描写される最適化)は、1つまたはそれを上回る変数値を含む、可変ノードを描写し得るが、変数ノード内の変数値は、1つまたはそれを上回る個々のノードとして表され得ることが検討される。本明細書に説明される技法および方法は、二重IMUグラフ最適化構造を開示するが、類似技法および方法は、他のIMU構成(3つのIMU、4つのIMU、10のIMU等)のためにも使用されることができることが検討される。例えば、グラフ最適化モデルは、各IMUに対応する、姿勢推定、1つまたはそれを上回るバイアス項(に対応する、各IMU)、速度、重力方向、および1つまたはそれを上回るIMU付帯値の関数であり得る、IMU毎の予備積分項を含んでもよい。
【0113】
開示される実施例は、付随の図面を参照して完全に説明されたが、種々の変更および修正が、当業者に明白となるであろうことに留意されたい。例えば、1つまたはそれを上回る実装の要素は、組み合わせられ、削除され、修正され、または補完され、さらなる実装を形成してもよい。そのような変更および修正は、添付の請求項によって定義されるような開示される実施例の範囲内に含まれるものとして理解されるべきである。
【国際調査報告】