WO2023038195A1 - 사용자의 반복 동작에 기반한 사용자 정의 제스처 프로파일 생성 및 제스처 인식을 위한 방법 및 장치 - Google Patents

사용자의 반복 동작에 기반한 사용자 정의 제스처 프로파일 생성 및 제스처 인식을 위한 방법 및 장치 Download PDF

Info

Publication number
WO2023038195A1
WO2023038195A1 PCT/KR2021/016095 KR2021016095W WO2023038195A1 WO 2023038195 A1 WO2023038195 A1 WO 2023038195A1 KR 2021016095 W KR2021016095 W KR 2021016095W WO 2023038195 A1 WO2023038195 A1 WO 2023038195A1
Authority
WO
WIPO (PCT)
Prior art keywords
motion
axis
angular velocity
user
value
Prior art date
Application number
PCT/KR2021/016095
Other languages
English (en)
French (fr)
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 CN202180102224.1A priority Critical patent/CN118043761A/zh
Publication of WO2023038195A1 publication Critical patent/WO2023038195A1/ko

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/01Input arrangements or combined input and output arrangements for interaction between user and computer
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/01Input arrangements or combined input and output arrangements for interaction between user and computer
    • G06F3/03Arrangements for converting the position or the displacement of a member into a coded form
    • G06F3/033Pointing devices displaced or positioned by the user, e.g. mice, trackballs, pens or joysticks; Accessories therefor
    • G06F3/0346Pointing devices displaced or positioned by the user, e.g. mice, trackballs, pens or joysticks; Accessories therefor with detection of the device orientation or free movement in a 3D space, e.g. 3D mice, 6-DOF [six degrees of freedom] pointers using gyroscopes, accelerometers or tilt-sensors
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/01Input arrangements or combined input and output arrangements for interaction between user and computer
    • G06F3/03Arrangements for converting the position or the displacement of a member into a coded form
    • G06F3/033Pointing devices displaced or positioned by the user, e.g. mice, trackballs, pens or joysticks; Accessories therefor
    • G06F3/038Control and interface arrangements therefor, e.g. drivers or device-embedded control circuitry

