Quick movement drilling method

By optimizing the motion plan and intermediate waypoint status of the air cutting step, the problems of long cycle time and collision avoidance in hole drilling operations were solved, achieving time optimization and efficiency improvement.

CN120645034APending Publication Date: 2025-09-16FANUC LTD
View PDF 1 Cites 0 Cited by

Patent Information

Application Number
CN202510296479.6
Authority / Receiving Office
CN · China
Patent Type
Applications(China)
Current Assignee / Owner
Priority Date
2024-03-14
Filing Date
2025-03-13
Publication Date
2025-09-16

AI Technical Summary

Technical Problem

Existing technologies are unable to optimize the total cycle time of multiple trajectories during hole drilling operations, and are unable to effectively avoid collisions between the tool and the workpiece or obstacles, resulting in low machine tool efficiency.

Method used

The time-optimal motion plan of the air cutting step is calculated to enable the drilling tool to reach the top of the hole with appropriate axial feed rate and rotation speed, optimize the intermediate waypoint states, and fuse the steps without stopping the tool motion. The gradient descent method is used to optimize the trajectory to avoid collisions.

Benefits of technology

It optimizes the time of hole drilling operations, reduces cycle time, improves the efficiency of machine tools, and effectively avoids collisions between tools and workpieces or obstacles.

✦ Generated by Eureka AI based on patent content.

Smart Images

  • Figure CN120645034A_ABST
    Figure CN120645034A_ABST
Patent Text Reader

Abstract

A method for machine tool motion control determines a time-optimal motion plan for a hole drilling step leading by an air cutting step. A motion plan for the air cutting step is calculated such that the drilling tool reaches the top of the hole to be drilled at an appropriate axial drilling feed speed and an appropriate drilling rotation speed. First, a plurality of durations of the air cutting step are calculated for transverse and axial transit motion and spindle acceleration under maximum effort conditions. Then, the longest duration of the plurality of durations is used to plan the air cutting step, where the execution time with the maximum machine effort limits the axis motion, and the other axes have their motion planned to be completed simultaneously with the longest duration axis. The techniques may be applied to an air cutting step prior to or between a drilling step.
Need to check novelty before this filing date? Find Prior Art

Description

CROSS-REFERENCE TO RELATED APPLICATIONS

[0001] This application is a continuation-in-part of U.S. utility patent application serial number 18 / 491,107, filed on October 20, 2023, entitled Rapid Motion Planning for Machine Tools. Technical Field

[0002] The present disclosure relates generally to the field of machine tool motion control and, in particular, to a method for machine tool motion planning that determines a time-optimal motion plan for a hole drilling operation by coordinating a spindle speed profile with the spatial motion of the drilling tool, wherein an air cutting step is calculated so that the tool reaches the top of the hole to be drilled at an appropriate axial speed and an appropriate spindle rotational speed for drilling. Background Art

[0003] 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 numerical control (CNC) machines are used that move a tool along a three-dimensional path while maintaining a fixed spatial orientation. In other applications, multi-axis industrial robots are equipped with machining heads, and the robot is able to move a tool along a spatial path while also controlling the tool orientation to any desired value.

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

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

[0006] Furthermore, it is desirable to calculate the toolpath trajectory and velocity profile that provides the fastest possible cycle time for the overall machining operation in order to maximize machine productivity.Finally, it is absolutely essential to ensure that the toolpath trajectory is collision-free, that is, the tool and machine avoid collisions with the workpiece itself or with fixtures or any other obstacles in the workspace.

[0007] Techniques are known in the art that, given specified start and target positions, can calculate a trajectory and corresponding velocity profile that optimizes cycle time. However, these techniques cannot optimize the total cycle time for a multi-segment trajectory (e.g., a cut segment followed by an air cut segment and then another air cut segment). Furthermore, some trajectory calculation techniques cannot accommodate collision avoidance determinations in the trajectory calculation.

[0008] Other techniques exist that can incorporate collision avoidance determinations into trajectory calculations, but these existing techniques do not optimize cycle time. For example, one known approach monitors for collisions in real time and, if an impending collision is detected, stops the machine to prevent it. Another known approach requires precalculating multiple toolpath trajectories and selecting one of these predetermined trajectories for a particular operation based on the obstacle environment. Yet another approach uses imaging systems to detect potential collisions in real time and adjust the trajectory accordingly, but does so without optimizing the cycle time of the operation.

[0009] Furthermore, in current machine tool control methods for hole drilling, the machine tool moves the drilling tool to a staging position waypoint near the top of the hole and then begins bringing the spindle up to an appropriate rotational speed for drilling while the machine axially feeds the drilling tool to perform the drilling operation. Including the staging position waypoint increases the cycle time of the drilling operation, which is detrimental to machine tool efficiency.

[0010] In view of the foregoing, there is a need for an improved machine tool motion planning method that can minimize cycle time in a hole drilling operation that includes a multi-step operation with an air cutting step between each hole drilling step. Summary of the Invention

[0011] The present disclosure describes a method for machine tool motion control that determines a time-optimal motion plan for a hole drilling step preceded by a tool placement known as an air cutting step. The motion plan for the air cutting step is calculated so that the drilling tool reaches the top of the hole to be drilled at an appropriate axial drilling feed rate and an appropriate drilling rotational speed. First, multiple durations of the air cutting step are calculated for lateral and axial transit motions and spindle acceleration under maximum effort conditions. The air cutting step is then planned using the longest duration of the multiple durations, wherein the time-limited axis motion is performed at maximum machine effort and the other axes have their motion planned to be completed simultaneously with the longest duration axis. The technique can be applied to an air cutting step before the first drilling step or between two drilling steps.

[0012] Additional features of the presently 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

[0013] Figure 1 is a cross-sectional view of workpiece machining operations and the basic concepts involved in motion planning of said operations;

[0014] Figure 2 is the artifact and involves Figure 1 a cross-sectional view of a machining operation for two holes in the embodiment of the present invention and depicting a time-optimal trajectory for moving a tool from a first hole to a second hole;

[0015] Figure 3 including plots of position, velocity, acceleration, and jerk versus time for a jerk-limited motion profile as described in the summary above and as known in the art;

[0016] Figure 4 is as known in the art using conventional motion planning methods Figure 2 A graph of speed versus time for the 3-step machining operation shown in ;

[0017] Figure 5A is a graphical representation of a multi-step machining operation performed using conventional motion planning methods and the corresponding velocity versus time graph, and Figure 5B is a graphical representation of a multi-step machining operation performed using the time-optimal trajectory motion planning method of the present disclosure and a corresponding graph of velocity versus time;

[0018] Figure 6 is a flow chart of a method for time-optimal multi-step motion planning for a machine tool according to an embodiment of the present disclosure, the method using non-static intermediate waypoint states selected to minimize overall cycle time;

[0019] Figure 7 is an isometric view illustration of a workpiece machining operation according to an embodiment of the present disclosure, wherein a tool path trajectory is to be determined that provides a minimum cycle time while also avoiding obstacles in the path;

[0020] Figure 8 According to an embodiment of the present disclosure Figure 2 a cross-sectional illustration of a workpiece and machining operations where obstacles interfere with the time-optimal trajectory, and computing a new collision-free trajectory through additional waypoints;

[0021] Figure 9 is a flow chart of a generalized method for time-optimal collision-free machine tool motion planning according to an embodiment of the present disclosure;

[0022] Figure 10A 、 10Band 10C are diagrams of obstacle avoidance trajectories depicting concepts involved in techniques for determining an initial estimate of velocity state at an intermediate waypoint, in accordance with an embodiment of the present disclosure;

[0023] Figure 11 is a flow chart of a method for determining an initial estimate of velocity state at an intermediate waypoint for use in time-optimal collision-free machine tool motion planning according to an embodiment of the present disclosure;

[0024] Figure 12 is a three-dimensional graph of a function relating machining operation cycle time to velocity states of intermediate waypoints in a trajectory, illustrating how a gradient descent method is used to find an optimum value for velocity according to an embodiment of the present disclosure;

[0025] Figure 13 is a flow chart of a gradient descent method for optimizing velocity state values ​​of intermediate waypoints used in time-optimal collision-free machine tool motion planning according to an embodiment of the present disclosure;

[0026] Figure 14A is an illustration of a multi-step drilling operation performed using traditional motion planning methods, and Figure 14B is a diagrammatic representation of a multi-step drilling operation performed using the time-optimal trajectory motion planning method of the present disclosure;

[0027] Figure 15A is an illustration of a two-step machining operation performed using traditional programming and motion planning methods, and Figure 15B is a diagrammatic representation of a two-step machining operation performed using the improved programming and time-optimal trajectory motion planning methods of the present disclosure;

[0028] Figure 16A is an illustration of a multi-pass milling operation performed using conventional programming and motion planning methods, and Figure 16B is a diagrammatic representation of a multi-pass milling operation performed using the improved programming and time-optimal trajectory motion planning methods of the present disclosure; and

[0029] Figure 17 is a flow chart 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;

[0030] Figure 18 is an illustration of a machine tool drilling operation executed using a conventional motion planning method, including an air cutting step to a rally point where the tool is paused before drilling begins while initiating synchronization of the spindle speed and the axial speed;

[0031] Figure 19is an illustration of a machine tool drilling operation performed using an improved motion planning method according to an embodiment of the present disclosure, including a synchronized air cutting step that combines spindle speed and tool tip spatial motion;

[0032] Figure 20 is a graph of servo speed and spindle speed versus time for the air cutting step and the drilling step of a basic machine tool drilling operation according to an embodiment of the present disclosure, illustrating the coordination and synchronization of servo and spindle speed control;

[0033] Figure 21 and 22 including graphs of servo speed and spindle speed versus time for an air cutting step between two drilling steps of a general machine tool drilling operation, illustrating coordination and synchronization of servo and spindle speed control for two different cases constrained by time limits, in accordance with an embodiment of the present disclosure; and

[0034] Figure 23 is a flow chart of a time-efficient motion planning method for hole drilling by a machine tool according to an embodiment of the present disclosure, wherein axial and rotational speeds for drilling are established during an air cutting step that precedes the drilling step. DETAILED DESCRIPTION

[0035] The following discussion of the disclosed embodiments of the rapid motion drilling method is merely exemplary in nature and is in no way intended to limit the disclosed apparatus and techniques or their applications or uses.

[0036] Figure 1 is a cross-sectional view of a workpiece machining operation and the basic concepts involved in motion planning of said operation. It is provided as a basis for describing the type of machining operation which is the subject of the present disclosure. Figure 1 The workpiece 100 is typically held in a fixed position by a fixture or fixture, and the workpiece 100 is machined by a tool 110 having a tip 112. The tool 110, which may be a drill or milling cutter, for example, is operated by a program-controlled machine (not shown), which may be a CNC machine or a multi-axis industrial robot. Figure 1 In the examples shown and discussed throughout this disclosure, tool 110 has a fixed orientation (ie, Figure 1 Always vertical as seen in the image; not tilted).

[0037] Figure 1 The machining operation depicted in FIG is drilling two holes - hole 102 and hole 104 - into workpiece 100. For illustrative purposes, holes 102 and 104 are shown as having been drilled. First, tool 110 is generally as shown in FIG. Figure 1 It is positioned as shown, moves vertically downward until it contacts the workpiece 100, and drills a hole 102 in a known manner.

[0038] The remaining steps of the operation - moving the tool 110 out of the hole 102, moving the tool 110 into position at the top of the hole 104, and then drilling the hole 104 - are the subject of this disclosure. The first step of this operation is to move the tip 112 of the tool 110 from a waypoint at the bottom of the hole 102 to the top of the hole 104. Move upward along path 120 to waypoint {circle around (1)} at the top of hole 102. Since no material is being cut, tool 110 can move upward as fast as possible (eg, maximum acceleration until maximum speed is reached) in the first step.

[0039] The second step of the operation is to move the tip 112 of the tool 110 from waypoint ① at the top of the hole 102 along a path 130 (shown as a general shape) to waypoint ② at the top of the hole 104. Because the tool 110 moves through air, this repositioning step can also be performed as quickly as possible (adhering to the mechanical limitations of the machine). The following discusses the technique for calculating the time-optimal trajectory of the path 130. The final step of the operation is to drill the hole 104 by moving the tip 112 of the tool 110 downward from waypoint ② at the top of the hole 104 along a path 140 to waypoint ③ at the bottom of the hole 104. As is known in the art, when drilling the hole 104, the tool 110 cannot be moved faster than the prescribed feed rate, depending on the material of the workpiece 100 and other factors.

[0040] More than two holes may be drilled in the workpiece 100, in which case the tool path motion described above would be repeated successively for each hole. Figure 1 Simple two-dimensional tool motion is shown, but motion in the third dimension ("entering and exiting the paper") can be included, as shown in subsequent figures and discussed below. Additionally, Figure 1 A drilling operation is depicted using the tool 110 as a drill bit. It should be understood that the disclosed machine tool motion planning techniques are equally applicable to other types of machining operations, such as milling using an end mill or side mill, etc. Thus, other types of features (in addition to holes) can be machined.

