Patent Publication Number: US-7589313-B2

Title: Method and apparatus for absolute optical encoders with reduced sensitivity to scale or disk mounting errors

Description:
FIELD OF THE INVENTION 
   The present invention relates generally to absolute optical encoders and, more particularly, to a high resolution encoding method and apparatus having adaptive compensation for reducing sensitivity to scale or disk mounting errors. 
   BACKGROUND OF THE INVENTION 
   Optical encoders are electromechanical devices used typically for measuring position or monitoring motion and controlling the position with high precision. They are widely used in applications where extremely accurate linear or angular positioning information is required such as in computer-controlled manufacturing, factory automation, or land surveying equipment. Rotary optical encoders sense angular position by detecting laser light interrupted by markings making up coded tracks embedded on a disk. The disk rotates in sync with the movement being monitored. Rotary encoders are generally classified in either one of two categories i.e. as Absolute or Incremental encoders. Absolute encoders read a distinct coded track on the disk in order to determine a unique position and thus have the advantage of being able to determine the absolute position after a power failure without having to return to a “home” or index position. Incremental encoders can detect only relative position thus the position count can be “lost” in the event of a power failure or by severe jarring resulting in inadvertent disk movement. The advantage of being able to obtain the absolute position at any time makes absolute encoders desirable for many applications. 
   Advances in computer automated manufacturing technology require improvements in positioning precision to save space, cost and time. Naturally, the demand for high-resolution encoders capable of providing even finer incremental linear or rotary motion is greater still. Attempts at developing high-resolution encoders have been described in the prior art. Included in these are rotary encoders that are able to measure both the absolute and incremental angular position simultaneously from separate tracks embedded on a glass disk. The tracks correspond to an absolute track and an incremental track that are read cooperatively to determine an absolute position. Prior art absolute encoders that employ a single track containing both absolute and incremental position information are generally known to be less accurate that those using separate tracks. 
   An example of a prior art absolute encoder is given in U.S. Pat. No. 5,235,181 entitled: “ABSOLUTE POSITION DETECTOR FOR AN APPARATUS FOR MEASURING LINEAR ANGULAR VALUES.” It describes a position detector where the position is detected by reading separate absolute and incremental tracks. The absolute track is made up of pseudo-random distribution of bars spaced to form a continuous sequence of unique binary words, each indicating a distinct value of the absolute position. The arrangement for reading the absolute track comprises a photoemitter light source placed above the track and a linear type charge transfer detectors CCD located beneath the track, such that the pseudo-random absolute track is read through an image enlarging optical lens positioned in between. The incremental track is read through a sensing unit which comprises a photoemitter and a group of four photodetectors arranged 90 degrees apart in order to produce signals in quadrature for interpolating steps in the track. One drawback of the invention is that it employs an older quadrature detection technique that is can be relatively susceptible to errors and limited in resolution. Another disadvantage of this arrangement is that it uses a large number of components that must be accurately aligned and assembled, and the use of separate sensors to read the absolute and incremental tracks respectively further complicates alignment issues. Moreover, it requires the use of optical lenses, which adds to the cost and complexity of the manufacturing process and precludes its use in some relatively small applications. 
   Another optical encoder device capable of reading both absolute and incremental tracks is described in scientific article entitled: “High-Resolution Optical Position Encoder with Large Mounting Tolerances”, by K. Engelhardt and P. Seitz, Applied Optics, 1 May 1997. The described encoder detects the absolute track, containing a pseudo-random bit code, and an incremental track made up of equally spaced lines with a specialized ASIC detector chip. A single light source illuminates both tracks to be imaged onto the detector using a positive plastic lens. The specialized detector is made up of multiple sections of which one section comprises a CCD line sensor that has photosensitive elements for reading a single line to determine the absolute code pattern. The other two sections, used to capture the image of the incremental track, each contain two elements with areas shaped as sine square functions. These sine functions have the same frequency as the image of the incremental pattern. The two elements in each section are shifted 180° and the two sections are shifted 90° relative to each other. 
   The difference between the photocurrents from the two elements in each section will represent a Fourier coefficient for an expansion of the image of the incremental pattern. The phase shift of 90° between the two sections gives that current from the first section will represent a sine coefficient, I sin , and the current from the second section will represent a cosine coefficient, I cos . The phase of the Image of the incremental track is then calculated as: 
   
     
       
         
           
             φ 
             = 
             
               arctan 
               ⁡ 
               
                 ( 
                 
                   
                     I 
                     cos 
                   
                   
                     I 
                     sin 
                   
                 
                 ) 
               
             
           
           , 
         
       
     
   
   The detector is able to optically calculate a Fourier expansion of the light distribution incremental detection, which enables relatively good resolution. However, a drawback of this configuration is that it is not very flexible i.e. the period of the image of the incremental track must match the spatial frequency of the sinusoidal shape almost exactly or accuracy is lost. This can happen when the disk is jarred causing it to move inadvertently, or by inaccurate disk mounting. This requires the disk be mounted with very little eccentricity and that the sensor must be mounted precisely relative to the disk and the light source. A further disadvantage is that the reference period is fixed by virtue of being embedded in the chip, which cannot change during operation. Moreover, the use of the specialized ASIC detector adds to the overall cost to the encoder and limits production in large quantities. 
   In view of the foregoing, it is desirable to provide an encoder apparatus and method with high resolution that is relatively less expensive and easier to assemble with fewer components, less sensitive to disk mounting errors, and suitable for applications of small dimensions. 
   SUMMARY OF THE INVENTION 
   Briefly described and in accordance with an embodiment and related features of the invention, an apparatus and method in accordance with the present invention is provided. A high-resolution absolute optical encoding apparatus is provided for calculating an absolute position. The encoder comprises an optical disk in rotary encoders or optical scale element in linear encoders in which both incremental and absolute code tracks are embedded thereon. In an embodiment of the invention, a rotary optical encoder comprises a photoemitter light source such as a laser diode that illuminates the incremental and absolute code tracks such that they are imaged onto a CCD area array sensor. 
   The image is formed onto a pixel matrix having a plurality of rows and columns such that a first detector line is read corresponding to a row of the pixel matrix in the portion of the image comprising the incremental track. Furthermore, a second detector line is read that corresponds to a row in the pixel matrix of the image comprising the absolute track. In the invention, mounting errors due to inaccurate mounting of the disk or scale element cause fluctuations in the reference period of the code tracks that arise from the movement of the disk or scale element are compensated for by maintaining a constant spatial frequency by dynamically changing the row of detector lines read from the image matrix. In another aspect of the invention, compensation is performed by altering the numerical value of the pattern period used in the Fourier phase algorithm. At least some of the numerical processing is performed with a logic circuit such as a Field Programmable Gate Array (FPGA). In the embodiment, at least two light source-area array sensor pairs are positioned 180 degrees apart such that the code tracks are read at two different locations resulting in two different angular calculations, whereby the absolute angular position is based on the mean of the two calculations. 
   In another aspect of the invention, a Total Station theodolite apparatus for use in topographic surveying includes the invented rotary optical encoder for measuring angular position in the vertical plane and the horizontal plane. The encoder cooperates with a servo-mechanism for automatically tracking a target in what is known as robotic surveying. 

   
     BRIEF DESCRIPTION OF THE DRAWINGS 
     The invention, together with further objectives and advantages thereof, may best be understood by reference to the following description taken in conjunction with the accompanying drawings in which: 
       FIG. 1   a  depicts a simplified side view illustration of the basic components of a rotary optical encoder operating in accordance with a first embodiment of the invention; 
       FIG. 1   b  depicts a side view illustration of a rotary optical encoder operating in accordance with a second embodiment of the invention; 
       FIG. 2  is an illustration of a partial section of the encoder disk used in the embodiment of the present invention; 
       FIG. 3  depicts an exemplary CCD area array sensor  300  used in the embodiment of the invention; 
       FIG. 4  illustrates an area array sensor image of the incremental and absolute tracks; 
       FIG. 5  shows an image of an exemplary sensor line from the absolute code; 
       FIG. 6  is a diagrammatic top view of the relative positions of the area array sensors with respect to the rotary encoder disk in the embodiment; 
       FIGS. 7   a  and  7   b  illustrates graphically the numerical calculation method; 
       FIG. 8  shows an exemplary Total Station land surveying instrument operating in accordance with the present invention; 
       FIG. 9  is a diagrammatic side view of the of Total Station surveying instrument; and 
       FIG. 10  shows a functional block diagram of a servo-driven Total Station operating in accordance with the invention. 
   

   DETAILED DESCRIPTION OF THE INVENTION 
   A high-resolution optical encoder described by the present invention largely avoids the disadvantages of the prior art. The invented encoder enables improved reliability and lower cost compared to the prior art by which a simplified design eliminates use of optical enhancement lenses and implements a single light source to image both absolute and incremental tracks onto and a single two-dimensional CCD area array sensor. Furthermore, the invention exhibits improved flexibility by exhibiting less sensitivity to disk mounting errors and is equally suitable for linear or rotary encoder applications. 
     FIG. 1   a  depicts a simplified side view illustration of the basic components of a rotary optical encoder operating in accordance with a first embodiment of the invention. A disk  100  is mounted on a shaft  105  that rotates about the shaft axis in direct relationship with the item being monitored. The disks used in rotary optical encoders are typically composed of a glass, plastic, ceramic, or metal that have coded markings precisely embedded in a track that encircles the outer portion of the disk. The markings are detected by an arrangement comprising a photoemitter light source  110 , 111  mounted on one side of the disk  100  and photo detectors  115 , 116  mounted on the other side of the disk. The disk may be of a construction having an opaque background with transparent markings so that the light passing through the transparent markings is detected. Alternatively, the disk can be transparent with opaque markings, in which case the photo detectors detect the interruption of light by the passing markings. 
   The encoder components are typically protected by a rugged enclosure to shield the light path and electronics from dust and other elements present in hostile industrial environments. In a preferred embodiment, an opaque disk rotates in a manner that allows light to pass through transparent markings, which are detected by the photo detector. 
     FIG. 1   b  depicts a side view of a second embodiment of the rotary optical encoder operating in accordance with the invention. The arrangement here is configured so that the photoemitter light source and photo detector ( 110 , 115  and  111 , 116 ) is proximally located to each other and on the same side of the disk. In fact the laser and the sensor can be incorporated on the same integrated circuit chip, although this is not necessary. In the preferred embodiment, the light source  110 , 111  is located slightly outside the disk  100  such that the emitted light is reflected by mirror  118 , 119  through the disk and markings, which are detected by the photo detector  115 , 116 . It should be noted that the invention is not limited to this configuration and that other configurations are possible such as locating both the light source underneath the disk rather than slightly outside of it or conversely locating the sensor slightly outside the disk instead of the light source, for example. 
   The photo detectors comprise a single charge-coupled-device (CCD) area array sensor using a high-density grid of pixels for receiving the light from the light source such as an LED or laser diode. The CCD used can be of a variety of array sensors types, however, the sensor implemented in the embodiment is preferably an Interline Transfer (ILT) CCD because of their simple construction and relatively low cost. ILT CCD area array sensors are well known in the art and are commonly used in digital cameras. They account for a large majority of vision industry products thus the economy of scale typically makes them much less expensive compared to other types of array sensors. Although ILT CCD array sensors do not provide the best image resolution, they make a good choice and function well in detecting coded tracks in optical encoders. By way of example, a CCD array sensor that has been shown to work well with the invention is a sensor from Agilent Technologies of Palo Alto, Calif., U.S.A., model number ADCS-1121, and having 352×288 pixels. Another sensor that has been shown to work satisfactorily is from Hynix Semiconductor of Ichon, Korea, product number HB-7121B and having 402×300 pixels. 
   Referring now to  FIG. 2 , an illustration of an exemplary coding technique used in the embodiment of the present invention for detecting the absolute position is shown on a partial section of a disk. The incremental track pattern is comprised of equally spaced markings in radial distribution encircling just inside the outer circumference of the disk, as indicated by reference numeral  210 . 
   The absolute track  220  is made up of markings that consist of a series of coded lines that include broad and narrow lines radially distributed underneath the incremental track. The absolute track comprises 156 broad lines that divide the track into 156 equally sized sections. Each broad line serves as a synchronization line or reference line for each section. Contained within each section are two narrow data lines that carry information about the section number or absolute position. By way of example, the position can be determined by reading the distance x to the right from the synchronization line to the first data line, whereby this distance represents the first digit of the angular position. Similarly, the distance y of the second data line from the synchronization line represents the second digit of the angular position. The spatial distance can be measured by counting the markings of the incremental track. The distances are captured from the sensor images in number of pixels between the synchronization and data lines. However, the distance is expressed in the number of positions in the incremental code, where a position can be either a line or a opening in the incremental code. By way of example, the width of a line marking in the incremental code is calculated as the distance between two synchronization lines divided by 36. The distance between the synchronization and data lines is then scaled with this factor to get the distance in positions of the incremental code. Those skilled in the art will appreciate that the coding scheme described in the embodiment is exemplary by which the invention is not limited to, and that any suitable coding pattern can be used that enables the absolute position to be uniquely and unambiguously detected. 
     FIG. 3  depicts an exemplary CCD array sensor  300  of the embodiment that is capable of capturing an image (or individual lines) containing both the incremental and absolute tracks in single “snapshot.” The imaging area  310  of the array is a silicon based IC comprising a dense matrix of photodiodes or pixel elements that captures the image by converting the incident light from the tracks into an electric charge which is then processed into and electrical signals. It should be noted that other mainstream sensor array technologies are suitable for use with the invention such as Complementary Metal Oxide Semiconductor or CMOS sensors, which consist of an array of CMOS pixels of photosensitive elements. The image captured by the array sensor is divided into a top and bottom portion whereby the top portion contains image of the incremental track. Likewise, the bottom portion contains the image of at least one complete section of the absolute track. The area array sensor is sufficiently sensitive and positioned close enough to the disk to be able to capture the images without the need for optical lenses. 
     FIG. 4  illustrates a captured image that includes both the incremental and absolute tracks. The tracks are read by a pair of image detector lines, one line ( 410 ) spans across the top portion of the image that comprises an image of the incremental track, and another line ( 420 ) spanning across the bottom portion comprising the image of the absolute track. The detector line ( 420 ) comprising the image of the absolute track is preprocessed with a very fast logic circuit such as a Field Programmable Gate Array (FPGA). FPGAs are widely used programmable devices that provide fast processing in hardware combined with the ability to be reconfigured for a wide variety of applications. Detecting the presence of a synchronization line or data line is performed by detecting the intensity change by which it rises above and drops below a predefined intensity threshold value, which is used to determine where the peaks start and where they end. The identification is preformed by using a sum of the pixel intensities from the edge-to-edge of the imaged marking and comparing the sums with a discrimination threshold. Once a peak is detected, the discrimination threshold is used to discriminate and determine whether the peak is a synchronization line or a data line. 
     FIG. 5  shows an image of an exemplary sensor line from the absolute code. In the example a intensity threshold value of 40 is used to detect the beginning and the end of the peaks. The pixel values are summed from the beginning of the peak to the end, as shown by the shaded area on each peak. In this case, the summed intensities are [541, 519, 1155, 413, 500, 1278, 428], as can be seen in the image. To determine which peaks are from data lines and which are from synchronization lines, the summed intensities are compared to the discrimination threshold value, which in this case is chosen to be 800. Hence, by this criteria peak numbers  3  and  6  are synchronization lines while peaks  1 ,  2 ,  4 ,  5  and  7  are data lines. 
   The center positions of the lines and the summed intensities are passed from the FPGA to a processor to calculate the absolute position. By way of example, an example of a processor that has shown to work well with the invention is ARM-processor referred to as AT91M42800A-33AI. 
   The section numbers are calculated from the distance from the synchronization line to the first and the second data lines. Once the section number is determined the exact angular positions of synchronization lines and the data lines can be calculated. Using the known position of the lines, a rough estimate of the angular position can be calculated. The rough angle estimate is accurate enough to determine the position down to one period of the incremental track. The image from the incremental track is analyzed using a numerical Fourier method in which the FPGA performs the majority of the calculations and the processor calculates the absolute angle. 
     FIG. 6  is a diagrammatic top view of the encoder disk showing the relative positions of the area array sensors used in the embodiment. The array sensors are shifted 180 degrees apart in a configuration that enables both tracks to be read at two separate positions resulting in two distinct angles. The two angles help to make the absolute optical encoder insensitive to mounting errors since the resulting angular position measured by the encoder is given by mean value of the two angles. Therefore, first order errors effectively get cancelled out for motion along the path, because the mean is inherently invariant to disk movements. Several kinds of mounting errors will give rise to errors in the read angle. To increase the accuracy and keep the costs low by lowering the precision required for mounting the disk, it is desirable to compensate for as many mounting errors as possible. For example, if the area-sensor is mounted with a rotational error in the plane of the encoder disk the angle measured will change if the line used on the sensor is changed. Fortunately, if the tilt angle is known it is very easy to compensate for this error. This can be done by reading several lines at a time, while keeping the angular position unchanged, and determine the angular position for them all. If the angular position is the same for all the lines the sensor is mounted correctly, if not the sensor is mounted with an error that can be calculated from the varying angular positions and used to compensate the angle as the used line is changed. 
   The design with two source-detector pairs placed 180° apart has the beneficial characteristic in that all errors due to translation of the disk are effectively canceled. However, mounting errors could cause the two source-detector pairs to be placed at not exactly 180° apart. Some of these errors can be compensated for if the actual angular distance between the two source-detector pairs is known. This distance can be calculated by subtracting the angle read on the two sensors. Although two source-detector pairs are described in the preferred embodiments, it should be noted that the invention is not limited to this configuration and that it is possible to implement a single source-detector pair or even three or more source-detector pairs to work with the invention. 
   The outer track containing the high-resolution incremental code is imaged and the data is sent to the FPGA for preprocessing to calculate the resolution. 
     FIG. 7   a  illustrates graphically the numerical Fourier method carried out by the FPGA. The output signal read from the disk by the array sensor is digitized and depicted by the top signal shown. The product of the digitized output signal and a digitized cosine signal cos(V) (middle signal) is depicted by the bottom signal. Each result is summed in calculations performed by the FPGA. Likewise  FIG. 7   b  illustrates the product of the signal with a sin(V) signal. Since any sinusoidal function can be written as,
   A  sin( x +φ)= B  sin( x )+ C  cos( x ) 
