Articulated robot arm and method of moving same
TECHNICAL FIELD 
     Broadly speaking, this invention relates to an industrial robot. More particularly, in a preferred embodiment, this invention relates to methods and apparatus for accurately positioning the extremity of the arm of such a robot. 
     BACKGROUND OF THE INVENTION 
     The use of computer-controlled robots is becoming increasingly widespread in industry. Once their initial purchase cost has been amortized, experience has shown that robots are less expensive to operate, and considerably more reliable, than the human operators they replace, especially in repetitive assembly applications where human judgement is not a critical factor. 
     A typical robot arm will comprise three or more arm sections operatively coupled by computer controlled joints which may be analogized, for example, to the human shoulder, elbow and wrist joints. A &#34;hand&#34; is typically attached to the extremity of the arm to manipulate the workpiece, as required by the particular task to be performed. 
     For such an arm to be useful it is, of course, necessary to be able to move the arm so that the &#34;hand&#34; can pick up, manipulate, and then set down the workpiece. Typically, this is accomplished by noting the coordinates of the beginning and end positions of the hand and then computing the precise angle through which each joint must be rotated so that the hand reaches the desired end position. 
     In such an arrangement, the ultimate position of the hand depends not only on the degree of rotation of the &#34;wrist&#34; joint, but also on the degree of rotation of all other joints upstream of the wrist joint. Because of this interdependence, computation of the changes necessary in the various joint angles of the arm becomes exceedingly complex. In addition, because of the computational precision necessary, the time to complete the computation is relatively long, especially if an 8-bit microprocessor is used to perform the calculations. 
     SUMMARY OF THE INVENTION 
     As a solution to these and other problems, I propose to define the position of the arm by means of joint angles which are measured with respect to a fixed reference plane, for example the horizon, rather than by reference to the adjacent arm sections. Such an arrangement significantly reduces the complexity of the computations involved and results in a useful increase in the robot&#39;s throughput. 
     More specifically, in a preferred embodiment, my invention comprises a method of moving the extremity of an articulated, robot arm from a first to a second location, the arm including n arm sections pivotally mounted one to the other thereby defining n arm joints, the method comprising the step of rotating m of the joints to move the arm extremity towards the second location, 1≦m≦n, the angle through which each of the joints is thereby rotated being measured with respect to a common, fixed reference plane. 
    
    
     The invention and its mode of operation will be more fully understood from the following detailed description, when taken with the appended drawings, in which: 
     BRIEF DESCRIPTION OF THE DRAWINGS 
     FIG. 1 is a partially schematic, partially diagrammatic drawing of an illustrative computer controlled robot arm according to the invention; 
     FIG. 2 is a sketch illustrating the inherent principle of operation of the arm shown in FIG. 1; and 
     FIG. 3 is another sketch illustrating the principles of the invention. 
    
    
     DETAILED DESCRIPTION 
     The invention will now be described with reference to a robot arm having a plurality of arm sections and a corresponding plurality of independently-controlled servomotors at each of the arm joints. To simplify the explanation it will be assumed that arm motion occurs in only one plane, i.e., the plane of the drawing. One skilled in the art will appreciate, however, that the invention has a broader application and that the illustrative embodiment disclosed is not intended to limit the scope of the appended claims. 
     FIG. 1 depicts in partially schematic, partially diagramatic form an illustrative robot arm according to the invention. As shown, arm 10 comprises a base member 11 upon which is mounted a first servomotor 12. The shaft of servomotor 12 is connected, via some suitable gear mechanism, to the proximal end of a first arm section 13. The distal end of arm section 13 is connected to a second servomotor 14, thence, to the proximal end of a second arm section 16. The distal end of arm section 16 is connected to a third servomotor 17, thence, to the proximal end of a third arm section 18. Arm section 18, in turn, is connected at its distal end to a fourth servomotor 19 thence, to the proximal end of a fourth arm section 21. A mechanical hand 22 is connected to the distal end of the fourth arm section 21 and supports a typical workpiece 23. The servomotors 12, 14, 17 and 19 are respectively connected to, and controlled by, digital computers 26 through 29, via control lines 31 through 34, respectively. A fifth control line 36 is connected to a control circuit 37 to control the mechanical hand 22. Each of the servomotors includes some suitable means for generating a signal which is representative of the angle that the corresponding arm section assumes with respect to an arbitrary reference plane, for example, the horizon. As will be more fully explained below, this information is required so that the computers 12, 14, 17 and 19 can calculate the change in angle that their respective servomotors must make to move the hand to the desired location. 
     It should be appreciated that the arrangement shown in FIG. 1 is merely illustrative. For example, under some circumstances, it might be preferable to physically locate the servomotors on the base 11 and to couple the motion of the shafts to the corresponding joints by means of a series of endless drive belts, or the like. This latter arrangement would simplify measurement of the angle that each arm section makes with the reference plane, for example, by permitting the angles to be measured by means of shaft encoders mounted to each servomotor. If the reference plane is the horizon, for example, the system could be calibrated by extending the arm perfectly horizontal (i.e. so that all of the arm sections make an angle of 0° with respect to the horizon) and then rotating each encoders with respect to its servomotor shaft, such that the digital output therefrom is zero. An alternate way to determine the angle that each arm section makes with respect to the reference plane is to sum the changes in the included angles that are made by each pair of upstream arm-sections and to store the results of each summation for comparison with subsequent computations. In this latter case, calibration of the system would involve adjusting the shaft encoder, or other angle transducer, such that the output from the encoder was zero when adjacent arm sections were parallel. 
     Turning to FIG. 2, the mathematical principles underlying the invention will now be stated. It will be apparent that, in essence, we are concerned with accurately positioning the tip T of a robot arm having N-joints, the arm moving only in the plane of the paper. The problem is to relate the coordinates (X,Y) of tip T to the angle θ n  between each arm section and the common reference plane, i.e., the horizon, n=1, 2 . . . N, and to compute how to change the angles θ n  to move the tip of the arm to a new position having the coordinates (X E ,Y E ). In the prior art, the coordinate position (X,Y) was calculated from the joint angles θ n  * which, as will be seen from the drawing, are the angles lying between adjacent pairs of arm sections. As previously noted, the problem with this prior art approach is that the final position of a tip which is moved by a change in a given joint angle depends on the value of all upstream joint angles, which leads to great difficulty of control. In the instant invention, each angle θ n  is independently servoed, so that when one of the angles is changed all other θ n  &#39;s, may be controlled by their respective computers so that, if desired, they remain constant with respect to the reference horizon. In a real-life situation, all θ n  &#39;s will change, but the computation of the necessary changes in angle may be performed as if each angle changed independently, a considerable simplification. 
     Mathematically, the position of the tip T is given by the following equations: ##EQU1## 
     In physical terms, the above equations mean that if we change θ 2 , say, and hold θ 3 ,θ 4  . . . θ n  constant, the path along which tip T travels will have the same arc as the path travelled by joint J 3  which depends only on the change in θ 2  and the value of L 2 , the length of the corresponding arm-section. In other words, it is not necessary to consider any parameters except θ 2  and L 2  to determine the relative motion of the tip. By way of contrast, had we changed θ 2  * while keeping θ 3  *, θ 4  * . . . θ n  * constant, the arc moved by the tip would have had a radius equal to the distance between J and the tip and this, of course, depends on the exact values of θ 3  *,θ 4  *. . . θ n  *. This will become clearer when FIG. 3 is examined. Suppose it is desired to move the tip T from the point (X,Y) to a nearby new position (X E ,Y E ). FIG. 3 depicts the three arcs that the tip would move through if joints J n-1 , J n-2  and J n-3  were each separately changed. The problem is to decide which arcs to move along and by how much. Since we have assumed that the coordinates (X E ,Y E ) are nearby to (X,Y), the interactions between joints can be ignored and, in principle, one could calculate how to move the arm by a vector sum of the motion along the arcs. However, it is almost as accurate, and far easier, to allow the joints to move in such a way that the joint velocity is chosen according to how effectively the joint will move the tip towards the required new position. 
     There are several ways of doing this, for example the function: 
     
         V.sub.n =K Sin (θ.sub.E -θ.sub.n) 
    
     will move joint n in the required manner. For stability reasons, it is advantageous to add some degree of proportional control to the motion, for example according to the equation 
     
         V.sub.n =KL.sub.E Sin (θ.sub.E -θ.sub.n) 
    
     where L E  is the distance between P(X,Y) and P(X E ,Y E ) and V n  is the joint velocity. In the instant invention, the path which is taken by the arm is not the optimum path, which would, of course, be a straight line from coordinates P(X,Y) to coordinates P(X E ,Y E ), however, it is very nearly the optimum path. 
     Because each joint is servoed independently of the other joints, it is possible to substitute an analog control system for the digital system shown. In that case the input to the analog system is merely a string of position coordinates. The interaction between joints is taken care of by the fact that the joint angels are referred to the fixed reference plane. 
     The advantage of the novel method and apparatus disclosed and claimed herein is that it is no longer necessary to make lengthly calculations to accurately control the position of the arm, which yields the desired advantage of high speed and precise control. 
     One skilled in the art may make various changes and substitutions to the layout of parts shown without departing from the spirit and scope of the invention.