Quick movement tapping method

The method optimizes machine tool motion planning by integrating air-cut and tapping operations with time-optimal speed profiles, reducing cycle time and improving efficiency in multi-step machining processes.

JP2025141875APending Publication Date: 2025-09-29FANUC LTD
View PDF 0 Cites 0 Cited by

Patent Information

Application Number
JP2025037120
Authority / Receiving Office
JP · JP
Patent Type
Applications
Current Assignee / Owner
Priority Date
2024-03-14
Filing Date
2025-03-10
Publication Date
2025-09-29

AI Technical Summary

Technical Problem

Existing machine tool motion planning methods fail to optimize cycle time for multi-step operations like hole tapping, particularly due to the inclusion of staging locations that increase cycle time and do not effectively integrate air-cut steps with tapping operations.

Method used

A method for determining a time-optimal motion plan that calculates air-cut steps to reach the top of the hole at appropriate axial and rotational speeds, seamlessly integrating these steps with subsequent tapping operations to minimize overall cycle time.

Benefits of technology

The method significantly reduces cycle time by optimizing the movement of the tapping tool through air-cut and tapping steps, enhancing machine tool efficiency without requiring stops between steps.

✦ Generated by Eureka AI based on patent content.

Smart Images

  • Figure 2025141875000001_ABST
    Figure 2025141875000001_ABST
Patent Text Reader

Abstract

To materialize a method for machine tool movement control of determining a time optimal movement plan concerning a hole tapping step preceded by an air cut-off step.SOLUTION: A movement plan concerning an air cut-off step is calculated so that a tapping tool reaches an uppermost part of a hole to be tapped at a proper tapping feed speed in an axial direction and a proper tapping rotation speed. A period for the air cut-off step is calculated in relation to transit movements in a lateral direction and an axial direction and a spindle acceleration under a requirement of a maximum actuation force. Then, a longest period is used to plan the air cut-off step. Herein, an axial movement whose time is limited is performed with a maximum machine actuation force. As for the other axial lines, movements in the other axial lines are planned to be completed concurrently with the movement an axial line to which the longest period is assigned. The technique can be adapted to the air cut-off step prior to a tapping step or between two tapping steps.SELECTED DRAWING: Figure 23
Need to check novelty before this filing date? Find Prior Art

Description

[Technical Field]

[0001] CROSS-REFERENCE TO RELATED APPLICATIONS This application is a continuation-in-part of U.S. Utility Patent Application No. 18 / 491,107, filed October 20, 2023, entitled Rapid Movement Planning for Machine Tools.

[0002] The present disclosure relates generally to the field of machine tool motion control, and more particularly to a method for machine tool motion planning that determines a time-optimal motion plan for a hole tapping operation by adjusting a spindle speed profile for spatial motion of a tapping tool, where an air-cut step is calculated such that the tool reaches the top of the hole to be tapped at an appropriate axial speed and appropriate spindle rotational speed for tapping. [Background technology]

[0003] 2. Description of Related Art The use of computer-controlled devices to perform machining operations, such as drilling and milling, on parts is known in the art. In some applications, computer numerically controlled (CNC) machines are used that move a tool along a path in three dimensions while the tool maintains a fixed spatial orientation. In other applications, multi-axis industrial robots are equipped with machining heads that can move a tool along a path in space while also controlling the tool's orientation to any desired value.

[0004] Regardless of what type of machine tool or robot is used to perform the machining operation, a tool path trajectory and corresponding velocity profile must be calculated. The tool path trajectory includes both machining steps (when the tool is cutting material from the workpiece, such as drilling or milling) and "air-cut" movement steps (where the tool moves through air before or after a machining step to a point at the start of the next machining step).

[0005] Of course, the calculated tool path trajectory must accurately perform the desired machining step on the workpiece (i.e., provide a finished workpiece of the desired shape with holes in precise locations, etc.), and must also adhere to constraints such as the mechanical limits of the machine and specified feed rates when drilling or milling.

[0006] Additionally, to maximize machine productivity, it is desirable to calculate a tool path trajectory and velocity profile that provides the fastest possible cycle time for the entire machining operation, and it is essential to ensure that the tool path trajectory is collision-free, i.e., the tool and machine avoid collisions with the workpiece itself, or with fixed objects or any other obstacles in the workspace.

[0007] Techniques are known in the art that can calculate trajectories and corresponding velocity profiles that optimize cycle time, given specified start and target locations. However, such techniques cannot optimize total cycle time for multi-segment trajectories (such as an air-cut segment, then a cutting segment, then another air-cut segment, etc.). Furthermore, some trajectory calculation techniques cannot accommodate collision avoidance decisions in the trajectory calculation.

[0008] While other approaches exist that can address collision avoidance decisions in trajectory calculations, the existing approaches do not optimize cycle time. For example, one known method monitors for collisions in real time and, if an imminent collision is detected, stops the machine to prevent the collision. Another known method requires the calculation of multiple tool path trajectories in advance and selects one of the pre-defined trajectories for a particular operation based on the obstacle environment. Yet another method uses an imaging system to detect potential collisions in real time and adjust the trajectory accordingly, but does not optimize the cycle time of the operation.

[0009] Furthermore, in current machine tool control methods for hole tapping, the machine tool moves the tapping tool to a staging location waypoint near the top of the hole and then begins bringing the spindle up to the appropriate rotational speed for tapping while the machine axially feeds the tapping tool to perform the tapping operation. The inclusion of a staging location waypoint increases the cycle time of the tapping operation, which is detrimental to machine tool efficiency. Summary of the Invention [Problem to be solved by the invention]

[0010] In view of the above, there is a need for an improved machine tool motion planning method that can minimize cycle time in hole tapping operations that include multi-step operations with air-cut steps between each hole tapping step. [Means for solving the problem]

[0011] This disclosure describes a method for machine tool motion control that determines a time-optimal motion plan for a hole tapping step preceded by tool positioning, known as the air-cutting step. The motion plan for the air-cutting step is calculated so that the tapping tool reaches the top of the hole being tapped at an appropriate axial tapping feedrate and appropriate tapping rotational speed. First, the duration for the air-cutting step is calculated for lateral and axial translation moves and spindle acceleration under maximum actuation force conditions. The longest duration is then used to plan the air-cutting step, where time-limited axis moves are performed at maximum machine actuation force and other axes have their moves planned to complete simultaneously with the axis with the longest duration. The technique is applicable to the air-cutting step before the first tapping step or between two tapping steps.

[0012] Additional features of the disclosed systems and methods will become apparent from the following description and appended claims, taken in conjunction with the accompanying drawings. [Brief explanation of the drawings]

[0013] [Figure 1] FIG. 1 is a cross-sectional view of a workpiece machining operation and the basic concepts involved in motion planning for the operation. [Figure 2] FIG. 2 is a cross-sectional view of a workpiece and machining operation with two holes as in FIG. 1 and depicting a time-optimal trajectory for moving the tool from the first hole to the second hole. [Figure 3] FIG. 3 includes graphs of position, velocity, acceleration, and jerk versus time for a jerk-constrained motion profile as described in the summary above and known in the art. [Figure 4] FIG. 4 is a graph of velocity versus time for the three-step machining operation shown in FIG. 2 using conventional motion planning methods as known in the art. [Figure 5A] FIG. 5A is a diagram of a multi-step machining operation performed using a conventional motion planning method, along with a corresponding graph of velocity versus time. [Figure 5B] FIG. 5B is an illustration of a multi-step machining operation performed using the time-optimal trajectory movement planning method of the present disclosure, along with a corresponding graph of velocity versus time. [Figure 6] FIG. 6 is a flowchart diagram of a method for time-optimal multi-step movement planning for a machine tool using non-static intermediate waypoint states selected to minimize overall cycle time according to an embodiment of the present disclosure. [Figure 7] FIG. 7 is an illustration of an isometric view of a workpiece machining operation in which a tool path trajectory is determined that provides the shortest cycle time while also avoiding obstacles in the path, according to an embodiment of the present disclosure. [Figure 8] FIG. 8 is a cross-sectional view of the workpiece and machining operation of FIG. 2 where an obstacle interferes with the time-optimal trajectory and a new collision-free trajectory is calculated that passes through additional waypoints, according to an embodiment of the present disclosure. [Figure 9]FIG. 9 is a flowchart diagram of a general method for time-optimal collision-free machine tool motion planning according to an embodiment of the present disclosure. [Figure 10A] FIG. 10A shows a diagram of an obstacle avoidance trajectory illustrating concepts related to an approach for determining an initial estimate of velocity states at intermediate waypoints, according to an embodiment of the present disclosure. [Figure 10B] FIG. 10B shows a diagram of an obstacle avoidance trajectory illustrating concepts related to an approach for determining an initial estimate of velocity states at intermediate waypoints, according to an embodiment of the present disclosure. [Figure 10C] FIG. 10C shows a diagram of an obstacle avoidance trajectory illustrating concepts related to an approach for determining an initial estimate of velocity states at intermediate waypoints, according to an embodiment of the present disclosure. [Figure 11] FIG. 11 is a flowchart diagram of a method for determining initial estimates of velocity states at intermediate waypoints used in time-optimal collision-free machine tool movement planning according to an embodiment of the present disclosure. [Figure 12] FIG. 12 is a three-dimensional graph of a function relating machining operation cycle time to velocity states for intermediate waypoints in a trajectory, illustrating how gradient descent is used to find the optimum value of velocity, according to an embodiment of the present disclosure. [Figure 13] FIG. 13 is a flowchart diagram of a gradient descent method for optimizing velocity state values ​​for intermediate waypoints used in a time-optimal collision-free machine tool movement plan according to an embodiment of the present disclosure. [Figure 14A] FIG. 14A is an illustration of a multi-step drilling operation performed using a conventional motion planning method. [Figure 14B] FIG. 14B is an illustration of a multi-step drilling operation performed using the time-optimal trajectory planning method of the present disclosure. [Figure 15A] FIG. 15A is a diagram of a two-step machining operation performed using conventional programming and motion planning methods. [Figure 15B]FIG. 15B is an illustration of a two-step machining operation performed using the improved programming and time-optimal trajectory move planning method of the present disclosure. [Figure 16A] FIG. 16A is a diagram of a multiple pass milling operation performed using conventional programming and motion planning methods. [Figure 16B] FIG. 16B is an illustration of a multiple pass milling operation performed using the improved programming and time-optimal trajectory movement planning method of the present disclosure. [Figure 17] FIG. 17 is a flowchart diagram of an improved method for programming a machine tool that combines an air cutting step with another air cutting or cutting step into a single program command in accordance with an embodiment of the present disclosure. [Figure 18] FIG. 18 is a diagram of a machine tool tapping operation performed using a conventional motion planning method that includes an air-cut step to a staging point where the tool pauses before tapping begins, while synchronization of spindle speed and axial velocity begins. [Figure 19] FIG. 19 is an illustration of a machine tool tapping operation performed using an improved motion planning method including an air-cutting step incorporating synchronization of spindle speed and tool tip spatial movement in accordance with an embodiment of the present disclosure. [Figure 20] FIG. 20 is a graph of servo speed and spindle speed versus time for the air cut and tapping steps of a basic machine tool tapping operation illustrating the coordination and synchronization of servo and spindle speed controls according to an embodiment of the present disclosure. [Figure 21] FIG. 21 includes graphs of servo speed and spindle speed versus time for an air-cut step between two tapping steps of a general machine tool tapping operation, illustrating the coordination and synchronization of servo and spindle speed control for two different cases of time-limited constraints, in accordance with an embodiment of the present disclosure. [Figure 22]FIG. 22 includes graphs of servo speed and spindle speed versus time for an air-cut step between two tapping steps of a general machine tool tapping operation, illustrating the coordination and synchronization of servo and spindle speed control for two different cases of time-limited constraints, in accordance with an embodiment of the present disclosure. [Figure 23] FIG. 23 is a flowchart diagram of a time-efficient motion planning method for machine tool hole tapping, where the axial and rotational speeds for tapping are established during an air cutting step preceding the tapping step, in accordance with an embodiment of the present disclosure. DETAILED DESCRIPTION OF THE INVENTION

[0014] The following description of embodiments of the present disclosure directed to rapid movement tapping methods is merely exemplary in nature and is in no way intended to limit the disclosed devices and techniques or their applications or uses.

[0015] FIG. 1 is a cross-sectional view of a workpiece machining operation and basic concepts related to motion planning for the operation. FIG. 1 is provided as a basis for describing the type of machining operation that is the subject of this disclosure. A workpiece 100 is typically held in a fixed position by a clamp or fixture, and the workpiece 100 is machined by a tool 110 having a tip 112. The tool 110, which may be, for example, a drill or mill, is operated by a program-controlled machine (not shown), which may be a CNC machine or a multi-axis industrial robot. In the example shown in FIG. 1 and described throughout this disclosure, the tool 110 has a fixed orientation (i.e., the vertical as perceived in FIG. 1 is not tilted at any time).

[0016] 1 is the drilling of two holes, hole 102 and hole 104, in workpiece 100. Holes 102 and 104 are shown as already drilled for illustrative purposes. Tool 110 is first positioned substantially as shown in FIG. 1 and moved vertically downward until tool 110 contacts workpiece 100, and hole 102 is drilled in a known manner.

[0017] The remaining steps of operation, moving tool 110 out of hole 102, moving tool 110 to a position at the top of hole 104, and then drilling hole 104, are the subject of this disclosure. The first step in this operation is to move tip 112 of tool 110 upward along path 120 from waypoint 0 at the bottom of hole 102 to waypoint 1 at the top of hole 102. Because no material is being cut, tool 110 can be moved upward as quickly as possible in the first step (e.g., with maximum acceleration until it reaches maximum speed).

[0018] The second step in operation is to move tip 112 of tool 110 along path 130 (shown in general form) from waypoint 1 at the top of hole 102 to waypoint 2 at the top of hole 104. Because tool 110 is moving through air, this repositioning step can also be done as quickly as possible (observing the mechanical limitations of the machine). A technique for calculating a time-optimal trajectory for path 130 is described below. The final step in operation is to drill hole 104 by moving tip 112 of tool 110 downward along path 140 from waypoint 2 at the top of hole 104 to waypoint 3 at the bottom of hole 104. While drilling hole 104, tool 110 cannot move faster than a prescribed feed rate, as is known in the art, based on the material of workpiece 100 and other factors.

