KR20230030472A - Method for creating user defined gesture profile based on user's repetitive motion and recognizing gesture - Google Patents
Method for creating user defined gesture profile based on user's repetitive motion and recognizing gesture Download PDFInfo
- Publication number
- KR20230030472A KR20230030472A KR1020210112721A KR20210112721A KR20230030472A KR 20230030472 A KR20230030472 A KR 20230030472A KR 1020210112721 A KR1020210112721 A KR 1020210112721A KR 20210112721 A KR20210112721 A KR 20210112721A KR 20230030472 A KR20230030472 A KR 20230030472A
- Authority
- KR
- South Korea
- Prior art keywords
- motion
- electronic device
- axis
- value
- angular velocity
- Prior art date
Links
- 230000033001 locomotion Effects 0.000 title claims abstract description 340
- 238000000034 method Methods 0.000 title description 27
- 230000003252 repetitive effect Effects 0.000 title 1
- 230000001133 acceleration Effects 0.000 claims abstract description 71
- 238000012545 processing Methods 0.000 abstract description 6
- 210000003811 finger Anatomy 0.000 description 18
- 238000004891 communication Methods 0.000 description 17
- 230000004927 fusion Effects 0.000 description 10
- 238000010801 machine learning Methods 0.000 description 9
- 238000010586 diagram Methods 0.000 description 6
- 238000005516 engineering process Methods 0.000 description 6
- 230000010354 integration Effects 0.000 description 6
- 230000006870 function Effects 0.000 description 5
- 210000001503 joint Anatomy 0.000 description 4
- 238000012706 support-vector machine Methods 0.000 description 4
- 238000004422 calculation algorithm Methods 0.000 description 3
- 238000007637 random forest analysis Methods 0.000 description 3
- 230000001186 cumulative effect Effects 0.000 description 2
- 230000002354 daily effect Effects 0.000 description 2
- 230000005484 gravity Effects 0.000 description 2
- 239000000463 material Substances 0.000 description 2
- 239000007787 solid Substances 0.000 description 2
- WHXSMMKQMYFTQS-UHFFFAOYSA-N Lithium Chemical compound [Li] WHXSMMKQMYFTQS-UHFFFAOYSA-N 0.000 description 1
- HBBGRARXTFLTSG-UHFFFAOYSA-N Lithium ion Chemical compound [Li+] HBBGRARXTFLTSG-UHFFFAOYSA-N 0.000 description 1
- 230000003044 adaptive effect Effects 0.000 description 1
- 238000013528 artificial neural network Methods 0.000 description 1
- 230000003190 augmentative effect Effects 0.000 description 1
- 238000004364 calculation method Methods 0.000 description 1
- 238000007796 conventional method Methods 0.000 description 1
- 238000013500 data storage Methods 0.000 description 1
- 238000011161 development Methods 0.000 description 1
- 230000003203 everyday effect Effects 0.000 description 1
- 239000011521 glass Substances 0.000 description 1
- 238000003064 k means clustering Methods 0.000 description 1
- 229910052744 lithium Inorganic materials 0.000 description 1
- 229910001416 lithium ion Inorganic materials 0.000 description 1
- 230000007774 longterm Effects 0.000 description 1
- 230000005389 magnetism Effects 0.000 description 1
- 238000004519 manufacturing process Methods 0.000 description 1
- 238000005259 measurement Methods 0.000 description 1
- 229910052751 metal Inorganic materials 0.000 description 1
- 239000002184 metal Substances 0.000 description 1
- 230000003287 optical effect Effects 0.000 description 1
- 230000002093 peripheral effect Effects 0.000 description 1
- 229920000642 polymer Polymers 0.000 description 1
- 238000003672 processing method Methods 0.000 description 1
- 238000010079 rubber tapping Methods 0.000 description 1
- 230000035939 shock Effects 0.000 description 1
- 229910052710 silicon Inorganic materials 0.000 description 1
- 239000010703 silicon Substances 0.000 description 1
- 230000003068 static effect Effects 0.000 description 1
- 230000001502 supplementing effect Effects 0.000 description 1
- 210000003813 thumb Anatomy 0.000 description 1
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input 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/01—Input arrangements or combined input and output arrangements for interaction between user and computer
- G06F3/017—Gesture based interaction, e.g. based on a set of recognized hand gestures
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input 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/01—Input arrangements or combined input and output arrangements for interaction between user and computer
- G06F3/011—Arrangements for interaction with the human body, e.g. for user immersion in virtual reality
- G06F3/014—Hand-worn input/output arrangements, e.g. data gloves
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input 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/01—Input arrangements or combined input and output arrangements for interaction between user and computer
- G06F3/03—Arrangements for converting the position or the displacement of a member into a coded form
- G06F3/033—Pointing devices displaced or positioned by the user, e.g. mice, trackballs, pens or joysticks; Accessories therefor
- G06F3/0346—Pointing 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
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06V—IMAGE OR VIDEO RECOGNITION OR UNDERSTANDING
- G06V40/00—Recognition of biometric, human-related or animal-related patterns in image or video data
- G06V40/20—Movements or behaviour, e.g. gesture recognition
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- General Engineering & Computer Science (AREA)
- Human Computer Interaction (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Health & Medical Sciences (AREA)
- Computer Vision & Pattern Recognition (AREA)
- General Health & Medical Sciences (AREA)
- Psychiatry (AREA)
- Social Psychology (AREA)
- Multimedia (AREA)
- User Interface Of Digital Computer (AREA)
Abstract
Description
본 발명은 제스처 인식 방법에 관한 것이다.The present invention relates to a gesture recognition method.
제스처 또는 모션 인식 기술은 웨어러블 디바이스의 성장 및 컴퓨터 그래픽 기술, 증강 현실(Augmented Reality, AR), 가상 현실(Virtual Reality, VR), 혼합 현실(Mixed Reality, MR)과 같은 가상 현실에 기반한 컨텐츠 시장이 발전 등에 힘입어 지속적으로 발전하고 있다. 그러나 제스처 인식 기술은 장치를 제어하기 위해 사용되기보다는 게임의 가상 컨텐츠나 영화 제작사에서 컴퓨터 그래픽에 기반한 컨텐츠를 만들기 위해 주로 사용되고 있어 일상 생활에서 제스처 인식 기술은 매우 제한적으로 활용되고 있는 실정이다. Gesture or motion recognition technology is the growth of wearable devices and the content market based on virtual reality such as computer graphics technology, augmented reality (AR), virtual reality (VR), and mixed reality (MR). Thanks to development, etc., it is continuously evolving. However, since gesture recognition technology is mainly used to create virtual contents of games or computer graphics-based contents in movie production companies rather than to control devices, gesture recognition technology is being used very limitedly in everyday life.
이러한 이유로는 첫 번째로 제스처 인식 기술에 오류가 있을 경우 오류에 의해 치명적인 결과를 발생시킬 수 있는 분야에는 사용하기 어렵다는 것과 두 번째로 제스처 인식을 위해 카메라로부터 객체의 영상을 획득하여 이미지 프로세싱에 기반하여 제스처 인식하는 방법이 널리 사용되고 있는데 이미지 프로세싱 방식은 환경에 의한 영향을 많이 받으므로 인식 오류도 빈번하고 알고리즘이 매우 정교할 필요가 있다는 문제점이 있다. 세 번째로 사용자에게 랜드마크를 부착하거나 특수한 장비를 착용하게 함으로써 제스처 인식의 정확도를 상승시킬 수 있는데 이러한 방식은 사용자에게 너무 번거롭고 불편한 작업이므로 제스처 인식이 일상 생활이나 일상 업무에서 활용되지 못하는 이유가 된다.For this reason, firstly, it is difficult to use in the field where errors in gesture recognition technology can cause fatal results, and secondly, for gesture recognition, an image of an object is obtained from a camera and based on image processing Gesture recognition methods are widely used, but since the image processing method is greatly influenced by the environment, there are problems in that recognition errors are frequent and the algorithm needs to be very sophisticated. Third, it is possible to increase the accuracy of gesture recognition by having the user attach a landmark or wear special equipment. This method is too cumbersome and inconvenient for the user, which is why gesture recognition is not used in daily life or daily work. .
또한, 모션 센서를 통해 모션 데이터를 획득하고 이에 기반하여 제스처 인식을 하는 종래 기술들이 있으나 대부분 가속도 데이터와 같은 1~2개 종류의 데이터만을 활용하여 이를 가공함으로써 제스처 인식을 하는 기술들이다. 최근 가속도, 자이로, 지자기 센서를 포함하는 9축 센서가 널리 저렴하게 보급되고 있으나 이를 웨어러블 디바이스에 탑재하고 획득된 센서 데이터에 기반하여 제스처 인식을 하거나 특정 사용자에 특화된 제스처 프로파일을 생성함으로써 제스처 인식률을 높이기 위한 기술은 전무하다.In addition, although there are conventional techniques for obtaining motion data through a motion sensor and performing gesture recognition based thereon, most of them are techniques for performing gesture recognition by using only one or two types of data such as acceleration data and processing them. Recently, 9-axis sensors including accelerometer, gyro, and geomagnetic sensors have been widely and cheaply distributed, but by mounting them on wearable devices and recognizing gestures based on the acquired sensor data or creating a gesture profile specialized for a specific user, the gesture recognition rate is increased. There is no technology for
3차원 공간 상에서의 모션 데이터 획득을 통해 사용자에게 특화된 제스처 프로파일을 생성하고, 생성된 제스처 프로파일에 기반하여 특정 제스처를 인식하기 위한 방법이 제공될 수 있다.A method for generating a gesture profile specialized for a user through acquisition of motion data in a 3D space and recognizing a specific gesture based on the generated gesture profile may be provided.
본 실시 예가 이루고자 하는 기술적 과제는 상기된 바와 같은 기술적 과제로 한정되지 않으며, 이하의 실시 예들로부터 또 다른 기술적 과제들이 유추될 수 있다.The technical problem to be achieved by the present embodiment is not limited to the technical problem as described above, and other technical problems can be inferred from the following embodiments.
호스트 장치와 페어링되어 사용자의 모션에 기반한 제어신호를 전송하기 위한 전자 장치는, 가속도 센서, 자이로 센서, 지자기 센서, 메모리, 상기 가속도 센서로부터 수신한 가속도 데이터에 기반하여 좌우 방향의 제1축, 앞뒤 방향의 제2축, 및 위아래 방향의 제3축 각각에 대한 가속도 값들을 획득하고, 상기 자이로 센서로부터 수신한 자이로 데이터에 기반하여 요(Yaw)축, 피치(Pitch)축, 롤(Roll)축 각각에 대한 각속도 값들을 획득하고, 상기 가속도 센서, 상기 자이로 센서, 및 상기 지자기 센서로부터 각각 획득한 가속도 데이터, 자이로 데이터, 및 지자기 데이터에 기반하여 상기 전자 장치의 요(Yaw)축, 피치(Pitch)축, 롤(Roll)축 방향 각각과 수평면 사이의 기울기 값들을 획득하기 위한 제1프로세서, 상기 제1프로세서로부터 수신된 상기 가속도 값, 상기 각속도 값, 및 상기 기울기 값을 실시간으로 획득하고, 상기 피치축에 대한 기울기 값과 롤축에 대한 기울기 값이 기준 이내이면 모션이 준비된 것으로 판단하고, 상기 피치축에 대한 각속도가 기준 값 이상이면 모션이 시작된 것으로 판단하되, 상기 모션의 피치축에 대한 기울기 값이 기준 범위를 벗어나면 예외처리하는 제2프로세서를 포함할 수 있다.An electronic device that is paired with a host device and transmits a control signal based on a user's motion includes an acceleration sensor, a gyro sensor, a geomagnetic sensor, a memory, and a first axis in a left and right direction, forward and backward, based on acceleration data received from the acceleration sensor. Acceleration values for each of the second axis in the direction and the third axis in the up and down direction are acquired, and the yaw axis, pitch axis, and roll axis are obtained based on the gyro data received from the gyro sensor. Each angular velocity value is obtained, and the yaw axis and pitch of the electronic device are obtained based on the acceleration data, gyro data, and geomagnetic data obtained from the acceleration sensor, the gyro sensor, and the geomagnetic sensor, respectively. ) axis, a first processor for obtaining inclination values between each of the roll axis directions and a horizontal plane, obtaining the acceleration value, the angular velocity value, and the inclination value received from the first processor in real time, wherein the If the inclination value for the pitch axis and the inclination value for the roll axis are within the standard, it is determined that the motion is ready, and if the angular velocity with respect to the pitch axis is greater than or equal to the reference value, it is determined that the motion has started, but the inclination value of the motion with respect to the pitch axis A second processor that handles exceptions outside of this standard range may be included.
제스처 레코딩 모드 하에서, 상기 제2프로세서는 모션이 완료된 것으로 판단되면, 상기 모션이 시작 후 완료까지의 선형 가속도 값을 누적 합산한 기준 가속도 값과 상기 모션 시작 후 완료까지의 롤축에 대한 각속도 최대값을 피치축에 대한 각속도 최대값으로 나눈 값인 기준 회전량과 상기 모션 시작 후 완료까지의 요축에 대한 각속도 최대값을 피치축에 대한 각속도 최대값으로 나눈 값인 기준 간섭량을 획득하여 상기 메모리에 저장할 수 있다.Under the gesture recording mode, when it is determined that the motion is complete, the second processor calculates a reference acceleration value obtained by cumulatively summing linear acceleration values from the start of the motion to the end of the motion and the maximum angular velocity value for the roll axis from the start to the end of the motion. A reference rotation amount obtained by dividing the maximum angular velocity value on the pitch axis and a reference interference amount obtained by dividing the maximum angular velocity value on the yaw axis from the start of the motion to the end by the maximum angular velocity value on the pitch axis can be obtained and stored in the memory.
상기 제2프로세서는, 제스처 인식 모드 하에서, 상기 제2프로세서는 모션이 완료된 것으로 판단되면, 상기 모션이 시작 후 완료까지의 선형 가속도 값을 누적 합산한 값이 상기 기준 가속도 값과 기준 범위 이내로 유사하고, 상기 모션 시작 후 완료까지의 롤축에 대한 각속도 최대값을 피치축에 대한 각속도 최대값으로 나눈 값인 회전량이 상기 기준 회전량과 기준 범위 이내로 유사하고, 상기 모션 시작 후 완료까지의 요축에 대한 각속도 최대값을 피치축에 대한 각속도 최대값으로 나눈 값인 간섭량이 상기 기준 간섭량과 기준 범위 이내로 유사하면 상기 사용자의 움직임을 상기 모션과 매칭시킬 수 있다.When the second processor determines that the motion is complete under the gesture recognition mode, a value obtained by accumulative sum of linear acceleration values from the start of the motion to the end is similar to the reference acceleration value within a reference range, and , The rotation amount, which is a value obtained by dividing the maximum angular velocity for the roll axis from the start of the motion to the end by the maximum angular velocity for the pitch axis, is similar to the reference rotation amount within a reference range, and the maximum angular velocity for the yaw axis from the start of the motion to the end If the interference amount, which is a value obtained by dividing the value by the maximum angular velocity value with respect to the pitch axis, is similar to the reference interference amount within a reference range, the motion of the user may be matched with the motion.
3차원 공간 상에서의 모션 데이터 획득을 통해 사용자에게 특화된 제스처 프로파일을 생성하고, 생성된 제스처 프로파일에 기반하여 사용자의 특정 제스처를 인식하기 위한 방법이 제공될 수 있다. A method for generating a gesture profile specialized for a user through motion data acquisition in a 3D space and recognizing a specific gesture of the user based on the generated gesture profile may be provided.
상기 방법에 의해 제스처 인식의 정확도가 향상되고 스마트폰, TV, 컴퓨터, 태블릿 PC, 홀로그램, HMD(Head Mount Display) 상의 다양한 컨텐츠를 쉽고 정밀하게 컨트롤 할 수 있다. The method improves the accuracy of gesture recognition and enables easy and precise control of various contents on smartphones, TVs, computers, tablet PCs, holograms, and head mount displays (HMDs).
도1a는 일 실시 예에 따라, 호스트 장치를 제어하기 위한 전자 장치(닫힌 상태)를 나타낸다.
도1b는 일 실시 예에 따라, 호스트 장치를 제어하기 위한 전자 장치(열린 상태)를 나타낸다.
도2a는 일 실시 예에 따라, 전자 장치 내의 링형 장치를 나타낸다.
도2b는 일 실시 예에 따라, 전자 장치를 사용하여 컨텐츠를 제어하는 것을 나타낸다.
도3은 일 실시 예에 따라, 전자 장치를 포함하는 시스템을 나타낸다.
도4a는 일 실시 예에 따라, 마우스 모드 하에서, 전자 장치로 수행되는 마우스 동작들을 나타낸다.
도4b는 일 실시 예에 따라, 전자 장치의 정면 부분이 세 개의 터치 영역들로 구분된 것을 나타낸다.
도4c는 일 실시 예에 따라, 세 개의 영역들을 이용해 인식되는 마우스 동작들을 나타낸다.
도5는 일 실시 예에 따라, 사용자의 움직임 정보와 대응하는 모션을 결정하기 위한 결정 모델을 나타낸다.
도6은 일 실시 예에 따라, 전자 장치를 활용한 조이스틱을 나타낸다.
도7은 일 실시 예에 따라, 제스처 모드 하에서, 전자 장치로 호스트 장치를 제어하기 위한 모션들을 나타낸다.
도8은 일 실시 예에 따라, 전자 장치를 사용하여 컨텐츠를 제어하는 방법의 흐름도를 나타낸다.
도9는 일 실시 예에 따라, 거리 데이터를 획득하기 위한 방법의 흐름도를 나타낸다.
도10은 일 실시 예에 따라, 전자 장치의 블록도를 나타낸다.
도11은 일 실시 예에 따라, 3차원 공간 상의 9개의 축을 나타낸다.
도12는 일 실시 예에 따라, 가이드에 따라 사용자가 특정 동작을 반복함으로써 제스처 프로파일을 생성하는 모습을 나타낸다.
도13은 일 실시 예에 따라, 좌측 또는 우측 무브 동작의 제스처 프로파일을 생성하는 방법의 흐름도를 나타낸다.
도14는 일 실시 예에 따라, 사용자의 현재 모션이 좌측 또는 우측 무브 동작의 제스처 프로파일과 부합하는지, 즉 인식하는 방법의 흐름도를 나타낸다.1A illustrates an electronic device (closed state) for controlling a host device, according to an exemplary embodiment.
1B illustrates an electronic device (open state) for controlling a host device, according to an exemplary embodiment.
2A shows a ring-shaped device in an electronic device, according to an embodiment.
2B illustrates controlling content using an electronic device, according to an embodiment.
3 shows a system including an electronic device, according to one embodiment.
4A illustrates mouse operations performed by an electronic device under a mouse mode, according to an embodiment.
4B shows that the front part of the electronic device is divided into three touch areas, according to an embodiment.
4C shows mouse motions recognized using three regions, according to an exemplary embodiment.
5 illustrates a decision model for determining motion information corresponding to motion information of a user, according to an exemplary embodiment.
6 illustrates a joystick utilizing an electronic device, according to an embodiment.
7 illustrates motions for controlling a host device with an electronic device under a gesture mode, according to an embodiment.
8 is a flowchart of a method of controlling content using an electronic device, according to an embodiment.
9 shows a flow diagram of a method for obtaining distance data, according to one embodiment.
10 shows a block diagram of an electronic device, according to an embodiment.
11 shows nine axes on a three-dimensional space, according to one embodiment.
12 illustrates a state in which a user creates a gesture profile by repeating a specific motion according to a guide according to an embodiment.
13 illustrates a flow diagram of a method for generating a gesture profile of a left or right move action, according to one embodiment.
Fig. 14 is a flowchart of a method for recognizing whether a current motion of a user matches a gesture profile of a left or right move operation, according to an embodiment.
아래에서, 본 발명이 속하는 기술 분야에서 통상의 지식을 가진 자들(이하, 통상의 기술자들)이 본 발명을 용이하게 실시할 수 있도록, 첨부되는 도면들을 참조하여 몇몇 실시 예가 명확하고 상세하게 설명될 것이다.In the following, several embodiments will be described clearly and in detail with reference to the accompanying drawings so that those skilled in the art (hereinafter, those skilled in the art) can easily practice the present invention. will be.
또한, 명세서에서 사용되는 "부" 또는 "모듈" 이라는 용어는 FPGA(Field Programmable Gate Array) 또는 ASIC(Application Specific Integrated Circuit)과 같은 하드웨어 구성요소 또는 회로를 의미할 수 있다. Also, the term “unit” or “module” used in the specification may mean a hardware component or circuit such as a Field Programmable Gate Array (FPGA) or Application Specific Integrated Circuit (ASIC).
이하, "컨텐츠"는 게임, 음악, 영화, 이미지, 애니메이션, 캐릭터, 아이템, 물체 등과 같은 미디어 자체 또는 미디어 상에서 재생되는 객체를 포함할 수 있으나 이에 제한되지 않는다. “컨텐츠”는 호스트 장치에서 구동되는 운영 체제 또는 소프트웨어를 포함할 수 있다. 소프트웨어는 워드 프로세서, 파워포인트와 같은 문서 프로그램, 전문적인 작업을 수행하기 위한 이미지 처리 프로그램, 캐드 프로그램, 및 게임을 포함할 수 있다. "컨텐츠"는 AR/VR/MR 과 같은 가상 현실에서 생성되는 가상 컨텐츠를 포함할 수 있다. "컨텐츠"는 2차원의 화면에 재생되는 객체 또는 홀로그램과 같은 3차원 공간 상에 표현되는 3차원 입체 객체를 포함할 수 있다. "컨텐츠"는 호스트 장치에 의해 생성, 실행 또는 재생될 수 있다. "컨텐츠"가 3차원 공간 상에 표현되는 가상 컨텐츠(예를 들어, 홀로그램)인 경우, 호스트 장치와 "컨텐츠"의 물리적인 위치는 다를 수 있다.Hereinafter, “content” may include media itself or objects reproduced on the media, such as games, music, movies, images, animations, characters, items, and objects, but is not limited thereto. “Content” may include an operating system or software running on a host device. Software may include word processors, document programs such as PowerPoint, image processing programs for performing specialized tasks, CAD programs, and games. “Content” may include virtual content generated in virtual reality such as AR/VR/MR. "Content" may include an object reproduced on a 2D screen or a 3D stereoscopic object expressed on a 3D space such as a hologram. "Content" may be created, executed or reproduced by a host device. When the “content” is virtual content (eg, hologram) expressed in a 3D space, the physical location of the host device and the “content” may be different.
이하, "모션(motion)"은 컨텐츠를 제어하기 위해 사용자가 취하는 유의미한 움직임(movement)으로서, 사용자의 움직임으로부터 캡쳐, 추출, 인식, 분석 또는 결정될 수 있다.Hereinafter, “motion” is a meaningful movement taken by a user to control content, and may be captured, extracted, recognized, analyzed, or determined from the user's movement.
이하, "제어 신호"는 모션 자체 또는 모션의 타입에 대한 정보를 포함하는 신호로서, 전자 장치는 “제어 신호”를 발생시키고 호스트 장치는 전자 장치로부터 수신되는 "제어 신호"에 기반하여 컨텐츠를 동작시키거나 제어할 수 있다. 예를 들어, "제어 신호"는 비트열 형태일 수 있으며 모션들 각각은 서로 다른 비트열로 표현될 수 있다.Hereinafter, a “control signal” is a signal including information about a motion itself or a motion type, and an electronic device generates a “control signal” and a host device operates content based on the “control signal” received from the electronic device. can be made or controlled. For example, the “control signal” may be in the form of a bit string, and each of the motions may be represented by a different bit string.
도1a는 일 실시 예에 따라, 호스트 장치를 제어하기 위한 전자 장치(닫힌 상태)를 나타낸다. 도1b는 일 실시 예에 따라, 호스트 장치를 제어하기 위한 전자 장치(열린 상태)를 나타낸다.1A illustrates an electronic device (closed state) for controlling a host device, according to an exemplary embodiment. 1B illustrates an electronic device (open state) for controlling a host device, according to an exemplary embodiment.
사용자는 전자 장치(1000)를 손에 쥐거나 손에 든 상태로 터치나 손의 움직임에 의해 호스트 장치를 컨트롤할 수 있다. 호스트 장치는 다양한 종류의 전자 장치를 포함할 수 있다. 예를 들어, 호스트 장치는, 게임기, 스마트 폰, 태블릿 PC(Personal Computer), TV, 데스크톱 PC, 노트북 PC, 모바일 의료 기기, 카메라, 또는 웨어러블 장치(예를 들어, 전자 안경, 전자 옷, 전자 팔찌, 전자 목걸이, 전자 액세서리, 전자 문신 또는 스마트 워치) 중 어느 하나일 수 있으나 이에 제한되지 않는다. 예를 들어, 호스트 장치는 가상 컨텐츠를 표시하기 위한 HMD(Head Mounted Display) 및 가상 현실 게임 또는 가상 현실 컨텐츠를 실행하거나 재생하기 위한 게임기(예를 들어, 콘솔 기기)를 포함할 수 있다. 호스트 장치는 프리젠테이션 자료를 표시하기 위한 컴퓨터를 포함할 수 있다.The user may control the host device by holding the
도1a와 1b를 같이 참조하면, 전자 장치(1000)는 사용자의 손가락에 착용 가능한 링형 장치(1200)와 링형 장치(1200)를 수납하기 위한 크래들 장치(1400)를 포함할 수 있다. 사용자는 링형 장치(1200)를 크래들 장치(1400)에 수납하고 뚜껑을 닫을 수 있다. Referring to FIGS. 1A and 1B , the
링형 장치(1200)가 크래들 장치(1400)에 수납되고 크래들 장치(1400)의 뚜껑이 닫힌 상태에서, 링형 장치(1200)의 정면 부분(헤드 부분)이 크래들 장치(1400)의 정면에 노출되며, 사용자는 크래들 장치(1400)를 손에 쥔 채 움직임으로써 모션 신호를 발생시키거나 노출된 링형 장치(1200)의 정면 부분을 터치함으로써 터치 동작을 수행할 수 있다. 일 실시 예에 따라, 링형 장치(1200)의 정면 부분에 터치 센싱 모듈이 위치할 수 있다.When the ring-
사용자는 크래들 장치(1400)의 뚜껑을 열어서 링형 장치(1200)를 꺼낼 수 있다. 사용자는 링형 장치(1200)를 손가락에 착용한 채로 터치 동작이나 모션에 의해 호스트 장치를 제어할 수 있다. 크래들 장치(1400)는 사람이 손에 쥐기 쉬운 형상으로 제작될 수 있으며, 크래들 장치(1400)의 아래 쪽에는 무게중심 추가 위치하여 크래들 장치(1400)의 무게중심이 낮게 설계될 수 있다. 크래들 장치(1400)는 링형 장치(1200)를 충전시키기 위한 충전 단자와 전원 장치를 포함할 수 있다.The user can take out the ring-shaped
링형 장치(1200)는 사용자의 움직임 정보를 획득하기 위한 모션 센서와 사용자의 터치 정보를 획득하기 위한 터치 센서를 포함할 수 있다. 링형 장치(1200)는 획득된 움직임 정보와 터치 정보에 기반하여 제어 신호를 생성하고 생성된 제어 신호를 호스트 장치로 출력할 수 있다. 호스트 장치는 링형 장치(1200)로부터 수신되는 제어 신호에 기반하여 컨텐츠를 제어할 수 있다. The ring-shaped
도2a는 일 실시 예에 따라, 링형 장치를 나타내고, 도2b는 일 실시 예에 따라, 사용자가 링형 장치를 착용한 채로 컨텐츠를 제어하는 것을 나타낸다.Figure 2a shows a ring-shaped device, according to an embodiment, and Figure 2b shows a user controlling content while wearing a ring-shaped device, according to an embodiment.
도2a와 2b를 같이 참조하면, 링형 장치(1200)는 인체 또는 물체와 부착, 연결 내지는 착용 가능한 소형의 웨어러블 장치일 수 있다. 링형 장치(1200)는 착용이 편하며, 사용자는 별도의 학습없이 직관적으로 링형 장치(1200)의 기능을 동작시킬 수 있다. 나아가, 링형 장치(1200)는 움직임 정보와 터치 정보를 이용하여 범용 마우스처럼 범용 장치로서 사용이 가능하다.Referring to FIGS. 2A and 2B , the ring-shaped
링형 장치(1200)는 사용자의 손가락(2300)에 착용되도록 하기 위한 연결부(1220)와 센서를 이용하여 움직임 정보와 터치 정보를 획득하기 위한 메인 모듈(1240)을 포함할 수 있다. 연결부(1220)는 실리콘, 메탈 등의 소재로 구성될 수 있다. 메인 모듈(1240)은 사용자의 터치 정보와 움직임 정보를 획득하고 획득된 정보에 대응하는 제어 신호를 출력할 수 있다. 메인 모듈(1240)은 후술할 전자 장치(3000)의 구성 요소들 및 구성 요소들을 내장하는 케이스를 포함할 수 있다. 일 실시 예에 따라, 메인 모듈(1240)은 연결부(1220)와 분리될 수 있으며, 사용자는 메인 모듈(1240)만을 다양한 종류의 객체(지팡이, 주사위, 펜 등)에 삽입, 부착, 또는 내장하고 다양한 종류의 객체를 사용하여 호스트 장치를 제어할 수 있다.The ring-shaped
메인 모듈(1240)은 터치 정보와 움직임 정보(예를 들어, 메인 모듈(1240)의 움직임에 대한 각속도, 가속도, 속도, 거리, 각도, 방향, 위치(3차원 공간 좌표) 정보)를 획득하고 이를 가공 및 처리함으로써 컨텐츠(2500)를 제어하기 위한 제어 신호를 출력할 수 있다. The
도2b에는 링형 장치(1200)가 사용자의 손가락(2300)에 착용되는 것으로 도시되었으나 링형 장치(1200)는 다른 형태의 객체와 연결되거나 부착될 수 있다. Although the ring-
예를 들어, 메인 모듈(1240)은 주사위에 내장되고 주사위의 움직임에 기반하여 컨텐츠(2500)가 제어될 수 있다. 또는, 메인 모듈(1240)은 지팡이에 부착되고 지팡이의 움직임에 기반하여 컨텐츠(2500)가 제어될 수 있다. 또는, 메인 모듈(1240)은 펜에 내장되고 스마트폰 상의 컨텐츠(2500)가 펜의 움직임에 기반하여 제어될 수 있다. 이하, 객체는 사람의 신체 부위(예를 들어, 손가락), 사람이 착용 가능하거나 들 수 있는 물건, 또는 후술할 전자 장치(3000) 자체를 의미할 수 있다. For example, the
또한, 도2b에는 컨텐츠(2500)가 3차원 공간 상의 홀로그램 객체로 도시되었으나, 컨텐츠(2500)는 호스트 장치에서 재생되는 어떠한 형태의 컨텐츠나 소프트웨어(마이크로스프트사의 MS오피스, 게임 등) 등도 포함할 수 있다.In addition, although the
도3은 일 실시 예에 따라, 전자 장치를 포함하는 시스템을 나타낸다. 3 shows a system including an electronic device, according to one embodiment.
도3을 참조하면, 시스템(100)은 전자 장치(3000)와 호스트 장치(또는, 타겟 장치)를 포함할 수 있다. 전자 장치(3000)는 호스트 장치와 무선 통신 방식에 의해 연결될 수 있다. 예를 들어, 전자 장치(3000)는 호스트 장치와 블루투스 방식에 의해 페어링(pairing)될 수 있다. 전자 장치(3000)는 도1a의 링형 장치(1200)가 수납된 크래들 장치(1400), 크래들 장치(1400)로부터 분리된 링형 장치(1200), 또는 도2a의 링형 장치(1200)의 메인 모듈(1240)을 의미할 수 있다.Referring to FIG. 3 , the
사용자는 전자 장치(3000)를 사용하여 호스트 장치의 다양한 컨텐츠를 제어할 수 있다. 일 실시 예에 따라, 사용자는 전자 장치(3000) 자체 또는 전자 장치(3000)와 연결된 객체의 움직임 및/또는 전자 장치(3000)에 입력되는 사용자 터치 동작에 기반하여 호스트 장치의 컨텐츠를 제어할 수 있다. 예를 들어, 사용자는 전자 장치(3000)를 자신의 손가락에 착용하고 손가락을 움직임이거나 손가락으로 전자 장치(3000)를 터치함으로써 호스트 장치의 다양한 컨텐츠를 제어할 수 있다. A user may control various contents of the host device using the
도3을 참조하면, 전자 장치(3000)는 움직임 센싱 모듈(3200), 터치 센싱 모듈(3300), 통신 채널(3400), 및 제어 신호 출력부(3600)를 포함할 수 있다. Referring to FIG. 3 , an
전자 장치(3000)는 마우스 모드(Mouse Mode) 또는 제스처 모드(Gesture Mode)로 동작할 수 있다. 마우스 모드 하에서, 전자 장치(3000)는 범용 마우스처럼 동작할 수 있으며, 제스처 모드 하에서, 전자 장치(3000)는 모션 인식 장치로서 동작할 수 있다.The
마우스 모드 하에서, 전자 장치(3000)는 터치 센싱 모듈(3300)을 통해 감지되는 터치 동작 및 움직임 센싱 모듈(3200)을 통해 감지되는 움직임 정보 중 적어도 하나에 기반하여 마우스 동작을 결정하고 마우스 동작을 나타내는 마우스 신호를 출력할 수 있다. Under the mouse mode, the
예를 들어, 마우스 클릭(Click)은 전자 장치(3000)의 일면을 한번 터치함으로써 수행되고, 마우스 더블 클릭(Double Click)은 전자 장치(3000)의 일면을 기준 시간 내에 두 번 터치함으로써 수행되고, 마우스 무브(Move)는 전자 장치(3000)의 움직임 정보(예를 들어, 이하에서 설명되는 제2움직임 정보)로부터 결정되고, 마우스 스크롤(Scroll Up/Down)은 터치의 연속적인 변화(예를 들어, 스크롤 업은 전자 장치(3000)의 일면을 손가락으로 왼쪽에서 오른쪽으로 쓰는 움직임, 스크롤 다운은 전자 장치(3000)의 일면을 손가락으로 오른쪽에서 왼쪽으로 쓰는 움직임), 마우스 드래그(Drag)는 터치 시간(예를 들어, 긴 터치)과 전자 장치(3000)의 움직임 정보에 의해 결정될 수 있다. 일 실시 예에 따라, 터치 시간이 200ms 이내이면 짧은 터치로 결정되고, 터치 시간이 500ms 이상이면 긴 터치로 결정될 수 있다. 터치가 수행되는 전자 장치(3000)의 일면은 터치 센싱 모듈(3300)로서 도2a를 참조하여 설명한 정면 부분일 수 있다.For example, a mouse click is performed by touching one surface of the
제스처 모드 하에서, 전자 장치(3000)는 센서를 이용하여 전자 장치(3000)의 움직임 정보를 획득하고, 획득된 움직임 정보에 기반하여 전자 장치(3000)의 움직임에 대응하는 모션을 결정할 수 있다. 전자 장치(3000)는 결정된 모션을 나타내는 모션 신호를 호스트 장치로 출력할 수 있다. 일 실시 예에 따라, 움직임 정보는, 객체의 움직임에 대한 특징들(예를 들어, 각속도, 가속도, 속도, 거리, 각도, 방향, 및 위치 중 적어도 하나)을 포함할 수 있다.Under the gesture mode, the
이하, 전자 장치(3000)의 구성 요소들의 동작과 기능에 대해 설명한다.Hereinafter, operations and functions of components of the
도3을 참조하면, 터치 센싱 모듈(3300)은 사용자의 터치를 감지할 수 있다. 예를 들어, 사용자가 링형 장치(1200)를 검지 손가락에 착용한 상태에서 사용자가 엄지 손가락으로 링형 장치(1200)의 정면 부분을 터치한 경우, 터치 센싱 모듈(3300)은 터치 동작을 감지할 수 있다. 터치 센싱 모듈(3300)에 의해 감지된 터치 동작은 통신 채널(3400)을 통해 제어 신호 출력부(3600)로 전달될 수 있다. Referring to FIG. 3 , the
터치 센싱 모듈(3300)에 의해 감지되는 터치 동작은 상술한 마우스 모드 하에서의 마우스 동작을 결정하기 위해 사용될 수 있다. 또는, 터치 센싱 모듈(3300)에 의해 감지되는 터치 동작은 제스처 모드 하에서 객체의 움직임에 대응되는 모션을 결정하기 위해 사용될 수 있다. 또한, 터치 센싱 모듈(3300)에 의해 감지되는 터치 동작은 마우스 모드와 제스처 모드 사이의 전환을 위해 사용될 수 있다.A touch motion detected by the
마우스 모드와 제스처 모드 사이의 전환은 터치 동작에 의해 수행될 수 있다. 예를 들어, 터치 센싱 모듈(3300)을 통해 사용자의 짧은 터치, 짧은 터치, 긴 터치가 연속적으로 감지되는 경우, 제스처 모드에서 마우스 모드로 또는 마우스 모드에서 제스처 모드로 전환될 수 있다. 또는, 터치 센싱 모듈(3300)을 통해 링형 장치(1200)의 정면 부분 중 가운데 부분을 기준 시간 이상 터치한 경우, 제스처 모드에서 마우스 모드로 또는 마우스 모드에서 제스처 모드로 전환될 수 있다.Switching between the mouse mode and the gesture mode may be performed by a touch operation. For example, when a user's short touch, short touch, and long touch are continuously detected through the
움직임 센싱 모듈(3200)은 전자 장치(3000)의 제1움직임 정보를 획득할 수 있다. 제1움직임 정보는 마우스 모드와 제스처 모드에서 모두 사용될 수 있다. 제1움직임 정보는 가속도 센서를 통해 획득되는 가속도 데이터와 자이로 센서를 통해 획득되는 각속도 데이터 중 적어도 하나를 포함할 수 있다.The
움직임 센싱 모듈(3200)은 가속도 센서(Accelerometer, 3220), 자이로 센서(Gyroscope, 3240), 지자기 센서(Magnetometer, 3260), 및 센서 융합부(3280)를 포함할 수 있다. 일 실시 예에 따른 자이로 센서(3240)는 각속도를 측정하기 위한 센서이다. 일 실시 예에 따른 가속도 센서(3220)는 가속도를 측정하고 진동, 충격 등의 동적 힘을 측정하기 위한 센서이다. 일 실시 예에 따른 지자기 센서(3260)는 지구 자기를 측정하고 그 크기를 검출하기 위한 센서이다. The
자이로 센서(3240)에서 측정되는 값은 온도의 영향으로 오차가 발생하며 오차가 적분 과정에서 누적되어 최종 값이 드리프트(drift)되는 현상이 생길 수 있다. 따라서, 온도 센서도 함께 사용하여 자이로 센서(3240)의 오차를 보상할 필요가 있다.An error occurs in the value measured by the
정지 상태의 긴 시간의 관점에서 보면, 가속도 센서(3220)에 의해 계산된 기울어진 각도는 올바른 값을 나타내지만 자이로 센서(3240)는 시간이 지날수록 누적 드리프트로 인해 틀린 값을 나타낼 수 있다. 반대로, 움직이는 짧은 시간의 관점에서, 자이로 센서(3240)는 올바른 각속도를 나타내지만, 가속도 센서(3220)는 기울어진 각도와는 다른 계산 값이 도출될 수 있다. 또한, 주체가 정지된 상태에서 직진 방향으로 움직일 경우 기울기 측정이 불가능하다. From the point of view of a long time in a stationary state, the tilt angle calculated by the
따라서, 가속도 센서(3220)와 자이로 센서(3240)를 모두 사용해서 각각의 단점을 보완 및 보상하기 위해, 칼만 필터와 같은 필터 또는 보상 및 융합 알고리즘이 적용될 수 있다. 다만, 이러한 보상 및 융합 동작에도 불구하고, 자이로 센서(3240)와 가속도 센서(3220)만을 사용할 경우, 3차원 공간에서의 좌표를 연산할 때에 오차율이 높아지므로 VR 기기와 같은 호스트 장치를 제어하기 위한 인터페이스로 사용하기에 부적절하다. 또한, 가속도 센서(3220)와 자이로 센서(3240)만을 사용할 경우, 절대 방위각이 아닌 상대 방위각을 사용하므로 움직이는 주체의 절대 위치를 파악하기 어렵다. Accordingly, a filter such as a Kalman filter or a compensation and fusion algorithm may be applied in order to compensate for and compensate for each disadvantage by using both the
따라서, 움직임 센싱 모듈(3200)은 지자기 센서(3260)를 더 포함함으로써, 지자기 센서(3260)에 의해 측정되는 절대 방위각의 변화를 가속도 센서(3220)와 자이로 센서(3240)에서 측정된 데이터와 함께 연산함으로써 오차율이 낮은 데이터를 생성할 수 있다. 움직임 센싱 모듈(3200)은 지자기 센서(3260)를 포함함으로써, 자이로 센서(3240)에서 발생되는 누적 드리프트를 더욱 완벽하게 보상할 수 있으며, 자이로 센서(3240)는 지자기 센서(3260)의 자기 변화로 인해 발생되는 순간적으로 자기장이 튀는 현상(갑자기 생기는 자기장의 큰 변화)을 해결해 주어 서로의 단점을 보완 및 보상해주는 역할을 할 수 있다.Therefore, the
일 실시 예에 따라, 움직임 센싱 모듈(3200)은 3차원 공간 상에서의 위치 데이터를 정확하게 획득할 수 있는 9축 센서를 포함할 수 있다. 9축 센서는 가속도 3축, 자이로 2축, 지자기 3축, 온도 1축으로 구성된 센서로서, 3차원 공간 상에서 3차원 위치와 3축 방향의 회전 정도를 모두 획득할 수 있는 센서이다.According to an embodiment, the
도3을 참조하면, 움직임 센싱 모듈(3200)은 센서들(3220, 3240, 3260)의 출력을 보상 및 융합하여 최적화된 위치 데이터를 생성하는 센서 융합(Sensor Fusion) 동작을 수행하기 위한 센서 융합부(3280)를 포함할 수 있다. 센서 융합부(3280)는 가속도 센서(3220), 자이로 센서(3240), 및 지자기 센서(3260)에서 각각 획득되는 데이터들을 잡음(Noise) 제거, 보상, 및 융합하여 데이터를 최적화함으로써 제1움직임 정보를 생성할 수 있다. 센서들(3220, 3240, 3260)에 의해 획득되는 로(row) 데이터를 그대로 이용하게 되면 정확한 위치 데이터를 획득할 수 없으므로 필터를 통해 정확한 위치를 추정(Position Estimation)함으로써 최적화된 위치 데이터가 생성될 수 있다. 예를 들어, 센서 융합 동작은 칼만 필터(Kalman Filter)와 같은 필터 또는 데이터 보상 및 융합 알고리즘에 기반하여 수행될 수 있다.Referring to FIG. 3 , the
움직임 센싱 모듈(3200)을 통해 획득된 제1움직임 정보는 통신 채널(3400)을 통해 제어 신호 출력부(3600)로 전달될 수 있다. 일 실시 예에 따라, 통신 채널(3400)은 제1움직임 정보를 프로세서(3620)로 전달하기 위한 전자 장치(3000) 내의 내부 버스(internal bus)일 수 있다. 움직임 센싱 모듈(3200)과 제어 신호 출력부(3600)는 통신 채널(3400)의 버스 포맷에 기초하여 서로 데이터를 교환할 수 있다. 예를 들어, 버스 포맷은 USB(Universal Serial Bus), SPI(Serial Peripheral Interface), 및 I2C(Inter-Integrated Circuit) 등과 같은 다양한 인터페이스 규약 중 하나 이상을 포함할 수 있다.The first motion information obtained through the
제어 신호 출력부(3600)는 호스트 장치를 제어하기 위한 제어 신호를 출력할 수 있다. 제어 신호는 모션 신호와 마우스 신호를 포함할 수 있다. 제어 신호 출력부(3600)는 제1움직임 정보의 연산을 통해 제2움직임 정보를 획득할 수 있다. 제어 신호 출력부(3600)는 제스처 모드 하에서, 제2움직임 정보에 기반하여 전자 장치(3000)의 움직임에 대응되는 모션을 결정하고 결정된 모션을 나타내는 모션 신호를 출력할 수 있다. 제어 신호 출력부(3600)는 마우스 모드 하에서, 터치 센싱 모듈(3300)로부터 획득되는 터치 정보 및 제2움직임 정보 중 적어도 하나에 기반하여 마우스 동작을 결정하고 마우스 동작을 나타내는 마우스 신호를 출력할 수 있다. 제어 신호는 호스트 장치의 컨텐츠를 제어하기 위한 제어하기 위한 인터럽트(Interrupt) 신호일 수 있다. 예를 들어, 제어 신호는 특정 마우스 신호 또는 특정 모션 신호를 나타내는 비트열을 포함할 수 있다.The control
제어 신호 출력부(3600)는 통신 채널(3400)을 통해 수신되는 제1움직임 정보를 연산함으로써 제2움직임 정보를 생성할 수 있다. 제2움직임 정보는 전자 장치(3000)의 각도 데이터, 거리 데이터, 속도 데이터, 및 방향 데이터 중 적어도 하나를 포함할 수 있다. 전자 장치(3000)의 제2움직임 정보는 마우스 모드와 제스처 모드에서 모두 활용될 수 있다. 예를 들어, 마우스 모드 하에서, 제2움직임 정보는 전자 장치(3000)의 마우스 무브(Move) 동작을 결정하기 위해 활용될 수 있다. 제스처 모드 하에서, 제2움직임 정보는 전자 장치(3000)로부터 출력되는 다양한 모션 신호를 결정하기 위해 활용될 수 있다.The control
일 실시 예에 따라, 제어 신호 출력부(3600)는 프로세서(3620) 및 통신부(3640)를 포함할 수 있다. According to an embodiment, the control
프로세서(3620)는 움직임 센싱 모듈(3200)로부터 통신 채널(3400)을 통해 수신되는 제1움직임 정보를 연산함으로써 제2움직임 정보를 생성할 수 있다. 제2움직임 정보는 움직임에 대한 각도 데이터, 거리 데이터, 속도 데이터, 및 방향 데이터 중 적어도 하나를 포함할 수 있다. 프로세서(3620)는 기준 시간(예를 들어, 5ms) 마다 제1움직임 정보에 대한 연산을 수행함으로써 제2움직임 정보를 획득할 수 있다. 기준 시간은 30ms 이하일 수 있으나 이에 제한되지 않는다.The
각도 데이터는 x축 방향, y축 방향, 및 z축 방향 각각에 대한 각도 데이터를 포함할 수 있다. 일 실시 예에 따라, 프로세서(3620)는 각속도 데이터에 적분 연산을 수행함으로써 각도 데이터를 획득할 수 있다.The angle data may include angle data for each of the x-axis direction, the y-axis direction, and the z-axis direction. According to an embodiment, the
속도 데이터는 x축 방향, y축 방향, 및 z축 방향 각각에 대한 속도 데이터를 포함할 수 있다. 거리 데이터는, x축 방향, y축 방향, 및 z축 방향 각각에 대한 거리 데이터를 포함할 수 있다. 일 실시 예에 따라, 프로세서(3620)는 가속도 데이터에 적분 연산을 수행함으로써 속도 데이터와 거리 데이터를 획득할 수 있다. 프로세서(3620)는 가속도 데이터에서 중력 가속도 성분을 제거하여 선형 가속도 데이터를 획득할 수 있다. 프로세서(3620)는 선형 가속도 데이터에 적분 연산을 수행함으로써 속도 데이터를 획득하고, 속도 데이터에 다시 적분 연산을 수행함으로써 거리 데이터를 획득할 수 있다.The speed data may include speed data for each of the x-axis direction, the y-axis direction, and the z-axis direction. The distance data may include distance data for each of the x-axis direction, the y-axis direction, and the z-axis direction. According to an embodiment, the
방향 데이터는 객체의 순간 이동 방향에 관한 것으로서, x축 방향으로의 증감 여부, y축 방향으로의 증감 여부, 및 z축 방향으로의 증감 여부를 포함할 수 있다. 일 실시 예에 따라, 프로세서(3620)는 현재 거리 데이터와 이전 거리 데이터의 비교에 기반하여 방향 데이터를 포함할 수 있다. 예를 들어, 현재 거리 데이터의 x축 방향 값이 +50, y축 방향 값이 +10, z축 방향 값이 -5 이고 이전 거리 데이터의 x축 방향 값이 +60, y축 방향 값이 +15, z축 방향 값이 -10이라면, 프로세서(3620)는 현재의 움직임 방향을 x축 방향으로는 증가, y축 방향으로 증가, z축 방향으로 감소로 결정할 수 있다. The direction data relates to the instantaneous movement direction of the object, and may include whether or not there is an increase or decrease in the x-axis direction, whether or not there is an increase or decrease in the y-axis direction, and whether or not there is an increase or decrease in the z-axis direction. According to an embodiment, the
마우스 모드 하에서, 프로세서(3620)는 터치 센싱 모듈(3300)로부터 획득되는 터치 정보와 제2움직임 정보에 기반하여 대응하는 마우스 동작을 결정할 수 있다. 도4a는 일 실시 예에 따라, 마우스 모드 하에서, 전자 장치(3000)로 수행되는 마우스 동작들을 나타낸다. 마우스 동작은, 마우스 클릭, 줌 인/아웃(또는, 스크롤 업/다운), 마우스 무브, 마우스 드래그를 포함할 수 있다. 마우스 클릭은 한번 클릭(One Click), 더블 클릭(Double Click), 긴 클릭(Long Click)을 포함할 수 있다. 마우스 무브는 호스트 장치의 마우스 포인터를 움직일 수 있다.Under the mouse mode, the
도4b를 참조하면, 마우스 동작을 위해, 전자 장치(3000)의 터치 센싱 모듈(3300)의 표면(도2a의 메인 모듈(1240)의 정면)은 왼쪽에 위치한 터치 영역(R1), 가운데에 위치한 터치 영역(R2), 오른쪽에 위치한 터치 영역(R3)으로 구분될 수 있다. 도4c를 참조하면, 사용자가 터치 영역(R1)만을 터치하거나 터치 영역(R1)과 터치 영역(R2)를 같이 터치하면 해당 동작은 좌클릭(Left Click)으로 결정될 수 있다. 사용자가 터치 영역(R3)만을 터치하거나 터치 영역(R3)과 터치 영역(R2)을 같이 터치하면 해당 동작은 우클릭(Right Click)으로 결정될 수 있다. 사용자가 터치 영역(R2)만을 터치하거나 터치 영역(R2), 터치 영역(R1), 및 터치 영역(R3)을 같이 터치하면 해당 동작은 마우스 모드와 제스처 모드 사이의 전환(Mode Change)으로 결정될 수 있다. 사용자가 터치 영역(R1), 터치 영역(R2), 및 터치 영역(R3)를 순차적 및 연속적으로 터치하면 해당 동작은 스크롤 업(Scroll Up)으로 결정될 수 있다. 사용자가 터치 영역(R3), 터치 영역(R2), 및 터치 영역(R3)를 순차적 및 연속적으로 터치하면 해당 동작은 스크롤 다운(Scroll Down)으로 결정될 수 있다.Referring to FIG. 4B, for a mouse operation, the surface of the
프로세서(3620)는 마우스 모드 하에서, 사용자가 키보드를 사용하고 있을 때와 마우스를 사용하고 있을 때를 구분하고, 사용자가 키보드를 사용하고 있는 것으로 판단되면 마우스 신호를 출력하지 않을 수 있다. Under the mouse mode, the
제스처 모드 하에서, 프로세서(3620)는 제2움직임 정보에 기반하여, 전자 장치(3000)의 움직임과 대응하는 모션을 결정할 수 있다. 예를 들어, 프로세서(3620)는 제2움직임 정보에 기반하여, 기 정의된 모션들 중에서 전자 장치(3000)의 움직임에 대응하는 하나의 모션을 결정할 수 있다. 프로세서(3620)는 결정된 모션을 나타내는 모션 신호를 생성하고 이를 통신부(3640)를 통해 호스트 장치로 전달할 수 있다. 만약, 프로세서(3620)는 전자 장치(3000)와 호스트 장치 사이의 거리가 기준 거리보다 크거나, 전자 장치(3000)의 움직임이 기 정의된 모션들 중 어느 것에도 해당하지 않거나 무의미한 움직임으로 판단되는 경우, 예외 처리할 수 있다.Under the gesture mode, the
기 정의된 모션들은 무브(Move), 탭(Tap), 잡기(Grasp), 스크롤(Scroll), 스와이프(Swipe), 제스처(Gesture), 로테이션(Rotation) 등을 포함할 수 있다. 무브 모션은 전자 장치(3000)를 임의의 방향으로 이동시키는 동작으로서가상의 컨텐츠를 이동시키거나 페이지를 넘기는 동작 등을 위해 사용될 수 있다. 예를 들어, 무브 모션은 3축(x, y, z축) 방향으로의 움직임을 포함할 수 있다. 탭 모션은, 무언가를 두드리는 동작으로서, 가상의 컨텐츠를 선택하거나 클릭하기 위해 사용될 수 있다. 사용자가 탭 모션을 기준 시간 내에 두 번 연속 취함으로써, 가상의 컨텐츠를 더블 클릭할 수 있다. 탭 모션은 마우스 모드 하에서의 클릭 동작과는 별개의 동작이다.) 잡기 모션은, 떨어져 있는 두 개의 객체가 서로 맞닿는 동작으로서, 가상의 컨텐츠를 잡기 위해 사용될 수 있다. 제스처는, 텍스트, 기호, 또는 모양(예를 들어, '?' 또는 'X')을 표현하기 위한 움직임을 의미할 수 있다. Predefined motions may include move, tap, grab, scroll, swipe, gesture, rotation, and the like. The move motion is an operation of moving the
기 정의된 모션은 사용자 정의 모션에 의해 추가될 수 있다. 사용자 정의 모션이란, 전자 장치(3000)의 제조사가 아닌 사용자에 의해 정의되는 모션으로서, 사용자는 자신이 입력하는 특정한 움직임을 사용자 정의 모션으로 추가할 수 있다. 예를 들어, 사용자는 전자 장치(3000)를 손에 쥐거나 착용한 상태로 특정한 움직임을 반복하여 취하고 이를 특정한 기능 또는 모션과 매칭시킬 수 있다. 전자 장치(3000)에 사용자가 반복하여 취한 움직임 정보 및 움직임 정보에 해당하는 기능 또는 모션이 대응되어 저장될 수 있다. 예를 들어, 전자 장치(3000)를 손가락에 착용한 사용자는 무언가를 찌르는 듯한 찌르기 동작을 10회 취하고 이를 찌르기 모션으로 지정하여 저장할 수 있다. 이후, 사용자는 전자 장치(3000)를 착용하고 찌르기 동작을 취하는 경우, 프로세서(3620)는 찌르기 모션을 나타내는 모션 신호를 통신부(3640)를 통해 호스트 장치로 전달할 수 있다.Pre-defined motions can be added by user-defined motions. A user-defined motion is a motion defined by a user, not a manufacturer of the
전자 장치(3000)의 움직임 정보는 기계 학습에 기반하여 특정 모션과 매칭될 수 있다. 즉, 특정 움직임 정보를 기계 학습을 통해 학습된 결정 모델에 입력하면 결정 모델은 입력된 특정 움직임 정보에 대응하는 모션 신호를 출력할 수 있다. Motion information of the
일 실시 예에 따라, 전자 장치(3000)는 사용자들 별로 독립적인 결정 모델을 사용할 수 있다. 사용자들이 동일한 움직임을 취하더라도 생성되는 움직임 정보가 사용자들마다 상이하기 때문이다. 예를 들어, 팔을 돌려서 원을 그리는 동작이 전자 장치(3000)에서 출력되는 특정 모션 신호 또는 호스트 장치에서의 특정 기능과 대응된다고 가정하면, 사용자들마다 상기 동작을 취하면서 생성되는 움직임 정보는 모두 동일하지 않고 사용자들 마다의 특유한 패턴을 가지고 있을 수 있기 때문이다. According to an embodiment, the
도5를 참조하면, 제1결정 모델(DEC#1), 제2결정 모델(DEC#2), 제3결정 모델(DEC#3)은 각각 제1사용자의 움직임 정보, 제2사용자의 움직임 정보, 제3사용자의 움직임 정보로부터 대응되는 모션 신호를 출력하기 위해 사용될 수 있다. 제어 신호 출력부(3600) 또는 프로세서(3620)는 전자 장치(3000)를 현재 사용하는 사용자가 제1사용자이면, 획득된 제1사용자의 움직임 정보(예를 들어, 상술한 제2움직임 정보)를 제1결정 모델(DEC#1)에 입력하고 대응하는 모션 신호를 결정할 수 있다. 제어 신호 출력부(3600) 또는 프로세서(3620)는 현재 전자 장치(3000)를 사용하는 사용자가 제3사용자이면, 획득된 제3사용자의 움직임 정보(예를 들어, 상술한 제2움직임 정보)를 제3결정 모델(DEC#3)에 입력하고 대응하는 모션을 결정할 수 있다.Referring to FIG. 5, the first decision model DEC#1, the second decision model DEC#2, and the third decision model DEC#3 are motion information of the first user and motion information of the second user, respectively. , can be used to output a motion signal corresponding to the motion information of the third user. If the user currently using the
모션 신호를 결정하기 위한 결정 모델은 기계 학습에 기반하여 생성될 수 있다. 예를 들어, 제1결정 모델(DEC#1)은 제1사용자의 움직임 정보(예를 들어, 상술한 제2움직임 정보)와 특정 모션을 각각 입력과 출력으로 반복 적용하는 기계 학습을 수행함으로써 생성될 수 있다. 제1결정 모델(DEC#1)은 제1사용자가 팔을 돌려서 원을 그리는 동작으로부터 생성되는 제1사용자의 제2움직임 정보를 10회 이상 입력 받고, 입력받은 움직임 정보가 특정 모션 신호와 대응되도록 학습될 수 있다. 예를 들어, 제2결정 모델(DEC#2)은 제2사용자의 움직임 정보(예를 들어, 상술한 제2움직임 정보)와 특정 모션을 각각 입력과 출력으로 반복 적용하는 기계 학습을 수행함으로써 생성될 수 있다. 제2결정 모델(DEC#2)은 제2사용자가 팔을 돌려서 원을 그리는 동작으로부터 생성되는 제2사용자의 제2움직임 정보를 10회 이상 입력 받고, 입력 받은 움직임 정보가 특정 모션 신호와 대응되도록 학습될 수 있다.A decision model for determining the motion signal may be created based on machine learning. For example, the first decision model DEC#1 is generated by performing machine learning that repeatedly applies the first user's motion information (eg, the above-described second motion information) and a specific motion as inputs and outputs, respectively. It can be. The first decision model (DEC#1) receives the second motion information of the first user generated from the first user's motion of drawing a circle by rotating his arm 10 or more times, and makes the input motion information correspond to a specific motion signal. can be learned For example, the second decision model DEC#2 is generated by performing machine learning that repeatedly applies the second user's motion information (eg, the above-described second motion information) and a specific motion as inputs and outputs, respectively. It can be. The second decision model (DEC#2) receives the second user's second motion information generated from the second user's motion of drawing a circle by rotating his arm 10 or more times, and makes the input motion information correspond to a specific motion signal. can be learned
기계 학습 기법은 SVM(Support Vector Machine), 랜덤 포레스트(Random forest), 서포트 벡터 머신(Support Vector Machine: SVM), 나이브 베이즈(Naive Bayes), 적응적 부스팅(Adaptive Boosting: AdaBoost), 랜덤 포레스트(Random Forest), 그래디언트 부스팅(Gradient Boosting), K-평균 클러스터링(K-means clustering), 인공 신경망(Artificial Neural Network) 등을 포함할 수 있다.Machine learning techniques include Support Vector Machine (SVM), Random forest, Support Vector Machine (SVM), Naive Bayes, Adaptive Boosting (AdaBoost), Random Forest ( Random Forest), gradient boosting, K-means clustering, artificial neural network, and the like.
모션 신호를 결정하기 위해 사용되는 기계 학습 기반의 결정 모델은 전자 장치(3000) 내의 메모리(미도시)에 저장되거나 호스트 장치에 저장될 수 있다. 또한, 결정 모델을 생성하기 위한 학습은 전자 장치(3000)에서 수행되거나 호스트 장치에서 수행될 수 있다. 일 실시 예에 따라, 결정 모델을 생성하기 위한 학습은 호스트 장치에서 수행되고, 생성된 결정 모델은 전자 장치(3000) 내의 메모리(미도시)에 저장될 수 있다. 또는, 결정 모델에 대한 학습이 전자 장치(3000)에서 수행되고 전자 장치(3000)의 메모리(미도시)에 결정 모델이 저장될 수 있다.The machine learning-based decision model used to determine the motion signal may be stored in a memory (not shown) in the
도7은 일 실시 예에 따라, 제스처 모드 하에서, 전자 장치(3000)로 호스트 장치를 제어하기 위한 왼쪽 무브(Left Move) 모션, 오른쪽 무브(Right Move) 모션, 위쪽 무브(Up Move) 모션, 아래쪽 무브(Down Move) 모션, 로테이션 (Clockwise Rotation, Counter Clockwise Rotation) 모션, 포워드/백 방향 무브(Forward/Back Move) 모션을 나타낸다. 왼쪽 무브 모션과 오른쪽 무브 모션은 x축 +/- 방향의 움직임으로부터 결정될 수 있다. 위쪽 무브 모션과 아래쪽 무브 모션은 z축 +/- 방향의 움직임으로부터 결정될 수 있다. 포워드 무브 모션과 백 무브 모션은 y축 +/- 방향의 움직임으로부터 결정될 수 있다.7 is a left move motion, a right move motion, an up move motion, and a down move motion for controlling a host device with the
이러한 실시 예에서, 사용자는 전자 장치(3000)를 착용한 채로 3차원 공간에서 왼쪽 무브 또는 오른쪽 무브 모션을 취함으로써 호스트 장치에서 실행 중인 워드 문서의 페이지를 넘길 수 있다. 제스처 모드 하에서, 전자 장치(3000)가 호스트 장치를 제어하기 위한 모션은 상술된 실시 예에 제한되지 않는다. 예를 들어, 전자 장치(3000)가 지원하는 모션은 탭(Tap), 잡기(Grasp), 스크롤(Scroll), 스와이프(Swipe) 등을 더 포함할 수 있다. 또한, 제스처 모드 하에서의 모션들(사용자 정의 모션을 포함)은 상술한 기계 학습 기반의 결정 모델을 통해 사용자에 의해 추가되고 사용될 수 있다.In this embodiment, the user may turn the page of a word document being executed in the host device by making a left move or a right move motion in a 3D space while wearing the
다시 도3을 참조하면, 프로세서(3620)는 모션 신호 또는 마우스 신호를 나타내는 제어 신호를 생성할 수 있다. 예를 들어, 프로세서(3620)는 사용자의 움직임이 왼쪽 무빙(Left Moving) 모션으로 결정되면 왼쪽 무빙(Left Moving) 모션을 나타내는 제1비트열을 제어 신호로서 생성할 수 있다. 프로세서(3620)는 사용자의 움직임이 시계 방향의 로테이션 모션으로 결정되면 시계 방향의 로테이션 모션을 나타내는 제2비트열을 제어 신호로서 생성할 수 있다. 또는, 전자 장치(2000)와 호스트 장치와 약속된 규약을 사용하는 경우, 모션들 각각에 할당된 번호를 제어 신호로서 생성할 수도 있다. 프로세서(3620)는 사용자의 움직임이 마우스 무브로 결정되면 마우스 무브를 나타내는 제3비트열을 제어 신호로서 생성할 수 있다. Referring back to FIG. 3 , the
프로세서(3620)는 하나의 프로세서 코어(Single Core)를 포함하거나, 복수의 프로세서 코어들(Multi-Core)을 포함할 수 있다. 예를 들어, 프로세서(3620)는 듀얼 코어(Dual-Core), 쿼드 코어(Quad-Core), 헥사 코어(Hexa-Core) 등의 멀티 코어(Multi-Core)를 포함할 수 있다. 또한, 프로세서(3620)는 내부 또는 외부에 위치한 캐시 메모리(Cache Memory)를 더 포함할 수 있다.The
통신부(3640)는 제어 신호를 무선 통신 인터페이스를 통해 호스트 장치로 전달할 수 있다. 통신부(3640)는 Wi-fi(Wireless Fidelity)와 같은 무선 근거리 통신망(Wireless Local Area Network; WLAN), 블루투스(Bluetooth)와 같은 무선 개인 통신망(Wireless Personal Area Network; WPAN), 무선 USB(Wireless Universal Serial Bus), Zigbee, NFC(Near Field Communication), RFID(Radio-frequency identification), 또는 3G(3rd Generation), 4G(4th Generation), LTE(Long Term Evolution) 등 이동 통신망(mobile cellular network)에 접속 가능한 모뎀 통신 인터페이스 등을 포함할 수 있다. 블루투스 인터페이스는 BLE(Bluetooth Low Energy)를 지원할 수 있다.The communication unit 3640 may transmit a control signal to the host device through a wireless communication interface. The communication unit 3640 may include a wireless local area network (WLAN) such as Wi-Fi (Wireless Fidelity), a wireless personal area network (WPAN) such as Bluetooth, and wireless USB (Wireless Universal Serial Bus), Zigbee, NFC (Near Field Communication), RFID (Radio-frequency identification), or 3G (3rd Generation), 4G (4th Generation), LTE (Long Term Evolution), etc. It may include a modem communication interface and the like. The Bluetooth interface may support Bluetooth Low Energy (BLE).
전자 장치(3000)는, 전자 장치(3000)에서 수행되는 동작에 필요한 메모리(미도시)를 포함할 수 있다. 예를 들어, 전자 장치(3000)는 센서 융합부(3280)에서의 센서 융합 동작을 수행하기 위해 필요한 메모리(미도시)를 포함할 수 있다. 또한, 전자 장치(3000)는 기 정의된 모션들 및/또는 사용자 정의 모션을 저장하기 위해 사용되거나 프로세서(3620)에서 수행되는 동작에 필요한 메모리(미도시)를 포함할 수 있다. 메모리(미도시)는 사용자 움직임에 대응하는 모션 신호를 결정하기 위해 기계 학습에 기반하여 생성된 결정 모델을 저장할 수 있다. 메모리(미도시)는, 동적 랜덤 액세스 메모리(Dynamic Random Access Memory; DRAM), 정적 랜덤 액세스 메모리(Static Random Access Memory; SRAM) 등과 같은 휘발성 메모리 장치, 플래시 메모리 장치(flash memory device), 솔리드 스테이트 드라이브(Solid State Drive; SSD) 등과 같은 비휘발성 메모리 장치를 포함할 수 있다.The
전자 장치(3000)는, 전자 장치(3000)에서 수행되는 동작에 필요한 전원을 공급하기 위한 배터리(미도시)를 포함할 수 있다. 배터리(미도시)는 리튬 이온 배터리 또는 리튬 폴리머 배터리를 포함할 수 있으나 이에 제한되지 않는다. 예를 들어, 배터리(미도시)는 제어 신호 출력부(3600)에 포함될 수 있으며, 배터리(미도시)에서 출력되는 전원 중 일부가 움직임 센싱 모듈(3200)로 바이패스될 수 있다.The
전자 장치(3000)는 배터리(미도시)를 충전시키기 위한 충전 단자를 포함할 수 있다. 전자 장치(3000)는 USB 타입의 충전 단자를 포함할 수 있다. 충전 단자를 통해 유입되는 전류는 배터리를 충전시키기 위해 사용될 수 있다. 일 실시 예에 따라, 도1a 및 1b의 링형 장치(1200)에 충전 단자가 존재할 수도 있으며, 크래들 장치(1400)에 충전 단자가 존재할 수도 있다. 예를 들어, 메인 모듈(1240)에 충전 단자가 존재하고, 링형 장치(1200)가 크래들 장치(1400)에 수납됨으로써 메인 모듈(1240)에 대한 충전이 수행될 수 있다.The
이하, 도8 내지 14를 참조하여, 전자 장치를 사용하여 컨텐츠를 제어하는 방법을 설명한다. 도8 내지 14를 참조하여 설명하는 방법은 도3의 전자 장치(3000) 및 호스트 장치 중 적어도 하나에서 수행될 수 있다. 따라서, 이하 생략된 내용이라 하더라도 도3의 전자 장치(3000) 또는 호스트 장치에 관하여 기술된 내용은 도8 내지 14에도 적용될 수 있다. 또한, 도8 내지 14의 방법에 대한 내용 역시 도3의 전자 장치(3000), 또는 호스트 장치에 적용될 수 있다.Hereinafter, a method of controlling content using an electronic device will be described with reference to FIGS. 8 to 14 . The method described with reference to FIGS. 8 to 14 may be performed in at least one of the
도8은 일 실시 예에 따라, 전자 장치를 사용하여 컨텐츠를 제어하는 방법의 흐름도를 나타낸다.8 is a flowchart of a method of controlling content using an electronic device, according to an embodiment.
단계 S200에서, 전자 장치는 센싱 모듈에 기반하여 객체의 제1움직임 정보를 획득할 수 있다. 객체는 전자 장치 자체를 의미할 수 있다. 센싱 모듈은 가속도 센서, 자이로 센서, 및 지자기 센서를 포함할 수 있다. 제1움직임 정보는, 객체의 움직임에 대한 가속도 데이터와 각속도 데이터를 포함할 수 있다. 예를 들어, 제1움직임 정보는, 가속도 센서를 통해 획득되는 가속도 데이터와 자이로 센서를 통해 획득되는 각속도 데이터가 센서 융합부에 의해 최적화된 데이터일 수 있다.In step S200, the electronic device may acquire first motion information of the object based on the sensing module. An object may mean an electronic device itself. The sensing module may include an acceleration sensor, a gyro sensor, and a geomagnetic sensor. The first motion information may include acceleration data and angular velocity data for the motion of the object. For example, the first motion information may be data obtained by optimizing acceleration data obtained through an acceleration sensor and angular velocity data obtained through a gyro sensor by a sensor fusion unit.
단계 S400에서, 전자 장치는 단계 S200에서 획득된 제1움직임 정보를 연산함으로써 제2움직임 정보를 생성할 수 있다. 제2움직임 정보는 각도 데이터, 속도 데이터, 거리 데이터, 및 방향 데이터 중 적어도 하나를 포함할 수 있다. 전자 장치는 객체가 움직이는 동안, 제2움직임 정보를 실시간으로 계산하고 획득할 수 있다. 예를 들어, 전자 장치는 기준 시간(예를 들어, 5ms) 마다 제1움직임 정보에 대한 연산을 수행함으로써 제2움직임 정보를 획득할 수 있다. 기준 시간은 30ms 이하일 수 있으나 이에 제한되지 않는다. 전자 장치는 검지의 중간 마디에 착용됨으로써, 검지의 첫 마디와 중간 마디 사이의 관절을 축으로 하여, 검지의 중간 마디가 움직인 각도와 속도를 결정할 수 있다. 또한, 전자 장치는 검지의 끝 마디에 착용됨으로써, 검지의 첫 마디와 중간 마디 사이의 관절을 축으로 하여 검지의 끝 마디가 움직인 각도와 속도를 결정할 수 있다.In step S400, the electronic device may generate second motion information by calculating the first motion information obtained in step S200. The second motion information may include at least one of angle data, speed data, distance data, and direction data. The electronic device may calculate and obtain second motion information in real time while the object is moving. For example, the electronic device may obtain the second motion information by performing an operation on the first motion information every reference time (eg, 5 ms). The reference time may be 30 ms or less, but is not limited thereto. As the electronic device is worn on the middle joint of the index finger, the joint between the first joint and the middle joint of the index finger can be used as an axis to determine the moving angle and speed of the middle joint of the index finger. Also, since the electronic device is worn on the tip joint of the index finger, the angle and speed at which the tip joint of the index finger moves can be determined with the joint between the first joint and the middle joint of the index finger as an axis.
단계 S500에서, 전자 장치는 현재 모드가 마우스 모드인지 제스처 모드인지 판단할 수 있다. 전자 장치는 현재 모드가 마우스 모드라면(Yes), 단계 S520에서 터치 정보를 획득하고, 단계 S540에서 제2움직임 정보와 터치 정보 중 적어도 하나에 기반하여 마우스 신호를 결정할 수 있다.In step S500, the electronic device may determine whether the current mode is a mouse mode or a gesture mode. If the current mode is the mouse mode (Yes), the electronic device may acquire touch information in step S520 and determine a mouse signal based on at least one of the second motion information and touch information in step S540.
전자 장치는 현재 모드가 제스처 모드라면(No), 단계 S600에서, 전자 장치는 획득된 제2움직임 정보에 기반하여, 객체의 움직임에 대응하는 모션 신호를 결정할 수 있다. 일 실시 예에 따라, 전자 장치는 객체의 움직임에 대응하는 모션 신호를 결정할 수 있다. 일 실시 예에 따라, 전자 장치는 검지 손가락이 움직인 속도, 각도, 거리 등에 기반하여 모션을 결정할 수 있다. 모션들은 무브, 탭, 잡기, 스크롤, 스와이프, 제스처, 및 로테이션 모션 등을 포함할 수 있으나 이에 제한되지 않는다. 모션들은 사용자의 특성에 맞게 생성되는 제스처 프로파일들(LEFT/RIGHT, FORWARD/BACKWARD, CIRCLE(CLOCKWISE/COUNTERCLOCKWISE)을 포함할 수 있다. 전자 장치는 객체의 움직임이 제조사에 의해 기 정의된 모션들이나 사용자 정의 모션 중 어느 것에도 해당되지 않거나 무의미한 움직임으로 판단되는 경우, 모션 신호를 생성하지 않고 예외 처리할 수 있다. If the current mode of the electronic device is the gesture mode (No), in step S600, the electronic device may determine a motion signal corresponding to the motion of the object based on the acquired second motion information. According to an embodiment, the electronic device may determine a motion signal corresponding to the motion of the object. According to an embodiment, the electronic device may determine the motion based on the speed, angle, distance, etc. of the index finger. Motions may include, but are not limited to, move, tap, grab, scroll, swipe, gesture, and rotation motion. The motions may include gesture profiles (LEFT/RIGHT, FORWARD/BACKWARD, CIRCLE (CLOCKWISE/COUNTERCLOCKWISE)) that are created to suit the user's characteristics. In electronic devices, motions of objects are predefined by manufacturers or user-defined. If none of the motions are applicable or if the motion is determined to be meaningless, an exception may be processed without generating a motion signal.
단계 S800에서, 전자 장치는 결정된 모션 신호 또는 마우스 신호를 나타내는 제어 신호를 무선 통신 인터페이스를 통해 호스트 장치로 전달할 수 있다. 제어 신호는, 호스트 장치를 제어하기 위한 인터럽트 신호일 수 있다. 일 실시 예에 따라, 전자 장치는 객체의 위치가 컨텐츠가 재생되는 위치로부터 기준 거리 내에 있는지 판단하고, 판단 결과 기준 거리 내에 있을 때에만 제어 신호를 호스트 장치로 전달할 수 있다. 사용자가 컨텐츠로부터 멀리 떨어져 있는 경우, 사용자의 움직임이 컨텐츠를 제어하기 위한 움직임으로 보기 어렵기 때문이다.In step S800, the electronic device may transmit a control signal representing the determined motion signal or mouse signal to the host device through a wireless communication interface. The control signal may be an interrupt signal for controlling the host device. According to an embodiment, the electronic device may determine whether the location of the object is within a standard distance from the location where content is reproduced, and transmit a control signal to the host device only when the location of the object is within the standard distance as a result of the determination. This is because when the user is far away from the content, it is difficult to view the user's movement as a movement for controlling the content.
단계 S900에서, 호스트 장치는 수신된 제어 신호에 기반하여, 컨텐츠를 제어할 수 있다. 예를 들어, 호스트 장치는, 수신된 제어 신호가 무브 모션인 경우, 게임 상의 야구공을 객체의 움직임에 비례하는 방향, 속도, 거리로 움직일 수 있다. 호스트 장치는, 수신된 제어 신호가 탭 모션인 경우, 게임 상의 아이템을 선택할 수 있다. 호스트 장치는, 수신된 제어 신호가 로테이션 모션인 경우, 게임 상의 원판을 회전시킬 수 있다. 호스트 장치는, 수신된 제어 신호가 무브 모션인 경우, 객체와 컨텐츠 사이의 거리에 따라, 컨텐츠를 줌-인 또는 줌-아웃할 수 있다. 호스트 장치는, 수신된 제어 신호가 페이지 넘기기 모션(예를 들어, LEFT MOVE, RIGHT MOVE)인 경우, 실행 중인 워드 문서 또는 프리젠테이션 문서의 페이지를 넘길 수 있다. 호스트 장치는, 수신된 제어 신호가 마우스 클릭인 경우, 현재 마우스 포지션에서 클릭 동작을 수행할 수 있다. 호스트 장치는, 수신된 제어 신호가 마우스 스크롤 업인 경우, 스크롤 업 동작을 수행할 수 있다.In step S900, the host device may control content based on the received control signal. For example, when the received control signal is a move motion, the host device may move a baseball in a game in a direction, speed, and distance proportional to the motion of the object. The host device may select an item in the game when the received control signal is a tap motion. The host device may rotate the disc in the game when the received control signal is a rotation motion. When the received control signal is a move motion, the host device may zoom-in or zoom-out the content according to a distance between the object and the content. When the received control signal is a page turning motion (eg, LEFT MOVE, RIGHT MOVE), the host device may turn pages of the currently executing word document or presentation document. When the received control signal is a mouse click, the host device may perform a click operation at the current mouse position. The host device may perform a scroll-up operation when the received control signal is a mouse scroll-up.
도9는 일 실시 예에 따라, 전자 장치가 객체의 움직임에 대한 거리 데이터를 획득하기 위한 방법의 흐름도를 나타낸다.9 is a flowchart of a method for obtaining, by an electronic device, distance data about motion of an object, according to an embodiment.
단계 S420에서, 전자 장치는 가속도 데이터로부터 중력 가속도 성분을 제거하여 선형 가속도 데이터를 생성할 수 있다. 가속도 데이터에서 중력 가속도에 의한 영향을 제거함으로써, 객체의 움직임에 대한 가속도 데이터가 획득될 수 있다. In step S420, the electronic device may generate linear acceleration data by removing the gravitational acceleration component from the acceleration data. Acceleration data for the motion of the object may be obtained by removing the influence of the gravitational acceleration from the acceleration data.
단계 S440에서, 전자 장치는 선형 가속도 데이터에 적분 연산을 수행하여 속도 데이터를 획득할 수 있다.In step S440, the electronic device may obtain speed data by performing an integral operation on the linear acceleration data.
단계 S460에서, 전자 장치는 속도 데이터에 적분 연산을 수행하여 거리 데이터를 획득할 수 있다. In step S460, the electronic device may obtain distance data by performing an integration operation on the speed data.
도11은 일 실시 예에 따라, 객체의 움직임을 마우스 모드 하에서의 마우스 무브 또는 제스처 모드 하에서의 무브 모션으로 결정하고, 움직인 거리 데이터를 획득하기 위한 방법의 흐름도를 나타낸다. 도12는 도10의 단계 S540 또는 S600의 하위 단계를 나타낼 수 있다.11 is a flowchart of a method for determining the movement of an object as a mouse move in a mouse mode or a move motion in a gesture mode, and acquiring movement distance data, according to an embodiment. FIG. 12 may represent sub-steps of step S540 or S600 of FIG. 10 .
단계 S612에서, 전자 장치는 객체의 초기 움직임에 대한 각도와 속도를 결정할 수 있다. 전자 장치는 객체의 움직임이 시작된 후 초기 움직임(예를 들어, 움직임이 시작된 후 기준 시간 이내)에 대한 각도 데이터와 속도 데이터를 획득할 수 있다.In step S612, the electronic device may determine the angle and speed of the initial movement of the object. The electronic device may acquire angle data and velocity data for an initial movement (eg, within a reference time after the movement starts) after the movement of the object starts.
단계 S614에서, 전자 장치는 단계 S612에서 획득된 각도 데이터와 속도 데이터가 기준 조건을 만족하는지 판단할 수 있다. 예를 들어, 속도가 기준 값 이상이고 각도의 변화 폭이 20도 이내인 경우 전자 장치는 객체의 움직임을 직진 방향의 움직임으로 결정할 수 있다. 전자 장치는 각도 데이터와 속도 데이터가 기준 조건을 만족하지 않으면(No), 객체의 움직임이 다른 모션에 해당하는지 판단하거나 어떠한 모션에도 해당하지 않는 것으로 판단되는 경우 예외 처리할 수 있다(S618).In step S614, the electronic device may determine whether the angle data and speed data obtained in step S612 satisfy a reference condition. For example, when the speed is equal to or greater than the reference value and the range of change in angle is within 20 degrees, the electronic device may determine the motion of the object as a motion in a straight direction. If the angle data and the velocity data do not satisfy the reference conditions (No), the electronic device may determine whether the motion of the object corresponds to another motion or may process an exception if it is determined that the motion of the object does not correspond to any motion (S618).
전자 장치는 각도 데이터와 속도 데이터가 기준 조건을 만족하면(Yes), 움직임을 무브 모션 또는 마우스 무브로 결정하고, 객체의 움직임에 대한 거리 데이터를 획득(S616)할 수 있다. 예를 들어, 전자 장치는 움직이고자 하는 방향으로 전자 장치가 기 설정된 속도 이상으로 움직이는 시점을 움직임에 대한 시작점으로 결정할 수 있다. 객체의 움직임에 대한 거리 데이터는 도11을 참조하여 상술한 방법으로 결정될 수 있다.If the angle data and the velocity data satisfy the reference condition (Yes), the electronic device may determine the movement as a move motion or a mouse move and obtain distance data for the movement of the object (S616). For example, the electronic device may determine a point in time when the electronic device moves at a predetermined speed or more in a desired direction as a starting point for the movement. Distance data for the movement of the object may be determined by the method described above with reference to FIG. 11 .
일 실시 예에 따라, 전자 장치는 거리 데이터 외에 위치 데이터(예를 들어, 객체의 3차원 공간 좌표)와 방향 데이터를 더 획득할 수 있다. According to an embodiment, the electronic device may obtain location data (eg, 3D space coordinates of an object) and direction data in addition to distance data.
전자 장치는 임의의 시점에서의 객체의 위치 또는 임의의 공간 상의 위치를 기준점으로 하였을 때, 객체가 움직인 거리 데이터에 기반하여 현재의 객체의 위치 데이터를 획득할 수 있다. 전자 장치는 객체의 움직임 단위마다 움직인 거리를 결정하고, 결정된 거리 데이터를 메모리에 저장할 수 있다. 전자 장치는 메모리로부터 움직임들에 대한 거리 데이터를 읽어오고, 읽어온 거리 데이터를 합산하여 현재 객체의 위치 데이터를 결정할 수 있다.The electronic device may obtain current location data of an object based on data of a distance moved by the object when the location of the object at an arbitrary time or a location in an arbitrary space is used as a reference point. The electronic device may determine a moving distance for each movement unit of the object and store the determined distance data in a memory. The electronic device may determine location data of the current object by reading distance data about motions from a memory and summing the read distance data.
예를 들어, 전자 장치는 임의의 이전 시점에서의 객체의 위치 데이터가 (0, 0, 0)이고 무브 모션이 3번 연속하여 발생된 경우, 제1무브 모션의 제1거리 데이터가 (10, -20, 30), 제2무브 모션의 제2거리 데이터가 (-10, -30, -10), 및 제3무브 모션의 제3거리 데이터가 (20, 100, 100)인 경우, 현재 객체의 위치 데이터를 (20, 50, 120)으로 결정할 수 있다. 예를 들어, 제1무브 모션이 한 번 발생하고, 객체가 사람이 위치를 옮김에 따라 단순 이동되고 다시 다른 무브 모션이 한 번 더 발생한 경우, 제1무브 모션의 제1거리 데이터가 (5, 30, 20), 단순 이동에 대한 제2거리 데이터가 (500, 500, 0), 제2무브 모션의 제2거리 데이터가 (10, 30, 30)인 경우, 현재 객체의 위치 데이터를 (515, 560, 50)으로 결정할 수 있다.For example, when the position data of an object at a previous point in time is (0, 0, 0) and the move motion occurs three times in succession, the first distance data of the first move motion is (10, -20, 30), the second distance data of the second move motion is (-10, -30, -10), and the third distance data of the third move motion is (20, 100, 100), the current object The location data of can be determined as (20, 50, 120). For example, if the first move motion occurs once, the object is simply moved as a person moves, and another move motion occurs again, the first distance data of the first move motion is (5, 30, 20), when the second distance data for simple movement is (500, 500, 0) and the second distance data for second move motion is (10, 30, 30), the position data of the current object is set to (515). , 560, 50).
전자 장치는 현재의 거리 데이터와 이전 거리 데이터의 비교에 기반하여 객체가 움직이고 있는 방향 데이터를 획득할 수 있다. 이전 거리 데이터란, 직전에 획득된 거리 데이터를 의미할 수 있다. 예를 들어, 5ms 마다 거리 데이터가 연산되는 경우, 시점 t의 거리 데이터와 시점 t-5ms에 획득된 거리 데이터에 기반하여 x축 방향으로의 증감 여부, y축 방향으로의 증감 여부, 및 z축 방향으로의 증감 여부를 결정할 수 있다. 예를 들어, 현재 거리 데이터의 x축 방향 값이 +50, y축 방향 값이 +10, z축 방향 값이 -5 이고 이전 거리 데이터의 x축 방향 값이 +60, y축 방향 값이 +15, z축 방향 값이 -10이라면, 전자 장치(3000)는 현재의 움직임 방향을 x축 방향으로는 증가, y축 방향으로 증가, z축 방향으로 감소로 결정할 수 있다.The electronic device may obtain direction data in which the object is moving based on comparison between current distance data and previous distance data. Previous distance data may refer to distance data obtained immediately before. For example, if distance data is calculated every 5 ms, whether to increase or decrease in the x-axis direction, whether to increase or decrease in the y-axis direction, and the z-axis based on the distance data at time point t and the distance data obtained at time point t-5 ms You can decide whether to increase or decrease in the direction. For example, the x-axis value of the current distance data is +50, the y-axis value is +10, and the z-axis value is -5, and the x-axis value of the previous distance data is +60 and the y-axis value is +60. If the value of 15 or the z-axis direction is -10, the
도10는 일 실시 예에 따라, 전자 장치의 블록도를 나타낸다.10 shows a block diagram of an electronic device, according to an embodiment.
도10의 전자 장치(MD)는 도1a 내지 9를 참조하여 상술한 전자 장치일 수 있다. 예를 들어, 전자 장치는 링형 장치일 수 있다. 도12를 참조하면, 전자 장치(MD)는 가속도 센서(ACC), 자이로 센서(GYR), 지자기 센서(MAG), 제1프로세서(P1), 제2프로세서(P2), 및 메모리(M)를 포함할 수 있다.The electronic device MD of FIG. 10 may be the electronic device described above with reference to FIGS. 1A to 9 . For example, the electronic device may be a ring-shaped device. Referring to FIG. 12, the electronic device MD includes an acceleration sensor ACC, a gyro sensor GYR, a geomagnetic sensor MAG, a first processor P1, a second processor P2, and a memory M. can include
가속도 센서(ACC), 자이로 센서(GYR), 지자기 센서(MAG)는 도3을 참조하여 상술한 가속도 센서(Accelerometer, 3220), 자이로 센서(Gyroscope, 3240), 지자기 센서(Magnetometer, 3260)와 각각 동일하므로 상세한 설명은 생략한다.The accelerometer (ACC), gyro sensor (GYR), and geomagnetic sensor (MAG) are the same as the accelerometer (3220), gyroscope (3240), and geomagnetic sensor (Magnetometer, 3260) described above with reference to FIG. Since they are the same, detailed descriptions are omitted.
도10와 11을 같이 참조하면, 제1프로세서(P1)는 가속도 센서(ACC)로부터 수신한 데이터에 기반하여 3축(Left/Right, Forward/Back, Up/Down) 별 가속도 값을 획득할 수 있다. 제1프로세서(P1)는 자이로 센서(GYR)로부터 수신한 데이터에 기반하여 3축(Yaw/Pitch/Roll)축 별 각속도 값을 획득할 수 있다. 제1프로세서(P1)는 가속도 센서(ACC), 자이로 센서(GYR), 지자기 센서(MAG)에 기반하여 3축(Yaw/Pitch/Roll 모듈과 지면과의 수평 기준의 기울기 값을 획득할 수 있다.10 and 11 together, the first processor P1 may obtain acceleration values for each of the three axes (Left/Right, Forward/Back, Up/Down) based on data received from the acceleration sensor ACC. there is. The first processor P1 may obtain angular velocity values for each of three axes (Yaw/Pitch/Roll) based on data received from the gyro sensor GYR. The first processor (P1) may acquire the inclination value of the horizontal reference between the 3-axis (Yaw/Pitch/Roll module and the ground) based on the acceleration sensor (ACC), the gyro sensor (GYR), and the geomagnetic sensor (MAG). .
제2프로세서(P2)는 제1프로세서(P1)로부터 수신된 값들에 기반하여 사용자에 대한 제스처 프로파일을 생성하거나 사용자가 실제로 취한 모션이 기 생성된 제스처 프로파일들 중 어느 하나와 매칭되는지 판단할 수 있다. 사용자가 호스트 장치를 컨트롤하기 위해 실제로 취한 모션이 기 정의된 조건들에 부합하는지를 확인함으로써 특정 제스처인지 여부를 판단하기 위한 기 정의된 조건들을 제스처 프로파일이라고 지칭할 수 있다. 예를 들어, 제스처 프로파일은 8개 제스처 프로파일(LEFT/RIGHT/UP/DOWN MOVE, FORWARD/BACKWARD MOVE, CIRCLE(CLOCKWISE/COUNTERCLOCKWISE))들을 포함할 수 있다.The second processor P2 may generate a gesture profile for the user based on the values received from the first processor P1 or determine whether a motion actually taken by the user matches one of the previously generated gesture profiles. . Predefined conditions for determining whether a gesture is a specific gesture may be referred to as a gesture profile by checking whether a motion actually taken by the user to control the host device meets the predefined conditions. For example, the gesture profile may include 8 gesture profiles (LEFT/RIGHT/UP/DOWN MOVE, FORWARD/BACKWARD MOVE, CIRCLE (CLOCKWISE/COUNTERCLOCKWISE)).
일 실시 예에 따라, 전자 장치는 사용자에게 특정 모션 LEFT/RIGHT/UP/DOWN MOVE, FORWARD/BACKWARD MOVE, CIRCLE(CLOCKWISE/COUNTERCLOCKWISE)을 반복해서 취할 것(예를 들면, 도7의 모션들)을 가이드하고 전자 장치는 사용자의 반복된 모션으로부터 획득된 데이터에 기반하여 제스처 프로파일을 저장할 수 있다. 일 실시 예에 따라, 제스처 프로파일은 LEFT/RIGHT, FORWARD/BACKWARD, CIRCLE(CLOCKWISE/COUNTERCLOCKWISE)을 포함하는 6개의 모션 각각에 대해 생성될 수 있다. 도12는 일 실시 예에 따라, 호스트 장치에서 좌측 무브 동작을 표시하고 사용자가 이를 따라함으로써 제스처 프로파일이 생성되는 것을 나타낸다.According to an embodiment, the electronic device instructs the user to repeatedly perform specific motions LEFT/RIGHT/UP/DOWN MOVE, FORWARD/BACKWARD MOVE, CIRCLE (CLOCKWISE/COUNTERCLOCKWISE) (eg, the motions of FIG. 7). The guide and electronic device may store a gesture profile based on data obtained from repeated motions of the user. According to an embodiment, a gesture profile may be generated for each of six motions including LEFT/RIGHT, FORWARD/BACKWARD, and CIRCLE (CLOCKWISE/COUNTERCLOCKWISE). 12 shows that a gesture profile is created by displaying a left move motion in the host device and following it by the user, according to an embodiment.
호스트 장치와 페어링되어 사용자의 모션에 기반한 제어신호를 전송하기 위한 전자 장치는, 가속도 센서, 자이로 센서, 지자기 센서, 메모리, 상기 가속도 센서로부터 수신한 가속도 데이터에 기반하여 좌우 방향의 제1축, 앞뒤 방향의 제2축, 및 위아래 방향의 제3축 각각에 대한 가속도 값들을 획득하고, 상기 자이로 센서로부터 수신한 자이로 데이터에 기반하여 요(Yaw)축, 피치(Pitch)축, 롤(Roll)축 각각에 대한 각속도 값들을 획득하고, 상기 가속도 센서, 상기 자이로 센서, 및 상기 지자기 센서로부터 각각 획득한 가속도 데이터, 자이로 데이터, 및 지자기 데이터에 기반하여 상기 전자 장치의 요(Yaw)축, 피치(Pitch)축, 롤(Roll)축 방향 각각과 수평면 사이의 기울기 값들을 획득하기 위한 제1프로세서, 상기 제1프로세서로부터 수신된 상기 가속도 값, 상기 각속도 값, 및 상기 기울기 값을 실시간으로 획득하고, 상기 피치축에 대한 기울기 값과 롤축에 대한 기울기 값이 기준 이내이면 모션이 준비된 것으로 판단하고, 상기 피치축에 대한 각속도가 기준 값 이상이면 모션이 시작된 것으로 판단하되, 상기 모션의 피치축에 대한 기울기 값이 기준 범위를 벗어나면 예외처리하는 제2프로세서를 포함할 수 있다.An electronic device that is paired with a host device and transmits a control signal based on a user's motion includes an acceleration sensor, a gyro sensor, a geomagnetic sensor, a memory, and a first axis in a left and right direction, forward and backward, based on acceleration data received from the acceleration sensor. Acceleration values for each of the second axis in the direction and the third axis in the up and down direction are acquired, and the yaw axis, pitch axis, and roll axis are obtained based on the gyro data received from the gyro sensor. Each angular velocity value is obtained, and the yaw axis and pitch of the electronic device are obtained based on the acceleration data, gyro data, and geomagnetic data obtained from the acceleration sensor, the gyro sensor, and the geomagnetic sensor, respectively. ) axis, a first processor for obtaining inclination values between each of the roll axis directions and a horizontal plane, obtaining the acceleration value, the angular velocity value, and the inclination value received from the first processor in real time, wherein the If the inclination value for the pitch axis and the inclination value for the roll axis are within the standard, it is determined that the motion is ready, and if the angular velocity with respect to the pitch axis is greater than or equal to the reference value, it is determined that the motion has started, but the inclination value of the motion with respect to the pitch axis A second processor that handles exceptions outside of this standard range may be included.
제스처 레코딩 모드 하에서, 상기 제2프로세서는 모션이 완료된 것으로 판단되면, 상기 모션이 시작 후 완료까지의 선형 가속도 값을 누적 합산한 기준 가속도 값과 상기 모션 시작 후 완료까지의 롤축에 대한 각속도 최대값을 피치축에 대한 각속도 최대값으로 나눈 값인 기준 회전량과 상기 모션 시작 후 완료까지의 요축에 대한 각속도 최대값을 피치축에 대한 각속도 최대값으로 나눈 값인 기준 간섭량을 획득하여 상기 메모리에 저장할 수 있다.Under the gesture recording mode, when it is determined that the motion is complete, the second processor calculates a reference acceleration value obtained by cumulatively summing linear acceleration values from the start of the motion to the end of the motion and the maximum angular velocity value for the roll axis from the start to the end of the motion. A reference rotation amount obtained by dividing the maximum angular velocity value on the pitch axis and a reference interference amount obtained by dividing the maximum angular velocity value on the yaw axis from the start of the motion to the end by the maximum angular velocity value on the pitch axis can be obtained and stored in the memory.
상기 제2프로세서는, 제스처 인식 모드 하에서, 상기 제2프로세서는 모션이 완료된 것으로 판단되면, 상기 모션이 시작 후 완료까지의 선형 가속도 값을 누적 합산한 값이 상기 기준 가속도 값과 기준 범위 이내로 유사하고, 상기 모션 시작 후 완료까지의 롤축에 대한 각속도 최대값을 피치축에 대한 각속도 최대값으로 나눈 값인 회전량이 상기 기준 회전량과 기준 범위 이내로 유사하고, 상기 모션 시작 후 완료까지의 요축에 대한 각속도 최대값을 피치축에 대한 각속도 최대값으로 나눈 값인 간섭량이 상기 기준 간섭량과 기준 범위 이내로 유사하면 상기 사용자의 움직임을 상기 모션과 매칭시킬 수 있다.When the second processor determines that the motion is complete under the gesture recognition mode, a value obtained by accumulative sum of linear acceleration values from the start of the motion to the end is similar to the reference acceleration value within a reference range, and , The rotation amount, which is a value obtained by dividing the maximum angular velocity for the roll axis from the start of the motion to the end by the maximum angular velocity for the pitch axis, is similar to the reference rotation amount within a reference range, and the maximum angular velocity for the yaw axis from the start of the motion to the end If the interference amount, which is a value obtained by dividing the value by the maximum angular velocity value with respect to the pitch axis, is similar to the reference interference amount within a reference range, the motion of the user may be matched with the motion.
도13은 일 실시 예에 따라, 좌측 또는 우측 무브 동작의 제스처 프로파일을 생성하는 방법의 흐름도를 나타낸다.13 illustrates a flow diagram of a method for generating a gesture profile of a left or right move action, according to one embodiment.
단계 S200에서 전자 장치는 모션이 준비되었는지 판단할 수 있다. 예를 들어, 피치축에 대한 기울기와 롤축에 대한 기울기가 기준 범위 이내이면 사용자가 모션을 취할 준비가 된 것으로 판단할 수 있다. 그렇지 않으면 대기모드로 돌아간다.In step S200, the electronic device may determine whether motion is ready. For example, if the slope with respect to the pitch axis and the slope with respect to the roll axis are within a reference range, it may be determined that the user is ready to make a motion. Otherwise, it returns to standby mode.
그 다음 단계에서 전자 장치는 모션이 시작되었는지 판단할 수 있다. 예를 들어, 피치축에 대한 각속도가 기준 값 이상이면 모션이 시작되었다고 판단할 수 있다. 그렇지 않으면 대기모드로 돌아간다.In a next step, the electronic device may determine whether motion has started. For example, if the angular velocity with respect to the pitch axis is greater than or equal to the reference value, it may be determined that the motion has started. Otherwise, it returns to standby mode.
단계 S300에서, 전자 장치는 기울기 조건을 판단할 수 있다. 예를 들어, 피치축의 기울기와 롤축의 기울기가 기준 범위를 벗어난다면 대기모드로 돌아간다.In step S300, the electronic device may determine a gradient condition. For example, if the inclination of the pitch axis and the inclination of the roll axis are out of the standard range, it returns to the standby mode.
단계 S400에서, 전자 장치는 모션 완료 시점을 판단할 수 있다. 예를 들어, 모션 시작 후의 각속도 최대값보다 현재 각속도 값이 기준 비율 이하이면 모션이 완료된 것으로 판단할 수 있다.In step S400, the electronic device may determine a motion completion point. For example, it may be determined that the motion is completed when the current angular velocity value is less than or equal to the reference rate than the maximum angular velocity value after the motion starts.
단계 S500에서, 전자장치는 기준 회전량과 기준 간섭량을 계산하여 획득하고 메모리에 저장할 수 있다.In step S500, the electronic device may calculate and obtain a reference rotation amount and a reference interference amount, and store them in a memory.
도14은 일 실시 예에 따라, 사용자의 현재 모션이 좌측 또는 우측 무브 동작의 제스처 프로파일과 부합하는지, 즉 인식하는 방법의 흐름도를 나타낸다.Fig. 14 is a flow diagram of a method for recognizing, ie, whether a current motion of a user matches a gesture profile of a left or right move operation, according to an embodiment.
도14의 방법은 도13과 대부분 동일하나, 마지막 단계에서 기준 회전량과 기준 간섭량을 계산하여 메모리에 저장하는 것이 아니라, 기준 회전량과 기준 간섭량을 계산하여 기 저장된 기준 값과 비교하는 것에 차이가 있다.The method of FIG. 14 is mostly the same as that of FIG. 13, but the difference is that in the last step, the reference rotation amount and reference interference amount are calculated and compared with the previously stored reference values, rather than the reference rotation amount and reference interference amount calculated and stored in memory. there is.
한편, 상술한 컨텐츠 제어 방법은 컴퓨터로 읽을 수 있는 기록 매체에 컴퓨터가 읽을 수 있는 코드로서 구현하는 것이 가능하다. 컴퓨터가 읽을 수 있는 기록 매체는 컴퓨터 시스템에 의하여 읽혀질 수 있는 데이터가 저장되는 모든 종류의 기록장치를 포함한다. 컴퓨터가 읽을 수 있는 기록 매체의 예로는 ROM, RAM, CD-ROM, 자기 테이프, 플로피디스크, 광 데이터 저장장치 등이 있다. 또한, 컴퓨터가 읽을 수 있는 기록 매체는 네트워크로 연결된 컴퓨터 시스템에 분산되어, 분산방식으로 프로세서가 읽을 수 있는 코드가 저장되고 실행될 수 있다.Meanwhile, the above-described content control method can be implemented as computer readable codes on a computer readable recording medium. Computer-readable recording media include all types of recording devices in which data that can be read by a computer system is stored. Examples of computer-readable recording media include ROM, RAM, CD-ROM, magnetic tape, floppy disk, and optical data storage devices. In addition, the computer-readable recording medium is distributed in computer systems connected through a network, so that processor-readable codes can be stored and executed in a distributed manner.
위 설명들은 본 발명을 구현하기 위한 예시적인 구성들 및 동작들을 제공하도록 의도된다. 본 발명의 기술 사상은 위에서 설명된 실시 예들뿐만 아니라, 위 실시 예들을 단순하게 변경하거나 수정하여 얻어질 수 있는 구현들도 포함할 것이다. 또한, 본 발명의 기술 사상은 위에서 설명된 실시 예들을 앞으로 용이하게 변경하거나 수정하여 달성될 수 있는 구현들도 포함할 것이다.The above descriptions are intended to provide exemplary configurations and operations for implementing the present invention. The technical idea of the present invention will include not only the above-described embodiments, but also implementations that can be obtained by simply changing or modifying the above embodiments. In addition, the technical idea of the present invention will also include implementations that can be achieved by easily changing or modifying the embodiments described above in the future.
Claims (2)
가속도 센서;
자이로 센서;
지자기 센서;
메모리;
상기 가속도 센서로부터 수신한 가속도 데이터에 기반하여 좌우 방향의 제1축, 앞뒤 방향의 제2축, 및 위아래 방향의 제3축 각각에 대한 가속도 값들을 획득하고, 상기 자이로 센서로부터 수신한 자이로 데이터에 기반하여 요(Yaw)축, 피치(Pitch)축, 롤(Roll)축 각각에 대한 각속도 값들을 획득하고, 상기 가속도 센서, 상기 자이로 센서, 및 상기 지자기 센서로부터 각각 획득한 가속도 데이터, 자이로 데이터, 및 지자기 데이터에 기반하여 상기 전자 장치의 요(Yaw)축, 피치(Pitch)축, 롤(Roll)축 방향 각각과 수평면 사이의 기울기 값들을 획득하기 위한 제1프로세서;
상기 제1프로세서로부터 수신된 상기 가속도 값, 상기 각속도 값, 및 상기 기울기 값을 실시간으로 획득하고, 상기 피치축에 대한 기울기 값과 롤축에 대한 기울기 값이 기준 이내이면 모션이 준비된 것으로 판단하고, 상기 피치축에 대한 각속도가 기준 값 이상이면 모션이 시작된 것으로 판단하되, 상기 모션의 피치축에 대한 기울기 값이 기준 범위를 벗어나면 예외처리하는 제2프로세서를 포함하고,
제스처 레코딩 모드 하에서, 상기 제2프로세서는 모션이 완료된 것으로 판단되면, 상기 모션이 시작 후 완료까지의 선형 가속도 값을 누적 합산한 기준 가속도 값과 상기 모션 시작 후 완료까지의 롤축에 대한 각속도 최대값을 피치축에 대한 각속도 최대값으로 나눈 값인 기준 회전량과 상기 모션 시작 후 완료까지의 요축에 대한 각속도 최대값을 피치축에 대한 각속도 최대값으로 나눈 값인 기준 간섭량을 획득하여 상기 메모리에 저장하기 위한 제2프로세서를 포함하는 전자 장치.An electronic device paired with a host device to transmit a control signal based on a motion of a user, comprising:
accelerometer;
gyro sensor;
geomagnetic sensor;
Memory;
Based on the acceleration data received from the acceleration sensor, acceleration values for each of the first axis in the left and right direction, the second axis in the forward and backward direction, and the third axis in the up and down direction are obtained, and the gyro data received from the gyro sensor is obtained. Based on this, angular velocity values for each of the yaw axis, pitch axis, and roll axis are obtained, and acceleration data obtained from the acceleration sensor, the gyro sensor, and the geomagnetic sensor, respectively, gyro data, and a first processor for obtaining inclination values between a horizontal plane and each of a yaw axis, a pitch axis, and a roll axis direction of the electronic device based on geomagnetic data;
The acceleration value, the angular velocity value, and the inclination value received from the first processor are acquired in real time, and if the inclination value with respect to the pitch axis and the inclination value with respect to the roll axis are within a standard, it is determined that the motion is ready; A second processor that determines that the motion has started when the angular velocity with respect to the pitch axis is greater than or equal to a reference value, and handles an exception if the gradient value with respect to the pitch axis of the motion is out of the reference range,
Under the gesture recording mode, when it is determined that the motion is complete, the second processor calculates a reference acceleration value obtained by cumulatively summing linear acceleration values from the start of the motion to the end of the motion and the maximum angular velocity value for the roll axis from the start to the end of the motion. A reference rotation amount obtained by dividing the maximum angular velocity with respect to the pitch axis and a reference interference amount obtained by dividing the maximum angular velocity with respect to the yaw axis from the start of the motion to the end by the maximum angular velocity with respect to the pitch axis, and storing them in the memory. An electronic device containing two processors.
상기 제2프로세서는, 제스처 인식 모드 하에서, 상기 제2프로세서는 모션이 완료된 것으로 판단되면, 상기 모션이 시작 후 완료까지의 선형 가속도 값을 누적 합산한 값이 상기 기준 가속도 값과 기준 범위 이내로 유사하고, 상기 모션 시작 후 완료까지의 롤축에 대한 각속도 최대값을 피치축에 대한 각속도 최대값으로 나눈 값인 회전량이 상기 기준 회전량과 기준 범위 이내로 유사하고, 상기 모션 시작 후 완료까지의 요축에 대한 각속도 최대값을 피치축에 대한 각속도 최대값으로 나눈 값인 간섭량이 상기 기준 간섭량과 기준 범위 이내로 유사하면 상기 사용자의 움직임을 상기 모션과 매칭시키는 전자 장치.According to claim 1,
When the second processor determines that the motion is complete under the gesture recognition mode, a value obtained by accumulative sum of linear acceleration values from the start of the motion to the end is similar to the reference acceleration value within a reference range, and , The rotation amount, which is a value obtained by dividing the maximum angular velocity for the roll axis from the start of the motion to the end by the maximum angular velocity for the pitch axis, is similar to the reference rotation amount within a reference range, and the maximum angular velocity for the yaw axis from the start of the motion to the end The electronic device matching the motion of the user with the motion when the interference amount, which is a value obtained by dividing the value by the maximum angular velocity value on the pitch axis, is similar to the reference interference amount within a reference range.
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
KR1020210112721A KR20230030472A (en) | 2021-08-25 | 2021-08-25 | Method for creating user defined gesture profile based on user's repetitive motion and recognizing gesture |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
KR1020210112721A KR20230030472A (en) | 2021-08-25 | 2021-08-25 | Method for creating user defined gesture profile based on user's repetitive motion and recognizing gesture |
Publications (1)
Publication Number | Publication Date |
---|---|
KR20230030472A true KR20230030472A (en) | 2023-03-06 |
Family
ID=85509573
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
KR1020210112721A KR20230030472A (en) | 2021-08-25 | 2021-08-25 | Method for creating user defined gesture profile based on user's repetitive motion and recognizing gesture |
Country Status (1)
Country | Link |
---|---|
KR (1) | KR20230030472A (en) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20230176243A1 (en) * | 2021-12-07 | 2023-06-08 | Microsoft Technology Licensing, Llc | Rf antenna scanning for human movement classification |
-
2021
- 2021-08-25 KR KR1020210112721A patent/KR20230030472A/en not_active Application Discontinuation
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20230176243A1 (en) * | 2021-12-07 | 2023-06-08 | Microsoft Technology Licensing, Llc | Rf antenna scanning for human movement classification |
US11914093B2 (en) * | 2021-12-07 | 2024-02-27 | Microsoft Technology Licensing, Llc | RF antenna scanning for human movement classification |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US11797112B1 (en) | Electronic device for controlling host device by using motion signal and mouse signal | |
US11983326B2 (en) | Hand gesture input for wearable system | |
US10565725B2 (en) | Method and device for displaying virtual object | |
US11188143B2 (en) | Three-dimensional object tracking to augment display area | |
KR101546654B1 (en) | Method and apparatus for providing augmented reality service in wearable computing environment | |
US10915993B2 (en) | Display apparatus and image processing method thereof | |
TWI677814B (en) | Wearable watch and display method thereof | |
CN103975292A (en) | Magnetic stylus | |
CN109074149A (en) | For enhance or the wear-type referential of reality environment in image tracing | |
CN106471450A (en) | Messaging device, information processing method and program | |
JP6197702B2 (en) | Input method, program, and input device | |
KR20230030472A (en) | Method for creating user defined gesture profile based on user's repetitive motion and recognizing gesture | |
CN113498502A (en) | Gesture detection using external sensors | |
US20240019938A1 (en) | Systems for detecting gestures performed within activation-threshold distances of artificial-reality objects to cause operations at physical electronic devices, and methods of use thereof | |
US20240028129A1 (en) | Systems for detecting in-air and surface gestures available for use in an artificial-reality environment using sensors at a wrist-wearable device, and methods of use thereof | |
EP3791253B1 (en) | Electronic device and method for providing virtual input tool | |
KR102397236B1 (en) | Method for creating user defined gesture profile based on user's repetitive motions and recognizing gesture | |
JP5652647B2 (en) | Small electronic device, processing method and program | |
KR20220131658A (en) | Wearable device that determines motion signal for controlling host device based on machine learning | |
US20220253198A1 (en) | Image processing device, image processing method, and recording medium | |
US10809797B1 (en) | Calibration of multiple sensor modules related to an orientation of a user of the sensor modules | |
US10936147B2 (en) | Tablet computing device with display dock | |
KR101759829B1 (en) | Interfacing method, wearable device and user terminal using sensor | |
US20240126369A1 (en) | Information processing system and information processing method | |
CN108646931B (en) | Terminal control method and terminal |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
E902 | Notification of reason for refusal | ||
E601 | Decision to refuse application |