The present disclosure relates generally to velocity prediction. More particularly, the present disclosure relates to velocity prediction by optical navigation sensors.
Velocity prediction may be performed by various device including two-dimensional (2D) optical navigation sensors and other apparatus. Two-dimensional optical navigation sensors include, for example, optical mouse devices for user interface applications. Such optical mouse devices are commonly employed with personal computers.
It is highly desirable to improve methods and apparatus for velocity prediction. It is particularly desirable to improve velocity prediction by two-dimensional optical navigation sensors, such as optical mouse devices.
One embodiment relates to a method of velocity prediction using a sensor array. Differential signals are obtained from the sensor array at multiple frame rates. A first velocity prediction is determined from the differential signals at a first frame rate, and a second velocity prediction is determined from the differential signals at a second frame rate.
Another embodiment relates to a method of velocity prediction using a two-dimensional (2D) sensor array. Differential signals from the 2D sensor array at multiple frame rates. First and third velocity predictions are determined from the differential signals at a first frame rate, wherein the first and third velocity predictions measure velocity along two orthogonal axes. Second and fourth velocity predictions are determined from the differential signals at a second frame rate, wherein the second and fourth velocity predictions also measure velocity along the two orthogonal axes.
Another embodiment relates to an optical navigation apparatus which includes a sensor array, differential circuitry, driver circuitry, and a signal processing device. The driver circuitry is configured to drive the sensor array and differential circuitry so as to operate at multiple frame rates in an interleaved manner. The signal processing device is configured to compute a first velocity prediction from the differential signals at a first frame rate and to compute a second velocity prediction from the differential signals at a second frame rate.
Other embodiments and features are also disclosed.
These and various other features and advantages of the present invention may be apparent upon reading of the following detailed description in conjunction with the accompanying drawings and the appended claims provided below.
2D Comb Array for Tracking 2D Motion
The example 2D array 102 is made up of 36 sub-arrays 104 organized in a 6-by-6 matrix. Of course, the array 102 may be of various matrix sizes, the 6×6 matrix size being shown here for purpose of discussion.
An expanded view of one such sub-array 104 is shown on the left side of the figure. In this example with M=4, each sub-array 104 comprises 16 detector elements or photo-detector cells organized in a 4-by-4 matrix. In other implementations, other values of M may be used to create the sub-arrays.
The 16 detector elements in each sub-array 104 are each identified as being a member of one of eight groups of elements. The group number associated with each detector element of each sub-array 104 is shown by the number (1, 2, 3, 4, 5, 6, 7, or 8) labeling the element in the expanded view. The signals from each group are electrically ganged or wired together for the entire array 102. The resultant group signals (numbered 1 through 8) are output from the array 102 (as shown on the right side of the figure).
Differential circuitry 106 is used to generate differential signals from pairs of the group signals. For this example with M=4, there are four differential outputs from the array (CC, CS, SC, and SS). A first differential signal CC is generated by the difference of signals 1 and 2. A second differential signal SC is generated by the difference of signals 3 and 4. A third differential signal CS is generated by the difference of signals 5 and 6. A fourth differential signal SS is generated by the difference of signals 7 and 8.
The spatial frequency distribution of the image captured on the detector array is approximately centered on the spatial frequency of the detector array. Through the processing of the four quasi-sinusoidal outputs (CC, CS, SC, and SS) representing separate in-phase and quadrature signals for motion along two orthogonal axes, the 2D movement of the surface relative to the detector array may be tracked.
Velocity Prediction Using 2D Comb Array
In accordance with an embodiment of the invention, at each sample frame, phase angle values φx and φy, and radius values Rx and Ry, may be computed according to the following equations.
Rx and Ry indicate the contrast of the detected quasi-sinusoidal signals. Changes in the phase angles φx and φy from a previous sample frame are indicative of motion along the two orthogonal axes (the x and y axes).
The changes in phase angles from a previous sample frame may be denoted by Δφx and Δφy and may be computed according to the following equations.
In the above equations, the current frame is denoted by i, such that phase angles for a current frame are denoted by the subscript i, and the phase angles for the previous frame are denoted by the subscript i−1.
While Δφx and Δφy are indicative of motion along the x and y axes, they do not completely reflect the actual two-dimensional motion. This is because the values of Δφx and Δφy are restricted to the range from −π to +π due to the inverse tangent function. In other words, the values of Δφx and Δφy are “wrapped” in the range [−π, +π].
Consider the functions ΔΦx and ΔΦy to be “unwrapped” versions of Δφx and ΔΦy, respectively. Hence, Δφx is a modulo function of ΔΦx, and Δφy is a modulo function of ΔΦy, where the values of Δφx and Δφy each “wraps” within the range [−π+ρ]. ΔΦx and ΔΦy are indicative of the actual (unwrapped) motion of the sensor relative to the surface.
Since Δφx and Δφy are computed from the differential signals output by the 2D comb array, they may be “unwrapped” to determine the functions ΔΦx and ΔΦy. Such unwrapping of an example function Δφ(t) to generate the corresponding function Φ(t) is illustrated in
In
With this initial assumption, the “actual velocities” ΔΦx and ΔΦy may be computed, for example, by tracking the average velocities over the past K frames (where K>2) and assuming that the next velocity with be within +/−π of the average velocity. This computation may be implemented according to the following equations.
In the above equations, the INTEGER function takes the largest integer value that is not greater than its argument. <ΔΦx> and <ΔΦy> are the average velocities over the past K frames (K>2) and may be computed according to the following equations.
<ΔΦx> and <ΔΦy> are utilized within the INTEGER functions so as to track the number of “2π” rotations that have occurred within a frame.
The above-described algorithm needs to assume that the initial velocity is known in order to work. Specifically, the algorithm assumes that the initial velocity is close to zero such that the sensor is at rest with respect to the surface.
Problems and Drawbacks with the Above-Described Technique
The above-described technique has substantial problems and drawbacks.
First, the above-described technique does not determine an absolute velocity, and so it relies on the assumption that the sensor begins at some known velocity (typically, at rest). However, this assumption may be violated. In the example of an optical mouse device, the mouse device may be brought close to the tracking surface at a non-zero initial velocity. In other words, the user's hand may be moving as he/she brings the mouse device to the tracking surface.
If the initial condition assumed is in error, then the velocity predictor technique described above would not detect the error, and furthermore may not readily recover from the error.
For simplicity of discussion, consider the motion in one of the two dimensions. For example, if the motion starts from rest (ΔΦ=0π/frame), then accelerates to a speed of ΔΦ=3π/frame, then decelerates back to rest, the velocity predictor technique described above would work as intended.
However, if the motion starts at 2π/frame, then accelerates to 3π/frame, and then decelerates to rest, then the velocity predictor technique described above would give erroneous results. The velocity prediction error occurs because the initial 2π/frame speed results in a same result from the inverse tangent function as an initial speed of zero (or 4π/frame for that matter). As such, the velocity predictor algorithm erroneously assumes that its starting condition is at rest (ΔΦ=0π/frame). When the motion accelerates to 3π/frame, the velocity predictor algorithm give an erroneous speed of only π/frame. When the motion decelerates to a resting state (zero velocity), the velocity predictor algorithm give an erroneous speed of −2π/frame. In other words, the velocity predictor algorithm continues to report a motion with a negative 2π/frame velocity offset from the actual motion.
Other problems may occur due to under-sampling of the motion with a frame rate which is too low compared with the motion. For example, the determination of the average velocities <ΔΦx> and <ΔΦy> may be erroneous due to such under-sampling.
Robust Velocity Prediction Using 2D Comb Array
The present disclosure provides methods and apparatus to achieve a robust velocity prediction using a 2D comb array.
In accordance with an embodiment of the invention, a robust velocity prediction may be achieved by utilizing a technique where the sensor alternates between two frame rates. The two frame rates are such that they have a non-integer ratio. In other words, neither frame rate is an integer multiple of the other.
This technique is now discussed in relation to a specific example. In this example, consider the first frame rate for even frames to be l/Δt0 and the second frame rate for odd frames to be 1/Δt1. Further, consider that Δt1/Δt0=r, where r is a non-integer number. The non-integer ratio may be selected depending on the specific application.
Consider the problematic example discussed above where the motion along one dimension starts at 2π/frame, then accelerates to 3π/frame, and then decelerates to rest or 0π/frame. As previously discussed, the single frame rate technique described above would give an erroneous velocity prediction.
Now, consider application of the two-frame-rate technique, where r=0.9, for example. When the motion in the one dimension is actually at rest or 0π/frame, the base sample rate would measure a velocity of −2π/frame. However, the slower sample rate which is 90% of the base rate would measure a velocity of −1.87π/frame. This difference between the two velocity measurements indicates that the velocity derived from the base sample rate is incorrect. Correcting the velocity prediction then becomes a matter of determining the nearest velocity that provides a ΔΦ=0π/frame measurement at both frame rates and predicted velocity accordingly. In this case, 0π/frame is the nearest velocity, followed by +/−20π/frame. Hence, the true velocity is determined to be 0π/frame. Note that, in this example, the technique would break down at +/−20π/frame for an initial condition. So, preferably such an initial condition would be beyond the conditions expected to be encountered for the particular application. The following is a more detailed discussion of this technique.
The differential signals obtained from the comb array during even frames (State 0) are utilized to compute a first velocity estimation V0, while the differential signals obtained from the comb array during odd frames (State 1) are utilized to compute a second velocity estimation V1. These computations may be implemented according to the following equations.
In the above equations, the current frame is denoted by i, and K is an even number and is greater than 2. <ΔΦ>0 is the average change in phase over the prior K/2 even frames, and <ΔΦ>1 is the average change in phase over the prior K/2 odd frames.
Ideally, V0 should equal to V1, such that the following equation is satisfied.
However, the above ideal equation (Eqn 15) is not necessarily satisfied because there may be extra or missing 2π “rotations” in <ΔΦ>0 as a result of the initial condition assumption and/or under-sampling or other reasons.
In accordance with a first embodiment, it is assumed that a faster frame rate yields a more accurate velocity estimation. In a first case, the second frame rate (for odd frames) is set to be faster than the first frame rate (for even frames). In other words, Δt1<Δt0, or 0≦r≦1. In this case, the velocity estimation based on the odd frames (i.e. <ΔΦ>) is assumed to be the more accurate velocity estimation. In a second case, the first frame rate (for even frames) is set to be faster than the second frame rate (for odd frames). In other words, Δt0<Δt1, or r>1. In this case, the velocity estimation based on the even frames (i.e. <ΔΦ>0) is assumed to be the more accurate velocity estimation.
The extra or missing 2π “rotations” in the velocity estimation based on the slower frame rate may be determined and accounted for as follows. For example, consider the case where the second frame rate (for odd frames) is set to be faster than the first frame rate (for even frames). A new or corrected value of <ΔΦ>0 may be denoted (<ΔΦ>0)new. (<ΔΦ>0)new satisfies the following equations.
(ΔΦ
0)new=
ΔΦ
0+2π×N0 (Eqn 16)
(ΔΦ
0)new×r=
ΔΦ
(Eqn 17)
where N0 is the number of missing 2π rotations in <ΔΦ>0 in comparison to <ΔΦ>1. Substituting for N0 in the first equation above (Eqn 16) gives the following equation for computing (<ΔΦ>0)new.
In the above equation (Eqn 18), the INTEGER function takes the largest integer value that is not greater than its argument. As calculated according to the above equation (Eqn 18), the function (<ΔΦ>0)new becomes a velocity estimation which is corrected for extra or missing phase rotations.
In accordance with a second embodiment, the absolute values of the two velocity estimations (under the two different frame rates) are compared. This technique then assumes the one with the smaller absolute value (i.e. the one with the slower speed) is the accurate velocity estimation. This second approach may be particularly advantageous in overcoming the “run-away” problem in comb array based position tracking due to over-estimation of the velocity predictor with extra phase rotations.
If the velocity estimation based on odd frames (i.e. <ΔΦ>1) has the smaller absolute value, then <ΔΦ>1 is assumed to be accurate and the above equation (Eqn 18) may be utilized to correct the velocity estimation for the even frames. On the other hand, if the velocity estimation based on even frames (i.e. <ΔΦ>0) has the smaller absolute value, then <ΔΦ>0 is assumed to be accurate and the below equation (Eqn 19) may be utilized to correct the velocity estimation for the odd frames.
where the new or corrected value of <ΔΦ>1 is denoted (<ΔΦ>1)new.
In accordance with a third embodiment, a single velocity predictor value is estimated by mixing the delta-phases from both frame rates into a single average velocity V. This technique assumes that some of the initial condition constraint errors or other estimation errors may be removed or mitigated by this mixed averaging. The average velocity V may be determined using the equations below.
The averaging of this approach may be implemented with less logic than the prior two approaches.
Note that for 2D position tracking, one of the above three approaches would be performed along each of the two orthogonal directions. Also, note that while the above descriptions discusses velocities in terms of changes in phase (i.e. phase velocities), these phase velocities correspond to linear velocities, where the conversion between the two depend upon the dimensions and geometries of the specific apparatus.
In the above three approaches, the ratio r of the two frame rates is preferably selected to allow the entire range of anticipated velocities to be discriminated without requiring resolution beyond the capabilities of the measurement system.
While the technique described above uses two frame rates, other embodiments may utilize three or more frame rates. For example, under the third approach, the delta-phases from the three or more frame rates may be averaged to compute the single average velocity V.
The above-described technique for tracking 2D motion using a 2D comb detector array may be advantageously implemented so as to require less signal processing power than existing techniques. Such lower power consumption may be particularly suitable for power-sensitive applications, such as, for example, wireless mouse devices.
The driver circuitry 402 is configured to provide a timing signals so as to drive the 2D comb detector array 102 and differential circuitry 106 at two (or more) frame rates, where frames at one rate are interleaved with frames from the other rate.
The signal processing device 404 is configured to receive the differential signals at the multiple frame rates from the differential circuitry 106 and to process those signals to generate a robust 2D velocity prediction. The robust 2D velocity prediction may be implemented using the multiple frame rate technique discussed above. In one implementation, the signal processing device 404 may include two (or more) buffers 410, each buffer being configured to hold data associated with a particular frame rate of image acquisition.
The signal processing device 404 may be implemented with hardware signal processing circuitry and/or a combination of hardware and software. In the case of the hardware/software combination, the software comprises processor-executable instructions to perform at least a portion of the technique.
The foregoing description of specific embodiments and examples of the invention have been presented for the purpose of illustration and description, and although the invention has been described and illustrated by certain of the preceding examples, it is not to be construed as being limited thereby. They are not intended to be exhaustive or to limit the invention to the precise forms disclosed, and many modifications, improvements and variations within the scope of the invention are possible in light of the above teaching. It is intended that the scope of the invention encompass the generic area as herein disclosed, and by the claims appended hereto and their equivalents.
Number | Name | Date | Kind |
---|---|---|---|
3922093 | Dandliker et al. | Nov 1975 | A |
4546347 | Kirsch | Oct 1985 | A |
4799055 | Nestler et al. | Jan 1989 | A |
5288993 | Bidiville et al. | Feb 1994 | A |
5345527 | Lebby et al. | Sep 1994 | A |
5473344 | Bacon et al. | Dec 1995 | A |
5578813 | Allen et al. | Nov 1996 | A |
5606174 | Yoshimura et al. | Feb 1997 | A |
5644139 | Allen et al. | Jul 1997 | A |
D382550 | Kaneko et al. | Aug 1997 | S |
D385542 | Kaneko et al. | Oct 1997 | S |
5703356 | Bidiville et al. | Dec 1997 | A |
5729008 | Blalock et al. | Mar 1998 | A |
5729009 | Dandliker et al. | Mar 1998 | A |
5781229 | Zediker et al. | Jul 1998 | A |
5786804 | Gordon | Jul 1998 | A |
5825044 | Allen et al. | Oct 1998 | A |
5854482 | Bidiville et al. | Dec 1998 | A |
5907152 | Dandliker et al. | May 1999 | A |
5963197 | Bacon et al. | Oct 1999 | A |
5994710 | Knee et al. | Nov 1999 | A |
6031218 | Piot et al. | Feb 2000 | A |
6037643 | Knee | Mar 2000 | A |
6057540 | Gordon et al. | May 2000 | A |
6097371 | Siddiqui et al. | Aug 2000 | A |
6151015 | Badyal et al. | Nov 2000 | A |
6172354 | Adan et al. | Jan 2001 | B1 |
6225617 | Dandliker et al. | May 2001 | B1 |
6233368 | Badyal et al. | May 2001 | B1 |
6281881 | Siddiqui et al. | Aug 2001 | B1 |
6281882 | Gordon et al. | Aug 2001 | B1 |
6326950 | Liu | Dec 2001 | B1 |
6330057 | Lederer et al. | Dec 2001 | B1 |
6351257 | Liu | Feb 2002 | B1 |
6396479 | Gordon | May 2002 | B2 |
6421045 | Venkat et al. | Jul 2002 | B1 |
6424407 | Kinrot et al. | Jul 2002 | B1 |
6433780 | Gordon et al. | Aug 2002 | B1 |
6452683 | Kinrot et al. | Sep 2002 | B1 |
6455840 | Oliver et al. | Sep 2002 | B1 |
D464352 | Kerestegian | Oct 2002 | S |
6462330 | Venkat et al. | Oct 2002 | B1 |
6476970 | Smith | Nov 2002 | B1 |
6529184 | Julienne | Mar 2003 | B1 |
6585158 | Norskog | Jul 2003 | B2 |
6603111 | Dietz et al. | Aug 2003 | B2 |
6621483 | Wallace et al. | Sep 2003 | B2 |
6642506 | Nahum et al. | Nov 2003 | B1 |
6657184 | Anderson et al. | Dec 2003 | B2 |
6664948 | Crane et al. | Dec 2003 | B2 |
6674475 | Anderson | Jan 2004 | B1 |
6677929 | Gordon et al. | Jan 2004 | B2 |
6703599 | Casebolt et al. | Mar 2004 | B1 |
6737636 | Dietz et al. | May 2004 | B2 |
6774351 | Black | Aug 2004 | B2 |
6774915 | Rensberger | Aug 2004 | B2 |
6795056 | Norskog et al. | Sep 2004 | B2 |
6809723 | Davis | Oct 2004 | B2 |
6819314 | Black | Nov 2004 | B2 |
6823077 | Dietz et al. | Nov 2004 | B2 |
7298460 | Xu et al. | Nov 2007 | B2 |
20020130835 | Brosnan | Sep 2002 | A1 |
20020158300 | Gee | Oct 2002 | A1 |
20020190953 | Gordon et al. | Dec 2002 | A1 |
20030034959 | Davis et al. | Feb 2003 | A1 |
20030058506 | Green et al. | Mar 2003 | A1 |
20030142288 | Kinrot et al. | Jul 2003 | A1 |
20040046744 | Rafii et al. | Mar 2004 | A1 |
20040084610 | Leong et al. | May 2004 | A1 |
20040189593 | Koay | Sep 2004 | A1 |
20050024336 | Xie et al. | Feb 2005 | A1 |
20050024623 | Xie et al. | Feb 2005 | A1 |
20050083303 | Schroeder et al. | Apr 2005 | A1 |