This action might not be possible to undo. Are you sure you want to continue?

BooksAudiobooksComicsSheet Music### Categories

### Categories

### Categories

Editors' Picks Books

Hand-picked favorites from

our editors

our editors

Editors' Picks Audiobooks

Hand-picked favorites from

our editors

our editors

Editors' Picks Comics

Hand-picked favorites from

our editors

our editors

Editors' Picks Sheet Music

Hand-picked favorites from

our editors

our editors

Top Books

What's trending, bestsellers,

award-winners & more

award-winners & more

Top Audiobooks

What's trending, bestsellers,

award-winners & more

award-winners & more

Top Comics

What's trending, bestsellers,

award-winners & more

award-winners & more

Top Sheet Music

What's trending, bestsellers,

award-winners & more

award-winners & more

Welcome to Scribd! Start your free trial and access books, documents and more.Find out more

**DOI 10.1007/s10846-012-9683-8
**

A Novel Trajectory Generation Method for Robot Control

KeJun Ning · Tomas Kulvicius ·

Minija Tamosiunaite · Florentin Wörgötter

Received: 10 September 2011 / Accepted: 30 May 2012

© The Author(s) 2012. This article is published with open access at Springerlink.com

Abstract This paper presents a novel trajectory

generator based on Dynamic Movement Prim-

itives (DMP). The key ideas from the original

DMP formalism are extracted, reformulated and

extended from a control theoretical viewpoint.

This method can generate smooth trajectories,

satisfy position- and velocity boundary condi-

tions at start- and endpoint with high precision,

and follow accurately geometrical paths as de-

sired. Paths can be complex and processed as

a whole, and smooth transitions can be gener-

ated automatically. Performance is analyzed for

several cases and a comparison with a spline-

based trajectory generation method is provided.

Results are comparable and, thus, this novel tra-

jectory generating technology appears to be a

viable alternative to the existing solutions not

Parts of this work have been published in preliminary

form at ICRA 2011 [38].

K. Ning (B) · T. Kulvicius ·

M. Tamosiunaite · F. Wörgötter

Bernstein Center for Computational Neuroscience,

Inst. of Physics III, University of Göttingen,

37077 Göttingen, Germany

e-mail: nkj@sjtu.org

K. Ning

Research & Technology, Lenovo,

100085 Beijing, China

only for service robotics but possibly also in

industry.

Keywords Trajectory generation ·

Dynamic trajectory joining · Control theory ·

Machine learning

1 Introduction

Trajectory planning is one of the most fundamen-

tal and important research fields in robotics. For

a robotic manipulator, the trajectory generator is

used to generate a time history of relevant vari-

ables: the desired positions, velocities, and accel-

erations in state space [1], i.e., joint space or task

space (Cartesian space). The resulting trajectory

signals are then sent to the motion control system

(also known as trajectory tracker) at specific time

intervals. The motion control system guarantees

that the robot manipulator executes the planned

trajectory [1].

Generally, the trajectory generation problem

can be divided into two separate sub-problems

[2]. The first one is called “path planning” and

has to design path geometry by providing the se-

quence of points in space needed to execute a task.

The second one is called “trajectory planning and

optimization” and includes designing of the tem-

poral (dynamic) structure of the trajectory based

on optimization criteria. The second aspect covers

J Intell Robot Syst

many different issues and is heavily dependent on

the specific application requirements.

When planning takes place in joint space, we

can specify trajectories for each independent joint.

A common method for joint space trajectory

control uses lower order polynomials to provide

interpolating points at servo rates between user-

specified via-positions [1, 4]. Using one higher

order polynomial to pass through all the via-

points (also known as way-points) is not practical,

because it will result in large oscillations of the

trajectory. Since polynomials of two neighbor-

ing regions can be joined in a continuous way,

we can impose specific boundary conditions (i.e.,

position, and higher derivatives) onto several

lower order polynomials to obtain continuous tra-

jectories. There are some other solutions for pro-

viding smooth transitions between the specified

points in joint space, e.g., [4]. The problem is

that in task space, one only knows the initial and

goal positions of the end-effector, and can not

constrain the intermediate path. Planning in joint

space is popular in point-to-point applications as

it is easy to implement without having to deal with

the kinematics singularity problem [1].

On the other hand, when planning a trajectory

in task space, we can completely specify the de-

sired trajectory of the end-effector. As planning

in task space is easier to comprehend for practical

applications and can be used for completing versa-

tile operations, it is more popular and widely stud-

ied. However, for task space planning, we need

to take care of the kinematic singularity problem

[1]. For most applications, we can describe the

path information by a sequence of via-points in

the task space. A popular approach is to utilize

some simple curves (e.g., lines, arcs or parabolas)

to setup a whole path in task space, depending

on the assigned via-points. The problem is how

to connect separate segments, in order to create a

smooth path. Common solutions are based on the

introduction of zones in which an interpolation

between the two adjacent segments can be per-

formed [2]. Once we get the planned path, trajec-

tory planning and optimization can be executed,

depending on the task-specific requirements and

criterions.

The literature about traditional trajectory plan-

ning and optimization is substantial. Optimization

topics cover energy [29, 30], jerk (the third deriv-

ative of position) [29, 31–33], time [30, 33–36],

etc.; and different optimization techniques are em-

ployed (e.g., [30, 36]) as well. Generally, these ap-

proaches are complex and require physical models

(dynamic parameters, specifications of the actu-

ators, etc) of the studied robotic manipulators.

Some of them also need to provide predefined

path information. Mostly, these research and de-

velopment activities are motivated by the increas-

ing need for improved motion performance for

achieving higher productivity in industry.

In the current paper we will address the prob-

lem of trajectory planning and generation provid-

ing a novel and versatile alternative approach that

combines aspects from control engineering with a

dynamic systems perspective.

In general there are two, often conflicting,

demands on trajectory generation: On the one

hand, trajectories should arrive at specified points

in task space (start- and endpoints as well as

via points) with small error - a demand usually

existing for industrial robots. On the other hand,

trajectories should be smooth, human-like, and

robust against disturbances - a demand found in

humanoid and/or service robotics, e.g., [3]. Two

fundamental methods (and many variations

thereof) exist, which address these demands to

different degrees. In a somewhat simplified view

one can broadly state that Splines (and other

lower order polynomials) are very well suited for

via-point control [1, 4–9], whereas trajectories

generated by a dynamical systems approach

(dynamic motion primitives, DMPs [10–13]) are

smooth and robust against perturbations.

The goal of the current study is to augment

the DMP framework such that it will obtain

some of the advantages of via-point control. This

paper will, thus, in the next Section 1.1 intro-

duce DMPs so that we can discuss their pros and

cons and begin developing our own framework.

In Section 1.2 we will state the purpose of our

investigation. In Sections 2 and 3, we present our

new solution for trajectory generation. Some case

studies are shown, disclosing more details and

implementation issues are provided in Section 4.

Section 5 will then compare our approach to oth-

ers showing that the new trajectory generation

algorithm presented here is a useful alternative to

J Intell Robot Syst

the existing methods. In the Appendix we give a

summary of the required parameters.

1.1 Introduction - DMPs

The DMP algorithm proposed by Schaal and

Ijspeert et al. is “a formulation of movement prim-

itives with autonomous non-linear differential

equations whose time evolution creates smooth

kinematic control policies” [10].

The original DMP algorithm consists of two

sets of differential equations namely a canonical

system τ ˙ x = h(x) and a transformation system

τ ˙ y = g (y, f (x)) [10–13]. The canonical system is

used to represent the phase of the movement

process. The transformation system is a basic

point attractive system utilized to generate the

desired movement.

For the point attractive behavior (reaching

movement), Ijspeert et al. instantiated the trans-

formation system by a second-order dynamics, as

follows [13],

τ ˙ z = α

z

(β

z

(g − y) − z) + f, (1)

τ ˙ y = z, (2)

f (x, v, g) =

N

i=l

i

w

i

x/

N

i=l

i

(3)

where

i

= exp

_

−h

i

(x −c

i

)

2

_

.

And the exponential system described by

τ ˙ x = −α

x

x. (4)

In Eqs. 1–4, α

z

, β

z

, α

x

are time constants, τ

is a temporal scaling factor. y, z and ˙ z can be

interpreted as desired position, velocity and ac-

celeration, g is a given goal state. Centers c

i

and

widths h

i

characterize the Gaussian functions ψ

i

,

w

i

denotes weights, and the other variables are

used as state variables. The phase variable x is a

substitute for time, and v is a phase velocity [13].

The function f , shown in Eq. 3, is a nonlinear

function approximator [14], which can be trained

(by adjusting the weights w

i

) to approximate dis-

crete movements of various shapes. By appropri-

ate parameter settings when the above-mentioned

second-order system is critically damped, x acts

as a “gating term” to ensure that f = 0 at the

end of the movement. If the weights w

i

in Eq. 3

are bounded, the combined system asymptotically

converges to the unique point attractor g. A more

detailed explanation can be found in the literature

[10–13].

In order to avoid discontinuities in acceleration

Eq. 1 can be replaced by

τ ˙ z = α

z

(β

z

(r − y) − z) + f, (5)

where

τ ˙ r = a

g

(g −r). (6)

The original DMP framework can be used to

implement discrete as well as rhythmic control

policies [15], and has exhibited great potential for

learning from demonstration due to its flexibility

and robustness against perturbations. Several ap-

plications using DMPs have been shown in the

field of humanoid robot research. For example,

tennis swings [11], reaching with obstacle avoid-

ance ability [16, 17], constrained reaching [18],

drumming [19], “Ball-in-a-Cup” game [20], hitting

and batting [21], handwriting generation [22], etc.

1.2 Introduction - Goals of This Study

The basic DMP formulation has some limitations

which restrict its usefulness for trajectory genera-

tion applications. For example, limited by its for-

mulation and structure, the original DMP can not

be used to directly incorporate a target velocity

or a via-point (but see [21]). It always asymptot-

ically converges to the final point and the speed

of approaching the target is zero. These aspects

make it not practical to chain several trajectory

segments together, because a robot will have to

“intermittently stop” at all the via-points. By start-

ing the next DMP while the previous one is not

totally finished one can create smooth connections

of the DMPs, but this will reduce control over

the accuracy of the path, and lead to a limited

capability to steer the velocity at the connection

points.

In the current study we will therefore modify

the DMPs framework to incorporate via-point

J Intell Robot Syst

control and to allow for the chaining of DMPs.

This, way we will gain a higher level of accuracy,

but we will also partially loose some of the DMPs’

original properties. Specifically:

(1) The algorithm will be based on an analysis of

the original DMPs from a control theoretical

viewpoint considering several aspects. This

is important because it extends the current

literature on DMPs and allows employing

conventional and well-established methods

for control via second-order systems.

(2) From this, we will design a trajectory gen-

erator by modifying DMPs. The resulting

algorithm is, thus, removed from the original

framework. This is done to target a different

application field, more related to low-level

control under given, rigorous error bounds.

(3) Thus, the here presented method has its own

application field (chained trajectories with

precise boundary conditions and disturbance

robustness). In this field it can compete (or

even excel) in applicability with the original

DMPs as well as with Splines and is therefore

a viable alternative.

(4) The new algorithm does reintroduce strict

time dependency. This is required for the

above mentioned target application fields

where high-accuracy along the trajectory is

needed and obtained by introducing explicit

timing-laws [1].

2 The Trajectory Generator Based on DMP

In this section, we will start with the task descrip-

tion and then present detailed information on our

method.

2.1 Specification Goals for the Trajectory

Generator

Figure 1a shows a schematic plan of an example

task. The robot has to move from point A to

B along the straight line AB, but the initial and

final velocity vectors are not zero. Obviously the

actuators of a robot would have to provide ex-

tremely high and unacceptable torques at the two

ends. Figure 1b shows the solution of a popu-

lar polynomial-based method, which can provide

a smooth and safe trajectory but remains ill-

defined at intermediate positions. Figure 1c shows

a natural and smooth solution: at the two con-

nection points, transitions zones are introduced

to satisfy the specified boundary conditions and

to smoothen the response of the physical sys-

tem. Generally, traditional solutions need to

insert intermediate points and fit the zones by

splines/polynomials [1], or simple curves (e.g.,

for industrial applications, circular arcs are em-

ployed). In this paper, as the case shown in

Fig. 1c, we target to attain smooth transitions

using our newly developed method. In the mid-

dle of the path, this trajectory should match

the desired pathway and velocity profile. In the

two end zones the trajectory has transition seg-

ments. The segments should arrive at the target

point with the assigned velocity vector (orien-

tation and magnitude) as accurately as possible.

Also, the trajectory has to be smooth (i.e., the

velocity change of the whole process must be

continuous). A suitable compensation introduced

during the transition segments will reduce jerk,

leading to smooth movement of a real robotic

manipulator.

X

Y

Z

O

A

B

v

2

v

1

X

Y

Z

O

A

B

v

1

v

2

X

Y

Z

O

A

B

v

1

v

2

B

v

2

(a) (b) (c)

Fig. 1 A schematic plan of a task. a A robot needs to move

from point A to point B, with the assigned velocities v

1

and

v

2

. Obviously, a straight line (dashed) is not practical for a

robot platform. b A smooth trajectory can be implemented

like the solid one, but intermediate positions remain un-

defined. c This track shows a smooth and acceptable solu-

tion, and is everywhere defined

J Intell Robot Syst

In summary, the following requirements are

fundamental for a complete and useful trajectory

generating technology.

(1) Accurate adherence to boundary conditions

in position and velocity of the start and

endpoints.

(2) Global smoothness (e.g., C2: continuity of

the second derivative over the closed in-

terval of the data set) and accuracy of the

trajectory.

(3) Allowing for desired speed profiles and path

constraints.

(4) Definite end-time; an aspect which is impor-

tant for most applications.

From such trajectories, we can build a com-

plicated path by a serial connection of several

sub-trajectories with boundary conditions for the

joining between them. Furthermore, for possi-

ble industrial applications, we also need to in-

corporate the required velocity profile into the

trajectory.

2.2 Architecture of Our Trajectory Generator

Figure 2a shows the architecture of the DMP

based trajectory generator, which consists of four

key modules. The Second-Order System module

provides the trajectory y(t). The outputs from

the Boundary Function Generator r(t), and Mod-

ulation Function f (t), are fed into the Second-

Order System. The Boundary Function Generator

imposes the boundary conditions onto the system.

The Modulation Function consisting of a Gaussian

Kernel Based Approximating Function and a Sup-

pressing Window Function (see Fig. 2b) will affect

the Second-Order System’s response as a forcing

input. The Gaussian Kernel Based Approximat-

ing Function contains a weight vector, and these

weights need to be trained in order to encode the

information brought from the sample trajectory

y

∗

(t), provided by the Sample Trajectory Genera-

tor. After training, the Modulation Function mod-

ule will contain the main information obtained

from y

∗

(t), and the sample trajectory will not be

used anymore.

The architecture shown in Fig. 2 is for one

Degree-of-Freedom(DOF). For an N-DOF appli-

cation, we can employ N copies of this architec-

ture in parallel.

2.3 Second-Order System Module

In the original DMP and the following studies

[10–13, 15–22], parameters α

z

and β

z

shown in

Eqs. 1 and 5 have not been directly related to the

physical meaning of a second-order system. In the

current paper, we adopt a standard formulation

to make the system easier to understand from a

control theory perspective.

Fig. 2 The architecture

of our DMP based

trajectory generator.

a The whole structure.

After training, only the

pink-shaded components

will be used. b The inner

components showing the

Modulation Function

+

+

Second-Order

System

Modulation

Function

Sample

Trajectory

Generator

+

_

y(t), y(t)

Boundary

Function

Generator

Boundary

Conditions

Training

Notice: After training, only these components will be used.

y

0

, y

f

y

*

(t)

e

*

(t)

e

*

(t)

f (t)

f (t)

u(t)

y(t)

r(t)

y

0

, y

f

y

0

, y

f

. .

Modulation Function

Gaussian

Kernels

Suppressing

Window

(a) (b)

. .

J Intell Robot Syst

+

_

2

2

n

n

s +

Y(s) E(s)

1

s

sY(s)

G(s)

+

R(s) U(s)

