# 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

• pg 1
```									                                                                                                                                    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
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

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)

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

-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.

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