KR20070017400A - 틸트 보상과 향상된 사용성을 갖는 3d 포인팅 장치 - Google Patents

틸트 보상과 향상된 사용성을 갖는 3d 포인팅 장치 Download PDF

Info

Publication number
KR20070017400A
KR20070017400A KR1020067025233A KR20067025233A KR20070017400A KR 20070017400 A KR20070017400 A KR 20070017400A KR 1020067025233 A KR1020067025233 A KR 1020067025233A KR 20067025233 A KR20067025233 A KR 20067025233A KR 20070017400 A KR20070017400 A KR 20070017400A
Authority
KR
South Korea
Prior art keywords
pointing device
coordinate system
movement
output
user
Prior art date
Application number
KR1020067025233A
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 힐크레스트 래보래토리스, 인크.
Priority to KR1020067025233A priority Critical patent/KR20070017400A/ko
Publication of KR20070017400A publication Critical patent/KR20070017400A/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/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

본 발명에 따른 시스템과 방법은, 제1 좌표계(즉, 3D 포인팅 장치의 본체)로부터 제2 좌표계(즉, 사용자 좌표계)로 감지된 움직임 데이터를 변환하여 사용성(usability)을 향상시키는 3D 포인팅 장치를 기재한다. 본 발명의 일 실시예는 3D 포인팅 장치가 사용자에 의해 홀드(hold)된 틸트(tilt) 배향과 연관된 효과를 제거한다.
3D 핸드헬드 포인팅 장치, 장치 본체 좌표계, 사용자 좌표계, 사용성(usability), 틸트 보상, 평행이동/회전

Description

