Machine programming method

By directly defining program points on the surface of the workpiece and combining vacuum and cutting commands, the trajectory with the optimal time is calculated, and the problem of difficult to optimize the processing cycle time and avoid collisions in the multi-stage trajectory in the prior art is solved, and an efficient and safe machine tool motion plan is achieved.

JP2025070997APending Publication Date: 2025-05-02FANUC LTD
View PDF 0 Cites 1 Cited by

Patent Information

Application Number
JP2024177574
Authority / Receiving Office
JP · JP
Patent Type
Applications
Current Assignee / Owner
Priority Date
2023-10-20
Filing Date
2024-10-10
Publication Date
2025-05-02

AI Technical Summary

Technical Problem

The prior art is difficult to optimize the machining cycle time in multiple trajectories, and it is difficult to satisfy both geometric and motion constraints while avoiding collisions.

Method used

By directly defining the program points on the workpiece surface, combining the empty cutting and cutting commands as a single command, the optimal time trajectory is calculated, and there is no stop rotation from empty cutting to cutting, meeting the specified cutting feed speed.

Benefits of technology

It realizes the optimization of machining cycle time in multiple trajectories, ensures that the path is collision-free, and meets motion and geometric constraints, improving the production efficiency of machine tools.

✦ Generated by Eureka AI based on patent content.

Smart Images

  • Figure 2025070997000001_ABST
    Figure 2025070997000001_ABST
Patent Text Reader

Abstract

To provide a method for programming multi-segment motion planing for a machine tool which uses program points defined directly on a workpiece surface for computing a time-optimal trajectory for moving at a specified cutting feed speed to reach a cutting start waypoint and to transition from air cutting to cutting without stopping.SOLUTION: A programming method also combines an air-cutting command and a cutting command, which are separate from each other in the prior art, into a single command to compute the time-optimal trajectory for all segments. A basic time-optimal trajectory computation computes an initial motion profile for each segment based on the waypoint geometry and other constraints, and optimizes motion states at the waypoints which join the segments so as to provide the shortest total trajectory time. The optimized waypoint states include velocities and accelerations with non-zero values.SELECTED DRAWING: Figure 9
Need to check novelty before this filing date? Find Prior Art

Description

[Technical field]

[0001] The present disclosure relates generally to the field of machine tool motion control, and more specifically to a method for programming a machine tool motion plan using program points defined directly on a workpiece face, combining air cutting and cutting commands into a single command, where the tool path is automatically calculated using a time-optimal trajectory that transitions from air cutting to cutting at a specified cutting feedrate without stopping. [Background technology]

[0002] 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.

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

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

[0005] In addition, to maximize machine productivity, it is desirable to calculate the 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.

[0006] 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.

[0007] Other approaches exist that can address collision avoidance decisions in trajectory calculations, but the existing approaches do not optimize cycle time. For example, one known method monitors collisions in real time and stops the machine to prevent a collision if an imminent collision is detected. Another known method requires the calculation of multiple tool path trajectories in advance and selects one of the predefined 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 fails to optimize the cycle time of the operation while doing so. Summary of the Invention [Problem to be solved by the invention]

[0008] In view of the above, there is a need for an improved machine tool motion planning method that can minimize cycle time in a multi-segment trajectory and ensure collision-free tool paths while satisfying other geometric and kinematic constraints of the system. There is also a need for an improved machine tool programming method that embodies a time-optimal trajectory calculation. [Means for solving the problem]

[0009] This disclosure describes a method for programming a multi-segment move plan for a machine tool that uses program points defined directly on the workpiece face to calculate a time-optimal trajectory that transitions from air-cutting to cutting without stopping while reaching a start-of-cutting waypoint that moves at a specified cutting feedrate. The programming method also combines what are traditionally separate air-cutting and cutting commands into a single command to calculate time-optimal trajectories for all segments. The underlying time-optimal trajectory calculation calculates an initial move profile for each segment based on waypoint shapes and other constraints, and move states at waypoints connecting segments are optimized to provide the shortest total trajectory time. The optimized waypoint states include velocities that have non-zero values.

[0010] 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 description of the drawings]

[0011] [Figure 1] FIG. 1 is a cross-sectional view of a workpiece machining operation and basic concepts related to motion planning for the operation. [Diagram 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. [Diagram 3]FIG. 3 includes graphs of position, velocity, acceleration, and jerk versus time for a jerk-constrained motion profile as generally described 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 an illustration 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 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 in accordance with 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 operations 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 in accordance with 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 a time-optimal collision-free machine tool movement plan 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 the 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 an illustration 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 an illustration 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 planning method of the present disclosure. [Figure 17]FIG. 17 is a flow chart 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. DETAILED DESCRIPTION OF THE PREFERRED EMBODIMENTS

[0012] The following description of embodiments of the present disclosure directed to time-optimal machine tool move planning and programming is merely exemplary in nature and is in no way intended to limit the presently disclosed devices and techniques or their application or uses.

[0013] 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 recognized in FIG. 1 is not always tilted).

[0014] 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.

[0015] The remaining steps of operation of 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 of 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).

[0016] The second step of the operation is to move the tip 112 of the tool 110 along a path 130 (shown in general form) from waypoint 1 at the top of the hole 102 to waypoint 2 at the top of the hole 104. Because the 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 the path 130 is described below. The final step of the operation is to drill the hole 104 by moving the tip 112 of the tool 110 downward along a path 140 from waypoint 2 at the top of the hole 104 to waypoint 3 at the bottom of the hole 104. While drilling the hole 104, the tool 110 cannot move faster than a prescribed feed rate, based on the material of the workpiece 100 and other factors, as is known in the art.