[0041] Figure 2 is the artifact and involves Figure 1 A cross-sectional view of a machining operation showing two holes in a first hole and depicting a time-optimal trajectory for moving a tool from a first hole to a second hole. Figure 2 The discussion of provides an explanation of the computation of a time-optimal trajectory including waypoints and their corresponding state conditions in the absence of any obstacles. Figure 1 The workpiece 100 corresponds to. Figure 2, the machining operation involves using a tool (not shown) to drill or excavate two holes, including hole 202 and hole 204. After machining hole 202, the goal is to reposition the tool and machine hole 204 as quickly as possible. This involves moving the tip of the tool vertically upward away from hole 202, moving the tip of the tool along a time-optimal trajectory 230, and then machining hole 204. Waypoints ①, ② and ③ have the same Figure 1 The same definition in .

[0042] The machine tool or robot performing the machining operation has mechanical constraints and other conditions defined as follows. feed is the speed in the vertical (z) direction used when the tool is cutting the material, i.e. machining the hole 204. max It is the maximum permissible speed / velocity of the tool in the vertical (z) or horizontal (x) direction when the tool is moving through the air, i.e. when the tool is repositioning rather than machining. max is the maximum permissible acceleration of the tool in the vertical (z) or horizontal (x) direction when the tool is being relocated. A maximum jerk J is also usually defined for machine tools. max (rate of change of acceleration).

[0043] In order to minimize the cycle time of the machining operation, the following boundary conditions are applied to each step. In ①), the tool moves upward in the z direction while the x position remains fixed. This upward motion in the first step starts from rest and J is applied. max Until you reach A max , and with A max Continue until you reach V max Or until the upward velocity needs to start to be reduced to be compatible with the second step (trajectory 230). The vertical velocity when reaching point ① is V exit , which, depending on the distances ΔZ and ΔX and other factors, can be less than or equal to V max . V exit The value of and how to relate it to the overall time-optimal multi-segment trajectory are discussed later.

