Method and system for aligning coordinate frames of different independent coordinate measurement systems
The method and system for aligning coordinate frames using angular and translational offset adjustments address the challenge of misalignment in CNC machine operations, enhancing accuracy and efficiency.
Patent Information
- Application Number
- JP2024194246
- Authority / Receiving Office
- JP · JP
- Patent Type
- Applications
- Current Assignee / Owner
- Priority Date
- 2023-11-30
- Filing Date
- 2024-11-06
- Publication Date
- 2025-06-24
AI Technical Summary
Modern manufacturing processes face challenges in aligning coordinate frames from different independent measurement systems due to component wear and distortion, leading to translational and rotational errors in CNC machine operations, which are time-consuming and labor-intensive.
A method and system for aligning coordinate frames by initializing and determining angular and translational offsets between different measurement systems, using iterative least squares and weighted least squares algorithms to adjust the part coordinate systems, ensuring accurate alignment.
Improves convergence speed and accuracy in aligning coordinate systems, reducing errors and enabling efficient CNC machine operations.
Smart Images

Figure 2025093867000001_ABST
Abstract
Description
Technical Field
[0001] The present disclosure generally relates to methods and systems for aligning coordinate frames, and more particularly to algorithms for aligning coordinate frames obtained using different independent coordinate measurement systems.
Background Art
[0002] Modern manufacturing processes generally start digitally, from the design of components by computer-aided design (CAD) to computer-aided manufacturing (CAM). During manufacturing or repair, physical components may be fixed, for example, within a computerized numerical control (CNC) machine to enable various operations such as joining two components or adding or removing material at various positions of the component.
[0003] However, some components, particularly those that move during operation, may experience significant wear and / or distortion, such that the current dimensions, shape, and / or form of the component may deviate substantially from the original dimensions, shape, and / or form of the component as represented in the original or nominal CAD file. Thus, the original CAD file may provide only limited utility when performing repair operations on the component using a CNC machine. In such cases, prior to repairing the component using a CNC machine tool, the current dimensions, shape, and / or form of the component are measured using, for example, a coordinate measurement machine (CMM), a 3D scanner, a laser line scanner, and / or a FaroArm. Measurement data collected using a CMM is represented in a coordinate measurement system and may be used to generate an adaptive toolpath for a CNC machine tool. However, for various reasons, the component may shift from its nominal position during repair operations using a CNC machine, such that the generated adaptive toolpath may contain inherent errors associated with the misalignment of the component. The inherent errors included in the adaptive toolpath may include translational and / or rotational errors, which are generally uneconomical to determine and compensate for in a high-volume production environment.
[0004] Different coordinate measurement systems are equipped with different measuring devices and may use different measurement techniques and / or measurement algorithms to generate coordinate frames corresponding to the same component. Therefore, it is difficult to align the coordinate frame of a coordinate measurement system using one measurement technique with that of a coordinate measurement system using another measurement technique. Thus, when a movable part is fixed to a CNC machine tool for repair, depending on the amount of wear and / or distortion of the component, including determining whether the component is correctly positioned on the CNC machine tool, the relative position of the component is based on the first coordinate frame of the measurement data of the component collected using a CMM (or coordinate measurement technique). It cannot be accurately determined without determining whether it matches the second coordinate frame based on another coordinate measurement technique. Such misalignment of coordinate frames may also occur due to the complex 3D shape of the component or manufacturing variations of the component. Such a process can be time-consuming or labor-intensive. And if the coordinate frame corresponding to the position of the component on the CNC machine tool does not match the coordinate frame corresponding to the measurement of the component using a CMM, the adaptive tool path set may not be appropriate due to the above-mentioned inherent errors.
[0005] Therefore, there is a need for a method or technique for aligning coordinate frames obtained using different independent coordinate measurement systems and measurement techniques. Summary of the Invention
[0006] In one aspect, a method for aligning coordinate frames obtained from at least two different coordinate measurement systems is disclosed. The method includes (i) initializing a second coordinate system and a second part coordinate system of a component positioned in the second system, (ii) generating a second data point set associated with the second system, the second data point set including spatial measurement data of a plurality of control points identified on a component associated with the second part coordinate system, (iii) receiving a first data point set associated with the first system, the first data point set including spatial measurement data of a plurality of control points identified on a component with respect to a first part coordinate system associated with the first system when the component is positioned within the first system, (iv) determining an alignment between the second part coordinate system and the first part coordinate system by estimating at least one of an angular offset and a translational offset between the second part coordinate system and the first part coordinate system. And / or (v) if the determined alignment indicates that the alignment between the second part coordinate system and the first part coordinate system has not been performed, (a) applying at least one of an angular rotation and a translational displacement to the component positioned in the second system, (b) determining an alignment between the second part coordinate system and the first part coordinate system, and repeating applying at least one of an angular rotation displacement and a translational displacement until the second part coordinate system is aligned with the first part coordinate system.
[0007] In another aspect, a system is provided for aligning coordinate frames obtained from at least two different coordinate measurement subsystems. The system includes at least one memory configured to store instructions and at least one processor programmed to execute the stored instructions, the instructions causing the system to (i) initialize a second coordinate frame and a second part coordinate system of a component positioned in a second system, (ii) generate a second data point cloud including spatial measurement data of a plurality of control points identified on the component with respect to the second part coordinate system, (iii) cause a first data point cloud associated with a first system to receive a first data set of data points associated with the first system, the first data set including spatial measurement data of a plurality of control points identified on the component with respect to a first part coordinate system associated with the first system when the component is positioned in the first system, (iv) determine an alignment between the second part coordinate system and the first part coordinate system by estimating at least one of an angular offset and a translational offset between the second part coordinate system and the first part coordinate system, and / or (v) if the determined alignment does not indicate an alignment between the second part coordinate system and the first part coordinate system, then (a) apply at least one of an angular rotation and a translational displacement to the component, (b) determine an alignment between the second part coordinate system and the first part coordinate system, and repeat applying at least one of an angular rotation and a translational displacement until the second part coordinate system is aligned with the first part coordinate system.
Brief Description of the Drawings
[0008]
Figure 1
Figure 2
Figure 3
Figure 4
Figure 5
Figure 6
[0009] When introducing elements of the various embodiments disclosed in this specification, the articles "a", "an", "the", and "said" mean that there are one or more of such elements. The terms "comprising", "including", and "having" are used in an inclusive sense and mean that additional elements other than the recited elements may exist.
[0010] Unless otherwise indicated, approximate language, such as "substantially," "essentially," "about," and the like, as used herein, are meant to indicate a degree of approximation that would be recognized by one of ordinary skill in the art and not an absolute or perfect degree. Thus, values modified by terms such as "about," "substantially," and "essentially" are not to be construed as being limited to the specific precise values. In at least some instances, the approximation language may correspond to the precision of the instrument for measuring the value. Further, unless otherwise specified, terms such as "first," "second," etc., are used herein as mere labels and are not intended to impose an order, position, or hierarchical requirement on the items they refer to. Further, a reference to a "second" item does not require or exclude the presence of a "first" or smaller numbered item, or a "third" or larger numbered item.
[0011] The embodiments described herein relate to various methods that can be used to align different coordinate frames from different coordinate measurement systems. Each coordinate measurement system generates a coordinate frame using its respective measurement technique. By using the techniques described herein, different coordinate systems can be aligned to perform useful operations on components using a CNC machine based on a coordinate measurement system different from the coordinate measurement system used by a coordinate measuring machine (CMM) to measure the components. References to CMMs and / or CNC machines in the present disclosure are exemplary and do not limit the scope of the embodiments described herein.
[0012] Generally, for components that need to be repaired using a CNC machine, the component can first be measured using a CMM to generate the part coordinate system (or coordinate frame) of the component. Based on the part coordinate system of the component generated using the CMM, adaptive tool paths for performing repair operations on the component using the CNC machine can be generated. However, when the component is transferred to the CNC machine tool for repair operations, due to the change from the positioning in the CMM to the positioning in the CNC machine tool, there may be inherent errors (e.g., translational errors and / or rotational errors) corresponding to the feature points that require repair operations. Therefore, before performing repair operations at the feature points using the adaptive tool paths generated based on the coordinate system of the component using the CMM, it is necessary to synchronize or adjust the coordinate system of the component within the CNC machine tool so that the translational errors and / or rotational errors are within the allowable error range or approximately zero.
[0013] Generally, when precise fixtures and / or adapters are used, the component may be placed at its nominal position within the CNC machine, and thus coordinate frame alignment may not be necessary. However, when precise fixtures and / or adapters are not used, the component may not be placed at its nominal position within the CNC machine, and coordinate frame alignment may be required.
[0014] However, the alignment of coordinate systems as described herein may provide advantages such as improved convergence speed and accurate alignment of coordinate systems over the methods currently used for coordinate system alignment. In the coordinate system alignment method according to an exemplary embodiment, the direction and / or position of the part coordinate system of the component corresponding to the CMM in a CNC machine tool are determined, and the translational offset correction and / or rotational offset correction applied to the part coordinate system of the component corresponding to the CNC machine tool are determined to align the part coordinate systems of the CMM and the CNC machine in a three-dimensional (3D) space with each other.
[0015] Part coordinate systems are generally represented or referred to using coordinate frames, and the coordinate frame corresponding to the part coordinate system of the CMM is aligned with the coordinate frame corresponding to the part coordinate system of the CNC machine using the least squares method. However, the least squares method generally takes time. This is because each error is minimized with equal weights corresponding to all the criteria of the coordinate frame (e.g., the area of the coordinate frame and / or the direction of the coordinate frame). However, some errors may be more important if the error is in a specific direction compared to other errors, and vice versa.
[0016] In various embodiments of the present disclosure, a method for aligning coordinate frames in which different weights are given to errors based on where the errors occur will be described. In other words, the determination and application of rotational offset correction are decoupled from the determination and application of translational offset correction. Further, or alternatively, the weights applied or used for rotational offset correction may be different from the weights applied or used for translational offset correction. Similarly, the constraints applied or used for rotational offset correction may be different from the constraints applied or used for translational offset correction. A method for aligning the coordinate frames (or parts of coordinate systems) of two independent coordinate-based measurement techniques will be described in detail below with reference to FIGS. 1-6.
[0017] FIG. 1 shows FIG. 100 of an exemplary component 102 of a gas turbine (not shown). In an exemplary embodiment, component 102 may be, for example, a turbine blade used in a gas turbine. Component 102 may show signs of wear in areas that require repair. In the case of component 102, since the shape and surface (geometry) of the worn component 102 can be significantly different from the original CAD file of the component, its original nominal CAD file generally cannot be used. Therefore, component 102 needs to be re-measured using a CMM to obtain the true geometry of the component.
[0018] Reference data corresponding to each control point of one or more control points such as 104a - 104h of component 102 may include the coordinates and surface normal vectors of each control point, as well as the measurement direction corresponding to each control point. The reference data corresponding to each control point of one or more control points on the component can be used to create a common measurement program used by the CMM and the CNC machine tool to obtain the coordinates (e.g., 3D coordinate values) of each control point on the component. Further, the reference data corresponding to each control point may be used to determine initial estimates and constraints when aligning the part coordinate system of the CMM with the part coordinate system of the CNC machine tool.
[0019] A measurement program (or common measurement program) can be created by defining at least six control points for primary, secondary, and / or tertiary virtual datums. The virtual datum may be a combination of planes, lines, and / or points. Additionally, or alternatively, a normal vector is defined for each virtual datum as part of the reference data. As a non-limiting example, to re-measure component 102 using a CMM, eight control points 104a, 104b, 104c, 104d, 104e, 104f, 104g, and 104h on component 102 are identified. Control points 104a - 104d are used to define the primary datum plane 106, control points 104e - 104g are used to define the secondary datum plane 108, and control point 104h is used to define the tertiary datum point. In other words, control points 104a - 104d define a set of control points for aligning the part coordinate system (or coordinate frame) with respect to the primary virtual datum, control points 104e - 104g define a series of control points for aligning the part coordinate system (or coordinate frame) with respect to the secondary virtual datum, and control point 104h defines a series of control points for aligning the part coordinate system (or coordinate frame) with respect to the tertiary virtual datum.
[0020] Each control point may be measured by a touch probe that moves in a specific direction (indicated by an arrow in FIG. 1) from a specific starting position (indicated by a sphere in FIG. 1). The reference data corresponding to each control point thus collected by the coordinate measuring machine may be stored in the local memory of the coordinate measuring machine and / or cloud storage. Similarly, for example, using the touch probe of a CNC machine tool, reference data corresponding to each control point of one or more control points 104a to 104h of the component 102 may be collected by the CNC machine tool. The reference data corresponding to each control point thus collected by the CNC machine tool may be stored in the local memory of the CNC machine tool and / or cloud storage.
[0021] As described herein, when the component 102 is placed in the CNC machine for repair work, due to changes in the orientation and / or pose of the component 102 within the CNC machine, the reference data corresponding to one or more control points 104a to 104h may have different measured values. As a result, the part coordinate system of the component 102 for the CMM may not match the part coordinate system of the component 102 for the CNC machine tool, and the adaptive tool path created or generated for the component 102 using the CMM may not function on the CNC machine tool. Also, to perform the repair work of the component 102 using the adaptive tool path generated based on the actual measurement data of the component 102 using the CMM, it is necessary to align the part coordinate system of the component 102 for the CNC machine with the part coordinate system of the component 102 for the CMM.
[0022] FIG. 2 shows an exemplary flowchart 200 for collecting reference data corresponding to one or more control points 104a-104h (shown in FIG. 1) of component 102 (shown in FIG. 1) using a CMM and a CNC machine tool. In order to align the part coordinate system of component 102 (shown in FIG. 1) with the part coordinate system corresponding to the CMM, an exemplary flowchart 200 for collecting reference data corresponding to one or more control points 104a-104h (shown in FIG. 1) of component 102 is shown using a CMM and a CNC machine tool. Thus, flowchart 200 illustrates operations that may be performed by a first system 202, such as a CMM, and a second system 210, such as a CNC machine or a laser drilling machine.
[0023] As described herein, the first system 202 and the second system 210 may measure a component using their respective coordinate measurement techniques. The coordinate measurement technique used by the first system 202 may be different and independent from the coordinate measurement technique used by the second system 210. As a non-limiting example, the first system 202 may use a three-dimensional GOM scanner and / or a stereo camera system (including two or more lenses) to generate or acquire 3D measurement data for constructing a coordinate frame related to component 102, and the second system 210 may use a camera (including a single lens) and an optical sensor (e.g., a ConoProbe) to generate or acquire 3D measurement data for constructing a coordinate frame for component 102.
[0024] As shown in flowchart 200, the first system 202 may initialize and / or calibrate 204 a global coordinate system corresponding to the first system 202. As described herein, the global coordinate system defines the coordinate positions of nodes and key points in space. The global coordinate system includes a global cartesian system (CS 0) representing a point's position as (X, Y, Z), a global cylindrical system (CS 1) representing a point’s position as (R, θ, Z), a global spherical system (CS 2) representing a point’s position as (R, θ, φ), and / or a global cylindrical system (CS 5) representing a point’s position as (R, θ, γ). However, in the present disclosure, the global cartesian system (CS0) is selected as the global coordinate system, and various embodiments will be described.
[0025] The part coordinate system of the first system 202 is initialized with respect to various aspects of the component 102 to be measured. The various aspects measured and calibrated by the first system 202 include, but are not limited to, dimensions, lengths, diameters, distances, angles, positions, concentricities, symmetries, angularities, parallelisms, perpendicularities, straightnesses, roundnesses, flatnesses, cylindricities, profiles, runouts (vibrational fluctuations) of the component, etc.
[0026] After the initialization 204 of the global coordinate system of the first system 202 is successful, the part coordinate system of the first system 202 is established 206. The part coordinate system is used to establish the direction, alignment, and / or origin for measuring the component 102 using the first system 202 and / or the second system 210. As a non-limiting example, the part coordinate system may be a coordinate frame in which the positions of feature points and control points are defined. The part coordinate system of the first system 202 is represented according to the global coordinate system of the first system 202. An adaptive tool path may be generated for the component 102 based on the established part coordinate system. Measurement data corresponding to the adaptive tool path may be stored in the local memory (or local database) of the first system. Alternatively, or additionally, the measurement data may be stored in a cloud database.
[0027] While the original dimensions, geometry, and / or shape of component 102 represented by the original or nominal CAD file may not be useful, measurement data for an adaptive toolpath may be generated using the first system 202 while component 102 is being re-measured. When component 102 is placed in the second system 210 for repair work, the global coordinate system of the second system 210 is initialized 212 for the component 102 to be repaired.
[0028] After the initialization 212 of the global coordinate system of the second system 210 is successful, the part coordinate system of the second system 210 is established 214. As described herein, the part coordinate system is used to establish the direction, alignment, and / or origin for measuring component 102 while using the first system 202 and / or the second system 210. By way of non-limiting example, the part coordinate system may be a coordinate frame in which the positions of feature points and control points are defined. The part coordinate system of the second system 210 is represented according to the global coordinate system of the second system 210. Based on the part coordinate system established for component 102, an adaptive toolpath may be generated. Measurement data corresponding to the adaptive toolpath may be stored 208 in the local memory (or local database) of the first system. Alternatively, or additionally, the measurement data may be stored in a cloud database.
[0029] The part coordinate system of the second system 210 may be aligned 216 with the part coordinate system of the first system 202. The alignment 216 between the part coordinate system of the second system 210 and the part coordinate system of the first system 202 will be described in detail below with reference to FIG. 3. When the alignment 216 between the part coordinate system of the second system 210 and the part coordinate system of the first system 202 is successful, the measurement data 218 corresponding to the adaptive tool path received by the second system 210 from the first system 202 (or the cloud database) can be used in the second system 210 to perform the repair operation on the component 102.
[0030] In some embodiments, the first system 202 and the second system 210 may be communicatively coupled via a local area network (LAN), a wide area network (WAN), the Internet, a 3G network, a 4G or LTE (long-term evolution) network, a 5G network, a 6G network, etc. Alternatively, additionally, the coordinate frame and / or measurement data corresponding to the part coordinate system of the first system 202 may be communicated and / or transferred to the second system 210 using a memory including, but not limited to, a flash memory, a hard disk, a solid state drive, a read only memory (ROM), a compact disk, a universal serial bus (USB) flash drive, etc.
[0031] Figure 3 shows an exemplary flowchart 300 of a method that can be performed to align the coordinate frames of two different and independent coordinate measurement systems, including a CMM and a CNC machine tool. Flowchart 300 may include measuring the actual values corresponding to the control points 104a-104h (shown in FIG. 1) of component 102 (shown in FIG. 1) using the CMM and the CNC machine tool. Thereby, the part coordinate system of component 102 corresponding to the CNC machine tool can be aligned with the part coordinate system of component 102 corresponding to the CMM. Thus, flowchart 300 describes operations that may be performed by a first system 302, such as a CMM, and a second system 314, such as a CNC machine or a laser drilling machine.
[0032] As described herein, the first system 302 and the second system 314 can each measure components using their own coordinate measurement techniques. The coordinate measurement technique used by the first system 302 may be a different and independent one from the coordinate measurement technique used by the second system 314. As a non-limiting example, the first system 302 may use a 3D GOM scanner and / or a stereo camera system (including two or more lenses) to generate or acquire 3D measurement data for constructing a coordinate frame related to component 102, and the second system 314 may use a camera (including a single lens) and an optical sensor (e.g., a ConoProbe) to generate or acquire 3D measurement data for constructing a coordinate frame for component 102.
[0033] As shown in flowchart 300, the first system 302 may initialize and / or reset 304 the machine coordinate system corresponding to the first system 302. As described herein, the machine coordinate system defines the coordinate positions of nodes and key points in space. The machine coordinate system represents the position of a point as (X, Y, Z) in a global orthogonal coordinate system (CS0), the position of a point as (R, θ, Z) in a global spherical coordinate system (CS2), the position of a point as (R, θ, φ) in a global cylindrical coordinate system (CS5), and / or the position of a point as (R, θ, γ) in a global cylindrical coordinate system (CS5). However, in the present disclosure, various embodiments are described in which the global orthogonal coordinate system (CS0) is selected as the machine coordinate system.
[0034] The part coordinate system of the first system 302 is initialized and activated 306 for various aspects of the component 102 to be measured. Various aspects measured and calibrated by the first system 302 include, but are not limited to, dimensions, lengths, diameters, distances, angles, positions, concentricity, symmetry, angles, parallelism, perpendicularity, straightness, circularity, flatness, cylindricity, profiles, component runout, etc.
[0035] Furthermore, the part coordinate system is used to establish orientation, alignment, and / or origin for measuring component 102 using the first system 302 and / or the second system 314. As a non-limiting example, the part coordinate system may be a coordinate frame in which the positions of feature points and / or control points are defined. The part coordinate system of the first system 302 is represented according to the machine coordinate system of the first system 302. Based on the part coordinate system established for component 102, an adaptive tool path may be generated. Component 102 may be measured 308 to obtain the actual measurement profile of the repair region (or feature point) and / or to generate an adaptive tool path. Additionally, a nominal measurement program may be executed to obtain the actual measurement values of control points such as control points 104a - 104h as described herein. The nominal measurement program may be executed using the 3DGOM scanner and / or the stereo camera system described in this disclosure. The measurement data collected corresponding to the control points and feature points may be used to generate an adaptive tool path. The measurement data may be stored in the local memory (or local database) of the first system 302. Alternatively, or in addition, the measurement data may be stored in a cloud database. When the measurement data is stored in the local memory or the cloud database, the operations performed by the first system 302 may end 312.
[0036] As described in this disclosure, since the original dimensions, geometry, and / or shape of component 102 represented by the original or nominal CAD file may not be useful, component 102 is re-measured and the measurement data for the adaptive tool path is thus generated using the first system 202. When component 102 is placed in the second system 314 for repair work, the machine coordinate system of the second system 314 is initialized and reset 316 for the component 102 to be repaired.
[0037] After the initialization and reset 316 of the machine coordinate system of the second system 314 are successfully completed, the part coordinate system of the second system 314 is initialized and activated 318. As described herein, the part coordinate system is used to establish the direction, alignment, and / or origin for measuring the component 102 while using the first system 302 and / or the second system 314. As a non-limiting example, the part coordinate system may be a coordinate frame in which the positions of the feature points and / or control points are defined. The part coordinate system of the second system 314 is represented according to the machine coordinate system of the second system 314. A nominal measurement program 320 may be executed to obtain the measured values of the control points, such as the control points 104a to 104h shown in FIG. 1, using a camera (including a monocular lens) and an optical sensor (e.g., a conoprobe).
[0038] Measurement data collected corresponding to control points and feature points by the first system 302 may be received by the second system 314. The measurement data may also include an adaptive tool path generated by the first system 302 based on measurement values corresponding to the control points and / or feature points. The measurement data corresponding to the control points received by the second system 314 from the first system 302 may be compared 322 by the second system 314 to confirm that the coordinate frame (or part coordinate system) of the second system 314 is aligned with the coordinate frame (or part coordinate system) of the first system 302. Based on the comparison 322, if it is determined that the coordinate frame of the second system 314 is aligned with the coordinate frame of the first system 302, the second system 314 may use the adaptive tool path generated by the first system 302 to perform a repair operation 332 on the component 102. And, when the repair operation 332 is successfully executed, the second system 314 may end the method operation 334. However, if it is determined based on the comparison 322 that the coordinate frame of the first system 302 is not aligned with the coordinate frame of the second system 314, an estimated rotational offset correction is estimated, an estimated translational offset correction is estimated, the rotational offset correction and the translational offset correction are applied to the active part coordinate system, and a nominal measurement program is executed to obtain measured values of control points such as control points 104a to 104h shown in FIG. 1, for example. The estimation 326 of the rotational offset correction and the estimation 328 of the translational offset correction will be described in detail below with reference to FIGS. 4 and 5.
[0039] When performing an update to align the part coordinate system of the second system 314 with the part coordinate system of the first system 302, in order to obtain the measured values of the control points, for example, the measured values of the control points 104a to 104h shown in FIG. 1, the nominal measurement program of the second system 314 may be executed again 320. The measured data of the control points based on the remeasurement of the component 102 by the second system 314 may be compared again 322 with the measurement data of the control points received from the first system 302. At this time, based on the comparison 322, it is determined 324 that the coordinate frame of the first system 302 is aligned with the coordinate frame of the second system 314. Therefore, the adaptive tool path generated by the first system 302 may be used by the second system 314 to perform the repair operation 332 of the component 102. And when the repair operation 332 is successfully executed, the second system 314 can end the method operation 334.
[0040] FIG. 4 shows a method for estimating 326 the rotational offset correction required to transform the part coordinate system of a second system 210, which is, for example, a CNC machine tool or a laser drilling machine, to have the same orientation as the part coordinate system of a first system 202, which is, for example, a CMM. As described herein, the part coordinate system of the first system 202 is a coordinate frame that stores the actual data of the repair area and the adapted tool path. By estimating the pose of the part coordinate system of the first system 202 with respect to the part coordinate system of the second system 210, the corresponding rotational offset correction can then be determined.
[0041] As described herein, the measurement program 310 corresponding to the first system 302 measures the measured values of the set of reference control points 402 defined for the primary, secondary, and tertiary virtual datums, respectively. The actual control point set 402 is represented in the active part coordinate system 306 of the first system 302. Each virtual datum corresponding to the first system 202 is represented by a unit normal vector. In the rotation alignment method, the first and second virtual datums are used to align the first and second bases of the part coordinate system 318. The third base of the part system 318 is perpendicular to the first and second bases. Thus, the primary and secondary virtual datum planes corresponding to the first system 202 are a plane-plane or plane-line combination, and only out-of-plane or out-of-line errors are minimized when calculating the rotational offset correction.
[0042] The respective centroids for the primary and the secondary virtual datums of the first system 302 are determined 404. Then, the normal vectors of the primary and secondary virtual datums are initialized based on the reference data 406. The actual primary and secondary virtual datums are created 408 to be perpendicular to their respective normal vectors 406 and pass through their respective centroids 404. The out-of-plane or out-of-line distances are determined 410 by calculating the perpendicular distances between the actual control points 402 and the respective actual primary virtual datum 408 and secondary virtual datum 408.
[0043] Similarly, the measurement program 320 corresponding to the second system 314 measures the measured values of the set of reference control points 412 defined for the primary, secondary, and tertiary virtual datums, respectively. The set of reference control points 412 is represented in the active part coordinate system 318 of the second system 314. Each virtual datum corresponding to the second system 210 is represented by a unit normal vector. In the rotational alignment method, the first and second virtual datums are used to align the first and second bases of the part coordinate system 318. The third base of the part coordinate system 318 is perpendicular to the first and second bases. Therefore, the primary and secondary virtual datum planes corresponding to the second system 314 are a combination of plane-plane or plane-line. And when calculating the rotational offset correction, the out-of-plane or the out-of-line errors are minimized.
[0044] The centroid of each of the primary and secondary virtual datums of the second system 210 is determined 414. The normal vectors of the primary and secondary virtual datums are initialized based on the reference data 416. The actual primary and secondary virtual datums are created perpendicular to their respective normal vectors 416 passing through their respective centroids 414 418a. The out-of-plane distance is determined by calculating the perpendicular distance 418b between the actual control points 412 from their respective actual primary virtual datum and secondary virtual datum 418a.
[0045] As described in this specification, the primary virtual datums can be determined or defined, for example, using four control points 104a - 104d. If the primary virtual datum of the first system 202 is taken as virtual datum plane A and the primary virtual datum of the second system 210 is taken as virtual datum plane B, then the primary virtual datum planes A and B are defined, for example, by four common reference control points 104a - 104d. The actual virtual datum plane A passes through 408 which passes through the centroid of the actual control points of the first system 202. The virtual datum plane B passes through 418a which passes through the centroid of the actual control points of the second system 210. The vertical distances from the measured control points of the first system 202 to the measured primary virtual datum are determined or calculated as dA1 to dA4. Similarly, the vertical distances from the measured control points of the second system 210 to the measured primary virtual datum are determined or calculated as dB1 to dB4.
[0046] The vertical distance from the measured primary virtual datum of the measured control points of the first system 202 and the vertical distance from the measured primary virtual datum of the measured control points of the second system 210 are compared 418c to obtain the difference therebetween. Thus, the out - of - plane error or off - line error of the first control point is determined as e1 = dB1 - dA1, and similarly, the out - of - plane error of each of the remaining control points can also be determined.
[0047] It is determined at 418 of 418d whether to converge or whether all out-of-plane or out-of-line errors are driven to zero or within a particular predefined threshold. As described herein, when all out-of-plane errors are driven to zero, the actual normal vector of reference point B will be parallel to the normal vector of reference point A. In some examples, since the actual control points of the second system 210 are generally different from the actual control points of the first system 202, the iterative least squares method 418 needs to minimize 418e of 418 the out-of-plane of out-of-line errors by iteratively updating the direction of the unit normal vector of reference B. In the optimal solution, the final unit normal vector of reference B should be very close to the unit normal vector of reference A. In other words, the primary virtual datums between the first system 202 and the second system 210 are parallel or aligned.
[0048] In the rotational alignment method 326, the goal is to estimate the actual unit normal vectors of the primary and secondary virtual datums of the second system 314 to be parallel to the corresponding unit normal vectors of the virtual datum of the first system 302. Using the estimated unit normal vectors, the part coordinate system 306 of the first system 302 with respect to the machine coordinate system 316 of the second system 314 can be reconstructed using the Gram-Schmidt process 420a of 420 and the chain rotation equation 420b of 420. Then, a rotational offset correction can be calculated to update the active part coordinate system of the second system 314 to align with the orientation of the part coordinate system 306 of the first system 302.
[0049] Furthermore, or alternatively, upon convergence, the optimal unit normal vector is used to reconstruct the part coordinate system 306 of the first system 302 with respect to the machine coordinate system 316 of the second system 314. Finally, based on the transformation matrix, a rotational offset correction for the active part coordinate system of the second system 314 can be calculated.
[0050] FIG. 5 shows a method 328 for estimating a translational offset correction necessary to shift the part coordinate system of the second system 210 so that its origin coincides with the origin of the part coordinate system of the first system 202. As described herein, the rotational offset alignment 326 is separated from the translational offset alignment 328 in that the former aims to minimize out-of-plane or off-line errors of the primary and secondary virtual datums. On the other hand, the translational offset correction 328 aims to minimize in-plane or in-line errors at all control points on the respective local tangent surfaces. Individual weights can be assigned to the control points, and the weighted least squares method is used to minimize the in-plane errors.
[0051] The method of translational offset correction 328 is described with reference to FIG. 5. For example, for a point L2 which is one of the actual control points of the reference control points 104a - 104h of the second system 210, a point L1, for example, corresponds to the actual control point of the reference control points 104a - 104h of the first system 202. After the local surface normal vector of the point L2 is rotated 504 using the rotational offset correction 502, a local tangent plane is created 506 at the point L2 using the new surface normal vector.
[0052] In some examples, the touch probe moves along a specific probe vector, such as the y-axis of the active part coordinate system 318, according to a nominal measurement program 320. Since the probe vector is determined by the direction of the active part coordinate system of the second system 314, the new position of the actual control point L2 is indicated by point L2'. After applying the rotational offset correction 502 to the probe vector of the control point L2, the corresponding point L2' is estimated 508 by intersecting the rotated probe vector with the local tangent plane 506. To determine the in-plane error, the actual point L1 of the first system 202 needs to be projected 510 onto the local tangent plane along the surface normal, for example, as point L1'. The in-plane error is calculated 512 by subtracting the control points of L1' and L2'. Considering only one control point, the in-plane error can be set to zero by shifting the part coordinate system so that the rotated probe vector passes through point L1'.
[0053] Since the alignment method requires at least six control points, the optimal translational offset correction is determined or calculated by using the weighted least squares method to minimize the local in-plane error of all control points. The weighting provides the flexibility to place more emphasis, for example, on control points on a flatter surface than on control points on a curved surface. The weighting also provides a means to normalize the amount of control points for each virtual datum. For example, for a total of six control points, weightings of 1 / 3, 1 / 2, and 1 can be assigned to the virtual datums of plane, line, and point, respectively.
[0054] FIG. 6 shows a block diagram of an exemplary computing device or an exemplary computer system 600 in which embodiments of the present disclosure may be implemented. The computer system 600 includes a bus 602 or other communication mechanism for communicating information, and a hardware processor 604 coupled to the bus 602 for processing information. The hardware processor 604 may be, for example, a general-purpose microprocessor.
[0055] The computer system 600 also includes a main storage device 606, such as random access memory (RAM), or other dynamic storage devices coupled to the bus 602 for storing information and instructions to be executed by the processor 604. The main storage device 606 is also used to store temporary variables or other intermediate information during the execution of instructions by the processor 604. When such instructions are stored on a non-transitory storage medium accessible to the processor 604, the computer system 600 functions as a dedicated machine customized to perform the operations specified by the instructions.
[0056] The computer system 600 further includes a read-only memory (ROM) 608 or other static storage device coupled to the bus 602 for storing static information and instructions for the processor 604. A storage device 610, such as a magnetic disk, an optical disk, a flash memory storage device, etc., is provided and coupled to the bus 602 for storing information and instructions.
[0057] Computer system 600 may be coupled via bus 602 to a display 612, such as a liquid crystal display (LCD), for displaying information to a computer user. An input device 614, including alphanumeric keys and other keys, is coupled to bus 602 for communicating information and command selections to processor 604. Another type of user input device is a cursor control device 616, such as a mouse, trackball, or cursor direction keys, for communicating direction information and command selections to processor 604 and for controlling movement of a cursor on display 612. This input device typically has two degrees of freedom in two axes, namely a first axis (e.g., the X axis) and a second axis (e.g., the Y axis), whereby the device can specify a position within a plane.
[0058] Computer system 600 may implement the techniques described herein using customized hardwired logic, one or more application specific integrated circuits (ASICs), or field programmable gate arrays (FPGAs), firmware, and / or program logic. These hardware, when used in combination with a computer system, cause computer system 600 to operate or be programmed as a special purpose machine. According to one embodiment, the techniques described herein are performed by computer system 600 in response to processor 604 executing one or more sequences of one or more instructions included in main memory 606. Such instructions may be read into main memory 606 from another storage medium, such as storage device 610. When a sequence of instructions included in main memory 606 is executed, processor 604 performs the processing steps described herein. In an alternative embodiment, hardwired circuitry may be used in place of, or in combination with, software instructions.
[0059] As used herein, the term "memory medium" refers to a non-transitory medium that stores data and / or stores instructions for operating a machine in a particular manner. Such a memory medium may consist of a non-volatile medium and / or a volatile medium. Non-volatile media include, for example, optical disks such as storage device 610, magnetic disks, flash memory storage devices, and the like. Volatile media include dynamic memory such as main memory 606. Common memory media include, for example, floppy disks, flexible disks, hard disks, solid state drives, magnetic tapes, or other magnetic data storage media, CD-ROMs, other optical data storage media, physical media having patterns of holes, RAM, programmable ROM (PROM), electrically programmable ROM (EPROM), FLASH-EPROM, non-volatile RAM (NVRAM), other memory chips or cartridges, content addressable memory (CAM), and ternary content addressable memory (TCAM).
[0060] A memory medium is distinct from a transmission medium but may be used in combination with a transmission medium. A transmission medium is involved in the transfer of information between memory media. For example, transmission media include coaxial cables, copper wires, optical fibers including the wires that form bus 602. A transmission medium can also take the form of, for example, radio waves or light waves generated during infrared data communications.
[0061] When transmitting one or more instructions for execution by the processor 604, various forms of media may be involved. For example, the instructions may first be transmitted on the magnetic disk or solid state drive of a remote computer. The remote computer can load the instructions into the dynamic memory of the remote computer and use a modem to transmit the instructions over a telephone line. A modem local to the computer system 600 can receive the data on the telephone line and convert the data into an infrared signal using an infrared transmitter. The infrared detector can receive the data transmitted by the infrared signal, and with an appropriate circuit, the data is placed on the bus 602. The bus 602 transmits the data to the main memory 606, from which the processor 604 fetches and executes the instructions. The instructions received by the main memory 606 can optionally be stored in the storage device 610 before or after execution by the processor 604.
[0062] The computer system 600 also includes a communication interface 618 coupled to the bus 602. The communication interface 618 provides a bi-directional data communication coupling to a network link 620 connected to a local network 622. For example, the communication interface 618 may be an integrated digital communications network (ISDN) card, cable modem, satellite modem, or any type of modem that provides a data communication connection to a corresponding type of telephone line, cable line, and / or fiber optic line. As another example, the communication interface 618 may be a local area network (LAN) card that provides a data communication connection to a compatible LAN. A wireless link may also be implemented. In any of such implementations, the communication interface 618 transmits and receives electrical, electromagnetic, or optical signals that carry digital data streams representing various types of information.
[0063] Network link 620 typically provides data communication via one or more networks to other data devices. For example, network link 620 provides a connection via local network 622 to data devices operated by host computer 624 or Internet service provider (ISP) 626. ISP 626 currently generally provides data communication services through a worldwide packet data communication network commonly referred to as the Internet 628. Both local network 622 and Internet 628 use electrical, electromagnetic, or optical signals that transmit digital data streams. Signals via various networks that transmit and receive digital data with computer system 600, signals via network link 620, and signals via communication interface 618 are a form of transmission medium.
[0064] Computer system 600 can send messages and obtain data including program code via the network(s), network link 620, and communication interface 618. In the example of the Internet, server 630 may send the requested code for an application program via Internet 628, ISP 626, local network 622, and communication interface 618. The received code is executed by processor 604 and may also be stored in storage device 610 or other non-volatile storage for later execution.
[0065] The above description is merely exemplary, and those skilled in the art will recognize that modifications can be made to the described embodiments without departing from the scope of the disclosed invention. Those skilled in the art will, upon consideration of this disclosure, recognize modifications that are within the scope of the invention. Such modifications are intended to be included within the scope of the appended claims. The systems described herein are not limited to the specific embodiments described herein; rather, portions of various systems may be used independently and separately from other systems described herein.
[0066] Depending on the drawings, certain features of various embodiments of the present invention may or may not be shown, but this is for reasons of convenience. Furthermore, the expression "one embodiment" in the above description is not intended to be construed as excluding the existence of additional embodiments incorporating the described features. In accordance with the principles of the present invention, any feature in the drawings may be combined with any feature in other drawings and referenced and / or claimed.
[0067] A further aspect of the present invention is provided by the subject matter of the following clauses. [Embodiment 1] A method of aligning coordinate frames obtained from at least two different coordinate measurement systems, comprising: (i) initializing a second coordinate frame and a second part coordinate system of a component positioned in a second system; (ii) generating a second data pointset associated with the second system, wherein the second data pointset includes spatial measurement data of a plurality of control points identified on the component relative to the second part coordinate system; and (iii) receiving a first data pointset associated with a first system, wherein the first data pointset includes spatial measurement data of the plurality of control points identified on the component relative to the first part coordinate system associated with the first system when the component is positioned in the first systemwhen the component is positioned in the first system) and (iv) determining an alignment of the second part coordinate system with the first part coordinate system by estimating at least one of an angular offset and a translational offset between the second part coordinate system and the first part coordinate system; and (v) if the determined alignment indicates no alignment of the second part coordinate system with the first part coordinate system, then (a) applying at least one of an angular rotation and a translational displacement to the component positioned in the seconda system), and (b) repeating the determining the alignment of the second part coordinate system with the first part coordinate system and the applying at least one of the angular rotation and the translational displacement until the second part coordinate system is aligned with the first part coordinate system. [Embodiment 2] Initializing the second part coordinate system further comprises initializing the second part coordinate system using at least 6 control points for defining one or more virtual datums, the method for aligning coordinate frames according to any of the preceding embodiments. [Embodiment 3] Estimating the angular offset comprises estimating the angular offset using an iterative least squares algorithm, the method for aligning coordinate frames according to any of the preceding embodiments. [Embodiment 4] Estimating the angular offset using the iterative least squares method comprises iteratively updating a direction of a unit normal vector associated with a virtual datum of the second part coordinate system, a method for aligning coordinate frames according to any of the preceding embodiments. [Embodiment 5] Estimating the angular offset comprises estimating a resultant transformation matrix using a Gram-Schmidt orthogonalization process and chained-rotation equations, a method for aligning coordinate frames according to any of the preceding embodiments. [Embodiment 6] Estimating the translational offset comprises estimating the translational offset using a weighted least squares algorithm, a method for aligning coordinate frames according to any of the preceding embodiments. [Embodiment 7] The method for aligning coordinate frames according to any of the preceding embodiments, wherein the plurality of control points identified on the component includes a first subset of control points of the plurality of control points corresponding to a primary virtual datum, a second subset of control points of the plurality of control points corresponding to a secondary virtual datum, and a third subset of control points of the plurality of control points corresponding to a tertiary virtual datum. [Embodiment 8] The method for aligning coordinate frames according to any of the preceding embodiments, wherein the second system includes a computerized numerical control (CNC) machine and the first system includes a coordinate measurement machine (CMM). [Embodiment 9] Estimating the angular offset comprises estimating the angular offset corresponding to at least a primary virtual datum and a secondary virtual datum passing through a respective centroid of the plurality of control points of the first part coordinate system and the second part coordinate system, which is a method for aligning coordinate frames according to any of the preceding embodiments. [Embodiment 10] Estimating the translational offset comprises estimating the translational offset along any axis of the second part coordinate system, which is a method for aligning coordinate frames according to any of the preceding embodiments. [Embodiment 11] A system for aligning coordinate frames obtained from at least two different coordinate measurement subsystems, comprising at least one memory configured to store instructions, and at least one processor programmed to execute the stored instructions, the instructions causing the system to (i) initialize a second coordinate frame and a second part coordinate system of components positioned in a second system; (ii) generate a second set of data points including spatial measurement data of a plurality of control points identified on the component and relative to the second part coordinate system; (iii) receive a first set of data points associated with the second system, the first set of data points including spatial measurement data of a plurality of control points identified on the component relative to a first part coordinate system associated with the first system when the component is positioned in the first system; (iv) determine an alignment between the second part coordinate system and the first part coordinate system by estimating at least one of an angular offset and a translational offset between the second part coordinate system and the first part coordinate system; and (v) if the determined alignment does not indicate an alignment between the second part coordinate system and the first part coordinate system, (a) apply at least one of an angular rotation or a translational displacement to the component, and (b) repeat the determination of the alignment between the second part coordinate system and the first part coordinate system and the application of at least one of the angular rotation or the translational displacement until the second part coordinate system is aligned with the first part coordinate system. [Embodiment 12] The system according to any of the preceding embodiments, wherein the first part coordinate system or the second part coordinate system includes at least six control points for defining one or more virtual datums. [Embodiment 13] The system according to any of the preceding embodiments, wherein the angular offset is estimated using an iterative least squares algorithm. [Embodiment 14] The angle offset by the iterative least squares method is estimated by iteratively updating the direction of the unit normal vector related to the virtual datum of the second part coordinate system, for the system described in any of the preceding embodiments. [Embodiment 15] The angle offset is obtained by estimating a resultant transformation matrix using a Gram - Schmidt orthogonalization process and a chain rotation equation, for the system described in any of the preceding embodiments. [Embodiment 16] The translational offset is estimated using a weighted least squares algorithm, for the system described in any of the preceding embodiments. [Embodiment 17] The plurality of control points specified on the component includes a first subset of control points of a plurality of control points corresponding to a primary virtual datum, a second subset of control points of a plurality of control points corresponding to a secondary virtual datum, and a third subset of control points of a plurality of control points corresponding to a tertiary virtual datum, for the system described in any of the preceding embodiments. [Embodiment 18] The second system is a numerically controlled (CNC) machine, and the first system is a coordinate measuring machine (CMM), for the system described in any of the preceding embodiments. [Embodiment 19] The angle offset is an angle offset corresponding to at least a primary virtual datum and a secondary virtual datum passing through the centroid of each of the plurality of control points of the first part coordinate system and the second part coordinate system, for the system described in any of the preceding embodiments. [Embodiment 20] The translational offset is a translational offset along any axis of the second part coordinate system, for the system described in any of the preceding embodiments.
[0068] Although the present invention has been described with respect to various specific embodiments, those skilled in the art will recognize that the present invention can be modified and implemented within the spirit and scope of the claims.
Description of Reference Numerals
[0069] 102: Component 104a - 104h: Control Point 106: Primary Virtual Datum Plane / Primary Datum Plane 108: Secondary Virtual Datum Plane / Secondary Datum Plane 202: First System 204: Initialization / Calibration 206: Parts Coordinate System 208: Measurement Data 210: Second System 212: Initialization / Calibration 214: Parts Coordinate System 216: Alignment 218: Repair Work 600: Computer System 602: Bus 604: Hardware Processor 606: Main Memory Device 608: Read - Only Memory (ROM) 610: Storage Device 612: Display 614: Input Device 616: Cursor Control Device 618: Communication Interface 620: Network Link 622: Local Network 624: Host Computer 626: Internet Service Provider (ISP) 628: Internet 630: Server
Claims
1. 1. A method for aligning coordinate frames obtained from at least two different coordinate measuring systems, comprising the steps of: initializing a second coordinate frame and a second part coordinate system for a component positioned in a second system; generating a second set of data points associated with a second system, the second set of data points including spatial measurement data of a plurality of control points identified on the component relative to a second part coordinate system; receiving a first set of data points associated with a first system, the first set of data points including spatial measurement data of a plurality of control points identified on the component relative to a second part coordinate system associated with the first system when the component is positioned in the first system; determining an alignment between the second part coordinate system and the first part coordinate system by estimating at least one of an angular offset and a translational offset between the second part coordinate system and the first part coordinate system; If the determined alignment does not indicate an alignment of the second part coordinate system with the first part coordinate system, applying at least one of an angular rotation and a translational displacement to a component positioned on the second system; determining an alignment of the second part coordinate system with the first part coordinate system, and repeating the steps of applying at least one of an angular rotation and a translational displacement until the second part coordinate system is aligned with the first part coordinate system.
2. 2. The method of claim 1, wherein initializing the second part coordinate system further comprises initializing the second part coordinate system using at least six control points to define one or more virtual datums.
3. The method of claim 1 , wherein estimating the angular offset comprises estimating the angular offset using an iterative least squares algorithm.
4. 4. The method of claim 3, wherein estimating the angular offset using an iterative least squares method includes iteratively updating a direction of a unit normal vector associated with a virtual datum in the second part coordinate system.
5. The method of claim 1 , wherein estimating the angular offset comprises estimating a resultant transformation matrix using a Gram-Schmidt orthogonalization process and a chained rotation equation.
6. The method of claim 1 , wherein estimating the translational offset comprises estimating the translational offset using a weighted least squares algorithm.
7. 2. The method of claim 1 , wherein the plurality of control points identified on the component includes a first subset of control points of the plurality of control points corresponding to a primary virtual datum, a second subset of control points of the plurality of control points corresponding to a secondary virtual datum, and a third subset of control points of the plurality of control points corresponding to a tertiary virtual datum.
8. The method of claim 1 , wherein the second system comprises a computer numerically controlled (CNC) machine and the first system comprises a coordinate measuring machine (CMM).
9. 2. The method of claim 1 , wherein estimating the angular offsets includes estimating angular offsets corresponding to at least primary and secondary virtual datums passing through respective centroids of the plurality of control points of the first and second part coordinate systems.
10. The method of claim 1 , wherein estimating the translational offset comprises estimating the translational offset along any axis of the second part coordinate system.
11. 1. A system for use in aligning coordinate frames obtained from at least two different coordinate measurement subsystems, comprising: at least one memory configured to store instructions; and at least one processor programmed to execute the stored instructions, the instructions providing the system with: initializing a second coordinate frame and a second part coordinate system for a component positioned in a second system; generating a second data point set including spatial measurement data of a plurality of control points identified on the component and a second part coordinate system; receiving a first set of data points associated with a first system, the first set of data points including spatial measurement data of a plurality of control points identified on the component relative to a first part coordinate system associated with the first system when the component is positioned in the first system; determining an alignment of the second part coordinate system with the first part coordinate system by estimating at least one of an angular offset and a translational offset between the second part coordinate system and the first part coordinate system; If the determined alignment does not indicate an alignment of the second part coordinate system with the first part coordinate system, applying at least one of an angular rotation or a translational displacement to the component; determining an alignment of the second part coordinate system with the first part coordinate system and repeating applying at least one of the angular rotation or translational displacement until the second part coordinate system is aligned with the first part coordinate system.
12. The system of claim 11 , wherein the first part coordinate system or the second part coordinate system includes at least six control points for defining one or more virtual datums.
13. The system of claim 11 , wherein the angular offset is estimated using an iterative least squares algorithm.
14. The system of claim 13 , wherein the angular offset using an iterative least squares method is estimated by iteratively updating a direction of a unit normal vector associated with a virtual datum in the second part coordinate system.
15. The system of claim 11 , wherein the angular offset is obtained by estimating a resultant transformation matrix using a Gram-Schmidt orthogonalization process and a chained rotation equation.