Background of the Invention
The present invention relates to an industrial robot, and more particularly to a method and system for operating the robot according to a selected teaching mode.
It has been known to teach an industrial robot so that in playback its arm traces a desired path. However, it has been recognized that an operator's hand tends to vibrate as his teaches the robot and adversely affects on the movement of the robot arm. Furthermore, the path to be traced by the robot arm contains bends and curves which vary in different ways depending on different tasks it is assigned to perform. It is thus advantageous to teach the robot arm to trace a path in a selective mode according to the assigned task.
Summary of the Invention
It is therefore an object of the present invention to provide a method and system for operating an industrial robot in a selective teaching mode to meet different tasks the robot is assigned to perform.
According to the present invention, first, second and third flags are selectively generated for indicating first, second and third teaching modes, respectively. A position signal representative of the path to be traced by an industrial robot arm is generated and sampled at a higher rate in response to the first flag to produce a first train of samples or at a lower sampling rate in response to the second and third flags to produce a second train of samples. When the second flag is generated a sample between successive samples of the second train is interpolated and combined with the samples of the second train to produce a third train of samples. When the third flag is generated, a sample between successive samples of the second train is approximated to produce a fourth train of samples. A motor is controlled in accordance with the first, third and fourth trains of samples to cause the robot arm to trace a desired path. The first teaching mode is selected when the path to be traced contains many bends and curves. The second and third teaching modes are advantageously selected for causing the robot arm to trace a relatively smooth path without being adversely affected by operator's hand vibrations .
Brief Description of the Drawings
The present invention will be described in further detail with reference to the accompanying drawings, in which:
FIG. 1 is a block diagram of a prior art robot teaching system;
FIG. 2 is a block diagram of a robot teaching system according to an embodiment of the present invention;
FIG. 3 is a block diagram of a robot teaching system of the present invention which is implemented by a microcomputer;
FIG. 4 is a flowchart describing the instructions performed by the microprocessor of FIG. 3 according to one embodiment of the invention; and
FIGS. 5A and 5B are flowcharts describing the instructions performed by the microprocessor according to another embodiment of the invention.
Detailed Description
Prior to description of the present invention, it is appropriate to refer to FIG. 1 in which is shown a prior art system for teaching an industrial robot. When teaching the robot, the robot arm 1 is directly manipulated by an operator so that it traces a desired path. As the arm traces the path, a motor 2, which drives the arm through a coupler 10, rotates with the arm and the angular position of the motor shaft is detected by a position encoder 3. The output of encoder 3 is written by a write circuit 4 into a path memory 5 at periodic intervals. In playback, a coordinate converter 6 addresses the memory to sequentially read the stored angular position signal and converts the position signal to a coordinate signal representing the position of the arm 1 in a three-dimensional coordinate system. The coordinate position signal is applied to a position error detector 7 where it is compared with an angular position signal supplied from the position encoder 3. The detected position error is trimmed with a position correction factor and fed to a speed error detector 8 as a speed reference signal for comparison with an actual speed signal supplied from a tachogenerator 9 coupled to the motor shaft. The detected speed error is trimmed with a speed correction factor and amplified to a level sufficient to drive the motor.
However, small vibrations can occur in the operator's hand as it moves the robot arm and are transmitted to the arm and thence to the position encoder 3. Thus, the stored path data contains undesired vibratory components affected by the vibrations. It is thus impossible to achieve high precision when positioning the arm.
Referring to FIG. 2, there is shown an industrial robot system according to an embodiment of the present invention in which parts corresponding to those in FIG. 1 are marked with the same numerals as used in FIG. 1. In FIG. 2, the robot arm 1 is controlled by a set of speed control units 1a, 1b and 1c of identical circuit configuration connected by respective couplers 10a, 10b and 10c. Each speed control unit comprises motor 2, tachogenerator 9, position encoder 3, position error detector 7 and speed error detector 8.
The angular position signals .theta.a, .theta.b and .theta.c from speed control units 1a, 1b and 1c are applied to a polar-to-quadratic coordinate converter 20 where the angular position signals are converted to a set of X, Y and Z coordinate signals respectively represented by the coordinates of a three-dimensional quadratic coordinate system. The quadratic coordinate signals X, Y and Z are applied to a write circuit 21 which samples each coordinate signal at a variable rate determined by a mode select flag supplied from a mode selector 22. Mode selector 22 is manually operated to generate a flag A which indicates that the path the robot arm is to follow has a greater number of bends and curves, a flag B indicating that the path has a medium number of bends and curves, and a flag C indicating that the path has a smallest number of bends and curves.
During a teaching mode, the operator selects one of the flags according to the characteristic of the intended path with due consideration on the effect of possible vibrations of his hands on the arm movement, while manipulating the arm to follow an intended path. When flag A is entered, the write circuit 21 is directed to sample each coordinate position signal at a high rate. For flags B and C, the write circuit 22 is directed to sample the coordinate signals at a low rate. Write circuit 22 also generates a time-keeping signal indicating the sampling time for each sample point and forms a data set by the mode-select flag, time-keeping signal and its associated sample point signal. Each data set is stored into an addressable memory cell of a path memory 23.
In playback, the path memory 23 is addressed by a read circuit 24 to sequentially read the stored data sets into a selector 25. Selector 25 decodes the flag of each data set and selects one of its output lines A, B and C corresponding respectively to the selected flags A, B and C. If flag A has been selected during the teaching mode, selector 25 couples the output of read circuit 24 directly to a quadratic-to-polar coordinate converter 28 where it is converted to a set of angular position signals. If flag B has been selected, the output of read circuit 24 is applied to an interpolation circuit 26 which performs interpolation of quadratic positions for each coordinate signal over a plurality of sample points defined by their associated time-keeping signals and supplies a set of interpolated signals X, Y and Z indicating an intermediate angular position between successively sampled angular positions to quadratic-to-polar coordinate converter 28. If flag C has been selected, the output of read circuit 24 is applied to an approximation circuit 27 which performs approximation of quadratic positions for each coordinate signal over plural sample points defined by the associated time-keeping signals so that the approximated quadratic positions describe a smooth path in the three-dimensional coordinate system which may somewhat deviate from the path traced by the arm 1 during the teaching mode. The approximated positions are represented by corresponding signals and applied to coordinate converter 28.
Quadratic-to-polar coordinate converter 28 converts the X, Y and Z coordinate signals of either flag into a set of angular position signals for coupling to the position error detectors 7 of the control units 1a, 1b and 1c, respectively.
The embodiment of FIG. 2 can also be implemented by a microcomputer 30, as shown in FIG. 3. The input angular position signals from X-, Y- and Z-axis control units 1a, 1b and 1c are applied to an input/output port 31 and the output angular position signals are supplied from the input/output port 31 to the respective control units. Mode selector 22 is also connected to the input/output port 31. A random access memory 32 operates as a path memory for storage of the data sets mentioned in the previous embodiment. A microprocessor 33 operates in accordance with a program stored in a read-only memory 34. FIG. 4 is an illustration of the program stored in the read-only memory 34. A teaching mode starts with operations block 40 which directs the microprocessor 33 to read a mode flag from mode selector 22 and angular position signals from speed control units 1a, 1b and 1c through input/output port 31 into RAM 32. Exit from block 40 is to decision block 41 which identifies the flag now stored into RAM 32. If flag A is stored, exit is to operations block 42 which directs the sampling, or reading of each of the stored angular position signals at a high rate and if flag B or C is stored, exit is to operations block 43 which directs the reading of the stored angular position signals at a low rate.
Exit then is to operations block 44 which directs the conversion of the sampled angular position signals to quadratic position signals. Control now proceeds to operations block 45 which directs the forming of a data set by a set of quadratic position signals Xi, Yi, Zi, the mode flag stored in RAM 32 and a time-keeping signal indicating the sample-point time Ti and directs the writing of the data set into RAM 32. Exit then is to decision block 46 which tests for the presence of an end-of-teaching signal. If there is none, exit is to block 40 to repeat the process until the end-of-teaching signal occurs.
A playback mode initiates with operations block 47 in response to a command signal from mode selector 22. Block 47 directs the sequential reading of the data sets stored in RAM 32. Exit from block 47 is to decision block 48 which identifies the mode flag of the read data set. If flag A is encountered, exit is to operations block 51 which directs the conversion of the quadratic signals of the data sets into angular position signals .theta.a, .theta.b and .theta.c, which are delivered to input/output port 31 in operations block 52. If flag B is detected, exit from decision block 48 is to operations block 49 which directs the interpolation of a quadratic position using a plurality of successive quadratic positions and the generation of a set of interpolated quadratic signals Xi, Yi, Zi (i=1, 2, 3 . . . n) representing the interpolated quadratic position over a segment between successive quadratic sample points. If flag C is present, exit is to operations block 50 which directs the approximation of a quadratic position using a plurality of adjacent quadratic positions and directs the generation of a set of quadratic signals representing the approximated quadratic position. Exit from operations block 49 and 50 is to block 51 to provide conversion of quadratic to polar coordinates. Decision block 53 is executed following the execution of block 52 to repeat the above process until an end-of-playback signal is generated.
FIGS. 5A and 5B are an illustration of a modification of the program. The teaching mode starts with operations block 60 which directs the sampling of the angular position signals at a high rate and storing the samples into RAM 32. The sampled angular position signals are converted to X, Y, Z quadratic coordinate signals (block 61) and stored again into RAM 32. The process is repeated until the end-of-teaching signal is detected (block 63).
A playback mode begins with operations block 64 which directs the reading of a flag from the mode selector 22. Exit then is to operations block 65 which directs the reading of the quadratic signals from RAM 32. Decision block 66 tests for the flag just read in block 64. If flag B or C has been read, operations block 67 is executed by sampling the quadratic signals at a low rate, the sampled quadratic signals being stored into RAM 32 (block 68). Exit then is decision block 69 which tests to if the flag is B or C. If flag=A is present, control proceeds to operations block 70 which directs the reading of the quadratic signals stored in block 68 and control advances to operations block 71 which directs the determination of an intermediate value by interpolation. The quadratic signals including the interpolated signal are then converted to an angular position signals (block 72) and delivered to the input/output port (block 73). Blocks 70 to 73 are repeated until an end-of-playback signal is detected (block 74).
If flag=C is detected in block 69, exit is to operations block 75 which performs the same operations as in block 70. Control proceeds to operations block 76 which directs the determination of intermediate values by approximation. The approximated values are then converted to angular position signals (block 77) and delivered to the input/output port (block 78). Blocks 75 to 78 are repeated until an end-of-playback signal is detected (block 79).
If flag=A is detected in block 66, exit is to operations block 80 which directs the reading of the quadratic position signals from RAM 32. Control proceeds to operations block 81 which directs the conversion of the quadratic signals into corresponding angular position signals which are delivered to the input/output port (block 82). Blocks 80 to 82 are repeated until the end-of-playback signal is detected (block 83).
The foregoing description shows only preferred embodiments of the present invention. Various modifications are apparent to those skilled in the art without departing from the scope of the present invention which is only limited by the appended claims. Therefore, the embodiments shown and described are only illustrative, not restrictive.