1. Field of the Invention
The present invention relates to an apparatus for correcting positions in a robot operation program prepared by an off-line robot programming system.
2. Description of the Related Art
A robot operation program prepared by an off-line robot programming system cannot directly be used for operating a real robot, because the positional relationships among various devices including the robot, assumed by a computer, may deviate from the actual positional relationships among the devices. Conventionally, prior to applying an operation program prepared by an off-line robot programming system in actual cases, the operation program is actually applied to a robot on site to correct the teaching points one by one while executing the operation program.
This correction work requires great care and takes time because it requires moving a real robot on site and because it is difficult to know beforehand how the program prepared off-line will operate. Further, a trial and error process is also necessary for determining how to correct the teaching points on site.
It takes much time to obtain a final operation program for the robot by the method of applying an operation program prepared by an off-line robot programming system to a real robot and re-teaching the teaching points one by one while executing the program.
Such method requires operation of an actual robot for correction and confirmation on site, and it is frequently difficult for an on-site operator to know how the program prepared off-line will actually operate, so that such operation requires great care and hence takes much time. Further, a trial and error process is also necessary for determining how to modify the teaching points on site, which takes much time and requires much man-hours. As an operation program cannot be executed in safety without previous checking and modification, it is necessary to actually operate a robot beforehand by applying the operation program to the robot. for checking and modification of the operation program,
A robot program position correcting apparatus for correcting the position of a teaching point in a program for operating a robot, according to the present invention, comprises: means for stopping execution of the program when receiving a stop command; means for displaying a next teaching point of which position is to be corrected on a screen of a display means when execution of the program is stopped; means for moving the robot by jog feeding from a position where execution of the program is stopped; and means for reflecting the current position of the robot on the next teaching point of which position is to be corrected when the position of the teaching point is corrected.
The robot program position correcting apparatus according to the present invention enables easy and efficient correction of teaching point information in the robot operation program prepared by the off-line robot programming system.
The robot program position correcting apparatus according to the present invention can also take on the following embodiments.
The robot program position correcting apparatus may further comprise means for means for obtaining a position correcting amount from the position of the teaching point before correction and the position of the teaching point after correction; and means for correcting, based on the obtained position correcting amount, the position of another teaching point as well as that of the next teaching point of which position is to be corrected.
The robot program position correcting apparatus may further comprise: means for displaying the next teaching point of which position is to be corrected and another teaching point simultaneously on the display means; and means for highlighting the next teaching point of which position is to be corrected.
The robot program position correcting apparatus may further comprise means for positioning and displaying the robot, a workpiece, and a peripheral device, together with the next teaching point of which position is to be corrected, on the screen of the display means.
The robot program position correcting apparatus may further comprise means for displaying positional relationships among the robot, the workpiece, and the peripheral device on the display means according to the position correcting amount of the teaching point in conformity with positional relationships at a working site of the robot.
The robot program position correcting apparatus may further comprise means for displaying on the screen of the display means a distance between the current position of the robot and the next teaching point of which position is to be corrected during execution of the program. In this case, the distance may be displayed in a numerical value or in a color.
The robot program position correcting apparatus may further comprise means for confirming operation of the robot by means of simulation on the screen of the display means, prior to execution of the robot operation program in which the position of the teaching point has been corrected.
The robot program position correcting apparatus may further comprise means for indicating presence or absence of interference of the robot with a workpiece and a peripheral device on the display means during the simulation of the operation of the robot.
The robot program position correcting apparatus may further comprise means for displaying a robot motion trajectory on the screen of the display means during execution of the robot operation program in which the position of the teaching point has been corrected.
The robot program position correcting apparatus may further comprise: means for setting a predetermined distance preceding to arrival at the teaching point of which position is to be corrected; and means for generating the stop command automatically when the robot reaches the position retreating from the teaching point of which position is to be corrected by the predetermined distance.
The display means may be disposed on a teaching pendant, and the teaching pendant may further comprise stopping operation means for generating the stop command, means for executing the jog feeding, and means for performing a position correcting operation.
The display means may be disposed on a personal computer, and the personal computer may further comprise stopping operation means for generating the stop command, means for executing the jog feeding, and means for performing a position correcting operation.
According to the present invention, when a robot operation program prepared by an off-line robot programming system is adapted to on-site working conditions, the adaptation requires fewer man-hours and consequently a robotized production line can be set up in a shorter time. As the operation of the robot can be confirmed beforehand on the screen of the display means, the job can be done easily by anyone, and the real robot can be operated safely. As a result, time is not wasted, the operation of the robot can be completed quickly, and the set-up time can be reduced.
The forgoing and other objects and feature of the invention will be apparent from the following description of preferred embodiments of the invention with reference to the accompanying drawings, in which:
The robot controller 1 is connected to servo motors (not shown) that drive joints in a robot mechanical section 3. The robot controller 1 is also connected to the personal computer 2 via a communication link, and to a peripheral device 5, as well as to the teaching pendant 4 having a graphic display function. The peripheral device 5 is also connected to the personal computer 2 via a communication line.
A system program that supports the basic functions of the robot and robot controller is stored in the ROM in the memory 12. A robot operation program prepared by an off-line robot programming system and entered via a communication line or a storage medium (both not shown) is stored, together with its associated data settings, in the nonvolatile memory in the memory 12. The RAM in the memory 12 is used as a temporary storage area for storing data temporarily during various arithmetic operations performed by the processor in the robot controller 1.
The servo control section 15 includes servo controllers #1-#n (n: total number of axes in the robot, plus the number of movable axes of an optional tool attached to a wrist of the robot). The servo controllers #1-#n each comprise a processor, ROM, RAM, etc. and execute position and speed loop control for a servo motor for driving each axis and further execute current loop control. Thus, each servo controller is configured as a digital servo controller that executes loop control for position, speed, and current.
Output from the servo controllers #1-#n controls, via the amplifiers A1-An, the driving of the servo motors M1-Mn associated with respective joint axes in the robot mechanical section 3. The servo motors M1-Mn are each equipped with a position/speed detector (not shown) which detects and feeds back the position/speed of each servo motor to each of the servo controllers #1-#n. Sensors and other devices provided on the peripheral device 5 and robot mechanical section 3 are connected to the external device interface 16.
The robot controller 1 described above has the same configuration as conventional robot controllers. In the present invention, a personal computer 2 is connected to such a robot controller so that the robot controller and the personal computer 2, together with the teaching pendant 4 with a graphic display function, constitute a robot program position correcting apparatus.
In the personal computer 2, which has the same hardware configuration as known personal computers, the memory stores layout data about the robot, peripheral devices, and attachments located in a work cell where the robot is positioned. This memory also stores software for creating a three-dimensional CG (Computer Graphics) image of a work cell based on the stored layout data, and displaying the created three-dimensional CG image on the display means (monitor) of the personal computer 2 for simulating and monitoring the robot operation program, as well as software for displaying the robot operation program and the robot trajectory.
The teaching pendant 4 has a graphic display function that can display the CG image of the work cell received from the personal computer 2. This graphic display function can also display the teaching points and robot motion trajectories specified by the robot operation program. Generally, the display screen of the teaching pendant 4 is divided into two screens. One screen is a menu-guided user interface screen; the other screen displays images including a three-dimensional CG image of a work cell. Either screen can be displayed by itself as a full screen.
When a robot operation program is specified and a program position correcting command is entered via the personal computer 2 or the teaching pendant 4, the robot controller 1 starts running a menu-guided software program which is executed step-by-step on the teaching pendant and performs the processing shown in
First, a three-dimensional CG image created in the personal computer 2 is sent to the robot controller 1 and displayed on the display screen of the teaching pendant 4 (Step 100); meanwhile, the robot operation program stored in the memory 12 of the robot controller 1 is read by the personal computer 2, processed for screen display, and displayed together with the three-dimensional CG image on the monitor of the personal computer 2. This image is sent to the robot controller 1. The robot controller 1 displays teaching points in the three-dimensional CG image on the screen of the teaching pendant 4, with their coordinates and lines connecting them showing the robot operation sequence as illustrated in
The robot controller 1 counts and memorizes the number N of teaching points for spot weld as the objects to be corrected in the positions in the target robot operation program (Step 102). The robot controller 1 also prompts an operator via the menu-guided user interface screen of the teaching pendant 4 to set a distance J by which the robot is caused to stop at a point retreating from a teaching point for spot weld (Step 103). In
Next, the robot operation program is started (Step 104), a counter I for repeating processing for the number of teaching points for spot weld is initialized to “1 ”(Step 105). Then, the 1-th teaching point for spot weld indicated by the value of the counter I is highlighted as shown in
Next, the remaining travel distance from the current robot position (i.e., TCP (Tool Center Point) position) to the I-th teaching point for spot weld is computed and stored in a register (Step 107); then the robot mechanical section 3 is activated and starts moving according to the robot operation program (Step 108). The remaining travel distance stored in the register is continually updated as the robot moves (Step 109). The remaining travel distance stored in the register is displayed in a distance indication box 41 on the three-dimensional CG image screen as shown in
The remaining travel distance is compared with preset distances L1 and L2 (Steps 111 and 113). The distances L1 and L2 are optional values that can be preset via a keyboard of the teaching pendant 4 or other input means and used for indicating collision risk levels by displaying the distance indication box 41 in different colors according to the remaining travel distance. In this embodiment, the distance indication box 41 is displayed in blue when the remaining travel distance is long, displayed in yellow when the remaining travel distance is medium, and displayed in red when the robot is close to the teaching point for spot weld and the remaining travel distance is short. For example, if L1 is set to 100 mm and L2 is set 50 mm, the distance indication box 41 is displayed in blue while the remaining travel distance is equal to or greater than L1=100, displayed in yellow while the remaining travel distance is between L1 and L2 (between 100 mm and 50 mm in this example), and displayed in red while the remaining travel distance is equal to or less than 50 mm (Steps 111 to 115).
Next, the remaining travel distance stored in the register is checked to see if it is equal to or less than the distance Jmm set at Step 103 (Step 116); if it is more than Jmm, processing returns to Step 110 to display the remaining travel distance and perform the display color switching processing. If the remaining travel distance is equal to or less than Jmm, the robot is caused to stop (Step 117). In this way, the robot mechanical section 3 stops at a point retreating from the I-th teaching point for spot weld by the set distance Jmm.
Then, judging from the current status of the robot mechanical section 3 and its positional relationship with the workpiece and also from the three-dimensional CG image on the teaching pendant monitor screen, the operator determines whether execution of the robot operation program can be continued as it is. If so, the operator selects a Run button 42 on the menu-guided user interface screen (Step 118). This causes the robot operation program to be executed up to the I-th operation instruction with a spot welding command (Step 119).
In this case, however, current for spot welding is not supplied, so the spot welding is not actually performed. Then, the counter I is incremented by 1 (Step 123) and its value is checked. If the value of the counter I is equal to or less than the number N of teaching points for spot weld (Step 124), the processing returns to Step 106 and processing in Step 106 and subsequent steps are executed.
After the robot stops, the operator checks the status of the robot mechanical section 3. If moving the robot farther as taught would risk interference with an obstacle, the operator operates a jogging button on the teaching pendant 4 to jog the robot mechanical section 3 to a new spot welding point where no interference occurs. Then, the operator selects a Correct button 43 on the menu-guided user interface screen and enters a correcting command (Step 120). The processor in the robot controller 1 computes a correcting amount for changing the I-th teaching point for spot weld in the robot operation program to the touched-up point to which the actual robot was moved (Step 121). More specifically, assuming that the position of the I-th teaching point for spot weld in the robot operation program is P1 and the touched-up position to which the actual robot is moved is TP1, a correction matrix A is obtained as follows (1). Then, the I-th teaching point for spot weld is changed from position P1 to position TP1 by this correction matrix A as shown in
A=InvP1PT1 (1)
Each teaching point position in the robot operation program is multiplied on the right by this correction matrix A to obtain a new teaching point position to which the teaching point is shifted in the robot operation program. Further, this correction matrix A is also used to shift the positional relationship of the peripheral devices other than the robot in the three-dimensional CG image displayed on the monitor of the teaching pendant 4 (Step 122).
In
QT is the corrected position of the peripheral device.
The display position Q in the screen display software before the correction is multiplied on the right by the correction matrix A to obtain the new position QT of the peripheral device and shift its display position from Q to QT on the three-dimensional CG image screen.
Then, processing proceeds to the above-described Step 123.
As described above, the robot is caused to stop at a point retreating from each teaching point for spot weld by the set distance Jmm, in order to let the operator decide whether execution can continue as it is and, if necessary, correct the position of the teaching point for spot weld by moving the robot by jog feeding. As the robot generally moves according to the robot operation program and stops at a point near each teaching point for spot weld, interference with other objects can be avoided, and the operator can correct the teaching points easily, in a short time.
In the embodiment described above, all the teaching points in the robot operation program are shifted. Alternatively, the teaching points to be shifted may be limited, however, to the I-th teaching point for spot weld. Further, a certain area may be specified, and the teaching points in the specified area may be shifted.
In the embodiment described above, a distance of Jmm receding from the teaching points for spot weld is set; and the robot moves automatically until it reaches a point receding from each teaching point by the distance Jmm and then stops automatically. Alternatively, however, a stop command button or other stop commanding means may be provided on the teaching pendant 4, and the robot may be caused to move according to the robot operation program until the operator manipulates this stop commanding means. In this case, the robot is caused to stop when an operator enters a stop command, instead of stopping automatically.
The robot operation program thus corrected is tested using a simulation program on the personal computer 2 before the robot is actually operated. The simulation program displays the simulated robot operation on the personal computer monitor screen, checks for interference as is conventionally done, and displays interference if any. This simulation is made using the corrected three-dimensional CG image, by sending the corrected peripheral device location data obtained in Step 122 to the personal computer 2. This simulation image is also sent through the robot controller 1 to the teaching pendant 4, so the interference check can also be made on the screen of the teaching pendant 4. Accordingly, the operator can move the real robot safely.
When the robot operation program is run and the robot actually operates, the trajectory of the robot TCP is drawn on the monitor screen of the personal computer 2. This TCP trajectory is also displayed on the three-dimensional CG image screen of the teaching pendant 4 as shown in
The user interface function implemented in the teaching pendant 4 in the embodiment described above may be transferred to the personal computer 2 and the teaching pendant 2 may be omitted. In this case, the personal computer 2, which is already equipped with such functions as a work cell display function, a robot simulation function, an interference check function, and a robot operation program display function, will additionally need such functions as a robot operation program execution command, a program stop command, a robot jog command, a teaching point correcting command, and a distance display function indicating a distance between the current TCP position and the next teaching point.
Number | Date | Country | Kind |
---|---|---|---|
302479/2003 | Aug 2003 | JP | national |