KR102292988B1 - 손 감지 컨트롤러 - Google Patents
손 감지 컨트롤러 Download PDFInfo
- Publication number
- KR102292988B1 KR102292988B1 KR1020197030806A KR20197030806A KR102292988B1 KR 102292988 B1 KR102292988 B1 KR 102292988B1 KR 1020197030806 A KR1020197030806 A KR 1020197030806A KR 20197030806 A KR20197030806 A KR 20197030806A KR 102292988 B1 KR102292988 B1 KR 102292988B1
- Authority
- KR
- South Korea
- Prior art keywords
- conductors
- signal
- controller
- sensor pattern
- touch
- Prior art date
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR 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; CALCULATING OR 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; CALCULATING OR 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; CALCULATING OR 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/0346—Pointing devices displaced or positioned by the user, e.g. mice, trackballs, pens or joysticks; Accessories therefor with detection of the device orientation or free movement in a 3D space, e.g. 3D mice, 6-DOF [six degrees of freedom] pointers using gyroscopes, accelerometers or tilt-sensors
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR 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/038—Control and interface arrangements therefor, e.g. drivers or device-embedded control circuitry
- G06F3/0383—Signal control means within the pointing device
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR 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/041—Digitisers, e.g. for touch screens or touch pads, characterised by the transducing means
- G06F3/0416—Control or interface arrangements specially adapted for digitisers
- G06F3/04164—Connections between sensors and controllers, e.g. routing lines between electrodes and connection pads
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR 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/041—Digitisers, e.g. for touch screens or touch pads, characterised by the transducing means
- G06F3/044—Digitisers, e.g. for touch screens or touch pads, characterised by the transducing means by capacitive means
- G06F3/0445—Digitisers, e.g. for touch screens or touch pads, characterised by the transducing means by capacitive means using two or more layers of sensing electrodes, e.g. using two layers of electrodes separated by a dielectric layer
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR 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/041—Digitisers, e.g. for touch screens or touch pads, characterised by the transducing means
- G06F3/044—Digitisers, e.g. for touch screens or touch pads, characterised by the transducing means by capacitive means
- G06F3/0446—Digitisers, e.g. for touch screens or touch pads, characterised by the transducing means by capacitive means using a grid-like structure of electrodes in at least two directions, e.g. using row and column electrodes
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06V—IMAGE OR VIDEO RECOGNITION OR UNDERSTANDING
- G06V40/00—Recognition of biometric, human-related or animal-related patterns in image or video data
- G06V40/10—Human or animal bodies, e.g. vehicle occupants or pedestrians; Body parts, e.g. hands
- G06V40/107—Static hand or arm
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2203/00—Indexing scheme relating to G06F3/00 - G06F3/048
- G06F2203/038—Indexing scheme relating to G06F3/038
- G06F2203/0384—Wireless input, i.e. hardware and software details of wireless interface arrangements for pointing devices
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2203/00—Indexing scheme relating to G06F3/00 - G06F3/048
- G06F2203/041—Indexing scheme relating to G06F3/041 - G06F3/045
- G06F2203/04101—2.5D-digitiser, i.e. digitiser detecting the X/Y position of the input means, finger or stylus, also when it does not touch, but is proximate to the digitiser's interaction surface and also measures the distance of the input means within a short range in the Z direction, possibly with a separate measurement setup
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2203/00—Indexing scheme relating to G06F3/00 - G06F3/048
- G06F2203/041—Indexing scheme relating to G06F3/041 - G06F3/045
- G06F2203/04104—Multi-touch detection in digitiser, i.e. details about the simultaneous detection of a plurality of touching locations, e.g. multiple fingers or pen and finger
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2203/00—Indexing scheme relating to G06F3/00 - G06F3/048
- G06F2203/041—Indexing scheme relating to G06F3/041 - G06F3/045
- G06F2203/04107—Shielding in digitiser, i.e. guard or shielding arrangements, mostly for capacitive touchscreens, e.g. driven shields, driven grounds
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2203/00—Indexing scheme relating to G06F3/00 - G06F3/048
- G06F2203/048—Indexing scheme relating to G06F3/048
- G06F2203/04808—Several contacts: gestures triggering a specific function, e.g. scrolling, zooming, right-click, when the user establishes several contacts with the surface simultaneously; e.g. using several fingers or a combination of fingers and pen
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- General Engineering & Computer Science (AREA)
- Human Computer Interaction (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Computer Networks & Wireless Communication (AREA)
- Multimedia (AREA)
- User Interface Of Digital Computer (AREA)
- Position Input By Displaying (AREA)
Abstract
사람 손의 다양한 위치를 검출하도록 적합화된 복수의 분리된 FMT 센서 패턴을 포함하는 컨트롤러 채용하는 터치 감지 컨트롤러 시스템이 개시된다. 컨트롤러 시스템은 터치 이벤트뿐만 아니라 손과 컨트롤러의 상호작용을 반영하는 데이터를 모두 출력한다. FMT 센서는 공통 신호 발생기에 의해 구동될 수 있고, 컨트롤러 상의 손의 위치, 배향 및 움켜잡음을 이해하는 것을 돕기 위해 신체 생성 크로스토크를 볼 수 있다. 일실시형태에 있어서, 신호 주입은 FMT 센서 데이터를 추가할 수 있다. 복수의 FMT 센서에 의해 전송 및 수신된 데이터와 추가의 주입된 신호 사이의 융합은 터치 및 손 모델링 모두에서 개선된 충실도를 제공할 수 있다.
Description
본 출원은 2017년 3월 20일자로 제출된 "손 감지 컨트롤러"라는 명칭의 미국 가출원 제62/473,908호의 이익을 주장하며, 그 내용은 본원에 참조로 원용된다.
개시된 장치 및 방법은 인간-기계 인터페이스 컨트롤러의 분야에 관한 것이고, 특히 호버, 움켜잡음 및 압력을 포함하는 터치에 민감한 인간-기계 인터페이스 컨트롤러에 관한 것이다.
최근, 멀티 터치 기술이 개발되고 있다. 개발의 수단에는 동시 직교 시그널링 방식을 사용한 센서와의 정전식 상호작용에 기초하여 터치의 히트맵을 생성하는 것이 포함되어 있다. 동시 직교 시그널링 방식에 의해 구동되는 센서를 사용한 상호작용 감지에 관한 다수의 특허 출원서가 제출되었고, "저지연 터치 감지 장치"라는 명칭으로 2013년 3월 15일자로 제출된 출원인의 이전 미국특허출원 제13/841,436호 및 "고속 멀티 터치 포스트프로세싱"이라는 명칭으로 2013년 11월 1일자로 제출된 미국특허출원 제14/069,609호를 포함하지만, 이에 한정되지 않는다.
이들 시스템 및 방법은 일반적으로 평면 센서 상에서의 멀티 터치 감지에 관한 것이다. 사용자의 터치, 제스처 및 핸드헬드 객체와의 상호작용을 이해하기 위해 정보를 얻는 것은 무수히 많은 가능성을 도입하지만, 핸드헬드 객체가 무수히 많은 형태로 되어 있기 때문에 정진식 터치 센서를 컨트롤러와 같은 핸드헬드 객체에 통합하는 것이 어려울 수 있으며, 따라서 센서는 사용자의 제스처 및 핸드헬드 객체와의 다른 상호작용에 관한 정보를 제공할 수 있다.
일반적으로, 택셀(taxel)(또는 행-열 교차점) 데이터가 히트맵에 집약되어 있다. 그런 다음, 이들 히트맵은 터치 이벤트를 식별하기 위해 포스트프로세스되고, 터치 이벤트는 제스처, 및 그들 제스처가 수행되는 객체를 포함하지만 이에 한정되지 않는 터치 상호작용을 이해하고자 하는 다운스트림 프로세스로 스트리밍된다.
사용자의 제스처 및 컨트롤러와의 다른 상호작용에 관한 보다 상세한 정보를 제공하는 정전식 터치 컨트롤러가 필요하다.
사용자가 컨트롤러와 상호작용하는 손 모델을 제공할 수 있는 정전식 터치 컨트롤러 시스템이 필요하다.
본 개시 내용의 상술한 및 다른 목적, 특징, 및 이점은 다양한 도면에 걸쳐 동일한 부분을 지칭하는 참조 부호로 나타낸 첨부된 도면에 나타내어진 바와 같이 이하의 실시형태의 보다 구체적인 설명으로부터 명백해질 것이다. 도면은 반드시 스케일대로 나타낸 것은 아니고, 대신에 상기 개시된 실시형태의 원리를 설명하는 데 중점을 두고 있다.
도 1a는 정전식 센서 패턴을 포함하는 예시적인 6-DOF 컨트롤러의 뷰를 도시한다.
도 1b는 정전식 센서 패턴을 포함하는 예시적인 6-DOF 컨트롤러의 뷰를 도시한다.
도 1c는 정전식 센서 패턴을 포함하는 예시적인 6-DOF 컨트롤러의 뷰를 도시한다.
도 1d는 정전식 센서 패턴을 포함하는 예시적인 6-DOF 컨트롤러의 뷰를 도시한다.
도 1d는 정전식 센서 패턴을 포함하는 예시적인 6-DOF 컨트롤러의 뷰를 도시한다.
도 1e는 정전식 센서 패턴을 포함하는 예시적인 6-DOF 컨트롤러의 뷰를 도시한다.
도 1f는 정전식 센서 패턴을 포함하는 예시적인 6-DOF 컨트롤러의 뷰를 도시한다.
도 2는 사용자의 손에 있는 컨트롤러와 함께, 엄지손가락과 컨트롤러의 엄지손가락 중심 부분의 상호작용에 기초하여 검출된 히트맵의 컴퓨터화된 모델의 일실시형태를 나타낸다.
도 3a는 컨트롤러의 엄지손가락 중심 부분과 관련하여 사용되는 센서 패턴의 실시형태를 도시한다.
도 3b는 컨트롤러의 엄지손가락 중심 부분과 관련하여 사용되는 센서 패턴의 다른 실시형태를 도시한다.
도 3c는 컨트롤러의 엄지손가락 중심 부분과 관련하여 사용되는 3층 센서 패턴의 실시형태를 도시한다.
도 3d는 컨트롤러의 엄지손가락 중심 부분과 관련하여 사용되는 3층 센서 패턴의 실시형태를 도시한다.
도 4는 사용자의 손에 있는 컨트롤러, 및 집게손가락과 컨트롤러의 트리거 중심 부분의 검출된 상호작용에 기초하여 집게손가락 위치를 나타내는 컴퓨터화된 모델의 실시형태를 도시한다.
도 5a는 컨트롤러의 트리거 중심 부분과 관련하여 사용되는 3층 센서 패턴의 실시형태를 도시한다.
도 5b는 컨트롤러의 트리거 중심 부분과 관련하여 사용되는 3층 센서 패턴의 실시형태를 도시한다.
도 6a는 컨트롤러의 트리거 중심 부분과 관련하여 사용되는 3층 센서 패턴의 다른 실시형태를 도시한다.
도 6b는 컨트롤러의 트리거 중심 부분과 관련하여 사용되는 3층 센서 패턴의 다른 실시형태를 도시한다.
도 7a는 컨트롤러의 트리거 중심 부분과 관련하여 사용되는 3층 센서 패턴의 또 다른 실시형태를 도시한다.
도 7b는 컨트롤러의 트리거 중심 부분과 관련하여 사용되는 3층 센서 패턴의 또 다른 실시형태를 도시한다.
도 8a는 컨트롤러의 트리거 중심 부분과 관련하여 사용되는 3층 센서 패턴의 추가 실시형태를 도시한다.
도 8b는 컨트롤러의 트리거 중심 부분과 관련하여 사용되는 3층 센서 패턴의 추가 실시형태를 도시한다.
도 9는 사용자의 손에 있는 컨트롤러, 및 컨트롤러 본체dp dlTsms 정전식 센서에 기초하여 손 위치를 나타내는 컴퓨터화된 모델의 실시형태를 도시한다.
도 10a는 컨트롤러 본체의 불규칙적인 곡률을 따르는 행과 열로 이루어진 피쉬본형 센서 패턴의 일실시형태의 하나의 뷰를 도시한다.
도 10b는 컨트롤러의 일실시형태의 좌측면을 형성하는 데 사용될 수 있는 구성요소를 나타낸다.
도 10c는 컨트롤러의 일실시형태의 좌측면을 형성하는 데 사용될 수 있는 구성요소를 나타낸다.
도 10d는 컨트롤러 본체의 일실시형태의 우측면을 형성하는 데 사용될 수 있는 구성요소를 나타낸다.
도 10e는 컨트롤러 본체의 일실시형태의 우측면을 형성하는 데 사용될 수 있는 구성요소를 나타낸다.
도 10f는 컨트롤러의 일실시형태와 관련하여 사용될 수 있는 센서 패턴 및 피드라인의 2차원 트레이스를 나타낸다.
도 10g는 컨트롤러의 일실시형태와 관련하여 사용될 수 있는 센서 패턴 및 피드라인의 2차원 트레이스를 나타낸다.
도 11a는 집게손가락 위치와 모션, 및 그 집게손가락 위치와 모션과 관련된 템플릿과 파형을 도시한다.
도 11b는 집게손가락 위치와 모션, 및 그 집게손가락 위치와 모션과 관련된 템플릿과 파형을 도시한다.
도 11c는 집게손가락 위치와 모션, 및 그 집게손가락 위치와 모션과 관련된 템플릿과 파형을 도시한다.
도 12는 본 발명의 일실시형태에 따른 전체 라이브러리 파이프라인의 블록들을 나타낸다.
도 13은 본 발명의 일실시형태에 따른 startLoop() 및 loop()에 대한 모든 호출이 성공적이라고 가정할 때, 예상되는 호출 순서 및 외부 스레드와 GenericModule의 스레드 사이의 상호작용을 도시한다.
도 14는 본 발명의 일실시형태에 따른 GenericModule에 의해 지원되는 스테이트의 리스트뿐만 아니라 그들의 변환 조건을 나타내는 스테이트 머신을 도시한다.
도 15는 본 발명에 일실시형태에 따른 startLoop() 또는 loop() 동안 스레드가 성공적으로 생성되고, 오류가 발생하지 않는 경우에 있어서 GenericModule의 예상 라이프사이클을 도시한다.
도 16a는 본 발명의 일실시형태에 있어서의 호출 순서를 나타내는 시퀀스 다이어그램이다.
도 16b는 본 발명의 일실시형태에 있어서의 호출 순서를 나타내는 시퀀스 다이어그램이다.
도 16c는 본 발명의 일실시형태에 있어서의 호출 순서를 나타내는 시퀀스 다이어그램이다.
도 16d는 본 발명의 일실시형태에 있어서의 호출 순서를 나타내는 시퀀스 다이어그램이다.
도 17a는 본 발명의 2개의 상이한(그러나 비배타적인) 실시형태에 따른 ProcessingThreads 생성 구조를 나타낸다.
도 17b는 본 발명의 2개의 상이한(그러나 비배타적인) 실시형태에 따른 ProcessingThreads 생성 구조를 나타낸다.
도 18은 손잡이(handedness), 집게손가락(index), 손가락들(fingers) 및 엄지손가락 패드(thumbpad)에 대한 체크박스를 포함하는 컨트롤러 UI의 일실시형태를 나타낸다.
도 19는 컨트롤러의 본체 주변의 미교정된 히트맵을 시각화한 것이다.
도 20은 표면을 실질적으로 덮도록 움켜잡은 컨트롤러의 본체 주변의 히트맵을 시각화한 것이다.
도 21은 움켜잡지 않은 컨트롤러의 본체 주변의 히트맵을 시각화한 것이다.
도 22는 오른손에 잡은 교정된 컨트롤러의 본체 주변의 히트맵을 시각화한 것이다.
도 23은 본 발명의 일실시형태에 따른 라이브러리의 기본적인 라이프사이클을 나타낸다.
도 24는 본 발명의 일실시형태에 따른 컨트롤러에 관련하는 사람 손과, 손의 일련의 관절 및 뼈를 도시한다.
도 25는 본 발명의 일실시형태에 따른 도 24에 도시된 바와 같은 골격(skeleton) 데이터의 표현을 반영한 테이블이다.
도 26은 사용자의 손가락 정보를 나타내는 데 사용될 수 있는 데이터 구조의 일실시형태를 나타낸다.
도 27은 예시적인 오른손의 skeletonPoses의 일실시형태를 설명하는 테이블이다.
도 28은 예시적인 오른손의 skeletonPoses의 일실시형태를 설명하는 테이블이다.
도 1a는 정전식 센서 패턴을 포함하는 예시적인 6-DOF 컨트롤러의 뷰를 도시한다.
도 1b는 정전식 센서 패턴을 포함하는 예시적인 6-DOF 컨트롤러의 뷰를 도시한다.
도 1c는 정전식 센서 패턴을 포함하는 예시적인 6-DOF 컨트롤러의 뷰를 도시한다.
도 1d는 정전식 센서 패턴을 포함하는 예시적인 6-DOF 컨트롤러의 뷰를 도시한다.
도 1d는 정전식 센서 패턴을 포함하는 예시적인 6-DOF 컨트롤러의 뷰를 도시한다.
도 1e는 정전식 센서 패턴을 포함하는 예시적인 6-DOF 컨트롤러의 뷰를 도시한다.
도 1f는 정전식 센서 패턴을 포함하는 예시적인 6-DOF 컨트롤러의 뷰를 도시한다.
도 2는 사용자의 손에 있는 컨트롤러와 함께, 엄지손가락과 컨트롤러의 엄지손가락 중심 부분의 상호작용에 기초하여 검출된 히트맵의 컴퓨터화된 모델의 일실시형태를 나타낸다.
도 3a는 컨트롤러의 엄지손가락 중심 부분과 관련하여 사용되는 센서 패턴의 실시형태를 도시한다.
도 3b는 컨트롤러의 엄지손가락 중심 부분과 관련하여 사용되는 센서 패턴의 다른 실시형태를 도시한다.
도 3c는 컨트롤러의 엄지손가락 중심 부분과 관련하여 사용되는 3층 센서 패턴의 실시형태를 도시한다.
도 3d는 컨트롤러의 엄지손가락 중심 부분과 관련하여 사용되는 3층 센서 패턴의 실시형태를 도시한다.
도 4는 사용자의 손에 있는 컨트롤러, 및 집게손가락과 컨트롤러의 트리거 중심 부분의 검출된 상호작용에 기초하여 집게손가락 위치를 나타내는 컴퓨터화된 모델의 실시형태를 도시한다.
도 5a는 컨트롤러의 트리거 중심 부분과 관련하여 사용되는 3층 센서 패턴의 실시형태를 도시한다.
도 5b는 컨트롤러의 트리거 중심 부분과 관련하여 사용되는 3층 센서 패턴의 실시형태를 도시한다.
도 6a는 컨트롤러의 트리거 중심 부분과 관련하여 사용되는 3층 센서 패턴의 다른 실시형태를 도시한다.
도 6b는 컨트롤러의 트리거 중심 부분과 관련하여 사용되는 3층 센서 패턴의 다른 실시형태를 도시한다.
도 7a는 컨트롤러의 트리거 중심 부분과 관련하여 사용되는 3층 센서 패턴의 또 다른 실시형태를 도시한다.
도 7b는 컨트롤러의 트리거 중심 부분과 관련하여 사용되는 3층 센서 패턴의 또 다른 실시형태를 도시한다.
도 8a는 컨트롤러의 트리거 중심 부분과 관련하여 사용되는 3층 센서 패턴의 추가 실시형태를 도시한다.
도 8b는 컨트롤러의 트리거 중심 부분과 관련하여 사용되는 3층 센서 패턴의 추가 실시형태를 도시한다.
도 9는 사용자의 손에 있는 컨트롤러, 및 컨트롤러 본체dp dlTsms 정전식 센서에 기초하여 손 위치를 나타내는 컴퓨터화된 모델의 실시형태를 도시한다.
도 10a는 컨트롤러 본체의 불규칙적인 곡률을 따르는 행과 열로 이루어진 피쉬본형 센서 패턴의 일실시형태의 하나의 뷰를 도시한다.
도 10b는 컨트롤러의 일실시형태의 좌측면을 형성하는 데 사용될 수 있는 구성요소를 나타낸다.
도 10c는 컨트롤러의 일실시형태의 좌측면을 형성하는 데 사용될 수 있는 구성요소를 나타낸다.
도 10d는 컨트롤러 본체의 일실시형태의 우측면을 형성하는 데 사용될 수 있는 구성요소를 나타낸다.
도 10e는 컨트롤러 본체의 일실시형태의 우측면을 형성하는 데 사용될 수 있는 구성요소를 나타낸다.
도 10f는 컨트롤러의 일실시형태와 관련하여 사용될 수 있는 센서 패턴 및 피드라인의 2차원 트레이스를 나타낸다.
도 10g는 컨트롤러의 일실시형태와 관련하여 사용될 수 있는 센서 패턴 및 피드라인의 2차원 트레이스를 나타낸다.
도 11a는 집게손가락 위치와 모션, 및 그 집게손가락 위치와 모션과 관련된 템플릿과 파형을 도시한다.
도 11b는 집게손가락 위치와 모션, 및 그 집게손가락 위치와 모션과 관련된 템플릿과 파형을 도시한다.
도 11c는 집게손가락 위치와 모션, 및 그 집게손가락 위치와 모션과 관련된 템플릿과 파형을 도시한다.
도 12는 본 발명의 일실시형태에 따른 전체 라이브러리 파이프라인의 블록들을 나타낸다.
도 13은 본 발명의 일실시형태에 따른 startLoop() 및 loop()에 대한 모든 호출이 성공적이라고 가정할 때, 예상되는 호출 순서 및 외부 스레드와 GenericModule의 스레드 사이의 상호작용을 도시한다.
도 14는 본 발명의 일실시형태에 따른 GenericModule에 의해 지원되는 스테이트의 리스트뿐만 아니라 그들의 변환 조건을 나타내는 스테이트 머신을 도시한다.
도 15는 본 발명에 일실시형태에 따른 startLoop() 또는 loop() 동안 스레드가 성공적으로 생성되고, 오류가 발생하지 않는 경우에 있어서 GenericModule의 예상 라이프사이클을 도시한다.
도 16a는 본 발명의 일실시형태에 있어서의 호출 순서를 나타내는 시퀀스 다이어그램이다.
도 16b는 본 발명의 일실시형태에 있어서의 호출 순서를 나타내는 시퀀스 다이어그램이다.
도 16c는 본 발명의 일실시형태에 있어서의 호출 순서를 나타내는 시퀀스 다이어그램이다.
도 16d는 본 발명의 일실시형태에 있어서의 호출 순서를 나타내는 시퀀스 다이어그램이다.
도 17a는 본 발명의 2개의 상이한(그러나 비배타적인) 실시형태에 따른 ProcessingThreads 생성 구조를 나타낸다.
도 17b는 본 발명의 2개의 상이한(그러나 비배타적인) 실시형태에 따른 ProcessingThreads 생성 구조를 나타낸다.
도 18은 손잡이(handedness), 집게손가락(index), 손가락들(fingers) 및 엄지손가락 패드(thumbpad)에 대한 체크박스를 포함하는 컨트롤러 UI의 일실시형태를 나타낸다.
도 19는 컨트롤러의 본체 주변의 미교정된 히트맵을 시각화한 것이다.
도 20은 표면을 실질적으로 덮도록 움켜잡은 컨트롤러의 본체 주변의 히트맵을 시각화한 것이다.
도 21은 움켜잡지 않은 컨트롤러의 본체 주변의 히트맵을 시각화한 것이다.
도 22는 오른손에 잡은 교정된 컨트롤러의 본체 주변의 히트맵을 시각화한 것이다.
도 23은 본 발명의 일실시형태에 따른 라이브러리의 기본적인 라이프사이클을 나타낸다.
도 24는 본 발명의 일실시형태에 따른 컨트롤러에 관련하는 사람 손과, 손의 일련의 관절 및 뼈를 도시한다.
도 25는 본 발명의 일실시형태에 따른 도 24에 도시된 바와 같은 골격(skeleton) 데이터의 표현을 반영한 테이블이다.
도 26은 사용자의 손가락 정보를 나타내는 데 사용될 수 있는 데이터 구조의 일실시형태를 나타낸다.
도 27은 예시적인 오른손의 skeletonPoses의 일실시형태를 설명하는 테이블이다.
도 28은 예시적인 오른손의 skeletonPoses의 일실시형태를 설명하는 테이블이다.
본 출원은 고속 멀티 터치 센서와 같은 사용자 인터페이스 및 "터치 감지 객체"라는 명칭으로 2016년 8월 30일자로 제출된 미국특허출원 제15/251,859호에 개시된 다른 인터페이스에 관한 것이다. 그 출원의 전체 개시 내용, 및 참조에 의해 그 안에 포함되어 있는 출원은 본원에 참조로 원용된다.
다양한 실시형태에 있어서, 본 개시 내용은 손 감지 컨트롤러, 및 감지 컨트롤러(예를 들면, 손 감지 컨트롤러 및 손 및 터치 감지 컨트롤러)를 설계, 제조 및 작동시키기 위한 방법에 관한 것이고, 특히 인간 상호작용을 감지하기 위해 정전식 센서를 사용하는 컨트롤러에 관한 것이다. 이 개시 내용 전반에 걸쳐, 다양한 컨트롤러 형태 및 센서 패턴이 예시 목적으로 사용된다. 본 발명을 설명하기 위한 예시적인 구성요소 및/또는 기하학적 형태가 개시되어 있지만, 본원의 개시 내용의 범위 및 사상을 벗어나는 일 없이 본 개시 내용의 관점에서 다른 구성요소 및 기하학적 형태가 당업자에 의해 명백해질 것이다.
본 개시 내용 전반에 걸쳐, 용어 "호버", "터치", "터치들", "접촉", "접촉들", "압력", "압력들" 또는 다른 기술어는 인간-기게 상호작용이 발생하는 이벤트 또는 시간 주기를 설명하는 데 사용될 수 있으며, 즉 사용자의 손가락, 스타일러스, 객체 또는 신체 부분이 센서에 의해 검출된다. 일부 실시형태에 있어서, 단어 "접촉"이라고 일반적으로 표시되는 바와 같이, 이들 검출은 센서, 또는 그것이 구현되는 장치와의 물리적 접촉의 결과로서 발생한다. 다른 실시형태에 있어서, 용어 "호버"라고 일반적으로 지칭되는 바와 같이, 센서는 터치 표면 위에서 약간 떨어져서 호버링하거나, 그렇지 않으면 터치 감지 장치로부터 분리된 "터치들"의 검출을 허용하도록 조정될 수 있다. 본원에 사용된 바와 같이, "터치 표면"은 실제적인 형상을 갖지 않을 수 있으며, 일반적으로 빈약한 형상(feature-sparse)의 표면일 수 있다. 감지된 물리적 접촉에 대한 의존성을 의미하는 이 설명 내에서의 언어 사용은 이들 실시형태에만 적용되는 것을 의미하지 않고; 사실상, 본원에 기재된 것은 "접촉" 및 "호버"와 동일하게 적용되며, 이들 각각은 "터치"이다. 보다 일반적으로, 본원에 사용된 바와 같이 용어 "터치"는 본원에 개시된 센서의 유형에 의해 검출될 수 있는 행위를 지칭하고, 따라서 본원에 사용된 바와 같이 용어 "호버"는 "터치"가 여기서 의도된 것이라는 점에서 "터치"의 한 유형이다. "압력"은 객체의 표면에 대한 사용자 접촉(예를 들면, 사용자의 손가락 또는 손)에 의해 가해지는 단위면적당 힘을 지칭한다. "압력"의 양은 어느 정도의 "접촉", 즉 "터치"와 유사하다. "터치"는 "호버", "접촉", "압력" 또는 "움켜잡음"의 상태를 지칭하지만, "터치"의 부족은 일반적으로 센서에 의한 정확한 측정값이 임계값 미만인 신호에 의해 식별된다. 따라서, 본원에 사용된 바와 같이 명사로 사용되는 경우의 어구 "터치 이벤트" 및 단어 "터치"는 근접 터치 및 근접 터치 이벤트, 또는 센서를 사용하여 식별될 수 있는 임의의 다른 제스처를 포함한다. 일실시형태에 따르면, 터치 이벤트는 예를 들면, 약 10밀리초 이하, 또는 약 1밀리초 미만의 매우 낮은 레이턴시를 가진 다운스트림 컴퓨터적 프로세스에 대해 검출, 처리 및 공급될 수 있다.
본원에 사용된 바와 같이, 특히 청구범위 내에서 제 1 및 제 2와 같은 서수 용어는 그들 자체로는 순서, 시간 또는 고유성을 의미하는 것으로 의도되지 않으며, 오히려 하나의 청구된 구성을 다른 구성과 구별하기 위해 사용된다. 문맥이 지시하는 일부 사용에 있어서, 이들 용어는 제 1 및 제 2가 고유하다는 것을 의미할 수 있다. 예를 들면, 제 1 시간에 이벤트가 발생하고, 제 2 시간에 다른 이벤트가 발생하는 경우, 제 2 시간 이전에 제 1 시간이 발생한다는 의미로 의도되지는 않는다. 그러나, 청구항에 제 2 시간이 제 1 시간 이후이라는 추가 한정이 제시되어 있는 경우, 문맥은 제 1 시간 및 제 2 시간을 고유한 시간으로 읽는 것이 필요하다. 마찬가지로, 문맥이 그렇게 지시하거나 허용하는 경우, 2개의 식별된 청구항 구성이 동일한 특성 또는 상이한 특성을 가질 수 있도록 서수 용어가 광범위하게 해석되도록 의도된다. 따라서, 예를 들면 추가 한정이 없는 경우, 제 1 주파수 및 제 2 주파수는 동일한 주파수-예를 들면, 10Mhz인 제 1 주파수 및 10Mhz인 제 1 주파수일 수 있거나; 또는 상이한 주파수-예를 들면, 10Mhz인 제 1 주파수 및 11Mhz인 제 2 주파수일 수 있다. 예를 들면, 제 1 주파수 및 제 2 주파수가 주파수에서 서로 직교한다는 추가 한정이 있는 경우에 문맥은 다르게 의미할 수 있으며, 이 경우에는 동일한 주파수일 수 없다.
일실시형태에 있어서, 개시된 고속 멀티 터치 센서는 터치 이벤트의 높은 업데이트 속도 및 낮은 레이턴시 측정을 위해 향상된 투영형 정전식 방법을 활용한다. 상기 기술은 병렬 하드웨어 및 고주파수 파형을 사용하여 상기 이점을 얻을 수 있다. 또한, 민감하고 견고한 측정을 수행하는 방법이 개시되어 있으며, 이 방법은 투명한 디스플레이 표면에 사용될 수 있고, 상기 기술을 채용하는 제품의 경제적인 제조를 가능하게 할 수 있다. 이 점에서, 본원에 사용된 "정전식 객체"는 손가락, 인체의 다른 부분, 스타일러스, 또는 센서가 감지하는 임의의 객체일 수 있다. 본원에 개시된 센서 및 방법은 정전 용량에 의존할 필요가 없다. 예를 들면, 광학 센서의 경우, 이러한 실시형태는 터치 이벤트를 감지하기 위해 광자 터널링 및 누광을 활용하고, 본원에 사용된 "정전식" 컨트롤러는 이러한 감지와 호환가능한 스타일러스 또는 손가락과 같은 임의의 객체를 포함한다. 마찬가지로, "본원에 사용된 "터치 위치" 및 "터치 감지 장치"는 정전식 컨트롤러와 상기 개시된 센서 사이의 실제 터치하는 접촉을 필요로 하지 않는다.
본원에 사용된 용어 "컨트롤러"는 인간-기계 인터페이스의 기능을 제공하는 물리적 객체를 지칭하는 것으로 의도된다. 일실시형태에 있어서, 컨트롤러는 핸드헬드형이다. 일실시형태에 있어서, 헨드헬드 컨트롤러는 본원에 설명된 감지된 터치 입력과 분리되어 계수되는 6 자유도(예를 들면, 위/아래, 왼쪽/오른쪽, 앞/뒤, 전후 이동, 좌우 회전, 및 좌우 이동)를 제공한다. 일실시형태에 있어서, 컨트롤러는 6 미만의 자유도를 제공할 수 있다. 일실시형태에 있어서, 컨트롤러는 일반적으로 27 자유도를 갖는 것으로 간주되는 사람 손의 움직임의 복제본에서와 같이 더 많은 자유도를 제공할 수 있다. 전반적으로, 용어 "6-DOF 컨트롤러"는 컨트롤러가 추적할 수 있는 총 자유도수를 엄격하게 계수하기보다는 컨트롤러의 위치 및 배향이 공간 내에서 추적되는 실시형태를 지칭하고; 즉, 터치 추적, 버튼 누름, 터치패드, 또는 조이스틱 입력과 같은 추가적인 자유도가 가능한지의 여부에 상관 없이 "6-DOF"라고 할 것이다. 또한, 용어 6-DOF는 6차원 미만으로 추적될 수 있는 컨트롤러를 지칭하고, 예를 들면, 3D 위치가 추적되지만 그것의 좌우 이동/전후 이동/좌우 회전은 추적되지 않는 컨트롤러, 또는 움직임의 2차원 또는 1차원으로만 추적되지만 그것의 배향은 3자유도 또는 더 적은 자유도로 추적되는 컨트롤러이다.
도 1a~1f는 정전식 센서 패턴을 포함하는 예시적인 6-DOF 컨트롤러(100)의 다양한 뷰를 도시한다. 일실시형태에 있어서, 컨트롤러(100)의 상단(104) 또는 상단 근처로부터, 컨트롤러(100)의 하단(106) 또는 하단 근처까지 연장되어 있는 도 2에 나타내어진 핸드 스트랩(102)이 컨트롤러의 6-DOF를 용이하게 하기 위해 제공된다. 일실시형태에 있어서, 컨트롤러(100)는 엄지손가락 중심 부분(110) 및 트리거 중심 부분(112)을 갖는다. 일실시형태에 있어서, 컨트롤러(100)는 일반적으로 사용자의 손바닥(105) 내에 들어맞도록 설계된다. 일실시형태에 있어서, 컨트롤러(100)는 왼손 또는 오른손 중 하나에 사용할 수 있는 방식으로 설계된다. 일실시형태에 있어서, 특수화된 컨트롤러(100)는 왼손 및 오른손 각각에 사용될 수 있다.
정전식 센서 패턴은 일반적으로 행과 열을 갖는 것으로 생각된다. 그러나, 본원에 사용된 바와 같이 용어 행과 열은 정사각형 그리드를 지칭하는 것으로 의도되는 것이 아니라, 신호가 전송되는 도체의 세트(행) 및 신호가 결합될 수 있는 도체의 세트(열)를 지칭한다. (신호가 행에 전송되고 열 자체에서 수신된다는 개념은 임의적인 것이며, 신호는 열이라고 임의로 지정된 도체에 쉽게 전송되고 행이라고 임의로 지정된 도체에서 수신될 수 있거나, 또는 행과 열 모두 임의로 다르게 지정될 수 있으며; 또한 동일한 도체가 전송기와 수신기 모두로서 작용할 수 있다.) 이하에서 보다 상세히 논의되는 바와 같이, 행과 열은 그리드를 형성할 필요는 없으며; 행-열 교차점에 근접한 터치가 행과 열 사이의 결합을 증가시키거나 감소시키는 한, 다양한 형상이 가능하다.
지금까지 여러 정전식 센서 패턴이 제안되어 왔으며, 예를 들면, "정전식 센서 패턴"이라는 명칭으로 2016년 4월 14일자로 제출된 출원인의 이전 미국특허출원 제15/099,179호를 참조하고, 그 출원의 전체 개시 내용, 및 참조에 의해 그 안에 포함된 출원들은 본원에 참조로 원용된다. 일실시형태에 있어서, 도 1a~1f에 나타내어진 컨트롤러(100)는 복수의 정전식 센서 패턴을 포함한다. 일실시형태에 있어서, 2개 이상의 센서 패턴이 단일 컨트롤러에 채용될 수 있다. 일실시형태에 있어서, 3개의 센서 패턴이 단일 핸드헬드 컨트롤러(100)에 채용된다. 나타내어진 일실시형태에 있어서, 엄지손가락 중심 검출을 위해 하나의 센서 패턴이 채용되고, 트리거 중심 검출을 위해 다른 센서 패턴이 채용되고, 컨트롤러의 본체 주변의 다른 위치에서의 검출을 위해 또 다른 센서 패턴이 채용된다.
센서 패턴의 전부 또는 임의의 조합을 위한 전송기 및 수신기는 필요한 신호를 전송 및 수신할 수 있는 단일 집적회로에 작동가능하게 연결될 수 있다. 일실시형태에 있어서, 집적 회로의 정전 용량(즉, 전송 및 수신 채널의 수) 및 센서 패턴의 요건(즉, 전송 및 수신 채널의 수)이 허용되는 경우, 컨트롤러 상의 다수의 센서 패턴 모두에 대한 모든 전송기 및 수신기가 공통의 집적 회로에 의해 작동된다. 일실시형태에 있어서, 공통의 집적 회로를 갖는 컨트롤러 상의 다수의 센서 패턴 모두에 대해 모든 전송기 및 수신기를 작동시키는 것이 다수의 집적회로를 사용하는 것보다 더 효율적일 수 있다.
일실시형태에 있어서, 엄지손가락 중심 센서는 컨트롤러(100)를 잡을 때 엄지손가락(103)에 가장 가까운 비교적 평평한 표면에 배치된다. 택셀 밀도(즉, 센서 패턴 상의 행-열 교차점의 밀도)는 센서 패턴마다 다를 수 있다. 일실시형태에 있어서, 센서 패턴은 3.5mm~7mm와 같은 비교적 높은 택셀 밀도를 갖는 엄지손가락 중심 영역에 대해 선택된다. 일실시형태에 있어서, 엄지손가락 중심 영역에는 엄지손가락(103)을 정확하게 모델링하는 데 상기 감지된 데이터가 사용되는 것을 허용하도록, 충실도를 충분히 향상시키기 위해 5mm의 택셀 밀도가 제공된다. 일실시형태에 있어서, 엄지손가락 중심 영역에는 충실도를 더 향상시키기 위해 3.5mm의 택셀 밀도가 제공된다.
택셀 밀도의 선택에 추가하여, 센서 패턴은 접촉이 아니라 원거리, 근거리 또는 중거리 호버를 검출하는 능력에 기초하여 선택될 수 있다. 일실시형태에 있어서, 엄지손가락 중심 센서에 대한 센서 패턴은 3mm~10mm까지의 호버를 검출하도록 선택된다. 일실시형태에 있어서, 엄지손가락 중심 센서에 대한 센서 패턴은 적어도 3mm까지의 호버를 검출하도록 선택된다. 일실시형태에 있어서, 엄지손가락 중심 센서에 대한 센서 패턴은 적어도 4mm까지의 호버를 검출하도록 선택된다. 일실시형태에 있어서, 엄지손가락 중심 센서에 대한 센서 패턴은 적어도 5mm까지의 호버를 검출하도록 선택된다. 일실시형태에 있어서, 엄지손가락 중심 센서에 대한 센서 패턴은 대상 사용자 집단의 엄지손가락(103)을 정확하게 모델링하는 데 상기 감지된 데이터가 사용되는 것을 허용하기에 충분한 거리까지의 호버를 검출하도록 선택된다.
도 2를 간단히 참조하면, 사용자의 손(105)에 있는 컨트롤러(100)가 나타내어지며, 컨트롤러(100)의 엄지손가락(103)과 엄지손가락 중심 부분(110)의 상호작용에 기초하여 검출된 히트맵의 컴퓨터화된 모델(200)이 나타내어져 있다. 히트맵은 무지개형 스펙트럼에 걸친 터치 영역을 나타내며, 적색은 터치가 많이 검출되는 영역을 반영하고, 청색은 터치가 적게 감지되는 영역을 반영한다. 또한, 히트맵은 검출된 터치의 양에 대응되는 터치 표시 컬러층을 터치 표면으로부터 떨어져서 임의로 위치시키고, 여기서 검출이 많을수록 컴퓨터 반영된 모델에 있어서 적색은 센서로부터 더 멀리 떨어져 있게 된다. 도 2에 나타내어진 바와 같이, 사용자 손의 엄지손가락(103)은 엄지손가락 중심 부분(110) 상의 엄지손가락 중심 센서 패턴과 접촉하거나, 거의 접촉한다.
일실시형태에 있어서, 엄지손가락 중심 센서 패턴은 행과 열의 그리드로 구성된다. 일실시형태에 있어서, 엄지손가락 중심 센서 패턴의 행-열 배향은 컨트롤러(100) 상에 배향될 때 행과 열이 엄지손가락 중심 센서 패턴의 면을 사선으로 횡단하도록 하는 각도로 배치된다. 일실시형태에 있어서, 엄지손가락 중심 센서 패턴의 행과 열은 컨트롤러(100) 상의 각각의 배향에 대하여 약 30°의 각도로 배치된다. 일실시형태에 있어서, 엄지손가락 중심 센서 패턴의 행과 열은 컨트롤러(100) 상의 각각의 배향에 대하여 약 60°의 각도로 배치된다. 일실시형태에 있어서, 엄지손가락 중심 센서 패턴은 컨트롤러(100)의 엄지손가락 중심 부분(110)에 대하여 대략 사선으로 연장되는 수신기의 2개의 층, 및 수신기의 2개의 층의 위, 아래 또는 사이에서 작동하는 전송기의 제 3 층을 포함하는 3개의 층으로 구성되고, 컨트롤러(100)의 엄지손가락 중심 부분(110)에 대하여 대략 수평으로 또는 대략 수직으로 배향된다.
도 3a~3d를 참조하면, 엄지손가락 중심 센서 패턴으로서 채용될 수 있는 3개의 센서 패턴이 예시적으로 나타내어진다. 이들 구체예는 허용가능한 결과를 제공하는 것으로 밝혀졌지만, 본 발명과 관련하여 엄지손가락 중심 센서 패턴으로서 다른 센서 패턴을 사용하는 것은 본 개시 내용의 범위 및 사상 내에 있다. 엄지손가락 중심 센서 패턴으로서 사용하기 위한 다수의 다른 센서 패턴은 본 개시 내용의 관점에서 당업자에 의해 명백해질 것이다.
행과 열(예를 들면, 전송 안네타 및 수신 안테나)가 실선과 점선으로 표시되는 도 3a에 나타내어진 센서 패턴은 적절하게 작동한다. 또한, 도 3b에 나타내어진 센서 패턴은 행과 열을 실선과 점선으로 표시한다. 도 3b에 있어서의 센서 패턴은 피드라인 근처에서 연장되는 디커플링 라인을 추가로 포함한다. 도 3c 및 3d는 3층 센서의 층을 나타내고, 도 3c의 실선과 점선은 각각 센서의 층을 나타내고, 도 3d의 점선은 다른 층을 나타낸다. 일실시형태에 있어서, 도 3c의 실선과 점선은 모두 열(예를 들면, 수신 안테나)로서 사용되고, 도 3d의 점선은 전송기로서 사용된다. 일실시형태에 있어서, 3층 센서는 본원에서 논의된 바와 같은 컨트롤러에 있어서 엄지손가락 중심 센서 패턴을 위해 고품질의 이미징을 제공한다. 도 3c의 센서 패턴은 피드라인 근처에서 연장되는 넓은 디커플링 라인(디커플링 평면이라고 지칭될 수 있음)을 추가로 포함한다. 또한, 명확성을 위해 도 3c의 부분 상세도가 제공된다(도 3e 참조).
손가락과 같은 정전식 객체가 피드라인에 액세스하면, 스미어링(smearing)이 생길 수 있다. 일실시형태에 있어서, 스미어링을 완화시키기 위해, 피드라인은 예를 들면, 엄지손가락 중심 센서 패턴 영역을 확대시킴으로써 보다 먼 위치로 이동될 수 있다. 일실시형태에 있어서, 스미어링을 완화시키기 위해, 피드라인은 표면으로부터 떨어져서 객체로 향하게 할 수 있다. 이들 각각은 당업자에게 명백한 단점을 갖는다. 일실시형태에 있어서, 스미어링을 완화시키기 위해, 도 3b에 나타내어진 바와 같은 디커플링 라인 또는 도 3c에 나타내어진 바와 같은 넓은 디커플링 평면이 추가될 수 있다.
도 4를 참조하면, 사용자의 손에 있는 컨트롤러(100)가 나타내어져 있고, 손 위치, 특히 집게손가락(107)과 컨트롤러(100)의 트리거 중심 부분(112)의 검출된 상호작용에 기초한 집게손가락 위치를 나타내는 컴퓨터화된 모델(200)이 나타내어져 있다. 도 4에 도시된 바와 같이, 사용자의 손(105)의 집게손가락(107)은 트리거 중심 센서 패턴과 접촉하거나, 또는 거의 접촉하고 있으므로 손(105)의 컴퓨터 모델(200)은 컴퓨터 디스플레이 상에서의 유사한 결합 위치를 나타낸다.
일실시형태에 있어서, 분리된 센서 패턴이 트리거 중심 센서에 사용된다. 일반적으로, 트리거형 입력은 다른 터치와 관련된 입력보다 훨씬 간단하다. 일실시형태에 있어서, 집게손가락(107)은 컨트롤러(100)에 대해 비교적 제한된 자유도를 갖는다. 따라서, 일실시형태에 있어서, 트리거 센서는 집게손가락(110)과 컨트롤러(110)의 트리거 중심 부분(112)의 관계를 설명하기 위해 하나의 택셀만을 필요로 한다. 트리거 중심 센서 패턴에 비교적 먼 호버 거리(예를 들면, 최대 3.5cm, 또는 최대 5cm, 또는 최대 7cm, 또는 최대 10cm)를 제공하는 것이 바람직하기 때문에, 일실시형태에 있어서 트리거 중심 센서 패턴은 컨트롤러(100)의 트리거 중심 부분(112)의 표면에 대해 대략 수직(안쪽 또는 바깥쪽)으로 연장되는 안테나로 구성될 수 있다.
지금까지 정전식 센서 패턴은 터치 표면에 대하여 대략 수직으로 연장되는 안테나를 사용한 센서 패턴을 채용하는 것이 제안되어 왔으며, 예를 들면, "호버 감지 터치패드"라는 명칭으로 2016년 7월 29일자로 제출된 출원인의 이전 미국특허출원 제15/224,226호를 참조하고, 그 출원의 전체 개시 내용, 및 그 안에 참조에 의해 포함된 출원들은 본원에 참조로 원용된다. 일실시형태에 있어서, 트리거 중심 센서 패턴은 하나의 전송 안테나, 및 하나의 수신 안테나로 구성된다. 일실시형태에 있어서, 트리거 중심 센서 패턴은 하나의 전송 안테나, 및 2개 이상의 수신 안테나로 구성된다.
실제, 집게손가락(107)의 자유도는 단일 택셀 이상의 분해능을 필요로 할 수 있다. 따라서, 일실시형태에 있어서, 트리거 중심 센서 패턴은 상술한 것보다 더 복잡한 센서 패턴으로 구성된다. 일실시형태에 있어서, 행과 열의 그리드가 채용된다. 일실시형태에 있어서, 트리거 중심 센서 패턴은 수신기를 위한 다이아몬드형 배치의 정사각형의 측면, 및 중앙 전송기(도시하지 않음)를 사용하여 생성된다. 일실시형태에 있어서, 트리거 중심 센서 패턴은 수신기를 위한 원의 사분면, 및 중앙 전송기(도시하지 않음)를 사용하여 생성된다. 일실시형태에 있어서, 상술한 경우 중 하나에 있어서 상기 논의되고 나타내어진 바와 같이 디커플링 라인 또는 넓은 디커플링 평면의 추가에 의해 스미어링이 완화될 수 있다.
일실시형태에 있어서, 트리거 중심 센서 패턴은 엄지손가락 중심 센서 패턴과 상이하다. 일실시형태에 있어서, 트리거 중심 센서 패턴은 컨트롤러(100) 본체의 적어도 일부분에 사용된 센서 패턴과 상이하다.
도 5a~8b를 참조하면, 예시적인 3층의 트리거 중심 센서 패턴이 나타내어진다. 일실시형태에 있어서, 도 5a에 나타내어진 바와 같이, 2개의 수신층은 대략 그리드형 레이아웃에서 불규칙한(즉, 직선이 아닌) 도체 라인(501, 502)으로 구성된다. 도 5b에 있어서, 전송층은 트리거 중심 센서 패턴에 대하여 수직으로 연장되는 대략 평행한 도체(503)로 구성된다. 일실시형태에 있어서, 도 6a에 나타내어진 바와 같이, 2개의 수신층은 대략 그리드형 레이아웃에서 불규칙한(즉, 직선이 아닌) 도체 라인(601, 602)으로 구성된다. 도 6b에 있어서, 전송층은 트리거 중심 센서 패턴에 대하여 수직으로 연장되는 대략 평행한 도체(603)로 구성된다. 상기 논의된 바와 같이, 각각의 경우에 일실시형태에 있어서, 디커플링 라인 또는 넓은 디커플링 평면의 추가에 의해 스미어링이 완화될 수 있다.
일실시형태에 있어서, 도 7a에 있어서 2개의 수신층은 대략 그리드형 레이아웃에서 불규칙한(즉, 직선이 아닌) 도체 라인(701, 702)으로 구성된다. 도 7b에 있어서, 또한 전송층은 대략 평행하며 트리거 중심 센서 패턴을 수직이 아니라 수평으로 횡단하는 불규칙한 도체(703)로 구성되고, 일실시형태에 있어서, 디커플링 라인 또는 넓은 디커플링 평면의 추가에 의해 스미어링이 완화될 수 있다.
일실시형태에 있어서, 도 8a에 있어서 2개의 수신층은 대략 다이아몬드형 레이아웃에서 불규칙한(즉, 직선이 아닌) 도체 라인(801, 802)으로 구성된다. 도 8b에 있어서, 전송층은 대략 평행하며 트리거 중심 센서 패턴을 수평으로 횡단하는 도체(803)로 구성된다. 일실시형태에 있어서, 디커플링 라인 또는 넓은 디커플링 평면의 추가에 의해 스미어링이 완화될 수 있다. 일실시형태에 있어서, 주파수-직교 주파수는 전송층의 각각의 도체(803) 상에 전송된다. 각각의 층 상의 각각의 사선형 도체 라인(801, 802)은 고유한 수신기에 연결된다. 일실시형태에 있어서, 2개의 히트맵이 생성되고, 하나는 사선형 수신기의 하나의 세트와 전송기 사이의 상호작용에 대응하고, 다른 하나는 사선형 수신기의 다른 세트와 전송기에 대응한다. 일실시형태에 있어서, 2개의 히트맵은 함께 컨벌브(convolve)될 수 있다. 일실시형태에 있어서, 2개의 히트맵을 컨벌브하는 것은 증가된 분해능을 제공한다. 일실시형태에 있어서, 2개의 히트맵을 컨벌브하는 것은 개선된 신호 대 잡음 특성을 제공한다. 일실시형태에 있어서, 2개의 히트맵을 컨벌브하는 것은 감지된 액션에 대하여 증가된 충실도를 제공한다.
일실시형태에 있어서, 트리거 중심 센서 패턴의 행-열 배향은 행과 열이 컨트롤러(100) 상에 배향될 때 트리거 중심 센서 패턴의 면을 사선으로 횡단하도록 하는 각도로 배치된다. 일실시형태에 있어서, 트리거 중심 센서 패턴의 행과 열은 컨트롤러(100) 상에서의 각각의 배향에 대해 약 30°의 각도로 배치된다. 일실시형태에 있어서, 트리거 중심 센서 패턴의 행과 열은 컨트롤러(100) 상에서의 각각의 배향에 대하여 약 60°의 각도로 배치된다. 일실시형태에 있어서, 트리거 중심 센서 패턴은 컨트롤러(100)의 트리거 중심 부분에 대하여 대략 사선으로 연장되는 수신기의 2개의 층, 및 수신기의 2개의 층의 위, 아래 또는 사이에서 작동하는 전송기의 제 3 층을 포함하는 3개의 층으로 구성되고, 컨트롤러(100)의 트리거 중심 부분에 대하여 대략 수평으로 또는 대략 수직으로 배향된다.
일실시형태에 있어서, 전송기 상에 전송되는 주파수에 직교하는 각각의 주파수인 하나 이상의 주파수가 사용자의 신체에 적용된다. 일실시형태에 있어서, 전송기 상에 전송되는 주파수와 직교하는 주파수인 주파수는 사용자의 신체에 적용된다. 일실시형태에 있어서, 사용자의 신체에 적용된 주파수는 컨트롤러 상에서의 하나 이상의 접촉으로부터 사용자의 손바닥 또는 손등에 적용될 수 있다(도시하지 않음). 일실시형태에 있어서, 적용된 주파수를 분해하는 제 3 히트맵이 생성될 수 있다. 실험적인 테스트에 있어서, 적용된 주파수 데이터에 대해 감지된 데이터는 상기 논의된 바와 같이 적용된 주파수가 없는 터치로부터 발생하는 것과 실질적으로 다르고, 쉽게 구별되는 형상의 피크를 보여준다. 일실시형태에 있어서, 적용된 주파수에 대한 센서 데이터는 센서로부터 비교직 원거리(예를 들면, 2cm 초과)에서의 근접 측정에 사용된다. 일실시형태에 있어서, 적용된 주파수에 대한 센서 데이터는 센서로부터 비교적 단거리(예를 들면, 1cm 미만)에서의 위치 측정에 사용된다. 일실시형태에 있어서, 적용된 주파수 데이터는 전송기 및 상호간에 전송된 주파수와 직교하는 주파수인 2개 이상의 주파수로부터 발생할 수 있다. 일실시형태에 있어서, 2개 이상의 적용된 주파수는 컨트롤러 상의 하나 이상의 접촉으로부터 사용자의 손바닥 또는 사용자의 손등에 적용될 수 있다(도시하지 않음). 일실시형태에 있어서, 2개 이상의 적용된 주파수는 컨트롤러 상의 동일한 접촉 또는 접촉들로부터 사용자의 손바닥 또는 사용자의 손등에 적용된다(도시하지 않음). 일실시형태에 있어서, 2개 이상의 적용된 각각의 주파수는 컨트롤러 상의 상이한 접촉 또는 접촉들로부터 사용자의 손바닥 또는 사용자의 손등에 적용되고(도시하지 않음), 접촉은 물리적 위치에 이격되어 신호들을 구별하게 된다.
도 9를 참조하면, 사용자의 손(105)에 있는 컨트롤러(100)가 나타내어지며, 컨트롤러 본체(114)의 정전식 센서에 기초하여 손 위치를 나타내는 컴퓨터화된 모델이 나타내어진다. 도 9는 사용자의 다른 쪽 손의 집게손가락의 위치 및 압력을 나타내는 그래프로 표시된 히트맵을 추가로 나타낸다. 도 9에 도시된 바와 같이, 사용자의 다른 쪽 손의 집게 손가락은 본체 센서 패턴과 실질적으로 접촉하고 있다.
일실시형태에 있어서, 본체 센서 패턴에는 분리된 패턴이 사용된다. 트리거 중심 및 엄지손가락 중심 센서 패턴과 달리, 일실시형태에 있어서 본채 센서 패턴은 3차원의 불규칙한 및/또는 복잡한 곡률로 사용될 수 있다. 일실시형태에 있어서, 본원에 논의된 바와 같이 적절한 센서 설계 및 특수화된 소프트웨어 및 수학적 고찰이 필요하다.
도 10a는 컨트롤러(100)의 불규칙한 곡률을 따르는 행과 열로 이루어진 피쉬본형 센서 패턴의 하나의 뷰를 도시한다. 도 10b 및 10c는 본체 부분(114)의 좌측면을 형성하는 데 사용될 수 있는 2개의 구성요소의 일실시형태를 나타낸다. 도 10d 및 10e는 본체 부분(114)의 우측면을 형성하는 데 사용될 수 있는 2개의 구성요소의 일실시형태를 나타낸다. 도 10f 및 10g는 도 10d 및 10e에 나타내어진 본체 부분(114)의 우측면에 대한 구성요소와 관련하여 사용될 수 있는 센서 패턴 및 피드라인의 2차원 트레이스를 나타낸다. 도 10g는 컨트롤러(100) 상의 엄지손가락 센서 패턴의 수신측과 관련하여 사용될 수 있는 센서 패턴 및 피드라인의 2차원 트레이스를 추가로 나타낸다(예를 들면, 도 1 참조).
도 10b~10e는 파트의 내부(예를 들면, 오목한)측 상의 안테나에 제공된 기계적 트로프(troughs)(예를 들면, 공간)를 나타낸다. 도 10c 및 10e에 나타내어진 파트들은 도 10b 및 10d에 나타내어진 파트들의 내부 표면 내에 끼워 맞춰진다. 일실시형태에 있어서, 안테나가 끼워 맞춰지면, 도 10b/c 조합 및 도 10d/e 조합은 본체 부분(114)의 반분, 및 본원에 설명된 컨트롤러(100)와 관련하여 감지되는 센서 패턴을 형성한다. 본체 부분(114)의 2개의 반분은 본체 부분(114)을 형성하도록 함께 끼워 맞춰질 수 있다. 일실시형태에 있어서, 상술한 바와 같이, 분리된 엄지손가락 중심 및 트리거 중심 센서 패턴이 채용될 수 있고, 본체 부분(114)에 의해 지지될 수 있다.
일실시형태에 있어서, 임의의 기하학적 구조는 다른 것과 동일한 수의 행-열 교차점에 가능한 한 가깝게 센서를 위치시킴으로써 수용된다. 따라서, 일실시형태에 있어서, 교차점의 레벨 및 수는 가능한 범위에서 동일해야 한다.
일실시형태에 있어서, 본체 부분(114)의 좌측 반분과 본체 부분(114)의 우측 반분은 전송 안테나를 공유한다. 일실시형태에 있어서, 본체 부분(114)의 좌측 반분과 본체 부분(114)의 우측 반분은 수신 안테나를 공유한다. 따라서, 일실시형태에 있어서, 좌측 안테나 상에 전송된 주파수는 우측 안테나 상에 전송되고, 그 반대도 마찬가지이다. 마찬가지로, 일실시형태에 있어서, 본체 부분(114)의 각각의 반분 상의 수신 안테나는 하나의 수신기와 관련될 수 있다. 따라서, 일실시형태에 있어서, 컨트롤러(100)의 본체 부분(114)의 좌측 반분에 있어서의 각각의 전송 안테나는 컨트롤러(100)의 본체 부분(114)의 우측 반분에 있어서의 전송 안테나와 공통 주파수를 공유하고, 컨트롤러(100)의 본체 부분(114)의 좌측 반분에 있어서의 각각의 수신 안테나는 컨트롤러(100)의 본체 부분(114)의 우측 반분에 있어서의 수신 안테나와 도전성 있게 커플링된다. 이러한 방식으로, 컨트롤러(100)를 작동시키기 위해 더 적은 수의 전송기 및 수신기가 사용될 수 있다.
일실시형태에 있어서, 본체 부분(114)의 좌측 반분과 본체 부분(114)의 우측 반분은 전송 안테나를 공유하지 않는다. 일실시형태에 있어서, 본체 부분(114)의 좌측 반분과 본체 부분(114)의 우측 반분은 수신 안테나를 공유하지 않는다. 따라서, 일실시형태에 있어서, 좌측 안테나 상에 전송된 주파수는 우측 안테나 상에 전송되지 않으며, 그 반대도 마찬가지이다. 마찬가지로, 일실시형태에 있어서, 본체 부분(114)의 각각의 반분 상의 각각의 수신 안테나는 그 자체의 수신기와 관련된다. 따라서, 일실시형태에 있어서, 본체 부분(114)의 각각의 반분 상의 각각의 수신 안테나는 그 자체의 수신기와 관련되고, 본체 부분(114)의 각각의 반분 상의 각각의 전송 안테나는 그 자체의 전송기 및 그 자체의 고유한 직교 주파수와 관련된다. 그럼에도 불구하고, 일실시형태에 있어서 본체 부분(114)의 반분의 각각의 센서는 신체를 관통하는 크로스토크(thru-body crosstalk)를 검출할 수 있다. 일실시형태에 있어서, 이러한 몸체를 관통하는 크로스토크로 인해 본체 부분(114)의 한쪽 반분 상의 수신기가 본체 부분(114)의 다른 쪽 반분 상의 전송기 상에 전송된 신호를 수신할 수 있다. 일실시형태에 있어서, 본체 부분(114)의 각각의 반분 상의 수신기는 본체 부분(114)의 그 자체의 반분 상에 전송된 신호를 검출하도록 적합화되는 것에 추가하여, 본체 부분(114)의 다른 쪽 반분 상에 전송된 신호를 검출하도록 적합화된다.
택셀
본원에 사용된 바와 같이, 택셀은 하나의 FMT 논리적 전송기와 하나의 FMT 논리적 수신기 사이의 크로스토크의 국부화된 영역이다. 일실시형태에 있어서, 다수의 도전성 요소는 하나의 논리적 수신기 또는 전송기에 연결될 수 있다. 다수의 도전성 요소가 채용되는 경우이어도, 상호작용은 여전히 단 하나의 논리적 전송기 또는 수신기를 제공한다. 게다가, 다수의 논리적 요소가 공통의 도전성 요소에 연결되는 경우, 전압 가산의 물리적 특성 때문에 TX/RX쌍의 각각의 순열이 개별적으로 분리되었던 것처럼 구조가 논리적으로 축소될 수 있다.
일반적으로, 택셀은 안테나 패턴을 가진 안테나와 유사하게 동작한다. 일실시형태에 있어서, 터치 객체는 택셀 및 그것의 3차원 터치 응답에 대한 터치 객체의 위치 벡터(X, Y, Z)에 상당하는 베이스라인(비터치) 응답에 교란을 일으킨다. 일실시형태에 있어서, 2개의 상이한 위치 벡터에서 2개의 터치 객체로서 발생할 수 있는 내재적 혼란이 동일한 신호 교란을 일으킬 수 있기 때문에, 2개 이상의 중심(예를 들면, 안테나 패턴의 2개 이상의 중심)으로부터 응답하는 택셀은 전형적으로 선택되지 않는다.
택셀의 정의에 사용된 크로스토크의 개념은 명확하다. 소정의 RX/TX쌍 사이에 의도하지 않은 크로스토크가 바람직하지 않은 효과를 초래할 수 있다. 예를 들면, 의도하지 않은 크로스토크로 인해 비특이적인 국부화된 영역이 생길 수 있으며, 이는 교란 위치 벡터 계산에 혼동을 야기하는 것이 바람직한 경우가 거의 없다. 마찬가지로, 소정의 애플리케이션에 사용되는 복수의 RX 채널에 걸친 불균일한 또는 다른 시간 도메인 응답은 선택된 RX 임피던스, RX 게인, 시간 도메인 필터링 및 채용된 균등화 방식에 대하여 시간 도메인에서 바람직하지 않은 트레이드 오프를 야기할 수 있다. 따라서, 본원에 사용된 크로스토크는 전자공학 문헌에서 일반적으로 언급되는 전형적인 바람직하지 않은 효과보다는, 바람직하고 측정가능한 효과를 지칭한다. 따라서, 신체 전송된 크로스토크를 지칭할 때, 본 출원은 예를 들면, 신체(예를 들면, 손)에 의해 제 1 위치로부터 그것이 감지될 수 있는 다른 위치로 전달되는 전송기로부터의 신호를 지칭한다. 따라서, 예를 들면 집게손가락(107)은 고유한 직교 주파수를 전송하는 트리거 중심 센서 패턴과 접촉할 수 있고, 그 고유한 직교 주파수는 수신 안테나로 전달되어 엄지손가락 중심 센서 패턴 상의 수신기로 전달될 수 있으며, 손(105)에 의해 전달된 신호는 크로스토크라고 지칭될 것이다.
다른 예로서, 신호 A가 도체 X 상에 있고, 신호 B가 도체 Y 상에 있으며, 도체 X와 도체 Y가 서로 매우 근접하여 있는 경우, 신호 A의 일부분이 도체 Y 상에 나타날 수 있다. 보다 종래적인 표현으로, 크로스토크 "어그레서"는 신호 A이고, 크로스토크 "빅팀"은 신호 B이다. 바람직하지 않은 크로스토크의 종래의 관점과는 달리, 본 개시 내용의 관점에서 당업자에 의해 명백해질 것이고, 유익한 정보는 여기에 개시되고 설명된 신규한 FMT 객체 감지 방법 및 장치에 있어서의 크로스토크로부터 도출될 수 있다.
일실시형태에 있어서, 택셀 구성요소는 터치 객체(또는 주입된 주파수)에 반응하지 않는 부분 A; 및 터치 객체에 반응하는 부분 B의 2개의 주요 부분을 포함한다. 소정의 택셀에 대한 소정의 주파수에서의 전체 크로스토크는 A+B이다. 일실시형태에 있어서, 비율 A:B 및 전체 크기 A+B는 FMT를 사용하여 센서 패턴으로부터 도출된 데이터를 이해하는 데 중요하다.
일실시형태에 있어서, 각각의 틱셀(tixel) 크로스토크(A+B)는 시간 도메인에서 다른 모든 틱셀 크로스토크와 합쳐져서, Z 도메인에서 최종적으로 샘플링되고 주파수 도메인에서 그것의 구성 주파수 및 크기로 분리가능한 복잡한 시간 도메인 파형을 생성한다. 일실시형태에 있어서, 이 복잡한 시간 도메인 파형의 Vpp(전압 피크 대 피크)는 ADC(아날로그-디지털 변환기) 입력의 한계를 초과하지 않는다. 이와 같이, 일실시형태에 있어서 시스템 설계(센서 설계 포함)는 ADC 입력에서 Vpp를 최적화하는 것을 포함한다. 일실시형태에 있어서, 택셀 A+B, 소정의 수신기 상의 택셀의 수, 및 의도하지 않은 크로스토크가 이 시간 도메인 파형의 Vpp를 좌우한다.
A가 터치 객체에 반응하지 않고, 따라서 높은 신호 대 잡음 설계에 직접적으로 기여하지 않음에도 불구하고, 양호한 센서를 설계하려면 A와 B 모두를 고려할 필요가 있다. 예를 들면, 높은 A 비율 센서는 외부 잡음 주입, 시스템 잡음, 및 의도하지 않은 크로스토크의 영향을 덜 받을 수 있다. 또한 예를 들면, 높은 B 비율 센서는 가까이 접촉하는 터치 객체, 및 멀리 떨어져 있는 터치 객체 모두에 대해 측정가능한 응답성이 더 크고, 더 많은 신호 주입 및 교차 커플링 능력을 가질 수 있다. 따라서 일실시형태에 있어서 본 개시 내용의 관점에서 당업자에 의해 명백해지는 바와 같이 소정의 적용 및 소망의 센서 응답에 대해 A와 B 모두 소망의 결과를 달성하도록 선택적으로 설계되어야 한다.
예를 들면, 도 1a~1f, 3a~3d 및 10a~10g에 나타내어진 인간-기계 인터페이스컨트롤러(100)의 일실시형태에 설게에 있어서, 하나의 설계 목표는 컨트롤러 본체 부분(114)에 높은 호버 감도를 제공하는 것에 있었다. 일실시형태에 있어서, 개개의 폭 도전성 필라멘트는 복잡한 곡면으로 절단되는 기계적 트로프에 배치되어 컨트롤러 본체 부분(114)의 원점에 대해 X, Y, Z 공간에 각각의 택셀을 정확하게 배치시킨다. 따라서, 컨트롤러 본체 부분(114)의 택셀은 기계적 설계에 있어서 규정된 고정점에서의 고유한 TX/RX 교차점으로부터 발생한다.
2차원 센서(예를 들면, 터치 패널)의 경우, 시뮬레이션, 경험적 측정 또는 다른 방법으로 센서에 대한 보간 곡선을 계산할 수 있다. 보간 곡선은 틱셀에서의 FMT 신호 교란과, 그 택셀로부터의 터치 객체의 거리 사이의 수학적 관계이다. 이 보간식에 의해 터치 객체의 XY 위치를 계산할 수 있다. 일실시형태에 있어서, 보간식은 다수의 택셀로부터의 데이터에 걸쳐 사용되며, 터치 객체가 단일 택셀 상에 직접 닿지 않는 경우이어도 터치의 위치를 식별할 수 있다.
일실시형태에 있어서, 센서 패턴이 비평면인 경우, 택셀 위치는 XYZ로 표현되어야 하고, 택셀에 수직인 벡터가 제공 및 사용되어 XYZ의 보간 곡선뿐만 아니라 택셀의 소정의 그룹화에 대해서 XYZ의 위치를 게산할 수 있다. 따라서, 일실시형태에 있어서 각각의 행-열 교차점은 재구성을 위한 3차원 택셀을 나타내며, 컨트롤러(100)의 표면에 수직인 배향의 공간으로의 3차원 매핑을 갖는다. 즉, 택셀 필드 방향은 컨트롤러(100)의 표면에 수직으로 투영되고, 3차원 공간에 재매핑된다. 따라서, 일실시형태에 있어서 3차원 공간 히트맵이 구성되고, 히트맵을 파퓰레이트하기 위해 택셀의 배향에 대한 정보와 함께 택셀 데이터가 된다.
따라서, 예를 들면 도 10a에 도시된 피쉬본형 센서를 사용한 일실시형태에 있어서 컨트롤러(100)의 본체 부분(114)에 대해, 주로 높은 B 비율을 위해 A+B가 이동되었다. 일실시형태에 있어서, 높은 B 비율을 위해 A+B가 이동되면 몸체 부분(114)의 표면으로부터 떨어져 있는 신호 검출 능력을 확장시킬 수 있다. 일실시형태에 있어서, TX와 RX층 사이의 분리층을 증가시킴으로써 높은 B 비율을 위한 A+B의 이동이 달성될 수 있다. 일실시형태에 있어서, TX와 RX층 사이의 분리층은 적어도 500미크론이다. 일실시형태에 있어서, TX와 RX층 사이의 분리층은 1000미크론이다. 일실시형태에 있어서, TX 도체와 RX 도체 사이의 거리가 증가함에 따라 A가 B보다 빠르게 드롭된다. 따라서, 일실시형태에 있어서 TX와 RX층 사이의 분리층을 증가시키면 A+B가 감소하지만, A에 대한 B의 비는 증가한다. 일실시형태에 있어서, A+B의 감소는 ADC의 한계를 초과하는 일 없이 TX Vpp의 증가를 허용했다. 따라서, 일실시형태에 있어서 적어도 18Vpp의 TX 전압이 채용되었다. 일실시형태에 있어서, 24Vpp의 TX 전압이 채용되었다.
주파수 주입 지원 손 추적
일실시형태에 있어서, FMT 정전식 센서 손 추적은 주파수 주입에 의해 지원될 때 개선될 수 있다. FMT 정전식 센서의 설명에 대해서는 일반적으로 "낮은 레이턴시 터치 감지 장치"라는 명칭으로 2013년 3월 15일자로 제출된 출원인의 이전 미국특허출원 제13/841,436호 및 "고속 멀티 포스트프로세싱"이라는 명칭으로 2013년 11월 1일자로 제출된 미국특허출원 제14/069,609호를 참조한다. 주파수 주입은 주파수, 또는 다수의 주파수를 사용자의 신체에 적용하여 사용자의 신체를 FMT 정전식 센서 상의 그 주파수의 도체로서 사용하는 것을 지칭한다. 일실시형태에 있어서, 주입된 주파수는 FMT 정전식 센서 전송기 상에 전송되는 주파수에 직교하는 주파수이다. 일실시형태에 있어서, 주입된 복수의 주파수는 서로 직교하는 주파수, 및 FMT 정전식 센서 전송기 상에 전송되는 주파수에 직교하는 주파수 모두를 말한다.
일반적으로, FMT는 행이 주파수 전송기의 역할을 하고, 열이 주파수 수신기의 역할을 하는 센서 패턴을 채용한다. (상기 논의된 바와 같이, 행과 열의 지정은 임의적이며, 예를 들면, 그리드형 조직을 지정하는 것으로 의도되지 않거나, 또는 일반적으로 어느 한쪽의 직선형을 지정하는 것으로도 의도되지 않는다.) 일실시형태에 있어서, 주파수 주입과 FMT를 결합할 때, 열은 주입된 주파수 또는 주파수들을 청취하기 위한 수신기로서 부가적으로 사용된다. 일실시형태에 있어서, 주파수 주입과 FMT를 결합할 때, 행과 열 모두는 주입된 주파수 또는 주파수들을 청취하기 위한 수신기로서 부가적으로 사용된다.
일실시형태에 있어서, 공지된 주파수, 또는 공지된 주파수들은 하나 이상의 분리된 전송기를 사용하여 예를 들면, 사용자의 손으로 전달된다. 일실시형태에 있어서, 각각의 분리된 전송기는 손목 밴드, 핸드 스트랩, 시팅 패드, 팔걸이, 또는 사용자와 접촉하기 쉬운 임의의 다른 객체와 관련된다. 일실시형태에 있어서, 컨트롤러(100)는 컨트롤러(100)가 사용 중일 때 일반적으로 컨트롤러 사용자의 손과 접촉하는 컨트롤러(100)의 본체 부분(114)의 하나 이상의 부분에 하나 이상의 분리된 전송기를 배치한다. 일실시형태에 있어서, 핸드 스트랩을 갖는 컨트롤러(100)는 컨트롤러(100)가 사용 중일 때 일반적으로 컨트롤러 사용자의 손과 접촉하는 핸드 스트랩(102)에 하나 이상의 분리된 전송기를 배치한다.
일실시형태에 있어서, 공지된 주파수가 주입되면 FMT는 각각의 수신기에서 공지된 주파수 또는 공지된 주파수들의 강도를 측정할 수 있다. 일실시형태에 있어서, 공지된 주파수가 주입되면 FMT는 수신기 및 신호 프로세서를 각각의 행과 각각의 열에 관련시킴으로써 각각의 행과 각각의 열 상의 공지된 주파수 또는 공지된 주파수들의 강도를 측정할 수 있다. 일실시형태에 있어서, 각각의 행 상의 주입된 주파수 또는 주파수들에 대한 신호 강도의 측정은 주입된 주파수를 전달하는 신체 부분의 위치에 관한 정보를 제공한다.
일실시형태에 있어서, 각각의 행과 각각의 열 상의 주입된 주파수 또는 주파수들에 대한 신호 강도의 측정은 주입된 주파수를 전달하는 신체 부분의 위치에 관한 보다 상세한 정보를 제공한다. 일실시형태에 있어서, 행과 열로부터의 위치 정보는 신호 강도 측정의 2개의 분리된 1차원 세트를 제공한다. 일실시형태에 있어서, 2개의 1차원 세트는 2D 히트맵(종래의 FMT 전송기/수신기 히트맵과 유사함)과 같은 중간 표현(intermediate representations)을 생성하는 데 사용될 수 있는 디스크립터를 제공한다. 일실시형태에 있어서, 2개의 1차원 세트는 센서에 근접한 손가락의 모션을 재구성함에 있어서 더 나은 충실도를 가능하게 하는 데 사용될 수 있는 디스크립터를 제공한다. 일실시형태에 있어서, 검출된 주파수 주입 신호는 FMT 센서 패턴 단독의 범위에 걸쳐 증가된 호버 범위를 제공한다.
일실시형태에 있어서, 주파수 주입 디스크립터는 손가락의 개별적인 위치의 세트에 대응하는 신호 강도의 미리 정의된 프로파일을 생성하는 데 사용된다. 일실시형태에 있어서, 디스크립터는 손가락 모션과 연관성이 있을 수 있는 이들 디스크립터로부터 의미 있는 정보를 추출하도록 베이스라인 및 잡음 감소 기술이나 다른 다차원 분석 기술(예를 들면, "고속 멀티 터치 포스트프로세싱"이라는 명칭으로 2013년 11월 1일자로 제출된 출원인의 이전 미국특허출원 제14/069,609호 및 "고속 멀티 터치 잠음 감소"라는 명칭으로 2014년 3월 17일자로 제출된 미국특허출원 제14/216,791호 참조)과 결합된다. 일실시형태에 있어서, 또한 FMT 히트맵 프로세싱 기술은 이러한 주파수 강도 신호를 처리하는 데 사용될 수 있다. 검출된 주파수 주입 신호로부터 발생하는 FMT 히트맵 프로세싱과 디스크립터를 결함함으로써 충실도가 개선될 수 있다.
일실시형태에 있어서, 손 추적은 실제 손을 묘사하기 위해 가상 손의 계층적 골격 기반의 설명을 사용하여 컴퓨팅된다. 일실시형태에 있어서, 주파수 주입 디스크립터는 가상 손의 그 계층적 골격 기반의 설명의 연속적인 실시간 애니메이션 또는 다른 디지털 표현으로 매핑되어 실제 손 모션을 모방한다.
신호 피드를 손가락 각도의 피드 또는 골격 각도의 피드로 변환하기 위해 실시간으로 선형 또는 비선형 함수를 사용하여 매핑이 달성될 수 있다는 것은 당업자에 의해 명백해질 수 있다. 일실시형태에 있어서, 신호 강도 샘플과 그라운드 트루스 기준(ground truth reference) 사이의 상관특성이 채용될 수 있다. 일실시형태에 있어서, 그라운드 트루스 기준은 제한 없이 모션 캡처, 다른 시각 기반 프로세싱 기술 또는 미리 정의된 캡처된 포즈와 같은 다른 기술을 사용하여 캡처된다.
상술한 바와 같이 손(105)에 적용되고 손(105)으로부터 측정된 신호 주입의 고유한 특성이 모델 매핑을 규정하기 위한 기반으로서 사용될 수 있다는 것은 당업자에 의해 명백해질 것이다. 일실시형태에 있어서, 다음의 일반화된 데이터 기술: 수동 또는 자동 지도 훈련 또는 비지도 훈련, 데이터 마이닝, 분류 또는 회귀 기술 중 하나 이상이 이러한 매핑에 채용될 수 있다. 일실시형태에 있어서, 데이터 기술은 손 모델링에 사용될 수 있는 매핑 함수의 적절한 정의를 식별하여 손 추적 목적으로 사용된다. 상기 논의된 바와 같이, 일실시형태에 있어서 상기 논의된 바와 같은 신호 주입 하드웨어 및 소프트웨어는 FMT 기능과 결합될 수 있고, 동일한 FMT 센서 패턴, 전송기 및 수신기를 활용한다. 일실시형태에 있어서, 상기 논의된 바와 같은 신호 주입 하드웨어 및 소프트웨어는 FMT 기능과 결합될 수 있고, 따라서 부가적인 수신기로 FMT 터치 센서 시스템을 보완할 수 있다. 일실시형태에 있어서, 상기 논의된 바와 같은 신호 주입 하드웨어 및 소프트웨어는 FMT 기능과 결합될 수 있고, 따라서 부가 주입된 주파수를 인식할 수 있는 정전 용량으로 FMT 터치 센서 시스템을 보완할 수 있다.
손 위치를 추적하기 위한 터치와 호버, 및 주파수 주입 정보의 병합
일실시형태에 있어서, 하나 이상의 오버레이드 센서는 상이한 정보를 추적하는 데 사용된다. 일실시형태에 있어서, 터치 정보는 FMT를 사용하여 추적될 수 있다. 예를 들면, "고속 멀티 터치 포스트프로세싱"이라는 명칭으로 2013년 11월 1일자로 제출된 출원인의 이전 미국특허출원 제14/069,609호를 참조한다. FMT를 사용하여, 약 4cm까지의 접촉 및 호버에 대한 터치 정보를 제공한다. 일실시형태에 있어서, 주파수 주입은 FMT에 추가된다. 일실시형태에 있어서, 하나 이상의 주파수는 손 또는 손에 가까운 신체에 주입된다. 일실시형태에 있어서, FMT에 주파수 주입을 추가하여, 더 나은 충실도와 더 넓은 범위의 호버를 제공한다. 일실시형태에 있어서, FMT 주파수("내부 주파수"라고도 알려짐) 및 하나의 추가 주입된 주파수("외부 주파수"라고도 알려짐)를 판독하는 데 동일한 센서가 사용되었다. 일실시형태에 있어서, FMT 주파수("내부 주파수"라고도 알려짐) 및 복수의 추가 주입된 주파수("외부 주파수"라고도 알려짐)을 판독하는 데 동일한 센서가 사용되었다. 일실시형태에 있어서, FMT와 주파수 주입의 결합은 손 모델링의 범위를 4cm 이상으로 효과적으로 확장시켰다. 일실시형태에 있어서, FMT와 주파수 주입의 결합은 손 모델링의 범위를 5cm 이상으로 효과적으로 확장시켰다. 일실시형태에 있어서, FMT와 주파수 주입의 결합은 손 모델링의 범위를 6cm 이상으로 효과적으로 확장시켰다. 일실시형태에 있어서, FMT와 주파수 주입의 결합은 손 모델링의 범위를 완전한 굽힘, 즉 손의 모션의 전체 범위까지 효과적으로 확장시켰다.
일실시형태에 있어서, 단일 센서/센서 패턴은 모든 주파수 정보를 수신할 수 있다. 일실시형태에 있어서, 다수의 센서 패턴(전송기 및 수신기층)은 오버레이된다(예를 들면, 도 3a~3d, 5a, 5b, 8a, 8b 및 10a~10g 참조).
일실시형태에 있어서, 요소(에를 들면, 안테나)는 컨트롤러(100)의 본체 부분(114)의 표면 상에 또는 근처에 배치되고, 여기서 컨트롤러(100)의 작동 중에 사용자의 손(105)과 접촉할 가능성이 있다. 컨트롤러(100)의 작동 시에 손(105)과 충분히 접촉될 때, 센서에 의해 검출될 수 있는 손(105)으로 신호가 들어가고 통과한다. 전송 루프는 신호 발생기로부터 컨트롤러(100)의 본체 부분(114) 상의 요소로, 손(105)으로, FMT에 의해 측정될 수 있는 수신 안테나(예를 들면, 열)로 이동한다. 일실시형태에 있어서, 손(105)이 안테나와 접촉(그러나 반드시 접촉할 필요는 없음)되고 수신 안테나에 접촉(그러나 반드시 접촉할 필요는 없음)될 때 전송 루프가 폐쇄된다. 일실시형태에 있어서, 요소(예를 들면, 안테나)는 컨트롤러의 작동 중에 사용자의 손(105)등과 접촉할 가능성이 있는 컨트롤러 스트랩(102) 상에 배치된다. 컨트롤러 스트랩(102)의 요소가 예를 들면, 사용자의 손바닥보다는 사용자의 손(105)등에 터치된다는 점을 제외하고는 본체 부분(114)의 요소에 의해 전송 루프가 상술한 바와 같이 생성된다. 일실시형태에 있어서, 신호 주입 시스템은 손목 밴드; 시계; 스마트워치; 휴대폰; 글러브; 반지; 스타일러스; 포켓형 물체; 시트 쿠션 또는 다른 시팅 패드; 바닥 매트; 팔걸이; 데스크 표면; 벨트; 신발; 웨어러블 컴퓨팅 장치, 또는 컨트롤러(100)의 작동 중에 사용자와 접촉할 가능성이 있는 임의의 다른 물체의 형태이다. 일실시형태에 있어서, 전송 루프는 주입된 신호 소스와 수신 안테나 사이에서의 사용자의 신체에 의해 유사하게 생성된다.
일실시형태에 있어서, 신호 발생기로부터 요소로의 신호의 강도는 4cm의 범위를 초과하는 손의 검출을 허용하기에 충분해야 한다. 일실시형태에 있어서, 신호 발생기로부터 요소로의 신호의 강도는 5cm의 범위를 초과하는 검출을 허용해야 한다. 일실시형태에 있어서, 신호의 강도는 7cm를 초과하는 검출을 허용한다. 일실시형태에 있어서, 신호의 강도는 손(105)의 완전한 굽힘의 검출을 허용한다.
집게손가락 굽힘 감지
일실시형태에 있어서, 집게손가락 굽힘은 FMT를 통한 근접 호버 및 접촉 데이터를 사용하여 감지된다. 일실시형태에 있어서, 트리거 중심 센서 패턴으로부터의 근접 호버 및 접촉 데이터는 집게손가락 굽힘을 감지하는 데 사용된다.
일실시형태에 있어서, 기준 프레임이 저장된다. 일실시형태에 있어서, 기준 프레임은 컨트롤러가 휴지 상태일 때, 예를 들면 터치의 결과로서 검출가능한 신호가 수신되지 않을 때의 센서의 상태를 반영한다. 일실시형태에 있어서, 행 신호 데이터의 단일 N×M 프레임이 베이스라인으로서 저장된다.
일실시형태에 있어서, 베이스라인을 사용하여, 입력 프레임을 데시벨(즉, -20.0f*log10(입력/베이스라인))으로 변환한다. 변환된 입력 프레임은 히트맵이라고 지칭된다.
일실시형태에 있어서, 평균 신호값이 계산된다. 평균 신호값은 파형이라고 지칭된다. 일실시형태에 있어서, 히트맵에 있어서의 각각의 열 M에 대해, 열의 평균 신호값이 파형으로서 계산된다. 일실시형태에 있어서, 파형은 각각의 행 N에 대해 계산된다. 일실시형태에 있어서, 파형은 행과 열의 신호값의 조합으로부터 계산된다. 일실시형태에 있어서, 파형의 계산을 위한 정보의 선택은 센서 패턴에 의존한다.
도 11a를 참조하면, 여기서 컨트롤러(100)가 움켜잡혀지고 집게손가락(107)은 거의 수직이다. 일실시형태에 있어서, 거의 수직인 집게손가락(107)을 나타내는 파형이 템플릿으로서 저장된다. 일실시형태에 있어서, 템플릿은 템플릿이 획득된 손(105) 또는 사용자와 관련된다. 일실시형태에 있어서, 또한, 다수의 템플릿(예를 들면, 다수의 손 및/또는 사용자에 대한, 및/또는 동일한 손에 대한)이 향후 사용을 위해 저장된다. 일실시형태에 있어서, 다수의 템플릿이 결합될 수 있다. 손(105)과 집게손가락(107)에 대한 정보를 정규화하거나 통계 데이터를 얻기 위해 템플릿이 결합될 수 있다.
도 11b를 참조하면, 일실시형태에 있어서 전형적인 손가락 움직임 동안 입력 파형이 템플릿과 비교될 수 있다. 일실시형태에 있어서, 정규화된 평균평방근 편차(NRMSD)는 입력 파형과 템플릿의 유사도 측정을 제공하기 위해 계산된다. 일실시형태에 있어서, NRMSD는 0~1의 범위 내에 있다.
유사도 측정의 정확성을 향상시키기 위해, 일실시형태에 있어서 입력 파형과 템플릿은 집게손가락(107)의 개개의 뼈(근위(proximal), 중간(middle), 원위(distal))에 대응하는 3개의 영역 및 센서에 따르는 그들의 위치로 분할된다. 일실시형태에 있어서, 손가락의 각 섹션마다 하나씩 3개의 NRMSD값이 계산된다(NRMSDproximal, NRMSDmiddle, NRMSDdistal). 입력 파형은 템플릿과 비교할 수 있으며; 점선은 파형과 템플릿이 3개의 세그먼트로 분할된 것을 나타낸다.
일실시형태에 있어서, NRMSD값은 각 관절에서의 회전을 계산하기 위한 가중치로서 사용된다. 예를 들면:
도 11c를 참조하면, 일실시형태에 있어서 NRMSD는 항상 양의 값이기 때문에 템플릿과 입력 파형의 적분은 집게손가락(107)의 펴짐 시기를 결정하기 위해 계산될 수 있다. 입력 파형과 템플릿의 적분은 0보다 작을 것이다. 일실시형태에 있어서:
구현 아키텍처
일실시형태에 있어서, 컨트롤러(100)(또는 다른 장치)로부터의 입력이 라이브러리의 상이한 모듈식 구성요소에 의해 상이한 방식으로 프로세스될 수 있도록 라이브러리가 기록되지만, 출력은 동기화된 방식으로 라이브러리의 클라이언트에 이용가능하다. 따라서, 일실시형태에 있어서 데이터가 라이브러리로부터 이용가능할 때, 각각의 모듈에 의해 프로세스된 데이터는 동일한 입력 프레임으로부터의 것이어야 하고, 각각의 프로세싱 모듈은 모든 다른 것들과 동일한 입력 스트림이 보여져야 한다. 또한, 일실시형태에 있어서 상이한 프레임을 나타내는 데이터가 고려된다.
도 12를 참조하면, 전체 라이브러리 파이프라인이 본 발명의 일실시형태에 따라 나타내어진다. (싱크)라고 적힌 파이프라인의 부분에는 상기 목표가 완료되었는지를 확인하기 위한 동기화가 포함된다. 일실시형태에 있어서, 각각의 (싱크) 상호작용은 그 목표를 달성하기 위해 버퍼링 객체(예를 들면, RWSwapBuffer)를 사용한다.
일실시형태에 있어서, 버퍼는 다수의 리더가 액세스할 수 있는 하나의 객체에 보유될 수 있고, 기록 액세스를 위한 객체를 단일 클라이언트 제공할 수 있으며, 현재 사용 중이 아니고 판독을 대기하고 있는 하나의 객체를 저장할 수 있다. 이것은 동시 판독-기록 액세스을 허용하고, 스트리밍 데이터 소스에 적합하다.
일실시형태에 있어서, 현재 임의의 리더가 이전 데이터 구조를 현재 보유하고 있는 동안에 라이터(writer)가 새로운 데이터 작성을 완료하면(또한, 완료해야만), 출력 데이터가 드롭되고, 어떤 클라이언트에 의해서도 보여지지 않을 것이다. 상술한 바와 같이 출력 데이터를 드롭하면 시스템을 통한 이전 데이터의 전파를 경감하고 낮은 단대단(end-to-end) 레이턴시를 유지하는 데 도움이 된다.
일실시형태에 있어서, 도 12에 있어서 블록으로 나타내어진 각각의 구성요소인 핸들러(Handler)(302), 프레임버퍼스테이트(FrameBufferState)(304) 및 프로세싱스레드(ProcissingThread)(306)는 각각이 자체의 라이프사이클 및 자체의 실행 스레드를 갖는 모듈로서 구현된다. 이 아키텍처는 개개의 구성요소의 구성가능한 시작/해제, 강력한 라이프사이클 준수, 및 파이프 라인 내에서의 동시성을 가능하게 한다. 일실시형태에 있어서, 각각의 이들 구성요소는 GenericModule 클래스의 서브클래스로서 구현된다. 이것은 각각의 구성요소의 라이프사이클을 처리하기 위한 블루프린트를 만들고, 각각의 서브클래스의 동작을 정의하기 위해 서브클래스에 의해 구현될 함수들을 남겨 둔다.
GenericModule에서 오버라이드될 것으로 예상되는 함수, 및 그들의 의도된 목적은 다음과 같다.
init() - 전세계적으로 액세스가능한 리소스를 할당하고 실행에 필요로 되는 임의의 준비를 수행함
startLoop() - 스레드-특정 리소스를 할당하고 스레드 세션을 시작하는 데 필요로 되는 임의의 준비를 수행함
finishLoop() - 스레드-특정 리소스의 할당을 해제하고 스레드 세션을 종료하는 데 필요한 모든 것을 종료함
preStop() - 스레드 중지(stop)를 요청한 후이지만 조인(join)할 스레드를 차단하기 전에 필요한 임의의 명령 관련 셋업(setup)을 수행함
postStop() - 스레드가 조인된 후 임의의 명령 관련 해제를 수행함
loop() - 모듈의 중지 요청이 있을 때까지 스레드 상에서 반복적으로 호출되는 주요 작업 함수
일실시형태에 있어서, 함수 init(), startLoop() 및 loop()는 실행 중에 오류가 발생했는지 여부를 반환(return)할 수 있고, 오류가 발생하면 false를 반환한다. init() 호출 시에 오류가 발생하면 스레드가 시작되지 않고, startLoop() 또는 loop()에 실패하면 스레드가 종료된다,
일실시형태에 있어서, finishLoop()는 스레드 종료 시마다 실행되며, 스레드/세션 리소스를 정리하고 스레드 스테이트의 변경을 나타내는 것으로 의도되는 반면, preStop() 및 postStop()은 중지 요청에 필요한 임의의 프로세를를 처리하고, 명령의 시작과 끝을 나타낸다.
일실시형태에 있어서, GenericModule 내부에서 디폴트 함수 구현이 오버라이드되지 않는 한, startLoop(), finishLoop(), preStop() 및 postStop()은 모듈의 라이프타임 동안 한 번만 실행되도록 보장된다.
일실시형태에 있어서, GenericModule 내부, 또는 그것의 임의의 서브클래스 내의 함수는 종료 신호(mStopRequested 또는 shouldStop())를 대기하는 일 없이는 영원히 차단될 수 없다. 일실시형태에 있어서, GenericModule의 서브클래스에 의해 오버라이드된 임의의 함수는 적절한 기능을 위해 연쇄될 것으로 예상되는 클래스 계층 구조에서 추가적인 구현이 있을 수 있기 때문에 그것의 부모 클래스의 함수를 호출해야 한다.
도 13을 참조하면, startLoop() 및 loop()에 대한 모든 호출이 성공적이라고 가정했을 때의 예상 호출 순서 및 외부 스레드와 GenericModule 스레드 간의 상호작용을 나타낸다. 도 14를 간단히 참조하면, 스테이트 머신의 예시는 GenericModule에 의해 지원되는 스테이트 목록뿐만 아니라 변환 조건을 나타낸다. 또한 도 15를 간단히 참조하면, 예시는 스레드가 성공적으로 생성되고, startLoop() 또는 loop() 동안 오류가 발생하지 않는 경우의 GenericModule의 예상 라이프사이클을 나타낸다.
일실시형태에 있어서, Handler 클래스는 채널로부터 데이터를 수신하고(예를 들면, 소켓을 통한 UDP 데이터그램 또는 .pcap 형식의 파일로부터 패킷을 읽음), 데이터를 라이브러리의 다른 구성요소에 의해 소비될 프레임으로 포맷하고, 나머지 라이브러리의 동기화 및 소비에 사용가능한 프레임 데이터를 만든다.
일실시형태에 있어서, GenericHandler와 ProcessingThread(306) 사이에서 오고가는 프레임은 라이브러리가 연결된 컨트롤러(100)에서 사용되는 센서의 유형에 따라 크기가 다르게 정해질 수 있다. 이 정보는 당시에 사용되는 컨트롤러(100)에 대한 구성-특정 파라미터로 템플릿화된 프레임에 대한 인터페이스 클래스(IGenericFMTFrame)를 사용하여 추상화될 수 있다. 일실시형태에 있어서, IGenericFMTFrame 클래스는 어떤 템플릿 파라미터가 사용되었는지를 미리 알 필요 없이 컨트롤러(100)에 대한 정보를 노출시킨다. Handler 클래스는 프레임을 출력 버퍼로서 취급할 수 있으며, 일실시형태에 있어서는 구성-특정 파라미터를 제공할 필요가 없다.
일실시형태에 있어서, Handler 클래스는 컨트롤러(100)로부터 와이어를 통해 나타나는 것과 동일한 데이터 순서로 정보를(예를 들면, 프레임에) 기록한다. 일실시형태에 있어서, 채널 우선 순서가 채용된다. 일실시형태에 있어서, 출력 버퍼에는 항상 빈 또는 채널 우선인 고정된 비트폭(예를 들면, 32비트 또는 64 비트)이 제공될 수 있고, 빈 및 채널을 행 또는 열에 고정한다.
일실시형태에 있어서, FrameBufferState(304)는 라이브러리 내의 모든 ProcessingThreads(306)에 대한 Handler의 출력 데이터의 동기화뿐만 아니라 ProcessingThreads의 출력 데이터와 API 클라이언트의 동기화를 구현한다.
일실시형태에 있어서, FrameBufferState(304)는 Handler로부터의 프레임이 이용가능할 때까지 모든 프로세싱 스레드를 차단하고, 모든 프로세싱 스레드가 현재 보유된 프레임으로 종료될 때까지 대기한다. 일단 차단이 해제되면, 프로세싱 스레드로부터의 모든 출력 데이터가 커밋되어 API 클라이언트(들)에 의한 소비를 가능하게 한다. 그 후, 프레임이 이용가능할 때까지 FrameBufferState(304)가 모든 프로세싱 스레드를 차단하면서 프로세스가 반복될 수 있다.
일실시형태에 있어서, FrameBufferState(304)는 Handler가 소유한 모듈이다. 다른 실시형태에 있어서, FrameBufferState(304)는 라이브러리의 라이프타임 동안 존재하는 모듈이다. 후자의 설계 선택은 더 강력하고 더 유연한 시작 및 해제 절차, 및 모듈 스테이트 변환에 대한 알기 쉬운 규칙들을 허용할 수 있다. 일실시형태에 있어서, FrameBufferState(304)는 프로세싱 스레드가 그들 자체를 추가 및 제거하는 것을 허용할 수 있고, 그 프로세싱 스레드를 FrameBufferState(304) 내부의 프로세싱/동기화 스테이트(프로세싱을 대기하는 데이터 등)와 연관시키는 ID를 수신할 수 있다.
일실시형태에 있어서, FrameBufferState(304)는 라이브러리가 실행되는 동안 프로세싱 스레드가 입력 스트림으로부터 새로운 프레임을 임의로 수신하는 것으로부터 그들 자체를 등록하고 등록을 해제할 수 있게 한다. 이 등록을 허용하면, 라이브러리를 추적하고 어떻게 상호작용해야 하는지를 결정하는 데 필요한 스테이트의 수를 확장시킬 수 있다. 일실시형태에 있어서, 라이브러리의 핸들러 및 각 프로세싱 스레드의 스테이트로 계속 업데이트하기 위해, FrameBufferState(304)는 다른 모듈이 그들의 스테이트를 변경할 때 이를 통지할 수 있는 메시지 큐를 포함한다. 따라서, 일실시형태에 있어서, FrameBufferState(304) 내부에 6개의 비트 세트가 존재한다:
mProcIdBitset: 등록된 프로세싱 스레드에 제공된 ID를 추적함
mProcEnabledBitset: 실행 중이고 데이터를 프로세스할 준비가 된 프로세싱 스레드를 추적함(FrameBufferState의 메시지 큐를 통해 전달된 스테이트의 변경을 통한 셋(set) 및 리셋(reset))
mProcDataBitset: 현재 프로세스된 프레임을 프로세스할 것으로 예상되는 프로세싱 스레드를 추적함
mProcDataCommitBitset: 클라이언트가 사용할 수 있도록 커밋해야 하는 데이터를 갖는 프로세싱 스레드를 추적함
mStartEnabledBitset: 패킷으로서 함께 데이터를 수신할 것으로 예상되는 프로세싱 스레드를 추적함(라이브러리가 시작될 때 사용가능한 모든 프로세싱 스레드 사이에 제 1 프레임을 동기화하여 모든 프로세싱 스레드가 동일한 데이터 스트림을 수신하도록 하는 데 사용됨(조기 비활성화 또는 늦게 활성화되지 않는 한))
mForceReturnBitset: 반환하도록 요청되었으며 임의의 FrameBufferState(304) 함수 내부에서 차단해서는 안 되는 임의의 프로세싱 스레드를 추적함
일실시형태에 있어서, 일단 프로세싱 스레드가 프레임 버퍼 스테이트(304)에 등록되면, 등록되는 동안(addProcessingThread()를 통해) 그 프로세싱 스레드를 고유하게 식별하는 ID를 수신한다. 일실시형태에 있어서, 프로세싱 스레드가 등록 해제되면(removeProcessingThread()), 그 보증이 철회되고 새로운 스레드에 ID가 제공될 수 있다. 동일한 프로세싱 스레드가 나중에 다시 성공적으로 등록되면, 동일한 보증을 가진 새로운 ID를 수신할 수 있다.
일실시형태에 있어서, 모든 프로세싱 스레드는 FrameBufferState(304)의 인스턴스에 sendUpdateMessage()를 호출하여 내부 스테이트를 최신으로 유지시켜야 한다. 이러한 상황이 발생하지 않으면, 프로세싱 스레드가 새로운 데이터를 수신하지 않거나, 또는 파이프라인이 정지하여 스레드가 이미 종료된 데이터를 프로세스할 때까지 대기하게 될 수 있다.
도 16을 참조하면, 본 발명의 일실시형태에 있어서 호출 순서를 나타내는 시퀀스 다이어그램이 제시된다.
일실시형태에 있어서, ProcessingThread(306)의 클래스들은 API의 임의의 클라이언트가 라이브러리를 통해 액세스될 프레임의 스트림에서 임의의 계산을 수행하도록 의도된다. 일실시형태에 있어서, GenericProcessingThread 클래스는 컨트롤러로부터 프레임을 프로세스하도록 의도된 임의의 구성요소에 대한 인터페이스로서 기능한다. 따라서, GenericModule에서 사용가능한 함수에 추가하여, GenericProcessingThread는 프레임 데이터를 프로세스하기에 적합한 loop()에 대한 정의를 제공할 수 있다. 일실시형태에 있어서, loop()의 구현은 각각의 프로세싱 스레드가 앞서 기술한 동일한 데이터를 사용하도록 하기 위해 필요한 프레임 획득 및 해제 호출을 처리한다. 일실시형태에 있어서, loop() 구현은 새로운 프레임 데이터가 판독되고 프로세스할 준비가 되었을 때 실행되는 새로운 가상 함수 doProcessing()를 호출하고, 이는 특정 프로세싱 스레드가 수행하는 대부분의 작업이 수행되는 것이다. 일실시형태에 있어서, ProcessingThread(306)의 각각의 클래스는 GenericModule로부터 상속받아야 하며 위에서 기술한 라이프사이클을 따른다.
일실시형태에 있어서, 라이브러리는 데이터 내부에 액세스하기 위해 생성된 각각의 프로세싱 스레드에 대해 포인터의 세트를 유지시키고, 라이브러리의 스테이트를 매치시키기 위해 필요한 모듈 라이프사이클을 호출하고, API를 통해 작성된 라이브러리 클라이언트로부터의 임의의 요청된 명령에 모듈을 노출시킨다.
일실시형태에 있어서, 각각의 프로세싱 스레드는 클라이언트가 그 스레드의 출력이 필요한지 여부를 명시할 수 있도록 활성화/비활성화 함수를 노출시켜야 한다. 일실시형태에 있어서, 노출된 함수는 라이브러리에 의한 CPU 및 메모리의 불필요한 사용을 제한할 수 있다. 마찬가지로, 일실시형태에 있어서 프로세싱 스레드가 노출하는 임의의 선택적 기능(예를 들면, FingerInfoProcessingThread를 위한 집게손가락 추적)은 특히 계산 비용이 많이 들고 항상 원치 않을 수 있는 경우에 토글 온 및 오프될 수 있어야 한다.
일실시형태에 있어서, GenericModule의 서브클래스인 각각의 ProcessingThread(306)는 필요에 따라 리소스를 잠그는 데 사용될 수 있는 뮤텍스를 상속받는다. 다른 실시형태에 있어서, 스레드는 베이스 모듈의 뮤텍스를 보유할 때 아무것도 슬립 상태에 있지 않는 한, 그 자체의 잠금 전략을 사용할 수 있다.
일실시형태에 있어서, 라이브러리 내에 컨트롤러 유형의 파라미터를 저장하는 글로벌 데이터 구조의 세트가 존재한다. 일실시형태에 있어서, 컨트롤러 파라미터는 메시 구성 및 해석을 위한 정보뿐만 아니라 컨트롤러로부터 생성된 프레임 데이터의 포맷에 관한 보드-특정 정보(예를 들면, 빈의 수, 채널의 수, 비트의 데이터폭)를 포함한다.
일실시형태에 있어서, 프로세싱 스레드는 그들이 출력하는 데이터 및 그들이 실행하는 알고리즘과 관련하여 구성될 수 있다. 일실시형태에 있어서, 구성은 컨트롤러 유형에 적합화되거나, 컨트롤러의 파라미터, 또는 컨트롤러를 실행하는 보드의 파라미터에 의존할 수 있다.
도 17a 및 17b를 참조하면, 사용된 컨트롤러 구성에 따라 상이하게 작동하는 ProcessingThread(306)를 생성하는 데 사용된 2개의 실시형태의 구조를 도시한다. 도 17a는 FingerInfoProcessingThread와 같은 다수의 구성-특정 알고리즘을 지원하는 데 적합한 GenericProcessingThread를 서브클래싱하는 프로세싱 스레드에 대한 추상적 클래스를 갖는 일실시형태를 나타내고, 여기서 프로세싱은 컨트롤러 유형에 따라 크게 달라진다. 도 17a에는 GenericModule(402), IGenericProcessingThread(404), GenericProcessingThread(406), IDerivedProcessingThread(408), DerivedProcessingThread1(410), DerivedProcessingThread2(412) 및 DerivedProcessingThread3(414)이 나타내어진다. 도 17b는 인터페이스로서 사용되는 독립된 클래스를 갖는 실시형태를 나타내고, 이는 구체적인 프로세싱 스레드에 의해 사용되는 데이터 유형을 추상화하는 데 유용할 수 있다. 도 17b에는 GenericModule(402), IGenericProcessingThread(404), GenericProcessingThread(406), IDerivedProcessingThread(408) 및 DerivedProcessingThread(416)가 나타내어진다. GenericProcessingThread(406)는 템플릿 파라미터로서 출력하는 데이터 유형을 허용하므로, 각 구성의 데이터 유형이 템플릿화되면, 인터페이스는 액세서 함수를 통해 그 데이터 유형을 추상화해야 한다. 일실시형태에 있어서, 방법은 도 17a 및 17b에 나타내어지고, 구성-특정 구현 및 데이터 유형으로 다수의 구체적인 프로세싱 스레드 구현을 지원하도록 결합될 수 있다.
컨트롤러 구성/교정
일실시형태에 있어서, 컨트롤러 사용자 인터페이스 소프트웨어는 컨트롤러(100)의 구성 및/또는 교정을 허용하도록 제공된다. 도 18을 참조하면, 손잡이, 집게손가락, 손가락들 및 엄지손가락 패드에 대한 체크박스를 포함하는 컨트롤러 UI(사용자 인터페이스)가 제공된다. 체크박스를 사용하여, 사용자는 컨트롤러(100)의 식별된 기능에 대해 새로운 데이터를 제공하거나 배제하도록 컨트롤러(100)를 구성할 수 있다.
일실시형태에 있어서, 컨트롤러(100)를 교정하기 위한 소프트웨어, 및 히트맵의 시각화가 제공된다. 도 19를 참조하면, 관찰된 색은 정전식 커플링 강도(청색이 가장 약하고, 적색이 가장 강함)를 나타내는 청색으로부터 적색까지의 범위일 수 있다. 일실시형태에 있어서, 컨트롤러(100)의 교정 전, 시각화된 히트맵은 도 19에 나타내어진 바와 같이 색채가 화려하게 보일 수 있다. 일실시형태에 있어서, 컨트롤러(100)를 교정하여 보다 정확한 히트맵을 갖도록, 사용자는 컨트롤러(100)가 실질적으로 덮이도록 하기 위해 컨트롤러(100)를 양손으로 움켜잡고 있다가 컨트롤러(100)를 놓을 수 있다. 도 20은 양손으로 움켜잡은 컨트롤러(100)로부터의 히트맵의 시각화를 나타내고, 도 21은 설명된 각각의 경우에 있어서 해방된 컨트롤러(100)로부터의 히트맵의 시각화를 나타낸다. 컨트롤러(100)를 움켜잡고 해방하는 프로세스를 통해 히트맵 시각화가 교정될 수 있게 한다. 도 22를 간단히 참조하면, 오른손에 잡은 교정된 컨트롤러(100)의 시각화가 나타내어진다.
도 23을 참조하면, 라이브러리의 기본 라이프사이클이 나타내어진다. 일실시형태에 있어서, 데이터가 라이브러리로부터 판독되기 전, 단계 502에서 라이브러리가 먼저 초기화되고 시작되어야한다. 일실시형태에 있어서, 라이브러리를 초기화하기 위해, 초기화 호출(예를 들면, TactualInitializeWithLiveStream())이 성공적으로 반환되어야한다. 일실시형태에 있어서, 일단 초기화되면, 동일한 셋업을 유지하면서 라이브러리가 여러번 시작되고 중지될 수 있다. 따라서, 예를 들면 컨트롤러로부터 라이브 데이터 스트림을 읽도록 라이브러리가 초기화되면, 라이브러리가 시작되고 중지될 때마다 다른 셋업에서 재초기화될 때까지 컨트롤러(100)로부터 데이터에 스트리밍하도록 설정될 것이다.
일실시형태에 있어서, 라이브러리가 시작되기 전. 단계 504에서 필요한 데이터를 생성하는 임의의 프로세싱 기능은 그들의 기능이 프로세스될 수 있도록 활성화되어야 한다. 일실시형태에 있어서, 단계 504에서 불필요한 데이터를 생성하는 기능은 비활성화되어야 한다. 불필요한 데이터를 생성하는 함수를 비활성화하면, 불필요한 계산이 경감된다. 일실시형태에 있어서, 디폴트에 의해 모든 프로세싱 기능이 비활성화로 시작되고, 라이브러리가 시작된 후에 이루어질 수있는 호출(예를 들면, TactualEnableNormalizedlntensity)에 의해 활성화(또는 재비활성화)될 수 있다.
일실시형태에 있어서, 단계 506에서 라이브러리 내의 프로세싱 기능을 시작하기 위해, 시작 함수(예를 들면, TactualStart())가 호출되어야 하고; 성공적으로 반환되면, 라이브러리는 판독하기 위해 초기화된 소스로부터의 임의의 데이터를 프로세스하도록 셋업되어야 한다.
일실시형태에 있어서, 단계 508에서 라이브러리로부터 이용가능한 최신 데이터를 판독하기 위해 함수가 호출된다(예를 들면, TactualSyncData()). 일실시형태에 있어서, 단계 510에서 라이브러리 업데이트로부터 이용가능한 최신 데이터를 판독하도록 호출된 함수는 액세스가능한 데이터를 최신의 이용가능한 프로세스된 데이터로 업데이트한 다음, 데이터 액세스 함수를 호출하여 라이브러리로부터 이용가능한 데이터를 판독한다. 일실시형태에 있어서, 최신 데이터(예를 들면, TactualSyncData() 호출 이후)를 판독하는 데 이용가능한 새로운 데이터가 있는지를 보장하기 위해 다른 호출(예를 들면, TactualHasNewData()=TRUE)이 제공된다. 일실시형태에 있어서, 라이브러리는 마지막 시작 호출(예를 들면, TactualStart ())이 이루어지기 전에 활성화된 프로세싱 기능으로부터만 데이터를 생성할 것이다. 일실시형태에 있어서, 단계 512에서 라이브러리에서의 프로세싱 기능을 중지시키기 위해 중지 호출(예를 들면, TactualStop())이 제공된다. 일실시형태에 있어서, 일단 중지되면, 프로세싱 기능은 시작 함수에 대한 후속 호출에서 재시작될 수 있다. 일실시형태에 있어서, 단계 514에서 리소스 할당 해제 함수가 라이브러리에서도 이용가능하다(예를 들면, TactualDestroy()). 할당 해제 함수가 성공적으로 호출되면, 리소스가 할당 해제되고, 라이브러리를 재초기화하기 위해 다른 재초기화 호출이 필요하다.
일실시형태에 있어서, 셋업 스레드는 무엇보다도 행 히트맵 활성화, 정규화된 강도 활성화 및 손가락 위치 활성화를 허용하고, 프로세싱 스레드 제어 함수는 손잡이 추적 활성화, 집게손가락 추적 활성화, 가운뎃손가락/약손가락/새끼손가락 추적 활성화 및 엄지손가락 추적 활성화를 포함할 수 있다. 일실시형태에 있어서, 데이터는 액세스되지만, 예를 들면 정규화된 강도 히트맵 데이터(마스킹될 수 있음)를 가져오고 손 골격 데이터를 가져온다.
손 골격 데이터
도 24에는 사람 손 및 컨트롤러와 관련된 일련의 관절과 뼈의 예시가 포함되어 있다. 예시, 및 사용된 모델은 일부 부분(예를 들면, 손목 뼈)이 컨트롤러(100)에 의해 생성된 모델과 관련되거나 관련되지 않는 범위에서 단순화될 수 있다. 구체적으로, 도 24는 사람 손(옅은 청색점)에서의 각 뼈의 대응하는 위치(또는 단순화된 위치), 다른 뼈(짙은 청색선)에 대한 계층 구조 및 이름을 가진 뼈를 식별한다. 일실시형태에 있어서, 팔뚝의 노드는 루트 노드이며 부모를 갖지 않는다.
일실시형태에 있어서, 손 골격 데이터는 패킹된 32비트 플로트 어레이에 저장되며, 각각의 뼈는 미터 단위의 모든 양 및 (qx, qy, qz, qw) 회전 쿼터니언으로 (x, y, z) 위치 벡터의 7-튜플로 처리되고, 각각의 튜플은 그것의 부모에 대해 로컬 변환으로 처리된다(즉, 조상에 의해 수행된 임의의 회전을 고려하여 로컬축에 수행된 변환). 특히 컨트롤러(100)에 의해 허용되는 감도, 능력 및 자유도의 관점에서 많은 다른 데이터 구조가 손을 나타내는 데 사용될 수 있음이 당업자에 의해 명백해질 것이다.
따라서, 도 25는 상술한 골격 데이터의 표현의 테이블의 일실시형태를 나타낸다. 도 25에 있어서의 테이블은 컴퓨팅 장치의 메모리에 가리키는 테이블의 일실시형태를 나타낸다. 도 25에 있어서의 각 뼈의 이름은 도 24로부터의 이름과 일치한다.
도 26은 사용자의 손가락 정보를 나타내는 데 사용될 수 있는 데이터 구조의 일실시형태를 나타낸다. 일실시형태에 따르면, 데이터 구조는 사용자의 손가락 및/또는 손의 위치 및 배향에 관한 다양한 정보를 나타낼 수 있다. 일실시형태에 있어서, 데이터 구조는 다음을 사용하여 사용자의 손가락 정보를 나타낸다 :
플래그는 비트세트이며;
indexPresence, middlePresence, ringPresence 및 pinkyPresence는 각각 컨트롤러(100) 근처의 손가락의 존재를 나타내는 값을 나타내고, 일실시형태에 있어서, 상기 값은 0과 1 사이의 정규화된 플로트이고, 여기서 0의 값은 손가락이 컨트롤러(100)로부터 떨어져서 완전히 펼쳐져 있는 것을 나타내고, 1의 값은 손가락이 완전히 오므라져 컨트롤러(100)에 닿는 것을 나타내며;
indexX 및 indexY는 트리거 상의 위치를 나타내고, 일실시형태에 있어서, 그들은 -0.5의 x값이 트리거의 가장 왼쪽에 있고 0.5의 값이 트리거의 가장 오른쪽에있는 카테시안(Cartesians)이며; 마찬가지로, -0.5의 y값은 트리거의 하단에 있고, 0.5의 값은 상단에 있고, 일실시형태에 있어서, 어느 하나의 값이 -1로 설정되면,이 함수는 컨트롤러(100)에 의해 지원되지 않을 것이며;
thumbX 및 thumbY는 엄지손가락 패드 상의 위치를 나타내고, 일실시형태에 있어서, 그들은 -0.5의 x값이 엄지손가락 패드의 가장 왼쪽에 있고 0.5의 y값이 엄지손가락 패드의 가장 오른쪽에 있는 카테시안이며; 마찬가지로, -0.5의 y값은 엄지손가락 패드의 하단에 있고, 0.5의 값은 상단에 있으며;
thumbDistance는 컨트롤러(100)로부터의 거리를 나타내고, 일실시형태에 있어서, 0의 값은 컨트롤러(100)와의 접촉을 나타내고, 1의 값은 엄지손가락(103)이 컨트롤러 근처에 있지 않음을 나타내고, 0과 1 사이의 값은 엄지손가락(103)이 컨트롤러(100)로부터 어느 정도의 거리를 두고 있으며;
타임스탬프는 이 구조에서 주어진 센서 상태의 시간을 나타내고, 일실시형태에 있어서, 타임스탬프는 예를 들면, 마이크로초로 표현될 수 있으며;
frameNum은 이 데이터가 언제 관련했는지의 지표이고, 기록된 데이터 세션의 경우, 기록된 프레임의 세트 내의 위치를 나타낼 수 있고, 라이브 스트림 세션의 경우, 수신된 각각의 센서 프레임의 수가 증가하는 것을 나타낼 수 있으며;
skeletonPoses는 손 골격에서의 각각의 뼈의 위치 및 회전을 나타내고, 일실시형태에 있어서, 각각의 뼈가 (x, y, z) 위치 벡터 및 (qx, qy, qz, qw) 회전 쿼터니언을 나타내는 플로트의 7-튜플로서 제공되는 플로트의 배열이며;
localScale은 손 골격의 구성요소에 대해 수행될 것으로 예상되는 스케일링을 반영하고, 일실시형태에 있어서, 그것은 (x, y, z) 스칼라의 3-튜플로 제공되는 플로트의 배열이며;
handedness는 어느 손이 현재 컨트롤러를 잡고 있는지를 나타내고, 일실시형태에 있어서, handedness는 0~2 사이의 정수값을 갖고, 여기서 0은 컨트롤러를 잡고 있는 손이 없음을 나타내고, 1은 컨트롤러를 잡고 있는 왼손을 나타내고, 2는 컨트롤러를 잡고 있는 오른손을 나타낸다.
도 27 및 28은 예시적인 오른손에 대한 skeletonPoses의 일실시형태를 반영하는 테이블이고, 도 27은 펼쳐진 손바닥, 도 28은 움켜잡은 상태를 갖고 있다. 각각의 뼈는 분리된 행에 반영되고, 7-튜플은 x, y, z 위치 벡터와 qx, qy, qz, qw 회전 쿼터니언을 나타낸다. 위치(x, y, z)는 미터 단위이다. 각각의 뼈의 축은 임의의 뼈의 조상에 의해 수행된 임의의 회전을 고려한다(사람 손의 각각의 뼈의 위치 및 그것의 계층 구조에 대한 묘사에 대해 도 24를 참조). 모든 변환 및 회전은 뼈의 부모에 관련된다. 예시적인 양은 소수점 이하 다섯자리까지만 표시된다.
일실시형태에 있어서, 컨트롤러(100) 상의 하나 이상의 센서 패턴으로부터 획득된 정보는 낮은 레이턴시로 사용자의 손가락, 손 및 손목의 모델을 3D로 제공하기 위한 기반을 제공할 수 있다. 골격 모델의 낮은 레이턴시 전달은 VR/AR 시스템이 사용자의 손의 실시간 표현을 제공할 수 있게 한다. 게다가, 본원에 제시된 골격 데이터는 애플리케이션 및 운영 체제 소프트웨어가 터치 감지 객체에 대한 호버, 접촉, 움켜잡음, 압력 및 제스처를 식별할 수 있을 뿐만 아니라 제스처의 의도를 보다 쉽게 도출할 수 있는 손 위치 및 배향을 더 제공할 수 있는 정보를 가질 수 있게 한다.
본 시스템은 FMT 또는 FMT 유사 시스템을 사용하여 호버, 접촉 및 압력에 민감한 컨트롤러 및 다른 객체의 블록 다이어그램 및 작동 예시를 참조하여 상술된다. 블록 다이어그램 또는 작동 예시의 각각의 블록, 및 블록 다이어그램 또는 작동 예시에서의 블록의 조합은 아날로그 또는 디지털 하드웨어 및 컴퓨터 프로그램 명령에 의해 구현될 수 있음을 이해해야 한다. 컴퓨터 프로그램 명령은 컴퓨터 또는 기타 프로그램 가능 데이터 프로세싱 장치의 프로세서를 통해 실행되는 명령이 블록 다이어그램에 명시된 함수/기능을 구현할 수 있도록 범용 컴퓨터, 특수 목적 컴퓨터, ASIC, 또는 기타 프로그램 가능 데이터 프로세싱 장치의 프로세서에 제공될 수 있다.
상기 논의에 의해 명백히 제한되는 경우를 제외하고는 일부 대안적인 구현에 있어서 블록에 언급된 함수/기능은 작동 예시에서 언급된 순서를 벗어나서 발생할 수 있다. 예를 들면, 블록들이 연속으로 나타내어진 실행의 순서는 실제로 동시에 또는 실질적으로 동시에 실행될 수 있거나, 또는 사실상 임의의 블록들은 관련된 함수/기능에 따라 다른 것들과는 상이한 순서로 실행될 수 있다.
본 발명이 그것의 바람직한 실시형태를 참조하여 구체적으로 도시되고 설명되었지만, 본 발명의 사상 및 범위를 벗어나는 일 없이 그 안에서 형태 및 세부 사항의 다양한 변경이 이루어질 수 있다는 것이 당업자에 의해 이해될 것이다.
Claims (20)
- 엄지손가락 중심 부분, 및 트리거 중심 부분을 지지하는 컨트롤러 본체;
상기 엄지손가락 중심 부분과 관련되고, 복수의 제 1 도체 및 복수의 제 2 도체를 포함하고, 3층 센서 패턴인 제 1 센서 패턴으로서, 상기 엄지손가락 중심 부분에 근접한 터치 이벤트가 상기 복수의 제 1 도체 중 적어도 하나와 상기 복수의 제 2 도체 중 적어도 하나 사이에서 커플링 변화를 일으키도록, 상기 복수의 제 1 도체 및 상기 복수의 제 2 도체가 배향되는, 제 1 센서 패턴;
상기 트리거 중심 부분과 관련되고, 복수의 제 3 도체 및 복수의 제 4 도체를 포함하고, 3층 센서 패턴인 제 2 센서 패턴으로서, 상기 트리거 중심 부분에 근접한 터치 이벤트가 상기 복수의 제 3 도체 중 적어도 하나와 상기 복수의 제 4 도체 중 적어도 하나 사이에서 커플링 변화를 일으키도록, 상기 복수의 제 3 도체 및 상기 복수의 제 4 도체가 배향되는, 제 2 센서 패턴;
상기 복수의 제 1 도체 및 복수의 제 3 도체에 있어서 각각의 도체 중 분리된 것에 작동가능하게 연결되고, 각각의 상기 복수의 제 1 도체 및 복수의 제 3 도체 중 분리된 것 각각에 주파수 직교 신호를 방출하는 제 1 신호 발생기;
복수의 제 1 신호 수신기로서, 각각의 복수의 제 1 신호 수신기가 상기 복수의 제 2 도체 및 복수의 제 4 도체의 각각의 도체 중 분리된 것에 작동가능하게 연결되고, 각각의 복수의 제 1 신호 수신기가 작동가능하게 연결된 상기 도체 상에 존재하는 신호를 수신하도록 적합화되고, 작동가능하게 연결된 상기 도체 중 분리된 것 상에 존재하는 신호를 동시에 수신함으로써 통합 기간 동안 프레임을 수신하도록 적합화된, 복수의 제 1 신호 수신기; 및
상기 엄지손가락 중심 부분에 근접한 전자기 교란을 반영하는 제 1 히트맵 및 상기 트리거 중심 부분에 근접한 전자기 교란을 반영하는 제 2 히트맵을 생성하도록 적합화된 신호 프로세서로서, 각각의 히트맵은 통합 기간 동안 수신된 프레임에 적어도 부분적으로 기초하는 신호 프로세서를 포함하는 터치 감지 컨트롤러로서,
상기 터치 감지 컨트롤러에 대한 엄지손가락의 위치; 및 상기 터치 감지 컨트롤러에 대한 집게손가락의 위치를 적어도 규정하도록 적합화된 정보를 포함하는 손가락 정보 데이터 구조;
상기 제 1 히트맵에 적어도 부분적으로 기초하여 상기 터치 감지 컨트롤러에 대한 상기 엄지손가락의 위치에 관한 정보, 및 상기 제 2 히트맵에 적어도 부분적으로 기초하여 상기 터치 감지 컨트롤러에 대한 상기 집게손가락의 위치에 관한 정보로 상기 손가락 정보 데이터 구조를 파퓰레이트하도록 적합화된 프로세서;
상기 컨트롤러 본체 상에 있고, 복수의 제 5 도체 및 복수의 제 6 도체를 포함하는 제 3 센서 패턴;
상기 복수의 제 5 도체에 있어서 각각의 도체 중 분리된 것에 추가로 작동가능하게 연결되고, 각각의 상기 복수의 제 5 도체 중 분리된 것 각각에 주파수 직교 신호를 방출하는 제 2 신호 발생기;
복수의 제 2 신호 수신기로서, 각각의 복수의 제 2 신호 수신기가 상기 복수의 제 6 도체 중 분리된 것에 작동가능하게 연결되고, 각각의 복수의 제 2 신호 수신기가 작동가능하게 연결된 상기 도체 상에 존재하는 신호를 수신하도록 적합화되고, 작동가능하게 연결된 상기 도체 중 분리된 것 상에 존재하는 신호를 동시에 수신함으로써 통합 기간 동안 컨트롤러 본체 프레임을 수신하도록 적합화된, 복수의 제 2 신호 수신기;를 더 포함하고,
상기 신호 프로세서는 수신된 컨트롤러 본체 프레임에 적어도 부분적으로 기초하여 상기 컨트롤러 본체에 근접한 전자기 교란을 반영하는 제 3 히트맵을 생성하도록 더 적합화되고,
상기 손가락 정보 데이터 구조는 상기 터치 감지 컨트롤러에 대해 가운뎃손가락; 약손가락; 및 새끼손가락의 위치를 규정하도록 적합화된 정보를 부가적으로 포함하고;
상기 프로세서는 상기 제 3 히트맵에 적어도 부분적으로 기초하여 가운뎃손가락, 약손가락 및 새끼손가락의 위치에 관한 데이터를 가진 상기 손가락 정보 데이터 구조를 파퓰레이트하도록 더 적합화되고,
상기 제 1 신호 발생기 및 제 2 신호 발생기 중 적어도 하나에 작동가능하게 연결된 신호 주입기 요소로서, 상기 제 1 신호 발생기 및 제 2 신호 발생기 중 적어도 하나는 상기 신호 주입기 요소에 주파수 직교 신호를 방출하도록 더 적합화된, 신호 주입기 요소를 더 포함하는, 터치 감지 컨트롤러. - 삭제
- 삭제
- 삭제
- 삭제
- 제 1 항에 있어서,
상기 프로세서 및 상기 신호 프로세서는 동일한 집적회로인, 터치 감지 컨트롤러. - 제 6 항에 있어서,
상기 제 1 신호 발생기와, 상기 복수의 제 1 도체에 있어서 각각의 도체 중 분리된 것 사이의 작동 연결은 피드라인을 포함하고;
상기 제 1 센서 패턴은 상기 피드라인에 근접한 디커플링 요소를 더 포함하는, 터치 감지 컨트롤러. - 제 7 항에 있어서,
상기 디커플링 요소는 디커플링 라인, 및 디커플링 평면의 군으로부터 선택된 하나인, 터치 감지 컨트롤러. - 제 6 항에 있어서,
상기 제 1 신호 발생기와, 상기 복수의 제 3 도체에 있어서 각각의 도체 중 분리된 것 사이의 작동 연결은 피드라인을 포함하고;
상기 제 2 센서 패턴은 상기 피드라인에 근접한 디커플링 요소를 더 포함하는, 터치 감지 컨트롤러. - 제 9 항에 있어서,
상기 디커플링 요소는 디커플링 라인, 및 디커플링 평면의 군으로부터 선택된 하나인, 터치 감지 컨트롤러. - 삭제
- 제 1 항에 있어서,
상기 복수의 제 1 신호 수신기 및 상기 복수의 제 2 신호 수신기는 동일한 집적회로의 부분인, 터치 감지 컨트롤러. - 제 1 항에 있어서,
상기 제 3 센서 패턴은 2층 센서 패턴인, 터치 감지 컨트롤러. - 삭제
- 제 1 항에 있어서,
상기 프로세서는 상기 신호 주입기 요소에 방출된 상기 주파수 직교 신호의 검출에 적어도 부분적으로 기초하여 엄지손가락, 집게손가락, 가운뎃손가락, 약손가락, 및 새끼손가락 중 적어도 하나의 위치에 관한 데이터로 상기 손가락 정보 데이터 구조를 파퓰레이트하도록 더 적합화된, 터치 감지 컨트롤러. - 삭제
- 제 1 항에 있어서,
대상 사용자가 상기 터치 감지 컨트롤러와 상호작용하는 동안 상기 컨트롤러 본체가 사용자의 손에 보유되도록 상기 컨트롤러 본체에 부착된 핸드 스트랩을 더 포함하고;
상기 신호 주입기 요소는 대상 사용자가 상기 터치 감지 컨트롤러와 상호작용하는 동안 사용자의 손과 접촉하게 하는 방식으로 핸드 스트랩에 근접하여 위치된, 터치 감지 컨트롤러. - 엄지손가락 중심 부분, 및 트리거 중심 부분을 지지하는 컨트롤러 본체;
상기 엄지손가락 중심 부분과 관련되고, 복수의 제 1 도체 및 복수의 제 2 도체를 포함하고, 3층 센서 패턴인 제 1 센서 패턴으로서, 상기 엄지손가락 중심 부분에 근접한 터치 이벤트가 상기 복수의 제 1 도체 중 적어도 하나와 상기 복수의 제 2 도체 중 적어도 하나 사이에서 커플링 변화를 일으키도록, 상기 복수의 제 1 도체 및 상기 복수의 제 2 도체가 배향되는, 제 1 센서 패턴;
상기 트리거 중심 부분과 관련되고, 복수의 제 3 도체 및 복수의 제 4 도체를 포함하고, 3층 센서 패턴인 제 2 센서 패턴으로서, 상기 트리거 중심 부분에 근접한 터치 이벤트가 상기 복수의 제 3 도체 중 적어도 하나와 상기 복수의 제 4 도체 중 적어도 하나 사이에서 커플링 변화를 일으키도록, 상기 복수의 제 3 도체 및 상기 복수의 제 4 도체가 배향되는, 제 2 센서 패턴;
상기 복수의 제 1 도체 및 복수의 제 3 도체에 있어서 각각의 도체 중 분리된 것에 작동가능하게 연결되고, 각각의 상기 복수의 제 1 도체 및 복수의 제 3 도체 중 분리된 것 각각에 주파수 직교 신호를 방출하는 제 1 신호 발생기;
복수의 제 1 신호 수신기로서, 각각의 복수의 제 1 신호 수신기가 상기 복수의 제 2 도체 및 복수의 제 4 도체의 각각의 도체 중 분리된 것에 작동가능하게 연결되고, 각각의 복수의 제 1 신호 수신기가 작동가능하게 연결된 상기 도체 상에 존재하는 신호를 수신하도록 적합화되고, 작동가능하게 연결된 상기 도체 중 분리된 것 상에 존재하는 신호를 동시에 수신함으로써 통합 기간 동안 프레임을 수신하도록 적합화된, 복수의 제 1 신호 수신기; 및
상기 엄지손가락 중심 부분에 근접한 전자기 교란을 반영하는 제 1 히트맵 및 상기 트리거 중심 부분에 근접한 전자기 교란을 반영하는 제 2 히트맵을 생성하도록 적합화된 신호 프로세서로서, 각각의 히트맵은 통합 기간 동안 수신된 프레임에 적어도 부분적으로 기초하는 신호 프로세서를 포함하는 터치 감지 컨트롤러로서,
상기 터치 감지 컨트롤러에 대한 엄지손가락의 위치; 및 상기 터치 감지 컨트롤러에 대한 집게손가락의 위치를 적어도 규정하도록 적합화된 정보를 포함하는 손가락 정보 데이터 구조;
상기 제 1 히트맵에 적어도 부분적으로 기초하여 상기 터치 감지 컨트롤러에 대한 상기 엄지손가락의 위치에 관한 정보, 및 상기 제 2 히트맵에 적어도 부분적으로 기초하여 상기 터치 감지 컨트롤러에 대한 상기 집게손가락의 위치에 관한 정보로 상기 손가락 정보 데이터 구조를 파퓰레이트하도록 적합화된 프로세서;
상기 컨트롤러 본체 상에 있고, 복수의 제 5 도체 및 복수의 제 6 도체를 포함하는 제 3 센서 패턴;
상기 복수의 제 5 도체에 있어서 각각의 도체 중 분리된 것에 추가로 작동가능하게 연결되고, 각각의 상기 복수의 제 5 도체 중 분리된 것 각각에 주파수 직교 신호를 방출하는 제 2 신호 발생기;
복수의 제 2 신호 수신기로서, 각각의 복수의 제 2 신호 수신기가 상기 복수의 제 6 도체 중 분리된 것에 작동가능하게 연결되고, 각각의 복수의 제 2 신호 수신기가 작동가능하게 연결된 상기 도체 상에 존재하는 신호를 수신하도록 적합화되고, 작동가능하게 연결된 상기 도체 중 분리된 것 상에 존재하는 신호를 동시에 수신함으로써 통합 기간 동안 컨트롤러 본체 프레임을 수신하도록 적합화된, 복수의 제 2 신호 수신기;를 더 포함하고,
상기 신호 프로세서는 수신된 컨트롤러 본체 프레임에 적어도 부분적으로 기초하여 상기 컨트롤러 본체에 근접한 전자기 교란을 반영하는 제 3 히트맵을 생성하도록 더 적합화되고,
상기 손가락 정보 데이터 구조는 상기 터치 감지 컨트롤러에 대해 가운뎃손가락; 약손가락; 및 새끼손가락의 위치를 규정하도록 적합화된 정보를 부가적으로 포함하고;
상기 프로세서는 상기 제 3 히트맵에 적어도 부분적으로 기초하여 가운뎃손가락, 약손가락 및 새끼손가락의 위치에 관한 데이터를 가진 상기 손가락 정보 데이터 구조를 파퓰레이트하도록 더 적합화되고,
제 3 신호 발생기에 작동가능하게 연결된 신호 주입기 요소를 갖는 신호 주입기 시스템; 및
상기 신호 주입기 요소에 주파수 직교 신호를 방출하도록 적합화된 상기 제 3 신호 발생기;를 더 포함하고,
상기 신호 주입기 시스템은 대상 사용자가 터치 감지 컨트롤러와 상호작용하는 동안 상기 신호 주입기 요소가 사용자의 신체와 접촉하는 것을 허용하도록 적합화된, 터치 감지 컨트롤러. - 제 18 항에 있어서,
상기 신호 주입기 시스템은 손목 밴드; 시계; 스마트워치; 휴대폰; 글러브; 반지; 스타일러스; 포켓형 물체; 시트 쿠션이나 다른 시팅 패드; 바닥 매트; 팔걸이; 데스크 표면; 벨트; 신발; 및 웨어러블 컴퓨팅 장치로 이루어지는 군으로부터 선택된 하나의 형태인, 터치 감지 컨트롤러. - 삭제
Applications Claiming Priority (3)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US201762473908P | 2017-03-20 | 2017-03-20 | |
US62/473,908 | 2017-03-20 | ||
PCT/US2018/023088 WO2018175292A1 (en) | 2017-03-20 | 2018-03-19 | Hand sensing controller |
Publications (2)
Publication Number | Publication Date |
---|---|
KR20190121877A KR20190121877A (ko) | 2019-10-28 |
KR102292988B1 true KR102292988B1 (ko) | 2021-08-24 |
Family
ID=63520004
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
KR1020197030806A KR102292988B1 (ko) | 2017-03-20 | 2018-03-19 | 손 감지 컨트롤러 |
Country Status (6)
Country | Link |
---|---|
US (3) | US10353515B2 (ko) |
JP (1) | JP2020514896A (ko) |
KR (1) | KR102292988B1 (ko) |
CN (1) | CN110637278B (ko) |
DE (1) | DE112018001460T5 (ko) |
WO (1) | WO2018175292A1 (ko) |
Families Citing this family (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US10795437B2 (en) * | 2018-01-19 | 2020-10-06 | Tactual Labs Co. | Matrix sensors for use with a controller |
GB201816785D0 (en) * | 2018-10-15 | 2018-11-28 | Tangi0 Ltd | Sensor device and method |
US11093035B1 (en) * | 2019-02-19 | 2021-08-17 | Facebook Technologies, Llc | Finger pinch detection |
CN209400998U (zh) * | 2019-02-19 | 2019-09-17 | 广州视源电子科技股份有限公司 | 降低显示模组干扰的电容屏 |
WO2021016442A1 (en) * | 2019-07-23 | 2021-01-28 | Tactual Labs Co. | Self-locating controls |
US11911651B1 (en) * | 2023-08-10 | 2024-02-27 | Barron Associates, Inc. | System, device and method for electronically mediated upper extremity therapy |
Citations (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20160062489A1 (en) * | 2014-09-01 | 2016-03-03 | Yinbo Li | Multi-surface controller |
Family Cites Families (17)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US5670988A (en) | 1995-09-05 | 1997-09-23 | Interlink Electronics, Inc. | Trigger operated electronic device |
US7800592B2 (en) * | 2005-03-04 | 2010-09-21 | Apple Inc. | Hand held electronic device with multiple touch sensing devices |
US6724366B2 (en) * | 2001-04-03 | 2004-04-20 | Peter James Crawford | Thumb actuated x-y input device |
US8497767B2 (en) | 2009-03-02 | 2013-07-30 | Butterfly Haptics, LLC | Magnetic levitation haptic interface system |
WO2012149671A1 (zh) * | 2011-04-30 | 2012-11-08 | Liu Benlin | 手持式组合按键装置以及由手持式组合按键装置输入信息的方法 |
US9019240B2 (en) * | 2011-09-29 | 2015-04-28 | Qualcomm Mems Technologies, Inc. | Optical touch device with pixilated light-turning features |
US9158411B2 (en) * | 2013-07-12 | 2015-10-13 | Tactual Labs Co. | Fast multi-touch post processing |
US9235307B2 (en) * | 2013-03-15 | 2016-01-12 | Tactual Labs Co. | Fast multi-touch stylus and sensor |
AU2014232460A1 (en) * | 2013-03-15 | 2015-09-24 | Tactual Labs Co. | Active optical stylus and sensor |
CN105144046B (zh) * | 2013-03-15 | 2018-10-19 | 触觉实验室股份有限公司 | 具有用户识别技术的快速多触摸传感器 |
JP2015045909A (ja) * | 2013-08-27 | 2015-03-12 | 株式会社東海理化電機製作所 | 操作入力装置 |
JP6233075B2 (ja) * | 2014-02-06 | 2017-11-22 | 大日本印刷株式会社 | タッチパネルセンサおよびタッチパネルセンサを備える入出力装置 |
KR101581672B1 (ko) * | 2014-06-09 | 2015-12-31 | 주식회사 더한 | 정전용량형 터치와 유도전자기장 입력을 동시에 감지하는 다중 입력 패드 및 입력 시스템 |
CN106575164B (zh) * | 2014-09-10 | 2020-10-09 | 索尼公司 | 检测装置、检测方法、控制装置和控制方法 |
EP3265895B1 (en) * | 2015-03-01 | 2020-04-08 | Tactical Haptics | Embedded grasp sensing devices, systems, and methods |
JP2016224607A (ja) * | 2015-05-28 | 2016-12-28 | 株式会社東海理化電機製作所 | 静電検出装置 |
US9999833B2 (en) * | 2015-06-11 | 2018-06-19 | Oculus Vr, Llc | Hand-held controllers with capacitive touch sensors for virtual-reality systems |
-
2018
- 2018-03-19 KR KR1020197030806A patent/KR102292988B1/ko active IP Right Grant
- 2018-03-19 JP JP2019548422A patent/JP2020514896A/ja active Pending
- 2018-03-19 CN CN201880032932.0A patent/CN110637278B/zh not_active Expired - Fee Related
- 2018-03-19 US US15/924,782 patent/US10353515B2/en active Active
- 2018-03-19 WO PCT/US2018/023088 patent/WO2018175292A1/en active Application Filing
- 2018-03-19 DE DE112018001460.6T patent/DE112018001460T5/de not_active Withdrawn
-
2019
- 2019-07-15 US US16/511,845 patent/US10558296B2/en active Active
-
2020
- 2020-02-10 US US16/785,800 patent/US10990190B2/en active Active
Patent Citations (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20160062489A1 (en) * | 2014-09-01 | 2016-03-03 | Yinbo Li | Multi-surface controller |
Also Published As
Publication number | Publication date |
---|---|
US20180267667A1 (en) | 2018-09-20 |
WO2018175292A1 (en) | 2018-09-27 |
US20200285341A1 (en) | 2020-09-10 |
US10353515B2 (en) | 2019-07-16 |
CN110637278A (zh) | 2019-12-31 |
DE112018001460T5 (de) | 2020-01-02 |
JP2020514896A (ja) | 2020-05-21 |
US20190339810A1 (en) | 2019-11-07 |
KR20190121877A (ko) | 2019-10-28 |
US10990190B2 (en) | 2021-04-27 |
US10558296B2 (en) | 2020-02-11 |
CN110637278B (zh) | 2021-09-14 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
KR102292988B1 (ko) | 손 감지 컨트롤러 | |
CN107077227B (zh) | 智能指环 | |
Grosse-Puppendahl et al. | Finding common ground: A survey of capacitive sensing in human-computer interaction | |
US10540001B1 (en) | Fine-motion virtual-reality or augmented-reality control using radar | |
JP6688741B2 (ja) | 入力事象処理のためのデシメーション戦略 | |
Ma et al. | Magnetic hand tracking for human-computer interface | |
CN104903826B (zh) | 交互感测设备和交互感测方法 | |
JP2019527400A (ja) | タッチセンシティブキーボード | |
CN109952551A (zh) | 触敏键盘 | |
US20180267653A1 (en) | Sensing controller | |
Lu et al. | Immersive manipulation of virtual objects through glove-based hand gesture interaction | |
JP2018502382A (ja) | 投影型容量式タッチセンサにおけるクロストークの低減のための差動伝送 | |
WO2012032515A1 (en) | Device and method for controlling the behavior of virtual objects on a display | |
US11829520B2 (en) | Apparatus and method for sensing deformation | |
US10528182B2 (en) | Matrix sensors | |
Wilhelm et al. | Ring-based finger tracking using capacitive sensors and long short-term memory | |
US10795437B2 (en) | Matrix sensors for use with a controller | |
Schapansky | Jester: A device abstraction and data fusion API for skeletal tracking sensors | |
Bhattacharya et al. | MagSurface: Wireless 2D Finger Tracking Leveraging Magnetic Fields | |
Kyu et al. | EITPose: Wearable and Practical Electrical Impedance Tomography for Continuous Hand Pose Estimation | |
Fukushige et al. | MOTION TRACKING WITH REFLECTIONS-3D pointing device with self-calibrating mirror system | |
TW201541290A (zh) | 貼設式手指指向控制件 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A201 | Request for examination | ||
E902 | Notification of reason for refusal | ||
E701 | Decision to grant or registration of patent right | ||
GRNT | Written decision to grant |