Coordinate positioning machine

A parametric model-based calibration method for articulated robots adjusts pivot points and target poses to reduce errors, enhancing accuracy and simplifying the calibration process.

JP7737531B2Active Publication Date: 2025-09-10RENISHAW PLC
View PDF 5 Cites 0 Cited by

Patent Information

Application Number
JP2024216357
Authority / Receiving Office
JP · JP
Patent Type
Patents
Current Assignee / Owner
Priority Date
2018-02-26
Filing Date
2024-12-11
Publication Date
2025-09-10
Estimated Expiration
2039-02-25

AI Technical Summary

Technical Problem

Calibrating articulated robots with multiple rotary joints is challenging due to accumulating position errors and uncertainties, and existing methods like laser tracking are expensive and time-consuming.

Method used

A method involving a parametric model to determine a new set of model parameters by controlling the machine to pivot and target poses, using a length measuring device to measure distance intervals, and adjusting pivot points for improved accuracy.

Benefits of technology

This method simplifies and enhances the calibration process, reducing errors and improving the accuracy of articulated robots without the high costs associated with laser tracking.

✦ Generated by Eureka AI based on patent content.

Smart Images

  • Figure 0007737531000001
    Figure 0007737531000001
  • Figure 0007737531000002
    Figure 0007737531000002
  • Figure 0007737531000003
    Figure 0007737531000003
Patent Text Reader

Abstract

To provide a method for updating a parametric model used for characterizing the geometry of a coordinate positioning machine.SOLUTION: A method includes the steps of: (a) attaching a length measurement device between a first point fixed to a movable section of a machine and a second point fixed to a fixed portion of the machine; (b) controlling the machine to multiple different postures by using the length measurement device attached between the first point and the second point in (a); (c) recording the distance between the first point and the second point from the length measurement device; (d) determining an error value on the basis of the distance recorded in (c) and distance anticipated for the pose from an existing model parameter set of a parametric model; (e) determining the entire error measurement value from the error value determined in (d); and (f) determining a new model parameter set of the parametric model.SELECTED DRAWING: Figure 10
Need to check novelty before this filing date? Find Prior Art

Description

[Technical Field]

[0001] The present invention relates to coordinate positioning machines, and in particular, although not exclusively, to the calibration of at least some aspects of articulated robots. [Background technology]

[0002] Articulated robots are commonly used in manufacturing applications such as assembly, welding, painting, pick and place of printed circuit boards, packaging and labelling, palletising, and product inspection. An articulated robot (or simply "robot") is shown schematically in Figure 1 of the accompanying drawings and comprises an articulated arm 1 extending from a fixed base 2 to a movable flange 3 which supports a tool 4. Typically, the flange 3 is provided with a coupling which allows the tool 4 to be conveniently interchangeable.

[0003] The arm 1 includes multiple links 5 connected by multiple rotary joints 6 that form a mechanical linkage. In the example shown in FIG. 1, there are seven rotary joints 6, alternating between rotary joints with axes of rotation perpendicular to the longitudinal axes of the connected links 5 and rotary joints with axes of rotation parallel to the longitudinal axes of the connected links 5. The most common configuration for industrial robots is to have six rotary joints, but robots may also have one or more linear joints. The use of multiple joints allows for flexibility in moving the tool 4 around the work area and manipulating it into a variety of different poses. The degree of flexibility can be achieved by increasing or decreasing the number of joints in the arm.

[0004] However, having additional joints (and therefore additional flexibility) has the disadvantage that each joint contributes to position errors or uncertainties, and because of the continuous nature of the linkage, these errors accumulate. It is important to be able to calibrate the robot to accurately account for these errors or uncertainties.

[0005] Calibrating any type of non-Cartesian machine is a significant challenge, and this is especially true for articulated arms such as those shown in FIG. 1, which have multiple rotary joints that are not fixed relative to each other and can combine in complex ways to position a tool in the work area. Calibrating a Cartesian machine is typically simpler because such machines have three clearly defined axes that are fixed relative to each other in an orthogonal arrangement, with each axis being independent of the other. In a non-Cartesian machine, the position and orientation of each axis depends on the position and orientation of each of the other axes, and as a result, calibration will be different for each different machine pose.

[0006] Calibration using laser trackers is possible, but is typically expensive and time-consuming to perform in the field. Many other types of calibration techniques share the goal of identifying a model of relevant machine parameters. In this model, multiple parameters are used to characterize the machine's geometry. Uncalibrated values ​​are initially assigned to these parameters as a starting point for the machine's geometry. During calibration, the machine is moved to a variety of different poses (based on current estimates of the machine parameters). For each pose, a calibrated measurement device is used to measure the actual pose, so that a measure of the error between the assumed machine pose and the actual machine pose can be determined.

[0007] The problem of calibrating a machine then becomes determining a set of values ​​for the various parameters of the machine that minimizes the error, using known numerical optimization or error minimization techniques. An example of such a technique is the well-known Levenberg-Marquardt algorithm, which uses the least-squares method to minimize the error knowing the derivative of the error according to each optimized parameter (see Non-Patent Documents 1 and 2). Other techniques, including those based on maximum likelihood, are also possible.

[0008] 1, these machine parameters may include various geometric parameters such as the length of each robot link 5, the rotational angular offset of each rotary joint 6 (a calibrated offset giving the angle from the encoder and the actual angle), and various mechanical parameters such as joint compliance and friction. When all these machine parameters are known and properly calibrated, it is possible to more reliably predict where the tool 6 will actually be when the various joints 6 are commanded by the robot controller 7 to move to their different respective positions. In other words, the machine parameters obtained from such a calibration provide a more accurate characterization of the machine geometry.

[0009] Previously, it has been considered to use ballbars, such as the QC20-W ballbar manufactured and sold by Renishaw plc, to form part of a robot calibration procedure. For example, such a procedure is described in "Absolute Robot Calibration Using a Single Nested Ballbar" (Precision Engineering, 2014). The article describes the use of two custom-made fixtures, each with three ballbar connection points. One nested ballbar is connected in turn between different pairs of connection points on the two fixtures, and one of the fixtures is commanded by a controller to move to each of 72 different poses relative to the other fixture. The measurements are used to determine machine parameters using error minimization techniques, thereby calibrating the machine.

[0010] Further background on robot calibration techniques can be found below. (a) Non-Patent Document 4 ("Calibration Method for Offline Generated Robot Programs" by Gustav), (b) Non-Patent Document 5 ("Calibrating Robot Reference Frames to Improve Robot Positioning Accuracy" by Frank Shaopeng Cheng), (c) Non-Patent Document 6 ("Etalonnage de Robots Industriels" by Gregori), (d) Non-patent document 7 ("Amelioration de la precision des robots industriels pour des applications d'usinage a grande vitesse" by Adel Olabi), (e) Non-Patent Document 8 ("Overview of Robot Calibration" by AY Elatta et al.), (f) Non-Patent Document 9 (KhaLil and E. Dombre, "Modeling, Identification and Control of Robots") [Prior art documents] [Patent documents]

[0011] [Patent Document 1] U.S. Patent No. 5,297,238 [Patent Document 2] U.S. Patent Application Publication No. 2004 / 0003647 [Patent Document 3] German Patent No. 3504464 [Non-patent literature]

[0012] [Non-Patent Document 1] Kenneth Levenberg, "A Method for the Solution of Certain Non-Linear Problems in Least Squares," Quarterly of Applied Mathematics, 1944, 2:164-168 [Non-patent document 2] "An Algorithm for Least-Squares Estimation of Nonlinear Parameters" by Donald Marquardt, 1963, SIAM Journal on AppLied Mathematics, pp. 11(2):431-441 [Non-patent document 3] "Absolute Robot Calibration with a Single Telescoping Ballbar" by Albert Nubiola, Precision Engineering, 2014 [Non-patent document 4] "Method for calibration of offline generated robot program" by Gustav Bergstrom, 2011, Master of Science Thesis, Chalmers University of Technology, Goteborg, Sweden, , Report No. EX099 / 2011 [Non-patent document 5] “Calibration of Robot Reference Frames for Enhanced Robot Positioning Accuracy” by Frank Shaopeng Cheng, a chapter in “Robot Manipulators” Edited by Marco Ceccarelli, ISBN 978-953-7619-06-0) [Non-patent document 6] "Etalonnage de Robots Industriels" by Gregori, July 2010, Projet de fin d'etudes, Ingenierie Industrielle, Universite du Quebec [Non-Patent Document 7] Adel Olabi, "Amelioration de la precision des robots industriels pour des applications d'usinage a grande vitesse," Arts et Metiers ParisTech, 2011, available for download at https: / / pastel.archives-ouvertes.fr / pastel-006490l9 [Non-patent document 8] AY Elatta et al., "An Overview of Robot Calibration," Information Technology Journal 3 (1): pp. 74-78, 2004 [Non-Patent Document 9] "Modeling, Identification and Control of Robots" by KhaL1l and E Dombre, ISBN 978-1-903996-66-9 Summary of the Invention [Problem to be solved by the invention]

[0013] It would be desirable to provide improved and / or simplified methods of calibrating a robot, or at least certain aspects of the robot's geometry.

[0014] U.S. Patent No. 5,629,999 describes a method for calibrating a tool control frame on a robot, in one embodiment of which a probe is attached to the robot's tool and sensed non-contact by a digitizing plate. U.S. Patent No. 5,629,999 discloses a method for correcting position errors in a machine's end effector using a ballbar as a measurement device. U.S. Patent No. 5,629,999 describes the use of three telescoping measuring rods in a tripod arrangement. [Means for solving the problem]

[0015] According to a first aspect of the present invention there is provided a method of calibrating a coordinate positioning machine, comprising the steps of: The geometry of the machine is characterized by a parametric model, and the calibration method is intended to determine a new set of model parameters that characterizes the geometry of the machine better than an existing set of model parameters, the method comprising: controlling the machine to a pivot pose where a target point associated with a moving part of the machine and a pivot point associated with a fixed part of the machine are separated from each other by a known distance interval; determining an error value for the pose based on the known distance interval and an expected distance interval for the pose from existing model parameters; Controlling the machine to multiple different target poses; A method is provided that includes, for each target pose, using a length measuring device to measure a distance interval between the target point and a pivot point, and determining an error value for the pose based on the measured distance interval and an expected distance interval for that pose from existing model parameters and from the pivot pose, determining an overall error magnitude from the error value, and determining a new set of parameters that will result in a lower overall error magnitude than the existing set of parameters.

