Computer input device with inertial instruments

A computer input device includes, in one embodiment, at least two accelerometers, at least two gyroscopes, and a processor within a housing. Signals from the accelerometers and the gyroscopes are utilized to determine the relative motion of the computer input device.

FIELD OF THE INVENTION

This invention relates generally to computer input devices, and in particular to computer input devices incorporating inertial instruments.

BACKGROUND

The importance of highly functional input devices for computing devices such as computers has grown in concert with the rise in functionality and speed of the computing devices themselves. One popular computer input device is the mouse. User-directed motion of a mouse is translated into motion of a cursor or other pointer on the computer display, and buttons, wheels, etc. on the mouse are utilized to, for example, select various images on the display. Conventional mechanical mice (or mouses) incorporate a roller ball. Sensors within the mouse detect the motion of the ball as the mouse is manipulated. However, the moving parts of mechanical mice frequently become contaminated with dust or other particulates, deleteriously impacting mouse performance.

One way to overcome the shortcomings of mechanical mice is to use optical sensors within the mouse to detect its motion. A mouse incorporating optical sensors, frequently termed an “optical mouse,” includes a light source, such as a laser or light-emitting diode, and a photosensor. Light from the light source is transmitted toward and reflects off of a surface as the mouse is moved thereover and the photosensor detects the reflected light many times a second. Movement of the mouse is determined based on slight changes in the images created by the reflected light.

While optical mice have compensated for many of the shortcomings of mechanical mice, they have deficiencies of their own. In particular, the motion of an optical mouse over optically specular, transparent, or highly reflective surfaces is difficult to determine with a high degree of accuracy. Moreover, the light source requires a relatively large amount of power, which may compromise the lifetime of battery-powered wireless mice.

SUMMARY

The foregoing limitations of conventional computer mice are herein addressed by using inertial sensors within a computer mouse to detect movement thereof. The computer mouse incorporating the inertial sensors demonstrates improved performance on surfaces unsuitable for optical mice operation.

In accordance with embodiments of the invention, a computer input device incorporates at least two accelerometers and at least two gyroscopes in a housing. Advantages of this approach include operability of the computer input device on specular or transparent surfaces, as well as improved accuracy, as gyroscope signals correct for any component of gravity detected by the nominally horizontal accelerometers.

In some embodiments, in order to combine the signals from the inertial sensors, a digital filter, for example a Kalman filter, is utilized. Furthermore, an optical sensor package may be incorporated into the computer input device to provide an alternative or complementary positioning system.

In one aspect, embodiments of the invention feature a computer input device having a housing for movement over a substantially two-dimensional surface, a sensor unit including at least two accelerometers and at least two gyroscopes within the housing, and a processor for determining relative motion of the computer input device utilizing signals from the accelerometers and the gyroscopes. In an embodiment, the signals from the gyroscopes are utilized to correct for non-uniformity and/or tilt in the substantially two-dimensional surface as the computer input device is moved thereover. An optical sensor for sensing relative motion of the computer input device may also be provided within the computer input device.

The computer input device may include a digital filter, for example a Kalman filter, for combining the signals from the accelerometers and the gyroscopes. Wireless or wired means for transmitting, to a computing device, data indicative of the relative motion of the computer input device may also be included. The housing may include at least one user-operable button, and the computer input device may include means for transmitting, to a computing device, data indicative of the button's operation. The data indicative of the button's operation may be utilized at least in part to indicate that the computer input device is substantially motionless.

In another aspect, embodiments of the invention feature a method of fabricating a computer input device. The method includes providing a housing, and disposing, within the housing: (i) a sensor unit including at least two accelerometers and at least two gyroscopes, and (ii) circuitry, responsive to the sensor unit, for determining movement of the housing over a substantially two-dimensional surface. In an embodiment, an optical sensor for sensing relative motion of the computer input device is provided within the housing. Means for transmitting, to a computing device, the relative motion of the computer input device may also be provided within the housing. In a further embodiment, a digital filter, for example a Kalman filter, for combining the signals from the accelerometers and the gyroscopes may be encoded into the circuitry.

In yet another aspect, embodiments of the invention feature a method of determining relative motion of a computer input device. The method includes providing at least two accelerometers, at least two gyroscopes, and a processor within a housing for movement over a substantially two-dimensional surface. The housing is moved over the substantially two-dimensional surface, and the relative motion of the housing is calculated utilizing signals from the accelerometers and the gyroscopes generated in response to the motion of the housing. The signals from the gyroscopes are utilized to correct for non-uniformity and/or tilt in the substantially two-dimensional surface.

