KR102335738B1 - 디바이스의 회전각 결정 방법 및 이를 위한 장치 - Google Patents

디바이스의 회전각 결정 방법 및 이를 위한 장치 Download PDF

Info

Publication number
KR102335738B1
KR102335738B1 KR1020140177136A KR20140177136A KR102335738B1 KR 102335738 B1 KR102335738 B1 KR 102335738B1 KR 1020140177136 A KR1020140177136 A KR 1020140177136A KR 20140177136 A KR20140177136 A KR 20140177136A KR 102335738 B1 KR102335738 B1 KR 102335738B1
Authority
KR
South Korea
Prior art keywords
acceleration
axis
rotation angle
coordinate system
information
Prior art date
Application number
KR1020140177136A
Other languages
English (en)
Other versions
KR20160070341A (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 KR1020140177136A priority Critical patent/KR102335738B1/ko
Priority to US14/965,261 priority patent/US10605604B2/en
Publication of KR20160070341A publication Critical patent/KR20160070341A/ko
Application granted granted Critical
Publication of KR102335738B1 publication Critical patent/KR102335738B1/ko

Links

Images

Classifications

    • GPHYSICS
    • G01MEASURING; TESTING
    • G01CMEASURING DISTANCES, LEVELS OR BEARINGS; SURVEYING; NAVIGATION; GYROSCOPIC INSTRUMENTS; PHOTOGRAMMETRY OR VIDEOGRAMMETRY
    • G01C21/00Navigation; Navigational instruments not provided for in groups G01C1/00 - G01C19/00
    • G01C21/10Navigation; Navigational instruments not provided for in groups G01C1/00 - G01C19/00 by using measurements of speed or acceleration
    • GPHYSICS
    • G01MEASURING; TESTING
    • G01CMEASURING DISTANCES, LEVELS OR BEARINGS; SURVEYING; NAVIGATION; GYROSCOPIC INSTRUMENTS; PHOTOGRAMMETRY OR VIDEOGRAMMETRY
    • G01C21/00Navigation; Navigational instruments not provided for in groups G01C1/00 - G01C19/00
    • G01C21/10Navigation; Navigational instruments not provided for in groups G01C1/00 - G01C19/00 by using measurements of speed or acceleration
    • G01C21/12Navigation; Navigational instruments not provided for in groups G01C1/00 - G01C19/00 by using measurements of speed or acceleration executed aboard the object being navigated; Dead reckoning
    • G01C21/16Navigation; Navigational instruments not provided for in groups G01C1/00 - G01C19/00 by using measurements of speed or acceleration executed aboard the object being navigated; Dead reckoning by integrating acceleration or speed, i.e. inertial navigation
    • G01C21/183Compensation of inertial measurements, e.g. for temperature effects
    • G01C21/185Compensation of inertial measurements, e.g. for temperature effects for gravity
    • GPHYSICS
    • G01MEASURING; TESTING
    • G01CMEASURING DISTANCES, LEVELS OR BEARINGS; SURVEYING; NAVIGATION; GYROSCOPIC INSTRUMENTS; PHOTOGRAMMETRY OR VIDEOGRAMMETRY
    • G01C21/00Navigation; Navigational instruments not provided for in groups G01C1/00 - G01C19/00
    • G01C21/20Instruments for performing navigational calculations
    • GPHYSICS
    • G01MEASURING; TESTING
    • G01CMEASURING DISTANCES, LEVELS OR BEARINGS; SURVEYING; NAVIGATION; GYROSCOPIC INSTRUMENTS; PHOTOGRAMMETRY OR VIDEOGRAMMETRY
    • G01C22/00Measuring distance traversed on the ground by vehicles, persons, animals or other moving solid bodies, e.g. using odometers, using pedometers
    • GPHYSICS
    • G01MEASURING; TESTING
    • G01DMEASURING NOT SPECIALLY ADAPTED FOR A SPECIFIC VARIABLE; ARRANGEMENTS FOR MEASURING TWO OR MORE VARIABLES NOT COVERED IN A SINGLE OTHER SUBCLASS; TARIFF METERING APPARATUS; MEASURING OR TESTING NOT OTHERWISE PROVIDED FOR
    • G01D5/00Mechanical means for transferring the output of a sensing member; Means for converting the output of a sensing member to another variable where the form or nature of the sensing member does not constrain the means for converting; Transducers not specially adapted for a specific variable
    • GPHYSICS
    • G01MEASURING; TESTING
    • G01PMEASURING LINEAR OR ANGULAR SPEED, ACCELERATION, DECELERATION, OR SHOCK; INDICATING PRESENCE, ABSENCE, OR DIRECTION, OF MOVEMENT
    • G01P15/00Measuring acceleration; Measuring deceleration; Measuring shock, i.e. sudden change of acceleration
    • GPHYSICS
    • G01MEASURING; TESTING
    • G01CMEASURING DISTANCES, LEVELS OR BEARINGS; SURVEYING; NAVIGATION; GYROSCOPIC INSTRUMENTS; PHOTOGRAMMETRY OR VIDEOGRAMMETRY
    • G01C22/00Measuring distance traversed on the ground by vehicles, persons, animals or other moving solid bodies, e.g. using odometers, using pedometers
    • G01C22/006Pedometers
    • GPHYSICS
    • G01MEASURING; TESTING
    • G01CMEASURING DISTANCES, LEVELS OR BEARINGS; SURVEYING; NAVIGATION; GYROSCOPIC INSTRUMENTS; PHOTOGRAMMETRY OR VIDEOGRAMMETRY
    • G01C9/00Measuring inclination, e.g. by clinometers, by levels
    • 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

Landscapes

  • Engineering & Computer Science (AREA)
  • Radar, Positioning & Navigation (AREA)
  • Remote Sensing (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Automation & Control Theory (AREA)
  • Navigation (AREA)
  • User Interface Of Digital Computer (AREA)

Abstract

진행 방향에 대한 회전각을 결정하는 디바이스에 있어서, 상기 디바이스의 움직임에 대한 가속도 정보를 획득하는 가속도 센싱부; 상기 획득되는 가속도 정보를 저장하는 저장부; 및 제어부를 포함하고, 상기 제어부는, 상기 획득된 가속도 정보의 좌표를 변환하고, 상기 변환된 좌표 상에서의 가속도 정보를 필터링하며, 상기 변환된 좌표 상에서의 중력축 가속도 정보를 이용하여 상기 디바이스의 진행 방향에 대한 회전각을 결정하고, 상기 중력축 가속도 정보는 상기 가속도 정보에서 상기 디바이스의 변환된 좌표 상에서의 수직축 가속도 성분이 최대인 시점에 대한 정보를 이용하여 도출될 수 있다.

Description

디바이스의 회전각 결정 방법 및 이를 위한 장치 {Method and apparatus for calculating a rotating angle of a device}
본 발명은 디바이스의 회전각 결정 방법 및 이를 위한 장치에 관한 것이다. 보다 상세하게는 디바이스의 진행 방향에 대한 디바이스의 틀어진 각을 결정하는 방법에 관한 것이다.
스마트폰과 같은 디바이스를 이용한 위치 추정 방법으로 보행자 항법(Pedestrian Dead Reckoning; PDR) 방식을 이용할 수 있다. 보행자 항법의 위치 추정 성능에 있어서, 디바이스의 회전각(틀어진 각도)은 큰 영향을 주는 변수이며, 디바이스의 틀어진 각도를 잘못 측정하였을 때 이동 거리를 정확하게 계산하여도 위치에 따른 오차가 크게 발생할 수 있다.
특히 스마트폰과 같은 소형 디바이스의 사용자는 디바이스를 파지하고 이동할 경우, 사용자의 편의 또는 의도에 따라 디바이스의 진행 방향에 대한 틀어진 각도가 임의로 바뀔 수 있다. 예를 들어, 스마트폰 사용자가 스마트폰의 장축을 세로 방향(portrait mode) 또는 가로 방향(landscape mode)으로 파지(grip)하고 이동하는 경우 및 진행 방향으로부터 약 60도 정도 요(yaw)방향으로 스마트폰이 틀어진 상태로 이동하는 경우에, 스마트폰에 탑재된 가속도 센서만으로는 이 사이의 틀어진 각을 측정하기가 어렵다. 이에 따른 부정확한 각도 측정으로 인하여 위치 추정 또한 큰 오차가 발생될 수 있다.
예를 들어, 사용자가 디바이스를 들고 북쪽으로 걸어갈 경우 디바이스의 헤딩(heading)이 북쪽을 향하고 있다면 사용자의 이동 궤적은 북쪽으로 추정될 것이다. 그러나 동일한 상황에서 디바이스의 헤딩이 동쪽을 향하고 있다면 사용자는 북쪽을 향하여 걸어갔음에도 불구하고 사용자의 이동 궤적은 동쪽으로 추정되어 큰 위치 오차를 발생할 수 있다. 따라서 이 경우 사용자의 헤딩 및 디바이스의 헤딩 사이의 각을 추정하여 이를 보상해 주어야 한다.
디바이스의 진행 방향에 대한 디바이스의 틀어진 각을 측정하기 어려운 이유는 디바이스에 탑재된 가속도계가 중력축 가속도와 사용자가 이동하는 방향의 가속도 정보 및 수직축 방향의 가속도 정보를 모두 센싱하지만, 각각의 가속도 성분을 구분하지 못하기 때문이다.
종래에는 가속도 센서 및 자이로스코프(Gyroscope), 지자기 센서를 이용하여 센싱된 가속도 정보를 주파수 영역에서 해석하거나 또는 사용자의 이동 다이내믹(dynamic) 특성을 이용하여 사용자의 진행 방향에 대한 디바이스의 틀어진 각을 측정하였다.
사용자가 이동하기 위하여 발을 앞으로 내딛는 순간의 반작용 가속도 벡터를 이용해서 디바이스의 틀어진 각을 측정하는 방법은 센서 잡음으로 인하여 반작용 가속도 벡터를 구분하기 어려운 경우가 종종 발생됨으로 인하여 진행 방향에 대한 디바이스의 틀어진 각의 오차가 크게 발생되는 경우가 있다. 최종 측정 각도 정보를 저역통과필터(Low Pass Filter; LPF)를 이용하여 필터링함으로써 오차를 줄일 수 있지만 반면에 필터링으로 인한 측정 시간의 지연(delay)이 발생되는 문제점이 발생할 수 있었다.
본 개시에서는 사용자가 이동하는 경우의 움직임의 특징을 파악해서 가속도 센서만의 센싱 정보로부터 중력 가속도를 효율적으로 구분하는 방법을 제안한다. 제안되는 방법에 따라 측정하는 경우, 가속도 정보에서 중력 가속도 성분을 구분함으로써, 사용자의 진행 방향에 대한 디바이스의 틀어진 각을 기존의 방법들에 비해 보다 정확하게 계산할 수 있는 유리한 효과가 있다. 이는 휴대폰의 위치 추정 정확도를 높이고, 센싱 전력을 최소화함으로써 저전력으로 위치 추정을 수행하는 기술이다.
본 발명은 사용자의 이동방향 및 디바이스의 헤딩 방향 사이의 각을 결정하는 방법에 관한 것으로, 가속도 성분을 이용하여 디바이스의 회전각을 보다 정확하게 측정할 수 있다.
본 발명의 일 실시예에 따라 디바이스의 진행 방향에 대한 회전각을 결정하는 방법에 있어서, 상기 디바이스의 가속도 센서로부터 상기 디바이스의 움직임에 대한 가속도 정보를 획득하는 단계; 상기 디바이스의 상기 획득된 가속도 정보의 좌표를 변환하는 단계; 상기 디바이스의 상기 변환된 좌표 상에서의 가속도 정보를 필터링하는 단계; 및 상기 변환된 좌표 상에서의 중력축 가속도 정보를 이용하여 상기 디바이스의 진행 방향에 대한 회전각을 결정하는 단계;를 포함하고, 상기 중력축 가속도 정보는 상기 가속도 정보에서 상기 디바이스의 변환된 좌표 상에서의 수직축 가속도 성분이 최대인 시점에 대한 정보를 이용하여 도출될 수 있다.
바람직하게는, 상기 변환된 좌표 상에서의 수직축 가속도 성분이 최대인 시점은, 상기 획득된 가속도의 크기가 최대값을 가지는 시점과 동일할 수 있다.
바람직하게는, 상기 변환된 좌표 상에서의 수직축 가속도 성분의 최소값은, 상기 변환된 좌표 상에서의 상기 수직축 가속도 성분의 최대값을 가지는 시점에 대한 정보를 이용하여 도출될 수 있다.
바람직하게는, 상기 가속도 정보에 포함되는 수평축 가속도 성분은 상기 디바이스의 진행 방향에 대한 가속도 정보이고, 상기 수직축 가속도 성분은 상기 디바이스 및 수평면 간의 가속도 성분일 수 있다.
바람직하게는, 상기 획득된 가속도 정보의 좌표를 변환하는 단계는, 상기 가속도 정보를 디바이스 기준의 좌표계 상의 좌표에서 중력 방향 기준의 좌표계 상의 좌표로 변환하는 것을 특징으로 할 수 있다.
보다 바람직하게는, 상기 중력 방향 기준의 좌표계는 서로 직교하는 세 축을 포함하고, 상기 세 축 중 제1축은 중력 가속도 방향과 평행한 축일 수 있다.
보다 바람직하게는, 상기 세 축 중 제2축은 상기 디바이스 기준의 좌표계 상의 하나의 축을 롤(roll)각 회전하여 정의되고, 상기 세 축 중 제3축은 상기 디바이스 기준의 좌표계 상의 또 다른 하나의 축을 피치(pitch)각 회전하여 정의될 수 있다.
바람직하게는, 변환된 좌표 상에서의 상기 수직축 가속도 성분 및 수평축 가속도 성분은 동일한 주기값을 가지고 변할 수 있다.
바람직하게는, 상기 변환된 좌표 상에서의 수직축 가속도 성분 및 수평축 가속도 성분은 서로 90도의 위상차를 가질 수 있다.
보다 바람직하게는, 상기 수직축 가속도 성분이 상기 수평축 가속도 성분보다 90도 위상이 더 빠를 수 있다.
보다 바람직하게는, 상기 수직축 가속도 성분이 상기 수평축 가속도 성분보다 90도 위상이 더 느릴 수 있다.
바람직하게는, 상기 중력축 가속도 정보는, 상기 디바이스의 상기 변환된 좌표 상에서의 수직축 및 수평축 가속도 성분의 크기를 복수의 주기에 대하여 평균함으로써 도출될 수 있다.
바람직하게는, 상기 가속도 정보를 필터링하는 단계는, 상기 가속도 정보를 주파수 영역으로 변환하는 단계를 더 포함할 수 있다.
보다 바람직하게는, 상기 가속도 정보를 필터링하는 단계는, 상기 가속도 정보를 대역통과 필터링(bandpass filtering)하는 것을 특징으로 할 수 있다.
보다 바람직하게는, 상기 대역통과 필터링하는 단계는, 상기 주파수 영역으로 변환된 가속도 정보에서, 상기 디바이스의 다이내믹(dynamic) 특성을 이용하여 결정된 중심 주파수에 기초하여 필터링하는 것을 특징으로 할 수 있다.
보다 바람직하게는, 상기 디바이스의 다이내믹 특성은, 상기 디바이스 사용자가 상기 진행 방향으로 걷는(step) 자세에 의하여 획득될 수 있다.
본 발명의 또 다른 일 실시예에 따른 진행 방향에 대한 회전각을 결정하는 디바이스에 있어서, 상기 디바이스의 움직임에 대한 가속도 정보를 획득하는 가속도 센싱부; 상기 획득되는 가속도 정보를 저장하는 저장부; 및 제어부를 포함하고, 상기 제어부는, 상기 획득된 가속도 정보의 좌표를 변환하고, 상기 변환된 좌표 상에서의 가속도 정보를 필터링하며, 상기 변환된 좌표 상에서의 중력축 가속도 정보를 이용하여 상기 디바이스의 진행 방향에 대한 회전각을 결정하고, 상기 중력축 가속도 정보는 상기 가속도 정보에서 상기 디바이스의 변환된 좌표 상에서의 수직축 가속도 성분이 최대인 시점에 대한 정보를 이용하여 도출될 수 있다.
도 1 은 본 발명의 일 실시예에 따른 디바이스의 회전축을 도시한다.
도 2 내지 도 4 는 본 발명의 일 실시예에 따른 디바이스의 진행 방향에 대한 틀어진 상태를 도시한다.
도 5 는 본 발명의 일 실시예에 적용 가능한 좌표계들을 도시한다.
도 6 은 본 발명의 일 실시예에 따른 좌표 변환을 도시한다.
도 7 은 본 발명의 일 실시예에 따라 디바이스의 각도를 측정하는 과정을 도시한다.
도 8 은 본 발명의 일 실시예에 따른 사용자의 진행 방향에 따른 수직축 높이의 변화를 도시한다.
도 9 는 본 발명의 일 실시예에 따른 사용자의 진행 방향에 따른 수직축 속도의 변화를 도시한다.
도 10 은 본 발명의 일 실시예에 따른 사용자의 진행 방향에 따른 수직축 가속도의 변화를 도시한다.
도 11 은 본 발명의 일 실시예에 따른 사용자의 진행 방향에 따른 수평축 가속도의 변화를 도시한다.
도 12 는 본 발명의 일 실시예에 따라 사용자가 등속 이동하는 경우 및 감속 이동하는 경우를 도시한다.
도 13 은 본 발명의 일 실시예에 따라 좌표 변환 전후의 좌표계를 도시한다.
도 14 는 본 발명의 일 실시예에 따라 변환 후 좌표계에서 Z축 가속도를 실험적으로 나타낸 그래프이다.
도 15는 시뮬레이션에서 지역 좌표계에서 수직축 가속도의 최소값이 나타나는 시점이 가속도 크기의 최소값이 나타나는 시점과 다를 수 있음을 나타낸 그래프이다.
도 16 은 본 발명의 일 실시예에 따른 사용자의 진행 방향에 따른 가속도 성분을 필터링하는 방법을 도시한다.
도 17 은 본 발명의 일 실시예에 따른 좌표 변환 전의 좌표계에서 중력 가속도의 값을 실험적으로 나타내는 그래프이다.
도 18 은 본 발명의 일 실시예에 따라 필터링을 통한 잡음 제거 방법을 도시한다.
도 19 는 본 발명의 일 실시예에 따른 디바이스의 틀어진 각을 도시한다.
도 20 은 본 발명의 일 실시예에 따른 디바이스의 틀어진 각 측정의 오차값을 실험적으로 나타낸 그래프이다.
도 21 은 본 발명의 일 실시예에 따른 디바이스의 구성을 개념적으로 나타내는 블록도이다.
이하, 첨부된 도면을 참조하여 본 발명의 실시예들을 상세히 설명한다. 도면에서 동일한 참조부호는 동일한 구성요소를 지칭하며, 각 구성요소의 크기나 두께는 설명의 명료성을 위하여 과장되어 있을 수 있다.
본 개시에 있어서, 디바이스의 “회전각(rotating angle)”은 3차원 공간 상에서 위치하는 자세에 대하여 특정 좌표계를 기준으로 하는 각도를 의미한다. 3차원 공간 상에서 “틀어진 각”과 동일한 의미로 사용되며 본 개시에서 혼용될 수 있다. 또한, “회전각”은 임의로 결정되는 좌표계 상의 축과의 사이각으로 나타낼 수도 있다.
본 개시에 있어서, “동체 좌표계(body frame)”라 함은 디바이스를 기준으로 x, y 및 z 축으로 구성된 각 축은 서로 직교하는 좌표를 의미한다. 디바이스의 장축 방향을 x축으로 정의하고, 단축 방향을 y축으로 정의하며, 정의된 x축 및 y축에 의해서 오른손 법칙으로 정의되는 방향을 z축으로 정의한다. 오른손의 네 손가락락을 x축에서 y축 방향으로 감았을 경우, 엄지 손가락이 가리키는 방향이 z축이 된다. 즉, 스마트폰과 같은 디바이스의 위에서 아래로의 방향을 z축으로 정의한 좌표계이다.
본 개시에 있어서, “지역 좌표계(local frame)”라 함은 특정 3차원 좌표계를 지칭하는 좌표계이다. 지역 좌표계의 특성을 동체 좌표계와 연관하여 설명하면, 다음과 같다. 첫째로, 동체 좌표계(body frame)의 x축을 중심으로 -1 * 롤(roll)각만큼 회전시키는 경우 동체 좌표계의 y축이 중력 가속도 방향과 수직인 평면내 y’축으로 위치하게 된다. 이 y’축을 중심으로 -1 * 피치(pitch)각만큼 회전시키는 경우, x축이 중력 가속도 방향의 수직인 평면내 x’축으로 위치하게 된다. 결정된 x’및 y’축을 지역 좌표계의 x축 및 y축으로 각각 정의하여, x축 및 y축에 의하여 오른손 법칙으로 정의되는 방향을 Z축으로 하여 3개의 축을 정의하는 좌표계가 지역 좌표계가 된다.
지역 좌표계의 x, y 및 z 축 중에서 z 축은 중력 가속도와 평행한 방향을 가리키며, x축은 디바이스의 진행 방향과 일치하는 경우 0도를 나타내는 축이다. y축은 결정된 x 및 x축에 의하여 결정되는 축이며, 세 축은 서로 직교하는 특성을 가진다. 따라서, 지역 좌표계는 3차원 공간 상에서 서로 직교하는 3 축을 가지는 좌표계 중에서 본 개시에서 설명하는 특징을 포함하는 좌표계로 넓게 해석함이 바람직하다.
이하 도 1 내지 도 20를 참조하여, 본 발명의 일 실시예에 디바이스의 회전 각을 측정하는 방법에 대해 자세히 설명한다.
도 1 은 본 발명의 일 실시예에 따른 디바이스의 회전축을 도시한다.
디바이스는 3차원 공간 상에서 이동하므로, 공간 상에서 다양한 방향 및 각도로 위치할 수 있다. 모든 디바이스는 물리적으로 중심을 가지므로, 이 중심을 기준으로 3개의 축이 존재할 수 있다. 여기서 물리적 중심은 무게 중심, 기하학적으로 정의된 중심, 가속도 센서의 위치 등 다양하게 정의될 수 있다. 디바이스의 중심을 기준으로 앞뒤 방향, 좌우 방향, 상하 방향으로 3개의 축이 존재하며, 이 3개의 축은 임의로 정해지는 서로 직교하는 축이며, 디바이스의 물리적인 구조에 따라서 다르게 설정될 수 있다. 예를 들어, 디바이스가 스마트폰과 같은 직육면체의 구조인 경우에는 화면이 표시되는 표시부를 정면으로 하여 3개의 축을 설정할 수 있다. 반면에, 구(sphere)와 같은 형태의 디바이스로서 정면을 특정할 수 없는 경우에는 어떠한 방향을 기준으로 정하여도 무관할 수 있다.
도 1에 도시된 바와 같이, 스마트폰과 같은 디바이스의 3개의 축을 정하는 방법으로, 디바이스의 표시부를 정면으로 하여 표시부가 세로로 표시되도록 하는 포트레이트(portrait) 방향 기준으로, 디바이스의 중심을 기준으로 x, y 및 z축의 3개의 축을 정할 수 있다.
이와 같이 디바이스를 기준으로 x, y 및 z 축으로 구성된 각 축은 서로 직교하며 동체 좌표 또는 바디 프레임(Body frame)이라고 부를 수 있다. 동체 좌표계의 x, y 및 z 축은 스마트폰과 같은 디바이스에 고정되어 스마트폰의 3차원 공간상 자세가 변할 때 함께 변한다. 본 개시에서는 표기 상 x, y 및 z 축을 나타내는 XB, YB 및 ZB의 아래첨자는 Body frame의 첫 문자 “B”를 표시한다.
도 2 내지 도 4 는 본 발명의 일 실시예에 따른 디바이스의 진행 방향에 대한 틀어진 각도를 도시한다.
자동차, 지하철 등의 교통시설이 발전됨에 따라서, 사람들의 이동이 잦아지게 되었으며, 사람들은 이동 시에 스마트폰, 태블릿 PC 등과 같은 디바이스를 지참하는 경우가 많아지고 있다. 디바이스 사용자들은 이동 시에 디바이스에서 수행되는 다양한 어플리케이션을 이용하며 서비스를 이용할 수 있게 되었다. 위치 기반 서비스(Location Based Service; LBS)가 발달됨에 따라서, 사용자는 이동 중인 현재 위치에서 이용가능한 서비스를 즉각적으로 확인할 수 있으며, 원하는 서비스를 선택하여 이용할 수 있다. 또는 사용자들은 현재 위치와 무관하게 디바이스 내의 게임, 영화 등과 같은 콘텐츠를 재생할 수 있다.
사용자가 네비게이션 어플리케이션을 이용하는 경우, 디바이스의 진행 방향 및 이동 속도에 따라서 디바이스에 표시되는 정보가 달라질 수 있다. 또는 사용자가 게임 어플리케이션을 이용하는 경우, 사용자가 디바이스를 세로(Portrait)로 조작하는지 가로(Landscape)로 조작하는지에 따라서 제어 방법 및 표시 방법이 달라질 수 있다. 따라서, 디바이스에 대한 틀어진 각을 정확하게 측정하는 방법이 요구되고 있다. 여기서 디바이스에 대한 틀어진 각은 사용자의 진행 방향 벡터와 디바이스의 헤딩 벡터를 중력 벡터에 수직인 평면에서 해석하였을 때, 두 벡터의 사이각을 의미한다.
도 2에 도시된 바와 같이, 사용자는 디바이스를 진행 방향과 동일한 방향으로 디바이스의 장축을 일치시킨 상태로 파지하고 이동할 수 있다. 사용자가 포트레이트(디바이스의 장축 방향이 헤딩이 되는 방향) 방식으로 디바이스의 화면을 보고 파지하면서 이동할 수 있다.
예를 들어, 사용자가 스마트폰 디바이스의 네비게이션 어플리케이션을 실행하여 길을 안내받으면서 이동하는 경우, 사용자(또는 디바이스)의 진행 방향과 동일한 방향으로 디바이스의 헤딩 벡터를 일치시킬 수 있다.
도 3에 도시된 바와 같이, 사용자는 디바이스를 사용자(또는 디바이스)의 진행 방향과 수직인 방향으로 헤딩 벡터를 일치시킬 수 있으며, 디바이스를 랜드스케이프(디바이스의 단축 방향이 헤딩 방향이 되는 방향) 방식으로 화면을 보면서 이동할 수도 있다. 이 경우는 앞서 설명한 도 2와는 다르게 사용자(또는 디바이스)의 진행 방향에 대한 디바이스의 회전 상태가 다름을 알 수 있다.
도 4에 도시된 바와 같이, 사용자는 사용자(또는 디바이스)의 진행 방향과 디바이스의 축을 일치시키지 않고 임의로 틀어진 각을 유지하며 이동할 수 있다. 예를 들어, 사용자가 디바이스를 가방이나 바지 주머니 속에 넣은 상태에서 네비게이션 어플리케이션으로부터 음성 신호로 길 안내 서비스를 이용하면서 걸을 수 있다. 이 경우, 가방이나 바지 주머니 속에서 디바이스의 헤딩 벡터가 진행 방향에 대해 일치하도록 고정되지 않을 수 있다.
도 5 는 본 발명의 일 실시예에 적용 가능한 좌표계들을 도시한다.
디바이스의 틀어진 각을 측정하기 위해서 디바이스에서 다양한 센서들로부터 정보를 수신하며, 수신된 정보들을 가공하여 원하는 각도 정보를 획득할 수 있다. 이 때, 각도 정보들은 다양한 좌표계 상에 표현될 수 있으며, 어떠한 좌표계 상에 표현되는지에 따라서 각도를 측정하는 기준이 달라질 수 있다. 따라서, 다양한 좌표계 상에서 표현되는 정보들을 서로 호환 가능하도록(compatible) 가공할 필요가 있다.
보행자 추측 항법(Pedestrian Dead Reckoning; PDR)의 좌표계의 일 예로 동체 좌표계(Body frame) 또는 지역 좌표계(Local frame)를 설명할 수 있다. 다양한 좌표계가 존재하며, 본 개시에서 설명하는 상기 두 좌표계로 제한되지 않음에 유의하며, 설명의 편의상 두 좌표계를 예로서 설명한다.
도 5(a)는 본 발명의 일 실시예에서 지역 좌표계(Local frame)를 정의하기 위해 임의의 자세를 갖는 동체 좌표계(Body frame)를 도시한다. 도 5(a)에서 지역 좌표계의 YL축은 동체 좌표계의 XB축을 중심으로 동체 좌표계의 YB축과 ZB축을 회전시켰을 때, 동체 좌표계의 YB축이 중력 방향에 수직인 평면에 평행인 벡터로 정의할 수 있다. 즉, 지역 좌표계의 YL축은 중력 가속도 벡터와 수직일 수 있다. 이 경우, 회전 방법은 2가지 경우가 있을 수 있으며, 회전 변환된 동체 좌표계의 ZB축과 중력 가속도 벡터의 사이각이 90도를 넘지 않는 방향으로 회전시킨다. 이를 도 5(b)와 같이 도시할 수 있다. 지역 좌표계의 XL축은 도 5(b)의 지역 좌표계의 YL축을 중심으로 동체 좌표계의 XB축과 ZB축을 회전시켰을 때, 동체 좌표계의 XB축이 중력 방향에 수직인 평면에 평행인 벡터로 정의할 수 있다. 이 경우, 회전 방법은 2가지 경우가 있을 수 있으며, 회전 변환된 동체 좌표계의 ZB축이 중력 가속도 방향과 일치하도록 회전할 수 있다. 따라서, 지역 좌표계의 ZB축은 자연스럽게 중력 가속도 방향으로 정의된다. 이를 도 5(c)와 같이 도시할 수 있다.
지역 좌표계의 원점은 동체 좌표계에서 정의된 원점과 동일하며, 지역 좌표계에서 XL, YL 및 ZL의 아래첨자는 Local frame의 첫 문자 “L”을 표시할 수 있다. 따라서 지역 좌표계에서는 도 5(c)에서와 같이 ZL축이 중력 가속도축과 평행하므로, ZL축만 중력 가속도가 센싱될 수 있다. 지역 좌표계 역시 세 축은 서로 직교하며, 3차원 좌표계 상에서 지역 좌표계와 동체 좌표계 사이의 틀어진 자세 정보로부터 중력 가속도에 수직인 수평면 상 사용자의 진행 방향에 대한 디바이스의 방향 및 틀어진 각을 표현할 수 있다.
지역 좌표계 및 동체 좌표계에서의 자세를 알기 위해서는 지역 좌표계를 기준으로 롤(roll), 피치(pitch), 요(yaw) 각이 정의되어야 한다. 먼저 롤(Roll)에 대하여 설명하면, 좌표계의 좌우 방향의 축(y축)에 따른 직선운동에 따른 앞뒤 방향의 축(x축) 주변에서 일어나는 회전 운동을 롤링(rolling)이라고 한다. 피치(Pitch)에 대하여 설명하면, 좌표계의 x축에 따른 직선 운동에 의해 일어나는 좌우 방향의 축(y축) 주변에서 일어나는 회전 운동을 피칭(pitching)이라고 칭한다. 요(Yaw)에 대하여 설명하면, 좌표계의 수직 방향의 축(z축)을 중심으로 한 회전 운동을 요잉(yawing)이라고 한다.
도 5(d)에서 두 좌표계의 원점이 일치한 상태에서 먼저 요(yaw) 각은 오른손 법칙에 의해 ZL축을 오른손으로 감쌀 때 손바닥에서 손가락으로 감싸는 방향이 양의 방향이며 요 각의 부호를 결정하고, 회전량이 바로 요각의 크기를 결정할 수 있다. 여기서 지역 좌표계는 동체 좌표계로부터 Z축 회전 변환이 없기 때문에 요 각은 항상 0으로 정의될 수 있다. 피치각 및 롤각은 각각 YL축 및 XL축을 기준으로 요각과 마찬가지 방법인 오른손 법칙에 의해 결정된다. 지역 좌표계에서 동체 좌표계로 변환하기 위해서는 변환 순서를 정의하는 것이 중요하며, 본 발명에서는 지역 좌표계를 중심으로 요, 피치, 롤 순으로 변환하도록 정의하였다. 그 이유는 동체 좌표계에서 지역 좌표계로 변환할 때 -1 * 롤각, -1 * 피치각, 0 * (-1 * 요각) 순서로 정의하였기 때문이다. 이러한 변환 순서는 좌표변환의 정의에 따라 달라질 수 있으며 정의만 다를 뿐이며 동체 좌표계와 지역 좌표계 변환 결과(즉 각 좌표계에서의 자세)가 달라지지는 않는다.
동체 좌표계 및 지역 좌표계는 서로 동일한 공간에 대하여, 어느 방향을 양의 방향으로 정할 것인지에 대한 선택의 문제일 뿐인 점에 유의할 필요가 있다. 모든 물리 법칙이 동일하게 적용되는 좌표계에서는 모두 동등한 좌표계이므로, 좌표계 간에는 서로 변환이 가능하다. 또한 좌표 변환 방법에 있어서 좌표계를 어떻게 정의하고, 롤, 피치, 요각을 어떻게 정의하였는지 그리고 좌표변환 순서를 어떻게 정의하였는지에 따라 변환 절차 및 변환 수식은 바뀔 수 있지만 표현만 다를 뿐이며 좌표 변환의 의미는 동일하다.
도 6 은 본 발명의 일 실시예에 따른 좌표 변환을 도시한다. 도 6에서는 디바이스의 움직임이 없는 상태에 대해 중력가속도만을 고려해서 좌표변환을 하는 방법을 설명한다.
도 6에 도시된 바와 같이, 동체 좌표계 상에 표현된 가속도 성분은 지역 좌표계에서도 표현이 가능하다. 마찬가지로, 지역 좌표계 상에 표현된 정보는 동체 좌표계 상으로 변환하여 표현할 수 있다. 좌표계 간의 변환은 동체 좌표계에 센싱되는 중력 가속도 값에 따라서 달라질 수 있다.
동체 좌표계에서는 일반적으로 XB축, YB축 및 ZB축의 3개의 축에 대하여 중력 가속도 GB가 축 별로 정사영(orthogonal projection)되어 센싱되며 여기서 아래첨자 B는 동체 좌표계(Body frame)를 의미한다. 따라서, 중력 가속도 GB는 3개의 축에 대하여 gx, gy 및 gz의 3개의 성분으로 구분될 수 있다. 즉, 중력 가속도 GB는 3개의 축에 대한 각각의 가속도 성분으로 표현되며, 하기의 수학식 1과 같다.
Figure 112014119922430-pat00001
GB에서 윗첨자 T는 벡터의 전치(Transpose)를 나타내며 GB는 크기가 3 x 1 벡터를 의미한다. 정의된 좌표계에 따라 가속도 성분이 달라질 수 있으며, 본 개시에서는 중력 가속도 GB를 중력 가속도 축 상의 하나의 가속도 성분으로 구분할 수 있는 지역 좌표계로의 변환(GB에서 GL로의 변환)을 중점적으로 설명하기로 한다.
좌표계 간에 표현되는 정보를 변환하기 위해서는 변환 행렬을 이용할 수 있다. 변환 행렬 C를 이용하여 좌표 변환을 수행하는 것은 하기의 수학식 2에서와 같다.
Figure 112014119922430-pat00002
도 6에 따르면, 상기의 수학식 2에서 GB의 좌표계는 동체 좌표계이고, GL의 좌표계는 지역 좌표계이다. 동체 좌표계를 지역 좌표계로 변환하는 이유로 다양한 원인이 있을 수 있다. 좌표 변환의 하나의 이유로, 동체 좌표계는 스마트폰 등과 같은 동체 디바이스 상의 센싱부를 통하여 획득되는 정보인 경우가 많으며, 지역 좌표계는 항법(navigation) 기술에 많이 이용되는 항법 좌표계(navigation frame)와 요각의 차이를 제외하면 동일한 개념으로서 사용자의 위치를 쉽게 이해하고 계산하는 등의 목적으로 좌표 변환을 수행할 필요가 있다.
동체 좌표계의 경우, X축, Y축 및 Z 축에 대하여 중력 가속도 GB 의 성분이 모두 포함될 수 있다. 따라서, 사용자가 이동할 때 발생되는 가속도가 존재하는데 동체 좌표계에서는 개념적으로 쉽게 중력 가속도 성분과 중력 가속도 이외의 성분을 명확하게 구분하지 못하므로, 디바이스에서 틀어진 각을 정확하게 측정하지 못하는 문제가 있다. 이에 반하여, 지역 좌표계의 경우, 중력 가속도 성분 GB 만을 구분하여 중력 가속도는 지역 좌표계의 수직 축(ZL)에만 나타나고 중력 가속도에 수직인 수평면 상에서, 즉 XL축, YL축에 대한 사용자의 진행 방향 가속도 성분을 쉽게 표현할 수 있는 점에서 사용자의 진행 방향에 대한 디바이스의 틀어진 각을 정확하게 측정할 수 있는 유리한 효과가 있다.
따라서, GB 의 좌표계를 동체 좌표계로, GL 의 좌표계를 지역 좌표계로 표현하여 좌표 변환을 하는 경우, 하기의 수학식 3과 같다.
Figure 112014119922430-pat00003
상기의 수학식 3에 대하여 좌표 변환 행렬을 구체화하면 하기의 수학식 4와 같다.
Figure 112014119922430-pat00004
(φ는 롤(roll) 각, θ는 피치(pitch) 각, ψ는 요(yaw) 각)
도 6에 도시된 동체 좌표계에서의 롤 및 피치 각은 하기의 수학식 5 내지 수학식 6에 의해서 도출될 수 있다. 상기 수학식 4에서 동체 좌표계 및 지역 좌표계 간에는 z축 회전 변환이 없기 때문에 요(yaw)각은 0 이 된다.
Figure 112014119922430-pat00005
Figure 112014119922430-pat00006
상기의 수학식 4에 의해서 좌표가 변환될 때, 계산되는 가속도 성분이 중력축 가속도 성분만을 포함할 경우에 정확한 롤, 피치, 요각 계산이 가능하지만, 실질적으로 가속도 성분에는 중력축 가속도 성분 이외에 수직축 가속도 성분 및 수평축 가속도 성분을 포함하게 되어, 좌표 변환에 오차가 발생될 수 있는 문제가 있다. 따라서, 디바이스에서 센싱되는 가속도 정보에 대하여 중력축 가속도 성분을 정확하게 분리할 수 있는 방법이 요구되고 있다.
도 7 은 본 발명의 일 실시예에 따라 디바이스의 회전각을 결정하는 과정을 도시한다.
단계 S710에서, 디바이스는 가속도 센서로부터 디바이스의 움직임에 대한 가속도 정보를 수신할 수 있다. 디바이스 상에 내장된 가속도 센서에 의해 센싱되는 가속도 정보를 획득할 수 있으며, 이 가속도 정보는 중력축 가속도 성분, 수직축 가속도 성분 및 수평축 가속도 성분을 포함할 수 있다.
본 개시에서의 수직축 가속도 성분이라 함은, 디바이스의 사용자가 이동하면서 발생하는 높이 변화에 의한 가속도 성분을 의미하며, 수평축 가속도 성분이라 함은 사용자(또는 디바이스)가 이동하는 진행 방향에 대한 가속도 성분을 의미한다.
단계 S720에서, 디바이스는 가속도 정보에서 중력축 가속도 정보만을 이용하여, 디바이스의 좌표를 변환할 수 있다. 가속도 정보는 중력축 가속도 성분 이외에, 수직축 및 수평축 가속도 성분을 포함하고 있으나, 중력 가속도 성분만을 구분하여 이용할 수 있다. 디바이스 상에서 수신되는 가속도 성분이 동체 좌표계 상에 표현된 경우 좌표 변환을 통하여 동체 좌표계로 표현할 수 있다.
단계 S730에서, 디바이스는 지역 좌표계 상에 표현된 가속도 정보에 대하여 필터링을 수행하여 센서 잡음 정보를 제거할 수 있다. 사용자의 움직임에 따라서 가속도계에서 센싱하는 가속도 성분의 수직축 및 수평축 가속도 성분은 일정한 주기를 가지며 변할 수 있으므로, 수직축 및 수평축 가속도 성분의 주파수를 계산하여 대역통과필터(Band Pass Filter; BPF) 상에서 필터링 할 수 있다. 디바이스는 가속도 크기의 주파수로부터 도출하는 방식으로 주파수를 계산할 수 있다. 사용자가 앞으로 이동할 경우 다이내믹(Dynamic)에 의한 특성으로써 수직축 및 수평축 가속도의 주파수는 가속도계 크기의 주파수와 동일한 주파수를 가진다.
이때의 수평축 가속도 정보는 상기 디바이스의 진행 방향에 대한 가속도 정보이고, 상기 수직축 가속도 정보는 상기 디바이스 및 수평면 간의 가속도 정보일 수 있다.
이하에서는, 사용자의 진행 방향에 따른 디바이스 상에서 각 축으로의 가속도 성분 변화를 분석하여, 디바이스의 틀어진 각(회전각)을 결정하는 방법을 설명하기로 한다.
도 8 은 본 발명의 일 실시예에 따른 사용자의 진행 방향에 따른 수직축 높이의 변화를 도시한다.
도 8에 도시된 바와 같이, 사용자는 일정한 방향(수평축 방향)으로 이동할 수 있다. 사용자는 두 다리(7 및 8)를 이용하여 걷게 되므로 두 다리의 교차되는 걸음에 따라서 중심이 변하게 된다. 사ㅌ용자의 중심이 변함에 따라서 사용자가 파지하거나 사용자와 함께 이동하는 디바이스 역시 그 중심이 바뀌게 된다. 따라서, 디바이스의 가속도 성분은 사용자의 이동에 따라서 변하게 된다.
따라서, 사용자의 진행 방향에 따른 가속도 성분의 변화를 분석하기 위하여 사용자의 걸음 패턴의 각 시점에 대하여 설명하고자 한다. 먼저, 수직축 가속도 성분에 대한 분석을 위하여, 사용자의 허리의 높이 변화를 설명하기로 한다.
시점 1에서, 사용자는 진행 방향에 대하여 사용자의 오른쪽 다리(8)를 디딛는다. 사용자가 오른쪽 다리(8)를 앞으로 내딛는 경우, 상대적으로 왼쪽 다리(7)는 뒤에 위치하게 되며 왼쪽 다리(7) 및 오른쪽 다리(8)간의 거리차에 의해서 사용자의 허리(6)의 높이는 가장 낮은 높이를 가진다.
시점 2에서, 사용자가 진행 방향에 대하여 오른쪽 다리(8)를 이용하여 내딛는 경우, 왼쪽 다리(7) 및 오른쪽 다리(8)가 서로 교차하는 시점이 발생한다. 이 경우에는 왼쪽 다리(7) 및 오른쪽 다리(8)가 교차하므로 사용자의 허리(6)의 높이는 앞서 시점 1에 비해서 점점 높아져서 최대값을 가진다.
시점 3에서, 왼쪽 다리(7) 및 오른쪽 다리(8)가 서로 교차한 이후에는 왼쪽 다리(7)가 앞으로 오면서 오른쪽 다리(8)는 상대적으로 뒤에 위치하게 된다. 이 경우에는 앞서 시점 1과 마찬가지로, 왼쪽 다리(7) 및 오른쪽 다리(8)간의 거리차에 의해서 사용자의 허리(6) 높이가 다시 낮아져서 최소값을 가진다.
시점 4에서, 왼쪽 다리(7) 및 오른쪽 다리(8)가 서로 교차하는 시점이 발생한다. 이 경우에는 왼쪽 다리(7) 및 오른쪽 다리(8)가 교차하므로 사용자의 허리(6)의 높이는 앞서 시점 3에 비해서 점점 높아지게 되고, 시점 2에서의 높이와 같아지게 된다.
시점 5는 앞서 설명한 시점 1과 동일한 유형을 가진다. 사용자는 진행 방향에 대하여 사용자의 오른쪽 다리(8)를 디딛는다. 사용자가 오른쪽 다리(8)를 앞으로 내딛는 경우, 상대적으로 왼쪽 다리(7)는 뒤에 위치하게 되며 왼쪽 다리(7) 및 오른쪽 다리(8)간의 거리차에 의해서 사용자의 허리(6)의 높이는 가장 낮은 높이를 가진다.
시점 1, 시점 3, 시점 5에서 사용자의 높이의 변화를 분석해보면, 시점 1, 시점 3, 시점 5의 패턴이 동일함을 알 수 있으며, 시점 1부터 시점 4까지를 하나의 주기로 시간의 흐름에 따른 사인파(sine wave) 또는 코사인파(cosine wave)와 유사한 형태의 패턴으로 허리 높이가 변하는 것을 알 수 있다. 이 때, 사용자 허리의 높이는, 두 다리가 서로 교차하는 시점 2 및 시점 4에서 최대값을 가지며, 두 발이 서로 최대의 거리차를 가지는 시점 1, 시점 3, 시점 5에서 최소값을 가진다.
도 9 는 본 발명의 일 실시예에 따른 사용자의 진행 방향에 따른 수직축 속도의 변화를 도시한다.
거리를 시간에 대하여 미분하여 속도를 도출할 수 있으므로, 상기 도 8에서의 사용자 허리의 높이 변화를 시간에 대하여 미분하면 수직축 속도 성분을 도출할 수 있다. 따라서, 도 9에서는 시간의 흐름에 따른 수직축 속도의 변화를 분석하고자 한다.
먼저, 시점 1 및 시점 2 사이의 구간에서는 사용자의 허리 높이가 증가하며 수직축 속도는 0을 기준(정지 상태에서 이동하는 것을 전제로 한다)으로 양의 값을 가진다. 속도의 최대값은 두 시점의 중간 시점에서 가지며, 최대값을 가진 이후에는 수직축 속도는 감소한다.
시점 2 및 시점 3 사이의 구간에서는 사용자 허리의 높이가 최대에서 최소로 감소하는 구간에 해당되며, 수직축 속도는 음의 값을 가진다. 속도의 최소값은 두 시점의 중간 시점에서 가지며, 최소값을 가진 이후에는 다시 수직축 속도는 증가한다.
시점 3 및 시점 4 사이의 구간에서는 사용자 허리의 높이가 최소에서 최대로 다시 증가하는 구간에 해당되며, 수직축 속도는 양의 값을 가진다. 속도의 최대값은 두 시점의 중간 시점에서 가지며, 최대값을 가진 이후에는 다시 수직축 속도는 감소한다.
시점 4 및 시점 5 사이의 구간에서는 사용자 허리의 높이가 최대에서 다시 최소로 감소하는 구간에 해당되며, 수직축 속도는 음의 값을 가진다. 속도의 최소값은 두 시점의 중간 시점에서 가지며, 최소값을 가진 이후에는 다시 수직축 속도는 증가한다.
시점 1 내지 시점 5 사이의 구간에서의 수직축 속도의 변화 또한 시간의 흐름에 따른 사인파 또는 코사인파와 유사한 형태의 패턴을 가진다. 수직축 속도는 시점 1 및 시점 2의 중간 시점 및 시점 3 및 시점 4의 중간 시점에서 최대값을 가지며, 시점 2 및 시점 3의 중간 시점 및 시점 4 및 시점 5의 중간 시점에서 최소값을 가진다.
도 10 은 본 발명의 일 실시예에 따른 사용자의 진행 방향에 따른 수직축 가속도의 변화를 도시한다.
거리를 시간에 대하여 미분하여 속도를 도출하고, 속도를 시간에 대하여 다시 미분하여 가속도를 도출할 수 있으므로, 상기 도 9에서의 사용자 중심의 수직축 속도 변화를 시간에 대하여 미분하여 수직축 가속도 성분을 도출할 수 있다. 따라서, 도 10에서는 시간의 흐름에 따른 수직축 가속도의 변화를 분석하고자 한다.
먼저, 시점 1 및 시점 2 사이의 구간에서는 시간에 대한 속도의 미분값인 가속도의 값이 양에서 음으로 감소한다. 시점 2 및 시점 3 사이의 구간에서는 시간에 대한 속도의 미분값인 가속도의 값이 음에서 다시 양으로 증가한다.
시점 3 및 시점 4 사이의 구간에서는 앞서 설명한 시점 1 및 시점 2 사이의 구간과 동일한 패턴을 가지므로 이를 참조하기로 한다.
시점 4 및 시점 5 사이의 구간에서는 앞서 설명한 시점 2 및 시점 3 사이의 구간과 동일한 패턴을 가지므로 이를 참조하기로 한다.
시점 1 내지 시점 5 사이의 구간에서의 수직축 가속도의 변화 또한 시간의 흐름에 따른 사인파 또는 코사인파와 유사한 형태의 패턴을 가진다. 수직축 가속도는 시점 1, 시점 3, 시점 5에서 최대값을 가지며, 시점 2 및 시점 4 에서 최소값을 가진다. 또한, 사용자 허리 높이 변화 및 수직축 가속도 변화는 서로 180도 위상차를 가짐을 알 수 있다. 수직축에 대한 사용자의 높이, 속도 및 가속도는 상기의 시점 1 및 시점 3까지의 구간을 하나의 주기로 하여 반복하며, 최대값 및 최소값을 반복하여 가지는 사인파 또는 코사인파와 유사한 형태로 도시할 수 있다.
앞서 도 8 내지 도 10에서 수직축 가속도 변화에 대하여 검토한 것과 마찬가지로, 사용자의 진행 방향에 대한 수평축 가속도 변화를 검토하기로 한다.
도 11 은 본 발명의 일 실시예에 따른 사용자의 진행 방향에 따른 수평축 가속도의 변화를 도시한다. 수평축은 사용자의 이동방향과 동일하므로, 거리 및 속도에 대한 분석은 생략하기로 한다.
시점 1 및 시점 2 사이의 구간에서는 수평축 가속도 성분은 음의 값을 가진다. 즉, 사용자의 진행 방향으로의 속도는 점점 감소하는 형태를 가진다. 이는 앞으로 내딛는 오른쪽 다리(8)에 의해서 두 다리가 교차할 때까지 왼쪽 다리(7)를 끌어오는 구간이기 때문에 속도가 감소하게 된다.
시점 2 및 시점 3 사이의 구간에서는 내딛는 오른쪽 다리(8)에 사용자의 무게가 더해지면서 진행 방향으로 추진하므로 가속도 값은 양의 값을 가진다. 이는 사용자의 무게 중심이 오른쪽 다리 앞쪽에 위치하기 시작하는 시점이며, 가속도가 양인 이유는 바닥에 닿은 다리가 동일한 힘을 주어 몸을 밀었을 때 사용자의 무게 중심이 뒤에 있는 것보다 앞에 있는 경우 더 큰 수평축 추진력을 낼 수 있다는 관점에서 해석이 가능하다. 이전(시점 1 및 시점 2 사이) 구간에서는 사용자의 무게 중심이 바닥에 닿은 오른쪽 다리(8)보다 뒤에 있으며, 왼쪽 다리(7)는 공중에 떠 있는 상태이기 때문에, 만약 이 구간에서 추진력이 발생하려면 사용자의 무게 중심을 중력에 반하여 위 방향으로 끌어 올리기 위해서 바닥에 닿은 다리가 수평축 이외에 수직축으로도 힘을 써야 한다. 즉 중력에 반하는 또다른 힘이 필요하다. 따라서 이 구간에서는 사용자가 힘을 주어 앞으로 진행하는 것보다 몸이 앞으로 나아가려는 관성을 이용해서 진행하는 것이 유리하다. 반면에 시점 2 및 시점 3 사이의 구간에서는 사용자의 무게 중심의 수직축 진행 방향이 중력 방향과 동일한다. 따라서 이 구간에서는 사용자가 수평축으로 진행할 때 발생되는 수평축 가속도에 무게 중심이 자유낙하할 때 발생되는 수직축 가속도가 더해지기 때문에, 이전 구간보다 더 적은 힘으로 이전 구간에 비해 더 큰 이동 효과를 볼 수 있다.
시점 3 및 시점 4 사이의 구간은 앞서 설명한 시점 1 및 시점 2 사이의 구간과 동일한 형태를 나타내며, 시점 4 및 시점 5 사이의 구간은 시점 2 및 시점 3 사이의 구간과 동일한 형태를 나타내므로 구체적인 설명은 생략한다.
수평축 가속도 성분 또한 수직축 가속도 성분과 마찬가지로 시간에 대하여 일정한 주기를 가지며 최대값 및 최소값을 반복하여 가지는 사인파 또는 코사인파와 유사한 형태로 나타낼 수 있음을 알 수 있다. 이러한 해석적 관점에서 수평축 가속도 수직축 가속도와 위상이 90도로 서로 직교하는 형태를 가진다.
도 11에서 유의해야 할 점은, 양의 수평축 가속도 성분의 최대값은 음의 수평축 가속도 성분의 최소값의 절대값보다 크며, 이는 사용자가 앞으로 진행할 때 가속하였음을 의미한다.
도 12는 사용자가 등속 이동을 하는 경우(26)와 감속을 하는 경우(32)를 각각 나타낸 것이다.
등속 이동을 하는 경우(26)에서 시점 2 및 3의 구간의 가속도 절대값의 크기가 시점 1 및 2의 구간의 가속도 절대값의 크기와 같은 이유는 사용자의 진행 방향의 가속도가 진행방향의 반대 가속도와 비슷하기 때문이다. 즉 등속도 운동을 한 경우이다. 시점 3 및 시점 5 사이의 구간은 시점 1 및 시점 3 사이의 구간과 동일한 형태를 나타내므로 구체적인 설명은 생략한다.
감속을 하는 경우(32)에서 시점 1 및 2의 구간의 가속도 절대값의 크기가 시점 2 및 3의 구간의 가속도 절대값의 크기보다 큰 이유는 사용자가 감속하여 진행방향의 반대 방향 가속도가 진행방향의 가속도보다 더 큼을 의미한다. 시점 3 및 시점 5 사이의 구간은 시점 1 및 시점 3 사이의 구간과 동일한 형태를 나타내므로 구체적인 설명은 생략한다.
앞서 도 8 내지 도 12에서 수직축 가속도 성분 및 수평축 가속도 성분을 분석하였다. 디바이스의 가속도계에서는 상기의 수직축 가속도 성분 및 수평축 가속도 성분 이외에 중력축 가속도 성분이 포함된 가속도 성분을 센싱되므로, 중력축 가속도 및 상기의 수직축/수평축 가속도 성분을 명확하게 구분할 필요가 있다.
디바이스의 회전각 즉, 롤, 피치 및 요 각을 분석하기 위해서는 수식 4 내지 수식 6에서와 같이 지역 좌표계 상에서 중력축 가속도를 이용하여야 한다. 따라서, 디바이스의 가속도계에서 센싱하는 가속도 정보에서 중력축 가속도 성분을 분리하여야 정확한 롤, 피치각 계산이 가능하다.
본 개시에서는, 디바이스의 가속도계에서 센싱되는 가속도 성분에서 중력축 가속도 성분만을 분리하는 방법에 대하여 중점적으로 설명하고자 한다. 상기의 도 11을 참조하여 검토하기로 한다.
도 11에서, 수직축 가속도 성분 및 수평축 가속도 성분은 서로 90도의 위상차를 가지며 최대값 및 최소값을 나타내는 사인파 그래프로 나타낼 수 있다. 이 때, 수직축 가속도 성분이 최대값인 시점에서는 수평축 가속도 성분이 0 값을 나타냄을 알 수 있다. 즉 도면에서 시점 1 및 시점 3에서 수직축 가속도 성분은 최대값을 나타낸다. 각 시점 간의 간격은 일정하므로, 시점 1 및 시점 3의 중앙인 시점 2에서는 수직축 가속도 성분이 최소값을 가짐을 도출할 수 있다.
디바이스의 제어부는 시점 1 및 시점 2에서의 수직축 가속도 성분 및 수평축 가속도 성분을 병합하는 방법을 통하여 중력축 가속도 성분을 구할 수 있다. 즉, 수직축 가속도가 최대값인 시점 1에서 수평축 가속도는 0 값을 가지고, 수직축 가속도가 최소값인 시점 2에서도 수평축 가속도는 0 값을 가지므로, 이 두 시점의 가속도 성분의 평균 가속도 값을 계산하면 수직축 가속도 성분 또한 0 값을 가진다. 따라서, 이 두 시점의 평균값으로부터 중력축 가속도 성분만을 분리할 수 있다. 중력축 가속도 성분을 이용하여 디바이스의 롤 각 및 피치 각을 도출할 수 있다.
수직축 가속도 성분이 최대값을 가지는 시점은 디바이스의 가속도계에서 센싱되는 가속도 크기가 최대값을 가지는 시점과 동일하다. 이하에서는, 지역 좌표계에서 표현된 수직축 가속도 성분이 최대값을 가지는 시점과 지역 좌표계에서 표현된 가속도 크기가 최대값을 가지는 시점이 서로 동일함을 증명하기로 한다.
시간 t에 대하여 가속도의 크기를 f(t)로 하였을 때, 가속도의 크기의 제곱 F(t)는 지역 좌표계에서 하기의 수학식 7과 같이 나타낼 수 있다.
Figure 112014119922430-pat00007
상기의 수학식 7에 대하여 AccX2 + AccY2 + AccZ2 값을 대입하는 경우, 수학식 8과 같이 표현할 수 있다.
도 13은 도 8 내지 도 12의 도면에서 사용한 좌표계(A) 및 지역 좌표계(L)를 나타낸 것이다. 도면 11을 예로 들면 사용자의 초기 위치(1)부터 사용자의 최종 위치(5)까지의 시간구간에 대해서, 사용자의 초기 위치를 원점으로 정의하면 수직축 가속도(11)는
Figure 112014119922430-pat00008
로, 수평축 가속도(12)는
Figure 112014119922430-pat00009
로 표현된다. 따라서 도 13에서 좌표계 A에서 표현된 가속도의 크기를 제곱하면 하기 수학식 8로 표현된다.
Figure 112014119922430-pat00010
상기 수학식 8에서 f는 사용자의 걸음 주파수, π는 원주율, t는 시간, g는 중력 가속도를 의미하고, 0보다 큰 값이다. a 값은 사용자의 진행 방향에 대한 최대 가속도 값을 나타내며 0보다 크고, b 값은 사용자가 이동하는 경우 중력가속도를 제외한 수직축 최대 가속도 값을 나타낸다.
상기 수학식 8을 지역 좌표계에서 표현하면, 수직축 가속도 성분의 부호만 바뀌며 하기 수학식 9와 같이 나타낼 수 있다. 여기서 주의할 점은 도 13에서 표현된 두 좌표계에서 가속도의 크기는 모두 동일하지만 수직축 성분은 부호가 반대인 점이다.
본 개시에서는 사용자(또는 디바이스)의 진행 방향을 기준으로 가속도 정보를 획득하고 계산하였으나, 본 발명은 이에 한정되는 것은 아니며, 사용자의 진행 방향의 반대 방향을 기준으로 가속도 정보를 계산할 수도 있으며, 이에 따라서 가속도의 방향에 대한 양 또는 음의 값을 적절히 변환하여 회전각을 결정할 수 있다. 본 개시에서는 진행 방향의 반대 방향에 대하여 회전각을 결정하는 방법에 대하여 진행 방향에 대하여 회전각을 결정하는 방법 내의 가속도 정보 및 수학식 등을 적절히 변형하는 것도 가능함에 유의할 필요가 있다.
도 14는 사용자가 디바이스의 자세인 동체 좌표계를 지역 좌표계로 일치시키고, 사용자의 진행 방향을 지역 좌표계의 X축과 일치시키고 걸어갔을 때 지역 좌표계에서 X축 진행 방향 가속도 및 중력 가속도를 제거한 Z축 가속도를 실험적으로 나타낸 그래프이다.
도 14에 도시된 바와 같이, 센서 잡음이 일부 포함되었지만 두 가속도는 서로 직교한다. 도 11의 수직축 가속도가 시간축으로 대칭이 되는 이유는 도 13에서 설명한 바와 같이, 지역 좌표계의 수직축 방향이 도면의 수직축 방향과 반대이기 때문이다. 도 14에서 수평축 가속도의 크기는 사용자가 가속, 등속, 감속을 할 경우, 가속도의 절대값의 최대값을 의미한다. 도 14에서 중요한 점은 수직축 가속도의 크기가 수평축 가속도의 크기 보다 크다는 점이다. 이는 여러 실험 결과들을 통해 확인되었으며 본 발명에서 제안한 과정을 하기 수식을 통해 증명할 때 중요한 특성으로 이용된다.
Figure 112014119922430-pat00011
상기 수학식 9의 F(t)의 최대 및 최소 값을 구하기 위하여 상기 수학식 9를 시간에 대하여 미분하면 하기 수학식 10과 같이 나타낼 수 있다.
Figure 112014119922430-pat00012
극대값 및 극소값을 찾기 위해, 상기의 미분값이 0이 되려면,
Figure 112014119922430-pat00013
또는
Figure 112014119922430-pat00014
인 두 가지 경우에 해당되어야 한다.
먼저,
Figure 112014119922430-pat00015
가 되기 위한 경우를 고려할 때,
Figure 112014119922430-pat00016
값이 0인 경우, 양의 값인 경우, 음의 값인 경우로 나누어 생각할 수 있다.
i)
Figure 112014119922430-pat00017
값이 0인 경우(
Figure 112014119922430-pat00018
)에는 bg값이 0보다 크므로
Figure 112014119922430-pat00019
이고 상기의 조건을 만족하지 못한다.
ii)
Figure 112014119922430-pat00020
값이 양인 경우(
Figure 112014119922430-pat00021
)를 고려하면,
Figure 112014119922430-pat00022
이 되어야 하므로, 하기의 수학식 11과 같이 나타낼 수 있다.
Figure 112014119922430-pat00023
상기 수학식 11을 a에 대해서 정리하면, 하기의 수학식 12와 같이 나타낼 수 있다.
Figure 112014119922430-pat00024
만약,
Figure 112014119922430-pat00025
이면,
Figure 112014119922430-pat00026
이 될 수 있다.
Figure 112014119922430-pat00027
의 최소값은 분모가 최대가 되는 t = 0일 때가 해당되며,
Figure 112014119922430-pat00028
이 된다.
수평축 최대 가속도와 수직축 최대 가속도를 비교하는 많은 실험 결과를 통해, 수평축 최대 가속도 값 a이 수직축 최대 가속도 값 b보다 작으므로,
Figure 112014119922430-pat00029
이 성립하게 된다. 즉,
Figure 112014119922430-pat00030
이 되므로, 상기의
Figure 112014119922430-pat00031
조건을 만족하지 못한다.
iii)
Figure 112014119922430-pat00032
값이 0보다 작은 경우(
Figure 112014119922430-pat00033
)를 고려하면,
Figure 112014119922430-pat00034
여러 실험 결과로부터 a < b 인 경우에
Figure 112014119922430-pat00035
가 되기 위해서는 하기의 수학식 13을 만족하여야 한다.
Figure 112014119922430-pat00036
상기 수학식 13은 a 및 b 값에 따라서
Figure 112014119922430-pat00037
을 만족할 수 있으므로, 극값을 가질 수 있다.
결론적으로, 가속도 크기가 극값 즉 최대값/최소값을 가질 수 있는 조건은
Figure 112014119922430-pat00038
및 수학식 13이며, 하기의 세가지 경우로 나타낼 수 있다.
Figure 112014119922430-pat00039
1), 2) 또는 3)을 만족하는 t 값에 의해서 F(t)의 극값을 가지게 된다. 세 개의 극값 크기의 상호 비교를 하기 위해서 1) 및 3)에서의 극값의 크기를 비교하면 하기의 수학식 14와 같다.
Figure 112014119922430-pat00040
상기의 수학식 14에서
Figure 112014119922430-pat00041
라고 하면,
Figure 112014119922430-pat00042
이때 임의의 a 및 b에 대하여 G(X)의 판별식
Figure 112014119922430-pat00043
이다. 따라서, G(X)는 중근을 가지며, X는 하기의 수학식 15와 같다.
Figure 112014119922430-pat00044
따라서, X = bg 에서 G(X)는 하기와 같이 최소값 0을 가진다.
Figure 112014119922430-pat00045
결론적으로, 세 개의 극값의 크기를 비교하면 하기와 같다.
Figure 112014119922430-pat00046
위 크기 비교는 수학식 13의 1), 2), 3) 경우에 대한 가속도(F(t)) 크기 비교를 의미한다.
즉,
Figure 112014119922430-pat00047
경우의 극값이
Figure 112014119922430-pat00048
경우의 극값보다 크고,
Figure 112014119922430-pat00049
경우의 극값이
Figure 112014119922430-pat00050
경우의 극값보다 크거나 같다는 의미이다.
이 때, (a+b)2 은 F(t)의 극대값이자 최대값을 의미하며 다음과 같이 증명될 수 있다.
Figure 112014119922430-pat00051
F(t) 의 극대값 및 극소값을 구하기 위해서 F(t)를 시간 t에 대하여 두번 미분하면 하기의 수학식 16과 같다.
Figure 112014119922430-pat00052
따라서,
Figure 112014119922430-pat00053
이며, 이때의 F(t)에 대하여 두 번 미분하면 하기와 같다.
Figure 112014119922430-pat00054
이므로, 상기의 조건에서 F(t)는 극대값을 가진다.
여기서 F(t)는 수학식 7에서 가속도의 크기를 제곱한 값으로서 가속도의 크기의 제곱의 최대값이 발생되는 시점은 가속도의 크기의 최대값이 발생되는 시점과 동일하다. 지역 좌표계에서 수직축은 사용자의 머리부터 다리 방향으로 정의되어 도 10에서 정의된 수직축 방향과 반대 방향이다. 따라서, 지금까지 증명된 수식은 모두 지역 좌표계에서 증명된 것이며, 지역 좌표계에서
Figure 112014119922430-pat00055
의 의미는 도 10에서는 수직축 방향이 반대로 정의가 되었기 때문에
Figure 112014119922430-pat00056
인 지점을 의미한다. 즉 사용자의 두 다리가 서로 교차하는 시점(사용자의 허리 높이의 최대값이 발생하는 시점)에서 수직축 가속도의 크기가 최대값을 갖고 동시에 3축 가속도의 크기(가속도 벡터의 2 norm값) F(t)가 최대값을 가짐을 증명한 것이다.
상기의 증명 과정으로부터, 디바이스의 가속도계에서 센싱되는 가속도의 크기의 최대값은 중력 가속도 및
Figure 112014119922430-pat00057
항으로 표현되는 수직축 가속도의 크기의 최대값과 동일함을 도출할 수 있다. 다만, 한가지 유의할 점은 수직축 가속도 크기의 최소값은 가속도 크기의 최소값과 다를 수 있다는 점이다. 따라서, 가속도 크기의 최소값을 가지는 시점은, 최소값과 인접하고 가속도 크기가 최대인 두 최대값의 시점을 평균하여 획득할 수 있다.
상기 설명한 이론적인 증명 과정을 시뮬레이션을 통해 확인할 수 있다. 수직 방향의 최대 가속도의 크기를 0.1m/s2으로부터 30m/s2까지 0.1m/s2의 간격으로 변화시키고, 수평축 가속도는 가속도의 0.1배부터 0.9배까지 0.1배 간격으로 변화 시켰다. 이는 수직축 가속도의 최대값이 수평축 가속도의 최대값보다 더 크다는 실험적인 결과를 반영한 것이다. 또한 수직축 및 수평축 삼각 파형은 한주기에 대해서 0.01도의 간격으로 시뮬레이션을 수행하였다.
시뮬레이션의 결과에서 수직축 가속도의 최대값이 발생되는 시점이 가속도 크기의 최대값이 발생되는 시점은 모든 경우에 대해 서로 동일하였다. 그러나 수직축 가속도의 최소값이 발생되는 시점은 가속도 크기의 최대값이 발생되는 시점과 서로 다른 경우가 존재하였다.
도 15는 시뮬레이션에서 지역 좌표계에서 수직축 가속도의 최소값이 나타나는 시점이 가속도 크기의 최소값이 나타나는 시점과 다를 수 있음을 나타낸 그래프이다.
증명에서 한가지 중요한 점은 이 모든 분석이 지역 좌표계에서 수행되었지만 가속도계가 주는 가속도는 모두 동체 좌표계에서 표현된다는 점이다. 여기서 지역 좌표계에서 수직축 가속도의 최대값이 발생되는 시점이 지역 좌표계에서 가속도 크기의 최대값이 발생되는 시점이 동일하다는 의미는, 동체 좌표계에서도 가속도 크기의 최대값 발생되는 시점과 동일함을 의미한다. 그 이유는 3축 가속도계에서 센싱된 가속도의 크기는 지역 좌표계에서 표현을 하거나 동체 좌표계에서 표현을 하거나 또는 기타 어떤 3축 수직 좌표계에서 표현을 하든 최대값 또는 최소값을 나타내는 시점은 동일하기 때문이다. 따라서 동체 좌표계에서 센싱된 가속도계의 3축 가속도값의 크기(3 x 1 가속도 벡터의 2-norm 값)의 최대값으로부터 중력 가속도만을 추출하고, 디바이스의 롤, 피치각을 구할 수 있다.
최대값을 가지는 시점 및 최소값을 가지는 시점 정보를 획득할 수 있으므로, 디바이스의 제어부는 이 두 시점에 대하여 각 축 별로 가속도 값을 평균합산하여, 가속도 성분 중에서 수직축 가속도 성분 및 수평축 가속도 성분이 제거되고 중력축 가속도 성분만 존재하는 가속도 정보를 획득할 수 있다.
결론적으로, 사용자의 이동에 따른 다이나믹(dynamic) 특성을 이용하여, 디바이스의 가속도계의 각 축에 대한 가속도 성분 중에서 중력 가속도 성분만을 분리하여 수학식 5와 수학식 6을 이용해서 정확한 롤 각 및 피치 각을 계산할 수 있다. 이렇게 계산한 롤 각 및 피치 각을 수학식 4에 대입하면 좌표변환 행렬을 도출할 수 있으며 동체 좌표계에서의 3축 가속도를 좌표 변환하여 지역 좌표계에서의 3축 가속도를 얻고, 지역 좌표계에서 X축 및 Y축에 표현된 수평축 가속도를 구함으로써, 사용자의 진행 방향에 대한 디바이스의 수평면 상에서 틀어진 각을 구할 수 있다.
도 16 은 본 발명의 일 실시예에 따른 동체 좌표계에서 가속도 크기의 최대값을 구할 때 잡음으로 인한 오차를 최소화 하고자 가속도 성분을 필터링하는 방법을 도시한다.
디바이스의 가속도계에서 중력축 가속도 성분에 기초하여 측정된 디바이스의 회전각 정보는 잡음을 포함할 수 있는 문제가 있다. 따라서, 측정된 가속도 정보를 필터링하여 구하고자 하는 디바이스의 회전각의 오차를 줄일 수 있다.
사용자의 이동에 따라서 시간에 따라 일정한 주기를 가지고 가속도가 변하는 것은 앞에서 설명하였다. 따라서, 수직축 가속도 및 수평축 가속도는 각각의 주파수를 가질 수 있다. 설명의 편의를 위하여 “걸음 주파수”라고 칭하기로 한다. 사용자가 이동함에 있어서, 일정한 주기를 가지고 왼쪽 다리 및 오른쪽 다리를 교차하며 걸을 수 있으나, 항상 일정할 수는 없으므로 일정 구간에 대한 평균 주기를 구함으로써 걸음 주파수가 달라지더라도 적응적으로 사용자의 걸음 주파수를 추정할 수 있다.
도 16에서, 수직축 가속도를 나타내는 그래프 상에서 수직축 가속도 크기의 최대값을 가지는 시점 29 및 최소값을 가지는 시점 30 에 대하여 가속도의 평균값을 구하면 중력 가속도가 추출되며, 센서 잡음으로 인한 오차가 발생할 수 있다. 따라서 시점 29 및 시점 30을 기준으로 하여 구간 T만큼 전후 시점을 통해서 양 시점의 가속도를 각각 평균 할 수 있다. 이러한 필터링 과정을 통해 동체 좌표계에서 얻은 가속도 평균값을 구하면 수직축 가속도 평균은 최대값 및 최소값의 합으로 서로 상쇄되고, 수평축 가속도는 0 이기 때문에 결국 잡음에 의한 오차가 줄어든 중력 가속도만 남는다. 만약 수평축 양의 가속도와 음의 가속도의 크기가 서로 비슷하다면 T를 반주기로 늘려서 전체 한주기를 평균함으로써 중력 가속도를 제거할 수 있다. 만약 수평축 양의 가속도와 음의 가속도의 크기가 서로 비슷하다면 자연수 N에 대해서 T를 N/2주기만큼 늘려서 N주기를 평균하여 중력 가속도를 제거하는 방법으로도 확장할 수 있다.
도 17 은 동체 좌표계에서 3축 가속도의 크기, 중력 가속도를 제거하였을 때의 크기, 중력 가속도의 참값을 나타낸 도면이다.
3축 가속도의 크기는 사용자가 진행할 때의 수직축 가속도 및 수평축 가속도가 발생하여 중력 가속도의 참값을 기준으로 사인파와 유사한 형태의 큰 오차가 발생한다. 그러나 제안된 방법은 사용자의 진행 방향에 대한 수직축 가속도 및 수평축 가속도가 효과적으로 제거되어 중력 가속도의 참값과 거의 유사한 값을 추출함을 보여준다. 이는 본 발명에서 제안된 방법이 수학적 증명을 통해 최적의 해(solution)를 제공한다는 이론적 결론과 일치한다. 만약 동체 좌표계에서 사용자의 수직축 및 수평축 가속도를 제거하지 않은 가속도를 그대로 롤, 피치를 계산하는데 사용한다면 큰 자세 오차가 발생됨을 예상할 수 있다. 이 자세 오차는 좌표변환 오차를 크게 만들고 결국 지역 좌표계에서의 X, Y축 가속도 오차를 발생시킴으로써, 사용자의 진행 방향에 대한 디바이스의 틀어진 각 오차가 발생 됨을 의미한다.
상기 과정을 통해 동체 좌표계에서의 가속도 성분 중 중력 가속도만을 추출하여 디바이스의 롤, 피치각을 구하고 수식 4의 좌표변환 행렬에 대입하면, 좌표변환을 통해 지역 좌표계에서의 X, Y 가속도값을 얻을 수 있다. 지역 좌표계에서의 X, Y가속도를 얻는 방법은 수식 4에서 좌표변환 3 x 3 행렬 C의 우측에 동체 좌표계의 3 x 1 가속도 벡터 [X축 가속도, Y축 가속도, Z축 가속도]T 를 곱해서 계산 결과로 도출된 3 x 1 가속도 벡터가 바로 지역 좌표계에서의 가속도를 의미한다. 따라서 지역 좌표계에서의 3 x 1 가속도 벡터 중 처음 두 항이 바로 지역 좌표계에서의 X, Y 가속도값이다.
지역 좌표계에서의 X, Y 가속도 값으로부터 사용자의 진행 방향에 대한 수평 축 디바이스의 틀어진 각을 구할 수도 있지만, 센서 잡음으로 인해 각오차가 발생할 수 있다. 본 개시에서는 이러한 잡음을 제거하는 방법으로서, 대역통과 필터링(Bandpass filtering) 기법을 사용할 것을 제안한다.
도 18 은 지역 좌표계에서 표현된 X축, Y축 가속도의 잡음을 제거하는 방법을 나타낸 도면이다.
도 18에서 시점 50, 51 및 52는 동체 좌표계에서 구한 가속도 크기의 주파수를 시간에 따라 적응적으로 추정하는 과정을 나타낸다. 걸음 한 주기로부터 주파수를 구할 수도 있고, 걸음 N주기로부터 주파수를 구할 수도 있다. 이 주파수는 대역통과필터(Bandpass filter)의 중심 주파수(53)로 쓰이며, 시간축으로 사용자의 걸음 주파수에 따라 중심 주파수도 가변하도록 설계할 수 있다. 대역 통과 필터의 대역폭(54) 역시 중요한 파라미터이며, 대역폭은 튜닝을 통해 결정될 수 있다. 지역 좌표계에서 표현된 X, Y축 가속도를 대역통과 필터링을 이용하면 센서 잡음이 줄어든 가속도를 얻을 수 있다.
도 19 는 본 발명의 일 실시예에 따른 디바이스의 틀어진 각을 도시한다.
사용자의 이동(진행) 방향에 대하여 디바이스는 항상 일치하는 방향으로 위치할 수 없으며 틀어진(회전) 각을 가지고 위치할 수 있다. 도 19에 도시된 바와 같이, 사용자의 진행 방향이 지역 좌표계 상의 X축 및 Y축 상에 일정한 각도를 가지고 위치할 수 있다. 지역 좌표계 상 대역통과 필터링을 적용한 X축에 대한 가속도 값을 Ax라고 하고, 지역 좌표계 상 대역통과 필터링을 적용한 Y축에 대한 가속도 값을 Ay라고 할 때, 지역 좌표계의 X축, Y축 수평면 상 사용자의 진행 방향에 대한 디바이스의 틀어진 각은 하기의 수학식 17과 같이 나타낼 수 있다.
Figure 112014119922430-pat00058
상기의 수학식 17에서와 같이 디바이스의 틀어진 각을 측정함으로써 디바이스 내의 다양한 어플리케이션에 적용시킬 수 있다.
도 20 은 지역 좌표계의 X축, Y축으로 이루어진 중력 가속도와 수직인 수평면 상에서 사용자의 진행 방향에 대한 디바이스의 틀어진 각 추정 오차를 크기가 작은 오차부터 큰 오차까지 실험적으로 획득한 그래프이다.
도 20의 (a)는 본 발명에서 제안된 방법으로 중력 가속도를 추출해서 사용자의 진행 방향에 대한 휴대폰의 틀어진 각을 추정한 결과와, 중력 가속도 이외에 수직, 수평축 가속도가 포함된 가속도를 그대로 이용한 추정 결과를 나타낸 것이다. 도 20의 (b)는 (a) 그래프의 각 측정 오차 범위를 확대하여 나타낸 그래프이다. 도 20의 (a)에서와 같이 중력 가속도 이외의 가속도 성분이 제대로 제거되지 못할 경우, 디바이스의 자세오차가 발생되어 잘못된 좌표변환을 통해 수평축 가속도의 각 성분도 크게 왜곡되어 추정 오차도 매우 커진다. 도면에서의 각 추정 오차는 시뮬레이션이 아니라 실험을 통해 얻어진 데이터를 사용하여 도출된 결과이다.
도 20에 도시된 바와 같이, 0도부터 45도 간격으로 315도까지 8개의 각오차에 대해 총 26번의 테스트를 진행하였다. 모든 테스트로부터 1354번의 걸음이 발생하였으며 각 걸음에 대한 각 오차를 크기순으로 나타낸 것이다. 각오차의 평균은 1.2도 발생하였고 표준편차는 9.3도 발생하였으며, 이 결과는 실제 테스트롤 통해, 본 발명에서 가속도계만을 사용해서 사용자의 진행 방향에 대한 디바이스의 틀어진 각을 구하는 이론적인 방법에 대한 검증 결과라 할 수 있다.
도 21 은 본 발명의 일 실시예에 따른 디바이스의 구성을 나타내는 블록도이다.
본 발명의 일 실시예에 따른 디바이스(100)는 제어부(110), 센싱부(120), 입출력부(130) 및 저장부(140)를 포함할 수 있다. 추가적으로 디바이스의 정보가 표시되는 표시부(미도시) 및 타 디바이스와의 통신을 수행하는 통신부(미도시)를 더 포함할 수도 있다.
센싱부(120)는 디바이스(100) 외부의 다양한 외부 정보를 획득할 수 있다. 디바이스의 가속도를 획득하는 가속도계(125)를 포함할 수 있으며, 그밖에 온도, 습도, 위치, 압력 등 다양한 환경 정보를 측정할 수 있다.
입출력부(130)는 디바이스(100)의 외부로부터 수신되는 정보 및 명령을 수신하는 입력부 및 디바이스(100) 내부에서 처리된 정보 및 명령을 외부로 전송하는 출력부를 포함할 수 있다.
저장부(140)는 디바이스(100) 내부에서 처리되는 정보를 저장할 수 있으며, 디바이스(100) 외부에서 수신되는 정보를 저장할 수 있다.
본 발명의 일실시예에 따른 디바이스(100)는 운영체제를 내장하여 인터넷 접속이나 각종 실행 프로그램을 실행할 수 있는 스마트폰 일 수 있다. 스마트폰은 디지털 휴대기기에 운영체계 및 통신 기능을 탑재하여 다양한 컨텐트를 편리한 이용자 환경(UI/UX)에서 이용할 수 있도록 한다. 또한 본 발명의 단말에 멀티미디어 플레이어, 퍼스널 컴퓨터 등의 기기가 해당될 수 있다.
본 발명의 일 실시예에 따른 제어부(110)는 디바이스에서 센싱되는 가속도 정보에 대하여 상기의 수학식 1 내지 17의 과정을 처리할 수 있다. 디바이스에 입력되는 다양한 정보들을 기설정된 처리과정에 따라 수행할 수 있다.
제어부(110)는 획득된 가속도 정보의 좌표를 변환하고, 변환된 좌표 상에서의 가속도 정보를 필터링하며, 변환된 좌표 상에서의 중력축 가속도 정보를 이용하여 디바이스의 진행 방향에 대한 회전각을 결정할 수 있다. 이 경우, 중력축 가속도 정보는 가속도 정보에서 디바이스의 진행 방향에 대한 수직축 및 수평축 가속도 성분이 최대인 시점에 대한 정보를 이용하여 도출되는 정보일 수 있다.
제어부(110)는 획득된 가속도 정보를 디바이스 기준의 좌표계 상의 좌표에서 중력 방향 기준의 좌표계 상의 좌표로 변환할 수 있다.
제어부(110)는 가속도 정보를 주파수 영역으로 변환한 이후에 필터링할 수 있다. 이 경우의 필터링은 대역통과 필터링(bandpass filtering)일 수 있다. 보다 구체적으로, 제어부(110)는 주파수 영역으로 변환된 가속도 정보에서, 디바이스(100)의 다이내믹(dynamic) 특성을 이용하여 결정된 중심 주파수에 기초하여 대역통과 필터링(bandpass filtering)할 수 있다.
제어부(110)는 입출력부(130)를 통해 입력된 데이터를 인코딩 또는 디코딩한다. 제어부(110)는 디바이스(100)의 운영체계(Operating System; OS)에 기반하여 사용자 인터페이스를 제공한다. 이러한 사용자 인터페이스는 사용자의 사용태양을 반영한 것일 수가 있다.
표시부(미도시)는 유저 인터페이스 환경에서 디바이스에 의해 처리된 데이터를 표시할 수 있다. 그 밖에 단말 사용자의 조작 명령이 요구되는 경우, 다양한 조작 명령을 입력하도록 안내하는 정보를 화면에 표시할 수 있다.
통신부(미도시)는 타 디바이스로부터 데이터 및 제어 명령을 송수신한다. 통신부(150)로는 적외선 통신 모듈, 전파 통신 모듈, 광학식 통신 모듈 등의 공지의 통신 모듈이 사용될 수 있다. 가령, 적외선 통신 표준인 IrDA (Infrared Data Association) 프로토콜을 만족하는 적외선 통신 모듈이 통신부로 사용될 수 있을 것이다. 또 다른 예로, 2.4GHz 주파수를 이용한 통신 모듈이나 블루투스(Bluetooth)를 이용한 통신 모듈이 통신부로 사용될 수도 있을 것이다.
본 발명의 일 실시예에 따른 센싱부(120)는 디바이스의 내부 또는 외부로부터 측정가능한 요소들을 센싱할 수 있다. 본 발명의 일 실시예에 따른 센싱부(120)는 가속도계(125)를 포함할 수 있으며, 가속도계(125)는 3차원 공간에서의 디바이스의 움직임을 가속도 정보로서 획득할 수 있다.
본 발명의 일 실시예에 따른 입출력부(130)는 디바이스 외부에서 명령을 수신하고, 처리된 정보를 출력하는 역할을 수행할 수 있다. 예를 들어, 스마트폰과 같은 디바이스의 경우 키 또는 터치 입력을 수신할 수 있으며, 처리된 정보를 스크린 상에 표시하는 방식으로 출력하거나 음향으로 출력할 수 있다.
입출력부(130) 중 입력부는 표시부에서 표시되는 컨텐트 등의 데이터를 입력받는 인터페이스로서 범용 직렬 버스(Universal Serial Bus, USB), 파타(Parallel Advanced Technology Attachment, PATA) 또는 사타(Serial Advanced Technology Attachment, SATA), 플래쉬 미디어(Flash Media), 이더넷(Ethernet), 와이파이(Wi-Fi), 블루투스(Bluetooth)) 중 적어도 하나를 포함할 수 있다. 경우에 따라서는, 디바이스(100)는 광디스크 드라이브, 하드 디스크 등와 같은 정보저장장치(미도시)를 구비하여 이를 통해 데이터를 입력받을 수도 있다.
또한 본 발명의 일 실시예에 따른 디바이스(100)는 광학 이미지 센서를 포함한 카메라부를 포함할 수 있다. 카메라 모듈을 통해 수신되는 이미지는 하나의 데이터로 처리될 수 있다.
입력부는 카메라부 이외에 온도, 습도 등의 센서부를 더 포함할 수 있다. 디바이스 내부의 온도를 측정하는 온도 센서부뿐만 아니라, 디바이스 외부의 온도를 측정하는 온도 센서부 또한 포함할 수 있으며, 습도를 측정하는 습도 측정부 또한 입력부에 해당될 수 있다.
또한, 입력부는 터치패널부와 화상패널부가 레이어구조를 갖는 터치 스크린일 수 있다. 터치패널부는 예를 정전용량 방식 터치패널, 저항막 방식 터치패널, 적외선 방식 터치패널 등일 수 있다. 화상패널부는 예를 들어 액정패널, 유기발광패널 등일 수 있다. 이러한 터치 스크린 패널을 잘 알려져 있으므로 패널 구조에 대한 상세한 설명은 생략한다. 화상패널부는 사용자 인터페이스의 그래픽을 표시할 수 있다.
본 발명의 일 실시예에 따른 저장부(140)는 제어부(110)에서 처리되는 정보들을 저장할 수 있다. 또한, 센싱부(120)에서 센싱되는 정보들을 저장할 수 있으며, 타 기기로부터 수신되는 정보를 저장할 수도 있다. 이러한 정보는 저장부(140) 내에서 데이터베이스(DB)화 되어 분류되어 저장될 수 있다.
한편, 상술한 본 발명의 실시예들은 컴퓨터에서 실행될 수 있는 프로그램으로 작성가능하고, 컴퓨터로 읽을 수 있는 기록매체를 이용하여 상기 프로그램을 동작시키는 범용 디지털 컴퓨터에서 구현될 수 있다. 상기 컴퓨터로 읽을 수 있는 기록매체는 마그네틱 저장매체(예를 들면, 롬, 플로피 디스크, 하드디스크 등) 및 광학적 판독 매체(예를 들면, 시디롬, 디브이디 등)와 같은 저장매체를 포함한다.
이제까지 본 발명에 대하여 그 바람직한 실시예들을 중심으로 살펴보았다. 본 발명이 속하는 기술 분야에서 통상의 지식을 가진 자는 본 발명이 본 발명의 본질적인 특성에서 벗어나지 않는 범위에서 변형된 형태로 구현될 수 있음을 이해할 수 있을 것이다. 그러므로 개시된 실시예들은 한정적인 관점이 아니라 설명적인 관점에서 고려되어야 한다. 본 발명의 범위는 전술한 설명이 아니라 특허청구범위에 나타나 있으며, 그와 동등한 범위 내에 있는 모든 차이점은 본 발명에 포함된 것으로 해석되어야 할 것이다.
100: 디바이스

