A comparative study of three inverse kinematic methods of serial industrial robot manipulators in the screw theory framework by fiona_messe

VIEWS: 6 PAGES: 16

									                                                                                                                                    ARTICLE
International Journal of Advanced Robotic Systems




A Comparative Study of Three
Inverse Kinematic Methods of Serial
Industrial Robot Manipulators in
the Screw Theory Framework
Regular Paper



Emre Sariyildiz, Eray Cakiray and Hakan Temeltas
 
Department of Control Engineering, Istanbul Technical University, Turkey
* Corresponding author E-mail: e-sariyildiz@hotmail.com
 
Received 26 Apr 2011; Accepted 24 Aug 2011


© 2011 Sariyildiz et al.; licensee InTech. This is an open access article distributed under the terms of the Creative
Commons Attribution License (http://creativecommons.org/licenses/by/2.0), which permits unrestricted use,
distribution, and reproduction in any medium, provided the original work is properly cited.



Abstract  In  this  paper,  we  compare  three  inverse                       Keywords Dual‐Quaternion, Industrial Robot Manipulator, 
kinematic  formulation  methods  for  the  serial  industrial                 Paden‐Kahan  sub‐problems,  Quaternion,  Screw  Theory, 
robot  manipulators.  All  formulation  methods  are  based                   Singularity Free Inverse Kinematic. 
on  screw  theory.  Screw  theory  is  an  effective  way  to                  
establish  a  global  description  of  rigid  body  and  avoids               1. Introduction  
singularities  due  to  the  use  of  the  local  coordinates.  In             
these three formulation methods, the first one is based on                    In  industrial  applications  of  robotic  and  automation 
quaternion  algebra,  the  second  one  is  based  on  dual‐                  systems, it is demanded that the robot manipulators track 
quaternions,  and  the  last  one  that  is  called  exponential              a  desired  trajectory  precisely.  This  goal  can  be  achieved 
mapping  method  is  based  on  matrix  algebra.  Compared                    by finding a map which transforms the desired trajectory 
with  the  matrix  algebra,  quaternion  algebra  based                       into the motion of joints of the robot manipulators. It can 
solutions  are  more  computationally  efficient  and  they                   also be described as a mapping from Cartesian coordinate 
need  less  storage  area.  The  method  which  is  based  on                 space to the joint space. Kinematic gives us this mapping 
dual‐quaternion  gives  the  most  compact  and                               without considering the forces or torques which cause the 
computationally  efficient  solution.  Paden‐Kahan  sub‐                      motion.  Since  the  kinematic  based  solutions  are  easy  to 
problems  are  used  to  derive  inverse  kinematic  solutions.               obtain  and  requires  less  number  of  computations 
6‐DOF  industrial  robot  manipulator’s  forward  and                         compared with dynamical equations, they are frequently 
inverse  kinematic  equations  are  derived  using  these                     used in the industrial robot applications.  
formulation  methods.  Simulation  and  experimental                           
results are given.                                                            Several  methods  are  used  in  robot  kinematics  and  screw 
                                                                              theory  is  one  of  the  most important  methods  among them. 


www.intechweb.org                                        Emre Sariyildiz, Eray Cakiray and Hakan Temeltas: A Int J Adv Robotic Sy, 2011, Vol. 8, No. 5, 9-24
                                                                                                               Comparative Study of Three Inverse Kinematic    9
                                                                             Methods of Serial Industrial Robot Manipulators in the Screw Theory Framework
    Danialidis  et  al.  compared  screw  theory  with  the  most           J. Funda analyzed transformation operators of screw motion 
    common  method  in  robot  kinematics  called  homogenous               and  he  found  that  dual  operators  are  the  best  way  to 
    transformation  method  and  they  found  that  screw  theory           describe  screw  motion  and  also  the  dual‐quaternion  is  the 
    based solution offers more compact and consistent way for               most  compact  and  efficient  dual  operator  to  express  screw 
    the robot kinematics than homogeneous transformation one                displacement [14‐15]. A. Perez and J.M. McCarthy analyzed 
    [1].  Although  screw  theory  based  solution  methods  have           dual‐quaternion for 4‐DOF constrained robotic systems [16]. 
    been  widely  used  in  many  robotic  applications  for  the  last     R.  Campa  et  al.  proposed  kinematic  model  and  control  of 
    few decades, the elements of screw theory can be traced to              robot  manipulators  by  using  unit‐quaternions  [17].    Finally 
    the work of Chasles and Poinsot in the early 1800s. Using the           E. Sariyildiz and H. Temeltas investigated the kinematics of 
    theorems of Chasles and Poinsot as a starting point, Robert             6‐DOF  serial  industrial  robot  manipulators  by  using 
    S.  Ball  developed  a  complete  theory  of  screws  which  he         quaternions  in  the  screw  theory  framework  and  they 
    published in 1900 [2]. In screw theory every transformation             showed  its  superior  performance  over  D‐H  method  [18]. 
    of  a  rigid  body  or  a  coordinate  system  with  respect  to  a     Moreover  authors  also  developed  the  methodology  by 
    reference  coordinate  system  can  be  expressed  by  a  screw         employing  dual‐quaternion  operators  in  order  to  increase 
    displacement, which is a translation by along a λ axis with a           computational performance [19].  
    rotation  by  a  θ  angle  about  the  same  axis  [3].  This            
    description of transformation is the basis of the screw theory.         In this paper, we present a comparison study for the three 
    There  are  two  main  advantages  of  using  screw  theory  for        inverse kinematic formulation methods which are all based 
    describing the rigid body kinematics. The first one is that it          on  screw  theory.  In  these  methods,  the  first  one  uses 
    allows  a  global  description  of  the  rigid  body  motion  that      quaternions as a screw motion operator which combines a 
    does  not  suffer  from  singularities  due  to  the  use  of  local    unit  quaternion  plus  a  pure  quaternion,  the  second  one 
    coordinates.  The  second  one  is  that  the  screw  theory            uses  the  dual‐quaternion,  which  is  the  most  compact  and 
    provides a geometric description of the rigid motion which              efficient  dual  operator  to  express  the  screw  displacement, 
    greatly simplifies the analysis of mechanisms [4].                      and  the  last  one  uses  matrix  algebra  to  express  the  screw 
                                                                            motion.  The  first  two  methods  given  in  [18]  and  [19]  are 
    Several applications of screw theory have been introduced in            extensively  developed  in  mathematical  formulations  and 
    the kinematic problem. Yang and Freudenstein were the first             all of these  methods are analyzed in details. Additionally, 
    to apply line transformations to spatial mechanism by using             the  methods  are  implemented  into  the  6‐DOF  industrial 
    quaternion algebra [5]. Yang also investigated the kinematic            robot  manipulator  namely  Stäubli  RX  160L  in  order  to 
    of  special  five  bar  linkages  using  dual  3  3 orthogonal         show real time performance results. Comparison results of 
    matrices  [6].  Pennock  and  Yang  extended  this  method  to          these  formulation  methods  are  given  in  section  VI.  This 
    robot  kinematics  [7].  J.M.  McCarthy  presented  a  detailed         paper  is  also  included  the  mathematical  preliminary  in 
    research  on  dual  3  3   orthogonal  matrices  and  its              section  II,  screw  theory  by  using  matrix  and  quaternion 
    application  to  velocity  analysis  using  screw  theory  [8].         algebras  in  section  III,  the  kinematic  scheme  of  n‐DOF 
    Defining screw motion using dual  3  3  orthogonal matrices            serial robot manipulator in section IV, forward and inverse 
    is  not  a  compact  and  computationally  efficient  solution          kinematic solutions of the 6‐DOF serial robot manipulator 
    method.  Since,  it  needs  18  parameters  to  define  screw           in  section  V  and  experimental  results  in  section  VII. 
    motion  while  just  6  parameters  are  needed  and  it  requires      Simulations  are  made  by  using  exponential  mapping 
    dual matrix calculations. B. Paden investigated several sub‐            method  and  proposed  methods.  The  methods  are 
    problems  that  are  called  as  Paden‐Kahan  sub‐problems  [9‐         compared  with  respect  to  compactness  of  transformation 
    10]. The Paden‐Kahan sub‐problems can be used to solve the              operators  and  computational  efficiency.  Conclusions  and 
    general  kinematic  problem  by  transforming  it  into  the            future works are drawn in the final section. 
    Paden‐Kahan  sub‐problems.    R.M.  Murray  et  al.  solved  3‐          
    DOF  and  6‐DOF  robot  manipulator  kinematics  by  using              2. Mathematical Preliminary 
    screw  theory  with  4  4   homogeneous  transformation                 
    matrix operators and Paden‐Kahan sub‐problems [11]. Then                Quaternions 
    J.Xie  et  al  applied  this  method  to  the  6‐DOF  space              
    manipulator  [12].  Also,  this  method  was  applied  to  the          In  mathematics,  the  quaternions  are  hyper‐complex 
    redundant robot manipulators using a hybrid algorithm by                numbers of rank 4, constituting a four dimensional vector 
    W. Chen et al. [13]. They used exponential mapping method               space  over  the  field  of  real  numbers  [20,  21].  The 
    to  obtain  the  general  screw  motion  of  the  robot                 quaternion can be represented in the form, 
    manipulators.  However,  exponential  mapping  method                                                 q  (q0 , qV )                               (1) 
    defines  the  general  screw  motion  by  using  less  parameter 
    than  dual  3  3 orthogonal  matrices;  it  requires  16               where q0 is  a  scalar  and  qV  (q1 , q2 , q3 ) is  a  vector.  If 
    parameters  to  define  the  screw  motion  while  just  6              q0  0 then,  we  get  pure  quaternion.  The  sum  and  the 
    parameters are needed and suffers from computational load. 
                                                                            product of two quaternions are then, 


10 Int J Adv Robotic Sy, 2011, Vol. 8, No. 5, 9-24                                                                                www.intechweb.org
                   qa  qb  (qa 0  qb 0 ), (qaV  qbV )                 (2)                                                         || q ||2  qq*
                                                                                                                                         ˆ       ˆ ˆ                                         
                                                                                                                                                                                        (12)
 qa  qb  (qa 0 qb0  qaV  qbV ),(qa 0qbV  qb0qaV  qaV  qbV ) (3) 
                                                                                                                                         1
where  “  ”,  ”  ”,  “  ”  denote  quaternion  product,  dot                                                             q 1 
                                                                                                                            ˆ                 q* and  || q || 0                    (13) 
                                                                                                                                              ˆ          ˆ
                                                                                                                                     || q ||2
                                                                                                                                        ˆ
product and cross product respectively. Conjugate, norm 
and  inverse  of  the  quaternion  can  be  expressed  in  the                                                ˆ     2
                                                                                                      When || q ||  1 ,  we  get  a  unit  dual‐quaternion  that 
forms                                                                                                                                    2         *      *
                                                                                                                                 ˆ      ˆ ˆ   ˆ ˆ
                                                                                                      satisfies the relation  || q ||  qq  q q  1 .          
                        *
                       q  (q0 , q v )  (q0 , q1 , q2 , q3 )                                 
                                                                                              (4)                          ˆ       ˆ
                                                                                                      Definition  2:  Let  qa and  qb be  two  dual‐quaternions  and 
                              2
                       || q ||  q  q        *       2
                                                      q0      2
                                                            q1      2
                                                                   q2      2
                                                                          q3                         the product of two dual‐quaternions be 
                                                                                             (5)
                                                                                                         qab  qa qb  qab   qab  ( qabS , qabV )   ( qabS , qo ) (14) 
                                                                                                         ˆ     ˆ ˆ               o                           o
                                                                                                                                                                    abV
                                  1          1        *
                              q                      q and  || q || 0                    (6) 
                                           || q ||2                                                   Then,  let’s  define  four  new  functions  by  using  the 
                                                                                                      product  of  two  dual‐quaternions  and  definition  1  given 
                                                      1
that  satisfies  the  relation  q                           q  q  q 1  1 .  When                 by, 
|| q ||2  1 , we get unit quaternion that satisfies the relation                                           
                                                                                                                   S  R qa qb   qabS   be  scalar  part  of  the  real 
                                                                                                                          ˆ ˆ
q 1  q* .                                                                                                       part of multiplication
                                                                                                                                         
                                                                                                                  S D qa qb   qabS   be  scalar  part of  the  dual 
                                                                                                                         ˆ ˆ          o
Definition  1:  Let  qa and  qb be  two  pure  quaternions  and 
                                                                                                                  part of multiplication  
the product of these two quaternions be  
                                                                                                                 V R qa qb   qabV   be  vector  part  of  the  real 
                                                                                                                        ˆ ˆ
                        qa  qb  (qa 0 qb0  qaV  qbV ),
                                                                                                                  part of multiplication 
                      (qa 0qbV  qb 0qaV  qaV  qbV )                       
                                                                          (7)                                    V  D qa qb   q o V   be  vector  part  of  the 
                                                                                                                         ˆ ˆ           ab
                             (qaV  qbV ), (qaV  qbV )
                                                                                                                  dual part of multiplication  
                                                                                                       
Then, let’s define two new functions by using the product                                             Point and Line Transformations Using Quaternions 
of two pure quaternions given by                                                                       
                                                                                                      Unit quaternion can be defined as a rotation operator [24‐
             V qa  qb   qaV  qbV be  the  vector  part  of 
                                                                                                      26].  Rotation  about  an  axis  of n by  an  angle  can  be 
             the quaternion multiplication                                                            expressed by using the unit quaternion given by 
              S qa  qb     qaV  qbV  be the scalar part of 
                                         
             the quaternion multiplication
                                                                                                                                              
                                                                                                                               q  cos   ,sin   n                         (15) 
                                                                                                                                        2      2                       
Dual‐Quaternion 
                                                                                                      Let’s  define  a  direction  vector  in  pure  quaternion  form 
 
                                                                                                      given  by l  (0, v ) .  Here,  the  vector v is  a  unit  direction 
The dual‐quaternion can be represented in the form 
                                                                                                      vector. Rotation of  l  (0, v ) can be defined given by 
                            q  ( qS , q V ) or  q  q   qo                      (8) 
                            ˆ     ˆ ˆ            ˆ
                                                                                                                                      lR  q  l  q*                               6) 
       ˆ
