APPARATUS FOR PROGRAMMED CONTROL OF A ROBOT

Abstract: An industrial robot, and particularly a control system therefor, is described wherein the data upon which the control system operates to position the robot relative to a workpiece can be altered during the operation of the robot to compensate for position error and the like. The de­ scribed robot is of the type having a support unit and a base unit mounted on the support unit and rotatable about a vertical axis. A lower arm member is mounted on the ro­ tatable base unit and pivotable about a horizontal axis. An upper arm member is mounted on the upper end of the lower arm member for pivotal movement about a horizontal axis. A tool supporting unit is universally connected to the upper arm member through a wrist structure. The opera­ tions of the robot are controlled by input data which is ge­ nerated through a manual teaching operation. The data supplied by the teaching operation is edited, as operations proceed, through the use of an electronic edit box coupled to the computer control system.

Description: BACKGROUND OF THE INVENTION This invention relates to industrial robots and, more particularly, to control systems for such robots. There are many forms of industrial robots designed to perform many types of industrial functions. It is now conventional that such robots be controlled by computers uhich, based on certain forms of input data, supply command signals to the robot operating mechanisms to cause the robot to assume a series of positions to thereby permit it to perform the prescribed uork function. It is customary that the input data operated on by the aforementioned computer for deriving the command signals is generated by, in effect, teaching the robot the various positions it must assume. That is, the robot learns its operating sequence by, for example, following the motions of an operator's hand through the prescribed uork sequence. For example, the tool carrying portion of the robot may be equipped uith a handle which uill permit the operator to cause the robot to move through a path to the various positions it must assume. In so doing, for example, voltages might be generated having values corresponding with the various positions, and these voltages can be converted to binary data to be supplied to the computer. This data which relates to the positions to be assumed for each axis of movement of the various robot components at various points in time is recorded in a memory which may be of any known type, such as magnetic tape, magnetic discs, semiconductor, etc. The data, so recorded, is read back by the computer, i.e., the computer reads back the position that each axis of operation of the robot should -occupy at any point in time. In the computer, the data corresponding to that desired position, i.e., the operating data, is compared with data relative to the robot's present position, and-a signal corresponding with the difference is generated which is fed to the drive mechanism for controlling the robot in an attempt to move the robot to the recorded or desired position. The latter is a digital technique for producing difference or command signals; as is known, analog servo techniques can be used as well. It is quite normal that in the manual supply of input positions data to the robot's computer, certain position errors will occur. Thus, the recorded position data or operating data may not be as accurate as desired during subsequently performed operating sequences, and it will be desired that this position data be changed without the need for stopping production operations and entirely teaching the robot. It is, therefore, an object of this invention to provide means and method for editing operating data for an industrial robot during the operations of that robot. It is another object of this invention to provide means and method for editing operating data for an industrial robot without requiring that the robot be removed from operation or that it be fully resupplied with operating data. A further object of this invention is to provide means and method for permitting the editing of operating data for an industrial robot which permits changes to be made in the recorded positions to be assumed by the robot involving all axes of motion of the robot, as well as tool operations, while the robot continues to operate. SUMMARY OF THE INVENTION The foregoing and other objects are achieved in accordance with the invention by a technique by which data is supplied from an external source which serves to edit previously recorded position data forming operating data for the robot to permit the robot being operated by the control system to assume positions which are observed to be more correct than the positions corresponding with the recorded data. In a preferred form, a device, referred to herein as an edit box, is coupled to the computer and is manually operated. The edit box can be operated to modify the robot's operating data, as it is retrieved from storage, one axis at a time, with each operational step. The previously recorded data is edited or modified for the position to be assumed during that operating step. BRIEF DESCRIPTION OF THE DRAWINGS The principles of the invention will be more readily understood by reference to the description of a preferred embodiment thereof given hereinbelow in conjunction with the drawings which are briefly described in the following: Fig. 1 is a perspective view of an exemplary robot structure to which the invention can be applied; Fig. 2 is a schematic diagram of the hydraulic control system for the Fig. 1 robot; Fig. 3 is a block-schematic diagram of a preferred embodi ment of a programmed control system which select ively operates the Fig. 2 hydraulic control system to cause prescribed movement of the Fig. 1 robot; and Fig. 4 is a perspective view of a preferred embodiment of apparatus according to the invention for modifying data upon which said programmed control system operates. DESCRIPTION OF THE PREFERRED EMBODIMENT Fig. 1 illustrates a typical form of an industrial robot system to which the invention described herein might be applied. This industrial robot for performing a mechanical work function on a workpiece comprises a tool 10 which is adapted to perform the work function on a workpiece 11; the tool is mounted on a robot 12. System 14 is a control system for controlling the motions of robot 12. The robot illustrated herein includes a support unit 15 having a base unit 16 mounted thereon for rotation about a vertical axis. A lower arm member 17 is pivotally attached at its lower end to the base unit for pivotal movement about a horizontal axis. An upper arm member 18 is pivotally connected to the upper end of lower arm member 17 for pivotal movement about a horizontal axis and a wrist structure generally indicated at 19 is mounted on the free end of the upper arm member. The wrist structure is described in greater detail in a copending commonly assigned U.S. patent application by Kenneth A. Susnjara and mark A. Fleck entitled "A Wrist Construction for an Industrial Robot", Serial No. 127,482 , filed 5th March 1980. The aforementioned support unit 15 includes an upper platform wall 20 and a number of sidewalls 21 provided with a lower peripheral flange 22 for bolting or otherwise firmly securing the robot to the floor or ground on which it is situated. Base unit 16 includes a circular support plate 23 mounted on platform wall 20 of the support unit for pivotal movement about a vertical axis. In addition, a depending section 24 is disposed along the aforementioned vertical axis and a mounting bracket 25 is mounted on and rotatable with support plate 23. The base unit is pivoted about its vertical axis of rotation by means of a hydraulic cylinder assembly in the conventional manner. The upper' and lower ends of lower arm member 17 are bifurcated. The lower bifurcated end of the lower arm member straddles mounting bracket 25 and is pivotally connected thereto for pivotal movement about a horizontal axis of rotation. Such pivotal motion is effected by a hydraulic cylinder assembly 30 having a cylinder portion 31 pivotally connected at its lower end to mounting bracket 25 and a rod portion 32 pivotally connected at its upper end to a bracket 33 rigidly secured to the upper front end of the lower arm member. Upper arm member 18 includes a base section 34 and an extension section 35. These two sections are pivotally connected together so that the extension arm section can be displaced manually relative to the base arm section to correspondingly angularly displace the sphere of operation of the working tool. The structure and connected relationships of these two sections of the upper arm are described in greater detail in the aforementioned Susnjara and Fleck U.S. Application Serial No. 127,482. A power unit 13 hydraulically drives the robot to assume its various positions through the described piston and cylinder assemblies. This power unit may be a concentional commercially available type which might have an oil reservoir 110 and a set of pumps of the variable pressure-compensated type driven by a motor 113. This pump supplies fluid under pressure through a pressure line 114 to a series of twostage electrohydraulic servovalves 115 through 1QO while the other tandem pump supplies fluid under pressure through a pilot line 121 to the spool ends of these same valves. Fluid is returned from the control valves to the reservoir through a return line 122. Fig. 2 is a schematic diagram illustrating the electromechanical control means for operating the hydraulic drive mechanisms operating the robot. The various elements of these control systems are under the operating control of a computer which will be described in greater detail below. A valve 115 functions to control-the operation of swing cylinder assembly 26 and is connected thereto through a pair of fluid lines 123 and 124. Valve 116 functions to control the operation of lower arm cylinder assembly 30 and is connected thereto through fluid lines 125 and 126. Valve 117 functions to control the operation of upper arm cylinder assembly 36 and is connected thereto by fluid lines 127 and 128. Valves 118 and 119 function to control the operation of wrist actuating cylinder assemblies 88 and 89 for wrist 19 and are connected thereto by sets of fluid lines 129, 130, 131. and 132. Finally, valve 120 functions to control the operation of a rotary actuator 98 and is connecfed there- to by fluid lines 133 and 134. A control computer, which in this case assumes the form of a microprocessor structure, functions in the conventional manner with instructions in accordance with known programming techniques to develop command signals to actuate the aforementioned valve assemblies and the like to cause the various drive assemblies operating the robot to function. Basically, the computer compares the values of signals corresponding with the actual positions of the working tool with the desired positions as contained in the computers memory; this input data regarding the various desired positions being stored in the memory by means of the teaching technique discussed hereinabove. As a result of this comparison, the computer is able to determine the differences in positions between the current work tool position and the next desired position and, correspondingly, it generates command signals to selected valves of the various control valves discussed above for causing the work tool to move to that next desired position. The various positions of the arm components of the robot are sensed by rotary potentiometers 135 through 140 which are mounted on the robot so as to be able to assume positions corresponding with the positions on the various axes of the robot. Potentiometer 135 is mounted on base unit 15 for sensing the position of base unit 16 about a first vertical axis. Potentiometer 136 is mounted on mounting bracket 25 for sensing the position of the lower arm member about a second horizontal axis about which the lower arm member pivots. Potentiometer 137 is mounted on the upper end of the lower arm member for the purpose of sensing the position of the upper arm member relative to the lower arm member about a third horizontal axis about which the upper arm member pivots relative to the lower arm member. Potentiometer 138 is mounted on a. gear (not shown) which is a part of the wrist assembly for sensing the position of the tool supporting unit about a fourth horizontal axis. Potentiometer 139 is mounted on a lower section of carrier unit 43 so that it can sense the position of the tool supporting unit about a fifth axis which is perpendicular to the aforementioned fourth axis. Finally, potentiometer 140 is mounted on rotary actuator 98 for sensing the angular position of the working tool about a sixth axis which is perpendicular to the aforementioned fourth and fifth axes. The various position signals generated by the various potentiometers are converted in an analog digital converter of conventional construction to binary data signals suitable to be applied to an input terminal of the control computer for storage in the data membry thereof. As discussed hereinabove, input position data or operating data corresponding with the various positions to be assumed by the robot-from which the computer derives command signals to operate the robot over the aforementioned path is generated by moving the robot through a sequence of motions as desired or, for that matter, the data can be generated artificially and applied through suitable input means. In generating the operating data needed by the computer to produce appropriate command signals by physically moving the robot through the desired sequence of motions, in this embodiment, the outer end of the upper arm member and the tool supporting unit of the wrist structure are moved through a sequence of motions through the use of the shown lead through handles 142 and 143. The means by which the described robot is driven during this teaching mode is described in a copending commonly assigned U.S. patent application entitled improved Lead-Through Teaching Means for an Industrial Robot"by-Kenneth 3. Susnjara having the Serial No. 127,484 filed 5th March 1980. Under such conditions, the various potentiometers in the robot described above generate a sequence of position signals which, in turn, form the operating data for application to the computer. Fig. 3 is a block-schematic diagram illustrating the connected and functional relationships between the various portions of the motive power and hydraulic control and programmed control systems for the described industrial robot. As illustrated, robot 12 is caused to move about various of its axes through the operation of hydraulic valves 26, 30, 36, 88, as well as actuator 98, as described hereinabove in connection with Fig. 2 These actuating hydraulic valves form the robot actuators 150, as schematically illustrated in this figure. The robot actuators 150 are in fluid communication via the sets of hydraulic lines 152, which are formed from the hydraulic lines 123 through 134 in the Fig. 2 illustration. The hydraulic servovalves 154 are constituted by valves 115 through 120 in Fig. 2, and these latter valves orate to control the functions of the various actuating hydraulic valves 150. Power unit 13, as described in connection with Fig. 1, forms a hydraulic power source for the various piston and cylinder assemblies. Fluid is supplied to the various valves through the lines 121 and 122. As pointed out hereinabbve, the various servovalves 115 through 120 are selectively operated by control or command signals issuing from control system 14. These signals are shown schematically in this figure as being supplied over line 156. As discussed hereinabove, the potentiometers 135 through 140 supply voltage signals which are indicative of the current positions of the various axes of motion of the robot components. These potentiometers or position sensors supply their signals to control system 14 via lines 158 in this embodiment. In addition, as described in the abovereferenced copending patent application, entitled "Improved Lead-Through Teaching Means for Industrial Robot", these position sensors additionally provide operating data for storage in control system 14, and this data corresponds with the various positions the robot is "taught" to take when it is operated in the teaching mode. As stated, control system 14 operates on the basis of the input or operating data it receives and in accordance with a previously inserted program of a conventional nature to produce control or command signals for operating various ones of the valves 150 to cause the robot to move about its various operating axes in a predetermined sequence. Control system 14 is constructed as a conventional microprocessor structure and includes a processor 160 which may be formed from a Zilog Model Z80. Data storage 162 which can be formed from any practical storage medium for use with the aforementioned microprocessor receives and stores in accordance with the predetermined sequence of operation data regarding the various motions to be performed by the respective axes of motion of the robot mechanism. In accordance with a program stored in program storage 164, the processor operates to conventionally carry out a series of calculations necessary to utilize the operating data from storage 162 for issuing the necessary series of control signals which uill cause the robot 12 to move about its various axes so that it can perform its prescribed functions. Basically, the calculations to be carried out by processor 160, which'is programmed according to conventional techniques, comprise comparing the values of operating data retrieved from storage 162 corresponding with the next axial movement of a component of the robot mechanism with data obtained from position sensor lines 158 indicating the last position assumed by that particular axis. On the basis of the calculated difference between these two data signals, a command signal is generated which causes in the described manner the particular axis to move in a given direction by the prescribed magnitude. That is, the operating servovalve for the axis concerned is actuated to thereby operate the respective hydraulic valve to cause the needed motion about the axis in question. These functions are carried out in a sequence which will cause the robot mechanism to move through a prescribed path, as needed to carry out the desired work function. As is conventional, the processor 160 and its program and data storages 164 and 162 are in communication with the various inputs and outputs of the control signal via input/ output circuits 166. Thus, the various operating data supplied via position sensor signal lines 158 is communicated through the input/output circuit to the data storage to therein be converted to the required form placed in the proper locations in accordance with the prescribed operating sequence. These circuits supply the output control signals to the hydraulic actuating system. Further, as needed, the operating program for processor 160 can be altered by appropriate accessing program storage 164 in the conventional manner and modifying the program stored therein. These input/ output circuits include dual RS232C access ports which allow easy interface with various high level machines; the described embodiment can then be made part of a larger automated system operated by a central processing computer. In addition to the above components, a component identified hetein as an edit box 168 has access to processor 160 via the input/output circuits 166. The structure and functions of the edit box are described hereinbelow in connection with Fig. 4 In Fig. 4 is illustrated in perspective view the edit box 168 mentioned hereinabove. It is contemplated that this edit box be a hand-held device which in the following manner permits an operator to adjust or modify the operating data so as to permit errors occurring in the aforementioned teaching process to be corrected or to permit the operating data to be corrected to meet slight changes required in the work pattern. The changes can be made while the system continues to operate. A schematic diagram of the interior circuitry of edit box 168 is not provided in view of its simplicity. Switches 170 and 172 are merely BCD switches which are well known in the art. Operation of these devices produce pulse trains of lengths corresponding with switch position. Switch 174 is a threeposition rocker switch which in its center position is off. Uhen the -right portion, as viewed in the drawing of switch 174 is pressed, a positive change in magnitude is indicated and, when the left portion of the switch is pressed, a negative change infmagnitude is indicated. In the alternative, if the system is being operated on an analog basis, switches 170, 172 and 174 can be replaced with potentiometers. Operation of slide switch 176 causes the output of edit box 168 to modify the aforementioned operating data with regard to the amount of movement about the respective axes of the various robot components; operation of the switch to the right hand or output position causes modification of operating data with respect to tool manipulation. In the latter case, data which, for example, actuates and turns off a paint sprayer carried by the robot may be modified to change the point at which the paint sprayer is either turned on or turned off. Operation of switch 170 providss a data output which indicates which axis of motion of the robot is to have its operating data modified, and operation of switch 172 indicates the number of bits or the magnitude by which that axis is to have its motion distance modified. Operation of switch 174 provides an indication of whether the modification set up by switches 170 and 172 is to be in a positive or negative direction. It should be noted that, while the described embodiment of edit box 168 is constructed to edit one axis at a time, a plurality of switches 170 and 172 can be used to permit editing on a plurality of axes at a given time. In considering the operation of the system, as described hereinabove, the addition of the edit box will produce the following results. As each operating data word for a given axis of motion of the robot is called from the data storage 162 to processor 160, the processor under the control of the program from storage 164 is caused to look to the inputs it receives from edit box 168 and determine whether, at that point in time, there is input data from the edit box indicating the axis in question is to receive modifying data. If no such data is present for that axis of motion, the operation of the control system proceeds as described hereinabove. However, if, when it is preparing to cause motion about a given axis, the processor receives modifying data from edit box 168 regarding that axis, the processor will operate in the usual manner to modify the operating data for that axis by the amount and direction indicated by the input data from the edit box. Thus, the motion of the component in question about the axis in question is altered by the amount and direction indicated by the modifying data coming from the edit box. The foregoing arrangement permits an operator to observe the operations of robot 12 and, as is very often the case, the human eye is best able to determine when a given operating sequence is not producing the desired results. At the appropriate time, as the implement is proceeding over the present path, the operator can cause a slight change in the path to correct an error in the robot's motion. This error might have occurred during the lead-through teaching operation, or it might have to be made because of variations in the dimensions of the workpieces being processed. It is clear that the operating data for the robot can be edited without taking the machine out of service, and the edit box can be operated without making major changes in the various motions. Thus, it is the usual case that the motions being altered will be changed a little at a time over a number of cycles until the exact desired path of operation is being achieved. The editing technique in accordance with this invention, by individually considering each axis of motion, avoids confusion and allows operating data to be edited in an orderly manner. The embodiment of the invention described hereinabove is considered only to be exemplary of the principles of the invention, and it is to be remembered that a number of modifications or changes in the described embodiment can be made without deviating from the scope of the invention as defined by the appended claims.

