KR101228948B1 - 포인팅 장치의 제어방법 - Google Patents

포인팅 장치의 제어방법 Download PDF

Info

Publication number
KR101228948B1
KR101228948B1 KR1020110064879A KR20110064879A KR101228948B1 KR 101228948 B1 KR101228948 B1 KR 101228948B1 KR 1020110064879 A KR1020110064879 A KR 1020110064879A KR 20110064879 A KR20110064879 A KR 20110064879A KR 101228948 B1 KR101228948 B1 KR 101228948B1
Authority
KR
South Korea
Prior art keywords
angular velocity
value
acceleration
axis
pointing device
Prior art date
Application number
KR1020110064879A
Other languages
English (en)
Other versions
KR20130003484A (ko
Inventor
유현모
김태홍
강현규
김태성
Original Assignee
화인칩스 주식회사
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by 화인칩스 주식회사 filed Critical 화인칩스 주식회사
Priority to KR1020110064879A priority Critical patent/KR101228948B1/ko
Publication of KR20130003484A publication Critical patent/KR20130003484A/ko
Application granted granted Critical
Publication of KR101228948B1 publication Critical patent/KR101228948B1/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
    • 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

Abstract

본 발명의 포인팅 장치의 제어방법은 포인팅 장치의 가속도센서와 각속도센서로부터 출력되는 3축방향의 가속도값과 3축방향의 각속도값을 산출하여 x축 방향과 z축 방향의 가속도값에 의해 가속도에 의한 가속도자세각을 산출하고, y축 방향의 각속도값에 의해 각속도에 의한 각속도자세각을 산출하고, 가속도자세각과 각속도자세각을 합성하여 포인팅 장치의 자세각을 보다 정확하게 산출할 수 있고, 이로 인해 포인팅 장치의 움직임에 대한 디스플레이 장치의 화면상의 커서의 이동에 따른 변위를 정확하게 산출할 수 있고, 포인팅 장치의 움직이는 정도에 따라 수평각속도와 수직각속도를 가변시켜 주어 포인팅 장치의 동작시 포인팅 장치의 사용감을 증진시킬 수 있다.

Description

포인팅 장치의 제어방법{pointing device control method}
본 발명은 포인팅 장치의 제어방법에 관한 것으로, 특히 x축 방향, y축 방향 및 z축 방향에서의 포인팅 장치의 가속도센서와 각속도센서로부터 출력되는 3축방향의 가속도값과 3축방향의 각속도값을 산출하여 x축 방향과 z축 방향의 가속도값에 의해 가속도에 의한 가속도자세각을 산출하고, y축 방향의 각속도값에 의해 각속도에 의한 각속도자세각을 산출하고, 가속도자세각과 각속도자세각을 합성하여 포인팅 장치의 자세각을 보다 정확하게 산출할 수 있고, 이로 인해 포인팅 장치의 움직임에 대한 디스플레이 장치의 화면상의 커서의 이동에 따른 변위를 정확하게 산출할 수 있는 포인팅 장치의 제어방법에 관한 것이다.
일반적으로 각속도센서와 가속도센서를 사용하여 디스플레이 장치상의 커서의 위치를 제어하기 위한 3D 포인팅 장치(free space pointing device)는 현재의 위치로부터 사용자에 의해 포인팅 장치가 이동되는 위치를 각속도센서와 가속도센서로부터 출력되는 각속도값과 가속도값에 의해 수직변위각과 수평변위각을 계산하고, 수직변위각 및 수평변위각에 의해 디스플레이 장치의 화면상에 보여지는 커서의 이동값인 수직변위와 수평변위를 산출한다.
종래의 포인팅 장치의 제어방법은 국내특허공개번호 제10-2007-0007951호에 개시되어 있다.
국내특허공개번호 제10-2007-0007951호에 개시된 종래의 포인팅 장치의 제어방법은 포인팅 장치의 자세각을 산출하기 위해 3축의 가속도센서로부터 검출된 x축 방향과 z축 방향의 가속도값에 의한 가속도자세각만을 사용하여 포인팅 장치의 자세각으로 설정하였으나, 포인팅 장치가 정지하고 있을 경우에는 포인팅 장치의 자세각을 가속도자세각만을 사용하여도 포인팅 장치의 자세각의 오차는 적으나, 포인팅 장치가 중력 외에 외부 가속도에 의해 포인팅 장치가 운동상태일 때에는 가속도자세각의 오차범위는 크게 되며, 이로 인해 수직변위각과 수평변위각도을 정확하게 산출하지 못하므로 포인팅 장치의 움직임에 대한 디스플레이 장치의 화면상의 커서의 이동에 따른 변위는 잘못된 값을 가질 수 있는 문제점을 가지고 있다.
본 발명의 목적은 포인팅 장치의 가속도센서와 각속도센서로부터 출력되는 3축방향의 가속도값과 3축방향의 각속도값을 산출하여 x축 방향과 z축 방향의 가속도값에 의해 가속도에 의한 가속도자세각을 산출하고, y축 방향의 각속도값에 의해 각속도에 의한 각속도자세각을 산출하고, 가속도자세각과 각속도자세각을 합성하여 포인팅 장치의 자세각을 보다 정확하게 산출할 수 있고, 이로 인해 포인팅 장치의 움직임에 대한 디스플레이 장치의 화면상의 커서의 이동에 따른 변위를 정확하게 산출할 수 있는 포인팅 장치의 제어방법을 제공하는 데 있다.
또한, 본 발명의 다른 목적은 포인팅 장치의 움직이는 정도가 느리면, 디스플레이 장치의 화면상의 커서의 움직임을 더 느리게 움직이도록 하고, 포인팅 장치의 움직이는 정도가 빠르면, 디스플레이 장치의 화면상의 커서의 움직임을 더 빠르게 하여, 포인팅 장치의 움직이는 정도에 따라 수평각속도와 수직각속도를 가변시켜주어 포인팅 장치의 사용감을 증진시킬 수 있는 포인팅 장치의 제어방법을 제공하는 데 있다.
상기의 목적을 달성하기 위하여 본 발명의 포인팅 장치의 제어방법은 포인팅 장치의 움직임에 대하여 x축, y축 및 z축을 갖는 본체좌표계와 상기 포인팅 장치의 움직임에 대응되어 디스플레이 장치의 화면상에 커서의 움직임을 나타내기 위하여 상기 본체좌표계로부터 H축, I축 및 V축을 갖는 관성좌표계로 변환시켜 상기 포인팅 장치의 움직임에 대하여 상기 디스플레이 장치의 화면상의 커서의 변위를 산출하는 포인팅 장치의 제어방법에 있어서, 상기 x축, y축 및 z축을 중심으로 상기 포인팅 장치의 회전을 감지하는 3축 각속도계들로부터 상기 포인팅 장치의 회전값인 3축각속도값과, 상기 x축, y축 및 z축에 대하여 상기 포인팅 장치의 가속을 감지하는 3축 가속도계들로부터 출력되는 x축에 대한 가속도값, y축에 대한 가속도값 및 z축에 대한 대한 가속도값을 벡터합하여 상기 포인팅 장치의 가속도인 3축가속도값을 출력하는 각속도값과 가속도값 출력단계; 상기 각속도값과 가속도값 출력단계(S10)에 출력되는 3축가속도값을 수신하여 3축가속도값(Axyz)의 크기를 나타내는 가속도크기(A)를 산출하는 가속도크기 산출단계; 상기 3축각속도값과 3축가속도값과 가속도크기를 저장하는 저장단계; 상기 저장단계에서 저장된 상기 3축각속도값과 3축가속도값과 가속도크기를 수신하여 3축각속도값의 변동성과 사용자에 의해 정의된 각속도문턱값과 비교하고, 3축가속도값의 변동성과 사용자에 의해 정의된 가속도문턱값과 비교하고, 가속도크기의 변동성과 사용자에 의해 정의된 가속도크기문턱값과 비교하여 상기 3축각속도값의 변동성과 3축가속도값의 변동성과 가속도크기의 변동성이 각각 상기 각속도문턱값과 가속도문턱값 및 가속도크기문턱값 이내이면 상기 포인팅 장치는 정지상태인 것으로 판단하고, 상기 3축각속도값의 변동성이 각속도문턱값의 범위를 초과하거나 상기 3축가속도값의 변동성이 가속도문턱값의 범위를 초과하거나 상기 가속도크기의 변동성이 가속도크기문턱값의 범위를 초과하면 상기 포인팅 장치는 운동상태인 것으로 판단하는 제1운동상태 판단단계; 상기 제1운동상태 판단단계에서 상기 포인팅 장치가 정지상태이면, 상기 3축각속도계에 의해 발생하는 오프셋을 제거하기 위해 상기 저장단계에서 저장된 3축각속도값의 평균각속도값을 산출하고, 이전에 산출된 이전 오프셋값과 상기 평균각속도값과의 가중평균치에 의해 산출된 갱신된 오프셋값을 출력하고, 상기 제1운동상태 판단단계에서 상기 포인팅 장치가 운동상태이면 이전에 산출된 이전 오프셋값을 출력하는 오프셋 산출단계; 상기 저장단계에서 저장된 3축각속도값에서 상기 오프셋 산출단계에서 산출된 갱신된 오프셋값 또는 이전 오프셋값을 감산하여 갱신된 3축각속도값을 출력하는 각속도값 갱신단계; 상기 갱신된 3축각속도값 중 y축 성분의 갱신된 각속도값에 의한 자세각 변화량과 이전의 포인팅 장치의 합성자세각을 가산하여 각속도에 따른 자세각을 산출하는 각속도자세각 산출단계; 상기 저장단계에서 저장된 3축가속도값 중 x축 성분의 가속도값과 z축 성분의 가속도값에 의해 y축 방향으로 회전한 가속도에 따른 자세각을 산출하는 가속도자세각 산출단계; 상기 각속도자세각 산출단계에서 산출된 각속도에 따른 자세각과 상기 가속도자세각 산출단계에서 산출된 가속도에 따른 자세각을 합성하여 상기 포인팅 장치의 합성자세각을 산출하는 합성자세각 산출단계; 상기 합성자세각 산출단계에서 산출된 합성자세각과 상기 각속도값 갱신단계에서 출력되는 갱신된 3축각속도값 중 x축 성분의 갱신된 각속도값과 z축 성분의 갱신된 각속도값을 수신하여, 상기 본체좌표계로부터 관성좌표계로 변환하여 변환된 수평각속도와 수직각속도를 출력하는 좌표계 변환단계; 및 상기 좌표계 변환단계에서 출력되는 수평각속도와 수직각속도를 수신하여 디스플레이 장치의 화면상의 커서의 움직임을 나타내는 수평변위와 수직변위를 출력하는 변위산출단계를 구비한 것을 특징으로 한다.
또한, 상기 포인팅 장치의 제어방법은 상기 좌표계 변환단계에서 출력되는 수평각속도와 수직각속도를 수신하여 수신된 수평각속도와 수직각속도가 제1기준각속도 보다 작으면 상기 수평각속도와 수직각속도에 음이 아닌 1 이하의 상수인 제1스케일링팩터를 승산하고, 수평각속도와 수직각속도가 상기 제1기준각속도 보다 상대적으로 큰 각속도를 갖는 제2기준각속도 보다 크면, 상기 수평각속도와 수직각속도에 1보다 큰 상수값을 갖는 제2스케일링팩터를 승산하여 변환된 수평각속도 및 수직각속도를 출력하고, 상기 변위산출단계에서는 변환된 수평각속도 및 수직각속도에 의해 수평변위와 수직변위를 산출하도록 하는 각속도 가변단계를 더 구비한 것을 특징으로 한다.
본 발명의 포인팅 장치의 제어방법은 포인팅 장치의 가속도센서와 각속도센서로부터 출력되는 3축방향의 가속도값과 3축방향의 각속도값을 산출하여 x축 방향과 z축 방향의 가속도값에 의해 가속도에 의한 가속도자세각을 산출하고, y축 방향의 각속도값에 의해 각속도에 의한 각속도자세각을 산출하고, 가속도자세각과 각속도자세각을 합성하여 포인팅 장치의 자세각을 보다 정확하게 산출할 수 있고, 이로 인해 포인팅 장치의 움직임에 대한 디스플레이 장치의 화면상의 커서의 이동에 따른 변위를 정확하게 산출할 수 있고, 포인팅 장치의 움직이는 정도에 따라 수평각속도와 수직각속도를 가변시켜 주어 포인팅 장치의 동작시 포인팅 장치의 사용감을 증진시킬 수 있다.
도 1은 본 발명의 포인팅 장치를 도시한 도면,
도 2는 본체좌표계와 관성좌표계를 도시한 도면,
도 3은 본 발명의 포인팅 장치의 제어방법의 순서도,
도 4는 도 3의 각속도 가변단계의 순서도이다.
이하, 첨부된 도면을 참조하여 본 발명의 포인팅 장치의 제어방법을 상세히 설명하고자 한다.
도 3에 도시된 바와 같이 본 발명의 포인팅 장치의 제어방법은, x축, y축 및 z축을 중심으로 포인팅 장치(10)의 회전을 감지하는 3축 각속도계들로부터 포인팅 장치(10)의 회전값인 3축각속도값(Gxyz)과, x축, y축 및 z축에 대하여 포인팅 장치(10)의 가속을 감지하는 3축 가속도계들로부터 포인팅 장치(10)의 가속도값인 3축가속도값(Axyz)을 출력하는 각속도값과 가속도값 출력단계(S10)와, 각속도값과 가속도값 출력단계(S10)에 출력되는 3축가속도값(Axyz)에 의해 가속도크기(A)를 산출하는 가속도크기 산출단계(S20)와, 3축각속도값(Gxyz)과 3축가속도값(Axyz)과 가속도크기(A)를 저장하는 저장단계(S30)와, 저장단계(S30)에서 저장된 3축각속도값(Gxyz)과 3축가속도값(Axyz)과 가속도크기(A)를 수신하여 3축각속도값(Gxyz)의 변동성과 사용자에 의해 정의된 각속도문턱값과 비교하고, 3축가속도값(Axyz)의 변동성과 사용자에 의해 정의된 가속도문턱값과 비교하고, 가속도크기(A)의 변동성과 사용자에 의해 정의된 가속도크기문턱값과 비교하여 3축각속도값(Gxyz)의 변동성과 3축가속도값(Axyz)의 변동성과 가속도크기(A)의 변동성이 각각 각속도문턱값과 가속도문턱값 및 가속도크기문턱값 이내이면 포인팅 장치(10)는 정지상태인 것으로 판단하고, 3축각속도값(Gxyz)의 변동성이 각속도문턱값의 범위를 초과하거나 3축가속도값(Axyz)의 변동성이 가속도문턱값의 범위를 초과하거나 가속도크기(A)의 변동성이 가속도크기문턱값의 범위를 초과하면 포인팅 장치(10)는 운동상태인 것으로 판단하는 제1운동상태 판단단계(S40)와, 제1운동상태 판단단계(S40)에서 포인팅 장치(10)가 정지상태이면, 3축각속도계에 의해 발생하는 오프셋(offset)을 제거하기 위해 저장단계(S30)에서 저장된 3축각속도값의 평균각속도값(Mxyz)을 산출하고, 이전에 산출된 이전 오프셋값(Oxyz)과 평균각속도값(Mxyz)과의 가중평균치에 의해 산출된 갱신된 오프셋값(NOxyz)을 출력하고, 제1운동상태 판단단계(S40)에서 포인팅 장치(10)가 운동상태이면 이전에 산출된 이전 오프셋값(Oxyz)을 출력하는 오프셋 산출단계(S50)와, 저장단계(S30)에서 저장된 3축각속도값(Gxyz)에서 오프셋 산출단계(S50)에서 산출된 갱신된 오프셋값(NOxyz) 또는 이전 오프셋값(Oxyz)을 감산하여 갱신된 3축각속도값(RGxyz)을 출력하는 각속도값 갱신단계(S60)와, 갱신된 3축각속도값(RGxyz) 중 y축 성분의 갱신된 각속도값(RGy)에 의한 자세각의 변화량과 이전의 포인팅 장치(10)의 합성자세각(Rga)을 가산하여 각속도에 따른 자세각(Rg)을 산출하는 각속도자세각 산출단계(S70)와, 저장단계(S30)에서 저장된 3축가속도값(Axyz) 중 x축 성분의 가속도값(Ax)과 z축 성분의 가속도값(Az)에 의해 y축 방향으로 회전한 가속도에 따른 자세각(Ra)을 산출하는 가속도자세각 산출단계(S80)와, 각속도자세각 산출단계(S70)에서 산출된 각속도에 따른 자세각(Rg)과 가속도자세각 산출단계(S80)에서 산출된 가속도에 따른 자세각(Ra)을 합성하여 포인팅 장치(10)의 합성자세각(Rga)을 산출하는 합성자세각 산출단계(S90)와, 합성자세각 산출단계(S90)에서 산출된 합성자세각(Rga)과 각속도값 갱신단계(S60)에서 출력되는 갱신된 3축각속도값(RGxyz) 중 x축 성분의 갱신된 각속도값(RGx)과 z축 성분의 갱신된 각속도값(RGz)을 수신하여, 본체좌표계로부터 관성좌표계로 변환하여 변환된 수평각속도(Gh)와 수직각속도(Gv)를 출력하는 좌표계 변환단계(S100)와, 좌표계 변환단계(S100)에서 출력되는 수평각속도(Gh)와 수직각속도(Gv)를 수신하여 디스플레이 장치의 화면상의 커서의 움직임을 나타내는 수평변위(Dh)와 수직변위(Dv)를 출력하는 변위산출단계(S120)로 구성된다.
또한, 합성자세각 산출단계(S90)는, 저장단계(S30)에서 저장된 3축각속도값(Gxyz)과 3축가속도값(Axyz)과 가속도크기(A)를 수신하여 3축각속도값(Gxyz)의 변동성과 사용자에 의해 정의된 각속도문턱값과 비교하고, 3축가속도값(Axyz)의 변동성과 사용자에 의해 정의된 가속도문턱값과 비교하고, 가속도크기(A)의 변동성과 사용자에 의해 정의된 가속도크기문턱값과 비교하여 3축각속도값(Gxyz)의 변동성과 3축가속도값(Axyz)의 변동성과 가속도크기(A)의 변동성이 각각 각속도문턱값과 가속도문턱값 및 가속도크기문턱값 이내이면 포인팅 장치(10)는 정지상태인 것으로 판단하고, 3축각속도값(Gxyz)의 변동성이 각속도문턱값의 범위를 초과하거나 3축가속도값(Axyz)의 변동성이 가속도문턱값의 범위를 초과하거나 가속도크기(A)의 변동성이 가속도크기문턱값의 범위를 초과하면 포인팅 장치(10)는 운동상태인 것으로 판단하는 제2운동상태 판단단계(S91)와, 음이 아닌 1 이하의 상수이며, 두개의 합이 1인 제1가중치값(α)과 제2가중치값(β)을 선택하여, 제2운동상태 판단단계(S91)에서 운동상태이면, 제1가중치값(α)은 제2가중치값(β) 보다 큰 값을 갖고, 제2운동상태 판단단계(S91)에서 정지상태이면, 제1가중치값(α)은 제2가중치값(β) 보다 작은 값을 갖도록 제1가중치값(α)과 제2가중치값(β)을 설정하는 가중치 설정단계(S93)와, 각속도자세각 산출단계(S70)에서 산출된 각속도에 따른 자세각(Rg)에 제1가중치값(α)을 승산하고, 가속도자세각 산출단계(S80)에서 산출된 가속도에 따른 자세각(Ra)에 제2가중치값(β)을 승산하여, 제1가중치값(α)이 승산된 각속도에 따른 자세각(Rg)과 제2가중치값(β)이 승산된 가속도에 따른 자세각(Ra)을 가산하여 포인팅 장치(10)의 합성자세각(Rga)을 산출하는 합성자세각 결정단계(S95)로 구성된다.
또한, 상기 합성자세각 산출단계(S90)는, 저장단계(S30)에서 저장된 가속도크기(A)를 수신하여 가속도크기(A)의 변동성과 사용자에 의해 정의된 가속도크기문턱값과 비교하여 가속도크기(A)의 변동성이 가속도크기문턱값 범위내이면 포인팅 장치(10)는 정지상태인 것으로 판단하고, 가속도크기(A)의 변동성이 가속도크기문턱값의 범위를 초과하면 포인팅 장치(10)는 운동상태인 것으로 판단하는 제2운동상태 판단단계(S91)와, 음이 아닌 1 이하의 상수이며, 두개의 합이 1인 제1가중치값(α)과 제2가중치값(β)을 선택하여, 제2운동상태 판단단계(S91)에서 운동상태이면, 제1가중치값(α)은 제2가중치값(β) 보다 큰 값을 갖고, 제2운동상태 판단단계(S91)에서 정지상태이면, 제1가중치값(α)은 제2가중치값(β) 보다 작은 값을 갖도록 제1가중치값(α)과 제2가중치값(β)을 설정하는 가중치 설정단계(S93)와, 각속도자세각 산출단계(S70)에서 산출된 각속도에 따른 자세각(Rg)에 제1가중치값(α)을 승산하고, 가속도자세각 산출단계(S80)에서 산출된 가속도에 따른 자세각(Ra)에 제2가중치값(β)을 승산하여, 제1가중치값(α)이 승산된 각속도에 따른 자세각(Rg)과 제2가중치값(β)이 승산된 가속도에 따른 자세각(Ra)을 가산하여 포인팅 장치(10)의 합성자세각(Rga)을 산출하는 합성자세각 결정단계(S95)로 구성될 수도 있다.
또한, 본 발명에 따른 포인팅 장치의 제어방법은 좌표계 변환단계(S100)에서 출력되는 수평각속도(Gh)와 수직각속도(Gv)를 수신하여 수신된 수평각속도(Gh)와 수직각속도(Gv)가 제1기준각속도(Vref1) 보다 작으면 수평각속도(Gh)와 수직각속도(Gv)에 음이 아닌 1 이하의 상수값을 갖는 제1스케일링팩터(sf1)를 승산하고, 수평각속도(Gh)와 수직각속도(Gv)가 제1기준각속도(Vref1) 보다 상대적으로 큰 각속도를 갖는 제2기준각속도(Vref2) 보다 크면, 수평각속도(Gh)와 수직각속도(Gv)에 1보다 큰 상수값을 갖는 제2스케일링팩터(sf2)를 승산하여 변환된 수평각속도(RGh) 및 수직각속도(RGv)를 출력하고, 변위산출단계(S120)에서는 변환된 수평각속도(RGh) 및 수직각속도(RGv)에 의해 수평변위(Dh)와 수직변위(Dv)를 산출하도록 하는 각속도 가변단계(S100)를 더 구비할 수 있다.
각속도 가변단계(S100)는, 수평각속도(Gh)와 제1기준각속도(Vref1) 및 제2기준각속도(Vref2)를 비교하는 제1비교단계(S101)와, 수직각속도(Gv)와 제1기준각속도(Vref1) 및 제2기준각속도(Vref2)를 비교하는 제2비교단계(S103)와, 제1비교단계(S101)에서 수평각속도(Gh)가 제1기준각속도(Vref1)보다 작으면, 수평각속도(Gh)에 제1스케일링팩터(sf1)를 승산하고, 수평각속도(Gh)가 제2기준각속도(Vref1)보다 크면, 수평각속도(Gh)에 제2스케일링팩터(sf2)를 승산하여 갱신된 수평각속도(RGh)를 출력하고, 수평각속도(Gh)가 제1기준각속도(Vref1) 보다 크고 제2기준각속도(Vref2) 보다 작으면 수평각속도(Gh)를 그대로 출력하는 수평각속도 갱신단계(S105)와, 제2비교단계(S101)에서 수직각속도(Gv)가 제1기준각속도(Vref1)보다 작으면, 수직각속도(Gv)에 제1스케일링팩터(sf1)를 승산하고, 수직각속도(Gv)가 제2기준각속도(Vref1)보다 크면, 수직각속도(Gv)에 제2스케일링팩터(sf2)를 승산하여 갱신된 수직각속도(RGv)를 출력하고, 수직각속도(Gv)가 제1기준각속도(Vref1) 보다 크고 제2기준각속도(Vref2) 보다 작으면 수직각속도(Gv)를 그대로 출력하는 수직각속도 갱신단계(S107)로 구성된다.
상기의 구성에 따른 본 발명인 포인팅 장치의 제어방법의 동작은 다음과 같다.
도 1에 도시된 바와 같이 디스플레이 장치(20)와 포인팅 장치(10) 간에는 무선주파수신호(Radio Frequency Signal)에 의해 데이터를 송신 또는 수신하여 사용자에 의해 움직임이 제어되는 포인팅 장치(10)의 움직임에 따라 디스플레이 장치(20)의 화면상의 커서의 움직임이 제어된다.
포인팅 장치(10) 내부에는 포인팅 장치(10)의 움직임에 대하여 x축, y축 및 z축을 갖는 본체좌표계에 의해 x축, y축 및 z축을 중심으로 포인팅 장치(10)의 회전을 감지하는 3축 각속도계들과, x축, y축 및 z축에 대하여 포인팅 장치(10)의 가속을 감지하는 3축 가속도계들이 구성되어 있다. 본 발명의 실시예에서는 y축은 디스플레이 장치(20)의 화면에 수직한 방향으로 설정한다.
도 2에 도시된 바와 같이 3축 각속도계와 3축 가속도계에 의해 포인팅 장치(10)의 회전각을 나타내는 포인팅 장치(10)의 합성자세각(Rga)을 산출하고, 포인팅 장치(10)의 합성자세각(Rga)과 x축과 z축의 각속도계에서 산출한 각속도값에 의해 H축, I축 및 V축을 갖는 관성좌표계로 변환하여 변환된 수평각속도와 수직가속도에 의해 포인팅 장치(10)의 움직임에 대하여 디스플레이 장치(20)의 화면상의 커서 움직임을 나타내기 위해 수평변위(Dh)와 수직변위(Dv)를 디스플레이 장치(20)로 출력한다.
도 2에서 포인팅 장치의 합성자세각(Rga)이 0도이면, 본체좌표계의 x축, y축 및 z축은 각각 관성좌표계의 H축, I축 및 V축과 일치하게 되며, 포인팅 장치의 합성자세각(Rga)이 0도가 아니면, 본체좌표계의 y축과 관성좌표계의 I축만이 일치하게 된다.
본 발명의 동작 설명을 위해 3축각속도값(Gxyz)과 3축가속도값(Axyz), 오프셋값(Oxyz), 평균각속도값(Mxyz), 갱신된 오프셋값(NOxyz), 갱신된 3축각속도값(RGxyz), 수평각속도(Gh), 수직각속도(Gv), 수평변위(Dh) 및 수직변위(Dv)는 모두 방향성을 갖는 벡터(Vector)이다.
또한, 3축각속도값(Gxyz)은 3축 각속도계로부터 각각 x축, y축 및 z축을 중심으로 포인팅 장치의 회전값을 나타내는 것으로, x축을 중심으로 회전값인 Gx와, y축을 중심으로 회전값인 Gy와 z축을 중심으로 회전값인 Gz의 벡터합을 의미하며, 나머지 3축가속도값(Axyz), 오프셋값(Oxyz), 평균각속도값(Mxyz), 갱신된 오프셋값(NOxyz), 갱신된 3축각속도값(RGxyz)은 상기와 동일하게 각각 x축, y축 및 z축에 대한 벡터합을 의미한다.
즉, 3축각속도값(Gxyz)은 (Gx,Gy, Gz)이고, 3축가속도값(Axyz)은 (Ax,Ay,Az)이고, 오프셋값(Oxyz)은 (Ox,Oy,Oz)이고, 평균각속도값(Mxyz)은 (Mx,My,Mz)이고, 갱신된 오프셋값(NOxyz)은 (NOx,NOy,NOz)이고, 갱신된 3축각속도값(RGxyz)은 (RGx,RGy,RGz)를 의미한다.
도 3에 도시된 바와 같이 각속도값과 가속도값 출력단계(S10)는 3축 각속도계들로부터 각각 포인팅 장치의 회전 출력인 x축을 중심으로 회전값인 Gx와, y축을 중심으로 회전값인 Gy와 z축을 중심으로 회전값인 Gz의 벡터합인 3축각속도값(Gxyz)과, 3축가속도계로부터 x축에 대한 가속도값 Ax와, y축에 대한 가속도값 Ay와, z축에 대한 가속도값 Az의 벡터합인 3축가속도값(Axyz)을 출력한다.
가속도크기 산출단계(S20)는 각속도값과 가속도값 출력단계(S10)에 출력되는 3축가속도값(Axyz)에 의해 가속도크기(A)를 산출한다.
즉, 가속도크기(A)=(Ax2+Ay2 +Az2)1/2이다.
저장단계(S30)는 3축각속도값(Gxyz)인 Gx, Gy, Gz과 3축가속도값(Axyz)인 Ax, Ay, Az과 가속도크기(A)를 저장부인 7개의 버퍼들에 각각 저장한다. 각 버퍼는 선입선출 구조를 갖도록 하여 버퍼는 일정 개수의 가장 최근에 샘플링된 각속도값과 가속도값과 가속도크기가 저장되게 된다.
제1운동상태 판단단계(S40)는 저장단계(S30)에서 저장된 3축각속도값(Gxyz)과 3축가속도값(Axyz)과 가속도크기(A)를 수신하여, 3축각속도값(Gxyz)의 변동성(Variation)과, 3축가속도값(Axyz)의 변동성과, 가속도크기(A)의 변동성을 조사한다. 변동성은 표준편차, 분산 또는 범위 등이 사용될 수 있으며, 다음의 예는 분산을 사용하여 3축각속도값(Gxyz)의 변동성(Var0, Var1, Var2)과, 3축가속도값(Axyz)의 변동성(Var3, Var4, Var5)과, 가속도크기(A)의 변동성(Var6)은 다음의 식에 의해 산출된다.
즉, Var0 = ∑(Gxi-uo)2이고, Var1 = ∑(Gyi-u1)2 이고, Var2 = ∑(Gzi-u2)2이고, Var3 =∑(Axi-u3)2 이고, Var4 = ∑(Ayi-u4)2이고, Var5 = ∑(Azi-u5)2 이고, Var6 = ∑(Ai-u6)2이며, uo 내지 u6는 평균값이다.
상기의 식에서 구한 3축각속도값(Gxyz)의 변동성(Var0, Var1, Var2)이 모두 사용자에 의해 정의된 각속도문턱값의 범위 내이고, 3축가속도값(Axyz)의 변동성(Var3, Var4, Var5)이 사용자에 의해 정의된 가속도문턱값의 범위 내이고, 가속도크기(A)의 변동성(Var6)이 사용자에 의해 정의된 가속도크기문턱값의 범위 내이면, 제1운동상태 판단단계(S40)에서 포인팅 장치(10)는 정지상태인 것으로 판단한다.
그러나, 3축각속도값(Gxyz)의 변동성(Var0, Var1, Var2) 중 어느 하나가 각속도문턱값의 범위를 초과하거나, 3축가속도값(Axyz)의 변동성(Var3, Var4, Var5) 중 어느 하나가 가속도문턱값의 범위를 초과하거나, 가속도크기(A)의 변동성(Var6)이 가속도크기문턱값의 범위를 초과하면 제1운동상태 판단단계(S40)에서 포인팅 장치(10)는 운동상태인 것으로 판단한다.
오프셋 산출단계(S50)는 제1운동상태 판단단계(S40)에서 포인팅 장치(10)가 정지상태이면, 3축각속도계에 의해 발생되는 오프셋(offset)을 제거하기 위해 저장단계(S30)에서 저장된 3축각속도값의 평균각속도값(Mxyz)을 산출하고, 이전에 산출된 이전 오프셋값(Oxyz)과 평균각속도값(Mxyz)과의 가중평균치에 의해 산출된 갱신된 오프셋값(NOxyz)을 출력하고, 제1운동상태 판단단계(S40)에서 포인팅 장치(10)가 운동상태이면 이전에 산출된 이전 오프셋값(Oxyz)을 출력한다.
3축가속도계에 의해 출력된 3축가속도값은 오프셋을 포함하고 있어 자세각을 계산시 적분에 의한 누적오차가 발생하므로, 이러한 누적 오차를 감소시키기 위해, 포인팅 장치(10)가 정지하고 있을 때, 3축각속도계에 의해 발생되는 오프셋을 산출한다. 포인팅 장치(10)가 정지하고 있을 때에는 각속도계에 의해 측정되는 측정값은 잡음과 오프셋만 존재하게 되며, 포인팅 장치(10)가 정지하고 있을 때에는 3축각속도값들의 평균값을 구하면 잡음의 경우 평균값이 0이므로 순수한 오프셋값만을 산출할 수 있다. 즉, 포인팅 장치(10)가 정지하고 있을 때 버퍼에 저장된 3축각속도값들의 평균값인 평균각속도값(Mxyz)이 3축각속도계에 의한 오프셋이 된다.
또한, 이전 오프셋(Oxyz)과 포인팅 장치(10)가 정지하고 있을 때 산출된 3축각속도값들의 평균각도속값(Mxyz)과의 가중평균치로 오프셋을 새롭게 갱신한다.
즉, 갱신된 오프셋(NOxyz) = αOxyz + βMxyz 이며, 여기서 α, β는 음이 아닌 1 이하의 상수로, α+β=1 이다.
제1운동상태 판단단계(S40)에서 포인팅 장치(10)가 운동상태이면 순수한 오프셋값을 산출할 수 없으므로, 오프셋 산출단계(S50)는 이전에 산출된 이전 오프셋값(Oxyz)을 출력한다.
각속도값 갱신단계(S60)는 저장단계(S30)에서 저장된 3축각속도값(Gxyz)에서 오프셋 산출단계(S50)에서 산출된 갱신된 오프셋값(NOxyz) 또는 이전 오프셋값(Oxyz)을 감산하여 갱신된 3축각속도값(RGxyz)을 출력한다.
즉, 갱신된 3축각속도값(RGxyz) = 3축각속값(Gxyz) - {갱신된 오프셋값(NOxyz) 또는 이전 오프셋값(Oxyz)} 이다.
이와 같이 3축각속도계로 측정된 값에서 오프셋값을 감산하여 3축각속도계에 의해 발생되는 오프셋(offset)을 제거할 수 있다.
각속도자세각 산출단계(S70)는 갱신된 3축각속도값(RGxyz) 중 y축 성분의 갱신된 각속도값(RGy)에 의한 자세각 변화량과 이전의 포인팅 장치(10)의 합성자세각(Rga)을 가산하여 각속도에 따른 자세각(Rg)을 산출하며, 이전의 포인팅 장치(10)의 합성자세각(Rga)은 후술하는 합성자세각 산출단계(S90)에서 산출되는 포인팅 장치(10)의 합성자세각이다.
즉, 각속도에 따른 자세각(Rg) = 이전의 포인팅 장치의 합성자세각(Rga) + ∫RGy×dt 이다.
가속도자세각 산출단계(S80)는 저장단계(S30)에서 저장된 3축가속도값(Axyz) 중 x축 성분의 가속도값(Ax)과 z축 성분의 가속도값(Az)에 의해 y축 방향으로 회전한 가속도에 따른 자세각(Ra)을 산출하며, 가속도에 따른 자세각(Ra)은 tan-1(Ax/-Az)이다.
합성자세각 산출단계(S90)는 각속도에 따른 자세각(Rg)과 가속도에 따른 자세각(Ra)을 합성하여 포인팅 장치(10)의 합성자세각(Rga)을 산출한다.
포인팅 장치(10)가 사용자에 의해 운동 중일 때에는 가속도에 따른 자세각(Ra)은 각속도에 따른 자세각(Rg)에 비해 상대적으로 정확한 값을 갖지 못하며, 포인팅 장치(10)가 정지하고 있을 때에는 가속도에 따른 자세각(Ra)은 각속도에 따른 자세각(Rg)에 비해 상대적으로 정확한 값을 갖게 된다.
따라서, 합성자세각 산출단계(S90)는 제1운동상태 판단단계(S40)과 동일한 방법으로 제2운동상태 판단단계(S91)에서 포인팅 장치(10)가 운동상태인지 또는 정지상태인지를 판단한다. 즉, 제2운동상태 판단단계(S91)에서는 3축각속도값(Gxyz)의 변동성(Variation)과, 3축가속도값(Axyz)의 변동성과, 가속도크기(A)의 변동성을 조사하여 3축각속도값(Gxyz)의 변동성(Var0, Var1, Var2)이 모두 사용자에 의해 정의된 각속도문턱값의 범위 내이고, 3축가속도값(Axyz)의 변동성(Var3, Var4, Var5)이 사용자에 의해 정의된 가속도문턱값의 범위 내이고, 가속도크기(A)의 변동성(Var6)이 사용자에 의해 정의된 가속도크기문턱값의 범위 내이면, 제2운동상태 판단단계(S40)에서 포인팅 장치(10)는 정지상태인 것으로 판단하고, 3축각속도값(Gxyz)의 변동성(Var0, Var1, Var2) 중 어느 하나가 각속도문턱값의 범위를 초과하거나, 3축가속도값(Axyz)의 변동성(Var3, Var4, Var5) 중 어느 하나가 가속도문턱값의 범위를 초과하거나, 가속도크기(A)의 변동성(Var6)이 가속도크기문턱값의 범위를 초과하면 포인팅 장치(10)는 운동상태인 것으로 판단한다.
제2운동상태 판단단계(S91)에서 3축각속도값(Gxyz)의 변동성(Variation)과, 3축가속도값(Axyz)의 변동성과, 가속도크기(A)의 변동성을 산출하여 각각의 문턱값과 비교할 경우 포인팅 장치(10)가 운동 중인지, 정지하고 있는지를 정확하게 판단할 수는 있으나, 계산 양이 너무 많아지므로 가속도크기(A)의 변동성만을 산출하고, 이를 가속도크기문턱값과 비교하여 가속도크기(A)의 변동성이 가속도크기문턱값의 범위내이면 포인팅 장치(10)는 정지상태로 판단하고, 가속도크기(A)의 변동성이 가속도크기문턱값을 초과하는 경우 운동상태로 판단할 수도 있다.
가중치 설정단계(S93)는 음이 아닌 1 이하의 상수이며, 두개의 합이 1인 제1가중치값(α)과 제2가중치값(β)을 선택하여, 제2운동상태 판단단계(S91)에서 운동상태이면, 제1가중치값(α)은 제2가중치값(β) 보다 큰 값을 갖고, 제2운동상태 판단단계(S91)에서 정지상태이면, 제1가중치값(α)은 제2가중치값(β) 보다 작은 값을 갖도록 제1가중치값(α)과 제2가중치값(β)을 설정하고, 합성자세각 결정단계(S95)는 각속도에 따른 자세각(Rg)에 제1가중치값(α)을 승산하고, 가속도에 따른 자세각(Ra)에 제2가중치값(β)을 승산하여, 제1가중치값(α)이 승산된 각속도에 따른 자세각(Rg)과 제2가중치값(β)이 승산된 가속도에 따른 자세각(Ra)을 가산하여 포인팅 장치(10)의 합성자세각(Rga)을 산출한다.
즉, 포인팅 장치의 합성자세각(Rga) = 제1가중치값(α)×각속도에 따른 자세각(Rg) + 제2가중치값(β)×가속도에 따른 자세각(Ra)이고, 제1가중치값(α) + 제2가중치값(β) =1 이며, 포인팅 장치가 운동 중일 때에는 제1가중치값(α) > 제2가중치값(β) 이고, 포인팅 장치가 정지상태 일 때에는 제1가중치값(α) < 제2가중치값(β) 을 갖도록 가중치 설정단계(S93)에서 제1가중치값(α)과 제2가중치값(β)을 설정하여 합성자세각 산출단계(S90)에서 포인팅 장치(10)의 합성자세각(Rga)을 산출한다.
이와 같이 본 발명의 포인팅 제어방법은 각속도에 따른 자세각(Rg)과 가속도에 따른 자세각(Ra)을 합성하고, 포인팅 장치(10)의 운동 또는 정지 상태인지를 판단하여 제1가중치값(α)과 제2가중치값(β)에 의해 합성자세각(Rga)을 산출함으로써, 종래의 포인팅 장치의 제어방법에 비해 포인팅 장치(10)의 자세각을 더 정확하게 산출할 수 있다.
좌표계 변환단계(S100)는 합성자세각 산출단계(S90)에서 산출된 합성자세각(Rga)과 각속도값 갱신단계(S60)에서 출력되는 갱신된 3축각속도값(RGxyz) 중 x축 성분의 갱신된 각속도값(RGx)과 z축 성분의 갱신된 각속도값(RGz)을 수신하여, 본체좌표계로부터 관성좌표계로 변환하여 변환된 수평각속도(Gh)와 수직각속도(Gv)를 출력한다.
즉, 관성좌표계로 변환된 수평각속도(Gh)와 수직각속도(Gv)는 다음의 식과 같다.
Figure 112011050249242-pat00001
=
Figure 112011050249242-pat00002
Figure 112011050249242-pat00003
변위산출단계(S120)는 좌표계 변환단계(S100)에서 출력되는 수평각속도(Gh)와 수직각속도(Gv)를 수신하여 디스플레이 장치(20)의 화면상의 커서의 움직임을 나타내는 수평변위(Dh)와 수직변위(Dv)를 출력한다.
수평각속도(Gh)는 디스플레이 장치(20)의 수평축 움직임을 나타내는 것으로, 만일 양의 값이라면 화면의 좌측으로의 변위를 나타내므로 수평좌표가 우측으로 갈 수록 커지는 디스플레이 장치(20)라면 음의 부호를 곱해야 하고, 수직각속도(Gv)는 디스플레이 장치(20)의 수직축 움직임을 나타내는 것으로, 만일 양의 값이라면 화면의 위로의 변화를 나타내므로 수직좌표가 아래로 갈수록 커지는 디스플레이 장치(20)라면 음의 부호를 곱해야 한다. 또한, 스케일링팩터(scaling factor)가 1이라 하면, 수평변위(Dh)는 - Gy × dt 이고, 수직변위(Dv)는 - Gv × dt 가 된다.
이와 같이 본 발명의 포인팅 장치의 제어방법은 가속도센서와 각속도센서로부터 출력되는 3축방향의 가속도값과 3축방향의 각속도값을 산출하여 x축 방향과 z축 방향의 가속도값에 의해 가속도에 의한 가속도자세각을 산출하고, y축 방향의 각속도값에 의해 각속도에 의한 각속도자세각을 산출하고, 가속도자세각과 각속도자세각을 합성한 합성자세각에 의해 포인팅 장치의 자세각을 보다 정확하게 산출할 수 있고, 이로 인해 포인팅 장치(10)의 움직임에 대한 디스플레이 장치(20)의 화면상의 커서의 이동에 따른 변위를 정확하게 산출할 수 있다.
도 3 및 도 4에 도시된 바와 같이 본 발명에 따른 포인팅 장치의 제어방법은 각속도 가변단계(S100)를 더 구비하여, 각속도 가변단계(S100)에 의해 포인팅 장치(10)의 움직이는 정도가 느리면, 디스플레이 장치(20)의 화면상의 커서의 움직임을 더 느리게 움직이도록 하고, 포인팅 장치(10)의 움직이는 정도가 빠르면, 디스플레이 장치(20)의 화면상의 커서의 움직임을 더 빠르게 하여, 포인팅 장치(10)의 움직이는 정도에 따라 수평각속도와 수직각속도를 가변시켜주어 포인팅 장치의 사용감을 증진시킬 수 있다.
각속도 가변단계(S100)는 도 4에 도시된 바와 같이 제1,제2비교단계(S101,S103)와, 수평각속도 갱신단계(S105)와 수직각속도 갱신단계(S107)로 구성된다.
제1비교단계(S101)는 현재의 수평각속도(Gh)와 사용자에 의해 정의된 제1기준각속도(Vref1) 및 제1기준각속도(Vref1)에 비해 상대적으로 큰값의 각속도인 제2기준각속도(Vref2)를 비교하고, 제2비교단계(S103)는 수직각속도(Gv)와 제1기준각속도(Vref1) 및 제2기준각속도(Vref2)를 비교한다.
수평각속도 갱신단계(S105)는 제1비교단계(S101)에서 현재의 수평각속도(Gh)가 제1기준각속도(Vref1)보다 작으면, 수평각속도(Gh)에 음이 아닌 1 이하의 상수값을 갖는 제1스케일링팩터(sf1)를 승산하고, 수평각속도(Gh)가 제2기준각속도(Vref1)보다 크면, 수평각속도(Gh)에 1 보다 큰 상수값을 갖는 제2스케일링팩터(sf2)를 승산하여 갱신된 수평각속도(RGh)를 출력하며, 수평각속도(Gh)가 제1기준각속도(Vref1) 보다 크고 제2기준각속도(Vref2) 보다 작으면 수평각속도(Gh)를 그대로 출력한다.
상기와 동일하게 수직각속도 갱신단계(S107)는 현재의 수직각속도(Gv)가 제1기준각속도(Vref1)보다 작으면, 수직각속도(Gv)에 제1스케일링팩터(sf1)를 승산하고, 수직각속도(Gv)가 제2기준각속도(Vref1)보다 크면, 수직각속도(Gv)에 제2스케일링팩터(sf2)를 승산하여 갱신된 수직각속도(RGv)를 출력하고, 그렇지 않을 경우 수직각속도(Gv)를 그대로 출력하는한다.
예를 들어, 사용자에 의해 포인팅 장치(10)가 움직이는 정도가 크지 않아, 현재의 산출된 수평각속도(Gh)와 수직각속도(Gv)가 모두 사용자에 의해 정의된 제1기준각속도(Vref1)보다 작으면 수평각속도(Gh)와 수직각속도(Gv)에 음이 아닌 1 이하의 작은 상수값인 제1스케일링팩터(sf1)를 승산하여, 현재 산출된 수평각속도(Gh)와 수직각속도(Gv) 보다 상대적으로 작은 각속도를 갖는 갱신된 수평각속도(RGh)와 갱신된 수직각속도(RGv)를 출력하여 줌으로써, 갱신된 수평각속도(RGh)와 갱신된 수직각속도(RGv)에 의해 디스플레이 장치(20)의 화면에 나타나는 커서의 수평변위(Dh)와 수직변위(Dv)를 더 작은 변위값을 갖도록 한다.
반대로, 사용자에 의해 포인팅 장치(10)가 움직이는 정도가 클 경우에는 현재 산출된 수평각속도(Gh)와 수직각속도(Gv)가 모두 사용자에 의해 정의된 제2기준각속도(Vref2)보다 크면 수평각속도(Gh)와 수직각속도(Gv)에 1보다 큰 상수값인 제2스케일링팩터(sf2)를 승산하여, 현재 산출된 수평각속도(Gh)와 수직각속도(Gv) 보다 상대적으로 큰 각속도를 갖는 갱신된 수평각속도(RGh)와 갱신된 수직각속도(RGv)를 출력하여 줌으로써, 갱신된 수평각속도(RGh)와 갱신된 수직각속도(RGv)에 의해 디스플레이 장치(20)의 화면에 나타나는 커서의 수평변위(Dh)와 수직변위(Dv)를 보다 큰 변위값을 갖도록 한다.
또한, 현재 산출된 수평각속도(Gh)와 수직각속도(Gv)가 모두 사용자에 의해 정의된 제1기준각속도(Vref1) 보다 크고, 제2기준각속도(Vref2)보다 작으면, 그대로 수평각속도(Gh)와 수직각속도(Gv)를 출력하도록 한다.
이와 같이 사용자에 의한 포인팅 장치의 움직임이 상대적으로 적을 때에는 디스플레이 장치(20)에 나타나는 커서의 수평변위값 및 수직변위값을 상대적으로 더 적은 값을 갖도록 하고, 사용자에 의한 포인팅 장치의 움직임이 상대적으로 클 경우에는 디스플레이 장치(20)에 나타나는 커서의 수평변위값 및 수직변위값을 상대적으로 큰 값을 갖도록 하여 사용자에 의한 포인팅 장치의 움직임을 미리 예측하여 이에 따라 커서의 변위값을 더 작은 값을 갖게 또는 더 큰 값을 갖도록 하여 포인팅 장치의 동작시 사용자가 편리하게 사용할 수 있다.

Claims (5)

  1. 포인팅 장치의 움직임에 대하여 x축, y축 및 z축을 갖는 본체좌표계와 상기 포인팅 장치의 움직임에 대응되어 디스플레이 장치의 화면상에 커서의 움직임을 나타내기 위하여 상기 본체좌표계로부터 H축, I축 및 V축을 갖는 관성좌표계로 변환시켜 상기 포인팅 장치의 움직임에 대하여 상기 디스플레이 장치의 화면상의 커서의 변위를 산출하는 포인팅 장치의 제어방법에 있어서,
    상기 x축, y축 및 z축을 중심으로 상기 포인팅 장치의 회전을 감지하는 3축 각속도계들로부터 상기 포인팅 장치의 회전값인 3축각속도값(Gxyz)과, 상기 x축, y축 및 z축에 대하여 상기 포인팅 장치의 가속을 감지하는 3축 가속도계들로부터 출력되는 x축에 대한 가속도값(Ax), y축에 대한 가속도값(Ay) 및 z축에 대한 대한 가속도값(Az)을 벡터합하여 상기 포인팅 장치의 가속도인 3축가속도값(Axyz)을 출력하는 각속도값과 가속도값 출력단계(S10);
    상기 각속도값과 가속도값 출력단계(S10)에 출력되는 3축가속도값(Axyz)을 수신하여 3축가속도값(Axyz)의 크기((Ax2+Ay2+Az2)1/2)를 나타내는 가속도크기(A)를 산출하는 가속도크기 산출단계(S20);
    상기 3축각속도값(Gxyz)과 3축가속도값(Axyz)과 가속도크기(A)를 저장하는 저장단계(S30);
    상기 저장단계(S30)에서 저장된 상기 3축각속도값(Gxyz)과 3축가속도값(Axyz)과 가속도크기(A)를 수신하여 3축각속도값(Gxyz)의 변동성과 사용자에 의해 정의된 각속도문턱값과 비교하고, 3축가속도값(Axyz)의 변동성과 사용자에 의해 정의된 가속도문턱값과 비교하고, 가속도크기(A)의 변동성과 사용자에 의해 정의된 가속도크기문턱값과 비교하여 상기 3축각속도값(Gxyz)의 변동성과 3축가속도값(Axyz)의 변동성과 가속도크기(A)의 변동성이 각각 상기 각속도문턱값과 가속도문턱값 및 가속도크기문턱값 이내이면 상기 포인팅 장치는 정지상태인 것으로 판단하고, 3축각속도값(Gxyz)의 변동성이 각속도문턱값의 범위를 초과하거나 3축가속도값(Axyz)의 변동성이 가속도문턱값의 범위를 초과하거나 가속도크기(A)의 변동성이 가속도크기문턱값의 범위를 초과하면 포인팅 장치는 운동상태인 것으로 판단하는 제1운동상태 판단단계(S40);
    상기 제1운동상태 판단단계(S40)에서 상기 포인팅 장치가 정지상태이면, 상기 3축각속도계에 의해 발생되는 오프셋을 제거하기 위해 상기 저장단계(S30)에서 저장된 3축각속도값의 평균각속도값(Mxyz)을 산출하고, 이전에 산출된 이전 오프셋값(Oxyz)과 상기 평균각속도값(Mxyz)과의 가중평균치에 의해 산출된 갱신된 오프셋값(NOxyz)을 출력하고, 상기 제1운동상태 판단단계(S40)에서 상기 포인팅 장치가 운동상태이면 이전에 산출된 이전 오프셋값(Oxyz)을 출력하는 오프셋 산출단계(S50);
    상기 저장단계(S30)에서 저장된 3축각속도값(Gxyz)에서 상기 오프셋 산출단계(S50)에서 산출된 갱신된 오프셋값(NOxyz) 또는 이전 오프셋값(Oxyz)을 감산하여 갱신된 3축각속도값(RGxyz)을 출력하는 각속도값 갱신단계(S60);
    상기 갱신된 3축각속도값(RGxyz) 중 y축 성분의 갱신된 각속도값(RGy)에 의한 자세각 변화량과 이전의 포인팅 장치의 합성자세각(Rga)을 가산하여 각속도에 따른 자세각(Rg)을 산출하는 각속도자세각 산출단계(S70);
    상기 저장단계(S30)에서 저장된 3축가속도값(Axyz) 중 x축 성분의 가속도값(Ax)과 z축 성분의 가속도값(Az)에 의해 y축 방향으로 회전한 가속도에 따른 자세각(Ra)을 산출하는 가속도자세각 산출단계(S80);
    상기 각속도자세각 산출단계(S70)에서 산출된 각속도에 따른 자세각(Rg)과 상기 가속도자세각 산출단계(S80)에서 산출된 가속도에 따른 자세각(Ra)을 합성하여 상기 포인팅 장치의 합성자세각(Rga)을 산출하는 합성자세각 산출단계(S90);
    상기 합성자세각 산출단계(S90)에서 산출된 합성자세각(Rga)과 상기 각속도값 갱신단계(S60)에서 출력되는 갱신된 3축각속도값(RGxyz) 중 x축 성분의 갱신된 각속도값(RGx)과 z축 성분의 갱신된 각속도값(RGz)을 수신하여, 상기 본체좌표계로부터 관성좌표계로 변환하여 변환된 수평각속도(Gh)와 수직각속도(Gv)를 출력하는 좌표계 변환단계(S100); 및
    상기 좌표계 변환단계(S100)에서 출력되는 수평각속도(Gh)와 수직각속도(Gv)를 수신하여 디스플레이 장치의 화면상의 커서의 움직임을 나타내는 수평변위(Dh)와 수직변위(Dv)를 출력하는 변위산출단계(S120)를 구비한 것을 특징으로 하는 포인팅 장치의 제어방법.
  2. 제 1 항에 있어서, 상기 합성자세각 산출단계(S90)는,
    상기 저장단계(S30)에서 저장된 상기 3축각속도값(Gxyz)과 3축가속도값(Axyz)과 가속도크기(A)를 수신하여 3축각속도값(Gxyz)의 변동성과 사용자에 의해 정의된 각속도문턱값과 비교하고, 3축가속도값(Axyz)의 변동성과 사용자에 의해 정의된 가속도문턱값과 비교하고, 가속도크기(A)의 변동성과 사용자에 의해 정의된 가속도크기문턱값과 비교하여 상기 3축각속도값(Gxyz)의 변동성과 3축가속도값(Axyz)의 변동성과 가속도크기(A)의 변동성이 각각 상기 각속도문턱값과 가속도문턱값 및 가속도크기문턱값 이내이면 상기 포인팅 장치는 정지상태인 것으로 판단하고, 3축각속도값(Gxyz)의 변동성이 각속도문턱값의 범위를 초과하거나 3축가속도값(Axyz)의 변동성이 가속도문턱값의 범위를 초과하거나 가속도크기(A)의 변동성이 가속도크기문턱값의 범위를 초과하면 상기 포인팅 장치는 운동상태인 것으로 판단하는 제2운동상태 판단단계(S91);
    음이 아닌 1 이하의 상수이며, 두개의 합이 1인 제1가중치값(α)과 제2가중치값(β)을 선택하여, 상기 제2운동상태 판단단계(S91)에서 운동상태이면, 제1가중치값(α)은 제2가중치값(β) 보다 큰 값을 갖고, 상기 제2운동상태 판단단계(S91)에서 정지상태이면, 제1가중치값(α)은 제2가중치값(β) 보다 작은 값을 갖도록 제1가중치값(α)과 제2가중치값(β)을 설정하는 가중치 설정단계(S93); 및
    상기 각속도자세각 산출단계(S70)에서 산출된 각속도에 따른 자세각(Rg)에 상기 제1가중치값(α)을 승산하고, 상기 가속도자세각 산출단계(S80)에서 산출된 가속도에 따른 자세각(Ra)에 제2가중치값(β)을 승산하여, 제1가중치값(α)이 승산된 각속도에 따른 자세각(Rg)과 제2가중치값(β)이 승산된 가속도에 따른 자세각(Ra)을 가산하여 상기 포인팅 장치의 합성자세각(Rga)을 산출하는 합성자세각 결정단계(S95)를 구비한 것을 특징으로 하는 포인팅 장치의 제어방법.
  3. 제 1 항에 있어서, 상기 합성자세각 산출단계(S90)는,
    상기 저장단계(S30)에서 저장된 상기 가속도크기(A)를 수신하여 가속도크기(A)의 변동성과 사용자에 의해 정의된 가속도크기문턱값과 비교하여 가속도크기(A)의 변동성이 가속도크기문턱값 범위내이면 상기 포인팅 장치는 정지상태인 것으로 판단하고, 상기 가속도크기(A)의 변동성이 가속도크기문턱값의 범위를 초과하면 상기 포인팅 장치는 운동상태인 것으로 판단하는 제2운동상태 판단단계(S91);
    음이 아닌 1 이하의 상수이며, 두개의 합이 1인 제1가중치값(α)과 제2가중치값(β)을 선택하여, 상기 제2운동상태 판단단계(S91)에서 운동상태이면, 제1가중치값(α)은 제2가중치값(β) 보다 큰 값을 갖고, 상기 제2운동상태 판단단계(S91)에서 정지상태이면, 제1가중치값(α)은 제2가중치값(β) 보다 작은 값을 갖도록 제1가중치값(α)과 제2가중치값(β)을 설정하는 가중치 설정단계(S93); 및
    상기 각속도자세각 산출단계(S70)에서 산출된 각속도에 따른 자세각(Rg)에 상기 제1가중치값(α)을 승산하고, 상기 가속도자세각 산출단계(S80)에서 산출된 가속도에 따른 자세각(Ra)에 제2가중치값(β)을 승산하여, 제1가중치값(α)이 승산된 각속도에 따른 자세각(Rg)과 제2가중치값(β)이 승산된 가속도에 따른 자세각(Ra)을 가산하여 상기 포인팅 장치의 합성자세각(Rga)을 산출하는 합성자세각 결정단계(S95)를 구비한 것을 특징으로 하는 포인팅 장치의 제어방법.
  4. 제 1 항 내지 제 3 항들 중 어느 한 항에 있어서, 상기 포인팅 장치의 제어방법은 상기 좌표계 변환단계(S100)에서 출력되는 수평각속도(Gh)와 수직각속도(Gv)를 수신하여 수신된 수평각속도(Gh)와 수직각속도(Gv)가 제1기준각속도(Vref1) 보다 작으면 상기 수평각속도(Gh)와 수직각속도(Gv)에 음이 아닌 1 이하의 상수값을 갖는 제1스케일링팩터(sf1)를 승산하고, 수평각속도(Gh)와 수직각속도(Gv)가 상기 제1기준각속도(Vref1) 보다 상대적으로 큰 각속도를 갖는 제2기준각속도(Vref2) 보다 크면, 상기 수평각속도(Gh)와 수직각속도(Gv)에 1보다 큰 상수값을 갖는 제2스케일링팩터(sf2)를 승산하여 변환된 수평각속도(RGh) 및 수직각속도(RGv)를 출력하고, 상기 변위산출단계(S120)에서는 변환된 수평각속도(RGh) 및 수직각속도(RGv)에 의해 수평변위(Dh)와 수직변위(Dv)를 산출하도록 하는 각속도 가변단계(S100)를 더 구비한 것을 특징으로 하는 포인팅 장치의 제어방법.
  5. 제 4 항에 있어서, 상기 각속도 가변단계(S100)는,
    상기 수평각속도(Gh)와 제1기준각속도(Vref1) 및 제2기준각속도(Vref2)를 비교하는 제1비교단계(S101);
    상기 수직각속도(Gv)와 제1기준각속도(Vref1) 및 제2기준각속도(Vref2)를 비교하는 제2비교단계(S103);
    상기 제1비교단계(S101)에서 상기 수평각속도(Gh)가 제1기준각속도(Vref1)보다 작으면, 상기 수평각속도(Gh)에 제1스케일링팩터(sf1)를 승산하고, 상기 수평각속도(Gh)가 제2기준각속도(Vref1)보다 크면, 상기 수평각속도(Gh)에 제2스케일링팩터(sf2)를 승산하여 갱신된 수평각속도(RGh)를 출력하고, 상기 수평각속도(Gh)가 제1기준각속도(Vref1) 보다 크고 제2기준각속도(Vref2) 보다 작으면 수평각속도(Gh)를 그대로 출력하는 수평각속도 갱신단계(S105); 및
    상기 제2비교단계(S101)에서 상기 수직각속도(Gv)가 제1기준각속도(Vref1)보다 작으면, 상기 수직각속도(Gv)에 제1스케일링팩터(sf1)를 승산하고, 상기 수직각속도(Gv)가 제2기준각속도(Vref1)보다 크면, 상기 수직각속도(Gv)에 제2스케일링팩터(sf2)를 승산하여 갱신된 수직각속도(RGv)를 출력하고, 상기 수직각속도(Gv)가 제1기준각속도(Vref1) 보다 크고 제2기준각속도(Vref2) 보다 작으면 수직각속도(Gv)를 그대로 출력하는 수직각속도 갱신단계(S107)를 구비한 것을 특징으로 하는 포인팅 장치의 제어방법.
KR1020110064879A 2011-06-30 2011-06-30 포인팅 장치의 제어방법 KR101228948B1 (ko)

Priority Applications (1)

Application Number Priority Date Filing Date Title
KR1020110064879A KR101228948B1 (ko) 2011-06-30 2011-06-30 포인팅 장치의 제어방법

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1020110064879A KR101228948B1 (ko) 2011-06-30 2011-06-30 포인팅 장치의 제어방법

Publications (2)

Publication Number Publication Date
KR20130003484A KR20130003484A (ko) 2013-01-09
KR101228948B1 true KR101228948B1 (ko) 2013-02-07

Family

ID=47835700

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020110064879A KR101228948B1 (ko) 2011-06-30 2011-06-30 포인팅 장치의 제어방법

Country Status (1)

Country Link
KR (1) KR101228948B1 (ko)

Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20090099300A (ko) * 2008-03-17 2009-09-22 (주)마이크로인피니티 포인터 이동 값 계산 장치, 포인터 이동 값 보정 방법 및자세 각도 변화량 보정 방법, 이를 사용하는 3차원 포인팅디바이스

Patent Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20090099300A (ko) * 2008-03-17 2009-09-22 (주)마이크로인피니티 포인터 이동 값 계산 장치, 포인터 이동 값 보정 방법 및자세 각도 변화량 보정 방법, 이를 사용하는 3차원 포인팅디바이스

Also Published As

Publication number Publication date
KR20130003484A (ko) 2013-01-09

Similar Documents

Publication Publication Date Title
JP6094026B2 (ja) 姿勢判定方法、位置算出方法及び姿勢判定装置
EP3407157B1 (en) Computing system implementing an algorithm for fusing data from inertial sensors, and method
JP6922641B2 (ja) 角速度導出装置および角速度導出方法
JP6019504B2 (ja) 移動体の進行方向推定装置及び進行方向推定方法
KR20110030639A (ko) 데이터 융합을 이용하는 모션 캡처 포인터
JP2007183138A (ja) 小型姿勢センサ
EP2930467A1 (en) A system and method for sensing the inclination of a moving platform with respect to gravity
US20160223335A1 (en) Information processing device, information processing method, and computer-readable non-transitory storage medium storing information processing program
CN112567097A (zh) 用于确定机器的作业设备的角度的方法
JP5935365B2 (ja) 状態検出装置、電子機器及びプログラム
CN108871323A (zh) 一种低成本惯性传感器在机动环境下的高精度导航方法
CN112033405B (zh) 一种室内环境磁异常实时修正与导航方法及装置
Dichev et al. System for measuring the attitude of moving objects, using a Kalman filter and MEMS sensors
CN114964214B (zh) 一种航姿参考系统的扩展卡尔曼滤波姿态解算方法
KR101228948B1 (ko) 포인팅 장치의 제어방법
CN110296683B (zh) 一种具有离心加速度补偿的动态倾角计
JP2021128030A (ja) 較正装置およびその制御方法
US10331240B2 (en) Air pointer with improved user experience
TW201314497A (zh) 慣性感測輸入裝置、系統及其方法
JP2015004593A (ja) ナビゲーション装置
CN113936044B (zh) 激光设备运动状态的检测方法、装置、计算机设备及介质
WO2009077976A2 (en) Orientation measurement of an object
KR101146748B1 (ko) 항체의 자세 제어 장치 및 방법
JP6677576B2 (ja) 加速度信号を用いた吊り下げ移動物体の位置・姿勢推定方法及び推定装置
JP6859917B2 (ja) 角速度導出装置および角速度導出方法

Legal Events

Date Code Title Description
A201 Request for examination
E902 Notification of reason for refusal
E701 Decision to grant or registration of patent right
GRNT Written decision to grant
FPAY Annual fee payment

Payment date: 20160128

Year of fee payment: 4

FPAY Annual fee payment

Payment date: 20170125

Year of fee payment: 5

FPAY Annual fee payment

Payment date: 20180125

Year of fee payment: 6