KR102335738B1 - Method and apparatus for calculating a rotating angle of a device - Google Patents

Method and apparatus for calculating a rotating angle of a device 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
Korean (ko)
Other versions
KR20160070341A (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 KR1020140177136A priority Critical patent/KR102335738B1/en
Priority to US14/965,261 priority patent/US10605604B2/en
Publication of KR20160070341A publication Critical patent/KR20160070341A/en
Application granted granted Critical
Publication of KR102335738B1 publication Critical patent/KR102335738B1/en

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

Abstract

진행 방향에 대한 회전각을 결정하는 디바이스에 있어서, 상기 디바이스의 움직임에 대한 가속도 정보를 획득하는 가속도 센싱부; 상기 획득되는 가속도 정보를 저장하는 저장부; 및 제어부를 포함하고, 상기 제어부는, 상기 획득된 가속도 정보의 좌표를 변환하고, 상기 변환된 좌표 상에서의 가속도 정보를 필터링하며, 상기 변환된 좌표 상에서의 중력축 가속도 정보를 이용하여 상기 디바이스의 진행 방향에 대한 회전각을 결정하고, 상기 중력축 가속도 정보는 상기 가속도 정보에서 상기 디바이스의 변환된 좌표 상에서의 수직축 가속도 성분이 최대인 시점에 대한 정보를 이용하여 도출될 수 있다.A device for determining a rotation angle with respect to a moving direction, the device comprising: an acceleration sensing unit configured to obtain acceleration information on the movement of the device; a storage unit for storing the obtained acceleration information; and a control unit, wherein the control unit transforms the coordinates of the obtained acceleration information, filters the acceleration information on the transformed coordinates, and advances the device using the gravitational axis acceleration information on the transformed coordinates. A rotation angle with respect to a direction is determined, and the gravitational acceleration information may be derived using information about a time point at which a vertical acceleration component on the coordinates of the device converted from the acceleration information is maximum.

Description

디바이스의 회전각 결정 방법 및 이를 위한 장치 {Method and apparatus for calculating a rotating angle of a device}Method and apparatus for determining a rotation angle of a device {Method and apparatus for calculating a rotating angle of a device}

본 발명은 디바이스의 회전각 결정 방법 및 이를 위한 장치에 관한 것이다. 보다 상세하게는 디바이스의 진행 방향에 대한 디바이스의 틀어진 각을 결정하는 방법에 관한 것이다.The present invention relates to a method for determining a rotation angle of a device and an apparatus therefor. More particularly, it relates to a method of determining a misaligned angle of a device with respect to a traveling direction of the device.

스마트폰과 같은 디바이스를 이용한 위치 추정 방법으로 보행자 항법(Pedestrian Dead Reckoning; PDR) 방식을 이용할 수 있다. 보행자 항법의 위치 추정 성능에 있어서, 디바이스의 회전각(틀어진 각도)은 큰 영향을 주는 변수이며, 디바이스의 틀어진 각도를 잘못 측정하였을 때 이동 거리를 정확하게 계산하여도 위치에 따른 오차가 크게 발생할 수 있다.A Pedestrian Dead Reckoning (PDR) method may be used as a location estimation method using a device such as a smartphone. In the location estimation performance of pedestrian navigation, the rotation angle (misaligned angle) of the device is a variable that has a large influence, and even if the moving distance is accurately calculated when the misaligned angle of the device is measured incorrectly, a large error may occur depending on the location. .

특히 스마트폰과 같은 소형 디바이스의 사용자는 디바이스를 파지하고 이동할 경우, 사용자의 편의 또는 의도에 따라 디바이스의 진행 방향에 대한 틀어진 각도가 임의로 바뀔 수 있다. 예를 들어, 스마트폰 사용자가 스마트폰의 장축을 세로 방향(portrait mode) 또는 가로 방향(landscape mode)으로 파지(grip)하고 이동하는 경우 및 진행 방향으로부터 약 60도 정도 요(yaw)방향으로 스마트폰이 틀어진 상태로 이동하는 경우에, 스마트폰에 탑재된 가속도 센서만으로는 이 사이의 틀어진 각을 측정하기가 어렵다. 이에 따른 부정확한 각도 측정으로 인하여 위치 추정 또한 큰 오차가 발생될 수 있다.In particular, when a user of a small device, such as a smartphone, grips and moves the device, a misaligned angle with respect to the moving direction of the device may be arbitrarily changed according to the user's convenience or intention. For example, when a smartphone user grips and moves the long axis of the smartphone in a portrait mode or a landscape mode, and about 60 degrees from the direction of travel, the smart phone in the yaw direction When the phone moves in a distorted state, it is difficult to measure the skew angle therebetween using only the acceleration sensor mounted on the smartphone. Due to this inaccurate angle measurement, a large error may also occur in the position estimation.

예를 들어, 사용자가 디바이스를 들고 북쪽으로 걸어갈 경우 디바이스의 헤딩(heading)이 북쪽을 향하고 있다면 사용자의 이동 궤적은 북쪽으로 추정될 것이다. 그러나 동일한 상황에서 디바이스의 헤딩이 동쪽을 향하고 있다면 사용자는 북쪽을 향하여 걸어갔음에도 불구하고 사용자의 이동 궤적은 동쪽으로 추정되어 큰 위치 오차를 발생할 수 있다. 따라서 이 경우 사용자의 헤딩 및 디바이스의 헤딩 사이의 각을 추정하여 이를 보상해 주어야 한다.For example, when the user walks north with the device, if the heading of the device is to the north, the user's moving trajectory is estimated to be north. However, in the same situation, if the heading of the device faces east, the user's movement trajectory is estimated to the east even though the user walks toward the north, and a large position error may occur. Therefore, in this case, the angle between the user's heading and the device's heading should be estimated and compensated for.

디바이스의 진행 방향에 대한 디바이스의 틀어진 각을 측정하기 어려운 이유는 디바이스에 탑재된 가속도계가 중력축 가속도와 사용자가 이동하는 방향의 가속도 정보 및 수직축 방향의 가속도 정보를 모두 센싱하지만, 각각의 가속도 성분을 구분하지 못하기 때문이다.The reason that it is difficult to measure the misaligned angle of the device with respect to the moving direction of the device is that the accelerometer mounted on the device senses both the acceleration information in the direction of the user's movement and the acceleration information in the direction of the user's movement. because it cannot be distinguished.

종래에는 가속도 센서 및 자이로스코프(Gyroscope), 지자기 센서를 이용하여 센싱된 가속도 정보를 주파수 영역에서 해석하거나 또는 사용자의 이동 다이내믹(dynamic) 특성을 이용하여 사용자의 진행 방향에 대한 디바이스의 틀어진 각을 측정하였다.Conventionally, acceleration information sensed using an acceleration sensor, a gyroscope, and a geomagnetic sensor is interpreted in the frequency domain, or a misaligned angle of the device with respect to the user's moving direction is measured using the user's movement dynamic characteristics. did

사용자가 이동하기 위하여 발을 앞으로 내딛는 순간의 반작용 가속도 벡터를 이용해서 디바이스의 틀어진 각을 측정하는 방법은 센서 잡음으로 인하여 반작용 가속도 벡터를 구분하기 어려운 경우가 종종 발생됨으로 인하여 진행 방향에 대한 디바이스의 틀어진 각의 오차가 크게 발생되는 경우가 있다. 최종 측정 각도 정보를 저역통과필터(Low Pass Filter; LPF)를 이용하여 필터링함으로써 오차를 줄일 수 있지만 반면에 필터링으로 인한 측정 시간의 지연(delay)이 발생되는 문제점이 발생할 수 있었다.The method of measuring the misaligned angle of the device using the reaction acceleration vector at the moment when the user steps forward to move is difficult to distinguish the reaction acceleration vector due to sensor noise. There is a case where a large angle error occurs. The error can be reduced by filtering the final measurement angle information using a low pass filter (LPF), but on the other hand, there may be a problem in that the measurement time is delayed due to the filtering.

본 개시에서는 사용자가 이동하는 경우의 움직임의 특징을 파악해서 가속도 센서만의 센싱 정보로부터 중력 가속도를 효율적으로 구분하는 방법을 제안한다. 제안되는 방법에 따라 측정하는 경우, 가속도 정보에서 중력 가속도 성분을 구분함으로써, 사용자의 진행 방향에 대한 디바이스의 틀어진 각을 기존의 방법들에 비해 보다 정확하게 계산할 수 있는 유리한 효과가 있다. 이는 휴대폰의 위치 추정 정확도를 높이고, 센싱 전력을 최소화함으로써 저전력으로 위치 추정을 수행하는 기술이다.The present disclosure proposes a method of efficiently classifying gravitational acceleration from sensing information of only an acceleration sensor by identifying a movement characteristic when a user moves. In the case of measurement according to the proposed method, there is an advantageous effect of being able to more accurately calculate the misaligned angle of the device with respect to the user's moving direction compared to the existing methods by classifying the gravitational acceleration component from the acceleration information. This is a technology to perform location estimation with low power by increasing the location estimation accuracy of the mobile phone and minimizing sensing power.

본 발명은 사용자의 이동방향 및 디바이스의 헤딩 방향 사이의 각을 결정하는 방법에 관한 것으로, 가속도 성분을 이용하여 디바이스의 회전각을 보다 정확하게 측정할 수 있다.The present invention relates to a method for determining an angle between a moving direction of a user and a heading direction of a device, and the rotation angle of the device can be more accurately measured using an acceleration component.

본 발명의 일 실시예에 따라 디바이스의 진행 방향에 대한 회전각을 결정하는 방법에 있어서, 상기 디바이스의 가속도 센서로부터 상기 디바이스의 움직임에 대한 가속도 정보를 획득하는 단계; 상기 디바이스의 상기 획득된 가속도 정보의 좌표를 변환하는 단계; 상기 디바이스의 상기 변환된 좌표 상에서의 가속도 정보를 필터링하는 단계; 및 상기 변환된 좌표 상에서의 중력축 가속도 정보를 이용하여 상기 디바이스의 진행 방향에 대한 회전각을 결정하는 단계;를 포함하고, 상기 중력축 가속도 정보는 상기 가속도 정보에서 상기 디바이스의 변환된 좌표 상에서의 수직축 가속도 성분이 최대인 시점에 대한 정보를 이용하여 도출될 수 있다.In accordance with an embodiment of the present invention, there is provided a method for determining a rotation angle with respect to a moving direction of a device, the method comprising: obtaining acceleration information on the movement of the device from an acceleration sensor of the device; transforming the coordinates of the acquired acceleration information of the device; filtering the acceleration information on the transformed coordinates of the device; and determining a rotation angle with respect to the traveling direction of the device by using the information on the acceleration of the axis of gravity on the converted coordinates, wherein the information on the acceleration of the axis of gravity is obtained from the information on the converted coordinates of the device in the acceleration information. It can be derived using information about a time point at which the vertical acceleration component is maximum.

바람직하게는, 상기 변환된 좌표 상에서의 수직축 가속도 성분이 최대인 시점은, 상기 획득된 가속도의 크기가 최대값을 가지는 시점과 동일할 수 있다.Preferably, a point in time at which the vertical acceleration component on the transformed coordinates is maximum may be the same as a point in time when the magnitude of the obtained acceleration has a maximum value.

바람직하게는, 상기 변환된 좌표 상에서의 수직축 가속도 성분의 최소값은, 상기 변환된 좌표 상에서의 상기 수직축 가속도 성분의 최대값을 가지는 시점에 대한 정보를 이용하여 도출될 수 있다.Preferably, the minimum value of the vertical acceleration component on the transformed coordinates may be derived using information about a time point having a maximum value of the vertical acceleration component on the transformed coordinates.

바람직하게는, 상기 가속도 정보에 포함되는 수평축 가속도 성분은 상기 디바이스의 진행 방향에 대한 가속도 정보이고, 상기 수직축 가속도 성분은 상기 디바이스 및 수평면 간의 가속도 성분일 수 있다.Preferably, the horizontal acceleration component included in the acceleration information may be acceleration information for a moving direction of the device, and the vertical acceleration component may be an acceleration component between the device and a horizontal plane.

바람직하게는, 상기 획득된 가속도 정보의 좌표를 변환하는 단계는, 상기 가속도 정보를 디바이스 기준의 좌표계 상의 좌표에서 중력 방향 기준의 좌표계 상의 좌표로 변환하는 것을 특징으로 할 수 있다.Preferably, the converting of the obtained coordinates of the acceleration information may include converting the acceleration information from coordinates on a coordinate system based on a device to coordinates on a coordinate system based on a gravity direction.

보다 바람직하게는, 상기 중력 방향 기준의 좌표계는 서로 직교하는 세 축을 포함하고, 상기 세 축 중 제1축은 중력 가속도 방향과 평행한 축일 수 있다.More preferably, the coordinate system based on the gravitational direction may include three axes orthogonal to each other, and a first axis of the three axes may be an axis parallel to the direction of gravitational acceleration.

보다 바람직하게는, 상기 세 축 중 제2축은 상기 디바이스 기준의 좌표계 상의 하나의 축을 롤(roll)각 회전하여 정의되고, 상기 세 축 중 제3축은 상기 디바이스 기준의 좌표계 상의 또 다른 하나의 축을 피치(pitch)각 회전하여 정의될 수 있다.More preferably, the second axis of the three axes is defined by rotating one axis on the device reference coordinate system by a roll angle, and the third axis of the three axes pitches another axis on the device reference coordinate system (pitch) can be defined by angular rotation.

바람직하게는, 변환된 좌표 상에서의 상기 수직축 가속도 성분 및 수평축 가속도 성분은 동일한 주기값을 가지고 변할 수 있다.Preferably, the vertical acceleration component and the horizontal acceleration component on the transformed coordinates may change with the same period value.

바람직하게는, 상기 변환된 좌표 상에서의 수직축 가속도 성분 및 수평축 가속도 성분은 서로 90도의 위상차를 가질 수 있다.Preferably, the vertical acceleration component and the horizontal acceleration component on the transformed coordinates may have a phase difference of 90 degrees from each other.

보다 바람직하게는, 상기 수직축 가속도 성분이 상기 수평축 가속도 성분보다 90도 위상이 더 빠를 수 있다.More preferably, the vertical acceleration component may be 90 degrees faster than the horizontal acceleration component.

보다 바람직하게는, 상기 수직축 가속도 성분이 상기 수평축 가속도 성분보다 90도 위상이 더 느릴 수 있다.More preferably, the vertical acceleration component may be 90 degrees slower than the horizontal acceleration component.

바람직하게는, 상기 중력축 가속도 정보는, 상기 디바이스의 상기 변환된 좌표 상에서의 수직축 및 수평축 가속도 성분의 크기를 복수의 주기에 대하여 평균함으로써 도출될 수 있다.Preferably, the gravitational axis acceleration information may be derived by averaging the magnitudes of vertical and horizontal acceleration components on the transformed coordinates of the device over a plurality of periods.

바람직하게는, 상기 가속도 정보를 필터링하는 단계는, 상기 가속도 정보를 주파수 영역으로 변환하는 단계를 더 포함할 수 있다.Preferably, the filtering of the acceleration information may further include converting the acceleration information into a frequency domain.

보다 바람직하게는, 상기 가속도 정보를 필터링하는 단계는, 상기 가속도 정보를 대역통과 필터링(bandpass filtering)하는 것을 특징으로 할 수 있다.More preferably, the filtering of the acceleration information may include bandpass filtering the acceleration information.

보다 바람직하게는, 상기 대역통과 필터링하는 단계는, 상기 주파수 영역으로 변환된 가속도 정보에서, 상기 디바이스의 다이내믹(dynamic) 특성을 이용하여 결정된 중심 주파수에 기초하여 필터링하는 것을 특징으로 할 수 있다.More preferably, the bandpass filtering may include filtering based on a center frequency determined using a dynamic characteristic of the device from the acceleration information converted into the frequency domain.

보다 바람직하게는, 상기 디바이스의 다이내믹 특성은, 상기 디바이스 사용자가 상기 진행 방향으로 걷는(step) 자세에 의하여 획득될 수 있다.More preferably, the dynamic characteristics of the device may be obtained by a posture in which the device user steps in the moving direction.

본 발명의 또 다른 일 실시예에 따른 진행 방향에 대한 회전각을 결정하는 디바이스에 있어서, 상기 디바이스의 움직임에 대한 가속도 정보를 획득하는 가속도 센싱부; 상기 획득되는 가속도 정보를 저장하는 저장부; 및 제어부를 포함하고, 상기 제어부는, 상기 획득된 가속도 정보의 좌표를 변환하고, 상기 변환된 좌표 상에서의 가속도 정보를 필터링하며, 상기 변환된 좌표 상에서의 중력축 가속도 정보를 이용하여 상기 디바이스의 진행 방향에 대한 회전각을 결정하고, 상기 중력축 가속도 정보는 상기 가속도 정보에서 상기 디바이스의 변환된 좌표 상에서의 수직축 가속도 성분이 최대인 시점에 대한 정보를 이용하여 도출될 수 있다.In accordance with another embodiment of the present invention, there is provided a device for determining a rotation angle with respect to a moving direction, comprising: an acceleration sensing unit configured to obtain acceleration information on the movement of the device; a storage unit for storing the obtained acceleration information; and a control unit, wherein the control unit transforms the coordinates of the obtained acceleration information, filters the acceleration information on the transformed coordinates, and advances the device using the gravitational axis acceleration information on the transformed coordinates. A rotation angle with respect to a direction is determined, and the gravitational acceleration information may be derived using information about a time point at which a vertical acceleration component on the coordinates of the device converted from the acceleration information is maximum.

도 1 은 본 발명의 일 실시예에 따른 디바이스의 회전축을 도시한다.
도 2 내지 도 4 는 본 발명의 일 실시예에 따른 디바이스의 진행 방향에 대한 틀어진 상태를 도시한다.
도 5 는 본 발명의 일 실시예에 적용 가능한 좌표계들을 도시한다.
도 6 은 본 발명의 일 실시예에 따른 좌표 변환을 도시한다.
도 7 은 본 발명의 일 실시예에 따라 디바이스의 각도를 측정하는 과정을 도시한다.
도 8 은 본 발명의 일 실시예에 따른 사용자의 진행 방향에 따른 수직축 높이의 변화를 도시한다.
도 9 는 본 발명의 일 실시예에 따른 사용자의 진행 방향에 따른 수직축 속도의 변화를 도시한다.
도 10 은 본 발명의 일 실시예에 따른 사용자의 진행 방향에 따른 수직축 가속도의 변화를 도시한다.
도 11 은 본 발명의 일 실시예에 따른 사용자의 진행 방향에 따른 수평축 가속도의 변화를 도시한다.
도 12 는 본 발명의 일 실시예에 따라 사용자가 등속 이동하는 경우 및 감속 이동하는 경우를 도시한다.
도 13 은 본 발명의 일 실시예에 따라 좌표 변환 전후의 좌표계를 도시한다.
도 14 는 본 발명의 일 실시예에 따라 변환 후 좌표계에서 Z축 가속도를 실험적으로 나타낸 그래프이다.
도 15는 시뮬레이션에서 지역 좌표계에서 수직축 가속도의 최소값이 나타나는 시점이 가속도 크기의 최소값이 나타나는 시점과 다를 수 있음을 나타낸 그래프이다.
도 16 은 본 발명의 일 실시예에 따른 사용자의 진행 방향에 따른 가속도 성분을 필터링하는 방법을 도시한다.
도 17 은 본 발명의 일 실시예에 따른 좌표 변환 전의 좌표계에서 중력 가속도의 값을 실험적으로 나타내는 그래프이다.
도 18 은 본 발명의 일 실시예에 따라 필터링을 통한 잡음 제거 방법을 도시한다.
도 19 는 본 발명의 일 실시예에 따른 디바이스의 틀어진 각을 도시한다.
도 20 은 본 발명의 일 실시예에 따른 디바이스의 틀어진 각 측정의 오차값을 실험적으로 나타낸 그래프이다.
도 21 은 본 발명의 일 실시예에 따른 디바이스의 구성을 개념적으로 나타내는 블록도이다.
1 shows a rotation axis of a device according to an embodiment of the present invention.
2 to 4 show a misaligned state with respect to the traveling direction of the device according to an embodiment of the present invention.
5 shows coordinate systems applicable to an embodiment of the present invention.
6 illustrates a coordinate transformation according to an embodiment of the present invention.
7 illustrates a process of measuring an angle of a device according to an embodiment of the present invention.
8 illustrates a change in vertical axis height according to a user's moving direction according to an embodiment of the present invention.
9 illustrates a change in vertical axis speed according to a user's moving direction according to an embodiment of the present invention.
10 illustrates a change in vertical acceleration according to a user's moving direction according to an embodiment of the present invention.
11 illustrates a change in horizontal acceleration according to a user's moving direction according to an embodiment of the present invention.
12 illustrates a case in which a user moves at a constant speed and a case in which a user moves at a reduced speed according to an embodiment of the present invention.
13 illustrates a coordinate system before and after coordinate transformation according to an embodiment of the present invention.
14 is a graph experimentally showing the Z-axis acceleration in the coordinate system after transformation according to an embodiment of the present invention.
15 is a graph showing that the time point at which the minimum value of the vertical acceleration appears in the local coordinate system may be different from the time point at which the minimum value of the magnitude of the acceleration appears in the simulation.
16 illustrates a method of filtering an acceleration component according to a user's moving direction according to an embodiment of the present invention.
17 is a graph experimentally showing a value of gravitational acceleration in a coordinate system before coordinate transformation according to an embodiment of the present invention.
18 illustrates a method of removing noise through filtering according to an embodiment of the present invention.
19 shows a misaligned angle of a device according to an embodiment of the present invention.
20 is a graph experimentally showing an error value of each misaligned measurement of a device according to an embodiment of the present invention.
21 is a block diagram conceptually illustrating the configuration of a device according to an embodiment of the present invention.

이하, 첨부된 도면을 참조하여 본 발명의 실시예들을 상세히 설명한다. 도면에서 동일한 참조부호는 동일한 구성요소를 지칭하며, 각 구성요소의 크기나 두께는 설명의 명료성을 위하여 과장되어 있을 수 있다.Hereinafter, embodiments of the present invention will be described in detail with reference to the accompanying drawings. In the drawings, the same reference numerals refer to the same components, and the size or thickness of each component may be exaggerated for clarity of description.

본 개시에 있어서, 디바이스의 “회전각(rotating angle)”은 3차원 공간 상에서 위치하는 자세에 대하여 특정 좌표계를 기준으로 하는 각도를 의미한다. 3차원 공간 상에서 “틀어진 각”과 동일한 의미로 사용되며 본 개시에서 혼용될 수 있다. 또한, “회전각”은 임의로 결정되는 좌표계 상의 축과의 사이각으로 나타낼 수도 있다.In the present disclosure, a “rotating angle” of a device refers to an angle based on a specific coordinate system with respect to a posture positioned in a three-dimensional space. It is used in the same meaning as “a misaligned angle” in a three-dimensional space and may be used interchangeably in the present disclosure. In addition, the “rotation angle” may be expressed as an angle between the axis and an axis on an arbitrarily determined coordinate system.

본 개시에 있어서, “동체 좌표계(body frame)”라 함은 디바이스를 기준으로 x, y 및 z 축으로 구성된 각 축은 서로 직교하는 좌표를 의미한다. 디바이스의 장축 방향을 x축으로 정의하고, 단축 방향을 y축으로 정의하며, 정의된 x축 및 y축에 의해서 오른손 법칙으로 정의되는 방향을 z축으로 정의한다. 오른손의 네 손가락락을 x축에서 y축 방향으로 감았을 경우, 엄지 손가락이 가리키는 방향이 z축이 된다. 즉, 스마트폰과 같은 디바이스의 위에서 아래로의 방향을 z축으로 정의한 좌표계이다. In the present disclosure, the term “body frame” refers to coordinates where each axis composed of the x, y, and z axes with respect to the device is orthogonal to each other. The long-axis direction of the device is defined as the x-axis, the short-axis direction is defined as the y-axis, and the direction defined by the right-hand rule by the defined x-axis and y-axis is defined as the z-axis. When the four fingers of the right hand are wound from the x-axis to the y-axis, the direction the thumb points is the z-axis. That is, it is a coordinate system in which the top-down direction of a device such as a smartphone is defined as the z-axis.

본 개시에 있어서, “지역 좌표계(local frame)”라 함은 특정 3차원 좌표계를 지칭하는 좌표계이다. 지역 좌표계의 특성을 동체 좌표계와 연관하여 설명하면, 다음과 같다. 첫째로, 동체 좌표계(body frame)의 x축을 중심으로 -1 * 롤(roll)각만큼 회전시키는 경우 동체 좌표계의 y축이 중력 가속도 방향과 수직인 평면내 y’축으로 위치하게 된다. 이 y’축을 중심으로 -1 * 피치(pitch)각만큼 회전시키는 경우, x축이 중력 가속도 방향의 수직인 평면내 x’축으로 위치하게 된다. 결정된 x’및 y’축을 지역 좌표계의 x축 및 y축으로 각각 정의하여, x축 및 y축에 의하여 오른손 법칙으로 정의되는 방향을 Z축으로 하여 3개의 축을 정의하는 좌표계가 지역 좌표계가 된다.In the present disclosure, "local frame" is a coordinate system that refers to a specific three-dimensional coordinate system. The characteristics of the local coordinate system will be described in relation to the body coordinate system as follows. First, when rotating by -1 * roll angle around the x-axis of the body frame, the y-axis of the body frame is positioned as the y'-axis in the plane perpendicular to the direction of gravitational acceleration. When the y' axis is rotated by -1 * pitch angle, the x axis is positioned as the x' axis in the plane perpendicular to the direction of gravitational acceleration. The determined x' and y' axes are defined as the x and y axes of the local coordinate system, respectively, and the coordinate system defining the three axes with the direction defined by the right-hand rule by the x and y axes as the Z axis becomes the local coordinate system.

지역 좌표계의 x, y 및 z 축 중에서 z 축은 중력 가속도와 평행한 방향을 가리키며, x축은 디바이스의 진행 방향과 일치하는 경우 0도를 나타내는 축이다. y축은 결정된 x 및 x축에 의하여 결정되는 축이며, 세 축은 서로 직교하는 특성을 가진다. 따라서, 지역 좌표계는 3차원 공간 상에서 서로 직교하는 3 축을 가지는 좌표계 중에서 본 개시에서 설명하는 특징을 포함하는 좌표계로 넓게 해석함이 바람직하다.Among the x, y, and z axes of the local coordinate system, the z axis indicates a direction parallel to the gravitational acceleration, and the x axis is an axis indicating 0 degrees when it coincides with the direction of the device. The y-axis is an axis determined by the determined x and x-axis, and the three axes have characteristics that are orthogonal to each other. Therefore, it is preferable to broadly interpret the local coordinate system as a coordinate system including the features described in the present disclosure among coordinate systems having three axes orthogonal to each other in a three-dimensional space.

이하 도 1 내지 도 20를 참조하여, 본 발명의 일 실시예에 디바이스의 회전 각을 측정하는 방법에 대해 자세히 설명한다.Hereinafter, a method of measuring a rotation angle of a device according to an embodiment of the present invention will be described in detail with reference to FIGS. 1 to 20 .

도 1 은 본 발명의 일 실시예에 따른 디바이스의 회전축을 도시한다.1 shows a rotation axis of a device according to an embodiment of the present invention.

디바이스는 3차원 공간 상에서 이동하므로, 공간 상에서 다양한 방향 및 각도로 위치할 수 있다. 모든 디바이스는 물리적으로 중심을 가지므로, 이 중심을 기준으로 3개의 축이 존재할 수 있다. 여기서 물리적 중심은 무게 중심, 기하학적으로 정의된 중심, 가속도 센서의 위치 등 다양하게 정의될 수 있다. 디바이스의 중심을 기준으로 앞뒤 방향, 좌우 방향, 상하 방향으로 3개의 축이 존재하며, 이 3개의 축은 임의로 정해지는 서로 직교하는 축이며, 디바이스의 물리적인 구조에 따라서 다르게 설정될 수 있다. 예를 들어, 디바이스가 스마트폰과 같은 직육면체의 구조인 경우에는 화면이 표시되는 표시부를 정면으로 하여 3개의 축을 설정할 수 있다. 반면에, 구(sphere)와 같은 형태의 디바이스로서 정면을 특정할 수 없는 경우에는 어떠한 방향을 기준으로 정하여도 무관할 수 있다.Since the device moves in a three-dimensional space, it may be positioned in various directions and angles in space. Since all devices have a physical center, three axes can exist based on this center. Here, the physical center may be defined in various ways, such as a center of gravity, a geometrically defined center, and a location of an acceleration sensor. Three axes exist in the front-back direction, left-right direction, and up-down direction based on the center of the device. These three axes are arbitrarily determined and orthogonal axes, and may be set differently depending on the physical structure of the device. For example, when the device has a rectangular parallelepiped structure such as a smartphone, three axes may be set with the display unit on which the screen is displayed as the front. On the other hand, if the front surface cannot be specified as a sphere-like device, it may be irrelevant no matter what direction is set as a reference.

도 1에 도시된 바와 같이, 스마트폰과 같은 디바이스의 3개의 축을 정하는 방법으로, 디바이스의 표시부를 정면으로 하여 표시부가 세로로 표시되도록 하는 포트레이트(portrait) 방향 기준으로, 디바이스의 중심을 기준으로 x, y 및 z축의 3개의 축을 정할 수 있다. As shown in FIG. 1 , as a method of defining three axes of a device such as a smartphone, in a portrait direction that faces the display part of the device to display the display part vertically, x based on the center of the device Three axes can be defined: , y, and z.

이와 같이 디바이스를 기준으로 x, y 및 z 축으로 구성된 각 축은 서로 직교하며 동체 좌표 또는 바디 프레임(Body frame)이라고 부를 수 있다. 동체 좌표계의 x, y 및 z 축은 스마트폰과 같은 디바이스에 고정되어 스마트폰의 3차원 공간상 자세가 변할 때 함께 변한다. 본 개시에서는 표기 상 x, y 및 z 축을 나타내는 XB, YB 및 ZB의 아래첨자는 Body frame의 첫 문자 “B”를 표시한다.As described above, each axis composed of the x, y, and z axes with respect to the device is orthogonal to each other and may be called body coordinates or a body frame. The x, y, and z axes of the body coordinate system are fixed to a device such as a smartphone and change together when the attitude of the smartphone in 3D space changes. In the present disclosure, the subscripts of XB, YB, and ZB indicating the x, y and z axes on the notation indicate the first letter “B” of the body frame.

도 2 내지 도 4 는 본 발명의 일 실시예에 따른 디바이스의 진행 방향에 대한 틀어진 각도를 도시한다.2 to 4 show a misaligned angle with respect to the traveling direction of the device according to an embodiment of the present invention.

자동차, 지하철 등의 교통시설이 발전됨에 따라서, 사람들의 이동이 잦아지게 되었으며, 사람들은 이동 시에 스마트폰, 태블릿 PC 등과 같은 디바이스를 지참하는 경우가 많아지고 있다. 디바이스 사용자들은 이동 시에 디바이스에서 수행되는 다양한 어플리케이션을 이용하며 서비스를 이용할 수 있게 되었다. 위치 기반 서비스(Location Based Service; LBS)가 발달됨에 따라서, 사용자는 이동 중인 현재 위치에서 이용가능한 서비스를 즉각적으로 확인할 수 있으며, 원하는 서비스를 선택하여 이용할 수 있다. 또는 사용자들은 현재 위치와 무관하게 디바이스 내의 게임, 영화 등과 같은 콘텐츠를 재생할 수 있다.As transportation facilities such as automobiles and subways develop, people move more frequently, and people bring devices such as smart phones and tablet PCs with them when they move. Device users can use various applications performed on the device while moving and use services. As a location-based service (LBS) is developed, a user can immediately check a service available in a current location while moving, and can select and use a desired service. Alternatively, users may play content such as games and movies in the device regardless of their current location.

사용자가 네비게이션 어플리케이션을 이용하는 경우, 디바이스의 진행 방향 및 이동 속도에 따라서 디바이스에 표시되는 정보가 달라질 수 있다. 또는 사용자가 게임 어플리케이션을 이용하는 경우, 사용자가 디바이스를 세로(Portrait)로 조작하는지 가로(Landscape)로 조작하는지에 따라서 제어 방법 및 표시 방법이 달라질 수 있다. 따라서, 디바이스에 대한 틀어진 각을 정확하게 측정하는 방법이 요구되고 있다. 여기서 디바이스에 대한 틀어진 각은 사용자의 진행 방향 벡터와 디바이스의 헤딩 벡터를 중력 벡터에 수직인 평면에서 해석하였을 때, 두 벡터의 사이각을 의미한다.When a user uses a navigation application, information displayed on the device may vary according to a moving direction and a moving speed of the device. Alternatively, when a user uses a game application, a control method and a display method may vary depending on whether the user manipulates the device in a portrait or a landscape mode. Accordingly, there is a need for a method for accurately measuring a misaligned angle with respect to a device. Here, the misaligned angle with respect to the device means the angle between the two vectors when the user's moving direction vector and the device's heading vector are interpreted in a plane perpendicular to the gravity vector.

도 2에 도시된 바와 같이, 사용자는 디바이스를 진행 방향과 동일한 방향으로 디바이스의 장축을 일치시킨 상태로 파지하고 이동할 수 있다. 사용자가 포트레이트(디바이스의 장축 방향이 헤딩이 되는 방향) 방식으로 디바이스의 화면을 보고 파지하면서 이동할 수 있다.As shown in FIG. 2 , the user may hold and move the device in a state in which the long axis of the device coincides in the same direction as the moving direction. The user can move while looking at the screen of the device in a portrait (direction in which the long axis direction of the device becomes a heading) and holding it.

예를 들어, 사용자가 스마트폰 디바이스의 네비게이션 어플리케이션을 실행하여 길을 안내받으면서 이동하는 경우, 사용자(또는 디바이스)의 진행 방향과 동일한 방향으로 디바이스의 헤딩 벡터를 일치시킬 수 있다.For example, when the user executes a navigation application of the smartphone device and moves while being guided, the heading vector of the device may be matched in the same direction as that of the user (or device).

도 3에 도시된 바와 같이, 사용자는 디바이스를 사용자(또는 디바이스)의 진행 방향과 수직인 방향으로 헤딩 벡터를 일치시킬 수 있으며, 디바이스를 랜드스케이프(디바이스의 단축 방향이 헤딩 방향이 되는 방향) 방식으로 화면을 보면서 이동할 수도 있다. 이 경우는 앞서 설명한 도 2와는 다르게 사용자(또는 디바이스)의 진행 방향에 대한 디바이스의 회전 상태가 다름을 알 수 있다.As shown in FIG. 3 , the user can match the heading vector with the device in a direction perpendicular to the direction of the user (or device), and use the device as a landscape (direction in which the short-axis direction of the device becomes the heading direction) method You can also move while looking at the screen. In this case, it can be seen that the rotation state of the device with respect to the moving direction of the user (or device) is different from that of FIG. 2 described above.

도 4에 도시된 바와 같이, 사용자는 사용자(또는 디바이스)의 진행 방향과 디바이스의 축을 일치시키지 않고 임의로 틀어진 각을 유지하며 이동할 수 있다. 예를 들어, 사용자가 디바이스를 가방이나 바지 주머니 속에 넣은 상태에서 네비게이션 어플리케이션으로부터 음성 신호로 길 안내 서비스를 이용하면서 걸을 수 있다. 이 경우, 가방이나 바지 주머니 속에서 디바이스의 헤딩 벡터가 진행 방향에 대해 일치하도록 고정되지 않을 수 있다.As shown in FIG. 4 , the user may move while maintaining an arbitrarily twisted angle without matching the moving direction of the user (or device) with the axis of the device. For example, a user can walk while using a navigation service using a voice signal from a navigation application while putting the device in a bag or trouser pocket. In this case, the heading vector of the device in the bag or trouser pocket may not be fixed so as to match the traveling direction.

도 5 는 본 발명의 일 실시예에 적용 가능한 좌표계들을 도시한다.5 shows coordinate systems applicable to an embodiment of the present invention.

디바이스의 틀어진 각을 측정하기 위해서 디바이스에서 다양한 센서들로부터 정보를 수신하며, 수신된 정보들을 가공하여 원하는 각도 정보를 획득할 수 있다. 이 때, 각도 정보들은 다양한 좌표계 상에 표현될 수 있으며, 어떠한 좌표계 상에 표현되는지에 따라서 각도를 측정하는 기준이 달라질 수 있다. 따라서, 다양한 좌표계 상에서 표현되는 정보들을 서로 호환 가능하도록(compatible) 가공할 필요가 있다.In order to measure the misaligned angle of the device, the device receives information from various sensors, and processes the received information to obtain desired angle information. In this case, angle information may be expressed on various coordinate systems, and a criterion for measuring an angle may vary depending on which coordinate system is expressed. Accordingly, it is necessary to process information expressed on various coordinate systems to be compatible with each other.

보행자 추측 항법(Pedestrian Dead Reckoning; PDR)의 좌표계의 일 예로 동체 좌표계(Body frame) 또는 지역 좌표계(Local frame)를 설명할 수 있다. 다양한 좌표계가 존재하며, 본 개시에서 설명하는 상기 두 좌표계로 제한되지 않음에 유의하며, 설명의 편의상 두 좌표계를 예로서 설명한다.As an example of the coordinate system of Pedestrian Dead Reckoning (PDR), a body frame or a local frame may be described. Note that various coordinate systems exist and are not limited to the two coordinate systems described in the present disclosure, and the two coordinate systems are described as an example for convenience of description.

도 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)와 같이 도시할 수 있다.5( a ) shows a body frame having an arbitrary posture to define a local frame in an embodiment of the present invention. Figure 5 (a), when rotated Coordinates of Y L axis of the body coordinate system of X B central axis in the body coordinate system of the Y B-axis and Z B axes, the Y B axis of the body coordinate system is parallel to a plane perpendicular to the direction of gravity in It can be defined as a vector. That is, the Y and L axis of the local coordinate system may be perpendicular to the gravitational acceleration vector. In this case, there are two cases of the rotation method, and the rotation is rotated in a direction in which the angle between the Z B axis of the body coordinate system and the gravitational acceleration vector does not exceed 90 degrees. This can be illustrated as in Fig. 5(b). When rotated X L-axis of the local coordinate system, Fig. 5 (b) Coordinates of Y L axis center in the body coordinate system of X B-axis and Z B axes of the X B axis of the body coordinate system is parallel to a plane perpendicular to the direction of gravity It can be defined as a vector. In this case, there may be two cases of the rotation method, and the Z B axis of the rotationally transformed body coordinate system may be rotated to coincide with the direction of gravitational acceleration. Therefore, the Z B axis of the local coordinate system is naturally defined in the direction of gravitational acceleration. This can be illustrated as in FIG. 5(c).