Claims (32)

  1. 디바이스의 진행 방향에 대한 회전각을 결정하는 방법에 있어서,
    상기 디바이스의 가속도 센서로부터 상기 디바이스의 움직임에 대한 가속도 정보를 획득하는 단계;
    상기 디바이스의 상기 획득된 가속도 정보의 좌표를 변환하는 단계;
    상기 디바이스의 상기 변환된 좌표 상에서의 가속도 정보를 필터링하는 단계; 및
    상기 변환된 좌표 상에서의 중력축 가속도 정보를 이용하여 상기 디바이스의 진행 방향에 대한 회전각을 결정하는 단계;
    를 포함하고,
    상기 중력축 가속도 정보는 상기 가속도 정보에서 상기 디바이스의 변환된 좌표 상에서의 수직축 가속도 성분이 최대인 시점의 전후 구간에서의 제1 평균 가속도 값 및 상기 수직축 가속도 성분이 최소인 시점의 전후 구간에서의 제2 평균 가속도 값의 평균 값에 기초하여 결정되는, 회전각 결정 방법.
  2. 제1항에 있어서,
    상기 변환된 좌표 상에서의 수직축 가속도 성분이 최대인 시점은, 상기 획득된 가속도의 크기가 최대값을 가지는 시점과 동일한, 회전각 결정 방법.
  3. 제1항에 있어서,
    상기 변환된 좌표 상에서의 수직축 가속도 성분의 최소값은,
    상기 변환된 좌표 상에서의 상기 수직축 가속도 성분의 최대값을 가지는 시점에 대한 정보를 이용하여 도출되는, 회전각 결정 방법.
  4. 제1항에 있어서,
    상기 가속도 정보에 포함되는 수평축 가속도 성분은 상기 디바이스의 진행 방향에 대한 가속도 정보이고, 상기 수직축 가속도 성분은 상기 디바이스 및 수평면 간의 가속도 성분인, 회전각 결정 방법.
  5. 제1항에 있어서,
    상기 획득된 가속도 정보의 좌표를 변환하는 단계는,
    상기 가속도 정보를 디바이스 기준의 좌표계 상의 좌표에서 중력 방향 기준의 좌표계 상의 좌표로 변환하는 것을 특징으로 하는, 회전각 결정 방법.
  6. 제5항에 있어서,
    상기 중력 방향 기준의 좌표계는 서로 직교하는 세 축을 포함하고,
    상기 세 축 중 제1축은 중력 가속도 방향과 평행한 축인, 회전각 결정 방법.
  7. 제6항에 있어서,
    상기 세 축 중 제2축은 상기 디바이스 기준의 좌표계 상의 하나의 축을 롤(roll)각 회전하여 정의되고, 상기 세 축 중 제3축은 상기 디바이스 기준의 좌표계 상의 또 다른 하나의 축을 피치(pitch)각 회전하여 정의되는, 회전각 결정 방법.
  8. 제1항에 있어서,
    상기 변환된 좌표 상에서의 수직축 가속도 성분 및 수평축 가속도 성분은 동일한 주기값을 가지고 변하는 것을 특징으로 하는, 회전각 결정 방법.
  9. 제1항에 있어서,
    상기 변환된 좌표 상에서의 수직축 가속도 성분 및 수평축 가속도 성분은 서로 90도의 위상차를 가지는 것을 특징으로 하는, 회전각 결정 방법.
  10. 제9항에 있어서,
    상기 수직축 가속도 성분이 상기 수평축 가속도 성분보다 90도 위상이 더 빠른 것을 특징으로 하는, 회전각 결정 방법.
  11. 제9항에 있어서,
    상기 수직축 가속도 성분이 상기 수평축 가속도 성분보다 90도 위상이 더 느린 것을 특징으로 하는, 회전각 결정 방법.
  12. 제1항에 있어서,
    상기 중력축 가속도 정보는, 상기 디바이스의 상기 변환된 좌표 상에서의 수직축 및 수평축 가속도 성분의 크기를 복수의 주기에 대하여 평균함으로써 도출되는, 회전각 결정 방법.
  13. 제1항에 있어서,
    상기 가속도 정보를 필터링하는 단계는,
    상기 가속도 정보를 주파수 영역으로 변환하는 단계를 더 포함하는, 회전각 결정 방법.
  14. 제13항에 있어서,
    상기 가속도 정보를 필터링하는 단계는,
    상기 가속도 정보를 대역통과 필터링(bandpass filtering)하는 것을 특징으로 하는, 회전각 결정 방법.
  15. 제14항에 있어서,
    상기 대역통과 필터링하는 단계는,
    상기 주파수 영역으로 변환된 가속도 정보에서, 상기 디바이스의 다이내믹(dynamic) 특성을 이용하여 결정된 중심 주파수에 기초하여 필터링하는 것을 특징으로 하는, 회전각 결정 방법.
  16. 제15항에 있어서,
    상기 디바이스의 다이내믹 특성은,
    상기 디바이스 사용자가 상기 진행 방향으로 걷는(step) 자세에 의하여 획득되는, 회전각 결정 방법.
  17. 진행 방향에 대한 회전각을 결정하는 디바이스에 있어서,
    상기 디바이스의 움직임에 대한 가속도 정보를 획득하는 가속도 센싱부;
    상기 획득되는 가속도 정보를 저장하는 저장부; 및
    제어부를 포함하고,
    상기 제어부는,
    상기 획득된 가속도 정보의 좌표를 변환하고, 상기 변환된 좌표 상에서의 가속도 정보를 필터링하며, 상기 변환된 좌표 상에서의 중력축 가속도 정보를 이용하여 상기 디바이스의 진행 방향에 대한 회전각을 결정하고,
    상기 중력축 가속도 정보는 상기 가속도 정보에서 상기 디바이스의 변환된 좌표 상에서의 수직축 가속도 성분이 최대인 시점의 전후 구간에서의 제1 평균 가속도 값 및 상기 수직축 가속도 성분이 최소인 시점의 전후 구간에서의 제2 평균 가속도 값의 평균 값에 기초하여 결정되는, 회전각 결정 디바이스.
  18. 제17항에 있어서,
    상기 변환된 좌표 상에서의 수직축 가속도 성분이 최대인 시점은, 상기 획득된 가속도의 크기가 최대값을 가지는 시점과 동일한, 회전각 결정 디바이스.
  19. 제17항에 있어서,
    상기 제어부는, 상기 변환된 좌표 상에서의 수직축 가속도 성분의 최소값을,
    상기 변환된 좌표 상에서의 상기 수직축 가속도 성분의 최대값을 가지는 시점에 대한 정보를 이용하여 도출하는, 회전각 결정 디바이스.
  20. 제17항에 있어서,
    상기 가속도 정보에 포함되는 수평축 가속도 성분은 상기 디바이스의 진행 방향에 대한 가속도 정보이고, 상기 수직축 가속도 성분은 상기 디바이스 및 수평면 간의 가속도 성분인, 회전각 결정 디바이스.
  21. 제17항에 있어서,
    상기 제어부는
    상기 획득된 가속도 정보를 디바이스 기준의 좌표계 상의 좌표에서 중력 방향 기준의 좌표계 상의 좌표로 변환하는 것을 특징으로 하는, 회전각 결정 디바이스.
  22. 제21항에 있어서,
    상기 중력 방향 기준의 좌표계는 서로 직교하는 세 축을 포함하고,
    상기 세 축 중 제1축은 중력 가속도 방향과 평행한 축인, 회전각 결정 디바이스.
  23. 제22항에 있어서,
    상기 세 축 중 제2축은 상기 디바이스 기준의 좌표계 상의 하나의 축을 롤(roll)각 회전하여 정의되고, 상기 세 축 중 제3축은 상기 디바이스 기준의 좌표계 상의 또 다른 하나의 축을 피치(pitch)각 회전하여 정의되는, 회전각 결정 디바이스.
  24. 제17항에 있어서,
    상기 변환된 좌표 상에서의 수직축 가속도 성분 및 수평축 가속도 성분은 동일한 주기값을 가지고 변하는 것을 특징으로 하는, 회전각 결정 디바이스.
  25. 제17항에 있어서,
    상기 변환된 좌표 상에서의 수직축 가속도 성분 및 수평축 가속도 성분은 서로 90도의 위상차를 가지는 것을 특징으로 하는, 회전각 결정 디바이스.
  26. 제25항에 있어서,
    상기 수직축 가속도 성분이 상기 수평축 가속도 성분보다 90도 위상이 더 빠른 것을 특징으로 하는, 회전각 결정 디바이스.
  27. 제25항에 있어서,
    상기 수직축 가속도 성분이 상기 수평축 가속도 성분보다 90도 위상이 더 느린 것을 특징으로 하는, 회전각 결정 디바이스.
  28. 제17항에 있어서,
    상기 중력축 가속도 정보는, 상기 디바이스의 진행 방향에 대한 수직축 및 수평축 가속도 성분의 크기를 복수의 주기에 대하여 평균함으로써 도출되는, 회전각 결정 디바이스.
  29. 제17항에 있어서,
    상기 제어부는,
    상기 가속도 정보를 주파수 영역으로 변환한 이후에 필터링하는 것을 특징으로 하는, 회전각 결정 디바이스.
  30. 제29항에 있어서,
    상기 제어부는,
    상기 가속도 정보를 대역통과 필터링(bandpass filtering)하는 것을 특징으로 하는, 회전각 결정 디바이스.
  31. 제30항에 있어서,
    상기 제어부는,
    상기 주파수 영역으로 변환된 가속도 정보에서, 상기 디바이스의 다이내믹(dynamic) 특성을 이용하여 결정된 중심 주파수에 기초하여 대역통과 필터링(bandpass filtering)하는 것을 특징으로 하는, 회전각 결정 디바이스.
  32. 제31항에 있어서,
    상기 디바이스의 다이내믹 특성은,
    상기 디바이스 사용자가 상기 진행 방향으로 걷는(step) 자세에 의하여 획득되는, 회전각 결정 디바이스.