[0016] The method may include determining a new set of error values ​​based on the new set of parameters, and determining a further new set of parameters from the error values, which may be repeated as necessary, for example, until the overall error measure falls below a predetermined threshold.

[0017] The known distance interval may be a value of zero or a zero capability vector. In other words, the target point and the pivot point may substantially coincide at the pivot pose.

[0018] The method may include determining new values ​​for only a subset of the model parameters, the remainder of which may be assumed to be correct for the purposes of the calibration method, or may remain unchanged, at least for the duration of the method, with only the subset of parameters being varied, to determine a new set of model parameters that better characterizes the machine's geometry than the existing set of model parameters.

[0019] A subset of the model parameters may relate to a tool center point of the machine, for example the location of the tool center point.

[0020] The measured distance may be a one-dimensional distance, or in other words a distance with one degree of freedom.

[0021] The distance between the target point and the pivot point may be measured by a length measuring device.

[0022] The length measuring device may be a ballbar.

[0023] The target pose may be performed before or after the pivot pose, but preferably the pivot pose is performed before the target pose because the pivot position is at least partially set by the step of controlling the machine to the pivot pose.

[0024] The known separation distance between the pivot point and the target point may be achieved using an adjustable pivot. The adjustable pivot allows some movement of the pivot point as the target point is moved by the machine in the vicinity of the pivot point, with the pivot point coupled to the target point with a known relationship therebetween, thereby providing a known separation distance. The pivot may be locked in position for subsequent target pose measurements. The adjustable pivot may allow for at least lateral translational movement. The adjustable pivot may allow for rotation of the pivot.

[0025] The measured distance interval may instead be a two-degree-of-freedom distance interval. The measured distance interval may be a three-degree-of-freedom distance interval, for example, measured by a tripod. The measured distance interval may instead be a four-degree-of-freedom distance interval. The measured distance interval may instead be a five-degree-of-freedom distance interval. The measured distance interval may instead be a six-degree-of-freedom distance interval, for example, measured by a hexapod. The measured distance interval may also be considered as a one- to six-dimensional vector. Where it is stated that a target point is associated with a moving part of a machine and a pivot point is associated with a fixed part of the machine, these may instead be considered as the target part and the pivot part, respectively, so that a rotational relationship (distance interval) between them can be defined, and not just a translational relationship (distance interval).

[0026] It will be appreciated that for an N-dimensional distance interval, each "error value" above actually includes N corresponding individual error values. Thus, the "error values" determined for the pivot pose and each target pose may be considered and / or alternatively referred to as "errors" or "error measurements," each having one or more "error values."

[0027] The machine may be a robot. The machine may be an articulated robot. The machine may be a six-axis articulated industrial robot. The robot may be considered a coordinate positioning machine with three or more axes, whether rotary or linear, or a combination thereof, serial or parallel, or a combination thereof.

[0028] According to a second aspect of the present invention there is provided an adapter adapted to mount on or around an element of a coordinate positioning machine, the element having a pivot point, wherein the adapter, when mounted on and / or around the element, comprises an at least part-spherical support surface having a centre point substantially coincident with the pivot point.

[0029] The element may be a tool. The element may be a tool at the end of a machine's travel. The element may be a tool carried and / or used and / or manipulated by a machine.

[0030] The pivot point may be the tool center point of the tool.

[0031] The adapter may be adapted to receive a number of different inserts in a generic manner, with the inserts adapted to receive different respective elements or element types, allowing the adapter to be used with a variety of different elements or element types.

[0032] Each insert may be internally molded to match the contours of its corresponding element.

[0033] Each insert may be adapted to take into account the location of the pivot point of its corresponding element to ensure that, when attached to the element and / or its periphery, the pivot point substantially coincides with the center of the at least partial spherical surface of the adapter.

[0034] At least some of the inserts may be 3D printed based on a CAD model of the element.

[0035] Inserts may be provided for a number of items selected from welding tools, machining tools such as drill bits, and calibration shafts.

[0036] According to another aspect of the present invention there is provided a kit (e.g. kit of parts) comprising a measuring device together with the adapter of the second aspect of the invention, the measuring device comprising a coupling element adapted to couple to and support against a support surface of the adapter such that a measurement point of the measuring device substantially coincides with a centre point of the adapter and such that the coupling element remains in place as it moves over at least a predetermined or working portion of the support surface.

[0037] The measuring device may be adapted to provide a measurement of the distance separation between two measurement points of the measuring device.

[0038] The measuring device may be a length measuring device.

[0039] The measurement device may be a ballbar.

[0040] The coupling element may be in the form of a cup.

[0041] The measurement point may be the center of at least a partial sphere of the cup, or at least a partial sphere passing through the support points of the cup (eg, if the cup includes three contact points).

[0042] The cup may be adapted to mate with the at least partial spherical surface of the adapter.

[0043] The measuring device may have a ball at one end and a cup at the other end.

[0044] The measuring device may include a cup on each end.

[0045] The coupling may be kinematic or at least quasi-kinematic.

[0046] The coupling element may be quasi-kinematic, with the contact surface covering a substantial portion of the support surface (e.g., a portion of a cone or sphere), which helps the coupling element straddle a groove or hole in the ball adapter.

[0047] The kit may comprise the insert described above.

[0048] According to another aspect of the present invention, there is provided a method of calibrating a coordinate positioning machine, the method comprising taking a kit according to the previous aspect, attaching an adapter to and / or around the element while the element is still on the coordinate positioning machine, coupling a measuring device to the adapter, coupling the measuring device to the adapter such that a coupling element of the measuring device bears against an at least part-spherical support surface of the adapter, and performing the measurement operation such that during the measurement operation a measurement point of the measuring device coincides with a centre point of the adapter and remains so when the coupling element of the measuring device moves over at least a predetermined or working portion of the at least part-spherical support surface of the adapter.

[0049] The method may include performing a first operation using the tool before attaching the adapter for the measurement operation without removing the tool between the first operation and attaching the adapter for the measurement operation.

[0050] The method may include performing further measurement operations on the tool, such as determining the length of the tool using a contact or non-contact tool setter, before attaching the adapter or after removing the adapter, and without removing the tool.

[0051] The meaning of the term "substantially match" will be understood by those skilled in the art as depending on the context in which the invention is used and the expected and / or required accuracy. The term may be interpreted to mean "match within a required tolerance" or "match within a specified tolerance." For example, "substantially match" may mean within 5 mm, or more preferably within 2 mm, or more preferably within 1 mm, or more preferably within 0.5 mm, or more preferably within 0.1 mm in some applications.

[0052] According to an embodiment of a second aspect of the present invention, there is provided an adapter adapted to fit around a tool, a tool of or for a coordinate positioning machine, having a predetermined tool center point, the adapter including an at least partially spherical support surface having a center that, when mounted around the tool, coincides with or is a known offset from the tool center point of the tool. The tool center point of the tool is inherently defined by or in response to the form or shape of the tool. A measuring device for use with such an adapter is also provided, the measuring device having a coupling element adapted to couple to and support against the support surface of the adapter such that the measuring point of the measuring device coincides with or is a known offset from the center of the adapter and remains in place when the coupling element moves over at least a predetermined or active portion of the support surface. The measuring device may be a length measuring device. The measuring device may be adapted to provide a distance measurement between two measurement points of the device. The measuring device may be a ball bar. The measurement point may be the center of a ball at the end of the measuring device or a ball to which the measuring device couples. The coupling element may be in the form of a cup. The measuring device may have a ball at one end and a cup at the other end, or a cup at both ends, the cup adapted to mate with the at least partial spherical surface of the adapter. The coupling may be kinematic or at least quasi-kinematic.

[0053] According to a third aspect of the present invention, there is provided an extension portion for a ballbar configured to provide an additional range of travel to the ballbar. The ballbar of this aspect may alternatively be another type of length measurement device, providing an overtravel extension feature, for example, as part of a modular system. The extension portion may be adapted to extend the range of travel but not the measurement range. The extension portion may be adapted to provide an additional range of travel on both sides of the measurement range. The extension portion may be adapted to provide an additional range of travel on only one side of the measurement range. The extension portion may include a ball that functions as one of the ballbar's balls. A modular system may be provided comprising a measurement portion, a standard end portion, and an extension portion, where the measurement portion is connectable to the standard end portion to form a first type of ballbar and is separately connectable to the extension portion to form a second type of ballbar.

[0054] According to a fourth aspect of the present invention, there is provided a computer program which, when executed by a computer or machine controller, causes the computer or machine controller to perform a method according to the first aspect of the present invention or a method related to the second aspect. The program may be carried on a carrier medium. The carrier medium may be a storage medium. The carrier medium may be a transmission medium.

[0055] According to a fifth aspect of the present invention there is provided a computer readable medium having stored thereon computer program instructions for controlling a computer or machine controller to carry out a method according to the first aspect of the present invention or a method according to a method relating to the second aspect. [Brief explanation of the drawings]

