This application is based on and claims priority from Korean Patent Application Nos. 10-2008-0113610, filed on Nov. 14, 2008, and 10-2009-0027100, filed on Mar. 30, 2009, the disclosures of which are incorporated herein in their entireties by reference.
1. Field of the Invention
Methods and apparatuses consistent with the present invention relate to a user instruction input device including a movement sensor. More particularly, the present invention relates to a user instruction input device capable of inputting user instructions naturally and accurately based on device movements in a three-dimensional space.
2. Description of the Related Art
As computer science develops, various devices that allow users to input information in a computer device have been developed. One of such devices is called a user command input device. As a user manipulates such device components, position data corresponding to motion of the user command input device are generated. Also, such position data are converted into motions of a pointer image shown on the display. Hence, by moving the user command input device, the user may link the pointer image with objects displayed on the display. Here, an object refers to a user interface that allows a certain action to be performed when a menu, a button or an image is selected. After that, the user can perform a certain command related with the corresponding object through a selection action such as pushing a certain button of the user command input device.
General personal computer users use operating systems with graphical user interfaces, such as Microsoft Windows and MAC OS X, to operate their computer. This is due to convenient mouse functions and various graphic functions that are not supported in console based operating systems such as DOS (Disk Operating System) system and some UNIX versions, and users can simply input commands through a mouse dragging, scrolling or a click without a keyboard input.
On the other hand, various commands are inputted using a key pad prepared on a remote control device in an image display device that cannot use a keyboard or a mouse that is used in a personal computer, such as a digital TV, a set-top box, a game machine. Such a key pad input method has been mainly used because such devices are not fixed on a certain position for the operation of the device unlike a personal computer, and operation is necessary in an open space such as a living room, so it is difficult to use an input means fixed on a plane such as a keyboard or mouse.
Considering such problems, three-dimensional user command input devices with a motion sensor such as a gyroscope and an accelerometer are recently being developed. By moving a three-dimensional user command input device, a user can move a pointer image on the corresponding display in a desired direction and at a desired speed, and by pushing a certain button on the user command input device, the user can select and execute a desired action.
However, unlike a technology that inputs user commands through actions on a fixed two-dimensional plane as in a mouse, it is not easy to transmit natural and accurate motions in a user command input device that moves a pointer or a certain object (e.g., a game unit) through an arbitrary action in a three-dimensional space. It is because motions that have not been intended by the user may be transmitted depending on the pose, orientation or distance toward the device.
In fact, inventions about measuring three-dimensional motions using accelerometers and angular rate sensors have been made since 1980s. The present invention does not simply intend to implement an input device using an accelerometer and an angular rate sensor, but intends to implement an input device that naturally fits the user's intention with a compact system (i.e., a system that uses a small amount of operations).
An objective of the present invention is to input user instructions more naturally and accurately in a device that inputs user instructions through arbitrary movements in a three-dimensional space.
The present invention will not be limited to the technical objectives described above. Other objectives not described herein will be more definitely understood by those in the art from the following detailed description.
According to an exemplary embodiment of the present invention, there is provided a user instruction input device operating in a three-dimensional space including a first sensor that senses the angular rate of the device centering on at least one axis, a second sensor that senses the acceleration of the device at least for one direction, and a processing unit that calculates a first rotation angle in a coordinate system independent of the attitude of the first device from the output value of the first sensor, calculates a second rotation angle in the coordinate system from the output value of the second sensor, and calculates the final attitude angle by combining the first rotation angle and the second rotation angle.
According to an exemplary embodiment of the present invention, there is provided a method of inputting a user instruction using a user instruction input device operating in a three-dimensional space including sensing the angular rate of the device on at least one axis, sensing the acceleration of the device for at least one direction, calculating a first rotation angle in a coordinate system independent of the attitude of the device using the output value of the first sensor, calculating a second rotation angle in the coordinate system using the output value of the second sensor, calculating the final attitude angle by combining the first rotation angle and the second rotation angle, and outputting a position variation corresponding to the variation of the calculated final attitude angle.
The above and other features and advantages of the present invention will become apparent by describing in detail preferred embodiments thereof with reference to the attached drawings in which:
Exemplary embodiments of the present invention will be described in detail with reference to the accompanying drawings.
Advantages and features of the present invention and methods of accomplishing the same may be understood more readily by reference to the following detailed description of the exemplary embodiments and the accompanying drawings. The present invention may, however, be embodied in many different forms and should not be construed as being limited to the embodiments set forth herein. Rather, these embodiments are provided so that this disclosure will be thorough and complete and will fully convey the concept of the invention to those skilled in the art, and the present invention will only be defined by the appended claims.
In the present invention, a user instruction input device refers to an interface device that makes various contents intuitively available by receiving the input of the user's movements. The device makes the information obtained through the user's movements correspond to information that is necessary for various information devices or various services. Some examples of such devices are a three-dimensional space mouse, an IPTV (Internet protocol TV) remote control and a game input device.
As a more specific example, the user instruction input device 100 may include an angular rate sensor 110, an acceleration sensor 120, a filtering unit 130, a processing unit 190 and an output unit 180. Further, the processing unit 190 may include a first operation unit 140, a second operation unit 150, a attitude angle measuring unit 160 and a variation mapping unit 170.
The angular rate sensor 110 senses an angular rate at which the device 100 rotates on the body frame, and provides a sampled output value (digital value). A gyroscope can be used as angular rate sensor 110, and various types of gyroscopes such as a mechanical type, a fluid type, an optical type and a piezoelectric type. Specifically, the angular rate sensor 110 can obtain rotational angular rates for two axes (axes on the body frame) that cross at right angles, e.g., a rotational angular rate (ωx, ωy, ωz,) on x-axis, y-axis and z-axis of the body frame.
The acceleration sensor 120 senses the acceleration of the device 100 on the body frame and provides a sampled output value (digital value). The acceleration sensor 120 can be a piezoelectric type or a moving coil type. Specifically, the angular rate sensor 110 calculates the straight line acceleration (fx, fy, fz) for three axes that cross at right angles (axes on the body frame).
The filtering unit 130 may consist of a low pass filter, a high pass filter, a offset filter or a scaling filter depending on the usage of the device 100, compensates for the error after receiving the output of the angular sensor 110 and the output of the acceleration sensor 120. The filtering unit 130 provides the error-compensated rotational angular rate (ωx, ωy, ωz,) to the first operation unit 140 and provides the error-compensated acceleration speed (fx, fy, fz) to the second operation unit 150.
The second operation unit calculates the roll, pitch and yaw of the navigation frame (φXL, θXL, φXL) (the second rotational angle) using the straight line angular rate (fx, fy, fz) provided from the filtering unit 130. A specific example of the calculation is shown in the following.
Generally, the roll and the pitch (φXL, θXL) can be simply calculated using the acceleration, but it is not easy to get the yaw. The yaw (ΨXL) calculated from the acceleration in the present invention is a pseudo yaw and can be explained with reference to
The method of measuring the roll value using the accelerometer can be calculated in various methods.
(b) of
From the above equation 3, the yaw (Ψ) can be approximated as shown in the equation 4.
Equation 4 cannot be applied if pitch θ is close to 0° or 90°, so a certain restriction should be given at such angles. The actually measured yaw values in each condition using equation 4 are shown in the following.
As shown in the above table, as the roll change, the yaw value changes, so the scale elements can be used to reduce such differences. Consequently, in the situation when there is a pitch value and both the roll value and the yaw value change, it is possible to calculate the approximate value for the yaw.
The first operation unit 140 calculates the rotation angle (φG, θG, ΨG) (the first rotation angle) of three axes in the navigation frame using angular rate (ωx, ωy, ωz) value provided from the filtering value 130. The specific equation using the Euler angle is shown in equation 5. Equation 5 has a form of a differential equation for the rotation angle (ωG, θG, ΨG) in the navigation frame.
Generally, the attitude angle in the navigation frame can be obtained using three angular rates. The desirable embodiment of the present invention calculates angular rates of three axes in the navigation frame using only two angular rates (ωy, ωz), and here ωx of equation 5 is a problem.
General hand and arm movements of a person are often based on a single axis in a three-axis coordinate system. Some such examples are rotation on Z-axis and rotation in Y-axis direction. Also, even though there are two or more composite movements at the same time, there is a tendency that when X-axis and Y-axis rotations of the body frame and X-axis and Z-axis rotations of the body frame occur at the same time, movements in X-axis direction becomes relatively smaller than those in Y-axis and Z-axis directions.
Hence, in equation 5, ωx in X-axis direction becomes relatively smaller than that in Y-axis direction or Z-axis direction, so ωx may be disregarded, but the calculation is not done accurately. However, if the roll (φXL) information calculated by the accelerometer is appropriately used, a performance, which is similar to that when the angular rate of ωx is used, can be secured.
Based on such an experiment result, equation 5 can be transformed to the following equation 6.
Further, if a pattern when a person grabs the input device and moves is recognized in advance and is utilized, even ωy can be removed. Here, as in equation 1, errors generated by not using ωy, ωz can be overcome by using (φXL, θXL, ΨXL) calculated using the output of the accelerometer.
Equations 5 and 6 illustrate the calculation of the rotation angle (φG, θG, ΨG) of three axes in the navigation frame from the angular rate (ωy, ωz) based on the Euler angle representation, but the calculation may be performed based on the more involved quaternion angle representation instead of Euler angle.
Referring to
φ=α1·φXL+(1−α1)·φG
θ=α2·θXL+(1−α2)·θG
ψ=α3·ψXL+(1−α3)·ψG Equation 7
Here, α1, α2 and α3 are weights for φ, θ and Ψ, respectively. The above process to calculate the attitude angle in the navigation is just an example, but various other ways can be used to calculate the attitude angle. For example, ΨXL used in equation 1 can be calculated using a magnetic sensor or an image sensor. According to the magnetic sensor or the image sensor, because a reentering angle in the navigation frame can be directly calculated, a transformation process as in equation 1 used in the acceleration sensor is not necessary.
If ΨXL, is not calculated from the third formula of equation 1, i.e., θXL=0, by setting α3 to 1, Ψ can be calculated only by ΨG without using ΨXL.
However, in order to calculate the final attitude angle (φ, θ, Ψ) more accurately, α1, α2 and α3 need to be adaptively determined rather than arbitrarily determined. For this, the “attitude angle measuring” angle 160 can use a movement estimation function.
The movement estimation function refers to a function that detects detailed movements by normalizing movements to the range between 0 and 1 based on data using the outputs of the angular rate sensor and the acceleration sensor. As an example, in the case where movements of the detected device 100 are hardly noticeable, the value of the acceleration sensor 120 is more reliable, so the mapping is done so that αn=1, and in the case where the movements are the maximum state, the value of the angular rate sensor 110 is more reliable, so the mapping is done so that αn=0. In the case where the movements are between the hardly noticeable state and the maximum state, the mapping should be done with an appropriate value.
By using such a movement estimation function, detailed movements such as stoppage, minute movements, slow movements and fast movements can be detected in addition to detecting whether the device 100 has stopped. Further, by measuring such movements, the basis for removing unintended movements (e.g., a cursor movement by a trembling of a hand) can be provided. Further, it is possible to adjust the scale of a mapping function according to the size of movements, which will be explained later.
Referring to
Such a relation can be expressed as the following equation 8.
Δψ=ψk−ψk−1
Δθ=θk−θk−1 Equation 8
Here, “k” is an index that indicates a certain sampling time point.
In order to define such a correspondence relation, the present invention introduces a mapping function.
The mapping function of
An example of mapping functions of
Here, there are both positive and negative movement directions, so the Sigmoid function is symmetrical on the starting point of the coordinates. That is, the mapping function of
The meaning of three areas of
The second scaling area is an area that proportionally maps actual user movements to position information on the display device, and the mapping can be done by .+−.128 integer values according to HID mouse standard.
The third limitation region is an area that limits position variations (Δx, Δy) when the user's movements are relatively large. In
Further, such a mapping function can be scaled in various ways in line with the user's movement pattern, which is explained in the following.
The user most comfortably grabs the device 100 when the pitch angle is 5°-10° as shown in
Hence, in the device 100 according to an exemplary embodiment of the present invention, as shown in
The variation mapping unit 170 of the device 100 can simply do such operations by adjusting the mapping scale applied to the entire mapping functions. The adjustment of the mapping scale can be applied in various manners according to each set of pitch information, and the same can be applied even when the pitch angle is negative.
The technique used in the pitch (θ) angle can be applied for the yaw (Ψ) angle. In the case where the user operates the device 100, the movement is usually done between .+−.45° in the yaw rotation direction as shown in
Hence, in the device 100 according to an exemplary embodiment of the present invention, when the yaw angle exceeds a certain angle in the positive direction, the device increases the scale for the movement that rotates in the positive yaw angle direction and decrease the scale for the movement in the negative yaw angle direction. The same can be applied in the state where the yaw angle of the device 100 exceeds a certain angle in the negative direction. Hence, the user's pointing can be continued between .+−.45° yaw angles when the user feels most comfortable. The variation mapping unit 170 of the device 100 can simply perform such an operation by adjusting the mapping scale applied to the entire mapping function.
Further, in the case where the device 100 is raised up by 90° in the pitch direction, the position variations (Δx, Δy) on the display screen can be made to be limited. For example, the variation mapping unit 170 can be made for the mapped position variations (Δx, Δy) not to be generated by setting ΔΨ and Δθ to “0” when θ is close to 90°. It is because there can be pointer movements unintended by the user as a singular point is generated in the third formula (a formula about Ψ) of equation 6 when the pitch angle becomes 90°.
Such a problem can be solved if the calculation is done using a quaternion angle representation, instead of Euler angles, but the amount of calculation increases, so each method has advantages and disadvantages. However, the user rarely operates the pointer while grabbing the device perpendicularly, and even if it happens, it can be resolved by limiting the position variation as described above.
Referring to
Each block of
A user instruction input device according to an exemplary embodiment of the present invention has practical advantages as follows.
1. Simplified System
The user instruction input device 100 only uses the conversion for the rotation information between two coordinate systems (frame) in the process of converting the body information into the navigation frame. That is, the starting point of the body frame and the starting point of the navigation frame are kept in the same state as in
Also, as in equation 7, by using the concept of the weighted average, the movement estimation function and the mapping function, the complicated operations for sampling data, which is necessary for a model-based filtering such as linear filtering, Kalman filtering, Kalman smoothing, extended Kalman filtering, state-space estimation and expectation-maximization, and the following initialization time are not required.
Further, the movement estimation function and the mapping function use a simplified form of 1:1 correspondence function unlike the matrix operation that occupies many resources. Hence, as such a simplified function is used, the operation time and resources are significantly reduced.
2. Attitude Angle in Navigation Frame
The user instruction input device 100 measures the rotation and acceleration of the body frame to calculate attitude information of the navigation frame. The position information (e.g., the movement of a pointer) is controlled through the obtained attitude information of the navigation frame, so the position information can be implemented regardless of the slant of the body frame. As stated above using the roll, pitch and yaw information (attitude angle information) in the navigation frame, various applications such as implementation of movements according to the user pattern, intuitive movement implementation and the control of the state of the display device are possible. Also, in the product design, there is no limitation on the rotation direction of the body frame, various designs regarding the outer appearance of the user instruction input device 100 are possible.
3. Movement Detection
In the existing technology, a simple stoppage is determined, but in the user instruction input device 100, the various movements such as the stoppage, minute movements, slow movements and fast movements can be detected, and the basis for more improved movements is provided through such various forms of movement detections. Also, the movement estimation function used in detecting movements makes the input correspond to the output by 1:1, thereby not occupying many resources.
4. Mapping
The mapping function consisting of the depression area, the scaling area and the limitation area provides more detailed and intuitive movements. Movements such as a trembling of a hand are removed through the depression area, and minute movements can be implemented through the scaling area, and the limitation of excessive movements is possible through the limitation area. In such a mapping function, it is possible to only take values of desired areas.
Also, the mapping function can convert a floating point value into a normalized digital value, and through the digitalization, advantages of digital signals such as reduction of noise and reduction of transmitted data amount are provided. Also, the mapping function used here does note require a separate initialization time and data sampling as in a model-based filtering, and is a simplified function where the input corresponds to the output by 1:1.
5. Stable and Accurate Movement Implementation Using Weighted Averages
In the user instruction input device 100, the weighted average is calculated based on each set of information implemented by the output of the angular rate sensor and the output of the accelerometer, so more stable and accurate movements can be implemented. If only the angular rate is used, accumulated errors by the bias change are generated in the process of implementing angles by integrating angular rates, thereby generating divergence of angular rates, and there technologies to resolve such a problem are known. Some examples of such technologies are a method of estimating a bias through Kalman filter, a method of using a digital filter through frequency analysis and a method of estimating a bias by analyzing given time and critical values. However, all such existing technologies excessively consume system resources and require a large amount of operation.
In contrast, in the case of the user instruction input device 100, the concept of the weighted average is applied using the angular rate sensor and the accelerometer, so the divergence of the angle can be simply limited by the accelerometer, by which the model or the filter used in estimating the bias of the angular rate can be simplified, and the accuracy of the attitude angle measurement can be improved. Through the calculated attitude angle, more stable and accurate movements can be implemented.
Also, in the user instruction input device 100, if the movement is detected by the movement estimation function, the user-intended various movements can be expressed by changing each weight (α1, α2, α3 of equation 7) according to the detected movement. That is, appropriate movements harmonized with the situation can be implemented.
6. Reducing System Initialization Time
According to a simplified system of the user instruction input device 100, the initialization time of the device can be reduced. A representative example is the concept of a weighted average. If an angle is implemented only by an angular rate sensor, a separate filtering technique such as Kalman filtering is required to minimize accumulated errors. In the case of the Kalman filtering, the initialization step for the initial bias estimation or bias setting is essentially required.
In contrast, the user instruction command device 100 can calculate the accurate angle without such an initialization step by implementing each set of information using the weighted average with the output of the accelerometer along with the accelerometer. That is, the accuracy of the attitude angle measurement can be improved with the system is simplified.
Also, unlike the model-based filtering, the mapping function centers on 1:1 correspondence, so it contributes to initialization time reduction to some extent.
7. Reducing Power Consumption
According to a simplified system of the user instruction input device 100, the consumption power can be reduced based on the reduction of the initialization time and operation amount. As the initialization time of the system is reduced, there can be simplified operation modes such as operation mode, power-down mode and power-off mode.
The existing technologies needed temporary steps such as a stand-by mode that stabilizes the system for entering the operation mode. However, the user instruction input device 100 does not need a temporary step such as a stand-by mode, so the power supplied to a certain element can be selectively turned off. Hence, if the on-off of the device power gets easy, the consumption power can be more reduced.
It should be understood by those of ordinary skill in the art that various replacements, modifications and changes may be made in the form and details without departing from the spirit and scope of the present invention as defined by the following claims. Therefore, it is to be appreciated that the above described embodiments are for purposes of illustration only and are not to be construed as limitations of the invention.
Number | Date | Country | Kind |
---|---|---|---|
10-2008-0113610 | Nov 2008 | KR | national |
10-2009-0027100 | Mar 2009 | KR | national |
Number | Date | Country | |
---|---|---|---|
Parent | 12604780 | Oct 2009 | US |
Child | 15265639 | US |