Source: http://www.google.co.uk/patents/US4550383
Timestamp: 2014-03-12 16:12:02
Document Index: 698267667

Matched Legal Cases: ['Application No. 81105693', 'art 5', 'art 5', 'art 5', 'art 5', 'art 5', 'art 5', 'art 5', 'art 5', 'art 5', 'art 5', 'art 5', 'art 5', 'art 5', 'art 5', 'art 5', 'art 5']

Patent US4550383 - Parabolic position and attitude interpolation for a robot hand - Google PatentsSearch Images Maps Play YouTube News Gmail Drive More »Sign inAdvanced Patent SearchPatentsA control system and method for controlling a hand of an industrial robot are disclosed wherein the hand is driven at a predetermined speed along a polygonal path defined by a plurality of straight lines which interconnect a plurality of point coordinates taught to the robot. The straight lines are continuously...http://www.google.co.uk/patents/US4550383?utm_source=gb-gplus-sharePatent US4550383 - Parabolic position and attitude interpolation for a robot handAdvanced Patent SearchPublication numberUS4550383 APublication typeGrantApplication numberUS 06/418,681Publication date29 Oct 1985Filing date16 Sep 1982Priority date24 Sep 1981Fee statusPaidAlso published asDE3277087D1, EP0075792A2, EP0075792A3, EP0075792B1Publication number06418681, 418681, US 4550383 A, US 4550383A, US-A-4550383, US4550383 A, US4550383AInventorsKoichi SugimotoOriginal AssigneeHitachi, Ltd.Export CitationBiBTeX, EndNote, RefManPatent Citations (10), Non-Patent Citations (1), Referenced by (37), Classifications (22), Legal Events (4) External Links: USPTO, USPTO Assignment, EspacenetParabolic position and attitude interpolation for a robot handUS 4550383 AAbstract A control system and method for controlling a hand of an industrial robot are disclosed wherein the hand is driven at a predetermined speed along a polygonal path defined by a plurality of straight lines which interconnect a plurality of point coordinates taught to the robot. The straight lines are continuously interconnected by a parabola at predetermined locations in the vicinity of the centers of the straight lines, wherein the hand is continuously moved along the parabola from a straight line to the next straight line, and wherein the parabola is generated by dividing a span between two predetermined positions through arithmetic linear interpolation technique in a manner in which points located between the predetermined positions are defined on a straight line interconnecting the two predetermined positions.
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 (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 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 &lt;AB/v.sub.a T+1, n.sub.b represents a natural number selected such that BC/v.sub.b T ≦n.sub.b &lt;BC/v.sub.b T+1, and n and n' represents predetermined natural numbers.
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).
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) (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.
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 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 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&lt;n.sub.a &lt;AB/v.sub.a T+1, n.sub.b represents a natural number selected such that BC/v.sub.b T≦n.sub.b &lt;BC/v.sub.b T+1, and n and n' represent predetermined natural numbers.
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).
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) rotation angle about said axis.
BACKGROUND AND SUMMARY OF THE INVENTION The present invention relates to a control system for controlling a hand of an industrial robot.
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) hand.
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. 3 is a view to show the same along the line X.sub.1 --X.sub.1 in FIG. 2;
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 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 (θ.sub.x, θ.sub.y, θ.sub.z), g (θ.sub.x, θ.sub.y, θ.sub.z)}.
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 θ.sub.1, θ.sub.2, . . . , θ.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 θ.sub.1, θ.sub.2, . . . , and θ.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 (θ.sub.1, . . . , θ.sub.6), f.sub.a (θ.sub.xa, θ.sub.ya, f.sub.za)=f (θ.sub.1, . . . , θ.sub.6) and g.sub.a (g.sub.xa, g.sub.ya, g.sub.za)=g (θ.sub.1, . . . , θ.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:
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≦n.sub.a ≦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≦n.sub.b &lt;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&lt;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:
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 '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&lt;A'B'C' is represented by α, 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##
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) (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 difference between y.sub.m and y.sub.m-1 is of a small value. For applying the results thus obtained to the interpolation for the path to be followed by the robot's hand along the parabola, resort may be made to the algorithm mentioned below.
In the first place, the line segment B'E' is divided equally (i.e. with equidistance) by 2n, and corresponding division points are represented by (x.sub.1 ', y.sub.1 '), (x.sub.2 ', y.sub.2 '), . . . , (x'.sub.2n, y'.sub.2n) in the order beginning with the point located nearest to the point B'. Subsequently, a line segment connecting the point D' which corresponds to the coordinates (x.sub.0, y.sub.0) and the point (x.sub.1 ', y.sub.1 ') is divided equally by n+1/2, wherein the division point immediately following the point (x.sub.0, y.sub.0) is represented by (x.sub.1, y.sub.1). Next, a line segment defined between the points (x.sub.1, y.sub.1) and (x.sub.2 ', y.sub.2 ') is divided equally by n to determine a point (x.sub.2, y.sub.2), which is followed by the equi-division of a line segment between the points (x.sub.2, y.sub.2) and (x.sub.3 ', y.sub.3 ') by n-1/2 to determine a point (x.sub.3, y.sub.3), and so on. Then, a point determined at the 2n-th step coincides with the point E. Thus, a curve connecting the points (x.sub.1, y.sub.1), (x.sub.2, y.sub.2), . . . , (x.sub.2n, y.sub.2n) approximates closely to a parabola.
In this figure, E.sub.2 ', E.sub.4 ' and E.sub.6 ' represent three points at which a line segment B'E.sub.6 ' corresponding to the segment B'E' is trisected and constitute parts of those points at which the line segments A'B' and C'B' are divided equally for interpolation. Further, E.sub.1 ', E.sub.3 ' and E.sub.5 ' represents bisecting points for the line segments B'E.sub.2 ', E.sub.2 'E.sub.4 ' and E.sub.4 'E.sub.6 ', respectively. In the first place, the line segment P.sub.1 'E.sub.2 ' is divided equally by (3+1/2=3.5) to determine a point P.sub.1 ' which immediately follows the point D'. Subsequently, the line segment P.sub.1 'E.sub.2 ' is trisected to determine a point P.sub.2 '. In similar manners, the line segments P.sub.2 'E.sub.3 ', P.sub.3 'E.sub.4 ', P.sub.4 'E.sub.5 ' and P.sub.5 'E.sub.6 ' are successively divided by 3-1/2(=2.5), 2, 1.5 and 1, respectively, to thereby determine points P.sub.3 ', P.sub.4 ', P.sub.5 ' and P.sub.6 ', respectively. The point P.sub.6 ' coincides with the point E.sub.6 '. In this way, as the robot's hand 7 is controlled so as to pass through the points D.sub.1, P.sub.1 ', P.sub.2 ', . . . , P.sub.5 ' and P.sub.6 ', the hand 7 follows a parabola in its movement.
A relationship between the interpolating points determined in the manner mentioned above and the parabola given by the equation (11) is graphically illustrated in FIG. 10, in which a series of small circles represents the interpolating points, while the ideal parabola is represented by a broken line curve. It will be seen that the broken line parabola substantially coincides with that depicted by the series of the interpolating points. Difference between the one and the other is due to the fact that the interpolating points are defined on the respective tangents to the parabola, as described above with reference to FIG. 9. In conjunction with the illustration of FIG. 10, it should be mentioned that n is selected equal to 10 with α being equal to 60
Next, referring to FIG. 12, it will be made clear how the procedure elucidated above can be validly applied to the case where the speed is to be changed from v.sub.a ' to v.sub.b ' during the motion of the robot's hand along the straight line segment A'C". It is assumed that the aforementioned procedure is applied to the case where the robot's hand is caused to be moved at a constant or uniform speed along the line segments A'B' and B'C', as is illustrated in FIG. 12. On this assumption, the components of motion along a line segment A'C" including a smaller line segment A'B' will be considered. Further, it is assumed that n is equal to 3 in the case of the illustration in FIG. 12. The points which correspond to the projections of points E.sub.i (where i=1, 2, . . . , 6) on the line segment A'C" are represented by E.sub.1 " where i=1, 2, . . . , 6. When the speed of the robot's hand moved from the point A' to D' and hence from E.sub.1 ' to C' is represented by v.sub.a ', the speed component v.sub.b " of the hand during the interval E.sub.6 "C" along the line segment A'C" is given by v.sub.b ' cos α. Thus, when the aforementioned procedure is applied to the motion along the line segment A'C", the robot's hand is accelerated or decelerated at a uniform acceleration when moved from the point D' to E.sub.6 ". This proves that when the results of the parabolic path interpolation for the polygon A'B'C' are projected to the line segment A'C", proportionality is maintained in the relationship among the interpolating points, the interpolation is also linear, and that the linear interpolation along the line segment A'C" is thus equivalent to or same as the aforementioned procedure.
In other words, when the robot's hand is moved at a speed v.sub.a ' along the line segment A'D', at a speed v.sub.b " along the line segment E.sub.6 "C" and accelerated or decelerated in the vicinity of the nodal point B' during the motion of the robot's hand along the linear path A'C", the line segment A'B' is divided in correspondence with the speed v.sub.a ', while the segment B'C" is divided in correspondence with the speed v.sub.b " (i.e. the line segment A'B' is divided equally by the sampling number n.sub.a ' equal to [A'B'/v.sub.a 'T], while the line segment B'C" is divided equally by the number of samplings n.sub.b ' equal to [B'C"/v.sub.b 'T]), and further the line segment B'E.sub.6 " is bisected to thereby determine the points E.sub.1 ", E.sub.2 ", . . . , and E.sub.6 ". Subsequently, the segment D'E.sub.1 " is divided by 3.5 in accordance with the expression (15) to determine the point P.sub.1 ", which is followed by the trisection of the line segment P.sub.1 "E.sub.2 " for determining the point P.sub.2 " and so on. In this manner, the speed of the robot's hand can be controlled with a uniform acceleration from the speed v.sub.a ' to the speed v.sub.b ".
When v.sub.a ' is to be equal to zero in the control mentioned above, this means that the robot's hand is accelerated from the stationary state at a uniform acceleration during a period corresponding to 2n samplings. More specifically, when v.sub.a '=0, both the points A' and B' are set at the point A' so that A'B' equals zero. Then, it is possible to control the speed of the robot's hand so as to be accelerated from the speed zero to the speed v.sub.b " at a constant or uniform acceleration through interpolation according to the procedure described above.
In a similar manner, when v.sub.b " is to be equal to zero, the robot's hand can be decelerated to the stationary state during the period corresponding to 2n samplings. Namely, when v.sub.b "=0, both of the points B' and C" are set at the point B' so that B'C" is zero. Through interpolation according to the procedure described above, the speed control can be carried out in such a manner that the speed v.sub.a ' is decelerated to the speed zero at a uniform rate.
Next, referring to FIG. 14, description will be made on the interpolation in the case where the speed of the motion along line segments is varied. When the speed v.sub.a ' at the point D' is varied to the speed v.sub.b ' at the point E', the interpolation is effected in the following manner. Namely, sampling is made at the sampling number n.sub.a ' (= wherein interpolation is started from the point D' which corresponds to the sampling number n from the point B'. In the line segment B'C', sampling is made at the sampling number n.sub.b ' (= the point E' which corresponds to n samplings effected starting from the point B'. Namely, ##EQU19## Thus, ##EQU20##
The line segment B'E' is divided equally by 2n to thereby effect the parabolic interpolation with the aid of the procedure described hereinbefore in conjunction with FIG. 8. FIG. 14 shows an example of the parabolic interpolation in the case where α=90 speed v.sub.b ' of the motion along the line segment B'C' is equal to a half of the speed v.sub.a ' of the motion along the line segment A'C'.
In practice, however, the position of the robot's hand is defined by the three-dimensional coordinates p (X, Y, Z). In this case, the points A', B' and C' mentioned hereinbefore are arithmetically processed through the aforementioned procedure with the aid of the three-dimensional coordinates 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) illustrated in FIG. 15 to thereby determine the points for interpolation p.sub.d (X.sub.d, Y.sub.d, Z.sub.d), p.sub.e (X.sub.e, Y.sub.e, Z.sub.e), p.sub.1 (X.sub.1, Y.sub.1, Z.sub.1), . . . , p.sub.m (X.sub.m, Y.sub.m, Z.sub.m).
For example, the coordinates of the points E.sub.m are represented by ##EQU21## where ##EQU22## where n.sub.b represents a natural number.
Coordinates of the point p.sub.m are: ##EQU23## and ##EQU24##
At first, the robot R is driven to a predetermined position by manipulating the teaching unit 71. At this position, output values of the displacement detectors PE operatively coupled to the respective actuators M are read out and the spatial positions or points A, B and C of the robot's hand are arithmetically determined on the basis of the read values, with the results being subsequently stored in the RAM 77. The robot's hand 7 is thus driven along the straight lines which interconnect the points thus obtained. At that time, the speeds v.sub.a and v.sub.b at which the robot's hand is to be moved along the straight lines are inputted through the teaching unit 71.
In this conjunction, it should be noted that, according to the present invention, the given position data are interpolated with the aid of the procedures illustrated in FIGS. 8 to 14 on the basis of the position A, B and C of the robot's hand, the speeds v.sub.a and v.sub.b at which the robot's hand is driven along the straight line segments interconnecting the successive positions.
More specifically, the coordinates of the points A, B and C, the speed v.sub.a of the motion along the line segment AB, the speed v.sub.b of motion along the line segment BC and data as to whether the parabolic interpolation is to be made or not are stored in the RAM 77, as is illustrated in flow charts of FIGS. 16 and 17.
On the other hand, when the parabolic interpolation is to be effected, the microprocessor 72 reads out the speed information v.sub.a and v.sub.b. When neither v.sub.a nor v.sub.b is equal to zero, the arithmetic processor 95 arithmetically determines natural numbers n.sub.a (=AB/v.sub.a T) and n.sub.b (=BC/v.sub.b T) which satisfy the conditions that AB/v.sub.a T≦n.sub.a &lt;AB/v.sub.a T+1 and BC/v.sub.b T≦n.sub.b &lt;BC/v.sub.b T+1, respectively. Concurrently, the value of n is designated and loaded in the RAM 77 through an input/output terminal (not shown) or teaching unit 71. Although the value of n is determined on the basis of the upper limit of acceleration, it is usually determined in dependence on the time required for the robot's hand to move from the point D to E. For example, assuming that the sampling time is 20 ms and the parabolic motion is to be effected during a period of 0.4 sec., then 2n=400/20=20, whereby the value of n is set to 10. However, in the case where not only the polygon ABC but also the polygon BCH are to be parabolically interpolated as shown in FIG. 18, the set value of n must satisfy the condition that n/nb≦1/2. Accordingly, it is then required that the microprocessor 72 should additionally check whether 2n≦n.sub.b or not.
The path extending from the point A to the point D is determined through the equidistant division interpolation in accordance with the prior art method to prepare a program for driving the robot's hand, which program is written in the ROM 94. In case v.sub.a =0, it is checked whether or not AB=0. When AB=0, the span between the points A and D which is zero because both occupy the same position is interpolated through the equidistant division to prepare a program for the stationary state of the robot's hand, which program is also written in the ROM 94. On the other hand, in the cases where v.sub.a =0 and AB≠0 as well as v.sub.a =0 and v.sub.b =0, an error indication is issued.
Further, in case v.sub.b =0, it is checked whether or not BC=0. If BC=0, the point E is defined on the point B. On the other hand, when v.sub.b =0 and BC≠0, an error indication is issued. Next, the microprocessor 72 takes the coordinates of the point D as those of the point p and takes the coordinates of the point B as those of the point F. Further, the line segment FE is divided equally by k where k=2n to determine the point F'. Taking the coordinates of the point F' as those of the point F, the line segment PF' is divided equally by n+1-m/2 where n=1, to determine the point P'. The coordinates of the point p' is outputted as the target coordinates of the target point p and written in the ROM 94.
Simultaneously, it is set that k=k-1 and that m=m+1. Unless k=0, the arithmetic operation described above is repeated until k becomes zero, to thereby determine the target coordinates of the points p.sub.1 to E which are then written in the ROM 94.
The positional data of the robot's hand stored in the ROM 94 are read out by the microprocessor and undergo coordinate transformation into contrapositive displacements θ.sub.1, θ.sub.2, . . . , θ.sub.6 which are outputted through the transformed output port 74 and utilized for driving the robot's hand to the desired or target position.
Assuming now that two attitudes (f.sub.o, g.sub.o) and (f.sub.n, g.sub.n) are taught, the transition of the robot's hand 7 from the attitude (f.sub.o, g.sub.o) to the other attitude (f.sub.n, g.sub.n) may be defined as a rotation about a vector e. This described relationship is schematically shown in FIG. 20. Here, ##EQU30## when a unit vector e which is parallel to the vector e is represented by e',
e'=e/
The motion of the hand 7 from (f.sub.o, g.sub.o) to (f.sub.n, g.sub.n) corresponds to the rotating movement of the hand 7 about the vector e from the attitude (f.sub.o, g.sub.o) by an angle φ, where φ is given by the following expressions: ##EQU31##
Accordingly, when the hand is to be moved from the attitude (f.sub.1, g.sub.1) to (f.sub.n, g.sub.n) during a period t(=nT), the hand is so driven that when the angle is divided equal by n, the attitude of the hand at a time point corresponding to time lapse mT is represented by expressions as follow: ##EQU32## In this case, the hand takes the attitude (f.sub.n, g.sub.n) after the time lapse of nT.
It should be mentioned that the concept of the parabolic interpolation described hereinbefore can also be applied to the attitude control. In this connection, reference is again made to FIG. 9 where it is assumed that n=1. When the attitude at the point B is represented by (f.sub.b, g.sub.b) with the attitude at the point C being represented by (f.sub.c, g.sub.c), the rotation axis e.sub.bc for the rotation from (f.sub.b, g.sub.b) to (f.sub.c, g.sub.c) as well as the rotation angle φ.sub.bc can be determined by resorting to the equations (16) to (19). For determining the attitudes at the points E.sub.m where m=1, 2, 3, . . . , 6, the rotation angles φ'.sub.m of the hand to the points E.sub.m are first determined in accordance with the following equation:
&#966;'.sub.m =m&#966;.sub.bc /2n.sub.bc                     (22)
The attitudes (f'.sub.m, g'.sub.m) corresponding to the points E.sub.m can be determined by putting the values of e.sub.bn and φ.sub.m in place of e' and φ in the equations (20) and (21). In other words, (f.sub.m ', g.sub.m ') represent the attitude of the robot's hand attaind through rotation by φ.sub.m about the axis e.sub.bc. Representing the attitudes of the robot's hand corresponding to the points p.sub.m by (f.sub.m, g.sub.m), the rotation axis e.sub.m-1 and the rotation angle φ.sub.m ' can be determined from (f.sub.m-1, g.sub.m-1) and (f'.sub.m, g'.sub.m) in accordance with the equations (16) to (19). Subsequently, calculation of ##EQU33## is made, and the attitude (f.sub.m, g.sub.m) of the robot's hand is determined through rotation by Δφ about the rotation axis e.sub.m-1. The result is written in the ROM 78. In this way, the attitudes at the points p.sub.1, . . . , p.sub.m, . . . , p.sub.e are successively parabolically interpolated, and the results of interpolation are stored in the ROM 94. Thus, for controlling the robot's hand, it is sufficient to read out the data (f.sub.m, g.sub.m) from the ROM 94 as the target or desired attitude data.
Patent CitationsCited PatentFiling datePublication dateApplicantTitleUS30132 *25 Sep 1860 Improvement in hay-rakesUS3860805 *7 May 197314 Jan 1975Bendix CorpMethod and apparatus for producing a fairing contour in numerical control systemsUS3909600 *31 May 197330 Sep 1975Cincinnati Milacron IncMethod and apparatus for controlling an automation along a predetermined pathUS3920972 *16 Jul 197418 Nov 1975Cincinnati Milacron IncMethod and apparatus for programming a computer operated robot armUS4158887 *22 Aug 197719 Jun 1979Nippon Telegraph And Telephone Public Corp.Curve generator for generating a smooth curve with a pair of circular arcs between two given pointsUS4221997 *18 Dec 19789 Sep 1980Western Electric Company, IncorporatedArticulated robot arm and method of moving sameUS4308584 *12 Dec 197929 Dec 1981Agency Of Industrial Science & TechnologyApparatus for control of manipulatorUS4409650 *4 Mar 198111 Oct 1983Shin Meiwa Industry Co., Ltd.Automatic position controlling apparatusUS4432063 *6 Oct 198114 Feb 1984Cincinnati Milacron Inc.Apparatus for automatically moving a robot arm along a nonprogrammed pathUS4445184 *13 Jul 198124 Apr 1984Shin Meiwa Industry Co., Ltd.Articulated robot* Cited by examinerNon-Patent CitationsReference1 *Robot Manipulators; MIT Press; by Richard Paul, 1981.* Cited by examinerReferenced byCiting PatentFiling datePublication dateApplicantTitleUS4648024 *15 Nov 19843 Mar 1987Mitsubishi Denki Kabushiki KaishaCurvilinear interpolation system and methodUS4698777 *25 May 19846 Oct 1987Fanuc Ltd.Industrial robot circular arc control method for controlling the angle of a toolUS4706204 *5 Mar 198510 Nov 1987Mitsubishi Denki Kabushiki KaishaController for movable robot for moving a work element through a continuous pathUS4716350 *8 Dec 198629 Dec 1987Ford Motor CompanyMethod to avoid singularity in a robot mechanismUS4728872 *26 Dec 19851 Mar 1988Fanuc LtdRobot path error correction systemUS4821207 *28 Apr 198711 Apr 1989Ford Motor CompanyAutomated curvilinear path interpolation for industrial robotsUS4884189 *25 Sep 198728 Nov 1989Kabushiki Kaisha Yaskawa Denki SeisakushoLocus interpolation deviceUS4888538 *13 Jan 198819 Dec 1989Belorussky Gosudarstvenny Universitet Imeni V.I. LeninaSystem for remote transmission of angular position and force between master and slave shaftsUS4906418 *24 Oct 19886 Mar 1990Toyoda-Koki Kabushiki-KaishaMethod for teaching a machining lineUS4912383 *20 Nov 198627 Mar 1990Toshiba Kikai Kabushiki KaishaMethod of controlling a robotUS4954762 *30 Jan 19904 Sep 1990Hitachi Keiyo Engineering Co., Ltd.Method and apparatus for controlling tracking path of working point of industrial robotUS4958293 *29 Feb 198818 Sep 1990Fanuc Ltd.Digitizing methodUS4959597 *28 Jul 198825 Sep 1990Fanuc LtdNumerical control apparatusUS5025405 *11 Oct 198918 Jun 1991Hewlett-Packard CompanyMethod of interpolating pixel valuesUS5028855 *26 Feb 19902 Jul 1991Siemens AktiengesellschaftControl process for a numerically controlled machine-tool or for a robotUS5030819 *28 Mar 19899 Jul 1991Claudio BorsariMethod and device for numerical control for electroerosion machineUS5129045 *29 Mar 19917 Jul 1992Siemens AktiengesellschaftMethod for the control of positioning systemsUS5136223 *8 Dec 19894 Aug 1992Fanuc Ltd.Robot operating method capable of manual correctionUS5140236 *29 Sep 198918 Aug 1992Fanuc Ltd.Spline interpolation methodUS5187418 *21 Jan 199116 Feb 1993Kabushiki Kaisha Yaskawa Denki SeisakushoMethod of controlling articulated robotUS5197014 *10 Jul 199023 Mar 1993Fanuc Ltd.Interpolation method in automatic programmingUS5201630 *28 May 199113 Apr 1993Sony CorporationIndustrial robot with servo systemUS5229698 *6 Aug 199020 Jul 1993Cincinnati Milacron Inc.Method and apparatus for sub-span interpolationUS5276383 *27 Aug 19914 Jan 1994Kabushiki Kaisha Kobe Seiko ShoRoute interpolation method for robotUS5295075 *25 Sep 199115 Mar 1994Johannes Heidenhain GmbhMethod and apparatus for machining workpieces with numerically controlled machinesUS5371836 *22 Aug 19896 Dec 1994Matsushita Electric Industrial Co., Ltd.Position teaching method and control apparatus for robotUS5396160 *11 Mar 19917 Mar 1995General Motors CorporationMethod of real-time machine path planning from a math modelUS5434793 *25 Sep 199118 Jul 1995Johannes Heidenhain GmbhMethod and apparatus for ascertaining tool path contours approximating curved contour intersection lines in numerically controlled machinesUS5438522 *26 Apr 19941 Aug 1995Cincinnati Milacron Inc.Method and apparatus for sub-span interpolationUS5457370 *8 Aug 199110 Oct 1995Digital Arts Film And Television Pty LtdMotion control system for cinematographyUS5572103 *12 Sep 19945 Nov 1996Fanuc, Ltd.Robot teaching program correction methodUS5600759 *1 Jul 19944 Feb 1997Fanuc Ltd.Robot capable of generating patterns of movement pathUS5608619 *13 Mar 19954 Mar 1997Asea Brown Boveri AbRobot control systemUS6801830 *16 Oct 20005 Oct 2004Kabushiki Kaisha Yaskawa DenkiOperation confirming method and device for industrial machineryUS7248012 *2 Jun 200424 Jul 2007Honda Motor Co., Ltd.Teaching data preparing method for articulated robotUS8160743 *16 Aug 200617 Apr 2012Brainlab AgAnthropomorphic medical robot arm with movement restrictionsUS821441518 Apr 20083 Jul 2012Motion Engineering IncorporatedInterpolator for a networked motion control system* Cited by examinerClassifications U.S. Classification700/262, 901/4, 901/3, 700/249, 700/252, 318/573, 708/290, 318/568.15, 700/187, 700/189, 318/568.18International ClassificationG05B19/41, B25J9/16, G05B19/425, B25J9/18Cooperative ClassificationG05B19/41, G05B2219/34098, B25J9/161, G05B19/425European ClassificationB25J9/16C3, G05B19/425, G05B19/41Legal EventsDateCodeEventDescription31 Mar 1997FPAYFee paymentYear of fee payment: 1229 Mar 1993FPAYFee paymentYear of fee payment: 83 Apr 1989FPAYFee paymentYear of fee payment: 416 Sep 1982ASAssignmentOwner name: HITACHI,LTD 5-1,MARUNOUCHI 1-CHOME,CHIYODA-KU,TOKYFree format text: ASSIGNMENT OF ASSIGNORS INTEREST.;ASSIGNOR:SUGIMOTO, KOICHI;REEL/FRAME:004037/0503Effective date: 19820907RotateOriginal ImageGoogle Home - Sitemap - USPTO Bulk Downloads - Privacy Policy - Terms of Service - About Google Patents - Send FeedbackData provided by IFI CLAIMS Patent Services©2012 Google