[0056] Reference will now be made, by way of example, to the accompanying drawings in which: [Figure 1] FIG. 1 is a schematic diagram of the articulated robot described above. [Figure 2]FIG. 2 shows a schematic of a robot moving an attached tool so that the tool's center point (TCP) remains in the same position. [Figure 3] Figure 3 shows a previously considered method for identifying TCP. [Figure 4] Figure 4 shows a previously considered method for identifying TCP. [Figure 5] FIG. 5 shows the steps of a method according to a first embodiment of the first aspect of the present invention. [Figure 6] FIG. 6 shows the steps of a method according to a first embodiment of the first aspect of the present invention. [Figure 7] FIG. 7 shows the steps of a method according to a first embodiment of the first aspect of the present invention. [Figure 8] FIG. 8 shows the steps of a method according to a first embodiment of the first aspect of the present invention. [Figure 9] FIG. 9 shows the steps of a method according to a first embodiment of the first aspect of the present invention. [Figure 10] FIG. 10 is a schematic flow diagram of the method illustrated in FIGS. [Figure 11] FIG. 11 is a schematic diagram showing how incorrect TCP positioning affects measurements from the method. [Figure 12] FIG. 12 is similar to FIG. 2 but shows a welding tool with the tool center point offset from the tool itself. [Figure 13] FIG. 13 differs from FIG. 9 in that a fixed pivot is shown rather than an adjustable pivot. [Figure 14] FIG. 14 is a diagram used to explain possible disadvantages of the method of the first embodiment of the first aspect of the present invention. [Figure 15] FIG. 15 is a diagram used to explain possible disadvantages of the method of the first embodiment of the first aspect of the present invention. [Figure 16]FIG. 16 is a diagram illustrating a ball adapter concept according to an embodiment of the second aspect of the present invention. [Figure 17] FIG. 17 is a diagram illustrating steps of a method according to a second embodiment of the first aspect of the invention using a ball adapter according to an embodiment of the second aspect of the invention. [Figure 18] FIG. 18 is a diagram illustrating steps of a method according to a second embodiment of the first aspect of the invention using a ball adapter according to an embodiment of the second aspect of the invention. [Figure 19] FIG. 19 is a diagram illustrating steps of a method according to a second embodiment of the first aspect of the invention using a ball adapter according to an embodiment of the second aspect of the invention. [Figure 20] FIG. 20 illustrates steps of a method according to a second embodiment of the first aspect of the invention using a ball adapter according to an embodiment of the second aspect of the invention. [Figure 21] FIG. 21 illustrates steps of a method according to a second embodiment of the first aspect of the invention using a ball adapter according to an embodiment of the second aspect of the invention. [Figure 22A] Figure 22A shows a ballbar with one ball at each end. [Figure 22B] FIG. 22B shows a ballbar having a ball at one end and a cup at the other, of the type used in the second embodiment of the first aspect of the invention. [Figure 23] FIG. 23 illustrates steps of a method according to a second embodiment of the first aspect of the invention using a ball adapter according to an embodiment of the second aspect of the invention. [Figure 24] FIG. 24 illustrates steps of a method according to a second embodiment of the first aspect of the invention using a ball adapter according to an embodiment of the second aspect of the invention. [Figure 25]FIG. 25 illustrates steps of a method according to a second embodiment of the first aspect of the invention using a ball adapter according to an embodiment of the second aspect of the invention. [Figure 26] FIG. 26 illustrates steps of a method according to a second embodiment of the first aspect of the invention using a ball adapter according to an embodiment of the second aspect of the invention. [Figure 27] FIG. 27 shows a modular ball adapter system in which a universal ball adapter is adapted to accept a variety of inserts for different tools. [Figure 28] FIG. 28 shows a modular ball adapter system in which a universal ball adapter is adapted to accept a variety of inserts for different tools. [Figure 29] FIG. 29 shows a modular ball adapter system in which a universal ball adapter is adapted to accept a variety of inserts for different tools. [Figure 30] FIG. 30 shows a modular ball adapter system in which a universal ball adapter is adapted to accept a variety of inserts for different tools. [Figure 31] FIG. 31 shows a first embodiment of the third aspect of the invention in which an extension is used to provide an additional range of motion for the ballbar. [Figure 32] FIG. 32 shows a first embodiment of the third aspect of the invention in which an extension is used to provide an additional range of motion for the ballbar. [Figure 33] FIG. 33 shows a first embodiment of the third aspect of the invention in which an extension is used to provide an additional range of motion for the ballbar. [Figure 34] FIG. 34 shows a first embodiment of the third aspect of the invention in which an extension is used to provide an additional range of motion for the ballbar. [Figure 35]FIG. 35 shows a first embodiment of the third aspect of the invention in which an extension is used to provide an additional range of motion for the ballbar. [Figure 36] FIG. 36 shows a first embodiment of the third aspect of the invention in which an extension is used to provide an additional range of motion for the ballbar. [Figure 37] Figure 37 shows the modular ballbar configuration. [Figure 38] Figure 38 shows the modular ballbar configuration. [Figure 39] Figure 39 shows the modular ballbar configuration. [Figure 40] FIG. 40 illustrates schematically the use of an extension embodying a third aspect of the invention in the modular ballbar arrangement of FIGS. 37-39. [Figure 41] FIG. 41 illustrates schematically the use of an extension embodying a third aspect of the invention in the modular ballbar arrangement of FIGS. 37-39. [Figure 42] FIG. 42 illustrates schematically the use of an extension embodying a third aspect of the invention in the modular ballbar arrangement of FIGS. 37-39. [Figure 43] FIG. 43 illustrates schematically the use of an extension embodying a third aspect of the invention in the modular ballbar arrangement of FIGS. 37-39. [Figure 44] FIG. 44 is a perspective view showing in more detail the main parts of the extension part of FIGS. [Figure 45] FIG. 45 is a perspective view showing in more detail the main parts of the extension portion of FIGS. [Figure 46] FIG. 46 is a perspective view showing in more detail the main parts of the extension portion of FIGS. [Figure 47] FIG. 47 is a perspective view showing in more detail the main parts of the extension portion of FIGS. [Figure 48] FIG. 48 is a perspective view showing in more detail the main parts of the extension portion of FIGS. [Figure 49]FIG. 49 is a perspective view showing in more detail the main parts of the extension portion of FIGS. [Figure 50] FIG. 50 is a perspective view showing in more detail the main parts of the extension portion of FIGS. [Figure 51] FIG. 51 is a view showing an embodiment in which the extension piece of the third aspect is used with the ball adapter of the second aspect. [Figure 52] Figure 52 provides a schematic illustration of the concept underlying an embodiment of the first aspect of the present invention. [Figure 53] Figure 53 provides a schematic illustration of the concept underlying an embodiment of the first aspect of the present invention. [Figure 54] Figure 54 provides a schematic illustration of the concept underlying an embodiment of the first aspect of the present invention. [Figure 55A] FIG. 55A shows the ball adapter concept of the second embodiment of the present invention applied to a drill bit. [Figure 55B] FIG. 55B illustrates the ball adapter concept of the second embodiment of the present invention applied to a drill bit. [Figure 56A] FIG. 56A illustrates the ball adapter concept of the second embodiment of the present invention applied to a calibration shaft. [Figure 56B] FIG. 56B illustrates the ball adapter concept of the second embodiment of the present invention applied to a calibration shaft. [Figure 57A] FIG. 57A illustrates how the ball adapter concept allows multiple calibration or measurement operations to be performed without the need to remove the tool. [Figure 57B] FIG. 57B illustrates how the ball adapter concept allows multiple calibration or measurement operations to be performed without the need to remove the tool. [Figure 58] FIG. 58 shows an embodiment of a ball adapter for grip attachment to a tool. [Figure 59] FIG. 59 shows an embodiment of a ball adapter for threaded attachment to a tool. DETAILED DESCRIPTION OF THE INVENTION

[0057] When programming a robot to move a tool 4 around a work area, a key piece of information is the location of the tool center point (TCP) relative to the part of the robot to which the tool 4 is attached (e.g., flange 3). Setting the coordinates of the robot's tool center point is a critical step in installing the robot and is performed for each robot. The tool center point is the point of reference from which all robot positioning is defined and constitutes the origin of the tool coordinate system. The tool center point may correspond, for example, to the tip of an arc welding gun, the center of a spot welding gun, or the end of a grading tool. Thus, the location of the tool center point will vary depending on the application involved. During operation, it is the tool center point that is jogged or moved to the desired target position at the desired tool orientation.

[0058] Figure 2 shows a schematic of a robot being trained to move a tool 4 so that the tool's center point 8 remains in the same location. This is a test typically performed to ensure the tool's center point has been correctly identified. Such a test is known as a "tool orientation test." The purpose is to evaluate the robot's accuracy by measuring its ability to rotate around the tool's center point without moving. The result of the test is the spread or deviation of the distance measured by the ballbar. On most robots, it is not possible to mount the ballbar target ball at the exact location of the robot's work tool. Therefore, the tool orientation test measures the distance between the target ball and the work tool, rather than the actual robot error. The actual position of the target ball on the robot must then be measured and input into the robot's controller.

[0059] However, rather than simply verifying the position of the TCP, as in a tool orientation test, the purpose of embodiments of the present invention is to measure (determine) its position. Currently, the most commonly used method is the pin-to-pin method, in which an operator visually aligns two pins in different orientations (one fixed and one movable by the operator to reference the TCP). While this is a convenient method, it is highly operator-dependent and relatively inaccurate. It also requires the removal of the tool 4 and replacement with a pin.

[0060] Before describing how embodiments of the present invention can be used to identify a TCP, some further background is provided with reference to FIGS. 3 and 4 to put embodiments of the present invention into context.

[0061] When measuring the Tool Center Point (TCP) of a robot using a distance measuring device (such as a ballbar), the principle is to measure the distance in different directions of the tool and then extrapolate the TCP coordinates from these measurements.

[0062] One problem is finding the direction in which to consider the measured distances. There are two main approaches to this: (a) consider that all measurements are taken with the measuring device pointing in the same direction, and (b) take measurements in different directions and use that information to determine the location of the pivot center.

[0063] The first approach is shown in Figure 3. In this method, the ballbar 10 is mounted between a first ballbar mount 12 (called the "pivot" of the ballbar 10) fixed to the machine base and a second ballbar mount 14 attached to the robot itself. Thus, in this example, the tool 4 of Figures 1 and 2 is replaced by a ballbar mount 14, which has a magnetic cup in which the ball at one end of the ballbar 10 is kinematically or pseudo-kinematically located. Such kinematic magnetic cups are a standard and well-known accessory to ballbar systems and allow the ball to seat in a known and repeatable position within the cup, so that the center of the ball does not move as the ballbar 10 rotates around the mount. When positioning one body relative to another, kinematic design considerations are met by constraining the degrees of freedom of the body's motion using a minimal number of constraints, particularly by avoiding over-constraints. Over-constraining allows multiple contact points between two bodies, allowing one body to come to rest in multiple positions relative to the other. Therefore, the body's position is not repeatable (i.e., unpredictable or ill-defined) because it is unknown at which of several positions the body will come to rest. Since surface contact theoretically has an infinite number of point contacts, an ideal kinematic coupling would consist of only point contacts. However, in practice, a quasi-kinematic coupling is sufficient when there is contact over a small surface area, which also helps reduce wear and loads on the supporting surfaces.

[0064] 3 is assumed to be configured so that the ball of ballbar 10 seats in the mount's kinematic cup with its center coincident with the TCP of tool 4; however, embodiments of the second aspect of the invention (described further below) provide a solution that avoids the need for such an assumption. Alternatively, to account for the offset between the tool's TCP and the ball center location, a suitable offset adjustment may be made in the following manner.

[0065] When the robot is commanded to rotate around the same TCP, assuming the controller's initial TCP coordinates are not too far from reality, the TCP remains nearly fixed. All measurements from the ballbar 10 are then assumed to be performed along the same direction (any deviation in direction will result in an acceptable second-order error in the calculation). Under these conditions, errors in the TCP coordinates can be identified in the controller, and the TCP coordinates can be corrected using error minimization techniques as described above. Ideally, this requires a minimum of four measurements, although five or six measurements are better.