[0017] More than two holes may be drilled in the workpiece 100, in which case the tool path moves described above are repeated successively 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 described below. Additionally, FIG. 1 depicts a hole drilling operation with a tool 110 that 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.

[0018] 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 a tool from the first hole to the second hole. The description of FIG. 2 provides an explanation for the calculation of the 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 tip of the tool vertically upwards out of hole 202, moving the tip of the tool along time-optimal trajectory 230, and then machining hole 204. Waypoints 0, 1, 2, and 3 have the same definitions as in FIG. 1.

[0019] The machine tools or robots performing the machining operations have 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 max is 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.

[0020] 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 upwards in the z direction. This upward movement in the first step starts stationary and continues until the tool reaches a point A maxUntil it reaches J max Apply V max 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, is described below.

[0021] As mentioned above, the first step in the machining operation is simple, i.e., in some cases, a speed V max V is 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 FIG. 2. The movements in the second step also result in an interdependence on the movements of the first step, V exit There are several different scenarios for the calculation of the tool path moves depicted in FIG. 2. The scenarios depend on the distances that need to be traveled (ΔZ and ΔX) and the respective maximum allowable velocities 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.

[0022] 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-stage jerk-constrained move: IA max Until it reaches Jmax 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 -J to increase the negative acceleration until it reaches max Apply VI. Until V=0 approaches -A max Continue with VII. J is adjusted to reduce the negative acceleration until A=0 and V=0 are reached at the destination position (waypoint 2). max Apply

[0023] FIG. 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 FIG. 3. The jerk graph 310 shows the max (phase I), goes down to zero, and then goes up to -J max to zero, then back to -J again. max Then it goes down to zero again, and then J max The corresponding acceleration graph 320 shows a jerk that starts at zero and increases to A in phase I (phase VII). max Increases to A max Continue at -A, decrease to zero, continue at zero, and then -A max -A max The corresponding velocity graph 330 shows an acceleration that starts at zero and continues at V max It increases in stages I to III and levels off at V max and showing a velocity decreasing again to zero in stages V-VII. A corresponding position graph 340 shows a 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).

[0024] The position, velocity, and acceleration for each of the seven steps can be determined using known motion equations. For example, the equation 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 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 (7 each for position, velocity, and acceleration) and 31 variables (8 for position [p0-p7], 8 for velocity [v0-v7], 8 for acceleration [a0-a7], and 7 for time [t1-t7]). A number of 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.

[0025] 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 start 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 time for the jerk-constrained minimum time movement profile. For trajectory 230 in FIG. 2, this total time corresponds to the duration of the x-axis movement from waypoints 1 to 2. During this time, the z-axis velocity is calculated as the value of that z-axis velocity at waypoint 1 (V max V is less than or equal to exit ) to the required z-axis linear velocity at waypoint 2 (-V feed ) The acceleration required to effect this change in z-axis velocity is easily calculated given the time period calculated from the x-axis movement.

[0026] 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 . These boundary conditions are enforced during the optimization of the waypoint states in the multi-segment trajectory, which is described below.

[0027] 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 FIG. 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. [Table 1]

[0028] 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 movement is equal to V max The exit velocity V exitA 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.

[0029] Also, referring to FIG. 2, consider a configuration in which 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 max Rather than a simple case of accelerating up to V, we accelerate vertically, possibly max Then, the speed leveled 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 computation part for step 2.

