You are on page 1of 6

The Inverse Kinematics Solutions of Industrial Robot Manipulators

Serdar Kiiqiik Zafer Bingul


Electronic and Computer Education Department of Mechatronics Engineering
Kocaeli University, Kocaeli, Turkey Kocaeli University Kocaeli, Turkey
e-mail :skucuk@kou.edu.tr e-mail:zaferb@kou.edu.tr

Abstract performed by a robot manipulator are in the Cartesian


The inverse kinematics problem of robot manipulators is space, whereas actuators work in joint space. Cartesian
desired to be solved analytically in order to have complete space includes orientation matrix and position vector.
and simple solutions to the problem. This approach is also However, joint space is represented by joint angles. The
called as a closed form solution of robot inverse conversion of the position and orientation of a robot
kinematics problem. In this paper, the inverse kinematics manipulator end-effector from Cartesian space to joint
of sixteen industrial robot manipulators classified by space is called as inverse kinematics problem [3,4]. This
Huang and Milenkovic [I] were solved in closed form. relationship between joint space and Cartesian space is
Each robot manipulator has an Euler wrist (Figure 1) illustrated in Figure 2.
whose three axes intersect at a common point. Basically, A
five trigonometric equations were used to solve the
inverse kinematics problems. Robot manipulators can be
mainly divided into four different group based on the joint
structure. In this work, the inverse kinematics solutions of
SN (cylindrical robot with dome), CS (cylindrical robot),
NR (articulated robot) and CC (selectively compliant
assembly robot arm-SCARA, Type 2) robot manipulator
belonging to each group mentioned above are given as
an example. The number of the inverse kinematics
solutions for the other robot manipulator was also
summarized in a table.
Figure 1. The configuration of Euler wrist.

1. Introduction The inverse kinematics problem of six joint robot


manipulators has been studied for decades. The reason of
A robot manipulator is composed of a serial chain of this study comes from widesprade use of six jointed robot
rigid links connected to each other revolute or prismatic manipulators in industry. The complexity of the inverse
joints. A revolute joint rotates about a motion axis and a kinematics problem of industrial robot manipulators arises
prismatic joint slide along a motion axis. Each robot joint from their geometry and including nonlinear equations.
location is usually defined relative to neighboring joint. Some other difficulties in inverse kinematics: kinematics
The relation between successive joints is described by 4x4 equations are coupled and multiple solutions and
homogeneous transformation matrices that have singularities may exist. Matematical solutions for inverse
orientation and position data of robots. The number of kinematics problem may not always correspond to
those transformation matrices determines the degrees of physical solutions and method of its solution depends on
fieedom of robots. The product of these transformation the robot configuration [6-81.
matrices produces final orientation and position data of a There are three types of inverse kinematic solution:
n degrees of fi-eedom robot manipulator. Given the sets of complete analytical solution (closed form solution),
joint angles, calculate the position and orientation of the numerical solutions and semi-analitical solutions. In the
end-effector of the robot manipulator, is called forward first type, all of the joint variables are solved analytically
kinematics [Z]. Forward kinematics problem is according to given configuration data. Closed form
straightforward and there is no complexity deriving the solution is preferable because in many applications where
equations [ 5 ] . Hence, there is always a forward the manipulator supports or is to be supported by a
kinematics solution of a robot manipulator. Tasks to be sensory system, the results from kinematics computations

02004 IEEE
0-7803-8599-3/04/$20.00 274
need to be supplied rapidly in order to have control where q i is the joint variable (revolute joint or prismatic
actions. In the second type of solution, all of the joint joint) for joint i. To find the inverse kinematics solution,
variables are obtained iterative computational procedures. it should he solved for q i as function of the known
There are four disadvantages in these: a) incorrect initial
estimations, b) before executing the inverse kinematics elements of md&ET.To find q1 firstly as a h c t i o n
algorithms, convergence to the correct solution can not be of the known elements, the link transformation inverses
guarantied, c) multiple solutions are not known, d) there are premultiplied as follows.
is no solution, if Jacobian matrix is singular [9]. In the
third type, some of the joint variables are determined
analytically in terms of two or three joints variables and 13)
~,
these joint variables computed numerically. h3)
h2) 45m)
h4) im6)
Joint where [qT(ql)rl q T ( q l ) = l , I is identity matrix. Then
equation 3 can be simplified as follows.
[pT(q,)ri :T= h 2 ) ?Aa):7'(q4) '$"(qs) h)(4)
To find the other joint variables, the following equations
are obtained in a similar manner.
Figure 2. The schematic representation of forward and
inverse kinematics. [qT(41) :T(g2)ri %= :T(q3) : T ( 4 4 ) 'h,56T(%)
) (5)
This paper is written following manner. In Section II, [:%) h q 2 ) ?(93)f' !$= : T ( q j ) !T(qs) ? J ( q g ) (6)
the properties of homogenous transformation matrices
were identified and inverse kinematics problem
formulation was given. In Section 111, the two-Letter code [ q T ( a ) iT(q2) &) h 7 4 ) r i HT= !7(95) h k ) (7)
description of robot configurations were explained and
the fundamental robot manipulators were classified
according to their joint properties. In Section IV, the (qT(91) h) : T ( s j ) ?T(qs)ri :T= i T ( ' 1 6 ) (8)
inverse kinematics solutions of SN, CS, NR and CC robot
manipulator which were given in closed form and the There are 12 simultaneous set of nonlinear equations
numbers of inverse kinematics solution of sixteen robot to be solved. The only unknown on the left hand side of
manipulator were presented as table. Finally, the equation 4 is q l . The 12 nonlinear matrix elements of
contribution ofthis work is insisted in Section V. right hand side are either zero, constant or functions of
q2 through q 6 . If the elements of on the left hand side
2. Problem Formulation that are a function of q1 are equated with elements on
the right hand side then the joint variable q , can be
For a six jointed robot manipulator, the position and solved as functions of rII , rL2 ..... r 3 3 , p x , p?, and
orientation of the end-effector with respect to the base is
pI and fixed link parameters. Once 9 , is found, then
given by,
other joint variables are solved by same procedure as
before. There is no necessity that first equation will
produce q1 and second q 2 etc. To fmd suitable equation
to solve the inverse kinematics problem, any equation
defined above (equations 4-8) can be used arbitrary. Some
trigonometric equations used in the solution of inverse
kinematics problem were given as Table in Appendix A.
where ,!,Is represent the rotational elements of
transformation matrix ( i a n d j = l , 2 and 3 ). p i , p v 3. Description of Robot Configurations
and p _ are the elements of position vector. Using
B.Huang and V. Milenkovic [ l ] used a two-letter code
complete analytical solution technique, it should be to classify a robot configuration. The first letter
started by equating the known transformation with the characterizes the first joint and the first joint's
product of the link transformations. relationship to the second joint. The second letter
identifies the third joint and third joint's association to the
06T =?T(qi) h q 2 ) :T(q;) !T(qj) ' h q s ) iT(qg) (2) second joint. The code letters and their meanings are:

275
S : Slider
C : Rotary parallel to slider
N : Rotary perpendicular to rotary
R : Rotary perpendicular to rotary, or rotary
parallel to rotary

The combination of these rotary and prismatic joints


compose the sixteen robot configurations which are
named as

SS, SC, SN, CS, CC, CR, NS, NN, NR, RC, RN, RR,
RS, SR, CN and NC.

Table I gives the joint structure of sixteen robot


manipulator (P, R, F, S, T and M represent prismatic,
revolute, first, second and third joints and manipulator,
respectively).

Table 1. The joint structure of sixteen robot manipulator.

The fundamental robot manipulators can be divided in to


four types according to their joint properties as follows. In
the first Type, there are five orthogonal robot manipulator
(SS, SN, NS,.NN and RR) which have three joints are
perpendicular each other. In the second Type, there are
four robot manipulators.(CS, CR, RN and CN) whose the
first two joints are parallel to each other. In the third
Type, there are four robot manipulators (SC, NR, RC and
NC) whose the last two joints are parallel to each other. In
the fourth Type, there are three robot manipulators (CC,
RS and SR) whose three joints are parallel to each other.

3. The Inverse Kinematics


In this section, the inverse kinematics of SN, CS, NR
and CC robot manipulators illustrated in Figure 3 were
driven. The forward transformation matrices of SN, CS,
NR and CC robot manipulator used in inverse kinematics
- , --
problem were given in Appendix B.

3.1. The Inverse Kinematics for SN Robot

Revolute joint variable ff, can be determined by equating


(2,4) matrix elements each of sides (on the left hand side
and right hand side) in equation 4.
(d)

(9) Figure 3. (a) SN robot manipulator. (b) CS robot


manipulator. (e) NR robot manipulator. (d) CC robot
manipulator.

276
Taking square of (l,4), (2,4) and (3,4) matrix elements of Extracting cos0, and sin$, from (1,3) and (3,3),
each sides and adding the results then, prismatic joint cos8, and sin 8, from (2,2) and (2, I) matrix elements of
variable d, can be computed.
each sides in equation 7, revolute joint variables 8, and
8, can he computed, respectively.
(lo)
d, = p , - d d , 2 + 1 2 2 - 2 d 2 d 4 ~ 8 ~ - p ~ 2 - I ~ 2 + Z P r ~ ~-Py2