[0019] More than two holes may be drilled in the workpiece 100, in which case the tool path movements described above are repeated sequentially for each hole. While FIG. 1 shows simple two-dimensional tool movements, movements in a third dimension ("on-page and off-page") may be included, as shown in subsequent figures and discussed below. Furthermore, FIG. 1 depicts a hole drilling operation using tool 110, which is a drill bit. It should be understood that the machine tool movement planning techniques of the present disclosure are equally applicable to other types of machining operations, such as milling with an end mill or side mill. Thus, other types of features (in addition to holes) may be machined.

[0020] FIG. 2 is a cross-sectional view of a workpiece and machining operation with two holes, as in FIG. 1, depicting a time-optimal trajectory for moving a tool from the first hole to the second hole. The illustration of FIG. 2 provides an explanation for calculating a time-optimal trajectory in the absence of any obstacles, including waypoints and their corresponding state conditions. Workpiece 200 generally corresponds to workpiece 100 of FIG. 1. In FIG. 2, the machining operation involves drilling or boring two holes, including hole 202 and hole 204, using a tool (not shown). After machining hole 202, the objective is to reposition the tool as quickly as possible to machine hole 204. This involves moving the tool tip vertically upward out of hole 202, moving the tool tip along time-optimal trajectory 230, and then machining hole 204. Waypoints 0, 1, 2, and 3 have the same definitions as in FIG. 1.

[0021] The machine tool or robot performing the machining operation has mechanical constraints and other conditions that are defined as follows: feed is the vertical (z) speed used while the tool is cutting material, i.e., machining hole 204. V max is the maximum allowable speed / velocity of the tool in either the vertical (z) or horizontal (x) direction while it is moving through the air, i.e., when it is being repositioned and not machining. A maxis the maximum allowable acceleration of the tool in either the vertical (z) or horizontal (x) direction while the tool is being repositioned. Typically, the maximum jerk J max (rate of change of acceleration) is also defined for the machine tool.

[0022] To minimize the cycle time of the machining operation, the following boundary conditions are applied to the steps: In the first step (from 0 to 1), the x position is held fixed while moving the tool upward in the z direction. This upward movement in the first step starts stationary and max Until J max Apply V max A is reached or until the upward velocity needs to begin to be reduced to align with the second step (trajectory 230). max The vertical speed at point 1 is V exit And V exit V depends on the distances ΔZ and ΔX and other factors. max It can be: V exit The value of , and how it relates to the overall time-optimal multi-segment trajectory, will be discussed later.

[0023] As mentioned above, the first step in the machining operation is simple, i.e., possibly at a velocity V max V can be capped at exit The third step is also very simple: feed The second step is more complex, i.e., involves interdependent x and z movements, resulting in the trajectory 230 shown in Figure 2. The movements in the second step also result in an interdependence of V with respect to the movements of the first step. exit There are several different scenarios for the calculation of the tool path movement depicted in Figure 2. The scenarios depend on the distance that needs to be traveled (ΔZ and ΔX) and the respective maximum allowable speeds and accelerations (V max and A max) The following is a description of a technique for calculating a time-optimal movement profile for trajectory 230.

[0024] In the second step (trajectory 230 from 1 to 2), the x-axis "point-to-point" movement is V max , A max , and J max The point-to-point move involves a starting velocity of zero (in this case in the x direction) and then the following seven jerk-constrained moves: IA max Until J max Apply II.V max Until it gets close to A max Continue with III.V max Until A=0 is reached, -J max Reduce acceleration with IV.V without acceleration or jerk max Continue with V.-A max Increase the negative acceleration until it reaches -J max Apply -A until VI.V=0 max Continue with VII. J is used to reduce the negative acceleration until A=0 and V=0 are reached at the destination position (waypoint 2). max Apply

[0025] Figure 3 includes graphs of position, velocity, acceleration, and jerk versus time for a jerk-constrained movement profile as described in the overview above. The seven stages of the movement profile from the overview above are labeled on Figure 3. The jerk graph 310 shows the J max (phase I), goes down to zero, and then goes down to -J max to, then back down to zero, and then -J again. max and then back down to zero, and then J max The corresponding acceleration graph 320 shows the jerk starting at zero and increasing to A in phase I. maxincreases to A max Continues at -A, decreases to zero, continues at zero, then decreases to -A max -A max The corresponding velocity graph 330 shows acceleration starting at zero and continuing at V max It increases in stages I to III and levels off at V max and shows a velocity decreasing again to zero in stages V-VII. The corresponding position graph 340 shows the position starting at zero and increasing in an "S" shape until it reaches an end position corresponding to distance ΔX in FIG. 2 (e.g., x position for travel from waypoints 1-2 in FIG. 2).

[0026] The position, velocity, and acceleration for each of the seven stages can be determined using known motion equations, for example, a1 = a0 + t1 J max is the initial acceleration (a0), the duration of phase I (t1), and the maximum jerk (J max ) to define the acceleration (a1) at the end of Phase I as a function of the initial velocity, initial acceleration, maximum jerk, and the duration of Phase I (linear with respect to acceleration and squared with respect to jerk). Continuing in this manner, the resulting set of polynomials contains 21 equations (seven each for position, velocity, and acceleration) and 31 variables (eight for position [p0-p7], eight for velocity [v0-v7], eight for acceleration [a0-a7], and seven for time [t1-t7]). Numerous boundary conditions can be applied to eliminate an excessive number of variables for the equations. For example, in the above example shown in FIG. 3, the initial acceleration (a0) is known to be zero. The final velocity (v7) is also known to be zero, and the final position (p7) is known to be a distance ΔX.

[0027] When all of the boundary conditions are applied as described above, there remains a system of 21 equations and 21 unknowns that can be solved. This results in values ​​for all of the positions, velocities, and accelerations at the beginning and end of each stage, as well as the duration of each stage (i.e., values ​​t1 through t7). When the seven stage duration values ​​are added together (t1 + . . . + t7), this reveals the total duration of the jerk-constrained minimum-time movement profile. For trajectory 230 in FIG. 2, this total duration corresponds to the duration of the x-axis movement from waypoints 1 through 2. During this time, the z-axis velocity is calculated by multiplying the value of that z-axis velocity at waypoint 1 (V max is less than or equal to V exit ) to the required z-axis velocity at waypoint 2 (-V feed ) The acceleration required to effect this change in z-axis velocity is easily calculated given the period calculated from the x-axis movement.

[0028] Returning to FIG. 2, in the third step (from 2 to 3), a -V feed The x position is held fixed while moving the tool downward in the z direction at a speed of -V. At the end of the second step (trajectory 230), the velocity in the x direction is required to be zero and the velocity in the z direction is -V. feed Note that it is required that ∑ ∑ b ...

[0029] Table 1 below summarizes the conditions specified at each of waypoints 0, 1, 2, and 3 for the above-described three-step machining (drilling) operation depicted in Figure 2. For each waypoint, the x-axis and z-axis positions and velocities that need to be met are defined in the table. The only unknown value in Table 1 is the vertical velocity (V exit ) V exit The value of is determined in the manner described below.

[0030] [Table 1]

[0031] As mentioned above and shown in Table 1, the only unknown waypoint state for the three-step move in Figure 2 is the vertical velocity (V exit ) Intuitively, V exit is always V max However, in many cases, this is not the case. For example, if the height (ΔZ) of the hole 202 is very small, the maximum acceleration displacement is V max The exit velocity V exit A more interesting case arises when affects the time required to traverse trajectory 230 in step 2. This type of interdependence means that a true time-optimal trajectory for a multi-segment move can only be computed by computing all of the moves of the segments and optimizing the states of the intermediate waypoints to minimize the overall time.

[0032] Still referring to FIG. 2, consider a geometry where the hole 202 is deep and the distance ΔX is short. In this case, the exit velocity V exit V max , the vertical deceleration in step 2 (from waypoint 1 to 2) takes more time than the horizontal translation in step 2. This means that at the end of step 2, the exit velocity V exit V max This means that step 2 can be completed more quickly if V is less than V. max Rather than a simple case of accelerating up to V, we accelerate vertically, max The speed then levels off at V exit This then becomes another example of the seven-stage jerk-constrained movement profile described above. Furthermore, here, the exit velocity V exit is an unknown state for both step 1 and the vertical calculation part for step 2.

[0033] The above example shows that the time-optimal trajectory depends on the relative values ​​of the geometric properties (ΔX and ΔZ) and the mechanical limits of the machine tool (V max , A max , and J max ), and can generally only be determined by simultaneously computing all steps of a multi-step movement and optimizing the state of a common waypoint.

[0034] The complexity and interdependencies of trajectory calculations, even for simple cases such as the example shown in Figure 2, have traditionally been overlooked because traditional multi-step move planning for machine tools (such as 3-axis mills and articulated robots) requires the tool to stop between steps. While this is a very simple solution from a programming perspective, it increases the time to completion of multi-step machining operations, as discussed further below.

[0035] Below is a step-by-step description of the tool movement for the three-step machining operation shown in FIG. 2 using conventional motion planning methods versus the tool movement for the same three-step machining operation using the time-optimal trajectory motion planning method of the present disclosure.

[0036] FIG. 4 is a graph 400 of velocity versus time for the three-step machining operation shown in FIG. 2 using conventional motion planning methods as known in the art. In graph 400, line 410 plots the velocity of the cutting tool in the z (vertical) direction, while line 420 plots the velocity of the cutting tool in the x (horizontal) direction, as seen in FIG. 2. Velocity is plotted against time measured on the horizontal axis. The first step of the machining operation occurs during time span indicated at 430, where the first step is to lift the cutting tool out of hole 202 and ends at waypoint 1, shown at the end of the first step in graph 400. The second step occurs during time span 432, where the second step is to move the cutting tool horizontally to directly above hole 204 and ends at waypoint 2, shown at the end of the second step in graph 400. A third step occurs during time span 434, where the third step is drilling hole 204 and ends at waypoint 3, which is shown in graph 400 as the end of the third step.

[0037] In a first step in time span 430, the conventional motion program moves the cutting tool upward at a positive z velocity, then reduces the z velocity back to zero at waypoint 1, at which point the cutting tool stops. In a second step in time span 432, the conventional motion program moves the cutting tool upward at a positive z velocity, then reduces the z velocity back to zero at waypoint 1, at which point the cutting tool stops. max Move the cutting tool at a positive x-velocity up to V as far as necessary. max The x-velocity is maintained at -V and then decreased again to zero at waypoint 2. There is no vertical (z-axis) movement in the second step using the conventional travel program. Starting again from rest in the third step in time span 434, the conventional travel program moves to -V feed The cutting tool is accelerated downward to achieve a z velocity of , and then maintained at this z velocity to drill hole 204 until waypoint 3 is reached.

[0038] For the same three-step machining operation, using the disclosed time-optimal trajectory move planning method, time is saved by seamlessly blending each step into the next, including using the time available in the air-cutting step to complete moves from the previous step rather than stopping the cutting tool at the end of each step. In the first step, the disclosed time-optimal trajectory move moves the cutting tool upward at a much faster rate than the conventional move programming of graph 400. This is possible because this move profile does not return the z-velocity to zero again during the first step. This means that the cutting bit reaches waypoint 1 more quickly than the conventional method, and as a result, the first step of the disclosed method is completed in less time than the first step of the conventional method (time span 430). In the second step, the disclosed time-optimal trajectory move moves the cutting tool horizontally at the fastest possible point-to-point move, the same as the conventional method. Also, during the second step, the z-velocity of the cutting tool is reduced from a high positive value to a very large negative value to bring the cutting tool back down to the level of the workpiece surface. This z-axis movement can be accomplished during the x-axis movement without any increase in time relative to the second step. The third step of the time-optimal trajectory movement of the present disclosure is when the time-optimal movement profile is -V feed This is essentially the same as the conventional travel method, except that the robot reaches waypoint 2 with a z-velocity of 0.01, and therefore does not need to accelerate for a while at the start of the third step as in the conventional method. Therefore, the third step in the time-optimal travel method is slightly shorter than in the conventional method.

[0039] To summarize the foregoing, the disclosed time-optimal move programming method can shorten the duration of a multi-step machining operation by optimizing moves across all steps, including optimizing intermediate waypoint states without requiring the cutting tool to stop between steps. This same concept can be generally extended from the drilling-specific example of FIG. 2 to broader applications of machining, as described below.

[0040] Figure 5A is a diagram of a multi-step machining operation performed using a conventional motion planning method with a corresponding graph of velocity versus time, and Figure 5B is a diagram of a multi-step machining operation performed using the disclosed time-optimal trajectory motion planning method with a corresponding graph of velocity versus time. The scenario in Figures 5A and 5B is that a workpiece 500 (or 550) is machined by a cutting tool, whose tip or tool center point is indicated by circles connected by arrows. The cutting tool can be, for example, an end mill that mills a layer of material from the top of the workpiece 500 / 550.

[0041] In the conventional motion planning method of FIG. 5A, a programming user defines four waypoints 510, 512, 514, and 516. The tool center point of the cutting tool is pre-positioned at waypoint 510 before the machining operation begins. From waypoint 510, the program specifies that the tool center point will move in an air-cutting move to waypoint 512. This air-cutting move is performed as fast as possible given the mechanical limits of the machine tool (maximum speed, acceleration, and jerk). The program then specifies that the tool center point will perform a cutting move from waypoint 512 to waypoint 514. The cutting tool will then move at an appropriate cutting speed (V) before striking the workpiece surface. feed In conventional motion planning methods, waypoint 512 must be defined a distance away from workpiece 500 to allow time and space for the workpiece to accelerate to waypoint 516. The same considerations must be made for deceleration after the cutting operation but before reaching waypoint 514. An air-cutting move is then made from waypoint 514 to waypoint 516, thus completing the three-step machining operation.

[0042] Graph 520 plots tool center point velocity versus time for a three-step machining operation using the conventional move programming method described above. In the first step, having time span 530, the tool center point accelerates downward in an air-cutting move to waypoint 512 where it stops. In the second step, having time span 532, the tool center point accelerates downward to a cutting speed (V , shown in the graph as 540) just before striking the workpiece material. feed ), then performs a constant speed cutting motion before decelerating to a stop at waypoint 514. In a third step having time span 534, the tool center point accelerates upward in an air-cutting move to waypoint 516 where the tool center point stops. The three-step machining operation using conventional move programming methods takes a total elapsed time of approximately 1.05 seconds.