both the amplitude information A and the phase information φ from the left side of the equation can be represented by the two coefficients B and C on the right side of the equation. The relationship between the two ways to write the sine function is:
 
   
     
       
         
           
             φ 
             = 
             
               
                 arctan 
                 ⁡ 
                 
                   ( 
                   
                     C 
                     B 
                   
                   ) 
                 
               
               ⁢ 
               
                   
               
               ⁢ 
               and 
             
           
           , 
           
             A 
             = 
             
               
                 
                   B 
                   2 
                 
                 + 
                 
                   C 
                   2 
                 
               
             
           
         
       
     
   
   This implies that if we can approximate our signal with the form B sin(x)+C cos(x), the phase can be calculated as the arc tan(C/B). This approximation is found by using Fourier mathematics. The Fourier expansion of a periodic function ƒ(x) with period T is written as: 
             f   ⁡     (   x   )       =         a   0     2     +       ∑     n   =   1     ∞     ⁢     (         a   n     ⁢   cos   ⁢           ⁢       n   ⁢           ⁢   2   ⁢   π   ⁢           ⁢   x     T       +       b   n     ⁢   sin   ⁢           ⁢       n   ⁢           ⁢   2   ⁢   π   ⁢           ⁢   x     T         )               
where a n  and b n  is calculated as:
 
   
     
       
         
           
             a 
             n 
           
           = 
           
             
               2 
               T 
             
             ⁢ 
             
               
                 ∫ 
                 a 
                 
                   a 
                   + 
                   T 
                 
               
               ⁢ 
               
                 
                   
                     f 
                     ⁡ 
                     
                       ( 
                       x 
                       ) 
                     
                   
                   · 
                   cos 
                 
                 ⁢ 
                 
                     
                 
                 ⁢ 
                 
                   
                     n 
                     ⁢ 
                     
                         
                     
                     ⁢ 
                     2 
                     ⁢ 
                     π 
                     ⁢ 
                     
                         
                     
                     ⁢ 
                     x 
                   
                   T 
                 
                 ⁢ 
                 
                   ⅆ 
                   x 
                 
               
             
           
         
       
     
     
       
         
           
             b 
             n 
           
           = 
           
             
               2 
               T 
             
             ⁢ 
             
               
                 ∫ 
                 a 
                 
                   a 
                   + 
                   T 
                 
               
               ⁢ 
               
                 
                   
                     f 
                     ⁡ 
                     
                       ( 
                       x 
                       ) 
                     
                   
                   · 
                   sin 
                 
                 ⁢ 
                 
                     
                 
                 ⁢ 
                 
                   
                     n 
                     ⁢ 
                     
                         
                     
                     ⁢ 
                     2 
                     ⁢ 
                     π 
                     ⁢ 
                     
                         
                     
                     ⁢ 
                     x 
                   
                   T 
                 
                 ⁢ 
                 
                   ⅆ 
                   x 
                 
               
             
           
         
       
     
   
   where the coefficient a 0  is the mean value of ƒ(x). The two first order coefficients, a 1  and b 1 , gives a sine approximation of ƒ(x) and the higher order coefficients gives a more exact form of ƒ(x). If we could calculate the two first order coefficients of our signal we could calculate its phase as arc tan(a 1 /b 1 ). According to the expressions for a n  and b n , they are calculated using only one period of the signal. However the signal is not exactly periodic and we want to use all the information in the signal. Therefore it is possible to modify the expressions to: 
             a   n     =       2   Tm     ⁢       ∫   a     a   +   mT       ⁢         f   ⁡     (   x   )       ·   cos     ⁢           ⁢       n   ⁢           ⁢   2   ⁢   π   ⁢           ⁢   x     T     ⁢     ⅆ   x                         b   n     =       2   Tm     ⁢       ∫   a     a   +   mT       ⁢         f   ⁡     (   x   )       ·   sin     ⁢           ⁢       n   ⁢           ⁢   2   ⁢   π   ⁢           ⁢   x     T     ⁢     ⅆ   x                 
