JP7030854B2 - 仮想現実システム内の仮想コントローラの位置および向きの追跡 - Google Patents

仮想現実システム内の仮想コントローラの位置および向きの追跡 Download PDF

Info

Publication number
JP7030854B2
JP7030854B2 JP2019570391A JP2019570391A JP7030854B2 JP 7030854 B2 JP7030854 B2 JP 7030854B2 JP 2019570391 A JP2019570391 A JP 2019570391A JP 2019570391 A JP2019570391 A JP 2019570391A JP 7030854 B2 JP7030854 B2 JP 7030854B2
Authority
JP
Japan
Prior art keywords
controller
virtual
segment
joint
user
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Active
Application number
JP2019570391A
Other languages
English (en)
Other versions
JP2020529646A (ja
JP2020529646A5 (ja
Inventor
ラジャ,サマンサ
クレメント,マニュエル・クリスチャン
ニシュリー,シャニ―
スターンフェルド,ダニエル
ウェルカー,ステファン
ホロビッツ,ケビン
ファタス,コレンティン
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Google LLC
Original Assignee
Google LLC
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Google LLC filed Critical Google LLC
Publication of JP2020529646A publication Critical patent/JP2020529646A/ja
Priority to JP2021166315A priority Critical patent/JP7382994B2/ja
Publication of JP2020529646A5 publication Critical patent/JP2020529646A5/ja
Application granted granted Critical
Publication of JP7030854B2 publication Critical patent/JP7030854B2/ja
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/01Input arrangements or combined input and output arrangements for interaction between user and computer
    • G06F3/03Arrangements for converting the position or the displacement of a member into a coded form
    • G06F3/033Pointing devices displaced or positioned by the user, e.g. mice, trackballs, pens or joysticks; Accessories therefor
    • G06F3/0346Pointing devices displaced or positioned by the user, e.g. mice, trackballs, pens or joysticks; Accessories therefor with detection of the device orientation or free movement in a 3D space, e.g. 3D mice, 6-DOF [six degrees of freedom] pointers using gyroscopes, accelerometers or tilt-sensors
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/01Input arrangements or combined input and output arrangements for interaction between user and computer
    • G06F3/011Arrangements for interaction with the human body, e.g. for user immersion in virtual reality
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/01Input arrangements or combined input and output arrangements for interaction between user and computer
    • G06F3/011Arrangements for interaction with the human body, e.g. for user immersion in virtual reality
    • G06F3/012Head tracking input arrangements
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/01Input arrangements or combined input and output arrangements for interaction between user and computer
    • G06F3/03Arrangements for converting the position or the displacement of a member into a coded form
    • G06F3/033Pointing devices displaced or positioned by the user, e.g. mice, trackballs, pens or joysticks; Accessories therefor
    • G06F3/038Control and interface arrangements therefor, e.g. drivers or device-embedded control circuitry
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/01Input arrangements or combined input and output arrangements for interaction between user and computer
    • G06F3/03Arrangements for converting the position or the displacement of a member into a coded form
    • G06F3/033Pointing devices displaced or positioned by the user, e.g. mice, trackballs, pens or joysticks; Accessories therefor
    • G06F3/038Control and interface arrangements therefor, e.g. drivers or device-embedded control circuitry
    • G06F3/0383Signal control means within the pointing device
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T19/00Manipulating 3D models or images for computer graphics
    • G06T19/006Mixed reality

Landscapes

  • Engineering & Computer Science (AREA)
  • General Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Human Computer Interaction (AREA)
  • Computer Graphics (AREA)
  • Computer Hardware Design (AREA)
  • Software Systems (AREA)
  • User Interface Of Digital Computer (AREA)
  • Position Input By Displaying (AREA)
  • Processing Or Creating Images (AREA)

Description

関連出願の相互参照
本願は、2017年9月18日に出願された米国出願第15/708040号の優先権を主張し、当該出願の開示の全体が参照により本明細書に組み込まれる。
技術分野
本明細書は、仮想現実(VR:virtual reality)システムに使用されるコントローラの3次元位置および向きを追跡することに関する。
背景
いくつかのVRシステムにおいて、ユーザは、ヘッドマウントディスプレイ(HMD:head-mounted display)および手持ち式コントローラを用いて、仮想環境内の任意数の仮想オブジェクトと対話する。このようなVRシステムにおいて、ユーザは、手持ち式コントローラを用いて、HMDを介してオブジェクトと対話することができる。しかしながら、3自由度(3DOF:three degrees of freedom)追跡(例えば、向き追跡)のみを使用して、手持ち式コントローラを追跡するのは困難である場合がある。
概要
少なくとも一態様において、方法、例えばコンピュータが実行する方法は、ユーザのヘッドマウントディスプレイ(HMD)の位置を決定することと、HMDの位置に基づいて、関節の位置を定めることと、関節からセグメントの端部までのセグメントを定めることと、セグメントの端部の位置に基づいて、仮想現実(VR)環境内の仮想コントローラの初期仮想位置を定めることと、セグメントおよび関節に基づいて、物理コントローラの向きの変化に応じて、VR環境内の仮想コントローラの仮想位置および仮想向きを定めることとを含むことができる。
1つ以上の実現例の詳細は、添付の図面および以下の説明に記載されている。他の特徴は、説明および図面ならびに特許請求の範囲から明らかになるであろう。
ユーザの右側を表すために使用される例示的なVRアームモデルを示す斜視図である。 例示的な実施形態に従って、コントローラの位置を決定するためのシステムの例示的な実装を示す第三者視図である。 例示的な実施形態に従って、コントローラの位置を決定するためのシステムの例示的な実装を示す第三者視図である。 例示的な実施形態に従って、コントローラの位置を決定するためのシステムの例示的な実装を示す第三者視図である。 例示的な実施形態に従って、VR環境内のコントローラの位置を決定するために使用され得る例示的なVRシステムを示す図である。 VR空間内のHMD装置と通信可能に接続されたコントローラを示すブロック図である。 例示的な実施形態に従って、VR環境内のコントローラの位置を決定することに関連するフローチャートである。 例示的な実施形態に従って、VR環境内のコントローラの位置を決定することに関連するフローチャートである。 例示的実施形態に従って、ユーザが関節に対して動作することを示す概略図である。 例示的実施形態に従って、ユーザが関節に対して動作することを示す概略図である。 本明細書に開示された例を実装するために使用され得る例示的なコンピュータ装置および例示的なモバイルコンピュータ装置を示すブロック概略図である。
詳細な説明
本明細書に記載の実現例において、物理的なVRコントローラは、3自由度(3DOF)のみを用いて、通常ピッチ、ロールおよびヨーと呼ばれる、x、yおよびz軸を中心にする回転を追跡する。したがって、このような物理コントローラは、回転動作を追跡することができる。物理コントローラまたは物理コントローラに関連するヘッドマウントディスプレイ(HMD)が空間内の絶対位置を追跡しないため、物理コントローラの向きは、本質的に空間内の固定場所(または位置)で決定される。しかしながら、3DOF追跡は、VRアームモデルを用いてHMDから見た仮想コントローラの空間位置および向きを推定(または投影)することができる。したがって、物理コントローラの3DOF追跡を用いて、HMDから見ている仮想コントローラの6DOF(x、y、z軸の位置および向き)追跡を決定(推定、表現)することができる。いくつかの実現例において、VRアームモデルは、VRアームモデルとして呼ばれる。
例えば、ユーザは、様々な方法で頭を傾けたり回したりすることによって、HMDを介してVR環境を見ることができる。しかしながら、物理コントローラが空間内の絶対位置(位置追跡など)を追跡しないというVRコントローラの3DOF追跡機能の制限によって、HMDの視界内の仮想コントローラの追跡は、制限がある。しかしながら、VRアームモデルは、物理コントローラの向き追跡を利用して、HMDから見られる仮想コントローラの位置および向きを生成することができる。したがって、本明細書に記載の実現例において、コントローラを保持している人間のVR環境内の位置および向きをシミュレートすることができる。さらに、本明細書に記載の実現例において、仮想コントローラは、物理コントローラを保持および移動するユーザに対応するVR環境内の場所にあってもよい。
本明細書に記載の実現例によれば、VRシステムにおいて手持ち式物理コントローラを追跡するための改良された技術は、例えば、肘関節(第1の関節)と手首関節(第2の関節)との間のセグメントを定めることを含むことができる。セグメントおよび関節は、仮想コントローラの動作をエミュレートおよび表現する。改良された技術のいくつかの利点は、より安価で、より効率的、および/またはより簡単な(例えば、コントローラの向き以外の知識を殆ど必要としない)システムを提供することである。さらに、改良された技術は、その実装が簡単であり、比較的にユーザを没入させる十分な忠実度(例えば、精度)を有する。さらに、いくつかの実現例において、改良されたVRシステムを用いて物理コントローラを追跡するために、外部センサ(例えば、HMDの外部に面するカメラ)を設ける必要がない。
さらに、本明細書に記載の実現例において、最大で3つの回転動作、例えば、肘関節(第1の関節)周りの2つの回転動作および手首関節(第2の関節)周りの1つの回転動作、より具体的には、肘関節のz軸を中心にする動作およびy軸を中心にする動作および手首関節のx軸を中心にする動作を用いて、VR環境において、物理コントローラの動作の現実的な仮想表現を効果的且つ比較的に実現することができる。仮想環境に関して説明したが、本明細書に記載の技術は、拡張現実環境に適用することもできる。いくつかの実現例において、仮想環境という用語は、拡張現実環境であってもよく、拡張現実環境を含んでもよい。
図1は、ユーザを表すために使用される例示的なVRアームモデル10を示す斜視図である。図面は、ユーザの右側を示しているが、VRアームモデル10は、ユーザの左側に適用することができる。この実現例において、ユーザは、HMD8を着用している。図1には示されていないが、物理コントローラ112の位置は、VRアームモデル10に基づいて、ユーザによってHMDから仮想コントローラ(図示せず)として見られる(例えば、表される)ことができる。VRアームモデル10は、論じるために図1に示されているが、ユーザがHMD8を介して見えない場合もある。いくつかの実現例において、VRアームモデル10は、骨格モデルとして呼ばれる。
本明細書は、説明のために、一般性を失うことなく、例示的なVRアームモデルを、身体姿勢を模擬するように構成された人体モデルとして説明する。人体モデルを表すVRアームモデルは、複数のセグメントを含み、各セグメントは、ユーザの身体部位に対応する。VRアームモデルは、1つ以上の関節を含むことができる。各関節によって、1つ以上のセグメントは、1つ以上の他のセグメントに対して動作することができる。例えば、人間を表すVRアームモデルは、複数の剛体および/または変形可能な身体部位を含むことができ、いくつかのセグメントは、対応する人間の解剖学的部位を表すことができる。換言すれば、VRアームモデルの各セグメントは、1つ以上の構造要素(例えば、骨)に対応し、関節は、隣接する骨の接合部に位置する。いくつかの実現例において、構造要素の一部は、VRアームモデルのセグメントに対応してもよく、VRアームモデルのセグメントに対応しなくてもよい。いくつかの実現例において、様々な関節は、人間の実際の関節に対応してもよい。
図1に示すように、VRアームモデル10は、セグメント11、13、15、17および19、並びに関節A、B、C、DおよびEを含む。セグメント11は、関節AとBの間に位置し、セグメント13は、関節BとCの間に位置し、セグメント15は、関節CとDの間に位置し、セグメント17は、関節DとEの間に位置し、セグメント19は、関節Eから延在している。
いくつかの実現例において、関節A、B、C、DおよびEの各々は、関節に関連する各セグメントが空間内の3次元位置で回転できるように構成されてもよい。換言すれば、人体の多くの関節が1自由度または2自由度によって規定されるため、各関節(joint)は、最大3自由度(3DOF)(例えば、x、yおよびz軸)を有するように構成することができる。
本明細書に記載のVRアームモデル10によれば、一部の関節を中心にする回転を用いて、物理コントローラ112の動作を表すことができる。具体的には、VRアームモデル10において、関節DおよびEを用いて、HMD8から仮想コントローラとして見られる物理コントローラ112の位置を決定することができる。いくつかの実現例において、関節DおよびEのみを用いて、HMD8から仮想コントローラとして見られる物理コントローラ112の位置を決定することができる。
この実現例において、物理コントローラ112のヨー、ピッチおよびロールは、アームモデル10の様々な関節における動作として解釈される。物理コントローラ112を第1の軸に沿って縦方向に整列した場合、ロールは、第1の軸を中心にする回転である。ヨーは、第1の軸に直交し、物理コントローラ112の上部を通る第2の軸を中心にする回転である。ピッチは、第1の軸および第2の軸に直交し、物理コントローラの側面を通る第3の軸を中心にする回転である。換言すれば、物理コントローラ112の3DOF動作(例えば、指向性動作)は、VRアームモデル10の特定の関節および/またはセグメント周りの仮想コントローラの動作として解釈される(およびHMDに表示される)。
例えば、z軸を中心にする物理コントローラ112の回転(例えば、ヨー)は、HMD8から見た場合、例えばD関節のz軸を中心にする左右動作として表すことができる。したがって、HMD8から見たときに、仮想コントローラは、セグメント17(および/またはセグメント19)の端部で左右に動作している。
換言すれば、いくつかの実現例において、セグメント17は、関節Dを中心にして動作するように構成されてもよい。例えば、セグメント17は、その一端が関節Dを中心にして回転しながら、横方向に(例えば、左右に)動作することができる。換言すれば、セグメント17は、z軸を中心に動作する(例えば、ヨー)ことができる。これによって、仮想コントローラは、VR環境において同様に動作することができる。例えば、セグメント17が(横方向に沿って)少なくとも左右に動作すると、HMD8から見られたVR環境内の仮想コントローラも少なくとも左右に動作する。この特定の動作に関するより多くの詳細は、図2Aに関連して説明され、示される。
別の例として、y軸を中心にする物理コントローラ112の回転(例えば、ピッチ)は、HMD8から見た場合、例えばD関節のy軸を中心にする仮想コントローラの上下動作として表すことができる。したがって、HMD8から見たときに、仮想コントローラは、セグメント17(および/またはセグメント19)の端部で上下に動作している。
換言すれば、いくつかの実現例において、セグメント17は、その第2の端部(例えば、近位端)が関節Dを中心にして回転しながら、その第1の端部(例えば、遠位端)が上下に動作するように構成することができる。換言すれば、セグメント17は、y軸を中心にして動作すること(例えば、ピッチ)ができる。これによって、コントローラ112は、VR環境において同様に動作することができる。例えば、セグメント17が(縦方向に沿って)少なくとも上下に動作すると、HMD8から見られたVR環境内の仮想コントローラも少なくとも上下に動作する。この特定の動作に関するより多くの詳細は、図2Bに関連して説明され、示される。
さらに別の例として、x軸を中心にする物理コントローラ112の回転(例えば、ロール)は、HMD8から見た場合、例えばE関節のx軸を中心にする仮想コントローラの回転として表すことができる。したがって、HMD8から見たときに、仮想コントローラは、セグメント17(および/またはセグメント19)の端部で仮想コントローラの長手(または軸)を中心にして回転している。いくつかの実現例において、HMD8から見たときに、x軸を中心にする物理コントローラ112の回転(例えば、ロール)は、例えば、D関節のx軸(およびセグメント17)を中心にする回転として表すことができる。
換言すれば、いくつかの実現例において、セグメント19は、関節Eを中心にして回転するように構成されてもよい。例えば、セグメント19は、関節Eに固定されながら、関節Eを中心にして左右に回転することができる。換言すれば、セグメント17は、x軸を中心にして動作することができる。本明細書に記載の実現例によれば、HMD8のVR環境から見るときに、関節Eを中心にする回転は、手を回転して手の平を露出させ、その後手を回転して手の甲を露出させる動作として示すことができる。この特定の回転に関する詳細は、図2Cに関連して説明され、示される。
いくつかの実現例において、x軸を中心にする回転動作は、関節DおよびEにおいて同時に行われてもよい。換言すれば、一部の回転は、関節Dで行われてもよく、一部の回転は、関節Eで行われてもよい。40%の回転動作は、関節Dで行われ、60%の回転は、関節Eで行われる。
上述した動作は、別個の動作として説明されているが、任意に組み合わせることができる。例えば、物理コントローラ112の(x、yまたはz軸を中心にする)回転を任意に組み合わせて、VRアームモデル10を用いて、ユーザがHMD8から見たときの仮想コントローラの動作として表すことができる。
いくつかの実現例において、接続されたセグメント15および17は、直角のアームを表す。この構成は、ユーザの自然な動作をエミュレートするのに適している。換言すれば、ユーザの腕の自然な動作は、ユーザがどのように物理コントローラ112を保持および/または操作することに相関する。
いくつかの実現例において、全てのセグメント11、13、15、17および19は、関節B、C、DおよびEを介して接続されてもよい。例えば、セグメント11は、関節Bを介してセグメント13に接続され、セグメント13は、関節Cを介してセグメント15に接続され、セグメント15は、関節Dを介してセグメント17に接続され、セグメント17は、関節Eを介してセグメント19に接続されることができる。いくつかの実現例において、セグメント17は、セグメント13に対して直交方向に整列されてもよく、セグメント13は、セグメント11に対して直交方向に整列されてもよい。
いくつかの実現例において、接続されたセグメント11、13、15、17および19は、ユーザの解剖学的身体部位を各々表すことができる。本明細書に記載の実現例において、接続されたセグメント11、13、15、17および19は、直角になっているユーザの体の右側の腕を表すことができる。いくつかの実現例において、関節Dを介してセグメント15をセグメント17に対して直交方向に整列することによって、直角を形成することができる。
いくつかの実現例において、セグメント11は、ユーザの頭部と胸部上方の中心との間の身体部位を表すことができ、セグメント13は、ユーザの肩を表すことができ、セグメント15は、ユーザの上腕を表すことができ、セグメント17は、ユーザの前腕を表すことができ、セグメント19は、ユーザの手を表すことができる。なお、これらのセグメントは、単なる身体部位の例示的な表現であり、身体の他の部位を表すこともできる。
いくつかの実現例において、セグメント11、13、15、17および19のサイズまたは長さは、平均的な成人の解剖学的身体部位を各々表すことができる。例えば、セグメント11は、約13~15cmであってもよく、セグメント13は、約15~18cmであってもよく、セグメント15は、約25~30cmであってもよく、セグメント17は、約25~30cmであってもよく、セグメント19は、約17~20cmであってもよい。これらの寸法は、単なる例示であり、排他的ではない。
いくつかの実現例において、セグメント19は、仮想コントローラの位置および/または動作を表すことができる。これは、ユーザがこの場所(例えば、位置)で物理コントローラを保持しているためである。セグメント19は、仮想コントローラの動作および向きをエミュレートすることができる。
いくつかの実現例において、これらのセグメントを用いて、物理コントローラ112の初期位置を決定することができる。本明細書に記載の実現例において、物理コントローラ112の初期位置は、関節Dの位置を決定することによって、決定することができる。したがって、セグメント11、13および15を接続することによって、セグメント11、13および15を用いて、物理コントローラ112の初期位置を決定することができる。例えば、(例えば、関節AとBの間の)セグメント11は、(例えば、関節BとCの間の)セグメント13に接続することができ、セグメント13は、(例えば、関節CとDの間の)セグメント15に接続することができる。いくつかの実現例において、初期位置は、HMD8からの所定のオフセット位置または距離として決定されてもよい。
いくつかの実現例において、セグメント17を物理的に移動した距離は、仮想コントローラを移動した距離と同様である。他の実現例において、セグメント17の移動距離は、仮想コントローラを移動した距離と同様ではない。その代わりに、システムは、この距離を推定する。例えば、セグメント17を距離「x」で移動した場合、仮想コントローラは、距離「x」よりも小さいまたは大きい距離「y」で移動してもよい。また、セグメント17および関節Dに基づいて、例えばセグメントの長さおよび関節Dにおけるセグメントの物理的な向きに基づいて、物理コントローラの向きを仮想環境の仮想コントローラの仮想位置および仮想向きに変換することができる。
いくつかの実現例において、本開示の範囲内で、本明細書で説明したモデルのほかに、他のモデルを使用してもよい。例えば、様々な剛体の多角形メッシュ、1つ以上の変形可能なメッシュ、または任意の組み合わせを含むワイヤフレームメッシュのモデルを使用することができる。また、ユーザの形状を規定するメッシュとして、複数の三角形を使用することができる。さらに、他のモデルは、パッチ、不均一な加重Bスプライン、細分化曲面、または他の高次曲面を含むことができる。
いくつかの実現例において、モデルは、必要に応じて、現在の姿勢、1つ以上の過去の姿勢および/またはモデル物理学に関する情報を含むことができる。姿勢を取り、シミュレートできる全てのモデルは、本明細書に記載の認識、分析および追跡と互換性がある。
図2A~2Cは、仮想現実環境105をユーザ20に表示することができるヘッドマウントディスプレイ(HMD)106を装着しているユーザ20を示す第三者斜視図である。図2A~2Cに示されたオブジェクト50は、VR環境105内のユーザ20がHMD106を介して見ているものであるが、説明を容易にするために、第三者の視点から見ているように示されている。例えば、図2A~2Cに示されたオブジェクト50は、ユーザ20がHMD106を通して見えるが、実際に第三者には見えない。同様に、この詳細な説明内の他の図面は、説明を簡単にするために、第三者の視点からのものとして示されている。いくつかの実現例において、詳細な説明に記載されている例は、複数のオブジェクトおよび/または複数のユーザに適用することができる。
本明細書に記載の実現例によれば、仮想コントローラ113(例えば、コントローラの仮想表現)は、VR環境105に表示されてもよい。ユーザ20は、仮想コントローラ113を使用(例えば、利用)して、VR環境105内のオブジェクト50と対話する(例えば、掴む、触れる、接触する、保持する)ことができる。仮想コントローラ113は、オブジェクト50と対話するために、ビーム70(例えば、ポール、スティック)を用いて、オブジェクト50に作用することができる。いくつかの実現例において、物理コントローラ112は、操作(例えば、クリック、タッチ、スワイプ)を行うためのいくつかのキーを含むことができる。例えば、物理コントローラ112は、ホームボタン114a、メニューボタン114bおよびタッチパッド114cを含むことができる。いくつかの実現例において、物理コントローラ112と同様のキー(例えば、ホームボタン114a、メニューボタン114bおよびタッチパッド114c)は、仮想コントローラ113に示され(例えば、表示され)てもよい。
いくつかの実現例において、タッチパッド114cを用いて、ビーム70を作動/停止することができる。例えば、ユーザ20は、オブジェクト50と対話する場合、一般にオブジェクト50の方向を指し、ビーム70の端部をオブジェクト50の近くにまたはオブジェクト50に配置し、タッチパッド114cを押すことによって(例えば、オブジェクト50を掴むように)タッチパッド114cを作動し、オブジェクト50を所望の位置に移動(または配置)する。オブジェクト50を離すために、ユーザは、タッチパッド114cを離すことによってオブジェクト50を離す。
VR環境105において仮想コントローラ113の動作を効果的且つ比較的現実的に表現するために、本発明のシステムおよび方法は、HMD106に対する物理コントローラ112の実際の物理的位置を用いて、動作をVR環境105に変換する。本明細書に記載の実現例によれば、手首関節(例えば、関節E)の位置を決定することによって、仮想コントローラ113の位置を決定することができる。手首関節は、手の位置および/または仮想コントローラ113の位置に対応する。いくつかの実現例において、手首関節の位置は、最初にHMD106の位置を決定し、HMD106の位置から所定の距離に基づいて肘関節の位置(例えば、関節D)を定め、肘関節から手首関節までのセグメントを定めることによって決定されてもよい。以下に説明するように、センサを用いて、上述した各々の位置を決定することができる。
図2Aに示されたように、ユーザ20は、肘関節(例えば、関節D)で腕を動かすことができる。この実現例において、矢印90aによって示されたように、腕が横方向に移動する(例えば、左右に、(ページに垂直な)軸zを中心にして回転する)ことができる。換言すれば、ユーザの腕は、z軸(例えば、垂直軸)を中心にして回転することができる。したがって、矢印91aによって示されたように、ユーザの腕の移動および物理コントローラ112のz軸を中心にする回転によって、仮想コントローラ113は、(VRアームモデルを介して)VR環境105において同様に移動する。例えば、ユーザの腕が右に移動すると、物理コントローラ112aも右に移動する。したがって、仮想コントローラ113が右に移動する。ユーザの腕が左に移動すると、物理コントローラ112bも左に移動する。したがって、仮想コントローラ113が左に移動する。いくつかの実現例において、各VRアームモデルにおいて、ユーザの腕の移動距離は、仮想コントローラ113の移動距離に対応する。
非限定的な例において、ユーザは、ドアを閉めるようにドアと対話する場合、タッチパッド114aを押すことによって仮想コントローラ113を操作し、物理コントローラ112を左に移動することによって仮想コントローラ113を同様に移動することができる。この操作によって、VR環境でドアを閉めることができる。
図2Bに示されるように、ユーザ20は、肘関節(例えば、関節D)で腕を動かすことができる。この実現例において、矢印90bによって示されたように、腕が上下に移動することができる。換言すれば、ユーザの腕は、y軸を中心にして回転することができる。本明細書に記載の実現例において、上方向の移動は、図2Bの図に対してページの外への移動とし、下方向の移動は、図2Bの図に対してページの内への移動とする。いくつかの実現例において、ユーザの腕の移動によって、仮想コントローラ113は、(VRアームモデルを介して)VR環境105において同様に移動する。例えば、ユーザの腕が上に移動すると、物理コントローラ112aも上に移動する。したがって、仮想コントローラ113が上に移動する。ユーザの腕が下に移動すると、物理コントローラ112bも下に移動する。したがって、仮想コントローラ113が下に移動する。いくつかの実現例において、各VRアームモデルにおいて、ユーザの腕の移動距離は、仮想コントローラ113の移動距離に対応する。
非限定的な実施形態において、ユーザが物理コントローラ112をHMD106に近づけるように移動すると、VR環境で見られる仮想コントローラ113は、ユーザの視界に近づくようになる。いくつかの実現例において、仮想コントローラ113は、コントローラ自体に関する情報を有し得る。例えば、仮想コントローラ113は、ヘルプ情報、ツールヒント、電池の寿命、電池の使用量および/または他の情報に関する機能を含むことができる。
別の非限定的な実施形態において、仮想オブジェクトがコンベヤベルト上に配置され、ユーザ20に向かって搬送されている場合、ユーザ20は、オブジェクトに向かって物理コントローラ112を下方に移動することによってコントローラ113を操作し、タッチパッド114aを押すことによってコンベアからオブジェクトを掴み、タッチパッド114aを離すことによってオブジェクトを所望の場所に離す。いくつかの実現例において、所望の場所は、オブジェクトを掴んだ場所と同様であってもよい。いくつかの実現例において、所望の場所は、オブジェクトを掴んだ場所と異なってもよい。
図2Cに示されたように、ユーザ20は、手首関節(例えば、関節E)で腕を動かすことができる。この実現例において、矢印90cによって示されたように、ユーザの腕が回転することができる。換言すれば、ユーザの腕は、x軸(例えば、長手軸)を中心にして回転することができる。本明細書に記載の実施形態によれば、手首関節を中心にする左右回転は、手を回転して手の平を露出させ、その後手を回転して手の甲を露出させる動作として示すことができる。ユーザの手首の移動(破線Xを中心とした回転または回転動作)によって、矢印91cによって示されたように、仮想コントローラ113は、(VRアームモデルを介して)VR環境105において同様に移動する。例えば、ユーザの手首が右に移動すると、物理コントローラ112aも右に移動する。したがって、仮想コントローラ113が右に移動する。ユーザの手首が左に移動すると、物理コントローラ112bも左に移動する。したがって、仮想コントローラ113が左に移動する。いくつかの実現例において、各VRアームモデルにおいて、ユーザの手首の移動距離は、仮想コントローラ113の移動距離に対応する。
非限定的な例において、上記のドアの同様の例を用いて、ユーザは、ドアのノブを回すようにドアと対話する場合、114aを押すことによって仮想コントローラ113を操作し、物理コントローラ112を回転させることによって仮想コントローラ113を同様に回転させることができる。この操作によって、VR環境でドアのノブを回すことができる。
いくつかの実現例において、ユーザの腕および/または手首の2つ以上の動作を組み合わせることができる。例えば、ユーザの腕は、少なくとも横方向(図2A)および少なくとも上下(図2B)という順序または逆の順序で動作することができる。別の例において、ユーザの腕は、少なくとも横方向(図2A)および少なくとも左右(図2C)という順序または逆の順序で回転することができる。さらに別の例において、ユーザの腕は、少なくとも上下(図2B)および少なくとも左右(図2C)という順序または逆の順序で回転することができる。
いくつかの実現例において、ユーザの腕および/または手首の3つ以上の動作を組み合わせることができる。例えば、ユーザの腕は、少なくとも横方向(図2A)、少なくとも上下(図2B)および少なくとも左右(図2C)という順序または任意の組み合わせで回転することができる。
図3は、本開示の教示に従って、3次元(3D)VR環境105を作成し、VR環境と対話するための例示的な仮想現実(VR)システム100を示す図である。一般に、システム100は、VR環境105と、人間(例えば、ユーザ、着用者)がVR環境105にアクセス、閲覧、使用および/または相互作用することを可能にするVRコンテンツとを提供することができる。システム100は、コンテンツ、アプリケーション、仮想オブジェクト、実在オブジェクトおよびVR制御にアクセスするためのオプションをユーザに提供することができる。図2A~2Cの例示的なVRシステム100は、HMD106を装着し、手持ち式物理コントローラ112を持っているユーザ20を含むことができる。図2A~2Cに示された例示的なVR環境105は、HMD106内でユーザ20のために表示された画像である。
図3に示すように、VRアプリケーション110は、向きモジュール118と、変換モジュール120と、VRアームモジュール122とを含むことができる。VRアプリケーションまたはその一部は、物理コントローラ112、HMD106および/またはVRシステム108に設けられてもよい。
向きモジュール118は、例えば、1つ以上の慣性測定ユニット(IMU)、光センサ、音声センサ、画像センサ、距離/近接センサ、位置センサおよび/または他のセンサを利用して、仮想環境に対して現実世界または物理環境内の物理コントローラ112の向きを決定することができる。いくつかの実現例において、向きモジュール118は、物理コントローラ112に組み入れてもよい。いくつかの実現例において、向きモジュール118は、センサを介して、物理コントローラ112の向きを決定するように構成されてもよい。別の実現例において、向きモジュール118は、例えば、1つ以上の慣性測定ユニット、光センサ、音声センサ、画像センサ、距離/近接センサ、位置センサおよび/または他のセンサを利用して、仮想環境に対して現実世界または物理環境内のHMD106の物理位置を追跡することができる。いくつかの実現例において、向きモジュール118は、HMD106に組み入れてもよい。いくつかの実現例において、向きモジュール118は、センサを介して、HMD106の位置を決定するように構成されてもよい。
いくつかの実現例において、向きモジュール118は、物理コントローラ112および/またはHMD106に設けられてもよい。いくつかの実現例において、向きモジュール118の動作は、物理コントローラ112および/またはHMD106に実行可能である。
向きモジュール118は、本明細書に記載された任意数のメモリ記憶装置および/またはセンサを利用して、物理コントローラ112、ユーザ、仮想オブジェクトおよびVR環境105内でオブジェクトの移動に関連する区域の向きを決定することができる。向きモジュール118は、物理コントローラ112の向き(例えば、ヨー、ピッチおよび/またはロール)を決定することができる。
向きモジュール118が物理コントローラ112の向きを決定すると、変換モジュール120は、物理コントローラ112の動作をVR環境105に変換することができる。いくつかの実現例において、変換モジュール120は、以下の動作、すなわち、a)横方向動作(例えば、ヨー)、b)上下動作(例えば、ピッチ)および/またはc)左右回転(例えば、ロール)に基づいて、物理コントローラ112の動作を変換することができる。
VRアームモジュール122は、仮想アームモデルを生成することができる。いくつかの実現例において、変換モジュール120は、アームモジュール122によって生成されたアームモデルを用いて、向きモジュール118およびアームモジュール122からの情報に基づいて、仮想コントローラの仮想位置および/または向きを生成することができる。
いくつかの実現例において、向きモジュール118および/または変換モジュール120は、物理コントローラ112が仮想オブジェクトと対話することを可能にすることができる。コントローラとの対話は、仮想オブジェクト上で行われた物理的なジェスチャー(例えば、動作)として理解することができる。例えば、ユーザは、仮想コントローラを操作して、オブジェクトを指すまたは接触することができる。このように実行された動作は、3DOF動作で描写することができる。
例示的なVRシステム108は、ネットワーク101を介してデータを交換することができる任意数のコンピューティング装置および/または電子装置を含むことができる。これらの装置は、クライアントまたはサーバを表し、ネットワーク101または他の任意の追加的および/または代替的なネットワークを介して通信することができる。クライアント装置の例として、HMD106、物理コントローラ112、モバイル装置102(例えば、スマートフォン、PDA(Personal Digital Assistant)、ポータブルメディアプレイヤ)、ラップトップまたはネットブック103、デスクトップコンピュータ104、電子タブレット(図示せず)、カメラ(図示せず)、ゲーム装置(図示せず)、およびネットワーク101または他のネットワークを介して他の電子またはコンピューティング装置もしくは他の電子またはコンピューティングシステムと通信できるもしくはVRコンテンツにアクセスできるまたはVR環境内で動作できる任意の電子またはコンピューティング装置を含むが、これらに限定されない。装置102~104、106および112は、クライアント装置またはサーバ装置を表してもよい。装置102~104、106および112は、クライアントオペレーティングシステムおよび1つ以上のクライアントアプリケーションを実行することができる。1つ以上のクライアントアプリケーションは、VRコンテンツを利用、レンダリング、提供または対応する装置102~104、106および112の各々に含まれるまたは関連するディスプレイ装置上で表示することができる。
VRシステム108は、サーバ装置を表すことができる。一般に、VRシステム108は、コンテンツを格納する任意数のリポジトリおよび/または仮想現実シーンを生成、修正または実行することができる仮想現実ソフトウェアモジュールを含むことができる。図示の例において、VRシステム108は、システム108のコンテンツおよび/または制御を利用および提示するためのVRアプリケーション110を含む。いくつかの実現例において、VRアプリケーション110は、1つ以上の装置102~104上でローカルに実行することができる。VRアプリケーション110は、例えば、いずれかまたは全ての装置102~104上で実行するように構成されてもよく、物理コントローラ112を用いて制御または操作されてもよい。
本開示に記載された特定の実現例は、ユーザが物理コントローラ112を用いてVR環境と対話することを可能にすることができる。例えば、ユーザは、物理コントローラ112を用いて、VR環境内の3D仮想オブジェクトを選択および操作することができる。例示的な物理コントローラ112は、コントローラ装置の構成要素を内部に収容するためのハウジングと、ハウジングの外側に設けられ、ユーザが利用可能なユーザインターフェイス(図示せず)とを含んでもよい。ユーザインターフェイスは、例えば、ユーザのタッチ入力を受け取るように構成されたタッチ感応パネル、ボタン、ノブ、ジョイスティック、トグル、スライドおよび他の操作装置を含む複数の異なる種類の操作装置(図2A~2Cには詳細に示されていない)を含むことができる。
物理コントローラ112は、1つ以上のセンサを含むことができる。これらのセンサは、例えばユーザが物理コントローラ112およびHMD装置106にアクセスすることによって、トリガーされ、VR環境に入力を提供することができる。センサは、タッチスクリーンセンサ、加速度計、ジャイロスコープ、圧力センサ、生体認証センサ、温度センサ、湿度センサ、および環境光センサを含むが、これらに限定されない。物理コントローラ112は、センサを用いて、VR環境において検出された物理コントローラ112の回転を決定することができる。回転は、VR環境への入力として使用することができる。1つの非限定的な例において、物理コントローラ112は、スティック、鉛筆またはペン、描画ツール、コントローラ、リモコン、レーザポインター、携帯電話、ペイントブラシまたは他のオブジェクトとしてVR環境に組み入れてもよい。ユーザによってVR環境に組み入れた(または表された)物理コントローラ112の位置に基づいて、ユーザは、VR環境に特定の仮想オブジェクトを配置すると共に、スティック、ペイントブラシ、鉛筆またはペン、描画ツール、コントローラ、リモコン、レーザポインター、携帯電話、ペイントブラシまたは他のオブジェクトを配置することができる。このような配置は、いくつかの実現例において、アンカポイントを用いたオブジェクトの操作をトリガーすることができる。
HMD装置106は、仮想現実コンテンツを表示することができる仮想現実ヘッドセット、眼鏡、対眼レンズまたは他の装着型装置を表すことができる。動作時に、HMD装置106は、VRアプリケーションを実行して、受信および/または処理した画像をHMD装置106のディスプレイ(図示せず)上でユーザに再生することができる。いくつかの実現例において、VRアプリケーション110は、1つ以上の装置102~104および106にホストされてもよい。
いくつかの実現例において、例示的なHMD装置106は、フレームに連結され、例えばヘッドフォンに設けられたスピーカを含む音声出力装置を備えるハウジングを含むことができる。例示的なHMD装置106において、ハウジングの前部の内側にディスプレイ(図示せず)を設けてもよい。ユーザの目とディスプレイとの間のハウジングにレンズを設けてもよい。いくつかの実現例において、HMD装置106は、例えば、音声センサ、画像/光センサ、位置センサ(例えば、ジャイロスコープおよび加速度計を含む慣性測定ユニット)などの様々なセンサを含む検知システムを含むことができる。HMD装置106は、HMD装置106の操作を容易にするためのプロセッサおよび様々な制御システム装置を含む制御システムをさらに含んでもよい。
いくつかの実現例において、HMD装置106は、静止画像および動画像を撮影するために1つ以上のカメラ(図示せず)を含むことができる。カメラによって撮影された画像を用いて、VR環境に対して、現実世界または物理環境内のユーザおよび/または物理コントローラ112の物理位置の追跡を支援することができ、および/またはこれらの画像をディスプレイ上で透過モードで表示することによって、ユーザは、HMD装置106を取り外すことなくまたはHMD装置106の構成を変更することなく、一時的に仮想環境を離れて物理環境に戻ることができる。
いくつかの実現例において、モバイル装置102は、HMD装置106内に配置および/または設置されてもよい。モバイル装置102は、HMD装置106の表示画面として使用できるディスプレイ装置を含むことができる。モバイル装置102は、VRアプリケーション110を実行するためのハードウェアおよび/またはソフトウェアを含むことができる。いくつかの実現例において、HMD装置106は、ユーザの位置および6自由度の動作を完全に追跡することができる。追跡は、ユーザの手の動作、頭の動作、目の動作、またはユーザの入力に基づいて動作するコントローラの軌跡に基づいて行うことができる。
追加の装置が可能である。これらの装置は、互いに置換できるように構成されてもよい。いくつかの実現例において、装置102~104は、ラップトップまたはデスクトップコンピュータ、スマートフォン、PDA、ポータブルプレイヤ、タブレットコンピュータ、ゲーム装置、またはネットワーク101を介して他のコンピューティング装置またはコンピュータシステムと通信できる他の適切なコンピューティング装置であってもよい。
例示的なシステム100において、例えば、HMD装置106を装置102または装置104に接続することによって、VRシステム108上のVRコンテンツにアクセスするができる。装置102または104は、(有線または無線を介して)VRコンテンツを表示するためのHMD装置106に接続することができる。
いくつかの実現例において、1つ以上のコンテンツサーバ(例えば、VRシステム108)および1つ以上のコンピュータ可読記憶装置は、ネットワーク101を介してコンピューティング装置102~104および106と通信することによって、VRコンテンツを装置102~104および106に提供することができる。いくつかの実現例において、ネットワーク101は、公衆通信ネットワーク(例えば、インターネット、セルラデータネットワーク、ダイヤルアップモデムを含む電話ネットワーク)またはプライベート通信ネットワーク(例えば、プライベートLAN、専用回線)であってもよい。いくつかの実現例において、コンピューティング装置102~108は、1つ以上の高速有線および/または無線通信プロトコル(例えば、802.11バリエーション、Wi-Fi(登録商標)、ブルートゥース(登録商標)、伝送制御プロトコル/インターネットプロトコル(TCP/IP)、イーサネット(登録商標)、IEEE802.3)を用いて、ネットワーク101と通信することができる。
いくつかの実現例において、モバイル装置102は、VRアプリケーション110を実行することができ、VR環境用のコンテンツを提供することができる。いくつかの実現例において、ラップトップコンピューティング装置は、VRアプリケーション110を実行することができ、1つ以上のコンテンツサーバ(例えば、VRシステム108)からコンテンツを提供することができる。1つ以上のコンテンツサーバおよび1つ以上のコンピュータ可読記憶装置は、ネットワーク101を介して、モバイル装置102、ラップトップコンピューティング装置104および/または物理コントローラ112と通信することによって、HMD装置106に表示するためのコンテンツを提供することができる。
図4は、VR環境内のHMD装置106に通信可能に接続された物理コントローラ112を示すブロック図である。システム100は、動作時に、図3に示す装置で操作できる任意数の仮想オブジェクトを収容するためのVR環境を提供するように構成することができる。物理コントローラ112は、インターフェイスを介してHMD装置106に接続することによって、没入型仮想環境を生成することができる。例えば、物理コントローラ112をHMD装置106とペアリングすることによって、装置間の通信を確立することができ、ユーザと没入型VR環境との対話を促進することができる。いくつかの実現例において、物理コントローラ112は、HMD装置106とペアリングされてもよく、VRアプリケーション110内の追跡モジュール116または別の外部追跡装置によって追跡されてもよい。
図4を参照して、物理コントローラ112は、検知システム460および制御システム470を含む。検知システム460は、例えば、光センサ、音声センサ、画像センサ、距離/近接センサ、位置センサ(例えば、ジャイロスコープと加速度計を含む慣性測定ユニット(IMU))を含む1つ以上の異なる種類のセンサ、および/または他のセンサ、および/または例えばユーザの視線を検出および追跡するために配置された画像センサを含む異なるセンサの組み合わせを含むことができる。制御システム470は、例えば、出力/停止制御装置、音声および動画制御装置、光学制御装置、移行制御装置および/または他の装置および/または異なる装置の組み合わせを含むことができる。特定の実装に応じて、検知システム460および/または制御システム470は、より多くの装置またはより少ない装置を含むことができる。
物理コントローラ112は、検知システム460および制御システム470と通信する少なくとも1つのプロセッサ490、メモリ480および通信モジュール450をさらに含むことができる。通信モジュール450は、物理コントローラ112と別の外部装置、例えば別のコントローラおよび/またはHMD装置との間の通信を提供する。
一般に、本開示に記載されたシステムおよび方法は、VR環境において、ユーザの手または物理コントローラ112を追跡し、手および/またはコントローラに関連するユーザの動作を分析することによって、動作の意図を決定することができる。
図5は、本明細書に開示されたVR環境内の仮想コントローラの位置を決定するために実行され得る例示的な方法500を示す。図5の例示的な方法500は、ユーザのHMDの位置を決定すること(ブロック502)から開始し、HMDの位置に基づいて、関節の位置を定めること(ブロック504)、関節からセグメントの端部までのセグメントを定めること(ブロック506)、およびセグメントおよび関節に基づいて、物理コントローラの向きをVR環境内の仮想コントローラの仮想位置および仮想向きに変換すること(ブロック508)を含む。
ブロック502において、ユーザのHMDの位置は、ユーザの頭の中心にあると決定されてもよい。本明細書に記載の実現例によれば、コントローラを持っているユーザは、まっすぐに前を見て、直角で腕を見る必要がある。
ブロック504において、ブロック502で決定されたHMDの位置に基づいて、第1の関節の位置を定めることができる。
ブロック506において、関節(例えば、関節D)からセグメントの端部までのセグメントを定める。いくつかの実現例において、セグメントの端部は、関節(例えば、関節E)に対応する。本明細書に記載の実現例によれば、このセグメントは、ユーザの前腕を表してもよい。セグメントは、関節Dを中心にして動作することができる。いくつかの実現例において、セグメントは、少なくとも横方向(例えば、左右)に沿って、関節(例えば、関節D)を中心にして動作することができる。他の実現例において、セグメントは、少なくとも上下方向に沿って、関節(例えば、関節D)を中心にして動作することができる。
ブロック508において、セグメントおよび関節に基づいて、物理コントローラの位置および向きをVR環境内の仮想コントローラの仮想位置および仮想向きに変換することができる。したがって、仮想コントローラは、物理コントローラと同様に動作することができる。
図5の例示的な方法500または本明細書に開示された他の方法は、機械可読命令として実装され、1つ以上のプロセッサによって実行されることによって、本明細書に開示された例示的なディスプレイ組立体を制御または作動することができる。プロセッサ、コントローラおよび/または任意の他の適切な処理装置を使用、構成および/またはプログラムすることによって、本明細書に開示された例示的な方法を実行および/または実施することができる。例えば、図5の例示的な方法500または本明細書に開示された他の方法は、図3を参照して説明したように、プロセッサ、コンピュータおよび/またはプロセッサを備える他の機械装置によってアクセス可能な有形および/または非一時的なコンピュータ可読媒体に格納されるプログラムコードおよび/または機械可読命令に具現化されてもよい。機械可読命令は、例えば、プロセッサ、コンピュータおよび/またはプロセッサを備える機械装置に1つ以上の特定のプロセスを実行させる命令を含むことができる。図5の例示的な方法500を実施する多くの他の方法、または本明細書に開示された他の方法を採用することができる。例えば、実行の順序を変更することができ、および/または説明した1つ以上のブロックおよび/または相互作用を変更、削除または細分するもしくは組み合わせることができる。さらに、図5の例示的な方法500の全体または本明細書に開示された他の方法のいずれかは、例えば、別個の処理スレッド、プロセッサ、装置、個別のロジックまたは回路によって連続的におよび/または並行に実行されてもよい。
図6は、本明細書に開示されたVR環境内の仮想コントローラの位置を決定するために実行され得る別の例示的な方法600を示す。図6の例示的な方法500は、ユーザのHMDの位置を決定すること(ブロック602)から開始し、HMDの位置に基づいて、関節の位置を定めること(ブロック604)、関節からセグメントの端部までのセグメントを定めること(ブロック606)、セグメントの端部の位置に基づいて、仮想環境内の仮想コントローラの初期仮想位置を定めること(ブロック608)、およびセグメントおよび関節に基づいて、物理コントローラの向きの変化に応じて、仮想環境内の仮想コントローラの仮想位置および仮想向きを定めること(ブロック610)を含む。
図7Aおよび図7Bは、例示的な実施形態に従って、第三者によって見られた場合の、ユーザが関節に対して動作することを示す概略図である。図7Aは、第1の関節D1に関連する第1の位置にいるユーザ20を示している。図7Bは、第1の関節D2に関連する異なる第2の位置にいるユーザ20を示している。
いくつかの実現例において、前述したように、関節D1の位置は、ユーザの頭部A1(またはHMD)の一部(例えば、中心)から関節D1(例えば、肘関節)までの距離を測定することによって決定されてもよい。例えば、前述したように、関節D1の位置は、関節D1の位置を取得するためのセグメント(例えば、セグメント11、13および15)によって決定されてもよい。
図7Aに示すように、ユーザ20は、線Xによって規定されるように前方を見ており、コントローラ212も(例えば、線Xと平行な)前方位置にある。この位置は、第1の位置として定義することができる。いくつかの実現例において、第1の位置には、ユーザ20の腕が直角になっている。具体的には、側面から見たときに、例えば、第1のセグメント(例えば、セグメント15)は、第2のセグメント(例えば、セグメント17)に直交する。関節E1は、ユーザの腕の端部に位置する。関節E1の位置を用いて、コントローラ212の位置を決定することができる。
いくつかの実現例において、ユーザ20の第1の位置は、肩関節(例えば、関節C)の位置を決定することを含むことができる。いくつかの実現例において、肩関節は、ユーザを第1の位置に整列することを援助することができる。本明細書に記載の実現例において、肩関節と関節D1との間のセグメント15がセグメント17と直角になっているため、上方から見る場合に、肩関節と関節D1とは、同一の位置にある。
非限定的な例において、ユーザ20が第1の位置にいる(例えば、まっすぐに前を見ている)間に、ユーザ20は、少なくとも肩関節の位置に基づいて、ユーザの顔に近づくようにコントローラ212を移動する場合がある。これによって、VR環境内の仮想コントローラは、同様に(例えば、VR環境でユーザの顔に近づくように)移動することができる。肩をまっすぐに(または関節D1を静止に)維持しながら、ユーザ20は、VR環境で仮想コントローラを移動することなく(例えば、ユーザの顔の前方に静止にしたまま)頭を左右に回すことができる。肩(または関節D1)が静止(例えば、不動、動かない、固定)に維持されているあるため、ユーザ20が頭を回しても、仮想コントローラも静止に維持される。したがって、コントローラをさらに調整する必要がない。
いくつかの実現例において、ユーザおよび/または物理コントローラの角速度は、仮想コントローラの移動を決定することができる。本明細書に記載の実現例において、角速度は、時間に対して変異する角度の変化率を測る。換言すれば、ユーザおよび/または物理コントローラが時間に対して移動する速度を測る。移動量が角速度の特定の閾値(例えば、条件)を満たす(例えば満足する)場合、仮想コントローラが移動した可能性がある。例えば、上記の同様の例を使用すると、肩の位置が静止に維持したまま、ユーザ20が比較的速く頭を左または右に回す場合、特定の角速度の閾値(または条件)が満たされているため、システムおよび方法は、仮想コントローラが元の位置および向きに維持されていると判断することができる。
一方、別の非限定的な例において、(角速度の条件を満たさないように)ユーザが比較的遅く頭を回す場合、システムおよび方法は、ユーザの位置が変更された可能性があると判断することができる。したがって、仮想コントローラの位置を移動する。
別の非限定的な例において、(角速度の条件を満たすように)ユーザが物理コントローラを比較的速く(例えば、上下に)移動する場合、特定の角速度の閾値(または条件)が満たされているため、システムおよび方法は、仮想コントローラが元の位置および向きに維持されていると判断することができる。
一方、別の非限定的な例において、(角速度条件を満たすように)ユーザが物理コントローラを比較的遅く(例えば、上下に)移動する場合、システムおよび方法は、ユーザの動作に基づいて、仮想コントローラの位置が変更された可能性があると判断することができる。
いくつかの実現例において、ユーザおよび物理コントローラの角速度の両方を用いて、仮想コントローラを移動するか否かを判断することができる。例えば、閾値(または条件)を満たすように、ユーザが頭および物理コントローラを同時に比較的速く移動する場合、システムおよび方法は、仮想コントローラを所定の位置に移動することを判断することができる。
図7Bに示すように、ユーザ20が関節A1で位置を移動する(例えば、体を概ね右に回す)と、第1の位置に関連する関節D1が移動し、関節(この場合、関節D2)も同様の距離および/または向きで移動する。その結果、関節E1の位置は、同様の距離および/または向きで(例えば、E2に)移動する。関節D1(および関節E1)の位置は、動的である。これは、ユーザ20の位置が変化すると、関節D1(および関節E1)が移動することを意味する。この例示的な実現例に示されているように、ユーザ20は、例えば、肩に関連して、約30度で回転している。いくつかの他の実現例において、ユーザは、例えば、肩に関連して、0~360度の間の角度で回転することができる。
いくつかの実現例において、HMD106および/または物理コントローラ112を再調整(例えば、再度中心に配置)することができる。本明細書に記載の実現例によれば、再調整は、ユーザ20および物理コントローラ112の位置を前方位置および/または前方視位置に設定することである。いくつかの実現例において、再調整は、物理コントローラ112に対するHMD106の所定位置、より具体的には、第2の関節の位置に対するユーザの位置(例えば、E1)に基づいて実行されてもよい。
いくつかの実現例において、HMD106および/または物理コントローラ112を再調整するために、ユーザ20は、物理コントローラ112上のキーを操作して、HMD106および/またはの位置および/または向きをリセットすることができる。例えば、ユーザ20は、物理コントローラ112のホームボタン114aを押して、物理コントローラ112の位置および/または向きをリセットすることができる。
図1に示すように、本明細書に記載の実現例に係るシステムおよび方法は、z軸(例えば、縦軸)のみに沿った動作を再調整することができる。図1に示されたx軸(例えば、横軸)および図1に示されたx軸(例えば、前後軸)に沿った動作は、同じ平面上で横方向に(例えば、左右に)移動しないため、一般に再調整する必要がない。
図8を参照して、図8は、本明細書に記載の技術を実施するために使用できる汎用コンピュータ装置P00および汎用モバイルコンピュータ装置P50の例を示す図である。コンピューティング装置P50は、HMD106、物理コントローラ112、装置102~108およびコントローラ110を含むがこれらに限定されない本明細書に開示された装置のいずれかを実装するために使用することができる。コンピューティング装置P00は、ラップトップ、デスクトップ、ワークステーション、PDA、テレビ、サーバ、ブレードサーバ、メインフレームおよび他の適切なコンピュータなどの様々な形態のデジタルコンピュータを表すように意図されている。コンピューティング装置P50は、PDA、携帯電話、スマートフォンおよび他の類似するコンピューティング装置などの様々な形態のモバイル装置を表すように意図されている。図示された構成要素、それらの接続および関係並びにそれらの機能は、例示的なものに過ぎず、本明細書に記載および/または請求される発明の実施を限定するものではない。
コンピューティング装置P00は、プロセッサP02と、メモリP04と、記憶装置P06と、メモリP04および高速拡張ポートP10を連結する高速インターフェイスP08と、低速バスP14および記憶装置P06を連結する低速インターフェイスP12とを含む。プロセッサP02は、半導体ベースのプロセッサであってもよい。メモリP04は、半導体ベースのメモリであってもよい。構成要素P02、P04、P06、P08、P10およびP12は、様々なバス、接続、メモリ、キャッシュなどを使用して相互に接続され、共通のマザーボード上に実装されてもよく、または適切な他の方法で実装されてもよい。プロセッサP02は、メモリP04または記憶装置P06に記憶された命令を含むコンピューティング装置P00内に実行される命令を処理することによって、外部入力/出力装置のGUIに、例えば高速インターフェイスP08に接続された発光部P16にグラフィック情報を表示することができる。他の実施態様において、複数のプロセッサおよび/または複数のバスは、複数のメモリおよび複数種類のメモリと共に、適切に使用されることができる。また、各装置が(例えば、サーババンク、一群のブレードサーバ、またはマルチプロセッサシステムとして)必要な動作の一部を実行するように、複数のコンピューティング装置P00を接続することができる。
メモリP04は、コンピューティング装置P00に情報を格納する。一実現例において、メモリP04は、揮発性メモリユニットである。別の実現例において、メモリP04は、不揮発性メモリユニットである。メモリP04は、別の形態のコンピュータ可読媒体、例えば、磁気ディスクまたは光ディスクであってもよい。
記憶装置P06は、コンピューティング装置P00に大容量の記憶を提供することができる。一実現例において、記憶装置P06は、例えば、フロッピー(登録商標)ディスク装置、ハードディスク装置、光学ディスク装置、テープディスク装置、フラッシュメモリまたは他の同様の固体メモリ装置、または記憶エリアネットワークまたは他の構成内の装置を含むアレイ記憶装置などのコンピュータ可読媒体を含むことができる。コンピュータプログラム製品は、情報担体に有形的に具体化することができる。また、コンピュータプログラム製品は、命令を含むことができる。これらの命令は、実行されると、上述したような1つ以上の方法を実行することができる。情報担体は、例えば、メモリP04、記憶装置P06、またはプロセッサP02上のメモリなどのコンピュータ可読媒体または機械可読媒体である。
高速コントローラP08は、コンピューティング装置P00の高速の帯域幅集約動作を管理し、低速コントローラP12は、低速の帯域幅集約動作を管理する。このような機能の割り当ては、例示に過ぎない。一実現例において、高速コントローラP08は、メモリP04、(例えば、グラフィックプロセッサまたはアクセラレータを介して)発光部P16、および様々な拡張カード(図示せず)を挿入できる高速拡張ポートP10に連結される。この実現例において、低速コントローラP12は、記憶装置P06および低速拡張ポートP14に連結される。様々な通信ポート(例えば、USB、ブルートゥース(登録商標)、イーサネット(登録商標)、Wi-Fi(登録商標))を含み得る低速拡張ポートは、例えば、キーボード、ポインティング装置、スキャナなどの1つ以上の入出力装置に連結されてもよく、またはネットワークアダプタを介して、スイッチまたはルータなどのネットワーキング装置に連結されてもよい。
図示のように、コンピューティング装置P00は、いくつかの異なる形態で実装されることができる。例えば、コンピューティング装置P00は、標準サーバP20として実装されてもよく、または標準サーバのグループ内に複数回実装されてもよい。また、コンピューティング装置P00は、サーバラックシステムP24の一部として実装されてもよい。さらに、コンピューティング装置P00は、ラップトップコンピュータP22のようなパーソナルコンピュータに実装されてもよい。代替的には、コンピューティング装置P00の要素は、装置P50などのモバイル装置(図示せず)内の他の要素と組み合わてもよい。このような装置の各々は、1つ以上のコンピューティング装置P00、P50を含むことができ、システムの全体は、互いに通信できる複数のコンピューティング装置P00、P50から構成されることができる。
コンピューティング装置P50は、プロセッサP52、メモリP64、発光部P54などの入出力装置、通信インターフェイスP66、およびトランシーバP68を含む。装置P50は、追加の記憶を提供するために、マイクロドライブまたは他の素子などの記憶装置を備えることもできる。要素P50、P52、P64、P54、P66およびP68は、様々なバスを介して相互に接続され、一部の要素は、共通のマザーボード上に実装されてもよく、または適切な他の方法で実装されてもよい。
プロセッサP52は、メモリP64に格納された命令を含むコンピューティング装置P50内の命令を実行することができる。このプロセッサは、互いに独立している複数のアナログプロセッサおよびデジタルプロセッサを備えるチップのチップセットとして実装されてもよい。このプロセッサは、装置P50の他の要素の協調、例えば、ユーザインターフェイスの制御、装置P50によるアプリケーションの実行、および装置P50による無線通信を提供することができる。
プロセッサP52は、制御インターフェイスP58および発光部P54に結合された発光部インターフェイスP56を介してユーザと通信することができる。発光部P54は、例えば、TFT LCD(薄膜トランジスタ液晶発光部)またはOLED(有機発光ダイオード)発光部、または他の適切な発光部を使用することができる。発光部インターフェイスP56は、グラフィック情報および他の情報をユーザに表示するために、発光部P54を駆動する適切な回路を含むことができる。制御インターフェイスP58は、ユーザからの指令を受信し、変換してからプロセッサP52に提供することができる。また、プロセッサP52と通信するように外部インターフェイスP62を設けることによって、装置P50は、他の装置と近距離通信を行うことができる。外部インターフェイスP62は、例えば、いくつかの実現例において有線通信を提供することができ、他の実現例において無線通信を提供することができる。複数のインターフェイスを使用することもできる。
メモリP64は、コンピューティング装置P50に情報を格納する。メモリP64は、コンピュータ可読媒体、揮発性メモリユニット、または不揮発性メモリユニットのうち、1つまたは複数として実装することができる。拡張メモリP74は、例えば、SIMM(Single In Line Memory Module)カードインターフェイスを含む拡張インターフェイスP72を介して、装置P50に提供され、接続されてもよい。具体的には、拡張メモリP74は、上述したプロセスを実行するまたは補足するための命令を格納することができ、セキュリティ情報を格納することもできる。したがって、拡張メモリP74は、例えば、装置P50のセキュリティモジュールとして提供されてもよく、装置P50の安全使用を可能にする命令でプログラムされてもよい。さらに、SIMMカードを介して、追加情報と共に、セキュリティアプリケーションを配置することができる。例えば、ハッキングできない方法で、SIMMカード上に識別情報を配置することができる。
以下に説明するように、メモリは、例えば、フラッシュメモリおよび/またはNVRAMメモリを含むことができる。一実現例において、コンピュータプログラム製品は、情報担体に有形的に具体化される。コンピュータプログラム製品は、命令を含み、これらの命令は、実行されると、上述したような1つ以上の方法を実行する。情報担体は、例えば、メモリP64、拡張メモリP74、またはプロセッサP52上のメモリなどのコンピュータ可読媒体または機械可読媒体であり、トランシーバP68または外部インターフェイスP62を介して受信動作を実行してもよい。
装置P50は、必要に応じてデジタル信号処理回路を含む通信インターフェイスP66を介して無線通信を行うことができる。通信インターフェイスP66は、とりわけ、GSM(登録商標)通話、SMS、EMS、またはMMSメッセージング、CDMA、TDMA、PDC、WCDMA(登録商標)、CDMA2000、またはGPRSなどの様々なモードまたはプロトコルに基づいて、通信を提供することができる。このような通信は、例えば、高周波トランシーバP68を介して行われてもよい。また、ブルートゥース(登録商標)、Wi-Fi(登録商標)、または他のトランシーバ(図示せず)を用いて、短距離通信を行うことができる。さらに、GPS(全地球測位システム)受信モジュールP70は、追加のナビゲーション関連無線データおよび位置関連無線データを装置P50に提供することができる。これらの無線データは、装置P50上で動作するアプリケーションに適宜に使用される。
また、装置P50は、音声コーデックP60を使用して音声通信を行うことができる。音声コーデックP60は、ユーザから受信した音声情報を使用可能なデジタル情報に変換することができる。同様に、音声コーデックP60は、例えば、装置P50の送受話器内のスピーカを介して、ユーザに可聴な音声を生成することができる。このような音声は、音声電話からの音声を含むことができ、記録された音声(例えば、音声メッセージ、音楽ファイル)を含むことができ、装置P50上で動作するアプリケーションによって生成された音声を含むこともできる。
図示のように、コンピューティング装置P50は、いくつかの異なる形態で実装されることができる。例えば、コンピューティング装置P50は、携帯電話P80として実装されてもよく、スマートフォンP82、PDAまたは他の類似するモバイル装置の一部として実装されてもよい。
本明細書に記載のシステムおよび技術の様々な実装は、デジタル電子回路、集積回路、特別に設計されたASIC(特定用途向け集積回路)、コンピュータハードウェア、ファームウェア、ソフトウェアおよび/またはそれらの組み合わせで実現することができる。これらの様々な実装は、プログラム可能なシステム上で実行可能および/または解釈可能な1つ以上のコンピュータプログラムにおける実装を含むことができる。このプログラム可能なシステムは、記憶システムからデータおよび命令を受信し、データおよび命令を記憶システムに送信するように記憶システムに連結された少なくとも1つのプログラム可能な専用または汎用のプロセッサ、少なくとも1つの入力装置、および少なくとも1つの出力装置を含む。
(プログラム、ソフトウェア、ソフトウェアアプリケーションまたはコードとしても知られている)これらのコンピュータプログラムは、プログラム可能なプロセッサ用の機械命令を含み、高度な手続き型プログラミング言語および/または高度なオブジェクト指向プログラミング言語で実装することができ、および/またはアセンブリ言語/機械言語で実装することができる。「機械可読媒体」という用語は、本明細書に使用された場合、プログラム可能なプロセッサに機械命令および/またはデータを提供するために使用された機械可読信号としての機械命令を受け取る機械可読媒体を含む任意のコンピュータプログラム製品、機械および/または装置(例えば、磁気ディスク、光学ディスク、メモリ、プログラム可能な論理装置(PLD))を指す。「機械可読信号」という用語は、機械命令および/またはデータをプログラム可能なプロセッサに提供するために使用された任意の信号を指す。
方法ステップは、入力データを処理して出力を生成することによって機能するようにコンピュータプログラムを実行する1つ以上のプログラム可能なプロセッサによって、実施されてもよい。また、方法ステップは、専用ロジック回路、例えば、FPGA(フィールドプログラマブルゲートアレイ)またはASIC(特定用途向け集積回路)に実装され得る装置よって実行されてもよい。
コンピュータプログラムの処理に適したプロセッサは、例として、汎用マイクロプロセッサおよび専用マイクロプロセッサの両方並びに任意の種類のデジタルコンピュータの任意の1つ以上のプロセッサを含む。一般に、プロセッサは、読み取り専用メモリまたはランダムアクセスメモリもしくはその両方から命令およびデータを受け取る。コンピュータの構成要素は、命令を実行するための少なくとも1つのプロセッサと、命令およびデータを格納するための1つ以上のメモリ装置を含むことができる。一般に、コンピュータは、データを格納するための1つ以上の大容量記憶装置、例えば磁気ディスク、光磁気ディスクまたは光ディスクを含んでもよく、または1つ以上の大容量記憶装置、例えば磁気ディスク、光磁気ディスクまたは光ディスクからデータを受信または転送するようにそれらと動作可能に接続されてもよい。コンピュータプログラムの命令およびデータを具体化するのに適した情報担体は、例として、例えばEPROM、EEPROMおよびフラッシュメモリ装置のような半導体メモリ装置、例えば内蔵ハードディスクまたは取り外し可能なディスクのような磁気ディスク、光磁気ディスク、およびCD-ROMまたはDVD-ROMディスクを含むあらゆる形態の不揮発性メモリを含む。プロセッサおよびメモリは、特殊用途の論理回路によって補足されてもよく、特殊用途の論理回路に組み入れてもよい。
ユーザと情報交換を行うために、本明細書に記載のシステムおよび技術は、発光素子(例えば、CRT(ブラウン管)モニタまたはLCD(液晶発光)モニタ)と、キーボードと、ポインティング装置(例えば、マウスまたはトラックボール)とを含むコンピュータ上で実装することができる。発光素子は、情報を表示することができ、ユーザは、キーボードとポインティング装置とを用いて、コンピュータに入力を提供することができる。他の種類の装置を使用して、ユーザと情報交換を行うこともできる。例えば、ユーザに与えるフィードバックは、任意の形の感覚フィードバック(例えば、視覚フィードバック、聴覚フィードバック、または触覚フィードバック)であってもよく、ユーザから受け入れる入力は、音響入力、音声入力、または触覚入力を含む任意の形態であってもよい。
本明細書に記載のシステムおよび技術は、バックエンド要素(例えば、データサーバ)を含むコンピューティングシステム、またはミドルウェア要素(例えば、アプリケーションサーバ)を含むコンピューティングシステム、またはフロントエンド要素(例えば、ユーザが本明細書に記載のシステムおよび技術の実装と情報交換を行うことができるグラフィカルユーザインターフェイスまたはウェブブラウザを含むクライアントコンピュータ)を含むコンピューティングシステム、またはバックエンド要素、ミドルウェア要素およびフロントエンド要素の任意の組み合わせを含むコンピューティングシステムに実装されてもよい。これらのシステム要素は、任意の形式または媒体のデジタルデータ通信(例えば、通信ネットワーク)によって相互接続することができる。通信ネットワークの例は、ローカルエリアネットワーク(LAN)、ワイドエリアネットワーク(WAN)およびインターネットを含む。
コンピューティングシステムは、クライアントおよびサーバを含むことができる。クライアントとサーバとは、一般的に互いに遠隔であり、典型的には通信ネットワークを介して情報交換を行う。クライアントとサーバとの関係は、各々のコンピュータ上で動作しており、互いにクライアント-サーバ関係を有するコンピュータプログラムに依存する。
非限定的例として、「約」、「実質的に」および「一般に」などの用語は、本明細書に使用された場合、その精確な値または範囲が不要であり、指定する必要がないことを示す。これらの用語は、本明細書に使用された場合、当業者にとって明白な意味を有する。
また、上、下、左、右、上部、下部、横方向、端部、前部および後部などの用語は、本明細書に使用された場合、現在の向きまたは図示された向きを基準にしたことを意味する。別の向きを基準にした場合、これらの用語を修正しなければならない。
また、本明細書および添付の特許請求の範囲において、文脈上他の意味を明記しない限り、単数形は、複数形のものを除外しない。また、「および」、「または」および「および/または」などの接続詞は、文脈上他の意味を明記しない限り、包括的な意味を有する。例えば、「Aおよび/またはB」は、Aのみ、Bのみ、およびAとBを含む。
さらに、様々な添付図面に示された接続線およびコネクタは、様々な要素間の例示的な機能的関係および/または物理的または論理的結合を表すことを意図している。理解すべきことは、多くの代替および/または追加の機能的関係、物理的接続または論理的接続が存在してもよいことである。さらに、要素が「必須」または「重要」であると明白に記載されていない限り、このような要素は、本開示の実施に不可欠ではない。さらに、図面は、縮尺通りに描かれておらず、例示および説明を明確にするために描かれている。
本明細書は、特定の方法、装置および製品の例を説明したが、本発明の範囲は、これらの例示に限定されない。本明細書に使用された用語は、特定の特徴を説明するためのものであり、限定することを意図していない。本発明は、特許請求の範囲に含まれる全ての方法、装置および製品を含む。

