Abstract:
Disclosed is a teaching and playback method using a redundancy resolution parameter determined in conjunction with a joint structure, for a robot, and a method to apply analytic inverse kinematics to a robot having an elbow with an offset and a computer-readable medium of controlling the same. A reference plane variable with the joint structure is generated and an angle between the reference plane and an arm plane of the robot is used as the redundancy resolution parameter. The robot is taught and its operation is played back in differential inverse kinematics or analytic inverse kinematics using the resolution redundancy parameter.

Description:
CROSS-REFERENCE TO RELATED APPLICATIONS 
       [0001]    This application claims the benefit of Korean Patent Application No. 2009-0099003, filed on Oct. 16, 2009 in the Korean Intellectual Property Office, the disclosure of which is incorporated herein by reference. 
       BACKGROUND 
       [0002]    1. Field 
         [0003]    Example embodiments relate to a teaching and playback method for a robot having at least one redundancy resolution, particularly a robot with an elbow having an offset, using a redundancy resolution parameter determined in conjunction with a joint structure. 
         [0004]    2. Description of the Related Art 
         [0005]    A teaching and playback algorithm based on Inverse Kinematics (IK) is used for control of an industrial robot. A robot arm such as a 7-axis manipulator has recently emerged to mimic the natural movement of the human arm. 
         [0006]    In general, differential IK and analytical IK are used as IK. It is known that analytical IK is restrictively applicable to a Spherical-Regulated-Spherical (S-R-S) manipulator which allows for geometric and algebraic analyses. 
         [0007]    There are basically six coordinate system parameters for an end-effector of a robot, and one or more redundancy resolution parameters are defined for posture control. An arm angle is used as a redundancy resolution parameter. The arm angle is defined as an angle between a reference plane formed by a reference vector and a shoulder and wrist of the robot and an arm plane formed by the shoulder, elbow, and wrist of the robot. 
         [0008]    In differential IK, the arm angle is used for Extended Jacobian as a parameter of a cost function, whereas in analytical IK, the arm angle is used as a parameter of operational space. 
         [0009]    Even though the robot has the coordinate system parameters for the end-effector and seven teaching values as arm angles, one arm angle may represent two shoulder postures at the same time. Therefore, there is a limit on the playback function of the robot to return to the same position and posture all the time. 
       SUMMARY 
       [0010]    Therefore, it is an aspect of the example embodiments to provide a teaching and playback method using a redundancy resolution parameter determined in conjunction with a joint structure for a robot having at least one redundancy resolution. 
         [0011]    It is another aspect of the example embodiments to provide a method to apply analytic Inverse Kinematics (IK) to a robot with an elbow having an offset. 
         [0012]    The foregoing and/or other aspects are achieved by providing a teaching and playback method for a robot including performing a teaching and playback operation based on inverse kinetics for the robot, for posture control, in operational space, by calculating joint angles of the robot in joint space using end-effector parameters and a redundancy resolution parameter of the robot. The redundancy resolution parameter is determined in conjunction with a joint structure of the robot. 
         [0013]    The redundancy resolution parameter may be an arm angle which is an angle between a set reference plane and an arm plane formed by a shoulder, elbow, and wrist of the robot. 
         [0014]    The robot may include a Spherical-Regulated-Spherical (S-R-S) manipulator having an elbow without an offset or a Spherical-Articulated-Spherical (S-A-S) manipulator having an elbow with an offset. 
         [0015]    The teaching and playback method may further include determining whether a posture of the robot is one of a positive and negative by comparing a set angle with an angle θ S  between a second joint axis of the robot and a vector obtained by projecting a vector directed from the shoulder to the wrist of the robot on an X-Y plane of a first joint coordinate system based on Denavit-Hartenberg (D-H) convention parameters. If the angle θ S  is between 0 and 180 degrees, the posture of the robot may be determined to be positive, and if the angle θ S  is below 0 or above 180 degrees, the posture of the robot may be determined to be negative. 
         [0016]    The reference plane may be one of a positive reference plane and a negative reference plane according to a posture of the robot. The positive reference plane may be generated to be a plane formed by the shoulder and the wrist of the robot and a first reference vector which is a cross product between the vector directed from the shoulder to wrist of the robot and an axial-direction vector of the second joint axis of the robot, when the posture of the robot is positive, and the negative reference plane may be generated to be a plane formed by the shoulder and wrist of the robot and a second reference vector which is a cross product between the axial-direction vector of the second joint axis of the robot and the vector directed from the shoulder to the wrist of the robot, when the posture of the robot is negative. 
         [0017]    The arm angle and a type of the reference plane may be represented in one parameter by setting the arm angle to range from 0 to 360 degrees and assigning a sign indicating one of the positive and negative reference plane. 
         [0018]    Information indicating whether the reference plane is one of the positive and negative plane may be stored as a parameter. 
         [0019]    The inverse kinematics may be differential or analytic inverse kinematics. The teaching and playback operation may be performed in the analytic inverse kinematics by setting a center of a fourth axis of the robot as an elbow, generating two virtual elbows based on Denavit-Hartenberg (D-H) convention parameters, and interpreting an initial posture of the robot and a target posture that results from moving the arm plane by a predetermined angle, using the elbow and the virtual elbows. 
         [0020]    The foregoing and/or other aspects are achieved by providing a teaching and playback method for a robot having an elbow with an offset includes performing a teaching and playback operation based on analytic inverse kinetics for the robot for posture control, using end-effector parameters and a redundancy resolution parameter of the robot. The teaching and playback operation may be performed by setting a center of a fourth axis of the robot as an elbow, generating two virtual elbows based on Denavit-Hartenberg (D-H) convention parameters, and interpreting an initial posture of the robot and a target posture that results from moving a set reference plane and an arm plane defined by a shoulder, elbow, and wrist of the robot by a predetermined angle, using the elbow and the virtual elbows. 
         [0021]    The redundancy resolution parameter may be determined in conjunction with a joint structure of the robot. 
         [0022]    The redundancy resolution parameter may be an arm angle which is an angle between the set reference plane and the arm plane. 
         [0023]    According to another aspect of one or more embodiments, there is provided at least one computer readable medium including computer readable instructions that control at least one processor to implement methods of one or more embodiments. 
         [0024]    Additional aspects of the example embodiments will be set forth in part in the description which follows and, in part, will be apparent from the description, or may be learned by practice of the disclosure. 
     
    
     
       BRIEF DESCRIPTION OF THE DRAWINGS 
         [0025]    These and/or other aspects will become apparent and more readily appreciated from the following description of the embodiments, taken in conjunction with the accompanying drawings of which: 
           [0026]      FIG. 1  illustrates an overall control method for a 7-axis robot according to example embodiments. 
           [0027]      FIG. 2  is a flowchart illustrating a method of teaching the 7-axis robot according to example embodiments. 
           [0028]      FIG. 3  illustrates teaching and playback for the 7-axis robot according to example embodiments. 
           [0029]      FIG. 4  illustrates a redundancy resolution parameter based on a joint structure of the 7-axis robot according to example embodiments. 
           [0030]      FIG. 5  is a table listing Denavit-Hartenberg (D-H) convention parameters for teaching and playback for the 7-axis robot according to example embodiments. 
           [0031]      FIG. 6  illustrates a method of setting an elbow of the 7-axis robot having an elbow offset and a virtual elbow according to example embodiments. 
       
    
    
     DETAILED DESCRIPTION 
       [0032]    Reference will now be made in detail to embodiments, examples of which are illustrated in the accompanying drawings, wherein like reference numerals refer to like elements throughout. 
         [0033]      FIG. 1  illustrates an overall control method for a 7-axis robot according to example embodiments. Six coordinates (i.e. x, y, z, roll, pitch and yaw) as end-effector parameters of a robot and at least one redundancy resolution parameter exist in operational space. Among the end-effector parameters of the robot, x, y and z are three-dimensional position coordinates and roll, pitch and yaw are rotation angles with respect to x-, y-, and z-axis directions, respectively. The redundancy resolution parameter is an arm angle which will be described later. 
         [0034]    Target values of the above-described parameters are set for the robot and a time-dependent trajectory is planned from a current state to a target state. In IK, the planned parameters are converted to joint values of the robot in joint space and a torque value is calculated using the joint values and input to each motor of the robot. 
         [0035]      FIG. 2  is a flowchart illustrating a method of teaching the 7-axis robot according to example embodiments. 
         [0036]    Referring to  FIG. 2 , an arm end position corresponding to x, y, z, roll, pitch and yaw that represent a position and rotation angle of the end-effector of the robot is taught to the robot in step  20 . In step  40 , it is determined whether the arm end position has been completely taught. Upon completion of the arm end position teaching, the position of the arm end is fixed in step  60 . Then an arm angle is taught to the robot in step  80  and it is determined whether the arm angle teaching has been completed in step  100 . Upon completion of the arm angle teaching, parameters indicating the position of the arm end and the arm angle are stored in step  120 . A playback operation is performed using these taught parameter values in IK, which will be described with reference to  FIG. 3 . 
         [0037]      FIG. 3  illustrates teaching and playback for a robot according to example embodiments. The robot may be a multi-joint robot having six or more axes. Hereinbelow, the robot is described as a 7-axis robot having one redundancy resolution. 
         [0038]    As illustrated in  FIG. 3 , teaching and playback for the 7-axis robot is performed through differential IK and analytic IK according to example embodiments. Both the IKs involve robot motion planning and robot operation, based on a redundancy resolution parameter. Now a description will be made of a control flow including a motion planning stage, an IK stage, and a robot stage. 
         [0039]    The motion planning stage includes planning the end-effector parameters x, y, z, roll, pitch and yaw and the redundancy resolution parameter, i.e. arm angle over all motions. The redundancy resolution parameter, namely the arm angle is an angle between a reference plane and an arm plane. A reference vector {circumflex over (V)} is variably set according to the joint structure of a shoulder of the robot, as described later in detail with reference to  FIG. 4 . Considering a robot with an elbow having an offset, the center of a fourth axis is used, instead of the point of intersection between third and fifth axes, for positioning an elbow of the robot. As this reference plane and the arm angle are stored, a posture of the robot may be uniquely represented in any area in which the arm angle is defined. This is used as a method of teaching a redundancy resolution. 
         [0040]    The IK stage is divided into differential IK and analytic IK, for example, according to control methods for a 7-axis manipulator. The IK stage involves calculation for each joint of the robot of a target joint value, an angular speed, an angular acceleration, torque, etc. using target values obtained from the motion planning. For differential IK-based redundancy resolution control, a cost function of the difference between a current arm angle and a target arm angle is used. The differential IK-based redundancy resolution control includes control of a redundancy resolution through null-space control or Extended Jacobian. On the other hand, analytic IK involves calculation of joint values corresponding to the end-effector parameters including x, y, z, roll, pitch and yaw, and the redundancy resolution parameter consisting arm angle, either geometrically or algebraically. To be more specific, the analytic IK includes a method of interpreting and applying the redundancy resolution and a method of determining a solution from among a plurality of joint values. In particular, the analytic IK includes a method of interpreting an elbow offset manipulator and applying an arm angle, which will be described later in detail. 
         [0041]    The robot stage involves actual operation of the robot by motors in response to input of the calculated target values, and output of feedback values by an encoder. 
         [0042]      FIG. 4  illustrates a redundancy resolution parameter based on a joint structure of the 7-axis robot according to example embodiments, and  FIG. 5  is a table listing Denavit-Hartenberg (D-H) convention parameters for teaching and playback for the 7-axis robot according to example embodiments. With reference to  FIGS. 4 and 5 , the teaching and playback method for a robot according to the example embodiments will be described in the context of a 7-axis elbow offset manipulator. The following provides detail regarding the use of forward IK to calculate an arm angle. 
         [0043]    For teaching and playback of the 7-axis elbow offset manipulator, the D-H convention parameters illustrated in  FIG. 5  are used and values a and d are arbitrarily selected. 
         [0044]    The redundancy resolution parameter (arm angle, ψ) is defined as follows. The redundancy resolution parameter includes a sign and a value. The sign represents a reference plane to be used, and the value represents an angle with respect to the reference plane. According to signs, positive and negative reference planes exist as illustrated in  FIG. 4 . Postures of a robot corresponding to the positive and negative reference planes are referred to as positive and negative postures, respectively. All postures that can be assumed with respect to an arm plane are divided into two types.
       If 0≦θ s &lt;π, positive posture (+)   else negative posture (−)       
 
         [0047]    where θ S  is an angle between a second joint axis and a vector V SW  directed from the shoulder to the wrist, projected to the X-Y plane of a first coordinate system based on the D-H convention parameters. The above posture classification is available when each of the remaining axes except for the fourth axis is in a rotation range of 180 to 360 degrees. If the fourth axis rotates 180 degrees or more, four types of postures are defined. A fixed vector {circumflex over (V)} is determined as follows to determine a reference plane based on the determined posture.
       If positive posture (+), {circumflex over (V)}=u SW ×u 2z      else negative posture (−), {circumflex over (V)}=u 2z ×u SW          
 
         [0050]    where u SW  is a unit vector of V SW  and u 2z  is an axial-direction (z-axis direction) unit vector of the second joint axis. 
         [0051]    The reference plane is generated using the determined fixed vector {circumflex over (V)} and  SW  and an arm plane and a rotation angle are calculated, to calculate an arm angle. Both the arm angle and the type of the reference plane may be represented by one parameter by setting the range of the arm angle to be 0 to 360 degrees and assigning a sign to the arm angle according to the reference plane. Also, information about the reference plane may be stored as another parameter. 
         [0052]    The application of the above values to IK will be described below. First, the following Jacobian is calculated in differential IK. 
         [0000]        J   ψ ={dot over (ψ)}/{dot over (θ)}
 
         [0053]    The above Jacobian is applied to a null-space controller or Extended or Augmented Jacobian, thereby making the manipulator move by a fine displacement and finally reach the target posture. For example, the following equation describes application of the Jacobian to the null-space controller during a speed level control 
         [0000]      {dot over (θ)}= J   +   {dot over (x)}+[J   ψ ( I−J   +   J )] + ({dot over (ψ)}− J   ψ   J   +   {dot over (x)} )
 
         [0054]    Analytic IK is divided into two parts, initial posture analysis and target posture analysis. An initial posture is a posture of the robot when ψ=0 and an elbow is defined for analysis as illustrated in  FIG. 6 .  FIG. 6  illustrates a method of setting an elbow of the 7-axis robot having an elbow offset and a virtual elbow according to example embodiments. Conventional analytic IK designates the point of intersection of the central lines of the third and fifth axes as an elbow, whereas the center of the fourth axis is set as an elbow in real implementation. 
         [0055]    Two virtual elbow joints E 1  and E 2  are formed based on the D-H convention parameters. E 1  is a point apart from the shoulder by a distance d SE1  in the direction of the rotation axis of the third axis and E 2  is a point apart from the wrist by a distance −d SE1  in the direction of the rotation central axis of the fifth axis. By setting the parameter a from the shoulder and the wrist to 0 in the D-H convention parameter table, 
         [0000]        3 l SE     1   =[00d SE     1   ] T    
         [0000]        3 l E     2     W =[00 d E     2     W ] T    
         [0056]    Also, a base of the robot and the manipulator is in the following relationship. 
         [0000]    
       
         
           
             
               l 
               BS 
                 
                 
                 
               0 
             
             = 
             
               
                 [ 
                 
                   
                     
                       0 
                     
                     
                       0 
                     
                     
                       
                         d 
                         BS 
                       
                     
                   
                 
                 ] 
               
               T 
             
           
         
       
       
         
           
             
               l 
               WT 
                 
                 
                 
               7 
             
             = 
             
               
                 [ 
                 
                   
                     
                       0 
                     
                     
                       0 
                     
                     
                       
                         d 
                         WT 
                       
                     
                   
                 
                 ] 
               
               T 
             
           
         
       
       
         
           
             
               d 
               SE 
             
             = 
             
               
                 
                   d 
                   
                     SE 
                     1 
                   
                   2 
                 
                 + 
                 
                   a 
                   E 
                   2 
                 
               
             
           
         
       
       
         
           
             
               d 
               EW 
             
             = 
             
               
                 
                   d 
                   
                     
                       E 
                       2 
                     
                      
                     W 
                   
                   2 
                 
                 + 
                 
                   a 
                   E 
                   2 
                 
               
             
           
         
       
       
         
           
             
               θ 
               
                 ∠ 
                  
                 
                     
                 
                  
                 
                   E 
                   1 
                 
                  
                 SE 
               
             
             = 
             
               Atan 
                
               
                 ( 
                 
                   
                     a 
                     E 
                   
                   / 
                   
                     d 
                     
                       SE 
                       1 
                     
                   
                 
                 ) 
               
             
           
         
       
       
         
           
             
               θ 
               
                 ∠ 
                  
                 
                     
                 
                  
                 
                   E 
                   2 
                 
                  
                 WE 
               
             
             = 
             
               Atan 
                
               
                 ( 
                 
                   
                     a 
                     E 
                   
                   / 
                   
                     d 
                     
                       
                         E 
                         2 
                       
                        
                       S 
                     
                   
                 
                 ) 
               
             
           
         
       
       
         
           
             
               θ 
               offset 
             
             = 
             
               
                 θ 
                 
                   ∠ 
                    
                   
                       
                   
                    
                   
                     E 
                     1 
                   
                    
                   SE 
                 
               
               + 
               
                 θ 
                 
                   ∠ 
                    
                   
                       
                   
                    
                   
                     E 
                     2 
                   
                    
                   WE 
                 
               
             
           
         
       
       
         
           
             
               R 
               i 
                 
                 
                 
               
                 i 
                 - 
                 1 
               
             
             = 
             
               [ 
               
                 
                   
                     
                       cos 
                        
                       
                           
                       
                        
                       
                         θ 
                         i 
                       
                     
                   
                   
                     
                       
                         - 
                         sin 
                       
                        
                       
                           
                       
                        
                       
                         θ 
                         i 
                       
                        
                       cos 
                        
                       
                           
                       
                        
                       
                         α 
                         i 
                       
                     
                   
                   
                     
                       sin 
                        
                       
                           
                       
                        
                       
                         θ 
                         i 
                       
                        
                       sin 
                        
                       
                           
                       
                        
                       
                         α 
                         i 
                       
                     
                   
                 
                 
                   
                     
                       sin 
                        
                       
                           
                       
                        
                       
                         θ 
                         i 
                       
                     
                   
                   
                     
                       cos 
                        
                       
                           
                       
                        
                       
                         θ 
                         i 
                       
                        
                       cos 
                        
                       
                           
                       
                        
                       
                         α 
                         i 
                       
                     
                   
                   
                     
                       
                         - 
                         cos 
                       
                        
                       
                           
                       
                        
                       
                         θ 
                         i 
                       
                        
                       sin 
                        
                       
                           
                       
                        
                       
                         α 
                         i 
                       
                     
                   
                 
                 
                   
                     0 
                   
                   
                     
                       sin 
                        
                       
                           
                       
                        
                       
                         α 
                         i 
                       
                     
                   
                   
                     
                       cos 
                        
                       
                           
                       
                        
                       
                         α 
                         i 
                       
                     
                   
                 
               
               ] 
             
           
         
       
     
         [0057]    The initial posture with ψ=0 is analyzed as follows. First, θ 0   1 , θ 0   2 , θ 0   3  and θ 0   4  representing the initial posture of the robot are defined. θ 0   1  represents the value of an i th  joint for the initial posture. Unless the poise of the end-effector is changed, the position of the wrist is always the same. Hence, θ 4  is constant irrespective of ψ. That is, θ 4 =θ 0   4 , which is calculated geometrically by 
         [0000]    
       
         
           
             
               θ 
               4 
               0 
             
             = 
             
               π 
               - 
               
                 θ 
                 
                   ∠ 
                    
                   
                       
                   
                    
                   SEW 
                 
               
               + 
               
                 θ 
                 offset 
               
             
           
         
       
       
         
           
             
               θ 
               
                 ∠ 
                  
                 
                     
                 
                  
                 SEW 
               
             
             = 
             
               π 
               - 
               
                 acos 
                 ( 
                 
                   
                     
                       
                          
                         
                           V 
                           SW 
                         
                          
                       
                       2 
                     
                     - 
                     
                       d 
                       SE 
                       2 
                     
                     - 
                     
                       d 
                       EW 
                       2 
                     
                   
                   
                     2 
                      
                     
                       d 
                       SE 
                     
                      
                     
                       d 
                       EW 
                     
                   
                 
                 ) 
               
             
           
         
       
       
         
           
             
               V 
               SW 
             
             = 
             
               
                 x 
                 7 
                   
                   
                   
                 0 
               
               - 
               
                 l 
                 BS 
                   
                   
                   
                 0 
               
               - 
               
                 
                   R 
                   7 
                     
                     
                     
                   0 
                 
                  
                 
                   l 
                   WT 
                     
                     
                     
                   7 
                 
               
             
           
         
       
     
         [0058]    Then θ α  is defined as ∠ESW and θ β  is defined as an angle between u 1z  and V SW . 
         [0000]    
       
         
           
             
               θ 
               α 
             
             = 
             
               asin 
                
               
                 ( 
                 
                   
                     
                       d 
                       EW 
                     
                      
                     
                       sin 
                        
                       
                         ( 
                         
                           π 
                           - 
                           
                             θ 
                             
                               ∠ 
                                
                               
                                   
                               
                                
                               SEW 
                             
                           
                         
                         ) 
                       
                     
                   
                   
                     d 
                     SW 
                   
                 
                 ) 
               
             
           
         
       
       
         
           
             
               θ 
               β 
             
             = 
             
               Atan 
                
               
                   
               
                
               2 
                
               
                 ( 
                 
                   
                     
                       u 
                       
                         1 
                          
                         x 
                       
                     
                     ∘ 
                     
                       V 
                       SW 
                     
                   
                   , 
                   
                     
                       u 
                       
                         1 
                          
                         z 
                       
                     
                     ∘ 
                     
                       V 
                       SW 
                     
                   
                 
                 ) 
               
             
           
         
       
     
         [0059]    From the above equations, other joint angles are calculated by 
         [0000]      θ 1   0   =A  tan 2(− u   x   0   ×u   2z   ,u   y   0   ×u   2z  
 
         [0000]      θ 2   0 =θ β −θ α −θ ∠E     1     SE  
 
         [0000]      θ 3   0 =0
 
         [0060]    According to the reference plane and the reference vector, u 2z  is geometrically determined by the following equation. 
         [0000]    
       
      
       u 
       2z 
       ={circumflex over (V)}×V 
       SW  
      
     
         [0061]    θ 1  is calculated and selected according to the positive or negative posture as described in relation to the arm angle definition. θ 2,3  is calculated by a geometrical analysis between V SW  and a link and θ 3  is always 0 when ψ=0. 
         [0062]    Now, a detailed description will be made of analysis of the target posture. The target posture analysis includes calculating a posture of the manipulator having an arm angle changed by ψ with respect to the initial posture. The target posture analysis is carried out by analyzing three parts, that is, the elbow, the shoulder and the wrist. 
         [0063]    The elbow analysis is made geometrically. Because θ 4  is independent of ψ as stated before, θ 4  is given as 
         [0000]      θ 4 =π−θ ∠SEW +θ offset  
 
         [0064]    The shoulder is analyzed as follows. When ψ=0, the direction of the elbow is known from θ 0   1 , θ 0   2 , θ 0   3  and θ 0   4 . Hence, a target elbow direction is derived by 
         [0000]        0 R 4 = 0 R nψ   0 R 4   0    
         [0000]        0   R   4   0 =( 0   R   1 | θ     1       0   )( 0   R   2 | θ     2       0   )( 0   R   3 | θ     3       0   )( 0   R   4 | θ     4       0   ) 
         [0000]        0   R   nψ   =I   3 +sin ψ[ n ×]+(1−cos ψ)[ n×]   2  
 
         [0065]    where  0 R 0   4  is a rotation matrix from the base to the coordinates of the fourth axis when ψ=0, and  0 R 0   nψ  is a rotation matrix obtained by using the Rodriques&#39;s formula with respect to the reference axis V SW  and the arm angle ψ. The following equation is derived from the above equations. 
         [0000]        0 R 3 = 0 R nψ   0 R 3   0    
         [0066]    If θ S  is a set of θ 1 , θ 2  and θ 3 ,  0 R 3  and a rotation matrix R(θ S ) are expressed as 
         [0000]    
       
         
           
             
               R 
               3 
                 
                 
                 
               0 
             
             = 
             
               [ 
               
                 
                   
                     
                       s 
                       11 
                     
                   
                   
                     
                       s 
                       12 
                     
                   
                   
                     
                       s 
                       13 
                     
                   
                 
                 
                   
                     
                       s 
                       21 
                     
                   
                   
                     
                       s 
                       22 
                     
                   
                   
                     
                       s 
                       23 
                     
                   
                 
                 
                   
                     
                       s 
                       31 
                     
                   
                   
                     
                       s 
                       32 
                     
                   
                   
                     
                       s 
                       33 
                     
                   
                 
               
               ] 
             
           
         
       
       
         
           
             
               R 
                
               
                 ( 
                 
                   θ 
                   3 
                 
                 ) 
               
             
             = 
             
               
                 
                   
                     R 
                     1 
                       
                       
                       
                     0 
                   
                    
                   
                     ( 
                     
                       θ 
                       1 
                     
                     ) 
                   
                 
                 · 
                 
                   
                     R 
                     2 
                       
                       
                       
                     1 
                   
                    
                   
                     ( 
                     
                       θ 
                       2 
                     
                     ) 
                   
                 
                 · 
                 
                   
                     R 
                     3 
                       
                       
                       
                     2 
                   
                    
                   
                     ( 
                     
                       θ 
                       3 
                     
                     ) 
                   
                 
               
               = 
               
                 [ 
                 
                   
                     
                       … 
                     
                     
                       … 
                     
                     
                       
                         
                           c 
                           
                             θ 
                             1 
                           
                         
                          
                         
                           s 
                           
                             θ 
                             2 
                           
                         
                       
                     
                   
                   
                     
                       … 
                     
                     
                       … 
                     
                     
                       
                         
                           s 
                           
                             θ 
                             1 
                           
                         
                          
                         
                           s 
                           
                             θ 
                             2 
                           
                         
                       
                     
                   
                   
                     
                       
                         
                           - 
                           
                             s 
                             
                               θ 
                               2 
                             
                           
                         
                          
                         
                           c 
                           
                             θ 
                             3 
                           
                         
                       
                     
                     
                       
                         
                           s 
                           
                             θ 
                             2 
                           
                         
                          
                         
                           s 
                           
                             θ 
                             3 
                           
                         
                       
                     
                     
                       
                         c 
                         
                           θ 
                           2 
                         
                       
                     
                   
                 
                 ] 
               
             
           
         
       
     
         [0067]    where s e  and c e  are short for sin θ and cos θ. Using the above two equations, shoulder joint values are computed by 
         [0000]      θ 1   =A  tan 2( s   23   ,s   13 )
 
         [0000]      θ 2   =A  tan 2(√{square root over ( s   13   2   +s   23   2 )}, s   33 )
 
         [0000]      θ 3   =A  tan 2( s   32   ,−s   31 )
 
         [0068]    where s ij  is a component of the matrix  0 R 3  and the matrix  0 R 3  is valid when s 13  and s 23  are not zeros. Aside from the above equations, other possible solutions are given as 
         [0000]      θ 1   =A  tan 2(− s   23   ,−s   13 )
 
         [0000]      θ 2   =A  tan 2(−√{square root over ( s   13   2   +s   23   2 )}, s   33 )
 
         [0000]      θ 3   =A  tan 2(− s   32   ,−s   31 )
 
         [0069]    In other words, one of the two sets of solutions is selected by determining whether the robot&#39;s posture is positive or negative. 
         [0070]    Regarding the wrist analysis, the relationship between a fifth joint and a sixth joint is calculated by analyzing target wrist joint angles by 
         [0000]        4′ R 7 = 4 R 4′   T0 R 4   T0 R 7    
         [0071]    where  0 R 4′  is a rotation offset between the fourth axis and the fifth axis,  0 R T   4  is a value mathematically calculated by IV-B.1 and IV-B.2, and  0 R 7  is a direction of the end-effector. The wrist is similar to the shoulder in structure. Therefore, if θ W  is a set of θ 5 , θ 6  and θ 7 , the following equations are derived according to the foregoing analysis. 
         [0000]    
       
         
           
             
               R 
               7 
                 
                 
                 
               
                 4 
                 ′ 
               
             
             = 
             
               [ 
               
                 
                   
                     
                       w 
                       11 
                     
                   
                   
                     
                       w 
                       12 
                     
                   
                   
                     
                       w 
                       13 
                     
                   
                 
                 
                   
                     
                       w 
                       21 
                     
                   
                   
                     
                       w 
                       22 
                     
                   
                   
                     
                       w 
                       23 
                     
                   
                 
                 
                   
                     
                       w 
                       31 
                     
                   
                   
                     
                       w 
                       32 
                     
                   
                   
                     
                       w 
                       33 
                     
                   
                 
               
               ] 
             
           
         
       
       
         
           
             
               R 
                
               
                 ( 
                 
                   θ 
                   w 
                 
                 ) 
               
             
             = 
             
               
                 
                   
                     R 
                     5 
                       
                       
                       
                     4 
                   
                    
                   
                     ( 
                     
                       θ 
                       5 
                     
                     ) 
                   
                 
                 · 
                 
                   
                     R 
                     6 
                       
                       
                       
                     5 
                   
                    
                   
                     ( 
                     
                       θ 
                       6 
                     
                     ) 
                   
                 
                 · 
                 
                   
                     R 
                     7 
                       
                       
                       
                     6 
                   
                    
                   
                     ( 
                     
                       θ 
                       7 
                     
                     ) 
                   
                 
               
               = 
               
                 [ 
                 
                   
                     
                       … 
                     
                     
                       … 
                     
                     
                       
                         
                           c 
                           
                             θ 
                             5 
                           
                         
                          
                         
                           s 
                           
                             θ 
                             6 
                           
                         
                       
                     
                   
                   
                     
                       … 
                     
                     
                       … 
                     
                     
                       
                         
                           s 
                           
                             θ 
                             5 
                           
                         
                          
                         
                           s 
                           
                             θ 
                             6 
                           
                         
                       
                     
                   
                   
                     
                       
                         
                           - 
                           
                             s 
                             
                               θ 
                               6 
                             
                           
                         
                          
                         
                           c 
                           
                             θ 
                             7 
                           
                         
                       
                     
                     
                       
                         
                           s 
                           
                             θ 
                             6 
                           
                         
                          
                         
                           s 
                           
                             θ 
                             7 
                           
                         
                       
                     
                     
                       
                         c 
                         
                           θ 
                           6 
                         
                       
                     
                   
                 
                 ] 
               
             
           
         
       
     
         [0072]    Based on the above equations, the following joint angle solutions are obtained. 
         [0000]      θ 5   =A  tan 2( w   23   ,w   13 ) θ 5   =A  tan 2(− w   23   ,−w   13 )
 
         [0000]      θ 6   =A  tan 2(√{square root over ( w   13   2   +w   23   2 )}, w   33 ) or θ 6   =A  tan 2(−√{square root over (w 13   2   w   23   2 )}, w   33 )
 
         [0000]      θ 7   =A  tan 2( w   32   ,−w   31 ) θ 7   =A  tan 2(− w   32   ,−w   31 )
 
         [0073]    where w ij  is a component of the matrix  0 R 7  and the matrix  0 R 7  is valid when w 13  and w 23  are not zeros. As stated before in relation to the shoulder analysis, one of the two sets of solutions may be selected. However, if there is no reference value for the wrist, a solution most similar to the wrist posture of the manipulator is selected. 
         [0074]    The above method is summarized as follows. The respective equations are used to derive the values of the first, second and third axes and the values of the fifth, sixth and seventh axes by comparing algebraic equations with analytic equations.  i−1 R i  represents rotation from an (i−1) th  coordinate system to an i th  coordinate system,  0 Rnψ represents a Rodrigues rotation with respect to V SW .  4 R 4′  represents an offset between a fourth coordinate system and a fifth coordinate system. 
         [0000]        0 R 3 = 0 R nφ   0 R 3   0    
         [0000]        4′ R 7 = 4 R 4′   T0 R 4   T0 R 7    
         [0075]    Since the position of the wrist is always constant unless the poise of the end-effector is changed, θ 4  is constant irrespective of ψ. Therefore, θ 4  is equal to θ 4  of the initial posture. When a plurality of solutions are derived for the shoulder, a solution is selected according to a posture sign, and when a plurality of solutions are derived for the wrist, a solution most similar to the current structure is selected. 
         [0076]    As is apparent from the above description, the teaching and playback method based on control of a redundancy resolution for a robot according to example embodiments eliminates the uncertainty of teaching and playback for a multi-joint robot. In particular, the teaching and playback method is provided by applying analytic IK to an S-A-S robot with an elbow having an offset. 
         [0077]    The above-described embodiments may be recorded in computer-readable media including program instructions to implement various operations embodied by a computer. The media may also include, alone or in combination with the program instructions, data files, data structures, and the like. Examples of computer-readable media (computer-readable storage devices) include magnetic media such as hard disks, floppy disks, and magnetic tape; optical media such as CD ROM disks and DVDs; magneto-optical media such as optical disks; and hardware devices that are specially configured to store and perform program instructions, such as read-only memory (ROM), random access memory (RAM), flash memory, and the like. The computer-readable media may be a plurality of computer-readable storage devices in a distributed network, so that the program instructions are stored in the plurality of computer-readable storage devices and executed in a distributed fashion. The program instructions may be executed by one or more processors or processing devices. The computer-readable media may also be embodied in at least one application specific integrated circuit (ASIC) or Field Programmable Gate Array (FPGA). Examples of program instructions include both machine code, such as produced by a compiler, and files containing higher level code that may be executed by the computer using an interpreter. The described hardware devices may be configured to act as one or more software modules in order to perform the operations of the above-described exemplary embodiments, or vice versa. 
         [0078]    Although embodiments have been shown and described, it should be appreciated by those skilled in the art that changes may be made in these embodiments without departing from the principles and spirit of the disclosure, the scope of which is defined in the claims and their equivalents.