U.S. patent application number 13/006458 was filed with the patent office on 2011-07-21 for use of inclinometers to improve relocation of a portable articulated arm coordinate measuring machine.
This patent application is currently assigned to FARO TECHNOLOGIES, INC.. Invention is credited to Robert E. Bridges, David H. Parker.
Application Number | 20110178763 13/006458 |
Document ID | / |
Family ID | 43736091 |
Filed Date | 2011-07-21 |
United States Patent
Application |
20110178763 |
Kind Code |
A1 |
Bridges; Robert E. ; et
al. |
July 21, 2011 |
USE OF INCLINOMETERS TO IMPROVE RELOCATION OF A PORTABLE
ARTICULATED ARM COORDINATE MEASURING MACHINE
Abstract
A method of relocating a portable articulated arm coordinate
measuring machine (AACMM) from a first location to a second
location, wherein the AACMM has, at the first location, a first
origin point and a first frame of reference and, at the second
location, a second origin point and a second frame of reference,
the method including the steps of: measuring an amount of tilt of
the portable AACMM along two perpendicular directions, each of
which are approximately perpendicular to a gravity vector, with the
portable AACMM in each of the first and second locations; measuring
a first target and a second target with the portable AACMM in the
first location to obtain, in the first frame of reference, a first
set of x, y, and z coordinates and a second set of x, y, and z
coordinates; measuring the first target and the second target with
the portable AACMM in the second location to obtain, in the second
frame of reference, a third set of x, y, and z coordinates and a
fourth set of x, y, and z coordinates; and finding x, y, and z
coordinates of the second origin point with respect to the first
frame of reference, wherein the x, y, and z coordinates of the
second origin point are found using the first, second, third, and
fourth sets of x, y, and z coordinates but without using additional
x, y, and z coordinates of a third target measured with the AACMM
at the first location and at the second location.
Inventors: |
Bridges; Robert E.; (Kennett
Square, PA) ; Parker; David H.; (Earlysville,
VA) |
Assignee: |
FARO TECHNOLOGIES, INC.
Lake Mary
FL
|
Family ID: |
43736091 |
Appl. No.: |
13/006458 |
Filed: |
January 14, 2011 |
Related U.S. Patent Documents
|
|
|
|
|
|
Application
Number |
Filing Date |
Patent Number |
|
|
61296555 |
Jan 20, 2010 |
|
|
|
Current U.S.
Class: |
702/152 ;
33/503 |
Current CPC
Class: |
G01B 11/007 20130101;
G05B 2219/40596 20130101; G05B 2219/37193 20130101; G05B 2219/24067
20130101; G01B 21/047 20130101; G05B 19/401 20130101; G05B 19/406
20130101; G01B 5/012 20130101; G05B 2219/45061 20130101; G05B
2219/40233 20130101 |
Class at
Publication: |
702/152 ;
33/503 |
International
Class: |
G01B 5/008 20060101
G01B005/008; G06F 15/00 20060101 G06F015/00 |
Claims
1. A method of relocating a portable articulated arm coordinate
measuring machine (AACMM) from a first location to a second
location, wherein the AACMM has, at the first location, a first
origin point and a first frame of reference and, at the second
location, a second origin point and a second frame of reference,
the method comprising the steps of: measuring, with the portable
AACMM in the first location, an amount of tilt of the portable
AACMM along a first set of two perpendicular directions, each
direction approximately perpendicular to a gravity vector;
measuring, with the portable AACMM in the second location, an
amount of tilt of the portable AACMM along a second set of two
perpendicular directions, each direction approximately
perpendicular to the gravity vector; measuring a first target and a
second target with the portable AACMM in the first location to
obtain, in the first frame of reference, a first set of x, y, and z
coordinates and a second set of x, y, and z coordinates; measuring
the first target and the second target with the portable AACMM in
the second location to obtain, in the second frame of reference, a
third set of x, y, and z coordinates and a fourth set of x, y, and
z coordinates; and finding x, y and z coordinates of the second
origin point with respect to the first frame of reference, wherein
the x, y, and z coordinates of the second origin point are found
using the first, second, third, and fourth sets of x, y, and z
coordinates but without using additional x, y, and z coordinates of
a third target measured with the AACMM at the first location and at
the second location.
2. The method of claim 1, further comprising the step of:
identifying a first gravity frame of reference of the AACMM in the
first location as that frame of reference resulting from
application of the measured amount of tilt along the first set of
two perpendicular directions to rotate x, y, and z axes of the
first frame of reference into transformed x, y, and z axes of the
first gravity frame of reference in such a way that the transformed
z axis of the first gravity frame of reference is aligned with the
gravity vector.
3. The method of claim 2, further comprising the step of:
identifying a second gravity frame of reference of the AACMM in the
second location as that frame of reference resulting from
application of the measured amount of tilt along the second set of
two perpendicular directions to rotate x, y, and z axes of the
second frame of reference into transformed x, y, and z axes of the
second gravity frame of reference in such a way that the
transformed z axis of the second gravity frame of reference is
aligned with the gravity vector.
4. The method of claim 3, further comprising the step of:
determining a yaw angle of the portable AACMM in the second
location, wherein the determined yaw angle comprises an amount of
rotation about the transformed z axis of the second gravity frame
of reference to make the transformed x and y axes of the second
gravity frame of reference parallel to the transformed x and y axes
of the first gravity frame of reference.
5. The method of claim 3, further comprising the steps of:
converting the first set of x, y, and z coordinates into a first
set of transformed x, y, and z coordinates in the first gravity
frame of reference; converting the second set of x, y, and z
coordinates into a second set of transformed x, y, and z
coordinates in the first gravity frame of reference; converting the
third set of x, y, and z coordinates into a third set of
transformed x, y, and z coordinates in the second gravity frame of
reference; and converting the fourth set of x, y, and z coordinates
into a fourth set of transformed x, y, and z coordinates in the
second gravity frame of reference.
6. The method of claim 5, further comprising the step of:
calculating the z coordinate of the second origin point in the
first frame of reference using the transformed z coordinates from
the first set of transformed x, y, and z coordinates and the third
set of transformed x, y, and z coordinates.
7. The method of claim 6, further comprising the step of:
calculating the z coordinate of the second origin point in the
first frame of reference using the transformed z coordinates from
the second set of transformed x, y, and z coordinates and the
fourth set of transformed x, y, and z coordinates.
8. The method of claim 7, further comprising the step of:
calculating the z coordinate of the second origin point in the
first frame of reference by taking an average of the z coordinate
calculated in claim 6 and the z coordinate calculated in claim
7.
9. The method of claim 5, further comprising the step of: finding
the x and y coordinates of the second origin point in the first
frame of reference by solving two equations simultaneously, wherein
the first equation includes transformed x and y coordinates from
the first and third sets of transformed x, y, and z coordinates and
the second equation includes transformed x and y coordinates from
the second and fourth sets of transformed x, y, and z
coordinates.
10. The method of claim 4, further comprising the step of:
transforming coordinate data collected by the AACMM in the first
location and the second location into a common global frame of
reference.
11. A computer program product comprising a storage medium having
computer-readable program code embodied thereon, which when
executed by a computer causes the computer to implement a method of
relocating a portable articulated arm coordinate measuring machine
(AACMM) from a first location to a second location, wherein the
AACMM has, at the first location, a first origin point and a first
frame of reference and, at the second location, a second origin
point and a second frame of reference, the method including the
steps of: measuring, with the portable AACMM in the first location,
an amount of tilt of the portable AACMM along a first set of two
perpendicular directions, each direction approximately
perpendicular to a gravity vector; measuring, with the portable
AACMM in the second location, an amount of tilt of the portable
AACMM along a second set of two perpendicular directions, each
direction approximately perpendicular to the gravity vector;
identifying a first gravity frame of reference of the AACMM in the
first location as that frame of reference resulting from
application of the measured amount of tilt along the first set of
two perpendicular directions to rotate x, y, and z axes of the
first frame of reference into transformed x, y, and z axes of the
first gravity frame of reference in such a way that the transformed
z axis of the first gravity frame of reference is aligned with the
gravity vector; identifying a second gravity frame of reference of
the AACMM in the second location as that frame of reference
resulting from application of the measured amount of tilt along the
second set of two perpendicular directions to rotate x, y, and z
axes of the second frame of reference into transformed x, y, and z
axes of the second gravity frame of reference in such a way that
the transformed z axis of the second gravity frame of reference is
aligned with the gravity vector; measuring a first target and a
second target with the portable AACMM in the first location to
obtain, in the first frame of reference, a first set of x, y, and z
coordinates and a second set of x, y, and z coordinates; measuring
the first target and the second target with the portable AACMM in
the second location to obtain, in the second frame of reference, a
third set of x, y, and z coordinates and a fourth set of x, y, and
z coordinates; finding x, y and z coordinates of the second origin
point with respect to the first frame of reference, wherein the x,
y, and z coordinates of the second origin point are found using the
first, second, third, and fourth sets of x, y, and z coordinates
but without using additional x, y, and z coordinates of a third
target measured with the AACMM at the first location and at the
second location; and determining a yaw angle of the portable AACMM
in the second location, wherein the determined yaw angle comprises
an amount of rotation about the transformed z axis of the second
gravity frame of reference to make the transformed x and y axes of
the second gravity frame of reference parallel to the transformed x
and y axes of the first gravity frame of reference.
12. The computer program product of claim 11, in which the method
further comprises the step of: calculating the z coordinate of the
second origin point in the first frame of reference using the
transformed z coordinates from the first set of transformed x, y,
and z coordinates and the third set of transformed x, y, and z
coordinates.
13. The computer program product of claim 12, in which the method
further comprises the step of: calculating the z coordinate of the
second origin point in the first frame of reference using the
transformed z coordinates from the second set of transformed x, y,
and z coordinates and the fourth set of transformed x, y, and z
coordinates.
14. The computer program product of claim 13, in which the method
further comprises the step of: calculating the z coordinate of the
second origin point in the first frame of reference by taking an
average of the z coordinate calculated in claim 12 and the z
coordinate calculated in claim 13.
15. The computer program product of claim 11, in which the method
further comprises the step of: finding the x and y coordinates of
the second origin point in the first frame of reference by solving
two equations simultaneously, wherein the first equation includes
transformed x and y coordinates from the first and third sets of
transformed x, y, and z coordinates and the second equation
includes transformed x and y coordinates from the second and fourth
sets of transformed x, y, and z coordinates.
16. The computer program product of claim 11, in which the method
further comprises the step of: transforming coordinate data
collected by the AACMM in the first location and the second
location into a common global frame of reference.
Description
CROSS-REFERENCE TO RELATED APPLICATIONS
[0001] The present application claims the benefit of provisional
application No. 61/296,555 filed Jan. 20, 2010, the content of
which is hereby incorporated by reference in its entirety.
BACKGROUND
[0002] The present disclosure relates to coordinate measuring
machines, and more particularly to a portable articulated arm
coordinate measuring machine having one or more inclinometers
located on or within the portable articulated arm coordinate
measuring machine and which may be used to improve the accuracy of
a relocation of the portable articulated arm coordinate measuring
machine between different locations.
[0003] Portable articulated arm coordinate measuring machines
(AACMMs) have found widespread use in the manufacturing or
production of parts where there is a need to rapidly and accurately
verify the dimensions of the part during various stages of the
manufacturing or production (e.g., machining) of the part. Portable
AACMMs represent a vast improvement over known stationary or fixed,
cost-intensive and relatively difficult to use measurement
installations, particularly in the amount of time it takes to
perform dimensional measurements of relatively complex parts.
Typically, a user of a portable AACMM simply guides a probe along
the surface of the part or object to be measured. The measurement
data are then recorded and provided to the user. In some cases, the
data are provided to the user in visual form, for example,
three-dimensional (3-D) form on a computer screen. In other cases,
the data are provided to the user in numeric form, for example when
measuring the diameter of a hole, the text "Diameter=1.0034" is
displayed on a computer screen.
[0004] An example of a prior art portable articulated arm CMM is
disclosed in commonly assigned U.S. Pat. No. 5,402,582 ('582),
which is incorporated herein by reference in its entirety. The '582
patent discloses a 3-D measuring system comprised of a
manually-operated articulated arm CMM having a support base on one
end and a measurement probe at the other end. Commonly assigned
U.S. Pat. No. 5,611,147 ('147), which is incorporated herein by
reference in its entirety, discloses a similar articulated arm CMM.
In the '147 patent, the articulated arm CMM includes a number of
features including an additional rotational axis at the probe end,
thereby providing for an arm with either a two-two-two or a
two-two-three axis configuration (the latter case being a seven
axis arm).
[0005] What is needed is a portable AACMM that includes one or more
inclinometers located on or within the portable AACMM and which may
be used to improve the accuracy of a relocation of the portable
AACMM, and/or may be used to reduce the number of targets (e.g.,
nests, seats, or fixtures) required for the portable AACMM to
complete a relocation of itself when measurement of a relatively
large part by the portable AACMM requires that the portable AACMM
to be physically moved between different locations to complete the
measurement.
SUMMARY OF THE INVENTION
[0006] A method of relocating a portable articulated arm coordinate
measuring machine (AACMM) from a first location to a second
location, wherein the AACMM has, at the first location, a first
origin point and a first frame of reference and, at the second
location, a second origin point and a second frame of reference,
the method including the steps of: measuring an amount of tilt of
the portable AACMM along two perpendicular directions, each of
which are approximately perpendicular to a gravity vector, with the
portable AACMM in each of the first and second locations; measuring
a first target and a second target with the portable AACMM in the
first location to obtain, in the first frame of reference, a first
set of x, y, and z coordinates and a second set of x, y, and z
coordinates; measuring the first target and the second target with
the portable AACMM in the second location to obtain, in the second
frame of reference, a third set of x, y, and z coordinates and a
fourth set of x, y, and z coordinates; and finding x, y, and z
coordinates of the second origin point with respect to the first
frame of reference, wherein the x, y, and z coordinates of the
second origin point are found using the first, second, third, and
fourth sets of x, y, and z coordinates but without using additional
x, y, and z coordinates of a third target measured with the AACMM
at the first location and at the second location.
BRIEF DESCRIPTION OF THE DRAWINGS
[0007] Referring now to the drawings, exemplary embodiments are
shown which should not be construed to be limiting regarding the
entire scope of the disclosure, and wherein the elements are
numbered alike in several FIGURES:
[0008] FIG. 1, including FIGS. 1A and 1B, are perspective views of
a portable articulated arm coordinate measuring machine (AACMM)
having embodiments of various aspects of the present invention
therewithin;
[0009] FIG. 2, including FIGS. 2A-2D taken together, is a block
diagram of electronics utilized as part of the AACMM of FIG. 1 in
accordance with an embodiment;
[0010] FIG. 3, including FIGS. 3A and 3B taken together, is a block
diagram describing detailed features of the electronic data
processing system of FIG. 2 in accordance with an embodiment;
[0011] FIG. 4 illustrates the portable AACMM of FIG. 1 in a first
or initial location during performance of a method of relocation of
the portable AACMM using two targets according to embodiments of
the present invention;
[0012] FIG. 5 illustrates the portable AACMM of FIG. 1 in a second
location during performance of the method of relocation using two
targets according to embodiments of the present invention;
[0013] FIG. 6 is a front view of the mathematical coordinates of
the portable AACMM of FIG. 1 in the first or initial location of
FIG. 4 during performance of the method of relocation using two
targets according to embodiments of the present invention;
[0014] FIG. 7 is a front view of the mathematical coordinates of
the portable AACMM of FIG. 1 in the second location of FIG. 5
during performance of the method of relocation using two targets
according to embodiments of the present invention;
[0015] FIG. 8 is a top view of the mathematical coordinates of the
portable AACMM of FIG. 1 in the first or initial location of FIG. 4
during performance of the method of relocation using two targets
according to embodiments of the present invention;
[0016] FIG. 9 is a top view of the mathematical coordinates of the
portable AACMM of FIG. 1 in the second location of FIG. 5 during
performance of the method of relocation using two targets according
to embodiments of the present invention; and
[0017] FIG. 10 is a flow chart of steps within a method for
performing a relocation of a portable AACMM between at least two
different physical locations while the portable AACMM is measuring
a relatively large part.
DETAILED DESCRIPTION
[0018] Embodiments of the present invention include one or more
inclinometers located on or within a portable AACMM and which may
be used to improve the accuracy of a relocation of the portable
AACMM, and/or may be used to reduce the number of targets (e.g.,
nests, seats, or fixtures) required for the portable AACMM to
complete a relocation of the portable AACMM when measurement of a
relatively large part by the portable AACMM requires that the
portable AACMM to be physically moved between different locations
to complete the measurement.
[0019] FIGS. 1A and 1B illustrate, in perspective, a portable
articulated arm coordinate measuring machine (AACMM) 100 according
to various embodiments of the present invention, an articulated arm
being one type of coordinate measuring machine. As shown in FIGS.
1A and 1B, the exemplary AACMM 100 may comprise a six or seven axis
articulated measurement device having a measurement probe housing
102 coupled to an arm portion 104 of the AACMM 100 at one end. The
arm portion 104 comprises a first arm segment 106 coupled to a
second arm segment 108 by a first grouping of bearing cartridges
110 (e.g., two bearing cartridges). A second grouping of bearing
cartridges 112 (e.g., two bearing cartridges) couples the second
arm segment 108 to the measurement probe housing 102. A third
grouping of bearing cartridges 114 (e.g., three bearing cartridges)
couples the first arm segment 106 to a base 116 located at the
other end of the arm portion 104 of the AACMM 100. Each grouping of
bearing cartridges 110, 112, 114 provides for multiple axes of
articulated movement. Also, the measurement probe housing 102 may
comprise the shaft of the seventh axis portion of the AACMM 100
(e.g., a cartridge containing an encoder system that determines
movement of the measurement device, for example a probe 118, in the
seventh axis of the AACMM 100). In use of the AACMM 100, the base
116 is typically affixed to a work surface.
[0020] Each bearing cartridge within each bearing cartridge
grouping 110, 112, 114 typically contains an encoder system (e.g.,
an optical angular encoder system). The encoder system (i.e.,
transducer) provides an indication of the position of the
respective arm segments 106, 108 and corresponding bearing
cartridge groupings 110, 112, 114 that all together provide an
indication of the position of the probe 118 with respect to the
base 116 (and, thus, the position of the object being measured by
the AACMM 100 in a certain frame of reference--for example a local
or global frame of reference). The arm segments 106, 108 may be
made from a suitably rigid material such as but not limited to a
carbon composite material for example. A portable AACMM 100 with
six or seven axes of articulated movement (i.e., degrees of
freedom) provides advantages in allowing the operator to position
the probe 118 in a desired location within a 360.degree. area about
the base 116 while providing an arm portion 104 that may be easily
handled by the operator. However, it should be appreciated that the
illustration of an arm portion 104 having two arm segments 106, 108
is for exemplary purposes, and the claimed invention should not be
so limited. An AACMM 100 may have any number of arm segments
coupled together by bearing cartridges (and, thus, more or less
than six or seven axes of articulated movement or degrees of
freedom).
[0021] The probe 118 is detachably mounted to the measurement probe
housing 102, which is connected to bearing cartridge grouping 112.
A handle 126 is removable with respect to the measurement probe
housing 102 by way of, for example, a quick-connect interface. The
handle 126 may be replaced with another device (e.g., a laser line
probe, a bar code reader), thereby providing advantages in allowing
the operator to use different measurement devices with the same
AACMM 100. In exemplary embodiments, the probe housing 102 houses a
removable probe 118, which is a contacting measurement device and
may have different tips 118 that physically contact the object to
be measured, including, but not limited to: ball, touch-sensitive,
curved and extension type probes. In other embodiments, the
measurement is performed, for example, by a non-contacting device
such as a laser line probe (LLP). In an embodiment, the handle 126
is replaced with the LLP using the quick-connect interface. Other
types of measurement devices may replace the removable handle 126
to provide additional functionality. Examples of such measurement
devices include, but are not limited to, one or more illumination
lights, a temperature sensor, a thermal scanner, a bar code
scanner, a projector, a paint sprayer, a camera, or the like, for
example.
[0022] As shown in FIGS. 1A and 1B, the AACMM 100 includes the
removable handle 126 that provides advantages in allowing
accessories or functionality to be changed without removing the
measurement probe housing 102 from the bearing cartridge grouping
112. As discussed in more detail below with respect to FIG. 2, the
removable handle 126 may also include an electrical connector that
allows electrical power and data to be exchanged with the handle
126 and the corresponding electronics located in the probe end.
[0023] In various embodiments, each grouping of bearing cartridges
110, 112, 114 allows the arm portion 104 of the AACMM 100 to move
about multiple axes of rotation. As mentioned, each bearing
cartridge grouping 110, 112, 114 includes corresponding encoder
systems, such as optical angular encoders for example, that are
each arranged coaxially with the corresponding axis of rotation of,
e.g., the arm segments 106, 108. The optical encoder system detects
rotational (swivel) or transverse (hinge) movement of, e.g., each
one of the arm segments 106, 108 about the corresponding axis and
transmits a signal to an electronic data processing system within
the AACMM 100 as described in more detail herein below. Each
individual raw encoder count is sent separately to the electronic
data processing system as a signal where it is further processed
into measurement data. No position calculator separate from the
AACMM 100 itself (e.g., a serial box) is required, as disclosed in
commonly assigned U.S. Pat. No. 5,402,582 ('582).
[0024] The base 116 may include an attachment device or mounting
device 120. The mounting device 120 allows the AACMM 100 to be
removably mounted to a desired location, such as an inspection
table, a machining center, a wall or the floor for example. In one
embodiment, the base 116 includes a handle portion 122 that
provides a convenient location for the operator to hold the base
116 as the AACMM 100 is being moved. In one embodiment, the base
116 further includes a movable cover portion 124 that folds down to
reveal a user interface, such as a display screen.
[0025] In accordance with an embodiment, the base 116 of the
portable AACMM 100 contains or houses an electronic data processing
system that includes two primary components: a base processing
system that processes the data from the various encoder systems
within the AACMM 100 as well as data representing other arm
parameters to support three-dimensional (3-D) positional
calculations; and a user interface processing system that includes
an on-board operating system, a touch screen display, and resident
application software that allows for relatively complete metrology
functions to be implemented within the AACMM 100 without the need
for connection to an external computer.
[0026] The electronic data processing system in the base 116 may
communicate with the encoder systems, sensors, and other peripheral
hardware located away from the base 116 (e.g., a LLP that can be
mounted to the removable handle 126 on the AACMM 100). The
electronics that support these peripheral hardware devices or
features may be located in each of the bearing cartridge groupings
110, 112, 114 located within the portable AACMM 100.
[0027] FIG. 2 is a block diagram of electronics utilized in an
AACMM 100 in accordance with an embodiment. The embodiment shown in
FIG. 2 includes an electronic data processing system 210 including
a base processor board 204 for implementing the base processing
system, a user interface board 202, a base power board 206 for
providing power, a Bluetooth module 232, and a base tilt board 208.
The user interface board 202 includes a computer processor for
executing application software to perform user interface, display,
and other functions described herein.
[0028] As shown in FIG. 2, the electronic data processing system
210 is in communication with the aforementioned plurality of
encoder systems via one or more arm buses 218. In the embodiment
depicted in FIG. 2, each encoder system generates encoder data and
includes: an encoder arm bus interface 214, an encoder digital
signal processor (DSP) 216, an encoder read head interface 234, and
a temperature sensor 212. Other devices, such as strain sensors,
may be attached to the arm bus 218.
[0029] Also shown in FIG. 2 are probe end electronics 230 that are
in communication with the arm bus 218. The probe end electronics
230 include a probe end DSP 228, a temperature sensor 212, a
handle/LLP interface bus 240 that connects with the handle 126 or
the LLP 242 via the quick-connect interface in an embodiment, and a
probe interface 226. The quick-connect interface allows access by
the handle 126 to the data bus, control lines, and power bus used
by the LLP 242 and other accessories. In an embodiment, the probe
end electronics 230 are located in the measurement probe housing
102 on the AACMM 100. In an embodiment, the handle 126 may be
removed from the quick-connect interface and measurement may be
performed by the laser line probe (LLP) 242 communicating with the
probe end electronics 230 of the AACMM 100 via the handle/LLP
interface bus 240. In an embodiment, the electronic data processing
system 210 is located in the base 116 of the AACMM 100, the probe
end electronics 230 are located in the measurement probe housing
102 of the AACMM 100, and the encoder systems are located in the
bearing cartridge groupings 110, 112, 114. The probe interface 226
may connect with the probe end DSP 228 by any suitable
communications protocol, including commercially-available products
from Maxim Integrated Products, Inc. that embody the 1-Wire.RTM.
communications protocol 236.
[0030] FIG. 3 is a block diagram describing detailed features of
the electronic data processing system 210 of the AACMM 100 in
accordance with an embodiment. In an embodiment, the electronic
data processing system 210 is located in the base 116 of the AACMM
100 and includes the base processor board 204, the user interface
board 202, a base power board 206, a Bluetooth module 232, and a
base tilt module 208.
[0031] In an embodiment shown in FIG. 3, the base processor board
204 includes the various functional blocks illustrated therein. For
example, a base processor function 302 is utilized to support the
collection of measurement data from the AACMM 100 and receives raw
arm data (e.g., encoder system data) via the arm bus 218 and a bus
control module function 308. The memory function 304 stores
programs and static arm configuration data. The base processor
board 204 also includes an external hardware option port function
310 for communicating with any external hardware devices or
accessories such as an LLP 242. A real time clock (RTC) and log
306, a battery pack interface (IF) 316, and a diagnostic port 318
are also included in the functionality in an embodiment of the base
processor board 204 depicted in FIG. 3.
[0032] The base processor board 204 also manages all the wired and
wireless data communication with external (host computer) and
internal (display processor 202) devices. The base processor board
204 has the capability of communicating with an Ethernet network
via an Ethernet function 320 (e.g., using a clock synchronization
standard such as Institute of Electrical and Electronics Engineers
(IEEE) 1588), with a wireless local area network (WLAN) via a LAN
function 322, and with Bluetooth module 232 via a parallel to
serial communications (PSC) function 314. The base processor board
204 also includes a connection to a universal serial bus (USB)
device 312.
[0033] The base processor board 204 transmits and collects raw
measurement data (e.g., encoder system counts, temperature
readings) for processing into measurement data without the need for
any preprocessing, such as disclosed in the serial box of the
aforementioned '582 patent. The base processor 204 sends the
processed data to the display processor 328 on the user interface
board 202 via an RS485 interface (IF) 326. In an embodiment, the
base processor 204 also sends the raw measurement data to an
external computer.
[0034] Turning now to the user interface board 202 in FIG. 3, the
angle and positional data received by the base processor is
utilized by applications executing on the display processor 328 to
provide an autonomous metrology system within the AACMM 100.
Applications may be executed on the display processor 328 to
support functions such as, but not limited to: measurement of
features, guidance and training graphics, remote diagnostics,
temperature corrections, control of various operational features,
connection to various networks, and display of measured objects.
Along with the display processor 328 and a liquid crystal display
(LCD) 338 (e.g., a touch screen LCD) user interface, the user
interface board 202 includes several interface options including a
secure digital (SD) card interface 330, a memory 332, a USB Host
interface 334, a diagnostic port 336, a camera port 340, an
audio/video interface 342, a dial-up/cell modem 344 and a global
positioning system (GPS) port 346.
[0035] The electronic data processing system 210 shown in FIG. 3
also includes a base power board 206 with an environmental recorder
362 for recording environmental data. The base power board 206 also
provides power to the electronic data processing system 210 using
an AC/DC converter 358 and a battery charger control 360. The base
power board 206 communicates with the base processor board 204
using inter-integrated circuit (I2C) serial single ended bus 354 as
well as via a DMA serial peripheral interface (DSPI) 356. The base
power board 206 is connected to a tilt sensor and radio frequency
identification (RFID) module 208 via an input/output (I/O)
expansion function 364 implemented in the base power board 206.
[0036] Though shown as separate components, in other embodiments
all or a subset of the components may be physically located in
different locations and/or functions combined in different manners
than that shown in FIG. 3. For example, in one embodiment, the base
processor board 204 and the user interface board 202 are combined
into one physical board.
[0037] Referring to FIGS. 4-10, embodiments of the present
invention include the incorporation of one or more inclinometers
within the portable AACMM 100 of FIGS. 1A and 1B to more accurately
physically relocate the portable AACMM 100, for example during a
measurement of a relatively large part or object (e.g., an
automobile) that requires the portable AACMM 100 to be moved
between different locations to adequately complete the part
measurement. The portable AACMM 100 of FIGS. 1A and 1B is shown in
simplified form in FIGS. 4-5. The inclinometers may be used to
improve the accuracy of relocation of the portable AACMM 100,
and/or may be used to reduce the number of targets (e.g., nests,
seats, or fixtures) required for the portable AACMM 100 to complete
a relocation of itself when measurement of a relatively large part
requires that the portable AACMM 100 be physically moved between
two or more different locations with respect to the part being
measured by the portable AACMM 100.
[0038] In exemplary embodiments, an inclinometer, which may have at
least one measuring axis, but having two measuring axes in
exemplary embodiments, may be placed within or on the portable
AACMM 100. The inclinometer may be placed anywhere in or on the
portable AACMM 100, but may be placed within the bearing cartridge
grouping 114 located above the base 116. Another alternative
embodiment is to place the inclinometer within the base 116 of the
portable AACMM 100. Thus, in these exemplary embodiments, the
inclinometer is not visible in FIG. 4 or 5. The inclinometer may be
used to improve the accuracy of a relocation of the portable AACMM
and/or to reduce the number of targets required for the portable
AACMM 100 to complete a relocation of itself.
[0039] Relocation is typically defined to be a procedure in which
the portable AACMM 100 is moved from an initial or first physical
location with respect to the part being measured to one or more
subsequent different physical locations with respect to the part
being measured while retaining the same global frame of reference
during the measurement process. By performing a relocation, a
portable AACMM 100 may access a greater portion (preferably all or
the entirety) of a relatively large object (e.g., an automobile)
for measurement purposes. Without performing a relocation, the
portable AACMM 100 being held in only one physical location may not
be able to access, and thus measure, the entire part or object, as
the total distance between the measurement probe 118 and the base
116 of the portable AACMM 100 with the arm segments 106, 108 fully
extended may typically be only several feet, as is common with
modern portable AACMMs 100, which may not be adequate to measure
the entire part. In addition, using previous relocation methods, a
minimum of three targets was required to perform relocation. Using
a two-axis inclinometer with the method described herein according
to embodiments of the present invention, a relocation of the
portable AACMM 100 may be obtained using just two targets.
[0040] A common method of relocation of a portable AACMM 100 is
usually referred to as the "leapfrog" method. With this method,
three or more targets are placed on a stationary object. A portable
AACMM 100 located in a first or initial location is used to measure
the coordinates of these three or more targets. The portable AACMM
100 is then moved to a second location, where it is again used to
measure the coordinates of the three or more targets. Mathematical
methods are used to adjust the frame of reference of the portable
AACMM 100 in the second position 430 to that of the portable AACMM
100 in the first location or to some other global frame of
reference.
[0041] A related method of portable AACMM relocation uses targets
permanently attached to a grid in the vicinity in which the
portable AACMM 100 is used. However, floors typically suffer from
thermal expansion and other defects. Another related method has the
portable AACMM 100 measure the vertices of a small pyramid, which
may be made of a relatively low coefficient of thermal expansion
(CTE) material. Such artifacts have the undesirable characteristics
of being small and expensive. All of the above methods have the
disadvantage of increasing error each time a leapfrog operation is
performed. Due to the fact that six degrees of freedom (three
translational and three orientational degrees of freedom) must be
obtained each time relocation is performed (i.e., for a six axis
portable AACMM 100), the resulting errors in the global frame of
reference often are about as large as the errors in the portable
AACMM 100 itself. With each succeeding leapfrog operation, errors
in the global frame of reference increase. Another disadvantage of
the above mentioned methods is that they tend to be time-consuming.
Usually many targets must be measured to obtain the information
needed for a single relocation.
[0042] In embodiments of the present invention, benefits include
improved accuracy and reduced measurement time. In exemplary
embodiments, a two-axis inclinometer may be used. In this case,
both axes of the inclinometer lie in a plane that is approximately
parallel to the floor or other surface (e.g., table top) upon or to
which the portable AACMM 100 is mounted. The inclinometer may be
placed within the bearing cartridge grouping 114 located above the
base 116 of the portable AACMM 100. By then rotating this axis, the
readings of the inclinometer can be taken as a function of the
rotation angle. By using this information, it is possible to
compensate for systematic errors in the inclinometer sensor. After
performing this compensation, it is usually possible to limit
errors in the inclinometer readings to less than one arc second,
even with some relatively inexpensive inclinometers.
[0043] By using a two-axis inclinometer, two of the six degrees of
freedom can be eliminated from the relocation calculations. There
are many known mathematical methods that can be used to perform
relocation. The most common method fits the collected data to
equations that relate the measured coordinates. This type of
calculation is known as an optimization or best-fit calculation,
and for a specific case in which the portable AACMM 100 is moved to
two or more different locations, is often called a "bundle
adjustment."
[0044] In accordance with embodiments of the present invention, a
relatively simple mathematical method demonstrates the performance
of a relocation of a portable AACMM 100 using two targets, rather
than the usual three (or more) targets as described herein above,
for the case in which the portable AACMM 100 is equipped with a
dual axis inclinometer. FIG. 4 shows a portable AACMM 100 in its
initial physical location, referred to herein as "first position"
400. The portable AACMM 100 is measuring a target referred to
herein as "Nest A" 410, and will also measure another target
referred to herein as "Nest B" 420 before the portable AACMM 100 is
moved to "second position" 430, as shown in FIG. 5. It should be
understood that as used herein "first position" and "second
position" refer to different physical locations of the entirety of
the portable AACMM 100, or that portion of the portable AACMM 100
that out carries the normal part measurement process (for example
the arm itself is relocated to different physical locations but a
laptop computer remains in the same location throughout). That is,
"first position" and "second position" do not refer to the portable
AACMM 100 being held in a single physical location while one or
more portions of the portable AACMM 100 (e.g., the arm portion 104,
the probe 118, etc.) are moved by the user to different
positions.
[0045] The targets 410, 420 may each comprise a relatively rigid
device, such as a nest, seat or fixture. The probe tip 118 of the
portable AACMM 100 may be placed in a relative secure manner within
each nest, seat or fixture (Nest A 410, Nest B 420) during the
execution of the method of embodiments of the present invention.
The AACMM 100 measures the position of the probe 118 with respect
to the origin of the AACMM 100 (which might be located in the base
116, for example) when the AACMM 100 is in first position 400 and
the probe 118 is first seated in Nest A 410 and is then seated in
Nest B 420.
[0046] After the portable AACMM 100 is moved to second position
430, as shown in FIG. 5, the portable AACMM 100 will measure the
positions of the probe 118 in Nest A 410 and then in Nest B 420.
The portable AACMM 100 will use the coordinates of these two
measured nests 410, 420, as measured from the AACMM 100 located in
first and second positions, together with the information from the
dual-axis inclinometer, to place the AACMM measurements made at
second position 430 within the global frame of reference, which in
this case is the frame of reference of the portable AACMM 100 at
first position 400.
[0047] A method for obtaining this result according to embodiments
of this aspect of the present invention is described with reference
to FIGS. 6-9. The objective of the calculation is to obtain four
quantities: the coordinates of the origin point of the portable
AACMM 100 at second position 430 relative to first position 400
[coordinates X, Y, and Z] and the yaw angle .delta. of the portable
AACMM 100 at second position 430. The yaw angle is the angle or
rotation of the x and y axes of the portable AACMM 100 at second
position 430 (in the gravity frame of reference) to place these
axes parallel to the x and y axes at first position 400. In the
embodiments of the present invention, the Z axis is in the
direction perpendicular to the base 116 of the portable AACMM 110.
Typically, the portable AACMM 100 is in an upright position during
use (and, thus, during the relocation method of embodiments of the
present invention). As such, the Z axis corresponds approximately
with the gravity vector. The x, y and z axis vectors can also be
seen in the front views of FIGS. 6 and 7, and in the top views of
FIGS. 8 and 9.
[0048] The AACMM 100 has a local frame of reference, which is the
frame of reference with which measurements of the articulated arm
are referred. For example, in the local frame of reference, a
simple choice (shown in FIGS. 6 and 8 for the AACMM in first
position 400) is for the local frame of reference to have x, y, z
coordinates of (0, 0, 0). As stated hereinabove, in most cases, the
AACMM 100 is mounted upright so that the z axis of the local frame
of reference is approximately aligned with the gravity vector and
the x and y axes are in a plane that is approximately horizontal.
The x and y axes of the AACMM 100 will rotate as the arm is rotated
about the vertical direction.
[0049] When the AACMM 100 is moved to second position 430, the z
axis in the new local frame of reference will again be
approximately aligned with the gravity vector, and the x and y axes
will again be in a plane that is approximately horizontal. The x
and y axes in the local frame of reference at second position 430
will probably not be parallel to the corresponding x and y axes of
the local frame of reference at first position 400. In order to
convert the coordinate data collected in positions 1 and 2 by AACMM
100, a method is needed to display the measured data in the same
frame of reference. In other words, collected coordinate data needs
to be transformed into a common frame of reference.
[0050] There are many ways to do such a transformation. A simple
way is to first convert the local frame of reference of the AACMM
100 at first position 400 into a gravity frame of reference at
first position 400. This is done by rotating the z axis in such a
way as to align it with the gravity vector. The information needed
to perform such a mathematical rotation is provided by the 2-axis
inclinometer. Similarly, the local frame of reference of the AACMM
100 at second position 430 can be converted into a gravity frame of
reference at second position 430 by using the information provided
by the inclinometer. The rotational matrix that is used to rotate
the local frame of reference of the AACMM 100 at first position 400
to the gravity frame of reference at first position 400 can also be
applied to all of the coordinates measured by the AACMM 100 at
first position 400. The result is that all of the measured points
are given in the gravity frame of reference of the AACMM 100 at
first position 400.
[0051] The rotational matrix that is used to rotate the local frame
of reference of the AACMM 100 at second position 430 to the gravity
frame of reference at second position 430 can also be applied to
all of the points measured by the AACMM 100 at second position 430.
The result is that all of the measured points are given in the
gravity frame of reference of the AACMM 100 at second position 430.
To move the data measured by the AACMM 100 at second position 430
into the frame of reference of the AACMM 100 at first position 400,
two further transformations are needed. First, all of the
coordinate data collected by the AACMM 100 at second position 430
needs to be translated or shifted along the x, y, and z directions
of the gravity frame of reference of the AACMM 100 at first
position 400 by an amount that would cause the origin of the AACMM
100 at second position 430 to coincide with the origin at first
position 400. Second, all of the coordinate data needs to be
rotated about the gravity vector by an amount that would cause the
x and y axes in the gravity frame of reference of the AACMM 100 at
second position 430 to be parallel to the corresponding x and y
axes in the gravity frame of reference of the AACMM 100 at first
position 400. The amount of rotation about the gravity vector is
called the yaw angle.
[0052] To summarize, one way to transform data so that it can be
compared in a common frame of reference is to first use the tilt
angles measured by the inclinometer to rotate coordinate data into
the gravity frame of reference of first position 400, which is the
common frame of reference for the combined data. Next, the tilt
angles measured by the inclinometer are used to rotate the
coordinate data into the gravity frame of reference of second
position 430. The data are translated by an appropriate amount in
the x, y, and z directions, and the x and y data are rotated about
the z axis.
[0053] Methods for doing rotations and translations of coordinate
data are well known to those of ordinary skill in the art. A
rotation in three dimensional space may be obtained by multiplying
a 3.times.3 rotation matrix by a 3 element coordinate vector.
Translation and rotation steps can be combined in a single
4.times.4 matrix. Because these methods are so well known, they are
not discussed further here.
[0054] It is also possible to move data collected with the AACMM
100 in two different positions by using different types of
transformations. For example, it would be possible to compare the
data collected by the AACMM 100 at second position 430 to the local
frame of reference of the AACMM 100 at first position 400 rather
than to the gravity frame of reference of the AACMM 100 at first
position 400. A single matrix rotation is sufficient to transform
the data in a gravity frame of reference into a local frame of
reference. Similarly, it would be possible to convert coordinate
data into an arbitrary global frame of reference. In this case,
suitable additional rotations and translations are applied to the
coordinate data from the AACMM 100 at the first and second
positions. By the same token, it will obvious to one of ordinary
skill in the art that additional relocations are possible to a
third position, a fourth position, and so forth. The same
mathematical methods are used for each successive relocation.
[0055] Embodiments of the method of the present invention may be
embodied in software or firmware that may be stored internal to the
AACMM 100, for example, as instructions stored within memory 332 on
the user interface board 202 (FIG. 3) or stored within some other
memory or other device internal or external to the AACMM 100. The
software may then be executed by, e.g., the display processor 328
or another processor, and user instructions along with the results
of the method may be visually displayed to the user via the color
LCD 338 (FIG. 3) onboard the AACMM 100 or may be conveyed to the
user by some other means, visual or otherwise. In the alternative,
the method may be stored and executed as software by an external
computer (e.g., a laptop) connected with the AACMM 100 as is common
in the art, and instructions and results may be displayed on the
screen of the laptop computer. In either case, the software that
embodies the method of the present invention may be embodied as a
utility application for the AACMM 100 that the user may invoke to
perform the method of embodiments of the present invention.
[0056] Referring also to FIG. 10, according to embodiments of the
present invention, the method 1000 includes the following
steps:
[0057] The inclinometer is used in a step 1010 to measure the tilt
of the portable AACMM 100 along the x and y directions at first and
second positions. Then, in step 1020, each of the AACMM readings is
corrected to be in the gravity frame of reference, where z in the
new AACMM frame of reference coincides with the gravity vector. The
new x and y vectors are perpendicular to the gravity vector.
[0058] In this instance, the tilt sensor is used to measure the
tilt in two directions with respect to the gravity vector. This may
be done by using a two-axis tilt sensor in the base. Alternatively
a single axis tilt sensor may be located in the rotating portion of
bearing cartridge grouping 114. In the latter case, the
inclinometer is used to measure the tilt angle at two or more
positions as the operator rotates the arm in an appropriate
way.
[0059] Next, in step 1030, the coordinates of Nests A and B 410,
420 (in the gravity frame of reference) are read with the portable
AACMM 100 at first position 400. These coordinates may be referred
to as (x.sub.A, y.sub.A, z.sub.A) and (x.sub.B, y.sub.B, z.sub.B).
In step 1040, step 1030 is repeated with the portable AACMM 100 at
second position 430 to obtain coordinates (x.sub.A', y.sub.A',
z.sub.A') and (x.sub.B', y.sub.B', z.sub.B').
[0060] The coordinates of the origin point of the portable AACMM
100 at first position 400 are (0, 0, 0). Next, in step 1050, as
shown in FIGS. 5 and 6, the coordinate Z of the origin point of the
portable AACMM 100 at second position 430 in the global frame of
reference can be calculated using Nest A 420 alone with the formula
Z=z.sub.A'-z.sub.A or alternatively using Nest B 420 alone with the
formula Z=z.sub.B'-z.sub.B. To get better accuracy, the average of
these two quantities may be taken.
[0061] As shown in top views of FIGS. 8 and 9, the displacement
from the origin of the portable AACMM 100 at first and second
positions to Nest A 410 or Nest B 420 can be represented as a
two-dimensional vector. In step 1060, the vector components X and Y
can be found by solving the following two simultaneous equations,
which follow immediately from FIGS. 8 and 9:
(X-x.sub.A).sup.2+(Y-y.sub.A).sup.2=(x.sub.A').sup.2+(y.sub.A').sup.2
(Eq. 1)
(X-x.sub.B).sup.2+(Y-y.sub.B).sup.2=(x.sub.B').sup.2+(y.sub.B').sup.2
(Eq. 2)
[0062] The analytical solution to Equations 1 and 2 contain many
terms. Numerical methods for solving these equations are relatively
fast and are preferred. There are two possible solutions for X and
Y from these equations, but only one of these solutions will be
reasonable, and the other possible solution can be eliminated.
[0063] The x and y components of the vector from Nest B 420 to Nest
A 410 are x.sub.A-x.sub.B and y.sub.A-y.sub.B, respectively. Next,
in step 1070 the yaw angle .theta. of the portable AACMM 100 at
second position 430 is selected to match these vector x and y
components. The errors in the x and y components are given by the
following equations:
E.sub.x=(x.sub.A'-x.sub.B')cos .theta.+(y.sub.A'-y.sub.B')sin
.theta.-(x.sub.A-x.sub.B) (Eq. 3)
E.sub.y=(x.sub.A'-x.sub.B')(-sin .theta.)+(y.sub.A'-y.sub.B')cos
.theta.-(y.sub.A-y.sub.B) (Eq. 4)
[0064] To find the relatively best value for 0, the standard method
of minimizing the squared error of these two terms may be used in
step 1070. In other words, .theta. can be found by minimizing the
error in E.sub.x.sup.2+E.sub.y.sup.2.
[0065] It should be noted that the order of the actions in FIG. 10
may be changed. For example, step 1010 is to measure tilt of AACMM
100 along x and y directions at first and second positions.
However, step 1010 could be modified to measure tilt of AACMM 100
along x and y direction for first position 400 only. Then
measurement of x and y directions at second position 430 could be
carried out between steps 1030 and 1040.
[0066] Although a detailed procedure has been given herein above to
demonstrate that use of inclinometers in the portable AACMM 100
makes it possible to relocate the portable AACMM 100 using only two
targets in accordance with embodiments of the present invention,
the specific method of calculation set forth herein is merely
exemplary, as other methods may be used to mathematically extract
the four relevant parameters for the coordinates of the portable
AACMM 100 at second position 430 and for the yaw angle. In
addition, an equivalent method may be used to move or relocate the
portable AACMM 100 to a third different location, a fourth
different location, and so on, although detailed steps have not
been given for this, yet these steps should be obvious to one of
ordinary skill in the art. Embodiments of this aspect of the
present invention have utility in that they improve the accuracy of
the relocation process and that they reduce the amount of time
required to perform the relocation procedure.
[0067] The mathematical methods described above provides a fast and
accurate method for finding the four quantities X, Y, Z, and a
However, these four quantities can be found with other mathematical
methods. For example, it is possible to write equations that can be
solved using an iterative optimization procedure for all four
variables. Therefore, the mathematical computation should not be
limited to that described by Equations (1)-(4).
[0068] Technical effects and benefits include the inclusion of one
or more inclinometers located on or within a portable AACMM and
which may be used to improve the accuracy of relocation of the
portable AACMM, and/or may be used to reduce the number of targets
(e.g., nests, seats, or fixtures) required for the portable AACMM
100 to complete a relocation of itself when measurement of a large
part by the portable AACMM 100 requires that the portable AACMM 100
to be physically moved between different locations.
[0069] As will be appreciated by one skilled in the art, aspects of
the present invention may be embodied as a system, method, or
computer program product. Accordingly, aspects of the present
invention may take the form of an entirely hardware embodiment, an
entirely software embodiment (including firmware, resident
software, micro-code, etc.) or an embodiment combining software and
hardware aspects that may all generally be referred to herein as a
"circuit," "module" or "system." Furthermore, aspects of the
present invention may take the form of a computer program product
embodied in one or more computer readable medium(s) having computer
readable program code embodied thereon.
[0070] Any combination of one or more computer readable medium(s)
may be utilized. The computer readable medium may be a computer
readable signal medium or a computer readable storage medium. A
computer readable storage medium may be, for example, but not
limited to, an electronic, magnetic, optical, electromagnetic,
infrared, or semiconductor system, apparatus, or device, or any
suitable combination of the foregoing. More specific examples (a
non-exhaustive list) of the computer readable medium would include
the following: an electrical connection having one or more wires, a
portable computer diskette, a hard disk, a random access memory
(RAM), a read-only memory (ROM), an erasable programmable read-only
memory (EPROM or Flash memory), an optical fiber, a portable
compact disc read-only memory (CD-ROM), an optical storage device,
a magnetic storage device, or any suitable combination of the
foregoing. In the context of this document, a computer readable
storage medium may be any tangible medium that may contain, or
store a program for use by or in connection with an instruction
execution system, apparatus, or device.
[0071] A computer readable signal medium may include a propagated
data signal with computer readable program code embodied therein,
for example, in baseband or as part of a carrier wave. Such a
propagated signal may take any of a variety of forms, including,
but not limited to, electro-magnetic, optical, or any suitable
combination thereof. A computer readable signal medium may be any
computer readable medium that is not a computer readable storage
medium and that can communicate, propagate, or transport a program
for use by or in connection with an instruction execution system,
apparatus, or device.
[0072] Program code embodied on a computer readable medium may be
transmitted using any appropriate medium, including but not limited
to wireless, wireline, optical fiber cable, RF, etc., or any
suitable combination of the foregoing.
[0073] Computer program code for carrying out operations for
aspects of the present invention may be written in any combination
of one or more programming languages, including an object oriented
programming language such as Java, Smalltalk, C++, C# or the like
and conventional procedural programming languages, such as the "C"
programming language or similar programming languages. The program
code may execute entirely on the user's computer, partly on the
user's computer, as a stand-alone software package, partly on the
user's computer and partly on a remote computer or entirely on the
remote computer or server. In the latter scenario, the remote
computer may be connected to the user's computer through any type
of network, including a local area network (LAN) or a wide area
network (WAN), or the connection may be made to an external
computer (for example, through the Internet using an Internet
Service Provider).
[0074] Aspects of the present invention are described with
reference to flowchart illustrations and/or block diagrams of
methods, apparatus (systems) and computer program products
according to embodiments of the invention. It will be understood
that each block of the flowchart illustrations and/or block
diagrams, and combinations of blocks in the flowchart illustrations
and/or block diagrams, may be implemented by computer program
instructions.
[0075] These computer program instructions may be provided to a
processor of a general purpose computer, special purpose computer,
or other programmable data processing apparatus to produce a
machine, such that the instructions, which execute via the
processor of the computer or other programmable data processing
apparatus, create means for implementing the functions/acts
specified in the flowchart and/or block diagram block or blocks.
These computer program instructions may also be stored in a
computer readable medium that may direct a computer, other
programmable data processing apparatus, or other devices to
function in a particular manner, such that the instructions stored
in the computer readable medium produce an article of manufacture
including instructions which implement the function/act specified
in the flowchart and/or block diagram block or blocks.
[0076] The computer program instructions may also be loaded onto a
computer, other programmable data processing apparatus, or other
devices to cause a series of operational steps to be performed on
the computer, other programmable apparatus or other devices to
produce a computer implemented process such that the instructions
which execute on the computer or other programmable apparatus
provide processes for implementing the functions/acts specified in
the flowchart and/or block diagram block or blocks.
[0077] The flowchart and block diagrams in the Figures illustrate
the architecture, functionality, and operation of possible
implementations of systems, methods, and computer program products
according to various embodiments of the present invention. In this
regard, each block in the flowchart or block diagrams may represent
a module, segment, or portion of code, which comprises one or more
executable instructions for implementing the specified logical
function(s). It should also be noted that, in some alternative
implementations, the functions noted in the block may occur out of
the order noted in the Figures. For example, two blocks shown in
succession may, in fact, be executed substantially concurrently, or
the blocks may sometimes be executed in the reverse order,
depending upon the functionality involved. It will also be noted
that each block of the block diagrams and/or flowchart
illustration, and combinations of blocks in the block diagrams
and/or flowchart illustration, may be implemented by special
purpose hardware-based systems that perform the specified functions
or acts, or combinations of special purpose hardware and computer
instructions.
[0078] While the invention has been described with reference to
example embodiments, it will be understood by those skilled in the
art that various changes may be made and equivalents may be
substituted for elements thereof without departing from the scope
of the invention. In addition, many modifications may be made to
adapt a particular situation or material to the teachings of the
invention without departing from the essential scope thereof.
Therefore, it is intended that the invention not be limited to the
particular embodiment disclosed as the best mode contemplated for
carrying out this invention, but that the invention will include
all embodiments falling within the scope of the appended claims.
Moreover, the use of the terms first, second, etc. do not denote
any order or importance, but rather the terms first, second, etc.
are used to distinguish one element from another. Furthermore, the
use of the terms a, an, etc. do not denote a limitation of
quantity, but rather denote the presence of at least one of the
referenced item.
* * * * *