[0066] This method requires the following information as input to the error minimization algorithm: (a) the direction D along which the measurements are taken, (b) the coordinates of the TCP in the controller, and (c) the coordinates of the robot for each measurement.

[0067] In the above, the robot coordinates are Cartesian coordinates determined from the controller, based on the assumption that the robot is already perfectly calibrated (or ideal). In other words, the errors of the robot itself are ignored. Rather, this procedure is intended to identify errors in the TCP coordinates, which are coordinates relative to the robot. In the above procedure, directional input can be problematic, as there is a risk of confusion in the frame used to represent this direction.

[0068] The second approach is illustrated in Figure 4. The location of the center of rotation (pivot point) of the pivot mount 12 is unknown and must be identified in conjunction with the TCP coordinates. In the second approach, this is achieved by taking measurements with the ballbar 10 pointing in various directions and the pivot point at the intersection of those various directions. The robot is commanded to rotate about the TCP for each of these directions, just as in the first approach.

[0069] In the second approach, the TCP coordinates and pivot center location can be identified together. This requires a minimum of six measurements, although nine to twelve measurements are usually more suitable. This method can also be made more sophisticated, as increasing the number of measurements allows more parameters of the robot to be identified.

[0070] The second approach only requires that the robot position and TCP coordinates be input to the controller for each measurement. The complexity of this approach arises from the large number of measurements required and the need to drive the robot around the surface of the sphere.

[0071] A technique according to a first embodiment of the first aspect of the invention will now be described with reference to Figures 5 to 11, with Figure 10 providing a schematic flow diagram of the procedure. The concept underlying this embodiment can be summarized as using the robot coordinates at the location of the pivot as input data for identifying the TCP using an error minimization method, which is not done in the previously considered techniques.

[0072] As shown in Figure 5, to begin the procedure, in step S1, a target mount 14 (for supporting the target ball of ballbar 10) is attached to the flange of robot arm 1, and in step S2, an adjustable pivot mount 13 (for supporting the pivot ball of ballbar 10) is positioned on base 2 in front of the robot. The adjustable pivot mount 13 is similar to the fixed pivot mount 12 of Figures 3 and 4, except that the magnetic cup can be adjusted relative to fixed base 2 (a universal pivot could be used for pivot mount 13, but it need only be adapted to provide lateral or translational movement). In step S3, the desired TCP and null base frame for the robot are selected (from a variety of TCP and base frame selections for different tools and applications). In step S4, a new, empty program is created in the robot controller to record the robot's coordinates (points) during the remainder of the procedure.

[0073] As shown in FIG. 6 , in step S5, the robot is manually driven to the adjustable pivot mount 13. Before step S5, the adjustable pivot mount 13 remains unlocked, and the magnetic cup is loosely supported with sufficient holding force to support the cup against the action of gravity, so that it can still be rotated by a relatively insignificant bias force. The magnetic cup contains a dummy ball 15 that matches or mimics the pivot ball of the ballbar 10 and is, in particular, the same size as the pivot ball to allow the target mount 14 to seat thereon. Because the pivot mount 13 is still unlocked, the target mount 14 does not need to be precisely controlled to a specific position, but may be driven roughly within the adjustable pivot mount 13 and moved downward toward the pivot ball. Even with slight misalignment, the nature of the kinematic cup of the target mount 14 acting on the spherical dummy ball 15 naturally results in them being coupled in a known relative position, with play in the pivot mount 13 allowing the necessary movement to occur. In addition to being freely pivotable, the pivot mount 13 also has play in the Z direction to allow for further flexibility. The pivot mount 13 may also be non-adjustable, but this requires additional precision in coupling the target mount 14 to the pivot mount 13 via the dummy ball 15.

[0074] With the target mount 14 coupled to the pivot mount 13 via the dummy ball 15, the adjustable pivot is locked to prevent further movement for the remainder of the method. At this point in the procedure, the exact location of the dummy ball 15 (and thus the pivot ball when the ballbar 10 is positioned) is not important because the robot coordinates at this location will be recorded in step S6 of the robot program. Thus, in step S6, a first point is recorded in the robot program at the current location, i.e., the location where the robot pivots. This records the robot coordinates, or various encoder readings, to allow the robot coordinates to be determined based on the machine's model parameters. At this location, no ballbar is present, so a zero value for the ballbar measurement is also recorded (at least conceptually). At this point, the ballbar is not present, and therefore no separate measurement is taken, but if the pivot point and target point coincide, this effectively provides a zero-length ballbar measurement (i.e., zero in three orthogonal directions, which provide three pieces of information for the error minimization method, as explained in more detail below). The coordinates of a robot can be thought of as a set of information that completely characterizes the machine's pose, e.g., the set of joint angles or readings from the various joint encoders.

[0075] As shown in Figure 7, in step S7, the target mount 14 is moved away from the pivot mount 13 until the separation is sufficient to allow the installation of the ballbar 10. With the ballbar 10 installed between the target mount 14 and the pivot mount 13, as shown in Figure 8, in step S8, a ballbar measurement (of the separation between the two balls at either end of the ballbar 10) is taken and recorded, and a new point is inserted into the robot program. The point inserted into the robot program has the robot coordinates at that location.

[0076] In step S9, the robot is commanded to rotate the target mount 14, for example, 60° to 90°, around the TCP selected in step S3, and in step S10, another point is inserted into the robot program with the robot in its new position. During the rotation, the target mount 14 may shift position (due to errors in the selected TCP value or the robot itself). If the deviation drives the ballbar 10 outside its measurement range, the user can translate the robot to adjust the distance and bring the ballbar 10 back into the measurement range before the measurement is taken and the robot coordinates are recorded.

[0077] The method returns to step S9 to rotate the target mount 14 until enough rotations have been made (around at least the four cardinal directions) and repeat the process of adding points to the robot program. This is shown in Figure 9. This procedure requires a minimum of four measurements, although five or six measurements are usually suitable. The more measurements, the more accurate the TCP coordinates will be, but the longer the procedure. Measurements can be made with the ballbar 10 pointing in any direction (not necessarily a fixed direction), but one approach is to command the robot to rotate around the TCP selected in step S3.

[0078] When sufficient rotation has occurred, the method continues to step S11, where the robot program is uploaded to the controller (or some other processing unit) for processing. In step S12, the coordinates of the TCP selected in step S3 are input, or read from the robot program if already recorded there. In step S13, the error minimization method described above is performed to calculate the actual TCP coordinates, which is described in more detail below with reference to FIG. 11. As part of the process, the coordinates of the pivot center are also determined, but since the pivot mount 13 is only temporarily positioned, this information is not very important. In step S14, the TCP coordinates are updated in the controller with the updated values.

[0079] Figure 11 is a schematic diagram showing the effect of an incorrect TCP position on measurements from the ballbar 10 during the above procedure, and how these are used to determine the correct TCP position. The target ball 17 of the (robot-driven) ballbar 10 is on the left, the pivot ball 15 is on the right, and the ballbar 10 is in between (the ballbar 10 is drawn as a solid line in Figure 11 for simplicity). The programmed TCP (i.e., the TCP before the TCP identification procedure is performed) is shown as a black dot on the target ball, with the physical center of the target ball (i.e., the actual TCP) shown as a white dot on the target ball.

[0080] In the example shown in Figure 11, the robot is driven around the programmed TCP, attempting to maintain a fixed position for the TCP (this is not required, but makes this explanation easier to understand). When the robot is in the position shown in the top diagram, the ballbar 10 generates a measurement of L1. The robot is then rotated to the position shown in the middle diagram. Because the programmed and actual TCP do not coincide, the new measurement from the ballbar 10, L2, is actually smaller than L1. Similarly, when the robot is rotated to the position shown in the bottom diagram, the new measurement from the ballbar 10, L3, is actually larger than both L1 and L2. If the programmed TCP were already correct, we would instead expect all three measurements, L1, L2, and L3, to be the same. Instead, there is an error (the difference between the predicted and actual ballbar measurements) associated with each of these positions. Therefore, a new value for the TCP position is determined that tends to minimize these errors, which is the error minimization method described above.

[0081] The approach described above with reference to Figures 5 through 11 only requires recording the robot's position (i.e., robot coordinates) at the pivot point, as well as the robot's position (i.e., robot coordinates) for each ballbar measurement. This is technically advantageous compared to the first and second approaches described with reference to Figures 3 and 4, respectively, because it combines the advantages of the first approach (fewer measurements) with the second approach (robustness and ease of configuration without the need to input the ballbar orientation). This method is very easy to implement and teach, providing a quick and easy setup procedure for ballbar testing on a robot. It may also be used to update or verify the TCP coordinates in the controller.

[0082] As noted above, the concept underlying the first aspect of the present invention can be summarized as using the robot coordinates at the pivot location as input to the mathematical method (e.g., least-squares or maximum likelihood) used to determine the TCP. This is not done in the approaches previously considered. When the robot is at the pivot location, of course, there are obviously no measurements from the ballbar to relate to the robot coordinates at that location, since the ballbar is not in place. However, at the pivot point, there is effectively a zero-length measurement from the ballbar to relate to the robot's coordinates. Additionally, this zero-length measurement can be considered a valid measurement along three orthogonal axes, rather than just one axis (i.e., along the ballbar's longitudinal axis), which is the case for actual ballbar measurements. This conceptual zero-length ballbar measurement is therefore particularly beneficial in error minimization routines by providing at least three additional constraints.

[0083] While the method is described above using a single ballbar orientation with a minimum of four TCP orientations (i.e., four different ballbar orientations around the TCP), using five makes implementation and teaching more complete and easier. However, it should be noted that while using fewer TCP orientations is practical, problematic situations may arise that are avoided when using at least four TCP orientations (e.g., the ballbar 10 remains in a plane if extraneous rotations are not performed). Also, note that the ballbar 10 itself is preferably already calibrated; if not, at least one additional measurement is required in the method.

[0084] It is also worth considering the net error due to the robot itself. The above procedure assumes that the robot is ideal (i.e., precisely tuned), when in fact this is not the case. In the rare event that the actual robot error in all four or five measurements compensates for the deviation due to the TCP error, the method may conclude that the TCP is correct. In fact, the method can be thought of as identifying the TCP seen by the ballbar in the particular configuration of the test, rather than the actual TCP. The identified TCP tends to reduce the local error of the robot. This is true for any method, as any calibration strategy must address the dissociation of all parameters. The net error arising from the robot is of primary concern for any whole-machine calibration strategy.