[0030] The above example shows that the time-optimal trajectory depends on the relative values ​​of the geometric characteristics (Δ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 move and optimizing the state of a common waypoint.

[0031] 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.

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

[0033] 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. A first step of the machining operation occurs during a time span indicated at 430, where the first step is to lift the cutting tool out of hole 202, ending at waypoint 1, shown at the end of the first step in graph 400. A second step occurs during a time span 432, where the second step is to move the cutting tool horizontally just above hole 204, ending at waypoint 2, shown at the end of the second step in graph 400. A third step occurs during timespan 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.

[0034] 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 again 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 again to zero at waypoint 1, at which point the cutting tool stops. max Move the cutting tool with a positive x-velocity up to V and keep the x-velocity as far as necessary. max The x-velocity is then 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 motion program. Starting again from rest in the third step in time span 434, the conventional motion program moves to -V feed The cutting tool is accelerated downward to achieve a z velocity of 0.5 V and then maintained at this z velocity to drill hole 204 until waypoint 3 is reached.

[0035] For the same three-step machining operation using the time-optimal trajectory move planning method of the present disclosure, time is saved by seamlessly blending each step into the next, including not stopping the cutting tool at the end of each step and using the time available in the air-cut step to complete the moves from the previous step. In the first step, the time-optimal trajectory move of the present disclosure moves the cutting tool upwards at a much faster rate than the conventional move programming of graph 400, which is possible because this move profile does not bring the z-velocity back down 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 method of the present disclosure is completed in less time than the first step (time span 430) of the conventional method. In the second step, the time-optimal trajectory move of the present disclosure moves the cutting tool horizontally with 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 again to the level of the workpiece surface. This z-axis move can be accomplished during the x-axis move without any increase in time relative to the second step. The third step of the time-optimal trajectory move of the present disclosure is where the time-optimal move profile is -V feed This is essentially the same as the conventional 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 method is a bit shorter than in the conventional method.

[0036] 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 be stopped between steps. This same concept can be extended from the drilling-specific example of FIG. 2 to broader applications of machining in general, as described below.

[0037] 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.

[0038] 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 machining operations begin. From waypoint 510, the program specifies that the tool center point moves 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 move at an appropriate cutting speed (V feed In conventional move planning methods, waypoint 512 needs to be defined some distance away from workpiece 500 to allow time and space for the workpiece to accelerate to waypoint 514. The same considerations need to be made for deceleration after the cutting operation but before reaching waypoint 514. An air-cut move is then made from waypoint 514 to waypoint 516, thus completing the three-step machining operation.

[0039] 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 a 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 a time span 532, the tool center point decreases in speed to a cutting speed (V, shown in the graph as 540) just before striking the workpiece material. feed ), then performs a constant speed cutting move before decelerating to a stop at waypoint 514. In a third step having a time span 534, the tool center point accelerates upward in an air cutting move to waypoint 516 where it stops. The three step machining operation using the conventional move programming method takes a total elapsed time of approximately 1.05 seconds.

[0040] 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 machining operations begin. From waypoint 560, the program specifies that the tool center point is moved to waypoint 562 in an air-cut move. This air-cut move is performed as fast as possible given the mechanical limits of the machine tool (maximum speed, acceleration, and jerk). Since waypoint 562 is defined at a corner of workpiece 550, the tool center point of the cutting tool is located 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 performs a cutting move from waypoint 562 to waypoint 564. An air-cut move is then performed from waypoint 564 to waypoint 566, thus completing a three-step machining operation. As previously mentioned, the air-cut move is feedStart with a horizontal velocity of 0 and end with a horizontal velocity of zero, then perform the fastest vertical movement possible.

[0041] Graph 570 plots tool center point velocity versus time for a three-step machining operation using the time-optimal move programming method described above. In the first step, having a time span 580, the tool center point begins to accelerate and move horizontally downward in an air-cut move to waypoint 562, where the tool center point accelerates to V feed In a second step having a time span 582, the tool center point moves in a direction parallel to the axis of the tool path until it reaches waypoint 564 with a horizontal velocity of (590) and no vertical velocity. feed In the third step having a time span 584, the tool center point continues horizontally and accelerates upwards in the air-cut move to waypoint 566 where the tool center point stops. The three-step machining operation using the time-optimal move programming method takes a total elapsed time of about 0.94 seconds, which is about 10% faster than the conventional move programming method. Again, the time-optimal move programming method of the present disclosure depicted in FIG. 5B can shorten the duration of the multi-step machining operation by optimizing the moves (waypoint states) over all steps and not requiring the cutting tool to stop between steps.

[0042] 6 is a flowchart diagram 600 of a method for time-optimal multi-step move 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 holes), path shapes and cut depths (for milling), workpiece material and / or feed rates of the operation, and any other required information. Mechanical limitations of the industrial robot or machine tool are also provided in box 602 or built into the trajectory calculation algorithm.

[0043] At 604, the locations of key points of 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 FIG. 2 and FIG. 4B, waypoints 1 and 2 are intermediate waypoints.

[0044] In box 606, initial values ​​of motion states for one or more intermediate waypoints are calculated. Note that some intermediate waypoint states are fixed boundary conditions and cannot be changed. In FIG. 2, the x-velocities 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 ) may be changed. As mentioned above, Vexit The value of does influence the time for the first step of the movement plan, but V exit The value of V exit It may also affect the time for the second step if a large value of V results in too much vertical overshoot that is absorbed in the horizontal movement of the second step. A general approach to estimating the waypoint state without too much overshoot is described below. In FIG. 5B, the tool center point is at V feed Since both waypoints 562 and 564 must be reached with an x ​​velocity of zero and a z velocity of zero, no intermediate waypoint states are variable.

[0045] In box 608, an 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 606). Generating the overall trajectory includes calculating time-optimal moves in each direction based on the waypoint positions and conditions (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 then moves in other directions with shorter durations can be recalculated to consume more or all of the time span for the step.

[0046] For example, in the second step of FIG. 2 (trajectory 230), 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 The final vertical velocity of the z-motion can be calculated based on the final vertical velocity of the z-motion, resulting in a period for the z-motion. Whichever period is longer (x or z) defines the time span of this step. V exitNote that it can affect the time span of the first step and may affect the time span of the second step. Therefore, V exit is an intermediate waypoint state that can be adjusted to minimize the overall time of the three-step movement plan. This is described in a later step regarding the method of FIG. 6.

[0047] In other examples, in the first step of FIG. 5B, the movement in the x direction starts at zero velocity and V feed The horizontal distance from waypoint 560 to waypoint 562, which ends at the horizontal velocity of, can be calculated to move, and a period for the x movement results. The movement profile in the z direction can be calculated based on the vertical distance from waypoint 560 to waypoint 562, which starts and ends at zero velocity, and a period for the z movement results. The longer of the two periods (x or z) defines the time span of this step. There is no intermediate waypoint state that can be adjusted to minimize the overall time of the three-step movement plan of FIG. 5B.

[0048] In decision diamond 610, it is determined whether the trajectory calculated in box 608 is time-optimal. If a variable intermediate waypoint state (e.g., V in FIG. 2 exit ) affects the time span of one or more steps, the value of the intermediate waypoint state can be changed and the entire trajectory is recalculated to determine whether a shorter total time can be achieved. This optimization and recalculation are performed in box 612 and loop back to box 608. The optimization of the intermediate waypoint state can be performed using any suitable technique, including search-based methods, optimization-based methods, and combinations thereof. This is further described below.

[0049] From decision diamond 610, if the entire time span of the movement plan (trajectory) is minimized or there are no variable intermediate waypoint states, 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 with respect to the example above.

[0050] The calculations described above with respect to Figures 2, 4B, 5B, and 6 provide tool path moves that result in minimum cycle time for multi-step machining operations, where the move states at the waypoints connecting the 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 demonstration of complex moves or to avoid obstacles during machine tool movement. The techniques of the present disclosure may be extended to include first calculating a time-optimal trajectory in the manner described above, then adding a waypoint and optimizing the waypoint states again to achieve minimum time for the entire trajectory including the additional waypoint. 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 entire multi-step trajectory time.

[0051] 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. All of FIGS. 7-10 depict an example 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 example includes a technique for determining the location 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 the techniques of the present disclosure are used to determine a time-optimal trajectory that includes the additional waypoints.

[0052] 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.

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

[0054] FIG. 7 is a three-dimensional diagram with x, y, and z directions 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). Thus, the trajectory 730 needs to traverse both ΔX and ΔY in tracing the 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 moving down again). Calculating the y coordinate in the trajectory 730 is a simple matter, since the y movement of the tool tip can be accomplished using an acceleration increase up to a certain velocity, then decreasing 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, the movements in the other two directions can be replanned to use this time span, as described above.

