In the following description, like reference numbers are used to identify like elements. Furthermore, the drawings are intended to illustrate major features of exemplary embodiments in a diagrammatic manner. The drawings are not intended to depict every feature of actual embodiments nor relative dimensions of the depicted elements, and are not drawn to scale.
In general, the navigation apparatus 10 may be incorporated into any type of device or system in which sensing motion or position serves a useful purpose. For illustrative purposes, the navigation apparatus 10 is described herein as a component of a device for inputting commands into a machine, where the input device may have any of a wide variety of different form factors, including a computer mouse, a joystick, a trackball, and a steering wheel controller. In these implementations, the navigation apparatus 10 may be configured to sense user manipulations of a component of the input device (e.g., a touch pad, a trackball, or a joystick) or manipulations of the input device itself (e.g., movement of the input device across a surface).
In the illustrative operational environment shown in
In some embodiments, the navigation apparatus 10 and the display 26 are implemented as separate discrete devices, such as a separate pointing device and a remote display-based system. In these embodiments, the remote system may be any type of display-based appliance that receives user input, including a general-purpose computer system, a special-purpose computer system, and a video game system. The display control signals 22 may be transmitted to the remote system over a wired communication link (e.g., a serial communication link, such as an RS-232 serial port, a universal serial bus, or a PS/2 port) or a wireless communication link (e.g., an infrared (IR) wireless link or a radio frequency (RF) wireless link). In other embodiments, the navigation apparatus 10 and the display 26 are integrated into a single unitary device, such as a portable (e.g., handheld) electronic device. The portable electronic device may be any type of device that can be readily carried by a person, including a cellular telephone, a cordless telephone, a pager, a personal digital assistant (PDA), a digital audio player, a digital camera, and a digital video game console.
In accordance with this method, the thickness sensor system 12 generates a respective set of measurements 28 of thickness of the object 16 at six or more locations through a front surface 18 of the object 16 during each of multiple thickness measurement cycles (
The processing system 14 produces motion measures that are indicative of movement in relation to the object 16 from ones of the sets of thickness measurements 28 (
The processing system 14 may be implemented by one or more discrete modules that are not limited to any particular hardware or software configuration. The one or more modules may be implemented in any computing or processing environment, including in digital electronic circuitry (e.g., an application-specific integrated circuit, such as a digital signal processor (DSP)) or in computer hardware, firmware, device driver, or software.
In some implementations, computer process instructions for implementing the modules of the process system 14 and the data generated by these modules are stored in one or more machine-readable media. Storage devices suitable for tangibly embodying these instructions and data include all forms of non-volatile memory, including, for example, semiconductor memory devices, such as EPROM, EEPROM, and flash memory devices, magnetic disks such as internal hard disks and removable disks, magneto-optical disks, and CD/DVD-ROM.
A. Exemplary Thickness Sensor System Embodiments
In some embodiments, the thickness sensors are arranged in at least a first measurement group and a second measurement group, where the first and second measurement groups are disjoint and include respective sets of at least three of the thickness sensors. The thickness sensors in each measurement group produce respective thickness measurements at different respective non-collinear locations through the object surface during each of the thickness measurement cycles. In some of these embodiments, at least two of the thickness sensors in the first measurement group are collinear along a line parallel to a first coordinate axis and at least two of the thickness sensors in the first measurement group are collinear along a line parallel to a second coordinate axis different from the first coordinate axis. In addition, at least two of the thickness sensors in the second measurement group are collinear along a line parallel to the first coordinate axis and at least two of the thickness sensors in the second measurement group are collinear along a line parallel to the second coordinate axis; In general, the first and second coordinate axes may be oriented along any nonparallel directions. In some embodiments, the first and second coordinate axes are orthogonal.
In the embodiment shown in
Referring to
B. Exemplary Local Approximation Based Methods of Determining Motion Measures from Thickness Measurements
In some embodiments, the processing system 14 determines the motion measures based on local approximations of the surface thickness function h(x,y) of the object 16 as a function of location (x,y) on the front surface 18 in the vicinity of at least two of the sampling points (i.e., the locations through the front surface 18 where the thickness measurements are made) during a given measurement cycle. In embodiments in which the thickness sensors are segmented into different measurement groups, a respective local approximation of the thickness of the object is determined for at least one sampling point that is measured by a corresponding thickness sensor in each measurement group.
In general, the processing system 14 may use any type of local approximation, including approximations based on zeroth-order function information, approximations based on first-order function information, and approximations based on higher-order function information. In some embodiments, these local approximations are based on a Taylor series expansion of the thickness function h(x,y). In some of these embodiments, the processing system 14 approximates the thickness function h(x,y) locally using the following linear approximation {tilde over (h)}(x,y) based on the Taylor series:
where (x0,y0) is the location of the initial point sampled during a first measurement cycle and (x,y) is the location of the second point sampled during a second measurement cycle. In this formulation, the x and y coordinate axes correspond to the u and v coordinate axes that are defined by the locations of the thickness sensors in the navigation apparatus. In the illustrate embodiments, the coordinate axes of the sensor (i.e., the u-v axes) and the coordinate axes of the movement of the navigation apparatus 10 are the same. In other embodiments, the u-v coordinate system and the x-y coordinate system may be oriented at a non-zero angle with respect to one another. In addition, the u-v coordinate axes may be oriented at any angle with respect to each other so long as they are not parallel. For example, the u-v coordinate axes may be orthogonal to one another as shown in
The processing system 14 determines values for the displacement parameters (x-x0) and (y-y0) based on thickness measurements that are obtained during the two different measurement cycles. In this process, the first derivatives of the thickness function h(x,y) along the x and y directions are linearly approximated by the differences between adjacent ones of the thickness sensors divided by the known distances separating the adjacent thickness sensors. With respect to the navigation apparatus 40, the first derivatives at location (x1,y1) corresponding to the projection of the location of thickness sensor 58 (sensor 1) are given by:
where Hi is the thickness measured by sensor i during the first measurement cycle. Similarly, the first derivatives at location (x3,y1) corresponding to the projection of the location of thickness sensor 64 (sensor 3) are given by:
Equations (1)-(5) can be combined to obtain the following system of two linear equations, which are functions of the two displacement parameter values Δx≡x−x0 and Δy≡y−y0:
where {tilde over (H)}1 is the thickness measured by sensor 1 during the subsequent measurement cycle and {tilde over (H)}3 is the thickness measured by sensor 3 during the subsequent measurement cycle. The processing system 14 may determine the values of the displacement parameters Δx and Δy using any one or a wide variety of methods, including Cramer's rule.
The processing system 14 may produce ones of display control signals 22 that correspond to changes in the relative positions of the navigation apparatus in relation to the object 16 based on the determined displacement parameter values. As explained above, some embodiments of the processing system 14 determines the velocity of the navigation apparatus by multiplying the displacement parameter values by the measurement cycle rate (i.e., the thickness measurement sampling rate).
C. Exemplary Position Map Based Navigation Apparatus
In some embodiments, the processing system 14 determines a set of position coordinates in relation to the object 16 based on the motion measures that are determined in accordance with the embodiments described above. In this regard, the processing system 14 determines the position coordinates with respect to a origin position, which may correspond to the initial startup position of the navigation apparatus or the initial position of the navigation apparatus after being lifted off and placed back down onto the front surface 18 of the object 16. Each current position coordinate x(n), y(n) represents the position of the navigation apparatus on the front surface 18 of the object 16 in relation to the designated origin during the current measurement cycle n. Each set of current position coordinates typically is determined from a displacement from the preceding position coordinates x(n−1), y(n−1) that were determined during the previous measurement cycle n−1 in accordance with equations (8) and (9):
x(n)=x(n−1)+Δx|n (8)
y(n)=y(n−1)+Δy|n (9)
In some embodiments, the processing system 14 generates a position map that can be used to generate the display control signals 22 from the recorded position coordinates and their associated thickness measurements. The position map is a data structure that includes the position coordinates x, y that are determined by the processing system 14 from the motion measures and are indexed by respective sets of thickness values that are derived from corresponding ones of the sets of thickness measurements produced by the thickness sensors during respective measurement cycles.
In accordance with this method, the processing system 14 obtains the current set of thickness measurements {hp(xi,yj,n)} for measurement cycle n, where p has a positive integer value that corresponds to the thickness sensor index (
If the current position (xi,yj) does not correspond to any of the positions in the position map 94 (
If the current position coordinate corresponds to a position (xi,yj) in the position map 94 (
g
p(xi,yj,n)=αn·hp(xi,yj,n)+(1−αn)·gp(xi,yj,n−1) (10)
where p has a positive integer value that corresponds to the thickness sensor index, αn corresponds to the weight that is applied to the difference between the current thickness measurement hp(xi,yj,n) and thickness parameter value gp(xi,yj,n−1) during the previous measurement cycle n−1 at position coordinate (xi,yj). If the navigation apparatus does not produce a thickness measurement at position coordinate (xi,yj) during measurement cycle n, the value of gp(xi,yj,n−1) is not updated. In some embodiments, the weights αn decrease with the number of measurement cycles since the current original was selected.
The resulting position map 94 allows the processing system 14 to determine a one-to-one mapping between the location of the navigation apparatus in relation to the object 16 and coordinates on the display 26 (see
In some embodiments, the processing system 14 resets the thickness map in response to a determination that the navigation apparatus has been lifted off the navigation surface for which the current thickness map was generated and moved to a new location on the same navigation surface or moved to a different navigation surface.
In the case where the navigation apparatus has been lifted off the navigation surface and moved to a new location on the same navigation surface, the processing system redefines the origin of a new thickness map as the location where the navigation apparatus initially is placed at the new location. In some embodiments, if the new origin position corresponds to an identifiable position in the previous thickness map, the processing system 14 is operable to translate at least a portion of the previous thickness map with respect to the new origin position and, thereby, avoid having to recalculate the position coordinates in the translated portion of the previous thickness map.
In the case where the navigation apparatus has been moved to a different navigation surface, the processing system 14 determines a new thickness map for the current navigation surface. The origin of the new thickness map is located where the navigation apparatus initially is placed on the new navigation surface. In some of these embodiments, the processing system 14 stores a different respective thickness map for different navigation surfaces.
The user can also instruct processing system 14 to reset the thickness map by providing the corresponding instruction, either by applying pressure on button (draw on figure and number), or using software.
D. Exemplary Position Map Based Methods of Determining Motion Measures from Thickness Measurements
In some embodiments, once the changes in all the thickness parameter values gp(xi,yj) have converged (e.g., after the changes resulting from successive updates fall below a threshold value), the processing system 14 discontinues the position map building process shown in
In accordance with this method, the processing system 14 obtains the current set of thickness measurements {hp(n)} for measurement cycle n, where p has a positive integer value that corresponds to the thickness sensor index (
In general, any of a wide variety of different vector correlation methods may be used to measure the correlation between the current set of thickness measurements {hp(n)} and the thickness vectors {right arrow over (G)}(xi, yi). In some embodiments, the processing system 14 determines a distance between the current set of thickness measurements {hp(n)} and each of the thickness vectors {right arrow over (G)}(xi,yi) corresponding to one of the vector norms fL(xi,yj) of the type defined by equation (11):
where L corresponds to a positive integer that specifies the type of vector norm. The vector norm for L=1 typically is referred to as the L1-norm and the vector norm for L=2 typically is referred to as the L2-norm. In some of these embodiments, the correlation predicate corresponds to a vector norm value fL(xi,yj) that is below a specified threshold value.
If none of the correlations between the current set of thickness measurements {hp(n)} and the thickness vectors {right arrow over (G)}(xi,yi) in the position map 94 meets the specified correlation predicate (
If the correlation of the current set of thickness measurements {hp(n)} with at least one of the thickness vectors {right arrow over (G)}(xi,yi) in the position map 94 does meet the specified correlation predicate (
In general, the processing system 14 is able to determine motion measures that describe the absolute position of the navigation apparatus in relation to the object 16 or that describe relative movement of the navigation apparatus in relation to the object 16. The absolute positions correspond to the position coordinates in the position table 94. These position coordinates may be used to establish a one-to-one correspondence between movements of the navigation apparatus in relation to the object 16 in a manner analogous to tablet-based navigation. The motion measures that describe relative movement may be derived from differences between the current absolute position of the navigation apparatus and the previous absolution position of the navigation apparatus. These motion measures may be used to perform relative position navigation in a manner analogous to traditional optical and trackball-based computer mouse navigation methods.
The navigation apparatus and methods that are described herein enable navigation over objects based on measurements of the thicknesses of the objects. In this way, these embodiments enable navigation over any type of object whose thickness can be measured, including objects, such as transparent objects with smooth surfaces that are free of nonuniformities, which are difficult to navigate over using traditional optical navigation techniques.
Other embodiments are within the scope of the claims.