Controller for a tool drive and methods for using a tool drive

A controller for a tool drive that collects force data and displacement data from the tool drive. The controller generates a stiffness model representing a workpiece using the force data and the displacement data. The controller further collects a force signal from the tool drive. The controller determines deflection of the workpiece using the force signal and stiffness model. The controller determines a resonant frequency of the workpiece using the stiffness model. The controller modifies an oscillation frequency and/or a rotational frequency of a spindle of the tool drive based on the resonant frequency. The controller also determines a location of a tip of the tool drive using the force signal.

FIELD

The present disclosure relates generally to robotic machining and, more particularly, to a controller and method for using a tool drive, coupled to a robotic manipulator, as a sensor.

BACKGROUND

Automated machining operations typically utilize a robotic system operated under computer control. Robotic systems require calibration of a tool center point (TCP) relative to a cartesian coordinate system that is fixed relative to the robotic system. This calibration and subsequent computer-controlled movement of the tool center point requires accurate knowledge of a location of the tool center point and/or a location and orientation of a workpiece being machined. Inaccuracies in locating the tool center point or the workpiece can result in manufacturing quality issues or even damage to the robotic system. Additionally, certain types of workpieces, such as large aerospace structures, may be subject to deflection and vibration during the automated machining operation. Such deflections and vibrations can also result in manufacturing quality issues and a reduction in the service life of the manufacturing tool.

Accordingly, those skilled in the art continue with research and development efforts in the field of automated robotic machining.

SUMMARY

Disclosed are examples of a controller for a tool drive, a robotic machining system, and a method for using a tool drive. The following is a non-exhaustive list of examples, which may or may not be claimed, of the subject matter according to the present disclosure.

In an example, the disclosed controller includes instructions that are executable to collect force data from a control unit of the tool drive. The force data representing a force applied to a spindle of the tool drive in response to engagement of a tip of the tool drive with a workpiece. The controller includes instructions that are executable to collect displacement data from the control unit of the tool drive. The displacement data representing a displacement of the spindle of the tool drive in response to engagement of the tip of the tool drive with the workpiece. The controller includes instructions that are executable to generate a stiffness model representing the workpiece using the force data and the displacement data.

In another example, the disclosed the controller includes instructions that are executable to collect a force signal from a control unit of the tool drive. The force signal representing a force applied to a spindle of the tool drive in response to engagement of a tip of the tool drive with a workpiece. The controller includes instructions that are executable to collect a displacement signal from the control unit of the tool drive. The displacement signal representing a displacement of the spindle of the tool drive in response to engagement of the tip of the tool drive with the workpiece. The controller includes instructions that are executable to use the force signal and the displacement signal to determine a location of the tip of the tool drive relative to a fixed coordinate system.

In an example, the disclosed robotic machining system includes a robotic manipulator and a tool drive coupled to the robotic manipulator. The tool drive includes a spindle, a tip, and a control unit. The control unit is configured to provide force data from the tool drive. The force data representing a force applied to the spindle of the tool drive in response to engagement of the tip of the tool drive with a workpiece. The control unit is also configured to provide displacement data from the tool drive. The displacement data representing a displacement of the spindle of the tool drive in response to engagement of the tip of the tool drive with the workpiece. The robotic machining system also includes a controller including instructions that are executable to collect the force data from the control unit of the tool drive. The controller includes instructions that are executable to collect the displacement data from the control unit of the tool drive. The controller including instructions that are executable to generate a stiffness model representing the workpiece using the force data and the displacement data.

In another example, the disclosed robotic machining system includes a robotic manipulator and a tool drive coupled to the robotic manipulator. The tool drive includes a spindle, a tip, and a control unit. The control unit is configured to provide a force signal from the tool drive. The force signal representing a force applied to the spindle of the tool drive in response to engagement of the tip of the tool drive with a workpiece. The control unit is also configured to provide a displacement signal from the tool drive. The displacement signal representing a displacement of the spindle of the tool drive in response to engagement of the tip of the tool drive with the workpiece. The robotic machining system also includes a controller including instructions that are executable to collect the force signal from the control unit of the tool drive. The controller includes instructions that are executable to collect the displacement signal from the control unit of the tool drive. The controller includes instructions that are executable to use the force signal and the displacement signal to determine a location of the tip of the tool drive relative to a fixed coordinate system.

In an example, the disclose method includes a step of collecting force data from a control unit of the tool drive. The force data representing a force applied to a spindle of the tool drive in response to engagement of a tip of the tool drive with a workpiece. The method also includes a step of collecting displacement data from the control unit of the tool drive. The displacement data representing a displacement of the spindle of the tool drive in response to engagement of the tip of the tool drive with the workpiece. The method further includes a step of generating a stiffness model representing the workpiece using the force data and the displacement data.

In another example, the disclose method includes a step of collecting a force signal from a control unit of the tool drive. The force signal representing a force applied to a spindle of the tool drive in response to engagement of a tip of the tool drive with a workpiece. The method also includes a step of collecting a displacement signal from the control unit of the tool drive. The displacement signal representing a displacement of the spindle of the tool drive in response to engagement of the tip of the tool drive with the workpiece. The method further includes a step of determining a location of the tip of the tool drive relative to a fixed coordinate system using the force signal and the displacement signal.

Other examples of the disclosed controller, robotic machining system, and method will become apparent from the following detailed description, the accompanying drawings, and the appended claims.

DETAILED DESCRIPTION

Referring generally toFIG.1, the present disclosure is directed to examples of a controller100for use with the tool drive102of a robotic machining system156. The present disclosure is also directed to the robotic machining system156that includes the tool drive102and that is, at least partially, controlled by the controller100in a manufacturing environment158.

As will be described in more detail herein below, the controller100enables the robotic machining system156and, more particularly, the tool drive102to serve a dual purpose. The robotic machining system156and, more particularly, the tool drive102serves its primary purpose of performing a machining operation on a workpiece114. The robotic machining system156and, more particularly, the tool drive102also serves a secondary purpose of collecting data that is used in the machining operation.

The collected data can be used for various purposes. In one or more examples, as best illustrated inFIGS.5-11, the collected data is used to modify one or more process parameters of the machining operation to compensate for deflection and/or vibration in the workpiece114that occur during the machining operation. In one or more examples, as best illustrated inFIGS.12-14, the collected data is used to locate a tip112of the tool drive102and, thus, a compensated tool center point (TCP) of the robotic machining system156. In one or more examples, as best illustrated inFIGS.12,13,15and16, the collected data is used to locate the workpiece114or one or more features on the workpiece114.

Referring now toFIG.2, which schematically illustrates an example of the robotic machining system156. The robotic machining system156is used to perform one or more automated machining operations on a workpiece114. Examples of the machining operation include, but are not limited to, drilling, routing, milling, grinding, cutting, and the like.

In one particular example, the robotic machining system156is a vibration assisted drilling (VAD) system and the corresponding machining operation is a vibration assisted drilling (VAD) operation. Vibration assisted drilling is a machining operation that is used to control drilling debris size and lower drilling temperatures. Various examples of vibration assisted drilling systems utilize a drive mechanism168(e.g., servo motor, piezoelectric actuator, electromagnetic actuator, electromagnetic bearings, etc.) to provide drill feed motion, oscillation motion, and rotational motion.

The robotic machining system156includes a robotic manipulator154. In one or more examples, the robotic manipulator154includes or takes the form of any suitable electronically controlled machine, such as a multiple degree of freedom (DOF) robotic arm176(e.g., as shown inFIG.2). In one or more examples, the robotic manipulator154includes an assembly of movable links and joints. The links are defined as rigid sections that make up the mechanism and the joints are defined as the connection between two links.

The robotic machining system156also includes the tool drive102. The tool drive102is coupled to a working end of the robotic manipulator154. The tool drive102interacts with the workpiece114and can also be referred to as an end-effector. The tool drive102is configured to perform at least one machining or other manufacturing operation on the workpiece114.

In one or more examples, the tool drive102includes the drive mechanism168and the machining tool166. The machining tool166is coupled to the drive mechanism168. The machining tool166performs the machining operation. The drive mechanism168operates and/or drives motion of the machining tool166(e.g., rotation and/or oscillation). An example of the machining tool166is a tool bit (e.g., drill bit, cutting bit, grinding bit, routing bit, etc.).

The robotic machining system156also includes a control unit106. Generally, the control unit106is a computing device that includes at least one processor unit coupled to at least one storage device (e.g., memory), which includes program code (e.g., computer-readable instructions) that is executable by the processor unit to control movement of the robotic manipulator154and/or to control operation of the tool drive102.

Referring now toFIG.3, which schematically illustrates another example of the robotic machining system156and toFIG.4, which schematically illustrates an example of a portion of the tool drive102. In one or more examples, the tool drive102includes a spindle110. The spindle110includes a spindle shaft170that is driven to rotate by a spindle drive172. The spindle110is an example of the drive mechanism168(e.g., shown inFIG.2). The machining tool166(e.g., a tool bit) is coupled to the spindle shaft170, for example, by a tool holder174. The machining tool166rotates about a spindle axis A (e.g., a tool axis).

