One of the most common and, at the same time, useful input devices for user control of modern computer systems is the mouse. The main goal of a mouse as an input device is to translate the motion of an operator's hand into signals that the computer can use. This goal is accomplished by displaying on the screen of the computer's monitor a cursor which moves in response to the user's hand movement. Commands which can be selected by the user are typically keyed to the position of the cursor. The desired command can be selected by first placing the cursor, via movement of the mouse, at the appropriate location on the screen and then activating a button or switch on the mouse.
Positional control of cursor placement on the monitor screen was initially obtained by mechanically detecting the relative movement of the mouse with respect to a fixed frame of reference, i.e., the top surface of a desk or a mouse pad. A common technique is to use a ball inside the mouse which in operation touches the desktop and rolls when the mouse moves. Inside the mouse there are two rollers which touch the ball and roll as the ball rolls. One of the rollers is oriented so that it detects motion in a nominal X direction, and the other is oriented 90 degrees to the first roller so it detects motion in the associated Y direction. The rollers are connected to separate shafts, and each shaft is connected to a separate optical encoder which outputs an electrical signal corresponding to movement of its associated roller. This signal is appropriately encoded and sent typically as binary data to the computer which in turn decodes the signal it received and moves the cursor on the computer screen by an amount corresponding to the physical movement of the mouse.
More recently, optical navigation techniques have been used to produce the motion signals that are indicative of relative movement along the directions of coordinate axes. These techniques have been used, for instance, in optical computer mice and fingertip tracking devices to replace conventional mice and trackballs, again for the position control of screen pointers in windowed user interfaces for computer systems. Such techniques have several advantages, among which are the lack of moving parts that accumulate dirt and that suffer from mechanical wear when used.
Distance measurement of movement of paper within a printer can be performed in different ways, depending on the situation. For printer applications, we can measure the distance moved by counting the number of steps taken by a stepper motor, because each step of the motor will move a certain known distance. Another alternative is to use an encoding wheel designed to measure relative motion of the surface whose motion causes the wheel to rotate. It is also possible to place marks on the paper that can be detected by sensors.
Motion in a system using optical navigation techniques is measured by tracking the relative displacement of a series of images. First, a two dimensional view of an area of the reference surface is focused upon an array of photo detectors, whose outputs are digitized and stored as a reference image in a corresponding array of memory. A brief time later a second image is digitized. If there has been no motion, then the image obtained subsequent to the reference image and the reference image are essentially identical. If, on the other hand, there has been some motion, then the subsequent image will have been shifted along the axis of motion with the magnitude of the image shift corresponding to the magnitude of physical movement of the array of photosensors. The so called optical mouse used in place of the mechanical mouse for positional control in computer systems employ this technique.
In practice, the direction and magnitude of movement of the optical mouse can be measured by comparing the reference image to a series of shifted versions of the second image. The shifted image corresponding best to the actual motion of the optical mouse is determined by performing a cross-correlation between the reference image and each of the shifted second images with the correct shift providing the largest correlation value. Subsequent images can be used to indicate subsequent movement of the optical mouse using the method just described.
At some point in the movement of the optical mouse, however, the image obtained which is to be compared with the reference image may no longer overlap the reference image to a degree sufficient to be able to accurately identify the motion that the mouse incurred. Before this situation can occur it is necessary for one of the subsequent images to be defined as a new reference image. This redefinition of the reference image is referred to as re-referencing.
Measurement inaccuracy in optical navigation systems is a result of the manner in which such systems obtain their movement information. Optical navigation sensors operate by obtaining a series of images of an underlying surface. This surface has a micro texture. When this micro texture is illuminated (typically at an angle) by a light, the micro texture of the surface results in a pattern of shadows that is detected by the photosensor array. A sequence of images of these shadow patterns are obtained, and the optical navigation sensor attempts to calculate the relative motion of the surface that would account for changes in the image. Thus, if an image obtained at time t(n+1) is shifted left by one pixel relative to the image obtained at time t(n), then the optical navigation sensor most likely has been moved right by one pixel relative to the observed surface.
As long as the reference frame and current frame overlap by a sufficient amount, movement can be calculated with sub-pixel accuracy. However, a problem occurs when an insufficient overlap occurs between the reference frame and the current frame, as movement cannot be determined accurately in this case. To prevent this problem, a new reference frame is selected whenever overlap between the reference frame and the current frame is less than some threshold. However, because of noise in the optical sensor array, the sensor will have some amount of error introduced into the measurement of the amount of movement each time the reference frame is changed. Thus, as the size of the measured movement increases, the amount of error will increase as more and more new reference frames are selected.
Due to the lack of absolute positional reference, at each re-referencing, any positional errors from the previous re-referencing procedure are accumulated. When the optical mouse sensor travels over a long distance, the total cumulative position error built up can be significant. If the photosensor array is 30×30, re-referencing may need occur each time the mouse moves 15 pixels or so (15 pixels at 60 microns per pixel=one reference frame update every 0.9 mm). The amount of measurement error over a given distance is proportional to E*(N)1/2, where E is the error per reference frame change, and N is the number of reference frame updates.