Calculating the relative motion may include combining the signals generated by the accelerometers and the gyroscopes using, for example, a Kalman filter. The relative motion of the housing may also be transmitted to a computing device. The substantially two-dimensional surface may be non-uniform and/or tilted.

In another aspect, embodiments of the invention feature a computer input device including a housing for movement over a substantially two-dimensional surface. Within the housing are (i) means for sensing motion of the computer input device, (ii) means for correcting for non-uniformity and/or tilt of the substantially two-dimensional surface, and (iii) means for calculating relative motion of the computer input device utilizing signals from the means for sensing motion and the means for correcting.

In yet another aspect, embodiments of the invention feature a computing device including a processor, a display electrically connected and responsive to the processor, and a computer input device in communication with the processor. The computer input device includes a housing for movement over a substantially two-dimensional surface, a sensor unit, disposed within the housing, that includes at least two accelerometers and at least two gyroscopes, and circuitry for determining relative motion of the computer input device utilizing signals from the accelerometers and the gyroscopes.

DETAILED DESCRIPTION

Referring toFIG. 1A, a computer input device100includes a housing110and at least one user-operable button120thereon. The housing100may include, or consist essentially of, a rigid material, such as a plastic, and may be sized and shaped for movement (via human user manipulation) over a substantially two-dimensional surface130. More specifically, when the computer input device100is moved over the surface130, at least a portion of a bottom side of the housing110remains in contact with the surface130. This portion may take the form of a plurality of pads135, which facilitate the movement of and/or reduce friction between the housing100and the surface130. The pads135may be integral portions of the housing110or may be formed of a different material. In an embodiment, two or more user-operable buttons120are included on the housing100.

The surface130is substantially two-dimensional and is generally rigid. The surface130may be substantially optically featureless, specular, and/or transparent. In some circumstances, the surface130is tilted, i.e., lies at an angle α less than 90° with respect to the direction of gravity (depicted as direction138inFIG. 1A). The surface130may have microscopic non-uniformities, texture, and/or undulations such that, while the surface130is globally substantially two-dimensional, a computer input device100moving across it will experience tilt and motion in a direction normal thereto (the amount of which is small compared to the corresponding amount of motion in the plane of surface130).

FIG. 1Brepresents a schematic cross-section of the computer input device100along line1B-1B ofFIG. 1A. As shown, the housing110contains sensors and circuitry that cooperate to translate the movement of the computer input device100into the motion of a cursor or other pointer on a display of a computing device (further described below). More specifically, as the motion of the computer input device100is substantially two-dimensional, the housing110contains an accelerometer-gyroscope pair140,150for each of the two dimensions (termed an X axis and Y axis herein) defining the surface130. Accelerometer-gyroscope pair140, which tracks motion along the X axis, includes an accelerometer141and a gyroscope142, while accelerometer-gyroscope pair150, which tracks motion in the Y axis, includes an accelerometer151and a gyroscope152. Circuitry160connects electrically to the accelerometer-gyroscope pairs140,150and processes the electrical signals generated thereby. The circuitry160may include, or consist essentially of, a processor, such as a microprocessor or a digital signal processor.

As the computer input device100is moved across the surface130, the accelerometer-gyroscope pairs140,150generate signals responsive to the motion. Considering, for example, motion only along the X axis, the accelerometer141detects, and generates a signal representative of, the acceleration of the computer input device100along the X axis. The new position of the computer input device100along the X axis may then be calculated by double integration of the acceleration signal from the accelerometer141. The gyroscope142detects when the X axis (along which accelerometer141detects acceleration) rotates at a slight angle from horizontal due to tilt and or non-uniformity in the surface130. Such rotation causes the accelerometer141to detect acceleration due to gravity, and introduces error into the accelerometer141signal. That is, the signal from the accelerometer141represents not only motion across the plane of the substantially two-dimensional surface130, but also acceleration due to gravity at a non-normal angle to the surface130. The signal from the gyroscope142is utilized to correct the accelerometer141signal, i.e., remove therefrom any influence of gravity.