As shown inFIG.3, in one or more examples, the robotic manipulator154includes a machine frame178and a feed drive180. The feed drive180is coupled to the machine frame178. In these examples, the tool drive102is coupled to the feed drive180. The feed drive180controls motion of (e.g., advances and retracts) the tool drive102relative to the workpiece114.

As shown inFIG.4, in one or more examples, the spindle shaft170is mounted in the tool drive102by at least two radial bearings182and at least one axial bearing184, for example, in one or more axial directions. The radial bearings182and the axial bearing184hold the spindle shaft170in position and enable control of small shifts of the spindle shaft170.

In one or more examples, the axial bearing184includes two annular coil magnets that are arranged in opposition to an anchor, which is arranged non-rotatably about the spindle shaft170, to enable a shift of the spindle shaft170in an axial direction. In one or more examples, the radial bearings182include upper and lower radial bearings, or rear and front radial bearings.

In one or more examples, the spindle drive172is arranged between the radial bearings182to enable a shift of the spindle shaft170in radial directions. In one or more examples, the spindle drive172includes or takes the form of a motor and, for example, may be referred to as a spindle motor. In one or more examples, the spindle motor is a synchronous motor.

In one or more examples, the radial bearings182and the axial bearing184are magnetic bearings. The bearing parts of the magnetic bearings are held without contact, with an air gap, by magnetic forces. The magnetic forces are generated and adjusted by electromagnets. This allows the spindle shaft170to be moved within certain limits and to be adjusted in the radial direction relative to the radial bearings182and in the axial direction relative to the axial bearing184.

Referring again toFIG.3, in one or more examples, the control unit106is coupled to (e.g., is in electronic communication with) the radial bearings182, the axial bearing184, and the spindle drive172. In one or more examples, the control unit106includes a plurality of regulation modules or processors that control and/or selectively adjust radial displacement, axial displacement, and rotation of the spindle shaft170. In one or more examples, the control unit106generates and/or provides control signals194to the radial bearings182, the axial bearing184, and the spindle drive172for operation of the tool drive102according to predetermined process parameters.

In one or more examples, the tool drive102also includes a plurality of sensors186. The sensors186are configured to measure displacements and forces of the spindle110. As examples, the sensors186measure current in magnetic coils or piezoelectric voltage. Sensor signals192(e.g., position signals and/or force signals) provided by the sensors186are generated and acquired by the spindle110. The sensor signals192are provided to and used by the control unit106for the control of the tool drive102.

In one or more examples, each one of the sensors186is assigned to a corresponding one of the radial bearings182and the axial bearings184. In one or more examples, the sensors186include measuring transducers. In one or more examples, the measuring transducer is integrated into the magnetic bearing of the radial bearings182and the axial bearings184. In one or more examples, the sensors186include Eddy current position sensors.

In one or more examples, the control unit106controls the axial bearings184and the radial bearings182in such a way that vibration movements in an axial direction and in a radial direction (e.g., as shown by directional arrows inFIG.4) can be actively applied in a controlled manner with adjustable frequency and amplitude.

In one or more examples, movement and adjustment of the spindle shaft170in the axial direction and/or the radial direction is achieved through selective control of a magnetic gap within the axial bearings184and the radial bearings182and modulation of an adjustable vibration movement. Accordingly, the machining tool166is freely and fully automatically positionable within certain limits axially and radially by means of the spindle110with assistance of the radial bearings182(e.g., magnetic radial bearings) and the axial bearings184(e.g., magnetic axial bearings).

In one or more examples, the control unit106receives current values or voltage values measured in the radial bearings182and the axial bearings184by the sensors186(e.g., sensor signals192) and converts the values into force values and displacement values. The force values and the displacement values are used by the controller100to provide a combined force-displacement control and regulation during the machining operation in which movement of the spindle shaft170can be adjusted based on currently present machining conditions.

Examples of the tool drive102, or the spindle110, including the magnetic-bearing spindle or piezoelectric spindles, for example, as described above, may also be referred to as “smart spindle” tool drives. An example of the spindle110is a magnetic-bearing spindle commercially available from KEBA® Industrial Automation GmbH of Linz, Austria. Another example of the spindle110is a smart spindle commercially available from WEISS Spindeltechnologie GmbH of Maroldsweisach, Germany. Various other types of magnetic-bearing spindles are also contemplated.

Referring generally toFIGS.5-11, in one or more examples, the controller100collects data or information related to force and displacement (e.g., force values and displacement values) from the tool drive102(e.g., from the control unit106). The controller100uses the force data and the displacement data (e.g., collected from the tool drive102) to determine stiffness, deflection, and vibration properties of the workpiece114. The controller100uses force values and displacement values (e.g., collected from the tool drive102) to adjust the operating conditions or process parameters of the tool drive102based on the determined stiffness and vibration properties of the workpiece114to accommodate or account for deflections and vibrations in the workpiece114during the machining operation.

Referring now toFIG.5, which schematically illustrates an example of a portion of the workpiece114and an example of the tool drive102. During a machining operation, certain types of the workpiece114, such as large aerospace structures, may be subject to deflections and vibrations. Deflection and vibration in the workpiece114can be a root cause of many quality issues in the machining operation.

In one or more examples, inaccurate machining can result from chatter in the workpiece114. Chatter can be caused by vibrations and the interaction of work-piece dynamics and spindle dynamics (e.g., axial movement, radial movement, and rotational movement of the spindle110). Excitation sources include tool rotation, process forces, and defined tool vibrations (e.g., from vibration assisted drilling). In one or more examples, inaccurate machining can result from deflections in the workpiece114. As an example, the workpiece114can bend in a direction away from the tool under process loads. In one or more examples, kinematic deterioration of a vibration assisted drilling process includes quasi-static deflections of the workpiece114that occur due to the axial cutting force. As a result, an actual cutting amplitude is smaller than expected and the amplitude is not sufficient for chip breaking, which can cause a decline in machining quality.

The present disclosure is directed to apparatuses and methods for using spindles with actuation capabilities (e.g., the spindle110) to address the above-referenced problems. The spindle110(e.g., piezoelectric spindle or electromagnetic spindle) enables selective positioning of the spindle shaft170along at least one axis. The spindle110includes the sensors186that measure displacement (e.g., directly) and forces (e.g., indirectly). The sensor signals192(e.g., shown inFIG.3) provided by the sensors186are used to identify a stiffness of the workpiece114and to adapt the machining process such that quality issues associated with deflection and vibration are avoided. By applying appropriate forces and deflections on the workpiece114, the stiffness of the workpiece114is calculated from a structural response measured by spindle positions (e.g., displacements) and/or spindle force measurements. Based on the computed stiffness, machining process parameters can be adapted, and process control measures can be triggered.

Accordingly, the controller100enables mechanical properties of the workpiece114to be measured using the spindle110. The sensor signals192from the sensors186(e.g., position signals and force signals) are used to represent or quantify deflection of the workpiece114and force on the workpiece114. A relationship between deflection and force defines the stiffness (e.g., static stiffness and dynamins stiffness) of the workpiece114. The controller100also enables adjustment, adaption, and modification of process parameters and process controls according to the mechanical properties determined for the workpiece114.

Referring now toFIGS.6,19and20, which schematically illustrate examples of an identification phase (e.g., shown inFIGS.19and20) of the machining operation in which the tool drive102(e.g., shown inFIG.6) is used as an initial data collection sensor for determining the stiffness properties of the workpiece114. The example illustrated inFIG.6shows an example of a process for identifying a static stiffness of the workpiece114(e.g., as shown inFIG.19) or a dynamic stiffness of the workpiece114(e.g., as shown inFIG.20). In these examples, the workpiece114is purposefully deflected (e.g., as shown inFIG.19) or excited (e.g., as shown inFIG.20) during the collection of data to be used to define the static stiffness (e.g., as shown inFIGS.9and19) and/or the dynamic stiffness (e.g., as shown inFIGS.11and20) of the workpiece114.

Referring toFIG.6, in one or more examples, deflection or excitation of the workpiece114is performed using the tool drive102. As an example, motion196of the spindle110is applied to the workpiece114. In one or more examples, the motion196is quasi-static motion (e.g., deflection), such as for the static stiffness identification. In one or more examples, the motion196is excitation motion, for example, that mimics process-based excitation of the workpiece114that occurs during the machining operation, such as for the dynamic stiffness identification.

In one or more examples, the spindle110(e.g., the spindle shaft170shown inFIGS.3and4) is preloaded to ensure contact between a tip112of the machining tool166and a surface of the workpiece114during data collection and motion196of the spindle110.

