Robot program production system

Information

  • Patent Application
  • 20060069464
  • Publication Number
    20060069464
  • Date Filed
    September 28, 2005
    19 years ago
  • Date Published
    March 30, 2006
    18 years ago
Abstract
A robot program production system includes: a storage block that saves pieces of information on teaching points to be taught to a robot and information on an ambient environment model representing the robot and others; a programming unit that produces off-line a robot program; and a robot control unit that controls the action of the robot so as to move the robot to a teaching point. The programming unit includes a means for determining a path, along which the robot is moved from the current position to a teaching point, which should be corrected, without interference with a work and obstacles, on the basis of the pieces of information on teaching points and the information on the ambient environment model. The robot control unit includes a means for moving the robot to the teaching point, which should be corrected, along the determined path. Information on the teaching point that should be corrected is replaced with information on an actual teaching point acquired after completion of the movement, whereby the information on the teaching point described in the robot program is corrected quickly. This results in a program capable of protecting the robot and ambient facilities from being damaged.
Description
BACKGROUND OF THE INVENTION

1. Field of the Invention


The present invention relates to a robot program production system. More particularly, the present invention is concerned with a robot program production system that produces a robot program off-line, moves a robot to an actual teaching point corresponding to a teaching point described in the produced robot program, acquires information on the actual teaching point, and corrects the information on the teaching point described in the robot program.


2. Description of the Related Art


In currently available robot program production systems, when a robot program produced off-line is applied at a site, the robot program produced off-line is run from the beginning in a single step mode. A robot is halted at a teaching point, before the robot touches a work, and is jogged in order to correct the teaching point at which the robot should touch the work. A teaching point to be taught to a robot refers to a position to which the distal end of a robot is moved. Assuming that the robot is a robot hand, the teaching point is the position to which the distal end of a hand portion is moved. If the robot is a welding robot, the teaching point is the position to which the distal end of a welding rod is moved. Information on a teaching point to be taught to a robot refers to information on the position of the teaching point or the posture of the robot, or refers to relevant data of the teaching point, for example, attribute data.


In the foregoing robot program production systems, according to the related arts, it is hard to find a teaching point that should be corrected and that is described in a robot program produced off-line. In order to find the teaching point, the robot program is run from the beginning. As the teaching point is corrected with a robot in motion, it takes much time to correct the teaching point.


Moreover, when a teaching point that should be corrected is left uncorrected, if a robot program is run, a robot may interfere with a work or with an ambient facility, and the robot, the work, or the ambient facility may be damaged.


SUMMARY OF THE INVENTION

Accordingly, the present invention addresses the foregoing problems. An object of the present invention is to provide a robot program production system capable of producing a robot program without the necessity of taking much time to correct teaching points and without a damage to a robot, a work, or an ambient facility.


To accomplish the object, a robot program production system in accordance with the present invention appends pieces of information on teaching points, which a robot is taught as positions where the robot should touch a work or an ambient facility, to a robot program during off-line production of the robot program. Moreover, the robot program production system determines a path along which the robot is moved from the current position to a teaching point that should be corrected, and moves the robot to the teaching point. Moreover, the robot program production system preserves data items indicating whether all teaching points that should be corrected have been corrected.


To be more specific, a robot program production system in accordance with the present invention includes: a storage block that saves pieces of information on teaching points to be taught to a robot and information on an ambient environment model representing the robot, a work to be processed by the robot, and obstacles to a process performed by the robot; a programming unit that produces a robot program, which instructs the robot to perform a series of actions, in advance and off-line; and a robot control unit that controls the action of the robot so as to move the robot to a teaching point. The programming unit includes a means for determining a path, along which the robot is moved from the current position of the robot to a teaching point, which should be corrected, without interference with the work to be processed and the obstacles to the process, on the basis of the pieces of information on teaching points described in the robot program produced in advance and the information on the ambient environment model. The robot control unit includes a means for moving the robot to the teaching point, which should be corrected, along a determined path. The information on the teaching point that should be corrected is replaced with information on an actual teaching point acquired after completion of the movement, whereby the information on the teaching point described in the robot program is corrected.


In the robot program production system, correction-needed point identification data with which a teaching point whose position should be corrected is identified is appended to information on each teaching point described in the robot program.


In the robot program production system, the correction-needed point identification data is specified as attribute data.


In the robot program production system, the programming unit includes a means for appending positional correction end data to information on a teaching point whose positional correction has been completed.


In the robot program production system, the programming unit includes a means for specifying the positional correction end data in the attribute data of the teaching point whose positional correction has been completed.


In the robot program production system, the robot control unit includes: a means for running the robot program in response to a manipulation performed to initiate the robot program; a means for checking the presence of a teaching point, which satisfies the conditions that positional correction is needed but has not been completed, in response to the manipulation performed to initiate the robot program; and a means for, if the presence of a teaching point satisfying the conditions is recognized, ignoring the initiation and displaying a warning message which signifies the presence of a teaching point that satisfies the conditions.