지역 좌표계의 원점은 동체 좌표계에서 정의된 원점과 동일하며, 지역 좌표계에서 XL, YL 및 ZL의 아래첨자는 Local frame의 첫 문자 “L”을 표시할 수 있다. 따라서 지역 좌표계에서는 도 5(c)에서와 같이 ZL축이 중력 가속도축과 평행하므로, ZL축만 중력 가속도가 센싱될 수 있다. 지역 좌표계 역시 세 축은 서로 직교하며, 3차원 좌표계 상에서 지역 좌표계와 동체 좌표계 사이의 틀어진 자세 정보로부터 중력 가속도에 수직인 수평면 상 사용자의 진행 방향에 대한 디바이스의 방향 및 틀어진 각을 표현할 수 있다.The origin of the local coordinate system is the same as the origin defined in the body coordinate system, and the subscripts of X L , Y L and Z L in the local coordinate system can indicate the first letter “L” of the local frame. Accordingly, in the local coordinate system, since the Z L axis is parallel to the gravitational acceleration axis as shown in FIG. 5( c ), only the Z L axis can sense the gravitational acceleration. The three axes of the local coordinate system are also orthogonal to each other, and from the misaligned posture information between the local coordinate system and the body coordinate system in the three-dimensional coordinate system, the direction and angle of the device with respect to the user's moving direction on the horizontal plane perpendicular to the acceleration of gravity can be expressed.

