You are on page 1of 6

Path generation for industrial robots

M. Nystrom1 , M. Norrlof2
Department of Electrical Engineering,
Linkoping University, SE-581 83 Linkoping, Sweden
1. e-mail: nystrom@isy.liu.se
2. e-mail: mino@isy.liu.se

Abstract

motion while in many real applications where industrial robots are used the complete path must
be specified. In [3] the Cartesian path is approximated by line segments. From line segments it
is easy to take the step to represent the path using
general splines, this is discussed in e.g. [7]. To
control the manipulator it is necessary to transform the Cartesian path into a joint space representation. This step can also include the dynamic
optimization as described in [3, 2].

Path generation in Cartesian space is discussed and the


idea of using lines and arcs to create general paths is
presented. To make smooth paths in Cartesian space
zones are introduced and two different ways to interpolate zones are given. An algorithm for transforming
a Cartesian path into a cubic spline representation in
joint space is presented and also evaluated in an example. An important aspect of the proposed algorithm
is that the resulting path in joint-space has a bounded
Cartesian space error.

In the first part of this contribution path generation in Cartesian space using lines and circle
segments is discussed. One problem in Cartesian
space is how the lines and circles should be connected to each other to create a smooth path. The
solution is based upon the introduction of zones
in which an interpolation between the two lines,
the two circles or the circle and the line can be
done.

Introduction

There is a growing interest in academia and industry for new algorithms, methods and tools in generation and optimization of trajectories for industrial robots [4]. This development is motivated by
the increasing need for improved motion performance in several robot applications such as laser
cutting, laser welding, machining, assembly and
material handling.
The trajectory generation problem can be divided into two separate problems. The first,
which is covered here, deals with the path planning or path generation. This is a strictly geometrical problem but since it serves as an input
to the next step, the trajectory planning and optimization, it does have an impact on the resulting
trajectory. The two problems are often considered as one, see for example [4, 1, 2, 6]. Many of
the early contributions only covers point-to-point

The second part of this contribution deals with


the generation of paths in joint space. This includes transforming the Cartesian path to joint
space using the kinematic model [10, 8] of the
robot and also to interpolate a path in joint space
using splines. An algorithm for spline interpolation is presented and ideas on how to adjust
the length of the splines in order to keep a certain level of path accuracy in Cartesian space are
given.
Finally an example is presented where the algorithms for path generation are applied to a Cartesian line-circle path. This paper is based upon the
results presented in [8], [9], and [7].

This work was supported by the VINNOVA Competence Center ISIS at Linkoping University

The path in Cartesian space

During the interpolation a normalized index is


used. This means that each segment is given a
new index l, where l [0, 1]. In the intersection
point with zone j, index for segment i, li , has the
value lizj where j = i or j = i 1.
The path inside the zone j uses an internal index lzj , which is based on the normalized index
of the second segment of the zone. For zone 1 in
Figure 1 this means that lz is based on the normalized index for segment 2. In general for a zone j:
lzj [l(j+1)zj , l(j+1)zj ].
If the robot was programmed to stop at the connection point of two adjacent segments, then the
distance from the beginning of the zone to the
connection point could be seen as a braking distance. The distance from the connection point to
the end of the zone could similarly be considered
as acceleration distance. If the braking and the acceleration take place simultaneously during a time
i,1 should be reached on the first
, then a point p
(i+1),1 on the second segsegment and a point p
ment. If these two points are seen as vectors from
the connection point of the two segments, the corresponding point on the interpolated path is given
i,1 + p
(i+1),1 , see Figure 2. This procedure
by p
continues until, on the first segment, the connection point is reached, and on the second segment,
the end point of the zone is reached.

The first step in path generation is to create a path


in Cartesian space. Here it will be assumed that
the robot has only 3 degrees of freedom (DOF)
and therefore only the position of the path is considered.

2.1

Path primitives