Owing to the foregoing constituent features, when a robot program is produced off-line, pieces of information on teaching points which a robot is taught as positions where the robot should touch a work are appended to the robot program. Consequently, a teaching point which is taught to the robot and which should be corrected can be readily identified. This obviates the necessity of correcting teaching points while running the robot program from the beginning as conventionally. The time required for correction of teaching points can be shortened. Moreover, a path along which the robot is moved from the current position to a teaching point that should be corrected is determined. The robot is moved to the teaching point along the determined path, whereby the robot can be approached to the teaching point safely without a damage to the robot, a work, or an ambient facility derived from interference. Moreover, all teaching points that should be corrected are checked to see if they have been corrected. Consequently, damage to the robot, the work, or the ambient facility derived from interference attributable to the presence of an uncorrected teaching point can be avoided.




BRIEF DESCRIPTION OF THE DRAWINGS


FIG. 1 is a block diagram of a robot program production system in accordance with an embodiment of the present invention;



FIG. 2 shows a positional relationship among the robot program production system, a robot, and a work to be treated by the robot;



FIG. 3 is a flowchart describing a procedure to be followed by the robot program production system shown in FIG. 1;



FIG. 4 shows a path of movement to be traced by the distal end of a welding rod included in a robot designed to weld a vehicle body spot by spot;



FIG. 5 shows an example of display of a teaching position and attribute data on a screen of a display included in a robot control unit;



FIG. 6 shows an example of display of a program header and the text of a robot program;



FIG. 7 shows pieces of information on teaching points;



FIG. 8 shows a list of teaching points which are taught to a robot and which should be corrected;



FIG. 9 shows a newly determined path of movement to be traced by the distal end of the welding rod of a robot designed to weld a vehicle body spot by spot; and



FIG. 10 shows a concrete example of a warning screen image.




DESCRIPTION OF THE PREFERRED EMBODIMENTS


FIG. 1 is a block diagram showing a robot program production system in accordance with an embodiment of the present invention. FIG. 2 shows a positional relationship among a robot program production system 1, a robot 2, and a work 3 to be treated by the robot. The robot program production system 1 shown in FIG. 1 includes: a programming unit 10 that produces a robot program which instructs the robot 2 to perform predetermined treatment, for example, welding, cramping, or carrying; and a robot control unit 20 that controls the action of the robot 2 so that the robot 2 will perform the predetermined treatment. Now, the hardware configurations of the programming unit 10 and the robot control unit 20 will be described below.


The programming unit 10 is realized with, for example, a personal computer, and includes a computer body, an input device including a keyboard and a mouse, an output device including a display unit and a printer, and a communication device (not shown) via which the computer body transmits or receives programs or data to or from external computers over a LAN or the Internet. According to the present embodiment, the robot control unit 20 serves as one of the external computers. The robot control unit 20 includes, in addition to the same components as those of the personal computer, a drive control device for driving or controlling servomotors that actuate the robot 2.


The computer body includes: a CPU; a RAM serving as a main storage device whose area is used as a temporary storage area where a program to be run by the CPU or data is held, or used as a work area by the CPU; a ROM in which resident programs and data are stored; an auxiliary storage device including magnetic disks in which programs or data to be written in the RAM if necessary are stored; and a reader that reads a storage medium M, in which a program or data is stored, such as a flexible disk (FD) or a compact disk (CD). The CPU, RAM, ROM, auxiliary storage device, and reader are interconnected over a bus so that they can communicate with one another. Next, the functional configurations of the programming unit 10 and the robot control unit 20 employed in the present embodiment will described below.


The programming unit 10 shown in FIG. 1 includes a storage block 11 and a teaching point approach path determination block 12. The storage block 11 saves a robot program that instructs the robot 2 to perform a series of actions, pieces of information on teaching points to be taught to the robot 2, and information on the position and three-dimensional shape of an ambient environment model representing the robot 2, a work 3 to be processed by the robot 2, and an obstacle to process performed by the robot 2 (not shown). The robot program is produced off-line in advance. Assuming that the robot is a robot hand, the teaching points to be taught to the robot 2 refer to positions to which the distal end of a hand portion is moved. Assuming that the robot is a welding robot, the teaching points to be taught to the robot 2 refer to positions to which the distal end of a welding rod is moved. Pieces of information on teaching points refer to pieces of information on the positions of the teaching points or the postures of the robot, or refer to data items relevant to the teaching points, for example, attribute data items.


The teaching point approach path determination block 12 determines an approach path, along which the robot 2 is moved from the current position to a teaching point, which should be corrected, without interference, on the basis of the robot program produced in advance and stored in the storage block 11, the pieces of information on teaching points, and information on the ambient environment model.