틸트 보상과 향상된 사용성을 갖는 3D 포인팅 장치{FREE SPACE POINTING DEVICES WITH TILT COMPENSATION AND IMPROVED USABILITY}
관련 출원
본 출원은 2004년 4월 30일자로 출원된 발명의 명칭이 "자유 공간 포인팅 장치(Freespace Pointing Device)"인 미국 가특허 출원 제60/566,444호에 관한 것으로서 이를 우선권 주장하며, 참조로서 그 전체 내용이 본 명세서에 포함된다. 본 출원은 또한 2004년 9월 23일자로 출원된 발명의 명칭이 "자유 공간 포인팅 장치 및 방법(Free Space Pointing Devices and Methods)"인 미국 가특허 출원 제60/612,571호에 관한 것으로서 이를 우선권 주장하며, 참조로서 그 전체 내용이 본 명세서에 포함된다. 본 출원은 또한 2005년 1월 5일자로 출원된 발명의 명칭이 "자유 공간 포인팅 장치 및 이를 사용하는 방법(Freespace Pointing Devices and Methods for Using Same)"인 미국 가특허 출원 제60/641,410호에 관한 것으로서 이 를 우선권 주장하며, 참조로서 그 전체 내용이 본 명세서에 포함된다. 본 출원은 또한 발명의 명칭들이 "자유 공간 포인팅 장치에서 의도하지 않은 움직임을 제거하는 방법 및 장치(Methods and Devices for Removing Unintentional Movement in Free Space Pointing Devices)", "떨림에 기초하여 사용자를 식별하는 방법 및 장치(Methods and Devices for Identifying Users Based on Tremor)", 및 "자유 공간 포인팅 장치 및 방법(Freespace Pointing Devices and Methods)"인, 미국 특허 출원 제11/119,987호, 제11/119,688호, 및 제11/119,663호와 관련되고, 이들 모두는 이것과 함께 동시 출원되었고, 또한 참조로서 본 명세서에 병합된다.
본 발명은 일반적으로 핸드헬드 포인팅 장치(handheld pointing device)에 관한 것이고, 더 구체적으로는 틸트(tilt) 보상과 그와 연관된 향상된 사용성(usability)에 관한 것이다.
정보의 통신과 연관된 기술은 지난 몇 십년에 걸쳐 급격히 발전하였다. 텔레비전, 셀룰러 전화, 인터넷 및 광 통신 기술(단지 몇 가지를 열거한 것임)이 결합하여 소비자들은 이용가능한 정보 및 오락물들로 넘쳐나게 되었다. 텔레비전을 예로 들면, 최근 30년간 케이블 텔레비전 서비스, 위성 텔레비전 서비스, 유료 영화(pay-per-view movie) 및 주문형 비디오(video-on-demand)가 소개되었다. 1960년대의 텔레비전 시청자는 일반적으로 그의 텔레비전 세트에서 아마도 4개 또는 5개의 공중파 TV 채널을 수신할 수 있었던 것에 반해, 오늘날의 TV 시청자는 수백, 수천, 아마도 수백만 채널의 쇼 및 정보로부터 선택할 기회를 가지고 있다. 현재 주로 호텔 등에서 사용되고 있는 주문형 비디오 기술은 수천개의 영화 타이틀 중에서 가정용 오락물(in-home entertainment)을 선택할 수 있는 가능성을 제공한다.
그렇게 많은 정보 및 컨텐츠를 최종 사용자에게 기술적으로 제공할 수 있는 것은 시스템 설계자 및 서비스 제공자에게 기회와 챌런지 모두를 제공한다. 한 가지 챌런지는 최종 사용자가 일반적으로 더 적은 것보다는 더 많은 선택의 기회를 갖는 것을 선호하는 반면, 이러한 선호는 선택 처리가 빠르면서 간단하기를 바라는 사용자의 요망과 상반된다. 불행하게도, 최종 사용자가 미디어 항목에 액세스하는 시스템 및 인터페이스의 개발에서는 선택 처리가 빠르지도 간단하지도 않았다. 텔레비전 프로그램의 예를 다시 생각해보자. 텔레비전이 초기 단계에 있을 때, 어느 프로그램을 볼 지를 결정하는 것은 주로 적은 수의 선택 기회로 인해 비교적 간단한 처리이었다. 사람들은 (1) 근방의 텔레비전 채널, (2) 이들 채널을 통해 전송되는 프로그램, 및 (3) 날짜와 시간 간의 대응관계를 나타낸 예를 들어 일련의 열과 행의 형식으로 된 인쇄된 안내서를 참고하였다. 튜너 손잡이를 조정함으로써 텔레비전이 원하는 채널로 동조되었고, 시청자는 선택된 프로그램을 보았다. 나중에, 시청자로 하여금 멀리 떨어져서 텔레비전을 동조시킬 수 있게 해주는 리모콘 장치가 도입되었다. 사용자-텔레비전 인터페이스에의 이러한 추가는 "채널 서핑(channel surfing)"이라고 하는 현상을 가져왔으며, 그에 의해 시청자는 임의의 주어진 시간에 어떤 프로그램이 방영되고 있는지를 빨리 알아내기 위해 다수의 채널을 통해 방송되고 있는 짧은 세그먼트를 재빠르게 볼 수 있었다.
채널의 수 및 볼 수 있는 컨텐츠의 양이 극적으로 증가했다는 사실에도 불구하고, 텔레비전에서 일반적으로 이용가능한 사용자 인터페이스, 제어 장치 선택 사항 및 구조는 지난 30년간 그다지 변하지 않았다. 인쇄된 안내서는 여전히 프로그램 정보를 전달하는 가장 보편적인 메카니즘이다. 위 및 아래 화살표를 갖는 다수의 버튼 리모콘이 여전히 가장 보편적인 채널/컨텐츠 선택 메카니즘이다. 이용가능한 미디어 컨텐츠의 증가에 대한 TV 사용자 인터페이스를 설계 및 구현하는 사람 들의 반응은 기존의 선택 절차 및 인터페이스 객체의 단순한 확장이었다. 따라서, 더 많은 채널을 수용하기 위해 인쇄된 안내서의 행의 수가 증가되었다. 예를 들어, 도 1에 나타낸 바와 같이, 리모콘 장치 상의 버튼의 수가 부가의 기능 및 컨텐츠 처리를 지원하기 위해 증가되었다. 그렇지만, 이 방법은 시청자가 이용가능한 정보를 검토하는 데 걸리는 시간 및 선택을 구현하는 데 요구되는 동작의 복잡성 모두를 상당히 증가시켰다. 논란의 여지는 있지만, 기존의 인터페이스의 번거로운 속성이 어떤 서비스, 예를 들어 주문형 비디오의 상업적 구현을 방해하는데, 그 이유는 소비자들이 이미 너무 느리고 복잡한 것으로 보고 있는 인터페이스에 복잡성을 부가하는 새로운 서비스에 대해 소비자들이 거부감을 갖기 때문이다.
대역폭 및 컨텐츠의 증가 이외에, 사용자 인터페이스 병목 현상 문제는 기술들의 통합에 의해 악화되고 있다. 소비자들은 다수의 분리되는 구성요소들보다는 통합된 시스템의 구입쪽을 선택하는 것에 대해 긍정적으로 반응하고 있다. 이러한 경향의 일례는 3개의 이전에는 독립적이었던 구성요소들이 현재에는 빈번하게 통합된 유닛으로서 판매되고 있는 텔레비전/VCR/DVD 겸용 기기이다. 이러한 경향은 계속될 것이며, 결국에는 아마도 현재 가정에서 발견되는 통신 장치의 전부는 아닐지라도 그 대부분이 통합된 유닛, 예를 들어 텔레비전/VCR/DVD/인터넷 접속/라디오/스테레오 유닛으로서 함께 패키지화될 것이다. 계속하여 개별적인 구성요소를 구입하는 사람들조차도 개별적인 구성요소의 매끄러운 제어 및 그들 간의 인터네트워킹을 원할 가능성이 많다. 이러한 통합의 증가에 따라 사용자 인터페이스가 더욱 복잡하게 될 가능성이 있다. 예를 들어, 소위 "만능" 리모콘 유닛이 예를 들어 TV 리모콘 유닛과 VCR 리모콘 유닛의 기능을 결합시키기 위해 소개되었을 때, 이들 만능 리모콘 유닛 상의 버튼의 수는 일반적으로 TV 리모콘 유닛 또는 VCR 리모콘 유닛 각각에 있는 버튼의 수보다 많았다. 이러한 추가된 수의 버튼 및 기능에 의해 리모콘 상에서 정확하게 맞는 버튼을 찾지 않고서는 TV 또는 VCR의 가장 간단한 태양 이외의 어느 것도 제어하는 것이 아주 어렵게 된다. 이들 만능 리모콘이 어떤 TV에 고유한 많은 레벨의 제어 또는 특징에 액세스하기에 충분한 버튼을 제공하지 않는 경우가 많다. 이들 경우에, 원래의 장치의 리모콘 유닛이 여전히 필요하며, 통합의 복잡성으로 인해 발생되는 사용자 인터페이스 문제로 인해 다수의 리모콘을 취급하는 본래의 불편함이 여전히 있다. 어떤 리모콘 유닛은 전문가 명령(expert command)으로 프로그램될 수 있는 "소프트(soft)" 버튼을 추가함으로써 이 문제를 해결하였다. 이들 소프트 버튼은 때때로 그의 동작을 나타내기 위해 부속 LCD 디스플레이를 갖는다. 이들도 역시 TV에서 리모콘으로 눈길을 돌리지 않고 사용하기가 어렵다는 결점이 있다. 이들 리모콘 유닛에서의 또 다른 단점은 버튼의 수를 감소시키려는 시도에서 모드를 사용한다는 것이다. 이들 "모드 방식" 만능 리모콘 유닛에서는, 리모콘이 TV, DVD 플레이어, 케이블 셋톱 박스, VCR, 기타 등등과 통신해야만 하는지를 선택하기 위해 특수 버튼이 존재한다. 이것은 명령을 틀린 장치로 전송하는 것, 리모콘이 올바른 모드에 있는지를 확인하기 위해 사용자가 리모콘을 보아야만 한다는 것, 및 다수의 장치의 통합에 대한 어떤 간소화도 제공하지 않는다는 것을 비롯한 많은 사용성 문제를 야기한다. 이들 만능 리모콘 중 가장 진보된 것은 사용자가 다수의 장치에 대한 명령어들의 시퀀스를 리모콘 내에 프로 그램할 수 있게 해줌으로써 얼마간의 통합을 제공한다. 이것은 많은 사용자가 그의 만능 리모콘 유닛을 프로그램하기 위해 전문 설치 프로그램(professional installer)을 빌려야 할 정도로 어려운 작업이다.
최종 사용자와 미디어 시스템 간의 화면 인터페이스를 현대화하려는 몇몇 시도들도 역시 있었다. 그렇지만, 이들 시도는 일반적으로 그 중에서도 특히 미디어 항목의 대규모 집합체와 미디어 항목의 소규모 집합체 간에 용이하게 스케일링할 수 없다는 단점이 있다. 예를 들어, 항목들의 리스트에 의존하는 인터페이스는 미디어 항목의 작은 집합체에 대해서는 잘 동작할 수 있지만, 미디어 항목의 대규모 집합체에 대해서 브라우징하는 것에 대해서는 지루하다. 계층적 이동(예를 들어, 트리 구조)에 의존하는 인터페이스는 미디어 항목의 대규모 집합체에 대한 리스트 인터페이스보다 더 빨리 순회할 수 있지만, 미디어 항목의 소규모 집합체에 쉽게 적응하지 못한다. 게다가, 사용자는 사용자가 트리 구조에서 3개 이상의 계층을 통해 이동해야만 하는 선택 처리에 관심을 두지 않는 경향이 있다. 이들 경우 모두에 있어서, 현재의 리모콘 유닛은 사용자가 리스트 또는 계층 구조를 이동하기 위해 어쩔 수 없이 위 및 아래 버튼을 반복해서 눌러야만 함으로써 이 선택 처리를 훨씬 더 지루하게 만든다. 한 페이지 위로(page up) 및 한 페이지 아래로(page down) 등의 선택 건너뜀 컨트롤이 이용가능한 경우, 사용자는 보통 이들 특수 버튼을 찾기 위해 리모콘을 보고 있어야만 하거나 이들이 존재하기나 하는지를 알기 위해 연습을 해봐야만 한다. 따라서, 사용자와 미디어 시스템 간의 컨트롤 및 화면 인터페이스를 단순화하면서, 그와 동시에 많은 수의 미디어 항목 및 새로운 서비스 의 사용자에의 공급을 용이하게 해줌으로써 최종 사용자 장비가 이용가능한 가용 대역폭의 증가를 서비스 제공자가 이용할 수 있게 해주는 구조, 기술 및 시스템을 구성하는 것에 대해서는, 2004년 1월 30일자로 출원된 발명의 명칭이 "미디어 항목을 구성, 선택 및 개시하는 줌가능 그래픽 사용자 인터페이스를 갖는 컨트롤 프레임워크(A Control Framework with a Zoomable Graphical User Interface for Organizing, Selecting and Launching Media Items)"인 미국 특허 출원 제10/768,432호에 제안되어 있으며, 이는 참조로서 그 전체 내용이 본 명세서에 포함된다.
이러한 프레임워크는 물론 다른 응용 및 시스템과 상호작용하는 데 사용가능한 리모콘 장치에 대해 본 출원이 특히 관심을 가지고 있다. 상기 인용된 출원에 언급된 바와 같이, 다양한 서로 다른 유형의 리모콘 장치가 예를 들어 트랙볼, "마우스"-유형 포인팅 장치, 광 펜(light pen), 기타 등등을 비롯한 이러한 프레임워크에서 사용될 수 있다. 그렇지만, 이러한 프레임워크(및 다른 응용)에서 사용될 수 있는 다른 카테고리의 리모콘 장치가 3D 포인팅 장치(free space pointing device)이다. 용어 "3D 포인팅"은 본 명세서에서 입력 장치가 예를 들어 디스플레이 화면 전방의 공중에서 3차원(또는 그 이상의 차원)에서 움직일 수 있고 사용자 인터페이스가 이들 움직임을 직접 사용자 인터페이스 명령, 예를 들어 디스플레이 화면 상에서의 커서의 이동으로 변환할 수 있다는 것을 말한다. 3D 포인팅 장치 간의 데이터의 전송은 무선으로 또는 3D 포인팅 장치를 다른 장치에 연결시키는 배선(wire)을 통해 수행될 수 있다. 따라서, "3D 포인팅"은 표면, 예를 들어 책상 표면 또는 마우스패드를, 마우스의 상대적 움직임이 컴퓨터 디스플레이 화면 상에서의 커서 움직임으로 변환되는 프락시 표면(proxy surface)으로서 사용하는 예를 들어 종래의 컴퓨터 마우스 포인팅 기술과 다르다. 3D 포인팅 장치의 예는 미국 특허 제5,440,326호에서 찾아볼 수 있다.
'326 특허는, 그 중에서도 특히, 컴퓨터의 디스플레이 상의 커서의 위치를 제어하기 위한 포인팅 장치로서 사용하도록 구성되어 있는 수직 자이로스코프(vertical gyroscope)에 대해 기술하고 있다. 자이로스코프의 코어에 있는 모터는 2 쌍의 직교 짐벌에 의해 핸드헬드 컨트롤러 장치에 매달려 있으며 그의 회전축이 진동하는 장치에 수직인 상태로 배향(orientation)되어 있다. 전자-광학 사프트 각도 인코더는 핸드헬드 컨트롤러 장치가 사용자에 의해 조작될 때 그의 방향을 감지(sensing)하고, 그 결과 얻어지는 전기 출력은 컴퓨터 디스플레이의 화면 상에서의 커서의 움직임을 제어하기 위해 컴퓨터에 의해 사용가능한 포맷으로 변환된다.
그러나, 3D 포인터들과 연관된 사용의 자유성은 추가 챌런지를 생성한다. 예를 들어, 일반적으로 3D 포인팅 장치가 놓일 수 있는 프락시(proxy) 표면이 없으므로, 핸드헬드 제어 장치의 배향은 사람마다 또는 사용마다도 크게 달라질 수 있다. 3D 포인팅 장치가, 예를 들어, 스크린 상에 디스플레이되는 커서의 움지임을 제어하기 위해 사용되면, 핸드헬드 장치의 검출된 움직임과 스크린 상의 커서의 움직임 사이에 어떤 매핑이 이루어진다.
이 매핑을 수행하는 한 가지 기술은, 커서의 의도된 움직임으로 3D 포인팅 장치의 검출된 움직임을 매핑하기 위해 좌표계(frame of reference)로서 장치의 본체 좌표계(body frame)를 사용하는 것이다. "본체 좌표계"라는 용어는, 아래 더 상세히 기재되는 것처럼 이동되는 객체의 본체와 연관된 축들의 집합을 지칭한다. 그러나, 매핑을 수행하기 위한 본체 좌표계의 사용은 특정한 단점들을 갖는다. 예를 들어, 그것은 사용자가 특정한 배향으로 장치를 홀드하여 그(녀)가 원하는 커서 움직임을 얻도록 요구한다. 예를 들어, 사용자가 장치를 그것의 측방향에 홀드하여 좌에서 우로 이동하면, 커서는 스크린 상에서 수평이 아닌 수직으로 이동할 것이다.
따라서, 본 발명은, 종래 3D 포인팅 장치와 연관된 이들과 다른 문제점들을 해결하는 방식으로 센서(들)로부터 수신되는 데이터를 처리하는 방법 및 장치를 기재한다.
<발명의 개요>
본 발명에 따른 시스템과 방법은, 제1 좌표계(즉, 3D 포인팅 장치의 본체)로부터 제2 좌표계(즉, 사용자 좌표계)로 감지된 움직임 데이터를 변환하여 사용성을 향상시키는 3D 포인팅 장치를 기재한다. 본 발명의 일 실시예는, 3D 포인팅 장치가 사용자에 의해 홀드되는 틸트 배향과 연관되는 효과를 제거한다.
본 발명의 일 실시예에 따르면, 핸드헬드 포인팅 장치는, 제1 축에 대해 상기 포인팅 장치의 회전을 결정하고 그와 연관된 제1 회전 출력을 생성하는 제1 회전 센서; 제2 축에 대한 상기 포인팅 장치의 회전을 결정하고 그와 연관된 제2 회전 출력을 생성하는 제2 회전 센서; 상기 포인팅 장치의 가속도를 결정하고 그와 연관된 가속도 출력을 출력하는 가속도계; 및 상기 제1과 제2 회전 출력과 상기 가속도계 출력을 수신하는 처리부를 포함하고, 상기 처리부는, (a) 사용자가 핸드헬드 포인팅 장치를 홀드하는 방식과 연관된 틸트 효과를 제거하기 위해, 상기 핸드헬드 포인팅 장치와 연관된 본체 좌표계로부터 사용자 좌표계로 상기 제1과 제2 회전 출력과 상기 가속도 출력을 변환시키고, (b) 스크린 커서의 움직임과 연관된 x와 y 좌표들과 연관된 데이터를 결정하고, 상기 데이터는 상기 변환된 제1과 제2 회전 출력과 상기 변환된 가속도 출력에 기초하고, 상기 변환 단계는, 사용자가 상기 핸드헬드 장치를 홀드하는 배향에 무관하게 상기 스크린 커서의 상기 움직임을 랜더링한다.
본 발명의 다른 실시예에 따르면, 3D 포인팅 장치를 사용하는 방법은, 3D 포인팅 장치의 움직임을 검출하는 단계와, 3D 포인팅 장치와 연관된 본체 좌표계로부터 관성 좌표계로 검출된 움직임을 변환하여 검출된 움직임을 보상하는 단계를 포함한다.
본 발명의 다른 실시예에 따르면, 3D 핸드헬드 장치는, 3D 포인팅 장치의 움직임을 검출하는 적어도 한 개의 센서와, 3D 포인팅 장치와 연관된 본체 좌표계로부터 관성 좌표계로 검출된 움직임을 변환하여 검출된 움직임을 보상하는 처리부를 포함한다.
<도면의 간단한 설명>
첨부된 도면은 본 발명의 실시예들을 나타낸다.
도 1은 오락 시스템을 위한 종래 원격 제어 유닛을 도시한다.
도 2는 본 발명의 실시예들이 구현될 수 있는 미디어 시스템의 일례를 도시한다.
도 3은 본 발명의 일 실시예에 따른 3D 포인팅 장치를 나타낸다.
도 4는 2개의 회전 센서와 1개의 가속도계를 포함하는 도 3의 3D 포인팅 장치의 절단도(cutaway view)를 나타낸다.
도 5는 본 발명의 일 실시예에 따른 3D 포인팅 장치와 연관된 데이터 처리를 나타내는 블럭도이다.
도 6a-6d는 틸트(tilt)의 효과를 나타낸다.
도 7은 본 발명의 일 실시예에 따른 3D 포인팅 장치의 하드웨어 아키텍쳐를 도시한다.
도 8은 본 발명의 일 실시예에 따른 정지(stationary) 검출 메커니즘을 나타내는 상태도이다.
도 9는 본 발명의 일 실시예에 따라서 제1 좌표계로부터 제2 좌표계로 감지된 움직임 데이터의 변환을 나타내는 블럭도이다.
도 10은 본 발명의 일 실시예에 따라서 제1 좌표계로부터 제2 좌표계로 감지된 움직임 데이터의 변환을 그래픽으로 나타낸다.
본 발명에 대한 이하의 상세한 설명은 첨부 도면을 참조하고 있다. 서로 다른 도면에서 동일한 참조 번호는 동일 또는 유사한 구성요소를 식별해준다. 또한, 이하의 상세한 설명은 본 발명을 제한하지 않는다. 그 대신에, 본 발명의 범위는 첨부된 청구 범위에 의해 정의된다.
이 설명에 대한 어떤 정황을 제공하기 위해, 도 2와 관련하여 본 발명이 구현될 수 있는 예시적인 통합된 미디어 시스템(200)에 대해 먼저 기술한다. 그렇지만, 당업자라면 본 발명이 이러한 유형의 미디어 시스템에서의 구현으로 제한되지 않는다는 것과 더 많거나 더 적은 구성요소가 그 안에 포함될 수 있다는 것을 잘 알 것이다. 여기에서, 입/출력(I/O) 버스(210)는 미디어 시스템(200) 내의 시스템 구성요소들을 서로 연결시킨다. I/O 버스(210)는 미디어 시스템 구성요소들 간에 신호를 라우팅(routing)하는 다수의 서로 다른 메카니즘 및 기술 중 임의의 것을 나타낸다. 예를 들어, I/O 버스(210)는 오디오 신호를 라우팅하는 적절한 수의 독립적인 오디오 "패치" 케이블(audio patch cable), 비디오 신호를 라우팅하는 동축 케이블, 제어 신호를 라우팅하는 2-선 직렬 회선 또는 적외선 또는 무선 주파수 송수신기, 다른 유형의 신호를 라우팅하는 광섬유 또는 임의의 다른 라우팅 메카니즘을 포함할 수 있다.
본 실시예에서, 미디어 시스템(200)은 I/O 버스(210)에 연결된 텔레비전/모니터(212), 비디오 카세트 레코더(VCR)(214), 디지털 비디오 디스크(DVD) 레코더/플레이백(playback) 장치(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) 또는 극초단파(UHF) 무선 주파수 통신(예를 들어, 공중 안테나를 통함), 전화 네트워크(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)(롤(roll)), y-축 고 도(elevation)(피치(pitch)), 및/또는 z-축 지향(heading)(요(yaw)) 움직임의 조합으로 정의될 수 있다. 게다가, 본 발명의 어떤 예시적인 실시예들은 또한 커서 움직임 또는 다른 사용자 인터페이스 명령을 발생하기 위해 x, y 및 z축을 따른 3D 포인팅 장치(400)의 직선 움직임을 측정할 수 있다. 도 3의 예시적인 실시예에서, 3D 포인팅 장치(400)는 2개의 버튼(402, 404)은 물론 스크롤 휠(scroll wheel)(406)을 포함하지만, 다른 예시적인 실시예들은 다른 물리적 구성을 포함하고 있다. 본 발명의 예시적인 실시예들에 따르면, 3D 포인팅 장치(400)를 디스플레이(408) 전방에서 사용자가 잡고 있고 또 3D 포인팅 장치(400)의 움직임이 3D 포인팅 장치에 의해, 디스플레이(4080 상에 디스플레이되는 정보와 상호작용하는 데, 예를 들어 디스플레이(408) 상에서 커서(410)를 움직이는 데 사용가능한 출력으로 변환되는 것이 예견되고 있다. 예를 들어, y-축을 중심으로 한 3D 포인팅 장치(400)의 회전은 3D 포인팅 장치(400)에 의해 감지되고 디스플레이(408)의 y2 축을 따라 커서(410)를 이동시키기 위해 시스템에 의해 사용가능한 출력으로 변환될 수 있다. 이와 마찬가지로, z-축을 중심으로 한 3D 포인팅 장치(400)의 회전은 3D 포인팅 장치(400)에 의해 감지되고 디스플레이(408)의 x2 축을 따라 커서(410)를 이동시키기 위해 시스템에 의해 사용가능한 출력으로 변환될 수 있다. 3D 포인팅 장치(400)의 출력이 커서 움직임 이외의(또는 그에 부가하여) 여러가지 방식으로 디스플레이(408)와 상호작용하는 데 사용될 수 있다는 것을, 예를 들어 이 출력이 커서 페이딩(cursor fading), 볼륨 또는 미디어 전달(재생, 일시 정지, 고속 감기 및 되감기)을 제어할 수 있다는 것을 잘 알 것이다. 입력 명령은 커서 움직임에 부가하여 여러 동작들, 예를 들어 디스플레이의 특정 영역 상에서의 줌인(zoom in) 또는 줌아웃(zoom out)을 포함할 수 있다. 커서는 보이거나 보이지 않을 수 있다. 이와 유사하게, 3D 포인팅 장치(400)의 x-축을 중심으로 한 3D 포인팅 장치(400)의 회전은 사용자 인터페이스에 입력을 제공하기 위해 y-축 및/또는 z-축에 부가하여 또는 그 대안으로서 사용될 수 있다.
본 발명의 예시적인 실시예에 따르면, 2개의 회전 센서(502, 504) 및 하나의 가속도계(506)가 도 4에 도시한 바와 같이 3D 포인팅 장치(400)에서 센서로서 이용될 수 있다. 회전 센서(502, 504)는 예를 들어 Analog Devices에 의해 제조된 ADXRS150 또는 ADXRS401 센서를 사용하여 구현될 수 있다. 당업자라면 다른 유형의 회전 센서가 회전 센서(502, 504)로서 이용될 수 있으며 또 ADXRS150 및 ADXRS401이 순전히 예시적인 일례로서 사용되고 있다는 것을 잘 알 것이다. 종래의 자이로스코프와는 달리, 이들 회전 센서는 이 센서가 한 방향을 따라서만 공진할 수 있도록 좌표계에 부착되어 있는 공진 질량(resonating mass)을 제공하기 위해 MEMS 기술을 사용한다. 센서가 부착되어 있는 몸체가 센서의 감지축을 중심으로 회전될 때 공진 질량이 변위된다. 이 변위(displacement)는 감지축을 따른 회전과 연관된 각속도를 구하기 위해 코리올리 가속도 효과(Coriolis acceleration effect)를 사용하여 측정될 수 있다. 회전 센서(502, 504)가 단일의 감지축을 갖는 경우(예를 들어, ADXRS150의 경우), 이 회전 센서는 그의 감지축이 측정될 회전과 일직선으로 정렬되도록 3D 포인팅 장치(400)에 탑재되어 있을 수 있다. 본 발 명의 이 예시적인 실시예의 경우, 이것은 도 4에 도시한 바와 같이 회전 센서(504)가 그의 감지축이 y-축에 평행하게 되도록 탑재되어 있고 회전 센서(502)가 그의 감지축이 z-축에 평행하게 되도록 탑재되어 있다는 것을 의미한다. 그렇지만, 유의할 점은 회전 센서(502, 504)의 감지축을 원하는 측정축에 평행하게 정렬할 필요가 없는데 그 이유는 본 발명의 예시적인 실시예가 또한 축들 간의 오프셋을 보상하기 위한 기술을 제공하기 때문이다.
본 발명에 따른 예시적인 3D 포인팅 장치(400)를 구현함에 있어서 직면하는 한 가지 챌런지는 너무 비싸지 않은 구성요소, 예를 들어 회전 센서(502, 504)를 이용하면서 그와 동시에 3D 포인팅 장치(400)의 움직임, 사용자 인터페이스가 3D 포인팅 장치의 그 특정의 움직임에 어떻게 반응하는지에 관한 사용자의 예상, 및 그 움직임에 응답한 실제 사용자 인터페이스 성능 간의 고도의 상관 관계를 제공하는 것이다. 예를 들어, 3D 포인팅 장치(400)가 움직이지 않는 경우, 사용자는 아마도 커서가 화면 상에서 돌아다녀서는 안되는 것으로 예상할 것이다. 이와 마찬가지로, 사용자가 3D 포인팅 장치(400)를 순전히 y-축을 중심으로만 회전시키는 경우, 사용자는 아마도 디스플레이(408) 상에서의 결과적인 커서 움직임이 어떤 상당한 x2 축 성분을 포함하는 것을 볼 것으로 예상하지 않는다. 본 발명의 예시적인 실시예들의 이들 및 다른 태양을 달성하기 위해, 센서(502, 504, 506) 중 하나 이상의 출력을 조정하는 데 사용되고 및/또는 센서(502, 504, 506)의 출력에 기초하여 사용자 인터페이스에 대한 적절한 출력을 결정하기 위해 프로세서에 의해 사용 되는 입력의 일부로서 사용되는 여러가지 측정 및 계산이 핸드헬드 장치(400)에 의해 수행된다. 이들 측정 및 계산은 크게 2가지 카테고리에 속하는 인자들, 즉 (1) 3D 포인팅 장치(400)에 내재적인 인자, 예를 들어 장치(400)에서 사용되는 특정의 센서(502, 504, 506)와 연관된 에러 또는 센서들이 장치(400)에 탑배되는 방식, 및 3D 포인팅 장치(400)에 내재적인 것은 아니지만 그 대신에 사용자가 3D 포인팅 장치(400)를 사용하는 방식과 연관되어 있는 인자, 예를 들어 선가속도(linear acceleration), 틸트 및 떨림(tremor)을 보상하는 데 사용된다. 이들 효과 각각을 처리하는 예시적인 기술에 대해 이하에서 기술한다.
본 발명의 예시적인 실시예들에 따른 3D 포인팅 장치의 일반적인 동작을 기술하는 처리 모델(600)이 도 5에 예시되어 있다. 회전 센서(502, 504)는 물론 가속도계(506)는 주기적으로, 예를 들어 200 샘플/초로 샘플링되는 아날로그 신호를 생성한다. 이 설명의 목적상, 이들 입력의 세트는 표기법 (x, y, z, αy, αz)를 사용하여 참조되며, 여기서 x, y, z는 각각 x-축, y-축 및 z-축 방향에서의 3D 포인팅 장치의 가속도와 연관되어 있는 예시적인 3-축 가속도계(506)의 샘플링된 출력값이고, αy는 y-축을 중심으로 한 3D 포인팅 장치의 회전과 연관되어 있는 회전 센서(502)로부터의 샘플링된 출력값이며, αz는 z-축을 중심으로 한 3D 포인팅 장치(400)의 회전과 연관되어 있는 회전 센서(504)로부터의 샘플링된 출력값이다.
가속도계(506)로부터의 출력이 제공되고, 가속도계(506)가 아날로그 출력을 제공하는 경우, 이 출력은 A/D 변환기(도시 생략)에 의해 샘플링되고 디지털화되어 샘플링된 가속도계 출력(602)을 발생한다. 이 샘플링된 출력값은 변환 기능(604) 으로 나타낸 바와 같이, 원시 단위(raw unit)로부터 가속도의 단위, 예를 들어 중력가속도(g)로 변환된다. 가속도 캘리브레이션 블록(606)은 변환 기능(604)에서 사용되는 값을 제공한다. 가속도계 출력(602)의 이러한 캘리브레이션은 예를 들어 가속도계(506)와 연관된 스케일(scale), 오프셋(offset) 및 축 오정렬 에러(axis misalignment error) 중 하나 이상에 대한 보상을 포함할 수 있다. 가속도계 데이터에 대한 예시적인 변환은 수학식 1을 사용하여 수행될 수 있다.
Figure 112006088956534-PCT00001
여기서, M은 샘플링된 출력값 (x,y,z)으로 이루어진 3x1 열 벡터이고, P는 센서 오프셋의 3x1 열 벡터이며, S는 스케일, 축 오정렬, 및 센서 회전 보상 전부를 포함하는 3x3 행렬이다. G(T)는 온도의 함수인 이득 인자(gain factor)이다. "*" 연산자는 행렬 곱셈을 나타내고, ".*" 연산자는 요소 곱셈(element multiplication)을 나타낸다. 예시적인 가속도계(506)는 +/- 2g의 예시적인 전 범위를 갖는다. 센서 오프셋 P는 0g의 가속도계 측정에 대한 센서 출력 M을 말한다. 스케일은 샘플링된 단위 값과 g 간의 변환 인자를 말한다. 임의의 주어진 가속도계 센서의 실제 스케일은 예를 들어 제조 변동으로 인해, 이들 공칭 스케일 값과 편차가 있을 수 있다. 따라서, 수학식 1에서의 스케일 인자는 이 편차에 비례하게 된다.
가속도계(506) 스케일 및 오프셋 편차는 예를 들어 한 축을 따라 1g의 힘을 가하고 결과 R1을 측정함으로써 측정될 수 있다. 이어서, -1g 힘이 가해지고 그 결과 측정 R2가 얻어진다. 개개의 축 스케일 s 및 개개의 축 오프셋 p는 다음과 같이 계산된다.
Figure 112006088956534-PCT00002
Figure 112006088956534-PCT00003
이 간단한 경우에서, P는 각각의 축에 대한 p의 열 벡터이고, S는 각각의 축에 대한 1/s의 대각 행렬이다.
그렇지만, 스케일 및 오프셋에 부가하여, 가속도계(506)에 의해 발생된 값들은 또한 교차-축 효과(cross-axes effect)를 겪을 수 있다. 교차-축 효과는 비정렬된 축 - 예를 들어, 가속도계(506)의 감지축들 중 하나 이상이 3D 포인팅 장치(400)에 탑재될 때 관성 좌표계에서의 대응하는 축과 정렬되지 않은 경우 -, 또는 가속도계(506) 자체의 머시닝과 연관된 기계적 에러 - 예를 들어, 축들이 적절히 정렬되어 있더라도, 순수한 y-축 가속력인데도 가속도계(506)의 z-축을 따른 센서 표시값(sensor reading)이 얻어질 수 있는 경우 - 를 포함한다. 또한, 이들 효과 모두가 측정되어 기능(606)에 의해 수행되는 캘리브레이션에 부가될 수 있다.
가속도계(506)는 본 발명의 예시적인 실시예에 따른 예시적인 3D 포인팅 장치에서 몇 가지 목적에 기여한다. 예를 들어, 회전 센서(502, 504)가 상기한 예시적인 코리올리 효과 회전 센서를 사용하여 구현되는 경우, 회전 센서(502, 504)의 출력은 각각의 회전 센서가 겪게 되는 선가속도에 기초하여 변하게 된다. 따라서, 가속도계(506)의 한 예시적인 용도는 선가속도의 변동에 의해 야기되는 회전 센서(502, 504)에 의해 발생되는 표시값의 변동을 보상하는 것이다. 이것은 변환된 가속도계 표시값을 이득 행렬(610)과 곱하고 그 결과를 대응하는 샘플링된 회전 센서 데이터(612)로부터 감산(또는 그에 가산)함으로써 달성될 수 있다. 예를 들어, 회전 센서(502)로부터의 샘플링된 회전 데이터 αy는 수학식 4와 같이 블록(614)에서 선가속도에 대해 보상될 수 있다.
Figure 112006088956534-PCT00004
여기서, C는 단위/g로 주어지는 각각의 축을 따른 선가속도에 대한 회전 센서 자화율(rotational sensor susceptibility)의 1x3 행 벡터이고, A는 캘리브레이션된 선가속도이다. 이와 유사하게, 회전 센서(504)로부터의 샘플링된 회전 데이터 αz에 대한 선가속도 보상은 블록(614)에서 제공될 수 있다. 제조 차이로 인해 회전 센서들 간에 이득 행렬 C가 다르다. C는 많은 회전 센서에 대한 평균 값을 사용하여 계산될 수 있거나 이는 각각의 회전 센서에 대해 맞춤 계산될 수 있다.
가속도계 데이터와 같이, 샘플링된 회전 데이터(612)가 이어서 블록(616)에서 샘플링된 단위 값으로부터 각회전의 속도와 연관된 값, 예를 들어 라디안/초(radian/s)로 변환된다. 이 변환 단계는 또한 예를 들어 스케일 및 오프셋에 대해 샘플링된 회전 데이터를 보상하기 위해 기능(618)에 의해 제공되는 캘리브레이션을 포함할 수 있다. αy 및 αz 모두에 대한 변환/캘리브레이션은 예를 들어 수학식 5를 사용하여 달성될 수 있다.
Figure 112006088956534-PCT00005
여기서, α'은 변환된/캘리브레이션된 값을 말하고, offset(T)는 온도와 연관된 오프셋 값을 말하며, scale은 샘플링된 단위값과 rad/s 간의 변환 인자를 말하고, dOffset은 동적 오프셋 값을 말한다. 수학식 5는 scale을 제외한 모든 변수가 벡터인 행렬 방정식으로서 구현될 수 있다. 행렬 방정식 형태에서, scale은 축 오정렬 및 회전 오프셋 인자를 보정한다. 이들 변수 각각에 대해서는 이하에서 보다 상세히 기술한다.
오프셋 값 offset(T) 및 dOffset은 다수의 서로 다른 방식으로 구해질 수 있다. 3D 포인팅 장치(400)가 예를 들어 y-축 방향에서 회전하지 않는 경우, 센서(502)는 그의 오프셋 값을 출력해야만 한다. 그렇지만, 이 오프셋은 온도에 의해 크게 영향을 받을 수 있으며, 따라서 이 오프셋 값은 아마도 변할 것이다. 오프셋 온도 캘리브레이션은 공장에서 수행될 수 있으며, 이 경우에 offset(T)에 대한 값(들)은 핸드헬드 장치(400) 내에 사전프로그램될 수 있거나, 다른 경우 오프셋 온도 캘리브레이션은 또한 장치의 수명 동안에 동적으로 학습될 수 있다. 동적 오프셋 보상을 달성하기 위해, 온도 센서(619)로부터의 입력이 offset(T)에 대한 현재 값을 계산하기 위해 회전 캘리브레이션 기능(618)에서 사용된다. offset(T) 파라미터는 센서 표시값으로부터 대부분의 오프셋 바이어스(offset bias)를 제거한다. 그렇지만, 움직임이 없는 거의 모든 커서 드리프트(cursor drift)를 무효화하는 것이 고성능 포인팅 장치를 생산하는 데 유용할 수 있다. 따라서, 3D 포인팅 장치(400)가 사용 중에 있는 동안, 부가적인 인자 dOffset가 동적으로 계산될 수 있다. 정지 검출 기능(stationary detection function)(608)은 핸드헬드 장치가 아마도 정지되어 있는 때 및 오프셋이 재계산되어야만 하는 때를 판정한다. 정지 검출 기능(608)은 물론 다른 사용을 구현하기 위한 예시적인 기술에 대해 이하에서 기술한다.
dOffset 계산의 예시적인 구현은 저역 통과 필터링된 캘리브레이션된 센서 출력을 이용한다. 정지 출력 검출 기능(608)은 예를 들어 저역 통과 필터 출력의 평균의 계산을 트리거하기 위해 회전 캘리브레이션 기능(618)에 표시를 제공한다. 정지 출력 검출 기능(608)은 또한 새로 계산된 평균이 oOffset에 대한 기존의 값에 고려될 때를 제어할 수 있다. 당업자라면 간단한 평균 구하기, 저역-통과 필터링 및 Kalman 필터링(이에 한정되는 것은 아님)을 비롯한 새로운 평균 및 dOffset의 기존의 값으로부터 dOffset에 대한 새로운 값을 계산하는 데 다수의 서로 다른 기술이 사용될 수 있다는 것을 잘 알 것이다. 게다가, 당업자라면 회전 센서(502, 504)의 오프셋 보상에 대한 여러가지 변형이 이용될 수 있다는 것을 잘 알 것이다. 예를 들어, offset(T) 기능은 상수값(예를 들어, 온도에 불변임)을 가질 수 있으며, 3개 이상의 오프셋 보상 값이 사용될 수 있고, 및/또는 단지 하나의 오프셋 값만이 계산되고/오프셋 보상에 사용될 수 있다.
블록(616)에서의 변환/캘리브레이션 이후에, 기능(620)에서, 관성 좌표계에의 그 입력들을 회전시키기 위해, 즉 사용자가 3D 포인팅 장치(400)를 붙잡고 있는 방식과 연관된 틸트를 보상하기 위해 회전 센서(502, 504)로부터의 입력이 추가적 으로 처리될 수 있다. 틸트 보정은 본 발명의 어떤 예시적인 실시예의 다른 중요한 태양인데, 그 이유는 이 보정이 본 발명에 따른 3D 포인팅 장치의 사용 패턴에서의 차이를 보상하기 위한 것이기 때문이다. 보다 구체적으로는, 본 발명의 예시적인 실시예들에 따른 틸트 보정은 사용자가 포인팅 장치를 그의 손에서 다른 x-축 회전 위치에 잡게 될 것이지만 3D 포인팅 장치(400) 내의 회전 센서(502, 504)의 감지축이 고정되어 있다는 사실을 보상하기 위한 것이다. 디스플레이(408)에서의 커서 이동(cursor translation)이 사용자가 3D 포인팅 장치(400)를 잡고 있는 방식에 실질적으로 영향을 받지 않는 것이 바람직하다, 예를 들어, 사용자가 3D 포인팅 장치(400)를 잡고 있는 배향에 상관없이, 일반적으로 디스플레이(408)의 수평 차원(x2-축)에 대응하는 방식으로 3D 포인팅 장치(400)를 앞뒤로 회전시킨 결과 x2-축을 따른 커서 이동이 얻어져야 하고 일반적으로 디스플레이(408)의 수직 차원(y2-축)에 대응하는 방식으로 3D 포인팅 장치를 상하로 회전시킨 결과 y2-축을 따른 커서 이동이 얻어져야만 하는 것이 바람직하다.
본 발명의 예시적인 실시예들에 따른 틸트 보상에 대한 필요성을 보다 잘 이해하기 위해, 도 6a에 도시한 예를 생각해보자. 여기서, 예를 들어, 관성 좌표계에서, 예를 들어, TV가 위치된 방의 바닥에 평행하게 3D 장치의 밑면이 놓이는 것과 같이, 0도의 x-축 회전값을 갖는 것으로서 정의될 수 있는 관성 좌표계의 일례에서, 사용자가 3D 포인팅 장치(400)를 홀드한다. 이 관성 좌표계는, 순전히 예로서, 도 6a에 도시한 배향에 대응할 수 있거나 임의의 다른 배향으로서 정의될 수 있다. y-축 또는 z-축 방향에서의 3D 포인팅 장치(400)의 회전은 회전 센서(502, 504)에 의해 각각 감지된다. 예를 들어, 도 6b에 도시한 바와 같이 z-축을 중심으로 Δz만큼 3D 포인팅 장치(400)의 회전의 결과 디스플레이(408)에서의 x2 축 차원에서의 대응하는 커서 이동 Δx2(즉, 점선으로 된 커서(410)와 점선이 아닌 커서(410) 간의 거리)이 있게 된다.
반면에, 사용자가 다른 배향으로, 예를 들어 관성 좌표계에 대해 얼마만큼 x-축 회전한 상태에서 3D 포인팅 장치(400)를 잡고 있는 경우, 센서(502, 504)에 의해 제공되는 정보는 사용자의 의도한 인터페이스 동작의 정확한 표현을 제공하지 않는다(틸트 보상이 없슴). 예를 들어, 도 6c를 참조하면, 사용자가 도 6a에 나타낸 바와 같이 예시적인 관성 좌표계에 대해 45도 x-축 회전한 상태에서 3D 포인팅 장치(400)를 잡고 있는 상황을 생각해보자. 도 6(b)의 예에서와 같이, 사용자에 의해 3D 포인팅 장치(400)에게 동일한 z-축 회전 Δz가 주어진다고 가정하면, 도 6(d)에 도시된 바와 같이, 그 대신 커서는 x2-축 방향과 y2-축 방향 모두로 평행이동(translation)될 것이다. 이것은 회전 센서(502)의 감지축이 이제 (사용자의 손에서의 장치의 배향으로 인해) y-축과 z-축 사이에 배향되어 있다는 사실에 기인한 것이다. 이와 유사하게, 회전 센서(504)의 감지축도 역시 y-축과 z-축 사이에 배향되어 있다(그렇지만, 서로 다른 사분면에 있음). 3D 포인팅 장치(400)를 어떻게 잡고 있는가의 관점에서 사용자에게 투명한 인터페이스를 제공하기 위해, 본 발명의 예시적인 실시예에 따른 틸트 보상은 회전 센서(502, 504)로부터의 표시값을 3D 포인팅 장치(400)의 회전 운동을 나타내는 정보로 바꾸는 처리의 일부로서 이들 센서로부터 출력된 판독값을 다시 관성 좌표계로 변환한다.
본 발명의 예시적인 실시예에 따르면, 도 5로 돌아가서, 이것은 기능(622)에서 가속도계(506)로부터 수신된 입력 y 및 z를 사용하여 3D 포인팅 장치(400)의 틸트를 구함으로써 달성될 수 있다. 보다 구체적으로는, 가속도 데이터가 상기한 바와 같이 변환되고 캘리브레이션된 후에, 이 데이터는 틸트 결정 기능(622)에 평균 가속도(중력 가속도) 값을 제공하기 위해 LPF(624)에서 저역 통과 필터링된다. 이어서, 틸트 θ는 수학식 7에서와 같이 기능(622)에서 계산될 수 있다.
Figure 112006088956534-PCT00006
값 θ는 0으로 나누는 것을 방지하고 정확한 부호를 제공하기 위해 atan2(y,z)로서 수치 계산될 수 있다. 이어서, 기능(620)은 변환된/캘리브레이션된 입력 αy 및 αz를 회전시켜 틸트 θ를 보상하기 위해 수학식 8을 사용하여 변환된/캘리브레이션된 입력 αy 및 αz의 회전 R을 수행할 수 있다.
Figure 112006088956534-PCT00007
본 실시예에 기술된 바와 같은 틸트 보상은, 이하에 기재된 본 발명의 다른 실시예에 따라 본체 좌표계로부터 사용자 좌표계로 센서 값을 변환하는 더 일반적인 기술 의 부분집합이다.
캘리브레이션된 센서 표시값이 선가속도에 대해 보상되고, 3D 포인팅 장치(400)의 각회전을 나타내는 표시값으로 변환 처리되며, 또 틸트에 대해 보상된 경우, 블록(626, 628)에서 사후 처리가 수행될 수 있다. 예시적인 사후 처리는 사람의 떨림 등의 여러가지 인자에 대한 보상을 포함할 수 있다. 몇 가지 다른 방법을 사용하여 떨림이 제거될 수 있지만, 떨림을 제거하는 한 가지 방법은 히스테리시스를 사용하는 것이다. 회전 기능(620)에 의해 생성된 각속도는 적분되어 각위치를 생성한다. 이어서, 캘리브레이션된 크기의 히스테리시스가 각위치에 적용된다. 다시 각속도를 산출하기 위해 히스테리시스 블록의 출력의 도함수가 구해진다. 이어서 그 결과 얻어지는 출력이 기능(628)에서 (예를 들어, 샘플링 주기에 기초하여) 스케일링되고 인터페이스 내에서의 결과, 예를 들어 디스플레이(408) 상에서의 커서(401)의 움직임을 생성하는 데 사용된다.
본 발명에 따른 예시적인 3D 포인팅 장치의 처리 설명을 제공하였으며, 도 7은 예시적인 하드웨어 아키텍처를 나타낸 것이다. 여기에서, 프로세서(800)는 스크롤 휠(802), JTAG(804), LED(806), 스위치 매트릭스(808), IR 광검출기(810), 회전 센서(812), 가속도계(814) 및 송수신기(816)를 비롯한 3D 포인팅 장치의 다른 구성요소들과 통신한다. 스크롤 휠(802)은 사용자로 하여금 스크롤 휠(802)을 시계 방향으로 또는 반시계 방향으로 회전함으로써 인터페이스에 입력을 제공할 수 있게 해주는 선택적인 입력 구성요소이다. JTAG(804)은 프로세서에의 프로그래밍 및 디버깅 인터페이스를 제공한다. LED(806)는 예를 들어 버튼이 눌러질 때 사용 자에게 시각적 피드백을 제공한다. 스위치 매트릭스(808)는 입력, 예를 들어 3D 포인팅 장치(400) 상의 버튼이 눌러지거나 놓아졌다는 표시를 수신하고, 이 표시는 이어서 프로세서(800)로 전달된다. 예시적인 3D 포인팅 장치가 다른 리모콘으로부터 IR 코드를 학습할 수 있게 해주기 위해 선택적인 IR 광검출기(810)가 제공될 수 있다. 회전 센서(812)는 예를 들어 상기한 바와 같이 3D 포인팅 장치의 y-축 및 z-축 회전에 관한 표시값을 프로세서(800)에 제공한다. 가속도계(814)는, 예를 들어 틸트 보상을 수행하고 또 선가속도가 회전 센서(812)에 의해 발생된 회전 표시값에 유입시킨 에러를 보상하기 위해, 상기한 바와 같이 사용될 수 있는 3D 포인팅 장치(400)의 선가속도에 관한 표시값을 프로세서(800)에 제공한다. 송수신기(816)는 3D 포인팅 장치(400)로/로부터의 정보를, 예를 들어 시스템 제어기(228)로 또는 컴퓨터와 연관된 프로세서로 전달하는 데 사용된다. 송수신기(816)는 예를 들어 단거리 무선 통신에 대한 블루투스 표준에 따라 동작하는 무선 송수신기 또는 적외선 송수신기일 수 있다. 다른 경우, 3D 포인팅 장치(400)는 유선 연결을 통해 시스템과 통신할 수 있다.
도 4의 예시적인 실시예에서, 3D 포인팅 장치(400)는 2개의 회전 센서(502, 504)는 물론 하나의 가속도계(506)를 포함한다. 그렇지만, 본 발명의 다른 예시적인 실시예에 따르면, 3D 포인팅 장치는 다른 경우 예를 들어 z-축 방향에서의 각속도를 측정하기 위한 단지 하나의 회전 센서, 및 하나의 가속도계를 포함할 수 있다. 이러한 일 실시예에서, 회전 센서에 의해 감지되지 않는 축을 따라 각속도를 구하기 위해 가속도계를 사용함으로써 상기한 것과 유사한 기능이 제공될 수 있다. 예를 들어, 가속도계에 의해 발생된 데이터를 사용하여 y-축을 중심으로 한 회전 속도가 계산될 수 있으며, 수학식 9를 계산한다.
Figure 112006088956534-PCT00008
게다가, 회전 센서에 의해 측정되지 않는 기생 가속도 효과(parasitic acceleration effect)도 역시 제거될 수 있다. 이들 효과는 실제 선가속도, 회전 속도 및 회전 가속도로 인해 측정된 가속도, 및 사람의 떨림에 기인한 가속도를 포함한다.
이상에서 간략히 언급한 정지 검출 기능(608)은 3D 포인팅 장치(400)가 예를 들어 정지해 있는지 동작하고(움직이고) 있는지를 판정하는 동작을 한다. 이러한 분류는 다수의 서로 다른 방식으로 수행될 수 있다. 본 발명의 예시적인 실시예에 따른 한 가지 방식은 예를 들어 매 1/4초마다 미리 정해진 윈도우에 걸쳐 모든 입력(x,y,z,αy, αz)의 샘플링된 입력 데이터의 변동을 계산하는 것이다. 이 변동은 이어서 3D 포인팅 장치를 정지(stationary) 또는 동작중(active)으로서 분류하기 위해 문턱값과 비교된다.
본 발명의 예시적인 실시예에 따른 다른 정지 검출 기술은 예를 들어 입력 데이터에 대해 고속 푸리에 변환(FFT)를 수행함으로써 입력을 주파수 영역으로 변환하는 것을 수반한다. 이어서, 이 데이터는 3D 포인팅 장치(400)가 정지하고 있는지 동작하고 있는지를 판정하기 위해 예를 들어 피크 검출 방법을 사용하여 분석 된다. 게다가, 제3 카테고리, 구체적으로는 사용자가 3D 포인팅 장치(400)를 잡고 있지만 그것을 움직이지 않는 경우(본 명세서에서 "안정(stable)" 상태라고도 함)가 분류될 수 있다. 이 제3 카테고리는 사용자가 3D 포인팅 장치(400)를 잡고 있을 때 사용자의 손 떨림에 의해 유입되는 3D 포인팅 장치(400)의 작은 움직임을 검출함으로써 정지(잡고 있지 않음) 및 동작중과 구별될 수 있다. 피크 검출도 역시 이 판정을 행하기 위해 정지 검출 기능(608)에 의해 사용될 수 있다. 사람의 떨림 주파수의 범위, 예를 들어 공칭상 8-12 Hz 내의 피크는 일반적으로 장치의 노이즈 플로어(noise floor)(장치가 정지되어 있고 잡고 있지 않을 때에 경험됨)를 대략 20 dB만큼 초과한다.
상기한 예들에서, 주파수 범위에서의 변동은 특정의 주파수 범위 내에서 감지되었지만, 3D 포인팅 장치(400)의 상태를 특징지우기 위해 모니터링되고 사용될 실제 주파수 범위가 변할 수 있다. 예를 들어, 공칭 떨림 주파수 범위는 예를 들어 3D 포인팅 장치(400)의 인간 공학 및 중량에 기초하여, 예를 들어 8-12 Hz에서 4-7 Hz로 천이할 수 있다.
본 발명의 다른 예시적인 실시예에 따르면, 정지 검출 메카니즘(608)은 상태 머신을 포함할 수 있다. 예시적인 상태 머신이 도 8에 도시되어 있다. 여기에서, 동작중(ACTIVE) 상태는, 이 예에서, 3D 포인팅 장치(400)가 움직이고 있고, 예를 들어 사용자 인터페이스에 입력을 제공하기 위해 사용되고 있는 동안의 디폴트 상태이다. 3D 포인팅 장치(400)는 리셋 입력으로 나타낸 바와 같이 장치의 전원을 켤 때 동작중(ACTIVE) 상태에 들어갈 수 있다. 3D 포인팅 장치(400)가 움직임을 멈추는 경우, 이 장치는 비동작중(INACTIVE) 상태에 들어갈 수 있다. 도 8에 도시한 여러가지 상태 천이는 회전 센서(502, 504) 중 하나 또는 그 모두로부터 출력된 데이터, 가속도계(506)로부터 출력된 데이터, 시간 영역 데이터, 주파수 영역 데이터 또는 이들의 임의의 조합(이들에 한정되는 것은 아님)을 비롯한 다수의 서로 다른 기준 중 임의의 기준에 의해 트리거될 수 있다. 상태 천이 조건은 일반적으로 본 명세서에서 규약 "조건상태A->상태B"를 사용하여 언급된다. 예를 들어, 3D 포인팅 장치(400)는 조건동작중-> 비동작중이 일어날 때 동작중 상태에서 비동작중 상태로 천이된다. 단지 예시를 위해, 조건동작중-> 비동작중이, 예시적인 3D 포인팅 장치(400)에서, 회전 센서(들) 및 가속도계 모두로부터의 평균 및/또는 표준 편차 값이 제1 미리 정해진 기간에 대한 제1 미리 정해진 문턱값 아래로 떨어질 때 일어나는 것으로 생각해보자.
상태 천이는 해석된 센서 출력에 기초하여 다수의 서로 다른 조건에 의해 결정될 수 있다. 예시적인 조건 메트릭은 시간 윈도우에 걸친 해석된 신호의 변동을 포함하며, 시간 윈도우에 걸친 기준값과 해석된 신호 간의 문턱값, 시간 윈도우에 걸친 기준값과 필터링되고 해석된 신호 간의 문턱값, 및 시작 시간으로부터의 기준값과 해석된 신호 간의 문턱값이 상태 천이를 결정하는 데 사용될 수 있다. 이들 조건 메트릭의 임의의 조합이 상태 천이를 트리거하는 데 사용될 수 있다. 다른 경우, 다른 메트릭도 역시 사용될 수 있다. 본 발명의 일 실시예에 따르면, 비동작중(INACTIVE) 상태에서 동작중(ACTIVE) 상태로의 천이는 (1) 시간 윈도우에 걸친 센서 출력(들)의 평균값이 미리 정해진 문턱값(들)보다 크거나 (2) 시간 윈도우에 걸친 센서 출력(들)의 값들의 분산이 미리 정해진 문턱값(들)보다 크거나 또는 (3) 센서 값들 간의 순간 델타(instantaneous delta)가 미리 정해진 문턱값보다 클 경우에 일어난다.
비동작 중 상태는 정지 검출 메카니즘(608)으로 하여금 3D 포인팅 장치(400)가 여전히 사용 중에 있는, 예를 들어 1/10초 정도의 잠깐의 일시 정지 및 안정 또는 정지 조건으로의 실제 천이를 구별할 수 있게 해준다. 이것은 이하에 기술되는 안정(STABLE) 상태 및 정지(STATIONARY) 상태 동안에 수행되는 기능들이 3D 포인팅 장치가 사용 중에 있는 때에 부적절하게 수행되는 것으로부터 보호한다. 조건비동작중 ->동작중이 발생할 때, 예를 들어 3D 포인팅 장치(400)가 다시 움직이기 시작하여 회전 센서(들) 및 가속도계로부터의 측정된 출력이 비동작중 상태에서의 제2 미리 정해진 기간이 만료되기 이전에 제1 문턱값을 초과하는 경우, 3D 포인팅 장치(400)는 다시 동작중(ACTIVE) 상태로 천이하게 된다.
3D 포인팅 장치(400)는 제2 미리 정해진 기간이 만료된 후에 안정(STABLE) 상태 또는 정지(STATIONARY) 상태로 천이하게 된다. 앞서 언급한 바와 같이, 안정 상태는 3D 포인팅 장치(400)를 사람이 잡고 있지만 실질적으로 움직이지 않는 것으로 특징지우는 것을 반영하며, 정지 상태는 3D 포인팅 장치를 사람이 잡고 있지 않는 것으로 특징지우는 것을 반영한다. 따라서, 본 발명에 따른 예시적인 상태 머신은 손 떨림과 연관된 최소 움직임이 존재하는 경우 제2 미리 정해진 기간이 만료 된 후에 안정 상태로의 천이를 제공할 수 있거나, 그렇지 않은 경우 정지 상태로의 천이를 제공할 수 있다.
안정 상태 및 정지 상태는 3D 포인팅 장치(400)가 여러가지 기능을 수행할 수 있는 때를 정의한다. 예를 들어, 안정 상태가 사용자가 3D 포인팅 장치(400)를 잡고 있지만 이를 움직이지 않는 때를 반영하기 위한 것이기 때문에, 이 장치는 3D 포인팅 장치(400)가 안정 상태에 있을 때 이 상태에 있는 동안 회전 센서(들) 및/또는 가속도계로부터의 출력을 저장함으로써 그의 움직임을 기록할 수 있다. 이들 저장된 측정치는 이하에 기술하는 바와 같이 특정의 사용자 또는 사용자들과 연관된 떨림 패턴을 결정하는 데 사용될 수 있다. 이와 마찬가지로, 정지 상태에 있을 때, 3D 포인팅 장치(400)는 상기한 바와 같이 오프셋을 보상하는 데 사용하기 위해 회전 센서들 및/또는 가속도계로부터 표시값을 가져올 수 있다.
3D 포인팅 장치(400)가 안정 상태 또는 정지 상태에 있는 동안에 움직이기 시작하는 경우, 이것은 동작중 상태로의 복귀를 트리거할 수 있다. 그렇지 않은 경우, 측정을 한 후에, 장치는 슬립(SLEEP) 상태로 천이할 수 있다. 슬립 상태에 있는 동안에, 장치는 3D 포인팅 장치의 전력 소모가 감소되고, 또한 예를 들어 회전 센서들 및/또는 가속도계의 샘플링 레이트도 감소되는 절전 모드(power down mode)에 들어갈 수 있다. 외부 명령을 통해서도 슬립 상태에 들어갈 수 있으며, 따라서 사용자 또는 다른 장치는 3D 포인팅 장치(400)에 대해 슬립 상태에 들어가도록 명령할 수 있다.
다른 명령의 수신 시에, 또는 3D 포인팅 장치(400)가 움직이기 시작하는 경 우, 장치는 슬립 상태로부터 웨이크업(WAKEUP) 상태로 천이할 수 있다. 비동작중 상태와 같이, 웨이크업 상태도 장치가 동작중 상태로의 천이가 정당한 것인지, 예를 들어 3D 포인팅 장치(400)가 부적절하게 밀쳐지지 않았는지를 확인할 기회를 제공한다.
상태 천이에 대한 조건은 대칭적일 수 있거나 다를 수 있다. 따라서, 조건동작중-> 비동작중과 연관된 문턱값이 조건비동작중 ->동작중과 연관된 문턱값(들)과 동일할 수 있다(또는 그와 다를 수 있다). 이것은 본 발명에 따른 3D 포인팅 장치가 사용자 입력을 보다 정확하게 포착할 수 있게 해준다. 예를 들어, 상태 머신 구현을 포함하는 예시적인 실시예들은 그 중에서도 특히 정지 상태로의 천이를 위한 문턱값이 정지 상태로부터의 천이를 위한 문턱값과 다를 수 있게 해준다.
상태에 들어가는 것 또는 그로부터 나오는 것은 또한 다른 장치 기능을 트리거하는 데 사용될 수 있다. 예를 들어, 사용자 인터페이스는 임의의 상태에서 동작중 상태로의 천이에 기초하여 전원이 켜질 수 있다. 역으로, 3D 포인팅 장치 및/또는 사용자 인터페이스는 3D 포인팅 장치가 동작중 또는 안정 상태에서 정지 또는 비동작중 상태로 천이할 때 턴오프될 수 있다(또는 슬립 모드에 들어갈 수 있다). 다른 경우, 커서(410)는 3D 포인팅 장치(400)의 정지 상태로부터 또는 정지 상태로의 천이에 기초하여 화면에 디스플레이 또는 그로부터 제거될 수 있다.
위에서 언급된 바와 같이, 본 발명의 실시예들은 3D 포인팅 장치에서 센서들로부터 수신된 움직임 데이터를 처리하여, 3D 포인팅 장치의 본체의 좌표계로부터 다른 좌표계, 즉, 사용자의 좌표계로 이 데이터를 변환한다. 예를 들어, TV와 같은, 화면 상에 디스플레이되는 사용자 인터페이스를 제어하기 위해 사용되는 3D 포인팅 장치의 어플리케이션 예에서, 사용자 좌표계는 TV 화면과 연관된 좌표 시스템일 수 있다. 그럼에도 불구하고, 본체 좌표계로부터 다른 좌표계로의 데이터의 평행이동은 장치의 관점보다는 사용자 관점의 동작을 하도록 하는 결과를 가져와서 핸드핼드 장치의 사용성(usability)을 향상시킨다. 그러므로, 사용자가 3D 포인팅 장치를 홀딩하면서 디스플레이의 전면에 좌에서 우로 그(녀)의 손을 이동할 때, 자유공간 포인팅 장치의 배향과 무관하게 좌에서 우 방향으로 커서가 이동될 것이다.
더 상세히 상술된 것처럼, 도 9에, 본 논의를 단순화하기 위해, 자유공간 포인팅 장치와 연관된 처리 시스템의 일례가 도시된다. 핸드헬드 시스템은, 예를 들어, 회전 센서, 자이로스코프 센서, 가속도계, 자기계, 광 센서, 카메라, 또는 그것들의 임의의 조합과 같은 한 개 이상의 센서(902)를 사용하여 움직임을 감지한다. 그 다음, 블럭(902)에서 센서들이 해석되어 발생된 움직임을 추정한다. 그 다음, 처리 블럭(903)은 장치의 자연(본체) 좌표계로부터 사용자의 좌표계로 측정된 움직임을 변환한다. 그 다음, 시스템으로 전달된, 블럭(905)에서 해석되는 의미있는 동작들로 움직임이 매핑되어, 온스크린(on-screen) 커서를 이동하는 것과 같은, 의미있는 응답을 생성한다.
블럭(903)은 검출된 움직임을 장치의 좌표계 대신에 사용자의 좌표계로 변환한다. 오일러 각(Euler angles), 방향 코사인 행렬(direction cosine matrix;DCM), 또는 유닛 쿼터니언(uni-quarternion)을 포함하는 다수의 상이한 수 학적으로 유사한 방법들에 의해 배향이 표현될 수 있다. 위치는 일반적으로 미터, 센티미터, 피트, 인치, 및 마일을 포함하는, 하지만 이에 제한되지는 않는, 일관된 단위로 좌표 시스템 원점으로부터의 오프셋으로서 표현된다. 상술된 일 실시예에서, 자유공간 포인팅 장치는 가속도와 회전 속도를 포함하는 관성력을 측정한다. 이들 힘들은 거기에 탑재된 센서들에 의해 장치의 본체에 대해 측정된다. 측정 데이터를 사용자 좌표계로 변환하기 위해, 장치는 그것의 위치 및 배향 모두를 추정한다.
당업자라면, 본 발명에 따른 본 기술이, 시간-가변(time-varying) 좌표계로 직접 변환하여서 또는 정지(stationary) 좌표계로 먼저 변환하고나서 이동 좌표계로 변환하여서 사용자 좌표계가 비정지 좌표계가 되는 경우들로 쉽게 확장될 수 있슴을 이해할 것이지만, 본 실시예에서 사용자 좌표계가 정지 좌표계이고 고정 배향을 가졌다고 가정된다. 정지 고정-배향 사용자 좌표계에서, 본체 좌표계로부터 사용자 좌표계로의 변환은 다음 수학식들의 사용으로 수행될 수 있다:
Figure 112006088956534-PCT00009
Figure 112006088956534-PCT00010
Figure 112006088956534-PCT00011
Figure 112006088956534-PCT00012
Figure 112006088956534-PCT00013
여기서,
Rotate는 쿼터니언 회전 연산자를 표현하여, Rotate(A, Q)는 Q*AQ와 같고, 여기 서 Q*는 쿼터니언 켤레(conjugate)이고, 벡터 A는 복소수 컴포넌트가 A와 같고 실수 컴포넌트가 0과 같은 쿼터니언이도록 한다;
Pu는 사용자 좌표계에서 위치이다;
Pb는 장치 좌표계의 위치이다;
'는 미분을 나타낸다. 그러므로, Pu'는 사용자 좌표계에서 속도인 사용자 좌표계에서 위치의 미분이다;
Wu는 사용자 좌표계에서 본체 각에서 장치의 각속도이다;
Wb는 장치의 본체 좌표계에서 본체 각에서 장치의 각속도이다;
Pdelta는, 사용자 좌표계의 원점과, 사용자 좌표계 좌표 시스템 좌표계에서 본체 기준 좌표 좌표계 사이의 차이이다;
Q는 본체 좌표계로부터 사용자 좌표계로의 회전을 나타내는 정규화된 회전 쿼터니언이다. 사용자 좌표계로부터 본체 좌표계로 회전하기 위한 회전 쿼터니언이 Q*이므로, Q는 R*로 대체될 수 있고, 여기서, R은 사용자 좌표계로부터 본체 좌표계로의 회전이다. Q는 오일러 각과 DCM을 포함하는 다수의 동등한 수학식들로 표현될 수 있고, Q의 다른 표현들에 기초하여 위의 수학식들이 그들의 동등한 형태들로 조금 변할 수 있슴을 주목한다. 도 10은, 본체 좌표계로부터 사용자 좌표계로의 변환을 그래픽으로 나타낸다.
동작 동안, 장치는 이 변환을 수행하기 위해 한 구현에 따른 방식으로 Q를 추정한다. 상술된 일 구현예는 틸트에 대한 보상과 관련된다(즉, 사용자에 의해 홀드되는 방식에 기초하여 자유공간 포인팅 장치의 x-축 롤(roll)의 변경). 먼저 본체 좌표계에서 중력에 의한 가속도 컴포넌트, Ab, 를 추정하여 배향이 계산된다. 정의에 의해, 사용자 좌표계에서 중력에 의한 가속도 벡터, Ag, 는 [0, 0, -1]로 설정된다. 중력이 헤딩(heading)(z-축에 대한 회전)을 추정할 수 없으므로, 헤딩에 대한 본체 좌표계 추정이 사용된다. 그러므로, 회전 쿼터니온은 z=0인 평면에서 회전축을 갖는다. 다음은 회전 쿼터니온을 계산하는 여러 개의 수학적으로 동등한 방법들 중의 하나이다.
Figure 112006088956534-PCT00014
(단위 벡터들의 외적(cross product))
Figure 112006088956534-PCT00015
Figure 112006088956534-PCT00016
Figure 112006088956534-PCT00017
그 다음, 사용자 좌표계에서 가속도를 두 번 적분하여 위치가 계산된다. 사용자 좌표계의 가속도는 사용자 좌표계로 위의 Q만큼 회전된 본체 좌표계의 가속도이다. 보통, 장치가 처음으로 활성화될 때, 원점은 0인 것으로 가정되지만, 원점은 정상 동작 동안에 수동으로 또는 자동으로 리셋(reset)될 수 있다.
일반적으로, 장치가 이동되지 않을 때, Pu', Pu'', Wu, 및 Wu''은 모두 0이다. 이 실시예에서, Pb''과 Wb가 측정된다. 무한 개의 회전 Q가 존재하지만, 이용가능한 세트로부터 최소 회전이 선택되어, Wb에 기초하여 Wu를 추정하기 위해 사용될 수 있다. 다른 경우, 아래 이산 시적분(discrete time integral)을 사용하여 보여진 것과 같이 시간에 대해 Wb를 적분하여, 가정된 시작 오프셋 배향 Q0를 사용 하여 Q가 계산될 수 있다:
Figure 112006088956534-PCT00018
Figure 112006088956534-PCT00019
Figure 112006088956534-PCT00020
*는 곱셈을 나타내고, **는 쿼터니온 곱셈을 나타낸다. 중력과 지구의 자기장을 포함하는 일정 필드 벡터에 의해 추가 안정성이 제공되어 위의 결과와 결합될 수 있다. 칼만 필터링(Kalman filtering)을 포함하는, 하지만 이에 제한되지는 않는, 여러 수치 및 필터링 방법을 사용하여 조합이 이루어질 수 있다.
다양하고 상이한 센서들이 장치의 본체에 대해 움직임을 측정하는 한 사용될 수 있다. 센서들의 예로는 가속도계, 회전 센서, 자이로스코프, 자기계, 및 카메라를 포함한다. 사용자 좌표계가 정적일 필요는 없다. 예를 들어, 사용자 좌표계가 사용자 팔뚝이 되도록 선택되면, 장치는 손목과 손가락 움직임에만 응답할 것이다.
당업자라면, 본 발명에 기재된 좌표계 변환에 교환(commutative) 특성이 적용됨을 인식할 것이다. 그러므로, 본 명세서에 기재된 본 발명에 실질적으로 영향을 주지 않고 수학 연산의 순서가 변경될 수 있다. 또한, 다수의 움직임 처리 알고리즘은, 특히, 사용자 좌표계가 일정 배향으로 정적이도록 선택될 때, 어느 한 쪽의 좌표계에서도 동등하게 동작할 수 있다.
쉬운 사용의 제공에 추가하여, 본 발명의 본 실시예에 따른 좌표계 변환은 또한 핸드헬드 장치 구현에서 다른 챌런지를 해결하기 위해 사용될 수 있다. 예를 들어, 센서(예를 들어, 가속도계)가 기준 본체 좌표계에서 회전 중심에 정확히 위치하지 않으면, 측정된 가속도는 좌표계의 가속도와 좌표계 회전으로 인한 가속도 컴포넌트 모두를 포함할 것이다. 그러므로, 측정된 가속도는 다음 관계를 사용하여 장치의 본체 좌표계 내에서 다른 타겟 위치로 먼저 변환된다:
Figure 112006088956534-PCT00021
여기서, R은 가속도계로부터 타겟 위치까지의 벡터이고, ω는 본체 좌표계의 각속도이고, ω'은 기준 본체 좌표계의 각가속도이다. 장치의 본체 좌표계가 가속도계로부터 R에 놓이도록 구성되면, 그것은 0 각가속도 효과를 가져야 하고, 사용자 좌표계에서 장치 움직임을 계산하기 위해 더 쉽게 사용될 수 있다. 이것은 가속도계와 본체 좌표계의 중심 간의 의도적 또는 비의도적 오배치(misalignment)를 보상한다. 또한, 회전 중심에서 동작하는 더욱 소수의 힘들이 존재하므로, 중력 벡터의 추정이 더 간단해진다. 그 다음,
Figure 112006088956534-PCT00022
여기서, Q는 본체 좌표계로부터 가속도계 좌표계로의 회전이다.
불행히도, 다른 사용자들은 R에 대한 다른 값들을 갖는다. 예를 들어, 한 사용자는 그들의 팔꿈치를 회전하여 핸드헬드 장치를 사용할 수 있고, 한편, 다른 사용자는 그들의 손목을 회전하여 그 장치를 사용할 수 있다. 또한, 사람들은 다른 크기의 손목과 팔목을 가진다. 향상된 사용성을 위해, 핸드헬드의 본 실시예는 동적으로 R을 계산하여, 각 움직임으로 인한 최소의 가속도 컴포넌트를 갖도록 본체 원점을 이동한다. 실시예는, R을 [Rx, 0, 0]으로서 정의하고 Abody - Rotate[Ag, Q]를 사용하고 최소화하여 Rx를 구하여 R을 추정한다. Rx를 계산하기 위한 최소화를 수행할 수 있는 RLS(recursive least square)와 칼만 필터링을 포함하는 다수의 수치 방법이 존재함을 주목한다.
전술한 바에 기초하여, 본 발명이 한 개의 좌표계(즉, 본체 좌표계)로부터 다른 좌표계(즉, 사용자 좌표계)로 핸드헬드 장치의 감지된 움직임을 매핑하는 다양한 기술을 설명함을 이해할 것이다. 이들 매핑은, 예를 들어, 커서 움직임으로의 감지된 움직임의 매핑과 같은, 핸드헬드 장치의 사용과 연관된 다른 매핑과 독립적일 수 있거나, 또는 그와 함께 결합될 수 있다. 더욱이, 움직임 수학식의 입력측 또는 출력측의 관점에서, 평행이동 움직임 및 회전 움직임 또는 그것들의 임의의 부분집합에 대해, 본 발명에 따른 변환이 감지된 움직임을 3차원으로 모두 변환하기 위해 수행될 수 있다. 또한, 감지된 움직임이 매핑되거나 또는 변환되는 좌표계의 선택은 다수의 다양한 방식으로 될 수 있다. 위에서 제공된 한 예는 장치의 틸트와 연관된 사용자 좌표계인 제2 좌표계를 나타내지만, 다수의 다른 변형들이 가능하다. 예를 들어, 사용자는, 핸드헬드에 복수의 사용자 선호사항들 중의 하나로서 설정이 저장되어 변환을 수행하기 위해 사용될 수 있는, 그(녀)의 원하는 좌표계를 선택할 수 있다. 임의의 수의 기술들에 기초하여 제2 좌표계가 선택될 수 있다. 명백한 커맨드(예를 들어, 버튼 또는 사용자 인터페이스 선택)에 기초하여, 또는 장치 사용 패턴, 떨림, 및 다른 바이오 측정치(biometrics)에 의해 결정된 사용자 인식을 통해 자동으로, 제2 좌표계가 선택될 수 있다.
또한, 상술된 실시예들의 일부가 속도 도메인의 데이터에 대해 동작하지만, 본 발명이 그렇게만 제한되는 것은 아니다. 본 발명에 따른 매핑이나 또는 변환이, 예를 들어, 위치 또는 가속도 데이터에 대해, 다른 경우에 또는 추가하여 수행될 수 있고, 평행이동 움직임, 회전 움직임, 또는 둘 모두에 대해 수행될 수 있다. 또한, 처리 순서는 중요치 않다. 예를 들어, 핸드헬드 장치가 제스쳐를 출력하기 위해 사용된다면, 매핑이 먼저 수행되고나서 제스쳐가 결정될 수 있거나, 또는 제스쳐가 먼저 결정되고나서 매핑이 수행될 수 있다.
상술된 실시예들은 본 발명이 제한적이기보다는 모든 관점에서 설명적이려고 의도된다. 그러므로, 본 발명은, 당업자에 의해 본 명세서에 포함된 설명으로부터 도출될 수 있는 상세한 구현에서 다수의 변형이 가능하다. 예를 들어, 전술된 실시예들이 장치의 움직임을 검출하기 위해, 다른 것들 중에서도, 관성 센서의 사용을 기재하고 있지만, 전술된 신호 처리와 연관하여 관성 센서 대신에, 또는 추가하여, 다른 유형의 센서들(예를 들어, 초음파, 자기, 또는 광)이 사용될 수 있다. 다음에 기재된 청구범위에 의해 정의된 것처럼, 모든 그런 변형과 수정은 본 발명의 범위와 취지 내에 있는 것으로 고려된다. 본 출원서의 설명에서 사용된 소자, 동작, 또는 명령은, 명백히 그렇게 기재되지 않는 한, 본 발명에 중요하거나 또는 기본적인 것으로서 해석되어서는 안 된다. 또한, 본 명세서에 사용되는 것처럼, 관사 "a"는 한 개 이상의 항목들을 포함하려고 의도된다.

Claims (35)

  1. 핸드헬드 포인팅 장치로서,
    제1 축에 대해 상기 포인팅 장치의 회전을 결정하고 그와 연관된 제1 회전 출력을 생성하기 위한 제1 회전 센서;
    제2 축에 대한 상기 포인팅 장치의 회전을 결정하고 그와 연관된 제2 회전 출력을 생성하는 제2 회전 센서;
    상기 포인팅 장치의 가속도를 결정하고 그와 연관된 가속도 출력을 출력하는 가속도계; 및
    상기 제1과 제2 회전 출력과 상기 가속도 출력을 수신하는 처리부를 포함하고, 상기 처리부는,
    (a) 사용자가 상기 핸드헬드 포인팅 장치를 홀딩(holding)하는 방식과 연관된 틸트(tilt) 효과를 제거하기 위해, 상기 핸드헬드 포인팅 장치와 연관된 본체 좌표계(frame of reference)로부터 사용자 좌표계로 상기 제1과 제2 회전 출력과 상기 가속도 출력을 변환하며, 그리고,
    (b) 스크린 커서의 움직임과 연관된 x와 y 좌표들과 연관된 데이터로서, 상기 변환된 제1과 제2 회전 출력과 상기 변환된 가속도 출력에 기초한 데이터를 결정하고, 상기 변환 처리는, 사용자가 상기 핸드헬드 장치를 홀드(hold)하는 배향(orientation)에 무관하게 상기 스크린 커서의 상기 움직임을 랜더링
    을 포함하는 핸드헬드 포인팅 장치.
  2. 제1항에 있어서, 상기 사용자 좌표계는 TV 스크린과 연관되는 핸드헬드 포인팅 장치.
  3. 제1항에 있어서, 상기 변환 처리는,
    Figure 112006088956534-PCT00023
    , 여기서, θ는 상기 틸트, αy는 상기 제1 회전 출력, 그리고 αz는 상기 제2 회전 출력,
    을 계산하여 상기 제1과 제2 회전 출력을 상기 사용자 좌표계로 회전하는 처리를 더 포함하는 핸드헬드 포인팅 장치.
  4. 3D 포인팅 장치를 사용하는 방법으로서,
    상기 3D 포인팅 장치의 움직임을 검출하는 단계; 및
    상기 3D 포인팅 장치와 연관된 본체 좌표계로부터 관성 좌표계로 상기 검출된 움직임을 변환하여 상기 검출된 움직임을 보상하는 단계
    를 포함하는 방법.
  5. 제4항에 있어서, 상기 보상 단계는,
    상기 3D 포인팅 장치가 홀드되는 배향과 연관되는 틸트를 결정하는 단계; 및
    상기 틸트를 교정하기 위해 상기 검출된 움직임을 보상하는 단계
    를 더 포함하는 방법.
  6. 제5항에 있어서, 틸트를 교정하기 위해 상기 검출된 움직임을 보상하는 상기 단계는,
    Figure 112006088956534-PCT00024
    , 여기서, θ는 상기 틸트, αy는 상기 제1 회전 출력, 그리고 αz는 상기 제2 회전 출력,
    를 계산하여 상기 관성 좌표계로 제1과 제2 회전 출력을 회전하는 단계를 더 포함하는 방법.
  7. 제4항에 있어서,
    사용자 인터페이스로의 입력으로서 상기 보상되고 검출된 움직임과 연관된 정보를 제공하는 단계를 더 포함하는 방법.
  8. 제5항에 있어서,
    가속도계로부터의 출력에 기초하여 상기 틸트를 결정하는 단계
    를 더 포함하는 방법.
  9. 제4항에 있어서, 상기 3D 포인팅 장치의 움직임을 검출하는 상기 단계는,
    회전 센서, 가속도계, 자이로스코프, 광 센서, 자기계, 및 카메라 중의 적어 도 하나를 사용하여 상기 움직임을 검출하는 단계
    를 더 포함하는 방법.
  10. 3D 핸드헬드 장치로서,
    상기 3D 포인팅 장치의 움직임을 검출하기 위한 적어도 하나의 센서; 및
    상기 3D 포인팅 장치와 연관된 본체 좌표계로부터 관성 좌표계로 상기 검출된 움직임을 변환하여 상기 검출된 움직임을 보상하는 처리부
    를 포함하는 3D 핸드헬드 장치.
  11. 제10항에 있어서, 상기 처리부는,
    상기 3D 포인팅 장치가 홀드된 배향과 연관된 틸트를 결정하고, 상기 틸트를 교정하기 위해 상기 검출된 움직임을 보상함
    에 의해 상기 검출된 움직임을 보상하는 3D 핸드헬드 장치.
  12. 제11항에 있어서, 처리부는,
    Figure 112006088956534-PCT00025
    , 여기서, θ는 상기 틸트, αy는 상기 제1 회전 출력, 그리고 αz는 상기 제2 회전 출력,
    를 계산하여 상기 관성 좌표계로 제1과 제2 회전 출력을 회전하여 틸트를 추가 교정하기 위해 상기 검출된 움직임을 보상하는 3D 핸드헬드 장치.
  13. 제10항에 있어서, 상기 3D 핸드헬드 장치의 가속도를 검출하는 가속도계를 더 포함하고, 상기 가속도계의 출력은 상기 처리부에 의해 상기 틸트를 결정하기 위해 사용되는 3D 핸드헬드 장치.
  14. 제10항에 있어서, 상기 적어도 한 개의 센서는, 회전 센서, 가속도계, 자이로스코프, 광 센서, 자기계, 및 카메라 중의 적어도 하나를 포함하는 3D 핸드헬드 장치.
  15. 3D 포인팅 장치를 동작시키는 방법으로서,
    상기 장치의 본체 좌표계의 움직임을 감지(sensing)하는 단계;
    상기 움직임을 상기 장치의 움직임을 나타내는 신호로 변환하는 단계;
    상기 본체 좌표계로부터 다른 좌표계로 상기 신호를 변환하는 단계; 및
    상기 변환된 신호를 사용하여 출력을 생성하는 단계
    를 포함하는 방법.
  16. 제15항에 있어서, 상기 변환 단계는, 상기 3D 포인팅 장치의 틸트에 대해 상기 신호를 교정하는 단계를 포함하는 방법.
  17. 제15항에 있어서, 상기 본체 좌표계와 상기 다른 좌표계 사이에 적어도 하나 의 중간 좌표계를 계산하는 단계를 더 포함하는 방법.
  18. 제15항에 있어서, 상기 다른 좌표계가 사용자 좌표계인 방법.
  19. 제15항에 있어서, 감지 좌표계로부터 상기 본체 좌표계로 상기 신호를 변환하는 단계를 더 포함하는 방법.
  20. 제15항에 있어서, 상기 변환된 신호를 사용하여 출력을 생성하는 상기 단계는, 상기 변환된 신호에 기초하여 커서 움직임 데이터를 생성하는 단계를 더 포함하는 방법.
  21. 제15항에 있어서, 상기 출력이 제스쳐인 방법.
  22. 3D 포인팅 장치는,
    상기 3D 포인팅 장치의 움직임을 검출하는 수단; 및
    틸트로 인해 상기 검출된 움직임을 보상하는 수단
    을 포함하는 3D 포인팅 장치.
  23. 3D 포인팅 장치로서,
    상기 3D 포인팅 장치의 가속도를 측정하는 가속도계; 및
    상기 3D 포인팅 장치의 회전 중심을 결정하고, 상기 회전 중심에서 상기 3D 포인팅 장치의 가속도를 결정하는 처리부
    를 포함하는 3D 포인팅 장치.
  24. 제23항에 있어서, 상기 회전 중심에서 상기 3D 포인팅 장치의 상기 결정된 가속도가 중력을 추정하기 위해 상기 처리부에 의해 사용되는 3D 포인팅 장치.
  25. 제23항에 있어서, 상기 처리부는 2개의 가속도계 사이의 차이에 의해 각 움직임에 기인한 상기 가속도를 계산하는 3D 포인팅 장치.
  26. 제23항에 있어서, 상기 처리부가 상기 본체의 각속도를 직접 측정하여 각 움직임에 기인한 상기 가속도를 계산하는 3D 포인팅 장치.
  27. 3D 포인팅 장치를 동작시키는 방법으로서,
    제1 좌표계에서 상기 3D 포인팅 장치의 움직임을 감지하는 단계;
    상기 제1 좌표계로부터 다른 좌표계로 상기 감지된 움직임을 변환하는 단계; 및
    상기 변환된 신호를 사용하여 상기 3D 포인팅 장치의 출력을 생성하는 단계
    를 포함하는 방법.
  28. 제27항에 있어서,
    상기 3D 포인팅 장치의 움직임을 나타내는 신호로 상기 감지된 움직임을 변환하는 단계; 및
    상기 제1 좌표계로부터 상기 다른 좌표계로 상기 신호를 변환하는 단계
    를 더 포함하는 방법.
  29. 제27항에 있어서, 상기 변환 단계는, 평행이동(translational)과 회전(rotational) 움직임 모두에 대해서 x, y, 및 z 축으로 변환하는 단계를 포함하는 방법.
  30. 제27항에 있어서, 상기 변환 단계는 x, y, 및 z 축의 부분집합으로 변환하는 단계를 포함하는 방법.
  31. 제27항에 있어서, 상기 변환 단계는 평행이동 움직임과 회전 움직임 중의 단지 하나만을 변환하는 단계를 포함하는 방법.
  32. 제27항에 있어서, 상기 출력을 생성하기 위해 제2 변환을 수행하는 단계를 더 포함하는 방법.
  33. 제27항에 있어서, 상기 다른 좌표계가 사용자에 의해 선택되는 방법.
  34. 3D 포인팅 장치를 동작시키는 방법으로서,
    제1 좌표계에서 상기 3D 포인팅 장치의 움직임을 감지하는 단계;
    상기 제1 좌표계로부터 다른 좌표계로 상기 감지된 움직임을 변환하는 단계; 및
    상기 변환된 감지 움직임과 연관된 제스쳐를 식별하는 단계
    를 포함하는 방법.
  35. 3D 포인팅 장치를 동작시키는 방법으로서,
    제1 좌표계에서 상기 3D 포인팅 장치의 움직임을 감지하는 단계;
    상기 감지 움직임과 연관된 제스쳐를 식별하는 단계; 및
    제1 좌표계로부터 다른 좌표계로 상기 제스쳐를 변환시키는 단계
    를 포함하는 방법.
KR1020067025233A 2004-04-30 2005-05-02 틸트 보상과 향상된 사용성을 갖는 3d 포인팅 장치 KR20070017400A (ko)

Priority Applications (1)

Application Number Priority Date Filing Date Title
KR1020067025233A KR20070017400A (ko) 2004-04-30 2005-05-02 틸트 보상과 향상된 사용성을 갖는 3d 포인팅 장치

Applications Claiming Priority (4)

Application Number Priority Date Filing Date Title
US60/566,444 2004-04-30
US60/612,571 2004-09-23
US60/641,410 2005-01-05
KR1020067025233A KR20070017400A (ko) 2004-04-30 2005-05-02 틸트 보상과 향상된 사용성을 갖는 3d 포인팅 장치

Related Child Applications (1)

Application Number Title Priority Date Filing Date
KR1020107016483A Division KR101192514B1 (ko) 2004-04-30 2005-05-02 틸트 보상과 향상된 사용성을 갖는 3d 포인팅 장치

Publications (1)

Publication Number Publication Date
KR20070017400A true KR20070017400A (ko) 2007-02-09

Family

ID=43651188

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020067025233A KR20070017400A (ko) 2004-04-30 2005-05-02 틸트 보상과 향상된 사용성을 갖는 3d 포인팅 장치

Country Status (1)

Country Link
KR (1) KR20070017400A (ko)

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20110006502A (ko) * 2009-07-14 2011-01-20 삼성전자주식회사 멀티 터치를 이용하는 포인팅 입력 장치 및 방법
US9811175B2 (en) 2010-06-03 2017-11-07 Idhl Holdings, Inc. Determining forward pointing direction of a handheld device

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20110006502A (ko) * 2009-07-14 2011-01-20 삼성전자주식회사 멀티 터치를 이용하는 포인팅 입력 장치 및 방법
US9811175B2 (en) 2010-06-03 2017-11-07 Idhl Holdings, Inc. Determining forward pointing direction of a handheld device

Similar Documents

Publication Publication Date Title
KR101192514B1 (ko) 틸트 보상과 향상된 사용성을 갖는 3d 포인팅 장치
US10782792B2 (en) 3D pointing devices with orientation compensation and improved usability
EP2337016B1 (en) Free space pointing devices with tilt compensation and improved usability
US7489299B2 (en) User interface devices and methods employing accelerometers
US7535456B2 (en) Methods and devices for removing unintentional movement in 3D pointing devices
JP2007535776A5 (ko)
US20140285434A1 (en) Methods and Systems for Gesture Classification in 3D Pointing Devices
JP2007535774A5 (ko)
KR20070017400A (ko) 틸트 보상과 향상된 사용성을 갖는 3d 포인팅 장치

Legal Events

Date Code Title Description
A201 Request for examination
AMND Amendment
E902 Notification of reason for refusal
AMND Amendment
E601 Decision to refuse application
J201 Request for trial against refusal decision
A107 Divisional application of patent
AMND Amendment
B601 Maintenance of original decision after re-examination before a trial
J301 Trial decision

Free format text: TRIAL DECISION FOR APPEAL AGAINST DECISION TO DECLINE REFUSAL REQUESTED 20100701

Effective date: 20120423

J121 Written withdrawal of request for trial
WITB Written withdrawal of application