Robot operation program modification device
An operation program modification device for a robot that is made efficient in positional modification of a cluster of taught points in a corner segment and the like. Sequential N taught points A1 through A6 to be grouped are designated, and the operator executes the operation of positional modification of an intermediate taught point A4. A modification vector for modifying A4 into B4 is calculated. Taught points A2, A3 and A5 located in between the taught point A4 and end points A1 and A6 are grouped into first-region taught points A2 and A3 and a second-region taught point A5. The required modification amounts of the taught points A2, A3 and A5 are calculated by prorating the modification vector according to distance (path distance or straight line distance) from the end-point A1 or A6 to be modified into taught points B2, B3 and B5, respectively. The modification vector may be set to correspond to a modified taught point of a user selection. It is possible to perform necessary input from a teaching operation panel instead of utilizing an offline programming system using a personal computer.
Latest FANUC LTD Patents:
1. Field of the Invention
The present invention relates to a technology for modifying an operation program for a robot, and more specifically to a technology for modifying taught point data in the operation program.
2. Description of Related Art
As is well known, an operation program for a robot includes data of taught points, and an operation path defined by these taught points is called a taught path. When alternation of the taught path is required, the taught path is altered by modifying each position data of the taught points at a part of the taught path to be altered. In altering a corner part, for instance, of the taught path, it is often required to modify a plurality of taught points including those adjacent to the corner part. This arises a problem that it takes much time for the work of modification. Any specific effective proposal or suggestion to counter this problem is found in prior art documents.
SUMMARY OF THE INVENTIONThe present invention provides an operation program modification device capable of efficiently and rationally modifying a sequence of taught points which define an operation path at a corner, for instance, in the operation program. The present invention enables automatic modification of taught points other than one taught point which is modified by an operator in a sequence of taught points in the operation program.
An operation program modification device of the present invention comprises the following means (a)-(i):
-
- (a) means for designating at least four sequential taught points among taught points set in the operation program;
- (b) means for modifying a position of one taught point other than a first taught point and a last taught point in an operation path defined by the sequential taught points;
- (c) means for obtaining a modification vector representing the modification of position of the one taught point;
- (d) means for obtaining first distance information from the first taught point to the one taught point before modification in a case where there exists one or more first-region taught points in a first region from the first taught point to the one taught point;
- (e) means for obtaining second distance information from the first taught point to each of the first-region taught points along the operation path in the case where there exists one or more first-region taught points;
- (f) means for modifying a position of each of the first-region taught points based on the modification vector, the first distance information and the second distance information in the case where there exists one or more first-region taught points;
- (g) means for obtaining third distance information between the position of the one taught point before modification and a last taught point along the operation path in a case where there exists one or more second-region taught points in a second region from the one taught point to the last taught point;
- (h) means for obtaining fourth distance information between each of the second-region taught points and the last taught point in the case where there exists one or more second-region taught points; and
- (i) means for modifying a position of each of the second-region taught points based on the modification vector, the third distance information and the fourth distance information in the case where there exists one or more second-region taught points.
According to another aspect of the present invention, the following means (j) and (k) may be utilized in place of the means (b) and (c) in the above means (a)-(i).
-
- (j) means for setting a modification vector;
- (k) means for modifying a position of one taught point other than a first taught point and a last taught point in the sequential taught points, according to the modification vector.
At least one of the first distance information, the second distance information, the third distance information and the fourth distance information may be obtained as a sum of distances between adjacent taught points from the first taught point to the one taught point before modification, as a sum of distances between adjacent taught points from the first taught point to each of the first-region taught points, as a sum of distances between adjacent taught points from the one taught point before modification to the final taught point, and as a sum of distances between adjacent taught points from each of the second-region taught points to the final taught point, respectively.
Further, at least one of the first distance information, the second distance information, the third distance information and the fourth distance information is obtained as a distance from the first taught point to the one taught point before modification, as a distance from the first taught point to each of the first-region taught points, as a distance from the final taught point to the one taught point before modification, as a distance from each of the second-region taught points to the final taught point, respectively.
With the above arrangements, it becomes possible to easily perform the modification of a plurality of taught points required to be modified in the taught path of a corner portion, etc. to thereby shorten time required for the modification of the operation program of the robot. Moreover, it is also possible to reduce the operator's burden inevitable in determining a modification amount of each taught point, so that even an operator not having much skill can make the modification without difficulty.
Especially, for instance in the case of application of arc welding in which there often exists a large number of taught points located in a corner part, the work for taught path modification, which is required when a welding line deviates from a line where it should be due to a centrifugal force or the like, is remarkably simplified.
BRIEF DESCRIPTION OF THE DRAWINGS
Several embodiments of the present invention will be described below. First of all, a first embodiment will be explained with reference to FIGS. 1 through 3. According to the first embodiment, an offline programming system prepared on a personal computer 10 (see
The memories include various data used in the offline programming. Moreover, there are stored programs, various setting values, and the like, for arranging various objects on a screen, which is defined for example by a three-dimensional model, by operating the graphic control circuit, and for showing a taught path indicated by a taught program of a robot under creation or in the process of creation, a position of a taught point and the like, on a display. There is further installed software for storing modified taught position data by dragging a designated taught point on the screen by means of a mouse and moving the taught point to a desired modified position.
The above-described constructions and functions are not particularly different from conventional systems. Additionally in the present embodiment, software for executing a taught position modification in the process shown in a flowchart of
Step S1; an index n is initialized into n=1. The index n indicates what number a taught point is in the taught points subjected to automatic modification.
Step S2; N sequential taught points to be grouped are designated. Herein, N is an integral number that satisfies N≧4, and the designation is performed by an operator (a user) on the screen, for example, using the mouse or the keyboard. As an example, a case in which six taught points A1 through A6 shown in
Step S3; An appropriate taught point is selected among N-2 taught points other than end points in the N grouped taught points, to thereby make positional modification. That is, the operator designates one taught point on the screen by means of the mouse and drags the taught point to a desired modified position to determine a modified taught position. In the above example, the taught point A4 is selected among the six taught points A1 through A6 shown in
Step S4; A vector (modification vector) indicative of the modification in Step S3 is calculated. The calculation is automatically carried out in the system. According to the above example, a vector Δ indicative of the modification of the taught point A4 into the taught point B4 is calculated. The modification vector Δ can be expressed as described below.
Δ=(Δx4, Δy4, Δz4)=(xb4−xa4, yb4−ya4, zb4−za4)
where a three-dimensional position of the taught point A4 is (xa4, ya4, za4), and that of the modified taught point B4 is (b4, yb4, zb4).
Additionally, since the display screen is two-dimensional, a proper condition is preliminarily set so that the three-dimensional position may be identified by point designation on the screen. The condition is, for example, that “the modified taught point B4 is located on a plane surmounted by the first taught point A1, a final taught point A6, and the unmodified taught point A4.” If such a condition is set beforehand, the three-dimensional position (b4, yb4, zb4) of the modified taught point B4 is fixed through point designation on the screen, so that the modification vector is determined by the above equation.
Step S5; A path distance or a straight-line distance from the first taught point to the taught point selected in Step S3 is obtained as first distance information. Herein, the path distance means “a sum of distances between adjacent taught points from the first taught point to the taught point selected in Step S3, which is measured along the taught path.” In the above example, first distance information D1 is expressed by the following equation.
D1=straight-line distance between the taught points A1 and A2+straight-line distance between the taught points A2 and A3+straight-line distance between the taught points A3 and A4
In the case that straight-line distance (represented by D1′) is used, the first distance information is expressed as follows.
D1′=straight-line distance between the taught points A1 and A4
Furthermore, each term in the above equations is found by simple distance calculation on the basis of the three-dimensional position of each of the taught points.
In the same manner, a path distance or a straight-line distance from the taught point selected in Step S3 to the final taught point is found as third distance information.
D3=straight-line distance between the taught points A4 and A5+straight-line distance between the taught points A5 and A6
D3′=straight-line distance between the taught points A4 and A6
The distance information D1 (or D1′) and D3 (or D3′) is used in calculation of modified position of an unmodified taught point afterwards.
Step S6; An n-th unmodified taught point is designated among taught points excluding both end points (the first taught point and the final taught point) and the taught point selected in Step S3. This designation can be automatically performed in the system. The operator, however, may perform the designation on the screen by using the mouse or the like. In the first case, a proper rule is preliminarily set. For example, it is satisfactory if a rule of selecting “a taught point closest to the first taught point on the taught path among taught points excluding both the end points (the first taught point and the final taught point) and the taught point selected in Step S3 from the series of grouped taught points” is preset.
In the case where the rule is applied to the above example, the taught point A2 is identified in the first Step S6. Thereafter, the taught points A3 and A5 are identified in the second and the third Step S6, respectively.
Step S7; it is judged in the system whether the taught point identified in Step S6 is a “first-region taught point” or a “second-region taught point”. Herein, the “first-region taught point” means a taught point located in a first region between the first taught point and the taught point selected in Step S3 on the taught path, and the “second-region taught point” means a taught point located in a second region between the taught point selected in Step S3 and the final taught point on the taught path.
The taught point identified in Step S6 is either the first-region taught point or the second-region taught point. Therefore, if the taught point identified in Step S6 is the first-region taught point, the procedure advances to Step S8. If not, the procedure advances to Step S10.
Step S8; A path distance or a straight-line distance from the first taught point to the taught point identified in Step S6 is calculated as second distance information.
Assuming that the path distance and the straight-line distance are denoted by D2 and D2′, respectively, and applied to the above example, the following equations can be obtained.
(Process Cycle in Which the Taught Point A2 is Identified in Step S6)
D2(12)=D2′(12)=straight-line distance between the taught points A1 and A2
(Process Cycle in Which the Taught Point A3 is Identified in Step S6)
D2(13)=straight-line distance between the taught points A1 and A2+straight-line distance between the taught points A2 and A3
D2′(13)=straight-line distance between the taught points A1 and A3
Step S9; based on the modification vector Δ, the first distance information D1 (or D1′) and the second distance information D2 (or D2′), the modified position of the taught point identified in Step S6 is calculated in the system. The equation is provided below.
Modified position=unmodified position+modification vector Δ*D2/D1 (or D2′/D1′). Depending on the circumstances, the following equation may be used.
Modified position=unmodified position+modification vector Δ*D2′/D1 (or D2/D1′)
If the equation is applied to the above example, the following equations are obtained. Positions of A2, A3, B2 and B3 are expressed by (xa2, ya2, za2), (xa3, ya3, za3), (xb2, yb2, zb2), and (xb3, yb3, zb3), respectively, and the equation of each component will be described.
xb2=xa2+(Δx4*D2(12)/D1)
yb2=ya3+(Δy4*D2(12)/D1)
zb2=za3+(Δz4*D2(12)/D1)
xb3=xa3+(Δx4*D2(13)/D1)
yb3=ya2+(Δy4*D2(13)/D1)
zb3=za32+(Δz4*D2(13)/D1)
Herein, D1, D2(12), and D2(13) may be replaced by D1′, D2′(12), and D2′(13), respectively.
Step S10; A path distance or a straight-line distance from the taught point identified in Step S6 to the final taught point is calculated as fourth distance information.
Assuming that the path distance and the straight-line distance are represented by D4 and D4′, respectively, and applied to the above example, the following equation can be obtained.
(Process Cycle in Which the Taught Point A5 is Identified in Step S6)
D2(56)=D2′(56)=straight-line distance between the taught points A5 and A6
Step S11; based on the modification vector Δ, the third distance information D3 (or D3′) and the fourth distance information D4 (or D4′), the modified position of the taught point identified in Step S6 is calculated in the system. The equation is provided below.
Modified position=unmodified position+modification vector Δ*D4/D3 (or D4′/D3′). In some cases, the following equation may be used.
Modified position=unmodified position+modification vector Δ*D4′/D3 (or D4/D3′)
If the equation is applied to the above example, the following equations can be obtained. Positions of A5 and B5 are denoted by (xa5, ya5, za5) and (xb5, yb5, zb5), respectively, and the equation of each component will be described below.
xb5=xa5+(Δx4*D4(56)/D3)
yb5=ya5+(Δy4*D4(56)/D3)
zb5=za5+(Δz4*D4(56)/D3)
Herein, D3 and D4(56) may be replaced by D3′and D4′(56), respectively.
Step S12; if n<N-3 is true, it is determined that there remains an unmodified taught point, and the procedure advances to Step S13. If not, it is determined that modification is completed, and the process is terminated. The result is shown on a display on the screen, for example, as illustrated in
Step S13; The index n is incremented by 1, and the procedure returns to Step S6 to identify the next unmodified taught point. Thereafter, the process is repeated until the result of judgement in Step S12 is NO.
According to the above-described process, the taught points A2, A3 and A5 located between the taught point A4 modified by the operator (user) and the end points A1 and A6 are grouped into the first-region taught points A2 and A3 and the second-region taught point A5. Moreover, required modification amounts of the taught points A2, A3 and A5 are calculated by prorating the modification vector of the taught point A4 modified by the operator (user) according to the distance information (path distance or straight-line distance) from the end point A1 or A6.
As a numeric example (using the path distance), for instance if the path distance from the end point A1 to the modified point A4 modified by the user is 25 mm, and the path distance from the end point A1 to the intermediate taught point A2 is 15 mm, the intermediate point A2 is modified by the result obtained by multiplying 15/25 (=0.6) by a moving amount of the modified point A4. Likewise, for example in case that the path distance from the modified point A4 modified by the user to the end point A6 is 20 mm, and the path distance from the intermediate taught point A5 to the end point A6 is 10 mm, the intermediate point A5 is modified by the result obtained by multiplying 10/20 (=0.5) by the moving amount of the modified point A4.
The posture is not modified in the present embodiment, and a value of (P, W, R) of each of the taught points is retained after modification. Moreover, in Step S3, the modification of the taught points, which is made by the operator (user), is performed through point movement on the screen, but may be performed through numeric value input instead.
In that case, the position (xb4, yb4, zb4) of the modified taught point (B4 in the above example) may be inputted. Furthermore, it is possible to employ a method in which a modification vector is set (components Δx4, Δy4, and z4 are inputted by using the keyboard or the like) to correspond to a modified taught point of a user selection. The procedure in the above case is shown in
Step T1; an index n is initialized into n=1.
Step T2; N sequential taught points to be grouped are designated. Herein, N is an integral number that satisfies N≧4, and the method of the designation is the same as Step S2.
Step T3; with respect to taught point modification that is made in the next Step T4, a component value (each of the component values x, y and z) of a vector (modification vector) indicative of a modification amount is inputted by the operator, for example, using the keyboard.
Step T4; an appropriate taught point is selected among N-2 taught points that remain after end points are excluded from N grouped taught points, to thereby make positional modification in accordance to the modification vector that is set in Step T2. According to the example mentioned in the first embodiment, the taught point A4 is selected from among the six taught points A1 through A6 shown in
Step T5; first distance information D1 or D1′ is calculated. The calculation method is the same as the first embodiment.
Step T6; an n-th unmodified taught point is identified among taught points excluding both the end points (the first taught point and the final taught point) and the taught point selected in Step T4. The measurement method is the same as the first embodiment.
Step T7; it is judged in the system whether the taught point identified in Step T6 is a “first-region taught point” or a “second-region taught point”. If the point is a first-region taught point, the procedure advances to Step T8. If not, the procedure advances to Step T10.
Step T8; second distance information D2 or D2′ is calculated. The calculation method is the same as the first embodiment.
Step T9; based on the modification vector Δ, the first distance information D1 (or D1′) and the second distance information D2 (or D2′), a modified position of the taught point identified in Step T6 is calculated in the system. The equation and the like are the same as the first embodiment.
Step T10; fourth distance information D4 or D4′ is calculated. The calculation method is the same as the first embodiment.
Step T11; based on the modification Vector Δ, the third distance information D3 (or D3′) and the fourth distance information D4 (or D4′), a modified position of the taught point identified in Step T6 is calculated in the system. The equation and the like are the same as the first embodiment.
Step T12; if n<N-3 is true, it is judged that there remains an unmodified taught point, and the procedure advances to Step T13. If not, it is judged that modification is completed, and the process is ended. The result is shown on a display on the screen, for example, as illustrated in
Step T14; the index n is incremented by 1, and the procedure returns to Step S6 to identify the next unmodified taught point. Thereafter, the process is repeated until the result of judgement in Step T12 is NO.
In the second embodiment, too, the taught points A2, A3 and A5 located in between the taught point A4 subjected to positional modification according to the modification vector that is set by the operator (user) and the end points A1 and A6 are grouped into the first-region taught points A2 and A3 and the second-region taught point A5. Moreover, required modification amounts of the taught points A2, A3 and A5 are calculated by prorating the modification vector according to distance (path distance or straight-line distance) from the end point A1 or A6.
In the first and second embodiments, the offline programming system using the personal computer is utilized. In place thereof, however, a system including a teaching operation panel 20, a robot controller 30 connected to a peripheral device 40 and a robot mechanism 50, as illustrated in
In that case, the unmodified program is prepared in the robot controller, and the modification on a set of taught points in Steps S2 and T2 is made on the teaching operation panel after the taught path according to the program is called on the teaching operation panel. Furthermore, the selection and positional modification of the intermediate taught points in Step S3 and the setting of the modification vector in Step T3 are also carried out on the teaching operation panel. It is possible to cause the robot controller to perform the calculation process and the like in the other various steps by preliminarily installing software (including programs, parameter values, and so on) therefor in the robot controller.
Claims
1. An operation program modification device for modifying positions of taught points set in an operation program for a robot, comprising:
- means for designating at least four sequential taught points among taught points set in the operation program;
- means for modifying a position of one taught point other than a first taught point and a last taught point in the sequential taught points;
- means for obtaining a modification vector representing the modification of position of said one taught point;
- means for obtaining first distance information from the first taught point to said one taught point before modification in a case where there exists one or more first-region taught points in a first region from the first taught point to said one taught point;
- means for obtaining second distance information from the first taught point to each of said first-region taught points along the operation path in the case where there exists one or more first-region taught points;
- means for modifying a position of each of said first-region taught points based on the modification vector, the first distance information and the second distance information in the case where there exists one or more first-region taught points;
- means for obtaining third distance information between the position of said one taught point before modification and a last taught point along the operation path in a case where there exists one or more second-region taught points in a second region from said one taught point to the last taught point;
- means for obtaining fourth distance information between each of said second-region taught points and the last taught point in the case where there exists one or more second-region taught points; and
- means for modifying a position of each of said second-region taught points based on the modification vector, the third distance information and the fourth distance information in the case where there exists one or more second-region taught points.
2. An operation program modification device according to claim 1, wherein at least one of said first distance information, said second distance information, said third distance information and said fourth distance information is obtained as a sum of distances between adjacent taught points from said first taught point to said one taught point before modification, as a sum of distances between adjacent taught points from the first taught point to each of the first-region taught points, as a sum of distances between adjacent taught points from said one taught point before modification to said final taught point; and as a sum of distances between adjacent taught points from each of the second-region taught points to the final taught point, respectively.
3. An operation program modification device according to claim 1, wherein at least one of said first distance information, said second distance information, said third distance information and said fourth distance information is obtained as a distance from said first taught point to said one taught point before modification, as a distance from the first taught point to each of the first-region taught points, as a distance from the final taught point to said one taught point before modification, as a distance from each of the second-region taught points to said final taught point, respectively.
4. An operation program modification device for modifying positions of taught points set in an operation program for a robot, comprising:
- means for designating at least four sequential taught points among taught points set in the operation program;
- means for setting a modification vector;
- means for modifying a position of one taught point other than a first taught point and a last taught point in the sequential taught points, according to the modification vector;
- means for obtaining first distance information from the first taught point to said one taught point before modification in a case where there exists one or more first-region taught points in a first region from the first taught point to said one taught point;
- means for obtaining second distance information from the first taught point to each of said first-region taught points along the operation path in the case where there exists one or more first-region taught points;
- means for modifying a position of each of said first-region taught points based on the modification vector, the first distance information and the second distance information in the case where there exists one or more first-region taught points;
- means for obtaining third distance information between the position of said one taught point before modification and a last taught point along the operation path in a case where there exists one or more second-region taught points in a second region from said one taught point to the last taught point;
- means for obtaining fourth distance information between each of said second-region taught points and the last taught point in the case where there exists one or more second-region taught points; and
- means for modifying a position of each of said second-region taught points based on the modification vector, the third distance information and the fourth distance information in the case where there exists one or more second-region taught points.
5. An operation program modification device according to claim 4, wherein at least one of said first distance information, said second distance information, said third distance information and said fourth distance information is obtained as a sum of distances between adjacent taught points from said first taught point to said one taught point before modification, as a sum of distances between adjacent taught points from the first taught point to each of the first-region taught points, as a sum of distances between adjacent taught points from said one taught point before modification to said final taught point, and as a sum of distances between adjacent taught points from each of the second-region taught points to the final taught point, respectively.
6. An operation program modification device according to claim 4, wherein at least one of said first distance information, said second distance information, said third distance information and said fourth distance information is obtained as a distance from said first taught point to said one taught point before modification, as a distance from the first taught point to each of the first-region taught points, as a distance from the final taught point to said one taught point before modification, as a distance from each of the second-region taught points to said final taught point, respectively.
Type: Application
Filed: Nov 12, 2004
Publication Date: May 19, 2005
Applicant: FANUC LTD (Yamanashi)
Inventors: Atsushi Watanabe (Tokyo), Tatsuya Oumi (Yamanashi)
Application Number: 10/986,022