F(s)

+

Y(s)

1 H(s) =

Fig. 3 Block diagrams of the employed Second-Order Sys-

tem in Laplace space. We can get position and velocity

outputs directly

Figure 3 shows the block diagram of the

Second-Order System module employed in this

paper, expressed in Laplace space. Its forward

channel is G(s) =

ω

2

n

s(s+2ζ ω

n

)

, and its feedback chan-

nel is H(s) = 1. It is a type-1 system. Let U (s) =

R(s) + F (s) and Y(s) denote the input and output

respectively, then the transfer function is as

follows,

Y (s)

U (s)

=

G(s)

1 + G(s) H(s)

=

ω

2

n

s

2

+2ζ ω

n

s +ω

2

n

. (7)

This is a standard second-order system, where

the constants ζ and ω

n

are the damping coefficient

and the natural undamped frequency of the sys-

tem, respectively. As we know, when ζ = 1, the

system has a double pole at −ω

n

, and this results

in a critically damped response [23].

Let us define y

2

(t) = ˙ y

1

(t) = ˙ y (t), then in state

space the Second-Order System is described as,

˙

Y = AY+Bu, (8)

where, Y =

_

y

1

(t)

y

2

(t)

_

, A =

_

0 1

−ω

2

n

−2ζ ω

n

_

, B =

_

0

ω

2

n

_

, u = u(t) = r (t) + f (t) .

The model shown in Eq. 7 is well-studied in

control theory. It is well known that its steady-

state error can be calculated by the final-value

theorem [23], as follows,

e

ss

= lim

t→∞

e (t) = lim

s→0

sU (s)

1 + G(s)

(9)

Furthermore, the error’s change rate can be

expressed as

˙ e

ss

= lim

t→∞

˙ e (t) = lim

s→0

s

2

U (s)

1 + G(s)

(10)

Spreading Eq. 8 we can get the relation equa-

tions relating ζ and ω

n

to the parameters α

z

and

β

z

, shown in Eqs. 1, 5 as follows,

ω

n

=

√

α

z

β

z

τ

, (11)

and,

ζ =

1

2

_

α

z

βz

. (12)

Schaal et al. [10] only provided β

z

= α

z

/4 to

get critical damping and had not been concerned

with other possible frequency characteristics and

responses of their DMPs. Entering this equation

into Eq. 12 we can get ζ = 1 (criterion for critical

damping). Please note, linear and nonlinear sub-

systems are interconnected in the DMP method

proposed. The Second-Order System shown as

Eq. 7 is positive real and passive. An intercon-

nection containing a passive subsystem (linear or

not) with a strictly proper, strictly positive real

one, is always closed-loop stable [39–42]. Fur-

thermore, based on Eqs. 9 and 10 and the time-

domain response of such a system [23], we can

explain why the original DMPs always asymptoti-

cally converge to the final point and the speed of

approaching the target is zero. Equations 9 and

10 also provide the foundation for including the

boundary conditions in the architecture shown in

Fig. 2. We will discuss this issue in the following

sections.

2.4 Boundary Function Generator

For a trajectory generator, we have to take into

account the boundary conditions (i.e., position,

velocity). As mentioned above, polynomials are

normally employed to remove discontinuities in

velocity and acceleration between adjacent path

segments. In order to allow imposing continuity

of velocities at the junction points, the lowest or-

der for an interpolating polynomial is three (also

known as cubic polynomial, in Eq. 13, N

P

= 3) [1].

For an application with acceleration constraints,

fifth-order polynomials can be employed.

x (t) =

N

p

j=0

a

j

t

j

(13)

J Intell Robot Syst

We use a third-order polynomial and determine

the coefficients given by y

0

, y

f

and ˙ y

0

, ˙ y

f

as the

positions and velocities at the start- and endpoints

respectively.

However, we cannot employ the third-order

polynomial alone to construct the Boundary Func-

tion Generator shown in Fig. 2. As we know,

a type-1 system cannot follow a parabolic or a

higher order function, because the steady-state er-

ror is infinite [23]. This conclusion can be derived

from Eq. 9. Next we will show how we can fix this

problem. If u(t) is a ramp function, from Eqs. 9

and 10 we obtain

e

ss

= V/K

v

, (14)

and

˙ e

ss

= 0, (15)

where V is the slope coefficient of u(t), and

K

v

= ω

n

/2ζ . Equation 15 shows that the slope

coefficient of the Second-Order System’s re-

sponse will approach that of the input ramp func-

tion in the end. Even though Eqs. 14 and 15 hold

only for the steady-state, we can design our system

based on this principle with controllable precision.

In fact, Eq. 15 is the proof for approaching the

assigned velocity and Eq. 14 presents the offset

we can use to reduce the position error. Thus, we

can utilize a third-order polynomial extended by a

line segment to construct the reference signal r(t).

Figure 4 shows such a case.

Let us denote t

m

as the junction moment (the

time point where the polynomial segment and the

t

0

= 0 t

f

= T t

m

r

t

δ

e

.

( )

t

f

, y

e

( )

t

f

, y

f

Polynomial Segment

Line Segment

Fig. 4 A solution for building the Boundary Function

Generator. A third-order polynomial extended by a line

segment can be employed here to construct the reference

signal r(t) for the DMP based trajectory generator

line segment are joined), then the reference signal

is defined as follows:

r (t) =

_

a

0

+a

1

t +a

2

t

2

+a

3

t

3

0 ≤ t ≤ t

m

y

e

−

_

t

f

−t

_

˙ y

f

t

m

< t ≤ t

f

(16)

where,

y

e

= y

f

+δ

e

(17)

and δ

e

= (2ζ/ω

n

) ˙ y

f

.

In Eq. 16, the polynomial segment [0, t

m

] is

employed to connect the boundary conditions im-

posed on the start point, and the linear segment

(t

m

, t

f

] works as a ramp input which provides a

convergence reference for the Second-Order Sys-

tem, with both, position and velocity, constraints.

The coefficients of the polynomial segment are

determined as follows,

⎧

⎪

⎪

⎪

⎪

⎪

⎪

⎪

⎪

⎪

⎨

⎪

⎪

⎪

⎪

⎪

⎪

⎪

⎪

⎪

⎩

a

0

= y

0

a

1

= ˙ y

0

a

2

=

3 (y

m

− y

0

) −t

m

_

2 ˙ y

f

− ˙ y

0

_

t

2

m

a

3

=

2 (y

0

− y

m

) +t

m

_

˙ y

0

+ ˙ y

f

_

t

3

m

(18)

where, y

m

= y

e

−(t

f

−t

m

) ˙ y

f

= y

f

+[(2ζ/ω

n

) −

(t

f

−t

m

)] ˙ y

f

. The calculation method for the

coefficients of the third-order polynomial segment

can be found in the literature [1]. The value t

m

de-

pends on the temporal properties of the Second-

Order System module (i.e., ω

n

and ζ ), see later.

The Boundary Function Generator will guaran-

tee the required system’s performance at start and

end regions.

2.5 Modulation Function

For most application tasks, we need to control a

robot to move along an assigned path, e.g., the

case shown in Fig. 1. The Modulation Function

f (t) shown in Fig. 2 is used to “force” the gen-

erated response to follow the assigned trajectory

(i.e., the sample trajectory, see later) during the

middle of the processing.

As shown in Fig. 2, the input to the Second-

Order System is

u(t) = r (t) + f (t) . (19)

J Intell Robot Syst

The variable f (t) works as the forcing input to

this system and is used to steer the final result.

Please note, reference signal r(t) defined as Eq. 16

provides mathematical derivability (at the junc-

tion points), in the middle section, however, it is

unconstrained. By introducing a suitable f (t), we

can totally counteract unwanted effects brought

by r(t) and to reshape the system’s output in order

to force it to followthe desired path. The Gaussian

Kernels Based Approximating Function, as de-

scribed below, is a solution for getting such a

suitable f (t).

2.5.1 Gaussian Kernels Based Approximating

Function

The original DMP introduces a nonlinear con-

trol based on learned feed-forward controllers

[10–13]. A nonlinear function based on a group

of Gaussian kernels can be trained to smoothly

approximate a given sample curve. We utilize this

idea to build the Modulation Function for our

system. Let us define the Modulation Function

with M kernels,

f (t) =

T

W

M

i=1

ψ

i

v (t) , (20)

where W= [w

1

, w

2

, · · ·, w

i

, · · ·, w

M

]

T

, w

i

is the

weight of the Gaussian kernel i and = [ψ

1

,

ψ

2

, · · ·, ψ

i

, · · ·, ψ

M

]

T

, with

ψ

i

= exp

_

−h

i

_

t

T

−c

i

_

2

_

, (21)

where T = t

f

−t

0

is the time length of the whole

process, t is the time, and v(t) is a suppress-

ing window function (see later). Constants c

i

and h

i

are centers and widths of the Gaussian

kernels i, evenly distributed within the interval

[0,1]. To simplify the treatment, we let h

i

= h,

i = 1, 2, . . ., M.

2.5.2 Weight Learning

In this paper, the weight vector W will be trained

to match the sample trajectory y

∗

(t) generated by

the Sample Trajectory Generator shown in Fig. 2.

Several different methods exist for weight

adaptation like locally weighted regression meth-

ods [11, 24] or global regression methods [25].

Here we propose a simple and practical learning

rule to train the weight vector W. This procedure

is similar to back-propagation learning used in

artificial neural networks [26], where the error be-

tween target signal and system’s output is used to

change weights. In our case this can be formalized

by the following equation:

w

i

= γ

_

y

∗

(k) − y (k)

_

v (k) , (22)

where, γ is the learning rate, k = c

i

T defines

the center of the i-th Gaussian kernel within the

time period [0, T]. Here, k serves to anchor the

Gaussian kernels to the time period T. By k =

c

i

T, we project M Gaussian kernels from the

range [0,1] to [0, T], and therefore only need to it-

erate Eq. 22 at time moments c

i

T, i = 1, 2, . . ., M.

The present “simple” solution will be robust to

approximate the sample trajectory and the final

accuracy (in the middle section of the path) is

depending on the learning rate (see Eq. 22).

Note, this simple approach might not be op-

timal for a single training trajectory. It is more

suitable for cases where many different (but simi-

lar) training trajectories are used and this method

should lead to an average trajectory. In general

any other more sophisticated method (e.g., LWPR

[10, 11, 24]) can be used to learn weights of the

kernels.

2.5.3 Suppressing Window Function

The Suppressing Window Function v(t) in Eq. 20

serves as an “Enable” term inside the Modula-

tion Function shown in Fig. 2b. It controls kernel

influence by suppressing their action near start-

and endpoints thereby assuring accuracy of the

process. When the system is in those regions,

we should let the Boundary Function Genera-

tor’s output r(t) drive the Second-Order System

and Eqs. 14–16 will guarantee that the assigned

boundary conditions will be successfully reached.

Figure 5 shows a solution for a suitable Suppress-

ing Window Function. The double-sigmoid func-

tion is continuous and differentiable and it has

J Intell Robot Syst

t

0

t

f

C

1

C

2

v

1

0

t

0.5

Fig. 5 Smooth suppressing window function given by the

product of two sigmoids

a pair of horizontal asymptotes as t →±∞. We

define it by,

v (t) = s

1

(t) ×s

2

(t) , (23)

with,

s

1

(t) =

1

1 +e

−l

1

(t−C

l

)

, and s

2

(t) =

1

1 +e

−l

2

(t−C

2

)

,

(24)

where, l

1

, l

2

are used to set the slopes, and C

1

,

C

2

to set the inflection points (see Fig. 5). With

these parameters, we need to ensure that v(t) ap-

proaches zero at the start- and end-time as close as

possible in order to obtain f (t) = 0. This way, r(t)

totally governs the Second-Order System at the

start- and endpoints and a more precise result is

achieved. This kind of transition region is similar

to the popular “zone solution” [1, 2], but implic-

itly described by the parameters of the sigmoids.

Figure 1c shows the two regions at the ends of

the trajectory. In the following applications cases,

this aspect is analyzed in more detail. We define

l

1

= l

2

= 20, C

1

= 0.3, and C

2

= t

f

−0.38 for all

following examples. For the policy on how to

choose these parameters see below.

2.6 Sample Trajectory Generator

Planning a trajectory by this method is done in

two steps. In the first step the sample trajectory

provides geometric path constraints and the speed

profile information along the trajectory. In the

second step the boundary conditions are imposed

and the final smooth result is obtained through the

interaction of f (t) and r(t). Note, when designing

the sample trajectory sequence, we do not need to

care about the possible initial and final velocities

imposed by the boundary conditions (see the sig-

nal flow shown in Fig. 2), which simplifies this step

substantially. Also, the sample y

∗

is only used dur-

ing the training process (training the weight vector

Wof the Gaussian Kernel Based Approximating

Function, see Eqs. 20 and 22). After training, f (t)

will contain all information and y

∗

will not be used

anymore.

Now we describe how to define the Sample

Trajectory Generator required for the step 1. It

provides a sample trajectory sequence y

∗

(t):

y

∗

(t)=

_

y

∗

(0), y

∗

(τ), · · ·, y

∗

(kτ), · · ·, y

∗

(Lτ)

_

T

,

(25)

where, τ is the sampling interval, L is the whole

step number, and then Lτ = T is the total desired

time to complete the path. We can acquire it by

imitation (teaching and recording), or generate it

by a simple path planner routine. Without loss of

generality, we focus on the latter in this paper.

To generate a velocity profile for a sample tra-

jectory, a simple trapezoidal timing law [1] can be

employed, which is also known as LSPB (Linear

Segments with Parabolic Blends) [27]. In fact, this

method is more popular for planning and con-

trol in joint space. It has a “speedup - uniform

motion - slowdown” speed profile. It represents

a time optimal solution for actuators and is easy

to implement. Here we need to take the maximal

acceleration that the actuator can provide into

account.

Obviously, LSPB leads to a discontinuous vari-

ation in the acceleration profile resulting in large

jerk. Our system filters this effect out (see later)

and, as a consequence, we can use LSPB to im-

plement the Sample Trajectory Generator. For

applications with many via-points, the easiest so-

lution is to set up independent LSPB trajectories

between adjacent via points and then to connect

them one by one to form the whole sample trajec-

tory sequence as shown in Eq. 25. In Section 4, we

will give examples for this, as well as demonstrate

the “filter” effect generated by the trained Mod-

ulation Function together with the Second-Order

System.

J Intell Robot Syst

3 The Whole Calculation Procedure

In the above sub-sections, we have disclosed all

the key components of this method. Following

Fig. 2, here we disclose the whole calculation pro-

cedure step by step, as follows.

(1) Use the LSPB method to generate the sam-

ple trajectory sequence y

∗

(t). Only positional

boundary conditions, (y

0

, y

f

) and possible

via-points are used here, with the duration

time T.

(2) Use the complete boundary conditions (y

0

,

y

f

and ˙ y

0

, ˙ y

f

), and the duration time T to

calculate the reference signal r(t), as shown

in Eqs. 16–18.

(3) Determine the parameters ω

n

, C

1

, C

2

, l

1

, l

2

,

t

m

and finish the configuration of the Sup-

pressing Window Function v(t), and initialize

the Gaussian Kernels Based Approximating

Function f (t) by all-zero weight vector W

(see Eqs. 20 and 21). How to choose these

parameters will be summarized later.

(4) Set a learning rate γ and start the iteration

to adjust the weight vector W, as shown in

Eq. 22. For an accuracy-requiring applica-

tion, we can choose smaller γ , and longer

iteration times, and employ bigger M and

bigger h. The influence of these parameters

will be discussed in the Appendix.

(5) Perform the training iterations, where in

every iteration, the output of the Second-

Order System (see Fig. 2) will approach the

sample trajectory y

∗

(t) more closely.

After this training procedure, the weight vector

W contains the information from the sample tra-

jectory sequence y

∗

(t). The whole architecture sat-

isfies the given boundary conditions by itself and

by now we have received the generated trajectory.

Please note, this method is a one-shot solution.

It means that if we change any of boundary con-

ditions (y

0

, y

f

and ˙ y

0

, ˙ y

f

), the position of the via-

points, or the duration time T, we need to repeat

the steps 4 and 5.