More specifically, the gyroscope142detects when the X axis rotates slightly due to tilt and/or non-uniformity, and outputs a signal signifying such rotation. The circuitry160utilizes the signal from the gyroscope142to correct the signal received from the accelerometer141(i.e., the circuitry160combines the signals from the gyroscope142and the accelerometer141by using, for example, a filter or algorithm), thus eliminating error due to the tilt and/or non-uniformity. In an embodiment, the circuitry160includes a filter which combines the signals from the accelerometer141and the gyroscope142. The filter may include, or consist essentially of, a digital filter, such as a Kalman filter, or an analog filter. In an embodiment, the filter may include both analog and digital portions. The filter may also filter noise from the signals from the accelerometer141and the gyroscope142. The filter or algorithm may be embodied in software (e.g., written in any one of a number of high-level languages, such as FORTRAN, PASCAL, C, C++, C#, Java, Tcl, or BASIC; or in a script, macro, or functionality embedded in commercially available software, such as EXCEL or VISUAL BASIC; or in an assembly language directed to a microprocessor resident on a computer), or hardware (e.g., as an application-specific integrated circuit), or as firmware embedded in a microprocessor. The functionality of the circuitry160is straightforwardly implemented by one of skill in the art without undue experimentation.

The accelerometer-gyroscope pair150operates in a similar manner, but detects motion along the Y axis, which is substantially perpendicular to the X axis. The accelerometer-gyroscope pairs140,150operate in tandem with respect to the X-axis and Y-axis components of a particular motion. The circuitry160receives the signals from the accelerometer-gyroscope pairs140,150and determines the motion (and therefore the new position) of the computer input device100.

Signals may be output from the accelerometer-gyroscope pairs140,150even when the computer input device100is substantially motionless. For example, signals may be output from the accelerometer-gyroscope pairs140,150due to sensor drift. In order to prevent spurious results, the filter or algorithm encoded in the circuitry160may be tuned or coded so as to indicate a lack of movement when both the velocity (obtained by integrating the acceleration signal) and acceleration of the computer input device100are very small. Both velocity and acceleration should be considered. For example, if the computer input device100is moving at a constant velocity, the acceleration thereof will be very small; therefore, acceleration alone is an insufficient indicator. In one embodiment, the computer input device100is considered to be motionless when the detected velocity thereof is less than approximately 0.02 m/s and the detected acceleration thereof is less than approximately 0.1 m/s2. These threshold values are approximate and can be tuned for individual sensors and operators.

In some embodiments, the button120is operated by a user of the computer input device100when the computer input device100is substantially motionless. Thus, the filter or algorithm may be coded to consider the computer input device100to be motionless when the button120is operated, and to be reset based on the current values of the signals from the accelerometer-gyroscope pairs140,150when the button120is operated. In this way, the input device is normalized or calibrated to its environment.

In some embodiments, when the computer input device100is substantially motionless, i.e., its sensed acceleration and velocity fall below the thresholds discussed above and/or the button120is operated, the signals from the accelerometer-gyroscope pairs140,150are read and utilized to update the filter or algorithm that converts the signals into motion. The filter or algorithm includes sensor biases which are updated at this time based on the signals from the accelerometer-gyroscope pairs140,150. A component of any tilt and/or non-uniformity in the surface130at the position of the computer input device100is included in the new bias for the accelerometers141,151, thus correcting for the tilt and/or non-uniformity while the computer input device is motionless. Once the computer input device100is moved again, the gyroscopes142,152correct for any additional tilt and/or non-uniformity in the surface130as described above.

In an embodiment, the housing110also contains an optical sensor170that also detects the relative motion of the computer input device100. Optical sensor170may include a light source, for example a laser or a light-emitting diode, and a detector. Light from the light source is emitted towards the surface130and is reflected back to the detector. The detector may compare images from the detected light (at, for example, many times per second) to determine the direction and speed of motion of the computer input device100. In an embodiment, the optical sensor170is utilized in parallel with the accelerometer-gyroscope pairs140,150. In another embodiment, a user may select one of the optical sensor170and the accelerometer-gyroscope pairs140,150to be operative at a given time—the other may then be powered down to decrease power consumption.

Referring toFIG. 2, the computer input device100may be utilized as a component of a computing device200. The computing device200includes a processor210electrically connected to a display220. The processor210and the display220may be housed as separate units connected wirelessly or by wire, or may be housed together in the same package. The processor210may include, or consist essentially of, a microprocessor or other integrated circuit. In an embodiment, the processor210is also in electrical connection with other components generally found associated with a personal computer, for example storage media and/or input devices, such as a keyboard (not shown). The computer input device100may be in electrical communication with the processor210. In an embodiment, a conductive cable (not shown) connects the computer input device100to the processor210. In another embodiment, the computer input device100includes a transmitter module180(seeFIG. 1B) that wirelessly transmits, for example by radio-frequency or infrared signal, signals associated with the motion of the computer input device100to the processor210. The signals may be received by the processor210and translated into corresponding motion of a cursor230on the display220.

The invention may be embodied in other specific forms without departing from the spirit or essential characteristics thereof. The foregoing embodiments are therefore to be considered in all respects as illustrative of, rather than limiting on, the invention described herein.