(19)【発行国】日本国特許庁(JP)
(12)【公報種別】特許公報(B2)
(11)【特許番号】
(24)【登録日】2022-05-25
(45)【発行日】2022-06-02
(54)【発明の名称】コンピュータ生成現実デバイス及び触覚デバイスで使用される座標系の座標系アライメント
(51)【国際特許分類】
G06F 3/01 20060101AFI20220526BHJP
【FI】
G06F3/01 510
G06F3/01 560
(21)【出願番号】P 2020537685
(86)(22)【出願日】2018-02-23
(86)【国際出願番号】 EP2018054481
(87)【国際公開番号】W WO2019161903
(87)【国際公開日】2019-08-29
【審査請求日】2020-08-03
(73)【特許権者】
【識別番号】598036300
【氏名又は名称】テレフオンアクチーボラゲット エルエム エリクソン(パブル)
(74)【代理人】
【識別番号】110003281
【氏名又は名称】特許業務法人大塚国際特許事務所
(74)【代理人】
【識別番号】100076428
【氏名又は名称】大塚 康徳
(74)【代理人】
【識別番号】100115071
【氏名又は名称】大塚 康弘
(74)【代理人】
【識別番号】100112508
【氏名又は名称】高柳 司郎
(74)【代理人】
【識別番号】100116894
【氏名又は名称】木村 秀二
(74)【代理人】
【識別番号】100130409
【氏名又は名称】下山 治
(74)【代理人】
【識別番号】100131886
【氏名又は名称】坂本 隆志
(72)【発明者】
【氏名】アラウージョ, ホセ
(72)【発明者】
【氏名】アル-フサイニー, ザイド
【審査官】木内 康裕
(56)【参考文献】
【文献】米国特許出願公開第2017/0220119(US,A1)
【文献】特開2005-147894(JP,A)
【文献】特表2012-512485(JP,A)
【文献】特開2017-037554(JP,A)
【文献】国際公開第2011/122214(WO,A1)
【文献】特開2007-004714(JP,A)
【文献】特開2013-011979(JP,A)
(58)【調査した分野】(Int.Cl.,DB名)
G06F 3/01
G06F 3/033 - 3/039
G06F 3/048 - 3/04895
(57)【特許請求の範囲】
【請求項1】
第1電子デバイス(130)の位置を測定するために第2電子デバイス(100、500)を制御する
様に構成された前記第1電子デバイス(130)であって、
前記第1電子デバイス(130)の動きを検知する様に構成された動きセンサ(740)と、
前記第2電子デバイス(100、500)と通信する様に構成されたネットワークインタフェース回路(730)と、
前記動きセンサ(740)及び前記ネットワークインタフェース回路(730)に接続されたプロセッサ(710)と、
メモリ(720)であって、
前記動きセンサ(740)の検知から、前記第1電子デバイス(130)が
静止している、或いは、一定速度を有するとの判定(204、308、408)に応答して、
前記第1電子デバイス(130)の
前記位置を測定するための要求を前記第2電子デバイス(100、500)に送信(206、310、410)することと、
前記第1電子デバイス(130)の前記位置を検知して、前記メモリ(720)に格納(208、316、416)することと、
前記第2電子デバイス(100、500)によって検知された、前記第1電子デバイス(130)の前記位置を測定するために使用され得るセンサデータを格納したことを示す確認応答を前記第2電子デバイス(100、500)から受信(222、340、440)することと、
を含む動作を実行するために、前記プロセッサ(710)によって実行されるプログラムコードを格納する前記メモリ(720)と、
を備えている、第1電子デバイス。
【請求項2】
請求項1に記載の第1電子デバイス(130)であって、
前記第1電子デバイス(130)は、触覚デバイスであって、ユーザによる前記触覚デバイスの移動の測定と、触覚フィードバックをユーザに提供することとの内の少なくとも1つを実行する様に構成された前記触覚デバイスを含み、
前記要求は、現実世界オブジェクト上のオーバーレイとしてグラフィックを表示する様に構成されたコンピュータ生成現実
(CGR)デバイスを含む前記第2電子デバイス(100、500)に送信される、第1電子デバイス。
【請求項3】
請求項1又は2に記載の第1電子デバイス(130)であって、
前記動作は、さらに、
前記第2電子デバイス(100、500)によって検知された、前記第1電子デバイス(130)の前記位置の測定値を前記第2電子デバイス(100、500)から受信(234)することと、
前記第1電子デバイス(130)によって検知された、前記第1電子デバイス(130)の前記位置と、前記第2電子デバイス(100、500)
によって検知され、かつ、前記第2電子デバイス(100、500)から受信した前記第1電子デバイス(130)の前記位
置と、に基づいて、第1座標系で参照されるポーズを第2座標系で参照されるポーズに変換するための変換行列を判定(236)することと、
を含み、
前記第1座標系及び前記第2座標系の内の一方は、前記第1電子デバイス及び前記第2電子デバイスの内の一方のポーズを参照するために使用され、前記第1座標系及び前記第2座標系の内の他方は、前記第1電子デバイス及び前記第2電子デバイスの内の他方のポーズを参照するために使用される、第1電子デバイス。
【請求項4】
請求項3に記載の第1電子デバイス(130)であって、さらに、
前記プロセッサ(710)に接続された触覚フィードバック生成デバイス(750)を備え、
前記動作は、さらに、
変換されたポーズを生成するために、前記変換行列を使用して、前記第1電子デバイス(130)のポーズを前記第1座標系及び前記第2座標系の内の一方から前記第1座標系及び前記第2座標系の内の他方に変換することと、
前記変換されたポーズに基づき、前記触覚フィードバック生成デバイス(750)による触覚フィードバックの生成を制御(238)することと、
を含む、第1電子デバイス。
【請求項5】
請求項1から4のいずれか1項に記載の第1電子デバイス(130)であって、
前記動作は、さらに、
前記要求が前記第2電子デバイス(100、500)に送信されたときと、前記確認応答が前記第2電子デバイス(100、500)から受信されたときと、の間の時間間隔中
の検知から
、前記第1電子デバイス(130
)が静止していない、或いは、一定速度を有さない中止条件が生じたかを判定(224、360、460)することと、
前記中止条件が生じたことに応答して、前記第1電子デバイス(130)の前記位置を測定するための動作を中止するために、中止メッセージを前記第2電子デバイス(100、500)に送信(226)することと、
を含む、第1電子デバイス。
【請求項6】
請求項1から5のいずれか1項に記載の第1電子デバイス(130)であって、さらに、
前記要求が前記第2電子デバイス(100、500)に送信されたときと、前記確認応答が前記第2電子デバイス(100、500)から受信されたときと、の間の時間間隔中において、前記第1電子デバイス(130)が静止したままであることに応答して、
前記第1電子デバイス(130)が静止している、或いは、一定速度を有すると判定(204)することを含む、第1電子デバイス。
【請求項7】
請求項1から6のいずれか1項に記載の第1電子デバイス(130)であって、さらに、
前記要求が前記第2電子デバイス(100、500)に送信されたときと、前記確認応答が前記第2電子デバイス(100、500)から受信されたときと、の間の時間間隔中において、前記第1電子デバイス(130)が定義された閾値量を超えた変化をしない速度を有すると判定することに応答して、
前記第1電子デバイス(130)が静止している、或いは、一定速度を有すると判定(204)することと、
前記メモリから読み出された前記第1電子デバイス(130)の前記位置が、前記第1電子デバイス(130)の前記速度によって前記時間間隔の少なくとも一部分に渡って変化したと判定された量に基づいて、前記第1電子デバイス(130)の更新された位置を推定することと、
前記第2電子デバイス(100、500)によって検知された、前記第1電子デバイス(130)の前記位置の測定値を前記第2電子デバイス(100、500)から受信(234)することと、
前記第1電子デバイス(130)によって検知された、前記第1電子デバイス(130)の前記更新された位置と、前記第2電子デバイス(100、500)
によって検知され、かつ、前記第2電子デバイス(100、500)から受信した前記第1電子デバイス(130)の前記位置と、に基づいて、第1座標系で参照されるポーズを第2座標系で参照されるポーズに変換するための変換行列を判定(236)することと、
を含み、
前記第1座標系及び前記第2座標系の内の一方は、前記第1電子デバイス及び前記第2電子デバイスの内の一方のポーズを参照するために使用され、前記第1座標系及び前記第2座標系の内の他方は、前記第1電子デバイス及び前記第2電子デバイスの内の他方のポーズを参照するために使用される、第1電子デバイス。
【請求項8】
請求項1から7のいずれか1項に記載の第1電子デバイス(130)であって、さらに、
前記要求が前記第2電子デバイス(100、500)に送信されたときと、前記確認応答が前記第2電子デバイス(100、500)から受信されたときと、の間の時間間隔中
の検知
から、前記第1電子デバイス(130)
が静止していない、或いは、一定速度を有さない中止条件が生じたかを判定する(224、360、460)ことと、
前記中止条件が生じたことに応答して、第1座標系で参照されるポーズを第2座標系で参照されるポーズに変換するための変換行列を判定するための動作を中止するために、中止メッセージをサーバ(140)に送信(362、462)することと、
を含み、
前記第1座標系及び前記第2座標系の内の一方は、前記第1電子デバイス及び前記第2電子デバイスの内の一方のポーズを参照するために使用され、前記第1座標系及び前記第2座標系の内の他方は、前記第1電子デバイス及び前記第2電子デバイスの内の他方のポーズを参照するために使用される、第1電子デバイス。
【請求項9】
第2電子デバイス(100、500)に対する第1電子デバイス(130)の位置を測定する
様に構成された前記第2電子デバイス(100、500)であって、
前記第1電子デバイス(130)の
前記位置を示し得るセンサデータを出力する様に構成されたセンサ(110)と、
前記第1電子デバイス(130)と通信する様に構成されたネットワークインタフェース回路(830)と、
前記センサ(110)及び前記ネットワークインタフェース回路(830)に接続されたプロセッサ(810)と、
メモリ(820)であって、
前記第2電子デバイス(100、500)による前記第1電子デバイス(130)の
前記位置の測定値を送信する要求
であって、前記第1電子デバイス(130)が静止している、或いは、一定速度を有することを示す前記要求を受信(214、430)することと、
前記要求に応答して、前記第1電子デバイス(130)の前記位置の測定値を生成するための動作を開始(216、432)することと、
前記センサ(110)によって出力された、前記第1電子デバイス(130)の前記位置を示し得るセンサデータを前記メモリ(820)に格納(218、434)することと、
前記センサデータが格納されたことを示す確認応答を送信(220、436)することと、
前記メモリに格納された前記センサデータに基づき前記第1電子デバイス(130)の前記位置の測定値を生成(230、454)することと、
前記第1電子デバイス(130)の前記位置の前記測定値を送信(232、456)することと、
を含む動作を実行するために、前記プロセッサ(810)によって実行されるプログラムコードを格納する前記メモリ(820)と、
を備えている、第2電子デバイス。
【請求項10】
請求項9に記載の第2電子デバイス(100、500)であって、
前記動作は、さらに、
前記要求が受信されたときと、前記第2電子デバイス(100、500)によって前記確認応答が送信されたときと、の間の時間間隔中
の検知
から、前記第1電子デバイス(130)
が静止していない、或いは、一定速度を有さないことを示す中止メッセージを受信したかを判定(228、230、452、454)すること、を含み、
前記第1電子デバイス(130)の前記位置の前記測定値の送信は、中止メッセージが受信されなかったとの前記判定(228、230、452、454)に応答して実行される、第2電子デバイス。
【請求項11】
請求項9又は10に記載の第2電子デバイス(100、500)であって、
前記センサ(110)は、カメラを備え、
前記メモリに格納された前記センサデータに基づき前記第1電子デバイス(130)の前記位置の前記測定値を生成するための前記動作は、前記カメラからのデジタル写真において、前記第1電子デバイス(130)に接続されたマーカと、前記第1電子デバイス(130)のハウジングの一部に接続されたマーカとの内の少なくとも1つの位置を識別することを含む、第2電子デバイス。
【請求項12】
請求項9から11のいずれか1項に記載の第2電子デバイス(100、500)であって、
前記第2電子デバイス(100、500)は、コンピュータ生成現実(CGR)デバイスを備え、
前記第1電子デバイス(130)は、触覚デバイスであって、ユーザによる前記触覚デバイスの移動の測定と、触覚フィードバックをユーザに提供することとの内の少なくとも1つを実行する様に構成されている前記触覚デバイスを含む、第2電子デバイス。
【請求項13】
請求項
9から12
のいずれか1項に記載の第2電子デバイス(100、500)であって、
前記第1電子デバイス(130)の前記位置の前記測定値を送信(232、456)することは、第1座標系で参照されるポーズを第2座標系で参照されるポーズに変換するための変換行列を判定するため、前記
第1電子デバイス
(130)の前記位置の前記測定値を前記
第1電子デバイス
(130)に送信(232)すること、を含み、
前記第1座標系及び前記第2座標系の内の一方は、前記
第1電子デバイス及び前記
第2電子デバイスの内の一方のポーズを参照するために使用され、前記第1座標系及び前記第2座標系の内の他方は、前記
第1電子デバイス及び前記
第2電子デバイスの内の他方のポーズを参照するために使用される、第2電子デバイス。
【請求項14】
請求項9から13のいずれか1項に記載の第2電子デバイス(100、500)であって、さらに、
前記第1電子デバイス(130)により検知され、かつ、前記第1電子デバイス(130)から受信した前記第1電子デバイス(130)の前記位置と、前記第2電子デバイス(100、500)に
より検知された前記第1電子デバイス(130)の前記位置の前記測定値と、に基づいて、第1座標系で参照されるポーズを第2座標系で参照されるポーズに変換するための変換行列を判定(457)することであって、前記第1座標系及び前記第2座標系の内の一方は、前記第1電子デバイス及び前記第2電子デバイスの内の一方のポーズを参照するために使用され、前記第1座標系及び前記第2座標系の内の他方は、前記第1電子デバイス及び前記第2電子デバイスの内の他方のポーズを参照するために使用される、前記判定(457)することと、
前記変換行列に基づき判定されたポーズを有するグラフィックオブジェクトを表示デバイス(850)に表示(458)することと、
を含む、第2電子デバイス。
【請求項15】
請求項9から14のいずれか1項に記載の第2電子デバイス(100、500)であって、
前記第1電子デバイス(130)の前記位置の前記測定値を送信(232、456)することは、第1座標系で参照されるポーズを第2座標系で参照されるポーズに変換するための変換行列を判定するため、
前記第1電子デバイス(130)の前記位置の前記測定値を
、前記第1電子デバイス(130)の前記位置の前記測定値を使用するサーバ
(140)に送信(456)すること、を含み、
前記第1座標系及び前記第2座標系の内の一方は、前記第1電子デバイス及び前記第2電子デバイスの内の一方のポーズを参照するために使用され、前記第1座標系及び前記第2座標系の内の他方は、前記第1電子デバイス及び前記第2電子デバイスの内の他方のポーズを参照するために使用される、第2電子デバイス。
【請求項16】
請求項9から15のいずれか1項に記載の第2電子デバイス(500)であって、さらに、
前記第2電子デバイス(500)のユーザに面するカメラ(502)を使用してユーザの目からの反射のデジタル画像をキャプチャ(600)することであって、前記ユーザの目からの前記反射は、前記第2電子デバイス(500)の表示デバイス(850)に表示された仮想コンピュータ生成オブジェクトの反射である第1コンポーネントと、現実世界オブジェクトからの光の反射である第2コンポーネントと、を含む、前記キャプチャ(600)することと、
前記仮想コンピュータ生成オブジェクトと前記現実世界オブジェクトとの間のミスアラインメントの計測値を抽出するために前記画像を処理(602)することと、
ミスアライメントの前記計測値が定義されたアライメントルールを満たさないことに応答して、更新された変換行列を生成するための動作を開始(604)することと、
を含む、第2電子デバイス。
【請求項17】
サーバ(140)であって、
第1電子デバイス(130)及び第2電子デバイス(100、500)と通信する様に構成されたネットワークインタフェース回路(930)と、
前記ネットワークインタフェース回路(930)に接続されたプロセッサ(910)と、
メモリ(920)であって、
前記第2電子デバイス(100、500)から通信される、前記第1電子デバイス(130)の位置を測定するために使用され得るセンサデータを前記第2電子デバイス(100、500)が格納したことを示す確認応答を観察(338)することと、
前記第1電子デバイス(130)の
前記位置の前記第1電子デバイス(130)による測定値を、前記第1電子デバイス(130)から受信(320)することと、
前記第1電子デバイス(130)の位置の前記第2電子デバイス(100、500)による測定値を、前記第2電子デバイス(100、500)から受信(370)することと、
前記位置の前記測定値を送信する前記第2電子デバイス(100、500)への要求が観察されたときと、前記第2電子デバイス(100、500)が前記センサデータを格納したことを示す前記確認応答を前記第2電子デバイス(100、500)が通信したときと、の間の時間間隔中の検知から、前記第1電子デバイス(130)が静止していない、或いは、一定速度を有さないことを示す中止メッセージが受信されたかを判定(372)することと、
前記第2電子デバイス(100、500)から通信された前記確認応答の受信前に中止メッセージが受信されていないときのみ、前記第1電子デバイス(130)によって検知され、かつ、前記第1電子デバイス(130)から受信した前記第1電子デバイスの前記位置と、前記第2電子デバイス(100)
によって検知され、かつ、前記第2電子デバイス(100)から受信した前記第1電子デバイスの前記位置と、に応答して、第1座標系で参照されるポーズを第2座標系で参照されるポーズに変換するための変換行列を生成(374)することと、
を含む動作を実行するために、前記プロセッサ(910)によって実行されるプログラムコードを格納する前記メモリ(920)と、
を備え、
前記第1座標系及び前記第2座標系の内の一方は、前記第1電子デバイス及び前記第2電子デバイスの内の一方のポーズを参照するために使用され、前記第1座標系及び前記第2座標系の内の他方は、前記第1電子デバイス及び前記第2電子デバイスの内の他方のポーズを参照するために使用される、サーバ。
【請求項18】
請求項17に記載のサーバであって、
前記第1電子デバイス(130)は、触覚デバイスであって、ユーザによる前記触覚デバイスの移動の測定と、触覚フィードバックをユーザに提供することとの内の少なくとも1つを実行する様に構成されている前記触覚デバイスを含み、
前記第2電子デバイス(100、500)は、コンピュータ生成現実(CGR)デバイスを含む、サーバ。
【請求項19】
請求項17に記載のサーバであって、さらに、
前記変換行列を使用して、触覚フィードバック生成デバイス(750)による触覚フィードバックの生成を制御(380)することと、
前記変換行列に基づき判定されるポーズを有するグラフィックオブジェクトの表示デバイス(850)への表示を制御(380)することと、
の内の少なくとも1つを実行すること、を含み、
前記表示デバイス(850)は、前記第2電子デバイス(100、500)内にある、サーバ。
【請求項20】
第1電子デバイス(130)の位置を測定するために第2電子デバイス(100、500)を制御する前記第1電子デバイス(130)による方法であって、
前記第1電子デバイス(130)が
静止している、或いは、一定速度を有すると判定(204、308、408)することに応答して、
前記第1電子デバイス(130)の
前記位置を測定するための要求を前記第2電子デバイス(100、500)に送信(206、310、410)することと、
前記第1電子デバイス(130)の前記位置を検知して、メモリに格納(208、316、416)することと、
前記第2電子デバイス(100、500)によって検知され、前記第1電子デバイス(130)の前記位置を測定するために使用され得るセンサデータを格納したことを示す確認応答を前記第2電子デバイス(100、500)から受信
することと、
を含む、方法。
【請求項21】
請求項
20に記載の方法であって、さらに、
請求項2から8のいずれか1項に記載の動作を実行することを含む、方法。
【請求項22】
第2電子デバイス(100、500)に対する第1電子デバイス(130)の位置を測定するための前記第2電子デバイス(100、500)による方法であって、
前記第2電子デバイス(100、500)による前記第1電子デバイス(130)の
前記位置の測定値を送信する要求
であって、前記第1電子デバイス(130)が静止している、或いは、一定速度を有することを示す前記要求を受信(214、430)することと、
前記要求に応答して、前記第1電子デバイス(130)の前記位置の測定値を生成するための動作を開始(216、432)することと、
センサによって出力された、前記第1電子デバイス(130)の前記位置を示し得るセンサデータをメモリに格納(218、434)することと、
前記センサデータが格納されたことを示す確認応答を送信(220、436)することと、
前記メモリに格納された前記センサデータに基づき前記第1電子デバイス(130)の前記位置の測定値を生成することと、
前記第1電子デバイス(130)の前記位置の前記測定値を送信(232、456)することと、
を含む、方法。
【請求項23】
請求項
22に記載の方法であって、さらに、
請求項10から16のいずれか1項に記載の動作を実行することを含む、方法。
【請求項24】
サーバ(140)による方法であって、
第2電子デバイス(100、500)から通信される、第1電子デバイス(130)の位置を測定するために使用され得るセンサデータを前記第2電子デバイス(100、500)が格納したことを示す確認応答を観察(338)することと、
第1電子デバイス(130)の位置の前記第1電子デバイス(130)による測定値を、前記第1電子デバイス(130)から受信(320)することと、
前記第1電子デバイス(130)の位置の第2電子デバイス(100、500)による測定値を、前記第2電子デバイス(100、500)から受信(370)することと、
前記位置の前記測定値を送信する前記第2電子デバイス(100、500)への要求が観察されたときと、前記第2電子デバイス(100、500)が前記センサデータを格納したことを示す前記確認応答を前記第2電子デバイス(100、500)が通信したときと、の間の時間間隔中の検知から、前記第1電子デバイス(130)が静止していない、或いは、一定速度を有さないことを示す中止メッセージが受信されたかを判定(372)することと、
前記第2電子デバイス(100、500)から通信された前記確認応答の受信前に中止メッセージが受信されていないときのみ、前記第1電子デバイス(130)によって検知され、かつ、前記第1電子デバイス(130)から受信した前記第1電子デバイスの前記位置と、前記第2電子デバイス(100)
によって検知され、かつ、前記第2電子デバイス(100)から受信した前記第1電子デバイスの前記位置と、に応答して、第1座標系で参照されるポーズを第2座標系で参照されるポーズに変換するための変換行列を生成(374)することと、
を含み、
前記第1座標系及び前記第2座標系の内の一方は、前記第1電子デバイス及び前記第2電子デバイスの内の一方のポーズを参照するために使用され、前記第1座標系及び前記第2座標系の内の他方は、前記第1電子デバイス及び前記第2電子デバイスの内の他方のポーズを参照するために使用される、方法。
【請求項25】
請求項
24に記載の方法であって、さらに、
請求項18から
19のいずれか1項に記載の動作を実行することを含む、方法。
【発明の詳細な説明】
【技術分野】
【0001】
本開示は、触覚デバイスと、複合現実デバイス及び仮想現実デバイス等のコンピュータ生成現実デバイスとの相互作用に関する。
【背景技術】
【0002】
触覚デバイスと、複合又は仮想現実(MR又はVR)デバイスは、対人コミュニケーション、ゲーム、及び、その他のアプリケーションのために社会で使用される、将来のデバイスエコシステムの一部として増加している。複合現実コンピュータシステムは、ポーズを有するコンピュータ生成仮想オブジェクトで、ユーザが現実世界で見ているものを拡大し、現実世界に存在するかの様に仮想オブジェクトをユーザに表示する。対照的に、仮想現実コンピュータシステムは、現実世界にオブジェクトを重ねるのではなく、完全な仮想世界のオブジェクトを生成する。どちらのタイプのシステムでも、コンピュータ生成オブジェクトをユーザに表示するヘッドマウントディスプレイや、ユーザの動きを追跡し、ユーザに触覚フィードバックを提供し得る触覚デバイス等の、特別な電子機器を使用して、現実に見せる、又は、物理的な方法でユーザと相互作用することを可能にする。本明細書で使用されるコンピュータ生成現実(CGR)という用語は、MR型システム及びVR型システムを集合的に指すために使用される。したがって、本明細書で説明されるCGRシステムは、以下の特定の例で別段の定めがない限り、MRシステム又はVRシステムであり得る。
【発明の概要】
【発明が解決しようとする課題】
【0003】
CGRシステムにおいて、触覚デバイスは、触覚フィードバックをユーザに提供することができ、これにより、ユーザは、CGRデバイスのディスプレイを通じて仮想オブジェクトを見ながら仮想オブジェクトを感じることができる。CGRシステムの挑戦的な問題は、デバイスのワークスペース等といった触覚デバイスの座標系と、カメラ画像に基づき生成された3Dコンピュータ生成オブジェクトを表示するために使用され得るCGRデバイスの座標系との間のアライメント(位置合わせ)をどの様に提供するかである。
【0004】
触覚デバイスをCGRの世界に統合する幾つかの既知の複合現実システムは、外部追跡システムを使用する。例えば、GO TOUCH VRブランドシステムとUltrahapticsブランドシステムは、Leap Motionブランドのハンド追跡デバイスを使用する。HTC Viveブランド製品は、外部追跡システムを使用して周辺デバイスとヘッドセットデバイスを追跡し、これにより、総てのデバイスの追跡に同じ追跡システムが利用されるため、座標系アライメントが不要になる。HTC Viveの欠点は、1つの部屋の中で使用する必要があるため、これらの制限を超えて移動できないことである。
【0005】
したがって、触覚デバイス及びCGRデバイスの座標系の改良された自動アライメントを提供するCGRシステムを提供する必要性が存在する。
【課題を解決するための手段】
【0006】
本明細書で開示される幾つかの実施形態は、第1電子デバイスの位置を測定するために、第2電子デバイスを制御する第1電子デバイスを対象とする。第1電子デバイスは、動きセンサと、ネットワークインタフェース回路と、プロセッサと、メモリと、を備えている。動きセンサは、第1電子デバイスの動きを検知する様に構成される。ネットワークインタフェース回路は、第2電子デバイスと通信する様に構成される。プロセッサは動きセンサ及びネットワークインタフェース回路に接続される。メモリは、動きセンサによって検知された、定義されたルールを満たす動きのレベルを第1電子デバイスが有するという判定に応答して、第1電子デバイスの位置を測定するための要求を第2電子デバイスに送信することを含む動作を実行するために、プロセッサにより実行されるプログラムコードを格納する。動作はさらに、第1電子デバイスの位置を検知してメモリに格納することと、第2電子デバイスから、第1電子デバイスの位置を測定するために使用され得るセンサデータを格納したことを示す確認応答を受信することと、を含む。
【0007】
幾つかのさらなる実施形態において、第1電子デバイスは、ユーザによる触覚デバイスの移動の測定及び触覚フィードバックをユーザに提供することの少なくとも1つを実行する様に構成される触覚デバイスを含む。要求は、現実世界のオブジェクト上のオーバーレイとしてグラフィックを表示する様に構成されたCGRデバイスを含む第2電子デバイスに送信される。触覚デバイスの位置の測定値は、CGRデバイスから受信される。次に、メモリから読み出された触覚デバイスの位置と、CGRデバイスから受信した触覚デバイスの位置の測定値と、に基づいて、第1座標系で参照されるポーズを第2座標系で参照されるポーズに変換するための変換行列が判定される。第1座標系及び第2座標系の一方は、触覚デバイス及びCGRデバイスの一方のポーズを参照するために使用され、第1座標系及び第2座標系の他方は、触覚デバイス及びCGRデバイスの他方のポーズを参照するために使用される。
【0008】
これらの動作の潜在的な利点は、座標系間の変換行列が、従来技術のアプローチと比較して、より一貫して繰り返すことができる動作精度で生成され得ることである。第1電子デバイスが静止しているときなど、第1電子デバイスが定義されたルールを満たす動きのレベルを有すると判定されたときに、第2電子デバイスは、第1電子デバイスの位置を測定する。したがって、第1電位デバイス及び第2電子デバイスが第1電子デバイスの同じ位置を測定する可能性が高く、それにより、得られる各座標系間の変換行列の精度が向上する。第1電子デバイス及び第2電子デバイスにより測定された位置の差は、第1電子デバイスの既知の一定速度を使用して数学的に補正できるため、定義されたルールは、第1電子デバイスが等速である場合にも満たされ、それにより、得られる変換行列の精度が向上する。
【0009】
他の幾つかの関連する実施形態は、第2電子デバイスに対する第1電子デバイスの位置を測定するための第2電子デバイスを対象とする。第2電子デバイスは、センサと、ネットワークインタフェース回路と、プロセッサと、メモリと、を備えている。センサは、第1電子デバイスの位置を示し得るセンサデータを出力する様に構成される。ネットワークインタフェース回路は、第1電子デバイスと通信する様に構成される。プロセッサは、センサ及びネットワークインタフェース回路に接続される。メモリは、第1電子デバイスの位置の第2電子デバイスによる測定値を送信する要求を受信することを含む動作を実行するために、プロセッサによって実行されるプログラムコードを格納する。動作は、要求に応答して、第1電子デバイスの位置の測定値を生成する動作を開始することと、センサによって出力された、第1電子デバイスの位置を示し得るセンサデータをメモリに格納することと、をさらに含む。センサデータが保存されたことを示す確認応答が送信される。第1電子デバイスの位置の測定値は、メモリに格納されたセンサデータに基づいて生成され、第2電子デバイスから送信される。
【0010】
幾つかのさらなる実施形態において、動作はさらに、第2電子デバイスによって、要求が受信されたときと、確認応答が送信されたときと、の間の時間間隔中に検知された第1電子デバイスの動きのレベルが、定義されたルールを満たさなくなったことを示す中止メッセージが受信されたかどうかを判定することを含む。第1電子デバイスの位置の測定値を送信するための動作は、中止メッセージが受信されなかったという判定に応答して実行される。
【0011】
他の幾つかの関連する実施形態は、ネットワークインタフェース回路と、プロセッサと、メモリと、を備えるサーバを対象とする。ネットワークインタフェース回路は、第1電子デバイス及び第2電子デバイスと通信する様に構成される。プロセッサは、ネットワークインタフェース回路に接続される。メモリは、第1電子デバイスから、第1電子デバイスの位置の第1電子デバイスによる測定値を受信することを含む動作を実行するために、プロセッサによって実行されるプログラムコードを格納する。動作はさらに、第2電子デバイスから、第1電子デバイスの位置の第2電子デバイスによる測定値を受信することと、第1電子デバイスから受信した第1電子デバイスの位置及び第2電子デバイスから受信した第1電子デバイスの位置に応答して、第1座標系で参照されるポーズを第2座標系で参照されるポーズに変換するための変換行列を生成することと、を含む。第1座標系及び第2座標系の一方は、第1電子デバイス及び第2電子デバイスの一方のポーズを参照するために使用され、第1座標系及び第2の座標系の他方は、第1電子デバイス及び第2電子デバイスの他方のポーズを参照するために使用される。
【0012】
本明細書で開示される幾つかの実施形態は、第1電子デバイスの位置を測定するために、第2電子デバイスを制御する第1電子デバイスにより実行される方法を対象とする。本方法は、第1電子デバイスが定義されたルールを満たす動きのレベルを有するという判定に応答して、第1電子デバイスの位置を測定する要求を第2電子デバイスに送信することと、第1電子デバイスの位置を検知してメモリに格納することと、を含む。第2電子デバイスが、第1電子デバイスの位置を測定するために使用され得るセンサデータを格納したことを示す確認応答が、第2電子デバイスから受信される。
【0013】
他の幾つかの関連する実施形態は、第2電子デバイスに対する第1電子デバイスの位置を測定するために第2電子デバイスよって実行される方法を対象とする。本方法は、第1電子デバイスの位置の第2電子デバイスによる測定値を送信する要求を受信することを含む。要求に応答して、本方法は、第1電子デバイスの位置の測定値を生成する動作を開始することと、センサによって出力された、第1電子デバイスの位置を示し得るセンサデータをメモリに格納することと、をさらに含む。センサデータが格納されたことを示す確応答が送信される。第1電子デバイスの位置の測定値は、メモリに格納されたセンサデータに基づき生成される。第1電子デバイスの位置の測定値は、第2電子デバイスから送信される。
【0014】
他の幾つかの関連する実施形態は、サーバによる方法を対象とする。本方法は、第1電子デバイスの位置の第1電子デバイスによる測定値を、第1電子デバイスから受信することを含む。第1電子デバイスの位置の第2電子デバイスによる測定値は、第2電子デバイスから受信される。第1電子デバイスから受信した第1電子デバイスの位置及び第2電子デバイスから受信した第1電子デバイスの位置に応答して、第1座標系で参照されるポーズを第2座標系で参照されるポーズに変換するための変換行列が生成される。第1座標系及び第2座標系の一方は、第1電子デバイス及び第2電子デバイスの一方のポーズを参照するために使用され、第1座標系及び第2の座標系の他方は、第1電子デバイス及び第2電子デバイスの他方のポーズを参照するために使用される。
【0015】
実施形態による他の電子デバイス、サーバ及び対応する方法は、以下の図面及び詳細な説明を検討することにより、当業者には明らかになる。そのような総ての追加の電子デバイス、サーバ及び対応する方法は、この説明に含まれ、添付の特許請求の範囲により保護されることが意図される。
【0016】
本開示の態様は、例として示され、添付の図面によって限定されない。
【図面の簡単な説明】
【0017】
【
図1】本開示の幾つかの実施形態に従って動作する触覚デバイス及びCGRデバイスを含むCGRシステムを示す図。
【
図2】本開示の幾つかの実施形態に従って動作する触覚デバイス及びCGRデバイスによる動作のデータフロー図及びフローチャート。
【
図3a】本開示の幾つかの実施形態に従って動作する触覚デバイス、サーバ及びCGRデバイスによる動作のデータフロー図及びフローチャート。
【
図3b】本開示の幾つかの実施形態に従って動作する触覚デバイス、サーバ及びCGRデバイスによる動作のデータフロー図及びフローチャート。
【
図4a】本開示の幾つかの実施形態に従って動作する触覚デバイス、サーバ及びCGRデバイスによる動作の別のデータフロー図及びフローチャート。
【
図4b】本開示の幾つかの実施形態に従って動作する触覚デバイス、サーバ及びCGRデバイスによる動作の別のデータフロー図及びフローチャート。
【
図5】ユーザに面するカメラを有し、本開示の幾つかの実施形態に従って動作する別のタイプのCGRデバイスを示す図。
【
図6】本開示の幾つかの実施形態による、更新された変換行列の生成を開始するためのCGRデバイスによる動作のフローチャート。
【
図7】本開示の幾つかの実施形態に従う様に構成された触覚デバイスコンポーネントのブロック図。
【
図8】本開示の幾つかの実施形態に従う様に構成されたCGRデバイスコンポーネントのブロック図。
【
図9】本開示の幾つかの実施形態に従う様に構成されたサーバコンポーネントのブロック図。
【発明を実施するための形態】
【0018】
次に、本発明の概念の実施形態例を示す添付の図面を参照して、本発明の概念を以下ではより完全に説明する。しかしながら、本発明の概念は、多くの異なる形態で具現化され、本明細書で説明される実施形態に限定されると解釈されるべきではない。むしろ、これらの実施形態は、この開示が徹底的かつ完全であり、本開示の範囲を当業者に十分に伝えるために提供される。これらの実施形態は相互に排他的ではないことにも留意されたい。一実施形態からの構成要素は、暗黙的に、別の実施形態において存在/使用されることが想定され得る。
【0019】
触覚デバイスとCGRデバイスの座標系は、オブジェクトの位置及び/又は回転角度(例えば、6自由度(DOF)座標系の位置及び回転)の変換を可能にする、或いは、ある座標系で参照されるデバイスを他の座標系に変換することを可能にする、変換行列を使用して調整され得る。変換行列は、MRデバイスの座標系における触覚デバイスの位置(場所)を検出するために、MRデバイスの正面カメラ等のCGRデバイスのセンサと、(例えば、Geomagic Touch又はGO TOUCH VRデバイスに基づいて)その動きを追跡し、触覚デバイスの座標系での位置を検出するために使用される触覚デバイスのオンボードセンサと、を使用することで生成され得る。触覚デバイス座標系における触覚デバイスの位置及びCGRデバイス座標系における触覚デバイスの位置に基づいて、2つの座標系を関連付ける変換行列が生成され得る。変換行列の精度は、触覚デバイス内のセンサにより幾つかの位置を測定すること、及び/又は、CGRデバイス内のセンサにより幾つかの位置を測定することにより高めることができる。2つの座標系間の関係をより適切に近似する変換行列は、例えば、最小二乗法又はその他の回帰法により計算される。
【0020】
本明細書で使用される場合、用語"ポーズ"は、定義された座標系に対するデバイスの位置及び/又は回転角を参照する。したがって、ポーズは、デバイスの多次元位置、デバイスの多次元回転角度、又は、それらの組み合わせのみに基づいて定義され得る。用語"位置又はポーズ"は、位置、回転角度、又は、それらの組み合わせを参照する。
【0021】
上述した様に、触覚デバイスとCGRデバイス等の2つの電子デバイスの座標系を揃えることは課題であり得る。触覚デバイスが1kHzでその位置を測定し(例えば、Geomagic Touchによって行われ様に)、CGRデバイスが60Hzで画像を撮るとき(例えば、Microsoft Hololensによって行われる様に)、2つのデバイスがセンサ測定で同期していない場合、課題が増加する。例えば、Hololensデバイスで実行されている他のタスクに応じて、Hololensデバイスは、触覚デバイスの位置を測定するために取得する画像を処理するのに10ミリ秒から50ミリ秒を必要とする。座標系間の変換を正確に計算するために、システムは、変換の計算に使用される両方のデバイスからの測定タイミングが同じであることを確実にすべき、つまり、位置ペアは同時に行われた測定に対応するか、測定タイミング間の時間オフセットを認識すべきである。
【0022】
デバイスの位置のほぼ同時の検知を保証する1つのアプローチは、デバイスによる検知動作を動作的に同期させる様にCGRシステムを構成し、Hololensでの測定遅延を計算し、Hololensが取得した位置測定と同じタイミングに対応する、触覚デバイスからの位置測定を見つけることである。複雑な同期操作とアルゴリズムを必要とするこの同期検知アプローチは、同期エラー(例えば、デバイスの同期クロックのドリフト)が生じ易く、デバイス間の通信ネットワークの遅延のばらつきにより、同期精度に悪影響を及ぼし、同期の維持及び測定に関してデバイス間でやり取りされる頻繁なメッセージを必要とする。
【0023】
本開示の実施形態は、触覚デバイスと、MRデバイス又は他のCGRデバイス等との2つの電子デバイス間の座標系の改良されたアライメントを提供することを対象にする。触覚デバイスは、自身の座標系でその位置を検知でき、CGRデバイスは、CGRデバイスのカメラに使用されるものと同じであり得るCGRデバイスの座標系で触覚デバイスの位置を検知できる。
【0024】
本開示の幾つかの実施形態は、複雑さが低減された演算アルゴリズムを使用して2つのデバイスの座標系の位置合わせを実行し、かつ、デバイス間の通信の必要性を低減することができる。幾つかの実施形態において、触覚デバイスは、その比較的速い位置測定を使用して、触覚デバイスが静的である、すなわち、デバイスの速度がノイズレベル閾値を下回るときを識別し、それに応答して、CGRデバイスに(CGRデバイス座標系での)触覚デバイスの位置を検知する要求を送信し、触覚デバイス自体も(触覚デバイス座標系で)自身の位置をキャプチャする。触覚デバイスは静的であるため、CGRデバイスと触覚デバイスの両方によって検出される位置は同じであり、これにより、各デバイスがそれぞれの位置検出を完了したときのタイミング情報を使用しての位置合わせ動作の必要性を除去する。検出された様々な静的位置の測定値が、各デバイスで取得され、座標系のアライメントを改善するための2つの座標系間の変換を計算するために使用される。以下でさらに詳細を説明する様に、触覚デバイスは、それが実質的に一定の速度を有すると判断したとき(つまり、並進及び/又は回転速度が、時間間隔中に定義された閾値量を超えて変化しない場合)等、触覚デバイスが動いているときでも、触覚デバイス自身によるその位置の検知及びCGRデバイスによるその位置の検知をトリガすることができる。
【0025】
本明細書では、触覚デバイスと組み合わせて使用されるMRデバイス及び他のCGRデバイスとの関連で様々な実施形態が開示されているが、これらの実施形態はそれらに限定されない。本開示の実施形態は、自身の位置を検知できる様に構成された別のデバイス(例えば、触覚デバイスや、ゲームコントローラ又はゲームの剣、銃のハンドル等のユーザにより動かされ得るゲームオブジェクト)の位置を検知する様に構成された任意の表示デバイス(例えば、MRデバイス、VRデバイス、スマートフォン画面)等の任意の2つのタイプの電子デバイスで参照として使用される座標系のアライメントを提供する様に動作することができる。
【0026】
図1は、本開示の幾つかの実施形態に従って動作する触覚デバイス130及びCGRデバイス100を含むCGRシステムを示している。
【0027】
図1を参照すると、例示的なCGRデバイス100は、触覚デバイス130の位置を光学的に検知する様に構成された前向きカメラ110を有するMRデバイスであり得る。CGR装置100は、カメラ110を通して見ることができる、及び/又は、シースルーディスプレイ(例えば、グーグルグラス)を通して見ることができる現実世界のオブジェクト上のオーバーレイとしてグラフィックオブジェクトを表示する様に構成され得る。グラフィックオブジェクトは、MRデバイス及び/又はサーバ140によって生成され得る。CGRデバイス100は、1つ又は複数のスピーカ120を含み得る。
【0028】
触覚デバイス130は、触覚デバイス130の現在の位置を検知するオンボードセンサを含む。触覚デバイス130は、力のフィードバック及び/又は振動フィードバック等の触覚フィードバックをユーザに提供する様に構成された触覚フィードバック生成デバイス750(
図7)を含み得る。オンボードセンサは、動きセンサ740(
図7)、回転及び/又は並進位置エンコーダ、赤外線(IR)位置決めシステム、及び/又は、触覚デバイス130の現在の位置又はポーズを検知する様に構成された他のセンサを含み得る。触覚デバイス130は、Geomagic Touch製品のコンポーネントを含み得る。一実施形態において、位置又はポーズは、触覚デバイス130のモータ内のエンコーダを使用して1kHzで測定される。触覚デバイス130及びCGRデバイス100は、有線及び/又は無線通信リンクを介して互いに直接、及び/又は、サーバ140又は別のデバイス(例えば、ネットワークルータ又はリレー)を介して通信する様に構成され得るネットワークインタフェース回路を含む。
【0029】
CGRデバイス100は、カメラ110を使用して、及び/又は、触覚デバイス130の現在の位置又はポーズを検知する様に構成された慣性測定ユニット等の動きセンサを使用して、その現在の位置又はポーズを検知し得る。代替的に、CGRデバイス100は、カメラ110と、触覚デバイス130との間で送受信されるRF信号の三角測量を実行する様に構成された離間したRF送信機及び受信機(例えば、超広帯域又はWi-Fi無線)とを使用して、及び/又は、触覚デバイス130の現在の位置又はポーズを検知する様に構成された別のセンサを使用して、触覚デバイス130の現在の位置又はポーズを検知する様に構成され得る。CGRデバイス100は、カメラ及び通信回路等のMicrosoftのHololens製品のコンポーネントを含み得る。
【0030】
以下の例示的な実施形態の説明において、同次座標における触覚デバイス130の位置をPとして参照し、ここで、P=[p1]T([...]Tは、行列[...]の転置を表す。)である。項pはベクトルであり、p=[X,Y,Z]は、カーテシアン座標における触覚デバイス130の三次元(3D)位置を表す。さらに、用語S(P)は、触覚デバイス130の座標系における、総ての記録された触覚デバイス130の位置のセットとして定義される。CGRデバイス100の座標系に対する触覚デバイス130の位置を、同次座標でPCGRとして参照し、ここで、PCGR=[pCGR1]T及びpCGR=[XCGR,YCGR,ZCGR]はカーテシアン座標である。CGRデバイス100の位置のセットは、SCGR(PCGR)である。触覚デバイス130とCGRデバイス100の両方によって検知された触覚デバイス位置の各ペアのセットは、セットQ(P、PCGR)に保存される。
【0031】
さらに、用語VPは並進速度を参照し、用語Valphaは回転速度を参照する。用語V^(t)は、t秒後の速度Vの推定値を参照し、これは、ユーザが実行した運動加速度及び/又は以前の運動パターンの分析に基づいて推定され得る。
【0032】
用語イプシロンは、ユーザ及び/又は実行可能アプリケーションによって定義され得る定数値を参照する。
【0033】
触覚デバイス130は、
図1の例において、並進方向X′、Y′、Z′と、ロール、ピッチ、ヨーに対応し得る回転方向Θx′、Θy′、Θz′として示される様に、第1の6DOF座標系におけるそのポーズを検知する様に構成される。同様に、CGRデバイス100は、並進方向X、Y、Zと、ロール、ピッチ、ヨーに対応し得る回転方向Θx、Θy、Θzとして示される様に、第2の6DOF座標系における触覚デバイス130の位置を検知する様に構成される。ただし、実施形態は、任意の多次元座標系で使用され得る。
【0034】
本明細書の様々な実施形態によれば、触覚デバイス130、CGRデバイス100、及び/又は、サーバ140は、第1及び第2の座標系の一方で参照されるポーズ(例えば、位置、回転角度、及び/又、はそれらの組み合わせ)を、第1及び第2の座標系の他方に変換するための変換行列を生成する様に構成され、さらに、第1及び第2の座標系の他方から第1及び第2の座標系の一方の、別の方向にポーズを変換するための別の変換行列を生成し得る。触覚デバイス130は、変換行列を生成し、それをCGRデバイス100に通信することができ、それにより、CGRデバイス100は、ユーザのために表示デバイス850(
図8)に表示するオブジェクトのポーズを調整することができる。
【0035】
例えば、仮想オブジェクトは、触覚デバイス130によって参照される第1座標系で定義される触覚特性を有し得る。CGRデバイス100は、触覚デバイス130自体及び/又はサーバ140等から、仮想オブジェクトに関するメタデータを受信することができ、メタデータは、第1座標系に対する仮想オブジェクトの形状、カラーシェーディング、及び、ポーズを含み得る。触覚デバイス130は、変換行列をCGRデバイス100に送信して、CGRデバイス100に、仮想オブジェクトのメタデータ(例えば、ポーズ)を触覚デバイス130の第1座標系からCGRデバイス100の第2座標系に変換させることができる。次に、CGRデバイス100は、ユーザに見せるために、変換されたメタデータを使用して仮想オブジェクトを表示デバイスに表示することができる。これらの動作により、仮想オブジェクトをより正確に表示し、仮想オブジェクトが、ユーザの指、手、腕、又は、その他の物理オブジェクト等の実際のオブジェクトに対して操作上追跡される触覚特性を持たせることができる。
【0036】
仮想オブジェクトの触覚特性は、例えば、ユーザの指が仮想オブジェクトの表面に位置的に接触したと判定されたとき等の触覚特性が満たされたときに触覚フィードバックをユーザに提供するために、CGRデバイス100に触覚デバイス130を制御させ得る。代わりに、或いは、追加して、仮想オブジェクトの触覚特性は、例えば、ユーザの指が仮想オブジェクトの表面に位置的に接触したと判定されたとき等の触覚特性が満たされたと判定することに応答して、CGRデバイス100に、表示された仮想オブジェクトを移動及び/又は回転させ、あるいは、表示された外観を変化させ得る。
【0037】
逆に、CGRデバイス100の第2座標系で作成される新しい仮想オブジェクトは、そのメタデータを触覚デバイス130に送信して、例えば、触覚デバイス130によってユーザに提供されるフィードバックを制御し、及び/又は、新しい仮想オブジェクトに対する触覚デバイス130の位置判定を制御することができる。触覚デバイス130は、仮想オブジェクトのポーズをCGRデバイス100の第2座標系から触覚デバイス130の第1座標系に変換するために使用される変換行列を計算するためにメタデータを使用する。
【0038】
図2は、本開示の幾つかの実施形態に従って動作する触覚デバイス130及びCGRデバイス100によって実行され得る例示的な動作のデータフロー図及びフローチャートである。
図7は、本開示の幾つかの他の実施形態に従って構成される触覚デバイスコンポーネントのブロック図であり、
図8は、本開示の他の幾つかの実施形態に従って上述したCGRデバイス100及び/又はCGRデバイス500で使用され得るCGRデバイスコンポーネントのブロック図である。
【0039】
以下にさらに詳細に説明する
図7及び
図8と共に
図2を参照すると、触覚デバイス130は、触覚デバイス130の位置を測定するためにCGRデバイス100を制御する。
図2の触覚デバイス130は、
図1の第1座標系と第2座標系との間の変換行列を判定する様に構成される。
【0040】
触覚デバイスは、動きセンサ740、ネットワークインタフェース730、プロセッサ710及びメモリ720を含む。動きセンサ740は、触覚デバイス130の動きを検知する様に構成される。ネットワークインタフェース回路730は、直接無線通信及び/又は有線通信などを介して、CGRデバイス100及び/又はサーバ140と通信する様に構成される。プロセッサ710は、動きセンサ740及びネットワークインタフェース回路730に接続される。メモリ720は、
図2に関して以下で説明される動作を実行するためにプロセッサ710によって実行されるプログラムコードを格納する。
【0041】
CGRデバイス100は、CGRデバイス100に対する触覚デバイス130の位置を測定し、センサ110、ネットワークインタフェース回路830、プロセッサ810及びメモリ820を含む。センサ110は、触覚デバイス130の位置を示し得るセンサデータを出力する様に構成される。ネットワークインタフェース回路830は、触覚デバイス130と通信する様に構成される。プロセッサ810は、センサ110及びネットワークインタフェース回路830に接続される。メモリ820は、
図2に関して以下で説明される動作を実行するためにプロセッサ810によって実行されるプログラムコードを格納する。
【0042】
触覚デバイスは、ペアリングの要求をCGRデバイス100に通信(200)することができ、CGRデバイスは、応答として要求(210)を受信することができる。動作200は、ボタンを押すことによって、又は、触覚デバイス130によって実行されるアプリケーションの起動によって、ユーザにより開始され得る。追加して、或いは、代わりに、動作200は、
図6に関して以下で説明する様に、ユーザによってトリガされたとき、及び/又は、CGRデバイス100によって自動的にトリガされたときなど、座標系アライメント、又は、更新されたアライメントが必要であると判断されたときにトリガされ得る。CGRデバイス100は、ユーザの角膜画像をキャプチャするために目を向くカメラを使用し、CGRデバイス100の表示デバイス850に表示された仮想コンピュータ生成オブジェクトのグラフィックスと、ユーザが見る現実世界オブジェクトとの間に過度の不整合があるときを判定するために角膜画像を分析し得る。次に、CGRデバイス100は、過度の不整合があるときに変換行列の更新をトリガすることができる。
【0043】
図6に関して以下でさらに詳しく説明する様に、特定の実オブジェクトに位置合わせする必要のある仮想オブジェクトに過剰な位置ずれがある場合など、第1座標系と第2座標系との間の過剰なミスアライメントの発生を識別するため、角膜画像が分析され得る。
【0044】
センサ、例えば、正面カメラ110は、電力を節約するため、使用されていないときはオフにされ得る。CGRデバイス100は、触覚デバイス130の位置を測定するために使用するセンサをオン(212)にすることにより、要求に応答し得る。触覚デバイス130は、その動きを検知(202)するために動きセンサ740を操作する。動きセンサ740によって検知された、定義されたルールを満たす動きのレベルを触覚デバイス130が有すると判定(204)することに応答して、触覚デバイス130は、触覚デバイス130の位置を測定する要求をCGRデバイス100に送信(206)する。
【0045】
触覚デバイス130は、例えば、1つ又は複数の以下の条件が存在する場合、動きのレベルが定義されたルールを満たすと判定し得る。
a)VP<=イプシロン
b)V^(t)<=イプシロン
【0046】
一実施形態において、イプシロン値は、約0又は別の定義された閾値である。触覚デバイス130が非常に小さな動きを経験することがあり、及び/又は、動きセンサ740の出力がノイズ及び/又はドリフトの影響を受けることがあるので、0のイプシロン値を観察するのが難しい場合がある。したがって、イプシロン値は、座標系アラインメントに使用される、結果として得られる変換行列の望ましい精度レベルに基づいて選択され得る。次に、触覚デバイスの位置PがS及びQに保存される。定義されたルールには、現在の測定位置Pがすでに記録された位置のセットSにあるかどうか、及び/又は、閾値時間の経過により、現在の測定位置がその判定から期限切れになっているかどうかの判定が含まれ得る。
【0047】
上記条件(b)は、CGRデバイス100から位置測定値を受信するための遅延を低減する将来の測定要求を実行することができるので、一般的に有利であり得る。触覚デバイス130からCGRデバイス100への測定要求と、画像をキャプチャするための動作には、ゼロ以外の遅延が生じる。遅延は、触覚デバイス130の動きが発生するのに十分であり得る。ただし、予測リクエストを使用すると、触覚デバイス130の動きに関係なく、そのような遅延の計算補償と座標系のより一貫したアライメントが可能になる。
【0048】
CGRデバイス100による触覚デバイス130の位置測定は、触覚デバイス130が所定の閾値を下回る回転速度のときに測定が行われる様に制限することによって改善され得る。
【0049】
追加の実施形態において、例えば、CGRデバイス100のディスプレイを介して、位置測定が必要であると認識されたときに触覚デバイス130の移動を停止する様にユーザに要求することができる。同様に、ユーザは、触覚デバイス130を、セットS及びQそれぞれの一部ではないある位置又は異なる位置のペアに移動する様に要求され得る。そのようなガイダンスは、触覚デバイス130により提供される触覚フィードバックを介して、CGRデバイス100のスピーカ120を介したオーディオフィードバックによって、及び/又は、CGRデバイス100の表示デバイス850に表示される情報によって、ユーザに提供され得る。
【0050】
図2をさらに参照すると、定義されたルールが満たされると、触覚デバイス130は、触覚デバイス130の位置を検知し、メモリ720に格納(208)する。CGRデバイス100は、要求を受信(214)し、それに応答して、触覚デバイス130の位置の測定値を生成するための動作を開始(216)する。CGRデバイス100は、触覚デバイス130の位置を示し得る、例えば、カメラ110からのデジタル画像の様な、センサによって出力されるセンサデータをメモリ820に格納(218)する。次に、CGRデバイス100は、センサデータを保存したことを示す確認応答を送信(220)する。
【0051】
触覚デバイス130は、触覚デバイス130の位置を測定するために使用され得るセンサデータを格納したことを示す確認応答をCGRデバイス100から受信(222)する。触覚デバイス130は、要求がCGRデバイス100に送信(206)されたときと、確認応答がCGRデバイス100から受信(222)されたときと、の間の時間間隔中に検知された触覚デバイス130の動きのレベルが定義されたルールを満たさなくなる中止条件が生じたかを判定(224)し得る。中止条件が生じたことに応答して、触覚デバイス130の位置を測定するための動作を中止するために、触覚デバイス130は、中止メッセージをCGRデバイス100に送信(226)する。
【0052】
例示的な一実施形態において、触覚デバイス130が動かなかった場合、又は、定義されたルールを満たす動きを有していた場合、第1座標系と第2座標系との間の変換行列を判定するためにさらなる動作が実行される。対照的に、触覚デバイス130が移動した、或いは、定義されたルールを満たさない動きをしたと判定された場合、触覚デバイス130の位置の現在の測定をキャンセルするため、メッセージがCGRデバイス100に送信される。
【0053】
測定要求がCGRデバイス100に送信(206)された時間をT1とし、ACKが受信(222)された時間をT2とし、触覚デバイス130が、T1とT2の間の時間間隔中に定義されたルールに違反する動きをしたと判定された場合、触覚デバイスの位置の格納されたセンサデータの表示はもはや有効ではないので、測定を中止するためのメッセージがCGRデバイス100に送信(226)される。対照的に、触覚デバイス130が、T1とT2との間の時間間隔中に定義されたルールに違反する動きをしていないと判定された場合、触覚デバイス130は、変換行列を判定するための動作に進む。
【0054】
時間T2-T1は、Delta_N×2+Delta_Cに基づくか、又は、それに等しく、ここで、Delta_Nはネットワーク遅延であり、Delta_Cは、新しい画像の要求が送信(206)されたときと、画像が取得され、触覚デバイス130の位置を判定する後続の処理のためにCGRデバイス100のメモリて保存されたときとの間の時間である。Delta_Cはカメラのフレームレート(例:60Hz)に基づいて定義され、ネットワーク遅延は、他のデバイス、及び/又は、同じデバイスの他のアプリケーションとの通信リソースの共有により通信が遅延するかどうかといった、通信に使用される経路と、ネットワーク通信プロトコルに応じて、約1msから約5msであり得る。したがって、T2-T1は約20msになる可能性があり、これは、触覚デバイスが移動しない、又は、定義されたルールを超える動きがなければ許容される持続時間である。
【0055】
サーバ140を使用して、CGRデバイス100と触覚デバイス130の両方から測定された位置を収集し、座標系アライメント変換に使用される変換行列を判定する動作を実行する場合において、CGRデバイス100からACKを受信した後、最大に許容できるDelta_Nより大きいDelta_B秒に触覚デバイス130が移動したという情報と共に触覚デバイス130からのメッセージが受信された場合、サーバ140は、CGRデバイス100にメッセージを送信して、測定された位置の収集及び変換行列を判定するための動作の実行を中止する。
【0056】
図2をさらに参照すると、CGRデバイス100は、要求が受信(214)されたときと確認応答が送信(220)されたときとの間の時間間隔中に検知された触覚デバイス130の動きのレベルが定義されたルールを満たさなくなったことを示す中止メッセージが受信されたかどうかを判定(228)する。中止メッセージが受信されないことに応答して、CGRデバイス100は、メモリに格納されたセンサデータに基づいて触覚デバイス130の位置の測定値の生成(230)を完了し、触覚デバイス130の位置の測定値を送信(232)する。したがって、触覚デバイス130の位置の測定値の送信は、中止メッセージが受信されなかったという判定(228)に応答して実行される。
【0057】
一実施形態において、CGRデバイス100は、CGRデバイス100の第2座標系における触覚デバイス130の位置を推定するために、視覚ベースの位置識別動作等の位置推定アルゴリズムを使用し、メモリに格納(218)された、カメラ110による触覚デバイス130のデジタル写真を処理する。デジタル写真がキャプチャされたことを示す確認応答(ACK)は、触覚デバイス130に送信(220)される。位置推定アルゴリズムは、格納されたデジタル写真を使用して触覚デバイス130の位置を推定するために実行され続けるが、確認応答メッセージは、デジタル写真がメモリに格納されたと判定されると直ちに送信(220)される。
【0058】
視覚ベースの位置推定アルゴリズムは、触覚デバイス130や触覚デバイス130のハウジングの一部に接続された、又は、その上で視認可能な1つ又は複数のマーカ、及び/又は、触覚デバイス130の別の視覚的に識別可能な特徴を識別することに基づいて位置を判定し得る。アルゴリズムは、デジタル画像をキャプチャしてから触覚デバイス130に取り付けられたマーカの推定位置を出力するまでに20~50ミリ秒かかるHololensARToolKitを使用するHololens製品で使用されるアルゴリズムに基づき得る。視覚ベースの位置推定アルゴリズムは、代替的又は追加的に、オープンソースコンピュータビジョンライブラリ(OpenCV)を通じて提供される1つ以上のアルゴリズムに基づき得る。
【0059】
幾つかの他の実施形態において、触覚デバイスの位置は、触覚デバイス130と送受信されるRF信号の三角測量を実行する様に構成された、離間したRF送信機及び受信機(例えば、超広帯域又はWi-Fi無線)を使用して推定される。
【0060】
触覚デバイス130は、CGRデバイス100の第2座標系PARで参照される触覚デバイス130の位置の測定値を受信(234)する。第2座標系PCGRで測定された触覚デバイスの位置は、SCGR及びQに保存され得る。
【0061】
触覚デバイス130は、それに応じて、触覚デバイス130のメモリから読み出された触覚デバイス130の位置と、CGRデバイス100から受信した触覚デバイス130の位置と、に基づいて、第1座標系及び第2座標系の一方で参照されるポーズ(つまり、位置、回転角度、及び/又は、それらの組み合わせ)を、第1座標系及び第2座標系の他方で参照されるポーズに変換するための変換行列を判定(236)する。
【0062】
一実施形態において、セットQ内の線形独立位置ベクトルの数がNよりも大きい、すなわち、ランク(Q)>=Nである場合、触覚デバイス130の第1座標系とCGRデバイス100の第2座標系との変換行列の計算を行うことができる。位置及び方向の両方で実行される変換行列の計算のため、セットQの線形独立ベクトルの数は、N>=12(変換行列で識別されるパラメーターの最小数)より大きい。変換行列の計算は、最小二乗演算を介して実行され、この演算では、2つの座標系をPCGR=T×Pとして関連付ける変換行列Tが検出され、ここで、PCGR=[pCGR1]T、P=[p1]T、及び、
【0063】
【0064】
M=[P(1)T;P(2)T;・・・;P(n)T]と、MCGR=[PCGR(1)T;PCGR(2)T;・・・;PCGR(n)T]は、それぞれ、セットQの総ての測定値iのポーズ測定値P及びPCGRから構成される列行列である。変換行列Tは、||M×TT-MCGR||を最小化する変換行列として取得される。直接線形変換(DLT)等の他の方法を使用して、変換行列を計算することもできる。
【0065】
変換行列は、触覚デバイス130を制御するために使用(238)される、及び/又は、CGRデバイス100及び/又はサーバ140に送信され得る。例えば、変換行列は、変換されたポーズを生成するために、触覚デバイス130のポーズを第1座標系及び第2座標系の一方から第1座標系及び第2座標系の他方に変換するために使用される。触覚デバイス130による触覚フィードバックの生成は、変換されたポーズに基づき制御され得る。代替的又は追加的に、CGRデバイス100は、例えば、変換行列に基づいて判定されたポーズを有するグラフィックオブジェクトを表示デバイス上に表示することなどによって、変換行列に基づいて制御(240)され得る。
【0066】
幾つかの実施形態において、動きセンサ740によって検知された動きのレベルが定義されたルールを満たすことを判定(204)するための動作は、例えば、要求がCGRデバイス100に送信(206)されたとき(時間T1)と、CGRデバイス100から確認応答を受信(222)したとき(時間T2)との間の時間間隔中において触覚デバイス130が静止している場合等である。
【0067】
対照的に、幾つかの他の実施形態において、触覚デバイス130が静止したままであるか、或いは、T1とT2との間の時間間隔中に定義された閾値量を超えて変化しない速度を有する場合、定義されたルールが満たされる。触覚デバイス130の更新された位置を推定するための動作は、メモリ720から読み出された触覚デバイス130の位置が、T1とT2の間の時間間隔の少なくとも部分において、触覚デバイス130の速度により変化したと判定された量に基づいて実行される。触覚デバイス130は、触覚デバイス130の位置の測定値をCGRデバイス100から受信(234)する。触覚デバイス130は、触覚デバイス130の更新された位置と、CGRデバイス100から受信した触覚デバイス130の位置の測定値と、に基づいて、第1座標系及び第2座標系の一方で参照されるポーズを、第1座標系及び第2座標系の他方で参照されるポーズに変換するための変換行列を判定(236)することができる。
【0068】
図3a及び
図3bは、本開示の幾つかの実施形態に従って動作する触覚デバイス130、サーバ140及びCGRデバイス100による動作のデータフロー図及びフローチャートである。図示する動作において、サーバ140は、触覚デバイス130及びCGRデバイス100の第1座標系及び第2座標系間の変換行列を生成する。
【0069】
図3a及び3bを参照すると、触覚デバイス130は、受信(304)のためにCGRデバイス100に通信され、サーバ140を介して中継(302)され得る、ペア要求を生成(300)する。触覚デバイス130は、その動きを検知(306)し、動きのレベルが、実質的に動かないこと、又は、許容できる一定の速度を有すること等の定義されたルールを満たすという判定(308)を待つ。その判定に応答して、触覚デバイス130は、触覚デバイスの位置の測定値をサーバ140に送信する要求をCGRデバイス100に送信(310)する。CGRデバイス100は、測定の要求を受信(330)し、これは、転送されるか、さもなければサーバ140によって観察(312)され得る。
【0070】
触覚デバイス130は、例えば動きセンサ740を介してその現在の位置を検知(316)し、検知された位置をサーバ140に送信(318)する。サーバは、要求の観察(312)に応答して、或いは、触覚デバイス130からの測定値の受信(320)に応答して、変換行列を生成するための動作(314)を開始する。CGRデバイス100は、触覚デバイスの位置の測定値を生成する動作を開始(332)することにより、受信(330)した要求に応答し、触覚デバイスの位置を判定するために、CGRデバイス100又はサーバ140によって使用され得る、センサによって出力される、例えば、カメラ110からのデジタル画像であるセンサデータを保存(334)する。センサデータの保存に応答して、CGRデバイス100は、触覚デバイス130による受信(340)の確認応答を送信(336)する。サーバ140は、確認応答を転送、又は、観察(338)し得る。
【0071】
CGRデバイス100は、触覚デバイスの位置の測定値をサーバ140に送信(350)し、サーバ140はそれを受信(370)する。触覚デバイス130は、触覚デバイスの位置の測定値を受信(370)する前又は後に、要求が送信(310)されたとき(時間T1)と確認応答が受信(340)されたとき(時間T2)との間の時間間隔中に移動したか、或いは、定義されたルール(例えば、定義されたルールを満たす実質的に一定の並進及び/又は回転速度を有する)を満たさない時間間隔中の動きがあったかを判定(360)する。
【0072】
触覚デバイス130が、定義されたルールを満たさない動きを有していた場合、中止メッセージがサーバ140に送信(362)され、サーバ140がそれを受信(372)すると、サーバ140をトリガして、触覚デバイス130による位置測定及びCGRデバイス100による位置測定に基づく変換行列の生成を中止させる。対称的に、触覚デバイス130が動かなかった場合、又は、定義されたルールを満たす動きを有していた場合、サーバ140は、第1座標系と第2座標系との間の変換行列の生成(374)を完了させる。
【0073】
次に、変換行列は、触覚デバイスによる触覚フィードバックの生成を制御(380)するために使用され得る。代替的又は追加的に、変換行列は、変換行列に基づいて判定されるポーズを有するグラフィックオブジェクトのCGRデバイス100の表示デバイスへの表示を制御(380)するために使用され得る。例えば、CGRデバイス100は、変換行列を使用して、オブジェクトの配置、回転、カラーシェーディングの調整、及び/又は、変換行列を介するオブジェクトの処理行列に基づくオブジェクトの形状の調整等の、表示されるグラフィックオブジェクトを操作できる。
【0074】
図4a及び
図4bは、本開示の幾つかの実施形態に従って動作する触覚デバイス130、サーバ140及びCGRデバイス100による動作のデータフロー図及びフローチャートである。図示する動作において、CGRデバイス100及び/又はサーバ140は、触覚デバイス130及びCGRデバイス100の第1座標系及び第2座標系間の変換行列を生成する。
【0075】
図4a及び4bを参照すると、触覚デバイス130は、受信(404)のためにCGRデバイス100に通信され、サーバ140を介して中継(402)され得る、ペア要求を生成(400)する。触覚デバイス130は、その動きを検知(406)し、動きのレベルが、実質的に動かない(静止)こと、又は、許容できる一定の速度を有すること等の定義されたルールを満たすという判定(408)を待つ。その判定に応答して、触覚デバイス130は、触覚デバイスの位置の測定値を生成するための要求をCGRデバイス100に送信(410)する。CGRデバイス100は、測定の要求を受信(430)し、これは、転送されるか、さもなければサーバ140によって観察(412)され得る。
【0076】
触覚デバイス130は、例えば、動きセンサ740を介してその現在の位置を検知(416)し、検知された位置をサーバ140及び/又はCGRデバイス100に送信(418)する。CGRデバイス100は、触覚デバイスの位置の測定値を生成する動作を開始(432)することにより、受信(430)した要求に応答し、触覚デバイスの位置を判定するために、CGRデバイス100又はサーバ140によって使用され得る、センサによって出力される、例えば、カメラ110からのデジタル画像であるセンサデータを保存(434)する。センサデータの保存に応答して、CGRデバイス100は、触覚デバイス130による受信(440)の確認応答を送信(436)する。サーバ140は、確認応答を転送、又は、観察(438)し得る。
【0077】
触覚デバイス130は、要求が送信(410)されたとき(時間T1)と確認応答が受信(440)されたとき(時間T2)との間の時間間隔中に移動したか、或いは、定義されたルール(例えば、定義された規則を満たす実質的に一定の並進及び/又は回転速度を有する。)を満たさない時間間隔中の動きがあったかを判定(460)する。
【0078】
触覚デバイス130が、定義されたルールを満たさない動きをしたとき、中止メッセージがCGRデバイス100及び/又はサーバ140に送信され(462)、それらは、レポートメッセージを転送(464)し得る。中止メッセージが受信されると、触覚デバイス位置の測定値の生成を中止(452)するためにCGRデバイス100をトリガする。対照的に、触覚デバイス130が静止したままであるか、さもなければ定義されたルールを満たす動きをした場合、CGRデバイス100は中止メッセージを受信せず、したがって触覚デバイス位置の測定の生成(454)を完了し、受信(466)のため、サーバに測定値を送信(456)する動作を行い得る。
【0079】
CGRデバイス100は、触覚デバイス130によって測定された触覚デバイス130の位置を受信(457)し、第1座標系と第2座標系との間の変換行列を判定し得る。CGRデバイス100は、変換行列に基づいて判定されたポーズを有するグラフィックオブジェクトの表示(458)を制御するために変換行列を使用し得る。例えば、CGRデバイス100は、オブジェクトの配置、回転、カラーシェーディングの調整、及び/又は、変換行列を介するオブジェクトの処理行列に基づくオブジェクトの形状の調整等の、表示されるグラフィックオブジェクトを操作し得る。
【0080】
代替的又は追加的に、サーバ140は、触覚デバイス位置の測定値を受信(466)し、第1座標系及び第2座標系の間の変換行列を判定(468)し得る。変換行列は、触覚デバイスによる触覚フィードバックの生成を制御(470)するために使用され得る。代替的又は追加的に、サーバ140によって生成された変換行列は、変換行列に基づいて判定されるポーズを有するグラフィックオブジェクトのCGRデバイス100の表示デバイスへの表示を制御(380)するために使用され得る。
【0081】
図5は、本開示の幾つかの実施形態に従って、コンピュータ生成オブジェクトを表示デバイス850上に表示し、ユーザが表示デバイス850を通して現実世界のオブジェクトを見ることができる様にする、及び/又は、表示デバイス850のエリア外の現実世界のオブジェクトを見ることができる様にする、ユーザ向きカメラ502を有する別のタイプのCGRデバイス500(例えば、グーグルグラス)を示している。ユーザ向きカメラ502からのデジタル画像は、更新された変換行列を生成する必要があるときを自動的に判定し、それに応じてその生成を開始するために処理され得る。
図6は、本開示の幾つかの実施形態による、更新された変換行列の生成を開始するためのCGRデバイスによる関連動作のフローチャートである。
【0082】
図5及び
図6を参照すると、CGRデバイス500は、ユーザ向きカメラ502を操作して、ユーザの目510からの反射のデジタル画像をキャプチャ(600)する。ユーザの目510からの反射は、表示デバイス850上に表示された仮想コンピュータ生成オブジェクトの反射である第1コンポーネントと、現実世界のオブジェクトからの光の反射である第2コンポーネントとを含む。CGRデバイス500は、仮想コンピュータ生成オブジェクトと現実世界オブジェクトとの間のミスアラインメントの測定値を抽出するために画像を処理(602)する。CGRデバイス500は、
図2、3a~3b、及び/又は、4a~4bに示される動作等の、更新された変換行列を生成するための動作を開始(604)することによって、定義されたアライメント規則を満たさないミスアライメントの測定値に応答する。
【0083】
クラウド実装
触覚デバイス130、サーバ140、及び/又は、CGRデバイス100によって実行されるものとして上述した一部又は総ての動作は、代替的に、ネットワークオペレータクラウドコンピューティングリソースの一部である別のノードによって実行され得る。例えば、それらの動作は、例えばクラウドRAN又はコアネットワーク等の通信ネットワーク事業者のクラウドサーバ又はクラウドリソース内など、エッジに近いネットワーク機能として実行され得る。
【0084】
触覚デバイス、CGRデバイス、及び、サーバの構成例
図7は、本開示の幾つかの実施形態に従う様に構成された触覚デバイス130のブロック図である。触覚デバイス130は、動きセンサ740、ネットワークインタフェース回路730、少なくとも1つのプロセッサ回路710(プロセッサ)、及び、少なくとも1つのメモリ720(メモリ)を含み得る。動きセンサ740は、慣性測定ユニットを含み得る。ネットワークインタフェース回路730は、有線(例えば、イーサネット、USBなど)及び/又は無線(例えば、Wi-Fi、ブルートゥース
(登録商標)、セルラー等)ネットワークインタフェースを介して別の電子デバイスと通信する様に構成される。触覚デバイス130は、力フィードバック及び/又は振動フィードバック等の触覚フィードバックをユーザに提供する様に構成された触覚フィードバック生成デバイス750を含み得る。プロセッサ710は、動きセンサ740、ネットワークインタフェース回路730、触覚フィードバック生成デバイス750、及び、メモリ720に接続される。メモリ720は、動作を実行するためにプロセッサ710により実行されるプログラムコードを格納する。プロセッサ710は、1つ又は複数のデータネットワークにわたって配置又は分散され得る、汎用及び/又は専用プロセッサ(例えば、マイクロプロセッサ及び/又はデジタル信号プロセッサ)等の1つ又は複数のデータ処理回路を含み得る。プロセッサ710は、以下にコンピュータ可読媒体として説明される、メモリ720内のプログラムコード722のコンピュータプログラム命令を実行して、触覚デバイス130について本明細書に開示される1つ又は複数の実施形態の動作及び方法の一部又は総てを実行する様に構成される。
【0085】
図8は、本開示の少なくとも幾つかの実施形態に従って動作し、上述のCGRデバイス100及び/又は500で使用され得るCGRデバイスコンポーネント800のブロック図である。CGRデバイスコンポーネント800は、動きセンサ840、ネットワークインタフェース回路830、スピーカ120、少なくとも1つのプロセッサ回路810(プロセッサ)、表示デバイス850、正面カメラ110、ユーザ向きカメラ502、及び、少なくとも1つのメモリ820(メモリ)を含み得る。動きセンサ840は、慣性測定ユニットを含み得る。ネットワークインタフェース回路830は、有線(例えば、イーサネット、USBなど)及び/又は無線(例えば、Wi-Fi、ブルートゥース
(登録商標)、セルラーなど)ネットワークインタフェースを介して別の電子デバイスと通信する様に構成される。プロセッサ810は、動きセンサ840、表示デバイス850、正面カメラ110、ユーザ向きカメラ502、スピーカ120、ネットワークインタフェース830、及び、メモリ820に接続される。メモリ820は、動作を実行するためにプロセッサ810により実行されるプログラムコードを格納する。プロセッサ810は、1つ又は複数のデータネットワークにわたって配置又は分散され得る、汎用及び/又は専用プロセッサ(例えば、マイクロプロセッサ及び/又はデジタル信号プロセッサ)等の1つ又は複数のデータ処理回路を含み得る。プロセッサ810は、以下にコンピュータ可読媒体として説明される、メモリ820内のプログラムコード822のコンピュータプログラム命令を実行して、CGRデバイス100について本明細書に開示される1つ又は複数の実施形態の動作及び方法の一部又は総てを実行する様に構成される。
【0086】
図9は、本開示の幾つかの実施形態に従う様に構成されたサーバ140のブロック図である。サーバ140は、ネットワークインタフェース回路930、少なくとも1つのプロセッサ回路910(プロセッサ)、及び、少なくとも1つのメモリ920(メモリ)を含み得る。ネットワークインタフェース回路30は、有線(例えば、イーサネット、USBなど)及び/又は無線(例えば、Wi-Fi、ブルートゥース
(登録商標)、セルラーなど)ネットワークインタフェースを介して別の電子デバイスと通信する様に構成される。プロセッサ910はネットワークインタフェース930及びメモリ920に接続される。メモリ920は、動作を実行するためにプロセッサ910により実行されるプログラムコード922を格納する。プロセッサ910は、1つ又は複数のデータネットワークにわたって配置又は分散され得る、汎用及び/又は専用プロセッサ(例えば、マイクロプロセッサ及び/又はデジタル信号プロセッサ)等の1つ又は複数のデータ処理回路を含み得る。プロセッサ910は、以下にコンピュータ可読媒体として説明される、メモリ920内のプログラムコード922のコンピュータプログラム命令を実行して、サーバ140について本明細書に開示される1つ又は複数の実施形態の動作及び方法の一部又は総てを実行する様に構成される。
【0087】
さらなる定義と実施形態:
本発明の概念の様々な実施形態の上記の説明において、本明細書で使用される用語は、特定の実施形態を説明することのみを目的とし、本発明の概念を限定することを意図しないことを理解されたい。他に定義されない限り、本明細書で使用される総ての用語(技術的及び科学的用語を含む)は、本開示が属する技術分野の当業者によって一般に理解されるのと同じ意味を有する。さらに、一般的に使用される辞書で定義されている用語等の用語は、この仕様及び関連技術の文脈での意味と一致する意味を持つものとして解釈されるべきであり、本明細書で明確にその様に定義された、理想化された又は過度に形式的な意味で解釈されないことが理解される。
【0088】
要素が別の要素に"接続されている"、"結合されている"、"応答する"、又は、その変形であると参照されている場合、他の要素に直接的に接続、結合、又は応答することができ、或いは、介在する要素が存在してもよい。対照的に、要素が別の要素に対して"直接接続"、"直接結合"、"直接応答"、又は、それらの変形で参照されている場合、介在する要素は存在しない。全体を通して、同様の参照符号は同様の要素を示す。さらに、本明細書で使用される"結合された"、"接続された"、"応答する"、又は、その変形は、無線で結合される、接続される、又は応答することを含み得る。単数形式は、文脈が明らかに他の場合を示している場合を除き、複数形式を含むことが意図される。周知の機能又は構造は、簡潔さ及び/又は明瞭さのために詳細に説明されない場合がある。"及び/又は"という用語は、関連する列挙された用語の1つ又は複数のありとあらゆる組み合わせを含む。
【0089】
本明細書では、第1、第2、第3等の用語を使用して様々な要素/動作を説明することができるが、これらの要素/動作はこれらの用語によって限定されるべきではないことが理解されよう。これらの用語は、ある要素/動作と別の要素/動作を区別するためにのみ使用される。したがって、幾つかの実施形態における第1の要素/動作は、本発明の概念の教示から逸脱することなく、他の実施形態における第2の要素/動作と呼ぶことができる。同じ参照番号又は同じ参照符号は、本明細書全体を通して同じ又は類似の要素を示す。
【0090】
本明細書で使用される場合、"備える"、"含む"、"有する"又は、それらの変形は、オープンエンドであり、1つ以上の述べられた特徴、整数、要素、ステップ、コンポーネント又は機能を含むが、1つ以上の他の特徴、整数、要素、ステップ、コンポーネント、関数又はそれらのグループの存在又は追加を排除しない。さらに、本明細書で使用される様に、ラテン語の"例示的"から派生した一般的な略語"eg"は、前述の項目の一般的な例を紹介又は指定するために使用され、そのような項目に限定することを意図していない。ラテン語の"idest"に由来する一般的な略語"i.e."は、より一般的な引用から特定の項目を指定するために使用される。
【0091】
例示的な実施形態は、コンピュータで実施される方法、装置(システム及び/又はデバイス)及び/又はコンピュータプログラム製品のブロック図及び/又はフローチャート図を参照して本明細書で説明される。ブロック図及び/又はフローチャートのブロック、ならびにブロック図及び/又はフローチャートにおけるブロックの組み合わせは、1つ又は複数のコンピュータ回路によって実行されるコンピュータプログラム命令によって実現され得ることが理解される。これらのコンピュータプログラム命令は、汎用コンピュータ回路、専用コンピュータ回路、及び/又は他のプログラム可能なデータ処理回路のプロセッサ回路に提供されてマシンが生成され、コンピュータのプロセッサ及び/又は他のプログラム可能なデータ処理装置を介して実行される命令、トランジスタ、メモリ位置に格納された値、ブロック図及び/又はフローチャートのブロックで指定された機能/動作を実現するためのそのような回路内の他のハードウェアコンポーネントを変換及び制御し、それにより、ブロック図及び/又はフローチャートのブロックで指定された機能/動作を実現するための手段(機能)及び/又は構造を作成する。
【0092】
これらのコンピュータプログラム命令は、また、コンピュータ又は他のプログラム可能なデータ処理装置が特定の方法で機能する様に命令できる有形のコンピュータ可読媒体に格納されてもよく、その結果、コンピュータ可読媒体に格納された命令は、ブロック図及び/又はフローチャートのブロックで指定された機能/動作を実現する命令を含む製品を生産する。したがって、本発明の概念の実施形態は、デジタル信号プロセッサ等のプロセッサ上で実行されるハードウェア及び/又はソフトウェア(ファームウェア、常駐ソフトウェア、マイクロコードなどを含む)で実施することができ、まとめて「回路」、「モジュール」、又はその変形としても参照され得る。
【0093】
また、幾つかの代替実装では、ブロックに記載されている機能/動作が、フローチャートに記載されている順序とは異なる順序で発生する場合があることにも注意されたい。例えば、関連する機能/動作に応じて、連続して示されている2つのブロックが実際には実質的に同時に実行されてもよく、あるいはブロックが逆の順序で実行されてもよい。さらに、フローチャート及び/又はブロック図の所与のブロックの機能は、複数のブロックに分離される、及び/又は、フローチャート及び/又はブロック図の2つ以上のブロックの機能は、少なくとも部分的に統合され得る。最後に、他のブロックを、図示されているブロックの間に追加/挿入することができ、及び/又は発明の概念の範囲から逸脱することなく、ブロック又は動作を省略することができる。さらに、幾つかの図は、通信の主要な方向を示すために通信経路上に矢印を含んでいるが、通信は、描かれた矢印とは反対の方向で起こり得ることを理解されたい。
【0094】
本発明の概念の原理から実質的に逸脱することなく、実施形態に対して多くの変更及び修正を行うことができる。そのような総ての変形及び修正は、本発明の概念の範囲内で本明細書に含まれることが意図されている。したがって、上記で開示された主題は、限定的ではなく例示的であると見なされるべきであり、添付の実施形態の例は、本発明の概念の精神及び範囲内にある総てのそのような修正、強化、及び他の実施形態をカバーすることを意図する。したがって、法律で許可される最大限の範囲で、本発明の概念の範囲は、以下の実施形態の例及びその等価物を含む本開示の最も広い許容可能な解釈によって判定されるべきであり、前述の詳細な説明によって制限又は限定されない。