It seems that this method has many parameters

and that it is quite complex. However, little tuning

is required and once set up, we can use the pa-

rameters to deal with different and wide-ranging

applications on a physical platform easily. Fur-

thermore, we also can use this framework to gen-

erate different characteristic results for different

application scenarios, just by adjusting some para-

meters. In the following Section, we will explain

this by several cases.

4 Case Study: Application on Manipulators

Before discussing a robot application simulation,

we present a simple 1-DOF case with detailed

plots to show how our method works.

4.1 1-DOF Case

Figure 6 shows results from the 1-DOF case. This

corresponds to a single coordinate in task space

from a multi-DOF manipulator simulation study.

In this case we used, ω

n

= 50, ζ = 1, τ = 0.01 s,

γ = 1, and iteration time is 20. The kernel num-

bers are M = 8, and h = 50. Boundary conditions

are y(t

0

) = 0.08 m, y(t

f

) = 0.26 m, ˙ y (t

0

) = 0 m/s,

˙ y

_

t

f

_

= 0.05 m/s, t

0

= 0 s and t

f

= T = 2 s.

According to the assigned boundary conditions,

the reference signal r(t) is plotted in Fig. 6a. The

trained Gaussian kernels and the final modulation

signal f (t) are shown in Fig. 6b. The generated

trajectories (red curves) are shown in Fig. 6c–f

together with the sample trajectory (black curve).

Please note here that the sample trajectory has

velocity boundary conditions that equal zero, so

that it is very easy to implement. The assigned

boundary conditions are guaranteed by the archi-

tecture presented in this paper. From Fig. 6c–d

we observe that the boundary conditions and the

trajectories in the middle of the path match well

to our inputs.

For comparison, in Fig. 7 we show a pair of re-

sults with identical parameters except final bound-

ary velocity. All other parameters are as in Fig. 6.

The final accuracy of these examples is listed in

Table 1. Where, we define,

err

P

=

¸

¸

_

y

target

− y

real

_

/y

target

¸

¸

. (26)

and

err

V

=

¸

¸

_

˙ y

target

− ˙ y

real

_

/ ˙ y

target

¸

¸

. (27)

We can see that the final accuracy is quite high.

J Intell Robot Syst

0 0.5 1 1.5 2

0.05

0.1

0.15

0.2

0.25

0.3

Time (s)

P

o

s

i

t

i

o

n

(

m

)

The Reference Signal r(t)

0 0.5 1 1.5 2

-0.01

-0.005

0

0.005

0.01

0.015

Time (s)

P

o

s

i

t

i

o

n

(

m

)

The Modulation Input f(t)

0 0.5 1 1.5 2

0.05

0.1

0.15

0.2

0.25

0.3

Time (s)

P

o

s

i

t

i

o

n

(

m

)

Pos: Sample

Pos: DMP

(a) (b) (c)

0 0.5 1 1.5 2

0

0.02

0.04

0.06

0.08

0.1

0.12

Time (s)

V

e

l

o

c

i

t

y

(

m

/

s

)

Vel: Sample

Vel: DMP

0 0.5 1 1.5 2

-0.4

-0.2

0

0.2

0.4

0.6

Time (s)

A

c

c

e

l

e

r

a

t

i

o

n

(

m

/

s

2

)

Acc: Sample

Acc: DMP

0

0.1

0.2

0

0.1

0.2

-0.5

0

0.5

1

Pos (m)

Vel (m/s)

A

c

c

(

m

/

s

2

)

(d) (e) (f)

Fig. 6 1-DOF case. a Reference signal r(t). b Gaussian

Kernels and the final modulation signal f (t). c–e Gener-

ated trajectory result and the provided sample trajectory

information over time. f 3D phase track, “acceleration -

velocity - position”, of the generated trajectory

Analyzing the case shown in Fig. 7a and b,

we can find an interesting phenomenon. Around

1.5 s to 2 s, the resulting trajectory deviates from

the sample trajectory: it slows down and then

approaches the assigned boundary condition. In

fact, this phenomenon exhibits the autonomous

Fig. 7 Comparisons

between two different

final speed boundary

conditions. a, b End

speed is 0.1 m/s. c, d End

speed is −0.05 m/s.

The method shows a

powerful autonomous

capability to satisfy

boundary conditions

0 0.5 1 1.5 2

0.05

0.1

0.15

0.2

0.25

0.3

Time (s)

P

o

s

i

t

i

o

n

(

m

)

Pos: Sample

Pos: DMP

0 0.5 1 1.5 2

0

0.05

0.1

0.15

0.2

Time (s)

V

e

l

o

c

i

t

y

(

m

/

s

)

Vel: Sample

Vel: DMP

(a) (b)

0 0.5 1 1.5 2

0.05

0.1

0.15

0.2

0.25

0.3

Time (s)

P

o

s

i

t

i

o

n

(

m

)

Pos: Sample

Pos: DMP

0 0.5 1 1.5 2

-0.1

0

0.1

0.2

0.3

Time (s)

V

e

l

o

c

i

t

y

(

m

/

s

)

Vel: Sample

Vel: DMP

(c) (d)

J Intell Robot Syst

Table 1 Accuracy of the resulting end-point

y

f

(m), ˙ y

f

(m/s) err

P

err

V

0.26, 0.05 1.09× 10

−5

1.3× 10

−3

0.26, 0.1 7.37× 10

−5

4.9× 10

−3

0.26, -0.05 1.15× 10

−4

1.6× 10

−2

ability to adapt to the final boundary conditions,

which is a property of our method. From a physics

viewpoint, the two curves shown in Fig. 7b and

their integral areas along the time axis must be

equal to each other in order to achieve the same

final position. As the assigned final speed ˙ y

_

t

f

_

is not zero, the near-to-the-end transition adjusts

itself automatically to obey to this law. As during

this period, f (t) will be suppressed by v(t) (see

Eq. 20), r(t) will govern the final result. In fact,

when approaching an arbitrary assigned boundary

condition, the “slowing down” and “reorienting”

shown as Fig. 7a and b, lets the physical manip-

ulator smoothly adapt to the required boundary

conditions. The other two cases shown in Figs. 6

and 7 share the same principle. At this point,

our method presents a “position and velocity”

attractor, quite different from the original DMP

framework presented in the literature [10–13].

Comparing the accelerations shown in Fig. 6e,

we can find that the trained Modulation Function

and the Second-Order System “filter out” the

discontinuous variation brought from the LSPB

based sample trajectory. As the acceleration starts

from and ends at zero, the peak-to-peak value is

bigger than the one from the given sample. This is

also reasonable from a physical viewpoint but for

real applications, peaks should be smaller than the

limitations of the employed mechanical platform.

If the peaks are too high to accept, we can reduce

the sample acceleration at the start and end of the

LSPB based sample trajectory.

A 3D “acceleration - velocity - position” phase

track is shown in Fig. 6f. As mentioned before, the

generated trajectory is very smooth, with low jerk.

In Table 2, we show the accuracy comparison

between the parameters C

2

and t

m

, for the cases

in Figs. 6 and 7. If l

2

is bigger than t

f

−C

2

this

will yield better precision. The parameters affect

the final accuracy. We give a summary in the

Appendix.

Table 2 Accuracy comparison between C

2

and t

m

t

m

= t

f

− 0.3, (ω

n

= 50)

C

2

= t

f

− 0.28 C

2

= t

f

− 0.48

err

P

3.10 ×10

−4

4.04 ×10

−7

err

V

3.5 ×10

−2

7.44 ×10

−5

C

2

= t

f

−0.38, (ω

n

= 50)

t

m

= t

f

− 0.2 t

m

= t

f

−0.4

err

P

1.45 ×10

−5

8.65 ×10

−6

err

V

1.7 ×10

−3

9.12 ×10

−4

From the cases above, we can see that our

method shows a powerful autonomous capability

to satisfy boundary conditions with high precision.

In the following multi-DOF case, this aspect will

be more obviously demonstrated.

4.2 A Simple Case for a Multi-DOF

Manipulator

So far our DMP based trajectory generator con-

trols one DOF. For the N-DOF case, we can

use N independent such trajectory generators in

parallel, just sharing the same time base in or-

der to synchronize their activities and to achieve

coordinated motion. For instance, for a 6-DOF

robot, we can employ six trajectory generators

to represent all components (three for position

and three for orientation) in Cartesian space. In

order to control the manipulator, it is inescapable

to transform the Cartesian trajectory into a joint

space representation. This transformation is done

by standard inverse kinematics, which we will

not describe. For the following cases, the Robot-

ics Toolbox V7.1 [28] was employed to aid our

analysis.

Figure 8 shows the case of a 3-DOF manipu-

lator, where the trajectory is generated in task

space. The boundary conditions are: X(t

0

)=

[0.29, 0.08, −0.125]

T

, X(t

f

)=[0.24, 0.26, −0.125]

T

,

˙

X(t

0

) = [0.02, −0.04, 0.08]

T

, and

˙

X(t

f

) = [−0.05,

0.1, −0.1]

T

.

The resulting trajectory, shown in Fig. 8a and b,

matches to the target scenario described in

Section 2.1. Figure 8c shows the velocity com-

ponents. We can see that at the final end, the

obtained velocities match to the assigned values.

At the start, small jumps exist. This is due to the

J Intell Robot Syst

Fig. 8 Study of a 3-DOF

manipulator. a The LSPB

based sample and

resulting trajectories in

Cartesian space.

b Plot of the robot model.

c Velocity components.

d Deviation between the

sample and resulting

trajectories

0.2

0.25

0.3

0.35

0.1

0.2

-0.2

-0.15

-0.1

-0.05

X (m)

Y (m)

Z

(

m

)

Sample

DMP

X

Y

Z

(a) (b)

0 0.5 1 1.5 2

-0.1

0

0.1

0.2

0.3

Time (s)

V

e

l

o

c

i

t

y

(

m

/

s

)

X Vel

Y Vel

Z Vel

0 0.5 1 1.5 2

0

0.005

0.01

0.015

0.02

0.025

Time (s)

D

e

v

i

a

t

i

o

n

(

m

)

(c) (d)

fact that, for the Second-order system shown in

Fig. 3, it’s zero initial conditions response follows:

˙ y(t) = ω

2

n

te

−ω

n

t

. (28)

Furthermore, we use a third-order polynomial to

construct the Reference signal r(t), and we cannot

impose an initial acceleration on the conjoining

(start) point.

However, non-zero start velocities would only

be used for DMP joining and in this case the tran-

sition will be smooth due to matching the bound-

ary conditions (end point to next start point)

of two subsequent DMPs. Also, very short tran-

sients will always be smoothed by the real plat-

form due to its intrinsic mechanical low-pass filter

characteristics.

Note, the “deviation” plot shown in Fig. 8d

does not mean “positional error”. In this paper,

we define “deviation” as

¸

¸

y

∗

(t) −y (t)

¸

¸

, to describe

the distance between the corresponding track

points (on the Sample trajectory and the result-

ing trajectory respectively, sharing the same time

index). In the middle segment, the trajectory is

close to the Sample. At the two ends, deviations

are almost zero, which means that the boundary

conditions are satisfied very well. The two peaks

near the two ends describe the automatically

generated transition zones (see Fig. 8a). Up to

now, this simulation fulfills our target described in

Section 2.1.

4.3 A Complicated Case for a Multi-DOF

Manipulator

Our DMP based trajectory generator has the po-

tential to deal with very complicated application

cases. Here we show such a case and more charac-

teristics of the method will be disclosed.

As shown in Fig. 9a, the manipulator needs to

move along a 3D multi-segment path. Velocity

vectors are assigned to start- and endpoints. The

difference between cases shown in Fig. 9b, d, f

and c, e, g is that they own different Gaussian

kernel parameters. For the former one, M = 4,

and h = 10; for the latter M = 40 and h = 400.

The results show that with the increasing number

of kernels the accuracy for both, position and

velocity, increases.

J Intell Robot Syst

Fig. 9 A multi-segment

trajectory generating and

comparison case. Here,

the robot needs to go

along the straight lines

defined by the multiple

via-points one by one,

with two-end none-zero

velocity constraints.

b, d, f Case uses fewer and

wider Gaussian kernels:

M= 4, and h = 10;

c, e, g Case uses more and

narrower Gaussian

kernels: M= 40 and

h = 400

(a)

0.2

0.3

0.4

0.15

0.2

0.25

0.3

0.05

0.1

0.15

0.2

0.25

X (m)

Y (m)

Z

(

m

)

Sample

DMP

0.15

0.2

0.25

0.3

0.35

0.15

0.2

0.25

0.3

0.05

0.1

0.15

0.2

0.25

X (m)

Y (m)

Z

(

m

)

Sample

DMP

(b) (c)

0 1 2 3

0

0.01

0.02

0.03

0.04

0.05

Time (s)

D

e

v

i

a

t

i

o

n

(

m

)

0 1 2 3

0

0.005

0.01

0.015

0.02

0.025

0.03

Time (s)

D

e

v

i

a

t

i

o

n

(

m

)

(d) (e)

0 0.5 1 1.5 2 2.5 3

0

0.2

0.4

0.6

0.8

1

Time (s)

V

e

l

o

c

i

t

y

(

m

/

s

)

Vel: Sample

Vel: DMP

0 0.5 1 1.5 2 2.5 3

0

0.2

0.4

0.6

0.8

Time (s)

V

e

l

o

c

i

t

y

(

m

/

s

)

Vel: Sample

Vel: DMP

(f) (g)

X

Y

Z

In general, it is not feasible to let a robot track

a sharp corner very fast. The widely employed

traditional method is to set some transition zones

to disconnect the connected lines and use arcs

or higher order functions to smoothly connect

them. The smallest curvature of the transition

function will be dependent on the real platform’s

specification. Different from this, our solution

deals with this problem more easily and natu-

rally. As shown in Fig. 9g, the generated result

J Intell Robot Syst

“slows down” and closely passes these sharp cor-

ners (via-points) autonomously. This method can

learn well the information contained in the sample

trajectory. This is a quite interesting advantage of

this method.

Without loss of generality, in the cases shown

in Fig. 9, the path segments are straight lines. We

could in the same way also implement a different

curve using another trajectory y

∗

.

This case also shows another attractive poten-

tial of our method: we can use it to produce a

complicated trajectory all in one time. In fact,

this characteristic is totally different from all tra-

ditional solutions and quite attractive for compli-

cated applications. For the case shown in Fig. 9,

we don’t need to produce five straight lines and

six transitional curves (polynomials or arcs) sepa-

rately and then connect them one by one, as the

traditional approaches do.

It is also possible to employ some other

optimized solutions to implement the Sample

Trajectory Generator, because the following

training course does not rely on any specific

implementation.

Furthermore, as boundary conditions can be

imposed on our trajectory generator we can pro-

duce several bigger sub-trajectories independently

and connect them one by one to complete an even

more complicated trajectory.

4.4 A Comparison Case – Spline-Base

Trajectory Generation

In Fig. 10, two Spline-based trajectories are

shown, using the same scenario as in Fig. 9.

Different numbers of intermediate points are

equally distributed between the via-points (cor-

ners). Position accuracy is – as expected – higher

than for our method, but velocity in Cartesian

space is heavily depending on the position inter-

polations and the corresponding time indexes of

the intermediate points (note, we did not apply

any optimizing technologies here). As disclosed

here, in order to achieve a complex trajectory

with an assigned speed profile, many intermediate

points have to be defined [1] and the construction

of the trajectory will become increasingly difficult.

Fig. 10 Spline-based

solution comparison

cases, sharing the same

scenario with the case

shown in Fig. 9.

a, c 4 intermediate points

are equally distributed

between two neighboring

via points. b, d 18

intermediate points are

equally distributed

between two neighboring

via-points. Please note, at

the two ends, velocity

conditions are

˙

X(t

0

) =

[0.02, −0.1, −0.05]

T

and

˙

X

_

t

f

_

= [0.1, 0, 0]

T

, and

zero speed are assigned at

the remaining corner

points

0.15

0.2

0.25

0.3

0.35

0.15

0.2

0.25

0.3

0.05

0.1

0.15

0.2

0.25

X (m)

Y (m)

Z

(

m

)

Sample

Spline

Via-Point

