Machine tool fast motion planning
By optimizing the intermediate waypoint status in the motion trajectory of the machine tool, the problem of difficulty in optimizing the total cycle time of multiple trajectories in the prior art is solved, and the tool path planning with optimal time and collision-free is achieved.
Patent Information
- Application Number
- CN202411431272.7
- Authority / Receiving Office
- CN · China
- Patent Type
- Applications(China)
- Current Assignee / Owner
- Priority Date
- 2023-10-20
- Filing Date
- 2024-10-14
- Publication Date
- 2025-04-22
AI Technical Summary
The prior art is difficult to optimize the total cycle time of the multi-stage machine tool motion trajectory, and it is difficult to achieve collision avoidance and time optimization simultaneously in trajectory calculation.
The shortest total trajectory time is achieved by determining the initial motion profile of each segment and optimizing the motion state at the intermediate waypoints of the connecting segments. Additional waypoints can be added for collision avoidance and optimal waypoint state values can be calculated by heuristic and gradient descent techniques.
It is realized that the total cycle time of multi-section trajectories is optimized without increasing the total motion time, and the collision-freeness of the tool path is ensured, meeting the geometric and kinematic constraints of the system.
Smart Images

Figure CN119861656A_ABST
Abstract
Description
Technical Field
[0001] 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 trajectory for multiple segments of motion, wherein the motion states at intermediate waypoints connecting the segments are optimized to provide the shortest overall time, and wherein additional waypoints may be added, for example for collision avoidance, and the waypoint states again optimized for the minimum overall time for the complete trajectory. Technical Background
[0002] 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, a computer numerical control (CNC) machine is used that moves a tool along a three-dimensional path while the tool maintains a fixed spatial orientation. In other applications, a multi-axis industrial robot is equipped with a machining head, and the robot is able to move the tool along a spatial path while also controlling the tool orientation to any desired value.
[0003] Regardless of what type of machine tool or robot is used to perform the machining operation, a tool path trajectory and corresponding velocity profile must be calculated. 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 start of the next machining step).
[0004] 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.
[0005] Furthermore, it is desirable to calculate the tool path 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 tool path trajectory is collision-free, i.e., the tool and machine avoid collisions with the workpiece itself or with fixtures or any other obstacles in the workspace.
[0006] Techniques are known in the art that can calculate a trajectory and corresponding velocity profile that optimizes cycle time given specified start and target positions. However, these techniques cannot optimize the total cycle time for a multi-segment trajectory (such as a cutting segment followed by an air cutting segment and then another air cutting segment). In addition, some trajectory calculation techniques cannot accommodate collision avoidance determinations in the trajectory calculation.
[0007] There are other techniques that can adapt collision avoidance determinations in trajectory calculations, but these prior art 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 in order to prevent a collision. Another known approach requires pre-calculating multiple tool path trajectories and selecting one of the multiple predetermined trajectories for a particular operation based on the obstacle environment. Yet another approach uses an imaging system to detect potential collisions in real time and adjust the trajectory accordingly, but does so without optimizing the cycle time of the operation.
[0008] In view of the above, there is a need for an improved method for machine tool motion planning that can minimize the cycle time in multiple segment trajectories and ensure a collision-free tool path while satisfying other geometric and kinematic constraints of the system. There is also a need for an improved method for machine tool programming that includes time-optimal trajectory calculation. Summary of the invention
[0009] The present disclosure describes a method for machine tool motion control that determines a time-optimal trajectory for a multi-segment tool path motion. Start and end waypoints for each segment of the overall motion are defined, as well as other conditions such as cutting feed rate. An initial motion profile for each segment is calculated based on waypoint geometry and other constraints, and the motion states at the waypoints connecting the segments are optimized to provide the shortest overall trajectory time. The optimized waypoint states include velocity and acceleration with non-zero values. Additional waypoints may be added to the trajectory, such as for collision avoidance, and the waypoint states are again optimized for the minimum overall time for the complete trajectory. Heuristics and gradient descent techniques are applied to calculate the optimal waypoint state values.
[0010]
[0011] 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
[0011] Figure 1 is a cross-sectional view of workpiece machining operations and the basic concepts involved in motion planning of said operations;
[0012] Figure 2 is the artifact and involves Figure 1 A cross-sectional view of a machining operation for two holes in a first hole and depicting a time-optimal trajectory for moving a tool from a first hole to a second hole;
[0013] 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;
[0014] Figure 4 is as known in the art using conventional motion planning methods Figure 2 A graph of speed versus time for a 3-step machining operation shown in;
[0015] 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;
[0016] 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;
[0017] 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;
[0018] Figure 8 According to the embodiment of the present disclosure Figure 2 a cross-sectional illustration of a workpiece and machining operations of a process in which obstacles interfere with the time-optimal trajectory, and a new collision-free trajectory through additional waypoints is calculated;
[0019] Fig. 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;
[0020] Fig. 10A , 10B and 10C is a diagram of an obstacle avoidance trajectory depicting concepts involved in a technique for determining an initial estimate of a velocity state at an intermediate waypoint in accordance with an embodiment of the present disclosure;
[0021] Fig.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;
[0022] Fig.12 is a three-dimensional graph of a function relating machining operation cycle time to velocity states of intermediate waypoints in a trajectory, showing how to find an optimum value for velocity using a gradient descent method, according to an embodiment of the present disclosure;
[0023] Fig.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;
[0024] Fig.14A is an illustration of a multi-step drilling operation performed using conventional motion planning methods, and Fig. 14B is a diagrammatic representation of a multi-step drilling operation performed using the time-optimal trajectory motion planning method of the present disclosure;
[0025] Fig.15A is an illustration of a two-step machining operation performed using conventional programming and motion planning methods, and Fig. 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;
[0026] Fig.16A is an illustration of a multi-pass milling operation performed using conventional programming and motion planning methods, and Fig. 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
[0027] Fig.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. DETAILED DESCRIPTION
[0028] The following discussion of embodiments of the present disclosure directed to time-optimal machine tool motion planning and programming is merely exemplary in nature and is in no way intended to limit the disclosed apparatus and techniques or their application or uses.
[0029] Figure 1 is a cross-sectional view of a workpiece machining operation and the basic concepts involved in the 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 a 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).
[0030] Figure 1 The machining operation depicted in FIG. 1 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 1It is positioned as shown, moves vertically downward until it contacts the workpiece 100, and drills a hole 102 in a known manner.
[0031] The remaining steps of the operation - moving the tool 110 away from 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 the present disclosure. The first step of this operation is to move the tip 112 of the tool 110 from the 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.
[0032] 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 in general shape) to waypoint ② at the top of the hole 104. Because the tool 110 moves through the air, this relocation step can also be performed as quickly as possible (adhering to the mechanical limits of the machine). The technique for calculating the time optimal trajectory of the path 130 is discussed below. The last step of the operation is to drill the hole 104 by moving the tip 112 of the tool 110 from waypoint ② at the top of the hole 104 down 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 based on the material of the workpiece 100 and other factors.
[0033] 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 ("into and out of the paper") may be included, as shown in subsequent figures and discussed below. In addition, Figure 1 A drilling operation is depicted using the tool 110 as a drill. 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) may be machined.
[0034] 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. Workpiece 200 is generally similar to Figure 1 The workpiece 100 corresponds to. Figure 2, the machining operation involves using a tool (not shown) to drill or chisel 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 .
[0035] The machine tool or robot performing the machining operation has mechanical constraints and other conditions defined as follows. feed V is the speed in the vertical (z) direction used when the tool is cutting material, i.e. machining 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. A 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).
[0036] In order to minimize the cycle time of the machining operation, the following boundary conditions are applied to each step. In ①), the x position remains fixed while the tool moves upward in the z direction. 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, may 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 is discussed later.
[0037] 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 and 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 motion 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 calculating the time-optimal motion profile of trajectory 230.
[0038] 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. A 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: Ⅰ. Apply J max Until you reach A max II. 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 Ⅴ. Apply-J max To increase the negative acceleration until reaching -A max VI. With -A max Continue until V = 0 VII. Apply J max To reduce the negative acceleration until A=0 and V=0 are reached at the destination position (waypoint ②).
[0039] Figure 3 A graph of position, velocity, acceleration, and jerk versus time for a jerk-limited motion profile as described in the overview above is included. 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 finally (in phase VII) increases to J max The corresponding acceleration graph 320 shows an acceleration which 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 The corresponding speed graph 330 shows the speed, which starts at zero, increasing in stages I-III to tend to stabilize at V max At V max Continuing, and decreasing 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 x position corresponding to Figure 2 The distance ΔX corresponds to the end position.
[0040] The position, velocity, and acceleration for each of the seven phases can be defined using known equations of motion. For example, equation a 1 =a 0 +t 1 ·J max The acceleration (a) at the end of phase I 1 ) is defined as the initial acceleration (a 0 ), duration of phase I (t 1 ) and 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 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 for each of position, velocity, and acceleration) and 31 variables (eight variables for position [p 0 -p 7 ]; eight variables for speed [v 0 -v 7 ]; eight variables for acceleration [a 0 -a 7 ]; seven variables for time [t 1 -t 7 ]). Many boundary conditions can be applied to eliminate excess variables relative to the equation. For example, in the above description and Figure 3 In the example shown in , the initial acceleration (a 0 ) is zero. In addition, it is known that the final velocity (v 7 ) is zero, and the final position (p 7 ) is the distance ΔX.
[0041] When all 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, and also the duration of each phase (i.e., t 1 -t 7 When the duration values of the seven stages are added together (t 1 +…+t 7 ), this reveals the total time of the motion profile with the minimum time limit for jerk. 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 (-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.
[0042] 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.
[0043] Table 1 below summarizes the Figure 2 The 3-step machining (drilling) operation depicted in 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 ). exit The value of will be determined as discussed below. Table 1
[0044] 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 maxHowever, this is not usually the case. For example, if the height (ΔZ) of the hole 202 is very small, the maximum acceleration motion 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 of 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.
[0045] Still reference 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 exit Less than V max , step 2 can be completed faster. This means that the motion of step 1 is no longer accelerating 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.
[0046] 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.
[0047] Traditionally, this has been ignored, even for Figure 2 The complexity and interdependence of trajectory calculations for the simple case of the example shown. 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 point of view, this is a very simple solution, but it adds time to the completion of a multi-step machining operation. This will be discussed further below.
[0048] The following is a traditional motion planning method Figure 2 The tool motion for a 3-step machining operation shown in FIG. 1 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.
[0049] Figure 4 is as known in the art using conventional motion planning methods Figure 2 400 of speed versus time for the three-step machining operation shown in FIG. On the graph 400, a trace 410 plots the speed of the three-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 the hole 202, ending at waypoint ① shown at the end of the first step on the graph 400. The second step is performed during time span 432, wherein the second step is to move the cutting tool horizontally directly above the hole 204, ending at waypoint ② shown at the end of the second step on the graph 400. The third step is performed during time span 434, wherein the third step is to drill the hole 204, ending at waypoint ③ shown at the end of the third step on the graph 400.
[0050] 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 hole 204 until waypoint ③ is reached.
[0051] For the same 3-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 step, 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 traditional motion programming of the curve diagram 400, which is possible because this motion profile does not return the z speed to zero during the first step. This means that the cutting head reaches waypoint ① faster than in the traditional method, and as a result, the first step of the disclosed method is completed in less time than the first step of the traditional method (time span 430). In the second step, the time-optimal trajectory motion of the present disclosure moves the cutting tool horizontally with the fastest possible point-to-point motion as in the traditional method. Also during the second step, the z speed of the cutting tool is reduced from a high positive value to a considerable 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 substantially the same as in the conventional motion method, except that the time-optimal motion profile is expressed as a z velocity-V feed The waypoint ② is reached and therefore no short 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.
[0052] Summarizing the above discussion, the time-optimal motion programming method of the present disclosure can shorten the duration of a multi-step machining operation 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 wider application of general machining. This will be discussed below.
[0053] 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 the workpiece 500 (or 550) is to be machined by a cutting tool, the tip of the cutting tool or the tool center point being represented by a circle connected by an arrow. The cutting tool may be, for example, an end mill, which mills a layer of material from the top of the workpiece 500 / 550.
[0054] 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 a 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 ) in time and space. 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.
[0055] Graph 520 plots tool center point velocity versus time for a 3-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 the tool center point 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 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 the conventional motion programming method takes a total elapsed time of approximately 1.05 seconds.
[0056] exist Figure 5B In the time-optimal motion planning method, for the Figure 5A To create workpiece 550 with 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 quickly 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 at a horizontal speed V. feedThe program then specifies that the tool center point performs a cutting operation from waypoint 562 to waypoint 564. Then, the air cutting is performed from waypoint 564 to waypoint 566, thus 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.
[0057] Graph 570 plots tool center point velocity versus time for a 3-step machining operation using the above-described time-optimal motion programming method. In the first step with 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 at a 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 a multi-step machining operation by optimizing the motion (waypoint states) across all steps and not requiring the cutting tool to stop between steps.
[0058] 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 box 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 box 602 or built into the trajectory calculation algorithm.
[0059] 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.
[0060] At block 606, initial values of the motion state 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 above, 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 waypoint states without causing too much overshoot is discussed later. Figure 5B In the example above, 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 .
[0061] At block 608, the waypoint positions (all known and fixed) and velocities (some fixed, and some variable, with initial values calculated at block 606) are used to generate an overall trajectory for the multi-step motion plan. 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 motion in each direction, and the longest duration is used as the time span of the step; then the motions in other directions with shorter durations can be recalculated to consume more or all of the time span of the step.
[0062] 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. 1 , initial vertical velocity V exit and final vertical velocity -Vfeed to 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 dictate 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 article.
[0063] In another example, Figure 5B In the first step, the movement in the x direction can be calculated to move the horizontal distance from waypoint 560 to waypoint 562, 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 x motion. Whichever duration is longer (x or z) will dictate the time span of this 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.
[0064] 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 state (e.g., Figure 2 V exit ) affects the time span of one or more steps, the value of the intermediate waypoint state can be changed, and the entire trajectory is recalculated to determine whether a shorter total time can be achieved. This optimization and recalculation is performed at box 612, and the loop returns to box 608. The optimization of the intermediate waypoint state can be performed using any suitable technique, including search-based methods, optimization-based methods, and combinations thereof. This will be discussed further below.
[0065] 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 box 614. The time-optimal trajectory includes motion in all directions for all steps, as discussed in detail with respect to the above examples.
[0066] Above about Figure 2 , 4The calculations described in , 5B and 6 provide tool path motion that results in a minimum cycle time for a multi-step machining operation, wherein the motion states at the waypoints connecting the individual steps (i.e., intermediate waypoints that are allowed to have non-zero speeds) are optimized to achieve a minimum overall trajectory time. However, there are some occasions where it is desired to add waypoints to a trajectory, such as for the display of complex motion, or to avoid obstacles during movement of a 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 a minimum time for the overall trajectory including the additional waypoints. An example with additional waypoints is shown in the following figures and discussed below, wherein 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.
[0067] Figure 7 is an isometric view illustration of a workpiece machining operation in which a tool path trajectory is to be determined that provides a minimum cycle time while also avoiding obstacles in the path, according to an embodiment of the present disclosure. Figure 7-1 0 all depict examples of adding waypoints to a multi-step machining operation for obstacle avoidance and calculating a time-optimal trajectory including the additional waypoints. These examples include techniques for determining the locations of the additional waypoints in order to avoid obstacles. 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 including the additional waypoints.
[0068] 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.
[0069] 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 the tool tip needs to be moved up 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 meaning as discussed in the earlier figures, namely the top and bottom of the corresponding holes.
[0070] 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 tracking 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 travel through both ΔX and ΔY. The calculation of the y coordinate in trajectory 730 is a simple matter because the y motion of the tool tip can be completed using an acceleration ramp up to speed and then ramp down back to zero speed in the y direction when reaching waypoint ②. After calculating the x, y, and z motions for this step, if the duration of the y motion is the longest, the motions in the other two directions can be replanned to use this time span, as discussed earlier.
[0071] 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 depicted by the ellipse 732. Therefore, a new trajectory must be calculated to move from waypoint ① to waypoint ② as quickly as possible while avoiding collision with the obstacle 710. Techniques for calculating collision-free tool path trajectories are known in the art, however, these techniques do not find the 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 therefore be unnecessarily lengthy, or a multi-segment trajectory can be calculated that avoids obstacles but includes deceleration or stops at inflection points or intermediate waypoints. These methods are not optimal.
[0072] The calculation of the time-optimal collision-free trajectory is accomplished using the following techniques of the present disclosure: after the computer processes the time-optimal trajectory 730 that does not include additional waypoints, a critical point 734 is identified as the point on the trajectory 730 that interferes with the obstacle 710 that is closest to the waypoint ②; then, a point 752 that is vertically above the critical point 734 at a certain clearance distance is defined, and a new trajectory using point 752 as an additional waypoint is calculated (i.e., the new trajectory passes through point 752 on its path from point ① to point ②). The details of these calculations are discussed below, where the calculations are adjusted to accommodate different scenarios with respect to obstacle size and location, each of which is shown in the remaining figures.
[0073] Figure 8 According to the embodiment of the present disclosure Figure 2 2 is a cross-sectional illustration of a workpiece 200 and a machining operation 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 that are necessary to ensure that the trajectory is collision-free.
[0074] 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 calculate the time-optimal collision-free trajectory from hole 202 to hole 204.
[0075] 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 that is 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.
[0076] The following is a discussion of the calculation of the time-optimal collision-free trajectory 830. After the time-optimal trajectory 230 is calculated, a point 832 is calculated, which will be a waypoint in the trajectory 830. In a preferred embodiment, point 832 is offset a certain distance in the z direction vertically directly above point 820. 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.
[0077] 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.
[0078] If a traditional machine tool path motion generation algorithm is used to use waypoints ④ to calculate the trajectory, the results are unpredictable. In one such example, a trajectory is calculated that starts upward from waypoint ①, descends back into the workpiece 200, then advances upward and passes through waypoint ②, significantly overshooting the end of the workpiece 200 before looping back and down to waypoint ③. Such a trajectory is obviously unsatisfactory for many reasons. Therefore, a multi-step technique is needed that calculates a time-optimal collision-free trajectory 830 with desired shape features based on waypoint state boundary conditions.
[0079] for Figure 8 The obstacle scene defines the following symbols: X 2 is the x coordinate of waypoint ②, X 3 is the x coordinate of waypoint ③; ΔX is X 2 and X 3 The difference between (x distance) between waypoints ② and ③ is similarly defined using the z coordinates of waypoints ② and ③.
[0080] The time-optimal collision-free trajectory for the entire multi-step operation is calculated using the following logic. First, it is important to recognize that the complete multi-step operation now includes 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 a 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.
[0081] for Figure 8 The scenario of waypoint position and speed status is limited to the following: Table 2
[0082] 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 is unknown. The three speeds may be varied in order to minimize the overall time of the 4-step operation. Heuristic methods may be used to determine the initial values of the three variable speed states, and search-based and / or optimization-based methods may be used to determine the optimal values of the three variable speed states (to achieve the minimum overall time), all of which are discussed below.
[0083] 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 speed in the z direction will be zero or close to zero. This knowledge can be used when determining an initial estimate of the speed state at waypoint ②. The final value of the waypoint ② state 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.
[0084] 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 located 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.
[0085] 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 conventional 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 able to adapt 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 described 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.
[0086] As described throughout the foregoing discussion, the calculation of the time-optimal collision-free trajectory of the multi-step machining operation includes calculating the time-optimal trajectory of 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.
[0087] It will be recalled that the original time-optimal trajectory (without the added waypoints) may include a trajectory with a Figure 2 and 7 -V at waypoint ① in 8 exit Intermediate waypoints with mutable states 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 result in the need to change 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 Calculate 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.
[0088] 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 ) represent unknowns, which add 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, which results in the minimum overall time span for the multi-step motion plan.
[0089] As part of a discussion of a general method for computing a time-optimal trajectory for a multi-step motion plan with additional waypoints, both the selection of initial values for the variable speed states and the iterative calculation of identifying optimal values of the variable speed states that result in the minimum overall time are discussed further below.
[0090] Fig. 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 Fig. 9 An additional intermediate waypoint (waypoint ②) with a variable speed state is included, and an iterative loop is performed that determines the values of all variable waypoint states that result in a time-optimal collision-free trajectory.
[0091] At box 902, data describing a multi-step machining operation is provided. This includes the 3D geometry of the workpiece, tool start and end positions (before and after the machining operation, respectively), hole location and depth (for drilling), path shape and cutting depth (for milling), workpiece material and / or feed rate of the operation, and any other required information. The mechanical constraints of the industrial robot or machine tool are also provided at box 902 or built into the trajectory calculation algorithm. At box 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 ).
[0092] At block 910 (large dashed box), waypoints are added to the original set of waypoints defining the multi-step machining operation. Waypoints may be added manually or automatically for any purpose. One specific example is adding waypoints for collision avoidance; i.e., modifying the time-optimal trajectory calculated at block 904 to avoid obstacles. The steps for collision avoidance application of additional waypoints are shown within block 910.
[0093] At block 920, obstacle data for the machining operation workspace is provided. This includes information such as Figure 7 The obstacle 710 shown in FIG. Figure 8 Obstacles such as obstacles in the workspace. Obstacles can have 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 obstacle. 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.
[0094] When a track-obstacle collision is detected, the location of the new waypoint is calculated at block 928. Techniques for calculating the location of new waypoints to avoid obstacles were described earlier, including calculating critical interference points and establishing new waypoints at offset distances from the critical points. If additional waypoints are to be added for reasons other than collision avoidance, the new waypoint locations are simply calculated or determined at block 928.
[0095] At block 930, an initial estimate of the velocity state of the additional waypoint is calculated. 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 (e.g., V x,2 、V z,2 ) is an initial estimate of .
[0096] 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 waypoint velocity state. The following discussion continues to focus on Figure 7-8 The example shown in - a multi-step drilling operation where additional waypoints are required for collision avoidance. It should be understood that Fig. 9 All steps of , including intermediate waypoint state estimation, are generally also applicable to multi-step machining operations, such as Figure 5B The operations described in .
[0097] One method of 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 (e.g., V) at waypoint ②. x,2 、V z,2 ) value. 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 ②.
[0098] Consider, for example, the case where a tall obstacle exists immediately adjacent to the second hole. In this case, it is not possible 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 according to the constraints on maximum velocity / acceleration / jerk. This creates an interdependency between horizontal and vertical motion, including the possibility that the optimal overall time for a multi-step operation may include a small trajectory overshoot in the horizontal direction.
[0099] Fig. 10A , 10B 10C are diagrams of obstacle avoidance trajectories according to embodiments of the present disclosure that depict concepts involved in techniques for determining an initial estimate of velocity state at an intermediate waypoint. Fig. 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 associated position and velocity information.
[0100] Fig. 10B is an illustration 1040 of an obstacle avoidance scenario in which an additional waypoint 1050 is defined to be static, i.e., the tool center point stops along the trajectory at waypoint 1050. This results in a multi-step trajectory 1060 without any overshoot in the x-direction, but trajectory 1060 is unnecessarily slow due to the complete stop at waypoint 1050.
[0101] Fig. 10C is an illustration 1070 of an obstacle avoidance scenario where 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 overshoots the next waypoint significantly 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.
[0102] 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 causing large overshoots. The technique described below provides such an initial estimate of the waypoint velocity state.
[0103] Reference again Fig. 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 zero velocity in the x-direction and -V in the z-direction feed Arrival at waypoint 1020. For the purposes of this calculation, the velocity of the trajectory when reaching 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 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, Fig. 10A It is shown in two dimensions, but the velocity state calculations described here can be performed for all three dimensions.
[0104] exist Fig. 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 equations that can be solved to determine V s,x and V s,z The 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 were 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.
[0105] Fig.11 1100 is a flow chart 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) perform Fig.11 After starting at 1102, given Fig. 10A The end 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 (i.e., 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 Fig. 9 The speed state (e.g., V x,2 ) is an initial estimate of .
[0106] If the answer is yes at decision diamond 1104, then at box 1110, the V in a 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 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.
[0107] Based on the jerk-limited motion calculation discussed earlier Fig.11 The flowchart can be adapted to handle deceleration scenarios (where V s >V e ) or acceleration scenario (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 .
[0108] Figures 10A-10C The scene and the above about Fig.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 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 hole or the second hole), when the tool center point reaches the intermediate waypoint, the tool center point can be accelerating or decelerating. Figures 10A-10C Calculation of the intermediate waypoint velocity states for any of these scenarios is performed in the manner discussed in 11 .
[0109] Return to Fig. 9 , after determining the initial values of the velocity state of 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 the process described earlier in Figure 6 The trajectory generation at block 608 is performed except for Fig. 9 In , the trajectory includes additional waypoints, such as Figure 8 The example shown in FIG. 4 has five waypoints and four steps or trajectory segments.
[0110] After the first instance of the trajectory is calculated at block 932, an iterative loop is established in which the variable states (e.g., V exit and the state speed (V x,2 , V z,2 )) and calculate a new trajectory. This iterative loop includes determining at decision diamond 934 whether the total cycle time has been optimized (which can only be determined after several cycles and depends on 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 with 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 speed -V at waypoint ③) have been met feed wait).
[0111] 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 is slightly above and slightly below the previously used value, and determines 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.
[0112] 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), it 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 a bowl shape that is concave upward. 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.
[0113] Fig.12 12 is a three-dimensional graph 1200 of a function relating machining operation cycle time to state speeds of intermediate waypoints in a trajectory according to an embodiment of the present disclosure, which illustrates how to use a gradient descent method to find the optimum value of speed. Graph 1200 is a plot of the above function F, where the total trajectory cycle time t is plotted on the vertical axis relative to the speed of waypoint ② on the horizontal axis, and the plot surface 1210 has the above bowl shape.
[0114] 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 for multiple steps given the velocity states at the waypoints. This is done in Fig. 9 When generating (e.g., for Figure 8 When a complete trajectory (all four steps of the movement) is taken, the total cycle time t is the sum of the times of all trajectory segments.
[0115] 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 Fig.11 The initial estimate is determined using the method of . Each subsequent iteration uses a trajectory calculated using 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 Fig.12 Curve 1220 in FIG. Curve 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.
[0116] Although Fig.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 can apply the gradient descent technique 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.
[0117] Fig.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. Fig.13 The flowchart 1300 is implemented in the optimization loop of the above-mentioned blocks 932-936. Figure 8 In the example, the gradient descent method is used to find the optimal values of x and z velocities and V at waypoint ②. 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 ].
[0118] 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 )’s initial value v 0 The initial value of the variable waypoint state speed may be provided as described above with respect to FIGS. 10 and 11 .
[0119] At block 1304, the initial waypoint state value v of the first iteration is used. 0 To generate a complete trajectory for a 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 update iteration, v k is the previous iteration of the velocity vector v, α is the step size, is the gradient of the function F that relates 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.
[0120] At decision diamond 1308, a determination is made as to whether any termination criteria have been met. One termination criterion is (by item The change in the velocity vector from one iteration to the next (calculated by the norm of ) is less than the convergence criterion ∈. If so, the gradient descent calculation has converged to the optimal solution (minimum total cycle time t). Another termination criterion is whether the number of iterations has reached a predetermined maximum value.
[0121] 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.
[0122] 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.
[0123] At this time, Fig. 9 In the flowchart of , 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.
[0124] The gradient descent method used to optimize the velocity states at intermediate waypoints to minimize the total time of the multi-step operation can also be applied in Figure 6 In the loop between blocks 608 and 612 of , the loop is a method for time-optimal trajectory calculation for multi-step operations without any additional waypoints.
[0125] As about Figure 2 , 5B As described in and 8 and elsewhere above, the complete tool motion program includes a combination of several steps, including an air cutting step and a cutting step. The above-mentioned technology enables the calculation of non-static intermediate waypoint states, which optimizes 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 flowcharts 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.
[0126] In a typical embodiment where several machining operations are performed on each workpiece and the workpieces and obstacle environment are fixed in place 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.
[0127] In addition to the benefits gained by computerizing time-optimal trajectories for machining operations, there is an opportunity to improve the method of programming machine tools. The improved programming method simplifies programming for the user and also enables 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 cut commands 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.
[0128] An example of an improvement opportunity for programming machining operations can be found in the earlier discussion Figure 5A and 5B Found in. Figure 5A 5 shows a conventional programming technique for a milling operation, 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 ) before reaching the workpiece 500. 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 the corner of the workpiece 550, wherein the air cutting step trajectory is calculated so that the cutting head moves at a horizontal speed as the cutting speed (V feed ) and vertical speed is zero to reach waypoint 562.
[0129] 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.
[0130] Fig.14A is an illustration of a multi-step drilling operation performed using conventional motion planning methods, and Fig. 14B is a diagram of a multi-step drilling operation performed using the time-optimal trajectory motion planning method of the present disclosure. Fig.14A In FIG. 1 , 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.
[0131] exist Fig.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. The cutting head 1410 is then removed from the first hole by following trajectory step 1430 in an air cutting motion (as fast 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 only for illustration purposes. The dashed line of trajectory step 1420 represents the cutting motion, while the solid line of trajectory step 1430 represents the air cutting motion.
[0132] 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.
[0133] exist Fig. 14B In the time-optimal motion planning method that 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 to waypoint 1452 (as quickly as possible using a jerk-limited motion profile). 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, which is 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 feed The cutting head 1410 then proceeds to trajectory step 1470, which is the drilling of the second hole.
[0134] In the conventional programming method, the tool stops at each waypoint, the trajectory of each motion step is calculated separately, and the waypoint before the cutting step must be defined at a certain distance from the workpiece to allow time and space for the cutting head to accelerate to the 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 the time-optimal multi-step trajectory is calculated, and the waypoints are defined directly at physical feature points on the workpiece (e.g., the top of the hole), rather than at some artificial distance from the feature point.
[0135] Fig.15A is an illustration of a two-step machining operation performed using conventional programming and motion planning methods, and Fig. 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.
[0136] exist Fig.15A 1, a cutting head (not shown) will 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 the current position (waypoint 1510) to a point P1 (waypoint 1520) with coordinates (X1, Y1, Y1) in an air cutting step 1512, and then move the tool center point from the current position (waypoint 1520, P1) to a point P2 (waypoint 1530) with coordinates (X2, Y2, Z2) in a cutting step 1522.
[0137] 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 an 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 a cutting command, (X2, Y2, Z2) is the end coordinate, and FF is the cutting speed (also called V feed ). In conventional programming methods, the tool center point stops at waypoints 1520 and 1530, and the two steps have their trajectories calculated separately. This requires point P1 (waypoint 1520) to 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 at arrow 1524 is part of the trajectory of the second step. A similar deceleration distance 1526 is required before point P2 (waypoint 1530).
[0138] Techniques for instructing the controller to overlap the first step 1512 with the second step 1522 to prevent the tool from completely stopping and shorten 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 the corner of the workpiece 1500, the fused trajectory will still move vertically when it reaches the workpiece 1500. In addition, when overlapping of adjacent steps is applied, the resulting fused trajectory will not pass through the specified waypoint.
[0139] The disclosed technique overcomes the problems encountered by known prior art methods by combining multiple programming steps into a single command and calculating a multi-step trajectory that ensures that intermediate waypoint state boundary conditions are met.
[0140] exist Fig. 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. Fig. 15B The improved programming method can be directly on the corner of the workpiece 1550, rather than Fig.15A As in the conventional method, points P1 and P2 are defined at a certain distance from the workpiece.
[0141] The improved programming method allows the two-step operation to be programmed as a single command. The command has the following format "A_C, X1, Y1, Z1, X2, Y2, Z2, FF", where "A_C" is a command indicating air cutting to the first waypoint followed by cutting 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 arrives at point P1 (waypoint 1570) with the desired state (in this example, zero vertical speed and horizontal speed of FF (cutting speed)).
[0142] Fig. 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 dashed line 1564 to reach waypoint 1570 at the appropriate speed state for cutting step 1572, which does not have the same speed as cutting step 1572. Fig.15A The cutting step 1522 has unnecessary additional distance added to it.
[0143] Fig. 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.
[0144] 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 Fig. 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 to optimize the vertical speed of the drill head as it leaves the hole in order to minimize the overall trajectory time.
[0145] In all of these cases, fewer programming command lines are required, no human waypoint positions need to be approximated, and the resulting combined trajectory is multiple steps faster than with traditional programming methods. Fig.14A / 14B multi-step drilling operation and Fig.15A In the example of a multi-step milling operation of / 15B, the improved motion programming method compared with the traditional method resulted in a faster cycle time for a multi-step trajectory using the improved programming command technique and its combination.
[0146] 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.
[0147] Fig.16A is an illustration of a multi-pass milling operation performed using conventional programming and motion planning methods, and Fig. 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.
[0148] exist Fig.16AIn the embodiment of the present invention, a cutting head (not shown) will perform a multi-pass machining operation on the workpiece 1600, wherein the cutting head performs multiple repeated cutting passes on the workpiece 1600, each pass being offset from the previous pass by a certain distance. Fig.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.
[0149] exist Fig.16A In the conventional programming and trajectory calculation method of , each cutting step and each air cutting 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, the overlap still requires that the waypoints be defined as 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 bend before the cutting of the workpiece material is completed, thereby destroying 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.
[0150] exist Fig. 16B In the embodiment, the cutting head will perform a multi-pass machining operation on the workpiece 1650 similar to the operation described above, wherein the cutting head performs multiple repeated passes on the workpiece 1650, each pass being offset from the previous pass by a certain distance. Fig. 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 Fig.16A The starting point 1652 is defined as being away from the workpiece 1650; this is the performance position at which the cutting head starts.
[0151] exist Fig. 16BIn the improved programming and time-optimal trajectory calculation method of FIG. 16, the air cutting step and the cutting step can be combined into a single command, and the time-optimal trajectory for 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 coordinates of waypoint 1660, followed by a cutting operation from waypoint 1660 to the 3D coordinates of waypoint 1662 at the cutting speed "FF". This type of command was previously combined with Fig. 15B The combined command then calculates a trajectory to reach waypoint 1660 at cutting speed without stopping, as discussed.
[0152] The next command in the machining operation program will be: an air cut from waypoint 1662 to waypoint 1664, followed by a cutting operation from waypoint 1664 to waypoint 1666. Because the cutting bit reaches waypoint 1662 at cutting speed, and the upcoming air cut / cut command specifies that the cutting bit reaches 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.
[0153] Fig. 16B The improved programming method results in significantly fewer programming lines (4) compared to the conventional method (7), and the resulting time-optimal trajectory is significantly shorter in cycle time than the station-to-station conventional technique. Furthermore, the improved programming method allows waypoints to be defined directly on feature points of the workpiece, rather than at a certain distance from the workpiece, which distance must be guessed and tested.
[0154] Those skilled in the art will be able to imagine other programming commands that combine more than two steps into a single command line. Fig. 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.
[0155] Fig.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.
[0156] At box 1702, a description of a multi-step operation is provided, including at least two steps and three waypoints. The information provided at box 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., Fig. 15B The 3D coordinates of points P1 and P2) of the tool center point, as well as the cutting or feed speed. The "current" position of the tool center point is used as the third waypoint, i.e., the starting point of the first step, although the current position does not need to be explicitly listed.
[0157] At block 1704, the user writes a motion program, including 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 Fig. 15B An example of a command that defines a two-step operation is provided in the discussion of .
[0158] 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 in which 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 was discussed earlier, including using optimization techniques such as gradient descent to identify the optimal values for the intermediate waypoint states.
[0159] At block 1708, the time optimal trajectory is used by the machine controller to control the machine tool to perform the 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.
[0160] The disclosed time-optimal machine tool motion programming method provides several advantages over conventional programming methods. The time-optimal programming method allows waypoints to be defined directly at physical feature points on the workpiece, without stopping the tool at intermediate waypoints, and combining 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 the overall cycle time.
[0161] Throughout the foregoing discussion, various computers and controllers are 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 the optional other computers discussed above. Specifically, the processor in the controller or other computer is configured to perform the above-mentioned time optimal machine tool motion planning, including Figure 6 , 9 , 11, 13 and 17, as well as the above equations and other techniques.
[0162] Although various exemplary aspects and embodiments of the method for time-optimal machine tool motion planning and programming 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 machine tool motion planning, the method comprising: providing input data for a machining operation, including a geometry of a workpiece and at least one feature to be machined in or on the workpiece by a machine tool, a machining feed rate, and machine tool limits including a maximum speed, a maximum acceleration, and a maximum jerk; a plurality of waypoints defining a multi-step motion plan for the machining operation, including a start waypoint and an end waypoint for at least two steps, wherein at least one intermediate waypoint comprises an intermediate waypoint common to any two adjacent steps, wherein at least one of the at least two steps is an air cutting step having flexibility in the shape and speed of its trajectory; generating, by a computing device having a processor and a memory, a trajectory of the multi-step motion plan, comprising calculating a trajectory and a time span for each step of the motion plan, wherein the at least one intermediate waypoint has a non-stationary state, and wherein a total time is a sum of the time spans of all the at least two steps; as well as One or more states of the at least one intermediate waypoint are calculated to provide a trajectory for the multi-step motion plan. 2 . The method of claim 1 , wherein the non-stationary state of the at least one intermediate waypoint comprises a speed state.
3. The method according to claim 2, wherein: Generating a trajectory for the multi-step motion plan includes calculating an initial estimate of the speed state for each intermediate waypoint, including calculating the initial estimate of the speed state based on a distance traveled in a step of the motion plan, a speed state at an end of the step opposite the intermediate waypoint, and the machine tool limit.
4. The method according to claim 1, wherein: One of the at least two steps of the motion plan is a cutting step with defined boundary conditions, the defined boundary conditions including the positions of a start waypoint and an end waypoint, a trajectory shape of the cutting step, and a speed of the cutting step being equal to the feed speed.
5. The method according to claim 1, wherein: Calculating the trajectory and time span of each step of the motion plan includes calculating a motion profile in each of at least two coordinate directions for each of the at least one air cutting step, wherein the motion profile is calculated using equations for seven-stage jerk-constrained motion, one or more states of the at least one intermediate waypoint, the machine tool constraints, and start and end boundary conditions of the motion plan.
6. The method of claim 1 , wherein calculating the one or more states of the at least one intermediate waypoint comprises iteratively revising the one or more states and generating a new trajectory for the multi-step motion plan until a state is found that results in a trajectory with a minimum total time.
7. The method according to claim 6, wherein: Iteratively revising the one or more states and generating a new trajectory for the multi-step motion plan includes using a gradient descent method to identify the one or more states that result in the minimum total time for the at least one intermediate waypoint.
8. The method according to claim 1, further comprising: One or more new waypoints are added to one of the at least one air cutting step of the motion plan, and a trajectory of the revised motion plan including the one or more new waypoints is generated, wherein the one or more new waypoints have a changeable non-fixed state.
9. The method according to claim 8, wherein: Generating a trajectory for the revised motion plan includes calculating a first trajectory segment from a starting waypoint of the one air cutting step to the one or more new waypoints and a second trajectory segment from the one or more new waypoints to a destination waypoint of the one air cutting step.
10. The method according to claim 8, wherein: Generating a trajectory for the revised motion plan includes optimizing states of the one or more new waypoints and the at least one intermediate waypoint to provide a trajectory for the revised motion plan having a minimum total time.
11. The method of claim 10, wherein optimizing the states of the one or more new waypoints and the at least one intermediate waypoint comprises using a gradient descent method to identify states of the one or more new waypoints and the at least one intermediate waypoint that result in a minimum total time for the revised motion plan.
12. The method of claim 8, wherein the one or more new waypoints are added to avoid interference between the trajectory and an obstacle, wherein the obstacle is a physical object or a mathematically defined interference region into which the machine tool is prohibited from entering.
13. The method according to claim 12, wherein: Adding the one or more new waypoints includes calculating a critical point at a position closest to a waypoint among the plurality of waypoints at which the trajectory interferes with the obstacle, and calculating a position of the one or more new waypoints offset from the critical point and outside the obstacle.
14. The method of claim 13, further comprising computing an initial estimate of the non-stationary state of the one or more new waypoints.
15. The method according to claim 1, wherein: The machine tool is a multi-axis industrial robot or a multi-axis CNC machine.
16. The method according to claim 1, wherein: The machining operation is drilling one or more holes in the workpiece, and the multiple waypoints are top points and bottom points on the center line of the one or more holes, or the machining operation is milling one or more strokes on the workpiece, and the multiple waypoints are starting points and ending points on the center line of the one or more strokes.
17. The method of claim 1, further comprising using the trajectory to perform the machining operation with the machine tool.
18. A method for machine tool motion planning, the method comprising: providing input data for a machining operation, including a geometry of a workpiece and at least one feature to be machined in or on the workpiece by a machine tool, a machining feed rate, and machine tool limits including a maximum speed, a maximum acceleration, and a maximum jerk; a plurality of waypoints defining a multi-step motion plan for the machining operation, including a start waypoint and an end waypoint for two steps, intermediate waypoints being waypoints common to the two steps, wherein one of the two steps is an air cutting step having flexibility in the shape and speed of its trajectory, and the other step is either another air cutting step or a cutting step having defined and unchangeable boundary conditions; calculating an initial estimate of the non-stationary state for the intermediate waypoint, including calculating the initial estimate of the non-stationary state based on a distance traveled in an air cutting step of the motion plan, a state at an end of the one air cutting step opposite the intermediate waypoint, and the machine tool limits; generating, by a computing device including a processor and a memory, a trajectory of the multi-step motion plan, comprising calculating a trajectory and a time span for each step of the motion plan, wherein a total time is a sum of the time spans of all the two steps; as well as The states of the intermediate waypoints are calculated to provide a trajectory for the multi-step motion plan.
19. The method according to claim 18, wherein: Calculating the trajectory and time span of each step of the motion plan includes calculating a motion profile in each of at least two coordinate directions for each of the individual air cutting steps, wherein the motion profile is calculated using equations for seven-stage jerk-limited motion, states of the intermediate waypoints, the machine tool limits, and start and end boundary conditions of the motion plan.
20. The method of claim 18, wherein calculating the states of the intermediate waypoints comprises iteratively revising the states and generating new trajectories for the multi-step motion plan until a state is found that results in the trajectory with a minimum total time.
21. The method of claim 18, further comprising: Adding one or more new waypoints to one of the air cutting steps of the motion plan, and generating a trajectory of the revised motion plan including the one or more new waypoints, wherein the one or more new waypoints have a variable non-fixed state, including calculating a first trajectory segment from a starting waypoint of the one air cutting step to the one or more new waypoints and a second trajectory segment from the one or more new waypoints to a destination waypoint of the one air cutting step.
22. The method according to claim 21, wherein: Generating a trajectory for the revised motion plan includes calculating an initial estimate of the states of the one or more new waypoints and then optimizing the states of the one or more new waypoints and the intermediate waypoints to provide a trajectory for the revised motion plan having a minimum total time.
23. The method according to claim 21, wherein: The one or more new waypoints are added to avoid interference between the trajectory and the obstacle, wherein adding the one or more new waypoints includes calculating a critical point at a position closest to a waypoint among the plurality of waypoints at which the trajectory interferes with the obstacle, and calculating a position of the one or more new waypoints that is offset from the critical point and outside the obstacle.