Symmetry calibration method for multi-configuration robots
CROSS-REFERENCE TO RELATED APPLICATIONS 
     The present application is a continuation of Ser. No. 115,654, filed Oct. 27, 1987, now abandoned, which was a continuation of Ser. No. 016,999 filed Feb. 19, 1987, now abandoned, which was a continuation of application Ser. No. 786,652 filed Oct. 11, 1985, now abandoned. 
    
    
     BACKGROUND OF THE INVENTION 
     The present invention relates to multi-configuration robots and, more particularly, to a method for calibrating the robot that utilizes the symmetrical geometry of two configurations of the robot. 
     The origin of a robot joint coordinate system must be accurately located in order for the arm solution to be accurate. Errors in the origin will cause distortions in the robot cartesian coordinate system. Other factors such as link length tolerances and skewed axes will produce distortions as well. 
     Many man hours are spent on most robot applications to teach the robot the specific program. If an encoder fails while the robot is in service, the origins will be lost. The new origin must be found so that the previously taught programs can be replayed without requiring reteaching. 
     Various methods have been proposed to allow calibration of the robot including calibration in the field after maintenance. For example, the robot can be calibrated initially at the factory with special brackets mounted on the robot after calibration to provide fixed reference points. When an encoder is replaced, a dial indicator can be screwed into the brackets and used to measure precisely when the robot joint is at the origin position. When all of the joints of the robot are in position, the new encoder is rotated to yield the same encoder count that was set at the factory. 
     Another method of calibrating a robot utilizes the gravity vector. A bubble level is placed on cast surfaces of the robot to establish an origin with respect to gravity. The theoretical origin of the joint coordinate system is, in general, unrelated to the direction of gravity. 
     The robot must be mounted on a level surface and the cast surfaces must be parallel to the theoretical link for the gravity origin to agree with the theoretical origin. These conditions are essentially impossible to control in field service factory environments. 
     BRIEF SUMMARY OF THE INVENTION 
     It is accordingly a general object of the invention to provide a calibration system for a plural axis robot capable of multi-configurations. 
     It is a specific object of the invention to provide a symmetrical calibration method for a multi-configuration robot. 
     It is a further object of the invention to provide a calibration method in which specific points in the robot envelope are selected and the robot is moved to each point twice using different configurations. A linear measurement is made from an arbitrary fixed surface to a selected point on the robot, e.g., the robot wrist, at each point in the envelope. The origin for an axis is determined when the measurements for both configurations at the envelope point are substantially equal. 
     It is a feature of the invention that the method can be performed both in the factory and in the field utilizing the inherent capabilities of the robot itself. 
     It is another feature of the invention that the calibration method can be performed without requiring special jigs and special fixtures. 
    
    
     BRIEF DESCRIPTION OF THE DRAWINGS 
     These objects and features of the invention will best be understood from a detailed description of a preferred embodiment of the invention, selected for purposes of illustration and shown in the accompanying drawings in which: 
     FIG. 1 is a block diagram of a plural axis robot, robot controller and input/output terminal; 
     FIGS. 2A through 2F are &#34;stick figures&#34; showing the calibration of the third axis of a plural axis robot; 
     FIGS. 2G and 2H are perspective views of the calibration technique depicted in FIGS. 2A through 2F; 
     FIGS. 3A through 3F are &#34;stick figures&#34; showing the calibration of the second axis of a plural axis robot; 
     FIGS. 3G and 3H are perspective views of the robot showing the calibration technique depicted in FIGS. 3A through 3F; 
     FIGS. 4A through 4G are &#34;stick figures&#34; illustrating the calibration of the fourth axis of a plural axis robot; 
     FIGS. 4H and 4I are perspective views of the robot showing the calibration technique depicted in FIGS. 4A through 4G; 
     FIG. 4J is a top view illustrating the calibration technique shown in FIGS. 4A through 4G; 
     FIGS. 5A through 5D are &#34;stick figures&#34; illustrating the calibration of the fifth axis of a plural axis robot; and, 
     FIGS. 5E and 5F are perspective views showing the calibration technique illustrated in the &#34;stick figures&#34; of FIGS. 5A through 5D. 
    
    
     DETAILED DESCRIPTION OF THE INVENTION 
     Turning now to the drawings, FIGS. 1 illustrates in block diagram form a plural axis robot 10 that is controlled by a controller 12. Input and output information to and from robot controller 12 is handled by a CRT/keyboard terminal 14. 
     The calibration method of the present invention is based on the fact that the robot 10 can reach most points in its envelope in multi-configurations. Specific points in the envelope are selected and the robot is then moved to each point twice using different configurations. Thereafter, a linear measurement is made from an arbitrary fixed surface to a selected point on the robot, such as the robot wrist, at each point in the envelope. The origin for an axis is determined when the measurements for both configurations at an envelope point are substantially equal. The substantially equal measurements are obtained by iteratively adjusting the origin for each axis by one of the commonly used methods, e.g. adjusting a number in the software of the robot controller, altering switches on a circuit board used to control the robot or rotating the encoder in its mounting on the robot. Thus, by properly selecting the points and direction of measurements, a very sensitive measure of the origin of axes 2 through 5 can be achieved. The origin for Axis 1 is determined by centering the robot between its mechanical limits. The origin for Axis 6 is arbitrary in theory. 
     FIGS. 2 through 5 illustrate the calibration technique of the present invention. Although the calibration sequence is performed in the order of Axes 2, 3, 4 and then 5, for purposes of explanation and understanding, the following description of the calibration technique will commence with a discussion of Axis 3: 
     Referring now to the perspective views of FIGS. 2G and 2H, the plural axis robot 10 has a base 16 upon which is rotatably mounted a first link 18. Link 18 is rotatable about Axis 1. A second link 20 is rotatably mounted on the first link 18 for rotation about Axis 2. Similarly, a third link 22 is rotatably mounted on link 20 for rotation about Axis 3. Link 22 has rotatably mounted thereon an extension 24 that is connected to a robot wrist 26. Extension 24 is not characterized as a &#34;link&#34; because it is capable only of rotation about Axis 4 (see FIGS. 4H ad 4I) without providing translational movement. The next &#34;link&#34;, as viewed in FIGS. 2G and 2H, is the fifth link identified by the reference numeral 28. The fifth link is rotatably mounted with respect to extension 24 through robot wrist 26 and is rotatable about Axis 5 (see FIGS. 5E and 5F). A flange 30 which constitutes the sixth link is rotatably mounted on the fifth link 28. Flange 30 is rotatable about Axis 6 as viewed in FIG. 2G. The rotatable flange 30 provides a mounting surface for bracket 32 which supports an appropriate tool such as a welding torch. 
     The previously mentioned linear distance measurements are made by a dial indicator 34 mounted on a conventional stand 36. The relationship of the dial indicator 34 to the flange 30 during measurement operations is shown in the perspective drawings of FIGS. 2 through 5. 
     Having described the rotatable elements and their corresponding axes of the plural axis robot 10, the calibration operations for each of the axis will now be described. As mentioned previously, for purposes of ease of understanding the calibration operation with respect to one axis, Axis 3 has been selected as the appropriate example. 
     Referring to the &#34;stick figures&#34; of FIGS. 2A through 2F and the corresponding perspective views of FIGS. 2G and 2H, the robot is initially positioned at a point similar to the home or origin position except that Axis 1 is rotated -90 degrees as shown in the drawings. The distance from the edge of flange 30 to an arbitrary fixed surface is measured. The distance is identified as (D1) in the &#34;stick figures&#34;. Axis 3 is then &#34;flipped&#34; -180 degrees as shown in FIGS. 2C and 2D in &#34;stick form&#34; and in the perspective views of FIGS. 2G and 2H. Finally, Axis 1 is rotated 180 degrees as shown in FIGS. 2E and 2F and the corresponding perspective views of FIGS. 2G and 2H. In theory, the flange 30 should return to the same point as shown in FIGS. 2A and 2B and the corresponding perspective view FIG. 2G. 
     Since the origin of Axis 3 may be in error, the actual distance (D2) from the flange 30 to the reference surface is different from the original distance (D1). This distance is used to calculate the error between the theoretical origin of Axis 3 and the actual origin Δθ 3  =0.5 * (D1-D2)/L(small angles) where &#34;L&#34; is the distance from Axis 3 to the point at which the measurement was made. In the limit, when Δθ 3  approaches zero, the small angle assumption becomes exact. 
     The choice of -90 degrees and 90 degrees as the two positions for Axis 1 is arbitrary. The only constraint is that the two positions be separated by 180 degrees. 
     Referring now to the &#34;stick figures&#34; of FIGS. 3A through 3F and the corresponding perspective views of FIGS. 3G and 3H, the same positions used for Axis 3 calibration suffice for Axis 2. However, the measurement is made along the Y-axis of the world as shown in the Figures. The error in origin of Axis 2 is: 
     
         Δθ.sub.2 =0.5 * (D1-D2)/L.sub.2 ; Δθ.sub.2 
    
     where L 2  is the length of the second link, i.e., the distance between Axes 2 and 3. 
     The origin of Axis 4 is determined with respect to the plane of rotation of Axis 1 as shown in the &#34;stick figures&#34; of FIGS. 4A through 4G and the corresponding perspective views of FIGS. 4H and 4I and the top view of FIGS. 4J. In the origin of Axis 4 is correct, Axis 5 moves on a plane parallel to the plane of rotation of Axis 1 when Axis 4 is 90 degrees or -90 degrees. The error in origin for Axis 4 is: 
     
         Δθ.sub.4 =0.5 * (D.sub.1 -D.sub.2)/L.sub.4 ; Δθ.sub.4 
    
     where L 4  is the distance from Axis 4 to the point on the flange 30 where the measurement is made. In the calibration sequence for Axis 4, the first link 18 is rotated through an angle of 2 Å. The angle A=ARCTAN(L4/l3) where L3 equals the distance from the third axis to the intersection of the fourth and fifth axes and L4 equals the distance from the intersection from fourth and fifth axes to the measurement point on flange 30. 
     The origin of Axis 5 is determined with respect to Axis 4. Thus, if Axis 5 is at 90 degrees or -90 degrees, then the fifth link 28 lies in the plane normal to Axis 4 as shown in FIGS. 5A through 5F. 
     The origin for Axis 1 is determined in a different manner. For Axis 1, the mounting surface can be treated as a &#34;link&#34; because the choice of an origin is arbitrary. While an origin may not exist in the theory, this is little comfort to the field service technician who must replace an encoder in the field. For Axis 1, therefore, the origin is selected as the angle that lies halfway between the positive and negative mechanical limits of travel. The operator rotates the first link 18 through robot controller 12 by means of keyed input to terminal 14. When the robot link 18 contacts the positive limit, the operator records the angle of Axis 1. The operation is then repeated for the negative limit and the two angle readings are averaged. The average is used as the Axis 1 origin. 
     Although the preceding description has been directed to a robot with six axes, it will be appreciated that the symmetrical calibration method of the present invention is applicable to robots with fewer axes that are capable of multiple configurations. Having described in detail a preferred embodiment of my invention, it will now be apparent to those skilled in the art that numerous modifications can be made therein without departing from the scope of the invention as defined in the following claims.