In one or more examples, the motion196(e.g., deflection and/or excitation) of the workpiece114is performed by contact of the machining tool166with a surface of the workpiece114using the spindle110of the tool drive102(e.g., as shown inFIG.6). For example, the spindle shaft170is moved (e.g., oscillated), for example, using the electromagnetic bearings (e.g., the radial bearings182and/or the axial bearing184shown inFIG.3) or piezoelectric actuators of the spindle110. In these examples, a protective nib or cover can be coupled to the tip112of the machining tool166to protect the surface of the workpiece114from damage during the static stiffness identification process.

In other examples (not shown), the machining tool166is a dedicated contact device used for inducing the motion196(e.g., deflection or excitation) of the workpiece114, such as rollers, spherical feeler probes, and other suitable contact or probe devices. In these examples, the contact device is coupled to the spindle110by the tool holder174(e.g., using an automatic tool changer).

In one or more examples, the excitation signal has the form of a sweep, white noise, step signal, impact signal, or in process noise. The response measurement is performed using the internal displacement of the spindle110and the sensors186(e.g., current or voltage sensors). In one or more examples, forces and workpiece deflections can be computed using a model. Compensation of dynamic effects may be necessary.

Referring again toFIG.1, in one or more examples, the controller100includes a data processing unit160and instructions162that are executable to collect force data104from the control unit106of the tool drive102. The force data104is representative of a force108(e.g., shown inFIG.6) applied to the spindle110of the tool drive102in response to engagement of a tip112of the tool drive102with the workpiece114. Collection of the force data104enables the tool drive102to serve as a sensor for detecting or determining a force applied to the workpiece114. As used herein, general reference to the force108applied to the spindle110refers more particularly to the force108applied to the spindle shaft170.

In one or more examples, the force data104includes values (e.g., current or voltage values) represented by the sensor signals192(e.g., a collection of force signals126) generated by the sensors186of the tool drive102. In one or more examples, the force108refers to a force applied to the spindle shaft170(e.g., as shown inFIGS.3and4) of the spindle110for positioning or moving the spindle shaft170along at least one axis.

For the purpose of the present disclosure, the tip112of the tool drive102generally refers to an end of the tool drive102or an end of the spindle110that interacts with the environment (e.g., the workpiece114). As an example, the tip112refers to a tip or end of the machining tool166, which is coupled to the spindle110for the purpose of collecting data and/or performing the machining operation. As another example, the tip112refers to a tip or end of the machining tool166taking the form of the dedicated probing tool, which is coupled to the spindle110for the purpose of probing the workpiece114and collecting data.

In one or more examples, the controller100includes the instructions162that are executable to collect displacement data116from the control unit106of the tool drive102. The displacement data116is representative of a displacement118(e.g., as shown inFIG.6) of the spindle110of the tool drive102in response to engagement of the tip112of the tool drive102with the workpiece114. Collection of the displacement data116enables the tool drive102to serve as a sensor for detecting or determining a deflection124of the workpiece114in response to an applied force. As used herein, general reference to the displacement118of the spindle110refers more particularly to the displacement118of the spindle shaft170.

In one or more examples, the displacement data116includes values (e.g., current or voltage values) represented by the sensor signals192(e.g., a collection of displacement signals138) generated by the sensors186of the tool drive102. In one or more examples, the displacement118refers to a linear movement distance or a change in position of the spindle shaft170(e.g., as shown inFIGS.3and4) of the spindle110when positioning or moving the spindle shaft170along at least one axis.

In one or more examples, as illustrated inFIGS.7-9, the collected data is used for identification of a static stiffness of the workpiece114and in-process compensation of deflection of the workpiece114.FIG.7illustrates an example of a static stiffness model122generated from the force data104and the displacement data116.FIG.8schematically illustrates compensation of the tool drive102during the machining operation.FIG.9illustrates an example of the static stiffness model122used to determine the deflection124of the workpiece114for compensation of the tool drive102.

Referring now toFIG.7, which illustrates an example of a graphical representation of the relationship between the force data104and the displacement data116collected from the tool drive102and an example of a stiffness model120generated from the force data104and the displacement data116. In one or more examples, the stiffness model120is the static stiffness model122of the workpiece114. The static stiffness model122relates the force108(e.g., as shown inFIG.6) applied to the spindle110of the tool drive102to the displacement118of the spindle110. The displacement118of the spindle110represents or corresponds to the deflection124(e.g., as shown inFIG.6) of the workpiece114.

In one or more examples, the controller100includes the instructions162that are executable to generate the stiffness model120(e.g., the static stiffness model122) that is representative of the workpiece114using the force data104and the displacement data116.

In one or more examples, static stiffness measurements can be performed pointwise or along a trajectory. Pointwise measurements include contact at one point and cyclic loading or linear loading (e.g., load displacement curves such as sinewave or periodic signals). Trajectory measurements include constant loading and measuring deflection (e.g., continuously through movement of the tool drive102) or constant deflection and measuring the load (e.g., continuously through movement of the tool drive102).

The stiffness information in the static case (e.g., the static stiffness model122) may be used for adaptation of vibration amplitude and feed amplitude (e.g., for vibration assisted drilling), compensation of structural deflection (e.g., additional advance in positioning based on stiffness curve and process force), operator warnings, error messages, and/or process stops in problematic cases, triggering of additional quality measurements, skip location identification, or use of full retract pecking as a machining process.

In one or more examples, the static stiffness model122is mapped to a geometry128of the workpiece114. As an example, the force data104and the displacement data116are mapped or correlated to different locations (e.g., X, Y, Z-coordinates) on the surface of workpiece114. In one or more examples, the controller100includes the instructions162that are executable to map the static stiffness model122to the geometry128of the workpiece114.

Referring now toFIGS.8and19, which schematically illustrates an example of a production phase (e.g., as shown inFIG.19) of the machining operation in which the tool drive102is used for machining the workpiece114and motion of the tool drive102is compensated for the deflection124of the workpiece114during the machining operation.

In one or more examples, the controller includes the instructions162that are executable to collect the force signal126from the control unit106of the tool drive102of the force108applied to the spindle110of the tool drive102. In one or more examples, the force signal126is collected after the stiffness model120(e.g., the static stiffness model122) is generated from the force data104and the displacement data116. In one or more examples, the force signal126is collected during machining of the workpiece114(e.g., as shown inFIG.8). For example, the force signal126represents an instantaneous or continual force occurring during machining.

In one or more examples, the controller100includes the instructions162that are executable to use the force signal126(e.g., shown inFIG.8) and the static stiffness model122(e.g., as shown inFIG.9) to determine the deflection124of the workpiece114during the machining of the workpiece114. As an example, shown inFIG.9, the force108is determined (e.g., measured) using the force signal126(FIG.8). The deflection124is determined using the static stiffness model122that corresponds to the force108.

In one or more examples, the controller100includes the instructions162that are executable to use the deflection124determined from the static stiffness model122for the workpiece114to modify the displacement118of the spindle110and to compensate for the deflection124of the workpiece114during the machining of the workpiece114.

In one or more examples, during the machining operation, the displacement118of the spindle110in the axial direction is a predetermined process parameter provided to the tool drive102by the control unit106. The controller100determines (e.g., calculates) a displacement compensation190(e.g., shown inFIG.8) required to account for the deflection124of the workpiece114, determined from the static stiffness model122and corresponding to the force108. The controller100is configured to generate and provide a displacement compensation signal188(e.g., shown inFIG.8) to the tool drive102(e.g., to the control unit106). The displacement118of the spindle110is compensated by the displacement compensation190such that a compensated displacement198(e.g., shown inFIG.8) is equal to and accounts for the deflection124of the workpiece114.

The compensated displacement198of the spindle110compensates for the deflection124(e.g., flexibility) of the workpiece114and properly locates the tip112of the machining tool166relative to the workpiece114upon the deflection124of the workpiece114. It can be appreciated that, without the displacement compensation190, the displacement118of the spindle110would not properly locate the tip112of the machining tool166relative to the workpiece114upon the deflection124of the workpiece114. For example, the tip112of the machining tool166may not reach the desired location relative to the workpiece114.

In one or more examples, as illustrated inFIGS.10and11, the collected data is used for identification of a dynamic stiffness of the workpiece114and in-process compensation of vibration of the workpiece114.FIG.10schematically illustrates compensation of the tool drive102during the machining operation.FIG.11illustrates an example of a dynamic stiffness model130used to determine a resonant frequency134of the workpiece114for compensation of the tool drive102.

Referring now toFIG.11, which illustrates an example of a graphical representation of the relationship between an oscillation frequency132of the spindle110and a vibration amplification factor164and an example of the stiffness model120generated from oscillation frequencies132and corresponding vibration amplification factors164. In one or more examples, the stiffness model120is the dynamic stiffness model130. The dynamic stiffness model130relates the oscillation frequency132of the spindle110to the vibration amplification factor164of the workpiece114.

