KR102810896B1 - Create virtual reality hand gestures - Google Patents
Create virtual reality hand gestures Download PDFInfo
- Publication number
- KR102810896B1 KR102810896B1 KR1020217001241A KR20217001241A KR102810896B1 KR 102810896 B1 KR102810896 B1 KR 102810896B1 KR 1020217001241 A KR1020217001241 A KR 1020217001241A KR 20217001241 A KR20217001241 A KR 20217001241A KR 102810896 B1 KR102810896 B1 KR 102810896B1
- Authority
- KR
- South Korea
- Prior art keywords
- data
- controller
- force
- hand
- touch
- 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
Links
Images
Classifications
-
- A—HUMAN NECESSITIES
- A63—SPORTS; GAMES; AMUSEMENTS
- A63F—CARD, BOARD, OR ROULETTE GAMES; INDOOR GAMES USING SMALL MOVING PLAYING BODIES; VIDEO GAMES; GAMES NOT OTHERWISE PROVIDED FOR
- A63F13/00—Video games, i.e. games using an electronically generated display having two or more dimensions
- A63F13/20—Input arrangements for video game devices
- A63F13/21—Input arrangements for video game devices characterised by their sensors, purposes or types
- A63F13/213—Input arrangements for video game devices characterised by their sensors, purposes or types comprising photodetecting means, e.g. cameras, photodiodes or infrared cells
-
- A—HUMAN NECESSITIES
- A63—SPORTS; GAMES; AMUSEMENTS
- A63F—CARD, BOARD, OR ROULETTE GAMES; INDOOR GAMES USING SMALL MOVING PLAYING BODIES; VIDEO GAMES; GAMES NOT OTHERWISE PROVIDED FOR
- A63F13/00—Video games, i.e. games using an electronically generated display having two or more dimensions
- A63F13/20—Input arrangements for video game devices
- A63F13/21—Input arrangements for video game devices characterised by their sensors, purposes or types
- A63F13/214—Input arrangements for video game devices characterised by their sensors, purposes or types for locating contacts on a surface, e.g. floor mats or touch pads
-
- A—HUMAN NECESSITIES
- A63—SPORTS; GAMES; AMUSEMENTS
- A63F—CARD, BOARD, OR ROULETTE GAMES; INDOOR GAMES USING SMALL MOVING PLAYING BODIES; VIDEO GAMES; GAMES NOT OTHERWISE PROVIDED FOR
- A63F13/00—Video games, i.e. games using an electronically generated display having two or more dimensions
- A63F13/20—Input arrangements for video game devices
- A63F13/21—Input arrangements for video game devices characterised by their sensors, purposes or types
- A63F13/218—Input arrangements for video game devices characterised by their sensors, purposes or types using pressure sensors, e.g. generating a signal proportional to the pressure applied by the player
-
- A—HUMAN NECESSITIES
- A63—SPORTS; GAMES; AMUSEMENTS
- A63F—CARD, BOARD, OR ROULETTE GAMES; INDOOR GAMES USING SMALL MOVING PLAYING BODIES; VIDEO GAMES; GAMES NOT OTHERWISE PROVIDED FOR
- A63F13/00—Video games, i.e. games using an electronically generated display having two or more dimensions
- A63F13/40—Processing input control signals of video game devices, e.g. signals generated by the player or derived from the environment
- A63F13/42—Processing input control signals of video game devices, e.g. signals generated by the player or derived from the environment by mapping the input signals into game commands, e.g. mapping the displacement of a stylus on a touch screen to the steering angle of a virtual vehicle
- A63F13/428—Processing input control signals of video game devices, e.g. signals generated by the player or derived from the environment by mapping the input signals into game commands, e.g. mapping the displacement of a stylus on a touch screen to the steering angle of a virtual vehicle involving motion or position input signals, e.g. signals representing the rotation of an input controller or a player's arm motions sensed by accelerometers or gyroscopes
-
- G—PHYSICS
- G06—COMPUTING OR CALCULATING; COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input 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/01—Input arrangements or combined input and output arrangements for interaction between user and computer
- G06F3/011—Arrangements for interaction with the human body, e.g. for user immersion in virtual reality
-
- G—PHYSICS
- G06—COMPUTING OR CALCULATING; COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input 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/01—Input arrangements or combined input and output arrangements for interaction between user and computer
- G06F3/011—Arrangements for interaction with the human body, e.g. for user immersion in virtual reality
- G06F3/014—Hand-worn input/output arrangements, e.g. data gloves
-
- G—PHYSICS
- G06—COMPUTING OR CALCULATING; COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input 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/01—Input arrangements or combined input and output arrangements for interaction between user and computer
- G06F3/017—Gesture based interaction, e.g. based on a set of recognized hand gestures
-
- G—PHYSICS
- G06—COMPUTING OR CALCULATING; COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input 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/01—Input arrangements or combined input and output arrangements for interaction between user and computer
- G06F3/03—Arrangements for converting the position or the displacement of a member into a coded form
- G06F3/0304—Detection arrangements using opto-electronic means
-
- G—PHYSICS
- G06—COMPUTING OR CALCULATING; COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input 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/01—Input arrangements or combined input and output arrangements for interaction between user and computer
- G06F3/03—Arrangements for converting the position or the displacement of a member into a coded form
- G06F3/033—Pointing devices displaced or positioned by the user, e.g. mice, trackballs, pens or joysticks; Accessories therefor
- G06F3/0354—Pointing devices displaced or positioned by the user, e.g. mice, trackballs, pens or joysticks; Accessories therefor with detection of 2D relative movements between the device, or an operating part thereof, and a plane or surface, e.g. 2D mice, trackballs, pens or pucks
- G06F3/03547—Touch pads, in which fingers can move on a surface
-
- G—PHYSICS
- G06—COMPUTING OR CALCULATING; COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input 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/14—Digital output to display device ; Cooperation and interconnection of the display device with other functional units
-
- G—PHYSICS
- G06—COMPUTING OR CALCULATING; COUNTING
- G06N—COMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
- G06N20/00—Machine learning
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Human Computer Interaction (AREA)
- General Engineering & Computer Science (AREA)
- Multimedia (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Software Systems (AREA)
- Computer Vision & Pattern Recognition (AREA)
- Data Mining & Analysis (AREA)
- Evolutionary Computation (AREA)
- Medical Informatics (AREA)
- Artificial Intelligence (AREA)
- Computing Systems (AREA)
- Mathematical Physics (AREA)
- User Interface Of Digital Computer (AREA)
- Position Input By Displaying (AREA)
Abstract
방법은 컨트롤러에서 수신된 터치 입력을 나타내는 터치 데이터 또는 힘 데이터 중 적어도 하나를 수신하는 단계, 하나 이상의 모델(들)을 결정하는 단계, 하나 이상의 모델들을 사용하여 이미지 데이터를 생성하는 단계로서, 상기 이미지 데이터는 적어도 컨트롤러에서 수신된 터치 입력에 대응되는 핸드 제스처를 나타내는, 상기 생성하는 단계, 및 이미지 데이터를 디스플레이하기 위해 가상 현실(VR) 환경으로 전송하는 단계를 포함한다.The method comprises the steps of receiving at least one of touch data or force data representing a touch input received from a controller, determining one or more model(s), generating image data using the one or more models, wherein the image data represents at least a hand gesture corresponding to the touch input received from the controller, and transmitting the image data to a virtual reality (VR) environment for display.
Description
관련 출원들에 대한 우선권 주장 및 상호 참조Claims of priority and cross-references to related applications
이 출원은 2018년 11월 19일자로 출원된, “VIRTUAL REALITY HAND GESTURE GENERATION” 이라는 명칭의 미국 특허 출원 번호 제16/195,718호의 PCT 출원이며 이에 대한 우선권을 주장하며, 이는 35 U.S.C §120 하에서 2018년 6월 20일자로 출원된, “VIRTUAL REALITY HAND GESTURE GENERATION” 이라는 명칭의 미국 임시 특허 출원 제62/687,780호에 대한 우선권을 주장한다. This application claims priority to and is a PCT application of U.S. Patent Application No. 16/195,718, filed November 19, 2018, entitled “VIRTUAL REALITY HAND GESTURE GENERATION,” which claims priority under 35 U.S.C. §120 to U.S. Provisional Patent Application No. 62/687,780, filed June 20, 2018, entitled “VIRTUAL REALITY HAND GESTURE GENERATION.”
또한, 2018년 11월 19일자로 출원된 출원 번호 제16/195,718호는 2017년 12월 7일자로 출원된, “ELECTRONIC CONTROLLER WITH FINGER SENSING AND AN ADJUSTABLE HAND RETAINER” 이라는 명칭의 계류중인 미국 특허 출원 번호 제15/834,374호에 대한 일부 계속 출원으로서 35 U.S.C. §120 하에서 우선권을 주장하며, 이는 그 자체가 2017년 8월 17일자로 출원된, “Electronic controller with hand retainer and finger motion sensing” 이라는 명칭의 미국 특허 출원 번호 제15/679,521호에 대한 일부 계속 출원으로서 우선권을 주장하며, 이는 그 자체가 2016년 10월 11일자로 출원된 미국 특허 출원 번호 제29/580,635호에 대한 일부 계속 출원으로서 우선권을 주장하며, 2017년 6월 16일자로 출원된 미국 임시 특허 출원 번호 제62/520,958호에 대한 우선권을 주장한다.Also, application Ser. No. 16/195,718, filed November 19, 2018, is a continuation-in-part of pending U.S. patent application Ser. No. 15/834,374, filed December 7, 2017, entitled “ELECTRONIC CONTROLLER WITH FINGER SENSING AND AN ADJUSTABLE HAND RETAINER,” under 35 U.S.C. §120, which claims priority as a continuation-in-part of U.S. patent application Ser. No. 15/679,521, filed Aug. 17, 2017, entitled “Electronic controller with hand retainer and finger motion sensing,” which itself claims priority as a continuation-in-part of U.S. patent application Ser. No. 29/580,635, filed Oct. 11, 2016, which claims priority to U.S. Provisional Patent Application No. 62/520,958, filed June 16, 2017.
비디오 게임 산업은 하드웨어와 소프트웨어 모두에서 많은 혁신을 일으켰다. 예를 들어, 다양한 핸드 헬드 비디오 게임 컨트롤러들이 다양한 게임 어플리케이션들을 위해 설계, 제조 및 판매되었다. 일부 혁신은 산업 기계, 방어 시스템, 로봇 공학 등을 위한 컨트롤러들과 같은, 비디오 게임 산업 외부에 적용 가능성을 갖는다. The video game industry has produced many innovations in both hardware and software. For example, a variety of handheld video game controllers have been designed, manufactured, and marketed for a variety of gaming applications. Some of the innovations have applicability outside the video game industry, such as controllers for industrial machinery, defense systems, robotics, etc.
추가로, 가상 현실(VR) 시스템들은 비디오 게임 산업 내부와 외부 모두에서 큰 현대적 관심과 빠른 기술 발전의 어플리케이션이다. VR 시스템용 컨트롤러들은 여러 가지 다른 기능들을 수행하고 엄격한 (그리고 때로는 경쟁적인) 설계 제약들을 충족하는 동시에 종종 원하는 특정 특성들을 최적화해야 한다. 일부 경우에, 이러한 컨트롤러들은 사용자의 그립 힘을 측정하기 위한 센서들을 포함하며, 이는 결국 사전 정의된 게임 플레이 기능을 수행하는 데 사용된다. 이러한 목적들을 달성하기 위해, 그 중에서도, FSR에 가해지는 힘의 양을 측정하기 위해 가변 저항을 사용하는 포스 감지 저항기(force sensing resistor; FSR)를 포함하는, 다양한 유형의 센서가 사용되었다. 그러나, FSR이 있는 기존 컨트롤러들은 상당히 조잡한 응답 시간을 나타내는 경향이 있다. 추가로, 컨트롤러는 게임플레이 경험 전반에 걸쳐 손 위치, 제스처 및/또는 움직임을 정확하게 묘사하고 감지하지 못할 수 있다.Additionally, virtual reality (VR) systems are an application of great contemporary interest and rapid technological advancement both within and outside the video game industry. Controllers for VR systems must perform a number of different functions and meet strict (and sometimes competitive) design constraints, while often optimizing specific desired characteristics. In some cases, these controllers include sensors for measuring the user's grip force, which is then used to perform predefined gameplay functions. To achieve these goals, various types of sensors have been used, including, among others, force sensing resistors (FSRs), which use a variable resistance to measure the amount of force applied to the FSR. However, existing controllers with FSRs tend to exhibit rather poor response times. Additionally, the controllers may not accurately depict and detect hand positions, gestures, and/or movements throughout the gameplay experience.
도 1은 본 개시의 예시적인 실시예에 따라 가상 현실(VR) 시스템과 상호 작용하는 사용자의 환경을 도시한다.
도 2는 본 개시의 예시적인 실시예에 따른 사용자 손에 있는 예시적인 컨트롤러를 도시한다.
도 3은 본 개시의 예시적인 실시예에 따른 예시적인 컨트롤러를 도시한다.
도 4는 본 개시의 예시적인 실시예에 따른 사용자 손에 있는 도 3의 예시적인 컨트롤러를 도시한다.
도 5는 본 개시의 예시적인 실시예에 따른 사용자 손에 있는 도 3의 예시적인 컨트롤러를 도시한다.
도 6은 본 개시의 예시적인 실시예에 따른 사용자 손에 있는 도 3의 예시적인 컨트롤러를 도시한다.
도 7은 본 개시의 예시적인 실시예에 따른 한 쌍의 예시적인 컨트롤러들을 도시한다.
도 8a는 본 개시의 또 다른 예시적인 실시예에 따른 예시적인 우측 컨트롤러의 전면도를 도시한다.
도 8b는 도 8a의 예시적인 우측 컨트롤러의 후면도를 도시한다.
도 9a는 본 개시의 예시적인 실시예에 따른 예시적인 포스 감지 저항기(FSR)를 도시한다.
도 9b는 도 9a의 예시적인 FSR의 전면도를 도시한다.
도 9c는 도 9b의 단면(A-A)을 따라 절취된 도 9b의 예시적인 FSR의 단면을 도시한다.
도 10a는 본 개시의 예시적인 실시예에 따른 예시적인 컨트롤러를 잡고 있는 사용자의 제1 핸드 제스처를 도시한다.
도 10b는 본 개시의 예시적인 실시예에 따른 예시적인 컨트롤러를 잡고 있는 사용자의 제2 핸드 제스처를 도시한다.
도 10c는 본 개시의 예시적인 실시예에 따른 예시적인 컨트롤러를 잡고 있는 사용자의 제3 핸드 제스처를 도시한다.
도 10d는 본 개시의 예시적인 실시예에 따른 예시적인 컨트롤러를 잡고 있는 사용자의 제4 핸드 제스처를 도시한다.
도 10e는 본 개시의 예시적인 실시예에 따른 예시적인 컨트롤러를 잡고 있는 사용자의 제5 핸드 제스처를 도시한다.
도 10f는 본 개시의 예시적인 실시예에 따른 예시적인 컨트롤러를 잡고 있는 사용자의 제6 핸드 제스처를 도시한다.
도 11은 본 개시의 예시적인 실시예에 따른 예시적인 프로세스를 도시한다.
도 12는 본 개시의 예시적인 실시예에 따른 트레이닝 모델(들)에 대한 예시적인 프로세스를 도시한다.
도 13은 본 개시의 예시적인 실시예에 따른 제스처들을 생성하기 위해 터치 입력을 사용하는 예시적인 프로세스를 도시한다.FIG. 1 illustrates an environment of a user interacting with a virtual reality (VR) system according to an exemplary embodiment of the present disclosure.
FIG. 2 illustrates an exemplary controller held in a user's hand according to an exemplary embodiment of the present disclosure.
FIG. 3 illustrates an exemplary controller according to an exemplary embodiment of the present disclosure.
FIG. 4 illustrates the exemplary controller of FIG. 3 in a user's hand according to an exemplary embodiment of the present disclosure.
FIG. 5 illustrates the exemplary controller of FIG. 3 in a user's hand according to an exemplary embodiment of the present disclosure.
FIG. 6 illustrates the exemplary controller of FIG. 3 in a user's hand according to an exemplary embodiment of the present disclosure.
FIG. 7 illustrates a pair of exemplary controllers according to an exemplary embodiment of the present disclosure.
FIG. 8a illustrates a front view of an exemplary right controller according to another exemplary embodiment of the present disclosure.
Figure 8b illustrates a rear view of the exemplary right controller of Figure 8a.
FIG. 9a illustrates an exemplary force sensing resistor (FSR) according to an exemplary embodiment of the present disclosure.
Figure 9b illustrates a front view of the exemplary FSR of Figure 9a.
Figure 9c illustrates a cross-section of the exemplary FSR of Figure 9b taken along the section (AA) of Figure 9b.
FIG. 10A illustrates a first hand gesture of a user holding an exemplary controller according to an exemplary embodiment of the present disclosure.
FIG. 10b illustrates a second hand gesture of a user holding an exemplary controller according to an exemplary embodiment of the present disclosure.
FIG. 10c illustrates a third hand gesture of a user holding an exemplary controller according to an exemplary embodiment of the present disclosure.
FIG. 10d illustrates a fourth hand gesture of a user holding an exemplary controller according to an exemplary embodiment of the present disclosure.
FIG. 10e illustrates a fifth hand gesture of a user holding an exemplary controller according to an exemplary embodiment of the present disclosure.
FIG. 10f illustrates a sixth hand gesture of a user holding an exemplary controller according to an exemplary embodiment of the present disclosure.
FIG. 11 illustrates an exemplary process according to an exemplary embodiment of the present disclosure.
FIG. 12 illustrates an exemplary process for training model(s) according to an exemplary embodiment of the present disclosure.
FIG. 13 illustrates an exemplary process for using touch input to generate gestures according to an exemplary embodiment of the present disclosure.
본원에서는 가상 현실(VR) 환경에서 사용하기 위한 모션 캡처 시스템(들) 및 컨트롤러들이 개시된다. 예시적인 모션 캡처 시스템은 컨트롤러를 조작하는 사용자의 움직임뿐만 아니라, 컨트롤러의 움직임을 추적하기 위해 환경 주위에 위치된 카메라들, 프로젝터들 및/또는 다른 센서들을 포함할 수 있다. 예를 들어, 복수의 카메라들은 환경 내에 장착되고 컨트롤러와 사용자의 이미지들을 캡처할 수 있다. 일부 경우에, 복수의 카메라들은 환경 내의 일부 또는 모든 각도들 및 위치들을 캡처할 수 있다. 대안으로, 복수의 카메라들은 미리 정의된 범위 또는 환경 영역 내의 이미지들에 초점을 맞추거나 이미지들을 캡처할 수 있다. 컨트롤러가 환경에 대해 조종할 때 그리고 사용자가 자신의 손을 조종할 때, 카메라들은 사용자 및/또는 컨트롤러(들)의 위치들과 방향들을 각각 검출할 수 있다. Disclosed herein are motion capture systems and controllers for use in a virtual reality (VR) environment. An exemplary motion capture system may include cameras, projectors, and/or other sensors positioned around the environment to track the movements of a user manipulating a controller, as well as the movements of the controller. For example, multiple cameras may be mounted within the environment and capture images of the controller and the user. In some cases, the multiple cameras may capture some or all angles and positions within the environment. Alternatively, the multiple cameras may focus on or capture images within a predefined range or region of the environment. When the controller is manipulated relative to the environment and when the user manipulates his or her hands, the cameras may detect the positions and orientations of the user and/or the controller(s), respectively.
일부 경우에, 컨트롤러(또는 그 일부들) 및 사용자의 위치를 검출하기 위해, 컨트롤러(들) 및/또는 사용자는 각각 마커들을 포함할 수 있다. 예를 들어, 마커들은 컨트롤러 및/또는 사용자에 결합할 수 있다. 마커들은 디지털 워터마크, 적외선 반사기 등을 포함할 수 있다. 모션 캡처 시스템(들)은 광을 환경에 투사할 수 있으며, 그런 다음 마커들에 의해 반사된다. 카메라들은 마커들에 의해 반사된 입사광을 캡처할 수 있으며, 모션 캡처 시스템(들)은 컨트롤러 및/또는 사용자의 움직임들, 위치들 및/또는 방향들을 결정하기 위해 환경 내의 마커들의 위치들을 추적하고 플로팅할 수 있다.In some cases, to detect the location of the controller (or portions thereof) and the user, the controller(s) and/or the user may each include markers. For example, the markers may be coupled to the controller and/or the user. The markers may include digital watermarks, infrared reflectors, etc. The motion capture system(s) may project light into the environment, which is then reflected by the markers. The cameras may capture the incident light reflected by the markers, and the motion capture system(s) may track and plot the locations of the markers within the environment to determine movements, locations and/or orientations of the controller and/or the user.
예시적인 컨트롤러는 사용자가 잡을 수 있으며, 하나 이상의 포스 감지 저항기들(FSR들) 또는 사용자로부터의 터치 입력을 감지하는 다른 유형의 센서들을 포함할 수 있다. 일부 경우들에서, FSR은 컨트롤러의 핸들 내에 장착된 구조 및/또는 컨트롤러의 적어도 하나의 엄지 손가락으로 작동되는 컨트롤 아래에 장착된 구조와 같은, 컨트롤러의 표면에 결합될 수 있다. 일부 경우에, FSR은 사용자가 가하는 힘의 양에 해당하는 저항 값을 측정할 수 있다. FSR은 또한 힘(들)을 컨트롤러의 특정 위치, 영역 및/또는 부분과 연관시킬 수 있다. 예를 들어, FSR은 핸들의 외부 표면에 가해지는 힘의 양을 결정할 수 있고/있거나 사용자로부터의 터치 입력에 대응하는 컨트롤러 상의 위치(들)를 결정할 수 있다. 일부 실시예들에서, 컨트롤러는 FSR에 의해 생성된 힘 데이터를 통해, 사용자가 컨트롤러의 핸들을 쥐는 힘의 양 및/또는 사용자가 컨트롤러의 버튼들을 누르는 힘의 양을 결정할 수 있다. 컨트롤러는 다양한 힘의 압박 또는 압착을 비디오 게임 제어 및/또는 게임 메커니즘들에 사용되는 디지털화된 수치 값들로 변환할 수 있다.An exemplary controller may be held by a user and may include one or more force sensitive resistors (FSRs) or other types of sensors that detect touch input from the user. In some cases, the FSR may be coupled to a surface of the controller, such as a structure mounted within a handle of the controller and/or a structure mounted beneath a control that is actuated by at least one thumb of the controller. In some cases, the FSR may measure a resistance value corresponding to an amount of force applied by the user. The FSR may also associate force(s) with specific locations, regions, and/or portions of the controller. For example, the FSR may determine an amount of force applied to an outer surface of the handle and/or may determine a location(s) on the controller that corresponds to a touch input from the user. In some embodiments, the controller may determine, through force data generated by the FSR, an amount of force applied by the user to the handle of the controller and/or an amount of force applied by the user to buttons on the controller. The controller may convert various pressures or squeezes of force into digitized numerical values that may be used in video game controls and/or game mechanisms.
일부 경우에, FSR은 적용된 힘이 임계값을 초과할 때를 감지하는 스위치 역할을 할 수 있으며, 일부 경우에 동적으로 업데이트하고/하거나 조정할 수 있다. 예를 들어, 임계값은 게임플레이 동안 손의 피로를 줄이기 위해(예를 들어, 사용자가 게임플레이 동안 자주 무기를 쏘기 위해 FSR과 연관된 제어를 누를 때) 더 낮은 값으로 조정될 수 있다. 반대로, 임계값은 우발적인 제어 동작의 인스턴스들을 줄이기 위해 더 높은 값으로 조정될 수 있다.In some cases, the FSR may act as a switch that detects when an applied force exceeds a threshold, and in some cases may dynamically update and/or adjust it. For example, the threshold may be adjusted to a lower value to reduce hand fatigue during gameplay (e.g., when a user frequently presses a control associated with the FSR to fire a weapon during gameplay). Conversely, the threshold may be adjusted to a higher value to reduce instances of accidental control actions.
컨트롤러는 또한 핸들의 길이를 따라 공간적으로 분포되고 사용자의 손가락들의 근접성에 응답하는 근접 센서 어레이를 포함할 수 있다. 근접 센서들은 터치 입력 및/또는 컨트롤러에 대한 사용자 손의 근접을 감지하기 위한 용량성 센서들과 같은, 임의의 적절한 기술을 포함할 수 있다. 근접 센서 어레이는 컨트롤러를 잡는 손가락(들)의 위치 또는 사용자가 컨트롤러를 잡지 않을 때, 핸들과 사용자의 손가락들 사이에 배치된 거리(예를 들어, 정전 용량 측정을 통해)를 나타내는 터치 데이터를 생성할 수 있다. 일부 경우에, 근접 센서들은 또한 컨트롤러를 잡는 사용자의 손 크기를 검출할 수 있으며, 이는 다른 설정들에 따라 컨트롤러를 구성할 수 있다. 예를 들어, 손 크기에 따라, 컨트롤러는 손이 작은 사용자들이 힘 기반 입력을 더 쉽게 할 수 있도록 조정할 수 있다.The controller may also include an array of proximity sensors spatially distributed along the length of the handle and responsive to the proximity of the user's fingers. The proximity sensors may include any suitable technology, such as capacitive sensors for detecting touch input and/or proximity of the user's hand to the controller. The proximity sensor array may generate touch data indicative of the position of the finger(s) holding the controller, or, when the user is not holding the controller, the distance (e.g., via capacitance measurements) between the handle and the user's fingers. In some cases, the proximity sensors may also detect the size of the user's hand holding the controller, which may configure the controller based on other settings. For example, based on hand size, the controller may adjust to make force-based input easier for users with smaller hands.
VR 환경에서 사용하기 위해 모션 캡처 시스템 및 컨트롤러를 구현하면 종래 컨트롤러들을 사용하여 현재 상태를 넘어 자연스러운 상호 작용의 스펙트럼을 확장할 수 있다. 예를 들어, 서로 결합하여, 모션 캡처 시스템(들)은 손 및/또는 컨트롤러의 모션 데이터를 캡처할 수 있는 반면, 컨트롤러는 컨트롤러에서의 터치 입력들에 대응하는 터치 데이터 및 사용자의 터치 입력들과 연관된 힘 데이터를 캡처할 수 있다. 모션 데이터, 터치 데이터 및/또는 힘 데이터는 사용자의 핸드 제스처를 나타내는 모델들을 생성하기 위해 서로 연관될 수 있다.Implementing a motion capture system and controller for use in a VR environment can expand the spectrum of natural interactions beyond what is currently possible using conventional controllers. For example, in combination, the motion capture system(s) can capture motion data of a hand and/or a controller, while the controller can capture touch data corresponding to touch inputs on the controller and force data associated with the user's touch inputs. The motion data, touch data, and/or force data can be correlated to generate models representing the user's hand gestures.
예시를 위해, 사용자는 자신의 너클, 손가락 끝, 손목, 관절 등에 배치된 마커들을 포함할 수 있다. 컨트롤러는 또한 마커들(예를 들어, 상단, 하단, 측면들 등)을 포함할 수 있다. 상기에 언급된 바와 같이, 마커(들)은 입사관을 반사할 수 있다. 모션 캡처 시스템은 마커들의 위치들을 검출하는 카메라들을 통해 사용자의 손(들)의 움직임들과 컨트롤러(들)의 위치를 검출 및 기록할 수 있다. 예를 들어, 모션 캡처 시스템(들)의 프로젝터들은 적외선 광을 투사할 수 있으며, 그런 다음 이는 손 및/또는 컨트롤러 상의 마커들에 의해 반사된다. 모션 캡처 시스템(들)의 카메라들은 환경 이미지들을 캡처할 수 있다. 이미지들은 환경 내 마커들의 위치들을 나타내는 데 이용된다. 마커들의 위치들은 시간이 지남에 따라 추적되어 3차원(3D) 가상 공간 내에 애니매이션된다. 이 추적을 통해 애니메이션된 3D 골격 데이터(또는 모델들)을 생성할 수 있다. 예를 들어, 사용자는 주먹을 쥐거나 두 손가락들(예를 들어, 새끼 손가락과 네번째 손가락)로 컨트롤러를 잡을 수 있다. 카메라들은 마커들을 통해 사용자 손가락 끝, 너클 및/또는 손의 다른 부분들, 손목 및/또는 팔의 위치들을 캡처할 수 있다. 일부 경우에, 위치들은 컨트롤러에 상대적이다.For example, a user may include markers placed on their knuckles, fingertips, wrists, joints, etc. The controller may also include markers (e.g., top, bottom, sides, etc.). As noted above, the marker(s) may reflect incident light. The motion capture system may detect and record the movements of the user's hand(s) and the positions of the controller(s) via cameras that detect the positions of the markers. For example, projectors of the motion capture system(s) may project infrared light, which is then reflected by markers on the hand and/or controller. Cameras of the motion capture system(s) may capture images of the environment. The images are used to represent the positions of the markers in the environment. The positions of the markers are tracked over time and animated in a three-dimensional (3D) virtual space. This tracking may generate animated 3D skeletal data (or models). For example, the user may make a fist or grasp the controller with two fingers (e.g., the little finger and the fourth finger). The cameras can capture the positions of the user's fingertips, knuckles, and/or other parts of the hand, wrist, and/or arm via markers. In some cases, the positions are relative to the controller.
동시에 또는 다른 시간에, 근접 센서 어레이는 컨트롤러에서 터치 입력 또는 터치 입력 결여를 검출할 수 있다. 터치 데이터는 예를 들어, 정전 용량 측정을 통해 컨트롤러에 대한 사용자 손가락들의 위치들을 나타낼 수 있다. 정전 용량은 손가락과 컨트롤러 사이에 배치된 거리에 따라 달라질 수 있다. 그렇게 함으로써, 컨트롤러는 사용자가 한 손가락, 두 손가락, 세 손가락 등으로 컨트롤러를 잡을 때를 검출할 수 있다. 정전 용량으로, 컨트롤러는 또한 사용자 손가락들이 컨트롤러에 닿지 않을 때와 같이, 컨트롤러에 대한 손가락의 상대적 배치를 검출할 수 있다.At the same time or at different times, the proximity sensor array can detect touch input or lack of touch input on the controller. The touch data can represent the positions of the user's fingers relative to the controller, for example, via capacitance measurements. The capacitance can vary with the distance the fingers are placed between the fingers and the controller. By doing so, the controller can detect when the user is holding the controller with one finger, two fingers, three fingers, etc. With capacitance, the controller can also detect the relative placement of the fingers with respect to the controller, such as when the user's fingers are not touching the controller.
추가로, FSR은 컨트롤러(들)에 의해 수신된 힘 값들(예를 들어, 사용자가 컨트롤러를 잡는 힘들)을 나타내는 힘 데이터를 캡처할 수 있다. 예를 들어, 사용자가 주먹을 쥐거나 두 손가락으로 컨트롤러 본체를 잡을 때, FSR은 이러한 각각의 그립들에 해당하는 힘 값들을 캡처할 수 있다. 예로서, FSR은 사용자가 두 손가락들로 컨트롤러를 잡을 때에 비해 사용자가 주먹을 쥐어 컨트롤러를 잡을 때 힘 값들의 증가를 검출할 수 있다.Additionally, the FSR can capture force data representing force values received by the controller(s), such as the force with which the user grips the controller. For example, when the user makes a fist or grips the controller body with two fingers, the FSR can capture force values corresponding to each of these grips. For example, the FSR can detect an increase in force values when the user makes a fist and grips the controller compared to when the user holds the controller with two fingers.
터치 데이터 및 힘 데이터는 서로 연관될 수 있다. 예를 들어, 사용자가 네 개의 손가락들로 컨트롤러를 잡을 때, 컨트롤러 상에 검출된 힘 값들은 컨트롤러의 특정 위치들과 연관될 수 있다. 그렇게 함으로써, 터치 데이터 및 힘 데이터는 사용자의 어느 손가락들이 컨트롤러를 움켜 쥐는지, 뿐만 아니라 사용자가 컨트롤러를 잡는 각 손가락의 상대적 힘을 결정하기 위해 서로 연관될 수 있다. 사용자가 두 손가락들로 컨트롤러를 잡을 때도 상기와 동일할 수 있으며, 여기서 힘 값들은 검출되고 컨트롤러 본체의 특정 부분들과 연관된다. 근접 센서 어레이로부터 터치 입력이 수신되는 위치, 뿐만 아니라 FSR에 의해 검출된 바와 같은 사용자가 컨트롤러를 잡는 힘의 양을 알면, 컨트롤러 및/또는 다른 통신적으로 결합된 원격 시스템은 터치 입력을 사용자의 특정 손가락들과 연관시킬 수 있다. 일부 경우에, 터치 데이터와 연관된 타임 스탬프들을 힘 데이터의 타임 스탬프들과 상관시키는 것을 통해, 컨트롤러(또는 다른 통신적으로 결합된 원격 시스템)는 터치 데이터와 힘 데이터를 연관시킬 수 있다. The touch data and force data can be correlated with each other. For example, when a user grasps a controller with four fingers, force values detected on the controller can be correlated with specific locations on the controller. In doing so, the touch data and force data can be correlated with each other to determine which fingers of the user are grasping the controller, as well as the relative force of each finger with which the user is grasping the controller. The same can be true when the user is grasping the controller with two fingers, where force values are detected and associated with specific parts of the controller body. Knowing where the touch input is received from the proximity sensor array, as well as the amount of force with which the user is grasping the controller as detected by the FSR, the controller and/or other communicatively coupled remote system can associate the touch input with specific fingers of the user. In some cases, the controller (or other communicatively coupled remote system) can associate the touch data with the force data by correlating the timestamps associated with the touch data with the timestamps of the force data.
사용자가 컨트롤러를 잡는 힘의 양(즉, 힘 데이터), 터치 입력의 위치 또는 컨트롤러에서의 터치 입력의 결여(즉, 터치 데이터), 뿐만 아니라 모션 캡처 시스템의 카메라에 의해 캡처된 모션(즉, 모션 데이터)은 사용자의 핸드 제스처들을 나타내는 모델들을 트레이닝시킬 수 있다. 예로서, 모션 캡처 시스템은 (예를 들어, 모션 데이터를 사용하여) 주먹 쥔 것과 컨트롤러에서 수신된 터치 데이터 및/또는 힘 데이터를 연관시킬 수 있다. 다른 예로서, 사용자가 두 손가락들로 컨트롤러를 잡는 경우, 모션 데이터는 핸드 제스처(예를 들어, 두 손가락 그립)를 나타낼 수 있는 반면, 터치 데이터는 컨트롤러에 대한 손(또는 손가락들)의 근접성을 나타낼 수 있고 힘 데이터는 사용자가 컨트롤러를 얼마나 단단히 잡고 있는지를 나타낼 수 있다. 이러한 연관들을 사용하여, 모델들은 사용자의 제스처들을 나타내도록 생성 및 트레이닝될 수 있다. 모델들은 더 정확한 오버타임이 되도록 지속적으로 트레이닝될 수 있다.The amount of force with which a user grips a controller (i.e., force data), the location of touch input or lack of touch input on the controller (i.e., touch data), as well as motion captured by a camera of a motion capture system (i.e., motion data) can be used to train models representing the user's hand gestures. For example, the motion capture system can associate (e.g., using motion data) a clenched fist with touch data and/or force data received from the controller. As another example, if a user grasps a controller with two fingers, the motion data can represent a hand gesture (e.g., a two-finger grip), while the touch data can represent the proximity of the hand (or fingers) to the controller and the force data can represent how firmly the user is holding the controller. Using these associations, models can be created and trained to represent the user's gestures. The models can be continually trained to become more accurate over time.
모델들은 컨트롤러에서의 터치 입력 및/또는 터치 입력과 연관된 힘 값들을 특성화하여 디스플레이에서 핸드 제스처의 애니메이션들을 생성할 수 있으며 VR 환경은 게임플레이에서 사용하기 위해 모델들을 활용할 수 있다. 보다 구체적으로, 모델들은 VR 환경 내에서 핸드 제스처들을 생성하기 위해 터치 데이터 및/또는 힘 데이터를 입력할 수 있다. 예들로서, 제스처들은 바위를 부수거나 풍선을 압착하는 것(예를 들어, 주먹을 쥐는 제스처), 게임 캐릭터에 의해 사용할 수 있는 이용 가능한 무기들을 통한 토글링(예를 들어, 컨트롤러를 따라 손가락들을 스크롤하거나 슬라이딩), 객체들을 드롭핑하는 것(예를 들어, 손을 펴는 제스처), 무기를 발사하는 것(예를 들어, 새끼 손가락, 네번째 손가락, 가운데 손가락이 컨트롤러를 터치하지만 검지 손가락과 엄지가 바깥쪽으로 향함) 등과 같은, 다양한 비디오 게임 컨트롤들을 포함할 수 있다. 즉, 컨트롤러의 터치 입력의 위치, 뿐만 아니라 사용자가 컨트롤러를 잡는 힘도 알고 있다. 이 정보는 이전에 트레이닝된 모델들과 함께 사용되어 VR 환경 내에서 및/또는 VR 디스플레이에서 핸드 제스처(예를 들어, 주먹을 쥐는 것)를 생성할 수 있다. 또한, 모델(들)은 디스플레이를 위한 핸드 제스처들을 렌더링 및/또는 생성할 때 이전에 생성된 애니메이션들 및/또는 이미지 데이터를 활용할 수 있다.The models can generate animations of hand gestures on the display by characterizing touch inputs and/or force values associated with touch inputs on the controller, and the VR environment can utilize the models for use in gameplay. More specifically, the models can input touch data and/or force data to generate hand gestures within the VR environment. As examples, the gestures can include various video game controls, such as breaking rocks or squeezing balloons (e.g., making a fist gesture), toggling through available weapons usable by the game character (e.g., scrolling or sliding fingers along the controller), dropping objects (e.g., making an open hand gesture), firing a weapon (e.g., the pinky, ring, and middle fingers touching the controller, but the index finger and thumb pointing outward), etc. That is, the location of the touch input on the controller, as well as the force with which the user is holding the controller, can be known. This information can be used with previously trained models to generate hand gestures (e.g., making a fist) within the VR environment and/or on the VR display. Additionally, the model(s) may utilize previously generated animations and/or image data when rendering and/or generating hand gestures for display.
예시적인 가상 현실(VR) 환경An exemplary virtual reality (VR) environment
도 1은 모션 캡처 시스템(들)(102) 및 사용자(104)가 상주하는 예시적인 환경(100)을 도시한다. 모션 캡처 시스템(들)(102)은 환경(100)의 벽들에 장착된 것으로 도시되어 있지만, 일부 경우에, 모션 캡처 시스템(들)(102)은 환경(100) 내의 다른 곳(예를 들어, 천장, 바닥 등)에 장착될 수 있다. 게다가, 도 1은 네 개의 모션 캡처 시스템(들)(102)를 예시하지만, 환경(100)은 네 개보다 많거나 적은 모션 캡처 시스템(들)(102)을 포함할 수 있다.FIG. 1 illustrates an exemplary environment (100) in which motion capture system(s) (102) and a user (104) reside. The motion capture system(s) (102) are illustrated as being mounted on the walls of the environment (100), although in some cases the motion capture system(s) (102) may be mounted elsewhere within the environment (100) (e.g., on the ceiling, floor, etc.). Additionally, while FIG. 1 illustrates four motion capture system(s) (102), the environment (100) may include more or fewer than four motion capture system(s) (102).
모션 캡처 시스템(들)(102)은 환경(100) 내에서/내로 광 및/또는 이미지들(106)을 생성하고 투사하도록 구성된 프로젝터(들)를 포함할 수 있다. 이미지들(106)은 사용자(104)가 인지할 수 있는 가시 광선 이미지들, 사용자(104)가 인지할 수 없는 가시 광선 이미지들, 비-가시광을 갖는 이미지들, 및/또는 이들의 조합을 포함할 수 있다. 프로젝터(들)는 이미지들(106)을 생성하고 이미지들(106)을 환경(100) 내의 표면 또는 객체들에 투사할 수 있는 임의 개수의 기술들을 포함할 수 있다. 일부 예들에서, 적합한 기술들은 디지털 마이크로미러 장치(DMD), 액정 온 실리콘 디스플레이(LCOS), 액정 디스플레이, 3LCD 등을 포함할 수 있다. 프로젝터(들)는 특정 입체각을 설명하는 시야를 가질 수 있으며, 시야는 프로젝터(들)의 구성의 변경들에 따라 달라질 수 있다. 예를 들어, 줌 적용 시 시야는 좁아질 수 있다.The motion capture system(s) (102) may include projector(s) configured to generate and project light and/or images (106) within/into the environment (100). The images (106) may include visible light images that are perceptible to a user (104), visible light images that are not perceptible to a user (104), images having non-visible light, and/or combinations thereof. The projector(s) may include any number of technologies capable of generating the images (106) and projecting the images (106) onto surfaces or objects within the environment (100). In some examples, suitable technologies may include digital micromirror devices (DMDs), liquid crystal on silicon displays (LCOSs), liquid crystal displays, 3LCDs, and the like. The projector(s) may have a field of view that describes a particular solid angle, and the field of view may vary with changes in the configuration of the projector(s). For example, the field of view may narrow when zooming is applied.
모션 캡처 시스템(들)(102)은 고해상도 카메라들, 적외선(IR) 검출기들, 센서들 등을 포함할 수 있다. 카메라(들)는 가시광 파장, 비가시광 파장, 또는 둘 모두에서 환경(100)을 이미지화할 수 있다. 카메라(들)는 또한 특정 입체각을 설명하는 시야를 가지며 카메라의 시야는 카메라(들)의 구성의 변경들에 따라 달라질 수 있다. 예를 들어, 카메라(들)의 광학 줌은 카메라 시야를 좁힐 수 있다.The motion capture system(s) (102) may include high resolution cameras, infrared (IR) detectors, sensors, and the like. The camera(s) may image the environment (100) in visible wavelengths, invisible wavelengths, or both. The camera(s) also have a field of view that describes a particular stereoscopic angle, and the field of view of the camera(s) may vary with changes in the configuration of the camera(s). For example, an optical zoom of the camera(s) may narrow the camera field of view.
일부 경우에, 환경(100)은 복수의 카메라들 및/또는 다양한 유형의 카메라를 포함할 수 있다. 예를 들어, 카메라들은 3차원(3D), 적외선(IR) 카메라 및/또는 적색-녹색-청색(RGB) 카메라를 포함할 수 있다. 일부 경우에, 3D 카메라 및 IR 카메라는 환경(예를 들어, 마커들) 내의 객체들의 깊이들을 검출하기 위한 정보를 캡처할 수 있는 반면, RGB 카메라는 환경(100) 내의 색상에 있어서의 변경들을 식별함으로써 객체들의 에지들을 검출할 수 있다. 일부 예들에서, 모션 캡처 시스템(들)(102)은 전술한 모든 기능들을 수행하도록 구성된 단일 카메라를 포함할 수 있다.In some cases, the environment (100) may include multiple cameras and/or different types of cameras. For example, the cameras may include three-dimensional (3D), infrared (IR) cameras and/or red-green-blue (RGB) cameras. In some cases, the 3D camera and IR camera may capture information to detect depths of objects within the environment (e.g., markers), while the RGB camera may detect edges of objects by identifying changes in color within the environment (100). In some examples, the motion capture system(s) (102) may include a single camera configured to perform all of the functions described above.
모션 캡처 시스템(들)(102)의 하나 이상의 컴포넌트들은 고정된 방향으로 섀시에 장착되거나 액추에이터를 통해 섀시에 장착될 수 있어 섀시 및/또는 하나 이상의 컴포넌트들이 움직일 수 있도록 한다. 예들로서, 액추에이터들은 압전 액추에이터들, 모터들, 선형 액추에이터들 및 프로젝터(들) 및/또는 카메라(들)와 같이, 섀시 및/또는 그에 장착된 하나 이상의 컴포넌트들을 변위시키거나 이동시키도록 구성된 기타 장치들을 포함할 수 있다. 예를 들어, 액추에이터는 팬 모터, 틸트 모터 등을 포함할 수 있다. 팬 모터는 틸트 모터가 섀시의 피치를 변경하는 동안 섀시를 요 모션으로 회전시킬 수 있다. 일부 예들에서, 섀시는 추가로 또는 대안으로 롤 모터를 포함할 수 있으며, 이는 섀시가 롤링 모션으로 이동하게 할 수 있다. 섀시를 패닝, 틸팅 및/또는 롤링함으로써, 모션 캡처 시스템(들)(102)은 환경(100)의 각기 다른 뷰들을 캡처할 수 있다.One or more components of the motion capture system(s) (102) may be mounted to the chassis in a fixed orientation or may be mounted to the chassis via actuators to allow the chassis and/or one or more components to move. By way of example, the actuators may include piezoelectric actuators, motors, linear actuators, and other devices configured to displace or move the chassis and/or one or more components mounted thereon, such as projector(s) and/or camera(s). For example, the actuators may include a pan motor, a tilt motor, and the like. The pan motor may rotate the chassis in a yaw motion while the tilt motor changes the pitch of the chassis. In some examples, the chassis may additionally or alternatively include a roll motor, which may cause the chassis to move in a rolling motion. By panning, tilting, and/or rolling the chassis, the motion capture system(s) (102) may capture different views of the environment (100).
모션 캡처 시스템(들)(102)은 또한 레인징 시스템을 포함할 수 있다. 레인징 시스템은 모션 캡처 시스템(들)(102)으로부터 스캔된 엔티티, 객체(예를 들어, 사용자(104) 및/또는 컨트롤러(110)) 및/또는 객체 세트로 거리 정보를 제공할 수 있다. 레인징 시스템은 레이더, 광 검출 및 레인징(LIDAR), 초음파 레인징, 입체 레인징, 구조화된 광 분석, 비행 시간 관찰(예를 들어, 카메라에서 감지된 픽셀들에 대한 비행 시간 왕복 측정) 등을 포함 및/또는 사용할 수 있다. 구조화된 광 분석에서, 그리고 상기에 언급된 바와 같이, 프로젝터(들)는 환경(100) 내에서 구조화된 광 패턴을 투사할 수 있고 카메라(들)는 반사된 광 패턴의 이미지를 캡처할 수 있다. 모션 캡처 시스템(들)(102)은 프로젝터와 카메라 사이의 측면 변위로 인한 반사된 패턴의 변형을 분석하여 환경(100) 내의 각기 다른 지점들, 영역들 또는 픽셀들에 대응되는 깊이들 또는 거리들을 결정할 수 있다.The motion capture system(s) (102) may also include a ranging system. The ranging system may provide distance information from the motion capture system(s) (102) to scanned entities, objects (e.g., the user (104) and/or the controller (110)) and/or sets of objects. The ranging system may include and/or utilize radar, light detection and ranging (LIDAR), ultrasonic ranging, stereo ranging, structured light analysis, time-of-flight observations (e.g., round-trip time-of-flight measurements for pixels detected by a camera), and the like. In structured light analysis, and as noted above, the projector(s) may project a structured light pattern within the environment (100) and the camera(s) may capture images of the reflected light pattern. The motion capture system(s) (102) can analyze the deformation of the reflected pattern due to lateral displacement between the projector and the camera to determine depths or distances corresponding to different points, areas or pixels within the environment (100).
모션 캡처 시스템(들)(102)은 구조화된 광 패턴 및/또는 환경(100)으로부터의 다른 광 데이터의 복구를 도울 수 있는 모션 캡처 시스템(들)(102)의 각각의 컴포넌트들 사이의 거리(들)를 결정하거나 알 수 있다. 모션 캡처 시스템(들)(102)은 또한 다른 거리들, 치수들을 계산하기 위해 및/또는 아니면 환경(100) 내의 엔티티들 또는 객체들의 특성화를 돕기 위해 거리들을 사용할 수 있다. 프로젝터 시야 및 카메라 시야의 상대적인 각도 및 크기가 변할 수 있는 구현예들에서, 모션 캡처 시스템(들)(102)은 이러한 치수들을 결정 및/또는 알 수 있다.The motion capture system(s) (102) can determine or know the distance(s) between each of the components of the motion capture system(s) (102) that can aid in the recovery of the structured light pattern and/or other light data from the environment (100). The motion capture system(s) (102) can also use the distances to calculate other distances, dimensions, and/or otherwise aid in the characterization of entities or objects within the environment (100). In implementations where the relative angles and sizes of the projector field of view and the camera field of view can vary, the motion capture system(s) (102) can determine and/or know these dimensions.
환경(100) 내에서, 사용자(104)는 VR 헤드셋(108)을 착용하고 컨트롤러들(110)을 잡을 수 있다. VR 헤드셋(108)은 가상 환경, 게임플레이의 시뮬레이션된 뷰를 제시하거나 가상 공간 내의 객체들을 보여주는 내부 디스플레이(도시되지 않음)를 포함할 수 있다. VR 헤드셋(108)은 추가 센서들과 함께 헤드밴드를 포함할 수 있다. 일부 실시예들에서, VR 헤드셋(108)은 헬멧 또는 캡을 포함할 수 있으며 광학 신호들을 수신하기 위해 헬멧 또는 캡 상단의 다양한 위치들에 위치된 센서들을 포함할 수 있다.Within the environment (100), a user (104) may wear a VR headset (108) and hold controllers (110). The VR headset (108) may include an internal display (not shown) that presents a simulated view of the virtual environment, gameplay, or displays objects within the virtual space. The VR headset (108) may include a headband with additional sensors. In some embodiments, the VR headset (108) may include a helmet or cap and may include sensors positioned at various locations on the top of the helmet or cap to receive optical signals.
본원에 상세하게 논의된 바와 같이, 사용자(104) 및/또는 컨트롤러들(110)은 마커들을 포함할 수 있다. 모션 캡처 시스템(102)은 광을 투사하는 프로젝터(들)와 마커들의 반사들의 이미지들을 캡처하는 카메라(들)를 통해 환경(100) 내에서 사용자(104) 및/또는 컨트롤러들(110)의 위치를 검출할 수 있다. 마커들은 환경(100) 내의 사용자(104)의 방향 및/또는 위치, 또는 환경(100) 내의 사용자(104)의 일부들(예를 들어, 손 또는 손가락), 뿐만 아니라 환경(100) 내의 컨트롤러(110)의 방향 및/또는 위치를 결정하는 데 사용될 수 있다. 레인징 시스템은 또한 모션 캡처 시스템(들)(102)과 마커들 사이의 거리들을 결정하는 것을 통해 사용자(104) (또는 그 일부) 및 컨트롤러들(110)의 위치들을 결정하는 것을 도울 수 있다.As discussed in detail herein, the user (104) and/or the controllers (110) may include markers. The motion capture system (102) may detect the location of the user (104) and/or the controllers (110) within the environment (100) via projector(s) that project light and camera(s) that capture images of reflections of the markers. The markers may be used to determine the orientation and/or location of the user (104) within the environment (100), or portions of the user (104) within the environment (100) (e.g., a hand or fingers), as well as the orientation and/or location of the controllers (110) within the environment (100). A ranging system may also assist in determining the locations of the user (104) (or portions thereof) and the controllers (110) by determining distances between the motion capture system(s) (102) and the markers.
모션 캡처 시스템(들)(102), VR 헤드셋(108) 및/또는 컨트롤러들(110)은 하나 이상의 원격 컴퓨팅 리소스(들)(112)에 통신적으로 결합될 수 있다. 원격 컴퓨팅 리소스(들)(112)는 환경(100) 및 모션 캡처 시스템(들)(102), VR 헤드셋(108) 및/또는 컨트롤러들(110)로부터 멀리 떨어져 있을 수 있다. 예를 들어, 모션 캡처 시스템(들)(102), VR 헤드셋(108) 및/또는 컨트롤러들(110)은 네트워크(114)를 통해 원격 컴퓨팅 리소스(들)(112)에 통 적으로 결합될 수 있다. 일부 경우에, 모션 캡처 시스템(들)(102), VR 헤드셋(108) 및/또는 컨트롤러들(110)은 유선 기술들(예를 들어, 유선, USB, 광섬유 케이블 등), 무선 기술들(예를 들어, RF, 셀룰러, 위성, 블루투스 등) 및/또는 기타 연결 기술들을 통해 네트워크(114)에 통신적으로 결합될 수 있다. 네트워크(114)는 데이터 및/또는 음성 네트워크를 포함하는 임의 유형의 통신 네트워크를 나타내며, 유선 인프라(예를 들어, 케이블, CAT5, 광섬유 케이블 등), 무선 인프라(예를 들어, RF, 셀룰러, 마이크로파, 위성, 블루투스 등) 및/또는 기타 연결 기술들을 사용하여 구현될 수 있다.The motion capture system(s) (102), the VR headset (108), and/or the controllers (110) may be communicatively coupled to one or more remote computing resource(s) (112). The remote computing resource(s) (112) may be remote from the environment (100) and the motion capture system(s) (102), the VR headset (108), and/or the controllers (110). For example, the motion capture system(s) (102), the VR headset (108), and/or the controllers (110) may be communicatively coupled to the remote computing resource(s) (112) via a network (114). In some cases, the motion capture system(s) (102), the VR headset (108), and/or the controllers (110) may be communicatively coupled to a network (114) via wired technologies (e.g., wired, USB, fiber optic cable, etc.), wireless technologies (e.g., RF, cellular, satellite, Bluetooth, etc.) and/or other connection technologies. The network (114) represents any type of communications network, including a data and/or voice network, and may be implemented using wired infrastructure (e.g., cable, CAT5, fiber optic cable, etc.), wireless infrastructure (e.g., RF, cellular, microwave, satellite, Bluetooth, etc.) and/or other connection technologies.
원격 컴퓨팅 리소스(들)(112)는 하나 이상의 서버들로 구현될 수 있으며, 일부 경우에, 인터넷과 같은 네트워크를 통해 유지되고 액세스 할 수 있는 프로세서들, 스토리지, 소프트웨어, 데이터 액세스 등의 컴퓨팅 인프라로 구현되는 네트워크 액세스 가능 컴퓨팅 플랫폼의 일부를 형성할 수 있다. 원격 컴퓨팅 리소스(들)(112)는 서비스들을 전달하는 시스템의 물리적 위치 및 구성에 대한 최종 사용자 지식을 요구하지 않는다. 이러한 원격 컴퓨팅 리소스(들)(112)와 연관된 일반적인 표현들은 "주문형 컴퓨팅", "서비스형 소프트웨어(SaaS)", "플랫폼 컴퓨팅", "네트워크 액세스 가능 플랫폼", "클라우드 서비스들", "데이터 센터들” 등을 포함할 수 있다.The remote computing resource(s) (112) may be implemented as one or more servers, and in some cases may form part of a network-accessible computing platform implemented as computing infrastructure, such as processors, storage, software, data access, etc., that is maintained and accessible over a network, such as the Internet. The remote computing resource(s) (112) do not require end-user knowledge of the physical location and configuration of the system delivering the services. Common expressions associated with such remote computing resource(s) (112) may include “on-demand computing,” “software as a service (SaaS),” “platform computing,” “network-accessible platform,” “cloud services,” “data centers,” and the like.
모션 캡처 시스템(들)(102), VR 헤드셋(108), 및/또는 컨트롤러들(110)은 네트워크(114) 및/또는 하나 이상의 원격 컴퓨팅 리소스(들)(112)에 대한 무선 연결을 용이하게 하기 위해 하나 이상의 통신 인터페이스들을 포함할 수 있다. 추가로, 하나 이상의 통신 인터페이스들은 또한 모션 캡처 시스템(들)(102), VR 헤드셋(108) 및/또는 컨트롤러들(110) 사이의 데이터 전송(예를 들어, 서로 간의 통신)을 허용할 수 있다. 그러나, 일부 경우에, 하나 이상의 통신 인터페이스들은 또한 유선 연결들을 포함할 수 있다.The motion capture system(s) (102), the VR headset (108), and/or the controllers (110) may include one or more communication interfaces to facilitate wireless connection to a network (114) and/or one or more remote computing resource(s) (112). Additionally, the one or more communication interfaces may also allow for data transfer (e.g., communication between) the motion capture system(s) (102), the VR headset (108), and/or the controllers (110). However, in some cases, the one or more communication interfaces may also include wired connections.
원격 컴퓨팅 리소스(들)(112)은 프로세서(들)(116) 및 메모리(118)를 포함하며, 이는 하나 이상의 모델(들)(120)에 대한 액세스를 저장하거나 아니면 가질 수 있다. 원격 컴퓨팅 리소스(들)(112)은 모션 캡처 시스템(들)(102)로부터의 모션 데이터(122) 및 터치 데이터(124) 및/또는 컨트롤러들(110)로부터의 힘 데이터(126)를 수신할 수 있다. 터치 데이터(124)는 사용자의 터치 입력에 대응하는 컨트롤러(들)(110) 상의 위치(또는 위치들)를 나타내는 터치 프로파일을 포함할 수 있다. 터치 데이터(124)는 또한 컨트롤러(들)(110) 상의 터치 입력의 결여를 나타낼 수 있다. 그렇게 함으로써, 터치 데이터(124)는 어느 손가락(들)이 컨트롤러를 터치하고 있는지 및/또는 손가락(들)의 어떤 부분들이 컨트롤러(들)(110)를 터치하는지를 나타낼 수 있다. 일부 경우에, 컨트롤러(110)의 핸들을 따라 공간적으로 분포된 근접 센서들(예를 들어, 용량성 센서들)의 어레이는 터치 입력을 검출하고 터치 데이터를 생성하고/하거나 원격 컴퓨팅 리소스(들)(112)로 전송할 수 있다. 추가로, FSR은 컨트롤러(110)에 대한 터치 입력의 힘 값들을 나타내는 힘 데이터(126)를 생성할 수 있다. 본원에 설명된 바와 같이, 터치 데이터(124) 및/또는 힘 데이터(126)는 VR 환경 내에서 손의 위치, 그립 또는 제스처를 나타낼 수 있다. 차례로, 원격 컴퓨팅 리소스(들)(112)은 애니메이션(들)(128) 또는 다른 이미지 데이터를 디스플레이용 VR 헤드셋(108)으로 전송할 수 있다.The remote computing resource(s) (112) includes a processor(s) (116) and a memory (118) that may store or otherwise have access to one or more model(s) (120). The remote computing resource(s) (112) may receive motion data (122) and touch data (124) from the motion capture system(s) (102) and/or force data (126) from the controllers (110). The touch data (124) may include a touch profile indicating a location (or locations) on the controller(s) (110) corresponding to a user's touch input. The touch data (124) may also indicate a lack of touch input on the controller(s) (110). In doing so, the touch data (124) may indicate which finger(s) is touching the controller and/or which parts of the finger(s) are touching the controller(s) (110). In some cases, an array of proximity sensors (e.g., capacitive sensors) spatially distributed along the handle of the controller (110) may detect touch input and generate and/or transmit touch data to remote computing resource(s) (112). Additionally, the FSR may generate force data (126) representing force values of the touch input to the controller (110). As described herein, the touch data (124) and/or force data (126) may represent a hand position, grip, or gesture within the VR environment. In turn, the remote computing resource(s) (112) may transmit animation(s) (128) or other image data to the VR headset (108) for display.
본원에 상세하게 논의된 바와 같이, 원격 컴퓨팅 리소스(들)(112)은 모델(들)(120)을 이용하여 VR 헤드셋(108) 상에 디스플레이된 애니메이션들(128)을 생성할 수 있다. 일부 경우에, 원격 컴퓨팅 리소스(들)(112)은 모션 데이터(122), 터치 데이터(124) 및/또는 힘 데이터(126)를 사용하여 모델(들)(120)을 생성 및/또는 트레이닝시킬 수 있다. 원격 컴퓨팅 리소스(들)(112)은 사용자들과의 상호 작용들을 통해 그리고 모션 데이터(122), 터치 데이터(124) 및/또는 힘 데이터(126)를 수신하는 것을 통해 모델(들)(120)을 생성 및/또는 트레이닝시킬 수 있다. 프로세서(들)(116)는 모션 데이터(122)를 분석하고 모션 데이터(122)를 터치 데이터(124) 및/또는 힘 데이터(126)와 상관시킬 수 있다. 추가로, 프로세서(들)(116)는 터치 데이터(124)를 분석하고 터치 데이터(124)를 힘 데이터(126)와 연관시킬 수 있다.As discussed in detail herein, the remote computing resource(s) (112) may generate animations (128) displayed on the VR headset (108) using the model(s) (120). In some cases, the remote computing resource(s) (112) may generate and/or train the model(s) (120) using motion data (122), touch data (124), and/or force data (126). The remote computing resource(s) (112) may generate and/or train the model(s) (120) through interactions with users and through receiving the motion data (122), touch data (124), and/or force data (126). The processor(s) (116) may analyze the motion data (122) and correlate the motion data (122) with the touch data (124) and/or force data (126). Additionally, the processor(s) (116) can analyze the touch data (124) and associate the touch data (124) with force data (126).
프로세서(들)(116)은 사용자들의 특성들을 학습하기 위해 모션 데이터(122)의 캡처와 연관된 시간을 상관시킬 수 있다. 예를 들어, 프로세서(들)(116)은 터치 데이터(124)(예를 들어, 컨트롤러(110) 상의 위치) 및/또는 힘 데이터(126)의 특성들을 학습하고 이러한 특성들을 손의 특정 제스처들과 연관시킬 수 있다. 데이터 분석을 수행한 후, 프로세서(들)(116)는 모션 데이터(122), 터치 데이터(124) 및/또는 힘 데이터(126)를 상관시키기 위해 모델(들)(120)을 생성할 수 있다. 다시 말해, 프로세서(들)(116)는 터치 데이터(124) 및/또는 힘 데이터(126)를 분석하여 터치 데이터(124) 및/또는 힘 데이터(126)를 모션 데이터(122)에 의해 표현된 바와 같이 핸드 제스처들과 상관시키거나 그렇지 않으면 연관시킬 수 있다. 모션 데이터(122), 터치 데이터(124) 및/또는 힘 데이터(126)를 기반으로 모델(들)(120)을 트레이닝하면 모델(들)(120)이 사용자들의 후속 상호 작용들(즉, 게임플레이 동안)에서 수신된 터치 데이터(124) 및/또는 힘 데이터(126)를 사용하여 핸드 제스처들을 결정할 수 있다. 즉, 모델(들)(120)은 입력들로서 터치 데이터(124) 및/또는 힘 데이터(126)를 수신할 수 있고, 사용자(104)의 핸드 제스처를 결정하기 위해 터치 데이터(124) 및/또는 힘 데이터(126)를 이용할 수 있다. 예를 들어, 사용자가 컨트롤러(110)를 잡고 있을 때, 컨트롤러(110)는 근접 센서 어레이에 의해 생성된 터치 데이터(124)를 수신할 수 있으며, 여기서 터치 데이터(124)는 컨트롤러(110)에서 터치 입력의 위치를 나타낸다. 터치 데이터(124)는 또한 사용자의 손가락들과 컨트롤러(110) 사이의 정전 용량 값을 측정하는 것을 통해 컨트롤러(110)에 대한 사용자 손의 근접도를 나타낼 수 있다. 예를 들어, 사용자는 컨트롤러(110) 위로 자신의 손가락들을 호버링할 수 있다. 컨트롤러(110)는 터치 데이터(124)를 원격 컴퓨팅 리소스(들)(112)로 전송할 수 있으며, 여기서 터치 데이터(124)는 모델(들)(120)에 입력된다. 추가로, 컨트롤러(110)의 FSR은 터치 입력과 연관된 힘의 양을 나타내는 힘 데이터(126)를 생성할 수 있다. 컨트롤러(110)는 힘 데이터(126)를 원격 컴퓨팅 리소스(들)(112)로 전송할 수 있다.The processor(s) (116) can correlate the time associated with the capture of the motion data (122) to learn characteristics of the users. For example, the processor(s) (116) can learn characteristics of the touch data (124) (e.g., position on the controller (110)) and/or the force data (126) and associate these characteristics with specific hand gestures. After performing the data analysis, the processor(s) (116) can generate a model(s) (120) to correlate the motion data (122), the touch data (124), and/or the force data (126). In other words, the processor(s) (116) can analyze the touch data (124) and/or the force data (126) to correlate or otherwise associate the touch data (124) and/or the force data (126) with hand gestures as represented by the motion data (122). Training the model(s) (120) based on motion data (122), touch data (124), and/or force data (126) allows the model(s) (120) to use the touch data (124) and/or force data (126) received from subsequent interactions of the users (i.e., during gameplay) to determine hand gestures. That is, the model(s) (120) can receive the touch data (124) and/or force data (126) as inputs and use the touch data (124) and/or force data (126) to determine hand gestures of the user (104). For example, when a user holds a controller (110), the controller (110) can receive touch data (124) generated by a proximity sensor array, where the touch data (124) represents a location of a touch input on the controller (110). Touch data (124) may also indicate proximity of a user's hand to the controller (110) by measuring capacitance values between the user's fingers and the controller (110). For example, the user may hover his or her fingers over the controller (110). The controller (110) may transmit the touch data (124) to the remote computing resource(s) (112), where the touch data (124) is input into the model(s) (120). Additionally, the FSR of the controller (110) may generate force data (126) indicating an amount of force associated with the touch input. The controller (110) may transmit the force data (126) to the remote computing resource(s) (112).
컨트롤러(들)(110)로부터 터치 데이터(124) 및/또는 힘 데이터(126)를 수신 시, 프로세서(들)(116)는 터치 데이터(124) 및/또는 힘 데이터(126)의 특성들에 기초하여 모델(들)(120) 중 하나 이상을 선택할 수 있다. 예를 들어, 프로세서(들)(116)는 사용자(104)가 컨트롤러(110)를 잡는 힘의 양(힘 데이터(126)를 사용함) 및/또는 컨트롤러(110) 상에서 사용자(104)의 그립의 위치(터치 데이터(124)를 사용함)에 기초하여 핸드 제스처들을 생성하기 위한 특정 모델(들)(120)을 선택할 수 있다.Upon receiving touch data (124) and/or force data (126) from the controller(s) (110), the processor(s) (116) may select one or more of the model(s) (120) based on characteristics of the touch data (124) and/or force data (126). For example, the processor(s) (116) may select a particular model(s) (120) for generating hand gestures based on the amount of force with which the user (104) grips the controller (110) (using the force data (126)) and/or the location of the user's (104) grip on the controller (110) (using the touch data (124)).
추가로, 일부 경우에, 프로세서(들)(116)는 사용자 관심사, 성별, 연령 등과 같은 기타 사용자 특성들에 부분적으로 기초하여 모델(들)(120)을 선택할 수 있다. 예를 들어, 사용자(104)가 컨트롤러(110)를 잡는 방법 및/또는 컨트롤러(110)가 터치 입력을 수신하는 위치에 따라, 프로세서(들)(116)는 사용자(104)의 연령 및/또는 손 크기를 식별할 수 있다. 이러한 정보는 상이한 모델(들)(120)을 선택하고/하거나 사용자(104)의 손들을 나타내는 애니메이션(들)(128)을 생성하는데 이용될 수 있다.Additionally, in some cases, the processor(s) (116) may select the model(s) (120) based in part on other user characteristics, such as user interests, gender, age, etc. For example, based on how the user (104) holds the controller (110) and/or where the controller (110) receives touch input, the processor(s) (116) may identify the age and/or hand size of the user (104). This information may be used to select different model(s) (120) and/or generate animation(s) (128) representing the user's (104) hands.
예를 들어, 프로세서(들)(116)은 터치 데이터를 모델(들)(120)로 입력할 수 있다. 모델(들)(120)을 사용하는 프로세서(들)(116)는 터치 데이터(124) 및/또는 힘 데이터(126)에 대응하는 애니메이션(들)(128)을 생성할 수 있다. 예로서, 터치 데이터(124) 및/또는 힘 데이터(126)를 사용하여, 그리고 터치 데이터(124) 및/또는 힘 데이터(126)를 모델(들)(120)에 입력하는 것을 통해, 프로세서(들)(116)는 사용자가 주먹을 쥐고 컨트롤러(110)를 잡고 있다고 결정할 수 있다. 프로세서(들)(116)는 사용자 (104)의 주먹을 쥐고 있는 것을 묘사하는 애니메이션(128)을 생성하고 애니메이션(128)을 디스플레이용 VR 헤드셋(108)에 전송할 수 있다.For example, the processor(s) (116) can input touch data into the model(s) (120). The processor(s) (116) using the model(s) (120) can generate animation(s) (128) corresponding to the touch data (124) and/or force data (126). For example, using the touch data (124) and/or force data (126), and by inputting the touch data (124) and/or force data (126) into the model(s) (120), the processor(s) (116) can determine that the user is making a fist and holding the controller (110). The processor(s) (116) can generate an animation (128) depicting the user (104) making a fist and transmit the animation (128) to the VR headset (108) for display.
일부 경우에, 프로세서(들)(116)는 모델(들)(120)과 관련하여 저장된 프로파일들을 이용하여 터치 데이터(124) 및/또는 힘 데이터(126)에 의해 표현되는 가장 확률적인 핸드 제스처를 결정하기 위해 순위를 이용할 수 있다. 예를 들어, 프로세서(들)(116)는 특정 핸드 제스처들이 사용자의 터치 입력에 대응할 확률을 결정하기 위해 터치 데이터(124) 및/또는 힘 데이터(126)를 모델(들)(120)의 일부 또는 모델(들)(120)의 전부와 비교할 수 있다. 이러한 경우, 모델(들)(120)은 컨트롤러(110)에서 수신된 터치 입력의 위치를 나타내는 터치 데이터(124) 및/또는 컨트롤러(110)에서 터치 입력의 상대적 힘을 나타내는 힘 데이터(126)와 관련하여 저장될 수 있다. 이러한 경우, 터치 데이터(124) 및/또는 힘 데이터(126)는 모델(들)(120)을 특성화할 수 있다. 따라서, 게이플레이 동안, 원격 컴퓨팅 리소스(들)(112)이 터치 데이터(124) 및/또는 힘 데이터(126)를 수신할 때, 원격 컴퓨팅 리소스(들)(112)는 각각 수신된 터치 데이터(124) 및/또는 힘 데이터(126)를 모델(들)(120_과 관련하여 저장된 터치 데이터 및/또는 힘 데이터와 비교함으로써 애니메이션(128)을 생성하기 위해 하나 이상의 모델(들)(120)을 선택할 수 있다.In some cases, the processor(s) (116) may use rankings to determine the most probable hand gesture represented by the touch data (124) and/or the force data (126) using the profiles stored in association with the model(s) (120). For example, the processor(s) (116) may compare the touch data (124) and/or the force data (126) to some or all of the model(s) (120) to determine the probability that certain hand gestures correspond to a user's touch input. In such cases, the model(s) (120) may be stored in association with the touch data (124) representing the location of a touch input received at the controller (110) and/or the force data (126) representing the relative force of the touch input at the controller (110). In such cases, the touch data (124) and/or the force data (126) may characterize the model(s) (120). Thus, during the game play, when the remote computing resource(s) (112) receives touch data (124) and/or force data (126), the remote computing resource(s) (112) may select one or more model(s) (120) to generate the animation (128) by comparing the received touch data (124) and/or force data (126) to the stored touch data and/or force data associated with the model(s) (120).
일부 경우에, 원격 컴퓨팅 리소스(들)(112)은 또한 장래 이벤트들에 대한 예측 모델링을 수행할 수 있다. 예측 모델링은 결과가 발생할 수 있는지 또는 발생할 수 없는지에 대한 확률을 결정할 수 있다. 예를 들어, 프로세서(들)(116)는 모션 데이터(122), 터치 데이터(124) 및/또는 메모리(118)로부터 이용 가능한 힘 데이터(126)를 이용하여 장래 핸드 제스처들의 확률을 결정할 수 있다. 예로서, 제1 터치 데이터(124) 및/또는 제1 힘 데이터(126)를 수신하고, 터치 데이터(124) 및/또는 힘 데이터(126)를 모델(들)(120)에 입력하여 제1 핸드 제스처를 결정한 후, 프로세서(들)(116)는 이 다음의 제2 핸드 제스처를 예측하고 VR 헤드셋(108) 상에 디스플레이하기 위한 제2 핸드 제스처를 생성할 수 있다. 즉, 프로세서(들)(116)는 이전 모션 데이터(122), 터치 데이터(124) 및/또는 힘 데이터(126)를 이용하여 사용자(104)의 장래 핸드 제스처들을 예측하고 대응되는 애니메이션(들)(128)을 생성할 수 있다. 일부 예들에서, 예측은 VR 헤드셋(108) 상에 디스플레이되는 원격 컴퓨팅 리소스(들)(112)에 의해 생성된 제스처들 사이의 레이턴시 시간을 감소시킬 수 있다. In some cases, the remote computing resource(s) (112) may also perform predictive modeling of future events. Predictive modeling may determine the probability that an outcome may or may not occur. For example, the processor(s) (116) may use the motion data (122), the touch data (124), and/or the force data (126) available from the memory (118) to determine the probability of future hand gestures. For example, after receiving the first touch data (124) and/or the first force data (126), and inputting the touch data (124) and/or the force data (126) into the model(s) (120) to determine a first hand gesture, the processor(s) (116) may predict a subsequent second hand gesture and generate the second hand gesture for display on the VR headset (108). That is, the processor(s) (116) can use previous motion data (122), touch data (124), and/or force data (126) to predict future hand gestures of the user (104) and generate corresponding animation(s) (128). In some examples, the prediction can reduce latency time between gestures generated by the remote computing resource(s) (112) that are displayed on the VR headset (108).
추가로, 프로세서(들)(116)는 예측된 제스처와 연관된 특정 확률 및/또는 신뢰를 결정할 수 있다. 예를 들어, 예측된 제2 핸드 제스처가 특정 신뢰 레벨 또는 임계값 내에 있으면, 프로세서(들)(116)는 제2 핸드 제스처에 대응하는 애니메이션(들)(128)을 생성하고 디스플레이용 VR 헤드셋(108)에 제스처를 제공할 수 있다.Additionally, the processor(s) (116) may determine a particular probability and/or confidence associated with the predicted gesture. For example, if the predicted second hand gesture is within a particular confidence level or threshold, the processor(s) (116) may generate animation(s) (128) corresponding to the second hand gesture and provide the gesture to the VR headset (108) for display.
일부 예들에서, 통계적 분석 기술들과 같은 검증 동작들은 모델(들)(120)의 정확성을 검증할 수 있다. 즉, 상기에 언급된 바와 같이, 모션 데이터(122), 터치 데이터(124) 및/또는 힘 데이터(126)를 반복적으로 캡처하는 것을 통해, 프로세서(들)(116)는 터치 데이터(124) 및/또는 힘 데이터(126)를 모션 데이터(122) 내에 표현된 핸드 제스처들(예를 들어, 기계 학습 알고리즘들 또는 기술들)과 더 잘 상관시키기 위해 모델(들)(120)을 트레이닝시킬 수 있다. 모델(들)(120)을 트레이닝시키는 것은 디스플레이된 애니메이션(들)(128)이 컨트롤러(110)에서 수신된 터치 데이터(124) 및/또는 힘 데이터(126)를 나타내는 정확도를 증가시킬 수 있다.In some examples, validation operations, such as statistical analysis techniques, may verify the accuracy of the model(s) (120). That is, by repeatedly capturing the motion data (122), the touch data (124), and/or the force data (126), as noted above, the processor(s) (116) may train the model(s) (120) to better correlate the touch data (124) and/or the force data (126) with the hand gestures (e.g., machine learning algorithms or techniques) represented in the motion data (122). Training the model(s) (120) may increase the accuracy with which the displayed animation(s) (128) represent the touch data (124) and/or the force data (126) received by the controller (110).
프로세서(들)(116)는 또한 상이한 유형들의 사용자들과의 상호 작용들에 기초하여 모델(들)(120)을 학습하는 컴포넌트들을 포함할 수 있다. 예를 들어, 프로세서(들)(116)는 모델(들)(120)을 구축 및/또는 개선할 수 있거나, 기존 모델(들)(120)의 조합들 및/또는 혼합들을 학습할 수 있다. 본원에 설명된 모델 생성 기술들은 또한 모델(들)을 트레이닝시키기 위한 그라디언트 부스팅 기술들 및/또는 하이퍼파라미터 튜닝 중 적어도 하나를 포함할 수 있다. 그라디언트 부스팅은 예를 들어, 결정 트리일 수 있는 약한 예측 모델의들 앙상블 형태로 예측 모델을 생성하는 것을 포함할 수 있다. 예측 모델은 단계적 방식으로 구축될 수 있으며 임의의 차등 손실 함수의 최적화를 허용할 수 있다. 하이퍼파라미터 튜닝은 트레이닝 프로세스 동안 하이퍼파라미터들의 최적화를 포함할 수 있다. 예를 들어, 모델(120)은 트레이닝 데이터 세트를 수신할 수 있다. 모델(120)의 총 정확도를 평가할 때, 하이퍼파라미터들이 튜닝될 수 있다.The processor(s) (116) may also include components that learn the model(s) (120) based on interactions with different types of users. For example, the processor(s) (116) may build and/or improve the model(s) (120), or learn combinations and/or blends of existing model(s) (120). The model generation techniques described herein may also include at least one of gradient boosting techniques and/or hyperparameter tuning for training the model(s). Gradient boosting may include generating the predictive model in the form of an ensemble of weak predictive models, which may be decision trees, for example. The predictive model may be built in a stepwise manner and may allow for optimization of any differential loss function. Hyperparameter tuning may include optimization of hyperparameters during the training process. For example, the model (120) may receive a training data set. When evaluating the overall accuracy of the model (120), hyperparameters can be tuned.
추가로, 또는 대안으로, 모델(들)(120)을 트레이닝시키는 것은 모델(들)(120)의 정확도를 증가시키는 입력 특징들 및/또는 모델(들)(120)의 정확도를 감소시키거나 모델(들)(120)에 전혀 또는 거의 영향을 미치지 않는 다른 입력 특징들을 식별하는 것을 포함할 수 있다. 모델(들)(120)은 정확도를 감소시키거나 정확도에 전혀 또는 거의 영향을 미치지 않는 특징들을 사용하는 것을 자제하면서 정확도를 증가시키는 특징들을 이용하도록 재정비될 수 있다.Additionally, or alternatively, training the model(s) (120) may include identifying input features that increase the accuracy of the model(s) (120) and/or other input features that decrease the accuracy of the model(s) (120) or have little or no effect on the accuracy of the model(s) (120). The model(s) (120) may be retrained to utilize features that increase accuracy while refraining from utilizing features that decrease accuracy or have little or no effect on accuracy.
본원에 사용된 바와 같이, 프로세서(들)(116)와 같은, 프로세서는 다중 프로세서들 및/또는 다중 코어들을 갖는 프로세서를 포함할 수 있다. 또한, 프로세서들은 서로 다른 유형의 하나 이상이의 코어들을 포함할 수 있다. 예를 들어, 프로세서들은 어플리케이션 프로세서 유닛들, 그래픽 처리 유닛들 등을 포함할 수 있다. 일 구현예에서, 프로세서는 마이크로컨트롤러 및/또는 마이크로프로세서를 포함할 수 있다. 프로세서(들)(116)는 그래픽 처리 유닛(GPU), 마이크로프로세서, 디지털 신호 프로세서 또는 당업계에 알려진 다른 처리 유닛들 또는 컴포넌트들을 포함할 수 있다. 대안으로 또는 추가로, 본원에 기능적으로 설명된 것은 적어도 부분적으로 하나 이상의 하드웨어 로직 컴포넌트들에 의해 수행될 수 있다. 예를 들어, 그리고 제한 없이, 사용될 수 있는 예시적인 유형의 하드웨어 로직 컴포넌트들은 필드 프로그램 가능 게이트 어레이들(FPGA들), 어플리케이션별 집적 회로들(ASIC들), 어플리케이션별 표준 제품들(ASSP들), 시스템 온 칩시스템들(SOC), 복합 프로그램 가능 로직 장치들(CPLD들) 등을 CPLD (복잡한 프로그래밍 가능 논리 장치) 등을 포함한다. 추가로, 프로세서(들)(116) 각각은 프로그램 컴포넌트들, 프로그램 데이터 및/또는 하나 이상의 운영 체제들을 저장할 수 있는 자체 로컬 메모리를 가질 수 있다.As used herein, a processor, such as processor(s) (116), may include multiple processors and/or processors having multiple cores. Additionally, the processors may include one or more cores of different types. For example, the processors may include application processor units, graphics processing units, etc. In one implementation, the processor may include a microcontroller and/or a microprocessor. The processor(s) (116) may include a graphics processing unit (GPU), a microprocessor, a digital signal processor, or other processing units or components known in the art. Alternatively or additionally, what is functionally described herein may be performed at least in part by one or more hardware logic components. For example, and without limitation, exemplary types of hardware logic components that may be used include field programmable gate arrays (FPGAs), application specific integrated circuits (ASICs), application specific standard products (ASSPs), systems on a chip (SOC), complex programmable logic devices (CPLDs), and the like. Additionally, each of the processor(s) (116) may have its own local memory that may store program components, program data, and/or one or more operating systems.
메모리는 컴퓨터 판독 가능 인스터럭션들, 데이터 구조들, 프로그램 컴포넌트들 또는 기타 데이터와 같은 정보의 저장을 위한 임의의 방법 또는 기술로 구현된 휘발성 및 비휘발성 메모리, 착탈식 및 비착탈식 매체를 포함할 수 있다. 이러한 메모리(118)는 이에 제한되는 것은 아니나, RAM, ROM, EEPROM, 플래시 메모리 또는 기타 메모리 기술, CD-ROM, 디지털 다용도 디스크(DVD) 또는 기타 광학 스토리지, 자기 카세트, 자기 테이프, 자기 디스크 스토리지 또는 기타 자기 저장 장치들, RAID 저장 시스템들 또는 원하는 정보를 저장하는 데 사용될 수 있고 컴퓨팅 장치에 의해 액세스될 수 있는 임의의 기타 매체를 포함할 수 있다. 메모리(118)는 컴퓨터 판독 가능 저장 매체("CRSM")로서 구현될 수 있으며, 이는 메모리(118)에 저장된 인스트럭션들 실행하기 위해 프로세서(들)(116)에 의해 액세스 가능한 임의의 이용 가능한 물리적 매체일 수 있다. 한 기본 구현예에서, CRSM은 랜덤 액세스 메모리("RAM") 및 플래시 메모리를 포함할 수 있다. 다른 구현예들에서, CRSM은 이에 제한되는 것은 아닌, 읽기 전용 메모리("ROM"), 전기적으로 소거 가능한 프로그램 가능 읽기 전용 메모리("EEPROM") 또는 원하는 정보를 저장하는 데 사용될 수 있고 프로세서(들)에 의해 처리될 수 있는 임의의 다른 유형의 매체를 포함할 수 있다.Memory may include volatile and nonvolatile memory, removable and non-removable media implemented in any method or technology for storage of information, such as computer-readable instructions, data structures, program components or other data. Such memory (118) may include, but is not limited to, RAM, ROM, EEPROM, flash memory or other memory technology, CD-ROM, digital versatile disks (DVDs) or other optical storage, magnetic cassettes, magnetic tape, magnetic disk storage or other magnetic storage devices, RAID storage systems or any other medium that may be used to store the desired information and that may be accessed by the computing device. Memory (118) may be implemented as a computer-readable storage medium (“CRSM”), which may be any available physical medium that is accessible by the processor(s) (116) to execute instructions stored in the memory (118). In one basic implementation, CRSM may include random access memory (“RAM”) and flash memory. In other implementations, the CRSM may include, but is not limited to, read-only memory (“ROM”), electrically erasable programmable read-only memory (“EEPROM”), or any other type of medium that can be used to store desired information and that can be processed by the processor(s).
예시적인 컨트롤러Example controller
도 2는 컨트롤러(110) (이는 도 1의 컨트롤러(110)를 나타낼 수 있고/있거나 이와 유사할 수 있음)를 잡고 있는 사용자(104)를 도시한다. 컨트롤러(110)는 핸들, 스트랩, 그립 등과 같은 컨트롤러(110)의 임의의 부분에 결합되고/되거나 부착될 수 있는 마커들(200)을 포함할 수 있다. 유사하게, 사용자(104)의 일부들은 손가락 끝, 너클, 손가락 관절, 손목 등과 같이, 사용자(104)의 손에 및/또는 이를 따라 부착되는 마커들(202)을 포함할 수 있다. 일부 경우에, 마커들(200, 202)은 접착제들을 사용하여, 각각 사용자(104) 및/또는 컨트롤러(110)에 부착될 수 있다. FIG. 2 illustrates a user (104) holding a controller (110) (which may represent and/or be similar to the controller (110) of FIG. 1 ). The controller (110) may include markers (200) that may be coupled and/or attached to any portion of the controller (110), such as a handle, a strap, a grip, and the like. Similarly, portions of the user (104) may include markers (202) that are attached to and/or along the hand of the user (104), such as a fingertip, a knuckle, a knuckle, a wrist, and the like. In some cases, the markers (200, 202) may be attached to the user (104) and/or the controller (110), respectively, using adhesives.
마커들(200, 202)은 모션 캡처 시스템(들)(102)의 프로젝터(들)에 의해 방출되는 전자기 방사(예를 들어, 적외선 광)에 반응하는 적외선 요소들, 반사기들 및/또는 이미지들을 포함할 수 있다. 추가로 또는 대안으로, 마커들(200, 202)은 모션 캡처 시스템(들)(102)의 카메라들에 의해 캡처된 전자기 방사(예를 들어, 적외선 광)를 방출하는 트랙킹 비콘들을 포함할 수 있다.The markers (200, 202) may include infrared elements, reflectors and/or images that respond to electromagnetic radiation (e.g., infrared light) emitted by the projector(s) of the motion capture system(s) (102). Additionally or alternatively, the markers (200, 202) may include tracking beacons that emit electromagnetic radiation (e.g., infrared light) that is captured by the cameras of the motion capture system(s) (102).
상기에 언급된 바와 같이, 모션 캡처 시스템(들)(102)은 마커들(200, 202)을 검출하기 위해 환경(100) 및 그 안에 포함된 객체들과 같은, 환경의 적어도 일부를 스캔할 수 있다. 예를 들어, 프로젝터(들)는 사용자(104) 및 컨트롤러(들)(110)를 향해 적외선 광을 투사할 수 있고, 마커들(200, 202)은 광을 반사할 수 있으며, 모션 캡처 시스템(들)(102)의 카메라(들) 및/또는 센서들은 반사된 광을 캡처할 수 있다. 그 안에서, 이미지들을 분석하는 것을 통해, 컨트롤러(들)(110) 및/또는 사용자(104)의 손의 위치 및/또는 방향이 결정될 수 있다. 예를 들어, 원격 컴퓨팅 리소스(들)(112)(또는 다른 컴퓨팅 장치들)는 카메라들에 의해 캡처된 이미지들을 분석 및 파싱할 수 있으며, 환경(100) 내의 마커들(200, 202)의 위치들을 식별할 수 있다. 원격 컴퓨팅 리소스(들)(112)는 마커들(200, 202)의 위치를 사용하여, 사용자(104)에 의해 수행된 제스처들, 손 위치들, 손가락 위치들(즉, 어떤 손가락들이 펴지고, 말려지는지 등) 등을 결정할 수 있다. 추가로, 모션 캡처 시스템(들)(102)(또는 기타 컴퓨팅 시스템들)은 마커들(200, 202)의 위치/패턴에 관한 정보를 활용하여 손을 나타내는 골격 모델(예를 들어, 애니메이션화된 3D 골격 모델) 및 손의 제스처(예를 들어, 주먹을 쥠)을 생성할 수 있다.As noted above, the motion capture system(s) (102) can scan at least a portion of the environment (100) and objects contained therein to detect markers (200, 202). For example, the projector(s) can project infrared light toward the user (104) and the controller(s) (110), the markers (200, 202) can reflect the light, and the cameras(s) and/or sensors of the motion capture system(s) (102) can capture the reflected light. By analyzing the images therein, the position and/or orientation of the hands of the controller(s) (110) and/or the user (104) can be determined. For example, the remote computing resource(s) (112) (or other computing devices) can analyze and parse images captured by the cameras and identify locations of markers (200, 202) within the environment (100). The remote computing resource(s) (112) can use the locations of the markers (200, 202) to determine gestures performed by the user (104), hand positions, finger positions (i.e., which fingers are open, closed, etc.). Additionally, the motion capture system(s) (102) (or other computing systems) can utilize information about the locations/patterns of the markers (200, 202) to generate a skeletal model representing the hand (e.g., an animated 3D skeletal model) and hand gestures (e.g., a fist).
도 3 내지 7은 본 개시의 예시적인 실시예에 따른 예시적인 컨트롤러(300)(도 1 및 2의 컨트롤러(110)를 나타낼 수 있고/있거나 이와 유사할 수 있음)를 도시한다. 일부 경우, VR 비디오 게임 시스템, 로봇, 무기 또는 의료 장치와 같은 전자 시스템은 컨트롤러(300)를 활용할 수 있다. 컨트롤러(300)는 핸들(312)을 갖는 컨트롤러 본체(310) 및 컨트롤로(300)를 사용자의 손(예를 들어, 사용자의 왼손)에 유지하기 위한 핸드 리테이너(320)를 포함할 수 있다. 일부 경우, 핸들(312)은 실질적으로 원통형 관형 하우징을 포함할 수 있다. 이 맥락에서, 실질적으로 원통형 형상은 일정한 직경이나 완전한 원형 단면을 가질 필요가 없다. FIGS. 3 through 7 illustrate exemplary controllers (300) (which may represent and/or be similar to the controller (110) of FIGS. 1 and 2 ) according to exemplary embodiments of the present disclosure. In some cases, electronic systems, such as VR video game systems, robots, weapons, or medical devices, may utilize the controller (300). The controller (300) may include a controller body (310) having a handle (312) and a hand retainer (320) for retaining the controller (300) in a user's hand (e.g., the user's left hand). In some cases, the handle (312) may include a substantially cylindrical tubular housing. In this context, the substantially cylindrical shape need not have a constant diameter or a perfectly circular cross-section.
컨트롤러 본체(310)는 헤드(핸들(312)과 원위 단부(311) 사이)를 포함할 수 있으며, 이는 하나 이상의 엄지 손가락으로 동작되는 컨트롤들(314, 315, 316)을 선택적으로 포함할 수 있다. 예를 들어, 헤드는 틸팅 버튼, 또는 정상 작동 동안 그리고 컨트롤러(300)가 사용자의 손에 쥐여져 있는 동안 사용자의 엄지 손가락으로 편리하게 조작되는 엄지 손가락으로 작동되는 컨트롤로 간주되는 임의의 다른 버튼, 노브, 휠, 조이스틱 또는 트랙볼을 포함할 수 있다.The controller body (310) may include a head (between the handle (312) and the distal end (311)) that may optionally include one or more thumb-operated controls (314, 315, 316). For example, the head may include a tilt button, or any other button, knob, wheel, joystick or trackball that is considered a thumb-operated control that is conveniently operated by the user's thumb during normal operation and while the controller (300) is held in the user's hand.
일부 경우에, 컨트롤러(300)는 컨트롤러 본체(310)에 고정되는 트랙킹 부재(330)를 포함할 수 있으며, 트랙킹 부재(330)의 두 대향하는 원위 단부들 중 대응하는 하나로부터 각각 돌출된 두 개의 코들(332, 334)을 포함할 수 있다. 일부 경우, 트랙킹 부재(330)는 아치형 형상을 갖는 트랙킹 호를 포함할 수 있다. 일부 경우에, 트랙킹 부재(330)는 그 안에/그 위에 배치된 복수의 트랙킹 변환기들(도 2의 마커들(200, 202)을 나타낼 수 있고/있거나 이와 유사 할 수 있는)을 포함할 수 있다. 일부 경우에, 각 돌출 코(332, 334)는 적어도 하나의 추적 변환기를 포함할 수 있다. 추가로 또는 대안으로, 컨트롤러 본체(310)는 적어도 하나의 원위 트랙킹 트랜스듀서가 원위 단부(311)에 인접하게 배치된 트랙킹 트랜스듀서들을 포함할 수 있다. 트랙킹 센서들을 포함할 수 있는 트랙킹 트랜스듀서들은 모션 캡처 시스템(들)(102)에 의해 방출된 전자기 방사선(예를 들어, 적외선 광)에 응답할 수 있다. 추가로 또는 대안으로, 트랙킹 트랜스듀서들은 모션 캡처 시스템(들)(102)의 카메라들에 의해 수신되는 전자기 방사(예를 들어, 적외선 광)를 방출하는 트랙킹 비콘들을 포함할 수 있다. 예를 들어, 모션 캡처 시스템(들)(102)의 프로젝터들은 컨트롤러(300)를 향해 펄스 적외선 광을 널리 브로드 캐스트 할 수 있다. 여기서, 트랙킹 부재(330)의 복수의 트랙킹 트랜스듀서들은 브로드캐스팅된 펄스 적외선 광을 수신하거나 그림자를 드리우는 적외선 광 센서들을 포함할 수 있다. 일부 경우에, 각 코(332, 334)에 있는 트랙킹 트랜스듀서들(예를 들어, 각 코에 있는 3개의 센서들)은 증가된 노출(즉, 사용자의 손 주위)을 위해 트랙킹 부재(330)의 각 원위 단부에 사용자의 손을 오버행시키고 허용할 수 없는 양의 그림자 없이 더 많은 각도들에서 프로젝터들에 의해 방출된 전자기 방사선을 수신하거나 전자기 방사선을 카메라들로 전송할 수 있다. In some cases, the controller (300) may include a tracking member (330) affixed to the controller body (310) and may include two noses (332, 334) each protruding from a corresponding one of two opposing distal ends of the tracking member (330). In some cases, the tracking member (330) may include a tracking arc having an arched shape. In some cases, the tracking member (330) may include a plurality of tracking transducers (which may represent and/or may be similar to markers (200, 202) of FIG. 2 ) disposed therein/on. In some cases, each protruding nose (332, 334) may include at least one tracking transducer. Additionally or alternatively, the controller body (310) may include at least one distal tracking transducer disposed adjacent the distal end (311). Tracking transducers, which may include tracking sensors, may be responsive to electromagnetic radiation (e.g., infrared light) emitted by the motion capture system(s) (102). Additionally or alternatively, the tracking transducers may include tracking beacons that emit electromagnetic radiation (e.g., infrared light) that is received by cameras of the motion capture system(s) (102). For example, projectors of the motion capture system(s) (102) may broadcast pulsed infrared light broadly toward the controller (300). Here, a plurality of tracking transducers of the tracking member (330) may include infrared light sensors that receive or cast shadows on the broadcasted pulsed infrared light. In some cases, the tracking transducers at each nose (332, 334) (e.g., three sensors at each nose) may be positioned to overhang the user's hand over each distal end of the tracking member (330) for increased exposure (i.e., around the user's hand) and to receive or transmit electromagnetic radiation emitted by the projectors to the cameras at more angles without unacceptable amounts of shadowing.
트랙킹 부재(330) 및/또는 컨트롤러 본체(310)의 재료는 서로에 대해 뚜렷하게 병진이동하거나 회전하지 않도록 함께 견고하게 고정된 하드 플라스틱과 같은 실질적으로 단단한 재료를 포함할 수 있다. 예를 들어, 도 3 내지 7에 도시된 바와 같이, 트랙킹 부재(330)는 두 위치들에서 컨트롤러 본체(310)에 결합될 수 있다. 핸드 리테이너(320)는 두 위치들 사이의 핸들(312)의 외부 표면에 대해 사용자의 손바닥을 편향시키기 위해, 이들 두 위치들에 인접한 컨트롤러(300)(예를 들어, 컨트롤러 본체(310) 및/또는 트랙킹 부재(330))에 부착될 수 있다.The material of the tracking member (330) and/or the controller body (310) may comprise a substantially rigid material, such as a hard plastic, that is rigidly secured together so as not to significantly translate or rotate relative to one another. For example, as illustrated in FIGS. 3 through 7, the tracking member (330) may be coupled to the controller body (310) at two locations. A hand retainer (320) may be attached to the controller (300) (e.g., the controller body (310) and/or the tracking member (330)) adjacent these two locations to bias the user's palm relative to the outer surface of the handle (312) between these two locations.
특정 실시예들에서, 트랙킹 부재(330) 및 컨트롤러 본체(310)는 함께 조립되는 것이 아니라 재료 연속성을 갖는 일체형 모놀리식 컴포넌트를 포함할 수 있다. 예를 들어, 단일 사출 성형 공정은 트랙킹 부재(330)와 컨트롤러 본체(310)를 함께 성형하여, 트랙킹 부재(330)와 컨트롤러 본체(310) 둘 모두를 포함하는 하나의 일체형 하드 플라스틱 컴포넌트를 생성할 수 있다. 대안으로, 트랙킹 부재(330) 및 컨트롤러 본체(310)는 나중에 함께 조립되는 개별적으로 제조된 부품들을 포함할 수 있다. 어느 경우든, 트랙킹 부재(330)는 컨트롤러 본체(310)에 부착될 수 있다.In certain embodiments, the tracking member (330) and the controller body (310) may comprise integral monolithic components having material continuity rather than being assembled together. For example, a single injection molding process may mold the tracking member (330) and the controller body (310) together to create a single integral hard plastic component that includes both the tracking member (330) and the controller body (310). Alternatively, the tracking member (330) and the controller body (310) may comprise separately manufactured parts that are later assembled together. In either case, the tracking member (330) may be attached to the controller body (310).
핸드 리테이너(320)는 도 3의 개방 위치에 도시된다. 핸드 리테이너(320)는 사용자가 자신의 시야가 VR 헤드셋(예를 들어, VR 헤드셋(108))에 의해 차단된 컨트롤러(300)를 잡을 때 핸드 리테이너(320)와 컨트롤러 본체(310) 사이에 사용자의 왼손이 삽입되는 것을 용이하게 하기 위해 곡선형 탄성 부재(322)에 의해 개방 위치에서 선택적으로 편향될 수 있다. 예를 들어, 곡선형 탄성 부재(322)는 탄성적으로 구부러지는 가요성 금속 스트립을 포함할 수 있거나, 실질적으로 탄성적으로 구부릴 수 있는 나일론과 같은 대체 플라스틱 재료를 포함할 수 있다. 쿠션 또는 패브릭 재료(324)(예를 들어, 네오프렌 외피)는 사용자 편의를 제공하기 위해 곡선형 탄성 부재(322)를 부분적으로 또는 완전히 덮을 수 있다. 대안으로, 패브릭 재료(324)는 사용자의 손을 향하는 면과 같이 곡선형 타성 부재(322)의 면에만 부착될 수 있다. The hand retainer (320) is shown in the open position in FIG. 3. The hand retainer (320) may be selectively deflected in the open position by the curved elastic member (322) to facilitate insertion of the user's left hand between the hand retainer (320) and the controller body (310) when the user is holding the controller (300) whose field of view is blocked by the VR headset (e.g., the VR headset (108)). For example, the curved elastic member (322) may comprise a flexible metal strip that is resiliently bendable, or may comprise an alternative plastic material, such as nylon, that is substantially resiliently bendable. A cushion or fabric material (324) (e.g., a neoprene outer shell) may partially or completely cover the curved elastic member (322) to provide user comfort. Alternatively, the fabric material (324) may be attached only to a side of the curved elastic member (322), such as the side facing the user's hand.
핸드 리테이너(320)는 예를 들어, 스프링 편향 초크(328)에 의해 조여지는 드로우 코드(draw cord)(326)를 포함함으로써 길이를 조정할 수 있다. 드로우 코드(326)는 끈으로 사용되는 초과 길이를 가질 수 있다. 쿠션 또는 패브릭 재료(324)는 드로우 코드(326)에 결합될 수 있다. 특정 실시예들에서, 조여진 드로우 코드(326)의 장력은 곡선형 탄성 부재(322)를 프리로드할 수 있다. 이러한 실시예들에서, 곡선형 탄성 부재(322)가 (개방 위치에서 편향하기 위해) 핸드 리테이너(320)에 부여되는 장력은 드로우 코드(326)가 풀릴 때 핸드 리테이너(320)가 자동으로 개방되게 할 수 있다. 추가로 또는 대안으로, 핸드 리테이너(320)의 길이는 클리트, 탄성 밴드(손이 삽입될 때 일시적으로 늘어나므로 손등을 누르기 위해 탄성 장력을 가함), 길이 조절 등을 허용하는 후크 및 루프 스트랩 부착과 같은, 다른 방식으로 조정될 수 있다.The hand retainer (320) may be length-adjustable, for example, by including a draw cord (326) that is tightened by a spring biased choke (328). The draw cord (326) may have excess length that is used as a strap. A cushion or fabric material (324) may be coupled to the draw cord (326). In certain embodiments, the tension of the tightened draw cord (326) may preload the curved elastic member (322). In such embodiments, the tension imparted to the hand retainer (320) by the curved elastic member (322) (to bias it in the open position) may cause the hand retainer (320) to automatically open when the draw cord (326) is released. Additionally or alternatively, the length of the hand retainer (320) may be adjusted in other ways, such as by attaching a cleat, an elastic band (which temporarily stretches when the hand is inserted, thus providing elastic tension to press against the back of the hand), a hook and loop strap to allow for length adjustment, etc.
핸드 리테이너(320)는 핸들 (312)과 트랙킹 부재(330) 사이에 배치되고, 사용자의 손등과 접촉할 수 있다. 예를 들어, 도 4는 사용자의 왼손이 그 내부에 삽입되어 있지만 컨트롤러 본체(310)를 잡지 않은 상태로 동작하는 동안의 컨트롤러(300)를 나타낸다. 도 4에서, 핸드 리테이너(320)는 손 위로 닫히고 조여져 사용자의 손바닥을 핸들(312)의 외부 표면에 대해 물리적으로 편향되도록 한다. 닫혀 있을 때, 핸드 리테이너(320)는 사용자가 컨트롤러 본체(310)를 잡지 않는 경우에도 컨트롤러(300)를 사용자의 손 안에 유지할 수 있다.The hand retainer (320) is positioned between the handle (312) and the tracking member (330) and can come into contact with the back of the user's hand. For example, FIG. 4 illustrates the controller (300) while the user's left hand is inserted therein but is not holding the controller body (310). In FIG. 4, the hand retainer (320) is closed and tightened over the hand to physically bias the user's palm against the outer surface of the handle (312). When closed, the hand retainer (320) can maintain the controller (300) in the user's hand even when the user is not holding the controller body (310).
컨트롤러 본체(310)의 핸들(312)은 외부 표면 주위에 부분적으로 또는 완전히 공간적으로 분포되는 근접 센서 어레이를 포함한다. 일부 경우에, 근접 센서 어레이의 근접 센서들은 반드시 동일한 크기일 필요는 없으며 그들 사이에 동일한 간격을 가질 필요는 없다. 일부 경우에, 근접 센서 어레이는 컨트롤러 본체(310) 주위에 공간적으로 분포된 그리드를 포함할 수 있다. 근접 센서 어레이는 핸들(312)의 외부 표면에 대한 사용자의 손가락(들)의 근접성에 반응한다. 예를 들어, 근접 센서 어레이는 핸들(312)의 외부 표면 아래에 임베디드된 용량성 센서 어레이를 포함할 수 있으며, 여기서 외부 표면은 사용자로부터 터치를 감지하기 위한 전기 절연 재료를 포함한다. 용량성 센서 어레이와 사용자 손의 일부 사이의 정전 용량은 그들 간 거리와 반비례할 수 있다. 정전 용량을 감지하기 위해, RC 오실레이터 회로는 정전 용량 센서 어레이의 요소에 연결될 수 있으며 RC 오실레이터 회로의 시정수, 및 이에 따른 진동 주기 및 주파수가 정전 용량에 따라 달라질 것이라는 점에 주목할 수 있다. 이러한 방식으로, 회로는 핸들(312)의 외부 표면으로부터 손가락(들)의 해제를 검출할 수 있다. 상기에 언급된 바와 같이, 근접 센서 어레이는 사용자로부터의 터치 입력에 응답하여 터치 데이터(예를 들어, 터치 데이터(124))를 생성할 수 있으며, 여기서 터치 데이터는 핸들(312)의 외부 표면에 대한 사용자의 손가락(들)의 근접성을 나타낸다.The handle (312) of the controller body (310) includes an array of proximity sensors that are spatially distributed partially or completely around the outer surface. In some cases, the proximity sensors of the proximity sensor array need not necessarily be of the same size and need not have the same spacing between them. In some cases, the proximity sensor array may include a grid spatially distributed around the controller body (310). The proximity sensor array responds to the proximity of a user's finger(s) to the outer surface of the handle (312). For example, the proximity sensor array may include an array of capacitive sensors embedded beneath the outer surface of the handle (312), wherein the outer surface includes an electrically insulating material for detecting touch from the user. The capacitance between the capacitive sensor array and a portion of the user's hand may be inversely proportional to the distance therebetween. To sense the capacitance, an RC oscillator circuit may be connected to elements of the capacitive sensor array, and it may be noted that the time constant of the RC oscillator circuit, and thus the oscillation period and frequency, will vary depending on the capacitance. In this manner, the circuit can detect the release of the finger(s) from the outer surface of the handle (312). As mentioned above, the proximity sensor array can generate touch data (e.g., touch data (124)) in response to touch input from a user, where the touch data indicates the proximity of the user's finger(s) to the outer surface of the handle (312).
핸드 리테이너 (320)는 사용자의 손 주위로 꽉 단단히 닫힐 때, 컨트롤러(300)가 손에서 떨어지는 것을 방지하고, 핸들 (312) 상의 근접 센서 어레이에 대해 손가락들이 과도하게 이동하는 것을 방지하여, 손가락 모션과 위치를 안정적으로 감지할 수 있다. 추가로, 모션 캡처 시스템(들)(102) 및/또는 원격 컴퓨팅 리소스(들)(112)는 제어된 캐릭터의 손의 펼침, 손가락 포인팅, 또는 컨트롤러 (300)에 대한 또는 서로에 대한 손가락들의 다른 모션들(예를 들어, 핸드 제스처들)을 렌더링하기 위해 근접 센서 어레이로부터의 터치 데이터(124)를 더 잘 사용하도록 해부학적으로 가능한 손가락들의 모션들을 구현하는 알고리즘을 포함할 수 있다. 이 방식으로, 컨트롤러(300) 및/또는 손가락들의 사용자의 움직임은 VR 게임 시스템, 방어 시스템, 의료 시스템, 산업용 로봇 또는 기계, 또는 다른 장치를 제어하는 데 도움이 될 수 있다. VR 시스템 어플리케이션들(예를 들어, 게임, 트레이닝 등을 위한)에서, 시스템은 트랙킹 트랜스듀서들의 움직임을 기반으로 던지기 모션을 렌더링할 수 있으며, 컨트롤러(300)의 핸들(312)의 외부 표면에서 사용자의 손가락들(예를 들어, 터치 데이터(124)를 사용함)의 해제를 감지하여 던진 객체의 해제를 렌더링할 수 있다.The hand retainer (320) can be configured to close tightly around the user's hand to prevent the controller (300) from falling out of the user's hand and to prevent excessive movement of the fingers relative to the proximity sensor array on the handle (312), thereby reliably detecting finger motions and positions. Additionally, the motion capture system(s) (102) and/or remote computing resource(s) (112) can include algorithms that implement anatomically possible finger motions to better utilize touch data (124) from the proximity sensor array to render hand unfolding, finger pointing, or other motions of the fingers relative to the controller (300) or relative to each other (e.g., hand gestures) of the controlled character. In this manner, the user's movements of the controller (300) and/or fingers can aid in controlling a VR gaming system, a defense system, a medical system, an industrial robot or machine, or other device. In VR system applications (e.g., for gaming, training, etc.), the system can render a throwing motion based on the movement of the tracking transducers, and can render the release of the thrown object by detecting the release of the user's fingers (e.g., using touch data (124)) from the outer surface of the handle (312) of the controller (300).
따라서, 핸드 리테이너(320)는 컨트롤러(300)가 실제로 손에서 분리되거나, 바닥에 있거나, 던지거나 및/또는 떨어지지 않고도 사용자가 컨트롤러(300)를 "놓을" 수 있게 하며, 이는 제어된 전자 시스템의 추가 기능을 가능하게 할 수 있다. 예를 들어, 컨트롤러 본체(310)의 핸들(312)에 대한 사용자의 움켜 쥠의 해제 및/또는 복원을 감지하는 것은 게임플레이 내에서 객체들에 대한 대응되는 던지기 및/또는 잡기를 나타낼 수 있다. 따라서, 핸드 리테이너(320)는 이러한 애니메이션들 동안 사용자의 손을 안전하게 고정하고 유지할 수 있다. 일부 경우에, 도 3 내지 7의 실시예에서 핸드 리테이너(320)의 위치는 예를 들어, 사용자가 VR 환경에서 감지된 프롬프트에 응답하여 움직일 때(예를 들어, VR 헤드셋(108)에 의해 실질적으로 블라인드되는 동안) 현실 세계에서의 충격으로부터 사용자의 손등을 보호하도록 트랙킹 부재(330)를 도울 수 있다.Thus, the hand retainer (320) allows the user to "let go" of the controller (300) without the controller (300) actually being separated from the hand, placed on the floor, thrown, and/or dropped, which may enable additional functionality of the controlled electronics system. For example, detecting the user's release and/or restoration of their grip on the handle (312) of the controller body (310) may indicate corresponding throws and/or grabs of objects within gameplay. Thus, the hand retainer (320) may securely secure and maintain the user's hand during such animations. In some cases, the position of the hand retainer (320) in the embodiments of FIGS. 3-7 may assist the tracking member (330) in protecting the back of the user's hand from impact in the real world, for example, when the user moves in response to a sensed prompt in the VR environment (e.g., while substantially blinded by the VR headset (108).
본원에 논의되는 바와 같이, 컨트롤러(300)는 사용자로부터의 터치들과 연관된 힘 값들(예를 들어, 힘 데이터(126))을 검출하기 위해 FSR을 포함할 수 있다. 힘 데이터(126)는 VR 환경에서 사용자의 움직임들 및/또는 그립들을 나타내기 위해 터치 데이터(124)와 함께 이용될 수 있다.As discussed herein, the controller (300) may include an FSR to detect force values associated with touches from a user (e.g., force data (126)). The force data (126) may be used in conjunction with touch data (124) to indicate movements and/or grips of the user in a VR environment.
특정 실시예들에서, 컨트롤러(300)는 컨트롤러 본체(310) 내에 배치된 충전식 배터리를 포함할 수 있고/있거나 핸드 리테이너(320)(예를 들어, 손 고정 스트랩)는 충전식 배터리에 전기적으로 결합된 전기 전도성 충전 와이어를 포함할 수 있다. 컨트롤러(300)는 또한 나머지 모션 캡처 시스템(들)(102)과 통신하기 위한 무선 주파수(RF) 트랜스미터를 포함할 수 있다. 충전식 배터리는 RF 트랜스미터에 전력을 공급할 수 있으며, 엄지 손가락으로 동작되는 컨트롤들(314, 315, 316), 컨트롤러 본체(310)의 핸들(312)에 있는 근접 센서 어레이 및/또는 트랙킹 부재(330)에 있는 트랙킹 센서들에 응답할 수 있다.In certain embodiments, the controller (300) may include a rechargeable battery disposed within the controller body (310) and/or the hand retainer (320) (e.g., a hand retention strap) may include an electrically conductive charging wire electrically coupled to the rechargeable battery. The controller (300) may also include a radio frequency (RF) transmitter for communicating with the remaining motion capture system(s) (102). The rechargeable battery may power the RF transmitter, which may be responsive to thumb-operated controls (314, 315, 316), a proximity sensor array in the handle (312) of the controller body (310), and/or tracking sensors in the tracking member (330).
도 5 및 6은 핸드 리테이너(320)가 닫혀 있을 때 및 손이 컨트롤러 본체(310)를 잡을 때의 동작 동안의 컨트롤러(300)를 도시한다. 도 5 및 6은 또한 엄지 손가락이 엄지 손가락으로 동작되는 컨트롤들(예를 들어, 트랙 패드(316)) 중 하나 이상을 동작시킬 수 있음을 예시한다. Figures 5 and 6 illustrate the controller (300) during operation when the hand retainer (320) is closed and when the hand is holding the controller body (310). Figures 5 and 6 also illustrate that the thumb can actuate one or more of the thumb-operated controls (e.g., the track pad (316)).
도 7은 특정 실시예에서, 컨트롤러(300)는 유사한 우측 컨트롤러(700)를 포함할 수 있는 한 쌍의 컨트롤러들의 좌측 컨트롤러를 포함할 수 있음을 도시한다. 특정 실시예들에서, 컨트롤러들(300, 700)은 동시에, 사용자의 양 손으로부터, 각각, 근접 센서 및 FSR 어레이로부터 터치 데이터(124) 및/또는 힘 데이터(126)를 개별적으로 생성할 수 있다. 집합적으로, 원격 컴퓨팅 리소스(들)(112)는 (모션 캡처 시스템(들)(102)의 카메라(들)로부터) 모션 데이터(122)뿐만 아니라 터치 데이터(124) 및/또는 힘 데이터(126)(컨트롤러들(300, 700)로부터)를 수신하여 VR 경험을 향상시킬 수 있다.FIG. 7 illustrates that in certain embodiments, the controller (300) may include a left controller of a pair of controllers that may include a similar right controller (700). In certain embodiments, the controllers (300, 700) may individually generate touch data (124) and/or force data (126) from the proximity sensors and FSR arrays, respectively, from the user's two hands simultaneously. Collectively, the remote computing resource(s) (112) may receive motion data (122) (from the camera(s) of the motion capture system(s) (102)) as well as touch data (124) and/or force data (126) (from the controllers (300, 700)) to enhance the VR experience.
도 8a 및 8b는 본 개시의 다른 예시적인 실시예에 따라, 각각, 우측 컨트롤러(800)의 전면도 우측 컨트롤러(800)의 후면도를 도시한다. 일부 경우에, 우측 컨트롤러(800)는 도 1의 컨트롤러(들)(110) 및 도 3 내지 7의 컨트롤러(300)에 대해 상기에 논의된 컴포넌트들을 포함할 수 있다.FIGS. 8A and 8B illustrate front and rear views of a right controller (800), respectively, according to other exemplary embodiments of the present disclosure. In some cases, the right controller (800) may include components discussed above with respect to the controller(s) (110) of FIG. 1 and the controller (300) of FIGS. 3-7.
컨트롤러(800)는 헤드(810) 및 핸들(812)을 포함하는 컨트롤러 본체를 포함할 수 있다. 도 8a 및 8b의 실시예에서, 머리(810)는 적어도 하나의 엄지 손가락으로 동작되는 컨트롤(A, B, 808)을 포함할 수 있으며, 검지 손가락으로 작동 가능한 컨트롤(예를 들어, 트리거(809))도 포함할 수 있다. 일부 경우에, 핸들(812)은 외부 쉘(840)에 의해 부분적으로 감싸인 관형 하우징을 포함할 수 있다.The controller (800) may include a controller body including a head (810) and a handle (812). In the embodiments of FIGS. 8A and 8B, the head (810) may include at least one thumb-operable control (A, B, 808), and may also include an index finger-operable control (e.g., a trigger (809)). In some cases, the handle (812) may include a tubular housing partially enclosed by an outer shell (840).
외부 쉘(840)의 내부 표면은 공간적으로 분포된 근접 센서 어레이를 포함할 수 있다. 근접 센서 어레이는 외부 쉘(840)에 대한 사용자의 손가락들의 근접에 응답할 수 있다. 근접 센서 어레이의 근접 센서들을 반드시 동일한 크기일 필요는 없으며, 이들은 반드시 서로 규칙적으로 또는 균등하게 이격되지 않아도 된다. 특정 실시예들에서, 근접 센서 어레이는 외부 쉘(840)의 내부 표면에 접합된 플렉스 회로에 연결될 수 있는 복수의 용량성 센서들일 수 있다.The inner surface of the outer shell (840) may include a spatially distributed array of proximity sensors. The proximity sensor array may respond to the proximity of a user's fingers to the outer shell (840). The proximity sensors of the proximity sensor array need not necessarily be of the same size, and they need not necessarily be regularly or evenly spaced from one another. In certain embodiments, the proximity sensor array may be a plurality of capacitive sensors that may be connected to a flex circuit bonded to the inner surface of the outer shell (840).
트랙킹 부재(830)는 헤드 (810) 및 핸들(812) 단부에서 컨트롤러 본체에 부착될 수 있다. 핸드 리테이너(820)는 헤드(810)와 핸들(812)의 단부 사이에서 외부 쉘(840)에 대해 사용자의 손바닥을 물리적으로 편향되도록 구성된다. 핸드 리테이너(820)는 바람직하게는 핸들(812)과 트택킹 부재(830) 사이에 배치되고, 길이가 조절되고 사용자의 손등에 접촉하는 핸드 리테이너 스트랩을 포함할 수 있다. 도 8a 및 8b의 실시예에서, 핸드 리테이너(820)는 코드 잠금 장치(826)의 위치에서 드로우 코드(828)에 의한 슬라이딩 모션을 선택적으로 방지하는 코드 잠금 장치(826)(핸들(812)의 원위 단부에 인접함)에 의해 길이를 조정할 수 있는 드로우 코드(828)를 포함할 수 있다.The tracking member (830) may be attached to the controller body at the ends of the head (810) and the handle (812). The hand retainer (820) is configured to physically bias the user's palm against the outer shell (840) between the ends of the head (810) and the handle (812). The hand retainer (820) is preferably positioned between the handle (812) and the tracking member (830) and may include a hand retainer strap that is adjustable in length and contacts the back of the user's hand. In the embodiments of FIGS. 8A and 8B , the hand retainer (820) may include a draw cord (828) that is adjustable in length by a cord lock device (826) (adjacent to the distal end of the handle (812)) that selectively prevents sliding motion by the draw cord (828) at the location of the cord lock device (826).
도 8a 및 8b의 실시예에서, 트랙킹 트랜스듀서들(832, 833)은 트랙킹 부재(830) 상에 배치된다. 일부 경우에, 트랙킹 부재(830)의 대향하는 원위 단부에서 돌출된 코들은 트랙킹 트랜스듀서들(822, 833)을 포함할 수 있다. 일부 경우에, 헤드(810)의 원위 영역은 추가 트랙킹 트랜스듀서들(834)을 포함할 수 있다. 트랙킹 트랜스듀서들(832, 833 및 834)은 모션 캡처 시스템(들)(102)에 의해 방출된 전자기 방사선(예를 들어, 적외선 광)에 반응하는 트랙킹 센서들을 포함할 수 있거나, 모션 캡처 시스템(들)(102)에 의해 수신된 전자기 방사선(예를 들어, 적외선 광)을 방출하는 트랙킹 비콘들을 포함할 수 있다. 예를 들어, 모션 캡처 시스템(들)(102)은 컨트롤러(800)를 향해 펄스 적외선 광을 널리 브로드캐스트하는 프로젝터(들)을 포함할 수 있다. 여기서, 복수의 트랙킹 트랜스듀서들(832, 833, 834)은 브로드캐스트된 펄스 적외선 광을 수신하는 적외선 광 센서들을 포함할 수 있다. 모션 캡처 시스템(들)(102)은 트랙킹 센서들의 응답을 수신할 수 있고, 모션 캡처 시스템(들)(102) 및/또는 원격 컴퓨팅 리소스(들)(112)는 컨트롤러(800)의 위치 및 방향을 효과적으로 추적하기 위해 이러한 응답을 해석할 수 있다.In the embodiments of FIGS. 8A and 8B, tracking transducers (832, 833) are positioned on the tracking member (830). In some cases, protruding protrusions at opposite distal ends of the tracking member (830) may include tracking transducers (822, 833). In some cases, the distal region of the head (810) may include additional tracking transducers (834). The tracking transducers (832, 833, and 834) may include tracking sensors that respond to electromagnetic radiation (e.g., infrared light) emitted by the motion capture system(s) (102), or may include tracking beacons that emit electromagnetic radiation (e.g., infrared light) received by the motion capture system(s) (102). For example, the motion capture system(s) (102) may include projector(s) that widely broadcasts pulsed infrared light toward the controller (800). Here, the plurality of tracking transducers (832, 833, 834) may include infrared light sensors that receive the broadcasted pulsed infrared light. The motion capture system(s) (102) may receive responses from the tracking sensors, and the motion capture system(s) (102) and/or remote computing resource(s) (112) may interpret these responses to effectively track the position and orientation of the controller (800).
인쇄 회로 기판(PCB)은 핸들(812) 내에 장착될 수 있으며, 컨트롤러(800) 내의 컴포넌트들(예를 들어, 버튼, 배터리 등)를 전기적으로 연결할 수 있다. PCB는 힘 감지 저항기(FSR)를 포함할 수 있으며, 컨트롤러(800)는 외부 쉘(840)을 통해 적용된 압축력을 핸들의 관형 하우징의 외부를 향해 FSR 내측으로 전달하는 플런저를 포함할 수 있다. 특정 실시예들에서, 근접 센서 어레이와 함께 FSR은 사용자에 의한 파지의 개시 및 사용자에 의한 이러한 파지의 상대적 강도 둘 모두의 감지를 용이하게 할 수 있으며, 이는 특정 게임플레이 특징들을 용이하게 할 수 있다.A printed circuit board (PCB) may be mounted within the handle (812) and may electrically connect components within the controller (800), such as buttons, a battery, etc. The PCB may include a force sensing resistor (FSR), and the controller (800) may include a plunger that transfers a compressive force applied through the outer shell (840) inwardly toward the exterior of the tubular housing of the handle. In certain embodiments, the FSR in conjunction with a proximity sensor array may facilitate detection of both the initiation of a grip by a user and the relative strength of such grip by the user, which may facilitate certain gameplay features.
예시적인 힘 감지 저항기(FSR)Example force sensing resistor (FSR)
도 9a 내지 9c는 본 개시의 예시적인 실시예에 따른 힘 감지 저항기(FSR)(900)의 서로 다른 도면들을 도시한다. 도 9c의 FSR(900)의 단면에 도시된 바와 같이, FSR(900)은 제1 기판(902)을 포함할 수 있으며, 이는 일부 경우에 폴리이미드를 포함할 수 있다. FSR(900)은 제1 기판(902) 상에 (또는 위에) 배치된 제2 기판(904)을 더 포함할 수 있다. 제1 기판(902) 및 제2 기판(904)은 FSR(900)(즉, 2-층 FSR(900))의 2개의 1차 기판들(또는 층들)을 포함할 수 있다. 그러나, FSR(900)은 추가 층들을 포함할 수 있다는 것을 이해해야 한다. 일부 경우에, 제1 기판(902)은 FSR(900)의 2개의 1차 기판들에 대해 "바닥" 또는 "베이스" 기판을 나타낼 수 있지만, 일부 경우에 제1 기판(902) 뒤에(또는 아래에) (즉, 도 9c에 도시된 바와 같은, 음의 Z 방향으로)재료 층들이 있을 수 있다.FIGS. 9A through 9C illustrate different views of a force sensing resistor (FSR) (900) according to an exemplary embodiment of the present disclosure. As shown in the cross-section of the FSR (900) in FIG. 9C , the FSR (900) may include a first substrate (902), which in some cases may include polyimide. The FSR (900) may further include a second substrate (904) disposed on (or over) the first substrate (902). The first substrate (902) and the second substrate (904) may include two primary substrates (or layers) of the FSR (900) (i.e., a two-layer FSR (900)). However, it should be understood that the FSR (900) may include additional layers. In some cases, the first substrate (902) may represent the “bottom” or “base” substrate for the two primary substrates of the FSR (900), although in some cases there may be layers of material behind (or beneath) the first substrate (902) (i.e., in the negative Z direction, as illustrated in FIG. 9C ).
제1 기판(902)은 제1 기판(902)의 전면(즉, 양의 Z 방향을 향하는 표면)에 배치된 전도성 재료를 포함한다. 전도성 재료는 복수의 맞물린 금속 핑거들을 포함할 수 있다. 한편, 제2 기판(904)(때로는 저항성 "막" 이라고도 함)은 제2 기판(904)의 후면(즉, 음의 Z 방향을 향하는 표면)에 배치된 저항성 재료를 포함할 수 있다. 저항성 재료는 일정 레벨의 전기 저항(예를 들어, 평방(kOhm/sq) 300 킬로옴(kOhm) 내지 400 kOhm/sq의 범위 내에서의 상대적으로 높은 시트 저항)을 나타내는, 잉크 조성물(예를 들어, 은 잉크, 탄소 잉크, 이들의 혼합물 등)과 같은, 반도체 재료를 포함할 수 있다. 일부 경우에, 제2 기판(904)의 시트 레지스턴스가 350 kOhm/sq이다. 그러나, 제2 기판(904)은 FSR(900)이 다른 어플리케이션들(예를 들어, 비-컨트롤러 기반 어플리케이션들)에서 사용될 때와 같이, 본원에 명시된 시트 저항 범위 밖의 값들을 포함하는 기타 시트 저항 값들을 포함할 수 있다. 일부 실시예들에서, 제2 기판(904)의 재료는 마일라를 포함할 수 있으며, 저항성 재료는 제2 기판(904)의 후면 상에 배치된다. 일부 실시예들에서, 제2 기판(904)은 후면에 저항성 재료(예를 들어, 전도성 잉크 조성물)을 갖는 폴리이미드로 제조될 수 있다. 제2 기판(904)에 폴리이미드를 사용하면 리플로우 오븐을 사용하여 FSR(900)을 대량 생산할 수 있는 반면, 마일라는 이러한 고온들을 견딜 수 없을 수 있다. The first substrate (902) includes a conductive material disposed on a front surface (i.e., a surface facing the positive Z direction) of the first substrate (902). The conductive material may include a plurality of interlocked metal fingers. Meanwhile, the second substrate (904) (sometimes referred to as a resistive “film”) may include a resistive material disposed on a back surface (i.e., a surface facing the negative Z direction) of the second substrate (904). The resistive material may include a semiconductor material, such as an ink composition (e.g., silver ink, carbon ink, mixtures thereof, etc.) that exhibits a certain level of electrical resistance (e.g., a relatively high sheet resistance in the range of 300 kiloohms (kOhm) per square (kOhm) to 400 kOhm per square (kOhm/sq). In some cases, the sheet resistance of the second substrate (904) is 350 kOhm/sq. However, the second substrate (904) may include other sheet resistance values, including values outside the sheet resistance ranges specified herein, such as when the FSR (900) is used in other applications (e.g., non-controller based applications). In some embodiments, the material of the second substrate (904) may include Mylar, with the resistive material disposed on the backside of the second substrate (904). In some embodiments, the second substrate (904) may be made of polyimide having a resistive material (e.g., a conductive ink composition) on the backside. The use of polyimide for the second substrate (904) allows for mass production of the FSR (900) using a reflow oven, whereas Mylar may not be able to withstand such high temperatures.
FSR (900)은 제1 기판(902)과 제2 기판(904) 사이에 개재된 하나 이상의 스페이서 층들을 포함할 수 있어서, 제2 기판(904)의 중앙 부분이 제1 기판(902) 위에 매달려 그로부터 이격될 수 있다. 도 9c는 제한없이, 제1 기판(902)의 주변에서 제1 기판(902) 상에 배치된 커버레이(906) 및 커버레이(906) 상에 배치된 접착제 층(908)을 포함하는 2개의 스페이서 층들을 도시한다. 커버레이(906)의 재료는 폴리이미드를 포함할 수 있으며, 따라서 제1 기판 (902)과 동일한 재료를 포함할 수 있다. 커버레이(906)의 두께(Z 방향으로 측정됨)는 10 마이크론 내지 15 마이크론 범위일 수 있다. 접착제 층(908)의 두께(Z 방향으로 측정됨)는 50 마이크론 내지 130 마이크론 범위일 수 있다. 따라서, 제2 기판(904)이 제1 기판(902)으로부터 이격되는 총 거리는 하나 이상의 스페이서 층들의 두께들(예를 들어, 커버레이(906)의 두께에 접착제 층(908)의 두께를 더한 값)의 합일 수 있다. 이러한 층들은 FSR(900)이 비-컨트롤러 기반 어플리케이션들과 같은 다른 어플리케이션들에서 사용될 때와 같이, 본원에 명시된 두께 범위를 벗어난 두께들을 포함할 수 있다. 이와 같이, 이러한 두께 범위들은 비제한적인 것으로 이해해야 한다. 추가로, 일부 경우에, 접착제 층(908)의 두께는 매우 가볍게 인가된 힘(F) 하에서 초기 반응(예를 들어, FSR(900)이 입력을 감지하기 시작함)을 허용하기 위해 가능한 한 얇게(예를 들어, 지정된 두께 범위의 하위 끝에서) 만들어진다. 접착제는 그 재료 및 두께 둘 다 FSR(900)의 강성을 증가 또는 감소시키기 위해 달라질 수 있다.The FSR (900) may include one or more spacer layers interposed between the first substrate (902) and the second substrate (904) such that a central portion of the second substrate (904) is suspended above and spaced apart from the first substrate (902). FIG. 9C illustrates two spacer layers, including, without limitation, a coverlay (906) disposed on the first substrate (902) around the periphery of the first substrate (902) and an adhesive layer (908) disposed on the coverlay (906). The material of the coverlay (906) may include polyimide, and thus may include the same material as the first substrate (902). The thickness of the coverlay (906) (measured in the Z direction) may range from 10 microns to 15 microns. The thickness of the adhesive layer (908) (measured in the Z direction) may range from 50 microns to 130 microns. Thus, the total distance that the second substrate (904) is spaced from the first substrate (902) may be the sum of the thicknesses of one or more spacer layers (e.g., the thickness of the coverlay (906) plus the thickness of the adhesive layer (908). These layers may include thicknesses outside the thickness ranges specified herein, such as when the FSR (900) is used in other applications, such as non-controller based applications. As such, it is to be understood that these thickness ranges are non-limiting. Additionally, in some cases, the thickness of the adhesive layer (908) is made as thin as possible (e.g., at the low end of the specified thickness range) to allow for an initial response (e.g., the FSR (900) begins to sense the input) under very lightly applied forces (F). The adhesive may be varied in both material and thickness to increase or decrease the stiffness of the FSR (900).
기판(904)은 제2 기판(904)의 전면 상에 힘(F)을 전달하도록 구성된 액추에이터(910)(예를 들어, 디스크 형, 순응성 플런저)를 포함할 수 있다. 액추에이터(910)의 재료는 액추에이터(910)에 힘을 가할 때 어느 정도 변형되는 순응성 재료인 포론(Poron)을 포함할 수 있다. 액추에이터(910)는 가해진 힘(F)의 중심을 맞추기 위해 FSR(900)의 활성 영역의 중심과 동심일 수 있다. 액추에이터(910)는 또한 FSR(900)의 활성 영역의 일부에 걸쳐 있어 인가된 힘(F)를 FSR(900)의 활성 영역의 해당 일부에 걸쳐 균등하게 분산시킬 수 있다. The substrate (904) may include an actuator (910) (e.g., a disk-shaped, compliant plunger) configured to transmit a force (F) across the front surface of the second substrate (904). The material of the actuator (910) may include Poron, a compliant material that deforms to some extent when force is applied to the actuator (910). The actuator (910) may be concentric with the center of the active area of the FSR (900) to center the applied force (F). The actuator (910) may also span a portion of the active area of the FSR (900) to evenly distribute the applied force (F) across that portion of the active area of the FSR (900).
제2 기판(904)의 두께(Z 방향으로 측정됨)는 50 마이크론 내지 130 마이크론 범위를 포함할 수 있다. 이 예시적인 두께에서, 제2 기판(904)는 플렉서블하다. 예를 들어, 제2 기판(904)의 재료는 전술한 범위 내의 두께로 플렉서블한 마일라를 포함할 수 있다. FSR(900)의 기능적 동작은 제2 기판(904)의 후면 상의 저항성 재료가 액추에이터(910)에 인가된 압축력(F) 하에서 제1 기판(902)의 전면 상의 전도성 재료와 접촉하도록 하기 위해 제2 기판(904)의 가요성에 의존한다. 제1 기판(902)의 두께(Z 방향으로 측정됨)는 20 마이크론 내지 30 마이크론 범위를 포함할 수 있다. 이 두께에서, 폴리이미드도 플렉서블하다. 따라서, 제1 기판(902)도 플렉서블하다. 한편, 액수에이터(910)의 두께(Z 방향으로 측정됨)는 780 마이크론 내지 810 마이크론 범위일 수 있다. 이러한 층들은 FSR(900)이 다른 어플리케이션들(예를 들어, 비-컨트롤러 기반 어플리케이션들)에서 사용될 때와 같이, 본원에 명시된 두께 범위를 벗어난 두께들을 포함할 수 있다. 이와 같이, 이러한 두께 범위들은 비제한적인 것으로 이해해야 한다.The thickness (measured in the Z direction) of the second substrate (904) can range from 50 microns to 130 microns. At this exemplary thickness, the second substrate (904) is flexible. For example, the material of the second substrate (904) can include flexible Mylar with a thickness within the range described above. The functional operation of the FSR (900) relies on the flexibility of the second substrate (904) to allow the resistive material on the back surface of the second substrate (904) to contact the conductive material on the front surface of the first substrate (902) under a compressive force (F) applied to the actuator (910). The thickness (measured in the Z direction) of the first substrate (902) can range from 20 microns to 30 microns. At this thickness, the polyimide is also flexible. Thus, the first substrate (902) is also flexible. Meanwhile, the thickness (measured in the Z direction) of the actuator (910) may range from 780 microns to 810 microns. These layers may include thicknesses outside the thickness ranges specified herein, such as when the FSR (900) is used in other applications (e.g., non-controller based applications). As such, these thickness ranges should be understood to be non-limiting.
FSR(900)은 액추에이터(910)에 가해지는 가변 힘(F)에 응답하여 다양한 저항을 나타낼 수 있다. 예를 들어, 액추에이터(910)에 가해진 힘(F)이 증가함에 따라, 저항이 감소될 수 있다. 이 방식으로, FSR(900)은 인가된 힘(F)에 의해 값이 제어되는 가변 저항기로 나타낼 수 있다. FSR(900)은 "션트 모드" FSR(900) 또는 "스루 모드" FSR(900)을 포함할 수 있다. 션트 모드 FSR(900)에서, 제1 기판(902)의 전면에 배치된 전도성 재료는 복수의 맞물린 금속 핑거들을 포함할 수 있다. 가해진 힘(F)가 액추에이터(910)의 전면 (또는 상단)에 가해지면, 제2 기판(904)의 후면에 있는 저항 재료가 맞물린 금속 핑거들 중 일부와 접촉할 수 있으며, 이는 맞물린 금속 핑거들을 션트시켜, 이에 따라 FSR(900)의 출력 단자들에 걸친 저항을 변화시킨다. 맞물린 금속 핑거들에 대한 전도성의 예는 HA 구리 또는 RA 구리와 같은 구리를 포함할 수 있다. 맞물린 금속 핑거들은 또한 금속 도금을 포함할 수 있다. The FSR (900) can exhibit a varying resistance in response to a variable force (F) applied to the actuator (910). For example, as the force (F) applied to the actuator (910) increases, the resistance can decrease. In this manner, the FSR (900) can be represented as a variable resistor whose value is controlled by the applied force (F). The FSR (900) can include a “shunt mode” FSR (900) or a “through mode” FSR (900). In a shunt mode FSR (900), the conductive material disposed on the front surface of the first substrate (902) can include a plurality of interlocked metal fingers. When an applied force (F) is applied to the front (or top) of the actuator (910), the resistive material on the back surface of the second substrate (904) may contact some of the interdigitated metal fingers, which shunts the interdigitated metal fingers, thereby changing the resistance across the output terminals of the FSR (900). An example of a conductivity for the interdigitated metal fingers may include copper, such as HA copper or RA copper. The interdigitated metal fingers may also include metal plating.
감산 제조 공정은 복수의 맞물린 금속 핑거들을 형성할 수 있다. 맞물린 금속 핑거들 사이의 핑거 폭과 간격은 FSR(900)의 최대 감도 사이에 최적의 균형을 제공하고 제조 에칭 허용 오차를 최소화할 수 있다. 일부 경우에, 맞물린 금속 핑거들은 균일한 패턴 또는 불균일한 패턴들(예를 들어, 중앙으로 향하는 더 조밀한 핑거들 및 외부로 향하는 덜 조밀한 핑거들)을 포함할 수 있다. 추가로, 일부 경우에, 금 도금 전에 기저층 구리 위에 추가 구리 도금을 추가하는 것은 감지된 저항의 바람직하지 않은 증가를 유발할 수 있으므로 금 도금 전에 기저층 구리 위에 추가 구리 도금이 없을 수 있다. 따라서, 일부 경우에, 금 도금 전에 맞물린 금속 핑거들에 임의의 추가 구리 도금의 생략은 FSR(900)에서 최적의 감도를 얻을 수 있다.The subtractive manufacturing process can form a plurality of interdigitated metal fingers. The finger width and spacing between the interdigitated metal fingers can provide an optimal balance between maximum sensitivity of the FSR (900) and minimal manufacturing etch tolerances. In some cases, the interdigitated metal fingers can include a uniform pattern or non-uniform patterns (e.g., denser fingers toward the center and less dense fingers toward the outside). Additionally, in some cases, no additional copper plating can be provided over the underlying copper prior to gold plating, as adding additional copper plating over the underlying copper prior to gold plating can result in an undesirable increase in sensed resistance. Thus, in some cases, omitting any additional copper plating on the interdigitated metal fingers prior to gold plating can achieve optimal sensitivity in the FSR (900).
스루 모드 구현예에서, 제1 기판(902) 상의 전도성 재료는 전도성 재료 상에 배치된 반도체성(또는 저항성) 재료를 갖는 전도성 재료의 고체 영역을 포함할 수 있다. 제2 기판(904)은 유사한 구조(예를 들어, 반도체성(또는 저항성) 재료가 그 위에 배치된 전도성 재료의 고체 영역)를 가질 수 있다. 각 기판(902 및 904) 상의 전도성 재료의 고체 영역은 개별 출력 단자에 결합될 수 있으며, 두 기판들(902 및 904)이 가해진 힘(F) 하에서 접촉할 때 여기 전류가 한 층을 통해 다른 층으로 통과할 수 있다. In a through-mode implementation, the conductive material on the first substrate (902) can include a solid region of conductive material having a semiconducting (or resistive) material disposed thereon. The second substrate (904) can have a similar structure (e.g., a solid region of conductive material having a semiconducting (or resistive) material disposed thereon). The solid regions of conductive material on each of the substrates (902 and 904) can be coupled to individual output terminals, such that when the two substrates (902 and 904) are in contact under an applied force (F), current can pass through one layer to the other.
이러한 구현예들을 통해, FSR(900)은 하부 기판의 재료로 마일라를 사용하는 것과 같은, 기존 FSR들에 비해 히스테리시스가 적고 (한 FSR(900)에서 다른 FSR(900)까지) 반복성이 더 높을 수 있다. 로딩 히스테리시스는 이전에 적용된 힘이 현재 FSR(900) 저항에 미치는 영향을 설명한다. 반응 곡선은 또한 단조롭고 가상의 암석을 부수거나 가상 풍선을 압착하는 등과 같은 VR 게임 시스템의 다수의 게임 메커니즘들에 활용될 수 있는 진정한 아날로그 입력을 모델링한다. 그러나, 본원의 예들은 가해진 힘(F)을 설명하지만, 제2 기판(904)의 작은 지점 대 제1 표면의 큰 영역에 인가된 동일한 양의 힘은 FSR(900)의 다른 저항 반응을 초래할 수 있기 때문에, FSR(900)은 실제로 가해진 압력(힘 x 면적)에 민감하다. 따라서, 액추에이터(910)는 가해진 힘(F) 하에서 응답 곡선의 관점에서 FSR (900)에 걸쳐 반복성을 유지하는 역할을 할 수 있다.Through these implementations, the FSR (900) can have less hysteresis and more repeatability (from one FSR (900) to another FSR (900)) than conventional FSRs, such as those that use Mylar as the material of the lower substrate. The loading hysteresis describes the effect of a previously applied force on the current FSR (900) resistance. The response curves also model a true analog input that can be utilized in many game mechanics of a VR game system, such as breaking virtual rocks or squeezing virtual balloons. However, while the examples herein describe an applied force (F), the FSR (900) is actually sensitive to the applied pressure (force x area), since the same amount of force applied to a small spot on the second substrate (904) versus a large area on the first surface can result in different resistance responses of the FSR (900). Therefore, the actuator (910) can serve to maintain repeatability across the FSR (900) in terms of the response curve under the applied force (F).
FSR(900)은 외력(또는 로드)이 없는 상태에서 개방 회로를 포함할 수 있다. 일부 실시예들에서, 제로 또는 무시할 수 있는 가해진 힘 하에서 제1 기판(902) 및 제2 기판(904)의 임의의 접촉을 설명하기 위해, 임계 회로는 제1 기판(902) 및 제2 기판(904)이 "접촉하고 있는 것으로 간주되는 임계 저항 값을 설정할 수 있으며, 이는 "2개의 1차 기판들(즉, 902 및 904)이 실제로 접촉하더라도 FSR (900)은 임계 저항 값이 충족될 때까지 개방 회로를 나타낼 수 있음을 의미한다.The FSR (900) may include an open circuit in the absence of an external force (or load). In some embodiments, to account for any contact of the first substrate (902) and the second substrate (904) under zero or negligible applied force, the threshold circuit may set a threshold resistance value above which the first substrate (902) and the second substrate (904) are considered to be "in contact," meaning that even if the two primary substrates (i.e., 902 and 904) are actually in contact, the FSR (900) may indicate an open circuit until the threshold resistance value is met.
FSR(900)은 본원에 개시된 컨트롤러(110, 300, 800)와 같은, 핸드 헬드 컨트롤러 내의 구조물의 평면 표면에 장착될 수 있다. FSR(900)은 컨트롤러 본체의 외부 표면에 가해진 사용자의 터치 입력들과 연관된 힘(예를 들어, 컨트롤 시 누르는 손가락에 의해 가해진 힘, 컨트롤로의 핸들을 손으로 파지하여 인가된 힘)의 양에 대응되는 저항 값을 측정하기 위해 컨트롤러 본체 내의 임의의 적절한 위치에 장착될 수 있다. FSR(900)은 PCB의 평면형 표면에 장착될 수 있으며, 그 자체는 핸들의 관형 하우징 내에 장착될 수 있다. 이 구성에서, 플런저는 FSR(900)의 액추에이터(910)와 인터페이스할 수 있으며, 이는 플런저로부터 액추에이터(910)로 압축력을 전달하는 것을 허용할 수 있다. 그러나, 플런저가 생략되고 액추에이터(910)가 핸들의 관형 하우징의 일부와 인터페이스 할 수 있는 다른 구성들이 가능하다.The FSR (900) may be mounted on a planar surface of a structure within a handheld controller, such as the controllers (110, 300, 800) disclosed herein. The FSR (900) may be mounted at any suitable location within the controller body to measure a resistance value corresponding to an amount of force associated with user touch inputs applied to an external surface of the controller body (e.g., force applied by a finger pressing when controlling, force applied by hand gripping a handle of the control). The FSR (900) may be mounted on a planar surface of the PCB, and may itself be mounted within the tubular housing of the handle. In this configuration, the plunger may interface with the actuator (910) of the FSR (900), which may allow a compressive force to be transferred from the plunger to the actuator (910). However, other configurations are possible in which the plunger is omitted and the actuator (910) interfaces with a portion of the tubular housing of the handle.
추가로, 또는 대안으로, FSR(900)은 헤드(핸들과 원위 단부 사이) 내의 구조물의 평면 표면에 장착할 수 있다. 구조는 엄지 손가락으로 작동되는 컨트롤들 중 하나 이상의 아래의 헤드 내부내에 장착될 수 있다. 예를 들어, FRS(900)는 엄지 손가락으로 작동되는 컨트롤(예를 들어, 트랙 패드) 아래에 장착될 수 있다. 따라서, 컨트롤러가 동작하는 동안 사용자의 엄지가 엄지로 작동되는 컨트롤을 누를 때, 엄지로 작동되는 컨트롤 아래에 위치한 FSR(900)은 사용자의 엄지가 엄지로 작동하는 컨트롤에 가해지는 힘의 양에 해당하는 저항 값을 측정할 수 있다. 일부 경우에, 컨트롤러는 핸들 내에 장착된 하나 이상의 FSR들(900) 및/또는 컨트롤러 본체의 헤드 상의 하나 이상의 대응하는 컨트롤들 아래에 장착된 하나 이상의 FSR들(900)과 같이, 컨트롤러 본체 내에 배치된 다수의 FSR들(900)을 포함할 수 있다.Additionally, or alternatively, the FSR (900) may be mounted on a planar surface of the structure within the head (between the handle and the distal end). The structure may be mounted within the head under one or more of the thumb-actuated controls. For example, the FSR (900) may be mounted under a thumb-actuated control (e.g., a track pad). Thus, when the user's thumb depresses the thumb-actuated control while the controller is in operation, the FSR (900) located under the thumb-actuated control may measure a resistance value corresponding to the amount of force applied by the user's thumb to the thumb-actuated control. In some cases, the controller may include multiple FSRs (900) disposed within the controller body, such as one or more FSRs (900) mounted within the handle and/or one or more FSRs (900) mounted under one or more corresponding controls on the head of the controller body.
FSR(900)은 컨트롤러에서 구현될 때 가변 아날로그 입력들을 활성화할 수 있다. 예를 들어, 다양한 양의 힘으로 핸들을 파지하거나 엄지 손가락으로 동작되는 컨트롤(들)을 누르면 FSR(900)의 저항이 인가된 힘(F)에 따라 변할 수 있도록 할 수 있다. 저항은 게임 메커니즘들(예를 들어, 객체들을 집어 던지기)을 제어하기 위한 FSR 입력을 나타내는 다양한 디지털 값으로 변환될 수 있다.The FSR (900) may activate variable analog inputs when implemented in a controller. For example, the resistance of the FSR (900) may be varied based on the applied force (F) by gripping the handle with varying amounts of force or pressing the thumb-operated control(s). The resistance may be converted to various digital values representing FSR inputs for controlling game mechanics (e.g., picking up and throwing objects).
FSR(900)은 다양한 터치들 또는 터치 스타일들을 활용할 수 있다. 예를 들어, "단순 임계값" 스타일은 디지털화된 FSR 입력 값이 임계값을 충족하거나 초과할 때 FSR 입력 이벤트가 발생함을 의미할 수 있다. 디지털화된 FSR 입력 값은 FSR(900)에 의해 측정된 특정 저항값에 해당하고, 이는 다시 FSR(900)에 인가된 특정 힘의 양에 해당하므로, 이러한 스타일의 "소프트 프레스"는 FSR(900)에 의해 측정된 저항값이 임계 저항값을 충족할 때 및/또는 인가된 힘(F)가 힘의 임계량을 충족할 때 FSR 입력 이벤트를 등록하는 것으로 생각할 수도 있다. 예를 들어, 컨트롤러(예를 들어, 컨트롤러(110, 300 및/또는 800))의 핸들이 FSR(900)을 포함하는 경우, 핸들은 힘의 임계값에 도달될 때까지 압착될 수 있으며, 이에 응답하여 FSR(900) 입력 이벤트가 "소프트 프레스"로 등록된다. "언프레스"에 필요한 힘은 디바운스 목적 및/또는 물리적 스냅 비율로 택트 스위치(tact switch)를 모방하기 위한 임계값의 일부일 수 있다. "헤어 트리거" 스타일은 베이스라인 임계값을 설정할 수 있으며, FSR(900)과 관련된 디지털화된 FSR 입력 값은 베이스라인 임계값을 충족하거나 초과하면 바인딩이 활성화된다(즉, FSR 입력 이벤트가 등록되어 있으며, 프레스 앤 홀드 버튼 작동과 유사함). 이후, 임의의 후속 힘의 감소는 바인딩을 비활성화(즉, FSR 입력 이벤트가 "등록되지 않음", 사용자가 버튼을 놓는 것과 유사함)하고, 바인딩을 비활성화한 후 힘이 증가하면 바인딩이 다시 활성화된다. "힙 파이어" 스타일은 "힙 파이어" 스타일은 다수의 바인딩 레벨들을 갖는 구성에서, 시간 지연을 이용하여, 시간 지연이 더 높은 임계값에 빠르게 충분히 도달하는 경우 더 낮은 FSR 입력 값들을 무시하는 데 사용될 수 있다는 점을 제외하면, 소프트 프레스의 "단순 임계값" 스타일과 유사할 수 있다. 시간 지연의 양은 다양한 서브 스타일들(예를 들어, 적극, 보통 및 완화) 사이에서 달라진다.The FSR (900) may utilize a variety of touches or touch styles. For example, a "simple threshold" style may mean that an FSR input event occurs when a digitized FSR input value meets or exceeds a threshold value. Since the digitized FSR input value corresponds to a particular resistance value measured by the FSR (900), which in turn corresponds to a particular amount of force applied to the FSR (900), a "soft press" of this style may be thought of as registering an FSR input event when the resistance value measured by the FSR (900) meets the threshold resistance value and/or when the applied force (F) meets a threshold amount of force. For example, if a handle of a controller (e.g., controllers (110, 300, and/or 800)) includes an FSR (900), the handle may be squeezed until a force threshold is reached, in response to which an FSR (900) input event is registered as a "soft press." The force required to "unpress" may be part of a threshold for debounce purposes and/or to mimic a tact switch with a physical snap rate. The "hair trigger" style may set a baseline threshold, and when a digitized FSR input value associated with the FSR (900) meets or exceeds the baseline threshold, the binding is activated (i.e., the FSR input event is registered, similar to a press-and-hold button actuation). Any subsequent decrease in force will then deactivate the binding (i.e., the FSR input event is "unregistered", similar to the user releasing the button), and an increase in force after deactivating the binding will reactivate the binding. The "hip fire" style may be similar to the "simple threshold" style of the soft press, except that in configurations with multiple binding levels, the "hip fire" style may be used to utilize a time delay to override lower FSR input values if the time delay reaches the higher threshold quickly enough. The amount of time delay varies between different substyles (e.g., aggressive, normal, and relaxed).
일부 경우에, 추가 소프트 프레스 임계값은 소프트 프레스의 "힙 파이어" 스타일에 대한 임계값과 같은 멀티-레벨 임계값을 포함할 수 있다. FSR 기반 입력을 위한 다양한 스타일의 소프트 프레스는 사용자가 다양한 힘으로 FSR 기반 입력 메커니즘을 파지하거나 눌러서 다수의 다른 게임 관련 아날로그 입력들을 활성화시킬 수 있다. 예를 들어, VR 게임은 사용자가 힘을 증가시키면서 컨트롤러 본체의 핸들을 꽉 쥐어 바위를 부수거나 풍선을 압착하도록 할 수 있다. 다른 예로서, 슈팅 기반 게임은 사용자가 서로 다른 레벨의 인가된 함으로 엄지 손가락으로 작동하는 컨트롤을 눌러 서로 다른 유형의 무기들 사이를 토글링할 수 있도록 한다.In some cases, the additional soft press thresholds may include multi-level thresholds, such as a threshold for a "hip fire" style of soft press. Different styles of soft presses for FSR-based inputs may allow the user to activate a number of different game-related analog inputs by gripping or pressing the FSR-based input mechanism with different forces. For example, a VR game may allow the user to squeeze the handle of the controller body with increasing force to break rocks or squeeze balloons. As another example, a shooter-based game may allow the user to toggle between different types of weapons by pressing a thumb-operated control with different levels of authorization.
일부 경우에, 사용자는 FSR 기반 입력 메커니즘의 작동과 관련된 손의 피로를 줄이기 위해 임계값을 조정할 수 있다. 일부 경우에, 임계값은 특정 게임에 대한 기본 임계값(예를 들어, 슈팅 게임에 대한 더 낮은 기본 임계값, 탐험 게임에 대한 더 높은 기본 임계값 등)을 포함할 수 있다. In some cases, the user may adjust the threshold to reduce hand fatigue associated with operating the FSR-based input mechanism. In some cases, the threshold may include a default threshold for a particular game (e.g., a lower default threshold for a shooter game, a higher default threshold for an exploration game, etc.).
예시적인 핸드 제스처들Example hand gestures
도 10a 내지 10f는 컨트롤러(1002)(이는 도 1 및 2의 컨트롤러(110), 도 3 내지 7의 컨트롤러(300) 및/또는 도 8의 컨트롤러(800)를 나타낼 수 있고/있거나 이와 유사할 수 있음)를 잡고 있는 사용자(1000)의 서로 다른 변형들을 예시한다. 일반적으로, 그리고 상기 개시에 따르면, 컨트롤러(1002)에서 사용자(1000)의 터치 입력의 위치 및 힘을 감지하는 것을 통해(예를 들어, 근접 센서 및/또는 FSR(900) 어레이를 사용하여), 원격 컴퓨팅 리소스(들)(112)는 VR 헤드셋(108) 상에서 디스플레이 하기 위한 애니메이션(예를 들어, 애니메이션(128))을 생성할 수 있다. 애니메이션은 각각 도 10a 내지 10f에 묘사된 핸드 제스처들과 유사할 수 있다. 즉, 이전에 트레이닝된 모델(들) (120)을 사용하여, 원격 컴퓨팅 리소스(들)(112)는 컨트롤러(들)(1002)로부터 수신된 터치 데이터(124) 및/또는 힘 데이터(126)에 기초하여 손의 이미지들을 생성할 수 있다.FIGS. 10A-10F illustrate different variations of a user (1000) holding a controller (1002) (which may represent and/or be similar to the controller (110) of FIGS. 1 and 2 , the controller (300) of FIGS. 3-7 , and/or the controller (800) of FIG. 8 ). In general, and in accordance with the disclosure, by detecting the location and force of a touch input of the user (1000) at the controller (1002) (e.g., using a proximity sensor and/or an array of FSRs (900)), the remote computing resource(s) (112) may generate an animation (e.g., the animation (128)) for display on the VR headset (108). The animation may be similar to the hand gestures depicted in FIGS. 10A-10F , respectively. That is, using previously trained model(s) (120), the remote computing resource(s) (112) can generate images of the hand based on touch data (124) and/or force data (126) received from the controller(s) (1002).
도 10a를 시작으로, 사용자(1000)는 펼쳐 잡고 있는 컨트롤러(1002)를 유지하는 것으로 도시된다. 사용자(1000)의 손가락들 및 엄지가 컨트롤러(1002)에 접촉하지 않지만, 대신에 컨트롤러(1002)가 사용자(1000)의 손바닥에 접촉할 수 있다. 컨트롤러(1002)는 이 접촉을 검출하고, 터치 데이터(124) 및/또는 힘 데이터(126)를 생성하고, 터치 데이터(124) 및/또는 힘 데이터(126)를 원격 컴퓨팅 리소스(들)(112)로 전송할 수 있다. 여기서, 터치 데이터(124)는 사용자(1000)의 손바닥이 컨트롤러(1002)를 터치함을 표현하거나 나타낼 수 있다. 사용자(1000)가 자신의 손가락들로 도 110a의 컨트롤러(1002)를 파지하지 않기 때문에, 힘 데이터(126)는 사용자(1000)의 손바닥이 컨트롤러(1002)에 대해 편향되는 힘의 수준을 나타낼 수 있다. 일부 경우에, 사용자(1000)가 컨트롤러(1002)를 파지하지 않기 때문에, 컨트롤러(1002)는 핸들(312)의 외부 표면에 대한 사용자의 손가락(들)의 근접성을 나타내는 터치 데이터(124)만 생성할 수 있다.Beginning with FIG. 10A, a user (1000) is depicted holding a controller (1002) in an unfolded position. The user's (1000) fingers and thumb do not contact the controller (1002), but instead the controller (1002) may contact the palm of the user's (1000) hand. The controller (1002) may detect this contact, generate touch data (124) and/or force data (126), and transmit the touch data (124) and/or force data (126) to the remote computing resource(s) (112). Here, the touch data (124) may represent or indicate that the palm of the user's (1000) is touching the controller (1002). Since the user (1000) is not gripping the controller (1002) of FIG. 110a with his or her fingers, the force data (126) may represent the level of force with which the palm of the user (1000) is biased against the controller (1002). In some cases, since the user (1000) is not gripping the controller (1002), the controller (1002) may only generate touch data (124) that represents the proximity of the user's finger(s) to the outer surface of the handle (312).
원격 컴퓨팅 리소스(들)는 핸드 제스처에 대응하는 손 이미지 데이터(예를 들어, 애니메이션(128))를 생성할 수 있는 모델(들)(120)에 터치 데이터(124) 및/또는 힘 데이터(126)를 입력할 수 있다. 일부 경우에, 원격 컴퓨팅 리소스(들)(112)는 터치 데이터(124) 및/또는 힘 데이터(126)를 입력하기 위해 지정된 모델(들)(120)을 선택할 수 있다. 일부 경우에, 게임플레이에서, 펼쳐진 핸드 제스처는 객체를 집거나 객체를 떨어뜨리는 등을 나타낼 수 있다.The remote computing resource(s) may input touch data (124) and/or force data (126) to a model(s) (120) that may generate hand image data (e.g., animation (128)) corresponding to the hand gesture. In some cases, the remote computing resource(s) (112) may select a designated model(s) (120) to input touch data (124) and/or force data (126). In some cases, in gameplay, an extended hand gesture may indicate picking up an object, dropping an object, etc.
도 10b는 사용자(1000)가 네 개의 손가락과 엄지 손가락 모두로 컨트롤러(1002)를 잡고 있는 것을 예시한다. 여기서, 컨트롤러(1002)의 근접 센서 어레이에 의해 생성된 터치 데이터(124)는 사용자(1000)의 파지를 나타낼 수 있다. FSR(예를 들어, FSR(900))에 의해 생성된 힘 데이터(126)는 사용자(1000)가 컨트롤러(1002)를 잡는 힘을 나타낼 수 있다. 컨트롤러(1002)는 터치 데이터(124) 및/또는 힘 데이터(126)를 원격 컴퓨팅 리소스(들)(112)로 전송할 수 있으며, 원격 컴퓨팅 리소스(들)(112)는 터치 데이터(124) 및/또는 힘 데이터(126)에 대응하는 모델(들)(120)을 선택할 수 있다. 모델(들)(120)에 대응하는 애니메이션(128)은 주먹을 쥔 제스처, 잡는 제스처 등을 나타내는 핸드 제스처를 생성할 수 있다.FIG. 10b illustrates a user (1000) holding a controller (1002) with all four fingers and a thumb. Here, touch data (124) generated by a proximity sensor array of the controller (1002) may represent the grip of the user (1000). Force data (126) generated by an FSR (e.g., FSR (900)) may represent the force with which the user (1000) holds the controller (1002). The controller (1002) may transmit the touch data (124) and/or the force data (126) to a remote computing resource(s) (112), and the remote computing resource(s) (112) may select a model(s) (120) corresponding to the touch data (124) and/or the force data (126). The animation (128) corresponding to the model(s) (120) can generate hand gestures representing a clenched fist gesture, a grasping gesture, etc.
도 10c는 사용자(1000)가 엄지 손가락은 제외하고 네 개의 손가락 모두로 컨트롤러(1002)를 잡고 있는 것을 예시한다. 이 예에서, 원격 컴퓨팅 리소스(들)(112)는 연관된 모델(들)(120)을 결정하기 위해 터치 데이터(124) 및/또는 힘 데이터(126)를 이용할 수 있으며, 여기서 모델(들)(120)은 사용자(1000)가 엄지는 제외하고 네 개의 손가락 모두로 객체를 잡고 있는 것을 나타낸다. 모델(들)(120)은 컨트롤러(1002) 상의 터치의 이러한 구성(예를 들어, 엄지 손가락, 트리거 액추에이터 등)을 나타내는 VR 헤드셋(108) 상에 디스플레이하기 위한 애니메이션(128)을 생성할 수 있다.FIG. 10c illustrates a user (1000) holding a controller (1002) with all four fingers excluding the thumb. In this example, the remote computing resource(s) (112) can utilize the touch data (124) and/or force data (126) to determine associated model(s) (120), wherein the model(s) (120) represents that the user (1000) is holding an object with all four fingers excluding the thumb. The model(s) (120) can generate an animation (128) for display on the VR headset (108) that represents this configuration of touch (e.g., thumb, trigger actuator, etc.) on the controller (1002).
도 10d는 사용자(1000)가 가운데 손가락과 네 번째 손가락으로 컨트롤러(1002)를 잡고 있는 것을 예시한다. 여기서, 터치 데이터(124)는 가운데 손가락과 네 번째 손가락의 터치를 나타낼 수 있다. 터치 데이터(124)는 또한 컨트롤러(1002)의 핸들의 외부 표면에 대한 집게 손가락 및 새끼 손가락(이는 컨트롤러(1002)와 접촉하지 않음)의 근접성을 나타낼 수 있다. 힘 데이터(126)는 사용자(1000)의 가운데 손가락 및/또는 네번째 손가락의 그립과 연관된 힘 값들을 나타낼 수 있다. 모델(들)(120)은 가운데 손가락과 네 번째 손가락의 터치들 및 이들의 연관된 힘 값들에 따라 연관된 애니메이션(128)을 생성할 수 있다.FIG. 10d illustrates a user (1000) holding a controller (1002) with a middle finger and a fourth finger. Here, the touch data (124) may represent the touch of the middle finger and the fourth finger. The touch data (124) may also represent the proximity of the index finger and the little finger (which are not in contact with the controller (1002)) to an outer surface of the handle of the controller (1002). The force data (126) may represent force values associated with the grip of the middle finger and/or the fourth finger of the user (1000). The model(s) (120) may generate associated animations (128) based on the touches of the middle finger and the fourth finger and their associated force values.
도 10e는 사용자(1000)가 네 번째 손가락과 새끼 손가락으로 컨트롤러(1002)를 잡고 있는 것을 예시한다. 원격 컴퓨팅 리소스(들)(112)는 네 번째 손가락과 새끼 손가락의 터치 및/또는 검지 손가락 및/또는 가운데 손가락의 터치의 결여와 연관된 터치 데이터(124)를 활용하여 관련 모델(들)(120), 해당 애니메이션(128)을 선택하고, VR 헤드셋(108) 상에 디스플레이하기 위해 핸드 제스처를 생성할 수 있다. 원격 컴퓨팅 리소스(들)(112)는 또한 모델(들)(120)을 선택하고 핸드 제스처를 생성할 때 FSR로부터 생성된 힘 데이터(126)를 이용할 수 있다.FIG. 10e illustrates a user (1000) holding a controller (1002) with a fourth finger and a little finger. The remote computing resource(s) (112) can utilize touch data (124) associated with the touch of the fourth finger and little finger and/or the lack of touch of the index finger and/or middle finger to select associated model(s) (120), corresponding animation (128), and generate a hand gesture for display on the VR headset (108). The remote computing resource(s) (112) can also utilize force data (126) generated from the FSR when selecting model(s) (120) and generating the hand gesture.
도 10f는 사용자가 검지 손가락, 가운데 손가락 및 새끼 손가락으로 컨트롤러(1002)를 잡고 있는 것을 예시한다. 원격 컴퓨팅 리소스(들)(112)는 터치 데이터(124) 및/또는 힘 데이터(126)를 이용하여 사용자(1000)가 무기를 발사하는 것과 같이 VR 헤드셋(108) 상에서 연관된 핸드 제스처를 생성한다.FIG. 10f illustrates a user holding a controller (1002) with an index finger, a middle finger, and a little finger. The remote computing resource(s) (112) uses touch data (124) and/or force data (126) to generate an associated hand gesture on the VR headset (108), such as the user (1000) firing a weapon.
도 10a 내지 10f는 연관된 핸드 제스처를 생성하기 위해 컨트롤러(1002)를 터치하는 사용자(1000)의 손가락 및 엄지의 특정 조합들을 예시하며, 다른 조합들도 가능하다. 이러한 상황들에서, 컨트롤러(1002)는 FSR(900)을 사용하여 사용자(1000)의 터치 입력과 연관된 힘뿐만 아니라 근접 센서 어레이를 사용하여 터치 입력과 관련된 위치를 검출할 수 있다. 컨트롤러(1002)는 터치 데이터(124) 및/또는 힘 데이터(126)를 원격 컴퓨팅 리소스(들)(112)로 전송할 수 있으며, 원격 컴퓨팅 리소스(들)(112)는 터치 데이터(124) 및/또는 힘 데이터(126)에 대응하는 모델(들)(120)을 선택할 수 있다. 상기에 언급된 바와 같이, 모델(들)(120)은 이전 모션 데이터(122), 터치 데이터(124) 및/또는 힘 데이터(126)를 이용하여 이전에 트레이닝 및/또는 생성된다. 따라서, 나중에, 터치 데이터(124) 및/또는 힘 데이터(126)를 수신하는 것을 통해, 원격 컴퓨팅 리소스(들)(112)는 터치 데이터(124) 및/또는 힘 데이터(126)를 하나 이상의 모델(들)(120)과 연관시킬 수 있다. 모델(들)(120)이 애니메이션(128)과 연관됨에 따라, 원격 컴퓨팅 리소스(들)(112)는 하나 이상의 모델(들)(120)을 선택하고, 대응하는 애니메이션(128)을 생성하고, 애니메이션(128)을 디스플레이 하기 위한 VR 헤드셋(108)에 전송할 수 있다.FIGS. 10A-10F illustrate specific combinations of a user's (1000) fingers and thumbs touching the controller (1002) to generate associated hand gestures, although other combinations are possible. In these situations, the controller (1002) may use the FSR (900) to detect a force associated with the user's (1000) touch input, as well as a proximity sensor array to detect a position associated with the touch input. The controller (1002) may transmit the touch data (124) and/or the force data (126) to the remote computing resource(s) (112), which may select the model(s) (120) corresponding to the touch data (124) and/or the force data (126). As noted above, the model(s) (120) may be previously trained and/or generated using previous motion data (122), touch data (124), and/or force data (126). Thus, later, by receiving the touch data (124) and/or force data (126), the remote computing resource(s) (112) can associate the touch data (124) and/or force data (126) with one or more model(s) (120). As the model(s) (120) are associated with an animation (128), the remote computing resource(s) (112) can select the one or more model(s) (120), generate a corresponding animation (128), and transmit the animation (128) to the VR headset (108) for display.
예시적인 프로세스들Example processes
도 11 내지 13은 본 출원의 실시예들에 따른 다양한 프로세스들을 예시한다. 본원에 설명된 프로세스들은 일련의 동작들을 나타내는 논리적 흐름도에서 블록들의 집합으로서 예시되며, 이들 중 일부 또는 전부는 하드웨어, 소프트웨어 또는 이들의 조합으로 구현될 수 있다. 소프트웨어의 맥락에서, 블록들은 하나 이상의 프로세서들에 의해 실행될 때, 프로세서들이 언급된 동작들을 수행하는 하나 이상의 컴퓨터 판독 가능 매체에 저장된 컴퓨터 실행 가능 인스트럭션들을 나타낼 수 있다. 일반적으로, 컴퓨터 실행 가능 인스트럭션들은 특정 기능들을 수행하거나 특정 데이터 유형들을 구현하는 루틴들, 프로그램들, 오브젝트들, 구성요소들, 데이터 구조들 등을 포함한다. 블록들이 설명되는 순서는 특별히 언급하지 않는 한, 제한하는 것으로 해석되어서는 안된다. 임의 개수의 설명된 블록들은 임의의 순서로 및/또는 병렬로 결합되어 프로세스 또는 대체 프로세스들을 구현할 수 있으며, 모든 블록이 실행될 필요는 없다. 논의 목적을 위해, 프로세스들은 예를 들어, 도 1 내지 10과 관련하여 설명된 것과 같은 본원의 예들에서 설명된 환경들, 아키텍처들 및 시스템들을 참조하여 설명되지만, 프로세스들은 다양한 다른 환경들, 아키텍처들 및 시스템들에서 구현될 수 있다.Figures 11-13 illustrate various processes according to embodiments of the present application. The processes described herein are illustrated as a collection of blocks in a logical flow diagram representing a series of operations, some or all of which may be implemented in hardware, software, or a combination thereof. In the context of software, the blocks may represent computer-executable instructions stored on one or more computer-readable media that, when executed by one or more processors, cause the processors to perform the operations noted. Generally, computer-executable instructions include routines, programs, objects, components, data structures, etc. that perform particular functions or implement particular data types. The order in which the blocks are described should not be construed as limiting, unless specifically stated otherwise. Any number of the described blocks may be combined in any order and/or in parallel to implement a process or alternative processes, and not all of the blocks need be executed. For purposes of discussion, the processes are described with reference to the environments, architectures and systems described in the examples herein, such as those described in connection with FIGS. 1 through 10, although the processes may be implemented in various other environments, architectures and systems.
도 11을 시작으로, 블록(1102)에서, 프로세스(1100)는 컨트롤러에서의 터치 입력에 대응하는 터치 데이터를 수신할 수 있다. 터치 데이터는 터치 입력이 수신된 컨트롤러 상의 위치(들) 및/또는 컨트롤러에 대한 사용자의 손가락(들)의 근접성(예를 들어, 근접 센서들 또는 용량성 센서들의 어레이로부터의 정전 용량 값)을 나타낼 수 있다.Beginning with FIG. 11, at block (1102), the process (1100) may receive touch data corresponding to a touch input at the controller. The touch data may indicate the location(s) on the controller at which the touch input was received and/or the proximity of the user's finger(s) to the controller (e.g., a capacitance value from an array of proximity sensors or capacitive sensors).
블록(1104)에서, 프로세스(1100)는 컨트롤러에서의 터치 입력에 대응하는 힘 데이터를 수신할 수 있다. 힘 데이터는 컨트롤러에서 터치 입력과 관련된 힘의 양을 나타낼 수 있다. 일부 경우에, 힘 값들이 특정 힘 임계값을 초과할 때 힘 데이터가 수신될 수 있다.At block (1104), the process (1100) may receive force data corresponding to a touch input at the controller. The force data may represent an amount of force associated with the touch input at the controller. In some cases, the force data may be received when force values exceed a particular force threshold.
블록(1106)에서, 프로세스(1100)는 컨트롤러를 조작하는 사용자의 움직임에 대응하는 모션 데이터를 수신할 수 있다. 모션 데이터는 사용자의 손가락(들) 및 손목(들)의 움직임과 같은 사용자의 움직임들을 나타낼 수 있다. 모션 데이터는 또한 컨트롤러의 모션을 나타낼 수 있다.At block (1106), the process (1100) may receive motion data corresponding to movements of a user manipulating a controller. The motion data may represent movements of the user, such as movements of the user's finger(s) and wrist(s). The motion data may also represent motions of the controller.
블록(1108)에서, 프로세스(1100)는 터치 데이터, 힘 데이터 및/또는 모션 데이터를 사용하여 모델(들)을 트레이닝시킬 수 있다. 예를 들어, 모델(들)을 트레이닝시키기 위해, 프로세스(1100)는 모션 데이터에 의해 표현되는 바와 같이, 터치 데이터, 힘 데이터 및/또는 모션 데이터를 사용자의 움직임에 대응하도록 연관시킬 수 있다. 즉, 터치 데이터, 힘 데이터 및/또는 모션 데이터를 사용하여, 프로세스(1100)는 사용자 터치의 특성들을 학습하고 이러한 특성들을 모션 데이터로부터 결정된 특정 핸드 제스처들과 연관시키기 위해 모델(들)을 트레이닝시킬 수 있다. 일부 경우에, 특성들은 컨트롤러 상의 터치 입력(들)의 위치 및 힘을 포함할 수 있다. 일부 경우에, 터치 데이터, 힘 데이터 및/또는 모션 데이터는 터치 데이터, 힘 데이터 및/또는 모션 데이터가 각각 캡처된 시기에 대응하는 타임 스탬프를 이용하여 연관될 수 있다. 터치 데이터, 힘 데이터 및/또는 모션 데이터를 시간 척도에 오버레이하는 것을 통해, 프로세스(1100)는 터치 데이터 및/또는 힘 데이터를 모션 데이터와 연관시키고 사용자의 핸드 제스처(들)를 식별할 수 있다. 모델(들)을 트레이닝시킬 때, 추후 예들에서, 프로세스(1100)는 터치 데이터 및/또는 힘 데이터를 수신하고 (모션 데이터를 수신하지 않고) 연관된 제스처를 결정할 수 있다.At block (1108), the process (1100) can train the model(s) using the touch data, the force data, and/or the motion data. For example, to train the model(s), the process (1100) can associate the touch data, the force data, and/or the motion data to correspond to movements of the user, as represented by the motion data. That is, using the touch data, the force data, and/or the motion data, the process (1100) can train the model(s) to learn characteristics of the user's touch and associate those characteristics with specific hand gestures determined from the motion data. In some cases, the characteristics can include the location and force of the touch input(s) on the controller. In some cases, the touch data, the force data, and/or the motion data can be associated using a timestamp corresponding to when the touch data, the force data, and/or the motion data were each captured. By overlaying touch data, force data, and/or motion data on a time scale, the process (1100) can associate the touch data and/or force data with the motion data and identify the user's hand gesture(s). When training the model(s), in later examples, the process (1100) can receive the touch data and/or force data and determine the associated gesture (without receiving the motion data).
블록(1108)에서, 프로세스(1100)는 추가 터치 데이터, 추가 힘 데이터(예를 들어, 블록(1104)) 및/또는 추가 모션 데이터(예를 들어, 블록(1106))를 수신하기 위해 블록(1102)으로 루프화할 수 있다. 이 추가 데이터는 모델(들)을 더 트레이닝시키기 위해 사용될 수 있으며, 이는 터치 데이터 및/또는 추후 예들에서(예를 들어, 게임플레이 동안) 수신된 힘 데이터에 기초하여 보다 정확한 핸드 제스처 결정을 허용할 수 있다. 즉, 프로세스(1100)는 프로세스(1100)가 후속 터치 데이터 및/또는 힘 데이터를 수신할 때, 프로세스(1100)가 터치 데이터 및/또는 힘 데이터(모델(들)을 통해)에 대응하는 연관된 핸드 제스처를 정확하게 결정할 수 있도록 터치 데이터, 힘 데이터 및/또는 모션 데이터를 계속 상관시킬 수 있다. 여기서, 상기에 논의된 바와 같이, 터치 데이터, 힘 데이터 및/또는 모션 데이터를 상관시키는 것은 터치 데이터의 타임 스탬프, 힘 데이터의 타임 스탬프, 및/또는 모션 데이터의 타임 스탬프의 매칭을 포함할 수 있다.At block (1108), the process (1100) may loop back to block (1102) to receive additional touch data, additional force data (e.g., block (1104)), and/or additional motion data (e.g., block (1106)). This additional data may be used to further train the model(s), which may allow for more accurate hand gesture determinations based on the touch data and/or force data received in later instances (e.g., during gameplay). That is, the process (1100) may continue to correlate the touch data, force data, and/or motion data such that as the process (1100) receives subsequent touch data and/or force data, the process (1100) can accurately determine associated hand gestures corresponding to the touch data and/or force data (via the model(s)). Here, correlating the touch data, the force data, and/or the motion data, as discussed above, may include matching a timestamp of the touch data, a timestamp of the force data, and/or a timestamp of the motion data.
블록(1110)에서, 프로세스(1100)는 터치 데이터를 수신할 수 있다. 일부 경우에, 블록(1110)에서 수신된 터치 데이터는 게임플레이 동안 수신된 터치 데이터에 대응할 수 있다.At block (1110), the process (1100) may receive touch data. In some cases, the touch data received at block (1110) may correspond to touch data received during gameplay.
블록(1112)에서, 프로세스(1100)는 힘 데이터를 수신할 수 있다. 일부 경우에, 블록(1112)에서 수신된 힘 데이터는 게임플레이 동안 수신된 터치 데이터에 대응할 수 있다.At block (1112), the process (1100) may receive force data. In some cases, the force data received at block (1112) may correspond to touch data received during gameplay.
블록(1114)에서, 프로세스(1100)는 모델(들)을 선택할 수 있다. 일부 경우에, 모델(들)을 선택하기 위해, 블록(1100)에서 수신된 터치 데이터는 터치 데이터 또는 이전에 생성된 모델(들)에 대응하는 터치 프로파일과 비교될 수 있다. 추가로 또는 대안으로, 모델(들)을 선택하는 것은 블록(1112)에서 수신된 힘 데이터를 이전에 생성된 모델(들)에 대응하는 힘 데이터 또는 터치 프로파일과 비교하는 것을 포함할 수 있다. 모델(들)의 터치 프로파일은 모델(들)의 핸드 제스처를 나타내는 힘 데이터 및/또는 모델(들)의 핸드 제스처를 나타내는 터치 데이터와 관련된 위치와 관련된 힘 값들을 포함할 수 있다. 예로서, 터치 데이터는 컨트롤러를 터치하는 가운데 손가락 및/또는 검지 손가락과 같은(예를 들어, 도 10d) 컨트롤러의 중앙에서의 터치 입력을 나타낼 수 있다. 일부 경우에, 터치 데이터는 터치 입력을 사용자의 특정 손가락들과 연관시킬 수 있고/있거나 컨트롤러를 터치하지 않는 손가락들을 나타낼 수 있다. 터치 데이터 및/또는 힘 데이터를 사용하여, 해당 모델이 선택될 수 있다.At block (1114), the process (1100) may select model(s). In some cases, to select model(s), the touch data received at block (1100) may be compared to touch data or a touch profile corresponding to previously generated model(s). Additionally or alternatively, selecting model(s) may include comparing force data received at block (1112) to force data or a touch profile corresponding to previously generated model(s). The touch profile of the model(s) may include force data indicative of a hand gesture of the model(s) and/or force values associated with a location associated with the touch data indicative of a hand gesture of the model(s). As an example, the touch data may represent a touch input at the center of the controller, such as a middle finger and/or an index finger touching the controller (e.g., FIG. 10d ). In some cases, the touch data may associate touch inputs with particular fingers of the user and/or may represent fingers that are not touching the controller. Using touch data and/or force data, the model can be selected.
블록(1116)에서, 프로세스(1100)는 터치 데이터 및/또는 힘 데이터를 모델(들)에 입력할 수 있다. 보다 구체적으로, 모델(들)이 이전에 터치 데이터 및/또는 힘 데이터를 모션 데이터 및 대응하는 핸드 제스처와 연관시키도록 트레이닝되었기 때문에, 일단 트레이닝되면, 모델(들)은 터치 데이터 및/또는 힘 데이터를 수신하고 핸드 제스처들을 결정할 수 있다. 다시 말해, 터치 데이터는 어느 손가락들이 컨트롤러를 파지하는지 또는 어느 손가락들이 컨트롤러를 파지하지 않는지를 나타낼 수 있을 뿐만 아니라, 터치에 대응하는 컨트롤러 상의 위치 또는 그 결여를 나타낼 수 있다. 따라서, 모델(들)이 트레이닝된 후, 모델(들)은 게임플레이 동안 수신된 사용자로부터의 터치를 나타내는 터치 데이터 및/또는 힘 데이터를 수락할 수 있다.At block (1116), the process (1100) can input touch data and/or force data into the model(s). More specifically, since the model(s) have previously been trained to associate touch data and/or force data with motion data and corresponding hand gestures, once trained, the model(s) can receive the touch data and/or force data and determine hand gestures. In other words, the touch data can indicate which fingers are gripping the controller or which fingers are not gripping the controller, as well as the location on the controller corresponding to the touch, or lack thereof. Thus, after the model(s) are trained, the model(s) can accept touch data and/or force data representing touches from a user received during gameplay.
블록(1118)에서, 프로세스(1100)는 터치 데이터 및/또는 힘 데이터에 대응하는 이미지 데이터를 생성할 수 있다. 예를 들어, 터치 데이터 및/또는 힘 데이터를 모델(들)에 입력한 후, 프로세스(1100)는 터치 데이터 및/또는 힘을 사용하여 핸드 제스처를 생성할 수 있다.At block (1118), the process (1100) can generate image data corresponding to the touch data and/or force data. For example, after inputting the touch data and/or force data into the model(s), the process (1100) can generate a hand gesture using the touch data and/or force.
블록(1120)에서, 프로세스(1100)는 디스플레이 상에 이미지 데이터를 제시할 수 있다. 프로세스(1100)에서, 디스플레이 상의 핸드 제스처의 표현은 컨트롤러와 상호 작용하는 사용자의 핸드 제스처에 대응할 수 있다. 게다가, 터치 데이터의 수신과 이미지 데이터의 제시 사이의 레이턴시를 줄이기 위해, 프로세스는 블록들(1110-1120)을 실시간으로 및/또는 실질적으로 서로 동시에 수행할 수 있다.At block (1120), the process (1100) may present image data on the display. At process (1100), the presentation of a hand gesture on the display may correspond to a hand gesture of a user interacting with the controller. Additionally, to reduce latency between the reception of touch data and the presentation of image data, the process may perform blocks (1110-1120) in real time and/or substantially concurrently with one another.
블록(1120)으로부터, 프로세스(1100)는 블록(1110)으로 루프화할 수 있다. 그 안에서, 프로세스(1100)는 블록들(1110, 1120) 사이를 반복하여 터치 데이터 및 힘 데이터를 지속적으로 수신하고 사용자로부터의 터치 입력에 대응하는 애니메이션을 생성할 수 있다. 그렇게 함으로써, 사용자가 게임을 할 때, 컨트롤러로부터 수신되는 터치 데이터 및/또는 힘 데이터는 게임에서 레벨, 장면, 프레임 등에 따라 변경될 수 있다. 지속적으로 터치 데이터 및/또는 힘 데이터를 모델(들)에 입력하는 것을 통해, 프로세스(1100)는 해당 모델(들)을 선택하고 디스플레이하기 위해 핸드 제스처들을 지속적으로 생성할 수 있다.From block (1120), process (1100) can loop to block (1110). Therein, process (1100) can loop between blocks (1110, 1120) to continuously receive touch data and force data and generate animations corresponding to touch inputs from a user. By doing so, when a user plays a game, touch data and/or force data received from the controller can be changed according to levels, scenes, frames, etc. in the game. By continuously inputting touch data and/or force data into the model(s), process (1100) can continuously generate hand gestures to select and display the corresponding model(s).
앞서 언급된 바와 같이, 일부 경우에, 블록(1102)과 블록(1108) 간 프로세스(1100)는 사용자가 게임플레이 모드에서 플레이하지 않고 모델(들)이 트레이닝하는 제1 시간 인스턴스 동안 발생할 수 있다. 예를 들어, 모델(들)의 트레이닝(또는 생성)은 모션 데이터(모션 캡처 시스템(들)(102)로부터 캡처됨), 터치 데이터 및/또는 힘 데이터가 캡처되고 터치 데이터 및/또는 힘 데이터를 특정 핸드 제스처들과 연관되도록 서로 상관되는 시설에서 발생할 수 있다. 추후 시간 인스턴스에서, 모델(들)이 트레이닝된 후, 사용자가 게임플레이 모드에 있는 동안 블록(1110)과 블록(1120) 간에 프로세스(1100)가 발생할 수 있다.As previously mentioned, in some cases, the process (1100) between blocks (1102) and (1108) may occur during a first time instance in which the model(s) are trained while the user is not playing in gameplay mode. For example, the training (or generation) of the model(s) may occur in a facility where motion data (captured from motion capture system(s) (102)), touch data, and/or force data are captured and correlated with each other to associate the touch data and/or force data with specific hand gestures. At a later time instance, after the model(s) are trained, the process (1100) between blocks (1110) and (1120) may occur while the user is in gameplay mode.
도 12에 도시된 바와 같이, 블록(1202)에서, 프로세스(1200)는 컨트롤러에서의 터치 입력에 대응하는 터치 데이터를 수신할 수 있다. 예를 들어, 원격 컴퓨팅 리소스(들)(112)는 컨트롤러(예를 들어, 컨트롤러(110, 300 및/또는 800))로부터 터치 데이터(124)를 수신할 수 있다. 터치 데이터(124)는 사용자의 터치 입력(들)에 대응하는 컨트롤러 상의 위치(들)를 나타낼 수 있다. 예로서, 터치 데이터(124)는 사용자의 네 손가락 모두가 컨트롤러를 터치하고 있으며, 터치(들)의 위치를 나타낼 수 있으며, 또는 일부 경우에는 어떤 손가락들이 컨트롤러를 터치하지 않는지 및/또는 컨트롤러의 어느 영역이 터치 입력을 수신하지 않는지를 나타낼 수 있다.As illustrated in FIG. 12, at block (1202), the process (1200) may receive touch data corresponding to touch inputs at the controller. For example, the remote computing resource(s) (112) may receive touch data (124) from the controller (e.g., controller (110, 300, and/or 800)). The touch data (124) may indicate location(s) on the controller corresponding to the user's touch input(s). For example, the touch data (124) may indicate that all four of the user's fingers are touching the controller, indicating the locations of the touch(s), or in some cases, indicating which fingers are not touching the controller and/or which areas of the controller are not receiving touch inputs.
블록(1204)에서, 프로세스(1200)는 컨트롤러에서의 터치 입력에 대응하는 힘 데이터를 수신할 수 있다. 예를 들어, 원격 컴퓨팅 리소스(들)(112)는 컨트롤러(예를 들어, 컨트롤러(110, 300 및/또는 800))로부터 힘 데이터(126)를 수신할 수 있다. 힘 데이터(126)는 컨트롤러에서의 터치 입력과 관련된 힘의 양 또는 컨트롤러에서 사용자의 그립과 관련된 상대적 강도를 나타낼 수 있다. 예에서, 사용자가 컨트롤러를 잡지 않는 예에서(예를 들어, 도 10a에 도시된 바와 같이), 원격 컴퓨팅 리소스(들)(112)는 컨트롤러로부터 힘 데이터(126)를 수신하지 않을 수 있다.At block (1204), the process (1200) may receive force data corresponding to a touch input at the controller. For example, the remote computing resource(s) (112) may receive force data (126) from a controller (e.g., controller (110, 300, and/or 800)). The force data (126) may represent an amount of force associated with a touch input at the controller or a relative strength associated with a user's grip on the controller. In an example, where the user is not gripping the controller (e.g., as illustrated in FIG. 10A), the remote computing resource(s) (112) may not receive force data (126) from the controller.
블록(1206)에서, 프로세스(1200)는 컨트롤러를 조작하는 사용자의 움직임에 대응하는 모션 데이터를 수신할 수 있다. 예를 들어, 원격 컴퓨팅 리소스(들)(112)은 모션 캡처 시스템(들)(102)으로부터 모션 데이터(122)를 수신할 수 있다. 모션 데이터(122)는 마커들(200, 202)을 사용하여 사용자의 움직임들 및/또는 컨트롤러의 움직임들을 나타낼 수 있다. 상기에 언급된 바와 같이, 모션 캡처 시스템(들)(102)의 프로젝터(들)는 사용자 및/또는 컨트롤러 상에 배치된 마커들(200, 202) 상에 광을 투사할 수 있다. 마커들(200, 202)은 이 광을 반사할 수 있으며, 그런 다음 이는 모션 캡처 시스템(들)(102)의 카메라(들)에 의해 캡처된다.At block (1206), the process (1200) can receive motion data corresponding to movements of the user manipulating the controller. For example, the remote computing resource(s) (112) can receive the motion data (122) from the motion capture system(s) (102). The motion data (122) can represent movements of the user and/or movements of the controller using markers (200, 202). As noted above, the projector(s) of the motion capture system(s) (102) can project light onto the markers (200, 202) placed on the user and/or the controller. The markers (200, 202) can reflect this light, which is then captured by the camera(s) of the motion capture system(s) (102).
블록(1208)에서, 프로세스(1200)는 터치 데이터, 힘 데이터 및/또는 모션 데이터를 사용하여 모델(들)을 트레이닝시킬 수 있다. 예를 들어, 원격 컴퓨팅 리소스(들)(112)는 모션 데이터(122), 터치 데이터(124) 및/또는 힘 데이터(126)를 사용하여 모델(들)(120)을 트레이닝(또는 생성)할 수 있다. 일부 예들에서, 모델(들)(120)을 트레이닝시키는 것은 사용자의 움직임에 대응하는 터치 데이터(124) 및/또는 힘 데이터(126)의 특성들을 결정하기 위해 터치 데이터(124), 힘 데이터(126) 및/또는 모션 데이터(122)를 연관시키는 것을 포함할 수 있다. 그렇게 함으로써, 원격 컴퓨팅 리소스(들)(112)는 컨트롤러로부터 수신된 터치 데이터(124)에 대응하는 이미지 데이터 또는 애니메이션(들)을 생성할 수 있다. 즉, 터치 데이터(124), 힘 데이터(126) 및/또는 모션 데이터(122)를 연관시키는 것을 통해, 나중의 경우, 터치 데이터(124) 및/또는 힘 데이터(126)를 수신 시, 원격 컴퓨팅 리소스(들)(112)는 터치 데이터(124) 및/또는 힘 데이터(126)를 이전 모션 데이터(122)를 사용하는 사용자의 제스처와 상관시킬 수 있다. 일부 경우에, 터치 데이터(124), 힘 데이터(126) 및/또는 모션 데이터(122)를 연관시키는 것은 터치 데이터(124)의 타임 스탬프, 힘 데이터(126)의 타임 스탬프, 및/또는 모션 데이터(122)의 타임 스탬프의 매칭을 포함할 수 있다. 그렇게 함으로써, 원격 컴퓨팅 리소스(들)(112)는 (예를 들어, 기계 학습 알고리즘을 사용하여), 터치 데이터(124) 및/또는 힘 데이터(126)가 사용자의 핸드 제스처들과 관련되는 방법을 학습할 수 있다.At block (1208), the process (1200) can train the model(s) using the touch data, the force data, and/or the motion data. For example, the remote computing resource(s) (112) can train (or generate) the model(s) (120) using the motion data (122), the touch data (124), and/or the force data (126). In some examples, training the model(s) (120) can include associating the touch data (124), the force data (126), and/or the motion data (122) to determine characteristics of the touch data (124) and/or the force data (126) that correspond to the movements of the user. In doing so, the remote computing resource(s) (112) can generate image data or animation(s) corresponding to the touch data (124) received from the controller. That is, by correlating the touch data (124), the force data (126), and/or the motion data (122), the remote computing resource(s) (112) can, at a later time, upon receiving the touch data (124) and/or the force data (126), correlate the touch data (124) and/or the force data (126) with a user's gesture using the previous motion data (122). In some cases, correlating the touch data (124), the force data (126), and/or the motion data (122) may include matching a timestamp of the touch data (124), a timestamp of the force data (126), and/or a timestamp of the motion data (122). By doing so, the remote computing resource(s) (112) can learn (e.g., using a machine learning algorithm) how the touch data (124) and/or the force data (126) are associated with the user's hand gestures.
블록(1208)으로부터, 프로세스(1200)는 추가 터치 데이터(124), 추가 힘 데이터(126), 및/또는 추가 모션 데이터(122)를 수신하기 위해 블록(1202)으로 루프화할 수 있다. 예를 들어, 원격 컴퓨팅 리소스(들)(112)는 모델(들)(120)을 트레이닝시키기 위해 추가 터치 데이터(124)(예를 들어, 블록(1202)), 추가 힘 데이터(126)(예를 들어, 블록(1204)), 및/또는 추가 모션 데이터(122)(예를 들어, 블록(1206))를 수신할 수 있다. 모델(들)(120)을 트레이닝시키는 것은 사용자에 의해 수행된 핸드 제스처의 보다 정확한 결정을 허용할 수 있다.From block (1208), the process (1200) can loop to block (1202) to receive additional touch data (124), additional force data (126), and/or additional motion data (122). For example, the remote computing resource(s) (112) can receive additional touch data (124) (e.g., block (1202)), additional force data (126) (e.g., block (1204)), and/or additional motion data (122) (e.g., block (1206)) to train the model(s) (120). Training the model(s) (120) may allow for more accurate determination of hand gestures performed by the user.
도 13에 도시된 바와 같이, 블록(1302)에서, 프로세스(1300)는 터치 데이터를 수신할 수 있다. 예를 들어, 원격 컴퓨팅 리소스(들)(112)는 컨트롤러(예를 들어, 컨트롤러(110, 300 및/또는 800))로부터 터치 데이터(124)를 수신할 수 있다. 일부 경우에, 컨트롤러의 근접 센서 어레이는 터치 데이터(124)를 생성할 수 있다. 터치 데이터(124)는 컨트롤러(110)에 사용자의 손가락 또는 손의 배치를 나타낼 수 있다.As illustrated in FIG. 13, at block (1302), the process (1300) may receive touch data. For example, the remote computing resource(s) (112) may receive touch data (124) from a controller (e.g., controller (110, 300, and/or 800)). In some cases, a proximity sensor array of the controller may generate the touch data (124). The touch data (124) may indicate the placement of a user's finger or hand on the controller (110).
블록(1304)에서, 프로세스(1300)는 힘 데이터를 수신할 수 있다. 예를 들어, 원격 컴퓨팅 리소스(들)(112)는 컨트롤러(예를 들어, 컨트롤러(110, 300 및/또는 800))로부터 힘 데이터(126)를 수신할 수 있다. 일부 경우에, 컨트롤러의 FSR(예를 들어, FSR(900))은 컨트롤러 상의 사용자의 터치들과 관련된 힘의 양을 나타낼 수 있는 힘 데이터(126)를 생성할 수 있다.At block (1304), the process (1300) may receive force data. For example, the remote computing resource(s) (112) may receive force data (126) from a controller (e.g., controller (110, 300, and/or 800)). In some cases, an FSR of the controller (e.g., FSR (900)) may generate force data (126) that may represent an amount of force associated with a user's touches on the controller.
블록(1306)에서, 프로세스(1300)는 터치 데이터 및/또는 힘 데이터를 모델(들)에 입력할 수 있다. 예를 들어, 원격 컴퓨팅 리소스(들)(112)의 프로세서(들)(116)는 터치 데이터(124) 및/또는 힘 데이터(126)를 모델(들)(120)에 입력할 수 있다. 보다 구체적으로, 모델(들)(102)이 이전에 터치 데이터(124) 및/또는 힘 데이터(126)를 모션 데이터(122) 및 핸드 제스처들과 연관시키도록 트레이닝되었기 때문에, 일단 트레이닝되면, 모델(들)(120)은 터치 데이터(124) 및/또는 힘 데이터(126)를 수신하여 핸드 제스처들을 결정할 수 있다. 일부 경우에, 원격 컴퓨팅 리소스(들)(112)는 터치 데이터(124) 및/또는 힘 데이터(126)를 터치 데이터(124) 및/또는 힘 데이터(126)와 밀접하게 일치하거나 연관된 모델(들)(120)에 선택적으로 입력할 수 있다. 예를 들어, 터치 데이터(124)가 사용자가 네 손가락들로 컨트롤러(110)를 파지하는 것을 나타내는 경우, 프로세서(들)(116)는 네 손가락 그립에 대응하는 모델(120)을 선택할 수 있다.At block (1306), the process (1300) may input touch data and/or force data into the model(s). For example, the processor(s) (116) of the remote computing resource(s) (112) may input touch data (124) and/or force data (126) into the model(s) (120). More specifically, since the model(s) (102) has previously been trained to associate touch data (124) and/or force data (126) with motion data (122) and hand gestures, once trained, the model(s) (120) may receive the touch data (124) and/or force data (126) to determine hand gestures. In some cases, the remote computing resource(s) (112) may optionally input the touch data (124) and/or the force data (126) into model(s) (120) that closely matches or is associated with the touch data (124) and/or the force data (126). For example, if the touch data (124) indicates that the user is gripping the controller (110) with four fingers, the processor(s) (116) may select a model (120) corresponding to a four-finger grip.
블록(1318)에서, 프로세스(1300)는 터치 데이터 및/또는 힘 데이터에 대응하는 이미지 데이터를 생성할 수 있다. 예를 들어, 모델(들)(120)을 사용하여 원격 컴퓨팅 리소스(들)(112)의 프로세서(들)(116)는 터치 데이터(124) 및/또는 힘 데이터(126)에 대응하는 핸드 제스처를 결정할 수 있다. 원격 컴퓨팅 리소스(들)(112)는 핸드 제스처에 대응하는 애니메이션(128)과 같은 이미지 데이터를 생성할 수 있다. 예를 들어, 모델(들)(120)은 터치 데이터(124) 및/또는 힘 데이터(126)를 이용하여 손의 애니메이션(128)(예를 들어, 바위를 부수거나 객체를 떨어뜨리는 것)을 생성할 수 있다.At block (1318), the process (1300) can generate image data corresponding to the touch data and/or the force data. For example, the processor(s) (116) of the remote computing resource(s) (112) can determine a hand gesture corresponding to the touch data (124) and/or the force data (126) using the model(s) (120). The remote computing resource(s) (112) can generate image data, such as an animation (128) corresponding to the hand gesture. For example, the model(s) (120) can generate an animation (128) of a hand (e.g., breaking a rock or dropping an object) using the touch data (124) and/or the force data (126).
블록(1320)에서, 프로세스(1300)는 디스플레이 상에 이미지 데이터를 제시할 수 있다. 예를 들어, 원격 컴퓨팅 리소스(들)(112)는 이미지 데이터를 VR 헤드셋(108)(또는 다른 컴퓨팅 장치)에 전송할 수 있으며, 이에 의해 VR 헤드셋(108)은 이미지 데이터를 디스플레이할 수 있다. VR 헤드셋(108)은 컨트롤러(들)(110)에서 수신된 터치 데이터(124) 및/또는 힘 데이터(126)에 따라 디스플레이에 핸드 제스처를 표시할 수 있다. 이와 같이, VR 헤드셋(108)의 디스플레이 상의 핸드 제스처의 표현은 사용자가 컨트롤러(들)(110)와 상호 작용하는 핸드 제스처와 상관될 수 있다. 게다가, 터치 데이터(124)의 수신과 VR 헤드셋(108) 상의 이미지 데이터의 제시 사이의 레이턴시를 줄이기 위해, 프로세스(1300)는 블록들(1302-1310)을 실시간으로 및/또는 실질적으로 서로 동시에 수행할 수 있다. 추가적으로, 모델(들)(120)의 사전 생성은 연관된 핸드 제스처를 생성하기 위해 터치 데이터(124) 및/또는 힘 데이터(126)를 수신할 때 더 빠른 컴퓨팅을 허용할 수 있다.At block (1320), the process (1300) may present image data on a display. For example, the remote computing resource(s) (112) may transmit the image data to the VR headset (108) (or another computing device), whereby the VR headset (108) may display the image data. The VR headset (108) may display a hand gesture on the display based on touch data (124) and/or force data (126) received from the controller(s) (110). In this way, the presentation of the hand gesture on the display of the VR headset (108) may be correlated with the hand gesture with which the user interacts with the controller(s) (110). Additionally, to reduce latency between the receipt of the touch data (124) and the presentation of the image data on the VR headset (108), the process (1300) may perform blocks (1302-1310) in real time and/or substantially concurrently with one another. Additionally, pre-creation of the model(s) (120) may allow for faster computing when receiving touch data (124) and/or force data (126) to generate associated hand gestures.
블록(1310)으로부터, 프로세스(1300)는 블록(1302)으로 루프화할 수 있으며, 여기서 프로세스(1300)는 이미지 데이터를 연속적으로 생성하기 위해 블록들(1302 및 1310) 사이에서 반복될 수 있다. 결과적으로, 사용자가 컨트롤러(110)를 잡고 파지하는 방식에 대응하는 터치 데이터(124) 및/또는 힘 데이터(126)가 업데이트될 수 있으며, 터치 데이터(124) 및/또는 힘 데이터(126)를 모델(들)(120)에 입력하는 것을 통해, 프로세스(1300)는 VR 헤드셋(108) 상에 디스플레이하기 위한 핸드 제스처들을 지속적으로 생성할 수 있다.From block (1310), the process (1300) can be looped to block (1302), where the process (1300) can be repeated between blocks (1302 and 1310) to continuously generate image data. As a result, touch data (124) and/or force data (126) corresponding to the manner in which the user grasps and grips the controller (110) can be updated, and by inputting the touch data (124) and/or force data (126) into the model(s) (120), the process (1300) can continuously generate hand gestures for display on the VR headset (108).
결론 conclusion
전술한 발명이 특정 예들과 관련하여 설명되었지만, 본 발명의 범위는 이러한 특정 예들로 제한되지 않음을 이해해야 한다. 특정 동작 요구 사항들 및 환경들에 맞게 변경된 다른 수정들 및 변경들은 당업자에게 명백할 것이기 때문에, 본 발명은 개시의 목적으로 선택된 예에 제한되는 것으로 간주되지 않으며, 본 발명의 진정한 사상과 범위로부터의 방침을 구성하지 않는 모든 변경들 및 수정들을 포함한다.While the invention has been described with reference to specific examples, it is to be understood that the scope of the invention is not limited to these specific examples. Since other modifications and variations to suit particular operating requirements and environments will be apparent to those skilled in the art, the invention is not to be considered limited to the examples selected for the purpose of disclosure, but includes all changes and modifications that do not constitute a departure from the true spirit and scope of the invention.
본 출원은 특정 구조적 특징들 및/또는 방법론적 행위들을 갖는 실시예들을 설명하지만, 청구 범위가 설명된 특정 특징들 또는 행위들로 반드시 제한되는 것은 아니라는 것을 이해해야 한다. 오히려, 특정 특징들 및 행위들은 단지 본 출원의 청구항들의 범위에 속하는 일부 실시예들에 불과하다. Although this application describes embodiments having particular structural features and/or methodological acts, it should be understood that the scope of the claims is not necessarily limited to the specific features or acts described. Rather, the specific features and acts are merely some embodiments that fall within the scope of the claims of this application.
예시적인 조항들Exemplary provisions
본 개시의 실시예들은 다음의 조항들의 면에서 설명될 수 있다:Embodiments of the present disclosure can be described in terms of the following provisions:
1. 시스템에 있어서,1. In the system,
하나 이상의 프로세서들; 및one or more processors; and
하나 이상의 비일시적 컴퓨터 판독 가능 매체로서, 상기 하나 이상의 프로세서들에 의해 실행 시, 상기 하나 이상의 프로세서들이,One or more non-transitory computer-readable media, which, when executed by said one or more processors, cause said one or more processors to:
하나 이상의 센서들을 통해, 하나 이상의 컨트롤러들을 동작시키는 사용자 손의 제1 움직임에 대응되는 제1 모션 데이터를 수신하는 단계;A step of receiving first motion data corresponding to a first movement of a user's hand that operates one or more controllers through one or more sensors;
상기 하나 이상의 컨트롤러들을 통해, 상기 하나 이상의 컨트롤러를 동작시키는 상기 사용자 손의 제1 터치에 대응되는 제1 터치 데이터를 수신하는 단계;A step of receiving first touch data corresponding to a first touch of the user's hand that operates the one or more controllers through the one or more controllers;
상기 하나 이상의 컨트롤러들을 통해, 상기 하나 이상의 컨트롤러들을 동작시키는 상기 사용자 손의 상기 제1 터치에 대응되는 제1 힘 데이터를 수신하는 단계;A step of receiving first force data corresponding to the first touch of the user's hand that operates the one or more controllers through the one or more controllers;
상기 제1 모션 데이터를 상기 제1 터치 데이터와 및 상기 제1 힘 데이터와 연관시키는 단계;A step of associating the first motion data with the first touch data and the first force data;
상기 제1 모션 데이터, 상기 제1 터치 데이터 및 상기 제1 힘 데이터에 적어도 부분적으로 기초하여, 상기 손의 제스처에 대응하는 모델을 생성하는 단계;A step of generating a model corresponding to a gesture of the hand based at least in part on the first motion data, the first touch data and the first force data;
상기 하나 이상의 센서들을 통해, 상기 하나 이상의 컨트롤러들을 동작시키는 상기 사용자 손의 제2 움직임에 대응되는 제2 모션 데이터를 수신하는 단계;A step of receiving second motion data corresponding to a second movement of the user's hand that operates the one or more controllers through the one or more sensors;
상기 하나 이상의 컨트롤러들을 통해, 상기 하나 이상의 컨트롤러들을 동작시키는 상기 사용자 손의 제2 터치에 대응되는 제2 터치 데이터를 수신하는 단계;A step of receiving second touch data corresponding to a second touch of the user's hand that operates the one or more controllers through the one or more controllers;
상기 하나 이상의 컨트롤러들을 통해, 상기 하나 이상의 컨트롤러들을 동작시키는 상기 사용자 손의 상기 제2 터치에 대응되는 제2 힘 데이터를 수신하는 단계;A step of receiving second force data corresponding to the second touch of the user's hand that operates the one or more controllers through the one or more controllers;
상기 제2 모션 데이터를 상기 제2 터치 데이터 및 상기 제2 힘 데이터와 연관시키는 단계;A step of associating the second motion data with the second touch data and the second force data;
상기 제2 모션 데이터, 상기 제2 터치 데이터 및 상기 제2 힘 데이터에 적어도 부분적으로 기초하여, 상기 손의 상기 제스처에 대응되는 상기 모델을 트레이닝시키는 단계; A step of training the model corresponding to the gesture of the hand, based at least in part on the second motion data, the second touch data and the second force data;
상기 하나 이상의 컨트롤러들을 통해, 상기 하나 이상의 컨트롤러들을 동작시키는 상기 사용자 손의 제3 터치에 대응되는 제3 터치 데이터를 수신하는 단계;A step of receiving third touch data corresponding to a third touch of the user's hand that operates the one or more controllers through the one or more controllers;
상기 하나 이상의 컨트롤러들을 동작시키는 상기 사용자 손의 상기 제3 터치에 대응되는 제3 힘 데이터를 수신하는 단계; 및A step of receiving third force data corresponding to the third touch of the user's hand that operates the one or more controllers; and
상기 제스처 및 상기 제3 힘 데이터에 대응되는 상기 모델에 적어도 부분적으로 기초하여, 상기 손의 표현에 대응되는 이미지 데이터를 생성하는 단계를 포함하는 동작들을 수행하도록 하는 컴퓨터 실행 가능 인스트럭션들을 저장하는, 상기 하나 이상의 비일시적 컴퓨터 판독 가능 매체를 포함하는, 시스템.A system comprising one or more non-transitory computer-readable media storing computer-executable instructions that cause the system to perform operations including generating image data corresponding to the representation of the hand based at least in part on the model corresponding to the gesture and the third force data.
2. 제1항에 있어서, 상기 하나 이상의 비일시적 컴퓨터 판독 가능 매체는 상기 하나 이상의 프로세서들에 의해 실행 시, 상기 하나 이상의 프로세서들이 상기 손의 상기 표면에 대응되는 상기 이미지 데이터를 가상 현실 디스플레이로 전송하는 단계를 포함하는 동작을 더 수행하도록 하는 컴퓨터 실행 가능 인스트럭션들을 저장하는, 시스템.2. A system according to claim 1, wherein the one or more non-transitory computer-readable media store computer-executable instructions that, when executed by the one or more processors, cause the one or more processors to further perform an operation including transmitting the image data corresponding to the surface of the hand to a virtual reality display.
3. 제1항에 있어서, 상기 하나 이상의 센서들을 깊이 센서를 포함하는, 시스템.3. A system according to claim 1, wherein one or more of the sensors include a depth sensor.
4. 제1항에 있어서,4. In paragraph 1,
상기 제1 모션 데이터를 상기 제1 터치 데이터 및 상기 제1 힘 데이터와 연관시키는 단계는 상기 제1 모션 데이터의 제1 시간 스탬프를 상기 제1 터치 데이터의 제1 시간 스탬프 및 상기 제1 힘 데이터의 제1 시간 스탬프와 매칭시키는 단계를 포함하고,The step of associating the first motion data with the first touch data and the first force data includes the step of matching a first time stamp of the first motion data with a first time stamp of the first touch data and a first time stamp of the first force data,
상기 제2 모션 데이터를 상기 제2 터치 데이터 및 제2 힘 데이터와 연관시키는 단계는 상기 제2 모션 데이터의 제2 시간 스탬프를 상기 제2 터치 데이터의 제2 시간 스탬프 및 상기 제2 힘 데이터의 제2 시간 스탬프와 매칭시키는 단계를 포함하는, 시스템.The system of claim 1, wherein the step of associating the second motion data with the second touch data and the second force data comprises the step of matching a second time stamp of the second motion data with a second time stamp of the second touch data and a second time stamp of the second force data.
5. 시스템에 있어서,5. In the system,
하나 이상의 프로세서들; 및one or more processors; and
하나 이상의 비일시적 컴퓨터 판독 가능 매체로서, 상기 하나 이상의 프로세서들에 의해 실행 시, 상기 하나 이상의 프로세서들이,One or more non-transitory computer-readable media, which, when executed by said one or more processors, cause said one or more processors to:
컨트롤러를 동작시키는 손의 움직임에 대응되는 모션 데이터를 수신하는 단계;A step of receiving motion data corresponding to hand movements that operate the controller;
상기 컨트롤러를 동작시키는 상기 손의 터치 입력에 대응되는 터치 데이터를 수신하는 단계;A step of receiving touch data corresponding to a touch input of the hand that operates the above controller;
상기 모션 데이터와 상기 터치 데이터를 연관시키는 단계; 및a step of associating the above motion data with the above touch data; and
상기 모션 데이터와 상기 터치 데이터를 연관시키는 것에 적어도 부분적으로 기초하여, 상기 손의 제스처에 대응되는 트레이닝 모델을 생성하는 단계를 포함하는 동작들을 수행하도록 하는 컴퓨터 실행 가능 인스트럭션들을 저장하는, 상기 하나 이상의 비일시적 컴퓨터 판독 가능 매체를 포함하는, 시스템.A system comprising one or more non-transitory computer-readable media storing computer-executable instructions that cause the system to perform operations including generating a training model corresponding to the hand gesture based at least in part on associating the motion data with the touch data.
6. 제5항에 있어서, 상기 모션 데이터는 제1 모션 데이터를 포함하고 상기 터치 데이터는 제1 터치 데이터를 포함하며, 상기 손의 상기 움직임은 제1 움직임을 포함하고, 상기 손의 상기 터치 입력은 제1 터치 입력을 포함하며, 상기 하나 이상의 비일시적 컴퓨터 판독 가능 매체는 상기 하나 이상의 프로세서들에 의해 실행 시, 상기 하나 이상의 프로세서들이,6. In the fifth paragraph, the motion data includes first motion data, the touch data includes first touch data, the movement of the hand includes the first movement, the touch input of the hand includes the first touch input, and the one or more non-transitory computer-readable media, when executed by the one or more processors, cause the one or more processors to:
상기 컨트롤러를 동작시키는 상기 사용자 손의 제2 움직임에 대응되는 제2 모션 데이터를 수신하는 단계;A step of receiving second motion data corresponding to a second movement of the user's hand that operates the controller;
상기 컨트롤러를 동작시키는 상기 손의 제2 터치 입력에 대응되는 제2 터치 데이터를 수신하는 단계; 및A step of receiving second touch data corresponding to a second touch input of the hand that operates the controller; and
상기 제2 모션 데이터와 상기 제2 터치 데이터에 적어도 부분적으로 기초하여, 상기 손의 상기 제스처에 대응되는 업데이트된 트레이닝 모델을 생성하는 단계를 포함하는 동작들을 더 수행하도록 하는 컴퓨터 실행 가능 인스트럭션들을 저장하는, 시스템.A system storing computer-executable instructions that cause the computer to further perform operations including generating an updated training model corresponding to the gesture of the hand, based at least in part on the second motion data and the second touch data.
7. 재6항에 있어서, 상기 하나 이상의 프로세서들에 의해 실행 시, 상기 하나 이상의 프로세서들이,7. In the sixth paragraph, when executed by one or more processors, the one or more processors,
상기 업데이트된 트레이닝 모델을 사용하여, 상기 손의 표면에 대응되는 이미지 데이터를 생성하는 단계; 및A step of generating image data corresponding to the surface of the hand using the updated training model; and
상기 손의 상기 표면에 대응되는 상기 이미지 데이터를 전송하는 단계를 포함하는 동작들을 더 수행하도록 하는 컴퓨터 실행 가능 인스트럭션들을 저장하는, 시스템.A system storing computer executable instructions that cause the computer to further perform operations including the step of transmitting the image data corresponding to the surface of the hand.
8. 제7항에 있어서, 상기 이미지를 전송하는 것은 원격 장치가 상기 손의 상기 표현을 디스플레이하도록 하는, 시스템.8. A system in accordance with claim 7, wherein transmitting the image causes a remote device to display the representation of the hand.
9. 제5항에 있어서, 상기 하나 이상의 비일시적 컴퓨터 판독 가능 매체는 상기 하나 이상의 프로세서들에 의해 실행 시, 상기 하나 이상의 프로세서들이 상기 터치 입력과 연관된 힘의 양에 대응되는 힘 데이터를 수신하는 단계를 포함하는 동작을 더 수행하도록 하는 컴퓨터 실행 가능 인스트럭션들을 저장하고, 9. In the fifth paragraph, the one or more non-transitory computer-readable media stores computer-executable instructions that, when executed by the one or more processors, cause the one or more processors to further perform an operation including receiving force data corresponding to an amount of force associated with the touch input.
상기 손의 상기 제스처에 대응되는 상기 트레이닝 모델을 생성하는 것은 상기 힘 데이터에 적어도 부분적으로 더 기초하는, 시스템.A system wherein generating said training model corresponding to said gesture of said hand is further based at least in part on said force data.
10. 제5항에 있어서, 상기 터치 데이터는 상기 터치 입력을 수신하는 상기 컨트롤러 상에 하나 이상의 위치들을 나타내는, 시스템.10. A system in accordance with claim 5, wherein the touch data represents one or more locations on the controller receiving the touch input.
11. 제5항에 있어서, 상기 모션 데이터 및 상기 터치 데이터를 연관시키는 단계는 상기 모션 데이터의 시간 스탬프를 상기 터치 데이터의 시간 스탬프와 연관시키는 단계를 포함하는, 시스템.11. A system in accordance with claim 5, wherein the step of associating the motion data and the touch data includes the step of associating a time stamp of the motion data with a time stamp of the touch data.
12. 제5항에 있어서,12. In paragraph 5,
상기 시스템에 통신 가능하게 결합된 카메라로부터 상기 모션 데이터를 수신하는 단계를 포함하고,comprising a step of receiving said motion data from a camera communicatively coupled to said system;
상기 시스템에 통신 가능하게 결합된 컨트롤러로부터 상기 터치 데이터를 수신하는 단계를 포함하는, 시스템.A system comprising the step of receiving said touch data from a controller communicatively coupled to said system.
13. 시스템에 있어서,13. In the system,
하나 이상의 프로세서들; 및one or more processors; and
하나 이상의 비일시적 컴퓨터 판독 가능 매체로서, 상기 하나 이상의 프로세서들에 의해 실행 시, 상기 하나 이상의 프로세서들이,One or more non-transitory computer-readable media, which, when executed by said one or more processors, cause said one or more processors to:
컨트롤러로부터,From the controller,
상기 컨트롤러에서 수신된 터치 입력을 나타내는 터치 데이터; 또는Touch data representing touch input received from the above controller; or
상기 터치 입력과 연관된 힘의 양을 나타내는 힘 데이터 중 적어도 하나를 수신하는 단계;A step of receiving at least one of force data representing an amount of force associated with said touch input;
핸드 제스처와 연관되는 트레이닝된 모델에 대해 상기 터치 데이터 또는 상기 힘 중 적어도 하나를 분석하는 단계;A step of analyzing at least one of the touch data or the force for a trained model associated with a hand gesture;
상기 분석에 적어도 부분적으로 기초하여, 상기 터치 데이터 또는 상기 힘 데이터 중 적어도 하나가 상기 핸드 제스처에 대응된다고 결정하는 단계;determining, at least in part based on said analysis, that at least one of said touch data or said force data corresponds to said hand gesture;
상기 핸드 제스처를 나타내는 이미지 데이터를 생성하는 단계; 및A step of generating image data representing the above hand gesture; and
디스플레이하기 위해 상기 이미지 데이터를 전송하는 단계를 포함하는 동작들을 수행하도록 하는 컴퓨터 실행 가능 인스트럭션들을 저장하는, 상기 하나 이상의 비일시적 컴퓨터 판독 가능 매체를 포함하는, 시스템.A system comprising one or more non-transitory computer-readable media storing computer-executable instructions that cause the system to perform operations including transmitting the image data for display.
14. 제13항에 있어서, 상기 터치 데이터는 상기 터치 입력에 대응하는 상기 컨트롤러 상의 위치를 나타내는, 시스템.14. A system in accordance with claim 13, wherein the touch data indicates a position on the controller corresponding to the touch input.
15. 제13항에 있어서, 상기 터치 데이터는 제1 터치 데이터를 포함하고, 상기 힘 데이터는 제1 힘 데이터를 포함하고, 상기 트레이닝된 모델은 제1 트레이닝된 모델을 포함하고, 상기 터치 입력은 제1 터치 입력을 포함하고, 상기 이미지 데이터는 제1 이미지 데이터를 포함하고, 상기 핸드 제스처는 제1 핸드 제스처를 포함하고, 상기 하나 이상의 비일시적 컴퓨터 판독 가능 매체는 상기 하나 이상의 프로세서들에 의해 실행 시, 상기 하나 이상의 프로세서들이,15. In the 13th paragraph, the touch data includes first touch data, the force data includes first force data, the trained model includes the first trained model, the touch input includes the first touch input, the image data includes first image data, the hand gesture includes the first hand gesture, and the one or more non-transitory computer-readable media, when executed by the one or more processors, cause the one or more processors to:
상기 컨트롤러로부터,From the above controller,
상기 컨트롤러에서 수신된 제2 터치 입력을 나타내는 제2 터치 데이터; 또는Second touch data representing a second touch input received from the controller; or
상기 제2 터치 입력과 연관된 힘의 양을 나타내는 제2 힘 데이터 중 적어도 하나를 수신하는 단계;A step of receiving at least one of second force data representing an amount of force associated with said second touch input;
제2 핸드 제스처와 연관되는 제2 트레이닝된 모델에 대해 상기 제2 터치 데이터 또는 상기 제2 힘 데이터 중 적어도 하나를 분석하는 단계;A step of analyzing at least one of the second touch data or the second force data for a second trained model associated with a second hand gesture;
상기 제2 터치 데이터 또는 상기 제2 힘 데이터 중 적어도 하나가 제2 핸드 제스처에 대응된다고 결정하는 단계;A step of determining that at least one of the second touch data or the second force data corresponds to a second hand gesture;
상기 제2 핸드 제스처를 나타내는 제2 이미지 데이터를 생성하는 단계; 및A step of generating second image data representing the second hand gesture; and
디스플레이하기 위해 상기 제2 이미지 데이터를 전송하는 단계를 포함하는 동작들을 수행하도록 하는 컴퓨터 실행 가능 인스트럭션들을 저장하는, 시스템.A system storing computer-executable instructions that cause the computer to perform operations including the step of transmitting said second image data for display.
16. 제13항에 있어서, 상기 이미지 데이터는 제1 이미지 데이터를 포함하고 상기 핸드 제스처는 제1 핸드 제스처를 포함하고, 상기 하나 이상의 비일시적 컴퓨터 판독 가능 매체는 상기 하나 이상의 프로세서들에 의해 실행 시, 상기 하나 이상의 프로세서들이,16. In the 13th paragraph, the image data includes first image data, the hand gesture includes a first hand gesture, and the one or more non-transitory computer-readable media, when executed by the one or more processors, cause the one or more processors to:
적어도 하나 이상의 예측 모델링 기술들을 사용하고 상기 제1 핸드 제스처에 적어도 부분적으로 기초하여 제2 핸드 제스처를 결정하는 단계;A step of using at least one predictive modeling technique and determining a second hand gesture based at least in part on the first hand gesture;
상기 제2 핸드 제스처를 나타내는 제2 이미지 데이터를 생성하는 단계; 및A step of generating second image data representing the second hand gesture; and
디스플레이하기 위해 상기 제2 이미지 데이터를 전송하는 단계를 포함하는 동작들을 더 수행하도록 하는 컴퓨터 실행 가능 인스트럭션들을 저장하는, 시스템.A system storing computer-executable instructions that cause the computer to further perform operations including transmitting said second image data for display.
17. 제13항에 있어서, 상기 트레이닝된 모델은,17. In the 13th paragraph, the trained model,
제1 시간 기간 동안 하나 이상의 컨트롤러들로부터 수신된 이전 터치 데이터;Previous touch data received from one or more controllers during the first time period;
상기 제1 시간 기간 동안 상기 하나 이상의 컨트롤러들로부터 수신된 이전 힘 데이터; 또는Previous force data received from said one or more controllers during said first time period; or
상기 제1 시간 기간 동안 하나 이상의 카메라들로부터 수신된 이전 이미지 데이터 중 적어도 하나를 사용하여 이전에 트레이닝된 모델을 포함하는, 시스템A system comprising a previously trained model using at least one of the previous image data received from one or more cameras during said first time period.
18. 제13항에 있어서, 상기 컨트롤러는 제1 컨트롤러를 포함하고, 상기 터치 데이터는 제1 터치 데이터를 포함하고, 상기 힘 데이터는 제1 힘 데이터를 포함하고, 상기 이미지 데이터는 제1 이미지 데이터를 포함하고, 상기 하나 이상의 비일시적 컴퓨터 판독 가능 매체는 상기 하나 이상의 프로세스들에 의해 실행 시, 상기 하나 이상의 프로세스들이,18. In the 13th paragraph, the controller comprises a first controller, the touch data comprises first touch data, the force data comprises first force data, the image data comprises first image data, and the one or more non-transitory computer-readable media, when executed by the one or more processes,
제2 컨트롤러로부터,From the second controller,
상기 제2 컨트롤러에서 수신된 터치 입력을 나타내는 제2 터치 데이터; 또는Second touch data representing a touch input received from the second controller; or
상기 제2 컨트롤러에서 수신된 상기 터치 입력과 연관된 힘의 양을 나타내는 제2 힘 데이터 중 적어도 하나를 수신하는 단계;A step of receiving at least one of second force data representing an amount of force associated with the touch input received from the second controller;
하나 이상의 핸드 제스처들과 연관되는 하나 이상의 트레이닝된 모델들에 대해 상기 제2 터치 데이터 또는 상기 제2 힘 데이터 중 적어도 하나를 분석하는 단계;analyzing at least one of the second touch data or the second force data for one or more trained models associated with one or more hand gestures;
상기 제2 컨트롤러에서 수신된 핸드 제스처를 나타내는 제2 이미지 데이터를 생성하는 단계; 및A step of generating second image data representing a hand gesture received from the second controller; and
디스플레이하기 위해 상기 제2 이미지 데이터를 전송하는 단계를 포함하는 동작들을 더 수행하도록 하는 컴퓨터 실행 가능 인스트럭션들을 저장하는, 시스템.A system storing computer-executable instructions that cause the computer to further perform operations including transmitting said second image data for display.
19. 제13항에 있어서, 상기 이미지 데이터는 상기 핸드 제스처의 3차원(3D) 표현을 포함하는, 시스템.19. A system according to claim 13, wherein the image data includes a three-dimensional (3D) representation of the hand gesture.
20. 제13항에 있어서, 상기 하나 이상의 비일시적 컴퓨터 판독 가능 매체는 상기 하나 이상의 프로세서들에 의해 실행 시, 상기 하나 이상의 프로세서들이,20. In the 13th paragraph, the one or more non-transitory computer-readable media, when executed by the one or more processors, cause the one or more processors to:
상기 터치 데이터 또는 상기 힘 데이터 중 적어도 하나를 하나 이상의 트레이닝된 모델들과 비교하는 단계로서, 상기 하나 이상의 트레이닝된 모델들은 상기 트레이닝된 모델을 포함하고, 상기 트레이닝된 모델들 중 개별 트레이닝된 모델들은 하나 이상의 핸드 제스처들과 연관되는, 상기 비교하는 단계를 포함하는 동작들을 더 수행하도록 하는 컴퓨터 실행 가능 인스트럭션들을 저장하고,A step of comparing at least one of the touch data or the force data with one or more trained models, wherein the one or more trained models include the trained model, and individual trained models among the trained models are associated with one or more hand gestures, further performing computer-executable instructions that cause the comparing step to be performed,
상기 트레이닝된 모델에 대해 상기 터치 데이터 또는 상기 힘 데이터 중 적어도 하나를 분석하는 것은 상기 비교에 적어도 부분적으로 기초하는, 시스템.The system wherein analyzing at least one of the touch data or the force data for the trained model is based at least in part on the comparison.
Claims (15)
하나 이상의 프로세서들; 및
하나 이상의 비일시적 컴퓨터 판독 가능 매체로서, 상기 하나 이상의 프로세서들에 의해 실행 시, 상기 하나 이상의 프로세서들이,
하나 이상의 카메라들에 의해 캡처된 이미지들을 수신하는 단계- 상기 이미지들은 컨트롤러를 동작시키는 손에 결합된 마커들에 의해 반사되거나 방출된 광을 묘사함 -;
상기 이미지들을 분석하여 상기 마커들의 추적된 위치들을 나타내는 모션 데이터를 생성하는 단계 - 상기 추적된 위치들은 상기 컨트롤러를 동작시키는 상기 손의 움직임에 대응함 -;
상기 컨트롤러의 핸들과 상기 손의 손가락들 사이에 배치된 거리를 나타내는 터치 데이터를 수신하는 단계 - 상기 터치 데이터는 상기 핸들의 길이를 따라 공간적으로 분포된 센서들에 의해 감지됨 -;
상기 컨트롤러를 동작시키는 상기 손의 터치 입력에 연관된 힘의 양에 대응되는 힘 데이터를 수신하는 단계;
상기 모션 데이터, 상기 터치 데이터, 및 상기 힘 데이터를 연관시키는 단계; 및
상기 연관된 모션 데이터, 상기 터치 데이터, 및 상기 힘 데이터에 적어도 부분적으로 기초하여 모델을 트레이닝시켜, 후속 터치 데이터 및 상기 후속 터치 데이터와 연관된 후속 힘 데이터에 기초하여, 상기 후속 터치 데이터 및 상기 힘 데이터와 연관된 후속 모션 데이터 없이 상기 손의 제스처가 결정될 수 있게 하도록 구성되는 트레이닝된 모델을 생성하는 단계를 포함하는 동작들을 수행하도록 하는 컴퓨터 실행 가능 인스트럭션들을 저장하는, 상기 하나 이상의 비일시적 컴퓨터 판독 가능 매체를 포함하는, 시스템.In the system,
one or more processors; and
One or more non-transitory computer-readable media, which, when executed by said one or more processors, cause said one or more processors to:
A step of receiving images captured by one or more cameras, said images depicting light reflected or emitted by markers coupled to a hand operating the controller;
A step of analyzing said images to generate motion data representing tracked positions of said markers, said tracked positions corresponding to movements of said hand operating said controller;
A step of receiving touch data representing a distance disposed between a handle of said controller and fingers of said hand, said touch data being detected by sensors spatially distributed along the length of said handle;
A step of receiving force data corresponding to the amount of force associated with the touch input of the hand that operates the controller;
a step of associating the motion data, the touch data, and the force data; and
A system comprising one or more non-transitory computer-readable media storing computer-executable instructions that cause the system to perform operations including: training a model based at least in part on the associated motion data, the touch data, and the force data, such that a trained model is generated, wherein the trained model is configured to enable a gesture of the hand to be determined without subsequent touch data and subsequent motion data associated with the force data, based on subsequent touch data and subsequent force data associated with the subsequent touch data.
상기 하나 이상의 카메라들에 의해 캡처된 제2 이미지들을 수신하는 단계 - 상기 제2 이미지들은 상기 컨트롤러를 동작시키는 상기 손에 결합된 상기 마커들에 의해 반사되거나 방출된 광을 묘사함 -;
상기 제2 이미지들을 분석하여 상기 마커들의 제2의 추적된 위치들을 나타내는 제2 모션 데이터를 생성하는 단계 - 상기 제2의 추적된 위치들은 상기 컨트롤러를 동작시키는 상기 손의 제2 움직임에 대응함 -;
상기 핸들과 상기 손의 손가락들 사이에 배치된 제2 거리를 나타내는 제2 터치 데이터를 수신하는 단계 - 상기 제2 터치 데이터는 상기 센서들에 의해 감지됨-;
상기 제2 모션 데이터와 상기 제2 터치 데이터를 연관시키는 단계; 및
상기 제2 모션 데이터 및 상기 제2 터치 데이터에 적어도 부분적으로 기초하여, 상기 손의 상기 제스처를 결정하도록 구성되는 업데이트된 트레이닝된 모델을 생성하는 단계를 포함하는 동작들을 더 수행하도록 하는 컴퓨터 실행 가능 인스트럭션들을 저장하는, 시스템.In the first aspect, the motion data includes first motion data, the touch data includes first touch data, the movement of the hand includes a first movement, the distance is a first distance, and the one or more non-transitory computer-readable media, when executed by the one or more processors, cause the one or more processors to:
receiving second images captured by said one or more cameras, said second images depicting light reflected or emitted by said markers coupled to said hand operating said controller;
A step of analyzing said second images to generate second motion data representing second tracked positions of said markers, said second tracked positions corresponding to second movements of said hand operating said controller;
A step of receiving second touch data representing a second distance disposed between the handle and fingers of the hand, the second touch data being detected by the sensors;
a step of associating the second motion data with the second touch data; and
A system storing computer-executable instructions that cause the computer to further perform operations comprising generating an updated trained model configured to determine the gesture of the hand based at least in part on the second motion data and the second touch data.
상기 트레이닝된 모델을 사용하여, 상기 손의 표현에 대응되는 이미지 데이터를 생성하는 단계; 및
상기 손의 상기 표현에 대응되는 상기 이미지 데이터를 전송하는 단계를 포함하는 동작들을 더 수행하도록 하는 컴퓨터 실행 가능 인스트럭션들을 저장하는, 시스템.In the first paragraph, the one or more non-transitory computer-readable media, when executed by the one or more processors, cause the one or more processors to:
A step of generating image data corresponding to the expression of the hand using the trained model; and
A system storing computer executable instructions that cause the computer to further perform operations including transmitting the image data corresponding to the expression of the hand.
상기 터치 데이터를 수신하는 단계는 상기 시스템에 통신 가능하게 결합된 상기 컨트롤러로부터 상기 터치 데이터를 수신하는 단계를 포함하는, 시스템.In the first paragraph,
A system wherein the step of receiving the touch data comprises the step of receiving the touch data from the controller communicatively coupled to the system.
하나 이상의 프로세서들; 및
하나 이상의 비일시적 컴퓨터 판독 가능 매체로서, 상기 하나 이상의 프로세서들에 의해 실행 시, 상기 하나 이상의 프로세서들이,
핸드헬드 컨트롤러로부터,
상기 핸드헬드 컨트롤러에 대한 손의 적어도 일부의 근접성을 나타내는 터치 데이터 - 상기 터치 데이터는 센서들에 의해 감지됨 -; 및
상기 핸드헬드 컨트롤러에 대한 누름의 힘의 양을 나타내는 힘 데이터를 수신하는 단계;
상기 터치 데이터 및 상기 힘 데이터의 특성에 적어도 부분적으로 기초하여, 연관된 모션 데이터, 터치 데이터, 및 힘 데이터에 적어도 부분적으로 기초하여 트레이닝된 복수의 트레이닝된 모델들 중에서 트레이닝된 모델을 선택하는 단계;
상기 터치 데이터 및 상기 힘 데이터를 상기 트레이닝된 모델에 입력하는 단계;
상기 트레이닝된 모델을 사용하여, 후속 터치 데이터 및 상기 후속 터치 데이터와 연관된 후속 힘 데이터에 기초하여, 상기 후속 터치 데이터 및 상기 힘 데이터와 연관된 후속 모션 데이터 없이 상기 터치 데이터 및 상기 힘 데이터가 핸드 제스처에 대응한다고 결정하는 단계;
상기 핸드 제스처를 나타내는 이미지 데이터를 생성하는 단계; 및
상기 이미지 데이터에 적어도 부분적으로 기초하여 상기 핸드 제스처의 이미지가 디스플레이 상에 제시되게 하는 단계를 포함하는 동작들을 수행하도록 하는 컴퓨터 실행 가능 인스트럭션들을 저장하는, 상기 하나 이상의 비일시적 컴퓨터 판독 가능 매체를 포함하는, 시스템.In the system,
one or more processors; and
One or more non-transitory computer-readable media, which, when executed by said one or more processors, cause said one or more processors to:
From a handheld controller,
Touch data indicating proximity of at least a portion of a hand to said handheld controller, said touch data being detected by sensors; and
A step of receiving force data representing the amount of force applied to the handheld controller;
A step of selecting a trained model from among a plurality of trained models trained at least partially based on characteristics of the touch data and the force data, the associated motion data, the touch data, and the force data;
A step of inputting the above touch data and the above force data into the trained model;
Using the trained model, determining that the touch data and the force data correspond to a hand gesture without subsequent motion data associated with the subsequent touch data and the force data, based on subsequent touch data and subsequent force data associated with the subsequent touch data;
A step of generating image data representing the above hand gesture; and
A system comprising one or more non-transitory computer-readable media storing computer-executable instructions that cause the system to perform operations including causing an image of the hand gesture to be presented on a display based at least in part on the image data.
상기 손의 적어도 일부가 상기 핸드헬드 컨트롤러를 터치한 상기 핸드헬드 컨트롤러 상의 위치; 또는
상기 누름의 상기 힘의 상기 양
중 적어도 하나를 포함하는, 시스템.In the 8th paragraph, the characteristic is,
a location on said handheld controller where at least a portion of said hand touches said handheld controller; or
The above amount of the above force of the above pressing
A system comprising at least one of:
상기 핸드헬드 컨트롤러로부터,
상기 핸드헬드 컨트롤러에 대한 상기 손의 적어도 상기 일부의 제2 근접성을 나타내는 제2 터치 데이터; 또는
상기 핸드헬드 컨트롤러에 대한 제2 누름의 힘의 제2 양을 나타내는 제2 힘 데이터 중 적어도 하나를 수신하는 단계;
상기 제2 터치 데이터 또는 상기 제2 힘 데이터 중 적어도 하나의 특성에 적어도 부분적으로 기초하여 상기 복수의 트레이닝된 모델들 중에서 제2 트레이닝된 모델을 선택하는 단계;
상기 제2 터치 데이터 또는 상기 제2 힘 데이터 중 상기 적어도 하나를 상기 제2 트레이닝된 모델에 입력하는 단계;
상기 제2 트레이닝된 모델을 사용하여, 상기 제2 터치 데이터 또는 상기 제2 힘 데이터 중 상기 적어도 하나가 제2 핸드 제스처에 대응한다고 결정하는 단계;
상기 제2 핸드 제스처를 나타내는 제2 이미지 데이터를 생성하는 단계; 및
상기 제2 이미지 데이터에 적어도 부분적으로 기초하여 상기 제2 핸드 제스처의 제2 이미지가 상기 디스플레이 상에 제시되게 하는 단계를 포함하는 동작들을 더 수행하도록 하는 컴퓨터 실행 가능 인스트럭션들을 저장하는, 시스템.In the eighth paragraph, the touch data includes first touch data, the force data includes first force data, the trained model includes a first trained model, the image data includes first image data, the hand gesture includes a first hand gesture, and the one or more non-transitory computer-readable media, when executed by the one or more processors, cause the one or more processors to:
From the above handheld controller,
second touch data indicating a second proximity of at least a portion of said hand to said handheld controller; or
A step of receiving at least one of second force data representing a second amount of force of a second press on said handheld controller;
selecting a second trained model from among the plurality of trained models based at least in part on at least one characteristic of the second touch data or the second force data;
A step of inputting at least one of the second touch data or the second force data into the second trained model;
A step of using the second trained model to determine that at least one of the second touch data or the second force data corresponds to a second hand gesture;
A step of generating second image data representing the second hand gesture; and
A system storing computer-executable instructions that cause the computer to further perform actions including causing a second image of the second hand gesture to be presented on the display based at least in part on the second image data.
상기 제1 핸드 제스처에 적어도 부분적으로 기초하여 제2 핸드 제스처를 예측하는 단계;
상기 제2 핸드 제스처를 나타내는 제2 이미지 데이터를 생성하는 단계;
상기 예측 후에, 상기 핸드헬드 컨트롤러로부터,
상기 핸드헬드 컨트롤러에 대한 상기 손의 적어도 상기 일부의 제2 근접성을 나타내는 제2 터치 데이터; 또는
상기 핸드헬드 컨트롤러에 대한 제2 누름의 힘의 제2 양을 나타내는 제2 힘 데이터 중 적어도 하나를 수신하는 단계; 및
상기 제2 이미지 데이터에 적어도 부분적으로 기초하여 상기 제2 핸드 제스처의 제2 이미지가 상기 디스플레이 상에 제시되게 하는 단계를 포함하는 동작들을 더 수행하도록 하는 컴퓨터 실행 가능 인스트럭션들을 저장하는, 시스템.In the eighth paragraph, the hand gesture comprises a first hand gesture, and the one or more non-transitory computer-readable media, when executed by the one or more processors, causes the one or more processors to:
A step of predicting a second hand gesture based at least in part on the first hand gesture;
A step of generating second image data representing the second hand gesture;
After the above prediction, from the handheld controller,
second touch data indicating a second proximity of at least a portion of said hand to said handheld controller; or
receiving at least one of second force data representing a second amount of force of a second press on said handheld controller; and
A system storing computer-executable instructions that cause the computer to further perform actions including causing a second image of the second hand gesture to be presented on the display based at least in part on the second image data.
제1 시간 기간 동안 하나 이상의 컨트롤러들로부터 수신된 이전 터치 데이터;
상기 제1 시간 기간 동안 상기 하나 이상의 컨트롤러들로부터 수신된 이전 힘 데이터; 또는
상기 제1 시간 기간 동안 하나 이상의 카메라들로부터 수신된 이전 이미지 데이터 중 적어도 하나를 사용하여 이전에 트레이닝된 모델을 포함하는, 시스템.In the 8th paragraph, the trained model,
Previous touch data received from one or more controllers during the first time period;
Previous force data received from said one or more controllers during said first time period; or
A system comprising a previously trained model using at least one of the previous image data received from one or more cameras during said first time period.
상기 터치 데이터를 상기 복수의 트레이닝된 모델들과 연관된 저장된 터치 데이터와 비교하는 것; 또는
상기 힘 데이터를 상기 복수의 트레이닝된 모델들과 연관된 저장된 힘 데이터와 비교하는 것
중 적어도 하나에 더 기초하는, 시스템.In the 8th paragraph, the step of selecting the trained model from among the plurality of trained models comprises:
comparing said touch data with stored touch data associated with said plurality of trained models; or
Comparing the above force data with stored force data associated with the plurality of trained models.
A system based on at least one of the following.
Applications Claiming Priority (5)
| Application Number | Priority Date | Filing Date | Title |
|---|---|---|---|
| US201862687780P | 2018-06-20 | 2018-06-20 | |
| US62/687,780 | 2018-06-20 | ||
| US16/195,718 US10987573B2 (en) | 2016-10-11 | 2018-11-19 | Virtual reality hand gesture generation |
| US16/195,718 | 2018-11-19 | ||
| PCT/US2019/032928 WO2019245681A1 (en) | 2018-06-20 | 2019-05-17 | Virtual reality hand gesture generation |
Publications (2)
| Publication Number | Publication Date |
|---|---|
| KR20210021533A KR20210021533A (en) | 2021-02-26 |
| KR102810896B1 true KR102810896B1 (en) | 2025-05-20 |
Family
ID=68982963
Family Applications (1)
| Application Number | Title | Priority Date | Filing Date |
|---|---|---|---|
| KR1020217001241A Active KR102810896B1 (en) | 2018-06-20 | 2019-05-17 | Create virtual reality hand gestures |
Country Status (5)
| Country | Link |
|---|---|
| EP (1) | EP3807747A4 (en) |
| JP (1) | JP7337857B2 (en) |
| KR (1) | KR102810896B1 (en) |
| CN (1) | CN112437909A (en) |
| WO (1) | WO2019245681A1 (en) |
Families Citing this family (10)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| US11334212B2 (en) | 2019-06-07 | 2022-05-17 | Facebook Technologies, Llc | Detecting input in artificial reality systems based on a pinch and pull gesture |
| US10890983B2 (en) | 2019-06-07 | 2021-01-12 | Facebook Technologies, Llc | Artificial reality system having a sliding menu |
| US11448884B2 (en) * | 2020-11-25 | 2022-09-20 | Sony Interactive Entertainment Inc. | Image based finger tracking plus controller tracking |
| IL305750A (en) * | 2021-03-10 | 2023-11-01 | Bungie Inc | Controller state management for client-server networking |
| KR102904217B1 (en) * | 2022-08-30 | 2025-12-26 | 에스케이텔레콤 주식회사 | Supporting method of game replay and a server device supporting the same |
| WO2024085829A1 (en) * | 2022-10-17 | 2024-04-25 | İstanbul Geli̇şi̇m Üni̇versi̇tesi̇ | A system for learning to play old in a meta verse environment using virtual reality technology |
| US12400414B2 (en) | 2023-02-08 | 2025-08-26 | Meta Platforms Technologies, Llc | Facilitating system user interface (UI) interactions in an artificial reality (XR) environment |
| US12387449B1 (en) | 2023-02-08 | 2025-08-12 | Meta Platforms Technologies, Llc | Facilitating system user interface (UI) interactions in an artificial reality (XR) environment |
| US11991222B1 (en) | 2023-05-02 | 2024-05-21 | Meta Platforms Technologies, Llc | Persistent call control user interface element in an artificial reality environment |
| CN116650950B (en) * | 2023-06-08 | 2024-02-06 | 廊坊市珍圭谷科技有限公司 | Control system and method for VR game |
Citations (3)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| JP2004525675A (en) * | 2001-01-24 | 2004-08-26 | インターリンク エレクトロニクス インコーポレイテッド | Game and home entertainment device remote control |
| US20160357261A1 (en) | 2015-06-03 | 2016-12-08 | Oculus Vr, Llc | Virtual Reality System with Head-Mounted Display, Camera and Hand-Held Controllers |
| US20160364002A1 (en) | 2015-06-09 | 2016-12-15 | Dell Products L.P. | Systems and methods for determining emotions based on user gestures |
Family Cites Families (14)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| US8717291B2 (en) * | 2009-10-07 | 2014-05-06 | AFA Micro Co. | Motion sensitive gesture device |
| US9529523B2 (en) * | 2010-04-23 | 2016-12-27 | Handscape Inc. | Method using a finger above a touchpad for controlling a computerized system |
| US8761437B2 (en) * | 2011-02-18 | 2014-06-24 | Microsoft Corporation | Motion recognition |
| US20130154952A1 (en) * | 2011-12-16 | 2013-06-20 | Microsoft Corporation | Gesture combining multi-touch and movement |
| WO2014100045A1 (en) * | 2012-12-17 | 2014-06-26 | Qi2 ELEMENTS II, LLC | Foot-mounted sensor systems for tracking body movement |
| US20140281964A1 (en) * | 2013-03-14 | 2014-09-18 | Maung Han | Method and system for presenting guidance of gesture input on a touch pad |
| EP3262486A4 (en) * | 2015-02-27 | 2018-10-24 | Hewlett-Packard Development Company, L.P. | Detecting finger movements |
| EP3265895B1 (en) * | 2015-03-01 | 2020-04-08 | Tactical Haptics | Embedded grasp sensing devices, systems, and methods |
| US20160342208A1 (en) * | 2015-05-20 | 2016-11-24 | Immersion Corporation | Haptic effects based on predicted contact |
| CN108140360B (en) * | 2015-07-29 | 2020-12-04 | 森赛尔股份有限公司 | System and method for manipulating virtual environments |
| US10549183B2 (en) * | 2016-10-11 | 2020-02-04 | Valve Corporation | Electronic controller with a hand retainer, outer shell, and finger sensing |
| US10307669B2 (en) * | 2016-10-11 | 2019-06-04 | Valve Corporation | Electronic controller with finger sensing and an adjustable hand retainer |
| KR20180056998A (en) * | 2016-11-21 | 2018-05-30 | 엘지전자 주식회사 | Device controller and method of processing data the same |
| WO2019142329A1 (en) | 2018-01-19 | 2019-07-25 | 株式会社ソニー・インタラクティブエンタテインメント | Information processing device, information processing system, information processing method, and program |
-
2019
- 2019-05-17 EP EP19822879.3A patent/EP3807747A4/en active Pending
- 2019-05-17 WO PCT/US2019/032928 patent/WO2019245681A1/en not_active Ceased
- 2019-05-17 KR KR1020217001241A patent/KR102810896B1/en active Active
- 2019-05-17 JP JP2020570736A patent/JP7337857B2/en active Active
- 2019-05-17 CN CN201980041061.3A patent/CN112437909A/en active Pending
Patent Citations (3)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| JP2004525675A (en) * | 2001-01-24 | 2004-08-26 | インターリンク エレクトロニクス インコーポレイテッド | Game and home entertainment device remote control |
| US20160357261A1 (en) | 2015-06-03 | 2016-12-08 | Oculus Vr, Llc | Virtual Reality System with Head-Mounted Display, Camera and Hand-Held Controllers |
| US20160364002A1 (en) | 2015-06-09 | 2016-12-15 | Dell Products L.P. | Systems and methods for determining emotions based on user gestures |
Also Published As
| Publication number | Publication date |
|---|---|
| JP2021527896A (en) | 2021-10-14 |
| CN112437909A (en) | 2021-03-02 |
| EP3807747A1 (en) | 2021-04-21 |
| WO2019245681A1 (en) | 2019-12-26 |
| JP7337857B2 (en) | 2023-09-04 |
| KR20210021533A (en) | 2021-02-26 |
| EP3807747A4 (en) | 2022-03-09 |
Similar Documents
| Publication | Publication Date | Title |
|---|---|---|
| US11992751B2 (en) | Virtual reality hand gesture generation | |
| KR102810896B1 (en) | Create virtual reality hand gestures | |
| US12042718B2 (en) | Holding and releasing virtual objects | |
| US11625898B2 (en) | Holding and releasing virtual objects | |
| JP7802846B2 (en) | Dynamic Sensor Allocation | |
| JP7358408B2 (en) | Holding and releasing virtual objects | |
| JP2022536756A (en) | Cluster-based sensor assignment | |
| US10649583B1 (en) | Sensor fusion algorithms for a handheld controller that includes a force sensing resistor (FSR) | |
| JP2025063132A (en) | SENSOR FUSION ALGORITHM FOR HANDHELD CONTROLLER INCLUDING FORCE SENSING RESISTOR (FSR) | |
| KR102644888B1 (en) | Force sensitive resistor (FSR) with polyimide substrate, system and method thereof | |
| KR102866340B1 (en) | Sensor fusion algorithm for handheld controllers incorporating force-sensitive resistors (FSRs). | |
| CN112437910B (en) | Method and system for holding and releasing a virtual object |
Legal Events
| Date | Code | Title | Description |
|---|---|---|---|
| PA0105 | International application |
St.27 status event code: A-0-1-A10-A15-nap-PA0105 |
|
| R17-X000 | Change to representative recorded |
St.27 status event code: A-3-3-R10-R17-oth-X000 |
|
| PG1501 | Laying open of application |
St.27 status event code: A-1-1-Q10-Q12-nap-PG1501 |
|
| P11-X000 | Amendment of application requested |
St.27 status event code: A-2-2-P10-P11-nap-X000 |
|
| P13-X000 | Application amended |
St.27 status event code: A-2-2-P10-P13-nap-X000 |
|
| PA0201 | Request for examination |
St.27 status event code: A-1-2-D10-D11-exm-PA0201 |
|
| E902 | Notification of reason for refusal | ||
| PE0902 | Notice of grounds for rejection |
St.27 status event code: A-1-2-D10-D21-exm-PE0902 |
|
| P11-X000 | Amendment of application requested |
St.27 status event code: A-2-2-P10-P11-nap-X000 |
|
| P13-X000 | Application amended |
St.27 status event code: A-2-2-P10-P13-nap-X000 |
|
| R17-X000 | Change to representative recorded |
St.27 status event code: A-3-3-R10-R17-oth-X000 |
|
| E601 | Decision to refuse application | ||
| PE0601 | Decision on rejection of patent |
St.27 status event code: N-2-6-B10-B15-exm-PE0601 |
|
| E13-X000 | Pre-grant limitation requested |
St.27 status event code: A-2-3-E10-E13-lim-X000 |
|
| P11-X000 | Amendment of application requested |
St.27 status event code: A-2-2-P10-P11-nap-X000 |
|
| P13-X000 | Application amended |
St.27 status event code: A-2-2-P10-P13-nap-X000 |
|
| PX0901 | Re-examination |
St.27 status event code: A-2-3-E10-E12-rex-PX0901 |
|
| PX0701 | Decision of registration after re-examination |
St.27 status event code: A-3-4-F10-F13-rex-PX0701 |
|
| X701 | Decision to grant (after re-examination) | ||
| GRNT | Written decision to grant | ||
| PR0701 | Registration of establishment |
St.27 status event code: A-2-4-F10-F11-exm-PR0701 |
|
| PR1002 | Payment of registration fee |
St.27 status event code: A-2-2-U10-U12-oth-PR1002 Fee payment year number: 1 |
|
| PG1601 | Publication of registration |
St.27 status event code: A-4-4-Q10-Q13-nap-PG1601 |