(57)【要約】  基準座標系を決定する方法は、デバイスに対する重力の方向を示す情報を取得するステップと、基準座標系を生成するために、デバイスに対する重力の方向を使用してデバイス座標系の向きを変換するステップとを含む。方法はまた、重力に垂直な方向を示す情報を取得するステップをさらに含み、変換するステップが、重力に垂直な方向を使用してデバイス座標系の向きを変換するステップを含む。方法はまた、基準座標系の原点を設定するステップおよび/または基準座標系の縮尺値を決定するステップを含み得る。方法はまた、基準座標系を改良するステップを含み得る。
2016507793.tif 000002
【特許請求の範囲】
【請求項１】
基準座標系を決定する方法であって、
デバイスに対する重力の方向を示す情報を取得するステップと、
前記基準座標系を生成するために、前記デバイスに対する重力の前記方向を使用してデバイス座標系の向きを変換するステップとを含む、方法。
【請求項２】
重力に垂直な方向を示す情報を取得するステップをさらに含み、前記変換するステップが、重力に垂直な前記方向を使用して前記デバイス座標系の前記向きを変換するステップを含む、請求項1に記載の方法。
【請求項３】
重力に垂直な前記方向が、磁北と、前記デバイスのカメラの視線方向の重力に垂直な平面上への投影とのうちの1つである、請求項2に記載の方法。
【請求項４】
前記基準座標系の原点を設定するステップをさらに含む、請求項1に記載の方法。
【請求項５】
前記原点を設定するステップが、
点群を取得するステップと、
前記点群の実質的に平面的な部分の幾何学的な中心を決定するステップとを含む、請求項4に記載の方法。
【請求項６】
前記原点を設定するステップが、
点群を取得するステップと、
前記デバイスのカメラの視線方向と、前記点群の実質的に平面的な部分に対応する平面との、交点を決定するステップとを含む、請求項4に記載の方法。
【請求項７】
縮尺値を計算するステップと、前記縮尺値を使用して前記基準座標系を生成するステップとをさらに含む、請求項1に記載の方法。
【請求項８】
前記縮尺値を計算するステップが、
点群を取得するステップと、
前記点群の寸法を固定されたサイズと比較するステップとを含む、請求項7に記載の方法。
【請求項９】
前記縮尺値を計算するステップが、前記基準座標系の原点が前記デバイスから所定の距離を有するように、前記縮尺値を計算するステップを含む、請求項7に記載の方法。
【請求項１０】
前記縮尺値を計算するステップが、前記デバイスの1つまたは複数の入力センサからの絶対的な測定結果を使用するステップを含む、請求項7に記載の方法。
【請求項１１】
前記1つまたは複数の入力センサが、加速度計または複数のカメラを含む、請求項10に記載の方法。
【請求項１２】
前記基準座標系および少なくとも1つの事前に決定された座標系からの情報を使用して、前記基準座標系と前記少なくとも1つの事前に決定された座標系の組合せを生成するように、前記基準座標系を改良するステップをさらに含む、請求項1に記載の方法。
【請求項１３】
前記基準座標系の使用対象のアプリケーションに基づいて、前記向きを変換するための第1の技法と、前記基準座標系の原点を設定するための第2の技法とのうちの少なくとも1つを決定するステップをさらに含む、請求項1に記載の方法。
【請求項１４】
前記基準座標系が拡張現実座標系であり、前記方法が、前記基準座標系に従って配置され配向された拡張現実画像を表示するステップをさらに含む、請求項1に記載の方法。
【請求項１５】
基準座標系を決定するためのデバイスであって、
前記デバイスに対する重力の方向を示す情報を取得するための手段と、
前記基準座標系を生成するために、前記デバイスに対する重力の前記方向を使用してデバイス座標系の向きを変換するための手段とを含む、デバイス。
【請求項１６】
重力に垂直な方向を示す情報を取得するための手段をさらに含み、変換するための前記手段が、重力に垂直な前記方向を使用して前記デバイス座標系の前記向きを変換するためのものである、請求項15に記載のデバイス。
【請求項１７】
重力に垂直な前記方向が、磁北と、前記デバイスのカメラの視線方向の重力に垂直な平面上への投影とのうちの1つである、請求項16に記載のデバイス。
【請求項１８】
前記基準座標系の原点を設定するための手段をさらに含む、請求項15に記載のデバイス。
【請求項１９】
前記原点を設定するための前記手段が、
点群を取得するための手段と、
前記点群の実質的に平面的な部分の幾何学的な中心を決定するための手段とを含む、請求項18に記載のデバイス。
【請求項２０】
前記原点を設定するための前記手段が、
点群を取得するための手段と、
前記デバイスのカメラの視線方向と、前記点群の実質的に平面的な部分に対応する平面との、交点を決定するための手段とを含む、請求項18に記載のデバイス。
【請求項２１】
前記基準座標系の原点が前記デバイスから所定の距離を有するように、縮尺値を計算するための手段をさらに含む、請求項15に記載のデバイス。
【請求項２２】
前記縮尺値を計算するための前記手段が、
点群を取得するための手段と、
前記点群の寸法を固定されたサイズと比較するための手段とを含む、請求項21に記載のデバイス。
【請求項２３】
前記縮尺値を計算するための前記手段が、前記基準座標系の原点が前記デバイスから所定の距離を有するように、前記縮尺値を計算するための手段を含む、請求項21に記載のデバイス。
【請求項２４】
前記縮尺値を計算するための前記手段が、前記デバイスの1つまたは複数の入力センサからの絶対的な測定結果を使用するための手段を含む、請求項21に記載のデバイス。
【請求項２５】
前記1つまたは複数の入力センサが、加速度計または複数のカメラを含む、請求項24に記載のデバイス。
【請求項２６】
前記基準座標系および少なくとも1つの事前に決定された座標系からの情報を使用して、前記基準座標系と前記少なくとも1つの事前に決定された座標系の組合せを生成するように、前記基準座標系を改良するための手段をさらに含む、請求項15に記載のデバイス。
【請求項２７】
前記基準座標系の使用対象のアプリケーションに基づいて、前記向きを変換するための第1の技法と、前記基準座標系の原点を設定するための第2の技法とのうちの少なくとも1つを決定するための手段をさらに含む、請求項15に記載のデバイス。
【請求項２８】
前記基準座標系が拡張現実座標系であり、前記デバイスが、前記基準座標系に従って配置され配向された拡張現実画像を表示するための手段をさらに含む、請求項15に記載のデバイス。
【請求項２９】
モバイルデバイスであって、
重力の方向を決定し、前記モバイルデバイスに対する重力の前記方向の指示を提供するように構成されるセンサと、
前記センサに通信可能に結合され、基準座標系を生成するために、前記モバイルデバイスに対する重力の前記方向の前記指示を使用して、前記モバイルデバイスのデバイス座標系の向きを変換するように構成される、配向モジュールとを含む、モバイルデバイス。
【請求項３０】
前記配向モジュールがさらに、重力に垂直な方向を使用して前記デバイス座標系の前記向きを変換するように構成される、請求項29に記載のモバイルデバイス。
【請求項３１】
前記配向モジュールに通信可能に結合され、点群を取得すること、および、
前記点群の実質的に平面的な部分の幾何学的な中心を決定すること、または、
前記モバイルデバイスのカメラの視線方向と、前記点群の実質的に平面的な部分に対応する平面との、交点を決定すること
のうちの少なくとも1つによって、前記基準座標系の原点を設定するように構成される、原点モジュールをさらに含む、請求項29に記載のモバイルデバイス。
【請求項３２】
前記配向モジュールに通信可能に結合され、
(1)点群を取得し、前記点群の寸法を固定されたサイズと比較すること、または
(2)前記基準座標系の原点が前記モバイルデバイスから所定の距離を有するように縮尺値を計算すること、または
(3)前記モバイルデバイスの1つまたは複数の入力センサからの絶対的な測定結果を使用すること
によって、前記デバイス座標系に対する前記基準座標系の前記縮尺値を設定するように構成される、縮尺モジュールをさらに含む、請求項29に記載のモバイルデバイス。
【請求項３３】
前記配向モジュールが、前記基準座標系および少なくとも1つの事前に決定された座標系からの情報を使用して、改良された基準座標系を生成するように構成される、請求項29に記載のモバイルデバイス。
【請求項３４】
前記基準座標系が拡張現実座標系であり、前記モバイルデバイスが、ディスプレイと、前記ディスプレイに、前記基準座標系に従って配置され配向された拡張現実画像を表示させるように構成されるプロセッサとをさらに含む、請求項29に記載のモバイルデバイス。
【請求項３５】
モバイルデバイスのプロセッサ可読記憶媒体であって、プロセッサに、
前記モバイルデバイスに対する重力の方向の指示を取得させ、
基準座標系を生成するために、前記モバイルデバイスに対する重力の前記方向の前記指示を使用して前記モバイルデバイスのデバイス座標系の向きを変換させる
ように構成されたプロセッサ可読命令を含む、プロセッサ可読記憶媒体。
【発明の詳細な説明】
【技術分野】
【０００１】
拡張現実(AR)は、コンピュータにより生成されたオーディオコンテンツおよび/またはビジュアルコンテンツによって補強された、現実世界の環境の光景を提供する。オーディオおよび/またはビジュアルコンテンツは、モバイルデバイスのカメラを使用して撮影された現実世界の環境の画像またはビデオに重畳されてよく、もしくはそれに組み込まれてよく、または、ユーザがそれを通して現実世界の環境を見ている透明なスクリーンもしくは半透明なスクリーンに表示されてよい。たとえば、拡張現実アプリケーションは、現実世界の環境の光景の画像またはビデオを撮影するために使用され得るカメラと、現実世界の環境の拡張された光景を表示するために使用され得るディスプレイとを含む、携帯電話またはタブレットコンピュータに実装されてよく、かつ/または、頭部装着型ディスプレイ(HMD:head-mounted  display)に実装されてよい。
【背景技術】
【０００２】
デバイスは、デバイスの位置、向き、速さ、および/または動きの方向を決定するために使用され得るデータを収集する、1つまたは複数のセンサを含み得る。この情報は、拡張コンテンツを生成する際にデバイスを支援するために使用され得る。センサはまた、ユーザからの入力情報、たとえば、タッチスクリーン上での選択、または、ユーザがデバイスに表示される拡張されたコンテンツを見進めることを可能にするために使用され得る他の入力情報を収集するために使用され得る。
【０００３】
simultaneous  localization  and  mapping(SLAM)システム(たとえば、AR、ロボット工学など)では、環境の中に、たとえばカメラの視野の中に、通常は既知の基準目標がある。既知の基準目標が環境の中にない場合、SLAMのための座標系が任意に定義され得る。たとえば、追尾が開始したときのカメラの姿勢(位置および向き)が、SLAMのための座標系を定義するために使用され得る。
【先行技術文献】
【特許文献】
【０００４】
【特許文献１】米国仮特許出願第61/722,023号
【発明の概要】
【課題を解決するための手段】
【０００５】
基準座標系を決定する例示的な方法は、デバイスに対する重力の方向を示す情報を取得するステップと、基準座標系を生成するために、デバイスに対する重力の方向を使用してデバイス座標系の向きを変換するステップとを含む。
【０００６】
そのような方法の実装形態は、次の特徴の1つまたは複数を含み得る。方法はさらに、重力に垂直な方向を示す情報を取得するステップを含み、変換するステップは、重力に垂直な方向を使用してデバイス座標系の向きを変換するステップを含む。重力に垂直な方向は、磁北と、デバイスのカメラの視線方向の重力に垂直な平面上への投影とのうちの1つである。方法はさらに、基準座標系の原点を設定するステップを含む。原点を設定するステップは、点群を取得するステップと、点群の実質的に平面的な部分の幾何学的な中心を決定するステップとを含む。原点を設定するステップは、点群を取得するステップと、デバイスのカメラの視線方向と、点群の実質的に平面的な部分に対応する平面との、交点を決定するステップとを含む。
【０００７】
さらに、または代替的に、方法の実装形態は、次の特徴の1つまたは複数を含み得る。方法はさらに、縮尺値を計算するステップと、縮尺値を使用して基準座標系を生成するステップとを含む。縮尺値を計算するステップは、点群を取得し、点群の寸法を固定されたサイズと比較するステップを含む。縮尺値を計算するステップは、基準座標系の原点がデバイスから所定の距離を有するように、縮尺値を計算するステップを含む。縮尺値を計算するステップは、デバイスの1つまたは複数の入力センサからの絶対的な測定結果を使用するステップを含む。1つまたは複数の入力センサは、加速度計または複数のカメラを含む。方法はさらに、基準座標系を改良するステップを含む。基準座標系を改良するステップは、基準座標系および少なくとも1つの事前に決定された座標系からの情報を使用して、基準座標系と少なくとも1つの事前に決定された座標系の組合せを生成するステップを含む。
【０００８】
基準座標系を決定するための例示的なデバイスは、デバイスに対する重力の方向を示す情報を取得するための手段と、基準座標系を生成するために、デバイスに対する重力の方向を使用してデバイス座標系の向きを変換するための手段とを含む。
【０００９】
そのようなデバイスの実装形態は、次の特徴の1つまたは複数を含み得る。デバイスはさらに、重力に垂直な方向を示す情報を取得するための手段を含み、変換するための手段は、重力に垂直な方向を使用してデバイス座標系の向きを変換するためのものである。重力に垂直な方向は、磁北と、デバイスのカメラの視線方向の重力に垂直な平面上への投影とのうちの1つである。デバイスはさらに、基準座標系の原点を設定するための手段を含む。原点を設定するための手段は、点群を取得するための手段と、点群の実質的に平面的な部分の幾何学的な中心を決定するための手段とを含む。原点を設定するための手段は、点群を取得するための手段と、デバイスのカメラの視線方向と、点群の実質的に平面的な部分に対応する平面との、交点を決定するための手段とを含む。
【００１０】
さらに、または代替的に、デバイスの実装形態は、次の特徴の1つまたは複数を含み得る。デバイスはさらに、縮尺値を計算するための手段を含む。縮尺値を計算するための手段は、点群を取得するための手段と、点群の寸法を固定されたサイズと比較するための手段とを含む。縮尺値を計算するための手段は、基準座標系の原点がデバイスから所定の距離を有するように、縮尺値を計算するための手段を含む。縮尺値を計算するための手段は、デバイスの1つまたは複数の入力センサからの絶対的な測定結果を使用するための手段を含む。1つまたは複数の入力センサは、加速度計または複数のカメラを含む。
【００１１】
例示的なモバイルデバイスは、重力の方向を決定し、モバイルデバイスに対する重力の方向の指示を提供するように構成される、センサと、センサに通信可能に結合され、基準座標系を生成するために、デバイスに対する重力の方向の指示を使用して、モバイルデバイスのデバイス座標系の向きを変換するように構成される、配向モジュールとを含む。
【００１２】
そのようなモバイルデバイスの実装形態は、次の特徴の1つまたは複数を含み得る。配向モジュールはさらに、重力に垂直な方向を使用してデバイス座標系の向きを変換するように構成される。モバイルデバイスはさらに、配向モジュールに通信可能に結合され、点群を取得すること、および、点群の実質的に平面的な部分の幾何学的な中心を決定すること、または、モバイルデバイスのカメラの視線方向と、点群の実質的に平面的な部分に対応する平面との、交点を決定することのうちの少なくとも1つによって、基準座標系の原点を設定するように構成される、原点モジュールを含む。モバイルデバイスはさらに、配向モジュールに通信可能に結合され、(1)点群を取得し、点群の寸法を固定されたサイズと比較すること、または(2)基準座標系の原点がモバイルデバイスから所定の距離を有するように縮尺値を計算すること、または(3)モバイルデバイスの1つまたは複数の入力センサからの絶対的な測定結果を使用することによって、デバイス座標系に対する基準座標系の縮尺値を設定するように構成される、縮尺モジュールを含む。配向モジュールは、基準座標系および少なくとも1つの事前に決定された座標系からの情報を使用して、改良された基準座標系を生成するように構成される。
【００１３】
モバイルデバイスの例示的なプロセッサ可読記憶媒体は、プロセッサに、モバイルデバイスに対する重力の方向の指示を取得させ、基準座標系を生成するために、デバイスに対する重力の方向の指示を使用してモバイルデバイスのデバイス座標系の向きを変換させるように構成される、プロセッサ可読命令を含む。
【００１４】
そのような記憶媒体の実装形態は、次の特徴の1つまたは複数を含み得る。プロセッサにデバイス座標系の向きを変換させるように構成される命令は、重力に垂直な方向を使用するように構成される命令を含む。記憶媒体はさらに、プロセッサに基準座標系の原点を設定させるように構成され、点群を取得すること、および、点群の実質的に平面的な部分の幾何学的な中心を決定すること、または、モバイルデバイスのカメラの視線方向と、点群の実質的に平面的な部分に対応する平面との、交点を決定することのうちの少なくとも1つをプロセッサに行わせるように構成される、命令を含む。記憶媒体はさらに、(1)点群を取得し、点群の寸法を固定されたサイズと比較すること、または(2)基準座標系の原点がモバイルデバイスから所定の距離を有するように縮尺値を計算すること、または(3)モバイルデバイスの1つまたは複数の入力センサからの絶対的な測定結果を使用することによって、デバイス座標系に対する基準座標系の縮尺値をプロセッサに設定させるように構成される、命令を含む。記憶媒体はさらに、基準座標系および少なくとも1つの事前に決定された座標系からの情報を使用して、プロセッサに改良された基準座標系を生成させるように構成される、命令を含む。
【００１５】
本明細書で説明される項目および/または技法は、次の能力の1つまたは複数、さらには言及されない他の能力を提供することができる。拡張現実アプリケーションのための座標系を定義するための、有用な方法が提供される。たとえば、ボードゲームの拡張現実アプリケーションでは、座標軸は、地面またはテーブルなどの別の面に平行に揃えられてよく、落書きの拡張現実アプリケーションでは、座標軸は、地面に対して垂直に、たとえば壁または他の構造物に対して平行に揃えられてよい。座標系は、視野中に1つの既知の物体がある場合、または視野中に既知の物体がない場合に提供され得る。視野中に1つ以上の物体がある場合、以前の技法と比較してより有用な座標系が確立され得る。たとえば、視野中に複数のターゲットがあるとき、ターゲットは追尾され、座標系が確立され得る。あるいは、視野中に複数のターゲットがあるとき、座標系は、追尾されるターゲットのうちの1つではないある物体に対して揃えられ得るので、すべてのターゲットに対するグローバル座標系を提供する。他の能力が提供されてよく、本開示に従ったすべての実装形態が、論じられる能力のすべてを提供しなければならないとは限らないことはもちろん、論じられる任意の特定の能力を提供しなければならないとも限らない。さらに、述べられたもの以外の手段によって、上で述べられた効果が達成されることが可能であることがあり、述べられた項目/技法は、述べられた効果を必ずしも生まないことがある。
【図面の簡単な説明】
【００１６】
【図１】拡張現実システムの簡略化された斜視図である。
【図２】図1に示されるモバイルデバイスのコンポーネントを組み込むコンピュータシステムのブロック図である。
【図３】図2に示されるコンピュータシステムの機能ブロック図である。
【図４】図1に示されるモバイルデバイスの簡略化された平面図である。
【図５】図1に示されるモバイルデバイスの簡略化された平面図である。
【図６】基準座標系を計算するプロセスのブロック流れ図である。
【図７】基準座標系の原点を設定するための技法を示す、図1に示されるシステムの斜視図である。
【図８】基準座標系の原点を設定するための技法を示す、図1に示されるシステムの斜視図である。
【図９】基準座標系の原点を設定するための技法を示す、図1に示されるシステムの斜視図である。
【図１０】基準座標系の原点を設定するための技法を示す、図1に示されるシステムの斜視図である。
【図１１】基準座標系を決定するためのプロセスのブロック流れ図である。
【図１２】基準座標系を決定するためのプロセスのブロック流れ図である。
【図１３】基準座標系を決定するためのプロセスのブロック流れ図である。
【発明を実施するための形態】
【００１７】
座標系の原点および/または向き、さらに任意選択で縮尺を定義するための技法が提供される。座標系は、simultaneous  localization  and  mappingシステムのためのものであり得る。技法は、種々の状況で使用され得るが、技法の少なくともいくつかは、原点および向きが既知の基準によって先験的に与えられていない状況において特に有用であり得る。
【００１８】
たとえば拡張現実(AR)アプリケーションのための、たとえばsimultaneous  localization  and  mapping(SLAM)システムに対する、基準座標系を定義するための技法が提供される。座標系の原点および/または向き、さらに任意選択で縮尺を決定するための技法が提供される。たとえば、モバイルデバイスのようなデバイスは、カメラの姿勢(位置および向き)、点群、および(たとえば、加速度計のような慣性センサおよび磁力計から測定された)センサデータを、入力として使用することができる。これらの入力を使用して、モバイルデバイスは、所望の座標系の原点の空間中における3次元点、所望の座標系の向き(たとえば、3つの直交する軸)、および縮尺を決定することができる。モバイルデバイスは、この情報を使用して、カメラの座標系から所望の座標系への変換を決定することができる。
【００１９】
座標系に対して有用な原点、向き(および縮尺)を選択することは、独立した作業であり得る。これらの作業の各々のために、異なる技法が提供される。いくつかの技法は、3次元(3D)点群を利用する。いくつかの技法はセンサを使用する。定義された座標系は時間とともに改良され得る。たとえば使用される具体的なアプリケーションに応じて、座標系の原点を決定するための様々な技法、および/または座標系の向きを決定するための様々な技法が使用され得る。
【００２０】
図1を参照すると、座標系を決定するためのシステム、ここでは、SLAMシステムを含み得る拡張現実(AR)システム10は、デバイス、ここではAR対応モバイルデバイス12と、物体14とを含む。モバイルデバイス12は、カメラのような入力感知ユニットとディスプレイとを備えた任意のコンピューティングデバイスであってよい。ここで、モバイルデバイス12はスマートフォンであるが、本明細書で説明される機能はスマートフォンに限定されない。たとえば、モバイルデバイス12は、デジタルカメラ、カムコーダ、タブレットコンピュータ、携帯情報端末、ビデオゲームコンソール、HMDもしくは他のウェアラブルディスプレイ、プロジェクタデバイス、または他のデバイスであり得る。さらに、モバイルデバイス12の代わりに、パーソナルコンピュータ(たとえば、デスクトップコンピュータ)、または他のハンドヘルドではないデバイス、または通常はモバイルデバイスと呼ばれないデバイスのような、デバイスが使用され得る。モバイルデバイス12は、カメラの視野18の中の物体、ここでは物体14の画像を撮影するためのカメラを含む。本明細書で使用される場合、点群は、モバイルデバイス12のカメラによって視野18の中で可視である物体、ここでは物体14の少なくとも一部分に対応する3次元空間中の点の集合である。点群は、たとえば、モバイルデバイス12のカメラ24(以下で説明される)からの画像データに基づいて、モバイルデバイス12のプロセッサによって実行される1つまたは複数の技法によって決定され得る。モバイルデバイス12は、その環境の画像を撮影すること、ここでは物体14の画像を撮影すること、および、それを通して物体14を見ることができる透明なディスプレイもしくは半透明なディスプレイに追加の画像を表示すること、または、追加の画像、たとえばここでは落書きのARアプリケーションにおいて使用するための、ここでは物体14の上に部分的に重畳され部分的に配置される描画16によって補強された、物体14の画像を表示することによって、現実を拡張するように構成される。
【００２１】
図2を参照すると、モバイルデバイス12は、センサ20、センサプロセッサ22、1つまたは複数のカメラ24、カメラプロセッサ26、ディスプレイ28、グラフィックスプロセッサ30、タッチセンサ32、タッチセンサプロセッサ34、通信モジュール36、プロセッサ38、およびメモリ40を含む。プロセッサ22、26、30、34、通信モジュール36、プロセッサ38、およびメモリ40は、示されるように、バス42を通じて通信可能に結合され、または直接結合されてよく、または別の方法で結合されてよい。プロセッサ22、26、30、34は、単一のプロセッサの部分であってよく、または、メモリ40に記憶され、プロセッサ38、別個の専用プロセッサ、もしくはこれらの組合せ(たとえば、プロセッサ22、26、30、34の1つまたは複数は1つまたは複数の専用プロセッサであり、他はプロセッサ38の一部である)によって実行されるソフトウェアコードの異なる部分によって実装されてよい。プロセッサ22、26、30、34、38は、1つまたは複数の汎用プロセッサおよび/または1つまたは複数の専用プロセッサ(デジタル信号処理チップ、グラフィックスアクセラレーションプロセッサなどのような)であってよい。センサ20は、様々な感知されたパラメータの1つおよび/または複数の指示、たとえば、モバイルデバイス12の向きに対する(モバイルデバイス12のデバイス座標系に対する)重力の方向の指示を提供することができる。
【００２２】
センサ20およびセンサプロセッサ22は、モバイルデバイス12の向きを決定するように構成される。センサ20は、モバイルデバイス12の向きを決定する際に使用するための情報を感知するように構成される、配向センサである。たとえば、センサ20は、ジャイロスコープ、1つまたは複数の加速度計、慣性測定ユニット(IMU)、ならびに/または、別のタイプのセンサおよび/もしくは他のタイプのセンサのような、1つまたは複数の慣性センサを含み得る。センサプロセッサ22は、センサ20によって測定/収集されたデータを処理して、モバイルデバイス12の向きを決定するように構成される。
【００２３】
カメラ24およびカメラプロセッサ26は、視覚的情報を撮影し生成するように構成される。カメラ24は、拡張論理を使用して(拡張、たとえば現実世界の外見の上に置かれる文字またはデザイン)拡張され得る現実世界の光景の画像および/またはビデオを撮影するように構成される。カメラプロセッサ26は、カメラ26によって収集されたデータを処理して、拡張論理によって使用され得るフォーマットへとデータを変換するように構成される。カメラプロセッサ26は、カメラ24から収集されたデータに対する様々なタイプの画像処理またはビデオ処理を実行して、ディスプレイ28に表示するためのコンテンツを準備するように構成される。
【００２４】
ディスプレイ28およびグラフィックスプロセッサ30は、カメラ24によって撮影されカメラプロセッサ26によって処理されたデータに基づいて視覚的情報を提供し、拡張論理によって生成された情報に基づいて視覚的情報を提供するように構成される。ディスプレイ28は、タッチセンサ32を含むタッチスクリーンインターフェースであり得る。グラフィックスプロセッサ30は、ディスプレイ28に表示するためのグラフィカルデータを生成するように構成される。グラフィックスプロセッサ30は、拡張論理によって提供される情報を使用して、拡張された画像コンテンツまたはビデオコンテンツを表示するように構成される。
【００２５】
タッチセンサプロセッサ34は、タッチセンサ32によって出力されたデータを処理して、ユーザがタッチスクリーンにタッチするときを特定することができる。タッチセンサプロセッサ34は、タッチスクリーンへの複数の指によるタッチを含む、様々なタッチジェスチャーを特定するように構成され得る。拡張論理は、タッチセンサプロセッサ34によって決定されたジェスチャー情報を使用して、ユーザ入力に対して拡張がどのように反応すべきかを少なくとも一部決定することができる。
【００２６】
通信モジュール36は、モバイルデバイス12が1つまたは複数のワイヤレスプロトコルを使用して通信することを可能にするように構成される。通信モジュール36は、モバイルデバイス12が、ワイヤレスアクセスポイントおよび他のAR対応デバイスを含む近くのワイヤレスデバイスと、データを送受信することを可能にするように構成される。通信モジュール36は、モデム、ワイヤレスネットワークカード、赤外線通信デバイス、ワイヤレス通信デバイスおよび/またはチップセット(Bluetooth(登録商標)デバイスまたは802.11デバイスのような短距離ワイヤレスデバイス、WiFiデバイス、WiMaxデバイス、セルラー通信施設などのような)などを含み得る。通信モジュール36は、データが、ネットワーク、他のコンピュータシステム、および/または他のデバイスと交換されることを可能にし得る。
【００２７】
プロセッサ38は、センサプロセッサ22、カメラプロセッサ26、グラフィックスプロセッサ30、またはタッチセンサプロセッサ34の1つまたは複数を制御するように構成される。センサプロセッサ22、カメラプロセッサ26、グラフィックスプロセッサ30、またはタッチセンサプロセッサ34の1つまたは複数はまた、プロセッサ38によって実装され得る。
【００２８】
メモリ40は、AR対応モバイルデバイス12の様々なコンポーネントによって使用されるデータを記憶するための、揮発性メモリおよび/または永続的な非揮発性メモリを含む。メモリ40は、ローカル記憶装置および/またはネットワークアクセス可能記憶装置、ディスクドライブ、ドライブアレイ、光学記憶デバイス、プログラム可能、フラッシュ更新可能などであり得る、ランダムアクセスメモリ(「RAM」)および/または読取り専用メモリ(「ROM」)のようなソリッドステート記憶デバイスを含み得る。そのような記憶デバイスは、限定はされないが、様々なファイルシステム、データベース構造などを含む、任意の適切なデータ記憶装置を実装するように構成され得る。
【００２９】
メモリ40は、モバイルデバイス12に含まれるプロセッサの1つまたは複数のための、プロセッサ可読のプロセッサ実行可能ソフトウェアプログラムコード44を記憶する。ソフトウェアコード44は、以下で説明される機能を実行するようにプロセッサを制御するための命令を含む(しかし、説明は、ソフトウェアまたはプロセッサが機能を実行すると読めることがある)。いくつかの例では、拡張論理は、メモリ40に記憶されたプロセッサ実行可能命令として実装され得る。ソフトウェア44は、オペレーティングシステム、デバイスドライバ、実行可能ライブラリ、および/または、本明細書で説明される方法を実施することができる1つまたは複数のアプリケーションプログラムのような他のソフトウェアコード命令を含む。たとえば、本明細書で説明される1つまたは複数の手順は、プロセッサによって実行されるソフトウェアコード命令として実装され得る。そのような命令は、汎用コンピュータ(または他のデバイス)に、本明細書で説明されるような1つまたは複数の動作を実行させ得る。ソフトウェア44は、モバイルデバイス12内に組み込まれるメモリ40の取外し可能ではない部分に記憶されてよく、または、コンパクトディスクのような取外し可能な媒体に記憶されてよく、かつ/または、インストールパッケージで提供されてよい。命令は、実行可能コードの形態であってよく、実行可能コードは直接プロセッサによって実行可能であり、または代替的に、命令は、ソースコードおよび/またはインストール可能コードの形態であってよく、ソースコードおよび/またはインストール可能コードは次いで、コンパイルおよび/またはインストール(たとえば、種々の一般に利用可能なコンパイラ、インストールプログラム、圧縮/解凍ユーティリティなどのいずれかを使用した)の後、実行可能コードの形態となる。モバイルデバイス12に関して上で説明された要素の1つまたは複数は省略され得る。たとえば、通信モジュール36および/またはタッチセンサ32およびタッチセンサプロセッサ34は省略され得る。さらに、いくつかの実施形態では、追加の要素が含まれ得る。プロセッサ22、26、30、34の1つまたは複数は、プロセッサ38と組み合わされてよく、もしくはプロセッサ38において実装されてよく、かつ/または、プロセッサ22、26、30、34の
1つまたは複数のいくつかもしくはすべての機能は、メモリ40に記憶された命令によって実装されてよい。
【００３０】
図3を参照すると、モバイルデバイス12は、原点モジュール(座標系の原点を設定するための手段)46、配向モジュール(配向手段または座標系の向きを設定するための手段)48、縮尺モジュール(座標系の縮尺を設定するための手段)50、および改良モジュール(座標系を改良するための手段)52を含む。原点モジュール46、配向モジュール48、縮尺モジュール50、および改良モジュール52は、互いに通信可能に結合される。モジュール46、48、50、52は、プロセッサ22、26、38によって実装され得る機能モジュール、および/またはメモリ40に記憶されるソフトウェア44であるが、モジュール46、48、50、52は、ハードウェア、ファームウェア、またはソフトウェア、またはこれらの組合せで実装され得る。機能を実行する、または実行するように構成されるモジュール46、48、50、52への言及は、ソフトウェア44(および/またはファームウェア、および/またはプロセッサ22、26、38のハードウェア)に従って機能を実行する、または実行するように構成されるプロセッサ22、26、38の1つまたは複数の省略表現である。同様に、座標系の原点を決定する、または座標系の向きを決定する、または座標系の縮尺を設定するプロセッサ22、26、38の1つまたは複数への言及は、機能を実行する、原点モジュール46、または配向モジュール48、または縮尺モジュール50とそれぞれ等価である。原点モジュール46、または座標系の原点を設定するための手段は、カメラ24によって撮影された情報に基づいて、座標系、たとえばAR座標系の原点を設定するように構成される。原点モジュール46の動作の例は、図6に関して以下で論じられるが、原点モジュール46は、1つまたは複数の他の方法でも動作することができる。配向モジュール48、または座標系の向きを設定するための手段は、カメラ24によって撮影された情報および/またはセンサ22から得られる情報を使用して、座標系、たとえばAR座標系の向きを設定するように構成される。配向モジュール48、または座標系の向きを設定するための手段は、モバイルデバイス12のデバイス座標系の向きを基準座標系の向きに変換するための変換手段を含む。配向モジュール48の動作の例は、図6に関して以下で論じられるが、配向モジュール48は、1つま
たは複数の他の方法でも動作することができる。縮尺モジュール50は、以下で論じられる技法または他の適切な技法を使用して、座標系、たとえばAR座標系の縮尺値を設定する(決定することを含む)ように構成される。改良モジュール52は、事前に決定された情報、たとえば、原点および/または向きおよび/または縮尺値を使用して、基準座標系を改良する、たとえば、基準座標系の原点および/または向きおよび/または縮尺値を変更するように構成される。
【００３１】
モジュール46、48、50、52は、デバイス12の性能を向上させるために、基準座標系を確立するように構成される。たとえば、基準座標系がAR座標系であるとき、モジュール46、48、50、52は、AR画像がユーザの期待と適合するように、たとえば、ゲーム体験がよりリアルであるように、かつ/またはもっともらしく見えるように、AR画像の用意を助ける。さらなる例として、モジュール46、48、50、52は、描画アプリケーションが垂直なイーゼルを提供すること、ボードゲームアプリケーションが水平方向のゲームボードを提供すること、スポーツアプリケーションがカメラ24の視野中のスポーツ器具(たとえば、バスケットボールのリング)と協調することなどを確実にするのを助けることができる。これらのモジュールの使用は、AR画像が、適切なサイズで、期待される向きで、かつ/または、ある面に対して適切な拡張を伴って、たとえば、ある面の上に浮いているのではなくその面の上を歩いているように、もしくはその面に固定されているように見えるように、デバイス12によって表示されているように見えるようにする。さらに、これらのモジュールは、AR以外の用途で、たとえば、異なるタイプのSLAMシステムなどにおける、追尾および/またはマッピングが利用される他のアプリケーションにおいて、デバイス12によって基準系を確立するために使用され得る。
【００３２】
図4〜図5を参照すると、モバイルデバイス12は、少なくともいくつかの構成では、2つのカメラ241、242を含み得る。カメラ241は、ディスプレイ28とともにモバイルデバイス12の表側54に配置され、カメラ242は、モバイルデバイス12の裏側または後側56に配置される。カメラ241は前面カメラと呼ばれ、カメラ242は本明細書では後面カメラと呼ばれる。モバイルデバイス12は通常、前面カメラ241がモバイルデバイス12のユーザに面し、後面カメラ242がモバイルデバイス12のユーザから離れる方向に面するように、持たれる。あるいは、モバイルデバイス12がどのようにユーザによって持たれるかに応じて、逆になり得る。図1も参照すると、カメラ241、242のいずれかが視野(FOV:  field  of  view)18を有し得る。カメラ242が、FOV  18を有するものとして下で説明されるが、他の状況または実装形態では、カメラ241または別のカメラがFOV  18を有し得る。
【００３３】
図1〜図5をさらに参照しながら図6を参照すると、基準座標系を確立するプロセス60は以下の段階を含む。しかしながら、プロセス60は例に過ぎず、限定するものではない。プロセス60は、たとえば、段階を追加すること、除去すること、並べ替えること、組み合わせること、および/または同時に実行することによって、変更され得る。たとえば、下で論じられる段階70および74、または段階64、66、68の2つ以上は、示されるものとは異なる順序で実行され得る。基準座標系は、AR座標系のようなSLAM座標系であり得る。
【００３４】
段階62において、モバイルデバイス12は画像フレームを取得し、いくつかの実施形態ではセンサデータも取得する。電源投入、ARアプリケーションのアクティブ化、ユーザの選択、または他の誘因イベントなどの誘因イベントにおいて、モバイルデバイス12は、カメラプロセッサ26によって処理されるような、カメラ24のうちの1つ、たとえば後面カメラ242から画像を撮影する。モバイルデバイス12はさらに、センサプロセッサ22によって処理されるような、センサ20からの情報を取得することができる。この例では、加速度計を使用して、モバイルデバイス12は、モバイルデバイス12の座標系に対する重力の方向に関する情報を取得する。さらに、加速度計および磁力計を使用して、モバイルデバイス12は、モバイルデバイス12の座標系に対する磁北の方向を取得する。いくつかの実施形態では、2つの非線形ベクトルが使用される。2つの非線形ベクトルは、重力ベクトル(下を向いている)および磁北のベクトル(磁北を向いている)、または、これらのベクトルのうちの1つと別のベクトルの組合せ、または、2つの他の非線形ベクトルの組合せを含み得る。重力ベクトルおよび磁北のベクトル(すなわち、磁北ベクトル)は、両方が1つまたは複数の加速度計の測定結果から導出され得る。
【００３５】
段階64において、モバイルデバイス12は、基準座標系の原点を決定する。原点モジュール46は、状況に応じて、種々の方法のうちの1つで原点を設定することができる。第1の技法では、原点モジュール46は、図7に示されるようなカメラ242の現在の3D位置80に原点を設定する。第2の技法では、原点モジュール46は、点群と関連付けられる幾何学的な中心、たとえば、図7に示されるような物体14の幾何学的な中心に原点82を設定する。この技法は、たとえば、点群が平面(たとえば、テーブル、壁のポスターなど)を有することが知られているとき、またはそのように判定されたときに、使用され得る。点群と関連付けられる幾何学的な中心は、その平面の幾何学的な中心として決定され得る。第3の技法では、原点モジュール46は、その2次元(2D)の投影が図7に示されるようなカメラ画像の中心の近くにある、点群のうちのある点に原点84を設定する。この技法は、原点を物体に添付し、または割り当て、それは、点群の任意の点が(モバイルデバイス12の周りの)環境中の物理的な構造に対応するからである。この技法は、様々な状況で使用され得るが、物理的な環境の深さの変動が小さく、点群の点がカメラ24から同じような距離にある場合に、特に有用であり得る。第4の技法では、原点モジュール46は、カメラの視線方向88(すなわち、カメラフレームの中心を通る、すなわち、カメラ24の視野の中心の線)と点群に適合された面との交点に、基準座標系の原点86を設定する。この面は、点群が平面的である(平面を表す)か、実質的に平面を表さないかに応じて、点群の大きい部分または小さい部分に適合され得る。たとえば、原点モジュール46は、その2D投影がカメラの中心の近くにある、点群のいくつかの点に対して面を適合することができる。この技法は、原点が、カメラの視野の中心にあること、またはその近くにあることと、モバイルデバイス12の周りの環境中の物理的な形状とも関連付けられることとを確実にするのを助ける。図7に示されるように、原点82、84、86は異なる位置にあるが、互いに近接している。これは例に過ぎず、他の例では、原点82、84、86の1つまたは複数は同じ位置にあってよく、かつ/または、原点82、84、86の1つまたは複数は、他の原点82、84、86の1つまたは複数から、示
されているよりも遠くに、または近くに移されてよい。
【００３６】
段階66において、モバイルデバイス12は、たとえば2つの平行ではないベクトルを使用して、基準座標系の向きを決定する。基準座標系の向きは、x-y-z直交座標系を仮定すると、高さ(上/下、+/-のz方向)、方位(左/右、+/-のx方向)、および前/後(+/-のy方向)の方向を定義する。基準座標系は直交しているので、配向モジュール48はz軸とy軸を定義するだけで十分であり、最後の軸はz軸とy軸との直交性(および右手系のような方向性)から得られる。いくつかの技法では、2つの軸の異なる組合せが使用される。向きを決定するために、いくつかの技法が利用可能である。第1の技法では、配向モジュール48は、図8に示されるように、現在のカメラ画像フレームの向きとして、基準座標系の向きを設定する。図8に示されるように、この技法は原点86に適用されるが、この技法は任意の技法を使用して選択された任意の原点に適用され得る。この技法は、センサ測定結果とは無関係であり、センサ情報が利用可能ではないとき(たとえば、センサ20が動作していない、または電力を節約することが望ましいとき)に使用され得る。得られる基準座標系は、重力とは無関係に配向され、物理的な環境に対して斜めである(たとえば、方位角が床に対して平行ではない)ことがある。第2の技法では、図9に示されるように、配向モジュール48は、(ベクトルgとして示される)重力に対して、かつ重力に垂直な方向に対して、または、磁北(または、代替的に真北)のような重力に垂直な方向からある許容範囲内、たとえば10°以内(すなわち、地球または地球の表面に対して実質的に水平な方向)に、向きを設定する。配向モジュール48は、センサプロセッサ22からの情報を使用して、加速度計からの情報に基づいて、基準座標系の正のz軸(ZR)を、重力の逆方向として、または、この方向からある許容範囲内、たとえば10°以内(すなわち、地球または地球の表面に対する実質的に垂直な方向)に設定し、(磁力計および/または加速度計からの情報に基づいて)基準座標系の正のy軸(YR)を磁北の向きとして設定することができる。この技法は様々な状況で使用されてよく、(たとえば、ナビゲーションシステムのための)地理的な方向に対する整列が有用または重要である状況では特に有用であり得る。第3の技法では、図10に示されるよ
うに、配向モジュール48は、重力およびカメラ24の現在の視線方向に対して基準座標系の向きを設定する。たとえば、配向モジュール48は、(加速度計を使用して)正のz軸を重力の逆方向として設定し、z軸に垂直な平面(ここではテーブル14の上面)へと投影された、後面カメラ242の現在の視線方向として正のy軸を設定する。この技法は様々な状況で使用されてよく、地理的な方向に対する整列がほとんどまたは全く重要もしくは有用ではなく、カメラ視線方向に対する整列が有用または重要である状況において、特に有用であり得る。
【００３７】
図11も参照すると、重力の方向を使用して基準座標系を決定するプロセス110は示される段階を含む。しかしながら、プロセス110は例に過ぎず、限定するものではない。プロセス110は、たとえば、段階を追加すること、除去すること、並べ替えること、組み合わせること、および/または同時に実行することによって、変更され得る。x-y-z座標系が以下で論じられるが、他の座標系も使用され得る。プロセス110は、図9と図10の両方に示され基準座標系を配向するための上で論じられた技法を含む。
【００３８】
段階112において、プロセス110は、デバイスに対する重力の方向を示す情報を取得するステップを含む。配向モジュール48は、センサプロセッサ22がセンサ20の1つまたは複数からのセンサデータから計算した、センサプロセッサ22からの重力の方向に関する情報を取得する。重力の方向に関するセンサプロセッサ22からの情報は、デバイス12に対するもの、たとえば、デバイス座標系(XD-YD-ZD)に対するものであってよく、または、デバイス座標系に対するものとなるように配向モジュール48によって変換されてよい。
【００３９】
段階114において、プロセス110は、基準座標系(XR-YR-ZR)を生成するために、デバイスに対する重力の方向を使用してデバイス座標系(XD-YD-ZD)の向きを変換するステップを含む。基準座標系を生むようにデバイス座標系を変換する(原点を転換する、かつ/または向きを回転させる)ために、既知の技法が使用され得る。転換(translate)が線形の動きを示すためにここでは使用されるが、転換(translating)という用語(およびその活用形)が、本明細書で使用されるような変換を意味するために、米国仮特許出願第61/722,023号において使用された。
【００４０】
図12をさらに参照すると、基準座標系を使用するアプリケーションに基づいて基準座標系を決定するプロセス120は、示される段階を含む。しかしながら、プロセス120は例に過ぎず、限定するものではない。プロセス120は、たとえば、段階を追加すること、除去すること、並べ替えること、組み合わせること、および/または同時に実行することによって、変更され得る。プロセス120は、基準座標系を配向するための技法を含む。
【００４１】
段階122において、プロセス120は、デバイスの向きを示す情報を取得するステップを含む。配向モジュール48は、センサプロセッサ22がセンサ20の1つまたは複数からのセンサデータから計算した、センサプロセッサ22からの情報を取得する。この情報は、デバイス座標系の向き、たとえば、ここでは図9〜図10に示されるXD-YD-ZD座標系を(直接、または、配向モジュール48による処理の後)示す。
【００４２】
段階124において、プロセス120は、基準座標系に対する選択されたアプリケーションに基づいて、基準座標系の向きを決定するステップを含む。基準座標系は最初に、たとえば、モバイルデバイス12上で実行されるARアプリケーションを介して、モバイルデバイス12によって有用または重要であると判定または仮定される面と揃うように、定義および/または設定され得る。たとえば、x-y-z座標系の2つの軸は、ゲームアプリケーションのためのテーブルの表面、落書きアプリケーションのための壁、または他の表面の面内にあるように、または、与えられる例に関して以下で論じられるように、任意の向きに定義され得る。たとえば、プロセッサ38は、1つまたは複数のカメラ画像からの情報を分析して、点群の面を決定し、互いに直行してその面内にあるように2つの軸を割り当てることができ、第3の軸は他の2つの軸の両方と直交する。基準座標系の向きを決定するステップは、たとえば、ARアプリケーションおよび/またはユーザ入力から、基準座標系の向きを受け取るステップを含み得るので、向きを決定するための手段は、たとえば、ARアプリケーションおよび/またはユーザ入力から、基準座標系の向きを受け取るための手段を含み得る。さらに、または代替的に、基準座標系の向きは、ARアプリケーションと関連付けられる拡張のタイプに基づいて決定され得る。たとえば、拡張のタイプは、現実世界の表面に配置される文字および/もしくはデザイン、ならびに/または、現実世界の表面上を動くキャラクターを含み得る。そのような拡張は、たとえば、基準座標系のx-y平面によって専有されるべきである面を示し得る。
【００４３】
配向モジュール48は、アプリケーションに基づいて基準座標系の向きを決定するためにどの1つまたは複数の技法を使用するかを決定することができる。たとえば、配向モジュール48は、アプリケーションに基づいて、段階66に関して上で論じられた技法の1つまたは複数を選択することができる。2つ以上の技法が選択される場合、基準座標系の向きを決定するために、適切であれば結果が組み合わされてよく、たとえば平均化されてよく(加重平均または非加重平均を含む)、または、そうでなければ技法のうちの1つが選択される。配向モジュール48は、アプリケーションに対する技法の1つまたは複数の特性または利益に基づいて、配向技法を決定(または選択)することができる。たとえば、スポーツアプリケーション(たとえば、バスケットボールゲーム)では、向きは重力に対するものであることが望ましいことがあるが、宇宙船での主観視点のシューティングゲームでは、向きは、アプリケーションの開始の時点ではカメラの画像フレームに対するものであることが望ましいことがある。アプリケーションの利益および/または特性は、たとえば、配向モジュール48による分析、ユーザ入力、所定の設定(たとえば、アプリケーション開発者による)などによって、配向技法と照合され得る。2つ以上の技法が選択される場合、基準座標系の向きを決定するために、適切であれば結果が組み合わされてよく、たとえば平均化されてよく(加重平均または非加重平均を含む)、または、そうでなければ技法のうちの1つが選択される。すなわち、複数の配向技法が各々望ましいであろう状況では、配向モジュール48は、現実的であれば向きを組み合わせることができ、または、特定のアプリケーション(たとえば、事前に定義されるような)に対する優先順位に基づいて技法のうちの1つを選択することができ、または、ユーザが配向技法を選択することを可能にすることができる、などである。
【００４４】
段階126において、プロセス120は、デバイス座標系の向きを決定された向きに変換して、基準座標系を生成するステップを含む。配向モジュール48は、デバイス座標系の向きを段階124からの決定された向きに変換し、たとえば、デバイス座標系を決定された向きに回転させるための既知の技法を使用して、基準座標系を生成する。
【００４５】
さらに、プロセス120は、初期の原点を示す情報を取得し、基準座標系の所望の原点を決定し、初期の原点を基準座標系の原点としての所望の原点に変換するための段階を含み得る。これらの段階は、プロセス120の一部として、またはプロセス120とは無関係な別個のプロセスとして行われ得る。原点モジュール46は、アプリケーションに基づいて、基準座標系の原点を決定するためにどの1つまたは複数の技法を使用するかを決定することができる。たとえば、原点モジュール46は、アプリケーションに基づいて、段階64に関して上で論じられた技法の1つまたは複数を選択することができる。原点モジュール46は、アプリケーションに対する技法の1つまたは複数の特性または利益に基づいて、原点技法を決定する(または選択する)ことができる。たとえば、スポーツアプリケーション(たとえば、バスケットボールゲーム)では、原点は、スポーツ器具、たとえばバスケットボールのバスケットと関連付けられることが望ましいことがあり、描画アプリケーションでは、原点は、壁またはイーゼル上のキャンバスのような、平面の中心にあることが望ましいことがあり、案内アプリケーションでは、原点は、カメラ24の原点にあることが望ましいことがある。アプリケーションの利益および/または特性は、たとえば、原点モジュール46による分析、ユーザ入力、所定の設定(たとえば、アプリケーション開発者による)などによって、原点技法と照合され得る。2つ以上の技法が選択される場合、基準座標系の原点を決定するために、適切であれば結果が組み合わされてよく、たとえば平均化されてよく(加重平均または非加重平均を含む)、または、そうでなければ技法のうちの1つが選択される。すなわち、複数の原点技法が各々望ましいであろう状況では、原点モジュール46は、現実的であれば原点を組み合わせることができ、または、特定のアプリケーション(たとえば、事前に定義されるような)に対する優先順位に基づいて技法のうちの1つを選択することができ、または、ユーザが原点技法を選択することを可能にすることができる、などである。
【００４６】
図6を参照すると、段階68において、モバイルデバイス12は、基準座標系の縮尺を決定するが、縮尺値は事前に決定されていることがあるので、そうすることは任意選択である。縮尺値は、種々の技法を使用して決定され得る。第1の技法では、縮尺モジュール50は、点群を固定されたサイズ、たとえば1単位のサイズと比較し、それにスケーリングすることによって、縮尺値を設定する。そうするめに、縮尺モジュール50は、高さ、幅、またはカメラ24から見られる最長の寸法のような、点群の種々の寸法のいずれかをスケーリングすることができる。第2の技法では、縮尺モジュール50は、AR座標の原点が、現在のカメラ位置、たとえばカメラ座標系の原点に対して、特定の所定の距離、たとえば1単位の距離を有するように、縮尺値を設定する。第3の技法では、縮尺モジュール50は、たとえば、加速度計またはステレオカメラシステム(たとえば、モバイルデバイス12の背面56に配置された2つの後面カメラ24)によって提供されるような、絶対的な測定結果に基づいて縮尺値を設定する。絶対的な測定結果は、AR座標系の縮尺を定義するために直接使用され得る。たとえば、絶対的な測定結果からの、1cmのような測定結果が、AR座標系において1単位として使用され得る。
【００４７】
段階70において、モバイルデバイス12は、段階64、66、68で決定された現在の基準座標系を改良する。基準座標系は、基準座標系が改善され得る(たとえば、最初の仮定が誤っていた場合は訂正され得る)ように、時間とともに改良され得る。モバイルデバイス12は、事前に決定された基準座標系、ここでは最も新しく決定された基準座標系からの情報がもしあればそれを使用して、現在の基準座標系(原点、向き、および場合によっては縮尺)を改良する。たとえば、プロセッサ38は、以前の繰り返しからの値および/またはセンサデータの1つまたは複数を使用することによって、カルマンフィルタを使用して、基準座標系、たとえば、原点および/または向きおよび/または縮尺について時間とともに繰り返すことができる。この段階は、以下で論じられる段階74のように任意選択である。
【００４８】
段階72において、モバイルデバイス12は、現在の基準座標系を出力する。現在の基準座標系は、描画アプリケーション、ボードゲームアプリケーション、主観視点のシューティングアプリケーションなどのようなARアプリケーションに出力され得る。現在の基準座標系は、段階64、66、68で決定されたシステムへの修正を誘発する以前の基準座標系が段階70において利用可能であった場合、改良された基準座標系であってよく、以前の基準座標系が段階70において利用可能ではなかった場合、または以前の基準座標系が段階64、66、68で決定されたシステムへの修正を誘発しない場合、改良されていない座標系である。
【００４９】
段階74において、現在の基準座標系が記憶される。現在の基準座標系は、段階70において以前の基準座標系として使用するために、メモリ40に記憶される。段階70のように、段階74は任意選択である。
【００５０】
プロセス60は、段階72の後、段階62に戻る。プロセス60は、モバイルデバイス12が電源切断されるまで、またはモバイルデバイス12上で実行されているARアプリケーションが終了するまで、続く。プロセス60は、様々な基準の1つまたは複数に基づいて、またはそれに応答して、開始され、または繰り返され得る。たとえば、プロセス60は、各画像が撮影されること、閾値の数の画像が撮影されたこと、アプリケーションの要求、ユーザの要求、閾値の長さの時間の経過、原点および/または向きの閾値の量の変動の決定が発生したことなどに応答して、実行され得る。
【００５１】
図13を参照すると、所定の基準座標系を改良することによって基準座標系を決定するプロセス130は、示される段階を含む。しかしながら、プロセス130は例に過ぎず、限定するものではない。プロセス130は、たとえば、段階を追加すること、除去すること、並べ替えること、組み合わせること、および/または同時に実行することによって、変更され得る。
【００５２】
段階132において、プロセス130は、第1の時間におけるデバイスの向きを示す第1の情報を取得するステップを含む。プロセッサ38は、センサ20によって行われた測定に従ってセンサプロセッサからの情報を取得することができ、かつ/または、メモリ40から情報を取得することができる、などである。たとえば、段階132は、上で論じられた段階62を含み得る。
【００５３】
段階134において、プロセス130は、第1の情報に基づいて基準座標系を決定するステップを含む。プロセッサ38は、たとえば、段階64、66、および任意選択で段階68に関して上で論じられたように、基準座標系を決定する。
【００５４】
段階136において、プロセス130は、第1の時間の後の第2の時間におけるデバイスの向きを示す第2の情報(すなわち、第1の情報が取得された、たとえば感知された後で、第2の情報は取得され、たとえば感知される)に基づいて、基準座標系を改良するステップを含む。たとえば、プロセッサ38は、少なくとも1つの事前に決定された座標系と関連付けられる事前に決定された基準座標系情報に関する記憶されている情報を使用して、段階70に関して上で論じられたように基準座標系を改良することができる。第1の時間と第2の時間との間のモバイルデバイス12の動きは、改良を改善することができる。
【００５５】
(実施例)
基準座標系の好ましい選択は、基準座標系の使用対象となるアプリケーションにより影響を受け得る。原点モジュール46および/または配向モジュール48は、使用されることになるアプリケーションに基づいて、基準座標系の原点および/または向きを決定するための1つまたは複数の技法を選択することができる。以下は、プロセッサ38がいくつかのアプリケーションのために様々な座標選択技法の中からどのように選ぶことができるかの例であるが、座標系の原点および/または座標系の向きを設定するための他の技法は、論じられるアプリケーションまたは他のアプリケーションのために使用され得る。
【００５６】
ゲームボードのARゲームでは、有用な座標系の例は、たとえばテーブルの水平面に対して直立しており揃っている座標系である。この場合、プロセッサ38は、たとえば、上で論じられた第1のまたは第4の原点設定技法を使用して、基準座標系の原点を計算するために点群が適度に平面的であると仮定し得る。基準座標系の向きは、たとえば、上で論じられた第3の配向設定技法を使用して、重力およびカメラ24の視線方向に対して、プロセッサ38および/または配向モジュール48によって計算され得る。同様に、落書きのARアプリケーションでは、有用な座標系は通常、壁と揃えられ、壁の外側部分に面している。この場合、たとえば、プロセッサ38は、上で論じられた第2または第4の原点設定技法を使用して原点を計算することができ、点群は、実質的に/適度に平面的である(たとえば、実質的に平面的な部分を有する、たとえば、許容される範囲内で平面的である、たとえば、面の長さまたは幅に対して高さのずれが10%以内である)。この場合、たとえば、プロセッサ38は、上で論じられた第3の配向設定技法を使用し、次いで、z軸が上方ではなく壁を水平に突き抜ける方向を向くように、座標系をx軸の周りで90度回転させて、基準座標系の向きを計算することができる。
【００５７】
未知の環境の中を進むロボットを伴うアプリケーションでは、有用な座標系の例は、ロボットの最初の位置に中心があり重力および北に対して揃えられている座標系である。この場合、たとえば、プロセッサ38および/または原点モジュール46は、上で論じられた第1の原点設定技法を使用して基準座標系の原点を計算することができ、上で論じられた第2の原点設定技法を使用して重力および北に対して基準座標系を正しく向けることができる。いくつかの実施形態では、そのような基準座標系はSLAMのために使用されてよく、ロボットはSLAMを使用して未知の環境の中を進む。
【００５８】
宇宙空間での主観視点のシューティングゲームでは、有用な基準座標系の例は、最初のカメラの位置および向きに揃えられており重力とは無関係の座標系である。この場合、たとえば、プロセッサ38は、上で論じられた第1の原点設定技法および第1の配向設定技法を使用することができる。
【００５９】
基準座標系の適切な設定は、ユーザ体験を改善するのを助けることができる。たとえば、基準座標系の適切な設定は、拡張が適切な比率であること(たとえば、バスケットボールがバスケットボールのバスケットより小さいこと)、適切な位置にあること(たとえば、重い物体が空中に浮かんでいないこと、魚が飛んでいないことなど)、および適切な向きであること(たとえば、人々が直立していること、車が水平方向に動いていることなど)を確実にするのを助けることができる。
【００６０】
他の検討事項
本議論はx-y-z座標系を使用した例を与えたが、関係する原理および/または論じられた具体的な技法は、ほとんど修正を伴わずに、他の座標系に適用され得る。
【００６１】
他の例および実装形態が、本開示および添付の請求項の範囲および趣旨の中にある。たとえば、上の議論は拡張現実システムおよび/またはSLAMシステムに注目したが、論じられた技法は、非拡張現実システムに適用され得る。さらに、ソフトウェアの性質により、上で説明された機能は、プロセッサ、ハードウェア、ファームウェア、配線、またはこれらの任意の組合せによって実行されるソフトウェアを使用して実装され得る。機能を実装する特徴はまた、機能の部分が異なる物理的位置において実装されるように分散されることを含めて、様々な位置に物理的に配置され得る。また、請求項を含めて本明細書で使用される場合、「のうちの少なくとも1つ」を伴う項目の列挙において使用されるような「または」は、たとえば、「A、B、またはCの少なくとも1つ」という列挙が、AもしくはBもしくはCもしくはABもしくはACもしくはBCもしくはABC(すなわち、AおよびBおよびC)、または2つ以上の特徴を伴う組合せ(たとえば、AA、AAB、ABBCなど)を意味するように、選言的な列挙を示す。
【００６２】
請求項を含めて本明細書で使用される場合、別段述べられない限り、機能または動作がある項目または条件に「基づく」という記述は、機能または動作が述べられた項目または条件に基づき、述べられた項目または条件に加えて1つまたは複数の項目および/または条件に基づき得ることを意味する。
【００６３】
具体的な要件に従って、かなりの変更が行われ得る。たとえば、カスタマイズされたハードウェアも使用されてよく、かつ/または、特定の要素が、ハードウェア、ソフトウェア(アプレットなどのようなポータブルソフトウェアを含む)、またはこれらの両方において実装され得る。さらに、ネットワーク入力/出力デバイスのような他のコンピューティングデバイスへの接続が利用され得る。
【００６４】
本明細書で使用される場合、「機械可読媒体」および「コンピュータ可読媒体」という用語は、機械にある特定の方式で動作させるデータを提供することに関与する任意の媒体を指す。コンピュータシステムを使用して、様々なコンピュータ可読媒体が、実行のための命令/コードをプロセッサに提供することに関与してよく、かつ/または、そのような命令/コードを(たとえば、信号として)記憶し、かつ/または搬送するために使用されてよい。多くの実装形態では、コンピュータ可読媒体は、物理的な記憶媒体および/または有形の記憶媒体である。そのような媒体は、限定はされないが、非揮発性媒体および揮発性媒体を含む、多くの形態をとり得る。非揮発性媒体は、たとえば、光学ディスクおよび/または磁気ディスクを含む。揮発性媒体は、限定はされないがダイナミックメモリを含む。
【００６５】
物理的なコンピュータ可読媒体および/または有形のコンピュータ可読媒体の共通の形態は、たとえば、フロッピー(登録商標)ディスク、フレキシブルディスク、ハードディスク、磁気テープもしくは任意の他の磁気媒体、CD-ROM、任意の他の光学媒体、パンチカード、紙テープ、穴のパターンを伴う任意の他の物理媒体、RAM、PROM、EPROM、FLASH-EPROM、任意の他のメモリチップもしくはカートリッジ、後で説明されるような搬送波、または、コンピュータが命令および/もしくはコードをそれから読み取ることができる任意の他の媒体を含む。
【００６６】
コンピュータ可読媒体の様々な形態は、1つまたは複数の命令の1つまたは複数のシーケンスを実行のために1つまたは複数のプロセッサへ搬送することに関与し得る。単なる例として、命令は最初に、遠隔コンピュータの磁気ディスクおよび/または光学ディスクで搬送され得る。遠隔コンピュータは、命令をダイナミックメモリにロードし、コンピュータシステムによって受信され、かつ/または実行されるべき命令を、送信媒体を通じて信号として送信することができる。
【００６７】
上で論じられた方法、システム、およびデバイスは例である。様々な構成は、様々な手順またはコンポーネントを適宜省略し、置換し、または追加することができる。たとえば、代替的な構成では、方法は、説明されたものとは異なる順序で実行されてよく、様々なステップが追加され、省略され、または結合されてよい。また、いくつかの構成に関して説明された特徴は、様々な他の構成で組み合わされてよい。構成の様々な態様および要素は同様の方式で組み合わされ得る。また、技術は進化するので、要素の多くは例であり、本開示または請求項の範囲を限定しない。
【００６８】
例示的な構成(実装形態を含む)の完全な理解をもたらすために、具体的な詳細が説明において与えられている。しかしながら、構成はこれらの具体的な詳細を伴わずに実施され得る。たとえば、構成を不明瞭にするのを避けるために、既知の回路、プロセス、アルゴリズム、構造、および技法は、不必要な詳細を伴わずに示されてきた。この説明は、例示的な構成を提供するのみであり、請求項の範囲、適用可能性、または構成を限定しない。むしろ、構成の前述の説明は、説明された技法を実施するための説明を与える。本開示の趣旨または範囲から逸脱することなく、様々な変更が要素の機能および構成において行われ得る。
【００６９】
また、構成は、流れ図またはブロック図として示されるプロセスとして説明されることがある。各々は順次的なプロセスとして動作を説明することがあるが、動作の多くは、並列に、または同時に実行され得る。加えて、動作の順序は並べ替えられ得る。プロセスは、図に含まれない追加の段階または機能を有し得る。さらに、方法の例は、ハードウェア、ソフトウェア、ファームウェア、ミドルウェア、マイクロコード、ハードウェア記述言語、またはこれらの任意の組合せによって実施され得る。ソフトウェア、ファームウェア、ミドルウェア、またはマイクロコードで実施されるとき、タスクを実行するためのプログラムコードまたはコードセグメントが、記憶媒体のような非一時的コンピュータ可読媒体に記憶され得る。プロセスは、説明されたタスクを実行することができる。
【００７０】
いくつかの例示的な構成を説明してきたが、本開示の趣旨から逸脱することなく、様々な修正、代替的な構成、および等価物が使用され得る。たとえば、上の要素はより大きいシステムのコンポーネントであることがあり、他の規則が、本発明の適用より優先されることがあり、または別様に本発明の適用を修正することがある。また、上の要素が考慮される前、その間、またはその後、多数の動作が行われ得る。したがって、上の説明は、請求項の範囲を拘束しない。
【００７１】
さらに、以下は、上の議論の様々な態様に関する例示的な請求項である。
【００７２】
1.基準座標系を決定する方法であって、
第1の時間におけるデバイスの向きを示す第1の情報を取得するステップと、
第1の情報に基づいて基準座標系を決定するステップと、
第1の時間の後の第2の時間におけるデバイスの向きを示す第2の情報に基づいて、基準座標系を改良するステップとを含む、方法。
【００７３】
2.デバイスが第1の時間と第2の時間との間に動かされる、請求項1に記載の方法。
【００７４】
3.基準座標系が、デバイスのアプリケーションとともに使用するための座標系を含み、決定するステップが、デバイスの座標系の向きを、デバイスのアプリケーションとともに使用するための基準座標系に変換するステップを含む、請求項1に記載の方法。
【００７５】
4.デバイスのアプリケーションとともに使用するための基準座標系がSLAM座標系である、請求項3に記載の方法。
【００７６】
5.アプリケーションがARアプリケーションを含む、請求項3に記載の方法。
【００７７】
6.第1の情報が2つの非線形ベクトルを含む、請求項1に記載の方法。
【００７８】
7.2つの非線形ベクトルの第1のベクトルが、1つまたは複数の加速度計の測定結果から導出される重力ベクトルを含む、請求項6に記載の方法。
【００７９】
8.2つの非線形ベクトルの第2のベクトルが、磁北の方向を指すベクトルを含み、2つのベクトルの第2のベクトルが、少なくとも磁力計から導出され、または、2つの非線形ベクトルの第2のベクトルが、デバイスのカメラの視線方向の、重力に垂直な平面上への投影を含む、請求項7に記載の方法。
【００８０】
9.決定するステップが、基準座標系の原点を設定するステップおよび/または基準座標系の縮尺値を決定するステップを含む、請求項1に記載の方法。
【００８１】
10.第1の時間におけるモバイルデバイスの向きを示す第1の情報を取得するための手段と、
第1の情報に基づいて基準座標系を決定するための手段と、
第1の時間の後の第2の時間におけるデバイスの向きを示す第2の情報に基づいて、基準座標系を改良するための手段とを含む、モバイルデバイス。
【００８２】
11.決定するための手段が、モバイルデバイスの座標系の向きを、モバイルデバイスのアプリケーションとともに使用するための基準座標系に変換するように構成される、請求項10に記載のモバイルデバイス。
【００８３】
12.取得するための手段が、第1の情報として2つの非線形ベクトルを取得するように構成され、2つの非線形ベクトルのうちの少なくとも1つが重力ベクトルまたは磁北のベクトルである、請求項10に記載のモバイルデバイス。
【００８４】
13.決定するための手段が、基準座標系の原点を設定し、かつ/または、基準座標系の縮尺値を決定するように構成される、請求項10に記載のモバイルデバイス。
【００８５】
14.プロセッサに、
第1の時間におけるモバイルデバイスの向きを示す第1の情報を取得させ、
第1の情報に基づいて基準座標系を決定させ、
第1の時間の後の第2の時間におけるデバイスの向きを示す第2の情報に基づいて、基準座標系を改良させる
ように構成されるプロセッサ可読命令を含む、モバイルデバイスのプロセッサ可読記憶媒体。
【００８６】
15.プロセッサに基準座標系を決定させるように構成される命令が、プロセッサに、モバイルデバイスの座標系の向きを、モバイルデバイスのアプリケーションとともに使用するための基準座標系へ変換させるように構成される命令を含む、請求項14に記載の記憶媒体。
【００８７】
16.プロセッサに第1の情報を取得させるように構成される命令が、プロセッサに第1の情報として2つの非線形ベクトルを取得させるように構成される命令を含み、2つの非線形ベクトルのうちの少なくとも1つが重力ベクトルまたは磁北のベクトルである、請求項14に記載の記憶媒体。
【００８８】
17.プロセッサに基準座標系を決定させるように構成される命令が、プロセッサに、基準座標系の原点を設定させ、かつ/または、基準座標系の縮尺値を決定させるように構成される命令を含む、請求項14に記載の記憶媒体。
【００８９】
18.プロセッサ可読命令を記憶したメモリと、
メモリに通信可能に結合され、
第1の時間におけるモバイルデバイスの向きを示す第1の情報を取得し、
第1の情報に基づいて基準座標系を決定し、
第1の時間の後の第2の時間におけるデバイスの向きを示す第2の情報に基づいて、基準座標系を改良する
ように構成されるプロセッサとを含む、モバイルデバイス。
【００９０】
19.プロセッサが、モバイルデバイスの座標系の向きを、モバイルデバイスのアプリケーションとともに使用するための基準座標系に変換するように構成される、請求項18に記載のモバイルデバイス。
【００９１】
20.プロセッサが、第1の情報として2つの非線形ベクトルを取得するように構成され、2つの非線形ベクトルのうちの少なくとも1つが重力ベクトルまたは磁北のベクトルである、請求項18に記載のモバイルデバイス。
【００９２】
21.基準座標系を決定するために、プロセッサが、基準座標系の原点を設定し、かつ/または、基準座標系の縮尺値を決定するように構成される、請求項18に記載のモバイルデバイス。
【００９３】
22.基準座標系を決定する方法であって、
デバイスの向きを示す情報を取得するステップと、
基準座標系に対して選択されたアプリケーションに基づいて、基準座標系の向きを決定するステップと、
基準座標系を生成するために、デバイス座標系の向きを基準座標系の向きに変換するステップとを含む、方法。
【００９４】
23.デバイスの向きを示す後で取得された情報に基づいて、基準座標系を改良するステップをさらに含む、請求項22に記載の方法。
【００９５】
24.基準座標系がSLAM座標系を含む、請求項22に記載の方法。
【００９６】
25.アプリケーションがARアプリケーションを含む、請求項22に記載の方法。
【００９７】
26.決定するステップが、ARアプリケーションから向きを受け取るステップを含む、請求項25に記載の方法。
【００９８】
27.決定するステップが、ARアプリケーションと関連付けられる拡張のタイプに基づく、請求項25に記載の方法。
【００９９】
28.拡張のタイプが、現実世界の表面に配置された文字またはデザインを含む、請求項27に記載の方法。
【０１００】
29.拡張のタイプが、現実世界の表面上を動くキャラクターを含む、請求項27に記載の方法。
【０１０１】
30.基準座標系の向きが、地球に対して実質的に水平な向きを含む、請求項22に記載の方法。
【０１０２】
31.基準座標系の向きが、地球に対して実質的に垂直な向きを含む、請求項22に記載の方法。
【０１０３】
32.選択されたアプリケーションに基づいて、基準座標系の原点を設定するステップをさらに含む、請求項22に記載の方法。
【０１０４】
33.デバイスの向きを示す情報を取得するための取得手段と、
取得手段に通信可能に結合され、基準座標系に対して選択されたアプリケーションに基づいて、基準座標系の向きを決定するための配向手段とを含み、配向手段が、基準座標系を生成するために、モバイルデバイスのデバイス座標系の向きを基準座標系の向きに変換するための変換手段を含む、モバイルデバイス。
【０１０５】
34.変換手段が、デバイスの向きを示す後で取得された情報に基づいて、基準座標系を改良するための改良手段を含む、請求項33に記載のモバイルデバイス。
【０１０６】
35.基準座標系がSLAM座標系を含む、請求項33に記載のモバイルデバイス。
【０１０７】
36.アプリケーションがARアプリケーションを含む、請求項33に記載のモバイルデバイス。
【０１０８】
37.配向手段が、ARアプリケーションから向きを受け取るための手段を含む、請求項36に記載のモバイルデバイス。
【０１０９】
38.決定するステップが、ARアプリケーションと関連付けられる拡張のタイプに基づく、請求項36に記載のモバイルデバイス。
【０１１０】
39.拡張のタイプが、現実世界の表面に配置された文字またはデザインを含む、請求項38に記載のモバイルデバイス。
【０１１１】
40.拡張のタイプが、現実世界の表面上を動くキャラクターを含む、請求項38に記載のモバイルデバイス。
【０１１２】
41.基準座標系の向きが、地球に対して実質的に水平な向きを含む、請求項33に記載のモバイルデバイス。
【０１１３】
42.基準座標系の向きが、地球に対して実質的に垂直な向きを含む、請求項33に記載のモバイルデバイス。
【０１１４】
43.選択されたアプリケーションに基づいて、基準座標系の原点を設定するための手段をさらに含む、請求項33に記載のモバイルデバイス。
【０１１５】
44.プロセッサ可読命令を記憶するメモリと、
メモリに通信可能に結合され、
デバイスの向きを示す情報を取得し、
基準座標系に対して選択されたアプリケーションに基づいて、基準座標系の向きを決定し、
基準座標系を生成するために、モバイルデバイスのデバイス座標系の向きを基準座標系の向きに変換する
ように構成されるプロセッサとを含む、モバイルデバイス。
【０１１６】
45.プロセッサがさらに、デバイスの向きを示す後で取得された情報に基づいて、基準座標系を改良するように構成される、請求項44に記載のモバイルデバイス。
【０１１７】
46.基準座標系がSLAM座標系を含む、請求項44に記載のモバイルデバイス。
【０１１８】
47.アプリケーションがARアプリケーションを含む、請求項44に記載のモバイルデバイス。
【０１１９】
48.プロセッサが、ARアプリケーションから向きを受け取るように構成される、請求項47に記載のモバイルデバイス。
【０１２０】
49.プロセッサが、ARアプリケーションと関連付けられる拡張のタイプに基づいて、基準座標系の向きを決定するように構成される、請求項47に記載のモバイルデバイス。
【０１２１】
50.拡張のタイプが、現実世界の表面に配置された文字またはデザインを含む、請求項49に記載のモバイルデバイス。
【０１２２】
51.拡張のタイプが、現実世界の表面上を動くキャラクターを含む、請求項49に記載のモバイルデバイス。
【０１２３】
52.基準座標系の向きが、地球に対して実質的に水平な向きを含む、請求項44に記載のモバイルデバイス。
【０１２４】
53.基準座標系の向きが、地球に対して実質的に垂直な向きを含む、請求項44に記載のモバイルデバイス。
【０１２５】
54.プロセッサが、選択されたアプリケーションに基づいて、基準座標系の原点を設定するように構成される、請求項44に記載のモバイルデバイス。
【０１２６】
55.プロセッサに、
デバイスの向きを示す情報を取得させ、
基準座標系に対して選択されたアプリケーションに基づいて、基準座標系の向きを決定させ、
基準座標系を生成するために、モバイルデバイスのデバイス座標系の向きを基準座標系の向きへ変換させる
ように構成されるプロセッサ可読命令を含む、モバイルデバイスのプロセッサ可読記憶媒体。
【０１２７】
56.プロセッサに、デバイスの向きを示す後で取得された情報に基づいて、基準座標系を改良させるように構成される命令をさらに含む、請求項55に記載の記憶媒体。
【０１２８】
57.基準座標系がSLAM座標系を含む、請求項55に記載の記憶媒体。
【０１２９】
58.アプリケーションがARアプリケーションを含む、請求項55に記載の記憶媒体。
【０１３０】
59.プロセッサに、ARアプリケーションから向きを受け取らせるように構成される命令をさらに含む、請求項58に記載の記憶媒体。
【０１３１】
60.プロセッサに、基準座標系の向きを決定させるように構成される命令が、プロセッサに、ARアプリケーションと関連付けられる拡張のタイプに基づいて、基準座標系の向きを決定させるように構成される命令を含む、請求項58に記載の記憶媒体。
【０１３２】
61.拡張のタイプが、現実世界の表面に配置された文字またはデザインを含む、請求項60に記載の記憶媒体。
【０１３３】
62.拡張のタイプが、現実世界の表面上を動くキャラクターを含む、請求項60に記載の記憶媒体。
【０１３４】
63.基準座標系の向きが、地球に対して実質的に水平な向きを含む、請求項55に記載の記憶媒体。
【０１３５】
64.基準座標系の向きが、地球に対して実質的に垂直な向きを含む、請求項55に記載の記憶媒体。
【０１３６】
65.プロセッサに、基準座標系の向きを決定させるように構成される命令が、プロセッサに、選択されたアプリケーションに基づいて、基準座標系の原点を設定させるように構成される命令を含む、請求項55に記載の記憶媒体。
【符号の説明】
【０１３７】
10  ARシステム
12  モバイルデバイス
14  物体
16  描画
18  視野
20  センサ
22  センサプロセッサ
24  カメラ
26  カメラプロセッサ
28  ディスプレイ
30  グラフィックスプロセッサ
32  タッチセンサ
34  タッチセンサプロセッサ
36  通信
38  プロセッサ
40  メモリ
42  バス
44  ソフトウェアプログラムコード
46  原点モジュール
48  配向モジュール
50  縮尺モジュール
52  改良モジュール
54  表側
56  後側
60  プロセス
80  現在の3D位置
82  原点
84  原点
86  原点
88  カメラの視線方向
110  プロセス
120  プロセス
130  プロセス
【図１】
2016507793.tif 000003
【図２】
2016507793.tif 000004
【図３】
2016507793.tif 000005
【図４】
2016507793.tif 000006
【図５】
2016507793.tif 000007
【図６】
2016507793.tif 000008
【図７】
2016507793.tif 000009
【図８】
2016507793.tif 000010
【図９】
2016507793.tif 000011
【図１０】
2016507793.tif 000012
【図１１】
2016507793.tif 000013
【図１２】
2016507793.tif 000014
【図１３】
2016507793.tif 000015
【手続補正書】
【提出日】平成27年6月30日(2015.6.30)
【手続補正１】
【補正対象書類名】特許請求の範囲
【補正対象項目名】全文
【補正方法】変更
【補正の内容】
【特許請求の範囲】
【請求項１】
基準座標系を決定する方法であって、
デバイスに対する重力の方向を示す情報を取得するステップと、
前記基準座標系を生成するために、前記デバイスに対する重力の前記方向を使用してデバイス座標系の向きを変換するステップと、
縮尺値を計算し、前記縮尺値を使用して前記基準座標系を生成するステップとを含み、
前記縮尺値を計算するステップが、
前記基準座標系の原点が前記デバイスから所定の距離を有するように前記縮尺値を計算すること、または
前記デバイスの1つまたは複数の入力センサからの絶対的な測定結果を使用すること
のうちの少なくとも1つを含む、方法。
【請求項２】
重力に垂直な方向を示す情報を取得するステップをさらに含み、前記変換するステップが、重力に垂直な前記方向を使用して前記デバイス座標系の前記向きを変換するステップを含む、請求項1に記載の方法。
【請求項３】
重力に垂直な前記方向が、磁北と、前記デバイスのカメラの視線方向の重力に垂直な平面上への投影とのうちの1つである、請求項2に記載の方法。
【請求項４】
前記基準座標系の原点を設定するステップをさらに含む、請求項1に記載の方法。
【請求項５】
前記原点を設定するステップが、
点群を取得するステップと、
前記点群の実質的に平面的な部分の幾何学的な中心を決定するステップとを含む、請求項4に記載の方法。
【請求項６】
前記原点を設定するステップが、
点群を取得するステップと、
前記デバイスのカメラの視線方向と、前記点群の実質的に平面的な部分に対応する平面との、交点を決定するステップとを含む、請求項4に記載の方法。
【請求項７】
前記縮尺値を計算するステップが、
点群を取得するステップと、
前記点群の寸法を固定されたサイズと比較するステップとを含む、請求項1に記載の方法。
【請求項８】
前記縮尺値を計算するステップが、前記デバイスの1つまたは複数の入力センサからの前記絶対的な測定結果を使用するステップを含み、前記1つまたは複数の入力センサが加速度計または複数のカメラを含む、請求項1に記載の方法。
【請求項９】
前記基準座標系および少なくとも1つの事前に決定された座標系からの情報を使用して、前記基準座標系と前記少なくとも1つの事前に決定された座標系の組合せを生成するように、前記基準座標系を改良するステップをさらに含む、請求項1に記載の方法。
【請求項１０】
前記基準座標系の使用対象のアプリケーションに基づいて、前記デバイス座標系の前記向きを変換するための複数の技法からの前記デバイス座標系の前記向きを変換するための第1の技法と、前記基準座標系の原点を設定するための複数の技法からの前記基準座標系の前記原点を設定するための第2の技法とのうちの少なくとも1つを決定するステップをさらに含む、請求項1に記載の方法。
【請求項１１】
前記基準座標系が拡張現実座標系であり、前記方法が、前記基準座標系に従って配置され配向された拡張現実画像を表示するステップをさらに含む、請求項1に記載の方法。
【請求項１２】
基準座標系を決定するためのデバイスであって、
前記デバイスに対する重力の方向を示す情報を取得するための手段と、
前記基準座標系を生成するために、前記デバイスに対する重力の前記方向を使用してデバイス座標系の向きを変換するための手段と、
縮尺値を計算するための手段とを含み、計算するための前記手段が、
前記基準座標系の原点がデバイスから所定の距離を有するように前記縮尺値を計算するための手段、または
デバイスの1つまたは複数の入力センサからの絶対的な測定結果を使用して前記縮尺値を計算するための手段
のうちの少なくとも1つを含む、デバイス。
【請求項１３】
重力に垂直な方向を示す情報を取得するための手段をさらに含み、変換するための前記手段が、重力に垂直な前記方向を使用して前記デバイス座標系の前記向きを変換するためのものである、請求項12に記載のデバイス。
【請求項１４】
重力に垂直な前記方向が、磁北と、前記デバイスのカメラの視線方向の重力に垂直な平面上への投影とのうちの1つである、請求項13に記載のデバイス。
【請求項１５】
前記基準座標系の原点を設定するための手段をさらに含む、請求項12に記載のデバイス。
【請求項１６】
前記原点を設定するための前記手段が、
点群を取得するための手段と、
前記点群の実質的に平面的な部分の幾何学的な中心を決定するための手段とを含む、請求項15に記載のデバイス。
【請求項１７】
前記原点を設定するための前記手段が、
点群を取得するための手段と、
前記デバイスのカメラの視線方向と、前記点群の実質的に平面的な部分に対応する平面との、交点を決定するための手段とを含む、請求項15に記載のデバイス。
【請求項１８】
前記縮尺値を計算するための前記手段が、
点群を取得するための手段と、
前記点群の寸法を固定されたサイズと比較するための手段とを含む、請求項12に記載のデバイス。
【請求項１９】
前記縮尺値を計算するための前記手段が、前記デバイスの1つまたは複数の入力センサからの前記絶対的な測定結果を使用するための手段を含み、前記1つまたは複数の入力センサが加速度計または複数のカメラを含む、請求項12に記載のデバイス。
【請求項２０】
前記基準座標系および少なくとも1つの事前に決定された座標系からの情報を使用して、前記基準座標系と前記少なくとも1つの事前に決定された座標系の組合せを生成するように、前記基準座標系を改良するための手段をさらに含む、請求項12に記載のデバイス。
【請求項２１】
前記基準座標系の使用対象のアプリケーションに基づいて、前記向きを変換するための第1の技法と、前記基準座標系の原点を設定するための第2の技法とのうちの少なくとも1つを決定するための手段をさらに含む、請求項12に記載のデバイス。
【請求項２２】
前記基準座標系が拡張現実座標系であり、前記基準座標系に従って配置され配向された拡張現実画像を表示するための手段をさらに含む、請求項12に記載のデバイス。
【請求項２３】
モバイルデバイスであって、
重力の方向を決定し、前記モバイルデバイスに対する重力の前記方向の指示を提供するように構成されるセンサと、
前記センサに通信可能に結合され、基準座標系を生成するために、前記モバイルデバイスに対する重力の前記方向の前記指示を使用して、前記モバイルデバイスのデバイス座標系の向きを変換するように構成される、配向モジュールと、
前記配向モジュールに通信可能に結合され、
前記基準座標系の原点が前記モバイルデバイスから所定の距離を有するように縮尺値を計算すること、または
前記モバイルデバイスの1つまたは複数の入力センサからの絶対的な測定結果を使用すること
によって、前記デバイス座標系に対する前記基準座標系の縮尺値を設定するように構成される、縮尺モジュールとを含む、モバイルデバイス。
【請求項２４】
前記配向モジュールがさらに、重力に垂直な方向を使用して前記デバイス座標系の前記向きを変換するように構成される、請求項23に記載のモバイルデバイス。
【請求項２５】
前記配向モジュールに通信可能に結合され、点群を取得すること、および、
前記点群の実質的に平面的な部分の幾何学的な中心を決定すること、または、
前記モバイルデバイスのカメラの視線方向と、前記点群の実質的に平面的な部分に対応する平面との、交点を決定すること
のうちの少なくとも1つによって、前記基準座標系の原点を設定するように構成される、原点モジュールをさらに含む、請求項23に記載のモバイルデバイス。
【請求項２６】
前記配向モジュールが、前記基準座標系および少なくとも1つの事前に決定された座標系からの情報を使用して、改良された基準座標系を生成するように構成される、請求項23に記載のモバイルデバイス。
【請求項２７】
前記基準座標系が拡張現実座標系であり、前記モバイルデバイスが、ディスプレイと、前記ディスプレイに、前記基準座標系に従って配置され配向された拡張現実画像を表示させるように構成されるプロセッサとをさらに含む、請求項23に記載のモバイルデバイス。
【請求項２８】
モバイルデバイスのプロセッサ可読記憶媒体であって、プロセッサに、
前記モバイルデバイスに対する重力の方向の指示を取得させ、
基準座標系を生成するために、前記モバイルデバイスに対する重力の前記方向の前記指示を使用して前記モバイルデバイスのデバイス座標系の向きを変換させ、
縮尺値を計算させ、前記縮尺値を使用して前記基準座標系を生成させる
ように構成されたプロセッサ可読命令を含み、
前記プロセッサに前記縮尺値を計算させるように構成される前記命令が、
前記基準座標系の原点が前記デバイスから所定の距離を有するように前記縮尺値を計算すること、または
前記デバイスの1つまたは複数の入力センサからの絶対的な測定結果を使用すること
のうちの少なくとも1つを前記プロセッサに行わせるように構成される命令を含む、プロセッサ可読記憶媒体。
【国際調査報告】
2016507793.tif 000016
2016507793.tif 000017
2016507793.tif 000018
2016507793.tif 000019
2016507793.tif 000020