|
Claims  |
|
|
What is claimed is:
1. A control system for an industrial robot comprising a robot having a
hand at an end of the robot; instruction means for providing a polygonal
path defined by a plurality of straight lines which interconnect a
plurality of point coordinates taught to said robot; arithmetical means
for continuously interconnecting said straight lines by a parabola at
predetermined locations in the vicinity of the centers of said straight
lines, said parabola being generated by dividing a span between two
predetermined positions through arithmetic linear interpolation technique
in a manner in which points located between said predetermined positions
are defined on a straight line interconnecting said two predetermined
positions; and driving means for continuously moving said hand of the
robot along said parabola generated by said arithemical means from a
straight line to the next straight line.
2. A control system for an industrial robot comprising a robot having a
hand at an end of the robot; instruction means for providing a path
constituted by a plurality of first and second straight lines (AB, BC)
which interconnect a plurality of point coordinates taught to the robot
and providing a speed (v.sub.a) on said first straight line (AB) and a
second speed (v.sub.b) on said second straight line (BC); arithmetical
means for dividing said second straight line (BC) arithmetically in
dependence on the second speed (v.sub.b) corresponding to the speed at
which said hand is moved along said second straight line, determining a
starting coordinate point (D) by a parabolic interpolation in
correspondence with the speed (v.sub.a) on said first straight line (AB),
and arithmetically dividing sequentially by a predetermined value the
spans between said starting coordinate point (D) and coordinate points
(E.sub.m) determined by said first arithmetic division for determining
parabolic interpolating points (p.sub.m); and driving means for
continuously moving said hand of the robot along the interpolating points
(p.sub.m) determined by said arithmetical means from said first to said
second straight line.
3. A control system for an industrial robot according to claim 2, wherein
said arithmetical means comprises setting means for setting the parabolic
interpolation starting point (D) so that a span (DB) between said starting
point and the intermediate nodal point (B) is equal to n/n.sub.a
.multidot.v.sub.a .multidot.T, and a parabolic interpolation ending point
(E) on the second straight line so that a span (BE) between said parabolic
interpolation ending point (E) and said intermediate nodal point (B) is
equal to n'/n.sub.b .multidot.v.sub.b .multidot.T where v.sub.a represents
speed of the hand on said first straight line, v.sub.b represents speed of
the hand on said second straight line, T represents a sampling time,
n.sub.a represents a natural number selected such that AB/v.sub.a
T.ltoreq.n.sub.a <AB/v.sub.a T+1, n.sub.b represents a natural number
selected such that BC/v.sub.b T .ltoreq.n.sub.b <BC/v.sub.b T+1, and n and
n' represents predetermined natural numbers.
4. A control system for an industrial robot according to claim 3, wherein n
is equal to n'.
5. A control system for an industrial robot according to claim 4, wherein
coordinate points (E.sub.m) on said second straight line determined
through arithmetic division divide equally a line segment (BE) by 2n, and
line segments among said coordinate points (E.sub.m) are arithmetically
divided by n+1-m/2 with said coordinate point (D) serving as the starting
point for the parabolic interpolation, to thereby determine the parabolic
interpolating points (p.sub.m).
6. A control system for an industrial robot according to claim 4 or 5,
wherein n is so selected that BE.ltoreq.1/2BC, so that the parabolic
interpolation can be effected successively.
7. A control system for an industrial robot comprising: a robot having a
hand at an end of the robot; instruction means for providing two attitudes
(f.sub.o, g.sub.o ; f.sub.n, g.sub.n) of the hand taught to the robot in
terms of two unit vectors (f, g); arithmetical means for interpolating the
the rotation angle of said hand about an axis (f.sub.o
-f.sub.n).times.(g.sub.o -g.sub.n) for rotating from the attitude
(f.sub.o, g.sub.o) to the attitude (f.sub.n, g.sub.n); and driving means
for driving said robot's hand to change the attitude thereof in accordance
with the rotation angle interpolated by said arithemical means.
8. A control system for an industrial robot according to claim 7, wherein
said interpolation is a parabolic interpolation.
9. A method of controlling the movement of a hand of an industrial robot
comprising defining a polygonal path for movement of the robot hand by a
plurality of straight lines which interconnect a plurality of point
coordinates, continuously interconnecting said straight lines by a
parabola at predetermined locations in the vicinity of the centers of said
straight lines, said parabola being generated by dividing a span between
two predetermined positions through arithmetic linear interpolation
technique in a manner in which points located between said predetermined
positions are defined on a straight line interconnecting said two
predetermined positions, and continuously moving said hand of the robot
along said generated parabola from a straight line to the next straight
line.
10. A method of controlling the movement of a hand of an industrial robot
comprising defining a path for movement of the robot hand constituted by a
plurality of first and second straight lines (AB, BC) which interconnect a
plurality of point coordinates, determining parabolic interpolating points
(p.sub.m) wherein said second straight line (BC) is arithmetically divided
in dependence on a second speed (v.sub.b) corresponding to the speed at
which said hand is to be moved along said second straight line, and
wherein a parabolic interpolation is effected starting from a coordinate
point (d) determined in correspondence with a speed (v.sub.a) on said
first straight line (AB) to thereby arithmetically divide sequentially by
a predetermined value the spans between said starting coordinate point (d)
and coordinate points (E.sub.m) determined by said first arithmetic
division for determining said parabolic interpolating points (p.sub.m),
and continuously moving said hand along the determined interpolating
points (p.sub.m) continuously from said first to said second straight
line.
11. A method of controlling an industrial robot according to claim 10,
wherein said parabolic interpolation starting point (d) on said first
straight line is so set that a span (DB) between said starting point and
the intermediate nodal point (B) is equal to n/n.sub.a .multidot.v.sub.a
.multidot.T, while a parabolic interpolation ending point (E) is so set on
the second straight line so that a span (BE) between said parabolic
interpolation ending point (E) and said intermediate nodal point (B) is
equal to n'/n.sub.b .multidot.v.sub.b .multidot.T where v.sub.a represents
speed of the hand on said first straight line, v.sub.b represents speed of
the hand on said second straight line, T represents a sampling time,
n.sub.a represents a natural number selected such that AB/v.sub.a
T<n.sub.a <AB/v.sub.a T+1, n.sub.b represents a natural number selected
such that BC/v.sub.b T.ltoreq.n.sub.b <BC/v.sub.b T+1, and n and n'
represent predetermined natural numbers.
12. A method of controlling an industrial robot according to claim 11,
wherein n is equal to n'.
13. A method of controlling an industrial robot according to claim 12,
wherein coordinate points (E.sub.m) on said second straight line
determined through arithmetic division divide equally a line segment (BE)
by 2n, and line segments among said coordinate points (E.sub.m) are
arithmetically divided by n+1-m/2 with said coordinate point (D) serving
as the starting point for the parabolic interpolation, to thereby
determine the parabolic interpolating points (p.sub.m).
14. A method of controlling an industrial robot according to claim 12 or
13, wherein n is so selected that BE.ltoreq.1/2BC, so that the parabolic
interpolation can be effected successively.
15. A method of controlling the attitude of a hand of an industrial robot,
comprising teaching attitudes of said hand to said robot in terms of two
unit vectors (f, g), and wherein two attitudes (f.sub.o, g.sub.o ;
f.sub.n, g.sub.n) are taught, parabolically interpolating the rotation
angle for rotating said hand from the attitude (f.sub.o, g.sub.o) to the
attitude (f.sub.n, g.sub.n) about an axis (f.sub.o
-f.sub.n).times.(g.sub.o -g.sub.n) and rotating said hand through said
rotation angle about said axis. |
|
|
|
|
Claims  |
|
|
Description  |
|
|
BACKGROUND AND SUMMARY OF THE INVENTION
The present invention relates to a control system for controlling a hand of
an industrial robot.
Many industrial robots have heretofore been developed for use in materials
handling or spot welding and adapted to be driven under PTP control (i.e.
point-to-point control). Recently, the robots tend to be increasingly used
in various industrial fields for arc welding, assembling and others, and
the PTP control tends to be replaced by a CP control (i.e. continuous path
control) which assures higher performance.
The CP control involves a method of storing in a memory device data
obtained at every sampling time of the control circuit incorporated in the
robot. This method however requires an enormous storage capacity because a
great deal of data must be stored for the particular arc welding,
assembling or other operations to be performed. Such being the
circumstances, the teaching is usually effected under the PTP control and
a continuous path is generated through linear interpolation of spans
between the points given by the teaching for driving the robot.
In this connection, it is noted that in case the hand of the robot is
caused to move at a certain speed along the path defined by two line
segments so as to pass the points determined through the linear
interpolation, acceleration would become infinite at a nodal point of the
path, making the control impossible, unless the path is so modified in the
vicinity of the nodal point that one line segment passes over to the other
succeeding line segment continuously along a curved path. To this end,
there have been proposed methods of interconnecting the two polygonal line
segments by an arc or a curve of multi-degree. However, these prior art
methods are disadvantageous in that difficulty is encountered in
arithmetically determining the path on a real time base upon driving the
robot because the amount of calculations for determining the path will be
significantly increased and that the teaching becomes extremely
complicated. For these reasons, it is difficult to adopt the prior art
methods mentioned above for practical applications.
The robot's hand thus has to be stopped at the taught point, providing a
major cause for elongating the time required for the operation of the
robot.
Further, for controlling the attitude of the robot's hand by resorting to
interpolation, a rotation angle or deviation in contraposition of the
robot mechanism is divided equally. However, since the rotation angle
mentioned above is inherently in a non-linear relation with the attitude,
there will be a remarkable difference in data for different types of
robots. This is disadvantageous because when the robot is to be driven
under a direct numerical control (DNC) or the like, data can not be used
in common for different types of robots, while linear interpolation which
allows a uniform rotation speed is difficult and, therefore, also
disadvantageous.
Further, there is known a method of controlling the attitude of the robot's
hand through interpolation by making use of a Eulerian angle. However,
representation by Eulerian angle includes a singular point, as the result
of a which an attitude which can not be represented in terms of a Eulerian
angle is inevitably present. Besides, the linear interpolation which makes
the rotation speed uniform is difficult, as is the case of the control
performed on the basis of the rotation angle described above.
With a view to solving the problems arising in conjunction with the control
of the robot's hand described above, the present invention provides a
method of interpolating the path by continuously interconnecting a
plurality of straight line segments with parabola by resorting only to the
arithmetic interpolating functions inherently incorporated in the
conventional robot. Since the inventive method can be carried out solely
by the operation of the linear interpolation, the addition of a long
program is not necessary, whereby the amount of calculations may remain
small, providing the operation of a real time base to drive the robot. As
to the attitude interpolation of the robot's hand, there is proposed
according to the invention a method of driving the robot through
interpolation of the rotation angle with the attitude being represented by
two unit vectors. According to the inventive method, interpolation of the
attitude of the robot's hand can be accomplished with an improved
accuracy.
Accordingly, it is an object of the present invention to provide a control
system for a robot's hand which is capable of determining the path for the
movement of a robot's hand through interpolation based on simplified
arithmetic processing on a real time base.
It is another object of the present invention to provide a robot hand
controlling system which is capable of varying the speed of the hand at a
uniform acceleration through simplified arithmetic processing.
According to a general aspect of the present invention, arithmetic
interpolation processing is employed to divide spans among individual
positions set for determining a path along which the robot's hand is to be
moved, whereby the path for the robot's hand originally defined by a
polygon or line segments is made continuous by a parabola in the vicinity
of a nodal point so that the hand moves at a uniform acceleration in the
vicinity of the nodal point.
According to another general feature of the invention, the attitude of the
hand is represented by two unit vectors f and g, wherein a rotation axis
for motion of the robot's hand on the basis of two sets of given data
(f.sub.o, g.sub.o) and (f.sub.n, g.sub.n) representative of attitudes of
the hand, respectively, and the rotation angle required for the robot's
hand to move from the one attitude given by (f.sub.o, g.sub.o) to the
other (f.sub.n, g.sub.n) about the rotation axis defined by (f.sub.o
-f.sub.n).times.(g.sub.o -g.sub.n) is interpolated for driving the robot's
hand.
The above and other objects, features and advantages of the present
invention will become more apparent by reading the following description
of the preferred embodiments of the invention made with reference to the
accompanying drawings.
BRIEF DESCRIPTION OF THE DRAWINGS
FIG. 1 is a side view showing schematically an industrial robot to which
the present invention may be applied;
FIG. 2 is a view to show a driving mechanism for the robot;
FIG. 3 is a view to show the same along the line X.sub.1 --X.sub.1 in FIG.
2;
FIG. 4 is a view showing a polygonal path;
FIG. 5 is a view showing a general arrangement of a control system for the
robot;
FIG. 6 is a view showing a manipulating panel of a teaching box;
FIG. 7 is a view to illustrate linear interpolation of two line segments;
FIG. 8 is a view to illustrate a method of making the path continuous by a
parabola according to the teaching of the invention;
FIG. 9 is a view to illustrate a parabolic interpolation according to the
invention;
FIGS. 10 and 11 are views showing results of a parabolic interpolation;
FIG. 12 is a view to illustrate a parabolic interpolation according to the
invention applied to a case where the speed of the robot's hand is varied
when moving along a straight line segment;
FIG. 13 shows graphically the result of the interpolation illustrated in
FIG. 12;
FIG. 14 is a view to illustrate a parabolic interpolation according to the
invention applied to a case where the speeds of the robot's hand are
different between line segments;
FIG. 15 is a view to illustrate a parabolic interpolation for the motion of
the robot's hand in the three-dimensional coordinate system;
FIGS. 16 and 17 show flow charts to illustrate controlling processes for
controlling the motion of the robot's hand according to the invention;
FIG. 18 is a vector diagram to illustrate vectors representative of
attitude of the robot's hand;
FIG. 19 shows schematically in a perspective view a hand of the robot
controlled according to the present invention; and
FIG. 20 is a view similar to FIG. 19 and showing two attitudes (f.sub.o,
g.sub.o) and (f.sub.n, g.sub.n) of the robot's hand represented as vectors
.
DETAILED DESCRIPTION
In the following, the present invention will be described in concrete terms
by referring to the accompanying drawings.
Referring to FIGS. 1, 2 and 3, there is shown an example of an articulated
robot having six degrees of freedom to which this invention is applied and
which is disclosed in the copending U.S. patent application Ser. No.
285637 filed July 21, 1981 and assigned to the present assignee (the
corresponding European Patent Application No. 81105693.6 filed July 10,
1981). FIG. 1 is a side view of an articulated industrial robot to which
the principle of the invention can be applied. The articulated industrial
robot has a base 1, a turret 2, an upper arm 3, a forearm 4 and a wrist 6.
The robot has 6 (six) kinds or degrees of freedom: namely a rotation
around a Z-axis, rotation of the upper arm 3 around Y.sub.1 -axis,
rotation of the forearm 4 around a Y.sub.2 -axis, rotation of a lower half
part 5b of the forearm around an X.sub.1 -axis, rotation of the wrist 6
around a Y.sub.3 -axis, and rotation of tool mount or hand 7 around an
X.sub.2 -axis.
FIG. 2 illustrates a driving system for each of the motions mentioned
above, in the state in which the upper arm 3 and the forearm 4 of the
robot shown in FIG. 1 are stretched, while FIG. 3 is a sectional view
taken along the line X.sub.1 --X.sub.1 of FIG. 2. More specifically, the
turret 2 is rotatably supported on the base 1 through rotary bearings 13
and 13'. An output shaft 10 of a rotary drive source 9a (such as a D.C.
servo motor) fixed to the base 1 is connected to a reduction gear 12 (such
as a harmonic reduction gear) also fixed to the base 1, via a safety brake
11 (such as an ON/OFF type of solenoid brake) which is also fixed to the
base 1. The low-speed side, i.e. the output side of the reduction gear 12
is fixed to the turret 2, so that a rotary drive source 9a imparts to the
turret 2 rotation around the Z-axis as shown in FIGS. 1 and 2.
A rotary driving source 14a (such as a D.C. servo motor) for driving the
upper arm 3 is mounted in the turret 2. The output shaft 15 of the rotary
driving source is connected through a safety brake 16 and a pair of bevel
gears 17 and 17' to a reduction gear 18 fixed to an upper part of the
turret 2. The pair of upper arms 3 and 3' are rotatably secured to an
upper portion of the turret 2 through respective rotary bearings 19 and
19'. The low speed output of the reduction gear 18 is connected to one of
the upper arms 3 so that the rotary driving source 14a imparts to the
upper arms 3 and 3', the rotation around the Y.sub.1 -axis shown in FIG.
2.
A rotary driving source 20a (such as a D.C. servo motor) for driving the
forearm 4 is attached to the rear end of the upper arm 3. The output shaft
22 of the driving source 20a is connected through a safety brake 21 and a
pair of bevel gears 23 and 23' to a reduction gear 24 fixed to the lower
end of the upper arm 3. An upper half portion 5a of the forearm 4 is
rotatably clamped between the upper arms 3 and 3' through respective
rotary bearings 25 and 25' and connected to the low speed output shaft of
the reduction gear 24. In consequence, the rotary driving source 20a
attached to the rear end of the upper arm 3 imparts to the upper half part
5a of the forearm the rotation around the Y.sub.2 -axis as shown in FIGS.
1 and 2.
A lower half part 5b of the forearm 4 is rotatably secured to the end of
the upper half part 5a of the forearm through bearings 29 and 29' for free
rotation around the X.sub.1 -axis as shown in FIGS. 1 and 2. A gear 27 is
attached to the output shaft of a rotary driving source 26a (such as a
D.C. servo motor) fixed to the upper half part 5a of the forearm. Another
gear 28 is fixed to the input shaft of a reduction gear 30 which is fixed
to the upper half part 5a and having a low speed output connected to the
lower half part 5b of the forearm. These gears 27 and 28 mesh with each
other so that the rotary driving source 26a causes the lower half part 5b
of the forearm to rotate around the X.sub.1 -axis.
The driving system constituted by the rotary driving source 20a for driving
the upper half part 5a of the forearm, the output shaft 22, the bevel
gears 23 and 23' and so forth is mounted only on one of the two upper arms
3. Fixed to the rear end of the other upper arm 3' is a rotary driving
source 31a (such as a D.C. servo motor) for driving the wrist 6. The
output shaft 32 of this rotary driving source 31a is coupled through a
pair of bevel gears 33 and 33' to the upper half part 5a and further to
the end portion of the lower half part 5b of the forearm through another
pair of bevel gears 34 and 34' and a rotary shaft 35. The wrist 6 is
rotatably secured to the lower half part 5b of the forearm through a
rotary bearing 38. A reduction gear 37 fixed to the lower half part 5b has
a low-speed output coupled to the wrist 6. The rotary shaft 35 is
connected at its end to the input shaft of the reduction gear 37 through
bevel gears 36 and 36' so that the rotary driving source 31a fixed to the
rear end of the upper arm 3' imparts to the wrist 6 a rotation around the
Y.sub.3 -axis shown in FIG. 1 and 2. The transmission of power at the
inside of the forearm 4 is achieved by the rotary shaft 35 which is
coaxial with the axis of rotation of the lower half part 5b of the forearm
and extending through a cavity or bore formed in the gear 28 and the
reduction gear 30 for driving the lower half part 5b. Therefore, the
rotary motion of the lower half part 5b can be achieved without
substantially hindering the operation of the driving system.
A rotary driving source 39a (such as a D.C. servo motor) is mounted within
the wrist 6 and has an output shaft 40 connected to the input shaft of the
reduction gear 41 fixed to the wrist 6. The low-speed output end of the
reduction gear 41 is connected to the tool mount or hand 7 which is
rotatably supported by the wrist 6 through rotary bearings 42 and 42' so
as to impart to the hand the rotation around the X.sub.2 -axis shown in
FIGS. 1 and 2.
The articulated industrial robot R imparted with six varieties of freedom
as elucidated above is illustrated in a form of a schematic model in FIG.
4.
Next, by referring to FIGS. 5 and 6, description will be made of a control
unit 70 for controlling the articulated robot R having six types of
freedom and a teaching unit for teaching information about a previously
programmed path and speeds for causing the robot R to be operated or moved
along the predetermined path at the programmed speeds on a point-to-point
base.
The control unit 70 and the robot mechanism R constitute a position control
system in which output values produced by pulse encoders PE coupled to
respective actuators M are fed back to the control unit 70 through a
counter 75, whereby differences between the target or desired coordinate
values determined previously by a microprocessor (A) 72 and the
corresponding transformed values of the encoder outputs are converted into
analog values by means of a digital/analog (D/A) converter 74 for driving
the actuators M. In accordance with the assumption that the robot R is
imparted with 6 types of freedom, there are provided six actuators M, six
tachometer generators TG and six pulse encoders PE. By the way, FIG. 6
illustrates in a plan view a teaching box 78. This teaching box
incorporates a basic teaching job executing manipulator unit for storing
position and attitude data or information in a storage by manually
operating the conventional robot. With the terminology "position and
attitude data or information", it is intended to mean nine data which are
represented by orthogonal coordinate values of the robot including
position data of the tool mount 7 on hand positions p in an
XYZ-coordinate system (i.e. X-coordinate value, Y-coordinate value and
Z-coordinate value) and two unit vectors {f (.theta..sub.x, .theta..sub.y,
.theta..sub.z), g (.theta..sub.x, .theta..sub.y, .theta..sub.z)}.
There are provided on the teaching box 78, those switches 79g, 79h, 79i, .
. . , 79r which indicate translational movements of the hand 7 along the
coordinate axes and rotational movements thereof around the coordinate
axes for driving in the orthogonal mode. Signs (+) and (-) attached to
these switches indicate the directions, i.e. forward and backward
directions, respectively, of the corresponding motion or movements. Also
in the articulation mode, the same switches are used for driving
separately and singularly the articulations attached with the
corresponding reference numbers (i.e. #1, #2, . . . , #6). When execution
of a teaching program by the microprocessor (A) 72 (stored in a read-only
memory or ROM 94) is started, interpretation of commands inputted by
actuating input keys provided on the teaching box 78 is performed after
initialization processing of the relevant data. More specifically, when
certain keys of the basic function teaching manipulator field are pressed,
the corresponding input data is fetched by a microprocessor 97 through a
keyboard display interface 86 periodically under the timing of a clock
signal produced by a clock generator 81. Subsequently, in response to a
data transfer request signal issued from the control unit 70, the code
data to be supplied to the microprocessor (A) 72 through a bus line 85, an
asynchronous communication interface adapter (ACIA) 83, level changer 82
and hence a serial interface (I/F) 76 and a bus line 73 is analytically
determined by the microprocessor (B) 97 in dependence on which type of
processing is to be executed by the microprocessor (A) 72, whereby the
data for the relevant processing routine is transferred to the
microprocessor (A) 72, whereupon the execution of the program proceeds to
the next phase.
In this connection, detailed description will be omitted as to the teaching
processing for loading the positional coordinate values of the robot in
the random access memory or RAM 77 (triggered by the switch 79a), a mode
alternating processing for selectively determining whether the robot is to
be operated in the articulation mode independent of the individual axes or
the hand 7 is to be operated along the axes of the orthogonal coordinate
system in the orthogonal mode when the robot is manually operated
(activated by the switches 79e and 79f), a processing for opening and
closing of the hand 7 (activated by the switches 79c and 79d), and a
processing for lighting those of light emission diodes of LED's 80a, 80b,
. . . , 80f located above the key switches 79a, 79b, . . . , 79f,
respectively, which correspond to these switches which have been pressed
or actuated. The last mentioned processing is executed by the
microprocessor (B) 87 for indicating the pressed ones of the above
mentioned processing key switches 79a, 79b, . . . , 79f.
In the case of the processing for the motion of the hand as brought about
by pressing the keys 79g, . . . , 79r, target or desired values for the
selected operation mode determined by the mode change-over processing are
arithmetically determined, whereupon they are stored in the RAM 77 as the
target values represented by the orthogonal coordinate values or the
articulation coordinate values. More specifically, the coordinate values
in concern are so determined that the corresponding displacements are
progressively increased within a range not exceeding the maximum
displacement during a period beginning with the first pressing of the
corresponding keys and ending with the release of them, while the
displacements are progressively decreased to zero after the release of the
keys. The coordinate values thus determined are added to or subtracted
from the orthogonal coordinate values or the articulation coordinate
values determined in the preceding cycle in dependence on the directions
of the movements, to thereby determine the target coordinate values for
the instant cycle. These target coordinate values thus obtained are
transformed to the corresponding encoder output values for the respective
axes of the robot and compared with the actual values read out from the
pulse encoders PE through the counter 75. The resulting differences, if
present, are supplied to the D/A converter 74 in terms of numbers of
pulses to thereby feed speed commands to servo-drivers 96 provided for the
axes of the robot, respectively. Thus, the robot R is operated.
When the hand 7 of the robot R has been moved to the required position
and/or attitude in this way, the operator can now press the teaching key
switch 79a. Then, the count outputs .theta..sub.1, .theta..sub.2, . . . ,
.theta..sub.6 of the counter 75 representative of the counted pulses
output from the pulse encoders PE coupled to the actuators M,
respectively, are fetched by the microprocessor (A) 72. On the basis of
these values .theta..sub.1, .theta..sub.2, . . . , and .theta..sub.6, the
microprocessor (A) 72 determines arithmetically the position/attitude
quantities p, f and g of the hand 7 with the aid of an arithmetic
processor 95. The values thus determined are stored as the position
quantity p.sub.a (X.sub.a, Y.sub.a, Z.sub.a) of a point A (FIG. 7) and the
attitude quantities f.sub.a (f.sub.xa, f.sub.ya, f.sub.za) and g.sub.a
(f.sub.xz, f.sub.ya, f.sub.za) of the hand at the point A, where p.sub.a
(X.sub.a, Y.sub.a, Z.sub.a)=p (.theta..sub.1, . . . , .theta..sub.6),
f.sub.a (.theta..sub.xa, .theta..sub.ya, f.sub.za)=f (.theta..sub.1, . . .
, .theta..sub.6) and g.sub.a (g.sub.xa, g.sub.ya, g.sub.za)=g
(.theta..sub.1, . . . , .theta..sub.6). The speed v.sub.a at which
displacement from the point A to a next point is to occur is commanded by
a speed switch 88 and ten keys 90. The value of the commanded speed is
always displayed by the display 87. In the similar manner, teaching is
made as to the position p.sub.b (X.sub.b, Y.sub.b, Z.sub.b) of the point B
and the corresponding information f.sub.b (f.sub.xb, f.sub.yb, f.sub.zb),
g.sub.b (g.sub.xb, g.sub.yb, g.sub.zb) of the hand as well as the speed
information v.sub.b. Further, information of the point C, p.sub.c
(X.sub.c, Y.sub.c, Z.sub.c), f.sub.c (f.sub.xc , f.sub.yc, f.sub.zc),
g.sub.c (g.sub.xc, g.sub.yc, g.sub.zc) and v.sub.c are taught. By the way,
when a parabolic interpolation is to be effected for the point B, the
switch 89 is closed in the point (B) teaching mode to designate the
parabolic interpolation.
Next, description will be made of the parabolic interpolation effected on
the basis of the taught information about the points A, B and C (inclusive
of the case where these points A, B and C lie on a straight line). FIG. 7
shows an example of an equidistant interpolation mode along two line
segments. Referring to FIG. 7, the three points A, B and C represent the
positions p.sub.a (X.sub.a, Y.sub.a, Z.sub.a), p.sub.b (X.sub.b, Y.sub.b,
Z.sub.b) and p.sub.c (X.sub.c, Y.sub.c, Z.sub.c) of the hand 7 taught in
the robot R, and the hand is to be moved at the speed v.sub.a along the
line segment AB and at the speed v.sub.b along the line segment BC. In the
course of the motion, the microprocessor (A) 73 determines the positions
passed by the hand of the robot R on these line segments at every sampling
time T, to control the robot with the thus determined positions being
employed as the target or desired positions. The number of samplings
effected during the movement of the hand 7 of the robot R along the line
segment AB is given by the following expression:
n.sub.a =[AB/v.sub.a T] (1)
In the similar manner, the number of samplings made during the passage
along the line segment BC is given by
n.sub.b =[BC/v.sub.b T] (2)
In the above expressions (1) and (2), the blacket [ ] represents that the
sampling number n.sub.a is a natural number falling within a range given
by AB/v.sub.a T.ltoreq.n.sub.a .ltoreq.AB/v.sub.a T+1 and that n.sub.b is
also a natural number in a range where AB/v.sub.b T.ltoreq.n.sub.b
<AB/v.sub.b T+1. Accordingly, the target or desired points at the
respective sampling time points correspond to those derived by dividing
equally the line segments AB and BC by n.sub.a and n.sub.b, respectively.
However, it should be noted that driving of the robot's hand in this way
would require that the acceleration of the hand at the nodal point B be
infinitely increased, thus making it practically impossible to drive the
robot's hand. With a view to evading this difficulty, it is taught
according to the present invention that the movement of the robot's hand
is caused to depart from the direction of the line segment AB at the
sampling point which precedes the nodal point B by a predetermined
sampling number n so that the robot's hand will follow a parabolic path to
reach the line segment BC by skipping the n sampling points leading to the
nodal point B.
Now, the principle of the present invention will be elucidated in detail on
the illustrative assumption that the robot's hand is moved on a
two-dimensional plane (i.e. the plane defined by the axes x and y).
Referring to FIG. 8, it is assumed that the speed v.sub.a ' of the robot's
hand 7 at which the latter is caused to move along the line segment A'B'
is equal to the speed v.sub.b ' of the robot hand moving along the segment
B'C'. Further, positions of the three points A', B' and C' are assumed to
be so selected with respect to the x-axis and y-axis of the orthogonal
plane coordinate system that the point B' coincides with the origin of the
coordinate and the internal angle<A'B'C' is bisected by the y-axis, with
the x-axis extending perpendicularly to the y-axis. A parabolic equation
is expressed as follows:
Y=ax.sup.2 +b (3)
where a and b represent constants, respectively. Tangent to the parabola is
then given by the following differential equation:
##EQU1##
where c and d represent constants, respectively. Differentiation of the
equation (4) by x results in the following singular solution:
##EQU2##
Substituting this solution to the equation (4), the latter can be
rewritten in a simplified form as follows:
##EQU3##
From the equations (3) and (6)
a=-1/4c (7)
and
b=d (8)
Here, the point which precedes the nodal point or origin B' by the
predetermined sampling number n is represented by D', while the point
which follows the point B' by the number n samplings is represented by E'.
Assume that the length of the line segments D'B' and B'E' is equal to each
other and represented by l (=n.multidot.v.sub.a 'T and n.multidot.v.sub.b
'T). On these conditions, the tangents to the parabola at the points D'
and E' pass through the origin of the x-y coordinate. Accordingly, when
the angle<A'B'C' is represented by .alpha., the coordinates of the point
D' are given by
##EQU4##
and
##EQU5##
respectively, while the inclination of the tangent at that point D' is
given by
##EQU6##
Similarly, the coordinates of the point E' are given by
##EQU7##
and
##EQU8##
respectively, while inclination of the tangent at this point E' is given
by
##EQU9##
Further, on the assumption that the tangents pass the origin, following
relation is derived from the equation (4). Namely,
##EQU10##
Further, from the equation (3), a can be determined as follows:
##EQU11##
From the equations (7), (8), (9) and (10),
##EQU12##
and
##EQU13##
are determined and put into the equation (6), whereby the equation for the
parabola is expressed as follows:
##EQU14##
The control for the robot is, so to say, a sampling control. Accordingly,
the motion from the point D' to the point E' must be effected on the basis
of data obtained through an integral number of samplings. When the
position of the robot's hand on the parabolic path at m-th sampling
counted from the point D' is represented by coordinates x.sub.m and
y.sub.m, then the coordinate x.sub.m is given by a below mentioned
expression (12) because the motion in the direction of the x-axis is
effected at a uniform or constant speed.
##EQU15##
By putting the above equation (12) into the equation (11), the latter can
be rewritten as follows:
##EQU16##
Further, inclination of the tangent to the parabola at the point (x.sub.m,
y.sub.m) is given by -(m/n-1).multidot.cos (.alpha./2). The coordinates
(x.sub.m ', y.sub.m ') of the intersection between this tangent and the
line segment B'C' are given by
##EQU17##
The points corresponding to these coordinates (x.sub.m, y.sub.m) have
tangents which intersect equidistantly on the line segment B'C' when
plotted by successively substituting 1, 2, 3, . . . , for m in the above
equation (14).
From the equations (12) and (14), the ratio of the distance between the
points (x.sub.m-1, y.sub.m-1) and (x.sub.m, y.sub.m) to the distance
between the points (x.sub.m-1, y.sub.m-1) and (x.sub.m ', y.sub.m ') is
written as follows:
##EQU18##
In other words, the component x.sub.m is determined by dividing the line
segment connecting the point (x.sub.m-1, y.sub.m-1) and (x.sub.m ',
y.sub.m ') by the factor (n+1-m/2). The values of the component y.sub.m
lie approximately on the same line segment when the | | |