[0043] In the time-optimal move planning method of FIG. 5B, where workpiece 550 has the same geometry and machining parameters as workpiece 500 of FIG. 5A, a programming user defines four waypoints 560, 562, 564, and 566. The tool center point of the cutting tool is pre-positioned at waypoint 560 before the machining operation begins. From waypoint 560, the program specifies that the tool center point be moved to waypoint 562 in an air-cut move. This air-cut move is performed as fast as possible given the mechanical limitations of the machine tool (maximum velocity, acceleration, and jerk). Because waypoint 562 is defined at a corner of workpiece 550, the tool center point of the cutting tool is positioned at V feed The tool must reach waypoint 562 with a horizontal velocity of V and no vertical velocity. The program then specifies that the tool center point will perform a cutting operation from waypoint 562 to waypoint 564. An air-cutting move is then made from waypoint 564 to waypoint 566, thus completing the three-step machining operation. As previously mentioned, the air-cutting move is feedStart with a horizontal speed of

[0044] Graph 570 plots the tool center point speed versus time for a 3-step machining operation using the time-optimal motion programming method described above. In the first step with time span 580, the tool center point accelerates downward to waypoint 562 in an air cut motion and starts horizontal movement. At waypoint 562, the tool center point reaches a state with a horizontal speed of V feed (590) and no vertical speed. In the second step with time span 582, the tool center point performs a cutting operation at a constant speed of V feed until it reaches waypoint 564. In the third step with time span 584, the tool center point continues horizontally and accelerates upward in an air cut motion until it reaches waypoint 566 where the tool center point stops. The 3-step machining operation using the time-optimal motion programming method requires a total elapsed time of about 0.94 seconds, which is about 10% faster than the conventional motion programming method. Again, the time-optimal motion programming method of the present disclosure depicted in FIG. 5B optimizes the movement (waypoint states) over all steps and can shorten the duration of a multi-step machining operation by not requiring the cutting tool to be stopped between steps.

[0045] 6 is a flowchart diagram 600 of a method for time-optimal multi-step motion planning for a machine tool using non-static intermediate waypoint states selected to minimize overall cycle time, according to an embodiment of the present disclosure. In box 602, data describing the multi-step machining operation is provided. This includes the 3D shape of the workpiece, tool start and end locations (before and after the machining operation, respectively), hole locations and depths (for drilling), path shapes and cut depths (for milling), workpiece material and / or operation feed rates, and any other necessary information. The mechanical limits of the industrial robot or machine tool are also provided in box 602 or built into the trajectory calculation algorithm.

[0046] In box 604, the locations of key points for the overall machining operation are defined. This includes defining the start and end points of the machining operation along with the locations of one or more intermediate waypoints, where intermediate waypoints are waypoints that connect sections of the overall machining operation. In FIG. 5B, for example, waypoints 562 and 564 are intermediate waypoints. However, FIG. 5B can be reduced to a two-step machining operation, with a first step from start waypoint 560 to intermediate waypoint 562, and a second step from intermediate waypoint 562 to end waypoint 564. In this case, there is only one intermediate waypoint (562). In FIGS. 2 and 4B, waypoints 1 and 2 are intermediate waypoints.

[0047] In box 606, initial values ​​for movement states for one or more intermediate waypoints are calculated. Note that some intermediate waypoint states are fixed boundary conditions and cannot be changed. In Figure 2, the x velocity at waypoints 1 and 2 must be zero, and the z velocity at waypoint 2 must be -V feed These conditions cannot be changed. However, the z velocity at waypoint 1 (V exit ) can be changed. As mentioned above, Vexit The value of does affect the time for the first step of the movement plan, but V exit The value of V exit A large value of V can also affect the time for the second step if it results in too much vertical overshoot that is absorbed in the horizontal movement of the second step. A general approach to estimating waypoint state without too much overshoot is described later. In Figure 5B, the tool center point is V feed Since both waypoints 562 and 564 must be reached with an x ​​velocity of 0 and a z velocity of zero, no intermediate waypoint states are variable.

[0048] In box 608, an overall trajectory for the multi-step movement plan is generated using waypoint positions (all known and fixed) and velocities (some fixed and some variable with respect to the initial values ​​calculated in box 606). Generating the overall trajectory includes calculating time-optimal moves in each direction based on the waypoint positions and states (velocities). If a particular step of the movement plan involves movement in multiple directions, such as the second step in FIG. 2 and the first step in FIG. 5B, time-optimal moves are calculated for moves in each direction, the longest duration is used as the time span of the step, and moves in other directions with shorter durations can then be recalculated to consume more or all of the time span for the step.

[0049] For example, in the second step (trajectory 230) of Figure 2, a rapid point-to-point move in the x direction can be calculated using the seven-step jerk-constrained move calculation described above, resulting in a period for the x move. The move profile in the z direction is calculated using the initial and final positions of Z1, V exit Initial vertical velocity of -V feed This results in a period for the z movement. Whichever period (x or z) is longer defines the time span for this step. V exitNote that V affects the time span of the first step, which may affect the time span of the second step. exit are intermediate waypoint states that can be adjusted to minimize the overall time of the three-step movement plan. This is described in later steps regarding the method of FIG.

[0050] In another example, in the first step of FIG. 5B, the movement in the x direction starts at zero velocity and reaches V feed 5B 。 The time span for the three-step movement plan of FIG. 5B can be calculated to travel the horizontal distance from waypoint 560 to waypoint 562, ending at a horizontal velocity of 0, resulting in a period for the x movement. A movement profile in the z direction can be calculated based on the vertical distance from waypoint 560 to waypoint 562, starting and ending at a velocity of zero, resulting in a period for the z movement. Whichever period (x or z) is longer defines the time span for this step. There are no intermediate waypoint states that can be adjusted to minimize the overall time for the three-step movement plan of FIG. 5B .

[0051] In decision diamond 610, it is determined whether the trajectory calculated in box 608 is time-optimal. exit If the time span of one or more steps is affected, the values ​​of the intermediate waypoint states may be changed and the entire trajectory recalculated to determine if a shorter total time can be achieved. This optimization and recalculation occurs in box 612 and loops back to box 608. Optimization of the intermediate waypoint states may be performed using any suitable technique, including search-based methods, optimization-based methods, and combinations thereof, as discussed further below.

[0052] From decision diamond 610, if the entire time span of the movement plan (trajectory) is minimized or there are no variable intermediate waypoint conditions, a time-optimal trajectory for the multi-step movement is output in box 614. The time-optimal trajectory includes movement in all directions for all steps, as detailed in the example above.

[0053] The calculations described above with respect to FIGS. 2, 4B, 5B, and 6 provide tool path movements that result in minimum cycle time for multi-step machining operations, where movement states at waypoints connecting steps (i.e., intermediate waypoints that can have non-zero velocities) are optimized to achieve minimum overall trajectory time. However, it may be desirable to add waypoints to the trajectory, such as for demonstrating complex moves or to avoid obstacles during machine tool movement. The techniques of the present disclosure can be extended to include first calculating a time-optimal trajectory in the manner described above, then adding waypoints and re-optimizing the waypoint states to achieve minimum time for the entire trajectory including the additional waypoints. Examples with additional waypoints are shown in the following figures and described below, where all of the velocity states of the additional waypoints are variable and iterative calculations of the intermediate waypoint states (along with any other variable intermediate waypoint states) are required to optimize the overall multi-step trajectory time.

[0054] 7 is an isometric view of a workpiece machining operation in which a tool path trajectory is determined that provides the shortest cycle time while also avoiding obstacles in the path, according to an embodiment of the present disclosure. FIGS. 7-10 all depict examples in which waypoints are added to a multi-step machining operation for obstacle avoidance, and a time-optimal trajectory is calculated that includes the additional waypoints. The examples include techniques for determining the locations of the additional waypoints to avoid obstacles. However, it should be understood that waypoints may be added to a multi-step machining operation for reasons other than obstacle avoidance, and techniques of the present disclosure may be used to determine a time-optimal trajectory that includes the additional waypoints.

[0055] Workpiece 700 generally corresponds to workpiece 100 of Figure 1 and workpiece 200 of Figure 2. In this case, however, there is an obstacle 710 that interferes with the tool path trajectory. Obstacle 710 may be part of workpiece 700 or may be a separate object such as a tool or fixture.

[0056] The holes are not shown on workpiece 700. It should be understood that a first hole has already been machined on the left side of workpiece 700 and the tool tip must be moved upward along path 720 and then repositioned (air cut) along trajectory 730 to machine a second hole along path 740 on the right side of workpiece 700. Waypoints 0, 1, 2, and 3 have the same meaning as stated in the previous figure, being the top and bottom of the respective holes.

[0057] FIG. 7 is a three-dimensional diagram in which the x, y, and z directions are depicted on a spatial grid. In this example, the second hole (path 740) is offset in the y direction from the first hole (path 720). Therefore, trajectory 730 must traverse both ΔX and ΔY as it traces a path from point 1 at the top of the first hole to point 2 at the top of the second hole (moving up in the z direction and then down again). Calculating the y coordinate for trajectory 730 is a simple matter, since the y movement of the tool tip can be achieved using an acceleration increase to a certain velocity, then a decrease again to zero velocity in the y direction when waypoint 2 is reached. After calculating the x, y, and z movements for this step, if the duration of the y movement is the longest, movements in the other two directions can be replanned to use this time span, as described above.

[0058] Trajectory 730 begins with V at waypoint 1. exit 7. This is part of a three-step machining operation that is time-optimal by changing the value of , and was calculated in the manner described with respect to FIG. 2. The calculation of trajectory 730 corresponds to an offset in the y direction as described above. However, after calculation in this manner, it is determined that trajectory 730 interferes with obstacle 710 in the area described by ellipse 732. Therefore, a new trajectory needs to be calculated that moves as quickly as possible from waypoint 1 to waypoint 2 while avoiding collision with obstacle 710. Techniques for calculating collision-free tool path trajectories are known in the art, but such techniques do not find a time-optimal collision-free trajectory. For example, the collision-free trajectory may be scaled vertically until the obstacle is avoided, and therefore may be unnecessarily long, or a multi-segment trajectory may be calculated that avoids the obstacle but includes decelerations or stops at bend points or intermediate waypoints. This approach is not optimal.

[0059] Calculation of a time-optimal collision-free trajectory is achieved using the techniques of the present disclosure as follows: after calculating a time-optimal trajectory 730 for a machining operation that does not include additional waypoints, a critical point 734 is identified as the point on trajectory 730 that interferes with obstacle 710 and is closest to waypoint 2; then, point 752 is defined that is vertically above critical point 734 by a clearance distance, and a new trajectory is calculated that uses point 752 as an additional waypoint (i.e., the new trajectory passes through point 752 on the path of the trajectory from point 1 to point 2). Details of the calculation are described below, and the calculation is adjusted to accommodate different scenarios for obstacle size and location, each of which is shown in the remaining figures.

[0060] 8 is a cross-sectional view of the workpiece 200 and machining operation of FIG. 2 where an obstacle interferes with the time-optimal trajectory and a new collision-free trajectory is calculated that passes through additional waypoints, according to an embodiment of the present disclosure. The description of FIG. 8 provides an explanation for calculating the time-optimal trajectory for the first obstacle scenario, including adjustments to the waypoints and their corresponding state conditions that are necessary to ensure the trajectory is collision-free.

[0061] 8 shows a workpiece 200 with the same holes 202 and 204 as in FIG. 2. Also, as in the previous description, the machining operation involves first machining hole 202, then repositioning the tool on top of hole 204 and machining hole 204. Calculation of a time-optimal trajectory 230 for a three-step move program (without additional waypoints for collision avoidance) was previously described. Thus, for the scenario depicted in FIG. 8, the objective is to calculate a time-optimal collision-free trajectory from hole 202 to hole 204.

[0062] An obstacle 810 is included in FIG. 8 in a similar scenario to FIG. 7 . The obstacle 810 may be part of the workpiece 200 or may be a separate object, such as a tool or fixture. The time-optimal trajectory 230 from FIG. 2 is shown again in FIG. 8 , and it can be seen that the trajectory 230 interferes with the obstacle 810. A point 820 (critical point) is calculated as the point on the trajectory 230 closest to the end of the trajectory 230 that intersects (interferes with) the obstacle 810. Calculating the coordinates of point 820 is a simple matter, given the 3D spatial definition of the trajectory 230 and the mathematical representation of the obstacle 810 (such as by a CAD solid model). The obstacle 810 may have any arbitrary shape; the “wall” shaped obstacle shown in FIG. 8 is used solely for the sake of clarity of the drawing.

[0063] The following is a description of calculating a time-optimal collision-free trajectory 830. After calculating the time-optimal trajectory 230, a point 832 is calculated to be a waypoint on the trajectory 830. In a preferred embodiment, point 832 is offset vertically in the z direction by a specific distance directly above point 820. The offset distance of point 832 above point 820 may be determined in any suitable manner, including, for example, defining the offset as a fixed distance above the top of obstacle 810 or calculating the offset as a ratio of the distance from point 820 to the top of obstacle 810.

[0064] Once the coordinates of point 832 are calculated, the waypoints for the time-optimal collision-free trajectory 830 are defined as follows: waypoints 0 and 1 are the bottom and top of hole 202, respectively, as defined previously; point 832 is now defined as waypoint 2, an intermediate waypoint with variable state; and waypoints 3 and 4 are the top and bottom of hole 204, respectively.

[0065] When conventional machine tool path move generation algorithms are employed to calculate a trajectory using waypoints 0-4, the results are unpredictable. In one such example, a trajectory was calculated that starts upward from waypoint 1, drops back down to the workpiece 200, then continues upward through waypoint 2, dramatically overshooting the edge of the workpiece 200 before looping back down to waypoint 3. Such a trajectory is clearly insufficient for a number of reasons. Therefore, a multi-step approach is needed to calculate a time-optimal collision-free trajectory 830 with desired shape characteristics based on waypoint state boundary conditions.

[0066] For the obstacle scenario of FIG. 8, the following notation is defined, where X2 is the x coordinate of waypoint 2, X3 is the x coordinate of waypoint 3, ΔX is the difference (x distance) between X2 and X3, and ΔZ is similarly defined using the z coordinates of waypoints 2 and 3.

