ROBOT CONTROLLER

Abstract: A robot hand holds a work and stacks it on a predetermined place or takes it down. Each of the five axes of the robot arm is controlled by a servo motor (8) and a control circuit (6) having feedback control loops in position, speed and current. A ROM (2) stores a control program including a G code and operands for stacking operation. A RAM (3) stores data including bottom point positions, approaching patterns of the robot hand, and robot attitude parameters. A path pattern from a starting point to an ending point via a stacking operation point is set arbitrarily by selecting from a menu displayed on a CRT, and so are other parameters. When the operation is required, a link buffer is generated on the RAM (3) in real time, based on the data already specified, and gives instructions to the servo control circuits (6).

Description: Technical Field This invention relates to a robot control apparatus having a palletizing function. Background Art Generally, in order for a robot A shown in Fig. 3 to carry out a palletizing operation to automatically stack and unstack workpieces, a robot control apparatus having a prescribed palletizing function is required. This robot is constructed for control along six axes, namely a ϑ axis, W axis, U axis, α axis, β axis and γ axis and performs palletizing by gripping workpieces by means of a hand. An example of a palletizing operation will now be described with reference to Figs. 4 through 6. If workpieces W are to be stacked in the n rows, m columns and ℓ levels shown in Fig. 4 by a palletizing operation, first the palletizing positions P1, Q111, Qn11, Q1m1, Qnm1, Q11ℓ, R1 are defined and palletizing is executed by software prepared in accordance with a predetermined program. By way of example, an operation for stacking a workpiece at a point Qijk shown in Fig. 6 is performed through the following sequence: (1) The robot hand is moved from a position at point O, which is occupied prior to the start of palletizing, to a point Pij. The point Pij is set in such a manner that vectors and will be equal. (2) The hand is moved along a straight line from the point Pij to the point Qijk. (3) The workpiece is stacked at the point Qijk. (4) The hand is moved along a straight line from the point Qijk to a point Rij. The position of Rij is set in such a manner that vectors and will be equal. (5) The hand is moved from the point Rij to a position S which the hand occupies at the conclusion of palletizing. The attitude of the hand at the points Pij, Rij is made to coincide with that at points P1, R1, and the attitude of the hand at the point Qijk is made to coincide with that at point Q111. Thus, with a robot control apparatus having this conventional palletizing function, the robot is controlled on the assumption that workpieces of the same shape as shown in Fig. 4 are to be stacked and unstacked in a fixed pattern. However, there are instances when it is necessary to perform palletizing while changing the attitude of the robot hand from one level to the next even though the workpieces are identical in shape, as in a case where a palletizing reference position shifts in accordance with stacking, as with automobile doors Wo shown in Fig. 7(a), or in a case where workpieces W1, W2 having different sizes as shown in Fig. 7(b) are stacked, or workpieces W3, W4 the sizes of which differ from one level to the next are stacked, as depicted in Fig. 7(c). Furthermore, in order to control movement in such a manner that the robot hand will not interfere with a workpiece stacked previously, it is necessary to prepare a variety of motion patterns in advance and perform the operation while changing the motion pattern for each workpiece. However, a robot control apparatus having the conventional palletizing function cannot cope with these situations. Disclosure of the Invention The present invention has been devised in order to solve the foregoing problem and its object is to provide a robot control apparatus capable of suitably selecting array patterns in which workpiece arrays differ from one level to the next and motion patterns for avoiding interference with other workpieces, this feature being difficult to achieve with the conventional palletizing function, the apparatus also being adapted to reduce teaching labor and required memory capacity. In accordance with the present invention, there is provided a robot control apparatus, for a robot having a hand for gripping workpieces which robot performs a palletizing operation for stacking or unstacking workpieces (W₀-W₄) to be gripped by the robot hand,at predetermined locations, the control apparatus comprising: commanding means for commanding the robot to perform a palletizing motion based on a computed robot hand motion path and characterised by further comprising memory means arranged to store a plurality of approach patterns for approach from a first position at which robot hand movement starts (0) to a second position (P2) at which a workpiece is stacked or unstacked and from the second position to a third position (S) at which movement of the robot hand ends; arithmetic means arranged to select from said approach patterns in dependence upon the second position and computing a robot hand motion path for each workpiece; and having setting means for changing and setting for each workpiece the attitude of the robot hand at said second position. Accordingly, by expanding the palletizing function, the robot control apparatus of the invention sets various motion patterns and stacks workpieces by changing the attitude of the hand. As a result, control can be performed to follow up any change in reference point and stacking is possible in which workpieces do not interfere with one another. The same effects are obtained even when unstacking workpieces. Brief Description of the Drawings Fig. 1(a) is a block diagram illustrating the general features of a robot control apparatus applied to the present invention, Fig. 1(b) is a flowchart illustrating the general features of motion pattern registration, Fig. 1(c) is an explanatory view illustrating an execution procedure of a program at playback, Fig. 1(d) is a view for explaining grid point calculation, Figs. 2(a), (b) are explanatory views showing examples of motion patterns according to the present invention, Fig. 3 is an external view of a robot, Fig. 4 is an explanatory view showing an example of a workpiece array, Figs. 5 and 6 are explanatory views illustrating palletizing motions according to an example of the prior art, and Figs. 7(a) through (c) are explanatory views illustrating various examples of stacking workpieces. Best Mode for Carrying Out the Invention An embodiment of the present invention will now be described in detail with reference to the drawings. Fig. 1(a) is a block diagram illustrating the general construction of a robot control apparatus to which the present invention is applied. The robot control apparatus includes a CPU 1 having an internal register array. The CPU 1 is connected by an address/data bus 7 to a memory ROM 2, a RAM 3, an input/output port (I/O) 4, a magnetics panel 5 and a servo-control circuit 6. The ROM 2 stores a control program for performing overall robot control, and the RAM 3 stores a taught motion program, taught data, command data and the like. The servo-control circuit 6 has a position amplifier, velocity amplifier and current amplifier. A servomotor 8 controlled by the servo-control circuit to perform drive along each axis is provided with a current detector 9 constituted by a current transformer CT, a velocity detector 10 constituted by a tachogenerator TG, and a position detector 11 constituted by a pulse coder PC. By using the detected values of the detectors 9 through 11, a current loop, velocity loop and position loop are formed to carry out prescribed control of the servomotor 8. The servomotor 8 is provided for each of the controlled axes. In this case, five of these servomotors are provided for driving the respective axes of the robot, and the servo-control circuit 6 connected to the address/data bus is mounted on each of these servomotors. In the present invention, the program is written to include only a G code, which is for indicating the position at which palletizing motion starts, and the corresponding operand. Data specifyng actual motion is stored in separate files. In connection with program execution, a file designated by the operand is utilized, with the file name (file number) serving as an argument. Accordingly, when teaching the robot palletizing data, the palletizing command is set in a menu format from a command display, and position data, approach format and the like regarding a workpiece on the floor are designated. Fig. 1(b) is a flowchart illustrating the general features of palletizing motion pattern registration performed using a command display. Teaching is carried out in the following manner by teaching a G code and an operand on an ordinary program display, and registering palletizing motion patterns from a command display: Let O represent a movement starting point and S a movement end point. Various motion patterns inclusive of a plurality of junction points, such as a pattern of palletizing motion traversing a path P0 - P1 - P2 - P3 - P4 [Fig. 2(a)] and a motion pattern traversing a path Q0 - Q1 - Q2 - Q3 [Fig. 2(b)], are stored in the RAM 3, thereby preparing a robot control pattern. The teaching of these various motion patterns will now be described. Fig. 1(c) is a view illustrating an example of a teaching program. The program is written to include a G code and an operand for indicating a position at which palletizing motion is to start. Data specifying actual motion are stored in separate files. A palletizing data file is prepared by selecting a predetermined program display and then using this display. Data relating to (1) a bottom point (grid point), (2) an approach pattern and (3) pallet parameters are taught and set and stored in a file. A bottom point is a position at point P2 in the example of Fig. 2(a) and represents a typical point for stacking workpieces. An approach pattern refers to a motion pattern which includes a plurality of junction points between the movement starting point O and movement end point S. If a plurality of motion patterns are set for a particular workpiece, selection can be made by pattern number from among motion patterns such as the motion pattern shown in Fig. 2(a), the motion pattern shown in Fig. 2(b), etc. The number of motion points constituting a selected pattern can also be designated. In the example of Fig. 2(a), there are five points, namely P0 - P4. Though the number of points forming a pattern can be selected at will, the maximum value is limited, as to a value of 16, by way of example. The following parameters can be set as pallet parameters: (1) Palletizing point data This is a parameter for deciding displacement in the height direction of workpiece stacking and is determined by the amount of displacement along the Z axis or the amount of displacement in the vector direction. (2) Hand orientation data This is a parameter regarding a height limitation upon robot hand retraction after workpiece stacking. This value determines whether there is to be a transition to the next palletizing motion from the same height or whether a different height is to be set for each stacking level. (3) Moving pattern data This is a parameter relating to a method of deciding hand attitude at a partitioning point and decides whether to fix the system to a pulse at a representative point, whether to equally divide the attitude vector at the representative point equally by a fixed pulse number or by the rotation of the attitude vector. (4) Register control data This is a parameter relating to whether or not a register which sets the remaining number of workpieces is automatically decremented. In a case where workpieces are stacked and unstacked equally at each level, as in the palletizing operation shown in Fig. 4, the workpiece number set in the register is automatically decremented. In a case where a workpiece W4 is stacked at every other level, as in the palletizing operation of Fig. 7(c), or in a case where the way in which stacking is performed is changed, automatic decrementing is not carried out. Path computation performed at playback based on the various set parameters and data will now be described. In order to compute the coordinates of grid points with regard to each workpiece, block numbers N1-1, Nn-1 serve as references. Block numbers N are assigned by a level number - number combination in order starting from the leading block. As shown in Fig. 1(d), workpiece stacking positions are set as N1-1, N1-2, ... N1-ℓ with regard to the first level, N2-1, N2-2, ... N2-m with regard to the second level, and the grid point Nn-1 at the uppermost level. At such time, all grid points are computed by any of the following procedures. The program display screen has a display resembling an ordinary one, and only the display of the block number and the display of the motion pattern number differ. The total number of points displayed is the sum of the number of workpieces in the first level and the number of workpieces in the second level set by the previous display. A value of from 1 to the number of patterns set by the previous display can be used as a pattern number. The taught data can be inputted by the two methods of present position teaching and MDI teaching. The method of processing the inputted data can be any of the following three and designation is possible in dependence upon the robot model and parameter: (1) partition only the Z-axis value; (2) partition only the Z-coordinate value; and (3) partition the vector. As for the hand attitude at the grid point Q, it is possible to select any of the following, in which designation can be made in dependence upon the robot model and the parameter set as the moving pattern data: (1) fix to the hand attitude at the grid point N1-1; (2) fix to the hand attitude at the taught point of the underlying level corresponding to the workpiece; (3) partition the increment of the control pulses for each robot hand axis from the grid point N1-1 to the grid point Nn-1, and decide by adding successively; and (4) partition the change in rotation about each axis of the reference coordinates from the grid point N1-1 to the grid point Nn-1, and add. In order to decide a palletizing motion pattern, as in the example of Fig. 2(a), the fundamental form obtains |P0, |P1,... (motion points of the vector display) in accordance with after the grid point Q is computed. It should be noted that it is possible to determine the starting point |P0 and end point |P4 of pattern motion in the following manner, rather than using the fundamental form. If, with regard to a workpiece of an upper level, the positions of the starting point and end point thereof rise, the set stroke is exceeded or the robot hand performs wasteful motion, this method will prevent these inconveniences encountered with the abovementioned fundamental form. First, when deciding a starting point (or end point), is added to the grid point (i.e. a taught point) of the lowermost level corresponding to the particular workpiece. (3) The starting point (or end point) uses the taught point of the pattern as is. The above teaching method can be carried out by key input while successively changing over the CRT display. When a G code G77 for expanded palletizing is in the program of Fig. 1(c) at the time of playback, a link buffer is prepared at a predetermined location in the RAM 9 corresponding thereto. At such time, operands 1, 2 contained in the G code are treated as indeces, a predetermined palletizing file and register are called, and the link buffer is created in real time based on these data. Industrial Applicability The robot control apparatus of the present invention improves upon the control function of palletizing motions performed by a robot and contributes to automation of processes in manufacturing fields that deal with workpieces of diverse kinds.