지역 좌표계 및 동체 좌표계에서의 자세를 알기 위해서는 지역 좌표계를 기준으로 롤(roll), 피치(pitch), 요(yaw) 각이 정의되어야 한다. 먼저 롤(Roll)에 대하여 설명하면, 좌표계의 좌우 방향의 축(y축)에 따른 직선운동에 따른 앞뒤 방향의 축(x축) 주변에서 일어나는 회전 운동을 롤링(rolling)이라고 한다. 피치(Pitch)에 대하여 설명하면, 좌표계의 x축에 따른 직선 운동에 의해 일어나는 좌우 방향의 축(y축) 주변에서 일어나는 회전 운동을 피칭(pitching)이라고 칭한다. 요(Yaw)에 대하여 설명하면, 좌표계의 수직 방향의 축(z축)을 중심으로 한 회전 운동을 요잉(yawing)이라고 한다.In order to know the posture in the local coordinate system and the body coordinate system, roll, pitch, and yaw angles should be defined based on the local coordinate system. First, if the roll is described, the rotational motion that occurs around the axis (x-axis) in the front-rear direction according to the linear motion along the axis (y-axis) in the left and right direction of the coordinate system is called rolling. Describing the pitch, the rotational motion occurring around the left-right axis (y-axis) caused by the linear motion along the x-axis of the coordinate system is called pitching. Describing the yaw, a rotational motion about the axis (z-axis) in the vertical direction of the coordinate system is called yaw.

도 5(d)에서 두 좌표계의 원점이 일치한 상태에서 먼저 요(yaw) 각은 오른손 법칙에 의해 ZL축을 오른손으로 감쌀 때 손바닥에서 손가락으로 감싸는 방향이 양의 방향이며 요 각의 부호를 결정하고, 회전량이 바로 요각의 크기를 결정할 수 있다. 여기서 지역 좌표계는 동체 좌표계로부터 Z축 회전 변환이 없기 때문에 요 각은 항상 0으로 정의될 수 있다. 피치각 및 롤각은 각각 YL축 및 XL축을 기준으로 요각과 마찬가지 방법인 오른손 법칙에 의해 결정된다. 지역 좌표계에서 동체 좌표계로 변환하기 위해서는 변환 순서를 정의하는 것이 중요하며, 본 발명에서는 지역 좌표계를 중심으로 요, 피치, 롤 순으로 변환하도록 정의하였다. 그 이유는 동체 좌표계에서 지역 좌표계로 변환할 때 -1 * 롤각, -1 * 피치각, 0 * (-1 * 요각) 순서로 정의하였기 때문이다. 이러한 변환 순서는 좌표변환의 정의에 따라 달라질 수 있으며 정의만 다를 뿐이며 동체 좌표계와 지역 좌표계 변환 결과(즉 각 좌표계에서의 자세)가 달라지지는 않는다.In Fig. 5(d), when the origins of the two coordinate systems coincide, the yaw angle is positive when the Z L axis is wrapped with the right hand according to the right hand rule, and the direction from the palm to the finger is the positive direction, and the sign of the yaw angle is determined and the amount of rotation can directly determine the size of the yaw angle. Here, the yaw angle can always be defined as 0 because there is no Z-axis rotation transformation from the body coordinate system in the local coordinate system. The pitch angle and roll angle are determined by the right-hand rule, which is the same method as the yaw angle with respect to the Y L and X L axes, respectively. In order to transform from the local coordinate system to the body coordinate system, it is important to define the transformation order, and in the present invention, it is defined to transform in the order of yaw, pitch, and roll based on the local coordinate system. The reason is that when converting from the body coordinate system to the local coordinate system, it is defined in the order of -1 * roll angle, -1 * pitch angle, 0 * (-1 * yaw angle). The order of these transformations may vary depending on the definition of the coordinate transformation, only the definition is different, and the result of the transformation of the body coordinate system and the local coordinate system (that is, the posture in each coordinate system) does not change.

동체 좌표계 및 지역 좌표계는 서로 동일한 공간에 대하여, 어느 방향을 양의 방향으로 정할 것인지에 대한 선택의 문제일 뿐인 점에 유의할 필요가 있다. 모든 물리 법칙이 동일하게 적용되는 좌표계에서는 모두 동등한 좌표계이므로, 좌표계 간에는 서로 변환이 가능하다. 또한 좌표 변환 방법에 있어서 좌표계를 어떻게 정의하고, 롤, 피치, 요각을 어떻게 정의하였는지 그리고 좌표변환 순서를 어떻게 정의하였는지에 따라 변환 절차 및 변환 수식은 바뀔 수 있지만 표현만 다를 뿐이며 좌표 변환의 의미는 동일하다.It should be noted that the body coordinate system and the local coordinate system are only a matter of choice of which direction is to be determined as a positive direction in the same space. In a coordinate system to which all laws of physics are equally applied, since they are all equal coordinate systems, it is possible to transform between coordinate systems. Also, in the coordinate transformation method, the transformation procedure and transformation formula may change depending on how the coordinate system is defined, how roll, pitch, and yaw angle are defined, and how the coordinate transformation order is defined, but only the expression is different and the meaning of the coordinate transformation is the same. .

도 6 은 본 발명의 일 실시예에 따른 좌표 변환을 도시한다. 도 6에서는 디바이스의 움직임이 없는 상태에 대해 중력가속도만을 고려해서 좌표변환을 하는 방법을 설명한다.6 illustrates a coordinate transformation according to an embodiment of the present invention. In FIG. 6, a method of performing coordinate transformation in consideration of only the gravitational acceleration for a state in which there is no movement of the device will be described.

도 6에 도시된 바와 같이, 동체 좌표계 상에 표현된 가속도 성분은 지역 좌표계에서도 표현이 가능하다. 마찬가지로, 지역 좌표계 상에 표현된 정보는 동체 좌표계 상으로 변환하여 표현할 수 있다. 좌표계 간의 변환은 동체 좌표계에 센싱되는 중력 가속도 값에 따라서 달라질 수 있다.As shown in FIG. 6 , the acceleration component expressed on the body coordinate system can also be expressed in the local coordinate system. Similarly, information expressed on the local coordinate system can be transformed and expressed on the body coordinate system. Transformation between coordinate systems may vary depending on the value of the gravitational acceleration sensed in the body coordinate system.

동체 좌표계에서는 일반적으로 XB축, YB축 및 ZB축의 3개의 축에 대하여 중력 가속도 GB가 축 별로 정사영(orthogonal projection)되어 센싱되며 여기서 아래첨자 B는 동체 좌표계(Body frame)를 의미한다. 따라서, 중력 가속도 GB는 3개의 축에 대하여 gx, gy 및 gz의 3개의 성분으로 구분될 수 있다. 즉, 중력 가속도 GB는 3개의 축에 대한 각각의 가속도 성분으로 표현되며, 하기의 수학식 1과 같다.In the body coordinate system, in general , the gravitational acceleration G B is sensed by orthogonal projection for each of the three axes of the X B axis, the Y B axis and the Z B axis, where the subscript B stands for the body frame. . Thus, the acceleration of gravity G B may be divided into three components of gx, gy and gz with respect to three axes. That is, the gravity acceleration G B is represented by each of the acceleration component with respect to the three axes, it equal to the equation (1) below.

Figure 112014119922430-pat00001
Figure 112014119922430-pat00001

GB에서 윗첨자 T는 벡터의 전치(Transpose)를 나타내며 GB는 크기가 3 x 1 벡터를 의미한다. 정의된 좌표계에 따라 가속도 성분이 달라질 수 있으며, 본 개시에서는 중력 가속도 GB를 중력 가속도 축 상의 하나의 가속도 성분으로 구분할 수 있는 지역 좌표계로의 변환(GB에서 GL로의 변환)을 중점적으로 설명하기로 한다.In G B , the superscript T indicates transpose of the vector, and G B indicates a size of 3 x 1 vector. This acceleration component will vary according to a defined coordinate system, and the present disclosure describes the conversion (conversion to G L in G B) of a to distinguish the acceleration of gravity G B as one of the acceleration components on the gravitational acceleration axis Coordinates focus decide to do

좌표계 간에 표현되는 정보를 변환하기 위해서는 변환 행렬을 이용할 수 있다. 변환 행렬 C를 이용하여 좌표 변환을 수행하는 것은 하기의 수학식 2에서와 같다.A transformation matrix may be used to transform information expressed between coordinate systems. Coordinate transformation is performed using the transformation matrix C as in Equation 2 below.

Figure 112014119922430-pat00002
Figure 112014119922430-pat00002

도 6에 따르면, 상기의 수학식 2에서 GB의 좌표계는 동체 좌표계이고, GL의 좌표계는 지역 좌표계이다. 동체 좌표계를 지역 좌표계로 변환하는 이유로 다양한 원인이 있을 수 있다. 좌표 변환의 하나의 이유로, 동체 좌표계는 스마트폰 등과 같은 동체 디바이스 상의 센싱부를 통하여 획득되는 정보인 경우가 많으며, 지역 좌표계는 항법(navigation) 기술에 많이 이용되는 항법 좌표계(navigation frame)와 요각의 차이를 제외하면 동일한 개념으로서 사용자의 위치를 쉽게 이해하고 계산하는 등의 목적으로 좌표 변환을 수행할 필요가 있다.According to FIG. 6, and in the equation (2) Coordinates of G B is the body coordinate system, the coordinate system of G L it is the local coordinate system. There may be various reasons for converting the body coordinate system to the local coordinate system. For one reason of coordinate transformation, the moving body coordinate system is often information obtained through a sensing unit on a moving body device such as a smartphone, and the local coordinate system is the difference between the navigation frame and the yaw angle, which is often used in navigation technology. Except for , it is the same concept, and it is necessary to perform coordinate transformation for the purpose of easily understanding and calculating the user's location.

동체 좌표계의 경우, X축, Y축 및 Z 축에 대하여 중력 가속도 GB 의 성분이 모두 포함될 수 있다. 따라서, 사용자가 이동할 때 발생되는 가속도가 존재하는데 동체 좌표계에서는 개념적으로 쉽게 중력 가속도 성분과 중력 가속도 이외의 성분을 명확하게 구분하지 못하므로, 디바이스에서 틀어진 각을 정확하게 측정하지 못하는 문제가 있다. 이에 반하여, 지역 좌표계의 경우, 중력 가속도 성분 GB 만을 구분하여 중력 가속도는 지역 좌표계의 수직 축(ZL)에만 나타나고 중력 가속도에 수직인 수평면 상에서, 즉 XL축, YL축에 대한 사용자의 진행 방향 가속도 성분을 쉽게 표현할 수 있는 점에서 사용자의 진행 방향에 대한 디바이스의 틀어진 각을 정확하게 측정할 수 있는 유리한 효과가 있다.For a body coordinate system, may be included in both the components of the gravitational acceleration G B with respect to the X axis, Y axis and Z axis. Therefore, there is an acceleration generated when the user moves, but conceptually, the gravitational acceleration component and the component other than the gravitational acceleration cannot be clearly distinguished conceptually in the body coordinate system. On the other hand, in the case of the local coordinate system, by separating only the gravitational acceleration component G B gravitational acceleration appearing on the vertical axis (Z L) of the local coordinate system on the horizontal plane perpendicular to the gravitational acceleration, that is, on the X L-axis, Y L axis users Since the acceleration component in the moving direction can be easily expressed, there is an advantageous effect of accurately measuring the misaligned angle of the device with respect to the user's moving direction.

따라서, GB 의 좌표계를 동체 좌표계로, GL 의 좌표계를 지역 좌표계로 표현하여 좌표 변환을 하는 경우, 하기의 수학식 3과 같다.Therefore, the coordinate system of G B in the body coordinate system, by representing the coordinate system of G L to the local coordinate system as, Equation (3) in the case of the coordinate transformation.

Figure 112014119922430-pat00003
Figure 112014119922430-pat00003

상기의 수학식 3에 대하여 좌표 변환 행렬을 구체화하면 하기의 수학식 4와 같다.When the coordinate transformation matrix is specified with respect to Equation 3 above, Equation 4 is shown below.

Figure 112014119922430-pat00004
Figure 112014119922430-pat00004

(φ는 롤(roll) 각, θ는 피치(pitch) 각, ψ는 요(yaw) 각)(φ is the roll angle, θ is the pitch angle, ψ is the yaw angle)

도 6에 도시된 동체 좌표계에서의 롤 및 피치 각은 하기의 수학식 5 내지 수학식 6에 의해서 도출될 수 있다. 상기 수학식 4에서 동체 좌표계 및 지역 좌표계 간에는 z축 회전 변환이 없기 때문에 요(yaw)각은 0 이 된다.The roll and pitch angles in the body coordinate system shown in FIG. 6 may be derived by Equations 5 to 6 below. In Equation 4, since there is no z-axis rotation transformation between the body coordinate system and the local coordinate system, the yaw angle becomes 0.

Figure 112014119922430-pat00005
Figure 112014119922430-pat00005

Figure 112014119922430-pat00006
Figure 112014119922430-pat00006

상기의 수학식 4에 의해서 좌표가 변환될 때, 계산되는 가속도 성분이 중력축 가속도 성분만을 포함할 경우에 정확한 롤, 피치, 요각 계산이 가능하지만, 실질적으로 가속도 성분에는 중력축 가속도 성분 이외에 수직축 가속도 성분 및 수평축 가속도 성분을 포함하게 되어, 좌표 변환에 오차가 발생될 수 있는 문제가 있다. 따라서, 디바이스에서 센싱되는 가속도 정보에 대하여 중력축 가속도 성분을 정확하게 분리할 수 있는 방법이 요구되고 있다.When the coordinates are converted according to Equation 4, accurate roll, pitch, and yaw angle calculations are possible when the calculated acceleration component includes only the gravitational axis acceleration component. Since the component and the horizontal axis acceleration component are included, there is a problem that an error may occur in the coordinate transformation. Accordingly, there is a need for a method capable of accurately separating the gravitational axis acceleration component from the acceleration information sensed by the device.

도 7 은 본 발명의 일 실시예에 따라 디바이스의 회전각을 결정하는 과정을 도시한다.7 illustrates a process of determining a rotation angle of a device according to an embodiment of the present invention.

단계 S710에서, 디바이스는 가속도 센서로부터 디바이스의 움직임에 대한 가속도 정보를 수신할 수 있다. 디바이스 상에 내장된 가속도 센서에 의해 센싱되는 가속도 정보를 획득할 수 있으며, 이 가속도 정보는 중력축 가속도 성분, 수직축 가속도 성분 및 수평축 가속도 성분을 포함할 수 있다.In operation S710, the device may receive acceleration information on the movement of the device from the acceleration sensor. Acceleration information sensed by an acceleration sensor built into the device may be acquired, and the acceleration information may include a gravitational axis acceleration component, a vertical axis acceleration component, and a horizontal axis acceleration component.

본 개시에서의 수직축 가속도 성분이라 함은, 디바이스의 사용자가 이동하면서 발생하는 높이 변화에 의한 가속도 성분을 의미하며, 수평축 가속도 성분이라 함은 사용자(또는 디바이스)가 이동하는 진행 방향에 대한 가속도 성분을 의미한다.In the present disclosure, the vertical acceleration component refers to an acceleration component caused by a change in height that occurs while a user of the device moves, and the horizontal axis acceleration component refers to an acceleration component with respect to the moving direction of the user (or device). it means.

단계 S720에서, 디바이스는 가속도 정보에서 중력축 가속도 정보만을 이용하여, 디바이스의 좌표를 변환할 수 있다. 가속도 정보는 중력축 가속도 성분 이외에, 수직축 및 수평축 가속도 성분을 포함하고 있으나, 중력 가속도 성분만을 구분하여 이용할 수 있다. 디바이스 상에서 수신되는 가속도 성분이 동체 좌표계 상에 표현된 경우 좌표 변환을 통하여 동체 좌표계로 표현할 수 있다.In step S720, the device may convert the coordinates of the device by using only the gravitational axis acceleration information in the acceleration information. The acceleration information includes vertical and horizontal acceleration components in addition to the gravitational axis acceleration component, but only the gravitational acceleration component can be used separately. When the acceleration component received on the device is expressed on the moving body coordinate system, it can be expressed in the moving body coordinate system through coordinate transformation.

단계 S730에서, 디바이스는 지역 좌표계 상에 표현된 가속도 정보에 대하여 필터링을 수행하여 센서 잡음 정보를 제거할 수 있다. 사용자의 움직임에 따라서 가속도계에서 센싱하는 가속도 성분의 수직축 및 수평축 가속도 성분은 일정한 주기를 가지며 변할 수 있으므로, 수직축 및 수평축 가속도 성분의 주파수를 계산하여 대역통과필터(Band Pass Filter; BPF) 상에서 필터링 할 수 있다. 디바이스는 가속도 크기의 주파수로부터 도출하는 방식으로 주파수를 계산할 수 있다. 사용자가 앞으로 이동할 경우 다이내믹(Dynamic)에 의한 특성으로써 수직축 및 수평축 가속도의 주파수는 가속도계 크기의 주파수와 동일한 주파수를 가진다.In operation S730, the device may remove sensor noise information by filtering the acceleration information expressed on the local coordinate system. The vertical and horizontal acceleration components of the acceleration components sensed by the accelerometer according to the user's movement can change with a certain period. have. The device may calculate the frequency by deriving it from the frequency of the magnitude of the acceleration. When the user moves forward, as a characteristic due to dynamics, the frequency of the vertical axis and the horizontal axis has the same frequency as the frequency of the accelerometer size.

이때의 수평축 가속도 정보는 상기 디바이스의 진행 방향에 대한 가속도 정보이고, 상기 수직축 가속도 정보는 상기 디바이스 및 수평면 간의 가속도 정보일 수 있다.In this case, the horizontal acceleration information may be acceleration information for a moving direction of the device, and the vertical acceleration information may be acceleration information between the device and a horizontal plane.

이하에서는, 사용자의 진행 방향에 따른 디바이스 상에서 각 축으로의 가속도 성분 변화를 분석하여, 디바이스의 틀어진 각(회전각)을 결정하는 방법을 설명하기로 한다.Hereinafter, a method of determining the misaligned angle (rotation angle) of the device by analyzing the change in the acceleration component along each axis on the device according to the user's moving direction will be described.

도 8 은 본 발명의 일 실시예에 따른 사용자의 진행 방향에 따른 수직축 높이의 변화를 도시한다.8 illustrates a change in vertical axis height according to a user's moving direction according to an embodiment of the present invention.

도 8에 도시된 바와 같이, 사용자는 일정한 방향(수평축 방향)으로 이동할 수 있다. 사용자는 두 다리(7 및 8)를 이용하여 걷게 되므로 두 다리의 교차되는 걸음에 따라서 중심이 변하게 된다. 사ㅌ용자의 중심이 변함에 따라서 사용자가 파지하거나 사용자와 함께 이동하는 디바이스 역시 그 중심이 바뀌게 된다. 따라서, 디바이스의 가속도 성분은 사용자의 이동에 따라서 변하게 된다.As shown in FIG. 8 , the user may move in a certain direction (horizontal axis direction). Since the user walks using the two legs 7 and 8, the center of gravity changes according to the crossing steps of the two legs. As the center of the user changes, the center of the device held by the user or moved together with the user also changes. Accordingly, the acceleration component of the device changes according to the movement of the user.