Intermediate Point

0.15

0.2

0.25

0.3

0.35

0.15

0.2

0.25

0.3

0.05

0.1

0.15

0.2

0.25

X (m)

Y (m)

Z

(

m

)

Sample

Spline

Via-Point

Intermediate Point

(a) (b)

0 0.5 1 1.5 2 2.5 3

0

0.1

0.2

0.3

0.4

0.5

Time (s)

V

e

l

o

c

i

t

y

(

m

/

s

)

Velocity in Cartesian Space

0 0.5 1 1.5 2 2.5 3

0

0.1

0.2

0.3

0.4

0.5

Time (s)

V

e

l

o

c

i

t

y

(

m

/

s

)

Velocity in Cartesian Space

(c) (d)

J Intell Robot Syst

In the examples shown here the velocity profile

is not really acceptable, especially case Fig. 10d.

While this can be mended by using different

support points for the spline, it is evident that this

requires explicit considerations. Thus, there is a

certain trade-off between position- and velocity-

accuracy that needs to be explicitly dealt with

when using splines. Different from that, our

method automatically arrives at a very good com-

promise for position as well as velocity accu-

racy with only a moderate number of kernels

(see. Fig. 9, right). Thus, without much effort our

framework leds to quite flexible results and recal-

culation of a trajectory is easy once the method

has been set up.

5 Conclusions and Application Potential

In this paper we presented a novel trajectory

generator based on DMPs. For this, the original

DMPs had been reformulated from a control the-

oretical viewpoint.

In the following we would like to compare

our solution with other methods for trajectory

generation. Most similarly there are Spline-based

solutions [1, 4–9], against which our methods must

“compete”. The original DMP framework, on the

other hand, contains several aspects which are

different from our new approach (despite the

fact that our approach was partly derived from

DMPs). In Table 3, we give a summary compar-

ison on the properties of these solutions some of

which will be discussed in more detail next.

(1) Similar to splines but different from DMPs,

we can define spatial and velocity constraints

of the two ends of the trajectory support. The

generated trajectory matches the assigned

boundary conditions with high precision,

with a definite temporal endpoint. As this

design introduces the boundary conditions in

an independent way, the path planning stage

of a practical task can be simplified greatly.

(2) The generated trajectories are smooth: posi-

tion and velocity profiles are continuous and

differentiable, acceleration is continuous,

and jerk is small.

(3) In our approach the generated trajectory se-

quence is passed through a built-in second-

order system. As normally ω

n

is low this

acts as a low pass filter. Thus, the trajectory

output will be easier to followby motion con-

trol system [23], as long as the bandwidth of

motion control system is higher than the one

of our system. This is different from cubic or

Table 3 Property comparison between three kinds of trajectory generation technologies

Property Splines DMPs Our Approach Comment

Endpoint / end-velocity control +/+ +/− +/+

Velocity / acceleration profile +/+ +/− +/− Splines need 5th order to control

control acceleration, too.

Chaining of primitives + − +

Via point control + (direct) + (indirect) + (direct) Direct: by applying chaining.

+ (indirect) + (indirect) Indirect: by using kernel weights.

Built-in filter − + +

Time dependence direct indirect direct

Disturbance compensation − + +

Interpretability of coefficients − + + Interpretable means values have a

human-understandable meaning.

Number of kernels/knots 4*N (3rd order) N N+4

Number of free parameters n.a. 2 6

Phase stopping − + −

Generalization to different start − + −

and endpoints

Bandwidth and error control − + + Splines: Pure mathematical fitting.

against 2nd order system Behavior depends on motion servo.

J Intell Robot Syst

higher order Spline-based trajectories, which

do not match to the control system, even

though they might have perfect mathemati-

cal fitting capabilities.

(4) Our method combines the sample trajectory

y

∗

and boundary conditions, given indepen-

dently, in a natural way. At the two ends a

manipulator behaves in a very smooth way

(see the ends of the paths shown in Figs. 7

and 9).

(5) Any reasonable required speed profile can

be imposed on the generated trajectory.

(6) For multiple via-point applications we do not

need to manually introduce (the tradition-

ally used) zones for interpolating and con-

necting two adjacent segments. The method

presented in this paper will generate smooth

transition on its own, and the transition of

the adjacent segments is also adjustable (see

Section 2.5.3).

(7) Our approach presents a uniform framework

to deal with simple as well as complex appli-

cations. The generated trajectory can be very

complicated. This aspect is quite attractive,

because when entering the path points, the

velocity boundary conditions do not need to

be considered, and thereby this simplifies the

planning burden greatly.

(8) Depending on the application, we can im-

plement one complicated trajectory passing

closely all via-points at once, or generate sev-

eral trajectory segments separately and then

connect them by the pre-specified boundary

conditions one by one. Using the latter ap-

proach, the robot can do its operations in

position space with high accuracy. Note, we

can impose velocity constraints on the end-

positions to achieve also some dynamic tasks,

e.g., to hammer, box, pitch, etc. This attrac-

tive property is quite obviously supported by

the system presented in this paper.

(9) Our method provides strong flexibility in

shaping the trajectory by ways of kernels (see

Appendix A.3 and the middle of the paths

shown in Fig. 9b and c).

Some limitations also presently exist:

(1) We have velocity peaks in the transition

zones, caused by the quick change of the

Suppressing Window Function, near C

1

, C

2

(see Section 2.5.3, Fig. 9f). For real appli-

cations, the peak values should be below

the limitation of the actuators of the em-

ployed manipulator. The solution to alleviate

this problem is to use smaller accelera-

tions for the LSPB based sample trajectory

(see Section 2.6) or a longer whole time

period T.

(2) When using a complete, complex trajec-

tory via-points can be only passed closely;

and the kernel numbers determines the ac-

tual distance errors (see the case shown in

Fig. 9). For applications where via-points

must be passed exactly, we need to gener-

ate sub-trajectories and connect them one

by one.

Our method can be employed not only in

task space, but also in joint space. In task space

(Cartesian space), as the pre-planning work is

more obvious, we can apply it as shown in

Section 4. In joint space, without loss of generality,

if one uses this method to directly generate the

trajectories for each joint, it will also work. The

principle is the same.

The often pursued combination of DMPs with

imitation learning is also possible with this frame-

work. For such an application, this method has

the potential to allow for some dynamic tasks as

mentioned above. For instance, a humanoid robot

can imitate the movement profile and produce

different kinds of end velocities.

Conventional industrial applications (e.g., [2,

29–36]) are certainly not in the focus of this paper.

However, there is now quite a rising demand in

industry for methods that are smoother, more

easily adaptable, etc. This is where we see some

future potential for our method.

All methods presented in this paper have been

implemented on a simple robotic manipulator

platform (Neuro-Robotics, Sussex) in our labora-

tory, where not only the key algorithm shown in

this paper, but also more low-level driving and

interfacing programs for the embedded control

system of this platform have been implemented.

In the literature [37], this method is employed.

Several basic experiments and their explanations

are given in our preliminary publication [38] of

J Intell Robot Syst

this work. In summary, we believe that this novel

trajectory generating technology exhibits great

flexibility and applicability. Thus, we hope that

our work presented in this paper will stimulate

further DMP related research and development,

and that this novel trajectory generating tech-

nology can be an alternative and widely em-

ployed not only in humanoid robots, but also in

industry.

Acknowledgements The research leading to these results

has received funding from the European Community’s

Seventh Framework Programme FP7/2007-2013 – Chal-

lenge 2 – Cognitive Systems, Interaction, Robotics –

under grant agreement No 270273 – Xperience. It was also

supported by the German BMBF BFNT01GQ0810 project

3a of the University Göttingen.

The authors would also like to thank the anonymous

reviewers who have made many valuable comments, which

improved the paper.

Open Access This article is distributed under the terms of

the Creative Commons Attribution License which permits

any use, distribution, and reproduction in any medium,

provided the original author(s) and the source are credited.

Appendix: Summary of the Parameters

There are several free parameters used in this

method. Here we give a summary on how to de-

termine them for an application.

A.1 Dynamic Property Parameter: ω

n

In Eqs. 7 and 8, ω

n

is related to this trajectory

generator’s dynamic property. As we know, the

inertia of the mechanical components and its mo-

tion control system has limited response band-

width. Thus, the trajectory output can be easily

followed by the motion control system, as long

as the bandwidth of the motion control system is

higher than the one of our system. As a conse-

quence of this the tracking error caused by the

properties of the motion control system can be

evaluated and remains well controlled [23].

For practical applications, we need to consider

the following trade-off:

(1) Too small ω

n

is meaningless because it will

need a too long time to finish a trajectory,

even though the results are very smooth (be-

cause it works as a low pass filter).

(2) Higher ω

n

brings fast response times, but

when limited by the parameters of a real

platform, the generated result will challenge

the motion control and actuation system.

(3) Founded by control theory, we just need to

keep in mind that the employed ω

n

should

be lower than the one of the real plat-

form. Then we can obtain an acceptable re-

sult (finite end-time, acceptable acceleration,

etc). For all the cases shown in this paper we

had ω

n

= 50.

A.2 Accuracy Related Parameters:

t

m

, C

1

, C

2

, l

1

and l

2

t

m

is the junction moment of the polynomial seg-

ment and the linear segment, shown in Eq. 16. The

time duration of the linear segment, (t

f

−t

m

), is

used to let the Second-Order System approximate

the linear segment. It means that (t

f

−t

m

) should

be long enough to achieve an acceptable error.

Here we can arrive at a strategy: given err

P

(see

Eq. 26), we need to satisfy t

f

−t

m

> t

∗

, here, t

∗

is

defined as follows,

err

p

≈ e

−ω

n

t

∗

_

1 +

2

ω

n

t

∗

_

. (29)

This relation is derived from the ramp input re-

sponse (with zero state) of a second-order system,

and please keep in mind that the steady-state

error has been compensated by Eq. 17. By a nu-

merical calculation program, Eq. 29 can be easily

solved.

Please note that Eq. 29 is derived from a

zero state and it has not taken into account the

effect from the Suppressing Window Function.

Equation 29 can be used as a basic reference to

determine t

m

. For a real application, to be on the

safe side, the employed t

∗

should be bigger than

the result shown in Eq. 29.

As disclosed in Eqs. 23, and 24, C

1

, C

2

, l

1

and

l

2

determine the Suppressing Window Function.

As mentioned there (Section 2.5.3), we need to

ensure that v(t) approaches zero at the start- and

end-time as closely as possible in order to let the

reference signal r(t)govern the Second-Order

System Module’s response to satisfy the given

J Intell Robot Syst

boundary conditions. Generally, bigger l

1

and l

2

bring fast zero-approaching performance but in-

duce higher velocity peaks as shown in Fig. 9f and

g. C

1

and C

2

set the inflection points (see Fig. 5),

and bigger values of them enforce the zero-

approach. Furthermore, they are related to the

transition zone of this method (e.g., see Figs. 1c

and 8b).

In the cases shown above, we have presented

suitable values of them, which can be directly used

for many (also other) applications. All of them are

related to the boundary condition accuracy of the

trajectory generator presented in this paper.

A.3 Flexibility Related Parameters: M and h

M and h are related to the middle of the gener-

ated trajectory, and they will let the result exhibit

different smoothness. Possible combinations are

as follows:

(1) Large M and h means more and narrower

basis functions. This should be employed

for applications requiring high accuracy (e.g.,

the tracking accuracy between the given path

is expected to be high).

(2) Small M and h: This should be employed, for

example, for a humanoid robotic task, as the

middle of the path accuracy is not a critical

issue. In this way, the trajectory is smoother

and “looks” more natural (human like).

(3) Small M and large h, this just brings some

peaks to f (t) and small ripples to the result

and, thus, does not make sense. The gener-

ated trajectory will mostly follow r(t), during

the whole process.

(4) Large M and small h, the result is similar to

(2), but one needs to spend more calculation

resources.

In summary, concerning M and h, the choice is

depending on the application requirements: if we

need to follow a path as accurately as possible,

we need to utilize narrower and more Gaussian

kernels; if not, fewer and wider kernels are more

suitable. We recommend (1) and (2) only, and

they can be tuned/determined during a real task.

Please compare cases shown in Fig. 9.

References

1. Siciliano, B., Sciavicco, L., Villani, L., Oriolo, G.:

Robotics: Modelling, Planning and Control. Springer

(2009)

2. Nystrom, M., Norrlof, M.: Path generation for in-

dustrial robots. Technical Report LiTH-ISY-R-2529,

Department of Electrical Engineering, Linkoping

University (2003)

3. Atkeson, C.G., Hale, J.G., Pollick, F., Riley, M.,

Kotosaka, S., Schaal, S., Shibata, T., Tevatia, G.,

Ude, A., Vijayakumar, S., Kawato, E., Kawato, M.:

Using humanoid robots to study human behavior.

IEEE Intell. Syst. 15(4), 46–56 (2000)

4. Castain, R.H., Paul, R.P.: An on-line dynamic trajec-

tory generator. Int. J. Rob. Res. 3(1), 68–72 (1984)

5. Tondu, B., Bazaz, S.A.: The three-cubic method: an

optimal online robot joint trajectory generator under

velocity, acceleration, and wandering constraints. Int.

J. Rob. Res. 18(2), 893–901 (1999)

6. Thompson, S.E., Patel, R.V.: Formulation of joint tra-

jectories for industrial robots using B-splines. IEEE

Trans. Ind. Electron. IE-34(2), 192–199 (1987)

7. Chand, S., Doty, K.L.: On-line polynomial trajectories

for robot manipulators. Int. J. Rob. Res. 4(2), 38–48

(1985)

8. Taylor, R.H.: Straight line manipulator trajectories.

IBM J. Res. Dev. 23(4), 424–436 (1979)

9. Wada, Y., Kawato, M.: A theory for cursive handwrit-

ing based on the minimization principle. Biol. Cybern.

73(1), 3–13 (1995)

10. Schaal, S., Peters, J., Nakanishi, J., Ijspeert, A.: Learn-

ing movement primitives. In: Proceedings of Interna-

tional Symposium of Robotics Research, pp. 561–572

(2003)

11. Ijspeert, A.J., Nakanishi, J., Schaal, S.: Movement im-

itation with nonlinear dynamical systems in humanoid

robots. In: Proceedings of the IEEE International Con-

ference on Robotics and Automation, pp. 1398–1403

(2002)

12. Peters, J., Schaal, S.: Reinforcement learning of motor

skills with policy gradients. Neural Netw. 21, 682–697

(2008)

13. Schaal, S., Mohajerian, P., Ijspeert, A.J.: Dynamics sys-

tems vs. optimal control - a unifying view. Prog. Brain

Res. 165(1), 425–445 (2007)

14. Vijaykumar, S., Schaal, S.: Locally weighted projection

regression: an O(n) algorithm for incremental real time

learning in high dimensional space. In: Proceedings of

the International Conference on Machine Learning,

pp. 1079–1086 (2000)

15. Ijspeert, A., Nakanishi, J., Schaal, S.: Learning at-

tractor landscapes for learning motor primitives. In:

Becker, S., Thrun, S., Obermayer, K. (eds.) Adv.

Neural Inform. Process Syst., vol. 15, pp. 1547–1554

(2003)

16. Park, D.H., Hoffmann, H., Pastor, P., Schaal, S.:

Movement reproduction and obstacle avoidance

with dynamic movement primitives and potential

fields. In: Proceedings of the IEEE-RAS Interna-

J Intell Robot Syst

tional Conference on Humanoid Robots, pp. 91–98

(2008)

17. Hoffmann, H., Pastor, P., Park, D.H., Schaal, S.:

Biologically-inspired dynamical systems for movement

generation: automatic real-time goal adaptation and

obstacle avoidance. In: Proceedings of the IEEE

International Conference on Robotics and Automa-

tion, pp. 2587–2592 (2009)

18. Gams, A., Ude, A.: Generalization of example move-

ments with dynamic systems. In: Proceedings of the

IEEE-RAS International Conference on Humanoid

Robots, pp. 28–33 (2009)

19. Pongas, D., Billard, A., Schaal, S.: Rapid synchroniza-

tion and accurate phase-locking of rhythmic motor

primitives. In: Proceedings of the IEEE/RSJ Interna-

