Abstract:
A robot control system comprises a hand movable along a plane according to position command data determined based on an absolute coordinate system arranged along the plane, and rotatable around an axis vertical to the plane according to angular command data determined with respect to a base axis of the absolute coordinate system for working a workpiece at a certain working point thereof with a certain angular position of the hand. Input means inputs working point data representative of the working point in terms of a local coordinate system arranged on the workpiece, angular position data representative of the angular position of the hand at the working point determined with respect to a base axis of the local coordinate system, and position data of the workpiece located along the plane in terms of the absolute coordinate. Calculation means calculates the linear and angular displacements of the local coordinate system relative to the absolute coordinate system according to the position data of the workpiece provided by the input means. First transformation means transforms the local working point data provided by the input means to the absolute position command data according to the calculated linear and angular displacements. Second transformation means transforms the local angular position data provided by the input means to the absolute angular command data according to the calculated angular displacement.

Description:
BACKGROUND OF THE INVENTION 
     Various types of general purpose robots which are driven by a servomotor, a servovalve and others and provided with a plurality of drive axes operated and controlled by a controller have been developed to exercise a great performance for saving labor, rationalization of working and other purposes. The robots include those of the cylindrical coordinate type robot, orthogonal coordinate type robot and horizontally articulated type robot which have a vertical drive axis and are capable of positioning the axis at an arbitrary point along a horizontal plane rectangular to the axis. Most of these robots are provided with an axis capable of turning a workpiece posture for arbitrarily handling the workpiece within a horizontal plane at the nose of an arm. There is also such a general purpose robot which has three moving axes for space locating and three moving axes for hand posture controlling. What is common to these robots is that there are provided means for locating a robot hand on an arbitrary point along a plane and another means for turning the hand in an arbitrary direction around an axis vertical to the plane. 
     If robots are provided with means for locating a workpiece at a point within a plane and another means for turning a workpiece posture freely on the plane, then the workpiece can be incorporated to various kind of members to be assembled, and thus a flexibility in assembling function of the robots are improved so high. This invention therefore relates to the robot controlling system as described hereinabove. 
     However, the system for controlling such robots with high flexibility as mentioned comprises merely a system of teaching playback in most cases, and the teaching work yet has many problems. 
     In an assembling robot system for which a high locating precision is required, it is very difficult to match an arm origin position to the installation standard position of a robot with the high locating precision mechanically, moreover it is also difficult to match a position of a table for installing the robot thereon, a supply equipment such as pallet or the like, and members disposed peripherally of the robot such as a substrate member to be assembled and the like with a locating precision required relative to the robot arm. 
     Under the existing circumstances of manufacturing robots and robot systems as described above, the system controlled only based on teaching playback requires repeated teaching operation with respect to the same operating position in the member with reference to operating positions and hand directions in the member even if the same system is manufactured more than one, and with respect to the same members placed at different places in the same system. 
     For the reason given above, a method has been already proposed in our Japanese Application No. 59-128953. The method comprises the steps of defining a local coordinate system in a member to be assembled so as to designate many operating positions in an assembled setup, setting the operating position in terms of a coordinate of the local coordinate system, specifying only the coordinate taken by a reference point of the local coordinate system in a robot absolute coordinate system according to teaching method or other steps, operating a robot at each operating position of the member to be assembled according to a coordinate transformation between the local and absolute coordinate systems. This invention is to provide a controlling system in which the above method is further improved. 
     An object of this invention is to simplify substantially the operation for specifying an operating position and a hand direction when operation is carried out at a plurality of operating positions of the same member to be assembled placed in a plurality of places in the same robot system. 
     Another object of this invention is to simplify indication of an operating position and a hand direction second robot system and so on when the same robot system is used as the second robot system. 
     A further object of this invention is to facilitate an off-line teaching operation according to CAD, CAM and the like. 
     A superiority of the operating point setting system according to the local coordinate system described above in the aforesaid Japanese Application No. 59-128953 is as follows: 
     Members to be assembled include a member like a printed circuit substrate, for example, which has many operating points exceedingly precise in positional relation with each other. For such parts, a technique according to an on-line teaching of each operating position must be rather avoided, and the operating position can be set precisely by far according to a numeric input or off-line teaching in terms of a coordinate of the local coordinate system arranged on the member with a reference point. Further, it is advantageous to set only a coordinate of a reference point of the local coordinate system in a robot absolute coordinate system, thereby carrying out an actual operation through coordinate transformation between the local and absolute coordinate systems. 
     The above method relates only to a coordinate of the operating position, however, a method effective to correct an angular direction of a part incorporated into the member has not been in practice until now. Including the angular direction of parts, this invention simplifies the operating point setting method in a local coordinate. 
     In order to facilitate CAD, CAM in application of the robot, the operating position and the hand direction can be given by numeric input or off-line teaching as a coordinate in the local coordinate system and as an angle relative to a standard or base axis of the local coordinate system as described above. 
    
    
     BRIEF DESCRIPTION OF THE DRAWING 
     FIG. 1 is illustrative of an embodiment of this invention, wherein two substrates comprised of a same member to be assembled which has many operating points are placed along a plane defined by a robot absolute orthogonal coordinate system. 
     FIG. 2 is a block diagram of the embodiments of the control system for operating a control system of the embodiments of this invention, wherein xy, x&#39;y&#39; designate substrate local coordinate systems, P 1 ,P 2 ,P 3 , P 1  &#39;, P 2  &#39;, P 3  &#39; designate operating positions, and α 1  to α 3  designate angles indicating a hand direction relative to x-axis or X&#39;-axis in each operating position. 
    
    
     DETAILED DESCRIPTION OF THE INVENTION 
     FIG. 1 represents the local coordinate systems xy and x&#39;y&#39; arranged on the same two substrates or workpieces respectively which are members to be positioned along a plane defined by a robot absolute coordinate system XY. 
     Working points P1, P2, P3 and P 1  &#39;, P 2  &#39;, P 3  &#39; are exactly the respective same points on the substrates. The working points P1, P2, P3 and P 1  &#39;, P 2  &#39;, P 3  &#39; are determined by coordinates (x 1 , y 1 ) (x 2 , y 2 ) (x 3 , y 3 ) of the local coordinate systems xy, x&#39;y&#39; respectively. The coordinates are local hand position coordinates or working point data representative of the working points in the same member and hence very high in precision generally. Then, the coordinate values can easily be provided to the robot system according to a numeric input or an off-line teaching. 
     Further, the local hand position coordinates can also be set according to an on-line teaching. In this case, the local coordinate system xy or x&#39;y&#39; is taught first in the robot absolute coordinate system, and then P1, P2, P3 are taught as points on the local coordinate system. 
     For example, a plane parallel with the plane defined by the robot absolute coordinate system defines the local coordinate system xy in the form of an orthogonal coordinate system, and an origin of the local coordinate system xy and one reference point existing on x-axis or y-axis can be specified as a plurality of reference points or position data of the workpiece representative of the workpiece position in terms of the robot absolute coordinate system. After so specified by teaching, the local hand position coordinates or working point data representative of the working points P1, P2, P3 are taught, then absolute coordinates of P1, P2, P3 or position command data obtained through expression (1) by means of an arithmetic function of a robot controller. In the expression (1), coordinates of P1, P2, P3 in terms of the local coordinate system are represented by (x, y) and a corresponding coordinate in terms of the robot absolute coordinate system is represented by (X, Y), an origin of the local coordinate system in terms of the robot absolute coordinate system is (X 0 , Y 0 ) which then determines linear displacement of the local coordinate system relative to the robot absolute coordinate system, and an angular displacement of the local coordinate system xy with respect to the robot absolute coordinate system is θ. ##EQU1## 
     Then, where a coordinate of the reference point existing on the x-axis measured in terms of the robot absolute coordinate system is (X 1 , Y 1 ), COS θ and sin θ are obtained through: ##EQU2## 
     Along with the above coordinate transformation, the robot control system transforms a local hand direction angle data or local angular position data of the hand to absolute hand direction angle data or angular command data necessary for assembling the workpiece concurrently. Arrows indicated at the coordinate points P1, P2, P3, P 1  &#39;, P 2  &#39;, P 3  &#39; in the drawing indicate the local hand direction angles determining the angular position of the hand around an axis vertical to the plane. The hand direction angle is expressed by an angle relative to the coordinate standard or base axis of the local coordinate system and can easily be set according to numeric input and off-line teaching. 
     Then, the local hand direction angle data can also be set according to on-line teaching, and a correction or transformation of the local hand direction angle data is undergone to obtain the absolute hand direction angle data or the angular command data determined relative to a coordinate standard or base axis of the robot orthogonal absolute coordinate system through teaching by subtracting the angular displacement of the local orthogonal coordinate system relative to the robot orthogonal absolute coordinate system from the local hand direction angle data. 
     As described above, the local operating position coordinate specified in the local coordinate system is transformed through an inversion of the expression (1) to the absolute coordinate of the robot absolute coordinate system at the time of practical operation, and the absolute hand direction angle at the corresponding operating position is obtained from adding θ reversely to the local hand direction angle obtained through on-line teaching. 
     As described, the hand position coordinate transformation and specified hand direction angle transformation can be effected easily between the robot absolute coordinate system and the local coordinate system by this robot controlling system. 
     At the time of on-line teaching, the hand direction angle is unchanged, in most cases, with respect to different operating points, and since setting the hand direction angle data at every operating points involves a troublesome work considerably, it is desirable that a jogging operation for teaching is carried out with the hand direction angle being kept constant. In this connection, an orthogonal coordinate type robot is ready for such operation unconditionally, however, the axis for turning work posture must be turned reversely therefor by the angle at which the arm is turned in the case of cylindrical coordinate type and horizontal articulated type robots. 
     The operation described above is, as a matter of course, for a robot having three moving axes for space locating and three moving axes for hand posture controlling. By doing such, an teaching operation for which the hand direction must be set can be simplified. 
     The same operating positions P1 and P 1  &#39;, P2 and P 2  &#39; and P3 and P 3  &#39; on the local coordinate systems xy, x&#39;y&#39; as illustrated in FIG. 2 are specified exactly as the same local coordinate value as well as the hand posture or hand direction angle relative to the coordinate systems xy, x&#39;y&#39;. Therefore, it is particularly advantageous when a member to be assembled at different operating positions is placed in the robot system, and in case P1, P2, P3 are specified through teaching or other means, the robot can be operated accordingly by specifying exactly the same local hand position coordinates and local hand direction angles for P 1  &#39;, P 2  &#39;, P 3  &#39; and simply by specifying the position of local coordinate system x&#39;y&#39; along the absolute coordinate system XY. 
     Further, as described in Prior Art, it is very difficult to place a robot precisely in the installation standard position and also to prepare a position for mounting a member disposed in the periphery of the robot precisely. However, the precision is important mechanically when the same robot system is used more than one. In such a case, the operating point in a member to be assembled and the hand posture are specified identically by means of the local coordinate system, the mechanical precision is achieved by an teaching of the local coordinate system, and the hand position coordinate transformation and the hand posture or hand direction angle correction are carried out as described in the paragraph (Action), thereby operating the robot. 
     In any embodiments, teaching points can be sharply decreased. 
     Further, at the time of coordinate transformation between the local coordinate system and the robot absolute coordinate system, a burden for programming will not be increased even adding an angle correcting function for correcting an angle of the hand posture concurrently. Then, when the operating position is specified (including the teaching operation) as a coordinate of the local coordinate system, a hand direction angle relative to the coordinate standard axis of the local coordinate system is stored automatically together with the corresponding coordinate of the operating position, and thus a programming is undergone without consciousness particularly of the hand angle. 
     An embodiment of the control system for controlling the embodiment of the present invention as above-mentioned, is shown in a block diagram of FIG. 2. 
     In FIG. 2, a robot of the cylindrical coordinate type is designated by reference number 1, wherein a hand thereof is driven to arbitrary points along the horizontal plane through the rotation movement A of the arm and the horizontal linear movement B of the angular arm and the direction of the hand with respect to a rotational axis thereof vertical to the horizontal plane is controlled to change to an arbitrary angular direction through the rotation movement C of the hand. 
     In addition, the linear movement D is executed so as to move the hand to the vertical direction. These movements are undergone by the operating shafts connected to a driving source such as a motor and the like. 
     This control system comprises a controller 2 which controls the driving source and a terminal 3 which is provided with a key board and a display device to program the operating sequence of the robot and keys which conduct jogging operation of the operating axes of the robot 1 so that the terminal 3 can teach the operating position of the robot. 
     The controller 2 comprises a plurality of drive units 4 which control the driving source such as motors and the like (not shown) so as to drive a plurality of operating axes of the robot; an input and output control portion (I/O) 6 which is operable to execute receiving of input signals from the terminal 3 and sending of output signals displayed in the terminal, of output signals of the operating axes of the robot 1 and receiving of the over-load signal of the motors and the like from the drive units, sending of operating signals of the hand, receiving of the robot condition signals and sending and/or receiving control signals between the peripheral device of the robot and the I/06 and which is composed of the LSI and the like; a CPU 5 which is operable to execute processing the signals from the input-output control portion 6, controlling reading-out and/or storing of the data of a RAM 8 and reading-out of the data of a ROM 7, and operating the coordinate operation and/or logical operation of the robot; a RAM 8 which memorizes such data as the program data processed by the CPU 5, or robot operating position data, in accordance with the program signal from the terminal 3; a ROM 7 which memorizes the procedure for executing each of the commands of the program data stored in the RAM 8; and a plurality of movement control circuits 9 for outputting a movement command pulse to the drive units 4. 
     In the movement control circuit 9, the movement pulse number is set in the counter 10 and the interval between movement pulses that is in inverse-proportion to the movement speed, is set in the counter 11. Both of them are input from CPU 5 through the bus 12. In the counter 10, down counting is executed when the movement pulse is applied to the input terminal IN, and when the content becomes zero, the output terminal OUT becomes low level. The output pulse number of the counter 11 is the quotient which is obtained by dividing the input pulse number with the number proportional to the set interval. Oscillator 13 is an oscillator producing a certain frequency and flip-flop 14 is controlled in accordance with commands from the CPU 5. 
     In case that the pulse number and the pulse interval are set as mentioned above, when the flip-flop 14 is set by the CPU 5, the pulses with the certain frequency generates at the AND gate 15, and is applied to the counter 11, and the outputs of the counter 11 that are pulses with the same interval as the set one, are applied to the input terminal of one of drive units 4 and the input terminal of the counter 10. 
     When the counter 10 counts down the set pulse number, the output thereof becomes low-level to close the AND gate 15, and the pulses applied to the movement drive unit 4 stops. 
     Accordingly, the movement control circuit 9 can output the pulses to the drive unit 4, with the pulse number and frequency commanded by the CPU 5. 
     In the control system of the FIG. 2 as above-mentioned, the CPU 5 reads normally the present positions of a plurality of operating axes and especially the present positions in terms of the absolute coordinate of the robot as a matter of course, whereby the local coordinate system is determined by the two reference points thereof measured in terms of the absolute coordinate system and is stored within the RAM 8. This is a programmable function which is obtained by utilizing fundamental functions of the CPU. The CPU 5 is able to numerically determine the operating positions of the coordinates in terms of the local coordinate system which are designated by the program and hand-angles or hand direction angles relative to the standard axis of the local coordinate system, by numerical inputting operation from the terminal 3. 
     Besides, in the case that the coordinates of the operating positions in terms of the absolute coordinate system and the hand-angles relative to the standard axis of the absolute coordinate system at each of the operating positions are specified by the teaching operation, by operating the numerical operation function of the CPU 5 the hand position coordinates in terms of the absolute coordinate system is converted to the hand position coordinates in terms of the local coordinate system specified by the program. 
     While, conversely, the CPU 5 is able to reversely convert the coordinates of the operating positions in terms of the local coordinate system specified by the program and the corresponding hand-angles relative to the standard axis of the local coordinate system each of the operating positions to the coordinates of the operating positions in terms of the absolute coordinate system and the hand-angle thereof relative to the standard axis of the absolute coordinate system at each of the movement positions, as a matter of course, by the numerical operation function of the CPU 5. 
     In a robot of cylindrical coordinate type, the function to move the hand in the mode that the hand posture is maintained to a predetermined direction, is executed by determining the angle of the rotation movement A of the arm at each of the movement positions and by executing the reverse rotation movement C of the hand to compensate the angle of the rotation movement A. This is executed by utilizing the numerical operation function of the CPU 5. It is determined by the program whether this mode is selected or not. When the absolute coordinate system and the local coordinate system of the robot are respectively an orthogonal system, it is easy for the programmers to carry out the inputting operations of the hand-position and corresponding hand-angles relative to the standard axis from the terminal 3. 
     It is executed by generally wellknown expression (2) to convert a coordinate (X, Y) of the orthogonal absolute coordinate system of the robot, into a coordinate (r,α) of the articular polar coordinate system of the cylindrical coordinate typed robot. 
     
         r=√X.sup.2 +Y.sup.2 
    
     
         α=tan.sup.-1 Y/X                                     (2) 
    
     Thus, after operating CPU 5, the operation axis of the robot 1 becomes operable in accordance with the command of the CPU 5. 
     As described above with reference to the embodiments, a system effective to simplify a teaching operation can be provided according to the invention, when a robot is operated to work a member to be assembled which has many operating positions, or the same robot system is used more than one. The feature that the hand posture can also be corrected enhances an effect of the invention, and its technical and economical effects are outstanding.