[0055] Trajectory 730 begins with V at waypoint 1. exit 7, which 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 non-collision tool path trajectories are known in the art, but such techniques do not find time-optimal non-collision trajectories. For example, the non-collision trajectory may be vertically scaled until the obstacle is avoided and therefore unnecessarily long, or a multi-segment trajectory may be calculated that avoids the obstacle but includes deceleration or stopping at bend points or intermediate waypoints. Such techniques are not optimal.

[0056] Calculation of a time-optimal collision-free trajectory is accomplished 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 is closest to waypoint 2 that interferes with obstacle 710, then a point 752 is defined that is vertically above critical point 734 by a clearance distance, and a new trajectory is calculated using 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.

[0057] 8 is a cross-sectional view of the workpiece 200 and machining operations 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.

[0058] A workpiece 200 is shown with the same holes 202 and 204 as in Figure 2. Also, as in the previous description, the machining operation involves first machining hole 202, then repositioning the tool to the top of hole 204 to machine hole 204. The computation 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 Figure 8, the objective is to compute a time-optimal collision-free trajectory from hole 202 to hole 204.

[0059] 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 (a 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 the point 820 is a simple matter, given the 3D spatial definition of the trajectory 230 and a mathematical representation of the obstacle 810 (such as by a CAD solid model). The obstacle 810 may have any arbitrary shape, and merely for the sake of clarity of the drawing, the "wall" shaped obstacle shown in FIG. 8 is used.

[0060] The following is a description of the calculation of the time-optimal collision-free trajectory 830. After the calculation of 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 particular 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.

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

[0062] 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 up through waypoint 2, dramatically overshooting the edge of the workpiece 200 before looping back down to waypoint 3. Such a trajectory is clearly not sufficient for a number of reasons. Thus, 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.

[0063] 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 between X2 and X3 (the x distance), and ΔZ is similarly defined using the z coordinates of waypoints 2 and 3.

[0064] The time-optimal collision-free trajectory for the entire multi-step maneuver is calculated using the following logic: First, it is important to realize 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 as that described above for the 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 then the variable waypoint states are optimized to find the minimum overall time to complete the multi-step maneuver.

[0065] For the scenario of FIG. 8, the position and velocity states of the waypoints are defined as follows: [Table 2]

[0066] 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 , are known. 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.

[0067] FIG. 8 depicts a very short obstacle 810, in which 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 where 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 when passing waypoint 2. This knowledge may 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 of a complete multi-step move.

[0068] Both Figures 7-8 depict an obstacle placed closer to the destination (second hole) than the origin (first hole) of the trajectory. Thus, the corresponding trajectory calculation involves variable speed states at waypoint 2 preceding the known state at waypoint 3. A situation may arise where an obstacle is placed closer to the origin (first hole) than the destination (second hole). This situation requires two adjustments to the above-mentioned approach. First, the critical point (the point used to determine waypoint 2) is placed on the approaching side of the obstacle instead of the leaving side. Second, an initial estimate of the speed 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.

[0069] The above description of Figures 7-8 describes a technique for calculating a time-optimal non-collision trajectory for a tool in a multi-step drilling operation as depicted in Figure 1, the method being equally applicable to a multi-step general machining operation as 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 where an obstacle interferes with the time-optimal trajectory, whether the obstacle is hit while leaving a first machining feature (e.g., a hole) or while approaching a second machining feature. The technique can also accommodate situations where the obstacle is short enough to allow the calculated trajectory to have a vertical component of velocity when passing through the obstacle, and where the obstacle is tall enough that the best time-optimal non-collision trajectory is at its highest point when passing through the obstacle. As previously described in the description of Figure 3, in addition to the horizontal (x) and vertical (z) movements, a 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.

[0070] 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. Additional waypoints may be added for other reasons in addition to collision avoidance as well.

[0071] The original time-optimal trajectory (without additional waypoints) is V at waypoint 1 in Figures 2 and 7-8. exit It is recalled that the method may include intermediate waypoints having 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 affects the horizontal movement in V. exit All of these interdependencies result in the need to change the value of V exit There is no method to calculate the optimal value of V (which results in the smallest overall time for a multi-step operation). exit To determine the optimum value of V exit Select the initial value of V exit Calculate all of the steps of the movement plan using and determine the total time span, V exit It is then necessary to perform an iterative calculation which involves selecting a new value for , and repeating the calculation until the minimum total time is found.

[0072] 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.

[0073] As part of a general method description of 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 calculations to identify optimal values ​​of the variable velocity states that result in the minimum overall time are further described below.

[0074] 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 to determine values ​​for all variable waypoint states that generate a time-optimal collision-free trajectory.

[0075] In box 902, 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 holes), path shapes and cut depths (for milling), workpiece material and / or feed rates of the operation, 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 made 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 states, such as

