CA2173241C - Motion control with precomputation - Google Patents

Motion control with precomputation

Info

Publication number
CA2173241C
CA2173241C CA002173241A CA2173241A CA2173241C CA 2173241 C CA2173241 C CA 2173241C CA 002173241 A CA002173241 A CA 002173241A CA 2173241 A CA2173241 A CA 2173241A CA 2173241 C CA2173241 C CA 2173241C
Authority
CA
Canada
Prior art keywords
motor
velocity
trajectory
commands
motion
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Expired - Fee Related
Application number
CA002173241A
Other languages
French (fr)
Other versions
CA2173241A1 (en
Inventor
John H. Olsen
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Omax Corp
Original Assignee
Omax Corp
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Family has litigation
First worldwide family litigation filed litigation Critical https://patents.darts-ip.com/?family=22462097&utm_source=google_patent&utm_medium=platform_link&utm_campaign=public_patent_search&patent=CA2173241(C) "Global patent litigation dataset” by Darts-ip is licensed under a Creative Commons Attribution 4.0 International License.
Application filed by Omax Corp filed Critical Omax Corp
Publication of CA2173241A1 publication Critical patent/CA2173241A1/en
Application granted granted Critical
Publication of CA2173241C publication Critical patent/CA2173241C/en
Anticipated expiration legal-status Critical
Expired - Fee Related legal-status Critical Current

Links

Classifications

    • GPHYSICS
    • G05CONTROLLING; REGULATING
    • G05BCONTROL OR REGULATING SYSTEMS IN GENERAL; FUNCTIONAL ELEMENTS OF SUCH SYSTEMS; MONITORING OR TESTING ARRANGEMENTS FOR SUCH SYSTEMS OR ELEMENTS
    • G05B19/00Programme-control systems
    • G05B19/02Programme-control systems electric
    • G05B19/18Numerical control [NC], i.e. automatically operating machines, in particular machine tools, e.g. in a manufacturing environment, so as to execute positioning, movement or co-ordinated operations by means of programme data in numerical form
    • BPERFORMING OPERATIONS; TRANSPORTING
    • B26HAND CUTTING TOOLS; CUTTING; SEVERING
    • B26FPERFORATING; PUNCHING; CUTTING-OUT; STAMPING-OUT; SEVERING BY MEANS OTHER THAN CUTTING
    • B26F3/00Severing by means other than cutting; Apparatus therefor
    • B26F3/004Severing by means other than cutting; Apparatus therefor by means of a fluid jet
    • GPHYSICS
    • G05CONTROLLING; REGULATING
    • G05BCONTROL OR REGULATING SYSTEMS IN GENERAL; FUNCTIONAL ELEMENTS OF SUCH SYSTEMS; MONITORING OR TESTING ARRANGEMENTS FOR SUCH SYSTEMS OR ELEMENTS
    • G05B19/00Programme-control systems
    • G05B19/02Programme-control systems electric
    • G05B19/18Numerical control [NC], i.e. automatically operating machines, in particular machine tools, e.g. in a manufacturing environment, so as to execute positioning, movement or co-ordinated operations by means of programme data in numerical form
    • G05B19/19Numerical control [NC], i.e. automatically operating machines, in particular machine tools, e.g. in a manufacturing environment, so as to execute positioning, movement or co-ordinated operations by means of programme data in numerical form characterised by positioning or contouring control systems, e.g. to control position from one programmed point to another or to control movement along a programmed continuous path
    • G05B19/21Numerical control [NC], i.e. automatically operating machines, in particular machine tools, e.g. in a manufacturing environment, so as to execute positioning, movement or co-ordinated operations by means of programme data in numerical form characterised by positioning or contouring control systems, e.g. to control position from one programmed point to another or to control movement along a programmed continuous path using an incremental digital measuring device
    • G05B19/23Numerical control [NC], i.e. automatically operating machines, in particular machine tools, e.g. in a manufacturing environment, so as to execute positioning, movement or co-ordinated operations by means of programme data in numerical form characterised by positioning or contouring control systems, e.g. to control position from one programmed point to another or to control movement along a programmed continuous path using an incremental digital measuring device for point-to-point control
    • G05B19/231Numerical control [NC], i.e. automatically operating machines, in particular machine tools, e.g. in a manufacturing environment, so as to execute positioning, movement or co-ordinated operations by means of programme data in numerical form characterised by positioning or contouring control systems, e.g. to control position from one programmed point to another or to control movement along a programmed continuous path using an incremental digital measuring device for point-to-point control the positional error is used to control continuously the servomotor according to its magnitude
    • G05B19/237Numerical control [NC], i.e. automatically operating machines, in particular machine tools, e.g. in a manufacturing environment, so as to execute positioning, movement or co-ordinated operations by means of programme data in numerical form characterised by positioning or contouring control systems, e.g. to control position from one programmed point to another or to control movement along a programmed continuous path using an incremental digital measuring device for point-to-point control the positional error is used to control continuously the servomotor according to its magnitude with a combination of feedback covered by G05B19/232 - G05B19/235
    • GPHYSICS
    • G05CONTROLLING; REGULATING
    • G05BCONTROL OR REGULATING SYSTEMS IN GENERAL; FUNCTIONAL ELEMENTS OF SUCH SYSTEMS; MONITORING OR TESTING ARRANGEMENTS FOR SUCH SYSTEMS OR ELEMENTS
    • G05B19/00Programme-control systems
    • G05B19/02Programme-control systems electric
    • G05B19/18Numerical control [NC], i.e. automatically operating machines, in particular machine tools, e.g. in a manufacturing environment, so as to execute positioning, movement or co-ordinated operations by means of programme data in numerical form
    • G05B19/19Numerical control [NC], i.e. automatically operating machines, in particular machine tools, e.g. in a manufacturing environment, so as to execute positioning, movement or co-ordinated operations by means of programme data in numerical form characterised by positioning or contouring control systems, e.g. to control position from one programmed point to another or to control movement along a programmed continuous path
    • G05B19/21Numerical control [NC], i.e. automatically operating machines, in particular machine tools, e.g. in a manufacturing environment, so as to execute positioning, movement or co-ordinated operations by means of programme data in numerical form characterised by positioning or contouring control systems, e.g. to control position from one programmed point to another or to control movement along a programmed continuous path using an incremental digital measuring device
    • G05B19/25Numerical control [NC], i.e. automatically operating machines, in particular machine tools, e.g. in a manufacturing environment, so as to execute positioning, movement or co-ordinated operations by means of programme data in numerical form characterised by positioning or contouring control systems, e.g. to control position from one programmed point to another or to control movement along a programmed continuous path using an incremental digital measuring device for continuous-path control
    • G05B19/251Numerical control [NC], i.e. automatically operating machines, in particular machine tools, e.g. in a manufacturing environment, so as to execute positioning, movement or co-ordinated operations by means of programme data in numerical form characterised by positioning or contouring control systems, e.g. to control position from one programmed point to another or to control movement along a programmed continuous path using an incremental digital measuring device for continuous-path control the positional error is used to control continuously the servomotor according to its magnitude
    • G05B19/258Numerical control [NC], i.e. automatically operating machines, in particular machine tools, e.g. in a manufacturing environment, so as to execute positioning, movement or co-ordinated operations by means of programme data in numerical form characterised by positioning or contouring control systems, e.g. to control position from one programmed point to another or to control movement along a programmed continuous path using an incremental digital measuring device for continuous-path control the positional error is used to control continuously the servomotor according to its magnitude with a combination of feedback covered by G05B19/253 - G05B19/256
    • GPHYSICS
    • G05CONTROLLING; REGULATING
    • G05BCONTROL OR REGULATING SYSTEMS IN GENERAL; FUNCTIONAL ELEMENTS OF SUCH SYSTEMS; MONITORING OR TESTING ARRANGEMENTS FOR SUCH SYSTEMS OR ELEMENTS
    • G05B19/00Programme-control systems
    • G05B19/02Programme-control systems electric
    • G05B19/18Numerical control [NC], i.e. automatically operating machines, in particular machine tools, e.g. in a manufacturing environment, so as to execute positioning, movement or co-ordinated operations by means of programme data in numerical form
    • G05B19/19Numerical control [NC], i.e. automatically operating machines, in particular machine tools, e.g. in a manufacturing environment, so as to execute positioning, movement or co-ordinated operations by means of programme data in numerical form characterised by positioning or contouring control systems, e.g. to control position from one programmed point to another or to control movement along a programmed continuous path
    • G05B19/27Numerical control [NC], i.e. automatically operating machines, in particular machine tools, e.g. in a manufacturing environment, so as to execute positioning, movement or co-ordinated operations by means of programme data in numerical form characterised by positioning or contouring control systems, e.g. to control position from one programmed point to another or to control movement along a programmed continuous path using an absolute digital measuring device
    • G05B19/29Numerical control [NC], i.e. automatically operating machines, in particular machine tools, e.g. in a manufacturing environment, so as to execute positioning, movement or co-ordinated operations by means of programme data in numerical form characterised by positioning or contouring control systems, e.g. to control position from one programmed point to another or to control movement along a programmed continuous path using an absolute digital measuring device for point-to-point control
    • G05B19/291Numerical control [NC], i.e. automatically operating machines, in particular machine tools, e.g. in a manufacturing environment, so as to execute positioning, movement or co-ordinated operations by means of programme data in numerical form characterised by positioning or contouring control systems, e.g. to control position from one programmed point to another or to control movement along a programmed continuous path using an absolute digital measuring device for point-to-point control the positional error is used to control continuously the servomotor according to its magnitude
    • G05B19/298Numerical control [NC], i.e. automatically operating machines, in particular machine tools, e.g. in a manufacturing environment, so as to execute positioning, movement or co-ordinated operations by means of programme data in numerical form characterised by positioning or contouring control systems, e.g. to control position from one programmed point to another or to control movement along a programmed continuous path using an absolute digital measuring device for point-to-point control the positional error is used to control continuously the servomotor according to its magnitude with a combination of feedback covered by G05B19/293 - G05B19/296
    • GPHYSICS
    • G05CONTROLLING; REGULATING
    • G05BCONTROL OR REGULATING SYSTEMS IN GENERAL; FUNCTIONAL ELEMENTS OF SUCH SYSTEMS; MONITORING OR TESTING ARRANGEMENTS FOR SUCH SYSTEMS OR ELEMENTS
    • G05B19/00Programme-control systems
    • G05B19/02Programme-control systems electric
    • G05B19/18Numerical control [NC], i.e. automatically operating machines, in particular machine tools, e.g. in a manufacturing environment, so as to execute positioning, movement or co-ordinated operations by means of programme data in numerical form
    • G05B19/416Numerical control [NC], i.e. automatically operating machines, in particular machine tools, e.g. in a manufacturing environment, so as to execute positioning, movement or co-ordinated operations by means of programme data in numerical form characterised by control of velocity, acceleration or deceleration
    • BPERFORMING OPERATIONS; TRANSPORTING
    • B26HAND CUTTING TOOLS; CUTTING; SEVERING
    • B26DCUTTING; DETAILS COMMON TO MACHINES FOR PERFORATING, PUNCHING, CUTTING-OUT, STAMPING-OUT OR SEVERING
    • B26D5/00Arrangements for operating and controlling machines or devices for cutting, cutting-out, stamping-out, punching, perforating, or severing by means other than cutting
    • GPHYSICS
    • G05CONTROLLING; REGULATING
    • G05BCONTROL OR REGULATING SYSTEMS IN GENERAL; FUNCTIONAL ELEMENTS OF SUCH SYSTEMS; MONITORING OR TESTING ARRANGEMENTS FOR SUCH SYSTEMS OR ELEMENTS
    • G05B2219/00Program-control systems
    • G05B2219/30Nc systems
    • G05B2219/34Director, elements to supervisory
    • G05B2219/34097Calculate movement from part program offline, calculate axis references online
    • GPHYSICS
    • G05CONTROLLING; REGULATING
    • G05BCONTROL OR REGULATING SYSTEMS IN GENERAL; FUNCTIONAL ELEMENTS OF SUCH SYSTEMS; MONITORING OR TESTING ARRANGEMENTS FOR SUCH SYSTEMS OR ELEMENTS
    • G05B2219/00Program-control systems
    • G05B2219/30Nc systems
    • G05B2219/34Director, elements to supervisory
    • G05B2219/34098Slope fitting, fairing contour, curve fitting, transition
    • GPHYSICS
    • G05CONTROLLING; REGULATING
    • G05BCONTROL OR REGULATING SYSTEMS IN GENERAL; FUNCTIONAL ELEMENTS OF SUCH SYSTEMS; MONITORING OR TESTING ARRANGEMENTS FOR SUCH SYSTEMS OR ELEMENTS
    • G05B2219/00Program-control systems
    • G05B2219/30Nc systems
    • G05B2219/34Director, elements to supervisory
    • G05B2219/34221Computer delivers control pulses from table directly to motors
    • GPHYSICS
    • G05CONTROLLING; REGULATING
    • G05BCONTROL OR REGULATING SYSTEMS IN GENERAL; FUNCTIONAL ELEMENTS OF SUCH SYSTEMS; MONITORING OR TESTING ARRANGEMENTS FOR SUCH SYSTEMS OR ELEMENTS
    • G05B2219/00Program-control systems
    • G05B2219/30Nc systems
    • G05B2219/35Nc in input of data, input till input file format
    • G05B2219/35002Parametric machine control, direct control from cad data, no nc data
    • GPHYSICS
    • G05CONTROLLING; REGULATING
    • G05BCONTROL OR REGULATING SYSTEMS IN GENERAL; FUNCTIONAL ELEMENTS OF SUCH SYSTEMS; MONITORING OR TESTING ARRANGEMENTS FOR SUCH SYSTEMS OR ELEMENTS
    • G05B2219/00Program-control systems
    • G05B2219/30Nc systems
    • G05B2219/35Nc in input of data, input till input file format
    • G05B2219/35097Generation of cutter path, offset curve
    • GPHYSICS
    • G05CONTROLLING; REGULATING
    • G05BCONTROL OR REGULATING SYSTEMS IN GENERAL; FUNCTIONAL ELEMENTS OF SUCH SYSTEMS; MONITORING OR TESTING ARRANGEMENTS FOR SUCH SYSTEMS OR ELEMENTS
    • G05B2219/00Program-control systems
    • G05B2219/30Nc systems
    • G05B2219/35Nc in input of data, input till input file format
    • G05B2219/35132Generate path as function of precision and surface finish of each portion
    • GPHYSICS
    • G05CONTROLLING; REGULATING
    • G05BCONTROL OR REGULATING SYSTEMS IN GENERAL; FUNCTIONAL ELEMENTS OF SUCH SYSTEMS; MONITORING OR TESTING ARRANGEMENTS FOR SUCH SYSTEMS OR ELEMENTS
    • G05B2219/00Program-control systems
    • G05B2219/30Nc systems
    • G05B2219/36Nc in input of data, input key till input tape
    • G05B2219/36308Table for cutting conditions
    • GPHYSICS
    • G05CONTROLLING; REGULATING
    • G05BCONTROL OR REGULATING SYSTEMS IN GENERAL; FUNCTIONAL ELEMENTS OF SUCH SYSTEMS; MONITORING OR TESTING ARRANGEMENTS FOR SUCH SYSTEMS OR ELEMENTS
    • G05B2219/00Program-control systems
    • G05B2219/30Nc systems
    • G05B2219/36Nc in input of data, input key till input tape
    • G05B2219/36568Control data is sequence of position, axis indication, time delay for speed
    • GPHYSICS
    • G05CONTROLLING; REGULATING
    • G05BCONTROL OR REGULATING SYSTEMS IN GENERAL; FUNCTIONAL ELEMENTS OF SUCH SYSTEMS; MONITORING OR TESTING ARRANGEMENTS FOR SUCH SYSTEMS OR ELEMENTS
    • G05B2219/00Program-control systems
    • G05B2219/30Nc systems
    • G05B2219/41Servomotor, servo controller till figures
    • G05B2219/41186Lag
    • GPHYSICS
    • G05CONTROLLING; REGULATING
    • G05BCONTROL OR REGULATING SYSTEMS IN GENERAL; FUNCTIONAL ELEMENTS OF SUCH SYSTEMS; MONITORING OR TESTING ARRANGEMENTS FOR SUCH SYSTEMS OR ELEMENTS
    • G05B2219/00Program-control systems
    • G05B2219/30Nc systems
    • G05B2219/41Servomotor, servo controller till figures
    • G05B2219/41384Force estimation using position observer
    • GPHYSICS
    • G05CONTROLLING; REGULATING
    • G05BCONTROL OR REGULATING SYSTEMS IN GENERAL; FUNCTIONAL ELEMENTS OF SUCH SYSTEMS; MONITORING OR TESTING ARRANGEMENTS FOR SUCH SYSTEMS OR ELEMENTS
    • G05B2219/00Program-control systems
    • G05B2219/30Nc systems
    • G05B2219/41Servomotor, servo controller till figures
    • G05B2219/41408Control of jerk, change of acceleration
    • GPHYSICS
    • G05CONTROLLING; REGULATING
    • G05BCONTROL OR REGULATING SYSTEMS IN GENERAL; FUNCTIONAL ELEMENTS OF SUCH SYSTEMS; MONITORING OR TESTING ARRANGEMENTS FOR SUCH SYSTEMS OR ELEMENTS
    • G05B2219/00Program-control systems
    • G05B2219/30Nc systems
    • G05B2219/42Servomotor, servo controller kind till VSS
    • G05B2219/42072Position feedback and speed feedforward, speed from data of tape
    • GPHYSICS
    • G05CONTROLLING; REGULATING
    • G05BCONTROL OR REGULATING SYSTEMS IN GENERAL; FUNCTIONAL ELEMENTS OF SUCH SYSTEMS; MONITORING OR TESTING ARRANGEMENTS FOR SUCH SYSTEMS OR ELEMENTS
    • G05B2219/00Program-control systems
    • G05B2219/30Nc systems
    • G05B2219/42Servomotor, servo controller kind till VSS
    • G05B2219/42092Position and force control loop together
    • GPHYSICS
    • G05CONTROLLING; REGULATING
    • G05BCONTROL OR REGULATING SYSTEMS IN GENERAL; FUNCTIONAL ELEMENTS OF SUCH SYSTEMS; MONITORING OR TESTING ARRANGEMENTS FOR SUCH SYSTEMS OR ELEMENTS
    • G05B2219/00Program-control systems
    • G05B2219/30Nc systems
    • G05B2219/43Speed, acceleration, deceleration control ADC
    • G05B2219/43162Motion control, movement speed combined with position
    • GPHYSICS
    • G05CONTROLLING; REGULATING
    • G05BCONTROL OR REGULATING SYSTEMS IN GENERAL; FUNCTIONAL ELEMENTS OF SUCH SYSTEMS; MONITORING OR TESTING ARRANGEMENTS FOR SUCH SYSTEMS OR ELEMENTS
    • G05B2219/00Program-control systems
    • G05B2219/30Nc systems
    • G05B2219/45Nc applications
    • G05B2219/45036Waterjet cutting
    • GPHYSICS
    • G05CONTROLLING; REGULATING
    • G05BCONTROL OR REGULATING SYSTEMS IN GENERAL; FUNCTIONAL ELEMENTS OF SUCH SYSTEMS; MONITORING OR TESTING ARRANGEMENTS FOR SUCH SYSTEMS OR ELEMENTS
    • G05B2219/00Program-control systems
    • G05B2219/30Nc systems
    • G05B2219/49Nc machine tool, till multiple
    • G05B2219/49369Minimize machining time by maximizing feed, speed
    • GPHYSICS
    • G05CONTROLLING; REGULATING
    • G05BCONTROL OR REGULATING SYSTEMS IN GENERAL; FUNCTIONAL ELEMENTS OF SUCH SYSTEMS; MONITORING OR TESTING ARRANGEMENTS FOR SUCH SYSTEMS OR ELEMENTS
    • G05B2219/00Program-control systems
    • G05B2219/30Nc systems
    • G05B2219/50Machine tool, machine tool null till machine tool work handling
    • G05B2219/50207Surface finish

Abstract

A system for controlling motion of machine tools and industrial robots. From the specification of a part to be cut or a path to be followed by a machine tool or robot, the system calculates for each axis, for each incremental step along the path, a position command (69), a time delay between successive position commands, and, optionally, a force command (68) based on a prediction of predicted resistive forces. Calculations are specified for precisely controlling velocity, acceleration, and jerk. The generated data is stored in a memory device and subsequently directed to the machine tool or robot.

Description

WO95/10076 ~ 7 3 2 4 1 PCT~S94/11161 MOTION CONTROL WITH PRECOMPUTATION

This invention pertains to systems for controlling motion in machine tools and industrial robots and, for such devices, methods for controlling motion velocity, acceleration, and jerk, particularly in jet cutting tools~

Background As shown in Figure 1, prior art control of numerically controlled machine tools is accomplished with a memory device 1, such as a magnetic disk drive, cont~; n; ng a path specification composed of straight line segments and arc segments specified by their end points, which path specification is read by a computer 2 and transferred to a controller 3 which is coupled to the machine tool drives 8. A
common form of machine tool drive is shown as part of Figure 3 by a servo 56 driving a motor 63.
The controllers for numerically controlled machine tools are specialty computers sold in relatively low volume at a high price which, in real time, translate the path specification into incremental com~n~c for the machine tool drives. The inner workings are proprietary to the makers and it is very difficult for the buyer to accomplish anything with the controller other than the methods offered by the manufacturer. In particular it is difficult to precisely control the traverse velocity, acceleration, and jerk at every portion of a complex curve.
As CAD and computer representation of parts has become common, a group of suppliers has arisen that supplies software which reads the CAD file and writes a part program for use in the machine tool controller (CAD/CAM software). These systems are better than hand programming, but still can not provide full control of the machine tool because of the machine tool controller limits. A number of jet cutting machines have been built using these technologies.
Another group of suppliers has arisen that provides plug in cards for a personal computer (PC) that contain auxiliary microprocessor chips that do the calculations normally performed in a machine tool controller. The PC provides to the auxiliary microprocessor a data stream analogous to the SUBSTITUTE SHEET (RULE 26) WO95/10076 PCT~S94/11161 2 1 7 3~ ~ 1 machine tool program, but does not directly control the motion which is accomplished by the a~ ry microprocessor. These cards provide a more cost effective system than a machine tool controller but still suffer from limited ability to control velocity along a complex path. The systems are simply a machine tool controller packaged within a PC. In general they use CAD/CAM software as described above.
The functions performed by prior art controllers for numerically controlled machine tools are illustrated within the controller block 3 of Figure 1 and described by the following references: U.S. Patent Re. 30,132 (Irie); U.S.
Patent 4,214,192 (Bromer); U.S. Patent 4,456,863 (Matusek);
U.S. Patent 4,600,985 (Nozawa); T. Bullock, "Motion Control and Industrial Controllers", Motion Control September/October, 1990; T. Bullock, "Linear and Circular Interpolation", Motion Control, April 1992; C. Wilson, "How Close Do You Have to Specify Points in a Contouring Application?", Motion Control, May 1993.
The Irie reference describes how the path to be followed by the point of a tool may be described as line segments specified by beginning and ending points. These beginning and ending points are input to a controller which interpolates all of the intermediate points on a real time basis and instructs the drive motors such that the point of the tool is co~n~e~
to pass through each of the interme~iAte points.
The Wilson reference describes how the controllers have become much more sophisticated since Irie. As described by Wilson, it is desirable to achieve more carefully tailored control of the motion of the tool than is possible by a single circuit controller. Ideally, motion control is calculated to adjust desired velocity and acceleration in between each individual point to which the machine tool can be commanded.
This is typically on the order of 2,000 points per inch. When the machine tool is travelling at many inches per second, there is very little time to make the appropriate calculations to adjust the velocity and acceleration cnmmAn~ as desired between each point. Consequently, Wilson describes how modern controllers contain two circuits. The first circuit 4 receives the comm~n~ from the computer as they have been previously stored, typically in the form of straight line segments and arc segments, and computes the beginning point SUBSTITUTE SHEEr (RULE 26) WO95/10076 ~ 1 7 3 2 4 1 PCT~S94/11161 and ending point of each segment, with interpolation of a moderate number of points in between. This first circuit is referred to in Figure l as a trajectory interpolator 4. The data from this first circuit is then provided to a second circuit referred to in Figure l as an update interpolator 5.
Within the time allowed by each update cycle of the servomotors or stepper motors of the machine tool drives, the update interpolator 5 interpolates additional in between points to which the machine tool should be commanded and adjusts the velocity and acceleration of the machine tool to optimize performAnce of the tool.
Wilson describes how the update interpolator can accept desired velocity comm~n~c which were recorded ïn the memory device and passed on by the computer and adjust the commands to the machine tool drives to cnmm~n~ a constant velocity within each line segment as shown in Figure 6(A). Wilson further describes how an improved interpolator ~ill consider acceleration limitations of the machine tool and acceleration preferences for producing desired results to adjust the commands to the drives to operate at preferred accelerations in between specified points as shown in Figure 6(C). This avoids undesired acceleration effects due to sudden velocity changes. Wilson then further describes how sudden changes in acceleration can produce undesired jerk of the machine tool.
To avoid the jerk, the most sophisticated update interpolators can further adjust the c~mm~n~c to the machine tool drives so that there are no sudden changes in acceleration and the graph of velocity against position of the tool is comprised only of smooth curves as shown in Figure 6(D).
In addition to the trajectory interpolator and the update interpolator, the other references describe further improvements to the design of real time controllers. As described by Matusek, there is normally a lag between the cq~-n~ed position of the tool and the actual position achieved by the tool. This lag can be empirically measured and a table of calibration adjustments can be developed. When the calibration adjustments are added to the desired position comm~n~ by a servo response calibration circuit 6, the resulting cnmm~n~ to the drive make up for the lag.
Another solution of the problem of lag, known as feed forward is further described in the l990 article by T.

SUBSTITUTE SHEET (RULE 26~

WO95/10076 ~i~ 3~ ~1 PCT~S94/11161 Bullock. In addition to interpreting position cor~n~.~ to compute desired changes in position with a position commAn~
interpreter circuit 54 as shown in Figure 3, a controller with feed forward computes the desired velocity with a position co~-n~ differentiator circuit 53, and sends the appropriate voltage to achieve the commanded velocity to the servo input 57.
Another improvement to the circuits of prior art controllers is described in the Nozawa reference. Because of the previously described lag between the commanded position and the actual position, when a machine tool is commanded to execute a sharp corner, it will round the corner. Nozawa describes a solution to the problem of rounding whereby the commands to begin moving in the direction following the corner are delayed while the cn -n~ to continue movement in the direction preceding the corner are continued until the machine tool approaches an acceptable tolerance for rounding. Nozawa refers to these circuits as acceleration/deceleration circuits 7.
With the addition of the above-described circuits, which operate in real time to make appropriate adjustments to the cn-~n~s passed through to the drive motors, sophisticated controllers have become quite complex. Furthermore, the information which must be supplied to the controllers in order to generate the desired motion, including limitation of errors and preferred velocity control, have also become complex.
However, because the controllers must perform complex calculations to generate the interpolated points within each specified line segment and other functions, if the line segments supplied to the controller are too short, or if too much additional data is supplied to the controller, the controller cannot keep up with the required calculations, limiting the benefits that can be realized from the present complexity.
Also, the most sophisticated controllers do not consider predictions of resisting forces that the motors will experience.

SUBSTITUTE SHEET (RULE 26) WO95/10076 ~ ~7 3 2 4 ~ PCT~S94/11161 Summary of the Invention As shown in Figure 2, the present invention controls a machine tool directly from a computer without add in cards and without an interm~;Ate cnmm~n~ interpreting controller. It is particularly useful when accurate velocity control is required as for jet cutting processes, but also has other applications. In this system, all computation is done before data is sent to the machine tool, resulting in a huge (multiple megabytes) number of incremental instructions which are stored in memory and are sent to the machine tool sometime later when the part is to be cut. With this system, the file size is related to the path length, but computation time is not related to the motion speed and there are no time limits on complex computations, allowing computations which fully account for the interaction between the tool and the material and optimize machine limitations such as m-x;ml7m velocity, m-~imllm acceleration, and problems of jerk when changing rates of acceleration.
Moreover, there is no computing hardware required beyond the PC so that the solution is very cost effective. A 486 PC
for $2000 has far more computing power than a machine tool controller costing 5 to lO times as much. With the system disclosed herein, it is no more difficult to cut a part than to plot or print a drawing, while having complete control over the velocity at every point along the path.
With this invention, the sophisticated circuits of prior art controllers are replaced by calculations performed by the computer not in real time; that is, all of the calculations that might be done by a controller are performed before any information is sent to the machine tool drives. With appropriate programming of the computer, all of the calculations of sophisticated controllers can be duplicated and can be improved upon without adding hardware. Because the calculations are not performed real time, separate circuits are not required for trajectory interpolation and for update interpolation. The calibration table of Matusek can be incorporated. The acceleration/deceleration circuit of Nozawa used to m; n i m;ze rounding of corners can be incorporated.
Careful adjustment of velocity to el;m;nAte any abrupt changes in acceleration, as described in the Wilson reference, can be SUBSTITIJTE SHEET (RULE 26) WO95/10076 ~ PCT~S94/11161 incorporated. The preferred embodiment allows all of these calculations to be made and adjusted for each smallest possible step that the machine tool can make, no matter how small.
To accomplish these features, the invented system creates a large data file composed of alternating bytes (16 bits per byte in the preferred embodiment) of information. Every other byte in the file is a step byte which contains a +l, a zero, or a -l for each of the axes in the machine tool. In between each of these step bytes is a time delay byte which specifies the time delay to wait between sending the preceding step command and the succeeding step csm~n~. The time delay byte is expressed in cycles of a timer chip in the computer to wait between sending step comm~n~. Two successive step commands are sent to the machine tool drives at the speed selected for the timer chip multiplied by the number of timer ticks specified in the time delay byte.
In another aspect of the invention, the step command byte includes information to turn on or turn off, or to increase or decrease, or adjust to any desired value, any element of the manufacturing process such as which tool head should be used, pressure in a jet, or speed of rotation of a rotating cutter head. In another aspect, the invention allows variations in feed rate velocity within a single line segment specified by the input drawing. The invention also allows a detailed specification of machine tool acceleration, including avoidance of jerk, and feed rate lag compensation (feed forward).
In another aspect, the invention allows a desired finished surface quality to be specified for each line segment of the input drawing, which surface quality value is used by calculation algorithms to adjust velocity, acceleration, and jerk, so as to ~i n i mi ze cutting time without falling below the m; n i mA 1 quality.
A preferred embodiment of the invention is a complete system to go from a two ~;m~ional CAD representation of a part to a finished part using jet cutting tools with appropriate consideration of the dynamics of how the ]et affects the cutting process. Such tools include water and abrasive jets, oxyacetylene torches, plasma torches, and laser cutters. The com.~on characteristic of these tools is that the SUBSTITUTE SHEET (RULE 26) ~ WO95/10076 2 1~ 3 2 ~ ~ PCT~S94111161 distance between the entry point of the jet and the exit point of the jet is a function of the rate at which the jet traverses the material. Also, the surface finish on the cut surface deteriorates at high cutting speed because a side to side motion is induced in the jet as it cuts, and, for some jet cutting tools, moving too slowly will cause the kerf to become too wide or leave marks on the part. Consequently, total control of the velocity along the cutting path is required for accurate cutting using jet cutting tools.
In another aspect, the invention is a method for calculating the mA~iml~m speed allowable while cutting curves with jet cutting tools without exceeding ma~;mllm taper allowances. Also, the invention allows calculating of m~;mllm acceleration straight ahead speed and corner speed based on desired surface finish quality.
An optional feature includes a further aspect. The computer uses inputs of predicted motor inertia, tool inertia, and tool resistance to calculate the amount of current that should be supplied to the motor at each point. It then outputs force commands 68 to a force command interpreting circuit 52 which supplies to the motor sufficient current to meet the predicted resisting force, thereby reducing the lag.

Brief Description of the Drawings Figure l shows prior art control systems including components of prior art controllers.

Figure 2 shows the hardware components of the invention.

Figure 3 shows the components of the drive circuits used in the invention.

Figure 4 shows the method of converting an input straight line segment to incremental co~-n~ed points.

Figure 5 shows the method of converting an input arc segment to incremental commanded points.

Figure 6(A) shows the initial graph of speed against position prior to adjustment for acceleration and jerk.

SUBSTITUTE SHEET (RULE 26) WO95/10076 ~ PCT~S94/1116 Figure 6(B) shows a graph of speed against position after adjustment from left to right for acceleration limitations.

Figure 6(C) shows a graph of speed against position after adjustment from right to left for acceleration limitations.

Figure 6(D) shows a graph of speed against position after 8 further adjustment for limitations in rate of acceleration change (jerk).

Figure 7 shows in cross section the lag of a jet cutting a workpiece.

Figure 8 shows in plan view the lag of a jet cutting a curve ln a workpiece.

Figure 9 shows, in cross section, the taper produced by the cut of Figure 8.

Figure 10 shows a trough produced in the material on one side of a cut by the deflection of the jet traversing a sharp corner.

Detailed DQscription Hardware Figure 2 shows the required hardware components of the invention: a memory 11, which is preferably a hard disk drive with a tape backup, coupled to a computer 12, which preferably is a microcomputer contained in the same housing as the hard disk drive, coupled to the drives of the numerically controlled machine tool 13, which are preferably coupled to one or more eight channel parallel output ports on the computer.
The drive circuits of the preferred embodiment are further detailed in Figure 3. Although a stepper motor may be used with no feedback loops, the preferred embodiment uses a tachometer 64 with a velocity feedback loop 66 to a velocity servo 56 and a position feedback loop 67 from a position encoder 65 to a position cor-~n~ interpreter 54.

SUBSTITUTE SHEET (RULE 26) ~ WO9S/10076 2 L 7 ~ 2 ~ ~ PCT~S94/11161 Many applications, including jet cutting, do not require the force commAn~ interpreter 52 or its input line 68 or output line 61. These elements are further described in a subsequent section.
The preferred embodiment includes a position cl --n~
differentiator circuit 53 to generate a velocity feed forward signal 57. An alternate embodiment of the invention would allow the position cnmm~n~ interpreter circuit to be eliminated. Velocity commands could be calculated by the computer as the time differential of position commands and they could be sent by another signal line to a velocity comm~n~ interpreter or generating the feed forward signal.
However, a position cnmmAn~ differentiator circuit is simple and no more expensive than a velocity co~n~ interpreter circuit, and desired velocity can ~e computed without error from a stream of position commands over time. The preferred embodiment requires one less data line and less computation by the computer than this alternative embodiment.

Pr~ res for Use The process of using the system to determine the cutter path and speed for a two dimensional part is summarized in Table 1 below. The same methods apply to creation of three dimensional parts.

SUBSTITUTE SHEET (RULE 26) .r~

Wo95tlO076 ~ ~ PCT~S94/11161 , Table l Steps for Operating Precomputation Motion Control System Load CAD Drawing S

Add Cutter Lead Ins and Lead Outs _3_ Select Surface Finishes Order Segments into Cutter Path Define Material Thickness and Cutter Characteristics 20Offset Path for Cutter Width _7_ Generate Step Commands for Each Axis Set Timing between Step Com~n~s Simulate Cut or Feed Step Commands to 30Drives to Make Part Table l shows the overall procedures to go from a CAD
representation of a part to the part itself. If a part has only a paper drawing representation, a prel;~;nAry step is to draw it with a CAD system, an easier process than writing a cutter control program by hand.
Step l is self explanatory and can come from a number of very good CAD systems or vector based drawing programs on the market. The data is input into the system with a stAn~Ard drawing interchange format, for example as a DXF file. If a bit mapped drawing is used, it must be first converted to a vector based drawing with one of the automatic tracing programs available.
In step 2, the path to be followed by the cutter as it enters and leaves the work is defined by drawing it with a CAD
editor. This can be done with the same CAD editor that was used to create the drawing or with any other CAD editor that SUBSTITUTE SHEET (RULE 26) WO95/10076 Zi 7 ~ 2 ~1 PCT~S94/11161 can edit the interchange format. StAn~Ard lead in lead out paths can be quickly inserted or the user can define his own special paths. This data must be provided for the outer contour of the part and for each hole within the part. Then, the non-cutting paths between the holes or parts must be drawn.
In step 3, the user selects the precision and surface finish re~uired at each portion of the path. The non-cutting portions of the path are specified as such at this step. High precision cuts are slower than rough cuts and the economics of the part production are determined by the choices at this step.
Until this point, the segments of the path are stored more or less in the order in which they were drawn. CAD and draw programs do not embrace the notion of a continuous path.
In step 4 the beginning of the path is identi~ied and the program connects the segments into a continuous path. If it reaches a fork in the path it zooms in to give a good view on the computer screen and asks the user which leg of the fork to follow. When the program reaches the end of a segment that traverses without cutting, the user can choose on which side of the path to locate the cut in the new cutting region.
Steps l through 4 have fully specified the part to be made and the cutter path to be followed in making the part.
It can be saved in this form as required for future use. From step 5 onward the characteristics of the material and particular machine tool being used must be known. These values may change from time to time because of wear of the cutting nozzle or other reasons. Therefore, steps 5 through 9 are repeated frequently as required.
In step 5 the user selects the material being cut from a table that lists the cutting index or he estimates the cutting index by interpolating between existing values.
Alternatively, the user may execute an automated test cutting procedure that determines the cutting index for a material.
Next, the material thickness is specified. These values are used by the program to determine the speeds required to achieve the precision and surface finish specified earlier.
Then the user specifies the setup of the machine in terms of SUBSTITUTE SHEET (RULE 26) WO95/10076 ~1 7 3 2 ~1 PCT~S94/11161 nozzle sizes etc. If the part has already been cut or set up for cutting, the user simply verifies that the existing setup is still valid. At this point he can adjust the tool offset that compensates for the width of the kerf cut by the tool.
Steps 6, 7 and 8 are then performed automatically without user intervention. After these steps, a set of step and direction comm~n~fi and associated time delay instructions reside in memory ready to be sent to the servo systems to perform the necessary cutting. The software that performs steps 6, 7, and 8 is described in detail in subsequent paragraphs.
In step 9 the user can check the work to date by simulating the cut on the screen or he can start the cutting process and make the part.

Motion Control System Motion control is achieved by providing a timed set of step and direction commands for each motor. It is well suited for controlling stepping motors, but improved system performance can be achieved by using servo motors driven by a position controller that accepts step and direction input.
Various position controller manufacturers refer to step and direction input as "electronic gearing" or "handwheel mode" or "pulse input". The position as a function of time and all its derivatives are completely specified by the pulse train for each motor. The pulse train specifies what each motor is to do and the position control system is responsible for insuring that the motor does it. It is the responsibility of the pulse train writer to insure that no impossible requirements such as lln~ch;evable acceleration are placed on the motor.
The method described here is only useful for what might be called predestined motion where everything about the motion is known ahead of time. It is not useful for adaptive control where the motion system must adapt to changing conditions such as in using a vision system to pick up moving parts. Within the constraint of predestined motion it is generally useful and can handle motion in as many axes as desired. However, for purposes of illustration of the method it is easiest to consider only two dimensional motion in the x-y plane.

SUBSTITUTE SHEET (RULE 26) ~ WO95/10076 217 ~ 2 ~ ~ PCT~S94/11161 Consider a curve in the x-y plane. This curve can be described in the form of a table of absolute x and y values.
An example is the table below which shows the x-y values for a 45 degree line running from 0,0 to 1,1 in steps of .1. The time at which each x-y point is reached is also shown indicating that the motion is at uniform velocity taking 1 sec to go from 0,0 to 1,1. The same curve can be described as a series of incremental values dx and dy which are added cumulatively from a starting point (0,0) to get the absolute values of position. These steps dx and dy can be regarded as step cn~- n~.C to be sent to a stepping or servo motor where the + indicates a step in the positive direction. Als~, the time can be expressed as the time dt to wait before sending the step cnmmAn~ dx, dy to move to the next point, as shown in Table 2 below.

Ta~le 2 x-y Time Values for a Line x y time dx dY dt O O O +.1 +.1 .1 .1 .1 .1 +.1 +.1 .1 .2 .2 .2 +.1 +.1 .1 .3 .3 .3 +.1 +.1 .1 .4 .4 .4 +.1 +.1 .1 .5 .5 .5 +.1 +.1 .1 .6 .6 .6 +.1 +.1 .1 .7 .7 .7 +.1 +.1 .1 .8 .8 .8 +.1 +.1 .1 .9 .9 .9 +.1 +.1 .1 1.0 1.0 1.0 Each increment of specified motion commands the point of the tool to move along one of the axes, if the co~m~n~ for that axis is 0, or diagonal to the axes, and nothing in between. A
single unit of movement on each axis, which, if the axes are orthogonal and the units of movement are equal on each axis, specifies motion at a 45 degree angle to the axes.

SUBSTITUTE SHEET (RULE 26) WO95/10076 21~ PCT~Sg4/11161 A curve can be specified to any required degree of accuracy by making the interval between points as small as required. For example .OOOl" is small enough for jet cutting and most machining purposes, but even this is not a limit.
The limit is determined by the smallest increment in which the machine tool can be com~-n~ed, which, with this invention, is likely to become smaller as higher degrees of precision are desired. The higher the accuracy, the longer the table becomes, but this is of no practical consequence because memory i5 very low cost.
The advantage of a long table is two fold. First, the points can be calculated before any motion begins and elaborate calculations with multiple or even non-orthogonal axes can be done. Second, the time at which the step command is sent is totally free and an elaborate calculation about when to send each step can be done. Note that the time increments do not in any way affect the shape of the curve.
They only affect the velocity with which the point of the tool is cnm~sn~ed to move along the curve, the accelerations, and jerk. Velocities, accelerations, and jerk can be controlled by appropriate choice of the time increments dt. Additional axes of z, theta, phi, etc. may be included in the table with little additional difficulty.
A table such as table 2 is generated in two steps.
First, a table of distance values for the geometric axes is generated, filling in the times with increments corresponding to the m~x; mllm desired speeds at each point as dictated by the desired quality parameter specified by the user for that segment. It is convenient to space the x and y entries in the table 80 that they represent equal distance steps along the path being followed, but other spacings could be used as well.
With the algorithm employed in the preferred embodiment, the distance of each step must be smaller than or equal to the one pulse distance of the tool drives. This procedure is listed as step 7 in Table l. Second, some of the times are adjusted upward corresponding to slower speeds as necessary to meet m~; ml~m acceleration limits and smooth changes in acceleration to avoid jerk. This is listed as step 8 in Table l. Both steps 7 and 8 are explained in detail below.

SUBSTITUTE SHEET (RULE 26) ~ WO95/10076 ~1 7 3 2 ~ 1 PCT~S94111161 The step command is, of course, not exactly as listed in Table 2 because the system does not co~m~n~ a step of .l. It is either l or 0 with a sign of either ~ or -. Consequently, the com~n~ for each axis takes only 2 bits. Signals for 4 axes, or for 3 axes plus two bit tool head control, can be ~ent out the 8 bit parallel port of a PC. The time between steps is also represented as an integer specifying the number of timer ticks to wait before sending the next bit pattern.
The exact format in which the data are stored is shown in Table 3 below:

Table 3 TIME AND POSITION TWO BYTE STRUCTURE (16 BITS IN EACH BYTE) aAbB o0O0 CCCC yYxX TTTT TTTT TTTT TTTT where:

X = X AXIS COMMAND, x=~ IS + DIRECTION
Y = Y AXIS ~OMMAN~, y=0 IS + DIRECTION

CCCC = Control of any element of process TTTT etc. = l6 bit integer giving timer ticks to wait aA = RAMP X AXIS CURRENT UP, DOWN, OR SAME (or 2 0 additional axis use) bB = RAMP Y AXIS CURRENT UP, DOWN, OR SAME (or additional axis use) 0000 = RES~KV~ FOR ADDITIONAL AXES OR OTHER USE

If the current command bits are used for step and 25 direction rather than m; nim; zing lag ~y sending the predicted current requirement (explained below), the data structure provides for ~xpAn~ion to 8 axes (tool head control may be considered an axis) and can handle a time (speed) variation of a factor of 2l6. In stAn~rd 8-bit bytes, each step requires 4 bytes of data. Thus a l00 inch long path with a resolution of .000l inch requires 4 megabytes of storage. The data structure and method do not require orthogonal axes, and the SUBSTITUTE SHEET (RULE 26) WO95/10076 ~1 7324~ PCT~S94/11161 method is very useful for controlling robots in multi~;m~nsional motion.
Four bits are available for control of any element o~ the manufacturing process. For example, one bit may be used to turn a pump on and off and two bits may be used increment or decrement pump pressure or leave it the same. Alternatively, the four bits mays used to specify an integer value of pump pressure or tool head rotational speed from zero to 15.
Instead of controlling the manufacturing process element with only four bits of information, the bits may be used as a flag to indicate that a file cont~;n;ng much more information should be read to control the process element, rendering the amount of information available for process control llnl;m;ted.
Until this point, only m~ m velocity constraints have been placed on the motion. We must now adjust the time increments to insure that we are not exceeding other constraints on the motion.

Constraints on Motion Constraints are placed on the motion by two classes of phenomena. First, the motion can not require velocities or accelerations larger than the motors are capable of providing and the accelerations must not change rapidly to avoid vibrations in the apparatus (jerk). These might be called Newtonian constraints because they are related to Newton's laws of motion. All motion systems are su~ject to these constraints. As described by T. Bullock and Matusek, this control system can provide look ahead (feed forward or servo response calibration) capability to m~;m;ze the perforr~nce of a given set of motors while rPm~;n;ng within the Newtonian constraints. Likewise, the acceleration/deceleration control described by Nozawa can be incorporated. The computer is programmed to calculate, according to known for~ for each increment of motion, the velocity, acceleration, and jerk, and adjust the time delay values to meet these constraints.
The second class of constraints relates to the use of the motion. The most simple example is a maximum desired velocity dictated by tool/workpiece interaction. Another constraint is maint~; n; ng a constant velocity as a contour is traversed, a SUBSTITUTE SHEET (RULE 26) WO95/10076 ~ 1 7 3 ~ ~1 PCT~S94/11161 desired feature for jet cutting processes. The control scheme outlined above can handle far more complex requirements, such as those desired in jet cutting. Algorithms for determ;n;ng additional constraints for jet cutting and making the required adjustments to the time delay values are described in a subsequent section below.

Representation of the Curved Path and the offset Algorithm As originally specified, the path is represented by a series of lines and arcs. This is the format of a DXF file and the format usually used for machine tool control. In principle, all shapes can be represented with lines only and that is done by some of the less sophisticated DXF translating software. Getting sufficient accuracy then results in files con~A;n;ng thousands of short lines. These files are no problem for this system but often exceed the input speed limitations of many machine tool controllers if translated directly to input codes. The preferred embodiment uses both lines and arcs to be able to accept any DXF file and because the smaller amount of data permits faster manipulation for the offset calculation (step 6 of Table l). ~he calculation for steps 7 and 8 depends on the path length and not its complexity.
The ordered path is represented as a series of arc or line segments where each segment is defined relative to its following segment with the following format:

X Y B Q where X,Y is the start point of the segment (the end point is the start of the next segment) B is tangent of l/4 the included angle of the segment (to specify the curvature) Q is the cut quality specified for the line Of course, B and Q are mPAn;ngless for the last data line in the file.
If B is positive, the rotation from X,Y to the start of the next line is counterclockwise. If B is zero, the segment SUBSTITUTE SHEET (RULE 26) WO95/10076 PCT~Sg4/11161 ~
2~732.~
is a straight line and if B is l it is a semicircular arc.
When B is infinite, the arc is~a complete circle. To simplify the mathematics, any arc with a B greater than l is replaced with two arcs half as long each.
In the quality parameter, Q=0 means no cutting. The sign of Q is used to indicate whether the cutter should traverse to the left of the line (negative Q) or to the right of the line (positive Q). In the preferred embodiment, Q can have only a range ~rom -5 to +5. The magnitude of Q is used to calculate speed limitations and cutter head control limitations to achieve the desired quality with particular materials and cutter heads.
Q is further coded to provide additional functions. If it is desired to cut right on top of the line with no offset then l00 (with the same sign as Q) is added to Q. If it is desired to stop to wait for user input after a segment is traversed, then l000 (with the same sign as Q) is added to Q.
Other functions can also be added by this means.
In step 6 of Table l, the segments are offset by an amount egual to half the kerf width in the direction determined by the sign of Q. Lines move parallel to themselves and arcs keep the same center and change radius.
If 2 segments meet in a convex corner, an arc segment is added to join the two segments. Otherwise, the segments are truncated at their new intersection point. Lines with zero offset (no cutting) are moved and stretched to meet the offset ends of the segments that they join. A transition from left offset to right offset can be made only through an intermediate non-cutting segment.

Step Setting Algorithm The curve definition table (see Tables 2 and 3) is calculated from the offset file by one o~ two methods depending upon whether the segment of the path is a straight line or an arc. In both cases, the steps are chosen so that each step represents a constant distance along the path. In the preferred embodiment, the step size is equal to the smallest step command usable by an axis. The two cases are illustrated in Figures 4 and 5. In both cases, a step, dS 21 SUBSTITUTE SHEET (RULE 26) WO95/10076 ~1~ 3 2 41 PCT~S94/11161 is taken and the new x,y coordinates of point N 22 are calculated by known geometric methods and rounded to the axis step resolution. If the new coordinate value, expressed in the axis step resolution, is greater than the old, a +l is written to the data table. If less, a -l is written, and if the same, a 0 is written. This process continues until the whole path has been traversed.
As the path is traversed, the m~x;mll~ speed is determined for each entity being traversed. The mA~;mllm speed is taken as the lesser of the Newt~ n or cutting process limit. The time increment for the step size divided by this speed is written to the data file. At this stage, no attention is paid to acceleration or jerk.
When the end point of an entity 23 is passed, the amount by which it is passed, expressed as the distance R 24 from the last point N 26 to the end point 23, is used to place the first point 25 on the next entity, and the new reference point is taken as that end point. This procedure keeps the step sizes identical and ensures that errors do not accumulate as the path is traversed. Also, the angle by which the path bends at this end point is calculated and a m~ speed for traversing the corner with the particular tool and material is determined. The m~; ml~m speed may be determined as described in Nozawa, considering the time required for the lag in tool position to catch up with the co~m~n~ed position. In the preferred embodiment for jet cutting tools, the ~;mll~ speed for traversing the corner is calculated as specified in a subsequent section. The corresponding time delay is written to the file for this one point.
As mentioned previously, the step size dS 21 need not be the same everywhere except that it saves calculation time by reducing calculation complexity when the time is calculated in the time setting algorithm described next. When a file of multiple megabytes is processed, this saves a substantial amount of time.

Time Setting Algorithm The data written to the file at this point is illustrated in Figure 6(A). Here we see the reciprocal of the time delay, SUBSTITUTE SHEET (RULE 26) WO95/10076 ~1 7 3 2 ~1 PCT~S94/11161 l/T, which is proportional to the velocity at constant step size, plotted against the position along the path. Slow speeds are at the bottom of the plot and high speeds at the top. Horizontal lines 31 show regions of constant velocity along a segment and small crosses 32 show point velocity values at segment joining points. At the two end points 33 and 34, the time delay has been set to its m~ m value (l/T
is a minimllm) because the motion begins and ends at these points.
First, because the increment dS used to calculate the data is no larger than the step size of the drives, some of the data points will specify movement of zero in all axes. To reduce the size of the file to be stored in memory, each such point can be el imi n~ted and its time delay value is added to the adjacent point.
Now, the task of the algorithm is to increase the time delay sizes of the higher points on the plot to bring them down only so far as necessary (maintAining as high a velocity as possible) to meet any acceleration limits. This is accomplished by making two sweeps through the table, one from each end, and resetting the time delays choosing the greater of the acceleration limit or the existing velocity limit.
Figure 6(B) shows the condition after a single sweep from left to right and Figure 6(C) shows the condition after the reverse sweep.
The above process is sufficient for most applications where the mass of the tool is small and jerk is not an important concern. In Figure 6(C), a straight line with finite slope represents a line of constant spatial acceleration (dv/ds) along the curve. Sharp points where two lines meet are points of infinite jerk (rate of acceleration change). In applications where it is important to limit jerk, the sharp points of Figure 6(C) must be rounded with tangential arcs, while not increasing the velocity at any point, as shown in Figure 6(D). This can be accomplished by numerous methods.
The preferred method of limiting jerk adds an additional step between Figure 6(A) and Figure 6(B). The system first sweeps through the data shown in Figure 6(A) to identify SUBSTITUTE SHEET (RULE 26) WO95/10076 ~ 7 ~ 2 4 i PCT~S94111161 points which represent lower velocities than the points on each side. Each such point is either an isolated point of low velocity 32, 33, or 34, or one end of a line of constant velocity 3l with a higher adjoining velocity. As they are found, each such point and the adjoining points are replaced by an arc, if the arc represents a lower velocity, with a radius chosen as the jerk limit, centered above the point and tangent to the point. This replaces isolated points of low velocity with upward ~acing semi-circles and extends the ends of lines of relatively low velocity with quarter-circles.
Then, the steps shown by Figures 6(B) and 6(C) are performed as previously described, producing data with upward facing sharp points but no downward facing sharp points.
Finally, to identify the r~mA;n;ng sharp points, the data is swept to identify points of very high downward acceleration change. As each is found, it is replaced with an arc tangent to the lines on each side of the point (filleting). The resulting velocity profile appears as shown in Figure 6(D).

Addition of Force Co;mands When the inertial force of the tool or robot arm to be moved and the resistance of the material being cut or other medium through which the tool or arm must be moved are low compared to the torques of the motors used to drive them, the force command interpreter 52 and its connecting lines shown in Figure 3 are not required. As described above, the invention sllows, without time limitations, a calculation of any factor that should be considered to determine the preferred inputs to the machine tool drives. In the prior art, the only inputs have been segments of lines or arcs along with indications of preferred velocity for the segment. The resisting force that the drive motors are likely to experience has not been considered. However, these forces are often predictable. In this invention, the predictable forces are anticipated and the current directed to the motor is increased according to the prediction, reducing lag that would be induced by the greater resistance. Examples of such predictable resistance include resistance to acceleration from the inertia of the motor and other moving parts, resistance of a fluid through which the SUBSTITllTE SHEET (RULE 26) ~7~2~1 WO95/1007fi PCT~S94/11161 , .
parts must move such as air, and predictable loads on a cutter head from changes in the material such as thickness, density, or direction of cutting relative to grain.
As shown in Figure 3, the position command differentiator 53, the position command interpreter 54, and the servo 56 are well known in the prior art. When the motor 63 experiences a load, the tachometer 64 reports to the servo that the motor is slowing down. The servo calculates the difference between the input signal from the tachometer 59 and the com~n~ velocity input 58 from the position commAn~ interpreter 54 to determine that the velocity is not what it should be, increasing the current flowing to the motor 63. However, if the motor experiences a load, the servo will not inc~ease the current to the motor except as a function of the difference between the velocity com~n~e~ by the position co~n~ interpreter 54 and the velocity measured by the tachometer 64, inherently producing a lag. Similarly, the velocity command 58 comes from the error between the com~n~ed position and the actual position. In the most basic servo system this error is necessary to give a velocity command. To reduce the position error needed to give a velocity command, prior art drive circuits include feed forward circuits comprised of a position cn~n~ differentiator 53 which outputs a velocity co~m~n~
signal 57 to the servo 56 whether or not an error exists. The position encoder 65 and feedback loop 67 are used to fine tune the velocity signal 58 and adjust it up or down as required.
The force command interpreter works in an analogous manner. As the movement of the ~-chine tool or robot arm is planned, the expected resistance forces are calculated from parameters input to the computer system. Then, when the operation is run, in addition to outputting position co~n~s on line 69 the computer also outputs force com~n~s on line 68. The force com~n~s are interpreted by the force command interpreter 52 which is connected to a powerful current source (not shown) and outputs an appropriate current to the motor at 61. The current supplied to the motor by this circuit varies based on the predicted resistance that the motor will experience. The conventional velocity feedback loop 66 and SUBSTITUTE SHEET (RULE 26) 95/10076 2 1 7 3 2 ~ 1 pcT~ss4Jlll6 position feedback loop 67 are used to fine tune the primary source of current from the force command interpreter 52.
To use a system with the optional force command interpreter requires additional procedures in steps 5 and 8 of table l above. In step 5, the user also enters into the system known parameters contributing to resistance to be experienced by the motor, including those resulting from the tool-material interaction and those resulting from the machine inertia .
These parameters are used as an additional process in step 8. After the ideal velocities have been fully calculated for each point, as depicted in Figure 6(D), an additional pass is made through the data using the velocities and accelerations co~=n~ed for each drive motor to calculate the predicted resisting force that the drive motor will experience. This resisting force is then entered as a force command for the appropriate axis by step cnmm~n~ exactly analogous to the position commands. A positive step increases the current to the motor and a negative step decreases it through the two bits used for current cn~-n~ to each axis as shown in table 3 above. The force cnmmAn~ represents the resisting force that the motor is predicted to experience from the time that the position cnmmAn~ is sent until the next position com~n~ is sent.
The force cn~-n~ interpreter 52 produces a constant current to the motor, as dictated by the last command received, until it receives another command.

Jet Cutting Requirements Referring to Figure 7, in jet cutting, as the jet 41 traverses through the part 44, the exit point 42 lags the entrance point 43 by an amount of lag 45. In straight line cutting this causes little problem and the lag can be considerable with no ill effect. However, when the jet is traversing an arc, as shown in Figure 8, the lag 45 causes a taper 46 in the part as shown in Figure 9. Also, if the jet is rapidly accelerated around a sharp corner, it may leave an uncut region and it may deflect so as to create a trough 47 in SUBSTITUTE SHEET (RULE 26) WO95/10076 ~ 3 2 ~1 PCT~S94/11161 the underside of a part on the outside of the corner as shown in Figure lO.
In straight line cutting, the lag is dependent on the speed, and a high lag causes the jet to flop from side to side resulting in a poor finish. This sets a mA~;mllm speed for the cut given a finish requirement. However, a rapid acceleration, even within the speed limit, will cause a mark to be made on the surface. This places a constraint on the rate of change of velocity with position along the cut.
Within these constraints, one wishes to move as quickly as possible to mi n; m; ze the cutting time and to avoid excessive kerf caused by stopping or moving very slowly. These multiple constraints can be handled with the new system described herein.

Maximum Cutting Speed The cutting index for a variety of materials can be used with the jet parameters to calculate the ~-~;mllm speed at which the jet just barely cuts through the material. The resulting surface finish is assigned a quality of l. The top half of a material that has just barely been cut through has a much better surface finish than the bottom half. If the speed is reduced so that the jet could just cut through a piece twice as thick, the surface finish is much better. This finish is assigned a quality of 2. Moving slowly enough to cut more than 5 times the material thickness does not significantly improve the finish. Therefore, quality 5 is regarded as the best finish possible.
By this convention a finish less than l means cutting partially through the part. For example, .l is used to engrave a line on the part for decorative or other purposes.
A finish of 0 means no cutting, and this is used to denote the jet off condition for moves without cutting.
The m~i ml7m speed U to move while producing a cut with quality Q is given by:

SUBSTITUTE SHEET (RULE 26) WO 95tlO076 217 ~ 2 ~1 1 PCT/US94111161 U = (KNM/QH)' (1) where U = traverse speed H = material thickness KNM = constant dependent on abrasive jet strength and material cutting index Considering the shape of the lag curve and the observation that cutting through the material ceases at an exit angle of about 20 degrees, an expression for the lag as a ~unction of cutting speed calculated with equation (1) above can be stated as:

L = .182*(H2*U8')/KNM (2) where L = lag distance H = material thickness U = traverse speed KNM = constant dependent on abrasive jet strength and material cutting index Equation (2) above is used to calculate the lag L at the cutting speed U on a straight line as calculated with e~uation (1) from the finish ~uality value chosen in step 3 of Table 1, the material thickness, and a constant chosen from a table based on the strength of the jet and the cutting index of the material.

Corners and Curves When the jet traverses a curve or executes a sharp corner, the lag causes an error in following the true line because the exit point at the bottom of the material is not above the entry point at the top of the material. This error is illustrated in Figures 7 and 8. As the traverse speed is lowered, the lag and the associated error is reduced. The SUBSTITUTE SHEET (RULE 26) WO95/10076 ~17 ~ 2 ~1 PCT~S94/11161 question is what error is consistent with the chosen quality level for the surface of the cut.
It has been observed that the side to side flopping of the jet in a straight line cut is about lO~ of the lag amount.
A permissible error on curves and corners is chosen consistent with this observation according to table 4.

Table 4 Finish Error Limit (E) l or less no limit 2 - 4 .lO*L, but not less than .OOl"
.OOl"

where, in the table, L is the lag calculated for straight line cutting using equation 2.
Given a permitted error 46 or 48 shown in Figures 7 and 8 taken from Table 4 above, the m~;mllm permissible lag 45 (LH) for a corner or curve may be calculated as follows. For a sharp corner, where the direction changes by angle A, the ma~imll~ permissible lag, LM~ is calculated from error limit E
as shown in Table 4 above by:

LM = E/sinA . (3) For an arc of radius R, the m-~;mllm permissible lag, LM~ is calculated from error limit E as shown in Table 4 above by:

LM = ( (R+E)2 _ R2 ) 5 . (4) Using the m~; mllm permissible lag, the system calculates the ~ lm speed, UM ~ by UM = (LM*KNM/.182H2)1.15 . (5) SUBSTITUTE SHEET (RULE 26) WO95/10076 ~1 7 3 ~ ~ ~. PCT~S94111161 Velocity Change Limit The inventor has observed that, even when velocity limits based on desired quality are not exceeded, a large acceleration up to this velocity limit will cause undesirable marks on the part. The limiting factor is the rate of change of lag length with distance along the curve, dL/dS. It has been found by experiment that dL/dS of l.0 produces marks on the cut in a straight line cut. Reducing the value to .l eliminates these marks, and no ill effects are found by reducing the value to .Ol. Use of this lower value to limit the rate of acceleration after slowly cutting a sharp corner prevents the tail from deflecting into material not intended to be cut.

Using a m~imllm rate of change of lag length with distance along the curve, dL/dS, of .Ol, the m~;mllm spacial acceleration is calculated for each material and tool configuration by:

dV/dS = (KNM*U-l3 / 6.32H2) dL/dS

This m~; mllm acceleration is used to limit velocities during calculation as described in relation to Figures 5(B) and 5(C).

SUBSTITUTE S~IEET (RULE 26)

Claims (32)

I claim:
1. A method for achieving a desired trajectory of an object driven by at least one motor with a drive circuit for the motor and providing a desired value associated with each portion of the trajectory, which trajectory begins with zero velocity at a starting point and ends with zero velocity at an ending point, comprising:
(a) specifying the desired trajectory as a series of incremental motor commands for the motor, each increment for the motor being one of: zero, positive increment, or negative increment;
(b) for each motor command, specifying an associated value for the portion of the trajectory specified by the motor command;
(c) storing the entire series of motor commands and associated values in a memory; and (d) sending to the motor drive circuit each motor command and providing the specified associated value.
2. The method of claim 1 wherein the associated value represents a desired velocity at the portion of the trajectory specified by the motor command.
3. The method of claim 2 further comprising:
(a) as the series of motor commands is sent to the motor drive circuit, causing a delay between the sending of each pair of successive motor commands, the amount of delay derived from the value associated with one of the two motor commands, which combination of motor commands and delay instruct the motor to cause the object to achieve the desired velocity.
4. The method of claim 3 wherein the associated value is specified as a value representing a desired time delay between the sending of the associated motor command and an adjacent motor command.
5. The method of claim 4 in which each time delay value is specified as a number of timer ticks to wait to achieve the desired delay.
6. The method of claim 1 wherein the value is a flag which indicates that information from another source should be read which information specifies control of an element of the manufacturing process.
7. The method of claim 1 wherein the object is a jet and the value specifies the pressure of the jet.
8. The method of claim 1 wherein the object is a tool head which turns and the value specifies the speed of turning.
9. A method for controlling acceleration and jerk in a trajectory of an object driven by at least one motor with a drive circuit for the motor, which trajectory begins with zero velocity at a starting point and ends with zero velocity at an ending point, comprising:
(a) specifying the trajectory as a series of one or more segments;
(b) for each segment, calculating an associated velocity specification considering limitations on acceleration or jerk;
(c) storing the specified segments for the entire trajectory and associated velocity specifications in a memory;
(d) retrieving the specified segments and associated velocity specifications from the memory; and (e) instructing the drive circuit to effect the motion specified by each segment with the specified velocity.
10. A method for controlling lag between commanded position and actual position in a trajectory of an object driven by at least one motor with a drive circuit for the motor, which trajectory begins with zero velocity at a starting point and ends with zero velocity at an ending point, comprising:
(a) specifying the trajectory as a series of one or more motion commands with a velocity command for each segment;

(b) for each segment, calculating an associated probable lag between commanded position and actual position and adjusting the velocity command to reduce the lag;
(c) storing the specified motion commands and associated velocity commands in a memory;
(d) retrieving the specified motion commands and associated velocity commands from the memory; and (e) instructing the drive circuit to effect the motion specified by each segment with the commanded velocity.
11. A method for controlling the motion of an object driven by at least one motor with a drive circuit for the motor, comprising:
(a) specifying a series of motion commands to effect the desired motion for the object;
(b) predicting the forces resistive to the motion of the object likely to be experienced upon execution of one or more of the motion commands;
(c) providing the series of motion commands to the drive circuit and, with one or more motion commands, based on the predicted resistive forces, providing force commands to a force command interpreter coupled to the drive circuit.
12. A method for determining tool motion control commands for operation of a machine tool on a desired trajectory to achieve a desired quality of result, comprising:
(a) describing the desired trajectory as a series of one or more segment specifications;
(b) for a segment specification, specifying an associated value representing a desired quality of result for that segment;
(c) storing the segment specification and associated value in a memory;
(d) using the associated value to determine motion control commands provided to the machine tool to adjust velocity or acceleration to achieve the desired quality of result.
13. The method of claim 12 wherein the machine tool is a jet cutting tool and the desired quality is uniformity of resulting cut surface.
14. The method of claim 13 wherein the velocity is adjusted to limit side to side flopping of the jet to maintain the desired uniformity of resulting cut surface.
15. The method of claim 13 wherein the velocity is adjusted to limit lag error when the jet traverses a curve or corner to maintain the desired uniformity of resulting cut surface.
16. The method of claim 13 wherein the acceleration is limited to maintain the desired uniformity of resulting cut surface.
17. A system for achieving a desired trajectory of an object, the object being driven by at least one motor having a drive circuit for the motor, and for providing a desired value associated with each portion of the trajectory, which trajectory begins with zero velocity at a starting point and ends with zero velocity at an ending point, the system comprising:
(a) means for specifying the desired trajectory as a series of incremental motor commands for the motor, each increment for the motor being one of: zero, positive increment, or negative increment;
(b) means for specifying, for each motor command, a value associated with the motor command, which value relates to the portion of the trajectory specified by the motor command;
(c) a memory for storing the entire series of motor commands and associated values; and (d) means for retrieving each motor command and associated value from the memory, sending the motor command to the motor drive circuit, and providing the specified associated value to the system.
18. The system of claim 17 wherein the associated value represents a desired velocity at the portion of the trajectory specified by the motor command.
19. The system of claim 18, further comprising:
means for causing a delay between the sending of a first motor command and the successive motor command as the motor commands are sent to the motor drive circuit, the amount of delay being derived from the value associated with one of the first motor command and the successive motor command, which combination of motor commands and delay instruct the motor to cause the object to achieve the desired velocity.
20. The system of claim 19 wherein the associated value is specified as a value representing a desired time delay between the sending of the first motor command and the successive motor command.
21. The system of claim 20 in which each time delay value is specified as a number of timer ticks to wait to achieve the desired delay.
22. The system of claim 17 wherein the object is a tool head of the system and the value specifies a rate of action of the tool head.
23. The system of claim 22 wherein the tool head is a jet and the value specifies the pressure of the jet.
24. The system of claim 22 wherein the tool head turns and the value specifies the speed of turning.
25. A system for controlling acceleration and jerk in a trajectory of an object driven by at least one motor with a drive circuit for the motor, which trajectory begins with zero velocity at a starting point and ends with zero velocity at an ending point, comprising:
means for specifying the trajectory as a series of one or more trajectory segments;
means for calculating an associated velocity specification for each trajectory segment, the specification considering limitations on acceleration or jerk;
a memory for storing the specified trajectory segments for the entire trajectory and associated-velocity specifications;
means for retrieving the specified trajectory segments and associated velocity specifications from the memory; and means for instructing the drive circuit to effect the motion specified by each trajectory segment with the specified velocity.
26. A system for controlling lag between commanded position and actual position in a trajectory of an object driven by at least one motor with a drive circuit for the motor, which trajectory begins with zero velocity at a starting point and ends with zero velocity at an ending point, the system comprising:
means for specifying the trajectory as a series of segments, each segment specified by one or more motion commands, with a velocity command for each segment;
means for calculating an associated probable lag between commanded position and actual position for each segment and for adjusting the velocity command to reduce the lag;
a memory for storing the specified motion commands and associated velocity commands;

means for retrieving the specified motion commands and associated velocity commands from the memory; and means for instructing the drive circuit to effect the motion specified by each segment with the commanded velocity.
27. ~A system for controlling the motion of an object driven by at least one motor with a drive circuit for the motor and a force command interpreter coupled to the drive circuit, the system comprising:
means for specifying a series of motion commands to effect the desired motion for the object;
a circuit to predict the forces resistive to the motion of the object likely to be experienced upon execution of one or more of the motion commands; and means for providing the series of motion commands to the drive circuit and, with one or more motion commands and based on the predicted resistive forces, for providing force commands to the force command interpreter.
28. A system for determining tool motion control commands for operation of a machine tool on a desired trajectory to achieve a desired quality of result, the system comprising:
means for describing the desired trajectory as a series of one or more segment specifications;
means for specifying a value associated with a segment specification, the associated value representing a desired quality of result for that segment;

a memory for storing the segment specification and associated value;
means for receiving an additional parameter which affects the quality of result; and means for combining the associated value and the additional parameter to determine motion control commands provided to the machine tool to adjust velocity or acceleration to achieve the desired quality of result.
29. The system of claim 28 wherein the machine tool is a jet cutting tool and the desired quality is uniformity of resulting cut surface.
30. The system of claim 29 wherein the velocity is adjusted to limit side to side flopping of the jet to maintain the desired uniformity of resulting cut surface.
31. The system of claim 29 wherein the velocity is adjusted to limit lag error when the jet traverses a curve or corner to maintain the desired uniformity of resulting cut surface.
32. The system of claim 29 wherein the acceleration is limited to maintain the desired uniformity of resulting cut surface.
CA002173241A 1993-10-07 1994-09-30 Motion control with precomputation Expired - Fee Related CA2173241C (en)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US08/134,174 US5508596A (en) 1993-10-07 1993-10-07 Motion control with precomputation
US08/134,174 1993-10-07
PCT/US1994/011161 WO1995010076A1 (en) 1993-10-07 1994-09-30 Motion control with precomputation

Publications (2)

Publication Number Publication Date
CA2173241A1 CA2173241A1 (en) 1995-04-13
CA2173241C true CA2173241C (en) 1999-08-10

Family

ID=22462097

Family Applications (1)

Application Number Title Priority Date Filing Date
CA002173241A Expired - Fee Related CA2173241C (en) 1993-10-07 1994-09-30 Motion control with precomputation

Country Status (7)

Country Link
US (2) US5508596A (en)
EP (1) EP0722580A4 (en)
JP (1) JPH09503604A (en)
KR (1) KR960705267A (en)
CA (1) CA2173241C (en)
TW (1) TW274655B (en)
WO (1) WO1995010076A1 (en)

Families Citing this family (93)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5508596A (en) * 1993-10-07 1996-04-16 Omax Corporation Motion control with precomputation
DE69605640T2 (en) * 1995-08-23 2000-04-13 Fanuc Ltd NUMERICAL FASTENING / DELAY CONTROL UNIT AND METHOD
EP0768587B1 (en) * 1995-10-10 1997-12-29 Siemens Aktiengesellschaft Clock-synchronised motion control in discrete-time sampling systems
DE19545083A1 (en) * 1995-12-04 1997-06-05 Grundig Emv Method for controlling a multi-axis machine tool
JP4060393B2 (en) * 1996-01-24 2008-03-12 三菱電機株式会社 Robot speed calculation device and robot speed calculation method
JP3593850B2 (en) * 1996-06-17 2004-11-24 トヨタ自動車株式会社 Tool point sequence generation method
GB2314427B (en) * 1996-06-21 2000-10-18 British Aerospace Servomechanisms
DE69712304T2 (en) * 1996-09-02 2002-12-05 Koninkl Philips Electronics Nv CONTROL WITH THE HELP OF A SET VALUE GENERATOR
US6317646B1 (en) 1997-03-19 2001-11-13 Fadal Machining Centers, Inc. CNC machine having interactive control of corner tolerance that is programmed to vary with the corner angle
US6445964B1 (en) 1997-08-04 2002-09-03 Harris Corporation Virtual reality simulation-based training of telekinegenesis system for training sequential kinematic behavior of automated kinematic machine
JPH11149306A (en) 1997-11-14 1999-06-02 Fanuc Ltd Controller for finishing machine
CA2312348C (en) * 1997-12-02 2004-07-20 Lacent Technologies Inc. Gantry-mounted laser nozzle and method for controlling laser positioning
DE59902646D1 (en) 1998-01-29 2002-10-17 Oce Printing Systems Gmbh METHOD FOR CONTROLLING SEVERAL STEPPING MOTOR MODULES WITH PRELOADLY LOADING RAMP DATA
US6038504A (en) * 1998-04-13 2000-03-14 Caterpillar Inc. System and method for providing different values of jerk in response to speed pedal displacement
US6144118A (en) * 1998-09-18 2000-11-07 General Scanning, Inc. High-speed precision positioning apparatus
DE19846426A1 (en) * 1998-10-08 2000-04-13 Open Mind Software Technologie Multi axis machining center with independent control of the axes of the cutting tool
US6850806B2 (en) * 1999-04-16 2005-02-01 Siemens Energy & Automation, Inc. Method and apparatus for determining calibration options in a motion control system
KR100342255B1 (en) * 1999-06-25 2002-06-27 윤종용 motor speed control method for robot
US6300738B1 (en) * 1999-09-30 2001-10-09 Rockwell Automation Technologies, Inc. Method and apparatus for generating reference values for a motion control loop in an industrial control system
US6782306B2 (en) * 1999-12-16 2004-08-24 Siemens Energy & Automation Motion control system and method utilizing spline interpolation
JP4398044B2 (en) * 2000-02-03 2010-01-13 東芝機械株式会社 Numerical control device and control method for machine tool
JP3592628B2 (en) * 2000-12-06 2004-11-24 恒彦 山崎 Numerical control method
JP2002200540A (en) * 2000-12-28 2002-07-16 Mazda Motor Corp Control method for machine tool, control system therefor and control medium therefor
US6859747B2 (en) * 2001-04-26 2005-02-22 Siemens Energy & Automation, Inc. Method and apparatus for self-calibrating a motion control system
US6865499B2 (en) * 2001-04-26 2005-03-08 Siemens Energy & Automation, Inc. Method and apparatus for tuning compensation parameters in a motion control system associated with a mechanical member
US6766216B2 (en) * 2001-08-27 2004-07-20 Flow International Corporation Method and system for automated software control of waterjet orientation parameters
EP1908550A3 (en) * 2001-08-27 2008-06-11 Flow International Corporation Apparatus for generating a high-pressure fluid jet
US7464630B2 (en) * 2001-08-27 2008-12-16 Flow International Corporation Apparatus for generating and manipulating a high-pressure fluid jet
US6865425B2 (en) * 2002-01-07 2005-03-08 Siemens Energy & Automation, Inc. State machine for a pulse output function
US7076322B2 (en) * 2002-03-29 2006-07-11 National Instruments Corporation System and method for satisfying move constraints when performing a motion control sequence
US7160173B2 (en) * 2002-04-03 2007-01-09 3M Innovative Properties Company Abrasive articles and methods for the manufacture and use of same
US20030196528A1 (en) * 2002-04-19 2003-10-23 Cooper Christopher W. Compliant cutoff saw assembly
JP2003334740A (en) * 2002-05-15 2003-11-25 Mitsubishi Electric Corp Allowable speed determining method and speed control device
US7890212B2 (en) 2002-06-03 2011-02-15 Siemens Industry, Inc. Wizard for programming an intelligent module
US6757583B2 (en) 2002-06-27 2004-06-29 Joe Giamona Interpolated motion control over a serial network
JP2004030500A (en) * 2002-06-28 2004-01-29 Fanuc Ltd Motor controller
JP3739749B2 (en) * 2003-01-07 2006-01-25 ファナック株式会社 Control device
US7089081B2 (en) * 2003-01-31 2006-08-08 3M Innovative Properties Company Modeling an abrasive process to achieve controlled material removal
US7180253B2 (en) 2003-09-30 2007-02-20 Rockwell Automation Technologies, Inc. Method and system for generating multi-dimensional motion profiles
CA2470029A1 (en) * 2003-10-10 2005-04-10 Ontario Die International, Inc. System and method for making braces for dies
US7035708B1 (en) 2003-10-10 2006-04-25 Omax Corporation Automated fluid-jet tilt compensation for lag and taper
US6922605B1 (en) 2003-10-10 2005-07-26 Omax Corporation Automated fluid-jet tilt compensation for lag and taper
TWI261410B (en) * 2004-04-02 2006-09-01 Delta Electronics Inc Velocity or position S-type smooth commands generating method and means thereof
US20050251283A1 (en) * 2004-04-28 2005-11-10 Shovan Gerald L Computer programed method of forming and fabricating parts into an assembly
US7904184B2 (en) * 2004-11-23 2011-03-08 Rockwell Automation Technologies, Inc. Motion control timing models
US7983769B2 (en) * 2004-11-23 2011-07-19 Rockwell Automation Technologies, Inc. Time stamped motion control network protocol that enables balanced single cycle timing and utilization of dynamic data structures
US8267672B2 (en) 2005-02-17 2012-09-18 Kellar Franz W High pressure pump
US7661935B2 (en) * 2005-02-17 2010-02-16 Kinemax Pump Systems Llc High pressure pump
US7693588B2 (en) * 2005-03-23 2010-04-06 Hurco Companies, Inc. Method of curvature controlled data smoothing
AU2006278493B2 (en) * 2005-08-04 2011-09-15 Par Systems, Inc. Compensation for a fluid jet apparatus
US20070142966A1 (en) * 2005-12-20 2007-06-21 Khalid Mirza Process for moving a robot
US8725283B2 (en) * 2006-08-04 2014-05-13 Hurco Companies, Inc. Generalized kinematics system
US8024068B2 (en) 2006-08-04 2011-09-20 Hurco Companies, Inc. Machine tool control system
US7933677B2 (en) * 2006-08-04 2011-04-26 Hurco Companies, Inc. System and method for surface finish management
US7684891B2 (en) * 2006-08-04 2010-03-23 Hurco Companies, Inc. System and method for tool use management
US8340788B2 (en) * 2006-12-15 2012-12-25 Pitney Bowes Inc. Positioned based motor tuning for a guillotine cutter mechanism
US7656115B2 (en) * 2007-06-15 2010-02-02 Trane International Inc. Calibrating stepper motor by driving fractional ranges
US8214415B2 (en) * 2008-04-18 2012-07-03 Motion Engineering Incorporated Interpolator for a networked motion control system
US8892236B2 (en) * 2008-06-17 2014-11-18 Omax Corporation Method and apparatus for etching plural depths with a fluid jet
US8175725B2 (en) * 2008-09-08 2012-05-08 National Instruments Corporation Adapting move constraints for position based moves in a trajectory generator
US8423172B2 (en) * 2010-05-21 2013-04-16 Flow International Corporation Automated determination of jet orientation parameters in three-dimensional fluid jet cutting
US8918215B2 (en) * 2011-01-19 2014-12-23 Harris Corporation Telematic interface with control signal scaling based on force sensor feedback
US8918214B2 (en) 2011-01-19 2014-12-23 Harris Corporation Telematic interface with directional translation
US9205555B2 (en) 2011-03-22 2015-12-08 Harris Corporation Manipulator joint-limit handling algorithm
US8694134B2 (en) 2011-05-05 2014-04-08 Harris Corporation Remote control interface
US8639386B2 (en) 2011-05-20 2014-01-28 Harris Corporation Haptic device for manipulator and vehicle control
US9026250B2 (en) 2011-08-17 2015-05-05 Harris Corporation Haptic manipulation system for wheelchairs
JP5838681B2 (en) * 2011-09-16 2016-01-06 いすゞ自動車株式会社 Actuator control method and actuator control apparatus
US8996244B2 (en) 2011-10-06 2015-03-31 Harris Corporation Improvised explosive device defeat system
US8864553B2 (en) 2011-10-17 2014-10-21 Mc Machinery Systems, Inc. Fluid jet cutting system
US9678499B2 (en) * 2012-06-27 2017-06-13 Mitsubishi Electric Research Laboratories, Inc. Method for controlling redundantly actuated machines for cutting a pattern of disconnected contours
JP6128767B2 (en) * 2012-07-05 2017-05-17 キヤノン株式会社 Robot control apparatus and robot control method
US8904912B2 (en) 2012-08-16 2014-12-09 Omax Corporation Control valves for waterjet systems and related devices, systems, and methods
US8954195B2 (en) 2012-11-09 2015-02-10 Harris Corporation Hybrid gesture control haptic system
TWI483217B (en) * 2013-02-01 2015-05-01 Nat Univ Chin Yi Technology Intelligent image monitoring vehicle service station system
US8965620B2 (en) 2013-02-07 2015-02-24 Harris Corporation Systems and methods for controlling movement of unmanned vehicles
US10203684B2 (en) * 2013-02-13 2019-02-12 Timothy Owens System and method for virtually calibrating computer numeric controlled machine axes
US20150289954A1 (en) * 2014-04-11 2015-10-15 Mun Sun Chang Computer fabrication of dental prosthetics
US20140308623A1 (en) * 2013-04-12 2014-10-16 Mun Chang Computer fabrication of dental prosthetics
US10471666B2 (en) 2013-10-04 2019-11-12 Kanawha Automation, Llc Dynamic additive manufacturing system
US9128507B2 (en) 2013-12-30 2015-09-08 Harris Corporation Compact haptic interface
US9658613B2 (en) 2014-01-22 2017-05-23 Omax Corporation Generating optimized tool paths and machine commands for beam cutting tools
JP6058575B2 (en) * 2014-03-19 2017-01-11 株式会社スギノマシン Water jet cutting method and water jet cutting device
US9638357B1 (en) 2015-06-24 2017-05-02 Omax Corporation Mechanical processing of high aspect ratio metallic tubing and related technology
JP6325488B2 (en) * 2015-06-30 2018-05-16 ファナック株式会社 Numerical control device that operates with tabular data
JP6378249B2 (en) * 2016-05-16 2018-08-22 ファナック株式会社 Numerical control device with machining time prediction function considering servo control and machine motion delay
US11577366B2 (en) 2016-12-12 2023-02-14 Omax Corporation Recirculation of wet abrasive material in abrasive waterjet systems and related technology
US10859997B1 (en) 2017-12-04 2020-12-08 Omax Corporation Numerically controlled machining
KR20200108351A (en) * 2018-02-05 2020-09-17 크리에이트 아이티 리얼 에이피에스 Printer for printing 3D objects
US11554461B1 (en) 2018-02-13 2023-01-17 Omax Corporation Articulating apparatus of a waterjet system and related technology
US11224987B1 (en) 2018-03-09 2022-01-18 Omax Corporation Abrasive-collecting container of a waterjet system and related technology
WO2021202390A1 (en) 2020-03-30 2021-10-07 Hypertherm, Inc. Cylinder for a liquid jet pump with multi-functional interfacing longitudinal ends
US20230288914A1 (en) * 2022-03-09 2023-09-14 Worcester Polytechnic Institute Feature driven next view planning of 3-dimensional surfaces

Family Cites Families (43)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US3449742A (en) * 1965-05-04 1969-06-10 Gen Motors Corp Digitizer system
US3838258A (en) * 1970-02-10 1974-09-24 Gerber Scientific Instr Co Step motor control system
US3699317A (en) * 1970-05-22 1972-10-17 Westinghouse Electric Corp Sampled data numerical contouring machine controller apparatus and method providable with on line capability for contour cornering deceleration and acceleration
US3725651A (en) * 1970-08-05 1973-04-03 Bendix Corp Numerical control system for a lathe
US3668498A (en) * 1971-04-20 1972-06-06 Atlas Automation Transfer apparatus with digital path control
JPS5622003B2 (en) * 1972-06-30 1981-05-22
USRE30132E (en) * 1973-07-09 1979-10-30 Unimation, Inc. Program control system for manipulator
US4130788A (en) * 1973-11-01 1978-12-19 General Automation, Inc. Numerical control servo system
JPS5183982A (en) * 1975-01-20 1976-07-22 Oki Electric Ind Co Ltd
US4031369A (en) * 1975-08-12 1977-06-21 The Bendix Corporation Interpolation and control apparatus and method for a numerical control system
US4084083A (en) * 1975-11-05 1978-04-11 Contraves Goerz Corporation Multi-axis electronic motion generator
US4066944A (en) * 1976-05-06 1978-01-03 The Superior Electric Company Motion control system with incremental data commands
DE2659090A1 (en) * 1976-12-27 1978-07-06 Siemens Ag PATH CONTROL DEVICE IN A COMPUTER-GUIDED CONTROL OF A NUMERICALLY CONTROLLED MACHINE TOOL
JPS5769314A (en) * 1980-10-13 1982-04-28 Fanuc Ltd Numerical control system
CA1181839A (en) * 1980-11-25 1985-01-29 Stanley K Dean Machine tool for forming contours
US4456863A (en) * 1980-12-23 1984-06-26 Cleveland Machine Controls, Inc. Apparatus for automatic calibration of servo response
US4415867A (en) * 1981-05-22 1983-11-15 The United States Of America As Represented By The Secretary Of The Navy Hybrid coupled microstrip amplifier
US4578748A (en) * 1981-10-26 1986-03-25 Kabushiki Kaisha Komatsu Seisakusho Positioning control system
JPS58154009A (en) * 1982-03-08 1983-09-13 Fanuc Ltd Acceleration and deceleration controlling system
JPS58211211A (en) * 1982-06-01 1983-12-08 Fanuc Ltd Numerical controlling system
JPS59177605A (en) * 1983-03-28 1984-10-08 Fanuc Ltd Input method of cut direction in automatic programming
US4598380A (en) * 1984-08-13 1986-07-01 Cincinnati Milacron Inc. Method and apparatus for controlling manipulator and workpiece positioner
US4675825A (en) * 1984-10-30 1987-06-23 Dementhon Daniel F Computer-controlled peripheral shaping system
JPS61157909A (en) * 1984-12-29 1986-07-17 Fanuc Ltd System for correcting route error of robot
JPS62277244A (en) * 1986-05-21 1987-12-02 Toyoda Mach Works Ltd Accommodation control device for machine tool
EP0254884B1 (en) * 1986-07-09 1990-02-28 Siemens Aktiengesellschaft Method to determine the control of a robot by key points in a space
JPH0716854B2 (en) * 1986-11-07 1995-03-01 豊田工機株式会社 Numerically controlled feeder
JPS63123605A (en) * 1986-11-12 1988-05-27 Fanuc Ltd Control device for tapping machining
DE3640987C1 (en) * 1986-12-01 1993-04-29 Agie Ag Ind Elektronik Numerical control system for highly dynamic processes
US4761595A (en) * 1987-05-01 1988-08-02 General Motors Corporation Motion control system having adaptive feedforward path tracking
WO1990003893A1 (en) * 1988-10-05 1990-04-19 Michael Feygin An improved apparatus and method for forming an integral object from laminations
DE68922684T2 (en) * 1988-10-14 1995-10-19 Hitachi Construction Machinery Profile control system for a given curved surface.
US5144211A (en) * 1989-01-31 1992-09-01 Staubli International Ag Multiaxis robot controller having workpoint torque control
US5126645A (en) * 1989-09-30 1992-06-30 Kabushiki Kaisha Toshiba Grinder robot
JPH03157704A (en) * 1989-11-16 1991-07-05 Fanuc Ltd Position correcting system for mechanical position fluctuation
JPH03166604A (en) * 1989-11-27 1991-07-18 Fanuc Ltd Position correcting system for machine position fluctuation
JPH0716816B2 (en) * 1989-12-08 1995-03-01 三菱電機株式会社 Thread cutting method
DE59008369D1 (en) * 1990-05-22 1995-03-09 Siemens Ag Control for a machine tool or a robot.
US5327352A (en) * 1990-09-04 1994-07-05 Tornos-Bechler Sa Method and device for controlling one or mor axes in a machine tool
WO1992015068A1 (en) * 1991-02-15 1992-09-03 Incontrol, Inc. Computer control system for generating geometric designs
JPH0615589A (en) * 1992-07-03 1994-01-25 Daihen Corp Industrial robot control device
US5331264A (en) * 1993-04-15 1994-07-19 Fanuc Robotics North America, Inc. Method and device for generating an input command for a motion control system
US5508596A (en) * 1993-10-07 1996-04-16 Omax Corporation Motion control with precomputation

Also Published As

Publication number Publication date
US5892345A (en) 1999-04-06
US5508596A (en) 1996-04-16
EP0722580A4 (en) 1998-05-13
JPH09503604A (en) 1997-04-08
TW274655B (en) 1996-04-21
CA2173241A1 (en) 1995-04-13
KR960705267A (en) 1996-10-09
EP0722580A1 (en) 1996-07-24
WO1995010076A1 (en) 1995-04-13

Similar Documents

Publication Publication Date Title
CA2173241C (en) Motion control with precomputation
US7035708B1 (en) Automated fluid-jet tilt compensation for lag and taper
Tajima et al. Global tool-path smoothing for CNC machine tools with uninterrupted acceleration
US6922605B1 (en) Automated fluid-jet tilt compensation for lag and taper
US5025385A (en) Multiple axis motion control system
KR100253684B1 (en) Process of generating discrete points defining cutter path, by taking account of ability of individual machine, so as to increase machining efficiency
US5204599A (en) Contour compensation method for numerically controlled machines
US6922607B2 (en) Numerically controlled method
US4947336A (en) Multiple axis motion control system
EP0880085B1 (en) Adaptive feedrates from geometry modeling for nc machining
US5808888A (en) Method and apparatus for programming a CNC machine
JP4199103B2 (en) Numerical control apparatus and numerical control method
US6539275B1 (en) Machine controller and process with two-step interpolation
US4994978A (en) Acceleration/deceleration control apparatus
EP0166784A1 (en) Area machining method
EP0420985B1 (en) Involute interpolation speed control system
US6658317B2 (en) Method for setting a moving position in a machine tool
JPH01147610A (en) Numerical controller
US4764878A (en) Surface cutting method
JPH0331911A (en) System for correcting involute interpolation error
JPH09190211A (en) System for controlling route of numerically controlled device
JPH0446705B2 (en)
JP3902353B2 (en) Numerical controller
KR100249354B1 (en) Method of contour error modeling for cross-coupled control of cnc machines
JP2566180B2 (en) Interpolation method of linear axis and rotary axis of numerical controller

Legal Events

Date Code Title Description
EEER Examination request
MKLA Lapsed