KR1020140177136A 2014-12-10 2014-12-10 디바이스의 회전각 결정 방법 및 이를 위한 장치 KR102335738B1 (ko)

Priority Applications (2)

Application Number Priority Date Filing Date Title
KR1020140177136A KR102335738B1 (ko) 2014-12-10 2014-12-10 디바이스의 회전각 결정 방법 및 이를 위한 장치
US14/965,261 US10605604B2 (en) 2014-12-10 2015-12-10 Method and apparatus for calculating rotation angle of device

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1020140177136A KR102335738B1 (ko) 2014-12-10 2014-12-10 디바이스의 회전각 결정 방법 및 이를 위한 장치

Publications (2)

Publication Number Publication Date
KR20160070341A KR20160070341A (ko) 2016-06-20
KR102335738B1 true KR102335738B1 (ko) 2021-12-06

Family

ID=56110861

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020140177136A KR102335738B1 (ko) 2014-12-10 2014-12-10 디바이스의 회전각 결정 방법 및 이를 위한 장치

Country Status (2)

Country Link
US (1) US10605604B2 (ko)
KR (1) KR102335738B1 (ko)

Families Citing this family (10)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN106611467B (zh) * 2015-10-22 2020-09-15 中兴通讯股份有限公司 一种实现报警的方法、装置和系统
WO2017199589A1 (ja) * 2016-05-18 2017-11-23 株式会社 東芝 行動推定方法、行動推定システム、サービス提供方法、信号検出方法、信号検出部および信号処理システム
JP6948325B2 (ja) 2016-08-05 2021-10-13 ソニーグループ株式会社 情報処理装置、情報処理方法、およびプログラム
CN106227234B (zh) * 2016-09-05 2019-09-17 天津远度科技有限公司 无人机、无人机起飞控制方法及装置
CN106403917B (zh) * 2016-09-06 2019-02-01 青岛海信移动通信技术股份有限公司 墙体垂度检测方法及装置
JP2021056002A (ja) * 2018-02-06 2021-04-08 アルプスアルパイン株式会社 較正装置、計測装置、球体、較正方法、およびプログラム
JP2021063655A (ja) * 2018-02-09 2021-04-22 アルプスアルパイン株式会社 制御装置、計測装置、球体、計測システム、制御方法、およびプログラム
CN109186549A (zh) * 2018-10-26 2019-01-11 国网黑龙江省电力有限公司电力科学研究院 一种基于视觉的铁塔倾斜角度测量方法
CN111307115A (zh) * 2020-03-03 2020-06-19 平顶山天安煤业股份有限公司 一种高精度倾斜角测量方法
CN111780746A (zh) * 2020-03-27 2020-10-16 宁波小遛共享信息科技有限公司 方向角的检测方法、装置、电子设备和代步工具

Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2009276282A (ja) * 2008-05-16 2009-11-26 Sumitomo Electric Ind Ltd 姿勢特定装置、移動方位特定装置、位置特定装置、コンピュータプログラム及び姿勢特定方法
JP2012037452A (ja) * 2010-08-10 2012-02-23 Panasonic Corp 歩行方位検出装置および歩行方位検出方法

