KR20110039318A - 3d 포인터 매핑 - Google Patents

3d 포인터 매핑 Download PDF

Info

Publication number
KR20110039318A
KR20110039318A KR1020117002668A KR20117002668A KR20110039318A KR 20110039318 A KR20110039318 A KR 20110039318A KR 1020117002668 A KR1020117002668 A KR 1020117002668A KR 20117002668 A KR20117002668 A KR 20117002668A KR 20110039318 A KR20110039318 A KR 20110039318A
Authority
KR
South Korea
Prior art keywords
axis
frame
cursor
detected value
mapping
Prior art date
Application number
KR1020117002668A
Other languages
English (en)
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 KR20110039318A publication Critical patent/KR20110039318A/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
    • G06F3/038Control and interface arrangements therefor, e.g. drivers or device-embedded control circuitry
    • G06F3/0383Signal control means within the pointing device
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • 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

Abstract

예를 들어, 디스플레이 상에 커서를 렌더링하는 데 사용하기 위한, 3D 포인팅 장치의 이동 또는 움직임을 커서 위치에 매핑하는 시스템, 장치, 방법 및 소프트웨어가 기술되어 있다. 절대 및 상대 유형 매핑 알고리즘이 기술되어 있다. 서로 다른 유형의 매핑으로부터 유익한 특성을 얻기 위해 매핑 알고리즘들이 결합될 수 있다.

Description