The robot control unit 20 shown in FIG. 1 includes a display 21 and a robot driver 22. The display 21 is, for example, a CRT or a liquid crystal display. Pieces of information on teaching points which are taught to the robot 2, which should be corrected, and which are sent from the programming unit 11 are displayed on the display 21. The robot driver 22 employed in the present embodiment includes a device for driving or controlling six servomotors incorporated in the robot 2 so as to move the robot 2 (six-shaft rotation). The device is used to drive the shafts of the robot 2 so that the robot 2 will be moved to a teaching point, which is indicated with the angles of rotation of the six shafts, and then halted. The robot control unit 20 controls the action of the robot 2 so as to move the robot 2 to an actual teaching point, acquires information on the teaching point, and corrects information on the teaching point described in the robot program produced off-line in advance by replacing the information with the acquired information. When information on a teaching point described in the robot program differs from information on an actual teaching point, it is attributable to the fact that an error occurs during manufacture of the robot 2 or work 3, that an error in precision occurs during installation of the robot 2 or work 3, or that if the robot 2 is a robot arm, a sag occurs on an arm portion.



FIG. 3 is a flowchart describing a procedure to be followed by the robot program production system shown in FIG. 1. The robot program production procedure will be described in conjunction with the flowchart of FIG. 3.


At step S1, when the programming unit 10 produces a robot program, information on the position and shape of an ambient environment model representing a robot modeled and stored in advance in the storage block 11, a work to be treated by the robot, and an obstacle to treatment performed by the robot is used to produce pieces of information on teaching points which are taught to a robot and which should be corrected, or in the present embodiment, pieces of information on positions at which the distal end of the welding rod of a robot may touch respective welding spots of a vehicle body.



FIG. 4 shows a path of movement to be traced by the distal end of the welding rod of a robot designed to weld a vehicle body spot by spot. In FIG. 4, the position of the distal end of the welding rod included in the robot is shifted from a position P1 through a position P2, etc. to a position P17. Positions at which the distal end of the welding rod of the robot touches a welding spot of the vehicle body 3, which is a work to be treated by the robot 2, are positions P3, P5, P7, P10, P12, and P14.



FIG. 5 shows an example of display of a teaching position and attribute data on the screen of the display 21 included in the robot control unit 20. FIG. 6 shows an example of display of a program header and the text of the robot program.


Information on a teaching point which is taught to a robot and which should be corrected because the robot may touch the vehicle body 3 that is a work is recorded as attribute data of the teaching point shown in FIG. 5 or recorded in the robot program header shown in FIG. 6. As is apparent from FIG. 6, a teaching point whose position should be corrected is marked with a circle o and a teaching point whose position need not be corrected is marked with a cross x. A teaching point having been corrected is also marked with x. Pieces of information on teaching points may be recorded in another file. In the text of the robot program, the first line reads an instruction “P 100% P[1]” signifying that the robot should move to the teaching point P1 at a speed attained by driving the shafts 100%. The third line reads an instruction “L 2000 mm/sec P[3]” signifying that the robot should rectilinearly move to the teaching point P3 at such a speed that the distal end thereof exhibits a speed of 2000 mm/sec.


At step S2, the robot program produced by the programming unit 10 and the pieces of information on teaching points are transmitted to the robot control unit 20.



FIG. 7 shows pieces of information on teaching points P1 to P17. In the present embodiment, polar coordinates that define, in a polar coordinate system, the positions of the six shafts attained at each of the teaching points P1 to P17 are stored in the storage block 11 included in the programming unit 10. Information of a teaching point may represent numerical values defined in an orthogonal coordinate system.


At step S3, the robot control unit 20 displays a list of teaching points, which are taught to a robot and should be corrected, on the screen of the display 21 according to the received program and the received pieces of information on the teaching points. An operator views the screen and transmits pieces of information on teaching points, which should be corrected, to the programming unit 10.



FIG. 8 shows a list of teaching points which are taught to a robot and should be corrected. As can be seen from FIG. 8, six teaching points associated with items 1 to 6 should be corrected. The name of an object program is a main program or a sub program. The number of a line concerned in an object program is specified. Moreover, in the list, “corrected” is specified for an item associated with a teaching point that has been corrected, and “uncorrected” is specified for an item associated with a teaching point that has not been corrected. Moreover, Approach in the right lower part of FIG. 8 indicates a button to be pressed in order to the robot make approach a teaching point. Positional Correction indicates a button to be pressed in order to indicate completion of correction of the position of a teaching point. When the Positional Correction button is pressed, “uncorrected” is changed to “corrected.”


At step S3, the robot control unit 20 transmits information on the current position of the robot 2 and information on a teaching point to be corrected this time to the programming unit 10.


At step S4, the programming unit 10 determines a path of movement linking the current position to the teaching point to be corrected.


