Abstract:
A portable articulated arm coordinate measurement machine can include a base, a manually positionable articulated arm portion having opposed first and second ends, the arm portion including a plurality of connected arm segments, an electronic circuit that receives the position signals from the transducers, a first inclinometer coupled to the base, wherein the inclinometer is configured to produce a first electrical signal responsive to an angle of tilt of the base and an electrical system configured to record a first reading of the first inclinometer and a second reading of the first inclinometer, wherein the first reading is in response to at least one of a first force applied to the base and a third force applied to the mounting structure, wherein the second reading is in response to at least one of a second force applied to the base and a fourth force applied to the mounting structure.

Description:
CROSS-REFERENCE TO RELATED APPLICATIONS 
     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 
     The present disclosure relates to a coordinate measuring machine, and more particularly to a portable articulated arm coordinate measuring machine having inclinometers configured to measure tilt of the portable articulated arm coordinate measuring machine. 
     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. 
     An example of a prior art portable articulated arm CMM is disclosed in commonly assigned U.S. Pat. No. 5,402,582 (&#39;582), which is incorporated herein by reference in its entirety. The &#39;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 (&#39;147), which is incorporated herein by reference in its entirety, discloses a similar articulated arm CMM. In the &#39;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). 
     In some cases, AACMMs are not securely attached to a mounting structure. In this case, the base of the articulated arm may move as the probe of the articulated arm is moved from position to position, thereby giving inaccurate readings. In some other cases, the mounting structure to which the arm is mounted may move, also resulting in erroneous readings. What is needed is a method detecting a lack of stability in the mounting of the AACMM or in the mounting structure to which the AACMM is attached. 
     SUMMARY OF THE INVENTION 
     Exemplary embodiments include a portable articulated arm coordinate measurement machine including a base, a manually positionable articulated arm portion having opposed first and second ends, the arm portion including a plurality of connected arm segments, each of the arm segments including at least one position transducer for producing a position signal, the arm portion being coupled to the base, wherein the base is attached to a mounting structure, an electronic circuit that receives the position signals from the transducers, a first inclinometer coupled to the base, wherein the inclinometer is configured to produce a first electrical signal responsive to an angle of tilt of the base and an electrical system configured to record a first reading of the first inclinometer and a second reading of the first inclinometer, wherein the first reading is in response to at least one of a first force applied to the base and a third force applied to the mounting structure and wherein the second reading is in response to at least one of a second force applied to the base and a fourth force applied to the mounting structure, wherein the electrical system is further configured to determine a parameter of base stability based on the difference between the first and second readings of the first inclinometer. 
     Additional exemplary embodiments include a method of evaluating the mounting stability of a portable articulated arm coordinate measuring machine, the including providing a base, providing 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, the arm portion being coupled to the base, wherein the base is attached to a mounting structure, providing an electronic circuit that receives the position signals from the transducers, providing a first inclinometer coupled to the base, wherein the first inclinometer is configured to produce a first electrical signal responsive to an angle of tilt of the base, providing an electrical system configured to record a first reading of the first inclinometer and a second reading of the first inclinometer, recording the first reading in response to at least one of a first force applied to the base and a third force applied to the mounting structure, recording the second reading in response to at least one of a second force applied to the base and a fourth force applied to the mounting structure, determining a parameter of base stability based on the difference between the first and second readings of the first inclinometer and recording the parameter of base stability. 
     Further exemplary embodiments include a computer program product for implementing a portable articulated arm coordinate measuring machine, 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 providing a base, providing 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, the arm portion being coupled to the base, wherein the base is attached to a mounting structure, providing an electronic circuit that receives the position signals from the transducers, providing a first inclinometer coupled to the base, wherein the inclinometer is configured to produce a first electrical signal responsive to an angle of tilt of the base, providing an electrical system configured to record a first reading of the first inclinometer and a second reading of the first inclinometer, recording the first reading in response to at least one of a first force applied to the base and a third force applied to the mounting structure, recording the second reading in response to at least one of a second force applied to the base and a fourth force applied to the mounting structure, determining a parameter of base stability based on the difference between the first and second readings of the first inclinometer and recording the parameter of base stability. 
    
    
     
       BRIEF DESCRIPTION OF THE DRAWINGS 
       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: 
         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; 
         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; 
         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; 
         FIG. 4  illustrates an internal view of an inclinometer disposed in the base of the AACMM; 
         FIG. 5  illustrates a screenshot of an exemplary graphical user interface in which an operator can detect tilt changes in the AACMM; 
         FIG. 6  is a flowchart of a method for detecting tilt in accordance with exemplary embodiments; 
         FIG. 7  is a flowchart of a method for evaluating the stability of an AACMM in accordance with exemplary embodiments; and 
         FIG. 8  is a flowchart of a method for evaluating the stability of an AACMM in accordance with exemplary embodiments. 
     
    
    
     DETAILED DESCRIPTION 
     Exemplary embodiments include systems and methods for measuring tilt data from portable articulated arm coordinate measuring machines and displaying the tilt data to alert an operator that the portable articulated arm coordinate measuring machine is undergoing a change in tilt. The operator can then be aware of the changes in tilt and take corrective action. In exemplary embodiments, the systems and methods described herein provide a diagnostic tool to determine if portable articulated arm coordinate measuring machines are properly mounted onto a mounting surface by detecting movement of the portable articulated arm coordinate measuring machines during measurement operations. Other exemplary embodiments provide methods of distinguishing between improper mounting of the base of the AACMM on the mounting structure and movement of the mounting structure itself. 
       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. 
     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° 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). 
     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. 
     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. 
     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 (&#39;582). 
     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. 
     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. 
     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 . 
       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. 
     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 . 
     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® communications protocol  236 . 
       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 . 
     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 . 
     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 . 
     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 &#39;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. 
     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 . 
     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 . 
     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. 
       FIG. 4  illustrates an internal view of an inclinometer  160  disposed in the base  116  of the AACMM  100 . The inclinometers can be a standard electrical component  366  for coupling to a circuit board that is coupled to the base  116 . Alternatively, the inclinometers may be located within other parts of the AACMM  100 . Two possible locations for the inclinometer are in the stationary portion of base  116  and in the swivel region immediately above the stationary portion of the base  116 . In the latter position, compensation of inclinometer offset and gain may be obtained by observing the readings of inclinometer  160  as the user rotates the AACMM  100  about the swivel axis. In general, it is important to measure the tilt along two perpendicular directions that are approximately perpendicular to the gravity vector. Such measurements can be made with a single inclinometer measuring tilt over two or more directions or with a plurality of one axis inclinometers. 
     The incorporation of one or more inclinometers (i.e., tilt sensors)  160  into the base  116  to detect variations in tilt of the base  116  relative to the mounting structure (shown here as mounting structure  401 ) during operation of the arm portion  104  enables a user to determine if the AACMM  100  is mounted properly on the mounting surface. The mounting surface  401  can further include an inclinometer  405 . In exemplary embodiments, the methods described herein can measure and compare tilt data from the inclinometers  160 ,  405  to determine a change in tilt of either the mounting structure  401  or the base  116  or both the mounting structure  401  and the base  116 . 
     The mounting structure may take a variety of forms. One common mounting structure for the AACMM  100  is an instrument stand or a heavy duty tripod. Another common mounting structure is a smooth surface such as a surface plate (for example, a smooth granite plate). 
     Minor tilt angle variations of the base  116  can lead to relatively significant errors in the calculation of the three-dimensional position of the probe tip  118 . Such tilt changes may result if the base  116  is not securely fastened to a mounting structure. In this situation, tilt may change because of variations in torque applied to the base  116  by a counterbalance spring internal to the AACMM  100  (not shown). Tilt may also change because of the variation in torque applied to the AACMM base  116  as the weights of the arm segments  106 ,  108  are extended through varying moment-arm distances during AACMM operation. 
     By monitoring the actual tilt of the base  116  during AACMM operation via one or more precision inclinometers  160 , it is possible to alert the operator to a problem with the mounting of the AACMM  100 . The operator may be alerted to a faulty mounting of AACMM  100  by data provided from the one or more inclinometers  160  to software run by an on-board or host computer. The data may alternatively be used to illuminate a warning light, activate a warning sound, or in some other way notify the user of a problem. The one or more inclinometers  160  may be incorporated into a self-diagnostic software routine accessed directly as part of a set-up evaluation application or automatically as part of a warning system. 
     In exemplary embodiments, the systems and methods described herein measure changes in tilt dynamically to determine whether one or more portions of the AACMM  100  are undergoing a change in tilt. This enables discovery of instability in attachment of the AACMM  100  to its mounting structure. For the diagnostic application, the collected tilt data is examined to measure changes in tilt and not the actual value of the tilt. In this instance, it is unimportant whether the base  116  of the AACMM  100  has some particular average tilt angle, such as five degrees. Rather, a change in tilt angle is enough to indicate that measurements of the AACMM  100  are susceptible to error. In this manner, the operator of the AACMM  100  may be alerted to take corrective action. 
       FIG. 5  illustrates a screenshot  500  of an exemplary graphical user interface (GUI)  505  by which an operator can detect tilt changes in the AACMM  100 . In exemplary embodiments, the GUI  505  can be disposed on the AACMM  100  or on an external computing device. The GUI  505  can display tilt data measured from the base processing system. As illustrated, a plot  510  of x-y tilt angles can be displayed on the GUI  505 . In a steady state in which there are no changes in tilt of the AACMM  100 , a steady plot is displayed as illustrated in  FIG. 5 . If the AACMM  100  is undergoing a change in tilt, the operator will be able to observe a change in the plot  510  and thus know that some change in tilt is occurring in the AACMM  100 . Near the center of the exemplary plot  510  is a circle. In exemplary embodiments, points inside the circle are considered acceptable changes in tilt while those outside the circle are considered excessive changes in tilt and significant enough to degrade measurement accuracy beyond a pre-set limit. In exemplary embodiments, the diameter of the circle can be any predetermined value representing the range of acceptable tilt. The scale of the diameter can be defined as functions of arm length, type or set-up. For example, the longer the arm, the stiffer the spring, and the more the stress placed on the mount as the arm is articulated. Thus factors such as arm length affect changes in tilt angle and may be incorporated into acceptable limits for changes in rate of tilt. For example, the error circle may be defined as a function of arm length. Furthermore, in exemplary embodiments, although the inclinometers  160  can indicate an absolute orientation of the base with respect to the gravity vector, as described herein, the inclinometers  160  are implemented to detect changes in tilt. As such, the plot  510  can be “zeroed” on the GUI  505  after the AACMM  100  is mounted. In this way, regardless of the initial tilt (e.g., five degrees as described hereinabove), the plot  510  can be zeroed at the initial tilt after mounting. 
       FIG. 6  is a flowchart of a method  600  for detecting tilt in accordance with exemplary embodiments illustrating that the AACMM  100  can continuously measure tilt at block  610  and display the measurements at block  620  continuously for so long as the operator elects to measure and display at block  630 . 
     In exemplary embodiments discussed hereinabove, inclinometers  160  mounted on the AACMM  100  may respond to tilting of the structure to which the AACMM  100  is mounted as well as to tilting of the AACMM  100  with respect to the mounting structure. In other exemplary embodiments, inclinometers are disposed on the mounting structure as well as in AACMM  100 . The tilt directions (x and y, for example) may be approximately aligned for the inclinometers disposed on the mounting structure and those inclinometers  160  in the AACMM  100 . Through the use of this combination of inclinometers, the user is provided with information to identify the source of the problem—an improperly mounted AACMM  100  or a wobbly mounting structure. The inclinometers  160  mounted within AACMM  100 , as well as the inclinometers mounted on external structures, can all be in communication with the base processing system or an external computing system. Changes in tilt due to the mounting of the AACMM  100  can be found by displaying the difference between the two sensor readings after both are zeroed. For example, the AACMM  100  can be mounted on a surface plate, and a witness sensor can be mounted on the surface plate and plugged into an I/O port on the AACMM  100 . Then both sensors are zeroed, and the GUI  505  indicates the difference in tilt between the two sensors. If this difference remains small, it indicates that the AACMM  100  is securely attached to the mounting structure. For example, if the operator walks around the surface plate while making measurements, the floor will deflect and both inclinometers will detect the deviation as common mode drift, thus no deviation on the display. If the operator bumps the arm, or the mounting is loose, an alarm could indicate problems. 
     In addition to indicating that the AACMM  100  is mounted securely to the surface plate, the information obtained from the inclinometers may also indicate that the overall structure to which the AACMM  100  is mounted is unstable. This is important in some situations. For example, if the object under test is placed on the surface plate, then no error results from a measurement made as the floor bends when the operator walks around the surface plate. On the other hand, if the arm is being extended to measure an object not attached to the surface plate, then the bending of the surface plate structure relative to the object under test may result in a measurement error. By displaying the change in the tilt angle of one set of inclinometers (the one or more inclinometers  160  or the inclinometers on the mounting plate), as well as the difference in tilt between the two sets of inclinometers, the type of problem—improperly mounted arm or wobbly structure—can be identified. In these embodiments, as in those embodiments discussed hereinabove, there is no need to have any knowledge of an external coordinate system. 
     As discussed hereinabove, there are two types of mounting problems that can occur: (1) the base  116  of AACMM  100  may not be securely attached to the mounting structure or (2) the mounting structure may move, either because the platform on which it rests deforms or because the mounting structure is not securely attached to the platform. By using a single inclinometer placed in the AACMM  100 , it is possible to determine that there is a problem in the stability of the AACMM  100  as it is mounted on the mounting structure. In general, it is not possible to determine with just this one inclinometer whether the problem in stability is the result of cause (1) or (2) or some combination of (1) and (2) as listed above. By adding a second inclinometer, it is possible to identify the likely cause of the problem. For example, if the inclinometer attached to the AACMM  100  shows a large variation in tilt angle but the mounting stand does not show a large variation, it is likely that the problem in stability is the result of an insecure mount of the base  116  to the mounting structure  401 . Software can notify the operator of the AACMM  100  of this problem so that the operator can take corrective action by more securely fastening the AACMM  100  to the mounting structure. On the other hand, if the inclinometer attached to the AACMM  100  and the inclinometer placed on the mounting structure show nearly identical variations in tilt angles, the problem is most likely the result of an unstable mount or platform. For example, the AACMM  100  might be placed on a mounting structure in the form of an instrument stand or tripod. This mounting structure could be placed on a concrete platform. If the platform is relatively thin (say eight inches thick or less), it may bend under the weight of the operator as the operator moves around the mounting structure. As explained hereinabove, this situation can create measurement errors if the object being measured is not located on the same surface as the AACMM  100 . With knowledge of this problem, the operator may take corrective action such as relocating the test station to a more rigid platform or moving the object under test onto the mounting structure. 
     To observe the variations in tilt angles that are indicative of these mounting problems, a force is applied to the base  116  and to the mounting structure. It is not generally possible to apply a force entirely to the base  116  or to the mounting structure, but it is possible to apply forces to both. For example, one convenient and effective way to apply forces or torques to the base  116  and, to some extent, to the mounting structure is to move the arm segments  106 ,  108 . As explained previously, this produces changes in a torque on the base  116  from the counter-balance spring within the AACMM  100 . Because the AACMM  110  is attached to the mounting structure, moving the arm segments  106 ,  108  also transmits torques, at least to some extent, to the mounting structure. 
     An alternative way to apply forces to the base  116  and, indirectly, to the mounting structure is to apply a controlled force to the base structure itself. To interpret the meaning of tilt produced by such a method is simplest if a controlled amount of force is applied. Such forces can be applied by a force gauge, for example. Such forces may also be applied to the mounting structure with a force gauge or by walking around the mounting structure. 
     In general terms, the procedure to be followed in establishing whether the AACMM  100  has a stable mount is shown in procedure  700  of  FIG. 7 . Step  710  is to apply a first force to the base  116  of the AACMM  100 . As described above, this force may be applied in several ways, but a particularly convenient way is to move the arm segments  106 ,  108  to a first position. The amount of force will vary according to the position of the arm segments for the reasons explained above. At step  720 , a first reading of the first inclinometer (the inclinometer attached to the AACMM  100 ) is recorded. At step  730 , a second force is applied. This second force may vary from the first force in either magnitude or direction or both. At step  740 , a second reading of the first inclinometer is recorded. The first and second readings are used to calculate a parameter of base stability. This parameter may be one or more numerical value(s) or a state description (such as stable or unstable). 
       FIG. 7  shows the essential elements of finding base stability. The measurement can be extended and enhanced in several ways. First, additional forces and inclinometer readings may be taken beyond the required two points. Second, software may direct the operator to move the arm in a particular way, which the arm may monitor to provide real time feedback to the operator on the next position to move the arm segments  106 ,  108 . Such a procedure can be quickly carried out (in perhaps one minute) after the AACMM  100  is first mounted on the mounting structure. Third, software may display test results, including a pass/fail indication. Besides using such a method as an initial check to make sure that mounting is good, it may also be repeated periodically, or it can be carried out in the background as the operator uses the arm to make routine measurements. 
     As inclinometer data is collected, it is also useful to collect encoder readings, as these can be used to estimate the forces or torques applied to the base  116 . A variety of criteria may be used to establish whether the inclinometer readings are acceptable in view of the applied forces or torques. The simplest criterion is a simple in or out criteria such as that described with respect to  FIG. 5 . More complex criteria could involve effects such as linearity or hysteresis. 
     Procedure  800  of  FIG. 8  shows the essential elements of evaluating mounting structure stability. In step  810 , a force (the third force) is applied to the mounting structure. This force may result from a movement of arm segments  106 ,  108  as explained above, or it may result from walking around the mounting structure or applying a controlled force to the mounting structure or the base  116 . In step  820 , a reading (the third reading) of the second inclinometer (the inclinometer attached to the mounting structure) is recorded. In step  830 , a fourth force is applied to the mounting structure. In step  840 , a fourth reading of the second inclinometer is recorded. From the collected data, a parameter of mounting structure stability is calculated. As in the case of procedure  700 , procedure  800  can be extended or enhanced by collecting multiple points and by using software to direct the operator in the application of forces. 
     During routine operation of the AACMM  100 , data is constantly being collected that can be evaluated to confirm the mounting stability of the AACMM  100 . A way to ensure that quality measurement data is produced by the AACMM  100  is to issue an alarm if the parameter of base stability or parameter of mounting structure stability indicates that the mounting stability is not good. Such an alarm could be visual, for example, a message on a display or a flashing light, or it might be audio, for example, a beep or a spoken message. It might also be an electrical signal sent to an electrical device to indicate that further action is needed. 
     Other types of visual displays besides that shown in  FIG. 5  may be used. For example, simple bars from 0 to 100% might be used to indicate the stability of base and mounting structure as indicated by the base stability parameter and the mounting structure stability parameter. Such a bar might also be used for a measure of the difference between these two parameters. Other graphs might show changes in stability as a function of time. 
     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. 
     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. 
     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. 
     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. 
     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&#39;s computer, partly on the user&#39;s computer, as a stand-alone software package, partly on the user&#39;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&#39;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). 
     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. 
     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. 
     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. 
     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. 
     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.