The path followed by the robot end effector (or


tool) is in general composed by connecting a
number of lines and arcs, where each line and
arc is referred to as a segment. Each segment has
a parametric representation p(lc ) where lc is the
length of the segment (in m). A line segment is
represented by a first order spline and the arc is
p(lc ) where
represented by p(lc ) = T
T
(lc ) = r cos(lc /r) r sin(lc /r) 0 1
p
(1)
(lc ) is expressed in a local coordinate frame
and p
with origin in the center of the circle. r is the radius of the circle and lc is the index varying from
zero to the length of the arc. T is a homogeneous
transformation matrix (see e.g. [10]) expressing
the coordinate transformation between the local
coordinate frame and the global coordinate frame.

2.2

Introduction of zones

In order to make the path smooth, a circular zone


is introduced around the intersection points of every two adjacent segments, as shown in Figure 1.
Within this zone, the path is allowed to deviate
from the segments as long as the path does not
leave the zone. The actual path is interpolated
from the two adjacent segments.

segment 1

p1,1

z0
x0 O
0

p2,1
y0

p2

Figure 2: Illustration of how the zone path is created.

zon 2
zon 1

Clearly does not correspond to time in practice but the idea of deceleration and acceleration
along the path can be used as an interpretation of
the process of interpolation. The index and the
index lzj of zone j are related through

segment 3

segment 2

Figure 1: Three segments, an arc and two lines.


The two zones used in the interpolation of a
smooth path are shown as dashed circles.

=1+

lzj
l(j+1)zj

(2)

which gives [0, 2]. For a given and a given


2

zone j = i the normalized index for each segment, li and li+1 , are computed through integradli+1
i
tion of dl
d and d . Two different choices of
these derivatives will be presented below.

0.9

0.8

0.7

0.6

0.5

2.3

0.4

Examples of zone path interpolation

0.3

A fundamental requirement when constructing


the zone path is that the resulting path should be
continuous with continuous derivative and preferably a continuous second derivative. These requirements can be transformed into requirements
2
2
on the second derivatives ddl2i and d dli+1
2 .
To get a continuous second derivative of the
path at the beginning and the end of the zone,
the second derivatives of l should be close to zero
near these points. Also, to minimize the acceleration of the robot end effector along the path, the
second derivative of l should be kept small within
the zone.
A constant second derivative of index l, with
respect to , gives the first derivatives of index l as
the solid lines shown in Figure 3. This method of
zone interpolation will be referred to as Method
1. The values of the normalized indices li and li+1
are given by the integrations
Z 2
dli
li = 1
dx,
(3)
dx
Z
dli+1
dx .
(4)
li+1 =
dx
0

0.2

0.1

0.2

0.4

0.6

0.8

1.2

1.4

1.6

1.8

Figure 3: Example of linear (solid) and non-linear


2
2
(dashed) choice of ddl2i and d dli+1
(described in
2
(5), (6), and (7)).

l(i+1)zi x
+ l(i+1)zi
2
0
!
1
x
x
2 (cos( 2 + ) + 1) 2
dx

( )

li+1 =

(6)

Here ( ) is constructed as two connected second


order polynomials.

when 1
k 2 + 1
(7)
( ) =
k( 2)2 + 1 when > 1
A small value of k in (7) gives a deeper zone path
with smaller discontinuities, but with a larger second derivative. By changing the function ( ),
different zone paths can be created.

This means that for zone i, li [lizi , 1] and li+1


[0, l(i+1)zi ]. As a result of the nonzero value of
the second derivative of the index at = 20 and
p(lc )
,
= 2, the second derivative of the path, d dl
2
c
will not be continuous at the beginning and the
end of the zone. A smaller discontinuity can be
achieved with the derivative of the index as the
dash-dotted lines shown in Figure 3 and this interpolation method will be referred to as Method
2. The indices are here calculated according to (5)
and (6).
Z 2
x
(1 lizi )(1 ) + (1 lizi )
li = 1
2

!
1
x
x
2 (cos( 2 ) + 1) (1 2 )
dx
( )

The path in joint space

The next step is to transform the path in Cartesian


space into a path in joint space. The path in joint
space is here supposed to be represented using cubic splines.

3.1 An algorithm for path generation in