In one or more examples, the dynamic stiffness model130is generated by exciting the workpiece114in a broad frequency band (e.g., through intentional impact, process noise sine sweep excitations, or white noise excitation with the tool tip/probe tip) and measuring the response directly through the sensors186of the spindle110or indirectly through other sensor devices, such as laser sensors or acceleration sensors. The oscillation frequency132(e.g., the x-axis inFIG.11) can be any excitations frequency (e.g., oscillations of the tool for chip breaking). If the resonant frequency134(e.g., the frequency where the dynamic stiffness model130has a peak) coincides with the excitation frequency, the workpiece114is resonating and the vibrations are amplified.

In one or more examples, the controller100includes the instructions162that are executable to generate the stiffness model120that is representative of the workpiece114using the oscillation frequencies132and the vibration amplification factors164.

The vibration amplification factor164is a ratio between response amplitude (e.g., displacement) and excitation amplitude (e.g., force) at a certain frequency. The vibration amplification factor164may also referred to as the absolute value of the frequency response function. Any one of various suitable estimation techniques can be used to obtain the frequency response function from available experimental data. Alternatively, the frequency response function can be computed from a model. In one or more examples, values representing the vibration amplification factor164are stored, for example, in a lookup table. In one or more examples, values representing the vibration amplification factor164are obtained from an analytic model.

In one or more examples, dynamic stiffness measurement can be performed via excitation on discrete points using a sweep, white noise, step or impact signal, or in process noise. The dynamic response is recorded. A driving point transfer function can be computed from the measurements. The transfer functions are specific to the measurement location on the workpiece114. Resonance frequencies and dynamic system models of the workpiece114are identified using modal analysis.

The stiffness information in the dynamic case (e.g., the dynamic stiffness model130) may be used for adaptation of rotational speed and vibration frequency (e.g., for vibration assisted drilling), operator warnings, error messages, and/or process stops in problematic cases, triggering of additional quality measurements, skip location identification, or use of full retract pecking as a machining process.

In one or more examples, the controller100includes the instructions162that are executable to determine the resonant frequency134(e.g., shown inFIGS.11and20) of the workpiece114from the dynamic stiffness model130. The resonant frequency134is determined after the dynamic stiffness model130is generated.

In one or more examples, the dynamic stiffness model130is mapped to the geometry128of the workpiece114. As an example, the resonant frequency134is mapped or correlated to different locations (e.g., X, Y, Z-coordinates) on the surface of workpiece114. In one or more examples, the controller100includes the instructions162that are executable to map the dynamic stiffness model130to the geometry128of the workpiece114.

Referring now toFIGS.10and20, which schematically illustrates an example of the production phase (e.g., as shown inFIG.20) of the machining operation in which the tool drive102is used for machining the workpiece114and the tool drive102is compensated for the vibrations of the workpiece114during the machining operation.

In one or more examples, the controller includes the instructions162that are executable to collect data or information from the control unit106of the tool drive102of an oscillation frequency132and a rotational frequency136(e.g., as shown inFIG.10and also referred to collectively as frequency data200as shown inFIG.1) of the spindle110of the tool drive102. In one or more examples, the oscillation frequency132and the rotational frequency136represented by the frequency data200are predetermined process parameters provided by the control unit106.

In one or more examples, a frequency signal202representing the present value for the oscillation frequency132and the rotational frequency136is collected (e.g., by the controller100from the control unit106of the tool drive102) after the stiffness model120(e.g., the dynamic stiffness model130) is generated. In one or more examples, the frequency signal202(e.g., data representing the oscillation frequency132and the rotational frequency136) is collected during machining of the workpiece114(e.g., as shown inFIG.10). For example, the frequency signal202represents an instantaneous or continual oscillation frequency and rotational frequency occurring during machining.

In one or more examples, the controller100includes the instructions162that are executable to use the resonant frequency134determined for the workpiece114to modify at least one of the oscillation frequency132of the spindle110and the rotational frequency136of the spindle110to reduce vibrations in the workpiece114during the machining of the workpiece114(e.g., as shown inFIGS.10and20).

In one or more examples, during the machining operation, the oscillation frequency132and the rotational frequency136a predetermined process parameters provided to the tool drive102by the control unit106. The controller100determines (e.g., calculates) a frequency compensation required to account for the vibrations of the workpiece114, determined from the dynamic stiffness model130and corresponding to the resonant frequency134. The controller100is configured to generate and provide a frequency compensation signal204(e.g., shown inFIG.10) to the tool drive102(e.g., to the control unit106). At least one of the oscillation frequency132and the rotational frequency136of the spindle110is compensated by the frequency compensation such that a compensated oscillation frequency and/or compensated rotational frequency do not coincide with the resonant frequency134of the workpiece114.

The modified frequency (e.g., compensated oscillation frequency and/or compensated rotational frequency) of the tool drive102being different than the resonant frequency134of the workpiece114prevents resonance (e.g., increased amplitude) that may occur when the frequency of the force applied by the tool drive102is equal or close to a natural frequency of the workpiece114.

In one or more examples, the stiffness model120includes both the static stiffness model122(e.g., shown inFIG.9) and the dynamic stiffness model130(e.g., shown inFIG.11). In one or more examples, the stiffness model120and the dynamic stiffness model130are mapped to the geometry128of the workpiece114. In one or more examples, the controller100includes the instructions162that are executable to map the stiffness model120(e.g., the stiffness model120and the dynamic stiffness model130) to the geometry128of the workpiece114.

As illustrated inFIGS.8-11, in one or more examples, after the stiffness model120is generated, the instructions162are executable to collect the force signal126from the control unit106of the tool drive102. The instructions162are executable to use the force signal126and the stiffness model120to determine the deflection124of the workpiece114and to determine the resonant frequency134of the workpiece114during the machining of the workpiece114. The instructions162are executable to use the deflection124and the resonant frequency134determined for the workpiece114to modify at least one of the displacement118of the spindle110, the oscillation frequency132of the spindle110, and the rotational frequency136of the spindle110during the machining of the workpiece114.

Referring generally toFIGS.12-16, in one or more examples, the controller100collects data or information related to force and displacement (e.g., force values and displacement values) from the tool drive102(e.g., from the control unit106). In one or more examples, the controller100uses the force data and the displacement data (e.g., collected from the tool drive102) to determine a location of a tool center point (TCP)148(e.g., shown inFIG.1) of the robotic machining system156, for example, prior to or during the machining operation. In one or more examples, the controller100uses the force data and the displacement data (e.g., collected from the tool drive102) to determine a location and orientation of the workpiece114, for example, prior to or during the machining operation.

In automated manufacturing, the robotic machining system156performs the machining operation with very high accuracy due to the control unit106keeping track of where all the robotic assembly parts are in relation to others in every moment. To do so, the robotic machining system156uses a coordinate system fixed to the robotic manipulator154. Generally, without a tool attached to the robotic manipulator154, an end of the robotic manipulator154(e.g., robotic arm) is used as the reference point for navigation. When a tool (e.g., the tool drive102) is coupled to the end of the robotic manipulator154, the reference point needs to change to account for the offset of the tool. A tool center point (TCP) is used to create the necessary adjustment to translate the coordinate system to keep track of the tool instead of the end of the robotic manipulator154. Another important factor in automated manufacturing is the position (e.g., location and orientation) of the workpiece114. Deviations between an actual position and a nominal position of the workpiece114may lead to inaccuracies, manufacturing quality issues, or damage the system or the robot.

Accordingly, prior to and/or during the machining operation, accurate knowledge of the location of the tool center point of the robotic machining system156is required. Additionally, the location of the tool center point of the robotic machining system156may need to be recalibrated as needed, such as due to development of slack in the joints of the robotic manipulator154over time, due to new tool geometry, and the like. Furthermore, accurate knowledge of an actual location and orientation of the workpiece114is required. Such knowledge also enables corrections for any deviation between the actual position (e.g., actual location and orientation) of the workpiece114and a nominal position (e.g., theoretical location and orientation) of the workpiece114(e.g., where the control unit106of the robotic machining system156thinks the workpiece114is).

The present disclosure is also directed to apparatuses and methods for using spindles with actuation capabilities (e.g., the spindle110) to address the above-referenced problems. The spindle110(e.g., piezoelectric spindle or electromagnetic spindle) enables selective positioning of the spindle shaft170along at least one axis. The spindle110includes the sensors186that measure displacement (e.g., directly) and forces (e.g., indirectly). The sensor signals192(e.g., shown inFIG.3) provided by the sensors186are used to determine the location of the tool center point, compensated for tool offset, and to determine the position of the workpiece114without a need for external equipment or complex setup.

Accordingly, the controller100enables the tool drive102to serve as a probe and uses the signals provided by the sensors186of the tool drive102as measurements from the spindle110while the tool drive102is in operation. This implementation of the controller100and utilization of the spindle110substitutes for the use of external devices to calculate the TCP and/or reference the surface of the workpiece114.

