Online Trajectory Generation in Robotics
Online Trajectory Generation in Robotics
Volume 58
On-Line Trajectory
Generation in
Robotic Systems
Basic Concepts for Instantaneous
Reactions to Unforeseen (Sensor) Events
ABC
Professor Bruno Siciliano, Dipartimento di Informatica e Sistemistica, Università di Napoli Federico II,
Via Claudio 21, 80125 Napoli, Italy, E-mail: siciliano@[Link]
Professor Oussama Khatib, Artificial Intelligence Laboratory, Department of Computer Science,
Stanford University, Stanford, CA 94305-9010, USA, E-mail: khatib@[Link]
Professor Frans Groen, Department of Computer Science, Universiteit van Amsterdam, Kruislaan 403,
1098 SJ Amsterdam, The Netherlands, E-mail: groen@[Link]
Author
Torsten Kröger
Technische Universität Carolo-Wilhelmina zu Braunschweig
Institut für Robotik und Prozessinformatik
Mühlenpfordtstraße 23
D-38106 Braunschweig
Germany
E-mail: [Link]@[Link]
DOI 10.1007/978-3-642-05175-3
Springer Tracts in Advanced Robotics ISSN 1610-7438
This work is subject to copyright. All rights are reserved, whether the whole or part of the material is
concerned, specifically the rights of translation, reprinting, reuse of illustrations, recitation, broadcasting,
reproduction on microfilm or in any other way, and storage in data banks. Duplication of this publication
or parts thereof is permitted only under the provisions of the German Copyright Law of September 9,
1965, in its current version, and permission for use must always be obtained from Springer. Violations
are liable for prosecution under the German Copyright Law.
The use of general descriptive names, registered names, trademarks, etc. in this publication does not
imply, even in the absence of a specific statement, that such names are exempt from the relevant protective
laws and regulations and therefore free for general use.
Typeset & Cover Design: Scientific Publishing Services Pvt. Ltd., Chennai, India.
Printed in acid-free paper
543210
[Link]
Editorial Advisory Board
Oliver Brock, TU Berlin, Germany
Herman Bruyninckx, KU Leuven, Belgium
Raja Chatila, LAAS, France
Henrik Christensen, Georgia Tech, USA
Peter Corke, CSIRO, Australia
Paolo Dario, Scuola S. Anna Pisa, Italy
Rüdiger Dillmann, Univ. Karlsruhe, Germany
Ken Goldberg, UC Berkeley, USA
John Hollerbach, Univ. Utah, USA
Makoto Kaneko, Osaka Univ., Japan
Lydia Kavraki, Rice Univ., USA
Vijay Kumar, Univ. Pennsylvania, USA
Sukhan Lee, Sungkyunkwan Univ., Korea
Frank Park, Seoul National Univ., Korea
Tim Salcudean, Univ. British Columbia, Canada
Roland Siegwart, ETH Zurich, Switzerland
Guarav Sukhatme, Univ. Southern California, USA
Sebastian Thrun, Stanford Univ., USA
Yangsheng Xu, Chinese Univ. Hong Kong, PRC
Shin’ichi Yuta, Tsukuba Univ., Japan
ON
European
STAR (Springer Tracts in Advanced Robotics) has been promoted un- ROBOTICS ***
***
***
***
Research
der the auspices of EURON (European Robotics Research Network)
EUR
Network
There is always an easy solution to every
human problem — neat, plausible, and wrong.
Henry Louis Mencken (1880–1956)
Foreword
By the dawn of the new millennium, robotics has undergone a major trans-
formation in scope and dimensions. This expansion has been brought about
by the maturity of the field and the advances in its related technologies. From
a largely dominant industrial focus, robotics has been rapidly expanding into
the challenges of the human world. The new generation of robots is expected
to safely and dependably co-habitat with humans in homes, workplaces, and
communities, providing support in services, entertainment, education, health-
care, manufacturing, and assistance.
Beyond its impact on physical robots, the body of knowledge robotics has
produced is revealing a much wider range of applications reaching across di-
verse research areas and scientific disciplines, such as: biomechanics, haptics,
neurosciences, virtual simulation, animation, surgery, and sensor networks
among others. In return, the challenges of the new emerging areas are prov-
ing an abundant source of stimulation and insights for the field of robotics.
It is indeed at the intersection of disciplines that the most striking advances
happen.
The goal of the series of Springer Tracts in Advanced Robotics (STAR)
is to bring, in a timely fashion, the latest advances and developments in
robotics on the basis of their significance and quality. It is our hope that the
wider dissemination of research developments will stimulate more exchanges
and collaborations among the research community and contribute to further
advancement of this rapidly growing field.
The monograph written by Torsten Kröger is the outcome of six years of
work by the author during his doctoral thesis. The book focuses on sensor
integration in robotic manipulation control systems, and in particular on the
instantaneous planning of motion trajectories in reaction to unforeseen sensor
events, such as failures or more simply a change of reference frame or control
space. The supporting theoretical tool is hybrid switched-system control en-
abling to switch from sensor-guided motion, e.g., under force/torque or visual
servo control, to sensor-guarded motion and vice versa. The resulting on-
line trajectory generation algorithm serves as an intermediate layer between
X Foreword
Naples, Italy
September 2009 Bruno Siciliano
STAR Editor
Preface
the years. After our first meeting in 2003, we met sporadically, and we always
had great dialogs that were always very fruitful for me.
I should like to give a special word of thanks to the whole staff of the
Institut für Robotik und Prozessinformatik. The friendly and cooperative
environment is preeminent. In particular, I owe a debt to Daniel Kubus. He
proofread the manuscript, and he has always been an excellent and competent
discussion parter who supported me in manifold ways.
Furthermore, I would like to express my gratitude to my former diploma
supervisor and later colleague, Bernd Finkemeyer. He belongs to the most
reliable and respectable persons I have met in my whole life. The core of
Chap. 7 of this book is based on his ideas, approaches, and experiments.
Although he left the university, we still discuss and meet regularly, which
very often leads to valuable new ideas.
During the development of the on-line trajectory generation algorithms,
a number of mathematical problems occurred, and I am very grateful to
Professor Sándor Fekete, Professor Harald Löwe, and Professor Rainer Löwen,
all of whom gave me immediate support in a very efficient way.
Michael Marschollek gave me a short introduction to neurophysiology and
very good references to this field, such that I could write a subsection about
the neurophysiological system of human beings in order to compare the re-
flexes of humans and robots.
All diploma and master students who worked under my supervision have
earned great tribute. Especially, Michaela Hanisch, Christian Hurnaus, and
Adam Tomiczek strongly supported me with their efforts, discussions, and
ideas. All three worked hard on the first ideas and implementations of the
concept of on-line trajectory generation.
Many thanks to all my friends in Braunschweig and in other places — we
really had a great time during the past eleven years of study. I will never forget
this lovely period of life. Finally, I thank my family for their outstanding aid
during all my years of study.
Braunschweig,
January 2009 Torsten Kröger
Abstract
1 Introduction . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1
1.1 Robot Motion Control . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1
1.1.1 Path Planning and Trajectory-Following
Operations . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2
1.1.2 Sensor-Guided Robot Motion Control . . . . . . . . . . . . . . 2
1.1.3 Verbal Problem Formulation and Motivation for
This Book . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3
1.1.4 Definition: Sensor-Guarded Robot Motion
Control . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 5
1.2 Excursion: The Neurophysiological System of Human
Beings . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 6
1.3 Outline of This Book . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 7
References . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 213
Chapter 1
Introduction
Sensor integration belongs — without any doubt — to one of the key tech-
nologies for the future advancement of robotic systems. This introductory
chapter describes the subject of on-line trajectory generation (OTG) and its
relation to (multi-)sensor integration and sensor-based control in the field of
robot technology. Furthermore, it contains a brief outline of this monograph.
T. Kröger: On-Line Trajectory Generation in Robotic Systems, STAR 58, pp. 1–9.
[Link] c Springer-Verlag Berlin Heidelberg 2010
2 1 Introduction
Fig. 1.1 Basic outline of an example scheme for joint space control.
simple concept of Fig. 1.1 as the basis and assume that the robot is equipped
with some sensor system (e.g., a force/torque sensor or a computer vision
system) that delivers a signal s(t). Here, we consider a sensor as a generic
device delivering a signal depending on the overall system state, that is, the
robotic system with its entire environment. The robot motion of one single
control cycle depends on the sensor signal(s) of the current control cycle. The
respective controller for this signal acts in task space and uses its command
variable sd (t) as well as the position feedback p(t) to generate new set-points
pd (t), ṗd (t), and p̈d (t). These values are transformed back into joint space
and act as command variables for the joint controller. It is obvious that this
system can react to arbitrary situations, states, and events as long as they
are detected by the sensor system. The reaction behavior only depends on
the transfer function of the controller for the sensor signal s(t).
Fig. 1.3 Very abstract example of a scheme for sensor-guided robot motion control.
4 1 Introduction
Fig. 1.4 Very simple scheme to illustrate the subject of this book.
the realization of practically relevant systems, both kinds of control are re-
quired — of course. It is even necessary to combine both and use them at the
same time; then some system DOFs are guided based on some sensor sig-
nal, and others are controlled with regard to a specified trajectory. A simple
example of a system with three independent translational DOFs would be
a motion command, for which force control in z-direction, distance control
in y-direction, and trajectory-following control in x-direction is applied. The
literature is full of approaches, descriptions, and research on sensor-based
control. Force/torque control has had a dedicated community since the be-
ginning of the 1980s as well as the field of visual servo control has since the
beginning of the 1990s. The same is of course true for the field of trajectory
generation for robotic systems; here the roots can be found in the 1960s. On
the other hand, we have to wonder, why these proven concepts and technolo-
gies can hardly be found in commercially available robotic systems.
Major problems appear when all these fields are merged together: We must
be able to switch abruptly at unforeseen time instants from one kind of robot
control to another. If we arbitrarily switch one or more DOFs from trajectory-
following control to sensor-guided control, this problem is usually a solved.
By using the transfer function of a desired controller, command variables
for lower-level control can be generated at any time instant. But how can we
switch one, some, or all DOFs of a robotic system from sensor-guided control
to trajectory-following control? If we consider a robot in an arbitrary state
of motion how can we calculate a trajectory if we want the robot to react
instantaneously to unforeseen (sensor) events?
This is the central question of this work. Its answer allows us to change
trajectory parameters for one or more DOFs at any time instant and in any
arbitrary state of motion. Thus, we can not only close the significant gap in
the loop depicted in Fig. 1.4, but we can furthermore influence and change
a currently executed trajectory in one or more DOFs at any arbitrary time
instant.
In order to make a strong differentiation from similar fields: This work
does not contain any path planning methodologies. As depicted in Fig. 1.5,
OTG acts as an interface between high-level motion planning and low-level
joint control.
1.1 Robot Motion Control 5
Fig. 1.5 Abstract three-layer model for robot motion control in accordance with
[36].
In the moment of contact detection, for example, the control system may
immediately and abruptly switch the respective controllers for all DOFs in
contact from trajectory-following control to force/torque control. A second
obvious example of the field of visual servo control is the instantaneous re-
action of a robotic system to any predictable or unpredictable event: The
manipulator of [142] plays the parlor game Jenga [107] and has to interrupt
any motion as soon as the game tower topples.
The fundamental achievement of sensor-guarded motions is that robotic
systems become enabled to react instantaneously to unforeseen (sensor)
6 1 Introduction
events — similar to reflexes of living beings. Due to this absolutely new devel-
opment, a new philosophy for robot control architecture may become possible.
Since this development has rarely been considered in the robotics research
literature on control systems technology, the next chapter briefly investigates
how the neurophysiological system of human beings performs a reflex motion.
Fig. 1.6 Greatly simplified scheme of human neurophysiological control loops and
general components of a reflex arc in accordance with [262].
1.3 Outline of This Book 7
figure is to transfer the principle of human motor skills (in particular re-
flexes) to the engineering area.
If we unknowingly touch a very spiky object and suddenly perceive pain,
we immediately pull our hand away in a reactive manner (without thinking,
that is, without global motion planning). The event of touching the spiky
object activates a stimulus to the sensory receptors 1j in our skin, which
respond by producing a graded generator potential. This potential is con-
ducted to our spinal cord by sensory neurons 2j. In the simplest type of
reflex, a monosynaptic reflex, the integrating center 3j in our spinal cord
is a single synapse between a sensory neuron and a motor neuron. Speaking
in the language of an engineer, a synapse is a kind of a switch, comparable
to a transistor. More often, the integrating center consists of more than one
synapse, which is then called polysynaptic reflex arc. Polysynaptic reflexes
enable the involvement of more than one muscle to perform more complex
motions, for example, pulling the whole arm, including the hand, away from
something. The impulses triggered by the integrating center propagate from
the central nervous system along a motor neuron 4jto the part of the body
that will respond. This part, a muscle or a gland, is called an effector 5j,
which responds to the motor nerve impulse and performs the resulting move-
ment — the reflex.
Such a synaptical reflex arc can be regarded as a low-level control loop
for sensor-guarded motions. Above this loop, we can find further anatomic
systems for our motor skills, in particular the cerebrum and the cerebellum.
These parts of our brain perceive the stimulus after the reflex motion has
been initiated and are responsible for higher-level motion planning. To build
a bridge from this neurophysiological excursion back to the field of robotics,
the human eyes were considered in Fig. 1.6 to have an analogousness to visual
servo control.
The quintessence of this excursion is that we do not have a part in the
field of robot motion control that is comparable to the human reflex arc.
It seems obvious that such a system would make advances in robotics. The
whole wide field of sensor-based robot motion control could be reorganized in
order to open the gate to new and advanced robotic applications. The major
requirement for such a technological advance is that motion control set-points
can be generated from any arbitrary state of motion under consideration of
dynamic and kinematic constraints. Developing, describing, and evaluating
such a module, which is responsible for providing a kind of robot reflex, is the
aim of this work.
research. Since the actual algorithm for OTG, which will be presented later,
is rather large in scale, we describe it strictly mathematically in order to
keep this monograph compact. For this purpose, it is necessary to introduce
dedicated notations as well as some conventions, which is done in Chap. 3.
Based on this, a formal problem formulation for this work as well as a clas-
sification of different types of OTG are given. In order to deduce the central
algorithm step by step, Chap. 4 delivers the solution for the one-dimensional
case, and Chap. 5 transfers this solution to systems with multiple DOFs. One
special case, which is practically very important, is the on-line generation of
straight-line trajectories; the following chapter extends the existing algorithm
to enable the generation of homothetic trajectories.
The central novelty of this work is an open-loop control module, which is
able to generate time-optimal and time-synchronized motion trajectories for
any mechanical system with multiple DOFs during runtime, that is, on-line
during every low-level control cycle. This enables new advances for multi-
sensor integration in robotic systems, and hybrid switched-control systems be-
come suitable for a wide range of robotic applications. How hybrid switched-
systems control can be used for the realization of multi-sensor-based control
is addressed in Chap. 7.
Subsequently, simulation and real-world experimental results are discussed
in Chap. 8. Besides the exemplary description of several switching events,
we describe the OTG interface in relation to higher-level motion planning
1.3 Outline of This Book 9
This work spans and combines a wide range of research topics. In order
to classify this work within the robotics research landscape, this chapter
provides a survey about all adjoining fields. Starting with a short section
on terminology, the states of the art in technology as well as in robotics
research are surveyed.
2.1 Terminology
Before going ahead with the literature survey, some terms and words are
briefly defined for the context of this book in order to prevent misunder-
standings and misusages as often happens in literature.
Pose/position/orientation
A pose is considered position and orientation in Euclidian space. For all
other spaces regarded in this book, for example, the joint space or any
other multi-dimensional space, we only consider the term position for all
DOFs. For example, position control in joint space takes all DOFs into
account, while position control in Cartesian space only includes the three
translational DOFs.
Path planning
A path is a geometric representation of a plan to move from a start to a
target pose. The task of planning is to find a collision-free path among a
collection of static and dynamic obstacles. Path planning can also include
the consideration of dynamic constraints such as workspace boundaries,
maximum velocities, maximum accelerations, and maximum jerks. We dis-
tinguish between on-line and off-line path planning algorithms. Off-line
planned paths are static and calculated prior to execution. On-line meth-
ods enable the path (re-)calculation and/or adaptation during the robot
motion in order to react to and interact with dynamic environments. This
means that a robot moves along a path that has not necessarily been
computed completely, and which may change during the movement. The
T. Kröger: On-Line Trajectory Generation in Robotic Systems, STAR 58, pp. 11–31.
[Link] c Springer-Verlag Berlin Heidelberg 2010
12 2 Literature Survey: Trajectory Generation
2.2 Overview
As depicted in Fig. 1.5 (p. 5), the field of on-line trajectory generation ad-
joins to (low-level) robot motion control and to (higher-level) robot motion
planning, such that it exactly lies in-between these fields. Since these fields
belong to the most classical ones in robotics research, we can find plenty of
technological and scientific contributions within the last four decades that
will be surveyed here.
Fig. 2.1 shows an overview of the treated topics and how this work is
related to them. After the reviews in Sec. 2.3 and Sec. 2.4, we will explain in
Sec. 2.5 how the work is related to fields depicted in Fig. 2.1.
2.3 State of the Art in Robot Technology 13
Fig. 2.1 Overview and logical coherence of areas treated in this chapter. The
terminology is based on Sec. 2.1.
in the feedback control loop. Even the sensor tracking option only provides
the possibility of modifying a pre-planned trajectory, but the robotic arm
remains position controlled. Compared to this, the C4G OPEN TM interface
gives users access to the low-level servo control loops [58, 59]. An external PC
communicates with the C4G OPEN TM controller in cycles of one millisecond
and can even set torque set-points, such that the user can absolutely freely
develop his own control schemes. This system is excellent for research and
development purposes, and users can set up sensor-guided motion control
schemes having sensors in the feedback control loop.
FANUC Ltd. [79] provides options for computer vision [77] and force/torque
sensor [76] integration for the R-30iA Mate TM controllers [78]. Nevertheless,
these sensors are not part of the feedback control loop; the signals are used
for planning a trajectory prior to execution.
Kawasaki Heavy Industries Ltd. [123] offers robot control units named D-
Controller TM [124], which are quite closed and only accessible via the individ-
ual and plain AS-Language TM [125]. Embedding sensors in feedback control
loops is not possible in any way.
KUKA Roboter GmbH [153] also applies a dynamic model for the robot
motion controller KR C2 TM [152] in order to achieve shorter cycle times and a
lower trajectory-following control error. KUKA offers the possibility to embed
sensor systems via digital and/or analog input and output ports as well via
field bus systems [151]. One interesting system is the Occubot TM system [150],
a robot system for car seat testing. Here, forces and torques are measured in
six axes during one single test cycle, and these measured values are used to
adapt the trajectory of the next test cycle, such that a desired force can be
exerted after a certain number of test cycles.
The robotics division of Mitsubishi Heavy Industries Ltd. [186] provides
robot painting systems [185], which are generally not open for any kind of sen-
sor integration. Mitsubishi offers a so-called open architecture, which enables
customers to interface the robot control unit in time steps of seven millisec-
onds. Reseller companies such as Battenberg Robotic [18] use this interface
for individual add-on controllers.
MOTOMAN Inc. [189] provides the MOTOMAN NX100 TM [190] con-
troller for their industrial robots. Neither the previously mentioned
manufacturers nor the NX100 TM of MOTOMAN Inc. provide the feature
of embedding a sensor in the feedback control loop [191].
The Kantana TM manipulator [192] of the Neuronics AG [194] is based on
the ideas of using mechanical components of very light weight, of using low-
power drives, and of mounting foam around all feather-edged parts of the arm,
so that the system can be used in human environments without any further
protection mechanisms. The programming interface [193] is very open, such
that users can develop their own control schemes, but the standard system
does not offer possibilities of integration in the feedback control loop.
Stäubli Faverges SCA [250] offers robot control units, for example, the
CS8C TM controller [248], with digital and/or analog inputs and outputs,
2.4 State of the Art in Robotics Research 15
which can be used for the retrieval of sensor signals. But as also stated for
all other commercial robot manufacturers, it is not possible to put a sensor
into the feedback loop of the controller [249]. An interesting option offered by
Stäubli is the Low Level Interface LLI TM [247], which is comparable to the
solution C4G Open TM of Comau Robotics. Pertin et al. describe in [207] how
the LLI TM can be used as an interface for individual control schemes. The
LLI TM accepts position and velocity set-points as well as velocity and torque
values for feedforward control.
Fig. 2.2 Brief classification of this survey based on the terminology of Sec. 2.1.
Off-line path planning methods are not directly related to this work, but as
on-line path planning concepts are often based on off-line ones, we refer to a
selection of surveys and books: Lozano-Pérez [169], Lindemann and LaValle
[166], González-Baños, Hsu, and Latombe [101], and LaValle [156].
16 2 Literature Survey: Trajectory Generation
Even if off-line trajectory planning is not a subject in this work, many on-line
trajectory planning concepts are rooted in ideas from off-line concepts. Roth
and Kahn [120] belong to the pioneers in the field of time-optimal trajectory
planning. In 1971, they published methods of optimal, linear control theory
and achieved a near-time-optimal solution for linearized manipulators. The
resulting trajectories are jerk-limited and lead to smaller trajectory-following
errors and to less excitation of structural natural frequencies in the system.
In 1982, the work of Brady [29] introduced several techniques of trajectory
planning in joint space and Paul [203, 204] and Taylor [256] published works
about the planning of trajectories in Cartesian space in parallel to Brady.
Lin, Chang, and Luh [165] published another purely kinematic approach in
1983 as did Castain and Paul [43] in 1984 and Chand and Doty [44] in 1985.
In 1984, one of the early publications of Hollerbach [114] first introduced
the consideration of the nonlinear inverse robot dynamics for the generation of
manipulator trajectories. The aim here is to exhaust the maximum actuator
forces and/or torques as well as possible in order to achieve shorter execution
times. The basic idea is to represent the path as well as the trajectory by
a set of parametric functions, which are employed in the dynamic model of
the manipulator. This way, the optimization problem can be described for an
arbitrary number of DOFs. Later works of Hollerbach’s group are based on
this idea [10, 11, 223].
During the middle of the 1980s, three groups developed techniques for
time-optimal trajectory planning for arbitrarily specified paths: Bobrow,
Dubowsky, and Gibson [27, 28], Shin and McKay [238, 239], and Pfeiffer
and Johanni [208]. Based on the approach of Hollerbach, that is, describ-
ing the robot dynamics of dependence on a parametric path representation,
a maximum acceleration can be calculated for each point of the trajectory.
These maximum acceleration values correspond to maximum actuation forces
and/or torques. Furthermore, maximum actuator velocities are taken into
account, such that a characteristic curve for the maximum velocity can be
calculated. This so-called maximum velocity curve describes the maximum
velocity for each trajectory point and has to be regarded during the trajec-
tory planning phase, that is, the time-optimal trajectory must avoid crossing
the limit curve in order to minimize execution time. A time-optimal trajec-
tory can be found by determining the switching points between positive and
negative maximum acceleration values, which have been calculated before-
hand. The algorithms of the groups around Bobrow, Pfeiffer, and Shin differ
in their way to find these switching points.
Independently from these three groups, Rajan [218] presented a spline-
based approach for minimum-time motion planning (cf. Fig. 2.2). Here an
initial and a goal position are given in configuration space; path and trajectory
18 2 Literature Survey: Trajectory Generation
industrial robot. The research group of von Stryk published further works on
trajectory optimization methods, for example, [109]. In 1996, Žlajpah [270]
slightly extended the basic approach of Bobrow, Pfeiffer, and Shin by embed-
ding task constraints. The original algorithm becomes redefined and different
areas below the maximum velocity curve are defined and taken into account
during the calculation of the switching points.
Based on Lie groups and Riemannian geometry, which were applied to-
gether in research on robotics dynamics by Park, Bobrow, and Ploen in 1995
[201], Žefran, Kumar, and Croke [269] suggested an off-line method for the
generation of task space trajectories from an initial to a target pose (both
with zero velocities); this is an approach that considers multiple DOFs. The
key contribution of this work is a measure for the smoothness of a multi-
dimensional trajectory that is supposed to be optimized by the proposed
algorithm. Furthermore, dynamic system constraints such as boundary ve-
locity and acceleration curves are considered.
A method for the generation of minimum-jerk trajectories, but without
consideration of robot-dynamics, was contributed by Piazzi and Visioli [209,
210] in 1998 and 2000. In a follow-up work from 2002, Bianco and Piazzi
embedded robot dynamics into this approach [26].
A general overview of basic off-line trajectory planning concepts is pre-
sented in the textbook of Khalil and Dombre [126]. A more recent approach
of Lambrechts, Boerlage, and Steinbuch from 2004 suggests the generation of
very smooth trajectories, whose jerk derivatives are limited as well [155], but
there, only one DOF-systems are considered, and the method requires initial
and goal velocities of zero.
The overview of low-level robot motion control schemes in the Springer Hand-
book of Robotics [55] was already mentioned earlier. Additional textbooks de-
scribing this subject are by de Wit, Siciliano, and Bastin [278], by Kozlowski
24 2 Literature Survey: Trajectory Generation
[135], by Sciavicco and Siciliano [229], and by Khalil and Dombre [127]. Many
of the described approaches are based on the early works of Whitney [274]
and Paul [206]. Another important issue is embedding rigid body dynamics to
set up a dynamic model of the robot. The works of Featherstone [81, 82, 83]
are to be mentioned as fundamental to this field.
In the following part, we will focus on hybrid switched-system control,
which constitutes the next control layer above the actuator controller. For a
hybrid switched-system controller, it is essential that the underlying actuator
control scheme is stable, that is, if we cannot prove stability for the inner
control loops, stability for the outer loops will be even harder to prove.
Fig. 2.3 Abstract control scheme of a hybrid switched-system for one single DOF,
that is, one single actuator. The dotted vertical lines will be explained in Sec. 2.5
(p. 30).
2.4 State of the Art in Robotics Research 25
that the velocity controller does not consider target positions and only leads
a single DOF to a certain velocity under given acceleration and/or jerk (addi-
tionally also the derivative of the jerk) constraints. Therefore, it is of a much
simpler manner than the open-loop position controller. The system depicted
in Fig. 2.3 can, of course, be extended to multiple DOFs, as will be shown in
Chap. 7 (p. 105).
When we take a multi-DOF robotic manipulation system with many dif-
ferent sensors for granted, and when we consider a system that enables the
execution of sensor-guided motion control commands in any DOF, it becomes
self-evident that we need to switch discretely between several continuously
working (open- and/or closed-loop) controllers at any time. Hence the anal-
ysis of hybrid switched-system control is one fundamental part of the work
presented here.
Especially the works of Branicky [30, 31] and Liberzon [163, 164] provide
elementary concepts to develop and analyze hybrid switched-system control
techniques. In particular the stability analysis is of fundamental interest here,
because the stability of a switched-system cannot be assured by the stability
of each single sub-controller. To prove the stability of hybrid switched-systems
can be extremely difficult and many researchers are working on analyzing such
stability questions. It may happen that a set of stable subsystems becomes
unstable if the switching between them occurs inappropriately [32, 164, 277].
In the field of stability analysis, we can distinguish between techniques for
linear [66, 164, 181] and nonlinear [67, 179, 279] switching systems.
The discrete switching system by itself can of course not work without the
respective continuously working subsystems. Hence, we also refer to basic
works for the two most relevant candidates: force/torque control and visual
servo control. Distance control (cf. Fig. 2.3) usually works in one DOF only
and is a trivial task.
Force/Torque Control
If computer vision data is used for robot motion control, we speak about visual
servo control. Together with force/torque control, powerful robotic systems
can be achieved, because — similar to human beings — robots can use two
very complementary sensors, one to recognize the global task environment,
and one for fine (contact) motions. A camera may be mounted directly on
a robot (eye-in-hand) or the camera can be fixed somewhere in the robot’s
workcell, such that it observes the robot motion from a stationary pose. The
field of visual servo control consists of three domains: low-level image pro-
cessing, computer vision, and control theory. Here, only a brief overview with
regard to hybrid switched-system control is given.
2.4 State of the Art in Robotics Research 27
Basic overviews were presented by Chaumette and Hutchinson [45, 46, 47],
which are regarded as a very good introduction for control engineers, who
often are not familiar with the field of computer vision. The origins for most
works on visual servo control can be found in the publications of Weiss,
Sanderson, and Neuman [273] and of Feddema and Mitchell [84]. Detailed
introductions to image processing and computer vision algorithms can be
found, for example, in the textbooks of Wahl [271], by Forsyth [93], and of
Ma, Soatto, Košecká, and Sastry [171].
Regarding Fig. 2.3, visual servo control is supposed to be applied as one
continuously working submodule in a hybrid switched-system. Baeten and De
Schutter [16] present a very comprehensive work, in which computer vision
and force/torque control become unified in the Task Frame Formalism [40].
Another more recent approach of Gans and Hutchinson [95, 96, 97] suggests
two visual servo controllers as submodules in a hybrid switched-system. As-
suming an eye-in-hand camera setup, the first control module uses the camera
position to calculate an error signal in the feedback loop of the control law
and the second submodule uses image features. Stability is proven by means
of a state-based switching scheme.
the cerebrum (cf. Fig. 1.6, p. 6), which contains regions that are involved in
the planning, control, and execution of human motor skills [232, 263, 272].
We can also find works that consider human-like reflexes in the field of
robotics, in particular in the fields of humanoid, biped, or quadruped robots,
in which common motion pattern generators are employed to generate set-
points for low-level controllers that are responsible for standing upright. After
a (sensor) event, this pattern can be adapted by adding a further previously
learned pattern in order to assure that the system stands upright. Zaier et al.
[282, 283] propose such a control scheme for humanoid robots. The learned
pattern, which is added to the currently generated one, always fades smoothly
in and out, in order to prevent jerky motions. The same idea was applied to
prosthetics in [230].
In [106], Haddadin, Albu-Schäffer, De Luca, and Hirzinger present a very
impressive work on the detection of unforeseen collisions and respective re-
action concepts. Based on previous works of the authors [103, 104, 105, 170],
five different collision (= sensor event) reaction strategies are investigated2 :
1) The robot shows no reaction at all and continues to follow the reference
trajectory; 2) The robot is stopped as soon as a collision is detected. This is
obtained by using the actual joint position, which was measured at the time
instant of collision detection, as set-point for the position controller; 3) Switch
from position control to zero-gravity torque control [6, 7], letting the robot
behave in a very compliant way; 4) Switch to torque control with gravity
compensation but, in contrast to 3), use joint torque feedback and the signal
of the estimated external torque, which is used as a collision signal, to scale
down both the motor inertia as well as the link inertia, thus obtaining an even
“lighter” robot; 5) Use the estimated external torque to implement an admit-
tance controller. By defining the desired velocity in the opposite direction of
the external torque estimation, the robot “flees” from this disturbance. The
strategies 3 – 5 contain switchings from trajectory-following control to sensor-
guided robot motion control; this monograph considers the opposite way of
switching: from sensor-guided motion back to trajectory-following control (cf.
Fig. 1.4, p. 4).
After this broad and, in some areas, thorough survey, we are now able to
concretize the motivation for this work and to classify it within the robotics
research landscape.
The majority of the surveyed concepts for off-line and also on-line mo-
tion generation produce a motion along a specified path. But, is this a good
approach? — For purely position/pose and/or trajectory-following controlled
motions: Sure and without restriction of any kind! But: When we execute
sensor-guided motions, for example, by force/torque or by visual servo con-
trol, we do not have a predefined path anyway, because the robot motion
directly depends on the sensor signal. We have to dismiss the path during
sensor-based motion control! As soon as we embed sensor-guided or sensor-
guarded motions, there is no predefined path anymore. In particular, we have
to say good-bye to trajectory planning and reference trajectories along previ-
ously specified paths. There is no path that can be exactly followed, because
everything may depend on sensors whose signals cannot be foreseen.
For further advancements in the field of robotics, sensor integration is abso-
lutely indispensable! We can find plenty of approaches in the scientific arena,
but when looking at the state of the art in technology (Sec. 2.3, p. 13), al-
most none of these approaches can be found. The author believes that there
is one missing part in the robot control architecture as indicated in Fig. 1.4
(p. 4) that enables switchings from sensor-guided to trajectory-following op-
erations. Furthermore, commercial robot manufacturers have to develop reli-
able and deterministically working machines. These companies need concepts
to react safely to sensor malfunctions. How should a robot behave if a sensor
stops delivering a signal during a high-speed sensor-guided motion? If a robot
performs a sensor-guided motion in all of its DOFs (e.g., zero-force-control
during a teach-in process) how can the controller — except when perform-
ing an emergency stop — take over the guidance of the robot if something
unforeseen happens?
30 2 Literature Survey: Trajectory Generation
Fig. 2.4 Input and output values of the on-line trajectory generation algorithm.
These are simple questions that are mostly not relevant for research insti-
tutions. On the one hand, we (researchers) often complain about inaccessible
commercial control units, and that sensor-guided motions are not possible,
but on the other hand, we also do not have a general concept that is able
to generate set-points for a trajectory from arbitrary initial states of motion
to arbitrary target states of motion under consideration of kinematic and
dynamic constraints — as would be required for practical realizations.
One of the goals of the author is to contribute to the solutions of these
problems. The concept proposed in this monograph does not deliver a com-
plete solution — it is just one further piece of technology to be developed with
this work. To place this work in the wide landscape of robotics research, the
author suggests considering two different points of view:
Horizontal view
Here, we take a model of multiple horizontal layers for robot motion control
into account. As depicted in Fig. 1.5 (p. 5), on-line trajectory generation
is considered together with sensor-based motion control as one horizon-
tal layer in an abstract robot control model. This layer constitutes the
interface between higher-level (on-line and/or off-line) task and motion
planning and lower-level actuator control. This point of view seems to be
common in the field of computer science.
Vertical view
Here, we consider vertical layers of a hybrid switched-system control
scheme as shown in Fig. 2.3 (p. 24), which shows such a simple scheme and
indicates the layered structure via the dotted lines. The on-line trajectory
generation algorithm is regarded as one continuously working submodule
that is able to take over control from any arbitrary state of motion and
to transfer the system to a desired state of motion in the shortest possible
time. This figure resembles the view of control engineers.
The aim of this work is to develop an algorithm for time-discrete systems
as depicted in Fig. 2.4. This on-line trajectory generation algorithm can also
be regarded as feedforward or open-loop controller. One can also consider it
as a feedback on the current state. At a time instant Ti the algorithm receives
the parameters of the current state of motion, the parameters of the desired
state of motion, and the motion constraints, depending on the machine kine-
matics and dynamics, whereas the dynamics are only represented by constant
2.5 Conclusions and Classification of This Work 31
kinematic motion constraints in this book (cf. Fig. 2.4). Embedding dynamics
while keeping the possibility of instantaneous reactions to unforeseen events
alive is considered as a future work, which is discussed in Chap. 9.5 (p. 164).
All the algorithm of Fig. 2.4 has to calculate is the respective motion set-
points for the time instant Ti+1 , which is subsequently used as a command
variable for lower-level control.
Chapter 3
Mathematical Conventions and Problem
Formulation
This section introduces the nomenclature used in this paper, defines some
important terms, and gives a first impression of how the regarded trajectories
are mathematically represented.
We consider PC- or micro-controller-based systems for robot motion con-
trol, such that we assume a time-discrete overall system with a set of time
instants
T = {T0 , . . . , Ti , . . . , TN }
(3.1)
with Ti = Ti−1 + T cycle and i ∈ {1, . . . , N} ,
where T cycle represents the cycle time of the system. Time-discrete values are
represented by capital letters, time-continuous values by lower case letters.
The position of the robotic system at instant Ti is
Pi = (1 Pi , . . . , k Pi , . . . , K Pi )T , (3.2)
where K is the number of DOFs. Velocities, accelerations, and jerks are anal-
ogously represented by Vi , Ai , and Ji . A complete state of motion at instant
Ti is described by the matrix
Mi = Pi , Vi , Ai , Ji
T (3.3)
= 1M i, . . . , k M
i, . . . , K M
i ,
T. Kröger: On-Line Trajectory Generation in Robotic Systems, STAR 58, pp. 33–43.
[Link] c Springer-Verlag Berlin Heidelberg 2010
34 3 Mathematical Conventions and Problem Formulation
where Dimax is the maximum value for the derivative of jerk at time instant
Ti . A target state of motion is denoted by
Mitrgt = Pitrgt , Vitrgt , Aitrgt , Jitrgt
T (3.5)
= 1M trgt , . . . , k M trgt , . . . , K M
trgt .
i i i
where a single row, that is, the polynomials of one single DOF k, is denoted
by
kmi (t) = lk pi (t), lk vi (t), lk ai (t), lk ji (t) .
l
(3.8)
in which a set of polynomials lk mi (t) for one single DOF k is valid. A whole
motion trajectory Mi (t) is finally composed of a set of motion polynomials
with according time intervals:
1
Mi (t) = mi (t), 1 Vi , . . . , l mi (t), l Vi , . . . , L mi (t), L Vi . (3.10)
3.1 Notation and Nomenclature 35
Depending on the type of OTG algorithm (cf. Sec. 3.2), the initial state of
motion M0 , and the target state of motion M0trgt , the value L determines the
required number of polynomials (i.e., the number of single trajectory seg-
ments) to describe the complete trajectory from M0 to M0trgt . The trajectory
segments are connected to each other as:
∀ k ∈ {1, . . . , K} :
1t = Ti
k i
1 i
k mi (Ti ) = kM
(l−1)
(3.11)
l
k with l ∈ {2, . . . , L}
l mi (lk ti )
k mi (k ti ) =
L sync trgt .
k mi (ti ) = k Mi
One important property of OTG is that all DOFs that are selected for
trajectory-following control, have to reach their target state of motion Mitrgt at
the same time instant, namely at tisync in order to achieve time-synchronization.
As a consequence of this requirement, we can already state that
that is, the desired target state of motion has been reached after a time of
N T cycle .
Fig. 3.1 clarifies the meaning of time-synchronization. Just to give an im-
pression of time dimensions, T cycle is in the range of one millisecond or less;
the whole algorithm is designed to be applicable on a very low control level.
Now, we know how to describe a complete motion trajectory Mi (t) at a
time instant Ti . It constitutes the minimum set of parameters to handle sets
of trajectories for OTG. For a better understanding and to clarify these intro-
ductory equations, Fig. 3.2 depicts a simple (translational) motion trajectory
for one single DOF k.
Fig. 3.2 Example of a very simple case of a fourth-order motion trajectory for one
DOF k consisting of L = 15 matrices
of polynomials l mi (t) (cf. eqn. 3.7). Theinput
parameters are k M0 = 0, k B0 = 9.4 mm/s, 22.4 mm/s2 , 160 mm/s3 , 2000 mm/s4 , and
trgt = 8.8 mm, 0 mm/s, 0 mm/s2 , 0 mm/s3 (cf. [155]).
kM 0
3.1 Notation and Nomenclature 37
Fig. 3.3 Input and output values of the OTG algorithm for multiple DOFs (z−1
represents a hold element). The dotted lines indicate suggestively how the output
values of the OTG are usually fed back.
For the last part of this section, we explain the accordance of these intro-
ductory descriptions with the input and output values of the OTG algorithm
as it will be described in Chaps. 4 – 6. Fig. 3.3 details the input parameters
Wi = Mi , Mitrgt , Bi , Si
T
= 1W i , . . . , kW
i, . . . , KW
i (3.14)
and all output values Mi+1 of the OTG algorithm, where Wi is a (K × 13)
matrix. The selection vector
Si = (1 si , . . . , k si , . . . , K si ) with Si ∈ K
(3.15)
is considered as the set of binary numbers. All DOFs that are not controlled
by the OTG open-loop controller, are not considered by the algorithm.
As will be discussed in Chap. 7 (p. 105), the way the output values Mi+1 are
processed depends on how the OTG algorithm is embedded in a robot motion
control scheme. Hence, the term lower-level control (cf. Fig. 3.3) considers
the underlying control layers from the OTG algorithm on. For example, the
algorithm can be directly used in joint space, such that it delivers command
variables for a joint position controller, or it can be be part of a hybrid
switched-system, such that Mi+1 contributes to a desired motion state for a
controller in Cartesian space.
For a complete list of variables used for the derivation of the algorithm,
as well as a description of the super- and subscript meanings, please refer to
the preface.
α and β are type-dependent integer values, and Table 3.1 shows a summary
of types of OTG. The OTG block of Fig. 3.3 — if fully connected to all input
parameters and output values — corresponds to Type IX. Depending on the
type, not all input and output variables are used. Type VIII, for example, does
not offer to specify Jitrgt . For example, Fig. 3.2 shows a Type VI trajectory
and Fig. 3.1 a Type III trajectory. The case β = 4 means that the position
progression is described by polynomials up to the fourth order; thus, even the
derivative of the jerk is limited (Dimax ∈ K ). All further types are defined
analogously. To finalize Table 3.1, one may denote the trivial and practically
irrelevant case with rectangular velocity profiles as Type 0 (with α = 3, β =
1). Of course, it would also be possible to extend Table 3.1 by higher-order
trajectories (Type X, XI, etc.), but the complexity strongly increases with
increasing type numbers, such that the development of these algorithms is
hardly possible, as will be figured out in Chap. 9.12 (p. 175).
A very specific version of Type I was already suggested in [146]. It works
like Type II with unlimited jerks. These two types may offer sensor integration
possibilities for experimental purposes, for example, in research institutions.
3.2 Classification of On-Line Trajectory Generators 39
Table 3.1 Different types of OTG algorithms. The type number defines the set of
available input parameters Wi and output parameters Mi+1 (cf. eqns. (3.3), (3.4),
(3.5), (3.14), and (3.17)).
∀ (i, k) kVi
trgt
=0 ∧ kVi
trgt
∈ ∧ kVi
trgt
∈ ∧ kVi
trgt
∈ ∧
∈ k Ai
trgt
=0 ∧ k Ai
trgt
=0 ∧ k Ai
trgt
∈ ∧ k Ai
trgt
∈ ∧
× {1, . . . , K} k Ji
trgt
=0 k Ji
trgt
=0 k Ji
trgt
= 0 k Ji
trgt
∈
k Ai
max ∈ ∧ Type I Type II
max = ∞ ∧
k Ji α = 5, β = 2 α = 6, β = 2 — —
max = ∞
k Di
k Ai
max ∈ ∧ Type III Type IV Type V
k Ji
max ∈ ∧ α = 7, β = 3 α = 8, β = 3 α = 9, β = 3 —
max = ∞
k Di
k Ai
max ∈ ∧ Type VI Type VII Type VIII Type IX
k Ji
max ∈ ∧ α = 9, β = 4 α = 10, β = 4 α = 11, β = 4 α = 12, β = 4
k Di
max ∈
• Variant A: Bi = const ∀ i ∈
• Variant B: Bi = const .
The second slightly more advanced variant is the one that will be relevant
for practical implementations. Variant A only helps to explain the algorithm
in a more comprehensive way.
Based on the previous two sections, we now render the problem formulation
of Chap. 1.1.3 more precisely. Therefore, we start with the definition of the
term time-optimality and distinguish between two different kinds:
For the OTG algorithm itself, that is, for all calculations within the block of
Fig. 3.3, only kinetic time-optimality is regarded. The important consequence
of kinetic time-optimality is, that all K DOFs can be considered as linearly
independent, that is, decoupled. How robot kinematics and dynamics can be
combined with this approach is described in Chap. 9.5 (p. 164).
For a clear and unambiguous specification of the problem to be solved by
an on-line trajectory generation algorithm, we distinguish between four dif-
ferent criteria (i) – (iv), which all have to be met by the algorithm.
⎫
l v (t)
k i ≤ kVi max ⎪
⎪
⎪
⎪
⎪
l a (t)
k i ≤ k Ai ⎪
max
⎬
(l+1)
with t ∈ k ti ,
l
k ti , (3.18)
l j (t)
k i ≤ ⎪
k Ji
⎪
max
⎪
⎪
l d (t) ≤ D max ⎪
⎪
k i k i ⎭
such that
tisync −→ min . (3.19)
tisync is a parameter of Mi (t) (cf. eqns.(3.9) – (3.12)).
The time tisync plays a very central role in this work. To ensure that Vitrgt ,
A trgt , and J trgt are reached in P trgt at t sync , we can repeat the aspect of time-
i i i i
synchronization (eqn. (3.11)) again:
k
L
mi (tisync ) trgt
= kM ∀ k ∈ {1, . . . , K} . (3.20)
i
∀ k ∈ {1, . . . , K} :
trgt
kVi ≤ kVi max ∧ k Aitrgt ≤ k Aimax ∧ k Jitrgt ≤ k Jimax . (3.21)
As already stated in eqn. (3.19), the challenge is to find a motion trajectory
Mi (t) that transfers the state of motion from Mi to Mitrgt within the short-
est possible time tisync . But for the current control cycle at Ti , only Mi+1 is
needed, because in the next control cycle, we might have completely new in-
put values Wi+1 due to an unforeseen event or switching action. Hence, only
Mi+1 is forwarded to the output. These values are then used as input values
for lower-level control.
This leads to the interesting requirement, that if the input values Mitrgt , Bi ,
and Si remain constant for i ∈ {0, . . . , N} (cf. eqn. (3.13)), and if the output
values Mi+1 are directly fed back as input values for the following control
cycle (cf. dotted lines of Fig. 3.3), then the following consistency criterion
must be fulfilled.
If Mitrgt , Bi , and Si remain constant for i ∈ {0, . . . , N}, then:
• the value of the synchronization time must remain constant during the
whole trajectory execution, that is, tisync = const ∀ i ∈ {0, . . . , N}. This
fact is relevant for time-synchronization, such that Vitrgt , Aitrgt , and Jitrgt
are coinstantaneously reached in Pitrgt at tisync ;
• all trajectories Mu (t) with u ∈ {1, . . . , N} must exactly fit into the one of
M0 (t); and
• furthermore, any trajectory Mu (t) with u ∈ {1, . . . , N} must exactly
fit into all previously calculated motion trajectories Mv (t) with v ∈
{0, . . . , u − 1}.
This criterion guarantees that the resulting trajectories of the OTG algo-
rithm behave exactly as off-line planned ones, for example, bang-bang and/or
trapezoidal acceleration profiles (cf. [29, 43, 126, 196]).
3.4 Summary
This work introduces both, an OTG algorithm for one-DOF systems and an
OTG algorithm for systems with multiple DOFs, as they are common in the
field of robotics. Also the one-DOF solution that is presented in this chapter
delivers new significant advantages for servo drive control and the technology
of frequency inverters. Furthermore, it simplifies the comprehension of this
work, since we introduce the OTG algorithm step by step.
T. Kröger: On-Line Trajectory Generation in Robotic Systems, STAR 58, pp. 45–68.
[Link] c Springer-Verlag Berlin Heidelberg 2010
46 4 Solution for One Degree of Freedom
Fig. 4.1 Input and output values of the Type IX OTG algorithm for one DOF.
(cf. Fig. 3.3, p. 37).
motion M i into its current target state of motion M trgt under consideration of
i
the boundary constraints Bi and in the minimum possible time timin . In accor-
dance with eqn. (3.10), a trajectory Mi for one DOF consists of L trajectory
segments
l
mi (t) = l pi (t), l vi (t), l ai (t), l ji (t) with l ∈ {Λ + 1, . . . , L} (4.5)
The calculation of eqn. (4.8) is described in a general way in the next sub-
section and will be concretized by means of the Type IV OTG algorithm in
Sec. 4.2.
The key idea of this work is that there is a finite set of possible motion
profiles, of which one transfers one single selected DOF from the initial state
of motion M i to its target state of motion M trgt within the shortest possible
i
time ti (time-optimally). This finite set is denoted by2
min
PStep1 = 1Ψ Step1 , . . . , rΨ Step1 , . . . , RΨ Step1 , (4.9)
where R is the number of elements in PStep1 and depends on the type of OTG.
A concrete profile is denoted by rΨ Step1 . The kind of motion profile considered
depends on the type of OTG used (cf. Table 3.1, p. 39):
f: α −→ PStep1 , (4.10)
L
ti = timin (4.11)
For the decision tree that implements eqn. (4.10) it is absolutely essential
that
R
r
DStep1 ≡ α (4.13)
r=1
holds. If this is not the case, the tree is erroneous, and the algorithm will not
work for certain input parameters, which would be unacceptable for its prac-
tical application. In the work of Broquère, Sidobre, and Herrera-Aguilar [38]
as well as in the contribution of Liu [167], which suggest similar approaches
for one-DOF systems, eqn. (4.13) does not hold, and, hence, these approaches
are not applicable in general, but only for some (practically hardly relevant)
special cases.
As an alternative to decision trees for the selection of the correct motion
profile ΨiStep1 , one could set up R systems of nonlinear equations, calculate
all solutions, take all valid solutions for timin , and choose the minimum one.
But this procedure is computationally very expensive, too expensive, in fact,
especially if low values for T cycle are desired.
After we have calculated all L trajectory segments to describe Mi , we only
ˆ
have to find the valid time interval l ϑi with lˆ ∈ {1, . . . , L}, such that
lˆ ˆ
ti ≤ Ti + T cycle ≤ l+1ti (4.14)
i+1 can
is satisfied (cf. eqns. (3.9) and (3.10), p. 34). The output values M
finally be calculated by
i+1 = lˆmi Ti + T cycle .
M (4.15)
Variant B works in the same way as A does, but here a further decision tree
is connected upstream of the Variant A decision tree. If the boundary val-
ues Bi are functions of time, the OTG Variant B has to be applied. The case in
4.2 Solution for Type IV 49
i exceed their
which one or more elements of the initial motion state values M
corresponding constraints of Bi has to be considered in this variant, and it
may happen at any discrete time instant Ti with i ∈ , in which
Furthermore, motion states M i may occur, which are within their respective
bounds Bi at instant Ti , but which will lead to an unavoidable future exceeding
of Bi at a time instant Ti+u :
Fig. 4.2 Input and output values of the Type IV OTG algorithm.
According to the previous chapter, the Type IV OTG algorithm requires the
selection of an acceleration profile, which enables us to set up a system of
Fig. 4.3 A subset of the acceleration profile set PStep1 of Type IV, Variant A.
The dotted horizontal line indicates the maximum acceleration values, and the
numbers in the top right corner indicate the numbers of trajectory segments L for
the respective profile.
4.2 Solution for Type IV 51
Determining ΨiStep1
In the following, we answer the question: How can we determine the time-
optimal acceleration profile ΨiStep1 at a time instant Ti , that is, how can we
select the element of PStep1 that leads to timin ? Due to the high complexity,
only a small cutout of the Type IV decision tree is shown in Fig. 4.4. The
tree actually acts as function
f: 8 −→ PStep1 (4.19)
R
r
DStep1 = 8 (4.20)
r=1
Fig. 4.4 Cutout of the Type IV, Variant A decision tree to determine an acceleration
Step1
profile Ψi , that leads to the minimum-time solution timin .
Fig. 4.5 The PosTriNegTri profile with all relevant variables, such that a system
of equations represented by eqns. (4.21) – (4.32) can be set up and solved in order
to calculate the parameters of Mi .
essential that a tree covers the whole input domain (here: 8), such that the
algorithm can work with arbitrary input values W i.
Once we know the correct acceleration profile ΨiStep1 for the trajectory at
instant Ti , we can set up a system of equations that corresponds to this profile.
Depending on the profile, the procedure of parameterizing ΨiStep1 differs. In
this section, we only derive the procedure for one concrete profile, that is, the
PosTriNegTri profile (top right in Fig. 4.3). For the practical realization, all
R acceleration profiles have to be considered, and respective algorithms have
to be implemented, of course. Fig. 4.5 shows this PosTriNegTri-acceleration
profile and all relevant variables, such that we can set up a system of equations
to calculate the parameters of Mi . In this simple case, we only need L = 4
trajectory segments. The system of equations can be directly derived from
Fig. 4.5 and is given by eqns. (4.21) – (4.32). In this full-length way, we obtain
12 equations with 12 unknown variables timin , 2ti , 3ti , 4ti , 2 vi , 3 vi , 4 vi , 2 pi , 3 pi ,
4 p , a peak1 , and a peak2 :
i i i
peak1
a − Ai
2
ti − Ti = (4.21)
Jimax
a peak1
3
ti − 2ti = (4.22)
Jimax
a peak2
4
ti − 3ti = − (4.23)
Jimax
a peak2
timin − 4ti = − (4.24)
Jimax
54 4 Solution for One Degree of Freedom
1 2
2
vi − Vi = ti − Ti Ai + a peak1 (4.25)
2
1 3
3
vi − vi =
2
ti − 2ti a peak1 (4.26)
2
1 4
4
vi − vi =
3
ti − 3ti a peak2 (4.27)
2
trgt 1 min
Vi − vi =
4
ti − 4ti a peak2 (4.28)
2
2 1 2
2
pi − Pi = Viti − Ti + Ai 2ti − Ti
2
1 max 2 3
+ Ji ti − Ti (4.29)
6
1 peak1 3 2
3
pi − pi = vi 3ti − 2ti +
2 2
a ti − 2ti
2
1 max 3 2 3
− Ji ti − ti (4.30)
6
1 max 4 3
4
pi − pi = vi 4ti − 3ti −
3 3
Ji ti − 3ti (4.31)
6
trgt min 1 peak2 min 2
Pi − pi = vi ti
4 4
− ti +
4
a ti − 4ti
2
1 max min 4 3
+ Ji ti − ti (4.32)
6
Numerical Issues
Although these systems of equations are nonlinear for all elements of the
set PStep1 , we are able to find closed-form analytical solutions by employing
computer algebra programs; this would be the straightforward way. However,
these expressions become very large, not all solutions are valid, and prob-
lems with numerical stability appear. Even after appropriate simplifications
and a reduction of the problem to a root-finding problem of quartic equa-
tions, it is not possible to solve this problem robustly and with a consistently
high accuracy [111, 245]. In [111] robustness test results of different methods
for root-finding of quartics are shown, and none of the methods work reli-
ably. For this work, different methods (Ferrari, Neumark, and Yacoub) were
implemented to find the real roots of quartics in order to solve eqns. (4.21) –
(4.32), but in particular at the boundary areas of the domains r DStep1 with
r ∈ {1, . . . , R}, the solutions tend to contain complex numbers due to nu-
merical inaccuracies. Another problem is that there may be up to four real
solutions for one system of equations, and it becomes difficult to extract the
correct one, especially if the solutions are very close to each other. When
random floating-point numbers [−1000, 1000] were used for the elements of
i , a wrong solution was calculated every ≈ 60, 000 cycles, which is of course
W
unacceptable in practice. Another indication that the problem of root-finding
of quartics cannot be solved robustly is that neither the libraries of the
4.2 Solution for Type IV 55
Numerical Algorithms Group (NAG) [257] nor the GNU Scientific Library
(GSL) [100] nor the library of Press et al. [215] provide solutions for this
problem.
The next idea was to perform a QR decomposition [245, 251] for the prob-
lem of quartic polynomials. With this method, it was possible to find solu-
tions for the quartic root-finding problem, but this led to another problem:
real-time capability. If a certain accuracy has to be achieved, the number
of required iterations depends on the condition number of the factorization
matrix [215]; and the condition number in turn depends on the input values
i , which are arbitrary. Furthermore, the problem that several solutions are
W
found, which may lie very close to each other, remains.
As a result, the usage of analytical solution methods is not a way to success,
and the following question remains unanswered: How can we find a solution
method for the systems of equations of P Step1 that works robustly for any
combination of input variables W i ? In the following, a method is proposed that
complies with this requirement, and that enables an efficient and real-time
capable solution of this particular problem.
The eqns. (4.21) – (4.32) can be transformed to a one-dimensional root-
finding problem. We take one element of the set of unknowns, for example,
aipeak1 , and set up a position-error function depending on this element:
PosTriNegTri err1
pi aipeak1 : −→ . (4.33)
The derivation of PosTriNegTri pierr1 aipeak1 is done manually on the base of
eqns. (4.21) – (4.32); since the description of the function is ratherlong, it
peak1
can be found in App. B.1 (p. 189). Here, we assume PosTriNegTri pierr1 ai
to be a transcendental function that can be set up on the base of the system
of equations for Ψi Step1 = PosTriNegTri.
This results in a very simple and standard problem of curve sketching,
which can be solved numerically.
As we will see in the following, we are able
peak1 max peak1
to calculate an interval min ai , ai from which we know, that our
desired value aipeak1 lies within it. But as we will see, it may happen that there
are up to two4 valid values for aipeak1 within this interval, and we are only
interested in the minimum one, because it delivers the time-optimal solution
with the minimum value fortimin (cf. Fig. 4.5). As a result, we also need the
derivative of PosTriNegTri p err1
i aipeak1
d
PosTriNegTri err1
pi aipeak1 = PosTriNegTri err1
pi aipeak1 (4.34)
d aipeak1
4 This number will be derived in detail in Chap. 5.1.1 (p. 73).
56 4 Solution for One Degree of Freedom
in order to solve an extremum problem for PosTriNegTri pierr1 aipeak1 and to
determine a smaller interval min aipeak1, max aipeak1 that contains one, and only
peak1
one, root. The full-length form of PosTriNegTri pierr1 ai can be found in
App. B.2 (p. 189).
Algorithm 4.1 shows the calculation steps to attain min aipeak1 and max aipeak1 .
Due to the previously executed decision tree for determining Ψi Step1 , we know
that Aimax ≥ Ai ≥ 0 holds (cf. PosTriNegTri acceleration profile in Fig. 4.4).
The lower bound min aipeak1 is calculated in lines 1 – 8. Line 1 simply calculates
the velocity v(Ai 0) we would reach if Ai was decreased to zero by applying
Jimax . If v(Ai 0) is greater than Vitrgt (line 2), we can already set min aipeak1 to
Ai (line 3). Otherwise, we have to calculate an acceleration peak value with
which Vitrgt is exactly reached. Here, we only apply a positive triangle-shaped
profile, that is, in line 7 we compute a simple acceleration profile consisting
of two segments: Applying +Jimax until min aipeak1 and then −Jimax until Vitrgt is
reached. The resulting value for min aipeak1 constitutes the lower bound.
The lines 9 – 25 of Algorithm 4.1 calculate the upper bound max aipeak1 . We
first calculate two possible values. The first one, max aipeak1,a (line 11), is de-
termined in order not to exceed ±Aimax and the second one, max aipeak1,v (line
17), in order not to exceed +Vi max . For the calculation of max aipeak1,a , we com-
pute an acceleration profile consisting of four segments as commented in line
10. If the resulting value is greater than Aimax , we set max aipeak1,a to Aimax in
line 19. max aipeak1,v is calculated analogously. At the end (lines 21 – 25) we set
the actual value of max aipeak1 to the lower value of max aipeak1,a or max aipeak1,v ,
respectively.
As a result, we know that the function PosTriNegTri pierr1 aipeak1 is contin-
uous between min aipeak1 and max aipeak1 . If this interval contains two roots, we
have to check for a local minimum or
maximum by finding the (only) root
m a peak1 of PosTriNegTri p err1 a peak1 in min a peak1 , max a peak1 . The mathematical
i i i i i
literature provides different methods for this standard problem. An overview
of such numerical methods can be found in [73]. In our case, only inclusion
methods come into consideration, and the most efficient inclusion method is
the Anderson-Björck-King method [12, 73, 131]. Since this method may have
robustness and thus real-time capability problems, it was adapted for this
application by combining it with the simple bisection method. The details on
the modified algorithm are presented and discussed in App. A (p. 185).
PosTriNegTri err1 peak1
After the local minima and maxima of pi ai are calcu-
lated, we set
max peak1
ai := m aipeak1 , (4.35)
4.2 Solution for Type IV 57
14: end if
20: end if
peak1, v
21: if max ai < max aipeak1, a then
22: max a peak1 := max a peak1, v
i i
23: else
25: end if
58 4 Solution for One Degree of Freedom
such that we finally obtain the desired interval min a peak1 , max a peak1 , which
i i
peak1
contains only one root (the desired value of ai ). We can again use the
modified method of Anderson-Björck-King here. Once we know aipeak1 , we
know the first unknown variable of eqns. (4.21) – (4.32). The calculation of
the other eleven unknowns is trivial, as is the calculation of the parameters
of l mi (t) with l ∈ {1, . . . , 4} and l ϑi with l ∈ {1, . . . , 4}. These two steps can
be developed in a straightforward way and are shown in App. B.3 (p. 190).
Finally, with
∀ l ∈ {1, . . . , 4} :
l
mi (t) = l pi (t), l vi (t), l ai (t), l ji (t) (4.36)
l
Vi = l
ϑi with l ϑi = l
ti , l+1ti (4.37)
According to eqns. (4.14) and (4.15), M i+1 can be calculated by finding the
ˆ such that
respective time interval l,
lˆ ˆ
ti ≤ Ti + T cycle ≤ l+1ti (4.39)
holds, and then we simply calculate the output values for lower-level control
by
M i+1 = lˆmi Ti + T cycle . (4.40)
These values are then used as set-points for lower-level motion controllers.
This part of the book exemplarily presented how to set up the PosTri-
NegTri acceleration profile. The complexity of the OTG algorithm differs
strongly, depending on the profile and its number of equations and unknown
variables. For clarification: This intricately seeming procedure is only required
because there is no analytical solution for the systems of equations for the
acceleration profiles that can be computed absolutely robustly. All the chosen
mathematical tools are of a very basic nature, but in this concrete case,
these methods lead to sufficient results, and they perform efficiently and
very robustly. Another advantage of the proposed method compared to the
analytical one is that we directly obtain the desired solution for the time-
optimal trajectory, and difficult selections of correct solutions can be omitted.
For a better understanding of this part of the book, we will apply this
procedure to concrete values of W i in the next part.
4.2 Solution for Type IV 59
This part explains the previously proposed procedure step by step by means
of a concrete example. Let us take an arbitrary set of input values W 0 at
instant T0 = 0 ms:
As the first step in the first control cycle at T0 , we apply the decision tree of
Fig. 4.4 in order to determine the correct acceleration profile rΨ Step1 , which
leads to the time-optimal trajectory. As a result we obtain the profile Ψ
Step1
0 =
PosTriNegTri, such that we can set up the function PosTriNegTri p0err1 a0peak1
corresponding to the respective system of equations
(eqns. (4.21) – (4.32)). In
peak1 max peak1
the next step, we determine the interval min a , a0 in which the
0
peak1
position-error function PosTriNegTri p0err1 a0 is continuous, and in which
peak1
the desired value of a0 is located. Applying Algorithm 4.1 to the concrete
input values of eqn. (4.41) leads to
min peak1 max peak1
a0 = 152.000 mm/s2 and a0 = 662.746 mm/s2 . (4.42)
We know that for a0peak1 ∈ 152.000 mm/s2, 662.746 mm/s2 up to two roots
can be present. To illustrate this, the top part of Fig.
4.6 shows
the progres-
peak1
sion of the position-error function PosTriNegTri p0err1 a0 in this interval.
Since the function values at the bounds have different signs, we already know
that there is only one root in this interval. For other input parameters, for
example, P̃0trgt = −1090 mm, the abscissa in the top part of Fig. 4.6 would
be shifted down by 1000 units (dash-dotted line)5 . Then, two valid solutions
for a0peak1 could be found, and only the lower one would be relevant. For
such a case, the derivative of the position-error function, as shown in the
bottom part of Fig. 4.6, would be required to calculate the extremum of
PosTriNegTri p err1 a peak1 :
0 0
m peak1
a0 = 285.255 mm/s2 , (4.43)
Fig. 4.6 Progressions of the position-error function and its derivative within the
interval [152.000 mm/s2 , 662.746 mm/s2 ].
Regarding the initial input values of eqn. (4.41), we apply the modified
Anderson-Björck-King method, and we obtain the desired value
as indicated by the dotted line in the top part of Fig. 4.6. By applying the
assignments for the other eleven unknowns (App. B.3, p. 191, eqns. (B.13) –
(B.23)), we obtain the following solution:
timin = 5.795 s 2t
0 = 1.109 s
3t = 2.686 s 4t = 4.240 s
0 0
2 3
v0 = 32.555 mm/s v0 = 435.764 mm/s
(4.45)
4v
0 = 44.382 mm/s 2p
0 = −703.408 mm
3p
0 = −227.969 mm 4p
0 = 246.573 mm
a0peak1 = 511.155 mm/s2 a0peak2 = −503.603 mm/s2 .
Fig. 4.7 Resulting trajectory Mi with i ∈ {0, . . . , 5795} for the given input values
of eqn. (4.41). The dashed lines indicate the times 2t0 , 3t0 , and 4t0 calculated in
eqn. (4.45).
These values (cf. eqn. (4.41)) are used as set-points for lower-level control
during the current control cycle. Hence, it would take us 5795 cycles until
62 4 Solution for One Degree of Freedom
Fig. 4.8 Variant B decision tree, which is executed upstream to the one of Variant
i into their
A. It is the task of this decision tree to bring all motion state values M
limits Bi and to guarantee, that they remain within these bounds.
the desired target state of motion M trgt is finally reached. If no sensor event
i
occurs, the consistency criterion (Chap. 3.3, p. 42) must be fulfilled. Hence, if
we execute the OTG algorithm again at T1 = 1 ms, we use the output values
1 from eqn. (4.46) as input values for the control cycle at T1 = 1 ms, and
M
exactly the same trajectory must be calculated, that is, M1 must exactly fit
4.2 Solution for Type IV 63
Fig. 4.9 Intermediate acceleration profiles for the Λ intermediate trajectory seg-
ments determined by the decision tree of Fig. 4.8.
into M0 . The same holds, of course, for all following control cycles at instants
Ti with i ∈ {2, . . . , 5795}, as can be seen in Fig. 4.7, which depicts the re-
sulting trajectory for the input values of eqn. (4.41). This is possible because
we always compute the time-optimal trajectory, which transfers the system
from M trgt in the shortest possible time. That means for every motion
0 to M
0
state between M 0 and M trgt the time-optimal trajectory to reach M
trgt auto-
0 0
matically fits into M0 . The most important part to guarantee this essential
property is the decision tree of Fig. 4.4. This tree as well as the acceleration
profile set PStep1 must be complete and error-free, such that eqn. (4.13) holds
(cf. p. 48).
Let us finally summarize this subsection briefly: The complete Type IV,
Variant A OTG algorithm for one DOF was introduced and discussed. The
acceleration profile PosTriNegTri belongs to the simplest ones and was cho-
sen for a detailed demonstration. Finally, a very concrete example trajec-
tory was calculated in order to improve the comprehension of the applied
techniques.
has to be fulfilled. The compressed version in Fig. 4.8 takes advantage of sign
switchings. Since this tree is executed prior to all decision trees of OTG Types
III-V and also prior to the further decision trees of the multi-dimensional
case, the letter X has been chosen to replace the actual tree identifier. Deci-
sion X.001 leads to a switching of signs for the initial and for the target state
of motion if the current acceleration value Ai is negative. Hence, Ai is positive
for decision X.002. This decision checks whether Aimax is currently exceeded.
If it is exceeded, we set up a first intermediate acceleration profile segment
(NegLin), which brings Ai down to Aimax by applying −Jimax . The decisions
X.003 and X.004 check whether Vi max is positively or negatively exceeded.
Since our current acceleration value is positive, decision X.003 calculates the
velocity value that we would obtain if we were to bring the acceleration value
to zero (which increases the velocity value). If the resulting velocity is then
greater than +Vi max , we decrease the acceleration to zero by applying −Jimax
again (NegLin), perform a switching of signs, and let the decisions X.005 to
X.008 bring the velocity value into its bounds. Decision X.004 only checks
whether −Vi max is exceeded. If this is the case, we continue at decision X.005.
For this decision, we know that the velocity is less than −Vi max , and the ac-
celeration is positive (no matter if the branch of decision X.003 or X.004
has been taken). If we would now increase the acceleration to +Aimax , deci-
sion X.005 checks whether the resulting velocity value is greater or less than
−Vi max . If it is less, we know that a simple acceleration increase brings the ve-
locity value back into its limits, but we have to make sure, that it can remain
within these. For this purpose, decision X.006 checks whether +Vi max would
be exceeded if we subsequently decreased the acceleration value to zero. If this
is not the case (left branch), a simple PosLin profile segment, which applies
+Jimax , complies with the requirements of eqns. (4.47) and (4.48). Otherwise
(right branch), we would increase the acceleration value to a certain peak
value, and subsequently decrease it again, such that we would reach +Vi max
exactly after the full decrease to zero (profile segment PosLinNegLin). The
decisions X.007 and X.008 work analogously. In the last step, we have to
re-switch the signs again if they have been switched before (decision X.009).
Finally, we can assure that the conditions of eqns. (4.47) and (4.48) are ful-
filled and will not be breached again, and we can continue with the decision
trees of Variant A as presented in Sec. 4.2.1.
4.2 Solution for Type IV 65
Fig. 4.10 Resulting Type IV, Variant B trajectory Mi with i ∈ {0, . . . , N} for the
given input values of eqn. (4.49). The dashed lines indicate the bounds of the single
trajectory segments, and the dotted lines indicate the motion constraints Bi .
If the target motion state and the boundary values remain constant, the
0 of eqn. (4.49). In the
trajectory of Fig. 4.10 results from the input values W
first step, we select intermediate trajectory segments by applying the decision
tree from Fig. 4.8. Here, we would take the following path:
X.001 → Change of signs → X.002 → NegLin → X.003 → NegLin
→ Change of signs → X.005 → X.007 → PosLinHld → X.009
→ Decision tree of Variant A .
This results in Λ = 4 intermediate trajectory segments, which result from
the decision tree of Variant B:
1
2m0 (t), 2 V0
NegLin =⇒ PosLin One segment 1
This chapter introduced the general OTG algorithm in Variant A and also in
Variant B for one single DOF. Both variants fulfill the time-optimality and
the consistency criteria, but only Variant B fulfills the criterion for motion
constraints (cf. Chap. 3.3, p. 41). The presented approaches were exemplarily
detailed by means of the Type IV on-line trajectory generation algorithm.
The three major scientific contributions of this chapter are the following:
Finite set of motion profiles
The basic idea of this work is, that a finite set PStep1 with R motion profiles
rΨ Step1 exist, from which one profile leads to the time-optimal trajectory.
4.3 Summary and Applications 67
Equation (4.13)
R
r
DStep1 ≡ α
r=1
and it is required that the initial speed and the initial acceleration are zero.
Hence, this is also not practicable for common operation.
Even a simple stop, that is, a controlled decrease of the current velocity
to zero, at an unforeseen time instant, leads to an infinite jerk. To solve this
problem, the Type III OTG algorithm would already satisfy the demands.
This chapter already presented the more advanced Type IV OTG algorithm,
which would not only enable the performing of a jerk-limited stop motion
but also a jerk-limited motion to a certain velocity unequal to zero.
Apart from the benefit of exerting such “smooth” motions, it would addi-
tionally become possible to consider the rotor response time by specifying a
maximum jerk for a concrete motor. In turn, this leads to a better control
behavior of the whole servo system.
The Type IV, Variant B OTG algorithm would overcome many of the prob-
lems the aforementioned companies deal with. The algorithm works robustly,
is real-time capable, and its interface (Fig. 4.2, p. 50) is very simple, such
that an integration into existing systems could be realized without very much
effort. Additionally, the usage as submodule in a hybrid switched-system con-
troller (cf. Fig. 2.3, p. 24) is, of course, possible.
Chapter 5
Solution in Multi-dimensional Space
The previous chapter introduced the concept of OTG for one single DOF.
This chapter extends the proposed class of algorithms to the multi-dimensional
case, and we will see how to fulfill the time-synchronization criterion. The OTG
algorithm in multi-dimensional space consists of three basic steps; the first step
is based on the methodologies introduced in Chap. 4. Finally, this concept will
be suitable as a submodule in a hybrid switched-system controller for a robotic
system with multiple DOFs. As in the previous chapter, we first introduce the
general OTG algorithm, and subsequently, the Type IV OTG algorithm is ex-
emplarily outlined.
T. Kröger: On-Line Trajectory Generation in Robotic Systems, STAR 58, pp. 69–97.
[Link] c Springer-Verlag Berlin Heidelberg 2010
70 5 Solution in Multi-dimensional Space
f: α K × K
−→ . (5.1)
As can be seen in Fig. 5.1, Step 1 can be subdivided into three parts: the
individual calculation of the minimum execution time k timin for each selected
DOF k; the calculation of the set of possibly existing inoperative time inter-
vals k Zi , in which a selected DOF k cannot be synchronized; and finally the
determination of tisync .
At this particular point, we benefit from the last chapter, in which we cal-
culated complete trajectories Mi for single DOFs. Here we are interested in
one particular parameter of Mi : We need the minimum execution time k timin
for each selected DOF k, which is required to transfer the DOF k from its
initial state of motion k M i to its target state of motion k M
trgt . Hence, we
i
execute the algorithm for the one-dimensional case of Chap. 4 only until we
have calculated k timin . This is done for every single selected DOF, such that
we attain up to K times k timin with k ∈ {1, . . . , K}.
5.1 General Variant A Algorithm for On-Line Trajectory Generation 71
After the minimum execution time k timin for a DOF k has been calculated, we
have to check, whether it is possible to execute the trajectory for this DOF
within any time t > k timin . If this is the case, no inoperative time intervals
k Zi = {} exist; depending on the type of OTG, k Zi may contain up to Z = 3
time intervals, in which a selected DOF k cannot be synchronized. Referring
to Table 3.1 (p. 39) this property can be expressed by
Z = α − 2β − 1 , (5.2)
k ti
min
≤ zk tibegin ≤ zk tiend ∀ (z, k) ∈ {1, . . . , Z} × {1, . . . , K} (5.5)
naturally holds.
To explain the origin of these inoperative time intervals, Fig. 5.2 illustrates
an example of a simple Type II trajectory for one single DOF k with simple
bang-bang characteristics and one inoperative time interval 1k ζi . At T0 = 0 ms,
let us assume the following input values for the Type II trajectory of Fig. 5.2:
⎫
k P0 = 50 mm ⎪
⎪
M
k 0 ⎪
⎪
kV0 = 80 mm/s ⎪
⎪
trgt ⎪
⎪
k P0 = 300 mm trgt ⎬
trgt M
k 0
kV0 = 70 mm/s kW0 . (5.6)
⎪
⎪
kV0
max = 200 mm/s ⎪
⎪
k B0 ⎪
⎪
k A0
max
= 20 mm/s2 ⎪
⎪
⎭
k S0 = 1
72 5 Solution in Multi-dimensional Space
Fig. 5.2 Example of an inoperative time interval 1k ζi for one translational DOF
k calculated by a Type II on-line trajectory generation algorithm. The interval
begin
limits are 1k ti = 4950 ms and 1k tiend = 10050 ms. During all three trajectories,
either +k A0 = 20 mm/s2 or −k A0max = −20 mm/s2 is applied as value for k ai (t)
max
to kV0trgt = 70 mm/s. In such a case, the respective DOF has to decrease its
velocity until the velocity is negative and the distance to k P0trgt equals the
required acceleration distance (dashed line). The execution of this second
NegTri velocity profile would be finished at 1k tiend . For all times t ≥ 1k tiend the
synchronized motion of DOF k is possible again. As a result for the input
values of eqn. (5.6), an inoperative time interval of
k ζi
1
= [4950 ms, 10050 ms] (5.7)
exists.
It is absolutely essential that the OTG algorithm is able to provide a solu-
tion for any set of input values Wi ∈ α K × K . If this cannot be guaranteed,
the concept will be incomplete, unsafe, and thus practically irrelevant. We
must be able to specify a set of times for each selected DOF k
which contains k timin and all interval limits of the set k Zi . It belongs to the
nature of motion profiles of PStep1 that one particular profile can deliver up
to two valid solutions:
• If the system of equations of a motion profile rΨ Step1 (e.g., eqns. (4.21) –
(4.32), p. 53) delivers only one valid solution, this solution specifies one
element of the set of times k Ii .
• If two valid solutions are available for a system of equations, two neighbored
elements of the set k Ii can be specified.
More than two solutions are not possible, because then at least one element
itrgt cannot be reached. Let us explain this important property by means
of k M
of two examples.
Example 5.1. The system of equations for the PosTri velocity profile of
Fig. 5.2 delivers one (and only one) valid solution, which yields the min-
imum execution time k timin . It is impossible, that this profile can deliver a
second valid solution for the given input values kW i of eqn. (5.6), because
all velocity peak values that are greater than the one from the first solution
would lead to an irreversible overshooting of k Pitrgt . The system of equations
for the NegTri velocity profile, however, delivers two valid solutions. The first
one contains the left bound 1k tibegin of the inoperative time interval, and the
second one contains the respective right bound 1k tiend . Apart from these two
solutions, no further valid solutions are possible, because k Pitrgt could not be
reached then.
Example 5.2. This example builds the bridge to Chap. 4.2.1 (p. 55), where
we already claimed, that a particular motion profile can deliver up to two valid
solutions to set up a trajectory. From the example of eqn. (4.41) (p. 59), we
learned that the PosTriNegTri acceleration profile leads to the time-optimal
74 5 Solution in Multi-dimensional Space
motion for that DOF. The plot of the position-error function of Fig. 4.6
(p. 60) illustrates how the solution for the value of a0peak1 is calculated. But the
figure contains a second piece of information: If we subtract 1000 mm from the
original value of the desired target position P0trgt , two solutions can be found
for the PosTriNegTri acceleration profile. If applied as DOF k of a multi-DOF
system, these two solutions would lead to the bounds 1k tibegin and 1k tiend of the
inoperative time interval 1k ζi . Further valid solutions are not possible, because
trgt
k Pi would not be reached then.
Whether a solution of a system of equations for a motion profile rΨ Step1
contributes to the elements of the set k Ii , is specified by further decision trees.
We need 2 Z further decision trees — that is, two for each possible inoperative
interval zk ζi — in order to obtain a complete set k Ii for each selected DOF k.
If one or more inoperative time intervals zk ζi exist for a selected DOF k, each
decision tree determines a certain motion profile whose system of equations
leads to a solution that contains a lower or an upper bound of an inoperative
time interval zk ζi .
The quintessence of this paragraph is that (2 Z + 1) decision trees are re-
quired to calculate the minimum execution times k timin and the set of all
inoperative time intervals k Zi for all selected DOFs k ∈ {1, . . . , K}. All these
values are subsequently required for the determination of the minimum syn-
chronization time tisync .
Determining tisync
After the minimum execution times and all existing inoperative time intervals
have been calculated for all selected DOFs, tisync can be determined easily.
First, the greatest time of all minimum execution times is determined. tisync
cannot be less than this value. In the second step, we have to consider that
tisync must not be part of any inoperative time interval zk ζi with (z, k) ∈
{1, . . . , Z} × {1, . . . , K}. Fig. 5.3 illustrates an example with four DOFs, where
tisync = 12tiend is determined as the minimum possible synchronization time.
sync sync
Fig. 5.3 Example of the determination of ti for K = 4 DOFs. Here: ti = 12tiend .
5.1 General Variant A Algorithm for On-Line Trajectory Generation 75
Equations (5.9) – (5.11) constitute the simplest case, which leads to simple
rectangular profiles for the acceleration (eqn. (5.9)), the jerk (eqn. (5.10)), or
the derivative of jerk (eqn. (5.11)). This is an important simplification of the
problem, because this way we can apply the same kind of motion profiles in
Step 2, which we already know from Step 1.
The minimum execution time for this set of input parameters kW 0 for DOF
min
k is k t0 = 2.237 ms, but since the minimum execution of at least one other
selected DOF is assumed to be greater, we assume a synchronization time
of t0sync = 2.830 ms as the resulting value from Step 1 of the Type I OTG
algorithm. As a result, there are infinite possibilities for Step 2 to set up a
trajectory for DOF k; three of them are shown in Fig. 5.4. The trajectory
represented by the solid line fulfills eqn. (5.9). This criterium can only be
fulfilled if only ±k A0max or zero acceleration are utilized. For the OTG Types
III – V, only ±k J0max or a jerk value of zero are allowed to be utilized for
all k ∈ {1, . . . , K}, and for the OTG Types VI – IX the same holds for the
maximum derivative of jerk, k D0max .
Wi and tisync act as input parameters for this second step, in which a similar
procedure as in the first part of Step 1 is applied. The key idea — that there
is a finite set of motion profiles to set up the final motion trajectories — is
employed again. The elements of this set, PStep2 , differ from the ones of Step 1,
because tisync is considered as an additional input value. These motion profiles
are denoted as
PStep2 = 1Ψ Step2 , . . . , sΨ Step2 , . . . , SΨ Step2 , (5.13)
where S denotes the number of elements in PStep2 and depends on the type
of OTG. According to Table 3.1 (p. 39), a decision tree that acts as function
f: α +1 \ H −→ PStep2 (5.14)
is required, which determines a motion profile sΨ Step2 for each selected DOF k.
The meaning of H will be described below. Compared to Step 1, Step 2 always
requires only one decision tree, which is executed once for every selected
DOF and control cycle. But compared to Step 1, there are two significant
differences:
1. While in Step 1 more than one system of equations may achieve a valid
solution (cf. Fig. 4.6, p. 60), in Step 2 — that is responsible for the actual
calculation of the trajectory parameters of Mi — only one element of PStep2
leads to a solvable system of equations. This fact is rooted in the nature of
the Step 2 motion profiles and leads to a deterministic behavior, that is,
there can always be only one possible trajectory, which transfers a selected
DOF k from k M i to k M
trgt in t sync .
i i
2. If we denote the input domain of the system of equations that corresponds
to the motion profile sΨ Step2 as
s
D Step2 ⊂ α +1 , (5.15)
Fig. 5.4 Three different, valid Type I trajectories for the input values of eqn. (5.12).
The solid line represents the trajectory that fulfills the minimization criterium of
eqn. (5.9).
S
s
DStep2 ≡ α +1 . (5.16)
s=1
Due to the inoperative time intervals k Zi for each selected DOF k, the
(α + 1)-dimensional space contains holes, in which none of the systems of
equations that correspond to the motion profiles of P Step2 is solvable, and
in which the decision tree of eqn. (5.14) does not deliver a solution. These
holes in the (α + 1)-dimensional space are represented by the set
H ⊂ α +1 . (5.17)
78 5 Solution in Multi-dimensional Space
Fig. 5.5 Two-dimensional illustration of eqn. (5.18), that is, the union of all input
domains s DStep2 of the systems of equations for the motion profiles of Step 2, PStep2 .
The black areas represent H.
S
S
s
DStep2 = α +1 \H =⇒ (s DStep2 ∩ H) = { } . (5.18)
s=1 s=1
S
S = s
DStep2 ∩ u DStep2 ∀ u ∈ {1, . . . , S} u = s (5.19)
s=1
is obtained. If we subsequently call the OTG algorithm again at Ti+1 and use
the same input values, that is, Mi+1 , Mi , Bi , and Si , we will compute exactly
trgt
sync
the same absolute synchronization time ti+1 = tisync , because we compute the
time-optimal trajectory again. This goes along with the consistency criterion
of Chap. 3.3 (p. 42). While the absolute value of tisync remains constant until
80 5 Solution in Multi-dimensional Space
the target state of motion has been reached, the time difference from each
cycle to the synchronization time naturally decreases by Tcycle per cycle:
sync sync
ti − Ti − ti+1 − Ti+1 = Tcycle . (5.23)
The resulting values Mi+1 are subsequently used for lower-level control.
Table 3.1 (p. 39): α = 8 and β = 3 indicate that the target acceleration
vector Aitrgt and the target jerk vector Jitrgt equal the zero vector at any
time instant Ti with i ∈ while we can specify a target velocity vector
V trgt , which is exactly reached at the target position P trgt . Regarding the
i i
motion constraints, maximum velocities Vi max , maximum accelerations Aimax ,
and maximum jerks Jimax are taken into account, and each selected DOF k
can exhibit up to Z = 1 inoperative time interval 1k ζi . Four decision trees are
required:
• Three decision trees are required for the Step 1 calculations of
– the minimum execution times k timin for every selected DOF k ∈ {1, . . . , K},
– the lower limits k tibegin of the inoperative time interval 1k ζi for every
selected DOF k ∈ {1, . . . , K}, and
– the respective upper limits k tiend for every selected DOF k ∈ {1, . . . , K},
and
• one decision tree is necessary for Step 2.
We organize this section in the same way as the corresponding Sec. 4.2
of the previous chapter: After the introduction of the Type IV, Variant A
algorithm, we subsequently describe the algorithm for the B-Variant.
A non-scientific problem formulation described in very simple words can
again be found in App. D.3 (p. 203).
As depicted in the general structogram in Fig. 5.1 (p. 70), it is the goal of this
step to calculate the synchronization time tisync . After the calculation of the
minimum execution times k timin for all selected DOFs k ∈ {1, . . . , K}, we sub-
sequently check all selected DOFs to see whether they exhibit an inoperative
time interval 1k ζi , in order to finally determine the value for tisync .
The procedure for the calculation of the minimum execution times k timin for all
selected DOFs k ∈ {1, . . . , K} was already described in Chap. 4.2.1 (p. 50).
We apply the decision tree 1A of Fig. 4.4 (p. 52) in order to determine an
acceleration profile kΨi Step1 of the set PStep1 . A subset of PStep1 was presented
in Fig. 4.3 (p. 50). Once we know the profile kΨi Step1 , which leads to the
time-optimal trajectory for DOF k, we can set up a system of nonlinear
equations (e.g., eqns. (4.21) – (4.32), p. 53, for the PosTriNegTri acceleration
profile). Then, a position-error function is generated, which only depends on
one of the unknown variables of the system of equations. We are interested in
82 5 Solution in Multi-dimensional Space
one particular root of this function: The root that delivers the time-optimal
solution for the given input parameters kW i . For this purpose, we determine
an interval, from which we know that the root lies within it (e.g., Alg. 4.1,
p. 57). After we know the interval bounds, the modified Anderson-Björck-
King method (cf. App. A, p. 185) is applied in order to calculate the root
numerically. Using this root value, all remaining unknowns of the system
of equations can be calculated as exemplarily shown in App. B.3 (p. 190).
In contrast to the one-dimensional case, we do not calculate all unknown
variables, and we do not parameterize a trajectory, but we only calculate the
value of k timin .
Remark 5.2. Because these decision trees would engross too much space,
they cannot be depicted completely in a book, thesis, or script. To give an
impression of the complexity: The tree 1B — written in font size of 10 pt,
prepared in a minimized version, and with all nodes tightly arranged — can
just be plotted on a poster of DIN A0 size.1 Even the description would fill
a book of several hundred pages, such that here only an impression shall be
imparted, and only the basic conceptual ideas are explained. The cutouts of the
four Type IV decision trees presented in Figs. 4.4, 5.6, 5.7, and 5.8 can only
be considered as small samples. The decision tree of the extension for Variant
B (Fig. 4.8, p. 62), however, is presented in extenso. A deeper discussion on
this topic can be found in Chap. 9.10 (p. 173).
The decision tree 1B of Fig. 5.6 determines the acceleration profile for the
calculation of 1k tibegin . Compared to the tree 1A of Fig. 4.4, in which we tried
to reach the target state of motion k M trgt as fast as possible, we try to reach
i
1 The actual 1B decision tree as developed by the author engrosses two DIN A0
posters (also in a minimized version and with a font size of 10 pt but with potential
for tightening).
5.3 Type IV On-Line Trajectory Generation 83
Fig. 5.6 Cutout of the Type IV decision tree 1B for the determination of an accel-
eration profile kΨ̌i Step1 ∈ PStep1 for the calculation of k tibegin .
trgt
k Mi within the next possible greater time, which can be achieved with
another acceleration profile or with another set of profile parameters. The
result can either be an acceleration profile kΨ̌i Step1 or the insight that there
is no inoperative time interval 1k ζi , that is, 1k tibegin = ∞ and 1k tiend = ∞. If the
84 5 Solution in Multi-dimensional Space
result is an acceleration profile, which we denote with kΨ̌i Step1 , we set up the
respective system of equations in order to calculate the profile’s execution
time 1k tibegin . If the system of equations delivers two solutions (cf. Examples
5.1 and 5.2, p. 73), we have to be careful: If the determined profile kΨ̂i Step1 is
the same profile as kΨi Step1 that we used to calculate the minimum execution
time 1k timin , we have to take the greater solution; otherwise, that is, kΨ̂i Step1 =
kΨ̌i
Step1
, the lesser one is the correct one, because the greater one would
already have specified the upper interval limit 1k tiend .
Fig. 5.7 depicts the third decision tree for the Type IV OTG algorithm.
This tree is only applied if we know from the result of the previously executed
tree that an inoperative time interval 1k ζi exists, that is, compared to the tree
1B of Fig. 5.6, in tree 1C we already know that an upper time interval limit
1 t end is present. While tree 1B started at 1 t min and searched from the left
k i k i
to the right on the time axis to find the left interval limit 1k tibegin , we now
start from the right to find 1k tiend . That means we first try to reach the target
state of motion k M trgt of a selected DOF k with a Step 1 acceleration profile,
i
which would require the greatest possible execution time. If the target velocity
trgt
kVi is negative (Decision 1C.001), we try to reach k Pitrgt by first applying
the maximum velocity +kVi max (Decision 1C.004/1C.011). Afterwards, we try
to decrease the positive acceleration face Trap 1C.004 or a Tri (1C.011) step
by step until we find a profile kΨ̂i Step1 whose system of equations is solvable.
If the system of equations delivers two valid solutions for the desired upper
interval bound 1k tiend , the maximum one is the correct one, because the lesser
one would be 1k tibegin .
Now, we have calculated min
all minimum execution times k ti and all inoper-
ative time intervals 1k ζi = 1t begin , 1t end
k i k i for all selected DOFs k ∈ {1, . . . , K},
and we know the complete set of all possible candidates for tisync .
Determining tisync
As shown in the structogram of Fig. 5.1 (p. 70), the determination of the
minimum possible value of tisync is the last substep of Step 1. It works exactly
in the same way as generally described in Sec. 5.1.1 (p. 74). We first determine
the greatest element of all minimum execution times, and in a second step,
we make sure, that tisync is not an element of the set of inoperative time
intervals Zi .
Step 2
In accordance with Sec. 5.1.2, Step 2 calculates the coefficients of all sets
of motion polynomials l mi (t). That means, we need an acceleration profile
kΨi
Step2
for each single selected DOF k that facilitates the desired time-
synchronization, such that all selected DOFs reach their k Pitrgt and kVitrgt
5.3 Type IV On-Line Trajectory Generation 85
Fig. 5.7 Cutout of the Type IV decision tree 1C for the determination of an accel-
Step1
eration profile kΨ̂i ∈ PStep1 for the calculation of k tiend .
exactly at tisync . Apart from the eight input values of Wi for each DOF k,
tisync is the ninth input value for the decision tree from Fig. 5.8, which acts as
function
f : 9 \ H −→ PStep2 , (5.26)
86 5 Solution in Multi-dimensional Space
Fig. 5.8 Cutout of the Type IV decision tree for Step 2 to determine an acceleration
profile kΨiStep2 ∈ PStep2 for one DOF k ∈ {1, . . . , K}.
that is, the tree has to cover the complete input domain 9 \ H for all systems
of equations (cf. eqn. (5.26)):
s
DStep2 ⊂ 9 (5.27)
S
s
DStep2 = 9 \ H . (5.28)
s=1
5.3 Type IV On-Line Trajectory Generation 87
Fig. 5.9 A subset of the acceleration profile set PStep2 of Type IV.
Due to Step 1, we already know that the nine-element input vector is not an
element of H. It is important that the optimization criterion of eqn. (5.10)
(p. 75) is met by the decision tree and thus by the acceleration profiles of Step
2, PStep2 . The essential consequence of eqn. (5.10) is that only rectangular jerk
profiles can be applied, and the jerk progression can only take three values:
zero, the positive, or the negative maximum jerk value.
A subset of the acceleration profiles of PStep2 is shown in Fig. 5.9, and
a selection of these profiles is supposed to be parameterized during Step
2 in order to calculate the trajectory Mi at a time instant Ti . Fig. 5.8
shows a cutout of the Step 2 decision tree and was drawn analogously to
the previous three decision trees of Figs. 4.4, 5.6, and 5.7. As with Decision
1A.001, Decision 2.001 checks whether the current acceleration value k Ai is
positive or negative. Assuming the left branch is selected, we let Decision
2.002 check whether the velocity value would be greater or less than k vitrgt
if −k Jimax was applied to decrease the acceleration value to zero. Decision
2.003 checks whether k Aimax must be applied to reach k vitrgt , that is, we find
out whether a positive triangle or trapezoidal acceleration profile would lead
to k vitrgt . We assume that a trapezoidal profile is required. Decision 2.004 in-
spects, whether the resulting position value of DOF k at tisync is greater or less
than k pitrgt if k vitrgt would be reached as soon as possible by applying a trape-
zoidal acceleration profile (PosTrap). If the resulting value is less, we know
that we have to increase the hold time of the trapezoidal acceleration profile,
that is, a PosTrapZeroNeg. . . profile would be required. Before we decide,
whether kΨiStep2 = PosTrapZeroNegTri or kΨiStep2 = PosTrapZeroNegTrap is
correct, Decision 2.005 verifies whether we would have enough time to ap-
ply a positive trapezoidal acceleration profile directly followed by a negative
triangle-shaped profile that exactly touches −k Aimax , such that k vitrgt is finally
reached. If we do not have enough time for this acceleration progression,
88 5 Solution in Multi-dimensional Space
Fig. 5.10 The PosTriZeroNegTri profile with all relevant variables, such that the
system of equations of eqns. (5.29) – (5.42) can be directly set up.
kΨi
Step2
= PosTrapZeroNegTri is the solution. If there is enough time for the
acceleration behavior checked by Decision 2.005, Decision 2.006 checks the
boundary case for the profiles PosTrapZeroNegTrap and PosTrapZeroNegTri
and finally determines the acceleration profile. The decisions 2.007 to 2.012
work analogously.
Analogous to the system of equations given by eqns. (4.21) – (4.32) (p. 53),
we can set up a further system of equations for each acceleration profile
sΨ Step2 ∈ P
Step2 of Fig. 5.9. A Step 2 profile has to be found for every
selected DOF k ∈ {1, . . . , K}, and the solutions of all resulting systems
of equations deliver all required parameters for all L trajectory segments
l m ∀ l ∈ {1, . . . , L} as well as all time intervals l V (cf. eqns. (3.8) and
i i
(3.9), p. 34). This procedure will be exemplarily explained by means of the
simple profile sΨ Step2 = PosTriZeroNegTri as shown in Fig. 5.10 (cf. top right
element of Fig. 5.9). In a straightforward way we can set up a system of 14
equations for one selected DOF k at time instant Ti :
peak1
ka − k Ai
k ti − Ti =
2
max (5.29)
k Ji
peak1
ka
3
k ti − 2k ti = max (5.30)
k Ji
peak2
ka
5
k ti − 4k ti = − max (5.31)
k Ji
peak2
ka
tisync − 5k ti = − max (5.32)
k Ji
1 2
2
k vi − Vi = k ti − Ti k Ai + k a
peak1
(5.33)
2
5.3 Type IV On-Line Trajectory Generation 89
1 3 peak1
3
k vi − 2k vi = k ti − k ti k a
2
(5.34)
2
4
k vi − 3k vi = 0 (5.35)
1 5
5
k vi − 4k vi = k ti − k ti k a
4 peak2
(5.36)
2
trgt 1 sync
kVi − 5k vi = ti − 5k ti k a peak2 (5.37)
2
2 1 2 2
2
k pi − k Pi = kVi k ti − Ti + k Ai k ti − Ti
2
1 max 2 3
+ k Ji k ti − Ti (5.38)
6
3 1 peak1 3
2 2
3
k pi − 2k pi = k vi k ti − k ti +
2 2
k ai k ti − k ti
2
1 max 3 2 3
− k Ji k ti − k ti (5.39)
6
4
4
k pi − 3k pi = k i k ti − k ti
3
v 3
(5.40)
1 max 5 3
5
k pi − 4k pi = k vi k ti − k ti
4 5 4
− k Ji k ti − k ti
4
(5.41)
6
1 peak2 sync 2
trgt sync
k Pi − 5k pi = 5
k vi ti − 5k ti + k ai ti − 5k ti
2
1 max sync 3
+ k Ji ti − 5k ti (5.42)
6
In the same way, we applied Algorithm 4.1 (p. 57) for the function
PosTriNegTri p err
i aipeak1 , we use Algorithm 5.1 to calculate an interval mink aipeak1 ,
max a peak1 , from which we know that the function PosTriZeroNegTri p err2 peak1
k i i k ai
is continuous and contains the only root of the function, that is, the desired
peak1
value of k ai . It is clear that
min peak1 peak1 max peak1
k Ai ≤ k ai ≤ k ai ≤ k ai ≤ k Aimax (5.44)
holds, but some further restrictions have to be considered and are explained
in the following.
In Algorithm 5.1, acceleration profiles are used, such that the synchroniza-
tion time tisync and the boundary values k Aimax and k Jimax are exerted either
as strongly or as weakly as possible. For the first calculation (lines 1 – 4), we
set up an acceleration profile, which is described by four segments: +k Jimax
until maxk aipeak1 , −k Jimax until zero, −k Jimax until maxk aipeak2 , and +k Jimax until
zero (line 2). This profile becomes unambiguously specified by the ancillary
condition that the profile ends at tisync with kVitrgt . After setting up a system
of equations for this profile, which we can solve without numerical problems,
the two profile parameters maxk aipeak1 and maxk aipeak2 can be calculated in lines 3
and 4. Of course the values are not allowed to exceed the maximum accelera-
tion, such that we simply bound these values in lines 5 – 10. In the next step,
we have to find out whether maxk aipeak1 or maxk aipeak2 will be exerted. For this
purpose, we calculate the velocity k ṽi that we would achieve with the accel-
eration profile specified in line 12. If k ṽi ≤ kVitrgt , we know that the positive
value maxk aipeak1 of line 3/6 will constitute the upper bound of the accelera-
tion interval, otherwise the value of maxk aipeak2 of line 4/9 has to be considered
in the following. In lines 15 – 22 we calculate the lower bound mink aipeak1 ; due
max peak1 max peak2
to line 14 we already know that k ai ≥ k ai , such that we only
trgt
have to ensure that kVi can be reached with the positive acceleration face.
trgt
If kVi is exceeded after a decrease of k Ai to zero (line 16), we can simply set
min a peak1 to A (line 17). In the other case (lines 19 – 21), we simply calcu-
k i k i
late the PosTri acceleration profile, which would be required to reach kVitrgt .
In lines 24 – 27 we already know that max a peak2 ≥ max a peak1 ≥ min a peak1 .
k i k i k i
Hence, we can set mink aipeak1 to k Ai (line 24) and max
calculate k ai peak1
in depen-
dence on maxk aipeak2 (line 27) by setting up the profile described in line 26.
Due to line 9 and line 14 the resulting upper-bound value maxk aipeak1 cannot
be greater than k Aimax .
After the execution of Algorithm 5.1, we know that the position-error
function of the Step 2 PosTriZeroNegTri acceleration profile is continuous
within the interval from mink aipeak1 to maxk aipeak1 and contains exactly one root
within it. We use the modified Anderson-Björck-King method of App. A
5.3 Type IV On-Line Trajectory Generation 91
Algorithm 5.1 Calculate the interval limits for the desired root of
PosTriZeroNegTri p err2 peak1
i a
k i .
Require: tisync , kVi trgt , kVi , k Aimax , k Ai , k Jimax , with k Aimax ≥ k Ai ≥ 0, k Jimax ≥ 0
Ensure: min a peak1 , max a peak1
k i k i
1: Calculate max a peak1 and max a peak2 for the profile
k i k i
max a peak1 max a peak2 0, so that t = t sync ∧ v = V trgt
2: k Ai k i 0 k i i i
sync max max sync 2
peak1
3 (k Ai )2 + 2 k Ai ti k Ji + k Ji ti k Ji
max
− 4 kVi + 4 kVi trgt
3: maxk ai :=
4 k Ai + 4 tisync k Jimax
2
peak2
(k Ai )2 − 2 k Ai tisync k Jimax + k Jimax 4 kVi trgt − tisync k Jimax − 4 kVi
4: maxk ai :=
4 k Ai + 4 tisync k Jimax
5: if max a peak1 > k Aimax then
k i
6: max a peak1 := k Aimax
k i
7: end if
peak2
8: if maxk ai < −k Aimax then
9: max a peak2 := −k Aimax
k i
10: end if
11: Calculate k ṽi for the profile
12: k Ai k Ai
max 0 −k Aimax 0, so that v = k ṽi
( A )2
13: k ṽi := kVi − k max i
2 k Ji
trgt
14: if k ṽi ≤ kVi then
(Ai )2
15: v(Ai 0) := Vi +
2 Jimax
trgt
16: if v(Ai 0) > kVi then
17: min a peak1 := k Ai
k i
18: else
19: Calculate min a peak1 for the profile
k i
20: k Ai min a peak1 0, so that v = Vi
trgt
k i
(k Ai )2 + 2 kVitrgt − kVi k Jimax
21: min a peak1 :=
k i 2
22: end if
23: else
24: min a peak1 := k Ai
k i
25: Calculate max a peak1 for the profile
k i
max a peak1 peak2
= Vi trgt
k Ai 0, so that v
26: 0 max a
k i k i
2
peak2 trgt
peak1
(k Ai )2 + 2 maxk ai + 2 kVi − kVi k Jimax
27: max a :=
k i 2
28: end if
92 5 Solution in Multi-dimensional Space
(p. 185) to calculate the desired value of k aipeak1 . The practical relevance of
the Type III OTG algorithm of Haschke et al. [108] suffers from incorrect
solutions caused by numerical inaccuracies. Due to the procedure proposed
here, the algorithm becomes robust against numerical instabilities, which is
indispensable for a reliable usage.
Thus, we obtain the first of the 14 unknowns of eqns. (5.29) – (5.42). The
calculations of the other 13 variables are trivial and can be found in App. C.2
(p. 196). App. C.2 furthermore describes the determination of all trajectory
parameters for one selected DOF k ∈ {1, . . . , K}:
∀ l ∈ {1, . . . , 5} :
k
l
mi (t) = lk pi (t), lk vi (t), lk ai (t), lk ji (t) (5.45)
k ϑi ∈ l Vi with lk ϑi = k ti , k ti . (5.46)
l l l+1
Step 3
The last step of the Type IV OTG algorithm works exactly as described in
Sec. 5.1.3 (p. 79), and we can calculate the output values Pi+1 , Vi+1 , and
Ai+1 for the current control cycle. These values are subsequently used for
lower-level control.
In the first step of the algorithm, we have to calculate the minimum execution
time 1timin , and as we already know from eqn. (4.45), a minimum execution
time of
min
1 ti = 5.795 s (5.48)
will be required if 1timin determines tisync . In this case, Step 2 would calculate
exactly the same trajectory as depicted in Fig. 4.7 (p. 61) for DOF 1. To
explain the functionality of the synchronization concept of Step 2, we assume
that another selected DOF requires a greater synchronization time tisync . Let
the (arbitrarily chosen) value be
that is, one second more, such that eqns. (5.47) and (5.49) constitute the input
parameters for the Step 2 decision tree of Fig. 5.8. The resulting acceleration
profile is the PosTriZeroNegTri profile, that is, we can set up eqns. (5.29) –
(5.42) in order to calculate the desired trajectory parameters.After the trans-
PosTriZeroNegTri err2 peak1
formation to the position-error function pi 1 ai , Algo-
rithm 5.1 is executed to compute the interval, in which the desired value of
peak1
1 ai can be found:
min peak1 max peak1
1 a0 = 152.000 mm/s2 and 1 a0 = 591.651 mm/s2 . (5.50)
Fig. 5.12 Resulting trajectory for DOF 1 with i ∈ {0, . . . , 6795} for the given input
values of eqns. (5.47) and (5.49). The dashed lines indicate the times 21t0 , 31t0 , 41t0 ,
and 51t0 calculated in eqn. (5.52).
peak1
1 a0 = 459.259 mm/s2 (5.51)
determines the first of the 14 unknowns (cf. eqn. (4.44) and Fig. 4.6). As in
Step 1, we subsequently can compute the remaining 13 unknown variables as
described in App. C.2 (p. 196, eqns. (C.15) – (C.27)):
5.4 Summary and Final Remarks 95
2t = 0.948 s 3t = 2.366 s
1 0 1 0
4t = 4.012 s 5t = 5.403 s
1 0 1 0
2v
1 0 = −45.163 mm/s 3v
1 0 = 280.328 mm/s
4v
1 0 = 280.328 mm/s 5v
1 0 = −33.336 mm/s (5.52)
2p
1 0 = −702.287 mm 3p
1 0 = −458.722 mm
4p = 2.771 mm 5p = 247.356 mm
1 0 1 0
peak2
a
1 0 = −450.838 mm/s2 .
As a last substep the final trajectory parameters Mi for DOF 1 are calculated
by applying eqns. (C.28) – (C.52). Thus, we have calculated all polynomial
coefficients lk mi ∀ l ∈ {1, . . . , 5} as well as all respective time intervals l1 ϑi
with l ∈ {1, . . . , 5}. When we plot all these polynomials for the time instants
sync
from T0 = 0 ms to ti = 6795 ms, we obtain the diagrams of Fig. 5.12.
S
s
DStep2 = α +1 \H
s=1
S
S = s
DStep2 ∩ u DStep2 ∀ u ∈ {1, . . . , S} u = s
s=1
Inoperative time intervals lead to holes H in the input domain space of the
trajectory synchronization algorithm (eqn. (5.18)). These holes H, as well
as the input domains of the systems of equations for the motion profiles
of Step 2, are bounded by α -dimensional hyperplanes S in the (α + 1)-
dimensional space (eqn. (5.19)).
Decision Trees
The OTG algorithm requires 2 Z + 2 = 2 α − 4 β decision trees (cf.
eqn. (5.24)): one tree to calculate the minimum execution time of each
selected DOF k ∈ {1, . . . , K}, 2 Z trees to calculate the up to Z inoper-
ative time intervals and therewith also H, and one tree to calculate the
synchronized trajectories. All trees together describe S (cf. eqn. (5.19)).
The algorithmic concept of command variable generation presented here
can be applied in a wide range of robotic applications. Furthermore, new ar-
chitectural concepts in the field of hybrid switched-system control become
possible. Both aspects are discussed in Chap. 7. Examples and interest-
ing results are shown in Chap. 8. But before, the next chapter introduces
a very relevant special case for on-line trajectory generators: straight-line
trajectories.
Chapter 6
On-Line Generation of Homothetic
Trajectories
The proposed algorithm of the previous chapter constitutes the heart of this
book and will be slightly extended in this chapter. Here, we consider a special
case that is a very relevant one in practice: on-line generation of homothetic
trajectories. These trajectories are one-dimensional straight-lines in a multi-
dimensional space and are relevant for all straight-line motion operations
in robotics. For the realization of this additional feature, the trajectories
generated by the OTG algorithm not only have to be time-synchronized,
but also phase-synchronized. After the problem has been formulated in the
following section, an adaptation of the general OTG algorithm that copes
with this new demand is presented in Sec. 6.2.
T. Kröger: On-Line Trajectory Generation in Robotic Systems, STAR 58, pp. 99–104.
[Link]
c Springer-Verlag Berlin Heidelberg 2010
100 6 On-Line Generation of Homothetic Trajectories
are fulfilled. The ratios between the reference DOF κ and all other DOFs
{1, . . . , K}\{κ } are defined by the constant vector
are the same for both DOFs, such that the non-synchronized motion starts
with an angle of 45◦ with respect to the reference frame. The time-synchronized
one starts in P0 and ends in P0trgt with an angle of 45◦ . To generate
Condition 1
∃ γ = γ1 , . . . , γ(α −β −2) ∈ (α −β −2), that is, for the Type IX OTG algorithm:
P trgt − Pi = γ1 Vi = γ2 V trgt = γ3 Ai = γ4 A trgt = γ5 Ji = γ6 J trgt . (6.6)
i i i i
kΨi
Step1
with ∈ PStep1 ∀ k ∈ {1, . . . , K} .
Fig. 6.2 shows the general Nassi-Shneiderman structogram of the algorithm
presented here. Based on eqn. (6.7), we can determine the maximum element
of timin , which we define as κ timin .
κ ti
min
= max 1timin , . . . , K timin (6.9)
1 For the OTG Types I-II, Ai , Aitrgt , Ji , and Jitrgt are irrelevant; for the Types III-
V, Ji and Ji trgt are not relevant, because they are not considered by these OTG
algorithms (cf. Table 3.1, p. 39).
102 6 On-Line Generation of Homothetic Trajectories
Fig. 6.2 General Nassi-Shneiderman structogram for the OTG algorithm for ho-
mothetic trajectories (cf. Fig. 5.1, p. 70).
∀ k ∈ {1, . . . , K} :
k Pi
trgt
− k Pi = δ1 kVi max = δ2 k Aimax = δ3 k Jimax = δ4 k Dimax . (6.12)
Since this is commonly not given, we have to adapt Bi to Bi , or more precisely:
all elements of Bi except the ones of the reference DOF κ . This is done in
two steps. First, we calculate the vector
P trgt − Pi
ρi = i
trgt , (6.13)
P
κ i − κ Pi
6.2 The Algorithm 103
∀ k ∈ {1, . . . , K} :
kVi
max
= k ρi κ Vi max k Ji
max
= k ρi κ Jimax
(6.14)
max
k Ai = k ρi κ Aimax max
k Di = k ρi κ Dimax .
With
Bi = Vi max , Aimax , Jimax , Dimax (6.15)
the requirement of eqn. (6.12) is fulfilled. In order not to breach the boundary
values Bi the elements of Bi must be less than or equal the original ones of Bi :
Condition 2
∀ k ∈ {1, . . . , K} :
kVi
max ≤ kVi max ∧ k Ji
max ≤ k Jimax
(6.16)
∧ max
k Ai ≤ k Aimax ∧ max
k Di ≤ k Dimax .
If this condition is also fulfilled, one further condition has to be satisfied
to be able to generate a homothetic trajectory. All selected DOFs have to
be executed with the motion profile of the reference DOF κ Ψi Step1 to comply
with eqns. (6.1) and (6.2). As we know from Chap. 4 and Chap. 5, we can use
κ Ψi
Step1
to set up a system of equations for each selected DOF. But instead of
Bi , Bi becomes applied here together with Mi , Mitrgt , and Si . The solution of
a system of equations contains the execution time k timin for a selected DOF
k. For all DOFs except κ , the value differs from k timin
min
k ti ≥ k timin ∀ k ∈ {1, . . . , K}\{κ } (6.17)
min
κ ti = min
κ ti , (6.18)
because Bi and κ Ψi
Step1
are applied. It may happen, that no valid solution
can be found for one or more DOFs, because the system of equations for the
profile κ Ψi Step1 does deliver a valid solution. In such a case, the profile κ Ψi Step1
cannot transfer Mi to Mitrgt and homothety is not possible. To generate a
homothetic trajectory, all selected DOFs have to reach their target state of
motion synchronously, that is,
Condition 3
min
k ti = κ timin ∀ k ∈ {1, . . . , K} (6.19)
must be fulfilled as a final condition. Equation (6.19) has to be regarded as
theoretical. Due to numerical inaccuracies
104 6 On-Line Generation of Homothetic Trajectories
min
k ti − κ timin ≤ T cycle ∀ k ∈ {1, . . . , K} (6.20)
has to be applied in practice. T cycle is the cycle time, that is, the time interval,
in which the OTG algorithm is periodically executed.
As a result of the above, the Conditions 1, 2, and 3 (eqns. (6.6), (6.16),
and (6.20)) must be fulfilled to generate a homothetic trajectory. In Fig. 6.2,
this check is done in the block “Is homothety possible?,” that is, if possible, the
OTG generates a homothetic trajectory (left branch), otherwise only a time-
synchronized trajectory is generated (right branch). In the case of homothety,
the profile κ Ψi Step1 and the adapted boundary values Bi are applied in Step 2
to all selected DOFs in order to calculate homothetic motion parameters for
the trajectory Mi (t) at time instant Ti .
This chapter presented an adaptation of the general OTG algorithm of
Chap. 5 in order to provide the possibility of generating trajectories along
a one-dimensional straight-line in a multi-dimensional space during runtime,
that is, the possibility to instantaneously react to unforeseen and abrupt set-
point switchings is sustained also for this kind of trajectory. This adapted
algorithm can be applied on-line in the same way as the OTG algorithm of
the previous chapter, and it fulfills all four criteria (i – iv) of Chap. 3.3 (p. 40).
Concrete experimental results are presented in Chap. 8.3 (p. 141).
Chapter 7
Hybrid Switched-System Control for
Robotic Systems
T. Kröger: On-Line Trajectory Generation in Robotic Systems, STAR 58, pp. 105–135.
[Link] c Springer-Verlag Berlin Heidelberg 2010
106 7 Hybrid Switched-System Control for Robotic Systems
joint space control concept is also a very classical one. Details on these kinds
of control schemes can be found in abundance in the literature [55, 127, 135,
246, 278].
All blocks of the top part of the figure are software components, and the
OTG Type IV algorithm is used twice and provides two different functional-
ities in this hybrid switched-system:
OTG as open-loop pose control submodule in a switched-system
The block Open-loop pose controller (Type IV OTG) applies the Type IV
OTG algorithm and has the same input and output values as depicted
in Fig. 3.3 (p. 37). In this example, we assume the robot to be equipped
with a force/torque sensor, a vision system, and a distance sensor. Corre-
sponding to these sensor systems, we use three closed-loop controllers for
7.1 Hybrid Switched-System Control 107
position, and ( xep, yep, zep) represent the orientation in Cartesian space.
After its transformation into joint space, the values of (q, q˙, q¨) act as com-
mand variables for lower-level control.
This kind of task level control is the basic structure that enables the
execution of sensor-guided and sensor-guarded robot motion; we are now
able to switch the control method of each DOF at any arbitrary (e.g.,
sensor-dependent) time instant. In particular: We are able to switch from
sensor-guided robot motion control to trajectory-following control at any
time, such that the execution of sensor-guarded motion becomes possible
(cf. Def. 1.1, p. 5). Another new feature is the possibility of arbitrary
reference frame changes: We are able to change the pose of the reference
frame from one control cycle to the next one.
OTG as command variable generator in actuator (joint) space
The second instance of OTG in Fig. 7.1 is dedicated to the control of se-
rial kinematic machines. Parallel or hybrid kinematic machines would re-
quire a different architecture. This instance of the OTG algorithm enables
switchings from task space control to joint space control at any arbitrarily
chosen time instant and in any arbitrary state of motion. This important
feature cannot be provided without the concept of OTG. Some exemplary
advantages of this idea are:
• Possibility of a desired or undesired instantaneous aborting of a task
space motion due to an unforeseen sensor event (e.g., sensor near me-
tering range limit, human being in workspace, or arbitrarily changed
task parameters) and safe continuation in joint space.
• Instantaneous and safe aborting of a (sensor-guided) task space motion
due to sensor malfunctions.
• Possibility of aborting a high-performance motion in task space at
sensor-dependent system states and immediate continuation in joint
space (neither a stop nor a continuous path motion is required).
• For the case that a sensor-guided motion is heading toward a singularity,
the Cartesian motion can be aborted and safely continued in joint space.
These switchings, either in Cartesian space from one controller to another
or the switching from Cartesian space control to joint space control (or vice
108 7 Hybrid Switched-System Control for Robotic Systems
Remark 7.1. Both OTG instances can be considered as a special case of the
classic transition window technique, which is commonly used for continuous
path motions [98, 168, 205, 222, 256]. The particularity of the OTG algorithm
is that the transition window between two motion segments has a size of zero.
Remark 7.2. In earlier works [85, 88, 140, 141, 142], the two described
switching features were realized with a Type I OTG algorithm, which is only
qualified for experimental works. The Type I properties are comparable to
driving a motorcar either at full throttle, at full braking, or without touching
the brake or the gas pedal. The resulting rectangular acceleration signals lead
to high wear of all mechanical components and excite natural vibrations, such
that the lifetimes of robotic systems (and also of cars) would be significantly
decreased. Due to the algorithms presented in this book, in particular the Type
IV OTG algorithm, systems as shown in Fig. 7.1 become ready for practice.
The following two subsections introduce MPs and the necessary details on
the underlying hybrid switched-system control scheme. Compared to [85] the
control scheme becomes modified here. While the original MP concept only
works pose-/position-based, which leads to non-optimal trajectory-following
behavior and also non-optimal dynamic properties, we now apply the same
algorithms in state space.
MP i := {HMi , τi , λi } (7.1)
where HMi defines a hybrid motion, τi contains tool commands, and the
stop condition λi determines the end of a single MP. The tool command τi
is not relevant for this work2; the other two quantities will be described and
discussed in the following.
HMi defines a hybrid move in the sense of the Task Frame Formalism [40].
In the classical case, a motion command is given w.r.t. the Task Frame and is
determined by a six-dimensional vector representing the Compliance Frame
[176]. This simple vector is not a sufficient — and in particular — not a prac-
tical way to parameterize sensor-guided robot motion commands when con-
sidering multiple sensors.
Example 7.1. A transition from free space into any contact state requires
a switch from one controller, for example, a feedforward trajectory-following
controller, to an adequate and task-dependent one, for example, a force/torque
controller. This switching can only be realized on the low-level control layer
(cf. [31] and [163]), that is, in real-time from one control cycle to the next
one — instantaneously at the moment of contact detection. Of course, the
same behavior must be achieved in the opposite case, that is, a switch from
force/torque control to trajectory-following control and/or the case of con-
tact loss. Hence, the responsibility of discretely switching in-between a set of
continuously working discrete controllers cannot be shifted to the user or the
user application but must necessarily be executed on this low control level.
2 Details can be found in [85] and in [88].
110 7 Hybrid Switched-System Control for Robotic Systems
Fig. 7.2 Three phases of establishing an environmental contact [37, 220] (cf. Ex-
ample 7.1).
The hybrid move command HMi is an interface to freely specify the control
behavior on this low level.
Furthermore, it is easily realizable to utilize contact transition controllers
as proposed by Brogliato [37] and Reisinger [220]. An intuitive example on
this issue is shown in Fig. 7.2.
HMi := {T F i , Di } (7.2)
with
T F i := {θi , RFi , ANCi , FFCi } (7.3)
with
7.2 The Manipulation Primitive Framework 111
C := {0, . . . , (m − 1)}
Equations (7.2) – (7.10) are discussed in the following. The hybrid move
command HMi of eqn. (7.2) is specified w.r.t. the Task Frame T F i , in which
a set of set-points Di is applied. The following part explains the Task Frame
definition (eqns. (7.3) – (7.6)), and subsequently details on Di are introduced
(eqns. (7.7) – (7.10)).
Fig. 7.3 shows all respective frame assignments for the context of this concept.
At each instant Ti with i ∈ , a state of motion is assigned to each frame
Mi = APiB , AViB , AABi ,
A B
(7.11)
that is, the motion of frame B w.r.t. frame A. The work cell is assumed to
be equipped with n different sensors, of which ñ are stationary mounted in
the robot’s environment W F (world frame), (n̂ − ñ) are mounted w.r.t. the
robot hand HF, and (n − n̂) are mounted on some external system EF 3 . If
sensor systems are stationary mounted w.r.t. some system, their respective
motion states only contain a pose value and two zero vectors. If the robot
is stationary mounted in its work cell, the velocity and acceleration vector
of W F MiBF are also equivalent to the zero vector for all i ∈ . The motion
states of all frames are updated every control cycle, and it is the aim of
the hybrid switched-system in Fig. 7.1 to calculate a new motion state of the
hand frame HF w.r.t. the robot base frame BF: BF MiHF . This motion state can
be subsequently transformed into joint space by using the inverse kinematic
equation and the inverse or pseudo-inverse Jacobian.
The Task Frame at instant Ti , T F i , is specified by eqn. (7.3) and can be
anchored by the ANCi frame either to the robot hand frame HF, to the world
frame W F, or to the external frame EF. During the execution of one single
MP the transformation ANC PiT F remains constant. The vector θi (eqn. (7.3))
determines the position (x θi , y θi , z θi ) and orientation ( xeθi , yeθi , zeθi ) of the
Task Frame w.r.t. the reference frame RFi at the beginning of a single MP
execution. RFi can be selected from a set of frames, that is known by the
system (eqn. (7.5)). Pose, velocity, and acceleration of each of these frames
3 Of course it is possible to use more than one external system; in this example, we
only introduce one system EF in order to explain its handling.
112 7 Hybrid Switched-System Control for Robotic Systems
is updated every control cycle T cycle . The frame ANCi serves as anchor and
connects the Task Frame rigidly to another frame of the work cell. The frame
FFCi (eqns. (7.3) and (7.6)) usually equals the world frame or the robot base
frame if a mobile manipulation system is considered. If (compliant) motions
are to be executed w.r.t. an external moving coordinate system, or if the
manipulator is mounted on a mobile platform, the frame FFCi (i.e., its pose,
velocity, and acceleration) enables the internal computation of feedforward
compensation (FFC) signals, such that a sensor-based motion command can
be executed in dynamic systems in the same way as in static ones (cf. [261]).
Regarding the anchor frame, we distinguish between different cases, which
are briefly discussed in the following.
Task Frame Attached to Hand Frame (ANCi = HF)
This case is comparable to the classic Compliance Frame Formalism [40,
176, 227] and hybrid force/pose control [217]. Here the Task Frame is
synonymous to the Center of Compliance; it follows the motions of the
hand frame of the manipulator. All set-points must be interpreted relatively
in order to allow unequivocal hybrid switched-system control. Hence, the
position and orientation set-points do not determine the target Task Frame
pose w.r.t. the old Task Frame, they determine the relative displacements
of the Task Frame along the corresponding DOFs. If rotations are involved,
the final pose depends on angular velocities, angular accelerations, and
Fig. 7.3 Frame assignments in a robot work cell in accordance with [88] for the
proposed method of motion specification.
7.2 The Manipulation Primitive Framework 113
Fig. 7.4 Task Frame attached to the hand frame (ANCi = HF): Depending on
maximum and/or desired angular velocities zeVi max and accelerations zeAimax (jerks
are assumed to be infinite in this simple example, that is, Type I OTG), the pose set-
points x Pitrgt = 50 mm, y Pitrgt = 0 mm, and zePitrgt = 90 ◦ result in different Task Frame
poses depicted from a) to d): Only the covered distance is the same in all cases; a)
max −→ 0 ◦ /s2 , eV max −→ 0 ◦ /s, A max −→ ∞, and V max −→ ∞; b) eA max −→ ∞,
zeAi z i x i x i z i
zeVi
max −→ ∞, A max −→ 0 mm/s2 , and V max −→ 0 mm/s; c) somewhere between a)
x i x i
and b); d) same as c) (cf. [88]).
angular jerks. For a better understanding, Fig. 7.4 shows a simple example
with three DOFs.
Task Frame Attached to Robot Base Frame (ANCi = BF)
The Task Frame pose w.r.t. the robot base frame is fixed during the exe-
cution of MPs. In this configuration, two different options are available:
(a) Pose set-points are interpreted in an absolute way and determine the
target pose of the hand frame. Classical robot move commands can be
realized with this kind of Task Frame configuration. Hybrid switched-
system control is not possible.
(b) Pose set-points are interpreted relatively, and hybrid switched-system
control becomes enabled. The difference between both modes is illus-
trated by the simple example in Fig. 7.5. Of course it is possible to
switch between both modes at any time instant.
Task Frame Attached to World Frame (ANCi = W F)
If the manipulator’s base is stationary mounted within its work cell, the
control behavior is the same as in the previous case. In the case of mobile
manipulation systems, the motion is executed w.r.t. the stationary Task
Frame. Hybrid switched-system control is possible in the same way as it
is for the ANCi = BF case.
Task Frame Attached to External Frame (ANCi = EF)
The external frame EF indicates a frame of any device (e.g. a conveyor belt,
another manipulator, or a mobile robot). This is similar to the previous
114 7 Hybrid Switched-System Control for Robotic Systems
Fig. 7.5 Task Frame attached to the world frame (ANCi = W F): The hand frame
trgt trgt
reaches different poses if the pose set-points x Pi = 30 mm, y Pi = 40 mm, and
◦
zePi
trgt
= 0 are interpreted either relatively or absolutely (cf. [88]).
case. However, the anchor frame ANCi is not mandatorily fixed, that is,
the Task Frame may follow a moving frame EF.
Let us now discuss eqns. (7.7) – (7.10). The set Di (eqn. (7.7)) contains up
to (6 m) set-points lk Dic , where m is the number of available controllers. Each
controller of the set C (eqn. (7.10)) is identified by the index c; C contains
|C| = m controllers. Since it is possible to use more controllers than sensors,
n ≤ m (7.12)
holds. A set-point lk Dic for DOF k (eqn. (7.8)) on control level l (eqn. (7.9))
that is assigned to controller c (eqn. (7.10)) consists of two attributes:
• a set of set-points lkΨi c and
• a set of (optional) parameters lk Φic .
Remark 7.3. For the case of c = OTG_Ctrl: The sets lkΨiOTG Ctrl ∀ k ∈
x, y, z, xj, yj, zj would contain the elements of the desired target state
of motion Mitrgt , and the parameters lk ΦiOTG Ctrl ∀ k ∈ x, y, z, xj, yj, zj
would contain the elements of the boundary values Bi (cf. Chaps. 3 – 6).
Equation (7.7) assures that only one controller can be assigned for every
combination of DOF k and level l. Table 7.1 presents an example of a set-
point set Di . It demonstrates that a list of alternative devices can be declared
for each DOF. Of course, these alternatives are optional and its number de-
pends on the current task. They are unambiguously indicated by the level
7.2 The Manipulation Primitive Framework 115
Table 7.1 Tabular example of the MP set-point set Di . The physical units depend
on the selected controller. For each DOF, (m − 1) alternatives can be specified to
ensure deterministic and stable behavior (cf. [85]).
m−1 — — — — — —
2 — — — — — —
m−1 — — — — — —
Stop Condition λi
I represents the identity matrix. This results in the required unique assign-
ment of controllers to DOFs. The left part of Fig. 7.6 depicts such a sample
assignment.
As mentioned in Sec. 7.2.1, the MP approach allows the definition of sev-
eral alternative set-points (eqns. (7.7) – (7.10)), such that stable and efficient
robot control is feasible for each individual DOF. For the execution of MPs,
which allow the usage of any kind and any number of sensors, those classical
two-dimensional selection matrices do not suffice. The definition of several al-
ternative control loops requires extension by a third dimension representing
the control level l with l ∈ {0, . . . , (m − 1)}, this three-dimensional compi-
lation is illustrated in the right part of Fig. 7.6. The control loops of a DOF
x can be shifted along the double-headed arrow (e.g., switching from force
to visual servo control in Fig. 7.6). Thus, the active control variable can no
longer be determined by constant selection matrices Sic of eqn. (7.15). The
selection works dynamically and depends on two factors:
1. The currently available sensors and controllers as well as the current system
state.
2. The assignment of controllers and control levels per DOF, that is, HMi .
In Fig. 7.1 the adaptive selection matrix is indicated by a dashed box. For-
mally, a controller c, for example, force/torque, pose, or velocity controller,
receives a number of set-points lkΨi c , parameters lk Φic (eqn. (7.7)), the Task
Frame parameters (eqn. (7.3)), and the assignment matrix Zic , which is gen-
erated from the respective DOF and level combinations (k, l) (cf. eqn. (7.7)).
After the control algorithm of controller c has been executed, its output
7.2 The Manipulation Primitive Framework 119
delivers two items: The availability matrix Fic , and three controller output
matrices containing a new state of motion for each controlled DOF: pos Oic ,
vel O c , acc O c . Depending on the controller, the controller output matrices can
i i
contain either absolute or relative values (cf. Fig. 7.5). These four matrices
are the basis for the calculation of the control variable assignment matrices
Gri with r ∈ {pos, vel, acc} and the flag assignment matrix Ei , which are used
to determine the adaptive selection matrix Hi at instant Ti . All mentioned
matrices and all calculation steps will be explained in the following.
where = {0, 1} .
Each column corresponds to a DOF and each row represents a control level,
where m determines the maximum number of control levels. An entry of ‘1’
assigns the DOF of the c-th controller to the control level l. The matrix
corresponds to a vertical slice of the three-dimensional adaptive selection
matrix representation of Fig. 7.6 (right). All m assignment matrices Zic ∀ c ∈
C are input matrices for the control submodules and are implicitly defined by
the set-point set Di .
Velocity Ctrl
Example 7.3. The following assignment matrix Zi has been de-
fined for the open-loop velocity controller at time Ti :
⎛ ⎞
010000
Velocity Ctrl
Zi = ⎝1 0 1 0 0 0⎠ . (7.18)
000000
Thus, the control variable vectors roic with r ∈ {pos, vel, acc} of the c-th
controller can be derived from the matrices r Oic with r ∈ {pos, vel, acc} as
follows:
oi = diag (r Oic )
r c
∀ r {pos, vel, acc} . (7.20)
The corresponding availability flag vector fic of the c-th controller can be
written as:
fic = diag (Fic ) . (7.22)
7.2 The Manipulation Primitive Framework 121
Gri = ∑m−1 c r c
c=0 Zi Oi
⎛ 0 r ⎞
x gi
0 r
y gi ··· zegi
0 r
⎜ ⎟
⎜ 1 r
x gi
1 r
y gi ··· zegi
1 r
⎟
⎜ ⎟
⎜ .. .. .. .. ⎟ (7.23)
⎜ ⎟
=⎜
⎜
. .
···
. .
⎟∈
⎟
m×6 ∀ r ∈ {pos, vel, acc}
zegi
l r l r l r
x gi y gi
⎜ ⎟
⎜ .. .. .. .. ⎟
⎝ . . . . ⎠
(m−1) r (m−1) r (m−1) r
x gi y gi · · · zegi
Each column corresponds to a DOF k and each row to one particular control
level l.
To calculate the control value vectors roi with r ∈ {pos, vel, acc}, which
contain the input values in task space for the joint controllers (cf. Fig. 7.1),
the correct row of Gri with r ∈ {pos, vel, acc} must be chosen for each single
DOF. This selection is realized by the adaptive selection matrix Hi , which is
defined as ⎛ 0 ⎞
x hi
0
y hi · · · ze0h
i
⎜ 1 1h ⎟
⎜ x hi 1
y hi · · · ze i ⎟
⎜ . ⎟
⎜ . .. .. .. ⎟
⎜ . . . . ⎟
Hi = ⎜ l ⎟ ∈ m×6 . (7.24)
⎜ x hi l h · · · e
l h ⎟
⎜ . y i z i
⎟
⎜ . .. .. .. ⎟
⎝ . . . . ⎠
(m−1) (m−1) (m−1)
x hi y hi ··· zehi
The columns are assigned to the DOFs, and the rows denote control levels.
The entries are either ‘1’ or ‘0’, where ‘1’ selects the corresponding value. Of
course, exactly one ‘1’ per column exists. Thus, we obtain
m−1
∑ x, y, z, xj, yj, zj .
!
l
k hi = 1 ∀k ∈ (7.25)
l=0
122 7 Hybrid Switched-System Control for Robotic Systems
Transposing Hi and multiplying it with Gri with r ∈ {pos, vel, acc} results
in three symmetric matrices, whose diagonal elements contain the resulting
control value vectors roi with r ∈ {pos, vel, acc}. They can be written as
r
oi = diag (Hi )T Gri ∀ r ∈ {pos, vel, acc} . (7.26)
Please note that the elements of Hi have not been determined yet. The flag
assignment matrix Ei is responsible for their calculation.
Ei = ∑m−1 c c
c=0 Zi Fi
⎛ ⎞
0
x ei
0
y ei · · · zee0i
⎜ 1
x ei
1
y ei · · · zee1i ⎟
⎜ ⎟
⎜ .. .. .. .. ⎟
⎜ . . . . ⎟ (7.27)
=⎜
⎜ c c · · · zeeci ⎟ ∈
⎟ m×6
x ei y ei
⎜ ⎟
⎜ .. .. .. .. ⎟
⎝ . . . . ⎠
(m−1) (m−1) (m−1)
x ei y ei · · · zeei
(m−1) 0 1 (m−1)
0 1
k ei k ei ... c
k ei . . . k ei k hi k hi ... lh
k i ... k hi
1 × ... × ... × 1 0 ... 0 ... 0
0 1 ... × ... × 0 1 ... 0 ... 0
0 0 ... 1 ... × 0 0 ... 1 ... 0
0 0 ... 0 ... 1 0 0 ... 0 ... 1
As can be seen from the table, only one controller is active per DOF, such
that the table is in accordance with eqn. (7.25). The available controller with
the lowest levelID will be activated. The table can be rewritten for all DOFs
k ∈ { x, y, z, xj, yj, zj} as:
7.2 The Manipulation Primitive Framework 123
0
k hi = k e0i
1
k hi = k e0i ∧ k e1i
..
.
k ei ∧ k ei ∧ . . . ∧ k ei
l 0 1 c
h
k i = (7.28)
..
.
(m−1) (m−1)
k h i = k ei ∧ k ei ∧ . . . ∧ k ei ∧ . . . ∧ k ei
0 1 c
Thus, we know the adaptive selection matrix Hi and can calculate the output
values of the control cycle at instant Ti by using eqn. (7.26)
r
oi = diag (Hi )T Gri ∀ r ∈ {pos, vel, acc} .
After the three vectors roi with r ∈ {pos, vel, acc} are calculated, we
can compute the desired new state of motion for the control cycle at in-
stant Ti : BF MiHF . Depending on the controller, all elements of roi with
r ∈ {pos, vel, acc} can either be absolute or relative values. Absolute values
can be directly transformed into joint space, while relative ones require the
state of motion of the previous control cycle BF Mi−1HF . As can be found in
Fig. 7.1, the resulting command variables for the new state of motion in task
space BF MiHF are transformed into actuator space, such that they can act as
input values for the lower-level joint controllers.
The availability flag vector fic of a controller c decides, whether the control
submodule is currently able to cope with the current system state or not.
Thus, each element of fic is determined by a function that maps state vari-
ables, sensor signals, or (sensor) events that are known and/or detected by
the controller c to a Boolean value. One element of the c-th controller at
instant Ti can be written as
k fi
c
:= S −→ with k ∈ { x, y, z, xj, yj, zj} , (7.29)
where S is the set of available sensor signals. This mapping function can be
realized individually for each controller. It can be a simple constant (k fic = 1),
the result of a comparison with a threshold, or any other Gordian function.
This feature can be used to handle critical situations. Some examples are:
• As long as the end-effector is not in contact with the environment, the
force/torque control submodule(s) can set the flag to zero, and at the mo-
ment of contact detection, the module is immediately ready for operation.
124 7 Hybrid Switched-System Control for Robotic Systems
• In case of internal controller errors, the flag can be set to zero, for example,
due to a missing sensor signal or due to sensor signals that are outside of
a sensor’s metering range.
• If switching to a controller yields jumping jerk/acceleration/velocity com-
mand variable values, the flag can be set to zero.
• Visual servo controllers can use this flag if their respective vision system
does not provide adequate information [96].
• It also may happen that a controller is inhibited, because of the Task
Frame specification T F i ; for example, a distance controller may only work
correctly if one of the Task Frame axes is collinear to the measurement
direction of the distance sensor.
The particular property of the OTG algorithm is, that all elements of its
availability flag vector
f OTG_Ctrl ≡ (1, 1, 1, 1, 1, 1)
i ∀i ∈ (7.30)
are equivalent to one at any time, because the algorithm is able to cope with
any input values (cf. eqn. (3.17), p. 38). Even if no other controller is able to
cope with the situation, the OTG algorithm can always generate continuous
command variables for any state of motion in order to ensure a continuous
and stable system behavior.
One final issue regarding the Task Frame shall be discussed here. In the
proposed concept, we established the requirement that the transformation
from the anchor frame ANCi to the Task Frame θi (eqn. (7.3)) remains con-
stant during the execution of one single MP. Let us briefly discuss whether
this is a necessary policy. Depending on the robot task, one may have the
idea to introduce a sensor-dependent Task Frame pose, that is,
θi = ANC T F
Pi = f (S) (7.31)
and thus
ANC T F
Vi = f (S) (7.32)
ANC T F
Ai = f (S) , (7.33)
The critical point here is, that a sensor signal (subset of S) can occur twice
in the control-loop. Thus, the stability of the overall system depends on the
function f in eqns. (7.31) – (7.34). Concluding this issue: A sensor-dependent
Task Frame pose θi can lead to undesirable control behavior. A second idea
could be to use a function of time
θi = ANC T F
Pi = f (t) (7.35)
for the variation of the Task Frame pose during one MP. In this case, the
control behavior (and stability) depends on the function of time of eqn. (7.35).
As a result, it can be advantageous for some robot tasks to apply a time-
varying Task Frame pose θi , but in general the determination of the function
f of eqn. (7.35) does not guarantee a stable overall system.
we can determine the selection vector Si , that is, one of the input vectors of
the OTG algorithm, by using the elements of the adaptive selection matrix
7.2 The Manipulation Primitive Framework 127
Fig. 7.7 Input and output values of the open-loop OTG_Ctrl module (cf. feedback
loops in Fig. 7.1). This figure builds the bridge between Chap. 7 and Chaps. 3 – 6.
Please also note the Remark 7.5.
Hi that refer to OTG_Ctrl. The motion constraints Vi max , Aimax , and Jimax can
be taken from the respective parameter values lk ΦiOTG_Ctrl of Di , and the tar-
get state of motion, that is, Pitrgt and Vitrgt , is determined by the set-points
l Ψ OTG_Ctrl of D , such that we obtain Fig. 7.7 to describe the relation of this
k i i
chapter to Chaps. 3 – 6. When we recall eqn. (7.30)
f OTG_Ctrl ≡ (1, 1, 1, 1, 1, 1)
i ∀i ∈ ,
it is of major importance, that eqn. (3.17) (p. 38) and all four criteria (i – iv)
of Chap. 3.3 (p. 40) hold.
Remark 7.5. How the time index i of the current state of motion Mi , which
is an input parameter of the OTG algorithm, is used, can be considered as a
philosophical question:
1. We can either consider Mi as the current state of motion, and we calculate
Mi+1 for the next control cycle, or
2. we can consider Mi−1 as the state of motion from the last control cycle, and
the desired state of motion for the current control cycle Mi is calculated.
Both points of views are correct. As in the field of control engineering the
second notation is common, this chapter uses it, but in the rest of the book,
the first notion is applied, because it greatly simplifies the comprehension of
this work. Fig. 7.7 builds the bridge between these two parts, that is, between
Chaps. 3 – 6 and this chapter.
128 7 Hybrid Switched-System Control for Robotic Systems
Fig. 7.8 Input and output values if the OTG algorithm is used for generating
relative pose set-point values (cf. Fig. 7.5, p. 114).
As mentioned in Sec. 7.2.1 and shown in Fig. 7.5 (p. 114), computed motion
set-points have to be interpreted either absolutely or relatively — depending
on the currently executed Manipulation Primitive. If the output values of the
OTG submodule are interpreted relatively, the input value Pi is equivalent to
the zero vector, and the respective “feedback” value is subtracted from Pitrgt
as shown in Fig. 7.8.
The on-line trajectory generation submodule is responsible for the genera-
tion of all motions that are not sensor-guided. Furthermore, it is responsible
for taking over control at any arbitrary time instant to assure a safe contin-
uation of the robot motion — even if no other controller c ∈ C is ready for
operation. Regarding Fig. 7.1, there is a further particularity for the OTG
submodule: Its “feedback loop” is independent of the plant, but it behaves
like a common closed-loop controller, although it is an open-loop one.
This section describes the open-loop velocity controller, that is, the controller
submodule Velocity_Ctrl in Fig. 7.1. Although its development can be done
in a straightforward way, it belongs to the completeness of this work to briefly
introduce this control submodule.
7.3 On-Line Trajectory Generation for Open-Loop Velocity Control 129
Fig. 7.9 Input and output values of the OTG algorithm for one single velocity-
controlled DOF k (Types III – V).
The purpose of this module is to guide one single DOF k from any arbitrary
state of motion to a certain velocity kVitrgt . Regarding Table 3.1 (p. 39), the
controller acts as a function
f: 2β × −→ β , (7.38)
that is, three different open-loop velocity controllers can be developed: one
with acceleration limitation (Types I – II in Table 3.1), one with jerk limita-
tion (Types III – V in Table 3.1), and one with a limited derivative of jerk
(Types VI – IX in Table 3.1).
This section only describes the open-loop velocity control module that
corresponds to the OTG Types III – V. Fig. 7.9 shows its input and output
values, and Fig. 7.10 depicts the complete decision tree, which is applied
within this control module. We utilize six independent instances of the ve-
locity control module of Fig. 7.9, which use the same motion state values
pos
oi−1 , veloi−1 , and accoi−1 as the OTG_Ctrl one (cf. Figs. 7.1 and 7.7). If a
DOF k ∈ x, y, z, xj, yj, zj is guided by the open-loop velocity controller,
its input values are comprised of the respective set-point lkΨi Velocity_Ctrl and
parameters lk ΦiVelocity_Ctrl of the set-point set Di (cf. eqn. (7.7)):
l Velocity_Ctrl
kΨi ∀ (k, l) ∈ K×L : (7.39)
l Velocity_Ctrl
kΨi ⊂ DiVelocity_Ctrl ∧ DiVelocity_Ctrl ∈ Di =⇒ kVi
trgt
Velocity_Ctrl
k Φi ∀ (k, l) ∈ K×L :
l
(7.40)
Velocity_Ctrl
k Φi
l
⊂ DiVelocity_Ctrl ∧ DiVelocity_Ctrl ∈ Di =⇒ (k Aimax , k Jimax ) .
130 7 Hybrid Switched-System Control for Robotic Systems
Fig. 7.10 Complete decision tree for velocity-controlled DOFs (Types III – V; re-
quired for the submodule Velocity_Ctrl in Fig. 7.1).
are arbitrary, and it is essential, that the algorithm covers the whole input
space of 6 for any selected DOF. Fig. 7.11 presents the resulting trajectories
for the input values of eqn. (7.41). The three translational DOFs reach their
target velocities at the time instants:
7.3 On-Line Trajectory Generation for Open-Loop Velocity Control 131
Fig. 7.11 Example of three trajectories generated by the open-loop velocity con-
troller of Fig. 7.9. The input values of eqn. (7.41) were applied for their generation.
min
xti = 1.283 s
min
yti = 3.249 s (7.43)
z ti
min
= 3.731 s .
This kind of command variable generation is useful for a huge set of robot
tasks. If we want a manipulator to exert force/torque control in one DOF,
132 7 Hybrid Switched-System Control for Robotic Systems
and we know that the end-effector is not in contact, we can use this open-loop
velocity controller to guide the robot into contact with a certain approach
velocity.
Example 7.5. A simple example is given by Table 7.1 (p. 115): The desired
controller for the Task Frame’s z-direction is the distance control submodule
Distance_Ctrl, but for the case, that the distance controller is not avail-
able, because the sensor provides an out of range signal (z fiDistance_Ctrl = 0,
cf. eqns. (7.21) and (7.22)), the open-loop velocity control submodule Veloc-
ity_Ctrl can guide the end-effector toward the environment with a velocity
of 15 mm/s, and as soon as the distance sensor delivers a valid signal, the
distance controller can take over control.
7.4 Stability
After the previous formal introduction of the concept of hybrid switched-
system control, which is in particular represented by Fig. 7.1, we are going
to discuss the stability of such systems in this section.
This monograph does not provide a formal stability proof for the system
presented in Fig. 7.1, which deals with the common problem of stability in
hybrid switched-systems: Even if all control submodules behave stably, due
to inappropriate switching sequences, the system can become unstable. The
literature on such systems commonly distinguishes hybrid switched-systems
into three subgroups [163]:
• State-dependent switching systems
• time-dependent switching systems, and
• autonomously switching systems.
The system to be regarded here is an autonomously switching system: The
switchings occur in dependence on the set-point set Di of the hybrid move
command HMi and on the stop condition λi of a single Manipulation Primi-
tive MP i . Till now, there is no method that exists to prove the stability of this
class of systems. For concrete set-ups, concrete environments, and concrete
MPs, it is possible to apply multiple Lyapunov functions and Lie-algebraic
stability criteria — but this is not a general solution [30, 31, 32, 163].
As a result, we can conclude that it is not yet possible to derive a proof
of stability for the system depicted in Fig. 7.1. But of course we have to
investigate this issue in order to legitimate the scheme of Fig. 7.1. The basic
requirement for overall stability is a proof of stability for the control system
7.4 Stability 133
in joint space, that is, the control cascade on the bottom right side of the
dashed line in Fig. 7.1. This problem was surveyed very deeply, and we can
find plenty of works on this topic [135, 196, 229, 246, 278]. Designing a robot
joint control scheme is, of course, not a simple task, and there is no golden rule
for it; commonly, a tradeoff between performance and robustness is required,
but the treatment of this topic clearly goes beyond the scope of this book.
If we consider the joint space control scheme as stable, we can focus on
the task space control scheme, which contains the hybrid switched-system.
The thing we have to ensure is that if any control submodule is not able
to control one or more DOFs of the system stably, we then have to provide
a safe backup controller. This controller takes over control in the case of
sensor malfunction or any other case that might lead one of the closed-loop
controllers to become unstable. Here, the OTG algorithm comes into focus
again, because this submodule is the only one that is able to cope with any
state of motion, as we already stated in Chap. 5 and also through eqn. (7.30).
Depending on the system, we can apply two different strategies:
The OTG algorithm takes over control in Cartesian space
This would mean, that we extend Table 7.1 by an additional control level
m, such that we obtain (m + 1) control levels. At this control level, we
exclusively apply the OTG_Ctrl module, either with a fixed set of input
parameters, which would be the simplest solution, or with a set of on-line
(state-dependently) calculated input parameters.
The OTG algorithm takes over control in joint space
The module Open-loop position controller (Type IV OTG) of the joint
space control part of Fig. 7.1 guides all robot DOFs to a certain target
position or state of motion. This target can again be either a set of pre-
defined input parameters or a set of on-line computed ones.
In both cases, it is of major importance that the input parameters of the OTG
algorithm are adequate at the moment of switching. Using either solution, the
hybrid switched-system can be considered as a standard non-switched-system,
such that the same methods as mentioned above [135, 160, 196, 229, 246, 278]
can be utilized during the design and parameterizing procedure of the overall
system. We can transform the problem of hybrid switched-system analysis
to a stability analysis problem of a trajectory-following control scheme. The
challenge and particularity of this analysis is that we have to consider an
arbitrary initial state of motion: The state of motion that has been achieved
by the control submodules, and that depends on sensor signals. Thus, the
analysis result only depends on one parameter, that is, for a formal proof
of stability, one would have to bound the allowed motion state, that is, the
velocity and the acceleration of the end-effector. These joint space velocity
and acceleration constraints are the same as the ones that have been used for
the proof of stability of the joint space control scheme. This line of arguments
leads us to the (expected and trivial) result that we have to ensure that the
134 7 Hybrid Switched-System Control for Robotic Systems
7.5 Summary
A hybrid switched-system control scheme for robotic manipulation systems
that enables the execution of sensor-guided and sensor-guarded robot motion
commands was introduced. The OTG algorithm acts as one control submod-
ule in this architecture and generates trajectories, that is, it is considered as
an open-loop pose controller for one or more Cartesian DOFs. Furthermore,
a second instance of the OTG algorithm is used in the same scheme and is
able to take over control of all system DOFs in joint space in arbitrary states
of motion.
The Manipulation Primitive framework, which was proposed by Finke-
meyer [85], was formally introduced and extended to be suitable for state
space control. Manipulation Primitives constitute an interface to hybrid
switched-control systems in the field of robotic manipulation systems. De-
tails of it were explained, and its relation to the OTG algorithms of the
previous chapters was outlined. The most essential properties of this idea,
which is basically represented by Fig. 7.1, are the following:
• Trajectory-following and sensor-guided robot motions can be arbitrarily
combined, and we can sensor-dependently switch between these two modes,
such that sensor-guarded robot motions (cf. Def. 1.1, p. 5) become realized.
• In particular, switchings from sensor-guided robot motion control to
trajectory-following control become feasible.
• We can arbitrarily switch from joint space control to Cartesian space con-
trol or vice versa in arbitrary motion states and at unforeseen time instants.
• The pose and the anchoring of the Task Frame can be changed abruptly
and sensor-dependently in arbitrary motion states and at unforeseen time
instants.
• All mentioned switching procedures happen instantaneously within one
control cycle, such that a kind of robotic reflex becomes enabled by this
architecture.
The most important features of the OTG algorithm in this context are:
• It behaves as a closed-loop control submodule in a hybrid switched-system,
but its “feedback” loop bypasses the plant, such that it is an open-loop con-
troller that generates command variables for lower-level tracking control.
7.5 Summary 135
Fig. 8.1 discloses the resulting trajectory, and one can clearly recognize that
all four DOFs reach their desired state of motion Mitrgt at the same time
T. Kröger: On-Line Trajectory Generation in Robotic Systems, STAR 58, pp. 137–157.
[Link] c Springer-Verlag Berlin Heidelberg 2010
138 8 Experimental Results and Applications
Fig. 8.1 Result of the Type IV trajectory for K = 4 DOFs, which was generated
for the concrete input values Wi of eqn. (8.1).
instant tisync = 5340 ms ∀ i ∈ {0, . . . , 5340} (N = 5340 cycles, i.e the OTG
algorithm was executed 5340 times). tisync was determined by 3timin (DOF 3
reaches 3Vi max , and the remaining three DOFs are synchronized on 3timin ). The
selected acceleration profiles are:
8.2 Instantaneous Reaction to Unforeseen (Sensor) Events 139
1Ψi 3Ψi
Step2 Step2
= NegTrapZeroPosTri = NegTrapZeroPosTri
(8.2)
2Ψi 4Ψi
Step2 Step2
= PosTriZeroNegTri = PosTrapZeroNegTrap .
For the sake of simplicity, the input parameters Mitrgt , Bi , and Si remained
constant during the whole execution time from T0 to TN , that is, Mitrgt =
M0trgt ∧ Bi = B0 ∧ Si = S0 ∀ i ∈ {0, . . . , 5340}.
Fig. 8.2 XY-plot of the exemplary geometric path according to the trajectory shown
in Fig. 8.3, with and without sensor event.
140 8 Experimental Results and Applications
Fig. 8.3 Position, velocity, and acceleration progressions of the two-DOF Type IV
trajectory that corresponds to the path of Fig. 8.2.
Without Obstacle
and dotted lines). As can be seen in the bottom diagram of Fig. 8.3, both
DOFs are transferred into their target positions by trapezoidal acceleration
profiles, such that both reach their target state at t = 4518 ms with symmet-
rical velocity profiles.
Remark 8.1. The OTG algorithm is executed every millisecond, and the
output values of the algorithm lead to continuous trajectories, which reach
each desired state of motion time-optimally and time-synchronized. Further-
more, all boundary values, V0max , A0max , and J0max , are kept during the whole
trajectory. How the intermediate positions and velocity vectors such as P1674 trgt
and V1674 are calculated depends on the system above the OTG (cf. horizontal
trgt
This section presents results that correspond to Chap. 6 and compares a time-
synchronized trajectory with a homothetic one. Figs. 8.4 and 8.5 display the
corresponding position, velocity, acceleration, and jerk progressions for both
trajectories, whose geometric paths are shown in Fig. 8.6. As in the previous
sections, we start at T0 = 0 ms and assume a cycle time of T cycle = 1 ms.
142 8 Experimental Results and Applications
Fig. 8.4 Position, velocity, acceleration, and jerk progression of the time-
synchronized two-DOF trajectory corresponding to the solid line in Fig. 8.6.
In this example, it is our task to execute the following motion from stand-
still:
= (100, 100)T mm
P0 V max = (200, 200)T mm/s
0
P trgt
= (700, 300)T mm A max = (300, 300)T mm/s2 (8.4)
0 0
V trgt
= (0, 0)T mm/s J0max = (400, 400)T mm/s3 .
0
8.3 Homothetic Trajectories 143
Fig. 8.5 Position, velocity, acceleration, and jerk progression of the phase-
synchronized (homothetic) two-DOF trajectory corresponding to the dashed line
in Fig. 8.6.
After 1000 ms, a sensor event happens (unforeseen), and due to this, we have
to reach a position ahead with a negative velocity; in addition, the boundary
values are arbitrarily changed:
V max = (300, 300)T mm/s
P trgt = (550, 250)T mm 1000
1000 A max = (400, 400)T mm/s2 (8.5)
V trgt = (−150, −50)T mm/s 1000
1000 J1000
max
= (500, 500)T mm/s3 .
144 8 Experimental Results and Applications
Fig. 8.6 XY-plot of the trajectories depicted in Figs. 8.4 and 8.5. The solid line
corresponds to the path of the time-synchronized trajectory (Fig. 8.4), and the
dashed line represents the path of the homothetic trajectory (Fig. 8.5).
trgt
This desired state of motion, M1000 , is time-optimally reached after t =
3873 ms (cf. Figs. 8.4 and 8.5), and right after this a further switching of
set-points happens, such that the originally desired state of motion, M0trgt ,
shall be reached again:
After t = 6756 ms this desired state is finally reached (cf. Figs. 8.4 and 8.5).
For all three set-point sets, DOF 1 determines tisync . Since both algorithms
generate kinetically time-optimal trajectories, the progressions for this DOF
are exactly the same in both cases, as can be verified in Figs. 8.4 and 8.5.
In the homothetic case, DOF 1 is the reference DOF (κ = 1). The difference
appears in the progression of all remaining DOFs, here only DOF 2.
As can be seen in Fig. 8.5, the acceleration profile is always the same for
both DOFs: κ Ψ0Step1 = PosTriZeroNegTri for the first 1000 cycles, κ Ψ1000 Step1
=
PosTriZeroNegTrap for the cycles until t = 3873 ms, and κ Ψ3873 = PosTrap-
Step1
trgt
NegTri until M3873 is reached at t = 6756 ms. Due to the case of homothety, it
does not matter, whether we denote Step 1 profiles κ Ψi Step1 or Step 2 profiles
κ Ψi
Step2
, since the profiles are the same for both steps. The determination
of the profiles, however, is done in Step 1 (cf. Fig. 6.2, p. 102). The phase-
synchrony can be observed in particular in the jerk diagrams of Figs. 8.4 and
8.5. While the time-synchronous case (Fig. 8.4) leads to asynchronous jerk
progressions, which utilize zero or the values of Jimax ∀ i ∈ {0, . . . , 6756} for
both DOFs, the homothetic case (Fig. 8.5) applies the respectively adapted
values Jimax ∀ i ∈ {0, . . . , 6756}.
8.4 Unforeseen Switchings of Reference Coordinate Systems 145
Fig. 8.7 XY-plot of a path, whose trajectory is executed w.r.t. reference frame A
(solid line). Right after the indicated sensor event at t = 2000 ms, frame B acts as
the reference frame for the motion controller (dotted line).
Figs. 8.7, 8.8, and 8.9 depict a three-DOF trajectory, which is firstly spec-
ified w.r.t. reference frame A:
146 8 Experimental Results and Applications
After a sensor event at t = 2000 ms, the motion is not specified w.r.t. frame
A anymore but w.r.t. reference frame B. This may have several reasons:
• The programmer or the higher-level system can only provide the new target
state of motion w.r.t. frame B, for example, because the transformation
A T is time-variant and/or system-dependent.
B
• A frame, for example, the Task Frame (cf. Chap. 7.2.1, p. 109), abruptly
changes its pose (due to the sensor event).
Fig. 8.8 Position, velocity, and acceleration progressions of the three-DOF trajec-
tory of Fig. 8.7 w.r.t. reference frame A. The (unforeseen) sensor event happens at
t = 2000 ms.
8.4 Unforeseen Switchings of Reference Coordinate Systems 147
Fig. 8.9 The same trajectory as depicted in Fig. 8.8 but for the coordinates of
reference frame B.
As a result, the robot motion is controlled w.r.t. the reference frame B from
t = 2000 ms on, that is, within the cycle of T2000 , the (a priori unknown)
state of motion A M2000 is transformed into the (a priori unknown) system of
frame B.
The concept presented here can also be used for the specification of contin-
uous motions consisting of several trajectory segments, such that the switch-
ings are not sensor-dependent but pre-defined. Without on-line generation
of motion control command variables, the here-presented cases of unforeseen
reference frame switching would not be feasible.
Fig. 8.10 r-ϕ -manipulator, which executes a Cartesian motion command that is
unexpectedly interrupted at Cart p = (50, 450) mm (solid line). Immediately after this
event, the motion is controlled in joint state space until the target state of motion
has been achieved (dashed line).
8.6 Hybrid Switched-System Control of a Six-DOF Industrial Manipulator 149
Cart Cart
V0max = (300, 300)T mm/s
P0 = (−200, 200)T mm
Cart
P0trgt = (100, 500)T mm Cart
A0max = (400, 400)T mm/s2 (8.9)
Cart
V0trgt max
= (0, 0)T mm/s Cart J
0 = (500, 500)T mm/s3 .
We assume that a sensor event happens at t = 1830 ms, the moment in which
the manipulator has reached Cart p = (50, 450) mm. The succeeding motion
command is then specified in joint state space:
joint
= (150 mm/s, 200◦/s)T
max
V1830
joint trgt
P1830 = (400 mm, 0◦ )T joint
= (200 mm/s2, 300◦/s2 )T
max
A1830
joint trgt
V1830 = (0 mm/s, −20◦/s)T max
= (800 mm/s3, 600◦/s3 )T .
joint J
1830
(8.10)
Fig. 8.11 shows the corresponding position, velocity, and acceleration pro-
gressions in Cartesian state space, and the same progressions in joint state
space are presented in Fig. 8.12. The option to interrupt motion control in
any state space, abruptly (and unexpectedly) switch to another state space,
and steadily continue the motion in the new state space, provides us with the
following new possibilities in robot motion control:
• If a motion cannot be continued in the current state space, for example,
due to a priori unknown obstacles or singularities, switching to another
state space can often bypass the problem very easily. This switching may
happen at any time in any state of motion.
• If motion control parameters are abruptly changed, it can happen that the
desired target state of motion can only be reached in another state space,
for example, because of joint constraints.
• Switching from one state space to another at sensor-dependent time in-
stants enables a very convenient and flexible way for robot motion speci-
fication with the possibility to automatically react to uncertainties.
• It is not always clear whether we have to switch the state space; but
if we have to, which succeeding state space is the correct one? Since the
motion set-points can be generated within one control cycle, the succeeding
state space can now be sensor-dependently chosen immediately after the
triggering event and does not have to be specified beforehand.
Although closely related to Sec. 8.4, the major difference to this example
is that the transformation that is proceeded at a switching event must not
necessarily be linear. As a matter of course, the resulting trajectories are again
(kinetically) time-optimal and time-synchronized in the respective state space
(cf. Figs. 8.11 and 8.12).
Fig. 8.11 Position, velocity, and acceleration progressions of the two-DOF tra-
jectory of Fig. 8.10 in Cartesian state space. The sensor event, which leads to
the unpredictable switching of the state space, happens in Cart p = (50, 450) mm at
t = 1830 ms.
Hardware Setup
Fig. 8.13 gives an overview of the utilized hardware setup. The original con-
troller of a Stäubli RX60 industrial manipulator [250] was replaced, and the
frequency inverters were interfaced. As shown in Fig. 8.13, a network of PCs
with a QNX operating system [216] constitute the controller. The first PC
interfaces the power electronics directly and is dedicated to position control
in joint space (cf. dashed line in Fig. 7.1, 106). The second PC executes algo-
rithms for hybrid switched-system control and acts as Manipulation Primitive
interface to the third PC, which is dedicated to user applications. All PCs
in this network communicate via the real-time middleware solution MiRPA
(Middleware for Robotics and Process Control Applications, [86]), which is
an in-house development of the Institut für Robotik und Prozessinformatik at
the Technische Universität Braunschweig. MiRPA is a thin layer between the
8.6 Hybrid Switched-System Control of a Six-DOF Industrial Manipulator 151
Fig. 8.12 Position, velocity, and acceleration progressions of the two-DOF trajec-
tory of Fig. 8.10 in joint state space.
operating system and user processes and is responsible for distributed real-
time interprocess communication. Its usage leads to the advantage that all
processes only have one communication partner, and the system can be set up
very modularly. Depending on the computational requirements, the number
of MiRPA nodes can be chosen very freely, such that the number of nodes can
be increased if the computational efforts grow. For the experiments shown in
the following, a control rate of 10 KHz was applied for the joint controllers,
and the hybrid switched-system controller runs at a frequency of 1 KHz.
Fig. 8.13 Hardware architecture of the interfaced Stäubli RX60 industrial manip-
ulator.
[119]1 . This was done intentionally in order to show the response of the over-
all system (including the OTG algorithm) on strongly noised sensor data. At
t = 586 ms, a (sensor) event happens, and the system instantaneously switches
from sensor-guided robot motion control to trajectory-following control. The
new trajectory is calculated instantaneously (within the control cycle after
the event) and the manipulator performs a smooth, continuous motion. Here,
this is done for all six DOFs { x, y, z, xj, yj, zj}, that is, the selection vector
switches from S585 = 0 to S586 = 1. Of course, it would also be possible that
only some DOFs were switched from one controller to another. To describe
the relevance for industrial practice: Imagine, a sensor (e.g., a force/torque
sensor or a vision system) fails during a sensor-guided robot motion; the
OTG algorithm can always take over control in any state of motion and at
any time, such that a smooth, continuous motion results. Furthermore, if a
desired (force/torque or vision) set-point cannot be achieved because of some
reason, the current motion can be interrupted at any instant, such that the
OTG algorithm guides respective DOFs to a safe state.
1 Sensor model 85M35A-40 200N12, receiver board running at 8 KHz.
8.6 Hybrid Switched-System Control of a Six-DOF Industrial Manipulator 153
Figs. 8.15 and 8.16 contain the results. The first figure shows a trajectory
of all six DOFs in Cartesian space, and the second one illustrates the same
trajectory in joint space. At T0 = 0 ms, a sensor-guided robot motion com-
mand was executed w.r.t. the hand frame of the manipulator (ANC = HF,
cf. eqn. (7.5), p. 110). The three translational DOFs of the Task Frame are
8.6 Hybrid Switched-System Control of a Six-DOF Industrial Manipulator 155
Fig. 8.16 The same trajectory as depicted in Fig. 8.15, but in joint space.
Fig. 8.17 Work cell set-up for the Jenga-playing manipulator [140, 141, 142].
that the OTG algorithm running in joint space (cf. Fig. 7.1, p. 106) takes
over control and guides the manipulator to its initial (candle) position.
manipulator moves its end-effector along the block, such that the distance
sensor records a distance profile, which is subsequently used to determine the
block’s exact pose. When the block has been gripped, a force-guided MP is
set up in order to pull the block out of the tower very carefully and to elim-
inate all transversal forces and respective torques. The last part of a single
move is to put the block onto the top of the tower. This is done by a simple
force-guarded MP, which moves the manipulator carefully towards the tower;
after a certain force threshold is exceeded, contact has been established, the
motion is stopped, and the gripper can be opened. Additional details and
videos of this application can be found in [115, 142].
The majority of robot motion commands for the realization of this game
are sensor-guarded motion commands (cf. Def. 1.1, p. 5), which were not
executable this way without the OTG concept.
Chapter 9
Further Discussion
Before summarizing and concluding this book, some further marginal aspects
are discussed in this chapter.
In such a case, the OTG module can synchronously run on the low control
level and provide set-points for the underlying joint controllers every control
period T cycle . The OTG input parameters for DOFs that are selected for
visual servo control are only changed once per T vision . Thereby, ν must not
necessarily be constant. If the computer vision algorithms are realized on non-
real-time platforms such as Linux or Windows, we usually have to consider a
T. Kröger: On-Line Trajectory Generation in Robotic Systems, STAR 58, pp. 159–177.
[Link] c Springer-Verlag Berlin Heidelberg 2010
160 9 Further Discussion
more or less significant jitter, such that T vision is non-constant. In this case,
the OTG module can be used to provide a very convenient motion control
interface to non-real-time systems.
• If the image processing algorithm looses track of its features and is not able
anymore to generate adequate command variables for the OTG algorithm,
pre-defined fallback parameters can be utilized by the OTG, such that
continuous and adequate motions can always be exerted, even if the vision
system fails (cf. Chap. 7.2.5, p. 126, and Chap. 7.4, p. 132).
Fig. 9.1 A high-level motion planning system can calculate intermediate motion
trgt
states h M0 ∀ h ∈ {1, . . . , 7} in configuration space, which are passed through by
the on-line generated trajectories from P0 to P0trgt .
the interface to the high-level motion planning system. Of course, the motion
constraints h Bi can also be adapted for the motions in-between two knots. In
the case of dynamic environments, all motion states that have not been passed
by the robot yet can be furthermore adapted at any future time instant, of
course.
The result of Fig. 9.1 was achieved with the Type IV OTG algorithm, that
is, hA0trgt = 0 ∀ h ∈ {1, . . . , 7}, such that velocity vectors were simply put
into the given configuration space:
1P0trgt = (300, 100) mm 1
V0trgt = (80, 30) mm/s
2P0trgt = (500, 300) mm 2
V0trgt = (−30, 100) mm/s
3P0trgt = (400, 450) mm 3
V0trgt = (−10, 100) mm/s
4P0trgt = (400, 600) mm 4
V0trgt = (−50, 80) mm/s (9.3)
5P0trgt = (500, 800) mm 5
V0trgt = (60, 40) mm/s
6P0trgt = (650, 850) mm 6
V0trgt = (120, 0) mm/s
7 trgt 7 trgt
P0 = (800, 800) mm V0 = (150, −70) mm/s .
Fig. 9.2 Path of a two-DOF Type IV trajectory with undesired overshooting (solid
line, cf. Fig. 9.3) and of a possible trajectory without overshooting (dashed line).
164 9 Further Discussion
Fig. 9.3 Jerk-limited trajectory generated on-line from an arbitrary state of motion
and corresponding to the solidly drawn path of Fig. 9.2.
• only Pitrgt , Vitrgt , and Aitrgt (Type IX, cf. Table 3.1, p. 39),
• only Pitrgt and Vitrgt (Types V,VII, and IX), or
• only Pitrgt (Types II, IV, V, and VII – IX)
are reached, and overshootings, as shown in Figs. 9.2 and 9.3, become pre-
vented.
From the application’s point of view, the only possible solution of the
algorithms described in Chaps. 4 and 5, must not necessarily be the desired
one. To calculate desired solutions that prevent this overshooting, the theory
introduced in this monograph has to be extended in a forthcoming work.
Besides the use-cases described in Sections 9.1 – 9.3, this extension — which
is clearly a future work — can also be applied if a dynamic system model is
used for trajectory optimization.
robot motions to utilize trajectories that also consider the system dynamics.
This topic was introduced in Chap. 2.4.2 (p. 17), and we can find a huge
number of off-line trajectory generation concepts that make use of a dynamic
system model. Most approaches have their roots in the concepts of Bobrow,
Pfeiffer, and Shin [27, 28, 208, 238, 239].
A dynamic forward model of a mechanical system describes the resulting
trajectory, in particular the resulting acceleration progression, in relationship
to the applied actuation forces and/or torques. The inverse dynamic model
calculates forces/torques if a trajectory (i.e., an acceleration progression) is
given. As with trajectory generation, the description of rigid body system
dynamics belongs to the very basic levels in the field of robotics. The work of
Featherstone [81] was one milestone in the early 1980s. General overviews are
given in [82] and [83]. In the following, we do not consider the dynamics of a
concrete robotic system, but suggest a generic approach that can be applied
to a number of robotic systems.
If we extend the proposed OTG algorithms and consider system dynamics,
the OTG input value Aimax can no longer be considered as constant. Assuming
the actuation forces and/or torques1 at time Ti are denoted by
Fi = (1 Fi , . . . , k Fi , . . . , K Fi ) (9.4)
and in particular
Aimax = f Pi , Vi ,
F max . (9.6)
The latter equation may lead to the naive and simple but wrong approach
to feed the vector Aimax of eqn. (9.6) back as input value for the OTG. This
simple idea could only work for constant or continuously increasing values
for all elements of Aimax (decreasing values would lead to an overshooting of
P trgt due to the reduced deceleration ability).
i
To incorporate system dynamics, the whole trajectory has to be considered.
Respective algorithmic concepts are computationally much more expensive
than the proposed OTG algorithms and, hence, cannot be executed at every
low-level control cycle T cycle . Because of this fact, we will never achieve time-
optimal trajectories with the concept of OTG, but only near-time-optimal
ones. The basic idea is to choose a time interval
Fig. 9.4 Scheme for Type V OTG with parameter adaptation based on system
dynamics and/or trajectory optimization methods (cf. Fig. 3.3, p. 37). As indicated
in the two blocks, the trajectory optimization algorithm is executed once per T adapt
while the OTG algorithm has a λ times lower cycle time of T cycle .
the trajectory optimization algorithm is executed once per T adapt and adapts
the input parameters of the OTG algorithm, as shown in Fig. 9.4. This figure
shows only the idea; the contents of the block Parameter adaptation based
on system dynamics and/or trajectory optimization methods is a subject of
future work. Depending on the task and on the chosen trajectory optimization
method, the algorithm of this block may adapt the elements of Aimax , but it
is also possible to calculate intermediate states of motion consisting of Pitrgt ,
V trgt , and A trgt .
i i
These automatically computed motion states Mi are used as input values
for the actual OTG algorithm, but we have to prevent from undesired over-
shootings as discussed in the previous section. As a consequence the values
of Mi may be adapted to Vi and/or Ai and/or Ji
trgt trgt trgt
(cf. Sec. 9.4).
To demonstrate this procedure, Fig. 9.5 shows a simple point-to-point tra-
jectory for a two-DOF mechanism whose maximum acceleration values are
adapted depending on the system dynamics. The adaptation process runs
with a cycle time of T adapt = 1 s (this is only an example), and the cycle
time of the OTG algorithm is T cycle = 1 ms (λ = 1000). In this concrete ex-
ample, we adapt the maximum acceleration values Aimax , and within each
adaptation step, it must be assured that the applied values of Aimax do not
exceed their respective maxima. In the example of Fig. 9.5, the following
9.5 Embedding of Robot Dynamics 167
Fig. 9.5 Motion trajectory of a two-DOF system taking into consideration a dy-
namic model and with one parameter adaptation per second, T adapt = 1 s.
values were obtained in order to bring the system from P0 = (700, −50)T mm
to Pi
trgt
= (180, 490)T mm ∀ i ∈ {0, . . . , 5294}:
The parameters of this method are self-explanatory (cf. Fig. 3.3, p. 37); OT-
GDoubleVector contains an array of double values; OTGBoolVector contains
an array of Boolean values. The constructor
OTG(const unsigned int NoOfDOFs, const double CycleTimeInSeconds);
is of a very simple nature as well, such that the application of the OTG
algorithm in joint space is absolutely trivial and does not require much ef-
fort. The migration to Cartesian space can usually not be generalized and
2 These code extracts are exact copies of the current OTG implementation.
170 9 Further Discussion
Fig. 9.6 Scheme for the parallelization of the OTG algorithm (cf. Fig. 5.1, p. 70).
Fig. 9.7 Schematic set-up for the contact experiments of Fig. 9.8 (cf. [85]).
Fig. 9.8 Measured forces during the contact experiment sampled at 1 KHz and at 4
KHz with varying approach velocities zV approach ∈ {2.5 mm/s, 5.0 mm/s, . . . , 30 mm/s}
(cf. eqn. (9.10), Fig. 9.7, and [85]).
improved control behavior; a much more significant reason for high control
rates is the reaction time to sensor events. In particular, stiff robotic systems
can achieve the best results with control periods, as short as possible.
9.10 Aspects on the Development of Decision Trees 173
To clarify these statements, Fig. 9.7 illustrates the set-up of a very simple
experiment.3 The end-effector of a manutec r2 industrial robot [175] consists
of a piece of aluminum that was electrically isolated from the rest of the
machine. An electric potential was impressed on this end-effector, and the
respective ground potential was impressed on a massive and stiff steel board.
The task of the manipulator was to approach the steel board with different
velocities,
zV
approach
∈ {2.5 mm/s, 5.0 mm/s, . . . , 30 mm/s} , (9.10)
R
r
DStep1 ≡ α ,
r=1
S
S = s
DStep2 ∩ u DStep2 ∀ u ∈ {1, . . . , S} u = s
s=1
hold in practice, and that all four criteria, which were introduced in Chap. 3.3
(p. 40), are fulfilled. These issues can only be solved and guaranteed manually,
3 This experiment was already presented and discussed extensively in the thesis of
Finkemeyer ([85], p. 120), and this is only a brief recap of the same subject.
174 9 Further Discussion
that is, the developer of a decision tree (cf. Figs. 4.4 (p. 52), 4.8 (p. 62), 5.6
(p. 83), 5.7 (p. 85), and 5.8 (p. 86)) has to be very careful in order not
to overlook any case. Due to their complexness, one could get the idea to
search for a method that develops these trees automatically, but this is an
impassable meander, as will be explained in the following.
When starting to develop a decision tree, the motion profile sets PStep1 and
PStep2 are unknown. These two sets have to fit exactly to each other, such
that the three equations mentioned above hold. The design of these sets can
only take place during the development of the (2 α − 4 β ) (cf. Table 3.1, p. 39)
decision trees, because we cannot know how these profiles look like, until we
know all possible cases. Summarizing this paragraph briefly:
• If we knew the motion profile sets PStep1 and PStep2 (and thus all input
domains r DStep1 ∀ r ∈ {1, . . . , R} and s DStep2 ∀ s ∈ {1, . . . , S}) for a
concrete type of OTG, it might be possible to generate the decision trees
automatically.
• If we knew all (2 α − 4 β ) decision trees for a concrete type of OTG, it
would be possible to determine the motion profile sets PStep1 and PStep2 .
But since we neither know PStep1 or PStep2 of a concrete type nor the deci-
sion trees beforehand, it cannot be possible to generate an OTG algorithm
automatically.
Furthermore, it is not possible to formulate general laws for the tree devel-
opment, because every single decision has its own purpose. Of course, there
are decisions that work very similarly, but there is always a nuance that is
different. One property that can be influenced by the developer is the size of
the trees. It depends on the order of the decisions, and there is always one
order that leads to a minimum number of decisions. The trees, as they have
been proposed for the Type I OTG algorithm in [146], are relatively large,
because the order is non-optimal.
until a value of one has been assigned to all edges. During this procedure, no
error must occur, that is, the systems of equations for the selected motion
profiles have to be solvable in any case. If there is only one case in which
the systems of equations are not solvable, one of the two following errors can
occur:
• There is an error in one or more of the (2 α − 4 β ) trees.
• The set PStep1 and/or PStep2 is incomplete/erroneous.
Already in the case of the Type IV OTG algorithm, it is a voluminous
task and a big effort to perform this evaluation. Only if all edges of all trees
have been passed at least once, and if all involved systems of equations are
solvable, the completeness of the decision trees is indicated.
Remark 9.1. After the Type IV implementation successfully passed this
test, random numbers were again repetitively applied to the algorithm in order
to obtain an additional indication that the realized Type IV OTG algorithm
is complete and works numerically robustly. After more than 30 billion error-
free cycles, the author aborted the test.
Fig. 9.9 Transition from Cartesian coordinates to cylindrical coordinates via spec-
ification of a respective target state of motion Cart Mitrgt . Such kinds of transitions
can be realized with the Type V OTG algorithm.
because the diversity of motion profiles, that is, jerk profiles, greatly increases.
The number of subspaces into which the input domain is subdivided (cf.
eqn. (4.13), p. 48) increases significantly as does the number of subspaces
for the input domain of Step 2 of the algorithm (cf. eqn. (5.18), p. 78). The
advantage of the OTG algorithms of Types VI – IX over the Types III – V
OTG algorithms is, that the smoothness of the trajectory increases again, and
the effect of avoiding excitations of higher-order dynamics in motion systems
by using appropriate kinematic motion constraint values becomes reinforced.
As a result, very agile tasks can be realized, for example, transporting a glass
completely filled with water from an initial pose to a target pose with a
minimum loss of water.
than acceleration power, and, usually, a car can drive much faster in its for-
ward direction than in its backward direction.
This final chapter gives brief summaries of each single chapter of this mono-
graph, presents ideas for future work, and finally draws conclusions of this
work.
10.1 Summary
Literature Survey and Motivation
Besides on-line and off-line path planning and trajectory generation methods,
Chap. 2 surveys the fields of robot motion control and hybrid switched-system
control. Additionally, force/torque control and visual servo control concepts
are discussed as the most common kinds of sensor-guided robot motion con-
trol. This survey concludes with the motivation for this work:
“The majority of the surveyed concepts for off-line and also on-line mo-
tion generation produce a motion along a specified path. But, is this a good
approach? — For purely position/pose and/or trajectory-following controlled
motions: Sure and without restriction of any kind! But: When we execute
sensor-guided motions, for example, by force/torque or by visual servo con-
trol, we do not have a predefined path anyway, because the robot motion
directly depends on the sensor signal. We have to dismiss the path during
sensor-based motion control! As soon as we embed sensor-guided or sensor-
guarded motions, there is no predefined path anymore. In particular, we have
to say good-bye to trajectory planning and reference trajectories along previ-
ously specified paths. There is no path that can be exactly followed, because
everything may depend on sensors whose signals cannot be foreseen.”
Nine different types of OTG algorithms, Types I – IX, have been introduced
in Chap. 3. All types generate kinetically time-optimal and time-synchronized
T. Kröger: On-Line Trajectory Generation in Robotic Systems, STAR 58, pp. 179–184.
[Link] c Springer-Verlag Berlin Heidelberg 2010
180 10 Summary, Future Work, and Conclusion
trajectories for mechanical systems with one or more DOFs. Depending on the
type, the input and output values of the algorithms are specified. We distin-
guish between types of on-line trajectory generation algorithms that feature
acceleration limitation, jerk limitation, or the limitation of the derivative of
jerk. Furthermore, different target motion state parameters can be specified
depending on the algorithm type. The simplest cases only allow the specifi-
cation of a target pose/position, and for more complex types, target velocity
vectors, target acceleration vectors, and/or target jerk vectors may be spec-
ified. The highest type that has been realized by the author is the Type IV
OTG algorithm: This algorithm generates jerk-limited trajectories and allows
the specification of a target velocity vector.
The algorithm for multi-DOF systems consists of three steps, and a part
of the first step can also be applied to systems with one single DOF. In a
one-DOF system, the algorithm time-optimally transfers the system from an
arbitrary initial state of motion to a specified target state of motion. After
a general description of the concept, the concrete solution for the Type IV
OTG algorithm is presented in detail. The basic idea is that a finite num-
ber of motion profiles exists, of which one profile leads to the time-optimal
solution. This profile can be selected by a decision tree, and, subsequently,
a corresponding system of equations can be set up and solved. The solution
contains all required trajectory parameters, such that the output values, that
is, the state of motion for the current control cycle, can be calculated. Dur-
ing the solution of these equations, numerical problems appear, such that
a procedure that uses a combination of the Anderson-Björck-King method
and the simple bisection method was developed. This procedure ensures the
robustness of the algorithm, and deterministic solutions for arbitrary input
values can be calculated.
The key part of this work is an algorithm for the on-line generation of tra-
jectories for robotic systems with multiple DOFs. This algorithm consists of
three steps:
1. Calculation of the minimum synchronization time.
2. Synchronization of all DOFs to the synchronization time of Step 1 and
calculation of all trajectory parameters.
3. Calculation of all output values for the current control cycle based on the
attained parameters of Step 2.
The proposed algorithm for one-DOF systems is used to calculate the min-
imum possible execution times for all DOFs. The minimum synchronization
10.1 Summary 181
time cannot be lower than the maximum time value of all previously calcu-
lated times. Depending on the type of OTG, up to three inoperative time
intervals may be present for each DOF. These time intervals have to be cal-
culated in the first step of the algorithm, such that we can guarantee, that all
DOFs can reach their target state of motion exactly at the instant specified
by the synchronization time.
Step 2 of the algorithm calculates all trajectory parameters for all DOFs,
such that they reach their target states of motion synchronously, and Step
3 calculates the output values of the current control cycle, which are subse-
quently used as command variables for lower-level control.
This procedure enables the generation of time-synchronized trajectories
in multiple DOFs. Chapter 6 extended this algorithm to be applicable for
phase-synchronized trajectories, that is, straight-line trajectories in multi-
dimensional space.
The major advancement that can be achieved with this new algorithm regards
sensor-based robot motion control. In Chapter 7, a hybrid switched-control
system was suggested that consists of multiple sensors as well as open- and
closed-loop controllers, among which the system can switch discretely. How
control signals are chosen, is specified by Manipulation Primitives, which con-
stitute the interface to higher-level applications. This programming paradigm
is formally defined in order to establish the possibility of executing sensor-
guided and sensor-guarded robot motion commands simultaneously and in a
very open way, such that any kind and any number of sensors can be princi-
pally addressed. Due to the OTG algorithm, the system is able to switch be-
tween different reference coordinate systems at arbitrary (sensor-dependent)
instants. Moreover, switchings from task space control to actuator space con-
trol (or vice versa) become feasible, such that a safe and robust control system
can be realized, since the OTG algorithm is able to take over control from
arbitrary states of motion. This feature is very practical and of high relevance
because the on-line trajectory generation algorithm can also take over control
and/or supersede other controllers if a sensor unexpectedly fails.
Practical Results
One very important question that was addressed in Chap. 9.5 is the consid-
eration of robot dynamics, because the generated trajectories are only kineti-
cally time-optimal, which is a significant drawback as only constant kinematic
motion constraints are considered. Fig. 9.4 (p. 166) suggests a scheme that
generally opens the door for the embedding of a dynamic robot model, but
the block Parameter adaptation based on system dynamics and/or trajectory
optimization methods still is a part of a future work. Only if we are able, as in
classical off-line trajectory generation concepts, to incorporate the dynamic
behavior of a robot, high-performance motions can be safely exerted.
Another open point is the development of higher types of OTG algorithms.
The author was able to develop the Type IV algorithm and described the
fundamental concept for all types of on-line trajectory generators. But, as
discussed in Chap. 9.13 (p. 176), the Types V and VI would open the door to
further features. Type V, for example, is very relevant for the embedding of
system dynamics, and Type VI would enable trajectories that feature greater
smoothness.
Chap. 7.4 (p. 132) discussed the issue of stability in hybrid switched-control
systems using the OTG algorithm, that is, an open-loop pose controller, as
one control submodule. The monograph merely contains a derivation of a
line of arguments. A formal stability proof is beyond the scope of this work
and also part of the future work regarding theoretical hybrid switched-system
analysis.
10.3 Conclusion
This work introduced a new concept for motion generation in robotic systems
during runtime. The presented on-line trajectory generation algorithm is ex-
ecuted in parallel to low-level motion controllers, such that systems using it
are able to react instantaneously to unforeseen (sensor) events. In particular,
the algorithm closes a significant gap: Switching from sensor-guided machine
motions to trajectory-following motions becomes possible at any time and in
any state of motion. As a consequence, (multi-)sensor integration becomes
greatly simplified, and robot motion control systems are enabled to execute
trajectory-following motions, sensor-guided motions, and sensor-guarded mo-
tions. The proposed on-line trajectory generation algorithm acts as an open-
loop pose controller and can take over control at any time instant, such that
safe and continuous motions can be guaranteed — even if sensors fail.
Building the bridge to the introductory chapter, in which a brief com-
parison to the neurophysiological system of human beings was formulated,
the proposed algorithm enables robotic systems to perform a kind of robotic
reflex. This feature enables new fundamental possibilities for robot motion
control and programming, and it opens the gate to a new field of sensor-based
robotic applications. The concept is very basic and self-contained, such that
184 10 Summary, Future Work, and Conclusion
it is applicable in almost all areas of robotics and many areas of control engi-
neering. Due to its extremely simple interface, the algorithm can be directly
used in real-world applications; it works robustly and is real-time capable.
The proposed algorithm was developed with the aim to advance motion
control systems of many robotic applications in various fields, such as service
robotics, manipulation control systems, mobile robotics and manipulation,
or robotic surgery — in short: all fields in which sensor integration plays a
fundamental role. The algorithm can be regarded as an intermediate control
layer that is one element of the important bridge between low-level robot
motion control and higher-level (sensor-based) motion planning.
The basic idea of this work is of simple nature, and the mathematical
fundamentals used in this work are of a very basic nature, too. During the
entire development of the theory on on-line trajectory generation and during
the writing of this book, the author’s intention was always to keep everything
simple. In order to connect the final sentence of this work with the preface,
he would like to close his work with a famous quote from Leonardo da Vinci:
“Simplicity is the ultimate sophistication.”
Appendix A
The Modified Anderson-Björck-King
Method
As presented in Chap. 4.2.1 (p. 50), the method of Anderson and Björck
[12] with the improvement of King [131] is applied in this work. In order
to improve the robustness (at the expense of efficiency), this method was
combined with the bisection method as will be described in this appendix.
The Anderson-Björck-King method is a variant of the regula falsi and an
improvement of the Pegasus method [70, 71]. We assume the function f to
be continuous in the closed interval [a, b] and that f (a) f (b) < 0. Hence,
we know that there is at least one root of odd order within the interval of
]a, b[. The Anderson-Björck-King method calculates one of these zeros by a
repeated minimization of the root inclusion interval; it always converges if
initially f (a) f (b) < 0.
The regarded functions f in the context of OTG can be of very differ-
ent characteristics, which depend on the input values Wi at an instant Ti .
Although we can always determine an interval [a, b], from which we know
that it contains the desired root x0 , it may happen that a (in contrast to
the interval width) relatively large part of the function lies in parallel to
the abscissa. Such functions lead to efficiency problems when applying the
Anderson-Björck-King method, and in the worst case, the method will con-
verge very slowly, such that we are not able to specify a worst-case execution
time of the algorithm. To bypass this problem, to improve the robustness,
and to be able to specify a maximum number of required iterations in order
to be real-time capable, we combine the Anderson-Björck-King method with
the simple bisection method. The first three steps of the following algorithm
belong to the bisection method and all following ones to the Anderson-Björck-
King method.
Given: f : [a, b] −→ , f (a) f (b) < 0, and an error threshold ε > 0
cont
with ε ∈ .
Task: Find an approximation of one root x0 ∈ ]a, b[ , such that the
difference between the last two iterated values is smaller than
ε.
Start: Take x1 := a, x2 := b as initial values and compute f1 :=
f (x1 ), f2 := f (x2 ).
186 A The Modified Anderson-Björck-King Method
1. Bisection Step
x1 + x2
x3 := (A.1)
2
2. Calculation Step I
f3 := f (x3 ) (A.2)
If f3 = 0, the method ends with x0 = x3 .
x1 := x2 (A.3)
x2 := x3 (A.4)
f1 := f2 (A.5)
f2 := f3 . (A.6)
x2 := x3 (A.7)
f2 := f3 . (A.8)
4. Secant Step
Compute the slope of the connecting line from (x1 , f1 ) to (x2 , f2 ):
f1 − f2
s12 = (A.9)
x1 − x2
and set
f2
x3 := x2 − . (A.10)
s12
5. Calculation Step II
f3 := f (x3 ) (A.11)
If f3 = 0, the method ends with x0 = x3 .
x1 := x2 (A.12)
x2 := x3 (A.13)
f1 := f2 (A.14)
f2 := f3 . (A.15)
x2 := x3 (A.18)
f1 := g f1 (A.19)
f2 := f3 . (A.20)
x0 := x2 (A.21)
otherwise
x0 := x1 . (A.22)
If |x2 − x1 | > ε , the iteration is continued with Step 1 with the new
values x1 , x2 , f1 , and f2 from Step 6.
3
+6 2 aipeak1 +4 aipeak1 (Jimax )Vi +(Jimax ) 2 (Jimax ) (Pi −Pitrgt )+(Vi +Vitrgt )
!
2
2 peak1 trgt
−2 (Ai ) + 4 ai + 4 (Ji ) Vi − Vi
max
!!
peak1 2 2 peak1 2 trgt
+ ai −2 (Ai ) + 4 ai + (Jimax ) Vi − Vi .
trgt peak1 2 peak1 2 trgt
(Jimax )Vi + 3 ai −2 (Ai )2 + 4 ai + 4 (Jimax ) Vi − Vi
2
+ 2 (Jimax )Vi −2 (Ai )2 + 4 aipeak1 + 4 (Jimax ) Vi − Vitrgt
190 B Details on the PosTriNegTri Acceleration Profile (Step 1)
!!
2
2 peak1 2 peak1 trgt
+ (Ai ) −3 ai − −2 (Ai ) + 4 ai + 4 (Ji ) Vi − Vi
max
!
2
peak1 trgt
/ (Jimax )2 2
−2 (Ai ) + 4 ai + 4 (Ji ) Vi − Vi
max .
2 aipeak1 − Ai
ti = Ti + (B.13)
Jimax
3 a peak1
ti = 2ti + i max (B.14)
Ji
1
2
vi = Ai − aipeak1 2ti − Ti + 2Vi (B.15)
2
1
3
vi = aipeak1 3ti − 2ti + 2 vi (B.16)
2
1 2
2
pi = Vi 2ti − Ti + Ai 2ti − Ti
2
1 max 2 3
+ Ji ti − Ti + Pi (B.17)
6
1 peak1 3 2
3
pi = pi + 2 vi 3ti − 2ti +
2
ai ti − 2ti
2
1 max 3 2 3
− Ji ti − ti (B.18)
"6
aipeak2 = − Jimax Vitrgt − 3 vi (B.19)
aipeak2
4
ti = 3ti − (B.20)
Jimax
aipeak2
timin = 4ti − (B.21)
Jimax
1
4
vi = aipeak2 4ti − 3ti + 3 vi (B.22)
2
1 max 4 3
4
pi = pi + 3 vi 4ti − 3ti −
3
Ji ti − 3ti (B.23)
6
Now the system of equations is completely and uniquely solved, such that we
obtain the correct and desired time-optimal trajectory. As a final step, we
have to parameterize the elements of Mi .
1
ϑi = Ti , 2ti (cf. eqn. (3.9), p. 34) (B.24)
2 3
2
ϑi = ti , ti (B.25)
192 B Details on the PosTriNegTri Acceleration Profile (Step 1)
3
3
ϑi = ti , 4ti (B.26)
4
4
ϑi = ti , timin (B.27)
1
1
Vi = ϑi (B.28)
2
2
Vi = ϑi (B.29)
3
Vi = 3 ϑi (B.30)
4
Vi = 4 ϑi (B.31)
1
ji (t) = Jimax (B.32)
2
ji (t) = −Jimax (B.33)
3
ji (t) = −Jimax (B.34)
4
ji (t) = Jimax (B.35)
1
ai (t) = Ai + Jimax (t − Ti ) (B.36)
2
ai (t) = aipeak1 − Jimax t − 2ti (B.37)
3
ai (t) = −Jimax t − 3ti (B.38)
4
ai (t) = aipeak2 + Jimax t − 4ti (B.39)
1 max
1
vi (t) = Vi + Ai (t − Ti ) + J (t − Ti )2 (B.40)
2 i
1 max 2
2
vi (t) = 1 vi 2ti + aipeak1 t − 2ti − Ji t − 2ti (B.41)
2
3 1 max 3 2
3
vi (t) = vi ti −
2
J t − ti (B.42)
2 i
1 max 2
4
vi (t) = 3 vi 4ti + aipeak2 t − 4ti + Ji t − 4ti (B.43)
2
1 1 max
1
pi (t) = Pi + Vi (t − Ti ) + Ai (t − Ti )2 + J (t − Ti )3 (B.44)
2 6 i
1 peak1 2
2
pi (t) = 1 pi 2ti + 1 vi 2ti t − 2ti + a t − 2ti
2 i
1 3
− Jimax t − 2ti (B.45)
6
1 max 3
3
pi (t) = 2 pi 3ti + 2 vi 3ti t − 3ti − Ji t − 3ti (B.46)
6
B.3 Setting up the Parameters of Mi 193
4 1 peak2 2
4
pi (t) = 3 pi ti + 3 vi 4ti t − 4ti + ai t − 4ti
2
1 max 4 3
+ Ji t − ti (B.47)
6
With
l
mi (t) = l
pi (t), l vi (t), l ai (t), l ji (t) ∀ l ∈ {1, . . . , 4} (B.48)
(k Jimax ) + (k Jimax ) − 8 (k Jimax )2 (k Pi − k Pitrgt + tisync kVi ) + (k Jimax )
trgt √
trgt peak1 2
kVi − kVi −2 (k Ai )2 + 4 k ai + 4 (k Jimax ) kVi − kVi + 18
!
2
trgt peak1 trgt
kVi − kVi (k Jimax ) − (k Ai )2 + 2 k ai + 2 (k Jimax ) kVi − kVi
2 √
peak1
+ k ai − 8 tisync (k Jimax )2 + 18 (k Jimax )
2
− (k Ai )2 + 2 k aipeak1 + (k Jimax ) kVi − kVitrgt
!!!!
2
2 peak1 trgt
+ −2 (k Ai ) + 4 k ai + (k Jimax ) kVi − kVi .
196 C Details on the PosTriZeroNegTri Acceleration Profile (Step 2)
k ϑi = Ti , 2k ti
1
(C.28)
k ϑi = 2k ti , 3k ti
2
(C.29)
k ϑi = 3k ti , 4k ti
3
(C.30)
4
k ϑi = k ti , k ti
4 5
(C.31)
k ϑi = k ti , ti
5 5 sync
(C.32)
1
k ji (t) = k Jimax (C.33)
2
k ji (t) = −k Jimax (C.34)
3
k ji (t) =0 (C.35)
4
k ji (t) = −k Jimax (C.36)
5
k ji (t) = k Jimax (C.37)
1
k ai (t) = k Ai + k Jimax (t − Ti ) (C.38)
2
k ai (t) = k aipeak1 − k Jimax t − 2k ti (C.39)
3
k ai (t) =0 (C.40)
4
k ai (t)= −k Jimax t − 4k ti (C.41)
peak2
5
a
k i (t) = a
k i + J
k i
max
t − 5
t
k i (C.42)
1 max
1
k vi (t) = kVi +k Ai (t − Ti ) + kJ (t − Ti )2 (C.43)
2 i
2 peak1 1 max 2
2
k vi (t) = 1
k vi k ti + k ai t − 2k ti − k Ji t − 2k ti (C.44)
2
3 3
k vi (t) = k vi (C.45)
4 1 max 2
k vi k ti − t − 4k ti
4 3
k vi (t) = k Ji (C.46)
2
1 max 2
peak2
5
k vi (t) = 4
v i
5
ti + k a t − 5
ti + k J t − 5
ti (C.47)
k k i k
2 i k
1 2
1
k pi (t) = k Pi + kVi (t − Ti ) + k Ai (t − Ti )
2
1 max
+ kJ (t − Ti )3 (C.48)
6 i
2 2 1 peak1 2
k pi (t) = k pi k ti + k vi k ti t − k ti + t − 2k ti
2 1 1 2
ka
2 i
C.2 Setting up the Parameters of Mi 199
1 max 3
− k Ji t − 2k ti (C.49)
6
3 3
k pi (t) = k pi k ti + k vi k ti t − k ti
3 2 3 3
(C.50)
4 4 1 max 3
k pi (t) = k pi k ti + k vi k ti t − k ti − t − 4k ti
4 3 3 4
k Ji (C.51)
6
1 peak2 2
5
p
k i (t) = 4
p 5
k i k i t + 4
v 5
k i k i t t − 5
t
k i + k a t − 5
t
k i
2 i
1 3
+ k Jimax t − 5k ti (C.52)
6
With the results of eqns. (C.28) – (C.52), we can finally set up all trajectory
parameters for one single DOF k at time instant Ti
l
mi (t) = l pi (t), l vi (t), l ai (t), l ji (t) ∀ l ∈ {1, . . . , 5} (C.53)
k ϑi ∈ l Vi ∀ l ∈ {1, . . . , 5} .
l
(C.54)
Equations (C.53) and (C.54) represent the DOF k in Mi (cf. eqns. (3.9) and
(3.10), p. 34).
Appendix D
Type IV On-Line Trajectory Generation
in Very Simple Terms
Fig. D.1 Illustration of the rocket car in three different acceleration states: Ai =
−Aimax , Ai = 0 mm/s2 , and Ai = Aimax .
202 D Type IV On-Line Trajectory Generation in Very Simple Terms
lever jerkily. This leads to the consequence that the resulting acceleration
progression is jump-free and the jerk of the car is limited.
Fig. D.2 Illustration by means of the rocket car example: input values W i at time
Ti of the Type IV on-line trajectory generation algorithm for the one-dimensional
case.
may change, the maximum velocity may change, or even the maximum lever-
turning velocity may change.
In Chap. 4.2 (p. 49) the algorithm that solves this problem for Variant A
and Variant B, is discussed with all details and nuances.
Fig. D.3 Illustration by means of the rocket car example: input values Wi of the
Type IV on-line trajectory generation algorithm for a system with K independently
acting DOFs at time Ti .
whose elements contain either a one or a zero. Hence, a rocket car is only
taken into account if the corresponding element of the vector Si equals one.
If the respective value k Si for the car with the index k is zero, the car will not
be guided by the algorithm.
For a more compact embodiment of all these numbers, the matrix Wi is
introduced at the top of Fig. D.3 and contains all necessary input variables
of the OTG Type IV algorithm.
This algorithm is executed once per time slice, which again is represented
by Ti ; at each time slice three basic steps are executed:
D.3 Type IV OTG for Multi-DOF Systems 205
Remark D.1. If written in the style of Chap. 5.3, the current motion states
of all rocket cars can be simply summarized by
T
Mi = i, . . . , k M
1M i, i
..., KM , (D.2)
and the same can easily be applied to the target states of motion and the
motion constraints:
T
itrgt , . . . , k M
Mitrgt = 1 M itrgt , . . . , K M
itrgt (D.3)
T
Bi = 1
Bi , . . . , k Bi , . . . , K Bi . (D.4)
Abbreviations
Symbols
Introduction (Chaps. 1 – 2)
Fig. S.1 Convention for sub- and superscripts of all variables except sets and
profiles.
Fig. S.4 Convention for sub- and superscripts of variables and values in a hybrid
switched-system.
References
[12] N. Anderson and Å. Björck. A new high order method of regula falsi type for
computing a root of an equation. BIT Numerical Mathematics, 13(3):253–
264, September 1973.
[13] R. L. Andersson. A Robot Ping-Pong Player: Experiment in Real-Time In-
telligent Control. MIT Press, Cambridge, MA, USA, March 1988.
[14] R. L. Andersson. Aggressive trajectory generator for a robot ping-pong
player. IEEE Control Systems Magazine, 9(2):15–21, February 1989.
[15] ATI Industrial Automation, Inc., 1031 Goodworth Dr. Apex, NC, 27539,
USA. Homepage. [Link] (accessed: Dec. 15, 2008). Inter-
net, 2008.
[16] J. Baeten and J. De Schutter. Integrated Visual Servoing and Force Control,
volume 8 of Springer Tracts in Advanced Robotics. Springer, 2004.
[17] J. Barbic and D. L. James. Six-dof haptic rendering of contact between
geometrically complex reduced deformable models. IEEE Trans. on Haptics,
1(1):39–52, January 2008.
[18] Battenberg ROBOTIC GmbH & [Link], Zum Stempel 11, D-35043 Mar-
burg, Germany. Homepage. [Link] (accessed: Dec. 15,
2008). Internet, 2008.
[19] B. Bäuml and G. Hirzinger. Agile robot development (aRD): A pragmatic
approach to robotic software. In Proc. of the IEEE/RSJ International Con-
ference on Intelligent Robots and Systems, pages 3741–3748, Beijing, China,
October 2006.
[20] S. A. Bazaz and B. Tondu. On-line computing of a robotic manipulator joint
trajectory with velocity and acceleration constraints. In Proc. of the IEEE
International Symposium on Assembly and Task Planning, pages 1–6, Marina
del Rey, CA, USA, August 1997.
[21] S. A. Bazaz and B. Tondu. Minimum time on-line joint trajectory generator
based on low order spline method for industrial manipulators. Robotics and
Autonomous Systems, 29(4):3–17, December 1999.
[22] Bernecker + Rainer Industrie Elektronik Ges.m.b.H., B&R Straße 1, D-
5142 Eggelsberg, Germany. Homepage. [Link] (ac-
cessed: Dec. 15, 2008). Internet, 2008.
[23] Y. Bestaoui. On-line motion generation with velocity and acceleration con-
straints. Robotics and Autonomous Systems, 5(3):279–288, November 1989.
[24] L. Biagiotti and C. Melchiorri. Trajectory Planning for Automatic Machines
and Robots. Springer, Berlin, Heidelberg, Germany, first edition, 2008.
[25] L. Biagiotti and C. Melchiorri. Trajectory Planning for Automatic Machines
and Robots, chapter 3, Composition of Elementary Trajectories, pages 59–
150. Springer, Berlin, Heidelberg, Germany, first edition, 2008.
[26] C. G. L. Bianco and A. Piazzi. Minimum-time trajectory planning of me-
chanical manipulators under dynamic constraints. International Journal of
Control, 75(13):967–980, 2002.
[27] J. E. Bobrow. Optimal robot path planning using the minimum-time crite-
rion. IEEE Trans. on Robotics and Automation, 4(4):443–450, August 1988.
[28] J. E. Bobrow, S. Dubowsky, and J. S. Gibson. Time-optimal control of robotic
manipulators along specified paths. The International Journal of Robotics
Research, 4(3):3–17, Fall 1985.
References 215
[44] S. Chand and K. L. Doty. On-line polynomial trajectories for robot manipu-
lators. The International Journal of Robotics Research, 4(2):38–48, Summer
1985.
[45] F. Chaumentte and S. A. Hutchinson. Visual servo control. Part I: Basic ap-
proaches. IEEE Robotics and Automation Magazine, 4(13):82–90, December
2006.
[46] F. Chaumentte and S. A. Hutchinson. Visual servo control. Part II: Advanced
approaches. IEEE Robotics and Automation Magazine, 1(14):109–118, March
2007.
[47] F. Chaumentte and S. A. Hutchinson. Visual servoing and visual tracking.
In B. Siciliano and O. Khatib, editors, Springer Handbook of Robotics, chap-
ter 24, pages 563–583. Springer, Berlin, Heidelberg, Germany, first edition,
2008.
[48] C.-Y. Chen, P.-S. Liao, C.-C. Cheng, and G.-F. Jong. Design and imple-
mentation of real-time nurbs interpolator for motion control. In Proc. of
the second IEEE Conference Industrial Electronics and Applications, pages
426–431, Harbin, China, May 2007.
[49] Y. Chen and A. A. Desrochers. Structure of minimum-time control law for
robotic manipulators with constrained paths. In Proc. of the IEEE Inter-
national Conference on Robotics and Automation, volume 2, pages 971–976,
Scottsdale, AZ, USA, May 1989.
[50] Y. Chen and A. A. Desrochers. A proof of the structure of the minimum-time
control law of robotic manipulators using a hamiltonian formulation. IEEE
Trans. on Robotics and Automation, 6(3):388–393, June 1990.
[51] Y. Chen and A. A. Desrochers. Minimum-time control laws for robotic ma-
nipulators. International Journal of Control, 57(1):1–27, January 1993.
[52] M.-Y. Cheng, M.-C. Tsai, and J.-C. Kuo. Real-time NURBS command gen-
erators for CNC servo controllers. International Journal of Machine Tools
and Manufacture, 42(7):801–813, May 2002.
[53] S. Chiaverini and L. Sciavicco. The parallel approach to force/position control
of robotic manipulators. IEEE Trans. on Robotics and Automation, 9(4):361–
373, August 1993.
[54] H.-Y. Chuang and K.-H. Chien. A real-time NURBS motion interpolator
for position control of a slide equilateral triangle parallel manipulator. The
International Journal of Advanced Manufacturing Technology, 34(7):724–735,
October 2007.
[55] W. Chung, L.-C. Fu, and S.-H. Hsu. Motion control. In B. Siciliano and
O. Khatib, editors, Springer Handbook of Robotics, chapter 6, pages 133–159.
Springer, Berlin, Heidelberg, Germany, first edition, 2008.
[56] D. Chwa, J. Kang, and J. Y. Choi. Online trajectory planning of robot arms
for interception of fast maneuvering object under torque and velocity con-
straints. IEEE Trans. on Systems, Man, and Cybernetics, Part A: Systems
and Humans, 35(6):831–843, November 2005.
[57] COMAU S.p.A. Robotics, Via Rivalta, 30, 10095, Grugliasco (Turin), Italy.
C4G Instruction Handbook Motion Programming, System Software Rel. 3.1x,
2008. CR00757507 en-01/0208.
[58] COMAU S.p.A. Robotics, Via Rivalta, 30, 10095, Grugliasco (Turin),
Italy. C4G OPEN Instruction Handbook, System Software Rel. 3.1x, 2008.
CR00757550 en-03/0908.
References 217
[59] COMAU S.p.A. Robotics, Via Rivalta, 30, 10095, Grugliasco (Turin), Italy.
C4G Open, the Industrial Robots Open Control System for Universities and
SMEs (Product Brochure), 2008.
[60] COMAU S.p.A. Robotics, Via Rivalta, 30, 10095, Grugliasco (Turin), Italy.
Homepage. [Link] (accessed: Dec. 15, 2008). Internet, 2008.
[61] D. Constantinescu and E. A. Croft. Smooth and time-optimal trajectory
planning for industrial manipulators along specified paths. Journal of Robotic
Systems, 17(5):233–249, May 2000.
[62] J. J. Craig. Introduction to Robotics: Mechanics and Control. Prentice Hall,
third edition, 2003.
[63] O. Dahl. Path-constrained robot control with limited torques —
Experimental evaluation. IEEE Trans. on Robotics and Automation,
10(5):658–669, October 1994.
[64] O. Dahl and L. Nielsen. Torque limited path following by on-line trajectory
time scaling. In Proc. of the IEEE International Conference on Robotics and
Automation, volume 2, pages 1122–1128, Scottsdale, AZ, USA, May 1989.
[65] W. C. Davidon. Variable metric method for minimization. Argonne National
Laboratory Research and Development Report 5990, May 1959. Republished
in: SIAM Journal of Optimization, 1(1):1–17, Febuary 1991.
[66] W. P. Dayawansa and C. F. Martin. A converse Lyapunov theorem for a class
of dynamical systems which undergo switching. IEEE Trans. on Automatic
Control, 44(4):751–760, April 1999.
[67] R. A. DeCarlo, M. S. Branicky, S. Pettersson, and B. Lennartson. Perspec-
tives and results on the stability and stabilizability of hybrid systems. Proc.
of the IEEE, 88(7):1069–1082, July 2000.
[68] R. Diestel. Graph Theory, volume 173 of Graduate Texts in Mathematics.
Springer, Heidelberg, Germany, thrid edition, 2005.
[69] J. Dong, P. M. Ferreira, and J. A. Stori. Feed-rate optimization with jerk
constraints for generating minimum-time trajectories. International Journal
of Machine Tools and Manufacture, 47(12–13):1941–1955, 2007.
[70] M. Dowell and P. Jarratt. A modified regula falsi method for computing the
root of an equation. BIT Numerical Mathematics, 11(2):168–174, June 1971.
[71] M. Dowell and P. Jarratt. The “Pegasus” method for computing the root of
an equation. BIT Numerical Mathematics, 12(4):503–508, December 1972.
[72] J. Duffy. The fallacy of modern hybrid control theory that is based on “orthog-
onal complements” of twist and wrench spaces. Journal of Robotic Systems,
7(2):139–144, April 1990.
[73] G. Engeln-Müllges and F. Uhlig. Numerical Algorithms with C. Springer,
1996.
[74] EtherCAT Technology Group, Ostendstraße 196, D-90482 Nuremberg, Ger-
many. Homepage. [Link] (accessed: Dec. 15, 2008). In-
ternet, 2008.
[75] European Robotics Research Network (EURON). Hompepage.
[Link] (accessed: Dec. 15, 2008). Internet, 2008.
[76] FANUC Robotics Deutschland GmbH, Bernhäuser Straße 36, D-73765
Neuhausen a. d. F., Germany. FANUC Force Sensor FS-10iA data sheet,
2008.
[77] FANUC Robotics Deutschland GmbH, Bernhäuser Straße 36, D-73765
Neuhausen a. d. F., Germany. FANUC iRVISION data sheet, 2008.
218 References
[95] N. R. Gans. Hybrid Switched System Visual Servo Control. PhD the-
sis, Department of General Engineering, University of Illinois at Urbana-
Champaign, 2005.
[96] N. R. Gans and S. A. Hutchinson. A switching approach to visual servo
control. In Proc. of the IEEE International Symposium on Intelligent Control,
pages 770–776, Vancouver, Canada, October 2002.
[97] N. R. Gans and S. A. Hutchinson. Stable visual servoing through hybrid
switched-system control. IEEE Trans. on Robotics, 23(3):530–540, June 2007.
[98] T. Gat-Falik and T. Flash. A technique for time-jerk optimal planning of
robot trajectories. IEEE Trans. on Systems, Man, and Cybernetics, Part B:
Cybernetics, 29(1):83–95, February 1999.
[99] H. Geering, L. Guzzella, S. Hepner, and C. Onder. Time-optimal motions of
robots in assembly tasks. IEEE Trans. on Automatic Control, 31(6):512–518,
June 1986.
[100] GNU Scientific Library. Hompepage. [Link]
(accessed: Dec. 15, 2008). Internet, 2008.
[101] H. H. González-Baños, D. Hsu, and J.-C. Latombe. Motion planning: Re-
cent developments. In S. S. Ge and F. L. Lewis, editors, Autonomous Mo-
bile Robots: Sensing, Control, Decision-Making, and Applications, chapter 10,
pages 36–54. CRC Press, Boca Raton, 2006.
[102] D. M. Gorinevsky, A. M. Formalsky, and A. Y. Schneider. Force Control of
Robotics Systems. CRC Press, Boca Raton, FL, USA, 1997.
[103] S. Haddadin, A. Albu-Schäffer, and G. Hirzinger. Safety evaluation of phys-
ical human-robot interaction via crash-testing. In Proc. of Robotics: Science
and Systems, Atlanta, GA, USA, September 2007.
[104] S. Haddadin, A. Albu-Schäffer, and G. Hirzinger. The role of the robot mass
and velocity in physical human-robot interaction - part I: Non-constrained
blunt impacts. In Proc. of the IEEE International Conference on Robotics
and Automation, pages 1331–1338, Passadena, CA, USA, May 2008.
[105] S. Haddadin, A. Albu-Schäffer, and G. Hirzinger. The role of the robot mass
and velocity in physical human-robot interaction - part II: Constrained blunt
impacts. In Proc. of the IEEE International Conference on Robotics and
Automation, pages 1339–1345, Passadena, CA, USA, May 2008.
[106] S. Haddadin, A. Albu-Schäffer, A. De Luca, and G. Hirzinger. Collision detec-
tion and reaction: A contribution to safe physical human-robot interaction.
In Proc. of the IEEE/RSJ International Conference on Intelligent Robots and
Systems, pages 3356–3363, Nice, France, September 2008.
[107] Hasbro Inc., 1027 Newport Avenue, Mailstop A906, Pawtucket, RI 02861,
USA. Jenga homepage. [Link] (accessed: Dec. 15, 2008).
Internet, 2008.
[108] R. Haschke, E. Weitnauer, and H. Ritter. On-line planning of time-optimal,
jerk-limited trajectories. In Proc. of the IEEE/RSJ International Conference
on Intelligent Robots and Systems, pages 3248–3253, Nice, France, September
2008.
[109] A. Heim and O. von Stryk. Trajectory optimization of industrial robots with
application to computer-aided robotics and robot controllers. Optimization,
47:407–420, 2000.
[110] E. A. Henis and T. Flash. Mechanisms underlying the generation of averaged
modified trajectories. Biological Cybernetics, 72(5):407–419, April 1995.
220 References
[111] Don Herbison-Evans. Finding real roots of quartics. Technical report, Syd-
ney University of Technology, Department of Software Engineering, Sydney,
Australia, 2005.
[112] G. Hirzinger, N. Sporer, A. Albu-Schäffer, M. Hähnle, R. Krenn, A. Pas-
cucci, and M. Schedl. DLR’s torque-controlled light weight robot III — Are
we reaching the technological limits now? In Proc. of the IEEE Interna-
tional Conference on Robotics and Automation, volume 2, pages 1710–1716,
Washington, D.C., USA, May 2002.
[113] N. Hogan. Impedance control: An approach to manipulation. Part I: Theory.
Part II: Implementation. Part III: Applications. ASME Journal of Dynamic
Systems, Measurment, and Control, 107:1–24, March 1985.
[114] J. M. Hollerbach. Dynamic scaling of manipulator trajectories. ASME Jour-
nal on Dynamic Systems, Measurement, and Control, 106(1):102–106, 1984.
[115] Institut für Robotik und Prozessinformatik at the Technische Universität
Carolo-Wilhelmina zu Braunschweig, Mühlenpfordtstr. 23, D-38106 Braun-
schweig, Germany. Hompepage. [Link] (accessed:
Dec. 15, 2008). Internet, 2008.
[116] International Federation of Robotics (IFR). Hompepage.
[Link] (accessed: Dec. 15, 2008). Internet, 2008.
[117] International Organisation for Standardisation. ISO 8373: Manipulating in-
dustrial robots — Vocabulary. International Standard, 1994.
[118] L. Jaillet and T. Siméon. A PRM-based motion planner for dynamically
changing environments. In Proc. of the IEEE/RSJ International Conference
on Intelligent Robots and Systems, volume 2, pages 1606–1611, Sendai, Japan,
September 2004.
[119] JR3, Inc., 22 Harter Ave, Woodland, CA 95776, USA. Homepage.
[Link] (accessed: Dec. 15, 2008). Internet, 2008.
[120] M. E. Kahn and B. Roth. The near-minimum-time control of open-loop artic-
ulated kinematic chains. ASME Journal of Dynamic Systems, Measurement,
and Control, 93:164–172, September 1971.
[121] C.-G. Kang. Online trajectory planning for a PUMA robot. International
Journal of Precision Engineering and Manufacturing, 8(4):51–56, October
2007.
[122] L. E. Kavraki and S. M. LaValle. Motion planning. In B. Siciliano and
O. Khatib, editors, Springer Handbook of Robotics, chapter 5, pages 109–131.
Springer, Berlin, Heidelberg, Germany, first edition, 2008.
[123] Kawasaki Heavy Industries, Ltd., World Trade Center Bldg., 4-1,
Hamamatsu-cho 2-chome, Minato-ku, Tokyo 105-6116, Japan. Homepage.
[Link] (accessed: Dec. 15, 2008). Internet,
2008.
[124] Kawasaki Robotics GmbH, Sperberweg 29, D-41468 Neuss, Germany.
Kawasaki Robot Controller der Serie D, Bedienungshandbuch (in German),
2002. 90209–1017DGB.
[125] Kawasaki Robotics GmbH, Sperberweg 29, D-41468 Neuss, Germany.
Kawasaki Robot Controller Serie D, Referenzhandbuch AS-Sprache (in Ger-
man), 2002. 90209–1083DGE.
[126] W. Khalil and E. Dombre. Modeling, Identification and Control of Robots,
chapter 13, Trajectory Generation, pages 313–345. Hermes Penton, Ltd.,
London, UK, first edition, 2002.
References 221
[189] MOTOMAN, Inc., 805 Liberty Lane, West Carrollton, Ohio 45449, USA.
Homepage. [Link] (accessed: Dec. 15, 2008). Internet,
2008.
[190] MOTOMAN robotec GmbH, Kammerfeldstraße 1, D-85391 Allershausen,
Germany. System-Setup MOTOMAN NX100, Betriebsanleitung, 2004.
MRS6101GB.0.U.
[191] MOTOMAN robotec GmbH, Kammerfeldstraße 1, D-85391 Allershausen,
Germany. Betriebsanleitung Grundprogrammierung, 2008. MRS60000.
[192] Neuronics AG, Technoparkstrasse 1, CH-8005 Zürich, Switzerland. Data sheet
Kantana — Automation made easy, 2008.
[193] Neuronics AG, Technoparkstrasse 1, CH-8005 Zürich, Switzerland. Katana-
NativeInterface Reference Manual, Version 3.9.x, 2008.
[194] Neuronics AG, Technoparkstrasse 1, CH-8005 Zürich, Switzerland. Home-
page. [Link] (accessed: Dec. 15, 2008). Internet, 2008.
[195] P. Ögren, M. Egerstedt, and X. Hu. Reactive mobile manipulation using
dynamic trajectory tracking. In Proc. of the IEEE International Conference
on Robotics and Automation, pages 3473–3478, San Francisco, CA, USA,
April 2000.
[196] J. Olomski. Bahnplanung und Bahnführung von Industrierobotern (in Ger-
man). Vieweg Verlag, Braunschweig, Germany, 1989.
[197] OROCOS Homepage. Open robot control software. [Link]
(accessed: Dec. 15, 2008). Internet, 2002.
[198] R. Osypiuk, T. Kröger, B. Finkemeyer, and F. M. Wahl. A two-loop implicit
force/position control structure, based on a simple linear model: Theory and
experiment. In Proc. of the IEEE International Conference on Robotics and
Automation, pages 2232–2237, Orlando, FL, USA, May 2006.
[199] W. S. Owen, E. A. Croft, and B. Benhabib. Minimally compliant trajec-
tory resolution for robotic machining. In Proc. of the IEEE International
Conference on Advanced Robotics, pages 702–707, Coimbra, Portugal, June
2003.
[200] W. S. Owen, E. A. Croft, and B. Benhabib. Real-time trajectory resolution for
dual robot machining. In Proc. of the IEEE/RSJ International Conference on
Intelligent Robots and Systems, pages 4332–4337, Sendai, Japan, September
2004.
[201] F. C. Park, J. E. Bobrow, and S. R. Ploen. A lie group formulation of robot
dynamics. The International Journal of Robotics Research, 14(6):609–618,
December 1995.
[202] F. C. Park and B. Ravani. Smooth invariant interpolation of rotations. ACM
Transactions on Graphics,, 16(3):277–295, July 1997.
[203] R. P. C. Paul. Manipulator Cartesian path control. In M. Brady, J. M.
Hollerbach, T. L. Johnson, T. Lozano-Pérez, and M. T. Mason, editors, Robot
Motion: Planning and Control, chapter 4, pages 245–263. MIT Press, 1982.
[204] R. P. C. Paul. Robot Manipulators. MIT Press, fifth edition, 1983.
[205] R. P. C. Paul. Robot Manipulators, chapter 5, Motion Trajectories, pages
119–155. MIT Press, fifth edition, 1983.
[206] R. P. C. Paul. Robot Manipulators, chapter 7, Control, pages 197–215. MIT
Press, fifth edition, 1983.
[207] F. Pertin and J.-M. Bonnet des Tuves. Real time robot controller abstraction
layer. In Proc. of the Int. Symposium on Robots, Paris, France, March 2004.
226 References
[225] D. C. Schmidt, D. L. Levine, and S. Mungee. The design of the TAO real-
time object request broker. Computer Communications, 21(4):294–324, April
1998.
[226] J. De Schutter, T. De Laet, J. Rutgeerts, W. Decré, R. Smits, E. Aertbeliën,
K. Claes, and H. Bruyninckx. Constraint-based task specification and estima-
tion for sensor-based robot systems in the presence of geometric uncertainty.
The International Journal of Robotics Research, 26(5):433–454, May 2007.
[227] J. De Schutter and J. van Brussel. Compliant robot motion I. A formalism
for specifying compliant motion tasks. The International Journal of Robotics
Research, 7(5):3–17, August 1988.
[228] J. De Schutter and J. van Brussel. Compliant robot motion II. A control ap-
proach based on external control loops. The International Journal of Robotics
Research, 7(4):18–33, August 1988.
[229] L. Sciavicco and B. Siciliano. Modelling and Control of Robot Manipulators.
Advanced Textbooks in Control and Signal Processing. Springer, second edi-
tion, 2000.
[230] A. I. Selverston, M. I. Rabinovich, R. Huerta, T. Novotny, R. Levi,
Y. Axshavsky, A. Volkovskii, J. Ayers, and R. Pinto. Biomimetic central
pattern generators for robotics and prosthetics. In Proc. of the IEEE Inter-
national Conference on Robotics and Biomimetics, pages 885–888, Chenyang,
China, August 2004.
[231] SERCOS International e.V., Küblerstrasse 1, D-73079 Süssen, Germany.
Homepage. [Link] (accessed: Dec. 15, 2008). Internet, 2008.
[232] L. E. Sergio, C. Hamel-Pâquet, and J. F. Kalaska. Motor cortex neural
correlates of output kinematics and kinetics during isometric-force and arm-
reaching tasks. Journal of Neurophysiology, 94:2353–2378, May 2005.
[233] SEW-EURODRIVE GmbH & Co KG, Ernst-Blickle-Straße 42, D-76646
Bruchsal, Germany. Homepage. [Link] (accessed:
Dec. 15, 2008). Internet, 2008.
[234] Z. Shiller. Time-energy optimal control of articulated systems with geometric
path constraints. In Proc. of the IEEE International Conference on Robotics
and Automation, volume 4, pages 2680–2685, San Diego, CA, USA, May
1994.
[235] Z. Shiller and S. Dubowski. Time optimal paths and acceleration lines of
robotic manipulators. In Proc. of the IEEE Conference on Decision and
Control, volume 26, pages 199–204, Los Angeles, CA, USA, December 1987.
[236] Z. Shiller and H.-H. Lu. Robust computation of path constrained time op-
timal motions. In Proc. of the IEEE International Conference on Robotics
and Automation, volume 1, pages 144–149, Cincinnati, OH, USA, May 1990.
[237] Z. Shiller and H.-H. Lu. Computation of path constrained time optimal
motions with dynamic singularities. ASME Journal of Dynamic Systems,
Measurement, and Control, 114(1):34–40, March 1992.
[238] K. G. Shin and N. D. McKay. Minimum-time control of robotic manipula-
tors with geometric path constraints. IEEE Trans. on Automatic Control,
30(5):531–541, June 1985.
[239] K. G. Shin and N. D. McKay. A dynamic programming approach to trajec-
tory planning of robotic manipulators. IEEE Trans. on Automatic Control,
31(6):491–500, June 1986.
228 References
[257] The Numerical Algorithms Group, Ltd., Wilkinson House Jordan Hill Road,
Oxford, OX2 8DR, UK. Hompepage. [Link] (accessed: Dec.
15, 2008). Internet, 2008.
[258] The University of Chicago. The Chicago Manual of Style. The University of
Chicago Press, Chicago, IL, USA, 15th edition, 2003.
[259] U. Thomas. Automatisierte Programmierung von Robotern für Montageauf-
gaben (in German). Shaker Verlag, Aachen, Germany, 2008.
[260] U. Thomas, B. Finkemeyer, T. Kröger, and F. M. Wahl. Error-tolerant exe-
cution of complex robot tasks based on skill primitives. In Proc. of the IEEE
International Conference on Robotics and Automation, volume 3, pages 3069–
3075, Taipei, Taiwan, September 2003.
[261] U. Thomas, F. M. Wahl, J. Maaß, and J. Hesselbach. Towards a new con-
cept of robot programming in high speed assembly applications. In Proc. of
the IEEE/RSJ International Conference on Intelligent Robots and Systems,
pages 3827–3833, Edmonton, Canada, August 2005.
[262] G. J. Tortora and B. Derrickson. Principles of Anatomy and Physiology,
chapter 13, pages 439–472. John Wiley and Sons, eleventh edition, 2006.
[263] G. J. Tortora and B. Derrickson. Principles of Anatomy and Physiology.
John Wiley and Sons, eleventh edition, 2006.
[264] J. F. Traub. Iterative Methods for the Solution of Equations, chapter 1.2 and
appendix C. Prentice-Hall, Englewood Cliffs, NJ, USA, first edition, 1964.
[265] I. R. van Aken and H. van Brussel. On-line robot trajectory control in joint
coordinates by means of imposed acceleration profiles. Robotica, 6(3):185–
195, 1988.
[266] J. Vannoy and J. Xiao. Real-time adaptive motion planning (RAMP) of mo-
bile manipulators in dynamic environments with unforeseen changes. IEEE
Trans. on Robotics, 24(5):1199–1212, October 2008.
[267] L. Villani, , and J. De Schutter. Force control. In B. Siciliano and O. Khatib,
editors, Springer Handbook of Robotics, chapter 7, pages 161–185. Springer,
Berlin, Heidelberg, Germany, first edition, 2008.
[268] M. Vukobratović and D. Šurdilović. Control of robotic systems in con-
tact tasks: An overview. In Proc. of the IEEE International Conference on
Robotics and Automation, pages 13–32, Atlanta, GA, USA, May 1993.
[269] M. Žefran, V. Kumar, and C. B. Croke. On the generation of smooth three-
dimensional rigid body motions. IEEE Trans. on Robotics and Automation,
14(4):576–589, August 1998.
[270] L. Žlajpah. On time optimal path control of manipulators with bounded
joint velocities and torques. In Proc. of the IEEE International Conference
on Robotics and Automation, volume 2, pages 1572–1577, Minneapolis, MN,
USA, April 1996.
[271] F. M. Wahl. Digital Image Signal Processing. Artech House, Boston, MA,
USA, first edition, 1987.
[272] W. Wang, S. S. Chan, D. A. Heldman, and D. W. Moran. Motor cortical
representation of position and velocity during reaching. Journal of Neuro-
physiology, 97:4258–4270, March 2007.
[273] L. E. Weiss, A. C. Sanderson, and C.P. Neuman. Dynamic sensor-based
control of robots with visual feedback. IEEE Journal of Robotics and Au-
tomation, 3(5):404–417, 1987.
230 References