CA1311061C - Method of teaching a robot - Google Patents

Method of teaching a robot

Info

Publication number
CA1311061C
CA1311061C CA000600393A CA600393A CA1311061C CA 1311061 C CA1311061 C CA 1311061C CA 000600393 A CA000600393 A CA 000600393A CA 600393 A CA600393 A CA 600393A CA 1311061 C CA1311061 C CA 1311061C
Authority
CA
Canada
Prior art keywords
center point
teaching
tool center
articulations
end effector
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Expired - Fee Related
Application number
CA000600393A
Other languages
French (fr)
Inventor
Hidetaka Nose
Yoshihiko Suzuki
Kazuhiro Kawabata
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Honda Motor Co Ltd
Original Assignee
Honda Motor Co Ltd
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Honda Motor Co Ltd filed Critical Honda Motor Co Ltd
Priority to CA000600393A priority Critical patent/CA1311061C/en
Application granted granted Critical
Publication of CA1311061C publication Critical patent/CA1311061C/en
Anticipated expiration legal-status Critical
Expired - Fee Related legal-status Critical Current

Links

Abstract

ABSTRACT OF THE DISCLOSURE
An articulated robot such as an arc welding robot includes a plurality of articulations and an end effector having a tool center point. To teach the robot, a coordi-nate transformation matrix for transforming coordinates between the articulations is determined from condition data of the articulations, a present position of the tool center point is calculated based on the coordinate transformation matrix, and a moving vector is determined from the present position of the tool center point to a next position thereof. Thereafter, a new coordinate transformation matrix for transforming coordinates between the articulations is determined so that the posture of the end effector at the next position of the tool center point which is calculated based on the first-mentioned coordinate transformation matrix and the moving vector will coincide with the posture of the end effector at the present position of the tool cen-ter point. Then, new condition data of the articulations are calculated from the new coordinate transformation matrix.

Description

METHOD OF TEACHING A ROBOT

BACKGROUND OF THE INVENTION
The present invention relates to a method of teach-ing a robot, and more particularly to a robot teaching method which is capable of generating or correcting teaching data while additionally taking into account the posture or orientation of an end effector of a robot with respect to the tool center point (TCP).
Teaching boxes are used to instruct robots so that the end effectors mounted on the distal ends of robot arms will subsequently be moved automatically along programmed paths. Teaching boxes have an input means for selecting command values to drive the articulations of a robot and also selecting coordinate systems used as a reference when teaching the robot, and a setting means for presetting a speed of operation of the robot. The operator teaches a robot by operating these input and setting means according to predetermined routines or procedures.
When robots operate to coat, seal, arc-weld, or otherwise work on workpieces, the posture of the end effectors of such robots with respect to the workpieces is of a great importance.
Usually, after the position of an end effector has been determined, the posture of the end effector with respect to a workpiece is corrected. If the posture of the t3~ 1~61 end effector is corrected by turning the end effector about the dlstal end of the robot arm, then the position of the tool center point of the end effector relative to the workpiece tends to vary. Therefore, when the posture of the end effector with respect to the workpiece is corrected in the above manner, the position of the tool center point must also be corrected.
In order to make the robot teaching process more efficient, there has been proposed a robot teaching process, as disclosed in Japanese Laid-Open Patent Publication No.
59-167713, wherein the position of the tool center point of an end effector and the posture or orientation of the end effector with respect to a workpiece are stored when teach-ing the robot, and the robot is subsequently played back by computing the positions of the articulations of the robot based on the stored position and posture data.
According to the disclosed robot teaching process, the positional data for the robot articulations are computed in order to correct the position of a displaced tool center point by varying the posture of the end effector.
Therefore, it takes a long time to position the robot, and the speed at which the robot is moved when it is played back is low.
It can readily be understood that as many teaching points as possible should be employed in order to move a robot precisely along a desired path. However, the more the 13~ 1061 teaching points through which the robot must be guided, the longer the tlme needed to teach the robot. One solution to this problem is to automatically compute teaching data between two teaching points through linear or circular interpolation for welding a workpiece with an arc welding robot, for example.
The conventional interpolation process only inter-polates positions for the tool center point, but does not take into account the posture or orientation of the end effector with respect to the workpiece. Therefore, it can-not perform a highly accurate ~ob in cases where the orien-tation of the end effector is important, such as when coating or sealing a workpiece. If the posture of the end effector is varied at each interpolated point, then the speed of operation of the robot is greatly lowered.
If a different lot of workpieces are to be processed, or the robot is dismounted from the processing line for maintenance, the position of the tool center point of the robot with respect to a workpiece may be shifted.
It would be considerably time-consuming if the robot were taught all over again. It has been proposed to correct the teaching data based on the teaching data prior to the chang-lng of workpiece lots or the maintenance of the robot (see Japanese Laid-Open Patent Publication No. 60-95605).
The proposed process however does not take into consideration the posture of an end effector with respect to 131 1~61 a workpiece in view of requirements for high-speed data correctlon. Therefore, when the configuration of workpieces or the position of a robot is largely changed, the posture of the end effector with respect to the workpiece is ren-dered inaccurate, making it impossible to effect highly accurate robot operation. The position of the tool center point may also be shifted when end effectors are changed due to a design modification.

SUMMARY OF T~E INVENTION
It is a major ob;ect of the present invention to provide a robot teaching method which is capable of easily and accurately teaching an articulated robot while addition-ally taking into account the posture or orientation of the end effector of the robot with respect to the tool center point, and which is also capable of quickly and easily cor-recting teaching data when the position of the tool center point is shifted.
Another object of the present invention is to pro-vide a method of teaching an articulated robot including a plurality of articulations and an end effector having a tool center point, comprising the steps of: determining a coordi-nate transformation matrix for transforming coordinates between the articulations from condition data of the articulations; calculating a present position of the tool center point based on said coordinate transformation matrix;
determining a moving vector from said present position of the tool center point to a next position thereof; thereafter determining a new coordinate transformation matrix for transforming coordinates between the articulations so that the posture of the end effector at the next position of the tool center point which is calculated based on said first-mentioned coordinate transformation matrix and said moving vector will coincide with the posture of the end effector at the present position of the tool center point; and calculat-ing new condition data of the articulations from said new coordinate transformation matrix.
Still another ob;ect of the present invention is to provide a method of teaching an articulated robot including a plurality of articulations and an end effector having a tool center point, comprising the steps of: determining a coordinate transformation matrix for transforming coordi-nates between the articulations from condition data of the articulations; calculating a present position of the tool center point based on said coordinate transformation matrix;
determinlng a rotation matrix with respect to a reference coordinate system for dlsplacing the posture of the end effector at the present position of the tool center point;
thereafter determining a new coordinate transformation matrix for transforming coordinates between the articula-tions so that a new position of the tool center point which is calculated based on said first-mentioned coordinate transformation matrix and said rotation matrix will coincide with the present position of the tool center point; and cal-culating new condition data of the articulations from said new coordinate transformation matrix.
Yet another object of the present invention is to provide a method of teaching an articulated robot including an end effector having a tool center point for effecting linear lnterpolation between first and second teaching points, said method comprising the steps of: determining an interpolating number for dividing the distance between the first and second teaching points at predetermined intervals;
dividing a change in the position of the tool center point and a change in the posture of the end effector as the end effector moves from said first teaching point to said second teaching point, by said interpolating number to determining changes in the position of the tool center point and changes in the posture of the end effector between interpolating points between said first and second teaching points; and determining the positions of the tool center point and the postures of the end effector at the respective interpolating points by using said changes in the position of the tool center point and said changes in the posture of the end eff-ector between said interpolating points.
Yet still another object of the present invention is to provide a method of teaching an articulated robot including an end effector having a tool center point for effecting circular interpolation between first, second, and thlrd teaching points, said method comprising the steps of:
determining the center and length of an arc extending from said first teaching point through said second teaching point to said third teaching point; determining an interpolating number for dividing said arc at predetermined intervals based on the length of the arc; determining an angle formed between a vector extending from said center to said first teaching point and a vector extending from said center to said third teaching point; dividing said angle by said interpolating number to determine a change in the direction of a vector extendlng from said center to an interpolating point; determining a rotation matrix for the vector extend-lng to the interpolating point based on said change in the direction; and operating said rotation matrix successively on coordinate transformation matrices with respect to said first teaching point to determine the positions of the tool center point and the postures of the end effector at the respective interpolating points.
A further ob;ect of the present invention is to provide a method of teaching an articulated robot having a plurality of articulations and an end effector having a tool center point for correcting the position of the tool center point, comprising the steps of: determining a coordinate transformation matrix for transforming coordinates between the articulations from condition data of the articulations;
calculating the position of the tool center point before it is corrected, based on said coordinate transformation matrix; determining an interval of movement of said tool center polnt with respect to a workpiece to be processed by said robot; calculating the position of the tool center point after it is corrected, from the position of the tool center point before it is corrected and said interval of movement; then determining a new coordinate transformation matrix for transforming coordinates between the articula-tions from the position of the tool center point after it is corrected; and calculating new condition data of the articu-lations from said new coordinate transformation matrix.
A still further object of the present invention is to provide a method of teaching an articulated robot includ-ing an end effector having a tool center point for correct-ing teaching data for the robot, comprising the steps of:
determining the positions of three reference points which are not present on one straight line and are selected before the teaching data are corrected; determining three positions for the tool center point by moving the tool center point to said three reference point when the teaching data are corrected; thereafter determining a coordinate transforma-tion matrix to bring the positions of said three reference points into agreement with said three positions for the tool center point; and operating said coordinate transformation matrix on the teaching data to correct the same.
A yet further object of the present invention is to provide a method of teaching the articulated robot, further comprising the step of determining said coordinate transfor-mation matrix to bring a triangle having the positions of said three reference points at respective corners thereof into superposed relation to a triangle having said three positions for the tool center point at respective corners thereof.
A yet still further ob;ect of the present invention is to provide a method of teaching an articulated robot hav-ing a plurality of articulations and an end effect¢r having a tool center point fGr replacing the end effector with a new end effector, comprising the steps of: determining a coordinate transformation matrix for transforming coordi-nates between the articulations from condition data of the articulations; calculating the position of the tool center point of the old end effector based on said coordinate transformation matrix and dimensional data of the old end effector; then determining a new coordinate transformation matrix for transforming coordinates between the articula-tions so that the position of the tool center point of the new end effector and the posture of the new end effector will colncide respectively with the position of the tool center point of the old end effector and the posture of the old end effector; and calculating new condition data of the articulations from said new coordinate transformation matrix.
The above and other objects, features and advan-tages of the present invention will become more apparent from the following description when taken in conjunctlon with the accompanying drawings in which a preferred embodi-ment of the present invention is shown by way of illustra-tive e~ample~

