(19)【発行国】日本国特許庁(JP)
(12)【公報種別】特許公報(B2)
(11)【特許番号】
(24)【登録日】2023-11-15
(45)【発行日】2023-11-24
(54)【発明の名称】モバイル装置の相対的な空間位置決め
(51)【国際特許分類】
G06T 7/70 20170101AFI20231116BHJP
G06T 7/60 20170101ALI20231116BHJP
A63F 13/213 20140101ALI20231116BHJP
A63F 13/428 20140101ALI20231116BHJP
A63F 13/837 20140101ALI20231116BHJP
【FI】
G06T7/70 Z
G06T7/60 180Z
A63F13/213
A63F13/428
A63F13/837
(21)【出願番号】P 2021546308
(86)(22)【出願日】2020-01-30
(86)【国際出願番号】 US2020015753
(87)【国際公開番号】W WO2020190387
(87)【国際公開日】2020-09-24
【審査請求日】2022-12-21
(32)【優先日】2019-03-19
(33)【優先権主張国・地域又は機関】US
(73)【特許権者】
【識別番号】314015767
【氏名又は名称】マイクロソフト テクノロジー ライセンシング,エルエルシー
(74)【代理人】
【識別番号】100079108
【氏名又は名称】稲葉 良幸
(74)【代理人】
【識別番号】100109346
【氏名又は名称】大貫 敏史
(74)【代理人】
【識別番号】100117189
【氏名又は名称】江口 昭彦
(74)【代理人】
【識別番号】100134120
【氏名又は名称】内藤 和彦
(74)【代理人】
【識別番号】100108213
【氏名又は名称】阿部 豊隆
(74)【代理人】
【識別番号】100162950
【氏名又は名称】久下 範子
(72)【発明者】
【氏名】ポリフェイズ,マーク アンドレ レオン
【審査官】笠田 和宏
(56)【参考文献】
【文献】国際公開第2017/182315(WO,A1)
【文献】特開2003-308514(JP,A)
(58)【調査した分野】(Int.Cl.,DB名)
G06T 7/70
G06T 7/60
A63F 13/213
A63F 13/428
A63F 13/837
(57)【特許請求の範囲】
【請求項1】
複数のモバイル装置の間の相対的な位置を取得する方法であって、前記方法は、第1モバイル装置によって実行されており、前記方法は、
第1時点において前記第1モバイル装置のカメラの視野内において第2モバイル装置を観察することと、
前記第1時点における前記第1モバイル装置の第1位置を判定することであって、前記第1位置は、前記第1モバイル装置によって使用されている第1座標系内において表されている、ことと、
前記第2モバイル装置から、前記第1時点における前記第2モバイル装置の第2位置を受け取ることであって、前記第2位置は、前記第2モバイル装置によって使用されている第2座標系内において表されている、ことと、
前記第1位置及び前記第1時点における前記第2モバイル装置の前記観察に少なくとも部分的に基づいて、前記第1時点における前記第2モバイル装置との関係における前記第1モバイル装置の向きに関する向き情報を判定することと、
前記第2位置及び前記向き情報に少なくとも部分的に基づいて、前記第1モバイル装置によって使用されている前記第1座標系を前記第2モバイル装置によって使用されている前記第2座標系に関係付ける2つの制約を識別することと、
少なくとも6つの制約が蓄積されたら、前記第2モバイル装置との関係における前記第1モバイル装置のポーズを算出することと、
を含む方法。
【請求項2】
前記第1時点において前記第2モバイル装置が前記第1モバイル装置の前記カメラの前記視野内において観察された際に、ユーザー入力を受け取ることを更に含み、前記ユーザー入力の受取りに応答して、前記第1位置が判定され、前記第2位置が前記第2モバイル装置から受け取られ、前記向き情報が判定され、前記2つの制約が識別される、請求項1に記載の方法。
【請求項3】
前記方法は、前記複数のモバイル装置を伴うゲーム中に実行され、
前記ユーザー入力は、前記ゲームの一部分として提供される、請求項2に記載の方法。
【請求項4】
前記第1時点において前記第1モバイル装置の前記カメラの前記視野内において前記第2モバイル装置を自動的に検出することを更に含み、前記第2モバイル装置を自動的に検出することに応答して、前記第1位置が判定され、前記第2位置が前記第2モバイル装置から受け取られ、前記向き情報が判定され、前記2つの制約が識別される、請求項1に記載の方法。
【請求項5】
前記第2モバイル装置を自動的に検出することは、前記第2モバイル装置のアクティブ化された光エミッタを自動的に検出することを含む、請求項4に記載の方法。
【請求項6】
前記第2モバイル装置及び少なくとも1つの更なるモバイル装置は、いずれも、前記第1時点において前記第1モバイル装置の前記カメラの前記視野内において可視状態にあり、
前記方法は、前記第2モバイル装置と前記少なくとも1つの更なるモバイル装置とを区別することを更に含む、請求項1に記載の方法。
【請求項7】
前記向き情報を判定することは、前記第2モバイル装置が前記第1時点において観察された方向に対応する空間内の幾何学的ラインを判定することを含む、請求項1に記載の方法。
【請求項8】
前記ポーズを算出することは、前記第1モバイル装置によって使用されている前記第1座標系を前記第2モバイル装置によって使用されている前記第2座標系に関係付ける6自由度変換を算出することを含む、請求項1に記載の方法。
【請求項9】
前記少なくとも6つの制約は、
観察イベントの結果として判定される複数の制約と、
前記観察イベントとは独立的に判明している1つ又は複数の更なる制約と、
を含む、請求項1に記載の方法。
【請求項10】
前記第1モバイル装置の前記カメラの前記視野に基づいて第1同時位置決め地図作成(SLAM)マップを生成することと、
前記第1SLAMマップを前記第2モバイル装置によって生成される第2SLAMマップとマージすることと、
を更に含む、請求項1に記載の方法。
【請求項11】
第1モバイル装置であって、前記第1モバイル装置は、前記第1モバイル装置と第2モバイル装置の間の相対的な位置を取得するように構成されており、前記第1モバイル装置は、
カメラと、
1つ又は複数のプロセッサと、
前記1つ又は複数のプロセッサと電子通信するメモリと、
前記メモリ内に保存された命令と、
を備え、
前記命令は、
第1時点において前記第1モバイル装置の前記カメラの視野内において前記第2モバイル装置を観察し、
前記第1時点における前記第1モバイル装置の第1位置を判定し、前記第1位置は、前記第1モバイル装置によって使用されている第1座標系内において表されており、
前記第2モバイル装置から、前記第1時点における前記第2モバイル装置の第2位置を受け取り、前記第2位置は、前記第2モバイル装置によって使用されている第2座標系内において表されており、
前記第1位置及び前記第1時点における前記第2モバイル装置の前記観察に少なくとも部分的に基づいて、前記第1時点における前記第2モバイル装置との関係における前記第1モバイル装置の向きに関する向き情報を判定し、
前記第2位置及び前記向き情報に少なくとも部分的に基づいて、前記第1モバイル装置によって使用されている前記第1座標系を前記第2モバイル装置によって使用されている前記第2座標系に関係付ける2つの制約を識別し、
少なくとも6つの制約が蓄積されたら、前記第2モバイル装置との関係における前記第1モバイル装置のポーズを算出する、
ように、前記1つ又は複数のプロセッサによって実行可能である、第1モバイル装置。
【請求項12】
前記第1時点において前記第2モバイル装置が前記第1モバイル装置の前記カメラの前記視野内において観察された際に、ユーザー入力を受け取るように構成された入力装置を更に備え、前記ユーザー入力の受取りに応答して、前記第1位置が判定され、前記第2位置が前記第2モバイル装置から受け取られ、前記向き情報が判定され、前記2つの制約が識別される、請求項11に記載の第1モバイル装置。
【請求項13】
前記第1時点において前記第1モバイル装置の前記カメラの前記視野内において前記第2モバイル装置を自動的に検出するために前記1つ又は複数のプロセッサによって実行可能である更なる命令を更に含み、前記第2モバイル装置を自動的に検出することに応答して、前記第1位置が判定され、前記第2位置が前記第2モバイル装置から受け取られ、前記向き情報が判定され、前記2つの制約が識別される、請求項11に記載の第1モバイル装置。
【請求項14】
前記向き情報を判定するために前記1つ又は複数のプロセッサによって実行可能である前記命令は、前記第2モバイル装置が前記第1時点において観察された方向に対応する空間内の幾何学的ラインを判定するために前記1つ又は複数のプロセッサによって実行可能である命令を含む、請求項11に記載の第1モバイル装置。
【請求項15】
前記ポーズを算出するために前記1つ又は複数のプロセッサによって実行可能である前記命令は、前記第1モバイル装置によって使用されている前記第1座標系を前記第2モバイル装置によって使用されている前記第2座標系に関係付ける6自由度変換を算出するために1つ又は複数のプロセッサによって実行可能である命令を含む、請求項11に記載の第1モバイル装置。
【発明の詳細な説明】
【背景技術】
【0001】
背景
[0001] 拡張現実とも呼称されうる複合現実は、物理的且つデジタル的物体が、リアルタイムで、共存し、且つ、相互作用する、新しい環境及び視覚化を生成するために、現実世界の物体及び人物を仮想物体とマージすることを伴っている。複合現実装置は、実際に現実世界に配置されているかのように見えることを目的とした仮想物体により、現実世界のユーザーの視野を拡張している。複合現実装置は、ユーザーが、半透明ディスプレイを通じて、その周囲の現実世界を観察することを許容することができる。次いで、仮想物体をディスプレイ上において提示することができる。これらの仮想物体は、その現実世界の環境のユーザーの視野上に重畳されるように表示され、これにより、仮想現実が物理現実とマージされている。
【0002】
[0002] 複合現実経験は、複数の複合現実装置の間において共有することができる。この結果、複数のユーザーは、共有された複合現実環境において、共通の共有された経験を有することができる。プレーヤーが、ゲームの一部分として、互いに、且つ、仮想物体との間において、やり取りすることが可能である、ゲームなどの、共有された複合現実経験が、有用でありうる、及び/又は、楽しいものでありうる、多数の異なるシナリオが存在している。
【0003】
[0003] 共有された複合現実経験を促進するには、それぞれのその他のものの相対的な位置を認知しうるように、複数の装置が、その位置及びモーションを同一の座標系内において演算しうることが重要である。大部分の複合現実装置は、その他の装置との関係において、自身の相対的モーションを判定することができるが、必ずしも、その相対的なポーズ(即ち、位置及び向き)を判定することができるわけではない。
【0004】
[0004] 複数の装置の座標系を見当合わせするための通常の解決策は、これらのマップ/画像の間の相対的なポーズが判定されうるように、装置の間において3次元マップ情報(或いは、2次元画像データ)を交換するというものである。これらの解決策は、ピアツーピアにおいて、或いは、クラウドサービス上において、実装することができる。
【0005】
[0005] 但し、マップデータの交換は、面倒でありうると共に、プライバシーのリスクを提示しうる。更には、ユーザーの視点が互いに大きく異なっている際には、従来の画像特徴マッチングが失敗する可能性があり、その結果、装置がジョイント座標系を判定することができなくなり、複合現実経験を共有できなくなる。これは、例えば、ユーザーがお互いとカメラを見て、同一の空間の反対側を見るシナリオで発生する可能性がある。これは、ゲーム及びその他にタイプの共有された複合現実経験における自然な構成である。
【発明の概要】
【0006】
概要
[0006] 本開示の一態様によれば、複数のモバイル装置の間において相対的な位置を取得する方法が開示されている。方法は、第1モバイル装置によって実行することができる。方法は、第1時点において第1モバイル装置のカメラの視野内において第2モバイル装置を観察することを含む。方法は、第1時点において第1モバイル装置の第1位置を判定することを含む。第1位置は、第1モバイル装置によって使用されている第1座標系内において表されている。方法は、第2モバイル装置から、第1時点における第2モバイル装置の第2位置を受け取ることを含む。第2位置は、第2モバイル装置によって使用されている第2座標系内において表されている。方法は、第1位置及び第1時点における第2モバイル装置の観察に少なくとも部分的に基づいて、第1時点における第2モバイル装置との関係における第1モバイル装置の向きに関する向き情報を判定することを含む。方法は、第2位置及び向き情報に少なくとも部分的に基づいて、第1モバイル装置によって使用されている第1座標系を第2モバイル装置によって使用されている第2座標系と関係付ける2つの制約を識別することを含む。方法は、少なくとも6つの制約が蓄積されたら、第2モバイル装置との関係における第1モバイル装置のポーズを算出することを含む。
【0007】
[0007] いくつかの実施形態において、方法は、第2モバイル装置が第1時点において第1モバイル装置のカメラの視野内において観察されている際に、ユーザー入力を受け取ることを更に含みうる。ユーザー入力を受け取ることに応答して、第1位置が判定されてもよく、第2位置が第2モバイル装置から受け取られてもよく、向き情報が判定されてもよく、且つ、2つの制約が識別されてもよい。方法は、複数のモバイル装置を伴うゲームの際に実行するこができると共に、ユーザー入力は、ゲームの一部分として提供することができる。
【0008】
[0008] いくつかの実施形態において、方法は、第1時点において第1モバイル装置のカメラの視野内において第2モバイル装置を自動的に検出することを更に含むことができる。第2モバイル装置を自動的に検出することに応答して、第1位置が判定されてもよく、第2位置が第2モバイル装置から受け取られてもよく、向き情報が判定されてもよく、且つ、2つの制約が識別されてもよい。第2モバイル装置を自動的に検出することは、第2モバイル装置のアクティブ化された光エミッタを自動的に検出することを含みうる。
【0009】
[0009] いくつかの実施形態において、第2モバイル装置及び少なくとも1つの更なるモバイル装置は、いずれも、第1時点において第1モバイル装置のカメラの視野内において可視状態にあってよい。方法は、第2モバイル装置と少なくとも1つの更なるモバイル装置の間を区別することを更に含みうる。
【0010】
[0010] いくつかの実施形態において、向き情報を判定することは、第2モバイル装置が第1時点において観察された方向に対応する空間内の幾何学的ラインを判定することを含みうる。
【0011】
[0011] いくつかの実施形態において、ポーズを算出することは、第1モバイル装置によって使用されている第1座標系を第2モバイル装置によって使用されている第2座標系に関係付ける6自由度変換を算出することを含みうる。
【0012】
[0012] いくつかの実施形態において、少なくとも6つの制約は、観察イベントの結果として判定される複数の制約と、観察イベントとは独立的に判明している1つ又は複数の更なる制約と、を含みうる。
【0013】
[0013] いくつかの実施形態において、方法は、第1モバイル装置のカメラの視野に基づいて第1の同時位置決め地図作成(SLAM)マップを生成することを更に含みうる。第1SLAMマップは、第2モバイル装置によって生成される第2SLAMマップとマージすることができる。
【0014】
[0014] この「課題を解決するための手段」は、「発明を実施するための形態」において更に後述されている概念の選択を単純化された形態において紹介するために提供されたものである。この「課題を解決するための手段」は、特許請求された主題の主な特徴又は不可欠な特徴を識別することを意図したものではなく、且つ、特許請求されている主題の範囲を判定する際の支援として使用されることを意図したものでもない。
【0015】
[0015] 更なる特徴及び利点については、後続する記述において説明することとする。本開示の特徴及び利点は、添付の請求項において具体的に指摘されているシステム及び方法を利用して実現及び入手することができる。本開示の特徴については、以下の説明及び添付の請求項から更に十分に明らかとなり、或いは、以下において記述されている、開示されている主題の実施によって知ることができる。
【0016】
図面の簡単な説明
[0016] 本開示の上述の且つその他の特徴が入手されうる方式について記述するために、添付の図面において示されているその特定の実施形態を参照し、更に具体的な説明を提供することとする。更に良好な理解を目的として、同一の要素は、様々な添付の図の全体を通じて、同一の参照符号によって表記されている。図面は、いくつかの例示用の実施形態を描いているという理解の下に、以下の添付図面の使用を通じて、更なる特定性及び詳細を伴って、実施形態について記述及び説明することとする。
【図面の簡単な説明】
【0017】
【
図1A】[0017]複数のモバイル装置の間における相対的な位置を取得する方法の一例を示す。
【
図1B】[0017]複数のモバイル装置の間における相対的な位置を取得する方法の一例を示す。
【
図1C】[0017]複数のモバイル装置の間における相対的な位置を取得する方法の一例を示す。
【
図2】[0018]複数のその他のモバイル装置が視野内において可視状態にある時点におけるモバイル装置の視野を示す。
【
図3】[0019]本明細書において開示されている位置決め技法を目的として、2つのモバイル装置の座標系が、相互の関係においてアライメントされている、且つ、単一のモバイル装置であると見なされている、一例を示す。
【
図4】[0020]モバイル装置の座標系が相互の関係においてアライメントされた後に2つのモバイル装置の同時位置決め地図作成(SLAM)マップがマージされる例を示す。
【
図5】[0021]本開示による複数のモバイル装置の間における相対的な位置を取得する方法を示す。
【
図6】[0022]本明細書において開示されている技法を実装するように構成されたモバイル装置内に含まれうる特定のコンポーネントを示す。
【発明を実施するための形態】
【0018】
詳細な説明
[0023] 本開示は、一般に、複数のモバイル装置の間における相対的な位置を取得することに関係しており、これらのモバイル装置のそれぞれは、カメラを含み、且つ、自身の座標系を使用して、空間内の自身の位置及びモーションを追跡することができる。本明細書において開示されている技法は、互いの相対位置を認知しうるように、複数のモバイル装置が同一の座標系内においてその位置及びモーションを演算することが望ましい、任意のシナリオに適用可能である。一例として、本明細書において開示されている技法は、共有された複合現実経験の文脈において利用することができる。
【0019】
[0024] 本明細書において使用されている「モバイル装置」という用語は、カメラを含む、且つ、本明細書において開示されている空間位置決め技法を実装する能力を有する、携帯型演算装置を意味している。いくつかの実施形態において、モバイル装置は、ユーザーが、ユーザーの掌中においてモバイル装置を保持及び操作するために十分に小さなものであってよい。いくつかの実施形態において、モバイル装置は、ウェアラブル演算装置であってよい。いくつかの実施形態において、モバイル装置は、ユーザーに複合現実(或いは、拡張現実)経験を提供する能力を有する、複合現実(或いは、拡張現実)装置であってよい。モバイル装置のいくつかの例は、頭部取付型のディスプレイ、スマート眼鏡、スマートフォン、タブレットコンピュータ、及びラップトップコンピュータを含む。モバイル装置は、インターネットなどの、1つ又は複数のコンピュータネットワークに接続する能力を有しうる。モバイル装置は、その他の演算装置との間のピアツーピア通信を確立する能力を有することができる。
【0020】
[0025] 本明細書において開示されている技法は、別のモバイル装置のカメラの視野内におけるモバイル装置の直接的な観察を利用している。第1モバイル装置及び第2モバイル装置という2つのモバイル装置を伴う単純な例を検討しよう。第1モバイル装置は、第1モバイル装置のカメラの視野内において第2モバイル装置を観察しているとしよう。これが発生した際に、第1モバイル装置は、第2モバイル装置との関係における第1モバイル装置の向きを制約するために、自身の位置及び第2モバイル装置のその観察を使用することができる。換言すれば、第1モバイル装置は、第2モバイル装置との関係における第1モバイル装置の向きに関する情報を判定することができる。この向き情報は、第2モバイル装置の(第2モバイル装置によって使用されている座標系内において表されている)位置と共に、第1モバイル装置によって使用されている座標系を第2モバイル装置によって使用されている座標系に関係付ける2つの制約を識別するために、使用することができる。
【0021】
[0026] 少なくとも6つの制約が蓄積されたら、第2モバイル装置との関係における第1モバイル装置のポーズを算出することができる(逆も又真である)。更に詳しくは、6つ(又は、これ超の数)の制約は、第1モバイル装置によって使用されている第1座標系を第2モバイル装置によって使用されている第2座標系に関係付ける6自由度(6DoF)変換を算出するために使用することができる。
【0022】
[0027] 本明細書において使用されている「観察イベント」という用語は、1つのモバイル装置が別のモバイル装置をそのカメラの視野内において観察している状況を意味しており、且つ、対応する位置情報及び向き情報は、2つのモバイル装置の座標系を関係付ける2つの制約を判定するために使用されている。更に詳細に後述するように、いくつかの実施形態において、観察イベントは、ユーザー入力によってトリガすることができる。或いは、この代わりに、観察イベントは、1つのモバイル装置がそのカメラの視野内において別のモバイル装置を自動的に検出した際に、トリガすることもできる。
【0023】
[0028] 複数のモバイル装置の間における相対的な位置を取得する、開示されている技法は、複数のモバイル装置が3次元(3D)環境マップを互いに共有することが不可能である、或いは望ましくない状況において特に有利でありうる。これは、例えば、ユーザーの視点が互いに大きく異なっている際に発生しうる。
【0024】
[0029] いくつかの実施形態において、開示されている技法は、既知の方式との関係において処理要件を低減することができる。上述したように、複数のモバイル装置用の座標系を見当合わせするための通常の解決策は、モバイル装置の間において3次元(3D)マップ情報を交換するというものである。但し、本明細書において開示されている技法は、複数のモバイル装置の間の相対的な位置が、3Dマップ情報の交換を伴うことなしに、取得されることを可能にしている。この結果、複数のモバイル装置の座標系をアライメントするために必要とされる処理量を低減することができる。例えば、本明細書において開示されている技法に従ってその座標系をアライメントしているモバイル装置は、3Dマップ情報を判定又は交換する必要がない。従って、本開示において開示されている技法を利用することにより、3Dマップ情報を判定及び/又は交換するために必要とされる処理量を節約することができる。
【0025】
[0030] 3Dマップ情報の交換を伴うことなしに複数のモバイル装置の間における相対的な位置を取得する能力は、保存が必要とされているマップ情報の量を低減することができると共に、その結果、モバイル装置のストレージ要件を低減することができる。ストレージ要件の低減に加えて、本明細書において開示されている技法は、(1つ又は複数のコンピュータネットワークを介して、或いは、ピアツーピア通信を介して)複数のモバイル装置の間において伝達される情報の量をも低減しうる。極めてデータ集約的でありうる3Dマップ情報を交換する代わりに、モバイル装置は、(更に詳細に後述するように)特定の時点と関連するなんからの位置情報及びなんらかの向き情報を単純に交換しうる。この結果、複数のモバイル装置の間において伝達される情報の量が潜在的に低減され、これにより、大量の通信帯域幅がその他の目的のために潜在的に解放される。
【0026】
[0031] 但し、以上の内容にも拘らず、3次元マップ情報は、依然として、本明細書において開示されている技法に従って、いくつかの状況下においては、交換されてもよい。更に詳細に後述するように、いくつかの実施形態においては、それぞれのモバイル装置によって構築されている3Dマップは、相対的に大きな、相対的に完全な、マップ内にマージすることができる。
【0027】
[0032] 複数のモバイル装置の間において相対的な位置を取得する方法の一例について、
図1A~Cとの関係において説明することとする。この例は、第1モバイル装置102aと第2モバイル装置102bという2つのモバイル装置102a~bを伴っている。第1モバイル装置102aによって使用されている座標系は、本明細書においては、第1座標系と呼称することとし、且つ、第2モバイル装置102bによって使用されている座標系は、本明細書においては、第2座標系と呼称することとする。第1モバイル装置102aのユーザーは、第1ユーザー104aと呼称することとし、且つ、第2モバイル装置102bのユーザーは、第2ユーザー104bと呼称することとする。
【0028】
[0033]
図1Aは、第2ユーザー104bに対して第1モバイル装置102aの狙いを定めている第1ユーザー104aと、第1ユーザー104aに対して第2モバイル装置102bの狙いを定めている第2ユーザー104bと、を示している。これは、例えば、ユーザーがモバイル装置を使用して互いを射撃することが想定されているゲームの際に発生しうる。
図1Bは、第1モバイル装置102aのディスプレイ106上において第1ユーザー104aに対して表示されうる、(
図1Aに示されているように)第1モバイル装置102aの狙いが第2モバイル装置102bに定められている際の、第1モバイル装置102aのカメラの視野を示している。
図1Cは、第1ユーザー104a及び第2ユーザー104bが、(例えば、ゲームの際に動き回っている間に)所定の期間にわたって動き回るのに伴う、第1モバイル装置102aの軌跡108a及び第2モバイル装置102bの軌跡108bを示している。
【0029】
[0034]
図1Cに示されているように、時点t1において、第1ユーザーは、第2モバイル装置102bが、第1モバイル装置102aのカメラの視野内に配置されるように(且つ、従って、ディスプレイ106上において可視状態となるように)、第1モバイル装置102aを位置決めしている。例えば、射撃ゲームの文脈においては、第1ユーザー104aは、第2モバイル装置102bを保持又は着用しうる、且つ、恐らくは第1ユーザー104aに対して第2モバイル装置102bの狙いを定めうる、第2ユーザー104bに対して第1モバイル装置102aの狙いを定めることができる。
図1Bに示されているように、十字線110を第1モバイル装置102aのディスプレイ106上において表示することができる。十字線110は、第2モバイル装置102bが、ほぼ、第1モバイル装置102aのカメラの視野の中心において配置されるように、第1ユーザー104aが第1モバイル装置102aを位置決めすることを支援しうる。次いで、第1ユーザー104aは、第1モバイル装置102a及び第2モバイル装置102bが、その特定の時点と関連する特定の情報を記憶する(例えば、メモリ内において保存する)、且つ、伝達するなんらかの入力(例えば、第1モバイル装置102a上のボタンのクリック)を提供している。
【0030】
[0035] 具体的には、第1モバイル装置102aは、第2モバイル装置102bが第1モバイル装置102aのカメラの視野内において観察されている時点t1においてその位置を判定及び記憶している。第1モバイル装置102aによって使用されている第1座標系内において表されているこの位置は、本明細書においては、p1t1と呼称することとする(本明細書における「pxty」は、時点yにおける装置xの位置を意味している)。第1モバイル装置102aは、P1t1を第2モバイル装置102bに伝達している。第1モバイル装置102a及び第2モバイル装置102bは、実質的に時間同期化されているものと仮定されている。
【0031】
[0036] 第2モバイル装置102bも、時点t1におけるその位置を判定及び記憶している。第2モバイル装置102bによって使用されている第2座標系内において表されている、この位置は、p2t1と呼称することとする。第2モバイル装置102bも、p2t1を第1モバイル装置102aに伝達している。
【0032】
[0037] 第1モバイル装置102aは、第2モバイル装置102bとの関係における時点t1におけるその向きに関する情報を判定及び記憶している。例えば、第1モバイル装置102aは、第2モバイル装置102bが時点t1において観察された方向に対応する空間内の幾何学的ラインを判定及び記憶することができる。このラインは、本明細書においてlinet1と呼称することとする。第2モバイル装置102bが、時点t1において第1モバイル装置のカメラの視野の中心において観察された場合には、空間内のこのラインは、カメラの光軸に対応することになろう。
【0033】
[0038] 次いで、この位置情報(p1t1及びp2t1)及び向き情報(linet1)は、第1モバイル装置102aによって使用されている第1座標系を第2モバイル装置102bによって使用されている第2座標系に関係付ける2つの制約を識別するために使用することができる。具体的には、時点t1における第2モバイル装置102bの位置(p2t1)が、空間内において予め定義されたライン(linet1)に沿って配置されることを要するという幾何学的制約は、両方のモバイル装置102a~bの座標系をアライメントさせるための2つの数学的制約を提供している。
【0034】
[0039] 次いで、別のモバイル装置を観察し、2つの制約を判定するためにその観察と関連する位置及び向き情報を使用するこのプロセスは、少なくとも6つの制約が判定される時点まで、少なくともさらに2回反復することができる。但し、観察を毎回実行するのが、常に、同一のモバイル装置でなければならない、というわけではない(但し、そうなることもできる)。例えば、描かれている例においては、第2モバイル装置102bが、時点t2において第2モバイル装置102bのカメラの視野内において第1モバイル装置102aを観察している。
【0035】
[0040] 更に詳しくは、時点t2において、第2ユーザー104bは、第1モバイル装置102aが第2モバイル装置102bのカメラの視野内に配置されるように、第2モバイル装置102bを位置決めしている。次いで、第2ユーザー104bは、第2モバイル装置102b及び第1モバイル装置102aが、時点t2と関連する特定の情報を記憶及び伝達するようにする、なんからの入力を提供している。具体的には、第2モバイル装置102bは、時点t2におけるその位置(p2t2)を判定及び記憶しており、これは、第2モバイル装置102bによって使用されている第2座標系内において表されている。第2モバイル装置102bは、p2t2を第1モバイル装置102aに送信している。これに加えて、第1モバイル装置102aは、時点t2におけるその位置(p1t2)を判定及び記憶しており、これは、第1モバイル装置102aによって使用されている第1座標系内において表されている。第1モバイル装置102aも、第2モバイル装置102bにp1t2を送信している。第2モバイル装置102bは、第1モバイル装置102aとの関係における時点t2におけるその向きに関する情報を判定及び記憶している。更に正確には、第2モバイル装置102bは、第1モバイル装置102aが時点t2において観察された方向に対応する空間内の幾何学的ラインを記憶している。このラインは、本明細書においては、linet2と呼称することとする。
【0036】
[0041] 次いで、この位置及び向き情報は、第2モバイル装置102bによって使用されている第2座標系を第1モバイル装置102aによって使用されている第1座標系に関係付ける2つの更なる制約を識別するために使用することができる。具体的には、時点t2における第1モバイル装置102aの位置(p1t2)が、linet2に沿って配置される必要があるという幾何学的制約は、両方のモバイル装置102a~bの座標系をアライメントするための更なる2つの数学的制約を提供している。
【0037】
[0042] この後に、時点t3において、第1ユーザー104aは、第2モバイル装置102bが第1モバイル装置102aのカメラの視野内に配置されるように、第1モバイル装置102aを位置決めしている。次いで、第1ユーザー104aは、第1モバイル装置102a及び第2モバイル装置102bが時点t3と関連する特定の情報を記憶及び伝達するようにする、なんらかの入力を提供している。具体的には、第1モバイル装置102aは、時点t3におけるその位置(p1t3)を判定及び記憶しており、これは、第1モバイル装置102aによって使用されている第1座標系内において表されている。第1モバイル装置102aは、p1t3を第2モバイル装置102bに送信している。第2モバイル装置102bは、時点t3におけるその位置(p2t3)を判定及び記憶しており、これは、第2モバイル装置102bによって使用されている第2座標系において表されている。第2モバイル装置102bは、p2t3を第1モバイル装置102aに送信している。第1モバイル装置102aも、第2モバイル装置102bとの関係における時点t3におけるその向きに関する情報を判定及び記憶している。更に正確には、第1モバイル装置102aは、第2モバイル装置102bが時点t3において観察された方向に対応する空間内の幾何学的ラインを記憶している。このラインは、本明細書において、linet3と呼称することとする。
【0038】
[0043] 次いで、この位置及び向き情報は、第1モバイル装置102aによって使用されている第1座標系を第2モバイル装置102bによって使用されている第2座標系に関係付ける2つの更なる制約を識別するために使用することができる。具体的には、時点t3における第2モバイル装置102bの位置(p2t3)は、linet3に沿って配置される必要があるという幾何学的制約は、両方のモバイル装置102a~bの座標系をアライメントさせるための2つの更なる数学的制約を提供している。
【0039】
[0044] この例においては、時点t3の後に、6つの制約が識別されている。これは、第1モバイル装置102aによって使用されている第1座標系を第2モバイル装置102bによって使用されている第2座標系と関係付ける6自由度変換の計算を可能にするのに十分な数の制約である。当業者には既知であるように、「6つの自由度(6DoF)」という用語は、3次元空間内の剛体の運動の自由を意味している。具体的には、剛体は、3つの垂直軸における、前/後(サージ)、上/下(ヒーブ)、右/左(スウェイ)の平行運動に従って、位置を自由に変化させる。このような平行運動は、3つの垂直軸を中心とした回転を通じた向きの変化と組み合わせられてもよく、これらは、しばしば、ヨー(垂直軸)、ピッチ(横断軸)、及びロール(長手方向軸)と呼称されている。本開示の文脈において、「6自由度変換」(6DoF変換)は、1つの座標系内において表されている位置及び向き情報を別の座標系内において表されている等価な位置及び向き情報に変換するために実行を要する数学的演算を規定している。
【0040】
[0045] 上述の例において、6つの制約は、3つの観察イベントから取得されている。2つの観察イベントは、第1モバイル装置102aにおいて(時点t1及びt3において)発生しており、且つ、1つの観察イベントは、第2モバイル装置102bにおいて(時点t2において)発生している。この特定の例の具体的な詳細は、本開示の範囲の限定であるものとして解釈してはならない。例えば、観察イベントは、任意の特定の順序において発生する必要はない。一代替例において、第1モバイル装置102aは、第2モバイル装置102bが観察イベントを(例えば、t3において)有する前に、2つの連続的な観察イベントを(例えば、t1及びt2において)有しうるであろう。両方のモバイル装置102a~bが観察イベントを有することも、必須ではない。別の代替例においては、すべての3つの観察イベントが、同一のモバイル装置において発生しうる。
【0041】
[0046] これに加えて、3つ超の数の観察イベントも、発生しうる。上述のように、第1モバイル装置102aによって使用されている第1座標系を第2モバイル装置102bによって使用されている第2座標系に関係付ける6DoF変換を算出するために、(最小値である3つの観察イベントからの)最小値である6つの制約が必要とされている。最小データ(例えば、3つの観察イベントのみからのデータ)により、6DoF変換の算出との関連において、複数の解決策が取得されうることが可能である。但し、計測値の冗長な組により、解決策は、通常、一意のものとなる。
【0042】
[0047] いくつかの実施形態において、モバイル装置102a~bの両方が6DoF変換を算出することができる。上述の特定の例において、4つの制約は、第1モバイル装置102aによって実施された観察に基づいて(時点1及びt3において)判定されており、且つ、2つの制約は、第2モバイル装置102bによって実施された観察に基づいて(時点t2において)判定されている。モバイル装置102a~bは、両方のモバイル装置102a~bが、6DoF変換を算出するために十分な情報を有するように、互いにこれらの制約に関する情報を共有することができる。或いは、この代わりに、モバイル装置の1つ(例えば、第1モバイル装置102a)が、6DoF変換を算出してもよく、且つ、他方のモバイル装置(例えば、第2モバイル装置102b)との間において6DoF変換を共有することができる。或いは、この代わりに、更には、モバイル装置102a~bとは別個である別のエンティティが6DoF変換を算出してもよく、且つ、モバイル装置102a~bとの間において6DoF変換を共有することもできる。このその他のエンティティは、1つ又は複数のコンピュータネットワークを介してモバイル装置102a~bとの電子通信状態にあるサーバーであってよい。いくつかの実施形態において、このその他のエンティティは、クラウドに基づいたエンティティであってよい。
【0043】
[0048] 観察イベントの結果として判定された制約は、6DoF変換の算出を目的として、観察イベントとは独立的に判明している更なる制約と組み合わせることができる。例えば、
図1A~Cに示されている例との関係において、(時点t1、t2、及びt3における)3つの観察イベントの結果として判定された6つの制約は、既知の共通的な垂直向き(2つの制約)、地面からの高さ(1つの制約)、支配的な壁の向き(1つの制約)、など、のような更なる制約と組み合わせることができる。共通的な垂直向きは、慣性計測又は垂直方向消失ポイント/ラインから判定することができる。地面からの高さは、地表面が観察された際に判定することができる。部屋との関係における向きは、壁が観察された際に判定することができる。相対的に正確及び/又は安定した結果を得るために、制約の冗長な組を使用することができる。
【0044】
[0049]
図1A~Cに示されている例においては、ユーザー入力が観察イベントをトリガしている。換言すれば、ユーザー入力が、モバイル装置102a~bが、特定の時点と関連する特定の情報を記憶及び伝達するようにさせており、且つ、モバイル装置102a~bの座標系を関係付けるための制約を判定するためにこの情報を使用するようにさせている。このユーザー入力は、ユーザーが、ユーザーのモバイル装置のカメラの視野内において別のモバイル装置を観察している(例えば、ディスプレイ106上において観察されている)際に提供することができる。
【0045】
[0050] いくつかの実施形態において、ユーザー入力が観察イベントをトリガするようにすることは、ゲームプレイの一部分としてユーザー経験に統合することができる。これは、ユーザーが互いに射撃するものと想定されているゲームなどの、いくつかの複合現実経験に適用可能でありうる。このタイプのシナリオにおいては、ユーザーが射撃する際には、一般に、ユーザーがその他のユーザーを狙っているものと仮定することができる。プレーヤーが互いに数回にわたって射撃した後に、両方のモバイル装置の座標系の間の相対ポーズを判定するために、開示されている技法を使用することができる。次いで、この情報は、ユーザーの経験を豊富なものにするために、使用することができる。
【0046】
[0051] 観察イベントをゲームプレイの一部分としてユーザー経験に統合することにより、少なくともいくつかの既知の方法との関係において特定の利益を提供することができる。上述のように、複数の装置の座標系を見当合わせするための通常の解決策は、装置の間において3次元マップ情報(或いは、2次元画像データ)を交換するというものである。少なくともいくつかの既知の方式によれば、このような情報/データを交換するために、ユーザー入力が必要とされる場合がある。更には、必要とされるユーザー入力は、なんらかのユーザー入力が、その他の方法で、ユーザー経験の一部分として自然に発生することになるものに対して追加的なものとなりうる(例えば、ゲームプレイの一部分としての射撃を上回るなにか)。本明細書において開示されているように、観察イベントをゲームプレイの一部分としてユーザー経験に統合することにより、この余分なユーザー入力に対するニーズが除去され、これにより、全体的な経験が、ユーザーにとって、相対的に自然な且つ相対的に楽しいものとなる。
【0047】
[0052] 但し、以上の内容にも拘らず、ユーザー入力をユーザー経験に統合することは、必須ではない。実際に、観察イベントをトリガするためにユーザー入力に依存することは、必須ではない。或いは、この代わりに、このようなユーザー入力に依存する代わりに、モバイル装置は、そのカメラの視野内において別のモバイル装置の存在を自動的に検出するように、且つ、この結果、別のモバイル装置の検出に応答して適切な位置及び向き情報を自動的に記憶及び伝達するように構成することもできる。換言すれば、いくつかの実施形態において、観察イベントは、1つのモバイル装置がそのカメラの視野内において別のモバイル装置を自動的に検出した際にトリガすることができる。
【0048】
[0053] モバイル装置は、そのカメラの視野内において別のモバイル装置の存在を検出するために物体認識アルゴリズムを使用することができる。この手順は、検出されているモバイル装置が、観察を実施しているモバイル装置によって観察されうる光エミッタを具備している際に、単純化することができる。例えば、
図1A~Cに示されている例を再度参照すれば、第2モバイル装置102bが、光エミッタを装備しており、且つ、光エミッタが、時点t1においてアクティブ化されるものとしよう。観察イベントをトリガするために第1ユーザー104aからの入力に依存する代わりに、第1モバイル装置102aは、その代わりに、そのカメラの視野内において第2モバイル装置102bを自動的に検出することができる。第2モバイル装置102b上のアクティブ化された光エミッタは、この自動的検出の促進を支援することができる。本明細書において開示されている技法との関連において使用されうる光エミッタのいくつかの例は、携帯電話機上のフラッシュライト、カメラと関連するプライバシーライト、及びいくつかの頭部取付型のディスプレイ上において(例えば、複合現実ヘッドセット内において)いくつかの3次元カメラによって使用されている赤外線エミッタを含む。赤外線エミッタは、同様に装備されている装置の赤外線/深度カメラによって観察することができる。
【0049】
[0054] いくつかの実施形態において、特定のモバイル装置のアイデンティティをそのモバイル装置上の光エミッタによって放出されるユニークなパターンを介して伝達することができる。換言すれば、モバイル装置は、特定のパターンに従って、その光エミッタをターンオン又はオフしてもよく、且つ、特定のモバイル装置によって使用されるパターンは、(少なくとも、同一の場所において同時に使用されているモバイル装置の組との関係において)一意のものであってよい。パターンを観察している別のモバイル装置は、放出された一意のパターンに基づいて光を放出しているモバイル装置のアイデンティティを判定することが可能でありうる。
【0050】
[0055]
図1A~Cに示されている例は、2つのモバイル装置102a~bを含んでいたが、いくつかの状況下において、2つ超の数のモバイル装置の間の相対ポーズを判定することが望ましい場合がある。本明細書において開示されている技法は、それぞれのモバイル装置が他のモバイル装置との関係において相対的な位置決めを可能にする十分な制約を有している限り、2つ超の数のモバイル装置に拡張することができる。
【0051】
[0056] 2つ超の数のモバイル装置が関与している際には、更なる困難が存在しており、その理由は、特定のモバイル装置の視野が複数のモバイル装置を含みうるからである。モバイル装置が、特定のモバイル装置との関係においてそのポーズを判定するために試みており、そのカメラの視野内において複数のモバイル装置が見える場合、複数のモバイル装置のいずれが、ポーズ計算の主題である特定のモバイル装置であるのかを判定することは難しい場合がある。
【0052】
[0057]
図2は、例えば、ディスプレイ206上において観察されるモバイル装置の視野を示している。複数のその他のモバイル装置202a~bが、視野内において可視状態にある。その視野が
図2に示されているモバイル装置は、観察中のモバイル装置と呼称することとし、且つ、観察中のモバイル装置の視野内において可視状態にあるモバイル装置202a~bは、第1被観察モバイル装置202a及び第2被観察モバイル装置202bと呼称することとする。
【0053】
[0058] 観察中のモバイル装置が、第1被観察モバイル装置202aとの関係においてそのポーズを算出するために試みているものとしよう。観察中のモバイル装置が、そのカメラの視野内において可視状態にあるモバイル装置202a~bのいずれが第1被観察モバイル装置202aであるのかを判定することは、困難でありうる。換言すれば、観察中のモバイル装置が、第1被観察モバイル装置202aと第2被観察モバイル装置202bの間を区別することは困難でありうる。従って、観察イベントがトリガされた際に(例えば、ユーザー入力に応答して、或いは、その代わりに、観察中のモバイル装置がモバイル装置202a~bを自動的に検出した際に)、観察中のモバイル装置が、第1被観察モバイル装置202a又は第2被観察モバイル装置202bとの関係においてその向きに関する情報を判定及び記憶するべきかどうかを決定することは、困難でありうる。
【0054】
[0059] この問題は、いくつかの異なる方法によって対処することができる。いくつかの実施形態において、ランダムサンプルコンセンサス(RANSAC)などの、安定したアルゴリズムを使用することができる。RANSACは、異常値検出方法であり、他のモバイル装置に対する対応性(correspondences)を異常値として見なすことができる。これは、カメラの視野内に比較的少数のモバイル装置が常に可視状態である場合に、特に有効でありうる。
【0055】
[0060] 別の例として、いくつかの実施形態においては、同一の装置に対応する観察イベントを関連付けるために画像認識アルゴリズムを使用することが可能でありうる。例えば、
図2に示されている例を再度参照し、観察中のモバイル装置が、以前の時点において(即ち、
図2に示されているように、同時に2つのモバイル装置202a~bを観察する前に)、それ自体により、第1被観察モバイル装置202aを検出していたとしよう。観察中のモバイル装置は、その観察の実施に応答して、第1被観察モバイル装置202aの画像を保存することができる。その後に、観察中のモバイル装置が(
図2に示されているように)同時に第1被観察モバイル装置202a及び第2被観察モバイル装置202bの両方を観察した際に、第1被観察モバイル装置202aを検出するために、且つ、これを第2被観察モバイル装置202bから区別するために、予め保存されている画像を使用することができる。
【0056】
[0061] 2つのモバイル装置の座標系が互いにアライメントされたら、これらは、複数のモバイル装置の間の相対的な位置を取得するという、本明細書において開示されている技法を目的として、単一のモバイル装置であるものと見なすことができる。その結果、これにより、1つ又は複数の更なるモバイル装置を両方の予めアライメント済みのモバイル装置に対してアライメントすることが促進されることになろう。
【0057】
[0062]
図3には、この特徴の一例が示されている。第1モバイル装置302a及び第2モバイル装置302bが、本明細書において開示されている技法に従って、互いにその座標系をアライメントさせているとしよう。この結果、第1モバイル装置302a及び第2モバイル装置302bは、その共有されている座標系を別のモバイル装置とアライメントすることを目的として、「単一」のモバイル装置312であると見なすことができる。従って、第3モバイル装置302cは、この後に、それ自体をこの「単一」のモバイル装置312によって使用されている(即ち、第1モバイル装置302a及び第2モバイル装置302bの両方によって使用されている)座標系とアライメントさせることができる。
【0058】
[0063] 上述のように、2つのモバイル装置の座標系は、最長値である3つの観察イベントの後に、互いにアライメントさせることができる(それぞれの観察イベントは、6DoF変換を演算するために必要とされる6つの制約のうちの2つを生成している)。但し、この例において、これらの観察イベントは、第3モバイル装置302cと第1モバイル装置302aの間のやり取りの結果として、及び/又は、第3モバイル装置302cと第2モバイル装置302bの間のやり取りの結果として、発生しうる。
【0059】
[0064]
図3は、これらの装置のユーザーが所定の期間にわたって動き回るのに伴う、第1モバイル装置302aの軌跡308a、第2モバイル装置302bの軌跡308b、及び第3モバイル装置302cの軌跡308cを示している。第1観察イベントが時点t1において発生しており、この場合に、第3モバイル装置302cは、第1モバイル装置302aを観察しており、且つ、両方の装置302a、302cは、これらの装置302a、302cの間の相対ポーズを算出するための2つの制約を判定するために、(上述の方式により)対応する位置及び向き情報を判定及び記憶しているとしよう。次いで、第2観察イベントが時点t2において発生しており、この場合に、第2モバイル装置302bは、第3モバイル装置302cを観察しており、且つ、両方の装置302b、302cは、2つの更なる制約を判定するために対応する位置及び向き情報を判定及び記憶している。その後に、第3観察イベントが時点t3において発生しており、この場合に、第1モバイル装置302aは、第3モバイル装置302cを観察しており、且つ、両方の装置302a、302cは、2つの更なる制約を判定するために対応する位置及び向き情報を判定及び記憶している。この結果、個々の座標系をアライメントするための6DoF変換を演算するのに十分な制約が生成されることになり、その理由は、第1モバイル装置302a及び第2モバイル装置302bが、その共有された座標系を第3モバイル装置302cとアライメントすることを目的として、「単一」のモバイル装置312であると見なされているからである。
【0060】
[0065] 上述のように、複数のモバイル装置の座標系を見当合わせするための通常の解決策は、モバイル装置の間において3次元マップ情報を交換するというものである。この3次元マップ情報は、通常、同時位置決め地図作成(SLAM)アルゴリズムに従って判定されている。SLAMアルゴリズムを使用して生成される3Dマップは、本明細書においては、SLAMマップと呼称される場合がある。本開示によれば、2つ以上のモバイル装置の座標系が本明細書において記述されているようにアライメントされ、それぞれのモバイル装置によって構築されているSLAMマップは、より大きな、より完全なSLAMマップにマージすることができる。
【0061】
[0066]
図4は、第1SLAMマップ414aを生成する第1モバイル装置402aと、第2SLAMマップ414bを生成する第2モバイル装置402bとを示している。第1モバイル装置402a及び第2モバイル装置402bが、本明細書において開示されている技法に従って、観察イベントに基づいてその座標系を互いアライメントした場合に、第1SLAMマップ414a及び第2SLAMマップ414bは相対的に大きな、相対的に完全なSLAMマップにマージされてもよく、これが、マージ済みのSLAMマップ416として
図4に示されている。マージ済みのSLAMマップ416は、第1SLAMマップ414a及び第2SLAMマップ414bの両方からの情報を含みうる。マージ済みのSLAMマップ416は、第1モバイル装置402a及び第2モバイル装置402bの両方によって使用することができる。
【0062】
[0067] このようにSLAMマップをマージしうることにより、更なるモバイル装置の相対的に容易な位置決めが可能になりうる。これに加えて、この結果、周囲環境の相対的に完全なマップに基づいてパーシステンス(時間に跨る座標系の共有)が可能となりうる。換言すれば、本明細書において開示されている技法は、従来の3Dマップに基づいた共有及びパーシステンスの方式を改善することもできる。開示されている技法は、従来の画像に基づいたアライメントを許容することになる直接的な視覚的オーバーラップを有してはいないSLAMマップのマージとの関連において、特定の利益を提供することができる。例えば、第1SLAMマップ414a及び第2SLAMマップ414bが、反対の視点から生成されるものとしよう。これは、例えば、第1モバイル装置402aのカメラの視野と第2モバイル装置402bのカメラの視野の間にオーバーラップが存在しないように、第1モバイル装置402a及び第2モバイル装置402bが、互いに反対に(例えば、互いにテーブルに跨って)位置決めされている場合に当て嵌まりうる。この例においては、マージ済みのSLAMマップ416は、個々に第1SLAMマップ414a又は第2SLAMマップ414bよりも格段に大きなエリアに関するマップ情報を含むことになろう。
【0063】
[0068]
図5は、本開示による複数のモバイル装置の間の相対的な位置を取得する方法500を示している。わかりやすさを目的として、方法500は、上述のシステム、装置、コンポーネント、及びデータのいくつかとの関係において説明することとする。方法500は、第2モバイル装置102bとやり取りしている第1モバイル装置102aの観点から説明することとする。以前と同様に、第1モバイル装置102aのユーザーは、第1ユーザー104aと呼称することとし、且つ、第2モバイル装置102bのユーザーは、第2ユーザー104bと呼称することとする。
【0064】
[0069] ステップ502において、第1モバイル装置102aは、第1時点(t1)において第1モバイル装置102aのカメラの視野内において第2モバイル装置102bを観察している。これは、第1ユーザー104aが、第1モバイル装置102aの狙いを第2ユーザー104bに定めた結果として発生しうる。第2ユーザー104bは、第2モバイル装置102bを保持又は着用していてもよい。第2ユーザー104bは、第2モバイル装置102bの狙いを第1ユーザー104aに対して定めていてもよい。
【0065】
[0070] ステップ504において、第1モバイル装置102aは、時点t1における第1モバイル装置の位置(p1t1)を判定している。p1t1の値は、第1モバイル装置102aによって使用されている第1座標系内において表されている。
【0066】
[0071] ステップ506において、第1モバイル装置102aは、第2モバイル装置102bから、時点t1における第2モバイル装置102bの位置(p2t1)を受け取っている。p2t1の値は、第2モバイル装置102bによって使用されている第2座標系内において表されている。
【0067】
[0072] ステップ508において、第1モバイル装置102aは、第1位置(p1t1)及び時点t1における第2モバイル装置位置102bの観察に少なくとも部分的に基づいて、時点t1における第2モバイル装置102bとの関係における第1モバイル装置102aの向きに関する情報を判定している。例えば、第1モバイル装置102aは、第2モバイル装置102bが時点t1において観察された方向に対応する空間内の幾何学的ライン(linet1)を判定及び記憶することができる。
【0068】
[0073] ステップ510において、第1モバイル装置102aは、第2位置(p2t1)及び(例えば、linet1によって表される)向き情報に少なくとも部分的に基づいて、第1モバイル装置102aによって使用されている第1座標系を第2モバイル装置102bによって使用されている第2座標系と関係付ける2つの制約を識別している。例えば、時点t1における第2モバイル装置102bの位置(p2t1)は、予め定義された空間内のライン(linet1)に沿って配置されることを要するという幾何学的制約は、第1モバイル装置102aによって使用されている第1座標系を第2モバイル装置102bによって使用されている第2座標系とアライメントさせるための2つの数学的制約を提供している。
【0069】
[0074] 方法500のステップ502~510は、単一の観察イベントに対応している。いくつかの実施形態において、ステップ502~510によって表されているもののような観察イベントは、ユーザー入力によってトリガすることができる。更に詳しくは、ステップ502において、第1モバイル装置102aが、時点t1においてそのカメラの視野内において第2モバイル装置102bを観察した際に、第1ユーザー104aは、なんらかのタイプのユーザー入力(例えば、第1モバイル装置102a上のボタンのクリック)を提供することができる。ステップ504~510は、このユーザー入力の受取りに応答して実行することができる。
【0070】
[0075] いくつかの実施形態において、方法500は、第1モバイル装置102a及び第2モバイル装置102bを伴うゲームの際に実行することができる。ステップ504~510が実行されるようにするユーザー入力は、ゲームの一部分として提供することができる。例えば、ゲームは、ユーザー104a~bがモバイル装置102a~bを使用して互いに射撃することが想定されている射撃ゲームであってよい。第1モバイル装置102aが、そのカメラの視野内において第2モバイル装置102bを観察している、方法500のステップ502は、第1ユーザー104aが第2ユーザー104bに対して第1モバイル装置102aの狙いを定めた結果として発生してもよく、第2ユーザー104bは、第2モバイル装置102bを保持又は着用していてもよい。ステップ504~510が発生するようにするユーザー入力は、第1ユーザー104aが、第1モバイル装置102aにゲームの一部分として第2ユーザー104bを射撃するようにするなんらかのアクション(例えば、第1モバイル装置102a上のトリガボタンの起動)を実行した際に提供することができる。
【0071】
[0076] 或いは、この代わりに、ステップ502~510によって表されているもののような観察イベントは、1つのモバイル装置がそのカメラの視野内において別のモバイル装置を自動的に検出した際にトリガすることもできる。更に詳しくは、ステップ502において、第1モバイル装置102aが時点t1においてそのカメラの視野内において第2モバイル装置102bを観察した際に、第1モバイル装置102aは、(例えば、物体認識アルゴリズムを介して)第2モバイル装置102bを自動的に検出することができる。方法500のステップ504~510は、第1モバイル装置102aが第2モバイル装置102bを自動的に検出することに応答して、実行することができる。換言すれば、第1モバイル装置102aは、第1モバイル装置102aが任意の更なるユーザー入力に対するニーズを伴うことなしに第2モバイル装置102bを検出することに応答して、方法500のステップ504~510を実行することができる。いくつかの実施形態において、第2モバイル装置102bは光エミッタを含みうる。第1モバイル装置102aが時点t1でそのカメラの視野内で第2モバイル装置102bを観察するときにこの光エミッタがアクティブ化された場合に、このアクティブ化された光エミッタは、第1モバイル装置102aが第2モバイル装置102bを自動的に検出することを相対的に容易にしうる。
【0072】
[0077] ステップ502において、第1モバイル装置102aが、そのカメラの視野内において第2モバイル装置102bを観察した際に、視野内において、こちらも可視状態である1つ又は複数の更なるモバイル装置が存在している場合がある(例えば、
図2に示されているように、複数のモバイル装置202a~bが、同時にカメラの視野内において可視状態にありうる)。従って、いくつかの実施形態において、方法500は、これに加えて、第2モバイル装置102bと、カメラの視野内において可視状態にある1つ又は複数の更なるモバイル装置の間の区別を伴いうる。これは、上述のように、画像認識アルゴリズム又はランダムサンプルコンセンサス(RANSAC)アルゴリズムの使用を通じたものなどの、様々な方法により、実現することができる。
【0073】
[0078] ステップ502~510によって表されている観察イベントは、第1モバイル装置102aによって使用されている第1座標系を第2モバイル装置102bによって使用されている第2座標系に関係付ける2つの制約を提供している。少なくとも6つの制約が蓄積されたら、ステップ512において、第1モバイル装置102aは、第2モバイル装置102bとの関係における第1モバイル装置102aのポーズを算出することができる。例えば、第1モバイル装置102aは、第1モバイル装置102aによって使用されている第1座標系を第2モバイル装置102bによって使用されている第2座標系に関係付ける6DoF変換を算出するための6つの(又は、これ超の数の)制約を使用することができる。
【0074】
[0079] いくつかの実施形態において、ステップ512においてポーズを算出するために使用される6つの(又は、これ超の数の)制約は、観察イベントの結果として判定された複数の制約と、観察イベントとは独立的に判明している1つ又は複数の更なる制約とを含みうる。これらの更なる制約のいくつかの例は、既知の共通的な垂直向き、地面からの高さ、支配的な壁の向きなどを含む。これらの更なる制約は、相対的に正確な及び/又は安定した結果を取得するために使用することができる。
【0075】
[0080]
図6は、本明細書において開示されている技法を実装するように構成されたモバイル装置602に含まれうる特定のコンポーネントを示している。
図6に示されているモバイル装置602は、上述のモバイル装置102a~b、202a~b、302a~c、402a~bの1つの可能な実装形態を表している。
【0076】
[0081] モバイル装置602は、プロセッサ601を含む。プロセッサ601は、汎用のシングル又はマルチチップマイクロプロセッサ(例えば、ARM(Advanced RISC(Reduced Instruction Set Computer) Machine)、特殊目的マイクロプロセッサ(例えば、デジタル信号プロセッサ(DSP))、マイクロコントローラ、プログラム可能なゲートアレイ、などであってよい。プロセッサ601は、中央処理ユニット(CPU)と呼称されうる。
図6のモバイル装置602には、単一プロセッサ601しか示されていないが、代替構成においては、プロセッサの組合せ(例えば、ARM及びDSP)が使用されうるであろう。
【0077】
[0082] モバイル装置602は、プロセッサ601と電子通信状態にあるメモリ603を含む。メモリ603は、電子情報を保存する能力を有する任意の電子コンポーネントであってよい。例えば、メモリ603は、その組合せを含む、ランダムアクセスメモリ(RAM)、読み出し専用メモリ(ROM)、磁気ディスクストレージ媒体、光ストレージ媒体、RAM内のフラッシュメモリ装置、プロセッサ601と共に含まれるオンボードメモリ、消去可能なプログラム可能な読み出し専用メモリ(EPROM)、電気的に消去可能なプログラム可能な読み出し専用メモリ(EEPROM)メモリ、レジスタ、など、として実施することができる。
【0078】
[0083] 命令605及びデータ607をメモリ603内において保存することができる。命令605は、ステップ、動作、アクション、又は本明細書において開示されているその他の機能のいくつか又はすべてを実装するためにプロセッサ601によって実行可能であってよい。命令605の実行は、メモリ603内に保存されているデータ607の使用を伴いうる。そうではない旨が規定されていない限り、本明細書において記述されているモジュール及びコンポーネントの様々な例の任意のものは、メモリ603内において保存される、且つ、プロセッサ601によって実行される、命令605として部分的に又は全体的に実装することができる。本明細書において記述されているデータの様々な例の任意のものは、メモリ603内において保存される、且つ、プロセッサ601による命令605の実行の際に使用される、データ607に含まれうる。
【0079】
[0084] 命令605は、装置追跡モジュール621を含みうる。装置追跡モジュール621は、空間内のモバイル装置602の位置及びモーションを追跡するように構成することができる。モバイル装置602は、1つ又は複数のカメラ631、慣性計測ユニット(IMU)633、及び1つ又は複数のその他のセンサ635を含む、このような追跡を促進する様々なコンポーネントを含むことができる。装置追跡モジュール621は、1つ又は複数のカメラ631から受け取られた入力に基づいて光に基づいた追跡を実行することができる。いくつかの実装形態において、装置追跡モジュール621は、追跡を改善するために、IMU633及び1つ又は複数のセンサ635から受け取られた入力を利用することができる。追跡は、例えば、6自由度(6DoF)装置追跡を有しうる。これは、同時位置決め地図作成(SLAM)及び/又は視覚-慣性走行距離計測法(VIO)を使用することにより、実装することができる。装置追跡モジュール621は、環境内のモバイル装置602の場所を同時に追跡しつつ、未知の環境のSLAMマップ614を構築及び/又は更新するように構成することができる。
【0080】
[0085] 命令605は、相対位置決めモジュール623を含みうる。相対位置決めモジュール623は、本明細書において開示されている技法に従ってモバイル装置602と1つ又は複数のその他のモバイル装置の間の相対的な位置を判定するように構成することができる。例えば、相対位置決めモジュール623は、
図5に示されている方法500などの方法を実装するように構成することができる。
【0081】
[0086] モバイル装置602は、ディスプレイ637を含みうる。いくつかの実施形態において(例えば、モバイル装置602が複合現実装置である実施形態において)、ディスプレイ637は、仮想物体の画像が表示されうる1つ又は複数の半透明なレンズを含みうる。異なる立体画像がレンズ上に表示され、奥行きのある外観を生成できる一方、レンズの半透明特性により、ユーザーは、現実世界とレンズ上にレンダリングされた仮想物体の両方を観察することができる。モバイル装置602は、グラフィクス処理ユニット(GPU)639を含みうる。1つ又は複数のプロセッサ601は、仮想物体をレンダリングするようにGPU639を制御することができると共に、仮想物体がディスプレイ637上において出現するようにすることができる。
【0082】
[0087] モバイル装置602は、光エミッタ641を含みうる。光エミッタ641は、モバイル装置602が別のモバイル装置によって検出されることを相対的に容易にするためにアクティブ化され得る。いくつかの実施形態において(例えば、モバイル装置602が携帯電話機である場合に)、光エミッタ641は、フラッシュライト又はプライバシーライトであってよい。或いは、この代わりに、光エミッタ641は、いくつかの頭部取付型のディスプレイ上において(例えば、複合現実ヘッドセット内において)いくつかの3次元カメラによって使用されている赤外線エミッタであってもよい。いくつかの実施形態において、モバイル装置602のカメラ631の1つ又は複数は、別のモバイル装置によって放出された赤外光を検出するように構成された赤外線/深度カメラであってよい。
【0083】
[0088] モバイル装置602は、1つ又は複数の入力装置611を含みうる。1つ又は複数の入力装置611は、観察イベントをトリガするためのユーザー入力を提供するために使用することができる。いくつかの実施形態において、1つ又は複数の入力装置611は、1つ又は複数のボタンを含みうる。入力装置711のいくつかのその他の例は、キーボード、マウス、マイクロフォン、リモートコントロール装置、ボタン、ジョイスティック、トラックボール、タッチパッド、及びライトペンを含む。
【0084】
[0089] モバイル装置602は、その他のモバイル装置などのその他の電子装置と通信するための1つ又は複数の通信インターフェイス613を含みうる。例えば、モバイル装置602は、その他のモバイル装置との関係におけるそのポーズの判定との関連において別のモバイル装置に位置情報及び/又は向き情報を送信するために、通信インターフェイス613を使用することができる。1つ又は複数のインターフェイス613は、有線通信技術、無線通信技術、又はこれらの両方に基づいたものであってよい。通信インターフェイス613のいくつかの例は、ユニバーサルシリアルバス(USB)、Ethernetアダプタ、IEEE(Institute of Electrical and Electronics Engineers)802.11無線通信プロトコルに従って稼動する無線アダプタ、Bluetooth(登録商標)無線通信アダプタ、及び赤外線(IR)通信ポートを含む。
【0085】
[0090] 本明細書において記述されている技法は、特定の方式によって実装されるものと具体的に記述されていない限り、ハードウェア、ソフトウェア、ファームウェア、又はこれらの任意の組合せにおいて実装することができる。モジュール、コンポーネント、又はこれらに類似したものとして記述されている任意の特徴は、集積された論理装置内において一緒に、或いは、別個の、但し、相互動作可能な、論理装置として別個に、実装することができる。ソフトウェアにおいて実装された場合に、技法は、少なくとも部分的に、少なくとも1つのプロセッサによって実行された際に、本明細書において開示されているステップ、動作、アクション、又はその他の機能のいくつか又はすべてを実行する、その上部において保存されたコンピュータ実行可能命令を有する、一時的ではないコンピュータ可読媒体により、実現することができる。命令は、特定のタスクを実行しうる、及び/又は、特定のデータタイプを実装しうる、且つ、様々な実施形態において適宜組み合わせられうる或いは分散されうる、ルーチン、プログラム、オブジェクト、コンポーネント、データ構造、などに組織化することができる。
【0086】
[0091] 本明細書において記述されている方法のステップ、動作、及び/又はアクションは、請求項の範囲を逸脱することなしに、それぞれが相互交換することができる。換言すれば、ステップ、動作、及び/又はアクションの特定の順序が、記述されている方法の適切な機能にとって必要とされていない限り、特定のステップ、動作、及び/又はアクションの順序及び/又は使用は、請求項の範囲から逸脱することなしに、変更することができる。
【0087】
[0092] 「判定(determining)」という用語(並びに、その文法的変形)は、様々なアクションを包含しており、且つ、従って、「判定」は、算出、演算、処理、導出、調査、ルックアップ(例えば、テーブル、データベース、又は別のデータ構造内におけるルックアップ)、特定、及びこれらに類似したものを含みうる。「判定」は、受取り(例えば、情報の受取り)、アクセス(例えば、メモリ内のデータのアクセス)、及びこれらに類似したものを含みうる。「判定」は、解決、選択、選択、確立、及びこれらに類似したものを含みうる。
【0088】
[0093] 「含む(comprising)」、「含む(including)」、及び「有する(having)」という用語は、包含的なものとなることが意図されており、且つ、列挙されている要素以外の更なる要素が存在しうることを意味している。これに加えて、本開示の「一実施形態(one embodiment)」又は「一実施形態(an embodiment)」に対する参照は、記述されている特徴をも内蔵する更なる実施形態の存在を排除するものとして解釈されることを意図してはいないことを理解されたい。例えば、本明細書における実施形態の関係において記述されている任意の要素又は特徴は、互換性を有する場合には、本明細書において記述されている任意のその他の実施形態の任意の要素又は特徴と組合せ可能であってよい。
【0089】
[0094] 本開示は、その精神及び特性から逸脱することなしに、その他の特定の形態において実施することができる。記述されている実施形態は、限定ではなく、例示を目的としたものとして見なすことを要する。従って、本開示の範囲は、以上の説明によってではなく、添付の請求項によって示されている。請求項の均等性の意味及び範囲内に含まれる変化は、請求項の範囲に包含されている。