U.S. patent application number 13/006466 was filed with the patent office on 2011-07-21 for portable articulated arm coordinate measuring machine and integrated environmental recorder.
This patent application is currently assigned to FARO TECHNOLOGIES, INC.. Invention is credited to Frederick John York.
Application Number | 20110178753 13/006466 |
Document ID | / |
Family ID | 43736091 |
Filed Date | 2011-07-21 |
United States Patent
Application |
20110178753 |
Kind Code |
A1 |
York; Frederick John |
July 21, 2011 |
Portable Articulated Arm Coordinate Measuring Machine and
Integrated Environmental Recorder
Abstract
A portable articulated arm coordinate measurement machine
(AACMM) that includes a manually positionable articulated arm, a
measurement device attached to a first end of the AACMM, and an
electronic circuit for receiving the position signal and for
providing data corresponding to a position of the measurement
device. The AACMM further includes an environmental recorder. The
environmental recorder includes a sensor for outputting a value of
a parameter, a memory, and logic executable by the environmental
recorder to implement a method. The method includes monitoring the
value of the parameter, and determining that the value of the
parameter is outside of a programmable threshold. The value of the
parameter and a timestamp are stored in the memory in response to
the value of the parameter being determined to be outside of the
programmable threshold. The contents of the memory are transmitted
to the electronic circuit.
Inventors: |
York; Frederick John;
(Longwood, FL) |
Assignee: |
FARO TECHNOLOGIES, INC.
Lake Mary
FL
|
Family ID: |
43736091 |
Appl. No.: |
13/006466 |
Filed: |
January 14, 2011 |
Related U.S. Patent Documents
|
|
|
|
|
|
Application
Number |
Filing Date |
Patent Number |
|
|
61296555 |
Jan 20, 2010 |
|
|
|
Current U.S.
Class: |
702/95 |
Current CPC
Class: |
G05B 19/401 20130101;
G05B 2219/37193 20130101; G05B 19/406 20130101; G05B 2219/40596
20130101; G01B 5/012 20130101; G05B 2219/40233 20130101; G01B
11/007 20130101; G05B 2219/24067 20130101; G05B 2219/45061
20130101; G01B 21/047 20130101 |
Class at
Publication: |
702/95 |
International
Class: |
G01B 7/28 20060101
G01B007/28 |
Claims
1. A portable articulated arm coordinate measurement machine
(AACMM), comprising: a manually positionable articulated arm having
opposed first and second ends, the arm including a plurality of
connected arm segments, each of the arm segments including at least
one position transducer for producing a position signal; a
measurement device attached to a first end of the AACMM; an
electronic circuit for receiving the position signal from the at
least one transducer and for providing data corresponding to a
position of the measurement device; and an environmental recorder
in communication with the electronic circuit, the environmental
recorder including a sensor for outputting a value of a parameter;
a memory; and logic executable by the environmental recorder to
implement a method that comprises monitoring the value of the
parameter; determining that the value of the parameter is outside
of a programmable threshold; storing the value of the parameter and
a timestamp in the memory, the storing responsive to the
determining; and transmitting contents of the memory to the
electronic circuit.
2. The system of claim 1, wherein the environmental recorder
further comprises a battery, and the monitoring, determining, and
storing are performed using power from the battery when the
portable AACMM is in a power off state.
3. The system of claim 1, wherein the method further comprises
storing the value of the parameter and the time stamp in the memory
at least once during a programmable time interval.
4. The system of claim 1, wherein the transmitting is performed
when the portable AACMM is powered on in response to at least one
of the memory reaching a programmable capacity and a programmable
amount of time passing since the last time that the contents were
transmitted to the electronic circuit.
5. The system of claim 1, wherein the storing is further responsive
to the value of the parameter being different than a previous value
of the parameter.
6. The system of claim 1, wherein the sensor comprises a shock
sensor and the parameter is acceleration.
7. The system of claim 1, wherein the sensor comprises at least one
of a temperature sensor and a humidity sensor.
8. A method of implementing a portable articulated arm coordinate
measuring machine (AACMM), the method comprising: receiving a value
of a parameter from a sensor located on the portable AACMM, the
portable AACMM comprised of a manually positionable articulated arm
portion having opposed first and second ends, the arm portion
including a plurality of connected arm segments, each arm segment
including at least one position transducer for producing a position
signal, a measurement device attached to the first end, and an
electronic circuit which receives the position signal from the at
least one transducer and provides data corresponding to a position
of the measurement device; monitoring the value of the parameter;
determining that the value of the parameter is outside of a
programmable threshold; storing the value of the parameter and a
timestamp in a memory located on an environmental recorder, the
storing responsive to detecting the event; and transmitting
contents of the memory to the electronic circuit.
9. The method of claim 8, wherein the monitoring, determining, and
storing are performed using power from a battery connected to the
environmental recorder when the portable articulated arm coordinate
measuring machine is in a power off state.
10. The method of claim 8, further comprising storing the value of
the parameter and the time stamp in the memory at least once during
a programmable time interval.
11. The method of claim 8, wherein the transmitting is performed
when the portable AACMM is powered on in response to at least one
of the memory reaching a programmable capacity and a programmable
amount of time passing since the last time that the contents were
transmitted to the electronic circuit.
12. The method of claim 8, wherein the storing is further
responsive to the value of the parameter being different than a
previous value of the parameter.
13. The method of claim 8, wherein the sensor comprises a shock
sensor and the parameter is acceleration.
14. The method of claim 8, wherein the sensor comprises at least
one of a temperature sensor and a humidity sensor.
15. The method of claim 8, further comprising initiating an alert
to the electronic circuit in response to detecting the event.
16. The method of claim 8, further comprising generating a report
responsive to the contents of the memory.
17. The method of claim 16, wherein the report is utilized to
diagnose at least one of accuracy variations, electronic errors,
and software anomalies.
18. A computer program product for implementing a portable
articulated arm coordinate measuring machine (AACMM), the 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,
the method including: receiving a value of a parameter from a
sensor located on the portable AACMM, the portable AACMM comprised
of a manually positionable articulated arm portion having opposed
first and second ends, the arm portion including a plurality of
connected arm segments, each arm segment including at least one
position transducer for producing a position signal, a measurement
device attached to a first end of the portable AACMM, and an
electronic circuit which receives the position signal from the at
least one transducer and provides data corresponding to a position
of the measurement device; monitoring the value of the parameter;
determining that the value of the parameter is outside of a
programmable threshold; storing the value of the parameter and a
timestamp in a memory located on an environmental recorder, the
storing responsive to detecting the event; and transmitting
contents of the memory to the electronic circuit.
19. The computer program product of claim 18, wherein the
monitoring, determining, and storing are performed using power from
a battery located on the environmental recorder when the portable
AACMM is in a power off state.
20. The computer program product of claim 18, wherein the method
further comprises storing the value of the parameter and the
timestamp in the memory at least once during a programmable time
interval.
21. The computer program product of claim 18, wherein the
transmitting is performed when the portable AACMM is powered on in
response to at least one of the memory reaching a programmable
capacity and a programmable amount of time passing since the last
time that the contents were transmitted to the electronic
circuit.
22. The computer program product of claim 18, wherein the storing
is further responsive to the value of the parameter being different
than a previous value of the parameter.
23. The computer program product of claim 18, wherein the sensor
comprises at least one of a shock sensor, a temperature sensor, and
a humidity sensor.
24. The computer program product of claim 18, wherein the method
further includes initiating an alert to the electronic circuit in
response to detecting the event.
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 a coordinate measuring
machine, and more particularly to a portable articulated arm
coordinate measuring machine having an integrated environmental
recorder.
[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] Information about past environmental conditions of an
articulated arm CMM is helpful during system diagnostics and repair
of the articulated arm CMM. To enhance traceability of the past
operating environments of the articulated arm CMM, what is needed
is an environmental monitoring system to measure and record
environmental data for the articulated arm CMM.
SUMMARY OF THE INVENTION
[0006] An embodiment is a portable articulated arm coordinate
measurement machine (AACMM) that includes a manually positionable
articulated arm having opposed first and second ends, the arm
including a plurality of connected arm segments, each of the arm
segments including at least one position transducer for producing a
position signal. The AACMM also includes a measurement device
attached to a first end of the AACMM, and an electronic circuit for
receiving the position signal from the transducers and for
providing data corresponding to a position of the measurement
device. The AACM further includes an environmental recorder in
communication with the electronic circuit. The environmental
recorder includes a sensor for outputting a value of a parameter, a
memory, and logic executable by the environmental recorder to
implement a method. The method includes monitoring the value of the
parameter, and determining that the value of the parameter is
outside of a programmable threshold. The value of the parameter and
a timestamp are stored in the memory in response to the value of
the parameter being determined to be outside of the programmable
threshold. The contents of the memory are transmitted to the
electronic circuit.
[0007] Another embodiment is a method of implementing a portable
AACMM. The method includes receiving a value of a parameter from a
sensor located on the portable AACM. The portable AACMM includes a
manually positionable articulated arm having opposed first and
second ends. The arm includes a plurality of connected arm
segments, each arm segment including at least one position
transducer for producing a position signal. The portable AACMM also
includes a measurement device attached to a first end of the
portable AACMM, and an electronic circuit which receives the
position signal from the transducers and provides data
corresponding to a position of the measurement device. The received
value of the parameter is monitored and it is determined that the
value of the parameter is outside of a programmable threshold. The
value of the parameter and a timestamp are stored in a memory
located on an environmental recorder in response to the value of
the parameter being determined to be outside of the programmable
threshold. The contents of the memory are transmitted to the base
computer processor.
[0008] A further embodiment is a computer program product for
implementing a portable AACMM. The computer program product
includes a storage medium having computer-readable program code
embodied thereon, which when executed by a computer causes the
computer to implement a method. The method includes receiving a
value of a parameter from a sensor located on the portable AACM.
The portable AACMM includes a manually positionable articulated arm
having opposed first and second ends. The arm includes a plurality
of connected arm segments, each arm segment including at least one
position transducer for producing a position signal. The portable
AACMM also includes a measurement device attached to a first end of
the portable AACMM, and an electronic circuit which receives the
position signal from the transducers and provides data
corresponding to a position of the measurement device. The received
value of the parameter is monitored and it is determined that the
value of the parameter is outside of a programmable threshold. The
value of the parameter and a timestamp are stored in a memory
located on an environmental recorder in response to the value of
the parameter being determined to be outside of the programmable
threshold. The contents of the memory are transmitted to the base
computer processor.
BRIEF DESCRIPTION OF THE DRAWINGS
[0009] 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:
[0010] 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;
[0011] 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;
[0012] 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;
[0013] FIG. 4 is a block diagram describing detailed features of
the environmental recorder of FIG. 3 in accordance with an
embodiment;
[0014] FIG. 5 is a flow diagram describing a process performed by
the environmental recorder when the AACMM is powered off in
accordance with an embodiment; and
[0015] FIG. 6 is a flow diagram describing a process performed by
the environmental recorder when the AACMM is powered on in
accordance with an embodiment.
DETAILED DESCRIPTION
[0016] A portable articulated arm coordinate measuring machine
(AACMM) that includes an environmental recorder is provided in
accordance with exemplary embodiments. The environmental recorder
provides data that may be useful in explaining any anomalous
behavior of the AACMM. Data representing the history of the AACMM
is recorded by the environmental recorder at various times,
including from early in the manufacturing process, during time in
inventory, during shipment of the product, and during subsequent
handling and use at the site of an end user. This data can be read
directly by an end user of the AACMM via an on-board operating
system and display, or it can be extracted and saved on another
computer. The environmental recorder is an independent, battery
backed environmental monitoring system that is located on the
AACMM.
[0017] Data collected by the environmental recorder may be utilized
to alert a user about an event and to suggest that a probe
calibration and/or a single point articulation performance test
(SPAT) be performed to see if the arm is still measuring to
specification. The data collected by the environmental recorder is
also used during system diagnostics and repair to determine a
history of the AACMM in terms of environmental conditions.
Environmental conditions include, but are not limited to:
temperature, humidity, and shock (e.g., due to the AACMM being
dropped). Sensors located on the environmental recorder output
values of environmental condition parameters and their values are
recorded periodically. In accordance with embodiments, the periodic
recording occurs both when the AACMM is powered on and when the
AACMM is powered off. In addition, or alternatively, the values of
environmental condition parameters are recorded in response to an
event such as an extreme humidity value (e.g., as defined by a
programmable threshold) being detected at a sensor. In accordance
with embodiments, the recording of values that exceed thresholds
occurs both when the AACMM is powered on and when the AACMM is
powered off.
[0018] 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.
[0019] 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).
[0020] 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.
[0021] 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.
[0022] 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).
[0023] 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.
[0024] 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.
[0025] 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.
[0026] 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.
[0027] 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.
[0028] 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.
[0029] 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.
[0030] 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.
[0031] 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.
[0032] 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.
[0033] 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.
[0034] 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.
[0035] 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.
[0036] In an embodiment, the AACMM 100 includes the integrated
electronic data processing system 210 described above. The
electronic data processing system 210 resides onboard, and is
integrated with, the AACMM 100 and its components. The base
processor board 204 includes a base computer processor, which may
be implemented by the processor function 302 illustrated in FIG. 3.
The base computer processor performs user-selected functions in
response to requests received via the AACMM 100, which functions
are described further herein. In an exemplary embodiment, the
functions are performed via one or more applications (e.g., logic)
executed by the base computer processor and stored, e.g., in memory
304 of FIG. 3. In an embodiment the requests may be received at the
AACMM 100 via the onboard user interface board 202 illustrated in
FIG. 2 and/or an external computer processor that is remotely
located from the AACMM 100 and communicates with the AACMM 100
either directly through a USB channel, over an Ethernet network, or
wirelessly, e.g., over a wireless LAN or Bluetooth.TM.-enabled
channel 232, as illustrated generally in FIG. 2. In response to the
requests, various components, e.g., encoders 214/216/234, probe end
electronics 230, and/or peripheral devices (e.g., LLP 242) are
activated and collect data responsive to the requests. Information
derived by the data is returned to the base computer processor, and
forwarded to a destination device as described further herein.
[0037] Referring to FIG. 4, a more detailed view of the
environmental recorder 362 of FIG. 3 is generally shown. The
environmental recorder 362 includes a battery 410 for providing
electrical power to components of the environmental recorder 362
for an extended period of time (e.g., five to six months) without
the need for external power. The battery 410 may be implemented
using any battery sized to fit on the environmental recorder 362
and capable of holding a charge for an extended period of time. The
battery 410 is charged when the AACMM 100 is connected to external
power for operation or if present, from a secondary (re-chargeable)
AACMM battery pack, whether connected to external power or not.
Having a dedicated battery 410 in the environmental recorder 362
allows the environmental recorder 362 to operate when the AACMM 100
is powered off (e.g., in a power off state).
[0038] The environmental recorder 362 also includes a clock 406 for
maintaining the date and time of day. The clock 406 is used to
generate a timestamp for events that are logged as well as to
measure time intervals. Commercially available clocks such as, but
not limited to, a crystal driven clock may be utilized by
embodiments.
[0039] The environmental recorder 362 depicted in FIG. 4 includes
various sensors: an impact sensor 402, a humidity sensor 414, and a
temperature sensor 412. These sensors are examples of the types of
sensors that may be utilized by the environmental recorder 362 and
are not intended to be limiting as other types of sensors (e.g.,
vibration sensors, atmospheric pressure sensors, etc.) may also be
implemented.
[0040] An embodiment of the impact sensor 402 is implemented by two
or more accelerometers: a first accelerometer designed to detect
and measure very small accelerations (or vibrations); and a second
accelerometer designed to detect and measure larger accelerations.
When the first accelerometer detects a motion, it instructs the
second accelerometer to start taking and recording measurements. As
known in the art, accelerometers measure acceleration in terms of
gravitational force (g-force), and thus, the impact sensor 402
measures a g-force parameter. Any suitable accelerometers known in
the art for detecting a shock or impact may be utilized by
exemplary embodiments described herein, including, but not limited
to three-axis micro electro-mechanical systems (MEMS),
gravitometers, piezoresistive accelerometers, and capacitive
accelerometers. In an embodiment, a g-force value detected by the
first accelerometer that is greater than a present threshold (e.g.,
2.5 g), causes the environmental recorder 362 to store the values
of the g-force along with a timestamp. This programmable g-force
threshold value may be updated during manufacturing or
initialization of the AACMM 100.
[0041] The parameter measured by the temperature sensor 412 is
ambient temperature, and the temperature sensor 412 is implemented
by a commercially available temperature sensor. In an embodiment, a
temperature value that is greater than 45 degrees Celsius or less
than 5 degrees Celsius causes the environmental recorder 362 to
store the value of the temperature along with a timestamp. This
programmable temperature threshold value may be updated during
manufacturing or initialization of the AACMM 100.
[0042] A humidity parameter is measured by the humidity sensor 414,
and the humidity sensor 414 is implemented by a commercially
available humidity sensor. In an embodiment, a humidity value that
is greater than 80% or less than 20% causes the environmental
recorder 362 to store the value of the humidity along with a
timestamp. This programmable humidity threshold value may be
updated during manufacturing or initialization of the AACMM
100.
[0043] The processor 408 controls a programmable time interval for
recording values of the parameters from the sensors, the reading of
sensors, and the recording or storage of the values and timestamps
into the memory 404. As described herein, the values of parameters
measured by the sensors cause the environmental recorder 362 to
activate the recording of the parameter value at the moment of an
event (or shortly thereafter) regardless of the monitoring schedule
of that sensor. An alert may also be sent to an operator of the
system (e.g., via the LCD 338) in response to the event being
detected. In addition, the processor 408 controls the periodic
transmission of contents of the memory 404 to the base processor
board 204. In an embodiment, the transmission is across an
inter-integrated circuit (I.sup.2C) bus, and the processor is
implemented by a commercially available processor. The processor
408 controls the processing described herein using hardware
instructions, software instructions or a combination of both.
[0044] The memory 404 stores the recorded values of the parameters
and their associated timestamps. In addition, the memory 404 may
store the programmable threshold values associated with the
parameters. The memory 404 is implemented by a commercially
available memory such as, but not limited to: flash and direct
random access memory (SRAM). The size of the memory 404 dictates
how many parameter values and timestamps may be stored at the
environmental recorder 362 before requiring a transmission of
contents of the memory 404 to the base processor board 204.
[0045] FIG. 4 shows the impact sensor 402, memory 404, clock 406,
processor 408, battery 410, temperature sensor 412, and humidity
sensor 414 located on the environmental recorder 362. In alternate
embodiments, all or a subset of these elements are located outside
of the environmental recorder 362 on the AACMM 100 with
communication between the elements being provided via a network or
bus.
[0046] In an embodiment, the environmental recorder 362 utilizes
multiple processors, clocks, and sensors. The lowest level system
runs continuously and detects basis events that then bring up the
next processor and sensor set. When the AACMM 100 is powered up, a
third processor comes into play to interface to the environmental
recorder 362, and then a fourth processor comes up to allow
retrieval and display of data.
[0047] Referring to FIG. 5, a flow diagram describing a process
performed by the environmental recorder 362 when the AACMM is in a
low power mode (e.g., powered off, reduced power) is generally
shown. In an embodiment, the processing is facilitated by computer
instructions, or logic, located in the processor 408. At step 502,
the values of parameters output by the sensors located on the
environmental recorder 362, such as impact sensor 402 and/or
temperature sensor 412 are monitored. At step 504, it is determined
if an event has been detected by the monitoring. An event occurs
when the value of at least one of the parameters is outside of a
programmable threshold. An event also occurs when a programmable
time interval has expired. If an event has not been detected, as
determined at step 504, then processing continues at step 502.
Otherwise, if an event has been detected, then processing continues
at step 506.
[0048] In an embodiment, while the monitoring and detecting are
being performed, the environmental recorder 362 is in a low power
mode where the memory 404 is not accessible. At step 506, the
environmental recorder 362 is put into a high power mode to allow
access to the memory 404. The values of the parameter(s) along with
a timestamp are stored to the memory 404 at step 508. In an
embodiment, values of all of the parameters being measured by the
sensors are stored to the memory 404 at step 508. Alternatively,
all of the parameter values are stored to memory 404 when the event
detected at step 504 is that a programmable time interval has
expired, and only the value of the parameter causing the event to
be detected at step 504 is stored to memory 404 when the event
detected at step 504 is that a threshold has been exceeded. In an
embodiment, step 508 is repeated a programmable number of times or
for a programmable amount of time when the event detected at step
504 is that a threshold has been exceeded. In an embodiment, space
in the memory 404 is conserved, by performing step 508 only if the
current value of the parameter is different from a previous value
of the parameter. At step 510, the environmental recorder 362 is
put into the low power mode. In an embodiment, the low power mode
includes portions of the environmental recorder 362 that are not
used for the monitoring and detecting being powered off. Processing
then continues at step 502.
[0049] Referring to FIG. 6, a flow diagram describing a process
performed by the environmental recorder 362 when the AACMM is
powered on is generally shown. In an embodiment, the processing is
facilitated by computer instructions, or logic, located in the
processor 408. At step 602, the values of parameters output by the
sensors located on the environmental recorder 362, such as impact
sensor 402 and/or temperature sensor 412 are monitored. At step
604, it is determined if an event has been detected by the
monitoring. An event occurs when the value of at least one of the
parameters is outside of a programmable threshold. An event also
occurs when a programmable time interval has expired. If it is
determined at step 604, that an event has not been detected, then
processing continues at step 608. Alternatively, it if is
determined that an event has been detected, then processing
continues at step 608.
[0050] The values of the parameter(s) along with a timestamp are
stored to the memory 404 at step 606. In an embodiment, values of
all of the parameters being measured by the sensors are stored to
the memory 404 at step 606. Alternatively, all of the parameter
values are stored to memory 404 when the event detected at step 604
is that a programmable time interval has expired, and only the
value of the parameter causing the event to be detected at step 604
is stored to memory 404 when the event detected at step 604 is that
a threshold has been exceeded. In an embodiment, space in the
memory 404 is conserved, by performing step 606 only if the current
value of the parameter is different from a previous value of the
parameter. In an embodiment, step 606 is repeated a programmable
number of times or for a programmable amount of time when the event
detected at step 604 is that a threshold has been exceeded.
[0051] At step 608, it is determined if contents of the memory 404
should be transmitted to the base processor board 204. The
determination is made based on how much space is left in the memory
404 and/or how much time has passed since the last time the
contents of the memory 404 were transmitted to the base processor
board 204. If it is determined, at step 608, that the contents of
the memory 404 should be transmitted to the base processor board
computer 204, then processing continues at step 610. At step 610,
the transmitting is performed and the memory 404 is cleared out.
Processing then continues at step 602. Once the data is transmitted
to the base processor board 204, it is stored in the memory 304 on
the base processor board 204. The data can then be transmitted to a
processor remote from the AACMM 100 and/or displayed on the color
LCD 338 on the user interface board 202. In additional embodiments,
the thresholds and time intervals are programmed using the color
LCD 338 on the user interface board 202.
[0052] In an embodiment, additional monitoring is provided by the
environmental recorder 362 when the AACMM 100 is powered on. The
system monitors and records time stamped events such as, for
example, error codes returned by software, missed communications,
and supply voltage variations. Data from the environmental recorder
362 is then correlated with a software event monitoring system on
the base processor board 204 to determine if hardware error
conditions are related to environmental events.
[0053] In an embodiment, data from the environmental recorder 362
is used to create a history of the AACMM 100 from manufacture,
through storage, shipment and use. This historical data can be used
to diagnose issues reported by the user, which could include
accuracy variations, electronic errors, and/or software anomalies.
As an example, if a customer reported that the AACMM 100 suddenly
stopped providing accurate readings, the historical data could be
reviewed to see if the AACMM 100 was subjected to excessive shock
just prior to the change in performance. A report of performance
problems on a particular shift or date could be reviewed for
extremes in temperature or vibrations at that time. The historical
data can also be used to see if an AACMM 100 was abused during
transport either to a customer site or in route back to the factory
for service. AACMMs 100 showing similar performance symptoms can be
checked for common environmental factors in the history log.
[0054] Technical effects and benefits include the ability to more
easily perform troubleshooting and determination of root cause of
product failures, especially for events that occur during shipping,
that occur outside of normal operating hours, or that go
un-reported (e.g., dropping of the AACMM 100).
[0055] 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.
[0056] 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.
[0057] 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.
[0058] 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.
[0059] 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).
[0060] 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.
[0061] 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.
[0062] 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.
[0063] 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.
[0064] 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.
* * * * *