where m is the number of periods used, i.e. (number of pixels)/(period of pattern). This means that we integrate over several periods of the signal. In our case ƒ(x) is not continuous but discrete, ƒ j  is the value of pixel number j, thus the integrals are therefore replaced with sums over the pixels:
 
             a   n     =       2   Tm     ⁢       ∑     j   =   1     N     ⁢         f   j     ·   cos     ⁢           ⁢       n   ⁢           ⁢   2   ⁢   π   ⁢           ⁢     x   j       T     ⁢   Δ   ⁢           ⁢     x   j                         b   n     =       2   Tm     ⁢       ∑     j   =   1     N     ⁢         f   j     ·   sin     ⁢           ⁢       n   ⁢           ⁢   2   ⁢   π   ⁢           ⁢     x   j       T     ⁢   Δ   ⁢           ⁢     x   j                 
where N is the total number of pixels and Δx j  is the width of each pixel. We are only interested in the first order coefficients i.e. n=1, and furthermore it is only the ratio between them that is of interest, everything else that is common to both expressions is canceled. Moreover, x j  is simply the pixel number which can be replaced with j resulting in:
 
             a   1     =       ∑     j   =   1     N     ⁢         f   j     ·   cos     ⁢           ⁢               ⁢     2   ⁢   π   ⁢           ⁢   j       T                       b   1     =       ∑     j   =   1     N     ⁢         f   j     ·   sin     ⁢       2   ⁢   π   ⁢           ⁢   j     T               