따라서, 사용자의 진행 방향에 따른 가속도 성분의 변화를 분석하기 위하여 사용자의 걸음 패턴의 각 시점에 대하여 설명하고자 한다. 먼저, 수직축 가속도 성분에 대한 분석을 위하여, 사용자의 허리의 높이 변화를 설명하기로 한다.Therefore, in order to analyze the change of the acceleration component according to the user's moving direction, each time point of the user's walking pattern will be described. First, in order to analyze the vertical acceleration component, a change in the height of the user's waist will be described.

시점 1에서, 사용자는 진행 방향에 대하여 사용자의 오른쪽 다리(8)를 디딛는다. 사용자가 오른쪽 다리(8)를 앞으로 내딛는 경우, 상대적으로 왼쪽 다리(7)는 뒤에 위치하게 되며 왼쪽 다리(7) 및 오른쪽 다리(8)간의 거리차에 의해서 사용자의 허리(6)의 높이는 가장 낮은 높이를 가진다. At time point 1, the user steps on the user's right leg 8 with respect to the direction of travel. When the user steps forward with the right leg 8 , the left leg 7 is relatively positioned behind and the height of the user's waist 6 is the lowest due to the difference in distance between the left leg 7 and the right leg 8 . have a height

시점 2에서, 사용자가 진행 방향에 대하여 오른쪽 다리(8)를 이용하여 내딛는 경우, 왼쪽 다리(7) 및 오른쪽 다리(8)가 서로 교차하는 시점이 발생한다. 이 경우에는 왼쪽 다리(7) 및 오른쪽 다리(8)가 교차하므로 사용자의 허리(6)의 높이는 앞서 시점 1에 비해서 점점 높아져서 최대값을 가진다.At time point 2, when the user steps forward using the right leg 8 in the direction of travel, a time point at which the left leg 7 and the right leg 8 cross each other occurs. In this case, since the left leg 7 and the right leg 8 intersect, the height of the user's waist 6 gradually increases compared to the previous time point 1 and has a maximum value.

시점 3에서, 왼쪽 다리(7) 및 오른쪽 다리(8)가 서로 교차한 이후에는 왼쪽 다리(7)가 앞으로 오면서 오른쪽 다리(8)는 상대적으로 뒤에 위치하게 된다. 이 경우에는 앞서 시점 1과 마찬가지로, 왼쪽 다리(7) 및 오른쪽 다리(8)간의 거리차에 의해서 사용자의 허리(6) 높이가 다시 낮아져서 최소값을 가진다.At time point 3, after the left leg 7 and the right leg 8 cross each other, the left leg 7 comes forward and the right leg 8 is positioned relatively behind. In this case, the height of the user's waist 6 is lowered again due to the difference in distance between the left leg 7 and the right leg 8, as in time point 1 above, to have a minimum value.

시점 4에서, 왼쪽 다리(7) 및 오른쪽 다리(8)가 서로 교차하는 시점이 발생한다. 이 경우에는 왼쪽 다리(7) 및 오른쪽 다리(8)가 교차하므로 사용자의 허리(6)의 높이는 앞서 시점 3에 비해서 점점 높아지게 되고, 시점 2에서의 높이와 같아지게 된다.At time point 4, the time point at which the left leg 7 and the right leg 8 cross each other occurs. In this case, since the left leg 7 and the right leg 8 intersect, the height of the user's waist 6 is gradually increased compared to the previous time point 3 and becomes the same as the height at the time point 2 .

시점 5는 앞서 설명한 시점 1과 동일한 유형을 가진다. 사용자는 진행 방향에 대하여 사용자의 오른쪽 다리(8)를 디딛는다. 사용자가 오른쪽 다리(8)를 앞으로 내딛는 경우, 상대적으로 왼쪽 다리(7)는 뒤에 위치하게 되며 왼쪽 다리(7) 및 오른쪽 다리(8)간의 거리차에 의해서 사용자의 허리(6)의 높이는 가장 낮은 높이를 가진다. Time point 5 has the same type as time point 1 described above. The user steps on the user's right leg 8 with respect to the direction of travel. When the user steps forward with the right leg 8 , the left leg 7 is relatively positioned behind and the height of the user's waist 6 is the lowest due to the difference in distance between the left leg 7 and the right leg 8 . have a height

시점 1, 시점 3, 시점 5에서 사용자의 높이의 변화를 분석해보면, 시점 1, 시점 3, 시점 5의 패턴이 동일함을 알 수 있으며, 시점 1부터 시점 4까지를 하나의 주기로 시간의 흐름에 따른 사인파(sine wave) 또는 코사인파(cosine wave)와 유사한 형태의 패턴으로 허리 높이가 변하는 것을 알 수 있다. 이 때, 사용자 허리의 높이는, 두 다리가 서로 교차하는 시점 2 및 시점 4에서 최대값을 가지며, 두 발이 서로 최대의 거리차를 가지는 시점 1, 시점 3, 시점 5에서 최소값을 가진다.Analyzing the change in the height of the user at time point 1, time point 3, and time point 5, it can be seen that the pattern of time point 1, time point 3, and time point 5 is the same, and from time point 1 to time point 4 is one cycle. It can be seen that the waist height changes in a pattern similar to a sine wave or a cosine wave. At this time, the height of the user's waist has a maximum value at time points 2 and 4 when the two legs cross each other, and has a minimum value at time points 1, 3, and 5 when the two feet have the largest distance difference from each other.

도 9 는 본 발명의 일 실시예에 따른 사용자의 진행 방향에 따른 수직축 속도의 변화를 도시한다. 9 illustrates a change in vertical axis speed according to a user's moving direction according to an embodiment of the present invention.

거리를 시간에 대하여 미분하여 속도를 도출할 수 있으므로, 상기 도 8에서의 사용자 허리의 높이 변화를 시간에 대하여 미분하면 수직축 속도 성분을 도출할 수 있다. 따라서, 도 9에서는 시간의 흐름에 따른 수직축 속도의 변화를 분석하고자 한다.Since the speed can be derived by differentiating the distance with respect to time, the vertical axis speed component can be derived by differentiating the change in the height of the user's waist in FIG. 8 with respect to time. Therefore, in FIG. 9 , a change in the vertical axis speed according to the passage of time is to be analyzed.

먼저, 시점 1 및 시점 2 사이의 구간에서는 사용자의 허리 높이가 증가하며 수직축 속도는 0을 기준(정지 상태에서 이동하는 것을 전제로 한다)으로 양의 값을 가진다. 속도의 최대값은 두 시점의 중간 시점에서 가지며, 최대값을 가진 이후에는 수직축 속도는 감소한다.First, in the section between time point 1 and time point 2, the height of the user's waist increases and the vertical axis speed has a positive value based on 0 (assuming that the user moves in a stationary state). The maximum value of the velocity is at the midpoint between the two time points, and after the maximum value is reached, the vertical axis velocity decreases.

시점 2 및 시점 3 사이의 구간에서는 사용자 허리의 높이가 최대에서 최소로 감소하는 구간에 해당되며, 수직축 속도는 음의 값을 가진다. 속도의 최소값은 두 시점의 중간 시점에서 가지며, 최소값을 가진 이후에는 다시 수직축 속도는 증가한다.In the section between time points 2 and 3, the height of the user's waist corresponds to a section in which the height of the user's waist decreases from the maximum to the minimum, and the vertical axis velocity has a negative value. The minimum value of the velocity is obtained at the intermediate time point between the two time points, and after the minimum value is reached, the vertical axis speed increases again.

시점 3 및 시점 4 사이의 구간에서는 사용자 허리의 높이가 최소에서 최대로 다시 증가하는 구간에 해당되며, 수직축 속도는 양의 값을 가진다. 속도의 최대값은 두 시점의 중간 시점에서 가지며, 최대값을 가진 이후에는 다시 수직축 속도는 감소한다.In the section between time points 3 and 4, the height of the user's waist increases again from the minimum to the maximum, and the vertical axis velocity has a positive value. The maximum value of the velocity is at the midpoint between the two time points, and after the maximum value is reached, the vertical axis velocity decreases again.

시점 4 및 시점 5 사이의 구간에서는 사용자 허리의 높이가 최대에서 다시 최소로 감소하는 구간에 해당되며, 수직축 속도는 음의 값을 가진다. 속도의 최소값은 두 시점의 중간 시점에서 가지며, 최소값을 가진 이후에는 다시 수직축 속도는 증가한다.In the section between time points 4 and 5, the height of the user's waist is a section in which the height of the user's waist decreases from the maximum to the minimum, and the vertical axis velocity has a negative value. The minimum value of the velocity is obtained at the intermediate time point between the two time points, and after the minimum value is reached, the vertical axis speed increases again.

시점 1 내지 시점 5 사이의 구간에서의 수직축 속도의 변화 또한 시간의 흐름에 따른 사인파 또는 코사인파와 유사한 형태의 패턴을 가진다. 수직축 속도는 시점 1 및 시점 2의 중간 시점 및 시점 3 및 시점 4의 중간 시점에서 최대값을 가지며, 시점 2 및 시점 3의 중간 시점 및 시점 4 및 시점 5의 중간 시점에서 최소값을 가진다.The change in vertical velocity in the section between time point 1 and time point 5 also has a pattern similar to that of a sine wave or a cosine wave with the passage of time. The vertical axis velocity has a maximum value at the midpoint of time points 1 and 2, and a midpoint between time points 3 and 4, and a minimum value at the midpoint between time points 2 and 3 and intermediate time points 4 and 5.

도 10 은 본 발명의 일 실시예에 따른 사용자의 진행 방향에 따른 수직축 가속도의 변화를 도시한다.10 illustrates a change in vertical acceleration according to a user's moving direction according to an embodiment of the present invention.

거리를 시간에 대하여 미분하여 속도를 도출하고, 속도를 시간에 대하여 다시 미분하여 가속도를 도출할 수 있으므로, 상기 도 9에서의 사용자 중심의 수직축 속도 변화를 시간에 대하여 미분하여 수직축 가속도 성분을 도출할 수 있다. 따라서, 도 10에서는 시간의 흐름에 따른 수직축 가속도의 변화를 분석하고자 한다.Since the speed can be derived by differentiating the distance with respect to time, and the acceleration can be derived by differentiating the speed with respect to time again, the vertical axis acceleration component can be derived by differentiating the user-centered vertical speed change with respect to time in FIG. can Accordingly, in FIG. 10 , a change in the vertical acceleration according to the passage of time is to be analyzed.

먼저, 시점 1 및 시점 2 사이의 구간에서는 시간에 대한 속도의 미분값인 가속도의 값이 양에서 음으로 감소한다. 시점 2 및 시점 3 사이의 구간에서는 시간에 대한 속도의 미분값인 가속도의 값이 음에서 다시 양으로 증가한다.First, in the section between time point 1 and time point 2, the value of acceleration, which is the differential value of speed with respect to time, decreases from positive to negative. In the section between time point 2 and time point 3, the value of acceleration, which is the derivative of velocity with respect to time, increases from negative to positive again.

시점 3 및 시점 4 사이의 구간에서는 앞서 설명한 시점 1 및 시점 2 사이의 구간과 동일한 패턴을 가지므로 이를 참조하기로 한다.Since the section between time points 3 and 4 has the same pattern as the section between time points 1 and 2 described above, it will be referred to.

시점 4 및 시점 5 사이의 구간에서는 앞서 설명한 시점 2 및 시점 3 사이의 구간과 동일한 패턴을 가지므로 이를 참조하기로 한다.The section between time points 4 and 5 has the same pattern as the section between time points 2 and 3 described above, so it will be referred to.

시점 1 내지 시점 5 사이의 구간에서의 수직축 가속도의 변화 또한 시간의 흐름에 따른 사인파 또는 코사인파와 유사한 형태의 패턴을 가진다. 수직축 가속도는 시점 1, 시점 3, 시점 5에서 최대값을 가지며, 시점 2 및 시점 4 에서 최소값을 가진다. 또한, 사용자 허리 높이 변화 및 수직축 가속도 변화는 서로 180도 위상차를 가짐을 알 수 있다. 수직축에 대한 사용자의 높이, 속도 및 가속도는 상기의 시점 1 및 시점 3까지의 구간을 하나의 주기로 하여 반복하며, 최대값 및 최소값을 반복하여 가지는 사인파 또는 코사인파와 유사한 형태로 도시할 수 있다.The change in vertical acceleration in the section between time point 1 and time point 5 also has a pattern similar to that of a sine wave or a cosine wave with the passage of time. The vertical acceleration has maximum values at time points 1, 3, and 5, and has a minimum value at time points 2 and 4. In addition, it can be seen that the user's waist height change and the vertical axis acceleration change have a phase difference of 180 degrees from each other. The user's height, speed, and acceleration with respect to the vertical axis may be shown in a form similar to a sine wave or a cosine wave, repeating the section from time point 1 to time point 3 above as one cycle, and repeating maximum and minimum values.

앞서 도 8 내지 도 10에서 수직축 가속도 변화에 대하여 검토한 것과 마찬가지로, 사용자의 진행 방향에 대한 수평축 가속도 변화를 검토하기로 한다.Similar to the previous review of the vertical acceleration change in FIGS. 8 to 10 , the horizontal acceleration change with respect to the user's moving direction will be reviewed.

도 11 은 본 발명의 일 실시예에 따른 사용자의 진행 방향에 따른 수평축 가속도의 변화를 도시한다. 수평축은 사용자의 이동방향과 동일하므로, 거리 및 속도에 대한 분석은 생략하기로 한다.11 illustrates a change in horizontal acceleration according to a user's moving direction according to an embodiment of the present invention. Since the horizontal axis is the same as the user's moving direction, the analysis of distance and speed will be omitted.

시점 1 및 시점 2 사이의 구간에서는 수평축 가속도 성분은 음의 값을 가진다. 즉, 사용자의 진행 방향으로의 속도는 점점 감소하는 형태를 가진다. 이는 앞으로 내딛는 오른쪽 다리(8)에 의해서 두 다리가 교차할 때까지 왼쪽 다리(7)를 끌어오는 구간이기 때문에 속도가 감소하게 된다.In the section between time point 1 and time point 2, the horizontal acceleration component has a negative value. That is, the speed in the moving direction of the user gradually decreases. Since this is a section in which the left leg 7 is pulled until the two legs cross by the right leg 8 stepping forward, the speed is reduced.

시점 2 및 시점 3 사이의 구간에서는 내딛는 오른쪽 다리(8)에 사용자의 무게가 더해지면서 진행 방향으로 추진하므로 가속도 값은 양의 값을 가진다. 이는 사용자의 무게 중심이 오른쪽 다리 앞쪽에 위치하기 시작하는 시점이며, 가속도가 양인 이유는 바닥에 닿은 다리가 동일한 힘을 주어 몸을 밀었을 때 사용자의 무게 중심이 뒤에 있는 것보다 앞에 있는 경우 더 큰 수평축 추진력을 낼 수 있다는 관점에서 해석이 가능하다. 이전(시점 1 및 시점 2 사이) 구간에서는 사용자의 무게 중심이 바닥에 닿은 오른쪽 다리(8)보다 뒤에 있으며, 왼쪽 다리(7)는 공중에 떠 있는 상태이기 때문에, 만약 이 구간에서 추진력이 발생하려면 사용자의 무게 중심을 중력에 반하여 위 방향으로 끌어 올리기 위해서 바닥에 닿은 다리가 수평축 이외에 수직축으로도 힘을 써야 한다. 즉 중력에 반하는 또다른 힘이 필요하다. 따라서 이 구간에서는 사용자가 힘을 주어 앞으로 진행하는 것보다 몸이 앞으로 나아가려는 관성을 이용해서 진행하는 것이 유리하다. 반면에 시점 2 및 시점 3 사이의 구간에서는 사용자의 무게 중심의 수직축 진행 방향이 중력 방향과 동일한다. 따라서 이 구간에서는 사용자가 수평축으로 진행할 때 발생되는 수평축 가속도에 무게 중심이 자유낙하할 때 발생되는 수직축 가속도가 더해지기 때문에, 이전 구간보다 더 적은 힘으로 이전 구간에 비해 더 큰 이동 효과를 볼 수 있다.In the section between time points 2 and 3, the weight of the user is added to the right leg 8 to step on and propelling in the moving direction, so the acceleration value has a positive value. This is the point at which the user's center of gravity starts to be located in front of the right leg, and the reason for the positive acceleration is that when the user's center of gravity is greater in front than in the back, when the leg on the floor pushes the body with the same force. It can be interpreted in terms of being able to generate horizontal thrust. In the previous section (between time points 1 and 2), the user's center of gravity is behind the right leg (8) that touches the floor, and the left leg (7) is in the air, so if propulsion occurs in this section In order to lift the user's center of gravity in the upward direction against gravity, the leg that touches the floor must apply force not only on the horizontal axis but also on the vertical axis. That is, we need another force that opposes gravity. Therefore, in this section, it is advantageous to use the inertia of the body to move forward rather than moving forward with force. On the other hand, in the section between time points 2 and 3, the direction of the vertical axis of the user's center of gravity is the same as the direction of gravity. Therefore, in this section, since the vertical acceleration generated when the center of gravity freely falls is added to the horizontal acceleration generated when the user proceeds to the horizontal axis, a greater movement effect can be seen compared to the previous section with less force than the previous section. .

시점 3 및 시점 4 사이의 구간은 앞서 설명한 시점 1 및 시점 2 사이의 구간과 동일한 형태를 나타내며, 시점 4 및 시점 5 사이의 구간은 시점 2 및 시점 3 사이의 구간과 동일한 형태를 나타내므로 구체적인 설명은 생략한다.Since the section between time points 3 and 4 shows the same shape as the section between time points 1 and 2 described above, and the section between time points 4 and 5 shows the same shape as the section between time points 2 and 3, detailed description is omitted.

수평축 가속도 성분 또한 수직축 가속도 성분과 마찬가지로 시간에 대하여 일정한 주기를 가지며 최대값 및 최소값을 반복하여 가지는 사인파 또는 코사인파와 유사한 형태로 나타낼 수 있음을 알 수 있다. 이러한 해석적 관점에서 수평축 가속도 수직축 가속도와 위상이 90도로 서로 직교하는 형태를 가진다.It can be seen that the horizontal acceleration component also has a constant period with respect to time like the vertical acceleration component, and can be expressed in a form similar to a sine wave or a cosine wave having repeated maximum and minimum values. From this analytical point of view, the horizontal axis acceleration and the vertical axis acceleration have a form in which the phase is 90 degrees orthogonal to each other.

도 11에서 유의해야 할 점은, 양의 수평축 가속도 성분의 최대값은 음의 수평축 가속도 성분의 최소값의 절대값보다 크며, 이는 사용자가 앞으로 진행할 때 가속하였음을 의미한다.It should be noted in FIG. 11 that the maximum value of the positive horizontal acceleration component is greater than the absolute value of the minimum value of the negative horizontal acceleration component, which means that the user accelerates when moving forward.

도 12는 사용자가 등속 이동을 하는 경우(26)와 감속을 하는 경우(32)를 각각 나타낸 것이다. 12 shows a case in which the user moves at a constant speed (26) and a case in which the user decelerates (32), respectively.

등속 이동을 하는 경우(26)에서 시점 2 및 3의 구간의 가속도 절대값의 크기가 시점 1 및 2의 구간의 가속도 절대값의 크기와 같은 이유는 사용자의 진행 방향의 가속도가 진행방향의 반대 가속도와 비슷하기 때문이다. 즉 등속도 운동을 한 경우이다. 시점 3 및 시점 5 사이의 구간은 시점 1 및 시점 3 사이의 구간과 동일한 형태를 나타내므로 구체적인 설명은 생략한다.In the case of constant velocity movement (26), the reason that the magnitude of the absolute value of acceleration in the sections of time points 2 and 3 is the same as the magnitude of the absolute value of acceleration in sections of time 1 and 2 is that the acceleration in the user's moving direction is an acceleration opposite to the moving direction. because it is similar to That is, it is a case of constant velocity motion. Since the section between time points 3 and 5 has the same shape as the section between time points 1 and 3, a detailed description thereof will be omitted.