joint space
The general algorithm is given by Algorithm 1
(from [7, 8]).
Algorithm 1 requires that index lc is used. As
described in Section 2.3, index lz , which is based
on the normalized index l [0, 1] is used in the

(5)
3

Algorithm 1 Joint path interpolation.


n = number of breakpoints in each spline
lc = 0
hlc = distance between breakpoints
while not end of section do
for i = 0 to n 1 do
Compute pi for index lc + hlc i and compute the corresponding joint angle qi with
inverse kinematics.
end for
dq(n1)
0
Calculate dq
dlc and
dlc .
(lc ).
Compute the complete cubic spline q
Adjust the spline interpolation length based
c ) P(lc )k.
upon the computed error kP(l
end while

given by
max

xi xxi+1

lc =

kP(lz + lz ) P(lz )k .

|f (4) (x)| M ,

(9)

xi x xi+1 .

(10)

h is the maximum length of interval [xi , xi+1 ].


Using the upper bound of the error in (9) algorithms, such as Algorithm 2, for adjusting the
length of the spline can be constructed.
Large values of and in Algorithm 2 result
in a smaller value of h, i.e. a shorter length between the breakpoints, when the current deviation
is close to the specified maximum value, .
Algorithm 2 Adjust the spline length.
c )k
= kP(lc ) P(l
= maximum value of
x = /
if x > 1 then
i = x1/4
if i > then
h = h i
else
keep h
end if
else
1
r = x1/4
if r > then
h = h r
else
h=h
end if
end if

(8)

lz lz

Since no inverse function of (8) can be found easily, this equation also, by iterations, gives the solution to an index lz for a specific lc . In order for
the transformation to succeed, it is important that
the approximation error in (8) is kept small.
In Algorithm 1 the maximum deviation of the
actual path from the desired path is used to evaluate each computed spline. This deviation can
be approximated with the deviation in between
each two adjacent breakpoints of the spline funch
tion, i.e. points given by index lc + 2lc , . . . , lc +
h
(2n 3) 2lc . The joint angles corresponding
to these indices are transformed into Cartesian
space using forward kinematics, and then compared to the desired Cartesian path. To compute
the splines in joint space a complete spline is
used, see e.g. [5].

4
3.2

5
M h4 ,
384

(see e.g. [5]) where the function f is assumed


4 times continuously differentiable on [xi , xi+1 ]
and

interpolation of the zone paths. The relationship


between index lc and lz can be approximated by
X

|s(x) f (x)| <

An example

The algorithms presented in this paper will now


be applied to a Cartesian line-circle path. A threelink robot with the Denavit Hartenberg [10] parameters according to Table 1 will be used. For
more details on the robot and the kinematics see
[8].

Adjustment of the length of the spline

In order to keep a certain level of path accuracy,


the length of each spline must be adjustable. This
adjustment can be made in many ways. The complete cubic spline used here, has a maximum error
4

i
[rad]
/2
0
/2

Link/joint
i
1
2
3

ai
[m]
0.15
0.6
0.72

i
[rad]
0
/2
0

q(lc )
using the two zone interpolathe resulting d dl
2
c
tion methods from Section 2.3 is shown. Method
1 has a lower peak value of the second derivative
with respect to lc while method 2 gives a continuous second derivative. In Figure 7 the path error is
evaluated for the two different interpolation methods and it is shown that the error is kept inside the
upper bound, 105 meter, along the path in both
cases. Notice that since the interpolated path is
different in the zone the total length of the path is
different in the two cases.

di
[m]
0.475
0
0

Table 1: Denavit Hartenberg parameters for a


three-link robot.
The line is defined by a start and end point, p1
and p2 , while the circle is defined by a start point,
p2 , an intermediate point, p3 , and an end point,
p4 . The points have the following coordinates:

p1 = 1 0.02 0.5

p2 = 0.7 0.2 0.5

(11)
p3 = 0.85 0.35 0.5

p4 = 0.74 0.49 0.5

2.5

1.5

q(lc)

0.5

0.5

1.5

The segments, together with the two different


types of zone paths, can be seen in Figure 4.
The dotted zone path is generated according to
interpolation method 1 and the solid zone path
is generated with method 2. The path is next

0.1

0.2

0.3

lc

0.4

0.5

0.6

0.7

Figure 5: Location of breakpoints for the splines


in joint space for the zone interpolation according
to method 1.

0.48

Conclusions

0.46
0.44

The idea of dividing the trajectory generation problem into two sub-problems, path
planning/generation
and
dynamic
planning/optimization, is presented.
The first
problem is solved and is shown how it is possible
to create a general path using lines and arcs. The
generation of a smooth path in Cartesian space is
discussed and two different approaches to zone
interpolation are presented. An algorithm for
path generation in joint-space is formulated based
upon the idea of representing the joint path with
cubic splines. Finally an example shows how a
Cartesian path can be generated and transformed
into a spline representation in joint-space.

0.42
0.4

0.38
0.36
0.34
0.5
0.4

1
0.95

0.3

0.9
0.85

0.2

0.8
0.75

0.1

0.7
0.65

Figure 4: The line-circle path with the two types


of zone paths.
transformed into cubic spline functions in joint
space (Algorithm 1) using two breakpoints in every spline function [8]. The maximum allowed
deviation error is set to 105 meters. The results
of the transformation can be seen in Figures 5
to 7. In Figure 5 the knots for the splines generated by the algorithm in joint space is shown
when the zone is generated according to interpolation method 1, a similar result but with some
more knots is achieved for method 2. In Figure 6

References
[1] Bobrow, J., Dubowsky, S., and Gibson, J.
(1985). Time-optimal control of robotic manipulators along specified paths. The Interna5

80

x 10

60

0.9
40

0.8
20

0.7
0

0.6
20

0.5
40

0.4
60

0.3
80

0.2
100

0.1
120

0.1

0.2

0.3

lc

0.4

0.5

0.6

0.7

(a) Method 1.

0.1

0.2

0.3

lc

0.4

0.5

0.6

0.7

(a) Zone interpolation method 1.

100
5

x 10

0.9

50

0.8

0.7

0.6

0.5

50

0.4

0.3

100

0.2

150

0.1

0.2

0.3

lc

0.4

0.5

0.6

0.1

0.7

0.1

0.2

0.3

lc

0.4

0.5

0.6

0.7

(b) Method 2.
(b) Zone interpolation method 2.
2

q(lc )
Figure 6: d dl
for the line-circle path using the
2
c
two zone interpolation methods from Section 2.3.

c)
Figure 7: Evaluation of path error, kP(l
P(lc )k, for line-circle path.

tional Journal of Robotics Research, 4(3):3


17.

[6] Luh, J. and Lin, C. (1981). Optimum path


planning for mechanical manipulators. Transactions of the ASME, 102:142150.

[2] Cao, B., Dodds, G., and Irwin, G. (1997).


Constrained time-efficient and smooth cubic spline trajectory generation for industrial
robots. In IEE Proceedings Control Theory
and Applications, volume 144, pages 467
475.

[7] Norrlof, M. (2003). On path planning and


optimization using splines. Technical Report
LiTH-ISY-R-2490, Department of Electrical
Engineering, Linkopings universitet.
[8] Nystrom, M. (2003). Path generation for industrial robots. Masters thesis, Linkoping Institute of Technology (LiTH), Linkoping, Sweden. In Swedish.

[3] Chang, Y.-H., Lee, T.-T., and Liu, C.-H.


(1992). On-line approximate cartesian path
trajectory planning for robotic manipulators.
IEEE Transactions on Systems, Man and Cybernetics, 22(3):542 547.
[4] Chernousko, F. (1994). Optimization in control of robots. International Series of Numerical Mathematics, 115:1928.

[9] Nystrom, M. and Norrlof, M. (2003). Resultat fran simuleringar av splinebaserade


bangenereringsalgoritmer.
Technical Report LiTH-ISY-R-2505, Institutionen for Systemteknik, Linkopings universitet.

[5] de Boor, C. (1978). A Practical Guide to


Splines. Springer-Verlag.

[10] Spong, M. W. and Vidyasagar, M. (1989).


Robot Dynamics and Control. Wiley.
6