[0076] 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 additional waypoints are shown inside box 910.

[0077] At 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. The obstacles may have any shape and multiple obstacles may be present in the workspace. Obstacles may also be provided by parts of the workpiece shape itself. Instead of or in addition to physical obstacles, interference zones (geometric regions or zones where no part of the robot / machine or tool is allowed to enter) may be defined. Obstacles and interference zones are collectively referred to as obstacles. At box 922, it is determined whether the time-optimal trajectory from box 904 interferes with the obstacles from box 920. This is a simple calculation using the trajectory and the 3D shape of the obstacle. At decision diamond 924, if there is no trajectory-obstacle collision, the process ends at endpoint 926 and the previously calculated trajectory is used for the machining operation.

[0078] 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.

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

[0080] As mentioned above, there is no method to directly calculate 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 where a waypoint needs 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 the one depicted in Figure 5B.

[0081] One approach for computing an initial estimate of the velocity state of waypoint 2 is a heuristic that first computes a horizontal movement profile (from waypoint 1 to waypoint 3 using the seven-step calculation of the jerk constraints described above) and then computes a vertical movement profile based on the horizontal movement timing at waypoint 2. This approach uses 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 most suitable initial estimate of the velocity state of waypoint 2.

[0082] 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 needs to be slowed down from a time-optimal horizontal profile to time the vertical movement according to constraints on maximum velocity / acceleration / jerk. This results in an interdependency between horizontal and vertical movements, including the possibility that the best overall time for a multi-step operation may include small trajectory overshoot in the horizontal direction.

[0083] 10A, 10B, and 10C show diagrams of obstacle-avoiding trajectories depicting concepts related to an approach for determining an initial estimate 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 of relevant position and velocity information.

[0084] 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 a complete stop at waypoint 1050.

[0085] FIG. 10C shows an additional waypoint 1080 with a large residual horizontal velocity V x 10 is a diagram 1070 of an obstacle avoidance scenario in which it is possible to have a multi-step trajectory 1090 that significantly overshoots the next waypoint in the x-direction, thereby requiring more time in the final step of the movement to return the tool center point to the top of the hole being drilled.

[0086] An ideal initial estimate of velocity states at an intermediate waypoint (e.g., waypoint 1050 or 1080) would not require the tool center point to a complete stop at the waypoint, but would 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 states.

[0087] 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 is at 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 through waypoint 1010 has components V s,x and V s,z V with s The distances in the x and z directions from waypoint 1010 to waypoint 1020 are S x and S z As previously mentioned, Figure 10A is shown in two dimensions for clarity, however the rate state calculations described herein may be performed in all three dimensions.

[0088] In the scenario of FIG. 10A, the tool center point may be accelerating or decelerating as it reaches the 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 acceleration profile of the jerk constraint is depicted in phases I-III, and the deceleration profile of the jerk constraint is depicted in phases V-VII. In the above 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 constraint velocities at intermediate waypoints 1010 in each coordinate direction, for which a trajectory can reach waypoint 1020 with the required velocity boundary conditions.

[0089] 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 Assuming a distance S to move, at decision diamond 1104, the jerk-constrained S-type acceleration / deceleration move is (A max 3) have a flat central section and a trapezoidal acceleration profile (such as in stages I-III and V-VII of FIG. 3) or max This determines whether the triangle has a 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 acceleration of the linear increase / decrease in a jerk-constrained move (i.e., a triangular acceleration profile) with no constant acceleration step. e , S, and J max The value calculated in box 1106 is output in box 1108 to indicate the 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 ) is used in box 930 of FIG.

[0090] 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 acceleration of the linear increase / decrease in a jerk-constrained movement with 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 value of and the maximum speed V dictated by the machine limits max From box 1112, V s The value of is output in box 1108.

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