BRIEF DESCRIPTION OF THE DRAWINGS

FIG. 1 is a schematic elevational view, partly in block form, of a welding system to which a robot teaching method according to the present invention is applicable;
FIG. 2 is a perspective view of a teaching box of the welding system shown in FIG. l;
FIGS. 3 and 4 are views of menus displayed on the teaching box illustrated in FIG. 2;
FIGS. 5, 6, 7a, 7b, ~a, 8b, 10, lla, llb, and 13 are flowcharts of operation sequences of the robot teaching method of the present invention; and FIGS. 9, 12a, 12b, and 12c are diagrams illustrat-ing the robot teaching method of the present invention.

DETAILED DESC~IPTION OF THE PREFERRED EMBODIMENT

FIG. 1 schematically illustrates, partly in block form, a welding system to which a robot teaching method accordlng to the present invention is applicable.
The welding system, generally indicated at 10, includes an arc welding robot 14 which is operated under sequence control by a sequencer 12 for welding a workpiece 15 positioned on a ~ig 17 by a clamp unit 16. The arc weld-ing robot 14 is taught its operation in advance by a teach-ing box 18, and controlled in its operation by a robotcontroller 20 through a hydraulic unit 22 and a welding con-troller 24.
The arc welding robot 14 is mounted on a base 26 and, includes a movable member 28 which is movably disposed on the base 26 and movable in the directions indicated by the arrows by a hydraulic motor 30 disposed on the base 26, and a swingable member 32 swingabl.y mounted on the movable member 28 and swingable in the directions indicated by the arrows by a hydraulic motor 34 attached to the movable mem- -ber 28. An arm 36 has an end pivotally coupled to the swi-ngable member 32 and is vertically movable in the directions of the arrows by a hydraulic cylinder 38 supported by the swingable member 32. An attachment member 42 supporting a hydraulic motor 40 is mounted on the other free end of the arm 36, and a weldlng torch 46 is coupled as an end effector to the attachment member 42 through a hydraulic motor 44.
The weldlng torch 46 .ts rotatable by the hydraulic motor 40 in the directions lndicated by the arrows about an axis of the hydraulic motor 44, and is also rotatable by the hydrau-lic motor 44 in the directlons of the other arrows about another axis of the hydraullc motor 44. The hydraulic unit 22 controls operation of the hydraulic motors 30, 34, 40, 44 and the hydraullc cylinder 38. The welding controller 24 controls operation of the hydraulic cylinder 50 and also a welding electrlc current flowing between the the weldlng torch 46 and the workpiece 15.

The welding system 10 has various coordinate systems. There are a base coordinate system Oo fixed to the base 26 with respect to the arc welding robot 14, a hand coordinate system Oe fixed to the tool center point TCP of the welding torch 46 with respect to the workpiece 15, and coordinate systems I through s at the respective articula-tions of the arc welding robots 14.
The base coordinate system oo has three orthogonal axes Xo, Yo, Zo, with the directions of turning motion around these axes being represented by Ao, Bo, Co, respectively. The hand coordinate system Oe has three orthogonal axes Xe, Ye, Ze, with the directions of turning motion around these axes being represented by Ae, Be, Ce, respectively. The coordinate system l is displaceable with respect to the base coordinate system Oo by the hydraulic motor 30. The coordinate system 2 iS angularly movable with respect to the coordinate system I by the hydraulic motor 34. The coordinate system OJ is angularly movable with respect to the coordinate system Oz with respect to the hydraulic cylinder 38. The coordinate system O~ is fixed with respect to the coordinate system 03, and added to explain the arc welding robot 14 as a 6-axis robot. The coordinate system 05 iS angularly movable with respect to the coordinate system O~ by the hydraulic motor 40. The coordinate system O~ is angularly movable with respect to the coordinate system 6 by the hydraulic motor 44.