[0085] It will also be appreciated that the above techniques are not limited to the specific task of identifying a robot's tool center point, and in fact are applicable to identifying robot geometry generally.

[0086] The concept can be summarized as using the robot coordinates at the pivot location as data for not only TCP identification but, more generally, machine geometry identification (i.e., not limited to robots, e.g., 5-axis coordinate measuring machines), robot geometry identification. This is useful for calibration using sensors that measure ball-to-ball distance (e.g., ballbars, tripods, hexapods, etc.). This identifies the location (wherever it is) of the ball attached to the robot flange. When this ball is aligned with the actual end effector, this identifies the coordinates of the TCP (as described above). The TCP identification procedure is just one application of the concept and is described as an example to help understand the benefits of the concept in simplifying and speeding up TCP identification by reducing the number of measurements and user inputs required.

[0087] It is also noteworthy that for the TCP identification procedure (unlike the simple tool orientation test), there is no need to rotate around a fixed point, only to provide several different orientations around the TCP, regardless of the TCP's position. On the other hand, the tool (or TCP) orientation test is a confirmation that the robot geometry is correct: the robot is commanded to rotate around a fixed point, and the ballbar deviation is measured during this process. If the robot is perfect, the ball will not move and there will be no deviation. If the robot has geometric errors, the ball will move and the ballbar reading will change. The result of the test is the width or spread of the deviation. This is simply a verification, not a calibration. The geometric errors can be errors in the arm itself or errors in the TCP coordinates.

[0088] The concept is also not limited to measurements using a ballbar; any distance measuring device (e.g., measuring arm, tripod, etc.) is suitable. This concept can be further expanded by considering whether the "distance interval" is one-dimensional (the distance between two points) or can be considered two-dimensional or up to six-dimensional. In other words, the "distance interval" can relate to any interval with one to six degrees of freedom. For example, a six-dimensional distance interval characterizes not only the relative distance between two objects but also their orientation with respect to each other. While a conventional ballbar measures a distance interval in one degree of freedom (along a line between two points), a tripod can measure a distance interval in three degrees of freedom, and a hexapod can measure a distance interval in six degrees of freedom. The term "distance interval" as used herein should be interpreted accordingly.