Claims: A robot control apparatus, for a robot having a hand for gripping workpieces which robot performs a palletizing operation for stacking or unstacking workpieces (W₀-W₄) to be gripped by the robot hand, at predetermined locations, the control apparatus comprising: commanding means (1) for commanding the robot to perform a palletizing motion based on a computed robot hand motion path, and characterised by further comprising memory means (3) arranged to store a plurality of approach patterns for approach from a first position at which robot hand movement starts (0) to a second position (P2) at which a workpiece is stacked or unstacked and from the second position to a third position (S) at which movement of the robot hand ends; arithmetic means (1) arranged to select from said approach patterns in dependence upon the second position and computing a robot hand motion path for each workpiece; and having setting means (6) for changing and setting for each workpiece the attitude of the robot hand at said second position. A robot control apparatus according to claim 1, having setting means for changing and setting a number of junction points constituting said approach patterns. A robot control apparatus according to claim 1 or claim 2 having editing means for designating and editing said approach patterns from a command display screen based on a file list. A robot control apparatus according to claim 3, characterized in that said editing means of said approach pattern has means for setting taught data of bottom points (P2) expressing representative points of workpiece stacking. A robot control apparatus according to claim 3 or claim 4, characterized in that said editing means of said approach pattern has means for setting parameters related to hand attitude.

Inventors: ISHIKAWA HARUYUKI, MIZUNO TOHRU, ISHIKAWA, HARUYUKI, MIZUNO, TOHRU
Applicants: FANUC LTD, FANUC LTD.
Application year: 1988
Main classification: G05B19
IPC codes: G05B19, B25J9, B65G61, B62D1