[0044] As discussed above, the first step in the machining operation is to accelerate straight up to V exit , which may be capped at a speed V max The third step is also at speed V feed A very straight, constant downward motion. The second step is more complicated by the interdependent x and z motions, resulting in Figure 2 The trajectory 230 is shown. The movement in the second step also depends on V exit , which creates a mutual dependence on the movement of the first step. There exists a Figure 2In addition to the maximum permissible jerk, these scenarios depend on the distance to be traveled (ΔZ and ΔX) and the corresponding maximum permissible velocity and acceleration (V max and A max The following is a discussion of techniques for computing the time-optimal motion profile of trajectory 230.

[0045] In the second step (trajectory 230 from ① to ②), V max 、A max and J max As a constraint, an x-axis "point-to-point" move is performed as fast as possible to traverse the distance ΔX. The point-to-point move involves a starting velocity of zero (in this case in the x-direction), and then includes the following seven phases of jerk-limited motion: I. Apply J max Until you reach A max Ⅱ. A max Continue until you get close to V max III. With -J max Reduce acceleration until V max Arrival at A=0 IV. In the absence of acceleration or jerk, V max continue V. Apply-J max To increase the negative acceleration until reaching -A max VI. With -A max Continue until close to V=0 VII. Apply J max To reduce the negative acceleration until A=0 and V=0 are reached at the destination position (waypoint ②).

[0046] Figure 3 Includes plots of position, velocity, acceleration, and jerk versus time for the jerk-limited motion profile as described in the overview above. The seven phases of the motion profile from the overview above are marked at Figure 3 The jerk graph 310 shows the jerk, which (in phase I) is expressed as J max Start, drop to zero, and further drop to -J max , back to zero, and down again to -J max , returns to zero again, and eventually (in phase VII) increases to J max The corresponding acceleration graph 320 shows an acceleration that starts at zero and ramps up to A in phase I. max , with A maxContinue, ramp down to zero, continue at zero, ramp down further to -A max , with -A max continues and ramps back to zero in phase VII. The corresponding velocity graph 330 shows the velocity, which starts at zero and increases in phases I-III to tend to stabilize at V max At V max Continues and decreases back to zero in phases V-VII. The corresponding position graph 340 shows the position (e.g., for Figure 2 The x position of the waypoint ①-② in the moving direction starts at zero and increases in an "S" shape until it reaches the same position as Figure 2 The distance ΔX corresponds to the end position.

[0047] The position, velocity and acceleration for each of the seven phases can be defined using known equations of motion. For example, the equation a1 = a0 + t1·J max The acceleration at the end of phase I (a1) is defined as the initial acceleration (a0), the duration of phase I (t1), and the maximum jerk (J max ). Similarly, the velocity at the end of phase I can be defined as a function of the initial velocity, initial acceleration, maximum jerk, and the duration of phase I (linearly related to acceleration and quadratically related to jerk). Continuing in this manner, the resulting set of polynomials includes 21 equations (seven equations each for position, velocity, and acceleration) and 31 variables (eight variables for position [p0-p7]; eight variables for velocity [v0-v7]; eight variables for acceleration [a0-a7]; seven variables for time [t1-t7]). Many boundary conditions can be applied to eliminate excess variables relative to the equations. For example, in the equations described above and in Figure 3 In the example shown in , the initial acceleration (a0) is known to be zero. Furthermore, the final velocity (v7) is known to be zero, and the final position (p7) is known to be a distance ΔX.

[0048] When all the boundary conditions are applied as described above, a system of 21 equations and 21 unknowns remains that can be solved. This results in the values ​​of all positions, velocities, and accelerations at the beginning and end of each phase, as well as the duration of each phase (i.e., the values ​​of t1-t7). When the values ​​of the duration of the seven phases are added together (t1+...+t7), this reveals the total time of the jerk-constrained minimum time motion profile. For Figure 2 The total time corresponds to the duration of the x-axis motion from waypoint ① to ②. During this time, the z-axis velocity changes from its value at waypoint ① (V exit , which is less than or equal to V max) is reduced to its required value at waypoint ② (-V feed ). Given the duration calculated from the x-axis motion, it is easy to calculate the acceleration required to cause this change in z-axis velocity.

[0049] Back to Figure 2 In the third step (from ② to ③), the tool moves in the z direction at a speed of -V feed The x position remains fixed while moving downward to machine the hole 204. Note that 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 required to be -V feed These boundary conditions are enforced during the optimization of the waypoint states in the multi-segment trajectory. This optimization is discussed below.

[0050] Table 1 below summarizes the Figure 2 The 3-step machining (drilling) operation depicted and described above is performed at the waypoint The states specified at each of ①, ② and ③. For each waypoint, the x-axis and z-axis positions and velocities that must be satisfied are defined in the table. The only unknown value in Table 1 is the vertical velocity (V) at waypoint ①. exit ). V exit The value of will be determined as discussed below. Table 1

[0051] As mentioned above and shown in Table 1, for Figure 2 The only unknown waypoint state of the 3-step motion is the vertical velocity (V exit ). Intuitively, it seems that V exit Should always be equal to V max However, this is not usually the case. For example, if the height (ΔZ) of the hole 202 is very small, the maximum acceleration will not reach V max When the outlet speed V exit A more interesting situation arises when affecting the time required to traverse trajectory 230 for step 2. This type of interdependency means that the truly time-optimal trajectory for a multi-segment motion can be computed simply by computing the motion for all segments and optimizing the states of the intermediate waypoints to minimize the overall time.

[0052] Still refer to Figure 2 , consider the geometry where the hole 202 is deep and the distance ΔX is short. In this case, if the exit velocity V exit Equal to V max , then the vertical deceleration in step 2 (from waypoint ①-②) will take more time than the horizontal translation in step 2. This means that if the exit velocity V at the end of step 2 isexit Less than V max , step 2 can be completed faster. This means that the movement of step 1 is no longer accelerated to V max The simple case is vertical acceleration, and the speed tends to stabilize at V max and then decelerates to the exit speed V exit This then becomes another example of the seven-stage jerk-limited motion profile described above. Furthermore, for both step 1 and the vertical calculation portion of step 2, the exit velocity V exit It is currently in an unknown state.

[0053] The above examples show that the time-optimal trajectory depends on the relative values ​​of the geometrical properties (ΔX and ΔZ) and their relationship to the mechanical limits of the machine tool (V max 、A max and J max ) and can usually only be determined by computing all steps of a multi-step motion simultaneously and optimizing the state of a common waypoint.

[0054] Traditionally, this has been ignored even for Figure 2 The example shown shows the complexity and interdependencies of trajectory calculation for the simple case. This is because conventional multi-step motion planning for machine tools (such as 3-axis milling cutters and articulated robots) requires the tool to stop between each step. From a programming perspective, this is a very simple solution, but it adds time to the completion of multi-step machining operations. This will be discussed further below.

[0055] The following is a traditional motion planning method Figure 2 The tool motion for a 3-step machining operation shown in FIG is a step-by-step discussion of the tool motion for the same 3-step machining operation using the time-optimal trajectory motion planning method of the present disclosure.

[0056] Figure 4 is as known in the art using conventional motion planning methods Figure 2 4. A graph 400 of speed versus time for a 3-step machining operation is shown in FIG. On the graph 400, a trace 410 plots the speed of the 3-step machining operation as shown in FIG. Figure 2, while trajectory 420 plots the speed of the cutting tool in the x (horizontal) direction. The speed is plotted relative to time measured on the horizontal axis. The first step of the machining operation is performed during the time span indicated at 430, wherein the first step is to lift the cutting tool upward and out of hole 202, terminating at waypoint ① shown at the end of the first step on graph 400. The second step is performed during time span 432, wherein the second step is to move the cutting tool horizontally directly above hole 204, terminating at waypoint ② shown at the end of the second step on graph 400. The third step is performed during time span 434, wherein the third step is to drill hole 204, terminating at waypoint ③ shown at the end of the third step on graph 400.

[0057] In the first step in time span 430, the conventional motion program moves the cutting tool upward at a positive z velocity and then ramps the z velocity back down to zero at waypoint ①, at which point the cutting tool stops. In the second step in time span 432, the conventional motion program moves the cutting tool upward at a positive z velocity and then ramps the z velocity back down to zero at waypoint ①, at which point the cutting tool stops. max Move the cutting tool at a positive x-speed and maintain the x-speed at V as long as necessary max , and then ramps the x-velocity back down to zero at waypoint ②. There is no vertical (z-axis) motion in the second step using the conventional motion program. In the third step in time span 434, again starting from rest, the conventional motion program accelerates the cutting tool downward to achieve -V feed and then maintain this z-direction speed to drill the hole 204 until reaching waypoint ③.

[0058] For the same three-step machining operation using the time-optimal trajectory motion 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 cutting step to complete the motion from the previous step. In the first step, the time-optimal trajectory motion of the present disclosure moves the cutting tool upward at a much higher speed than in the conventional motion programming of graph 400. This is possible because this motion profile does not return the z-velocity to zero during the first step. This means that the cutting head reaches waypoint ① faster than in the conventional method, and as a result, the first step of the disclosed method is completed in less time than the first step of the conventional method (time span 430). In the second step, the time-optimal trajectory motion of the present disclosure moves the cutting tool horizontally in the same fastest possible point-to-point motion as in the conventional method. Also during the second step, the cutting tool's z-velocity is reduced from a high positive value to a substantial negative value to return the cutting tool downward to the level of the workpiece surface. This z-axis motion can be completed during the x-axis motion without adding any time to the second step. The third step of the time-optimal trajectory motion of the present disclosure is essentially the same as in the conventional motion method, except that the time-optimal motion profile is expressed as z velocity-V feed The waypoint ② is reached and therefore no further acceleration is required at the beginning of the third step as in the conventional method. Therefore, the third step in the time-optimal motion method is slightly shorter than that in the conventional method.

[0059] Summarizing the above discussion, the time-optimal motion programming method of the present disclosure can shorten the duration of multi-step machining operations by optimizing motion across all steps, including optimizing intermediate waypoint states and not requiring the cutting tool to stop between steps. This same concept can be used to Figure 2 The specific example of drilling is extended to the broader application of general machining, which will be discussed below.

[0060] Figure 5A is a graphical representation of a multi-step machining operation performed using conventional motion planning methods and the corresponding velocity versus time graph, and Figure 5B is a graphical representation of a multi-step machining operation performed using the time-optimal trajectory motion planning method of the present disclosure and a corresponding graph of velocity versus time. Figure 5A and 5B The scenario is that a workpiece 500 (or 550) is to be machined by a cutting tool, the tip or tool center point of which is represented by a circle connected by an arrow. The cutting tool can be, for example, an end mill that mills a layer of material from the top of the workpiece 500 / 550.

[0061] exist Figure 5AIn a conventional motion planning method, the programming user defines four waypoints: 510, 512, 514, and 516. The tool center point of the cutting tool is pre-positioned at waypoint 510 before the machining operation begins. Starting from waypoint 510, the program specifies that the tool center point moves to waypoint 512 in an air cutting motion. This air cutting motion is performed as quickly as possible given the mechanical limitations of the machine tool (maximum speed, maximum acceleration, and maximum jerk). The program then specifies that the tool center point performs the cutting operation from waypoint 512 to waypoint 514. In a conventional motion planning method, waypoint 512 must be defined a certain distance away from the workpiece 500 to allow the cutting tool time to accelerate to the appropriate cutting speed (V) before the cutting tool encounters the workpiece surface. feed The same considerations must be made for the deceleration after the cutting operation and before reaching waypoint 514. The air cutting motion is then performed from waypoint 514 to waypoint 516, completing the 3-step machining operation.

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

[0063] exist Figure 5B In the time-optimal motion planning method, for Figure 5A For workpiece 550, which has the same shape and machining parameters as workpiece 500, the programming user defines four waypoints: 560, 562, 564, and 566. Before the machining operation begins, the tool center point of the cutting tool is pre-positioned at waypoint 560. Starting from waypoint 560, the program specifies that the tool center point moves to waypoint 562 in an air cutting motion. This air cutting motion is performed as fast as possible given the mechanical limitations of the machine tool (maximum speed, maximum acceleration, and maximum jerk). Because waypoint 562 is defined at the corner of workpiece 550, the tool center point of the cutting tool must be moved to the waypoint 562 with a horizontal speed V. feedThe program then executes the cutting operation from waypoint 562 to waypoint 564, specifying the tool center point. The air cutting operation is then performed from waypoint 564 to waypoint 566, completing the 3-step machining operation. As discussed earlier, the air cutting motion is performed at a horizontal velocity V feed Start and end with zero horizontal velocity, and perform vertical movements as fast as possible.

[0064] Graph 570 plots tool center point velocity versus time for a 3-step machining operation using the time-optimal motion programming method described above. In the first step, which has a time span 580, the tool center point accelerates downward and begins to move horizontally in an air cutting motion to waypoint 562, where the tool center point moves at a horizontal velocity V feed (590) without vertical velocity reaching horizontally. In the second step with time span 582, the tool center point moves with constant velocity V feed The cutting operation is performed until waypoint 564 is reached. In the third step with time span 584, the tool center point continues horizontally and accelerates upward in an air cutting motion to waypoint 566, where the tool center point stops. The 3-step machining operation using the time-optimal motion programming method takes a total elapsed time of approximately 0.94 seconds, which is approximately 10% faster than the conventional motion programming method. Figure 5B The time-optimal motion programming method of the present disclosure depicted in again can shorten the duration of multi-step machining operations by optimizing the motion (waypoint states) across all steps and not requiring the cutting tool to stop between steps.

[0065] Figure 6 600 is a flow chart of a method for time-optimal multi-step motion planning for a machine tool according to an embodiment of the present disclosure, the method using non-static intermediate waypoint states selected to minimize the overall cycle time. At block 602, data describing a multi-step machining operation is provided. This includes the 3D geometry of the workpiece, the tool start and end positions (before and after the machining operation, respectively), the hole position and depth (for drilling), the path shape and cutting depth (for milling), the workpiece material and / or the feed rate for the operation, and any other required information. The mechanical constraints of the industrial robot or machine tool are also provided at block 602 or built into the trajectory calculation algorithm.

[0066] At block 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, as well as the locations of one or more intermediate waypoints, where intermediate waypoints are waypoints that connect various parts of the overall machining operation. Figure 5B For example, waypoints 562 and 564 are intermediate waypoints. However, Figure 5B It can be simplified to a 2-step machining operation, where the first step is from the starting waypoint 560 to the intermediate waypoint 562, and the second step is from the intermediate waypoint 562 to the ending waypoint 564. In this case, there will only be one intermediate waypoint (562). Figure 2 and 4 In the example, waypoints ① and ② are intermediate waypoints.

[0067] At block 606, initial values ​​of the kinematic states of the one or more intermediate waypoints are calculated. It must be remembered that some of the intermediate waypoint states are fixed boundary conditions and cannot be changed. Figure 2 In the example, the x-velocity at waypoints ① and ② must be zero, and the z-velocity at waypoint ② must be -V. feed These conditions cannot be changed. However, the z speed (V exit ). As discussed earlier, V exit The value of V certainly affects the time of the first step of the motion plan, but if exit If a large value of causes too much vertical overshoot to be absorbed in the second horizontal step, it may also affect the timing of the second step. A generalized method for estimating the waypoint state without causing too much overshoot is discussed later. Figure 5B In the example, none of the intermediate waypoint states are changeable, because the tool center point must move at x speed V. feed and z speed zero to reach both waypoints 562 and 564 .

[0068] At block 608, the overall trajectory of the multi-step motion plan is generated using the waypoint positions (all known and fixed) and velocities (some fixed and some variable, with initial values ​​calculated at block 606). Generating the overall trajectory includes calculating the time-optimal motion in each direction based on the waypoint positions and states (velocities). If a particular step of the motion plan involves motion in more than one direction, such as Figure 2 The second step and Figure 5B In the first step, the time-optimal motion is calculated for the motion in each direction, and the longest duration is used as the time span of the step; the motion in other directions with shorter durations can then be recalculated to consume more or all of the time span of the step.

[0069] For example, in Figure 2 In the second step (trace 230), the 7-stage jerk-limited motion calculation discussed previously can be used to calculate the rapid point-to-point move in the x-direction, resulting in the duration of the x-motion. exit and final vertical velocity -V feedto calculate the motion profile in the z direction; this will result in the duration of the z motion. Whichever duration is longer (x or z) will define the time span of this step. Note that V exit affects the time span of the first step and can affect the time span of the second step. Therefore, V exit are intermediate waypoint states that can be adjusted to minimize the overall time of the 3-step motion plan. Figure 6 The method is discussed later in this paper.

[0070] In another example, Figure 5B In the first step, the horizontal distance in the x direction from waypoint 560 to waypoint 562 can be calculated, starting with zero velocity and moving at a horizontal velocity V feed The motion profile in the z direction can be calculated based on the vertical distance from waypoint 560 to waypoint 562, starting and ending at zero velocity, resulting in a duration of the z motion. Whichever duration is longer (x or z) will dictate the time span of the step. There is no time span that can be adjusted to Figure 5B The overall time of the 3-step motion plan is minimized at the intermediate waypoint states.

[0071] At decision diamond 610, a determination is made as to whether the trajectory calculated at block 608 is time optimal. If the variable intermediate waypoint states (e.g., Figure 2 V in exit ) affects the time span of one or more steps, the value of the intermediate waypoint state can be changed and the entire trajectory recalculated to determine whether a shorter total time can be achieved. This optimization and recalculation is performed at block 612, and the loop returns to block 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 will be discussed further below.

[0072] From decision diamond 610, when the overall time span of the motion plan (trajectory) is minimized, or when there are no variable intermediate waypoint states, a time-optimal trajectory for the multi-step motion plan is output at block 614. The time-optimal trajectory includes motion in all directions for all steps, as discussed in detail with respect to the examples above.

[0073] Above about Figure 2 、 4The calculations described in , 5B and 6 provide tool path motion that results in minimum cycle time for a multi-step machining operation, wherein the motion states at the waypoints connecting the steps (i.e., intermediate waypoints with non-zero speeds are allowed) are optimized to achieve minimum overall trajectory time. However, there are occasions where it is desired to add waypoints to a trajectory, for example, for the display of complex motion, or to avoid obstacles during movement of the machine tool. The techniques of the present disclosure can be extended to include first calculating a time-optimal trajectory in the manner described above, then adding waypoints and again optimizing the waypoint states to achieve minimum time for the overall trajectory including the additional waypoints. An example with additional waypoints is shown in the following figures and discussed below, where all speed states of the additional waypoints are variable, and iterative calculation of these intermediate waypoint states (along with any other variable intermediate waypoint states) is required in order to optimize the overall multi-step trajectory time.

[0074] Figure 7 is an isometric view illustration of a workpiece machining operation according to an embodiment of the present disclosure, wherein a tool path trajectory is to be determined that provides the shortest cycle time while also avoiding obstacles in the path. Figure 7-1 0 both depict examples of adding waypoints to a multi-step machining operation for obstacle avoidance and calculating a time-optimal trajectory that includes the additional waypoints. These examples include techniques for determining the locations of the additional waypoints for obstacle avoidance. However, it should be understood that waypoints can be added to a multi-step machining operation for reasons other than obstacle avoidance, and the disclosed techniques are used to determine a time-optimal trajectory that includes the additional waypoints.

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

[0076] No holes are shown in workpiece 700. It will be appreciated that a first hole has been machined at the left side of workpiece 700 and that the tool tip needs to be moved upward along path 720 and then repositioned (air cut) along trajectory 730 in order to machine a second hole at the right side of workpiece 700 along path 740. Waypoints ①, ② and ③ have the same meanings as discussed in the earlier figures, i.e. the top and bottom of the corresponding holes.

[0077] Figure 7is a three-dimensional illustration in which the x, y, and z directions are depicted on a spatial grid. In this example, the second hole (path 740) is offset from the first hole (path 720) in the y direction. Therefore, in tracing the path from point ① at the top of the first hole to point ② at the top of the second hole (when moving up and back down in the z direction), trajectory 730 must traverse both ΔX and ΔY. Calculation of the y coordinate in trajectory 730 is a simple matter because the y motion of the tool tip can be accomplished using an acceleration ramp up to speed and then ramp down in the y direction back to zero speed when reaching waypoint ②. After calculating the x, y, and z motions for this step, if the y motion has the longest duration, the motions in the other two directions can be replanned to use this time span, as discussed earlier.

[0078] About Figure 2 The trajectory 730 is calculated in the manner discussed above by changing V at waypoint ① exit The trajectory 730 is calculated to accommodate the y-direction offset just described. However, after being calculated in this manner, it is determined that the trajectory 730 interferes with the obstacle 710 in the area delineated by the ellipse 732. Therefore, a new trajectory must be calculated that moves from waypoint ① to waypoint ② as quickly as possible while avoiding collision with the obstacle 710. Techniques for calculating collision-free toolpath trajectories are known in the art, however, these techniques do not find a time-optimal collision-free trajectory. For example, a collision-free trajectory can be made to climb in the vertical direction until the obstacle is avoided and is therefore unnecessarily lengthy, or a multi-segment trajectory can be calculated that avoids obstacles but includes deceleration or stops at turning points or intermediate waypoints. These methods are not optimal.

[0079] The calculation of the time-optimal collision-free trajectory is accomplished using the following techniques of the present disclosure: after computing the time-optimal trajectory 730 excluding the additional waypoints, a critical point 734 is identified as the point on trajectory 730 that interferes with obstacle 710 that is closest to waypoint ②; then, a point 752 is defined that is a certain clearance distance vertically above critical point 734, and a new trajectory is calculated that uses point 752 as an additional waypoint (i.e., the new trajectory passes through point 752 on its path from point ① to point ②). The details of these calculations are discussed below, with the calculations adjusted to accommodate different scenarios with respect to obstacle size and location, each of which is illustrated in the remaining figures.

[0080] Figure 8 According to an embodiment of the present disclosure Figure 2 2. A cross-sectional illustration of a workpiece 200 and machining operations in which an obstacle interferes with the time-optimal trajectory and a new collision-free trajectory is calculated passing through additional waypoints. Figure 8The discussion provides an explanation of the computation of the time-optimal trajectory for the first obstacle scenario, including the adjustments to the waypoints and their corresponding state conditions, which are necessary to ensure the trajectory is collision-free.

[0081] Workpiece 200 is shown having hole 202 and hole 204, with Figure 2 Also as discussed earlier, the machining operation involves first machining hole 202, then repositioning the tool at the top of hole 204 and machining hole 204. The calculation of the time optimal trajectory 230 for a 3-step motion program (without additional waypoints for collision avoidance) was discussed earlier. Therefore, for Figure 8 In the scenario depicted in , the goal is to compute a time-optimal collision-free trajectory from hole 202 to hole 204.

[0082] In a similar Figure 7 In the scene, Figure 8 Obstacle 810 is included in the workpiece 200. Obstacle 810 may be part of the workpiece 200, or may be a separate object such as a tool or fixture. Figure 2 The time optimal trajectory 230 is again in Figure 8 , and it can be seen that trajectory 230 interferes with obstacle 810. Point 820 (critical point) is calculated as the point on trajectory 230 that intersects (interferes with) obstacle 810 closest to the end of trajectory 230. Given the 3D spatial definition of trajectory 230 and a mathematical representation of obstacle 810 (e.g., from a CAD solid model), calculation of the coordinates of point 820 is a simple matter. Obstacle 810 can have any arbitrary shape; Figure 8 The "wall" shaped obstacles shown are for clarity of the drawing only.

[0083] The following is a discussion of the calculation of the time-optimal collision-free trajectory 830. After calculating the time-optimal trajectory 230, point 832 is calculated, which will be the waypoint in trajectory 830. In a preferred embodiment, point 832 is located vertically directly above point 820, offset in the z-direction by a certain distance. The offset distance of point 832 above point 820 can 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.

[0084] Using the calculated coordinates of point 832, the waypoints of the time-optimal collision-free trajectory 830 are defined as follows: As previously defined, the waypoints and ① are at the bottom and top of hole 202 , respectively; point 832 is now defined as waypoint ②, which is an intermediate waypoint with a variable state; and waypoints ③ and ④ are at the top and bottom of hole 204 , respectively.

[0085] If traditional machine tool path motion generation algorithms are used to use waypoints If a trajectory is calculated from waypoint ① to ④, the results are unpredictable. In one such example, a trajectory is calculated that starts upward from waypoint ①, descends back into workpiece 200, then proceeds upward and passes through waypoint ②, significantly overshooting the end of workpiece 200 before looping back and descending to waypoint ③. Such a trajectory is clearly unsatisfactory for a number of reasons. Therefore, a multi-step technique is needed that calculates a time-optimal collision-free trajectory 830 with desired shape characteristics based on waypoint state boundary conditions.

[0086] for Figure 8 For the obstacle scenario, the following notation is defined: X2 is the x-coordinate of waypoint ②, X3 is the x-coordinate of waypoint ③; ΔX is the difference (x-distance) between X2 and X3; similarly, ΔZ is defined using the z-coordinates of waypoints ② and ③.

[0087] The time-optimal collision-free trajectory for the entire multi-step operation is calculated using the following logic. First, it is important to realize that the complete multi-step operation now consists of five waypoints connected by four steps or segments. However, the time-optimal trajectory for the complete operation can be calculated in a manner similar to that discussed earlier for the 3-step operation with four waypoints. That is, an initial estimate is made for all variable waypoint states; then, each trajectory segment is calculated using the (fixed and variable) waypoint states, and the overall time to complete the multi-step operation is determined; finally, the variable waypoint states are optimized to find the minimum overall time to complete the multi-step operation.

[0088] for Figure 8 In the scenario, the waypoint position and speed status are limited to the following: Table 2

[0089] In Table 2, all waypoint positions are known and most of the velocity states are known and fixed. Only the velocity V exit 、V x,2 and V z,2 The three speeds can be varied to minimize the overall time for the four-step operation. Heuristic methods can be used to determine the initial values ​​for the three variable speed states, and search-based and / or optimization-based methods can be used to determine the optimal values ​​for the three variable speed states (to achieve the minimum overall time), all of which are discussed below.

[0090] Figure 8A relatively short obstacle 810 is depicted, and in this scenario, the time-optimal collision-free trajectory is already on its downward path when waypoint ② is reached. Another scenario is possible in which a tall obstacle is located near the second hole (hole 204). In this case, the time-optimal collision-free trajectory may have its highest point located at or near waypoint ②; in other words, when passing through waypoint ②, the velocity in the z direction will be zero or close to zero. This knowledge can be used when determining an initial estimate of the velocity state at waypoint ②. The final value of the state at waypoint ② will be determined in a manner discussed later, such as an optimization calculation that finds the minimum total time for the time-optimal collision-free trajectory of the complete multi-step operation.

[0091] Figure 7-8 Both show an obstacle located closer to the destination (second hole) than the starting point of the trajectory (first hole). Therefore, the corresponding trajectory calculation involves a variable speed state at waypoint ②, which precedes the known state at waypoint ③. It may be the case that the obstacle is located closer to the starting point (first hole) than the destination (second hole). This situation requires two adjustments to the techniques discussed earlier. First, the critical point (the point used to determine waypoint ②) is on the approaching side of the obstacle rather than the departing side. Second, an initial estimate of the speed state at waypoint ② is made by approximating the trajectory from waypoint ① to waypoint ②, rather than the trajectory from waypoint ② to waypoint ③ as described above.

[0092] Figure 7-8 The foregoing discussion describes the methods for calculating Figure 1 The technique for time-optimal collision-free trajectory of a tool in a multi-step drilling operation as described in Figure 5B The multi-step typical machining operation depicted. The technique is defined as first computing a time-optimal trajectory for the machining operation, and then adapting to any situation where an obstacle interferes with the time-optimal trajectory, whether encountered when leaving a first machining feature (e.g., a hole) or when approaching a second machining feature. The technique is also capable of adapting to situations where the obstacle is short enough to allow the calculated trajectory to have a vertical component of velocity as it passes over the obstacle, and situations where the obstacle is so tall that the best time-optimal collision-free trajectory is at its highest point as it passes over the obstacle. As discussed earlier in Figure 3 As mentioned in the discussion of , in addition to horizontal (x) and vertical (z) motion, motion in another horizontal direction (y) may be required to reach the second hole; this y motion can be calculated to be completed during the time span of the xz trajectory.

[0093] As described throughout the foregoing discussion, calculation of 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 traverse obstacles, and calculating the time-optimal collision-free trajectory using the original time-optimal trajectory and the additional waypoints. Additional waypoints may also be added for reasons other than collision avoidance.

[0094] It will be recalled that the original time-optimal trajectory (without the added waypoints) may include a trajectory with a trajectory such as Figure 2 and 7 -V at waypoint ① in 8 exit Intermediate waypoints of variable state such as V exit The value of affects the motion in the vertical (z) direction in both steps 1 and 2 of the motion plan. Therefore, it may affect the time to complete step 2, which will affect the horizontal motion in step 2, which may require changing V exit As a result of all these interdependencies, V cannot be calculated using closed-form calculations. exit To determine the optimal value of V exit The optimal value of (resulting in the minimum overall time for the multi-step operation) requires an iterative calculation, including the selection of V exit The initial value of V exit Count all steps of the motion plan and determine the total time span, select V exit The new value of and repeat the calculation until the minimum total time is found.

[0095] 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). These additional variable states (e.g., V x,2 and V z,2 ) represents an unknown number, which adds more variable interdependencies to the calculation of the motion plan in each direction for each segment. Again, the only way to handle these complex, highly nonlinear variable interdependencies is to select initial values ​​for the variable velocity states and then perform iterative calculations of the entire multi-step motion plan, which ultimately identifies the optimal values ​​for the variable velocity states that result in the minimum overall time span for the multi-step motion plan.