tional Conference on Intelligent Robots and Systems,

pp. 2911–2916 (2005)

20. Kober, J., Peters, J.: Learning new basic movements

for robotics. In: Proceedings of the Autonome Mobile

Systeme, pp. 105–112 (2009)

21. Kober, J., Mulling, K., Kromer, O., Lampert, C.H.,

Scholkopf, B., Peters, J.: Movement Templates for

Learning of Hitting and Batting. In: Proceedings of

the IEEE International Conference on Robotics and

Automation, pp. 853–858 (2010)

22. Kulvicius, T., Ning, K., Tamosiunaite, M., Wörgötter,

F.: Joining movement sequences: modified dynamic

movement primitives for robotics applications exem-

plified on handwriting. IEEE Trans. Robot. 28(1),

145–157 (2012)

23. Dorf, R.C., Bishop, R.H.: Modern Control Systems,

8th edn. Addison-Wesley (1998)

24. Pastor, P., Hoffmann, H., Asfour, T. Schaal, S.: Learn-

ing and generalization of motor skills by learning from

demonstration. In: Proceedings of the IEEE Inter-

national Conference on Robotics and Automation,

pp. 763–768 (2009)

25. Nemec, B., Tamosiunaite, M., Wörgötter, F., Ude, A.:

Task adaptation through exploration and action se-

quencing. In: Proceedings of the IEEE-RAS Interna-

tional Conference on Humanoid Robots, pp. 610–616

(2009)

26. Haykin, S.: Neural Networks: A Comprehensive Foun-

dation, 2nd edn. Prentice Hall (1999)

27. Spong, M.W., Hutchinson, S., Vidyasagar, M.: Robot

Dynamics and Control, 2nd edn. John Wiley & Sons

(2004)

28. Corke, P.I.: A robotics toolbox for MATLAB. IEEE

Robot. Autom. Mag. 3, 24–32 (1996)

29. Kyriakopoulos, K.J., Saridis, G.N.: Minimum jerk path

generation. In: Proceedings of the IEEE International

Conference on Robotics and Automation, pp. 364–369

(1988)

30. Tarn, T.J., Xi, N., Bejczy, A.K.: Motion planning in

phase space for intelligent robot arm control. In: Pro-

ceedings of the IEEE/RSJ International Conference

on Intelligent Robots and Systems, pp. 1507–1514

(1992)

31. Piazzi, A., Visioli, A.: Global-minimum-jerk trajec-

tory planning of robot manipulators. IEEE Trans. Ind.

Electron. 47(1), 140–149 (2000)

32. Piazzi, A., Visioli, A.: An interval algorithm for

minimum-jerk trajectory planning of robot manipula-

tors. In: Proceedings of the IEEE Conference on Deci-

sion and Control, pp. 1924–1927 (1997)

33. Nguyen, K.D., Ng, T.C., Chen, I.M.: On algorithms for

planning S-curve motion profiles. Int. J. Adv. Robot.

Syst. 5(1), 99–106 (2008)

34. Constantinescu, D., Croft, E.A.: Smooth and time-

optimal trajectory planning for industrial manipulators

along specified paths. J. Robot. Syst. 17(5), 223–249

(2000)

35. Shin, K.G., McKay, N.D.: Minimum-time control

of robot manipulators with geometric path con-

straints. IEEE Trans. Automat. Contr. 30(6), 531–541

(1985)

36. Bobrow, J.E., Dubowsky, S., Gibson, J.S.: Time-

optimal control of robotic manipulators along specified

paths. Int. J. Rob. Res. 4(1), 3–17 (1985)

37. Aksoy, E.E., Abramov, A., Dellen, B., Dörr, J.,

Ning, K., Wörgötter, F.: Unsupervised recognition

and classification of manipulations: grouping actions

and objects. Int. J. Rob. Res. 30(10), 1229–1249

(2011)

38. Ning, K., Kulvicius, T., Tamosiunaite, M., Wörgötter,

F.: Accurate position and velocity control for tra-

jectories based on dynamic movement primitives.

In: Proceedings of the IEEE International Conference

on Robotics and Automation, pp. 5006–5011 (2011)

39. Marquez, H.J., Damaren, C.J.: On the design of strictly

positive real transfer functions. IEEE Trans. Circuits

Syst. Fundam. Theory Appl. 42(4), 214–218 (1995)

40. Ioannou, P., Gang, T.: Frequency domain condi-

tions for strictly positive real functions. IEEE Trans.

Automat. Contr. 32(1), 53–54 (1987)

41. Huang, C.-H., Ioannou, P.A., Maroulas, J., Safonov,

M.G.: Design of strictly positive real systems using con-

stant output feedback. IEEE Trans. Automat. Contr.

44(3), 569–573 (1999)

42. Sane, H.S., Bernstein, D.S.: Asymptotic disturbance

rejection for hammerstein positive real systems. IEEE

Trans. Control Syst. Technol. 11(3), 364–374 (2003)

J Intell Robot Syst

many different issues and is heavily dependent on the specific application requirements. When planning takes place in joint space, we can specify trajectories for each independent joint. A common method for joint space trajectory control uses lower order polynomials to provide interpolating points at servo rates between userspecified via-positions [1, 4]. Using one higher order polynomial to pass through all the viapoints (also known as way-points) is not practical, because it will result in large oscillations of the trajectory. Since polynomials of two neighboring regions can be joined in a continuous way, we can impose specific boundary conditions (i.e., position, and higher derivatives) onto several lower order polynomials to obtain continuous trajectories. There are some other solutions for providing smooth transitions between the specified points in joint space, e.g., [4]. The problem is that in task space, one only knows the initial and goal positions of the end-effector, and can not constrain the intermediate path. Planning in joint space is popular in point-to-point applications as it is easy to implement without having to deal with the kinematics singularity problem [1]. On the other hand, when planning a trajectory in task space, we can completely specify the desired trajectory of the end-effector. As planning in task space is easier to comprehend for practical applications and can be used for completing versatile operations, it is more popular and widely studied. However, for task space planning, we need to take care of the kinematic singularity problem [1]. For most applications, we can describe the path information by a sequence of via-points in the task space. A popular approach is to utilize some simple curves (e.g., lines, arcs or parabolas) to setup a whole path in task space, depending on the assigned via-points. The problem is how to connect separate segments, in order to create a smooth path. Common solutions are based on the introduction of zones in which an interpolation between the two adjacent segments can be performed [2]. Once we get the planned path, trajectory planning and optimization can be executed, depending on the task-specific requirements and criterions. The literature about traditional trajectory planning and optimization is substantial. Optimization

topics cover energy [29, 30], jerk (the third derivative of position) [29, 31–33], time [30, 33–36], etc.; and different optimization techniques are employed (e.g., [30, 36]) as well. Generally, these approaches are complex and require physical models (dynamic parameters, specifications of the actuators, etc) of the studied robotic manipulators. Some of them also need to provide predefined path information. Mostly, these research and development activities are motivated by the increasing need for improved motion performance for achieving higher productivity in industry. In the current paper we will address the problem of trajectory planning and generation providing a novel and versatile alternative approach that combines aspects from control engineering with a dynamic systems perspective. In general there are two, often conflicting, demands on trajectory generation: On the one hand, trajectories should arrive at specified points in task space (start- and endpoints as well as via points) with small error - a demand usually existing for industrial robots. On the other hand, trajectories should be smooth, human-like, and robust against disturbances - a demand found in humanoid and/or service robotics, e.g., [3]. Two fundamental methods (and many variations thereof) exist, which address these demands to different degrees. In a somewhat simplified view one can broadly state that Splines (and other lower order polynomials) are very well suited for via-point control [1, 4–9], whereas trajectories generated by a dynamical systems approach (dynamic motion primitives, DMPs [10–13]) are smooth and robust against perturbations. The goal of the current study is to augment the DMP framework such that it will obtain some of the advantages of via-point control. This paper will, thus, in the next Section 1.1 introduce DMPs so that we can discuss their pros and cons and begin developing our own framework. In Section 1.2 we will state the purpose of our investigation. In Sections 2 and 3, we present our new solution for trajectory generation. Some case studies are shown, disclosing more details and implementation issues are provided in Section 4. Section 5 will then compare our approach to others showing that the new trajectory generation algorithm presented here is a useful alternative to