where  qS 
                           0
                   qS   qS is a dual scalar,                     q V  q V   qo is a 
                                                                   ˆ              V                                                                                                
                                                                                                      A general rigid body transformation cannot be expressed 
                            o
dual  vector, q and q are  both  quaternions  and  is  the                                           by using only a unit quaternion. Since as stated above, we 
dual factor [22, 23]. The sum and the product of two dual‐                                            need  at  least  six  parameters  to  define  rigid  body 
quaternions is then                                                                                   transformation.  Therefore,  we  should  use  at  least  two 
                                                                                                      quaternions to define rigid body transformation. 
                                                  o    o
                       ˆ    ˆ
                       qa  qb  (qa  qb )   (qa  qb )                   (9)                       
                    
                                           o    o
                                                                                                      The  unit  dual‐quaternions  can  also  be  used  as  a  rigid 
            ˆ ˆ
            qa qb  (qa  qb )   (qa  qb  qa  qb )        (10)                                  body  transformation  operator  [27]. Although  it  has  eight 
                                                                                                      parameters  and  it  is  not  minimal,  it  is  the  most  compact 
where  “  ”,  “  ”  denote  the  quaternion  and  dual‐
                                                                                                      and efficient dual operator [14, 15]. This transformation is 
quaternion  products  respectively.  Conjugate,  norm  and 
                                                                                                      very similar with pure rotation; however, not for a point 
inverse  of  the  dual‐quaternion  are  similar  to  the 
quaternion’s conjugate, norm and inverse respectively.                                                but  for  a  line.  A  line  in  Plücker  coordinates  L(m,d) (
                                                                                                                                                                                     
                                                                                                       lˆ  l   m in  dual‐quaternion  form,  see  Appendix)  can 
                                       q*  q*   (q o )*
                                       ˆ                                                                             
                                                                                              (11) 


www.intechweb.org                                                               Emre Sariyildiz, Eray Cakiray and Hakan Temeltas: A Comparative Study of Three Inverse Kinematic                11
                                                                                                    Methods of Serial Industrial Robot Manipulators in the Screw Theory Framework
    be  transformed  to  LR (m R ,d R )   by  using  unit  dual‐                                                            
                                                                                              Rotation:  q  cos        ,sin   d  
    quaternions as follows, [28]                                                                                     2
                                                                                                                            2
                                       lˆR  qlˆq*                                (17) 
                                             ˆ    ˆ                                           Translation:  t  q  p  q  p  q *                               (20) 
                                                                                                                

                                                                                                     
                                                                                              where  q   is  the  amount  of  pure  translation  and    is  the 
    3. Screw Theory                                                                           position  vector  of  some  point  on  the  line  in  the  pure 
                                                                                              quaternion form. 
    All  proper  rigid  body  motions  in  3‐dimensional  space,                               
    with the exception of pure translation, are equivalent to a                               Screw Theory Using Dual‐Quaternion 
    screw motion, that is, a rotation about a line together with                               
    a translation along the line [2, 27]. If the axis of the screw                            A  screw  motion  can  be  expressed  by  using  dual‐
    motion does not pass through origin as shown in figure 1                                  quaternion as follows: 
    then, the screw motion is expressed given by 
                                                                                                                            1                        
             I
                               
                           p   R ( , d )
                                                     
                                                    kd  I 3x3        p                                    qS0      2  qV  t                 
         T   3x3                                2                                                   ˆ
                                                                                                          q                                     
                           1                         0             1                                            1 q t  tq
     
              0              0
                                                     1   
                                                          
                                                                         
                                                                                    (18) 
                                                                                                             qV     
                                                                                                                      2 0
                                                                                                                           S          V             
                                                                                                                                                      
                                                                                                                                                      
                                                                                                                        k           
               R ( , d )     2
                                  kd  (I 3x3  R ( , d ))p 
                                                                                                       cos                 sin          
                                                                                                          2                2 2
               0
                                                 1               
                                                                                                                                            
                                                                                                                           k            (21) 
                                                                                                       sin   d 
                                                                                                                      sin   m  cos   d 
                                                                                                                                               
                                                                                                       2            2        2     2 
                                               




                                                                                                                            k        
                                                                                                                       cos               
                                                                                                                             2         
                                                                                                                  k                  
                                                                                                                 sin 
                                                                                                                               (d   m) 
                                                                                                                                           
                                                                                                                  2                     


                                                                                              This  representation  is  very  compact  and  also  it  uses 
                                                                                              algebraically  separates  the  angle  and  pitch k
                                                                                                                         ˆ                ˆ
                                                                                              information. If we write       k  and  d  d   m  then, 
                                                                                              the equation (21) becomes more compact as the following  

                                                                                                                         
                                                                       




                                                                                                                                                                          (22) 
    Figure 1. General screw motion 
                                                                                              Further  details  of  general  screw  motion  formulation  by 
    Screw Theory Using Quaternion                                                             using dual‐quaternion can be found in [29]. 
                                                                                               
    In equation (18), screw motion is expressed by using 4x4                                  4. Manipulator Kinematic 
    homogenous  transformation  matrices.  It  uses  sixteen                                   
    parameters  while  just  6  parameters  are  needed.  We  can                             A. Forward Kinematic 
    express  screw  motion  in  a  more  compact  form  than 
                                                                                              To find forward kinematic of serial robot manipulator we 
    homogenous  transformation  matrices  by  using 
                                                                                              followed these steps: 
    quaternion  algebra.  If  we  separate  general  screw  motion 
    as a rotation and translation then, we have                                               Notation: 

    Rotation:  R ( , d)  and                                                                      1.    Label the joints and the links: Joints are numbered 
                                                                                                         from number 1 to n, starting at the base, and the 
                                                                                                        links  are  numbered  from  number  0  to  n.  The  ith 
    Translation:             kd  (I 3x3  R ( , d))p                                (19) 
                      2                                                                                 joint connects link i‐1to link i.  
                                                                                                   2.    Configuration of joint spaces: For revolute joint we 
    Then,  we  can  express  these  equations  by  using                                                 describe rotational motion about an axis and we 
    quaternions as follows                                                                               measure all joint angles by using a right‐handed 
                                                                                                         coordinate system.  