감속을 하는 경우(32)에서 시점 1 및 2의 구간의 가속도 절대값의 크기가 시점 2 및 3의 구간의 가속도 절대값의 크기보다 큰 이유는 사용자가 감속하여 진행방향의 반대 방향 가속도가 진행방향의 가속도보다 더 큼을 의미한다. 시점 3 및 시점 5 사이의 구간은 시점 1 및 시점 3 사이의 구간과 동일한 형태를 나타내므로 구체적인 설명은 생략한다.In the case of deceleration (32), the reason that the magnitude of the absolute value of acceleration in the sections of time 1 and 2 is greater than the magnitude of the absolute value of acceleration in sections 2 and 3 is that the user decelerates and the acceleration in the opposite direction to the moving direction is greater than the acceleration of Since the section between time points 3 and 5 has the same shape as the section between time points 1 and 3, a detailed description thereof will be omitted.

앞서 도 8 내지 도 12에서 수직축 가속도 성분 및 수평축 가속도 성분을 분석하였다. 디바이스의 가속도계에서는 상기의 수직축 가속도 성분 및 수평축 가속도 성분 이외에 중력축 가속도 성분이 포함된 가속도 성분을 센싱되므로, 중력축 가속도 및 상기의 수직축/수평축 가속도 성분을 명확하게 구분할 필요가 있다. Previously, the vertical axis acceleration component and the horizontal axis acceleration component were analyzed in FIGS. 8 to 12 . Since the accelerometer of the device senses an acceleration component that includes a gravitational axis acceleration component in addition to the vertical acceleration component and the horizontal axis acceleration component, it is necessary to clearly distinguish the gravitational axis acceleration and the vertical/horizontal axis acceleration components.

디바이스의 회전각 즉, 롤, 피치 및 요 각을 분석하기 위해서는 수식 4 내지 수식 6에서와 같이 지역 좌표계 상에서 중력축 가속도를 이용하여야 한다. 따라서, 디바이스의 가속도계에서 센싱하는 가속도 정보에서 중력축 가속도 성분을 분리하여야 정확한 롤, 피치각 계산이 가능하다.In order to analyze the rotation angle of the device, that is, roll, pitch, and yaw angle, it is necessary to use the acceleration of the gravitational axis in the local coordinate system as in Equations 4 to 6. Therefore, accurate roll and pitch angle calculations are possible only when the gravitational axis acceleration component is separated from the acceleration information sensed by the accelerometer of the device.

본 개시에서는, 디바이스의 가속도계에서 센싱되는 가속도 성분에서 중력축 가속도 성분만을 분리하는 방법에 대하여 중점적으로 설명하고자 한다. 상기의 도 11을 참조하여 검토하기로 한다.In the present disclosure, a method of separating only the gravitational axis acceleration component from the acceleration component sensed by the accelerometer of the device will be mainly described. It will be reviewed with reference to FIG. 11 above.

도 11에서, 수직축 가속도 성분 및 수평축 가속도 성분은 서로 90도의 위상차를 가지며 최대값 및 최소값을 나타내는 사인파 그래프로 나타낼 수 있다. 이 때, 수직축 가속도 성분이 최대값인 시점에서는 수평축 가속도 성분이 0 값을 나타냄을 알 수 있다. 즉 도면에서 시점 1 및 시점 3에서 수직축 가속도 성분은 최대값을 나타낸다. 각 시점 간의 간격은 일정하므로, 시점 1 및 시점 3의 중앙인 시점 2에서는 수직축 가속도 성분이 최소값을 가짐을 도출할 수 있다.In FIG. 11 , the vertical acceleration component and the horizontal acceleration component have a phase difference of 90 degrees from each other and may be represented by a sine wave graph indicating the maximum and minimum values. At this time, it can be seen that when the vertical acceleration component is the maximum value, the horizontal acceleration component has a value of 0. That is, in the figure, the vertical acceleration component at time point 1 and time point 3 represents the maximum value. Since the interval between the respective viewpoints is constant, it can be derived that the vertical acceleration component has a minimum value at the time point 2 that is the center of the viewpoints 1 and 3.

디바이스의 제어부는 시점 1 및 시점 2에서의 수직축 가속도 성분 및 수평축 가속도 성분을 병합하는 방법을 통하여 중력축 가속도 성분을 구할 수 있다. 즉, 수직축 가속도가 최대값인 시점 1에서 수평축 가속도는 0 값을 가지고, 수직축 가속도가 최소값인 시점 2에서도 수평축 가속도는 0 값을 가지므로, 이 두 시점의 가속도 성분의 평균 가속도 값을 계산하면 수직축 가속도 성분 또한 0 값을 가진다. 따라서, 이 두 시점의 평균값으로부터 중력축 가속도 성분만을 분리할 수 있다. 중력축 가속도 성분을 이용하여 디바이스의 롤 각 및 피치 각을 도출할 수 있다. The control unit of the device may obtain the gravitational acceleration component through a method of merging the vertical acceleration component and the horizontal acceleration component at time 1 and time 2 . That is, the horizontal acceleration has a value of 0 at time point 1 when the vertical acceleration is the maximum value, and the horizontal axis acceleration has a value of 0 even at time point 2 when the vertical axis acceleration is the minimum value. The acceleration component also has a value of 0. Therefore, only the gravitational axis acceleration component can be separated from the average value of these two time points. The roll angle and pitch angle of the device can be derived using the gravitational axis acceleration component.

수직축 가속도 성분이 최대값을 가지는 시점은 디바이스의 가속도계에서 센싱되는 가속도 크기가 최대값을 가지는 시점과 동일하다. 이하에서는, 지역 좌표계에서 표현된 수직축 가속도 성분이 최대값을 가지는 시점과 지역 좌표계에서 표현된 가속도 크기가 최대값을 가지는 시점이 서로 동일함을 증명하기로 한다.The point in time when the vertical acceleration component has the maximum value is the same as the point in time when the magnitude of the acceleration sensed by the accelerometer of the device has the maximum value. Hereinafter, we will prove that the time point at which the vertical acceleration component expressed in the local coordinate system has the maximum value and the point in time when the acceleration magnitude expressed in the local coordinate system has the maximum value are the same.

시간 t에 대하여 가속도의 크기를 f(t)로 하였을 때, 가속도의 크기의 제곱 F(t)는 지역 좌표계에서 하기의 수학식 7과 같이 나타낼 수 있다.When the magnitude of the acceleration with respect to time t is f(t), the square F(t) of the magnitude of the acceleration can be expressed as Equation 7 below in the local coordinate system.

Figure 112014119922430-pat00007
Figure 112014119922430-pat00007

상기의 수학식 7에 대하여 AccX2 + AccY2 + AccZ2 값을 대입하는 경우, 수학식 8과 같이 표현할 수 있다. When a value of AccX 2 + AccY 2 + AccZ 2 is substituted for Equation 7 above, it can be expressed as Equation 8.

도 13은 도 8 내지 도 12의 도면에서 사용한 좌표계(A) 및 지역 좌표계(L)를 나타낸 것이다. 도면 11을 예로 들면 사용자의 초기 위치(1)부터 사용자의 최종 위치(5)까지의 시간구간에 대해서, 사용자의 초기 위치를 원점으로 정의하면 수직축 가속도(11)는

Figure 112014119922430-pat00008
로, 수평축 가속도(12)는
Figure 112014119922430-pat00009
로 표현된다. 따라서 도 13에서 좌표계 A에서 표현된 가속도의 크기를 제곱하면 하기 수학식 8로 표현된다.13 shows the coordinate system (A) and the local coordinate system (L) used in the drawings of FIGS. 8 to 12 . Taking Fig. 11 as an example, with respect to the time section from the user's initial position (1) to the user's final position (5), when the user's initial position is defined as the origin, the vertical acceleration 11 is
Figure 112014119922430-pat00008
, the horizontal acceleration (12) is
Figure 112014119922430-pat00009
is expressed as Therefore, squaring the magnitude of the acceleration expressed in the coordinate system A in FIG. 13 is expressed by Equation 8 below.

Figure 112014119922430-pat00010
Figure 112014119922430-pat00010

상기 수학식 8에서 f는 사용자의 걸음 주파수, π는 원주율, t는 시간, g는 중력 가속도를 의미하고, 0보다 큰 값이다. a 값은 사용자의 진행 방향에 대한 최대 가속도 값을 나타내며 0보다 크고, b 값은 사용자가 이동하는 경우 중력가속도를 제외한 수직축 최대 가속도 값을 나타낸다.In Equation (8), f is the user's walking frequency, π is the circumference, t is time, and g is the acceleration of gravity, and is a value greater than 0. The a value indicates the maximum acceleration value for the user's moving direction and is greater than 0, and the b value indicates the maximum acceleration value on the vertical axis excluding the gravitational acceleration when the user moves.

상기 수학식 8을 지역 좌표계에서 표현하면, 수직축 가속도 성분의 부호만 바뀌며 하기 수학식 9와 같이 나타낼 수 있다. 여기서 주의할 점은 도 13에서 표현된 두 좌표계에서 가속도의 크기는 모두 동일하지만 수직축 성분은 부호가 반대인 점이다.When Equation 8 is expressed in the local coordinate system, only the sign of the vertical acceleration component is changed, and it can be expressed as Equation 9 below. It should be noted here that in both coordinate systems shown in FIG. 13, the magnitudes of the accelerations are the same, but the vertical axis components have opposite signs.

본 개시에서는 사용자(또는 디바이스)의 진행 방향을 기준으로 가속도 정보를 획득하고 계산하였으나, 본 발명은 이에 한정되는 것은 아니며, 사용자의 진행 방향의 반대 방향을 기준으로 가속도 정보를 계산할 수도 있으며, 이에 따라서 가속도의 방향에 대한 양 또는 음의 값을 적절히 변환하여 회전각을 결정할 수 있다. 본 개시에서는 진행 방향의 반대 방향에 대하여 회전각을 결정하는 방법에 대하여 진행 방향에 대하여 회전각을 결정하는 방법 내의 가속도 정보 및 수학식 등을 적절히 변형하는 것도 가능함에 유의할 필요가 있다.In the present disclosure, acceleration information is obtained and calculated based on the moving direction of the user (or device), but the present invention is not limited thereto, and acceleration information may be calculated based on the direction opposite to the user's moving direction. The angle of rotation can be determined by appropriately converting a positive or negative value for the direction of acceleration. In the present disclosure, with respect to the method of determining the rotation angle with respect to the direction opposite to the traveling direction, it is necessary to note that it is possible to appropriately modify acceleration information and equations in the method for determining the rotation angle with respect to the traveling direction.

도 14는 사용자가 디바이스의 자세인 동체 좌표계를 지역 좌표계로 일치시키고, 사용자의 진행 방향을 지역 좌표계의 X축과 일치시키고 걸어갔을 때 지역 좌표계에서 X축 진행 방향 가속도 및 중력 가속도를 제거한 Z축 가속도를 실험적으로 나타낸 그래프이다. 14 is a Z-axis acceleration in which the X-axis traveling direction acceleration and gravitational acceleration are removed from the local coordinate system when the user matches the body coordinate system, which is the posture of the device, to the local coordinate system, and matches the user's moving direction with the X axis of the local coordinate system and walks. is an experimental graph.

도 14에 도시된 바와 같이, 센서 잡음이 일부 포함되었지만 두 가속도는 서로 직교한다. 도 11의 수직축 가속도가 시간축으로 대칭이 되는 이유는 도 13에서 설명한 바와 같이, 지역 좌표계의 수직축 방향이 도면의 수직축 방향과 반대이기 때문이다. 도 14에서 수평축 가속도의 크기는 사용자가 가속, 등속, 감속을 할 경우, 가속도의 절대값의 최대값을 의미한다. 도 14에서 중요한 점은 수직축 가속도의 크기가 수평축 가속도의 크기 보다 크다는 점이다. 이는 여러 실험 결과들을 통해 확인되었으며 본 발명에서 제안한 과정을 하기 수식을 통해 증명할 때 중요한 특성으로 이용된다.As shown in FIG. 14 , although some sensor noise is included, the two accelerations are orthogonal to each other. The reason that the vertical acceleration of FIG. 11 is symmetric with respect to the time axis is because, as described in FIG. 13 , the vertical axis direction of the local coordinate system is opposite to the vertical axis direction of the drawing. 14 , the magnitude of the horizontal acceleration means the maximum value of the absolute value of the acceleration when the user accelerates, accelerates, or decelerates. An important point in FIG. 14 is that the magnitude of the vertical acceleration is greater than the magnitude of the horizontal acceleration. This has been confirmed through various experimental results and is used as an important characteristic when proving the process proposed in the present invention through the following equation.

Figure 112014119922430-pat00011
Figure 112014119922430-pat00011

상기 수학식 9의 F(t)의 최대 및 최소 값을 구하기 위하여 상기 수학식 9를 시간에 대하여 미분하면 하기 수학식 10과 같이 나타낼 수 있다.Differentiating Equation 9 with respect to time in order to obtain the maximum and minimum values of F(t) in Equation 9 can be expressed as Equation 10 below.

Figure 112014119922430-pat00012
Figure 112014119922430-pat00012

극대값 및 극소값을 찾기 위해, 상기의 미분값이 0이 되려면,

Figure 112014119922430-pat00013
또는
Figure 112014119922430-pat00014
인 두 가지 경우에 해당되어야 한다.To find the local maxima and minima, if the above derivative becomes 0,
Figure 112014119922430-pat00013
or
Figure 112014119922430-pat00014
It should be true in two cases.

먼저,

Figure 112014119922430-pat00015
가 되기 위한 경우를 고려할 때,
Figure 112014119922430-pat00016
값이 0인 경우, 양의 값인 경우, 음의 값인 경우로 나누어 생각할 수 있다.first,
Figure 112014119922430-pat00015
Considering the case to become
Figure 112014119922430-pat00016
When the value is 0, it can be divided into a positive value and a negative value.

i)

Figure 112014119922430-pat00017
값이 0인 경우(
Figure 112014119922430-pat00018
)에는 bg값이 0보다 크므로
Figure 112014119922430-pat00019
이고 상기의 조건을 만족하지 못한다.i)
Figure 112014119922430-pat00017
If the value is 0 (
Figure 112014119922430-pat00018
) has a bg value greater than 0.
Figure 112014119922430-pat00019
and does not satisfy the above conditions.

ii)

Figure 112014119922430-pat00020
값이 양인 경우(
Figure 112014119922430-pat00021
)를 고려하면,ii)
Figure 112014119922430-pat00020
If the value is positive (
Figure 112014119922430-pat00021
), taking into account

Figure 112014119922430-pat00022
이 되어야 하므로, 하기의 수학식 11과 같이 나타낼 수 있다.
Figure 112014119922430-pat00022
Since it should be, it can be expressed as in Equation 11 below.

Figure 112014119922430-pat00023
Figure 112014119922430-pat00023

상기 수학식 11을 a에 대해서 정리하면, 하기의 수학식 12와 같이 나타낼 수 있다.If Equation 11 is arranged for a, it can be expressed as Equation 12 below.

Figure 112014119922430-pat00024
Figure 112014119922430-pat00024

만약,

Figure 112014119922430-pat00025
이면, if,
Figure 112014119922430-pat00025
this side,

Figure 112014119922430-pat00026
이 될 수 있다.
Figure 112014119922430-pat00027
의 최소값은 분모가 최대가 되는 t = 0일 때가 해당되며,
Figure 112014119922430-pat00028
이 된다.
Figure 112014119922430-pat00026
this can be
Figure 112014119922430-pat00027
The minimum value of is when t = 0 where the denominator is maximum,
Figure 112014119922430-pat00028
becomes this

수평축 최대 가속도와 수직축 최대 가속도를 비교하는 많은 실험 결과를 통해, 수평축 최대 가속도 값 a이 수직축 최대 가속도 값 b보다 작으므로,

Figure 112014119922430-pat00029
이 성립하게 된다. 즉,
Figure 112014119922430-pat00030
이 되므로, 상기의
Figure 112014119922430-pat00031
조건을 만족하지 못한다.Through many experimental results comparing the maximum acceleration on the horizontal axis and the maximum acceleration on the vertical axis, since the maximum horizontal acceleration value a is smaller than the vertical maximum acceleration value b,
Figure 112014119922430-pat00029
this will come true in other words,
Figure 112014119922430-pat00030
As it becomes, the above
Figure 112014119922430-pat00031
condition is not satisfied

iii)

Figure 112014119922430-pat00032
값이 0보다 작은 경우(
Figure 112014119922430-pat00033
)를 고려하면, iii)
Figure 112014119922430-pat00032
If the value is less than 0 (
Figure 112014119922430-pat00033
), taking into account

Figure 112014119922430-pat00034
Figure 112014119922430-pat00034

여러 실험 결과로부터 a < b 인 경우에

Figure 112014119922430-pat00035
가 되기 위해서는 하기의 수학식 13을 만족하여야 한다.From the results of several experiments, if a < b
Figure 112014119922430-pat00035
In order to become , the following Equation 13 must be satisfied.

Figure 112014119922430-pat00036
Figure 112014119922430-pat00036

상기 수학식 13은 a 및 b 값에 따라서

Figure 112014119922430-pat00037
을 만족할 수 있으므로, 극값을 가질 수 있다.Equation 13 is based on the values of a and b
Figure 112014119922430-pat00037
can be satisfied, so it can have an extreme value.

결론적으로, 가속도 크기가 극값 즉 최대값/최소값을 가질 수 있는 조건은

Figure 112014119922430-pat00038
및 수학식 13이며, 하기의 세가지 경우로 나타낼 수 있다.In conclusion, the condition under which the magnitude of the acceleration can have an extreme value, that is, a maximum/minimum value, is
Figure 112014119922430-pat00038
and Equation 13, and can be represented by the following three cases.

Figure 112014119922430-pat00039
Figure 112014119922430-pat00039

1), 2) 또는 3)을 만족하는 t 값에 의해서 F(t)의 극값을 가지게 된다. 세 개의 극값 크기의 상호 비교를 하기 위해서 1) 및 3)에서의 극값의 크기를 비교하면 하기의 수학식 14와 같다.A value of t that satisfies 1), 2) or 3) has an extreme value of F(t). In order to mutually compare the magnitudes of the three extreme values, the magnitudes of the extreme values in 1) and 3) are compared as shown in Equation 14 below.

Figure 112014119922430-pat00040
Figure 112014119922430-pat00040

상기의 수학식 14에서

Figure 112014119922430-pat00041
라고 하면,In Equation 14 above
Figure 112014119922430-pat00041
If you say

Figure 112014119922430-pat00042
Figure 112014119922430-pat00042

이때 임의의 a 및 b에 대하여 G(X)의 판별식

Figure 112014119922430-pat00043
이다. 따라서, G(X)는 중근을 가지며, X는 하기의 수학식 15와 같다.Here, for any a and b, the discriminant of G(X)
Figure 112014119922430-pat00043
am. Accordingly, G(X) has a middle root, and X is expressed by Equation 15 below.

Figure 112014119922430-pat00044
Figure 112014119922430-pat00044

따라서, X = bg 에서 G(X)는 하기와 같이 최소값 0을 가진다.Therefore, at X = bg, G(X) has a minimum value of 0 as follows.

Figure 112014119922430-pat00045
Figure 112014119922430-pat00045

결론적으로, 세 개의 극값의 크기를 비교하면 하기와 같다.In conclusion, the magnitudes of the three extreme values are compared as follows.

Figure 112014119922430-pat00046
Figure 112014119922430-pat00046

위 크기 비교는 수학식 13의 1), 2), 3) 경우에 대한 가속도(F(t)) 크기 비교를 의미한다.The magnitude comparison above refers to a magnitude comparison of the acceleration F(t) for cases 1), 2), and 3) of Equation 13.

즉,