Referring toFIG.1, in one or more examples of the controller100for the tool drive102, the controller100includes instructions162that are executable to collect the force signal126from the control unit106of the tool drive102. The force signal126representing the force108applied to the spindle110of the tool drive102in response to engagement of the tip112of the tool drive102with the workpiece114.

In one or more examples, the controller100includes the instructions162that are executable to collect the displacement signal138from the control unit106of the tool drive102. The displacement signal138representing the displacement118of the spindle110of the tool drive102in response to engagement of the tip112of the tool drive102with the workpiece114.

FIG.12schematically illustrates an example of the tool drive102being used as a locating probe (e.g., sensor).FIG.12also illustrates a corresponding graphical representation of current readings (e.g., force signals126) generated by the tool drive102related to positions of the spindle110(e.g., displacement signals138) generated by the tool drive102.FIG.12illustrates an example before engagement of the tip112of the machining tool166with a measuring structure210.

FIG.13schematically illustrates an example of the tool drive102being used as a locating probe (e.g., sensor).FIG.13also illustrates a corresponding graphical representation of current readings (e.g., force signals126) generated by the tool drive102related to positions of the spindle110(e.g., displacement signals138) generated by the tool drive102.FIG.13illustrates an example after engagement of the tip112of the machining tool166with the measuring structure210.

As illustrated inFIG.12, before engagement of the tip112of the machining tool166(e.g., a tool bit or dedicated probe), there is no change in the force108and the displacement118of the spindle110and, thus, no change in the current and position reading based on the force signal126and the displacement signal138. As such, the readings from the sensors186before engagement of the tip112of the machining tool166are used as a “zero” measurement.

As illustrated inFIG.13, after engagement of the tip112of the machining tool166, there is a change in the force108and the displacement118of the spindle110and, thus, a change in the current and position readings based on the force signal126and the displacement signal138.

FIG.13also illustrates a tool center point (TCP) offset206that is applied to the robotic machining system156. The TCP offset206compensates for a geometry of the tool drive102.

Referring now toFIGS.14-16, which schematically illustrate examples of the tool drive102being used as a locating probe (e.g., sensor). In one or more examples, as shown inFIG.14, readings from the tool drive102(e.g., as shown inFIG.13) are used to locate the tip112of the machining tool166and, thus, the tool center point148for the robotic manipulator154(e.g., as compensated by the TCP offset206). In one or more examples, as shown inFIGS.15and16, readings from the tool drive102(e.g., as shown inFIG.13) are used to locate the workpiece114.

In one or more examples, the controller100includes the instructions162that are executable to use the force signal126and the displacement signal138to determine a location of the tip112of the tool drive102relative to a fixed coordinate system140(e.g., a machine coordinate system).

Referring toFIG.14, in one or more examples, a point of engagement144between the tip112of the tool drive102and the workpiece114has a known location relative to the fixed coordinate system140. In these examples, the measuring structure210is coupon208or other fixed structure having a known position (e.g., a known location and orientation) relative to the fixed coordinate system140.

After engagement of the tip112of the tool drive102with the workpiece114at the point of engagement144, the instructions162are executable to use the location (e.g., X, Y, Z coordinates) determined for the tip112of the tool drive102to determine the tool center point148(e.g., shown inFIG.1) of the robotic manipulator154.

In one or more examples, the tip112of the tool drive102contacts a plurality of points of engagement144(e.g., four points of engagement144are shown inFIG.13). Known (e.g., theoretical) X, Y, Z coordinates for each one of the points of engagement144are provided to the controller100as input values. The robotic machining system156, under direction from the controller100and/or the control unit106, moves the tip112of the tool drive102to the X, Y, Z coordinate of each point of engagement144. Upon contact, the controller reads the change in force and/or displacement (e.g., as shown inFIG.13) to identify the X, Y, Z coordinates. The X, Y, Z coordinates are stored by the controller100. The controller100is also adapted to calculate an offset needed for correct orientation and perpendicularity of the tool drive102. The controller100transmits an update to the control unit106(e.g., a computer numerical control program) of the robotic machining system156with the compensated location of the tool center point148.

Referring now toFIGS.15and16, in one or more examples, the point of engagement144on the workpiece114has an unknown location relative to the fixed coordinate system140. In these examples, the measuring structure210is the workpiece114having an unknown position (e.g., an unknown location and orientation) relative to the fixed coordinate system140.

After engagement of the tip112of the tool drive102with the workpiece114at the point of engagement144, the instructions162are executable to use the location determined for the tip112of the tool drive102to determine a position (e.g., actual location and orientation) of the workpiece114relative to the fixed coordinate system140.

In one or more examples, the tip112of the tool drive102contacts a plurality of points of engagement144(e.g., four points of engagement144are shown inFIGS.15and16). Known X, Y, Z coordinates for the tip112of the tool drive102(e.g., the tool center point148) are provided to the controller100as input values. The robotic machining system156, under direction from the controller100and/or the control unit106, moves the tip112of the tool drive102into contact with each point of engagement144. Upon contact, the controller reads the change in force and/or displacement (e.g., as shown inFIG.13) to identify the X, Y, Z coordinates of the point of engagement144and, thus, the location and orientation of the workpiece114. The X, Y, Z coordinates are stored by the controller100. The controller100transmits an update to the control unit106(e.g., a computer numerical control program) of the robotic machining system156with the position information for the workpiece114.

Referring generally toFIGS.1-11and particularly toFIG.17, the present disclosure is also directed to examples of a method1700for using the tool drive102. Implementations of the method1700provide for determining the stiffness properties of the workpiece114and for modifying the operating parameters of the tool drive102to compensate for the deflection and/or vibration of the workpiece114during the machining operation.

Referring toFIG.17, in one or more examples, the method1700includes a step of (block1702) initiating at least one of a deflection and a vibration in the workpiece114. In one or more examples, the deflection and/or vibration is induced in the workpiece114using the tool drive102, as shown inFIG.6.

In one or more examples, the method1700includes a step of (block1704) collecting the force data104from the control unit106of the tool drive102. The force data104representing the force108applied to the spindle110of the tool drive102in response to engagement of the tip112of the tool drive102with the workpiece114.

In one or more examples, the method1700includes a step of (block1706) collecting the displacement data116from the control unit106of the tool drive102. The displacement data116representing the displacement118of the spindle110of the tool drive102in response to engagement of the tip112of the tool drive102with the workpiece114.

In one or more examples, the method1700includes a step of (block1708) generating the stiffness model120representing the workpiece114.

In one or more examples, the stiffness model120is generated using the force data104and the displacement data116(e.g., as shown inFIG.7). In these examples, the stiffness model120is the static stiffness model122(e.g., as shown inFIG.9). The static stiffness model122relates the force108applied to the spindle110of the tool drive102to the deflection124of the workpiece114.

In one or more examples, the stiffness model120is generated using the oscillation frequencies132and the vibration amplification factors164. In these examples, the stiffness model120is the dynamic stiffness model130(e.g., as shown inFIG.11). The dynamic stiffness model130relates the oscillation frequency132of the spindle110to the vibration amplification factor amplification factor164of the workpiece114.

In one or more examples, the method1700includes a step of (block1710) mapping the stiffness model120(e.g., the static stiffness model122) to the geometry128of the workpiece114. In one or more examples, the step of (block1710) includes a step of mapping the static stiffness model122to the geometry128of the workpiece114. In one or more examples, the step of (block1710) mapping includes a step of mapping the dynamic stiffness model130to the geometry128of the workpiece114. In one or more examples, the step of (block1710) mapping includes a step of mapping the static stiffness model122and the dynamic stiffness model130to the geometry128of the workpiece114.

In one or more examples, the method1700includes a step of (block1712) performing the machining operation on the workpiece114.

In one or more examples, the method1700includes a step of (block1714) collecting the force signal126from the control unit106of the tool drive102. The force signal126representing the force108applied to the spindle110of the tool drive102during machining (e.g., block1712) of the workpiece114.

In one or more examples, the method1700includes a step of (block1716) determining the deflection124of the workpiece114using the force signal126and the static stiffness model122. In one or more examples, the step of (block1716) determining occurs or is performed during the step of (block1712) machining the workpiece114.

In one or more examples, the method1700includes a step of (block1718) modifying the displacement118of the spindle110to compensate for the deflection124of the workpiece114using the deflection124determined for the workpiece114. In one or more examples, the step of (block1718) modifying occurs or is performed during the step of (block1712) machining of the workpiece114.

In one or more examples, the method1700includes a step of (block1720) determining the resonant frequency134of the workpiece114using the dynamic stiffness model130.

In one or more examples, the method1700includes a step of (block1722) modifying at least one of the oscillation frequency132of the spindle110and the rotational frequency136of the spindle110to reduce vibrations in the workpiece114using the resonant frequency134determined for the workpiece114. In one or more examples, the step of (block1722) modifying occurs or is performed during the step of (block1712) machining of the workpiece114.

