U.S. patent application number 12/549731 was filed with the patent office on 2010-03-04 for indexed optical encoder, method for indexing an optical encoder, and method for dynamically adjusting gain and offset in an optical encoder.
This patent application is currently assigned to FARO TECHNOLOGIES, INC.. Invention is credited to Frederick York.
Application Number | 20100057392 12/549731 |
Document ID | / |
Family ID | 41571869 |
Filed Date | 2010-03-04 |
United States Patent
Application |
20100057392 |
Kind Code |
A1 |
York; Frederick |
March 4, 2010 |
INDEXED OPTICAL ENCODER, METHOD FOR INDEXING AN OPTICAL ENCODER,
AND METHOD FOR DYNAMICALLY ADJUSTING GAIN AND OFFSET IN AN OPTICAL
ENCODER
Abstract
An optical encoder may include an encoder disk, an illumination
system, and a detector to detect light diffracted from the encoder
disk. The encoder disk may include a signal track comprising a
diffraction grating, and an index track comprising a reflective
index mark, wherein a width of the index mark is larger than a
pitch of the diffraction grating. An indexing method may include
providing an encoder disk, providing an illumination system to
direct light to the encoder disk, providing a detector structured
to detect light diffracted from the encoder disk, calculating an
estimated count of quadrature states from a rising edge of an index
pulse to a middle of the index interval, and calculating the
quadrature state at an approximate center of the index pulse. A
dynamic parameter correction method may include calculating a
target gain and offset and correcting values based on the target
gain and offset.
Inventors: |
York; Frederick; (Longwood,
FL) |
Correspondence
Address: |
CANTOR COLBURN, LLP
20 Church Street, 22nd Floor
Hartford
CT
06103
US
|
Assignee: |
FARO TECHNOLOGIES, INC.
Lake Mary
FL
|
Family ID: |
41571869 |
Appl. No.: |
12/549731 |
Filed: |
August 28, 2009 |
Related U.S. Patent Documents
|
|
|
|
|
|
Application
Number |
Filing Date |
Patent Number |
|
|
61224657 |
Jul 10, 2009 |
|
|
|
61092478 |
Aug 28, 2008 |
|
|
|
Current U.S.
Class: |
702/94 ;
250/231.13 |
Current CPC
Class: |
G01D 5/3473 20130101;
G01D 5/24476 20130101; G01D 5/34 20130101; G01D 5/2457 20130101;
G01D 5/34707 20130101; G06F 17/18 20130101; G01D 18/00
20130101 |
Class at
Publication: |
702/94 ;
250/231.13 |
International
Class: |
G01D 5/347 20060101
G01D005/347; G06F 19/00 20060101 G06F019/00 |
Claims
1. An optical encoder comprising: an encoder disk comprising: a
signal track comprising a diffraction grating formed as a ring on
the encoder disk; and an index track comprising a reflective index
mark, wherein a width of the index mark is larger than a pitch of
the diffraction grating; an illumination system structured to
direct light to the encoder disk; and a detector structured to
detect light diffracted from the encoder disk.
2. The optical encoder of claim 2, wherein the index track
comprises: a first index track formed as a ring on the encoder
disk; and a second index track formed as a ring on the encoder
disk.
3. The optical encoder of claim 2, wherein the first index track
comprises a first index mark provided at an index angular
coordinate; and the second index track comprises a second index
mark provided at the index angular coordinate; wherein either: the
first index track is non-reflective except for the first index
mark, which is reflective, and the second index track is reflective
except for the second index mark, which is non-reflective; or the
second index track is non-reflective except for the second index
mark, which is reflective, and the first index track is reflective
except for the first index mark, which is non-reflective.
4. The optical encoder of claim 1, wherein the encoder disk further
comprises: a glass substrate; a low reflective layer provided on
the substrate; and a high reflective layer provided on the low
reflective chrome layer; wherein the high reflective chrome is
formed in a pattern such that a portion of the low reflective layer
is visible.
5. The optical encoder of claim 4, wherein the low reflective layer
comprises a low reflective chrome layer.
6. The optical encoder of claim 4, wherein the high reflective
layer comprises a high reflective chrome layer.
7. The optical encoder of claim 4, wherein the low reflective layer
has a reflectivity of approximately 5% on a side opposite the glass
substrate.
8. The optical encoder of claim 4, wherein the high reflective
layer has a reflectivity of approximately 59% on a side facing the
glass substrate and a reflectivity of approximately 65% on a side
opposite the glass substrate.
9. The optical encoder of claim 4, wherein the glass substrate
comprises an optical absorption material applied to a face of the
glass substrate.
10. The optical encoder of claim 1, wherein the illumination system
comprises a light-emitting diode.
11. The optical encoder of claim 1, wherein the illumination system
comprises: a multimode VCSEL laser structured to emit laser
light.
12. The optical encoder of claim 1, wherein the detector further
comprises two offset detectors structured to detect light
diffracted from the signal track and output a quadrature
signal.
13. The optical encoder of claim 2, wherein the detector further
comprises: a first index detector structured to detect light
reflected from the outer index track and output an outer index
signal; a second index detector structured to detect light
reflected from the inner index track and output an inner index
signal; and a comparator structured to output an index pulse based
on the outer index signal and the inner index signal.
14. An encoder disk for use in an optical encoder, the encoder disk
comprising: a signal track comprising a diffraction grating formed
as a ring on the encoder disk; and an index track comprising a
reflective index mark, wherein a width of the index mark is larger
than a pitch of the diffraction grating.
15. The encoder disk of claim 14, wherein the index area comprises:
a first index track formed as a ring on the encoder disk; and an
second index track formed as a ring on the encoder disk.
16. The encoder disk of claim 15, wherein the first index track
comprises a first index mark provided at an index angular
coordinate; and the second index track comprises a second index
mark provided at the index angular coordinate; wherein either: the
first index track is non-reflective except for the first index
mark, which is reflective, and the second index track is reflective
except for the second index mark, which is non-reflective; or the
second index track is non-reflective except for the second index
mark, which is reflective, and the first index track is reflective
except for the first index mark, which is non-reflective.
17. The encoder disk of claim 14, further comprising: a glass
substrate; a low reflective layer provided on the substrate; and a
high reflective layer provided on the low reflective layer; wherein
the high reflective layer is formed in a pattern such that a
portion of the low reflective layer is visible.
18. The encoder disk of claim 17, wherein the low reflective layer
comprises a low reflective chrome layer.
19. The encoder disk of claim 17, wherein the high reflective layer
comprises a high reflective chrome layer.
20. The encoder disk of claim 17, wherein the low reflective layer
has a reflectivity of approximately 5% on a side opposite the glass
substrate.
21. The encoder disk of claim 17, wherein the high reflective layer
has a reflectivity of approximately 59% on a side face the glass
substrate and a reflectivity of approximately 65% on a side
opposite the glass substrate.
22. The encoder disk of claim 17, wherein the glass substrate
comprises an optical absorption material applied to a face of the
glass substrate.
23. An indexing method for use with an optical encoder, the
indexing method comprising: providing an encoder disk, comprising:
a signal track comprising a diffraction grating formed as a ring on
the encoder disk; and an index track formed as a ring on the
encoder disk, the index track comprising an index mark provided at
an index angular coordinate; providing an illumination system
structured to direct light to the encoder disk; providing a
detector structured to detect light diffracted from the encoder
disk, the detector comprising: two offset detectors structured to
detect light diffracted from the signal track and output a
quadrature signal; and an index detector structured to detect light
reflected from the index track and output an index pulse;
calculating an estimated state count k.sub.est of quadrature states
from a rising edge of the index pulse to a middle of the index
interval; calculating Q.sub.kest, wherein Q.sub.kest is the
quadrature state at k.sub.est and corresponds to the quadrature
state at an approximate center of the index pulse; and determining
an offset correction.
24. The indexing method of claim 23, wherein the calculating an
estimated state count k.sub.est comprises: calculating k.sub.est as
K/2 in a case that K is even; or calculating k.sub.est as ((K+1)/2)
in a case that K is odd; wherein K is the quadrature count from the
beginning to the end of the index pulse.
25. The indexing method of claim 24, wherein Q.sub.kest is equal to
Q.sub.(kest mod 4), wherein Q.sub.kest-is the quadrature state at
kest and Q.sub.(kest mod 4) is the quadrature state at (k.sub.est
mod 4).
26. A method of dynamically adjusting gain and offset in an optical
encoder, the method comprising: providing an encoder disk
comprising a diffraction grating; illuminating the encoder disk
with light; providing a detector structured to detect light
diffracted from the diffraction grating and output a first fine
count channel; calculating a first target gain and first target
offset for the first fine count channel; and applying a correction
to data sampled from the first fine count channel based on the
first target gain and first target offset.
27. The method of claim 26, wherein calculating a target gain and
offset comprises: determining a minimum value and maximum value in
a set of data from the first fine count channel; calculating a
moving average minimum based on the minimum value and minimum
values from a plurality of prior sets of data from the first fine
count channel; calculating a moving average maximum based on the
maximum value and maximum values from the plurality of prior sets
of data from the first fine count channel; calculating the first
target gain according to the equation
G.sub.cal=(ave_max.sub.A-ave_min.sub.A)/2, where G.sub.cal is the
first target gain, ave_max.sub.A is the moving average maximum, and
ave_min.sub.A is the moving average minimum; and calculating the
first target offset according to the equation
OFFSET.sub.cal=(ave_max.sub.A+ave_min.sub.A)/2, where
OFFSET.sub.cal is the first target offset.
28. The method of claim 26, wherein applying a correction to data
sampled from the first fine count channel comprises: calculating a
gain G.sub.A of a data sample according to the equation
G.sub.A=(max.sub.A-min.sub.A)/2, wherein max.sub.A is a maximum of
the data sample and min.sub.A is the minimum of the data sample;
calculating an offset OFFSET.sub.A of the data sample according to
the equation OFFSET.sub.A=(max.sub.A+min.sub.A)/2; calculating a
gain correction factor GF.sub.A according to the equation
GF.sub.A=G.sub.cal/G.sub.A, where G.sub.cal is the first target
gain; calculating an offset correction factor .DELTA.OFF.sub.A
according to the equation
.DELTA.OFF.sub.A=OFFSET.sub.cal-OFFSET.sub.A, where OFFSET.sub.cal
is the first target offset; and correcting fine counts according to
the equation CFC.sub.A=(GF.sub.A*FC.sub.A)+.DELTA.OFF.sub.A, where
FC.sub.A is raw fine count data from the first fine count channel
and CFC.sub.A is the corrected fine count data.
29. The method of claim 26, wherein the detector is structured to
output a second fine count channel, and the method further
comprises: calculating a second target gain and second target
offset for the second fine count channel; and applying a correction
to data sampled from the second fine count channel based on the
second target gain and second target offset.
30. The method of claim 29, wherein the detector is structured to
output a coarse count, and the method further comprises applying a
correction to the course count based on the correction to data
sampled from the first fine count channel and data sampled from the
second fine count channel.
31. The method of claim 30, wherein applying a correction to the
coarse count comprises: defining a quantization operator Q(x) as:
Q(x)=0 for x<0, and Q(x)=1 for x.gtoreq.0; calculating a
compensated state pair {A', B'} according to the equation: {A',
B'}={Q(CFC.sub.A-.DELTA.OFF.sub.A), Q(CFC.sub.B,
-.DELTA.OFF.sub.B)}; where CFC.sub.A is corrected data sampled from
the first fine count channel, CFC.sub.B is corrected data sampled
from the second fine count channel, .DELTA.OFF.sub.A is an offset
correction value for the first fine count channel, and
.DELTA.OFF.sub.B is an offset correction value for the second fine
count channel; comparing the coarse count to the compensated state
pair; adjusting the coarse count to match the compensated state
pair.
32. The method of claim 26, wherein a plurality of detectors are
provided, each of the plurality of detectors being structured to
detect light diffracted from the diffraction grating and output a
first fine count channel.
33. The method of claim 27, wherein the determining a minimum and
maximum value in a set of data from the first fine count channel
comprises: determining the three highest values and the three
lowest values in the set of data; rejecting the minimum and maximum
value if any of the three highest values differ from a median of
the three highest values by greater than a predetermined amount or
if any of the three lowest values differ from a median of the three
lowest values by greater than a predetermined amount.
34. The method of claim 27, wherein the determining a minimum and
maximum value in a set of data from the first fine count channel
comprises: rejecting the minimum and the maximum if the minimum
differs from the moving average minimum by more than a
predetermined amount or if the maximum differs from the moving
average maximum by more than a predetermined amount.
35. The optical encoder of claim 2, wherein the first index track
is provided outside the signal track in a radial direction, and the
second index track is provided inside the signal track in a radial
direction.
36. The encoder disk of claim 15, wherein the first index track is
provided outside the signal track in a radial direction, and the
second index track is provided inside the signal track in a radial
direction.
Description
CROSS REFERENCE TO RELATED APPLICATIONS
[0001] This application claims priority to U.S. Provisional
Application No. 61/092,478, filed Aug. 28, 2008; and U.S.
Provisional Application No. 61/224,657, filed Jul. 10, 2009, the
entire contents of each of which are incorporated herein by
reference.
BACKGROUND
[0002] Many devices have been disclosed for measuring angular
displacement. Typical devices often utilize detection of shifts in
fringe patterns of diffracted light.
[0003] U.S. Pat. No. 5,355,220 to Kobayashi et al. discloses a
light from a source radiated onto a diffraction grating to generate
diffracted lights of different orders of diffraction permitting
detection of light and dark stripes. Movement is measured by direct
detection of movement of the stripes.
[0004] U.S. Pat. No. 5,486,923 to Mitchell et al. discloses a
grating which concentrates light having a pre-selected wavelength
into + and - first orders while minimizing the zero order. The
diffracted orders of light illuminate a polyphase detector
plate.
[0005] U.S. Pat. No. 5,559,600 to Mitchell et al. discloses a
grating concentrating a pre-selected wavelength into positive and
negative first orders. A polyphase periodic detector has its
sensing plane spaced from the scale at a location where each
detector element responds to the positive and negative first orders
without requiring redirection of the diffracted light.
[0006] U.S. Pat. No. 5,909,283 to Eselun uses a point source of
light directing a beam at an angle onto a movable scale.
Diffraction beams are generated which are intersected by an optical
component such as a Ronchi grating so as to form Moire fringe
bands. An array of sets of photodetectors are positioned to
intercept the bands of the Moire pattern and emit signals that are
electronically processed to indicate displacement of the scale.
[0007] U.S. Pat. No. 7,002,137 to Thorburn discloses an optical
encoder including a scale, the scale including an optical grating
and an optical element; a sensor head, the sensor head including a
light source and a detector array both of which are disposed on a
substrate, the scale being disposed opposite the sensor head and
being disposed for movement relative to the sensor head. A distance
between the scale and a Talbot imaging plane closest to the scale
being equal to d. The sensor head being disposed within a region
bounded by a first plane and a second plane, the first plane being
separated from the scale by a distance substantially equal to n
times d plus d times x, the second plane being separated from the
scale by a distance substantially equal to n times d minus d times
x, n being an integer and x being less than or equal to one half.
The light source emits a diverging beam of light, the diverging
beam of light being directed towards the scale, light from the
diverging beam of light being diffracted by the grating towards the
detector array. A mask is disposed between the scale and the sensor
head, the mask defining an aperture, the mask remaining
substantially fixed relative to the sensor head, the aperture being
sized and positioned to substantially prevent fifth order beams
diffracted from the grating from reaching the detector array.
[0008] However, high accuracy is often a requirement for these
devices, for example, micron range accuracy is often required. Many
conventional devices have problems that limit their accuracy,
reliability, calibration, and ease of mass production, and they are
generally expensive when such fine resolution is required. The
expense is due in part to the requirement to assemble these parts
in precise locations relative to one another. Therefore, there is a
need for highly accurate and reliable optical encoders that can be
mass produced in an inexpensive manner.
SUMMARY
[0009] An embodiment of an optical encoder may include an encoder
disk, an illumination system structured to direct light to the
encoder disk, and a detector structured to detect light diffracted
from the encoder disk. The encoder disk may include a signal track
comprising a diffraction grating formed as a ring on the encoder
disk and an index track comprising a reflective index mark, wherein
a width of the index mark is larger than a pitch of the diffraction
grating.
[0010] An embodiment of an encoder disk for use in an optical
encoder may include a signal track comprising a diffraction grating
formed as a ring on the encoder disk, and an index track comprising
a reflective index mark, wherein a width of the index mark is
larger than a pitch of the diffraction grating.
[0011] An embodiment of an indexing method for use with an optical
encoder may include providing an encoder disk, providing an
illumination system structured to direct light to the encoder disk,
providing a detector structured to detect light diffracted from the
encoder disk, calculating an estimated state count k.sub.est of
quadrature states from a rising edge of the index pulse to a middle
of the index interval, calculating Q.sub.kest, wherein Q.sub.kest
is the quadrature state at k.sub.est and corresponds to the
quadrature state at an approximate center of the index pulse, and
determining an offset correction. The encoder disk may include a
signal track comprising a diffraction grating formed as a ring on
the encoder disk, and an index track formed as a ring on the
encoder disk, the index track comprising an index mark provided at
an index angular coordinate. The detector may include two offset
detectors structured to detect light diffracted from the signal
track and output a quadrature signal, and an index detector
structured to detect light reflected from the index track and
output an index pulse.
[0012] An embodiment of a method of dynamically adjusting gain and
offset in an optical encoder may include providing an encoder disk
comprising a diffraction grating, illuminating the encoder disk
with light, providing a detector structured to detect light
diffracted from the diffraction grating and output a first fine
count channel, calculating a first target gain and first target
offset for the first fine count channel, and applying a correction
to data sampled from the first fine count channel based on the
first target gain and first target offset.
BRIEF DESCRIPTION OF THE FIGURES
[0013] Embodiments will now be described, by way of example only,
with reference to the accompanying drawings which are meant to be
exemplary, not limiting, and wherein like elements are numbered
alike in several Figures, in which:
[0014] FIG. 1 is a diagram of an embodiment of an encoder disk.
[0015] FIG. 2 is a diagram showing relative position of the dual
quadrature signals and index signal according to at least an
embodiment.
[0016] FIG. 3 is a diagram showing relative position of the dual
quadrature signals and index signal according to at least an
embodiment.
[0017] FIG. 4 is a diagram showing relative position of the dual
quadrature signals and gated and ungated index signals according to
at least an embodiment.
[0018] FIG. 5A is a diagram of an encoder disk according to at
least an embodiment.
[0019] FIG. 5B is a magnified view of a portion of an encoder disk
according to at least an embodiment.
[0020] FIG. 6 is a diagram of an encoder disk according to at least
an embodiment.
[0021] FIG. 7 is a diagram of a portion of an encoder disk and
various detectors according to at least an embodiment.
[0022] FIG. 8A is a diagram showing the relative position of index
tracks and detector according to at least an embodiment.
[0023] FIG. 8B is a graph showing signals generated by the index
tracks according to at least an embodiment.
[0024] FIG. 9 is a graph showing various signals according to at
least an embodiment.
[0025] FIG. 10 is a diagram of a comparator according to at least
an embodiment.
[0026] FIG. 11 is a diagram showing the different quadrature states
according to at least an embodiment.
[0027] FIG. 12A is a diagram to explain the indexing algorithm
according to at least an embodiment.
[0028] FIG. 12B is a diagram to explain the indexing algorithm
according to at least an embodiment.
[0029] FIG. 13A is a diagram to explain the indexing algorithm
according to at least an embodiment.
[0030] FIG. 13B is a diagram to explain the indexing algorithm
according to at least an embodiment.
[0031] FIG. 13C is a diagram to explain the indexing algorithm
according to at least an embodiment.
[0032] FIG. 14 is a diagram to explain the indexing algorithm
according to at least an embodiment.
[0033] FIG. 15 is a diagram to show light reflection off the
encoder disk according to at least an embodiment.
[0034] FIG. 16 is a chart showing the effect of light reflection on
the index signals according to at least an embodiment.
[0035] FIG. 17 is a photograph of the front of an encoder disk with
one side painted black according to at least an embodiment.
[0036] FIG. 18 is a photograph of the front of an encoder disk with
one side painted black according to at least an embodiment.
[0037] FIG. 19 is a photograph of the back of an encoder disk with
one side painted black according to at least an embodiment.
[0038] FIG. 20 is a graph showing various beam profiles of a
multi-mode VCSEL according to at least an embodiment.
[0039] FIG. 21 is a graph showing the relationship between current
and beam profile in a multi-mode VCSEL.
[0040] FIG. 22 is a diagram showing a diffraction patter for an
encoder according to at least an embodiment.
[0041] FIG. 23 is a three-dimensional graph showing a Gaussian beam
profile.
[0042] FIG. 24 is a display showing a Gaussian beam profile.
[0043] FIG. 25 is a graph showing a beam profile of a multi-mode
VCSEL according to at least an embodiment.
[0044] FIG. 26 is a graph showing a beam profile of a multi-mode
VCSEL according to at least an embodiment.
[0045] FIG. 27 is a graph showing a beam profile of a multi-mode
VCSEL according to at least an embodiment.
[0046] FIG. 28 is a graph showing a beam profile of a multi-mode
VCSEL according to at least an embodiment.
[0047] FIG. 29 is a diagram showing various beam profiles of a
multi-mode VCSEL according to at least an embodiment.
[0048] FIG. 30 is a graph showing various beam profiles of a
multi-mode VCSEL according to at least an embodiment.
[0049] FIG. 31 is a graph showing various beam profiles of a
multi-mode VCSEL according to at least an embodiment.
[0050] FIG. 32 is a display showing a beam profile of a multi-mode
VCSEL according to at least an embodiment.
[0051] FIG. 33 is a graph showing the relationship between current
and beam profile for a multi-mode VCSEL according to at least an
embodiment.
[0052] FIG. 34 is a graph showing a Gaussian beam profile.
[0053] FIG. 35 is a graph showing a Gaussian beam profile.
[0054] FIG. 36 is a graph showing a non-Gaussian beam profile of a
multi-mode VCSEL according to at least an embodiment.
[0055] FIG. 37 is a graph showing a non-Gaussian beam profile of a
multi-mode VCSEL according to at least an embodiment.
[0056] FIG. 38 is a diagram of a VCSEL power control circuit
according to at least an embodiment.
[0057] FIG. 39 is a diagram of a VCSEL power control circuit
according to at least an embodiment.
[0058] FIG. 40 is a diagram of a VCSEL.
[0059] FIGS. 41-42 are views of a two chrome layer encoder
disk.
[0060] FIG. 43 is a Lissajous pattern of outputs of quadrature
channels before gain modification.
[0061] FIG. 44 are graphs showing data regarding read head
calibration.
[0062] FIG. 45 is a Lissajous pattern of outputs of quadrature
channels after gain modification.
[0063] FIG. 46 are graphs showing data regarding read head
calibration.
[0064] FIGS. 47-49 are graphs showing outputs from a two chrome
layer encoder disk.
[0065] FIGS. 50-55 are various views of two chrome layer encoder
disks.
[0066] FIG. 56 is a schematic showing a dynamic parameter
adjustment method.
[0067] FIG. 57 is a flowchart showing a pre-filtering method.
[0068] FIG. 58 is a diagram showing various windows for a moving
average filter.
[0069] FIG. 59 is a diagram showing the error in a quadrature state
for a positive DC offset.
[0070] FIG. 60 is a diagram showing the error in a quadrature state
for a negative DC offset.
DETAILED DESCRIPTION OF THE PREFERRED EMBODIMENTS
[0071] As seen in FIG. 1, an encoder disk 10 can be formed by
placing a track of lines, such as signal track 12, along the outer
part of a circular piece of glass. When illuminated, the lines of
the signal track 12 create an alternating light/dark pattern. The
disk count refers to the number of light/dark pairs per disk
revolution. Pitch refers to the distance between each mark or line
of signal track 12.
[0072] As seen in FIG. 2, when the lines are processed by offset
detectors (1/4 pitch offset) two outputs can be created which are
commonly referred to as a quadrature signal pair, i.e. first
quadrature signal (CH A) 20 and second quadrature signal (CH B) 22.
It will also be understood that combined pair of signal 20 and
signal 22 is commonly referred to as a quadrature signal, with it
being understood that a quadrature signal includes a pair of
phase-shifted signals.
[0073] As further seen in FIG. 1, a second mark is typically added
to conventional encoder disk 12 to identify a specific (absolute)
location on the disk. Index mark 14 is an example of such a
mark.
[0074] The quadrature relationship of CH A 20 and CH B 22 allows
the direction and magnitude of rotation to be determined by an
up/down counter, for example, or any other suitable means. Index
mark 14 can provide a "zero" reference position. FIG. 3 shows an
index signal 24 compared to first quadrature signal 20 and second
quadrature signal 22.
[0075] Quadrature encoders can come in two forms, gated or ungated.
FIG. 4 shows examples of different index signals based on different
types of gating. For example, gated index signal 26 is gated with
the product of the first quadrature signal 20 and the second
quadrature signal 22. Another example is gated index signal 27,
which is gated with only the first quadrature signal. A third
possible example is ungated index signal 28.
[0076] There are two methods for generating an index pulse. One
uses reflection off a very narrow index mark or transmission
through a narrow index slit followed by a photo detector. A
comparator follows the conditioned detector signal and toggles when
light intensity is above some threshold.
[0077] A second method uses diffraction. The index mark is made of
a series of fine lines of varying pitch. Two or more photo
detectors are placed at different locations dependant on
diffraction order. The signals are added (or subtracted) and
applied to a comparator. When signal levels are above some
threshold an index pulse is generated. Both methods require
critical alignment due to the small reflective or diffractive
area.
[0078] FIGS. 5A, 5B, and 6 show an embodiment of an encoder disk.
For example, as seen in FIGS. 5B and 6, encoder disk 30 may include
a signal track 32 that is a diffraction grating formed as a ring on
encoder disk 30. The signal track may be formed by alternating
reflective and non-reflective portions. For example, the
non-reflective portions of the signal track may be formed by
blackened or darkened glass, such as by painting with a flat black
paint or other suitable method. It will be understood that the term
non-reflective does not necessarily require a surface to have 0%
reflectivity. For example, in at least some embodiments, a
non-reflective surface can have a low reflectivity, such as a
reflectivity of 5% or another suitable value.
[0079] As one possible alternative, the reflective and
non-reflective portions can be implemented using two layers of
chrome, with one layer being absorbent and the other being
reflective. FIGS. 41 and 42 illustrate an embodiment of an encoder
disk 400 using two layers of chrome. FIG. 41 shows an encoder disk
400 having a substrate 402, a low reflective chrome layer 404, and
a high reflective chrome layer 406. High reflective chrome layer
406 is deposited on low reflective chrome layer 404. High
reflective chrome layer 406 may be formed in a pattern such that a
portion of a portion of low reflective 404 remains visible after
high reflective chrome layer 406 is applied. For example, high
reflective chrome layer 406 may be formed in a pattern to form a
signal track and index tracks on the encoder disk.
[0080] The low reflective chrome layer 404 may be made of chrome
oxide or another suitable material for example, and may have a
reflectivity of 5% on the air side in at least one embodiment.
Additionally, in at least one embodiment, the high reflective
chrome layer may have a reflectivity of 65% on the air side and 59%
on the glass side. The performance of encoders having two chrome
layers will be discussed further herein.
[0081] Encoder disk 30 may also include an outer index track 34
that is positioned outside signal track 34 in a radial direction,
i.e., towards the outer edge of encoder disk 30. In the embodiment
shown in FIGS. 5B and 6, outer index track 34 is non-reflective
except for a reflective outer index mark 35 positioned at an index
angular coordinate of the encoder disk. The index angular
coordinate can be an arbitrary "zero" reference point in the
circumferential direction.
[0082] Encoder disk 30 can also include an inner index track 36
formed as a ring on encoder disk 30. Inner index track can be
formed inside the signal track in a radial direction, i.e., closer
to the center of encoder disk 30. In the embodiment shown in FIGS.
5B and 6, inner index track is reflective except for a
non-reflective inner index mark 37 positioned at the same index
angular coordinate as reflective outer index mark 35.
[0083] As can be seen in FIGS. 7 and 8A, in at least an embodiment
a width of the index mark is larger than the pitch of the
diffraction grating.
[0084] While the embodiments of FIGS. 5B and 6 show a
non-reflective outer index track 34 with a reflective outer index
mark 35 and a reflective inner index track 36 with a non-reflective
inner index mark 37, it will be understood that the reflective and
non-reflective portions can be exchanged and still achieve the
exact same results. For example, it is possible to have a
reflective outer index track with a non-reflective outer index mark
and a non-reflective inner index track with a reflective outer
index mark.
[0085] The reflective and non-reflective portions of the index
tracks can be implemented in a variety of ways. For example,
similar to the signal track, non-reflective portions of the index
track can be formed by darkening the glass of the encoder disk.
[0086] Alternatively, as noted above, absorbent and reflective
chrome layers can also be used. FIGS. 50-55 illustrate specific
possible embodiments of encoder disks 400, 500 having two chrome
layers. As seen in FIGS. 51 and 54, encoder disks 400, 500 are
structured similarly to the encoder disk described above, and may
include an outer index track 434, 534; an outer index mark 435,
535; inner index track 436, 536; and inner index mark 437, 537.
Similar to the encoder disk 30 described above, the reflective and
non-reflective portions of encoder disks 400, 500 can be exchanged
and are not limited to one specific arrangement. Additionally, it
will be understood that the dimensions indicated in the specific
drawings refer to the specific embodiments shown, and do not limit
the scope of the invention in any way.
[0087] Photodetectors can be used to monitor each index track and
the signal track. As seen in FIG. 7, detectors 40, 41 can be used
to detect the outer and inner index tracks, and signal track
detector 42 can be used to detect the light diffracted from the
signal track. Since the index patterns are the opposite of each
other (i.e., one index track is reflective at index angular
coordinate and the other index track is non-reflective at the index
angular coordinate), then the index outputs from detectors 40, 41
will be inverted about a common offset level.
[0088] For example, FIG. 8A shows a view focused on the region of
the index angular coordinate. In FIG. 8A, the dark region (i.e.,
34, 37) is non-reflective and is moving to the left. The light
region (i.e., 35, 36) is reflective and is also moving left to
right. Detectors 40, 41 are shown superimposed over the index
tracks. FIG. 8A uses the same configuration of reflective and
non-reflective portions as seen in FIGS. 5B and 6.
[0089] FIG. 8B shows the output of the inner index signal 46 and
the outer index signal 48 as a function of time. For example, the
left of the graph represents a period in time when the index
angular coordinate is far from the detectors 40, 41. At this point,
the inner index track is reflective at detector 41, and thus inner
index signal 46 is high to the left of the graph in FIG. 8B. Also
at this time, the outer index track is non-reflective at detector
40, and thus outer index signal 48 is low to the left of the graph
in FIG. 8B.
[0090] As time progresses and the encoder disk rotates in FIG. 8A,
the region seen by detector 40 transitions from non-reflective to
reflective, and the region seen by detector 41 transitions from
reflective to non-reflective. This transition is reflected in FIG.
8B by the inner index signal 46 going from high to low, and the
outer index signal 47 going from low to high. An intersection of
inner index signal 46 and outer index signal 47 can indicate the
"start" or "end" of the index mark on the encoder disk.
[0091] FIG. 9 indicates one example of a display showing index
pulse and signal track traces. For example, index pulse 80 of FIG.
9 represents the index mark. FIG. 9 further shows that the rise and
fall of index pulse 80 corresponds to intersections 44 of inner
index signal 46 and outer index signal 48.
[0092] FIG. 10 shows one example of a comparator for converting an
inner index signal and an outer index signal into a logical index
signal. For example, the logical index signal will transition high
or low based on the intersections of the inner index signal and
outer index signal.
[0093] As discussed above, a diffraction grating signal track can
produce dual quadrature signals such as CH A 20 and CH B 22. These
signals can be created by using a detector 42 that includes offset
detectors, for example. The magnitude and direction of rotation can
be determined by analyzing the dual quadrature signals, for example
through an up/down counter. Once indexed, an absolute position can
also be determined from the up/down counter.
[0094] As shown in FIG. 11, there are four possible quadrature
states 60, 62, 64, 66. The following table summarizes the possible
quadrature states of CH A 20 and CH B 22:
TABLE-US-00001 CH A (20) CH B (22) Q1 (60) High Low Q2 (62) High
High Q3 (64) Low High Q4 (66) Low Low
In other words, the quadrature states represent a Gray Code
sequence. Entry into a different quadrature state from a previous
(different) state will either increment or decrement the position
counter based on direction.
[0095] In an indexing operation, several quadrature states will be
present during the index period. In other words, the index marks on
the index tracks can be large enough such that progressing through
the index track progresses through several quadrature states.
[0096] For example, let K be the number of quadrature states. The
optimum target index state is the quadrature state closest to the
center of the index pulse 72 or index interval. In a given
direction (.+-., CCW/CW) the optimum target state is K/2 (for even
K) or (K+1)/2 (for odd K). In FIG. 12A, for example, K=10, and the
optimum target state 70 is positioned at quadrature state 5. Note
that the "optimum" state is identical for CW and CCW rotations when
K is odd and different by one quadrature state when K is even (see
FIG. 12B, for example). This situation is discussed in more detail
below.
[0097] By selecting a target state as close as possible to the
middle of the index interval 72 (and compensating for an even
count) it can be shown that the selected state can be found
consistently and without error no matter which direction of
rotation is used. Further it is unaffected by a change in the width
of index interval 72.
[0098] The index interval 72 can either shift asymmetrically (i.e.,
in one direction) or symmetrically (i.e., expansion or contraction
about the index center point). By superposition one can have a
combination of the two, but errors can be accounted for by
examining the asymmetrical and symmetrical characteristics
individually. Further, application of hysteresis to the trailing
edge of the index pulse 72 will reduce the ambiguity to one
quadrature state.
Asymmetrical Error:
[0099] There are two sources for asymmetrical error. The first is
due to a shift in read head position, and the second source is due
to the ambiguity (caused by noise and delay) which provides a
simultaneous change of quadrature state and an index pulse
transition.
[0100] The first need not be considered. A moving read head makes a
precision encoder unrealizable. This must be eliminated by
design.
[0101] The second asymmetrical error source has two components. If
a single edge occurs, a 1/2 count error (1/2 quadrature state) is
realized. The second component, which results in a worst case
condition, exists if a transition ambiguity occurs at both ends and
in the same direction (Different direction would constitute a
symmetrical shift). However, when considering travel in both CCW
and CW directions this may translate to a two count (or quadrature
state) difference between both estimates. This is undesirable as
there is an ambiguity of which state is correct. Hysteresis
provides a solution to this source of error.
[0102] The addition of 1/2 quadrature state of hysteresis applied
at the end of the index (true for both directions) removes a two
edge ambiguity and reduces the difference between CCW and CW
estimates to 1 count (quadrature) state. See FIGS. 13A, 13B and
13C. In essence the estimates are brought closer together.
[0103] Therefore at most there can be only one count or one
quadrature state difference between the "target" and newly computed
target estimate. A test of quadrature state will reveal the true
target's location.
Symmetrical Error
[0104] As the index interval expands or contracts there is no
additional error introduced. During the movement only a single
count asymmetrical error can occur as noted above. A target
selection strategy of choosing one state for both CCW/CW motion
will be used when correcting for EVEN count intervals.
Error Correction:
[0105] As noted above, at most only one count/state error will be
found between the state established from K/2 or (K+1)/2 and a
subsequent evaluation. Knowing the target offset direction
(selected state) arrived at during calibration allows us to produce
a correction factor to be added to the target count to produce the
offset (difference between the actual count and desired count (0)
at the index target). The offset is subtracted from the current
count to provide the absolute index position.
[0106] The following definitions are used in explaining the error
correction algorithm and refer to FIG. 14. [0107]
P_Count.sub.i=Value of position counter at location i. [0108]
P_Count .sub. index is the position count at the rising edge of
index pulse. [0109] K=Quadrature count from the beginning to the
end of the index pulse. This is always positive (i.e. independent
of direction) [0110] Dir=0 (P_Count increments in this direction)
or 1 (P.sub.13 Count decrements in this direction). It is a flag
noting the direction of rotary motion through an index sequence.
Example Dir=0 for CCW and 1 for CW. [0111] k.sub.est=Estimate of
the number of quadrature states from the index rising edge to the
target state. [0112] It is the state count from the rising edge of
index pulse to the middle of the index interval. [0113]
k.sub.target=The actual state count from the rising edge of index
pulse to the target state. [0114] Q.sub.i=Quadrature state (Gray
Code) at location i. [0115] Q.sub.target=Gray code at the target
state for index reference.
[0116] It is assumed below that 1/2 state hysteresis is employed.
Given a target state (Q.sub.target), the reference point can be
established from four variables. The way in which these variables
are used to adjust the reference point is referred to as the Index
Algorithm.
[0117] If no target state has been defined then the Index Algorithm
must be run in both directions. The outputs from each pass are
evaluated and a Q.sub.target selected. This is described later.
[0118] This implies that a Target Valid (TV) flag exists. For now
we will assume that TV=0 for no Q.sub.target defined and TV=1 when
it has been.
[0119] The following variables are used in the Index Algorithm:
[0120] 1. Position counter value at the start of index (rising edge
of index pulse). [0121] 2. Direction of rotation. (Is the position
counter incrementing or decrementing through the index interval?).
[0122] 3. Gray code of the quadrature state at start of index.
[0123] 4. Total number of quadrature states in the index
interval.
For TV=0
[0124] Q.sub.target is established by running the Indexer Algorithm
in both directions. The Algorithm outputs (Q.sub.kest+and
Q.sub.kest-) from each direction are compared. If equal then that
becomes the target state. If they differ by one state then we
always let Q.sub.kest=Q.sub.kest- (reverse is also acceptable). A
consistent approach is best. If Q.sub.kest+ and Q.sub.kest- differ
by more than 1 state then a hardware fault exists.
For TV=1
[0125] The algorithm calculates k.sub.target (number of states from
index start to target state (Q.sub.target)). Note that Q.sub.target
is the best state (closest to the center of the index
interval).
[0126] Once k.sub.target is determined the reference calculation
(Zero Position) is calculated as follows (Refer to Definitions
section which follows):
For a Positive Direction
[0127] P_Count.sub.new=P_Count.sub.current-[P_Count.sub.
index+(k.sub.target-1)]. EQ 1.
Note that the adjustment to k.sub.target (-1 term) is because the k
counter starts at 1 upon the index start event.
For a Negative Direction
[0128] P_Count.sub.new=P_Count.sub.current-[P_Count.sub.
index-(k.sub.target-1)]. EQ 2.
[0129] Note that the adjustment to k.sub.target (-1 term) is
because the k counter starts at 1 upon the index start event. This
is the same as in the positive rotation case.
Phases:
[0130] Cal_Phase--Both CCW and CW directions are used to determine
target index state. [0131] FACTORY Setting. Indexing Algorithm
used. [0132] Index_Phase.sub.dir--Find reference point. Indexing
Algorithm used. [0133] Zero_Phase--Calculation and application of
correction such that P_Count.sub.target=0 (target location). [0134]
Enter absolute encoder mode.
Indexing Algorithm:
[0134] [0135] The purpose is to find the index reference point for
either a Positive (CCW) or Negative (CW) encoder rotation. [0136]
Input: Q.sub.target and TV [0137] Output: k.sub.target [0138]
Variables: P_Count.sub. index, Q.sub. index, K, and Dir.
Step 1
[0139] Determine k.sub.est
k.sub.est=K/2 (for K even) or (K+1)/2 (for K odd). EQ 3.
[0140] We will identify the quadrature states starting with the
rising edge of the index pulse as follows (this forms a modulo 4
pattern):
[0141] Q.sub.1, Q.sub.2, Q.sub.3, Q.sub.4, Q.sub.5, Q.sub.6,
Q.sub.7, Q.sub.8, Q.sub.9, Q.sub.10, Q.sub.11, Q.sub.12
[0142] Q.sub.1, Q.sub.2, Q.sub.3, Q.sub.0, Q.sub.1, Q.sub.2,
Q.sub.3, Q.sub.0, Q.sub.1, Q.sub.2, Q.sub.3, Q.sub.0. . .
(congruence)
[0143] Where Q.sub. index=Q1
Step 2
Determine Q.sub.kest
[0144] The quadrature state at k.sub.est (Q.sub.kest) can be found
from:
[0144] QKest = Q { kest mod 4 } Note : Modulo arithmetic 0 mod 4 =
0 1 mod 4 = 1 2 mod 4 = 2 3 mod 4 = 3 4 mod 4 = 0 5 mod 4 = 1 6 mod
4 = 2 EQ 4 ##EQU00001##
Determine O.sub.kest (continued)
[0145] If k.sub.estmod 4=1 (e.g. k.sub.est=5 or 9 or 13 . . . )
then Q.sub.kest=Q.sub.1. (See also FIGS. 12A, 12B, 13A, 13B and
13C).
[0146] The Q's are assigned by direction and the second element
(See Clarification Note) is addressed by the Index rising edge. The
table generated is named the Offset Table. Moving down the Table is
positive (increasing counts), up is negative. This is independent
of the direction of rotation.
Example 1
Use FIG. 13A.
TABLE-US-00002 [0147] For negative direction Q1 = LH Table 1
(Example Offset Table) Q.sub.3 = HL [nearest HL to Q.sub.0] Q.sub.0
= LL Q.sub.1 = LH (Index start) always at "remainder =1" state.
Q.sub.2 = HH Q.sub.3 = HL Q.sub.0 = LL [nearest LL to Q.sub.3]
[0148] K=10 or 11 depending on whether you end in the red or blue
interval. We will examine each. [0149] If K=10 then kest=10/2=5. 5
mod 4=1 [0150] So Q.sub.5=LH=Q.sub.1. [0151] If K=11 then
k.sub.est=(11+1)/2=6. 6 mod 4=2 [0152] So Q.sub.6=HH=Q.sub.2 or
next state from Q.sub.1 in the forward direction. [0153] Dir
selects the table (actual sequence). We always move forward or back
within a selected table in the same fashion whether the motion is
positive or negative. [0154] Note: As we have no referenced P_Count
it cannot be used directly to deduce the Gray Code.
Clarification Note for Offset Tables
[0154] [0155] Bold text indicates x mod 4 result. If the result is
at the boundary (Q.sub.0 or Q.sub.3) the table must extended by one
state (Italicized, back (if@Q.sub.0)/forward (if@Q3)--here both
possibilities are shown). The search is always conducted to the
nearest neighbor. [0156] Assume The Index occurs at an arbitrary
State (Q.sub.1=Q.sub.C). If kest mod 4.fwdarw.Q.sub.0(Q.sub.B), and
the target state is Q.sub.A then
TABLE-US-00003 [0156] Table 2 (Offset Table with extension) Q.sub.3
= Q.sub.A [nearest Q.sub.A to Q.sub.0] [If required] Q.sub.0 =
Q.sub.B ---------{circumflex over ( )} Q.sub.1 = Q.sub.C (Index
start) always at "remainder =1" state. Q.sub.2 = Q.sub.D Q.sub.3 =
Q.sub.A Q.sub.0 = Q.sub.B [nearest Q.sub.B to Q.sub.3] [If
required] Offset = -1.
Step 3
Determine Offset Correction
[0157] If TV=0, Q.sub.kest from both directions is required. There
is no equivalence to Q.sub.target to test. [0158] Raw data is used
to make a target decision. K's from each pass should be checked.
K.sub.+-K.sub.-|<=2 [0159] If TV=1, Q.sub.target has been
defined. [0160] When Q.sub.target=Q.sub.kest.,
k.sub.target=k.sub.est.
[0161] Otherwise we need to correct by one state count (up or
down). If there is more than one state difference, a fault has
occurred.
k.sub.target=k.sub.est+Offset. Where Offset=+1 or -1. EQ 5.
Determine Offset Correction (Continued)
Example 2
Use FIG. 13A.
TABLE-US-00004 [0162] Q.sub.target = LH = Q1 in Offset Table (Table
1) Table 1 (repeated) Q.sub.0 = LL Q.sub.1 = LH (Index start)
always at "remainder =1" state. Q.sub.2 = HH
-----------------{circumflex over ( )} Q.sub.3 = HL With K = 11,
k.sub.est = 6 and Q.sub.kest = HH = Q2 Using EQ 5. Offset =
k.sub.target = k.sub.est = -1 (move up the Offset Table from
estimate to target) Therefore, k.sub.target = 6 - 1 = 5
[0163] The structure and methods described above have a number of
significant advantages. For example, optical alignment becomes very
simple. No precision gratings on the encoder scale or placement of
the read head is required. Additionally, the gap width (i.e., width
of the index mark) is large compared to conventional devices.
Therefore, tolerance in gap position can be larger than in
conventional encoders. Thus, overall, the structure and methods
described above can result in an encoder that is cheaper and
simpler to manufacture and implement compared to conventional
encoders.
[0164] Additionally, there is an improved design margin for
multiple read heads. Two and four read heads are common for very
high precision encoders. Conventional index methods, gated or
un-gated must be applied to all read heads simultaneously. Given
the fact that the read heads can never be exactly at 180 deg
(2-read head) or 90 deg (4-read head) from each other there will be
differences between read head positions within the index pulse.
Picking a best state is more difficult since the middle is skewed
for each read head. In contrast, in one embodiment of the structure
described above, the encoder uses a wide Index (320 micron arc
length, 64 quadrature states), so this is of little concern.
Differences are minimized with respect to temperature drift and
ageing as well.
[0165] Also, in a conventional encoder, if the index pulse contains
5 or more quadrature states it is possible to pick a redundant
state. This has to be tested for and corrected (usually by
hardware, e.g. by cable swap). The structure and technique
described above is by design unaffected with this kind of redundant
states.
[0166] Additionally, the techniques and structures described above
can be used with multi-mode (i.e., non-Gaussian) as well as single
mode (i.e., Gaussian) laser diodes. The apparatus is insensitive to
beam profiles. An LED can also be used as a possible light source
in place of the VCSEL. This flexibility in light sources helps to
minimize cost. Multi-mode VCSELS and LEDs can be less expensive and
more reliable than single mode diodes, as are simple grating
patterns.
[0167] It is also noted that unwanted reflections from the encoder
disk can be reduced by applying an optical black (i.e., light
absorbent compound) to the rear surface of the encoder scale. The
optical black compound can also be applied to the front of the
encoder scale in an alternative embodiment. Additionally, the low
reflective and high reflective layers described above can also
reduce unwanted reflections.
[0168] For example, the method and structure described above uses
two complementary (i.e., Boolean interpretation) reflective tracks
that are on opposite sides of the quadrature signal grating. Since
the index method relies on two reflective paths on each side of the
laser beam they must be in line with their respective
photo-detectors (2) and each receive sufficient energy for signal
crossover.
[0169] If the dark level of each index signal is the same then
crossover at the index interval is guaranteed as long as the
individual signals are larger than the peak to peak noise level
plus hysteresis.
[0170] It is possible for the Mark channel signal 48 (i.e., the
signal caused by the reflective outer index mark) of the Index
signal pair to have a DC offset in some cases. In other words, the
Mark signal 48 did not match the Space signal's 46 (i.e.,
non-reflective inner index mark) lowest level. Because a dip 110 in
this DC offset just before the reflection 112 was detected (See
FIGS. 15 and 16), it was suspected that a reflection from the back
surface of the encoder scale was the culprit. Dip 110 is due to a
reflection from the back of the encoder scale which is reduced as
the Mark reflector comes into view.
[0171] When the backside of the scale is painted with an optical
black or flat black paint (see FIGS. 17, 18 for the front side of
an encoder disk, and FIG. 19 for the back side painted black) the
offset disappears. Due to the wide illumination and processing area
used by the structure described above, the device is more
susceptible to unwanted reflections than are conventional devices.
Blacking all surfaces within the assembly in which the encoder disk
is used further improved the quality of the Lissajous signals (the
inputs of the Lissajous being the two channels of the quadrature
signal). Note that this technique was tried on conventional devices
as well and the Lissajous distortions improved (improved circle
quality) as well. This points to the fact that reflections are the
main source of Lissajous distortions such as elliptical shape,
noisy circles and irregular circles (e.g. potato shape).
[0172] It thus appears that all designs benefit from reduced
reflections. An optical absorption material applied to the back (or
front, outside the grating or Index reflectors), or low reflective
and high reflective layers, can improve read head performance. For
example, signal to noise ratio for the index signal can be
improved, and better quadrature signals can be obtained because of
reduced specular reflections.
[0173] It will also be understood that the absorptive coating or
low reflective and high reflective layers can be optimized for the
particular wavelength of light being emitted by the illumination
system.
[0174] It is also noted that the embodiment of FIGS. 17-19 shows a
clear region in the center of the encoder disk 30. This clear
region allows UV adhesive to be applied to mount the encoder of
this embodiment in a cartridge.
[0175] Regarding two chrome layer encoders (such as encoder 400
seen in FIGS. 41 and 42), calibration and testing was done to
evaluate the performance of the encoders. The results are
summarized below in Table 1. The left column of Table 1 indicates
the serial number of the encoder being tested, and the right column
of Table 1 is the sigma of the encoder measured in degrees.
TABLE-US-00005 TABLE 1 Sigma RH SN (deg) 18 0.00012 36 0.00009 45
0.00010 58 0.00009 60 0.00011 62 0.00009 68 0.00009 69 0.00011 71
0.00009 75 0.00009 76 0.00011 80 0.00010 87 0.00011 92 0.00009 AVG
0.000099 Std Dev 1.07161E-05
[0176] It is noted that these results indicate an improvement of at
least 25% over conventional encoder heads.
[0177] FIGS. 43-46 also illustrate calibration data for read heads.
FIGS. 43-44 show data before gain modification, and FIGS. 45-46
show data after gain modification. FIG. 43 shows Lissajous curves
900, 902 based read head signals. In FIG. 44, lines 904, 906
illustrate errors in the read head positions (offset for clarity).
Upper line 908 is a plot of the average position of two read heads
in the clockwise direction. Lower line 910 is a plot of the average
position of the two read heads in a counterclockwise direction.
Center line 912 is an average position of the read heads from both
directions. FIG. 45 shows Lissajous curves 920, 922 based on read
head signals. In FIG. 46, lines 924, 926 illustrate errors in the
read head positions (offset for clarity). Upper line 928 is a plot
of the average position of two read heads in the clockwise
direction. Lower line 930 is a plot of the average position of the
two read heads in a counterclockwise direction. Center line 932 is
an average position of the read heads from both directions.
[0178] FIGS. 47-49 illustrate outputs from a two chrome layer
encoder used in performance testing. In FIGS. 47-49, line 600
represents a ring with a reflective index mark, line 602 represents
a ring with a non-reflective index mark, and line 604 represents a
quadrature signal.
[0179] Using the two-chrome layer structure, FIGS. 47-49 show that
the dark levels from a non-reflective ring with reflective mark and
a reflective ring with a non-reflective mark were below 0.35 VDC,
and were matched to within 0.16 VDC of each other. On average, the
dark level voltage for the non-reflective ring with reflective mark
was measured to be 0.16 VDC and the dark level voltage for the
reflective ring with non-reflective mark was measured to be 0.26
VDC.
[0180] Regarding the quadrature signal level, in one chrome layer
structure, the specifications are as follows: [0181] Sinusoidal
(phase) DC offset=1.4.+-.0.8 VDC [0182] Sinusoidal (phase) AC
signal=0.4 Vp-p to 2.2 Vp-p
[0183] Post Cartridge Electronics, output specification is as
follows: [0184] Sinusoidal (phase) DC offset (at DSP)=1.67.+-.0.3
VDC [0185] Sinusoidal (phase) AC signal (at DSP)=0.45 to 2.70 p-p
(1.1 Vp-p typical)
[0186] In a two chrome layer structure, the read head transfer
function is attenuated by a factor of 0.8. A gain adjustment can be
made to the cartridge boards if necessary. For example, input
attenuator resistor values can be changed from 20 k to 13 k.
Alternatively, Instrumentation Amplifier Gain can be changed from
2.42 to 3.0 by changing gain resistors from 34.8 k to 24.9 k.
[0187] Overall, the two chrome layer structure on the encoder glass
improves the cartridge system in two ways. First, unwanted
reflections are attenuated, thus improving the index signals by
reducing DC offsets. Second, quadrature signals are more consistent
and have less spatial noise.
[0188] It was also found that the quadrature signal quality does
not change significantly as the beam profile of a VCSEL changes
from a Gaussian shape to a non-Gaussian shape. The device described
above can control a multi-mode laser profile via an optical power
monitoring scheme.
[0189] Multi-mode lasers exhibit Gaussian beam profile at low drive
current and change into an Laguerre-Gaussian {1,0} profile (3-D
appearance is similar to that of a volcano--with a reduction in
optical power toward the center--the "crater") at higher VCSEL
currents (see FIG. 20, which shows various profiles 300, 302, 304,
306, 308 of a multi-mode VCSEL). Notice that the beam width
increases with VCSEL current when in multi-mode, as seen in FIG.
21. For example, in FIG. 21, beam profile 310 is the beam profile
at 4 mA current, and beam profile 312 is the beam profile at 6 mA
current.
[0190] The quadrature signals described above are relatively
distortion free in either Gaussian or non-Gaussian modes due to the
wide spatial collection of energy due to diffraction.
[0191] During experiments the VCSEL current was reduced using
narrow beam VCSELs (laser beam waist on the order of 12 degrees. At
nominal bias (4.75 mA) good quality Lissajous circles were
displayed. This was essentially an LG {1,0} profile. As the VCSEL
current was lowered below 4.3 mA it was noticed that the circle
grew (increased signal strength). However the circle quality
remained the same. This continued until about 3 mA, and then the
circle began to shrink.
[0192] This phenomenon was due to the increase in optical energy
applied to the encoder scale's grating as the beam shape changed
from LG to Gaussian. Note during the change over a reduction in
VCSEL current results in an INCREASE in quadrature signal
strength.
[0193] For VCSELs which are mostly Gaussian (wide beams with a
waist of 20 degrees or more the circle quality remains good but the
quadrature signals vary linearly and monotonically with VCSEL
current.
[0194] For at least one embodiment of the device described above,
the VCSEL current is adjusted so that narrow beam VCSELs are well
into the non-Gaussian region. This avoids a non-monotonic mode
which would make the laser power control optical power loop
unstable.
[0195] One method of controlling a laser diode or LED (emitting
element) is via a constant current source. This technique minimizes
the sensitivity to the forward diode drop due to temperature. In
some cases temperature sensing is used to adjust the current and
compensate the optical output drift due to temperature.
[0196] A second method uses optical feedback to compensate. The
optical power is measured by a separate photo detector, either
within the same package or a separate photo sensor.
[0197] The present encoder preferably uses the second method but
with an additional purpose. Power adjustment of a multimode VCSEL
can lead to pronounced changes in beam width and shape. This
characteristic is used to optimize the signal to noise ratio due to
spatial distortion.
[0198] Therefore, benefits extend beyond compensating the
sine/cosine and index channels for drift due to temperature and
ageing.
[0199] Optical encoders use precision rulings on linear or rotary
glass scales. These rulings provide a position reference that can
be used to measure relative motion between an optical read head and
the scale. Often, two quadrature sinusoidal signals are output.
Measuring electronics count zero crossings and may also interpolate
between zero crossings
[0200] The present encoder is based on the non-direct imaging
technique called Talbot imaging. This type of encoder relies on
interference between grating diffraction orders. For Talbot
imaging, interference between overlapping diffraction orders
produces a pseudo-image that resembles the scale rulings.
[0201] FIG. 22 depicts the diffraction pattern of the present
encoder. The desired information comes from the +1 diffraction band
320 and -1 diffraction band 322. However, a mask is not used to
perform a spatial filtering as in the U.S. Pat No. 7,002,137 to
Thorburn. Instead, all of the diffraction orders are passed to the
sensor head and then an algorithm filters them electronically.
Laser Diodes--Single-Mode and Multi-Mode Laser Diodes.
[0202] Single-mode (designated TEM 00) lasers produce a single
round spot with a Gaussian profile 200 as shown in FIGS. 23 and 24
Multi-mode lasers on the other hand exhibit resonance areas.
Various peaks and valleys can occur. For example, FIGS. 25-28 show
three-dimensional views of various possible beam profiles 340, 342,
344, and 346 of multi-mode lasers. FIG. 29 shows cross sections
350-357 of various possible beam profiles.
VCSEL Beam Profiles:
[0203] Multi-mode VCSELs normally generate patterns based on
Laguerre-Gaussian (LG) profiles. At low power they provide a
Gaussian profile, at higher power levels LG [1,0] are common as
seen in FIGS. 30-32. For example, FIG. 32 shows various views of a
beam profile 360 of a multi-mode laser.
[0204] The present encoder preferably uses an LG [1,0] VCSEL which
has a general profile/current transfer function (when in
multi-mode) as shown in FIG. 33. Actual test data can be seen in
FIGS. 34-37. For example, FIGS. 34 and 35 show a beam profile 380
at 2.75 mA. The two lines in FIG. 34 correspond to the profile in
the x and y directions. Similarly, FIGS. 36 and 37 show a beam
profile at 4.75 mA.
[0205] FIG. 38 shows one possible embodiment of VCSEL optical power
control circuit 400. Note that in the embodiment shown in FIG. 38,
resistor R14 is programmable (i.e., set point control).
[0206] The ability to control the laser beam shape gives rise to an
optimization of performance. An encoder can be rotated at a certain
frequency (by motor) and a DFT (Discreet Fourier Transform)
performed. Thus, the optical power set point can be adjusted to
give the best signal/noise (SNR), and spatial harmonic distortion
is minimized.
[0207] Additionally, the power control described above helps to
compensate for quadrature and index signal drift due to temperature
and VCSEL ageing.
[0208] The VCSEL profile control described above has a number of
advantages over conventional profile controls.
[0209] For example, by peaking the laser beam profile near the
.+-.1 diffraction order locations, higher order spatial harmonics
are reduced relative to the first order spatial harmonic (comprised
of the .+-.1 diffraction order. However, it is also important to
note that herein it is not necessary in this method to use a
physical mask to block unwanted harmonics. This is at least because
digital signal processing (DSP) may be used instead of using
spatial filtering and/or masks for example. In other words, all of
the of harmonics such as fifth order beams or higher, whether
usable or not, can reach the detector if desired. This simplifies
construction significantly over the prior art.
[0210] Additionally, multi-mode (i.e., non-Gaussian) laser diodes
are more reliable than single-mode laser diodes. Construction is
more robust as power handling is higher for multi-mode VCSELs. In
contrast, single-mode channels are narrow in order to reduce
resonances, and they tend to be very sensitive to voltage stress
and electrostatic discharge. Also, cost can be minimized by using
multi-mode VCSELs, because finer techniques must be employed to
produce the pure Gaussian beam profile of a single-mode.
[0211] FIG. 39 illustrates another possible embodiment of the VCSEL
control. For example, VCSEL component D10 may comprise a metal
package, a window (for dust protection), the VCSEL 300 and a
photo-detector 302. A small portion of the laser light is reflected
back from the window and excites the photo-detector 302. Therefore,
the amount of optical energy transmitted can be obtained by
monitoring the internal photo-detector's current.
[0212] FIG. 40 shows at least one possible embodiment of a VCSEL
300. The invention is not limited to this particular VCSEL however,
and any other appropriate VCSEL, LED, or other appropriate light
source can be used. FIG. 40 also shows a window 301 as part of the
VCSEL.
[0213] As seen in FIG. 39, the feedback current from the
photo-detector 302 is converted into a voltage (V.sub.MON) via
resistor R7 or resistor R7 in parallel with resistor R8. The
parallel combination is used when the dynamic range of control is
to be increased. Note that resistor RI 7 is normally not mounted,
when a zero ohm resistor is mounted in this position the parallel
combination can be formed.
[0214] Op-amp U1 and transistor Q1 form a voltage to current
converter. V.sub.Bias is the set point voltage. The feedback loop
formed by Op-amp U1, transistor Q1, capacitor C4, VCSEL component
D10, and resistor R7 (or resistor R7 in parallel with resistor R8)
changes the current in the laser diode (LD) until
V.sub.MON=V.sub.BIAS. That is the optical power is adjusted by
varying the VCSEL current until the feedback current * resistor R7
(or resistor R7 in parallel with resistor R7 and resistor R8) is
equal to V.sub.Bias.
[0215] Op-amp U1 amplifies the error between V.sub.MON and
V.sub.Bias. Capacitor C4 sets the bandwidth. The output voltage
(Vout-U1 pin 1) from op-amp U1 is applied through resistor R9 to
the base of transistor Q1.
[0216] The emitter current of transistor Q1 is approximately
[Vout-Vbe]/R13, where Vbe is the base emitter voltage of the
transistor Q1 (.about.0.7 Volts) and R13 is the resistance of
resistor R13 Note resistor R9's effect is negligible due to the
fact that the base current is much less than the emitter or
collector current by a factor of Beta (.about.180). Transistor Q1's
collector current is equal to the VCSEL current and is
approximately equal to the emitter current given by the above
emitter current equation.
[0217] V.sub.Bias is determined by the reference diode (2.5 V) and
the voltage divider formed by resistor R14 and resistor R12.
[0218] V.sub.Bias is normally selected to provide a nominal optical
power or VCSEL current.
[0219] In either case, because of feedback, the optical power will
remain constant over temperature and component variation (e.g.
ageing).
[0220] It will also be understood that multi-mode VCSELs can have
an unpredictable beam shape over variations in temperature. This
may lead to non-linear amplitude and offset drifts for the
quadrature signal used to interpolate position. Thus, conventional
devices would have significant difficulty in implementing a VCSEL,
and it is necessary to implement dynamic adjustment of gain and
offset in order for VCSELs to be practical for encoders.
[0221] An example of dynamic adjustment of gain and offset is
described below. While the discussion below refers to a single
encoder read head, it will be appreciated that the dynamic
adjustment method can also be incorporated into systems having
multiple read heads.
[0222] FIG. 56 is a schematic to show at least one embodiment of
dynamic adjustment of gain and offset. As seen in FIG. 56, raw data
is acquired by a read head at 1000. At 1002, this raw data can be
parsed into coarse count 1010, first fine count 1012, and second
fine count 1014. It will be understood that fine counts 1012, 1014
represent the two channels of the fine count.
[0223] In summary, the dynamic adjustment has three different
process steps: data qualification pre-filtering 1020, max/min
moving average filtering 1030, and value correction 1040, 1050.
After the data is parsed at 1002, the fine count is pre-filtered at
1020. Pre-filtering is used to acquire the three largest and three
smallest samples in the data set. In at least one embodiment,
threshold levels for the max and min data are used. For example, as
50% threshold or other suitable value can be used.
[0224] FIG. 57 shows at least one embodiment of a method for
acquiring the three largest and three smallest samples in the data
set.
[0225] At 1300, it is first evaluated whether the fine count is
positive. If the fine count is positive, then it is a candidate for
a maximum value. If it is negative, it is a candidate for the
lowest value. There is an array for both the positive and negative
values. MaxValue(0), MaxValue(1), MaxValue(2) are the maximum
values, with MaxValue(0) being the highest. Similarly, MinValue(0),
MinValue(1), MinValue(2) are the minimum values, with MinValue(0)
being the lowest.
[0226] In step 1302, the fine count is compared to MaxValue(0). If
fine count is greater than MaxValue(0), then the fine count becomes
the new MaxValue(0) and the other members are the array are
reordered (see step 1304). Otherwise, the fine count is compared to
MaxValue(1) at step 1306. If the fine count is greater than
MaxValue(1), then the fine count becomes the new MaxValue(1) and
MaxValue(2) is adjusted accordingly (see step 1308). Otherwise the
fine count is compared to MaxValue(2) at step 1310. If the fine
count is greater than MaxValue(2), then the fine value becomes the
new MaxValue(2) (see step 1312). If the fine count is less than
teach value of the MaxValue array, than the fine count is discarded
(see step 1313).
[0227] It will be understood that a similar method can be followed
for each value of the MinValue array if the fine count is negative
(see steps 1314-1326 in FIG. 57). After the fine count is either
stored to one of the arrays or discarded, it is evaluated whether
the pre-filtering is complete (see step 1328).
[0228] Once the three largest and three smallest samples are
acquired, screening methods can be performed on the data. If the
data passes the screening checks, then the highest (maximum) value
and the lowest (minimum) value are accepted to use in further
calculations. It will be understood that a maximum and minimum
value will be found for each fine count 1012, 1014. For example, if
the screening is satisfied, pre-filtering 1020 will return a first
fine count maximum max.sub.A, a first fine count minimum,
min.sub.A, a second fine count maximum max.sub.B, a second fine
count minimum, min.sub.B.
[0229] The first screening method is to determine whether each of
the three highest values are within a predetermined range of their
median, and whether each of the three lowest values are within a
predetermined range of their median.
[0230] For example, in one embodiment the predetermined amount may
be 1%. Therefore, for the three highest values, the lowest of the
three should be greater than or equal to 0.99*the median value, and
the highest of the three should be less than or equal to 0.99*the
median value. Similarly, for the three lowest values, the highest
value should be less than or equal to 0.99*the median value, and
the lowest value should be greater than or equal to 1.01*the median
value (it will be noted that the three lowest values should be
negative).
[0231] If the above conditions are satisfied, then a second
screening is performed. The second screening evaluates whether the
maximum value and the minimum value are within 10% of the
corresponding moving average filter 1030. This screening assumes
that the moving average filter 1030 is completely filled first. For
example, in at least one embodiment, the moving average filter 1030
includes five samples. The moving average filter 1030 will be
discussed in more detail below. If the maximum and minimum values
satisfy the screening, then the maximum and values are incorporated
into the corresponding moving average filters and the oldest values
are discarded from the tap register.
[0232] It is noted that in at least one embodiment, a data capture
period is approximately 4 msec (250 Hz rate), and is the local
sample rate. Thus, 1000 samples are collected in approximately 4
seconds, and T=4 seconds is the update rate for the moving average
filter.
[0233] Once the pre-filtering 1020 is completed, the moving average
filter 1030 is updated with the newly found minimum and maximum
values. It will be understood that there will be a moving average
filter for the minimum and maximum values of first fine count 1012
and second fine count 1014, shown in FIG. 56 as ave_max.sub.A,
ave_min.sub.A, ave_max.sub.B, and ave_min.sub.B. The moving average
filter 1030 is discussed below.
[0234] For a Causal (M+1 point) Moving Average Value Filter
(MAVF)
y ( n ) := 1 ( M + 1 ) k x ( n - k ) for 0 .ltoreq. k .ltoreq. M
##EQU00002##
[0235] The delay (.tau.) is MT/2 (T is the sample rate) and with
M=4 for a five point filter, .tau.=2T. With T=4 seconds (see above)
then the filter delay is 8 seconds in one embodiment. Temperature
variations are much slower than this.
[0236] It is assumed that the MAF is initialized with maximum and
minimum values obtained during a calibration.
[0237] A slight improvement in computational efficiency can be
achieved if the mean is calculated in a recursive fashion. A
recursive solution is one that depends on a previously calculated
value. To illustrate this, consider the following development:
[0238] Suppose that at any instant k, the average of the latest n
samples of a data sequence, .sup.X.sub.i, is given by:
x _ k = 1 n i = k - n + 1 k x i . ##EQU00003##
Similarly, at the previous time instant, k-1, the average of the
latest n samples is:
x _ k - 1 = 1 n i = k - n k - 1 x i . ##EQU00004##
Therefore,
[0239] x _ k - x _ k - 1 = 1 n [ i = k - n + 1 k x i - i = k - n k
- 1 x i ] = 1 n [ x k - x k - n ] ##EQU00005##
[0240] On rearrangement, this gives:
x _ k = x _ k - 1 + 1 n [ x k - x k - n ] ##EQU00006##
[0241] This is known as a moving average because the average at
each k'th instant is based on the most recent set of n values. In
other words, at any instant, a moving window of n values is used to
calculate the average of the data sequence. For example, in FIG.
58, there are three windows 1100, 1102, and 1103 shown, each
consisting of n values.
[0242] When used as a filter, the value of .sup. X.sub.k is taken
as the filtered value of .sup.X.sub.k. The expression is a
recursive one, because the value of .sup. X.sub.k is calculated
using its previous value, .sup. X.sub.k-1, as reference.
[0243] It can be seen that with the recursive calculation, it is
only necessary to perform one division, one addition and one
subtraction operation. This is always the case, regardless of the
number of data points (n) considered. However, calculating the
current filtered value requires the use of .sup.X.sub.k-n, i.e. the
measurement n time-steps in the past.
[0244] Once the pre-filtering 1020 and the moving average filter
1030 are completed, the target values and correction factors can be
calculated at 1040, and then the data values can be corrected at
1050.
[0245] It is first necessary to define and calculate a number of
values to be used in the value correction (i.e., perform the
calculations at 1040).
[0246] The target gain G.sub.cal is calculated according to the
equation G.sub.cal=(ave_max.sub.A-ave_min.sub.A)/2.
[0247] The target offset OFFSET.sub.cal is calculated according to
the equation OFFSET.sub.Cal=(ave_max.sub.A+ave_min.sub.A)/2.
[0248] The gain of the data sample G.sub.A is calculated according
to the equation G.sub.A=(max.sub.A-min.sub.A)/2.
[0249] The offset of the data sample OFFSET.sub.A is calculated
according to the equation OFFSET.sub.A=(max.sub.A+min.sub.A)/2.
[0250] The gain correction factor GF.sub.A is calculated according
to the equation GF.sub.A=G.sub.cal/G.sub.A.
[0251] The offset correction factor .DELTA.OFF.sub.A is calculated
according to the equation
.DELTA.OFF.sub.A=OFFSET.sub.cal-OFFSET.sub.A.
[0252] Using these calculated values from 1040, the first fine
count 1012 values can be corrected in value correction 1050
according to the equation:
CFC.sub.A=(GF.sub.A*FC.sub.A)+.DELTA.OFF.sub.A,
[0253] where FC.sub.A is the fine count 1012 and CFC.sub.A is the
corrected fine count for fine count 1012. In a possible alternative
embodiment, the offset may be added first before multiplying by the
gain correction factor, i.e.,
CFC.sub.A=GF.sub.A*(FC.sub.A+.DELTA.OFF.sub.A).
[0254] The above equations refer to first fine count 1012, but it
will be readily understand that the same calculations can be
performed for second fine count 1014. Additionally, it will be
understand that the same calculations can be formed for first and
second fine counts on a plurality of read heads.
[0255] Once the corrected fine count is calculated, it is possible
to correct the coarse count. Correction to the coarse count is
necessary because an offset in the fine count can result in errors
in the quantized quadrature signal.
[0256] For example, FIGS. 59-60 illustrate signals 1200, 1202 that
make up a quadrature signal. FIG. 59 shows that if there is a
positive DC offset, then high pulses will be erroneously widened,
and low pulses will be erroneously shortened. In other words, if a
measurement returns a value that is in regions 1204, it will
incorrectly register has a high count instead of a low count.
Accordingly, the coarse count of the read head will show the
incorrect state.
[0257] FIG. 60 shows the opposite, i.e., if there is a negative DC
offset, high pulses are erroneously narrowed, and low pulses are
erroneously widened. In other words if a measurement returns a
value that is in regions 1206, it will incorrectly register as a
low count instead of a high count. Accordingly, the coarse count of
the read head will show the incorrect state.
[0258] To correct this error in the coarse count, it is first
necessary to define a quantization operator Q(x) such that: [0259]
Q(x)=0 for x<0; and [0260] Q(x)=1for x.gtoreq.1.
[0261] The compensated fine counts CFC.sub.A calculated above
should be symmetrical about .DELTA.OFF.sub.A, and compensated fine
counts CFC.sub.B should be symmetrical about .DELTA.OFF.sub.B.
Thus, the following equations are true:
Q(CFC.sub.A-.DELTA.OFF.sub.A)=0 for CFC.sub.A<.DELTA.OFF.sub.A
and
Q(CFC.sub.A-.DELTA.OFF.sub.A)=1 for
CFC.sub.A.gtoreq..DELTA.OFF.sub.A.
[0262] A corrected state pair {A', B'} (i.e., a Gray Code value)
can be calculated from the corrected fine counts as follows:
{A', B'}={Q(CFC.sub.A-.DELTA.OFF.sub.A);
Q(CFC.sub.B-.DELTA.OFF.sub.B)}.
[0263] The corrected state pair can be compared to the
uncompensated state pair {A, B} indicated by the coarse count, and
referencing state--(1, 1) (logically (H,H)). The coarse count can
be adjusted by--1, 0, 1 according to the results of this
comparison. The corrected coarse and fine counts can be
re-assembled and passed to an angle computation module.
[0264] Thus, the gain and offset can be dynamically adjusted,
allowing the use of multi-mode VSCEL lasers and simpler grating
patterns. Additionally, with this structure and dynamic adjustment
method, it is not necessary to spatially filter to eliminate higher
order diffraction orders (beyond .+-.1), which is required in
conventional devices. Instead, the dynamically adjusted parameters
account for DC offsets over temperature variations. This is a
significant benefit over conventional devices because it results in
simpler manufacturing and reduced manufacturing costs.
[0265] While the discussion above relates to angular encoders, it
is also noted that similar concepts can also be readily applied to
linear encoders as well. For example, instead of an encoder disk,
an encoder scale with a diffraction grating can be used, and
complementary index tracks (i.e., one with a reflective index mark
and one with a non-reflective index mark) can be provided on the
encoder scale, being provided either on one side of the diffraction
grating, or on either side of the diffraction grating to sandwich
the diffraction grating. The index marks can be positioned at a
linear index coordinate as opposed to an angular index
coordinate.
[0266] While the description above refers to particular embodiments
of the present invention, it will be understood that many
modifications may be made without departing from the spirit
thereof. The accompanying claims are intended to cover such
modifications as would fall within the true scope and spirit of the
present invention.
[0267] The presently disclosed embodiments are therefore to be
considered in all respects as illustrative and not restrictive, the
scope of the invention being indicated by the appended claims,
rather than the foregoing description, and all changes which come
within the meaning and range of equivalency of the claims are
therefore intended to be embraced therein.
* * * * *