[0067] The time-optimal collision-free trajectory for the entire multi-step maneuver is calculated using the following logic: First, it is important to recognize that the complete multi-step maneuver currently contains five waypoints connected by four steps or segments. However, the time-optimal trajectory for the complete maneuver can be calculated in a similar manner to that described above for a three-step maneuver with four waypoints. That is, an initial guess is made for all variable waypoint states, then the waypoint states (fixed and variable) are used to calculate each trajectory segment to determine the overall time to complete the multi-step maneuver, and the variable waypoint states are optimized to find the minimum overall time to complete the multi-step maneuver.

[0068] For the scenario of FIG. 8, the position and velocity states of the waypoint are defined as follows:

[0069] [Table 2]

[0070] In Table 2, all of the waypoint locations are known, and most of the speed states are default and fixed. exit , V x,2 , and V z,2 Only σ is unknown. These three speeds can be varied to minimize the overall time of the four-step operation. Initial values ​​for the three variable speed states can be determined using heuristic methods, and optimal values ​​for the three variable speed states can be determined (to achieve the minimum overall time) using search-based and / or optimization-based methods, all of which are described below.

[0071] FIG. 8 depicts a very short obstacle 810, in which case the time-optimal collision-free trajectory is already pointing downward in the time-optimal collision-free trajectory path when waypoint 2 is reached. Another scenario is possible in which a tall obstacle is placed near a second hole (hole 204). In this situation, the time-optimal collision-free trajectory may have its highest point located at or near waypoint 2; in other words, the velocity in the z-direction is zero or near zero as waypoint 2 passes. This knowledge can be used in determining an initial estimate of the velocity state at waypoint 2. The final value of the waypoint 2 state is determined by methods described below, such as an optimization calculation that finds the minimum total time for a time-optimal collision-free trajectory for a complete multi-step operation.

[0072] Figures 7-8 both depict an obstacle placed closer to the destination (second hole) than the origin of the trajectory (first hole). Therefore, the corresponding trajectory calculation involves a variable velocity state at waypoint 2 preceding the known state at waypoint 3. A situation can arise where an obstacle is placed closer to the origin (first hole) than the destination (second hole). This situation requires two adjustments to the previously described approach. First, the critical point (the point used to determine waypoint 2) is placed on the approaching side of the obstacle rather than the leaving side. Second, the initial estimate of the velocity state at waypoint 2 is made by estimating the trajectory from waypoint 1 to waypoint 2, rather than from waypoint 2 to waypoint 3 as described above.

[0073] The foregoing description of Figures 7-8 describes a technique for calculating a time-optimal collision-free trajectory for a tool in a multi-step drilling operation such as that depicted in Figure 1; the method is similarly applicable to multi-step general machining operations such as that depicted in Figure 5B. First, a time-optimal trajectory for the machining operation is calculated, and then a technique is defined to accommodate any situation in which an obstacle interferes with the time-optimal trajectory, whether the obstacle is encountered while leaving a first machining feature (e.g., a hole) or while approaching a second machining feature. The technique can also accommodate situations in which an obstacle is short enough to allow the calculated trajectory to have a vertical component of velocity when passing through the obstacle, and in which the obstacle is tall enough that the best time-optimal collision-free trajectory is at its highest point when passing through the obstacle. As previously discussed in the description of Figure 3, in addition to horizontal (x) and vertical (z) movements, movement in another horizontal direction (y) may be required to reach the second hole, and this y movement may be calculated to be accomplished during the time span of the xz trajectory.

[0074] As described throughout the foregoing description, calculating a time-optimal collision-free trajectory for a multi-step machining operation includes calculating a time-optimal trajectory for the multi-step operation, adding waypoints at locations selected to clear obstacles, and calculating a time-optimal collision-free trajectory using the original time-optimal trajectory and the additional waypoints. The additional waypoints may be added for other reasons in addition to collision avoidance as well.

[0075] The original time-optimal trajectory (without additional waypoints) is V at waypoint 1 in Figures 2 and 7-8. exit It is envisioned that the method may include intermediate waypoints with variable states such as exit The value of V affects the movement in the vertical (z) direction for both steps 1 and 2 of the motion plan. It can therefore affect the time to complete step 2, which affects the horizontal movement in step 2, which in turn affects V exit All of these interdependencies result in the need to change the value of V. exit There is no method for calculating the optimal value of V (which results in the smallest overall time for multi-step operations). exit To determine the optimum value of V exit Select the initial value of V exit Calculate all of the steps in the movement plan using exit It is necessary to perform an iterative calculation which involves selecting a new value of , and repeating the calculation until the minimum total time is found.

[0076] Then, when additional waypoints are added for collision avoidance or any other reason, the additional waypoints typically have variable velocity states in all directions (e.g., x and z or x, y, and z). x,2 and V z,2) represent unknowns that add even more variable interdependencies to the motion plan calculations for each segment in each direction. Again, the only way to handle these complex and highly nonlinear variable interdependencies is to select initial values ​​for the variable velocity states and then perform an iterative calculation of the entire multi-step motion plan that ultimately identifies the optimal values ​​of the variable velocity states that result in the smallest overall time span for the multi-step motion plan.

[0077] As part of a general method description for computing a time-optimal trajectory for a multi-step movement plan with additional waypoints, both the selection of initial values ​​for the variable velocity states and the iterative calculation to identify the optimal values ​​of the variable velocity states that result in the minimum overall time are further described below.

[0078] Figure 9 is a flowchart diagram 900 of a general method for time-optimal collision-free multi-step machine tool motion planning, according to an embodiment of the present disclosure. While Figure 6 defined a method for calculating a time-optimal trajectory for a multi-step machining operation, Figure 9 includes an additional intermediate waypoint (waypoint 2) with variable velocity states and an iterative loop for determining values ​​for all variable waypoint states that generate a time-optimal collision-free trajectory.