In one or more examples, the method1700includes the step of (block1716) determining the deflection124of the workpiece114and the step of (block1720) determining the resonant frequency134of the workpiece114using the force signal126and the stiffness model120.

In one or more examples, the method1700includes the step of (block1718) modifying the displacement118of the spindle110and the step of (block1722) modifying at least one of the oscillation frequency132of the spindle110and the rotational frequency136of the spindle110using the deflection124and the resonant frequency134determined for the workpiece114.

Referring generally toFIGS.1-4and12-16and particularly toFIG.18, the present disclosure is further directed to examples of a method1800for using the tool drive102. Implementations of the method1800provide for determining the location of the tip112of the tool drive102and, thus, the tool center point148of the robotic manipulator154or for determining the position of the workpiece114from the location of the tip112.

Referring toFIG.18, in one or more examples, the method1800includes a step of (block1802) engaging the tip112of the tool drive102with a surface of the measuring structure210. For example, the robotic manipulator154moves the tip112of the tool drive102into contact with one or more points of engagement144(e.g., as shown inFIGS.14-16) of the measuring structure210.

In one or more examples, the measuring structure210is the coupon208and the point of engagement144has a known location (e.g., known X, Y, Z coordinates), as shown inFIG.14. In one or more examples, the measuring structure210is the workpiece114and the point of engagement144has an unknown location (e.g., unknown X, Y, Z coordinates), as shown inFIGS.15and16.

In one or more examples, the method1800includes a step of (block1804) collecting the force signal126from the control unit106of the tool drive102. The force signal126representing the force108applied to the spindle110of the tool drive102in response to engagement of the tip112of the tool drive102with the point of engagement144of the measuring structure210.

In one or more examples, the method1800includes a step of (block1806) collecting the displacement signal138from the control unit106of the tool drive102. The displacement signal138representing the displacement118of the spindle110of the tool drive102in response to engagement of the tip112of the tool drive102with the point of engagement144of the measuring structure210.

In one or more examples, the method1800includes a step of (block1808) determining the location of the tip112of the tool drive102relative to the fixed coordinate system140using the force signal126and the displacement signal138.

In one or more examples, according to the method1800, the point of engagement144between the tip112of the tool drive102and the workpiece114has the known location relative to the fixed coordinate system140. In one or more examples, the method1800includes a step of (block1810) determining the tool center point148of the robotic manipulator154using the location determined for the tip112of the tool drive102.

In one or more examples, according to the method1800the point of engagement144on the workpiece114has the unknown location relative to the fixed coordinate system140. In one or more examples, the method1800includes a step of (block1812) determining the position of the workpiece114relative to the fixed coordinate system140using the location determined for the tip112of the tool drive102.

In one or more examples, implementations of the method1800are used to identify and/or locate one or more particular portions of the measuring structure210(e.g., the workpiece114) or one or more particular features on the measuring structure210(e.g., the workpiece114) using the tool drive102. As an example, implementations of the method1800may use the tool drive102to identify and/or located a position (e.g., location and/or orientation) of a borehole formed in a surface of the measuring structure210(e.g., the workpiece114), such as pilot holes used in aircraft assembly.

FIG.19schematically illustrates an example of a flow diagram of a compensation process1900, representing the static stiffness identification phase and the production phase for compensation of the machining operation. In the identification phase, a deflection (block1902) is introduced in the workpiece114and displacement measurements (block1904) and force measurements (block1906) are taken using the signals provided by the tool drive102and representing the displacement118and force108of the spindle110(e.g., as also shown inFIG.6). The displacement measurements (block1904) and force measurements (block1906) are used to identify the stiffness (block1908) of the workpiece114and generate the static stiffness model122(block1910).

In the production phase, tool motion (block1912) of the tool drive102, such as the displacement118(block1914) of the spindle110, is provided as a process requirement. The tool motion (block1912) and in-process force measurements (block1916) are applied to a thrust force model (block1920) and the static stiffness model122(block1910) to determine the deflection124(block1922) of the workpiece114. The deflection124(block1922) is used to provide compensated tool motion (block1924) for the tool drive102, such as by a modified displacement118(block1926) of the spindle110.

In one or more examples, the thrust force model (block1920) refers to a process force model that takes into account expected material thickness (e.g., for cutting or other machining operations), material properties, feed and machining (e.g., cutting) speed, and the like. In one or more examples, the thrust force model is part of a combined stiffness and stiffness model for feed forward control. In one or more examples, the thrust force model is process force model which takes into account the expected material thickness for cutting, material properties, feed and cutting speed. In one or more examples, the thrust force model is a part of a combined stiffness and stiffness model for feed forward control. In one or more examples, the thrust force model is used to improve controller performance for stiffness compensation.

As shown inFIG.19, the production phase may be performed iteratively throughout the machining operation to compensate the tool motion of the tool drive102(e.g., modify the displacement118of the spindle110) as the tool drive102moves to different locations on the workpiece114throughout the machining operation.

FIG.20schematically illustrates an example of a flow diagram a compensation process2000, representing the dynamic stiffness identification phase and the production phase for compensation of the machining operation. In the identification phase, an excitation (block2002) is introduced in the workpiece114and displacement measurements (block2004) and force measurements (block2006) are taken using the signals provided by the tool drive102and representing the displacement118and force108of the spindle110(e.g., as also shown inFIG.6). The displacement measurements (block2004) and force measurements (block2006) are used to identify the stiffness (block2008) of the workpiece114and generate the dynamic stiffness model130(block2010).

In the production phase, a frequency (block2012) of the tool drive102(e.g., the oscillation frequency132and/or the rotational frequency136of the spindle110) is provided as process limits (block2014). The frequency (block2012) is applied to higher harmonics (block2016) and the dynamic stiffness model130(block2010) to determine the resonant frequency134(block2018) of the workpiece114. The resonant frequency134(block2018) is used with the process limits (block2014) to provide compensated tool motion (block2020) for the tool drive102, such as by a modified frequency (block2022) (e.g., modified oscillation frequency132and/or modified rotational frequency136) of the spindle110.

For the purpose of the present disclosure, the term higher harmonics refers to the harmonic (e.g., sinusoidal) excitations in vibration assisted drilling and by the spindle drive172. Because of the nature of the cutting process, the system is excited with the original frequencies and also with its multiples (called higher harmonics). If one of these higher harmonics coincides with a resonance frequency, the system will resonate (e.g., vibrate with very high amplitudes). Examples of the controller100, the method1700, and/or the compensation process2000described herein facilitate a change to the base excitations such that all higher harmonics do not coincide with resonances.

As shown inFIG.20, in-process measurements (block2024) can be taken during the machining operation such that the production phase may be performed iteratively throughout the machining operation to compensate the tool motion of the tool drive102(e.g., modify the oscillation frequency132and/or the rotational frequency136of the spindle110) as the tool drive102moves to different locations on the workpiece114throughout the machining operation.

Referring now toFIG.21, which illustrates an example of a computational process2100for compensating for the deflection124in the workpiece114. The process2100shown inFIG.21is an example of the step of (block1718) modifying the displacement118of the tool drive102in the method1700(e.g., shown inFIG.17).

As illustrated inFIG.21, drive dynamics (block2102), process (block2104), and stiffness (block2106) are inherent physical properties of the system. The blocks represent the dynamics of the actual physical components to eliminate modelling error. A stiffness model (block2108) represents a model of the actual physical stiffness. An inverse process and stiffness model (block2110) represents a model of the physical process and the stiffness.

As illustrated inFIG.21, Xd (block2112) is a desired displacement of the tool drive102(e.g., the spindle shaft170) and a corresponding deflection of the workpiece114. Xc (block2114) is a commanded displacement of the tool drive102(e.g., the spindle110). Xeff (block2116) is an effective displacement of the tool drive102(e.g., the spindle110) and a corresponding deflection of the workpiece114. Xeff,est (block2118) is an estimated effective displacement of the tool drive102(e.g., the spindle110). Δx (block2120) is the difference or variation in displacement, which is provided to the controller (block2122).

Referring now toFIG.22, which illustrates an example of a computational process2200for compensating for the dynamic resonance in the workpiece114. The process2000shown inFIG.22is an example of the step of (block1720) modifying the oscillation frequency132and/or the rotational frequency136of the tool drive102in the method1700(e.g., shown inFIG.17).

In one or more examples, the process2200includes a step of (block2202) defining constraints. In one or more examples, the constraints include DELTA_F-ROT-LIST (block2204), F-ROT (block2206), X_HARMONIC_LIST (block2208), and F_RESONANCE_LIST (block2210). DELTA_F-ROT-LIST (block2204) refers to a range of base rotational frequencies that forms or defines a search space for execution of a compensation algorithm. As an example, DELTA_F-ROT-LIST (block2204) is a list of possible deviations from the original rotational frequency. F-ROT (block2206) refers to a rotational frequency of the spindle110(e.g., rotations per minute of the spindle shaft170). X_HARMONIC_LIST (block2208) refers to a list of higher order harmonic multiplicators, including, for example, vibration assisted drilling (VAD) frequencies). F_RESONANCE_LIST (block2210) refers to a list of system resonance frequencies.