Claims (19)

  1. コンピュータが実行する方法であって、
    測位センサの出力に基づいて、物理コントローラを把持するユーザのヘッドマウントディスプレイ(HMD)の位置を決定することと、
    前記HMDの前記位置から所定の距離に基づいて、関節の位置を定めることと、
    前記関節からセグメントを定めることと、
    前記セグメントの端部の位置に基づいて、仮想環境内の仮想コントローラの位置を定めることとを備え、前記物理コントローラは前記端部にあり、
    前記セグメントの長さおよび前記関節における前記セグメントの向きに基づいて、前記物理コントローラの位置および向きを、前記仮想環境内の前記仮想コントローラの仮想位置および仮想向きに変換することとを含む、コンピュータ実行方法。
  2. 前記仮想コントローラは、前記物理コントローラのヨー運動に応じて、横方向に沿って移動するように構成されている、請求項1に記載のコンピュータ実行方法。
  3. 前記仮想コントローラは、前記物理コントローラのピッチ運動に応じて、縦方向に沿って移動するように構成されている、請求項1または2に記載のコンピュータ実行方法。
  4. 前記仮想コントローラは、前記物理コントローラのロール運動に応じて、前記物理コントローラの長手方向の軸に対応する当該仮想コントローラの軸を中心にして回転するように構成されている、請求項1から3のいずれかに記載のコンピュータ実行方法。
  5. 前記セグメントは、第1のセグメントであり、
    前記関節は、第1の関節であり、
    前記方法は、前記第1のセグメントの端部に位置する第2の関節から延在する第2のセグメントを定めることをさらに含む、請求項1から4のいずれかに記載のコンピュータ実行方法。
  6. 前記第2のセグメントは、前記第2の関節を中心にして回転するように構成されている、請求項5に記載のコンピュータ実行方法。
  7. 前記測位センサの出力により前記HMDの位置が検出された場合、前記関節の前記位置を再び定めることをさらに含む、請求項1から6のいずれかに記載のコンピュータ実行方法。
  8. コンピュータが実行する方法であって、
    測位センサの出力に基づいて、物理コントローラを把持するユーザのヘッドマウントディスプレイ(HMD)の位置を決定することと、
    前記HMDの前記位置に基づいて、関節の位置を定めることと、
    前記関節からセグメントの端部までのセグメントを定めることと、
    前記セグメントの前記端部の位置に基づいて、仮想現実(VR)環境内の仮想コントローラの初期仮想位置を定めることとを備え、前記物理コントローラは前記端部にあり、
    前記セグメントの長さおよび前記関節における前記セグメントの向きに基づいて、前記物理コントローラの向きの変化に応じて、前記VR環境内の前記仮想コントローラの仮想位置および仮想向きを定めることとを含む、コンピュータ実行方法。
  9. 前記仮想コントローラは、前記物理コントローラのヨー運動に応じて、横方向に沿って移動するように構成されている、請求項8に記載のコンピュータ実行方法。
  10. 前記仮想コントローラは、前記物理コントローラのピッチ運動に応じて、縦方向に沿って移動するように構成されている、請求項8または9に記載のコンピュータ実行方法。
  11. 前記仮想コントローラは、前記物理コントローラのロール運動に応じて、前記物理コントローラの長手方向の軸に対応する当該仮想コントローラの軸を中心にして回転するように構成されている、請求項8から10のいずれか1項に記載のコンピュータ実行方法。
  12. 前記セグメントは、第1のセグメントであり、
    前記関節は、第1の関節であり、
    前記方法は、前記第1のセグメントの端部に位置する第2の関節から延在する第2のセグメントを定めることをさらに含む、請求項8から11のいずれか1項に記載のコンピュータ実行方法。
  13. 前記測位センサの出力により前記HMDの位置が検出された場合、前記関節の前記位置を再び定めることをさらに含む、請求項8から12のいずれか1項に記載のコンピュータ実行方法。
  14. 装置であって、
    仮想現実(VR)環境を表示するように使用されたヘッドマウントディスプレイ(HMD)と、
    前記VR環境内のオブジェクトと対話するように構成された物理コントローラと、
    プロセッサとを備え、
    前記プロセッサは、
    測位センサの出力に基づいて、物理コントローラを把持するユーザの前記HMDの位置を決定し、
    前記HMDの前記位置から所定の距離に基づいて、関節の位置を定め、
    前記関節からセグメントを定め、
    前記セグメントの端部の位置に基づいて、仮想環境内の仮想コントローラの位置を定めるようにプログラムされており、前記物理コントローラは前記端部にあり、
    前記セグメントの長さおよび前記関節における前記セグメントの向きに基づいて、前記物理コントローラの位置および向きに応じて、前記仮想環境内の前記仮想コントローラの仮想位置および仮想向きを定めるようにプログラムされている、装置。
  15. 前記仮想コントローラは、前記物理コントローラのヨー運動に応じて、横方向に沿って移動するように構成されている、請求項14に記載の装置。
  16. 前記仮想コントローラは、前記物理コントローラのピッチ運動に応じて、縦方向に沿って移動するように構成されている、請求項14または15に記載の装置。
  17. 前記仮想コントローラは、前記物理コントローラのロール運動に応じて、前記物理コントローラの長手方向の軸を中心にして回転するように構成されている、請求項14から16のいずれか1項に記載の装置。
  18. 前記プロセッサは、前記測位センサの出力により前記ユーザの位置が検出された場合、前記関節の前記位置を再び定めるようにさらにプログラムされている、請求項14から17のいずれか1項に記載の装置。
  19. 請求項1から13のいずれか1項に記載の方法をコンピュータに実行させるためのプログラム。
