KR101821781B1 - 핸드헬드 디바이스의 포워드 포인팅 방향의 결정 - Google Patents

핸드헬드 디바이스의 포워드 포인팅 방향의 결정 Download PDF

Info

Publication number
KR101821781B1
KR101821781B1 KR1020137000093A KR20137000093A KR101821781B1 KR 101821781 B1 KR101821781 B1 KR 101821781B1 KR 1020137000093 A KR1020137000093 A KR 1020137000093A KR 20137000093 A KR20137000093 A KR 20137000093A KR 101821781 B1 KR101821781 B1 KR 101821781B1
Authority
KR
South Korea
Prior art keywords
angular velocity
body frame
acceleration
rotation
matrix
Prior art date
Application number
KR1020137000093A
Other languages
English (en)
Other versions
KR20130115204A (ko
Inventor
매튜 지. 리버티
브라이안 에이. 쿡
Original Assignee
아이디에이치엘 홀딩스, 인크.
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by 아이디에이치엘 홀딩스, 인크. filed Critical 아이디에이치엘 홀딩스, 인크.
Publication of KR20130115204A publication Critical patent/KR20130115204A/ko
Application granted granted Critical
Publication of KR101821781B1 publication Critical patent/KR101821781B1/ko

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/01Input arrangements or combined input and output arrangements for interaction between user and computer
    • G06F3/03Arrangements for converting the position or the displacement of a member into a coded form
    • G06F3/033Pointing devices displaced or positioned by the user, e.g. mice, trackballs, pens or joysticks; Accessories therefor
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/01Input arrangements or combined input and output arrangements for interaction between user and computer
    • G06F3/03Arrangements for converting the position or the displacement of a member into a coded form
    • G06F3/033Pointing devices displaced or positioned by the user, e.g. mice, trackballs, pens or joysticks; Accessories therefor
    • G06F3/0346Pointing devices displaced or positioned by the user, e.g. mice, trackballs, pens or joysticks; Accessories therefor with detection of the device orientation or free movement in a 3D space, e.g. 3D mice, 6-DOF [six degrees of freedom] pointers using gyroscopes, accelerometers or tilt-sensors
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F17/00Digital computing or data processing equipment or methods, specially adapted for specific functions
    • G06F17/10Complex mathematical operations
    • G06F17/16Matrix or vector computation, e.g. matrix-matrix or matrix-vector multiplication, matrix factorization
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/01Input arrangements or combined input and output arrangements for interaction between user and computer
    • G06F3/017Gesture based interaction, e.g. based on a set of recognized hand gestures
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/01Input arrangements or combined input and output arrangements for interaction between user and computer
    • G06F3/03Arrangements for converting the position or the displacement of a member into a coded form
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/01Input arrangements or combined input and output arrangements for interaction between user and computer
    • G06F3/03Arrangements for converting the position or the displacement of a member into a coded form
    • G06F3/033Pointing devices displaced or positioned by the user, e.g. mice, trackballs, pens or joysticks; Accessories therefor
    • G06F3/038Control and interface arrangements therefor, e.g. drivers or device-embedded control circuitry
    • G06F3/0383Signal control means within the pointing device
    • GPHYSICS
    • G08SIGNALLING
    • G08CTRANSMISSION SYSTEMS FOR MEASURED VALUES, CONTROL OR SIMILAR SIGNALS
    • G08C17/00Arrangements for transmitting signals characterised by the use of a wireless electrical link
    • G08C17/02Arrangements for transmitting signals characterised by the use of a wireless electrical link using a radio link
    • GPHYSICS
    • G08SIGNALLING
    • G08CTRANSMISSION SYSTEMS FOR MEASURED VALUES, CONTROL OR SIMILAR SIGNALS
    • G08C23/00Non-electrical signal transmission systems, e.g. optical systems
    • G08C23/04Non-electrical signal transmission systems, e.g. optical systems using light waves, e.g. infrared
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N21/00Selective content distribution, e.g. interactive television or video on demand [VOD]
    • H04N21/40Client devices specifically adapted for the reception of or interaction with content, e.g. set-top-box [STB]; Operations thereof
    • H04N21/41Structure of client; Structure of client peripherals
    • H04N21/422Input-only peripherals, i.e. input devices connected to specially adapted client devices, e.g. global positioning system [GPS]
    • H04N21/42204User interfaces specially adapted for controlling a client device through a remote control device; Remote control devices therefor
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04QSELECTING
    • H04Q9/00Arrangements in telecontrol or telemetry systems for selectively calling a substation from a main station, in which substation desired apparatus is selected for applying a control signal thereto or for obtaining measured values therefrom
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2203/00Indexing scheme relating to G06F3/00 - G06F3/048
    • G06F2203/038Indexing scheme relating to G06F3/038
    • G06F2203/0384Wireless input, i.e. hardware and software details of wireless interface arrangements for pointing devices
    • GPHYSICS
    • G08SIGNALLING
    • G08CTRANSMISSION SYSTEMS FOR MEASURED VALUES, CONTROL OR SIMILAR SIGNALS
    • G08C2201/00Transmission systems of control signals via wireless link
    • G08C2201/30User interface
    • G08C2201/32Remote control based on movements, attitude of remote control device
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N21/00Selective content distribution, e.g. interactive television or video on demand [VOD]
    • H04N21/40Client devices specifically adapted for the reception of or interaction with content, e.g. set-top-box [STB]; Operations thereof
    • H04N21/41Structure of client; Structure of client peripherals
    • H04N21/422Input-only peripherals, i.e. input devices connected to specially adapted client devices, e.g. global positioning system [GPS]
    • H04N21/42204User interfaces specially adapted for controlling a client device through a remote control device; Remote control devices therefor
    • H04N21/42206User interfaces specially adapted for controlling a client device through a remote control device; Remote control devices therefor characterized by hardware details
    • H04N21/42222Additional components integrated in the remote control device, e.g. timer, speaker, sensors for detecting position, direction or movement of the remote control, microphone or battery charging device

Abstract

핸드헬드 디바이스와 연관된 포워드 포인팅 방향은, 예를 들어, 디바이스의 회전 중심을 계산함으로써 추정 또는 결정된다. 결과 조합된 또는 선택된 바이어스 추정은 그 후 예를 들어, 3D 포인팅 디바이스에서 센서의 바이어싱된 출력을 보상하는데 사용될 수 있다.

Description

핸드헬드 디바이스의 포워드 포인팅 방향의 결정{DETERMINING FORWARD POINTING DIRECTION OF A HANDHELD DEVICE}
<관련 출원 데이터>
본 출원은, 그 내용이 본 명세서에 참조용으로 인용된, "동적 포워드 방향을 계산하는 방법(Method of Computing a Dynamic Forward Direction)"이라는 제목으로, 2010년 6월 3일에 출원된, 미국 임시 특허 출원 일련 번호 제61/351,108호와 관련되며, 그 우선권을 주장한다.
본 발명은, 다른 타입들의 디바이스들 뿐만 아니라, 3D 포인팅 디바이스들에서 사용될 수 있는, 포워드 포인팅 결정 기술들, 시스템들, 소프트웨어 및 디바이스들을 기술한다.
정보 통신과 연관된 기술들은 최근 수십년 동안 급속하게 발전되어 왔다. (몇 가지만 예를 들어도) 텔레비전, 셀룰러 폰, 인터넷 및 광 통신 기술들은 결합해서 소비자들에게 유용한 정보 및 엔터테인먼트 옵션들을 감당 못할 정도로 준다. 텔레비전을 예로 들면, 최근 30년 동안, 케이블 텔레비전 서비스, 위성 텔레비전 서비스, 유료 영화(pay-per-view movies) 및 주문형 비디오가 도입되어 왔다. 1960년대의 텔레비전 시청자들은 통상 텔레비전 세트들에서 아마도 4개 또는 5개의 방송(over-the-air) TV 채널들을 수신할 수 있었던 반면, 오늘날의 TV 시청자들은 수백개, 수천개, 및 잠정적으로 수백만 개의 쇼 및 정보 채널들 중에서 선택할 기회를 가진다. 호텔 등에서 현재 주로 사용되는 주문형 비디오 기술은 수천 개의 영화 제목들 중에서의 가정내 엔터테인먼트 선택에 대한 잠재성을 제공한다.
이렇게 많은 정보 및 콘텐츠를 최종 사용자들에게 제공하는 기술적인 능력은 시스템 설계자들 및 서비스 제공자들에게 기회들 및 도전 사항들을 둘 다 제공한다. 한 도전 사항은, 최종 사용자들이 소수 보다는 더 많은 선택 사항들을 갖기를 통상 선호함과 동시에, 이 선호가 선택 프로세스가 고속이면서 간단하기를 희망하는 욕구에 의해 상쇄된다는 것이다. 불행히도, 최종 사용자들이 미디어 아이템들에 액세스하는 도구인 시스템들 및 인터페이스들의 개발은 빠르지도 않고 간단하지도 않은 선택 프로세스들을 야기했다. 텔레비전 프로그램들의 일례를 다시 한번 생각해 보라. 텔레비전이 초창기일 때, 어떤 프로그램을 시청할 지를 결정하는 것은 주로 적은 수의 선택 사항들로 인해 비교적 간단한 프로세스였다. 예를 들어, (1) 인근 텔레비전 채널들 간의, (2) 채널들을 통해 송신되는 프로그램들 간의, 및 (3) 날짜 및 시간 간의 대응(correspondence)를 보여준 일련의 열들 및 행들로 포맷된 인쇄된 가이드를 참고한다. 텔레비전은 튜너 노브(a tuner knob)를 조정함으로써 희망 채널로 튜닝되었고, 시청자는 선택된 프로그램을 시청했다. 차후에, 시청자들이 멀리서 텔레비전을 튜닝할 수 있게 해준 리모트 컨트롤 디바이스들이 도입되었다. 사용자-텔레비전 인터페이스로의 이러한 추가물은 "채널 서핑(channel surfing)"으로 공지된 현상을 자아냈으며, 이에 의해, 시청자는 임의의 소정의 시간에 어떤 프로그램들이 유효한지를 재빨리 알 수 있도록 다수의 채널들에서 방송되는 짧은 세그먼트들을 신속히 볼 수 있었다.
채널들의 수 및 시청 가능한 콘텐츠의 양이 극적으로 증가했다는 사실에도 불구하고, 텔레비전들에 대해 일반적으로 유용한 사용자 인터페이스, 제어 디바이스 옵션들 및 프레임워크들은 최근 30년도 훨씬 넘는 동안 변하지 않았다. 인쇄된 가이드들이 여전히 프로그램 정보를 전달하기 위한 가장 널리 퍼진 메커니즘이다. 상하 화살표들을 가진 다중 버튼 리모트 컨트롤이 여전히 가장 널리 퍼진 채널/콘텐츠 선택 메커니즘이다. TV 사용자 인터페이스를 설계 및 구현한 이들의 이용가능한 미디어 콘텐츠의 증가에 대한 반응은 기존 선택 프로시져들 및 인터페이스 객체들의 간단한 확장이었다. 따라서, 인쇄된 가이드들의 행들의 수는 더 많은 채널들을 수용하도록 증가되어 왔다. 리모트 컨트롤 디바이스들의 버튼들의 수는, 예를 들어, 도 1에 도시된 바와 같이, 추가의 기능 및 콘텐츠 핸들링을 지원하도록 증가되어 왔다. 그러나, 이러한 방식은 시청자가 이용가능한 정보를 검토하는데 필요한 시간 및 선택을 구현하는데 필요한 동작들의 복잡성 둘 다를 상당히 증가시켰다. 분명히, 소비자들은 그들이 이미 너무 느리고 복잡하다고 여기는 인터페이스에 복잡성을 추가할 새로운 서비스들에 저항하기 때문에, 기존 인터페이스의 번거로운 속성은 일부 서비스들, 예를 들어, 주문형 비디오의 상업적인 구현을 방해해 왔다.
대역폭 및 콘텐츠의 증가 외에, 사용자 인터페이스 병목현상 문제점은 기술들의 취합에 의해 악화되고 있다. 소비자들은 다수의 분리 가능한 컴포넌트들이 아닌 통합된 시스템들을 구매하는 옵션을 갖는 것에 긍정적으로 반응하고 있다. 이러한 추세의 일례는, 3개의 이미 독립적인 컴포넌트들이 통합된 유닛으로서 현재 자주 판매되고 있는 콤비네이션 텔레비전/VCR/DVD이다. 이 추세는 잠정적으로, 현재 가정에서 발견되는 통신 디바이스들의 전부는 아니지만 대부분이 통합된 유닛, 예를 들어, 텔레비전/VCR/DVD/인터넷 액세스/라디오/스테레오 유닛으로서 함께 패키지되는 최종 결과로 계속될 가능성이 있다. 계속해서 개별 컴포넌트들을 구매하는 이들 조차도 개별 컴포넌트들의 매끄러운 제어 및 그들 간의 상호 작용을 희망할 것으로 예상된다. 이와 함께 증가된 집합체는 사용자 인터페이스의 더 많은 복잡성의 잠재력을 가져온다. 예를 들어, TV 리모트 유닛들 및 VCR 리모트 유닛들의 기능을 결합하기 위해, 소위 "범용(universal)" 리모트 유닛들이 도입되었을 때, 이러한 범용 리모트 유닛들의 버튼들의 수는 각각 따로 TV 리모트 유닛 또는 VCR 리모트 유닛의 버튼들의 수 보다 통상 더 많았다. 이 추가된 수의 버튼들 및 기능은 리모트에서 정확하게 올바른 버튼을 찾아 내지 않고서는 TV 또는 VCR의 결코 가장 간단하지 않은 양상들을 제어하는 것을 매우 어렵게 한다. 여러 번, 이 범용 리모트 유닛들은 특정 TV들에 고유한 다수의 제어 레벨들 또는 피처들에 액세스하기 위한 충분한 버튼들을 제공하지 않는다. 이러한 경우들에서, 원래의 디바이스 리모트 유닛은 여전히 필요하며, 다수의 리모트를 다루는 원래의 성가신 일이 집합체의 복잡성으로부터 야기된 사용자 인터페이스 문제점들로 인해 남겨진다. 일부 리모트 유닛들은 전문적인 커맨드들로 프로그래밍될 수 있는 "소프트" 버튼들을 추가함으로써 이 문제점을 처리해 왔다. 이 소프트 버튼들은 때때로 그 동작을 나타내기 위해 동반 LCD 디스플레이들을 가진다. 이 또한 TV로부터 리모트 컨트롤로 눈길을 돌리지 않고 사용하기 어렵다는 결함을 가진다. 이 리모트 유닛들의 또 다른 결함은, 버튼들의 수를 감소시키려는 시도로 모드들을 사용한다는 점이다. 이러한 "모드화된(moded)" 범용 리모트 유닛들에서, 리모트가 TV, DVD 플레이어, 케이블 셋탑 박스, VCR 등과 통신해야만 하는 지를 선택하기 위한 특별 버튼이 존재한다. 이는, 잘못된 디바이스에 커맨드들을 송신함, 올바른 모드인 지를 확신하기 위해 억지로 사용자가 리모트를 바라보게 함, 및 다수의 디바이스들의 통합에 어떠한 단순화(simplification)도 제공하지 않음을 포함하는 다수의 유용성(usability) 문제들을 야기한다. 범용 리모트 유닛들 중 가장 발전된 범용 리모트 유닛은, 사용자가 다수의 디바이스들에 대한 커맨드들의 시퀀스들을 리모트 내에 프로그래밍할 수 있게 함으로써 일부 통합을 제공한다. 이는, 범용 리모트 유닛들을 프로그래밍하기 위해 다수의 사용자들이 전문 설치인들을 고용하는 어려운 과업이다.
최종 사용자들 및 미디어 시스템들 간의 스크린 인터페이스를 현대화하는 일부 시도들이 또한 이루어져 왔다. 그러나, 이러한 시도들은, 다른 단점들 중에서, 미디어 아이템들의 큰 컬렉션과 미디어 아이템들의 작은 컬렉션 사이에서 쉽게 스케일링할 수 없음으로 인해 통상 어려움을 겪는다. 예를 들어, 아이템들의 리스트들에 좌우되는 인터페이스들은 미디어 아이템들의 작은 컬렉션들에 대해 잘 동작할 수 있지만, 미디어 아이템들의 큰 컬렉션들을 브라우징하기에는 지루하다. 계층적 네비게이션(예를 들어, 트리 구조들)에 의존하는 인터페이스들은 미디어 아이템들의 큰 컬렉션들에 대한 리스트 인터페이스들 보다 더 빠르게 트래버스할 수 있지만, 미디어 아이템들의 작은 컬렉션들에는 쉽게 적응되지 않는다. 또한, 사용자들은, 사용자가 트리 구조의 3개의 또는 그 이상의 층들을 통해 이동해야만 하는 선택 프로세스들에 흥미를 잃는 경향이 있다. 이러한 모든 경우들에서, 현재 리모트 유닛들은, 강제로 사용자가 리스트 또는 계층들을 항행하기 위해 상하 버튼들을 반복해서 누르게 함으로써 이 선택 프로세서를 심지어 더 싫증나게 한다. 페이지 업 및 페이지 다운 등의 선택 스킵 제어들이 이용가능할 때, 사용자는 대개 이들 특별 버튼들을 찾기 위해 리모트를 바라보아야만 하거나, 또는 이들이 심지어 존재함을 아는 것에 훈련되어야만 한다. 따라서, 선택 프로세스를 가속화할 뿐만 아니라, 사용자들과 미디어 시스템들 간의 제어 및 스크린 인터페이스를 간소화하면서, 동시에, 다수의 미디어 아이템들 및 새로운 서비스들을 사용자에게 용이하게 공급하게 함으로써 최종 사용자 장치에 유용한 증가된 대역폭을 서비스 제공자들이 이용할 수 있게 하는 조직 프레임워크들, 기술들 및 시스템들이, 그 내용이 본 명세서에 참조용으로 인용된, "미디어 아이템들을 조직, 선택 및 개시하기 위한 줌 가능 그래픽 사용자 인터페이스를 가진 제어 프레임워크(A Control Framework with a Zoomable Graphical User Interface for Organizing, Selecting and Launching Media Items)"라는 제목으로, 2004년 1월 30일에 출원된, 미국 특허 출원 일련 번호 제10/768,432호에서 제안되었다.
이 명세서의 특별한 관심사는 다른 애플리케이션들 및 시스템들 뿐만 아니라, 이 프레임워크들과 상호 작용하는데 사용될 수 있는 리모트 디바이스들이다. 상기 인용된 출원에 언급된 바와 같이, 예를 들어, 트랙볼, "마우스"형 포인팅 디바이스들, 라이트 펜 등을 포함하는 프레임워크들을 가진 각종 상이한 타입들의 리모트 디바이스들이 사용될 수 있다. 그러나, 이러한 프레임워크들(및 다른 애플리케이션들)과 함께 사용될 수 있는 리모트 디바이스들의 다른 카테고리는 3D 포인팅 디바이스들이다. 구절 "3D 포인팅(3D pointing)"은, 본 명세서에서는, 예를 들어, 디스플레이 스크린 앞에서 공중에서 3(또는 그 이상의) 차원들에서 입력 디바이스가 이동하는 능력, 및 사용자 인터페이스가 이러한 움직임들을 직접 사용자 인터페이스 커맨드들, 예를 들어, 디스플레이 스크린에서의 커서의 이동으로 번역하는 대응 능력을 나타내는데 사용된다. 3D 포인팅 디바이스 간의 데이터의 전송은 3D 포인팅 디바이스를 다른 디바이스에 연결하는 선을 통해 또는 무선으로 실행될 수 있다. 따라서, "3D 포인팅"은, 예를 들어, 마우스의 상대적 이동이 컴퓨터 디스플레이 스크린에서의 커서 이동으로 번역되는 프록시 표면으로서, 표면, 예를 들어, 책상 표면 또는 마우스 패드를 사용하는 종래의 컴퓨터 마우스 포인팅 기술들과는 상이하다. 3D 포인팅 디바이스의 일례는, 그 내용이 본 명세서에 참조용으로 인용된, 매튜 지. 리버티(Matthew G. Liberty)의 미국 특허 번호 제7,118,518호(이후부터는 '518 특허라고 함)에서 발견될 수 있다.
'518 특허에 기술된 레이저 포인터 또는 일례의 3D 포인팅 디바이스들 등의 포인팅 디바이스들은 기계적인 제품 설계 또는 폼 팩터(form factor)에 의해 결정 또는 표시되는 포인팅의 포워드 방향을 통상 가진다. 예를 들어, 3D 포인팅 디바이스와 연관된 하우징은, 사용자가 선정된 방법으로 디바이스를 통상 잡도록 설계될 수 있어서, 디바이스의 선정된 "프론트(front)"와 연관된 특정 포인트 또는 포인트들의 중심지(locus)는 일반적으로 커서의 이동을 제어하기 위해 스크린 또는 디스플레이에서 포인팅될 수 있다. 그러나, 선정된 방법으로 포인팅 디바이스들을 잡도록 사용자들에게 동기를 부여하도록 의도된 설계들에도 불구하고, 일부 사용자들은 선정된 방식으로 디바이스들을 한결같이 잡지 않을 수도 있으며, 디바이스의 실제 포워드 포인팅 방향은 그 후 설계된 포워드 포인팅 방향과는 동작시 상이할 수 있다. 설계된 포워드 포인팅 방향이 실제 포워드 포인팅 방향이라고 가정되는 정도에서, 예를 들어, 커서 이동 또는 다른 요인들을 결정하기 위한 알고리즘들의 각종 프로세싱에서, 포인팅 디바이스의 이러한 예상하지 않은 사용은 커서 이동에 부정확성을 도입하거나 또는 다른 추적 또는 보상을 요구할 수 있다.
따라서, 일반적으로, 핸드헬드 디바이스 분야에서, 특히 3D 포인터 설계에서 아직 향상시킬 여지가 있다.
핸드헬드 디바이스와 연관된 포워드 포인팅 방향은, 예를 들어, 디바이스의 회전 중심을 계산함으로써 추정 또는 결정된다. 결과로서 생긴 조합된 또는 선택된 바이어스 추정은 그 후 예를 들어, 3D 포인팅 디바이스에서 센서의 바이어싱된 출력을 보상하는데 사용될 수 있다.
예시적인 실시예에 따라, 디바이스의 포워드 포인팅 방향을 결정하기 위한 방법은, 프로세서에 의해, 디바이스의 선가속도(linear acceleration) 및 각속도와 연관된 센서 출력들을 수신하는 단계, 및, 프로세서에 의해, 선가속도 및 각속도를 사용해서 디바이스의 포워드 포인팅 방향을 결정하는 단계를 포함한다. 본 방법은 디바이스의 회전 중심을 계산하는 단계 및 회전 중심을 사용해서 디바이스의 포워드 포인팅 방향을 결정하는 단계를 더 포함할 수 있다.
다른 예시적인 실시예에 따라, 디바이스는 디바이스의 가속도를 감지하고 그와 연관된 적어도 하나의 가속도 출력을 출력하기 위한 가속도계, 디바이스의 회전을 감지하고 그와 연관된 적어도 하나의 각속도 출력을 출력하기 위한 적어도 하나의 각속도 센서, 및 디바이스의 포워드 포인팅 방향을 결정하기 위해 가속도 출력 및 적어도 하나의 각속도 출력을 처리하기 위한 프로세싱 유닛을 포함한다.
다른 실시예에 따라, 디바이스는 디바이스의 가속도를 감지하고 그와 연관된 적어도 하나의 가속도 출력을 출력하도록 구성된 가속도계, 디바이스의 회전을 감지하고 그와 연관된 적어도 하나의 각속도 출력을 출력하도록 구성된 적어도 하나의 센서, 및 디바이스의 포워드 포인팅 방향을 결정하기 위해 가속도 출력 및 적어도 하나의 각속도 출력을 처리하도록 구성된 프로세싱 유닛을 포함하고, 디바이스의 포워드 포인팅 방향의 결정은 처리된 출력들 및 중력 상수를 사용해서 상기 디바이스의 회전 중심의 계산에 기초하며, 계산은, 각속도 출력에 기초한 각속도 행렬; 각속도 출력에 기초한 각가속도 행렬; 기준의 지면 프레임(an earth frame)에 대한 기준의 디바이스 프레임을 정의하기 위한 각속도 행렬 및 각가속도 행렬에 기초한 방향 코사인 행렬; 및 가속도 출력에 기초한 선가속도를 사용한다.
또 다른 예시적인 실시예에 따라, 디바이스는 가속도계, 적어도 하나의 다른 센서, 및 가속도계 및 적어도 하나의 다른 센서로부터의 출력들을 사용해서 디바이스의 기준의 사용자 프레임에 대한 디바이스의 기준의 바디 프레임(a body frame)을 정의하는 방향 코사인 행렬을 추정하도록 구성된 프로세서를 포함한다. 적어도 하나의 다른 센서는, 예를 들어, 자력계, 자이로스코프, 회전 센서 또는 이러한 센서들의 임의의 조합일 수 있다.
또 다른 예시적인 실시예에 따라, 시스템은 가속도계, 적어도 하나의 다른 센서, 및 가속도계 및 적어도 하나의 다른 센서로부터의 출력들을 사용해서 디바이스의 기준의 사용자 프레임에 대한 기준의 바디 프레임을 정의하는 방향 코사인 행렬을 추정하도록 구성된 프로세서를 포함한다. 적어도 하나의 다른 센서는, 예를 들어, 자력계, 자이로스코프, 회전 센서 또는 이러한 센서들의 임의의 조합일 수 있다. 가속도계 및 적어도 하나의 다른 센서는 핸드헬드 디바이스의 하우징 내에 배치될 수 있다. 프로세서는 핸드헬드 디바이스 내의 동일한 하우징 내에 위치하거나, 또는 다른 디바이스, 예를 들어, 시스템 컨트롤러 또는 게임 콘솔에 위치할 수 있으며, 그 후 방향 코사인 행렬(또는 핸드헬드 디바이스의 포워드 포인팅 방향을 결정하는데 사용될 수 있는 다른 파라미터)이 계산되는 가속도계 및 적어도 하나의 다른 센서로부터의 출력들을 수신할 수 있다.
첨부 도면들은 예시적인 실시예들을 도시한다.
도 1은 엔터테인먼트 시스템을 위한 종래의 리모트 컨트롤 유닛을 도시한다.
도 2는 예시적인 실시예들이 구현될 수 있는 일례의 미디어 시스템을 도시한다.
도 3은 본 발명의 예시적인 실시예에 따른 3D 포인팅 디바이스를 도시한다.
도 4는 2개의 회전 센서들 및 하나의 가속도계를 포함하는 도 4의 3D 포인팅 디바이스의 컷어웨이 뷰(a cutaway view)를 도시한다.
도 5는 다른 예시적인 실시예에 따른 3D 포인팅 디바이스를 도시한다.
도 6은 예시적인 실시예에 따른 "10 풋" 인터페이스의 파트로서 사용되는 도 5의 3D 포인팅 디바이스를 도시한다.
도 7은 일 실시예에 따른 포워드 포인팅 방향을 결정하는데 사용될 수 있는 기준의 사용자 프레임, 회전 중심, 및 기준의 바디 프레임 간의 일례의 관계를 도시한다.
도 8은 일 실시예에 따른 포워드 포인팅 방향을 결정하기 위한 일례의 방법을 도시한 흐름도이다.
도 9는 예시적인 실시예에 따른 3D 포인팅 디바이스의 하드웨어 소자들을 도시한다.
본 발명의 이하의 상세한 설명은 첨부 도면들과 관련된다. 상이한 도면들에서의 동일한 참조 부호들은 동일하거나 유사한 요소들을 나타낸다. 또한, 이하의 상세한 설명은 본 발명을 제한하지 않는다. 대신, 본 발명의 범위는 첨부된 청구항들에 의해 정의된다.
예시적인 실시예들은 디바이스들, 예를 들어, 포인팅 디바이스들 또는 3D 포인팅 디바이스들(하나의 보조 기능으로서 포인팅 입력을 제공하도록 동작해야 하는 디바이스들, 예를 들어, 리모트 컨트롤, 휴대 전화, 핸드헬드 컴퓨팅 디바이스 등을 포함함)이 오퍼레이터가 디바이스를 어떻게 사용하는 지에 기초하여 포인팅의 최적 포워드 방향을 자동으로 동적으로 결정할 수 있게 한다. 포워드 방향을 동적으로 결정함으로써, 디바이스의 성능이 향상될 수 있다. 시스템은 오직 융통성 없는 선정된 설계에만 의존하는 대신 각각의 오퍼레이터가 디바이스를 어떻게 사용하는 지를 해석한다. 그러나, 이러한 실시예들이 양호한(또는 잠정적인) 포워드 포인팅 방향을 사용자에게 나타내는 기계적인 설계들과 함께 사용될 수 있으면서, 동시에, 명백한 포워드 포인팅 방향이 없는 기계적인 설계들, 예를 들어, 구형(공) 하우징을 가진 디바이스에서도 유용함을 주지해야만 한다.
예시적인 실시예들을 상세히 설명하기 전에, 본 설명에 대한 일부 문맥을 제공하기 위해, 본 발명이 구현될 수 있는 일례의 종합 미디어 시스템(200)이 먼저 도 2와 관련하여 기술될 것이다. 그러나, 본 발명이 이러한 타입의 미디어 시스템의 구현으로만 제한되지 않으며 더 많은 또는 더 적은 컴포넌트들이 그 안에 포함될 수 있음을 당업자는 알 것이다. 입력/출력(I/O) 버스(210)는 미디어 시스템(200)에서 시스템 컴포넌트들을 함께 연결한다. I/O 버스(210)는 미디어 시스템 컴포넌트들 간에 신호들을 라우팅하기 위한 다수의 상이한 메커니즘들 및 기술들 중 임의의 메커니즘 및 기술을 나타낸다. 예를 들어, I/O 버스(210)는, 적합한 수의, 오디오 신호들을 라우팅하는 독립적인 오디오 "패치" 케이블들, 비디오 신호들을 라우팅하는 동축 케이블들, 제어 신호들을 라우팅하는 투-와이어 직렬 회선들(two-wire serial lines) 또는 적외선 또는 무선 주파수 트랜시버들, 광 섬유 또는 다른 타입들의 신호들을 라우팅하는 임의의 다른 라우팅 메커니즘들을 포함할 수 있다.
본 예시적인 실시예에서, 미디어 시스템(200)은 I/O 버스(210)에 연결된 텔레비전/모니터(212), 비디오 카세트 레코더(VCR)(214), 디지털 비디오 디스크(DVD) 레코더/재생 디바이스(216), 오디오/비디오 튜너(218) 및 콤팩트 디스크 플레이어(220)를 포함한다. VCR(214), DVD(216) 및 콤팩트 디스크 플레이어(220)는 단일 디스크 또는 단일 카세트 디바이스일 수 있으며, 또는 대안으로 다중 디스크 또는 다수의 카세트 디바이스들일 수 있다. 이들은 독립적인 유닛들일 수 있으며, 또는 함께 통합될 수 있다. 또한, 미디어 시스템(200)은 마이크로폰/스피커 시스템(222), 비디오 카메라(224) 및 무선 I/O 제어 디바이스(226)를 포함한다. 본 발명의 예시적인 실시예들에 따라, 무선 I/O 제어 디바이스(226)는 후술되는 예시적인 실시예들 중 하나에 따른 3D 포인팅 디바이스이다. 무선 I/O 제어 디바이스(226)는, 예를 들어, IR 또는 RF 송신기 또는 트랜시버를 사용해서 엔터테인먼트 시스템(200)과 통신할 수 있다. 대안으로, I/O 제어 디바이스는 선을 통해 엔터테인먼트 시스템(200)에 연결될 수 있다.
엔터테인먼트 시스템(200)은 시스템 컨트롤러(228)를 또한 포함한다. 본 발명의 한 예시적인 실시예에 따라, 시스템 컨트롤러(228)는 복수의 엔터테인먼트 시스템 데이터 소스들로부터 이용가능한 엔터테인먼트 시스템 데이터를 저장 및 디스플레이하고, 시스템 컴포넌트들 각각과 연관된 매우 다양한 피처들을 제어하도록 동작한다. 도 2에 도시된 바와 같이, 시스템 컨트롤러(228)는, I/O 버스(210)를 통해, 필요한 경우, 시스템 컴포넌트들 각각과 직접 또는 간접적으로 연결된다. 한 예시적인 실시예에서, I/O 버스(210) 외에 또는 그 대신, 시스템 컨트롤러(228)는, IR 신호들 또는 RF 신호들을 통해 시스템 컴포넌트들과 통신할 수 있는, 무선 통신 송신기(또는 트랜시버)로 구성된다. 제어 매체와 무관하게, 시스템 컨트롤러(228)는 후술되는 그래픽 사용자 인터페이스를 통해 미디어 시스템(200)의 미디어 컴포넌트들을 제어하도록 구성된다.
도 2에 더 도시된 바와 같이, 미디어 시스템(200)은 각종 미디어 소스들 및 서비스 제공자들로부터 미디어 아이템들을 수신하도록 구성될 수 있다. 본 예시적인 실시예에서, 미디어 시스템(200)은 이하의 소스들: 케이블 방송(230), (예를 들어, 위성 접시를 통한) 위성 방송(232), (예를 들어, 공중선 안테나를 통한) 방송 텔레비전 네트워크들(234)의 VHF(very high frequency) 또는 UHF(ultra high frequency) 무선 주파수 통신, 전화망(236) 및 케이블 모뎀(238)(또는 인터넷 콘텐츠의 다른 소스) 중 임의의 소스 또는 모든 소스들로부터 미디어 입력을 수신하고, 선택적으로 정보를 상기 소스들 중 임의의 소스 또는 모든 소스들에 송신한다. 도 2와 관련하여 도시 및 기술된 미디어 컴포넌트들 및 미디어 소스들은 순수하게 일례이며 미디어 시스템(200)은 더 많은 또는 더 적은 미디어 컴포넌트들 및 미디어 소스들을 포함할 수 있음을 당업자는 알 것이다. 예를 들어, 시스템으로의 다른 타입들의 입력들은 AM/FM 라디오 및 위성 라디오를 포함한다.
본 일례의 엔터테인먼트 시스템 및 그와 연관된 프레임워크들에 관한 더 많은 세부 사항들은 참조용으로 상기 인용된 미국 특허 출원 "미디어 아이템들을 조직, 선택 및 개시하기 위한 줌 가능 그래픽 사용자 인터페이스를 가진 제어 프레임워크(A Control Framework with a Zoomable Graphical User Interface for Organizing, Selecting and Launching Media Items)"에서 발견될 수 있다. 대안으로, 본 발명에 따른 리모트 디바이스들은 다른 시스템들, 예를 들어, 디스플레이, 프로세서 및 메모리 시스템을 포함하는 컴퓨터 시스템들과 함께 또는 각종 다른 시스템들 및 애플리케이션들과 함께 사용될 수 있다.
배경 섹션에서 상술된 바와 같이, 실시예들이 3D 포인팅 디바이스들로의 구현으로 제한되지 않더라도, 3D 포인터들로서 동작하는 리모트 디바이스들은 본 명세서의 특정 관심사이다. 이 3D 포인팅 디바이스들은, 이동, 예를 들어, 제스처들 또는 포인팅의 사용자 인터페이스에 대한 커맨드들로의 번역을 가능케 한다. 일례의 3D 포인팅 디바이스(400)가 도 3에 도시되어 있다. 3D 포인팅의 사용자 이동은, 예를 들어, 3D 포인팅 디바이스(400)의 x-축 자세(롤), y-축 엘리베이션(피치) 및/또는 z-축 헤딩(요) 움직임의 조합의 관점으로 정의될 수 있다. 또한, 본 발명의 일부 예시적인 실시예들은 또한 커서 이동 또는 다른 사용자 인터페이스 커맨드들을 생성하도록 x, y, 및 z 축들을 따라 3D 포인팅 디바이스(400)의 선형 이동을 측정할 수 있다. 도 3의 예시적인 실시예에서, 다른 예시적인 실시예들이 다른 물리적인 구성들을 포함할 것이더라도, 3D 포인팅 디바이스(400)는 스크롤 휠(406) 뿐만 아니라 2개의 버튼들(402 및 404)을 포함한다. 본 발명의 예시적인 실시예들에 따라, 3D 포인팅 디바이스(400)는 디스플레이(408)의 앞에서 사용자에 의해 유지될 것이고, 3D 포인팅 디바이스(400)의 움직임은, 예를 들어, 디스플레이(408)에서 커서(410)를 이동시키는 데에, 디스플레이(408)에 디스플레이된 정보와 상호 작용하는 데에 사용될 수 있는 출력으로 3D 포인팅 디바이스에 의해 번역될 것이라고 예상된다. 예를 들어, y-축에 대한 3D 포인팅 디바이스(400)의 회전은 3D 포인팅 디바이스(400)에 의해 감지될 수 있으며, 디스플레이(408)의 y2 축을 따라 커서(410)를 이동시키기 위해 시스템에 의해 사용될 수 있는 출력으로 번역될 수 있다. 마찬가지로, z-축에 대한 3D 포인팅 디바이스(400)의 회전은 3D 포인팅 디바이스(400)에 의해 감지될 수 있으며, 디스플레이(408)의 x2 축을 따라 커서(410)를 이동시키기 위해 시스템에 의해 사용될 수 있는 출력으로 번역될 수 있다. 3D 포인팅 디바이스(400)의 출력은, 예를 들어, 커서 페이딩(cursor fading), 볼륨 또는 미디어 트랜스포트(재생, 멈춤, 패스트-포워드(fast-forward) 및 리와인드(rewind))를 제어할 수 있는, 커서 이동이 아닌(또는 그 외의) 다수의 방법들로 디스플레이(408)와 상호 작용하는데 사용될 수 있음을 알 것이다. 입력 커맨드들은, 커서 이동 외의 동작들, 예를 들어, 디스플레이의 특정 영역에서의 줌 인 또는 줌 아웃을 포함할 수 있다. 커서는 가시적일 수도 가시적이지 않을 수도 있다. 유사하게, 3D 포인팅 디바이스(400)의 x-축에 대해 감지된 3D 포인팅 디바이스(400)의 회전은 사용자 인터페이스에 입력을 제공하기 위해 y-축 및/또는 z-축 회전 외에, 또는 그 대안으로서, 사용될 수 있다.
본 발명의 하나의 순전히 예시적인 예시적인 실시예에 따라, 2개의 회전 센서들(420 및 422) 및 하나의 가속도계(424)가 도 4에 도시된 바와 같이 3D 포인팅 디바이스(400)의 센서들로서 사용될 수 있다. 본 예시적인 실시예가 관성 센서들을 사용하더라도, 본 발명은 그렇게 제한되지 않으며 다른 예시적인 실시예들과 함께 사용될 수 있는 다른 타입들의 센서들의 일례들이 이하에 제공됨을 알 것이다. 회전 센서들(420 및 422)은, 예를 들어, 아날로그 디바이스들(Analog Devices)에 의해 만들어진 ADXRS150 또는 ADXRS401을 사용해서 구현될 수 있다. 다른 타입들의 회전 센서들이 회전 센서들(420 및 422)로서 사용될 수 있으며, ADXRS150 및 ADXRS401이 순전히 예시적인 일례로서 사용됨을 당업자는 알 것이다. 전형적인 자이로스코프들과 달리, 이러한 회전 센서들은 오직 한 방향을 따라서만 울려 퍼질 수 있도록 한 프레임에 부착된 공명 덩어리(a resonating mass)를 제공하기 위해 MEMS 기술을 사용한다. 센서가 부착된 바디가 센서의 감지 축 주위에서 회전될 때, 공명 덩어리가 변위된다. 이러한 변위는 감지 축을 따른 회전과 연관된 각속도를 결정하기 위해 코리올리 가속 효과(Coriolis acceleration effect)를 사용해서 측정될 수 있다. 회전 센서들(420 및 422)이 (예를 들어, ADXRS150들로서) 단일 감지 축을 가지면, 이들은 감지 축들이 측정될 회전들에 따라 정렬되도록 3D 포인팅 디바이스(400)에서 장착될 수 있다. 본 발명의 본 예시적인 실시예에 따라, 이는, 도 4에 도시된 바와 같이, 감지 축이 y-축과 평행하도록 회전 센서(422)가 장착되고, 감지 축이 z-축과 평행하도록 회전 센서(420)가 장착됨을 의미한다. 다른 일례의 구현들을 야기할 수 있는 상이한 센서 패키지들이 이용가능할 수 있음을 알 것이다. 예를 들어, 2개의 1-D 회전 센서들(420 및 422)은, 예를 들어, y 및 z 축들을 따라 회전 움직임의 출력들을 제공하는 단일 2D 회전 센서 패키지로 교체될 수 있다. 한 일례의 3-D 회전 센서는 Invensense MPU-3000 이지만, 다른 센서들/센서 패키지들이 사용될 수도 있음을 알 것이다. 또한, 3-축 회전 센서 및 3-축 가속도계를 가진 Invensense MPU-6000과 같이, 동일한 패키지 내에 다수의 센서 타입들을 가진 센서 패키지들이 있다. 회전 센서들(420 및 422)은 1-D, 2-D 또는 3-D 센서들일 수 있다. 가속도계(424)는, 예를 들어, 3-축 선형 가속도계일 수 있지만, 디바이스가 중력을 측정하고 있으며 나머지 3번째 값을 수학적으로 계산하고 있다고 가정함으로써 2-축 선형 가속도계가 사용될 수 있다. 또한, 가속도계(들) 및 회전 센서(들)가 단일 센서 패키지로 함께 패키지될 수 있다. 자력계(도시되지 않음)는 센서 세트에 추가될 수 있으며, 또는 도시된 센서들 중 하나의 또는 그 이상의 센서들을 대체할 수 있다. 컴포넌트들은 별개의 물리적 컴포넌트들일 수 있으며, 또는 서로 전체적으로 또는 부분적으로 통합될 수 있다. 추가 세부 사항들은 도 9와 관련하여 후술된다. 센서들 및 센서 패키지들의 다른 변형들이 또한 이러한 예시적인 실시예들과 함께 사용될 수 있다.
예시적인 실시예들은 도 3 및 도 4에 도시된 산업적인 설계로만 제한되지 않으며, 대신 임의의 산업적인 폼 팩터로 전개될 수 있으며, 그 다른 일례는 도 5에 도시된다. 도 5의 예시적인 실시예에서, 3D 포인팅 디바이스(500)는 링 형태 하우징(501), 2개의 버튼들(502 및 504) 뿐만 아니라 스크롤 휠(506) 및 그립(507)을 포함하지만, 다른 예시적인 실시예들은 다른 물리적인 구성들을 포함할 수 있다. 2개의 버튼들(502 및 504) 및 스크롤 휠(506)을 포함하는 영역(508)은 본 명세서에서 "제어 영역"(508)이라고 하며, 링 형태 하우징(501)의 외부에 배치된다. 본 예시적인 실시예에 관한 더 많은 세부 사항들은, 그 내용이 본 명세서에 참조용으로 인용된, "3D 포인팅 디바이스들(3D Pointing Devices)"이라는 제목으로, 2006년 7월 3일에 출원된, 미국 특허 출원 일련 번호 제11/480,662호에서 발견될 수 있다. 이 디바이스들은, 예를 들어, 도 6에 도시된 바와 같이, 전형적인 거실에서 소파 및 텔레비전 간의 소위 "10 피트" 인터페이스의 사용을 포함하는 다수의 애플리케이션들을 가진다. 3D 포인팅 디바이스(500)가 상이한 위치들 사이에서 이동함에 따라, 3D 포인팅 디바이스(200) 내의 하나의 또는 그 이상의 센서들에 의해 이동이 검출되고 텔레비전(620)(또는 연관된 시스템 컴포넌트, 예를 들어, 셋탑 박스(도시되지 않음))에 송신된다. 3D 포인팅 디바이스(500)의 이동은, 예를 들어, 텔레비전(620)에 디스플레이된 커서(640)의 이동으로 번역될 수 있으며, 사용자 인터페이스와 상호 작용하는데 사용된다. 사용자가 3D 포인팅 디바이스(500)를 통해 상호 작용할 수 있는 일례의 사용자 인터페이스의 세부 사항들은, 예를 들어, 그 내용이 본 명세서에 참조용으로 인용된, "사용자 인터페이스들의 글로벌 내비게이션 객체들(Global Navigation Objects in User Interfaces)"이라는 제목으로, 2006년 5월 19일에 출원된, 미국 특허 출원 일련 번호 제11/437,215호 뿐만 아니라, 상기 인용된 미국 특허 출원 일련 번호 제10/768,432호에서 발견될 수 있다.
본 예시적인 실시예들에 따라 일례의 3D 포인팅 디바이스들(400)을 구현할 때 직면하는 한 도전 사항은, 너무 비싸지 않으면서, 동시에, 3D 포인팅 디바이스(400)의 이동 간의 고도의 상관 관계, 사용자 인터페이스가 3D 포인팅 디바이스의 해당 특정 이동에 어떻게 반응할 것인지에 관한 사용자 예상 및 이동에 응답하는 실제 사용자 인터페이스 수행을 제공하는 컴포넌트들, 예를 들어, 회전 센서들(502 및 504)을 사용하는 것이다. 예를 들어, 3D 포인팅 디바이스(400)가 이동중이지 않으면, 커서가 스크린에서 표류하지 않을 것이라는 예상을 사용자가 할 가능성이 있다. 마찬가지로, 사용자가 순전히 y-축 주위에서 3D 포인팅 디바이스(400)를 회전하면, 사용자는 디스플레이(408)에서의 결과적인 커서 이동이 임의의 유효한 x-축 성분을 포함하는 것을 볼 것을 기대하지 않을 가능성이 있다.
본 발명의 예시적인 실시예들의 이러한 그리고 여타 양상들을 달성하기 위해, 센서들(420, 422 및 424) 중 하나의 또는 그 이상의 센서들의 출력들을 조정하는데 사용되고/사용되거나 센서들(420, 422 및 424)의 출력들에 기초하여 프로세서가 사용자 인터페이스에 대한 적합한 출력을 결정하는데 사용되는 입력의 파트로서 사용되는 각종 측정들 및 계산들이, 예를 들어, 핸드헬드 디바이스(400)에 의해, 실행된다. 이 측정들 및 계산들은, 2개의 카테고리들: (1) 3D 포인팅 디바이스(400)에 내재된 요인들, 예를 들어, 디바이스(400)에서 사용되는 특정 센서들(420, 422 및 424)과 연관된 오류들 또는 센서들이 디바이스(400)에 장착되는 방법 및 (2) 3D 포인팅 디바이스(400)에 내재하지 않지만, 대신 사용자가 3D 포인팅 디바이스(400)를 사용하는 방식과 연관된 요인들, 예를 들어, 선가속도, 기울임, 및 떨림으로 대략 나누어지는 요인들을 보상하는데 사용된다. 이러한 효과들을 처리하기 위한 일부 일례의 기술들은 상기 참조용으로 인용된 '518 특허에 기술되어 있다. '518 특허가 디바이스의 사용자의 기울기를 보상하기 위한 일례의 기술을 기술하지만, 본 명세서에 기술된 기울기 보상 메커니즘은, 사용자가 디바이스의 미리 설계된 "프론트" 엔드를 사용해서 일반적으로 포인팅을 한다고 여전히 생각한다. 그러나, 이하의 예시적인 실시예들은, 사용자가 임의의 배향(orientation)으로 디바이스를 잡을 수 있게 하는 디바이스의 포워드 포인팅 방향을 동적으로 결정하기 위한 추가 기술들을 제공한다. 예를 들어, 구(sphere)가 픽업될 수 있으며, 구 모양 표면 상의 임의의 포인트가 예를 들어, 사용자의 손목으로부터 항상 포인팅하는 "포워드 포인팅 방향"이다. 이는, 디바이스의 더 편안한 사용, 내재된 방향들을 갖지 않을 수 있는 디바이스들의 사용, 또는 잡기에 적합할 수 있는 다수의 배향들을 가진 디바이스들의 사용을 허용한다.
'518 특허에 기술된 기울기 보상 및 후술되는 예시적인 실시예들에 따른 동적 포워드 방향은 서로 보완적이다. 기울기 보상은 디바이스가 포인팅 동작을 변경하지 않고 포워드 포인팅 방향 주위에서 자유롭게 회전할 수 있게 한다. 동적 포워드 방향 결정은, 사용자가 임의의 배향으로 객체를 잡을 수 있게 하며, 동일한 방식으로 작업하게 한다. 회전들은 3개의 자유도들(즉, 오일러 표현(Euler representation)의 요(yaw), 피치(pitch) 및 롤(roll))을 가져서, 기울기 보상들은 통상 1 차원(즉, 롤)에 대한 변경들을 허용하고, 후술되는 바와 같은 동적 포워드 방향 결정은 모든 3개의 차원들에 대한 변경들을 허용한다.
동적 포워드 포인팅 방향 결정
디바이스, 예를 들어, 리모트 컨트롤 또는 3D 포인팅 디바이스의 포워드 포인팅 방향을 동적으로 결정하기 위한 예시적인 실시예를 이제 참조해서, 리모트 컨트롤(400, 500)(또는 상이한 산업적인 설계를 가진 다른 리모트 컨트롤)이 도 7에 도시된 바와 같이 공간을 이동한다고 생각해 보라. 리모트 컨트롤과 연관된 고정된 사용자 프레임(701)은 임의대로 결정될 수 있지만, 본 실시예는, 중력 벡터(705)가 사용자-프레임 z-축에 정렬된다고 추정한다. 자주, 사용자-프레임 x-축은 자북(magnetic north)에 정렬된다. 본 일례의 리모트 컨트롤은 벡터 r(703)에 의해 표현된 바와 같이 공간을 선형으로 이동한다. 통상 벡터 r(703)은 오퍼레이터의 손목의 로케이션을 통상 나타낸다. 리모트 컨트롤 디바이스는 회전 중심으로부터 멀리 벡터 c(704)에 위치하고, 또한 리모트 컨트롤 바디 프레임(702)의 원점인 포인트 p(705)에 상주한다. 벡터 c는 포인팅의 희망 포워드 방향으로 간주된다.
도 7에 도시된 명명법, 축들 및 변수들은 디바이스의 회전의 포워드 방향을 동적으로 결정하기 위해 실시예들이 사용할 수 있는 각종 알고리즘들 및 수학적 기법들을 설명하도록 이하의 단락들에서 사용될 것이다. 또한, 이하의 표시 관례들은 다음 알고리즘적 설명에 대해 정의된다:
소문자 글자들은 스칼라 변수들(scalar variables)을 나타낸다: x, y, z
소문자 굵은 글자들은 벡터들을 나타낸다: x, y, z
대문자 굵은 글자들은 행렬들을 나타낸다: X, Y, Z
벡터들은 열 벡터들(N × 1 행렬)로 추정된다
xy = x
Figure 112013000359117-pct00001
y는 벡터들 x 및 y의 내적(dot product)이다
Figure 112013000359117-pct00002
는 벡터 v의 크기이다
x×y는 벡터들 x 및 y의 외적(cross product)이다
v는 외적 행렬이다
Figure 112013000359117-pct00003
Xy는 행렬 X 및 벡터 y의 행렬 곱셈이다
XT는 행렬 전치(matrix transpose)이다
I는 단위 행렬(identity matrix)이다
Figure 112013000359117-pct00004
Figure 112013000359117-pct00005
는 y의 방향의 단위 벡터이다
<q0, v>는 스칼라 성분 q0 및 길이 3 벡터 v를 가진 사원수(quaternion)이다
Vector(q) = v 여기서 q는 사원수 <q0, v> 이다
qⓧp는 q 및 p의 사원수 곱셈이다
q*는 q: <q0, v>* = <q0, -v>의 사원수 공액(quaternion conjugate)이다
bx는 바디-프레임 좌표들에서 정의된 벡터 x 이다
ux는 사용자-프레임 좌표들에서 정의된 벡터 x 이다
길이 2 벡터 v는 (vx, vy)라고 하는 서브컴포넌트들을 갖는 것으로 추정된다
길이 3 벡터 v는 (vx, vy, vz)라고 하는 서브컴포넌트들을 갖는 것으로 추정된다
Figure 112013000359117-pct00006
는 v의 미분(derivative)이다
Figure 112013000359117-pct00007
는 v의 2차 도함수(second derivative)이다
예시적인 실시예에 따라, 리모트 컨트롤은 상술된 센서들(또는 다른 센서 패키지들)을 사용해서 디바이스의 움직임을 측정한다. (핸드헬드 디바이스 자체에서 또는 핸드헬드 디바이스와 통신하는 다른 디바이스에서) 프로세서에 의해 실행되는 움직임 프로세싱 알고리즘은 그 후 SI 유닛들 등의 더 의미 있는 형태들로 미가공 센서 데이터(raw sensor data)를 변환할 수 있다. 움직임 프로세싱은 가변 바이어스 오프셋(제로 레이트 오프셋, 제로-g 오프셋, 제로 가우스 오프셋), 교차축 효과(cross-axis effects), 스케일 변화, 비선형성, 온도 효과 및 에이징 효과(aging effects) 중 하나 또는 그 이상을 포함하는 바람직하지 않은 센서 특징들을 제거할 수 있다.
움직임 프로세싱은 그 후 회전 중심을 결정하기 위해 사용자가 디바이스를 움직이고 있는 동안 데이터를 수집한다. 본 일례에서, 더 상세히 후술되는 바와 같이 다수의 회전 중심들이 존재하는 상황들을 포함하도록 본 기술들이 확장될 수 있더라도, 단일 회전 중심이 존재한다고 가정된다. 상술된 바와 같이, 회전 중심(710)은 사용자 프레임의 원점(711)으로부터 변위 r(703)에 존재한다. 그 후 리모트 컨트롤 디바이스는 r(703)로부터 변위 c(704)에 존재한다. r은 사용자 프레임에서 ur로서 정의되고, c는 바디 프레임에서 bc로서 정의된다고 하자. 여기서 "u"는 기준의 사용자 프레임을 나타내고, "b"는 기준의 바디 프레임을 나타낸다.
Figure 112013000359117-pct00008
를 사용자 프레임에 대한 바디 프레임을 정의하는 방향 코사인 행렬(DCM)이라고 하자. 그 후, 디바이스의 로케이션 up는 다음과 같이 기록될 수 있다:
Figure 112013000359117-pct00009
수학식 1의 미분을 취함으로써, 이하의 식이 구해진다
Figure 112013000359117-pct00010
다시 미분하면, 이하의 식이 구해진다:
Figure 112013000359117-pct00011
리모트 컨트롤에 의해 측정된 선가속도 ba는 다음과 같이 주어진다:
Figure 112013000359117-pct00012
여기서, ug는 지구의 중력, 명목상 (0, 0, -9.8) m/s2 이다.
Figure 112013000359117-pct00013
를 이 수학식으로 대체하면 이하의 식이 산출된다:
Figure 112013000359117-pct00014
각속도 행렬 및 각가속도 행렬은 다음과 같이 정의된다:
Figure 112013000359117-pct00015
여기서,
Figure 112013000359117-pct00016
대체하여, 다음의 식을 얻을 수 있다:
Figure 112013000359117-pct00017
그리고:
Figure 112013000359117-pct00018
ba에 대해 수학식 8을 다시 수학식 4로 대체하면 이하의 식이 산출된다:
Figure 112013000359117-pct00019
그 후, 움직임 프로세싱 유닛은 바디 프레임의 원점에 대한 회전 중심의 벡터 형태인, bc를 추정한다. 대안으로, bc는 바디 프레임 좌표들의 회전 중심의 포인트이다. 이 추정을 실행하기 위한 다수의 수치 방법들이 존재한다. 필수적이지는 않더라도, 본 실시예는 계산 복잡성을 간소화하기 위한 수개의 가정들을 실행한다. 평균하여
Figure 112013000359117-pct00020
이기에,
Figure 112013000359117-pct00021
이라고 가정하자. 움직임 프로세싱이 일정한 단일 회전 중심을 찾고자 시도하고 있기 때문에,
Figure 112013000359117-pct00022
Figure 112013000359117-pct00023
이라고 가정하자. 수학식 9는 그 후 다음과 같이 간소화된다:
Figure 112013000359117-pct00024
이 수학식 10은 양
Figure 112013000359117-pct00025
이 0에 다가감에 따라 정밀함을 잃게 되거나 또는 등급(rank)을 잃는다. 다시 말해서, 디바이스가 더 큰 각 움직임들, 각속도 또는 각가속도를 경험하고 있을 때, 이 수학식은 더 나은 추정치들을 산출한다.
예를 들어, 센서들(420, 422)로부터의 각속도의 측정치를 사용해서, 프로세서는
Figure 112013000359117-pct00026
를 계산할 수 있다.
Figure 112013000359117-pct00027
에 대한 값은 전형적인 센서 퓨전 방법을 사용해서 계산될 수 있다. c에 대한 다수의 값들은 하나의 추정치를 산출하도록 결합될 수 있다. 다수의 c 값들의 결합은, 예를 들어, 고전적인 로우 패스 필터링(low-pass filtering), 적응 필터링, 칼만 필터링(Kalman filtering) 또는 베이지안 필터링(Bayesian filtering)을 포함하는 각종 방법들 중 하나의 또는 그 이상의 방법들을 사용해서 발생할 수 있다. 본 실시예는, 측정 오류가
Figure 112013000359117-pct00028
항의 크기로부 계산되는 칼만 필터를 사용한다.
예를 들어, 수학식 10을 사용해서 계산되는 c에 대한 추정치는 포인팅의 희망 포워드 방향으로 간주된다. 선형 가속도계가 디바이스의 중심으로부터 오프셋되면, 오프셋은 센서 변위를 참작하기 위해 c의 이 값에 추가될 수 있다. 본 실시예가 길이 3 벡터 c에 대해 필터링을 실행하더라도, 구 좌표들(spherical coordinates)을 포함하는 다른 벡터 표현들이 사용될 수 있다.
이전 예시적인 실시예는 계산에서
Figure 112013000359117-pct00029
에 대한 값을 사용했다. 다수의 움직임 디바이스들에서, 이 값은 정확하지 않다. 제2 실시예는 짧은 시간 기간에 의해 분리된 2개의 상이한 측정치들을 결합함으로써
Figure 112013000359117-pct00030
에 대한 종속성을 제거한다. 시스템이 반복해서
Figure 112013000359117-pct00031
를 측정하기에, 시스템은 통합을 통해 Q의 변경을 계산할 수 있다. 간단한 오일러 통합을 사용해서,
Figure 112013000359117-pct00032
수학식 11이 또한 작은 각 근사치를 추정함을 당업자는 주목할 것이다. 결과 통합된 Q는 완전히 정규화되지 않을 수 있다.
이 제2 실시예는 유사-사다리꼴 통합(psuedo-trapezoidal integration)을 야기하는 통합을 실행하기 위해 평균 각속도를 사용한다:
Figure 112013000359117-pct00033
통합을 실행하기 위해 2개의 측정치들을 캡처하고 평균 각속도를 사용함으로써, 이하의 식이 구해진다:
Figure 112013000359117-pct00034
Q에 대한 처음 수학식을 풀면, 이하의 식이 구해진다:
Figure 112013000359117-pct00035
이 값을 ba2로 대체하면, 이하의 식이 산출된다:
Figure 112013000359117-pct00036
따라서, 이는 디바이스 bc의 회전 중심을 결정하기 위한 다른 기술을 제공한다.
수학식 15의 이 공식은 이전 실시예 보다 측정 노이즈에 더 당하기 쉽지만, 더 이상 각위치 추정치에 좌우되지 않는다. 포인팅의 포워드 방향의 추정치가 일반적으로 시간 임계적이지 않기에, 센서 노이즈에 의해 도입된 오류를 최소화하기 위해 이 계산 전에 추가 필터링이 적용될 수 있다. 필터링이 적용되면, 상이한 움직임 측정치들이 시간에 따라 정렬됨을 보장하도록 주의해야만 한다.
앞선 2개의 실시예들은 포인팅의 포워드 방향을 결정하기 위해 회전 중심을 사용했다. 제3 실시예는 포인팅의 포워드 방향을 결정하기 위해 디바이스의 평균 각위치를 사용한다. 포워드 방향은 포인팅 왜곡을 최소화하고 해상도(resolution)를 최대화하기 위해 디바이스가 어디를 포인팅하고 있는 지에 대한 단기 히스토리를 사용함으로써 동적으로 최적화될 수 있다. 스크린이 고정된 크기이기에, 단기적으로, 스크린에 매핑하는 비교적 고정된 공간 영역이 존재할 것이다. 사용자-프레임 배향 보상의 경우, 디바이스의 평균 피치가 0이고 디바이스의 평균 요가 0일 때, 최소 왜곡 및 최대 해상도가 획득된다. 포워드 방향의 피치가 단기 히스토리에 기초하여 동적으로 조정되면, 평균 피치는 항상 거의 0에 가깝게 설정될 수 있다. 요는 동일한 방법으로 결정될 수 있다. 후술되는 결과 좌표 변환이 c를 스크린의 중심에 매핑하도록, c에 대한 추정치가 계산된다.
3개의 모든 실시예들에 있어서, 센서 오프셋에 의해 선택적으로 조정된, c에 대한 추정치는 포인팅의 새로운 포워드 방향으로서 사용될 수 있다. 그 후, 움직임 프로세싱은 리모트 컨트롤의 좌표 시스템을 조정하기 위해 포인팅의 새로운 포워드 방향을 사용한다. 원래의 바디-프레임 x-축이 포인팅의 새롭게 결정된 포워드 방향이 되도록, 움직임 프로세싱은 좌표 회전을 계산한다. 좌표 변환의 정의는 세타(theta), 포인팅의 새로운 포워드 방향에 대한 회전 각을 지정하지 않는다. 또한 배향 보상 시스템인 시스템 내에서 사용될 때, 이 회전 각에 대해 선택된 값은 최소 효과이다. 본 실시예는 포인팅의 새롭게 결정된 포워드 방향 주위에서의 회전량을 최소화하도록 세타를 결정한다. 그 후, 이 새로운 좌표 시스템은 배향 보상, 포인터 응답 커브들, 이득 조정, 버튼 움직임 억제 및 포인터 탄도(pointer ballistics)를 포함하는 다른 커서 프로세싱에 대한 기준의 바디-프레임으로서 사용된다. 커서 프로세싱은 절대 좌표들 및 포인터 정렬로의 변환을 또한 포함할 수 있다.
상술된 움직임 프로세싱이 완료되면, 결과 커서 데이터는 호스트 머신, 예를 들어, 리모트 컨트롤 디바이스에 선을 통해 또는 무선으로 연결된 시스템 컨트롤러(228)에 의해 처리된다. 호스트 머신은 커서 관리를 다루는 오퍼레이팅 시스템을 통상 포함한다. 그 후, 호스트 머신은 디스플레이(212)에 커서를 디스플레이한다.
상술된 예시적인 실시예들의 다수의 변화들 및 치환들이 가능하며 본 발명의 범위 내에 속한다. 예를 들어, 상술된 실시예들에서 포인팅의 포워드 방향을 결정하는데 사용된 회전 중심이 기준의 바디 프레임에 있더라도, 회전 중심 계산은 대안으로 사용자 프레임에서 실행될 수 있다. 움직임 프로세싱 시스템은 또한 떨림 무효화(tremor cancellation)를 실행할 수 있다. 카메라들, 광 센서들(삼각 측량(triangulation), 삼변 측량(trilateration), 다변 측량(multilateration), 도착 시간 차 및 각 변화도(angular gradient)를 포함함), 초음파(삼각 측량, 삼변 측량, 다변 측량, 도착 시간 차 및 각 변화도를 포함함), RF(삼각 측량, 삼변 측량, 다변 측량, 도착 시간 차 및 각 변화도를 포함함), 자기장(삼각 측량, 삼변 측량, 다변 측량, 도착 시간 차 및 각 변화도를 포함함), 또는
Figure 112013000359117-pct00037
또는 Ω 및 g에 대한 추정치를 유도할 수 있는 임의의 센서 시스템을 포함하는 추가 센서들이 사용될 수 있다.
움직임 프로세싱은 단일 회전 중심 대신 다양하게 링크된 회전 중심들을 계산하도록 확장될 수 있다. 본 실시예는, 대다수의 각 움직임이 손목으로부터 발생한다고 간주하며, 회전 중심은 사용자의 손목 관절에 매우 가까와야만 한다고 간주한다. 일부 사용자들은 팔꿈치 및 어깨의 더 많은 움직임을 사용할 수 있다. 다양하게 링크된 회전 중심들을 계산함으로써, 최종 손목 중심의 추정치는 더 정확할 수 있다. 대부분의 애플리케이션들은 포인팅의 포워드 방향으로서 손목 중심으로부터 디바이스까지의 벡터를 여전히 사용할 것이지만, 희망 애플리케이션에 가장 매치되도록 다른 벡터들이 선택될 수 있다. 움직임 프로세싱은 다수의 회전 중심들을 차별화하고 동적 포워드 방향을 계산할 때 이들을 상이하게 사용하도록 확장될 수 있다. 예를 들어, 손가락 움직임과 손목 회전 사이를 차별화함으로써, 손목 회전은 포인팅 방향일 것이고, 손가락 움직임은 포인팅 방향에 수직이 될 가능성이 있을 것이다.
오일러 통합이 사용되는 경우, 사다리꼴 통합(trapezoidal integration) 또는 다항식 통합(polynomial integration) 등의 대안 통합 방법들이 정확성을 향상시키기 위해 사용될 수 있다. 가정들이 유효한 지에 대한 결정을 위해 추가 측정들이 이루어질 수 있다. 가정들이 유효하지 않으면, 추정치는 무시되거나 또는 가볍게 여겨질 수 있다. 추가 프로세싱 복잡성의 경우, 가정들
Figure 112013000359117-pct00038
,
Figure 112013000359117-pct00039
Figure 112013000359117-pct00040
은 필요하지 않다. 수학식들은 회전들을 나타내기 위해 방향 코사인 행렬들(DCMs)을 사용해서 지정된다. 오일러 각들, 파울리의 스핀 행렬들(Pauli spin matrices), 축-각도(axis-angle) 및 사원수들을 포함하는 다른 표현들이 사용될 수 있다.
상술된 실시예들이 포워드 포인팅 방향이 동적으로 결정되고 "리모트 컨트롤"로서 움직임을 측정하는 디바이스와 관련되더라도, 디바이스는 임의의 폼 팩터를 가질 수 있으며, 또는 포인팅 외에 임의의 기능(들)을 실행할 수 있음을 당업자는 알 것이다. 새로운 좌표 시스템은 중력 bg 및 포인팅의 포워드 방향 bc의 외적으로서 y-축을 생성할 수 있고, 이는 bc가 bg의 방향이 아닌 한 작용할 것이다.
상술된 바에 기초하여, 핸드헬드 디바이스의 포워드 포인팅 방향을 결정하기 위한 일례의 방법은 도 8의 흐름도에 도시된 단계들을 포함할 수 있다. 단계(800)에서, 프로세서는 디바이스의 선가속도 및 디바이스의 각속도와 연관된 센서 출력들을 수신하도록 구성된다. 이 출력들로부터, 단계(802)에서 프로세서는 디바이스의 포워드 포인팅 방향을 결정하도록 더 구성된다. 일부 예시적인 실시예들에 따라, 디바이스의 포워드 포인팅 방향의 결정은, 단계(802)에서 회전 중심과 디바이스의 기준의 바디 프레임의 원점 간의 벡터를 계산함으로써 디바이스의 포워드 포인팅 방향을 결정하는데 사용되는, 디바이스의 회전 중심의 계산을 수반한다. 다른 실시예들에 따라, 다른 정보, 예를 들어, 디바이스의 평균 각위치가, 디바이스의 포워드 포인팅 방향을 유도하는데 사용될 수 있다.
상술된 예시적인 실시예들에 따른 일례의 3D 포인팅 디바이스들의 동적 포워드 포인팅 방향 결정의 설명이 제공되었으며, 도 9는 이러한 3D 포인팅 디바이스들과 연관된 일례의 하드웨어 아키텍처를 도시한다. 프로세서(1000)는 플래시 메모리(1001), 스크롤 휠(1002), JTAG(1004), LED들(1006), 스위치 행렬(1008), IR 광검출기(1010), 회전 센서(들)(1012), 가속도계(1014) 및 트랜시버(1016)를 포함하는 3D 포인팅 디바이스의 다른 소자들과 통신한다. 플래시 메모리 디바이스(1001)는 3D 포인팅 디바이스를 작동할 때 사용되는 각종 프로그램들 및/또는 데이터, 예를 들어, 상술된 바와 같은 바이어스 추정치들을 저장하기 위해 프로세서(1000)에 의해 사용될 수 있다. 스크롤 휠(1002)은, 사용자가 스크롤 휠(1002)을 시계 방향으로 또는 반시계 방향으로 회전함으로써 인터페이스에 입력을 제공할 수 있게 해주는 선택적인 입력 컴포넌트이다. JTAG(1004)는 프로세서에 프로그래밍 및 디버깅 인터페이스를 제공한다. LED들(1006)은, 예를 들어, 버튼이 눌려질 때, 사용자에게 가시적인 피드백을 제공한다. 스위치 행렬(1008)은 입력들, 예를 들어, 3D 포인팅 디바이스의 버튼이 눌려지거나 또는 해제되었다는 표시를 수신한 후, 입력들은 프로세서(1000)로 전달된다. 선택적인 IR 광검출기(1010)는 일례의 자유 공간 포인팅 디바이스가 다른 리모트 컨트롤들로부터의 IR 코드들을 학습할 수 있게 해주기 위해 제공될 수 있다. 회전 센서들(1012)은, 예를 들어, 상술된 바와 같이 3D 포인팅 디바이스의 y-축 및 z-축 회전(각 비율(angular rate))에 관한 판독들을 프로세서(1000)에 제공한다. 가속도계(1014)는, 예를 들어, 상술된 디바이스의 포워드 포인팅 방향을 계산하기 위해서 뿐만 아니라, 기울기 보상을 실행하고 회전 센서(들)(1012)에 의해 생성된 회전 판독들에 선가속도가 도입하는 오류들을 보상하기 위해 사용될 수 있는 3D 포인팅 디바이스의 선가속도에 관한 판독들을 프로세서(1000)에 제공한다. 트랜시버(1016)는, 3D 포인팅 디바이스, 예를 들어, 시스템 컨트롤러(228) 또는 컴퓨터와 연관된 프로세서와 정보를 통신하는데 사용된다. 트랜시버(1016)는, 예를 들어, 단거리 무선 통신의 블루투스 표준들에 따라 동작하는, 무선 트랜시버이거나 또는 적외선 트랜시버일 수 있다. 대안으로, 예시적인 실시예들에 따른 3D 포인팅 디바이스는 유선 커넥션을 통해 시스템들과 통신할 수 있다. 자력계(1018)는, 또한, 가속도계(1014) 및 회전 센서들(1012)과 함께, 또는 이러한 센서들 중 하나의 또는 그 이상의 센서들의 대체물로서 디바이스에 선택적으로 포함될 수 있다. 자력계는 다수의 방법들로 사용될 수 있다. 이 중에서,
Figure 112013000359117-pct00041
의 계산을 향상시키기 위해, 자이로스코프 또는 회전 센서 측정들을 향상시키기 위해, 또는 자기장에서 변경들을 검출함으로써 자이로스코프 또는 회전 센서들을 교체하기 위해 사용된다.
본 발명의 예시적인 실시예들에 따라 데이터를 처리하기 위한 시스템들 및 방법들이 메모리 디바이스에 포함된 명령들의 시퀀스들을 실행하는 하나의 또는 그 이상의 프로세서들에 의해 실행될 수 있다. 이 명령들은 보조 데이터 기억 장치(들) 등의 다른 컴퓨터 판독 가능 매체들로부터 메모리 디바이스로 판독될 수 있다. 메모리 디바이스에 포함된 명령들의 시퀀스들의 실행은, 예를 들어, 상술된 바와 같이, 프로세서가 동작하게 야기한다. 대안의 실시예들에서, 하드-와이어 회로가 본 발명을 구현하기 위해 소프트웨어 명령들 대신 또는 그와 결합해서 사용될 수 있다. 이러한 소프트웨어는, 센서들을 포함하는, 디바이스, 예를 들어, 3D 포인팅 디바이스 또는 다른 디바이스 내에 거처하는 프로세서에서 실행될 수 있으며, 또는 소프트웨어는, 센서들을 포함하는 디바이스와 통신하는, 다른 디바이스, 예를 들어, 시스템 컨트롤러, 게임 콘솔, 퍼스널 컴퓨터 등 내에 거처하는 프로세서 또는 컴퓨터에서 실행될 수 있다. 이러한 경우에, 데이터는 센서들을 포함하는 디바이스와 상술된 바와 같이 동적 포워드 포인팅 방향 추정 및 보상을 실행하는 소프트웨어를 실행하는 프로세서를 포함하는 디바이스 간에 유선으로 또는 무선으로 전송될 수 있다. 다른 예시적인 실시예들에 따라, 포워드 포인팅 방향 결정과 관련해서 상술된 프로세싱의 일부는 센서들을 포함하는 디바이스에서 실행될 수 있으며, 반면에, 프로세싱의 나머지는 센서들을 포함하는 디바이스로부터 부분적으로 처리된 데이터를 수신한 후에 제2 디바이스에서 실행된다.
상기 예시적인 실시예들이 하나의 또는 그 이상의 회전 센서들 및 가속도계를 포함하는 감지 패키지들과 관련되더라도, 예시적인 실시예들에 따른 포워드 포인팅 방향 결정 기술들은 오직 이러한 타입들의 센서들로만 제한되지 않는다. 대신, 본 명세서에 기술된 포워드 포인팅 방향 결정 추정 기술들은, 예를 들어, 오직 가속도계(들), 광학 및 관성 센서들(예를 들어, 회전 센서, 자이로스코프 또는 가속도계), 자력계 및 관성 센서들(예를 들어, 회전 센서, 자이로스코프 또는 가속도계), 자력계 및 광 센서, 또는 다른 센서 조합들을 포함하는 디바이스들에 적용될 수 있다. 또한, 본 명세서에 기술된 예시적인 실시예들이 3D 포인팅 디바이스들 및 애플리케이션들의 문맥에서 포워드 포인팅 방향 결정과 관련되더라도, 이러한 기술들은 이렇게만 제한되지 않으며, 다른 애플리케이션들, 예를 들어, 의학적인 애플리케이션들, 게임, 카메라, 군사적 애플리케이션들, 휴대 전화들 등과 연관된 방법들 및 디바이스들에서 사용될 수 있다.
상술된 예시적인 실시예들은, 제한하려는 것 보다는, 본 발명과 모두 관련하여, 설명하기 위해 의도된 것이다. 따라서, 본 발명은 당업자에 의해 본 명세서에 포함된 설명으로부터 유도될 수 있는 상세한 구현의 다양한 변동들이 가능하다. 이러한 모든 변동들 및 변경들은 이하의 청구항들에 의해 정의되는 본 발명의 범위 및 원리 내에 속한다고 생각된다. 본 출원의 설명에서 사용된 어떠한 요소, 동작, 또는 명령도 이와 같이 명백하게 달리 기술되지 않는 한 결정적이거나 또는 필수적인 것으로 해석되어서는 안 된다. 또한, 본 명세서에 사용된 단수표현("a(하나)")은 하나의 또는 그 이상의 아이템들을 포함하도록 의도된 것이다.

Claims (34)

  1. 디바이스로서,
    상기 디바이스의 가속도를 감지하고 그와 연관된 적어도 하나의 가속도 출력을 출력하기 위한 가속도계;
    상기 디바이스의 회전을 감지하고 그와 연관된 적어도 하나의 각속도 출력을 출력하기 위한 적어도 하나의 센서; 및
    상기 디바이스의 포워드 포인팅 방향을 결정하기 위해 상기 가속도 출력 및 상기 적어도 하나의 각속도 출력을 처리하기 위한 프로세싱 유닛
    을 포함하고,
    상기 디바이스의 포워드 포인팅 방향의 결정은 처리된 가속도 및 적어도 하나의 각속도 출력들 및 중력 상수를 사용해서 상기 디바이스의 회전 중심의 계산에 기초하는 디바이스.
  2. 제1항에 있어서,
    상기 계산은,
    상기 각속도 출력에 기초한 각속도 행렬;
    상기 각속도 출력에 기초한 각가속도 행렬;
    기준의 지면 프레임(an earth frame)에 대한 기준의 디바이스 프레임을 정의하기 위한 상기 각속도 행렬 및 상기 각가속도 행렬에 기초한 방향 코사인 행렬; 및
    상기 가속도 출력에 기초한 선가속도(linear acceleration)
    를 사용하는 디바이스.
  3. 제1항에 있어서,
    상기 처리는 미가공 센서 데이터(raw sensor data)를 국제 시스템(SI) 유닛 데이터로 변환하는 것을 포함하는 디바이스.
  4. 제3항에 있어서,
    상기 SI 유닛 데이터는 가변 바이어스 오프셋, 교차축 효과(cross-axis effects), 스케일 변화, 비선형성, 온도 효과 및 에이징 효과(aging effects) 중 적어도 하나를 포함하는 바람직하지 않은 센서 특징들을 제거하도록 필터링되는 디바이스.
  5. 제4항에 있어서,
    상기 프로세싱 유닛에 통신 가능하게 연결된 무선 주파수(RF) 송신기를 더 포함하는 디바이스.
  6. 제5항에 있어서,
    상기 RF 송신기는 상기 포워드 포인팅 방향 계산 결과를 호스트 머신에 송신하도록 구성되는 디바이스.
  7. 제5항에 있어서,
    상기 RF 송신기는 필터링된 데이터 및 중력 상수를 사용해서 상기 디바이스의 회전 중심의 계산에 기초하여 상기 디바이스의 포워드 포인팅 방향을 결정하기 위해 호스트 머신에 의해 사용될 상기 필터링된 데이터를 상기 호스트 머신에 송신하도록 구성되는 디바이스.
  8. 디바이스의 포워드 포인팅 방향을 결정하기 위한 방법으로서,
    상기 디바이스가 움직이고 있는 동안 상기 디바이스의 가속도 및 회전과 연관된 데이터를 수집하는 단계; 및
    상기 수집된 데이터에 기초하여 상기 디바이스의 상기 포워드 포인팅 방향을 결정하는 단계
    를 포함하고,
    상기 결정하는 단계는 상기 디바이스의 회전 중심을 계산하는 단계를 포함하고, 상기 계산은
    Figure 112017045209686-pct00057

    로서 표현될 수 있으며,
    여기서,
    Figure 112017045209686-pct00058
    는 기준의 바디 프레임 내의 상기 디바이스와 연관된 각가속도 행렬이고,
    Figure 112017045209686-pct00059
    는 기준의 상기 바디 프레임 내의 상기 디바이스와 연관된 각속도 행렬의 제곱이며,
    Figure 112017045209686-pct00060
    는 기준의 상기 바디 프레임 내의 상기 디바이스와 연관된 선가속도이고,
    Figure 112017045209686-pct00061
    는 기준의 사용자 프레임에 대한 기준의 상기 바디 프레임을 정의하는 방향 코사인 행렬이며,
    Figure 112017045209686-pct00062
    는 기준의 상기 사용자 프레임과 연관된 지구의 중력 상수인 방법.
  9. 제8항에 있어서,
    바람직하지 않은 센서 특징들을 제거하도록 상기 데이터를 필터링하는 단계를 더 포함하는 방법.
  10. 제9항에 있어서,
    상기 바람직하지 않은 센서 특징들은 가변 바이어스 오프셋, 교차축 효과, 스케일 변화, 비선형성, 온도 효과 및 에이징 효과 중 적어도 하나를 포함하는 방법.
  11. 제8항에 있어서,
    상기
    Figure 112017045209686-pct00063

    Figure 112017045209686-pct00043

    로서 표현될 수 있으며,
    여기서,
    Figure 112017045209686-pct00064
    는 기준의 상기 바디 프레임 내의 상기 디바이스의 각가속도의 x 성분이고,
    Figure 112017045209686-pct00065
    는 기준의 상기 바디 프레임 내의 상기 디바이스의 각가속도의 y 성분이며,
    Figure 112017045209686-pct00066
    는 기준의 상기 바디 프레임 내의 상기 디바이스의 각가속도의 z 성분인 방법.
  12. 제8항에 있어서,
    상기
    Figure 112017045209686-pct00067

    Figure 112017045209686-pct00044

    로서 표현될 수 있으며,
    여기서,
    Figure 112017045209686-pct00068
    는 기준의 상기 바디 프레임 내의 상기 디바이스의 각속도의 x 성분이고,
    Figure 112017045209686-pct00069
    는 기준의 상기 바디 프레임 내의 상기 디바이스의 각속도의 y 성분이며,
    Figure 112017045209686-pct00070
    는 기준의 상기 바디 프레임 내의 상기 디바이스의 각속도의 z 성분인 방법.
  13. 제8항에 있어서,
    상기 디바이스의 회전 중심 벡터의 다수의 계산들은 상기 회전 중심 벡터 계산을 최적화하기 위해 결합되는 방법.
  14. 제13항에 있어서,
    상기 결합은 로우 패스 필터링(low-pass filtering), 칼만 필터링(Kalman filtering) 및 베이지안 필터링(Bayesian filtering) 중 적어도 하나를 포함하는 방법.
  15. 제8항에 있어서,
    상기 회전 중심 벡터 계산 결과는 상기 디바이스의 중심으로부터, 상기 디바이스와 연관된, 가속도계의 오프셋 값에 기초한 오프셋인 방법.
  16. 제8항에 있어서,
    기준의 상기 바디 프레임은 상기 포워드 포인팅 방향의 계산에 기초하여 조정되는 방법.
  17. 디바이스의 포워드 포인팅 방향을 결정하기 위한 방법으로서,
    상기 디바이스가 움직이고 있는 동안 상기 디바이스의 가속도 및 회전과 연관된 데이터를 수집하는 단계; 및
    상기 수집된 데이터에 기초하여 상기 디바이스의 상기 포워드 포인팅 방향을 결정하는 단계
    를 포함하고,
    상기 결정하는 단계는 상기 디바이스의 회전 중심을 계산하는 단계를 더 포함하고, 상기 계산은
    Figure 112017045209686-pct00045

    로서 표현될 수 있으며,
    여기서,
    Figure 112017045209686-pct00071
    는 기준의 바디 프레임 내의 상기 디바이스와 연관된 제1 샘플의 각가속도 행렬이고,
    Figure 112017045209686-pct00072
    는 기준의 바디 프레임 내의 상기 디바이스와 연관된 제2 샘플의 각가속도 행렬이며,
    Figure 112017045209686-pct00073
    는 기준의 상기 바디 프레임 내의 상기 디바이스와 연관된 상기 제1 샘플의 각속도 행렬의 제곱이고,
    Figure 112017045209686-pct00074
    는 기준의 상기 바디 프레임 내의 상기 디바이스와 연관된 상기 제2 샘플의 각속도 행렬의 제곱이며,
    Figure 112017045209686-pct00075
    는 기준의 상기 바디 프레임 내의 상기 디바이스와 연관된 상기 제1 샘플의 선가속도이고,
    Figure 112017045209686-pct00076
    는 기준의 상기 바디 프레임 내의 상기 디바이스와 연관된 상기 제2 샘플의 선가속도이며,
    Figure 112017045209686-pct00077
    는 상기 제1 샘플과 상기 제2 샘플 간의 평균 각속도이고, I는 단위 행렬(identity matrix)인 방법.
  18. 제17항에 있어서,
    상기
    Figure 112017045209686-pct00078

    Figure 112017045209686-pct00046

    로서 표현될 수 있으며,
    여기서,
    Figure 112017045209686-pct00079
    는 기준의 상기 바디 프레임 내의 상기 디바이스의 각가속도의 x 성분이고,
    Figure 112017045209686-pct00080
    는 기준의 상기 바디 프레임 내의 상기 디바이스의 각가속도의 y 성분이며,
    Figure 112017045209686-pct00081
    는 기준의 상기 바디 프레임 내의 상기 디바이스의 각가속도의 z 성분인 방법.
  19. 제17항에 있어서,
    상기
    Figure 112017045209686-pct00082

    Figure 112017045209686-pct00047

    로서 표현될 수 있으며, 여기서,
    Figure 112017045209686-pct00083
    는 기준의 상기 바디 프레임 내의 상기 디바이스의 각속도의 x 성분이고,
    Figure 112017045209686-pct00084
    는 기준의 상기 바디 프레임 내의 상기 디바이스의 각속도의 y 성분이며,
    Figure 112017045209686-pct00085
    는 기준의 상기 바디 프레임 내의 상기 디바이스의 각속도의 z 성분인 방법.
  20. 제17항에 있어서,
    상기 디바이스의 회전 중심 벡터의 다수의 계산들은 상기 회전 중심 벡터 계산을 최적화하기 위해 결합되는 방법.
  21. 제20항에 있어서,
    상기 결합은 로우 패스 필터링, 칼만 필터링 및 베이지안 필터링 중 적어도 하나를 포함하는 방법.
  22. 제17항에 있어서,
    기준의 상기 바디 프레임은 상기 포워드 포인팅 방향의 계산에 기초하여 조정되는 방법.
  23. 제8항에 있어서,
    상기 포워드 포인팅 방향은 상기 디바이스의 각위치의 평균에 기초하여 결정되는 방법.
  24. 제23항에 있어서,
    상기 평균은 상기 포워드 포인팅 방향 값들의 단기 히스토리(a short-term history)를 사용해서 동적으로 최적화되는 방법.
  25. 사용자가 핸드헬드 포인팅 디바이스에 대한 포워드 방향을 결정할 수 있게 하기 위한 시스템으로서,
    핸드헬드 포인팅 디바이스; 및
    호스트 컴퓨터
    를 포함하고,
    상기 핸드헬드 포인팅 디바이스는,
    상기 디바이스의 가속도를 감지하고 그와 연관된 적어도 하나의 가속도 출력을 출력하기 위한 가속도계;
    상기 디바이스의 회전을 감지하고 그와 연관된 적어도 하나의 각속도 출력을 출력하기 위한 복수의 각속도 센서; 및
    상기 가속도 출력 및 상기 적어도 하나의 각속도 출력을 처리하고 처리된 출력들 및 중력 상수를 사용해서 상기 디바이스의 회전 중심의 계산에 기초하여 상기 디바이스의 포워드 방향을 결정하기 위한 프로세싱 유닛
    을 포함하고,
    상기 호스트 컴퓨터는,
    상기 핸드헬드 포인팅 디바이스로의 통신 기능들; 및
    출력 디스플레이
    를 포함하는 시스템.
  26. 제25항에 있어서,
    상기 핸드헬드 포인팅 디바이스는 설계에 의해 지정된 포워드 방향을 갖지 않는 시스템.
  27. 제25항에 있어서,
    상기 핸드헬드 포인팅 디바이스는 상기 호스트 컴퓨터에 상기 계산의 결과들을 송신하는 시스템.
  28. 제27항에 있어서,
    상기 호스트 컴퓨터는 상기 계산에 기초하여 상기 디스플레이에서 객체의 위치를 조정하는 시스템.
  29. 디바이스의 가속도를 감지하고 그와 연관된 적어도 하나의 가속도 출력을 출력하도록 구성된 가속도계;
    상기 디바이스의 회전을 감지하고 그와 연관된 적어도 하나의 각속도 출력을 출력하도록 구성된 적어도 하나의 센서; 및
    상기 디바이스의 포워드 포인팅 방향을 결정하기 위해 상기 가속도 출력 및 상기 적어도 하나의 각속도 출력을 처리하도록 구성된 프로세싱 유닛
    을 포함하고,
    상기 디바이스의 포워드 포인팅 방향의 결정은 처리된 출력들 및 중력 상수를 사용해서 상기 디바이스의 회전 중심의 계산에 기초하며,
    상기 계산은,
    상기 각속도 출력에 기초한 각속도 행렬;
    상기 각속도 출력에 기초한 각가속도 행렬;
    기준의 지면 프레임에 대한 기준의 디바이스 프레임을 정의하기 위한 상기 각속도 행렬 및 상기 각가속도 행렬에 기초한 방향 코사인 행렬; 및
    상기 가속도 출력에 기초한 선가속도
    를 사용하는 디바이스.
  30. 제29항에 있어서,
    상기 적어도 하나의 센서는 회전 센서 또는 자이로스코프인 디바이스.
  31. 제29항에 있어서,
    상기 적어도 하나의 센서는 자력계인 디바이스.
  32. 제30항에 있어서,
    출력들이 상기 방향 코사인 행렬의 계산을 향상시키는데 사용되는 자력계를 더 포함하는 디바이스.
  33. 삭제
  34. 삭제
KR1020137000093A 2010-06-03 2011-06-03 핸드헬드 디바이스의 포워드 포인팅 방향의 결정 KR101821781B1 (ko)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US35110810P 2010-06-03 2010-06-03
US61/351,108 2010-06-03
PCT/US2011/039047 WO2011153421A2 (en) 2010-06-03 2011-06-03 Determining forward pointing direction of a handheld device

Publications (2)

Publication Number Publication Date
KR20130115204A KR20130115204A (ko) 2013-10-21
KR101821781B1 true KR101821781B1 (ko) 2018-02-06

Family

ID=45067311

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020137000093A KR101821781B1 (ko) 2010-06-03 2011-06-03 핸드헬드 디바이스의 포워드 포인팅 방향의 결정

Country Status (5)

Country Link
US (3) US9201516B2 (ko)
EP (1) EP2577427A4 (ko)
KR (1) KR101821781B1 (ko)
CN (1) CN103003777B (ko)
WO (1) WO2011153421A2 (ko)

Families Citing this family (10)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR101956186B1 (ko) * 2011-04-27 2019-03-11 삼성전자주식회사 가속도 센서를 이용한 자세 추정 장치 및 방법
FR2985583B1 (fr) * 2012-01-06 2014-01-17 Movea Dispositif de commande gestuelle d'un systeme, et procede associe
US9915550B2 (en) * 2012-08-02 2018-03-13 Memsic, Inc. Method and apparatus for data fusion of a three-axis magnetometer and three axis accelerometer
DE102013214020A1 (de) * 2013-07-17 2015-02-19 Stabilo International Gmbh Digitaler Stift
US20170243327A1 (en) * 2016-02-19 2017-08-24 Lenovo (Singapore) Pte. Ltd. Determining whether to rotate content based on identification of angular velocity and/or acceleration of device
CN106095103B (zh) * 2016-06-16 2020-07-31 世源科技工程有限公司 虚拟现实的显示控制方法、装置及相关设备
US10761616B2 (en) * 2016-07-09 2020-09-01 Maximillian Hobson-Dupont Position tracking system employing external magnetic field
CN110226150B (zh) * 2017-01-11 2022-09-27 索尼互动娱乐股份有限公司 控制器
TWI628631B (zh) * 2017-05-08 2018-07-01 和碩聯合科技股份有限公司 遙控系統、遙控方法與閘道器
CN117292532B (zh) * 2023-11-27 2024-02-06 深圳市天一欣科技有限公司 一种红外遥控器信号发送控制的方法

Family Cites Families (19)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
GB9928682D0 (en) * 1999-12-06 2000-02-02 Electrotextiles Comp Ltd Input apparatus and a method of generating control signals
US20040268393A1 (en) 2003-05-08 2004-12-30 Hunleth Frank A. Control framework with a zoomable graphical user interface for organizing, selecting and launching media items
US7489299B2 (en) * 2003-10-23 2009-02-10 Hillcrest Laboratories, Inc. User interface devices and methods employing accelerometers
KR100537518B1 (ko) * 2004-01-27 2005-12-19 삼성전자주식회사 공간에서 클릭 동작에 따른 포인팅 위치 조절 방법 및이를 위한 공간형 입력 장치
US7158118B2 (en) * 2004-04-30 2007-01-02 Hillcrest Laboratories, Inc. 3D pointing devices with orientation compensation and improved usability
KR20070017400A (ko) 2004-04-30 2007-02-09 힐크레스트 래보래토리스, 인크. 틸트 보상과 향상된 사용성을 갖는 3d 포인팅 장치
WO2006125133A2 (en) 2005-05-19 2006-11-23 Hillcrest Laboratories, Inc. Global navigation objects in user interfaces
DE102005025478B4 (de) * 2005-06-03 2007-04-19 Albert-Ludwigs-Universität Freiburg Verfahren und Vorrichtung zur Bestimmung der relativen Lage, Geschwindigkeit und/oder der Beschleunigung eines Körpers
KR20070001740A (ko) 2005-06-29 2007-01-04 주식회사 하이닉스반도체 반도체소자의 트랜치 소자분리막 형성방법
KR101288186B1 (ko) * 2005-07-01 2013-07-19 힐크레스트 래보래토리스, 인크. 3d 포인팅 장치
JP4773170B2 (ja) * 2005-09-14 2011-09-14 任天堂株式会社 ゲームプログラムおよびゲームシステム
US7868610B2 (en) * 2006-06-09 2011-01-11 The Regents Of The University Of California Angular motion tracking sensor
US7860676B2 (en) * 2007-06-28 2010-12-28 Hillcrest Laboratories, Inc. Real-time dynamic tracking of bias
TWI334559B (en) * 2007-08-28 2010-12-11 Ind Tech Res Inst Interactive pointing device
EP2189879A4 (en) * 2007-09-12 2013-06-05 Sony Corp INPUT DEVICE, CONTROL DEVICE, CONTROL SYSTEM, AND CONTROL METHOD
US8010313B2 (en) * 2008-06-27 2011-08-30 Movea Sa Hand held pointing device with roll compensation
CN102099814B (zh) * 2008-07-01 2018-07-24 Idhl控股公司 3d定位器映射
JP5430123B2 (ja) * 2008-10-30 2014-02-26 任天堂株式会社 ゲーム装置およびゲームプログラム
JP2010231736A (ja) * 2009-03-30 2010-10-14 Sony Corp 入力装置および方法、情報処理装置および方法、情報処理システム、並びにプログラム

Also Published As

Publication number Publication date
WO2011153421A2 (en) 2011-12-08
US20180046266A1 (en) 2018-02-15
EP2577427A4 (en) 2016-01-27
CN103003777B (zh) 2016-09-07
US20130215019A1 (en) 2013-08-22
WO2011153421A3 (en) 2012-04-05
US20160252977A1 (en) 2016-09-01
CN103003777A (zh) 2013-03-27
US9811175B2 (en) 2017-11-07
US10120463B2 (en) 2018-11-06
KR20130115204A (ko) 2013-10-21
EP2577427A2 (en) 2013-04-10
US9201516B2 (en) 2015-12-01

Similar Documents

Publication Publication Date Title
KR101821781B1 (ko) 핸드헬드 디바이스의 포워드 포인팅 방향의 결정
US10620726B2 (en) 3D pointer mapping
US10782792B2 (en) 3D pointing devices with orientation compensation and improved usability
EP1741088B1 (en) Free space pointing devices with tilt compensation and improved usability
EP2337016B1 (en) Free space pointing devices with tilt compensation and improved usability
US8683850B2 (en) Real-time dynamic tracking of bias
KR20060118448A (ko) 가속도계를 채용하는 방법 및 사용자 인터페이스 장치
KR20070017400A (ko) 틸트 보상과 향상된 사용성을 갖는 3d 포인팅 장치

Legal Events

Date Code Title Description
E902 Notification of reason for refusal
E701 Decision to grant or registration of patent right
N231 Notification of change of applicant