In one or more examples, the process2200includes a step of (block2212) performing compensations for DELTA F. In one or more examples, compensations are performed for each DELTA_F in the DELTA_F-ROT-LIST. In one or more examples, an algorithm searches in the DELTA_F-ROT-LIST for the best change to the rotational speed that is not affected by resonances. In one or more examples, the algorithm tries every rotation frequency in a certain range (e.g., from the DELTA_F-ROT-LIST). For one particular rotation frequency, the worst case resonance frequency is selected (block2214), for example, the one that is closest, which is the one with minimum difference to the rotation frequency. From all rotation frequencies, the maximum distance to a resonance frequency is selected (block2216).

Referring now toFIG.23, which illustrates an example of an operation process2300for detecting a location and using the tool drive102(e.g., the spindle110) as a probe. The process2300shown inFIG.23is an example of a detection algorithm and is an example of a portion of the method1800(e.g., shown inFIG.18).

In the illustrated example, the process2300begins with the sensors186of the spindle110being activated (block2302) and the tip112of the tool drive102not engaged (block2304). Readings from the sensors186are taken in the X, Y, Z axes (block2306). A rolling average of the sensor readings is calculated along the X, Y, Z axes (block2308). Average values of the sensor readings are stored as zero values for the X, Y, Z axes (block2310). The baseline of the robotic machining system156is reset (block2312).

The controller100instructs the robotic manipulator154to move the tool drive102toward the measuring structure210(e.g., the workpiece114or the coupon208) (block2314). A determination is made whether average values of the sensor reading are different than the zero values for the X, Y, Z axes (block2316). If no, then the tip112of the tool drive102is not in contact with the point of engagement144and the controller100instructs the robotic manipulator154to move the tool drive102further toward the measuring structure210(block2314). If yes, then the X, Y, Z position (e.g., coordinates) of the point of engagement144of the measuring structure210is identified (block2318).

The tool drive102is retracted or moved away from the measuring structure210by ΔX, ΔY, ΔZ (block2320) and a determination is made whether the average values of the sensor readings return to the zero values for the X, Y, Z axes (block2322). If no, then the tool drive102is further retracted or moved away from the measuring structure210by ΔX, ΔY, ΔZ (block2320). If yes, then the X, Y, Z position (e.g., coordinates) of the measuring structure210are stored (block2324). Optionally, the X, Y, Z position (e.g., coordinates) of the measuring structure210are rechecked (block2326). The controller100ends movement of the robotic manipulator154(block2328).

An example of using the process2300(e.g., shown inFIG.23) for directly measuring the tool center point148of the robotic manipulator154(e.g., as also shown inFIG.14) includes: (1) providing the tool center point of the robotic manipulator154as a known value; (2) installing the tool drive102on the robotic manipulator154such that the tool center point148of the robotic manipulator154is now unknown; (3) approaching a surface of the measuring structure210(e.g., the coupon208) with the tool drive102, in which one or more points of engagement144of the measuring structure210have a known position (e.g., known X, Y, Z coordinates); (4) reading the sensor signals192from the spindle110(e.g., from the sensors186) before contacting the tip112of the tool drive102with the point of engagement144; (5) setting the readings from the sensor signals192as “zero” values; (6) contacting the tip112of the tool drive102with the point of engagement144; (7) reading the sensor signals192from the spindle110, in which changes in the values of the sensor signals192(e.g., readings) indicate changes in force (e.g., current) and displacement (e.g., position) of the spindle110in at least one axis (e.g., Z axis); (8) using the newly acquired position (e.g., X, Y, Z coordinates along the Z-axis) at the point of engagement144as the new tool center point148; and (9) providing a tool center point offset command to the control unit106(e.g., the computer numerical control program) of the robotic machining system156.

An example of using the process2300(e.g., shown inFIG.23) for referencing the position (e.g., location and/or orientation) of the workpiece114or a particular feature of the workpiece114(e.g., as also shown inFIGS.15and16) includes steps of: (1) providing an approximated location and orientation for the workpiece114; (2) selecting at least four points of engagement144on the surface of the workpiece114(e.g., 4 corners); (3) reading the sensor signals192from the spindle110(e.g., from the sensors186) before contacting the tip112of the tool drive102with the point of engagement144; (4) setting the readings from the sensor signals192as “zero” values; (5) contacting the tip112of the tool drive102with a first two of the points of engagement144(e.g., scanning in the Y-direction); (6) reading the sensor signals192from the spindle110, in which changes in the values of the sensor signals192(e.g., readings) indicate changes in force (e.g., current) and displacement (e.g., position) of the spindle110to determine an offset in one direction (e.g., a Z-offset in the Y-direction); (7) contacting the tip112of the tool drive102with a second two of the points of engagement144(e.g., scanning in the X-direction); (8) reading the sensor signals192from the spindle110, in which changes in the values of the sensor signals192(e.g., readings) indicate changes in force (e.g., current) and displacement (e.g., position) of the spindle110to determine an offset in another direction (e.g., a Z-offset in the X-direction); (9) providing the X, Y, Z coordinates of the four points of engagement144to the control unit106of the robotic machining system156for self-calibration and perpendicularity.

In either of the above examples, the process can be performed using the actual tool bit coupled to the spindle110(e.g., if there are areas of the measuring structure210that can be touched with slight modifications to its surface quality) or using a passive probe coupled to the spindle110(e.g., if there are no areas of the measuring structure210that can be touched with slight modifications to its surface quality).

Referring now toFIG.24, in one or more examples, the controller100(e.g., shown inFIG.1) includes the data processing unit160. In one or more examples, the data processing unit160includes a communications framework2402, which provides communications between at least one processor unit2404, one or more storage devices2406, such as memory2408and/or persistent storage2410, a communications unit2412, an input/output (I/O) unit2414, and a display2416. In this example, the communications framework2402takes the form of a bus system.

The processor unit2404serves to execute instructions for software that can be loaded into the memory2408. In one or more examples, the processor unit2404is a number of processors, a multi-processor core, or some other type of processor, depending on the particular implementation.

The memory2408and the persistent storage2410are examples of the storage devices2406. A storage device is any piece of hardware that is capable of storing information, such as, for example, without limitation, at least one of data, program code in functional form, or other suitable information either on a temporary basis, a permanent basis, or both on a temporary basis and a permanent basis. The storage devices2406may also be referred to as computer readable storage devices in one or more examples. The memory2408is, for example, a random-access memory or any other suitable volatile or non-volatile storage device. The persistent storage2410can take various forms, depending on the particular implementation.

For example, the persistent storage2410contains one or more components or devices. For example, the persistent storage2410is a hard drive, a solid state hard drive, a flash memory, a rewritable optical disk, a rewritable magnetic tape, or some combination of the above. The media used by the persistent storage2410also can be removable. For example, a removable hard drive can be used for the persistent storage2410.

The communications unit2412provides for communications with other data processing systems or devices. In one or more examples, the communications unit2412is a network interface card.

Input/output unit2414allows for input and output of data with other devices that can be connected to the data processing unit160. As an example, the input/output unit2414provided a connection with the control unit106or with the spindle110of the tool drive102. As another example, the input/output unit2414provides a connection for user input through at least one of a keyboard, a mouse, or some other suitable input device. Further, the input/output unit2414can send output to a printer. The display2416provides a mechanism to display information to a user.

Instructions for at least one of the operating system, applications, or programs can be located in the storage devices2406, which are in communication with the processor unit2404through the communications framework2402. The processes of the various examples and operations described herein can be performed by the processor unit2404using computer-implemented instructions, which can be located in a memory, such as the memory2408.

The instructions are referred to as program code, computer usable program code, or computer readable program code (e.g., the instructions162shown inFIG.1) that can be read and executed by a processor in processor unit2404. The program code in the different examples can be embodied on different physical or computer readable storage media, such as the memory2408or the persistent storage2410.

In one or more examples, program code2418is located in a functional form on computer readable media2420that is selectively removable and can be loaded onto or transferred to the data processing unit160for execution by the processor unit2404. The program code2418is an example of the instructions162(e.g., shown inFIG.1). In one or more examples, the program code2418and computer readable media2420form a computer program product2422. In one or more examples, the computer readable media2420is computer readable storage media2424.

In one or more examples, the computer readable storage media2424is a physical or tangible storage device used to store the program code2418rather than a medium that propagates or transmits the program code2418.

Alternatively, the program code2418can be transferred to the data processing unit160using a computer readable signal media. The computer readable signal media can be, for example, a propagated data signal containing the program code2418. For example, the computer readable signal media can be at least one of an electromagnetic signal, an optical signal, or any other suitable type of signal. These signals can be transmitted over at least one of communications links, such as wireless communications links, optical fiber cable, coaxial cable, a wire, or any other suitable type of communications link.