Claims: EMI15.1 1. In a robot mechanism movable in a plurality of axes for moving an implement over a predetermined path having means for moving the robot mechanim about the respective axes and means for controlling the operations of said moving means, said control means comprising: control processing means, means for sensing the positions of the robot meohanism in each of said plurality of axes and for supplying signals of corresponding values to said control processing means, storage means in said control processing means for storing operating data for a series of movements of the robot mechanism about respective ones of said axes in a pre determined sequence to cause said implement to move over said predetermined path, comparator means in said control processing means for comparing on an axis-by-axis basis the positions of the robot mechanism as determined from the output signals of said means for sensing with desired positions as deter mined from said operating data, means for producing command signals to said means for moving to cause the robot mechanism to move about the respective axes in said predetermined sequences in in crements corresponding with the values of output signals from said comparator means, editing means for manually modifying said operating data in accordance with observed differences between actual and desired positions of the robot mechanism. 2 The robot-mechanism control means defined in claim 1 wherein said editing means comprises: manually operable switch means for selecting at least one axis for which operating data is to be modified and the sign and magnitude of the modification, means for coupling signals having values corresponding to the positions of said switch means to said control processing means wherein said operating data, on an axis by-axis basis, in said predetermined operating sequence is modified in accordance with the values of said electri cal signals received from said means for coupling. 3. The robot mechanism control means defined in one of claims 1 or 2 wherein said means for moving includes means for man ually moving the robot mechanism about said plurality of axes, said sensing means being operable during said manual movement to supply said signals to said control process ing means for storage therein as operating data. 4. The robot mechanism control means defined in claim 3 wherein said control processing means further includes program storage means. 5. The robot mechanism control means defined in claim 2 wherein said editing means is housed in a hand-held con tainer and can be remotely placed from the robot mechanism control means while being electrically coupled thereto. 6. The robot mechanism control means defined in claim 2 wherein said editing means further comprises means for selectively supplying modifying data to said control processing means for modifying operating data controlling said implement. 7. In a robot mechanism movable about a plurality of axes for moving an implement over a predetermined path having means for moving the robot about the respective axes and having programmed control means for controlling said means for moving comprising data storage means for storing oper ating data for a series of movements of the robot mechanism about respective ones of said axes in a predetermined sequence to cause said implement to move over said predet ermined path, means for sensing the positions of said robot mechanism and supplying corresponding sensor output signals and processor means for utilizing said sensor output sig nals and said operating data for producing command signals to said means for moving the robot mechanism about said plurality of axes in said predetermined sequence, the im provement comprising: : means for modifying said operating data as it is retrieved from storage by said processing means while the robot mechanism is in operation for selectively adjusting ones of the axial motions of the robot mechanism at selected points in said predetermined sequence. 8. The improved robot mechanism defined in claim 7 wherein said processor means compares said operating data and said sensor output signals on an axis-by-axis basis in the predetermined sequence and wherein said modifying means further comprises switch means for selectively modifying the signs and magnitude of said operating data for each axis of motion. 9. The improved robot mechanism defined in claim 8 wherein said modifying means is housed in a hand-held container and can be utilized remotely from the robot mechanism while remaining electrically coupled thereto. 10. A method of controlling a robot mechanism movable about a plurality of axes for moving an implement over a pre determined path and having means for moving the robot mechanism about the respective axes and means for select ively controlling said means for moving for causing the robot mechanism to operate over a predetermined path, comprising the steps of: : storing operating data for a series of movements of the robot mechanism about respective ones of said axes in a predetermined sequence to cause said implement to move over said predetermined path, sensing the positions of the robot mechanism in the res pective axes and supplying corresponding sensor output signals, comparing said operating data and said sensor output sig nals and producing command signals corresponding in values with the results of the comparisons, said command signals - being supplied to said means for moving and modifying said operating data while the robot mechanism remains in operation to modify selected ones of said axial motions at selected points in the predetermined sequence of operation of the robot mechanism. 11. The method defined in claim 10 wherein said comparing occurs on an axis-by-axis basis and wherein said modi fying step comprises selectively modifying the sign and magnitude of the operating-data with respect to respective ones of the axial motions of the robot mechanism.

Inventors: SUSNJARA, KENNETH J.
Applicants: THERMWOOD CORPORATION
Application year: 1981
Main classification: G05B19
IPC codes: B25J9, G05B19