3D 포인터 매핑{3D POINTER MAPPING}
이 출원은 2008년 7월 1일자로 출원된, 발명의 명칭이 "3D Pointer Mapping(3D 포인터 매핑)"인 미국 가특허 출원 제61/077,238호(여기에 인용함으로써 그 개시 내용이 본 명세서에 포함됨)에 관한 것으로서, 이 미국 출원을 기초로 우선권 주장한다.
본 발명은 3D 포인팅 장치에서는 물론 다른 유형의 장치에서도 사용될 수 있는 매핑 기술, 시스템, 소프트웨어 및 장치에 대해 기술한다.
지난 수십년에 걸쳐 정보의 전달과 연관된 기술이 급속히 발전하였다. 텔레비전, 휴대 전화, 인터넷 및 광 통신 기술(단지 몇가지를 열거함)이 결합하여 소비자는 이용가능한 정보 및 엔터테인먼트 옵션으로 넘쳐나게 되었다. 텔레비전을 예로 들면, 지난 삼십년 동안에 케이블 텔레비전 서비스, 위성 텔레비전 서비스, 유료 영화 및 주문형 비디오가 등장하였다. 1960년대의 텔레비전 시청자는 통상적으로 그의 텔레비전 세트를 통해 아마도 4개 또는 5개의 공중파 TV 채널을 수신할 수 있었던 반면, 현재의 TV 시청자는 수백, 수천, 어쩌면 수백만 채널의 쇼(show) 및 정보 중에서 선택할 기회를 갖는다. 현재 호텔 등에서 주로 사용되는 주문형 비디오 기술은 수천개의 영화 타이틀 중에서의 인-홈 엔터테인먼트 선택(in-home entertainment selection)의 가능성을 제공한다.
기술적으로 그렇게 많은 정보 및 콘텐츠를 최종 사용자에게 제공할 수 있다는 것은 시스템 설계자 및 서비스 공급자에게 기회와 과제 둘다를 제공한다. 한가지 과제는 최종 사용자가 통상적으로 적은 것보다는 많은 선택을 가지기를 선호하는 반면, 이러한 선호가 선택 과정이 빠르기도 하고 간단하기도 해야 한다는 사용자의 바램과 상충된다는 것이다. 안타깝게도, 최종 사용자가 미디어 항목에 액세스하는 데 사용하는 시스템 및 인터페이스의 개발의 결과는 선택 과정이 빠르지도 간단하지도 않았다. 또다시 텔레비전 프로그램의 일례를 생각해보기로 한다. 텔레비전이 초기 단계(infancy)에 있을 때, 어느 프로그램을 시청할지를 결정하는 것은 주로 선택의 폭이 좁은 것으로 인해 비교적 간단한 과정이었다. 예를 들어, (1) 가까운 텔레비전 채널, (2) 그 채널을 통해 전송되는 프로그램, 및 (3) 날짜와 시간 간의 대응관계를 보여주는 일련의 열과 행의 형식으로 된 안내 인쇄물을 참조하였다. 튜너 스위치(tuner knob)를 조절하여 텔레비전이 원하는 채널에 튜닝되었고 시청자는 선택된 프로그램을 시청하였다. 나중에, 시청자가 멀리 떨어져 텔레비전을 동조시킬 수 있게 해주는 리모트 컨트롤 장치(remote control device)가 도입되었다. 사용자-텔레비전 인터페이스에 이것이 추가됨으로써, 시청자가 다수의 채널로 방송되는 짧은 세그먼트를 신속하게 보고서 임의의 주어진 때에 어느 프로그램을 볼 수 있는지를 빠르게 알 수 있는 "채널 서핑"이라고 하는 현상이 생겼다.
채널의 수 및 시청할 수 있는 콘텐츠의 양이 급격히 증가했다는 사실에도 불구하고, 텔레비전에 대한 일반적으로 이용가능한 사용자 인터페이스, 제어 장치 옵션 및 프레임워크가 지난 30년 동안 그다지 변하지 않았다. 안내 인쇄물이 여전히 프로그램 정보를 전달하는 가장 보편화된 메커니즘이다. 위 및 아래 화살표를 가지는 다중 버튼 리모트 컨트롤(multiple button remote control)이 여전히 가장 보편화된 채널/콘텐츠 선택 메커니즘이다. 이용가능한 미디어 콘텐츠의 증가에 대한 TV 사용자 인터페이스를 설계 및 구현하는 사람들의 반응은 기존의 선택 절차 및 인터페이스 개체(object)를 단순히 확장하는 것이었다. 따라서, 더 많은 채널을 수용하기 위해 안내 인쇄물의 행의 수가 증가되었다. 예를 들어, 도 1에 도시된 부가의 기능 및 콘텐츠 처리를 지원하기 위해 리모트 컨트롤 장치 상의 버튼의 수가 증가되었다. 그렇지만, 이 방식은 시청자가 이용가능한 정보를 검토하는 데 필요한 시간 및 선택을 구현하는 데 필요한 동작들의 복잡도 둘다를 상당히 증가시켰다. 논란의 여지가 있지만, 기존의 인터페이스의 번거로운 특성이 일부 서비스(예를 들어, 주문형 비디오)의 상업적 구현에 방해가 되는데, 그 이유는 소비자가 이미 너무 느리고 복잡하다고 보고 있는 인터페이스에 복잡도를 추가하는 새로운 서비스에 저항하기 때문이다.
대역폭 및 콘텐츠의 증가에 부가하여, 사용자 인터페이스 병목 문제가 기술의 집합(aggregation)에 의해 악화되고 있다. 소비자는 다수의 개별적인 구성요소보다 일체형 시스템을 구매하는 선택을 하는 것에 긍정적으로 반응하고 있다. 이 추세의 일례가 이전에 독립적이었던 3가지 구성요소가 현재 일체형 유닛으로서 빈번히 판매되는 겸용 텔레비전/VCR/DVD이다. 이 추세는 계속될 수 있으며, 종국에는 아마도 현재 가정에서 발견되는 통신 장치들 전부가 일체형 유닛, 예를 들어, 텔레비전/VCR/DVD/인터넷 접속/라디오/스테레오 유닛으로서 함께 패키지화될 것이다. 개별적인 구성요소를 계속하여 구매하는 사람들도 개별적인 구성요소의 매끄러운(seamless) 제어 및 그 구성요소들 간의 인터네트워킹을 원할 것이다. 이와 같이 점점 더 통합됨에 따라, 사용자 인터페이스가 더욱 복잡하게 될 가능성이 있다. 예를 들어, 소위 "유니버설(universal)" 리모트 유닛이, 예를 들어, TV 리모트 유닛과 VCR 리모트 유닛의 기능을 겸비하기 위해 소개되었을 때, 이 유니버설 리모트 유닛 상의 버튼의 수가 통상적으로 TV 리모트 유닛 또는 VCR 리모트 유닛에 개별적으로 있는 버튼의 수보다 많았다. 이와 같이 추가된 버튼 및 기능의 수로 인해, 리모트 유닛 상의 올바른 버튼을 정확하게 찾아내지 않고는, TV 또는 VCR의 가장 간단한 측면(aspect) 이외의 어느 것이라도 제어하기가 아주 어렵게 된다. 종종, 이 유니버설 리모트 유닛은 특정 TV에 고유한 많은 레벨의 제어 또는 특징에 액세스하기에 충분한 버튼을 제공하지 않는다. 이 경우에, 원래의 장치 리모트 유닛이 여전히 필요하고, 집합(aggregation)의 복잡성으로부터 사용자 인터페이스 문제가 생기는 것으로 인해 다수의 리모트 유닛을 다루어야 하는 원래의 불편이 여전히 있다. 일부 리모트 유닛은 전문가 명령을 사용하여 프로그램될 수 있는 "소프트" 버튼을 추가함으로써 이 문제를 해소하였다. 이 소프트 버튼은 때때로 그의 동작을 나타내는 부속(accompanying) LCD 디스플레이를 가진다. 이것도 역시 TV로부터 리모트 컨트롤로 눈길을 돌리지 않고는 사용하기 어렵다는 결점이 있다. 이 리모트 유닛에서의 또 다른 결점은 버튼의 수를 줄이기 위한 시도로 모드를 사용하는 것이다. 이 "모드 방식(moded)" 유니버설 리모트 유닛에서, 리모트가 TV, DVD 플레이어, 케이블 셋톱 박스, VCR 등과 통신해야 하는지를 선택하기 위해 특수 버튼이 존재한다. 이는 틀린 장치로 명령을 전송하는 것, 올바른 모드에 있는지 확인하기 위해 사용자가 리모트를 보아야만 하는 것, 및 다수의 장치의 일체화에 어떤 간소화도 제공하지 않는 것을 비롯한 많은 사용성 문제를 야기한다. 이들 유니버설 리모트 유닛 중 가장 진보된 것은 사용자가 다수의 장치에 대한 명령 시퀀스를 리모트에 프로그램할 수 있게 해줌으로써 얼마간의 일체화를 제공한다. 이것은 많은 사용자가 전문 설치자를 불러 그의 유니버설 리모트 유닛을 프로그램할 정도로 어려운 작업이다.
또한, 최종 사용자와 미디어 시스템 간의 디스플레이 인터페이스를 최신으로 하기 위해 몇몇 시도가 행해졌다. 그렇지만, 이들 시도는 통상적으로, 단점들 중에서도 특히, 대규모 미디어 항목 컬렉션과 소규모 미디어 항목 컬렉션 간에 용이하게 스케일링할 수 없다. 예를 들어, 항목의 목록에 의존하는 인터페이스가 소규모 미디어 항목 컬렉션에는 잘 동작할 수 있지만, 대규모 미디어 항목 컬렉션을 브라우징하는 데는 지루하다. 계층적 탐색(예를 들어, 트리 구조)에 의존하는 인터페이스는 대규모 미디어 항목 컬렉션에 대해 목록 인터페이스보다 더 빨리 순회(traverse)할 수 있지만, 소규모 미디어 항목 컬렉션에 쉽게 적응하지 못한다. 그에 부가하여, 사용자는, 사용자가 트리 구조에서 3개 이상의 층을 통해 이동해야 하는 선택 과정에 흥미를 잃는 경향이 있다. 이들 경우 모두에서, 현재의 리모트 유닛은 사용자가 목록 또는 계층구조를 탐색하기 위해 위 및 아래 버튼을 반복적으로 누르게 함으로써 이 선택 과정을 훨씬 더 지루하게 만든다. 페이지 위로 및 페이지 아래로 등과 같은 선택 건너뛰기 제어가 이용가능한 경우, 사용자는 보통 이들 특수 버튼을 찾기 위해 리모트를 보아야 하거나 심지어 이들 특수 버튼이 존재하는지를 알기 위해 학습을 해야만 한다. 따라서, 사용자와 미디어 시스템 간의 제어 및 디스플레이 인터페이스를 간소화하는 것은 물론 선택 과정을 가속화함과 동시에, 많은 수의 미디어 항목 및 새로운 서비스를 사용자에게 공급하는 것을 용이하게 해줌으로써, 서비스 공급자가 최종 사용자 장비에 대한 가용 대역폭의 증가를 이용할 수 있게 해주는 프레임워크, 기법 및 시스템의 구성이 2004년 1월 30일자로 출원된, 발명의 명칭이 "A Control Framework with a Zoomable Graphical User Interface for Organizing, Selecting and Launching Media Items"인 미국 특허 출원 제10/768,432호(여기에 인용함으로써 그 개시 내용이 본 명세서에 포함됨)에 제안되어 있다.
이 명세서에서 특히 흥미를 끄는 것은 이러한 프레임워크는 물론, 다른 응용 및 시스템과 상호작용하는 데 사용가능한 리모트 장치(remote device)이다. 앞서 포함된 출원에서 언급된 바와 같이, 예를 들어, 트랙볼, "마우스"형 포인팅 장치, 라이트 펜(light pen) 등을 비롯한 이러한 프레임워크에서 다양한 서로 다른 유형의 리모트 장치가 사용될 수 있다. 그렇지만, 이러한 프레임워크(및 다른 응용)에서 사용될 수 있는 다른 카테고리의 리모트 장치는 3D 포인팅 장치이다. "3D 포인팅"이라는 문구는 본 명세서에서 입력 장치가 3차원 공간에서 움직임을 측정할 수 있는 것을 말하는 데 사용된다. 3차원 공간은 6 자유도(six degrees of freedom; 6DOF), 즉 3개의 직선 움직임(linear motion) 축 및 3개의 각도 움직임(angular motion) 축을 가진다. 6DOF라는 용어가 흔히 사용되지만, 제7 시간 차원이 자동으로 포함된다. 장치의 위치(또는 자세)는 그의 직선 위치 및 각도 위치(배향)에 의해 표현될 수 있다. 3D 포인팅 장치는, 예를 들어, 디스플레이의 전방의 공중에서 6 자유도 내에서 움직이며, 그에 대응하여 사용자 인터페이스는 그 움직임을 바로 사용자 인터페이스 명령(예를 들어, 디스플레이 상에서의 커서의 이동)으로 변환할 수 있다. 따라서, "3D 포인팅"은, 예를 들어, 어떤 표면(예를 들어, 책상 표면 또는 마우스패드)을 대용 표면(proxy surface)(이로부터의 마우스의 상대 이동이 컴퓨터 디스플레이 상의 커서 이동으로 변환됨)으로서 사용하는 종래의 컴퓨터 마우스 포인팅 기술과는 다르다. 3D 포인팅 장치의 일례가 Matthew G. Liberty의 미국 특허 제7,118,518호(이후 '518 특허라고 함)(여기에 인용함으로써 그 개시 내용이 본 명세서에 포함됨)에서 찾아볼 수 있다. 움직임 데이터는 3D 포인팅 장치와 호스트 시스템 사이에서 전달된다. 움직임 데이터 전달은 유선, 무선 주파수, 초음파 및 적외선을 비롯한 임의의 통신 링크에 의해 수행될 수 있다.
장치 움직임을 커서 움직임에 매핑하는 2가지 주된 방법, 즉 절대 포인팅(absolute pointing) 및 상대 포인팅(relative pointing)이 존재한다. 절대 포인팅에서, 원하는 커서 위치는 장치의 전방 벡터(forward vector)가 디스플레이의 평면과 교차하는 위치이다. 3D 포인터가 레이저 포인터인 경우, 이 커서 위치는 투사된 레이저 점(laser dot)의 위치일 것이다. 절대 포인팅에서, 각도 움직임의 포인팅 분해능(pointing resolution)은 직선 위치에 따라 변한다. 사용자가 디스플레이로부터 멀리 있을수록, 물체를 조준하려면 각도 움직임이 더 미세해야 한다. 각도 움직임 분해능은 또한 축을 벗어난 각도(off-axis angle)에 따라 변한다. 사용자가 디스플레이의 측면에 있을 때는, 사용자가 디스플레이 바로 전방에서 동일한 거리에 있을 때보다 더 작은 각도 움직임이 요구된다. 이러한 포인팅 분해능의 변동은 일관성없는 사용자 경험을 야기한다. TV 리모트 컨트롤의 일부인 경우, 이 변동은 가정마다, 심지어 동일한 가정 내의 자리마다 일관성없는 거동(behavior)을 야기한다. 그렇지만, 절대 포인팅은 보통 반복가능하며 시간 불변이다. 3D 포인터가 동일한 위치에 놓이는 경우, 커서가 동일한 위치로 되돌아갈 것이다. 절대 포인팅은 또한 비교정(non-calibrated)이고 초기 시작 위치를 기준으로 할 수 있다.
상대 포인팅에서, 모든 움직임에 대한 포인팅 분해능은 디스플레이로부터의 직선 위치 및 각도 위치에 독립적이다. 그렇지만, 장치가 디스플레이 상의 커서와 정렬되지 않을 수 없다. 상대 포인팅은 포인팅 성능을 급격히 향상시킬 수 있는 포인터 탄도학(pointer ballistics)을 비롯한 비선형 처리를 가능하게 해준다. 포인터 탄도학은, 예를 들어, http://www.microsoft.com/whdc/archive/pointer-bal.mspx에 기술되어 있다. 상대 포인팅은 종종 커서 움직임을 디스플레이 경계로 제한하고, 디스플레이 경계를 넘는 어떤 움직임도 무시한다. 이것에 의해 사용자가 편안하게 안락한 위치를 찾을 수 있지만, 일부 응용은 장치 위치와 커서 위치 간의 고정된 매핑으로부터 이득을 본다.
그렇지만, 순수한 절대 포인팅 및 순수한 상대 포인팅보다 우수한 해결책이 존재한다. 따라서, 예를 들어, 장치 이동을 디스플레이에 매핑하는 분야, 일반적으로는 핸드헬드 장치 설계, 보다 구체적으로는 3D 포인터 설계에서 여전히 개선의 여지가 있다. 본 명세서의 나머지에서, 절대 포인팅은 진정한 절대 포인팅과 가장 유사한 특성을 갖는 해결책을 말하고, 상대 포인팅은 진정한 상대 포인팅과 가장 유사한 특성을 갖는 해결책을 말한다.
예시적인 일 실시예에 따르면, 장치의 이동을 커서 위치에 매핑하는 방법이 기술되어 있다. 장치의 직선 위치 및 각도 위치가 추정된다. 추정된 직선 위치 및 각도 위치가 제1 커서 위치를 발생하는 제1 매핑 알고리즘 및 제2 커서 위치를 발생하는 제2 매핑 알고리즘 둘다를 사용하여 추가로 처리된다. 제1 커서 위치 및 제2 커서 위치가 결합되어 최종 커서 출력을 발생한다. 이러한 기술은 예를 들어, 2개의 매핑 알고리즘의 강점을 결합하여, 예를 들어, 다양한 개체와 상호작용하기 위해 커서가 사용되는 사용자 인터페이스와 연관되어 있는 보다 안정된(robust) 사용자 경험을 제공하는 데 사용될 수 있다.
다른 예시적인 실시예에 따르면, 3D 포인팅 장치는 3D 포인팅 장치의 이동과 연관되어 있는 출력을 발생하도록 구성된 적어도 하나의 센서, 및 프로세서를 포함한다. 프로세서는 출력을 사용하여 장치의 직선 위치 및 각도 위치를 추정하고, 제1 커서 위치를 발생하는 제1 매핑 알고리즘 및 제2 커서 위치를 발생하는 제2 매핑 알고리즘 둘다를 사용하여 추정된 직선 위치 및 각도 위치를 처리하며, 제1 커서 위치 및 제2 커서 위치를 결합하여 최종 커서 출력를 발생하도록 구성되어 있다.
다른 예시적인 실시예에 따르면, 시스템은 3D 포인팅 장치의 이동과 연관되어 있는 출력을 발생하도록 구성된 적어도 하나의 센서를 가지는 3D 포인팅 장치, 및 3D 포인팅 장치와 통신하여, 그로부터 상기 출력과 연관된 데이터를 수신하도록 구성된 시스템 제어기를 포함한다. 3D 포인팅 장치 및 시스템 제어기 중 적어도 하나는, 출력을 사용하여 상기 장치의 직선 위치 및 각도 위치 중 적어도 하나를 추정하고, 제1 커서 위치를 발생하는 제1 매핑 알고리즘 및 제2 커서 위치를 발생하는 제2 매핑 알고리즘 둘다를 사용하여 추정된 직선 위치 및 각도 위치 중 적어도 하나를 처리하며, 제1 커서 위치 및 제2 커서 위치를 결합하여 최종 커서 출력를 발생하는 프로세서를 포함한다.
다른 예시적인 실시예에 따르면, 장치의 이동을 커서 위치에 매핑하는 방법은 장치의 직선 위치 및 각도 위치를 추정하는 단계, 및 커서 위치를 발생하는 매핑 알고리즘을 사용하여 추정된 직선 위치 및 각도 위치를 처리하는 단계를 포함하며, 매핑 알고리즘은 장치 직선 위치 및 각도 위치로부터 커서 위치로의 직접적인 반복가능한 매핑을 제공하는 제1 특성과 직선 움직임 및 각도 움직임에 대한 커서 응답성이 움직임 범위에 걸쳐 일관성있는 제2 특성을 가지는 절대 불변 알고리즘이다.
다른 예시적인 실시예에 따르면, 장치의 이동을 커서 위치에 매핑하는 방법은 장치의 직선 위치 및 각도 위치 중 적어도 하나를 추정하는 단계, 및 커서 위치를 발생하는 매핑 알고리즘을 사용하여 추정된 직선 위치 및 각도 위치 중 적어도 하나를 처리하는 단계를 포함하며, 매핑 알고리즘은 장치와 마주하기 위해 움직이는 중간의(intermediate) 가상 디스플레이를 생성한다.
다른 예시적인 실시예에 따르면, 장치의 이동을 커서 위치에 매핑하는 방법은 장치의 각도 위치를 추정하는 단계, 및 커서 위치를 발생하는 매핑 알고리즘을 사용하여 추정된 각도 위치를 처리하는 단계를 포함하며, 매핑 알고리즘은 각도 위치 구면 투영(angular position spherical projection)을 사용하여 장치의 추정된 각도 위치를 커서 좌표에 매핑한다.
첨부 도면은 예시적인 실시예들을 나타내고 있다.
도 1은 엔터테인먼트 시스템의 종래의 리모트 컨트롤 유닛(remote control unit)을 나타낸 도면.
도 2는 예시적인 실시예가 구현될 수 있는 예시적인 미디어 시스템을 나타낸 도면.
도 3은 본 발명의 예시적인 실시예에 따른 3D 포인팅 장치를 나타낸 도면.
도 4는 각속도 감지(angular velocity sensing) 및 선가속도 감지(linear acceleration sensing)를 포함하는 도 3의 3D 포인팅 장치의 절단면도.
도 5는 다른 예시적인 실시예에 따른 3D 포인팅 장치를 나타낸 도면.
도 6은 예시적인 실시예에 따라 도 5의 3D 포인팅 장치가 "10 피트" 인터페이스의 일부로서 사용되는 것을 나타낸 도면.
도 7은 다양한 예시적인 실시예에 따른, 장치 움직임을 디스플레이된 커서 움직임에 매핑하는 것을 나타낸 도면.
도 8 내지 도 12는 예시적인 실시예에 따른, 장치 움직임을 디스플레이된 커서 움직임에 매핑하는 것과 연관된 기능을 나타낸 도면.
도 13은 예시적인 실시예에 따른, 장치의 이동을 커서 위치에 매핑하는 방법을 나타낸 플로우차트.
본 발명의 이하의 상세한 설명은 첨부 도면들을 참조한다. 서로 다른 도면에서의 동일한 참조 번호는 동일하거나 유사한 구성요소를 나타낸다. 또한, 이하의 상세한 설명은 본 발명을 제한하지 않는다. 그 대신에, 본 발명의 범위가 첨부된 특허청구범위에 의해 한정된다.
본 설명에 대한 어떤 상황을 제공하기 위해, 본 발명이 구현될 수 있는 예시적인 집합된(aggregated) 미디어 시스템(200)에 대해 먼저 도 2와 관련하여 설명할 것이다. 그렇지만, 당업자라면 본 발명이 이 유형의 미디어 시스템의 구현으로 제한되지 않고 더 많거나 더 적은 구성요소가 그 안에 포함될 수 있다는 것을 잘 알 것이다. 이 미디어 시스템에서, 입/출력(I/O) 버스(210)는 미디어 시스템(200) 내의 시스템 구성요소를 함께 연결한다. I/O 버스(210)는 미디어 시스템 구성요소들 간에 신호를 라우팅하는 다수의 서로 다른 메커니즘들 및 기술들 중 임의의 것을 나타낸다. 예를 들어, I/O 버스(210)는 적절한 수의 독립적인, 오디오 신호를 라우팅하는 오디오 "패치" 케이블, 비디오 신호를 라우팅하는 동축 케이블, 제어 신호를 라우팅하는 2-선 직렬선 또는 적외선 또는 무선 주파수 송수신기, 다른 유형의 신호를 라우팅하는 광 섬유 또는 임의의 다른 라우팅 메커니즘을 포함할 수 있다.
이 예시적인 실시예에서, 미디어 시스템(200)은 I/O 버스(210)에 연결된, 텔레비전/모니터(212), VCR(video cassette recorder)(214), DVD(digital video disk) 레코더/재생 장치(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 포인팅 장치(400)가 도 3에 도시되어 있다. 거기서, 3D 포인팅의 사용자 이동은, 예를 들어, 3D 포인팅 장치(400)의 x-축 자세(attitude)(롤), y-축 고도(elevation)(피치) 및/또는 z-축 방향(heading)(요) 움직임의 조합으로 정의될 수 있다. 그에 부가하여, 본 발명의 일부 예시적인 실시예는 또한 커서 이동 또는 다른 사용자 인터페이스 명령을 발생하기 위해 x축, y축 및 z축을 따른 3D 포인팅 장치(400)의 직선 이동을 측정할 수 있다. 도 3의 예시적인 실시예에서, 3D 포인팅 장치(400)는 2개의 버튼(402, 404)은 물론 스크롤 휠(406)을 포함하지만, 다른 예시적인 실시예는 다른 물리적 구성을 포함할 것이다. 본 발명의 예시적인 실시예에 따르면, 3D 포인팅 장치(400)가 디스플레이(408)의 전방에서 사용자에 의해 보유될 것이라는 것과 3D 포인팅 장치(400)의 움직임이 3D 포인팅 장치에 의해 디스플레이(408) 상에 디스플레이되는 정보와 상호작용하기 위해, 예를 들어, 디스플레이(408) 상에서 커서(410)를 이동시키기 위해, 사용가능한 출력으로 변환될 것이라는 것이 예상된다. 예를 들어, y-축을 중심으로 한 3D 포인팅 장치(400)의 회전은 3D 포인팅 장치(400)에 의해 감지되고 디스플레이(408)의 y2 축을 따라 커서(410)를 이동시키기 위해 시스템에 의해 사용가능한 출력으로 변환될 수 있다. 마찬가지로, z-축을 중심으로 한 3D 포인팅 장치(408)의 회전은 3D 포인팅 장치(400)에 의해 감지되고 디스플레이(408)의 x2 축을 따라 커서(410)를 이동시키기 위해 시스템에 의해 사용가능한 출력으로 변환될 수 있다. 3D 포인팅 장치(400)의 출력이 커서 이동 이외에(또는 그에 부가하여) 다수의 방식으로 디스플레이(408)와 상호작용하기 위해 사용될 수 있다는 것, 예를 들어, 커서 페이딩(fading), 볼륨 또는 미디어 트랜스포트(transport)(재생, 일시정지, 고속감기 및 되감기)를 제어할 수 있다는 것을 잘 알 것이다. 입력 명령이 커서 이동 이외의 동작, 예를 들어, 디스플레이의 특정 영역 상에서의 줌인 또는 줌아웃을 포함할 수 있다. 커서는 보이거나 보이지 않을 수 있다. 이와 유사하게, 사용자 인터페이스에 입력을 제공하기 위해, y-축 및/또는 z-축 회전에 부가하여 또는 그에 대한 대안으로서, 3D 포인팅 장치(400)의 x-축을 중심으로 감지된 3D 포인팅 장치(400)의 회전이 사용될 수 있다.
본 발명의 순전히 예시적인 일 실시예에 따르면, 도 4에 도시된 바와 같이 3D 포인팅 장치(400)에서 2개의 각속도 감지축(420, 422) 및 3개의 선가속도 감지축(424)이 센서들로서 이용될 수 있다. 이 예시적인 실시예가 관성 센서를 이용하고 있지만, 본 발명이 그에 제한되지 않는다는 것을 잘 알 것이며, 다른 예시적인 실시예와 관련하여 사용될 수 있는 다른 유형의 센서의 예들이 이하에서 제공된다. 회전 센서(420, 422)는, 예를 들어, Invensense에 의해 제조된 IDG-500 또는 IXZ-500 센서를 사용하여 구현될 수 있다. 다른 대안으로서, 실시예는 IDG-500과 ISZ-500의 결합으로서 구현되는 요소(420, 422)를 사용하여 3개의 축의 각속도 전부를 측정할 수 있다. 당업자라면 다른 유형의 회전 센서가 회전 센서(420, 422)로서 이용될 수 있다는 것과 Invensense 센서가 순전히 예시적인 일례로서 사용되고 있다는 것을 잘 알 것이다. 종래의 자이로스코프와 달리, 이 회전 센서는 MEMS 기술을 사용하여, 한 방향을 따라서만 공진할 수 있도록 프레임에 부착되는 공진체(resonating mass)를 제공한다. 센서가 부착되는 보디(body)가 센서의 감지축을 중심으로 회전될 때 공진체가 변위된다. 감지축을 따른 회전과 연관된 각속도를 구하기 위해, 이 변위가 코리올리 가속도 효과(Coriolis acceleration effect)를 사용하여 측정될 수 있다. 다른 센서/센서 패키지도 사용될 수 있고, 각속도 센서(420, 422)가 1-D, 2-D 또는 3-D 센서일 수 있다. 가속도계(424)는, 예를 들어, STMicroelectronics에 의해 제조된 LIS331DLH 등의 3-축 선형 가속도계일 수 있다. 그렇지만, 장치가 중력을 측정하고 나머지 제3 값을 수학적으로 계산하는 것으로 가정함으로써 2-축 선형 가속도계가 사용될 수 있다. 그에 부가하여, 가속도계(들) 및 회전 센서(들)가 함께 하나의 센서 패키지로 패키지화될 수 있다. 센서 및 센서 패키지의 다른 변형도 이들 예시적인 실시예와 관련하여 사용될 수 있다.
예시적인 실시예가 도 3 및 도 4에 도시된 업계 설계(industrial design)로 제한되지 않고 그 대신에 임의의 업계 폼 팩터(form factor)로 배치될 수 있으며, 다른 일례가 도 5로서 예시된다. 도 5의 예시적인 실시예에서, 3D 포인팅 장치(500)는 링-형상의 하우징(501), 2개의 버튼(502, 504)은 물론, 스크롤 휠(506) 및 손잡이(507)를 포함하지만, 다른 예시적인 실시예는 다른 물리적 구성을 포함할 수 있다. 2개의 버튼(502, 504) 및 스크롤 휠(506)을 포함하는 영역(508)은 본 명세서에서 "제어 영역"(508)이라고 하며, 링-형상의 하우징(501)의 외측 부분 상에 배치된다. 이 예시적인 실시예에 관한 추가의 상세는 2006년 7월 3일자로 출원된, 발명의 명칭이 "3D Pointing Devices"인 미국 특허 출원 제11/480,662호(여기에 인용함으로써 그 개시 내용이 본 명세서에 포함됨)에서 찾아볼 수 있다.
이러한 장치는, 예를 들어, 도 6에 도시된 바와 같은 전형적인 거실에서의 소파와 텔레비전 사이의 소위 "10 피트" 인터페이스에서의 사용을 비롯한 수많은 응용을 가진다. 거기서, 3D 포인팅 장치(500)가 서로 다른 위치 사이에서 이동할 때, 그 이동이 3D 포인팅 장치(500) 내의 하나 이상의 센서에 의해 검출되어 텔레비전(620)(또는, 연관된 시스템 구성요소, 예를 들어, 셋톱 박스(도시되지 않음))으로 전송된다. 3D 포인팅 장치(500)의 이동은, 예를 들어, 텔레비전(620) 상에 디스플레이되고 사용자 인터페이스와 상호작용하는 데 사용되는 커서(640)의 이동으로 변환 또는 매핑될 수 있다(이러한 매핑의 일례가 이하에서 제공됨). 사용자가 3D 포인팅 장치(500)를 통해 상호작용할 수 있는 예시적인 사용자 인터페이스의 상세는, 예를 들어, 앞서 포함된 미국 특허 출원 제10/768,432호는 물론, 2006년 5월 19일자로 출원된, 발명의 명칭이 "Global Navigation Objects in User Interfaces"인 미국 특허 출원 제11/437,215호에서 찾아볼 수 있으며, 여기에 인용함으로써 그 개시 내용이 본 명세서에 포함된다. 다른 예시적인 실시예는 2009년 4월 15일자로 출원된, 발명의 명칭이 "Tracking Determination Based On Intensity Angular Gradient Of A Wave"인 미국 특허 출원 제12/424,090호(여기에 인용함으로써 그 개시 내용이 본 명세서에 포함됨)에서 찾아볼 수 있는 감지 시스템을 포함하는 다른 센서를 포함할 수 있다.
이 예시적인 실시예에 따른 예시적인 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 특허에 기술되어 있다. 그렇지만, 감지된 움직임에 대한 바이어스 또는 오프셋 에러 영향을 처리하는 부가의 기술이 2008년 6월 27일자로 출원된, 발명의 명칭이 "Real-Time Dynamic Tracking Of Bias"인 미국 특허 출원 제12/163,229호(여기에 인용함으로써 그 개시 내용이 본 명세서에 포함됨)에 기술되어 있다.
매핑
앞서 언급한 바와 같이, 사용자가 6 자유도로 이동하는 3D 포인팅 장치는 그 움직임을 커서 움직임으로 변환하는 데 사용될 수 있다. 서로 다른 응용은 장치 움직임이 커서 움직임에 어떻게 매핑되어야만 하는지에 관한 서로 다른 요구 및 요건을 가진다. 이들 예시적인 실시예는 장치 움직임을 커서 움직임에 매핑하는 새로운 방법을 기술하고, 이 방법은 개선된 3D 포인터 성능을 제공하고 각각의 응용에 대한 최적의 응답을 전달하도록 구성가능하다. 그 중에서도 특히, 본 발명의 예시적인 실시예는 새로운 3D 포인터 매핑 방법 및 주어진 응용에 대한 최적의 응답을 제공하기 위해 대안의 매핑 방법들을 결합하는 방법을 기술하고 있다. 이들은, 예를 들어, 절대 포인팅에서의 주된 문제인, 디스플레이에 대한 사용자의 위치의 함수로서의 커서 분해능 변동을 감소시킬 수 있다. 동시에, 예시적인 실시예는 일부 상대 포인팅 응용에 대한 문제일 수 있는, 장치 위치와 커서 위치 사이의 일정한 매핑을 제공할 수 있다.
한 예시적인 실시예는 다음과 같은 것들을 포함한다:
1. 6 자유도로 움직임을 측정하는 장치
2. 장치 움직임을 커서 움직임으로 변환하는 하나 이상의 알고리즘
3. 알고리즘들로부터의 커서 움직임 출력들을 결합하는 방법
4. 커서를 디스플레이하는 시각 디스플레이.
도 7에 도시된 예시적인 실시예에서, 사용자는 디스플레이(702) 상에 나타나는 커서(703)를 제어하기 위해 장치(701)를 잡고 움직인다. 장치(701)는 통상적으로 일련의 센서들을 포함하며, 그의 일례에 대해서는 앞서 기술하였다. 감지 시스템은 선형 가속도계, 각도 위치 센서(종래의 자이로스코프), 각속도 센서(MEMS 자이로스코프), 자력계, 카메라, 광, 초음파 및 RF를 비롯한 하나 이상의 센서로 이루어져 있을 수 있다. 감지 시스템은 센서 데이터를 처리하여 장치의 직선 위치 및 각도 위치의 추정치를 제공한다. 장치의 위치는 이어서 하나 이상의 매핑 알고리즘에 의해 처리되어, 커서 위치를 산출한다. 커서 위치는 이어서 결합되어, 최종 커서 출력을 생성한다. 커서 움직임 정보는 이어서 디스플레이(702) 상의 커서를 구동한다. 장치(701)는 유선 또는 무선을 통해 디스플레이(702)에 연결될 수 있다. 알고리즘이 장치(701), 디스플레이(702) 또는 중간의 처리 유닛(도 7에 도시되지 않음. 예를 들어, 장치(701) 및 디스플레이(702) 둘다에 연결된 시스템 콘솔) 상에서 실행될 수 있다.
한 예시적인 실시예에 따르면, 장치(701)는 3-축 가속도계 및 3-축 자이로스코프를 포함하는 배터리-전원 핸드헬드 장치이지만, 더 적은 수의 센서 또는 다른 센서가 포함될 수 있다는 것을 잘 알 것이다. 이 예시적인 실시예에 따르면, 장치(701)는 센서 데이터를 처리하여 그의 직선 위치 및 각도 위치를 추정하고, 또한 직선 위치 및 각도 위치를 처리하여 커서 움직임 데이터를 생성한다. 커서 움직임 데이터는 독점적 2.4 GHz RF 링크를 통해 셋톱 박스(예를 들어, 도 2에서 시스템 제어기(228)로 나타냄)로 전달된다. 데이터는 셋톱 박스 내의 RF 하드웨어에 의해 수신되고 USB 버스를 통해 주 셋톱 박스 프로세서로 전달된다. 주 셋톱 박스 프로세서는, 이 일례에서, 장치(701)에 의해 지정된 대로 커서를 이동시킨다. NTSC의 경우 30 Hz 또는 60 Hz로(PAL의 경우 25 Hz 또는 50 Hz로), 셋톱 박스는 이미지를 렌더링하고, 예를 들어, HDMI, 컴포넌트, S-Video, 및/또는 컴포지트(composite) 출력을 통해 이미지를 디스플레이로 송신한다. 디스플레이는 이미지를 수신하고 이미지를 사용자에게 디스플레이한다. 앞서 언급한 바와 같이, 다양한 처리 단계들이 이 예시적인 실시예에 따라 핸드헬드 장치(701)에서 수행되지만, 핸드헬드 장치(701)와 통신하는 셋톱 박스 또는 기타 제어기가 처리(예를 들어, 직선 위치 및 각도 위치의 추정 및/또는 추정된 직선 위치 및 각도 위치의 하나 이상의 커서 위치에의 매핑)의 일부 또는 전부를 수행할 수 있다.
예시적인 실시예에 따라 이용될 수 있는 매핑 기술을 설명하기에 앞서, 이 설명을 안내하기 위해 몇몇 수학적 표기법을 이하에 소개한다.
소문자 글자는 스칼라 변수를 나타낸다: x, y, z
소문자 굵은체 글자는 벡터를 나타낸다: x, y, z
대문자 굵은체 글자는 행렬을 나타낸다: X, Y, Z
벡터는 열 벡터(N x 1 행렬)인 것으로 가정된다.
Figure pct00001
는 벡터 v의 크기이다.
Figure pct00002
는 벡터 xy의 내적이다.
x×y는 벡터 xy의 외적이다.
X y는 행렬 X와 벡터 y의 행렬 곱셈이다.
X T는 전치 행렬(matrix transpose)이다.
Figure pct00003
Figure pct00004
의 방향에서의 단위 벡터이다.
<q0, v>는 스칼라 성분 q0 및 길이 3 벡터 v를 갖는 쿼터니언(quaternion) q이다.
Vector(q) = v, 여기서 q는 쿼터니언 <q0, v>이다.
Figure pct00005
qp의 쿼터니언 곱셈이다.
q*q의 쿼터니언 공액(quaternion conjugate)이다: <q0, v>* = <q0, -v>
b x는 보디-프레임 좌표(body-frame coordinate)로 정의되는 벡터 x이다.
u x는 사용자-프레임 좌표(user-frame coordinate)로 정의되는 벡터 x이다.
길이 2 벡터 v는 (vx, vy)라고 하는 부성분을 갖는 것으로 가정된다.
길이 3 벡터 v는 (vx, vy, vz)라고 하는 부성분을 갖는 것으로 가정된다.
이 표기법을 사용하여, 도 7에 도시된 바와 같이 장치 움직임을 커서 이동으로 처리하는 예시적인 기술에 대해 이제부터 생각해볼 것이다. 이 도면은 2개의 좌표계를 나타내고 있다. 제1 좌표계, 즉 사용자-프레임 좌표계는, 이 일례에서, 디스플레이의 중앙에 오도록 임의적으로 선택되고 (x, y, z)로 이루어져 있다. 사용자-프레임 좌표계는 디스플레이에 대해 고정되어 있다. 좌표계는 디스플레이 안쪽으로의 x, 디스플레이의 오른쪽으로의 y, 및 아래쪽으로의 z를 가지며, 이는 통상적인 항공우주 좌표계 관례에 대응한다. 당업자라면 대안의 관례가 그 대신에 사용될 수 있고, 예를 들어, PC 디스플레이 좌표(x 오른쪽, y 아래쪽, z 디스플레이 안쪽) 및 HID(x 디스플레이 바깥쪽, y 오른쪽, z 아래쪽)를 포함한다는 것을 잘 알 것이다. 이 설명을 위해, 사용자-프레임 축은 임의적으로 다음과 같이 정의될 것이다:
Figure pct00006
Figure pct00007
당업자라면 본 발명을 실질적으로 변경하지 않고 사용자-프레임 좌표계 축 및 원점이 선택될 수 있다는 것을 잘 알 것이다. 이상의 설명은 직교 좌표계(Cartesian coordinate system)를 가정하지만, 본 발명에 영향을 주지 않고 구좌표(spherical coordinates) 등의 다른 좌표계도 사용될 수 있다.
이 예시적인 실시예에서, 제2 좌표계는 장치의 보디-프레임 좌표계이다. 보디-프레임 좌표계는 장치에 대해 고정되어 있다. 보디-프레임 원점이 통상적으로 장치의 중앙에 있지만, 요구되지는 않는다. 보디-프레임 축은 (xo, yo, zo)로 도시되어 있고, xo는 장치의 전방쪽, yo는 오른쪽, zo는 아래쪽을 나타낸다. 이 설명을 위해, 보디-프레임 축은 임의적으로 다음과 같이 정의된다:
Figure pct00008
당업자라면 본 발명을 실질적으로 변경하지 않고 보디-프레임 좌표계 축 및 원점이 선택될 수 있다는 것을 잘 알 것이다. 이상의 설명은 직교 좌표계를 가정하지만, 본 발명에 영향을 주지 않고 구좌표 등의 다른 좌표계도 사용될 수 있다.
길이 3 벡터 ou는 사용자-프레임 좌표계의 원점이고, 디스플레이에 고정되어 있는 것으로 정의된다. u ou는 본 실시예에 대해 (0, 0, 0)으로서 정의된다. 길이 3 벡터 ob는 보디-프레임 좌표계의 원점이고, 장치에 고정되어 있는 것으로 정의된다. b ob는 본 실시예에 대해 (0, 0, 0)으로서 정의된다. 길이 3 벡터 od는 디스플레이 좌표계의 원점이고, 디스플레이에 고정되어 있는 것으로 정의된다. u od는 본 실시예에 대해 (0, cx, cy)로서 정의된다. 길이 3 벡터 u는 3-D 공간에서의 장치의 직선 위치로서 정의된다. u = ob. 길이 3 벡터 w는 장치의 보디-프레임 좌표계 원점 ob로부터 사용자-프레임 좌표계 원점 ou로의 벡터이다. 수학적으로는, w = ou - ob = -u.
쿼터니언 q는 사용자-프레임 좌표에 대한 장치의 각도 위치로서 정의된다. 이 설명에서, q는 단위 쿼터니언
Figure pct00009
으로서 정의된다. 쿼터니언 대신에, 예를 들어, 오일러 각도(Euler angles), 방향 코사인 행렬(DCM, direction cosine matrix), 및 벡터/각도를 비롯한 임의의 원하는 대안의 각도 위치 표현도 사용될 수 있다. 길이 2 벡터 p는 2-D 디스플레이 좌표로서 주어지는 디스플레이 상의 포인팅 장치의 커서 위치이다. 길이 2 벡터 p 0는 디스플레이 좌표계의 커서 위치이다. 길이 3 벡터 ω는 각속도이다. 위의 관례에 따라, u ω는 사용자-프레임 좌표에서의 각속도이고, b ω는 장치의 보디-프레임 좌표에서의 각속도이다. 보디-프레임 좌표에서의 벡터가 주어지면, 사용자-프레임 좌표에서의 벡터는 하기의 수학식을 사용하여 구해질 수 있다:
Figure pct00010
사용자-프레임 좌표에서의 벡터가 주어지면, 보디-프레임 좌표에서의 벡터는 하기의 수학식으로 구해질 수 있다:
Figure pct00011
이 예시적인 수학적 문맥과 관련하여, 절대 포인팅을 사용하여 장치 움직임을 커서 위치에 매핑하는 것에 대해 먼저 살펴볼 것이다. 절대 포인팅 시스템에서의 커서는 디스플레이와 장치의 x o 축을 포함하는 선의 교점에 위치해야 한다. 예를 들어, 레이저 포인터가 장치(701)에 적절히 장착된 경우, 디스플레이(702) 상에서의 커서 위치 및 레이저 포인터의 점이 동일한 위치에 있어야만 한다. 사용자-프레임 좌표가 주어진 경우 절대 포인팅에 대한 전체적인 수학식은 다음과 같다.
Figure pct00012
절대 포인팅은 사용자가 디스플레이 상의 표적을 직접 조준하는 슈팅 게임에 특히 적합하다. 절대 포인팅은 사람이 팔, 손 및 손가락으로 우리 주변에 있는 물리적 물체를 가리키는 방법과 유사하다. 절대 포인팅에서, 커서 움직임 대 각도 장치 움직임의 비가 거리의 함수로서 변한다. 장치가 디스플레이로부터 멀리 있을수록, 디스플레이 상에서 주어진 거리만큼 커서를 이동시키는 데 필요한 각도 움직임이 작다. 마찬가지로, 장치가 x 축으로부터 멀리 있을수록, 커서를 이동시키는 데 필요한 각도 움직임이 작다. 따라서, 예를 들어, 절대 포인팅 알고리즘은, 장치의 전방 포인팅 방향(보디-프레임 x-축)과 커서가 디스플레이되어야 하는 디스플레이의 표면의 교점에 기초하여, 장치 움직임을 커서 위치에 매핑한다.
u u x의 값은 거리 보정 인자(distance correction factor)에 대응한다. 이 거리 보정 인자는 발명의 명칭이 "Space coordinates detecting device and input apparatus using same"인 미국 특허 제5,627,565호(여기에 인용함으로써 그 개시 내용이 본 명세서에 포함됨)에 기술되어 있다.
그 다음에, 상대 포인팅 또는 "보디-프레임" 상대 포인팅에 대해 살펴볼 것이다. 일부 응용은 디스플레이를 직접 포인팅하는 것을 필요로 하지 않거나, 어떤 의미있는 기준 프레임(frame of reference)을 가지지 않을 수 있다. 이러한 경우에, 응용은 장치 자체를 주 기준(primary reference)으로서 사용하기로 선택할 수 있다. u x o x가 플러스인 한, 디스플레이의 위치 또는 장치의 위치에 상관없이, 사용자가 y o 축을 따라 직선으로 장치를 이동시키거나 z o 축을 중심으로 회전하는 경우, 커서가 항상 오른쪽으로 이동할 것이다.
오일러 적분에서 이산 시간을 가정하는 경우, 보디-프레임 상대 포인팅은 수학적으로 다음과 같이 정의된다.
Figure pct00013
유의할 점은, 장치가 이 수학식 내의 양쪽 항 모두를 구현할 필요가 없다는 것이다. 상대 포인팅이 도 8에 기능적으로 도시되어 있다. 상대 포인팅에서는, 절대 포인팅과 달리, 커서 움직임의 양이 장치(800)의 위치에 의해 영향을 받지 않는다. 그렇지만, 장치의 전방 방향 및 커서 위치가 결정적이지 않고, 시간에 따라 변할 수 있다. 일부 응용에서는, 이러한 분리(decoupling)가 유리하다. 실제의 커서 위치는 종종 포인터 탄도학(pointer ballistics)(802)이라고 하는 비선형 함수인, 도 8에서 vPointer라고 하는, 비선형 함수 Δp를 사용하여 계산될 수 있다. 종래의 2-D 컴퓨터 마우스는 포인터 탄도학(802)을 사용하여 그의 겉보기 사용성 및 성능을 향상시키며, 이 기능은 3D 포인터 매핑에서도 사용될 수 있다. 포인터 탄도학(802)의 출력 vSys는 이어서, 블록(804)에서, 경계 조건 등에 따라 스크린 상에서 커서를 이동시키는 데 사용된다.
보디-프레임 상대 포인팅이 몇몇 이점을 제공하지만, 사용자는 종종 장치의 위치에는 관심이 없고 사용자가 움직인 상대 이동에만 관심이 있다. 따라서, 본 명세서에서 고려되는 제3 유형의 매핑은 "사용자-프레임 상대 포인팅(user-frame relative pointing)"이라고 한다. 사용자-프레임 상대 포인팅에서, 사용자가 사용자-프레임 z-축을 중심으로 장치를 회전시키는 경우, 커서가 오른쪽으로 이동해야 한다. 사용자가 사용자-프레임 z-축을 따라 장치를 직선으로 이동시키는 경우, 커서가 아래쪽으로 이동해야 한다.
오일러 적분에서 이산 시간을 가정하는 경우, 사용자-프레임 상대 포인팅은 수학적으로 다음과 같이 정의된다:
Figure pct00014
유의할 점은, 장치가 양쪽 항 모두를 구현할 필요가 없다는 것이다. 미국 특허 제7,158,118호(여기에 인용함으로써 그 개시 내용이 본 명세서에 포함됨)는 사용자-프레임 상대 포인팅에 관한 상세 및 개시 내용을 포함하고 있다. 이 미국 특허에 기술된 한 예시적인 실시예에서, -bz는 가속도계에 의해 측정된다. 보디-프레임 상대 포인팅에서와 같이, 사용자-프레임 상대 포인팅에서는, 커서 움직임의 양이 장치의 위치에 의해 영향을 받지 않는다. 그렇지만, 장치의 전방 방향 및 커서 위치가 결정적이지 않고, 시간에 따라 변할 수 있다. 일부 응용에서는, 이러한 분리가 유리하다. 실제의 커서 위치는, 종종 포인터 탄도학이라고 하는, 비선형 함수 Δp를 사용하여 계산될 수 있다. 종래의 2-D 컴퓨터 마우스는 포인터 탄도학을 사용하여, 그의 겉보기 사용성 및 성능을 개선시킨다.
많은 응용에서, 장치 응답성은 방 안에서의 그의 위치에 상관없이 일정해야만 하지만, 여전히 디스플레이 쪽을 가리키고 있어야만 한다. 예시적인 실시예에 따르면, 본 명세서에서 "절대 불변 포인팅(absolute invariant pointing)"이라고 하는 제4 매핑 기술은, 각각의 방법의 부정적 인자를 최소화하면서, 상대 포인팅 이점들 중 다수를 절대 포인팅 이점들과 혼합한 것이다. 절대 불변 포인팅은 수학적으로 다음과 같이 정의될 수 있다.
Figure pct00015
여기서 c는 상수이다.
절대 불변 포인팅은, 이상에서 기술한 절대 포인팅과 같이, 장치 직선 위치 및 각도 위치로부터 커서 위치로의 직접적인 반복가능한 매핑을 포함한다. 이와 동시에, 직선 움직임 및 각도 움직임에 대한 커서 응답성이 움직임 범위에 걸쳐 일관성 있다. 장치가 디스플레이 중앙의 왼쪽 또는 오른쪽에 위치하는 경우, 사용자는 통상적으로 장치를, 디스플레이 법선 벡터(normal vector) x가 아니라 장치로부터 디스플레이로의 벡터에 대해 왼쪽으로 또는 오른쪽으로 이동시키려고 시도한다. 이 결과, 장치가 x-축으로부터 먼쪽으로 이동함에 따라 직선 움직임 분해능의 겉보기 손실이 있다. 따라서, 이 예시적인 실시예에 따른 절대 불변 매핑 알고리즘은 직선 위치 값의 항과 직선 위치에 독립적인 각도 위치로부터 계산된 항의 합으로서 커서 위치를 발생한다.
"가상 디스플레이"라고 하는 제5 매핑 기술은, 장치가 축을 벗어나 이동함에 따라 "절대 불변 포인팅"에서 발견되는 겉보기 직선 분해능의 손실을 감소시킨다. "가상 디스플레이" 기술은 장치와 마주하기 위해 움직이는 중간의 가상 디스플레이를 생성할 수 있다. 장치와 마주하기 위해 움직이는 것에 의해, 장치가 디스플레이 바로 전방에 있는 것처럼, 가상 디스플레이는 동일한 분해능을 유지한다. 가상 디스플레이 전체가 장치와 바로 마주하기 위해 움직인다. 축 x Δ, y Δ, 및 z Δ으로 구성함으로써 새로운 가상 디스플레이 좌표계가 생성된다. 수학적 항으로는,
Figure pct00016
통상적으로, 새로운 좌표계는 바람직하게는 y-축을 "수평"으로 유지하고 z-축을 "수직"으로 유지하지만, 꼭 그럴 필요는 없다. 구성에 의해, 나머지 축은 다음과 같을 것이다:
Figure pct00017
장치와 마주하기 위해 가상 디스플레이를 완전히(fully) 회전시킴으로써, 장치가 원점으로부터 먼쪽을 가리킬 때 커서 응답이 아주 비선형적으로 된다. 이들 효과를 최소화하는 데 도움을 주기 위해, 가상 디스플레이 좌표계는 장치 쪽으로 완전히 회전할 필요가 없다. u x
Figure pct00018
사이에 uxΔ를 구성하기 위해 스케일링 인자가 적용될 수 있다. 예를 들어,
Figure pct00019
여기서 c는 0과 1 사이의 값(경계값을 포함함)이다.
가상 디스플레이가 절대 포인팅 알고리즘에 적용되어 평면 가상 디스플레이를 생성할 수 있다:
Figure pct00020
가상 디스플레이 방법은 또한 전술한 절대 포인팅 및 절대 불변 포인팅을 비롯한 임의의 절대 또는 의사-절대 매핑 방법에 적용될 수 있다. 커서가 비평면 디스플레이 상에 존재하는 경우, 이 방법은 비평면 디스플레이의 가상 디스플레이를 생성하도록 용이하게 적응될 수 있다. 따라서, 예시적인 실시예에 따르면, 중간의 평면 가상 디스플레이는, 장치의 전방 포인팅 방향(보디-프레임 x-축)과 커서가 장치와 적어도 부분적으로 마주하기 위해 회전되어 디스플레이되어야 하는 디스플레이의 표면의 교점에 기초하여, 장치 움직임을 커서 위치에 매핑한다.
많은 응용에서, 각도 응답이 직선 응답보다 더 중요하다. 그렇지만, 가상 디스플레이 방법은 일관성 있는 각도 응답을 가지지 않는다. 각도 응답성은 상대 포인팅이 아니라 절대 포인팅과 유사하다.
"가상 구면 디스플레이(virtual spherical display)"라고 하는 제6 매핑 기술은, "가상 디스플레이"와 달리, 일정한 각도 응답을 유지한다. 예를 들어, 극좌표(polar coordinate)로의 변환이 먼저 수행되는 경우, 즉,
Figure pct00021
다음으로, 알고리즘은 다음과 같이 θ 및 φ에 대해 풀고, 최종적으로 동차 좌표(homogenous coordinate)를 사용하여 p에 대해서 풀 수 있다.
Figure pct00022
여기서 T는 임의적인 상수들의 3x3 일반 변환 행렬이다. 행렬 T는 스케일(scale), 회전, 병진이동(translation), 밀림(shearing), 반사, 정사영(orthogonal projection), 아핀 변환(affine transformation) 또는 투시 투영(perspective projection)의 임의의 조합을 적용할 수 있다. 따라서, 이 예시적인 실시예에 따른 구면 가상 디스플레이는, 추정된 각도 위치의 구좌표가 변환 행렬에 의해 가상 디스플레이 좌표로 변환되고 커서 위치로 변환되는 것에 기초하여, 장치 움직임을 커서 위치에 매핑한다.
"상대 구면 가상 디스플레이"라고 하는 제7 매핑 기술을 생성하기 위해, 구면 가상 디스플레이 방법이 상대 포인팅에 적용될 수 있다. 각도를 사용하여 커서를 제어하는 대신에, 이 방법은 각도의 변화를 사용하여 커서의 변화를 구동한다.
Figure pct00023
여기서 T는 임의적인 상수들의 3x3 일반 변환 행렬이다. 행렬 T는 스케일, 회전, 병진이동, 밀림, 반사, 정사영, 아핀 변환 또는 투시 투영의 임의의 조합을 적용할 수 있다. 따라서, 이 예시적인 실시예에 따른 중간의 상대 구면 가상 디스플레이는, 변환 행렬에 의해 수정되어 커서 위치 변화로 변환되는 보디-프레임 각속도에 기초하여, 장치 움직임을 커서 위치에 매핑한다.
각도 위치는 또한 구면 투영을 사용하여 커서 좌표에 매핑될 수 있다. 이 제8 매핑 방법은 "각도 위치 구면 투영"이라고 한다.
Figure pct00024
여기서, q I 는 임의적인 초기 각도 위치 회전 값이다. 그러면, 알고리즘은 다음과 같이 θ 및 φ에 대해 풀고, 최종적으로 동차 좌표를 사용하여 p에 대해서 풀 수 있다.
Figure pct00025
여기서 T는 임의적인 상수들의 3x3 일반 변환 행렬이다. 행렬 T는 스케일, 회전, 병진이동, 밀림, 반사, 정사영, 아핀 변환 또는 투시 투영의 임의의 조합을 적용할 수 있다. 당업자라면, 동차 좌표에서의 p의 제3 행이 1이 아닌 경우, p가 1이 되도록 스케일링될 수 있다는 것을 잘 알 것이다.
전술한 절대 방법들 전부 또는 일부의 출력이 간단한 선형 결합 또는 보다 복잡한 비선형 결합에 의해 결합될 수 있다. 예를 들어, 응용이 대체로 절대적이지만 개선된 각도 분해능 포인팅 일관성을 갖도록 원해지는 것으로 가정한다. 이 경우에, 전술한 "절대 포인팅 매핑"과 "불변 절대 포인팅 매핑"의 결합이 수행될 수 있다. 예시적인 실시예는, 예를 들어, 간단한 선형 결합(또는 보다 복잡한 비선형 프로세스)을 사용하여 전술한 방법들 중 임의의 2개 이상을 결합할 수 있다. 각각의 방법 pi에 대해, 응용은 가중 인자 ci를 할당한다. 최종적으로 얻어지는 p는 다음과 같다:
Figure pct00026
이상적으로는, 일관된 커서 응답을 유지하기 위해
Figure pct00027
이지만, 이 제약조건이 요구되지는 않는다.
이와 유사하게, 전술한 상대 방법들 전부 또는 일부의 출력이 간단한 선형 결합 또는 보다 복잡한 비선형 결합에 의해 결합될 수 있다. 예를 들어, 장치의 각도 위치 및 각속도 둘다가 고유의 결점을 갖는 것으로 가정한다. 일 실시예는 "사용자-프레임 상대 포인팅"과 "상대 구면 가상 디스플레이"의 똑같은 선형 결합을 사용할 수 있으며, 이는 각각의 방법의 결점을 절반으로 줄일 것이다. 예시적인 실시예는 간단한 선형 결합을 사용하여 이 방법들을 결합한다. 각각의 방법 pi에 대해, 응용은 가중 인자 ci를 할당한다. 최종적으로 얻어지는 Δp는 다음과 같다:
Figure pct00028
이상적으로는, 일관된 커서 응답을 유지하기 위해
Figure pct00029
이지만, 이 제약조건이 요구되지는 않는다.
이들 예시적인 실시예에 따라 절대 포인팅 방법과 상대 포인팅 방법을 결합시키는 것도 고려된다. 결합된 절대 및 상대 포인팅 매핑이 이용될 수 있는 한 방법은 커서가 상대 포인팅을 통해 주로 제어되고, 기준으로부터의 장기 드리프트(long-term drift)를 피하기 위해, 절대 포인팅을 사용하여 커서 이동을 조절하는 것이다. 장기 드리프트를 피하는 것은 상대 포인팅 해결 방안에서 통상적인, 커서를 주기적으로 다시 중앙에 오게 하는 것을 없애줄 것이다. 예시적인 실시예에 따라 상대 포인팅을 사용할 때와 비선형 포인터 탄도학을 사용할 때, 3D 포인터 위치와 커서 위치 간의 매핑은 시변적이며 움직임의 위치 및 범위, 또한 이동 속도에 의존적이다. 3D 포인터 위치 및 그와 연관된 커서 위치의 이력을 유지함으로써, 3D 포인터 위치에 기초하여 커서 위치를 정의하는 적응적 맵(adaptive map)을 정의하는 것이 가능하다. 이 맵은 맵을 사용하여 커서 위치의 이력과 커서 위치에 매핑되는 3D 포인터 위치의 이력 간의 차이를 최소화하도록 제약될 수 있다.
이러한 실시예의 일례가 도 9에 도시되어 있다. 이 특정의 예시적인 실시예에서, "사용자-프레임 상대 포인팅" 매핑은 "각도 위치 구면 투영"과 결합되고, 이들 매핑 둘다는 위에서 개별적으로 설명하였다. 포인팅 장치(900)는, 아래쪽 분기(902)에서, 도 8과 관련하여 전술한 사용자-프레임 상대 포인팅 데이터인 vPointer 데이터를 출력한다. 위쪽 분기(904)에서, 포인팅 장치(900)는 절대 포인팅 매핑 알고리즘에 의해 입력으로서 사용되는 각도 위치를 출력한다. 블록(906)에서 맵이 생성되며, 이 맵은, 이 예시적인 실시예에서, 출력 각도 위치에 대해 각종의 변환, 예를 들어, 스케일(임의의 축에서의 연장), 회전(직교성을 보존함), 밀림(본질적으로 축을 비직교로 만듦), 병진이동(데이터의 2D 응용을 고려하는 오프셋), 반사, 및 임의의 다른 아핀 변환 또는 투시 투영을 수행할 수 있는 3x3 일반 변환 행렬 T를 포함한다. 맵은 또한 원점 값(쿼터니언)을 정의한다. 맵이 어떻게 생성될 수 있는지의 상세한 일례가 도 10에 도시되어 있다.
도 10의 블록(1002)에서, 공칭 원점(nominal origin)으로부터의 편차를 고려하기 위해, 장치로부터 출력되는 각도 위치가 먼저 회전되어 장치의 측정된 각도 위치를 매핑한다. 초기 회전을 적용한 후에, 블록(1004)에서 각도 위치가 구좌표로 변환된다. 블록(1006)에서 샘플에 대한 가중치를 결정하기 위해 현재의 샘플이 평가된다. 가중치는, 커서가 현재 스크린 상의 어디에 위치하는지와 포인팅 장치(900)의 각도 위치 간의 현재의 맵을 정의하는 데, 각각의 이전의 점이 얼마나 중요한지를 나타낸다. 가중치는 어느 데이터 점이 저장할 가치가 있는지를 결정하는 데 도움을 주고, 맵을 구하기 위해 최소 제곱해(least squares solution)의 일부로서 사용될 수 있다. 예시적인 구현에서, 포인팅 장치의 절대 각도 위치에 기초하여, 1차 가중치(primary weight)가 각각의 샘플에 적용된다. 장치의 움직임 범위 전체가 일련의 일정한 작은 영역들로 분할된다. 각각의 영역에서의 첫번째 데이터 점이 가장 큰 가중치를 가지며, 그 영역 내의 모든 장래의 점은 보다 작은 가중치를 가진다. 그에 부가하여, 장치가 정지하고 있는 점이 장치가 움직이고 있는 점보다 더 중요하도록, 현재의 각속도에 기초한 2차 가중치(secondary weight)가 적용된다. 이 가중치에 기초하여, 블록들(1008, 1010 및 1012)에서 각각, 커서 위치, 각도 위치 및 가중된 샘플 중 최상의 N개의 샘플이 저장되어 맵 계산에 사용된다. 블록(1014)에서, 먼저 입력 데이터가 구좌표로 변환하기 위한 타당한 범위 내에 있도록 회전 원점을 계산함으로써 맵이 생성된다. 커서가 디스플레이 경계를 넘어 이동하는 경우, 새로운 정렬을 정의하기 위해 원점 및 저장된 상태가 조정될 수 있다. 그 다음에, 일련의 방위각/고도각 쌍을 일련의 커서 위치로 변환하는 3x3 일반 변환 행렬 T가 생성된다. T를 구하는 한가지 방법은 N개의 저장된 샘플 각각에 대한 에러 벡터 v n을 다음과 같이 정의하고:
Figure pct00030
이어서 하기의 최소 제곱 에러를 최소화하는 것이며,
Figure pct00031
여기서 wn은 각각의 샘플에 대한 가중치이다. 당업자라면, QR 분해 또는 특이값 분해(singular value decomposition) 등의 Moore-Penrose 의사 역행렬(pseudoinverse) 및 직교 분해 방법을 사용하여 노말 방정식(normal equations)의 역을 구하는 것(inverting)을 비롯하여, 이 선형 최소 제곱 문제에 대한 해를 구하는 많은 방법이 존재한다는 것을 잘 알 것이다. 예시적인 구현에서 QR 분해가 사용된다.
도 9로 되돌아가서, 블록(906)에서 맵이 정의되면, 블록(908)에서 기준 커서 위치 pRef를 발생하기 위해 이 맵이 현재의 3D 포인터 위치를 디스플레이 좌표에 매핑하는 데 사용된다. 이 예시적인 프로세스에 관한 추가의 상세는 도 11에 도시되어 있다. 도 11의 블록(1102)에서, 장치(900)의 각도 위치가 블록(1002)과 관련하여 전술한 바와 동일한 방식으로 회전되고, 블록(1104)에서 출력이 구좌표로 변환되어(translated) Az / El이라고 하는 2x1 벡터를 생성한다. 이것은 이어서 동차 좌표로 변환되고 이어서 블록(1106)에서 맵 행렬 T와 곱해져 pRef를 산출한다. pRef 값은 따라서 이 예시적인 결합 매핑의 절대 포인팅 시스템 구성요소에 기초한 커서에 대한 원하는 위치를 나타낸다.
다시 도 9로 돌아가서, 상대 포인팅 값 vSys, 절대 포인팅 값 pRef 및 현재의 커서 위치 p0는 동적 탄도학 함수(910)에 입력된다. 동적 탄도학 함수(910)는 이들 입력을 받고, 이 예시적인 실시예에서, 절대 포인팅 값 및 현재 커서 위치를 사용하여 상대 포인팅 값을 조정한다. 보다 구체적으로는, 도 12에 도시된 바와 같이, 커서 이동이 커서에 적용되기 전에, 현재 커서 위치 및 기준 커서 위치를 사용하여 커서 이동을 조정한다. 커서를 조정하는 한가지 방법은 새로운 커서 위치가 기준 점에 더 가까워지도록 현재 속도 벡터의 스케일 및 각도에 작은 조정을 수행하는 것이다. 먼저, 블록(1202)에서, 현재 점이 기준 점으로부터 감산되어 기준 속도 벡터 vRef를 얻는다. 블록(1204)에서, 이 기준 벡터가 원래의 속도 v0와 비교되어 벡터들 간의 각도를 구한다. 블록(1206)에서, 이 각도는 일정한 최대값으로 제한되고, 이어서 도 12의 블록(1208)에 도시한 바와 같이, 벡터 v0를 회전하여 vRot를 생성하는 데 이용된다. 그 다음에, 블록(1210)에 도시된 바와 같이, 기준 벡터가 vRot 상으로 투영되어 vRot의 스케일링을 구하며, 이는 기준 점에 가장 가까운 그 다음 점을 얻는다. 이 스케일링은 최대값과 최소값 사이로 제한되고(블록 1212), 이어서 블록(1214)에서 vRot에 적용된다. 최대 각도 및 최대 스케일에 대한 제한은 얼마만큼의 보정이 적용될 것인지를 제어하기 위해 조정될 수 있다.
절대 포인팅 방법과 상대 포인팅 방법을 결합함으로써, 상대 포인팅의 이점을 유지하고 여전히 디스플레이에 매핑되는 3D 장치 위치들의 고정된 영역을 유지하는 것이 가능하다. 이것은 드리프트 없는 상대 포인팅을 가능하게 해주며, 이는, 시각 t0에서 3D 포인터 위치 q 및 커서 위치 p1이 주어진 경우, 시각 t1>t0에서 장치를 위치 q로 되돌아가게 하면
Figure pct00032
이도록 커서 위치가 p2로 되돌아간다는 불변식(invariant)을 가진다.
전술한 매핑 기술의 다양한 변형 및 대안이 생각된다. 예를 들어, 조합이 전체 매핑 방법으로 제한될 필요는 없다. 각각의 매핑 방법의 각각의 항에 그 자신의 가중 인자가 할당될 수 있다. 게다가, 가상 디스플레이가 장치를 완전히 추적할 필요는 없다. 절충안으로는 다음과 같은 것들이 있다:
1. 직선 움직임을 적절히 스케일링하기 위해 임의적인 x-축 값을 실제의 장치 위치에 가산(또는 감산)하는 것.
2. 장치로부터 가상 디스플레이까지의 거리를 알고리즘적으로 증가 또는 감소시키는 것.
3. 장치의 실제 위치에 스케일 인자를 곱하여 직선 움직임에 대한 응답을 감소시키거나 증가시키는 것.
4. 위의 인자들 중 임의의 것의 조합.
대안의 가상 디스플레이 표면이 사용될 수 있다. 이상의 설명에서는 평면 및 구를 언급하고 있지만, 가상 디스플레이는 원통, 타원 및 고차 표면으로 확장될 수 있다.
따라서, 한 예시적인 실시예에 따르면, 장치의 이동을 커서 위치에 매핑하는 방법은 도 13의 플로우차트에 도시한 단계들을 포함할 수 있다. 도 13의 단계(1300)에서, 3D 포인팅 장치의 직선 위치 및 각도 위치 중 적어도 하나가 추정(또는 감지, 측정, 검출 등)될 수 있다. 어떤 경우에, 전술한 예시적인 매핑 알고리즘은 장치의 직선 위치만, 장치의 각도 위치만, 또는 장치의 직선 위치 및 각도 위치 둘다를 매핑 알고리즘에의 입력으로서 사용할 수 있다. 이어서, 단계(1302)에서, 제1 커서 위치를 발생하는 제1 매핑 알고리즘 및 제2 커서 위치를 발생하는 제2 매핑 알고리즘 둘다를 사용하여 추정된 직선 위치 및 추정된 각도 위치 중 적어도 하나가 처리된다. 단계(1304)에서 그 결과가 결합되어 최종 커서 출력을 발생한다.
매핑 알고리즘이 부분적인 또는 불완전한 움직임 데이터에 작용할 수 있다. 예를 들어, 2개의 항 중 하나에 대해서만 사용자-프레임 상대 포인팅이 유용하다. 일부 응용은 각도 움직임과 직선 움직임 둘다가 아니라 이들 중 어느 하나를 수집하면서 사용자-프레임 상대 포인팅을 이용할 수 있다. 센서(들)는 사용자-프레임 좌표, 보디-프레임 좌표, 또는 사용자-프레임 좌표와 보디-프레임 좌표의 조합에서 움직임을 수집하고 추정할 수 있다. 매핑 알고리즘은 보디-프레임 좌표계, 사용자-프레임 좌표계, 또는 임의의 다른 좌표계에서 동작할 수 있다. 직교 좌표계 및 구 좌표계를 비롯한 임의의 좌표계에서 움직임이 측정될 수 있다. 매핑 알고리즘은 속도 및 가속도를 비롯한 직선 위치의 도함수를 사용할 수 있다. 매핑 알고리즘은 속도 및 가속도를 비롯한 각도 위치의 도함수를 사용할 수 있다. 매핑 결합 방법은 중요하지 않으며 하나의 매핑 방법으로부터의 데이터만을 사용할 수 있다. 다른 알고리즘에 대한 인자가 0일 수 있다. 계수값이 0인 수학적 항은 계산될 필요가 없거나 최종 구현에서 나타날 필요가 없다.
본 발명의 예시적인 실시예에 따른 데이터를 처리하는 시스템 및 방법은 메모리 장치에 들어 있는 명령어 시퀀스를 실행하는 하나 이상의 프로세서에 의해 수행될 수 있다. 이러한 명령어는 보조 데이터 저장 장치(들) 등의 다른 컴퓨터-판독가능 매체로부터 메모리 장치 내로 판독될 수 있다. 메모리 장치에 들어 있는 명령어 시퀀스의 실행에 의해, 프로세서는, 예를 들어 전술한 바와 같이 동작하게 된다. 대체 실시예에서, 본 발명을 구현하기 위해 소프트웨어 명령어 대신에 또는 그와 함께 하드-와이어 회로(hard-wire circuitry)가 사용될 수 있다. 이러한 소프트웨어는 장치, 예를 들어, 센서를 포함하는 3D 포인팅 장치 또는 기타 장치 내에 하우징되어 있는 프로세서 상에서 실행될 수 있거나, 이 소프트웨어는 센서를 포함하는 장치와 통신하고 있는 다른 장치, 예를 들어, 시스템 제어기, 게임 콘솔, 개인용 컴퓨터 등 내에 하우징되어 있는 프로세서 또는 컴퓨터 상에서 실행될 수 있다. 이러한 경우에, 센서를 포함하는 장치와 전술한 바와 같이 포인터 매핑을 수행하는 소프트웨어를 실행하는 프로세서를 포함하는 장치 사이에서 데이터가 유선 또는 무선을 통해 전달될 수 있다. 다른 예시적인 실시예에 따르면, 포인터 매핑과 관련하여 전술한 처리의 일부가 센서를 포함하는 장치에서 수행될 수 있는 반면, 나머지 처리가 센서를 포함하는 장치로부터 부분적으로 처리된 데이터를 수신한 후에 제2 장치에서 수행된다.
이상의 예시적인 실시예가 하나 이상의 회전 센서 및 가속도계를 포함하는 감지 패키지에 관한 것이지만, 이들 예시적인 실시예에 따른 포인터 매핑 기술이 이들 유형의 센서로만 제한되지 않는다. 그 대신에, 본 명세서에 기술된 포인터 매핑 기술이, 예를 들어, 가속도계(들), 광 및 관성 센서(예를 들어, 회전 센서, 자이로스코프, 각속도 센서 또는 선형 가속도계), 자력계 및 관성 센서(예를 들어, 회전 센서, 자이로스코프, 또는 선형 가속도계), 자력계 및 광 센서, 또는 기타 센서 조합만을 포함하는 장치에 적용될 수 있다. 그에 부가하여, 본 명세서에 기술된 예시적인 실시예가 3D 포인팅 장치 및 응용과 관련한 커서 매핑에 관한 것이지만, 이러한 기술이 그것으로 제한되지 않고, 다른 응용, 예를 들어, 의료 응용, 게임, 카메라, 군사 응용 등과 연관된 방법 및 장치에서 이용될 수 있다.
전술한 예시적인 실시예는 모든 점에서 본 발명을 제한하기 보다는 예시하는 것으로 보아야 한다. 따라서, 본 발명은 당업자에 의해 본 명세서에 포함된 설명으로부터 도출될 수 있는 상세한 구현에서 많은 변형이 가능하다. 예를 들어, 전술한 예시적인 실시예가, 그 중에서도 특히, 장치의 이동을 검출하기 위해 관성 센서를 사용하는 것을 기술하고 있지만, 다른 유형의 센서(예를 들어, 초음파, 자기 또는 광)가 전술한 신호 처리와 함께 관성 센서 대신에 또는 그에 부가하여 사용될 수 있다. 모든 이러한 변형 및 수정이 이하의 특허청구범위에 의해 한정되는 본 발명의 범위 및 사상에 속하는 것으로 생각된다. 본 출원의 설명에서 사용되는 어떤 구성요소, 동작 또는 명령어도, 명시적으로 그와 같이 기술되지 않는 한, 본 발명에 중요하거나 필수적인 것으로 해석되어서는 안된다. 또한, 본 명세서에서 사용되는 바와 같이, "단수(a)" 수식어는 하나 이상의 항목을 포함하기 위한 것이다.

Claims (106)

  1. 장치의 이동을 커서 위치에 매핑하는 방법으로서,
    상기 장치의 직선 위치 및 각도 위치 중 적어도 하나를 추정하는 단계,
    제1 커서 위치를 발생하는 제1 매핑 알고리즘 및 제2 커서 위치를 발생하는 제2 매핑 알고리즘 둘다를 사용하여 상기 추정된 직선 위치 및 추정된 각도 위치 중 적어도 하나를 처리하는 단계, 및
    상기 제1 커서 위치 및 상기 제2 커서 위치를 결합하여 최종 커서 출력을 발생하는 단계를 포함하는 매핑 방법.
  2. 제1항에 있어서, 상기 제1 매핑 알고리즘이 절대 포인팅 알고리즘이고, 상기 제2 매핑 알고리즘이 상대 포인팅 알고리즘인 매핑 방법.
  3. 제1항에 있어서, 상기 매핑 알고리즘들 중 적어도 하나는, 커서 움직임 대 각도 장치 움직임의 비가 상기 장치와 커서가 디스플레이되는 디스플레이 간의 거리의 함수로서 변하는 특성을 가지는 절대 포인팅 알고리즘인 매핑 방법.
  4. 제3항에 있어서, 상기 절대 포인팅 알고리즘은, 상기 장치의 전방 포인팅 방향(보디-프레임 x-축)과 상기 커서가 디스플레이되어야 하는 디스플레이의 표면의 교점에 기초하여, 장치 움직임을 커서 위치에 매핑하는 매핑 방법.
  5. 제4항에 있어서, 상기 절대 포인팅 알고리즘이 하기의 식으로 정의되고,
    Figure pct00033

    여기서 uux는 사용자의 기준 프레임에서의 직선 위치 x-축의 검출된 값이고,
    uuy는 사용자의 기준 프레임에서의 직선 위치 y-축의 검출된 값이며,
    uuz는 사용자의 기준 프레임에서의 직선 위치 z-축의 검출된 값이고,
    uxo x는 사용자의 기준 프레임에서의 보디-프레임 x-축의 검출된 값이며,
    uxo y는 사용자의 기준 프레임에서의 y-축을 따른 보디-프레임 y-축의 검출된 값이고,
    uxo z는 사용자의 기준 프레임에서의 z-축을 따른 보디-프레임 z-축의 검출된 값이며,
    p 0는 커서 좌표들에서의 디스플레이 좌표계 원점의 2D 벡터 값인 매핑 방법.
  6. 제1항에 있어서, 상기 매핑 알고리즘들 중 적어도 하나는 장치 직선 위치 및 각도 위치로부터 커서 위치로의 직접적인 반복가능한 매핑을 제공하는 특성과 직선 움직임 및 각도 움직임에 대한 커서 응답성이 움직임 범위에 걸쳐 일관성있는 제2 특성을 가지는 절대 불변 알고리즘(absolute invariant algorithm)인 매핑 방법.
  7. 제6항에 있어서, 상기 절대 불변 알고리즘은 직선 위치 값들의 항과 직선 위치에 독립적인 각도 위치로부터 계산된 항의 합으로서 커서 위치를 발생하는 매핑 방법.
  8. 제7항에 있어서, 상기 절대 불변 알고리즘이 하기의 식으로 정의되거나,
    Figure pct00034

    하기의 식으로 근사화되고,
    Figure pct00035

    여기서 q는 상기 각도 위치이고,
    uuy는 사용자의 기준 프레임에서의 직선 위치 y-축의 검출된 값이며,
    uuz는 사용자의 기준 프레임에서의 직선 위치 z-축의 검출된 값이고,
    uxo x는 사용자의 기준 프레임에서의 보디-프레임 x-축의 검출된 값이며,
    uxo y는 사용자의 기준 프레임에서의 보디-프레임 y-축의 검출된 값이고,
    uxo z는 사용자의 기준 프레임에서의 보디-프레임 z-축의 검출된 값이며,
    p 0는 커서 좌표들에서의 디스플레이 좌표계 원점의 2D 벡터 값인 매핑 방법.
  9. 제1항에 있어서, 상기 매핑 알고리즘들 중 적어도 하나는 상기 장치와 마주하기 위해 움직이는 중간의 가상 디스플레이를 생성하는 매핑 방법.
  10. 제9항에 있어서, 상기 중간의 평면 가상 디스플레이는, 상기 장치의 전방 포인팅 방향(보디-프레임 x-축)과 상기 커서가 상기 장치와 적어도 부분적으로 마주하기 위해 회전되어 디스플레이되어야 하는 디스플레이의 표면의 교점에 기초하여, 장치 움직임을 커서 위치에 매핑하는 매핑 방법.
  11. 제10항에 있어서, 상기 중간의 평면 가상 디스플레이가 하기의 식으로 정의되고,
    Figure pct00036

    여기서 uxΔ는 사용자-기준 프레임에서의 가상 디스플레이 x-축의 검출된 값이고,
    uyΔ는 사용자-기준 프레임에서의 가상 디스플레이 y-축의 검출된 값이며,
    uzΔ는 사용자-기준 프레임에서의 가상 디스플레이 z-축의 검출된 값이고,
    wy는 가상 디스플레이 기준 프레임에서의 직선 위치 y-축의 검출된 값이며,
    wz는 가상 디스플레이 기준 프레임에서의 직선 위치 z-축의 검출된 값이고,
    sx는 가상 디스플레이 기준 프레임에서의 보디-프레임 x-축의 검출된 값이며,
    sy는 가상 디스플레이 기준 프레임에서의 보디-프레임 y-축의 검출된 값이고,
    sz는 가상 디스플레이 기준 프레임에서의 보디-프레임 z-축의 검출된 값이며,
    p 0는 커서 좌표들에서의 디스플레이 좌표계 원점의 2D 벡터 값인 매핑 방법.
  12. 제1항에 있어서, 상기 매핑 알고리즘들 중 적어도 하나는 상기 장치와 마주하기 위해 움직이는 중간의 구면 가상 디스플레이를 생성하는 매핑 방법.
  13. 제12항에 있어서, 상기 구면 가상 디스플레이는, 상기 추정된 각도 위치의 구좌표들이 변환 행렬에 의해 가상 디스플레이 좌표들로 변환되고 커서 위치로 변환되는 것에 기초하여, 장치 움직임을 커서 위치에 매핑하는 매핑 방법.
  14. 제13항에 있어서, 상기 매핑이 상기 장치의 상기 추정된 직선 위치를 사용하지 않고 수행되는 매핑 방법.
  15. 제14항에 있어서, 상기 구면 가상 디스플레이가 하기의 식으로 정의되고,
    Figure pct00037

    여기서 bx는 가상 디스플레이 기준 프레임에서의 보디-프레임 x-축의 검출된 값이며,
    by는 가상 디스플레이 기준 프레임에서의 보디-프레임 y-축의 검출된 값이고,
    bz는 가상 디스플레이 기준 프레임에서의 보디-프레임 z-축의 검출된 값이며,
    T는 스케일(scale), 회전, 병진이동(translation), 밀림(shearing), 반사, 정사영(orthogonal projection), 아핀 변환(affine transformation) 및 투시 투영(perspective projection)의 임의의 조합을 적용할 수 있는 임의적인 상수들의 3x3 변환 행렬인 매핑 방법.
  16. 제1항에 있어서, 상기 매핑 알고리즘들 중 적어도 하나는 커서 위치의 변화를 결정하기 위해 상기 장치와 디스플레이 간의 각도의 변화를 사용하는 중간의 상대 구면 가상 디스플레이를 생성하는 매핑 방법.
  17. 제16항에 있어서, 상기 중간의 상대 구면 가상 디스플레이는, 변환 행렬에 의해 수정되어 커서 위치 변화로 변환되는 보디-프레임 각속도에 기초하여, 장치 움직임을 커서 위치에 매핑하는 매핑 방법.
  18. 제17항에 있어서, 상기 매핑이 상기 장치의 상기 추정된 직선 위치를 사용하지 않고 수행되는 매핑 방법.
  19. 제18항에 있어서, 상기 상대 구면 가상 디스플레이가 하기의 식으로 정의되고,
    Figure pct00038

    여기서 Δpx는 x-축에서의 커서 위치의 변화이고,
    Δpy는 y-축에서의 커서 위치의 변화이며,
    uωy는 y-축을 따른 사용자의 기준 프레임에서의 장치의 각속도이고,
    uωz는 z-축을 따른 사용자의 기준 프레임에서의 장치의 각속도이며,
    T는 스케일, 회전, 병진이동, 밀림, 반사, 정사영, 아핀 변환 및 투시 투영의 임의의 조합을 적용할 수 있는 임의적인 상수들의 3x3 변환 행렬인 매핑 방법.
  20. 제1항에 있어서, 상기 매핑 알고리즘들 중 적어도 하나는 각도 위치 구면 투영(angular position spherical projection)을 사용하여 상기 장치의 각도 위치를 커서 좌표들에 매핑하는 매핑 방법.
  21. 제20항에 있어서, 상기 각도 위치 구면 투영은, 상기 추정된 각도 위치가 (1) 초기 회전 인자(initial rotation factor)에 의해 보정되고, (2) 구좌표들로 변환되며, (3) 변환 행렬에 의해 가상 디스플레이 좌표들로 변환되고, (4) 커서 위치로 변환되는 것에 기초하여, 장치 움직임을 커서 위치에 매핑하는 매핑 방법.
  22. 제21항에 있어서, 상기 매핑이 상기 장치의 상기 추정된 직선 위치를 사용하지 않고 수행되는 매핑 방법.
  23. 제22항에 있어서, 구면 투영을 사용하여 각도 위치를 커서 좌표들에 매핑하는 것은, 하기의 식을 계산하여,
    Figure pct00039

    다음과 같이 θ, φ 및 p에 대해 푸는 것에 의해 수행되고,
    Figure pct00040

    여기서 q I 는 초기 회전 인자이고,
    bx는 가상 디스플레이 기준 프레임에서의 보디-프레임 x-축의 검출된 값이며,
    by는 가상 디스플레이 기준 프레임에서의 보디-프레임 y-축의 검출된 값이고,
    bz는 가상 디스플레이 기준 프레임에서의 보디-프레임 z-축의 검출된 값이며,
    T는 스케일, 회전, 병진이동, 밀림, 반사, 정사영, 아핀 변환 및 투시 투영의 임의의 조합을 적용할 수 있는 임의적인 상수들의 3x3 변환 행렬인 매핑 방법.
  24. 제1항에 있어서, 상기 장치의 직선 위치 및 각도 위치를 추정하는 상기 단계는, 적어도 하나의 센서로부터의 적어도 하나의 출력에 기초하는 매핑 방법.
  25. 제1항에 있어서, 상기 제1 매핑 알고리즘 및 상기 제2 매핑 알고리즘 둘다가 절대 포인팅 알고리즘인 매핑 방법.
  26. 제1항에 있어서, 상기 제1 매핑 알고리즘 및 상기 제2 매핑 알고리즘 둘다가 상대 포인팅 알고리즘인 매핑 방법.
  27. 제1항에 있어서, 최종 커서 위치가 상기 제2 매핑 알고리즘에 의해 발생된 상기 제2 커서 위치에 더 가깝게 이동되도록, 상기 제1 매핑 알고리즘의 출력이 동적 탄도학(dynamic ballistics)을 사용하여 조정되는 매핑 방법.
  28. 제1항에 있어서, 매핑된 점들의 이력에 기초하여 상기 제2 매핑 알고리즘의 출력과의 차이들을 최소화하도록, 상기 제1 매핑 알고리즘의 출력이 변환되는 매핑 방법.
  29. 3D 포인팅 장치로서,
    상기 3D 포인팅 장치의 이동과 연관되어 있는 출력을 발생하도록 구성된 적어도 하나의 센서, 및
    상기 출력을 사용하여 상기 장치의 직선 위치 및 각도 위치 중 적어도 하나를 추정하고, 제1 커서 위치를 발생하는 제1 매핑 알고리즘 및 제2 커서 위치를 발생하는 제2 매핑 알고리즘 둘다를 사용하여 상기 추정된 직선 위치 및 각도 위치 중 적어도 하나를 처리하며, 상기 제1 커서 위치 및 상기 제2 커서 위치를 결합하여 최종 커서 출력를 발생하도록 구성된 프로세서를 포함하는 3D 포인팅 장치.
  30. 제29항에 있어서, 상기 제1 매핑 알고리즘이 절대 포인팅 알고리즘이고, 상기 제2 매핑 알고리즘이 상대 포인팅 알고리즘인 3D 포인팅 장치.
  31. 제29항에 있어서, 상기 매핑 알고리즘들 중 적어도 하나는, 커서 움직임 대 각도 장치 움직임의 비가 상기 장치와 커서가 디스플레이되는 디스플레이 간의 거리의 함수로서 변하는 특성을 가지는 절대 포인팅 알고리즘인 3D 포인팅 장치.
  32. 제31항에 있어서, 상기 절대 포인팅 알고리즘은, 상기 장치의 전방 포인팅 방향(보디-프레임 x-축)과 상기 커서가 디스플레이되어야 하는 디스플레이의 표면의 교점에 기초하여, 장치 움직임을 커서 위치에 매핑하는 3D 포인팅 장치.
  33. 제32항에 있어서, 상기 절대 포인팅 알고리즘이 하기의 식으로 정의되고,
    Figure pct00041

    여기서 uux는 사용자의 기준 프레임에서의 직선 위치 x-축의 검출된 값이고,
    uuy는 사용자의 기준 프레임에서의 직선 위치 y-축의 검출된 값이며,
    uuz는 사용자의 기준 프레임에서의 직선 위치 z-축의 검출된 값이고,
    uxo x는 사용자의 기준 프레임에서의 보디-프레임 x-축의 검출된 값이며,
    uxo y는 사용자의 기준 프레임에서의 y-축을 따른 보디-프레임 y-축의 검출된 값이고,
    uxo z는 사용자의 기준 프레임에서의 z-축을 따른 보디-프레임 z-축의 검출된 값이며,
    p 0는 커서 좌표들에서의 디스플레이 좌표계 원점의 2D 벡터 값인 3D 포인팅 장치.
  34. 제29항에 있어서, 상기 매핑 알고리즘들 중 적어도 하나는 장치 직선 위치 및 각도 위치로부터 커서 위치로의 직접적인 반복가능한 매핑을 제공하는 특성과 직선 움직임 및 각도 움직임에 대한 커서 응답성이 움직임 범위에 걸쳐 일관성있는 제2 특성을 가지는 절대 불변 알고리즘인 3D 포인팅 장치.
  35. 제34항에 있어서, 상기 절대 불변 알고리즘은 직선 위치 값들의 항과 직선 위치에 독립적인 각도 위치로부터 계산된 항의 합으로서 커서 위치를 발생하는 3D 포인팅 장치.
  36. 제35항에 있어서, 상기 절대 불변 알고리즘이 하기의 식으로 정의되거나,
    Figure pct00042

    하기의 식으로 근사화되고,
    Figure pct00043

    여기서 q는 상기 각도 위치이고,
    uuy는 사용자의 기준 프레임에서의 직선 위치 y-축의 검출된 값이며,
    uuz는 사용자의 기준 프레임에서의 직선 위치 z-축의 검출된 값이고,
    uxo x는 사용자의 기준 프레임에서의 보디-프레임 x-축의 검출된 값이며,
    uxo y는 사용자의 기준 프레임에서의 보디-프레임 y-축의 검출된 값이고,
    uxo z는 사용자의 기준 프레임에서의 보디-프레임 z-축의 검출된 값이며,
    p 0는 커서 좌표들에서의 디스플레이 좌표계 원점의 2D 벡터 값인 3D 포인팅 장치.
  37. 제29항에 있어서, 상기 매핑 알고리즘들 중 적어도 하나는 상기 장치와 마주하기 위해 움직이는 중간의 가상 디스플레이를 생성하는 3D 포인팅 장치.
  38. 제37항에 있어서, 상기 중간의 평면 가상 디스플레이는, 상기 장치의 전방 포인팅 방향(보디-프레임 x-축)과 상기 커서가 상기 장치와 적어도 부분적으로 마주하기 위해 회전되어 디스플레이되어야 하는 디스플레이의 표면의 교점에 기초하여, 장치 움직임을 커서 위치에 매핑하는 3D 포인팅 장치.
  39. 제38항에 있어서, 상기 중간의 평면 가상 디스플레이가 하기의 식으로 정의되고,
    Figure pct00044

    여기서 uxΔ는 사용자-기준 프레임에서의 가상 디스플레이 x-축의 검출된 값이고,
    uyΔ는 사용자-기준 프레임에서의 가상 디스플레이 y-축의 검출된 값이며,
    uzΔ는 사용자-기준 프레임에서의 가상 디스플레이 z-축의 검출된 값이고,
    wy는 가상 디스플레이 기준 프레임에서의 직선 위치 y-축의 검출된 값이며,
    wz는 가상 디스플레이 기준 프레임에서의 직선 위치 z-축의 검출된 값이고,
    sx는 가상 디스플레이 기준 프레임에서의 보디-프레임 x-축의 검출된 값이며,
    sy는 가상 디스플레이 기준 프레임에서의 보디-프레임 y-축의 검출된 값이고,
    sz는 가상 디스플레이 기준 프레임에서의 보디-프레임 z-축의 검출된 값이며,
    p 0는 커서 좌표들에서의 디스플레이 좌표계 원점의 2D 벡터 값인 3D 포인팅 장치.
  40. 제29항에 있어서, 상기 매핑 알고리즘들 중 적어도 하나는 상기 장치와 마주하기 위해 움직이는 중간의 구면 가상 디스플레이를 생성하는 3D 포인팅 장치.
  41. 제40항에 있어서, 상기 구면 가상 디스플레이는, 상기 추정된 각도 위치의 구좌표들이 변환 행렬에 의해 가상 디스플레이 좌표들로 변환되고 커서 위치로 변환되는 것에 기초하여, 장치 움직임을 커서 위치에 매핑하는 3D 포인팅 장치.
  42. 제41항에 있어서, 상기 매핑이 상기 장치의 상기 추정된 직선 위치를 사용하지 않고 수행되는 3D 포인팅 장치.
  43. 제42항에 있어서, 상기 구면 가상 디스플레이가 하기의 식으로 정의되고,
    Figure pct00045

    여기서 bx는 가상 디스플레이 기준 프레임에서의 보디-프레임 x-축의 검출된 값이며,
    by는 가상 디스플레이 기준 프레임에서의 보디-프레임 y-축의 검출된 값이고,
    bz는 가상 디스플레이 기준 프레임에서의 보디-프레임 z-축의 검출된 값이며,
    T는 스케일, 회전, 병진이동, 밀림, 반사, 정사영, 아핀 변환 및 투시 투영의 임의의 조합을 적용할 수 있는 임의적인 상수들의 3x3 변환 행렬인 3D 포인팅 장치.
  44. 제29항에 있어서, 상기 매핑 알고리즘들 중 적어도 하나는 커서 위치의 변화를 결정하기 위해 상기 장치와 디스플레이 간의 각도의 변화를 사용하는 중간의 상대 구면 가상 디스플레이를 생성하는 3D 포인팅 장치.
  45. 제44항에 있어서, 상기 중간의 상대 구면 가상 디스플레이는, 변환 행렬에 의해 수정되어 커서 위치 변화로 변환되는 보디-프레임 각속도에 기초하여, 장치 움직임을 커서 위치에 매핑하는 3D 포인팅 장치.
  46. 제45항에 있어서, 상기 매핑이 상기 장치의 상기 추정된 직선 위치를 사용하지 않고 수행되는 3D 포인팅 장치.
  47. 제46항에 있어서, 상기 상대 구면 가상 디스플레이가 하기의 식으로 정의되고,
    Figure pct00046

    여기서 Δpx는 x-축에서의 커서 위치의 변화이고,
    Δpy는 y-축에서의 커서 위치의 변화이며,
    uωy는 y-축을 따른 사용자의 기준 프레임에서의 장치의 각속도이고,
    uωz는 z-축을 따른 사용자의 기준 프레임에서의 장치의 각속도이며,
    T는 스케일, 회전, 병진이동, 밀림, 반사, 정사영, 아핀 변환 및 투시 투영의 임의의 조합을 적용할 수 있는 임의적인 상수들의 3x3 변환 행렬인 3D 포인팅 장치.
  48. 제29항에 있어서, 상기 매핑 알고리즘들 중 적어도 하나는 각도 위치 구면 투영을 사용하여 상기 장치의 각도 위치를 커서 좌표들에 매핑하는 3D 포인팅 장치.
  49. 제48항에 있어서, 상기 각도 위치 구면 투영은, 상기 추정된 각도 위치가 (1) 초기 회전 인자에 의해 보정되고, (2) 구좌표들로 변환되며, (3) 변환 행렬에 의해 가상 디스플레이 좌표들로 변환되고, (4) 커서 위치로 변환되는 것에 기초하여, 장치 움직임을 커서 위치에 매핑하는 3D 포인팅 장치.
  50. 제49항에 있어서, 상기 매핑이 상기 장치의 상기 추정된 직선 위치를 사용하지 않고 수행되는 3D 포인팅 장치.
  51. 제50항에 있어서, 구면 투영을 사용하여 각도 위치를 커서 좌표에 매핑하는 것은, 하기의 식을 계산하여,
    Figure pct00047

    다음과 같이 θ, φ 및 p에 대해 푸는 것에 의해 수행되고,
    Figure pct00048

    여기서 q I 는 초기 회전 인자이고,
    bx는 가상 디스플레이 기준 프레임에서의 보디-프레임 x-축의 검출된 값이며,
    by는 가상 디스플레이 기준 프레임에서의 보디-프레임 y-축의 검출된 값이고,
    bz는 가상 디스플레이 기준 프레임에서의 보디-프레임 z-축의 검출된 값이며,
    T는 스케일, 회전, 병진이동, 밀림, 반사, 정사영, 아핀 변환 및 투시 투영의 임의의 조합을 적용할 수 있는 임의적인 상수들의 3x3 변환 행렬인 3D 포인팅 장치.
  52. 제29항에 있어서, 상기 장치의 직선 위치 및 각도 위치를 추정하는 것은, 적어도 하나의 센서로부터의 적어도 하나의 출력에 기초하는 3D 포인팅 장치.
  53. 제29항에 있어서, 상기 제1 매핑 알고리즘 및 상기 제2 매핑 알고리즘 둘다가 절대 포인팅 알고리즘인 3D 포인팅 장치.
  54. 제29항에 있어서, 상기 제1 매핑 알고리즘 및 상기 제2 매핑 알고리즘 둘다가 상대 포인팅 알고리즘인 3D 포인팅 장치.
  55. 제29항에 있어서, 상기 제1 매핑 알고리즘이 절대 포인팅 알고리즘이고, 상기 제2 매핑 알고리즘이 상대 포인팅 알고리즘인 3D 포인팅 장치.
  56. 제29항에 있어서, 최종 커서 위치가 상기 제2 매핑 알고리즘에 의해 발생된 상기 제2 커서 위치에 더 가깝게 이동되도록, 상기 제1 매핑 알고리즘의 출력이 동적 탄도학을 사용하여 조정되는 3D 포인팅 장치.
  57. 제29항에 있어서, 매핑된 점들의 이력에 기초하여 상기 제2 매핑 알고리즘의 출력과의 차이들을 최소화하도록, 상기 제1 매핑 알고리즘의 출력이 변환되는 3D 포인팅 장치.
  58. 3D 포인팅 장치의 이동과 연관되어 있는 출력을 발생하도록 구성된 적어도 하나의 센서를 가지는 3D 포인팅 장치, 및
    상기 3D 포인팅 장치와 통신하여, 그로부터의 상기 출력과 연관된 데이터를 수신하도록 구성된 시스템 제어기를 포함하며,
    상기 3D 포인팅 장치 및 상기 시스템 제어기 중 적어도 하나는, 상기 출력을 사용하여 상기 장치의 직선 위치 및 각도 위치 중 적어도 하나를 추정하고, 제1 커서 위치를 발생하는 제1 매핑 알고리즘 및 제2 커서 위치를 발생하는 제2 매핑 알고리즘 둘다를 사용하여 상기 추정된 직선 위치 및 각도 위치 중 적어도 하나를 처리하며, 상기 제1 커서 위치 및 상기 제2 커서 위치를 결합하여 최종 커서 출력을 발생하는 프로세서를 포함하는 시스템.
  59. 제58항에 있어서, 상기 제1 매핑 알고리즘이 절대 포인팅 알고리즘이고, 상기 제2 매핑 알고리즘이 상대 포인팅 알고리즘인 시스템.
  60. 제58항에 있어서, 상기 매핑 알고리즘들 중 적어도 하나는, 커서 움직임 대 각도 장치 움직임의 비가 상기 장치와 커서가 디스플레이되는 디스플레이 간의 거리의 함수로서 변하는 특성을 가지는 절대 포인팅 알고리즘인 시스템.
  61. 제60항에 있어서, 상기 절대 포인팅 알고리즘은, 상기 장치의 전방 포인팅 방향(보디-프레임 x-축)과 상기 커서가 디스플레이되어야 하는 디스플레이의 표면의 교점에 기초하여, 장치 움직임을 커서 위치에 매핑하는 시스템.
  62. 제61항에 있어서, 상기 절대 포인팅 알고리즘이 하기의 식으로 정의되고,
    Figure pct00049

    여기서 uux는 사용자의 기준 프레임에서의 직선 위치 x-축의 검출된 값이고,
    uuy는 사용자의 기준 프레임에서의 직선 위치 y-축의 검출된 값이며,
    uuz는 사용자의 기준 프레임에서의 직선 위치 z-축의 검출된 값이고,
    uxo x는 사용자의 기준 프레임에서의 보디-프레임 x-축의 검출된 값이며,
    uxo y는 사용자의 기준 프레임에서의 y-축을 따른 보디-프레임 y-축의 검출된 값이고,
    uxo z는 사용자의 기준 프레임에서의 z-축을 따른 보디-프레임 z-축의 검출된 값이며,
    p 0는 커서 좌표들에서의 디스플레이 좌표계 원점의 2D 벡터 값인 시스템.
  63. 제58항에 있어서, 상기 매핑 알고리즘들 중 적어도 하나는 장치 직선 위치 및 각도 위치로부터 커서 위치로의 직접적인 반복가능한 매핑을 제공하는 특성과 직선 움직임 및 각도 움직임에 대한 커서 응답성이 움직임 범위에 걸쳐 일관성있는 제2 특성을 가지는 절대 불변 알고리즘인 시스템.
  64. 제63항에 있어서, 상기 절대 불변 알고리즘은 직선 위치 값들의 항과 직선 위치에 독립적인 각도 위치로부터 계산된 항의 합으로서 커서 위치를 발생하는 시스템.
  65. 제64항에 있어서, 상기 절대 불변 알고리즘이 하기의 식으로 정의되거나,
    Figure pct00050

    하기의 식으로 근사화되고,
    Figure pct00051

    여기서 q는 상기 각도 위치이고,
    uuy는 사용자의 기준 프레임에서의 직선 위치 y-축의 검출된 값이며,
    uuz는 사용자의 기준 프레임에서의 직선 위치 z-축의 검출된 값이고,
    uxo x는 사용자의 기준 프레임에서의 보디-프레임 x-축의 검출된 값이며,
    uxo y는 사용자의 기준 프레임에서의 보디-프레임 y-축의 검출된 값이고,
    uxo z는 사용자의 기준 프레임에서의 보디-프레임 z-축의 검출된 값이며,
    p 0는 커서 좌표들에서의 디스플레이 좌표계 원점의 2D 벡터 값인 시스템.
  66. 제58항에 있어서, 상기 매핑 알고리즘들 중 적어도 하나는 상기 장치와 마주하기 위해 움직이는 중간의 가상 디스플레이를 생성하는 시스템.
  67. 제66항에 있어서, 상기 중간의 평면 가상 디스플레이는, 상기 장치의 전방 포인팅 방향(보디-프레임 x-축)과 상기 커서가 상기 장치와 적어도 부분적으로 마주하기 위해 회전되어 디스플레이되어야 하는 디스플레이의 표면의 교점에 기초하여, 장치 움직임을 커서 위치에 매핑하는 시스템.
  68. 제67항에 있어서, 상기 중간의 평면 가상 디스플레이가 하기의 식으로 정의되고,
    Figure pct00052

    여기서 uxΔ는 사용자-기준 프레임에서의 가상 디스플레이 x-축의 검출된 값이고,
    uyΔ는 사용자-기준 프레임에서의 가상 디스플레이 y-축의 검출된 값이며,
    uzΔ는 사용자-기준 프레임에서의 가상 디스플레이 z-축의 검출된 값이고,
    wy는 가상 디스플레이 기준 프레임에서의 직선 위치 y-축의 검출된 값이며,
    wz는 가상 디스플레이 기준 프레임에서의 직선 위치 z-축의 검출된 값이고,
    sx는 가상 디스플레이 기준 프레임에서의 보디-프레임 x-축의 검출된 값이며,
    sy는 가상 디스플레이 기준 프레임에서의 보디-프레임 y-축의 검출된 값이고,
    sz는 가상 디스플레이 기준 프레임에서의 보디-프레임 z-축의 검출된 값이며,
    p 0는 커서 좌표들에서의 디스플레이 좌표계 원점의 2D 벡터 값인 시스템.
  69. 제58항에 있어서, 상기 매핑 알고리즘들 중 적어도 하나는 상기 장치와 마주하기 위해 움직이는 중간의 구면 가상 디스플레이를 생성하는 시스템.
  70. 제69항에 있어서, 상기 구면 가상 디스플레이는, 상기 추정된 각도 위치의 구좌표들이 변환 행렬에 의해 가상 디스플레이 좌표들로 변환되고 커서 위치로 변환되는 것에 기초하여, 장치 움직임을 커서 위치에 매핑하는 시스템.
  71. 제70항에 있어서, 상기 매핑이 상기 장치의 상기 추정된 직선 위치를 사용하지 않고 수행되는 시스템.
  72. 제71항에 있어서, 상기 구면 가상 디스플레이가 하기의 식으로 정의되고,
    Figure pct00053

    여기서 bx는 가상 디스플레이 기준 프레임에서의 보디-프레임 x-축의 검출된 값이며,
    by는 가상 디스플레이 기준 프레임에서의 보디-프레임 y-축의 검출된 값이고,
    bz는 가상 디스플레이 기준 프레임에서의 보디-프레임 z-축의 검출된 값이며,
    T는 스케일, 회전, 병진이동, 밀림, 반사, 정사영, 아핀 변환 및 투시 투영의 임의의 조합을 적용할 수 있는 임의적인 상수들의 3x3 변환 행렬인 시스템.
  73. 제58항에 있어서, 상기 매핑 알고리즘들 중 적어도 하나는 커서 위치의 변화를 결정하기 위해 상기 장치와 디스플레이 간의 각도의 변화를 사용하는 중간의 상대 구면 가상 디스플레이를 생성하는 시스템.
  74. 제73항에 있어서, 상기 중간의 상대 구면 가상 디스플레이는, 변환 행렬에 의해 수정되어 커서 위치 변화로 변환되는 보디-프레임 각속도에 기초하여, 장치 움직임을 커서 위치에 매핑하는 시스템.
  75. 제74항에 있어서, 상기 매핑이 상기 장치의 상기 추정된 직선 위치를 사용하지 않고 수행되는 시스템.
  76. 제75항에 있어서, 상기 상대 구면 가상 디스플레이가 하기의 식으로 정의되고,
    Figure pct00054

    여기서 Δpx는 x-축에서의 커서 위치의 변화이고,
    Δpy는 y-축에서의 커서 위치의 변화이며,
    uωy는 y-축을 따른 사용자의 기준 프레임에서의 장치의 각속도이고,
    uωz는 z-축을 따른 사용자의 기준 프레임에서의 장치의 각속도이며,
    T는 스케일, 회전, 병진이동, 밀림, 반사, 정사영, 아핀 변환 및 투시 투영의 임의의 조합을 적용할 수 있는 임의적인 상수들의 3x3 변환 행렬인 시스템.
  77. 제58항에 있어서, 상기 매핑 알고리즘들 중 적어도 하나는 각도 위치 구면 투영을 사용하여 상기 장치의 각도 위치를 커서 좌표들에 매핑하는 시스템.
  78. 제77항에 있어서, 상기 각도 위치 구면 투영은, 상기 추정된 각도 위치가 (1) 초기 회전 인자에 의해 보정되고, (2) 구좌표들로 변환되며, (3) 변환 행렬에 의해 가상 디스플레이 좌표들로 변환되고, (4) 커서 위치로 변환되는 것에 기초하여, 장치 움직임을 커서 위치에 매핑하는 시스템.
  79. 제78항에 있어서, 상기 매핑이 상기 장치의 상기 추정된 직선 위치를 사용하지 않고 수행되는 시스템.
  80. 제79항에 있어서, 구면 투영을 사용하여 각도 위치를 커서 좌표들에 매핑하는 것은, 하기의 식을 계산하여,
    Figure pct00055

    다음과 같이 θ, φ 및 p에 대해 푸는 것에 의해 수행되고,
    Figure pct00056

    여기서 q I 는 초기 회전 인자이고,
    bx는 가상 디스플레이 기준 프레임에서의 보디-프레임 x-축의 검출된 값이며,
    by는 가상 디스플레이 기준 프레임에서의 보디-프레임 y-축의 검출된 값이고,
    bz는 가상 디스플레이 기준 프레임에서의 보디-프레임 z-축의 검출된 값이며,
    T는 스케일, 회전, 병진이동, 밀림, 반사, 정사영, 아핀 변환 및 투시 투영의 임의의 조합을 적용할 수 있는 임의적인 상수들의 3x3 변환 행렬인 시스템.
  81. 제58항에 있어서, 상기 장치의 직선 위치 및 각도 위치를 추정하는 것은, 적어도 하나의 센서로부터의 적어도 하나의 출력에 기초하는 시스템.
  82. 제58항에 있어서, 상기 제1 매핑 알고리즘 및 상기 제2 매핑 알고리즘 둘다가 절대 포인팅 알고리즘인 시스템.
  83. 제58항에 있어서, 상기 제1 매핑 알고리즘 및 상기 제2 매핑 알고리즘 둘다가 상대 포인팅 알고리즘인 시스템.
  84. 제58항에 있어서, 상기 제1 매핑 알고리즘이 절대 포인팅 알고리즘이고, 상기 제2 매핑 알고리즘이 상대 포인팅 알고리즘인 시스템.
  85. 제58항에 있어서, 최종 커서 위치가 상기 제2 매핑 알고리즘에 의해 발생된 상기 제2 커서 위치에 더 가깝게 이동되도록, 상기 제1 매핑 알고리즘의 출력이 동적 탄도학을 사용하여 조정되는 시스템.
  86. 제58항에 있어서, 매핑된 점들의 이력에 기초하여 상기 제2 매핑 알고리즘의 출력과의 차이들을 최소화하도록, 상기 제1 매핑 알고리즘의 출력이 변환되는 시스템.
  87. 장치의 이동을 커서 위치에 매핑하는 방법으로서,
    상기 장치의 직선 위치 및 각도 위치를 추정하는 단계, 및
    커서 위치를 발생하는 매핑 알고리즘을 사용하여 상기 추정된 직선 위치 및 각도 위치를 처리하는 단계
    를 포함하고,
    상기 매핑 알고리즘은 장치 직선 위치 및 각도 위치로부터 커서 위치로의 직접적인 반복가능한 매핑을 제공하는 제1 특성과 직선 움직임 및 각도 움직임에 대한 커서 응답성이 움직임 범위에 걸쳐 일관성있는 제2 특성을 가지는 절대 불변 알고리즘인 매핑 방법.
  88. 제87항에 있어서, 상기 절대 불변 알고리즘은 직선 위치 값들의 항과 직선 위치에 독립적인 각도 위치로부터 계산된 항의 합으로서 커서 위치를 발생하는 매핑 방법.
  89. 제88항에 있어서, 상기 절대 불변 알고리즘이 하기의 식으로 정의되거나,
    Figure pct00057

    하기의 식으로 근사화되고,
    Figure pct00058

    여기서 q는 상기 각도 위치이고,
    uuy는 사용자의 기준 프레임에서의 직선 위치 y-축의 검출된 값이며,
    uuz는 사용자의 기준 프레임에서의 직선 위치 z-축의 검출된 값이고,
    uxo x는 사용자의 기준 프레임에서의 보디-프레임 x-축의 검출된 값이며,
    uxo y는 사용자의 기준 프레임에서의 보디-프레임 y-축의 검출된 값이고,
    uxo z는 사용자의 기준 프레임에서의 보디-프레임 z-축의 검출된 값이며,
    p 0는 커서 좌표들에서의 디스플레이 좌표계 원점의 2D 벡터 값인 매핑 방법.
  90. 장치의 이동을 커서 위치에 매핑하는 방법으로서,
    상기 장치의 직선 위치 및 각도 위치 중 적어도 하나를 추정하는 단계, 및
    커서 위치를 발생하는 매핑 알고리즘을 사용하여 상기 추정된 직선 위치 및 각도 위치 중 적어도 하나를 처리하는 단계
    를 포함하고,
    상기 매핑 알고리즘은 상기 장치와 마주하기 위해 움직이는 중간의 가상 디스플레이를 생성하는 매핑 방법.
  91. 제90항에 있어서, 상기 중간의 가상 디스플레이가 평면인 매핑 방법.
  92. 제91항에 있어서, 상기 중간의 평면 가상 디스플레이는, 상기 장치의 전방 포인팅 방향(보디-프레임 x-축)과 상기 커서가 상기 장치와 적어도 부분적으로 마주하기 위해 회전되어 디스플레이되어야 하는 디스플레이의 표면의 교점에 기초하여, 장치 움직임을 커서 위치에 매핑하는 매핑 방법.
  93. 제92항에 있어서, 상기 중간의 평면 가상 디스플레이가 하기의 식으로 정의되고,
    Figure pct00059

    여기서 uxΔ는 사용자-기준 프레임에서의 가상 디스플레이 x-축의 검출된 값이고,
    uyΔ는 사용자-기준 프레임에서의 가상 디스플레이 y-축의 검출된 값이며,
    uzΔ는 사용자-기준 프레임에서의 가상 디스플레이 z-축의 검출된 값이고,
    wy는 가상 디스플레이 기준 프레임에서의 직선 위치 y-축의 검출된 값이며,
    wz는 가상 디스플레이 기준 프레임에서의 직선 위치 z-축의 검출된 값이고,
    sx는 가상 디스플레이 기준 프레임에서의 보디-프레임 x-축의 검출된 값이며,
    sy는 가상 디스플레이 기준 프레임에서의 보디-프레임 y-축의 검출된 값이고,
    sz는 가상 디스플레이 기준 프레임에서의 보디-프레임 z-축의 검출된 값이며,
    p 0는 커서 좌표들에서의 디스플레이 좌표계 원점의 2D 벡터 값인 매핑 방법.
  94. 제90항에 있어서, 상기 중간의 가상 디스플레이가 구면인 매핑 방법.
  95. 제94항에 있어서, 상기 구면 가상 디스플레이는, 상기 추정된 각도 위치의 구좌표들이 변환 행렬에 의해 가상 디스플레이 좌표들로 변환되고 커서 위치로 변환되는 것에 기초하여, 장치 움직임을 커서 위치에 매핑하는 매핑 방법.
  96. 제95항에 있어서, 상기 매핑이 상기 장치의 상기 추정된 직선 위치를 사용하지 않고 수행되는 매핑 방법.
  97. 제96항에 있어서, 상기 구면 가상 디스플레이가 하기의 식으로 정의되고,
    Figure pct00060

    여기서 bx는 가상 디스플레이 기준 프레임에서의 보디-프레임 x-축의 검출된 값이며,
    by는 가상 디스플레이 기준 프레임에서의 보디-프레임 y-축의 검출된 값이고,
    bz는 가상 디스플레이 기준 프레임에서의 보디-프레임 z-축의 검출된 값이며,
    T는 스케일, 회전, 병진이동, 밀림, 반사, 정사영, 아핀 변환 및 투시 투영의 임의의 조합을 적용할 수 있는 임의적인 상수들의 3x3 변환 행렬인 매핑 방법.
  98. 제90항에 있어서, 상기 중간의 가상 구면 디스플레이가 상대적인 매핑 방법.
  99. 제98항에 있어서, 상기 매핑 알고리즘들 중 적어도 하나는 커서 위치의 변화를 결정하기 위해 상기 장치와 디스플레이 간의 각도의 변화를 사용하는 중간의 상대 구면 가상 디스플레이를 생성하는 매핑 방법.
  100. 제99항에 있어서, 상기 중간의 상대 구면 가상 디스플레이는, 변환 행렬에 의해 수정되어 커서 위치 변화로 변환되는 보디-프레임 각속도에 기초하여, 장치 움직임을 커서 위치에 매핑하는 매핑 방법.
  101. 제100항에 있어서, 상기 매핑이 상기 장치의 상기 추정된 직선 위치를 사용하지 않고 수행되는 매핑 방법.
  102. 제101항에 있어서, 상기 상대 구면 가상 디스플레이가 하기의 식으로 정의되고,
    Figure pct00061

    여기서 Δpx는 x-축에서의 커서 위치의 변화이고,
    Δpy는 y-축에서의 커서 위치의 변화이며,
    uωy는 y-축을 따른 사용자의 기준 프레임에서의 장치의 각속도이고,
    uωz는 z-축을 따른 사용자의 기준 프레임에서의 장치의 각속도이며,
    T는 스케일, 회전, 병진이동, 밀림, 반사, 정사영, 아핀 변환 및 투시 투영의 임의의 조합을 적용할 수 있는 임의적인 상수들의 3x3 변환 행렬인 매핑 방법.
  103. 장치의 이동을 커서 위치에 매핑하는 방법으로서,
    상기 장치의 각도 위치를 추정하는 단계, 및
    커서 위치를 발생하는 매핑 알고리즘을 사용하여 상기 추정된 각도 위치를 처리하는 단계
    를 포함하고,
    상기 매핑 알고리즘은 각도 위치 구면 투영을 사용하여 장치의 상기 추정된 각도 위치를 커서 좌표들에 매핑하는 매핑 방법.
  104. 제103항에 있어서, 상기 각도 위치 구면 투영은, 상기 추정된 각도 위치가 (1) 초기 회전 인자에 의해 보정되고, (2) 구좌표들로 변환되며, (3) 변환 행렬에 의해 가상 디스플레이 좌표들로 변환되고, (4) 커서 위치로 변환되는 것에 기초하여, 장치 움직임을 커서 위치에 매핑하는 매핑 방법.
  105. 제104항에 있어서, 상기 매핑이 상기 장치의 상기 추정된 직선 위치를 사용하지 않고 수행되는 매핑 방법.
  106. 제105항에 있어서, 구면 투영을 사용하여 각도 위치를 커서 좌표들에 매핑하는 것은, 하기의 식을 계산하여,
    Figure pct00062

    다음과 같이 θ, φ 및 p에 대해 푸는 것에 의해 수행되고,
    Figure pct00063

    여기서 q I 는 초기 회전 인자이고,
    bx는 가상 디스플레이 기준 프레임에서의 보디-프레임 x-축의 검출된 값이며,
    by는 가상 디스플레이 기준 프레임에서의 보디-프레임 y-축의 검출된 값이고,
    bz는 가상 디스플레이 기준 프레임에서의 보디-프레임 z-축의 검출된 값이며,
    T는 스케일, 회전, 병진이동, 밀림, 반사, 정사영, 아핀 변환 및 투시 투영의 임의의 조합을 적용할 수 있는 임의적인 상수들의 3x3 변환 행렬인 매핑 방법.
KR1020117002668A 2008-07-01 2009-07-01 3d 포인터 매핑 KR20110039318A (ko)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US7723808P 2008-07-01 2008-07-01
US61/077,238 2008-07-01

Related Child Applications (1)

Application Number Title Priority Date Filing Date
KR1020147018229A Division KR101617562B1 (ko) 2008-07-01 2009-07-01 3d 포인터 매핑

Publications (1)

Publication Number Publication Date
KR20110039318A true KR20110039318A (ko) 2011-04-15

Family

ID=41466324

Family Applications (2)

Application Number Title Priority Date Filing Date
KR1020117002668A KR20110039318A (ko) 2008-07-01 2009-07-01 3d 포인터 매핑
KR1020147018229A KR101617562B1 (ko) 2008-07-01 2009-07-01 3d 포인터 매핑

Family Applications After (1)

Application Number Title Priority Date Filing Date
KR1020147018229A KR101617562B1 (ko) 2008-07-01 2009-07-01 3d 포인터 매핑

Country Status (6)

Country Link
US (2) US20110227825A1 (ko)
EP (1) EP2297675A4 (ko)
JP (1) JP5866199B2 (ko)
KR (2) KR20110039318A (ko)
CN (2) CN108664156B (ko)
WO (1) WO2010002997A1 (ko)

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US9557190B2 (en) 2012-03-26 2017-01-31 Samsung Electronics Co., Ltd. Calibration apparatus and method for 3D position/direction estimation system
US9952684B2 (en) 2013-05-09 2018-04-24 Samsung Electronics Co., Ltd. Input apparatus, pointing apparatus, method for displaying pointer, and recordable medium

Families Citing this family (31)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8384665B1 (en) * 2006-07-14 2013-02-26 Ailive, Inc. Method and system for making a selection in 3D virtual environment
US9681112B2 (en) * 2009-11-05 2017-06-13 Lg Electronics Inc. Image display apparatus and method for controlling the image display apparatus
EP2577427A4 (en) 2010-06-03 2016-01-27 Hillcrest Lab Inc DETERMINATION OF A FORWARD DIRECTION OF A PORTABLE DEVICE
WO2012009676A2 (en) 2010-07-15 2012-01-19 The Cleveland Clinic Foundation Detection and characterization of head impacts
TWI481871B (zh) * 2010-09-28 2015-04-21 J Mex Inc 與在操作區域中的目標互動的裝置及系統及方法
KR20120046973A (ko) * 2010-11-03 2012-05-11 삼성전자주식회사 움직임 정보 생성 방법 및 장치
US8907892B2 (en) 2010-11-22 2014-12-09 Hillcrest Laboratories, Inc. 3D pointing device with up-down-left-right mode switching and integrated swipe detector
CN107943403B (zh) * 2010-11-22 2022-11-01 Idhl控股公司 具有上下左右模式切换和集成的挥动检测器的3d定位装置
US9116558B2 (en) * 2011-10-28 2015-08-25 Atmel Corporation Executing gestures with active stylus
ITTO20111144A1 (it) * 2011-12-13 2013-06-14 St Microelectronics Srl Sistema e metodo di compensazione dell'orientamento di un dispositivo portatile
CN103294177B (zh) * 2012-02-29 2016-01-06 株式会社理光 光标移动控制方法和系统
JP2013210906A (ja) * 2012-03-30 2013-10-10 Sony Corp 制御方法、制御装置及びプログラム
CN103488312B (zh) * 2012-08-22 2016-10-26 上海飞智电子科技有限公司 定位指针位置的方法、系统及设备
CN104620203A (zh) 2012-09-06 2015-05-13 英特飞斯公司 交互式显示系统中的绝对与相对定位传感器融合
KR20140060818A (ko) * 2012-11-12 2014-05-21 삼성전자주식회사 원격 제어 장치, 디스플레이 장치 및 그 제어 방법
US9740294B2 (en) * 2013-06-28 2017-08-22 Samsung Electronics Co., Ltd. Display apparatus and method for controlling display apparatus thereof
US10063802B2 (en) 2013-08-28 2018-08-28 Lg Electronics Inc. Multimedia device and method for controlling external devices of the same
CN103488294B (zh) * 2013-09-12 2016-08-17 华南理工大学 一种基于用户交互习惯的非接触手势控制映射调整方法
EP2853992A1 (en) * 2013-09-27 2015-04-01 Movea Air pointer with improved user experience
JP6526026B2 (ja) * 2013-10-20 2019-06-05 オアフ グループ,リミティド ライアビリティ カンパニー 物体の動作判定方法及びシステム
CN104750442A (zh) * 2013-12-31 2015-07-01 冠捷投资有限公司 指示标记的显示及控制方法
FR3035718B1 (fr) * 2015-04-28 2017-05-26 Centre Nat Detudes Spatiales Cnes Procede de controle d'un dispositif de calcul via un element mobile et systeme de controle mettant en oeuvre ce procede
DE102016005237B4 (de) * 2016-04-29 2020-09-24 Gebrüder Frei GmbH & Co. KG Fernbedienung für motorkraftgetriebene Flurförderzeuge und fahrerlose Transportfahrzeuge
CN106293065A (zh) * 2016-07-26 2017-01-04 上海与德通讯技术有限公司 应用程序的控制方法及控制系统
KR102387818B1 (ko) * 2016-10-10 2022-04-18 디스이즈엔지니어링 주식회사 객체 컨트롤러
WO2018070750A1 (ko) * 2016-10-10 2018-04-19 홍유정 객체 컨트롤러
CN106528517A (zh) * 2016-11-01 2017-03-22 深圳市方直科技股份有限公司 试题定位调整方法及系统
CN107508889A (zh) * 2017-08-25 2017-12-22 湖南城市学院 一种粮食安全追溯方法及系统
US20190302903A1 (en) * 2018-03-30 2019-10-03 Microsoft Technology Licensing, Llc Six dof input device
CN109395382A (zh) * 2018-09-12 2019-03-01 苏州蜗牛数字科技股份有限公司 一种针对摇杆的线性优化方法
CN110102050B (zh) * 2019-04-30 2022-02-18 腾讯科技(深圳)有限公司 虚拟对象显示方法、装置、电子设备及存储介质

Family Cites Families (73)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
GB591019A (en) 1945-04-13 1947-08-05 Charles Stanley Hudson Improvements in or relating to remote indicating compasses
US3931747A (en) 1974-02-06 1976-01-13 Sperry Rand Corporation Gyroscopic stable reference device
US4160973A (en) * 1977-10-11 1979-07-10 Massachusetts Institute Of Technology Three-dimensional display
US4787051A (en) 1986-05-16 1988-11-22 Tektronix, Inc. Inertial mouse system
IL78889A (en) 1986-05-23 1989-09-28 Elbit Computers Ltd Electronic magnetic compass system
US5440326A (en) 1990-03-21 1995-08-08 Gyration, Inc. Gyroscopic pointer
US5396265A (en) 1990-09-17 1995-03-07 Massachusetts Institute Of Technology Three-dimensional tactile computer input device
US5181181A (en) 1990-09-27 1993-01-19 Triton Technologies, Inc. Computer apparatus input device for three-dimensional information
US6069594A (en) 1991-07-29 2000-05-30 Logitech, Inc. Computer input device with multiple switches using single line
US5453758A (en) 1992-07-31 1995-09-26 Sony Corporation Input apparatus
JPH07284166A (ja) * 1993-03-12 1995-10-27 Mitsubishi Electric Corp 遠隔操作装置
US5598187A (en) 1993-05-13 1997-01-28 Kabushiki Kaisha Toshiba Spatial motion pattern input system and input method
JP3217926B2 (ja) * 1994-10-13 2001-10-15 アルプス電気株式会社 空間座標検出装置
GB2289756B (en) * 1994-05-26 1998-11-11 Alps Electric Co Ltd Space coordinates detecting device and input apparatus using same
JP2681454B2 (ja) * 1995-02-21 1997-11-26 コナミ株式会社 射的ゲーム装置
US5902968A (en) 1996-02-20 1999-05-11 Ricoh Company, Ltd. Pen-shaped handwriting input apparatus using accelerometers and gyroscopes and an associated operational device for determining pen movement
US5825350A (en) 1996-03-13 1998-10-20 Gyration, Inc. Electronic pointing apparatus and method
US6078312A (en) * 1997-07-09 2000-06-20 Gateway 2000, Inc. Pointing device with absolute and relative positioning capability
US20020036617A1 (en) * 1998-08-21 2002-03-28 Timothy R. Pryor Novel man machine interfaces and applications
US6252579B1 (en) * 1997-08-23 2001-06-26 Immersion Corporation Interface device and method for providing enhanced cursor control with force feedback
US6292174B1 (en) * 1997-08-23 2001-09-18 Immersion Corporation Enhanced cursor control using limited-workspace force feedback devices
US6369794B1 (en) 1998-09-09 2002-04-09 Matsushita Electric Industrial Co., Ltd. Operation indication outputting device for giving operation indication according to type of user's action
US6501515B1 (en) * 1998-10-13 2002-12-31 Sony Corporation Remote control system
JP4236783B2 (ja) * 1998-12-28 2009-03-11 アルプス電気株式会社 コントローラ
DE69920646T2 (de) * 1998-12-28 2006-02-09 Alps Electric Co., Ltd. Personalrechnersystem
US6737591B1 (en) 1999-05-25 2004-05-18 Silverbrook Research Pty Ltd Orientation sensing device
US20020085097A1 (en) * 2000-12-22 2002-07-04 Colmenarez Antonio J. Computer vision-based wireless pointing system
US7031875B2 (en) 2001-01-24 2006-04-18 Geo Vector Corporation Pointing systems for addressing objects
US20030107551A1 (en) * 2001-12-10 2003-06-12 Dunker Garrett Storm Tilt input device
US7627139B2 (en) * 2002-07-27 2009-12-01 Sony Computer Entertainment Inc. Computer image and audio processing of intensity and input devices for interfacing with a computer program
JP2003179700A (ja) * 2002-08-23 2003-06-27 Hitachi Ltd 携帯端末
US7030856B2 (en) * 2002-10-15 2006-04-18 Sony Corporation Method and system for controlling a display device
US20040095317A1 (en) * 2002-11-20 2004-05-20 Jingxi Zhang Method and apparatus of universal remote pointing control for home entertainment system and computer
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
US7874917B2 (en) * 2003-09-15 2011-01-25 Sony Computer Entertainment Inc. Methods and systems for enabling depth and direction detection when interfacing with a computer program
US7489299B2 (en) * 2003-10-23 2009-02-10 Hillcrest Laboratories, Inc. User interface devices and methods employing accelerometers
US9229540B2 (en) * 2004-01-30 2016-01-05 Electronic Scripting Products, Inc. Deriving input from six degrees of freedom interfaces
US7853193B2 (en) * 2004-03-17 2010-12-14 Leapfrog Enterprises, Inc. Method and device for audibly instructing a user to interact with a function
US7301529B2 (en) * 2004-03-23 2007-11-27 Fujitsu Limited Context dependent gesture response
TWI376520B (en) * 2004-04-30 2012-11-11 Hillcrest Lab Inc Free space pointing devices and methods
WO2005109847A2 (en) * 2004-04-30 2005-11-17 Hillcrest Laboratories, Inc. Methods and devices for identifying users based on tremor
DE202005022038U1 (de) * 2004-04-30 2012-07-12 Hillcrest Laboratories, Inc. Freiraum-Zeigevorrichtungen mit Neigungskompensation und verbesserter Benutzbarkeit
US7656395B2 (en) * 2004-07-15 2010-02-02 Microsoft Corporation Methods and apparatuses for compound tracking systems
US7683883B2 (en) * 2004-11-02 2010-03-23 Pierre Touma 3D mouse and game controller based on spherical coordinates system and system for use
JP2006137077A (ja) 2004-11-12 2006-06-01 Seiko Epson Corp 印刷装置、データ変換システム、印刷方法、および、データ変換方法
US8137195B2 (en) * 2004-11-23 2012-03-20 Hillcrest Laboratories, Inc. Semantic gaming and application transformation
JP4644800B2 (ja) * 2005-01-07 2011-03-02 国立大学法人電気通信大学 3次元位置入力装置
US7796116B2 (en) * 2005-01-12 2010-09-14 Thinkoptics, Inc. Electronic equipment for handheld vision based absolute pointing system
US8935630B2 (en) * 2005-05-04 2015-01-13 Hillcrest Laboratories, Inc. Methods and systems for scrolling and pointing in user interfaces
WO2006125133A2 (en) * 2005-05-19 2006-11-23 Hillcrest Laboratories, Inc. Global navigation objects in user interfaces
WO2006137077A1 (en) * 2005-06-20 2006-12-28 Hewlett-Packard Development Company, L.P. A pointing device with absolute and relative positioning capability
KR101288186B1 (ko) * 2005-07-01 2013-07-19 힐크레스트 래보래토리스, 인크. 3d 포인팅 장치
JP5075330B2 (ja) * 2005-09-12 2012-11-21 任天堂株式会社 情報処理プログラム
JP4587940B2 (ja) * 2005-11-11 2010-11-24 シャープ株式会社 遠隔制御システムおよび表示装置
US8564532B2 (en) * 2005-12-06 2013-10-22 Naturalpoint, Inc. System and methods for using a movable object to control a computer
TWI291117B (en) * 2005-12-29 2007-12-11 High Tech Comp Corp A tapping operation method and a mobile electrical apparatus with tapping operation function
KR101261550B1 (ko) * 2006-02-01 2013-05-06 삼성전자주식회사 가상 영역을 이용한 포인팅 장치, 포인터 디스플레이 장치,포인팅 방법 및 포인터 디스플레이 방법
JP4151982B2 (ja) * 2006-03-10 2008-09-17 任天堂株式会社 動き判別装置および動き判別プログラム
US8277316B2 (en) * 2006-09-14 2012-10-02 Nintendo Co., Ltd. Method and apparatus for using a common pointing input to control 3D viewpoint and object targeting
KR100855471B1 (ko) * 2006-09-19 2008-09-01 삼성전자주식회사 입력 장치 및 상기 입력 장치의 이동 정보를 제공하는 방법
CN101169831B (zh) * 2006-10-25 2011-07-20 原相科技股份有限公司 指针定位装置及方法
US8291346B2 (en) * 2006-11-07 2012-10-16 Apple Inc. 3D remote control system employing absolute and relative position detection
JP5127242B2 (ja) * 2007-01-19 2013-01-23 任天堂株式会社 加速度データ処理プログラムおよびゲームプログラム
US9176598B2 (en) * 2007-05-08 2015-11-03 Thinkoptics, Inc. Free-space multi-dimensional absolute pointer with improved performance
US7860676B2 (en) * 2007-06-28 2010-12-28 Hillcrest Laboratories, Inc. Real-time dynamic tracking of bias
CN101632056B (zh) * 2007-09-12 2012-08-22 索尼株式会社 输入装置、控制装置、控制系统以及控制方法
US8341544B2 (en) 2007-12-14 2012-12-25 Apple Inc. Scroll bar with video region in a media system
WO2009145854A1 (en) * 2008-04-15 2009-12-03 Hillcrest Laboratories, Inc. Tracking determination based on intensity angular gradient of a wave
US9681112B2 (en) * 2009-11-05 2017-06-13 Lg Electronics Inc. Image display apparatus and method for controlling the image display apparatus
US8907892B2 (en) * 2010-11-22 2014-12-09 Hillcrest Laboratories, Inc. 3D pointing device with up-down-left-right mode switching and integrated swipe detector
US9519357B2 (en) * 2011-01-30 2016-12-13 Lg Electronics Inc. Image display apparatus and method for operating the same in 2D and 3D modes
US9542092B2 (en) * 2011-02-12 2017-01-10 Microsoft Technology Licensing, Llc Prediction-based touch contact tracking
ITTO20111144A1 (it) * 2011-12-13 2013-06-14 St Microelectronics Srl Sistema e metodo di compensazione dell'orientamento di un dispositivo portatile

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US9557190B2 (en) 2012-03-26 2017-01-31 Samsung Electronics Co., Ltd. Calibration apparatus and method for 3D position/direction estimation system
US9952684B2 (en) 2013-05-09 2018-04-24 Samsung Electronics Co., Ltd. Input apparatus, pointing apparatus, method for displaying pointer, and recordable medium

Also Published As

Publication number Publication date
US20110227825A1 (en) 2011-09-22
CN102099814B (zh) 2018-07-24
EP2297675A1 (en) 2011-03-23
KR20140095574A (ko) 2014-08-01
CN108664156B (zh) 2022-02-25
US20180307334A1 (en) 2018-10-25
WO2010002997A1 (en) 2010-01-07
JP5866199B2 (ja) 2016-02-17
CN102099814A (zh) 2011-06-15
US10620726B2 (en) 2020-04-14
CN108664156A (zh) 2018-10-16
JP2011527053A (ja) 2011-10-20
KR101617562B1 (ko) 2016-05-02
EP2297675A4 (en) 2014-04-09

Similar Documents

Publication Publication Date Title
US10620726B2 (en) 3D pointer mapping
US10120463B2 (en) Determining forward pointing direction of a handheld device
US10782792B2 (en) 3D pointing devices with orientation compensation and improved usability
US8957909B2 (en) System and method for compensating for drift in a display of a user interface state
US8072424B2 (en) 3D pointing devices with orientation compensation and improved usability
EP2337016B1 (en) Free space pointing devices with tilt compensation and improved usability
US20140267036A1 (en) Real-Time Dynamic Tracking of Bias
US20190384421A1 (en) Latency masking systems and methods

Legal Events

Date Code Title Description
A107 Divisional application of patent
A201 Request for examination
E902 Notification of reason for refusal
E601 Decision to refuse application