The different components illustrated for data processing unit160are not meant to provide architectural limitations to the manner in which different examples can be implemented. The different examples can be implemented in a data processing system including components in addition to or in place of those illustrated for the data processing unit160. Other components shown inFIG.24can be varied from the examples shown. The different examples can be implemented using any hardware device or system capable of running the program code2418.

Additionally, various components of the controller100and/or the data processing unit160may be described as modules. For the purpose of the present disclosure, the term “module” includes hardware, software or a combination of hardware and software. As an example, a module can include one or more circuits configured to perform or execute the described functions or operations of the executed processes described herein (e.g., the method1700, the method1800, the compensation process1900, the compensation process2000, the process2100, the process2200, and the process2300). As another example, a module includes a processor, a storage device (e.g., a memory), and computer-readable storage medium having instructions that, when executed by the processor causes the processor to perform or execute the described functions and operations. In one or more examples, a module takes the form of the program code2418and the computer-readable media2420together forming the computer program product2422.

Referring now toFIGS.25and26, examples of the controller100, the robotic machining system156, the method1700, and the method1800may be related to, or used in the context of, an aircraft manufacturing and service method2500, as shown in the flow diagram ofFIG.25and an aircraft2600, as schematically illustrated inFIG.26. For example, the aircraft2600and/or the aircraft production and service method2500may utilize implementations of the controller100, the robotic machining system156, the method1700, and/or the method1800for machining a workpiece (e.g., workpiece114) using the tool drive102.

Referring toFIG.26, which illustrates an example of the aircraft2600. The aircraft2600also includes an airframe2602having an interior2604. The aircraft2600includes a plurality of onboard systems2606(e.g., high-level systems). Examples of the onboard systems2606of the aircraft2600include propulsion systems2608, hydraulic systems2612, electrical systems2610, and environmental systems2614. In other examples, the onboard systems2606also includes one or more control systems coupled to an airframe2602of the aircraft2600, such as for example, flaps, spoilers, ailerons, slats, rudders, elevators, and trim tabs. In yet other examples, the onboard systems2606also includes one or more other systems, such as, but not limited to, communications systems, avionics systems, software distribution systems, network communications systems, passenger information/entertainment systems, guidance systems, radar systems, weapons systems, and the like.

Referring toFIG.25, during pre-production of the aircraft2600, the method2500includes specification and design of the aircraft2600(block2502) and material procurement (block2504). During production of the aircraft2600, component and subassembly manufacturing (block2506) and system integration (block2508) of the aircraft2600take place. Thereafter, the aircraft2600goes through certification and delivery (block2510) to be placed in service (block2512). Routine maintenance and service (block2514) includes modification, reconfiguration, refurbishment, etc. of one or more systems of the aircraft2600.

Each of the processes of the method2500illustrated inFIG.25may be performed or carried out by a system integrator, a third party, and/or an operator (e.g., a customer). For the purposes of this description, a system integrator may include, without limitation, any number of spacecraft manufacturers and major-system subcontractors; a third party may include, without limitation, any number of vendors, subcontractors, and suppliers; and an operator may be an airline, leasing company, military entity, service organization, and so on.

Examples of the controller100, the robotic machining system156, the method1700, and the method1800shown and described herein, may be employed during any one or more of the stages of the manufacturing and service method2500shown in the flow diagram illustrated byFIG.25. In an example, machining a workpiece (e.g., workpiece114) using the controller100or the robotic machining system156or according to the method1700or the method1800may form a portion of component and subassembly manufacturing (block2506) and/or system integration (block2508). Further, machining a workpiece (e.g., workpiece114) using the controller100or the robotic machining system156or according to the method1700or the method1800may be implemented in a manner similar to components or subassemblies prepared while the aircraft2600is in service (block2512). Also, a workpiece (e.g., workpiece114) machined using the controller100or the robotic machining system156or according to the method1700or the method1800may be utilized during system integration (block2508) and certification and delivery (block2510). Similarly, a workpiece (e.g., workpiece114) machined using the controller100or the robotic machining system156or according to the method1700or the method1800may be utilized, for example and without limitation, while the aircraft2600is in service (block2512) and during maintenance and service (block2514).

The preceding detailed description refers to the accompanying drawings, which illustrate specific examples described by the present disclosure. Other examples having different structures and operations do not depart from the scope of the present disclosure. Like reference numerals may refer to the same feature, element, or component in the different drawings. Throughout the present disclosure, any one of a plurality of items may be referred to individually as the item and a plurality of items may be referred to collectively as the items and may be referred to with like reference numerals. Moreover, as used herein, a feature, element, component, or step preceded with the word “a” or “an” should be understood as not excluding a plurality of features, elements, components or steps, unless such exclusion is explicitly recited.

Illustrative, non-exhaustive examples, which may be, but are not necessarily, claimed, of the subject matter according to the present disclosure are provided above. Reference herein to “example” means that one or more feature, structure, element, component, characteristic, and/or operational step described in connection with the example is included in at least one aspect, embodiment, and/or implementation of the subject matter according to the present disclosure. Thus, the phrases “an example,” “another example,” “one or more examples,” and similar language throughout the present disclosure may, but do not necessarily, refer to the same example. Further, the subject matter characterizing any one example may, but does not necessarily, include the subject matter characterizing any other example. Moreover, the subject matter characterizing any one example may be, but is not necessarily, combined with the subject matter characterizing any other example.

For the purpose of this disclosure, the terms “coupled,” “coupling,” and similar terms refer to two or more elements that are joined, linked, fastened, attached, connected, put in communication, or otherwise associated (e.g., mechanically, electrically, fluidly, optically, electromagnetically) with one another. In various examples, the elements may be associated directly or indirectly. As an example, element A may be directly associated with element B. As another example, element A may be indirectly associated with element B, for example, via another element C. It will be understood that not all associations among the various disclosed elements are necessarily represented. Accordingly, couplings other than those depicted in the figures may also exist.

As used herein, the term “approximately” refers to or represent a condition that is close to, but not exactly, the stated condition that still performs the desired function or achieves the desired result. As an example, the term “approximately” refers to a condition that is within an acceptable predetermined tolerance or accuracy, such as to a condition that is within 10% of the stated condition. However, the term “approximately” does not exclude a condition that is exactly the stated condition. As used herein, the term “substantially” refers to a condition that is essentially the stated condition that performs the desired function or achieves the desired result.

FIGS.1-16,24and26, referred to above, may represent functional elements, features, or components thereof and do not necessarily imply any particular structure. Accordingly, modifications, additions and/or omissions may be made to the illustrated structure. Additionally, those skilled in the art will appreciate that not all elements, features, and/or components described and illustrated inFIGS.1-16,24and26, referred to above, need be included in every example and not all elements, features, and/or components described herein are necessarily depicted in each illustrative example. Accordingly, some of the elements, features, and/or components described and illustrated inFIGS.1-16,24and26may be combined in various ways without the need to include other features described and illustrated inFIGS.1-16,24and26, other drawing figures, and/or the accompanying disclosure, even though such combination or combinations are not explicitly illustrated herein. Similarly, additional features not limited to the examples presented, may be combined with some or all of the features shown and described herein. Unless otherwise explicitly stated, the schematic illustrations of the examples depicted inFIGS.1-16,24and26, referred to above, are not meant to imply structural limitations with respect to the illustrative example. Rather, although one illustrative structure is indicated, it is to be understood that the structure may be modified when appropriate. Accordingly, modifications, additions and/or omissions may be made to the illustrated structure. Furthermore, elements, features, and/or components that serve a similar, or at least substantially similar, purpose are labeled with like numbers in each ofFIGS.1-16,24and26, and such elements, features, and/or components may not be discussed in detail herein with reference to each ofFIGS.1-16,24and26. Similarly, all elements, features, and/or components may not be labeled in each ofFIGS.1-16,24and26, but reference numerals associated therewith may be utilized herein for consistency.

Further, references throughout the present specification to features, advantages, or similar language used herein do not imply that all of the features and advantages that may be realized with the examples disclosed herein should be, or are in, any single example. Rather, language referring to the features and advantages is understood to mean that a specific feature, advantage, or characteristic described in connection with an example is included in at least one example. Thus, discussion of features, advantages, and similar language used throughout the present disclosure may, but do not necessarily, refer to the same example.

The described features, advantages, and characteristics of one example may be combined in any suitable manner in one or more other examples. One skilled in the relevant art will recognize that the examples described herein may be practiced without one or more of the specific features or advantages of a particular example. In other instances, additional features and advantages may be recognized in certain examples that may not be present in all examples. Furthermore, although various examples of the controller100, the robotic machining system156, the method1700, and the method1800, along with associated processes1900,2000,2100,2200,2300) have been shown and described, modifications may occur to those skilled in the art upon reading the specification. The present application includes such modifications and is limited only by the scope of the claims.