Family Cites Families (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
GB1227903A (ko) * 1970-07-31 1971-04-15 Gravimetrics
JP5043358B2 (ja) * 2006-04-04 2012-10-10 ラピスセミコンダクタ株式会社 傾斜角演算方法及び傾斜角演算装置
JP4793223B2 (ja) 2006-11-02 2011-10-12 ヤマハ株式会社 歩行ナビゲーション方法、システムおよびプログラム
US8321075B2 (en) * 2008-02-25 2012-11-27 Sri International Mitigating effects of biodynamic feedthrough on an electronic control device
JP5736106B2 (ja) * 2009-05-19 2015-06-17 古野電気株式会社 移動状態検出装置
JP6067693B2 (ja) * 2011-06-28 2017-01-25 コーニンクレッカ フィリップス エヌ ヴェKoninklijke Philips N.V. 座位から立位への移行検出
US10222208B2 (en) * 2013-12-27 2019-03-05 Intel Corporation Apparatus, system and method of estimating an orientation of a mobile device

Patent Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2009276282A (ja) * 2008-05-16 2009-11-26 Sumitomo Electric Ind Ltd 姿勢特定装置、移動方位特定装置、位置特定装置、コンピュータプログラム及び姿勢特定方法
JP2012037452A (ja) * 2010-08-10 2012-02-23 Panasonic Corp 歩行方位検出装置および歩行方位検出方法

Also Published As

Publication number Publication date
US10605604B2 (en) 2020-03-31
US20160169680A1 (en) 2016-06-16
KR20160070341A (ko) 2016-06-20

Similar Documents

Publication Publication Date Title
KR102335738B1 (ko) 디바이스의 회전각 결정 방법 및 이를 위한 장치
US11816853B2 (en) Systems and methods for simultaneous localization and mapping
EP2699983B1 (en) Methods and apparatuses for facilitating gesture recognition
US9696859B1 (en) Detecting tap-based user input on a mobile device based on motion sensor data
JP5427240B2 (ja) 動き感知に基づくユーザ命令入力方法およびデバイス
CN103940442A (zh) 一种采用加速收敛算法的定位方法及装置
WO2018083910A1 (ja) 情報処理装置、情報処理方法、及び記録媒体
Wang et al. Effective inertial hand gesture recognition using particle filtering based trajectory matching
US20130085712A1 (en) Inertial sensing input apparatus and method thereof
CN112363196A (zh) 车辆属性确定方法、装置、存储介质和电子设备
Tuncer et al. Handwriting recognition by derivative dynamic time warping methodology via sensor-based gesture recognition.
KR101958334B1 (ko) 노이즈를 고려한 동작 인식 방법 및 장치
US20240161438A1 (en) Information processing apparatus, information processing method, and information processing system
Chu et al. A study of motion recognition system using a smart phone
Lee Estimation of Depth Information Using Orientation Sensor and Shake Gesture Application
Silva et al. System based on an android platform as a sensor to assist the autonomous localization
Gao et al. A Wireless Head-Controlled Mouse Design Using Adaptive Unscented Kalman Filter Algorithm
Chu et al. Design and implementation of an intuitive gesture recognition system using a hand-held device
Wu Recognition of Human Motion and Form

Legal Events

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