The determined path is traced using the ambient environment model in order to confirm that the robot will not interfere with the work 3 or any ambient equipment (not shown). If the robot may interfere with something, a bypass is added to the path in order to prevent the interference. When a path is determined, a terminal position of the path is varied depending on whether the robot is moved to a teaching point or halted at a preceding position separated by a predetermined distance from the teaching point.



FIG. 9 shows a newly determined path of movement to be traced by the distal end of the welding rod of a robot designed to weld a vehicle body spot by spot. Assume that the current position of the distal end of the welding rod of the robot is a position P2 and a teaching point of a position P12 should be corrected because the distal end may touch the vehicle body at the position. In this case, the distal end is moved from the position P2 through positions P9 and P11 to the position P12.


At step S4, the newly determined path is transmitted to the robot control unit 20.


At step S5, the robot control unit 20 proceeds with teaching point correction while approaching the robot to a teaching point along the path of movement.


After the robot has approached the teaching point, the robot is jogged in order to correct the position thereof. Completion of positional correction is then recorded. Data indicating whether teaching point correction has been completed is recorded for each teaching point.


At step S6, all teaching points are checked to see if they have been corrected. If all the teaching points are recognized to have been corrected, control is passed to step S7. The program having the pieces of information on the teaching points corrected is run at step S7. If at least one teaching point has not been corrected, control is returned to step S4. Step S4 and step S5 are repeatedly executed.



FIG. 10 shows a concrete example of a warning screen image.


After all teaching points have had their positions corrected, the robot program is run. At this time, teaching point correction end data items specified in attribute data items of teaching points that should be corrected are checked to see if a teaching point that should be corrected but has not been corrected is present. If a teaching point that should be corrected but has not been corrected is present, the name of a program having information on the teaching point left uncorrected (sub 3 and sub 4 in FIG. 10), a line number (eleventh line and twentieth line in FIG. 10), and the progress of correction indicating whether correction has been completed or has not been completed (uncompleted in FIG. 10) are, as shown in FIG. 10, presented. Moreover, a warning message saying that a teaching point whose position should be corrected but has not been corrected is present is displayed in order to prompt an operator to verify whether the program should still be activated.


Even when the warning message is displayed, if the program is activated, before the robot moves to a teaching point that has not been corrected, the warning message is redisplayed. If the program is not activated, the warning screen image is changed to a screen image through which teaching points are corrected.


Data items indicating whether respective teaching points should be corrected and data items indicating whether respective corrections have been completed are recorded in a file other than a file containing attribute data items of the respective teaching points or a file containing the robot program header or the text thereof.


At step S8, whether the robot program can be run is verified. If the robot program is recognized to be able to be run, processing is terminated. If the robot program is not recognized to be able to be run, control is passed to step S9. At step S9, teaching points that have not been corrected are corrected and control is returned to step S7.

Claims
  • 1. A robot program production system comprising a storage block that saves pieces of information on teaching points to be taught to a robot, and information on an ambient environment model representing the robot, a work to be processed by the robot, and obstacles to a process performed by the robot, a programming unit that produces off-line in advance a robot program which instructs the robot to perform a series of actions, and a robot control unit that controls the action of the robot so as to move the robot to a teaching point, wherein: the programming unit includes a means for determining a path, along which the robot is moved from the current position of the robot to a teaching point, which should be corrected, without interference with the work to be processed and the obstacles to the process, on the basis of the pieces of information on teaching points described in the robot program produced in advance and the information on the ambient environment model; and the robot control unit includes a means for moving the robot to the teaching point, which should be corrected, along a determined path, and replaces the information on the teaching point, which should be corrected, with information on an actual teaching point acquired after completion of the movement so as to thus correct the information on the teaching point described in the robot program.
  • 2. A robot program production system according to claim 1, wherein correction-needed point identification data with which a teaching point whose position should be corrected is identified is appended to information on each teaching point described in the robot program.
  • 3. A robot program production system according to claim 2, wherein the correction-needed point identification data is specified as attribute data of each teaching point.
  • 4. A robot program production system according to claim 1, wherein the programming unit includes a means for appending positional correction end data to information on each teaching point whose positional correction has been completed.
  • 5. A robot program production system according to claim 4, wherein the programming unit includes a means for specifying the positional correction end data in attribute data of each teaching point whose positional correction has been completed.
  • 6. A robot program production system according to claim 2, wherein the robot control unit includes: a means for running the robot program in response to a manipulation performed to initiate the robot program; a means for, when the robot program is initiated, checking for the presence of a teaching point satisfying the conditions that positional correction is needed but has not been completed; and a means for, when the presence of a teaching point satisfying the conditions is recognized, ignoring the initiation and displaying a warning message saying that a teaching point satisfying the conditions is present.
Priority Claims (1)
Number Date Country Kind
2004-282324 Sep 2004 JP national