where finally the phase is calculated as arc tan(a 1 /b 1 ).
 
   The absolute angle ω a  is read from the code of the inner track in the manner previously outlined. The processor then calculates the final angular position ω f , 
             ω   f     =         round   ⁡     (           ω   a     ·     N   sect       -     arctan   ⁡     (     C   /   S     )           2   ⁢   π       )       ·       2   ⁢   π       N   sect         +       arctan   ⁡     (     C   /   S     )         N   sect               
where N sect  is the total number of periods in the incremental track. In the present invention the incremental track contains 2808 periods. The round operation indicates that the number should be rounded to the closest integer.
 
   The accuracy of calculations is down to approximately 1 microradian for the final position. Improving the accuracy depends largely on the amount of available processor power that can perform the calculations within a reasonable time. 
   The method of the present invention is rather flexible in comparison with the prior art, with respect to the accuracy needed to mount the disk in the encoder. By way of example, if the disk is not precisely mounted the tracks will shift or wobble slightly as the disk rotates which can result in misalignments in pitch, roll, yaw and other types of errors. The method enables the encoder to detect and compensate for small mounting errors thereby allowing for larger mounting errors than in the prior art. The compensation is possible because the Fourier analysis is performed numerically thus allowing the encoder to dynamically change the period of the references in contrast to the spatial frequency being fixed in the detector chip which cannot be changed during operation. 
   The encoder can adapt to and compensate for a fluctuating pattern period due to inaccurate mounting of the disk. Compensation can be applied by using either one of two techniques. The first technique is to dynamically change the detector line of the incremental track image. If the pattern period changes due to a spatial movement of the disk, the used line is shifted so that it always contains an image with the same pattern period. The second option is to alter the numerical value of the pattern period used in the Fourier phase algorithm. In the preferred embodiment, the first technique is applied to dynamically change the detector line since altering the spatial frequency numerically can require a large amount of processing power. However, if the alternative with changing the lines is chosen, the sine and cosine values used in the sums in the Fourier phase algorithm can be generated in advance and stored in a table in memory. If the period in the calculations is changed, new sine and cosine values must be generated each time the period changes. Furthermore, some pattern periods tend to give better accuracy than others, for example, when exactly a whole number of periods is contained within the width of the detector. By changing the line it is possible to select a favorable pattern period to use in the calculations that may somewhat reduce the processing requirements. 
   The present invention contemplates a high-resolution optical encoder that is less sensitive to disk mounting errors and requiring no optics makes it especially suitable for applications where a small encoder profile and simple construction would be advantageous. By way of example, theodolite devices used for carrying out topographic mapping such as land surveying employ optical encoders for the precise measurement of vertical and horizontal angular positions. Shown in  FIG. 8 , the devices are also referred to as Total Stations  700  to those skilled the art and are capable of electronic distance measurement (EDM) for precisely measuring distances, in addition to angular displacement. Precise distance measurements are performed with a laser that transmits an infra-red frequency modulated signal  710  on a light wave to a retro-directive prism pole reflector  720  to return the signal, where the phase difference between the transmitted and received signal is used to calculate the distance. The Total Station instrument  700  is configured so it can pivot up and down and swivel horizontally in order to make precise angular measurements in the vertical and horizontal planes. 
     FIG. 9  is a diagrammatic side view of the main body of the Total Station instrument  700  illustrating the locations of the optical encoder disks  800 , 810  for measuring angular displacement in the vertical plane when the main body pivots up and down and in the horizontal plane from swiveling side-to-side. Advanced instruments such as the 5600 series of Total Stations manufactured by Trimble AB of Sweden offer features such as a servo-driven capability and automatic search that allows the instrument to automatically follow a target as it is moved. Other advanced features include radio telemetry for communication with the prism reflector and active targets to eliminate the risk of false reflections that may be mistakenly accepted by the instrument. The encoders enable active and precise control of the servo mechanisms in what is known in the art as Auto Tracking Surveying or Robotic Surveying. 
     FIG. 10  shows a functional block diagram of how a servo-driven Total Station, capable of auto tracking a target, is implemented with the optical encoder of the present invention. Since the instrument is capable of operating in several different modes, input from the modes are individually selected for use in the servo-loop by a multiplexer  910 . The output of the multiplexer  910  is fed into servo loop which comprises a controller  912 , a Drive,  914 , and an Angular sensor  916 . The controller makes the suitable analyses and determines how the drive is to be moved. The angular sensor or encoder of the present invention detects the position of the axis and feeds it back to be compared with the input angle. 
   The function of the servo loop is to position the axis driven by the Drive  914  to a certain position given on the input. The input angle can be different when the instrument is used in different modes. For instance, when used normally the control knobs  902  are used primarily to operate the instrument. When the user wants to change the vertical or the horizontal angle, he turns the control knob for the vertical or the horizontal axis respectively. This means that the input angle to the servo system is changed in relation to the movement of the knobs. In another mode, the instrument can be used for outputting certain positions e.g. the corners of a building that is to be built. In this case the position is typed on the control unit and the input angle corresponding to that position is calculated, this is referred to as the reference angle  904 . In yet another mode, the instrument can be used to automatically track a target. In this case the tracker unit  906  detects the movements of the target and changes the input angle to the servo loop so that the instrument tracks the movements of the target. 
   When initially starting up the encoder, both of the tracks are read to calculate the exact absolute angle. When the absolute angle is known it is not necessary to calculate the absolute angle from the absolute track. Instead, the encoder can be used in an incremental mode where only the incremental track is read. When a new incremental angle is read from the incremental track, the new absolute angle can be calculated from the last absolute angle and knowledge about the rotation speed of the axis. 
   If the two last absolute angular positions where ω k-2  and ω k-1  and the new incremental angle is ω inc  then the new absolute angular position, ω k , can be calculated as, 
   
     
       
         
           
             ω 
             k 
           
           = 
           
             
               
                 round 
                 ⁡ 
                 
                   ( 
                   
                     
                       
                         
                           ( 
                           
                             
                               ω 
                               
                                 k 
                                 - 
                                 1 
                               
                             
                             + 
                             
                               Δω 
                               
                                 k 
                                 - 
                                 1 
                               
                             
                           
                           ) 
                         
                         · 
                         
                           N 
                           sect 
                         
                       
                       - 
                       
                         ω 
                         inc 
                       
                     
                     
                       2 
                       ⁢ 
                       π 
                     
                   
                   ) 
                 
               
               · 
               
                 
                   2 
                   ⁢ 
                   π 
                 
                 
                   N 
                   sect 
                 
               
             
             + 
             
               
                 ω 
                 inc 
               
               
                 N 
                 sect 
               
             
           
         
       
     
     
       
         
           
             where 
             ⁢ 
             
                 
             
             ⁢ 
             
               Δω 
               
                 k 
                 - 
                 1 
               
             
           
           = 
           
             
               ω 
               
                 k 
                 - 
                 1 
               
             
             - 
             
               ω 
               
                 k 
                 - 
                 2 
               
             
           
         
       
     
   
   This is similar to the way the absolute and incremental angle from the two tracks is forged together. However, the absolute angle does not come from reading the absolute track but from assuming that the absolute angle is the last known absolute angle plus the last known angular change. It has been found that this assumption is usually correct enough as long as the angular acceleration is not too large. Laboratory analyses have shown that the instrument must be struck very hard to achieve this kind of acceleration. Notwithstanding, subjecting the instrument to forces that are likely to make it lose track of the absolute angle are likely to cause severe damage to the instrument. A primary advantage with this is that the calculation of the absolute angle from the absolute track does not have to be a priority task in the controller. Therefore, the absolute angles do not need to be calculated at the same high rate as with the incremental angles. In the embodiment, when an absolute angle is calculated from the absolute track, it is compared with the angle calculated in the incremental mode as described above to check that the encoder has not lost track of the absolute angle. 
   The foregoing description of the preferred embodiments of the invention has been presented for purposes of illustration and description. It is not intended to be exhaustive or to limit the invention to the precise forms disclosed, since many modifications or variations thereof are possible in light of the above teaching. For example, inventive concept is suitable for use in both rotary and linear encoders using a scale element in place of a disk. Furthermore, the invention applicable to sensor configurations other than those described in the preferred embodiments, for example, configurations of three sensors, four sensors positioned 90 degrees apart, or more than four sensors etc. 
   Still other modifications will occur to those of ordinary skill in the art. All such modifications and variations are within the scope of the invention. The embodiments chosen were described in order best to explain the principles of the invention and its practical application, thereby enabling those skilled in the art to utilize the invention in various embodiments and with various modifications as suitable for the particular use contemplated. It is therefore the intention that the following claims not be given a restrictive interpretation but should be viewed to encompass variations and modifications that are derived from the inventive subject matter disclosed.