[0079] In box 902, data describing a multi-step machining operation is provided. This includes the 3D shape of the workpiece, tool start and end locations (before and after the machining operation, respectively), hole locations and depths (for drilling), path shapes and cut depths (for milling), workpiece material and / or operation feed rates, and any other necessary information. The mechanical limitations of the industrial robot or machine tool are also provided in box 902 or built into the trajectory calculation algorithm. In box 904, a time-optimal trajectory is calculated for the multi-step machining operation without additional waypoints, as described with respect to FIG. 6. The calculations performed in box 904 are the same as everything after box 602 in FIG. 6 (calculating trajectories for multi-step operations and Vexit (optimizing one or more intermediate waypoint conditions, such as

[0080] In box 910 (large dashed box), a waypoint is added to the original set of waypoints defining the multi-step machining operation. Waypoints can be added manually or automatically for any purpose. One particular example is adding a waypoint for collision avoidance, i.e., modifying the time-optimal trajectory calculated in box 904 to avoid an obstacle. The steps related to the collision avoidance use of the added waypoint are shown inside box 910.

[0081] In box 920, obstacle data for the machining operation workspace is provided. This includes obstacles, such as obstacle 710 shown in FIG. 7 and similar to FIG. 8. Obstacles can have any shape, and multiple obstacles can be present in the workspace. Obstacles can also be provided by portions of the workpiece shape itself. Instead of or in addition to physical obstacles, interference zones (geometric regions or zones into which no part of the robot / machine or tool is permitted to enter) can be defined. Obstacles and interference zones are collectively referred to as obstacles. In box 922, it is determined whether the time-optimal trajectory from box 904 interferes with the obstacle from box 920. This is a simple calculation using the 3D shape of the trajectory and the obstacle. If, in decision diamond 924, there is no trajectory-obstacle collision, the process ends at terminal 926, and the previously calculated trajectory is used for the machining operation.

[0082] If a trajectory-obstacle collision is detected, a new waypoint location is calculated in box 928. Techniques for calculating a new waypoint position to avoid an obstacle have been described above and include calculating a critical collision point and establishing a new waypoint at an offset distance from the critical point. If an additional waypoint is added for reasons other than collision avoidance, the new waypoint position is simply calculated or determined in box 928.

[0083] In box 930, an initial estimate of the velocity state for the additional waypoint is calculated. In one embodiment, V (which is the variable waypoint velocity state throughout the multi-step machining operation) exit The initial guess for V is calculated from the time-optimal trajectory calculated in box 904. exit Thus, in box 930, the velocity state (e.g., V x,2 , V z,2 ) only needs to be calculated.

[0084] As previously mentioned, there is no method for directly calculating the velocity state at waypoint 2 that results in the minimum overall time for a multi-step machining operation. However, it is possible to calculate an initial estimate of the waypoint velocity state. The following description continues to focus on the example shown in Figures 7-8, i.e., a multi-step drilling operation in which waypoints need to be added for collision avoidance. It should be understood that all of the steps in Figure 9, including intermediate waypoint state estimation, are equally applicable to general multi-step machining operations, such as that depicted in Figure 5B.

[0085] One approach to calculating an initial estimate of the velocity state at waypoint 2 is a heuristic that first calculates the horizontal movement profile (from waypoint 1 to waypoint 3 using the seven-step calculation of the jerk constraints described above), and then calculates the vertical movement profile based on the horizontal movement timing at waypoint 2. This approach calculates the velocity (e.g., V x,2 , V z,2 However, depending on the geometric conditions (e.g., height and horizontal position of obstacles), the heuristic method may not provide the best initial estimate of the velocity state of waypoint 2.

[0086] For example, consider the case where a tall obstacle is immediately adjacent to the second hole. In this case, it may not be possible to move the tool tip vertically from waypoint 2 to waypoint 3 (large ΔZ) in the short time it takes the tool tip to make a small ΔX horizontal movement. Therefore, the horizontal movement must be slowed down from the time-optimal horizontal profile to time the vertical movement according to constraints on maximum velocity / acceleration / jerk. This results in an interdependence between horizontal and vertical movement, with the possibility that the best overall time for a multi-step operation may include small trajectory overshoot in the horizontal direction.

[0087] 10A, 10B, and 10C show diagrams of obstacle-avoiding trajectories depicting concepts related to an approach for determining initial estimates of velocity states at intermediate waypoints, according to an embodiment of the present disclosure. Fig. 10A includes a simplified diagram 1000 of an obstacle-avoiding trajectory of the type shown in Fig. 8 (the original time-optimal trajectory is modified to avoid obstacles by adding waypoints), with annotated zoom-in sections of relevant position and velocity information.

[0088] 10B is a diagram 1040 of an obstacle avoidance scenario in which an additional waypoint 1050 is defined to be static, i.e., the tool center point stops along the trajectory at waypoint 1050. This results in a multi-step trajectory 1060 that has no overshoot in the x-direction, but the trajectory 1060 is unnecessarily slow due to the complete stop at waypoint 1050.

[0089] Figure 10C shows that additional waypoint 1080 is at a large residual horizontal velocity V x (continuing movement from the previous trajectory at waypoint 1080). This results in a multi-step trajectory 1090 that significantly overshoots the next waypoint in the x direction, thereby requiring more time in the final step of movement to return the tool center point to the top of the hole being drilled.

[0090] An ideal initial estimate of velocity conditions at intermediate waypoints (e.g., waypoints 1050 or 1080) does not require the tool center point to a complete stop at the waypoint, but does not have a very large residual horizontal velocity that would result in a large overshoot. The techniques described below provide such an initial estimate of waypoint velocity conditions.

[0091] Referring again to Figure 10A, waypoint 1010 corresponds to waypoint 2 in Figure 8, which is an additional waypoint with variable velocity states. Similarly, waypoint 1020 corresponds to waypoint 3 in Figure 8, which is the top of the hole being drilled, and therefore the tool center point, with zero x-velocity and -V feed We need to reach waypoint 1020 with a z-velocity of V. For the purposes of this calculation, the velocity of the trajectory when reaching waypoint 1020 is V. e Similarly, the velocity of the trajectory as it passes waypoint 1010 has the component V s,x and V s,z V with s The distance in the x and z directions from waypoint 1010 to waypoint 1020 is S x and S z As previously mentioned, Figure 10A is shown in two dimensions for clarity, but the rate-state calculations described herein can be performed in all three dimensions.

[0092] In the scenario of FIG. 10A, the tool center point may be accelerating or decelerating as it reaches intermediate waypoint 1010. An S-type acceleration / deceleration control model may be applied to the above scenario, whereby V s,x and V s,zEquations are defined that can be solved to determine the desired values ​​of . Referring back to FIG. 3 , the jerk-constrained acceleration profile is depicted in Phases I-III, and the jerk-constrained deceleration profile is depicted in Phases V-VII. In the preceding discussion of FIG. 3 , a set of polynomials was described that relates the position at the end of each phase to the duration of the phase, the maximum jerk at the end of the phase, and velocity and acceleration values ​​(each of which has its own polynomial). These same equations can be used to calculate the jerk-constrained velocities at intermediate waypoints 1010 in each coordinate direction, for which a trajectory can reach waypoint 1020 with the required velocity boundary conditions.

[0093] 11 is a flowchart diagram 1100 of a method for determining an initial estimate of velocity states at intermediate waypoints used in machine tool movement planning according to an embodiment of the present disclosure. The calculations in FIG. 11 are performed for each coordinate direction (e.g., x and z or x, y, and z). After starting at 1102, the final velocity V as shown in FIG. e and distance traveled, S, in decision diamond 1104, the jerk-constrained S-type acceleration / deceleration travel is (A max have a flat central section and a trapezoidal acceleration profile (like stages I-III and V-VII in Figure 3) or max This determines whether the triangle has a triangular shape that is smaller than S in a given coordinate direction (e.g., S x ) but A max If not, then in box 1106, the starting velocity in a particular direction (e.g., V s,x ) is the V in a jerk-constrained move (i.e., a triangular acceleration profile) with linear increase / decrease acceleration and no constant acceleration step. e , S, and J max The value calculated in box 1106 is output in box 1108 to provide a starting velocity in a particular direction (e.g., V s,x ) is used. Again, this value (e.g., V s,x) is one of the speed states for additional waypoint 2 (e.g., V x,2 ) in box 930 of FIG. 9.

[0094] If the answer is yes in decision diamond 1104, then in box 1110, a starting velocity in a particular direction (e.g., V s,x ) is the V in a jerk-constrained movement with linear increase / decrease acceleration and a constant acceleration step between the increase and decrease steps (i.e., a trapezoidal acceleration profile). e , S., A. max , and J max Then, in box 1112, V s The final value of V is calculated in box 1110. s The maximum speed V is determined by the value of max From box 1112, V s The value of is output in box 1108.

[0095] The flowchart in Figure 11 shows the calculation of the jerk constraint movement, s >V e ) deceleration scenario or (V s <V e The flowchart can be configured to handle any of the acceleration scenarios (V s , S., A. max , and J max By giving V e The method may be configured to calculate:

[0096] The scenario of Figures 10A-10C and the waypoint state calculation method described above with respect to Figure 11 are similar to the scenario of Figures 10A-10C, where the intermediate waypoint is located closer to the waypoint at the top of the hole to be drilled (the second hole), the ending velocity state is known, and the objective is to calculate the starting velocity V s,x and V s,zThe opposite scenario can be envisioned, where the intermediate waypoint is located closer to the waypoint at the top of the first hole (which has already been drilled and has a tool present), and the starting velocity V s is V at the top of the first hole exit and the final velocity V e is the component V that needs to be determined e,x and V e,z In either scenario (obstacle closer to the first hole or the second hole), the tool center point may be accelerating or decelerating as it reaches the intermediate waypoint. Calculation of intermediate waypoint velocity states for either of these scenarios may be performed as described above with respect to Figures 10A-10C and 11.

[0097] Returning to Figure 9, after the initial velocity state values ​​for the new waypoints are determined in box 930, a trajectory for the multi-step operation is generated in box 932. The overall trajectory for the multi-step movement plan is generated using the waypoint positions (all known and fixed) and velocities (some fixed and some variable with respect to the initial values ​​calculated in box 930). Generating the overall trajectory involves calculating time-optimal moves in each direction based on the waypoint positions and states (velocities). The trajectory generation in box 932 is similar to the trajectory generation in box 608 of Figure 6 above, except that in Figure 9 the trajectory includes additional waypoints, such as the example shown in Figure 8, which has five waypoints and four steps or trajectory segments.

[0098] Following the first example of calculating a trajectory in box 932, an iterative loop is established in which new values ​​of the variable states (e.g., V exit , and the state velocity (V x,2 , V z,2)) are tried and a new trajectory is calculated. This iterative loop continues by determining in decision diamond 934 whether the total cycle time has been optimized (which may only be determined after several loops, depending on the convergence criteria), and if not, by determining intermediate waypoint conditions (e.g., V exit , V x,2 , and V z,2 ) in box 936, then recalculating the trajectory for the multi-step operation with the additional waypoints and determining the total cycle time. This continues until the total cycle time t reaches a minimum value determined by the convergence criteria or a maximum number of iterations. Each trajectory is also subject to boundary condition constraints (e.g., -V at waypoint 3). feed are evaluated to ensure that certain conditions (such as vertical velocity) are met.

[0099] At least two different approaches can be used to implement the optimization loop between boxes 932 and 936. One approach uses a sampling method to select values ​​of V slightly higher and slightly lower than the previously used value. exit and the state velocity for waypoint 2 (i.e., V x,2 , V z,2 ) to determine whether a valid trajectory (that satisfies the boundary conditions) can be found with a shorter total cycle time. Another approach is to implement a gradient descent optimization algorithm as described below.

[0100] The two-dimensional trajectory examples of Figures 5B and 8 (waypoint locations, V feed It is recognized that the cycle time t of the complete multi-step motion trajectory is a function of the x and z velocity conditions at waypoint 2, given the fixed velocity conditions such as the velocity of the robot or machine tool (mechanical constraints of the robot or machine tool). That is, t = F(V x,2 , V z,2 ), where t is the total cycle time of the trajectory from waypoint 0 to waypoint 4. The three-dimensional graph shows the cycle time t on the vertical axis and the velocity V on the horizontal axis.x,2 and V z,2 It can be observed that when the function is constructed with the function V, the resulting plot surface has a bowl shape that is concave upward. In other words, the cycle time t is x,2 and V z,2 The cycle time t is the minimum value in the vicinity of x,2 , V z,2 , or both) move away from their optimal values.

[0101] 12 is a three-dimensional graph 1200 of a function relating machining operation cycle time to state velocities for intermediate waypoints in a trajectory, illustrating how gradient descent is used to find the optimum value of the velocities, according to an embodiment of the present disclosure. Graph 1200 is a plot of the function F described above, where the total trajectory cycle time t is plotted on the vertical axis against the velocity of waypoint 2 on the horizontal axis, and plot surface 1210 has the bowl shape described above.

[0102] One efficient way to find the minimum cycle time is to use gradient descent. First, a computational algorithm is provided to generate a complete trajectory for a multi-step operation given the waypoint velocity states. This is the computation performed in box 932 of Figure 9. When a complete trajectory is generated (e.g., for all four steps of the move in Figure 8), the total cycle time t is the sum of the times for all of the trajectory segments.

[0103] Next, the velocity V x,2 and V z,2 Given an algorithm that calculates the total cycle time as a function of , the gradient descent algorithm calculates the velocity vector (v=[V x,2 , V z,2]) is used to iteratively evaluate the effect of V and follow the gradient towards lower cycle times. The first iteration uses a trajectory calculated with an initial guess for intermediate waypoint velocities, where the initial guess is determined using the method of FIG. 11. Each subsequent iteration uses a trajectory calculated with intermediate waypoint velocities determined from the gradient (discussed further below). The iterations continue until the gradient converges to a predefined convergence criterion or a predefined maximum number of iterations is reached. The optimization path followed by the gradient descent method is shown in FIG. 12 as curve 1220. Curve 1220 indicates that it is V x,2 and V z,2 t (minimum total cycle time t). In reality, curve 1220 may zigzag a bit and wobble near the bottom of surface 1210, but curve 1220 will converge to the optimum if surface 1210 is performing well.

[0104] While FIG. 12 depicts the gradient descent concept in a 3D graph that can be easily visualized, it will be appreciated that the concept can be extended to additional dimensions. In particular, a time-optimal trajectory for a multi-step operation with additional waypoints can be calculated using three variable intermediate waypoint velocity states (V x,2 , V z,2 , and V exit ), and a gradient descent technique can be applied to find the combination for all of the waypoint velocity states that results in the minimum total time to complete the multi-step motion. An implementation of gradient descent in a machine tool motion planning method is described below.

[0105] 13 is a flowchart diagram 1300 of a gradient descent method for optimizing state boundary condition values ​​for intermediate waypoints used in a time-optimal collision-free machine tool motion plan, according to an embodiment of the present disclosure. The flowchart diagram 1300 of FIG. 13 is implemented in the optimization loop of boxes 932-936 described above. In the example of FIG. 8, the gradient descent method optimizes V exitis used to find the optimal values ​​of the x and z velocities at waypoint 2. For the purposes of the gradient descent algorithm for this example, the velocity vector to be optimized is v=[V exit , V x,2 , V z,2 ] is defined as follows.

[0106] Inputs to the gradient descent algorithm are provided in box 1302. The inputs are a variable waypoint state velocity (V exit , V x,2 , V z,2 ) along with the maximum number of iterations and convergence criterion ε. Initial values ​​for the variable waypoint state velocities may be provided as described above with respect to FIGS. 10 and 11.

[0107] In box 1304, a complete trajectory is generated for the multi-step operation using the initial waypoint state values ​​v for the first iteration (k is the iteration counter). The updated iteration for the velocity vector v is v k+1 =v k +α∇F(v k ) (1) is calculated in box 1306, where v k+1 is the updated iteration, v k is the previous iteration of the velocity vector v, α is the step size, and ∇F(v k ) is the gradient (∇) of the function F (t=F(v)) that relates time to the velocity vector. The function F is evaluated at each iteration based on the total cycle time t. At each iteration, a local value of the gradient ∇ is established, and subsequent iterations are performed by calculating the gradient (∇) of the velocity vector for the next iteration (v) according to equation (1). k+1 ) is used to calculate the gradient value. The updated velocity vector is then calculated using the clamp function, i.e., v k+1 =Clamp(v k+1 , v min , v max )∈[v min , v max ] (2), where v min and v maxis the speed limit imposed by system mechanical limits or application requirements.

[0108] At decision diamond 1308, it is determined whether any termination criteria have been met. A termination criterion is the degree to which the term α∇F(v k ) is less than the convergence criterion ε. If so, the gradient descent calculation has converged to the optimal solution (minimum total cycle time t). Another termination criterion is whether the number of iterations reaches a predefined maximum.

[0109] At decision diamond 1308, if the termination criteria are not met, the process loops back to box 1304 to calculate another iteration of the velocity vector v, along with the corresponding trajectory and cycle time.

[0110] If one of the termination criteria is met, the process moves to box 1310, where the optimal value of the velocity vector (v from the most recent iteration) is determined. k ) is output along with the corresponding time-optimal collision-free trajectory calculated from it.

[0111] 9, the process uses the trajectory calculated from the final iteration of the gradient descent optimization and loops back to box 922 to check for trajectory-obstacle collisions. In this case, the trajectory used is the time-optimal collision-free trajectory calculated (optimized) in box 932. If, at decision diamond 924, there is no trajectory-obstacle collision, the process ends at terminal 926 and the time-optimal collision-free trajectory calculated in box 932 is used for the machining operation.

[0112] The gradient descent method of optimizing intermediate waypoint velocity states to minimize the total time of a multi-step maneuver can also be applied to the loop between boxes 608 and 612 in FIG. 6, which is a method for time-optimal trajectory computation for a multi-step maneuver without any additional waypoints.

[0113] As described elsewhere above with respect to Figures 2, 5B, and 8, the complete tool movement program includes a combination of several steps, including both air-cutting and cutting steps. The above-described approach allows for the calculation of non-static intermediate waypoint states that optimize the overall cycle time of the complete multi-step operation. This complete movement program is used by the robot or machine tool controller to control tool movement during the machining operation. The calculations of the flowcharts in Figures 6, 9, 11, and 13 can be performed in the controller itself or in a separate computer, which then provides the calculated movement program to the controller.

[0114] In a typical embodiment where several machining operations are performed on each workpiece and the workpieces and obstacle environment are fixed in position within the workspace, a time-optimal collision-free trajectory for each machining operation can be pre-calculated using the methods of the present disclosure, and the trajectories are then used to perform the machining operations on multiple workpieces.

[0115] In addition to the benefits achieved by calculating time-optimal trajectories for machining operations, there are also opportunities for improved machine tool programming methods. Improved programming methods would simplify programming for the user and also allow for time-optimal trajectories with non-static waypoints calculated in the manner described above. The following describes a method for programming machine tool movement plans that combines air-cutting and cutting commands into a single command and uses program points defined directly on the workpiece face. Tool paths are automatically calculated using a time-optimal trajectory that transitions from air-cutting to cutting at a specified cutting feedrate without stopping.

[0116] An example of an improvement opportunity for machining operation programming can be found in Figures 5A and 5B, previously discussed. Figure 5A shows a conventional programming approach for a milling operation, where waypoint 512 (at the end of the air cutting step and the beginning of the cutting step) is programmed to increase the cutting speed (V) from a rest state at waypoint 512 before the cutting bit reaches workpiece 500. feed ), is defined some distance from the workpiece 500 so that the cutting bit can accelerate to a cutting speed (V). In contrast, FIG. 5B shows an improved programming approach for milling operations, where waypoint 562 (an intermediate waypoint at the end of the air-cutting step and the beginning of the cutting step) is defined directly at a corner of the workpiece 550, where the air-cutting step trajectory is such that the cutting bit accelerates to a cutting speed (V feed ) and a vertical speed of zero to reach waypoint 562.

[0117] The same concepts illustrated for milling operations in Figures 5A and 5B are also applicable to other types of machining operations, such as drilling.

[0118] Figure 14A is a diagram of a multi-step drilling operation performed using a conventional motion planning method, and Figure 14B is a diagram of a multi-step drilling operation performed using the time-optimal trajectory motion planning method of the present disclosure. In Figure 14A, a workpiece 1400 is being drilled with multiple holes therein by a cutting bit 1410. The cutting bit 1410 is shown positioned over the first hole to be drilled, the second hole is to the right of the first hole, and so on.

[0119] In the conventional programming method of FIG. 14A, the cutting bit 1410 first adjusts the cutting speed (V feed) to drill the first hole by following trajectory step 1420. The cutting bit 1410 is then removed from the first hole by following trajectory step 1430 in an air-cutting move (as fast as possible using a jerk-constrained move profile) and stopping at waypoint 1432. Trajectory step 1430 actually follows the same path as trajectory step 1420; the horizontal offset is shown for graphical effect only. The dashed lines in trajectory step 1420 designate the cutting move, while the solid lines in trajectory step 1430 designate the air-cut move.

[0120] From waypoint 1432 (which is stationary), the cutting bit is then moved from the top of the first hole to the top of the second hole along trajectory step 1440, which is again an air-cutting move. The cutting bit 1410 stops at waypoint 1442, which indicates the cutting bit will accelerate from stationary and reach a cutting speed (V feed ) is some distance above the top of the workpiece 1400 to allow time and space for the

[0121] In the time-optimal move programming method of Figure 14B, zoomed to focus on the upper portions of the first two holes, after drilling the first hole, the cutting bit 1410 is removed from the first hole by following trajectory step 1450 in an air-cutting move (as fast as possible using a jerk-constrained move profile) to waypoint 1452. From waypoint 1452 (where it remains moving), the cutting bit then moves from the top of the first hole to the top of the second hole along trajectory step 1460, which is also an air-cutting move. When it reaches waypoint 1462, which is level with the top of the workpiece 1400, the cutting bit moves at zero horizontal velocity and -V feed The cutting bit 1410 then continues to orbital step 1470, which is the drilling of the second hole.

[0122] In conventional programming methods, the tool stops at each waypoint, a trajectory for each movement step is calculated individually, and waypoints preceding a cutting step must be defined a distance away from the workpiece to allow time and space for the cutting bit to accelerate to cutting speed. In an improved time-optimal programming method, the tool does not stop at intermediate waypoints, the trajectory for the air-cutting step is combined with at least one other step to calculate a time-optimal multi-step trajectory, and waypoints are defined directly at physical feature points on the workpiece (e.g., the top of a hole) rather than at an artificial distance from the feature points.

[0123] FIG. 15A is a diagram of a two-step machining operation performed using conventional programming and motion planning methods, and FIG. 15B is a diagram of a two-step machining operation performed using the improved programming and time-optimal trajectory motion planning method of the present disclosure.

[0124] 15A, a cutting bit (not shown) performs a machining operation on workpiece 1500. The machining operation in this example is a milling operation, i.e., milling a small amount of material off the top surface of workpiece 1500. The cutting bit has a tool center point represented by waypoints 1510, 1520, and 1530. The two-step machining operation is to move the tool center point from its current location (waypoint 1510) to point P1 (waypoint 1520) having coordinates (X1, Y1, Z1) in an air-cut step 1512, and then move the tool center point from its current location (waypoint 1520, P1) to point P2 (waypoint 1530) having coordinates (X2, Y2, Z2) in a cutting step 1522.

[0125] Conventional programming methods require a two-step operation to be programmed as two steps. The first step 1512 has the following command format: "ACT, X1, Y1, Z1", where "ACT" is the air cut command and (X1, Y1, Z1) are the end coordinates. The second step 1522 has the following command format: "CUT, X2, Y2, Z2, FF", where "CUT" is the cutting command and (X2, Y2, Z2) are the end coordinates and FF are the (V feed The cutting speed (also known as the tool center point PI) is the cutting speed. In a traditional programming method, the tool center point would stop at waypoints 1520 and 1530, with the two steps having their trajectories calculated separately. This requires that point PI (waypoint 1520) be defined a distance away from the workpiece 1500 to allow time and space for the tool to accelerate from rest to the cutting speed. This distance, indicated by arrow 1524, is part of the trajectory for the second step. A similar deceleration distance 1526 is required before point P2 (waypoint 1530).

[0126] Techniques for instructing a controller to overlap the first step 1512 with the second step 1522 are known in the art, thus preventing the tool from coming to a complete stop and shortening the overall cycle time of the two-step operation. However, this type of overlap is difficult to control. For example, if point P1 is defined too close to a corner of the workpiece 1500, the blended trajectory will still be moving vertically when it reaches the workpiece 1500. Furthermore, if overlap of adjacent steps is applied, the resulting blended trajectory will not pass through the specified waypoint.

[0127] The disclosed approach overcomes problems known to arise with existing methods by combining programming steps into a single command to calculate a multi-step trajectory that ensures intermediate waypoint state boundary conditions are met.

[0128] In Figure 15B, a cutting bit performs a machining operation on a workpiece 1550. The cutting bit has a tool center point represented by waypoints 1560, 1570, and 1580. The two-step machining operation is to move the tool center point from its current location (waypoint 1560) to point P1 (waypoint 1570) having coordinates (X1, Y1, Z1) in an air-cut step 1562, and then move the tool center point from its current location (waypoint 1570, P1) to point P2 (waypoint 1580) having coordinates (X2, Y2, Z2) in a cutting step 1572. Using the improved programming method of Figure 15B, points P1 and P2 can be defined directly at the corners of the workpiece 1550, rather than being defined a distance away from the workpiece as in the conventional method of Figure 15A.

[0129] The improved programming method allows a two-step operation to be programmed as a single command. The command has the following format: "A_C, X1, Y1, Z1, X2, Y2, Z2, FF," where "A_C" is a command to air cut to the first waypoint, then cut to the second waypoint, and the waypoint coordinates and cutting speed are defined as before. In the improved programming method, the tool center point does not stop at waypoints 1570 and 1580, but rather the two steps have their trajectories calculated simultaneously to bring the tool center point to the required state (in this example, point P1 (waypoint 1570) with a vertical velocity of zero and a horizontal velocity (cutting speed) of FF).

[0130] The improved programming method of Figure 15B simplifies programming for the user in two ways: it combines two commands (from the conventional method) into a single command, and it takes the guesswork out of defining the locations of P1 and P2 (which can now be defined at actual feature points on the workpiece). In addition, the improved programming method calculates an integrated trajectory for the two-step operation that has a shorter total time than the two-step trajectory of the conventional method. This is because while the first step does in fact follow the trajectory path indicated by dashed line 1564 to reach waypoint 1570 at a velocity appropriate for cutting step 1572, cutting step 1572 does not have unnecessary extra distance added to it, as did cutting step 1522 in Figure 15A.

[0131] FIG. 15B shows a simple two-dimensional example, where a cutting step 1572 has a trajectory moving entirely in a single coordinate direction (X), which means that for this entire step (from P1 to P2), the vertical velocity is zero and the horizontal velocity is V. x =V feed In a real-world example, the cutting step could have any arbitrary orientation in the workcell coordinate frame. This can be handled by calculating the velocity in each coordinate axis direction during the cutting step as the cutting speed "FF" multiplied by the rate of displacement along that axis for the cutting step. This can be expressed as follows: F for i=X, Y, Z i =FF·|ΔP i | / ||P2-P1||·e i (3) where F i is the component of the velocity in the i direction (for example, the X direction), FF is the absolute cutting feed rate mentioned above, and |ΔP i is the magnitude of the incremental displacement from P1 to P2 in the i direction, ||P2-P1|| is the total 3D distance from P1 to P2, and e i is the unit vector in the i direction.

[0132] The command "A_C" is, of course, merely an example of a programming command; actual machine tool programming languages ​​may use any suitable command format. A command such as "C_A" may be used for the opposite sequence, i.e., a cutting step followed by an air-cutting step. Furthermore, a command such as "A_A" may be used for a sequence of two air-cutting steps, such as the example shown in FIG. 14B, where the drill bit is extracted from the hole in an air-cutting step and then repositioned on the next hole in another air-cutting step. This example requires the trajectory to pass through waypoint 1452, but provides the freedom to optimize the vertical velocity of the bit as it exits the hole to minimize overall trajectory time.

[0133] In all of these cases, fewer programming command lines are required, no artificial waypoint location estimation is required, and the resulting combined trajectory is faster than the multiple steps associated with the conventional programming method. Comparison of the improved move programming method to the conventional method resulted in faster cycle times using the improved programming command approach and its combined multi-step trajectory in examples including the multi-step drilling operation of Figures 14A / 14B and the multi-step milling operation of Figures 15A / 15B.

[0134] The combination of multiple steps into a single programming command and the corresponding calculation of a time-optimal multi-step trajectory can also be applied to milling operations, an example of which is described below.

[0135] FIG. 16A is a diagram of a multi-pass milling operation performed using conventional programming and motion planning methods, and FIG. 16B is a diagram of a multi-pass milling operation performed using the improved programming and time-optimal trajectory motion planning methods of the present disclosure.

[0136] In FIG. 16A , a cutting bit (not shown) performs a multiple-pass machining operation on a workpiece 1600, where the cutting bit makes repeated cutting passes across the workpiece 1600, with each pass offset from the previous one by a specific distance. As shown in FIG. 16A , the cutting bit must follow a trajectory that includes a turn following each pass. The cutting bit has a tool center point represented by waypoints 1610, 1612, 1614, 1616, 1618, etc. From waypoint 1610, a cutting step is made to waypoint 1612, which, as previously described, requires that the waypoint be defined a distance away from the workpiece 1600 to allow time and space for acceleration and deceleration. The tool center point stops at waypoint 1612 and then air-cuts to waypoint 1614 on another command. The air-cut is made using jerk-constrained rapid acceleration / deceleration, as previously described. The cutting and air-cutting steps are repeated in sequence to waypoints 1616, 1618, etc. until the entire machining operation is completed.

[0137] In the conventional programming and trajectory calculation method of FIG. 16A , each cutting step and each air-cut step is a separate command, and the tool center point stops at each waypoint. As is known in the art, an overlap function can be used to blend two trajectory segments together, resulting in a curved turn segment such as 1620 and 1622. However, overlap still requires that waypoints be defined away from the workpiece face, and the offset distance must be estimated by the programming user. If the selected waypoint offset distance is too small, the tool center point path will begin to curve before the workpiece material has finished being cut, thereby crushing the workpiece. If the selected waypoint offset distance is too large, the tool center point will travel an unnecessarily long distance in the turn, some of which is at a slow cutting speed.

[0138] In FIG. 16B , the cutting bit performs a multiple-pass machining operation on the workpiece 1650, similar to that described above, where the cutting bit makes repeated passes across the workpiece 1650, with each pass offset from the previous one by a specific distance. As shown in FIG. 16B , the cutting bit must follow a trajectory that includes a turn following each pass. The cutting bit has a tool center point represented by waypoints 1660, 1662, 1664, 1666, 1668, etc. The waypoints (waypoints 1660, 1662, etc.) are defined at actual feature points on the shape of the workpiece 1650, rather than at an offset distance as in the conventional method of FIG. 16A . A start point 1652 is defined away from the workpiece 1650; this is a staging location where the cutting bit begins.

[0139] In the improved programming and time-optimal trajectory calculation method of Figure 16B, the air-cutting and milling steps can be combined into a single command, and a time-optimal trajectory for multiple steps is calculated. Starting from start point 1652, a single command is written that defines an air-cut at the maximum possible speed (a jerk-constrained acceleration profile) to the 3D coordinate of waypoint 1660, followed by a milling operation from waypoint 1660 to the 3D coordinate of waypoint 1662 at a cutting speed of "FF." This type of command was detailed above in connection with Figure 15B. The combined command then calculates a trajectory to reach waypoint 1660 at the cutting speed without stopping, as described.

[0140] The next command in the machining operation program is an air cut from waypoint 1662 to waypoint 1664, followed by a cutting operation from waypoint 1664 to waypoint 1666. Because the cutting bit reaches waypoint 1662 at the cutting speed and a future air cut / cut command dictates that the bit reaches waypoint 1664 at the cutting speed, the resulting trajectory from waypoint 1662 to waypoint 1664 has the shape shown at 1680. From waypoint 1666 at the cutting speed, another combined air cut / cut command is provided to waypoint 1668 and waypoint 1670, resulting in the trajectory shape shown at 1682. This type of sequence continues until the machining operations are fully defined in the program.

[0141] The improved programming method of Figure 16B results in significantly fewer programming lines (4) compared to the conventional method (7), and the resulting time-optimal trajectory has a significantly shorter cycle time between stations than the conventional approach. In addition, the improved programming method allows waypoints to be defined directly at feature points on the workpiece, rather than some distance away from the workpiece that needs to be inferred and tested.

[0142] Those skilled in the art can envision other programming commands that combine more than two steps into a single command line. Indeed, the entire multi-pass machining operation of Figure 16B can be programmed on a single line, with commands defining an alternating sequence of air-cutting and cutting steps, and a consecutive list of coordinates of waypoints 1660, 1662, 1664, 1666, 1668, etc.

[0143] FIG. 17 is a flowchart diagram 1700 of an improved method for programming a machine tool that combines an air cutting step with another air cutting or cutting step into a single program command according to an embodiment of the present disclosure.

[0144] In box 1702, a description of a multi-step operation is provided, including at least two steps and three waypoints. The information provided in box 1702 is what a programmer needs to know to create a machine tool move program. For example, this could include the 3D coordinates of the top and bottom of a hole to be drilled, or the 3D coordinates of the start and end points of a milling pass (e.g., points P1 and P2 in FIG. 15B), along with the cutting or feed rate. The "current" location of the tool center point serves as the third waypoint, i.e., the start point of the first step, but the current location does not need to be explicitly listed.

[0145] In box 1704, a move program is written by the user, including writing a single command that combines an air-cutting step and another step, where the other step can be either an air-cutting or a cutting step. When air-cutting and cutting steps are combined into a single command, they can appear in either order (i.e., air-cutting first or cutting first), as required by the requirements of the machining operation. The programming command includes a command type that specifies the sequence of steps (e.g., air-cutting step, then cutting step), the 3D coordinate of the first waypoint, the 3D coordinate of the second waypoint, and the cutting feedrate. An example of a command defining a two-step operation was provided above, for example, in the description of FIG. 15B.

[0146] In box 1706, a time-optimal trajectory is calculated by a computational device, such as the machine controller or a separate computer. The time-optimal trajectory is calculated in the manner broadly described above, including calculating a trajectory for a combined two-step operation, where the states of the intermediate waypoints (waypoints connecting the first step to the second step) are optimized to result in the shortest total cycle time. All of this was described above, including using optimization techniques such as gradient descent to identify optimal values ​​for the intermediate waypoint states.

[0147] The time-optimal trajectory is used by the machine controller to control the machine tool to perform multi-step movements, in box 1708. Typically, several movements are included in a single machine tool move program, and a complete move program may include several combined two-step movement commands along with other commands.

[0148] The disclosed time-optimal machine tool movement programming method offers several advantages over conventional programming methods. The time-optimal programming method allows waypoints to be defined directly at physical feature points on the workpiece, does not stop the tool at intermediate waypoints, and combines air-cut steps with other steps to calculate a time-optimal multi-step trajectory. The resulting programming format is more intuitive to the programming user and allows for the combination of trajectory steps to reduce overall cycle time.

[0149] The preceding description has been directed to machine tool motion planning and programming techniques for operations such as milling and drilling, where a cutting tool is used and the spindle speed can remain constant throughout a sequence of cutting and air-cutting steps. Additional challenges are faced when considering hole-tapping operations, where the spindle rotational speed needs to be synchronized with the tool axial feed rate whenever a tapping tool is actuated in the hole. Disclosed below is a technique that simultaneously considers both the spindle speed profile and the tool spatial motion profile and calculates a multi-step time-optimal trajectory that coordinates the spindle speed and spatial motion while eliminating any unnecessary pauses in the motion.

[0150] Figure 18 is a diagram of a machine tool tapping operation performed using a conventional motion planning method that includes an air-cut step to a staging point where the tool pauses before tapping begins while synchronization of spindle speed and axial velocity begins. In Figure 18, a workpiece 1800 has an existing hole 1802. The hole 1802 is to be tapped in a thread tapping operation by a tapping tool 1810 that is gripped in the spindle of a machine tool (not shown). The tapping tool 1810 has a tool tip 1812, the movement of which is controlled by a controller in communication with the machine tool.

[0151] Using conventional motion planning methods, the tool tip 1812 is controlled to follow a trajectory in a five-step motion plan shown at 1820. The motion plan 1820 defines both the spatial trajectory of the tool tip 1812 and the rotational speed of the spindle (and therefore the tapping tool 1810). In step 1, the tool tip 1812 is moved laterally from its current location to a location where the tool tip 1812 is axially aligned with the hole 1802. In step 2, the tool tip 1812 is moved axially, but rather than moving all the way to the top of the hole 1802, it is paused at a reference plane 1822. During steps 1 and 2, which are the air cutting steps, the spindle is typically not rotating.

[0152] In step 3, the tool tip 1812 accelerates in the axial tapping direction ("down" in FIG. 18) from rest to the tapping feed rate while the spindle accelerates from zero rotational speed to the required tapping rotational speed. As will be understood by those skilled in the art, the spindle rotational speed needs to be maintained proportional to the tapping feed rate, where the increase factor is determined from the thread pitch (e.g., threads per inch or threads per mm). The spindle rotation direction also depends on the type of thread being tapped, where step 3 requires clockwise rotation (CW, looking down from the tool tip 1812 into the hole 1802) for a typical right-hand thread.

[0153] Near the end of step 3, the tool tip 1812 is decelerated axially from the tapping feed rate to a zero speed, while the spindle is decelerated proportionally from the required tapping rotational speed to a zero rotational speed. These decelerations are adjusted so that the required proportional relationship between the spindle rotational speed and the tool axial feed rate is always maintained. At step (or point) 4, the tool 1810 has a zero axial speed and a zero rotational speed in preparation for extraction of the tool 1810 from the hole 1802.

[0154] In step 3, the tool tip 1812 accelerates from rest to the tapping feed rate in the axial extraction direction ("up"), while the spindle accelerates from zero rotational speed to the required tapping rotational speed in the opposite rotational direction to step 3. Step 5 brings the tool tip 1812 up out of the hole 1802, typically back to the reference surface 1822, from which the next tapping operation can be planned and executed.

[0155] It should be understood that the axial tapping / extraction direction (the direction of steps 2, 3, and 5) need not be vertical in real-world operation. The terms "up / upward" and "down / downward" in the preceding description are used solely in terms of relative orientation in FIG. 18 . That is, any hole being tapped may be oriented vertically, horizontally, or at any other inclined angle relative to the world coordinate system, as long as the machine tool or robot performing the tapping operation has the necessary degrees of freedom of movement. The same applies to the following description of an improved approach to motion planning for tapping operations.

[0156] 19 is a diagram of a machine tool tapping operation performed using an improved motion planning method including an air-cutting step that incorporates synchronization of spindle speed and tool tip spatial movement according to an embodiment of the present disclosure. In FIG. 19, a workpiece 1900 has a first existing hole 1902 and a second existing hole 1904. Holes 1902 and 1904 are tapped in a thread tapping operation by a tapping tool gripped in the spindle of the machine tool (tapping tool and machine tool not shown). The tapping tool has a tool tip represented by point 1910 at a start location and moved to other points during motion planning as described below.

[0157] Using the improved motion planning method of the present disclosure, the tool tip is controlled to follow a trajectory in a multi-step motion plan shown at 1920. The motion plan 1920 defines both the spatial trajectory of the tool tip and the rotational speed of the spindle (and therefore the tapping tool). FIG. 19 depicts the tapping of two holes to fully describe the functionality of the disclosed method of incorporating and adjusting spindle speed changes for spatial movement of the tool tip during the air-cutting step. For purposes of the explanation of FIG. 19, consider the machine tool to be a three-axis machine tool with servo motors independently controlling each of the X, Y, and Z motion directions of the spindle and tapping tool, and a controller controlling the speed and direction of the X, Y, and Z servos and spindle rotation.

[0158] Step 1 moves the tool tip in two or three dimensions as needed from point 1910 to point 1930 at the top of hole 1902. This step involves movement in one or two lateral dimensions (X, Y), plus an axial or "vertical" direction (Z). During Step 1, the air-cutting step, the machine tool's X / Y / Z servo motors are controlled to quickly move from point 1910 to point 1930, reaching point 1930 with a Z-axis (axial) velocity equal to the tapping feedrate. Based on these position and velocity boundary conditions, the calculation of the tool tip spatial movement for Step 1 can be performed using the seven-step jerk constraint calculation described above. Step 1 also includes spindle control commands that cause the spindle to reach the appropriate tapping rotational speed before or simultaneously with reaching point 1930. This calculation is described further below. In the disclosed approach, there is no artificial reference plane defined at a distance above the hole being tapped, and there is no additional step where the tool tip must advance to an artificial waypoint before synchronizing the tool tip axial movement and spindle rotational speed begins.

[0159] In step 2, the tool tip continues downward in the axial tapping direction at the tapping feed rate, while the spindle continues to rotate at the required tapping rotational speed. These axial feed rate and spindle rotational speed conditions are established by the time the tool tip reaches point 1930 at the end of step 1, so the start of step 2 seamlessly continues from the end of step 1. Near the end of step 2, the tool tip decelerates axially from the tapping feed rate to a zero speed, while the spindle decelerates from the required tapping rotational speed to a zero rotational speed. As previously mentioned, these decelerations are adjusted to always maintain the required proportional relationship between the spindle rotational speed and the tool axial feed rate. At the end of step 2, the tool tip reaches and stops at point 1940 at the bottom of hole 1902 (axial speed is zero and rotational speed is zero).

[0160] In step 3, the tool tip accelerates from rest to the tapping feed rate in the axial extraction direction ("up") while the spindle accelerates from zero rotational speed to the tapping rotational speed in the opposite rotational direction to step 2. Step 3 brings the tool tip up and back to point 1930 at the top of hole 1902.

[0161] Upon reaching point 1930 at the end of Step 3, the tool has a moderate upward / axial velocity (at the tapping feedrate) and no lateral velocity. In Step 4, the air-cutting step that positions the tool to tap the next hole, three things occur: reversing the tool's vertical velocity from an upward movement at the tapping feedrate to a downward movement at the tapping feedrate; moving the tool tip position as quickly as possible from point 1930 to point 1950; and reversing the spindle rotation from the extraction direction to the tapping direction. Calculations are performed to determine the amount of time required to perform each of these operations, and the longest operation time is used to pace Step 4 overall, with shorter operations controlled to complete before or as the tool tip reaches point 1950. These calculations are described in detail below.

[0162] At the conclusion of step 4, when point 1950 is reached, the lateral velocity at the tool tip is zero, the axial / downward velocity is the tapping feedrate, and the spindle is rotating in the tapping direction at the required tapping rotational speed. Therefore, there is no necessary pause, and tapping of hole 1904 begins immediately in step 5. Step 5 is the same as step 2 described above, where the tool decelerates (both axially and in rotation) until it comes to a stop at the bottom of hole 1904 (point 1960), followed by an extraction step in the same manner as step 3. The steps depicted in FIG. 19 can be repeated as many times as necessary to tap all of the holes in workpiece 1900. Although FIG. 19 depicts holes 1902 and 1904 as being parallel and having only a lateral offset distance, these are not necessary conditions. The techniques of the present disclosure can be used to calculate general air-cut movements that include any combination of X, Y, and Z offsets, including orientation changes if necessary, while incorporating spindle speed control into the air-cut step to minimize overall cycle time.

[0163] The speed and superiority of the disclosed rapid move planning method for tapping operations over known prior art approaches is readily apparent from the discussion of Figures 18 and 19. By incorporating and synchronizing spindle rotation with tool space movement in the air cutting step, the disclosed approach eliminates dead time before and between hole tapping steps.

[0164] FIG. 20 is a graph 2000 of servo and spindle speeds versus time for the air cut and tapping steps of a basic machine tool tapping operation, illustrating the coordination and synchronization of servo and spindle speed controls, according to an embodiment of the present disclosure. Graph 2000 plots speed (for all three servos and spindles) on the vertical axis versus time on the horizontal axis. Graph 2000 shows the air cut time span (T aircut ) followed by a tapping time span (Ttapping ) includes the data followed by a tapping step 2012 having:

[0165] Graph 2000 essentially depicts the velocity profile tracked during the first two steps of FIG. 19. During the air cut step 2010, the tapping tool is moved as quickly as possible in the X direction, as shown by the X servo velocity curve 2020. In this example, the spatial movement of the tapping tool in the X direction is over the air cut time span (T aircut ) is the maximum duration (limiting) factor that determines the air-cut step 2010. During the air-cut step 2010, the spindle rotational speed can be controlled independently of the servo translational speed.

[0166] At the appropriate time during air cutting step 2010, axial tool movement in the Z direction begins, as shown by Z servo velocity curve 2030. The Z servo start time is indicated by arrow 2032. Similarly, at the appropriate time during air cutting step 2010, spindle rotation begins, as shown by spindle velocity curve 2040. The spindle start time is indicated by arrow 2042.

[0167] Below is the air cut time span T aircut , Z-servo start time, and spindle start time calculations. The purpose of the calculations is to have the Z-axis linear velocity reach the tapping feedrate and the spindle velocity reach the tapping rotational speed at or before the end of the air cut step 2010. In this way, the tapping step 2012 begins without a pause between steps. First, the air cut time span T aircut is calculated. The air cut time span depends on two factors: the slower servo transfer move time and the spindle acceleration time. Both cases are discussed further below. In this case, it is the air cut time span T aircut A lateral (X-servo) movement that defines the X-axis movement profile and the resulting value T aircutcan be calculated using the seven-step jerk-constrained translation calculation described above.

[0168] T aircut Once known, the spindle start time is T start,S =T aircut -T acc,S where T start,S is the spindle start time (measured from t=0), and T acc,S is the amount of time it takes for the spindle to accelerate from zero speed to the tapping rotational speed. The torque / speed and acceleration profile of the spindle is known for any particular machine tool, so T acc,S The value of is known or can be easily calculated. In a similar manner, the Z-servo start time is T start,Z =T aircut -T acc,Z where T start,Z is the Z-servo start time (measured from t=0), and T acc,Z is the amount of time it takes for the Z-servo to accelerate from zero velocity to the tapping feedrate (which is also known for a given machine tool). As shown in Figure 20, the above calculations result in the spindle and Z-servo reaching the proper tapping speed exactly at the moment the tapping step begins.

[0169] During the tapping step 2012, the Z-servo velocity and spindle velocity must remain synchronized. This is indicated by the shaded area 2050 in graph 2000. Both the spindle and Z-servo must come to a dead stop at the end of the tapping step 2012, and this deceleration must be synchronized. In this example, the spindle deceleration is the longest duration (limiting) factor that determines when deceleration must begin. The start of the Z-servo and spindle deceleration is indicated by dashed line 2052. While maximum spindle deceleration torque is applied during the tapping deceleration, only enough Z-servo deceleration torque is applied to achieve the desired Z-axis deceleration time.

[0170] Figure 20 shows velocity and time relationships associated with machine tool control in accordance with the techniques of the present disclosure. In particular, Figure 20 clearly illustrates how the overall cycle time for a tapping operation can be reduced by first bringing the Z-servo and spindle up to the appropriate tapping speed during the air-cut step preceding the tapping step, rather than navigating to an artificial waypoint at the location of the reference plane as shown in the prior art technique of Figure 18.

[0171] 20, there is no Y-axis movement, so the Y-servo velocity curve remains zero throughout graph 2000. As previously mentioned, the lateral movement of the tapping tool during the air cutting step can be embodied with X-axis movement, Y-axis movement, or a combination of X and Y movement.

[0172] 21 and 22 include graphs of servo speed and spindle speed versus time for an air-cut step between two tapping steps of a general machine tool tapping operation, illustrating the coordination and synchronization of servo and spindle speed control for two different cases of time-limited constraints, in accordance with an embodiment of the present disclosure.

[0173] In FIG. 21, an air-cut step is performed between two hole tapping steps, where the two holes have a very large separation distance, as shown in the figure at 2100. Specifically, the separation distance between the two holes is calculated as the air-cut step time (T aircut ) is large enough so that it is greater than the time it takes for the spindle to reverse direction from CCW tapping (extraction) speed to CW tapping speed. aircut ≧T acc,ΔS where T aircut is the lateral (X and / or Y) servo movement and T acc,ΔS =2T acc,S is the air cut step time calculated from T acc,Sis the amount of time it takes for the spindle to accelerate from zero speed to the tapping rotation speed as described above. acc,S is used to decelerate the spindle from CCW extraction rotation to a stop, and the second T acc,S is used to accelerate the spindle from a stop to a CW tapping rotation, so a factor of 2 is added to T acc,ΔS In the equation for T acc,S applies to.

[0174] Graph 2110 plots servo (e.g., X-servo) speed versus time for the air-cut step depicted in 2100. Graph 2120 plots spindle speed versus time for the same air-cut step. As in FIG. 21, T aircut ≧T acc,ΔS , the disclosed technique controls the machine tool according to the following two rules. First, the lateral servo move is controlled using the fastest move possible based on the machine constraints. This is the seven-stage jerk-constrained move described above. This involves accelerating as quickly as possible to the maximum servo speed, maintaining the maximum servo speed for as long as possible, and then decelerating as quickly as possible to a zero lateral servo speed. This lateral servo speed profile is depicted in graph 2110.

[0175] Next, T aircut ≧T acc,ΔS Therefore, after decelerating from the CCW extraction rotation speed, the spindle has a pause at zero speed before accelerating to the CW tapping rotation speed. acc,S ) is shown at 2130 in graph 2120. The duration of the pause (T pause ) can be obtained by subtraction as follows: T pause =T aircut -2T acc,S is easily calculated as

[0176] The Z servo movement is not shown in FIG. 21, but it can be easily understood as follows: the Z velocity profile is aircut The following is calculated to transition from upward to downward tapping speed in a certain time:

[0177] In FIG. 22, an air-cut step is performed between two hole tapping steps, where the two holes have a very small separation distance, as shown in the figure at 2200. Specifically, the separation distance between the two holes is calculated based on the air-cut step time (T aircut ) is small enough to be less than the time it takes for the spindle to reverse direction from CCW tapping speed to CW tapping speed. aircut <T acc,ΔS where T aircut is the air cut step time calculated from the lateral (X and / or Y) servo movement, and T acc,ΔS is the amount of time it takes for the spindle to reverse direction from a CCW tapping speed to a CW tapping speed as described above.

[0178] Graph 2210 plots servo (e.g., X-servo) speed versus time for the air-cut step depicted in 2200. Graph 2220 plots spindle speed versus time for the same air-cut step. As in FIG. 22, T aircut <T acc,ΔS When , the disclosed technique controls the machine tool according to the following two rules. First, since spindle deceleration / acceleration is the time-limited factor for the air-cut step, after decelerating from the CCW extraction rotational speed to a stop, the spindle continuously accelerates to the CW tapping rotational speed. That is, there is no pause at zero spindle speed; the spindle speed continuously increases at a constant acceleration. A spindle speed profile decelerating from a negative speed to a stop and continuously accelerating in the positive speed direction is depicted in graph 2220.

[0179] Next, the lateral servo (translation) moves no longer need to be made using the fastest possible moves based on machine constraints. Instead, the lateral (X and / or Y) servo moves are made over a period T that is equal to the time of spindle deceleration / acceleration. XY It can be calculated to complete in T XY =T acc,ΔS The resulting lateral servo movement profile has a peak velocity that is less than the maximum servo velocity of the machine limit, which is indicated at 2230 in graph 2210.

[0180] The Z servo movement is T acc,ΔS The air cut step is calculated to be completed within the assigned time span of the air cut step.

[0181] In summary, the air-cut step preceding the tapping step generally includes three components: a lateral translation movement (X / Y servo) that terminates at zero lateral velocity at the start of the tapping step; an axial translation movement (Z servo) that terminates at the tapping feedrate at the start of the tapping step; and a spindle acceleration that terminates at the tapping rotational speed at the start of the tapping step. These components are combined into a continuous air-cut step in which all three are completed simultaneously. Any of the three components can be the time-limiting factor (the component that has the longest time to execute). In fact, because the lateral translation movement is typically larger than the axial movement, the Z-servo movement is typically not the time-limiting factor. Furthermore, the spindle motor has a larger rotational inertia than the servo motors controlling the X, Y, and Z movements, which leads to the spindle acceleration becoming the time-limiting factor when the holes are close together (as in FIG. 22) and the lateral translation movement is small. In other cases, lateral translation (X / Y servo) or axial translation (Z servo) may be the limiting factor in time.

[0182] 21 and 22 show how an air-cut step between two tapping steps can be scheduled to reduce overall cycle time by first determining the time-critical operation for the step (XY lateral translation move or spindle deceleration / acceleration), and then performing the time-critical operation at maximum actuation force while performing other operations at less than maximum actuation force to complete simultaneously with the time-critical operation. The same concept applies to the air-cut step that occurs before the first hole tapping operation as depicted in step 1 of FIG.

[0183] 23 is a flowchart 2300 of a time-efficient motion planning method for machine tool hole tapping where the axial and rotational speeds for tapping are established during an air-cutting step preceding the tapping step, in accordance with an embodiment of the present disclosure. The steps of flowchart 2300 are performed in a processor of a machine controller in communication with the machine tool performing the tapping operation.

[0184] In box 2302, all inputs for the air-cutting and tapping steps are provided. The inputs include the starting state (position and velocity) of the tapping tool. The starting state can be where the tool is positioned at a staging location prior to the first hole to be tapped in the workpiece (as at the start of step 1 in FIG. 19), or the starting state can be where the tapping tool is exiting a hole that has just been tapped (as in step 4 in FIG. 19). The inputs also include the location and depth of the hole to be tapped, along with the axial tapping feedrate and corresponding tapping rotational speed. The spindle maximum acceleration value and machine limits (including maximum speed, acceleration, and jerk for each axis or joint servo of the machine) are also provided as inputs in box 2302 or are already known by the controller.

[0185] In box 2304, the air cut transition travel time (T aircut ) and spindle acceleration time (T acc,S or Tacc,ΔS ) is calculated. The meaning of these time values ​​and their calculations are as described above with respect to Figures 20-22. In decision diamond 2306, it is determined whether the air cut transition travel time is greater than or equal to the spindle acceleration time. If the spindle needs to decelerate from the extraction rotational speed and then accelerate to the tapping rotational speed (as in Figures 21-22), the spindle acceleration time used in decision diamond 2306 is T acc,ΔS If the answer is yes at decision diamond 2306, this means that the lateral translation movement (XY servo) time T aircut This means that T is a time-limited factor, i.e., the longest duration move that will be made. In this case, the process moves to box 2308, where start times for the spindle motor and Z-servo motor are calculated. These calculations were previously described with respect to FIG. 20, which showed how the delayed start times provide the desired velocities for the spindle and Z-servo at the start of the tapping step. The start time calculation is start,i =T aircut -T acc,i , ...i=S, Z. When the spindle motor undergoes both deceleration and acceleration (as when an air cut step is between two tapping steps according to Figures 21-22), the zero speed dwell time is T as described above with respect to Figure 21. pause =T aircut -2T acc,S Since the spindle is allowed to reach tapping speed before the transition move is complete, the spindle start time is calculated in box 2308 using T start,Z Not slower than T start,Z The spindle pause time may be shorter than T as calculated above. pause Not longer than T pause It may be less than.

[0186] At decision diamond 2306, if the air cut transition move time is less than the spindle acceleration time, this means that the spindle acceleration time is the time-limited factor, i.e., the longest duration move that will be made. In this case, the process moves to box 2310, where the side transition move (XY servo) is scheduled so that it completes in the same amount of time as the spindle acceleration time. This situation is depicted in Figure 22, where a velocity profile is used for the transition servo move that does not reach the maximum speed of the machine limit.

[0187] In box 2312, a complete motion plan is generated for the air cutting step and the tapping step. This includes the tool trajectory (X, Y, and Z servo motor velocity profiles versus time) along with the corresponding spindle velocity profile versus time. Graphs of these velocity profiles are shown in FIGS. 20-22. The spatial motion of the tapping tool that can be calculated from the servo velocity profiles is depicted in FIG. 19. The motion plan calculated in box 2312 uses either the spindle and Z servo start times from box 2308 or the below-maximum actuation force transition move profile from box 2310, depending on which branch was taken from decision diamond 2306.

[0188] In box 2314, spindle and servo movement commands are output from the machine controller to the machine tool and used to perform a tapping operation including an air cut step followed by a tapping step. The steps of flowchart diagram 2300 may of course be used iteratively; for example, while air cut step 1 and tapping step 2 of Figure 19 are being performed by the machine tool, the controller may be calculating the immediately following air cut step 4 and tapping step 5.

[0189] Various computers and controllers are described and suggested throughout the foregoing description. It should be understood that the software applications and modules of such computers and controllers are executed on one or more electronic computing devices having a processor and memory modules. This includes, among other things, the machine controllers described above and / or any optional other computers. Specifically, the processors in the controllers or other computers are configured to perform the rapid movement tapping method described above, including the method steps of FIG. 23 and the equations and other techniques described above.

[0190] The disclosed time-optimal machine tool motion planning method offers several advantages over conventional methods. A notable feature of all of the disclosed methods is the calculation of an air-cutting step that transitions all machine tool states (including three-dimensional positions and velocities, and spindle rotational speeds, if applicable) from a starting state to the states required for the subsequent machining step, and completes the transition in the least possible time based on the machine capabilities. The method is applicable to all methods of machining operations (including milling, drilling, laser cutting, thread tapping, etc.) on both articulated robots and multi-axis machines.

[0191] While numerous preferred aspects and embodiments of the rapid movement tapping method have been described above, those skilled in the art will recognize modifications, permutations, additions, and subcombinations thereof. Accordingly, it is intended that the following appended claims and the claims incorporated below be interpreted to include all such modifications, permutations, additions, and subcombinations as fall within the true spirit and scope thereof.

Claims

1. 1. A method for movement planning of a tapping motion, the method being performed by a controller including a processor and a memory, calculating a motion plan for the machine tool including a tapping step immediately following a time-optimal air-cutting step, the air-cutting step ending with the axial speed of the tapping tool equal to the tapping feed rate and the spindle speed equal to the tapping rotational speed; the method includes calculating a transition move time, an axial servo move time, and a spindle acceleration time for the air cutting step from input data including a starting state of the tapping tool, a location of the hole to be tapped, a spindle default acceleration, and a mechanical limit of the machine tool; The method wherein an air cut step time is determined from the transition move time, the axial servo move time, and the spindle acceleration time.

2. The method of claim 1 , wherein the air cut step time is set to the maximum of the transition move time, the axial servo move time, and the spindle acceleration time.

3. 3. The method of claim 2, wherein the spindle start time is delayed when the transition move time or the axial servo move time is at a maximum, and the transition move profile is slowed down from the quickest possible move when the spindle acceleration time or the axial servo move time is at a maximum.

4. 4. The method of claim 3, wherein when the spindle start time is delayed, a maximum spindle delay time is calculated as the difference between the air cut step time and the spindle acceleration time.

5. The method of claim 3 , wherein when the transition movement profile is slowed down, the transition movement profile is calculated to be completed in the air-cut step time.

6. 2. The method of claim 1, wherein the transition move time is the time required for the machine tool to move the tapping tool laterally from a start location to the location of the hole to be tapped using the fastest possible move based on the mechanical limitations of the machine tool, and the axial servo move time is the time required for the machine tool to move the tapping tool axially from the start state using the fastest possible move based on the mechanical limitations of the machine tool to reach the location of the hole to be tapped at the tapping feedrate.

7. 7. The method of claim 6, wherein the machine tool mechanical limits include maximum velocity, acceleration, and jerk along translational axes of a machine tool driven by a servo motor.

8. The method of claim 1 , wherein the spindle acceleration time is the time required for the spindle to accelerate from the spindle starting speed to the tapping rotation speed using the spindle predetermined acceleration.

9. 9. The method of claim 8, wherein the starting state of the tapping tool is determined from the end of an extraction step of a previously tapped hole, and the spindle acceleration time includes a first time span of deceleration from an extraction rotational speed to a stop and a second time span of acceleration from a stop to the tapping rotational speed.

10. The method of claim 1 , wherein an axial movement profile of the tapping tool beginning at the starting state and ending axially at the tapping feed rate is calculated to be completed within the air-cut step time.

11. The method of claim 1 , further comprising sending a signal from the controller to cause the machine tool to perform the tapping motion using the motion plan.

12. 1. A method for machine tool motion planning for a tapping operation including an air cutting step followed by a tapping step, the method comprising: providing input data regarding the tapping operation, including a starting state of the tapping tool, a location of the hole to be tapped in the workpiece, a tapping feed rate and a tapping rotational speed, a spindle predetermined acceleration, and mechanical limits of the machine tool; calculating a transition move time, an axial servo move time, and a spindle acceleration time for the air cut step from the input data; determining which of the transition move time, the axial servo move time, and the spindle acceleration time for the air cut step is greatest; when the transition move time is maximum, setting an air cut step time to the transition move time, calculating a transition move profile to be as fast as possible based on the mechanical limits, and calculating a spindle start time delay as the difference between the transition move time and the spindle acceleration time; when the spindle acceleration time is maximum, setting the air cut step time to the spindle acceleration time, calculating the transfer move profile to complete at or before the end of the air cut step time, and setting the spindle start time delay to zero; calculating an axial movement profile to be completed at the end of the air-cut step time; generating a motion plan for the air-cut step and the tapping step, the motion plan for the air-cut step using the air-cut step time, the transition motion profile, the axial motion profile, and the spindle start time delay; A method comprising:

13. 13. The method of claim 12, wherein the transition move time is the time required for the machine tool to move the tapping tool laterally from a start location to the location of the hole to be tapped using the quickest possible move based on the mechanical limitations of the machine tool.

14. The method of claim 12 , wherein the spindle acceleration time is the time required for the spindle to accelerate from the spindle starting speed to the tapping rotational speed using the spindle predetermined acceleration.

15. 15. The method of claim 14, wherein the starting state of the tapping tool is determined from the end of an extraction step of a previously tapped hole, and the spindle acceleration time includes a first time span of deceleration from an extraction rotational speed to a stop and a second time span of acceleration from a stop to the tapping rotational speed.

16. 1. A time-optimal machine tool tapping system, comprising: a controller including a processor and a memory; a machine tool in communication with the controller; the machine tool has a spindle holding a tapping tool; the controller calculates a motion plan including a tapping step immediately after the time-optimal air-cutting step and sends the motion plan to the machine tool, the air-cutting step being terminated when the axial speed of the tapping tool is equal to the tapping feed rate and the spindle speed is equal to the tapping rotational speed; the system includes calculating a transition move time, an axial servo move time, and a spindle acceleration time for the air cutting step from input data including a starting state of the tapping tool, a location of the hole to be tapped, a spindle default acceleration, and a mechanical limit of the machine tool; The system wherein an air cut step time is determined from the transition move time, the axial servo move time, and the spindle acceleration time.

17. 17. The system of claim 16, wherein the air cut step time is set to the maximum of the transition move time, the axial servo move time, and the spindle acceleration time.

18. 18. The system of claim 17, wherein the spindle start time is delayed when the transition move time or the axial servo move time is at a maximum, and the transition move profile is slowed down from the quickest possible move when the spindle acceleration time or the axial servo move time is at a maximum.

19. 20. The system of claim 18, wherein when the spindle start time is delayed, a maximum spindle delay time is calculated as the difference between the air cut step time and the spindle acceleration time.

20. 20. The system of claim 18, wherein when the transition movement profile is slowed down, the transition movement profile is calculated to complete in the air-cut step time.

21. 17. The system of claim 16, wherein the transition move time is the time required for the machine tool to move the tapping tool laterally from a start location to the location of the hole to be tapped using the fastest possible move based on the mechanical limitations of the machine tool, and the axial servo move time is the time required for the machine tool to move the tapping tool axially from the start state to reach the location of the hole to be tapped at the tapping feedrate using the fastest possible move based on the mechanical limitations of the machine tool.

22. 22. The system of claim 21, wherein the machine tool mechanical limits include maximum velocity, acceleration, and jerk along translational axes of a machine tool driven by a servo motor.

23. 17. The system of claim 16, wherein the spindle acceleration time is the time required for the spindle to accelerate from a spindle starting speed to the tapping rotational speed using the spindle predetermined acceleration.

24. 24. The system of claim 23, wherein the starting state of the tapping tool is determined from the end of an extraction step of a previously tapped hole, and the spindle acceleration time includes a first time span of deceleration from an extraction rotational speed to a stop and a second time span of acceleration from a stop to the tapping rotational speed.

25. 17. The system of claim 16, wherein an axial movement profile of the tapping tool beginning at the starting state and ending axially at the tapping feed rate is calculated to be completed in the air-cut step time.