12 Int J Adv Robotic Sy, 2011, Vol. 8, No. 5, 9-24                                                                                                    www.intechweb.org
       3.    Attaching coordinate frames (Base and Tool Frames):                                   ˆ      ˆ ˆ
                                                                                                   qi  ( qiS , qiV ) or  qi  qi   qi o            (26) 
                                                                                                                          ˆ
             Two coordinate frames are needed for n degrees 
                                                                               
             of  freedom  open‐chain  robot  manipulator.  The 
             base  frame  can  be  attached  arbitrarily  but  in                                        i          i   
                                                                              where   qi  cos                 ,sin  2     di  
             general  it  is  attached  directly  to  link  0  and  the                                 2                 
             tool frame is attached to the end effector of robot 
             manipulator.  
                                                                                               qi o 
                                                                                                        1
                                                                                                        2
                                                                                                                                      
                                                                                                            pi  qi  pi  qi*  qi or  
                                                                                                                                     
                                                                                                           o              
Formulization:                                                                                           qi   0 sin   m i                        (27) 
                                                                                                                        2 
Quaternion based method                                                                                                                                                 

        1.   Determining the joint axis vectors:   First    we                      3.     Formulization  of  rigid  motion:  Using  the  equation 
             attach an axis vector which describes the motion                              (10)  rigid  transformation  of  serial  robot 
             of the joint.                                                                 manipulator can be expressed as 
                                                                               
        2.    Obtaining         transformation        operators: 
                                                                                                               ˆ     ˆ ˆ        ˆ
                                                                                                               q1n  q1q2   qn                      (28) 
             Transformation  operators  of  all  joints  are 
             obtained by using quaternions as follows                          
                                                                              The orientation and the position of the end effector can be 
                                                                        expressed by using the equation (A.4) as follows 
Rotation: qi  cos  i  ,sin  i  d i
                    2       2                                              
                                                                                                                  *
                   o                        *
                                                                              Orientation:  lo 1  q1n  lo  q1n and  
Translation: qi  pi  qi  pi  qi                             (23)          Position: 
where        is  an  arbitrary  point  on  the  ith  axis  and                                                                         
                                                                              p ep  q V1n  q V1n o  q V1n 1  q V1n 1o  q V1n q V1n (29)        
 i  1, 2,n                                                                                                                              
                                                                              B. Inverse Kinematic 
3.Formulization  of  rigid  motion:  Using  (3)  and  (20)  rigid 
                                                                              Paden‐Kahan  sub‐problems  are  used  to  obtain  the  inverse 
transformation  of  serial  robot  manipulator  can  be 
                                                                              kinematic  solution  of  robot  manipulator.  There  are  some 
expressed as 
                                                                              main  Paden‐Kahan  sub‐problems  and  also  new  extended 
                       q1n  q1  q2    qn                                 sub‐problems  [9,  11,  and  30].  Three  of  them  which  occur 
                                                                              frequently  in  inverse  solutions  for  common  manipulator 
    q1n o  q1n 1  p n  q1n 1*  q1n  p n  q1n *  q1n 1o  (24)        design are used in the inverse kinematic problem. These sub‐
                                                                              problems  can  be  seen  in  Appendix.  To  solve  the  inverse 
where q1n and q1n o indicate         rotation     and     translation         kinematic  problem,  we  reduce  the  full  inverse  kinematic 
respectively.  The  orientation  and  the  position  of  the  end             problem into the appropriate sub‐problems. Solution of the 
effector can be expressed as follows                                          inverse  kinematic  problem  of  6‐DOF  serial  robot  arm  is 
                                                                              given in the next section. 
Orientation:  lo 1  q1n  lo  q1n *
                                                                               
Position:  pep 1  q1n  pep  q1n  q1n o
                                        *
                                                                   (25)       5. Kinematic Analysis of 6‐Dof Industrial Robot Arm 
                                                                               
                                                       
where p ep , lo indicate  the  position  and  the  orientation  of            In this section, the kinematic problem of serial robot arm 
                                                                              which  is  shown  in  figure  2  is  solved  by  using  the  new 
the end effector before the transformation and  pep 1 , lo 1  
                                                                              formulation methods. 
indicate  the  position  and  the  orientation  of  the  end                   
effector after the transformation.                                            Quaternion Based Method 

Dual‐Quaternion based method                                                  Forward Kinematics 
       1.    Determining  joint  axis  vectors  and  moment  vectors:         Step1: Firstly, the axes of all joints should be determined.  
             First  we  attach  an  axis  vector  which  describes 
             the motion of the joint. Then the moment vector                   d1  [0, 0,1]             d 2  [0,1, 0]               d3  [0,1, 0]                 
             of  this  axis  is  obtained  for  revolute  joints  by 
                                                                               d 4  [0, 0,1]            d5  [0,1, 0]                d6  [1, 0, 0]       (30) 
             using the equation (A.2).  
       2.    Obtaining transformation operator: Transformation                Any point on these axes can be written as 
             operators  of  all  joints  are  obtained  by  using 
             dual‐quaternions as follows 
                                                                                    p1  [0, 0, l0 ]            p 2  [0, 0, l0 ]              p 3  [l1 , 0, l0 ]  
                                                                               p4  [l1  l2 , 0, l0 ]   p 5  [l1  l2 , 0, l0 ]   p6  [l1  l2 , 0, l0 ] (31) 


www.intechweb.org                                         Emre Sariyildiz, Eray Cakiray and Hakan Temeltas: A Comparative Study of Three Inverse Kinematic                 13
                                                                              Methods of Serial Industrial Robot Manipulators in the Screw Theory Framework
                                                                                               intersection  of  the  wrist  axes  and  the  second  one  is  p b
                                                                                               which is at the intersection of the first two axes. The last 
                                                                                               three joints do not affect the position of the point p w and 
                                                                                               the first two joints do not affect the position of the point
                                                                                                p b . Then we can easily write the following equations, 
                                                                                                                     *     o                *     o
                                                                                                         q13  pw  q13  q13  q16  pw  q16  q16                      (34) 
                                                                                                                                 *     o
                                                                                                                     q12  pb  q12  q12  pb                           (35) 

                                                                                               The position of the point  p b is free from the angles of first 
                                                                                               two  joints.  If  we  subtract  these  two  equations  from  each 
                                                                                               other then, we get 
                                                                                                                       *     o                *     o
                                                                                                           q13  pw  q13  q13  q12  pb  q12  q12 
                                                                                                                                                                          (36) 
                                                                                                                       *     o                *     o
                                                                                                           q16  pw  q13  q16  q12  pb  q12  q12
                                                                                                                                                  o        o   o     o         o
                                                                                               If we take the end effector position  qin  (q0 , q1 , q2 , q3 )
                                                                                                                                                                               o
                                                                                               at  the  intersection  of  the  wrist  axes,  we  have pw  qin . 
                                                                                               Hence we can write 
                                                                                                                *                    *     o          o
                                                                                                     q3  pw  q3  pb  q16  pw  q16  q16  pb  qin  pb  (37) 
    Figure  2.  6‐DOF  serial  arm  robot  manipulator  in  its  reference 
                                                                                               Using  the  property  that  distance  between  points  is 
    configuration 
                                                                                               preserved  by  rigid  motions;  take  the  magnitude  of  both 
    Step  2:  The  transformation  operators  which  are  in                                   sides  of  equation  (37),  we  get  sub‐problem  3.  The 
                                                                                                                                                                      o
    quaternion form can be written by using the equation (23).                                 parameters  of  sub‐problem  3  are  p = p w  q in and 
                                                                                                   q = pb . 3 can be found by using sub‐problem 3. 
    Step3:  Finally,  the  forward  kinematic  equation  of  serial                             
    robot manipulator can be obtained as follows,                                              Step 2: If we translate  p w by using known  3  we obtain a 
     
                                                                                               new point p . We get sub‐problem 2 by using the point p
    Orientation:
                       q16  l6  q16*  
                                                                                               as the initial position and the point q as the final position 
                                      *           o
    Position: q16  p6  q16  q16                                             (32)            of  the  sub‐problem  2  motion.  The  points p and q can  be 
                                                                         
    where   q16          q1  q2  q3  q4  q5  q6                                          formulized as follows 
                                                                                                                           * *       o          o
     
                                                                                                           q12 (q3  pw  q3 )q12  q13  pb  qin  pb                       (38) 
               o
              q1i    q1i 1    pi 1  qi 1*    q1i          *
                                                            pi  q1i        qi 1o                                                                                      
                                                                                                                          *                   * *       o
                                               
                                                                                                          q12 (q3  pw  q3  p3  q3  p3  q3 )q12  qin     (39) 
                               qo     p1  q1             *
                                                      p1  q1
                                1                             .                        (33)                           *                   *
                                                                                               Hence,  p  q3  pw  q3  p3  q3  p3  q3   and  q  qin .
                                                                                                                                                        o


    Inverse kinematics                                                                         1 and   2 can be found by using sub‐problem 2. 

    In  the  inverse  kinematic  problem  of  serial  robot                                    Step 3: To find wrist angles we put a point  p c which is on 
    manipulator,  we  have  orientation  and  position                                         the d 6 axis  and  it  does  not  intersect  with d 4 and d 5 axes. 
    knowledge of the end effector. These are two quaternions                                   Thus the point  p c is not affected from the last joint angle. 
    and  we  will  calculate  all  joint  angles  by  using  these 
                                                                                               Fourth  and  fifth  joints  angles  determine  the  position  of 
    quaternions.  The  first  one  gives  us  the  orientation 
                                                                                               the  point p c .  For  known  1 ,  2 and 3 angles,  we  can 
    knowledge  of  the  robot  manipulator  qin   and  the  second 
                                                                                               write the following equation  
    one  gives  us  the  position  knowledge  of  the  end  effector 
         o
        qin .  To  find  all  joint  angles  complete  inverse  kinematic                            q45  pc  q45  q3  q46  q3  q3  qin  q3  q3  q3  q3 (40) 
                                                                                                                 *     *    o          *    o          *    o
                                                                                                                                                                           
    problem  must  be  converted  into  the  appropriate  Paden‐                               The  equation  (40)  gives  us  the  sub‐problem  2.  To  obtain 
    Kahan sub‐problems (see Appendix). This solution can be                                    the  parameters  of  sub‐problem  2  we  should  find  the 
    obtained as the following,                                                                 points  p and q .  The  point p is  equal  to  p c .  We  should 
                                                                                               just find q . The point q can be found given by 
    Step 1: Firstly, we put two points at the intersection of the 
    rotation  axes.  The  first  one  is  p w which  is  at  the                                          *              *              *
                                                                                                     q  qm  pc  qm  qm  p0  qm  qm  p1  qm  qt1  qt 2  (41) 