Definitions

  • the present invention relates to a gesture recognition method performed in an electronic device.
  • 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.
  • 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.
  • 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.
  • 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.
  • recognition errors are frequent and the algorithm needs to be very sophisticated.
  • a method for generating a user-specified gesture profile based on motion data acquired by a user's motion in a 3D space and recognizing the current user's motion as a specific gesture based on the generated gesture profile may be provided. .
  • a method for generating a user-specified gesture profile based on motion data acquired by a user's motion in a 3D space and recognizing the current user's motion as a specific gesture based on the generated gesture profile may be provided. .
  • 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.
  • the user characteristic value for a specific reference motion is stored and gesture recognition is performed based on this, so the accuracy of gesture recognition is improved and smartphone, TV, computer, tablet PC, hologram, HMD (Head Mount You can easily and precisely control various contents on the Display).
  • FIG. 1A illustrates an electronic device (closed state) for controlling a host device, according to an exemplary embodiment.
  • FIG. 1B illustrates an electronic device (open state) for controlling a host device, according to an exemplary embodiment.
  • FIG. 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.
  • FIG. 3 shows a system including an electronic device, according to one embodiment.
  • FIG. 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.
  • FIG. 5 illustrates a decision model for determining motion information corresponding to motion information of a user, according to an exemplary embodiment.
  • FIG. 6 illustrates a joystick utilizing an electronic device, according to an embodiment.
  • FIG. 7 illustrates reference motions for controlling a host device with an electronic device under a gesture mode, according to an embodiment.
  • FIG. 8 is a flowchart of a method of controlling content using an electronic device, according to an embodiment.
  • FIG. 9 shows a flow diagram of a method for obtaining distance data, according to one embodiment.
  • FIG. 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.
  • FIG. 12 is a flowchart of a method for outputting a control signal based on a user's motion, according to an embodiment.
  • FIG. 13 illustrates a state in which a user takes a specific reference motion (left move motion) according to a guide screen according to an embodiment.
  • FIG. 14 illustrates a flow diagram of a method performed in a gesture recording mode or gesture recognition mode for left, right, up, or down move (L/R/U/D) motion, according to one embodiment.
  • Figure 15 shows a flow diagram of a method performed in gesture recording mode or gesture recognition mode for a left move motion, according to one embodiment.
  • Figure 16 shows a flow diagram of a method performed in a gesture recording mode or gesture recognition mode for a right move motion, according to one embodiment.
  • FIG. 17 illustrates a flow diagram of a method performed in a gesture recording mode or gesture recognition mode for upward move motion, according to one embodiment.
  • FIG. 18 illustrates a flow diagram of a method performed in a gesture recording mode or gesture recognition mode for a downward move motion, according to one embodiment.
  • a method for outputting a control signal based on a user's left move motion in an electronic device includes a left and right X axis, an up and down Y axis, and a forward and backward Z axis based on acceleration data received from an acceleration sensor of the electronic device.
  • the fourth step ends gesture profile generation and returns to the standby state. Step, the above from the start of the recording motion to the end A fifth step of determining that the recorded motion is not valid when the accumulated value of the linear acceleration along the X axis is less than a third reference value, terminating the gesture profile generation and returning to a standby mode; and completing the recording motion after the start of the recording motion.
  • the reference rotation amount which is the value obtained by dividing the maximum angular velocity for the roll axis up to the point in time by the maximum angular velocity for the yaw axis, and the maximum angular velocity for the pitch axis from the start of the recording motion to the completion point divided by the maximum angular velocity for the yaw axis. and a sixth step of storing the standard interference amount, which is a value, in a memory as the user's characteristic values, wherein the recording motion is completed when the current yaw-axis angular velocity value is equal to or less than a reference ratio of the maximum yaw-axis angular velocity value after the recording motion starts.
  • the standard interference amount which is a value, in a memory as the user's characteristic values
  • the user's gesture profile is generated by the user taking the recorded motion several times, and each number of times is counted only when all of the motions from the first step to the sixth step are completed, and the reference rotation amount is several times.
  • the reference amount of interference may be determined based on reference amounts of rotation each obtained over several times.
  • Determining whether the motion recognized by the user matches the reference motion may include determining whether the electronic device has a gradient with respect to a pitch axis within the first reference range and a gradient with respect to a roll axis within the range of the second reference.
  • a seventh step of determining that the recognition motion is ready an eighth step of determining that the recognition motion has started if the angular velocity with respect to the yaw axis is equal to or greater than the first reference value, if the recognition motion is started, of the recording motion
  • Step 11 of determining that the motion is not valid, terminating recognition and returning to the standby mode, and present rotation, which is a value obtained by dividing the maximum angular velocity for the roll axis from the start of the recognition motion to the completion point by the maximum angular velocity for the yaw axis.
  • the total amount and the current interference amount which is a value obtained by dividing the maximum angular velocity value on the pitch axis from the start of the recognition motion to the completion time by the maximum angular velocity value on the yaw axis, with the reference rotation amount and the reference interference amount pre-stored in the memory, respectively
  • whether the recognized motion matches the reference motion is determined based on the comparison result, and at the completion point of the recognized motion, the current yaw-axis angular velocity value is the maximum yaw-axis angular velocity value after the start of the recognized motion. It may be determined as a point in time when the value is less than or equal to the reference ratio.
  • a method for outputting a control signal based on a user's right move motion in an electronic device includes a left and right X axis, an up and down Y axis, and a forward and backward Z axis based on acceleration data received from an acceleration sensor of the electronic device.
  • acceleration values for each axis Obtaining acceleration values for each axis, obtaining angular velocity values for each of a yaw axis, a pitch axis, and a roll axis based on gyro data received from a gyro sensor of the electronic device A yaw axis, a pitch axis, and a roll of the electronic device based on acceleration data, gyro data, and geomagnetic data obtained from the acceleration sensor, the gyro sensor, and the geomagnetic sensor of the electronic device, respectively.
  • the motion completion time point may be determined as a time point when the current angular velocity value on the pitch axis becomes less than or equal to a reference ratio of the maximum angular velocity value on the pitch axis after the start of the recording motion.
  • the user's gesture profile is generated by the user taking the recorded motion several times, and each number of times is counted only when all of the motions from the first step to the sixth step are completed, and the reference rotation amount is several times.
  • a control signal based on the user's motion which is determined based on the reference amount of rotation each obtained over several times, and the reference amount of interference determined based on the amount of reference interference obtained over several times, can be output.
  • the slope of the recognition motion with respect to the roll axis falls within the second reference range.
  • a method for outputting a control signal based on a user's upward move motion in an electronic device includes a left and right X axis, an up and down Y axis, and a forward and backward Z axis based on acceleration data received from an acceleration sensor of the electronic device.
  • the completion time of may be determined as a time when the current angular velocity value for the yaw axis becomes less than or equal to a reference ratio of the maximum angular velocity value for the yaw axis after the recording motion starts.
  • the user's gesture profile is generated by the user taking the recorded motion several times, and each number of times is counted only when all of the motions from the first step to the sixth step are completed, and the reference rotation amount is several times.
  • the reference amount of interference may be determined based on reference amounts of rotation each obtained over several times.
  • the step of determining whether the user's recognized motion matches the reference motion may include a seventh step of determining that the recognized motion is ready when the inclination of the electronic device to the roll axis is within the first reference range, and the recognized motion is ready. an eighth step of determining that the recognition motion has started if the angular velocity with respect to the yaw axis is equal to or greater than the first reference value, and if the inclination of the recording motion with respect to the roll axis deviates from the second reference range when the recognition motion is started A ninth step of terminating recognition and returning to a standby state; a 10th step of ending recognition and returning to a standby state if the angular velocity of the yaw axis at the completion of the recognition motion is less than the second reference value; a 10th step of ending recognition and returning to a standby state; An 11th step of determining that the recognition motion is invalid, terminating recognition and returning to a standby mode when the accumulated value of the linear acceleration on the X axi
  • the current rotation amount which is the value obtained by dividing the maximum angular velocity for the roll axis up to the completion time by the maximum angular velocity for the yaw axis, and the maximum angular velocity for the pitch axis after the start of the recognition motion until the completion time is the maximum angular velocity for the yaw axis.
  • the completion time of the recognition motion may be determined as a time point when the current angular velocity value of the yaw axis becomes equal to or less than a reference ratio of the maximum angular velocity value of the yaw axis after the start of the recognition motion.
  • a method for outputting a control signal based on a downward move motion of a user in an electronic device wherein a horizontal X axis, an up and down Y axis, and a forward and backward direction are measured based on acceleration data received from an acceleration sensor of the electronic device. Acquiring acceleration values for each of the Z axes, calculating angular velocity values for each of the yaw axis, the pitch axis, and the roll axis based on the gyro data received from the gyro sensor of the electronic device.
  • the reference rotation amount which is the value obtained by dividing the maximum angular velocity for the roll axis from the start to the completion point by the maximum angular velocity value for the yaw axis, and the maximum angular velocity value for the pitch axis from the start of the recording motion to the completion point are the angular velocity for the yaw axis.
  • the user's gesture profile is generated by the user taking the recorded motion several times, and each number of times is counted only when all of the motions from the first step to the sixth step are completed, and the reference rotation amount is several times.
  • the reference amount of interference may be determined based on reference amounts of rotation each obtained over several times.
  • the step of determining whether the user's recognized motion matches the reference motion may include a seventh step of determining that the recognized motion is ready when the inclination of the electronic device to the roll axis is within the first reference range, and the recognized motion is ready. If the angular velocity with respect to the yaw axis is equal to or greater than the first reference value, an eighth step of determining that the recognition motion has started.
  • the inclination of the recording motion with respect to the roll axis is out of the second reference range, or , If the absolute value of the slope to the pitch axis is greater than or equal to the second reference value and the slope to the roll axis is less than or equal to the third reference value, the ninth step of ending recognition and returning to a standby state, the angular velocity of the yaw axis at the completion of the recognition motion If is less than the fourth reference value, a tenth step of ending the recognition and returning to a standby state.
  • Step 11 of determining that the motion is not valid, terminating recognition and returning to the standby mode, and present rotation which is a value obtained by dividing the maximum angular velocity for the roll axis from the start of the recognition motion to the completion point by the maximum angular velocity for the yaw axis.
  • the total amount and the current interference amount which is a value obtained by dividing the maximum angular velocity value on the pitch axis from the start of the recognition motion to the completion time by the maximum angular velocity value on the yaw axis, with the reference rotation amount and the reference interference amount pre-stored in the memory, respectively
  • whether the recognized motion matches the reference motion is determined based on the comparison result, and at the completion point of the recognized motion, the current yaw-axis angular velocity value is the maximum yaw-axis angular velocity value after the start of the recognized motion. It may be determined as a point in time when the value is less than or equal to the reference ratio.
  • An electronic device for outputting a control signal based on a user's motion includes an acceleration sensor, a gyro sensor, a geomagnetic sensor, and an X axis in a left and right direction, a Y axis in an up and down direction, and a forward and backward direction based on acceleration data received from the acceleration sensor.
  • Acquire acceleration values for each of the Z axes of the electronic device and calculate angular velocity values for each of the yaw axis, pitch axis, and roll axis based on the gyro data received from the gyro sensor of the electronic device.
  • a yaw axis for obtaining inclination values for each axis, acceleration values for each of the X axis in the left and right directions, the Y axis in the up and down directions, and the Z axis in the forward and backward directions at periodic intervals from the first processor, the yaw ( Obtaining angular velocity values for each of the Yaw axis, the Pitch axis, and the Roll axis, and the inclination value for each of the Yaw axis, the Pitch axis, and the Roll axis A second processor, and a memory for storing a reference amount of rotation and a reference amount of interference for the user's recording motion as characteristic values of the user.
  • the current operation mode is a gesture recording mode
  • a reference rotation amount and a reference interference amount are obtained from motion data obtained from the recording motion taken by the user and stored in the memory
  • the current operation mode is a gesture recognition mode
  • the user The amount of rotation and the amount of interference obtained from the recognized motion taken are compared with the reference amount of rotation and the amount of interference, respectively, the recording motion includes a left, right, up, or down move motion
  • the user's characteristic values are the user's The first reference rotation amount and the first reference interference amount for the left move motion, the second reference rotation amount and the second reference interference amount for the user's right move motion, and the third reference rotation amount and the third reference amount for the user's upward move motion 3 reference amount of interference, a fourth reference amount of rotation for the downward move motion of the user and a fourth reference amount of interference
  • the reference rotation amount is the start of the recording motion is the value obtained by dividing the maximum value of the angular velocity on the roll
  • the reference rotation amount is a value obtained by dividing the maximum angular velocity value for the roll axis from the start of the recording motion to the end point by the maximum angular velocity value for the pitch axis
  • the reference amount of interference is a value obtained by dividing the maximum angular velocity value along the yaw axis from the start of the recording motion to the completion point by the maximum angular velocity value along the pitch axis.
  • 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).
  • FPGA Field Programmable Gate Array
  • ASIC Application Specific Integrated Circuit
  • first and second may be used to describe various components (steps, values, hardware modules, etc.), but the components should not be limited by the terms. Terms are only used to distinguish one component from another.
  • “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 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.
  • 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.
  • 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 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.
  • the user may control the host device by holding the electronic device 1000 in his hand or by touching or moving his hand while holding the electronic device 1000 in his hand.
  • the host device may include various types of electronic devices.
  • the host device may be a game machine, a smart phone, a tablet PC (Personal Computer), a TV, a desktop PC, a notebook PC, a mobile medical device, a camera, or a wearable device (eg, electronic glasses, electronic clothes, electronic bracelets) , electronic necklace, electronic accessory, electronic tattoo, or smart watch), but is not limited thereto.
  • the host device may include a Head Mounted Display (HMD) for displaying virtual content and a game device (eg, a console device) for executing or playing a virtual reality game or virtual reality content.
  • the host device may include a computer for displaying presentation material.
  • the electronic device 1000 may include a ring-shaped device 1200 wearable on a user's finger and a cradle device 1400 for accommodating the ring-shaped device 1200 .
  • a user may place the ring-shaped device 1200 in the cradle device 1400 and close the lid.
  • a touch sensing module may be located on the front portion of the ring-shaped device 1200 .
  • the user can take out the ring-shaped device 1200 by opening the lid of the cradle device 1400 .
  • a user may control the host device by a touch operation or motion while wearing the ring-shaped device 1200 on a finger.
  • the cradle device 1400 may be manufactured in a shape that is easy for a person to hold, and the center of gravity of the cradle device 1400 may be designed to be low by placing a center of gravity weight below the cradle device 1400 .
  • the cradle device 1400 may include a charging terminal for charging the ring-shaped device 1200 and a power supply.
  • the ring-shaped device 1200 may include a motion sensor for obtaining user motion information and a touch sensor for obtaining user touch information.
  • the ring-shaped device 1200 may generate a control signal based on the acquired motion information and touch information and output the generated control signal to the host device.
  • the host device may control content based on a control signal received from the ring-type device 1200 .
  • Figure 2a shows a ring-shaped device, according to an embodiment
  • Figure 2b shows a user controlling content while wearing a ring-shaped device, according to an embodiment.
  • the ring-shaped device 1200 may be a small wearable device that can be attached to, connected to, or worn with a human body or an object.
  • the ring-shaped device 1200 is comfortable to wear, and the user can intuitively operate the functions of the ring-shaped device 1200 without additional learning.
  • the ring-shaped device 1200 can be used as a general-purpose device like a general-purpose mouse by using motion information and touch information.
  • the ring-shaped device 1200 may include a connection unit 1220 to be worn on a user's finger 2300 and a main module 1240 to obtain motion information and touch information using a sensor.
  • the connection unit 1220 may be made of a material such as silicon or metal.
  • the main module 1240 may obtain user touch information and motion information and output a control signal corresponding to the obtained information.
  • the main module 1240 may include components of the electronic device 3000 to be described later and a case containing the components. According to an embodiment, the main module 1240 may be separated from the connection unit 1220, and the user inserts, attaches, or embeds only the main module 1240 into various types of objects (sticks, dice, pens, etc.) Various types of objects can be used to control the host device.
  • the main module 1240 acquires touch information and motion information (eg, angular velocity, acceleration, speed, distance, angle, direction, and location (3D space coordinates) information for the movement of the main module 1240) and obtains them. By processing and processing, a control signal for controlling the content 2500 may be output.
  • touch information and motion information eg, angular velocity, acceleration, speed, distance, angle, direction, and location (3D space coordinates) information for the movement of the main module 1240.
  • the ring-type device 1200 is shown to be worn on the user's finger 2300 in FIG. 2B, the ring-type device 1200 may be connected to or attached to other types of objects.
  • the main module 1240 may be embedded in a dice and the content 2500 may be controlled based on the movement of the dice.
  • the main module 1240 may be attached to the wand and the content 2500 may be controlled based on the movement of the wand.
  • the main module 1240 may be built into the pen and the contents 2500 on the smart phone may be controlled based on the movement of the pen.
  • an object may mean a body part (eg, a finger) of a person, an object that a person can wear or hold, or an electronic device 3000 itself to be described later.
  • the content 2500 is shown as a hologram object in a 3D space in FIG. 2B, the content 2500 may include any type of content or software (Microsoft's MS Office, games, etc.) played on the host device.
  • Microsoft's MS Office, games, etc. any type of content or software played on the host device.
  • FIG. 3 shows a system including an electronic device, according to one embodiment.
  • the system 100 may include an electronic device 3000 and a host device (or target device).
  • the electronic device 3000 may be connected to the host device through a wireless communication method.
  • the electronic device 3000 may be paired with a host device using a Bluetooth method.
  • the electronic device 3000 includes the cradle device 1400 in which the ring-shaped device 1200 of FIG. 1A is stored, the ring-shaped device 1200 separated from the cradle device 1400, or the main module of the ring-shaped device 1200 of FIG. 2A ( 1240).
  • a user may control various contents of the host device using the electronic device 3000 .
  • a user may control contents of a host device based on a motion of the electronic device 3000 itself or an object connected to the electronic device 3000 and/or a user touch motion input to the electronic device 3000. there is.
  • the user may control various contents of the host device by wearing the electronic device 3000 on his/her finger and moving the electronic device 3000 or by touching the electronic device 3000 with the finger.
  • an electronic device 3000 may include a motion sensing module 3200, a touch sensing module 3300, a communication channel 3400, and a control signal output unit 3600.
  • the electronic device 3000 may operate in a mouse mode or a gesture mode. Under the mouse mode, the electronic device 3000 can operate like a general-purpose mouse, and under the gesture mode, the electronic device 3000 can operate as a motion recognition device.
  • the electronic device 3000 determines a mouse motion based on at least one of a touch motion detected through the touch sensing module 3300 and motion information detected through the motion sensing module 3200, and indicates the mouse motion.
  • Mouse signals can be output.
  • a mouse click is performed by touching one surface of the electronic device 3000 once
  • a mouse double click is performed by touching one surface of the electronic device 3000 twice within a reference time.
  • the mouse move is determined from motion information (eg, second motion information described below) of the electronic device 3000
  • the mouse scroll Scroll Up/Down
  • Scroll up is a movement of writing one side of the electronic device 3000 with a finger from left to right
  • scroll down is a movement of writing one side of the electronic device 3000 with a finger from right to left
  • mouse drag is a touch time ( For example, long touch) and motion information of the electronic device 3000.
  • the touch time is less than 200 ms, it may be determined as a short touch, and if the touch time is greater than 500 ms, it may be determined as a long touch.
  • One side of the electronic device 3000 on which a touch is performed may be the touch sensing module 3300, which may be the front portion described with reference to FIG. 2A.
  • the electronic device 3000 may obtain motion information of the electronic device 3000 using a sensor and determine a motion corresponding to the motion of the electronic device 3000 based on the acquired motion information.
  • the electronic device 3000 may output a motion signal representing the determined motion to the host device.
  • the motion information may include characteristics (eg, at least one of angular velocity, acceleration, velocity, distance, angle, direction, and position) of the object's movement.
  • the touch sensing module 3300 may detect a user's touch. For example, when the user touches the front portion of the ring-type device 1200 with a thumb while the user wears the ring-type device 1200 on the index finger, the touch sensing module 3300 may detect the touch operation. there is. A touch operation detected by the touch sensing module 3300 may be transferred to the control signal output unit 3600 through the communication channel 3400 .
  • a touch motion detected by the touch sensing module 3300 may be used to determine a mouse motion under the above-described mouse mode.
  • the touch operation detected by the touch sensing module 3300 may be used to determine a motion corresponding to the motion of an object under the gesture mode.
  • a touch operation detected by the touch sensing module 3300 may be used to switch between a mouse mode and a gesture mode.
  • 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 touch sensing module 3300, the gesture mode may be switched to the mouse mode or the mouse mode to the gesture mode. Alternatively, when the central portion of the front portion of the ring-shaped device 1200 is touched through the touch sensing module 3300 for a reference period of time or longer, the gesture mode may be switched to the mouse mode or the mouse mode to the gesture mode.
  • the motion sensing module 3200 may obtain first motion information of the electronic device 3000 .
  • the first motion information can be used in both mouse mode and gesture mode.
  • the first motion information may include at least one of acceleration data obtained through an acceleration sensor and angular velocity data obtained through a gyro sensor.
  • the motion sensing module 3200 may include an accelerometer 3220, a gyroscope 3240, a magnetometer 3260, and a sensor fusion unit 3280.
  • the gyro sensor 3240 according to an embodiment is a sensor for measuring an angular velocity.
  • the acceleration sensor 3220 according to an embodiment is a sensor for measuring acceleration and dynamic forces such as vibration and shock.
  • the geomagnetic sensor 3260 according to an embodiment is a sensor for measuring Earth's magnetism and detecting its magnitude.
  • the tilt angle calculated by the acceleration sensor 3220 indicates a correct value, but the gyro sensor 3240 may indicate an incorrect value due to cumulative drift over time. Conversely, in terms of a short moving time, the gyro sensor 3240 indicates the correct angular velocity, but the acceleration sensor 3220 may derive a calculated value different from the inclination angle. In addition, inclination measurement is impossible when the subject moves in a straight direction from a stationary state.
  • 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 acceleration sensor 3220 and the gyro sensor 3240 .
  • the error rate increases when calculating coordinates in a 3D space. Inappropriate for use as an interface.
  • it is difficult to determine the absolute position of a moving subject because a relative azimuth angle is used instead of an absolute azimuth angle.
  • the motion sensing module 3200 further includes a geomagnetic sensor 3260, so that the change in absolute azimuth measured by the geomagnetic sensor 3260 is recorded together with the data measured by the acceleration sensor 3220 and the gyro sensor 3240. By calculating, data with a low error rate can be generated.
  • the motion sensing module 3200 includes the geomagnetic sensor 3260, so that the cumulative drift generated by the gyro sensor 3240 can be more perfectly compensated. It can play a role in supplementing and compensating for each other's shortcomings by resolving the momentary magnetic field bouncing phenomenon (suddenly large change in magnetic field) caused by
  • the motion sensing module 3200 may include a 9-axis sensor capable of accurately acquiring location data in a 3D space.
  • the 9-axis sensor is a sensor composed of 3 axes of acceleration, 2 axes of gyro, 3 axes of geomagnetism, and 1 axis of temperature.
  • the motion sensing module 3200 is a sensor fusion unit for performing a sensor fusion operation in which outputs of sensors 3220, 3240, and 3260 are compensated and fused to generate optimized position data. (3280).
  • the sensor fusion unit 3280 removes noise, compensates for, and fuses the data obtained from the acceleration sensor 3220, the gyro sensor 3240, and the geomagnetic sensor 3260, and optimizes the first motion information. can create If the row data obtained by the sensors 3220, 3240, and 3260 are used as they are, accurate position data cannot be obtained, so position estimation through a filter optimizes position data.
  • the sensor fusion operation may be performed based on a filter such as a Kalman filter or a data compensation and fusion algorithm.
  • the first motion information obtained through the motion sensing module 3200 may be transferred to the control signal output unit 3600 through the communication channel 3400 .
  • the communication channel 3400 may be an internal bus within the electronic device 3000 for transferring first motion information to the processor 3620 .
  • the motion sensing module 3200 and the control signal output unit 3600 may exchange data with each other based on the bus format of the communication channel 3400 .
  • the bus format may include one or more of various interface protocols such as Universal Serial Bus (USB), Serial Peripheral Interface (SPI), and Inter-Integrated Circuit (I2C).
  • the control signal output unit 3600 may output a control signal for controlling the host device.
  • the control signal may include a motion signal and a mouse signal.
  • the control signal output unit 3600 may obtain second motion information through calculation of the first motion information.
  • the control signal output unit 3600 may determine a motion corresponding to the motion of the electronic device 3000 based on the second motion information under the gesture mode and output a motion signal representing the determined motion.
  • the control signal output unit 3600 may determine a mouse operation based on at least one of touch information and second motion information obtained from the touch sensing module 3300 and output a mouse signal indicating the mouse operation under the mouse mode.
  • the control signal may be an interrupt signal for controlling contents of the host device.
  • the control signal may include a bit string representing a specific mouse signal or a specific motion signal.
  • the control signal output unit 3600 may generate second motion information by calculating first motion information received through the communication channel 3400 .
  • the second motion information may include at least one of angle data, distance data, speed data, and direction data of the electronic device 3000 .
  • the second motion information of the electronic device 3000 can be utilized in both the mouse mode and the gesture mode. For example, under the mouse mode, the second motion information may be used to determine a mouse move operation of the electronic device 3000 . Under the gesture mode, the second motion information may be used to determine various motion signals output from the electronic device 3000 .
  • control signal output unit 3600 may include a processor 3620 and a communication unit 3640.
  • the processor 3620 may generate second motion information by calculating first motion information received from the motion sensing module 3200 through the communication channel 3400 .
  • the second motion information may include at least one of angle data, distance data, speed data, and direction data for motion.
  • the processor 3620 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.
  • the angle data may include angle data for each of the x-axis direction, the y-axis direction, and the z-axis direction.
  • the processor 3620 may obtain angular data by performing an integration operation on angular velocity data.
  • 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.
  • the processor 3620 may obtain speed data and distance data by performing an integration operation on acceleration data.
  • the processor 3620 may obtain linear acceleration data by removing the gravitational acceleration component from the acceleration data.
  • the processor 3620 may obtain velocity data by performing an integration operation on linear acceleration data, and obtain distance data by performing an integration operation on the velocity data again.
  • 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.
  • the processor 3620 may include direction data based on comparison between current distance data and previous distance data. 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 processor 3620 may determine the current movement direction as an increase in the x-axis direction, an increase in the y-axis direction, and a decrease in the z-axis direction.
  • the processor 3620 may determine a corresponding mouse motion based on touch information and second motion information obtained from the touch sensing module 3300 .
  • 4A illustrates mouse operations performed by the electronic device 3000 under a mouse mode, according to an embodiment.
  • the mouse operation may include mouse click, zoom in/out (or scroll up/down), mouse movement, and mouse drag.
  • a mouse click may include a single click, a double click, and a long click.
  • Mouse Move can move the mouse pointer of the host device.
  • the surface of the touch sensing module 3300 of the electronic device 3000 (the front of the main module 1240 in FIG. 2A) has a touch area R1 located on the left and a touch area R1 located in the center. It can be divided into a touch area R2 and a right touch area R3.
  • the corresponding operation may be determined as a left click.
  • the corresponding operation may be determined as a right click.
  • the corresponding operation may be determined as a mode change between mouse mode and gesture mode. there is.
  • the corresponding operation may be determined as scrolling up.
  • the corresponding operation may be determined as scrolling down.
  • the processor 3620 distinguishes between when the user is using the keyboard and when the user is using the mouse, and when it is determined that the user is using the keyboard, the processor 3620 may not output a mouse signal.
  • the processor 3620 may determine a motion corresponding to the motion of the electronic device 3000 based on the second motion information. For example, the processor 3620 may determine one motion corresponding to the motion of the electronic device 3000 from among predefined motions based on the second motion information. The processor 3620 may generate a motion signal representing the determined motion and transmit it to the host device through the communication unit 3640. If the distance between the electronic device 3000 and the host device is greater than the reference distance, the processor 3620 determines that the motion of the electronic device 3000 does not correspond to any of the predefined motions or is meaningless. In this case, an exception can be made.
  • Predefined motions may include move, tap, grab, scroll, swipe, gesture, rotation, and the like.
  • the move motion is an operation of moving the electronic device 3000 in an arbitrary direction, and may be used for an operation of moving virtual content or turning a page.
  • the move motion may include movement in three axis directions (x, y, and z axes).
  • a tap motion is a motion of tapping something, and may be used to select or click virtual content. The user may double-click the virtual content by making a tap motion twice consecutively within a reference time.
  • a tap motion is a motion separate from a click motion under a mouse mode.
  • a grab motion is a motion in which two distant objects come into contact with each other, and may be used to grab virtual content.
  • a gesture may mean a movement for expressing text, a symbol, or a shape (eg, '?' or 'X').
  • 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 electronic device 3000, and the user can add a specific motion input by the user as a user-defined motion.
  • the user may repeatedly take a specific motion while holding or wearing the electronic device 3000 and match it with a specific function or motion.
  • motion information repeatedly taken by a user and functions or motions corresponding to the motion information may be stored in correspondence with each other.
  • a user who wears the electronic device 3000 on his or her finger may make 10 stabbing motions, designate them as stabbing motions, and save the motion.
  • the processor 3620 may transmit a motion signal representing the stabbing motion to the host device through the communication unit 3640 .
  • Motion information of the electronic device 3000 may be matched with a specific motion based on machine learning. That is, when specific motion information is input to a decision model learned through machine learning, the decision model may output a motion signal corresponding to the input specific motion information.
  • the electronic device 3000 may use an independent decision model for each user. This is because generated motion information is different for each user even if the users perform the same motion. For example, assuming that an operation of drawing a circle by turning an arm corresponds to a specific motion signal output from the electronic device 3000 or a specific function of the host device, all motion information generated while performing the above operation for each user This is because it is not the same and may have a unique pattern for each user.
  • 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 electronic device 3000 is the first user, the control signal output unit 3600 or the processor 3620 converts the acquired motion information of the first user (eg, the above-described second motion information) to the first user. Input to the first decision model DEC#1 and a corresponding motion signal may be determined.
  • the control signal output unit 3600 or the processor 3620 converts the obtained third user's motion information (eg, the aforementioned second motion information) to the third user.
  • Input to the third decision model (DEC#3) and corresponding motion can be determined.
  • a decision model for determining the motion signal may be generated based on machine learning.
  • 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.
  • 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
  • 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.
  • SVM Support Vector Machine
  • SVM Support Vector Machine
  • Naive Bayes Naive Bayes
  • AdaBoost Adaptive Boosting
  • Random Forest Random Forest
  • K-means clustering artificial neural network, and the like.
  • the machine learning-based decision model used to determine the motion signal may be stored in a memory (not shown) in the electronic device 3000 or stored in the host device. Also, learning to generate a decision model may be performed in the electronic device 3000 or in the host device. According to an embodiment, learning to generate a decision model may be performed in a host device, and the generated decision model may be stored in a memory (not shown) in the electronic device 3000 . Alternatively, learning of the decision model may be performed in the electronic device 3000 and the decision model may be stored in a memory (not shown) of the electronic device 3000 .
  • Reference motions may refer to types of motions predefined by a manufacturer of the electronic device 3000 .
  • the user can select Left Move motion, Right Move motion, Up Move motion, Down Move motion, Clockwise (Counter Clockwise Circle) motion, Forward/ Taking a forward/back move motion, the electronic device 3000 may output a control signal corresponding to the reference motion.
  • 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 electronic device 3000 .
  • the motion for the electronic device 3000 to control the host device is not limited to the above-described embodiment.
  • motions supported by the electronic device 3000 may further include tap, grab, scroll, and swipe.
  • the processor 3620 may generate a control signal representing a motion signal or a mouse signal. For example, when the user's motion is determined to be a left moving motion, the processor 3620 may generate a first bit string representing a left moving motion as a control signal. When the user's movement is determined to be the clockwise rotation motion, the processor 3620 may generate a second bit string representing the clockwise rotation motion as a control signal. Alternatively, in the case of using a protocol agreed upon between the electronic device 2000 and the host device, a number assigned to each of the motions may be generated as a control signal. When the user's movement is determined as a mouse movement, the processor 3620 may generate a third bit string representing the mouse movement as a control signal.
  • the processor 3620 may include one processor core (Single Core) or may include a plurality of processor cores (Multi-Core).
  • the processor 3620 may include a multi-core such as a dual-core, quad-core, or hexa-core.
  • the processor 3620 may further include an internal or external cache memory.
  • 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).
  • the electronic device 3000 may include a memory (not shown) necessary for an operation performed in the electronic device 3000 .
  • the electronic device 3000 may include a memory (not shown) required to perform a sensor fusion operation in the sensor fusion unit 3280 .
  • the electronic device 3000 may include a memory (not shown) used to store predefined motions and/or user defined motions or required for an operation performed by the processor 3620 .
  • a memory (not shown) may store a decision model generated based on machine learning to determine a motion signal corresponding to a user movement.
  • the memory includes a volatile memory device such as dynamic random access memory (DRAM) and static random access memory (SRAM), a flash memory device, and a solid state drive (Solid State Drive; SSD) and the like.
  • DRAM dynamic random access memory
  • SRAM static random access memory
  • SSD solid state drive
  • the electronic device 3000 may include a battery (not shown) for supplying power necessary for operations performed by the electronic device 3000 .
  • the battery (not shown) may include, but is not limited to, a lithium ion battery or a lithium polymer battery.
  • a battery (not shown) may be included in the control signal output unit 3600, and some of the power output from the battery (not shown) may be bypassed to the motion sensing module 3200.
  • the electronic device 3000 may include a charging terminal for charging a battery (not shown).
  • the electronic device 3000 may include a USB type charging terminal. Current flowing through the charging terminal may be used to charge the battery.
  • a charging terminal may exist in the ring-shaped device 1200 of FIGS. 1A and 1B, and a charging terminal may exist in the cradle device 1400.
  • charging of the main module 1240 may be performed by having a charging terminal in the main module 1240 and receiving the ring-shaped device 1200 in the cradle device 1400 .
  • FIGS. 8 to 9 may be performed in the electronic device 3000 of FIG. 3 . Accordingly, even if omitted below, descriptions of the electronic device 3000 or the host device of FIG. 3 may also be applied to FIGS. 8 to 9 .
  • FIG. 8 is a flowchart of a method of controlling content using an electronic device, according to an embodiment.
  • 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.
  • 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.
  • the electronic device may generate second motion information by calculating the first motion information acquired 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.
  • the reference time may be 30 ms or less, but is not limited thereto.
  • 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.
  • 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.
  • 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.
  • 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.
  • 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.
  • 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.
  • 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.
  • the received control signal is a move motion
  • the host device may move a baseball in a game in
  • 9 is a flowchart of a method for obtaining, by an electronic device, distance data about motion of an object, according to an embodiment.
  • 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.
  • step S440 the electronic device may obtain speed data by performing an integral operation on the linear acceleration data.
  • step S460 the electronic device may obtain distance data by performing an integral operation on the speed data.
  • FIG. 10 shows a block diagram of an electronic device, according to an embodiment.
  • the electronic device MD of FIG. 10 may be the main module 1240 or the electronic device 3000 described above with reference to FIGS. 1A to 9 .
  • the electronic device MD may be a ring-shaped device wearable on a finger.
  • the electronic device (MD) matches the current user's motion with one of left move, right move, up move, down move, circle (clockwise, counterclockwise), forward/back move in FIG. 7 and responds to the matched motion.
  • a control signal can be output.
  • 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.
  • 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.
  • Acceleration sensor (ACC), gyro sensor (GYR), and geomagnetic sensor (MAG) can acquire acceleration data, angular velocity data, and geomagnetic data, respectively, in real time from the movement of the user wearing the electronic device (MD) on their hand.
  • the first processor P1 may obtain various processed motion data values based on raw data received from the acceleration sensor ACC, the gyro sensor GYR, and the geomagnetic sensor MAG.
  • the first processor (P1) is based on the acceleration data received from the acceleration sensor (ACC) three axes (left / right (X axis), front / rear (Forward / Acceleration values for each of Back, Y-axis) and Up/Down (Z-axis) can be obtained in real time.
  • acceleration may refer to linear acceleration obtained by removing a gravitational acceleration component from acceleration data received from the acceleration sensor ACC.
  • the first processor P1 may acquire angular velocity values for each of the three axes (Yaw, Pitch, and Roll) in real time based on the angular velocity data received from the gyro sensor (GYR). there is.
  • the first processor (P1) obtains an inclination value between the electronic device (MD) and the ground based on acceleration data, angular velocity data, and geomagnetic data obtained from the acceleration sensor (ACC), the gyro sensor (GYR), and the geomagnetic sensor (MAG), respectively. in real time for each of the 3 axes (Yaw, Pitch, Roll) can
  • the second processor (P2) periodically or at regular time intervals (eg, at 20ms intervals) 3 acceleration values for each of the three axes (Left / Right, Forward / Back, Up / Down), 3 The angular velocity value for each axis (Yaw/Pitch/Roll) and the inclination value for each of the 3 axes (Yaw/Pitch/Roll) can be obtained.
  • the second processor (P2) has acceleration values for each of the three axes (Left/Right, Forward/Back, Up/Down), angular velocity values for each of the three axes (Yaw/Pitch/Roll), and three axes. Inclination values for each of the (Yaw/Pitch/Roll) axes may be read from the first processor P1 periodically or at regular time intervals (eg, at 20 ms intervals).
  • the second processor (P2) in the first operation mode (called a gesture recording mode), based on the motion data read from the first processor (P1) at regular time intervals, the current motion of the user is one of the reference motions. It is determined whether it matches with, and if it matches with any one, it is possible to create a gesture profile of the current user for the reference motions.
  • the second processor P2 may match a motion currently taken by the user with a specific reference motion in a second operation mode (referred to as a gesture recognition mode).
  • the second processor P2 may perform accurate matching reflecting the user's own motion by comparing user characteristic values obtained from the motion currently taken by the user with a previously recorded gesture profile of the user.
  • Reference motion is the basic motions that are the basis of the control signal provided by the electronic device (MD), and the reference motions are left/right/up/down direction MOVE, forward/backward move , or circle (CLOCKWISE/COUNTERCLOCKWISE) motions.
  • a gesture profile may include criteria for eight reference motions (MOVE in left/right/up/down directions, forward/backward moves, and circles (CLOCKWISE/COUNTERCLOCKWISE)). (See Figure 7). Gesture profiles can be created independently for each user. This is to reflect unique motion characteristics of each user.
  • the guide screen may guide the user to repeatedly take at least one of a left move, a right move, an up move, a down move, a forward move, a backward move, a clockwise circle, and a counterclockwise circle.
  • the guide screen displays to the user to repeat the left move operation 5 times, and the user can follow it (referred to as a recording operation in the gesture recording mode).
  • the electronic device MD may generate a gesture profile for at least one of the reference motions based on motion data obtained from repeated motions of the user and store the gesture profile in the memory M. 13 illustrates a screen for guiding a user to repeat a left move operation according to an exemplary embodiment.
  • the user takes a recording motion and the electronic device (MD) acquires acceleration values for each of the three axes (Left/Right, Forward/Back, Up/Down) obtained from the recording motion, and the three axes (Yaw/Pitch/ A gesture profile for at least one of the reference motions is generated based on at least one of an angular velocity value for each of the Roll) axes and an inclination value for each of the 3 axes (Yaw/Pitch/Roll) axes, and stores the profile in the memory (M). can be saved
  • the user takes a recognized motion and the electronic device (MD) can match the recognized motion currently taken by the user with one of the reference motions.
  • 12 is a flowchart of a method for outputting a control signal based on a user's motion, according to an embodiment. 12 may be performed by an electronic device (MD).
  • MD electronic device
  • step S1210 the electronic device sets the left/right X-axis, the forward/backward Y-axis, and the up/down Z-axis based on the acceleration data received from the acceleration sensor. Accelerations for each can be acquired at regular time intervals.
  • the electronic device may obtain angular velocities for each of the yaw axis, the pitch axis, and the roll axis at regular time intervals based on the gyro data received from the gyro sensor of the electronic device. .
  • a yaw axis, a pitch axis, and a roll axis of the electronic device are based on acceleration data, gyro data, and geomagnetism data acquired from an acceleration sensor, a gyro sensor, and a geomagnetic sensor, respectively.
  • the slope for each can be obtained at regular time intervals.
  • steps S1210 to S1230 are similar to those of the second processor P2 described above with reference to FIG. 10, detailed descriptions thereof will be omitted.
  • the electronic device can generate a user's gesture profile corresponding to the reference motion by performing a recording motion that follows the reference motion at least once.
  • step S1250 it may be determined whether the user's recognized motion (currently taken motion) matches the reference motion.
  • FIG. 14 illustrates a flow diagram of a method performed by an electronic device in a gesture recording mode or gesture recognition mode for a left, right, up, or down move motion, according to one embodiment.
  • the flowchart of the method of FIG. 14 may be performed by the electronic device MD or the second processor P2 of the electronic device MD.
  • step S1240 of FIG. 12 may include steps S1410 to S1480 of FIG. 14 .
  • step S1250 of FIG. 12 may include steps S1410 to S1490 of FIG. 14 .
  • the electronic device MD may obtain motion data of the user periodically or at regular time intervals.
  • the second processor (P2) provides acceleration values for each of the three axes (Left/Right, Forward/Back, Up/Down) at 20 ms intervals, and acceleration values for each of the three axes (Yaw/Pitch/Roll).
  • An angular velocity value and a slope value for each of the three axes (Yaw/Pitch/Roll) may be acquired from the first processor P1.
  • acceleration values for each of the 3 axes (Left/Right, Forward/Back, Up/Down), angular velocity values for each of the 3 axes (Yaw/Pitch/Roll), and 3 axes (Yaw/Pitch/Roll) ) axis may refer to a value periodically read by the second processor P2 from the first processor P1.
  • the meaning that the electronic device (MD) returns to the standby state means that the current motion taken by the user is out of condition among various conditions that the electronic device (MD) determines to finally determine that the user has taken a specific reference motion. means that it is not a meaningful gesture, terminates the gesture profile creation operation (in gesture recording mode) or gesture recognition operation (in gesture recognition mode) currently being performed, and returns to the idle state (Reset) )am.
  • step S1460 regardless of the operation mode, up to step S1460 is the same. Therefore, the 'motion' taken by the user up to step S1460 is referred to as 'recording motion' for generating a gesture profile if the operation mode is the gesture recording mode, and actually for the electronic device to output a control signal to the outside if the gesture recognition mode. It may be called 'perceived motion', but this is just a difference in terminology to refer to motion in each mode.
  • the electronic device may determine whether the user is ready to make a motion based on at least one of the slope with respect to the roll axis and the slope with respect to the pitch axis. For example, if the slope with respect to the pitch axis is within the first reference range and the slope with respect to the roll axis is within the second reference range, it may be determined that the user is ready to perform a left move motion (Yes). If the tilt value of the roll axis is within the third reference range, it may be determined that the user is ready to make a right move (Yes). If the tilt value of the roll axis is within the third reference range, it may be determined that the user is ready to take an upward move (Yes).
  • the tilt value of the roll axis is within the fourth standard range, it may be determined that the user is ready to take an upward move (Yes).
  • the tilt value of the roll axis is within the fifth reference range, it may be determined that the user is ready to take a downward move (Yes). If it is not ready to take any motion (No), it returns to the standby state.
  • the reference range of the slope with respect to the roll axis or the slope with respect to the pitch axis for determining motion preparation may be independently set for each of the left move, the right move, the upper move, and the lower move.
  • the electronic device may determine whether motion has started. For example, the electronic device may determine that the left move motion has started when the angular velocity with respect to the yaw axis is equal to or greater than the first reference value. The electronic device MD may determine that the right move motion has started when the angular velocity with respect to the pitch axis is greater than or equal to the second reference value. The electronic device MD may determine that the upward move motion has started when the angular velocity with respect to the yaw axis is greater than or equal to the third reference value. The electronic device MD may determine that the downward move motion has started when the angular velocity with respect to the yaw axis is equal to or greater than the fourth reference value. In step S1420, reference values for determining the motion start may be independently set for each of the left move, right move, upper move, and lower move. If it is determined that no motion has started (No), it returns to standby mode.
  • the electronic device may determine whether the slope during motion is within a reference range. For example, the electronic device may determine whether the inclination is within a reference range based on at least one of the inclination with respect to the pitch axis and the inclination with respect to the roll axis. For example, if the inclination of the pitch axis or the inclination of the roll axis is out of the seventh reference range while taking a motion, the electronic device determines that it is not a left move motion (No) and returns to a standby state. If the inclination of the roll axis deviates from the eighth reference range while taking the motion, the electronic device MD determines that it is not a right move motion (No) and returns to a standby state.
  • the electronic device MD determines that it is not an upward move motion (No) and returns to a standby state.
  • the electronic device (MD) determines that it is not a downward move motion when the inclination of the roll axis is less than the 5th reference value or the absolute value of the inclination of the pitch axis is more than the 6th reference value and the inclination of the roll axis is less than the 7th reference value while taking the motion. (No) and return to standby.
  • the sixth standard range, the seventh standard range, the eighth standard range, and the ninth standard range may be set independently of each other.
  • the electronic device may determine whether the angular velocity at the time of completion of the motion is greater than or equal to a reference value. For example, the electronic device returns to the standby state when the angular velocity of the yaw axis at the time of motion completion is less than the eighth reference value. Alternatively, the electronic device returns to the standby state when the angular velocity of the pitch axis at the time of motion completion is less than the ninth reference value.
  • the eighth reference value and the ninth reference value may be set independently of each other.
  • the electronic device may determine a motion completion point based on at least one of an angular velocity with respect to a yaw axis and an angular velocity with respect to a pitch axis.
  • a point in time when the current yaw-axis angular velocity value is less than or equal to a reference ratio than the maximum yaw-axis angular velocity value after the motion has started may be determined as a point in time when the left move, up move, or down move motion is completed.
  • a time when the angular velocity on the current pitch axis becomes less than or equal to a reference ratio than the maximum angular velocity on the pitch axis after the start of the motion may be determined as the time when the right move motion is completed.
  • the electronic device may determine whether a value obtained by accumulating acceleration values obtained from the motion start point (step S1420) to the end point is equal to or greater than a reference value. This is to infer the size of the user's motion, and even if the motion satisfies all previous conditions, it is determined as a valid motion only when the size of the motion is equal to or greater than the reference value. For example, the electronic device may determine that the left move motion up to now is valid only when the accumulated value of acceleration values in the X-axis direction is equal to or greater than the 10th reference value. The electronic device may determine that the right move motion up to now is effective only when the cumulative value of acceleration values in the Z-axis direction is greater than or equal to the 11th reference value.
  • the electronic device may determine that the upward move motion up to now is valid only when the accumulated value of acceleration values in the X-axis direction is greater than or equal to the twelfth reference value.
  • the electronic device may determine that the downward move motion so far is valid only when the accumulated value of acceleration values in the X-axis direction is greater than or equal to the 13th reference value.
  • the 10th reference value, the 11th reference value, the 12th reference value, and the 13th reference value may be set independently of each other. If the motion is determined to be invalid (No), the electronic device returns to a standby state.
  • the gesture recording mode is a mode that creates a gesture profile to be used for gesture recognition when the user's current motion matches a specific reference motion, and the gesture recognition mode creates an additionally created gesture profile when the user's current motion matches a specific reference motion. This mode performs the final gesture recognition reflecting the user's unique characteristics. If the current operation mode is a gesture recording mode (Yes), step S1480 is performed, and if the current operation mode is a gesture recognition mode (No), step S1490 is performed.
  • the electronic device may obtain user characteristic values unique to a user who is currently performing a motion based on motion data obtained from the start of the recording motion to the completion of the motion, and store them in a memory.
  • the electronic device may obtain at least one user characteristic value for each left move, right move, upper move, and lower move. For example, even if the users make a motion while viewing the same guide image (left move as shown in FIG. 13), since the data acquired for each user cannot be the same, the unique characteristics of each user must be reflected in the gesture profile. It is for
  • the electronic device can increase the gesture recognition rate by acquiring and storing current user characteristic values in the gesture recording mode and comparing user characteristic values acquired from the user later in the gesture recognition mode with previously stored user characteristic values.
  • a user characteristic value obtained by a left move motion taken by a first user may be different from a user characteristic value obtained by a left move motion taken by a second user.
  • the reference rotation amount which is the value obtained by dividing the maximum value of the angular velocity values for the roll axis obtained from the start of the left move motion by the first user to the completion thereof by the maximum value among the angular velocity values for the yaw axis, has been obtained.
  • the reference interference amount which is the value obtained by dividing the maximum value of the angular velocity values on the pitch axis from the start of the first user's left move motion to the completion thereof by the maximum value of the angular velocity values on the yaw axis, is the user characteristic value for the left move of the first user. can be stored in memory.
  • a user characteristic value obtained by a right move motion taken by a first user may be different from a user characteristic value obtained by a right move motion taken by a second user.
  • the reference rotation amount which is the value obtained by dividing the maximum value of the angular velocity values on the roll axis obtained from the start of the first user's right move motion until completion, by the maximum value among the angular velocity values on the pitch axis
  • the reference interference amount which is the value obtained by dividing the maximum value of angular velocity values on the yaw axis from the start of the right move motion of the first user to the completion thereof by the maximum value of the angular velocity values on the pitch axis, is the user characteristic value for the right move of the first user. can be stored in memory.
  • a user characteristic value obtained by an upward move motion taken by a first user may be different from a user characteristic value obtained by an upward move motion taken by a second user.
  • the reference rotation amount which is the value obtained by dividing the maximum value of angular velocity values for the roll axis obtained from the start of the first user's upper move motion to completion, by the maximum value of the angular velocity values for the yaw axis, for the first user's upward move It can be stored in memory as a user characteristic value.
  • the reference interference amount which is the value obtained by dividing the maximum value of the angular velocity values on the pitch axis from the start of the upper move motion of the first user to the completion thereof by the maximum value of the angular velocity values on the yaw axis, is the user characteristic value for the upper move of the first user. can be stored in memory.
  • a user characteristic value obtained by a downward move motion taken by a first user may be different from a user characteristic value obtained by a downward move motion taken by a second user.
  • the reference rotation amount which is the value obtained by dividing the maximum value of angular velocity values for the roll axis obtained from the start of the first user's downward move motion to completion, by the maximum value of the angular velocity values for the yaw axis, for the downward move of the first user. It can be stored in memory as a user characteristic value.
  • the reference interference amount which is the value obtained by dividing the maximum value of the angular velocity values on the pitch axis from the start of the first user's downward move motion to the completion thereof by the maximum value of the angular velocity values on the yaw axis, is the user characteristic value for the downward move of the first user. can be stored in memory.
  • a gesture profile may be created by a user repeating one recording motion several times.
  • steps S1410 to S1480 may be performed several times (eg, 5 times), and a user characteristic value may be determined based on the reference rotation amount and reference interference values obtained each time.
  • Steps S1410 to S1480 must all be performed to be counted as the number of recordings once. For example, the average, minimum, maximum, and median values of the reference rotation amount and the reference interference amount acquired over a plurality of times may be stored in the memory as the final reference rotation amount and the final reference interference amount.
  • the amount of rotation means the degree of twist of each user's wrist when taking a left, right, up, or down move motion
  • the amount of interference means the degree of movement of an axis other than the main axis of movement. Since the amount of rotation and the amount of interference are different for each user, they can be used as user characteristic values.
  • step S1490 if the current operation mode is not the gesture recording mode (No), that is, if the gesture recognition mode, the user characteristic value currently obtained from the motion taken by the user may be compared with the previously stored user characteristic value. If the current user is the first user, the electronic device may compare the amount of rotation and the amount of interference obtained from the recognized motion of the first user with a pre-stored reference amount of rotation and reference amount of interference of the first user, respectively. If the current user is the second user, the electronic device may compare the amount of rotation and interference obtained from the recognized motion of the second user with the previously stored reference amount of rotation and reference amount of interference of the second user, respectively.
  • Matching between the recognized motion and the reference motion may be determined based on the comparison result. If the currently obtained rotation amount is within the standard rotation amount and a predetermined error range, and the currently obtained interference amount is within the reference interference amount and a predetermined error range, the recognized motion is matched with a left move, a right move, an up move, or a down move (or, can recognize).
  • the flow chart of FIG. 15 is an embodiment of the flow chart of FIG. 14 .
  • Steps S1510, S1520, S1530, S1550, S1560, S1580, and S1590 of FIG. 15 may be performed at steps S1410, S1420, S1430, S1450, S1460, S1480, and S1490 of FIG. 14 , respectively.
  • reference values or reference ranges mentioned are obtained through repeated experiments, and embodiments of the present invention are not limited to the reference values or reference ranges below.
  • the electronic device has an inclination with respect to the pitch axis greater than or equal to -30° and less than or equal to +30°, and an inclination with respect to the roll axis greater than or equal to -25° and less than +35°. If it is equal to or equal to, it is judged that it is ready for the left move motion (Yes), otherwise it returns to the standby state (No).
  • the electronic device determines that the left move motion has started if the angular velocity with respect to the yaw axis is 183 degrees/sec or more (Yes), and returns to a standby state otherwise (No).
  • the electronic device determines that the left move motion continues only when the slope with respect to the pitch axis is greater than or equal to -90° and less than or equal to +90° in the step of determining the slope condition of the motion (S1530). Also, the electronic device determines that the left move motion continues only when the inclination to the roll axis is greater than or equal to -60° and less than or equal to +90°. Accordingly, the electronic device returns to the standby state when the inclination to the pitch axis is less than -90° or greater than +90°. Alternatively, the electronic device returns to the standby state when the inclination with respect to the roll axis is less than -60° or greater than +90°.
  • the electronic device may determine that the left move motion is completed when the angular velocity with respect to the yaw axis is 305 degrees/sec or more in the step of determining the angular velocity at the time of completion of the motion (S1550).
  • a point in time when the current yaw axis angular velocity value is less than or equal to a reference ratio (eg, 30%) than the maximum yaw axis angular velocity value after the motion starts (step S1510) may be determined as the left move motion completion time point.
  • the electronic device can determine that the left move motion is valid only when the accumulated value of acceleration values in the X-axis direction is 4.88 m/s 2 or more.
  • Steps S1580 and S1590 are the same as the description of the left move motion of steps S1480 and S1490 described above with reference to FIG. 14, so descriptions thereof are omitted.
  • the allowable error range for the rotation amount in step S1590 may be ⁇ 1.5 times or less of the reference rotation amount, and the allowable error range for the interference amount may be ⁇ 0.6 times the reference interference amount, but is not limited thereto.
  • the flow chart of FIG. 16 is an embodiment of the flow chart of FIG. 14 .
  • Steps S1610, S1620, S1630, S1650, S1660, S1680, and S1690 of FIG. 16 may be performed at steps S1410, S1420, S1430, S1450, S1460, S1480, and S1490 of FIG. 14 , respectively.
  • reference values or reference ranges mentioned are obtained through repeated experiments, and embodiments of the present invention are not limited to the reference values or reference ranges below.
  • the electronic device determines that the right move motion is ready if the inclination to the roll axis is greater than or equal to 0° and less than or equal to 90° (Yes), otherwise (No) standby return to state
  • step S1620 of determining motion start the electronic device determines that the right move motion has started if the angular velocity with respect to the pitch axis is 12 degrees/sec or more (Yes), and returns to a standby state otherwise (No).
  • the electronic device determines that the right move motion continues only when the inclination with respect to the roll axis is greater than or equal to -20° and less than or equal to +90° in the step of determining the inclination condition of the motion (S1630). Therefore, the electronic device returns to the standby state when the inclination with respect to the roll axis is less than -20° or greater than +90°.
  • step S1650 of determining the angular velocity at the time point of motion completion the electronic device can determine that the right move motion is completed only when the angular velocity with respect to the pitch axis is 20 degrees/sec or more.
  • a time when the angular velocity on the current pitch axis becomes less than or equal to a reference ratio (eg, 30%) than the maximum angular velocity on the pitch axis after the start of the motion (step S1610) may be determined as the time when the right move motion is completed.
  • the electronic device can determine that the right move motion is valid only when the cumulative value of acceleration values in the Z-axis direction is 2.44 m/s 2 or more.
  • Steps S1680 and S1690 are the same as the description of the right move motion of steps S1480 and S1490 described above with reference to FIG. 14, so descriptions thereof are omitted.
  • the tolerance range for the rotation amount in step S1690 is ⁇ 1.5 times or less of the reference rotation amount
  • the tolerance range for the interference amount may be -1 times or more and +0.8 times or less of the reference interference amount, but is limited thereto. It doesn't work.
  • the flow chart of FIG. 17 is an embodiment of the flow chart of FIG. 14 .
  • Steps S1710, S1720, S1730, S1750, S1760, S1780, and S1790 of FIG. 17 may be performed in steps S1410, S1420, S1430, S1450, S1460, S1480, and S1490 of FIG. 14, respectively.
  • reference values or reference ranges mentioned are obtained through repeated experiments, and embodiments of the present invention are not limited to the reference values or reference ranges below.
  • step of determining whether the motion is ready (S1710), if the inclination to the roll axis is greater than or equal to -90° and less than or equal to -15°, the electronic device determines that the upward move motion is ready (Yes), otherwise (No ) returns to the standby state.
  • the electronic device determines that the upward move motion has started if the angular velocity with respect to the yaw axis is 12 degrees/sec or more in the step of determining the start of the motion (S1720), otherwise (No), returns to a standby state.
  • the electronic device determines that the upward move motion continues only when the inclination with respect to the roll axis is less than or equal to +30° in the step of determining the inclination condition of the motion (S1730). Therefore, the electronic device returns to the standby state when the inclination with respect to the roll axis is greater than +30°.
  • step S1750 of determining the angular velocity at the motion completion point the electronic device may determine that the upward move motion is completed only when the angular velocity with respect to the yaw axis is 23 degrees/sec or higher.
  • a point in time at which the current yaw axis angular velocity value is less than or equal to a reference ratio (eg, 30%) than the maximum yaw axis angular velocity value after the start of the motion (step S1710) may be determined as the point in time when the upward move motion is completed.
  • the electronic device can determine that the upward move motion is valid only when the accumulated value of acceleration values in the X-axis direction is 0.92 m/s 2 or more.
  • Steps S1780 and S1790 are the same as the description of the upward move motion of steps S1480 and S1490 described above with reference to FIG. 14, and thus descriptions thereof are omitted.
  • the allowable error range for the rotation amount in step S1790 may be ⁇ 1.3 times or less of the reference rotation amount, and the allowable error range for the interference amount may be ⁇ 0.6 times or less of the reference interference amount, but is not limited thereto.
  • the flow chart of FIG. 18 is an embodiment of the flow chart of FIG. 14 .
  • Steps S1810, S1820, S1830, S1850, S1860, S1880, and S1890 of FIG. 18 may be performed in steps S1410, S1420, S1430, S1450, S1460, S1480, and S1490 of FIG. 14, respectively.
  • reference values or reference ranges mentioned are obtained through repeated experiments, and embodiments of the present invention are not limited to the reference values or reference ranges below.
  • step of determining whether the motion is ready (S1810), if the inclination to the roll axis is greater than or equal to 10° and less than or equal to +90°, the electronic device determines that the downward move motion is ready (Yes), otherwise (No) return to standby
  • the electronic device determines that the downward move motion has started if the angular velocity with respect to the yaw axis is 12 degrees/sec or more (Yes), and returns to a standby state otherwise (No).
  • the electronic device determines whether the inclination with respect to the roll axis is -30° or less, or the absolute value of the inclination with respect to the pitch axis is +120° or more and the inclination with respect to the roll axis is less than or equal to +30° ( No), it returns to the standby state. If not (Yes), the method goes to step S1850.
  • step S1850 of determining the angular velocity at the motion completion point the electronic device may determine that the downward move motion is completed only when the angular velocity with respect to the yaw axis is 23 degrees/sec or higher.
  • a point in time at which the current yaw axis angular velocity value is less than or equal to a reference ratio (eg, 30%) than the maximum yaw axis angular velocity value after the start of the motion (step S1810) may be determined as the point in time when the upward move motion is completed.
  • the electronic device can determine that the downward move motion is valid only when the accumulated value of acceleration values in the X-axis direction is 0.92 m/s 2 or more.
  • Steps S1880 and S1890 are the same as the description of the downward move motion of steps S1480 and S1490 described above with reference to FIG. 14, so descriptions thereof are omitted.
  • the allowable error range for the rotation amount in step S1890 may be ⁇ 1.3 times or less of the reference rotation amount, and the allowable error range for the interference amount may be ⁇ 0.6 times or less of the reference interference amount, but is not limited thereto.
  • 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.
  • 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.