[0096] As part of a discussion of a general method for computing time-optimal trajectories for multi-step motion plans with additional waypoints, both the selection of initial values ​​for the variable velocity states and the iterative computation of identifying optimal values ​​of the variable velocity states that result in the minimum overall time are discussed further below.

[0097] Figure 9is a flow chart 900 of a generalized method for time-optimal collision-free multi-step machine tool motion planning according to an embodiment of the present disclosure. Figure 6 A method for calculating the time-optimal trajectory of a multi-step machining operation is defined, but Figure 9 An additional intermediate waypoint (waypoint ②) with variable velocity states is included, along with an iterative loop that determines the values ​​of all variable waypoint states that result in a time-optimal collision-free trajectory.

[0098] At block 902, data describing a multi-step machining operation is provided. This includes the 3D geometry of the workpiece, the tool start and end positions (before and after the machining operation, respectively), the hole location and depth (for drilling), the path shape and depth of cut (for milling), the workpiece material and / or feed rate of the operation, and any other required information. The mechanical limitations of the industrial robot or machine tool are also provided at block 902 or built into the trajectory calculation algorithm. At block 904, a time-optimal trajectory is calculated for the multi-step machining operation without additional waypoints, such as with respect to FIG. Figure 6 The calculations performed in block 904 include Figure 6 Everything after block 602 (calculating the trajectory of the multi-step operation and optimizing one or more intermediate waypoint states, such as V exit ).

[0099] At block 910 (large dashed box), waypoints are added to the original set of waypoints defining the multi-step machining operation. Waypoints can be added manually or automatically for any purpose. One specific example is adding waypoints for collision avoidance; that is, modifying the time-optimal trajectory calculated at block 904 to avoid obstacles. The steps for applying the collision avoidance of the additional waypoints are shown within block 910.

[0100] At block 920, obstacle data for the machining operation workspace is provided. This includes data such as Figure 7 The obstacle 710 shown in FIG. Figure 8 Obstacles such as obstacles in the workspace. Obstacles can be of any shape and there can be more than one obstacle in the workspace. Obstacles can also be provided by various parts of the workpiece geometry itself. Instead of or in addition to physical obstacles, interference regions (geometric areas or regions that no part of the robot / machine or tool is allowed to enter) can be defined. Obstacles and interference regions will be collectively referred to as obstacles. At box 922, it is determined whether the time-optimal trajectory from box 904 interferes with the obstacle from box 920. This is a simple calculation using the 3D geometry of the trajectory and the obstacles. At decision diamond 924, if there is no trajectory-obstacle collision, the process ends at end point 926 and the previously calculated trajectory is used for the machining operation.

[0101] When a trajectory-obstacle collision is detected, the position of a new waypoint is calculated at block 928. Techniques for calculating new waypoint positions to avoid obstacles were previously described, including calculating a critical interference point and establishing a new waypoint at an offset distance from the critical point. If additional waypoints are to be added for reasons other than collision avoidance, the new waypoint positions are simply calculated or determined at block 928.

[0102] At block 930, an initial estimate of the velocity state of the additional waypoint is calculated. In one embodiment, V exit The initial estimate of V (which is the variable waypoint velocity state in the overall multi-step machining operation) is set equal to V from the time-optimal trajectory calculated at block 904. exit Therefore, at block 930, only the velocity state of the additional waypoint ② (e.g., V x,2 、V z,2 ) is an initial estimate of .

[0103] As discussed earlier, it is not possible to directly calculate the velocity state at waypoint ② that will result in the minimum overall time for the multi-step machining operation. However, it is possible to calculate an initial estimate of the velocity state at the waypoint. The following discussion continues to focus on Figure 7-8 The example shown in - a multi-step drilling operation where waypoints need to be added for collision avoidance. It will be appreciated that Figure 9 All steps of , including intermediate waypoint state estimation, are generally applicable to multi-step machining operations such as Figure 5B The operations described in .

