Coordinate positioning machine
Patent Information
- Authority / Receiving Office
- EP · EP
- Patent Type
- Applications
- Current Assignee / Owner
- RENISHAW PLC
- Filing Date
- 2024-07-31
- Publication Date
- 2026-06-10
AI Technical Summary
Calibration of non-Cartesian coordinate positioning machines, such as hexapods, is challenging due to their complex geometry and the cumulative nature of positional errors in serial kinematic machines.
A method involving a sensor that outputs a signal dependent on the position of a calibration point relative to a reference point, with the machine performing rotational movements based on position demands that include both rotational and translational components, allowing for continuous data collection and improved calibration accuracy.
This method enhances the accuracy of non-Cartesian machines by minimizing positional errors and improving the characterization of machine geometry, enabling more precise positioning and operation.
Smart Images

Figure GB2024052020_06022025_PF_FP_ABST
Abstract
Description
[0001] Coordinate Positioning Machine
[0002] The present invention relates to a coordinate positioning machine. The present invention relates in particular, but not exclusively, to calibration of at least some aspect of a non-Cartesian coordinate positioning machine such as a hexapod or an articulated robot.
[0003] A non-Cartesian coordinate positioning machine 10 is illustrated schematically in Figure 1 of the accompanying drawings. The coordinate positioning machine 10 generally comprises a moveable platform 12 and a fixed platform 14 that are supported and moved relative to each other by a plurality of telescopic or extendable legs 16 provided between them. The fixed platform 12 forms part of a fixed structure of the machine 10. The moveable and fixed platforms 12, 14 can also be referred to as stages (or structures or parts), and the extendable legs 16 can also be referred to as struts (or actuators). Where there are six such extendable legs 16 (as illustrated in Figure 2), the machine 10 is commonly called a hexapod.
[0004] The extendable legs 16 are typically mounted on the platforms 12, 14 via ball joints 18, with each leg 16 either having its own ball joint 18 at one or both ends thereof (as illustrated in Figure 2) or sharing a ball joint 18 with an adjacent leg 16 at one or both ends. Each extendible leg 16 is typically formed as a pair of tubes, with one tube being moved telescopically within the other by a drive mechanism (e.g. linear motor) to provide extension and retraction of the extendible leg 16, as indicated by the arrows within each extendible leg 16 and as described in more detail in WO 2017 / 174966. A degree of separation between the drive and metrology parts of each strut can also be provided, as described in WO 2007 / 144573. It is also possible to provide a drive arrangement that is not only separate from but also different to the metrology arrangement, as described in WO 2019 / 073246.
[0005] Various relative positions between the moveable platform 12 and the fixed platform 14 can be achieved by extending the legs 16 by differing amounts. The relative position at any instant is monitored by a plurality of length-measuring transducers 17, with one such transducer for each extendable leg 16. Each lengthmeasuring transducer 17 may comprise an encoder scale paired with a readhead, with the encoder scale being mounted suitably to one of the pair of telescopic tubes and the readhead mounted suitably on the other. Extension of the leg 16 thus causes the encoder scale to move past the readhead thereby allowing the length of the extendible leg 16 to be measured (or derived from measurements). A machine controller 15 operates to set the length of each extendible leg 16 to provide the required relative movement between the platforms 12, 14. By having six such length-measuring transducers 17, the relative position can be measured in six corresponding respective degrees of freedom (three translational degrees of freedom and three rotational degrees of freedom).
[0006] A workpiece 19 is mounted on the lower (fixed) platform 14 and a measurement probe 13 is mounted on the upper (moveable) platform 12. A working volume (or operating volume) 11 is defined between the upper (moveable) platform 12 and the lower (fixed) platform 14, with the measurement probe 13 being positioned (i.e. moved to a desired position) in the working volume 11 by operation of the extendible legs 16. The arrangement of Figure 1 can be referred to as a “bottom- up” arrangement because the extendible legs 16 extend up from the fixed platform 14 to the moveable platform 12. This arrangement is illustrated more schematically in Figure 2 of the accompanying drawings.
[0007] Alternatively, as illustrated schematically in Figure 3 of the accompanying drawings, with a “top-down” arrangement the extendible legs 16 extend down from the fixed structure 14 to the moveable platform 12, with the measurement probe 13 mounted to a lower surface of the moveable platform 12 and a workpiece mounted to another part of the fixed structure 14 below that. These types of arrangement are discussed in more detail in WO 2019 / 073246, which also describes the use of a non-hexapod drive arrangement in combination with an independent hexapod metrology arrangement. A measurement probe 13 is just one example of an operating tool that can be mounted on the moveable platform 12 to enable an operation to be performed on the workpiece 19. Where a measurement probe 13 is used, the coordinate positioning machine 10 can be referred to also as a coordinate measuring machine. Depending on the intended application, the operating tool can be adapted for measuring, probing or scanning in the case of a coordinate measuring machine, or machining or drilling in the case of a machine tool. It is also possible to mount the workpiece 19 on the moveable platform 12 and the measurement probe 13 (or other operating tool) on the fixed platform 14.
[0008] The coordinate positioning machine 10 of Figure 1 can be referred to as a nonCartesian coordinate positioning machine because, in contrast to a Cartesian machine such as a traditional three-axis (X, Y, Z) coordinate measuring machine (see for example Figure 1 of WO 2021 / 074625), its axes are not arranged orthogonally according to a Cartesian coordinate system. The coordinate positioning machine 10 of Figure 1 can be considered to have six axes of movement (or six drive axes), corresponding to (and defined by) the six extendable legs 16. In this sense, an axis of a coordinate positioning machine can be considered to relate to a degree of freedom that is sensed (e.g. by a transducer or encoder), noting that an axis can be linear or rotary, and that a coordinate positioning machine can have a combination of linear and rotary axes.
[0009] The coordinate positioning machine 10 of Figure 1 can also be referred to as a “parallel kinematic” coordinate positioning machine, because its axes of movement are arranged in parallel. This is to be contrasted with a traditional three-axis Cartesian coordinate measuring machine, which can be referred to as a “serial kinematic” coordinate positioning machine because its axes of movement are arranged instead in series. Another type of serial kinematic machine is an inspection robot or a manual articulating arm, with multiple articulating arm members connected in series by multiple rotary joints. Each joint or axis in a coordinate positioning machine contributes a positional error or uncertainty. In a serial kinematic machine, because of the serial nature of the linkages these errors are cumulative. Whilst this accumulation of positional errors does not occur in the same sense with a parallel kinematic machine such as that shown in Figure 1, regardless of machine type it is important to calibrate the machine in order to map out these errors or uncertainties.
[0010] Calibration of any type of non-Cartesian machine is a significant challenge, and particularly so for a parallel kinematic machine such as that illustrated in Figure 1 having a plurality of axes that are not fixed relative to one another and that can combine in complicated ways to position the moving platform 12 in the working volume 11. Calibration of a Cartesian machine is typically more straightforward, because such a machine has three well-defined axes that are fixed relative to one another in an orthogonal arrangement, with each axis being largely independent of another. With a parallel kinematic machine such as that of Figure 1, the position and orientation of each axis depends on the position and orientation of each other axis, so that the calibration will be different for each different machine pose, thus posing a significant calibration challenge.
[0011] Many calibration techniques have in common the goal of specifying a parametric model of the machine concerned, in which a plurality of model parameters is used to characterise the machine’s geometry. The model parameters can also be referred to as machine parameters. Uncalibrated values are initially assigned to these parameters as a starting point for the machine geometry. During the calibration, the machine is moved into a variety of different poses (based on the current estimates of the machine parameters). For each pose, a calibrated measuring device is used to measure the actual pose, so that an indication of the error between the assumed machine pose and the actual machine pose can be determined.
[0012] The task of calibrating the machine then amounts to determining a set of values for the machine various parameters that minimises the errors, using known numerical optimisation or error minimisation techniques. An example of such a technique is the well-known Levenberg-Marquardt algorithm, which uses a leastsquares approach to minimise errors knowing the derivatives of the errors according to each parameter optimised (“A Method for the Solution of Certain Non-Linear Problems in Least Squares”, Kenneth Levenberg, 1944, Quarterly of Applied Mathematics, 2: 164-168; and “An Algorithm for Least-Squares Estimation of Nonlinear Parameters”, Donald Marquardt, 1963, SIAM Journal on Applied Mathematics, 11 (2): 431-441). Other techniques are also possible, including those based on a maximum likelihood approach.
[0013] For a machine such as illustrated in Figure 1, these machine parameters might include various geometrical parameters such as the separation between each of the ball joints 18 and the offset of each of the length-measuring transducers or encoders 17 (with the reading from the encoder plus the calibrated offset being used to derive the actual strut extension), as well as various mechanical parameters such as joint compliance and friction. When properly calibrated, with all of these machine parameters known, it is possible to predict with more certainty in what position the measurement probe 13 (or other tool) will actually be when the various struts (or actuators) 16 are commanded by the machine controller 15 to extend by different respective amounts. In other words, the machine parameters resulting from such a calibration provide a more accurate characterisation of the machine geometry.
[0014] However, even using standard calibration techniques, due to the challenges associated with calibrating a non-Cartesian machine such as shown in Figure 1, errors will typically remain. As a result, the absolute accuracy of such a nonCartesian machine is typically not as good as that of a traditional three-axis Cartesian machine, for example, meaning that a non-Cartesian machine typically finds use more as a comparator (comparing measurements made on a master workpiece with measurements made on workpieces coming off a production line in a factory, i.e. providing relative coordinate measurements) rather than as a coordinate measuring machine per se (i.e. providing absolute coordinate measurements).
[0015] In view of the above, it is desirable to find an improved method of and system for calibrating a non-Cartesian coordinate positioning machine such as shown in Figure 1. Such a method and system can also find more general applicability to other types of coordinate positioning machine.
[0016] According to a first main aspect of the present invention, there is provided a method of calibrating or otherwise characterising a coordinate positioning machine having a first platform that is moveable relative to a second platform, wherein the geometry of the machine is characterised by a set of model parameters. A sensor is provided which is operable to output a signal dependent on the position of a calibration point fixed within the coordinate frame of the second platform (and / or the work coordinate frame) relative to a reference point fixed within the coordinate frame of the first platform (and / or the coordinate frame of the sensor). The machine is controlled to perform a rotational movement of the first platform relative to the second platform based on a series of position demands, with each position demand of the series (or at least some of the position demands) having a rotational component for the rotational movement (for creating the rotational movement) and a translational component based on a servo feedback loop which aims to maintain a constant (or at least known) output signal from the sensor. Calibration data is collected and / or recorded and / or stored during this movement. The machine is calibrated or otherwise characterised based on the calibration data collected during step (b) (and the existing model parameters), taking into account that and / or how the reference point was constrained relative to the calibration point during the rotational movement (i.e. when the associated calibration data was collected) by operation of the servo feedback loop.
[0017] It will be appreciated that, since the translational component of each position demand of the series in step (b) is not predetermined but is instead based on the current state of the servo feedback loop, the translational component of one or more of the position demands may happen to be zero (or at least close to zero) at various times during the course of the rotational movement, i.e. with little or no translational movement of the first platform relative to the second platform during those times, depending for example on the nature of the rotational movement and how well the current set of model parameters characterise the geometry of the machine. However, it can still be stated that the translational component of any such position demand is based on the servo feedback loop, i.e. rather than simply being fixed at zero as would be the case if the demands were predetermined to alternate between providing rotational and translational movement.
[0018] The method may comprise controlling the machine to move the first platform relative to the second platform to bring the reference point and calibration point within a measurement range of the sensor. The method may comprise activating the sensor to begin outputting the signal. The method may further comprise activating a servo feedback loop which aims to maintain a constant (or predetermined or known) output signal from the sensor. The servo feedback loop may operate continuously at least until deactivated.
[0019] The sensor may be a contact sensor or a non-contact sensor. The sensor may be a position sensor. The sensor may be a touch probe. The sensor may be supported on the first platform. The sensor may be operable to output a signal dependent on the position of the calibration point relative to the reference point within the coordinate frame of the first platform or of the sensor (e.g. an XYZ position within the sensor coordinate frame). The sensor may be operable to output such a signal at least when the calibration point and the reference point are within a measurement range of the sensor. The position of the calibration point relative to the reference point may be determined by a vision-based sensor system in which a system of cameras has a view of both the calibration point and the reference point, and is operable to determine the relative position therebetween by image-based or photogrammetric methods. In other words, the sensor need not be one that is supported on (and moveable with) the first platform but could be located separately from the first platform. The machine may be controlled to perform a continuous and / or smooth rotational movement of the first platform relative to the second platform in step (b) based on a series of position demands, with each position demand (or at least some of the position demands) of the series having a rotational component (at least within the coordinate frame of the second platform) for creating (or to create) the rotational movement, and a translational component (at least within the coordinate frame of the second platform) based on a servo feedback loop. There could be other additional position demands not forming part of the series.
[0020] The servo feedback loop may aim to maintain a constant (or at least known) output signal (or response) from the sensor. The servo feedback loop may operate continuously and / or independently of the actuator servo loops. The actuator demands may be determined or generated or calculated based on the existing set of model parameters. The target output signal from the sensor need not be constant, and could be varying in a known manner, so long as operation of the servo feedback loop provides a known constraint to the position of the calibration point relative to the reference point in three translational degrees of freedom (e.g. XYZ) that can be taken into account for step (c).
[0021] Step (c) may comprise determining a new set of model parameters which would fit the recorded calibration data better than the existing set of model parameters, for example based on an objective function, thereby characterising the geometry of the machine better than the existing set of model parameters.
[0022] Step (c) may comprise determining a new set of model parameters which would result in a lower overall deviation from a constant (or at least known) expected position for the reference point than for the existing set of model parameters (at least where rotation is around the reference point).
[0023] Step (c) may comprise iteratively updating the model parameters (for example using an error minimisation or optimisation routine) until a predetermined test is met (such as based on the output of an objective function and / or such as when the overall deviation is below a predetermined threshold).
[0024] Step (c) may comprise determining a new value or new values for only a subset of the model parameters.
[0025] Step (c) may comprise characterising the machine based also on the sensor values, for example where these deviate from the desired or demanded sensor values for the servo loop (for example when the servo loop is lagging behind).
[0026] The method may comprise altering the speed and / or acceleration of the first platform relative to the second platform for step (b) based on the sensor values, for example based on how far the sensor values have deviated from the desired or demanded sensor values for the servo feedback loop.
[0027] Step (b) may further comprise controlling the machine to perform a dwelling operation to hold the first platform substantially steady relative to the second platform for a period of time (substantially without any rotational movement) with the position demands during this period of time being determined based on the servo feedback loop (alone). Additional calibration data may be collected during the dwelling operation for use in step (c).
[0028] The method may comprise repeating step (b) for a plurality of calibration points around the working volume of the machine, and step (c) may comprise characterising the machine based on the calibration data collected from each performance of step (b).
[0029] The method may comprise receiving further calibration data from an external and / or independent coordinate measuring machine which specifies, for the or each of at least one pair of the calibration points, an actual (or at least independently- measured) separation between the calibration points of that pair (or from which the actual separation is derivable). Step (c) may comprise calibrating or otherwise characterising the machine taking into account, for the or each pair of calibration points, that and / or how the reference point was constrained relative to the calibration points of that pair by operation of the servo feedback loop (when the associated calibration data was collected), and also taking into account the actual separation for that pair from the further calibration data.
[0030] The calibration data used in step (c), when taking into account the actual separation from the further calibration data, may comprise calibration data collected during the dwelling operation performed on each calibration point of the pair and / or during the rotational movement performed on each calibration point of the pair.
[0031] Step (c) may comprise determining a new set of model parameters which would fit the recorded calibration data and the further calibration data better than the existing set of model parameters.
[0032] The method may comprise using a calibration artefact which defines at least some of the plurality of calibration points, wherein the calibration points are arranged in a fixed position relative to one another on the calibration artefact.
[0033] The method may comprise using temperature information from at least one temperature sensor on or associated with the calibration artefact to compensate for the effect of thermal expansion or contraction of the calibration artefact on the actual separations represented by the further calibration data.
[0034] The method may comprise moving the calibration artefact to a plurality of different positions within the working volume (with position in this context being defined in six degrees of freedom) to define further calibration points of the plurality.
[0035] The calibration artefact may be supported on a support arrangement which defines the plurality of different positions for artefact.
[0036] The support arrangement may define a plurality of kinematic locations for the artefact.
[0037] The method may comprise controlling the machine to use relative movement between the first and second platforms to move the calibration artefact between different positions, for example by applying a force to the calibration artefact to move it between different positions.
[0038] The position demands may be actuator position demands, for example the Pdnvalues described below for the actuator servo loops after the X to P mapping based on the model parameters, or may be expressed as a set of coordinate values in a work coordinate frame (or in the coordinate frame of the second platform), for example the X demands before the X to P mapping.
[0039] The calibration data may comprise one or more of: machine coordinates; data representing the state or pose of the machine; actuator data; actuator measurements; encoder values associated with a plurality of actuators used to move the first platform relative to the second platform; rotary joint angles; and linear joint extensions.
[0040] The calibration data comprise position feedback data from (or associated with or derived from) the actuator servo loops used to control a plurality of actuators which are operable to move the first platform relative to the second platform, or measurement data (for example sensor values) used as a basis for the position feedback data. Position feedback data in this context may be considered to be at the output side of the feedback loop, i.e the Pfnvalues from the actuator servo loops, before the P to X transform based on the model parameters.
[0041] The rotational components (for creating the rotational movement) may be generated (or produced or derived), for example by a profiler or trajectory generator, independently of the translational components generated (or produced or contributed or derived) by the servo feedback loop.
[0042] The servo feedback loop may operate substantially continuously during the rotational movement so as to be ready to provide (or contribute) a suitable translational component for (or corresponding to) each rotational component, or at least may operate according to a different and / or faster clock rate to, and / or in parallel with, the part (e.g. profiler or trajectory generator) which generates the rotational components.
[0043] The sensor may be mounted on the first platform.
[0044] The sensor may be a position sensor.
[0045] The or each calibration point may be defined by a calibration member.
[0046] The or each calibration member may be a calibration ball (or at least part spherical object).
[0047] The sensor may be a measurement probe (for example, a touch probe) having a deflectable stylus and a sensing member such as a stylus tip.
[0048] The reference point may be the undeflected (or null) position of the sensing member.
[0049] The sensing member may comprise a cluster of balls (or at least part spherical objects), with the reference point being defined relative to the cluster of balls.
[0050] The reference point may be defined at the centre of a reference ball (e.g. a notional reference ball) nestled into the cluster of balls, with the reference ball having the same diameter as the calibration ball. The coordinate positioning machine may be operable to move the first platform relative to the second platform in six degrees of freedom.
[0051] The machine may have a metrology frame (for measuring a position of the first platform relative to the second platform in up to six degrees of freedom) which is substantially independent of a drive frame (for moving the first platform relative to the second platform in up to six degrees of freedom).
[0052] The rotational movement of the first platform relative to the second platform may be a rotational movement in at least one rotational degree of freedom.
[0053] The rotational movement of the first platform relative to the second platform may be a rotational movement in at least two rotational degrees of freedom, such as two rotational degrees of freedom.
[0054] The rotational movement of the first platform relative to the second platform may be a rotational movement in three rotational degrees of freedom.
[0055] A rotational degree of freedom in this context may is not the type of rotational movement obtained from a spindle (or similar) in a turning machine such as a lathe or machine tool, i.e. where a separate rotary component is mounted to the first platform. Rather, the rotational degree of freedom relates to relative movement of the first and second platforms.
[0056] The rotational movement may be or may be at least approximately around the reference point and / or the calibration point (as the origin of the rotation). However, rotation could be around another point, for example a point that is nearby to the reference point and / or the calibration point. This need even be a fixed point in any coordinate frame.
[0057] The sensor signal may be represented as a set of XYZ coordinate values, such as a probe or stylus deflection in XYZ. These coordinate values may be in the sensor coordinate frame or the coordinate frame of the first platform.
[0058] The rotational component may be based on a set of ABC coordinate values (for example from a profiler or trajectory generator). These coordinate values may be in the work coordinate frame, for example before mapping to actuator position demands.
[0059] The translational component may be based on a set of XYZ coordinate values. These coordinate values may be in the work coordinate frame, for example before mapping to actuator position demands. They may in turn be based on a set of XYZ coordinate values from the sensor, for example in the sensor coordinate frame or the coordinate frame of the first platform.
[0060] The first platform may be a moving platform. The second platform may be a fixed platform. The second platform may be fixed relative to the machine, for example within the work coordinate frame.
[0061] The rotational movement may continuous and / or smooth, or at least a digitised approximation of continuous and / or smooth, for example based on a series or sequence of discrete clock periods and / or a series or sequence of discrete position demands.
[0062] A change in rotation angle for the rotational movement from one clock period to the next or from one position demand to the next may be (for example on average or mostly or always) less than 5°, more preferably less than 1°, more preferably less than 0.5°, and more preferably less than 0.1°.
[0063] Each position demand of the series may define a single motion or type of motion, for example as opposed to a series or sequence of motions. Each position demand of the series may be defined by a single set of coordinates or coordinate values. In other words, a series combination of rotation-only and translation-only demands cannot be considered in this context set as being a single demand. Each position demand of the series may be used as a basis for and / or input to an actuator servo loop or set of actuator servo loops, where the actuator servo loops are those used to control actuator(s) of the machine, with the actuators being operable to move the first platform relative to the second platform.
[0064] Calibrating or otherwise characterising the machine may comprise one or more of calibrating, verifying, certifying and checking the performance of the machine.
[0065] The coordinate positioning machine may be a non-Cartesian and / or parallel kinematic machine, such as a hexapod having six (linear) actuators arranged in parallel or an articulated arm (or robot arm) having a plurality of (rotary) actuators arranged in series.
[0066] According to another aspect of the present invention, there is provided a computer program which, when run by a computer or a machine controller, causes the computer or machine controller to perform one or more steps of a method according to the first aspect of the present invention.
[0067] According to another aspect of the present invention, there is provided a computer-readable medium having stored therein computer program instructions for controlling a computer or a machine controller to perform one or more steps of a method according to the first aspect of the present invention.
[0068] According to another aspect of the present invention, there is provided a computer or machine controller configured to perform one or more steps of a method according to the first aspect of the present invention.
[0069] According to another aspect of the present invention, there is provided a system for calibrating or otherwise characterising a coordinate positioning machine comprising means for performing one or more steps of a method according to the first aspect of the present invention. According to another aspect of the present invention, there is provided a method of controlling a coordinate positioning machine which has been calibrated or otherwise characterised by performing one or more steps of a method according to the first aspect of the present invention.
[0070] According to another aspect of the present invention, there is provided a coordinate positioning machine which has been calibrated or otherwise characterised by performing one or more steps of a method according to the first aspect of the present invention.
[0071] According to a second main aspect of the present invention, there is provided a support arrangement for supporting an artefact within a coordinate positioning machine for a method of calibrating or otherwise characterising the machine (using the artefact), wherein the support arrangement is adapted to provide a plurality of kinematically-defined positions (or kinematic locations) for the artefact within the machine (and between which positions the artefact is moveable) via a plurality of kinematic couplings arranged in series between the machine and the artefact.
[0072] The features of the second aspect of the present invention can be used independently of or in combination with the features of the first aspect of the present invention.
[0073] Each of the plurality of kinematically-defined positions may differ from at least one other (of the kinematically-defined positions) in or by at least one rotational degree of freedom.
[0074] Each of the plurality of kinematically-defined positions may differ from at least one other (of the kinematically-defined positions) in or by at least two rotational degrees of freedom. The calibration artefact may be readily couplable to and readily decouplable from the support arrangement via a predetermined coupling of the series, such as the final coupling in the series in order from machine to artefact.
[0075] At least one (or each) coupling of the series is arranged at an angle (a non-zero angle) relative to at least one (or each) adjacent coupling of the series. The angle may be defined with reference to a plane defined by coupling features that define the coupling.
[0076] The at least one coupling arranged at an angle may include the predetermined coupling.
[0077] The angle may be an acute angle, for example less than 60 degrees, less than 45 degrees or less than 30 degrees, more than 5 degrees, more than 10 degrees, for example 15 degrees (plus or minus 0.5 degrees).
[0078] Each of the couplings may be adapted to provide at least one kinematically- defined relative position (for the coupled members).
[0079] At least one coupling may be adapted to provide a plurality of kinematically- defined relative positions (for the coupled members).
[0080] The support arrangement may comprise a motion system operable to decouple the members of the at least one coupling, retaining support whilst moving or at least allowing the members to be moved relative to one another to another of the kinematically-defined relative positions, and then operable to recouple the members in the new kinematically-defined relative position. The motion system may be automated, without manual intervention.
[0081] Each of at least two of the couplings may be adapted to provide a plurality of kinematically-defined relative positions (for the coupled members). At least one may have more than 6, 12 or even more than 18 kinematically-defined relative positions, for example 24 kinematically-defined relative positions. At least one may have fewer than 8 or even fewer than 4 kinematically-defined relative positions, for example 2 kinematically-defined relative positions.
[0082] Each of at least two of the couplings may provide a different number of kinematically-defined relative positions.
[0083] The plurality of kinematically-defined relative positions may differ from one another in at least one rotational degree of freedom (possibly also at least one translational degree of freedom), for example such that the artefact is effectively rotatable between different kinematic locations.
[0084] The plurality of kinematically-defined relative positions may differ from one another substantially in only one degree of freedom (e.g. a rotational degree of freedom).
[0085] The rotational degree of freedom may be about an axis orthogonal to (or at least transverse to) the coupling (or to a plane defined by coupling features that form the coupling).
[0086] At least two of the couplings may be adapted to provide such a rotational degree of freedom, and may be arranged at an angle relative to one another.
[0087] The motion system may comprise a rotation mechanism (such as a mechanical rotation mechanism e.g. comprising a rotatable shaft) for providing or at least allowing rotation (of the coupled members) around the rotational degree of freedom.
[0088] The rotation mechanism may be powered (e.g. by a rotary motor), or may be passively operable for example by controlling the machine to push the coupled members relative to each other around the rotation mechanism. The support arrangement may comprise at least three of the couplings.
[0089] The at least three couplings may form at least two pairs of couplings. The angle between the couplings of one of the pairs may be substantially the same as the angle between the couplings of another of the pairs, thereby enabling the first and last of the at least three couplings to be arranged in parallel (with suitable kinematic locations defined for the relevant couplings).
[0090] The artefact may be a calibration artefact.
[0091] The artefact may be a verification or certification artefact such as a gauge artefact.
[0092] The support arrangement may comprise a plurality of support members coupled in series between the machine and the artefact via the plurality of couplings, with each coupling of the plurality being provided between a different pair of adjacent support members or between a support member and the artefact.
[0093] The support arrangement may comprise a rigid coupling between the support arrangement and the machine (e.g. between the support arrangement and a fixed platform of the machine).
[0094] The support arrangement may comprise first and second support members, wherein a first of the couplings is defined between the first member and the artefact and is adapted to provide at least one kinematically-defined position for the artefact relative to the first support member, and wherein a second of the couplings is defined between the first and second support members and is adapted to provide a plurality of kinematically-defined positions for the first support member relative to the second support member.
[0095] The support arrangement may comprise a third (base) support member, wherein a third of the couplings is defined between the second and third (base) support members and is adapted to provide a plurality of kinematically-defined positions for the second support member relative to the third (base) support member.
[0096] Such a rotation mechanism as mentioned above may be provided in connection with the third coupling.
[0097] According to another aspect of the present invention, there is provided a kit comprising a support arrangement according to the second aspect of the present invention, and at least one calibration artefact.
[0098] The kit may comprise a plurality of different calibration artefacts or types of calibration artefact.
[0099] At least one of the plurality of calibration artefacts may be a verification or certification artefact such as a gauge artefact (e.g. for verification or certification of the machine).
[0100] According to another aspect of the present invention, there is provided a coordinate positioning machine comprising a kit according to the above aspect of the present invention.
[0101] A support arrangement is also described herein for supporting a calibration artefact within a coordinate positioning machine during a method of calibrating or otherwise characterising the machine, wherein the support arrangement is adapted to provide a plurality of stable and / or discrete and / or repeatable positions for the artefact within the machine (between which positions the artefact is moveable), and to provide a stable and / or discrete and / or repeatable mounting position for the artefact relative to the support arrangement (and wherein the calibration artefact is readily and removably couplable to the support arrangement via the mounting position). The position is this context is defined in six degrees of freedom.
[0102] A support arrangement is also described herein for supporting a calibration artefact within a coordinate positioning machine (for a calibration method), wherein the support arrangement is adapted (comprises coupling features or at least two couplings which are adapted) to provide a plurality of discrete and / or repeatable positions (or locations) for the artefact within the machine (in each of which positions or locations the relative position is defined in six degrees of freedom) and wherein the calibration artefact is readily (or easily, e.g. without tools) and removably couplable to the support arrangement in a discrete and / or repeatable relative position (or location). This thereby enables any of a plurality of different calibration artefacts or types of calibration artefact e.g. a gauge artefact to be coupled to the support arrangement. The relative position in this context is defined in six degrees of freedom.
[0103] A discrete (relative) position could also be referred to as an indexed position, and is to be contrasted for example with a continuous or continuously-variable (relative) position.
[0104] A repeatable (relative) position in this context can be understood to mean that the (relative) position can be consistently reproduced or replicated, implying that the coupling process can be performed multiple times with consistent and reliable results. It suggests that the two members can be coupled to one another in a particular relative position, and this positioning can be reliably maintained or replicated whenever the coupling is performed again.
[0105] Therefore, a discrete and repeatable (relative) position suggests that the two members concerned can be coupled together in a specific, distinguishable, and consistently reproducible (relative) position.
[0106] It should be noted that “repeatable” in the context of the present invention does not necessarily imply “repeatable” in a strict metrology sense. It merely needs to be sufficiently repeatable to enable the machine to control the first platform such that the reference point is moved sufficiently close to a calibration point defined on the artefact for the purposes of a calibration method as set out herein, and in particular so that the sensor can provide an output signal and the servo feedback loop can start to take effect.
[0107] Readily couplable or decouplable in this context can be understood to mean easily couplable or decouplable, or couplable or decouplable quickly and / or without much effort, or couplable or decouplable without the use of any tool (or at least without the use of any specialist tool) and / or without the use of excessive force (for example sufficient force merely to break a magnetic force used to bias the two members concerned together).
[0108] Reference will now be made, by way of example, to the accompanying drawings, in which:
[0109] Figure 1, discussed hereinbefore, is schematic illustration of a non-Cartesian coordinate positioning machine;
[0110] Figure 2, discussed hereinbefore, is a schematic illustration of a bottom-up arrangement for a non-Cartesian coordinate positioning machine, corresponding to the arrangement of Figure 1;
[0111] Figure 3, discussed hereinbefore, is a schematic illustration of a top-down arrangement, which is an alternative to the bottom-up arrangement of Figure 2;
[0112] Figure 4 is a schematic illustration of a system embodying the present invention for use in a method of calibrating a coordinate positioning machine such as that shown in Figures 1 to 3;
[0113] Figure 5 illustrates an alternative configuration for the sensing and calibration members of Figure 4;
[0114] Figure 6 shows the probe performing a swivelling or rotational movement around one of the calibration members, with calibration data being collected or recorded during this movement; Figure 7 represents the three-dimensional swivelling motion of Figure 6 as a simplified two-dimensional rotational motion for simplicity;
[0115] Figure 8 shows the stylus for the final three rotational demands from Figure 7;
[0116] Figure 9 illustrates how the probe provides an output signal in dependence on the position of a calibration point relative to a reference point;
[0117] Figure 10 illustrates how the output signal from the probe in one step can be used to apply a positional correction in the subsequent step; an embodiment of the present invention aims to avoid the particular type of movement;
[0118] Figure 11 illustrates in more detail the type of movement illustrated in Figure 10, also indicating when calibration data is recorded;
[0119] Figure 12 illustrates a series of movements performed according to an embodiment of the present invention to collect calibration data for use in calibrating or otherwise characterising the coordinate positioning machine;
[0120] Figures 13 and 14 provide a schematic representation of the actuator servo loops which operate during normal operation of the coordinate positioning machine;
[0121] Figure 15 shows how the standard servo feedback scheme of Figures 13 and 14 is modified in an embodiment of the present invention to incorporate an additional servo feedback loop (the servo null loop);
[0122] Figure 16 shows a modified version of Figure 15 for use in explaining how the model parameters need to be adjusted in order to compensate for the lack of positional adjustments from the servo null loop in normal operation;
[0123] Figure 17 summarises in flowchart format the steps carried out in a method according to an embodiment of the present invention;
[0124] Figure 18 shows the addition of a support arrangement embodying the present invention to the calibration system of Figure 4, for providing the calibration artefact with a plurality of different positions within the working volume;
[0125] Figures 19A and 19B show in more detail the coupling features that define a first coupling of the support arrangement of Figure 18;
[0126] Figures 20A and 20B show in more detail the coupling features that define a second coupling of the support arrangement of Figure 18;
[0127] Figures 21 A and 21B show in more detail the coupling features that define a third coupling of the support arrangement of Figure 18;
[0128] Figures 22 to 24 illustrate a process for moving the calibration artefact from a horizontal orientation to an angled orientation using the second coupling;
[0129] Figures 25 to 27 illustrate a process for moving the calibration artefact between different rotational positions using the second coupling;
[0130] Figure 28 shows the calibration artefact of Figure 18 in a new position with the working volume, having been subject to the operations illustrated in Figures 22 to 27 in turn;
[0131] Figures 29 to 31 illustrate how the first coupling enables the calibration artefact to be readily and easily replaced by a different calibration artefact or even different type of calibration artefact;
[0132] Figure 32 illustrates locating features that assist in coupling the two parts of the second coupling to one another; and Figures 33 to 36 show an embodiment of the present invention in less schematic form than previous drawings.
[0133] Figure 4 is a schematic side view of a system 100 for calibrating a coordinate positioning machine 10 such as that discussed above with reference to Figures 1 to 3. The machine 10 comprises a moveable platform 12 and a fixed platform 14, and a plurality of extendable legs 16 which are operated to move platform 12 relative to platform 14, as discussed above. The machine 10 in this example is in a “top-down” configuration as discussed above with reference to Figure 3, with the extendable legs 16 arranged above the moveable platform 12 and with a working volume arranged below the moveable platform 12.
[0134] The calibration system 100 of Figure 4 comprises two main parts: a probe 20 and a calibration artefact 30. In this embodiment, the calibration artefact 30 is supported directly on the fixed platform 14, but an alternative support arrangement 90 will be described further below.
[0135] The probe 20 as depicted in Figure 4 is modular in nature, comprising the following three parts: a probe body module 21, a scanning module 22, and a stylus module 23 (referred to hereinbelow as just a stylus 23, for brevity). As will be discussed in more detail below, the probe 20 provides a position sensor for use in a calibration method embodying the present invention, with the stylus 23 being deflectable when it contacts an object, thereby providing a signal which can be used to determine a position of that object (or a position of a feature associated with the object).
[0136] The probe 20 depicted in Figure 4 corresponds in general to the SP25 modular scanning probe system available from Renishaw pic. Accordingly, the probe 20 is a scanning probe, which is intended to provide a continuous signal (which may be digital or analogue) as the probe 20 is moved by the machine 10 with the stylus 23 remaining in contact with the object, thereby collecting a lot of measurement data in a short space of time. This is to be contrasted with a touch trigger probe, which is intended more for static position measurements, contacting an object to trigger a signal from the probe (and a corresponding position measurement), then moving away from the object and moving back into contact at a different location to trigger another position measurement, and so on.
[0137] The deflectable stylus of a measurement probe would typically comprise a single spherical tip (or stylus ball), which is the part which is intended to contact the object being measured. However, in this example the stylus 23 comprises a plurality stylus balls 24 arranged in a cluster, and the stylus 23 can accordingly be referred to as a cluster stylus 23.
[0138] The calibration artefact 30 comprises a plate 32 and a plurality of calibration balls 34. As shown in Figure 5, and as will be discussed in more detail below, each calibration ball 34 is intended to be the target of the cluster of stylus balls 24 on the end of the stylus 23, with the targeted calibration ball 34 nestling into the cluster of stylus balls 24 when the probe 20 and calibration ball 34 are in a sensing arrangement relative to one another.
[0139] In a basic embodiment of the present invention, the calibration artefact 30 could have just a single calibration ball 24, but as will be apparent from the description below, a better calibration will be obtained by using a plurality of calibration balls 24 (preferably with known / calibrated separations), or at least a single calibration ball 24 which is moved into a plurality of positions within the working volume 11.
[0140] Referring to Figure 5, it is also noted that a cluster of calibration balls 35 could be provided at each calibration point on the calibration artefact 30, rather than a single calibration ball 34 as shown in Figure 4, with the stylus 23 being terminated in a single stylus ball 25. With this reversed arrangement, the stylus ball 25 at the end of the stylus 23 nestles into the cluster of calibration balls 35 on the calibration artefact 30 when in a sensing arrangement relative to one another. The nominal centre of the cluster of stylus balls 24 of Figure 4 (i.e. where the centre of the nestled calibration ball 34 is located, and around which the stylus 23 rotates) is equivalent to the centre of the stylus ball 25 of Figure 5. Both of these features (i.e. the cluster of stylus balls 24 of Figure 4 and the stylus ball 25 of Figure 5) can be referred to as a sensing member 26 of the stylus 23 (or of the probe 20), and reference to the centre of the sensing member 26 should be interpreted accordingly. The sensing member 26 can also be referred to as a stylus tip 26 or probe tip 26. Reference to the position of the sensing member 26 should be interpreted as being the position of the centre of the sensing member 26. This would apply equivalently to the calibration ball 34 of Figure 4 and the cluster of calibration balls 35 of Figure 5, which can both be referred to as a calibration member 36 of the calibration artefact 30, having a centre which is interpreted similarly to the centre of the sensing member 26. The calibration member 36 therefore defines a calibration point, which in this embodiment is addressed by the probe 20 by bringing the sensing member 26 into a sensing relationship with the calibration member 36, with the nominal centre of the sensing member 26 being coincident with the calibration point (which is at the nominal centre of the calibration member 36).
[0141] Returning to the arrangement shown in Figure 4, and referring now to Figure 6, a calibration method according to an embodiment of the present invention involves collecting calibration data while rotating the moving platform 12 relative to the fixed platform 14 around a calibration ball 34, with the calibration ball 34 remaining nestled into the cluster of stylus balls 24 during the rotational movement. This is a continuous and smooth rotational movement, with the calibration data (e.g. encoder data from the extendable legs 16) being collected during the movement and used to update the model parameters of the machine 10, as will be discussed in detail below. In a preferred embodiment, the rotational motion is around a fixed swivel axis S, with each point on the moving platform 12 moving in a circular motion around the swivel axis S. This is repeated for each calibration ball 34 on the artefact 30, or as many as is desired. The angle of the swivel axis S could be variable rather than fixed. The path around the calibration ball 34 could also be a shallow spiral rather than a circle, which is beneficial because a wider range of angles would be used. A generally circular path minimises dynamic errors that would be caused by rapid changes of direction, but if moved slowly enough then in theory any path could be followed, e.g. scanning from side to side in a sweeping motion. All that is required is that there is a rotational component to the position demands that control movement of the moving platform 12 relative to the fixed platform 14, thereby creating some form of rotational motion around the calibration ball 34.
[0142] Motion of the coordinate positioning machine 10 is controlled by way of position demands specified in an XYZABC type of coordinate system, with a set of values (or position demands) for each of XYZABC specifying the position and orientation of the moving platform 12 relative to the fixed platform 14 (which can be referred to as a pose of the machine 10). The position demands have a translational component (XYZ) and a rotational component (ABC), thereby allowing movement of the platform 12 to be controlled relative to the fixed platform 14 in all six degrees of freedom. The XYZ values are used to control the position (in the work coordinate frame) of a reference point of a part of the machine 10, for example the centre of the moving platform 12, and the ABC values are used to control rotation of that part centred on the reference point (around corresponding respective axes of the work coordinate frame). The ABC values could be defined so as to correspond respectively to rotation around the ZYX axes (of the work coordinate frame) in that order, but this could be defined differently (e.g. where ABC correspond respectively to rotation around XYZ). A Cartesian coordinate system is thereby used for translation, while Euler or Tait- Bryan angles are used for rotation. Use of this form of coordinate system is typical for the control of non-Cartesian coordinate positioning machines such as hexapods and articulated robots, but it will be noted that the present invention is not limited to this or indeed any specific form of coordinate system.
[0143] The reference point mentioned above can be considered to be the origin of the coordinate system, and defines not only the reference point for translational motion in XYZ (i.e. these values specify the desired position of the reference point within the work coordinate frame), but also the centre of the rotational motion in ABC (i.e. these values specify the desired rotation about the reference point). As mentioned above, this origin or reference point could be the centre of the moving platform 12, but in this embodiment the origin of the coordinate system is set to the null position (i.e. resting or non-deflected position) of the sensing member 26. This reference point (i.e. the null position of the sensing member 26) is considered herein to be a notable reference point within the coordinate frame of the moving platform 12.
[0144] Accordingly, the translational demands (XYZ) will nominally control the position of this reference point (the null position of the sensing member 26), and the rotational demands (ABC) will nominally control rotation of the moving platform 12 that is centred around the reference point (the null position of the sensing member 26). A three-dimensional offset from the previous reference point on the moving platform 12 to the new reference point is defined by three values, and these offset values would form part of the model parameters which characterize the geometry of the machine 10, and which are optimised by a calibration routine in this embodiment of the present invention (even if they are only relevant when the same probe 20 is attached, thereby effectively forming part of the machine 10). The demand values could be applied in order CBAZYX, such that with the coordinate frame of the moving platform 12 coincident with the coordinate frame of the fixed platform 14, this would involve first twisting in C (around Z), rotating in B (around Y), and then in A (around X), with the rotation being around the origin defined by the probe offset, and then translating in XYZ.
[0145] Figure 7 represents the three-dimensional swivelling motion of Figure 6 as a simplified two-dimensional rotational motion for simplicity, showing the result of a series of five position demands used by the controller 15 to control the rotational motion, in an ideal situation. Only the scanning module 22, stylus 23 and sensing member 26 (stylus balls 24) from the probe 20 are shown in Figure 7 for simplicity of illustration. The controller 15 effects a rotational motion of the moving platform 12 (and supported stylus 23) via a series of rotational position demands as follows: -2p, -P, 0, +p, +2p. These rotational position demands would correspond e.g. to the B component of ABC if the X axis is considered to be within the page (parallel to the calibration artefact 30) with the Y axis is normal to the page, because the rotational motion is about the Y axis (at least where ABC corresponds to rotation about ZYX respectively). Based on the current model parameters for the machine 10, each rotational position demand is converted by the controller 15 into a plurality of actuator position demands which respectively control the extension of the extendible legs (or actuators) 16 so to achieve the desired angle, for example -20 for the first of the series of demands shown in Figure 7. Since the rotational motion illustrated in Figure 7 is nominally centred on the above-mentioned reference point (the null position of the sensing member 26), which is itself co-located with the centre of the calibration member 36 (calibration ball 34), this ideally results in a rotation that is centred perfectly on the calibration ball 34, as illustrated in Figure 7.
[0146] However, the model parameters that characterize the geometry of the machine 10 are not perfect, and this is particularly the case before the machine 10 has been properly calibrated. Accordingly, positional errors will result, such that the reference point (the null position of the sensing member 26) will not be where it is expected to be based on the model parameters (though generally there would only be a relatively small positional error if the initial model parameters are a reasonable fit to the actual machine geometry).
[0147] This can be explained with reference to Figure 8, which shows the stylus 23 for the final three rotational demands from Figure 7, i.e. 0, + , +20. After the machine 10 has made a movement based on the rotational demand of 0, there happens to be a null (or zero) deflection of the stylus 23. However, after the machine 10 has made a movement based on the +0 rotational demand, it can be seen that the stylus support (in this case, the scanning module 22 of Figure 4) is slightly ahead of where it should be (in XYZ). Because the calibration ball 34 is nestled into the stylus balls 24 such that the centre of the sensing member 26 remains coincident with the centre of the calibration ball 34, this causes a deflection of the stylus 23 relative to the stylus support (scanning module 22), and this deflection is measured by the probe 20 to be 0 in this example.
[0148] The deflection data from the probe 20 can be used as part of a calibration method in order to update the model parameters such that these positional errors do not occur next time (or are at least reduced), and indeed the deflection data can be used in a calibration method embodying the present invention, as will be explained below. However, a feature of a calibration method embodying the present invention is that each move (for example as shown in the final move of Figure 8) includes not only a rotational component based on the rotational (ABC) demand, i.e. +2p in this example, but also a translational (XYZ) adjustment based on the current positional error (measured in this example by way of the probe deflection 9), in order to maintain a null deflection of the stylus 23 during the rotational movement. In other words, in a calibration method according to an embodiment of the present invention, each position demand has both a rotational component (for creating the rotational movement) and a translational component (for maintaining a null probe deflection). How this translational adjustment is achieved will be described in more detail below.
[0149] It should be noted that deflection of the stylus 23 is measurable not only in a lateral or transverse direction (e.g. normal to the generally longitudinal axis of the stylus 23) but also in a longitudinal direction (e.g. along the generally longitudinal axis of the stylus 23), albeit that for a typical measurement probe there will be a greater measurable range of deflection in the lateral or transverse direction. Accordingly, the probe 20 provides a position measurement in three dimensions, thereby providing a response which enables a translational adjustment in all three translational degrees of freedom. The probe 20 effectively provides a sensor which is operable to produce an output signal or response (a probe deflection) which is dependent on the position of a calibration point (the centre of the calibration member 36) relative to a reference point (the centre of the sensing member 26 in the null position), with the calibration point being fixed within the coordinate frame of the fixed platform 14, and the reference point being fixed within the coordinate frame of the moving platform 12. This concept is illustrated schematically in Figure 9. A first fixed point R in the coordinate frame of the first (moveable) platform 12 corresponds to the null (or non-deflected) position of the sensing member 26, and a second fixed point C in the coordinate frame of the second (fixed) platform 14 corresponds to the position of the calibration member 36. The first part of Figure 9 shows the situation where the probe 20 is in a null (or non-deflected) configuration, such that the two points R and C are coincident, and with the probe 20 providing a null output. The second part of Figure 9 shows the situation where, because of a positional error as mentioned above, the probe 20 is in a non-null (or deflected) configuration with the stylus 23 deflected by an angle 0. In the second configuration, the probe 20 provides an output which can be converted into an appropriate x, y, z adjustment that would be required to get back to the null position shown in the first part of Figure 9. The x, y, z values from the probe 20 are initially in the coordinate frame of the probe 20, but these can be transformed into the coordinate frame of the machine 10 (or the work coordinate frame), as discussed in more detail below.
[0150] For example, with reference to Figure 10, the probe 20 starts in the null position, and is then commanded to rotate by + . Ideally, the two points R and C (referred to in Figure 9) should remain coincident, but because of a non-ideal machine calibration as discussed above, a gap between these two points opens up, resulting in a positional error dx (which the underlining denotes that this is a vector in three dimensions). The positional error dx is measured by the probe 20 (or determined from deflection data output from the probe 20), and this is used to apply a translational adjustment (without any rotational component) in the next move to bring the two points back into coincidence, thereby completing the +0 demand.
[0151] Figure 10 can be considered to form the basis of a calibration method embodying the present invention, in which translational adjustments are made based on the output of a position sensor (probe 20), to account for positional errors which occur as a result of a rotational movement due to a non-ideal machine calibration, and in particular to prevent the probe 20 from straying away from the null position. However, it is to be noted that an embodiment of the present invention aims to avoid the particular type of movement shown in Figure 10, in which a rotational movement and a translational adjustment are performed independently and alternately, because this results in the machine stopping and starting repeatedly in a jerky fashion.
[0152] This type of movement is illustrated in more detail in Figure 11, showing not only the movements that are made, but also indicating when calibration data is recorded. The sequence shown in Figure 11 starts with the probe 20 in a vertical orientation and with a null deflection dxo. Calibration data (e.g. encoder data from the extendable legs 16, or measurement data derived therefrom) is recorded in this position, as indicated by the star symbol underneath the diagram. In the next step, a rotational demand of +2p is applied, resulting in a probe deflection, and from the probe deflection it is determined that a positional adjustment of dxi needs to be made to bring the sensing member 26 back into coincidence with the calibration member 36. Calibration data is not recorded at this step, because the sensing member 26 is not centred on the calibration member 36. The positional adjustment of dxi is applied over the next two steps in an iterative manner, for example via a servo feedback loop which will be described in more detail below, with a partial adjustment of +0.5dxi in each of the two steps. When the sensing member 26 is again coincident with the calibration member 36, calibration data is recorded as indicated by the star underneath, and this calibration data is associated with the total rotation of +2p. This process is repeated in the next steps, rotating by another +2p, calculating an adjustment of dxg which is applied over two steps. The total or cumulative rotation is also shown along the bottom.
[0153] The motion of Figure 11 is very stop-start in nature, requiring the machine 10 to stop after each rotational movement, then perform a series of translational adjustments to get back to where it should be, then perform another rotational movement, and so on. This results in a very jerky, non-continuous motion, with the machine 10 alternating between rotation and translation. To avoid dynamic measurement errors that would result from a jerky motion, the machine 10 would likely have to dwell for a time before the calibration data is recorded to allow the machine to settle. Accordingly, the overall calibration procedure would be slow, and would likely require larger angular increments to compensate at least partially for this, thereby resulting in fewer data points and a smaller amount of calibration data with which to perform the optimisation of the model parameters, and a longer overall calibration time. It is desirable to shorten the calibration time, not least to encourage the calibration to be performed more frequently, and to collect more calibration data for a better calibration.
[0154] In contrast to Figure 11, a series of movements is shown in Figure 12 which are performed according to an embodiment of the present invention. In such a method, the machine 10 is controlled to perform a continuous (and smooth) rotational movement of the first (moveable) platform 12 relative to the second (fixed) platform 14 based on a series of position demands, with each position demand of the series having both a rotational component (e.g. based on p in the middle step of Figure 12) for creating the rotational movement and a translational component (e.g. based on dxi in the middle step of Figure 12) for making positional adjustments. The translational component for each step is based on a servo feedback loop (also referred to herein as the servo null loop) which operates continuously and independently of the actuator servo loops (for the extendible legs 16) to maintain a null output signal from the sensor (probe). Operation of these servo loops will be described below with reference to Figures 13 to 15. The intention is that the servo feedback loop is operating continuously and making positional adjustments along with each rotational move. Accordingly, the rotational increments can be small and frequent and with accordingly small and frequent adjustments from the servo feedback loop. This creates a very tight motion control loop, with a very smooth and continuous motion as a result. The sorts of probe deflections shown in Figure 12 are of course exaggerated, and in practice these would often be sufficiently small that it can be assumed that the probe deflection is always zero. However, any residual deflection can also be taken into account during the optimisation process. A method according to an embodiment of the present invention allows the movements carried out during the collection of calibration data to be fast, without having to stop between moves to re-adjust, so that lots of data points and calibration data can be collected with which to perform the optimisation of model parameters. There is no need to stop in order to record calibration data, because the motion is smooth and not jerky and therefore the dynamic errors will be reduced. Calibration data can be recorded for each of the steps shown in Figure 12, not just some of them as shown in Figure 11. For example, more calibration data has been recorded in the sequence shown in Figure 12 (five lots of calibration data) compared to Figure 11 (three lots of calibration data) and with fewer steps (therefore quicker, assuming that each step takes the same amount of time) for the same overall range of rotation (0 to +4P). The probe 10 is a scanning probe in this embodiment, which can collect data continuously during a continuous rotational motion as shown in Figure 12. Using such a motion control scheme during collection of calibration data results in a better overall calibration, in less time, providing a more accurate coordinate positioning machine 10 with less downtime.
[0155] Another advantage of the continuous scanning approach of Figure 12 (in contrast to the stop / start approach of Figure 11) is that when there is continual movement of machine parts, the problem caused by friction in the various joints is reduced. In this respect, when the moving platform 12 is stopped after performing a move, it is left in an uncertain position because of friction in the joints, the effect of which is not easy to determine or estimate. However, when the machine is moving continuously, this friction is effectively released, so that the calibration data will be more reliable and representative. Also, as mentioned above, by continuous scanning a lot more data can be collected within the same time frame, thereby improving the calibration performance. However, there is a balance to be achieved, since it is undesirable to move / accelerate too fast because dynamic errors may then be introduced.
[0156] A servo feedback loop used to derive the translational component of the demand used for each step will be described below with reference to Figure 15. This servo feedback loop can be referred to as a “servo null loop” since it aims to maintain a null (or zero) probe deflection. However, a description will first be provided with reference to Figures 13 and 14 of the actuator servo loops which operate during normal operation of the coordinate positioning machine 10, i.e. when not performing a calibration method embodying the present invention to collect calibration data, since this is relevant also to the control scheme used during collecting calibration data.
[0157] As shown to the left of Figure 13, a profiler unit is provided (for example as part of the controller 15) for generating a series of XYZABC demands, which are represented in Figure 13 by vector X, which specify how the moving platform 12 is to move relative to the fixed platform 14, for example based on a path which has been determined will move a tool around the working volume 11 to perform a specific task, with the tool being supported on the moving platform 12. The profiler can also be referred to as a trajectory generator, and is a common part of the motion control system of a machine.
[0158] To determine the length (or change of length) required for each of the extendible legs (actuators) 16 that will be actuated to produce the motion represented by the X demands, the X demands are passed through a transform unit which transforms X to P, where P is a vector representing a plurality of actuator position demands Pdi-6. Each actuator position demand Pdnis a value representing the length or change in length required for a corresponding respective extendible leg (or actuator) 16, so that for a hexapod coordinate positioning machine 10 there are six such actuator demand values Pdn. The current set of model parameters is used as input to this transform, as will be well understood by the skilled person, because the transform requires knowledge of the machine geometry to determine how each actuator should be controlled to achieve the desired position represented by X.
[0159] These actuator demand values Pdnare passed to six actuator servo loops, one of which is represented in more detail in Figure 14. This is a standard type of servo feedback loop, so that a detailed description is not required. However, in summary, the actuator servo loop receives the actuator demand Pdn, for the actuator which it is controlling. The feedback loop itself comprises a controller (e.g. a PID controller), the actuator itself (e.g. a linear motor in the extendible leg 16), and a sensor (e.g. encoder and readhead) for measuring the actual extension (or change of extension), with the sensor outputting the measured extension (or change) as a position feedback value Pfn. The aim is for Pfnto match Pdnexactly, so that the extendible leg 16 extends to exactly the correct amount. This is achieved in incremental steps, with the controller determining the magnitude and direction of each step based on an error value enas the difference between Pfnand Pdn. A position demand can also be referred to as a position command or a desired position, while a position feedback can also be referred to as an actual position or a measured position. An actuator could be a linear motor in the context of an extendible leg 16, and a position in this context could be a length of the extendible leg 16 or a change in that length.
[0160] The controller is represented in Figure 13 as a PID controller, or proportional- integral-derivative controller, which uses three control terms (proportional, integral and derivative) to influence the controller output so as to achieve accurate and optimal motion control. In general, tuning a servo system involves adjusting the gains in the motion controller to minimize the servo system’s response time, settling time, and overshoot. The goal of servo tuning is to minimize (but not necessarily eliminate) the error between the commanded position (or speed or torque) and the actual value achieved. The most common type of control loop, or algorithm, used for servo tuning is a PID loop, where “P” refers to proportional gain, “I” refers to integral gain, and “D” refers to derivative gain. A gain is essentially a ratio of output to input, and in a servo control loop, the gains determine how, and to what extent, the controller tries to correct the errors detected by the feedback device. The amount of proportional gain in the control loop determines how much restoring force is applied to overcome the error between the commanded value and the actual value. The proportional gain is multiplied by the error and generates the contribution to the output for the next time period. The term “proportional” is used because the amount of restoring force is directly proportional to the amount of error at any instant in time. A PID controller provides a well-known type of control loop mechanism, so a more detailed description is not required herein.
[0161] Integral gain is used to “push” the system to zero error at the end of the move. The integral gain value increases with time — hence, the term “integral.” However, because the integral gain increases at the end of the move, it can cause the system to overshoot or oscillate. And if the integral gain is too low, the system will have a slow response time. Integral gain is primarily used when the system is subjected to static torque loads.
[0162] Derivative gain is proportional to the rate of change (the derivative) of the error. It’s often used in conjunction with proportional gain to reduce overshoot and provide damping. But a derivative gain that is too high can reduce system response time and cause oscillations.
[0163] The set of position feedback values Pfi-6 from the actuator servo loops can be passed to another transform unit to transform from them back into the same coordinate system as the X demands, thereby giving the current X position (as measured by the actuator sensors) in the XYZABC coordinate system. This transform again takes the current model parameters as input. The X positions at the output will follow but lag behind the X demands at the input, as the servo feedback loops operate, but should eventually match (or at least come close).
[0164] It will be noted that the servo feedback scheme represented in Figures 13 and 14 is not specific to a hexapod coordinate positioning machine, but applies more generally to any type of coordinate positioning machine, which will have a set of actuators (whether linear or rotary or a combination of these) which can be controlled via the same servo feedback scheme.
[0165] With the above-described standard servo feedback scheme in mind, reference is now made to Figure 15, which shows how the standard servo feedback scheme is modified to incorporate an additional servo null loop for the translational adjustments discussed above, which is represented mainly in the upper part of Figure 15.
[0166] The lower part of Figure 15 corresponds closely to the standard actuator servo scheme of Figure 13, with a key difference being that the profiler is only responsible for generating the rotational (ABC) component of the X demands, with the translational (XYZ) component of the X demands coming from the separate servo null loop instead. The servo null feedback loop operates continuously and independently of the actuator servo loops, and aims to maintain a null output signal from the associated sensor, which in this case is the probe 20. The null output signal can be represented as e.g. [X Y Z] = [0 0 300] pm, i.e. a constant lateral deflection in the X and Y directions of 0 pm, and a constant deflection of 300 pm in the Z direction (along the probe axis), noting that this is in the sensor coordinate frame (and also that these values are merely representative and are not intended to be limiting). This is the servo null demand that is input to a PID servo loop similar to that described above, which aims to control the actuators to make the sensor feedback values [X Y Z] (again, in the sensor coordinate frame) match the servo null demand e.g. [0 0 300], The use of a small (300 pm) deflection in the Z direction (along the longitudinal axis of the probe 20) is beneficial because the sensing member 26 of the probe 20 is then biased slightly into the calibration member 36, i.e. pushed into it with a slight force, thereby allowing some movement along the Z axis in either direction about the null position of 300 pm without losing contact.
[0167] The servo null loop is linked with the actuator servo loops in the sense that it is the same actuators that are being controlled by both, hence the actuator part of the servo null loop being in dotted outline. Rather than directly controlling the actuators, the output from the controller of the servo null loop is used to determine the XYZ (translational) component of the X demands. Because the [X Y Z] output from the controller of the servo null loop is in the sensor coordinate frame, it is passed through a transform (rotation) unit sitting between the servo null loop above and the actuator servo loops below, which transforms (rotates) these values into the work coordinate frame, and those transformed (rotated) values are used as the XYZ (translational) component of the X demands, with the ABC (rotational) component coming from the profiler unit as mentioned above.
[0168] In order to perform the transform (rotation) from sensor coordinate frame to work coordinate frame, as depicted in Figure 15 the current ABC values from the X position output from the actuator servo loops are used, because this provides information about how the sensor (probe 20) is oriented in the work coordinate frame. However, the ABC information for this transform between the actuator loops and the servo null loop could instead come from the input side of the actuator servo loops (i.e. from the X demands) rather than from the feedback side (i.e. from the actual or measured X position). These would generally match closely, since that is the aim of a servo feedback loop, but one would lag slightly behind the other; however, this might be beneficial in some cases. Similarly, the XYZ information for the transform (rotation) into work coordinate frame could come from the sensor feedback rather than from the controller as depicted in Figure 15.
[0169] It will be apparent from the above that, in a calibration method embodying the present invention, the machine is controlled (when collecting calibration data) in a similar way to what is shown in Figure 14, in that the actuators (extendible legs 16) are operated based on a series of position demands, each having both a rotational component and a translation component (i.e. in all six degrees of freedom). However, in a method embodying the present invention, the translational (XYZ) component does not come from the profiler, but from a servo null loop which operates continuously during the collection of calibration data. The profiler would output a rotational (ABC) component of the demand at regular intervals, for example based on a clock signal, and for each of these the translation (XYZ) component would be populated based on the current output from the servo null loop. These two parts can be considered to be independent, and could even be operating according to different clock rates. The servo null loop would be activated for a calibration routine, in order to keep the sensing member 26 centred on the current calibration member 36 while the rotational motion is performed to collect calibration data, and deactivated subsequently.
[0170] Such a rotational motion is performed in turn for each available calibration member 36 on the calibration artefact 30, or as many as is considered necessary. The calibration artefact 30 can also be move into different positions and orientations around the working volume 11, and the process repeated for each calibration member 36 in the new position and orientation for the calibration artefact 30. All of the calibration data collected during these operations is then used in the optimisation routine to update the model parameters to produce a better calibration for the machine 10.
[0171] As described above, probe servo nulling is the process of servoing the probe 20 deflection by controlling the XYZ position of the sensing member 26 (probe tip) to maintain a constant deflection in the probe 20, for example [0 0 300] pm. Servo nulling is particularly beneficial in this context, because when a new machine is mapped the probe will not be calibrated because the machine has not been mapped yet, so that there is no option but to map the probe with an uncalibrated machine. Accordingly, if deflection of the probe 20 is allowed to build up while moving in ABC around the calibration member 36, significant errors would be introduced. However, these errors are largely avoided by use of probe servo nulling. Another source of error is that, even if the probe was calibrated perfectly, the combination of machine and probe would not be, because the machine is not calibrated.
[0172] However, it will be appreciated that although the intention is to maintain a null deflection of the probe 20 throughout the rotational motion, the nature of a servo control loop means that the position on the feedback side will lag slightly behind the position on the demand side, and this will be the case more so as the speed of movement is increased. Accordingly, the probe deflection will in practice deviate slightly from null at times. However, this probe deflection data can itself also be used part of the calibration data in the optimisation method, for example as part of the objective function used for error minimisation. This is acceptable at least for relatively small deflections (for example, less than 5 pm) because although the probe is not calibrated it is likely to be acceptable over such a small deflection range, and it is generally better to take account of these non-null deflections than not.
[0173] The calibration data collected during the routine shown in Figure 12 (using servo loops as described with reference to Figure 13 to 15) are used to determine a new set of model parameters, for example based on an objective function for an optimisation routine such as the Levenberg-Marquardt algorithm mentioned above, which would fit the recorded calibration data better than the existing set of model parameters. The calibration data could for example include the actuator position feedback values Pfi-6 from the actuator servo loops, which are based on actual sensor (encoder) measurements from the actuators (extendible legs 16), or values derived therefrom. Alternatively, or in addition, the calibration data could include the actuator position demand values Pdi-6 which are closely aligned with the position feedback values Pfi-6 since the aim of the servo feedback loop is to equalise input and output (albeit with a slight lag at times).
[0174] The optimisation is performed based not only on the collected calibration data, but also in the knowledge that the reference point (i.e. the centre of the sensing member 26 in the null position) was at all times constrained relative to the calibration point (i.e. the centre of the calibration member 36) whilst the calibration data was being collected, by operation of the servo feedback loop during the rotational movement. In particular, at least in this embodiment, it is known that positional adjustments were being made continuously during the calibration routine in order to keep the sensing member 26 coincident with the calibration member 36 with a null probe deflection, i.e. with the reference point in a constant position. It is therefore known that (regardless of any imperfections in the machine calibration) the rotational movement performed during the calibration routine was actually around a fixed point. However, this rotational movement around a fixed point was only achieved when taking into account the translational (XYZ) adjustments or corrections from the servo null loop. Assuming that the translational (XYZ) adjustments from the servo null loop were non-zero (which they certainly would be when starting with an uncalibrated machine 10), it follows that if the rotational movement were carried out purely based on the rotational demands (ABC) alone, then the rotational movement would not have been around a fixed point. Conversely, since rotation around a fixed point would be expected based on the current model parameters using only the rotational demands (ABC), because that is how the origin of the coordinate system was set up, it follows that use of the full (XYZABC) input demands would not be expected to result in rotation around a fixed point, based on the current model parameters. The aim of the optimisation routine is therefore to determine a new set of model parameters which fits the recorded calibration data better than the existing set of model parameters, in the absence of any positional adjustments or corrections from a servo null loop.
[0175] This is illustrated in Figure 16, which is effectively a marked-up version of Figure 15. Recall that, in this embodiment, the rotational movement is about the reference point (null position of the sensing member 26) and is nominally centred on the calibration point, so for a perfect calibration there should be no positional adjustments required from the servo null loop. Compared to Figure 15, the servo null loop has been dispensed with in Figure 16 (because this would not be present during normal operation of the machine 10). Accordingly, there are no XYZ demands, i.e. no translational component to the position demands (either before or after the X to P transform), and therefore also no longer any artificial constraint holding the reference point coincident with the calibration point. However, we still want to end up with the same actuator position demands Pdi-6 as before, i.e. from the output of the X to P transform, because we know that these actuator position demands Pdi-6 from the calibration data do actually result in rotation around a fixed point, as is desired. Therefore, in order to compensate for the loss of the translational (XYZ) part of what goes into the X to P transform, and in order to get the same output from the X to P transform, we need to adjust the other input to the X to P transform, i.e. the model parameters. This is the aim of (though not necessarily the method used by) the optimisation routine, i.e. to find a new set of model parameters that will fit the calibration data better than the existing set of model parameters, so that the positional adjustments from the servo null loop are not required.
[0176] The ABC demands from the profiler would not themselves typically be recorded as part of the calibration data, so they would not be used directly as part of an objective function in any optimisation routine to determine a new set of model parameters. The calibration data could include measurements of strut 16 length (or changes in length) for each item of calibration data, or raw values from the length-measuring transducers 17 shown in Figure 1 from which strut lengths (or changes in length) can be derived based on the model parameters. Storing the raw values would amount to storing the position feedback values Pfi-6 from the actuator servo loops as part of the calibration data. In other types of machine architecture having rotary joints instead of linear joints, such as in an articulated robot arm, the calibration data might include values from the angle encoders associated with the various rotary joints (which again would amount to storing the position feedback values Pfi-6 from the actuator servo loops), or joint angles derived therefrom. The calibration data reflects or represents the (recordable) state of the machine for each rotational position of the rotational movement (or based on some other sampling rate, if not for each rotational position). This type of information (forming part of the calibration data) is also be referred to herein as machine coordinates, which in this context is intended to mean a set of coordinates or values representing the state of the machine (e.g. encoder readings for each joint) for a particular pose. In this respect, the various physical motion axes of a machine, such as the linear axes defined by the extendible legs 16 of a hexapod machine 10 or the rotary axes of an articulated robot arm, can be considered herein to define a machine coordinate system, hence the term machine coordinates. Rather than specifying values e.g. for each of XYZ and ABC, values are instead specified (or recorded, in the calibration data) for each of the machine axes, such as the extensions of the extendible legs 16 of a hexapod machine 10 (or the encoder values associated with achieve those extensions).
[0177] Each extendible leg 16 would typically be associated with more than one model parameter. In this respect, in one example of a model for the machine geometry, the main model parameters used to characterise an extendible leg 16 (or indeed any actuator, whether linear or rotary) would be a scale parameter and an offset parameter. In simple terms, the total the length of an extendible leg 16 is determined by multiplying the raw encoder reading (from the corresponding length-measuring transducer 17) by the scale parameter and then adding the offset parameter, i.e. L = (k * r) + o, where L is the length of the extendible leg 15, k is the scale parameter, r is the linear encoder reading (a machine coordinate as referred to elsewhere herein), and o is the offset parameter, or alternatively adding the offset parameter to the encoder reading and then multiplying by the scale parameter, i.e. L = k x (r + o).
[0178] In addition to these six pairs of scale / offset parameters for the six extendible legs 16, for the machine 10 of Figure 10 there would be six further parameters representing the separation between the three balls of the ball joints 18 of the fixed platform 14 (three between pairs of balls along each side of the triangle and another three between pairs of balls at each corner of the triangle), and another six separation parameters for the ball joints 18 of the moving platform 12. There are also three offset values (as discussed above) to define where the reference point (origin for the XYZ, ABC movement) is relative to the centre of the moving platform 12.
[0179] This amounts to at least 27 model parameters for a relatively simple model of the machine 10, and it is these model parameters that are optimised by the calibration routine described herein. Before calibration, estimates for these parameters would be determined by other means, to use as a starting point for the calibration. It will be appreciated that the model parameters described above are intended only to be representative, purely for explanatory purposes, and it will be appreciated that different and / or additional model parameters can be included to define a more complicated machine geometry. For example, there may be additional model parameters to define the geometry of the fixed outer frame in a top-down arrangement as shown in Figure 3 (referred to above as the fixed structure 14), or this can be considered to be a separate model with its own set of model parameters. For structural rigidity, the outer frame (fixed structure 14) may itself be formed by a set of rigid legs or struts in a hexapod arrangement.
[0180] An objective function can be defined which takes the raw encoder readings from each of the extendible legs 16, and which determines the length of each extendible leg 16 from these raw encoder readings using the scale and offset parameters mentioned above. These derived length values could themselves be stored in the calibration data instead of (or as well as) the raw sensor (actuator) values, i.e. the length values or linear joint extensions (or rotary joint angles in the case of an articulated robot arm) derived from the raw values and the model parameters.
[0181] This information regarding the length of each extendible leg 16, together with the ball joint parameters that define the geometry of the platforms 12, 14, and also the offset values for the reference point, plus any other relevant model parameters, enables the expected position of the reference point to be determined for a recorded position represented in the calibration data. This mapping is effectively equivalent to the P to X transform of Figures 13 to 16.
[0182] This expected position of the reference point is determined for each of the recorded positions represented in the calibration data, effectively creating a point cloud having a large number of points. It will now be recalled that it is also known that the reference point was constrained during the rotational movement (i.e. when the calibration data was collected) so as to be coincident with the calibration point, by operation of the null servo feedback loop. So, it is known for certain that the expected positions just determined from the calibration data should be coincident with one another. For the purposes of the optimisation it does not matter what the absolute position is of the point around which the expected positions are clustered, merely that it should be the same for any rotational position around the calibration point. Therefore, the points in the point cloud should be grouped tightly together around a fixed position. In practice, the expected positions determined from the model parameters and the calibration data (raw encoder readings in this example) will have a spread or deviation from a fixed position (whatever that position is), because of an imperfect calibration, and this spread or deviation would form the basis of an error value determined by the objective function. The goal of the optimisation routine would then be to minimise the objective function (or the error returned by the objective function) by iteratively perturbing the model parameters in a way that will reduce the overall error at each iteration, or at least over a plurality of iterations if not for every iteration. By reducing this error function, a new set of model parameters is produced that fits or matches the recorded calibration data (e.g. actuator extension values) better than the set of model parameters from the previous iteration. This iterative process can be repeated until a predetermined test is met, such as when the overall deviation (or error) is below a predetermined threshold.
[0183] The final set of model parameters produced by the optimisation routine thereby characterises the geometry of the machine better than the existing or previous set of model parameters, and in doing so the machine 10 will be better calibrated than before and will accordingly be more accurate in terms of positioning performance. Accordingly, after the optimisation has been completed, use of the new model parameters to derive the position of the moving platform 12 (and the reference point) from the recorded calibration data (e.g. relating to the extensions of the various legs 16) should result in rotation around the calibration point, with the reference point remaining coincident with the calibration throughout, even without the translational corrections from the servo null loop. A person skilled in art of optimisation techniques and / or machine calibration would understand how to implement these sorts of optimisation routines, without a more detailed description being required herein.
[0184] It will be appreciated that rotation does not need to be planned around the reference point for the collection of calibration data. Rotation could instead be around a nearby fixed point, or even around a moving point. This is because the servo null loop is operating continuously “in the background” and therefore, so long as the sensing member 26 is in a sensing relationship with the calibration member 36 so that the servo null loop is receiving sensor data from the probe 20, the servo null loop will be operating continuously to keep the sensing member 26 centred on the calibration member 36, regardless of exactly how the machine 10 is trying to rotate the moving platform 12. Therefore, the calibration data will still provide the same useful information as before, i.e. it will provide a set of actuator position feedback values Pfi-6 that are known to be associated with rotation around a fixed point, i.e. the calibration point, with all of the actuator position feedback values Pfi-6 “pointing” to the same location. In other words, what matters is the fixed nature of the calibration point, and the constraining effect that the servo null loop has on the position of the reference point relative to the calibration point, rather than exactly what sort of rotational movement was originally planned by the profiler. Rotation can be achieved around a point other than the reference point (null position of the probe 20) by setting a different position (or offset) for the origin for the XYZABC coordinate system (referring to the related discussion above), so that variations in each of the ABC coordinates will at least nominally cause rotation about that other point instead of the reference point. Where the rotational movement was not centred on the reference point for collection of the calibration data, the illustration of Figure 16 would not apply because the position demands Pdi-6 (or position feedback values Pfi-e) from the calibration data would not be what is expected in the absence of the translational adjustments from the servo null loop.
[0185] Furthermore, although the servo feedback loop is described as aiming to maintain a constant output, it will be appreciated that this need not necessarily be constant, but it should at least be known and / or predetermined. If it is not constant, so that rotation is not around a fixed point, then data relating to how the position of the reference point is expected to vary relative to the calibration point would be used as input to the optimisation routine method. In theory it could even be the case that the position of the calibration point itself is not fixed in the coordinate frame of the fixed platform 14, but varies in a known way, and this again would be used as input to the optimisation routine.
[0186] In the brief description above of how an objective function for the error minimisation routine could be formulated, in general terms, it was assumed that the null servo loop was able to keep the reference point perfectly coincident with the calibration point at all times during the rotational movement used to collect the calibration data. In many cases this would be a valid assumption to apply, particularly if the platform 12 is moved without large accelerations. In practice, there will typically be some residual stylus deflection, because the nature of a servo feedback loop is that the feedback side lags slightly behind the demand side. The calibration data could accordingly also include the deflection data (sensor data), and this could be used to refine the various positions calculated for the reference point, before a deviation or error value is determined as before. This deflection could be built into the model geometry, effectively being another input variable like the actuator data and with the probe itself being defined by one or more additional model parameters. As mentioned before, there are reasons why it is beneficial that a null stylus deflection is maintained, but where this is not the case the residual deflection data can be used as part of the optimisation.
[0187] It has been described above how calibration data for an optimisation routine is collected by performing a continuous rotation around each of a plurality of calibration points (whilst running a servo null loop in parallel). The optimisation routine then tries to find model parameters for the machine that group the expected positions for the reference point (the null position of sensing member 26) as closely as possible around a fixed calibration point, because by operation of the servo null loop it is known that rotation was indeed around a fixed point regardless of any imperfections in the current model parameters. The absolute or even relative positions of the calibration points is not relevant for this part of the calibration, since the relevant factor is merely that each rotational motion was around a fixed calibration point and not where that fixed calibration point was. However, it is also possible (and is typically beneficial) to collect additional calibration data for the optimisation routine which can be compared against calibrated values for the separation between pairs of calibration points (i.e. where these separations are measured using an independent and fully calibrated coordinate measuring machine). An objective function for this part of the calibration might involve a difference or error between the independently- calibrated separations and the separations as calculated from the recorded calibration data (based on the current model parameters), such that the model parameters can be optimized to reduce the overall error. The objective function for this part of the calibration could be combined with that for previous part, with the two parts of the optimisation effectively performed in parallel (or combined), or they could be done in series (or separately).
[0188] For this second part of the calibration routine, the machine 10 would be controlled to dwell for a short time on a first calibration member 36, i.e. to hold the position and orientation without any rotational or translational movement, and then move to a second calibration member 36 and do the same. The separation between the first and second calibration points can be determined from the collected calibration data and the current model parameters. For an ideal calibration, that would match the pre-calibrated (known) separation for this pair of calibration members 36 exactly. If not, then the model parameters would be updated to make it match better, i.e. to improve the calibration. This process would be repeated for multiple pairs of calibration points such that the optimisation would take account of multiple separations. A weighting could be applied to favour the rotational part of the calibration (first part) over the distance part of the calibration (second part), or vice versa. Performing the second part of the calibration can significantly improve the accuracy of the machine 10 for absolute distance or length measurements, so that the machine 10 can be considered sufficiently accurate to be used as a coordinate measuring machine rather than just as a comparator.
[0189] The second part of the calibration routine can be combined with the first part of the calibration routine, for example such that the machine would rotate around a calibration point (collecting calibration data for the first part), then dwell for a time (collecting calibration data for the second part), then move to the next calibration point, perform a rotational movement (first part), then dwell (second part), and so on. Or the second part of the routine could be done after the first part has been completed. Furthermore, rather than dwelling on each calibration point in order to collect calibration data that is specific to the second part, it would also be possible to determine the relative positions from the rotational calibration data already collected via the rotational motions. This could be achieved by looking at the average position of the reference point (null position of the sensing member 26) as determined from the data collected by the rotational motions around each calibration point, and use that as the position of the relevant calibration point for the purposes of the comparing calculated separations with known separations from the independent calibration data.
[0190] Figure 17 summarises the steps described above in flowchart format. The correspondence between the steps described above and the steps shown in the flowchart of Figure 17 should be readily apparent without further explanation. Regarding the step which asks if there are any more positions for the calibration artefact, this refers to the mention above of the possibility that the calibration artefact 30 is moved into different positions (in up to six degrees of freedom) around the working volume 11, thereby effectively creating more calibration points on which to perform the calibration method to collect calibration data for the optimisation routine, and thereby improving the machine calibration by ensuring as a wide range as possible of different combinations of actuator lengths are represented. Reference was also made above to an alternative support arrangement 90 for supporting the calibration artefact 30 on the fixed platform 14, and this will now be described with reference to Figure 18 and subsequent drawings. The support arrangement 90 provides a convenient way of moving the artefact 30 into different positions around the working volume 11.
[0191] In the embodiment shown in Figure 4, the calibration artefact 30 is supported directly on the fixed platform 14 in a single position. However, to improve the calibration of the machine 10, the present applicant has appreciated that it would be beneficial if the calibration artefact 30 could be made to assume a plurality of different discrete positions (in up to six degrees of freedom) around the working volume 11. The present applicant has also appreciated that it would be beneficial if, in each of these discrete positions, the calibration artefact 30 is in a stable position relative to the fixed platform 14 so that it cannot easily and inadvertently be knocked out of position (relative to the fixed platform 14) during the performance of the calibration method. The present applicant has also appreciated that it would also beneficial if the calibration artefact 30 is readily couplable to and decouplable from the support arrangement 90, for example so that a different calibration artefact, or even a different type of calibration artefact (for example a gauge artefact), could easily be mounted in place of the current calibration artefact 30.
[0192] These aims are achieved by the embodiment shown in Figure 18, in which the calibration artefact 30 is supported on the fixed platform 14 via a support arrangement 90. As will be explained further below, the support arrangement 90 is adapted to provide a plurality of kinematic couplings in series between the machine 10 and the calibration artefact 30. The support arrangement 90 is adapted to provide a plurality of kinematically-defined calibration positions for the calibration artefact 30 within the machine 10, and between which calibration positions the artefact 30 is moveable, where a position in this context is defined in up to six degrees of freedom, i.e. amounting to a position and / or orientation. Furthermore, the support arrangement 90 is also adapted to provide a kinematically-defined mounting position for the calibration artefact 30 relative to the support arrangement 90 itself (and therefore the fixed platform 14), with the calibration artefact 30 being readily and removably couplable to the support arrangement 90 via the kinematically-defined mounting position. What is meant by a kinematic coupling and a kinematically-defined position in this context will now be explained.
[0193] In the context of locating a first body relative to a second body, kinematic design considerations are met by constraining the degrees of freedom of motion of the first body relative to the second body using the minimum number of constraints (also referred to as exact constraint). Where there is over constraint in a coupling between the two bodies, i.e. where the coupling provides more than the minimum number of constraints by providing at least one redundant constraint, it is not possible to determine with any certainty which combination of constraints will determine the actual position of the first body relative to the second body. Accordingly, the position of the first body relative to the second body is not repeatable, because it is not known at which of the several possible positions the first body will come to rest relative to the second body when they come together again.
[0194] Furthermore, where there is over constraint, the first body does not assume a stable position relative to the second body because it may move between two or more of the different possible positions when a force is applied. An example of this is a four-legged table which will often rock between two different positions when placed on a flat surface. This is because the minimum number of constraints in this context is three, to constrain relative motion in three corresponding degrees of freedom (two rotational degrees of freedom and one translational degree of freedom), whereas a four-legged table has four constraints (created by contact between each of the four legs and the flat surface), such that the coupling between the table and the flat surface is over constrained.
[0195] In general, a single constraint is required for each degree of freedom to be constrained, and a single point contact between two bodies creates a single constraint. Therefore, to constrain a first body relative to a second body in all six degrees of freedom, the coupling between them would need to define six points of contact that are mutually arranged to constrain the two bodies relative to one another in six corresponding degrees of freedom without any redundancy. It will be understood that these points of contact need not be (and in practice would not be) mathematical points in the pure sense. Instead, in practice, each of these would typically be a small area that approximates a point. However, even though each point of contact may not be pure in a mathematical sense, the coupling can still be referred to as a kinematic coupling because it can still be considered to follow kinematic design principles. The term kinematic, as used herein in the context of a coupling between two bodies, is to be interpreted accordingly as meaning kinematic or at least pseudo-kinematic, and similarly for like terms such as kinematically.
[0196] In view of the above, it will be understood that use of a kinematic coupling between a first body and a second body provides a kinematically-defined position for the first body relative to the second body that is unique, discrete, repeatable, predictable and stable, at least in respect of the degrees of freedom that are constrained by the coupling (i.e. ignoring any unconstrained degrees of freedom). Unless otherwise stated, a kinematic coupling as referred to herein is to be understood as providing relative constraint in all six degrees of freedom, with a kinematically-defined position being interpreted likewise as relating to a relative position defined kinematically in all six degrees of freedom. A kinematically- defined position can also be referred to in short as a kinematic location.
[0197] Because of its reliance on the principle of exact constraint, a kinematic coupling between two bodies is also by its nature readily couplable and decouplable. This is because, in order to prevent the two bodies from coming away from the constraints that define their relative position, it would be necessary to provide an additional (and opposing) constraint, such as a clamp, and the additional constraint would itself result in over constraint and would therefore turn it from a kinematic coupling into a non-kinematic coupling. That said, a kinematic coupling does typically require some form of nesting force (or biasing force) to hold the coupled bodies together, but without creating an additional constraint. In this respect, a theoretical constraint is not just a contact point alone, but also includes a corresponding nesting force that maintains the contact. The nesting force is a force vector that goes through the contact point normal to the surfaces of contact, but these can be vectorially combined into a single force. For example, a gravitational or magnetic force can be used as a nesting force. By way of further background, these concepts are explored further in: (a) “Mechanical Design of Laboratory Apparatus” by H. J. J. Braddick, Chapman & Hall, London, 1960, pages 11-30; (b) “Exact constraint” by James G. Skakoon, Mechanical Engineering, September 2009; (c) “Kinematic Couplings: A Review of Design Principles and Applications” by Alexander Slocum, International Journal of Machine Tools and Manufacture 50.4 (2010): 310-327; and (d) “Principles and Techniques for Designing Precision Machines” by Layton C. Hale, Ph.D. thesis, Massachusetts Institute of Technology, February 1999.
[0198] It is noted that the support arrangement 90 of Figure 18 can be used in conjunction with any calibration method, and is not limited to use in conjunction with a calibration method as described herein. The calibration method and the support arrangement as set out herein should therefore be considered as relating to independent aspects of the present invention.
[0199] The support arrangement 90 of Figure 18 comprises three main parts: an upper support member 40, a lower support member 50 and a base support member 60. The upper support member 40 comprises a plate 42 and a block 44, with the plate 42 being arranged above the block 44 when in a working orientation. The lower support member 50 similarly comprises a plate 52 and a block 54, though inverted compared to the upper support member 40.
[0200] The base support member 60 comprises a plate 62, a shaft housing 64 on the underside of the plate 62, and a shaft 65 that is rotatable and slidable within the shaft housing 64. The base support member 60 also comprises a plurality of fixed legs 66 which provide support for the plate 62. The fixed legs 66 of the base support member 60 are in a hexapod arrangement for structural rigidity, and also to provide an open structure such that the support arrangement 90 can be mounted onto the fixed platform 14 of the machine 10 around other elements that may be supported on the fixed platform 14, without having to remove those other elements first. A first coupling 81 is provided between the plate 42 of the upper support member 40 and the plate 32 of the calibration artefact 30, a second coupling 82 is provided between the block 54 of the lower support member 50 and the block 44 of the upper support member 40, and a third coupling 83 is provided between the plate 62 of the base support member 60 and the plate 52 of the lower support member 50. Also shown schematically in Figure 18, but not labelled to avoid clutter, are kinematic coupling features associated with each of the three couplings 81, 82 and 83.
[0201] The first coupling 81 provides a kinematically-defined mounting position for the calibration artefact 30 relative to the upper support member 40, with the calibration artefact 30 being readily and removably couplable to the upper support member 40 via the kinematically-defined mounting position. Figures 19A and 19B show in more detail the coupling features of the plate 42 (of the upper support member 40) and the plate 32 (of the calibration artefact 30) that form the first coupling 81.
[0202] The coupling features of plate 32 engage with those of plate 42 to form a kinematic or at least pseudo-kinematic coupling between these two parts. Three protruding balls are provided on plate 32 and which engage respectively with three kinematic features on plate 42 in a corresponding triangular arrangement. The three kinematic features on plate 42 are a cluster of three protruding balls (creating three contact points or constraints when engaged with the corresponding ball on plate 32), a v-shaped feature formed e.g. of two protruding cylinders (creating two contact points or constraints when engaged with the corresponding ball on plate 32), and a flat feature (creating a single contact point or constraint when engaged with the corresponding ball on plate 32). These features define six points of contact (in a 3-2-1 arrangement) when in a coupled state, thereby creating six constraints to relative movement between plates 32 and 42, in accordance with kinematic design principles set out above. Not only does the first coupling 81 provide a stable and repeatable mounting position for the calibration artefact 30, but it also enables the calibration artefact 30 to be easily removed and replaced by a different calibration artefact 30a as illustrated in Figures 29 to 31. The calibration artefact 30a illustrated in these drawings comprises a plurality of verification members 36a, in this example being a plurality of gauge blocks 34a, and as such can also be referred to as a verification or certification artefact 30a. Certification or verification of the machine 20 can then be performed with the gauge blocks 34a in place, for example to verify the machine according to the ISO 10360-2 standard (published by the International Organization for Standardization). The gauge blocks 34a would be measured in advance using an independent CMM, and dimensional measurements of the gauge blocks 34a using the machine 10 would be compared against the independent measurements to verify or certify the machine 10. A different set of kinematic coupling features could be used for mounting the certification artefact 30a to avoid wearing out the kinematic coupling features used for the calibration artefact 30, since the certification artefact 30a would typically be heavier. It is noted that the calibration artefact 30a is referred to as a calibration artefact though it is not typically used for calibration as such, but more for verification or certification.
[0203] The second coupling 82 provides two kinematically-defined mounting positions for the upper support member 40 relative to the lower support member 50, with these two mounting positions being 180 degrees apart. Figures 20A and 20B show in more detail the coupling features of the block 54 (of the lower support member 50) and the block 44 (of the upper support member 40) that form the second coupling 82. Six protruding balls are provided on block 44, providing two sets of three balls, each of which sets engages with three kinematic features on block 54 in a corresponding triangular arrangement, thereby providing two different mounting positions for the upper support member 40 relative to the lower support member 50. The three kinematic features on block 54 are three v-shaped features, each of which provides two points of contacts with a corresponding ball on block 44. These features define six points of contact (in a 2-2-2 arrangement) when in a coupled state, thereby creating six constraints to relative movement between blocks 44 and 54, in accordance with kinematic design principles set out above.
[0204] The blocks 44, 54 can together be considered to form a “split block” arrangement, which is effectively a single block with an angled split provided by the second coupling 82. When the upper support member 40 and lower support member 50 are decoupled and recoupled in the other of the available relative positions, this causes the angle of plate 42 to be changed relative to plate 52, and hence also the angle of the calibration artefact 30 (which is supported on the upper support member 40 via the first coupling 81). This process is illustrated in Figures 22 to 24, from which it can be seen that the calibration artefact 30 has been moved from a horizontal orientation in Figure 22 to an angled orientation in Figure 24 because of the split block arrangement. Again, each of these positions is stable and repeatable by virtue of the properties of a kinematic coupling.
[0205] Locating features can also be provided to assist in locating the blocks 44, 54 relative to one another, such as locating pins 56 on block 54 as shown in Figure 32 which locate into locating recesses 46 in block 44. Although these locating features 54, 56 may contact one another during a coupling operation, to assist in guiding the kinematic coupling features towards each other so that they properly engage with one another, when in a fully coupled state these locating features 54, 56 will no longer be contacting one another to avoid creating any additional constraints, because doing so would otherwise lead to creating over constraint in the second coupling 82.
[0206] The third coupling 83 provides a plurality of different kinematically-defined angular positions for the lower support member 50 relative to base support member 60. Figures 21A and 21B show in more detail the coupling features of the plate 62 (of the base support member 60) and the plate 52 (of the lower support member 50) that form the third coupling 83. In the example shown, a total of twenty -four discrete mounting positions are created that are 15 degrees apart. Twenty-four protruding balls are provided on plate 52, providing twenty- four sets of three balls, each of which sets engages with three kinematic features on plate 62 in a corresponding triangular arrangement, thereby providing twenty- four different mounting positions for the lower support member 50 relative to base support member 60. The three kinematic features on plate 62 are three v-shaped features, each of which provides two points of contacts with a corresponding ball on plate 52. These features define six points of contact (in a 2-2-2 arrangement) when in a coupled state, thereby creating six constraints to relative movement between plates 52 and 62, in accordance with kinematic design principles set out above.
[0207] As illustrated in Figure 25, the third coupling 83 is broken by sliding the shaft 65 upward within the shaft housing 64, thereby decoupling the lower support member 50 from the base support member 60, whilst still retaining support for the lower support member 50. The shaft housing 64 and shaft 65 can be considered to form part of a motion system for moving the lower support member 50 and the base support member 60 into different relative positions. When decoupled, the lower support member 50 can be rotated around the base support member 60 to another of the twenty-four kinematically-defined positions, as illustrated in Figure 26. This rotation mechanism may be powered, for example using a rotary motor. Alternatively, it may comprise a passive rotary joint, with the machine 10 being controlled to move the platforms 12, 14 relative to one another so that the probe 20 applies a force to the side of the lower support member 50 (for example by pushing gently on the side of the artefact 30, which is coupled to the lower support member 50 via the upper support member 40), thereby rotating support members 50, 60 relative to each other around the shaft 65. The shaft 65 can then be lowered within the shaft housing 64 to recouple the lower support member 50 to the base support member 60 in the new kinematically-defined position, as illustrated in Figure 27. The shaft 65 and shaft housing 64 preferably have clearance to ensure that the bearing does not dominate the position and so that the kinematics can find alignment. This decoupling, rotating and recoupling process could be entirely automated, or some part of it could be manually operated (for example rotation to a new position). The automation (or part automation) of this process is facilitated by use of kinematic couplings, which can readily be decoupled and then recoupled without the need for complicated tools or operations. All that is required to break the coupling is the application of a force that is greater than the biasing or nesting force (gravitational and / or magnetic) which holds the kinematic coupling together.
[0208] The combination of the two kinematically-defined positions defined by the second coupling 82 and the twenty -four kinematically-defined positions of the third coupling 83 thereby defines a total of 48 kinematically-defined positions for the calibration artefact 30 relative to the support arrangement 90, and thereby relative to the fixed platform 14 of the machine 10. For example, Figure 18 shows the calibration artefact 30 in a horizontal orientation, while Figure 28 shows the calibration artefact 30 in an angled orientation, having been subject to the operations illustrated in Figures 22 to 27 in turn.
[0209] Each of the calibration balls 34 is labelled with letters A to G to assist in visualising how their positions change in each of Figures 22 to 27. In Figure 28 a swivel calibration routine is being performed on the calibration ball 34 that is labelled B, which was in a similar angular position as in Figure 18 but with the calibration artefact 30 now at an angle. Figure 28 also illustrates that the swivel axis need not be vertical but could be angled to the vertical, as shown in the swivel calibration operation being performed on the calibration ball 34 that is labelled E.
[0210] Also shown in Figure 28 are three planes Pl, P2, P3 which are defined respectively by the coupling features of the first, second and third couplings 81, 82, 83. In this respect, the coupling features of each of the three couplings 81, 82, and 83 are arranged substantially in a plane, such that each coupling 81, 82, 83 can be represented as a plane or planar surface. The three planes Pl, P2, P3 pass through the coupling features of the first, second and third couplings 81, 82, 83 respectively, at least when coupled. The first, second and third couplings 81, 82, 83 are arranged in series between the fixed platform 14 of the machine 10 and the artefact 30, and accordingly the planes Pl, P2, P3 are likewise arranged in series. Each of these planes Pl, P2, P3 is angled with respect to the previous (or subsequent) plane in the series (i.e. in pairs Pl, P2 and P2, P3). Corresponding respective axes Al, A2, A3 are also illustrated in Figure 28, being orthogonal to the planes Pl, P2, P3 respectively. Each of these axes Al, A2, A3 is also angled with respect to the previous (or subsequent) axis in the series (i.e. in pairs Al, A2 and A2, A3).
[0211] In this embodiment, rotation is provided between different kinematic locations around axes A2 and A3, and since these axes A2, A3 are angled with respect to each other, these in combination provide for rotation of the artefact 30 between different kinematically-defined positions in the working volume 11 that differ in two rotational degrees of freedom. The rotation R shown in Figure 23 is about axis A2 (though there may also be a translational degree of freedom depending on where the different kinematic locations are provided, i.e. it is not necessarily a pure rotation), while the rotation R shown in Figure 26 is about axis A3 (which in theory has no translational degree of freedom, since it is in theory a constrained rotation around the shaft 65, with the kinematic locations of the third coupling 83 being rotationally symmetric about the axis A3). Rotation could also be provided for the artefact 30 around axis Al, by using a different form of the first coupling 81 having e.g. two kinematic locations 180 degrees apart, which would thereby provide for rotation of the artefact 30 between different kinematically-defined positions in the working volume 11 that differ in three rotational degrees of freedom.
[0212] It will be appreciated that the kinematic coupling features of each of the couplings 81, 82, 83 shown in the above drawings could be reversed from one side of the coupling to the other. Movement of one side of each of the couplings 81, 82, 83 relative to the other could be motorised, or could be manually operated. The linear movement of the shaft 65 within the shaft housing 64 as shown in Figures 25 and 27 could be motorised, while the rotational movement shown in Figure 26 could be manual. Alternatively, the rotational movement shown in Figure 26 could be provided by controlling the machine 10 to move the probe 20 into contact with the side of the calibration artefact 30, thereby rotating the lower support member 50 relative to the base support member 60 around the shaft 65; only a gentle sideways contact would be required, which would be insufficient to unseat the calibration artefact 30 from the upper support member 40.
[0213] Using the support arrangement 90, it becomes possible to move the calibration artefact 30 around using the machine 10 to cover a significant amount of the working volume 11, using the split kinematic of the second coupling 82 to produce both flat and angled runs. A much greater level of accuracy for the machine 10 can be achieved by placing the artefact 30 in many locations (using the support arrangement 90 of Figure 18) compared to only one location (as shown in Figure 4). A single complex calibration artefact could instead be used that covers more of the volume, but such a calibration artefact would be large, heavy, not easily portable, and would not allow machines to be calibrated easily on site.
[0214] The first coupling 81 described above could be replaced by a fixed and / or rigid coupling, with the second and third couplings 82, 83 being as described before. In this way, the upper support member 40 would effectively form part of the calibration artefact 30, with the support arrangement 90 effectively comprising just the lower support member 50 and the base support member 60. This would still be a useful embodiment of the present invention because it would still enable the calibration artefact 30 to be moved between a plurality of different kinematic locations, and it would also still enable the calibration artefact 30 to be easily coupled to and decoupled from the support arrangement 90 via the second coupling 82. This would be the case even if the second coupling 82 only provided a single kinematic location for the calibration artefact 30 relative to the lower support member 50, because a plurality of kinematic locations would still be available to the artefact 30 via the third coupling 83 between the lower support member 50 and the base support member 60. It will be appreciated that the absolute angle difference between different index positions is not important, because the purpose of the support arrangement 90 is merely to provide different positions for the calibration artefact 30. However, if these angle differences are measured independently then they could also be used in the cost function for the optimisation routine, by comparing the angles as determined by the machine 10 with the independently measured angles.
[0215] It will be appreciated that the repeatability provided by the various kinematic couplings is useful, though is not the only or even the main reason for more using a kinematic form of coupling. In this respect, it useful that the various parts can be uncoupled and recoupled back into the same repeatable relative position. However, repeatability in a metrology sense is not particularly necessarily, but rather it is more useful to have repeatability that is at least sufficient to ensure that the sensing member 26 comes into a sensing relationship with the calibration member 36 (so that the servo null comes into effect) even based on a pre-written control routine executed by the controller 15, i.e. the features are at least roughly where they are expected to be. As a result, no additional probing is required in advance in order to determine the positions of the calibration members 36.
[0216] Instead, the kinematic nature of the various couplings is perhaps more useful for the stability that a kinematic coupling provides, rather than repeatability as such. In this respect, as explained in more detail above, a kinematic coupling provides an exact form of constraint, thereby preventing the sort of rocking or other type of uncontrolled movement that is associated with a coupling that provides over constraint. Rocking of the calibration artefact 30 between two different positions would be undesirable during the collection of calibration data, because the position the calibration member 36 would not be constant, and the use of kinematically-defined positions overcomes this potential problem.
[0217] However, it will be appreciated that the properties of a kinematic form of coupling provide useful benefits independently, such as stability, repeatability, and certainty. For example, stability could be provided just by clamping a non- kinematic coupling tightly, but then repeatability would be sacrificed; for example, merely clamping two flat plates together to make them conform to one another would mean that it is no longer known where the calibration members 36 will be placed within the working volume 11. Also beneficial with a kinematic coupling is the ease with which the coupled members can be decoupled and recoupled to one another in different configurations (due to the exact nature of the constraint), and without manual intervention. This enables automation of the process of decoupling, moving and recoupling the various members of the support arrangement 90, such as described above with the shaft 65 which is provided in connection with the third coupling 83 between the base support member 60 and the lower support member 50. The kinematic coupling can easily be broken (e.g. without having to manually loosen a clamp) and then reformed, in the knowledge that the reformed coupling will be stable (without rocking or sliding of the coupled members) without the need to tighten a clamp or similar rigid constraint.
[0218] The various drawings referenced above are relatively schematic in nature, for clarity of explanation. A more realistic embodiment is illustrated in Figures 33 to 36, with like reference numerals being used for like parts, so that a detailed description thereof is not required. The calibration artefact 30 shown in Figures 33 and 36 includes a gauge block 38 that is not shown in earlier drawings of the calibration artefact 30. The gauge block 38 could be relatively small, for example around 10 mm in each dimension, and can be provided so that the calibration artefact 30 can be used not only for the swivelling type of calibration routine described above, using the calibration balls 34, but also for a verification or certification routine using the gauge block 38 (similar to what is described above in respect of the calibration artefact 30a of Figures 30 and 31), thereby creating a very versatile form of calibration artefact that can serve multiple purposes within a single calibration routine.
[0219] As shown in Figure 33, the support arrangement 90 can be conveniently placed over any existing objects in the workspace, without having to remove them first. For example, in Figure 33 the support arrangement 90 has been positioned over the top of a workpiece loading system 70 including a rail 72 and a workpiece support member 74 which is moveable along the rail 72. Other features that are worthy of mention are the use of asymmetry in various parts of the support arrangement 90 to provide balance and to prevent clashing, and the use of magnets to provide preload between two halves of each coupling 81, 82, 83. Advantageously, it can be seen that the calibration members 36 are recessed within the plate 32 of the calibration artefact 30 for protection, so that they cannot easily be knocked out of position inadvertently.
[0220] It will be appreciated that the calibration artefact 30 need not provide multiple calibration members 36 (multiple calibration points). A calibration artefact 30 could provide just a single calibration point, with multiple calibration points being created via operation of the support arrangement 90.
[0221] One or more temperature sensors can be provided within or mounted to the calibration plate 32. These can be used to apply a thermal or temperature-based compensation or correction to the pre-calibrated data for the ball separations, which is used in the second part of the optimisation described above. The calibrated separations will have been measured at a certain temperature, and those separations will change with operating temperature as the artefact 30 expands and contracts. This can be accounted for by way of the temperature values from the temperature sensors.
[0222] The probe 20 is described above as corresponding to the SP25 modular scanning probe system available from Renishaw pic, but it will be appreciated that other types of probe system would be suitable for use in an embodiment of the present invention. A non-contact probe could be used, for example an optical probe or camera probe. The sensor used to a provide a signal dependent on the position of a calibration point (e.g. the centre of calibration member 36) within the coordinate frame of the fixed platform 14 relative to a reference point (e.g. the centre of sensing member 26) within the coordinate frame of the moving platform 12 could for example be a fixed vision based system arranged to one side of the working volume.
[0223] However, the design of the SP25 scanning probe is beneficial in the context of the present invention because it is doubly supported when the sensing member 26 is in contact with the calibration member 36. In this respect, there can be an error introduced when rotating the probe 20 due to gravitational forces distorting the probe 20 as it is angled relative to gravity. With the stylus support (scanning module 22) of the SP25 probe, a pivot is formed on one side (by interaction between the sensing member 26 and the calibration member 36 during the rotational movement) and also on the other side by a spring which forms a second pivot. A probe having a stylus 23 that is supported by two pivot points (one at each end) reduces the bending forces on the probe 20 and makes it less likely to be affected by forces due to gravity.
[0224] The use of a deflectable stylus as the position sensor is preferable over for example a Linear Variable Differential Transformer (LVDT) type of position sensor, because LVDTs inherently have friction, so they are not always giving accurate readings. A probe with deflectable stylus overcomes this problem. Furthermore, with a deflectable stylus 23 like that described in the present application, having a cluster of stylus balls 24, it is possible to use very small diameter calibration balls 34 (or vice versa), for example 3mm or 6mm. It would not be possible to provide an LVDT cluster arrangement at such small scale. In addition, having a bulky sensor arrangement near the point of rotation will limit the range of angles around which the probe can swivel; with the embodiment described herein the bulk is spaced apart from the rotation point so it is possible to swivel about a large angle.
[0225] Although it has been described above that the servo null loop aims to maintain a null or zero deflection, which amounts to a zero separation between the calibration point and the reference point, it would be possible instead to operate the loop to maintain a predetermined or known deflection, which could be any fixed value; this could still be referred to as the null position. This was already anticipated to some extent with the example in which the null position is set to [0 0 300] pm, because in that example the null position in the Z direction (in the sensor coordinate frame) is non-zero. But even the X and Y null deflection values could be non-zero. It would even be possible to use a target position for the null servo loop which varies with time, so long as it is known how the target position varies with time. This information would effectively form part of the calibration data that is used in the optimisation routine to find new model parameters.
[0226] Referring again to the XYZABC coordinate system mentioned above, typically the centre of the moving coordinate frame is the centre of the platform 12, so a “quill offset” is added to move the origin to the centre of the sensing member 26. Accordingly, changes in ABC will lead to rotation around the sensing member 26. A separate calibration routine could be performed to determine the quill offset (for example, touching around a calibration ball to determine position of the sensing member 26). However, it should be appreciated that it does not actually matter if the rotation is not exactly around the null position of the sensing member 26 stylus tip, because the servo null loop is continually making adjustments for any such errors. Indeed, if the servo null loop was infinitely fast and effective, the rotation could be around any point, knowing that servo null loop will bring it to where it should be.
[0227] The servo loops used of Figure 15 (particularly for the servo null loop) are ideally acting continuously, like a traditional analogue servo loop. However, in practice these servo loops would be a digitised and clocked version of this, so that in practice there would be a clock signal that operates for example every 0.5 ms, which is effectively as continuous as it can be within hardware and processing constraints.
[0228] As mentioned above, the length of a strut can be derived from the encoder readings using the scale and offset parameters. In addition to this, each strut may be laser mapped before use, using a laser calibration device such as the XL-80 from Renishaw pic, to create an error map (or look-up table) between the leg lengths (at a plurality of extensions) derived from the scale / offset parameters, and the actual length as measured by the laser calibrator. This mapping can be applied on top of the length values from the scale / offset calculation.
[0229] In the above embodiment, it is described that calibration data is gathered for all calibration points and then processed together in an optimisation routine. It could instead be the case that calibration data associated with each calibration ball or calibration artefact position is analysed separately, with the model parameters being optimised after each. It will also be understood that minimising a first objective function and maximising a second objective function that is defined in an opposite sense to the first objective function are considered to be equivalent. An objective function could also be referred to as a loss function or a cost function, and an optimisation routine could also be referred to as an optimisation method or optimisation algorithm.
[0230] It will be appreciated that the present invention can be applied not only to calibration of a machine, but also to verification, certification, or performance checking of a machine. The terms calibration method, calibration artefact, calibration member, calibration data, calibration point and so on used herein should be interpreted accordingly in a broad sense, depending on the intended application, and not limited only to calibration as such. In other words, the concepts described herein apply not only to updating of the model parameters (calibration) but also checking or verification of the model parameters (verification or certification). Accordingly, these terms should be understood in the context of calibrating or otherwise characterising the machine. As one example, the term calibration artefact includes within its scope a gauge artefact. The terms target point, target artefact and target member could be used instead of calibration point, calibration artefact and calibration member respectively.
[0231] A machine controller for controlling the operation of the coordinate positioning machine may be a dedicated electronic control system and / or may comprise a computer operating under control of a computer program. For example, the machine controller may comprise a real-time controller to provide low-level instructions to the coordinate positioning machine, and a PC to operate the realtime controller. It will be appreciated that operation of the coordinate positioning machine can be controlled by a program operating on the machine, and in particular by a program operating on a coordinate positioning machine controller such as the controller 15. Such a program can be stored on a computer-readable medium, or could, for example, be embodied in a signal such as a downloadable data signal provided from an Internet website. The appended claims are to be interpreted as covering a program by itself, or as a record on a carrier, or as a signal, or in any other form.
Claims
CLAIMS1. A support arrangement for supporting an artefact within a coordinate positioning machine for a method of calibrating or otherwise characterising the machine, wherein the support arrangement is adapted to provide a plurality of kinematically-defined positions for the artefact within the machine via a plurality of kinematic couplings arranged in series between the machine and the artefact.
2. A support arrangement as claimed in claim 1, wherein each of the plurality of kinematically-defined positions differs from at least one other in or by at least one rotational degree of freedom.
3. A support arrangement as claimed in claim 1 or 2, wherein each of the plurality of kinematically-defined positions differs from at least one other in or by at least two rotational degrees of freedom.
4. A support arrangement as claimed in claim 1, 2 or 3, wherein the calibration artefact is readily couplable to and readily decouplable from the support arrangement via a predetermined coupling of the series, such as the final coupling in the series in order from machine to artefact.
5. A support arrangement as claimed in any preceding claim, wherein at least one coupling of the series is arranged at an angle relative to at least one adjacent coupling of the series.
6. A support arrangement as claimed in claim 5, when dependent on claim 4, wherein the at least one coupling arranged at an angle includes the predetermined coupling.
7. A support arrangement as claimed in claim 5 or 6, wherein the angle is an acute angle.
8. A support arrangement as claimed in any preceding claim, wherein each of the couplings is adapted to provide at least one kinematically-defined relativeposition.
9. A support arrangement as claimed in any preceding claim, wherein at least one coupling is adapted to provide a plurality of kinematically-defined relative positions.
10. A support arrangement as claimed in claim 9, comprising a motion system operable to decouple the members of the at least one coupling, retaining support whilst moving or at least allowing the members to be moved relative to one another to another of the kinematically-defined relative positions, and then operable to recouple the members in the new kinematically-defined relative position.
11. A support arrangement as claimed in claim 9 or 10, wherein each of at least two of the couplings are adapted to provide a plurality of kinematically- defined relative positions.
12. A support arrangement as claimed in claim 11, wherein each of at least two of the couplings provides a different number of kinematically-defined relative positions.
13. A support arrangement as claimed in any one of claims 9 to 12, wherein the plurality of kinematically-defined relative positions differ from one another in at least one rotational degree of freedom.
14. A support arrangement as claimed in claim 13, wherein the plurality of kinematically-defined relative positions differ from one another substantially in only one degree of freedom.
15. A support arrangement as claimed in claim 13 or 14, wherein the rotational degree of freedom is about an axis orthogonal to the coupling.
16. A support arrangement as claimed in claim 13, 14 or 15, when dependent on claim 5, wherein at least two of the couplings are adapted to provide such arotational degree of freedom, and are arranged at an angle relative to one another.
17. A support arrangement as claimed in any one of claims 13 to 16, when dependent on claim 10, wherein the motion system comprises a rotation mechanism for providing or at least allowing rotation around the rotational degree of freedom.
18. A support arrangement as claimed in claim 17, wherein the rotation mechanism is powered, or is passively operable for example by controlling the machine to push the coupled members relative to each other around the rotation mechanism.
19. A support arrangement as claimed in any preceding claim, comprising at least three of the couplings.
20. A support arrangement as claimed in claim 19, wherein the at least three couplings form at least two pairs of couplings, and wherein the angle between the couplings of one of the pairs is substantially the same as the angle between the couplings of another of the pairs, thereby enabling the first and last of the at least three couplings to be arranged in parallel.
21. A support arrangement as claimed in any preceding claim, wherein the artefact is a calibration artefact.
22. A support arrangement as claimed in claim 21, wherein the artefact is a verification or certification artefact such as a gauge artefact.
23. A support arrangement as claimed in any preceding claim, comprising a plurality of support members coupled in series between the machine and the artefact via the plurality of couplings, with each coupling of the plurality being provided between a different pair of adjacent support members or between a support member and the artefact.
24. A support arrangement as claimed in claim 23, comprising a rigid couplingbetween the support arrangement and the machine.
25. A support arrangement as claimed in any preceding claim, comprising first and second support members, wherein a first of the couplings is defined between the first member and the artefact and is adapted to provide at least one kinematically-defined position for the artefact relative to the first support member, and wherein a second of the couplings is defined between the first and second support members and is adapted to provide a plurality of kinematically-defined positions for the first support member relative to the second support member.
26. A support arrangement as claimed in claim 25, comprising a third support member, wherein a third of the couplings is defined between the second and third support members and is adapted to provide a plurality of kinematically-defined positions for the second support member relative to the third support member.
27. A support arrangement as claimed in claim 26, when dependent on claim 17, wherein such a rotation mechanism is provided in connection with the third coupling.
28. A kit comprising a support arrangement as claimed in any preceding claim, and at least one calibration artefact.
29. A kit as claimed in claim 28, comprising a plurality of different calibration artefacts or types of calibration artefact.
30. A kit as claimed in claim 29, wherein at least one of the plurality of calibration artefacts is a verification or certification artefact such as a gauge artefact.
31. A coordinate positioning machine comprising a kit as claimed in claim 28, 29 or 30.