14 Int J Adv Robotic Sy, 2011, Vol. 8, No. 5, 9-24                                                                                                     www.intechweb.org
Where  qm  (q1  q2  q3 )*  qin
                                                                                                lˆ6  l6   l6   q16 lˆ6 q16  q16 (l6   l6 )q16  
                                                                                                            o
                                                                                                                    ˆ         ˆ*    ˆ             o
                                                                                                                                                      ˆ*
                               *
                        qt1  q3  p3  q3  p3
                                                                                               lˆ5  l5   l5   q15 lˆ5 q15  q15 (l5   l5 )q15    (46) 
                                                                                                           o
                                                                                                                   ˆ         ˆ*    ˆ             o
                                                                                                                                                     ˆ*
               *
       qt 2  q3  p2  q3  (q2  q3 )*  p3  (q2  q3 )                                      ˆ     ˆ ˆ ˆ ˆ ˆ ˆ
                                                                                          Where  q16  q1q2 q3q3 q5 q6 and  
                             *
                (q2  q3 )  p1  ( q2  q3 )                                     (42) 
                                                                                                                  ˆ     ˆ ˆ ˆ ˆ ˆ
                                                                                                                  q15  q1q2 q3q3q5 . 

Step  4:  The  first  five  joint  angles  are  obtained.  Only  the                      Then, the orientation of the end effector is the real part of 
last  joint  angle  is  unknown.  Of  course,  we  can  find  the                                               ˆ
                                                                                          the  dual‐quaternion  l6 and  the  position  of  the  end 
last joint angle by using the given sub‐problems however; 
                                                                                          effector is        
it  can  be  also  easily  solved  by  using  algebraic  equations 
                                                                                           
for  the  known  joint  angles.  In  this  step  we  will  find  the 
last  joint  angle  by  using  algebraic  equations.  Paden‐                                          
                                                                                                p 6  V R q16 lˆ6 q16
                                                                                                          ˆ         ˆ*      V D qˆ lˆ qˆ  
                                                                                                                                       16     6
                                                                                                                                                  *
                                                                                                                                                  16

Kahan  based  solution  will  be  given  in  dual‐quaternion 
based solution. The last joint angle can be found from the 
                                                                                           V R q lˆ q*
                                                                                          
                                                                                          
                                                                                             ˆ15 5 ˆ15        V D qˆ lˆ qˆ  V R qˆ lˆ qˆ    
                                                                                                                            15   5
                                                                                                                                      *
                                                                                                                                      15               16   6
                                                                                                                                                                * 
                                                                                                                                                                16


                                                                                                                    V R q lˆ q 
orientation part as the following,                                                                                                    *
                                                                                                                           ˆ16   6 ˆ  16                  (47)
           k  (q1  q2  q3  q4  q5 )*  qin  and 
                                                                                          Inverse kinematic
                                       
                 6  arctan 2 k (1), 1  (k (1)) 2                             (43) 
                                                                                                               
                                                                                          In  the  inverse  kinematic  problem  of  serial  robot 
                                                                                          manipulator,  we  have  the  position  and  orientation 
Dual‐Quaternion Based Method                                                                                                                                          o
                                                                                                                                      ˆ
                                                                                          informations of the end effector such that  qin  (qin , qin )  
Forward Kinematics 
                                                                                          where qin  (q0 , q1 , q2 , q3 ) ,  that  is  the  orientation  of  the 
Step1: Firstly, the axes of all joints should be determined.                                                                                             ˆ
                                                                                          end  effector,  is  the  real  part  of  the  dual‐quaternion  qin  
                                                                                                  o       o    o    o   o
     d1  [0, 0,1]           d 2  [0,1, 0]                 d 3  [0,1, 0]                and  qin  (q0 , q1 , q2 , q3 ) ,  that  is  the  position  of  the  end 
                                                                                                                                                    ˆ
                                                                                          effector, is the dual part of the of the dual‐quaternion  qin . 
     d 4  [0, 0,1]          d 5  [0,1, 0]                 d 6  [0, 0,1]    44) 
                                                                                          The  general  inverse  kinematic  problem  should  be 
Then, the moment vectors of all axes must be calculated.                                  converted  into  the  appropriate  Paden‐Kahan  sub‐
                                                                                          problems (see Appendix) to obtain the inverse kinematic 
m 1 = p1 × d1           m2 = p2 × d2                m3 = p3 × d3                          solution. This solution can be obtained as follows, 
m4 = p4 × d4            m5 = p5 × d5                m 6 = p 6 × d 6     (45)                  
                                                                                          Step  1:  Firstly,  we  put  two  points  at  the  intersection  of  the 
where  p1 ,p 2 ,p 3 ,p 4 ,p 5 and  p 6 are  any  point  on  the                           rotation axes. The first one is  p w which is at the intersection 
                              
corresponding direction vectors  d1 ,d 2 ,d 3 ,d 4 ,d 5 and  d 6 .                        of  the  wrist  axes  and  the  second  one  is  p b which  is  at  the 
                                                                                          intersection of the first two axes. The last three joints do not 
Step  2:  The  transformation  operator  that  is  in  dual‐
quaternion  form  can  be  written  by  using  the  axis  and                             affect the position of the point p w and the first two joints do 
moment vectors and the equation (27).                                                     not  affect  the  position  of  the  point p b .  If  we  use  the 
                                                                                          property that distance  between the  points is  preserved  by 
Step3:  Finally,  the  forward  kinematic  equation  of  serial 
                                                                                          rigid motions we get the following equation 