[0092] The scenario of Figures 10A-10C and the waypoint state calculation method described above with respect to Figure 11 are similar to the above-mentioned example, where the intermediate waypoint is located closer to the waypoint at the top of the hole to be drilled (the second hole), the end speed state is known, and the objective is to calculate the starting speed V s,x and V s,zThe opposite scenario can be envisioned, where the intermediate waypoint is placed closer to the waypoint at the top of the first hole (which has already been drilled and has the 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 in the manner described above with respect to Figures 10A-10C and 11.

[0093] Returning to Figure 9, after the initial values ​​of velocity states 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.

[0094] Following the first example of calculating a trajectory in box 932, an iterative loop is established in which new values ​​of the states of the variables (e.g., V exit , and state velocity for waypoint 2 (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, resolving intermediate waypoint states (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 is reached. Each trajectory is also subject to boundary condition constraints (e.g., -V at waypoint 3, feed are evaluated to ensure that certain conditions (e.g. vertical speed) are met.

[0095] 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 that are 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.

[0096] 5B and 8 where all other conditions are fixed (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, taking into account fixed velocity conditions such as the x and z velocity conditions at waypoint 2, i.e., 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 is observed that when the function is constructed with the function V = 0, the resulting plot surface has a bowl shape that is concave upwards. 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 the optimum.

[0097] 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 the plot surface 1210 has the bowl shape described above.

[0098] 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 FIG. 9. When a complete trajectory is generated (e.g., for all four steps of the move in FIG. 8), the total cycle time t is the sum of the times for all of the trajectory segments.

[0099] Next, the speed V x,2 and V z,2 Given an algorithm that calculates the total cycle time as a function of , the gradient descent method calculates the velocity vector (v=[V x,2 , V z,2]) is used to iteratively evaluate the impact of the gradient descent method on the speed of the vehicle and follow the gradient towards a lower cycle time. The first iteration uses a trajectory calculated with an initial guess for the 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 a function of V x,2 and V z,2 t, the optimum value of 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 value if surface 1210 is well-performed.

[0100] FIG. 12 depicts the gradient descent concept in a 3D graph that can be easily visualized, although 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 is calculated using three variable intermediate waypoint velocity states (V x,2 , V z,2 , and V exit ), and a gradient descent technique may 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.

[0101] 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 is exitand is used to find the optimal values ​​of 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.

[0102] 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 the convergence criterion ε. The initial values ​​for the variable waypoint state velocities may be provided as described above with respect to FIGS.

[0103] In box 1304, a complete trajectory is generated for the multi-step operation using the initial waypoint state values ​​v0 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 ) is calculated in box 1306 as (1), 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, the local value of the gradient ∇ is established and subsequent iterations estimate the velocity vector for the next iteration (v) according to equation (1). k+1 ) is calculated using the gradient value. The updated velocity vector is then subjected to a 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 limitations or application requirements.

[0104] At decision diamond 1308, it is determined whether any termination criteria have been met. One termination criterion is the degree to which the (term α∇F(v k The first is whether the change in the iteration time (computed by the norm of t) is less than a convergence criterion ε, in which case the gradient descent calculation has converged to an optimal solution (minimum total cycle time t). Another termination criterion is whether the number of iterations has reached a predefined maximum.

[0105] 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.

[0106] 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 computed therefrom.

[0107] At this point, in the flowchart of Figure 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 a trajectory-obstacle collision. In this case, the trajectory used is the time-optimal non-collision trajectory calculated (optimized) in box 932. If, at decision diamond 924, there is no trajectory-obstacle collision, the process ends at endpoint 926 and the time-optimal non-collision trajectory calculated in box 932 is used for the machining operation.

[0108] The gradient descent method of optimizing intermediate waypoint velocity states to minimize the total time of a multi-step maneuver can also be applied in 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.

[0109] 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 the tool movement during the machining operation. The calculations of the flow charts of Figures 6, 9, 11, and 13 may be performed in the controller itself or in a separate computer, which then provides the calculated movement program to the controller.

[0110] In a typical embodiment in which 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.

[0111] In addition to the advantages achieved by calculating time-optimal trajectories for machining operations, there are also opportunities for improved machine tool programming methods that simplify programming for users and allow for time-optimal trajectories with non-static waypoints calculated in the manner described above. Below is a description of a method for programming a machine tool move plan 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 without stopping at a specified cutting feedrate.

[0112] One example of an improvement opportunity for machining operation programming can be found in Figures 5A and 5B discussed above. Figure 5A shows a conventional programming approach for a milling operation, where a 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 feed 5B shows an improved programming approach for the milling operation, 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 workpiece 550, where the air-cutting step trajectory is such that the cutting bit accelerates to the cutting speed (V feed ) to reach waypoint 562 with a horizontal speed of 0.01 m and a vertical speed of zero.

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

[0114] Figure 14A is an illustration of a multi-step drilling operation performed using a conventional motion planning method, and Figure 14B is an illustration 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 having multiple holes drilled 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.

[0115] In the conventional programming method of FIG. 14A, the cutting bit 1410 first feed) to drill the first hole. 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 illustrative effect only. The dashed lines in trajectory step 1420 designate the cutting move, while the solid lines in trajectory step 1430 designate the air-cutting move.

[0116] 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-cut 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

[0117] In the time-optimal move programming method of FIG. 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), the cutting bit is then moved 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 trajectory step 1470 which is the drilling of the second hole.

[0118] In a conventional programming method, the tool stops at each waypoint, a trajectory for each movement step is calculated individually, and the waypoint preceding the cutting step must be defined a distance away from the workpiece to allow time and space for the cutting bit to accelerate to the cutting speed. In an improved time-optimal programming method, the tool does not stop at intermediate waypoints, the trajectory for the air-cut step is combined with at least one other step to calculate a time-optimal multi-step trajectory, and the 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.

[0119] FIG. 15A is a diagram of a two-step machining operation performed using a conventional programming and motion planning method, 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.

[0120] In Figure 15A, a cutting bit (not shown) performs a machining operation on a workpiece 1500. The machining operation in this example is a milling operation, i.e., milling a small amount of material on the top surface of the 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 a current location (waypoint 1510) to a 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 a point P2 (waypoint 1530) having coordinates (X2, Y2, Z2) in a cutting step 1522.

[0121] Conventional programming methods require that a two-step operation be programmed as two steps. The first step 1512 has a command format as follows: "ACT, X1, Y1, Z1", where "ACT" is the air cut command and (X1, Y1, Z1) are the end coordinates. The second step 1522 has a command format as follows: "CUT, X2, Y2, Z2, FF", where "CUT" is the cutting command, (X2, Y2, Z2) are the end coordinates and FF are the (V feed The second step is the cutting speed (also known as the tool center point 1520). In a conventional programming method, the tool center point would stop at waypoints 1520 and 1530, and the two steps would have their trajectories calculated separately. This requires that point P1 (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 of the second step. A similar deceleration distance 1526 is required before point P2 (waypoint 1530).

[0122] Techniques are known in the art to instruct the controller to overlap the first step 1512 with the second step 1522, 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 the overlap of adjacent steps is applied, the resulting blended trajectory will not pass through the prescribed waypoint.

[0123] The techniques of the present disclosure overcome problems known to arise with existing methods by combining programming steps into a single command to calculate a multi-step trajectory that ensures that intermediate waypoint state boundary conditions are satisfied.

[0124] In Fig. 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 a current location (waypoint 1560) to a 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 a point P2 (waypoint 1580) having coordinates (X2, Y2, Z2) in a cutting step 1572. Using the improved programming method of Fig. 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 Fig. 15A.

[0125] 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 and 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.

[0126] The improved programming method of FIG. 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 may now be defined at actual feature points on the workpiece). In addition, the improved programming method calculates an integrated trajectory for a 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 shown by dashed line 1564 to reach waypoint 1570 at a velocity condition appropriate for cutting step 1572, cutting step 1572 does not have unnecessary extra distance added to cutting step 1572 as cutting step 1522 of FIG. 15A did.

[0127] 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 steps may have any arbitrary orientation in the work cell 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 the 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.

[0128] The command "A_C" is of course simply an example of a programming command; an actual machine tool programming language 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. Additionally, 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 over the next hole in another air cutting step. This example requires the trajectory to pass through waypoint 1452, but gives the freedom to optimize the vertical velocity of the bit as it exits the hole in order to minimize the overall trajectory time.

[0129] In all of these cases, fewer programming command lines are required, there is no need to estimate artificial waypoint locations, 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.

[0130] 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 for milling operations, an example of which is described below.

[0131] 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 method of the present disclosure.

[0132] 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 certain 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 requires that the waypoint be defined a distance away from the workpiece 1600 to allow time and space for acceleration and deceleration, as previously described. The tool center point stops at waypoint 1612 and then air cuts to waypoint 1614 following 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.

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

[0134] 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 certain 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 being some offset distance away as in the conventional method of Fig. 16A. A start point 1652 is defined away from the workpiece 1650, which is a staging location where the cutting bit starts.

[0135] In the improved programming and time-optimal trajectory calculation method of FIG. 16B, the air-cut and cutting 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 a cutting motion from waypoint 1660 to the 3D coordinate of waypoint 1662 at cutting speed "FF", followed by an air-cut at maximum possible speed (jerk-constrained acceleration profile) to the 3D coordinate of waypoint 1660. This type of command was detailed above in connection with FIG. 15B. The combined command then calculates a trajectory to reach waypoint 1660 at cutting speed without stopping, as described.

[0136] 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 defines the bit to reach 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.

[0137] 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.

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

[0139] 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 in accordance with an embodiment of the present disclosure.

[0140] In box 1702, a description of a multi-step operation is provided that includes at least two steps and three waypoints. The information provided in box 1702 is what a programmer needs to know to create a movement program for the machine tool. For example, this includes the 3D coordinates of the top and bottom of a hole to be drilled, or 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 listed explicitly.

[0141] At box 1704, a move program is written by the user, including writing a single command that combines an air-cut step and another step, where the other step can be either an air-cut or a cutting step. When air-cut and cutting steps are combined into a single command, they can appear in either order (i.e., air-cut 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-cut step, then cutting step), the 3D coordinates of the first waypoint, the 3D coordinates 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.

[0142] At 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 described extensively above, including calculating a trajectory for a combined two-step operation, where the states of the intermediate waypoints (waypoints connecting a first step to a 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.

[0143] The time-optimal trajectory is used by the machine controller to control the machine tool to perform the multi-step motion, at box 1708. Typically, several motions are included in a single machine tool move program, and a complete move program may include several of the two-step motion commands interlaced together with other commands.

[0144] The disclosed time-optimal machine tool move programming method offers several advantages over conventional programming methods. It 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 for the programming user and allows for combination of trajectory steps to reduce overall cycle time.

[0145] Various computers and controllers are described and suggested throughout the foregoing description. It should be understood that the software applications and modules of the computers and controllers are executed on one or more electronic computing devices having a processor and memory modules. In particular, this includes the machine controller and / or optional other computers described above. In particular, the processor in the controller or other computer is configured to perform the above-described time-optimal machine tool movement planning, including the method steps of Figures 6, 9, 11, 13, and 17, as well as the equations and other techniques described above.

[0146] While a number of preferred aspects and embodiments of the method for time-optimal machine tool movement planning and programming have been described above, those skilled in the art will recognize modifications, permutations, additions, and subcombinations thereof, and it is therefore intended that the following appended claims and the claims incorporated below be interpreted as including all such modifications, permutations, additions, and subcombinations as are within the true spirit and scope thereof.

Claims

1. 1. A method for machine tool move programming, the method comprising: Defining waypoints for a multi-step movement plan for machining operations to be performed on a workpiece by a machine tool, the waypoints including end waypoints for two consecutive steps, at least one of the steps being an air-cut step having degrees of freedom in the shape and speed of a trajectory of at least one of the steps; writing a single command line in a travel program that defines the two steps, the command line including a command type indicating whether each of the steps is an air-cut step or a cutting step, the three-dimensional coordinates of the end waypoint for each of the two steps, and a cutting feedrate if one of the steps is a cutting step; reading the travelling program by a computing device; calculating a combined trajectory for the two steps, generating, by the computing device, a trajectory of a tool center point for the multi-step motion plan, wherein the shape and speed of at least one of the air cutting steps are calculated to reduce a time of the combined trajectory; performing the machining operation using the trajectory by the machine tool; A method comprising:

2. The method of claim 1 , wherein the ending waypoint is located within or on the workpiece.

3. 2. The method of claim 1, wherein when one of the steps is a cutting step, the combined trajectory has a speed equal to the cutting feedrate at both ends of the cutting step, and the tool center point does not stop at a transition between the air cutting step and the cutting step.

4. 2. The method of claim 1, wherein if both of the steps are air-cut steps, then the state of the ending waypoint of a first step is changed in an optimization calculation to minimize the time of the trajectory for the two steps.

5. 5. The method of claim 4, wherein the optimization calculation includes iteratively modifying the condition of the end waypoint of the first step and generating a new combined trajectory until the condition of the end waypoint of the first step that results in the combined trajectory having a minimum total time is identified.

6. 6. The method of claim 5, wherein iteratively modifying the state of the end waypoint of the initial step and generating a new combined trajectory includes using a gradient descent method to identify the state of the end waypoint of the initial step that results in the minimum total time.

7. The method of claim 4 , wherein the conditions of the ending waypoint of the first step that are changed include speed conditions.

8. The method of claim 1 , wherein the machine tool is a multi-axis industrial robot or a multi-axis numerically controlled machine.

9. 2. The method of claim 1, wherein the machining operation is drilling one or more holes in the workpiece and the waypoints are top and bottom points on a centerline of the one or more holes, or the machining operation is milling one or more passes across the workpiece and the waypoints are start and end points on a centerline of the one or more passes.

10. 1. A method for machine tool move programming, the method comprising: Defining waypoints for a multi-step movement plan for machining operations to be performed on a workpiece by a machine tool, including end waypoints for two consecutive steps, said end waypoints being located within or on said workpiece, at least one of said steps being an air-cutting step having degrees of freedom in shape and speed of a trajectory of at least one of said steps; writing a single command line in a movement program that defines the two successive steps, the command line including a command type indicating whether each of the steps is an air-cut step or a cutting step, the three-dimensional coordinates of the end waypoints for each of the two successive steps, and a cutting feedrate if one of the steps is a cutting step; reading the travelling program by a computing device; calculating a combined trajectory for the two consecutive steps, generating by the computing device a trajectory of a tool center point for the multi-step motion plan, wherein the shape and speed of at least one of the air cutting steps are calculated to reduce a time of the combined trajectory, and when one of the steps is a cutting step, the combined trajectory has a speed equal to the cutting feedrate at both ends of the cutting step, and the tool center point does not stop at a transition between the air cutting step and the cutting step; performing the machining operation using the trajectory by the machine tool; A method comprising:

11. 11. The method of claim 10, wherein if both of the steps are air-cut steps, a state of the end waypoint of a first step is changed in an optimization calculation to minimize the time of the trajectory for the two consecutive steps, the optimization calculation including iteratively modifying the state of the end waypoint of the first step and generating a new combined trajectory using gradient descent until the state of the end waypoint of the first step that results in the combined trajectory having a minimum total time is identified.

12. A movement program for a machine tool, the movement program comprising: a single command line defining two successive steps in a machining operation, at least one of said steps being an air-cutting step with degrees of freedom in the shape and speed of the trajectory of at least one of said steps, said command line including a command type indicating whether each of said steps is an air-cutting step or a cutting step, three-dimensional coordinates of an ending waypoint for each of said two steps, and a cutting feedrate if one of said steps is a cutting step; The motion program is read by a computing device, the computing device generating a tool center point trajectory for the machining operation including calculating a combined trajectory for the two steps, and the shape and speed of at least one of the air cutting steps are calculated to reduce a time of the combined trajectory; The trajectory is a move program used by the machine tool to perform the machining operations on a workpiece.

13. The travel program of claim 12 , wherein the ending waypoint is located within or on the workpiece.

14. 13. The move program of claim 12, wherein when one of the steps is a cutting step, the combined trajectory has a velocity equal to the cutting feedrate at both ends of the cutting step, and the tool center point does not stop at a transition between the air cutting step and the cutting step.

15. 13. The travel program of claim 12, wherein if both of the steps are air-cut steps, then the state of the ending waypoint of a first step is changed in an optimization calculation to minimize the time of the trajectory for the two steps.

16. 16. The travel program of claim 15, wherein the optimization calculation includes iteratively modifying the condition of the ending waypoint of the initial step and generating a new combined trajectory until the condition of the ending waypoint of the initial step that results in the combined trajectory having a minimum total time is identified.

17. 17. The travel program of claim 16, wherein iteratively modifying the state of the ending waypoint of the initial step and generating a new combined trajectory includes using a gradient descent method to identify the state of the ending waypoint of the initial step that results in the minimum total time.

18. The travel program of claim 15 , wherein the conditions of the ending waypoint of the first step that are changed include a velocity condition.

19. The method of claim 12, wherein the machine tool is a multi-axis industrial robot or a multi-axis numerically controlled machine.

20. 13. The travel program of claim 12, wherein the machining operation is drilling one or more holes in the workpiece and the waypoints are top and bottom points on a centerline of the one or more holes, or the machining operation is milling one or more passes across the workpiece and the waypoints are start and end points on a centerline of the one or more passes.

Citation Information

Cited By

  • Control device and computer-readable storage medium

    JP7908545B1