Industrial robot system, method and computer program
TECHN ICAL FIELD OF THE INVENTION AND PRIOR ART
The present invention concerns an industrial robot system comprising a plurality of robot system parts, namely robots, external axes or parts thereof, and a control system including at least one control unit arranged to realize the movements of each robot system part in accordance with at least one computer program.
Many industrial robot plants utilize systems comprising a plurality of robot system parts, such as a multiple robot system or a system comprising one robot that cooperates with one or more external axes. The robot system parts are usually programmed to execute a plurality of tasks and certain tasks may require two or more of the robot system parts to move synchronously whereby the movement instructions for said two or more robot system parts are executed at the same time in order to coordinate their movements.
Such systems comprise either a single general control program or separate programs containing movement instructions including position, orientation and speed instructions etc. for each robot system part which is/are stored in one or more control units. The control unit(s) transmit(s) movement instructions to drive units that control the movement of each robot system part. Robot system part programs have to be rewritten every time the work and/or the robot system parts of a system are changed. Creating or modifying a program for an
industrial robot system is time consuming, complex and prone to error as the operator may make mistakes when creating or modifying the program.
SUMMARY OF THE INVENTION
The object of the present invention is to provide an industrial robot system compris ing a plurality of robot system parts and a control system including at least one control unit arranged to realize the movements of each robot system part in accordance with at least one computer program, whereby the industrial robot system is easier to use and modify.
This object is fulfilled with an industrial robot system having the features disclosed in claim 1 in which a first robot system part has a first spatially defined point and a second robot part has a second spatially defined point. At least one computer program comprises program in structions including movement instructions to move the first spatially defined point along a predefined path, and said at least one computer program comprises program instructions to maintain the position of the second spatially defined point relative to the position of the first spatially defined point during moveme nt. In this way the provision of complete movement instructions for the second spatially defined point is avoided.
According to a preferred embodiment of the invention the said at least one control unit comprises a calculating module that is arranged to receive information concerning the program of the first robot system pa rt and consequently of the first spatially defined point and th e initial position of the second spatially defined point and to calculate the path to be followed by the second spatially defined point.
Said calculating module need only to be provided with the program of the first robot system part and consequently of the first spatially defined point and with the initial position of the second spatially defined point on the second robot system part, in order to be able to calculate all of the subsequent positions into which the second spatially defined point has to move in order to be synchronized and coordinated with the movement of the first spatially defined point.
Such an industrial robot system therefore makes robot parts much easier to program since there are not so many parameters and there are fewer program points to program. The task of programming an industrial robot system is carried out much faster since the operator needs only to program a first robot system part and not the second or any additional robot system parts that move together with the first robot system part. Furthermore movement instructions for the robot system parts of the industrial robot system are much easier to understand since an operator will be able to visualize what will happen when a program is executed much more quickly and easily. A further advantage is that mistakes related to accidentally changing the wrong program point when robot system part programs are created or modified will be minimized.
In this way the complexity of the movement instructions is kept to a minimum thus minimising the time spent in programming, the competence needed to program and the possibility of making mistakes. Furthermore when a robot system part is added to the system the task of modifying the robot system part programs is much easier since the added robot system part needs only to be programmed to maintain the position of a spatially defined point thereon relative to the spatially defined point of another robot system part in the existing system. This increases the flexibility of an industrial robot system and allows an operator to quickly and simply modify such a system as desired.
According to a preferred embodiment of the invention the position of the tool centre point of the second robot system part is maintained relative to the position of the tool centre point of the first robot system part.
According to another preferred embodiment of the invention the industrial robot system comprises sensing means, i.e. one or more sensors such as odometers or a global positioning system, to provide information on how the first and second spatially defined points of the first robot system part and/or the second robot system part respectively is/are initially positioned so as to be able to transmit this information to the calculating module before a robot system part program is run. According to another preferred embodiment of the invention the sensing means are used to provide inform ation on how the first and/or second robot system part are moving while a program is being run so that the spatially defined point of each robot system part may be checked and modified if necessary, depending on data received from the sensing means, so as to maintain the desired relative position. Such information may be provided constantly, periodically or on request when an operator wants to check the accuracy of the positioning of the robot system parts.
According to a further preferred embodiment of the invention the second robot system part comprises detecting means, i.e. one or more detectors, to d etect the presence of obstacles in its path and means to prevent the second robot system part from colliding with such obstacles. The industrial robot system may additionally be provided with means to stop the entire system on detection of an obstacle in the path of any one of its robot system parts.
The industrial robot system according to the present invention may comprise one or more control units each comprising movement instructions for transmission to one or more drive units that control the movement of each robot system part. An
industrial robot system may comprise one control unit and one drive unit per robot system part for example. According to a preferred embodiment of the invention a control unit and hardware, such as microprocessors and memory, which is necessary to run the software is located on each robot system part, alternatively a control unit that controls one or more robot system parts is located remotely to said one or more robot system parts, for example in a remotely located computer.
The present invention also concerns a method for controlling the movement of an industrial robot system including a plurality of robot system parts and a control system including at least one control unit arranged to realize the movements of each robot system part in accordance with at least one computer program. The method comprises the steps of spatially defining a first point on a first robot system part and a second point on a second robot system part, instructing the second robot system part to move the first spatially defined point along a predetermined path and instructing the second robot system part to move the second spatially defined point so as to maintain the position of the second spatial ly defined point relative to the position of the first spatially defined point. The calculating module then calculates how the second spatially defined point should move in order to maintain its position relative to the first spatially defined point.
According to a preferred embodiment of the invention the position of the tool centre point of the second robot system part, is maintained relative to the position of the tool centre point of the first robot system part.
The present invention also relates to a computer program containing computer program code means for making a computer or processor execute the step of such a method as well as such a computer program stored by means of a computer-readable medium.
The present invention is intended for use in any industrial robot system comprising at least a first and a second robot system part, which is programmed to execute at least one task where the first robot system part moves synchronously with the second robot system part. It is suitable for use in systems comprising stationary robot system parts and/or mobile robot system parts. The present invention is furthermore suitable for use when one or more robot system parts are to be added to an existing industrial robot system.
The present invention may also be used to program identical industrial robot systems, such as entire production lines, located at different geographical locations, such as in different towns or countries.
Further advantages as well as advantageous features of the invention appear from the following description and the other dependent claims.
BRIEF DESCRIPTION OF THE DRAWINGS
Figs 1 &2 show a multiple robot system comprising three mobile robots carrying out a programmed task,
Fig. 3 shows part of the program for each of the robots shown in figure 1 , and
Fig.4 shows a flow chart describing a method according to a preferred embodiment of the invention.
The following description and drawings are not intended to limit the present invention to the embodiment disclosed. The embodiment disclosed merely exemplifies the principles of the present invention.
DETAILED D ESCRIPTION OF A PREFERRED EMBODIMENT OF THE INVENTION
Figure 1 shows a multiple robot system comprising two stationary welding robots 2,3 having welding guns located at point B and point C respectively, and a mobile robot 1 that is carrying part of a car body 4. Robot 1 grips the car body part with a tool at point A and moves the car body part 4 into position so that the welding robots 2,3 can weld the car body part 4 at a first and second location.
Robot 1 then translates and rotates the car body part 4 (see figure 2) so the welding robots 2,3 have to move in order to weld the car body at a third and fourth location. The three robots 1 ,2,3 are req uired to maintain a constant relative position with respect to each other while executing this task i.e. the tool centre points of the robots; A, B and C, must maintain their position relative to one another. When the car body is displaced and rotated this displaces and rotates the coordinate system in which the robots 2 and 3 work. Each robot has to know exactly how the coordinate system has been displaced or rotated so that it can carry out its programmed task.
Robot 1 is programmed with full movement instructions and robots 2 and 3 are programmed to maintain the position of their tool centre points B and C respectively, relative to the TCP, A, of robot 1 i.e. robots 2 and 3 are instructed to maintain the position of a spatially defined point thereon relative to the coordinates of a spatially defined position the coordinates of which are provided in robot 1 's program. All of the robots are therefore able to move to the programmed positions and execute each programmed task accurately as the tools held by the robots will have the right orientation and they will be guided to the right place on the work piece.
Figure 3 shows part of the programs for the three robots depicted in figure 1 . Robot 1 's program comprises full movement instructions 5 whereas the programs for robot 2 and robot 3 are merely provided with the initial position of their respective spatially defined point and subsequently instructed to maintain the position of said spatially defined relative to the spatially defined point of robot 1 .
Although the multiple robot system shown has only one first robot, robot 1 , for which complete movement instructions are provided and two robots that are instructed to keep their position to said robot 1 any system comprising a plurality of robot system parts could have any number of second robot system parts provided with complete movement instructions and any number of robot system parts that are instructed to keep the position of a spatially defined point relative to a spatially defined point of a robot provided with complete movement instructions.
Furthermore any robot system part may be programmed to move at the same time as other different robot system parts at different times during the execution of its program.
Figures 1 and 2 show only one of the many applications of the present invention. Other applications include, for example, a plural ity of stationary or mobile robot system parts moving an object that is too heavy for a single robot to carry, such as a sheet of glass, thus requiring that the robot system parts to maintain their relative position while moving towards a target position. Alternatively a plurality of robot system parts may be required to handle a fragile or irregularly shaped object that may have to be translated and/or rotated into any number of positions by the robot system parts requiring that the robot system parts maintain their relative position while moving the object towards a target position.
Figure 4 shows a flow chart describing a method for controlling the movement of an industrial robot system including a plurality
of robot system parts. The method comprises the steps of creating a memory list for all of the manipulators that will move (7). A first manipulator (8) is selected. If a second coordinate system is not moved by the selected first manipulator, movement instructions for the first manipulator are created with end positions corresponding to the first manipulator's current position and other program task contributions. It is then checked whether other manipulators move, if not; movement instructions are sent to the first manipulator's path planner, if so; movement instructions for the remaining manipulators are created with end positions corresponding to their current position fixed to the second coordinate system (10). These movement instructions are then sent to the relevant path planners. The path planners calcu late the position and/or orientation of each robot system part's coordinate system before providing movement instructions for a robot system part working in that coordinate system.
If a second coordinate system is however moved by the selected first manipulator then the remaining manipulators are looped through (9) and it is checked whether a second manipulator is moved by the second coordinate system. If this is the case then this i nformation is sent to the memory list and then movement instructions for the remaining manipulators are created with end positions corresponding to their current position fixed to the second coordinate system (10). These movement instructions are then sent to the relevant path planners.
The i nvention is of course not in any way restricted to the preferred embodiments thereof described above, but many possi bilities to modifications thereof would be apparent to a person with ordinary skill in the art without departing from the basic idea of the invention as defined in the appended claims.