0, = Atan2(cB1cB4r,;+sB2cS,r,; +s8,r3, ,
Revolute joint variable 8, can be found by equating (1,3) (19)
s@i3 - 4 r 2 ; )
matrix elements of each sides in equation 4.
. . 0, = Atan2(-~B~sB,r,~
-sf3,s8,r2, +cB4r31,
B2 = Atan2(d4sO3J2) (20)
-cBlsB4r,2 -sB1sB4r22 +c84r32)
(1 1)
f A tan2(dl: +d2s2& -(pz - d,I2.pz - 4)

Revolute joint variable 8, can be determined by equating 3.3. The Inverse Kinematics for NR Robot
(2,3) matrix elements of each sides in equation 6
Revolute joint variable 8, can be determined by
equating (2,4) matrix elements of each sides in equation
0, = Atan2(i-dl -(cS,s8;q3 -cB3r2, + s B 2 s B , r 3 ~ ) ’ , 4.
(12)
cB2s&r,, -cB,r2; +sS2s0,r3;)
01=Atan2(-py . - P ~ ) Or 81=Atm2(py PI) (21)
Extracting cos.9, and sin$, from (1,3) and (3,3), cos8,
and sin8, from (2,l) and (2,2) matrix elements of each Taking square of (1,4) and (3,4) matrix elements of each
sides in equation 6, revolute joint variables 8, and 8, sides in equation 4 and adding the results then, revolute
joint variable 8, can be computed.
can be computed, respectively.

8, = Atan2([-sB2r,; + ~ . 9 ~ q ~ ] ,/ s 8 ~
(13)
[cS2cB;r,; + sB3r2;+ss2c03r3,]/s0,)
2 2
( c 8 , p , + s 8 , p , . ) 2 + ( ~ , - h 1 ) 2 - d q-12
0, = Atan2([-cB2sbjq2 -s82s6jr32l/s0j ,
(14)
* I-(
2d412
1
[ C B ~ S B ;-c&r2,
~ , ~ +sB&r,~l/sQ,)
Revolute joint variable 8, can be determined by equating
3.2. The Inverse Kinematics for CS Robot
(1,4) matrix elements of each sides in equation 4.
Revolute joint variable 8, can be determined by B2=Atan2(d4c8~,d4s03
+12)
equating (1,4) matrix elements of each sides in equation
f Atan2(,/d: +I: +2I2d4sB3- ( c B I p r +rqp,,)’ , (23)
4.
ce,px + S B ~ P J
= A t a n 2 ( p y , p x ) + A t a n 2 ( J m , I , ) (15)
Revolute joint variable 8, can be determined by equating
Prismatic joint variables d2 and d,can he attained by (2,3) matrix elements of each sides in equation 6.
equating (3,4) and (2,4) matrix elements of each sides,
respectively in equation 4.

d2 =P: (16)
d3 = sBI px -CBI p v -d, (17)
Extracting cos@, and from (1,3) and (3,3),
Revolute joint variable 8, can be determined by equating cos@, and sine6 from (2,l) and (2,2) matrix elements of
(2,3) matrix elements of each sides in equation 7. each sides in equation 3, 8, and 8, revolute joint
variables can be computed, respectively.
8, = ~ t a n z ( - r ;, ~- C B , Y ~ ~-selr2;) or
8, = Atan2(1j~. c 0 1 r 1 3 + s 0 , r 2 ; ) (18)

277
e, = ~ t a n 2 ( [ s e , q ,-celr23iisej , Table 2. The numbers of inverse kinematics solution for
[~ew~,r,,+ s w 2 3 r 2 3+ s e 2 3 r 3 3 ~ / s ~ j(25)
j sixteen robot manipulator.

4 = A t a n 2 ( [ ~ @ 8 ~+se1se2,r2,
~r,~
[-ce,sOZ3q I
- ~ 0 2 ~ r ~ ~ l ,i . s O ~
-.sOl.~023r21
+c823r3~lis8~j
M S S S C C C
S C N S C R S N
N I 2 4 1 8 1 4 1 81 8
:
N

16
N
R
16
R R
C N
81 16 : i
R R S C N
R S R N C
81 4 4 18: 8

N represents the number of solutions of sixteen robot


3.4. The Inverse Kinematics for CC Robot manipulators.
Prismatic joint variable d2can be determined by 4. Conclusion
equating (3,4) matrix elements of each sides in equation
4. The inverse kinematics solutions of sixteen industrial
robot manipulators were found in closed form. These
d2 = pi (27) manipulator designs have efficient closed form solutions,
because they allow for the decoupling of the position and
Taking square of (1,3) and (2,3) matrix elements of each orientation kinematics. The geometric feature that
sides in equation 4 and adding the results then, revolute generates this decoupling is the intersection of joint axes.
joint variable 8, can he computed. Having closed form solutions of robot manipulators
avoids from computation cost and time consuming, while
inverse kinematics solution data are evaluated in the
microprocessor. Therefore, it is desirable to find robot
structure that gives closed form solution. In literature,
there are no criteria to test which robot structure gives
closed form solution or to obtain closed form solution
what kind of robot structure should be had. It can be said
that six degree of freedom robot manipulators with Euler
Revolute joint variable 8, can be determined by equating wrist always produce closed form solutions.
(1,3) matrix elements of each sides in equation 4.
References
e, = Alan 2(p, ,p,)-t A tan 2(dp,2 + p; - (+e3 + l2 j2 2 (29) [I] V.Milenkovic and B.Huang, “Kinematics of Major Robot
dqse3+i2j Linkages”, Robotics /nternationo[ of SME, April. 1983,vo1.2,
pp. 16-3 1.
Revolute joint variable 8, can be found by equating (2,3) [2] 1. Craig, hhoduction to Robotics: Mechanics and Control,
matrix elements ofeach sides in equation 7. USA, 1989.

0, =Atan2(-r3, ,-ce13r13-sOI3rz3j or [3] K. S. Fu, R. C. Gonzalez, and C. S. G. Lee, Robotics:


Control Sensing and Intelligence, New York, Mc Grow-Hill,
8, =Atan2(r33,c43r13+ s 4 3 ~ 3 ) (30) 1987.

Extracting cos@j and sinOj from (3,3) and (1,3), [4l V. D. Towissis, “Principles and Design of Model-based
Controllers,” I n / . J of Contr.,1988, vol. 47(5j, pp.1267-1275.
cos8, and sine6 from (2,Z) and (2,l) matrix elements of
each sides in equation 7, revolute joint variable O5 and [5] Robert J. Schilling, Fundamentals of Robotics, Prentice
Hall, USA, 1990.
0, can be computed respectively.
[6] Phillip John McKerrow, Introduetion to Robotics, Addison-
us = A t a n 2 ( - ~ 6 ~ c Q-seI3c8,r2,
~~q~ -se4rj3, Wesley Publishing, USA, 1991.
(31)
se13q3 -c813r23)
[7] H. Asada, J.J.E. Slotine, Robot Anolysir ond Control, Wiley
Interscience Publication. USA. 1986.
e, = Atan2(-cfi3sQqq1-s8,,s04r2,+ C B , I ~ ~ ,
(32) [SI William A. Volovich, Roborzcs- Bmic Analym ond Design,
- ~ e , ~ s e ,-se13se4r22
q~ +ce4r3,) CBS Collage Publication, USA, 1987.

Table 2 gives the numbers of inverse kinematics solution [Y] V. D. Tourissis and Marcel0 H. Ang, “A Modular
for sixteen robot manipulator. Architecture for Inverse Robot Kinematics”, IEEE Transaction
on Robotics andAuromation, 1989, Vol. 5( 5 ) .

278
Appendix A
T
- Ill IV
Table 3. Some trigonometric equations and solutions cos0, -sin@ 0 0
used in inverse kinematics.
!T

I
;j
Equations Solutions
osinO+bcos8=c 1 O=AtanZ(o,b)

osinO+bcos8=0 1
f AtanZ(d-.
O=Atan2(-b, a) or
c)
:T
cos8,
[s:?i
-sine2
co;S2
0 ;
0
-1
0
0

B = A t a n 2 ( b ,-a)
case = a and sin 8 = b I 8 = Aian 2 j b . a I cos8, -sineJ 0 1,
sine, cosb', 0 0
0 0 1 0

sinO=a I
I

B=Atan2[ U, fm) 0 0 0 1

1
cos8, -sin.!?, 0 0 cos.9, -sin.!?, 0 0
0 -I -d4
0 -I -d4
Appendix B :r
cosls, .;, ;
Table 4. The forward transformation matrices of (I) SN: c o d j -sine5 0 0
(11) CS, (111) NR and (IV) CC robot

1 :]
0
manipulators.
4
ST
I I1

- s i i08 6
0
-sine, -cosS6 0 0

T represents the index of transformation matrices.

1 II] 0
0
-cosS,
-sinBJ -sileJ
cos04 -sine4 0
-1
0 0

0
-d4
cosl?, -sine4 0 0

a'
1 3 cos0, -sin@, 0 0
0 [si;8, co;06
0
-sins, -cos@, 0 0

279

You might also like