Figure 112014119922430-pat00047
경우의 극값이
Figure 112014119922430-pat00048
경우의 극값보다 크고,
Figure 112014119922430-pat00049
경우의 극값이
Figure 112014119922430-pat00050
경우의 극값보다 크거나 같다는 의미이다.in other words,
Figure 112014119922430-pat00047
the extreme value of the case
Figure 112014119922430-pat00048
greater than the extreme value of the case,
Figure 112014119922430-pat00049
the extreme value of the case
Figure 112014119922430-pat00050
It means that it is greater than or equal to the extreme value of the case.

이 때, (a+b)2 은 F(t)의 극대값이자 최대값을 의미하며 다음과 같이 증명될 수 있다.At this time, (a+b) 2 means the maximum and maximum value of F(t), and it can be proved as follows.

Figure 112014119922430-pat00051
Figure 112014119922430-pat00051

F(t) 의 극대값 및 극소값을 구하기 위해서 F(t)를 시간 t에 대하여 두번 미분하면 하기의 수학식 16과 같다.If F(t) is differentiated twice with respect to time t in order to obtain the maximum and minimum values of F(t), the following Equation 16 is obtained.

Figure 112014119922430-pat00052
Figure 112014119922430-pat00052

따라서,

Figure 112014119922430-pat00053
이며, 이때의 F(t)에 대하여 두 번 미분하면 하기와 같다.thus,
Figure 112014119922430-pat00053
, and differentiating it twice with respect to F(t) at this time is as follows.

Figure 112014119922430-pat00054
Figure 112014119922430-pat00054

이므로, 상기의 조건에서 F(t)는 극대값을 가진다.Therefore, under the above conditions, F(t) has a maximum value.

여기서 F(t)는 수학식 7에서 가속도의 크기를 제곱한 값으로서 가속도의 크기의 제곱의 최대값이 발생되는 시점은 가속도의 크기의 최대값이 발생되는 시점과 동일하다. 지역 좌표계에서 수직축은 사용자의 머리부터 다리 방향으로 정의되어 도 10에서 정의된 수직축 방향과 반대 방향이다. 따라서, 지금까지 증명된 수식은 모두 지역 좌표계에서 증명된 것이며, 지역 좌표계에서

Figure 112014119922430-pat00055
의 의미는 도 10에서는 수직축 방향이 반대로 정의가 되었기 때문에
Figure 112014119922430-pat00056
인 지점을 의미한다. 즉 사용자의 두 다리가 서로 교차하는 시점(사용자의 허리 높이의 최대값이 발생하는 시점)에서 수직축 가속도의 크기가 최대값을 갖고 동시에 3축 가속도의 크기(가속도 벡터의 2 norm값) F(t)가 최대값을 가짐을 증명한 것이다.Here, F(t) is a value obtained by squaring the magnitude of the acceleration in Equation 7, and the point at which the maximum value of the square of the magnitude of the acceleration is generated is the same as the point at which the maximum value of the magnitude of the acceleration is generated. In the local coordinate system, the vertical axis is defined in the direction from the user's head to the legs and is opposite to the vertical axis direction defined in FIG. 10 . Therefore, the formulas proven so far are all proven in the local coordinate system, and in the local coordinate system,
Figure 112014119922430-pat00055
The meaning of is because the vertical axis direction is defined oppositely in FIG.
Figure 112014119922430-pat00056
means a point. That is, at the point where the user's two legs cross each other (the point at which the maximum value of the user's waist height occurs), the magnitude of the vertical acceleration has the maximum value and at the same time the magnitude of the 3-axis acceleration (the 2 norm value of the acceleration vector) F(t) ) proves that it has a maximum value.

상기의 증명 과정으로부터, 디바이스의 가속도계에서 센싱되는 가속도의 크기의 최대값은 중력 가속도 및

Figure 112014119922430-pat00057
항으로 표현되는 수직축 가속도의 크기의 최대값과 동일함을 도출할 수 있다. 다만, 한가지 유의할 점은 수직축 가속도 크기의 최소값은 가속도 크기의 최소값과 다를 수 있다는 점이다. 따라서, 가속도 크기의 최소값을 가지는 시점은, 최소값과 인접하고 가속도 크기가 최대인 두 최대값의 시점을 평균하여 획득할 수 있다.From the above proof process, the maximum value of the magnitude of the acceleration sensed by the accelerometer of the device is the gravitational acceleration and
Figure 112014119922430-pat00057
It can be derived that is the same as the maximum value of the magnitude of the vertical acceleration expressed in terms. However, it should be noted that the minimum value of the vertical acceleration magnitude may be different from the minimum value of the acceleration magnitude. Accordingly, the viewpoint having the minimum value of the acceleration magnitude may be obtained by averaging the viewpoints of the two maximum values adjacent to the minimum value and having the largest acceleration magnitude.

상기 설명한 이론적인 증명 과정을 시뮬레이션을 통해 확인할 수 있다. 수직 방향의 최대 가속도의 크기를 0.1m/s2으로부터 30m/s2까지 0.1m/s2의 간격으로 변화시키고, 수평축 가속도는 가속도의 0.1배부터 0.9배까지 0.1배 간격으로 변화 시켰다. 이는 수직축 가속도의 최대값이 수평축 가속도의 최대값보다 더 크다는 실험적인 결과를 반영한 것이다. 또한 수직축 및 수평축 삼각 파형은 한주기에 대해서 0.01도의 간격으로 시뮬레이션을 수행하였다.The above-described theoretical proof process can be verified through simulation. The size of the maximum acceleration in the vertical direction from 0.1m / s 2 is changed at intervals of 0.1m / s 2 to 30m / s 2, the horizontal axis acceleration was changed to 0.1 times the interval from 0.1 times to 0.9 times of the acceleration. This reflects the experimental result that the maximum value of the vertical acceleration is larger than the maximum value of the horizontal acceleration. In addition, the vertical and horizontal triangular waveforms were simulated at intervals of 0.01 degree for one period.

시뮬레이션의 결과에서 수직축 가속도의 최대값이 발생되는 시점이 가속도 크기의 최대값이 발생되는 시점은 모든 경우에 대해 서로 동일하였다. 그러나 수직축 가속도의 최소값이 발생되는 시점은 가속도 크기의 최대값이 발생되는 시점과 서로 다른 경우가 존재하였다.In the simulation results, the point at which the maximum value of the vertical acceleration occurred and the point at which the maximum value of the magnitude of the acceleration occurred were the same for all cases. However, there existed a case where the time at which the minimum value of the vertical acceleration occurred was different from the time at which the maximum value of the magnitude of the acceleration was generated.

도 15는 시뮬레이션에서 지역 좌표계에서 수직축 가속도의 최소값이 나타나는 시점이 가속도 크기의 최소값이 나타나는 시점과 다를 수 있음을 나타낸 그래프이다.15 is a graph showing that the time point at which the minimum value of the vertical acceleration appears in the local coordinate system may be different from the time point at which the minimum value of the magnitude of the acceleration appears in the simulation.

증명에서 한가지 중요한 점은 이 모든 분석이 지역 좌표계에서 수행되었지만 가속도계가 주는 가속도는 모두 동체 좌표계에서 표현된다는 점이다. 여기서 지역 좌표계에서 수직축 가속도의 최대값이 발생되는 시점이 지역 좌표계에서 가속도 크기의 최대값이 발생되는 시점이 동일하다는 의미는, 동체 좌표계에서도 가속도 크기의 최대값 발생되는 시점과 동일함을 의미한다. 그 이유는 3축 가속도계에서 센싱된 가속도의 크기는 지역 좌표계에서 표현을 하거나 동체 좌표계에서 표현을 하거나 또는 기타 어떤 3축 수직 좌표계에서 표현을 하든 최대값 또는 최소값을 나타내는 시점은 동일하기 때문이다. 따라서 동체 좌표계에서 센싱된 가속도계의 3축 가속도값의 크기(3 x 1 가속도 벡터의 2-norm 값)의 최대값으로부터 중력 가속도만을 추출하고, 디바이스의 롤, 피치각을 구할 수 있다.One important point in the proof is that all these analyzes were performed in the local coordinate system, but the accelerations given by the accelerometer are all expressed in the body coordinate system. Here, the point at which the maximum value of the vertical acceleration is generated in the local coordinate system is the same as the point in time at which the maximum value of the magnitude of the acceleration is generated in the local coordinate system. The reason is that the magnitude of the acceleration sensed by the 3-axis accelerometer is expressed at the same time point at which the maximum or minimum value is expressed whether it is expressed in the local coordinate system, in the body coordinate system, or in any other 3-axis vertical coordinate system. Therefore, only the gravitational acceleration can be extracted from the maximum value of the 3-axis acceleration value of the accelerometer sensed in the body coordinate system (2-norm value of the 3 x 1 acceleration vector), and the roll and pitch angles of the device can be obtained.

최대값을 가지는 시점 및 최소값을 가지는 시점 정보를 획득할 수 있으므로, 디바이스의 제어부는 이 두 시점에 대하여 각 축 별로 가속도 값을 평균합산하여, 가속도 성분 중에서 수직축 가속도 성분 및 수평축 가속도 성분이 제거되고 중력축 가속도 성분만 존재하는 가속도 정보를 획득할 수 있다.Since the time point information having the maximum value and the time point information having the minimum value can be obtained, the control unit of the device averages the acceleration values for each axis with respect to these two time points, the vertical axis acceleration component and the horizontal axis acceleration component are removed from the acceleration components, and gravity Acceleration information in which only an axial acceleration component exists can be acquired.

결론적으로, 사용자의 이동에 따른 다이나믹(dynamic) 특성을 이용하여, 디바이스의 가속도계의 각 축에 대한 가속도 성분 중에서 중력 가속도 성분만을 분리하여 수학식 5와 수학식 6을 이용해서 정확한 롤 각 및 피치 각을 계산할 수 있다. 이렇게 계산한 롤 각 및 피치 각을 수학식 4에 대입하면 좌표변환 행렬을 도출할 수 있으며 동체 좌표계에서의 3축 가속도를 좌표 변환하여 지역 좌표계에서의 3축 가속도를 얻고, 지역 좌표계에서 X축 및 Y축에 표현된 수평축 가속도를 구함으로써, 사용자의 진행 방향에 대한 디바이스의 수평면 상에서 틀어진 각을 구할 수 있다. In conclusion, by using the dynamic characteristics according to the movement of the user, only the gravitational acceleration component is separated from the acceleration components for each axis of the accelerometer of the device, and the correct roll angle and pitch angle using Equations 5 and 6 can be calculated. By substituting the calculated roll angle and pitch angle into Equation 4, the coordinate transformation matrix can be derived. By obtaining the horizontal acceleration expressed on the Y-axis, it is possible to obtain a misaligned angle on the horizontal plane of the device with respect to the user's moving direction.

도 16 은 본 발명의 일 실시예에 따른 동체 좌표계에서 가속도 크기의 최대값을 구할 때 잡음으로 인한 오차를 최소화 하고자 가속도 성분을 필터링하는 방법을 도시한다.16 is a diagram illustrating a method of filtering an acceleration component in order to minimize an error due to noise when obtaining a maximum value of an acceleration magnitude in a moving body coordinate system according to an embodiment of the present invention.

디바이스의 가속도계에서 중력축 가속도 성분에 기초하여 측정된 디바이스의 회전각 정보는 잡음을 포함할 수 있는 문제가 있다. 따라서, 측정된 가속도 정보를 필터링하여 구하고자 하는 디바이스의 회전각의 오차를 줄일 수 있다.There is a problem in that the rotation angle information of the device measured based on the gravitational axis acceleration component in the accelerometer of the device may include noise. Accordingly, it is possible to reduce the error in the rotation angle of the device to be obtained by filtering the measured acceleration information.

사용자의 이동에 따라서 시간에 따라 일정한 주기를 가지고 가속도가 변하는 것은 앞에서 설명하였다. 따라서, 수직축 가속도 및 수평축 가속도는 각각의 주파수를 가질 수 있다. 설명의 편의를 위하여 “걸음 주파수”라고 칭하기로 한다. 사용자가 이동함에 있어서, 일정한 주기를 가지고 왼쪽 다리 및 오른쪽 다리를 교차하며 걸을 수 있으나, 항상 일정할 수는 없으므로 일정 구간에 대한 평균 주기를 구함으로써 걸음 주파수가 달라지더라도 적응적으로 사용자의 걸음 주파수를 추정할 수 있다.It has been described above that the acceleration changes with a certain period according to time according to the movement of the user. Accordingly, the vertical acceleration and the horizontal acceleration may have respective frequencies. For convenience of description, it will be referred to as “walking frequency”. When the user moves, the user can cross the left leg and the right leg with a constant cycle, but it is not always constant. Therefore, by obtaining the average cycle for a certain section, the user's walking frequency is adaptively can be estimated.

도 16에서, 수직축 가속도를 나타내는 그래프 상에서 수직축 가속도 크기의 최대값을 가지는 시점 29 및 최소값을 가지는 시점 30 에 대하여 가속도의 평균값을 구하면 중력 가속도가 추출되며, 센서 잡음으로 인한 오차가 발생할 수 있다. 따라서 시점 29 및 시점 30을 기준으로 하여 구간 T만큼 전후 시점을 통해서 양 시점의 가속도를 각각 평균 할 수 있다. 이러한 필터링 과정을 통해 동체 좌표계에서 얻은 가속도 평균값을 구하면 수직축 가속도 평균은 최대값 및 최소값의 합으로 서로 상쇄되고, 수평축 가속도는 0 이기 때문에 결국 잡음에 의한 오차가 줄어든 중력 가속도만 남는다. 만약 수평축 양의 가속도와 음의 가속도의 크기가 서로 비슷하다면 T를 반주기로 늘려서 전체 한주기를 평균함으로써 중력 가속도를 제거할 수 있다. 만약 수평축 양의 가속도와 음의 가속도의 크기가 서로 비슷하다면 자연수 N에 대해서 T를 N/2주기만큼 늘려서 N주기를 평균하여 중력 가속도를 제거하는 방법으로도 확장할 수 있다.In FIG. 16 , when the average value of acceleration is obtained for a time point 29 having a maximum value and a time point 30 having a minimum value on the graph representing the vertical acceleration magnitude, the gravitational acceleration is extracted, and an error may occur due to sensor noise. Therefore, the accelerations of the two viewpoints can be averaged through the time points before and after by the section T based on the time points 29 and 30, respectively. When the average acceleration value obtained from the body coordinate system is obtained through this filtering process, the vertical acceleration average is canceled by the sum of the maximum and minimum values, and since the horizontal acceleration is 0, only the gravitational acceleration with reduced error due to noise remains. If the magnitudes of the positive and negative accelerations on the horizontal axis are similar to each other, the gravitational acceleration can be removed by increasing T to half a period and averaging the entire period. If the magnitudes of the positive and negative accelerations on the horizontal axis are similar to each other, it can be extended to a method of removing the gravitational acceleration by averaging the N periods by increasing T by N/2 periods for a natural number N.

도 17 은 동체 좌표계에서 3축 가속도의 크기, 중력 가속도를 제거하였을 때의 크기, 중력 가속도의 참값을 나타낸 도면이다. 17 is a diagram showing the magnitude of the 3-axis acceleration, the magnitude when the gravitational acceleration is removed, and the true value of the gravitational acceleration in the body coordinate system.

3축 가속도의 크기는 사용자가 진행할 때의 수직축 가속도 및 수평축 가속도가 발생하여 중력 가속도의 참값을 기준으로 사인파와 유사한 형태의 큰 오차가 발생한다. 그러나 제안된 방법은 사용자의 진행 방향에 대한 수직축 가속도 및 수평축 가속도가 효과적으로 제거되어 중력 가속도의 참값과 거의 유사한 값을 추출함을 보여준다. 이는 본 발명에서 제안된 방법이 수학적 증명을 통해 최적의 해(solution)를 제공한다는 이론적 결론과 일치한다. 만약 동체 좌표계에서 사용자의 수직축 및 수평축 가속도를 제거하지 않은 가속도를 그대로 롤, 피치를 계산하는데 사용한다면 큰 자세 오차가 발생됨을 예상할 수 있다. 이 자세 오차는 좌표변환 오차를 크게 만들고 결국 지역 좌표계에서의 X, Y축 가속도 오차를 발생시킴으로써, 사용자의 진행 방향에 대한 디바이스의 틀어진 각 오차가 발생 됨을 의미한다.As for the magnitude of the 3-axis acceleration, vertical and horizontal acceleration occur when the user proceeds, and a large error similar to a sine wave occurs based on the true value of the gravitational acceleration. However, the proposed method shows that the vertical acceleration and the horizontal acceleration for the user's moving direction are effectively removed to extract a value almost similar to the true value of the gravitational acceleration. This is consistent with the theoretical conclusion that the method proposed in the present invention provides an optimal solution through mathematical proof. If the acceleration without removing the user's vertical and horizontal acceleration from the body coordinate system is used to calculate the roll and pitch, it can be expected that a large posture error will occur. This posture error makes the coordinate conversion error large and eventually causes an X and Y-axis acceleration error in the local coordinate system, which means that the device's angular error with respect to the user's moving direction is generated.

상기 과정을 통해 동체 좌표계에서의 가속도 성분 중 중력 가속도만을 추출하여 디바이스의 롤, 피치각을 구하고 수식 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 가속도값이다.Through the above process, by extracting only the gravitational acceleration among the acceleration components in the body coordinate system to obtain the roll and pitch angle of the device, and substituting it into the coordinate transformation matrix of Equation 4, the X, Y acceleration values in the local coordinate system can be obtained through the coordinate transformation. have. To obtain the X and Y accelerations in the local coordinate system, in Equation 4, the right side of the coordinate transformation 3 x 3 matrix C is calculated by multiplying the 3 x 1 acceleration vector [X-axis acceleration, Y-axis acceleration, Z-axis acceleration] T of the body coordinate system. The resulting 3 x 1 acceleration vector means the acceleration in the local coordinate system. Therefore, among the 3 x 1 acceleration vectors in the local coordinate system, the first two terms are the X and Y acceleration values in the local coordinate system.

지역 좌표계에서의 X, Y 가속도 값으로부터 사용자의 진행 방향에 대한 수평 축 디바이스의 틀어진 각을 구할 수도 있지만, 센서 잡음으로 인해 각오차가 발생할 수 있다. 본 개시에서는 이러한 잡음을 제거하는 방법으로서, 대역통과 필터링(Bandpass filtering) 기법을 사용할 것을 제안한다. Although it is possible to obtain a misaligned angle of the horizontal axis device with respect to the user's moving direction from the X and Y acceleration values in the local coordinate system, an angular error may occur due to sensor noise. The present disclosure proposes to use a bandpass filtering technique as a method for removing such noise.

도 18 은 지역 좌표계에서 표현된 X축, Y축 가속도의 잡음을 제거하는 방법을 나타낸 도면이다. 18 is a diagram illustrating a method of removing noise from X-axis and Y-axis acceleration expressed in a local coordinate system.

도 18에서 시점 50, 51 및 52는 동체 좌표계에서 구한 가속도 크기의 주파수를 시간에 따라 적응적으로 추정하는 과정을 나타낸다. 걸음 한 주기로부터 주파수를 구할 수도 있고, 걸음 N주기로부터 주파수를 구할 수도 있다. 이 주파수는 대역통과필터(Bandpass filter)의 중심 주파수(53)로 쓰이며, 시간축으로 사용자의 걸음 주파수에 따라 중심 주파수도 가변하도록 설계할 수 있다. 대역 통과 필터의 대역폭(54) 역시 중요한 파라미터이며, 대역폭은 튜닝을 통해 결정될 수 있다. 지역 좌표계에서 표현된 X, Y축 가속도를 대역통과 필터링을 이용하면 센서 잡음이 줄어든 가속도를 얻을 수 있다.In FIG. 18, viewpoints 50, 51, and 52 show a process of adaptively estimating the frequency of the acceleration magnitude obtained from the body coordinate system according to time. The frequency can be obtained from one step cycle, or the frequency can be obtained from the N step cycle. This frequency is used as the center frequency 53 of the bandpass filter, and it can be designed to vary the center frequency according to the user's step frequency on the time axis. The bandwidth 54 of the bandpass filter is also an important parameter, and the bandwidth can be determined through tuning. By bandpass filtering the X and Y axis acceleration expressed in the local coordinate system, it is possible to obtain an acceleration with reduced sensor noise.