The teaching box 18 is arranged as shown in FIG. 2.
The teachlng box 18 essentially comprises a main body 52 as a control means for teaching the arc weldlng robot 14, and a display 54 for displaying procedures or modes of operation of the teaching box 18.
The main body 52 is electrically connected to the robot controller 20 through a cable 55. The main body 52 has on its upper panel a mode selection switch 56 for switching between a teaching mode, a playback mode, and other modes, a ~oystick 58 for manually operating the arc welding robot 14, a ten-key pad 60 for selecting functions and entering data, and an emergency stop button 62 for stop-ping operation of the arc welding robot 14 in an emergency.
Keys "0" and "I" of the ten-key pad 60 are used to store teaching data. The joystick 58 is tiltable in the direc-tlons indicated by the arrows ~, ~, and also rotatable in the directions indicated by the arrows y. The relationship between the direction in which the joystick 58 is tilted or rotated and the direction in which the arc welding robot 14 is operated can be determined through the ten-key bad 78.
The speed of operation of the arc welding robot 14 is selected by the angle through which the joystick 58 is tilted or rotated. A push-button operation switch 64 is mounted on the upper end of th~ joystick 58 and can be depressed to start operating the arc welding robot 14.
The main body 52 has two laterally spaced arms 66a, 66b pro~ecting obliquely upwardly. The display 54 is angularly movably supported between the dlstal ends of the arms 66a, 66b by attachment screws 68a, 68b, the display 54 being angularly movable about the screws 6Ba, 68b in the directions indicated by the arrows ~. The display 54 has an LCD 70 which displays a procedure of operation of the teach-ing box 18 which has been selected by the mode selection swltch 56 and the ten-key pad 60.
The welding system 10 to which the robot teaching method of the present invention is basically constructed as described above. The robot teaching method of the invention, applied to the welding system 10, will hereinaf-ter be described.
First, the power supply of the teaching box 18 is turned on. The LCD 70 of the teaching box 18 then displays a main menu 80 shown in FIG. 3. The main menu 80 includes "TEACH" which indicates a teaching mode for teaching the arc welding robot 14 by using the joystick 58, "PLAY" which indicates a playback mode for fetching desired teaching data by using a keyboard or the like (not shown) coupled to the robot controller 20 and for operating the arc welding robot 14 according the teaching data, "AUTO" which indicates an automatic mode for automatically executing the playback mode based on a request from the sequencer 12 actually to weld the workpiece 15 with the arc welding robot 14, "E~IT" which indicates an editing mode for editing (i.e., three-dimensionally shifting, copying, or the like) teaching data 13t 1(J61 stored ln the teaching box 18, and "PARA" which indicates a parameter setting mode for setting certain parameters such as dimensions of the welding torch 46 of the arc welding robot 14. These "TEACH", "PLAY", "AUTO", "EDIT", and "PARA"
modes can be selected by turning the mode selection switch 56 to respective positions "1", "2", "3", "4", and "5".
Then, the operator selects the parameter setting mode from the displayed main menu 80 by turning the mode selection switch 56 to position "5". Using the ten-key pad 60 of the teaching box 18, the operator enters the dimen-sions of the welding torch or end effector 46 and servo gains for potentiometers associated with the respective articulations of the arc welding robot 14, and sets maximum allowable speeds of operation of the articulations of the arc welding robot 14.
The operator thereafter turns the mode selection switch 56 to position "1" to select the teaching mode. The LCD 70 now displays a teaching mode menu 82 shown in FIG. 4.
The teaching mode menu 82 includes "JOINT-123"
which indicates a mode for operating the hydraulic motors 30, 34 and the hydraulic cylinder 38 in response to move-ments of the ~oystick 58 in the directions indicated by the arrows a, ~, y, and "JOINT-456" which indicates a mode for operating the hydraulic motors 40, 44 in response to move-ments of the ~oystick 58 in the directions indicated by the arrows a, ,~. The teaching mode menu 32 also includes "BASE-XYZ" which lndicates a mode for moving the tool center point TCP of the welding torch 46 in the directions along the axes Xo, Yo, Zo of the base coordinate system Oo in response to movement of the joystick 58, "BASE-ABC" whi.ch indicates a mode for moving the tool center point TCP of the weldiny torch 46 in the directions Ao, Bo, Co around the axes Xo, Yo, Zo of the base coordinate system oo in response to movement of the joystick 58, "HAND-XYZ" which indicates a mode for moving the tool center point TCP of the welding torch 46 in the directions along the axes Xe, Ye, Ze of the hand coordinate system Oe in response to movement of the ~oystick 58, and "HAND-ABC" which indicates a mode for mov-ing the tool center point TCP of the welding torch 46 in the directions Ae, Be, Ce around the axes Xe, Ye, Ze of the hand coordinate system Oe in response to movement of the ~oystick 5~. The teaching mode menu 32 further includes "BASE-MDI"
and "HAND-MDI" which are modes for moving the tool center point TCP of the welding torch 46 based on teaching data entered based on the base and hand coordinate systems Oo, oe, respectively, and "MEMORIZE" which indicates a mode for storing the present conditions of the arc welding robot 14 as teaching data into a memory (not shown) in the robot con-troller 20. These modes can be selected by depressing the keys of the ten-key pad 60 which bear the corresponding numerals and letter shown in FIG. 4.
If the numeral "3" is entered through the ten-key pad 60, then the "BASE-XYZ" mode is selected from the teach-ing mode menu. Then, whlle depressing the operation switch 64, the operator tilts or turns the joystick 58 in the direction indicated by the arrow a, ~, or y through a cer-tain interval. Data on the directions and angles in which the ~oystick 58 is tilted and turned are transferred over the cable 55 to the robot controller 20. sased on the selected "BASE-XYZ" mode, the robot controller 20 generates, from the direction and angle data, pulse signals correspond-ing to distances of movement in the coordinate systems I through 6 of the arc welding robot 14, and applles the generated pulse signals to the hydraulic unit 22. Xn response to the applied pulse signals, the hydraulic unit 22 moves the tool center point TCP of the welding torch 46 to a desired welding position on the workpiece 15 according to the base coordinate system oo. At this time, the tool cen-ter point TCP is moved in the direction along the axis Zo by tilting the joystick 58 in the direction indicated by the arrow a, in the direction along the axis Xo by tilting the joystick 58 in the direction indicated by the arrow ~, and in the direction along the axis Yo by turning the joystick 58 in the direction indicated by the arrow y.
If the workpiece 15 is to be welded along a path lying in one plane and having a certain length, then it is necessary not only to keep the position of the tool center point TCP of the welding torch 46 accurately with respect to the workplece 15 but alto to keep the posture or orientation ~31 1061 of the welding torch 46 constant with respect to the workpiece 15 in order to arc-weld the workpiece 15 accurately. In the "BASE-XYZ" mode, the tool center point TCP of the welding torch 46 can be moved to a desired posi-tion while holding the posture of the welding torch 46 constant based on the base coordinate system oo. Such translation of the welding torch 46 will be described below wlth reference to the flowchart of FIG. 5.
First, the robot controller 20 receives pulses Pi (i = 1, 2, -- 6) representing the present position from the non-illustrated potentiometers mounted on the hydraulic motors 30, 34, 40, 44 and the hydraulic cylinder 38 of the arc welding robot 14. In this embodiment, no potentiometer is associated with the coordinate system 0~, and the pulses P~ are set to zero since the coordinate system 0~ is fixed with respect to the coordlnate system 03. Then, the robot controller 20 determines, from the received pulses Pi, pre-sent angles ri f the respective articulations with respect to the ad~acent coordinate systems 0, through 6 according to the following equation:

r1 = ( k i + k2i) k3i - (1) (i = 1, 2, 6) in a step la, where kli indlcates parameters relating to the resolution and speed reduction ratio of the potentiometers in the coordinate systems Oi, k2i indicates offsets, i.e., increases or reductions, of the pulses Pi produced by the potentiometers from reference intermediate points set with respect to the ranges in which the articulations in the coordinate systems Oi are movable, and k3i represents param-eters used for converting the angles (degree) to angles in radians.
Then, transformation matrices T are calculated from the present angles ri calculated according to the equation (1) in a step 2a. The transformation matrices T are u~ed to set the positions and postures of the coordinate systems Oi with respect to the base coordinate system Lo. With the elements of the transformation matrices T being indicated by tmn (m = 1, 2, 3, n = 1, 2, 3, 4), the transformation matri-ces T are given by:
tl,(ri) -- t, 4 (ri) T =

t~l(ri) -- tl~(ri)J
O -- 1 - (2) (i = 1, 2, -- 6) If the transformation matrices T are defined as T _ [a ¦ b] --(3) then, the present position C of the tool center point TCP is calculated, using the transformation matrices T, as follows:
C = T-h _ a-hO + b --(4) in a step 3a, where a indicates the elements in four rows and three columns on the lefthand side of the transformation 1 3t l O61 matrices T and b indicates the elements in four rows and one column on the rlghthand side of the transformation matrices T, and h indicates a vector representing the offset of the tool center point TCP with respect to the coordinate system O~. The vector h is defined as h, h = h3 -- [ ho ) 1 -(5) where h,, h2, hJ are the vector components in the directions Xo, Yo, Zo of the base coordinate system Oo.
The robot controller 20 determines whether there is an input from the ~oystick 58 of the teaching box 18 in a step 4a, and holds the present pulses Pi if there is no such input ln a step 5a.
When the joystick 58 is tilted or turned a certain interval along the directions a, ~, y while the operation switch 64 is being depressed, the robot controller 20 calcu-lates intervals ~c~ of movement of the respective articula-tions along the axes Xo, Yo, Zo of the base coordinate system Oo based on voltage signals ~V; from the potentiome-ters which are electrically coupled to the joystick 58. It is assumed that the potentiometers have gains g;, and the intervals ~c; are given by:
~ c~ = ~g; (~ = 1, 2, 3) (6) in a step 6a. The calculated value when ~ = 1 indicates the interval along the axis Xo, the calculated value when ; = 2 indicates the interval along the axis Yo, and the calculat~d value when j = 3 indicates the interval along the axis zo.
A new position C' of the tool center point TCP is then determined by using the calculated intervals ~c~ in a step 7a. More specifically, the new position C' of the tool center point TCP which has been moved by the joystick 58 is given, using the equation (6), as follows:
c~' = c; - ~cj/k, --(7) (; = 1, 2, 3) where c~ indicates the components in the present position C, c~' indicates the components in the new position C', and k 4 iS a parameter relating to the resolution and speed reduction ratio of a potentiometer (not shown) of the joy-stick 58.
If transformation matrices T' when the tool center point TCP is moved to the position C~ are given by:
T' = [a'l b'] (8) then it is necessary from the equation (3) that a = a' (9) in order for the posture of end effector to remain unchanged or fixed when the tool center point TCP moves from the posi-tlon C to the position C'. Therefore, the new position C' of the tool center poi.nt TCP is expressed as:
C' = a-hO ~ b' --(10) and the transformation matrices T' are determined as:
T' = [a ¦ C' - a hO~ (11) in a step 8a.

By lnversely transforming the transformation matri-ces T', next angles ri~ (i = 1, 2, -- 6) in the articula-tions associated with the respective coordinate systems I through O~ can be determined in a step 9a. AS a result, next pulses Pi ' are determined from the angles ri' as follows:
Pi' = (k i + k2i) k~ -(12) (i = 1, 2, -- 6) ln a step 10a.
Then, the robot controller 20 supplies the pulses Pi' determined in the step 10a to the hydraulic unit 22 to instruct the arc welding robot 14 to move in a step lla.
The position of the tool center point TCP of the welding torch 46 of the arc welding robot 14 is now varied depending on the interval by which the ~oystick ~8 is tilted or turned, while the posture of the welding torch 46 at the tool center point TCP remains fixed or unchanged. Then, "0"
and "I" are entered in a step 12a from the ten-key pad 60 of the teaching box 18 to store the pulses Pi' for the respec-tive articulations as teaching data in a memory (not shown) in the robot controller 20 in the "MEMORIZE" mode. The key "0" is depressed in order to select the letter "I" on the "I/7" key.
By repeating the above process for each of desired welding spots, the tool center point TCP of the welding ~31 1061 torch 46 is translated to a desired position on the workpiece 15.
While the tool center point TCP is translated with reference to the base coordinate system Oo in the above embodiment, it is also possible to translate the tool center point TCP with reference to the hand coordinate system Oe defined at the tool center point TCP. In this case, the operator selects the "HAND-XYZ" mode from the teaching mode menu 82 displayed on the LCD 70, and tilts or turns the ~oystick 58 in a desired direction. The tool center point TCP is now changed in position with reference to the hand coordinate system Oe fixed at the tool center point TCP.
The operator can teach the arc welding robot 14 more easily than if the base coordinate system Lo is employed. In this procedure, after the intervals of movement along the axes Xe, Ye, Ze of the hand coordinate system Oe have been set in the step 6e of FIG. 5, these intervals are converted to intervals Ac~ (see the equation (6)) as viewed from the base coordinate system Oo, and then the step 7a and the subse-quent steps are executed, for obtaining desired pulses for the respective articulations.
In order to accurately arc-weld the workpiece 15, it may be desired to vary the posture of the welding torch 46 at any teaching point. In thîs instance, the position of the welding torch 46 must also be accurately defined with respect to the workpiece 15. According to the embodiment of the present inventlon, after the position of the tool center point TCP of the welding torch 46 has been established based on the "B~SE-XYZ" mode in the teaching mode menu, the pos-ture of the welding torch 46 is varied in the "BASE-ABC"
while fixing the position of the tool center point TCP. A
process of varylng the posture of the weldlng torch 46 wlll be described below with reference to the flowchart shown ln FIG. 6.
The operator selects the "BASE-ABC" mode from the teachlng mode menu displayed on the LCD 70. Then, while depressing the operation swltch 64, the operator tilts or turns the joystick 58 to vary the posture of the welding torch 46. In the "BASE-A~C" mode, the welding torch 46 is varied in posture at the tool center polnt TCP on the distal end of the welding torch 46 with reference to the base coordinate system Oo.
The robot controller 20 recelves present pulses Pi (i = 1, 2, -- 6) from the potentiometers associated with the artlculations, and determines, from the received pulses Pl, present angles ri f the respective articulations with respect to the adjacent coordinate systems I through O, according to the equation (1) in a step lb.
Then, transformation matrices T are calculated from the present angles ri according to the equation (2) in a step 2b. The transformation matrices T are used to calculate the present position C of the tool center point TCP accord-ing to the equation (4) in a step 3b.

t31 1061 The robot controller 20 determines whether there is an input from the joystick 58 of the teaching box 18 in a step 4b, and holds the present pulses Pi if there is no such input in a step 5b.
When the joystick 58 is tilted or turned while the operation switch 64 is being depressed, the robot controller 20 calculates changes Ar~ in the intervals of movement of the respective articulations around the axes Xo, Yo, Zo of the base coordinate system oo based on voltage signals ~Vj from the potentiometers which are electrically coupled to the joystick 58. It is assumed that the potentiometers have gains g~, and the changes in the intervals ~rj are given by:
~ r~ = ~g~ (; = l, 2, 3) --(13~

in a step 6b. The calculated value when ; = l indicates the interval Ao around the axis Xo, the calculated value when ;
= 2 indicates the interval Bo around the axis Yo, and the calculated value when ; = 3 indicates the interval Bo around the axis Zo.
Then, a rotatlon matrix R with respect to the base coordinate system Oo is determined from the changes ~r~ in the intervals around the axes Xo, Yo, Zo of the base coordi-nate system Oo is determined in a step 7b. The rotation matrix R is given by:
R = R3-R2-RI --(14) where Rl, Rz, RJ are rotation matrices with respect to the directions Xo, Yo, Zo and expressed as:

, . . . . ..

~ (Qr~ -- R l ~ ( ~r~ ) O
Rj = ¦
¦ R3~(~r~) -- R3t(~rj) 0 -- 0 1 ~ (15) (; = 1, 2, 3) where Rmn (m, n = 1, 2, 3) are the components of the rota-tlon matrices R~.
Then, a new position of the tool center point TCP
is determined in a step 8b by using the transformation matrices T, R calculated in the steps 2b, 7b. More specifically, the new posltion C' of the tool center point TCP with the welding torch 46 varied in posture by the joystick 58 is determined by operating th~ rotation matrix R
on the equation (4) as follows:
C' = R-T-h = R-C --(16) n order for the position C' of the tool center point TCP to remain unchanged with respect to the change in the posture of the welding torch 46 at the tool center point TCP
thereof, it is necessary that:
R-C = C' = C --(17) Therefore, by operating the rotation matrix R on the equa-tion (4) from its lefthand side, transformation matrices T' when only the posture of the welding torch 46 is varied are determined as:
T' = [R-a ¦ C - R-a hO] --(18) in a step 9b.

By inversely transforming the transformation matri-ces T', next angles ri~ (i = 1, 2, -- 6) in the articula-tions associated with the respective coordinate systems o, through 6 can be determined in a step 10b. As a result, next pulses Pi~ are determined from the angles ri~ according to the equation (12) above in a step llb.
Then, the robot controller 20 supplies the pulses Pi' determined in the step llb to the hydraulic unit 22 to instruct the arc welding robot 14 to move in a step 12b.
The posture of the welding torch 46 of the arc welding robot 14 is now varied depending on the interval by which the joystick 58 is tilted or turned, while the position of the tool center point TCP remains fixed or unchanged. Then, "0"
and "I" are entered from the ten-key pad 60 of the teaching box 18 to store the pulses Pi' for the respective articula-tions as teaching data in the memory (not shown) in the robot controller 20 in a step 13b.
By repeating the above process for each of desired welding spots, the welding torch 46 is accurately set at a desired posture with respect to the workpiece 15.
While the posture of the welding torch 46 is varied wlth reference to the base coordinate system Oo in the above embodiment, it is also possible to vary the posture of the welding torch 46 with reference to the hand coordinate sys-tem Oe defined at the tool center point TCP. In this cass, the operator selects the "HAND-ABC" mode from the teaching mode menu 82 displayed on the LCD 70, and tilts or turns the joystlck 58 in a desired direction. Since the welding torch 46 ls now varied in posture with reference to the hand coor-dinate system Oe fixed at the tool center point TCP, the operator can teach the arc welding robot 14 more easily than if the base coordinate system Lo is employed. In this procedure, after changes in the intervals of movement around the axes Xe, Ye, Ze of the hand coordinate system Oe have been set in the step 6b of FIG. 6, these interval changes are converted to interval changes Arj (see the equation (13)~ as viewed from the base coordinate system Oo, and then the step 7b and the subsequent steps are executed, for obtaining desired pulses for the respective articulations.
Then, the operator establishes a process of inter-polation between teaching points and a speed of movement of the tool center point TCP of the welding torch 46 after the teaching data have been stored.
The process of arc-welding the workpiece while gen-erating new teaching data by effecting linear interpolation between two teaching points will hereinafter be described with reference to the flowchart shown in FIGS. 7a and 7b.
The robot controller 20 reads pulses PSi from the potentiometers of the respective articulations at a start point, and pulses PEi from the potentiometers of the articu-lations at an end point (i = 1, 2, -- 6)~ the start and end points being two teaching points, respectively, and a speed 131 1~1 v of movement between these teaching points from a memory (not shown) in a step lc. Then, angles rsi, rei of the artlculations with respect to the adjacent coordinate sys-tems ol through 6 are determined from these pulses PSi, PEi as follows:

rsi = (kSi + k2i) kJi ~19) rei = (k i + k2i) k3i (20) (i = 1, 2, -- 6) in a step 2c, where k2i indicates offsets, i.e., increases or reductions, of the pulses PSi, PEi produced by the poten-tiometers from reference intermediate points set with respect to the ranges in which the articulations in the coordinate systems Oi are movable. Since the coordinate system O~ is fixed with respect to the coordinate system O~, as described above, the pulses PS4, PE4 are set to zero.
Then, transformation matrices Ts, Te are calculated from the angles rsi, rei at the start and end points, calcu-lated according to the equations (19), (20). The transfor-mation matrices Ts, Te are used to set the positions and postures of the coordinate systems Oi with respect to the base coordinate system Lo. With the elements of the trans-formation matrices Ts, Te being indicated by tmn (m = 1, 2, 3, n = 1, 2, 3, 4), the transformation matrices Ts, Te are given by:

~t,,(rs~ - tl~(rsi) Ts = ¦
t3l(rsi) -- t~4(rSl) 0 -- 1 --(21) ~tl ' (rei) tl ~ (rei) Te = ¦

lt3,(rei) -- t 34 (rei) 0 -- 1 .--(22) (i = 1, 2, -- 6) Therefore, using the transformation matrices Ts, Te, a posi-tion Cs of the tool center point TCP at the start point and a position Ce of the tool center point TCP at the end point are calculated in a step 3c as follows:
Cs = Ts h -(23) Ce = Te-h - (24) Then, the distance ~ of linear movement of the tool center point TCP between the start and end points is deter-mined ln a step 4c. The linear distance ~ is expressed from the equations (23), (24) as follows:
~ = ICs - Cell --(25) Intervals di f movement of the respective articu-lations for moving the tool center point TCP from the start point to the end point are calculated, using the equations (19), (20), as follows:
di = rsi - rei --(26) in a step 5c. Times ti required to move the articulations 131 ~061 for the intervals di at a maximum allowable speed vMi set in the parameter setting mode are determined by:

ti = di~VMi ~(27) (i = 1, 2, -- 6) in a step 6c. Assuming that the maximum time of the times ti determined by the equation (27) is tM and the time inter-val for supplying data from the robot controller 20 to the hydraulic unit 22, the number Nl of interpolating points wh~n the articulation that takes the longest time is moved between the start and end points at the maximum allowable speed vMi is given by:
Nl = tM/T (28) in a step 7c. The number N2 of interpolating points when the tool center point TCP is moved between the start and end points at a maximum speed VMAX at which the arc welding robot 14 can be operated, is determined in a step 8c, using the linear distance ~ determined by the equation (25), as follows:
N, = ~'T/VMAX --(29) The larger one of these interpolating numbers Nl, N, is selected as an interpolating number N1 in a step 9c.
Finally, an interpolating number N for an actual operation is determined in a step lOc from a speed v of movement of the tool center point TCP, specified in the parameter set-ting mode, and the interpolating number Na determined in the step 9c, as follows:

N = N, x v ,..

By settlng the interpolating number N in the manner described above, maximum interpolati.ng data capable of being processed by the robot controller 20 can be generated, and hence the arc welding robot 14 can weld the workpiece 15 highly accurately.
Based on the interpolating number N thus defined, a change in the posture of the welding torch 46 and a change in the position of the tool center point TCP for each item of interpolating data from the start point to the end point are determined in a step llc. Changes Qri in the postures of the respective articulations are given from the equations (19), (20) and (30) by:
Qri = (rsi - rei)/N --(31) Changes QC in the position of the tool center point TCP are given from the equations (23), (24) by:
~ C = (Cs - Ce)/N (32) Therefore, the positions Cn of the articulations at an interpolating point next to the start point are expressed by:
Cn = Cs + QC (33) If transformation matrices Tn with respect to this interpo-lating point are defined as:
Tn _ [a (rsi + Qri) ¦ b] --(34) then the transformation matrices Tn are determined, using the relationship expressed by the equation (5), as follows:

131 ~061 Tn = [a ¦ Cn - a hO] ~ ~35~
in a step 12c, where a indicates the elements in four rows and three columns on the lefthand side of the transformation matrices Tn and b indicates the elements in four rows and one column on the righthand side of the transformation matrices Tn.
By inversely transforming the transformation matri-ces Tn, next angles rni (i = 1, 2, -- 6) in the articula-tions with respect to the interpolating point can be determined in a step 13c. Pulses PNi with respect to the interpolating point are determined from the angles rni as follows:
PNi = (k i - kzi) kli (36) in a step 14c.
Then, the robot controller 20 applies the pulses PNi to the arc welding robot 14 to move the tool center point TCP to the interpolating point in a step 15c.
Likewise, the steps 12c through 15c are repeated as many times as the interpolating number N to effect linear inter-polation between the start and end points.
For moving the tool center point TCP of the welding torch 46 along a curve on the workpiece, teaching points are selected at certain intervals along the curve, and data for indicating circular interpolation are added to the data of middle and end points of the three adjacent teaching points.

Circular interpolation data are generated between the teach-ing points in the manner described below.
The process of arc-welding the workpiece while gen-erating new teaching data by effecting circular interpola-tion between teaching points will hereinafter be described with reference to the flowchart shown in FIGS. 8a and 8~ and the flowchart shown in FIG. 9.
The robot controller 20 reads pulses PAi, PMi, PBi (i = 1, 2, -- 6) from the potentiometers of the articula-tions at three teaching points, i.e., a start point A, a middle polnt M, and an end point B, and also reads a speed v of movement between these teaching points from a memory (not shown) in a step ld. Then, angles rai, rmi, rbi f the articulations with respect to the ad;acent coordinate sys-tems Ol through O~ are determined from the pulses PAi, PMi, PBi as follows:
rai = (k i + k~i) k3i (37) rmi = (k i ~ k2i) k~i (38) rbi = (k i ~ k~i) k~i (39) (i = 1, 2, -- 6) in a step 2d, where k2i indicates offsets, i.e., increases or reductions, of the pulses PAi, PMi, PBi produced by the potentiometers from reference intermediate points set with respect to the ranges in which the articulations in the coordinate systems oi are movable. Since the coordinate system 0~ is flxed with respect to the coordinate system 03 as described above, the pulses PA~ PM~ pg are set to zero.
Then, transformation matrices Ta, Tm, Tb are calcu-lated from the angles rai~ rmi~ rbi f the articulatlons calculated according to the equations (37) through (39).
The transformation matrices Ta, Tm, Tb are used to set the positions and postures of the coordinate systems Oi with respect to the base coordinate system Lo. With the elements of the transformation matrices Ta, Tm, Tb being indicated by tmn (m = l, 2, 3, n = l, 2, 3, 4), the transformation matri-ces Ta, Tm, Tb are given by:

rt,l(rai) -- tl~(rai) Ta =¦ .

t~;(rai) -- t;~(rai) O -- 1 - (40) ~tll(rmi) -- tl~(rmi) Tm =
t~l(rmi) -- t3~(rmi) O -- l --(41) tl ' (rbi) tl ~ (rbi) Tb =

tJ;(rbi) -- t3~ (rbi) O -- l -(42) (i = 1, 2, -- 6) Therefore, using the transformation matrices Ta, Tm, Tb a position A of the tool center point TCP at the start polnt A, a position M thereof at the middle point M, and a posi-tion B thereof at the end point B are calculated in a step 3d as follows:
A = Ta-h (43) M = Tm-h --t44) B = Tb-h (45) Then, the position Q of the center Q of an arc passing through the start point A, the middle point M, and the end point B is determined in a stPp 4d. A vector EMA
from the middle point M to the start point A and a vector EMB from the middle point M to the end point B are expressed by:
EMA = A - M --(46) EMB = B - M --(47) By using these vectors EMA, EMB, a vector V normal to the plane of a sector AMBQ is determined as follows:
V = EMA X EMB --( 48) Then, an angle ~ formed between the vector V determined by the equation ( 48) and a vector Z parallel to the axis Zo of the base coordlnate system Oo is determined. A vector W
normal to the vectors V, Z is then determined as follows:
W = V x Z (49~
A rotation matrix R~ around the vector W is determined from the angle ~. Then, by using the rotation matrix R~, vectors EMA*, EMB* produced by rotating the vectors EMA, EMB around the vector W are determined as follows:

13~ ~61 EMA* = R~-EMA
EMB* = R~-EMB --( 51) In this case, the sector AMBQ is rotated through the angle about the middle point M around the vector W until lt becomes parallel to the plane ~o - Yo of the base coordlnate system Oo. Therefore, a vector EMQ* from the middle point M
toward the new center Q* of the sector AMBQ which has been rotated can easily be calculated two-dimensionally. The vector EMQ from the middle point M to the center Q is deter-mined, using an inverse matrix of the rotation matrix R~ and the vector EMQ*, as:

EMQ = R~ l-EMQ* --( 52) As a consequence, the position Q of the center Q is given as:
Q = M + EMQ --(53) Then, the length q of an arc extending from the start point A through the middle point M to the end point B
is determined in a step 5d. The length q of the arc can be determined from the angle ~ AQB and the radius of the sec-tor AMBQ.
Intervals di of movement of the respective articu-lations for moving the tool center point TCP from the start polnt A to the end point B are calculated, using the equa-tions (37), ~39), as follows:

dl = rai - rbi in a step 6d. Then, the number N of interpolating points 131 106~

are determined according to the equations (27) through ~30) in steps 7d through lld. sy setting the interpolating num-ber N ln the manner described above, maximum interpolating data capable of being processed by the robot controller 20 can be generated, and hence the arc welding robot 14 can weld the workpiece 15 highly accurately.
Based on the interpolating number N thus determined, interpolating points D~ (j = 1, 2, -- N-l) from the start point A to the end point B for the tool center point TCP are determined. If ~ AQB = ~, then ~ DjQDj+l ( Q~) is expressed, using the interpolating number B, as:
~ /N --(55) A vector EQA from the center Q to the start point A, a vec-tor EQM from the center Q to the middle point M, and a vec-tor EQB from the center Q to the end point B are determined, and, by using these vectors EQA, EQM, EQB, vectors VAM, VMB, VQA are determined as follows:
EQA x EQM = VAM --(56) EQM x EQB = VMB
EQA x EQB = VQA (58) An optimum one of these vectors VAM, VMB, VQA is selected and referred to as VQ, the vector VQ being normal to the plane of the sector AMBQ. Then, a rotation matrix R~ for rotatlng the vector VQ through the angle ~ given by the equation (55) around the vector VQ is determined in a step 12d.

Subsequently, the positions and postures of the respectlve articulations at the interpolating points D~ (j =
1, 2, -- N-l) are determined using the rotation matrix R~
in a step 13d. Since the transformation matrices Ta for the start point A have already been determined according to the equatlon (40), transformation matrices Td~ for the interpo-lating points D~ are given by operating the rotation matrix R~ on the transformation matrices Ta as follows:
Tdj = (R~)i-Ta --(59) By inversely transforming the transformation matri-ces Td~, next angles rdi (i = 1, 2, -- 6) of the articula-tions with respect to the interpolating points Dj can be determined in a step 14d. Pulses PDj with respect to the interpolating points Dj are determined from the angles rdi as follows:

rdi PD; = (k i + k2i) kli (60) in a step 15d.
Then, the robot controller 20 applies the pulses PDi to the arc welding robot 14 to move the tool center point TCP to the interpolating points Dj in a step 16d.
Likewise, the steps 13d through 16d are repeated as many times as the interpolating number N to effect circular interpolation from the start point via the middle point to the end point.
During the above teaching process, pulse data for the respective robot axes are sampled and stored by posi-tioning the tool center point TCP of the welding torch on three reference points which are not present on one straight line and which are established on the welding converyor line. Any desired teaching points which do not lie on one straight line may be used as such teaching points.
After the teaching process for the arc weldlng robot 14 has been completed, the operator displays the main menu 80 shown in FIG. 3 on the LCD 70 of the teaching box 18. Then, the mode selection switch 56 is turned to posi-tion "2" to select the playback mode for thereby playing back the arc welding robot 14 so that the teaching data can be confirmed.
When the operation of the arc welding robot 14 according to the teaching data has been confirmed, the main menu 80 is displayed again on the LCD 70, and the key indi-cating "3" on the ten-key pad 60 is depressed to select the automatic mode. The arc welding robot 14 ls controlled by the sequencer 12 to weld the workpiece 15 based on the teaching data issued from the robot controller 20. Because the robot controller 20 holds the teaching data which have been preset in the teaching mode for the hydraulic motors 30, 34, 40, 44 and the hydraulic cylinder 38, the robot con-troller 20 can supply the data to the arc welding robot 14 at a high speed. Therefore, the arc welding operation can be effected highly speedily.
If a different lot of workpieces 15 are to be processed, or the arc welding robot 14 is dismounted from 1 3 1 ~

the welding conveyor line for maintenance, the tool center point TCP of the welding torch 46 may not be placed in a desired position on the workpiece 15. To avoid this problem, according to the present invention, the "BASE-MDI"
or "BASE-MDI " mode on the teaching mode menu 82 is selected to correct the teaching data. A process of correctlng the teaching data will be described below with reference to the flowchart of FIG. 10.
First, the operator displays the teaching mode menu 82 on the LCD 70, and selects the "sASE-MDI" mode, for example, after which the operator specifies the step number for a teaching point to be corrected and enters, through the ten-key pad 60, intervals ~X, ~Y, ~Z of movement of the tool center point TCP with respect to the workpiece 15 with ref-erence to the base coordinate system Oo.
The robot controller 20 receives present pulses Pi (i = 1, 2, - 6) from the potentiometers of the arc welding robot 14, and determines, from the received pulses Pi, pre-sent angles ri Of the respective articulations with respect to the ad~acent coordinate systems O, through O~ according to the equation (1) in a step le.
Then, transformation matrices T according to the equation (2) are calculated in a step 2e from the present angles ri calculated according to the equation (1).
The transformation matrices T are used to calculate a pre-sent position C of the tool center point TCP according to the equation (4) in a step 3e.

The robot controller 20 reads the intervals ~X, AY, AZ entered by the operator as correcting data for the teach-ing data in a step 4e, and determines a new positlon C' for the tool center point TCP by using the intervals ~X, ~Y, ~z in a step 5e. More specifically, the new position C' for the tool center point TCP is determined by:

C'x = CX - ~X --(61a) c'y = cy - ~Y --(61b) c'z = cz - ~Z (61c) where cx, cy, cz are the components of the present position C ln the dlrectlons Xo, Yo, Zo, respectively, and c'x, c'y, c'z are the components of the new position C' ln the dlrec-tions Xo, Yo, Zo, respectlvely.
Then, transformatlon matrlces T' when the tool cen-ter point TCP ls moved to the new position C' are determlned according to the equatlon (1) ln a step 6e, and next angles rl' (i = 1, 2, 6) of the respective articulations asso-ciated with the coordinate systems Ol through O~ are deter-mined by inversely transformlng the transformation matrices T' in a step 7e. As a result, next pulses Pi' after the teaching data have been corrected are determined from the angles ri' according to the equation (2) in a step 8e.
Then, the robot controller 20 stores the pulses Pi' deter-mined in the step 8e as corrected teaching data in the memory thereof in a step 9e. The above process is repeated for all teaching points which are to be corrected, thus pro-~2 -viding corrected teaching data about desired position and posture.
While the tool center point TCP is positionally corrected with reference to the base coordinate system oo in the above embodiment, it is also possible to correct the position of the tool center point TCP and the posture of the welding torch 46 with reference to the hand coordinate sys-tem Oe defined at the tool center point TCP. In this case, the operator selects the "HAND-MDI~ mode from the teaching mode menu 82 displayed on the LCD 70, and enters intervals of movement of the tool center point TCP as viewed from the hand coordinate system Oe through the ten-key pad 60. the subsequent steps are executed, for obtaining desired pulses for the respective articulations. Since the intervals of movement of the tool center point TCP are measured with ref-erence to the hand coordinate system Oe fixed to the tool center point TCP, the operator can set the intervals of movement more easily than if the base coordinate system Oo is used. In this procedure, after the intervals of movement along the axes Xe, Ye, Ze of the hand coordinate system Oe have been set in the step 4e, these intervals are converted to intervals ~X, ~Y, ~Z as viewed from the base coordinate system Oo, and then the step Se and the subsequent steps are executed, for obtaining desired pulses for the respective articulatlons.
In the present embodiment, the teaching data can be corrected by selecting the editing mode selected from the t 31 1 ~61 main menu 80. A process of correcting the teaching data in the editing mode will be descrlbed below with reference to the flowchart shown in FIGS. lla and llb.
The operator displays the main menu 80 on the LCD
70, and enters "4" from the ten-key pad 60 to convert old teaching mode to new teaching mode (three-dimensional shifting) in the editing mode.
The robot controller 20 determines the positions of three reference points which do not lie on a single straight light, from old teaching data, in a step lf. The data of the reference points are held as pulses Pi. Present angles ri Of the respective articulations associated with the adja-cent coordinate systems 0I through 6 are determined from the pulses Pi according to the equation (13. Transformation matrices T are then calculated from the angles ri, and the positions F of the reference points in the old teaching data are calculated from the transformation matrices T according to the equation:
F = T-h - a-hO + b (62) where a indicates the elements in four rows and three col-umns on the lefthand side of the transformation matrices T
and b indicates the elements in four rows and one column on the righthand side of the transformation matrices T.
Then, the tool center point TCP of the welding torch 36 is moved to the three reference points used when the old teaching data are generated, in a step 2f, and the positions G of the tool reference point TCP in the reference points are determlned in a step 3f. The positions G of the tool center point TCP can be determined in the same manner as in the step lf.
After the above preparatory operation is finished, the robot controller 20 compares the positions F of the ref-erence points in the old teaching data and the positions G
of the tool center point TCP after the teaching data are corrected, to calculate a transformation matrix TM for gen-erating new teaching data. The procedure of calculating the transformatlon matrix TM will be described below with refer-ence to FIGS. 12a through 12c. It is assumed that the posi-tions F of the three reference points with respect to the base coordinate system Oo are indicated by Fl, F2, F3, respectively, and the positions G of the tool center point TCP after the data are corrected are indicated by G,, G2, G~, respectively.
First, a transformation matrix T, for translating the position Gl to the origin of the base coordinate system Oo is determined in a step 4f (see FIG. 12a). Then, the positions F,, F2, F3, G,, G2, G3 are translated in a step 5f by using the transformation matrix T, which has been deter-mined in the step 4f. Positions Fl*, F2*, F3*, G,*, G2*, G,* reached after the translation are expressed by:
Fj* = TIFj (63) Gj* = T,Gj (64) (j = l, 2, 3) Then, a transformation matrix Tz for translating the posi-tion Fl* to the position G,* is determined in a step 6f ~see FIG. 12b). The positions Fl*, F2*, F3* are translated by using the transformation matrix Tz in a step 7f, and posi-tions Fl**, F2**, Fa** reached after the translation are defined by:
Fj** = T2Fj* (65) (j = 1, 2, 3) AS a result, a triangle ~ having the positions Fl, F2, F3 at the respective corners and a triangle having the posi-tions G,, G,, G3 at the respective corners are located in the base coordinate system Oo with the positions F,**, Gl*
lying on the origin of the base coordinate system oo (see FIG. 12b).
A vector VF normal to the triangle 6 and a vector VG normal to the triangle E are determined in a step 8f.
Assuming that a vector extending from F,** to F~** is indi-cated by F,l**~ a vector extending from Fl** to F,** is indicated by F,~**, a vector extending from G,* to G2* is indicated by Gl,*, and a vector extending from Gl* to G3* is indicated by G,3*, the vectors VF, VG are expressed by:
VF = F, 2** X Fl3** (66) VG = G, 2* X Gll* --(67) The outer product of the vectors VF, VG is determined in a step 9f as a vector Vv as follows:

VV = VF x VG (68) An angle ~I formed between the vectors VF, VG is then deter-mined in a step lOf. A rotation matrix R, for rotating the triangle 6 about the vector Vv is determined from the angle in a step llf.
Using the rotation matrix Rl, the positions F2**, F,** are rotated about the vector Vv through the angle ~l in a step 12f. At this time, the triangles ~, ~ lie on the same plane (see FIG. 12c). The rotated positions F2**, F3**
are expressed as Fz***, FJ***, respectively, which are given by:
F2*** = RIF2** (69) F~*** = RIF3** --(70) Then, an angle ~2 formed between a vector Fl 2***
extending from Fl** to F2*** and a vector G, 2* extending from G~* to G2* iS determined in a step 13f. A rotation matrix R2 for rotating the triangle 6 about the vector VG
through the angle ~ 2 iS determined from the angle ~ 2 ln a step 14f. Using the rotation matrix R2, the positions F~***, F,*** are rotated about the vector VG through the angle l to bring the triangles 6, ~ into superposed relation. The transformation matrix TM is then determined from the matrixes determined in the steps 4f, 6f, llf, 14f as follows:

M - 2 ~ 2 1 ''-( New teaching data can be generated by operating the trans-formation matrix TM on the old teaching data in a step 16f.

In some instances, if the workpiece 15 to be welded by the arc welding robot 14 has a partly different shape, the welding torch 46 or another portion of the arc welding robot 14 may physically interfere with the workpiece 15.
Should this happen, the welding torch 46 must be replaced with another welding torch of different dimensions.
According to the present embodiment, the parameter setting mode is selected from the main menu 80, and dimensional data of the new welding torch 46 are entered to correct the teaching data. A process of generating teaching data for a new welding torch will be described below with reference to the flowchart of FIG. 13.
The operator first selects the "PARA" mode from the main menu 80 displayed on the LCD 70, and enters the welding torch dimensional data through the ten-key pad 60.
First, the robot controller 20 receives pulses Pi (i = 1, 2, -- 6) representing the present posltion from the non-illustrated potentiometers mounted on the hydraulic motors 30, 34, 40, 44 and ~he hydraulic cylinder 38 of the arc welding robot 14. Then, the robot controller 20 determines, from the received pulses Pi, present angles ri of the respective articulations with respect to the ad~acent coordinate systems o, through Q6 according to the equation (1) in a step lg.
Then, transformation matrices T are calculated from the present angles ri according to the equation (2) in a step 2g. The transformation matrices T are used to ~alcu-late a present position C of the tool center point TCP
according to the equatlon (4) in a step 3g.
The robot controller 20 determines whether there is an end effector change command from the teaching box 18 in a step 4g. If no end effector change command is received, the present pulses Pi are held in a step 5g.
If the parameter setting mode is selected on the teaching box 18, the robot controller 20 reads data entered from the ten-key pad 60 as dimensional data of a new welding torch which replaces the existing welding torch, in a step 6g. The dimensional data are defined as a vector h' com-posed of components hl', h2', h3', the vector h' being given by:

h' = ~ h''~ ~ [ ho ~
1 - (72) Transformation matrices T' with respect to the coordlnate system I when the new welding torch is employed are defined as:

T' - [a' I b'] ...(73) Since the position of the tool center point TCP and the pos-ture of the new welding torch must be the same as the posi-tion of the tool center point TCP of the old welding torch 46 and the posture of the oil welding torch 46, respectively, we get:

1 3t 1 061 T'-h' = a'-ho' + b' = C (74) a' = a ,..
Therefore, from the equations (4), (74), and (75), a~-ho' + b' = a-hO + b ~ence, b' = a (ho ~ ho ' ) + b --(76~
As a consequence, the transformation matrices T' are deter-mined in a step 7g from the equation (73) as follows:
T' = [a ¦ a' (ho - hol) + b] (77) By inversely transforming the transformation matri-ces T', next angles ri' (i = 1, 2, -- 6) of the articula-tions associated with the respective coordinate systems O, through 0~ can be determined in a step 8b. As a result, next pulses Pi' are determined from the angles ri' according to the equation (12).
The robot controller 20 stores the pulses Pi' as corrected teaching data in the non-illustrated memory thereof. The above process is repeated with respect to all teachlng points to generate teaching data for the new weld-ing torch.
With the present invention, as described above, an end effector of an articulated robot is moved while flxing the posture of the end effect at its tool center point, by using the coordinate transformation matrices of articula-tlons and moving vectors for the tool center point. The end effector can be moved while being maintained at a constant posture with respect to a workpiece~ Data on the conditions of the articulations can easily be calculated, at the tlme of teaching the robot, by employing new coordinate transfor-mation matrices which are set by the coordinate transforma-tlon matrices and the moving vectors. Therefore, the time required to calculate the data is shortened, and the speed of operation of the robot when it is played back is increased.
The posture of the end effector can be varied while fixing the position of the tool center point by using coor-dinate transformation matrices and a rotation matrix which is established from changes in the posture of the end effe-ctor from reference coordinates. Data on the conditions of the articulations can easily be calculated, at the time of teaching the robot, by employing new coordinate transforma-tion matrices which are set by the coordinate transformation matrices and the rotation matrix. Therefore, the time required to calculate the data when teaching the robot is shortened, and the speed of operation of the robot when it is played back is increased. Since teaching data are deter-mlned by using the coordinate transformation matrices and the rotation matrix, it is highly facilitated to transform data into another coordinate system. When varying the pos-ture of the end effector, it is possible to select a desired coordinate system, and the efficiency of operation is increased.

1 3 t 1 06 1 Furthermore, lnterpolating points between two points given in a teaching process are determined by divid-ing the posltions of the two points and the postures at the two points by a prescribed interpolating number.
Consequently, inasmuch as the posture of the end effector with respect to the workpiece is smoothly varied between the two points, it is possible to establish the posture of the end effector at the interpolating points with respect to the workplece highly easily and accurately, so that highly accu-rate operation of the robot is made possible.
Interpolating points for effecting circular inter-polation between three ad~acent points given in a teaching process are determined by dividing the distances between the three points by a prescribed interpolating number while tak-ing into account the posture of the end effector.
Consequently, as the posture of the end effector with respect to the workpiece is smoothly varied between the three points, the posture of the end effector at the inter-polating points with respect to the workpiece can be estab-lished highly easily and accurately, so that highly accurately robot operation is rendered possible.
Moreover, for correcting teaching data for a robot, the lnterval of movement of the tool center point of an end effector with respect to the workpiece is determined before the teaching data are corrected, and the teaching data are corrected based on the determined interval of movement. It , . ... ~ . .

1 31 1 ~61 is not necessary to teach the robot again for correcting the data, and hence the process of correcting the data ls quite slmple and easy to perform. secause it does not take a long time to generate data, the production line incorporat-ing the robot is not adversely affected by the data correct~
ing process, and the operating efficiency of the production line is increased. Since the teaching data are corrected while taklng into account the posture o~ the end effector, it is possible to enable the robot to operate highly accurately.
Coordinate transformation matrices are determined from the positions of three reference points before teaching data are corrected and the positions of the tool center point of the end effector when the end effector is moved to the reference points, and new teaching data are prepared by using the coordinate transformation matrices. It is not necessary to teach the robot again for correcting the data, and hence the process of correcting the data is quite simple and easy to perform. Because coordinates are translated and rotated with reference to the tool center point of the end effector, the position of the tool center point and the pos-ture of the end effector with respect to a workpiece are accurately corrected, and highly accurate operation can be continued by using the corrected teaching data. Because it does not take a long time to generate data, the production line incorporating the robot is not adversely affected by 131 tO61 the data corrPcting process, and the operating efficiency of the productlon line is increased.
When the end effector of a robot is replaced, teaching data are corrected on the basis of the dimensional data of the old end effector and the dimensional data of a new end effector~ Accordingly, it is not necessary to teach the robot again for correctlng the data, and hence the proc-ess of correcting the data is quite simple and easy to perform. Because it does not take a long time to generate data, the production line incorporating the robot is not adversely affected by the data correcting process, and the operating efficiency of the production line is increased.
Although certain preferred embodiments have been shown and described, it should be understood that many changes and modlflcations may be made therein without departlng from the scope of the appended claims.

Claims (10)

1. A method of teaching an articulated robot, including a plurality of articulations and an end effector having a tool center point, comprising the steps of:
determining a first coordinate transformation matrix for transforming coordinates between the articulations from condition data of the articulations, said condition data comprising pulses produced by potentiometers mounted on the articulated robot;
calculating a present position of the tool center point based on said first coordinate transformation matrix;
determining a moving vector from said present position of the tool center point to a next position thereof;
determining a second coordinate transformation matrix for further transforming coordinates between the articulations so that a posture of the end effector at said next position of the tool center point, which is calculated based on said first coordinate transformation matrix and said moving vector, will coincide with a posture of the end effector at said present position of the tool center point;
moving the articulations according to said further transformed coordinates; and calculating new condition data of the articulations from said second coordinate transformation matrix.
2. A method of teaching an articulated robot, including a plurality of articulations and an end effector having a tool center point, comprising the steps of:
determining a first coordinate transformation matrix for transforming coordinates between the articulations from condition data of the articulations, said condition data comprising pulses produced by potentiometers mounted on the articulated robot;

calculating a present position of the tool center point based on said first coordinate transformation matrix;
determining a rotation matrix with respect to a reference coordinate system for displacing a posture of the end effector at said present position of the tool center point;
determining a second coordinate transformation matrix for further transforming coordinates between the articulations so that the end effector with said displaced posture, which is calculated based on said first coordinate transformation matrix and said rotation matrix, coincides with said present position of the tool center point;
moving the articulations according to said further transformed coordinates; and calculating new condition data of the articulations from said second coordinate transformation matrix.
3. A method of teaching an articulated robot, including a plurality of articulations and an end effector having a tool center point, for effecting linear interpolation between first and second teaching points, said method comprising the steps of:
determining a first coordinate transformation matrix and a second coordinate transformation matrix for the first and second teaching points, respectively, from condition data of the articulations, for transforming coordinates between the articulations, said condition data comprising pulses produced by potentiometers mounted on the articulated robot;
calculating a position of the tool center point at the first and second teaching points based on said first and second coordinate transformation matrices, respectively;
determining an interpolating number for dividing a determined distance between the first and second teaching points at intervals;

determining a cumulative change in a position of the tool center point and a cumulative change in a posture of the end effector as the end effector moves from the first teaching point to the second teaching point;
dividing said cumulative change in position and said cumulative change in posture by said interpolating number to determine incremental changes of position of the tool center point and incremental changes of posture of the end effector at respective interpolating points between the first and second teaching points;
determining corresponding positions of the tool center point and corresponding postures of the end effector at said respective interpolating points by using said incremental changes of position of the tool center point and said incremental changes of posture of the end effector between said respective interpolating points; and moving the articulations along said corresponding positions and postures according to said transformed coordinates.
4. A method of teaching an articulated robot, including a plurality of articulations and an end effector having a tool center point, for effecting circular interpolation between first, second, and third teaching points, said method compris-ing the steps of:
determining first, second, and third coordinate transformation matrices for the first, second, and third teach-ing points, respectively, from condition data of the articula-tions, for transforming coordinates between the articulations, said condition data comprising pulses produced by potentio-meters mounted on the articulated robot;
calculating a position of the tool center point at the first, second, and third teaching points based on said first, second and third coordinate transformation matrices, respectively;

determining a center and a length of an arc extending from the first teaching point through the second teaching point to the third teaching point;
determining an interpolating number for dividing said arc at intervals based on said length of said arc;
determining an angle formed between a vector extend-ing from said center to the first teaching point and a vector extending from said center to the third teaching point;
dividing said angle by said interpolating number to determine a change in a direction of a vector extending from said center to an interpolating point;
determining a rotation matrix for said vector extend-ing to said interpolating point based on said change in said direction;
operating said rotation matrix successively on said coordinate transformation matrices with respect to said first teaching point to determine respective positions of the tool center point and respective postures of the end effector at corresponding interpolating points; and moving the articulations along said respective positions and postures according to said transformed coordinates.
5. A method of teaching an articulated robot, having a plurality of articulations and an end effector having a tool center point, for correcting a position of the tool center point, comprising the steps of:
determining a coordinate transformation matrix for transforming coordinates between the articulations from condition data of the articulations, said condition data comprising pulses produced by potentiometers mounted on the articulated robot;
calculating a position of the tool center point before it is corrected, based on said coordinate transformation matrix;

determining an interval of movement of the tool center point with respect to a workpiece to be processed by the articulated robot;
calculating a position of the tool center point after it is corrected, from said position of the tool center point before it is corrected and said interval of movement;
determining a new coordinate transformation matrix for transforming coordinates between the articulations from said position of the tool center point after it is corrected;
moving the articulations according to said transform-ing coordinates corresponding to said new coordinate trans-formation matrix; and calculating new condition data of the artculations from said new coordinate transformation matrix.
6. A method of teaching an articulated robot, including a plurality of articulations and an end effector having a tool center point, for correcting old teaching data of the articu-lated robot, comprising the steps of:
determining positions of three reference points corresponding to the old teaching data, which are not present on one straight line and which are selected prior to correction of the teaching data based on condition data comprising pulses produced by potentiometers mounted on the articulated robot;
determining three new positions for the tool center point, corresponding to correction of teaching data, by moving the tool center point to said three new positions;
determining a coordinate transformation matrix for transforming coordinates of the tool center point to said three new positions based upon said three reference points of the old teaching data and said three new positions;
operating said coordinate transformation matrix on the old teaching data for correction thereof; and moving the articulations according to transformed coordinates corresponding to said corrected teaching data.
7. A method according to claim 6, further comprising the step of:
determining said coordinate transformation matrix so that a triangle having said three positions of said three reference points at respective corners thereof is superposed on a triangle having said three positions for the tool center point at respective corners thereof.
8. A method of teaching an articulated robot, having a plurality of articulations and a first end effector of a first shape having a tool center point, for replacing the first end effector with a second end effector of a second shape, compris-ing the steps of:
determining a coordinate transformation matrix for transforming coordinates between the articulations from condi-tion data of the articulations, said condition data comprising pulses produced by potentiometers mounted on the articulated robot;
calculating a position of the tool center point of the first end effector based on said coordinate transformation matrix and dimensional data indicative of the first shape of the first end effector;
determining a new coordinate transformation matrix for transforming coordinates between the articulations so that a position of the tool center point of the second end effector and a posture of the second end effector will coincide respec-tively with said position of the tool center point of the first end effector and a posture of the first end effector; and moving the articulations according to said transform-ing coordinates corresponding to said new coordinate trans-formation matrix; and calculating new condition data of the articulations from said new coordinate transformation matrix.
9. The method of teaching an articulated robot of claim 3, said step of determining an interpolating number comprising the steps of:
calculating first and second interpolation numbers based upon a time period corresponding to the articulation which requires the longest time to move between the first and second teaching points and the maximum speed in which the articulated robot can be operated, respectively;
selecting a larger of said first and second interpo-lation numbers; and generating said interpolating number as said selected larger interpolation number multiplied by a ratio of said maximum speed to a desired speed of the tool center point.
10. The method of teaching an articulated robot of claim 4, said step of determining an interpolating number comprising the steps of:
calculating first and second interpolation numbers based upon a time period corresponding to the articulation which requires the longest time to move between the first and second teaching points and the maximum speed in which the articulated robot can be operated, respectively;
selecting a larger of said first and second interpolation numbers; and generating said interpolating number as said selected larger interpolation number multiplied by a ratio of said maximum speed to a desired speed of the tool center point.
CA000600393A 1989-05-23 1989-05-23 Method of teaching a robot Expired - Fee Related CA1311061C (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CA000600393A CA1311061C (en) 1989-05-23 1989-05-23 Method of teaching a robot

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CA000600393A CA1311061C (en) 1989-05-23 1989-05-23 Method of teaching a robot

Publications (1)

Publication Number Publication Date
CA1311061C true CA1311061C (en) 1992-12-01

Family

ID=4140085

Family Applications (1)

Application Number Title Priority Date Filing Date
CA000600393A Expired - Fee Related CA1311061C (en) 1989-05-23 1989-05-23 Method of teaching a robot

Country Status (1)

Country Link
CA (1) CA1311061C (en)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN114237054A (en) * 2021-12-18 2022-03-25 福州大学 6D interaction control method of aerial robot

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN114237054A (en) * 2021-12-18 2022-03-25 福州大学 6D interaction control method of aerial robot

Similar Documents

Publication Publication Date Title
US5053976A (en) Method of teaching a robot
EP0158447B1 (en) System for controlling a robot in association with a rotary table
EP0577437B1 (en) Control apparatus for industrial robot
US5020001A (en) Robot controller
EP1644782B1 (en) Multiple robot arm tracking and mirror jog
US4621333A (en) Method and apparatus for controlling a robot to perform weaving-like motion
JPH01301082A (en) Welding robot
WO1991004522A1 (en) Synchronized teaching of a robot cell
KR960001962B1 (en) Method of controlling tool attitude of a robot
US4706000A (en) Tool posture control system
JP2728399B2 (en) Robot control method
CA1311061C (en) Method of teaching a robot
US4831235A (en) Automatic welding machine torch movement control system
JPS6054011A (en) Position control method of industrial robot
GB2232504A (en) Method of teaching a robot
JP3359011B2 (en) Spot welding robot
JP2750739B2 (en) Industrial robot controller
JPH01175608A (en) Method for generating teaching data of robot
JPH01188903A (en) Correcting method for robot teaching data
JP2572093B2 (en) Robot teaching method
JPS6214845B2 (en)
JPH06259119A (en) Industrial robot controller
JPH09244723A (en) Teaching data generation method for industrial robot, teaching data generation device for industrial robot and industrial robot system
JPH05505893A (en) How to control the robot cell path
JPH0346250B2 (en)

Legal Events

Date Code Title Description
MKLA Lapsed