INPUT METHOD AND DEVICE FOR THE CONTROL OF THREE DIMENSIONAL MOVEMENTS
TECHNICAL FIELD The present invention relates to an input method for controlling a three- dimensional movement such as a three-dimensional rotation or translation of an object on a screen in terms of computer graphics, and an input device therefor.
BACKGROUND ART Mice and track balls, which are widely known in the prior art as input devices used in a general field of computers, are input devices for controlling a two dimensional movement of an object on a computer screen. As computer graphics develop, there is a need for controlling a three-dimensional movement of the object on the screen. This cannot be accomplished by the use of conventional mice or track balls.
Fig. 1 shows a configuration of a conventional track ball as an example of input devices for controlling a two dimensional movement of an object. The track ball of Fig. 1 is composed of a ball 10 which is positioned at the center, a first sensor 11 for detecting the movement of the ball in a horizontal direction, a second sensor 12 for detecting the movement of the ball in a vertical direction, a third sensor 13 for detecting a pushing operation of the ball 10, and a synthesis section 14 for synthesizing signals detected from such three sensors and transferring them to a control section. With such a conventional track ball, the two dimensional movement of the object on the computer screen could be controlled and inputted. On the other hand, as an input device for controlling a three-dimensional movement, space balls are known in the art. The space ball mechanically detects a l
physical force applied to the ball using a spring, translates the force, and inputs a three-dimensional rotation of the object on the screen. However, such a space ball requires a high unit cost for its manufacture because of the use of a mechanical instrument, the spring, and upon operating the space balls, it produces many errors and causes frequent mechanical problems.
In addition, there is a three-dimensional input device to be used in virtual reality or motion capture, manufactured by Polhemus Co., which detects a three- dimensional position and direction by way of a magnetic field. Such a device has a disadvantage in that a special peripheral unit for applying the magnetic field is additionally necessary. Also, another shortcoming of the device is that it costs a lot so that it cannot be available as an input device for a common computer system.
DISCLOSURE OF THE INVENTION
Therefore, the present invention has been made in view of the above problems, and it is an object of the present invention to provide an input method for controlling a three-dimensional rotation of an object on a computer screen by employing at least two sensors for detecting a movement of a track ball.
It is another object of the present invention to provide an input method for controlling a three-dimensional translation of an object on a computer screen, on the basis of a motion of the track ball which is detected by at least two sensors, as described above.
It is yet another object of the present invention to provide an input device for controlling a three-dimensional movement of an object on a computer screen by employing at least two sensors for detecting a motion of the track ball. In accordance with one aspect of the present invention, the above and
other objects can be accomplished by the provision of an input method tor controlling a three-dimensional movement, the method comprising the steps of:
(a) calculating a rotational angular velocity of a track ball by using each position value of at least two sensors and each tangential velocity of the sensors resulting from a motion of the track ball; and
(b) controlling the three-dimensional rotation of an object on a screen, the rotation corresponding to a rotational motion determined by the rotational angular velocity of the track ball which is calculated in step (a). In accordance with another aspect of the present invention, there is provided an input method for controlling a three-dimensional movement, the method comprising the steps of:
(a) calculating a rotational angular velocity of a track ball by using each position value of at least two sensors and each tangential velocity of the sensors resulting from a motion of the track ball; and
(b) controlling a three-dimensional translation of an object on a screen, the translation having a specific proceeding direction determined by the rotational angular velocity of the track ball which is calculated in step (a) and a magnitude corresponding to the rotational angular velocity.
In accordance with yet another aspect of the present invention, there is provided an input device for controlling a three-dimensional movement, the device comprising: a track ball which performs a three-dimensional rotation according to a user's operation for inputting the three-dimensional movement; at least two sensors detecting velocity, which are equipped in specific positions with respect to
the ball; and, a calculating means which calculates a rotational angular velocity of the track ball to obtain a numerically stable solution, by using each position of the sensors and each angular velocity detected by the sensors.
BRIEF DESCRIPTION OF THE DRAWINGS
The above and other objects, features and other advantages of the present invention will be more clearly understood from the following detailed description taken in conjunction with the accompanying drawings, in which:
Fig. 1 shows a configuration of one example of conventional input devices for controlling a two dimensional movement;
Fig. 2 shows an appearance of an input device for controlling a three- dimensional movement according to an embodiment of the invention;
Fig. 3 is a block diagram of an input device for controlling a three- dimensional movement according to the invention; Fig. 4 is a view illustrating an input manner of controlling a three- dimensional rotation in terms of an input method for controlling a three-dimensional movement according to the invention;
Fig. 5 is a view illustrating an input manner of controlling a three- dimensional translation in terms of an input method for controlling a three- dimensional movement according to the invention;
Fig. 6 is a flow chart showing an input manner of controlling a three- dimensional translation in terms of an input method for controlling a three- dimensional movement according to the invention;
Fig. 7 is a flow chart showing an embodiment of an input method for controlling a three-dimensional movement according to the invention; and
Fig. 8 is a flow chart showing another embodiment of an input method for controlling a three-dimensional movement according to the invention.
BEST MODE FOR CARRYING OUT THE INVENTION The present invention is concerned with an input method for controlling a three-dimensional movement, and an input device therefor. Fig. 2 shows an appearance of an input device for controlling a three-dimensional movement according to an embodiment of the invention, the input device being equipped with three sensors. As shown in Fig. 2, the three sensors 22-1, 22-2, and 22-3, are positioned around a ball 20. In the invention, each position of the sensors is of importance, a value representing each position of the sensors being hereinafter referred to as a "position value". Each position value is a fixed position-vector value. When a user operates the ball 20, each sensor detects a velocity thereof. A value representing the velocity is referred to as a "tangential velocity". Each tangential velocity is a velocity- vector value which is physically variable in its direction and magnitude according to time. In accordance with the invention, each position value of the sensors and tangential velocity detected thereby are used to calculate a three-dimensional rotational angular velocity of an object on a screen. Then, the three-dimensional rotational angular velocity of the ball determines a rotational motion of the object, and a three-dimensional rotation of the object is controlled to correspond to the rotational motion.
Fig. 3 shows a block diagram of an input device for controlling a three- dimensional movement according to the invention, the input device being equipped with three sensors. The three sensors 22-1, 22-2, and 22-3, are positioned around a ball 20. When a user operates the ball 20, each sensor measures a tangential
velocity. Each position value of the sensors and tangential velocity detected thereby are used to calculate a rotational angular velocity of the ball with the aid of a processor 414. The rotational angular velocity of the ball is transmitted to a computer system through an interface 416. A description will hereinafter be given of an input manner of controlling a three-dimensional rotation in terms of an input method for controlling a three- dimensional movement.
Fig. 4 shows an input manner of controlling a three-dimensional rotation in terms of an input method for controlling a three-dimensional movement according to the invention. In the drawing, with respect to the ball 20, positions of three sensors 22-1, 22-2 and 22-3, respectively, tangential velocity (pi, p2 and p3, respectively) and an angular velocity of the ball calculated therefrom, are shown.
To calculate the angular velocity of the ball, each position value of sensors, for example, where two sensors are employed, and each tangential velocity measured by the sensors when a user operates the ball, is used.
Provided that each position value of the two sensors are pι=(xι, yi, z ) and P2=( 2, Y2, zi), respectively, and each tangential velocity measured by the sensors are p1'=(xι', yi', z ) and p2'-(x2', y2', z2'), respectively, and the angular velocity of the ball is given by ω , a relation is expressed as follows. [Equation 1]
Am = b where A and b are as follows, and particularly, b is a vector quantity.
[Equation 2]
The equation 1 provides a solution when t ÷ ± p2 is given. In the invention, this matrix equation is calculated to find an angular velocity ω by a singular-value decomposition method for the 6 x 3 matrix. That is, it can be decomposed into A = UΣVT , wherein U is a 6 x 6 matrix, V is a 3 x 3 matrix and ∑ is as follows .
[Equation 3]
where σ σ
2 and <τ
3 are singular values of the matrix A. Accordingly, the solution of Equation 1, that is, the angular velocity ά) becomes VΣ
+U
τb , where Σ
+ is as follows. [Equation 4]
0 0 0 0 0
Σ+ = 0 σ, 0 0 0 0
-1
0 0 σ3 _1 0 0 0
In this way, the angular velocity Cύ of the ball can be calculated using each position value of the sensors and tangential velocity measured by the sensors when
a user operates the ball. Such an angular velocity ω of the ball determines a rotational motion of the object on the screen, and a three-dimensional rotation of the object on the screen can be controlled to correspond to the rotational motion.
On the other hand, if σt ≠ 0 is given, the angular velocity a of the ball
can be expressed as follows.
[Equation 5] u b u b u b m = — — vx + ^— v2 + -^— v3 σ σ2 σ3 where u, represents a z'-th column of U, and V\ represents a z'-th row of N.
Thus, the solution of Equation 5, that is, the angular velocity on of the ball is numerically more stable as the value of cr. is greater. Moreover, since σl is a singular value of the matrix A which is determined by position value of each sensor, the position value of each sensor which gives the largest value of σl is an
optimal position of each sensor.
The optimal position of each sensor can be found by the method described below. Each position of the sensors is specified on a coordinate system whose origin is a center of the track ball. Though coordinates are variable as the sphere rotates, the relative positions are the same. Thus, each position value of the sensors indicates a relative position thereof.
Let each sensor locate symmetrically with respect to a y-axis on an yz coordinate system. That is, if pi = (0,sin#,cosι9) , p2 = (0, -sin#,cos#) and 0 < Θ < πl2 are given, singular values are as follows. [Equation 6]
σ, = -sfϊ, σ2 = -sjϊcosθ, σ3 =
In the Equation 6, when the absolute value of σ,. is the greatest value,
cos θ - sin θ is obtained. That is, θ should be 45°. Thus, the optimal positions of the sensors are as follows.
[Equation 7]
Also, for the case that three sensors are employed, the same matrix equation of Equation 1 is employed and its numerical method for a solution is the same as the above case. Provided that position values of the three sensors are pι=(
χι
> yi, zi), p =(x
2, y , z
2) and p
3=(x
3, y
3, z
3), respectively, and tangential velocity measured by
the sensors are
Y3', z
3'), respectively, A and b axe as follows.
[Equation 8]
As in the case that two sensors are employed, when the absolute value of σt , which is a singular value of the matrix A, is a greatest value, the angular velocity of the ball, that is, the solution of the above matrix equation, is numerically stable. The matrix A is determined by each of position values of sensors so the optimal positions of sensors can be found.
Let each of the three sensors locate symmetrically, as specified below.
[Equation 9]
At this time, the singular values of the matrix A are as follows.
[Equation 10]
σx = V3 sinf , σ2 = σ3 = v3 cos— .
When the absolute value of σ; is the greatest value, θ should be 60°.
Thus, the optimal positions of the sensors are as follows.
A
2 2
It can be seen that when three sensors are employed, the absolute value of a singular value is 1.5, while when two sensors are employed, the absolute value is 1, demonstrating that numerical stability is improved by about 50 % by employing one more sensor.
In a similar fashion, for the case that four sensors are employed, each position of the sensors can be found.
Next, a description is given of an input manner of controlling a three- dimensional franslation in terms of an input method for controlling a three- dimensional movement.
Fig. 5 is a view illustrating an input manner of controlling a three- dimensional translation in terms of an input method for controlling a three- dimensional movement according to the invention.
Referring to Fig. 5, once a three-dimensional rotational angular velocity 10 is determined, a certain proceeding direction determined thereby is specified (for example, 11 in Fig. 5), whereby a translation as long as a distance which corresponds to a magnitude of the rotational angular velocity can be made, performing the input for controlling the three-dimensional translation. Providing that a scaling factor is α which is employed for a translation by a distance corresponding to a magnitude of rotational angular velocity, the translated distance is ax (x represents an absolute value of the rotational angular velocity). Fig. 6 is a flow chart showing an input manner of controlling a three- dimensional translation in terms of an input method for controlling a three- dimensional movement according to the invention.
As shown in Fig. 6, the input for controlling a three-dimensional franslation is performed as follows: when a user operates a ball 201, a rotational angular velocity of the ball is calculated by each sensor 202, then a three-dimensional translation to a value which is proportional to a direction and magnitude of the rotational angular velocity of the ball is mapped 203, and finally, a signal for controlling the three-dimensional translation is outputted 204.
As for the input for controlling a three-dimensional movement, such a three-dimensional rotation and translation can be performed together by one
instrument, or be each performed independently. For instance, one ball is employed for controlling both the three-dimensional rotation and the three- dimensional translation by converting a mode, as is the case of Fig. 7. Alternatively, two balls are independently employed. Particularly, one ball is for controlling the three-dimensional rotation and the other for the three-dimensional translation, as is the case of Fig. 8.
Fig. 7 is a flow chart showing an embodiment of the input method for controlling a three-dimensional movement according to the invention. As shown in Fig. 7, the input for the control of a three-dimensional movement is performed as follows. After an operation mode is set 301, a three-dimensional rotational angular velocity of a ball is calculated by sensors 303 as a user operates the ball 302. Then, it should be determined whether the mode is a three-dimensional rotation or a three-dimensional translation 304. If it is the rotation mode, a signal for controlling the three-dimensional rotation corresponding to the rotational motion determined by the calculated rotational angular velocity is outputted 305, and if it is the translation mode, a signal for mapping the three-dimensional translation to the value which is proportional to the direction and magnitude of the calculated rotational angular velocity is outputted 307.
Fig. 8 is a flow chart showing another embodiment of the input method for controlling a three-dimensional movement according to the invention. As shown in Fig. 8, the input for the control of a three-dimensional movement is performed as follows. The three-dimensional rotation may be controlled by using a ball which the left hand operates 401, while the three-dimensional translation may be controlled by inputting using another ball which the right hand operates 404. As each hand operates the ball, sensors detect a rotational angular velocity of the ball
402, 405. With regard to each of the calculated rotational angular velocities, tor the control of a three-dimensional rotation (that is, operated by the left hand), a signal is outputted for controlling the three-dimensional rotation corresponding to the rotational motion determined by the rotational angular velocity 403, while for the control of a three-dimensional translation (that is, operated by the right hand) a signal is outputted for mapping the three-dimensional translation to the value which is proportional to the direction and magnitude of the calculated rotational angular velocity 407.
INDUSTRIAL APPLICABILITY
As apparent from the above description, according to the present invention which employs at least two sensors to detect a motion of a track ball, a three-dimensional rotation and translation of an object on a computer screen is capable of being controlled. In the invention, a rotational angular velocity of the track ball is calculated using each position value of two or more sensors and each tangential velocity of the sensors resulting from the motion of the track ball. The invention, in terms of such a calculation, provides a method for obtaining a numerically stable solution, and further provides an optimal position of each sensor therefor. Although the preferred embodiments of the present invention have been disclosed for illustrative purposes, those skilled in the art will appreciate that various modifications, additions and substitutions are possible, without departing from the scope and spirit of the invention as disclosed in the accompanying claims.