JP2019570391A 2017-09-18 2018-09-17 仮想現実システム内の仮想コントローラの位置および向きの追跡 Active JP7030854B2 (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2021166315A JP7382994B2 (ja) 2017-09-18 2021-10-08 仮想現実システム内の仮想コントローラの位置および向きの追跡

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US15/708,040 2017-09-18
US15/708,040 US10386938B2 (en) 2017-09-18 2017-09-18 Tracking of location and orientation of a virtual controller in a virtual reality system
PCT/US2018/051361 WO2019055929A1 (en) 2017-09-18 2018-09-17 MONITORING THE LOCATION AND ORIENTATION OF A VIRTUAL CONTROL DEVICE IN A VIRTUAL REALITY SYSTEM

Related Child Applications (1)

Application Number Title Priority Date Filing Date
JP2021166315A Division JP7382994B2 (ja) 2017-09-18 2021-10-08 仮想現実システム内の仮想コントローラの位置および向きの追跡

Publications (3)

Publication Number Publication Date
JP2020529646A JP2020529646A (ja) 2020-10-08
JP2020529646A5 JP2020529646A5 (ja) 2021-12-02
JP7030854B2 true JP7030854B2 (ja) 2022-03-07

Family

ID=63963384

Family Applications (2)

Application Number Title Priority Date Filing Date
JP2019570391A Active JP7030854B2 (ja) 2017-09-18 2018-09-17 仮想現実システム内の仮想コントローラの位置および向きの追跡
JP2021166315A Active JP7382994B2 (ja) 2017-09-18 2021-10-08 仮想現実システム内の仮想コントローラの位置および向きの追跡

Family Applications After (1)

Application Number Title Priority Date Filing Date
JP2021166315A Active JP7382994B2 (ja) 2017-09-18 2021-10-08 仮想現実システム内の仮想コントローラの位置および向きの追跡

Country Status (6)

Country Link
US (1) US10386938B2 (ja)
EP (1) EP3685248B1 (ja)
JP (2) JP7030854B2 (ja)
KR (1) KR102338836B1 (ja)
CN (1) CN110603510B (ja)
WO (1) WO2019055929A1 (ja)

Families Citing this family (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
EP3762809A4 (en) * 2018-03-07 2021-12-01 University of Massachusetts Medical School Office Of Technology Management SYSTEM TO FACILITATE VOICE-BASED COMMUNICATION FOR PEOPLE WHO CANNOT SPEAK OR WRITE
US20190385372A1 (en) * 2018-06-15 2019-12-19 Microsoft Technology Licensing, Llc Positioning a virtual reality passthrough region at a known distance
US11126341B2 (en) * 2019-02-21 2021-09-21 Htc Corporation Object manipulating method, host device and computer readable storage medium
US11086392B1 (en) * 2019-04-09 2021-08-10 Facebook Technologies, Llc Devices, systems, and methods for virtual representation of user interface devices
US11373374B2 (en) * 2019-11-07 2022-06-28 Volvo Car Corporation Aligning the augmented reality or virtual reality world with the real world using natural position understanding
US11554320B2 (en) * 2020-09-17 2023-01-17 Bogie Inc. System and method for an interactive controller
CN113318435A (zh) * 2021-04-27 2021-08-31 青岛小鸟看看科技有限公司 手柄控制追踪器的控制方法、装置及头戴式显示设备
JP2023120843A (ja) * 2022-02-18 2023-08-30 株式会社ソニー・インタラクティブエンタテインメント 情報処理装置およびデバイス位置推定方法

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2001236520A (ja) 2000-02-21 2001-08-31 Nippon Telegr & Teleph Corp <Ntt> 仮想空間における動作入力方法および装置およびその動作入力プログラムを記録した記録媒体および仮想空間システム
JP2016126500A (ja) 2014-12-26 2016-07-11 Kddi株式会社 ウェアラブル端末装置およびプログラム
JP2017045443A (ja) 2015-08-28 2017-03-02 株式会社タカラトミー 頭部装着型ディスプレイを備えた情報処理装置

Family Cites Families (37)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6104379A (en) * 1996-12-11 2000-08-15 Virtual Technologies, Inc. Forearm-supported exoskeleton hand-tracking device
US6042555A (en) * 1997-05-12 2000-03-28 Virtual Technologies, Inc. Force-feedback interface device for the hand
US7472047B2 (en) * 1997-05-12 2008-12-30 Immersion Corporation System and method for constraining a graphical hand from penetrating simulated graphical objects
US7324085B2 (en) 2002-01-25 2008-01-29 Autodesk, Inc. Techniques for pointing to locations within a volumetric display
US10936074B2 (en) 2003-11-20 2021-03-02 National Institute Of Advanced Industrial Science And Technology Haptic information presentation system and method
US20160098095A1 (en) * 2004-01-30 2016-04-07 Electronic Scripting Products, Inc. Deriving Input from Six Degrees of Freedom Interfaces
US20080009771A1 (en) * 2006-03-29 2008-01-10 Joel Perry Exoskeleton
US9082213B2 (en) * 2007-11-07 2015-07-14 Canon Kabushiki Kaisha Image processing apparatus for combining real object and virtual object and processing method therefor
JP5287421B2 (ja) * 2009-03-27 2013-09-11 株式会社Jvcケンウッド 入力装置及びこれを用いた電子機器
US20110267356A1 (en) * 2010-04-29 2011-11-03 Rennuit Antoine F Lix Robert Animating a virtual object within a virtual world
US20110267357A1 (en) * 2010-04-29 2011-11-03 Rennuit Antoine Felix Robert Animating a virtual object within a virtual world
US9177409B2 (en) * 2010-04-29 2015-11-03 Naturalmotion Ltd Animating a virtual object within a virtual world
US8483877B2 (en) * 2010-09-03 2013-07-09 GM Global Technology Operations LLC Workspace safe operation of a force- or impedance-controlled robot
US9552673B2 (en) 2012-10-17 2017-01-24 Microsoft Technology Licensing, Llc Grasping virtual objects in augmented reality
CN109799900B (zh) * 2012-11-01 2023-02-28 艾卡姆有限公司 手腕可安装计算通信和控制设备及其执行的方法
US20140152558A1 (en) * 2012-11-30 2014-06-05 Tom Salter Direct hologram manipulation using imu
US9202313B2 (en) * 2013-01-21 2015-12-01 Microsoft Technology Licensing, Llc Virtual interaction with image projection
WO2014204330A1 (en) 2013-06-17 2014-12-24 3Divi Company Methods and systems for determining 6dof location and orientation of head-mounted display and associated user movements
US9437159B2 (en) * 2014-01-25 2016-09-06 Sony Interactive Entertainment America Llc Environmental interrupt in a head-mounted display and utilization of non field of view real estate
US9649558B2 (en) * 2014-03-14 2017-05-16 Sony Interactive Entertainment Inc. Gaming device with rotatably placed cameras
US10416760B2 (en) * 2014-07-25 2019-09-17 Microsoft Technology Licensing, Llc Gaze-based object placement within a virtual reality environment
KR102299364B1 (ko) * 2014-08-25 2021-09-07 삼성전자주식회사 웨어러블 디바이스의 센서가 측정하는 임피던스 값을 보정하는 방법 및 장치
US9690367B2 (en) 2014-12-10 2017-06-27 Sixense Entertainment, Inc. System and method for assisting a user in locating physical objects while the user is in a virtual reality environment
US10725297B2 (en) * 2015-01-28 2020-07-28 CCP hf. Method and system for implementing a virtual representation of a physical environment using a virtual reality environment
US10180734B2 (en) * 2015-03-05 2019-01-15 Magic Leap, Inc. Systems and methods for augmented reality
US9898091B2 (en) * 2015-06-03 2018-02-20 Oculus Vr, Llc Virtual reality system with head-mounted display, camera and hand-held controllers
WO2016205182A1 (en) * 2015-06-15 2016-12-22 Survios, Inc. Systems and methods for immersive physical interaction with a virtual environment
US10095024B2 (en) * 2015-08-07 2018-10-09 Sony Interactive Entertainment Inc. Systems and methods for using a MEMS projector to determine an orientation of a photosensor of an HMD or another controller
US10010788B2 (en) * 2015-12-21 2018-07-03 Sony Interactive Entertainment Inc. Game controller with lights visible inside and outside the game controller
US10019131B2 (en) * 2016-05-10 2018-07-10 Google Llc Two-handed object manipulations in virtual reality
US10249090B2 (en) * 2016-06-09 2019-04-02 Microsoft Technology Licensing, Llc Robust optical disambiguation and tracking of two or more hand-held controllers with passive optical and inertial tracking
WO2018022657A1 (en) * 2016-07-25 2018-02-01 Ctrl-Labs Corporation System and method for measuring the movements of articulated rigid bodies
US10596700B2 (en) * 2016-09-16 2020-03-24 Carbon Robotics, Inc. System and calibration, registration, and training methods
US10134192B2 (en) * 2016-10-17 2018-11-20 Microsoft Technology Licensing, Llc Generating and displaying a computer generated image on a future pose of a real world object
KR20190110539A (ko) * 2016-12-13 2019-09-30 딥모션, 인크. 솔버용의 다수의 힘 어레이를 사용한 향상된 가상 현실 시스템
US10444865B2 (en) * 2017-05-01 2019-10-15 Google Llc Tracking of position and orientation of objects in virtual reality systems
US11054894B2 (en) * 2017-05-05 2021-07-06 Microsoft Technology Licensing, Llc Integrated mixed-input system

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2001236520A (ja) 2000-02-21 2001-08-31 Nippon Telegr & Teleph Corp <Ntt> 仮想空間における動作入力方法および装置およびその動作入力プログラムを記録した記録媒体および仮想空間システム
JP2016126500A (ja) 2014-12-26 2016-07-11 Kddi株式会社 ウェアラブル端末装置およびプログラム
JP2017045443A (ja) 2015-08-28 2017-03-02 株式会社タカラトミー 頭部装着型ディスプレイを備えた情報処理装置

Also Published As

Publication number Publication date
CN110603510B (zh) 2023-10-27
US20190087019A1 (en) 2019-03-21
JP2020529646A (ja) 2020-10-08
WO2019055929A1 (en) 2019-03-21
JP2022008987A (ja) 2022-01-14
EP3685248A1 (en) 2020-07-29
JP7382994B2 (ja) 2023-11-17
US10386938B2 (en) 2019-08-20
EP3685248B1 (en) 2022-03-30
KR20190136047A (ko) 2019-12-09
KR102338836B1 (ko) 2021-12-13
CN110603510A (zh) 2019-12-20

Similar Documents

Publication Publication Date Title
JP7030854B2 (ja) 仮想現実システム内の仮想コントローラの位置および向きの追跡
KR102038638B1 (ko) 가상 현실에서 핸드 헬드 디바이스를 트랙킹하는 시스템
US10642344B2 (en) Manipulating virtual objects with six degree-of-freedom controllers in an augmented and/or virtual reality environment
EP3314371B1 (en) System for tracking a handheld device in an augmented and/or virtual reality environment
CN108139815B (zh) 用于虚拟现实内容的显示的场景和对象的分立时间扭曲
CN110794958B (zh) 在增强/虚拟现实环境中使用的输入设备
US10147243B2 (en) Generating virtual notation surfaces with gestures in an augmented and/or virtual reality environment
CN109074149B (zh) 用于增强或虚拟现实环境的头戴式参考系中的对象跟踪
EP3414644B1 (en) Control system for navigation in virtual reality environment
US10620720B2 (en) Input controller stabilization techniques for virtual reality systems
CN108604123B (zh) 虚拟现实中的位置仪
CN111771180B (zh) 增强现实环境中对象的混合放置
CN108700941A (zh) 用于在虚拟现实环境中对准组件的方法和设备
US10976890B2 (en) Intelligent command batching in an augmented and/or virtual reality environment
CN106681506B (zh) 一种终端设备中非vr应用的交互方法及终端设备
WO2024066756A1 (zh) 交互方法、装置和显示设备
Goh et al. An inertial device-based user interaction with occlusion-free object handling in a handheld augmented reality
WO2024131405A1 (zh) 对象移动控制方法、装置、设备及介质
CN115617164A (zh) 交互方法、装置和近眼显示设备

Legal Events

Date Code Title Description
A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20200204

A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20200204

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20210113

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20210126

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20210426

A02 Decision of refusal

Free format text: JAPANESE INTERMEDIATE CODE: A02

Effective date: 20210608

A524 Written submission of copy of amendment under article 19 pct

Free format text: JAPANESE INTERMEDIATE CODE: A524

Effective date: 20211008

C60 Trial request (containing other claim documents, opposition documents)

Free format text: JAPANESE INTERMEDIATE CODE: C60

Effective date: 20211008

C11 Written invitation by the commissioner to file amendments

Free format text: JAPANESE INTERMEDIATE CODE: C11

Effective date: 20211019

A911 Transfer to examiner for re-examination before appeal (zenchi)

Free format text: JAPANESE INTERMEDIATE CODE: A911

Effective date: 20211122

C21 Notice of transfer of a case for reconsideration by examiners before appeal proceedings

Free format text: JAPANESE INTERMEDIATE CODE: C21

Effective date: 20211124

TRDD Decision of grant or rejection written
A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

Effective date: 20220125

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20220222

R150 Certificate of patent or registration of utility model

Ref document number: 7030854

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150