[0104] One method for calculating an initial estimate of the velocity state for waypoint ② is a heuristic method that first calculates the horizontal motion profile (from waypoint ① to waypoint ③) (using the jerk-limited seven-stage calculation discussed earlier) and then calculates the vertical motion profile based on the horizontal motion timing at waypoint ②. This method produces a velocity at waypoint ② (e.g., V x,2 、V z,2 However, depending on the geometric conditions (e.g., the height and horizontal position of obstacles), the heuristic method may not provide the most appropriate initial estimate of the velocity state of waypoint ②.

[0105] Consider, for example, the case where a tall obstacle exists immediately adjacent to the second hole. In this case, it's impossible to move the tool tip vertically from waypoint ② to waypoint ③ (large ΔZ) in the short time it takes for a small ΔX horizontal motion. Therefore, the horizontal motion must be slowed down from the time-optimal horizontal profile to allow time for the vertical motion, subject to the constraints on maximum velocity / acceleration / jerk. This creates an interdependency between the horizontal and vertical motions, including the possibility that the optimal overall time for the multi-step operation may include a small trajectory overshoot in the horizontal direction.

[0106] Figure 10A 、 10B 10C are diagrams of obstacle avoidance trajectories that illustrate concepts involved in techniques for determining initial estimates of velocity states at intermediate waypoints, in accordance with embodiments of the present disclosure. Figure 10A include Figure 8 A simplified graphical representation 1000 of an obstacle avoidance trajectory of the type shown (the original time-optimal trajectory modified to avoid obstacles by adding waypoints), and an enlarged portion annotated with relevant position and velocity information.

[0107] Figure 10B 1040 is an illustration of an obstacle avoidance scenario in which an additional waypoint 1050 is defined as being static, i.e., the tool center point stops along the trajectory at waypoint 1050. This results in a multi-step trajectory 1060 without any overshoot in the x-direction, but trajectory 1060 is unnecessarily slow due to the complete stop at waypoint 1050.

[0108] Figure 10C is a diagram 1070 of an obstacle avoidance scenario in which an additional waypoint 1080 is allowed to carry a large residual horizontal velocity V x (A continuation of the motion from the trajectory before waypoint 1080.) This results in a multi-step trajectory 1090 that significantly overshoots the next waypoint in the x-direction, requiring more time in the last step of the motion to return the tool center point to the top of the hole to be drilled.

[0109] An ideal initial estimate of the velocity state at an intermediate waypoint (e.g., waypoint 1050 or 1080) does not require a complete stop of the tool center point at the waypoint, but does not carry too much residual horizontal velocity that would cause a large overshoot. The technique described below provides such an initial estimate of the velocity state at the waypoint.

[0110] Reference again Figure 10A , waypoint 1010 corresponds to Figure 8 This is an additional waypoint with a variable speed state. Similarly, waypoint 1020 corresponds to Figure 8Waypoint ③; this is the top of the hole to be drilled, so the tool center point must be at a speed of zero in the x-direction and -V in the z-direction feed Arrives at waypoint 1020. For the purposes of this calculation, the velocity of the trajectory when it reaches waypoint 1020 is denoted by V e Similarly, the velocity of the trajectory when passing through waypoint 1010 is marked as V s The starting velocity, which is composed of the component V s,x and V s,z The distances from waypoint 1010 to waypoint 1020 in the x and z directions are S respectively. x and S z As mentioned earlier, for the sake of clarity, Figure 10A Shown in two dimensions, but the velocity state calculations described here can be performed for all three dimensions.

[0111] exist Figure 10A In the scenario of , when the tool center point reaches the intermediate waypoint 1010, it may be accelerating or decelerating. The S-type acceleration / deceleration control model can be applied to the above scenario, thereby defining the equation that can be solved to determine V s,x and V s,z Expected value of . Return reference Figure 3 , the jerk-limited acceleration profile is depicted in stages I-III, and the jerk-limited deceleration profile is depicted in stages V-VII. Figure 3 In the earlier discussion of , a set of polynomial equations was described that relate the position at the end of each phase to the duration of the phase, the maximum jerk, and the velocity and acceleration values ​​at the end of the phase (each of which has its own polynomial equation). These same equations can be used to calculate the jerk-limited velocity at the intermediate waypoint 1010 in each coordinate direction for which the trajectory can reach the waypoint 1020 with the required velocity boundary conditions.

[0112] Figure 11 is a flow chart 1100 of a method for determining an initial estimate of velocity state at an intermediate waypoint for use in machine tool motion planning according to an embodiment of the present disclosure. For each coordinate direction (e.g., x and z; or x, y, and z) Figure 11 After starting at 1102, given Figure 10A The ending speed V shown e and travel distance S, it is determined at decision diamond 1104 that the jerk-limited S-type acceleration / deceleration motion will have a trapezoidal acceleration profile (at A max has a flat central portion, such as Figure 3I-III and V-VII) or a triangular shape (never reaching A max This is done by calculating S in a given coordinate direction (e.g., S x ) is greater than reaching A max If not, then at block 1106, the V in a jerk-limited motion with a linear increase / decrease in acceleration and no constant acceleration phase (ie, a triangular acceleration profile) is used. e , S and J max To calculate the starting velocity in a particular direction (e.g., V s,x The value calculated at block 1106 is output at block 1108 and used as the starting velocity in a particular direction (e.g., V s,x ). In addition, this value (for example, V s,x )exist Figure 9 The box 930 is used as one of the various speed states (eg, V x,2 ) is an initial estimate of .

[0113] If the answer is yes at decision diamond 1104, then at block 1110, the V in jerk-limited motion with a linear increase / decrease in acceleration and a constant acceleration phase between the increase and decrease phases (i.e., a trapezoidal acceleration curve) is used. e , S, A max and J max To calculate the starting velocity in a particular direction (e.g., V s,x Then, at block 1112, by taking the V calculated at block 1110 s value and the maximum speed V dictated by the machine limitations max The minimum value of V s The final value of V from block 1112 s The value of is output at box 1108.

[0114] Based on the jerk-limited motion calculation discussed earlier Figure 11 The flowchart can be adapted to handle deceleration scenarios (where V s >V e ) or accelerated scenarios (where V s <V e ). In addition, it can be adapted to give V s , S, A max and J max To calculate V e .

[0115] Figures 10A-10C The scene and the above about Figure 11The waypoint state calculation method described is that 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 purpose is to calculate the starting speed V which is a variable waypoint speed state s,x and V s,z The opposite scenario can be envisaged, where the intermediate waypoint is located closer to the waypoint at the top of the first hole (which has already been drilled and the tool is being withdrawn), with a starting speed V s is the V at the top of the first hole exit , and the ending speed V e has a component V that needs to be determined e,x and V e,z In either scenario (the obstacle is closer to the first or second hole), the tool center point can be accelerating or decelerating when it reaches the intermediate waypoint. Figures 10A-10C The calculation of the intermediate waypoint velocity states for any of these scenarios is performed in the manner discussed in 11 .

[0116] Return to Figure 9 After determining the initial values ​​of the velocity state for the new waypoint at block 930, a trajectory for the multi-step operation is generated at block 932. The overall trajectory for the multi-step motion plan is generated using the waypoint positions (all known and fixed) and velocities (some fixed and some variable with initial values ​​calculated at block 930). Generating the overall trajectory includes calculating the time-optimal motion in each direction based on the waypoint positions and state (velocities). The trajectory generation at block 932 is similar to that described earlier in Figure 6 The trajectory generation at block 608 is performed except for Figure 9 In , the trajectory includes additional waypoints such as Figure 8 The example shown in has five waypoints and four steps or trajectory segments.

[0117] After computing the first instance of the trajectory at block 932, an iterative loop is established in which the variable states (e.g., V exit and the state speed of waypoint ② (V x,2 , V z,2 )) and calculate the new trajectory. This iterative loop includes determining at decision diamond 934 whether the total loop time has been optimized (which can only be determined after several loops and depends on the convergence criteria), and if not, modifying the intermediate waypoint states (e.g., V exit 、V x,2 and V z,2), then recalculate the trajectory of the multi-step operation using the additional waypoints and determine the total cycle time. This continues until the total cycle time t reaches a minimum value determined by the convergence criterion, or the maximum number of iterations is reached. Each trajectory is also evaluated to ensure that the boundary condition constraints (e.g., vertical velocity at waypoint ③ -V feed wait).

[0118] At least two different techniques can be used to implement the optimization loop between blocks 932 and 936. One approach is to use a sampling method to test V exit The value of and the state speed of waypoint ② (i.e., V x,2 、V z,2 ), which are slightly above and slightly below the previously used values, and determine whether a valid trajectory with a shorter total cycle time (which satisfies the boundary conditions) can be found. Another approach is to implement a gradient descent optimization algorithm as discussed below.

[0119] consider Figure 5B and 8 Example of a two-dimensional trajectory where all other conditions are fixed (waypoint positions such as V feed The fixed velocity state and the mechanical constraints of the robot or machine tool) should be recognized that the cycle time t of the trajectory of the complete multi-step operation is a function of the x and z velocity states at waypoint ②. That is, t = F (V x,2 , V z,2 ), where t is the distance from the waypoint The total cycle time of the trajectory to waypoint ④. If the cycle time t is plotted on the vertical axis and the speed V x,2 and V z,2 If we construct a three-dimensional graph of this function on the horizontal axis, we will observe that the resulting plot surface has an upward concave bowl shape. In other words, the cycle time t is x,2 and V z,2 is at its minimum value near an optimal combination, and when any speed (V x,2 、V z,2 or both) moves away from the optimal value, the cycle time t increases.

[0120] Figure 12 A three-dimensional graph 1200 is a function that relates machining operation cycle time to state speeds at intermediate waypoints in a trajectory, illustrating how a gradient descent method can be used to find the optimal value for speed, according to an embodiment of the present disclosure. Graph 1200 is a plot of the aforementioned function F, with the total trajectory cycle time t plotted on the vertical axis against the speeds at waypoint ② on the horizontal axis, and a plot surface 1210 having the aforementioned bowl shape.

[0121] An efficient way to find the minimum cycle time is to use gradient descent. First, a computational algorithm is provided that generates a complete trajectory of multiple steps given the velocity states of the waypoints. This is done in Figure 9 When generating (e.g., for Figure 8 When a complete trajectory (including all four steps of the movement) is taken, the total cycle time t is the sum of the times of all trajectory segments.

[0122] Then, given the speed V x,2 and V z,2 The algorithm to calculate the total cycle time uses a gradient descent method to iteratively evaluate the velocity vector (v = [V x,2 , V z,2 ]) on the cycle time and follows the gradient towards lower cycle time. The first iteration uses a trajectory calculated using an initial estimate of the velocities at the intermediate waypoints, using Figure 11 The initial estimate is determined using the method of . Each subsequent iteration uses a trajectory calculated using the intermediate waypoint velocities determined from the gradient (discussed further below). Iterations continue until the gradient converges to a predetermined convergence criterion or a predetermined maximum number of iterations is reached. The optimization path followed by the gradient descent method is shown as Figure 12 Curve 1220 in Fig. 1220 is idealized because it follows two smooth straight line paths to V x,2 and V z,2 In practice, curve 1220 may be somewhat jagged and may meander near the bottom of surface 1210, but if surface 1210 is well behaved, it will converge to the optimum.

[0123] Although Figure 12 The gradient descent concept is depicted on a 3D graph that can be easily visualized, but it will be appreciated that the concept can be extended to additional dimensions. In particular, a time-optimal trajectory with additional waypoints for a multi-step operation may have three variable intermediate waypoint speed states (V x,2 、V z,2 and V exit ), and gradient descent techniques can be applied to find the combination of all these waypoint velocity states that results in the minimum total time to complete the multi-step operation. The implementation of the gradient descent method in the machine tool motion planning method is discussed below.

[0124] Figure 13 is a flow chart 1300 of a gradient descent method for optimizing state boundary condition values ​​of intermediate waypoints used in time-optimal collision-free machine tool motion planning according to an embodiment of the present invention. Figure 13 The flowchart 1300 is implemented in the optimization loop of the above blocks 932-936. Figure 8 In the example, the gradient descent method is used to find the optimal value of the x and z speeds at waypoint ② and V exit For the purpose of this example gradient descent algorithm, the velocity vector to be optimized is defined as v = [V exit , V x,2 , V z,2 ].

[0125] Inputs to the gradient descent algorithm are provided at block 1302. The inputs include the maximum number of iterations and the convergence criterion ∈ and a variable waypoint state velocity (V exit 、V x,2 、V z,2 The initial value of the variable waypoint state speed may be provided as described above with respect to Figures 10 and 11.

[0126] At block 1304, the initial waypoint state value v0 of the first iteration is used to generate a complete trajectory for the multi-step operation (k is an iteration counter). At block 1306, the updated iteration of the velocity vector v is calculated as: where v k+1 is the updated iteration, v k is the previous iteration of the velocity vector v, α is the step size, is the gradient of the function F relating time to the velocity vector (t = F(v)) At each iteration, the function F is evaluated based on the total cycle time t. At each iteration, the gradient The local value of , and subsequent iterations will use the value of the gradient to calculate the next iteration of the velocity vector (v according to equation (1) k+1 ). The updated velocity vector is then limited by the clamp function: v k+1 =Clamp(v k+1 , v min, v max )∈[v min , v max ] 2) where v min and v max Is the speed limit defined by system mechanical limitations or application requirements.

[0127] At decision diamond 1308, a determination is made as to whether any termination criteria have been met. One termination criterion is (by item The gradient descent calculation is then terminated by determining whether the change in the velocity vector from one iteration to the next (calculated by the norm of ) is less than a convergence criterion ∈. If so, the gradient descent calculation has converged to the optimal solution (minimum total loop time t). Another termination criterion is whether the number of iterations has reached a predetermined maximum.

[0128] From decision diamond 1308 , if the termination criteria are not met, the process loops back to block 1304 to calculate another iteration of the velocity vector v and the corresponding trajectory and loop time.

[0129] When one of the various termination criteria is met, the process moves to block 1310 where the optimal value of the velocity vector (v k , from the most recent iteration), and the corresponding time-optimal collision-free trajectory calculated from it.

[0130] At this time, Figure 9 In the flowchart of FIG, the process uses the calculated trajectory from the last iteration of the gradient descent optimization and loops back to block 922 to check for trajectory-obstacle collisions. In this case, the trajectory being used is the time-optimal collision-free trajectory calculated (and optimized) at block 932. At decision diamond 924, if there is no trajectory-obstacle collision, the process ends at endpoint 926 and the time-optimal collision-free trajectory calculated at block 932 is used for the machining operation.

[0131] The gradient descent method used to optimize the velocity state at intermediate waypoints to minimize the total time of multi-step operations can also be applied to Figure 6 In the loop between blocks 608 and 612 of FIG. 5 , the loop is a method for time-optimal trajectory calculation for multi-step operations without any additional waypoints.

[0132] As about Figure 2 、 5B As described in and 8 and elsewhere above, a complete tool motion program comprises a combination of several steps, including an air cutting step and a cutting step. The above-described technique enables the calculation of non-static intermediate waypoint states that optimize the overall cycle time of the complete multi-step operation. This complete motion program is used by the controller of the robot or machine tool to control the tool motion during the machining operation. Figure 6 、 9 The calculations of the flow charts of , 11 and 13 can be performed on the controller itself, or on another computer which then provides the calculated motion program to the controller.

[0133] In a typical embodiment where several machining operations are performed on each workpiece and the workpieces and obstacle environment are fixed in position in the workspace, the disclosed method can be used to pre-compute the time-optimal collision-free trajectory for each machining operation and then use the trajectory to perform the machining operations on many workpieces.

[0134] In addition to the benefits gained by computing time-optimal trajectories for machining operations, there are also opportunities to improve machine tool programming methods. The improved programming methods simplify programming for the user and also enable the calculation of time-optimal trajectories with non-static waypoints in the manner described above. The following is a discussion of a method for programming a machine tool motion plan that combines air cutting and cut commands into a single command and uses program points defined directly on the workpiece surface. The tool path is automatically calculated using a time-optimal trajectory that transitions from air cutting to cutting without stopping and at a specified cutting feed rate.

[0135] An example of an improvement opportunity for programming machining operations can be found in the earlier discussed Figure 5A and 5B Found in. Figure 5A A conventional programming technique for a milling operation is shown, wherein a waypoint 512 (at the end of the air cutting step and the beginning of the cutting step) is defined a distance from the workpiece 500 so that the cutting head can accelerate from rest at the waypoint 512 to the cutting speed (V feed ).on the contrary, Figure 5B An improved programming technique for a milling operation is shown, wherein a waypoint 562 (an intermediate waypoint at the end of the air cutting step and the beginning of the cutting step) is defined directly on a corner of a workpiece 550, wherein the air cutting step trajectory is calculated such that the cutting head moves at a horizontal speed (V feed ) and vertical speed is zero to reach waypoint 562.

[0136] As about Figure 5A and 5B The same concepts shown for milling operations can also be applied to other types of machining operations, such as drilling.

[0137] Figure 14A is an illustration of a multi-step drilling operation performed using traditional motion planning methods, and Figure 14B is a diagram of a multi-step drilling operation performed using the time-optimal trajectory motion planning method of the present disclosure. Figure 14A In FIG, a workpiece 1400 will have a plurality of holes drilled therein by a cutting head 1410. The cutting head 1410 is shown positioned over a first hole to be drilled, a second hole to the right of the first hole, and so on.

[0138] exist Figure 14AIn the conventional programming method, the cutting head 1410 first follows the trajectory step 1420 at the cutting speed (V feed ) to drill the first hole. Cutting head 1410 is then removed from the first hole by following trajectory step 1430 in an air cutting motion (as quickly as possible using a jerk-limited motion profile) and stopping at waypoint 1432. Trajectory step 1430 actually follows the same path as trajectory step 1420; the horizontal offset is shown for illustration purposes only. The dashed line of trajectory step 1420 represents the cutting motion, while the solid line of trajectory step 1430 represents the air cutting motion.

[0139] Then, from waypoint 1432 (at rest), the cutting head is moved from the top of the first hole to the top of the second hole along trajectory step 1440, which is also an air cutting motion. The cutting head 1410 stops at waypoint 1442 at a distance above the top of the workpiece 1400 to give the cutting head time to accelerate from rest to the cutting speed (V) before encountering the top of the workpiece 1400 on the next trajectory step. feed ) Allow time and space.

[0140] exist Figure 14B In the time-optimal motion planning method, which is zoomed in to focus on the upper portion of the first two holes, after drilling the first hole, the cutting drill bit 1410 is removed from the first hole by following trajectory step 1450 in an air-cutting motion (as quickly as possible using a jerk-limited motion profile) to waypoint 1452. Then, from waypoint 1452 (maintaining motion), the cutting head is moved from the top of the first hole to the top of the second hole along trajectory step 1460, also an air-cutting motion. When it reaches waypoint 1462, which is at the same level as the top of the workpiece 1400, the cutting head has a horizontal velocity of zero and a V of -V. feed The cutting head 1410 then proceeds to trajectory step 1470, which is the drilling of the second hole.

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

[0142] Figure 15A is an illustration of a two-step machining operation performed using traditional programming and motion planning methods, and Figure 15Bis an illustration of a two-step machining operation performed using the improved programming and time-optimal trajectory motion planning methods of the present disclosure.

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

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

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

[0146] The disclosed technique overcomes the problems of known prior art methods by combining multiple programming steps into a single command and calculating a multi-step trajectory that ensures that the intermediate waypoint state boundary conditions are met.

[0147] exist Figure 15B, the cutting head will perform a machining operation on the workpiece 1550. The cutting head 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 the current position (waypoint 1560) to point P1 (waypoint 1570) with coordinates (X1, Y1, Z1) in the air cutting step 1562, and then move the tool center point from the current position (waypoint 1570, P1) to point P2 (waypoint 1580) with coordinates (X2, Y2, Z2) in the cutting step 1572. Figure 15B The improved programming method can be directly on the corner of the workpiece 1550 instead of Figure 15A As in the conventional method, points P1 and P2 are defined at a certain distance away from the workpiece.

[0148] The improved programming method allows two-step operations 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 that instructs an air cut to the first waypoint followed by a 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, and the two steps have their trajectories calculated simultaneously, so that the tool center point reaches point P1 (waypoint 1570) with the desired state (in this example, zero vertical speed and FF (cutting speed) horizontal speed).

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

[0150] Figure 15B A simple two-dimensional example is shown, where the cutting step 1572 has a trajectory that moves entirely in a single coordinate direction (X), meaning that for the entire step (from P1 to P2), the vertical velocity is zero and the horizontal velocity V x =V feedIn a real-world example, a cutting step can have an arbitrary orientation in the work cell coordinate system. This can be handled by calculating the speed in each coordinate axis direction during the cutting step as the cutting speed "FF" multiplied by the ratio of the displacement along the axis for the cutting step. This is calculated as follows: Among them F i is the velocity component in the i direction (e.g., X direction), FF is the absolute cutting feed rate mentioned earlier, |Δ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.

[0151] Of course, the command "A_C" is merely an example of a programming command, and the 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. In addition, a command such as "A_A" may be used for a sequence of two air cutting steps, such as Figure 14B , where the drill head is removed 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 allows the flexibility of optimizing the vertical speed of the drill head as it leaves the hole in order to minimize the overall trajectory time.

[0152] In all of these cases, fewer programming command lines are required, no artificial waypoint positions need to be approximated, and the resulting combined trajectory is multiple steps faster than with traditional programming methods. Figure 14A / 14B multi-step drilling operation and Figure 15A In the example of a multi-step milling operation in / 15B, the improved motion programming method compared with the traditional method resulted in faster cycle times for multi-step trajectories using the improved programming command techniques and their combination.

[0153] The combination of multiple steps into a single programming command and the corresponding calculation of the time-optimal multi-step trajectory can also be applied to face milling operations. This example is discussed below.

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

[0155] exist Figure 16AIn FIG. 1 , a cutting head (not shown) will perform a multi-pass machining operation on the workpiece 1600, wherein the cutting head makes a plurality of repeated cutting passes on the workpiece 1600, each pass being offset from the previous pass by a certain distance. Figure 16A As shown, the cutting head must follow a trajectory including a turn after each stroke. The cutting head has a tool center point represented by waypoints 1610, 1612, 1614, 1616, 1618, etc. Starting from waypoint 1610, a cutting step is performed to waypoint 1612; this cutting step requires that the waypoint be defined a certain distance away from the workpiece 1600 to allow time and space for acceleration and deceleration, as discussed earlier. The tool center point stops at waypoint 1612 and then an air cut is performed to waypoint 1614 according to another command. As also discussed earlier, air cutting is performed using jerk-limited rapid acceleration / deceleration. The cutting step and air cutting step are repeated in sequence to waypoints 1616, 1618, etc. until the entire machining operation is completed.

[0156] exist Figure 16A In conventional programming and trajectory calculation methods, each cut step and each air cut step is a separate command, and the tool center point stops at each waypoint. As is known in the art, an overlap function can be used to blend two trajectory segments together, resulting in curved turn segments 1620 and 1622, etc. However, overlapping still requires that the waypoints be defined off the workpiece surface, and the offset distance must be estimated by the programming user. If the selected waypoint offset distance is too small, the tool center point path will begin to curve before the cutting of the workpiece material is completed, thereby ruining the workpiece. If the selected waypoint offset distance is too large, the tool center point will travel an unnecessarily long distance in the turn, and some of that distance will be at a low cutting speed.

[0157] exist Figure 16B In FIG. 1 , the cutting head will perform a multi-pass machining operation on the workpiece 1650 similar to the operation described above, wherein the cutting head makes multiple repeated passes on the workpiece 1650, each pass being offset from the previous pass by a certain distance. Figure 16B As shown, the cutting drill bit must follow a trajectory including a turn after each stroke. The cutting head 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 geometry of the workpiece 1650, rather than as Figure 16A The starting point 1652 is defined as being away from the workpiece 1650; this is the performance position at which the cutting head begins.

[0158] exist Figure 16BIn the improved programming and time-optimal trajectory calculation method, the air cutting step and the cutting step can be combined into a single command, and the time-optimal trajectory of multiple steps is calculated. Starting from the starting point 1652, a single command is written that specifies an air cut at the maximum possible speed (jerk-limited acceleration profile) to the 3D coordinate of waypoint 1660, followed by a cutting operation from waypoint 1660 to the 3D coordinate of waypoint 1662 at the cutting speed "FF". This type of command was previously combined with Figure 15B The combined command then calculates a trajectory to reach waypoint 1660 at cutting speed without stopping, as discussed.

[0159] The next command in the machining operation program will be: an air cut from waypoint 1662 to waypoint 1664, followed by a cut operation from waypoint 1664 to waypoint 1666. Because the cutting bit reached waypoint 1662 at cutting speed, and the upcoming air cut / cut command specifies that the cutting head reach waypoint 1664 at cutting speed, the resulting trajectory from waypoint 1662 to waypoint 1664 will have the shape indicated at 1680. Starting from waypoint 1666 at cutting speed, another combined air cut / cut command is provided to waypoint 1668 and continues to waypoint 1670, resulting in the trajectory shape indicated at 1682. This type of sequence continues until the machining operation is fully defined in the program.

[0160] Figure 16B The improved programming method 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 than the station-to-station conventional technique. Furthermore, the improved programming method allows waypoints to be defined directly on characteristic points of the workpiece, rather than at a distance from the workpiece that must be guessed and tested.

[0161] Those skilled in the art will be able to imagine other programming commands that combine more than two steps into a single command line. Figure 16B The entire multi-pass machining operation can be programmed in a single line with commands that specify an alternating sequence of air cutting steps and cutting steps and a sequential list of coordinates of waypoints 1660, 1662, 1664, 1666, 1668, etc.

[0162] Figure 17 is a flow chart 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.

[0163] At block 1702, a description of a multi-step operation is provided, including at least two steps and three waypoints. The information provided at block 1702 is what a programmer needs to know to create a motion program for a machine tool. For example, this would include 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., Figure 15B The 3D coordinates of points P1 and P2) and the cutting or feed speed are provided. The "current" position of the tool center point is used as the third waypoint, i.e., the starting point for the first step, although the current position does not need to be explicitly listed.

[0164] At block 1704, the user writes a motion program that includes writing a single command that combines an air cut step with another step, where the other step can be either an air cut step or a cut step. When the air cut step and the cut step are combined in a single command, they can occur in either order (i.e., air cut first, or cut first) as required by the requirements of the machining operation. The programming command includes a command type that specifies the sequence of the steps (e.g., air cut step, followed by cut step), the 3D coordinates of the first waypoint, the 3D coordinates of the second waypoint, and the cutting feed rate. Previously, for example, in Figure 15B An example of a command that defines a two-step operation is provided in the discussion of .

[0165] At block 1706, a time-optimal trajectory is calculated by a computing device such as a machine controller or a separate computer. The time-optimal trajectory is calculated in the manner broadly discussed above, including calculating a trajectory for a combined two-step operation where the states of the intermediate waypoints (the waypoints connecting the first step to the second step) are optimized to produce the shortest overall cycle time. All of this is discussed earlier, including using optimization techniques such as gradient descent to identify the optimal values ​​for the intermediate waypoint states.

[0166] At block 1708, the time-optimal trajectory is used by the machine controller to control the machine tool to perform a multi-step operation. Typically, several operations are contained in a single machine tool motion program, and a complete motion program may contain several combined two-step operation commands as well as other commands.

[0167] The disclosed method for programming time-optimal machine tool motions offers several advantages over conventional programming methods. The time-optimal programming method allows waypoints to be defined directly at physical features on the workpiece, eliminates tool stops at intermediate waypoints, and combines air cutting steps with other steps to calculate a time-optimal multi-step trajectory. The resulting programming format is more intuitive for the programming user and enables the combination of multiple trajectory steps to reduce overall cycle time.

[0168] The previous discussion points to machine tool motion planning and programming techniques for operations such as milling and drilling, where a cutting tool is used and the spindle speed can be kept constant over a series of cutting and air cutting steps. Additional challenges arise when considering hole drilling operations, where the spindle rotational speed must be synchronized with the tool's axial feed rate whenever the drilling tool is engaged in the hole. A technique is disclosed below that simultaneously considers the spindle speed profile and the tool's spatial motion profile and calculates a multi-step, time-optimal trajectory that coordinates the spindle speed and spatial motion while eliminating any unnecessary pauses in the motion.

[0169] Figure 18 is an illustration of a machine tool drilling operation executed using conventional motion planning methods, including an air cutting step to a rally point where the tool pauses before drilling begins and synchronization of the spindle and axial speeds is initiated. Figure 18 In FIG, a workpiece 1800 has an existing hole 1802. The hole 1802 is to be drilled in a thread drilling operation by a drilling tool 1810 gripped in the spindle of a machine tool (not shown). The drilling tool 1810 has a tool tip 1812, and the movement of the tool tip 1812 is controlled by a controller in communication with the machine tool.

[0170] Using conventional motion planning methods, tool tip 1812 is controlled to follow the trajectory in the five-step motion plan indicated at 1820. Motion plan 1820 defines the spatial trajectory of tool tip 1812 and the rotational speed of the spindle (and therefore the drilling tool 1810). In step ①, tool tip 1812 moves laterally from its current position to a position where it is axially aligned with hole 1802. In step ②, tool tip 1812 moves axially toward the top of hole 1802, but does not move all the way to the top, pausing at reference plane 1822. During steps ① and ②, which are air cutting steps, the spindle generally does not rotate.

[0171] In step ③, the tool tip 1812 is drilled in the axial direction (in Figure 18 The spindle is accelerated from standstill to the drilling feed rate ("down" in the figure), while the spindle is accelerated from zero rotational speed to the desired drilling rotational speed. As will be appreciated by those skilled in the art, the spindle rotational speed must remain proportional to the drilling feed rate, with the multiplication factor being determined based on the thread pitch (e.g., threads per inch, or threads per millimeter). The spindle rotation direction also depends on the type of thread being drilled, with step ③ requiring clockwise rotation (CW when viewed from the tool tip 1812 looking down into the hole 1802) for a typical right-hand thread.

[0172] Near the end of step ③, tool tip 1812 decelerates axially from the drilling feed speed to zero speed, while the spindle proportionally decelerates from the desired drilling rotational speed to zero rotational speed. These decelerations are coordinated so that the desired proportional relationship between spindle rotational speed and tool axial feed speed is always maintained. At step (or point) ④, tool 1810 has zero axial speed and zero rotational speed, preparing to extract tool 1810 from hole 1802.

[0173] In step 5, the tool tip 1812 is accelerated from rest to the drilling feed speed in the axial withdrawal direction ("upward"), while the spindle is accelerated from zero rotational speed to the desired drilling rotational speed in the opposite rotational direction to that in step 3. Step 5 brings the tool tip 1812 upward out of the hole 1802, generally back up to the reference plane 1822, from which the next drilling operation can be planned and executed.

[0174] It should be understood that in real-world operations, the axial drilling / extraction direction (the direction of steps ②, ③, and ⑤) does not need to be in the vertical direction. The words "up / upward" and "down / downward" in the previous discussion are only used according to the Figure 18 The present invention relates to a method for drilling a hole in a vertical or horizontal position relative to a world coordinate system. In other words, any hole being drilled can be oriented vertically, horizontally, or at any other tilt angle relative to the world coordinate system, as long as the machine tool or robot performing the drilling operation has the required degrees of freedom of motion. The same applies to the following discussion of improved techniques for motion planning of drilling operations.

[0175] Figure 19 is an illustration of a machine tool drilling operation performed using an improved motion planning method according to an embodiment of the present disclosure, including a synchronized air cutting step that combines spindle speed and tool tip spatial motion. Figure 19 In FIG. 1 , a workpiece 1900 has a first existing hole 1902 and a second existing hole 1904. Holes 1902 and 1904 are drilled in a thread drilling operation by a drilling tool (the drilling tool and the machine tool are not shown) gripped in a spindle of a machine tool. The drilling tool has a tool tip, which is represented by point 1910 in a starting position and is moved to other points during the motion planning discussed below.

[0176] Using the improved motion planning method of the present disclosure, the tool tip is controlled to follow the trajectory in the multi-step motion plan indicated at 1920. The motion plan 1920 defines the spatial trajectory of the tool tip and the rotational speed of the spindle (and therefore the drilling tool). Figure 19 The drilling of two holes is depicted in order to fully illustrate the capability of the disclosed method for integrating and synchronizing spindle speed variations with the spatial motion of the tool tip during the air cutting step. Figure 19For purposes of this disclosure, consider the machine tool to be a three-axis machine tool having servo motors that independently control each of the X, Y, and Z directions of motion of the spindle and drilling tool, and a controller that controls the X, Y, and Z servos and the spindle rotation speed and direction.

[0177] In step ①, the tool tip is moved in two or three dimensions, as desired, from point 1910 to point 1930 at the top of hole 1902. This step includes motion in one or two lateral dimensions (X, Y) plus the axial or "vertical" direction (Z). During step ①, which is an air cutting step, the machine tool's X / Y / Z servo motors are controlled to perform a rapid motion from point 1910 to point 1930, while reaching point 1930 with a Z-axis (axial) velocity equal to the drilling feed rate. Based on these position and velocity boundary conditions, the calculation of the spatial motion of the tool tip in step ① can be performed using the seven-stage jerk-limited calculation discussed previously. Step ① also includes spindle control commands that cause the spindle to reach the appropriate drilling rotational speed before or simultaneously with reaching point 1930. This calculation is discussed further below. In the disclosed technique, there is no artificial reference plane defined at a certain distance above the hole to be drilled, and there is no additional step in which the tool tip must advance to an artificial waypoint before commencing synchronization of the tool tip's axial motion with the spindle's rotational speed.

[0178] In step ②, the tool tip continues "downward" in the axial drilling direction at the drilling feed speed, while the spindle continues to rotate at the desired drilling rotational speed. These axial feed speed and spindle rotational speed conditions are established when the tool tip reaches point 1930 at the end of step ①; therefore, the start of step ② continues seamlessly from the end of step ①. Near the end of step ②, the tool tip decelerates from the drilling feed speed to zero speed in the axial direction, while the spindle decelerates from the desired drilling rotational speed to zero rotational speed. These decelerations are coordinated so that the desired proportional relationship between the spindle rotational speed and the tool axial feed speed is always maintained, as previously discussed. At the end of step ②, the tool tip reaches point 1940 at the bottom of the hole 1902 and stops (zero axial speed and zero rotational speed).

[0179] In step ③, the tool tip is accelerated from rest to the drilling feed speed in the axial withdrawal direction ("upward"), while the spindle is accelerated from zero rotational speed to the drilling rotational speed in the opposite rotational direction to step ②. Step ③ returns the tool tip upward to point 1930 at the top of hole 1902.

[0180] Upon reaching point 1930, the end of step ③, the tool has a moderate upward / axial velocity (at the drilling feed rate) and no lateral velocity. In step ④, which is the air cutting step that positions the tool for drilling the next hole, three things happen: the tool's vertical velocity reverses from upward motion at the drilling feed rate to downward motion at the drilling feed rate, the position of the tool tip moves as quickly as possible from point 1930 to point 1950, and the spindle rotation reverses from the extraction direction to the drilling direction. Calculations are performed to determine the amount of time required to perform each of these actions, and the longest action time is used to adjust the overall step ④, with shorter actions controlled to complete before or at the same time as the tool tip reaches point 1950. These calculations are discussed in detail below.

[0181] When point 1950 is reached at the end of step ④, the tool tip has zero lateral velocity and an axial / downward velocity of the drilling feed rate, and the spindle is rotating in the drilling direction at the desired drilling rotational speed. Therefore, no pause is required, and drilling of hole 1904 begins immediately in step ⑤. Step ⑤ is identical to step ② discussed previously, with the tool decelerating to a stop (both axial and rotational) at the bottom of hole 1904 (point 1960), followed by an extraction step in the same manner as step ③. Figure 19 The steps depicted in the figure can be repeated as many times as necessary to drill all holes in the workpiece 1900. Figure 19 Holes 1902 and 1904 are depicted as being parallel and having only lateral offset distances, however these are not necessary conditions. The techniques of this disclosure can be used to calculate general air cutting motions including any combination of X, Y, and Z offsets and, if desired, directional changes, while incorporating spindle speed control into the air cutting step to minimize overall cycle time.

[0182] from Figure 18 and 19 It is apparent from the discussion that the rapid motion planning method for drilling operations as currently disclosed is faster and superior to known prior art techniques. By integrating and synchronizing spindle rotation with tool space motion during the air cutting step, the disclosed technique eliminates wasted time before and between individual hole drilling steps.

[0183] Figure 20 2 is a graph 2000 of servo speed and spindle speed versus time for the air cutting step and the drilling step of a basic machine tool drilling operation according to an embodiment of the present disclosure, illustrating the coordination and synchronization of servo and spindle speed control. Graph 2000 plots speed (of all three servos and the spindle) on the vertical axis versus time on the horizontal axis. Graph 2000 includes a time span (T aircut ) of the air cutting step 2010 and the following drilling time span (T tapping) of the drilling step 2012.

[0184] Graph 2000 essentially depicts the Figure 19 During the air cutting step 2010, the drilling tool is moved as fast as possible in the X direction, as indicated by the X servo velocity curve 2020. In this example, the spatial motion of the drilling tool in the X direction is the key to determining the air cutting time span (T aircut During the air cutting step 2010, the spindle rotation speed can be controlled independently of the servo translation speed.

[0185] At an appropriate time during the air cutting step 2010, axial tool motion in the Z direction is initiated, as indicated by the Z servo speed curve 2030. The Z servo start time is indicated by arrow 2032. Similarly, at an appropriate time during the air cutting step 2010, spindle rotation is initiated, as indicated by the spindle speed curve 2040. The spindle start time is indicated by arrow 2042.

[0186] Below is the air cutting time span T aircut , Z servo start time and spindle start time calculation. The purpose of the calculation is to make the Z axis speed reach the drilling feed speed and the spindle speed reach the drilling rotation speed before or at the end of the air cutting step 2010. In this way, the drilling step 2012 starts in a way that there is no pause between each step. First, calculate the air cutting time span T aircut The air cutting time span depends on two factors: the later servo transit motion time and the spindle acceleration time. The two cases are discussed further below. In this case, it is the lateral (X servo) motion that dictates the air cutting time span T aircut , and the X-axis motion profile and T aircut The resulting value of can be calculated using the seven-stage jerk-limited motion calculation discussed previously.

[0187] Once T aircut is known, the spindle start time can be calculated as T start,S =T aircut -T acc,S , where T start,s is the spindle start time (measured from t=0), and T acc,S is the amount of time it takes for the spindle to accelerate from zero speed to drilling rotational speed. For any particular machine tool, the spindle torque / speed and acceleration profiles are known, so T acc,S The value of is known or can be easily calculated. In a similar manner, the Z servo start time can be calculated as T start,Z =T aircut -Tacc,Z , where T start,z is the Z servo start time (measured from t=0), and T acc,Z is the amount of time it takes for the Z servo to accelerate from zero speed to the drilling feed speed (also known for a given machine tool). Figure 20 As shown, the calculations described above enable the spindle and Z servo to reach the appropriate drilling speed just at the moment the drilling step begins.

[0188] During drilling step 2012, the Z servo speed and the spindle speed must remain synchronized. This is indicated by the shaded area 2050 on graph 2000. Both the spindle and Z servo must be completely stopped at the end of drilling step 2012, and this deceleration must be synchronized. In this example, spindle deceleration is the longest duration (limiting) factor that determines when deceleration must begin. The initiation of Z servo and spindle deceleration is indicated by dashed line 2052. During drilling deceleration, maximum spindle deceleration torque is applied, while only enough Z servo deceleration torque is applied to achieve the desired Z-axis deceleration time.

[0189] Figure 20 The speed and time relationships involved in machine tool control according to the techniques of this disclosure are shown. In particular, Figure 20 Clearly depicts how the Z servo and spindle can be brought to the proper drilling speed during the air cutting step ahead of the drilling step, rather than Figure 18 The prior art shown in FIG. 1 first navigates to a manual waypoint at a reference plane location to reduce the overall cycle time of the drilling operation.

[0190] exist Figure 20 In the example shown in FIG2000 , there is no Y-axis motion. Therefore, the Y-servo velocity curve remains at zero for the entire graph 2000. The lateral motion of the drilling tool during each air cutting step can be reflected in X-axis motion, Y-axis motion, or a combination of X and Y motion, as previously discussed.

[0191] Figure 21 and 22 Graphs of servo speed and spindle speed versus time for an air cutting step between two drilling steps of a general machine tool drilling operation, including embodiments of the present disclosure, illustrate coordination and synchronization of servo and spindle speed control for two different cases constrained by time constraints.

[0192] exist Figure 21 In the embodiment of the present invention, an air cutting step is performed between two hole drilling steps, where the two holes have a considerable separation distance, as shown in the diagram at 2100. Specifically, the separation distance between the two holes is large enough so that the air cutting step time (T) calculated for the lateral movement of the drilling tool (transit from the first hole to the second hole) is aircut) is greater than the time it takes for the spindle to reverse direction from CCW drilling (extraction) speed to CW drilling speed. That is, T aircut ≥T acc,ΔS , where T aircut is the air cutting step time calculated from the lateral (X and / or Y) servo motion, and T acc,ΔS =2T acc,S . T acc,S is the amount of time it takes for the spindle to accelerate from zero speed to drilling rotational speed as described above. acc,ΔS In the equation for T, a factor of two is applied to acc,S , because the first T acc,S Used to decelerate the spindle from CCW rotation to stop, and the second T acc,S Used to accelerate the spindle from stop to CW drilling rotation.

[0193] Graph 2110 plots the servo (eg, X-servo) speed versus time for the air cutting step depicted at 2100. Graph 2120 plots the spindle speed versus time for the same air cutting step. Figure 21 Like in T aircut ≥T acc,ΔS When controlling a machine tool, the disclosed technique follows two rules. First, the lateral servo motion is controlled using the fastest possible movement based on the machine constraints. This is the seven-stage jerk-limited motion discussed previously. This involves accelerating to maximum servo speed as quickly as possible, maintaining maximum servo speed as long as possible, and then decelerating to zero lateral servo speed as quickly as possible. This lateral servo speed profile is depicted in graph 2110.

[0194] Second, due to T aircut ≥T acc,ΔS , so the spindle has time to pause at zero speed after decelerating from the CCW extraction rotational speed and before accelerating to the CW drilling rotational speed. The deceleration and acceleration phases (each or duration T) are indicated at 2130 in the graph 2120. acc,S ) The duration of the pause (T pause ) can be easily calculated by subtracting: T pause =T aircut -2T acc,s .

[0195] Z servo motion is not Figure 21 , but can be easily understood as follows: the Z velocity profile is calculated to be equal to or less than the air cutting time span T aircut The drilling speed is changed from upward to downward within a certain period of time.

[0196] exist Figure 22In the embodiment of the present invention, an air cutting step is performed between two hole drilling steps, where the two holes have a relatively small separation distance, as shown in the diagram at 2200. Specifically, the separation distance between the two holes is small enough so that the air cutting step time (T) calculated for the lateral movement of the drilling tool (transit from the first hole to the second hole) is aircut ) is less than the time it takes for the spindle to reverse direction from CCW drilling speed to CW drilling speed. That is, T aircut <T acc,ΔS , where T aircut is the air cutting step time calculated from the lateral (X and / or Y) servo motion, and T acc,ΔS is the amount of time it takes for the spindle to reverse direction from a CCW drilling speed to a CW drilling speed as described above.

[0197] Graph 2210 plots the servo (eg, X-servo) speed versus time for the air cutting step depicted at 2200. Graph 2220 plots the spindle speed versus time for the same air cutting step. Figure 22 Like in T aircut <T acc,ΔS When using the air cutting step, the disclosed technique controls the machine tool according to the following two rules. First, because spindle deceleration / acceleration is the time-limiting factor in the air cutting step, after decelerating from the CCW extraction rotational speed to a stop, the spindle continues to accelerate to the CW drilling rotational speed. That is, there is no pause at zero spindle speed, and the spindle speed continues to increase at a constant acceleration. The spindle speed profile is depicted in graph 2220, decelerating from a negative speed to a stop and continuously accelerating in the positive speed direction.

[0198] Second, it is no longer necessary to use the fastest possible motion for lateral servo (transit) motion based on machine constraints. Instead, the lateral (X and / or Y) servo motion can be calculated so that it occurs in a duration T equal to the spindle deceleration / acceleration time. XY That is, T XY =T acc,ΔS The resulting lateral servo motion profile will have a peak speed that is less than the machine's limiting maximum servo speed. The sub-maximum speed is indicated at 2230 in graph 2210.

[0199] The Z servo motion is calculated to complete within the allotted time span of the air cutting step, which in this case is T acc,ΔS .

[0200] In summary, the air cutting step preceding the drilling step typically consists of three elements: a lateral transit motion (X / Y servo) that ends at zero lateral velocity at the start of the drilling step, an axial transit motion (Z servo) that ends at the drilling feed velocity at the start of the drilling step, and a spindle acceleration that ends at the drilling rotation velocity at the start of the drilling step. These elements are combined into a continuous air cutting step that completes all three simultaneously. It is possible for any one of the three elements to be the time limiting factor (the element with the longest execution time). In practice, the lateral transit motion is typically larger than the axial motion, so the Z servo motion is typically not the time limiting factor. Additionally, the spindle motor has a larger moment of inertia than the servo motors controlling the X, Y, and Z motions, which results in slower air cutting when the holes are close together and the lateral transit motion is small (such as Figure 22 In other cases, the lateral transit motion (X / Y servo) or axial transit motion (Z servo) may be the time limiting factor.

[0201] Figure 21 and 22 It shows how the total cycle time can be reduced by first determining the time-limiting action (XY traverse motion, or spindle deceleration / acceleration) for the air cutting step between two drilling steps, and then executing the time-limiting action at maximum effort while executing another action at a less-than-maximum effort to complete simultaneously with the time-limiting action. The same concept applies to Figure 19 The air cutting step is performed before the first hole drilling operation described in step ①.

[0202] Figure 23 Flowchart 2300 is a flowchart of a method for time-efficient motion planning for hole drilling by a machine tool, wherein an axial speed and a rotational speed for drilling are established during an air cutting step preceding the drilling step, according to an embodiment of the present disclosure. The steps of flowchart 2300 are executed in a processor of a machine controller in communication with a machine tool performing a drilling operation.

[0203] At block 2302, all inputs for the air cutting step and the drilling step are provided. The inputs include the starting state (position and velocity) of the drilling tool. The starting state may be a staging position (e.g., at the position of the tool) before the first hole to be drilled in the workpiece. Figure 19 Alternatively, the starting state may be that the drilling tool has left the hole just drilled (as in Figure 19 Inputs also include the location and depth of the hole to be drilled, as well as the axial drilling feed rate and the corresponding drilling rotational speed. The maximum spindle acceleration value and machine limits (including the maximum speed, acceleration, and jerk of each axis or joint servo of the machine) are also provided as inputs at block 2302 or are already known to the controller.

[0204] At block 2304, the air cutting transit motion time (T aircut ) and spindle acceleration time (T acc,S or T acc,ΔS ). The meaning of these time values ​​and their calculation refer to the above Figure 20-22 At decision diamond 2306, it is determined whether the air cutting transit motion time is greater than or equal to the spindle acceleration time. If the spindle must decelerate from the extraction rotational speed and then accelerate to the drilling rotational speed (e.g., Figure 21-22 As in the example above), the spindle acceleration time used in the determination diamond 2306 is T acc,ΔS If the answer is yes at decision diamond 2306, then this means that the lateral transit motion (XY servo) time T aircut is the time limiting factor, i.e., the maximum duration motion to be performed. In this case, the process moves to block 2308 where the start times for the spindle motor and the Z servo motor are calculated. These calculations were previously made with reference to Figure 20 Described, Figure 20 shows how a delayed start time provides the desired speed of the spindle and Z servo at the start of the drilling step. The start time calculation is performed using an equation of the form: T start,i =T aircut -T acc,i ,...i=S,Z. If the spindle motor undergoes deceleration and acceleration (such as when the air cutting step is Figure 21-22 Each of the two drilling steps between the same), then at box 2308 use the above about Figure 21 The T in question pause =T aircut -2T acc,s It is acceptable for the spindle to reach drilling speed before the transit motion is completed, so the spindle start time can be earlier than but not later than T as calculated above. start,Z , and the spindle dwell time can be less than but not greater than T as calculated above pause .

[0205] At decision diamond 2306, if the air cut transit motion time is less than the spindle acceleration time, this means that the spindle acceleration time is the time limiting factor, i.e., the maximum duration motion to be performed. In this case, the process moves to box 2310 where the lateral transit motion (XY servo) is planned so that it is completed in the same amount of time as the spindle acceleration time. This situation is not discussed in detail in the following sections. Figure 22 , where a velocity profile is used for a transit servo motion that does not reach the maximum velocity of the machine limit.

[0206] At block 2312, a complete motion plan is generated for the air cutting step and the drilling step. This includes the tool trajectory (X, Y, and Z servo motor velocity profiles versus time) and the corresponding spindle velocity profiles versus time. A plot of these velocity profiles is provided in Figure 20-22 The spatial motion of the drilling tool that can be calculated from the servo velocity profile is shown in Figure 19 Depending on which branch is taken from decision diamond 2306 , the motion plan calculated at block 2312 uses either the spindle and Z servo start times from block 2308 or the sub-maximal effort transit motion profile from block 2310 .

[0207] At block 2314, spindle and servo motion commands are output from the machine controller to the machine tool and used to perform a drilling operation, including an air cutting step followed by a drilling step. The various steps of flowchart 2300 may of course be reused; for example, when Figure 19 While the air cutting and drilling steps ① and ② are being performed by the machine tool, the controller is able to calculate the air cutting and drilling steps ④ and ⑤ that will soon follow.

[0208] Throughout the foregoing discussion, various computers and controllers have been described and implied. It should be understood that the software applications and modules of these computers and controllers are executed on one or more electronic computing devices having processors and memory modules. In particular, this includes the machine controller and / or any optional other computers discussed above. Specifically, the processor in the controller or other computer is configured to perform the above-described rapid motion drilling method, including Figure 23 The method steps, as well as the above equations and other techniques.

[0209] The time-optimal machine tool motion planning methods disclosed herein provide several advantages over conventional methods. An important feature of all disclosed methods is the calculation of an air cutting step that transitions all machine tool states (including three-dimensional positions and velocities, and, if applicable, spindle rotational speed) from a starting state to the state required for the subsequent machining step, and completes these transitions in the minimum possible time based on the machine's capabilities. These methods can be applied to all types of machining operations in articulated robots and multi-axis machines, including milling, drilling, laser cutting, thread drilling, and the like.

[0210] Although various exemplary aspects and embodiments for the rapid motion drilling method have been discussed above, those skilled in the art will recognize modifications, permutations, additions, and sub-combinations thereof. It is therefore intended that the following appended claims and claims hereafter introduced be interpreted as including all such modifications, permutations, additions, and sub-combinations as are within their true spirit and scope.

Claims

1. A method for motion planning for a drilling operation, the method being executed by a controller comprising a processor and a memory, and comprising: calculating a motion plan for a machine tool, the motion plan comprising a time-optimized air cutting step followed by a drilling step, wherein the air cutting step ends with an axial speed of the drilling tool equal to the drilling feed speed and a spindle speed equal to the drilling rotational speed, including calculating a transit motion time, an axial servo motion time, and a spindle acceleration time of the air cutting step based on input data including a starting state of the drilling tool, a location of a hole to be drilled, a predetermined spindle acceleration, and a machine tool mechanical limit, The air cutting step time is determined according to the transit motion time, the axial servo motion time and the spindle acceleration time.

2. The method according to claim 1, wherein The air cutting step time is set to the maximum of the transit motion time, the axial servo motion time, and the spindle acceleration time.

3. The method according to claim 2, wherein: When the transit motion time or the axial servo motion time is maximized, the spindle start time is delayed, and when the spindle acceleration time or the axial servo motion time is maximized, the transit motion profile is slowed down from the fastest possible motion.

4. The method according to claim 3, wherein: When the spindle start time is delayed, a maximum spindle delay time is calculated as the difference between the air cutting step time and the spindle acceleration time.

5. The method according to claim 3, wherein: When the transit motion profile is slowed, the transit motion profile is calculated to complete within the air cutting step time.

6. The method according to claim 1, wherein The transit motion time is the time required for the machine tool to move the drilling tool laterally from the starting position to the position of the hole to be drilled using the fastest possible motion based on the mechanical limits of the machine tool, and the axial servo motion time is the time required for the machine tool to move the drilling tool axially from the starting state to the position of the hole to be drilled at the drilling feed speed using the fastest possible motion based on the mechanical limits of the machine tool.

7. The method according to claim 6, wherein: The machine tool mechanical limits include maximum velocity, acceleration, and jerk along the machine tool translation axis driven by the servo motor.

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

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

10. The method according to claim 1, wherein An axial motion profile starting with the starting state of the drilling tool and ending at the drilling feed rate in the axial direction is calculated to be completed within the air cutting step time.

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

12. A method of motion planning for a machine tool for a drilling operation, the drilling operation comprising an air cutting step followed by a drilling step, the method comprising: providing input data for the drilling operation, including a starting state of the drilling tool, a location of a hole to be drilled in a workpiece, a drilling feed rate and a drilling rotational speed, a predetermined spindle acceleration, and machine tool mechanical limits; Calculating the transit motion time, axial servo motion time and spindle acceleration time of the air cutting step according to the input data; determining which of the transit motion time, the axial servo motion time, and the spindle acceleration time of the air cutting step is greatest; when the transit motion time is maximum, setting an air cutting step time to the transit motion time, calculating a fastest possible transit motion profile based on the mechanical limit, and calculating a spindle start time delay as a difference between the transit motion time and the spindle acceleration time; when the spindle acceleration time is maximum, setting the air cut step time to the spindle acceleration time, calculating the transit motion profile to be completed on or before the end of the air cut step time, and setting the spindle start time delay to zero; calculating an axial motion profile to be completed at the end of the air cutting step time; as well as A motion plan is generated for the air cutting step and the drilling step, the motion plan for the air cutting step using the air cutting step time, the transit motion profile, the axial motion profile, and the spindle start time delay.

13. The method according to claim 12, wherein: The transit motion time is the time required by the machine tool to move the drilling tool laterally from a starting position to the location of the hole to be drilled using the fastest possible motion based on the mechanical limitations of the machine tool.

14. The method according to claim 12, wherein: The spindle acceleration time is the time required for the spindle to accelerate from the spindle starting speed to the drilling rotation speed using the spindle predetermined acceleration.

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

16. A time-optimized machine tool drilling system, the system comprising: a controller, including a processor and memory; as well as a machine tool in communication with the controller, the machine tool having a spindle holding a drilling tool, wherein the controller calculates a motion plan and sends the motion plan to the machine tool, the motion plan comprising a time-optimized air cutting step followed by a drilling step, wherein the air cutting step ends with a drilling tool axial speed equal to the drilling feed speed and a spindle speed equal to the drilling rotational speed, including calculating a transit motion time, an axial servo motion time, and a spindle acceleration time of the air cutting step based on input data including a starting state of the drilling tool, a location of a hole to be drilled, a predetermined spindle acceleration, and a machine tool mechanical limit, The air cutting step time is determined according to the transit motion time, the axial servo motion time and the spindle acceleration time.

17. The system according to claim 16, wherein: The air cutting step time is set to the maximum of the transit motion time, the axial servo motion time, and the spindle acceleration time.

18. The system according to claim 17, wherein: When the transit motion time or the axial servo motion time is maximized, the spindle start time is delayed, and when the spindle acceleration time or the axial servo motion time is maximized, the transit motion profile is slowed down from the fastest possible motion.

19. The system according to claim 18, wherein: When the spindle start time is delayed, a maximum spindle delay time is calculated as the difference between the air cutting step time and the spindle acceleration time.

20. The system of claim 18, wherein: When the transit motion profile is slowed, the transit motion profile is calculated to complete within the air cutting step time.

21. The system of claim 16, wherein: The transit motion time is the time required for the machine tool to move the drilling tool laterally from the starting position to the position of the hole to be drilled using the fastest possible motion based on the mechanical limits of the machine tool, and the axial servo motion time is the time required for the machine tool to move the drilling tool axially from the starting state to the position of the hole to be drilled at the drilling feed speed using the fastest possible motion based on the mechanical limits of the machine tool.

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

23. The system of claim 16, wherein: The spindle acceleration time is the time required for the spindle to accelerate from the spindle starting speed to the drilling rotation speed using the spindle predetermined acceleration.

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

25. The system of claim 16, wherein: An axial motion profile starting with the starting state of the drilling tool and ending at the drilling feed rate in the axial direction is calculated to be completed within the air cutting step time.

Citation Information

Patent Citations

  • Machine tool rapid motion planning

    US20250128377A1