[0089] From a calibration perspective, both the location of the tool's center point (relative to the robot to which the tool is attached) and the location of the pivot can be considered machine parameters to be optimized as part of a method embodying the present invention. At the start of the error minimization method, there is a current estimate of the tool's center point (e.g., from the tool manufacturer or from a previous calibration of the tool's TCP), and the goal of the method is a new (better) estimate of the TCP. In this regard, the TCP position can be thought of like any other machine parameter from a calibration perspective, and various TCP parameters are tried during optimization to find a "best fit" to measurements from a ballbar (or other measurement device). If the current estimate of the TCP position is incorrect, this will manifest itself in the discrepancy, i.e., error, between the distance interval measured by the measurement device (e.g., ballbar) and what is expected (calculated) based on the current TCP position. The mathematical optimization procedure attempts to find a better estimate of the TCP position that results in a smaller error value (or difference between the measured value and the value calculated from the parameters).

[0090] The same is true for the pivot location. Any reasonable starting point may be used for the location of the pivot location. If the target point is located coincident with the pivot point of the initial "pivot" reading (as described above), it is known that the distance separation between the target point and the pivot point must be zero (in all three orthogonal directions, thereby providing three additional constraints). However, the current machine parameters may actually place the target point at a different location than the current estimate of the pivot point (resulting in a larger-than-expected, i.e., greater-than-zero, distance separation between them). The difference between the target point location determined from the current machine parameters and the current estimate of the pivot point may be treated as an error value (or values) similar to other error values ​​(or values) in the machine calibration method. The same is true if there is a known offset or distance separation from the pivot and target of the initial "pivot" reading, rather than a zero distance separation (when the target is located at the pivot). All of these error values, from both the actual and estimated distance separations, are used in the optimization method. By performing an optimization, this results in a better estimate of both the TCP's position (most useful) and the pivot's position (less important).

[0091] This is shown schematically in Figures 52 through 54. Figures 52A, 53A, and 54A show the machine in pivot poses, while Figures 52B, 53B, and 54B show the machine in target poses. The machine is shown schematically as being characterized by a set of machine parameters {a, b, c, d, x}, where {a, b, c} are the lengths of each of the joints, "d" is the length of the tool, and "x" is the x-coordinate of the pivot relative to the machine base. Thus, "d" is the TCP parameter and "x" is the pivot parameter. Of course, this example is highly simplified and should not be taken literally, as in reality there would be many more machine parameters and multiple target poses would be used.

[0092] Figures 52A and 52B respectively represent the states of the machine when it is actually in the pivot pose and the target pose. The actual distance interval between the target and the pivot is known to be "s" at the pivot pose, and in the above-described embodiment, this distance interval is zero (i.e., the target is arranged to coincide with the pivot). The actual distance between the target and the pivot is measured as "S" at the target pose (by a ball bar or other measuring device). It can be seen that various parameters {a, b, c, d, x, s} or {a, b, c, d, x, S}, that is, the parameters including "s" or "S" of the distance interval respectively, form a closed measurement loop of the machine.

[0093] Figures 53A and 53B respectively represent the states of the machine determined from the current set of machine parameters when it is in the pivot pose and the target pose. The current machine parameters are {a, b, c, d o , x o}, where x0 < x and do < d. In other words, the current estimated values of the parameters {d, x}, that is, the TCP parameters and the pivot parameters, are incorrect. For the purpose of this method, the other machine parameters {a, b, c}, that is, the parameters other than the TCP and pivot parameters, are considered correct (or at least remain constant for the method). The expected distance between the target and the pivot is calculated as "s0" at the pivot pose (Figure 53A) and "S0" at the target pose (Figure 53B) based on the current set of machine parameters. Therefore, there is a difference between the actual distance interval and the expected distance interval, and based on these differences, the errors e o and E o related to the pivot pose and the target pose respectively, and in turn, the overall error Σ o related to the current set of machine parameters {a, b, c, d o , x o can be determined.

[0094] To find a set of parameters that fit well with measured / known data, an optimization is performed in which the parameters {d, x} are perturbed to find new parameters {d, x} that give a lower overall error Σ while leaving the other parameters {a, b, c} unchanged. This is shown schematically in Figures 54A and 54B, where it can be seen that the new estimate of the pivot parameter "x" is close to the actual pivot parameter "x" and the new estimate of the TCP parameter "d" is close to the actual TCP parameter "d", as well as the distance intervals "s" and "S" being close to the known / measured values ​​"s" and "S", respectively. This optimization may be repeated as many times as necessary, for example, until the overall error Σ falls below a predetermined threshold. The direction in which the parameters are perturbed may be based on derivatives. At each step of the optimization, individual errors tend to decrease, but it is possible that some individual errors may increase while others decrease, with the goal of reducing the overall error (although it is possible that the overall error may increase if this results in a larger potential error reduction later in the method).Of course, any suitable optimization method may be used, such as the least squares or maximum likelihood methods mentioned above.

[0095] By comparison, of the two methods described with reference to Figures 3 and 4, respectively, the first method relies solely on the orientation of the ballbar 10 and does not use the pivot position at all. The second method considers the pivot position as a machine parameter but does not use measurements at the pivot position as data for calibration, thus requiring more ballbar measurements. In both the method embodying the present invention and the second method (Figure 4), the TCP and pivot positions are ultimately determined.

[0096] This method can be considered a calibration method based on optimizing the complete set of machine parameters, including parameters related to the TCP and pivot positions. Once enough readings are made, this results in a complete calibration of the machine, including parameters related to the rotary joint, section length, etc. However, it is instructive to consider a method in which only a subset of the complete set of machine parameters is optimized. In other words, the method still uses the entire set of parameters, but only some of them are actually optimized (i.e., new values ​​are determined for only some of them). Other parameters are treated as fixed, or conceptually "correct," and are not considered to change during the error minimization (or similar) method. Thus, to adjust only the TCP position, only the TCP machine parameters are changed to determine a set of TCP parameters that better fit the measurements (both actual and conceptual). This speeds up the calibration procedure because fewer measurements are required.

[0097] Next, a second embodiment of the first aspect of the present invention will be described with reference to Figures 12 to 26. This also constitutes the first embodiment of the second aspect of the present invention.

[0098] Figure 12 is similar to Figure 2 and shows a tool being rotated about its tool center point by a robot, but for ease of explanation, in Figure 12 tool 4 is depicted schematically as a welding tool with its tool center point offset from the tool itself, however, this is not required for purposes of the second embodiment.

[0099] Figure 13 shows a schematic representation of the TCP identification procedure performed as described above, differing from Figure 9 only in that a fixed pivot 12 is shown rather than an adjustable pivot (although the adjustable pivot of Figure 9 could be used instead, as explained below). As shown in Figure 14, a disadvantage of the method of the first embodiment of the first aspect is that the actual tool 4 must be removed and a ballbar mount 14 installed in its place (or a modified ballbar mount added and offset to the tool 14). Not only is this inconvenient and time-consuming for the operator, but adjustments must be made because the nominal center of the ballbar mount 14 is offset from the actual TCP of the tool 4, as shown diagrammatically in Figure 15, which adds further complications and potential sources of error.

[0100] As shown schematically in FIG. 16 , a second aspect of the present invention introduces a ball adapter 24 adapted to fit over tool 4, allowing tool 4 to remain in place during a TCP identification procedure. Ball adapter 24 has a spherical (or at least partially spherical) bearing surface 20 adapted to couple to a modified ballbar (see below) and a sleeve 22 adapted to fit snugly over tool 4 and remain in place, e.g., by a friction fit. Spherical bearing surface 20 has a center 28 that coincides with the pivot point of tool 4 when ball adapter 24 is fully inserted and positioned on tool 4 (right-most portion of FIG. 16 ). In this example, the pivot point is tool center point 8 of tool 4, but in other examples, tool center point 8 of tool 4 may be at a different location than the pivot point of the spherical bearing surface 20 around which it is disposed.

[0101] 16 is intended only to schematically illustrate the concept, and it will be understood that a properly designed joint between ball adapter 24 and tool 4 can be used to ensure that center 28 of ball adapter 24 coincides with point of interest (e.g., tool center point) 8 of tool 4 when a user places ball adapter 24 on tool 4. One such example is described below with reference to FIGS. 27 through 30.

[0102] The TCP identification method according to the second embodiment of the first aspect and the first embodiment of the second aspect will now be briefly described with reference to Figures 17 to 26. This method is very similar to the method described above with respect to the first embodiment of the first aspect, and so for the sake of brevity the description will focus on the similarities and differences.

[0103] The starting point for this embodiment is shown in Figure 17, which is equivalent to Figure 5 above. Of course, in this embodiment, the tool 4 remains in place on the robot rather than the ballbar mount 14 of Figure 5. Additionally, as noted above, a fixed pivot mount 12 is used, whereas the adjustable pivot mount 13 of Figure 9 would be preferable. Figure 18 shows a ball adapter 24 mounted over the tool 4 to provide a ball center 28 that coincides with the TCP 8 of the tool 4.

[0104] FIG. 19 shows a robot being controlled to move the ball adapter 24 onto the pivot mount 12, equivalent to that shown in FIG. 6. A fixed pivot 12 requires the robot to be controlled with high precision to align the ball adapter 24 with the fixed pivot mount 12, which is why it is desirable to use an adjustable pivot mount 13 instead. However, the dummy ball 15 of FIG. 6 is not required, since the spherical target ball is provided by the ball adapter 24 itself. As with the previous embodiment, the coordinates of the robot are recorded when the robot is in this position, i.e., at the pivot point.

[0105] Figure 20 shows the robot with the ball adapter 24 being controlled to move away from the pivot mount 12 to make way for a ballbar equivalent to that shown in Figure 7. Figure 21, equivalent to Figure 8, shows the ballbar 11 positioned in place between the ball adapter 24 and the ballbar mount 12. However, the ballbar 11 in this embodiment differs from that shown in Figure 8 because the target ball 17 of the previous ballbar 10 is provided by the ball adapter 24 itself. Therefore, the target end of the ballbar 11 in this embodiment is provided with a magnetic cup 27, similar to that forming part of the pivot mount 12, which couples to the ball adapter 24. Note that a pivot ball 15 is present in both types of ballbar, but the pivot ball 15 of the ballbar 11 must be sized to match the spherical size (diameter) of the ball adapter 24. These two types of ballbars are compared in Figures 22A and 22B. As with the previous embodiment, in this embodiment, robot coordinates and ballbar measurements are recorded at this location.

[0106] Figures 23 through 26 show the robot being controlled to position the ball adapter 24 in four additional directions (although three would have been sufficient), equivalent to that shown in Figure 9. As with Figure 9, the various directions are not in the same plane, but instead provide a three-dimensional variation away from a single plane. Also, note that in the various positions of the ballbar 11 in Figures 21 and 23-26, the robot is not attempting to maintain the TCP 8 of the tool 4 in the same position in space, because, as discussed above, this is not necessary.

[0107] As with the method of the first aspect of the present invention, the use of the ball adapter 24 according to the second aspect of the present invention makes the procedure for locating the TCP simpler than it would be without it. Because the process of identifying the TCP coordinates is a low level of robot calibration compared to a full calibration of the robot, the TCP identification procedure will only be welcomed by users if it is fast and simple to implement. This will encourage users to perform the procedure more frequently, which will in turn lead to a machine that performs more accurately.

[0108] The ball adapter concept described above can be made even more convenient and flexible by providing a universal ball adapter that can be used with a variety of different tools. This can be achieved by customizing the inserts for different tools by attaching each insert to the universal ball adapter. Of course, different types and sizes of universal ball adapters may be provided to fit different types or groups of tools. Inserts can be conveniently 3D printed from a variety of different materials, such as plastic, depending on the application. This is illustrated in Figures 27-30. Figure 27 shows a universal ball adapter 24 adapted to accept an insert 26 that is internally shaped to fit a welding tool such as that shown in Figure 16. When inserted into the ball adapter 24, the insert 26 can be held in place by a friction fit, as shown in Figure 28, or additional locking features may be provided. The ball adapter 24 with the insert 26 is then placed onto the tool 4, as shown in Figure 29. In this example, insert 26 is designed to fit snugly against tool 4, so the operator simply pushes ball adapter 24 into tool 4 until it stops, finding that ball adapter 24 is properly positioned relative to tool 4; specifically, that ball center 28 is aligned with TCP 8 on tool 4 as a result. A gap can be provided between ball adapter 24 and robot flange 3, so that the position of ball adapter 24 relative to tool 4 is defined by the connection between ball adapter 24 and tool 4, rather than between ball adapter 24 and flange 3. (Often, ball adapter 24 will only cover the tip of tool 4 rather than all of tool 4; an example of this is described below with reference to FIG. 55.) Mounting directly to tool 4 has the advantages of quick setup and not introducing eventual error from ball adapter 24 not being seated precisely in position on tool 4.

[0109] The modularity of such a system is shown schematically in Figure 30, which shows two different designs of inserts 26a, 26b fitting two different types of tools 4a, 4b, with both designs of inserts 26a, 26b fitting into the same ball adapter 24. The different inserts 26a, 26b can be designed to account for different TCP positions for each of the different tools 4a, 4b to ensure that the TCP is aligned with the center of the spherical surface 20 of the ball adapter 24 when all are in place. In this way, the same ball adapter 24 can be used for a variety of tools 4 having very different configurations and TCP positions.

[0110] This versatility is further illustrated in the application shown in Figures 55A and 55B, which show a custom insert 26c molded to fit the end of a drill 4c mounted in a machine spindle 9, with the insert 26c mating with the same ball adapter 24 (or potentially a different ball adapter of a different size, for example). The insert 26c is adapted to take into account the TCP position of the drill 4c to ensure that the TCP is aligned with the center 28 of the spherical surface 20 of the ball adapter 24 when everything is in place.

[0111] As shown in Figure 56A, calibration shaft 4d may be mounted on the machine with insert 26, rather than drill 4c itself, allowing shaft 4d to fit into a wider recess in ball adapter 24, thereby allowing the wider recess to accommodate a variety of calibration shafts (or other tools) of different diameters. Alternatively, because using insert 26 introduces a potentially extra element of positional uncertainty (with respect to centering of ball adapter 24 on tool 4), it is also possible to fit calibration shaft 4d directly into a recess formed in ball adapter 24 without using insert 26, as shown in Figure 56B, with the recess again adapted to take into account the TCP position of shaft 4d to ensure that the TCP coincides with center 28 of spherical surface 20 of ball adapter 24.

[0112] A method involving the ball adapter 24 and calibration shaft 4d is illustrated in Figures 57A and 57B, which show how the removable ball adapter 24 can be placed on the calibration shaft 4d as needed (e.g., to perform the TCP calibration method described above) and then removed to perform another operation without having to remove the calibration shaft 4d. In the example shown in Figures 57A and 57B, the length of the calibration shaft 4d is already known, so a further operation is to establish the position of a laser tool setter (such as an NC-4 non-contact tool setter manufactured by Renishaw plc). Figure 57A schematically shows the ball adapter 24 being removed from the shaft 4d, which is then machine-maneuvered toward the laser beam 66 of the tool setter 60, which is emitted from the transmitter element 62 and received (and detected) by the receiver element 64. 57B shows schematically the shaft 4d just intersecting the laser beam 66, thereby blocking it from reaching the receiver element 64, thereby detecting the end of the shaft 4d. Instead of calibrating the shaft 4d, a method may be performed directly on the drill 4c, allowing the actual length of the drill 4c to be measured using the tool setter 60, without the need to remove the drill 4c. Of course, if desired, a laser tool setter 60 could be used instead, prior to TCP calibration.

[0113] An example of how an insert such as that shown in FIG. 55 may be positioned and secured in a ball adapter 24 is shown in FIG. 58. The ball adapter 24 is hollow and has a bore or recess 25 precisely centered with the surface 20 of the ball 24. A resilient (e.g., plastic) insert 26c is a snug fit in the bore 25, with a conical contact portion 23 between the ball 24 and the insert 26c. The ball 24 is secured to the insert 26c via a clamping screw 29, so the conical contact portion 23 clamps the insert 26c to the tool 4c, gripping it and holding it in place. The internal bore or recess 25 of the insert 26c can be shaped to center the ball 24 at any point on the tool 4c, not necessarily at its tip. While the insert 26c can be made with a cylindrical recess to accommodate most common artifacts, in certain cases, the insert 26c may also be made to match the actual shape of the tool 4c, as shown in FIG. 55A. Figure 59 shows how the ball 24 can be threaded directly onto the end of the calibration shaft 4d of Figure 56, locking the ball in place without the need for the conical surface 23 of Figure 58, although such a mechanism may also be employed.

[0114] In summary, when measuring the position of a robot for validation or calibration purposes, the measurement is only meaningful if it is relative to the robot's actual operating point. This is a significant issue for most measurement devices, as they require a physical interface to be placed at the location of the point where measurement is required. Furthermore, the robot's TCP is often located on or near a physical element of the tool. Therefore, prior to the solution described here, the only options were to remove the robot's tool and replace it with a measurement device, or to mount the measurement device at a known offset from the actual TCP. Both solutions introduce measurement uncertainty and / or require special care during setup.

[0115] A ball adapter, such as the one proposed here, which can be attached to the robot's tool without modification and allows direct measurement of the TCP position, allows for fast and efficient robot calibration. As mentioned above, the robot's TCP is realized by a ball that is mechanically centered on the point to be measured. The main source of uncertainty in this solution is the quality of the centering, which mainly depends on the manufacturing quality of the ball.

[0116] The measuring device can be connected to the ball with a magnetic adapter that ensures exact alignment of the measuring point with the ball center. Accuracy depends on the manufacturing quality of the connector and the sphericity of the ball. The magnetic adapter can be seated on the ball using three points or a cone, thereby providing a repeatable kinematic or pseudo-kinematic coupling. While three-point contact is "metrologically pure," a cone can straddle small grooves or holes in the ball, which allows special features on the ball to facilitate machining operations. A cone also creates less constraint at the point of contact with the ball.

[0117] When the TCP is on or near the physical element of the tool, the ball is made hollow (centered on the TCP) to position it "around" the final element of the tool. A solution uses a deformable insert that conforms to the shape of the tool. For example, the insert can be threaded into the hollow ball and activate a cone-on-cone mechanism that exerts a force that clamps the insert to the tool (see Figure 58).

[0118] It is possible to provide universal inserts that fit into tools with a predominantly cylindrical feature. Inserts are available for diameters commonly used in industry (e.g., 10mm to 20mm), or they can be made with one universal insert of a larger diameter.

[0119] If a generic insert is not available, it is possible to create a specific insert that matches the shape of the tool, which may be 3D printed from a CAD (computer-aided design) model of the insert.

[0120] If the TCP is far enough away from the final element of the tool, the hollow ball allows the TCP to be realized with a simple shaft of appropriate length. For example, in machining applications where the TCP is the tip of the cutting tool, a plain shaft may be attached to the spindle. After calibration, the shaft can be left in place and used to initialize the tool setter, providing calibration continuity between the calibration shaft and the cutting tool.

[0121] Although the ball adapter is primarily described as being attached to and / or around a work tool, the adapter can be attached to and / or around any element of a coordinate positioning machine or a tool attached thereto. For example, a large gripper, such as one for handling door components in an automobile manufacturing plant, can be equipped with multiple cylindrical calibration elements at different locations on the gripper for the purpose of calibrating the position of the gripper's tool frame. A ball adapter as described herein is attached to each of these cylindrical calibration elements in turn, and then the calibration method as described herein (see, e.g., Figures 19 through 26) is performed. Each of the cylindrical calibration elements has a pivot point (e.g., at the center of its circular end face), and the ball adapter (or ball adapter insert) is adapted so that the pivot point of the ball adapter substantially coincides with the pivot point. The pivot point in this example is not the center point of such a tool, since the cylindrical calibration element is not such a tool. Also, the tool center point of a gripper may not correspond to a single point on the gripper, but may be defined as an offset from a tool frame of reference that includes, for example, the door of a car when held by the gripper.

[0122] The at least partially spherical support surface 20 of the ball adapter 24 can also be referred to as the sensing surface 20 because it is the surface that is sensed by the measurement device (e.g., ball bar) 11. The sensing surface 20 (at least completely, i.e., as a perfect sphere) surrounds or encapsulates the critical point (e.g., the center point of a tool) 8, effectively allowing the critical point to be sensed, detected, or measured from a variety of different directions. The sensing surface 20 (at least completely, i.e., as a perfect sphere) also surrounds or intersects at least a portion of the element (e.g., tool) 4, such that the ball adapter 24 can be centered on the critical point 8 only if the ball adapter 24 is hollow with a hole, bore, or recess that makes room for the body of the tool 4. This is in contrast to the sensing surface of the probe 46 shown in FIG. 23 of the '661 patent. The '161 patent is a planar disk of limited range sensed by a planar digitizing plate, which does not surround the critical point (the tip of tool 43) or intersect with tool 43.

[0123] With the ball adapter 24, each point on the sensing surface 20 is equidistant from the critical point (e.g., TCP) 8 of the element (e.g., tool 4) to which the ball adapter 24 is attached when the adapter 24 is in place. The measurement point of the measurement device (e.g., ballbar) 11 substantially coincides with the critical point (e.g., TCP) 8 at all times during the measurement operation. In this way, the measurement device (e.g., ballbar) 11 effectively "addresses" the critical point (e.g., TCP) 8 directly, as if the measurement device (e.g., ballbar) 11 were directly connected to the critical point (e.g., TCP) 8. This is not the case with the arrangement of FIG. 23 of U.S. Patent No. 5,623,496. In U.S. Patent No. 5,623,496, the sensing point (origin) of the probe 46 cannot be co-located with the tip of the tool 43; instead, it can be offset from it along the same line as the tool tip. In a hollow ball adapter 24 embodying the present invention, these problems are solved by having the two points substantially coincident. Furthermore, with a hollow ball adapter 24 embodying the present invention, measurements can be taken with a measurement device (e.g., ball bar) 11 from a variety of different angles (accommodating machine movement in various degrees of freedom during the measurement operation), whereas in the arrangement of Figure 23 of the '661 patent, measurements are taken with a probe 46 at a fixed angle relative to the planar digitizing plate.

[0124] In an embodiment of the second aspect of the present invention, the measuring device comprises a coupling element adapted to couple to and support against the support surface of the adapter such that the measurement point of the measuring device substantially coincides with the center point of the adapter, which in turn substantially coincides with the crux of the machine element to which the adapter is attached. The ball adapter thereby serves to combine three distinct points: the measurement point of the measuring device, the center point of the ball adapter, and the crux of the tool. This offers significant technical advantages when attempting to measure and / or calibrate the position of a crux point, for the reasons outlined above. Figure 22B provides an example of a measuring device in the form of a ballbar 11 with a coupling element in the form of a cup 27, and shows the location of a measurement point 18 of the measuring device 11 at the center of the spherical support surface (or spherical surface passing through the support points) of the cup 27. The measuring device 11 has a second measurement point 16 at the center of a ball 15 at its other end, and the measuring device 11 provides a measurement of the distance separation between the two measurement points 16, 18.

[0125] A first embodiment of the third aspect of the invention will now be described with reference to Figures 31 to 36. This may be used in conjunction with the first and / or second aspects of the invention.

[0126] Figure 31 illustrates the ballbar 10 mounted between a first ballbar mount 12 (the "pivot" for the ballbar 10) fixed to the machine base 2 and a second ballbar mount 14 attached to the robot itself. In use, the ballbar 10 is driven around the working area of ​​the machine, for example to carry out the procedures described above with reference to Figures 3 or 4, or procedures according to the first or second embodiments of the first aspect of the invention. The robot is also likely to be driven manually by an operator using a joystick.

[0127] Some types of ballbars are very accurate, but have a limited range of travel and an even more limited range of measurement (e.g., 2 mm of travel and 1 mm of measurement), as shown in FIG. 32. Because the types of robotic movements described above can be extreme and under human control, using such ballbars on robots can be problematic. In particular, attempts to extend the ballbar 10 beyond its normal range of travel run the risk of the ballbar 10 becoming dislodged (if overextended) or damaged (if overcompressed). A third aspect of the present invention aims to address this problem.

[0128] FIG. 33 shows a schematic diagram of a first embodiment of the third aspect of the invention. The solution is to provide a modular ballbar 19 with a measuring portion 40 and a ball 41 adapted to provide length measurements, to which either a standard portion (not shown) or an extension portion 30 including a unique ball 31 can be attached. In this embodiment, the extension portion 30 provides an additional range of travel but not measurement. In Configuration A of FIG. 33, the ballbar 19 is already overextended beyond its normal measuring range, and the extension portion 30 is in an extended state. As the ballbar 19 is gradually compressed from Configurations A to D of FIG. 33, the extension portion 30 absorbs the compression, and the measurements from the ballbar 19 do not change. From Configurations D to E, the extension portion 30 is fully compressed (it can no longer be compressed), and the ballbar 19 enters the measuring range, where measurements are taken (this is indicated by compression at the other end by the ball 36). When the ballbar 19 is again extended from Configurations E to F, it is still within the measuring range but reaches the limit of the measuring range of Configuration F. Next, from configuration F to I, ballbar 19 is again in the extended range, where extension portion 30 is extended and the measurements from ballbar 19 do not change.

[0129] Figures 34 through 36 show schematics of a ballbar 19 with an extension piece in use on a robot. In Figure 34, the ballbar 19 is at the end of its measurement range (fully compressed), corresponding to configuration E in Figure 33. In Figure 34, the ballbar 19 is extended, still operating within its measurement range, and has moved to the other end of the measurement range, corresponding to configuration F in Figure 33. Finally, in Figure 36, the ballbar 19 has been extended beyond its measurement range into an overtravel range, corresponding to configurations G through I in Figure 33. Advantageously, in Figure 36, the movement of the extension piece 30 does not disengage the ballbar 19 from the ballbar mount 14 at one end or the pivot mount 12 at the other end.

[0130] With the extension 30 of Figure 33, there is effectively an over-travel region to one side of the measurement region, which allows over-extension but not over-compression. It is also possible for the extension 30 to provide an over-travel region or buffer on either side of the measurement region, as will be explained below with reference to Figures 37 to 50, which relates to a second embodiment of the third aspect of the invention.

[0131] 37 shows the modular ballbar 19 with the measuring portion 40 connected to the standard portion 50, i.e., without the extension portion 30 already in place. The standard portion 50 has a ball 51 for providing one ball of the ballbar 19, while the other ball is provided by the ball 41 of the measuring portion 40. The measuring portion 40 includes a resilient (e.g., spring) member 46 disposed between a fixed plate 42 and a movable plate 43, with the ball 41 fixed to the movable plate 43.

[0132] The movable plate 43 itself is arranged between stops 44 and 45 (stops 45 are provided by the end walls of the measuring part 40). The measuring part 40 may be adapted to provide measurements by capacitive means, i.e. using a capacitive sensor, although any type of measurement method is possible.

[0133] As shown in Figure 37, the ballbar 19 (more specifically, the measurement portion 40 of the ballbar 19) is in the middle of its measurement range. Figure 38 shows the ballbar 19 at one end of its measurement range (fully compressed, with plate 43 seated on stop 44), while Figure 39 shows the ballbar 19 at one end of its measurement range (fully extended, with plate 43 seated on stop 45).

[0134] FIG. 40 illustrates a standard end portion 50 being replaced with the extension portion 30. The assembled ballbar 19, with the extension portion 30 releasably coupled to the measurement portion 40, is illustrated in FIG. 41. As illustrated in FIG. 41, the extension portion 30 in this embodiment includes a ball 31, three movable plates 33a, 33b, and 33c, three stops 35a, 35b, and 35c, two elastic (e.g., spring) members 36a and 36b, and a plurality of magnets 37. A second plate 33b is connected to and moves with the ball 31, a first spring 36a is positioned between an end wall (stop) 39a of the housing 34 and the first plate 33a, and a second spring 36b is positioned between the other end wall (stop) 39b of the housing 34 and the third plate 33c.

[0135] In the position shown in Figure 41, the second and third plates 33b, 33c are seated against each other and held against each other and against the second stop 35b by the magnet 37. The movable plate 43 of the measuring portion 40 is in the center of the measuring range of the measuring portion 40, so that compression or extension of the ballbar 19 in this state will cause a change in measurement. Thus, the ballbar 19 is operating within its measuring range with the extension seated.

[0136] Figure 42 shows what happens when ballbar 19 is compressed beyond the point where plate 43 abuts stop 44. Second plate 33b of extension 30 pushes against third plate 33c against the bias of second spring member 36b, isolating third plate 33c from the magnetic attraction of second stop 35b, allowing both plates to move within extension 30, which in turn allows ball 31 to move toward ball 41. This allows extension 30 to absorb the excess compression without damaging measurement portion 40 and provides a greater range of travel for ballbar 19. The measurement output from ballbar 19 remains unchanged.

[0137] Figure 43 shows what happens when ballbar 19 is extended beyond the point where plate 43 abuts stop 45. Second plate 33b of extension 30 pushes first plate 33a against the bias of first spring member 36a, away from the magnetic attraction of third plate 33c, which is itself held against second stop 35b. This allows both plates 33a, 33b to move within extension 30, which in turn allows ball 31 to move away from ball 41. This allows extension 30 to accommodate the extra extension without damaging measurement portion 40, providing a greater range of travel for ballbar 19. The measurement output from ballbar 19 remains unchanged.

[0138] FIGS. 44-49 are perspective views showing the main portions of extension portion 30: housing 34, third plate 33c, second stopper 35b, and second plate 33b. Other elements are not shown for clarity and to avoid confusion. Second stopper 35b is fixed to housing 34. FIG. 50 is a perspective view corresponding to that of FIG. 44, but from the opposite direction. Also featured in FIGS. 47 and 50 are kinematic coupling features 62a and 62b (ball and v-groove, respectively) that ensure precise and predictable coupling between second plate 33b and third plate 33c, as well as kinematic coupling features 64a and 64b (ball and v-groove, respectively) that ensure precise and predictable coupling between third plate 33c and second stopper 35b.

[0139] It will be understood that each of the above first to third aspects of the present invention is independently applicable and can be used separately or in any combination. For example, the extension part of the third aspect can be used with the ball adapter of the second aspect, as illustrated schematically in FIG. 51. In FIG. 51, it can be seen that the extension part 30 of the modular ballbar 19 is provided with a cup 27 rather than a ball 31, and as a result, the cup 27 can be mated with the ball adapter 24 of the robot. It will be appreciated that the ball adapter of the second aspect need not always be used in conjunction with the TCP identification method of the first aspect, but may find use in other applications. Similarly, the extension piece of the third aspect is not limited to use with such method of the first aspect or with the ball adapter of the second aspect, but may be more generally useful. The ball adapter of the second aspect need not always be used with a ballbar as the measurement device, but may be used with, for example, a tripod-based measurement device.

[0140] A machine controller for controlling the operation of a robot (or other type of coordinate positioning machine) is also provided. The machine controller may be a dedicated electronic control system and / or may include a computer operating under the control of a computer program. For example, the machine controller may include a real-time controller that provides low-level instructions to the coordinate positioning machine and a PC that operates the real-time controller.

[0141] It will be appreciated that the operation of a coordinate positioning machine may be controlled by a program running on the machine, in particular a coordinate positioning machine controller such as the controller shown schematically in Figure 1. Such a program may be stored on a computer readable medium or embodied in a signal, for example a downloadable data signal provided from an internet website. The appended claims are to be construed as covering the program by itself, or as a record on a carrier, or as a signal, or in any other form.

Claims

1. 1. A method of updating a parametric model used to characterize the geometry of a coordinate positioning machine (1), comprising: (a) coupling (S7) a length measuring device (10, 11) between a first point fixed relative to a movable part (4, 14, 24) of the machine (1) and a second point fixed relative to a fixed part (12, 13) of the machine (1), the length measuring device (10, 11) being adapted to measure the distance between the first point and the second point; (b) controlling (S7, S9) the machine (1) to a plurality of different positions using the length measuring device (10, 11) coupled between the first point and the second point of step (a); (c) for each of the plurality of different poses of step (b), recording (S8, S10) a measurement of the distance (S) between the first point and the second point from the length measuring device (10, 11); (d) for each of the plurality of different poses of step (b), comparing the distance (S) recorded for that pose in step (c) with an existing set of model parameters (a, b, c, d) of the parametric model; 0 , x 0 ) to the distance (S 0 ), the error value (E 0 ) determining the (e) for the plurality of different poses of step (b), 0 determining (S13) an overall error measure (Σ0) from the first point and the second point of step (a), whereby the overall error measure (Σ0) is specifically associated with the first point and the second point of step (a); and (f) a new set of model parameters (a, b, c, d) for the parametric model 1 , x 1 ) (S13), whereby in step (e) the existing model parameter set (a, b, c, d 0 , x 0 ) with respect to the overall error metric (Σ 0 ) resulting in an overall error metric (Σ1) lower than A method comprising:

