The invention relates to a control method, device and system for industrial robots or manipulators. In particular the invention concerns a robot installation or application containing at least two industrial robots, at least one of which comprising at least four axes for servo-controlled movements. An industrial robot in this context comprises a manipulator with electric motors and a control means containing power means for driving the motors and computer means which by instructions from a computer program is arranged for sensing and controlling the manipulator movements.
Industrial robots are used to carry out a very wide range of industrial and/or commercial tasks quickly and accurately. In many applications, for example welding car bodies or painting automobiles, the robot must operate a tool such as an arc welding tip, paint sprayer or a gripper etc. to carry out pre-programmed tasks repeatedly with consistent accuracy and speed. Painting of car bodies on an industrial scale usually takes place in a painting booth, through which the car bodies are moved in succession on a conveyor in a line. Two or more robots may be coordinated to paint the same car body in a production section such as a paint booth. The robot installation described above has a high degree of freedom of movement, long reach, can access places inside hollow sections, box sections performs well in service. The robot installations are advantageous and more versatile when compared to the traditional automated devices, such as simple type of hard automation solutions as reciprocators or the like.
However, it is a complex and demanding task to arrange and program robots to carry out operations on in a common workspace in a coordinated fashion. Much engineering and programming effort and constant exchange of signals is required in order to avoid collisions between robots. Such collisions may cause damage which interrupts production and may be expensive to repair. Moreover, for each new work object that is to be processed, the lengthy engineering and programming work must be repeated. Also a problem that may occur with robot automation, for example in a conveyor line situation, is that when the conveyor stops and a stoppage occurs, each or every robot must be individually checked and or manually operated or “jogged” to a known or “home” position. This problem and collisions that may occur usually results in either scrapped product, or unacceptable quality; or lost production; or both.
The invention solves one or more of the above problems.
According to one aspect of the invention, the object is achieved by the initially defined method comprising checking a value for a common reference for a robot before the start of the next task and providing a signal to the robot to stop and wait at the end of the present task if the value for the common reference is not within acceptable limits. The method provides for one or more of the robots to wait at the end of the current task, and not to proceed with the subsequently programmed task until the value for the common reference value is acceptable. This results in that whether the one or more robots wait or pause temporarily, or whether the wait continues for sufficient time so that all robots wait, when one or more of the robots re-start, each of them do so in a predetermined way by proceeding to the next task they had been programmed to carry out.
According to another embodiment, the method comprises steps to check a value for a position reference for each robot before the start of the next task and provide a signal to the robot to stop and wait at the end of the present task if the value for the position reference is not within acceptable limits. This prevents delays or stoppages due to a work object being moved into position later than expected. Similarly, the robot is re-started and proceeds to start the next task as soon as the position reference value is detected to be acceptable. This embodiment provides a means to pause a robot during execution of a movement program as well as a means to recover from stoppage of any duration.
According to another embodiment, the method comprises steps to check a value for a reference for any robot in the plurality of robots or installation before the start of the next task and provide a signal to a given robot to stop and wait at the end of the present task if any other robot currently displays a value for the position reference or other reference that is not within acceptable limits. The embodiment provides a means to pause a robot during execution of the movement program of the robot, as well as a means to recover from stoppage by any other robot of any duration.
According to another aspect of the invention, the object is achieved by the initially defined control device comprising a logic function such as a software or computer program member for determining whether a value for a common reference for a robot before the start of the next task of the robot, and a logic member for making a decision if the value is acceptable or not, and an output member to provide a signal to said robot comprising an instruction to wait.
According to another embodiment, the control device comprises a logic function implemented as a computer program for determining or detecting a value for a position reference for a work object relevant the robot before the start of the next task of the robot. If the work object is not in the expected position, the robot is instructed to wait.
According to another embodiment, the control device comprises a logic function implemented as a computer program for determining or detecting a value of a reference for at least one other robot of said plurality of robots, before the start of the next task. If any other robot has stopped, the present robot may be instructed to stop and wait.
According to another aspect of the invention, the object is achieved by the initially defined control system comprising at least one robot controller arranged capable to check a reference value for of any of said plurality of robots. The control system may instruct any robot to wait if any of: a common reference value, a work object position value are not acceptable; or, if any robot has already stopped. According to a preferred embodiment the control system also comprises a graphical user interface to display and carry out actions in respect of at least one robot controller or cell controller controlling at least one of the robots by means of the described movement program wherein the movements are executed as predefined tasks carried out in a predefined order.
A major advantage of the present invention is that robots may be programmed for cooperative or coordinated automation operations more quickly and more simply. The inventive strategy for the robot to wait at the end of a completed task if criteria to begin the next task are not acceptable has important consequence for programming a series of coordinated tasks. If a stoppage occurs ahead of a task that a robot is carrying out, the robot completes the present task but does not proceed to the next task. In this way, the programmer knows in what position the robot will be if it waits before proceeding. The number of possibilities the programmer must anticipate for each movement in a task is thereby greatly reduced. The job of programming is thereby greatly simplified, and may be carried out in a shorter time. After a movement program has been produced, the time to teach it to the robots it also reduced, because recovery after a stoppage does not require the type of anticipation, precautions, position re-checking and so that the methods of the prior art require.
Another important advantage of the invention is that a production line or conveyor may be re-started quickly following a stoppage with a minimum or no loss of quality. This represents a great saving in production time otherwise lost due to random or unplanned stoppages in automated production sections. At the time of a stoppage, each robot in the affected section or production cell or production line stops at the completion of one task and is waiting before proceeding to a subsequent task. When the line or section is re-started, each robot literally picks up where it left off, and proceeds to start the next task. Robots do not need to be manually jogged or automatically re-positioned before the line can be re-started, and work objects do not need to be moved, scrapped or replaced.
Another advantage of the present invention is a great saving in time and expense due to damage arising from collisions between a robot and a work object or between two robots. Another, further advantage is that the simplified strategy for a movement program, wherein all the movements in the program are divided up into tasks and the controller checks that there is no flag set high before proceeding to a subsequent task results in a much quicker set up time and reduced commissioning time when installing or re-configuring a line or section. As much of the invention is implemented in software the necessary time and capital cost of including the invention in both new installations and existing installations is relatively low and therefore very advantageous.
According to another aspect of the invention, the objects are achieved by a computer program directly loadable into the internal memory of a computer or processor, comprising software code portions for performing the steps of the method according to the invention, when said program is run on a computer or processor. The computer program is provided either on a computer readable medium or through a network, such as a local area network or a wide area network including the Internet.
According to still another aspect of the invention, the objects are achieved by a computer-readable medium having at least one program recorded thereon, where the program is to make a computer or processor perform the steps of the method according to the invention, when said program is run on the computer or processor.
Embodiments of the invention will now be described, by way of example only, with particular reference to the accompanying drawings in which:
a is a flowchart for a method for teaching a movement program according to an embodiment of the invention to a robot, and
design a communication concept between robots and controller,
develop a movement program for each robot and teach it to each robot,
coordination testing, movement adjustments, repeated testing till satisfactory,
exception handling routines, testing recovery routines, repeated till satisfactory,
begin production.
develop a movement program 21 for each robot and teach it to each robot,
coordination testing, movement adjustments, one run for teaching and one run for verification,
begin production.
a shows a flowchart for a method for teaching a movement program according to an embodiment of the invention to a robot of the plurality of robots working in a common workspace. It shows that a program controlling the robot is set to teach mode 41 for the present movement program. It shows a step 43 where the robot is moved to a desired start position 43 for a movement, and that start position, coordinates for the start position, recorded and saved, which is preferably saved automatically with position and or time coordinates. The robot is then allowed to move to the start of the first movement of the next task 49. This means that data is stored in the system so that when the conveyor has eg moved 1001 mm and or the clock has registered eg 100.01 seconds the work object should be in in position (within a window) to start task n. These positions and/or times may preferably be automatically recorded during a single verification run following writing the movement program. In the verification run-through, if a robot moves too close to another robot or to the work object etc, the technician presses a pause button on a control unit, or teach pendant etc., until the approaching object has moved away, then releases the pause button so that the given robot can begin the next task. This process is repeated over and over again while the start position (and or time) for the first movement, or part movement, of each task in the movement program is being recorded and saved.
These start positions, the coordinates of the positions, may later be edited after a manual comparison, or an on-screen comparison of the positions and coordinates to adjust or fine-tune the start points. Instructions may also be included in the tasks of the movement program to wait for a given recorded or input time period before moving to the next movement in the task, or to the next task. For example, a helper robot that opens a vehicle door for another robot to reach inside and paint the interior, may be held up by a suitable recorded or input time delay until the painting robot shall have finished painting and withdrawn.
b shows steps of a method for controlling a robot with a tool according to the preferred embodiment of the invention. The program starts at step 41b and the robot moves to the first task (which may be the next task) 43b. When the robot is in a teaching (programming) mode or a verify (program) mode, step 45b is included to capture, preferably automatically, a common reference value used by all the robots such as a time or coordinate position at which the next task starts. When operating in normal production mode, step 45b is by-passed.
The robot moves through all the movements 40b of the present task. Before starting the next task, the robot checks 42b, a common reference value to see if the common reference value in use, a time at which a work object is in place or a position of the work object in order to start (similar to 61, 71 FIGS. 6, 7), if that value is acceptable 44b. If the common reference value is within limits a Yes results in the robot starting 49b the next task. If the common reference value is not acceptable, N, 47b, the robot waits 44b (similar to 64 or 74
When repeating the program the robots will execute the movement as first programmed, but if the actual reference value measured or sensed is lower than expected, the robot will wait until it is larger or equal to the stored reference before continuing. If the actual reference value is higher than the stored reference value, a given robot may, depending on the conditions predetermined by the movement program, send a signal to the external reference controller/time keeper that it is late and the conveyor will halt or the time reference will stop until the given robot has caught up again
The Movement Program developed according to the invention usually includes a number of movements. One or more movements are then normally handled as one or more tasks. In a painting program, for example, each separate paint stroke (movement) may be treated as a separate task. With spot welding, movement to and performance of each spot weld may be a task, whereas when a robot application is packing items in a box or container, each item may be a task or each row of items packed or each layer of items packed may be selected as one task if that is an appropriate way to divide up the movements in the program. In certain cases, for example, when making a continuous movement such as for a robot controlled laser or high power water jet to cut through a steel plate or similar, a single movement that carries on for a relatively long time or distance may be divided up into more than one task.
Having defined and taught or programmed a Movement Program for a robot as including a number of movements comprising tasks, the next principle behind the invention is that in the event that a stoppage occurs, the robot completes the present task but may not begin the subsequent task. The robot simply waits until an instruction is received to continue before proceeding with the next task.
Thus the common reference value, a reference value that all the robots may use as a common reference value to coordinate with each other may conveniently be provided by a sensor member such as a pulse encoder 92 that registers movement of the work object indirectly via movements of the conveyor. Such movement registration may be accomplished using any known sensor technique applied to a transport member arranged to move work objects to and from the common workspace by a conveyor or similar, or even by other transport forms such as in-floor track, overhead transport, trolleys, self-guided trolleys and the like.
Alternatively, a local time or time stamp may be provided to each robot controller and each cell controller. If the time stamp shows that the clock 93 has stopped, so as to say, then the local time reference value has obtained a status of not acceptable, or line stopped. When the time or time stamps become available again, then the local time reference value is acceptable. However, a simple movement tracker such as the pulse encoder described above is commonly present in most existing moving line installations and is thus convenient to use as the basis for a common reference value.
In more detail, a method of the invention includes that, as well as the known or normal status and control signals between the robots, and between the robots and the cell controller, the following signals are interchanged according to an embodiment of the invention:
distribution of a common reference value; preferably a position or movement indication relative the work object; or a coordinated time signal;
signals or functions for notifying a superior controller, eg cell controller 31, about the present local execution position or execution point so that the object and/or other robots can be halted. The result of this inventive method is that each or any robot may only stop at the completion of a task. To re-start the cell or line after a normal interruption or production stoppage, it is then only necessary to reset or withdraw the wait signal and each robot then re-starts from a known position in their Movement Program. The robots simply proceed with the task that was to follow the last task that the robot completed. Thus a line re-start may be carried out automatically and without undue manual and specialist work and time to re-coordinate robots relative to each other or the work object, so that all properly functioning robots simply resume work according to the program instructions in their individual Movement Program 31.
If the result of reference value comparison 42 is No, then the flag is not set high. In addition to a No at 42, another operation may follow that, which is to check if there is an existing flag is set high. If Yes, 49, then that flag is lowered 45 or in a similar or an equivalent way, removed, because the object is travelling. If No, 47, then the measure or counted result for position of the work object is reported 48 and/or stored. Optionally, a report of the present status (high or not high) for this flag may be stored and/or reported to the cell controller.
The coordination can be carried out by letting the superior controller such as cell controller 31 supervise so that all robots always are within a individually configurable tolerance window from the relative time and/or position recorded in coordination teaching mode.
The coordination function can also run completely independent from any superior controller. The comparisons may take place locally in a robot controller for each of one or more robots and then signals sent to the other robot(s), and/or a conveyor controller, to halt when a work object or robot comes outside its window limits. See for example descriptions below ref
The robot controller 81 issues instructions in the form of signals to the robot, robot hardware I/O 813 via the controller hardware I/O interface 82. Robot controller hardware I/O 82 also receives sensor input, such as sensor I/O 812 and also a reference sensor 811, which may be a pulse encoder on a conveyor, another position sensor for a work object, a local clock or time signal, or other reference value generator. Robot controller hardware I/O 82 also receives input from the cell controller 31 and may send output to the cell controller. The robot controller 81 may be a standard off-the-shelf component such as a programmable controller, but it has to be programmed with, or by another means made to run software code portions or computer programs according to the invention, and supplied as necessary with information in respect of the reference value or reference value status.
Sensor input to sensor I/O 812 may be provided by one or more wireless sensors installed on or arranged in cooperation with a robot. Similarly, the robot hardware I/O 813 may comprise a wireless I/O to send and/or receive wireless signals.
The reference value status may also be generated from a cell-specific or robot-specific target position instead of from a more universal position indicator such as the line movement pulse encoder for the conveyor. When each Movement Program 21 is put through the coordination teaching run in step 22, as shown in
Thus to summarise, if a work object is out of position, a first robot waits before beginning the next task until the work object is within the position window. After the work object has moved into the position window as measured by current position measurement, the reference value becomes re-set, and the first robot proceeds with the subsequent task. The movement program may later be fine tuned by teaching 22 one or more of the plurality of specific movements or tasks in the movement program 21 to improve speed or quality.
Thus it may be understood from the above that the inventive method also allows a robot to be intentionally paused, or temporarily halted, until another robot has completed a given task. This is a very advantageous feature. For example in a painting operation, a “helper” robot may be programmed to open a vehicle door at the right time and position so that a second robot may reach inside the vehicle to paint the body interior. The helper robot may be programmed so that it waits until the second robot has finished painting the interior, signalled in this example by that the second robot stops painting, retracts from the vehicle interior, and begins a wait state. When the helper robot obtains information that the second robot is waiting by means of that the reference value for that event shows a high flag for the second robot, it closes the vehicle door, retracts, and then begins a wait state of its own prior till the time when the next vehicle reaches the expected target position.
In another embodiment of the invention one or more robots are equipped with wireless communication between a robot control function and a component of the robot, or a sensor arranged to cooperate with a robot, or both. The use of wireless communication for selected monitoring and control functions is particularly advantageous, for example, for applications where automatic tool changes may be carried out by the robot, preferably so that no operator intervention is required in the production cell area.
In another, less preferred embodiment, a reference value may comprise a value for percentage of completion of a job. A measure of relative completion of a job may be used as a basis to provide a common reference value. This may be selected in situations where work objects are not transferred to and form the production cell by a conveyor or other moving line. In this case the reference value is generated by change or increment in a relative completion counter. Upon a change outside of a predetermined window in the value of the relative completion or percentage completion value being signaled, then at least one of the robots will set a flag high, as described above.
The methods of the invention may, as previously described, be carried out by means of one or more computer programs comprising computer program code or software portions running on a computer or a processor. The microprocessor (or processors) comprises a central processing unit CPU performing the steps of the method according to one or more facets of the invention. This is performed with the aid of one or more said computer programs, such as 85, 85a, 86, 87, which are stored at least in part in memory such as 84, 89 accessible by the one or more processors. The or each processor may be in a central object oriented control system in a local or distributed computerised control system. It is to be understood that said computer programs may also be run on one or more general purpose industrial microprocessors or computers instead of one or more specially adapted computers or processors.
The computer program comprises computer program code elements or software code portions that make the computer perform the method using equations, algorithms, data, stored values and calculations previously described. A part of the program may be stored in a processor as above, but also in a ROM, RAM, PROM, EPROM or EEPROM chip or similar memory means. The program in part or in whole may also be stored on, or in, other suitable computer readable medium such as a magnetic disk, CD-ROM or DVD disk, hard disk, magneto-optical memory storage means, in volatile memory, in flash memory, as firmware, stored on a data server or on one or more arrays of data servers. Other known and suitable media, including removable memory media such as Sony memory stick ™ and other removable flash memories, hard drives etc. may also be used.
The computer programs described may also be arranged in part as a distributed application capable of running on several different computers or computer systems at more or less the same time. Programs as well as data such as start positions, or flag-related information may be made available for retrieval, delivery or, in the case of programs, execution over the Internet. Data may be accessed by means of any of: OPC, OPC servers, an Object Request Broker such as COM, DCOM or CORBA, a web service. Methods of the invention may also be practised, for example during a teaching or configuration phase, during operations, off-line or following a stoppage, by means of a Graphical User Interface (GUI), a graphical or textual display on an operator workstation, running on a user's logged-in computer, which may be connected direct to the robot control system or connected via a main or local control server or other control system computer.
Wireless communications may be carried out using any suitable protocol or standard. Short range radio communication is the preferred technology, using a protocol compatible with: a standard issued by the Bluetooth Special Interest Group (SIG), any variation of IEEE-802.11, WiFi, Ultra Wide Band (UWB), ZigBee or IEEE-802.15.4, IEEE-802.13 or equivalent, or similar. Wireless communication may also be carried out using Infra Red (IR) means and protocols such as IrDA, IrCOMM or similar; similarly sound or ultrasound transducers, through the air or via the robot construction, or may be used.
It is also noted that while the above describes exemplifying embodiments of the invention, there are several variations and modifications which may be made to the disclosed solution without departing from the scope of the present invention as defined in the appended claims.
Number | Date | Country | Kind |
---|---|---|---|
0303535-9 | Dec 2003 | SE | national |
Filing Document | Filing Date | Country | Kind | 371c Date |
---|---|---|---|---|
PCT/IB2004/004220 | 12/20/2004 | WO | 00 | 2/16/2011 |