|
Description  |
|
|
BACKGROUND OF THE INVENTION
1.Field of the Invention
This invention relates to a method of controlling an industrial robot and,
more particularly, to an industrial robot arc control method for
subjecting the position of a working member to circular-arc control by
interpolation while controlling the target angle of the working member
with respect to a surface to be worked, where the working member is
mounted on the wrist of an industrial robot.
2. Description of the Related Art
Industrial robots have found extensive use in recent years and are capable
of performing increasingly sophisticated operations. These industrial
robots have the capability to carry out a variety of tasks depending upon
the kind of working member mounted at the distal end of the wrist thereof.
Control of the robot differs depending upon the kind of task.
FIG. 1 is a view showing the construction of a common industrial robot. The
illustrated robot is an articulated robot with movement along five axes.
More specifically, the industrial robot depicted in FIG. 1 comprises a
base BS which rotates about an axis E, a body BD which rotates about an
axis D with respect to the base BS, an arm ARM which rotates about an axis
C with respect to the body BD, and a wrist HD which rotates about an axis
B with respect to the arm ARM, and which further rotates about an axis A.
The robot is therefore an articulated robot having three fundamental axes
and two wrist axes, for a total of five axes. An industrial robot of this
kind controls the position and travelling velocity of the wrist HD by
effecting control along the five axes, and performs a desired task using a
working member mounted on the wrist HD. The kind of task and the type of
control differ depending upon the type of working member, such as a hand
or torch, mounted on the wrist HD. By way of example, an industrial robot
for arc welding has a torch mounted at the tip of the wrist HD to serve as
the working member, and the surface of a workpiece to be worked is
subjected to arc welding along a desired path by means of the torch. In
arc welding of this kind or in an operation such as gas cutting, there is
the danger of a non-uniform welding or cutting operation unless the angle
(target angle) of the torch or working member with respect to the
workpiece surface is set to an optimum value. The robot therefore requires
that the absolute angle of the torch be controlled by the wrist HD in
dependence upon the inclination of the workpiece surface.
More specifically, the robot wrist HD has the rotational axis B with
respect to the arm ARM, as well as the rotational axis A for the wrist
itself, as shown in FIG. 2(A). When a torch TC is mounted at the distal
end of the wrist as shown in FIG. 2(B), the target angle of the torch TC
is capable of being varied to assume values of .beta..sub.1, .beta..sub.2
and .beta..sub.3 by rotating the wrist about the axis B.
In a case where the workpiece has an arcuate shape, it is necessary to move
the tip of the torch along a circular arc. Consequently, in the prior art,
as shown in the explanatory view of FIG. 3, the positions of three points
P1, P2 and P3 of the torch tip with respect to the arcuate surface of a
workpiece WK to be worked are taught with the target angle .beta..sub.1
being held constant, an interpolated point Pn is obtained from the taught
points P1, P2 and P3 by an interpolation method, and arc travel control is
performed by controlling the robot about each of its axes of motion in
such a manner that the torch tip reaches the interpolated point Pn.
With such arc travel control, however, it is difficult to control the
target angle of the torch TC with respect to the work surface, the target
angle cannot be held constant during circular interpolation and cannot be
varied at each of the taught points. Moreover, according to such
conventional control, smooth and continuous control of the target angle of
the torch TC with respect to the work surface is difficult to carry out.
SUMMARY OF THE INVENTION
An object of the present invention is to provide an industrial robot
circular arc control method which makes it possible to control the target
angle of a working member such as a torch mounted on the wrist of a robot
when controlling the arcuate movement of the working member by
interpolation.
The industrial robot circular arc control method of the present invention
uses an industrial robot which possesses a plurality of motion axes along
which motion is effected by a plurality of respective motors, and a
control unit for controlling the motors of the robot. The control unit
obtains corresponding points of the tip and base of a working member at
plural taught points for circular-arc control of the tip of the working
member, which is mounted on a wrist of the robot. The control unit also
finds interpolated points of the tip of the working member by
interpolation from the corresponding points of the tip of the working
member and finds interpolated points of the base of the working member by
interpolation from the corresponding points of the base of the working
member. The control unit further obtains motion command quantities for the
respective motion axes from both sets of the interpolated points obtained,
and controls the motors on the basis of the command quantities. Therefore,
according to the present invention, the target angle (attitude) of the
working member mounted on the robot wrist can be controlled, and such
control of the target angle can be executed by interpolation. Control can
therefore be achieved with ease. Hence, in accordance with the invention,
the target angle of the working member mounted on the robot wrist can be
controlled continuously during motion of the working member. Therefore, in
cases where the invention is applied to a welding or gas-cutting robot,
welding or cutting conditions can be controlled in a uniform fashion to
improve the quality of the particular activity.
BRIEF DESCRIPTION OF THE DRAWINGS
FIG. 1 is a view showing the construction of an industrial robot.
FIG. 2(A) and 2(B) are views for explaining target angle control;
FIG. 3 is a view for describing a conventional circular arc control method;
FIG. 4 is a view for describing a circular arc control method according to
the present invention;
FIG. 5 is a view showing the manner in which a torch is mounted on the
wrist of a robot;
FIG. 6 is a block diagram of an embodiment of a robot control apparatus for
practicing the circular arc control method according to the present
invention.
DESCRIPTION OF THE PREFERRED EMBODIMENTS
The present invention will now be described in conjunction with the
accompanying drawings to set forth the invention in greater detail.
FIG. 4 is a view for describing a control method according to the present
invention, and FIG. 5 is a view showing the manner in which a torch is
mounted on the wrist of a robot.
In accordance with the present invention, the method includes creating
taught data by positioning, at respective predetermined target angles
.beta..sub.1 through .beta..sub.3, the tip of a torch at points P1, P2 and
P3 on a circular arc C1 defining the surface of a workpiece to be worked,
as shown in FIG. 4, measuring the respective positions (.sub..DELTA.
x.sub.1, .sub..DELTA. y.sub.1, .sub..DELTA. z.sub.1), (.sub..DELTA.
x.sub.2, .sub..DELTA. y.sub.2, .sub..DELTA. z.sub.2) of the tip A1 and a
base end A2 of a torch TC in a Cartesian coordinate system Xa-Ya-Za when
the rotational angle of the robot about the axis A is zero, as shown in
FIG. 5, and storing these positions in memory. In the Cartesian coodinate
system Xa-Ya-Za, a predetermined point Q in the plane of the hand of the
wrist HD is taken as the origin, the axis orthogonal to the plane of the
hand and passing through the point Qt is taken as the Xa axis, and the
axes orthogonal to the Xa axis and passing through the point Qt are taken
as the Ya and Za axes.
This is followed by finding the positions (.sub..DELTA. x'1, .sub..DELTA.
y'1, .sub..DELTA. z'1), (.sub..DELTA. x'2, .sub..DELTA. y', .sub..DELTA.
z'2) of the tip A1 and base A2, respectively, of the torch C1 at each
taught point, where (.sub..DELTA. x'1, .sub..DELTA. y'1, .sub..DELTA.
z'1), (.sub..DELTA. x'2, .sub..DELTA. y'2, .sub..DELTA. z'2) are positions
in the coordinate system Xa-Ya-Za. For example, in the example of FIG. 5,
(.sub..DELTA. x.sub.1, .sub..DELTA. y.sub.1, .sub..DELTA.
z.sub.1)=(x.sub.1, 0, 0) and (.sub..DELTA. x.sub.2, .sub..DELTA. y.sub.2,
.sub..DELTA. z.sub.2)=(x.sub.2, 0, z.sub.2). Therefore, if the angle of
rotation about the axis A at the taught points is a.sub.i, then these
positions will be given by the following:
##EQU1##
Thereafter, taught position vectors in a revolute coordinate system at
respective ones of the taught points are found from the above equations by
using a well-known coordinate transformation matrix J:
##EQU2##
It should be noted that X, Y, Z represent the position of the reference
point Qt in the plane of the hand in the robot coordinate system, and a,
b, c represent a vector normal to the plane of the hand.
This is followed by finding, from Eqs. (3), (4) below, a torch tip position
vector S and a torch base position vector R in the robot coordinate system
by using a taught position vector Q.sub.ti at the taught point as well as
the tip and base position vectors of the torch TC at each of the taught
points given by the Eqs. (1), (2) above:
##EQU3##
From the foregoing we may obtain position vectors S1, S2, S3 and R1, R2, R3
of the torch tip points P1, P2, P3 and torch base points Q1, Q2, Q3,
respectively.
Next, the center 0.sub.1 and central angle .theta..sub.1 of a circular arc
C1 are found from the position vectors S1, S2, S3 of the torch tip, and
the length m of the circular arc P1P3 is found from the central angle
.theta..sub.1 and from the radius of the arc. Furthermore, since a travel
velocity F is given in the teaching operation, the interpolation time T of
the circular arc is given by the following:
T=m/F (5)
Therefore, the angular velocity .omega..sub.1 along the circular arc C1 is
given by:
.omega..sub.1 =.theta..sub.1 /T (6)
and the interpolation angle .sub..DELTA. .theta..sub.1 of each interpolated
point Pi is given by the following equation:
.sub..DELTA. .theta..sub.1 =.omega..sub.1.sub..DELTA. T (7)
(where .sub..DELTA. T represents unit time).
When the interpolation angle .sub..DELTA. .theta..sub.1 is found in this
manner, the coordinates (position vectors) Si of the respective
interpolated points Pi are obtained by calculation.
Next, the angular velocity .omega..sub.2 of the circular arc Q1Q3 is found
in accordance with the following:
.omega..sub.2 =.omega..sub.1 .multidot.(.theta..sub.2 /.theta..sub.1) (8)
from each of the central angles .theta..sub.1, .theta..sub.2 and from the
angular velocity .omega..sub.1 along the circular arc P1P3.
As in Eq. (7), an interpolation angle .sub..DELTA. .eta..sub.2 is found
from the following:
.sub..DELTA. .theta..sub.2 =.omega..sub.2 .multidot..sub..DELTA. T (9)
and the coordinates (position vectors) Ri of the respective interpolated
points Q.sub.i are found in a manner similar to that described above.
Thereafter, a torch inclination vector l is found from the following
equation:
l=Ri-Si (10)
When l and Si have been found, robot position data in the revolute
coordinate system are found by using a well-known transformation matrix
for an inverse transformation from the Cartesian coordinate system to the
revolute coordinate system. The robot is driven based on these data.
Thenceforth, the position vectors Si, Ri and the inclination vector l at
the above-mentioned interpolated points Pi, Qi (i=1, 2, . . . ) are found
in successive fashion, robot position data in the revolute coordinate
system are found using these vectors, and the robot is driven on the basis
of these position data. When this is done, the tip of the torch travels
while traversing the circular arc C1, and the target angle becomes
.beta..sub.1, .beta..sub.2 and .beta..sub.3 at the respective taught
points and changes smoothly from .beta..sub.1 to .beta..sub.2 and from
.beta..sub.2 to .beta..sub.3 between mutually adjacent taught points.
Assuming that teaching is performed with the target angle being held
constant, the tip of the torch will move along a circular arc without any
change in the target angle.
Described next will be the construction of a robot control unit for
practicing the method of the present invention.
FIG. 6 is a block diagram illustrating an embodiment of a robot control
unit for practicing the present invention. In the Figure, numerals 100A,
110B, 100C, 100D and 100E denote motors for producing rotation about the
axes A, B, C, D and E of the robot. Numerals 101A through 101E designate
pulse distributing sections corresponding to the respective axes A through
E. The pulse distributing sections, respectively include pulse
distributors 110A through 110E for generating distributed pulses Ps the
number of which is dependent upon movement commands for the axes A through
E, and acceleration-deceleration circuits 111A through 111E which apply
acceleration-deceleration control to the distributed pulses to produce
command pulses Pi. Numerals 102A through 102E represent drive circuits
corresponding to the respective axes A through E. The drive circuits,
respectively, include error calculating and storage units (error counters)
112A through 112E for calculating and storing the difference (error)
between the command pulses Pi, received from the respective
acceleration-deceleration circuits 111A through 111E of the pulse
distributors 101A through 101E, and feedback pulses FP provided by
respective position sensors (not shown) of the motors 100A through 100E.
Also included in the drive circuits are digital-analog; (DA) converters
113A through 113E for converting the error Er, which results from the
calculations performed by the error counters, into an analog quantity to
generate a velocity command Vc, and velocity control circuits 114A through
114E for producing a difference between the velocity command Vc and an
actual velocity TSA provided by respective velocity sensors (not shown)
for the motors 100A through 100E. To simplify the drawing, the pulse
distributor and other components constituting each of the pulse
distribution sections 101B through 101E and drive circuits 102B through
102E are not shown. Numeral 103 denotes a robot controller constituted as
a microcomputer and comprising an arithmetic circuit (processor) 104 for
performing processing based on a control program described below, and a
program memory 105 for storing the control program as well as necessary
parameters. Also included are a data memory 106 for storing control data
and calculation data and an operator's panel 107 having teach buttons as
well as other control buttons and status indicators. Input/output ports
108A through 108E for performing an exchange of data with the pulse
distributing sections 101A through 101E for the respective axes A through
E of the robot, and an address/data bus 109 interconnecting the foregoing
components are also included. Control programs stored in the program
memory 105 include a position control program for producing control data
to positionally control the motors of the axes A through E, and a teach
control program for controlling movement of the axes in accordance with
jog button feed, which is dependent upon a teach mode command, and for
creating taught control data.
The operation of the arrangement embodied in FIG. 6 will now be described.
In and ordinary operating mode, control data (the taught points P1 through
P3 and Q1 through Q3), which have already been provided by a teaching or
other main controller and stored in the data memory 106, are read out of
the memory in sequential fashion by the processor 104 in accordance with
the position control program in the program memory 105.
More specifically, for the interpolation calculation, the processor 104
finds the central angles .theta..sub.1 and .theta..sub.2 from the taught
points P1 through P3 and Q1 through Q3 by calculation, and calculates the
length m of the circular arc P1P3. Next, the processor 104 calculates the
interpolation angle .sub..DELTA. .theta..sub.1 from Eqs. (5), (6) and (7)
and finds the position vector Si at each of the interpolated points Pi.
The processor 104 then calculates the interpolation angle .sub..DELTA.
.theta..sub.2 from Eqs. (8) and (9), finds the position vector Ri at each
of the interpolated points Qi, subsequently finds the inclination vector l
from Eq. (10), performs the transformation into coordinates (motion angles
of the motion axes) in the revolute coordinate system by using l and Si,
and feeds these coordinates into the input/output ports 108A through 108E
via the bus 109. As an example, when .alpha..sub.1 is calculated as a
travel quantity (motion angle) for the A axis, the processor 104 produces
as an output a stipulated quantity .sub.66 .alpha., which is part of the
travel quantity .alpha..sub.1, and the pulse distributor 110A produces
distributed pulses of a number in accordance with .sub..DELTA. .alpha..
When the generation of the distributed pulses ends, the pulse distributor
produces a distribution end signal DEN, which the processor 104 receives
via the input/output port 108A and bus 109, and the processor responds by
producing a subsequent stipulated quantity .sub..DELTA. .alpha..
Thereafter, the receipt of the distribution end signal and the generation
of .sub..DELTA. .alpha. are repeated in similar fashion to command or
output .alpha. .sub.1 in its entirety. The same operations are performed
with regard to the other axes B through E. When .sub..DELTA. .alpha. is
sent to the pulse distributor 110A, the latter immediately performs a
pulse distribution calculation to produce the distributed pulses Ps. The
pulses Ps are converted into command pulses Pi by the
acceleration-deceleration circuit 110A and enter the error counter 112A to
update its status incrementally in the positive (or negative) direction.
As a result, the status of the error counter 112A becomes non-zero and the
DA converter 113A converts the counter status into an analog voltage,
thereby rotating the motor 100A via the velocity control circuit 114A to
rotate the wrist HD about the A axis. When the motor 100A rotates, the
position sensor produces one feedback pulse FP each time the motor 100A
rotates a predetermined amount. The status of error counter 112A is
decremented and, hence, updated, one count at a time whenever a feedback
pulse FP is generated. Further, the actual velocity TSA of the motor 100A
is provided by the velocity sensor, and the velocity control circuit 114A
finds the difference between the actual velocity and the velocity command
Vc to control the velocity of the motor 100A. The motor 100A is thus
subjected to velocity and positional control and is rotated to a target
position. The motors 100B through 100E for the other axes B through E,
respectively, are controlled in similar fashion. The processor 104 repeats
the foregoing operations in accordance with the position control program
and moves the industrial robot to each of the interpolated points in
accordance with the control data, whereby the tip of the torch held by the
industrial robot is controlled for movement along a circular arc.
The processor 104 repeats the foregoing operations each time an
interpolated point is calculated to eventually control the movement of the
torch tip along the circular arc while controlling the target angle of the
torch.
Though the present invention has been described in conjunction with an
embodiment thereof, the invention is not limited to the above-described
embodiment and various modifications can be made in accordance with the
gist of the invention without departing from the scope thereof.
Thus, as set forth above, an industrial robot circular arc control method
according to the present invention makes it possible to control the target
angle (attitude) of a working member mounted on the wrist of the robot.
The invention is therefore well-suited for application to a welding robot
or gas cutting robot.
* * * * *
|
|
|
|
|
Description  |
|