2. 2. The method of claim 1, wherein in each of the plurality of different poses of step (b), the movable parts (4, 14, 24) of the machine (1) are in a different position and / or orientation relative to the fixed parts (12, 13) of the machine (1).

3. In each of the plurality of different poses of step (b), the first point remains at substantially the same position, and / or the length measuring device (10, 11) adjusts at least the existing set of model parameters (a, b, c, d 0 , x 0 3. The method of claim 1, wherein the pointing direction is substantially fixed based on the

4. controlling the machine (1) to move the first point to a new position and performing steps (b), (c) and (d) for the new position of the first point; 0 ) is the error value (E 0 4. The method of claim 3, wherein the method is based on

5. The method described in claim 4, wherein the distance between the first point and the second point at the new position is substantially the same as at the previous position.

6. New model parameter set (a, b, c, d 1 , x 1 ) based on which a new error value set (E 1 ) and from these error values, a new model parameter set (a, b, c, d 2 , x 2 6. A method according to any one of claims 1 to 5, comprising determining the error measure (Σ) and repeating this process as necessary, for example until the overall error measure (Σ) falls below a predetermined threshold.

7. (g) controlling the machine (1) to a further pose where the first point and the second point are separated from each other by a known distance (s) (S5); and (h) determining the known distance (s) and the existing model parameters (a, b, c, d). 0 , x 0 ) to the further pose. 0 ) and an error value (e 0 ) for the further pose; and the overall error measure is determined in step (e) by subtracting the error value (e 0 ) and the error values ​​E determined in step (d) for the plurality of different poses of step (b). 0 The method of any one of claims 1 to 6, wherein the α-threshold value is determined from the α-threshold value.