robot manipulator can be obtained as follows, 
                                                                                           


                    ˆ13 6 ˆ13            
                (V R q lˆ q*  V D q lˆ q* ) 
               
                                         ˆ13 6 ˆ13                                                                                       
                                                                                                                                           
                                                                                                                                          
                                                          
                (V R q13lˆ5 q13  V D q13lˆ5 q13 )  V R q13lˆ6 q13  V R q13lˆ6 q13
               
                      ˆ        ˆ*        ˆ        ˆ*          ˆ        ˆ*        ˆ        ˆ*                                         
                                                                                                                                           
                                                                                                                                                                     (48) 
                              lˆ q   V  D q lˆ q ) 
                (V R q  ˆ             ˆ   *
                                                     ˆ      ˆ               *                                                              
                           12      2       12                  12     2     12                                                                 o
                                                                                                                                            qin  pb
                (V  R q
                         ˆ 12    lˆ q   V  D q lˆ q )  V  R q
                                   1  ˆ    *
                                           12       ˆ      ˆ   12    1    ˆ*
                                                                           12
                                                                                               ˆ ˆ*
                                                                                           12 l2 q12    V R qˆ       ˆ ˆ*
                                                                                                                        12 l2 q12      
                                                                                                                                                               
Using  the  property  that  distance  between  the  points  is 
preserved  by  rigid  motions;  take  the  magnitude  of  both 
sides of equation (48), we get 


www.intechweb.org                                                    Emre Sariyildiz, Eray Cakiray and Hakan Temeltas: A Comparative Study of Three Inverse Kinematic        15
                                                                                         Methods of Serial Industrial Robot Manipulators in the Screw Theory Framework
        V R qˆ lˆ qˆ  V Dqˆ lˆ qˆ    V R qˆ lˆ qˆ  V D qˆ lˆ qˆ  V R qˆ lˆ qˆ   *  q
                        3           6
                                             *
                                             3                 3       6
                                                                                 *
                                                                                 3                        3         5
                                                                                                                        *
                                                                                                                        3                3       5
                                                                                                                                                             *
                                                                                                                                                             3                      3       6
                                                                                                                                                                                                        *
                                                                                                                                                                                                        3
                                                                                                                                                                                                                              o
                                                                                                                                                                                                                                    pb (49) 
        V  R q lˆ q    (V  R lˆ   V  D lˆ )  (V  R lˆ   V  D lˆ )  V  R lˆ   V  R lˆ  
                                                                                                                                                                                                                              in
                                         *
               ˆ    3  ˆ        6        3                      2                        2                     1                1                        2                      2


       
    The  equation  (49)  gives  us  the  sub‐problem  3.  The                                                               pi p7 p8  [ d6 x , ly0  ly1   d6 y , lz0  lz1  lz2   d6 z ] . 
    parameters of the sub‐problem 3 are  
                                                                                                                            The moment vectors are  m 7  p i  d 7  and  m 8  p i  d 8 . 

                         V D lˆ  
                        a  V R lˆ6                                         6
                                                                                                               , 
                                                                                                                            Then we can easily write,       
                                                                                                                             
                                                                                                                                                                                                                           


                          V R lˆ  V R lˆ                                                                                V D qˆ lˆ qˆ   
           V R lˆ  V D lˆ                                                                                                  V R q lˆ q*
                                                                                                                                  ˆ45 8 ˆ45                                                             *
                                                                                                                                                                                   45          8       45
                                    5                    5                           6                6                     
          
                                                                                                                              V R q l  q   V D q l  q    V R q                                                                    
                                                                                                                            
                 b = V  R lˆ   V  D lˆ   
                                                                                                                                      ˆ   ˆ ˆ               ˆ     ˆ ˆ
                                                                                                                                                                  *              ˆ                         *                         ˆ ˆ *
                                                                                                                                              45         7        45                    45          7       45                     45l8q45
                                                     2                       2
                                                                                                                                                                           
                                                                                                               ,            V R q lˆ q   q   d
                                                                                                                                   ˆ        ˆ                *         o

           V  R l   V  D l    V  R l   V  R l 
                                                                                                                                         45          8       45        in               6
                   ˆ             ˆ               ˆ            ˆ                                                                                                              (51)   
          
                                    1
                                                       
                                                         1                           2                2                      
                                                                                                                            The  equation  (51)  gives  us  the  sub‐problem  2.  The 
    l is  the  axis  of  the  joint  3  that  is  d 3 and δ = q o  p b . 
                                                                in                                                          parameters of sub‐problem 2 are  
    3  can be found by using the sub‐problem 3. 
                                                                                                                                                  V D lˆ 
                                                                                                                                                     a  V R lˆ8
                                                                                                                                                                                                           8
                                                                                                                                                                                                                                                     , 
    Step  2:  If  we  use  known 3 in  the  equation  (48)  then,  we 
                                                                                                                                                     
                                                                                                                                      V R lˆ  V D lˆ  V R lˆ  V R lˆ
    obtain                                                                                                                                                   7                          7                           8                       8
                                                                                                                                     
     

     V Rqˆ lˆqˆ  V Dqˆ lˆqˆ  
               12       6
                                    *
                                    12                   12    6
                                                                       *
                                                                       12
                                                                                                                            l1 is the imaginer axis  d 7 ,  l 2 is the imaginer axis  d8 and 
                                                                                                                            b  qo  d6 .  4 and 5 can  be  found  by  using  the  sub‐
        ˆ        ˆ   V  D q lˆ q    V R q lˆ q   
      V R q lˆ q                    *                               *                                 *
                                                                                                                                 in
                                   ˆ       ˆ              ˆ       ˆ    
     
                12          5           12                12       5
                                                                       
                                                                        12                   12   6       12                problem 2.  
    V R    q12 lˆ6 q12
             ˆ       ˆ*                    qo
                                                in
                                                                                                              (50)  
                                                                                                                             
                                                                                                                            Step4: To find the last joint angle, we need a point which 
                                                                                                                            is not on the last joint axis. We call it  pd  p5   d5 . Two 
           ˆ ˆ ˆ ˆ*           ˆ ˆ ˆ ˆ*
    where  l6  q3l6 q3 and  l5  q3l5q3 .  The  equation                                                               imaginer axes are used to find  p   that is the position of 
                                                                                                                                                              d
    (50)  gives  us  the  sub‐problem  2.  The  parameters  of  sub‐                                                        the point  p d after the rotation by   6 . The point  p d is the 
    problem 2 are                                                                                                           intersection  point  of  the  two  imaginer  axes.  Let’s  define 
                                                                                                                            the  two  imaginer  axes  which  are  on  the  d 5 axis  and 

                       V D lˆ  
                        a  V R lˆ6
                                                                           6
                                                                                                               , 
                                                                                                                            intersect  on  the  point  p d given  by  d 9  [0,1, 0] , 
                                                                                                                            d10  [1, 0, 0]                                                                                                           and 
                          
           V R lˆ  V D lˆ  V R lˆ  V R lˆ                                                                                                                                                                                                               
                                    5                    5                           6                6                     pd = p9 = p10  [ d5 x , ly0  ly1   d5 y , lz0  lz1  lz2   d5 z ] . 
          
                                                                                                                            The              moment 
                                                                                                                                                                  
                                                                                                                                                                       vectors 
                                                                                                                                                                       9                        are               m  p 9  d9 ,                      and 
     l1 is axis of the joint 1 that is  d1 ,  l 2 is the axis of the joint                                                  m10       p10  d10 . Then we can easily write, 
    2 that is  d 2 and  b                         qo . 1
                                                    in        and  2 can be found by using                                 
    the sub‐problem 2. 
     
                                                                                                                            V Rqˆ lˆ qˆ  V Dqˆ lˆ qˆ  
                                                                                                                                             6       10
                                                                                                                                                                  *
                                                                                                                                                                  6                     6       10
                                                                                                                                                                                                            *
                                                                                                                                                                                                            6


                                                                                                                               ˆ         ˆ    ˆ         ˆ    V R q lˆ q  
    Step3:  To  find  the  wrist  angles,  let’s  consider  a  point                                                         V R q lˆ q  V D q lˆ q       *
                                                                                                                                                                               ˆ       ˆ                   *                                    *
                                                                                                                                                 6       9        6                     6       9           6                      6   10        6
                                                                                                                                                                                           
     p i  p 6   d 6  (initial point) that is on the  axis d 6 , and it 
    is  not  coincident  with  the d 4 and d 5   axes.  Two  imaginer                                                               
                                                                                                                            V R q6 lˆ q6
                                                                                                                                ˆ 10 ˆ*                             q   o
                                                                                                                                                                           in     d5
                                                                                                                                                                               (52) 
                                                                                                                                                                                     
    axes are used to find  p e (end point) that is the position of                                                           
    the  point  pi after  the  rotation  by   4 and  5 angles.  The                                                       The  equation  (52)  gives  us  the  sub‐problem  1.  The 
                                                                                                                            parameters of sub‐problem 1 are  
    point  pi is the intersection point of the two imaginer axes. 
    Let’s  define  the  two  imaginer  axes  which  are  on  the  d 6
    axis  and  intersect  on  the  point  pi given  by  d 7  [0,1, 0] ,
                                                                                                                                                  V D lˆ  
                                                                                                                                                     a  V R lˆ
                                                                                                                                                              10                                            10
                                                                                                                                                                                                                                                      , 
                                                                                                                                                     
     d 8  [0, 0,1]                                                                                                                   V R lˆ  V D lˆ  V R lˆ  V R lˆ
                                                                                                                                                             9                      9                             10                        10
                                                                                                                                     


16 Int J Adv Robotic Sy, 2011, Vol. 8, No. 5, 9-24                                                                                                                                                                            www.intechweb.org
l is  axis  of  the  joint  6  that  is  d 6 ,  and  b  qo   d5 .  6      operation. The performance comparison of homogeneous 
                                                          in
                                                                              transformation  matrix  and  quaternion  operators  can  be 
can be found by using the sub‐problem 1.                                                                                                                                                                      
                                                                              seen in table 1 and table 2. 
 
                                                                               
6. Simulation Results 
                                                                                    Method                Storage  Multiplies  Add &  Total 
Stäubli  RX160L  industrial  robot‐arm  is  used  for  the                                                                                         Subtracts 
simulation  studies.  Stäubli  RX160L  series  robot  arms                      Rotation 
                                                                                                               9                    27                    18               45 
feature an articulated arm with 6 degrees of freedom for                        Matrix 
high  flexibility.  It  spreads  a  wide  range  area  in  the                   Quaternion                    4                    16                    12               28 
industrial  robot  applications.  The  kinematic  simulation                  Table 1. Performance comparison of rotation operations 
studies  are  made  by  using  Matlab  and  virtual  reality 
                                                                               
toolbox (VRML) of Matlab. Stäubli RX160L iges file which 
can be freely obtained from the Stäubli’s web page, is also                       Method                    Storage  Multiplies  Add &  Total
used  for  the  animation  application  which  is  shown  in                                                                                         Subtracts
Figure 3.                                                                         Homogenous 
                                                                                                                    16                  64                 48           112 
                                                                                  Trans. Matrix 
In this animation a single robot arm carries a box from its                       Dual‐
                                                                                                                     8                  48                 34            82 
initial position to the target position as shown in figure 3.                     Quaternion 
To implement this case, first a path is determined for the                    Table  2.  Performance  comparison  of  rigid  transformation 
box. Then, the inverse kinematic problem of serial arm is                     operations 
solved by using this path.                                                             
                                                                              In  order  to  obtain  the  rigid  body  transformation  for  a  n‐
Here, a comparative study of the presented methods and                        link serial robot manipulator 
the  exponential  mapping  method  is  worked  out.  6‐DOF                                    64( n  1) multiplications  and  48( n  1)   additions 
robot  arm’s  forward  and  inverse  kinematic  solutions                                     must be done if exponential mapping method is 
using exponential mapping method can be found in [11].                                        used. 
Exponential  mapping  method  uses  homogeneous                                               57( n  1) multiplications  and  42( n  1)   additions 
transformation  matrices  as  a  screw  motion  operator.                                     must  be  done  if  quaternion  based  method  is 
Homogeneous  transformation  matrices  require  16                                            used. 
memory locations for the definition of rigid body motion                                      48( n  1) multiplications  and 40( n  1)     additions 
while  the  quaternions  require  eight  memory  locations.                                   must  be  done  if  dual‐quaternion  based  method 
The  storage  requirement  affects  the  computational  time                                  is used. 
because  the  cost  of  fetching  an  operand  from  memory                    

exceeds  the  cost  of  performing  a  basic  arithmetic                      Fig.  4  shows  that  as  the  degrees  of  freedom  increase  the 
                                                                              method  which  uses  dual‐quaternion  as  a  rigid  body 
                                                                              transformation operator becomes more advantageous. 

                                                                                                                                  2500
                                                                                                  Numbers of Total Calculations




                                                                                                                                                         Hom. Trans. Matrix
                                                                                                                                  2000                   Quaternion
                                                                                                                                                         Dual-Quaternion
                                                                                                                                  1500

                                                                                                                                  1000
                                                                                         
                        (I)                                          (II)                                                         500

                                                                                                                                    0
                                                                                                                                     0   5           10             15             20
                                                                                                                                             Degrees of Freedom                          
                                                                                                 Figure  4.  Performance  comparison  of  the  rigid  body 
                                                                                                 transformation chaining operations 
                                                                                                  
                                                                                                 Computational  efficiency  of  these  three  formulation 
                                                                                                 methods are given in figures 5 and 6.  
                                                                                                                                                      
                      (III)                                          (IV) 
Figure  3.  Stäubli  RX160  industrial  robot‐arm  carries  a  box  from 
its initial position to the target position 



www.intechweb.org                                                            Emre Sariyildiz, Eray Cakiray and Hakan Temeltas: A Comparative Study of Three Inverse Kinematic               17
                                                                                                 Methods of Serial Industrial Robot Manipulators in the Screw Theory Framework
                                                                              7. Experimental Study  
                                                                               
                                                                              In the experimental study, we used Stäubli RX series serial 
                                                                              robot  arm  and  CS8  controller  which  includes  a  low  level 
                                                                              programming  package  to  control  the  robot  under 
                                                                              VxWorks®  real  time  operating  system.  The  kinematic 
                                                                              algorithms are applied to Stäubli RX 160L robot arm, that is 
                                                                              shown  in  figure  7,  by  using  Stäubli  Robotics’  LLI 
                                                                              Programming  Interface  S6.4,  which  is  a  C  programming 
                                                                              interface  for  low  level  robot  control.  LLI  stands  for  Low 
                                                                           
                                                                              Level Interface and it is a software package which includes 
    Figure  5.  Simulation  times  of  the  forward  kinematic  solutions 
                                                                              minimum  functions  required  to  construct  a  robot  control 
    (second) 
                                                                              mechanism  via  C/C++  API  [31].  The  kinematic  algorithms 
     
                                                                              are written in C++ language by using the library functions 
                                                                              of LLI software package and embedded to the controller.   
                                                                               
                                                                              In  order  to  verify  the  simulation  results  we  made  two 
                                                                              different  path  tracking  applications  by  using  the  proposed 
                                                                              methods. The path tracking applications is implemented by 
                                                                              using the following block diagram which shown in figure 8. 
                                                                              In this block diagram a desired path, which is an elliptic path 
                                                                              for  the  first  application,  is  generated  in  the  desired  path 
                                                                              block and it is transferred to the inverse kinematic block. In 
    Figure  6.  Simulation  times  of  the  inverse  kinematic  solutions 
                                                                              the  inverse  kinematic  block  we  obtain  the  joint  angles  by 
    (second)                                                                  using  the  proposed inverse  kinematic  algorithms.  Then  the 
                                                                              angles which are obtained in the inverse kinematic block are 
    As  it  can  be  seen  from  figures  4,  5  and  6,  the  methods        directly  applied  to  the  robot  manipulator.  Robot  position 
    which  use  quaternion  and  dual  quaternion  as  a  screw               and  orientation  are  directly  measured  and  also  they  are 
    motion  operator  are  more  computationally  efficient  than             calculated  in  the  forward  kinematic  block.  Desired  path  is 
    exponential  mapping  method.  Since,  quaternion  and                    compared with the measured and calculated results and the 
    dual‐quaternion  methods  describe  screw  motion  using                  position and orientation errors are obtained. 
    less  parameter  and  have  less  computational  load.                     
    However  both  quaternion  and  dual‐quaternion  describe 
    screw  motion  using  eight  parameters,  dual‐quaternion 
    gives  us  better  results  than  quaternion.  Since,  screw 
    theory  with  dual‐quaternion  method  is  more  compact 
    than quaternion based method. And also as the degree of 
    freedom  of  the  system  increases  the  method  which  uses 
    quaternion  as  a  screw  motion  operator  gets  more 
    complicated.  Therefore,  dual‐quaternion  gives  us  better 
    results  than  quaternion  in  kinematics.  The  computation 
    time  is  evaluated  using  Matlab’s  tic‐toc  commands  on  a 
    Core 2 Duo  2.2 GHz PC with 2 GB RAM. 
                                                                                                                                             
                                                                              Figure 7. Stäubli RX 160L serial robot arms  


                                                                                                                          1
                                                                                                                   Position Error
                                         position      position                          position

                               time   DP                          IK angles    angles FK
                    Clock
                                       orientation     orientation                     orientation
                                                                                                                         2
                                                                                                                 Orientation Error
                                Desired Path          Inverse Kinematics      Forward Kinematics

                                                                                                                                      
    Figure 8. Block Diagram of Path Tracking Algorithm 


18 Int J Adv Robotic Sy, 2011, Vol. 8, No. 5, 9-24                                                                             www.intechweb.org
In  the  first  application,  an  elliptical  path  is  generated  on                                                                                                                                                                           x 10
                                                                                                                                                                                                                                                       -3

the x and z coordinates plane for the robot arm. Then, the                                                                                                                                                                                 2                                               0.05                                                   0.05




                                                                                                                                                                                                                       Joint 1 (rad/sec)




                                                                                                                                                                                                                                                                       Joint 2 (rad/sec)




                                                                                                                                                                                                                                                                                                                          Joint 3 (rad/sec)
inverse  kinematic  is  solved  by  using  this  path.  Figure  9 
shows  the  desired  and  measured  paths  for  the  elliptical                                                                                                                                                                            0                                                  0                                                               0

path tracking application. Path tracking results are shown 
in figures 9, 10, 11 and 12.                                                                                                                                                                                                               -2
                                                                                                                                                                                                                                                0           50   100
                                                                                                                                                                                                                                                                                           -0.05
                                                                                                                                                                                                                                                                                                   0       50       100
                                                                                                                                                                                                                                                                                                                                              -0.05
                                                                                                                                                                                                                                                                                                                                                                   0           50   100
                                                                                                                                                                                                                                                    Time (sec)                                         Time (sec)                                                      Time (sec)
                                                                                                                                                                                                                                                       -3                                                                                                                 -3
                                        150                                                                                                                                                                                                     x 10                                                                                                               x 10
                                                                                                                                                                                                                                           2                                               0.02                                                               1
    Distance on the coordinate z (mm)




                                                                                                                                                                                                                       Joint 4 (rad/sec)




                                                                                                                                                                                                                                                                       Joint 5 (rad/sec)




                                                                                                                                                                                                                                                                                                                                          Joint 6 (rad/sec)
                                                                                                                                                                                desired path
                                        100                                                                                                                                     measured path                                              1
                                                                                                                                                                                                                                                                                              0                                                               0
                                         50                                                                                                                                                                                                0

                                          0                                                                                                                                                                                                -1                                              -0.02                                                              -1
                                                                                                                                                                                                                                                0           50   100                               0       50       100                                            0           50   100
                                         -50                                                                                                                                                                                                        Time (sec)                                         Time (sec)                                                      Time (sec)
                                                                                                                                                                                                                                                                                                                                                                                           
                                        -100                                                                                                                                                                       Figure 12. Joint velocities of robot arm during the elliptical path 
                                                                                                                                                                                                                   tracking application 
                                        -150
                                          -250          -200     -150    -100                  -50                        0                     50              100                 150      200     250            
                                                                        Distance on the cooridante x (mm)                                                                                                          Figure  11  and  12  show  the  joint  position  and  velocities 
Figure 9. Path tracking on the coordinates x and z                                                                                                                                                                 during the elliptical path tracking application. Both of the 
                                                                                                                                                                                                                   joint position and velocities are smooth. Figure 10 shows 
                                                       -3                                                                                            -3
                                               x 10                                                                                            x 10                                                                the path tracking error. As it can be directly seen from the 
                                          2                                                                                               2
Error on the coordinate x (mm)




                                                                                                         Error on the coordinate z (mm)




                                                                                                                                                                                                                   figures  9,  10,  11  and  12  a  satisfactory  path  tracking 
                                                                                                                                                                                                                   application is implemented for an elliptical path by using 
                                                                                                                                          1
                                        1.5                                                                                                                                                                        the proposed methods.  
                                                                                                                                                                                                                    
                                                                                                                                          0
                                                                                                                                                                                                                   We  also  defined  a  cubic  path  which  passes  through  the 
                                          1                                                                                                                                                                        singular  configurations  of  robot‐arm.  Then,  we 
                                                                                                                                          -1                                                                       implemented the proposed methods to the path tracking 
                                                                                                                                                                                                                   application. The path tracking results for the position and 
                                        0.5                                                                                               -2                                                                       orientation  of  the  serial  robot  arm  are  shown  in  figures 
                                           0                    50                                 100                                      0                             50                         100
                                                             Time (sec)                                                                                                Time (sec)                                  13,  14  and  15.  Figure  13  shows  the  position  of  the  robot 
                                                                                                                                                                                                                
                                                                                                                                                                                                                   arm’s end effector on the x, y and z coordinates. Figure 14 
Figure  10.  Path  tracking  errors  on  the  coordinates  x  and  z 
                                                                                                                                                                                                                   shows  the  orientation  angles  of  the  robot  arm  using  the 
coordinates 
                                                                                                                                                                                                                   roll,  pitch  and  yaw  angles.  Ellipses,  which  are  shown  in 
                                        0.06                                                -0.8                                                                               2                                   figures  13  and  14,  show  that  robot‐arm  passes  through 
                                                                                                                                                                                                                   singular  configurations  at  these  points.  Figure  15  shows 
           Joint 1 (rad)




                                                                          Joint 2 (rad)




                                                                                                                                                              Joint 3 (rad)




                                                                                             -1
                                        0.04
                                                                                            -1.2                                                                              1.5                                  path tracking errors for position and orientation. 
                                        0.02
                                                                                            -1.4                                                                                                                    
                                              0                                             -1.6                                                                               1                                   As  it  can  be  directly  seen  from  the  figures  11‐13,  a 
                                                  0         50     100                             0               50                          100                                  0       50     100
                                                      Time (sec)                                       Time (sec)                                                                       Time (sec)                 satisfactory singularity free trajectory tracking application 
                                        0.08                                                1.8                                                                                0
                                                                                                                                                                                                                   is implemented by using the proposed methods. 
                                                                                                                                                                                                                    
           Joint 4 (rad)




                                                                            Joint 5 (rad)




                                                                                                                                                      Joint 6 (rad)




                                        0.06                                                1.6
                                                                                                                                                                      -0.01
                                                                                                                                                                                                                    
                                        0.04                                                1.4
                                                                                                                                                                      -0.02                                         
                                        0.02                                                1.2
                                                                                                                                                                                                                    
                                              0                                               1                                                                       -0.03
                                                  0         50     100                             0               50                          100                                  0       50     100              
                                                      Time (sec)                                       Time (sec)                                                                       Time (sec)
                                                                                                                                                                                                                    
Figure  11.  Joint  position  of  robot  arm  during  the  elliptical  path                                                                                                                                         
tracking application                                                                                                                                                                                                
                                                                                                                                                                                                                    
                                                                                                                                                                                                                    
                                                                                                                                                                                                                    
                                                                                                                                                                                                                    

                                                                                                                                                                                                                    




www.intechweb.org                                                                                                                                                                       Emre Sariyildiz, Eray Cakiray and Hakan Temeltas: A Comparative Study of Three Inverse Kinematic                                                                                                      19
                                                                                                                                                                                                            Methods of Serial Industrial Robot Manipulators in the Screw Theory Framework
                                                                                           350                                                                                                         50                                                                                                                                     0
                                                                                                                    desired path                                                                                               desired path                                                                                                                         desired path
                                                                                                                    measured path                                                                                              measured path                                                                                                                        measured path
                                                                                           300
                                                       Distance on the coordinate x (mm)




                                                                                                                                                                                                                                                Distance on the coordinate z (mm)
                                                                                                                                         Distance on the coordinate y (mm)
                                                                                                        Locus of robot                                                                                     0                                                                                                         -50
                                                                                                        arm singular                                                                                                           Locus of robot                                                                                                           Locus of robot
                                                                                           250                                                                                                                                 arm singular                                                                                                             arm singular
                                                                                                        configurations
                                                                                                                                                                                                                               configurations                                                                                                           configurations
                                                                                                                                                                                                       -50                                                                                     -100
                                                                                           200


                                                                                           150
                                                                                                                                                                                                      -100                                                                                     -150

                                                                                           100

                                                                                                                                                                                                      -150                                                                                     -200
                                                                                               50


                                                                                                0                                                                                                     -200                                                                                     -250
                                                                                                    0         100         200    300                                                                           0         100        200     300                                                                                                   0           100        200         300
                                                                                                                 Time (sec)                                                                                               Time (sec)                                                                                                                          Time (sec)
                                                                                                                                                                                                                                                                                                                                                                                            
    Figure 13. Path tracking for the x, y and z coordinates 


                                                                                           60                                                                                                         80                                                                                                                      70
                                                                                                                    desired path                                                                                               desired path                                                                                                                          desired path
                                                                                                                    measured path                                                                                              measured path                                                                                                                         measured path
                                                                                                                                                                                                      60                                                                                                                      60
                                                                                           40
                                                                                                                                                                                                                                                                                                                                                                    Locus of robot
                                                                                                                                                                                                                   Locus of robot                                                                                             50
                                                                                                                                                                                                      40                                                                                                                                                            arm singular
                                                                                                                                                                                                                   arm singular
                                                                                                                                           Pitch Angle (Degree)




                                                                                                                                                                                                                                                          Yaw Angle (Degree)
                                      Roll Angle (Degree)




                                                                                           20                                                                                                                                                                                                                                                                       configurations
                                                                                                                                                                                                                   configurations                                                                                             40
                                                                                                        Locus of robot                                                                                20
                                                                                            0           arm singular                                                                                                                                                                                                          30
                                                                                                        configurations
                                                                                                                                                                                                       0
                                                                                                                                                                                                                                                                                                                              20
                                                                                 -20
                                                                                                                                                                                                      -20
                                                                                                                                                                                                                                                                                                                              10

                                                                                 -40
                                                                                                                                                                                                      -40                                                                                                                                     0


                                                                                 -60                                                                                                                  -60                                                                                                        -10
                                                                                                0           100          200    300                                                                         0            100        200     300                                                                                                   0           100        200         300
                                  Time (sec)                          Time (sec)                                                                                                                                                                                                                                                                              Time (sec)                          
    Figure 14: Path tracking for the Roll, Pitch and Yaw orientation angles 
                      Error on the coordinate x (mm)




                                                                                                                                      Error in the Pitch Angle (rad) Error on the coordinate y (mm)




                                                                                                                                                                                                                                                                                Error in the Yaw Angle (rad) Error on the coordinate z (mm)




                                                                                                    -3                                                                                                              -4                                                                                                                                   -4
                                                                                           x 10                                                                                                             x 10                                                                                                                                      x 10
                                                                          2                                                                                                                            2                                                                                                                                      10

                                                                          0                                                                                                                            0
                                                                                                                                                                                                                                                                                                                                              5
                                                                  -2                                                                                                                                  -2
                                                                                                                                                                                                                                                                                                                                              0
                                                                  -4                                                                                                                                  -4

                                                                  -6                                                                                                                                  -6                                                                                                                                      -5
                                                                                           0               100      200         300                                                                        0             100      200       300                                                                                                    0           100      200            300
                                                                                                    -3      Time (sec)                                                                                              -3    Time (sec)                                                                                                                     -4     Time (sec)
                                                                                           x 10                                                                                                             x 10                                                                                                                                      x 10
                                                   1.5                                                                                                                                           1.6                                                                                                                                          10
                   Error in the Roll Angle (rad)




                                                                                                                                                                                                 1.4                                                                                                                                          8
                                                                          1
                                                                                                                                                                                                 1.2                                                                                                                                          6
                                                   0.5
                                                                                                                                                                                                       1                                                                                                                                      4

                                                                          0                                                                                                                      0.8                                                                                                                                          2
                                                                                           0               100        200       300                                                                        0             100      200       300                                                                                                    0           100      200            300
                                                                                                                                                                                                                          Time (sec)                                                                                                                            Time (sec)
                                                                                                            Time (sec)                                                                                                                                                                                                                                                                                
    Figure 15: Path tracking errors for position and orientation  



20 Int J Adv Robotic Sy, 2011, Vol. 8, No. 5, 9-24                                                                                                                                                                                                                                                                                                                                   www.intechweb.org
8. Conclusion                                                                    The representation  L(p, d) is not minimal, because it uses 
                                                                                 six parameters for only four degrees of freedom.  
In  this  paper,  three  formulation  methods  of  the  kinematic                 
problem of serial robot manipulators have been compared                          Plücker Coordinates 
in  terms  of  computational  efficiency  and  compactness.                       
These formulation methods are based on screw theory. The                         An  alternative  line  representation  was  introduced  by  A. 
main advantage of screw theory in robot kinematics lies in                       Cayley  and  J.  Plücker.  Finally  this  representation  named 
its  geometrical  representation  of  link  and  joint  axes  of  a              after Plücker [32]. Plücker coordinates can be expressed as:         
manipulator,  giving  better  understanding  of  its 
configuration  in  the  workspace  and  avoiding  singularities                                           L p (m , d ) where  m  p  d                  (A.2) 
                                                                                                    
due to the use of the local coordinates. Thus, the proposed 
methods  are  singularity  free  and  their  geometrical                         Intersection of Lines 
description  is  quite  simple.  In  these  formulation  methods, 
                                                                                 Let’s define two lines in Plücker coordinates given by 
the  first  one  uses  quaternions  as  a  screw  motion  operator 
which  combines  a  unit  quaternion  plus  pure  quaternion,                                          L pa (m a , d a ) and L pb (m b , d b )               (A.3)
                                                                                                                                                                   
the second one uses dual‐quaternions and the last one that                        
is  called  exponential  mapping  method  uses  4x4 
                                                                                 The  intersection  point  of  two  intersection  lines  can  be 
homogeneous matrices as a screw motion operator. Screw 
                                                                                 expressed as the following, [33] 
theories with quaternion and dual‐quaternion methods are 
more  computationally  efficient  than  exponential  mapping                       r  da  ma  ((db  mb )da )  da  db  mb  ((da  ma )db )  db  (A.4)  
method. And also screw theory with dual‐quaternion is the 
best method. On these accounts, the wider use of the screw                       where r indicates the intersection point. 
theory  based  methods  with  dual‐quaternion  in  robot 
kinematic  studies  has  to  be  considered  by  robotics                        Dual Numbers 
community.                                                                       The  dual  number  was  originally  introduced  by  Clifford 
                                                                                 in  1873  [34].  In  analogy  with  a  complex  number  a  dual 
The use of quaternions and dual quaternions in trajectory                        number can be defined as: 
planning  and  motion  control  problems  for  robotic 
manipulators  are  not  discussed  in  this  study.  However                                                               u  u   u o                          (A.5) 
                                                                                                                           ˆ
those  are  leaved  for  future  studies.  Also,  velocity  and 
dynamic analysis based on screw theory with quaternion                           where u and u o are  real  number  and  2  0 .  Dual  numbers 
algebra should be studied in the future works.                                   can be used to express Plücker coordinates given by.  
 
                                                                                                                   L p (u o , u )  u   u o                 (A.6) 
9. Appendix 
                                                                                                                                               o
                                                                                 where  u  ( x2  x1 , y2  y1 , z2  z1 ) and  u  p  d                         
A1. Line Geometry and Dual‐Numbers 
 
A line can be completely defined by the ordered set of                           A.2 Paden‐Kahan sub‐problems by using quaternion algebra 
two  vectors.  First  one  is  a  point  vector  p which 
                                                                                 Sub‐problem 1: Rotation about a single axis 
indicates the position of an arbitrary point on line, and 
the  other  vector  is  a  free  direction  vector  d which                      A  point  a rotates  about  the  axis  of  l until  the  point a is 
gives the line direction. A line can be expressed as:                            coincident  with  the  point b .  This  rotation  is  shown  in 
                                                                                 Figure A.2. 
                                L(p, d)                                 (A.1)                                                




                                  




                                                                                                                                                               




Figure A.1: A line in Cartesian coordinate‐system 
                                                                                 Figure A.2: Rotate a about the axis of l until it is coincident with b  


www.intechweb.org                                           Emre Sariyildiz, Eray Cakiray and Hakan Temeltas: A Comparative Study of Three Inverse Kinematic               21
                                                                                Methods of Serial Industrial Robot Manipulators in the Screw Theory Framework
    Let  r be a point on the axis of  l ,  x = a - r and  y = b-r be                   
    two  vectors.  The  rotation  angle  about  the  axis  of  l can 
                                                                                                         S l1  l2  S l2  x  S l1  y
    be found as follows,                                                              where    
                                                                                                                    S l1  l2 
                                                                                                                                     2
     
                                                                                                                                         1
                                                                                                                                                           
                  arctan 2  S l  x   y  , S  x   y          (A.7) 
                                                                                       
                                                                                   


                                                                                                           S l1  l2  S l1  y  S l2  x
    where  x  x  S l  x l  and                                                                 
                                                                                                                      S l1  l2 
                                                                                                                                         2
     
                                                                                                                                             1
                                           
                 y   q  x  q*  S l  q  x  q* l and                            
                                                                                                                                                               

                                              
                              q  [cos   ,sin   l] .                                                   || x ||2  2   2  2 S l1  l2 
                                       2      2                                                 2 
                                                                                                                      || V l1  l2  ||2
                                                                                                                                                                          (A.9) 
    Sub‐problem 2: Rotation about two subsequent axes 

    Firstly,  a  point  a rotates  about  the  axis  of  l1 by  1 and                Sub‐problem 3: Rotation to a given distance 
    then about the axis of  l 2 by  2 , hence the final location of                  A  point  a rotates  about  the  axis  of  l until  the  point  is  a 
        a is  coincident  with  the  point b .  This  rotation  is  shown             distance   from  b as shown in Fig. A.4. 
    in Figure A.3. 
                                                                                       




                                                                                      Let     r be  a  point  on  the  axis  of  l   and  x  [0, a  r ] and
    Let  r be  the  intersection  point  of  the  two  axes,  x = a - r                   y  [0, b  r ] be  pure‐quaternion  forms  of  the  vectors  x 
    and  y = b-r   be  two  vectors.  Let  c be  the  intersection                    and y respectively. The rotation angle  about the axis of 
    point  of  the  rotations  that  is  shown  in  Fig.  (A.3)  and  let             l can be found as follows, 
    z  c  r , be the vector that is defined between the points                       
    c and r ,  z  [0, z ]  pure‐quaternion form of the vector z .                                                   || x ||  || y  ||  2 
    We        can     also      define      two        rotations    given      by 
                                                                                                    0  cos1 
                                                                                                                                                
                                                                                                                                                                
                  *                       *                                                                          2 || x |||| y  ||                (A.10)
        q1  x  q1    z  q2      y  q2       
                                                ”                                      
                                                                                                    0  arctan 2  S l  x   y  , S  x   y    
     


                                                                                      where 
                                     
    where,        q1  [cos  1  ,sin  1  l1 ]  and  
                             2       2                                                                 x  [0, x]  x  S l  x l  

                                             
                       q2  [cos   2  ,sin   2  l 2 ]                                                                          
                                                                                                 y   [0, y ]  q  x  q*  S l  q  x  q* l                 
                                    2        2 
                                                                                                                                                  2
                                x = [0, x] and  y = [0, y] .                (A.8)                           2   2  S l   a  b   
                 
     
    Since  l1 ,  l 2 and  l1  l 2 are  linearly  independent,  we  can                                                       
                                                                                                              q  [cos   ,sin   l] .                 (A.11) 
                                                                                                                       2      2
    write  z   l1   l 2   0, V l1  l2    
                                               
                                                                                                                                                                       
     
                                                                                                                             




                                             




                                                                       
                                                                                                                                                                              




    Figure  A.3:  Rotate      a about  the  axis  of  l1 followed  by  a  rotation    Figure  A.4:  Rotate a about  the  axis  of l until  it  is  a  distance 
    around the axis of  l 2 until it coincident with the point  b .                   from b  


22 Int J Adv Robotic Sy, 2011, Vol. 8, No. 5, 9-24                                                                                                    www.intechweb.org
10. References                                                           [16] A.  Perez  and  J.  M.  McCarthy,  “Dual  Quaternion 
                                                                             Synthesis  of  Constrained  Robotic  Systems”,  Journal  of 
[1]   N.A.  Aspragathos,  J.K.  Dimitros,  “A  comparative                   Mechanical Design, vol.126, no.3, pp.425‐435, 2004. 
    study  of  three  methods  for  robot  kinematics”,  IEEE            [17] R.  Campa,  K.  Camarillo,  L.  Arias,  “Kinematic 
    Transactions  on  Systems,  Man,  and  Cybernetics,  Part  B:            Modeling and Control of Robot Manipulators via Unit 
    Cybernetics, vol. 28, pp.135‐145, Apr. 1998                              Quaternions:  Application  to  a  pherical  Wrist”,  
[2] R.  S.  Ball,  “The  Theory  of  Screws”,  Cambridge,  U.K.,             Proceedings of the 45th IEEE Conference on Decision 
    Cambridge Univ.Press, 1900                                               & Control, San Diego, USA, 13‐15 Dec 2006 
[3] J.D.  Adams,    D.E.  Whitney,  “Application  of  Screw              [18] E.  Sariyildiz  and  H.  Temeltas,  “Solution  of  Inverse 
    Theory  to  Constraint  Analysis  of  Mechanical                         Kinematic  Problem  for  Serial  Robot  Using 
    Assemblies  Joined  by  Features”,  Journal  of  Mechanical              Quaterninons”,        International      Conference       on 
    Design, vol. 123, Issue 1, pp. 26‐33, March 2001                         Mechatronics and Automation, 2009 
[4] Z.  Huang  and  Y.L.  Yao,  “Extension  of  Usable                   [19] E.  Sariyildiz  and  H.  Temeltas,  “Solution  of  Inverse 
    Workspace  of  Rotational  Axes  in  Robot  Planning”,                   Kinematic  Problem  for  Serial  Robot  Using  Dual 
    Robotica, vol. 17, pp.293–301, 1999                                      Quaterninons  and  Plücker  Coordinates”,  Advanced 
[5] A.T. Yang and F. Freudenstein, “Application of dual‐                     intelligent mechatronics, 2009 
    number  quaternions  to  the  to  the  analysis  of  spatial         [20] W.R. Hamilton, Elements of Quaternions, Vol. I, Vol. II, 
    mechanism”,  ASME  Transactions  Journal  of  Applied                    New York, Chelsea, 1869. 
    Mechanics, vol. 86, pp. 300‐308, June 1964                           [21] J.C.K  JChou,  “Quaternion  Kinematic  and  Dynamic 
[6] A.T. Yang, “Displacement analysis of spatial five‐link                   Differential Equations”, IEEE Transactions Robotics and 
    mechanism  using  (3  x  3)  matrices  with  dual  number                Automation, vol.8, pp. 53–64, Feb 1992 
    elements”,  ASME  Journal  of  Engineering  for  Industry,           [22] D. Han, Q. Wei and Z. Li, “Kinematic Control of Free 
    vol. 91, no. 1, pp. 152‐157, Feb.1969                                    Rigid  Bodies  Using  Dual  Quaternions”,  International 
[7] G.R.  Pennock  and  A.T  Yang,  “Application  of  dual‐                  Journal  of  Automation  and  Computing,  pp.319‐324,  July 
    number matrices to the inverse kinematic problem of                      2008 
    robot  manipulators”,  ASME  Journal  of  Mechanisms,                [23] K.  Dongmin,  “Dual  Quaternion  Application    to 
    Transmissions  and  Automation  in  Design,  vol.  107,  pp.             Kinematic  Calibration  of  Wrist‐Mounted  Camera”, 
    201‐208, 1985                                                            Journal of Robotic Sysyems, 13(3), 153‐162, 1996 
[8] J.  M.  McCarthy,  “Dual  orthogonal  Matrices  in                   [24] R.  Mukundan,  “Quaternions:  From  Classical 
    manipulator  kinematics”,  International  Journal  of                    Mechanics  to  Computer  Graphics  and  Beyond”, 
    Robotics Researches, vol. 5, pp. 45‐51, 1986                             Proceedings  of  the  7th  Asian  Technology  Conference  in 
[9] B.  Paden,  “Kinematics  and  Control  Robot                             Mathematics , 2002 
    Manipulators”,  PhD  Thesis  Department  of  Electrical              [25] J. C. Hart, G. K. Fracis, L.H. Kaauffman, “Visualizing 
    Engineering  and  Computer  Science,  University  of                     Quaternion  Rotation”,  ACM  Transactions  on  Graphics, 
    California, Berkeley,1986                                                vol.13, no. 3, pp. 256‐276, July 1994 
[10]W.  “Kahan,  Lectures  on  computational  aspects  of                [26] Q.  Tan  and  J.G.  Balchen,  “General  Quaternion 
    geometry”,  Department  of  Electrical  Engineering  and                 Transformation         Representation         For      Robot 
    Computer Science, University of California, Berkeley,1986                Application”,  IEEE  Transactions  on  Systems,  Man  and 
[11] M.  Murray,  Z.  Li,  and  S.S.  Sastry,  “A  mathematical              Cybernetics,  Systems  Engineering  in  the  Service  of 
    introduction  to  robotic  manipulation”,  Boca Raton  FL:               Humans, vol.3, pp. 319‐324, Oct. 1993 
    CRC Press, 1994.                                                     [27] J.M.  Selig,  “Geometric  Fundamentals  Of  Robotics”,  2nd 
[12] J.Xie,  W.  Qiang,  B.  Liang  and  C.  Li,  “Inverse                   Edition: Springer, November 2005  
    Kinematics  Problem  for  6‐  DOF  Space  Manipulator                [28] D.  Gan,  Q.  Liao,  S.  Wei,  J.S.  Dai,  S.  Qiao,  “Dual 
    Based  On  The  Theory  of  Screw”,  International                       quaternion  based  inverse  kinematics  of  the  general 
    Conference on Robotics and Biomimetics, Dec. 2007                        spatial 7R Mechanism”, Proceedings of the Institution of 
[13] W.  Chen,  M.  Yang,  S.  Yu,  T.  Wang,  “A  hybrid                    Mechanical  Engineers,  Part  C:  Journal  of  Mechanical 
    algorithm  for  the  kinematic  control  of  redundant                   Engineering Science, vol. 222, pp. 1593‐1598, 2008 
    robots”, IEEE International Conference on Systems, Man               [29] K.  Daniilidis,  “Hand‐Eye  Calibration  Using  Dual 
    and Cybernetics, vol.5, pp. 4438‐4443, 10‐13 Oct. 2004                   Quaternions”,  The  International  Journal  of  Robotics 
[14] J. Funda and R.P. Paul, “A computational analysis of                    Research, vol.18, no.3,  pp. 286‐298, March 1999 
    screw  transformations  in  robotics”,  IEEE  Transactions           [30] T.  Yue‐sheng  and  X.  Ai‐ping,  “Extension  of  the 
    Robotics and Automation, vol.6, pp. 348–356, June 1990                   Second  Paden‐Kahan  Sub‐problem  and  its 
[15] J.  Funda,  R.H.  Taylor  and  R.P.  Paul,  “On                         Application  in  the  Inverse  Kinematics  of  a 
    homogeneous           transforms,      quaternions,     and              Manipulator”,  IEEE  Conference  on  Robotics, 
    computational  efficiency”,  IEEE  Transactions  Robotics                Automation  and  Mechatronics,  Chengdu,  pp.379‐384, 
    and Automation, vol.6, pp. 382–388, June 1990.                           Sept 2008 


www.intechweb.org                                    Emre Sariyildiz, Eray Cakiray and Hakan Temeltas: A Comparative Study of Three Inverse Kinematic    23
                                                                         Methods of Serial Industrial Robot Manipulators in the Screw Theory Framework
    [31] F.  Pertin,  J.‐M.  B.  des  Tuves,  “Real  Time  Robot 
        Controller Abstraction Layer”, In Proc. Int. Symposium 
        on Robots (ISR), Paris, France, March 2004.  
    [32] H.  Bruyninckx  and  J.  D.  Schutter  ,  “Introduction  to 
        Intelligent   Robotics” 7th edition, Oct. 2001 
    [33] J.H  Kim,  V.  R.  Kumar,  “Kinematics  of  robot 
        manipulators  via  line  transformations”,  Journal  of 
        Robotics and Systems, vol.7, no.4, pp. 649–674, 1990. 
    [34] Y.L.  Gu  and  J.Y.S.  Luh,  “Dual  Number 
        Transformation and Its Application to Robotics”, IEEE 
        Journal of Robotics and Automation, vol.RA‐3, no.6, Dec. 
        1987 
     
     




24 Int J Adv Robotic Sy, 2011, Vol. 8, No. 5, 9-24                      www.intechweb.org

								
To top