The present invention pertains to position encoders and methods for determining position, and in one embodiment, to optical position encoders.
Position encoders are used to accurately determine a position difference between elements of a device or system. Conventional position encoders are either incremental position encoders or absolute position encoders, but not both. An incremental position encoder provides position information indicating the change from a prior position, while an absolute position encoder provides absolute position information indicating a specific position regardless of prior position. Position encoders are used in automated manufacturing, gimbaled systems, and elsewhere when accurate positional information is desired. In gimbaled-camera systems, for example, absolute position encoders may be used for accurate line-of-sight reconstruction in guidance.
Some conventional position encoders use separate encoder tracks for each bit of a Grey code, in which only one bit of the code changes at a time. Detectors are used to detect which bit changes to determine a position. One problem with this arrangement is that higher resolution requires a high number of separate encoder tracks. Another problem is that this arrangement is highly sensitive to contamination, which results in erroneous position information.
Thus, there is a general need for an improved position encoder and method for determining position of an encoder track. There is also a need for a position encoder and method where the unambiguous range may be increased almost without limit. There is also a need for a position encoder and method where the unambiguous range may be increased without degrading absolute accuracy. There is also a need for a position encoder and method with an increased unambiguous range without a significant increase in size or complexity. There is also a need for an optical position encoder and method that is less sensitive to contamination. There is also a need for a gimbaled system with improved line-of-sight tracking having at least some of the preceding benefits.
A position encoder detects bit-width transitions from a sequence having a plurality of unique subsequences. In embodiments, the position encoder may use a single track encoded with a pattern of bit-widths in accordance with the sequence. The sequence may be a pseudo-random noise (PRN) sequence or other sequence having unique subsequences. In one embodiment, sensors detect transitions between the bit-widths as the track moves to provide in-phase and quadrature-phase pick-off signals. When a PRN sequence is used having a length of 2N bits, the position of the track may be an absolute position when the number of transitions between the bit-widths detected by the sensors is at least N. The position may be an incremental position when the number of transitions between bit-widths detected by the sensors is less than N.
In one embodiment, each bit-width encoded on the track has either a first width or a second width determined by the sequence. The first width may represent the “ones” in the sequence and the second width may represent the “zeroes” in the sequence. The pattern on the track may be a pattern of alternating dark and light portions having the bit-widths encoded in accordance with bits of the sequence, and the first-and second sensors may be optical sensors positioned to have overlapping fields of view.
In yet other embodiments of the present invention, a gimbaled system is provided, which may be suitable for use in line-of-sight tracking. The system may include two or more nested gimbals with associated position encoders to provide incremental and/or absolute positional information for the associated gimbal.
The appended claims are directed to some of the various embodiments of the present invention. However, the detailed description presents a more complete understanding of the present invention when considered in connection with the figures, wherein like reference numbers refer to similar items throughout the figures and:
The following description and the drawings illustrate specific embodiments of the invention sufficiently to enable those skilled in the art to practice it. Other embodiments may incorporate structural, logical, electrical, process, and other changes. Examples merely typify possible variations. Individual components and functions are optional unless explicitly required, and the sequence of operations may vary. Portions and features of some embodiments may be included in or substituted for those of others. The scope of the invention encompasses the claims and all equivalents.
The present invention provides, among other things, an improved position encoder and method for determining position.
In some embodiments, system 100 may be suitable for use in tactical airborne systems including guided projectiles, missiles and aircraft, and may be used for line-of-sight tracking and/or targeting. In some embodiments, position encoders 110 and 114 may provide position information used for tracking images by an airborne system in which a stored image may be compared with a current image seen by the system. Although the embodiments described herein describe the encoder tracks as part of position encoders 110 and 114, this is not a requirement. In other embodiments, the encoder tracks may be part of other system elements.
In one embodiment, gimbaled system 100 may provide for image tracking using a control system reference frame position to command a line-of-site vector provided by a gimbal to desired coordinates. A mission computer on an airborne platform may compute the desired coordinates. In one embodiment, when tracking an image in space, the position encoders may be used to transform the position of an image from gimbal-mounted camera into seeker-based coordinates.
In one embodiment, processing element 212 generates quadrature pairs from pick-off signals 208, 210 and may shift either a one or zero bit into shift registers 214 for certain transitions depending on the quadrature pair. This is described in more detail below. The bits in the shift registers may correspond with one of the unique subsequences, which may be encoded on track 202. In one embodiment, the subsequence corresponding with the bits in shift registers 214 may be looked up in a table, such as look-up-table (LUT) 216. In this embodiment, LUT 216 may store the unique subsequences that comprise the sequence encoded on the track. In one embodiment, left and right LUTs may be used depending on direction 222 of motion of track 202. Processing element 212 generates position output 218 determined from the LUT(s).
In another embodiment code generator 220 may be used instead of table 216. In this embodiment, code generator 220 may, in real-time, generate a sequence corresponding with the sequence encoded on track 202. Processing element 212 may identify a match between the subsequence from the bits in the shift register 214 with subsequences of the sequence being generated by generator 220 by searching through the code to determine a position of the track. In one embodiment, the code generator may generate a code in either a forward or reverse direction depending on direction 222 of the motion of track 202. In this embodiment, processing element 218 generates position output 218 by comparing the matched subsequence with a known location on track 202.
Position output may be an incremental position when the number of bits shifted into one of shift registers 214 is less than N, and position output 218 may be an absolute position when the number of bits shifted into one of shift registers 214 is at least N. An incremental position refers to the change in position from a prior position.
In one embodiment (e.g., part of a gimbaled system), track 202 may be circular, and the size of bit-widths 202 and the length of the sequence may be selected so that any N-bit subsequence in the pattern occurs only once on track 202. N, for example, may range between three and twenty-four, or even greater. N may be based on the binary log of a dynamic range of the encoder and/or the desired accuracy of the positional information provided by the encoder.
Although encoder 200 is illustrated as having several separate functional elements, one or more of the functional elements may be combined and may be implemented by combinations of software configured elements, such as processors including digital signal processors (DSPs), and/or other hardware elements. For example, processing element 212 and code generator 220 may be implemented with software and/or hardware logic.
The number “N” may be selected to provide a desired dynamic range for the encoder and for other system requirements. In the examples discussed herein, N is selected to be 3. In one embodiment, a sequence, such as a PRN sequence, of length 2N may be selected so that every possible subsequence occurs once, including wrapping back through a staring position of the track (e.g. for circular tracks). The reverse of the sequence also has this property allowing for position determination in both directions. Since the pattern repeats every 2N bits, the pattern may be equivalent to a circular encoder, which wraps around at the point of repetition.
The suitable sequence encoded on track 202 may be generated using one of many conventional techniques, including convention PRN sequence generation techniques. For example, a polynomial generator may be used with feedback shift registers to generate a sequence having a plurality of unique subsequences. Conventional sequence generators may produce all subsequences, except possibly a subsequence containing all zeros, however this subsequence may be added to the track by inserting a zero into the subsequence of N-1 zeroes, which does occur. Alternatively, a suitable sequence may be generated by a trial and error tree descent process in which each possible value for a next bit is checked. The sequence is backed up when subsequences are produced which have already occurred. The N-1 subsequences may wrap back to the start (e.g., on a circular track) may also be checked. This conventional trial and error sequence generation technique may be used to generate sequences of up to sixteen bits or even greater depending on the processing power available.
In an analog embodiment, a narrow width may be set based on a point-spread-function (PSF) of an optical pickup used for one of sensors 204 or 206 (
The embodiment of alternating light and dark widths illustrated in
In one embodiment, a processing element, such as processing element 212 (
In embodiments, when one bit changes, the phase of the encoder may be known, and when both bits change, the phase change magnitude may be known. When either bit changes, the phase at that moment is known because it is known where on an encoder track the transition occurred. Arrows 710 illustrate encoder travel corresponding with each phase transition. For example, for transitions where the quadrature phase signal (e.g., signal 504) “catches-up” with the in-phase signal (e.g., signal 502), the distance the encoder track travels is illustrated as D, which in some embodiments may be the sensor spacing. For transitions when the in-phase signal leads the change, the width may depend on whether the current bit is a narrow or wide bit. For example, distance 712 is the distance the encoder travels and is illustrated as either N-D or W-D depending on whether the current bit is narrow or wide. In the illustrated example embodiment, N represents the width of a narrow bit, W represents the width of a wide bit, and D represents the sensor spacing.
The bit-width may be monitored by causing a one-value in the threshold sum signal (e.g., quantized sum signal 606) to latch anytime it is high within “00” or “11” quadrants. The signal may be sampled on any transition through the “00” or “11” quadrants, which indicates a transition from either “01” to “10” or from “10” to “01” (e.g., both bits change when in the “00” or “11” quadrants). The latch may be set or reset to zero on any transition into the “00” or “11” quadrants from either the “01” or “10” quadrants. The sequence of bits latched may correspond with a portion of the sequence and may be used to determine an incremental or absolute position of the encoder depending on the number of bits latched. Accordingly, incremental position encoding is at least achieved using the latch bit to adjust the measured motion.
A bit, such as tag bit 808, may also be shifted into one of a set of tag registers 806 for each transition. The tag bit may indicate when corresponding sampled latch bits contain valid data. Tag bit of one may be shifted into one of the tag registers in either direction from center to indicate that the corresponding value in latch 804 has been loaded. Conversely, a tag bit of zero may be shifted in from the “feeding” end of the tag register to indicate that a corresponding tag bit is not available.
In embodiments using a PRN sequence, for a PRN sequence of length 2N when the number of tag bits in either tag register 806 is N, an absolute position of the encoder may be determined. When the total number of tag bits in both of the tag registers combined is at least 2N-1, the absolute position of the encoder may be maintained, even when the direction of the track is reversed. When the number of tag bits in each of the tag registers is at least N, redundant absolute encoding is achieved allowing for error checking. When the number of bits in either tag register less than N, or the total number of bits in both tag registers is less than 2N-1, the position may be an incremental position of the track.
In an alternate embodiment of the present invention, three or more spatially separated sensors may be used to detect bit-width transitions of an encoder track. In this embodiment, the third sensor may be used to eliminate the generation of sum signal 506 (
In yet another alternate embodiment, the in-phase and quadrature phase pick-off signals may be treated like sine and cosine signals, respectively. In this embodiment, a two-parameter arctangent function may provide for a continuous phase angle within each four-transition cycle using the latched value 804 to provide any corrections.
In yet another embodiment, two displaced encoder tracks with separate pickoffs may be used. The separate pickoffs may be at the same angular position on the tracks.
In yet another embodiment, additional sets of sensors may be spaced around the encoder track and crosschecked. This may reduce sensitivity to particle contamination on the encoder track. In this embodiment, sensitivities to manufacturing tolerances (e.g., in sensor spacing) may also be reduced because a self-calibration process may be performed with the additional sets of sensors.
In operation 902, transitions between bit-widths on an encoder track are detected as the track moves. Sensors may be used to provide in-phase and quadrature-phase pick-off signals corresponding with bit width transitions. In operation 904, quadrature pairs may be generated from quantized pick-off signals. Operation 904 may include summing the in-phase and quadrature phase signals to generate a sum signal. In operation 906, an absolute value thresholding the sum signal is performed to generate a quantized sum signal, such as signal 606 (
In operation 908, the quantized signal is sampled when the quadrature pair is in either the “11” or “00” quadrants. If the quadrature pair is in either the “01” or “10” quadrants, the quantized sum signal is not sampled.
In operation 910, the quantized sum signal may be latched when the signal goes high when the quadrature pair is in either the “11” or “00” quadrants. If the quantized sum signal goes high when the quadrature pair is in either the “01” or “10” quadrants, the quantized sum signal is not latched.
Operation 912 determines when a transition through either the “11” or “00” quadrant has occurred. In other words, operation 912 determines if a transition from “10”–“11”–“01”, a transition from “01”–“11”–“10”, a transition from “10”–“00”–“01”, or a transition from “0”–“00”–“10” occurred. If operation 912 determines that the transition is not through either the “11” or “00” quadrants, the latch may be reset in operation 913 and operations 902 through 912 may be repeated for subsequent transitions. If operation 912 determines that the transition is through either the “11” or “00” quadrants, operation 914 is performed.
In operation 914, the latch value, latched in operation 910, is shifted into one of the shift data registers. In one embodiment, the latch value is shifted into one shift data register when the direction of motion is in one direction, and shifted into another shift data register when the direction of motion is in the other direction. In embodiments, because the latch value is set when the absolute value threshold sum signal is high in the “00” or “11” quadrants, the latch value shifted into the shift data registers may be one for the wide bit-widths and may be a zero for the narrow bit-widths encoded on the encoder track.
In operation 916, a tag bit is shifted into one of the tag registers. In one embodiment, the tag bit is shifted into one tag bit register when the direction of motion is in one direction, and shifted into another tag bit register when the direction of motion is in the other direction.
In operation 918, the latch is reset. Operation 920 determines when the number of bits in one of the tag bit registers is greater than a predetermined number. In the case of a 2N PRN sequence, the predetermined number may be N. When the number of tag bits is greater than or equal to the predetermined number, absolute encoding may be determined in operation 922. When the number of tag bits is less than the predetermined number, incremental encoding may be performed in operation 924.
In one embodiment, when rather than performing incremental encoding in operation 924, operations 902–920 may be repeated until enough information is available to perform absolute encoding. Alternatively, an output flag may indicate when the output is incremental (e.g., no absolute zero reference).
In operations 922 and 924, latch bits, which should be at least N bits for absolute encoding, are collected from one of the shift data registers. When the motion of the track is in one direction, the latch bits may be collected from one shift data register, and when the motion of the track is in the other direction, the latch bits may be collected from the other shift data register.
In one embodiment, the collected latch bits may be indexed into a table, such as LUT 216 (
In an alternate embodiment, a code generator, such as code generator 220 (
Upon the completion of operation 922, absolute positional encoding has been achieved. In one embodiment, incremental positional updates may now be determined because less than N bits are required for incremental position determination once an absolute position is determined.
In one embodiment, when the tag register indicates that there are at least 2N total bits in total from both sides of the shift data register, or N bits in both shift data registers, redundant absolute position encoding may be achieved. In this embodiment, identical absolute positions may be determined from both sets of bits. This embodiment may be used to check for errors, among other things.
At least some operations of procedure 900 may be performed on a continual basis to provide incremental and/or absolute position information of the encoder track of a positional encoder. Unless specifically stated otherwise, terms such as processing, computing, calculating, determining, displaying, or the like, may refer to an action and/or process of one or more processing or computing systems or similar devices that may manipulate and transform data represented as physical (e.g., electronic) quantities within a processing system's registers and memory into other data similarly represented as physical quantities within the processing system's registers or memories, or other such information storage, transmission or display devices. Furthermore, as used herein, computing device includes one or more processing elements coupled with computer readable memory that may be volatile or non-volatile memory or a combination thereof.
The encoding performed by embodiments of the present invention may provide several layers of redundancy which may be used for error checking, and in some cases, may decrease the implementation complexity. In one embodiment, when tag bit 808 (
In another embodiment, an incremental position may be determined after an initial absolute position determination allowing processor-based absolute decoding at system initialization, followed by hardware implemented decoding therefore.
Thus, an improved position encoder and method for determining position of an encoder track have been described. A position encoder and method where the unambiguous range may be increased almost without limit have also been described. A position encoder and method where the unambiguous range may be increased without degrading absolute accuracy have also been described. A position encoder and method with an increased unambiguous range without a significant increase in size or complexity, if any have also been described. An optical position encoder and method that may be less sensitive to contamination have also been described. A gimbaled system with improved line-of-sight tracking has also been described. The foregoing description of specific embodiments reveals the general nature of the invention sufficiently that others can, by applying current knowledge, readily modify and/or adapt it for various applications without departing from the generic concept. Therefore such adaptations and modifications are within the meaning and range of equivalents of the disclosed embodiments. The phraseology or terminology employed herein is for the purpose of description and not of limitation. Accordingly, the invention embraces all such alternatives, modifications, equivalents and variations as fall within the spirit and scope of the appended claims.
Number | Name | Date | Kind |
---|---|---|---|
5436640 | Reeves | Jul 1995 | A |
5898421 | Quinn | Apr 1999 | A |
6327791 | Norcross et al. | Dec 2001 | B1 |
6452158 | Whatley et al. | Sep 2002 | B1 |
6459389 | Germuth-Loffler | Oct 2002 | B1 |
6512589 | Rodi | Jan 2003 | B1 |
Number | Date | Country |
---|---|---|
44 36 784 | Apr 1995 | DE |
198 133 803 | May 2000 | DE |
08043133 | Feb 1996 | JP |
1996043133 | Feb 1996 | JP |
Number | Date | Country | |
---|---|---|---|
20040173735 A1 | Sep 2004 | US |