Landscapes

  • Engineering & Computer Science (AREA)
  • General Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Human Computer Interaction (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • User Interface Of Digital Computer (AREA)
  • Position Input By Displaying (AREA)

Abstract

전자 장치에서 사용자의 모션에 기반한 제어신호를 출력하기 위한 방법은 상기 전자 장치의 동작 모드가 제스처 레코딩 모드이면, 사용자가 레퍼런스 모션을 따라하는 레코딩 모션을 적어도 한번 취함으로써 상기 레퍼런스 모션에 대응하는 상기 사용자의 제스처 프로파일을 생성하는 단계, 및 동작 모드가 제스처 인식 모드이면, 상기 사용자의 인식 모션이 상기 레퍼런스 모션과 매칭되는지 판단하는 단계를 포함할 수 있다.

Description

사용자의 반복 동작에 기반한 사용자 정의 제스처 프로파일 생성 및 제스처 인식을 위한 방법 및 장치
본 발명은 전자 장치에서 수행되는 제스처 인식 방법에 관한 것이다.
제스처 또는 모션 인식 기술은 웨어러블 디바이스의 성장 및 컴퓨터 그래픽 기술, 증강 현실(Augmented Reality, AR), 가상 현실(Virtual Reality, VR), 혼합 현실(Mixed Reality, MR)과 같은 가상 현실에 기반한 컨텐츠 시장이 발전 등에 힘입어 지속적으로 발전하고 있다. 그러나 제스처 인식 기술은 장치를 제어하기 위해 사용되기보다는 게임의 가상 컨텐츠나 영화 제작사에서 컴퓨터 그래픽에 기반한 컨텐츠를 만들기 위해 주로 사용되고 있어 일상 생활에서 제스처 인식 기술은 매우 제한적으로 활용되고 있는 실정이다.
이러한 이유로는 첫 번째로 제스처 인식 기술에 오류가 있을 경우 오류에 의해 치명적인 결과를 발생시킬 수 있는 분야에는 사용하기 어렵다는 것과 두 번째로 제스처 인식을 위해 카메라로부터 객체의 영상을 획득하여 이미지 프로세싱에 기반하여 제스처 인식하는 방법이 널리 사용되고 있는데 이미지 프로세싱 방식은 환경에 의한 영향을 많이 받으므로 인식 오류도 빈번하고 알고리즘이 매우 정교할 필요가 있다는 문제점이 있다. 세 번째로 사용자에게 랜드마크를 부착하거나 특수한 장비를 착용하게 함으로써 제스처 인식의 정확도를 상승시킬 수 있는데 이러한 방식은 사용자에게 너무 번거롭고 불편한 작업이므로 제스처 인식이 일상 생활이나 일상 업무에서 활용되지 못하는 이유가 된다.
또한, 모션 센서를 통해 모션 데이터를 획득하고 이에 기반하여 제스처 인식을 하는 종래 기술들이 있으나 대부분 가속도 데이터와 같은 1~2개 종류의 데이터만을 활용하여 이를 가공함으로써 제스처 인식을 하는 기술들이다. 최근 가속도, 자이로, 지자기 센서를 포함하는 9축 센서가 널리 저렴하게 보급되고 있으나 이를 웨어러블 디바이스에 탑재하고 획득된 센서 데이터에 기반하여 제스처 인식을 하거나 특정 사용자에 특화된 제스처 프로파일을 생성함으로써 제스처 인식률을 높이기 위한 기술은 전무하다.
사용자가 3차원 공간 상에서 취하는 모션에 의해 획득되는 모션 데이터에 기반하여 사용자에게 특화된 제스처 프로파일을 생성하고, 생성된 제스처 프로파일에 기반하여 현재 사용자의 모션을 특정 제스처로 인식하기 위한 방법이 제공될 수 있다.
본 실시 예가 이루고자 하는 기술적 과제는 상기된 바와 같은 기술적 과제로 한정되지 않으며, 이하의 실시 예들로부터 또 다른 기술적 과제들이 유추될 수 있다.
사용자가 3차원 공간 상에서 취하는 모션에 의해 획득되는 모션 데이터에 기반하여 사용자에게 특화된 제스처 프로파일을 생성하고, 생성된 제스처 프로파일에 기반하여 현재 사용자의 모션을 특정 제스처로 인식하기 위한 방법이 제공될 수 있다.
본 실시 예가 이루고자 하는 기술적 과제는 상기된 바와 같은 기술적 과제로 한정되지 않으며, 이하의 실시 예들로부터 또 다른 기술적 과제들이 유추될 수 있다.
3차원 공간 상에서의 모션 데이터 획득을 통해 사용자에게 특화된 제스처 프로파일을 생성하고, 생성된 제스처 프로파일에 기반하여 사용자의 특정 제스처를 인식하기 위한 방법이 제공될 수 있다.
사용자가 직접 레퍼런스 모션을 취함으로써 특정 레퍼런스 모션에 대한 사용자 특성 값이 저장되고 이에 기반하여 제스처 인식이 수행되므로 제스처 인식의 정확도가 향상되고 스마트폰, TV, 컴퓨터, 태블릿 PC, 홀로그램, HMD(Head Mount Display) 상의 다양한 컨텐츠를 쉽고 정밀하게 컨트롤 할 수 있다.
도1a는 일 실시 예에 따라, 호스트 장치를 제어하기 위한 전자 장치(닫힌 상태)를 나타낸다.
도1b는 일 실시 예에 따라, 호스트 장치를 제어하기 위한 전자 장치(열린 상태)를 나타낸다.
도2a는 일 실시 예에 따라, 전자 장치 내의 링형 장치를 나타낸다.
도2b는 일 실시 예에 따라, 전자 장치를 사용하여 컨텐츠를 제어하는 것을 나타낸다.
도3은 일 실시 예에 따라, 전자 장치를 포함하는 시스템을 나타낸다.
도4a는 일 실시 예에 따라, 마우스 모드 하에서, 전자 장치로 수행되는 마우스 동작들을 나타낸다.
도4b는 일 실시 예에 따라, 전자 장치의 정면 부분이 세 개의 터치 영역들로 구분된 것을 나타낸다.
도4c는 일 실시 예에 따라, 세 개의 영역들을 이용해 인식되는 마우스 동작들을 나타낸다.
도5는 일 실시 예에 따라, 사용자의 움직임 정보와 대응하는 모션을 결정하기 위한 결정 모델을 나타낸다.
도6은 일 실시 예에 따라, 전자 장치를 활용한 조이스틱을 나타낸다.
도7은 일 실시 예에 따라, 제스처 모드 하에서, 전자 장치로 호스트 장치를 제어하기 위한 레퍼런스 모션들을 나타낸다.
도8은 일 실시 예에 따라, 전자 장치를 사용하여 컨텐츠를 제어하는 방법의 흐름도를 나타낸다.
도9는 일 실시 예에 따라, 거리 데이터를 획득하기 위한 방법의 흐름도를 나타낸다.
도10은 일 실시 예에 따라, 전자 장치의 블록도를 나타낸다.
도11은 일 실시 예에 따라, 3차원 공간 상의 9개의 축을 나타낸다.
도12는 일 실시 예에 따라, 사용자의 모션에 기반한 제어신호를 출력하기 위한 방법의 흐름도를 나타낸다.
도13은 일 실시 예에 따라, 가이드 화면에 따라 사용자가 특정 레퍼런스 모션(왼쪽 무브 모션)을 취하는 모습을 나타낸다.
도14는 일 실시 예에 따라, 왼쪽, 오른쪽, 위쪽, 또는 아래쪽 무브(L/R/U/D) 모션에 대해 제스처 레코딩 모드 또는 제스처 인식 모드에서 수행되는 방법의 흐름도를 나타낸다.
도15는 일 실시 예에 따라, 왼쪽 무브 모션에 대해 제스처 레코딩 모드 또는 제스처 인식 모드에서 수행되는 방법의 흐름도를 나타낸다.
도16은 일 실시 예에 따라, 오른쪽 무브 모션에 대해 제스처 레코딩 모드 또는 제스처 인식 모드에서 수행되는 방법의 흐름도를 나타낸다.
도17은 일 실시 예에 따라, 위쪽 무브 모션에 대해 제스처 레코딩 모드 또는 제스처 인식 모드에서 수행되는 방법의 흐름도를 나타낸다.
도18은 일 실시 예에 따라, 아래쪽 무브 모션에 대해 제스처 레코딩 모드 또는 제스처 인식 모드에서 수행되는 방법의 흐름도를 나타낸다.
전자 장치에서 사용자의 왼쪽 무브 모션에 기반한 제어신호를 출력하기 위한 방법은, 상기 전자 장치의 가속도 센서로부터 수신한 가속도 데이터에 기반하여 좌우 방향의 X축, 위아래 방향의 Y축, 및 앞뒤 방향의 Z축 각각에 대한 가속도 값을 획득하는 단계, 상기 전자 장치의 자이로 센서로부터 수신한 자이로 데이터에 기반하여 요(Yaw)축, 피치(Pitch)축, 및 롤(Roll)축 각각에 대한 각속도 값을 획득하는 단계, 상기 가속도 센서, 상기 자이로 센서, 및 상기 전자 장치의 지자기 센서로부터 각각 획득한 가속도 데이터, 자이로 데이터, 및 지자기 데이터에 기반하여 상기 전자 장치의 요(Yaw)축, 피치(Pitch)축, 롤(Roll)축 각각에 대한 기울기 값을 획득하는 단계, 현재 동작 모드가 제스처 레코딩 모드이면, 상기 사용자가 레퍼런스 모션을 취하는 레코딩 모션을 적어도 한번 취함으로써 상기 레퍼런스 모션에 대응하는 상기 사용자의 제스처 프로파일을 생성하는 단계, 및 현재 동작 모드가 제스처 인식 모드이면, 상기 사용자의 인식 모션이 상기 레퍼런스 모션과 매칭되는지 판단하는 단계를 포함하고, 상기 레퍼런스 모션은 왼쪽 무브이고, 상기 사용자의 제스처 프로파일을 생성하는 단계는, 상기 전자 장치의 피치축에 대한 기울기가 제1기준 범위 이내이고 롤축에 대한 기울기가 제2기준 범위 이내이면 상기 레코딩 모션이 준비된 것으로 판단하는 제1단계, 상기 레코딩 모션이 준비되었으면, 요축에 대한 각속도가 제1기준 값 이상이면 레코딩 모션이 시작된 것으로 판단하는 제2단계, 상기 레코딩 모션이 시작되면, 상기 레코딩 모션의 롤축에 대한 기울기가 제3기준 범위를 벗어나거나 피치축에 대한 기울기가 제4기준 범위를 벗어나면 제스처 프로파일 생성을 종료하고 대기 상태로 돌아가는 제3단계, 상기 레코딩 모션의 완료 시점의 요축에 대한 각속도가 제2기준 값 미만이면 제스처 프로파일 생성을 종료하고 대기 상태로 돌아가는 제4단계, 상기 레코딩 모션의 시작에서 완료 시점까지의 상기 X축에 대한 선형 가속도의 누적값이 제3기준 값 미만이면 상기 레코딩 모션이 유효하지 않은 것으로 판단하여 상기 제스처 프로파일 생성을 종료하고 대기모드로 돌아가는 제5단계, 및 상기 레코딩 모션의 시작 후 상기 완료 시점까지의 롤축에 대한 각속도 최대값을 요축에 대한 각속도 최대값으로 나눈 값인 기준 회전량과 상기 레코딩 모션의 시작 후 상기 완료 시점까지의 피치축에 대한 각속도 최대값을 요축에 대한 각속도 최대값으로 나눈 값인 기준 간섭량을 상기 사용자의 특성 값들로서 메모리에 저장하는 제6단계를 포함하고, 상기 레코딩 모션의 완료 시점은 현재 요축에 대한 각속도 값이 레코딩 모션 시작 후의 요축에 대한 각속도 최대값의 기준 비율 이하가 되는 시점으로 결정될 수 있다.
상기 사용자의 제스처 프로파일은 상기 사용자가 상기 레코딩 모션을 여러 횟수 취함으로써 생성되고, 각 횟수는 상기 제1단계부터 상기 제6단계까지의 동작이 모두 완료되어야 카운트되고, 상기 기준 회전량은 여러 횟수에 걸쳐 각각 획득된 기준 회전량들에 기반하여 결정되고, 상기 기준 간섭량은 여러 횟수에 걸쳐 각각 획득된 기준 간섭량들에 기반하여 결정될 수 있다.
상기 사용자의 인식 모션이 상기 레퍼런스 모션과 매칭되는지 판단하는 단계는, 상기 전자 장치의 피치축에 대한 기울기가 상기 제1기준 범위 이내이고 롤축에 대한 기울기가 상기 제2기준 범위 이내이면 상기 인식 모션이 준비된 것으로 판단하는 제7단계, 상기 인식 모션이 준비되었으면, 요축에 대한 각속도가 상기 제1기준 값 이상이면 상기 인식 모션이 시작된 것으로 판단하는 제8단계, 상기 인식 모션이 시작되면, 상기 레코딩 모션의 롤축에 대한 기울기가 상기 제3기준 범위를 벗어나거나 피치축에 대한 기울기가 상기 제4기준 범위를 벗어나면 인식을 종료하고 대기 상태로 돌아가는 제9단계, 상기 인식 모션의 완료 시점의 요축에 대한 각속도가 상기 제2기준 값 미만이면 인식을 종료하고 대기 상태로 돌아가는 제10단계, 상기 인식 모션의 시작에서 완료 시점까지의 상기 X축에 대한 선형 가속도의 누적값이 상기 제3기준 값 미만이면 상기 인식 모션이 유효하지 않은 것으로 판단하여 인식을 종료하고 대기모드로 돌아가는 제11단계, 및 상기 인식 모션의 시작 후 상기 완료 시점까지의 롤축에 대한 각속도 최대값을 요축에 대한 각속도 최대값으로 나눈 값인 현재 회전량과 상기 인식 모션의 시작 후 상기 완료 시점까지의 피치축에 대한 각속도 최대값을 요축에 대한 각속도 최대값으로 나눈 값인 현재 간섭량을 상기 메모리에 기 저장된 상기 기준 회전량 및 상기 기준 간섭량과 각각 비교하는 제12단계를 포함하고, 상기 비교 결과에 기반하여 상기 인식 모션과 상기 레퍼런스 모션의 매칭 여부가 결정되고, 상기 인식 모션의 완료 시점은 현재 요축에 대한 각속도 값이 인식 모션 시작 후의 요축에 대한 각속도 최대값의 기준 비율 이하가 되는 시점으로 결정될 수 있다.
전자 장치에서 사용자의 오른쪽 무브 모션에 기반한 제어신호를 출력하기 위한 방법은, 상기 전자 장치의 가속도 센서로부터 수신한 가속도 데이터에 기반하여 좌우 방향의 X축, 위아래 방향의 Y축, 및 앞뒤 방향의 Z축 각각에 대한 가속도 값을 획득하는 단계, 상기 전자 장치의 자이로 센서로부터 수신한 자이로 데이터에 기반하여 요(Yaw)축, 피치(Pitch)축, 롤(Roll)축 각각에 대한 각속도 값을 획득하는 단계, 상기 가속도 센서, 상기 자이로 센서, 및 상기 전자 장치의 지자기 센서로부터 각각 획득한 가속도 데이터, 자이로 데이터, 및 지자기 데이터에 기반하여 상기 전자 장치의 요(Yaw)축, 피치(Pitch)축, 롤(Roll)축 각각에 대한 기울기 값을 획득하는 단계, 현재 동작 모드가 제스처 레코딩 모드이면, 상기 사용자가 레퍼런스 모션을 취하는 레코딩 모션을 적어도 한번 취함으로써 상기 레퍼런스 모션에 대응하는 상기 사용자의 제스처 프로파일을 생성하는 단계, 및 현재 동작 모드가 제스처 인식 모드이면, 상기 사용자의 인식 모션이 상기 레퍼런스 모션과 매칭되는지 판단하는 단계를 포함하고, 상기 레퍼런스 모션은 오른쪽 무브이고, 상기 사용자의 제스처 프로파일을 생성하는 단계는, 상기 전자 장치의 롤축에 대한 기울기 값이 제1기준 범위 이내이면 상기 레코딩 모션이 준비된 것으로 판단하는 제1단계, 상기 레코딩 모션이 준비되었으면, 피치축에 대한 각속도가 제1기준 값 이상이면 레코딩 모션이 시작된 것으로 판단하는 제2단계, 상기 레코딩 모션이 시작되면, 상기 레코딩 모션의 롤축에 대한 기울기가 제2기준 범위를 벗어나면 제스처 프로파일 생성을 종료하고 대기 상태로 돌아가는 제3단계, 상기 레코딩 모션의 완료 시점의 피치축에 대한 각속도가 제2기준 값 미만이면 제스처 프로파일 생성을 종료하고 대기 상태로 돌아가는 제4단계, 상기 레코딩 모션의 시작에서 완료 시점까지의 상기 Z축에 대한 선형 가속도의 누적값이 제3기준 값 미만이면 상기 레코딩 모션이 유효하지 않은 것으로 판단하여 제스처 프로파일 생성을 종료하고 대기모드로 돌아가는 제5단계, 및 상기 레코딩 모션의 시작 후 상기 완료 시점까지의 롤축에 대한 각속도 최대값을 피치축에 대한 각속도 최대값으로 나눈 값인 기준 회전량과 상기 레코딩 모션의 시작 후 상기 완료 시점까지의 요축에 대한 각속도 최대값을 피치축에 대한 각속도 최대값으로 나눈 값인 기준 간섭량을 상기 사용자의 특성 값들로서 메모리에 저장하는 제6단계를 포함하고, 상기 레코딩 모션의 완료 시점은 현재 피치축에 대한 각속도 값이 상기 레코딩 모션 시작 후의 피치축에 대한 각속도 최대값의 기준 비율 이하가 되는 시점으로 결정될 수 있다.
상기 사용자의 제스처 프로파일은 상기 사용자가 상기 레코딩 모션을 여러 횟수 취함으로써 생성되고, 각 횟수는 상기 제1단계부터 상기 제6단계까지의 동작이 모두 완료되어야 카운트되고, 상기 기준 회전량은 여러 횟수에 걸쳐 각각 획득된 기준 회전량들에 기반하여 결정되고, 상기 기준 간섭량은 여러 횟수에 걸쳐 각각 획득된 기준 간섭량들에 기반하여 결정되는 사용자의 모션에 기반한 제어신호를 출력할 수 있다.
상기 사용자의 인식 모션이 상기 레퍼런스 모션과 매칭되는지 판단하는 단계는, 상기 전자 장치의 롤축에 대한 기울기 값이 상기 제1기준 범위 이내이면 상기 인식 모션이 준비된 것으로 판단하는 제7단계, 상기 인식 모션이 준비되었으면, 상기 피치축에 대한 각속도가 상기 제1기준 값 이상이면 인식 모션이 시작된 것으로 판단하는 제8단계, 상기 인식 모션이 시작되면, 상기 인식 모션의 롤축에 대한 기울기가 상기 제2기준 범위를 벗어나면 인식을 종료하고 대기 상태로 돌아가는 제9단계, 상기 인식 모션의 완료 시점의 피치축에 대한 각속도가 상기 제2기준 값 미만이면 인식을 종료하고 대기 상태로 돌아가는 제10단계, 상기 인식 모션의 시작에서 상기 인식 모션의 완료 시점까지의 상기 Z축에 대한 선형 가속도의 누적값이 상기 제3기준 값 미만이면 상기 인식 모션이 유효하지 않은 것으로 판단하여 인식을 종료하고 대기모드로 돌아가는 제11단계, 및 상기 인식 모션의 시작 후 상기 완료 시점까지의 롤축에 대한 각속도 최대값을 피치축에 대한 각속도 최대값으로 나눈 값인 현재 회전량과 상기 인식 모션 시작의 후 상기 완료 시점까지의 요축에 대한 각속도 최대값을 피치축에 대한 각속도 최대값으로 나눈 값인 현재 간섭량을 상기 메모리에 기 저장된 상기 기준 회전량 및 상기 기준 간섭량과 각각 비교하는 제12단계를 포함하고, 상기 비교 결과에 기반하여 상기 인식 모션과 상기 레퍼런스 모션의 매칭 여부가 결정되고, 상기 인식 모션의 완료 시점은 현재 피치축에 대한 각속도 값이 상기 레코딩 모션 시작 후의 피치축에 대한 각속도 최대값의 기준 비율 이하가 되는 시점으로 결정될 수 있다.
전자 장치에서 사용자의 위쪽 무브 모션에 기반한 제어신호를 출력하기 위한 방법은, 상기 전자 장치의 가속도 센서로부터 수신한 가속도 데이터에 기반하여 좌우 방향의 X축, 위아래 방향의 Y축, 및 앞뒤 방향의 Z축 각각에 대한 가속도 값을 획득하는 단계, 상기 전자 장치의 자이로 센서로부터 수신한 자이로 데이터에 기반하여 요(Yaw)축, 피치(Pitch)축, 및 롤(Roll)축 각각에 대한 각속도 값을 획득하는 단계, 상기 가속도 센서, 상기 자이로 센서, 및 상기 전자 장치의 지자기 센서로부터 각각 획득한 가속도 데이터, 자이로 데이터, 및 지자기 데이터에 기반하여 상기 전자 장치의 요(Yaw)축, 피치(Pitch)축, 롤(Roll)축 각각에 대한 기울기 값을 획득하는 단계, 현재 동작 모드가 제스처 레코딩 모드이면, 상기 사용자가 레퍼런스 모션을 취하는 레코딩 모션을 적어도 한번 취함으로써 상기 레퍼런스 모션에 대응하는 상기 사용자의 제스처 프로파일을 생성하는 단계, 및 현재 동작 모드가 제스처 인식 모드이면, 상기 사용자의 인식 모션이 상기 레퍼런스 모션과 매칭되는지 판단하는 단계를 포함하고, 상기 레퍼런스 모션은 위쪽 무브이고, 상기 사용자의 제스처 프로파일을 생성하는 단계는, 상기 전자 장치의 롤축에 대한 기울기가 제1기준 범위 이내이면 상기 레코딩 모션이 준비된 것으로 판단하는 제1단계, 상기 레코딩 모션이 준비되었으면, 요축에 대한 각속도가 제1기준 값 이상이면 레코딩 모션이 시작된 것으로 판단하는 제2단계, 상기 레코딩 모션이 시작되면, 상기 레코딩 모션의 롤축에 대한 기울기가 제2기준 범위를 벗어나면 제스처 프로파일 생성을 종료하고 대기 상태로 돌아가는 제3단계, 상기 레코딩 모션의 완료 시점의 요축에 대한 각속도가 제2기준 값 미만이면 제스처 프로파일 생성을 종료하고 대기 상태로 돌아가는 제4단계, 상기 레코딩 모션의 시작에서 완료 시점까지의 상기 X축에 대한 선형 가속도의 누적값이 제3기준 값 미만이면 상기 레코딩 모션이 유효하지 않은 것으로 판단하여 상기 제스처 프로파일 생성을 종료하고 대기모드로 돌아가는 제5단계, 및 상기 레코딩 모션의 시작 후 상기 완료 시점까지의 롤축에 대한 각속도 최대값을 요축에 대한 각속도 최대값으로 나눈 값인 기준 회전량과 상기 레코딩 모션의 시작 후 상기 완료 시점까지의 피치축에 대한 각속도 최대값을 요축에 대한 각속도 최대값으로 나눈 값인 기준 간섭량을 상기 사용자의 특성 값들로서 메모리에 저장하는 제6단계를 포함하고, 상기 레코딩 모션의 완료 시점은 현재 요축에 대한 각속도 값이 레코딩 모션 시작 후의 요축에 대한 각속도 최대값의 기준 비율 이하가 되는 시점으로 결정될 수 있다.
상기 사용자의 제스처 프로파일은 상기 사용자가 상기 레코딩 모션을 여러 횟수 취함으로써 생성되고, 각 횟수는 상기 제1단계부터 상기 제6단계까지의 동작이 모두 완료되어야 카운트되고, 상기 기준 회전량은 여러 횟수에 걸쳐 각각 획득된 기준 회전량들에 기반하여 결정되고, 상기 기준 간섭량은 여러 횟수에 걸쳐 각각 획득된 기준 간섭량들에 기반하여 결정될 수 있다.
상기 사용자의 인식 모션이 상기 레퍼런스 모션과 매칭되는지 판단하는 단계는, 상기 전자 장치의 롤축에 대한 기울기가 상기 제1기준 범위 이내이면 상기 인식 모션이 준비된 것으로 판단하는 제7단계, 상기 인식 모션이 준비되었으면, 요축에 대한 각속도가 상기 제1기준 값 이상이면 상기 인식 모션이 시작된 것으로 판단하는 제8단계, 상기 인식 모션이 시작되면, 상기 레코딩 모션의 롤축에 대한 기울기가 상기 제2기준 범위를 벗어나면 인식을 종료하고 대기 상태로 돌아가는 제9단계, 상기 인식 모션의 완료 시점의 요축에 대한 각속도가 상기 제2기준 값 미만이면 인식을 종료하고 대기 상태로 돌아가는 제10단계, 상기 인식 모션의 시작에서 완료 시점까지의 상기 X축에 대한 선형 가속도의 누적값이 상기 제3기준 값 미만이면 상기 인식 모션이 유효하지 않은 것으로 판단하여 인식을 종료하고 대기모드로 돌아가는 제11단계, 및 상기 인식 모션의 시작 후 상기 완료 시점까지의 롤축에 대한 각속도 최대값을 요축에 대한 각속도 최대값으로 나눈 값인 현재 회전량과 상기 인식 모션의 시작 후 상기 완료 시점까지의 피치축에 대한 각속도 최대값을 요축에 대한 각속도 최대값으로 나눈 값인 현재 간섭량을 상기 메모리에 기 저장된 상기 기준 회전량 및 상기 기준 간섭량과 각각 비교하는 제12단계를 포함하고, 상기 비교 결과에 기반하여 상기 인식 모션과 상기 레퍼런스 모션의 매칭 여부가 결정되고, 상기 인식 모션의 완료 시점은 현재 요축에 대한 각속도 값이 인식 모션 시작 후의 요축에 대한 각속도 최대값의 기준 비율 이하가 되는 시점으로 결정될 수 있다.
전자 장치에서 사용자의 아래쪽 무브 모션에 기반한 제어신호를 출력하기 위한 방법에 있어서, 상기 전자 장치의 가속도 센서로부터 수신한 가속도 데이터에 기반하여 좌우 방향의 X축, 위아래 방향의 Y축, 및 앞뒤 방향의 Z축 각각에 대한 가속도 값을 획득하는 단계, 상기 전자 장치의 자이로 센서로부터 수신한 자이로 데이터에 기반하여 요(Yaw)축, 피치(Pitch)축, 및 롤(Roll)축 각각에 대한 각속도 값을 획득하는 단계, 상기 가속도 센서, 상기 자이로 센서, 및 상기 전자 장치의 지자기 센서로부터 각각 획득한 가속도 데이터, 자이로 데이터, 및 지자기 데이터에 기반하여 상기 전자 장치의 요(Yaw)축, 피치(Pitch)축, 롤(Roll)축 각각에 대한 기울기 값을 획득하는 단계, 현재 동작 모드가 제스처 레코딩 모드이면, 상기 사용자가 레퍼런스 모션을 취하는 레코딩 모션을 적어도 한번 취함으로써 상기 레퍼런스 모션에 대응하는 상기 사용자의 제스처 프로파일을 생성하는 단계, 및 현재 동작 모드가 제스처 인식 모드이면, 상기 사용자의 인식 모션이 상기 레퍼런스 모션과 매칭되는지 판단하는 단계를 포함하고, 상기 레퍼런스 모션은 아래쪽 무브이고, 상기 사용자의 제스처 프로파일을 생성하는 단계는, 상기 전자 장치의 롤축에 대한 기울기가 제1기준 범위 이내이면 상기 레코딩 모션이 준비된 것으로 판단하는 제1단계, 상기 레코딩 모션이 준비되었으면, 요축에 대한 각속도가 제1기준 값 이상이면 레코딩 모션이 시작된 것으로 판단하는 제2단계, 상기 레코딩 모션이 시작되면, 상기 레코딩 모션의 롤축에 대한 기울기가 제2기준 범위를 벗어나거나, 피치축에 대한 기울기의 절대값이 제2기준 값 이상이고 롤축에 대한 기울기가 제3기준 값 이하이면 제스처 프로파일 생성을 종료하고 대기 상태로 돌아가는 제3단계, 상기 레코딩 모션의 완료 시점의 요축에 대한 각속도가 제4기준 값 미만이면 제스처 프로파일 생성을 종료하고 대기 상태로 돌아가는 제4단계, 상기 레코딩 모션의 시작에서 완료 시점까지의 상기 X축에 대한 선형 가속도의 누적값이 제5기준 값 미만이면 상기 레코딩 모션이 유효하지 않은 것으로 판단하여 상기 제스처 프로파일 생성을 종료하고 대기모드로 돌아가는 제5단계, 및 상기 레코딩 모션의 시작 후 상기 완료 시점까지의 롤축에 대한 각속도 최대값을 요축에 대한 각속도 최대값으로 나눈 값인 기준 회전량과 상기 레코딩 모션의 시작 후 상기 완료 시점까지의 피치축에 대한 각속도 최대값을 요축에 대한 각속도 최대값으로 나눈 값인 기준 간섭량을 상기 사용자의 특성 값들로서 메모리에 저장하는 제6단계를 포함하고, 상기 레코딩 모션의 완료 시점은 현재 요축에 대한 각속도 값이 레코딩 모션 시작 후의 요축에 대한 각속도 최대값의 기준 비율 이하가 되는 시점으로 결정될 수 있다.
상기 사용자의 제스처 프로파일은 상기 사용자가 상기 레코딩 모션을 여러 횟수 취함으로써 생성되고, 각 횟수는 상기 제1단계부터 상기 제6단계까지의 동작이 모두 완료되어야 카운트되고, 상기 기준 회전량은 여러 횟수에 걸쳐 각각 획득된 기준 회전량들에 기반하여 결정되고, 상기 기준 간섭량은 여러 횟수에 걸쳐 각각 획득된 기준 간섭량들에 기반하여 결정될 수 있다.
상기 사용자의 인식 모션이 상기 레퍼런스 모션과 매칭되는지 판단하는 단계는, 상기 전자 장치의 롤축에 대한 기울기가 상기 제1기준 범위 이내이면 상기 인식 모션이 준비된 것으로 판단하는 제7단계, 상기 인식 모션이 준비되었으면, 요축에 대한 각속도가 상기 제1기준 값 이상이면 상기 인식 모션이 시작된 것으로 판단하는 제8단계, 상기 인식 모션이 시작되면, 상기 레코딩 모션의 롤축에 대한 기울기가 상기 제2기준 범위를 벗어나거나, 피치축에 대한 기울기의 절대값이 제2기준 값 이상이고 롤축에 대한 기울기가 제3기준 값 이하이면 인식을 종료하고 대기 상태로 돌아가는 제9단계, 상기 인식 모션의 완료 시점의 요축에 대한 각속도가 상기 제4기준 값 미만이면 인식을 종료하고 대기 상태로 돌아가는 제10단계, 상기 인식 모션의 시작에서 완료 시점까지의 상기 X축에 대한 선형 가속도의 누적값이 상기 제5기준 값 미만이면 상기 인식 모션이 유효하지 않은 것으로 판단하여 인식을 종료하고 대기모드로 돌아가는 제11단계, 및 상기 인식 모션의 시작 후 상기 완료 시점까지의 롤축에 대한 각속도 최대값을 요축에 대한 각속도 최대값으로 나눈 값인 현재 회전량과 상기 인식 모션의 시작 후 상기 완료 시점까지의 피치축에 대한 각속도 최대값을 요축에 대한 각속도 최대값으로 나눈 값인 현재 간섭량을 상기 메모리에 기 저장된 상기 기준 회전량 및 상기 기준 간섭량과 각각 비교하는 제12단계를 포함하고, 상기 비교 결과에 기반하여 상기 인식 모션과 상기 레퍼런스 모션의 매칭 여부가 결정되고, 상기 인식 모션의 완료 시점은 현재 요축에 대한 각속도 값이 인식 모션 시작 후의 요축에 대한 각속도 최대값의 기준 비율 이하가 되는 시점으로 결정될 수 있다.
사용자의 모션에 기반한 제어신호를 출력하기 위한 전자 장치는, 가속도 센서, 자이로 센서, 지자기 센서, 상기 가속도 센서로부터 수신한 가속도 데이터에 기반하여 좌우 방향의 X축, 위아래 방향의 Y축, 및 앞뒤 방향의 Z축 각각에 대한 가속도 값을 획득하고, 상기 전자 장치의 자이로 센서로부터 수신한 자이로 데이터에 기반하여 요(Yaw)축, 피치(Pitch)축, 및 롤(Roll)축 각각에 대한 각속도 값을 획득하고, 상기 가속도 센서, 상기 자이로 센서, 및 상기 전자 장치의 지자기 센서로부터 각각 획득한 가속도 데이터, 자이로 데이터, 및 지자기 데이터에 기반하여 요(Yaw)축, 피치(Pitch)축, 롤(Roll)축 각각에 대한 기울기 값을 획득하는 제1프로세서, 상기 제1프로세서로부터 주기적인 간격으로 상기 좌우 방향의 X축, 위아래 방향의 Y축, 및 앞뒤 방향의 Z축 각각에 대한 가속도 값, 상기 요(Yaw)축, 피치(Pitch)축, 및 롤(Roll)축 각각에 대한 각속도 값, 및 상기 요(Yaw)축, 피치(Pitch)축, 및 롤(Roll)축 각각에 대한 기울기 값을 획득하는 제2프로세서, 및 상기 사용자의 레코딩 모션에 대한 기준 회전량과 기준 간섭량을 상기 사용자의 특성 값들로서 저장하기 위한 메모리를 포함할 수 있다.
현재 동작 모드가 제스처 레코딩 모드이면, 상기 사용자가 취하는 상기 레코딩 모션으로부터 획득되는 모션 데이터들로부터 기준 회전량과 기준 간섭량을 획득하여 상기 메모리에 저장하고, 현재 동작 모드가 제스처 인식 모드이면, 상기 사용자가 취하는 인식 모션으로부터 획득되는 회전량과 간섭량을 상기 기준 회전량과 상기 기준 간섭량과 각각 비교하고, 상기 레코딩 모션은 왼쪽, 오른쪽, 위쪽, 또는 아래쪽 무브 모션을 포함하고, 상기 사용자이 특성 값들은 상기 사용자의 왼쪽 무브 모션에 대한 제1기준 회전량과 제1기준 간섭량, 상기 사용자의 오른쪽 무브 모션에 대한 제2기준 회전량과 제2기준 간섭량, 상기 사용자의 위쪽 무브 모션에 대한 제3기준 회전량과 제3기준 간섭량, 상기 사용자의 아래쪽 무브 모션에 대한 제4기준 회전량과 제4기준 간섭량을 포함하고, 상기 레코딩 모션이 왼쪽, 위쪽, 또는 아래쪽 무브 모션이면, 상기 기준 회전량은 상기 레코딩 모션의 시작 후 완료 시점까지의 롤축에 대한 각속도 최대값을 요축에 대한 각속도 최대값으로 나눈 값이고, 상기 기준 간섭량은 상기 레코딩 모션의 시작 후 상기 완료 시점까지의 피치축에 대한 각속도 최대값을 요축에 대한 각속도 최대값으로 나눈 값이고, 상기 레코딩 모션이 오른쪽 무브 모션이면, 상기 기준 회전량은 상기 레코딩 모션의 시작 후 완료 시점까지의 롤축에 대한 각속도 최대값을 피치축에 대한 각속도 최대값으로 나눈 값이고, 상기 기준 간섭량은 상기 레코딩 모션의 시작 후 완료 시점까지의 요축에 대한 각속도 최대값을 피치축에 대한 각속도 최대값으로 나눈 값이다.
아래에서, 본 발명이 속하는 기술 분야에서 통상의 지식을 가진 자들(이하, 통상의 기술자들)이 본 발명을 용이하게 실시할 수 있도록, 첨부되는 도면들을 참조하여 몇몇 실시 예가 명확하고 상세하게 설명될 것이다.
또한, 명세서에서 사용되는 "부" 또는 "모듈" 이라는 용어는 FPGA(Field Programmable Gate Array) 또는 ASIC(Application Specific Integrated Circuit)과 같은 하드웨어 구성요소 또는 회로를 의미할 수 있다.
제1, 제2 등의 용어는 다양한 구성요소들(단계, 값, 하드웨어 모듈 등)들을 설명하는데 사용될 수 있지만, 구성요소들은 용어들에 의해 한정되어서는 안된다. 용어들은 하나의 구성요소를 다른 구성요소로부터 구별하는 목적으로만 사용된다.
이하, "컨텐츠"는 게임, 음악, 영화, 이미지, 애니메이션, 캐릭터, 아이템, 물체 등과 같은 미디어 자체 또는 미디어 상에서 재생되는 객체를 포함할 수 있으나 이에 제한되지 않는다. “컨텐츠”는 호스트 장치에서 구동되는 운영 체제 또는 소프트웨어를 포함할 수 있다. 소프트웨어는 워드 프로세서, 파워포인트와 같은 문서 프로그램, 전문적인 작업을 수행하기 위한 이미지 처리 프로그램, 캐드 프로그램, 및 게임을 포함할 수 있다. "컨텐츠"는 AR/VR/MR 과 같은 가상 현실에서 생성되는 가상 컨텐츠를 포함할 수 있다. "컨텐츠"는 2차원의 화면에 재생되는 객체 또는 홀로그램과 같은 3차원 공간 상에 표현되는 3차원 입체 객체를 포함할 수 있다. "컨텐츠"는 호스트 장치에 의해 생성, 실행 또는 재생될 수 있다. "컨텐츠"가 3차원 공간 상에 표현되는 가상 컨텐츠(예를 들어, 홀로그램)인 경우, 호스트 장치와 "컨텐츠"의 물리적인 위치는 다를 수 있다.
이하, "모션(motion)"은 컨텐츠를 제어하기 위해 사용자가 취하는 유의미한 움직임(movement)으로서, 사용자의 움직임으로부터 캡쳐, 추출, 인식, 분석 또는 결정될 수 있다.
이하, "제어 신호"는 모션 자체 또는 모션의 타입에 대한 정보를 포함하는 신호로서, 전자 장치는 “제어 신호”를 발생시키고 호스트 장치는 전자 장치로부터 수신되는 "제어 신호"에 기반하여 컨텐츠를 동작시키거나 제어할 수 있다. 예를 들어, "제어 신호"는 비트열 형태일 수 있으며 모션들 각각은 서로 다른 비트열로 표현될 수 있다.
도1a는 일 실시 예에 따라, 호스트 장치를 제어하기 위한 전자 장치(닫힌 상태)를 나타낸다. 도1b는 일 실시 예에 따라, 호스트 장치를 제어하기 위한 전자 장치(열린 상태)를 나타낸다.
사용자는 전자 장치(1000)를 손에 쥐거나 손에 든 상태로 터치나 손의 움직임에 의해 호스트 장치를 컨트롤할 수 있다. 호스트 장치는 다양한 종류의 전자 장치를 포함할 수 있다. 예를 들어, 호스트 장치는, 게임기, 스마트 폰, 태블릿 PC(Personal Computer), TV, 데스크톱 PC, 노트북 PC, 모바일 의료 기기, 카메라, 또는 웨어러블 장치(예를 들어, 전자 안경, 전자 옷, 전자 팔찌, 전자 목걸이, 전자 액세서리, 전자 문신 또는 스마트 워치) 중 어느 하나일 수 있으나 이에 제한되지 않는다. 예를 들어, 호스트 장치는 가상 컨텐츠를 표시하기 위한 HMD(Head Mounted Display) 및 가상 현실 게임 또는 가상 현실 컨텐츠를 실행하거나 재생하기 위한 게임기(예를 들어, 콘솔 기기)를 포함할 수 있다. 호스트 장치는 프리젠테이션 자료를 표시하기 위한 컴퓨터를 포함할 수 있다.
도1a와 1b를 같이 참조하면, 전자 장치(1000)는 사용자의 손가락에 착용 가능한 링형 장치(1200)와 링형 장치(1200)를 수납하기 위한 크래들 장치(1400)를 포함할 수 있다. 사용자는 링형 장치(1200)를 크래들 장치(1400)에 수납하고 뚜껑을 닫을 수 있다.
링형 장치(1200)가 크래들 장치(1400)에 수납되고 크래들 장치(1400)의 뚜껑이 닫힌 상태에서, 링형 장치(1200)의 정면 부분(헤드 부분)이 크래들 장치(1400)의 정면에 노출되며, 사용자는 크래들 장치(1400)를 손에 쥔 채 움직임으로써 모션 신호를 발생시키거나 노출된 링형 장치(1200)의 정면 부분을 터치함으로써 터치 동작을 수행할 수 있다. 일 실시 예에 따라, 링형 장치(1200)의 정면 부분에 터치 센싱 모듈이 위치할 수 있다.
사용자는 크래들 장치(1400)의 뚜껑을 열어서 링형 장치(1200)를 꺼낼 수 있다. 사용자는 링형 장치(1200)를 손가락에 착용한 채로 터치 동작이나 모션에 의해 호스트 장치를 제어할 수 있다. 크래들 장치(1400)는 사람이 손에 쥐기 쉬운 형상으로 제작될 수 있으며, 크래들 장치(1400)의 아래 쪽에는 무게중심 추가 위치하여 크래들 장치(1400)의 무게중심이 낮게 설계될 수 있다. 크래들 장치(1400)는 링형 장치(1200)를 충전시키기 위한 충전 단자와 전원 장치를 포함할 수 있다.
링형 장치(1200)는 사용자의 움직임 정보를 획득하기 위한 모션 센서와 사용자의 터치 정보를 획득하기 위한 터치 센서를 포함할 수 있다. 링형 장치(1200)는 획득된 움직임 정보와 터치 정보에 기반하여 제어 신호를 생성하고 생성된 제어 신호를 호스트 장치로 출력할 수 있다. 호스트 장치는 링형 장치(1200)로부터 수신되는 제어 신호에 기반하여 컨텐츠를 제어할 수 있다.
도2a는 일 실시 예에 따라, 링형 장치를 나타내고, 도2b는 일 실시 예에 따라, 사용자가 링형 장치를 착용한 채로 컨텐츠를 제어하는 것을 나타낸다.
도2a와 2b를 같이 참조하면, 링형 장치(1200)는 인체 또는 물체와 부착, 연결 내지는 착용 가능한 소형의 웨어러블 장치일 수 있다. 링형 장치(1200)는 착용이 편하며, 사용자는 별도의 학습없이 직관적으로 링형 장치(1200)의 기능을 동작시킬 수 있다. 나아가, 링형 장치(1200)는 움직임 정보와 터치 정보를 이용하여 범용 마우스처럼 범용 장치로서 사용이 가능하다.
링형 장치(1200)는 사용자의 손가락(2300)에 착용되도록 하기 위한 연결부(1220)와 센서를 이용하여 움직임 정보와 터치 정보를 획득하기 위한 메인 모듈(1240)을 포함할 수 있다. 연결부(1220)는 실리콘, 메탈 등의 소재로 구성될 수 있다. 메인 모듈(1240)은 사용자의 터치 정보와 움직임 정보를 획득하고 획득된 정보에 대응하는 제어 신호를 출력할 수 있다. 메인 모듈(1240)은 후술할 전자 장치(3000)의 구성 요소들 및 구성 요소들을 내장하는 케이스를 포함할 수 있다. 일 실시 예에 따라, 메인 모듈(1240)은 연결부(1220)와 분리될 수 있으며, 사용자는 메인 모듈(1240)만을 다양한 종류의 객체(지팡이, 주사위, 펜 등)에 삽입, 부착, 또는 내장하고 다양한 종류의 객체를 사용하여 호스트 장치를 제어할 수 있다.
메인 모듈(1240)은 터치 정보와 움직임 정보(예를 들어, 메인 모듈(1240)의 움직임에 대한 각속도, 가속도, 속도, 거리, 각도, 방향, 위치(3차원 공간 좌표) 정보)를 획득하고 이를 가공 및 처리함으로써 컨텐츠(2500)를 제어하기 위한 제어 신호를 출력할 수 있다.
도2b에는 링형 장치(1200)가 사용자의 손가락(2300)에 착용되는 것으로 도시되었으나 링형 장치(1200)는 다른 형태의 객체와 연결되거나 부착될 수 있다.
예를 들어, 메인 모듈(1240)은 주사위에 내장되고 주사위의 움직임에 기반하여 컨텐츠(2500)가 제어될 수 있다. 또는, 메인 모듈(1240)은 지팡이에 부착되고 지팡이의 움직임에 기반하여 컨텐츠(2500)가 제어될 수 있다. 또는, 메인 모듈(1240)은 펜에 내장되고 스마트폰 상의 컨텐츠(2500)가 펜의 움직임에 기반하여 제어될 수 있다. 이하, 객체는 사람의 신체 부위(예를 들어, 손가락), 사람이 착용 가능하거나 들 수 있는 물건, 또는 후술할 전자 장치(3000) 자체를 의미할 수 있다.
또한, 도2b에는 컨텐츠(2500)가 3차원 공간 상의 홀로그램 객체로 도시되었으나, 컨텐츠(2500)는 호스트 장치에서 재생되는 어떠한 형태의 컨텐츠나 소프트웨어(마이크로스프트사의 MS오피스, 게임 등) 등도 포함할 수 있다.
도3은 일 실시 예에 따라, 전자 장치를 포함하는 시스템을 나타낸다.
도3을 참조하면, 시스템(100)은 전자 장치(3000)와 호스트 장치(또는, 타겟 장치)를 포함할 수 있다. 전자 장치(3000)는 호스트 장치와 무선 통신 방식에 의해 연결될 수 있다. 예를 들어, 전자 장치(3000)는 호스트 장치와 블루투스 방식에 의해 페어링(pairing)될 수 있다. 전자 장치(3000)는 도1a의 링형 장치(1200)가 수납된 크래들 장치(1400), 크래들 장치(1400)로부터 분리된 링형 장치(1200), 또는 도2a의 링형 장치(1200)의 메인 모듈(1240)을 의미할 수 있다.
사용자는 전자 장치(3000)를 사용하여 호스트 장치의 다양한 컨텐츠를 제어할 수 있다. 일 실시 예에 따라, 사용자는 전자 장치(3000) 자체 또는 전자 장치(3000)와 연결된 객체의 움직임 및/또는 전자 장치(3000)에 입력되는 사용자 터치 동작에 기반하여 호스트 장치의 컨텐츠를 제어할 수 있다. 예를 들어, 사용자는 전자 장치(3000)를 자신의 손가락에 착용하고 손가락을 움직임이거나 손가락으로 전자 장치(3000)를 터치함으로써 호스트 장치의 다양한 컨텐츠를 제어할 수 있다.
도3을 참조하면, 전자 장치(3000)는 움직임 센싱 모듈(3200), 터치 센싱 모듈(3300), 통신 채널(3400), 및 제어 신호 출력부(3600)를 포함할 수 있다.
전자 장치(3000)는 마우스 모드(Mouse Mode) 또는 제스처 모드(Gesture Mode)로 동작할 수 있다. 마우스 모드 하에서, 전자 장치(3000)는 범용 마우스처럼 동작할 수 있으며, 제스처 모드 하에서, 전자 장치(3000)는 모션 인식 장치로서 동작할 수 있다.
마우스 모드 하에서, 전자 장치(3000)는 터치 센싱 모듈(3300)을 통해 감지되는 터치 동작 및 움직임 센싱 모듈(3200)을 통해 감지되는 움직임 정보 중 적어도 하나에 기반하여 마우스 동작을 결정하고 마우스 동작을 나타내는 마우스 신호를 출력할 수 있다.
예를 들어, 마우스 클릭(Click)은 전자 장치(3000)의 일면을 한번 터치함으로써 수행되고, 마우스 더블 클릭(Double Click)은 전자 장치(3000)의 일면을 기준 시간 내에 두 번 터치함으로써 수행되고, 마우스 무브(Move)는 전자 장치(3000)의 움직임 정보(예를 들어, 이하에서 설명되는 제2움직임 정보)로부터 결정되고, 마우스 스크롤(Scroll Up/Down)은 터치의 연속적인 변화(예를 들어, 스크롤 업은 전자 장치(3000)의 일면을 손가락으로 왼쪽에서 오른쪽으로 쓰는 움직임, 스크롤 다운은 전자 장치(3000)의 일면을 손가락으로 오른쪽에서 왼쪽으로 쓰는 움직임), 마우스 드래그(Drag)는 터치 시간(예를 들어, 긴 터치)과 전자 장치(3000)의 움직임 정보에 의해 결정될 수 있다. 일 실시 예에 따라, 터치 시간이 200ms 이내이면 짧은 터치로 결정되고, 터치 시간이 500ms 이상이면 긴 터치로 결정될 수 있다. 터치가 수행되는 전자 장치(3000)의 일면은 터치 센싱 모듈(3300)로서 도2a를 참조하여 설명한 정면 부분일 수 있다.
제스처 모드 하에서, 전자 장치(3000)는 센서를 이용하여 전자 장치(3000)의 움직임 정보를 획득하고, 획득된 움직임 정보에 기반하여 전자 장치(3000)의 움직임에 대응하는 모션을 결정할 수 있다. 전자 장치(3000)는 결정된 모션을 나타내는 모션 신호를 호스트 장치로 출력할 수 있다. 일 실시 예에 따라, 움직임 정보는, 객체의 움직임에 대한 특징들(예를 들어, 각속도, 가속도, 속도, 거리, 각도, 방향, 및 위치 중 적어도 하나)을 포함할 수 있다.
이하, 전자 장치(3000)의 구성 요소들의 동작과 기능에 대해 설명한다.
도3을 참조하면, 터치 센싱 모듈(3300)은 사용자의 터치를 감지할 수 있다. 예를 들어, 사용자가 링형 장치(1200)를 검지 손가락에 착용한 상태에서 사용자가 엄지 손가락으로 링형 장치(1200)의 정면 부분을 터치한 경우, 터치 센싱 모듈(3300)은 터치 동작을 감지할 수 있다. 터치 센싱 모듈(3300)에 의해 감지된 터치 동작은 통신 채널(3400)을 통해 제어 신호 출력부(3600)로 전달될 수 있다.
터치 센싱 모듈(3300)에 의해 감지되는 터치 동작은 상술한 마우스 모드 하에서의 마우스 동작을 결정하기 위해 사용될 수 있다. 또는, 터치 센싱 모듈(3300)에 의해 감지되는 터치 동작은 제스처 모드 하에서 객체의 움직임에 대응되는 모션을 결정하기 위해 사용될 수 있다. 또한, 터치 센싱 모듈(3300)에 의해 감지되는 터치 동작은 마우스 모드와 제스처 모드 사이의 전환을 위해 사용될 수 있다.
마우스 모드와 제스처 모드 사이의 전환은 터치 동작에 의해 수행될 수 있다. 예를 들어, 터치 센싱 모듈(3300)을 통해 사용자의 짧은 터치, 짧은 터치, 긴 터치가 연속적으로 감지되는 경우, 제스처 모드에서 마우스 모드로 또는 마우스 모드에서 제스처 모드로 전환될 수 있다. 또는, 터치 센싱 모듈(3300)을 통해 링형 장치(1200)의 정면 부분 중 가운데 부분을 기준 시간 이상 터치한 경우, 제스처 모드에서 마우스 모드로 또는 마우스 모드에서 제스처 모드로 전환될 수 있다.
움직임 센싱 모듈(3200)은 전자 장치(3000)의 제1움직임 정보를 획득할 수 있다. 제1움직임 정보는 마우스 모드와 제스처 모드에서 모두 사용될 수 있다. 제1움직임 정보는 가속도 센서를 통해 획득되는 가속도 데이터와 자이로 센서를 통해 획득되는 각속도 데이터 중 적어도 하나를 포함할 수 있다.
움직임 센싱 모듈(3200)은 가속도 센서(Accelerometer, 3220), 자이로 센서(Gyroscope, 3240), 지자기 센서(Magnetometer, 3260), 및 센서 융합부(3280)를 포함할 수 있다. 일 실시 예에 따른 자이로 센서(3240)는 각속도를 측정하기 위한 센서이다. 일 실시 예에 따른 가속도 센서(3220)는 가속도를 측정하고 진동, 충격 등의 동적 힘을 측정하기 위한 센서이다. 일 실시 예에 따른 지자기 센서(3260)는 지구 자기를 측정하고 그 크기를 검출하기 위한 센서이다.
자이로 센서(3240)에서 측정되는 값은 온도의 영향으로 오차가 발생하며 오차가 적분 과정에서 누적되어 최종 값이 드리프트(drift)되는 현상이 생길 수 있다. 따라서, 온도 센서도 함께 사용하여 자이로 센서(3240)의 오차를 보상할 필요가 있다.
정지 상태의 긴 시간의 관점에서 보면, 가속도 센서(3220)에 의해 계산된 기울어진 각도는 올바른 값을 나타내지만 자이로 센서(3240)는 시간이 지날수록 누적 드리프트로 인해 틀린 값을 나타낼 수 있다. 반대로, 움직이는 짧은 시간의 관점에서, 자이로 센서(3240)는 올바른 각속도를 나타내지만, 가속도 센서(3220)는 기울어진 각도와는 다른 계산 값이 도출될 수 있다. 또한, 주체가 정지된 상태에서 직진 방향으로 움직일 경우 기울기 측정이 불가능하다.
따라서, 가속도 센서(3220)와 자이로 센서(3240)를 모두 사용해서 각각의 단점을 보완 및 보상하기 위해, 칼만 필터와 같은 필터 또는 보상 및 융합 알고리즘이 적용될 수 있다. 다만, 이러한 보상 및 융합 동작에도 불구하고, 자이로 센서(3240)와 가속도 센서(3220)만을 사용할 경우, 3차원 공간에서의 좌표를 연산할 때에 오차율이 높아지므로 VR 기기와 같은 호스트 장치를 제어하기 위한 인터페이스로 사용하기에 부적절하다. 또한, 가속도 센서(3220)와 자이로 센서(3240)만을 사용할 경우, 절대 방위각이 아닌 상대 방위각을 사용하므로 움직이는 주체의 절대 위치를 파악하기 어렵다.
따라서, 움직임 센싱 모듈(3200)은 지자기 센서(3260)를 더 포함함으로써, 지자기 센서(3260)에 의해 측정되는 절대 방위각의 변화를 가속도 센서(3220)와 자이로 센서(3240)에서 측정된 데이터와 함께 연산함으로써 오차율이 낮은 데이터를 생성할 수 있다. 움직임 센싱 모듈(3200)은 지자기 센서(3260)를 포함함으로써, 자이로 센서(3240)에서 발생되는 누적 드리프트를 더욱 완벽하게 보상할 수 있으며, 자이로 센서(3240)는 지자기 센서(3260)의 자기 변화로 인해 발생되는 순간적으로 자기장이 튀는 현상(갑자기 생기는 자기장의 큰 변화)을 해결해 주어 서로의 단점을 보완 및 보상해주는 역할을 할 수 있다.
일 실시 예에 따라, 움직임 센싱 모듈(3200)은 3차원 공간 상에서의 위치 데이터를 정확하게 획득할 수 있는 9축 센서를 포함할 수 있다. 9축 센서는 가속도 3축, 자이로 2축, 지자기 3축, 온도 1축으로 구성된 센서로서, 3차원 공간 상에서 3차원 위치와 3축 방향의 회전 정도를 모두 획득할 수 있는 센서이다.
도3을 참조하면, 움직임 센싱 모듈(3200)은 센서들(3220, 3240, 3260)의 출력을 보상 및 융합하여 최적화된 위치 데이터를 생성하는 센서 융합(Sensor Fusion) 동작을 수행하기 위한 센서 융합부(3280)를 포함할 수 있다. 센서 융합부(3280)는 가속도 센서(3220), 자이로 센서(3240), 및 지자기 센서(3260)에서 각각 획득되는 데이터들을 잡음(Noise) 제거, 보상, 및 융합하여 데이터를 최적화함으로써 제1움직임 정보를 생성할 수 있다. 센서들(3220, 3240, 3260)에 의해 획득되는 로(row) 데이터를 그대로 이용하게 되면 정확한 위치 데이터를 획득할 수 없으므로 필터를 통해 정확한 위치를 추정(Position Estimation)함으로써 최적화된 위치 데이터가 생성될 수 있다. 예를 들어, 센서 융합 동작은 칼만 필터(Kalman Filter)와 같은 필터 또는 데이터 보상 및 융합 알고리즘에 기반하여 수행될 수 있다.
움직임 센싱 모듈(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) 등과 같은 다양한 인터페이스 규약 중 하나 이상을 포함할 수 있다.
제어 신호 출력부(3600)는 호스트 장치를 제어하기 위한 제어 신호를 출력할 수 있다. 제어 신호는 모션 신호와 마우스 신호를 포함할 수 있다. 제어 신호 출력부(3600)는 제1움직임 정보의 연산을 통해 제2움직임 정보를 획득할 수 있다. 제어 신호 출력부(3600)는 제스처 모드 하에서, 제2움직임 정보에 기반하여 전자 장치(3000)의 움직임에 대응되는 모션을 결정하고 결정된 모션을 나타내는 모션 신호를 출력할 수 있다. 제어 신호 출력부(3600)는 마우스 모드 하에서, 터치 센싱 모듈(3300)로부터 획득되는 터치 정보 및 제2움직임 정보 중 적어도 하나에 기반하여 마우스 동작을 결정하고 마우스 동작을 나타내는 마우스 신호를 출력할 수 있다. 제어 신호는 호스트 장치의 컨텐츠를 제어하기 위한 제어하기 위한 인터럽트(Interrupt) 신호일 수 있다. 예를 들어, 제어 신호는 특정 마우스 신호 또는 특정 모션 신호를 나타내는 비트열을 포함할 수 있다.
제어 신호 출력부(3600)는 통신 채널(3400)을 통해 수신되는 제1움직임 정보를 연산함으로써 제2움직임 정보를 생성할 수 있다. 제2움직임 정보는 전자 장치(3000)의 각도 데이터, 거리 데이터, 속도 데이터, 및 방향 데이터 중 적어도 하나를 포함할 수 있다. 전자 장치(3000)의 제2움직임 정보는 마우스 모드와 제스처 모드에서 모두 활용될 수 있다. 예를 들어, 마우스 모드 하에서, 제2움직임 정보는 전자 장치(3000)의 마우스 무브(Move) 동작을 결정하기 위해 활용될 수 있다. 제스처 모드 하에서, 제2움직임 정보는 전자 장치(3000)로부터 출력되는 다양한 모션 신호를 결정하기 위해 활용될 수 있다.
일 실시 예에 따라, 제어 신호 출력부(3600)는 프로세서(3620) 및 통신부(3640)를 포함할 수 있다.
프로세서(3620)는 움직임 센싱 모듈(3200)로부터 통신 채널(3400)을 통해 수신되는 제1움직임 정보를 연산함으로써 제2움직임 정보를 생성할 수 있다. 제2움직임 정보는 움직임에 대한 각도 데이터, 거리 데이터, 속도 데이터, 및 방향 데이터 중 적어도 하나를 포함할 수 있다. 프로세서(3620)는 기준 시간(예를 들어, 5ms) 마다 제1움직임 정보에 대한 연산을 수행함으로써 제2움직임 정보를 획득할 수 있다. 기준 시간은 30ms 이하일 수 있으나 이에 제한되지 않는다.
각도 데이터는 x축 방향, y축 방향, 및 z축 방향 각각에 대한 각도 데이터를 포함할 수 있다. 일 실시 예에 따라, 프로세서(3620)는 각속도 데이터에 적분 연산을 수행함으로써 각도 데이터를 획득할 수 있다.
속도 데이터는 x축 방향, y축 방향, 및 z축 방향 각각에 대한 속도 데이터를 포함할 수 있다. 거리 데이터는, x축 방향, y축 방향, 및 z축 방향 각각에 대한 거리 데이터를 포함할 수 있다. 일 실시 예에 따라, 프로세서(3620)는 가속도 데이터에 적분 연산을 수행함으로써 속도 데이터와 거리 데이터를 획득할 수 있다. 프로세서(3620)는 가속도 데이터에서 중력 가속도 성분을 제거하여 선형 가속도 데이터를 획득할 수 있다. 프로세서(3620)는 선형 가속도 데이터에 적분 연산을 수행함으로써 속도 데이터를 획득하고, 속도 데이터에 다시 적분 연산을 수행함으로써 거리 데이터를 획득할 수 있다.
방향 데이터는 객체의 순간 이동 방향에 관한 것으로서, x축 방향으로의 증감 여부, y축 방향으로의 증감 여부, 및 z축 방향으로의 증감 여부를 포함할 수 있다. 일 실시 예에 따라, 프로세서(3620)는 현재 거리 데이터와 이전 거리 데이터의 비교에 기반하여 방향 데이터를 포함할 수 있다. 예를 들어, 현재 거리 데이터의 x축 방향 값이 +50, y축 방향 값이 +10, z축 방향 값이 -5 이고 이전 거리 데이터의 x축 방향 값이 +60, y축 방향 값이 +15, z축 방향 값이 -10이라면, 프로세서(3620)는 현재의 움직임 방향을 x축 방향으로는 증가, y축 방향으로 증가, z축 방향으로 감소로 결정할 수 있다.
마우스 모드 하에서, 프로세서(3620)는 터치 센싱 모듈(3300)로부터 획득되는 터치 정보와 제2움직임 정보에 기반하여 대응하는 마우스 동작을 결정할 수 있다. 도4a는 일 실시 예에 따라, 마우스 모드 하에서, 전자 장치(3000)로 수행되는 마우스 동작들을 나타낸다. 마우스 동작은, 마우스 클릭, 줌 인/아웃(또는, 스크롤 업/다운), 마우스 무브, 마우스 드래그를 포함할 수 있다. 마우스 클릭은 한번 클릭(One Click), 더블 클릭(Double Click), 긴 클릭(Long Click)을 포함할 수 있다. 마우스 무브는 호스트 장치의 마우스 포인터를 움직일 수 있다.
도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)으로 결정될 수 있다.
프로세서(3620)는 마우스 모드 하에서, 사용자가 키보드를 사용하고 있을 때와 마우스를 사용하고 있을 때를 구분하고, 사용자가 키보드를 사용하고 있는 것으로 판단되면 마우스 신호를 출력하지 않을 수 있다.
제스처 모드 하에서, 프로세서(3620)는 제2움직임 정보에 기반하여, 전자 장치(3000)의 움직임과 대응하는 모션을 결정할 수 있다. 예를 들어, 프로세서(3620)는 제2움직임 정보에 기반하여, 기 정의된 모션들 중에서 전자 장치(3000)의 움직임에 대응하는 하나의 모션을 결정할 수 있다. 프로세서(3620)는 결정된 모션을 나타내는 모션 신호를 생성하고 이를 통신부(3640)를 통해 호스트 장치로 전달할 수 있다. 만약, 프로세서(3620)는 전자 장치(3000)와 호스트 장치 사이의 거리가 기준 거리보다 크거나, 전자 장치(3000)의 움직임이 기 정의된 모션들 중 어느 것에도 해당하지 않거나 무의미한 움직임으로 판단되는 경우, 예외 처리할 수 있다.
기 정의된 모션들은 무브(Move), 탭(Tap), 잡기(Grasp), 스크롤(Scroll), 스와이프(Swipe), 제스처(Gesture), 로테이션(Rotation) 등을 포함할 수 있다. 무브 모션은 전자 장치(3000)를 임의의 방향으로 이동시키는 동작으로서가상의 컨텐츠를 이동시키거나 페이지를 넘기는 동작 등을 위해 사용될 수 있다. 예를 들어, 무브 모션은 3축(x, y, z축) 방향으로의 움직임을 포함할 수 있다. 탭 모션은, 무언가를 두드리는 동작으로서, 가상의 컨텐츠를 선택하거나 클릭하기 위해 사용될 수 있다. 사용자가 탭 모션을 기준 시간 내에 두 번 연속 취함으로써, 가상의 컨텐츠를 더블 클릭할 수 있다. 탭 모션은 마우스 모드 하에서의 클릭 동작과는 별개의 동작이다.) 잡기 모션은, 떨어져 있는 두 개의 객체가 서로 맞닿는 동작으로서, 가상의 컨텐츠를 잡기 위해 사용될 수 있다. 제스처는, 텍스트, 기호, 또는 모양(예를 들어, '?' 또는 'X')을 표현하기 위한 움직임을 의미할 수 있다.
기 정의된 모션은 사용자 정의 모션에 의해 추가될 수 있다. 사용자 정의 모션이란, 전자 장치(3000)의 제조사가 아닌 사용자에 의해 정의되는 모션으로서, 사용자는 자신이 입력하는 특정한 움직임을 사용자 정의 모션으로 추가할 수 있다. 예를 들어, 사용자는 전자 장치(3000)를 손에 쥐거나 착용한 상태로 특정한 움직임을 반복하여 취하고 이를 특정한 기능 또는 모션과 매칭시킬 수 있다. 전자 장치(3000)에 사용자가 반복하여 취한 움직임 정보 및 움직임 정보에 해당하는 기능 또는 모션이 대응되어 저장될 수 있다. 예를 들어, 전자 장치(3000)를 손가락에 착용한 사용자는 무언가를 찌르는 듯한 찌르기 동작을 10회 취하고 이를 찌르기 모션으로 지정하여 저장할 수 있다. 이후, 사용자는 전자 장치(3000)를 착용하고 찌르기 동작을 취하는 경우, 프로세서(3620)는 찌르기 모션을 나타내는 모션 신호를 통신부(3640)를 통해 호스트 장치로 전달할 수 있다.
전자 장치(3000)의 움직임 정보는 기계 학습에 기반하여 특정 모션과 매칭될 수 있다. 즉, 특정 움직임 정보를 기계 학습을 통해 학습된 결정 모델에 입력하면 결정 모델은 입력된 특정 움직임 정보에 대응하는 모션 신호를 출력할 수 있다.
일 실시 예에 따라, 전자 장치(3000)는 사용자들 별로 독립적인 결정 모델을 사용할 수 있다. 사용자들이 동일한 움직임을 취하더라도 생성되는 움직임 정보가 사용자들마다 상이하기 때문이다. 예를 들어, 팔을 돌려서 원을 그리는 동작이 전자 장치(3000)에서 출력되는 특정 모션 신호 또는 호스트 장치에서의 특정 기능과 대응된다고 가정하면, 사용자들마다 상기 동작을 취하면서 생성되는 움직임 정보는 모두 동일하지 않고 사용자들 마다의 특유한 패턴을 가지고 있을 수 있기 때문이다.
도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)에 입력하고 대응하는 모션을 결정할 수 있다.
모션 신호를 결정하기 위한 결정 모델은 기계 학습에 기반하여 생성될 수 있다. 예를 들어, 제1결정 모델(DEC#1)은 제1사용자의 움직임 정보(예를 들어, 상술한 제2움직임 정보)와 특정 모션을 각각 입력과 출력으로 반복 적용하는 기계 학습을 수행함으로써 생성될 수 있다. 제1결정 모델(DEC#1)은 제1사용자가 팔을 돌려서 원을 그리는 동작으로부터 생성되는 제1사용자의 제2움직임 정보를 10회 이상 입력 받고, 입력받은 움직임 정보가 특정 모션 신호와 대응되도록 학습될 수 있다. 예를 들어, 제2결정 모델(DEC#2)은 제2사용자의 움직임 정보(예를 들어, 상술한 제2움직임 정보)와 특정 모션을 각각 입력과 출력으로 반복 적용하는 기계 학습을 수행함으로써 생성될 수 있다. 제2결정 모델(DEC#2)은 제2사용자가 팔을 돌려서 원을 그리는 동작으로부터 생성되는 제2사용자의 제2움직임 정보를 10회 이상 입력 받고, 입력 받은 움직임 정보가 특정 모션 신호와 대응되도록 학습될 수 있다.
기계 학습 기법은 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) 등을 포함할 수 있다.
모션 신호를 결정하기 위해 사용되는 기계 학습 기반의 결정 모델은 전자 장치(3000) 내의 메모리(미도시)에 저장되거나 호스트 장치에 저장될 수 있다. 또한, 결정 모델을 생성하기 위한 학습은 전자 장치(3000)에서 수행되거나 호스트 장치에서 수행될 수 있다. 일 실시 예에 따라, 결정 모델을 생성하기 위한 학습은 호스트 장치에서 수행되고, 생성된 결정 모델은 전자 장치(3000) 내의 메모리(미도시)에 저장될 수 있다. 또는, 결정 모델에 대한 학습이 전자 장치(3000)에서 수행되고 전자 장치(3000)의 메모리(미도시)에 결정 모델이 저장될 수 있다.
도7은 일 실시 예에 따라, 제스처 모드 하에서, 전자 장치(3000)로 호스트 장치를 제어하기 위한 레퍼런스 모션들을 나타낸다. 레퍼런스 모션들은 전자 장치(3000)의 제조사에 의해 기 정의된 종류의 모션들을 의미할 수 있다. 예를 들어, 사용자는 왼쪽 무브(Left Move) 모션, 오른쪽 무브(Right Move) 모션, 위쪽 무브(Up Move) 모션, 아래쪽 무브(Down Move) 모션, 동그라미(Clockwise, Counter Clockwise Circle) 모션, 포워드/백 방향 무브(Forward/Back Move) 모션을 취하고 전자 장치(3000)는 레퍼런스 모션에 대응되는 제어 신호를 출력할 수 있다.
이러한 실시 예에서, 사용자는 전자 장치(3000)를 착용한 채로 3차원 공간에서 왼쪽 무브 또는 오른쪽 무브 모션을 취함으로써 호스트 장치에서 실행 중인 워드 문서의 페이지를 넘길 수 있다. 제스처 모드 하에서, 전자 장치(3000)가 호스트 장치를 제어하기 위한 모션은 상술된 실시 예에 제한되지 않는다. 예를 들어, 전자 장치(3000)가 지원하는 모션은 탭(Tap), 잡기(Grasp), 스크롤(Scroll), 스와이프(Swipe) 등을 더 포함할 수 있다.
다시 도3을 참조하면, 프로세서(3620)는 모션 신호 또는 마우스 신호를 나타내는 제어 신호를 생성할 수 있다. 예를 들어, 프로세서(3620)는 사용자의 움직임이 왼쪽 무빙(Left Moving) 모션으로 결정되면 왼쪽 무빙(Left Moving) 모션을 나타내는 제1비트열을 제어 신호로서 생성할 수 있다. 프로세서(3620)는 사용자의 움직임이 시계 방향의 로테이션 모션으로 결정되면 시계 방향의 로테이션 모션을 나타내는 제2비트열을 제어 신호로서 생성할 수 있다. 또는, 전자 장치(2000)와 호스트 장치와 약속된 규약을 사용하는 경우, 모션들 각각에 할당된 번호를 제어 신호로서 생성할 수도 있다. 프로세서(3620)는 사용자의 움직임이 마우스 무브로 결정되면 마우스 무브를 나타내는 제3비트열을 제어 신호로서 생성할 수 있다.
프로세서(3620)는 하나의 프로세서 코어(Single Core)를 포함하거나, 복수의 프로세서 코어들(Multi-Core)을 포함할 수 있다. 예를 들어, 프로세서(3620)는 듀얼 코어(Dual-Core), 쿼드 코어(Quad-Core), 헥사 코어(Hexa-Core) 등의 멀티 코어(Multi-Core)를 포함할 수 있다. 또한, 프로세서(3620)는 내부 또는 외부에 위치한 캐시 메모리(Cache Memory)를 더 포함할 수 있다.
통신부(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)를 지원할 수 있다.
전자 장치(3000)는, 전자 장치(3000)에서 수행되는 동작에 필요한 메모리(미도시)를 포함할 수 있다. 예를 들어, 전자 장치(3000)는 센서 융합부(3280)에서의 센서 융합 동작을 수행하기 위해 필요한 메모리(미도시)를 포함할 수 있다. 또한, 전자 장치(3000)는 기 정의된 모션들 및/또는 사용자 정의 모션을 저장하기 위해 사용되거나 프로세서(3620)에서 수행되는 동작에 필요한 메모리(미도시)를 포함할 수 있다. 메모리(미도시)는 사용자 움직임에 대응하는 모션 신호를 결정하기 위해 기계 학습에 기반하여 생성된 결정 모델을 저장할 수 있다. 메모리(미도시)는, 동적 랜덤 액세스 메모리(Dynamic Random Access Memory; DRAM), 정적 랜덤 액세스 메모리(Static Random Access Memory; SRAM) 등과 같은 휘발성 메모리 장치, 플래시 메모리 장치(flash memory device), 솔리드 스테이트 드라이브(Solid State Drive; SSD) 등과 같은 비휘발성 메모리 장치를 포함할 수 있다.
전자 장치(3000)는, 전자 장치(3000)에서 수행되는 동작에 필요한 전원을 공급하기 위한 배터리(미도시)를 포함할 수 있다. 배터리(미도시)는 리튬 이온 배터리 또는 리튬 폴리머 배터리를 포함할 수 있으나 이에 제한되지 않는다. 예를 들어, 배터리(미도시)는 제어 신호 출력부(3600)에 포함될 수 있으며, 배터리(미도시)에서 출력되는 전원 중 일부가 움직임 센싱 모듈(3200)로 바이패스될 수 있다.
전자 장치(3000)는 배터리(미도시)를 충전시키기 위한 충전 단자를 포함할 수 있다. 전자 장치(3000)는 USB 타입의 충전 단자를 포함할 수 있다. 충전 단자를 통해 유입되는 전류는 배터리를 충전시키기 위해 사용될 수 있다. 일 실시 예에 따라, 도1a 및 1b의 링형 장치(1200)에 충전 단자가 존재할 수도 있으며, 크래들 장치(1400)에 충전 단자가 존재할 수도 있다. 예를 들어, 메인 모듈(1240)에 충전 단자가 존재하고, 링형 장치(1200)가 크래들 장치(1400)에 수납됨으로써 메인 모듈(1240)에 대한 충전이 수행될 수 있다.
이하, 도8 내지 9는 도3의 전자 장치(3000)에서 수행될 수 있다. 따라서, 이하 생략된 내용이라 하더라도 도3의 전자 장치(3000) 또는 호스트 장치에 관하여 기술된 내용은 도8 내지 9에도 적용될 수 있다.
도8은 일 실시 예에 따라, 전자 장치를 사용하여 컨텐츠를 제어하는 방법의 흐름도를 나타낸다.
단계 S200에서, 전자 장치는 센싱 모듈에 기반하여 객체의 제1움직임 정보를 획득할 수 있다. 객체는 전자 장치 자체를 의미할 수 있다. 센싱 모듈은 가속도 센서, 자이로 센서, 및 지자기 센서를 포함할 수 있다. 제1움직임 정보는, 객체의 움직임에 대한 가속도 데이터와 각속도 데이터를 포함할 수 있다. 예를 들어, 제1움직임 정보는, 가속도 센서를 통해 획득되는 가속도 데이터와 자이로 센서를 통해 획득되는 각속도 데이터가 센서 융합부에 의해 최적화된 데이터일 수 있다.
단계 S400에서, 전자 장치는 단계 S200에서 획득된 제1움직임 정보를 연산함으로써 제2움직임 정보를 생성할 수 있다. 제2움직임 정보는 각도 데이터, 속도 데이터, 거리 데이터, 및 방향 데이터 중 적어도 하나를 포함할 수 있다. 전자 장치는 객체가 움직이는 동안, 제2움직임 정보를 실시간으로 계산하고 획득할 수 있다. 예를 들어, 전자 장치는 기준 시간(예를 들어, 5ms) 마다 제1움직임 정보에 대한 연산을 수행함으로써 제2움직임 정보를 획득할 수 있다. 기준 시간은 30ms 이하일 수 있으나 이에 제한되지 않는다. 전자 장치는 검지의 중간 마디에 착용됨으로써, 검지의 첫 마디와 중간 마디 사이의 관절을 축으로 하여, 검지의 중간 마디가 움직인 각도와 속도를 결정할 수 있다. 또한, 전자 장치는 검지의 끝 마디에 착용됨으로써, 검지의 첫 마디와 중간 마디 사이의 관절을 축으로 하여 검지의 끝 마디가 움직인 각도와 속도를 결정할 수 있다.
단계 S500에서, 전자 장치는 현재 모드가 마우스 모드인지 제스처 모드인지 판단할 수 있다. 전자 장치는 현재 모드가 마우스 모드라면(Yes), 단계 S520에서 터치 정보를 획득하고, 단계 S540에서 제2움직임 정보와 터치 정보 중 적어도 하나에 기반하여 마우스 신호를 결정할 수 있다.
전자 장치는 현재 모드가 제스처 모드라면(No), 단계 S600에서, 전자 장치는 획득된 제2움직임 정보에 기반하여, 객체의 움직임에 대응하는 모션 신호를 결정할 수 있다. 일 실시 예에 따라, 전자 장치는 객체의 움직임에 대응하는 모션 신호를 결정할 수 있다. 일 실시 예에 따라, 전자 장치는 검지 손가락이 움직인 속도, 각도, 거리 등에 기반하여 모션을 결정할 수 있다. 모션들은 무브, 탭, 잡기, 스크롤, 스와이프, 제스처, 및 로테이션 모션 등을 포함할 수 있으나 이에 제한되지 않는다. 모션들은 사용자의 특성에 맞게 생성되는 제스처 프로파일들(LEFT/RIGHT, FORWARD/BACKWARD, CIRCLE(CLOCKWISE/COUNTERCLOCKWISE)을 포함할 수 있다. 전자 장치는 객체의 움직임이 제조사에 의해 기 정의된 모션들이나 사용자 정의 모션 중 어느 것에도 해당되지 않거나 무의미한 움직임으로 판단되는 경우, 모션 신호를 생성하지 않고 예외 처리할 수 있다.
단계 S800에서, 전자 장치는 결정된 모션 신호 또는 마우스 신호를 나타내는 제어 신호를 무선 통신 인터페이스를 통해 호스트 장치로 전달할 수 있다. 제어 신호는, 호스트 장치를 제어하기 위한 인터럽트 신호일 수 있다. 일 실시 예에 따라, 전자 장치는 객체의 위치가 컨텐츠가 재생되는 위치로부터 기준 거리 내에 있는지 판단하고, 판단 결과 기준 거리 내에 있을 때에만 제어 신호를 호스트 장치로 전달할 수 있다. 사용자가 컨텐츠로부터 멀리 떨어져 있는 경우, 사용자의 움직임이 컨텐츠를 제어하기 위한 움직임으로 보기 어렵기 때문이다.
단계 S900에서, 호스트 장치는 수신된 제어 신호에 기반하여, 컨텐츠를 제어할 수 있다. 예를 들어, 호스트 장치는, 수신된 제어 신호가 무브 모션인 경우, 게임 상의 야구공을 객체의 움직임에 비례하는 방향, 속도, 거리로 움직일 수 있다. 호스트 장치는, 수신된 제어 신호가 탭 모션인 경우, 게임 상의 아이템을 선택할 수 있다. 호스트 장치는, 수신된 제어 신호가 로테이션 모션인 경우, 게임 상의 원판을 회전시킬 수 있다. 호스트 장치는, 수신된 제어 신호가 무브 모션인 경우, 객체와 컨텐츠 사이의 거리에 따라, 컨텐츠를 줌-인 또는 줌-아웃할 수 있다. 호스트 장치는, 수신된 제어 신호가 페이지 넘기기 모션(예를 들어, LEFT MOVE, RIGHT MOVE)인 경우, 실행 중인 워드 문서 또는 프리젠테이션 문서의 페이지를 넘길 수 있다. 호스트 장치는, 수신된 제어 신호가 마우스 클릭인 경우, 현재 마우스 포지션에서 클릭 동작을 수행할 수 있다. 호스트 장치는, 수신된 제어 신호가 마우스 스크롤 업인 경우, 스크롤 업 동작을 수행할 수 있다.
도9는 일 실시 예에 따라, 전자 장치가 객체의 움직임에 대한 거리 데이터를 획득하기 위한 방법의 흐름도를 나타낸다.
단계 S420에서, 전자 장치는 가속도 데이터로부터 중력 가속도 성분을 제거하여 선형 가속도 데이터를 생성할 수 있다. 가속도 데이터에서 중력 가속도에 의한 영향을 제거함으로써, 객체의 움직임에 대한 가속도 데이터가 획득될 수 있다.
단계 S440에서, 전자 장치는 선형 가속도 데이터에 적분 연산을 수행하여 속도 데이터를 획득할 수 있다.
단계 S460에서, 전자 장치는 속도 데이터에 적분 연산을 수행하여 거리 데이터를 획득할 수 있다.
도10는 일 실시 예에 따라, 전자 장치의 블록도를 나타낸다.
도10의 전자 장치(MD)는 도1a 내지 9를 참조하여 상술한 메인 모듈(1240) 또는 전자 장치(3000)일 수 있다. 예를 들어, 전자 장치(MD)는 손가락에 착용가능한 링형 장치일 수 있다. 전자 장치(MD)는 현재 사용자의 모션을 도7의 왼쪽 무브, 오른쪽 무브, 위쪽 무브, 아래쪽 무브, 동그라미(시계 방향, 반시계 방향), 포워드/백 무브 중 하나와 매칭시키고 매칭된 모션과 대응하는 제어 신호를 출력할 수 있다. 도10을 참조하면, 전자 장치(MD)는 가속도 센서(ACC), 자이로 센서(GYR), 지자기 센서(MAG), 제1프로세서(P1), 제2프로세서(P2), 및 메모리(M)를 포함할 수 있다.
가속도 센서(ACC), 자이로 센서(GYR), 지자기 센서(MAG)는 도3을 참조하여 상술한 가속도 센서(Accelerometer, 3220), 자이로 센서(Gyroscope, 3240), 지자기 센서(Magnetometer, 3260)와 각각 동일하므로 상세한 설명은 생략한다.
전자 장치(MD)를 손에 착용한 사용자의 움직임으로부터 가속도 센서(ACC), 자이로 센서(GYR), 지자기 센서(MAG)는 실시간으로 가속도 데이터, 각속도 데이터, 지자기 데이터를 각각 획득할 수 있다. 제1프로세서(P1)는 가속도 센서(ACC), 자이로 센서(GYR), 지자기 센서(MAG)로부터 수신되는 로(raw) 데이터에 기반하여 가공된 다양한 모션 데이터 값들을 획득할 수 있다.
도10과 11을 같이 참조하면, 제1프로세서(P1)는 가속도 센서(ACC)로부터 수신한 가속도 데이터에 기반하여 3축(좌/우(Left/Right, X축), 앞/뒤(Forward/Back, Y축), 위/아래(Up/Down, Z축)) 각각에 대한 가속도 값을 실시간으로 획득할 수 있다. 이하, 가속도는 가속도 센서(ACC)로부터 수신한 가속도 데이터에서 중력 가속도 성분을 제거한 선형 가속도를 의미할 수 있다.
제1프로세서(P1)는 자이로 센서(GYR)로부터 수신한 각속도 데이터에 기반하여 3축(요(Yaw), 피치(Pitch), 롤(Roll))축 각각에 대한 각속도 값을 실시간으로 획득할 수 있다.
제1프로세서(P1)는 가속도 센서(ACC), 자이로 센서(GYR), 지자기 센서(MAG)로부터 각각 획득한 가속도 데이터, 각속도 데이터, 지자기 데이터에 기반하여 전자 장치(MD)와 지면과의 기울기 값을 3축(요(Yaw), 피치(Pitch), 롤(Roll))축 각각에 대해 실시간으로 획득(이하, 요축에 대한 기울기 값, 피치축에 대한 기울기 값, 및 롤축에 대한 기울기 값)할 수 있다.
일 실시 예에 따라, 제2프로세서(P2)는 주기적으로 또는 일정 시간 간격으로(예로서, 20ms 간격으로) 3축(Left/Right, Forward/Back, Up/Down) 각각에 대한 가속도 값, 3축(Yaw/Pitch/Roll)축 각각에 대한 각속도 값, 3축(Yaw/Pitch/Roll)축 각각에 대한 기울기 값을 획득할 수 있다. 예를 들어, 제2프로세서(P2)는 3축(Left/Right, Forward/Back, Up/Down) 각각에 대한 가속도 값, 3축(Yaw/Pitch/Roll)축 각각에 대한 각속도 값, 3축(Yaw/Pitch/Roll)축 각각에 대한 기울기 값을 제1프로세서(P1)로부터 주기적으로 또는 일정 시간 간격으로(예로서, 20ms 간격으로) 읽어올 수 있다.
제2프로세서(P2)는 제1동작 모드(제스처 레코딩 모드라고 칭함)에서, 제1프로세서(P1)로부터 일정 시간 간격으로 읽어오는 모션 데이터들에 기반하여 사용자의 현재 모션이 레퍼런스 모션들 중 어느 하나와 매칭되는지 판단하고, 어느 하나와 매칭되면 레퍼런스 모션들에 대한 현재 사용자의 제스처 프로파일(Gesture Profile)을 생성할 수 있다.
제2프로세서(P2)는 제2동작 모드(제스처 인식 모드라고 칭함)에서 사용자가 현재 취한 모션을 특정 레퍼런스 모션과 매칭시킬 수 있다. 제2동작 모드에서 제2프로세서(P2)는 사용자가 현재 취한 모션으로부터 획득되는 사용자 특성 값들을 이전에 기록된 상기 사용자의 제스처 프로파일과 비교함으로써 사용자 고유의 움직임을 반영한 정확한 매칭을 수행할 수 있다. 레퍼런스 모션(reference motion)이란, 전자 장치(MD)에서 제공되는 제어신호의 기반이 되는 기본적인 모션들로서, 레퍼런스 모션들은 왼쪽/오른쪽/위쪽/아래쪽 방향의 무브(MOVE), 포워드/백워드 방향의 무브, 또는 동그라미(CLOCKWISE/COUNTERCLOCKWISE) 모션들을 포함할 수 있다.
제스처 인식 모드에서 사용자가 취한 모션이 레퍼런스 모션들 중 하나와 매칭시키기 위해 레퍼런스 모션들 각각에 대해 사용자에 의해 정의된 기준들을 제스처 프로파일이라고 지칭할 수 있다. 예를 들어, 제스처 프로파일은 8개의 레퍼런스 모션들(왼쪽/오른쪽/위쪽/아래쪽 방향의 무브(MOVE), 포워드/백워드 방향의 무브, 동그라미(CLOCKWISE/COUNTERCLOCKWISE))에 대한 기준을 포함할 수 있다(도7 참조). 제스처 프로파일은 사용자들마다 독립적으로 생성될 수 있다. 이는 사용자들마다의 고유한 모션 특성을 반영하기 위함이다.
일 실시 예에 따라, 가이드 화면은 왼쪽 무브, 오른쪽 무브, 위쪽 무브, 아래쪽 무브, 포워드 무브, 백워드 무브, 시계 방향 동그라미, 반시계 방향 동그라미 중 적어도 하나를 반복해서 취할 것을 사용자에게 가이드할 수 있다. 예를 들어, 가이드 화면은 왼쪽 무브 동작을 5번 반복할 것을 화면을 통해 사용자에게 표시하고 사용자는 이를 따라할 수 있다(제스처 레코딩 모드에서의 레코딩 동작이라고 칭함). 전자 장치(MD)는 사용자의 반복된 모션으로부터 획득된 모션 데이터에 기반하여 레퍼런스 모션들 중 적어도 하나에 대해 제스처 프로파일을 생성하고 이를 메모리(M)에 저장할 수 있다. 도13은 일 실시 예에 따라, 왼쪽 무브 동작을 사용자에게 반복하도록 가이드하는 화면을 나타낸다.
제스처 레코딩 모드 하에서, 사용자는 레코딩 모션을 취하고 전자 장치(MD)는 레코딩 모션으로부터 획득한 3축(Left/Right, Forward/Back, Up/Down) 각각에 대한 가속도 값, 3축(Yaw/Pitch/Roll)축 각각에 대한 각속도 값, 3축(Yaw/Pitch/Roll)축 각각에 대한 기울기 값 중 적어도 하나에 기반하여 상기 레퍼런스 모션들 중 적어도 하나에 대한 제스처 프로파일을 생성하고 이를 메모리(M)에 저장할 수 있다.
제스처 인식 모드 하에서, 사용자는 인식 모션을 취하고 전자 장치(MD)는 현재 사용자가 취한 인식 모션을 레퍼런스 모션들 중 하나와 매칭시킬 수 있다.
도12는 일 실시 예에 따라, 사용자의 모션에 기반한 제어신호를 출력하기 위한 방법의 흐름도를 나타낸다. 도12는 전자 장치(MD)에 의해 수행될 수 있다.
단계 S1210에서, 전자 장치는 가속도 센서로부터 수신한 가속도 데이터에 기반하여 좌우 방향(Left/Right)의 X축, 앞뒤 방향(Forward/Backward)의 Y축, 및 위아래 방향(Up/Down)의 Z축 각각에 대한 가속도를 일정 시간 간격으로 획득할 수 있다.
단계 S1220에서, 전자 장치는 전자 장치의 자이로 센서로부터 수신한 자이로 데이터에 기반하여 요(Yaw)축, 피치(Pitch)축, 롤(Roll)축 각각에 대한 각속도를 일정 시간 간격으로 획득할 수 있다.
단계 S1230에서, 가속도 센서, 자이로 센서, 및 지자기 센서로부터 각각 획득한 가속도 데이터, 자이로 데이터, 및 지자기 데이터에 기반하여 상기 전자 장치의 요(Yaw)축, 피치(Pitch)축, 롤(Roll)축 각각에 대한 기울기를 일정 시간 간격으로 획득할 수 있다.
단계 S1210 내지 S1230의 동작은 도10을 참조하여 상술한 제2프로세서(P2)의 동작과 유사하므로 상세한 설명은 생략한다.
현재 모드가 제스처 레코딩 모드이면, 단계 S1240에서, 사용자가 레퍼런스 모션을 따라하는 레코딩 모션을 적어도 한번 취함으로써 전자 장치는 레퍼런스 모션에 대응하는 사용자의 제스처 프로파일을 생성할 수 있다.
현재 모드가 제스처 인식 모드이면, 단계 S1250에서, 사용자의 인식 모션(현재 취하는 모션)이 상기 레퍼런스 모션과 매칭되는지 판단할 수 있다.
도14는 일 실시 예에 따라, 왼쪽, 오른쪽, 위쪽, 또는 아래쪽 무브 모션에 대해 제스처 레코딩 모드 또는 제스처 인식 모드에서 전자 장치에서 수행되는 방법의 흐름도를 나타낸다. 도14의 방법의 흐름도는 전자 장치(MD) 또는 전자 장치(MD)의 제2프로세서(P2)에 의해 수행될 수 있다.
도14의 흐름도는 도12의 단계 S1240 또는 S1250의 하위 단계들일 수 있다. 예를 들어, 도12의 단계 S1240은 도14의 단계 S1410 내지 S1480들을 포함할 수 있다. 도12의 단계 S1250은 도14의 단계 S1410 내지 S1490들을 포함할 수 있다.
전자 장치(MD)는 주기적으로 또는 일정 시간 간격으로 사용자의 모션 데이터들을 획득할 수 있다. 일 실시 예에 따라, 제2프로세서(P2)는 20ms 간격으로 3축(Left/Right, Forward/Back, Up/Down) 각각에 대한 가속도 값, 3축(Yaw/Pitch/Roll)축 각각에 대한 각속도 값, 3축(Yaw/Pitch/Roll)축 각각에 대한 기울기 값을 제1프로세서(P1)로부터 획득할 수 있다. 도14의 흐름도에서 3축(Left/Right, Forward/Back, Up/Down) 각각에 대한 가속도 값, 3축(Yaw/Pitch/Roll)축 각각에 대한 각속도 값, 3축(Yaw/Pitch/Roll)축 각각에 대한 기울기 값은 제2프로세서(P2)가 제1프로세서(P1)로부터 주기적으로 읽어온 값을 의미할 수 있다.
전자 장치(MD)가 대기 상태로 돌아간다는 의미는 전자 장치(MD)가 사용자가 특정 레퍼런스 모션을 취한 것으로 최종적으로 결정하기 위해 판단하는 여러가지 조건들 중에서 어느 하나라도 조건에 벗어나면 사용자가 취하는 현재 모션을 유의미한 제스처가 아닌 것으로 판단하고 현재 수행 중인 제스처 프로파일 생성 동작(제스처 레코딩 모드에서) 또는 제스처 인식 동작(제스처 인식 모드에서)을 종료하고 다시 아이들 상태(Idle State)로 돌아간다는 의미(리셋(Reset))이다.
도14를 참조하면, 동작 모드와 상관없이 단계 S1460까지는 동일하다. 따라서, 단계 S1460까지 사용자가 취하는 '모션'이라 함은 동작 모드가 제스처 레코딩 모드이면 제스처 프로파일을 생성하기 위한 '레코딩 모션'으로 칭해지고 제스처 인식 모드이면 실제로 전자 장치가 외부로 제어 신호를 출력하기 위한 '인식 모션'으로 칭해질 수 있으나 이는 각각의 모드에서 모션을 지칭하기 위한 용어 차이일 뿐이다.
단계 S1410에서 전자 장치는 롤축에 대한 기울기 또는 피치축에 대한 기울기 중 적어도 하나에 기반하여 사용자가 모션을 취할 준비되었는지 판단할 수 있다. 예를 들어, 피치축에 대한 기울기가 제1기준 범위 이내이고 롤축에 대한 기울기가 제2기준 범위 이내이면 사용자가 왼쪽 무브 모션을 취할 준비가 된 것으로 판단(Yes)할 수 있다. 롤축에 대한 기울기 값이 제3기준 범위 이내이면 사용자가 오른쪽 무브를 취할 준비가 된 것으로 판단(Yes)할 수 있다. 롤축에 대한 기울기 값이 제3기준 범위 이내이면 사용자가 위쪽 무브를 취할 준비가 된 것으로 판단(Yes)할 수 있다. 롤축에 대한 기울기 값이 제4기준 범위 이내이면 사용자가 위쪽 무브를 취할 준비가 된 것으로 판단(Yes)할 수 있다. 롤축에 대한 기울기 값이 제5기준 범위 이내이면 사용자가 아래쪽 무브를 취할 준비가 된 것으로 판단(Yes)할 수 있다. 어떠한 모션도 취할 준비가 되지 않으면(No) 대기 상태로 돌아간다. 단계 S1410에서, 모션 준비를 판단하기 위한 롤축에 대한 기울기 또는 피치축에 대한 기울기의 기준 범위는 왼쪽 무브, 오른쪽 무브, 위쪽 무브, 아래쪽 무브마다 독립적으로 설정될 수 있다.
단계 S1420에서 전자 장치는 모션이 시작되었는지 판단할 수 있다. 예를 들어, 전자 장치는 요축에 대한 각속도가 제1기준 값 이상이면 왼쪽 무브 모션이 시작되었다고 판단할 수 있다. 전자 장치(MD)는 피치축에 대한 각속도가 제2기준 값 이상이면 오른쪽 무브 모션이 시작되었다고 판단할 수 있다. 전자 장치(MD)는 요축에 대한 각속도가 제3기준 값 이상이면 위쪽 무브 모션이 시작되었다고 판단할 수 있다. 전자 장치(MD)는 요축에 대한 각속도가 제4기준 값 이상이면 아래쪽 무브 모션이 시작되었다고 판단할 수 있다. 단계 S1420에서, 모션 시작을 판단하기 위한 기준 값은 왼쪽 무브, 오른쪽 무브, 위쪽 무브, 아래쪽 무브마다 독립적으로 설정될 수 있다. 어떠한 모션이 시작되지 않은 것으로 판단되면(No), 대기모드로 돌아간다.
단계 S1430에서, 전자 장치는 모션을 취하는 동안의 기울기가 기준 범위 이내인지 판단할 수 있다. 예를 들어, 전자 장치는 피치축에 대한 기울기와 롤축에 대한 기울기 중 적어도 하나에 기반하여 기울기가 기준 범위 이내인지 여부를 판단할 수 있다. 예를 들어, 전자 장치는 모션을 취하는 동안 피치축의 기울기가 제6기준 범위를 벗어나거나 롤축의 기울기가 제7기준 범위를 벗어난다면 왼쪽 무브 모션이 아닌 것으로 판단(No)하고 대기 상태로 돌아간다. 전자 장치(MD)는 모션을 취하는 동안 롤축의 기울기가 제8기준 범위를 벗어난다면 오른쪽 무브 모션이 아닌 것으로 판단(No)하고 대기상태로 돌아간다. 전자 장치(MD)는 모션을 취하는 동안 롤축의 기울기가 제9기준 범위를 벗어난다면 위쪽 무브 모션이 아닌 것으로 판단(No)하고 대기상태로 돌아간다. 전자 장치(MD)는 모션을 취하는 동안 롤축의 기울기가 제5기준 값 이하이거나 피치축의 기울기의 절대 값이 제6기준 값 이상이고 롤축의 기울기가 제7기준 값 이하이면 아래쪽 무브 모션이 아닌 것으로 판단(No)하고 대기상태로 돌아간다. 단계 S1430에서, 제6기준 범위, 제7기준 범위, 제8기준 범위, 제9기준 범위는 서로 독립적으로 설정될 수 있다.
단계 S1450에서, 전자 장치는 모션 완료 시점의 각속도가 기준 값 이상인지 판단할 수 있다. 예를 들어, 전자 장치는 모션 완료 시점의 요축의 각속도가 제8기준 값 미만이면 대기 상태로 돌아간다. 또는, 전자 장치는 모션 완료 시점의 피치축의 각속도가 제9기준 값 미만이면 대기 상태로 돌아간다. 단계 S1450에서, 제8기준 값, 제9기준 값은 서로 독립적으로 설정될 수 있다. 전자 장치는 요축에 대한 각속도 및 피치축에 대한 각속도 중 적어도 하나에 기반하여 모션 완료 시점을 결정할 수 있다. 예를 들어, 모션 시작(단계 S1420) 후의 요축에 대한 각속도 최대값보다 현재 요축에 대한 각속도 값이 기준 비율 이하가 되는 시점을 왼쪽 무브, 위쪽 무브, 또는 아래쪽 무브 모션이 완료된 시점으로 결정할 수 있다. 예를 들어, 모션 시작(단계 S1420) 후의 피치축에 대한 각속도 최대값보다 현재 피치축에 대한 각속도 값이 기준 비율 이하가 되는 시점을 오른쪽 무브 모션이 완료되는 시점으로 결정할 수 있다.
단계 S1460에서, 전자 장치는 모션 시작 시점(단계 S1420)부터 완료 시점까지 획득된 가속도 값들을 누적한 값이 기준 값 이상인지 판단할 수 있다. 이는 사용자의 모션의 크기를 유추함으로써 모션이 이전까지의 모든 조건을 만족하였더라도 모션의 크기가 기준 값 이상일 때에만 유효한 모션으로 판단하기 위함이다. 예를 들어, 전자 장치는 X축 방향의 가속도 값들을 누적한 값이 제10기준 값 이상일 때에만 현재까지의 왼쪽 무브 모션이 유효한 것으로 판단할 수 있다. 전자 장치는 Z축 방향의 가속도 값들의 누적값이 제11기준 값 이상일 때에만 현재까지의 오른쪽 무브 모션이 유효한 것으로 판단할 수 있다. 전자 장치는 X축 방향의 가속도 값들을 누적한 값이 제12기준 값 이상일 때에만 현재까지의 위쪽 무브 모션이 유효한 것으로 판단할 수 있다. 전자 장치는 X축 방향의 가속도 값들을 누적한 값이 제13기준 값 이상일 때에만 현재까지의 아래쪽 무브 모션이 유효한 것으로 판단할 수 있다. 단계 S1460에서, 제10기준 값, 제11기준 값, 제12기준 값, 제13기준 값은 서로 독립적으로 설정될 수 있다. 모션이 유효하지 않은 것으로 판단(No)되면 전자 장치는 대기상태로 돌아간다.
제스처 레코딩 모드는 사용자의 현재 모션이 특정 레퍼런스 모션과 매칭되면 제스처 인식을 위해 사용할 제스처 프로파일을 생성하는 모드이고, 제스처 인식 모드는 사용자의 현재 모션이 특정 레퍼런스 모션과 매칭되면 추가적으로 기 생성된 제스처 프로파일을 이용해 사용자 고유 특성을 반영한 최종적인 제스처 인식을 수행하는 모드이다. 현재 동작 모드가 제스처 레코딩 모드(Yes)이면 단계 S1480가 수행되고, 제스처 인식 모드이면(No) 단계 S1490이 수행된다.
단계 S1480에서, 전자 장치는 레코딩 모션 시작 후 완료까지 획득된 모션 데이터들에 기반하여 현재 모션을 취하고 있는 사용자에게 고유한 사용자 특성 값들을 획득하고 이를 메모리에 저장할 수 있다. 전자 장치는 왼쪽 무브, 오른쪽 무브, 위쪽 무브, 아래쪽 무브마다의 적어도 하나의 사용자 특성 값을 획득할 수 있다. 예를 들어, 동일한 가이드 영상(도13와 같은 왼쪽 무브)을 보고 사용자들이 모션을 취했더라도 사용자들마다 획득되는 데이터들이 모두 동일할 수 없기 때문에 사용자들 각각의 고유한 특성을 제스처 프로파일에 반영하기 위함이다. 전자 장치는 제스처 레코딩 모드에서 현재 사용자 특성 값을 획득하고 저장해두고 나중에 제스처 인식 모드에서 사용자로부터 획득되는 사용자 특성 값과 미리 저장된 사용자 특성 값을 비교함으로써 제스처 인식률을 높일 수 있다.
예를 들어, 제스처 레코딩 모드에서 제1사용자가 취한 왼쪽 무브 모션에 의해 획득된 사용자 특성 값은 제2사용자가 취한 왼쪽 무브 모션에 의해 획득된 사용자 특성 값과 상이할 수 있다. 예를 들어, 제1사용자가 왼쪽 무브 모션 시작 후 완료할때까지 획득된 롤축에 대한 각속도 값들 중 최대값을 요축에 대한 각속도 값들 중 최대값으로 나눈 값인 기준 회전량이 제1사용자의 왼쪽 무브 모션에 대한 사용자 특성 값으로 메모리에 저장될 수 있다. 제1사용자가 왼쪽 무브 모션 시작 후 완료때까지의 피치축에 대한 각속도 값들 중 최대값을 요축에 대한 각속도 값들 중 최대값으로 나눈 값인 기준 간섭량이 제1사용자의 왼쪽 무브에 대한 사용자 특성 값으로 상기 메모리에 저장할 수 있다.
예를 들어, 제스처 레코딩 모드에서 제1사용자가 취한 오른쪽 무브 모션에 의해 획득된 사용자 특성 값은 제2사용자가 취한 오른쪽 무브 모션에 의해 획득된 사용자 특성 값과 상이할 수 있다. 예를 들어, 제1사용자가 오른쪽 무브 모션 시작 후 완료할때까지 획득된 롤축에 대한 각속도 값들 중 최대값을 피치축에 대한 각속도 값들 중 최대값으로 나눈 값인 기준 회전량이 제1사용자의 오른쪽 무브에 대한 사용자 특성 값으로 메모리에 저장될 수 있다. 제1사용자가 오른쪽 무브 모션 시작 후 완료때까지의 요축에 대한 각속도 값들 중 최대값을 피치축에 대한 각속도 값들 중 최대값으로 나눈 값인 기준 간섭량이 제1사용자의 오른쪽 무브에 대한 사용자 특성 값으로 상기 메모리에 저장할 수 있다.
예를 들어, 제스처 레코딩 모드에서 제1사용자가 취한 위쪽 무브 모션에 의해 획득된 사용자 특성 값은 제2사용자가 취한 위쪽 무브 모션에 의해 획득된 사용자 특성 값과 상이할 수 있다. 예를 들어, 제1사용자가 위쪽 무브 모션 시작 후 완료할때까지 획득된 롤축에 대한 각속도 값들 중 최대값을 요축에 대한 각속도 값들 중 최대값으로 나눈 값인 기준 회전량이 제1사용자의 위쪽 무브에 대한 사용자 특성 값으로 메모리에 저장될 수 있다. 제1사용자가 위쪽 무브 모션 시작 후 완료때까지의 피치축에 대한 각속도 값들 중 최대값을 요축에 대한 각속도 값들 중 최대값으로 나눈 값인 기준 간섭량이 제1사용자의 위쪽 무브에 대한 사용자 특성 값으로 상기 메모리에 저장할 수 있다.
예를 들어, 제스처 레코딩 모드에서 제1사용자가 취한 아래쪽 무브 모션에 의해 획득된 사용자 특성 값은 제2사용자가 취한 아래쪽 무브 모션에 의해 획득된 사용자 특성 값과 상이할 수 있다. 예를 들어, 제1사용자가 아래쪽 무브 모션 시작 후 완료할때까지 획득된 롤축에 대한 각속도 값들 중 최대값을 요축에 대한 각속도 값들 중 최대값으로 나눈 값인 기준 회전량이 제1사용자의 아래쪽 무브에 대한 사용자 특성 값으로 메모리에 저장될 수 있다. 제1사용자가 아래쪽 무브 모션 시작 후 완료때까지의 피치축에 대한 각속도 값들 중 최대값을 요축에 대한 각속도 값들 중 최대값으로 나눈 값인 기준 간섭량이 제1사용자의 아래쪽 무브에 대한 사용자 특성 값으로 상기 메모리에 저장할 수 있다.
제스처 레코딩 모드에서, 사용자가 하나의 레코딩 모션을 여러 횟수 반복하여 취함으로써 제스처 프로파일이 생성될 수 있다. 일 실시 예에 따라, 단계 S1410 내지 S1480은 여러번(예를 들어, 5회) 수행되고 각 횟수마다 획득된 기준 회전량과 기준 간섭량 값들에 기반하여 사용자 특성 값이 결정될 수 있다. 단계 S1410 내지 S1480이 모두 수행되어야 한번의 레코딩 횟수로 간주될 수 있다. 예를 들어, 복수 횟수에 걸쳐 획득된 기준 회전량과 기준 간섭량들의 평균, 최소, 최대, 중간 값 등이 최종 기준 회전량과 최종 기준 간섭량으로 메모리에 저장될 수 있다.
회전량은 왼쪽, 오른쪽, 위쪽, 또는 아래쪽 무브 모션을 취할때 사용자마다 손목이 뒤틀리는 정도를 의미하고 간섭량은 움직임의 메인 축이 아닌 다른 축의 움직임 정도를 의미한다. 회전량과 간섭량은 사용자마다 다르므로 사용자 특성 값으로 사용될 수 있다.
단계 S1490에서, 현재 동작 모드가 제스처 레코딩 모드가 아니라면(No), 즉 제스처 인식 모드라면 사용자가 취한 모션으로부터 현재 획득된 사용자 특성 값을 미리 저장된 사용자 특성 값과 비교할 수 있다. 전자 장치는 현재 사용자가 제1사용자라면 제1사용자의 인식 모션으로부터 획득된 회전량과 간섭량을 미리 저장된 제1사용자의 기준 회전량과 기준 간섭량과 각각 비교할 수 있다. 전자 장치는 현재 사용자가 제2사용자라면 제2사용자의 인식 모션으로부터 획득된 회전량과 간섭량을 미리 저장된 제2사용자의 기준 회전량과 기준 간섭량과 각각 비교할 수 있다.
비교 결과에 기반하여 인식 모션과 레퍼런스 모션의 매칭 여부가 결정될 수 있다. 현재 획득된 회전량이 기준 회전량과 소정의 오차 범위 이내이고, 현재 획득된 간섭량이 기준 간섭량과 소정의 오차 범위 이내이면 인식 모션을 왼쪽 무브 ,오른쪽 무브, 위쪽 무브, 또는 아래쪽 무브로 매칭(또는, 인식)할 수 있다.
이하, 왼쪽 무브 모션의 제스처 레코딩 방법과 제스처 인식 방법에 대해 도15를 참조하여 상세히 설명한다.
도15의 흐름도는 도14의 흐름도의 일 실시 예이다. 도15의 단계 S1510, S1520, S1530, S1550, S1560, S1580, 및 S1590은 도14의 단계 S1410, S1420, S1430, S1450, S1460, S1480, 및 S1490에서 각각 수행될 수 있다. 이하, 언급되는 기준 값이나 기준 범위는 반복된 실험에 의해 획득된 것이고 본 발명의 실시 예는 아래의 기준 값이나 기준 범위에 한정해석되지 않는다.
전자 장치는 모션 준비를 판단하는 단계(S1510)에서 피치축에 대한 기울기가 -30°보다 크거나 같고 +30°보다 작거나 같고 롤축에 대한 기울기가 -25°보다 크거나 같고 +35°보다 작거나 같으면 왼쪽 무브 모션에 대한 준비가 된 것으로 판단(Yes)하고 그렇지 않으면(No) 대기 상태로 돌아간다.
전자 장치는 모션 시작을 판단하는 단계(S1520)에서 요축에 대한 각속도가 183 degree/sec 이상이면 왼쪽 무브 모션이 시작된 것으로 판단(Yes)하고 그렇지 않으면(No) 대기 상태로 돌아간다.
전자 장치는 모션의 기울기 조건을 판단하는 단계(S1530)에서 피치축에 대한 기울기가 -90°보다 크거나 같고 +90°보다 작거나 같아야 왼쪽 무브 모션이 계속되고 있는 것으로 판단한다. 또한, 전자 장치는 롤축에 대한 기울기가 -60°보다 크거나 같고 +90°보다 작거나 같아야만 왼쪽 무브 모션이 계속되고 있는 것으로 판단한다. 따라서, 전자 장치는 피치축에 대한 기울기가 -90°보다 작거나 +90°보다 크면 대기 상태로 돌아간다. 또는, 전자 장치는 롤 축에 대한 기울기가 -60°보다 작거나 +90°보다 크면 대기 상태로 돌아간다.
전자 장치는 모션의 완료 시점에 대한 각속도를 판단하는 단계(S1550)에서, 요축에 대한 각속도가 305 degree/sec 이상이어야 왼쪽 무브 모션이 완료된 것으로 판단할 수 있다. 모션 시작(단계 S1510) 후의 요축에 대한 각속도 최대값보다 현재 요축에 대한 각속도 값이 기준 비율 이하(예로서, 30%)가 되는 시점이 왼쪽 무브 모션이 완료된 시점으로 결정될 수 있다.
전자 장치는 모션이 유효한지 판단하는 단계(S1560)에서, X축 방향의 가속도 값들의 누적값이 4.88 m/s2 이상이어야 왼쪽 무브 모션이 유효한 것으로 판단할 수 있다.
단계 S1580와 S1590은 도14를 참조하여 상술한 단계 S1480과 S1490의 왼쪽 무브 모션에 대한 설명과 동일하므로 설명은 생략한다. 일 실시 예에 따라, 단계 S1590에서의 회전량에 대한 허용 오차 범위는 기준 회전량의 ±1.5배 이하고, 간섭량에 대한 허용 오차 범위는 기준 간섭량의 ±0.6배 일 수 있으나 이에 제한되지 않는다.
이하, 오른쪽 무브 모션의 제스처 레코딩 방법과 제스처 인식 방법에 대해 도16을 다시 참조하여 상세히 설명한다.
도16의 흐름도는 도14의 흐름도의 일 실시 예이다. 도16의 단계 S1610, S1620, S1630, S1650, S1660, S1680, 및 S1690은 도14의 단계 S1410, S1420, S1430, S1450, S1460, S1480, 및 S1490에서 각각 수행될 수 있다. 이하, 언급되는 기준 값이나 기준 범위는 반복된 실험에 의해 획득된 것이고 본 발명의 실시 예는 아래의 기준 값이나 기준 범위에 한정해석되지 않는다.
전자 장치는 모션 준비를 판단하는 단계(S1610)에서 롤축에 대한 기울기가 0°보다 크거나 같고 90°보다 작거나 같으면 오른쪽 무브 모션에 대한 준비가 된 것으로 판단(Yes)하고 그렇지 않으면(No) 대기 상태로 돌아간다.
전자 장치는 모션 시작을 판단하는 단계(S1620)에서 피치축에 대한 각속도가 12 degree/sec이상면 오른쪽 무브 모션이 시작된 것으로 판단(Yes)하고 그렇지 않으면(No) 대기 상태로 돌아간다.
전자 장치는 모션의 기울기 조건을 판단하는 단계(S1630)에서 롤축에 대한 기울기가 -20°보다 크거나 같고 +90°보다 작거나 같아야 오른쪽 무브 모션이 계속되고 있는 것으로 판단한다. 따라서, 전자 장치는 롤축에 대한 기울기가 -20°보다 작거나 +90°보다 크면 대기 상태로 돌아간다.
전자 장치는 모션의 완료 시점에 대한 각속도를 판단하는 단계(S1650)에서, 피치축에 대한 각속도가 20 degree/sec 이상이어야 오른쪽 무브 모션이 완료된 것으로 판단할 수 있다. 모션 시작(단계 S1610) 후의 피치축에 대한 각속도 최대값보다 현재 피치축에 대한 각속도 값이 기준 비율 이하(예로서, 30%)가 되는 시점을 오른쪽 무브 모션이 완료된 시점으로 결정될 수 있다.
전자 장치는 모션이 유효한지 판단하는 단계(S1660)에서, Z축 방향의 가속도 값들의 누적값이 2.44 m/s2이상이어야 오른쪽 무브 모션이 유효한 것으로 판단할 수 있다.
단계 S1680와 S1690은 도14를 참조하여 상술한 단계 S1480과 S1490의 오른쪽 무브 모션에 대한 설명과 동일하므로 설명은 생략한다. 일 실시 예에 따라, 단계 S1690에서의 회전량에 대한 허용 오차 범위는 기준 회전량의 ±1.5배 이하고, 간섭량에 대한 허용 오차 범위는 기준 간섭량의 -1배 이상 +0.8배 이하일 수 있으나 이에 제한되지 않는다.
이하, 위쪽 무브 모션의 제스처 레코딩 방법과 제스처 인식 방법에 대해 도17을 참조하여 상세히 설명한다.
도17의 흐름도는 도14의 흐름도의 일 실시 예이다. 도17의 단계 S1710, S1720, S1730, S1750, S1760, S1780, 및 S1790은 도14의 단계 S1410, S1420, S1430, S1450, S1460, S1480, 및 S1490에서 각각 수행될 수 있다. 이하, 언급되는 기준 값이나 기준 범위는 반복된 실험에 의해 획득된 것이고 본 발명의 실시 예는 아래의 기준 값이나 기준 범위에 한정해석되지 않는다.
전자 장치는 모션 준비를 판단하는 단계(S1710)에서 롤축에 대한 기울기가 -90°보다 크거나 같고 -15°보다 작거나 같으면 위쪽 무브 모션에 대한 준비가 된 것으로 판단(Yes)하고 그렇지 않으면(No) 대기 상태로 돌아간다.
전자 장치는 모션 시작을 판단하는 단계(S1720)에서 요축에 대한 각속도가 12 degree/sec이상면 위쪽 무브 모션이 시작된 것으로 판단(Yes)하고 그렇지 않으면(No) 대기 상태로 돌아간다.
전자 장치는 모션의 기울기 조건을 판단하는 단계(S1730)에서 롤축에 대한 기울기가 +30°보다 작거나 같아야 위쪽 무브 모션이 계속되고 있는 것으로 판단한다. 따라서, 전자 장치는 롤축에 대한 기울기가 +30°보다 크면 대기 상태로 돌아간다.
전자 장치는 모션의 완료 시점에 대한 각속도를 판단하는 단계(S1750)에서, 요축에 대한 각속도가 23 degree/sec 이상이어야 위쪽 무브 모션이 완료된 것으로 판단할 수 있다. 모션 시작(단계 S1710) 후의 요축에 대한 각속도 최대값보다 현재 요축에 대한 각속도 값이 기준 비율 이하(예로서, 30%)가 되는 시점을 위쪽 무브 모션이 완료된 시점으로 결정될 수 있다.
전자 장치는 모션이 유효한지 판단하는 단계(S1760)에서, X축 방향의 가속도 값들의 누적값이 0.92 m/s2이상이어야 위쪽 무브 모션이 유효한 것으로 판단할 수 있다.
단계 S1780와 S1790은 도14를 참조하여 상술한 단계 S1480과 S1490의 위쪽 무브 모션에 대한 설명과 동일하므로 설명은 생략한다. 일 실시 예에 따라, 단계 S1790에서의 회전량에 대한 허용 오차 범위는 기준 회전량의 ±1.3배 이하고, 간섭량에 대한 허용 오차 범위는 기준 간섭량의 ±0.6배 이하일 수 있으나 이에 제한되지 않는다.
이하, 아래쪽 무브 모션의 제스처 레코딩 방법과 제스처 인식 방법에 대해 도17을 참조하여 상세히 설명한다.
도18의 흐름도는 도14의 흐름도의 일 실시 예이다. 도18의 단계 S1810, S1820, S1830, S1850, S1860, S1880, 및 S1890은 도14의 단계 S1410, S1420, S1430, S1450, S1460, S1480, 및 S1490에서 각각 수행될 수 있다. 이하, 언급되는 기준 값이나 기준 범위는 반복된 실험에 의해 획득된 것이고 본 발명의 실시 예는 아래의 기준 값이나 기준 범위에 한정해석되지 않는다.
전자 장치는 모션 준비를 판단하는 단계(S1810)에서 롤축에 대한 기울기가 10°보다 크거나 같고 +90°보다 작거나 같으면 아래쪽 무브 모션에 대한 준비가 된 것으로 판단(Yes)하고 그렇지 않으면(No) 대기 상태로 돌아간다.
전자 장치는 모션 시작을 판단하는 단계(S1820)에서 요축에 대한 각속도가 12 degree/sec이상이면 아래쪽 무브 모션이 시작된 것으로 판단(Yes)하고 그렇지 않으면(No) 대기 상태로 돌아간다.
전자 장치는 모션의 기울기 조건을 판단하는 단계(S1830)에서 롤축에 대한 기울기가 -30° 이하이거나, 피치축에 대한 기울기의 절대값이 +120° 이상이고 롤축에 대한 기울기가 +30° 이하(No)이면 대기 상태로 돌아간다. 그렇지 않으면(Yes) 방법은 단계 S1850으로 넘어간다.
전자 장치는 모션의 완료 시점에 대한 각속도를 판단하는 단계(S1850)에서, 요축에 대한 각속도가 23 degree/sec 이상이어야 아래쪽 무브 모션이 완료된 것으로 판단할 수 있다. 모션 시작(단계 S1810) 후의 요축에 대한 각속도 최대값보다 현재 요축에 대한 각속도 값이 기준 비율 이하(예로서, 30%)가 되는 시점을 위쪽 무브 모션이 완료된 시점으로 결정될 수 있다.
전자 장치는 모션이 유효한지 판단하는 단계(S1860)에서, X축 방향의 가속도 값들의 누적값이 0.92 m/s2이상이어야 아래쪽 무브 모션이 유효한 것으로 판단할 수 있다.
단계 S1880와 S1890은 도14를 참조하여 상술한 단계 S1480과 S1490의 아래쪽 무브 모션에 대한 설명과 동일하므로 설명은 생략한다. 일 실시 예에 따라, 단계 S1890에서의 회전량에 대한 허용 오차 범위는 기준 회전량의 ±1.3배 이하고, 간섭량에 대한 허용 오차 범위는 기준 간섭량의 ±0.6배 이하일 수 있으나 이에 제한되지 않는다.
한편, 상술한 방법들은 컴퓨터로 읽을 수 있는 기록 매체에 컴퓨터가 읽을 수 있는 코드로서 구현하는 것이 가능하다. 컴퓨터가 읽을 수 있는 기록 매체는 컴퓨터 시스템에 의하여 읽혀질 수 있는 데이터가 저장되는 모든 종류의 기록장치를 포함한다. 컴퓨터가 읽을 수 있는 기록 매체의 예로는 ROM, RAM, CD-ROM, 자기 테이프, 플로피디스크, 광 데이터 저장장치 등이 있다. 또한, 컴퓨터가 읽을 수 있는 기록 매체는 네트워크로 연결된 컴퓨터 시스템에 분산되어, 분산방식으로 프로세서가 읽을 수 있는 코드가 저장되고 실행될 수 있다.
위 설명들은 본 발명을 구현하기 위한 예시적인 구성들 및 동작들을 제공하도록 의도된다. 본 발명의 기술 사상은 위에서 설명된 실시 예들뿐만 아니라, 위 실시 예들을 단순하게 변경하거나 수정하여 얻어질 수 있는 구현들도 포함할 것이다. 또한, 본 발명의 기술 사상은 위에서 설명된 실시 예들을 앞으로 용이하게 변경하거나 수정하여 달성될 수 있는 구현들도 포함할 것이다.

Claims (13)

  1. 전자 장치에서 사용자의 왼쪽 무브 모션에 기반한 제어신호를 출력하기 위한 방법에 있어서,
    상기 전자 장치의 가속도 센서로부터 수신한 가속도 데이터에 기반하여 좌우 방향의 X축, 위아래 방향의 Y축, 및 앞뒤 방향의 Z축 각각에 대한 가속도 값을 획득하는 단계;
    상기 전자 장치의 자이로 센서로부터 수신한 자이로 데이터에 기반하여 요(Yaw)축, 피치(Pitch)축, 및 롤(Roll)축 각각에 대한 각속도 값을 획득하는 단계;
    상기 가속도 센서, 상기 자이로 센서, 및 상기 전자 장치의 지자기 센서로부터 각각 획득한 가속도 데이터, 자이로 데이터, 및 지자기 데이터에 기반하여 요(Yaw)축, 피치(Pitch)축, 롤(Roll)축 각각에 대한 기울기 값을 획득하는 단계;
    현재 동작 모드가 제스처 레코딩 모드이면, 상기 사용자가 레퍼런스 모션을 취하는 레코딩 모션을 적어도 한번 취함으로써 상기 레퍼런스 모션에 대응하는 상기 사용자의 제스처 프로파일을 생성하는 단계; 및
    현재 동작 모드가 제스처 인식 모드이면, 상기 사용자의 인식 모션이 상기 레퍼런스 모션과 매칭되는지 판단하는 단계를 포함하고,
    상기 레퍼런스 모션은 왼쪽 무브이고,
    상기 사용자의 제스처 프로파일을 생성하는 단계는,
    상기 전자 장치의 피치축에 대한 기울기가 제1기준 범위 이내이고 롤축에 대한 기울기가 제2기준 범위 이내이면 상기 레코딩 모션이 준비된 것으로 판단하는 제1단계;
    상기 레코딩 모션이 준비되었으면, 요축에 대한 각속도가 제1기준 값 이상이면 레코딩 모션이 시작된 것으로 판단하는 제2단계;
    상기 레코딩 모션이 시작되면, 상기 레코딩 모션의 롤축에 대한 기울기가 제3기준 범위를 벗어나거나 피치축에 대한 기울기가 제4기준 범위를 벗어나면 제스처 프로파일 생성을 종료하고 대기 상태로 돌아가는 제3단계;
    상기 레코딩 모션의 완료 시점의 요축에 대한 각속도가 제2기준 값 미만이면 제스처 프로파일 생성을 종료하고 대기 상태로 돌아가는 제4단계;
    상기 레코딩 모션의 시작에서 완료 시점까지의 상기 X축에 대한 선형 가속도의 누적값이 제3기준 값 미만이면 상기 레코딩 모션이 유효하지 않은 것으로 판단하여 상기 제스처 프로파일 생성을 종료하고 대기모드로 돌아가는 제5단계; 및
    상기 레코딩 모션의 시작 후 상기 완료 시점까지의 롤축에 대한 각속도 최대값을 요축에 대한 각속도 최대값으로 나눈 값인 기준 회전량과 상기 레코딩 모션의 시작 후 상기 완료 시점까지의 피치축에 대한 각속도 최대값을 요축에 대한 각속도 최대값으로 나눈 값인 기준 간섭량을 상기 사용자의 특성 값들로서 메모리에 저장하는 제6단계를 포함하고,
    상기 레코딩 모션의 완료 시점은 현재 요축에 대한 각속도 값이 레코딩 모션 시작 후의 요축에 대한 각속도 최대값의 기준 비율 이하가 되는 시점으로 결정되는 사용자의 왼쪽 무브 모션에 기반한 제어신호를 출력하기 위한 방법.
  2. 제1항에 있어서,
    상기 사용자의 제스처 프로파일은 상기 사용자가 상기 레코딩 모션을 여러 횟수 취함으로써 생성되고,
    각 횟수는 상기 제1단계부터 상기 제6단계까지의 동작이 모두 완료되어야 카운트되고,
    상기 기준 회전량은 여러 횟수에 걸쳐 각각 획득된 기준 회전량들에 기반하여 결정되고,
    상기 기준 간섭량은 여러 횟수에 걸쳐 각각 획득된 기준 간섭량들에 기반하여 결정되는 사용자의 왼쪽 무브 모션에 기반한 제어신호를 출력하기 위한 방법.
  3. 제1항에 있어서,
    상기 사용자의 인식 모션이 상기 레퍼런스 모션과 매칭되는지 판단하는 단계는,
    상기 전자 장치의 피치축에 대한 기울기가 상기 제1기준 범위 이내이고 롤축에 대한 기울기가 상기 제2기준 범위 이내이면 상기 인식 모션이 준비된 것으로 판단하는 제7단계;
    상기 인식 모션이 준비되었으면, 요축에 대한 각속도가 상기 제1기준 값 이상이면 상기 인식 모션이 시작된 것으로 판단하는 제8단계;
    상기 인식 모션이 시작되면, 상기 레코딩 모션의 롤축에 대한 기울기가 상기 제3기준 범위를 벗어나거나 피치축에 대한 기울기가 상기 제4기준 범위를 벗어나면 인식을 종료하고 대기 상태로 돌아가는 제9단계;
    상기 인식 모션의 완료 시점의 요축에 대한 각속도가 상기 제2기준 값 미만이면 인식을 종료하고 대기 상태로 돌아가는 제10단계;
    상기 인식 모션의 시작에서 완료 시점까지의 상기 X축에 대한 선형 가속도의 누적값이 상기 제3기준 값 미만이면 상기 인식 모션이 유효하지 않은 것으로 판단하여 인식을 종료하고 대기모드로 돌아가는 제11단계; 및
    상기 인식 모션의 시작 후 상기 완료 시점까지의 롤축에 대한 각속도 최대값을 요축에 대한 각속도 최대값으로 나눈 값인 현재 회전량과 상기 인식 모션의 시작 후 상기 완료 시점까지의 피치축에 대한 각속도 최대값을 요축에 대한 각속도 최대값으로 나눈 값인 현재 간섭량을 상기 메모리에 기 저장된 상기 기준 회전량 및 상기 기준 간섭량과 각각 비교하는 제12단계를 포함하고,
    상기 비교 결과에 기반하여 상기 인식 모션과 상기 레퍼런스 모션의 매칭 여부가 결정되고,
    상기 인식 모션의 완료 시점은 현재 요축에 대한 각속도 값이 인식 모션 시작 후의 요축에 대한 각속도 최대값의 기준 비율 이하가 되는 시점으로 결정되는 사용자의 모션에 기반한 제어신호를 출력하기 위한 사용자의 왼쪽 무브 모션에 기반한 제어신호를 출력하기 위한 방법.
  4. 전자 장치에서 사용자의 오른쪽 무브 모션에 기반한 제어신호를 출력하기 위한 방법에 있어서,
    상기 전자 장치의 가속도 센서로부터 수신한 가속도 데이터에 기반하여 좌우 방향의 X축, 위아래 방향의 Y축, 및 앞뒤 방향의 Z축 각각에 대한 가속도 값을 획득하는 단계;
    상기 전자 장치의 자이로 센서로부터 수신한 자이로 데이터에 기반하여 요(Yaw)축, 피치(Pitch)축, 롤(Roll)축 각각에 대한 각속도 값을 획득하는 단계;
    상기 가속도 센서, 상기 자이로 센서, 및 상기 전자 장치의 지자기 센서로부터 각각 획득한 가속도 데이터, 자이로 데이터, 및 지자기 데이터에 기반하여 요(Yaw)축, 피치(Pitch)축, 롤(Roll)축 각각에 대한 기울기 값을 획득하는 단계;
    현재 동작 모드가 제스처 레코딩 모드이면, 상기 사용자가 레퍼런스 모션을 취하는 레코딩 모션을 적어도 한번 취함으로써 상기 레퍼런스 모션에 대응하는 상기 사용자의 제스처 프로파일을 생성하는 단계; 및
    현재 동작 모드가 제스처 인식 모드이면, 상기 사용자의 인식 모션이 상기 레퍼런스 모션과 매칭되는지 판단하는 단계를 포함하고,
    상기 레퍼런스 모션은 오른쪽 무브이고,
    상기 사용자의 제스처 프로파일을 생성하는 단계는,
    상기 전자 장치의 롤축에 대한 기울기 값이 제1기준 범위 이내이면 상기 레코딩 모션이 준비된 것으로 판단하는 제1단계;
    상기 레코딩 모션이 준비되었으면, 피치축에 대한 각속도가 제1기준 값 이상이면 레코딩 모션이 시작된 것으로 판단하는 제2단계;
    상기 레코딩 모션이 시작되면, 상기 레코딩 모션의 롤축에 대한 기울기가 제2기준 범위를 벗어나면 제스처 프로파일 생성을 종료하고 대기 상태로 돌아가는 제3단계;
    상기 레코딩 모션의 완료 시점의 피치축에 대한 각속도가 제2기준 값 미만이면 제스처 프로파일 생성을 종료하고 대기 상태로 돌아가는 제4단계;
    상기 레코딩 모션의 시작에서 완료 시점까지의 상기 Z축에 대한 선형 가속도의 누적값이 제3기준 값 미만이면 상기 레코딩 모션이 유효하지 않은 것으로 판단하여 제스처 프로파일 생성을 종료하고 대기모드로 돌아가는 제5단계; 및
    상기 레코딩 모션의 시작 후 상기 완료 시점까지의 롤축에 대한 각속도 최대값을 피치축에 대한 각속도 최대값으로 나눈 값인 기준 회전량과 상기 레코딩 모션의 시작 후 상기 완료 시점까지의 요축에 대한 각속도 최대값을 피치축에 대한 각속도 최대값으로 나눈 값인 기준 간섭량을 상기 사용자의 특성 값들로서 메모리에 저장하는 제6단계를 포함하고,
    상기 레코딩 모션의 완료 시점은 현재 피치축에 대한 각속도 값이 상기 레코딩 모션 시작 후의 피치축에 대한 각속도 최대값의 기준 비율 이하가 되는 시점으로 결정되는 사용자의 오른쪽 무브 모션에 기반한 제어신호를 출력하기 위한 방법.
  5. 제4항에 있어서,
    상기 사용자의 제스처 프로파일은 상기 사용자가 상기 레코딩 모션을 여러 횟수 취함으로써 생성되고,
    각 횟수는 상기 제1단계부터 상기 제6단계까지의 동작이 모두 완료되어야 카운트되고,
    상기 기준 회전량은 여러 횟수에 걸쳐 각각 획득된 기준 회전량들에 기반하여 결정되고,
    상기 기준 간섭량은 여러 횟수에 걸쳐 각각 획득된 기준 간섭량들에 기반하여 결정되는 사용자의 모션에 기반한 제어신호를 출력하기 위한 사용자의 오른쪽 무브 모션에 기반한 제어신호를 출력하기 위한 방법.
  6. 제4항에 있어서,
    상기 사용자의 인식 모션이 상기 레퍼런스 모션과 매칭되는지 판단하는 단계는,
    상기 전자 장치의 롤축에 대한 기울기 값이 상기 제1기준 범위 이내이면 상기 인식 모션이 준비된 것으로 판단하는 제7단계;
    상기 인식 모션이 준비되었으면, 상기 피치축에 대한 각속도가 상기 제1기준 값 이상이면 인식 모션이 시작된 것으로 판단하는 제8단계;
    상기 인식 모션이 시작되면, 상기 인식 모션의 롤축에 대한 기울기가 상기 제2기준 범위를 벗어나면 인식을 종료하고 대기 상태로 돌아가는 제9단계;
    상기 인식 모션의 완료 시점의 피치축에 대한 각속도가 상기 제2기준 값 미만이면 인식을 종료하고 대기 상태로 돌아가는 제10단계;
    상기 인식 모션의 시작에서 상기 인식 모션의 완료 시점까지의 상기 Z축에 대한 선형 가속도의 누적값이 상기 제3기준 값 미만이면 상기 인식 모션이 유효하지 않은 것으로 판단하여 인식을 종료하고 대기모드로 돌아가는 제11단계; 및
    상기 인식 모션의 시작 후 상기 완료 시점까지의 롤축에 대한 각속도 최대값을 피치축에 대한 각속도 최대값으로 나눈 값인 현재 회전량과 상기 인식 모션 시작의 후 상기 완료 시점까지의 요축에 대한 각속도 최대값을 피치축에 대한 각속도 최대값으로 나눈 값인 현재 간섭량을 상기 메모리에 기 저장된 상기 기준 회전량 및 상기 기준 간섭량과 각각 비교하는 제12단계를 포함하고,
    상기 비교 결과에 기반하여 상기 인식 모션과 상기 레퍼런스 모션의 매칭 여부가 결정되고,
    상기 인식 모션의 완료 시점은 현재 피치축에 대한 각속도 값이 상기 레코딩 모션 시작 후의 피치축에 대한 각속도 최대값의 기준 비율 이하가 되는 시점으로 결정되는 사용자의 오른쪽 무브 모션에 기반한 제어신호를 출력하기 위한 방법.
  7. 전자 장치에서 사용자의 위쪽 무브 모션에 기반한 제어신호를 출력하기 위한 방법에 있어서,
    상기 전자 장치의 가속도 센서로부터 수신한 가속도 데이터에 기반하여 좌우 방향의 X축, 위아래 방향의 Y축, 및 앞뒤 방향의 Z축 각각에 대한 가속도 값을 획득하는 단계;
    상기 전자 장치의 자이로 센서로부터 수신한 자이로 데이터에 기반하여 요(Yaw)축, 피치(Pitch)축, 및 롤(Roll)축 각각에 대한 각속도 값을 획득하는 단계;
    상기 가속도 센서, 상기 자이로 센서, 및 상기 전자 장치의 지자기 센서로부터 각각 획득한 가속도 데이터, 자이로 데이터, 및 지자기 데이터에 기반하여 요(Yaw)축, 피치(Pitch)축, 롤(Roll)축 각각에 대한 기울기 값을 획득하는 단계;
    현재 동작 모드가 제스처 레코딩 모드이면, 상기 사용자가 레퍼런스 모션을 취하는 레코딩 모션을 적어도 한번 취함으로써 상기 레퍼런스 모션에 대응하는 상기 사용자의 제스처 프로파일을 생성하는 단계; 및
    현재 동작 모드가 제스처 인식 모드이면, 상기 사용자의 인식 모션이 상기 레퍼런스 모션과 매칭되는지 판단하는 단계를 포함하고,
    상기 레퍼런스 모션은 위쪽 무브이고,
    상기 사용자의 제스처 프로파일을 생성하는 단계는,
    상기 전자 장치의 롤축에 대한 기울기가 제1기준 범위 이내이면 상기 레코딩 모션이 준비된 것으로 판단하는 제1단계;
    상기 레코딩 모션이 준비되었으면, 요축에 대한 각속도가 제1기준 값 이상이면 레코딩 모션이 시작된 것으로 판단하는 제2단계;
    상기 레코딩 모션이 시작되면, 상기 레코딩 모션의 롤축에 대한 기울기가 제2기준 범위를 벗어나면 제스처 프로파일 생성을 종료하고 대기 상태로 돌아가는 제3단계;
    상기 레코딩 모션의 완료 시점의 요축에 대한 각속도가 제2기준 값 미만이면 제스처 프로파일 생성을 종료하고 대기 상태로 돌아가는 제4단계;
    상기 레코딩 모션의 시작에서 완료 시점까지의 상기 X축에 대한 선형 가속도의 누적값이 제3기준 값 미만이면 상기 레코딩 모션이 유효하지 않은 것으로 판단하여 상기 제스처 프로파일 생성을 종료하고 대기모드로 돌아가는 제5단계; 및
    상기 레코딩 모션의 시작 후 상기 완료 시점까지의 롤축에 대한 각속도 최대값을 요축에 대한 각속도 최대값으로 나눈 값인 기준 회전량과 상기 레코딩 모션의 시작 후 상기 완료 시점까지의 피치축에 대한 각속도 최대값을 요축에 대한 각속도 최대값으로 나눈 값인 기준 간섭량을 상기 사용자의 특성 값들로서 메모리에 저장하는 제6단계를 포함하고,
    상기 레코딩 모션의 완료 시점은 현재 요축에 대한 각속도 값이 레코딩 모션 시작 후의 요축에 대한 각속도 최대값의 기준 비율 이하가 되는 시점으로 결정되는 사용자의 위쪽 무브 모션에 기반한 제어신호를 출력하기 위한 방법.
  8. 제7항에 있어서,
    상기 사용자의 제스처 프로파일은 상기 사용자가 상기 레코딩 모션을 여러 횟수 취함으로써 생성되고,
    각 횟수는 상기 제1단계부터 상기 제6단계까지의 동작이 모두 완료되어야 카운트되고,
    상기 기준 회전량은 여러 횟수에 걸쳐 각각 획득된 기준 회전량들에 기반하여 결정되고,
    상기 기준 간섭량은 여러 횟수에 걸쳐 각각 획득된 기준 간섭량들에 기반하여 결정되는 사용자의 위쪽 무브 모션에 기반한 제어신호를 출력하기 위한 방법.
  9. 제7항에 있어서,
    상기 사용자의 인식 모션이 상기 레퍼런스 모션과 매칭되는지 판단하는 단계는,
    상기 전자 장치의 롤축에 대한 기울기가 상기 제1기준 범위 이내이면 상기 인식 모션이 준비된 것으로 판단하는 제7단계;
    상기 인식 모션이 준비되었으면, 요축에 대한 각속도가 상기 제1기준 값 이상이면 상기 인식 모션이 시작된 것으로 판단하는 제8단계;
    상기 인식 모션이 시작되면, 상기 레코딩 모션의 롤축에 대한 기울기가 상기 제2기준 범위를 벗어나면 인식을 종료하고 대기 상태로 돌아가는 제9단계;
    상기 인식 모션의 완료 시점의 요축에 대한 각속도가 상기 제2기준 값 미만이면 인식을 종료하고 대기 상태로 돌아가는 제10단계;
    상기 인식 모션의 시작에서 완료 시점까지의 상기 X축에 대한 선형 가속도의 누적값이 상기 제3기준 값 미만이면 상기 인식 모션이 유효하지 않은 것으로 판단하여 인식을 종료하고 대기모드로 돌아가는 제11단계; 및
    상기 인식 모션의 시작 후 상기 완료 시점까지의 롤축에 대한 각속도 최대값을 요축에 대한 각속도 최대값으로 나눈 값인 현재 회전량과 상기 인식 모션의 시작 후 상기 완료 시점까지의 피치축에 대한 각속도 최대값을 요축에 대한 각속도 최대값으로 나눈 값인 현재 간섭량을 상기 메모리에 기 저장된 상기 기준 회전량 및 상기 기준 간섭량과 각각 비교하는 제12단계를 포함하고,
    상기 비교 결과에 기반하여 상기 인식 모션과 상기 레퍼런스 모션의 매칭 여부가 결정되고,
    상기 인식 모션의 완료 시점은 현재 요축에 대한 각속도 값이 인식 모션 시작 후의 요축에 대한 각속도 최대값의 기준 비율 이하가 되는 시점으로 결정되는 사용자의 위쪽 무브 모션에 기반한 제어신호를 출력하기 위한 방법.
  10. 전자 장치에서 사용자의 아래쪽 무브 모션에 기반한 제어신호를 출력하기 위한 방법에 있어서,
    상기 전자 장치의 가속도 센서로부터 수신한 가속도 데이터에 기반하여 좌우 방향의 X축, 위아래 방향의 Y축, 및 앞뒤 방향의 Z축 각각에 대한 가속도 값을 획득하는 단계;
    상기 전자 장치의 자이로 센서로부터 수신한 자이로 데이터에 기반하여 요(Yaw)축, 피치(Pitch)축, 및 롤(Roll)축 각각에 대한 각속도 값을 획득하는 단계;
    상기 가속도 센서, 상기 자이로 센서, 및 상기 전자 장치의 지자기 센서로부터 각각 획득한 가속도 데이터, 자이로 데이터, 및 지자기 데이터에 기반하여 요(Yaw)축, 피치(Pitch)축, 롤(Roll)축 각각에 대한 기울기 값을 획득하는 단계;
    현재 동작 모드가 제스처 레코딩 모드이면, 상기 사용자가 레퍼런스 모션을 취하는 레코딩 모션을 적어도 한번 취함으로써 상기 레퍼런스 모션에 대응하는 상기 사용자의 제스처 프로파일을 생성하는 단계; 및
    현재 동작 모드가 제스처 인식 모드이면, 상기 사용자의 인식 모션이 상기 레퍼런스 모션과 매칭되는지 판단하는 단계를 포함하고,
    상기 레퍼런스 모션은 아래쪽 무브이고,
    상기 사용자의 제스처 프로파일을 생성하는 단계는,
    상기 전자 장치의 롤축에 대한 기울기가 제1기준 범위 이내이면 상기 레코딩 모션이 준비된 것으로 판단하는 제1단계;
    상기 레코딩 모션이 준비되었으면, 요축에 대한 각속도가 제1기준 값 이상이면 레코딩 모션이 시작된 것으로 판단하는 제2단계;
    상기 레코딩 모션이 시작되면, 상기 레코딩 모션의 롤축에 대한 기울기가 제2기준 범위를 벗어나거나, 피치축에 대한 기울기의 절대값이 제2기준 값 이상이고 롤축에 대한 기울기가 제3기준 값 이하이면 제스처 프로파일 생성을 종료하고 대기 상태로 돌아가는 제3단계;
    상기 레코딩 모션의 완료 시점의 요축에 대한 각속도가 제4기준 값 미만이면 제스처 프로파일 생성을 종료하고 대기 상태로 돌아가는 제4단계;
    상기 레코딩 모션의 시작에서 완료 시점까지의 상기 X축에 대한 선형 가속도의 누적값이 제5기준 값 미만이면 상기 레코딩 모션이 유효하지 않은 것으로 판단하여 상기 제스처 프로파일 생성을 종료하고 대기모드로 돌아가는 제5단계; 및
    상기 레코딩 모션의 시작 후 상기 완료 시점까지의 롤축에 대한 각속도 최대값을 요축에 대한 각속도 최대값으로 나눈 값인 기준 회전량과 상기 레코딩 모션의 시작 후 상기 완료 시점까지의 피치축에 대한 각속도 최대값을 요축에 대한 각속도 최대값으로 나눈 값인 기준 간섭량을 상기 사용자의 특성 값들로서 메모리에 저장하는 제6단계를 포함하고,
    상기 레코딩 모션의 완료 시점은 현재 요축에 대한 각속도 값이 레코딩 모션 시작 후의 요축에 대한 각속도 최대값의 기준 비율 이하가 되는 시점으로 결정되는 사용자의 아래쪽 무브 모션에 기반한 제어신호를 출력하기 위한 방법.
  11. 제10항에 있어서,
    상기 사용자의 제스처 프로파일은 상기 사용자가 상기 레코딩 모션을 여러 횟수 취함으로써 생성되고,
    각 횟수는 상기 제1단계부터 상기 제6단계까지의 동작이 모두 완료되어야 카운트되고,
    상기 기준 회전량은 여러 횟수에 걸쳐 각각 획득된 기준 회전량들에 기반하여 결정되고,
    상기 기준 간섭량은 여러 횟수에 걸쳐 각각 획득된 기준 간섭량들에 기반하여 결정되는 사용자의 아래쪽 무브 모션에 기반한 제어신호를 출력하기 위한 방법.
  12. 제10항에 있어서,
    상기 사용자의 인식 모션이 상기 레퍼런스 모션과 매칭되는지 판단하는 단계는,
    상기 전자 장치의 롤축에 대한 기울기가 상기 제1기준 범위 이내이면 상기 인식 모션이 준비된 것으로 판단하는 제7단계;
    상기 인식 모션이 준비되었으면, 요축에 대한 각속도가 상기 제1기준 값 이상이면 상기 인식 모션이 시작된 것으로 판단하는 제8단계;
    상기 인식 모션이 시작되면, 상기 레코딩 모션의 롤축에 대한 기울기가 상기 제2기준 범위를 벗어나거나, 피치축에 대한 기울기의 절대값이 제2기준 값 이상이고 롤축에 대한 기울기가 제3기준 값 이하이면 인식을 종료하고 대기 상태로 돌아가는 제9단계;
    상기 인식 모션의 완료 시점의 요축에 대한 각속도가 상기 제4기준 값 미만이면 인식을 종료하고 대기 상태로 돌아가는 제10단계;
    상기 인식 모션의 시작에서 완료 시점까지의 상기 X축에 대한 선형 가속도의 누적값이 상기 제5기준 값 미만이면 상기 인식 모션이 유효하지 않은 것으로 판단하여 인식을 종료하고 대기모드로 돌아가는 제11단계; 및
    상기 인식 모션의 시작 후 상기 완료 시점까지의 롤축에 대한 각속도 최대값을 요축에 대한 각속도 최대값으로 나눈 값인 현재 회전량과 상기 인식 모션의 시작 후 상기 완료 시점까지의 피치축에 대한 각속도 최대값을 요축에 대한 각속도 최대값으로 나눈 값인 현재 간섭량을 상기 메모리에 기 저장된 상기 기준 회전량 및 상기 기준 간섭량과 각각 비교하는 제12단계를 포함하고,
    상기 비교 결과에 기반하여 상기 인식 모션과 상기 레퍼런스 모션의 매칭 여부가 결정되고,
    상기 인식 모션의 완료 시점은 현재 요축에 대한 각속도 값이 인식 모션 시작 후의 요축에 대한 각속도 최대값의 기준 비율 이하가 되는 시점으로 결정되는 사용자의 아래쪽 무브 모션에 기반한 제어신호를 출력하기 위한 방법.
  13. 사용자의 모션에 기반한 제어신호를 출력하기 위한 전자 장치에 있어서,
    가속도 센서;
    자이로 센서;
    지자기 센서;
    상기 가속도 센서로부터 수신한 가속도 데이터에 기반하여 좌우 방향의 X축, 위아래 방향의 Y축, 및 앞뒤 방향의 Z축 각각에 대한 가속도 값을 획득하고, 상기 전자 장치의 자이로 센서로부터 수신한 자이로 데이터에 기반하여 요(Yaw)축, 피치(Pitch)축, 및 롤(Roll)축 각각에 대한 각속도 값을 획득하고, 상기 가속도 센서, 상기 자이로 센서, 및 상기 전자 장치의 지자기 센서로부터 각각 획득한 가속도 데이터, 자이로 데이터, 및 지자기 데이터에 기반하여 요(Yaw)축, 피치(Pitch)축, 롤(Roll)축 각각에 대한 기울기 값을 획득하는 제1프로세서;
    상기 제1프로세서로부터 주기적인 간격으로 상기 좌우 방향의 X축, 위아래 방향의 Y축, 및 앞뒤 방향의 Z축 각각에 대한 가속도 값, 상기 요(Yaw)축, 피치(Pitch)축, 및 롤(Roll)축 각각에 대한 각속도 값, 및 상기 요(Yaw)축, 피치(Pitch)축, 및 롤(Roll)축 각각에 대한 기울기 값을 획득하는 제2프로세서; 및
    상기 사용자의 레코딩 모션에 대한 기준 회전량과 기준 간섭량을 상기 사용자의 특성 값들로서 저장하기 위한 메모리를 포함하고,
    현재 동작 모드가 제스처 레코딩 모드이면, 상기 사용자가 취하는 상기 레코딩 모션으로부터 획득되는 모션 데이터들로부터 기준 회전량과 기준 간섭량을 획득하여 상기 메모리에 저장하고,
    현재 동작 모드가 제스처 인식 모드이면, 상기 사용자가 취하는 인식 모션으로부터 획득되는 회전량과 간섭량을 상기 기준 회전량과 상기 기준 간섭량과 각각 비교하고,
    상기 레코딩 모션은 왼쪽, 오른쪽, 위쪽, 또는 아래쪽 무브 모션을 포함하고,
    상기 사용자이 특성 값들은 상기 사용자의 왼쪽 무브 모션에 대한 제1기준 회전량과 제1기준 간섭량, 상기 사용자의 오른쪽 무브 모션에 대한 제2기준 회전량과 제2기준 간섭량, 상기 사용자의 위쪽 무브 모션에 대한 제3기준 회전량과 제3기준 간섭량, 상기 사용자의 아래쪽 무브 모션에 대한 제4기준 회전량과 제4기준 간섭량을 포함하고,
    상기 레코딩 모션이 왼쪽, 위쪽, 또는 아래쪽 무브 모션이면, 상기 기준 회전량은 상기 레코딩 모션의 시작 후 완료 시점까지의 롤축에 대한 각속도 최대값을 요축에 대한 각속도 최대값으로 나눈 값이고, 상기 기준 간섭량은 상기 레코딩 모션의 시작 후 상기 완료 시점까지의 피치축에 대한 각속도 최대값을 요축에 대한 각속도 최대값으로 나눈 값이고,
    상기 레코딩 모션이 오른쪽 무브 모션이면, 상기 기준 회전량은 상기 레코딩 모션의 시작 후 완료 시점까지의 롤축에 대한 각속도 최대값을 피치축에 대한 각속도 최대값으로 나눈 값이고, 상기 기준 간섭량은 상기 레코딩 모션의 시작 후 완료 시점까지의 요축에 대한 각속도 최대값을 피치축에 대한 각속도 최대값으로 나눈 값인 전자 장치.
PCT/KR2021/016095 2021-09-12 2021-11-08 사용자의 반복 동작에 기반한 사용자 정의 제스처 프로파일 생성 및 제스처 인식을 위한 방법 및 장치 WO2023038195A1 (ko)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202180102224.1A CN118043761A (zh) 2021-09-12 2021-11-08 基于用户重复动作的用户定义手势档案生成及手势识别的方法和装置

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
KR1020210121363A KR102397236B1 (ko) 2021-09-12 2021-09-12 사용자의 반복 동작에 기반한 사용자 정의 제스처 프로파일 생성 및 제스처 인식 방법
KR10-2021-0121363 2021-09-12

Publications (1)

Publication Number Publication Date
WO2023038195A1 true WO2023038195A1 (ko) 2023-03-16

Family

ID=81583726

Family Applications (1)

Application Number Title Priority Date Filing Date
PCT/KR2021/016095 WO2023038195A1 (ko) 2021-09-12 2021-11-08 사용자의 반복 동작에 기반한 사용자 정의 제스처 프로파일 생성 및 제스처 인식을 위한 방법 및 장치

Country Status (3)

Country Link
KR (1) KR102397236B1 (ko)
CN (1) CN118043761A (ko)
WO (1) WO2023038195A1 (ko)

Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2013164701A (ja) * 2012-02-10 2013-08-22 Samsung Electronics Co Ltd ユーザインタラクションを利用した電子機器とその制御方法、及び電子機器制御システム
KR20140125574A (ko) * 2013-04-19 2014-10-29 전북대학교산학협력단 모바일 단말 및 이의 제어 방법
KR20180044613A (ko) * 2016-10-24 2018-05-03 주식회사 토즈 사용자 인체의 위치 정보를 이용하는 동작 인식 기반의 nui 제어 방법 및 시스템
KR101870542B1 (ko) * 2016-12-28 2018-06-25 주식회사 스탠딩에그 모션 인식 방법 및 장치
KR102207510B1 (ko) * 2020-04-30 2021-01-27 (주)콕스스페이스 모션 신호와 마우스 신호를 사용하여 호스트 장치를 제어하기 위한 전자 장치

Family Cites Families (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR102053367B1 (ko) * 2017-10-11 2019-12-09 오익재 웨어러블 인터페이스 장치

Patent Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2013164701A (ja) * 2012-02-10 2013-08-22 Samsung Electronics Co Ltd ユーザインタラクションを利用した電子機器とその制御方法、及び電子機器制御システム
KR20140125574A (ko) * 2013-04-19 2014-10-29 전북대학교산학협력단 모바일 단말 및 이의 제어 방법
KR20180044613A (ko) * 2016-10-24 2018-05-03 주식회사 토즈 사용자 인체의 위치 정보를 이용하는 동작 인식 기반의 nui 제어 방법 및 시스템
KR101870542B1 (ko) * 2016-12-28 2018-06-25 주식회사 스탠딩에그 모션 인식 방법 및 장치
KR102207510B1 (ko) * 2020-04-30 2021-01-27 (주)콕스스페이스 모션 신호와 마우스 신호를 사용하여 호스트 장치를 제어하기 위한 전자 장치

Also Published As

Publication number Publication date
KR102397236B1 (ko) 2022-05-13
CN118043761A (zh) 2024-05-14

Similar Documents

Publication Publication Date Title
WO2022035027A1 (ko) 모션 신호와 마우스 신호를 사용하여 호스트 장치를 제어하기 위한 전자 장치
WO2013089392A1 (en) Bendable display device and displaying method thereof
WO2016036137A1 (en) Electronic device with bent display and method for controlling thereof
WO2015084111A1 (ko) 제한된 수의 자기장 센서를 이용한 사용자 입력 처리 장치
WO2015160193A1 (en) Wearable device, master device operating with the wearable device, and control method for wearable device
WO2015163536A1 (en) Display device and method for controlling the same
AU2012214923A1 (en) Apparatus including multiple touch screens and method of changing screens therein
EP2673692A2 (en) Apparatus including multiple touch screens and method of changing screens therein
WO2020159308A1 (en) Electronic device and method for mapping function to button input
WO2017150815A1 (ko) 디스플레이의 밝기를 제어하는 방법, 전자 장치 및 컴퓨터 판독가능 기록매체
WO2021080171A1 (ko) 관성 센서를 이용한 착용 감지 방법 및 장치
WO2023038195A1 (ko) 사용자의 반복 동작에 기반한 사용자 정의 제스처 프로파일 생성 및 제스처 인식을 위한 방법 및 장치
WO2020027417A1 (en) Electronic device and method for providing virtual input tool
KR20230030472A (ko) 사용자의 반복 동작에 기반한 사용자 정의 제스처 프로파일 생성 및 제스처 인식 방법
WO2019103350A1 (ko) 사용자 인터페이스를 적응적으로 구성하기 위한 장치 및 방법
WO2022085940A1 (ko) 웨어러블 표시 장치에 복수의 오브젝트들 표시 제어 방법 및 장치
WO2020080732A1 (ko) 가상 콘텐츠를 제어하기 위한 인터페이스 방법
WO2015194705A1 (en) Mobile terminal and method for controlling the same
WO2021071301A1 (ko) 전자 장치 및 전자 장치의 제어 방법
WO2021020940A1 (en) Electronic device and method for generating augmented reality object
WO2020060121A1 (ko) 필기 입력에 대한 보정 방법, 이를 위한 전자 장치 및 저장 매체
WO2020022829A1 (ko) 사용자 입력을 지원하는 전자 장치 및 전자 장치의 제어 방법
WO2018225974A1 (ko) 터치의 압력에 응답하여 지정된 동작을 수행하는 전자 장치 및 방법
WO2022086071A1 (ko) 전자 펜 장치의 동작을 제어하기 위한 전자 장치, 전자 장치에서의 동작 방법 및 비 일시적 저장 매체
WO2023239035A1 (ko) 손 동작에 관한 이미지 데이터를 획득하는 전자 장치 및 그 동작 방법

Legal Events

Date Code Title Description
121 Ep: the epo has been informed by wipo that ep was designated in this application

Ref document number: 21956900

Country of ref document: EP

Kind code of ref document: A1

NENP Non-entry into the national phase

Ref country code: DE