(57)【要約】  第１電子デバイスは、第１電子デバイスの位置を測定するために第２電子デバイスを制御する。第１電子デバイスは、動きセンサ、ネットワークインタフェース回路、プロセッサ及びメモリを備えている。動きセンサは、第１電子デバイスの動きを検知する。ネットワークインタフェース回路は、第２電子デバイスと通信する。メモリは、第１電子デバイスが定義されたルールを満たす動きのレベルを有するという判定に応答して、第１電子デバイスの位置を測定するための要求を第２電子デバイスに送信することを含む動作を実行するためにプロセッサにより実行されるプログラムコードを格納している。第１電子デバイスの位置が検知されてメモリに格納される。第１電子デバイスの位置を測定するために使用され得るセンサデータが格納されたことを示す確認応答が、第２電子デバイスから受信される。
2021520528.tif 000002
【特許請求の範囲】
【請求項１】
第１電子デバイス（１３０）の位置を測定するために第２電子デバイス（１００、５００）を制御する前記第１電子デバイス（１３０）であって、
前記第１電子デバイス（１３０）の動きを検知する様に構成された動きセンサ（７４０）と、
前記第２電子デバイス（１００、５００）と通信する様に構成されたネットワークインタフェース回路（７３０）と、
前記動きセンサ（７４０）及び前記ネットワークインタフェース回路（７３０）に接続されたプロセッサ（７１０）と、
メモリ（７２０）であって、
前記第１電子デバイス（１３０）が、前記動きセンサ（７４０）によって検知された、定義されたルールを満たす動きのレベルを有するとの判定（２０４、３０８、４０８）に応答して、
前記第１電子デバイス（１３０）の位置を測定するための要求を前記第２電子デバイス（１００、５００）に送信（２０６、３１０、４１０）することと、
前記第１電子デバイス（１３０）の前記位置を検知して、前記メモリ（７２０）に格納（２０８、３１６、４１６）することと、
前記第１電子デバイス（１３０）の前記位置を測定するために使用され得るセンサデータを格納したことを示す確認応答を前記第２電子デバイス（１００、５００）から受信（２２２、３４０、４４０）することと、
を含む動作を実行するために、前記プロセッサ（７１０）によって実行されるプログラムコードを格納する前記メモリ（７２０）と、
を備えている、第１電子デバイス。
【請求項２】
請求項１に記載の第１電子デバイス（１３０）であって、
前記第１電子デバイス（１３０）は、触覚デバイスであって、ユーザによる前記触覚デバイスの移動の測定と、触覚フィードバックをユーザに提供することとの内の少なくとも１つを実行する様に構成された前記触覚デバイスを含み、
前記要求は、現実世界オブジェクト上のオーバーレイとしてグラフィックを表示する様に構成されたコンピュータ生成現実デバイスを含む前記第２電子デバイス（１００、５００）に送信される、第１電子デバイス。
【請求項３】
請求項１又は２に記載の第１電子デバイス（１３０）であって、
前記動作は、さらに、
前記第１電子デバイス（１３０）の前記位置の測定値を前記第２電子デバイス（１００、５００）から受信（２３４）することと、
前記メモリから読み出された前記第１電子デバイス（１３０）の前記位置と、前記第２電子デバイス（１００、５００）から受信した前記第１電子デバイス（１３０）の前記位置の前記測定値と、に基づいて、第１座標系で参照されるポーズを第２座標系で参照されるポーズに変換するための変換行列を判定（２３６）することと、
を含み、
前記第１座標系及び前記第２座標系の内の一方は、前記第１電子デバイス及び前記第２電子デバイスの内の一方のポーズを参照するために使用され、前記第１座標系及び前記第２座標系の内の他方は、前記第１電子デバイス及び前記第２電子デバイスの内の他方のポーズを参照するために使用される、第１電子デバイス。
【請求項４】
請求項３に記載の第１電子デバイス（１３０）であって、さらに、
前記プロセッサ（７１０）に接続された触覚フィードバック生成デバイス（７５０）を備え、
前記動作は、さらに、
変換されたポーズを生成するために、前記変換行列を使用して、前記第１電子デバイス（１３０）のポーズを前記第１座標系及び前記第２座標系の内の一方から前記第１座標系及び前記第２座標系の内の他方に変換することと、
前記変換されたポーズに基づき、前記触覚フィードバック生成デバイス（７５０）による触覚フィードバックの生成を制御（２３８）することと、
を含む、第１電子デバイス。
【請求項５】
請求項１から４のいずれか１項に記載の第１電子デバイス（１３０）であって、
前記動作は、さらに、
前記要求が前記第２電子デバイス（１００、５００）に送信されたときと、前記確認応答が前記第２電子デバイス（１００、５００）から受信されたときと、の間の時間間隔中に検知された前記第１電子デバイス（１３０）の動きのレベルが、前記定義されたルールを満たさなくなった中止条件が生じたかを判定（２２４、３６０、４６０）することと、
前記中止条件が生じたことに応答して、前記第１電子デバイス（１３０）の前記位置を測定するための動作を中止するために、中止メッセージを前記第２電子デバイス（１００、５００）に送信（２２６）することと、
を含む、第１電子デバイス。
【請求項６】
請求項１から５のいずれか１項に記載の第１電子デバイス（１３０）であって、さらに、
前記要求が前記第２電子デバイス（１００、５００）に送信されたときと、前記確認応答が前記第２電子デバイス（１００、５００）から受信されたときと、の間の時間間隔中において、前記第１電子デバイス（１３０）が静止したままであることに応答して、前記動きセンサ（７４０）によって検知された動きの前記レベルが、前記定義されたルールを満たすと判定（２０４）することを含む、第１電子デバイス。
【請求項７】
請求項１から６のいずれか１項に記載の第１電子デバイス（１３０）であって、さらに、
前記要求が前記第２電子デバイス（１００、５００）に送信されたときと、前記確認応答が前記第２電子デバイス（１００、５００）から受信されたときと、の間の時間間隔中において、前記第１電子デバイス（１３０）が定義された閾値量を超えた変化をしない速度を有すると判定することに応答して、前記動きセンサ（７４０）によって検知された動きの前記レベルが、前記定義されたルールを満たすと判定（２０４）することと、
前記メモリから読み出された前記第１電子デバイス（１３０）の前記位置が、前記第１電子デバイス（１３０）の前記速度によって前記時間間隔の少なくとも一部分に渡って変化したと判定された量に基づいて、前記第１電子デバイス（１３０）の更新された位置を推定することと、
前記第１電子デバイス（１３０）の前記位置の測定値を前記第２電子デバイス（１００、５００）から受信（２３４）することと、
前記第１電子デバイス（１３０）の前記更新された位置と、前記第２電子デバイス（１００、５００）から受信した前記第１電子デバイス（１３０）の前記位置と、に基づいて、第１座標系で参照されるポーズを第２座標系で参照されるポーズに変換するための変換行列を判定（２３６）することと、
を含み、
前記第１座標系及び前記第２座標系の内の一方は、前記第１電子デバイス及び前記第２電子デバイスの内の一方のポーズを参照するために使用され、前記第１座標系及び前記第２座標系の内の他方は、前記第１電子デバイス及び前記第２電子デバイスの内の他方のポーズを参照するために使用される、第１電子デバイス。
【請求項８】
請求項１から７のいずれか１項に記載の第１電子デバイス（１３０）であって、さらに、
前記要求が前記第２電子デバイス（１００、５００）に送信されたときと、前記確認応答が前記第２電子デバイス（１００、５００）から受信されたときと、の間の時間間隔中に検知された前記第１電子デバイス（１３０）の動きのレベルが、前記定義されたルールを満たさなくなった中止条件が生じたかを判定する（２２４、３６０、４６０）ことと、
前記中止条件が生じたことに応答して、第１座標系で参照されるポーズを第２座標系で参照されるポーズに変換するための変換行列を判定するための動作を中止するために、中止メッセージをサーバ（１４０）に送信（３６２、４６２）することと、
を含み、
前記第１座標系及び前記第２座標系の内の一方は、前記第１電子デバイス及び前記第２電子デバイスの内の一方のポーズを参照するために使用され、前記第１座標系及び前記第２座標系の内の他方は、前記第１電子デバイス及び前記第２電子デバイスの内の他方のポーズを参照するために使用される、第１電子デバイス。
【請求項９】
第２電子デバイス（１００、５００）に対する第１電子デバイス（１３０）の位置を測定するための前記第２電子デバイス（１００、５００）であって、
前記第１電子デバイス（１３０）の位置を示し得るセンサデータを出力する様に構成されたセンサ（１１０）と、
前記第１電子デバイス（１３０）と通信する様に構成されたネットワークインタフェース回路（８３０）と、
前記センサ（１１０）及び前記ネットワークインタフェース回路（８３０）に接続されたプロセッサ（８１０）と、
メモリ（８２０）であって、
前記第２電子デバイス（１００、５００）による前記第１電子デバイス（１３０）の位置の測定値を送信する要求を受信（２１４、４３０）することと、
前記要求に応答して、前記第１電子デバイス（１３０）の前記位置の測定値を生成するための動作を開始（２１６、４３２）することと、
前記センサ（１１０）によって出力された、前記第１電子デバイス（１３０）の前記位置を示し得るセンサデータを前記メモリ（８２０）に格納（２１８、４３４）することと、
前記センサデータが格納されたことを示す確認応答を送信（２２０、４３６）することと、
前記メモリに格納された前記センサデータに基づき前記第１電子デバイス（１３０）の前記位置の測定値を生成（２３０、４５４）することと、
前記第１電子デバイス（１３０）の前記位置の前記測定値を送信（２３２、４５６）することと、
を含む動作を実行するために、前記プロセッサ（８１０）によって実行されるプログラムコードを格納する前記メモリ（８２０）と、
を備えている、第２電子デバイス。
【請求項１０】
請求項９に記載の第２電子デバイス（１００、５００）であって、
前記動作は、さらに、
前記要求が受信されたときと、前記第２電子デバイス（１００、５００）によって前記確認応答が送信されたときと、の間の時間間隔中に検知された前記第１電子デバイス（１３０）の動きのレベルが、定義されたルールを満たさなくなったことを示す中止メッセージを受信したかを判定（２２８、２３０、４５２、４５４）すること、を含み、
前記第１電子デバイス（１３０）の前記位置の前記測定値の送信は、中止メッセージが受信されなかったとの前記判定（２２８、２３０、４５２、４５４）に応答して実行される、第２電子デバイス。
【請求項１１】
請求項９又は１０に記載の第２電子デバイス（１００、５００）であって、
前記センサ（１１０）は、カメラを備え、
前記メモリに格納された前記センサデータに基づき前記第１電子デバイス（１３０）の前記位置の前記測定値を生成するための前記動作は、前記カメラからのデジタル写真において、前記第１電子デバイス（１３０）に接続されたマーカと、前記第１電子デバイス（１３０）のハウジングの一部に接続されたマーカとの内の少なくとも１つの位置を識別することを含む、第２電子デバイス。
【請求項１２】
請求項９から１１のいずれか１項に記載の第２電子デバイス（１００、５００）であって、
前記第２電子デバイス（１００、５００）は、コンピュータ生成現実（ＣＧＲ）デバイスを備え、
前記第１電子デバイス（１３０）は、触覚デバイスであって、ユーザによる前記触覚デバイスの移動の測定と、触覚フィードバックをユーザに提供することとの内の少なくとも１つを実行する様に構成されている前記触覚デバイスを含む、第２電子デバイス。
【請求項１３】
請求項１２に記載の第２電子デバイス（１００、５００）であって、
前記第１電子デバイス（１３０）の前記位置の前記測定値を送信（２３２、４５６）することは、第１座標系で参照されるポーズを第２座標系で参照されるポーズに変換するための変換行列を判定するため、前記触覚デバイスの前記位置の前記測定値を前記触覚デバイスに送信（２３２）すること、を含み、
前記第１座標系及び前記第２座標系の内の一方は、前記触覚デバイス及び前記ＣＧＲデバイスの内の一方のポーズを参照するために使用され、前記第１座標系及び前記第２座標系の内の他方は、前記触覚デバイス及び前記ＣＧＲデバイスの内の他方のポーズを参照するために使用される、第２電子デバイス。
【請求項１４】
請求項９から１３のいずれか１項に記載の第２電子デバイス（１００、５００）であって、さらに、
前記第１電子デバイス（１３０）により検知され、かつ、前記第１電子デバイス（１３０）から受信した前記第１電子デバイス（１３０）の前記位置と、前記第２電子デバイス（１００、５００）による前記第１電子デバイス（１３０）の前記位置の前記測定値と、に基づいて、第１座標系で参照されるポーズを第２座標系で参照されるポーズに変換するための変換行列を判定（４５７）することであって、前記第１座標系及び前記第２座標系の内の一方は、前記第１電子デバイス及び前記第２電子デバイスの内の一方のポーズを参照するために使用され、前記第１座標系及び前記第２座標系の内の他方は、前記第１電子デバイス及び前記第２電子デバイスの内の他方のポーズを参照するために使用される、前記判定（４５７）することと、
前記変換行列に基づき判定されたポーズを有するグラフィックオブジェクトを表示デバイス（８５０）に表示（４５８）することと、
を含む、第２電子デバイス。
【請求項１５】
請求項９から１４のいずれか１項に記載の第２電子デバイス（１００、５００）であって、
前記第１電子デバイス（１３０）の前記位置の前記測定値を送信（２３２、４５６）することは、第１座標系で参照されるポーズを第２座標系で参照されるポーズに変換するための変換行列を判定するため、前記位置の前記測定値を使用するサーバに前記位置の前記測定値を送信（４５６）すること、を含み、
前記第１座標系及び前記第２座標系の内の一方は、前記第１電子デバイス及び前記第２電子デバイスの内の一方のポーズを参照するために使用され、前記第１座標系及び前記第２座標系の内の他方は、前記第１電子デバイス及び前記第２電子デバイスの内の他方のポーズを参照するために使用される、第２電子デバイス。
【請求項１６】
請求項９から１５のいずれか１項に記載の第２電子デバイス（５００）であって、さらに、
前記第２電子デバイス（５００）のユーザに面するカメラ（５０２）を使用してユーザの目からの反射のデジタル画像をキャプチャ（６００）することであって、前記ユーザの目からの前記反射は、前記第２電子デバイス（５００）の表示デバイス（８５０）に表示された仮想コンピュータ生成オブジェクトの反射である第１コンポーネントと、現実世界オブジェクトからの光の反射である第２コンポーネントと、を含む、前記キャプチャ（６００）することと、
前記仮想コンピュータ生成オブジェクトと前記現実世界オブジェクトとの間のミスアラインメントの計測値を抽出するために前記画像を処理（６０２）することと、
ミスアライメントの前記計測値が定義されたアライメントルールを満たさないことに応答して、更新された変換行列を生成するための動作を開始（６０４）することと、
を含む、第２電子デバイス。
【請求項１７】
サーバ（１４０）であって、
第１電子デバイス（１３０）及び第２電子デバイス（１００、５００）と通信する様に構成されたネットワークインタフェース回路（９３０）と、
前記ネットワークインタフェース回路（９３０）に接続されたプロセッサ（９１０）と、
メモリ（９２０）であって、
前記第１電子デバイス（１３０）の位置の前記第１電子デバイス（１３０）による測定値を、前記第１電子デバイス（１３０）から受信（３２０）することと、
前記第１電子デバイス（１３０）の位置の前記第２電子デバイス（１００、５００）による測定値を、前記第２電子デバイス（１００、５００）から受信（３７０）することと、
前記第１電子デバイス（１３０）から受信した前記第１電子デバイスの前記位置と、前記第２電子デバイス（１００）から受信した前記第１電子デバイスの前記位置と、に応答して、第１座標系で参照されるポーズを第２座標系で参照されるポーズに変換するための変換行列を生成（３７４）することと、
を含む動作を実行するために、前記プロセッサ（９１０）によって実行されるプログラムコードを格納する前記メモリ（９２０）と、
を備え、
前記第１座標系及び前記第２座標系の内の一方は、前記第１電子デバイス及び前記第２電子デバイスの内の一方のポーズを参照するために使用され、前記第１座標系及び前記第２座標系の内の他方は、前記第１電子デバイス及び前記第２電子デバイスの内の他方のポーズを参照するために使用される、サーバ。
【請求項１８】
請求項１７に記載のサーバであって、前記動作は、さらに、
前記第２電子デバイス（１００、５００）から通信される、前記第１電子デバイス（１３０）の前記位置を測定するために使用され得るセンサデータを前記第２電子デバイス（１００、５００）が格納したことを示す確認応答を観察（３３８）することと、
前記位置の前記測定値を送信する前記第２電子デバイス（１００、５００）への要求が観察されたときと、前記第２電子デバイス（１００、５００）が前記センサデータを格納したことを示す前記確認応答を前記第２電子デバイス（１００、５００）が通信したときと、の間の時間間隔中に検知された前記第１電子デバイス（１３０）の動きのレベルが、定義されたルールを満たさなくなったことを示す中止メッセージが受信されたかを判定（３７２）することと、
を含み、
前記変換行列を生成（３７４）するための前記動作は、前記第２電子デバイス（１００、５００）から通信される前記確認応答を受信する前に、中止メッセージが受信されなかった場合にのみ実行される、サーバ。
【請求項１９】
請求項１７に記載のサーバであって、
前記第１電子デバイス（１３０）は、触覚デバイスであって、ユーザによる前記触覚デバイスの移動の測定と、触覚フィードバックをユーザに提供することとの内の少なくとも１つを実行する様に構成されている前記触覚デバイスを含み、
前記第２電子デバイス（１００、５００）は、コンピュータ生成現実（ＣＧＲ）デバイスを含む、サーバ。
【請求項２０】
請求項１７に記載のサーバであって、さらに、
前記変換行列を使用して、触覚フィードバック生成デバイス（７５０）による触覚フィードバックの生成を制御（３８０）することと、
前記変換行列に基づき判定されるポーズを有するグラフィックオブジェクトの表示デバイス（８５０）への表示を制御（３８０）することと、
の内の少なくとも１つを実行すること、を含み、
前記表示デバイス（８５０）は、前記第２電子デバイス（１００、５００）内にある、サーバ。
【請求項２１】
第１電子デバイス（１３０）の位置を測定するために第２電子デバイス（１００、５００）を制御する前記第１電子デバイス（１３０）による方法であって、
前記第１電子デバイス（１３０）が、定義されたルールを満たす動きのレベルを有すると判定（２０４、３０８、４０８）することに応答して、
前記第１電子デバイス（１３０）の位置を測定するための要求を前記第２電子デバイス（１００、５００）に送信（２０６、３１０、４１０）することと、
前記第１電子デバイス（１３０）の前記位置を検知して、メモリに格納（２０８、３１６、４１６）することと、
前記第１電子デバイス（１３０）の前記位置を測定するために使用され得るセンサデータを格納したことを示す確認応答を前記第２電子デバイス（１００、５００）から受信ことと、
を含む、方法。
【請求項２２】
請求項２１に記載の方法であって、さらに、
請求項２から８のいずれか１項に記載の動作を実行することを含む、方法。
【請求項２３】
第２電子デバイス（１００、５００）に対する第１電子デバイス（１３０）の位置を測定するための前記第２電子デバイス（１００、５００）による方法であって、
前記第２電子デバイス（１００、５００）による前記第１電子デバイス（１３０）の位置の測定値を送信する要求を受信（２１４、４３０）することと、
前記要求に応答して、前記第１電子デバイス（１３０）の前記位置の測定値を生成するための動作を開始（２１６、４３２）することと、
センサによって出力された、前記第１電子デバイス（１３０）の前記位置を示し得るセンサデータをメモリに格納（２１８、４３４）することと、
前記センサデータが格納されたことを示す確認応答を送信（２２０、４３６）することと、
前記メモリに格納された前記センサデータに基づき前記第１電子デバイス（１３０）の前記位置の測定値を生成することと、
前記第１電子デバイス（１３０）の前記位置の前記測定値を送信（２３２、４５６）することと、
を含む、方法。
【請求項２４】
請求項２３に記載の方法であって、さらに、
請求項１０から１６のいずれか１項に記載の動作を実行することを含む、方法。
【請求項２５】
サーバ（１４０）による方法であって、
第１電子デバイス（１３０）の位置の前記第１電子デバイス（１３０）による測定値を、前記第１電子デバイス（１３０）から受信（３２０）することと、
前記第１電子デバイス（１３０）の位置の第２電子デバイス（１００、５００）による測定値を、前記第２電子デバイス（１００、５００）から受信（３７０）することと、
前記第１電子デバイス（１３０）から受信した前記第１電子デバイスの前記位置と、前記第２電子デバイス（１００）から受信した前記第１電子デバイスの前記位置と、に応答して、第１座標系で参照されるポーズを第２座標系で参照されるポーズに変換するための変換行列を生成（３７４）することと、
を含み、
前記第１座標系及び前記第２座標系の内の一方は、前記第１電子デバイス及び前記第２電子デバイスの内の一方のポーズを参照するために使用され、前記第１座標系及び前記第２座標系の内の他方は、前記第１電子デバイス及び前記第２電子デバイスの内の他方のポーズを参照するために使用される、方法。
【請求項２６】
請求項２５に記載の方法であって、さらに、
請求項１８から２０のいずれか１項に記載の動作を実行することを含む、方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本開示は、触覚デバイスと、複合現実デバイス及び仮想現実デバイス等のコンピュータ生成現実デバイスとの相互作用に関する。
【背景技術】
【０００２】
触覚デバイスと、複合又は仮想現実（ＭＲ又はＶＲ）デバイスは、対人コミュニケーション、ゲーム、及び、その他のアプリケーションのために社会で使用される、将来のデバイスエコシステムの一部として増加している。複合現実コンピュータシステムは、ポーズを有するコンピュータ生成仮想オブジェクトで、ユーザが現実世界で見ているものを拡大し、現実世界に存在するかの様に仮想オブジェクトをユーザに表示する。対照的に、仮想現実コンピュータシステムは、現実世界にオブジェクトを重ねるのではなく、完全な仮想世界のオブジェクトを生成する。どちらのタイプのシステムでも、コンピュータ生成オブジェクトをユーザに表示するヘッドマウントディスプレイや、ユーザの動きを追跡し、ユーザに触覚フィードバックを提供し得る触覚デバイス等の、特別な電子機器を使用して、現実に見せる、又は、物理的な方法でユーザと相互作用することを可能にする。本明細書で使用されるコンピュータ生成現実（ＣＧＲ）という用語は、ＭＲ型システム及びＶＲ型システムを集合的に指すために使用される。したがって、本明細書で説明されるＣＧＲシステムは、以下の特定の例で別段の定めがない限り、ＭＲシステム又はＶＲシステムであり得る。
【発明の概要】
【発明が解決しようとする課題】
【０００３】
ＣＧＲシステムにおいて、触覚デバイスは、触覚フィードバックをユーザに提供することができ、これにより、ユーザは、ＣＧＲデバイスのディスプレイを通じて仮想オブジェクトを見ながら仮想オブジェクトを感じることができる。ＣＧＲシステムの挑戦的な問題は、デバイスのワークスペース等といった触覚デバイスの座標系と、カメラ画像に基づき生成された３Ｄコンピュータ生成オブジェクトを表示するために使用され得るＣＧＲデバイスの座標系との間のアライメント（位置合わせ）をどの様に提供するかである。
【０００４】
触覚デバイスをＣＧＲの世界に統合する幾つかの既知の複合現実システムは、外部追跡システムを使用する。例えば、ＧＯ  ＴＯＵＣＨ  ＶＲブランドシステムとＵｌｔｒａｈａｐｔｉｃｓブランドシステムは、Ｌｅａｐ  Ｍｏｔｉｏｎブランドのハンド追跡デバイスを使用する。ＨＴＣ  Ｖｉｖｅブランド製品は、外部追跡システムを使用して周辺デバイスとヘッドセットデバイスを追跡し、これにより、総てのデバイスの追跡に同じ追跡システムが利用されるため、座標系アライメントが不要になる。ＨＴＣ  Ｖｉｖｅの欠点は、１つの部屋の中で使用する必要があるため、これらの制限を超えて移動できないことである。
【０００５】
したがって、触覚デバイス及びＣＧＲデバイスの座標系の改良された自動アライメントを提供するＣＧＲシステムを提供する必要性が存在する。
【課題を解決するための手段】
【０００６】
本明細書で開示される幾つかの実施形態は、第１電子デバイスの位置を測定するために、第２電子デバイスを制御する第１電子デバイスを対象とする。第１電子デバイスは、動きセンサと、ネットワークインタフェース回路と、プロセッサと、メモリと、を備えている。動きセンサは、第１電子デバイスの動きを検知する様に構成される。ネットワークインタフェース回路は、第２電子デバイスと通信する様に構成される。プロセッサは動きセンサ及びネットワークインタフェース回路に接続される。メモリは、動きセンサによって検知された、定義されたルールを満たす動きのレベルを第１電子デバイスが有するという判定に応答して、第１電子デバイスの位置を測定するための要求を第２電子デバイスに送信することを含む動作を実行するために、プロセッサにより実行されるプログラムコードを格納する。動作はさらに、第１電子デバイスの位置を検知してメモリに格納することと、第２電子デバイスから、第１電子デバイスの位置を測定するために使用され得るセンサデータを格納したことを示す確認応答を受信することと、を含む。
【０００７】
幾つかのさらなる実施形態において、第１電子デバイスは、ユーザによる触覚デバイスの移動の測定及び触覚フィードバックをユーザに提供することの少なくとも１つを実行する様に構成される触覚デバイスを含む。要求は、現実世界のオブジェクト上のオーバーレイとしてグラフィックを表示する様に構成されたＣＧＲデバイスを含む第２電子デバイスに送信される。触覚デバイスの位置の測定値は、ＣＧＲデバイスから受信される。次に、メモリから読み出された触覚デバイスの位置と、ＣＧＲデバイスから受信した触覚デバイスの位置の測定値と、に基づいて、第１座標系で参照されるポーズを第２座標系で参照されるポーズに変換するための変換行列が判定される。第１座標系及び第２座標系の一方は、触覚デバイス及びＣＧＲデバイスの一方のポーズを参照するために使用され、第１座標系及び第２座標系の他方は、触覚デバイス及びＣＧＲデバイスの他方のポーズを参照するために使用される。
【０００８】
これらの動作の潜在的な利点は、座標系間の変換行列が、従来技術のアプローチと比較して、より一貫して繰り返すことができる動作精度で生成され得ることである。第１電子デバイスが静止しているときなど、第１電子デバイスが定義されたルールを満たす動きのレベルを有すると判定されたときに、第２電子デバイスは、第１電子デバイスの位置を測定する。したがって、第１電位デバイス及び第２電子デバイスが第１電子デバイスの同じ位置を測定する可能性が高く、それにより、得られる各座標系間の変換行列の精度が向上する。第１電子デバイス及び第２電子デバイスにより測定された位置の差は、第１電子デバイスの既知の一定速度を使用して数学的に補正できるため、定義されたルールは、第１電子デバイスが等速である場合にも満たされ、それにより、得られる変換行列の精度が向上する。
【０００９】
他の幾つかの関連する実施形態は、第２電子デバイスに対する第１電子デバイスの位置を測定するための第２電子デバイスを対象とする。第２電子デバイスは、センサと、ネットワークインタフェース回路と、プロセッサと、メモリと、を備えている。センサは、第１電子デバイスの位置を示し得るセンサデータを出力する様に構成される。ネットワークインタフェース回路は、第１電子デバイスと通信する様に構成される。プロセッサは、センサ及びネットワークインタフェース回路に接続される。メモリは、第１電子デバイスの位置の第２電子デバイスによる測定値を送信する要求を受信することを含む動作を実行するために、プロセッサによって実行されるプログラムコードを格納する。動作は、要求に応答して、第１電子デバイスの位置の測定値を生成する動作を開始することと、センサによって出力された、第１電子デバイスの位置を示し得るセンサデータをメモリに格納することと、をさらに含む。センサデータが保存されたことを示す確認応答が送信される。第１電子デバイスの位置の測定値は、メモリに格納されたセンサデータに基づいて生成され、第２電子デバイスから送信される。
【００１０】
幾つかのさらなる実施形態において、動作はさらに、第２電子デバイスによって、要求が受信されたときと、確認応答が送信されたときと、の間の時間間隔中に検知された第１電子デバイスの動きのレベルが、定義されたルールを満たさなくなったことを示す中止メッセージが受信されたかどうかを判定することを含む。第１電子デバイスの位置の測定値を送信するための動作は、中止メッセージが受信されなかったという判定に応答して実行される。
【００１１】
他の幾つかの関連する実施形態は、ネットワークインタフェース回路と、プロセッサと、メモリと、を備えるサーバを対象とする。ネットワークインタフェース回路は、第１電子デバイス及び第２電子デバイスと通信する様に構成される。プロセッサは、ネットワークインタフェース回路に接続される。メモリは、第１電子デバイスから、第１電子デバイスの位置の第１電子デバイスによる測定値を受信することを含む動作を実行するために、プロセッサによって実行されるプログラムコードを格納する。動作はさらに、第２電子デバイスから、第１電子デバイスの位置の第２電子デバイスによる測定値を受信することと、第１電子デバイスから受信した第１電子デバイスの位置及び第２電子デバイスから受信した第１電子デバイスの位置に応答して、第１座標系で参照されるポーズを第２座標系で参照されるポーズに変換するための変換行列を生成することと、を含む。第１座標系及び第２座標系の一方は、第１電子デバイス及び第２電子デバイスの一方のポーズを参照するために使用され、第１座標系及び第２の座標系の他方は、第１電子デバイス及び第２電子デバイスの他方のポーズを参照するために使用される。
【００１２】
本明細書で開示される幾つかの実施形態は、第１電子デバイスの位置を測定するために、第２電子デバイスを制御する第１電子デバイスにより実行される方法を対象とする。本方法は、第１電子デバイスが定義されたルールを満たす動きのレベルを有するという判定に応答して、第１電子デバイスの位置を測定する要求を第２電子デバイスに送信することと、第１電子デバイスの位置を検知してメモリに格納することと、を含む。第２電子デバイスが、第１電子デバイスの位置を測定するために使用され得るセンサデータを格納したことを示す確認応答が、第２電子デバイスから受信される。
【００１３】
他の幾つかの関連する実施形態は、第２電子デバイスに対する第１電子デバイスの位置を測定するために第２電子デバイスよって実行される方法を対象とする。本方法は、第１電子デバイスの位置の第２電子デバイスによる測定値を送信する要求を受信することを含む。要求に応答して、本方法は、第１電子デバイスの位置の測定値を生成する動作を開始することと、センサによって出力された、第１電子デバイスの位置を示し得るセンサデータをメモリに格納することと、をさらに含む。センサデータが格納されたことを示す確応答が送信される。第１電子デバイスの位置の測定値は、メモリに格納されたセンサデータに基づき生成される。第１電子デバイスの位置の測定値は、第２電子デバイスから送信される。
【００１４】
他の幾つかの関連する実施形態は、サーバによる方法を対象とする。本方法は、第１電子デバイスの位置の第１電子デバイスによる測定値を、第１電子デバイスから受信することを含む。第１電子デバイスの位置の第２電子デバイスによる測定値は、第２電子デバイスから受信される。第１電子デバイスから受信した第１電子デバイスの位置及び第２電子デバイスから受信した第１電子デバイスの位置に応答して、第１座標系で参照されるポーズを第２座標系で参照されるポーズに変換するための変換行列が生成される。第１座標系及び第２座標系の一方は、第１電子デバイス及び第２電子デバイスの一方のポーズを参照するために使用され、第１座標系及び第２の座標系の他方は、第１電子デバイス及び第２電子デバイスの他方のポーズを参照するために使用される。
【００１５】
実施形態による他の電子デバイス、サーバ及び対応する方法は、以下の図面及び詳細な説明を検討することにより、当業者には明らかになる。そのような総ての追加の電子デバイス、サーバ及び対応する方法は、この説明に含まれ、添付の特許請求の範囲により保護されることが意図される。
【００１６】
本開示の態様は、例として示され、添付の図面によって限定されない。
【図面の簡単な説明】
【００１７】
【図１】本開示の幾つかの実施形態に従って動作する触覚デバイス及びＣＧＲデバイスを含むＣＧＲシステムを示す図。
【図２】本開示の幾つかの実施形態に従って動作する触覚デバイス及びＣＧＲデバイスによる動作のデータフロー図及びフローチャート。
【図３ａ】本開示の幾つかの実施形態に従って動作する触覚デバイス、サーバ及びＣＧＲデバイスによる動作のデータフロー図及びフローチャート。
【図３ｂ】本開示の幾つかの実施形態に従って動作する触覚デバイス、サーバ及びＣＧＲデバイスによる動作のデータフロー図及びフローチャート。
【図４ａ】本開示の幾つかの実施形態に従って動作する触覚デバイス、サーバ及びＣＧＲデバイスによる動作の別のデータフロー図及びフローチャート。
【図４ｂ】本開示の幾つかの実施形態に従って動作する触覚デバイス、サーバ及びＣＧＲデバイスによる動作の別のデータフロー図及びフローチャート。
【図５】ユーザに面するカメラを有し、本開示の幾つかの実施形態に従って動作する別のタイプのＣＧＲデバイスを示す図。
【図６】本開示の幾つかの実施形態による、更新された変換行列の生成を開始するためのＣＧＲデバイスによる動作のフローチャート。
【図７】本開示の幾つかの実施形態に従う様に構成された触覚デバイスコンポーネントのブロック図。
【図８】本開示の幾つかの実施形態に従う様に構成されたＣＧＲデバイスコンポーネントのブロック図。
【図９】本開示の幾つかの実施形態に従う様に構成されたサーバコンポーネントのブロック図。
【発明を実施するための形態】
【００１８】
次に、本発明の概念の実施形態例を示す添付の図面を参照して、本発明の概念を以下ではより完全に説明する。しかしながら、本発明の概念は、多くの異なる形態で具現化され、本明細書で説明される実施形態に限定されると解釈されるべきではない。むしろ、これらの実施形態は、この開示が徹底的かつ完全であり、本開示の範囲を当業者に十分に伝えるために提供される。これらの実施形態は相互に排他的ではないことにも留意されたい。一実施形態からの構成要素は、暗黙的に、別の実施形態において存在／使用されることが想定され得る。
【００１９】
触覚デバイスとＣＧＲデバイスの座標系は、オブジェクトの位置及び／又は回転角度（例えば、６自由度（ＤＯＦ）座標系の位置及び回転）の変換を可能にする、或いは、ある座標系で参照されるデバイスを他の座標系に変換することを可能にする、変換行列を使用して調整され得る。変換行列は、ＭＲデバイスの座標系における触覚デバイスの位置（場所）を検出するために、ＭＲデバイスの正面カメラ等のＣＧＲデバイスのセンサと、（例えば、Ｇｅｏｍａｇｉｃ  Ｔｏｕｃｈ又はＧＯ  ＴＯＵＣＨ  ＶＲデバイスに基づいて）その動きを追跡し、触覚デバイスの座標系での位置を検出するために使用される触覚デバイスのオンボードセンサと、を使用することで生成され得る。触覚デバイス座標系における触覚デバイスの位置及びＣＧＲデバイス座標系における触覚デバイスの位置に基づいて、２つの座標系を関連付ける変換行列が生成され得る。変換行列の精度は、触覚デバイス内のセンサにより幾つかの位置を測定すること、及び／又は、ＣＧＲデバイス内のセンサにより幾つかの位置を測定することにより高めることができる。２つの座標系間の関係をより適切に近似する変換行列は、例えば、最小二乗法又はその他の回帰法により計算される。
【００２０】
本明細書で使用される場合、用語"ポーズ"は、定義された座標系に対するデバイスの位置及び／又は回転角を参照する。したがって、ポーズは、デバイスの多次元位置、デバイスの多次元回転角度、又は、それらの組み合わせのみに基づいて定義され得る。用語"位置又はポーズ"は、位置、回転角度、又は、それらの組み合わせを参照する。
【００２１】
上述した様に、触覚デバイスとＣＧＲデバイス等の２つの電子デバイスの座標系を揃えることは課題であり得る。触覚デバイスが１ｋＨｚでその位置を測定し（例えば、Ｇｅｏｍａｇｉｃ  Ｔｏｕｃｈによって行われ様に）、ＣＧＲデバイスが６０Ｈｚで画像を撮るとき（例えば、Ｍｉｃｒｏｓｏｆｔ  Ｈｏｌｏｌｅｎｓによって行われる様に）、２つのデバイスがセンサ測定で同期していない場合、課題が増加する。例えば、Ｈｏｌｏｌｅｎｓデバイスで実行されている他のタスクに応じて、Ｈｏｌｏｌｅｎｓデバイスは、触覚デバイスの位置を測定するために取得する画像を処理するのに１０ミリ秒から５０ミリ秒を必要とする。座標系間の変換を正確に計算するために、システムは、変換の計算に使用される両方のデバイスからの測定タイミングが同じであることを確実にすべき、つまり、位置ペアは同時に行われた測定に対応するか、測定タイミング間の時間オフセットを認識すべきである。
【００２２】
デバイスの位置のほぼ同時の検知を保証する１つのアプローチは、デバイスによる検知動作を動作的に同期させる様にＣＧＲシステムを構成し、Ｈｏｌｏｌｅｎｓでの測定遅延を計算し、Ｈｏｌｏｌｅｎｓが取得した位置測定と同じタイミングに対応する、触覚デバイスからの位置測定を見つけることである。複雑な同期操作とアルゴリズムを必要とするこの同期検知アプローチは、同期エラー（例えば、デバイスの同期クロックのドリフト）が生じ易く、デバイス間の通信ネットワークの遅延のばらつきにより、同期精度に悪影響を及ぼし、同期の維持及び測定に関してデバイス間でやり取りされる頻繁なメッセージを必要とする。
【００２３】
本開示の実施形態は、触覚デバイスと、ＭＲデバイス又は他のＣＧＲデバイス等との２つの電子デバイス間の座標系の改良されたアライメントを提供することを対象にする。触覚デバイスは、自身の座標系でその位置を検知でき、ＣＧＲデバイスは、ＣＧＲデバイスのカメラに使用されるものと同じであり得るＣＧＲデバイスの座標系で触覚デバイスの位置を検知できる。
【００２４】
本開示の幾つかの実施形態は、複雑さが低減された演算アルゴリズムを使用して２つのデバイスの座標系の位置合わせを実行し、かつ、デバイス間の通信の必要性を低減することができる。幾つかの実施形態において、触覚デバイスは、その比較的速い位置測定を使用して、触覚デバイスが静的である、すなわち、デバイスの速度がノイズレベル閾値を下回るときを識別し、それに応答して、ＣＧＲデバイスに（ＣＧＲデバイス座標系での）触覚デバイスの位置を検知する要求を送信し、触覚デバイス自体も（触覚デバイス座標系で）自身の位置をキャプチャする。触覚デバイスは静的であるため、ＣＧＲデバイスと触覚デバイスの両方によって検出される位置は同じであり、これにより、各デバイスがそれぞれの位置検出を完了したときのタイミング情報を使用しての位置合わせ動作の必要性を除去する。検出された様々な静的位置の測定値が、各デバイスで取得され、座標系のアライメントを改善するための２つの座標系間の変換を計算するために使用される。以下でさらに詳細を説明する様に、触覚デバイスは、それが実質的に一定の速度を有すると判断したとき（つまり、並進及び／又は回転速度が、時間間隔中に定義された閾値量を超えて変化しない場合）等、触覚デバイスが動いているときでも、触覚デバイス自身によるその位置の検知及びＣＧＲデバイスによるその位置の検知をトリガすることができる。
【００２５】
本明細書では、触覚デバイスと組み合わせて使用されるＭＲデバイス及び他のＣＧＲデバイスとの関連で様々な実施形態が開示されているが、これらの実施形態はそれらに限定されない。本開示の実施形態は、自身の位置を検知できる様に構成された別のデバイス（例えば、触覚デバイスや、ゲームコントローラ又はゲームの剣、銃のハンドル等のユーザにより動かされ得るゲームオブジェクト）の位置を検知する様に構成された任意の表示デバイス（例えば、ＭＲデバイス、ＶＲデバイス、スマートフォン画面）等の任意の２つのタイプの電子デバイスで参照として使用される座標系のアライメントを提供する様に動作することができる。
【００２６】
図１は、本開示の幾つかの実施形態に従って動作する触覚デバイス１３０及びＣＧＲデバイス１００を含むＣＧＲシステムを示している。
【００２７】
図１を参照すると、例示的なＣＧＲデバイス１００は、触覚デバイス１３０の位置を光学的に検知する様に構成された前向きカメラ１１０を有するＭＲデバイスであり得る。ＣＧＲ装置１００は、カメラ１１０を通して見ることができる、及び／又は、シースルーディスプレイ（例えば、グーグルグラス）を通して見ることができる現実世界のオブジェクト上のオーバーレイとしてグラフィックオブジェクトを表示する様に構成され得る。グラフィックオブジェクトは、ＭＲデバイス及び／又はサーバ１４０によって生成され得る。ＣＧＲデバイス１００は、１つ又は複数のスピーカ１２０を含み得る。
【００２８】
触覚デバイス１３０は、触覚デバイス１３０の現在の位置を検知するオンボードセンサを含む。触覚デバイス１３０は、力のフィードバック及び／又は振動フィードバック等の触覚フィードバックをユーザに提供する様に構成された触覚フィードバック生成デバイス７５０（図７）を含み得る。オンボードセンサは、動きセンサ７４０（図７）、回転及び／又は並進位置エンコーダ、赤外線（ＩＲ）位置決めシステム、及び／又は、触覚デバイス１３０の現在の位置又はポーズを検知する様に構成された他のセンサを含み得る。触覚デバイス１３０は、Ｇｅｏｍａｇｉｃ  Ｔｏｕｃｈ製品のコンポーネントを含み得る。一実施形態において、位置又はポーズは、触覚デバイス１３０のモータ内のエンコーダを使用して１ｋＨｚで測定される。触覚デバイス１３０及びＣＧＲデバイス１００は、有線及び／又は無線通信リンクを介して互いに直接、及び／又は、サーバ１４０又は別のデバイス（例えば、ネットワークルータ又はリレー）を介して通信する様に構成され得るネットワークインタフェース回路を含む。
【００２９】
ＣＧＲデバイス１００は、カメラ１１０を使用して、及び／又は、触覚デバイス１３０の現在の位置又はポーズを検知する様に構成された慣性測定ユニット等の動きセンサを使用して、その現在の位置又はポーズを検知し得る。代替的に、ＣＧＲデバイス１００は、カメラ１１０と、触覚デバイス１３０との間で送受信されるＲＦ信号の三角測量を実行する様に構成された離間したＲＦ送信機及び受信機（例えば、超広帯域又はＷｉ−Ｆｉ無線）とを使用して、及び／又は、触覚デバイス１３０の現在の位置又はポーズを検知する様に構成された別のセンサを使用して、触覚デバイス１３０の現在の位置又はポーズを検知する様に構成され得る。ＣＧＲデバイス１００は、カメラ及び通信回路等のＭｉｃｒｏｓｏｆｔのＨｏｌｏｌｅｎｓ製品のコンポーネントを含み得る。
【００３０】
以下の例示的な実施形態の説明において、同次座標における触覚デバイス１３０の位置をＰとして参照し、ここで、Ｐ＝［ｐ１］Ｔ（［...］Ｔは、行列［...］の転置を表す。）である。項ｐはベクトルであり、ｐ＝［Ｘ，Ｙ，Ｚ］は、カーテシアン座標における触覚デバイス１３０の三次元（３Ｄ）位置を表す。さらに、用語Ｓ（Ｐ）は、触覚デバイス１３０の座標系における、総ての記録された触覚デバイス１３０の位置のセットとして定義される。ＣＧＲデバイス１００の座標系に対する触覚デバイス１３０の位置を、同次座標でＰＣＧＲとして参照し、ここで、ＰＣＧＲ＝［ｐＣＧＲ１］Ｔ及びｐＣＧＲ＝［ＸＣＧＲ，ＹＣＧＲ，ＺＣＧＲ］はカーテシアン座標である。ＣＧＲデバイス１００の位置のセットは、ＳＣＧＲ（ＰＣＧＲ）である。触覚デバイス１３０とＣＧＲデバイス１００の両方によって検知された触覚デバイス位置の各ペアのセットは、セットＱ（Ｐ、ＰＣＧＲ）に保存される。
【００３１】
さらに、用語ＶＰは並進速度を参照し、用語Ｖａｌｐｈａは回転速度を参照する。用語Ｖ＾（ｔ）は、ｔ秒後の速度Ｖの推定値を参照し、これは、ユーザが実行した運動加速度及び／又は以前の運動パターンの分析に基づいて推定され得る。
【００３２】
用語イプシロンは、ユーザ及び／又は実行可能アプリケーションによって定義され得る定数値を参照する。
【００３３】
触覚デバイス１３０は、図１の例において、並進方向Ｘ′、Ｙ′、Ｚ′と、ロール、ピッチ、ヨーに対応し得る回転方向Θｘ′、Θｙ′、Θｚ′として示される様に、第１の６ＤＯＦ座標系におけるそのポーズを検知する様に構成される。同様に、ＣＧＲデバイス１００は、並進方向Ｘ、Ｙ、Ｚと、ロール、ピッチ、ヨーに対応し得る回転方向Θｘ、Θｙ、Θｚとして示される様に、第２の６ＤＯＦ座標系における触覚デバイス１３０の位置を検知する様に構成される。ただし、実施形態は、任意の多次元座標系で使用され得る。
【００３４】
本明細書の様々な実施形態によれば、触覚デバイス１３０、ＣＧＲデバイス１００、及び／又は、サーバ１４０は、第１及び第２の座標系の一方で参照されるポーズ（例えば、位置、回転角度、及び／又、はそれらの組み合わせ）を、第１及び第２の座標系の他方に変換するための変換行列を生成する様に構成され、さらに、第１及び第２の座標系の他方から第１及び第２の座標系の一方の、別の方向にポーズを変換するための別の変換行列を生成し得る。触覚デバイス１３０は、変換行列を生成し、それをＣＧＲデバイス１００に通信することができ、それにより、ＣＧＲデバイス１００は、ユーザのために表示デバイス８５０（図８）に表示するオブジェクトのポーズを調整することができる。
【００３５】
例えば、仮想オブジェクトは、触覚デバイス１３０によって参照される第１座標系で定義される触覚特性を有し得る。ＣＧＲデバイス１００は、触覚デバイス１３０自体及び／又はサーバ１４０等から、仮想オブジェクトに関するメタデータを受信することができ、メタデータは、第１座標系に対する仮想オブジェクトの形状、カラーシェーディング、及び、ポーズを含み得る。触覚デバイス１３０は、変換行列をＣＧＲデバイス１００に送信して、ＣＧＲデバイス１００に、仮想オブジェクトのメタデータ（例えば、ポーズ）を触覚デバイス１３０の第１座標系からＣＧＲデバイス１００の第２座標系に変換させることができる。次に、ＣＧＲデバイス１００は、ユーザに見せるために、変換されたメタデータを使用して仮想オブジェクトを表示デバイスに表示することができる。これらの動作により、仮想オブジェクトをより正確に表示し、仮想オブジェクトが、ユーザの指、手、腕、又は、その他の物理オブジェクト等の実際のオブジェクトに対して操作上追跡される触覚特性を持たせることができる。
【００３６】
仮想オブジェクトの触覚特性は、例えば、ユーザの指が仮想オブジェクトの表面に位置的に接触したと判定されたとき等の触覚特性が満たされたときに触覚フィードバックをユーザに提供するために、ＣＧＲデバイス１００に触覚デバイス１３０を制御させ得る。代わりに、或いは、追加して、仮想オブジェクトの触覚特性は、例えば、ユーザの指が仮想オブジェクトの表面に位置的に接触したと判定されたとき等の触覚特性が満たされたと判定することに応答して、ＣＧＲデバイス１００に、表示された仮想オブジェクトを移動及び／又は回転させ、あるいは、表示された外観を変化させ得る。
【００３７】
逆に、ＣＧＲデバイス１００の第２座標系で作成される新しい仮想オブジェクトは、そのメタデータを触覚デバイス１３０に送信して、例えば、触覚デバイス１３０によってユーザに提供されるフィードバックを制御し、及び／又は、新しい仮想オブジェクトに対する触覚デバイス１３０の位置判定を制御することができる。触覚デバイス１３０は、仮想オブジェクトのポーズをＣＧＲデバイス１００の第２座標系から触覚デバイス１３０の第１座標系に変換するために使用される変換行列を計算するためにメタデータを使用する。
【００３８】
図２は、本開示の幾つかの実施形態に従って動作する触覚デバイス１３０及びＣＧＲデバイス１００によって実行され得る例示的な動作のデータフロー図及びフローチャートである。図７は、本開示の幾つかの他の実施形態に従って構成される触覚デバイスコンポーネントのブロック図であり、図８は、本開示の他の幾つかの実施形態に従って上述したＣＧＲデバイス１００及び／又はＣＧＲデバイス５００で使用され得るＣＧＲデバイスコンポーネントのブロック図である。
【００３９】
以下にさらに詳細に説明する図７及び図８と共に図２を参照すると、触覚デバイス１３０は、触覚デバイス１３０の位置を測定するためにＣＧＲデバイス１００を制御する。図２の触覚デバイス１３０は、図１の第１座標系と第２座標系との間の変換行列を判定する様に構成される。
【００４０】
触覚デバイスは、動きセンサ７４０、ネットワークインタフェース７３０、プロセッサ７１０及びメモリ７２０を含む。動きセンサ７４０は、触覚デバイス１３０の動きを検知する様に構成される。ネットワークインタフェース回路７３０は、直接無線通信及び／又は有線通信などを介して、ＣＧＲデバイス１００及び／又はサーバ１４０と通信する様に構成される。プロセッサ７１０は、動きセンサ７４０及びネットワークインタフェース回路７３０に接続される。メモリ７２０は、図２に関して以下で説明される動作を実行するためにプロセッサ７１０によって実行されるプログラムコードを格納する。
【００４１】
ＣＧＲデバイス１００は、ＣＧＲデバイス１００に対する触覚デバイス１３０の位置を測定し、センサ１１０、ネットワークインタフェース回路８３０、プロセッサ８１０及びメモリ８２０を含む。センサ１１０は、触覚デバイス１３０の位置を示し得るセンサデータを出力する様に構成される。ネットワークインタフェース回路８３０は、触覚デバイス１３０と通信する様に構成される。プロセッサ８１０は、センサ１１０及びネットワークインタフェース回路８３０に接続される。メモリ８２０は、図２に関して以下で説明される動作を実行するためにプロセッサ８１０によって実行されるプログラムコードを格納する。
【００４２】
触覚デバイスは、ペアリングの要求をＣＧＲデバイス１００に通信（２００）することができ、ＣＧＲデバイスは、応答として要求（２１０）を受信することができる。動作２００は、ボタンを押すことによって、又は、触覚デバイス１３０によって実行されるアプリケーションの起動によって、ユーザにより開始され得る。追加して、或いは、代わりに、動作２００は、図６に関して以下で説明する様に、ユーザによってトリガされたとき、及び／又は、ＣＧＲデバイス１００によって自動的にトリガされたときなど、座標系アライメント、又は、更新されたアライメントが必要であると判断されたときにトリガされ得る。ＣＧＲデバイス１００は、ユーザの角膜画像をキャプチャするために目を向くカメラを使用し、ＣＧＲデバイス１００の表示デバイス８５０に表示された仮想コンピュータ生成オブジェクトのグラフィックスと、ユーザが見る現実世界オブジェクトとの間に過度の不整合があるときを判定するために角膜画像を分析し得る。次に、ＣＧＲデバイス１００は、過度の不整合があるときに変換行列の更新をトリガすることができる。
【００４３】
図６に関して以下でさらに詳しく説明する様に、特定の実オブジェクトに位置合わせする必要のある仮想オブジェクトに過剰な位置ずれがある場合など、第１座標系と第２座標系との間の過剰なミスアライメントの発生を識別するため、角膜画像が分析され得る。
【００４４】
センサ、例えば、正面カメラ１１０は、電力を節約するため、使用されていないときはオフにされ得る。ＣＧＲデバイス１００は、触覚デバイス１３０の位置を測定するために使用するセンサをオン（２１２）にすることにより、要求に応答し得る。触覚デバイス１３０は、その動きを検知（２０２）するために動きセンサ７４０を操作する。動きセンサ７４０によって検知された、定義されたルールを満たす動きのレベルを触覚デバイス１３０が有すると判定（２０４）することに応答して、触覚デバイス１３０は、触覚デバイス１３０の位置を測定する要求をＣＧＲデバイス１００に送信（２０６）する。
【００４５】
触覚デバイス１３０は、例えば、１つ又は複数の以下の条件が存在する場合、動きのレベルが定義されたルールを満たすと判定し得る。
ａ）ＶＰ＜＝イプシロン
ｂ）Ｖ＾（ｔ）＜＝イプシロン
【００４６】
一実施形態において、イプシロン値は、約０又は別の定義された閾値である。触覚デバイス１３０が非常に小さな動きを経験することがあり、及び／又は、動きセンサ７４０の出力がノイズ及び／又はドリフトの影響を受けることがあるので、０のイプシロン値を観察するのが難しい場合がある。したがって、イプシロン値は、座標系アラインメントに使用される、結果として得られる変換行列の望ましい精度レベルに基づいて選択され得る。次に、触覚デバイスの位置ＰがＳ及びＱに保存される。定義されたルールには、現在の測定位置Ｐがすでに記録された位置のセットＳにあるかどうか、及び／又は、閾値時間の経過により、現在の測定位置がその判定から期限切れになっているかどうかの判定が含まれ得る。
【００４７】
上記条件（ｂ）は、ＣＧＲデバイス１００から位置測定値を受信するための遅延を低減する将来の測定要求を実行することができるので、一般的に有利であり得る。触覚デバイス１３０からＣＧＲデバイス１００への測定要求と、画像をキャプチャするための動作には、ゼロ以外の遅延が生じる。遅延は、触覚デバイス１３０の動きが発生するのに十分であり得る。ただし、予測リクエストを使用すると、触覚デバイス１３０の動きに関係なく、そのような遅延の計算補償と座標系のより一貫したアライメントが可能になる。
【００４８】
ＣＧＲデバイス１００による触覚デバイス１３０の位置測定は、触覚デバイス１３０が所定の閾値を下回る回転速度のときに測定が行われる様に制限することによって改善され得る。
【００４９】
追加の実施形態において、例えば、ＣＧＲデバイス１００のディスプレイを介して、位置測定が必要であると認識されたときに触覚デバイス１３０の移動を停止する様にユーザに要求することができる。同様に、ユーザは、触覚デバイス１３０を、セットＳ及びＱそれぞれの一部ではないある位置又は異なる位置のペアに移動する様に要求され得る。そのようなガイダンスは、触覚デバイス１３０により提供される触覚フィードバックを介して、ＣＧＲデバイス１００のスピーカ１２０を介したオーディオフィードバックによって、及び／又は、ＣＧＲデバイス１００の表示デバイス８５０に表示される情報によって、ユーザに提供され得る。
【００５０】
図２をさらに参照すると、定義されたルールが満たされると、触覚デバイス１３０は、触覚デバイス１３０の位置を検知し、メモリ７２０に格納（２０８）する。ＣＧＲデバイス１００は、要求を受信（２１４）し、それに応答して、触覚デバイス１３０の位置の測定値を生成するための動作を開始（２１６）する。ＣＧＲデバイス１００は、触覚デバイス１３０の位置を示し得る、例えば、カメラ１１０からのデジタル画像の様な、センサによって出力されるセンサデータをメモリ８２０に格納（２１８）する。次に、ＣＧＲデバイス１００は、センサデータを保存したことを示す確認応答を送信（２２０）する。
【００５１】
触覚デバイス１３０は、触覚デバイス１３０の位置を測定するために使用され得るセンサデータを格納したことを示す確認応答をＣＧＲデバイス１００から受信（２２２）する。触覚デバイス１３０は、要求がＣＧＲデバイス１００に送信（２０６）されたときと、確認応答がＣＧＲデバイス１００から受信（２２２）されたときと、の間の時間間隔中に検知された触覚デバイス１３０の動きのレベルが定義されたルールを満たさなくなる中止条件が生じたかを判定（２２４）し得る。中止条件が生じたことに応答して、触覚デバイス１３０の位置を測定するための動作を中止するために、触覚デバイス１３０は、中止メッセージをＣＧＲデバイス１００に送信（２２６）する。
【００５２】
例示的な一実施形態において、触覚デバイス１３０が動かなかった場合、又は、定義されたルールを満たす動きを有していた場合、第１座標系と第２座標系との間の変換行列を判定するためにさらなる動作が実行される。対照的に、触覚デバイス１３０が移動した、或いは、定義されたルールを満たさない動きをしたと判定された場合、触覚デバイス１３０の位置の現在の測定をキャンセルするため、メッセージがＣＧＲデバイス１００に送信される。
【００５３】
測定要求がＣＧＲデバイス１００に送信（２０６）された時間をＴ１とし、ＡＣＫが受信（２２２）された時間をＴ２とし、触覚デバイス１３０が、Ｔ１とＴ２の間の時間間隔中に定義されたルールに違反する動きをしたと判定された場合、触覚デバイスの位置の格納されたセンサデータの表示はもはや有効ではないので、測定を中止するためのメッセージがＣＧＲデバイス１００に送信（２２６）される。対照的に、触覚デバイス１３０が、Ｔ１とＴ２との間の時間間隔中に定義されたルールに違反する動きをしていないと判定された場合、触覚デバイス１３０は、変換行列を判定するための動作に進む。
【００５４】
時間Ｔ２−Ｔ１は、Ｄｅｌｔａ＿Ｎ×２＋Ｄｅｌｔａ＿Ｃに基づくか、又は、それに等しく、ここで、Ｄｅｌｔａ＿Ｎはネットワーク遅延であり、Ｄｅｌｔａ＿Ｃは、新しい画像の要求が送信（２０６）されたときと、画像が取得され、触覚デバイス１３０の位置を判定する後続の処理のためにＣＧＲデバイス１００のメモリて保存されたときとの間の時間である。Ｄｅｌｔａ＿Ｃはカメラのフレームレート（例：６０Ｈｚ）に基づいて定義され、ネットワーク遅延は、他のデバイス、及び／又は、同じデバイスの他のアプリケーションとの通信リソースの共有により通信が遅延するかどうかといった、通信に使用される経路と、ネットワーク通信プロトコルに応じて、約１ｍｓから約５ｍｓであり得る。したがって、Ｔ２−Ｔ１は約２０ｍｓになる可能性があり、これは、触覚デバイスが移動しない、又は、定義されたルールを超える動きがなければ許容される持続時間である。
【００５５】
サーバ１４０を使用して、ＣＧＲデバイス１００と触覚デバイス１３０の両方から測定された位置を収集し、座標系アライメント変換に使用される変換行列を判定する動作を実行する場合において、ＣＧＲデバイス１００からＡＣＫを受信した後、最大に許容できるＤｅｌｔａ＿Ｎより大きいＤｅｌｔａ＿Ｂ秒に触覚デバイス１３０が移動したという情報と共に触覚デバイス１３０からのメッセージが受信された場合、サーバ１４０は、ＣＧＲデバイス１００にメッセージを送信して、測定された位置の収集及び変換行列を判定するための動作の実行を中止する。
【００５６】
図２をさらに参照すると、ＣＧＲデバイス１００は、要求が受信（２１４）されたときと確認応答が送信（２２０）されたときとの間の時間間隔中に検知された触覚デバイス１３０の動きのレベルが定義されたルールを満たさなくなったことを示す中止メッセージが受信されたかどうかを判定（２２８）する。中止メッセージが受信されないことに応答して、ＣＧＲデバイス１００は、メモリに格納されたセンサデータに基づいて触覚デバイス１３０の位置の測定値の生成（２３０）を完了し、触覚デバイス１３０の位置の測定値を送信（２３２）する。したがって、触覚デバイス１３０の位置の測定値の送信は、中止メッセージが受信されなかったという判定（２２８）に応答して実行される。
【００５７】
一実施形態において、ＣＧＲデバイス１００は、ＣＧＲデバイス１００の第２座標系における触覚デバイス１３０の位置を推定するために、視覚ベースの位置識別動作等の位置推定アルゴリズムを使用し、メモリに格納（２１８）された、カメラ１１０による触覚デバイス１３０のデジタル写真を処理する。デジタル写真がキャプチャされたことを示す確認応答（ＡＣＫ）は、触覚デバイス１３０に送信（２２０）される。位置推定アルゴリズムは、格納されたデジタル写真を使用して触覚デバイス１３０の位置を推定するために実行され続けるが、確認応答メッセージは、デジタル写真がメモリに格納されたと判定されると直ちに送信（２２０）される。
【００５８】
視覚ベースの位置推定アルゴリズムは、触覚デバイス１３０や触覚デバイス１３０のハウジングの一部に接続された、又は、その上で視認可能な１つ又は複数のマーカ、及び／又は、触覚デバイス１３０の別の視覚的に識別可能な特徴を識別することに基づいて位置を判定し得る。アルゴリズムは、デジタル画像をキャプチャしてから触覚デバイス１３０に取り付けられたマーカの推定位置を出力するまでに２０〜５０ミリ秒かかるＨｏｌｏｌｅｎｓＡＲＴｏｏｌＫｉｔを使用するＨｏｌｏｌｅｎｓ製品で使用されるアルゴリズムに基づき得る。視覚ベースの位置推定アルゴリズムは、代替的又は追加的に、オープンソースコンピュータビジョンライブラリ（ＯｐｅｎＣＶ）を通じて提供される１つ以上のアルゴリズムに基づき得る。
【００５９】
幾つかの他の実施形態において、触覚デバイスの位置は、触覚デバイス１３０と送受信されるＲＦ信号の三角測量を実行する様に構成された、離間したＲＦ送信機及び受信機（例えば、超広帯域又はＷｉ−Ｆｉ無線）を使用して推定される。
【００６０】
触覚デバイス１３０は、ＣＧＲデバイス１００の第２座標系ＰＡＲで参照される触覚デバイス１３０の位置の測定値を受信（２３４）する。第２座標系ＰＣＧＲで測定された触覚デバイスの位置は、ＳＣＧＲ及びＱに保存され得る。
【００６１】
触覚デバイス１３０は、それに応じて、触覚デバイス１３０のメモリから読み出された触覚デバイス１３０の位置と、ＣＧＲデバイス１００から受信した触覚デバイス１３０の位置と、に基づいて、第１座標系及び第２座標系の一方で参照されるポーズ（つまり、位置、回転角度、及び／又は、それらの組み合わせ）を、第１座標系及び第２座標系の他方で参照されるポーズに変換するための変換行列を判定（２３６）する。
【００６２】
一実施形態において、セットＱ内の線形独立位置ベクトルの数がＮよりも大きい、すなわち、ランク（Ｑ）＞＝Ｎである場合、触覚デバイス１３０の第１座標系とＣＧＲデバイス１００の第２座標系との変換行列の計算を行うことができる。位置及び方向の両方で実行される変換行列の計算のため、セットＱの線形独立ベクトルの数は、Ｎ＞＝１２（変換行列で識別されるパラメーターの最小数）より大きい。変換行列の計算は、最小二乗演算を介して実行され、この演算では、２つの座標系をＰＣＧＲ＝Ｔ×Ｐとして関連付ける変換行列Ｔが検出され、ここで、ＰＣＧＲ＝［ｐＣＧＲ１］Ｔ、Ｐ＝［ｐ１］Ｔ、及び、
【００６３】
【数１】
2021520528.tif 000003
【００６４】
Ｍ＝［Ｐ（１）Ｔ；Ｐ（２）Ｔ；・・・；Ｐ（ｎ）Ｔ］と、ＭＣＧＲ＝［ＰＣＧＲ（１）Ｔ；ＰＣＧＲ（２）Ｔ；・・・；ＰＣＧＲ（ｎ）Ｔ］は、それぞれ、セットＱの総ての測定値ｉのポーズ測定値Ｐ及びＰＣＧＲから構成される列行列である。変換行列Ｔは、｜｜Ｍ×ＴＴ−ＭＣＧＲ｜｜を最小化する変換行列として取得される。直接線形変換（ＤＬＴ）等の他の方法を使用して、変換行列を計算することもできる。
【００６５】
変換行列は、触覚デバイス１３０を制御するために使用（２３８）される、及び／又は、ＣＧＲデバイス１００及び／又はサーバ１４０に送信され得る。例えば、変換行列は、変換されたポーズを生成するために、触覚デバイス１３０のポーズを第１座標系及び第２座標系の一方から第１座標系及び第２座標系の他方に変換するために使用される。触覚デバイス１３０による触覚フィードバックの生成は、変換されたポーズに基づき制御され得る。代替的又は追加的に、ＣＧＲデバイス１００は、例えば、変換行列に基づいて判定されたポーズを有するグラフィックオブジェクトを表示デバイス上に表示することなどによって、変換行列に基づいて制御（２４０）され得る。
【００６６】
幾つかの実施形態において、動きセンサ７４０によって検知された動きのレベルが定義されたルールを満たすことを判定（２０４）するための動作は、例えば、要求がＣＧＲデバイス１００に送信（２０６）されたとき（時間Ｔ１）と、ＣＧＲデバイス１００から確認応答を受信（２２２）したとき（時間Ｔ２）との間の時間間隔中において触覚デバイス１３０が静止している場合等である。
【００６７】
対照的に、幾つかの他の実施形態において、触覚デバイス１３０が静止したままであるか、或いは、Ｔ１とＴ２との間の時間間隔中に定義された閾値量を超えて変化しない速度を有する場合、定義されたルールが満たされる。触覚デバイス１３０の更新された位置を推定するための動作は、メモリ７２０から読み出された触覚デバイス１３０の位置が、Ｔ１とＴ２の間の時間間隔の少なくとも部分において、触覚デバイス１３０の速度により変化したと判定された量に基づいて実行される。触覚デバイス１３０は、触覚デバイス１３０の位置の測定値をＣＧＲデバイス１００から受信（２３４）する。触覚デバイス１３０は、触覚デバイス１３０の更新された位置と、ＣＧＲデバイス１００から受信した触覚デバイス１３０の位置の測定値と、に基づいて、第１座標系及び第２座標系の一方で参照されるポーズを、第１座標系及び第２座標系の他方で参照されるポーズに変換するための変換行列を判定（２３６）することができる。
【００６８】
図３ａ及び図３ｂは、本開示の幾つかの実施形態に従って動作する触覚デバイス１３０、サーバ１４０及びＣＧＲデバイス１００による動作のデータフロー図及びフローチャートである。図示する動作において、サーバ１４０は、触覚デバイス１３０及びＣＧＲデバイス１００の第１座標系及び第２座標系間の変換行列を生成する。
【００６９】
図３ａ及び３ｂを参照すると、触覚デバイス１３０は、受信（３０４）のためにＣＧＲデバイス１００に通信され、サーバ１４０を介して中継（３０２）され得る、ペア要求を生成（３００）する。触覚デバイス１３０は、その動きを検知（３０６）し、動きのレベルが、実質的に動かないこと、又は、許容できる一定の速度を有すること等の定義されたルールを満たすという判定（３０８）を待つ。その判定に応答して、触覚デバイス１３０は、触覚デバイスの位置の測定値をサーバ１４０に送信する要求をＣＧＲデバイス１００に送信（３１０）する。ＣＧＲデバイス１００は、測定の要求を受信（３３０）し、これは、転送されるか、さもなければサーバ１４０によって観察（３１２）され得る。
【００７０】
触覚デバイス１３０は、例えば動きセンサ７４０を介してその現在の位置を検知（３１６）し、検知された位置をサーバ１４０に送信（３１８）する。サーバは、要求の観察（３１２）に応答して、或いは、触覚デバイス１３０からの測定値の受信（３２０）に応答して、変換行列を生成するための動作（３１４）を開始する。ＣＧＲデバイス１００は、触覚デバイスの位置の測定値を生成する動作を開始（３３２）することにより、受信（３３０）した要求に応答し、触覚デバイスの位置を判定するために、ＣＧＲデバイス１００又はサーバ１４０によって使用され得る、センサによって出力される、例えば、カメラ１１０からのデジタル画像であるセンサデータを保存（３３４）する。センサデータの保存に応答して、ＣＧＲデバイス１００は、触覚デバイス１３０による受信（３４０）の確認応答を送信（３３６）する。サーバ１４０は、確認応答を転送、又は、観察（３３８）し得る。
【００７１】
ＣＧＲデバイス１００は、触覚デバイスの位置の測定値をサーバ１４０に送信（３５０）し、サーバ１４０はそれを受信（３７０）する。触覚デバイス１３０は、触覚デバイスの位置の測定値を受信（３７０）する前又は後に、要求が送信（３１０）されたとき（時間Ｔ１）と確認応答が受信（３４０）されたとき（時間Ｔ２）との間の時間間隔中に移動したか、或いは、定義されたルール（例えば、定義されたルールを満たす実質的に一定の並進及び／又は回転速度を有する）を満たさない時間間隔中の動きがあったかを判定（３６０）する。
【００７２】
触覚デバイス１３０が、定義されたルールを満たさない動きを有していた場合、中止メッセージがサーバ１４０に送信（３６２）され、サーバ１４０がそれを受信（３７２）すると、サーバ１４０をトリガして、触覚デバイス１３０による位置測定及びＣＧＲデバイス１００による位置測定に基づく変換行列の生成を中止させる。対称的に、触覚デバイス１３０が動かなかった場合、又は、定義されたルールを満たす動きを有していた場合、サーバ１４０は、第１座標系と第２座標系との間の変換行列の生成（３７４）を完了させる。
【００７３】
次に、変換行列は、触覚デバイスによる触覚フィードバックの生成を制御（３８０）するために使用され得る。代替的又は追加的に、変換行列は、変換行列に基づいて判定されるポーズを有するグラフィックオブジェクトのＣＧＲデバイス１００の表示デバイスへの表示を制御（３８０）するために使用され得る。例えば、ＣＧＲデバイス１００は、変換行列を使用して、オブジェクトの配置、回転、カラーシェーディングの調整、及び／又は、変換行列を介するオブジェクトの処理行列に基づくオブジェクトの形状の調整等の、表示されるグラフィックオブジェクトを操作できる。
【００７４】
図４ａ及び図４ｂは、本開示の幾つかの実施形態に従って動作する触覚デバイス１３０、サーバ１４０及びＣＧＲデバイス１００による動作のデータフロー図及びフローチャートである。図示する動作において、ＣＧＲデバイス１００及び／又はサーバ１４０は、触覚デバイス１３０及びＣＧＲデバイス１００の第１座標系及び第２座標系間の変換行列を生成する。
【００７５】
図４ａ及び４ｂを参照すると、触覚デバイス１３０は、受信（４０４）のためにＣＧＲデバイス１００に通信され、サーバ１４０を介して中継（４０２）され得る、ペア要求を生成（４００）する。触覚デバイス１３０は、その動きを検知（４０６）し、動きのレベルが、実質的に動かない（静止）こと、又は、許容できる一定の速度を有すること等の定義されたルールを満たすという判定（４０８）を待つ。その判定に応答して、触覚デバイス１３０は、触覚デバイスの位置の測定値を生成するための要求をＣＧＲデバイス１００に送信（４１０）する。ＣＧＲデバイス１００は、測定の要求を受信（４３０）し、これは、転送されるか、さもなければサーバ１４０によって観察（４１２）され得る。
【００７６】
触覚デバイス１３０は、例えば、動きセンサ７４０を介してその現在の位置を検知（４１６）し、検知された位置をサーバ１４０及び／又はＣＧＲデバイス１００に送信（４１８）する。ＣＧＲデバイス１００は、触覚デバイスの位置の測定値を生成する動作を開始（４３２）することにより、受信（４３０）した要求に応答し、触覚デバイスの位置を判定するために、ＣＧＲデバイス１００又はサーバ１４０によって使用され得る、センサによって出力される、例えば、カメラ１１０からのデジタル画像であるセンサデータを保存（４３４）する。センサデータの保存に応答して、ＣＧＲデバイス１００は、触覚デバイス１３０による受信（４４０）の確認応答を送信（４３６）する。サーバ１４０は、確認応答を転送、又は、観察（４３８）し得る。
【００７７】
触覚デバイス１３０は、要求が送信（４１０）されたとき（時間Ｔ１）と確認応答が受信（４４０）されたとき（時間Ｔ２）との間の時間間隔中に移動したか、或いは、定義されたルール（例えば、定義された規則を満たす実質的に一定の並進及び／又は回転速度を有する。）を満たさない時間間隔中の動きがあったかを判定（４６０）する。
【００７８】
触覚デバイス１３０が、定義されたルールを満たさない動きをしたとき、中止メッセージがＣＧＲデバイス１００及び／又はサーバ１４０に送信され（４６２）、それらは、レポートメッセージを転送（４６４）し得る。中止メッセージが受信されると、触覚デバイス位置の測定値の生成を中止（４５２）するためにＣＧＲデバイス１００をトリガする。対照的に、触覚デバイス１３０が静止したままであるか、さもなければ定義されたルールを満たす動きをした場合、ＣＧＲデバイス１００は中止メッセージを受信せず、したがって触覚デバイス位置の測定の生成（４５４）を完了し、受信（４６６）のため、サーバに測定値を送信（４５６）する動作を行い得る。
【００７９】
ＣＧＲデバイス１００は、触覚デバイス１３０によって測定された触覚デバイス１３０の位置を受信（４５７）し、第１座標系と第２座標系との間の変換行列を判定し得る。ＣＧＲデバイス１００は、変換行列に基づいて判定されたポーズを有するグラフィックオブジェクトの表示（４５８）を制御するために変換行列を使用し得る。例えば、ＣＧＲデバイス１００は、オブジェクトの配置、回転、カラーシェーディングの調整、及び／又は、変換行列を介するオブジェクトの処理行列に基づくオブジェクトの形状の調整等の、表示されるグラフィックオブジェクトを操作し得る。
【００８０】
代替的又は追加的に、サーバ１４０は、触覚デバイス位置の測定値を受信（４６６）し、第１座標系及び第２座標系の間の変換行列を判定（４６８）し得る。変換行列は、触覚デバイスによる触覚フィードバックの生成を制御（４７０）するために使用され得る。代替的又は追加的に、サーバ１４０によって生成された変換行列は、変換行列に基づいて判定されるポーズを有するグラフィックオブジェクトのＣＧＲデバイス１００の表示デバイスへの表示を制御（３８０）するために使用され得る。
【００８１】
図５は、本開示の幾つかの実施形態に従って、コンピュータ生成オブジェクトを表示デバイス８５０上に表示し、ユーザが表示デバイス８５０を通して現実世界のオブジェクトを見ることができる様にする、及び／又は、表示デバイス８５０のエリア外の現実世界のオブジェクトを見ることができる様にする、ユーザ向きカメラ５０２を有する別のタイプのＣＧＲデバイス５００（例えば、グーグルグラス）を示している。ユーザ向きカメラ５０２からのデジタル画像は、更新された変換行列を生成する必要があるときを自動的に判定し、それに応じてその生成を開始するために処理され得る。図６は、本開示の幾つかの実施形態による、更新された変換行列の生成を開始するためのＣＧＲデバイスによる関連動作のフローチャートである。
【００８２】
図５及び図６を参照すると、ＣＧＲデバイス５００は、ユーザ向きカメラ５０２を操作して、ユーザの目５１０からの反射のデジタル画像をキャプチャ（６００）する。ユーザの目５１０からの反射は、表示デバイス８５０上に表示された仮想コンピュータ生成オブジェクトの反射である第１コンポーネントと、現実世界のオブジェクトからの光の反射である第２コンポーネントとを含む。ＣＧＲデバイス５００は、仮想コンピュータ生成オブジェクトと現実世界オブジェクトとの間のミスアラインメントの測定値を抽出するために画像を処理（６０２）する。ＣＧＲデバイス５００は、図２、３ａ〜３ｂ、及び／又は、４ａ〜４ｂに示される動作等の、更新された変換行列を生成するための動作を開始（６０４）することによって、定義されたアライメント規則を満たさないミスアライメントの測定値に応答する。
【００８３】
クラウド実装
触覚デバイス１３０、サーバ１４０、及び／又は、ＣＧＲデバイス１００によって実行されるものとして上述した一部又は総ての動作は、代替的に、ネットワークオペレータクラウドコンピューティングリソースの一部である別のノードによって実行され得る。例えば、それらの動作は、例えばクラウドＲＡＮ又はコアネットワーク等の通信ネットワーク事業者のクラウドサーバ又はクラウドリソース内など、エッジに近いネットワーク機能として実行され得る。
【００８４】
触覚デバイス、ＣＧＲデバイス、及び、サーバの構成例
図７は、本開示の幾つかの実施形態に従う様に構成された触覚デバイス１３０のブロック図である。触覚デバイス１３０は、動きセンサ７４０、ネットワークインタフェース回路７３０、少なくとも１つのプロセッサ回路７１０（プロセッサ）、及び、少なくとも１つのメモリ７２０（メモリ）を含み得る。動きセンサ７４０は、慣性測定ユニットを含み得る。ネットワークインタフェース回路７３０は、有線（例えば、イーサネット、ＵＳＢなど）及び／又は無線（例えば、Ｗｉ−Ｆｉ、ブルートゥース、セルラー等）ネットワークインタフェースを介して別の電子デバイスと通信する様に構成される。触覚デバイス１３０は、力フィードバック及び／又は振動フィードバック等の触覚フィードバックをユーザに提供する様に構成された触覚フィードバック生成デバイス７５０を含み得る。プロセッサ７１０は、動きセンサ７４０、ネットワークインタフェース回路７３０、触覚フィードバック生成デバイス７５０、及び、メモリ７２０に接続される。メモリ７２０は、動作を実行するためにプロセッサ７１０により実行されるプログラムコードを格納する。プロセッサ７１０は、１つ又は複数のデータネットワークにわたって配置又は分散され得る、汎用及び／又は専用プロセッサ（例えば、マイクロプロセッサ及び／又はデジタル信号プロセッサ）等の１つ又は複数のデータ処理回路を含み得る。プロセッサ７１０は、以下にコンピュータ可読媒体として説明される、メモリ７２０内のプログラムコード７２２のコンピュータプログラム命令を実行して、触覚デバイス１３０について本明細書に開示される１つ又は複数の実施形態の動作及び方法の一部又は総てを実行する様に構成される。
【００８５】
図８は、本開示の少なくとも幾つかの実施形態に従って動作し、上述のＣＧＲデバイス１００及び／又は５００で使用され得るＣＧＲデバイスコンポーネント８００のブロック図である。ＣＧＲデバイスコンポーネント８００は、動きセンサ８４０、ネットワークインタフェース回路８３０、スピーカ１２０、少なくとも１つのプロセッサ回路８１０（プロセッサ）、表示デバイス８５０、正面カメラ１１０、ユーザ向きカメラ５０２、及び、少なくとも１つのメモリ８２０（メモリ）を含み得る。動きセンサ８４０は、慣性測定ユニットを含み得る。ネットワークインタフェース回路８３０は、有線（例えば、イーサネット、ＵＳＢなど）及び／又は無線（例えば、Ｗｉ−Ｆｉ、ブルートゥース、セルラーなど）ネットワークインタフェースを介して別の電子デバイスと通信する様に構成される。プロセッサ８１０は、動きセンサ８４０、表示デバイス８５０、正面カメラ１１０、ユーザ向きカメラ５０２、スピーカ１２０、ネットワークインタフェース８３０、及び、メモリ８２０に接続される。メモリ８２０は、動作を実行するためにプロセッサ８１０により実行されるプログラムコードを格納する。プロセッサ８１０は、１つ又は複数のデータネットワークにわたって配置又は分散され得る、汎用及び／又は専用プロセッサ（例えば、マイクロプロセッサ及び／又はデジタル信号プロセッサ）等の１つ又は複数のデータ処理回路を含み得る。プロセッサ８１０は、以下にコンピュータ可読媒体として説明される、メモリ８２０内のプログラムコード８２２のコンピュータプログラム命令を実行して、ＣＧＲデバイス１００について本明細書に開示される１つ又は複数の実施形態の動作及び方法の一部又は総てを実行する様に構成される。
【００８６】
図９は、本開示の幾つかの実施形態に従う様に構成されたサーバ１４０のブロック図である。サーバ１４０は、ネットワークインタフェース回路９３０、少なくとも１つのプロセッサ回路９１０（プロセッサ）、及び、少なくとも１つのメモリ９２０（メモリ）を含み得る。ネットワークインタフェース回路３０は、有線（例えば、イーサネット、ＵＳＢなど）及び／又は無線（例えば、Ｗｉ−Ｆｉ、ブルートゥース、セルラーなど）ネットワークインタフェースを介して別の電子デバイスと通信する様に構成される。プロセッサ９１０はネットワークインタフェース９３０及びメモリ９２０に接続される。メモリ９２０は、動作を実行するためにプロセッサ９１０により実行されるプログラムコード９２２を格納する。プロセッサ９１０は、１つ又は複数のデータネットワークにわたって配置又は分散され得る、汎用及び／又は専用プロセッサ（例えば、マイクロプロセッサ及び／又はデジタル信号プロセッサ）等の１つ又は複数のデータ処理回路を含み得る。プロセッサ９１０は、以下にコンピュータ可読媒体として説明される、メモリ９２０内のプログラムコード９２２のコンピュータプログラム命令を実行して、サーバ１４０について本明細書に開示される１つ又は複数の実施形態の動作及び方法の一部又は総てを実行する様に構成される。
【００８７】
さらなる定義と実施形態：
本発明の概念の様々な実施形態の上記の説明において、本明細書で使用される用語は、特定の実施形態を説明することのみを目的とし、本発明の概念を限定することを意図しないことを理解されたい。他に定義されない限り、本明細書で使用される総ての用語（技術的及び科学的用語を含む）は、本開示が属する技術分野の当業者によって一般に理解されるのと同じ意味を有する。さらに、一般的に使用される辞書で定義されている用語等の用語は、この仕様及び関連技術の文脈での意味と一致する意味を持つものとして解釈されるべきであり、本明細書で明確にその様に定義された、理想化された又は過度に形式的な意味で解釈されないことが理解される。
【００８８】
要素が別の要素に"接続されている"、"結合されている"、"応答する"、又は、その変形であると参照されている場合、他の要素に直接的に接続、結合、又は応答することができ、或いは、介在する要素が存在してもよい。対照的に、要素が別の要素に対して"直接接続"、"直接結合"、"直接応答"、又は、それらの変形で参照されている場合、介在する要素は存在しない。全体を通して、同様の参照符号は同様の要素を示す。さらに、本明細書で使用される"結合された"、"接続された"、"応答する"、又は、その変形は、無線で結合される、接続される、又は応答することを含み得る。単数形式は、文脈が明らかに他の場合を示している場合を除き、複数形式を含むことが意図される。周知の機能又は構造は、簡潔さ及び／又は明瞭さのために詳細に説明されない場合がある。"及び／又は"という用語は、関連する列挙された用語の１つ又は複数のありとあらゆる組み合わせを含む。
【００８９】
本明細書では、第１、第２、第３等の用語を使用して様々な要素／動作を説明することができるが、これらの要素／動作はこれらの用語によって限定されるべきではないことが理解されよう。これらの用語は、ある要素／動作と別の要素／動作を区別するためにのみ使用される。したがって、幾つかの実施形態における第１の要素／動作は、本発明の概念の教示から逸脱することなく、他の実施形態における第２の要素／動作と呼ぶことができる。同じ参照番号又は同じ参照符号は、本明細書全体を通して同じ又は類似の要素を示す。
【００９０】
本明細書で使用される場合、"備える"、"含む"、"有する"又は、それらの変形は、オープンエンドであり、１つ以上の述べられた特徴、整数、要素、ステップ、コンポーネント又は機能を含むが、１つ以上の他の特徴、整数、要素、ステップ、コンポーネント、関数又はそれらのグループの存在又は追加を排除しない。さらに、本明細書で使用される様に、ラテン語の"例示的"から派生した一般的な略語"ｅｇ"は、前述の項目の一般的な例を紹介又は指定するために使用され、そのような項目に限定することを意図していない。ラテン語の"ｉｄｅｓｔ"に由来する一般的な略語"ｉ．ｅ．"は、より一般的な引用から特定の項目を指定するために使用される。
【００９１】
例示的な実施形態は、コンピュータで実施される方法、装置（システム及び／又はデバイス）及び／又はコンピュータプログラム製品のブロック図及び／又はフローチャート図を参照して本明細書で説明される。ブロック図及び／又はフローチャートのブロック、ならびにブロック図及び／又はフローチャートにおけるブロックの組み合わせは、１つ又は複数のコンピュータ回路によって実行されるコンピュータプログラム命令によって実現され得ることが理解される。これらのコンピュータプログラム命令は、汎用コンピュータ回路、専用コンピュータ回路、及び／又は他のプログラム可能なデータ処理回路のプロセッサ回路に提供されてマシンが生成され、コンピュータのプロセッサ及び／又は他のプログラム可能なデータ処理装置を介して実行される命令、トランジスタ、メモリ位置に格納された値、ブロック図及び／又はフローチャートのブロックで指定された機能／動作を実現するためのそのような回路内の他のハードウェアコンポーネントを変換及び制御し、それにより、ブロック図及び／又はフローチャートのブロックで指定された機能／動作を実現するための手段（機能）及び／又は構造を作成する。
【００９２】
これらのコンピュータプログラム命令は、また、コンピュータ又は他のプログラム可能なデータ処理装置が特定の方法で機能する様に命令できる有形のコンピュータ可読媒体に格納されてもよく、その結果、コンピュータ可読媒体に格納された命令は、ブロック図及び／又はフローチャートのブロックで指定された機能／動作を実現する命令を含む製品を生産する。したがって、本発明の概念の実施形態は、デジタル信号プロセッサ等のプロセッサ上で実行されるハードウェア及び／又はソフトウェア（ファームウェア、常駐ソフトウェア、マイクロコードなどを含む）で実施することができ、まとめて「回路」、「モジュール」、又はその変形としても参照され得る。
【００９３】
また、幾つかの代替実装では、ブロックに記載されている機能／動作が、フローチャートに記載されている順序とは異なる順序で発生する場合があることにも注意されたい。例えば、関連する機能／動作に応じて、連続して示されている２つのブロックが実際には実質的に同時に実行されてもよく、あるいはブロックが逆の順序で実行されてもよい。さらに、フローチャート及び／又はブロック図の所与のブロックの機能は、複数のブロックに分離される、及び／又は、フローチャート及び／又はブロック図の２つ以上のブロックの機能は、少なくとも部分的に統合され得る。最後に、他のブロックを、図示されているブロックの間に追加／挿入することができ、及び／又は発明の概念の範囲から逸脱することなく、ブロック又は動作を省略することができる。さらに、幾つかの図は、通信の主要な方向を示すために通信経路上に矢印を含んでいるが、通信は、描かれた矢印とは反対の方向で起こり得ることを理解されたい。
【００９４】
本発明の概念の原理から実質的に逸脱することなく、実施形態に対して多くの変更及び修正を行うことができる。そのような総ての変形及び修正は、本発明の概念の範囲内で本明細書に含まれることが意図されている。したがって、上記で開示された主題は、限定的ではなく例示的であると見なされるべきであり、添付の実施形態の例は、本発明の概念の精神及び範囲内にある総てのそのような修正、強化、及び他の実施形態をカバーすることを意図する。したがって、法律で許可される最大限の範囲で、本発明の概念の範囲は、以下の実施形態の例及びその等価物を含む本開示の最も広い許容可能な解釈によって判定されるべきであり、前述の詳細な説明によって制限又は限定されない。
【図１】
2021520528.tif 000004
【図２】
2021520528.tif 000005
【図３ａ】
2021520528.tif 000006
【図３ｂ】
2021520528.tif 000007
【図４ａ】
2021520528.tif 000008
【図４ｂ】
2021520528.tif 000009
【図５】
2021520528.tif 000010
【図６】
2021520528.tif 000011
【図７】
2021520528.tif 000012
【図８】
2021520528.tif 000013
【図９】
2021520528.tif 000014
【国際調査報告】
2021520528.tif 000015
2021520528.tif 000016