도 19 는 본 발명의 일 실시예에 따른 디바이스의 틀어진 각을 도시한다.19 shows a misaligned angle of a device according to an embodiment of the present invention.

사용자의 이동(진행) 방향에 대하여 디바이스는 항상 일치하는 방향으로 위치할 수 없으며 틀어진(회전) 각을 가지고 위치할 수 있다. 도 19에 도시된 바와 같이, 사용자의 진행 방향이 지역 좌표계 상의 X축 및 Y축 상에 일정한 각도를 가지고 위치할 수 있다. 지역 좌표계 상 대역통과 필터링을 적용한 X축에 대한 가속도 값을 Ax라고 하고, 지역 좌표계 상 대역통과 필터링을 적용한 Y축에 대한 가속도 값을 Ay라고 할 때, 지역 좌표계의 X축, Y축 수평면 상 사용자의 진행 방향에 대한 디바이스의 틀어진 각은 하기의 수학식 17과 같이 나타낼 수 있다.The device may not always be positioned in the same direction with respect to the user's movement (progression) direction, but may be positioned with an erroneous (rotational) angle. As shown in FIG. 19 , the user's moving direction may be positioned at a constant angle on the X axis and the Y axis on the local coordinate system. Assuming that the acceleration value on the X-axis to which bandpass filtering is applied in the local coordinate system is Ax, and the acceleration value on the Y-axis to which the bandpass filtering is applied in the local coordinate system is Ay, the user on the horizontal plane of the X-axis and Y-axis of the local coordinate system The misaligned angle of the device with respect to the traveling direction of , may be expressed as in Equation 17 below.

Figure 112014119922430-pat00058
Figure 112014119922430-pat00058

상기의 수학식 17에서와 같이 디바이스의 틀어진 각을 측정함으로써 디바이스 내의 다양한 어플리케이션에 적용시킬 수 있다.By measuring the misaligned angle of the device as in Equation 17 above, it can be applied to various applications within the device.

도 20 은 지역 좌표계의 X축, Y축으로 이루어진 중력 가속도와 수직인 수평면 상에서 사용자의 진행 방향에 대한 디바이스의 틀어진 각 추정 오차를 크기가 작은 오차부터 큰 오차까지 실험적으로 획득한 그래프이다. 20 is a graph obtained experimentally from small errors to large errors of the device's misaligned angular estimation error with respect to the user's moving direction on a horizontal plane perpendicular to the gravitational acceleration made up of the X and Y axes of the local coordinate system.

도 20의 (a)는 본 발명에서 제안된 방법으로 중력 가속도를 추출해서 사용자의 진행 방향에 대한 휴대폰의 틀어진 각을 추정한 결과와, 중력 가속도 이외에 수직, 수평축 가속도가 포함된 가속도를 그대로 이용한 추정 결과를 나타낸 것이다. 도 20의 (b)는 (a) 그래프의 각 측정 오차 범위를 확대하여 나타낸 그래프이다. 도 20의 (a)에서와 같이 중력 가속도 이외의 가속도 성분이 제대로 제거되지 못할 경우, 디바이스의 자세오차가 발생되어 잘못된 좌표변환을 통해 수평축 가속도의 각 성분도 크게 왜곡되어 추정 오차도 매우 커진다. 도면에서의 각 추정 오차는 시뮬레이션이 아니라 실험을 통해 얻어진 데이터를 사용하여 도출된 결과이다.Figure 20 (a) shows the result of estimating the wrong angle of the mobile phone with respect to the user's moving direction by extracting the gravitational acceleration by the method proposed in the present invention, and the estimation using the acceleration including the vertical and horizontal accelerations in addition to the gravitational acceleration. the results are shown. 20 (b) is a graph showing an enlarged measurement error range of the graph (a). As shown in (a) of FIG. 20 , when acceleration components other than gravitational acceleration are not properly removed, a posture error of the device is generated, and each component of the horizontal acceleration is greatly distorted through incorrect coordinate transformation, resulting in a very large estimation error. Each estimation error in the drawing is a result derived using data obtained through experiments, not simulations.

도 20에 도시된 바와 같이, 0도부터 45도 간격으로 315도까지 8개의 각오차에 대해 총 26번의 테스트를 진행하였다. 모든 테스트로부터 1354번의 걸음이 발생하였으며 각 걸음에 대한 각 오차를 크기순으로 나타낸 것이다. 각오차의 평균은 1.2도 발생하였고 표준편차는 9.3도 발생하였으며, 이 결과는 실제 테스트롤 통해, 본 발명에서 가속도계만을 사용해서 사용자의 진행 방향에 대한 디바이스의 틀어진 각을 구하는 이론적인 방법에 대한 검증 결과라 할 수 있다.As shown in FIG. 20 , a total of 26 tests were performed for 8 angular errors from 0° to 315° at intervals of 45°. 1354 steps occurred from all tests, and each error for each step is shown in order of magnitude. The average of the angle error was 1.2 degrees and the standard deviation was 9.3 degrees, and this result was verified through an actual test, the theoretical method of obtaining the misaligned angle of the device with respect to the user's moving direction using only the accelerometer in the present invention can be considered a result.

도 21 은 본 발명의 일 실시예에 따른 디바이스의 구성을 나타내는 블록도이다.21 is a block diagram illustrating the configuration of a device according to an embodiment of the present invention.

본 발명의 일 실시예에 따른 디바이스(100)는 제어부(110), 센싱부(120), 입출력부(130) 및 저장부(140)를 포함할 수 있다. 추가적으로 디바이스의 정보가 표시되는 표시부(미도시) 및 타 디바이스와의 통신을 수행하는 통신부(미도시)를 더 포함할 수도 있다.The device 100 according to an embodiment of the present invention may include a control unit 110 , a sensing unit 120 , an input/output unit 130 , and a storage unit 140 . Additionally, it may further include a display unit (not shown) for displaying device information and a communication unit (not shown) for communicating with other devices.

센싱부(120)는 디바이스(100) 외부의 다양한 외부 정보를 획득할 수 있다. 디바이스의 가속도를 획득하는 가속도계(125)를 포함할 수 있으며, 그밖에 온도, 습도, 위치, 압력 등 다양한 환경 정보를 측정할 수 있다.The sensing unit 120 may acquire various external information outside the device 100 . It may include an accelerometer 125 that acquires the acceleration of the device, and may measure various environmental information such as temperature, humidity, location, and pressure.

입출력부(130)는 디바이스(100)의 외부로부터 수신되는 정보 및 명령을 수신하는 입력부 및 디바이스(100) 내부에서 처리된 정보 및 명령을 외부로 전송하는 출력부를 포함할 수 있다.The input/output unit 130 may include an input unit for receiving information and commands received from the outside of the device 100 and an output unit for transmitting information and commands processed inside the device 100 to the outside.

저장부(140)는 디바이스(100) 내부에서 처리되는 정보를 저장할 수 있으며, 디바이스(100) 외부에서 수신되는 정보를 저장할 수 있다.The storage unit 140 may store information processed inside the device 100 , and may store information received outside the device 100 .

본 발명의 일실시예에 따른 디바이스(100)는 운영체제를 내장하여 인터넷 접속이나 각종 실행 프로그램을 실행할 수 있는 스마트폰 일 수 있다. 스마트폰은 디지털 휴대기기에 운영체계 및 통신 기능을 탑재하여 다양한 컨텐트를 편리한 이용자 환경(UI/UX)에서 이용할 수 있도록 한다. 또한 본 발명의 단말에 멀티미디어 플레이어, 퍼스널 컴퓨터 등의 기기가 해당될 수 있다.The device 100 according to an embodiment of the present invention may be a smart phone capable of executing Internet access or various execution programs by embedding an operating system. Smartphones are equipped with operating systems and communication functions in digital portable devices so that various contents can be used in a convenient user environment (UI/UX). In addition, devices such as a multimedia player and a personal computer may correspond to the terminal of the present invention.

본 발명의 일 실시예에 따른 제어부(110)는 디바이스에서 센싱되는 가속도 정보에 대하여 상기의 수학식 1 내지 17의 과정을 처리할 수 있다. 디바이스에 입력되는 다양한 정보들을 기설정된 처리과정에 따라 수행할 수 있다.The control unit 110 according to an embodiment of the present invention may process the processes of Equations 1 to 17 above with respect to acceleration information sensed by the device. Various information input to the device may be performed according to a preset processing process.

제어부(110)는 획득된 가속도 정보의 좌표를 변환하고, 변환된 좌표 상에서의 가속도 정보를 필터링하며, 변환된 좌표 상에서의 중력축 가속도 정보를 이용하여 디바이스의 진행 방향에 대한 회전각을 결정할 수 있다. 이 경우, 중력축 가속도 정보는 가속도 정보에서 디바이스의 진행 방향에 대한 수직축 및 수평축 가속도 성분이 최대인 시점에 대한 정보를 이용하여 도출되는 정보일 수 있다.The controller 110 may transform the coordinates of the acquired acceleration information, filter the acceleration information on the transformed coordinates, and determine the rotation angle with respect to the moving direction of the device using the gravitational axis acceleration information on the transformed coordinates. . In this case, the gravitational axis acceleration information may be information derived from the acceleration information using information about a time point in which the vertical and horizontal acceleration components with respect to the moving direction of the device are maximum.

제어부(110)는 획득된 가속도 정보를 디바이스 기준의 좌표계 상의 좌표에서 중력 방향 기준의 좌표계 상의 좌표로 변환할 수 있다.The controller 110 may convert the obtained acceleration information from coordinates on a coordinate system based on the device to coordinates on a coordinate system based on a gravity direction.

제어부(110)는 가속도 정보를 주파수 영역으로 변환한 이후에 필터링할 수 있다. 이 경우의 필터링은 대역통과 필터링(bandpass filtering)일 수 있다. 보다 구체적으로, 제어부(110)는 주파수 영역으로 변환된 가속도 정보에서, 디바이스(100)의 다이내믹(dynamic) 특성을 이용하여 결정된 중심 주파수에 기초하여 대역통과 필터링(bandpass filtering)할 수 있다.The controller 110 may filter the acceleration information after converting it into a frequency domain. In this case, the filtering may be bandpass filtering. More specifically, the controller 110 may perform bandpass filtering from the frequency domain-converted acceleration information based on a center frequency determined using the dynamic characteristics of the device 100 .

제어부(110)는 입출력부(130)를 통해 입력된 데이터를 인코딩 또는 디코딩한다. 제어부(110)는 디바이스(100)의 운영체계(Operating System; OS)에 기반하여 사용자 인터페이스를 제공한다. 이러한 사용자 인터페이스는 사용자의 사용태양을 반영한 것일 수가 있다. The control unit 110 encodes or decodes data input through the input/output unit 130 . The controller 110 provides a user interface based on an operating system (OS) of the device 100 . Such a user interface may reflect a user's usage mode.

표시부(미도시)는 유저 인터페이스 환경에서 디바이스에 의해 처리된 데이터를 표시할 수 있다. 그 밖에 단말 사용자의 조작 명령이 요구되는 경우, 다양한 조작 명령을 입력하도록 안내하는 정보를 화면에 표시할 수 있다.The display unit (not shown) may display data processed by the device in a user interface environment. In addition, when a terminal user's operation command is requested, information for guiding to input various operation commands may be displayed on the screen.

통신부(미도시)는 타 디바이스로부터 데이터 및 제어 명령을 송수신한다. 통신부(150)로는 적외선 통신 모듈, 전파 통신 모듈, 광학식 통신 모듈 등의 공지의 통신 모듈이 사용될 수 있다. 가령, 적외선 통신 표준인 IrDA (Infrared Data Association) 프로토콜을 만족하는 적외선 통신 모듈이 통신부로 사용될 수 있을 것이다. 또 다른 예로, 2.4GHz 주파수를 이용한 통신 모듈이나 블루투스(Bluetooth)를 이용한 통신 모듈이 통신부로 사용될 수도 있을 것이다.A communication unit (not shown) transmits and receives data and control commands from other devices. As the communication unit 150 , a known communication module such as an infrared communication module, a radio communication module, or an optical communication module may be used. For example, an infrared communication module that satisfies an infrared communication standard IrDA (Infrared Data Association) protocol may be used as the communication unit. As another example, a communication module using a 2.4 GHz frequency or a communication module using Bluetooth may be used as the communication unit.

본 발명의 일 실시예에 따른 센싱부(120)는 디바이스의 내부 또는 외부로부터 측정가능한 요소들을 센싱할 수 있다. 본 발명의 일 실시예에 따른 센싱부(120)는 가속도계(125)를 포함할 수 있으며, 가속도계(125)는 3차원 공간에서의 디바이스의 움직임을 가속도 정보로서 획득할 수 있다.The sensing unit 120 according to an embodiment of the present invention may sense measurable elements from inside or outside the device. The sensing unit 120 according to an embodiment of the present invention may include an accelerometer 125 , and the accelerometer 125 may acquire the motion of the device in a 3D space as acceleration information.

본 발명의 일 실시예에 따른 입출력부(130)는 디바이스 외부에서 명령을 수신하고, 처리된 정보를 출력하는 역할을 수행할 수 있다. 예를 들어, 스마트폰과 같은 디바이스의 경우 키 또는 터치 입력을 수신할 수 있으며, 처리된 정보를 스크린 상에 표시하는 방식으로 출력하거나 음향으로 출력할 수 있다.The input/output unit 130 according to an embodiment of the present invention may serve to receive a command from the outside of the device and output processed information. For example, in the case of a device such as a smartphone, a key or touch input may be received, and the processed information may be output in a way that is displayed on the screen or may be output as sound.

입출력부(130) 중 입력부는 표시부에서 표시되는 컨텐트 등의 데이터를 입력받는 인터페이스로서 범용 직렬 버스(Universal Serial Bus, USB), 파타(Parallel Advanced Technology Attachment, PATA) 또는 사타(Serial Advanced Technology Attachment, SATA), 플래쉬 미디어(Flash Media), 이더넷(Ethernet), 와이파이(Wi-Fi), 블루투스(Bluetooth)) 중 적어도 하나를 포함할 수 있다. 경우에 따라서는, 디바이스(100)는 광디스크 드라이브, 하드 디스크 등와 같은 정보저장장치(미도시)를 구비하여 이를 통해 데이터를 입력받을 수도 있다.The input unit of the input/output unit 130 is an interface for receiving data such as content displayed on the display unit, and is a Universal Serial Bus (USB), Parallel Advanced Technology Attachment (PATA), or Serial Advanced Technology Attachment (SATA). ), flash media, Ethernet, Wi-Fi, and Bluetooth)). In some cases, the device 100 may be provided with an information storage device (not shown) such as an optical disk drive or a hard disk to receive data through it.

또한 본 발명의 일 실시예에 따른 디바이스(100)는 광학 이미지 센서를 포함한 카메라부를 포함할 수 있다. 카메라 모듈을 통해 수신되는 이미지는 하나의 데이터로 처리될 수 있다.Also, the device 100 according to an embodiment of the present invention may include a camera unit including an optical image sensor. An image received through the camera module may be processed as one data.

입력부는 카메라부 이외에 온도, 습도 등의 센서부를 더 포함할 수 있다. 디바이스 내부의 온도를 측정하는 온도 센서부뿐만 아니라, 디바이스 외부의 온도를 측정하는 온도 센서부 또한 포함할 수 있으며, 습도를 측정하는 습도 측정부 또한 입력부에 해당될 수 있다. The input unit may further include a sensor unit such as temperature and humidity in addition to the camera unit. The temperature sensor unit for measuring the internal temperature of the device may also include a temperature sensor unit for measuring the external temperature of the device, and the humidity measuring unit for measuring humidity may also correspond to the input unit.

또한, 입력부는 터치패널부와 화상패널부가 레이어구조를 갖는 터치 스크린일 수 있다. 터치패널부는 예를 정전용량 방식 터치패널, 저항막 방식 터치패널, 적외선 방식 터치패널 등일 수 있다. 화상패널부는 예를 들어 액정패널, 유기발광패널 등일 수 있다. 이러한 터치 스크린 패널을 잘 알려져 있으므로 패널 구조에 대한 상세한 설명은 생략한다. 화상패널부는 사용자 인터페이스의 그래픽을 표시할 수 있다. Also, the input unit may be a touch screen in which the touch panel unit and the image panel unit have a layered structure. The touch panel unit may be, for example, a capacitive touch panel, a resistive touch panel, or an infrared touch panel. The image panel unit may be, for example, a liquid crystal panel, an organic light emitting panel, or the like. Since such a touch screen panel is well known, a detailed description of the panel structure will be omitted. The image panel unit may display a graphic of a user interface.

본 발명의 일 실시예에 따른 저장부(140)는 제어부(110)에서 처리되는 정보들을 저장할 수 있다. 또한, 센싱부(120)에서 센싱되는 정보들을 저장할 수 있으며, 타 기기로부터 수신되는 정보를 저장할 수도 있다. 이러한 정보는 저장부(140) 내에서 데이터베이스(DB)화 되어 분류되어 저장될 수 있다.The storage unit 140 according to an embodiment of the present invention may store information processed by the control unit 110 . In addition, information sensed by the sensing unit 120 may be stored, and information received from other devices may be stored. Such information may be classified and stored as a database (DB) in the storage unit 140 .

한편, 상술한 본 발명의 실시예들은 컴퓨터에서 실행될 수 있는 프로그램으로 작성가능하고, 컴퓨터로 읽을 수 있는 기록매체를 이용하여 상기 프로그램을 동작시키는 범용 디지털 컴퓨터에서 구현될 수 있다. 상기 컴퓨터로 읽을 수 있는 기록매체는 마그네틱 저장매체(예를 들면, 롬, 플로피 디스크, 하드디스크 등) 및 광학적 판독 매체(예를 들면, 시디롬, 디브이디 등)와 같은 저장매체를 포함한다.Meanwhile, the above-described embodiments of the present invention can be written as a program that can be executed on a computer, and can be implemented in a general-purpose digital computer that operates the program using a computer-readable recording medium. The computer-readable recording medium includes a storage medium such as a magnetic storage medium (eg, a ROM, a floppy disk, a hard disk, etc.) and an optically readable medium (eg, a CD-ROM, a DVD, etc.).

이제까지 본 발명에 대하여 그 바람직한 실시예들을 중심으로 살펴보았다. 본 발명이 속하는 기술 분야에서 통상의 지식을 가진 자는 본 발명이 본 발명의 본질적인 특성에서 벗어나지 않는 범위에서 변형된 형태로 구현될 수 있음을 이해할 수 있을 것이다. 그러므로 개시된 실시예들은 한정적인 관점이 아니라 설명적인 관점에서 고려되어야 한다. 본 발명의 범위는 전술한 설명이 아니라 특허청구범위에 나타나 있으며, 그와 동등한 범위 내에 있는 모든 차이점은 본 발명에 포함된 것으로 해석되어야 할 것이다.So far, the present invention has been looked at with respect to preferred embodiments thereof. Those of ordinary skill in the art to which the present invention pertains will understand that the present invention can be implemented in a modified form without departing from the essential characteristics of the present invention. Therefore, the disclosed embodiments are to be considered in an illustrative rather than a restrictive sense. The scope of the present invention is indicated in the claims rather than the foregoing description, and all differences within the scope equivalent thereto should be construed as being included in the present invention.

100: 디바이스100: device

Claims (32)