8. The method described in claim 7, wherein the known distance (s) is a zero vector (s = 0), in which case the first point and the second point substantially coincide at the further pose.

9. A method according to any one of the preceding claims, comprising determining new values ​​for only a subset (d, x) of the model parameters (a, b, c, d, x).

10. The method described in claim 9, wherein the subset of model parameters is related to a tool center point of the machine (1).

11. The method according to any one of claims 1 to 10, wherein the length measuring device (10, 11) is a ballbar.

12. The method according to any one of claims 1 to 11, wherein the coordinate positioning machine (1) is a robot.

13. mounting an adapter (24) on an element (4, 4a, 4b) on a moving part of the machine (1), the element having a pivot point (8), the adapter (24) comprising an at least partly spherical bearing surface (20) having a centre point (28) that substantially coincides with the pivot point (8) when mounted on and / or around the element (4, 4a, 4b), the length measuring device (10, 11) comprising a coupling element (27) adapted to couple to and abut the bearing surface (20) of the adapter (24) such that the measuring point (18) of the length measuring device (10, 11) substantially coincides with the centre point (28) of the adapter (24) and the coupling element (27) remains in this state as the coupling element (27) moves over at least a predetermined or working portion of the bearing surface (20); Step (a) comprises coupling the length measuring device (10, 11) to the adapter (24) such that the coupling element (27) of the length measuring device (10, 11) abuts the at least partially spherical bearing surface (20) of the adapter (24); 13. The method according to claim 1, wherein step (c) comprises performing a measurement operation (S8, S10) for each of a plurality of different poses of step (b) to measure the distance between a first point and a second point, such that during the measurement operation (S8, S10), the measurement point (18) of the length measuring device (10, 11) coincides with the center point (28) of the adapter (24) and remains so while the coupling element (27) of the length measuring device (10, 11) moves over at least a predetermined or working portion of the at least partially spherical bearing surface (20) of the adapter (24) when moving to a different one of the plurality of different poses of step (b).

14. 14. The method according to claim 13, wherein said element (4, 4a, 4b) is a tool.

15. The method described in claim 14, wherein the key point (8) is the tool center point of the tool (4, 4a, 4b).

16. 16. The method according to any one of claims 1 to 15, wherein the length measuring device (10, 11) is adapted to measure the distance between two measuring points (16, 18) of the length measuring device (11), the two measuring points of the length measuring device substantially coinciding with the first point and the second point, respectively.

17. 17. The method according to claim 1, wherein the length measuring device (10, 11) is coupled to the first point via a joint in which a ball on one of the machine (1) and the length measuring device (10, 11) is located in a cup on the other of the machine (1) and the length measuring device (10, 11), and the measuring point (16, 18) of the length measuring device (10, 11) substantially coincides with the center of the ball and remains substantially coincident with the first point when the machine (1) is moved from each of the plurality of different poses to the next and when the ball rotates in the cup, and the joint between the length measuring device (10, 11) and the second point is equivalent.

18. 18. The method according to any one of claims 1 to 17, wherein the length measuring device (10, 11) is coupled to the first point via a joint in which a coupling element on one of the machine (1) and the length measuring device (10, 11) abuts the at least partly spherical bearing surface on the other of the machine (1) and the length measuring device (10, 11), the measuring point (16, 18) of the length measuring device (10, 11) substantially coincides with the center of the at least partly spherical bearing surface and remains substantially coincident with the first point as the machine (1) is moved from each target pose to the next and as the coupling element moves over at least a predetermined or working portion of the bearing surface, and there is a corresponding joint between the length measuring device (10, 11) and the second point.

19. The method of claim 18, wherein the at least partially spherical bearing surface is provided by a ball.

20. The method described in claim 18 or 19, wherein the connecting element is cup-shaped.

21. A coordinate positioning machine configured to carry out a method according to any one of claims 1 to 20.

22. A computer program which, when executed by a computer or machine controller, causes said computer or machine controller to carry out the method of any one of claims 1 to 20.

23. A computer-readable medium having stored thereon computer program instructions for controlling a computer or machine controller to carry out the method of any one of claims 1 to 20.

Citation Information

Patent Citations

  • Transportable measuring instrument for testing the positional accuracy of a program-controlled appliance arm

    DE3504464C1

  • Measuring device and error correcting method of machine

    JP2000288965A

  • Double ball bar

    JP2010137321A

  • Measuring apparatus and method for correcting errors in a machine

    US20040003647A1

  • Robot end-effector terminal control frame (TCF) calibration method and device

    US5297238A