Three dimensional (“3D”) input devices are currently used in high end 3D computer-aided design (“CAD”) and 3D rendering software markets. Such 3D input devices, such as a keyboard, do not provide “mouse grade,” high precision two dimensional (“2D”) cursor movement, and therefore typically require supplemental input peripherals. A user typically will use his right hand to operate the 2D mouse and will utilize a 3D input device on the left side of keyboard using his left hand. As a result, a user is required to use both hands to do 3D graphic work.
In the past, several attempts have been made to facilitate manipulation of 3D applications. For example, a six degrees of freedom joystick was described at one point. However, the joystick requires a standard mouse for conventional 2D cursor control. Additionally, an input device with 2D mouse function and four degrees of freedom input control has also been described in the past. However, the input device is not well accepted by end users due to ergonomic issues. A charge coupled device (“CCD”) that provides six degrees of freedom input control has also been previously described. However, the device has operational ergonomic difficulties.
Another approach to add functionality to the standard mouse is to incorporate a trackball into the mouse body. However, this type of mouse cannot provide coarse or fast velocity 3D command control typically required for fly-through movement in virtual 3D environments. Other commonly used input devices include game pads and joysticks. However, game pads and joysticks typically utilize a game specific design and do not provide mouse cursor functions. As a result, game pad and joysticks are not suitable for conventional business software.
Requirements for a 3D input device vary significantly and depend on a 3D application's contents. For example, 3D CAD users typically require high precision 3D command control meaning the control speed for 3D manipulation is slower (except for a “quickview” action on 3D objects). On the other hand, 3D business software, such as a virtual model house or a virtual 3D geological map, typically require fly-through or walk-through based 3D commands. For these kinds of applications, fast velocity commands in six degrees of freedom are required to quickly move in the virtual 3D environment. In case of 3D PC games, fast commands in six degrees of freedom can be required for walk-through situations, as well as high precision/slow 3D controls such as yaw or pitch, for target shooting.
Thus, it would potentially be useful to provide a multidimensional device that facilitates manipulation of 3D applications in a convenient and efficient manner. Further, it may be useful to provide a device that provides conventional 2D input commands as well as commands in six degrees of freedom. Moreover, it may be useful to provide a system that conveniently and efficiently interfaces with a multidimensional device.
The foregoing examples of the related art and limitations related therewith are intended to be illustrative and do not provide an exhaustive review of the prior art. Other limitations of the related art will become apparent to those of skill in the art upon a reading of the specification and a study of the drawings in comparison with such prior art.
A method, system and apparatus for a pointing device with multiple degrees of freedom in various embodiments is provided. The embodiments described herein provide examples of embodiments of the invention. Thus, the embodiments should be understood as providing illustrations of the invention rather than limitations on the invention.
In an embodiment, a pointing device is provided. The pointing device includes a chassis and at least one center push button mounted on the chassis. The pointing device further includes a communications interface for coupling with a system. The pointing device also includes a signal interface between the first center push button and the communications interface, the signal interface carrying signals from the first center push button to the communications interface.
In another embodiment, a pointing device is provided. The pointing device includes a chassis. The pointing device further includes a motion tracking mechanism mounted in the chassis. The pointing device also includes a communications interface for coupling with a system. The pointing device includes a signal interface between the motion tracking mechanism and the communications interface. The signal interface carries signals from the motion tracking mechanism to the communications interface. The pointing device consists of a single center push button. The center push button is coupled to the signal interface and mounted on the chassis.
In yet another embodiment, a system is provided. The system includes a host computer. The system further includes an operating system executed by the host computer. The system also includes a device driver included in the operating system. The system includes a keyboard emulation module included in the device driver. The system further includes a pointing device coupled to the host computer. The pointing device has at least one center push button. The pointing device communicates with the device driver and provides signals from the at least one center push button to the device driver. The keyboard emulation module of the device driver is to provide keyboard command outputs corresponding to the signals from the at least one center push button.
In still another embodiment, a pointing device is provided. The pointing device includes a chassis and a motion tracking mechanism mounted in the chassis. The pointing device also includes a communications interface for coupling with a system. The pointing device further includes a signal interface between the motion tracking mechanism and the communications interface. The signal interface carries signals from the motion tracking mechanism to the communications interface. The pointing device consists of at least one center push button. The at least one center push button is coupled to the signal interface and mounted on the chassis.
The accompanying illustrations provide illustrations of various embodiments of the invention, and should be understood as providing examples of the invention, rather than limiting the invention.
A method, system and apparatus for a pointing device with multiple degrees of freedom in various embodiments is provided. The embodiments described herein provide examples of embodiments of the invention. Thus, the embodiments should be understood as providing illustrations of the invention rather than limitations on the invention.
A pointing device allowing for control of multiple degrees of freedom is provided. The pointing device may use center push buttons to amplify the number of control modes available, and thereby to increase the degrees of freedom which may be controlled. The pointing device may further be used with a variety of systems and applications to enhance user control.
In the following description, for purposes of explanation, numerous specific details are set forth in order to provide a thorough understanding of the invention. It will be apparent, however, to one skilled in the art that the invention can be practiced without these specific details. In other instances, structures and devices are shown in block diagram form in order to avoid obscuring the invention.
Reference in the specification to “one embodiment” or “an embodiment” means that a particular feature, structure, or characteristic described in connection with the embodiment is included in at least one embodiment of the invention. The appearances of the phrase “in one embodiment” in various places in the specification are not necessarily all referring to the same embodiment, nor are separate or alternative embodiments mutually exclusive of other embodiments.
A multi-dimensional pointing device may be provided in a variety of embodiments.
In one embodiment, button 120A can be used to implement an X translation command, a Z translation command, a pitch command (rotate about the X axis) or a roll command (rotate about the Z axis). Similarly, button 120B in another embodiment may be used to implement a Y translation command, a Z translation command, a yaw command (rotate about the Y axis) or a roll command. Likewise, button 120C may be used in yet another embodiment to implement a Y translation command, a Z translation command, a yaw command or a roll command. These more limited subsets of full six degrees of freedom (6DOF) can be useful in some applications. Additionally, buttons 120 may be implemented with various different structures, such as traditional switches with four points of contact used in joysticks, for example.
While a single button may be used to implement various functionality, one may use two buttons in other embodiments.
Other switches may be useful in implementing a pointing device with multiple dimensions or additional degrees of freedom.
The fifth signal provided allows one to change functionality of a switch, or to change context in which a switch operates, for example. This, in turn, allows one to change from roll to pitch to yaw, for example. Similarly, this allows one to change translation signals of a pointing device from translation (motion along an axis) into rotation (rotation about an axis) as a result of a context change for the device.
One may thus use the center push buttons on various devices.
One can use the center push button in various ways, either with a single center push button or with multiple center push buttons. With a single center push button, two sets of two degree of freedom 3D commands may be generated at any time, with the center push button used to toggle between the two modes. Thus, one may use the button to implement translation commands along two axes, then use the center push fifth signal to switch to implementing rotation commands about two axes. As an example, in one embodiment of the device of
With two center push buttons, additional functionality can be provided. Table 2 illustrates a truth table for controlling modes with two center push buttons.
With four sets of control modes, one can switch between four different, and distinct, types of controls. Thus, the first control mode may involve the top button providing X or Z translation and the left button providing Y or Z translation. The second control mode (with the top center push button pressed) may involve pitch or roll commands for the top button and yaw or roll commands for the left button. With the left center push button pressed, or with both center push buttons pressed, the pointing device can be used to generate commands using the same raw data in other modes, representing a third and fourth mode respectively. Moreover, with such a configuration, one can expand the embodiments of
As one may expect, this allows for further expansion when three center push buttons are used. Table 3 provides a truth table for such a configuration.
As can be seen, the number of control modes can be controlled as if by a binary number—each additional center push button allows for a doubling of the number of modes. Additionally, one can layer these modes on degrees of freedom previously provided through the rest of the button (the four contacts at the cardinal points), such that one may expand the 6DOF capabilities of three buttons to 48DOF.
One may use these capabilities in a variety of applications. For example, one may control video games with various different degrees of freedom, using such capabilities. A center push signal may be used as a toggle switch for a 3D command mode related to velocity—a user may toggle between fast and slow modes with a single center push button, may use multiple buttons to toggle through several modes (e.g. slow, regular, fast), or may use multiple pushes of a center push button to ramp up or down a scale of speeds (e.g. ascending from slow to regular/medium to fast).
Similarly, a center push button may be used as a toggle for cruise control. Pushing the center push button (or pushing and holding) may be used to set a speed or activate a cruise control function. Thus, a subject in a video game may continuously drive, fly or run at a set speed, for example.
One example of use of mode control is illustrated in
One may also use other modes in the video game area of technology. For example, one may start operation in a video game in a “walk” mode. Signals from the pointing device would cause an image to walk forward, to the sides, backward, etc. A center push signal may then transition to a “run” mode. A further center push signal may then transition to a “fly” mode. Thus, a user may then cause an image to run in various directions, or to fly. A “jump” mode or “fight” mode are other examples of such potential mode transitions.
Another opportunity with respect to video games and other simulated environments is use of the center push signals to enter more sophisticated modes. A “fight” mode, for example, might involve allowing a simple pointing device signal to generate a complex command, such as bowing or kicking with a spiral jump, for example. Such commands can be executed as complex scripts triggered by simple pointing device commands when an appropriate mode is entered.
This may be illustrated with reference to
In one embodiment, a user may use a first mode for simple commands (e.g. move forward). The user may then create scripts of complex commands which can be assigned to specific commands in other modes. With three center push buttons, a user has twelve contact signals in each mode to work with, allowing for modes 2-8 to be assigned to up to 84 unique scripts, each associated with a separate contact signal.
While this discussion has centered primarily around video games, one will understand that it may relate to other simulated environments. Thus, use of these commands in a real-time remote control environment or an interactive environment would be possible. An interactive environment such as that provided by the Second Life networking system (available at www.secondlife.com) with an avatar that one may control may thus be amenable to such a system.
One may also use the various modes in CAD or animation software, allowing for control of different objects or types of motion during design of objects or design of animation sequences. The various modes can be assigned to different types of actions or to actions of different objects, for example. Likewise, customization of modes by users may be useful in such instances. Similarly, one can implement control of mapping software (such as fly over software available from Google Earth, for example), using these modes. Moreover, a reset mode or sequence of center push signals may also be implemented to allow one to undo or rewind a sequence of actions.
One may also control a robot (as discussed previously with respect to remote control), with various modes representing different types of action or motion of different parts of a robot. While a single object has six degrees of freedom in space, a linkage of objects may have many more degrees of freedom, requiring much more control of various component objects.
In one embodiment, in a first mode, the top button controls right and left rotation, and the right and left buttons control forward/backward motion and up/down motion. In a second mode, the top button controls pitch control of the arm, and the right and left buttons control yaw motion (about the Y axis) of the upper base. In a third mode, the top button controls pitch and roll motion of the arm, and the right and left buttons control forward/backward motion and open/close action of the gripper.
While control of 3D operation is one application of the pointing devices described herein, other software applications can be controlled with different modes, allowing for many commands operable based only on a pointing device. For example, one may assign commands from a program, such as cut, copy and paste, to various mode/contact selections. Similarly, while scripts of three dimensional action in animation or CAD can be useful, scripts recorded when using other types of software can also be assigned to pointing device signals. Thus, the degrees of freedom of motion can be adapted to other programs, such as those used for word processing or other data processing, for example.
In the case of a three dimensional application program (e.g. a CAD program or a game), emulation of 3D keyboard commands originating from a pointing device may make the system simpler for use with legacy 3D application programs.
All of this provides data out of a 3D command interface module 1750 which couples to a 3D application program 1770. Thus, application program 1770 receives expected signals (e.g. keyboard commands), even though a pointing device with various degrees of freedom is used. One need not reprogram application program 1770 in order to work with pointing device 1710—the emulation and data acquisition modules take care of the interface. However, from the point of view of the user, the pointing device with center-push buttons has an intuitive feel—pushing a button with an up-direction on a center-push button can cause an image to move up or rotate up, for example.
One may similarly emulate keyboard commands for more traditional application programs using a pointing device with multiple degrees of freedom.
As one may appreciate, keeping track of what mode someone is operating in can be difficult. A system necessarily must keep track. However, it may be useful to provide feedback to a user on this point as well.
As mentioned, a video/visual alert may also be desirable.
One skilled in the art will appreciate that although specific examples and embodiments of the system and methods have been described for purposes of illustration, various modifications can be made without deviating from the present invention. For example, embodiments of the present invention may be applied to many different types of software and operating systems or different types of computers. Moreover, features of one embodiment may be incorporated into other embodiments, even where those features are not described together in a single embodiment within the present document.
This application is a continuation-in-part of U.S. patent application Ser. No. 11/323,574, entitled “Multi-Dimensional Input Device” and filed on May 9, 2006, which is hereby incorporated herein by reference. This application is also related to U.S. Provisional Patent Applications Nos. 60/679,557, filed on May 9, 2005, and 60/680,910, filed on May 13, 2005, both of which are incorporated herein by reference
Number | Date | Country | |
---|---|---|---|
60679557 | May 2005 | US | |
60680910 | May 2005 | US |
Number | Date | Country | |
---|---|---|---|
Parent | 11323574 | Dec 2005 | US |
Child | 11827658 | Jul 2007 | US |