디바이스의 진행 방향에 대한 회전각을 결정하는 방법에 있어서,
상기 디바이스의 가속도 센서로부터 상기 디바이스의 움직임에 대한 가속도 정보를 획득하는 단계;
상기 디바이스의 상기 획득된 가속도 정보의 좌표를 변환하는 단계;
상기 디바이스의 상기 변환된 좌표 상에서의 가속도 정보를 필터링하는 단계; 및
상기 변환된 좌표 상에서의 중력축 가속도 정보를 이용하여 상기 디바이스의 진행 방향에 대한 회전각을 결정하는 단계;
를 포함하고,
상기 중력축 가속도 정보는 상기 가속도 정보에서 상기 디바이스의 변환된 좌표 상에서의 수직축 가속도 성분이 최대인 시점의 전후 구간에서의 제1 평균 가속도 값 및 상기 수직축 가속도 성분이 최소인 시점의 전후 구간에서의 제2 평균 가속도 값의 평균 값에 기초하여 결정되는, 회전각 결정 방법.
In the method of determining the rotation angle with respect to the traveling direction of the device,
obtaining acceleration information on the movement of the device from an acceleration sensor of the device;
transforming the coordinates of the acquired acceleration information of the device;
filtering the acceleration information on the transformed coordinates of the device; and
determining a rotation angle with respect to the moving direction of the device by using the information on the acceleration of the gravitational axis on the converted coordinates;
including,
The gravitational axis acceleration information includes a first average acceleration value in a section before and after a point in time when the vertical acceleration component on the converted coordinates of the device in the acceleration information is maximum, and a first average acceleration value in a section before and after the point in time when the vertical acceleration component is the minimum. 2 A method for determining a rotation angle, which is determined based on an average value of the average acceleration values.
제1항에 있어서,
상기 변환된 좌표 상에서의 수직축 가속도 성분이 최대인 시점은, 상기 획득된 가속도의 크기가 최대값을 가지는 시점과 동일한, 회전각 결정 방법.
According to claim 1,
A point in time at which the vertical acceleration component on the transformed coordinates is maximum is the same as a point in time when the magnitude of the obtained acceleration has a maximum value.
제1항에 있어서,
상기 변환된 좌표 상에서의 수직축 가속도 성분의 최소값은,
상기 변환된 좌표 상에서의 상기 수직축 가속도 성분의 최대값을 가지는 시점에 대한 정보를 이용하여 도출되는, 회전각 결정 방법.
According to claim 1,
The minimum value of the vertical acceleration component on the transformed coordinates is,
A method for determining a rotation angle derived using information about a time point having a maximum value of the vertical acceleration component on the transformed coordinates.
제1항에 있어서,
상기 가속도 정보에 포함되는 수평축 가속도 성분은 상기 디바이스의 진행 방향에 대한 가속도 정보이고, 상기 수직축 가속도 성분은 상기 디바이스 및 수평면 간의 가속도 성분인, 회전각 결정 방법.
According to claim 1,
The horizontal acceleration component included in the acceleration information is acceleration information for a moving direction of the device, and the vertical acceleration component is an acceleration component between the device and a horizontal plane.
제1항에 있어서,
상기 획득된 가속도 정보의 좌표를 변환하는 단계는,
상기 가속도 정보를 디바이스 기준의 좌표계 상의 좌표에서 중력 방향 기준의 좌표계 상의 좌표로 변환하는 것을 특징으로 하는, 회전각 결정 방법.
According to claim 1,
The step of transforming the coordinates of the obtained acceleration information comprises:
A method for determining a rotation angle, characterized in that the acceleration information is converted from coordinates on a coordinate system based on a device to coordinates on a coordinate system based on a gravity direction.
제5항에 있어서,
상기 중력 방향 기준의 좌표계는 서로 직교하는 세 축을 포함하고,
상기 세 축 중 제1축은 중력 가속도 방향과 평행한 축인, 회전각 결정 방법.
6. The method of claim 5,
The coordinate system based on the direction of gravity includes three axes orthogonal to each other,
The first of the three axes is an axis parallel to the direction of gravitational acceleration.
제6항에 있어서,
상기 세 축 중 제2축은 상기 디바이스 기준의 좌표계 상의 하나의 축을 롤(roll)각 회전하여 정의되고, 상기 세 축 중 제3축은 상기 디바이스 기준의 좌표계 상의 또 다른 하나의 축을 피치(pitch)각 회전하여 정의되는, 회전각 결정 방법.
7. The method of claim 6,
A second axis of the three axes is defined by rotating one axis on the device reference coordinate system by a roll angle, and a third axis of the three axes rotates another axis on the device reference coordinate system by a pitch angle A method of determining the angle of rotation, which is defined by
제1항에 있어서,
상기 변환된 좌표 상에서의 수직축 가속도 성분 및 수평축 가속도 성분은 동일한 주기값을 가지고 변하는 것을 특징으로 하는, 회전각 결정 방법.
According to claim 1,
A method for determining a rotation angle, characterized in that the vertical acceleration component and the horizontal acceleration component on the converted coordinates change with the same periodic value.
제1항에 있어서,
상기 변환된 좌표 상에서의 수직축 가속도 성분 및 수평축 가속도 성분은 서로 90도의 위상차를 가지는 것을 특징으로 하는, 회전각 결정 방법.
According to claim 1,
A method for determining a rotation angle, characterized in that the vertical acceleration component and the horizontal acceleration component on the converted coordinates have a phase difference of 90 degrees from each other.
제9항에 있어서,
상기 수직축 가속도 성분이 상기 수평축 가속도 성분보다 90도 위상이 더 빠른 것을 특징으로 하는, 회전각 결정 방법.
10. The method of claim 9,
The rotation angle determination method, characterized in that the vertical axis acceleration component is 90 degrees faster than the horizontal axis acceleration component.
제9항에 있어서,
상기 수직축 가속도 성분이 상기 수평축 가속도 성분보다 90도 위상이 더 느린 것을 특징으로 하는, 회전각 결정 방법.
10. The method of claim 9,
The rotation angle determination method, characterized in that the vertical axis acceleration component is 90 degrees slower than the horizontal axis acceleration component.
제1항에 있어서,
상기 중력축 가속도 정보는, 상기 디바이스의 상기 변환된 좌표 상에서의 수직축 및 수평축 가속도 성분의 크기를 복수의 주기에 대하여 평균함으로써 도출되는, 회전각 결정 방법.
According to claim 1,
The gravitational axis acceleration information is derived by averaging the magnitudes of vertical and horizontal acceleration components on the transformed coordinates of the device over a plurality of periods.
제1항에 있어서,
상기 가속도 정보를 필터링하는 단계는,
상기 가속도 정보를 주파수 영역으로 변환하는 단계를 더 포함하는, 회전각 결정 방법.
According to claim 1,
The step of filtering the acceleration information includes:
The method further comprising converting the acceleration information into a frequency domain.
제13항에 있어서,
상기 가속도 정보를 필터링하는 단계는,
상기 가속도 정보를 대역통과 필터링(bandpass filtering)하는 것을 특징으로 하는, 회전각 결정 방법.
14. The method of claim 13,
The step of filtering the acceleration information includes:
A method for determining a rotation angle, characterized in that the acceleration information is bandpass filtered.
제14항에 있어서,
상기 대역통과 필터링하는 단계는,
상기 주파수 영역으로 변환된 가속도 정보에서, 상기 디바이스의 다이내믹(dynamic) 특성을 이용하여 결정된 중심 주파수에 기초하여 필터링하는 것을 특징으로 하는, 회전각 결정 방법.
15. The method of claim 14,
The bandpass filtering comprises:
In the acceleration information converted to the frequency domain, the method of determining a rotation angle, characterized in that filtering based on a center frequency determined using a dynamic (dynamic) characteristic of the device.
제15항에 있어서,
상기 디바이스의 다이내믹 특성은,
상기 디바이스 사용자가 상기 진행 방향으로 걷는(step) 자세에 의하여 획득되는, 회전각 결정 방법.
16. The method of claim 15,
The dynamic characteristics of the device are,
A method of determining a rotation angle obtained by a posture in which the device user steps in the traveling direction.
진행 방향에 대한 회전각을 결정하는 디바이스에 있어서,
상기 디바이스의 움직임에 대한 가속도 정보를 획득하는 가속도 센싱부;
상기 획득되는 가속도 정보를 저장하는 저장부; 및
제어부를 포함하고,
상기 제어부는,
상기 획득된 가속도 정보의 좌표를 변환하고, 상기 변환된 좌표 상에서의 가속도 정보를 필터링하며, 상기 변환된 좌표 상에서의 중력축 가속도 정보를 이용하여 상기 디바이스의 진행 방향에 대한 회전각을 결정하고,
상기 중력축 가속도 정보는 상기 가속도 정보에서 상기 디바이스의 변환된 좌표 상에서의 수직축 가속도 성분이 최대인 시점의 전후 구간에서의 제1 평균 가속도 값 및 상기 수직축 가속도 성분이 최소인 시점의 전후 구간에서의 제2 평균 가속도 값의 평균 값에 기초하여 결정되는, 회전각 결정 디바이스.
A device for determining a rotation angle with respect to a traveling direction, the device comprising:
an acceleration sensing unit to obtain acceleration information on the movement of the device;
a storage unit for storing the obtained acceleration information; and
comprising a control unit;
The control unit is
Transform the coordinates of the obtained acceleration information, filter the acceleration information on the transformed coordinates, and determine a rotation angle with respect to the moving direction of the device using the gravitational axis acceleration information on the transformed coordinates,
The gravitational axis acceleration information includes a first average acceleration value in a section before and after a point in time when the vertical acceleration component on the converted coordinates of the device in the acceleration information is maximum, and a first average acceleration value in a section before and after the point in time when the vertical acceleration component is the minimum. 2 The rotation angle determining device, which is determined based on an average value of the average acceleration values.
제17항에 있어서,
상기 변환된 좌표 상에서의 수직축 가속도 성분이 최대인 시점은, 상기 획득된 가속도의 크기가 최대값을 가지는 시점과 동일한, 회전각 결정 디바이스.
18. The method of claim 17,
A point in time at which the vertical acceleration component on the transformed coordinates is maximum is the same as a point in time when the magnitude of the obtained acceleration has a maximum value.
제17항에 있어서,
상기 제어부는, 상기 변환된 좌표 상에서의 수직축 가속도 성분의 최소값을,
상기 변환된 좌표 상에서의 상기 수직축 가속도 성분의 최대값을 가지는 시점에 대한 정보를 이용하여 도출하는, 회전각 결정 디바이스.
18. The method of claim 17,
The control unit, the minimum value of the vertical acceleration component on the transformed coordinates,
A device for determining a rotation angle, which is derived using information about a time point having a maximum value of the vertical acceleration component on the transformed coordinates.
제17항에 있어서,
상기 가속도 정보에 포함되는 수평축 가속도 성분은 상기 디바이스의 진행 방향에 대한 가속도 정보이고, 상기 수직축 가속도 성분은 상기 디바이스 및 수평면 간의 가속도 성분인, 회전각 결정 디바이스.
18. The method of claim 17,
The horizontal acceleration component included in the acceleration information is acceleration information for a traveling direction of the device, and the vertical acceleration component is an acceleration component between the device and a horizontal plane.
제17항에 있어서,
상기 제어부는
상기 획득된 가속도 정보를 디바이스 기준의 좌표계 상의 좌표에서 중력 방향 기준의 좌표계 상의 좌표로 변환하는 것을 특징으로 하는, 회전각 결정 디바이스.
18. The method of claim 17,
the control unit
A device for determining a rotation angle, characterized in that the obtained acceleration information is converted from coordinates on a coordinate system based on a device to coordinates on a coordinate system based on a gravity direction.
제21항에 있어서,
상기 중력 방향 기준의 좌표계는 서로 직교하는 세 축을 포함하고,
상기 세 축 중 제1축은 중력 가속도 방향과 평행한 축인, 회전각 결정 디바이스.
22. The method of claim 21,
The coordinate system based on the direction of gravity includes three axes orthogonal to each other,
The first of the three axes is an axis parallel to the direction of gravitational acceleration.
제22항에 있어서,
상기 세 축 중 제2축은 상기 디바이스 기준의 좌표계 상의 하나의 축을 롤(roll)각 회전하여 정의되고, 상기 세 축 중 제3축은 상기 디바이스 기준의 좌표계 상의 또 다른 하나의 축을 피치(pitch)각 회전하여 정의되는, 회전각 결정 디바이스.
23. The method of claim 22,
A second axis of the three axes is defined by rotating one axis on the device reference coordinate system by a roll angle, and a third axis of the three axes rotates another axis on the device reference coordinate system by a pitch angle Defined by, rotation angle determining device.
제17항에 있어서,
상기 변환된 좌표 상에서의 수직축 가속도 성분 및 수평축 가속도 성분은 동일한 주기값을 가지고 변하는 것을 특징으로 하는, 회전각 결정 디바이스.
18. The method of claim 17,
The rotation angle determining device, characterized in that the vertical acceleration component and the horizontal acceleration component on the transformed coordinates change with the same periodic value.
제17항에 있어서,
상기 변환된 좌표 상에서의 수직축 가속도 성분 및 수평축 가속도 성분은 서로 90도의 위상차를 가지는 것을 특징으로 하는, 회전각 결정 디바이스.
18. The method of claim 17,
A rotation angle determining device, characterized in that the vertical acceleration component and the horizontal acceleration component on the transformed coordinates have a phase difference of 90 degrees from each other.
제25항에 있어서,
상기 수직축 가속도 성분이 상기 수평축 가속도 성분보다 90도 위상이 더 빠른 것을 특징으로 하는, 회전각 결정 디바이스.
26. The method of claim 25,
The rotation angle determining device, characterized in that the vertical acceleration component is 90 degrees faster than the horizontal acceleration component.
제25항에 있어서,
상기 수직축 가속도 성분이 상기 수평축 가속도 성분보다 90도 위상이 더 느린 것을 특징으로 하는, 회전각 결정 디바이스.
26. The method of claim 25,
The rotation angle determining device, characterized in that the vertical acceleration component is 90 degrees out of phase with the horizontal acceleration component.
제17항에 있어서,
상기 중력축 가속도 정보는, 상기 디바이스의 진행 방향에 대한 수직축 및 수평축 가속도 성분의 크기를 복수의 주기에 대하여 평균함으로써 도출되는, 회전각 결정 디바이스.
18. The method of claim 17,
The gravitational axis acceleration information is derived by averaging the magnitudes of vertical and horizontal acceleration components with respect to the traveling direction of the device over a plurality of periods, the rotation angle determining device.
제17항에 있어서,
상기 제어부는,
상기 가속도 정보를 주파수 영역으로 변환한 이후에 필터링하는 것을 특징으로 하는, 회전각 결정 디바이스.
18. The method of claim 17,
The control unit is
The rotation angle determination device, characterized in that the filtering is performed after converting the acceleration information into a frequency domain.
제29항에 있어서,
상기 제어부는,
상기 가속도 정보를 대역통과 필터링(bandpass filtering)하는 것을 특징으로 하는, 회전각 결정 디바이스.
30. The method of claim 29,
The control unit is
A device for determining a rotation angle, characterized in that the acceleration information is bandpass filtered.
제30항에 있어서,
상기 제어부는,
상기 주파수 영역으로 변환된 가속도 정보에서, 상기 디바이스의 다이내믹(dynamic) 특성을 이용하여 결정된 중심 주파수에 기초하여 대역통과 필터링(bandpass filtering)하는 것을 특징으로 하는, 회전각 결정 디바이스.
31. The method of claim 30,
The control unit is
In the acceleration information converted into the frequency domain, bandpass filtering is performed based on a center frequency determined using a dynamic characteristic of the device.
제31항에 있어서,
상기 디바이스의 다이내믹 특성은,
상기 디바이스 사용자가 상기 진행 방향으로 걷는(step) 자세에 의하여 획득되는, 회전각 결정 디바이스.
32. The method of claim 31,
The dynamic characteristics of the device are,
A rotation angle determination device, which is obtained by a posture in which the device user steps in the traveling direction.
KR1020140177136A 2014-12-10 2014-12-10 Method and apparatus for calculating a rotating angle of a device KR102335738B1 (en)

Priority Applications (2)

Application Number Priority Date Filing Date Title
KR1020140177136A KR102335738B1 (en) 2014-12-10 2014-12-10 Method and apparatus for calculating a rotating angle of a device
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 (en) 2014-12-10 2014-12-10 Method and apparatus for calculating a rotating angle of a device

Publications (2)

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

Family

ID=56110861

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020140177136A KR102335738B1 (en) 2014-12-10 2014-12-10 Method and apparatus for calculating a rotating angle of a device

Country Status (2)

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

Families Citing this family (10)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN106612491A (en) * 2015-10-22 2017-05-03 中兴通讯股份有限公司 Method, device and system for alarming
JP6709281B2 (en) * 2016-05-18 2020-06-10 株式会社東芝 Action estimation method, action estimation system, service providing method, signal detection method, signal detection unit, and signal processing system
US10765588B2 (en) 2016-08-05 2020-09-08 Sony Corporation Information processing apparatus and information processing method
CN106227234B (en) * 2016-09-05 2019-09-17 天津远度科技有限公司 Unmanned plane, unmanned plane take off control method and device
CN106403917B (en) * 2016-09-06 2019-02-01 青岛海信移动通信技术股份有限公司 Wall sag detection method and device
JP2021056002A (en) * 2018-02-06 2021-04-08 アルプスアルパイン株式会社 Calibration device, measurement device, sphere, calibration method, and program
JP2021063655A (en) * 2018-02-09 2021-04-22 アルプスアルパイン株式会社 Control device, measuring device, sphere body, measuring system, control method, and program
CN109186549A (en) * 2018-10-26 2019-01-11 国网黑龙江省电力有限公司电力科学研究院 A kind of Iron tower incline angle measurement method of view-based access control model
CN111307115A (en) * 2020-03-03 2020-06-19 平顶山天安煤业股份有限公司 High-precision tilt angle measuring method
CN111780746A (en) * 2020-03-27 2020-10-16 宁波小遛共享信息科技有限公司 Direction angle detection method and device, electronic equipment and travel tool

Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2009276282A (en) * 2008-05-16 2009-11-26 Sumitomo Electric Ind Ltd Attitude determination apparatus and method, movement direction determination apparatus, position determination apparatus, and computer program
JP2012037452A (en) * 2010-08-10 2012-02-23 Panasonic Corp Walking azimuth detection apparatus and walking azimuth detection method

Family Cites Families (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
GB1227903A (en) * 1970-07-31 1971-04-15 Gravimetrics
JP5043358B2 (en) * 2006-04-04 2012-10-10 ラピスセミコンダクタ株式会社 Inclination angle calculation method and inclination angle calculation device
JP4793223B2 (en) 2006-11-02 2011-10-12 ヤマハ株式会社 Walking navigation method, system and program
US8321075B2 (en) * 2008-02-25 2012-11-27 Sri International Mitigating effects of biodynamic feedthrough on an electronic control device
JP5736106B2 (en) * 2009-05-19 2015-06-17 古野電気株式会社 Moving state detection device
JP6067693B2 (en) * 2011-06-28 2017-01-25 コーニンクレッカ フィリップス エヌ ヴェKoninklijke Philips N.V. Detection of transition from sitting to standing
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 (en) * 2008-05-16 2009-11-26 Sumitomo Electric Ind Ltd Attitude determination apparatus and method, movement direction determination apparatus, position determination apparatus, and computer program
JP2012037452A (en) * 2010-08-10 2012-02-23 Panasonic Corp Walking azimuth detection apparatus and walking azimuth detection method

Also Published As

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

Similar Documents

Publication Publication Date Title
KR102335738B1 (en) Method and apparatus for calculating a rotating angle of a device
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 (en) User command input method and device based on motion sensing
JP2008004096A (en) Space recognition method and apparatus of input device
CN103940442A (en) Location method and device adopting accelerating convergence algorithm
WO2018083910A1 (en) Information processing device, information processing method, and recording medium
Wang et al. Effective inertial hand gesture recognition using particle filtering based trajectory matching
US20130085712A1 (en) Inertial sensing input apparatus and method thereof
CN112363196A (en) Vehicle attribute determination method and device, storage medium and electronic equipment
KR101958334B1 (en) Method and apparatus for recognizing motion to be considered noise
Tuncer et al. Handwriting recognition by derivative dynamic time warping methodology via sensor-based gesture recognition.
US11282228B2 (en) Information processing device, information processing method, and program
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
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