If the weights wi in Eq. “Ball-in-a-Cup” game [20]. (6) (5) (1) (2) (3) The original DMP framework can be used to implement discrete as well as rhythmic control policies [15].DMPs The DMP algorithm proposed by Schaal and Ijspeert et al. By appropri- . αz . In the Appendix we give a summary of the required parameters. By starting the next DMP while the previous one is not totally finished one can create smooth connections of the DMPs. etc. βz . The phase variable x is a substitute for time. which can be trained (by adjusting the weights wi ) to approximate discrete movements of various shapes. reaching with obstacle avoidance ability [16. is a nonlinear function approximator [14]. g) = where i = exp −hi (x − ci )2 . For the point attractive behavior (reaching movement). limited by its formulation and structure. And the exponential system described by ˙ τ x = −αx x. N N i wi x/ i=l i=l i ate parameter settings when the above-mentioned second-order system is critically damped. 17]. 1 can be replaced by ˙ τ z = αz (βz (r − y) − z) + f. instantiated the transformation system by a second-order dynamics. because a robot will have to “intermittently stop” at all the via-points. and the other variables are used as state variables. as follows [13]. constrained reaching [18]. is “a formulation of movement primitives with autonomous non-linear differential equations whose time evolution creates smooth kinematic control policies” [10]. and has exhibited great potential for learning from demonstration due to its flexibility and robustness against perturbations. The transformation system is a basic point attractive system utilized to generate the desired movement. the original DMP can not be used to directly incorporate a target velocity or a via-point (but see [21]). ˙ τ z = αz (βz (g − y) − z) + f. but this will reduce control over the accuracy of the path. tennis swings [11]. hitting and batting [21]. 1. wi denotes weights. Several applications using DMPs have been shown in the field of humanoid robot research. τ is a temporal scaling factor.Goals of This Study The basic DMP formulation has some limitations which restrict its usefulness for trajectory generation applications. In order to avoid discontinuities in acceleration Eq.1 Introduction . These aspects make it not practical to chain several trajectory segments together. For example. It always asymptotically converges to the final point and the speed of approaching the target is zero. y. 3 are bounded. ˙ τ y = z. (4) In Eqs. 3. Centers ci and widths hi characterize the Gaussian functions ψi . x acts as a “gating term” to ensure that f = 0 at the end of the movement. the combined system asymptotically converges to the unique point attractor g. drumming [19]. g is a given goal state. where ˙ τ r = ag (g − r). velocity and acceleration. 1. and v is a phase velocity [13]. and lead to a limited capability to steer the velocity at the connection points. v.2 Introduction . The canonical system is used to represent the phase of the movement process. In the current study we will therefore modify the DMPs framework to incorporate via-point f (x.J Intell Robot Syst the existing methods. αx are time constants. handwriting generation [22]. z and z can be ˙ interpreted as desired position. Ijspeert et al. 1–4. f (x)) [10–13]. The function f . shown in Eq. A more detailed explanation can be found in the literature [10–13]. The original DMP algorithm consists of two sets of differential equations namely a canonical ˙ system τ x = h (x) and a transformation system ˙ τ y = g (y. For example.

c This track shows a smooth and acceptable solution. this trajectory should match the desired pathway and velocity profile.J Intell Robot Syst control and to allow for the chaining of DMPs. leading to smooth movement of a real robotic manipulator. a straight line (dashed) is not practical for a robot platform. Figure 1b shows the solution of a popular polynomial-based method. thus.1 Specification Goals for the Trajectory Generator Figure 1a shows a schematic plan of an example task. the trajectory has to be smooth (i. rigorous error bounds. In the middle of the path. In the two end zones the trajectory has transition segments. The resulting algorithm is. the here presented method has its own application field (chained trajectories with precise boundary conditions and disturbance robustness). Figure 1c shows a natural and smooth solution: at the two connection points. traditional solutions need to insert intermediate points and fit the zones by splines/polynomials [1]. Generally. 1c. which can provide a smooth and safe trajectory but remains illdefined at intermediate positions. Obviously. (2) From this. A suitable compensation introduced during the transition segments will reduce jerk. removed from the original framework. 2 The Trajectory Generator Based on DMP In this section. we will start with the task description and then present detailed information on our method. Obviously the actuators of a robot would have to provide extremely high and unacceptable torques at the two ends. with the assigned velocities v1 and v2 .e. This is important because it extends the current literature on DMPs and allows employing conventional and well-established methods for control via second-order systems. transitions zones are introduced to satisfy the specified boundary conditions and to smoothen the response of the physical system. for industrial applications. The segments should arrive at the target point with the assigned velocity vector (orientation and magnitude) as accurately as possible. This is done to target a different application field. but the initial and final velocity vectors are not zero. more related to low-level control under given. The robot has to move from point A to B along the straight line AB. This.g. Z v1 A B v1 A B v2 Y Z v1 B Y A O X v2 B v2 O X Y O X (a) (b) (c) like the solid one. This is required for the above mentioned target application fields where high-accuracy along the trajectory is needed and obtained by introducing explicit timing-laws [1]. but intermediate positions remain undefined. In this paper. Specifically: (1) The algorithm will be based on an analysis of the original DMPs from a control theoretical viewpoint considering several aspects. b A smooth trajectory can be implemented . Z v2 2. the velocity change of the whole process must be continuous). In this field it can compete (or even excel) in applicability with the original DMPs as well as with Splines and is therefore a viable alternative. and is everywhere defined Fig. Also. or simple curves (e. (3) Thus. 1 A schematic plan of a task. circular arcs are employed). we will design a trajectory generator by modifying DMPs. we target to attain smooth transitions using our newly developed method. (4) The new algorithm does reintroduce strict time dependency. a A robot needs to move from point A to point B... but we will also partially loose some of the DMPs’ original properties. way we will gain a higher level of accuracy. as the case shown in Fig.

(4) Definite end-time. y (t) e*(t) Notice: After training. 2b) will affect the Second-Order System’s response as a forcing input. After training. . Fig. which consists of four key modules. The architecture shown in Fig. The outputs from the Boundary Function Generator r(t). the Modulation Function module will contain the main information obtained from y∗ (t). The Modulation Function consisting of a Gaussian Kernel Based Approximating Function and a Suppressing Window Function (see Fig. and Mod- ulation Function f (t). for possible industrial applications. 2.2 Architecture of Our Trajectory Generator Figure 2a shows the architecture of the DMP based trajectory generator.. b The inner components showing the Modulation Function Boundary Conditions . (2) Global smoothness (e. yf Sample Trajectory Generator Boundary Function Generator y*(t) f(t) Modulation Function e*(t) r (t) + + u(t) Second-Order System + _ Modulation Function f (t) Suppressing Window Gaussian Kernels y(t) .3 Second-Order System Module In the original DMP and the following studies [10–13. Furthermore. For an N-DOF application. are fed into the SecondOrder System. The Second-Order System module provides the trajectory y(t). we also need to incorporate the required velocity profile into the trajectory. only the pink-shaded components will be used. From such trajectories. (a) (b) . we can build a complicated path by a serial connection of several sub-trajectories with boundary conditions for the joining between them. y (t). C2: continuity of the second derivative over the closed interval of the data set) and accuracy of the trajectory. After training. yf Training y0. parameters α z and β z shown in Eqs. . In the current paper. the following requirements are fundamental for a complete and useful trajectory generating technology. 1 and 5 have not been directly related to the physical meaning of a second-order system.J Intell Robot Syst In summary. 2 The architecture of our DMP based trajectory generator. The Boundary Function Generator imposes the boundary conditions onto the system. we can employ N copies of this architecture in parallel. provided by the Sample Trajectory Generator. 2.g. (1) Accurate adherence to boundary conditions in position and velocity of the start and endpoints. 2 is for one Degree-of-Freedom (DOF). (3) Allowing for desired speed profiles and path constraints. y0. and these weights need to be trained in order to encode the information brought from the sample trajectory y∗ (t). only these components will be used. and the sample trajectory will not be used anymore. we adopt a standard formulation to make the system easier to understand from a control theory perspective. a The whole structure. an aspect which is important for most applications. The Gaussian Kernel Based Approximating Function contains a weight vector. yf y0. 15–22].

ζ = 1 2 αz . then in state space the Second-Order System is described as. and its feedback channel is H(s) = 1. where. 12 we can get ζ = 1 (criterion for critical damping). √ αz βz . Let U (s) = R (s) + F (s) and Y(s) denote the input and output respectively. we have to take into account the boundary conditions (i. N P = 3) [1]. [10] only provided βz = αz /4 to get critical damping and had not been concerned with other possible frequency characteristics and responses of their DMPs. 2 G (s) ωn Y (s) = = 2 . 8 we can get the relation equations relating ζ and ωn to the parameters αz and βz .e. Y= (8) y1 (t) 0 1 . the system has a double pole at −ωn .J Intell Robot Syst F(s) R(s) + + U(s) + _ Y(s) H(s) = 1 E(s) G(s) 2 n sY(s) 1 n Y(s) s+2 s Spreading Eq. where the constants ζ and ωn are the damping coefficient and the natural undamped frequency of the system.A = . As we know. (11) ωn = τ and. Its forward 2 ωn channel is G (s) = s(s+2ζ ωn ) . ˙ Y = AY + Bu. respectively. 1. strictly positive real one. 9 and 10 and the timedomain response of such a system [23]. as follows. 2. It is well known that its steadystate error can be calculated by the final-value theorem [23]. then the transfer function is as follows.B = 2 y2 (t) −ωn −2ζ ωn Schaal et al. 7 is well-studied in control theory. in Eq. 7 is positive real and passive. 13. velocity). the error’s change rate can be expressed as s2 U (s) ˙ ˙ ess = lim e (t) = lim t→∞ s→0 1 + G (s) (10) x (t) = j=0 a jt j (13) . 2 U (s) 1 + G (s) H (s) s + 2ζ ωn s + ωn (7) This is a standard second-order system. position. The Second-Order System shown as Eq. 3 Block diagrams of the employed Second-Order System in Laplace space. ωn The model shown in Eq. and this results in a critically damped response [23]. shown in Eqs. We will discuss this issue in the following sections. is always closed-loop stable [39–42]. the lowest order for an interpolating polynomial is three (also known as cubic polynomial. Furthermore.4 Boundary Function Generator For a trajectory generator. fifth-order polynomials can be employed. we can explain why the original DMPs always asymptotically converge to the final point and the speed of approaching the target is zero. Please note. Entering this equation into Eq. linear and nonlinear subsystems are interconnected in the DMP method proposed. Np 0 2 . In order to allow imposing continuity of velocities at the junction points. ess = lim e (t) = lim t→∞ sU (s) s→0 1 + G (s) (9) Furthermore.. We can get position and velocity outputs directly Figure 3 shows the block diagram of the Second-Order System module employed in this paper. 5 as follows. Equations 9 and 10 also provide the foundation for including the boundary conditions in the architecture shown in Fig. As mentioned above. It is a type-1 system. when ζ = 1. expressed in Laplace space. 2. polynomials are normally employed to remove discontinuities in velocity and acceleration between adjacent path segments. An interconnection containing a passive subsystem (linear or not) with a strictly proper. ˙ ˙ Let us define y2 (t) = y1 (t) = y (t). βz (12) Fig. based on Eqs. u = u (t) = r (t) + f (t) . For an application with acceleration constraints.

t t0 = 0 tm tf = T δe (tf .. In Eq. we cannot employ the third-order polynomial alone to construct the Boundary Function Generator shown in Fig.5 Modulation Function r Polynomial Segment Line Segment (tf . (19) . 2. with both. ye ) Fig. see later) during the middle of the processing. As we know. However. see later. 14 presents the offset we can use to reduce the position error. from Eqs. If u(t) is a ramp function. The coefficients of the polynomial segment are determined as follows. In fact. 9. The value tm depends on the temporal properties of the SecondOrder System module (i. 4 A solution for building the Boundary Function Generator. 1. tm ] is employed to connect the boundary conditions imposed on the start point. Let us denote tm as the junction moment (the time point where the polynomial segment and the ˙ and δe = (2ζ /ωn ) y f . the sample trajectory. 2. and Kv = ωn /2ζ . the polynomial segment [0.e. Thus.g. 2. yf ) .and endpoints respectively. y f and y0 . The Modulation Function f (t) shown in Fig. constraints. ωn and ζ ).J Intell Robot Syst We use a third-order polynomial and determine ˙ ˙ the coefficients given by y0 . and ˙ ess = 0. (15) (14) line segment are joined).. ⎧ a 0 = y0 ⎪ ⎪ ⎪ ⎪ ⎪ ˙ a 1 = y0 ⎪ ⎪ ⎪ ⎪ ⎨ ˙ ˙ 3 (ym − y0 ) − tm 2 y f − y0 (18) a = 2 ⎪ 2 tm ⎪ ⎪ ⎪ ⎪ ⎪ ⎪ ˙ ˙ 2 (y0 − ym ) + tm y0 + y f ⎪ ⎪ a3 = ⎩ 3 tm ˙ where. A third-order polynomial extended by a line segment can be employed here to construct the reference signal r(t) for the DMP based trajectory generator For most application tasks. As shown in Fig. This conclusion can be derived from Eq. 2 is used to “force” the generated response to follow the assigned trajectory (i. Figure 4 shows such a case. y e = y f + δe (17) a 0 + a 1 t + a 2 t 2 + a 3 t 3 0 ≤ t ≤ tm ˙ ye − t f − t y f tm < t ≤ t f (16) where V is the slope coefficient of u(t). we can design our system based on this principle with controllable precision. t f ] works as a ramp input which provides a convergence reference for the Second-Order System. because the steady-state error is infinite [23]. e. then the reference signal is defined as follows: r (t) = where. we can utilize a third-order polynomial extended by a line segment to construct the reference signal r(t). the case shown in Fig. position and velocity. 9 and 10 we obtain ess = V/Kv .e. 15 is the proof for approaching the assigned velocity and Eq. and the linear segment (tm . Even though Eqs. ym = ye − (t f − tm ) y f = y f + [(2ζ /ωn ) − ˙ (t f − tm )] y f . the input to the SecondOrder System is u (t) = r (t) + f (t) . a type-1 system cannot follow a parabolic or a higher order function. 16. Equation 15 shows that the slope coefficient of the Second-Order System’s response will approach that of the input ramp function in the end. The calculation method for the coefficients of the third-order polynomial segment can be found in the literature [1]. we need to control a robot to move along an assigned path. y f as the positions and velocities at the start. 14 and 15 hold only for the steady-state.. Next we will show how we can fix this problem. Eq. The Boundary Function Generator will guarantee the required system’s performance at start and end regions.

Here. in the middle section. wi is the weight of the Gaussian kernel i and = [ψ1 . Constants ci and hi are centers and widths of the Gaussian kernels i. When the system is in those regions. 2. 2. . · · ·. we can totally counteract unwanted effects brought by r(t) and to reshape the system’s output in order to force it to follow the desired path. 24] or global regression methods [25]. Please note..3 Suppressing Window Function The Suppressing Window Function v(t) in Eq. · · ·. as described below. is a solution for getting such a suitable f (t). T].1] to [0. we let hi = h. . with ψi = exp −hi t − ci T 2 where.2 Weight Learning In this paper. The Gaussian Kernels Based Approximating Function. Let us define the Modulation Function with M kernels. i = 1.J Intell Robot Syst The variable f (t) works as the forcing input to this system and is used to steer the final result. 14–16 will guarantee that the assigned boundary conditions will be successfully reached. (22) W ψi v (t) . .g. The present “simple” solution will be robust to approximate the sample trajectory and the final accuracy (in the middle section of the path) is depending on the learning rate (see Eq. k = ci T defines the center of the i-th Gaussian kernel within the time period [0. t is the time. we project M Gaussian kernels from the range [0.1 Gaussian Kernels Based Approximating Function The original DMP introduces a nonlinear control based on learned feed-forward controllers [10–13]. 2. reference signal r(t) defined as Eq. . i = 1. The double-sigmoid function is continuous and differentiable and it has . (21) where T = t f − t0 is the time length of the whole process. ψi . 2b..5. 24]) can be used to learn weights of the kernels. · · ·. where the error between target signal and system’s output is used to change weights. ψ M ]T . it is unconstrained. M. evenly distributed within the interval [0. (20) where W = [w1 . It is more suitable for cases where many different (but similar) training trajectories are used and this method should lead to an average trajectory. ψ2 .. Here we propose a simple and practical learning rule to train the weight vector W. f (t) = T M i=1 Several different methods exist for weight adaptation like locally weighted regression methods [11. In general any other more sophisticated method (e. 2. To simplify the treatment. . It controls kernel influence by suppressing their action near startand endpoints thereby assuring accuracy of the process. 22 at time moments ci T. γ is the learning rate.5. 11. 16 provides mathematical derivability (at the junction points). Note. In our case this can be formalized by the following equation: wi = γ y∗ (k) − y (k) v (k) . A nonlinear function based on a group of Gaussian kernels can be trained to smoothly approximate a given sample curve. and v(t) is a suppressing window function (see later). w2 . 22). w M ]T . T]. however. wi . the weight vector W will be trained to match the sample trajectory y∗ (t) generated by the Sample Trajectory Generator shown in Fig. k serves to anchor the Gaussian kernels to the time period T.1]. . . This procedure is similar to back-propagation learning used in artificial neural networks [26]. we should let the Boundary Function Generator’s output r(t) drive the Second-Order System and Eqs. Figure 5 shows a solution for a suitable Suppressing Window Function. By introducing a suitable f (t). and therefore only need to iterate Eq. By k = ci T. We utilize this idea to build the Modulation Function for our system. 2. LWPR [10. M.5. · · ·. 2. 20 serves as an “Enable” term inside the Modulation Function shown in Fig. this simple approach might not be optimal for a single training trajectory.

We can acquire it by imitation (teaching and recording). With these parameters. In the first step the sample trajectory provides geometric path constraints and the speed profile information along the trajectory. the easiest solution is to set up independent LSPB trajectories between adjacent via points and then to connect them one by one to form the whole sample trajectory sequence as shown in Eq. · · ·. It provides a sample trajectory sequence y∗ (t): y∗ (t) = y∗ (0). Now we describe how to define the Sample Trajectory Generator required for the step 1. In the second step the boundary conditions are imposed and the final smooth result is obtained through the interaction of f (t) and r(t). this aspect is analyzed in more detail. y∗ (τ ).and end-time as close as possible in order to obtain f (t) = 0. and C1 .5 0 t t0 C1 C2 t f Fig. or generate it by a simple path planner routine.J Intell Robot Syst v 1 0. LSPB leads to a discontinuous variation in the acceleration profile resulting in large jerk. l1 . Figure 1c shows the two regions at the ends of the trajectory. r(t) totally governs the Second-Order System at the start. In fact. For the policy on how to choose these parameters see below. L is the whole step number. v (t) = s1 (t) × s2 (t) . we do not need to . We define l1 = l2 = 20. 20 and 22).38 for all following examples. when designing the sample trajectory sequence. Note. (23) care about the possible initial and final velocities imposed by the boundary conditions (see the signal flow shown in Fig. 2).and endpoints and a more precise result is achieved.3. and s2 (t) = 1 1+ e−l2 (t−C2 ) . · · ·. T (24) where. Also. which is also known as LSPB (Linear Segments with Parabolic Blends) [27]. l2 are used to set the slopes. For applications with many via-points. In the following applications cases. with. 2. y∗ (kτ ). After training. C1 = 0.slowdown” speed profile. we will give examples for this. and then Lτ = T is the total desired time to complete the path. we can use LSPB to implement the Sample Trajectory Generator. s1 (t) = 1 1+ e−l1 (t−Cl ) . the sample y∗ is only used during the training process (training the weight vector Wof the Gaussian Kernel Based Approximating Function. 2]. y∗ (Lτ ) . this method is more popular for planning and control in joint space. as a consequence. Our system filters this effect out (see later) and. Obviously. (25) where. see Eqs.6 Sample Trajectory Generator Planning a trajectory by this method is done in two steps. which simplifies this step substantially. 5). This kind of transition region is similar to the popular “zone solution” [1. It represents a time optimal solution for actuators and is easy to implement. and C2 = t f − 0. To generate a velocity profile for a sample trajectory. f (t) will contain all information and y∗ will not be used anymore. but implicitly described by the parameters of the sigmoids. C2 to set the inflection points (see Fig. τ is the sampling interval. we focus on the latter in this paper. We define it by. 25. Without loss of generality. This way. In Section 4. as well as demonstrate the “filter” effect generated by the trained Modulation Function together with the Second-Order System.uniform motion . It has a “speedup . Here we need to take the maximal acceleration that the actuator can provide into account. 5 Smooth suppressing window function given by the product of two sigmoids a pair of horizontal asymptotes as t → ±∞. we need to ensure that v(t) approaches zero at the start. a simple trapezoidal timing law [1] can be employed.

Boundary conditions ˙ are y(t0 ) = 0. 6. After this training procedure. tm and finish the configuration of the Suppressing Window Function v(t). 4.08 m. 2) will approach the sample trajectory y∗ (t) more closely. we will explain this by several cases. In this case we used. 7 we show a pair of results with identical parameters except final boundary velocity. ˙ y t f = 0. we define. we can use the parameters to deal with different and wide-ranging applications on a physical platform easily. 22. l1 . 6b. Only positional boundary conditions. C2 . τ = 0. the position of the viapoints. (y0 . y f ). we have disclosed all the key components of this method. 20 and 21). The influence of these parameters will be discussed in the Appendix. 16–18. and longer iteration times. ˙ ˙ y f and y0 . 4 Case Study: Application on Manipulators Before discussing a robot application simulation. Following Fig. This corresponds to a single coordinate in task space from a multi-DOF manipulator simulation study. with the duration time T. Where. (4) Set a learning rate γ and start the iteration to adjust the weight vector W. we need to repeat the steps 4 and 5. (2) Use the complete boundary conditions (y0 . In the following Section. The whole architecture satisfies the given boundary conditions by itself and by now we have received the generated trajectory. For comparison. γ = 1. 6c–d we observe that the boundary conditions and the trajectories in the middle of the path match well to our inputs.1 1-DOF Case Figure 6 shows results from the 1-DOF case. The assigned boundary conditions are guaranteed by the architecture presented in this paper. y(t f ) = 0. The kernel numbers are M = 8. the weight vector W contains the information from the sample trajectory sequence y∗ (t).05 m/s. (5) Perform the training iterations. and iteration time is 20. . According to the assigned boundary conditions. where in every iteration. The generated trajectories (red curves) are shown in Fig. Please note. All other parameters are as in Fig.01 s. (26) We can see that the final accuracy is quite high. err P = and err V = ˙ ˙ ˙ ytarget − yreal / ytarget . as shown in Eqs. l2 . Fur- thermore. ζ = 1. (1) Use the LSPB method to generate the sample trajectory sequence y∗ (t). (3) Determine the parameters ωn . we can choose smaller γ . as shown in Eq. here we disclose the whole calculation procedure step by step. little tuning is required and once set up. (27) ytarget − yreal /ytarget . and initialize the Gaussian Kernels Based Approximating Function f (t) by all-zero weight vector W (see Eqs. From Fig.26 m. just by adjusting some parameters. and h = 50. so that it is very easy to implement. we also can use this framework to generate different characteristic results for different application scenarios. in Fig. as follows. t0 = 0 s and t f = T = 2 s. y f ) and possible via-points are used here. y (t0 ) = 0 m/s. the output of the SecondOrder System (see Fig. 2.J Intell Robot Syst 3 The Whole Calculation Procedure In the above sub-sections. or the duration time T. It seems that this method has many parameters and that it is quite complex. However. ωn = 50. The final accuracy of these examples is listed in Table 1. It means that if we change any of boundary con˙ ˙ ditions (y0 . Please note here that the sample trajectory has velocity boundary conditions that equal zero. 6c–f together with the sample trajectory (black curve). the reference signal r(t) is plotted in Fig. and employ bigger M and bigger h. we present a simple 1-DOF case with detailed plots to show how our method works. How to choose these parameters will be summarized later. y f ). this method is a one-shot solution. C1 . For an accuracy-requiring application. The trained Gaussian kernels and the final modulation signal f (t) are shown in Fig. and the duration time T to calculate the reference signal r(t). 6a. y f and y0 .

06 0.1 0.01 0 Position (m) 0.2 -0.25 Position (m) the sample trajectory: it slows down and then approaches the assigned boundary condition.5 2 0 0 0.1 0 0.15 0. In fact. 7 Comparisons between two different final speed boundary conditions.04 0.2 0.5 2 (c) (d) .4 0.1 0.1 Pos (m) 0. the resulting trajectory deviates from Fig.25 Pos: Sample Pos: DMP Position (m) 0.5 Vel: Sample Vel: DMP 1 Time (s) 1.005 -0.05 0 0.2 0 -0.2 Velocity (m/s) 2 0. “acceleration velocity .3 0.5 1 Time (s) 1.2 Pos: Sample Pos: DMP 0. b End speed is 0.5 1 Time (s) 1. a Reference signal r(t).015 The Modulation Input f(t) 0.3 The Reference Signal r(t) 0.15 0. c–e Generated trajectory result and the provided sample trajectory (e) (f) information over time.2 0.5 s to 2 s.5 1 Time (s) 1.5 1 Time (s) 1.12 0.02 0 0 0.05 0 Ve locity (m/s) 0.1 Vel (m/s) 0 0 0. a.2 0.5 2 0.5 2 0.05 0 0.5 1 Time (s) 1. f 3D phase track.1 0. this phenomenon exhibits the autonomous Pos: Sample Pos: DMP Ve locity (m/s) 0. The method shows a powerful autonomous capability to satisfy boundary conditions 0. c. 6 1-DOF case.05 m/s.08 0.25 0.01 Position (m) 0. we can find an interesting phenomenon.5 0.4 0 Acc: Sample Acc: DMP Acc (m/s2) (c) 1 0.5 0 -0. d End speed is −0.2 0.5 1 Time (s) 1.2 Vel: Sample Vel: DMP 0.05 0.25 Position (m) (b) 0.6 0. b Gaussian Kernels and the final modulation signal f (t).5 2 (a) 0.J Intell Robot Syst 0.1 m/s.1 0.15 0.5 2 -0.2 (d) Fig.5 1 Time (s) 1.5 1 Time (s) 1.15 0.1 0.5 2 0.3 0.5 2 (a) 0. Around 1.1 0. 7a and b.3 0.15 0.005 0 -0.05 0 0.5 2 Acceleration (m/s ) (b) 0.3 Vel: Sample Vel: DMP 0. of the generated trajectory Analyzing the case shown in Fig.position”.1 0 0.

1 [28] was employed to aid our analysis. 6e. Comparing the accelerations shown in Fig. where the trajectory is generated in task space.04 × 10−7 7.09× 10−5 7. 8a and b. This transformation is done by standard inverse kinematics.1. In the following multi-DOF case.45 × 10−5 1.38. our method presents a “position and velocity” attractor. −0. 0.3× 10−3 4. Figure 8 shows the case of a 3-DOF manipulator. when approaching an arbitrary assigned boundary condition.12 × 10−4 err P errV 1.6× 10−2 err P errV Table 2 Accuracy comparison between C2 and tm tm = t f − 0. which we will not describe. and X(t f ) = [−0. ˙ ˙ X(t0 ) = [0. f (t) will be suppressed by v(t) (see Eq. X(t f ) = [0. 0.position” phase track is shown in Fig. we show the accuracy comparison between the parameters C2 and tm . 0. We give a summary in the Appendix. it is inescapable to transform the Cartesian trajectory into a joint space representation.J Intell Robot Syst Table 1 Accuracy of the resulting end-point ˙ y f (m).08. 0. matches to the target scenario described in Section 2. 0.04.125]T. the two curves shown in Fig. 6 and 7 share the same principle.08]T .4 8. 20). 7a and b. for the cases in Figs.9× 10−3 1. 0.15× 10−4 errV 1. this aspect will be more obviously demonstrated.125]T . we can employ six trajectory generators to represent all components (three for position and three for orientation) in Cartesian space. This is due to the . In fact.29. As the assigned final speed y t f is not zero. small jumps exist. The resulting trajectory. 6 and 7. the generated trajectory is very smooth. which is a property of our method.02. we can find that the trained Modulation Function and the Second-Order System “filter out” the discontinuous variation brought from the LSPB based sample trajectory. the Robotics Toolbox V7.65 × 10−6 9. we can see that our method shows a powerful autonomous capability to satisfy boundary conditions with high precision. At the start. the obtained velocities match to the assigned values.3. we can reduce the sample acceleration at the start and end of the LSPB based sample trajectory.2 A Simple Case for a Multi-DOF Manipulator So far our DMP based trajectory generator controls one DOF. −0. Figure 8c shows the velocity components.2 tm = t f − 0. lets the physical manipulator smoothly adapt to the required boundary conditions.05 0.44 × 10−5 ability to adapt to the final boundary conditions.5 × 10−2 C2 = t f − 0. y f (m/s) 0.26. In Table 2. The parameters affect the final accuracy. r(t) will govern the final result. the “slowing down” and “reorienting” shown as Fig. −0. the near-to-the-end transition adjusts itself automatically to obey to this law.10 × 10−4 3. At this point.26. for a 6-DOF robot. From a physics viewpoint. 6f.1. A 3D “acceleration .24. For the N-DOF case. If the peaks are too high to accept. From the cases above. 7b and their integral areas along the time axis must be equal to each other in order to achieve the same ˙ final position. For the following cases. The other two cases shown in Figs. (ωn = 50) tm = t f − 0.37× 10−5 1. This is also reasonable from a physical viewpoint but for real applications.1]T .26. The boundary conditions are: X(t0 ) = [0. We can see that at the final end. with low jerk. quite different from the original DMP framework presented in the literature [10–13]. If l2 is bigger than t f − C2 this will yield better precision.velocity . peaks should be smaller than the limitations of the employed mechanical platform.05. -0. As the acceleration starts from and ends at zero.28 3. just sharing the same time base in order to synchronize their activities and to achieve coordinated motion.48 4. (ωn = 50) C2 = t f − 0. As mentioned before.05 err P 1. shown in Fig. For instance.1 0. 4.7 × 10−3 C2 = t f − 0. As during this period. In order to control the manipulator. we can use N independent such trajectory generators in parallel.26. −0. the peak-to-peak value is bigger than the one from the given sample.

this simulation fulfills our target described in Section 2. f and c.J Intell Robot Syst Fig. (28) Furthermore.005 (b) Ve locity (m/s) 0. 8 Study of a 3-DOF manipulator.2 0. c Velocity components. In this paper. the “deviation” plot shown in Fig. a The LSPB based sample and resulting trajectories in Cartesian space. for the latter M = 40 and h = 400. The two peaks near the two ends describe the automatically generated transition zones (see Fig. In the middle segment.3 0.02 0. Note.2 Y (m) 0. The results show that with the increasing number of kernels the accuracy for both.5 2 0 0 0. 9a.5 1 Time (s) 1. very short transients will always be smoothed by the real platform due to its intrinsic mechanical low-pass filter characteristics.01 0.5 1 Time (s) 1. and h = 10.1.3 X (m) 0. the trajectory is close to the Sample.3 A Complicated Case for a Multi-DOF Manipulator Our DMP based trajectory generator has the potential to deal with very complicated application cases. d. 4. Also. increases. 9b.35 Y Z X (a) 0. As shown in Fig.1 0 0.025 0. Velocity vectors are assigned to start. .1 0 -0. and we cannot impose an initial acceleration on the conjoining (start) point. M = 4. At the two ends. 3. deviations are almost zero. to describe the distance between the corresponding track points (on the Sample trajectory and the resulting trajectory respectively. However. For the former one.1 -0. sharing the same time index). 8d does not mean “positional error”. the manipulator needs to move along a 3D multi-segment path.1 0. non-zero start velocities would only be used for DMP joining and in this case the transition will be smooth due to matching the boundary conditions (end point to next start point) of two subsequent DMPs. for the Second-order system shown in Fig.05 Z (m) Sample DMP -0.2 X Vel Y Vel Z Vel Deviation (m) 0. Here we show such a case and more characteristics of the method will be disclosed. g is that they own different Gaussian kernel parameters. 8a). e. which means that the boundary conditions are satisfied very well. b Plot of the robot model.5 2 (c) (d) fact that. The difference between cases shown in Fig.and endpoints. we define “deviation” as y∗ (t) −y (t) . d Deviation between the sample and resulting trajectories -0.25 0.15 -0.015 0.2 0. Up to now. we use a third-order polynomial to construct the Reference signal r(t). it’s zero initial conditions response follows: 2 ˙ y(t) = ωn te−ωn t . position and velocity.

25 0.5 1 1.J Intell Robot Syst Fig.05 0. g Case uses more and narrower Gaussian kernels: M = 40 and h = 400 0.01 0. the generated result .2 0 0 0.025 0.5 3 0 0 0. e.15 Y (m) 0. The widely employed traditional method is to set some transition zones to disconnect the connected lines and use arcs or higher order functions to smoothly connect them. Here. f Case uses fewer and wider Gaussian kernels: M = 4.25 0.01 0 0 1 Time (s) 2 3 0 0 1 Time (s) 2 3 (d) 1 0.6 0.4 0. 9g.2 0.005 0. 9 A multi-segment trajectory generating and comparison case.4 0. with two-end none-zero velocity constraints.8 Ve loc ity (m/s) (e) 0. Different from this. the robot needs to go along the straight lines defined by the multiple via-points one by one.5 1 1.15 Y (m) 0.5 3 (f) (g) In general. it is not feasible to let a robot track a sharp corner very fast.25 0.2 Z (m) Z X Y (a) Sample DMP 0.1 0.15 0.6 Vel: Sample Vel: DMP Ve locity (m/s) 0. d.1 0.03 0. and h = 10. c. As shown in Fig. b.15 0.3 X (m) 0.3 0.25 0.2 0.15 0.8 Vel: Sample Vel: DMP 0.05 0.2 Z (m) Sample DMP 0.02 0.4 0.2 0.02 0.5 Time (s) 2 2.35 0.2 0.25 0.04 Deviation (m) Deviation (m) (c) 0. our solution deals with this problem more easily and naturally.3 X (m) (b) 0.5 Time (s) 2 2.03 0.2 0.3 0.015 0.05 0. The smallest curvature of the transition function will be dependent on the real platform’s specification.

−0.1 0. Furthermore.5 Time (s) 2 2. 9. a. Ve locity (m/s) Ve locity (m/s) Fig.05 0. in the cases shown in Fig. We could in the same way also implement a different curve using another trajectory y∗ . many intermediate points have to be defined [1] and the construction of the trajectory will become increasingly difficult.2 Sample Spline Via-Point Intermediate Point Z (m) Z (m) 0. 0.1. velocity ˙ conditions are X (t0 ) = [0.5 Ve locity in Cartesian Space 0. sharing the same scenario with the case shown in Fig.3 0.2 0. 10 Spline-based solution comparison cases.35 0.5 3 0. As disclosed here. For the case shown in Fig.3 0. this characteristic is totally different from all traditional solutions and quite attractive for complicated applications.2 0. In fact.25 0.3 0. we don’t need to produce five straight lines and six transitional curves (polynomials or arcs) separately and then connect them one by one. This case also shows another attractive potential of our method: we can use it to produce a complicated trajectory all in one time.02.J Intell Robot Syst “slows down” and closely passes these sharp corners (via-points) autonomously. Please note.1.4 0. 9. Different numbers of intermediate points are equally distributed between the via-points (corners).5 Ve locity in Cartesian Space 0.5 Time (s) 2 2.5 1 1.15 0.2 Sample Spline Via-Point Intermediate Point 0.05 0.15 0. Position accuracy is – as expected – higher than for our method. Without loss of generality. c 4 intermediate points are equally distributed between two neighboring via points.5 1 1.5 3 (c) (d) .3 Y (m) X (m) (a) 0. as boundary conditions can be imposed on our trajectory generator we can produce several bigger sub-trajectories independently and connect them one by one to complete an even more complicated trajectory.35 0.3 0.4 A Comparison Case – Spline-Base Trajectory Generation In Fig.2 0. we did not apply any optimizing technologies here).2 0.25 0. because the following training course does not rely on any specific implementation. as the traditional approaches do.1 0. −0. 4.15 0. using the same scenario as in Fig.15 0. 9. 10. This method can learn well the information contained in the sample trajectory.1 0 0 (b) 0.05]T and ˙ X t f = [0.25 0. d 18 intermediate points are equally distributed between two neighboring via-points.2 Y (m) X (m) 0. two Spline-based trajectories are shown. b. in order to achieve a complex trajectory with an assigned speed profile.15 0. the path segments are straight lines. 9.2 0.25 0.25 0. but velocity in Cartesian space is heavily depending on the position interpolations and the corresponding time indexes of the intermediate points (note. and zero speed are assigned at the remaining corner points 0.15 0.25 0. It is also possible to employ some other optimized solutions to implement the Sample Trajectory Generator.4 0.1 0 0 0. 0]T .3 0. at the two ends. This is a quite interesting advantage of this method.

we can define spatial and velocity constraints of the two ends of the trajectory support. Indirect: by using kernel weights. especially case Fig. contains several aspects which are different from our new approach (despite the fact that our approach was partly derived from DMPs). Direct: by applying chaining. Thus. As this design introduces the boundary conditions in an independent way. − − − DMPs +/− +/− − + (indirect) + indirect + + N 2 + + + Our Approach +/+ +/− + + (direct) + (indirect) + direct + + N+4 6 − − + Splines: Pure mathematical fitting. acceleration is continuous. 4–9]. on the Table 3 Property comparison between three kinds of trajectory generation technologies Property Endpoint / end-velocity control Velocity / acceleration profile control Chaining of primitives Via point control Built-in filter Time dependence Disturbance compensation Interpretability of coefficients Number of kernels/knots Number of free parameters Phase stopping Generalization to different start and endpoints Bandwidth and error control against 2nd order system Splines +/+ +/+ + + (direct) + (indirect) − direct − − 4*N (3rd order) n. and jerk is small. Interpretable means values have a human-understandable meaning. (2) The generated trajectories are smooth: position and velocity profiles are continuous and differentiable. our method automatically arrives at a very good compromise for position as well as velocity accuracy with only a moderate number of kernels (see. with a definite temporal endpoint. without much effort our framework leds to quite flexible results and recalculation of a trajectory is easy once the method has been set up.a. The original DMP framework. against which our methods must “compete”. there is a certain trade-off between position. As normally ωn is low this acts as a low pass filter. as long as the bandwidth of motion control system is higher than the one of our system. Thus. . 10d. In Table 3. Behavior depends on motion servo. The generated trajectory matches the assigned boundary conditions with high precision. the original DMPs had been reformulated from a control theoretical viewpoint. we give a summary comparison on the properties of these solutions some of which will be discussed in more detail next. it is evident that this requires explicit considerations. For this. too. Comment Splines need 5th order to control acceleration. 9. (1) Similar to splines but different from DMPs. In the following we would like to compare our solution with other methods for trajectory generation. Different from that.and velocityaccuracy that needs to be explicitly dealt with when using splines. the trajectory output will be easier to follow by motion control system [23]. This is different from cubic or 5 Conclusions and Application Potential In this paper we presented a novel trajectory generator based on DMPs. Fig.J Intell Robot Syst In the examples shown here the velocity profile is not really acceptable. the path planning stage of a practical task can be simplified greatly. Thus. right). (3) In our approach the generated trajectory sequence is passed through a built-in secondorder system. Most similarly there are Spline-based solutions [1. other hand. While this can be mended by using different support points for the spline.

3. For multiple via-point applications we do not need to manually introduce (the traditionally used) zones for interpolating and connecting two adjacent segments. Our method combines the sample trajectory y∗ and boundary conditions. or generate several trajectory segments separately and then connect them by the pre-specified boundary conditions one by one. However. more easily adaptable. we need to generate sub-trajectories and connect them one by one.. Sussex) in our laboratory. In task space (Cartesian space). For such an application. In the literature [37]. and thereby this simplifies the planning burden greatly. and the transition of the adjacent segments is also adjustable (see Section 2. 29–36]) are certainly not in the focus of this paper. we can implement one complicated trajectory passing closely all via-points at once. All methods presented in this paper have been implemented on a simple robotic manipulator platform (Neuro-Robotics. pitch. Fig.5. it will also work. Our method can be employed not only in task space.3). where not only the key algorithm shown in this paper. which do not match to the control system. as the pre-planning work is more obvious. this method has the potential to allow for some dynamic tasks as mentioned above. Any reasonable required speed profile can be imposed on the generated trajectory. This aspect is quite attractive. box. The method presented in this paper will generate smooth transition on its own. the velocity boundary conditions do not need to be considered. without loss of generality. given independently. we can apply it as shown in Section 4. 9). Our approach presents a uniform framework to deal with simple as well as complex applications. For applications where via-points must be passed exactly. we can impose velocity constraints on the endpositions to achieve also some dynamic tasks. For instance. near C1 . even though they might have perfect mathematical fitting capabilities. 7 and 9). C2 (see Section 2.J Intell Robot Syst (4) (5) (6) (7) (8) (9) higher order Spline-based trajectories. Using the latter approach. (2) When using a complete. At the two ends a manipulator behaves in a very smooth way (see the ends of the paths shown in Figs. e. complex trajectory via-points can be only passed closely.. but also in joint space. The solution to alleviate this problem is to use smaller accelerations for the LSPB based sample trajectory (see Section 2. 9f). etc. In joint space. because when entering the path points. This attractive property is quite obviously supported by the system presented in this paper.3 and the middle of the paths shown in Fig. Note. Conventional industrial applications (e. Suppressing Window Function. if one uses this method to directly generate the trajectories for each joint. to hammer. the robot can do its operations in position space with high accuracy.6) or a longer whole time period T.5.g. but also more low-level driving and interfacing programs for the embedded control system of this platform have been implemented. etc. this method is employed. Our method provides strong flexibility in shaping the trajectory by ways of kernels (see Appendix A. a humanoid robot can imitate the movement profile and produce different kinds of end velocities. the peak values should be below the limitation of the actuators of the employed manipulator. For real applications. Depending on the application.g. there is now quite a rising demand in industry for methods that are smoother. and the kernel numbers determines the actual distance errors (see the case shown in Fig. in a natural way. caused by the quick change of the . 9b and c). The often pursued combination of DMPs with imitation learning is also possible with this framework. The generated trajectory can be very complicated. Several basic experiments and their explanations are given in our preliminary publication [38] of Some limitations also presently exist: (1) We have velocity peaks in the transition zones. The principle is the same. [2. This is where we see some future potential for our method.

which improved the paper. is used to let the Second-Order System approximate the linear segment. 26). we need to ensure that v(t) approaches zero at the start. 16. 29. shown in Eq. For a real application. Here we can arrive at a strategy: given err P (see Eq. t∗ is defined as follows. In summary. 29 is derived from a zero state and it has not taken into account the effect from the Suppressing Window Function. The authors would also like to thank the anonymous reviewers who have made many valuable comments. 29 can be easily solved.2 Accuracy Related Parameters: tm . we believe that this novel trajectory generating technology exhibits great flexibility and applicability. but also in industry. As a consequence of this the tracking error caused by the properties of the motion control system can be evaluated and remains well controlled [23]. ωn is related to this trajectory generator’s dynamic property. (2) Higher ωn brings fast response times. as long as the bandwidth of the motion control system is higher than the one of our system. acceptable acceleration. For practical applications. 7 and 8. Interaction. C2 . (3) Founded by control theory. A. Please note that Eq. we just need to keep in mind that the employed ωn should be lower than the one of the real platform. and please keep in mind that the steady-state error has been compensated by Eq. C1 . As we know. etc). we hope that our work presented in this paper will stimulate further DMP related research and development. It was also supported by the German BMBF BFNT 01GQ0810 project 3a of the University Göttingen. A. l1 and l2 tm is the junction moment of the polynomial segment and the linear segment. Here we give a summary on how to determine them for an application. we need to satisfy t f − tm > t∗ . to be on the safe side. even though the results are very smooth (because it works as a low pass filter). Robotics – under grant agreement No 270273 – Xperience. Equation 29 can be used as a basic reference to determine tm . It means that (t f − tm ) should be long enough to achieve an acceptable error.5. and 24.and end-time as closely as possible in order to let the reference signal r(t)govern the Second-Order System Module’s response to satisfy the given .1 Dynamic Property Parameter: ωn In Eqs. 1+ 2 ωn t ∗ . 17. here. the trajectory output can be easily followed by the motion control system. but when limited by the parameters of a real platform. we need to consider the following trade-off: (1) Too small ωn is meaningless because it will need a too long time to finish a trajectory. Thus.J Intell Robot Syst this work. Thus. the employed t∗ should be bigger than the result shown in Eq. As disclosed in Eqs. and reproduction in any medium. 23. As mentioned there (Section 2. For all the cases shown in this paper we had ωn = 50. Eq. Open Access This article is distributed under the terms of the Creative Commons Attribution License which permits any use. l1 and l2 determine the Suppressing Window Function. provided the original author(s) and the source are credited. distribution. the inertia of the mechanical components and its motion control system has limited response bandwidth. (t f − tm ). (29) This relation is derived from the ramp input response (with zero state) of a second-order system. Then we can obtain an acceptable result (finite end-time. The time duration of the linear segment. By a numerical calculation program.3). C2 . and that this novel trajectory generating technology can be an alternative and widely employed not only in humanoid robots. C1 . Acknowledgements The research leading to these results has received funding from the European Community’s Seventh Framework Programme FP7/2007-2013 – Challenge 2 – Cognitive Systems. err p ≈ e−ωn t ∗ Appendix: Summary of the Parameters There are several free parameters used in this method. the generated result will challenge the motion control and actuation system.

... Process Syst. B. Kawato.. 1547–1554 (2003) 16. K..: An on-line dynamic trajectory generator.. see Figs. C1 and C2 set the inflection points (see Fig. Schaal. Vijayakumar. Tevatia. Kawato. 192–199 (1987) 7. Mohajerian. 15. Pollick. 3(1). but one needs to spend more calculation resources. In: Proceedings of International Symposium of Robotics Research. C.. M. A. (3) Small M and large h. Villani. 68–72 (1984) 5. In: Becker. Castain.: Locally weighted projection regression: an O(n) algorithm for incremental real time learning in high dimensional space.. pp.. pp. J. In: Proceedings of the International Conference on Machine Learning. IEEE Trans. and wandering constraints.. Nakanishi. Syst. Schaal. Linkoping University (2003) 3.. Nystrom. fewer and wider kernels are more suitable. S. D.. 9f and g. thus. Schaal.: Using humanoid robots to study human behavior. We recommend (1) and (2) only. Pastor.: Learning attractor landscapes for learning motor primitives. 561–572 (2003) 11. M. J. and they will let the result exhibit different smoothness. S. P. Electron. S. M. 1c and 8b). IEEE Intell. Schaal.g. Schaal.. R.. we have presented suitable values of them. Neural Inform. Oriolo.H. optimal control . Res.. S. Hoffmann. S.V.: A theory for cursive handwriting based on the minimization principle.. Atkeson. G. IE-34(2). 21. Int.G. A. Obermayer.: On-line polynomial trajectories for robot manipulators. J. Ind. F. Kotosaka. 73(1).. and bigger values of them enforce the zeroapproach.: Straight line manipulator trajectories.. Int.: Formulation of joint trajectories for industrial robots using B-splines. the tracking accuracy between the given path is expected to be high). does not make sense. Patel. 9.. Nakanishi. Biol. S. 38–48 (1985) 8. L.. Prog. Res. which can be directly used for many (also other) applications. during the whole process. Hale. Doty.. Paul.. E. acceleration. R.J Intell Robot Syst boundary conditions. In summary. R. 165(1).. J. Riley. (eds.. Norrlof. 893–901 (1999) 6. as the middle of the path accuracy is not a critical issue. A. Shibata. 1079–1086 (2000) 15.A. G. vol.3 Flexibility Related Parameters: M and h M and h are related to the middle of the generated trajectory.P. Brain Res. Cybern. the result is similar to (2). 425–445 (2007) 14. The generated trajectory will mostly follow r(t).H. (2) Small M and h: This should be employed. 18(2).. the choice is depending on the application requirements: if we need to follow a path as accurately as possible. Res.g. the trajectory is smoother and “looks” more natural (human like). S. S.: Path generation for industrial robots.: Robotics: Modelling. L. Rob. A.. for example. they are related to the transition zone of this method (e.E. References 1..L.. bigger l1 and l2 bring fast zero-approaching performance but induce higher velocity peaks as shown in Fig.: The three-cubic method: an optimal online robot joint trajectory generator under velocity. R.a unifying view. Vijaykumar. this just brings some peaks to f (t) and small ripples to the result and. Park. P. J. Ijspeert.) Adv.: Learning movement primitives.H. for a humanoid robotic task. Ude. Int. 4(2)... K. Dev. Thompson. Possible combinations are as follows: (1) Large M and h means more and narrower basis functions. Peters. Schaal. Ijspeert. Neural Netw. Schaal. IBM J.. pp. S. concerning M and h. pp. if not. Ijspeert. Chand. In the cases shown above.J. T. In: Proceedings of the IEEE International Conference on Robotics and Automation. S. M. 5). J.. 23(4). J. H. Peters.: Movement imitation with nonlinear dynamical systems in humanoid robots. Taylor.. 1398–1403 (2002) 12. 3–13 (1995) 10. S. Ijspeert. Please compare cases shown in Fig. Planning and Control. we need to utilize narrower and more Gaussian kernels. S.: Dynamics systems vs. J.. Sciavicco. Bazaz. In this way. All of them are related to the boundary condition accuracy of the trajectory generator presented in this paper. Y.. A. 46–56 (2000) 4. Department of Electrical Engineering. Rob... Tondu.: Movement reproduction and obstacle avoidance with dynamic movement primitives and potential fields.J. and they can be tuned/determined during a real task. A. In: Proceedings of the IEEE-RAS Interna- . M. 424–436 (1979) 9. S. Res. Springer (2009) 2. B. Furthermore. S. Wada..: Reinforcement learning of motor skills with policy gradients. 682–697 (2008) 13. Technical Report LiTH-ISY-R-2529. Rob. Kawato. J. (4) Large M and small h.. Thrun. Nakanishi. Siciliano.G. 15(4). Generally. Schaal. S. This should be employed for applications requiring high accuracy (e. S.

Chen. M.G..S. 31. Rob.: On the design of strictly positive real transfer functions. Dubowsky.D. Dörr. Syst. IEEE Trans. Park. In: Proceedings of the IEEE International Conference on Robotics and Automation. C.: Joining movement sequences: modified dynamic movement primitives for robotics applications exemplified on handwriting. 38. 364–369 (1988) Tarn. 28–33 (2009) Pongas. M.: Motion planning in phase space for intelligent robot arm control. 2911–2916 (2005) Kober. A. 42(4)... Schaal.. pp.D. M. Croft. 21. In: Proceedings of the IEEE International Conference on Robotics and Automation.. 145–157 (2012) Dorf. H. In: Proceedings of the IEEE/RSJ International Conference on Intelligent Robots and Systems. Mag. Int.. 19. Prentice Hall (1999) Spong.A.. 20.: Robot Dynamics and Control.: A robotics toolbox for MATLAB. Asfour. A. Pastor. Rob. 99–106 (2008) Constantinescu. Wörgötter. Circuits Syst. Tamosiunaite. Schaal. M. Mulling.: Task adaptation through exploration and action sequencing.N.: On algorithms for planning S-curve motion profiles. Peters.M. F.. Billard. 8th edn. K.: Frequency domain conditions for strictly positive real functions. In: Proceedings of the IEEE-RAS International Conference on Humanoid Robots. In: Proceedings of the Autonome Mobile Systeme. R. 53–54 (1987) Huang. IEEE Robot. Addison-Wesley (1998) Pastor. B.. Ude. Res.A. A.: Asymptotic disturbance rejection for hammerstein positive real systems.: Learning and generalization of motor skills by learning from demonstration. Fundam.. pp.. 23.. McKay. pp. pp. 33. J. B. Res. Hoffmann. J. T. Ude. E.. 853–858 (2010) Kulvicius.: Unsupervised recognition and classification of manipulations: grouping actions and objects.: Minimum-time control of robot manipulators with geometric path constraints. In: Proceedings of the IEEE Conference on Decision and Control. 30(6). Wörgötter. Int. 32. S.. 531–541 (1985) Bobrow. Automat. S. D. 763–768 (2009) Nemec. pp. K. I. J. C. 35. pp. IEEE Trans. H. pp. In: Proceedings of the IEEE-RAS International Conference on Humanoid Robots. pp.. B. 40.G.I. Saridis.. F.: Accurate position and velocity control for trajectories based on dynamic movement primitives. 569–573 (1999) Sane. Visioli...H. Int. IEEE Trans.. J... 2587–2592 (2009) Gams. Tamosiunaite. A. Dellen.. D. pp..: Neural Networks: A Comprehensive Foundation. J..C. Visioli. A.. Scholkopf. 39...J. Contr. A. K. D. Abramov.: An interval algorithm for minimum-jerk trajectory planning of robot manipulators..E. J. T. K.. Tamosiunaite. Wörgötter. Adv. E.: Smooth and timeoptimal trajectory planning for industrial manipulators along specified paths. A.: Learning new basic movements for robotics. Ning. Automat. 1507–1514 (1992) Piazzi..H. 11(3). . Contr. R. Safonov.: Design of strictly positive real systems using constant output feedback.W.: Movement Templates for Learning of Hitting and Batting... 3–17 (1985) Aksoy. 2nd edn. IEEE Trans. 5006–5011 (2011) Marquez. 42. Ind. 28. Peters.K. K. 105–112 (2009) Kober.. T. 223–249 (2000) Shin. A.. P. O. Kromer. M. Ng. J. Bejczy. 22. 610–616 (2009) Haykin. J.H. Xi. A. 34. Theory Appl. 30(10). Syst. F. J. Bernstein. A. T. pp. 364–374 (2003) 17. IEEE Trans. In: Proceedings of the IEEE International Conference on Robotics and Automation. 32(1). G.. Lampert. 26.J. P. D. J.: Rapid synchronization and accurate phase-locking of rhythmic motor primitives. Ning. K. 1229–1249 (2011) Ning. Schaal.. 4(1). 18.: Minimum jerk path generation. 36. 28(1). John Wiley & Sons (2004) Corke. T. H.J. Technol. 2nd edn.: Biologically-inspired dynamical systems for movement generation: automatic real-time goal adaptation and obstacle avoidance... Autom.. F. P. 24–32 (1996) Kyriakopoulos. Robot.-H. H. Robot. In: Proceedings of the IEEE International Conference on Robotics and Automation. Automat.J Intell Robot Syst tional Conference on Humanoid Robots. S. 91–98 (2008) Hoffmann. Control Syst. Gibson.. N. Ioannou.E. Vidyasagar. 30. Kulvicius. IEEE Trans. Robot. Hutchinson. In: Proceedings of the IEEE/RSJ International Conference on Intelligent Robots and Systems. 214–218 (1995) Ioannou. J. Wörgötter.S. 37.: Timeoptimal control of robotic manipulators along specified paths. 5(1)..: Global-minimum-jerk trajectory planning of robot manipulators. P. In: Proceedings of the IEEE International Conference on Robotics and Automation. 27. pp. S.C..: Generalization of example movements with dynamic systems.: Modern Control Systems. P. Electron. 41. 47(1).S. 3. pp. 44(3). J. Maroulas. N. M. S. S. Damaren. IEEE Trans. 1924–1927 (1997) Nguyen. Bishop. K. 17(5).J... 29... 25. 24. Gang. Contr. C. T.. 140–149 (2000) Piazzi..

Are you sure?

This action might not be possible to undo. Are you sure you want to continue?

We've moved you to where you read on your other device.

Get the full title to continue

Get the full title to continue listening from where you left off, or restart the preview.

scribd