Model Predictive Control of Wheeled Mobile Robots
Model Predictive Control of Wheeled Mobile Robots
OF
WHEELED MOBILE ROBOTS
By
Haris Chowdhry
NOTICE: AVIS:
The author has granted a non- L’auteur a accordé une licence non exclusive
exclusive license allowing Library and permettant à la Bibliothèque et Archives
Archives Canada to reproduce, Canada de reproduire, publier, archiver,
publish, archive, preserve, conserve, sauvegarder, conserver, transmettre au public
communicate to the public by par télécommunication ou par l’Internet, prêter,
telecommunication or on the Internet, distribuer et vendre des thèses partout dans le
loan, distribute and sell theses monde, à des fins commerciales ou autres, sur
worldwide, for commercial or non- support microforme, papier, électronique et/ou
commercial purposes, in microform, autres formats.
paper, electronic and/or any other
formats.
.
The author retains copyright L’auteur conserve la propriété du droit d’auteur
ownership and moral rights in this et des droits moraux qui protège cette thèse. Ni
thesis. Neither the thesis nor la thèse ni des extraits substantiels de celle-ci
substantial extracts from it may be ne doivent être imprimés ou autrement
printed or otherwise reproduced reproduits sans son autorisation.
without the author’s permission.
While these forms may be included Bien que ces formulaires aient inclus dans
in the document page count, their la pagination, il n’y aura aucun contenu
removal does not represent any loss manquant.
of content from the thesis.
Abstract
The control of nonholonomic wheeled mobile robots (WMRs) has gained a lot of attention
in the field of robotics over the past few decades as WMRs provide an increased range of
motion resulting in a larger workspace. This research focuses on the application of Model
Predictive Control (MPC) for real-time trajectory tracking of a nonholonomic WMR. MPC
is a control strategy in which the control law is designed based on optimizing a cost func-
tion. The input and output constraints that may arise in practical situations can be directly
incorporated into the control system using MPC. Computation time is the biggest hurdle in
adapting MPC strategies for trajectory tracking. This research applies a non-feasible active
set MPC algorithm developed in [1] which is faster than the traditional active set methods
(ASMs). A discrete-time linear model of a general WMR is used for the simulation. MAT-
LAB simulations are performed for tracking circular as well as square trajectories using
the discretized WMR model and the non-feasible ASM (NF-ASM). The performance of
NF-ASM is compared to two other well-known traditional algorithms, i.e. Fletcher’s ASM
and MATLAB’s Quadratic Programming algorithm. It is shown that, although all these
algorithms are capable of providing satisfactory trajectory tracking performance, NF-ASM
is a better choice in terms of the simulation time and required number of iterations for real-
time trajectory tracking of any type as long as the constraints on the inputs stay active for a
long period during the simulation.
iii
To my Father and Maa Ji
iv
Acknowledgements
I would like to thank my supervisor, Dr. Ruth Milman, for setting up a stress free atmo-
sphere for my learning and for being so helpful and kind. I really gained a lot from her; not
just work-related knowledge but also, personal values like hard work, honesty and dedica-
tion that will stay with me for the rest of my life.
Of course, I am grateful to my parents and grandparents for their constant support and
love. Without their prayers, this work would never have come into existence.
v
Table of Contents
Abstract iii
Acknowledgements v
Table of Contents vi
List of Figures ix
vi
3 The Linear MPC Algorithms 25
3.1 Non-feasible Active Set Method . . . . . . . . . . . . . . . . . . . . . . . 27
3.2 Fletcher’s Active Set Method . . . . . . . . . . . . . . . . . . . . . . . . . 28
3.3 Differences Between NF-ASM and FL-ASM . . . . . . . . . . . . . . . . 29
6 Conclusions 93
7 Appendices 96
7.1 MATLAB Code for Circular Reference Trajectory Generation . . . . . . . 96
7.2 MATLAB Code for Square Reference Trajectory Generation . . . . . . . . 98
7.3 MATLAB Code for Trajectory Tracking Using NF-ASM . . . . . . . . . . 101
7.4 MATLAB Code for Trajectory Tracking Using FL-ASM . . . . . . . . . . 106
7.5 MATLAB Code for Trajectory Tracking Using MATLAB’s QP . . . . . . . 111
Bibliography 115
vii
List of Tables
5.1 Circular Trajectory Tracking Results under the Constraint Set Cc1 . . . . . 46
5.2 Circular Trajectory Tracking Results under the Constraint Set Cc2 . . . . . 51
5.3 Circular Trajectory Tracking Results under the Constraint Set Cc3 . . . . . 56
5.4 NF-ASM vs FL-ASM for Circular Trajectory Tracking . . . . . . . . . . . 61
5.5 NF-ASM vs MATLAB’s QP algorithm for Circular Trajectory Tracking . . 62
5.6 Square Trajectory Tracking Results under the Constraint Set Cs1 . . . . . . 64
5.7 Square Trajectory Tracking Results under the Constraint Set Cs2 . . . . . . 69
5.8 Square Trajectory Tracking Results under the Constraint Set Cs3 . . . . . . 74
5.9 Square Trajectory Tracking Results under the Constraint Set Cs4 . . . . . . 79
5.10 Square Trajectory Tracking Results under the Constraint Set Cs5 . . . . . . 84
5.11 NF-ASM vs FL-ASM for Square Trajectory Tracking . . . . . . . . . . . . 91
5.12 NF-ASM vs MATLAB’s QP algorithm for Square Trajectory Tracking . . . 92
viii
List of Figures
ix
5.16 NF-ASM performance under constraint Cs3 . . . . . . . . . . . . . . . . . 75
5.17 FL-ASM performance under constraint Cs3 . . . . . . . . . . . . . . . . . 76
5.18 MATLAB’s QP performance under constraint Cs3 . . . . . . . . . . . . . . 77
5.19 NF-ASM performance under constraint Cs4 . . . . . . . . . . . . . . . . . 80
5.20 FL-ASM performance under constraint Cs4 . . . . . . . . . . . . . . . . . 81
5.21 MATLAB’s QP performance under constraint Cs4 . . . . . . . . . . . . . . 82
5.22 NF-ASM performance under constraint Cs5 . . . . . . . . . . . . . . . . . 85
5.23 FL-ASM performance under constraint Cs5 . . . . . . . . . . . . . . . . . 86
5.24 MATLAB’s QP performance under constraint Cs5 . . . . . . . . . . . . . . 87
x
Chapter 1
Mobile robot control is an area of research that has attracted a lot of attention recently due to
the need for autonomous systems. Although the field of robotics has achieved great success
in the manufacturing sector, these industrial robots suffer from the major disadvantage of
the lack of mobility. Robot manipulators with a fixed base allow limited range of motion
and a significantly small workspace compared to robots mounted on movable bases, i.e. a
When applying control to a standard moving vehicle setup, it is important to realize that
the motion of the wheels is restricted thus only some instantaneous directions of motion can
be achieved. As an example, consider the parallel parking manoeuvre for the car shown in
Fig. 1.1. It is not possible to drive a car sideways, as shown using the dotted arrow line in
the figure, to achieve parallel parking. One has to make a ritualistic manoeuvre (shown
with solid lines in figure) of first moving parallel to the car upfront and then reversing with
the wheels turned towards the curb to achieve parallel parking. This type of system, where
1
CHAPTER 1. INTRODUCTION: WHEELED MOBILE ROBOT CONTROL 2
There is extensive literature available on the introduction and problem formulation for
nonholonomic systems. The book by Sastry, Murray and Li [2] offers a good introduction to
the nonholonomic systems. Another book by Neimark and Fufaev [3] explains the dynamic
The control design theory of simple WMRs is developed in [4, 5, 6] and example ap-
plications of variants of this theory are presented in [7, 8, 9]. Optimal control design tech-
niques and their applications to nonholonomic WMRs are detailed in [10, 11]. The path
planning of WMRs in the presence of obstacles is explained in [12, 13] and in the presence
of constraints is given in [14, 15]. Recently, adaptive techniques are also used to control
WMRs [16, 17]. The control design theory of WMRs with trailers attached to them is
developed in [18, 19] and example applications of variants of this theory are presented in
The control modeling of a nonholonomic system is generally classified into two groups
[23]:
The kinematic model provides the mathematics of motion of a WMR without consid-
ering the forces responsible for that motion. On the other hand, the dynamic model takes
In a kinematic model, the control inputs to the system are generally linear and angular ve-
locity variables. The kinematic model of a nonholonomic system is given by the following
equation [23]:
where x = [x1 x2 ...xn ]0 is the state vector, gi (x) and ui (i = 1, 2, ...m) are the specified
if the rank of the controllability Lie algebra computed by the iterated Lie brackets of
g1 (x), g2 (x), ..., gm (x) is n. Lie algebra makes it possible to determine the controllabil-
ity of nonlinear systems. The complete nonholonomy of a system implies that all points
in the space are reachable even under the imposition of constraints. Hence, the kinematic
For simplicity of the control design, the model described in (1) is transformed into
different forms. For example, for a system with two inputs, i.e. m = 2, the chained form
in which the derivative of each successive state is dependent on the previous state [23]:
z˙1 = y1 y˙2
z˙2 = z1 y˙2
z˙3 = z2 y˙2
:::
y˙1 = u1
y˙2 = u2
and the power form in which the derivative of each successive state is dependent on an
z˙1 = y1 y˙2
1
z˙2 = (y1 )2 y˙2
2
:::
1
żn−m = (y1 )n−m y˙2
(n − m)!
y˙1 = u1
y˙2 = u2
CHAPTER 1. INTRODUCTION: WHEELED MOBILE ROBOT CONTROL 5
It is important to note that the model in (1.1.1) not only includes the evolutionary dy-
namics of the system but it also incorporates the constraints. Hence, the control of this type
x˙c = v cos θ
y˙c = v sin θ
θ̇ = ω (1.1.2)
where (xc , yc ) is the geometric center as well as the center of the mass of the WMR, θ de-
notes the orientation of the WMR with respect to the horizontal axis, v is the linear velocity
and ω is the angular velocity of the wheels. Since the wheels cannot move sideways, we
have the following nonholonomic constraint that must be imposed on the system:
The control inputs to (1.1.2) are the forward velocity v and the angular velocity ω of
x1 = xc cos θ + yc sin θ
x2 = θ
x3 = xc sin θ − yc cos θ
u1 = v − ωx3
u2 = ω
x˙1 = u1
x˙2 = u2
x˙3 = x1 x˙2
In fact, any system with three states and two inputs can be converted to the kinematic
In a dynamic model, the control inputs to the system are generally force and torque vari-
ables. The dynamic model of a nonholonomic system is given by the following equation
[23]:
qi ri = ui , i = 1, 2, ..., m (1.1.3)
where x = [x1 x2 ...xn ]0 is the state vector, qi and ri (i = 1, 2, ...m) are the outputs and the
Just as in the case of the kinematic model, the dynamic model described by (1.1.3) and
(1.1.4) can be transformed into a single set of equations in chained or power form. As an
example, consider again the model of the WMR described in (1.1.2). We can obtain the
λ F1
ÿ = sin θ + cos θ
m m
λ F1
y¨c = − cos θ + sin θ
m m
τ
θ̈ =
Ic
x¨c sin θ − y˙c cos θ = 0 (1.1.5)
where F1 is the pushing force in the direction of the heading angle, τ1 is the steering torque
about the vertical axis through the center of the mass, m is the mass of the robot, Ic is the
The following power form representation of the WMR can easily be obtained from (1.1.5):
x¨1 = u1
x¨2 = u2
x¨3 = x1 x˙2
A WMR consists of a solid base with an optionally mounted manipulator arm which is
used to perform a predefined task. The base has wheels to add mobility. Since this research
focuses on the motion tracking of the WMR, it is assumed that the WMR is not equipped
with a manipulator. This leads to a simple schematic of the WMR given in Fig. 1.2. Also,
CHAPTER 1. INTRODUCTION: WHEELED MOBILE ROBOT CONTROL 8
this research focuses on the impact of changing the speed and steering velocity on the mo-
tion of the WMR. Therefore, kinematic modeling of the WMR is more suited as compared
to dynamic modeling.
Y-axis l
WMR
x X-axis
Figure 1.2: The Orientation and Position of the WMR
In order to find a kinematic model for the WMR, it is assumed that the robot is a
rigid body and has non-deforming wheels. It is also assumed that the robot moves without
slipping, i.e. the translational motion of the robot is solely due to the rolling of the wheels
on the ground. Under these assumptions, the nonlinear rear-wheeled kinematic model of
CHAPTER 1. INTRODUCTION: WHEELED MOBILE ROBOT CONTROL 9
where (x, y) represents the position of the robot, θ denotes the orientation of the WMR with
respect to the horizontal axis, φ is the steering angle and l is the distance between the two
axles of the car as shown in Fig. 1.2. The control inputs to (1.2.1) are the linear velocity of
h i
the WMR, v1 , and its steering velocity, v2 . The x y θ φ in the above representation
completely defines the location and orientation of a WMR at a particular instance in time.
The Model given in (1.2.1) is nonlinear. To simplify the model for trajectory tracking,
a linearized error model is developed by computing the Jacobian matrix of the nonlinear
system defined in (1.2.1) and evaluating it at the reference point (xd , yd , θd , φd ). This lin-
˙
X̃(t) = A(t)X̃(t) + B(t)ũ(t) (1.2.2)
where
x(t) − xd (t)
y(t) − y (t)
. d
X̃(t) = X(t) − Xd (t) =
θ(t) − θd (t)
φ(t) − φd (t)
" #
. v1 (t) − vd1 (t)
ũ(t) = u(t) − ud (t) =
v2 (t) − vd2 (t)
CHAPTER 1. INTRODUCTION: WHEELED MOBILE ROBOT CONTROL 10
0 0 −vd1 (t) sin θd (t) 0
. 0 0 vd1 (t) cos θd (t) 0
A(t) =
vd1 (t)
0 0 0 2
lcos θd (t)
0 0 0 0
cos θd (t) 0
. sin θd (t) 0
B(t) = tan θ (t)
d
l
0
0 1
In the above linearized model (1.2.2), the two control inputs are the difference in the
actual and desired linear velocities (v1 − vd1 ) and the difference in the actual and desired
steering velocities (v2 − vd2 ). In this research, we put constraints on these control inputs. In
other words, we put constraints on the deviation of the linear and steering velocities from
Controllability of a linear system is defined as its ability to achieve any point in its state-
space by using bounded control inputs [26]. To determine whether a linear system is con-
trollable, a controllability matrix is determined from the state space form of that system. A
linear system is said to be controllable if its controllability matrix has full rank. For a linear
system of the form (1.2.2) with system matrix A(t) of size n × n, the controllability matrix
is given by:
.
h i
Ctrb = B(t) A(t)B(t) A2 (t)B(t) ... An−1 B(t)
If the rank of Ctrb is n, the linear system is controllable. In other words, it is possible
to achieve any point in the state-space of the system by using bounded inputs.
CHAPTER 1. INTRODUCTION: WHEELED MOBILE ROBOT CONTROL 11
By computing the controllability matrix of the linearized WMR model developed in the
Since all the rows and the first four columns of Ctrb are independent of each other as
long as vd 1(t) is not zero, the rank of Ctrb is 4 which is equal to the size of the system
matrix A(t). When vd1 (t) becomes zero, the above controllability matrix loses full rank.
Hence, the linearized WMR model in (1.2.2) is completely controllable as long as the
reference input velocity vd1 (t) is not zero. This result allows us to use MPC for trajectory
tracking [26]. The continuous-time state-space model of (1.2.2) is converted into discrete-
The purpose of this research is to establish a trajectory tracking control technique for non-
holonomic WMRs. While doing so, we would like to ensure that the system is able to:
2. Allow for an easy application of input and state constraints that may arise in practical
situations.
3. Allow for the tuning of the final control law to obtain good transient performance.
CHAPTER 1. INTRODUCTION: WHEELED MOBILE ROBOT CONTROL 12
Although different control techniques have been established over the years to solve the
WMR trajectory tracking problem [4, 5, 6], most of them do not allow easy control law
tuning and incorporation of constraints. Model Predictive Control (MPC) technique meets
the design requirements 2−4. However, traditionally, it is not used for the control of WMR
due to its high computational burden and high time consumption. In this research, a linear
MPC is applied which uses a non-feasible active set method (NF-ASM) from [1]. This
ASM is much faster than the traditional active set methods. To compare the performance
of this ASM, Fletcher’s Active Set Method (FL-ASM) developed in [28] and MATLAB’s
As explained in the previous section, this research uses NF-ASM with the linear MPC tech-
nique for the trajectory tracking of a WMR. To compare the performance of NF-ASM, two
traditional methods, namely FL-ASM and MATLAB’s Quadratic Programming (QP) algo-
rithm, are also used to control the WMR and make it track different types of trajectories.
NF-ASM uses a different approach from the traditional ASMs in that the intermediate solu-
tions of the algorithm do not enforce all constraints and hence, multiple active set changes
can be made per iteration. Experimental results have shown that the applied algorithm can
MPC algorithms used for trajectory tracking and cost function minimization are explained
in Chapter 3. The overall control structure and simulation setup is presented in Chapter
CHAPTER 1. INTRODUCTION: WHEELED MOBILE ROBOT CONTROL 13
4. The simulation results are discussed in Chapter 5 and a brief conclusion of the thesis is
system where the motion is possible in any direction without restrictions. The relative dif-
ficulty of the control problem depends on the nature of the nonholonomic system (i.e. its
model) as well as the control objective. It is possible to use classical nonlinear control tech-
niques if the control objectives are to stabilize a system to certain trajectories [29], stabi-
lization around a region where the equilibrium exists [30, 31, 32], dynamic path following
[33, 34] and output tracking [35, 36]. On the other hand, the standard nonlinear control
techniques cannot be used for control objectives such as motion planning [2, 37, 38] and
In [39] and [40], authors show that it is neither possible to stabilize the nonlinear plant
directly with time invariant feedback nor possible to apply nonholonomic integrators or
Over the years, many techniques have been employed to mitigate the aforementioned
14
CHAPTER 2. CONTROL OF NONHOLONOMIC SYSTEMS 15
problem. Sliding mode control is employed in [41]. Time-varying feedback laws [42],
hybrid control laws [43] and dynamic feedback linearization [44] are also used to solve
the above problem. Recently, robust adaptive controls [17, 16] and MPC are also used to
control a WMR. The next sections provide a brief overview of all these techniques and the
The sliding mode technique develops different time-invariant control laws that ensure the
Lyapunov stability of the nonholonomic system. The state feedback control law switches
between these time-invariant laws and is, therefore, not continuous in time. The switching
decisions are based on the type of tracked trajectory. The sliding mode approach transforms
a higher-order system into first-order system which simplifies control design and analysis.
In [41], a control law for the stabilization and tracking problem of a nonholonomic
system is developed. By utilizing sliding mode theory, a feedback law is generated that
The major disadvantage in the development of this technique is that the initial condi-
tions of the system need to be specified and are bounded within a region. This limits the
scope of this technique in practical situations. Also, the overall feedback law is discontin-
uous. This discontinuity could cause erroneous results if the delays in the system are not
considered carefully. The major advantages of this technique are robustness and high accu-
racy. However, this technique is sensitive to parameter variation and the sudden switching
between the controllers causes high frequency variation which creates ”chattering effects”.
The switching delay, which is defined as the time interval between the deviation from the
constraints to the actual measurement time, also affects the performance of the system. The
CHAPTER 2. CONTROL OF NONHOLONOMIC SYSTEMS 16
increase in switching delay raises the probability of a constraint violation as the controller
is not able to react immediately to any deviation in the system. It is possible to reduce the
response time of the system by using a very high feedback gain but this method increases
the required control effort and hence, is seldom used in practical scenarios. Another disad-
vantage of this technique is that the control design optimization is not intuitively possible.
tion
In [44], separate control techniques are applied for trajectory tracking and posture stabi-
lization. Three different techniques are used for trajectory tracking and their results are
ear feedback design of an input to linearize the error dynamic around a reference trajectory
and 3) Nonlinear feedback design of the input based on Lyapunov function. It is shown that
the dynamic feedback linearization control performs better than other controllers in terms
of tracking error. It was observed that for a simple linear feedback design, the initial condi-
tions also affect that trajectory tracking as larger tracking error is observed when a non-zero
input velocity is used. The main disadvantage of the above controller implementations is
that there is no easy way to incorporate output constraints. Also, only a smooth eight-
path is not tracked. It is expected that the tracking error at the corners of such trajecto-
ries would be sufficiently high since PD gains are used to tune the controller. Increasing
the PD gains would be one way to reduce the tracking error but it would slow down the
speed of the controller. Since WMR requires real-time control, computational workload is
one important aspect to be used for controller performance comparison. However, no time
CHAPTER 2. CONTROL OF NONHOLONOMIC SYSTEMS 17
requirements to perform the trajectory tracking task are given in the paper.
For posture stabilization, four different controllers are used in [44]: 1) Smooth time
varying stabilization 2) Non-smooth time varying stabilization 3) Design using polar coor-
dinates and 4) Dynamic feedback linearization. It is shown that smooth and non-smooth
time varying stabilizations are very slow, erratic and hard to tune. On the other hand, de-
sign with polar coordinates and dynamic feedback linearization are fast and the response is
natural as opposed to erratic in the case of other controllers. It is also easy to tune and opti-
mize the final controller using these two controllers especially in case of dynamic feedback
The major advantage of dynamic feedback linearization over polar coordinates is that
the designed controller is in a general form and can be applied to different WMR models.
The major disadvantage of the WMR controller design explained in [44] is that separate
controllers are used for posture stabilization and trajectory tracking. Hence, the overall
control effort is significant. Also, robustness in terms of disturbance rejection is not tested.
Hybrid control laws make use of continuous time as well as discrete time controllers to
achieve feedback stabilization. A two-level control structure is used in hybrid control strat-
egy, in which the top-level controller is a discrete-time switching control which switches
between multiple continuous time or discrete time low-level controllers based on a prede-
fined set of rules. This control technique is applicable to both chained form [45, 46, 47]
and power form nonholonomic systems [48]. The chained form control design proposed in
[45, 46] offers exponential convergence of the states to the origin and the one proposed in
Discrete time supervisory controllers are used in [25, 49, 50] to switch between low
level continuous time-invariant feedback controllers. Each low level controller is used to
track a certain straight trajectory while the high level discrete time controller ensures that
the overall desired trajectory is successfully followed. An application of this technique can
be found in [51, 52] for the position control of an under-actuated spacecraft using torque
as the input.
The theory of a hybrid control law is proposed in [43] where multiple controllers are
troller that generates an appropriate control signal to achieve stabilization. This technique
The major disadvantage of hybrid control technique is that there is no direct way of
optimizing the controller and it is hard to incorporate input and output constraints. Also,
the controller switching is a discontinuous process where the switching decision is made
based on the initial conditions. Since the initial conditions vary continuously, there is a
system is classified into kinematic control and dynamic control. Lagrangian system’s kine-
matic and dynamic equations are converted into chained form. Further transformation nar-
rows down the tracking problem to finding the motor torque, such that trajectory tracking
is successfully accomplished. The robust control law with uncertainties, such as unknown
inertia values, is established. The controller consists of two parts. In the first part, an
CHAPTER 2. CONTROL OF NONHOLONOMIC SYSTEMS 19
embedded input ensures the tracking of desired trajectory if mechanical dynamics are not
present. The second part of the controller regulates the contact force by utilizing torque
as an input. The advantage of the proposed algorithm is that the controller has the ability
to deal with uncertain systems where the model parameters are changing with time or are
completely unknown and unmeasurable. The algorithm also considers input constraints.
However, it ignores output constraints. Since the system is time varying, the control al-
this work.
Neural networks are also used in controls literature to predict the future trajectory of the
WMRs. In [53] , an optimal control trajectory is computed using neural networks in the
presence of obstacles. However, a nonlinear model of a WMR is used for trajectory tracking
and hence, adds to the computational workload. In [54], a path following problem is solved
for a WMR by using neural networks for optimal control trajectory computation. The
design is based on optimizing the control law to minimize the error between the actual and
reference trajectory.
In practical scenarios, the state values are determined by using sensors and are not accurate
due to disturbances. Kalman filtering is a techniques used to account for these disturbances.
It is based on a set of mathematical equations that allow estimation of the states of a process
recursively while minimizing the mean of the squared error [55]. The incorporation of the
state constraints is not easy with this technique, however, it has been done in [56] for
CHAPTER 2. CONTROL OF NONHOLONOMIC SYSTEMS 20
Kalman filtering technique can be used with different control designs to accurately
predict the states of a system at any time instance. For example, it has been used with the
model predictive control technique in [57] for accurately estimating the states of a WMR
There are three main problems with the control design solutions described above:
1. They do not allow an easy application of input and state constraints that may arise in
practical situations.
2. There is no easy way to tune the final control law to obtain good transient perfor-
mance.
All these problems can be directly addressed by applying MPC to the WMR problem.
The major difference between MPC and other classical optimal control techniques such as
H2 and H∞ is that it solves an optimal control problem over a finite horizon as opposed to
an infinite horizon. Hence, MPC is an optimal control strategy in which the control law is
designed based on minimizing a cost function over a finite horizon window. Although MPC
is not a new optimal control strategy, researchers have only recently started employing
the distinct advantage that they allow the system to directly implement input and state
constraints that may arise in practical situations. The following subsections inform the
CHAPTER 2. CONTROL OF NONHOLONOMIC SYSTEMS 21
readers of the control literature available on linear and nonlinear MPC for the control of
WMRs.
Although nonlinear MPC techniques are well developed [59, 60], researchers have started
employing it only recently to control WMR mainly because of the contemporary develop-
where u = u(k), u(k + 1), ..., u(k + N − 1) and x(i) := xu (i; (x, k)). It depends on the
future control trajectory u and the state vector x. Therefore, the minimization of this cost
function reduces the error between the actual and reference trajectory using minimum con-
trol effort.
where ût and êt are the predicted input and error trajectories over the interval [t, ∞). Hence,
the cost minimization is done over an infinite time horizon. In both these papers, a nonlinear
in state-space form. The problems of point stabilization and trajectory tracking are solved
in the paper. A novel cost function is minimized over the prediction horizon.
CHAPTER 2. CONTROL OF NONHOLONOMIC SYSTEMS 22
is done in which two different cost functions are minimized using MATLAB QP algo-
rithm and the results are compared. The standard quadratic cost function that penalizes
the changes in control inputs and the tracking error show slow convergence to the desired
trajectory. Hence, a modified cost function is minimized in a bid to reduce the convergence
rate. The modified cost function first proposed in [15] uses exponentially increasing state
weighting and the results show significant improvement in the system response in terms of
convergence rate. It is shown that the nonlinear MPC is not implementable in real time for
In the absence of constraints, the MPC algorithm applied to a linear system is quite fast
and is well handled by linear, quadratic and Gaussian controls [63]. The biggest hurdle
in applying MPC control is that computation time may be excessive when constraints are
present and does not always allow for real time control. Over the years, many control
algorithms have been developed to solve a constrained MPC problem which is setup in
a Quadratic Programming (QP) form. These algorithms can be classified into two major
groups:
Theoretically, ASMs require exponential and IPMs require polynomial number of itera-
tions in the worst case to solve a QP problem [64]. In [65], however, a detailed comparison
CHAPTER 2. CONTROL OF NONHOLONOMIC SYSTEMS 23
study is conducted by applying ASMs and IPMs to randomly generated QP problems and
it is concluded that ASMs are a better option in terms of computation time and number of
iterations if there are only a few number of constraints and decision variables in a problem.
The decision variables are computed by multiplying the number of inputs by the prediction
horizon. In our case, there are only two inputs to the WMR and only two constraints that
are applied to the inputs. Therefore, ASMs are a good choice to reduce the computational
A traditional quadratic cost function that needs to be minimized over a finite prediction
jectory and ū(i) = u(i)−u(i−1) is the difference between the current and the past controls
signal values, i.e. the change in control input at each sampling instance. Q and R are diag-
onal matrices used for penalizing any changes in input or error variables. These matrices
can be used for tuning purposes to improve the transient performance of the system.
In [11, 66], Generalized Predictive Control is used to solve the path following problem
for a WMR. The control design is simplified by assuming that the input is simply the
angular velocity and that the linear velocity remains constant. Hence, a single input linear
model is used for the optimization problem. The optimization involves the minimization of
a cost function that depends on the error between the actual and the reference trajectory.
discrete event controller is used to switch between these linear models based on the yaw
CHAPTER 2. CONTROL OF NONHOLONOMIC SYSTEMS 24
rate. The system is then setup as a QP problem and an MPC algorithm is used to perform
the dynamic path following optimization. A quadratic cost function is used which not only
minimizes the error between the reference path and the actual path, but also minimizes the
control effort, i.e. the rudder rate. The effects of changing MPC parameters such as the
cost function matrices, the prediction horizon and the sampling time are also analyzed in
detail in the report. It is shown that the simulation time required is small enough for real
discretized using Euler approximation. The key idea consists of using a successive lin-
earization approach, yielding a linear time-varying description of the system [68]. Due to
this linearization, the control problem becomes convex and hence, is quicker to solve than
a non-convex problem faced when a nonlinear model of WMR is solved using nonlinear
MPC. The linearization is performed using the Jacobian method and the linear model is
converted to the state space form. The optimal trajectory tracking problem is setup as a
QP problem and is solved using MATLAB’s QP algorithm. The performance of the linear
MPC is compared with a nonlinear MPC using the same setup. It is concluded that, in
comparison with nonlinear MPC, the linear MPC has promising applications for problems
In this chapter, we discuss the different algorithms used in this research along with the
MPC is an optimal control strategy in which the control law is designed based on min-
imizing a cost function over a finite horizon window. The methods of optimization applied
in MPC have the distinct advantage that they allow the system to directly implement con-
trol and state constraints that may arise in practical situations. There are three distinct
1. MPC allows an easy application of input and state constraints that may arise in prac-
tical situations.
2. It is easy to tune the final control law to obtain good transient performance.
MPC is not a new optimal control strategy. The major difference between MPC and
other classical optimal control techniques such as H2 and H∞ is that it solves an optimal
25
CHAPTER 3. THE LINEAR MPC ALGORITHMS 26
The biggest hurdle in applying MPC control is that computation time may be exces-
sive when constraints are present and does not always allow for real time control. Active
Set Methods are generally used to solve a constrained MPC problem which is setup in a
quadratic programming form. ASMs usually require fewer variables to describe a problem,
which decreases the computational workload and in turn, decreases the time required for
each iteration. One of the well known ASMs algorithm is Fletcher’s ASM. In Fletcher’s
ASM, single change to active set are made per iteration to ensure that even the intermediate
solutions do not violate the input and the output constraints. This increases the number of
iterations required to solve the MPC problem where a greater number of input and output
constraints are present. To mitigate this problem, Non-Feasible Active Set Method (NF-
ASM) is introduced [1], which further increases the speed of the Fletcher’s ASM by making
multiple changes to active set per iteration. Also, in Fletcher’s ASM, changes to active set
method are based on the magnitude of the largest constraint violation.On the other hand,
NF-ASM makes left to right changes (w.r.t. time) to the set of active constraints. In other
words, changes that occurred earlier in time are considered before the changes that occurred
later in time, which results in implemented control being closer to the final optimal control.
Both the Fletcher’s Algorithm and the non-feasible algorithm explained in [1] are applied
to the linearized model (1.2.2) for trajectory tracking and cost function minimization over
the prediction horizon P . A quadratic cost function given below is used for optimization:
X−1
k+P
1 1
J(k) = x̃(i)0 Qx̃(i) + ū[i]0 Rū(i) (3.0.1)
i=k
2 2
subject to linear constraints:
h i
where U (k) = u(k)0 u(k + 1)0 ... u(K + P − 1)0 is the computed future control tra-
jectory and ū(i) = u(i) − u(i − 1) is the difference between the current and the future
controls signals, i.e. the change in control input at each sampling instance. Q and R are di-
agonal matrices used for penalizing any changes in input or error variables. These matrices
can be used for tuning purposes to improve the transient performance of the system.
The pseudo-codes of NF-ASM and FL-ASM are given in the following sections. For
more details on these algorithms, the readers are recommended to refer to [1] and [28].
The steps taken by the NF-ASM are summarized below. Two important variables used in
the algorithm are the Lagrange multiplier L and the flagging curve F . Each constraint is
given its own lagrange multiplier. An L > 0 indicates that the constraint is active and
an L=0 indicates that the constraint is inactive. A flagging curve is used to indicate the
constraints that need to be added or removed from the active set. For more details on the
NF-ASM [64]:
1. Given an initial constraint set I 0 , calculate all initial conditions, including the control
curve U 0 , the Lagrange multipliers L0 and the flagging curve F 0 . Set the iteration
number to k = 0.
2. Check if the control and Lagrange multipliers lead to termination conditions. If they
do then terminate the algorithm with the constrained solution UC∗ = U k , otherwise
4. Separate a flagging curve Fiku that applies only to the control curve which will have
5. Form an amended flagging curve Fiku which includes only the first segment of con-
6. Adjust the current active set I k based on the amended flagging curve Fiku
9. Return to step 2.
FL-ASM [64]:
where f (k) = f + HU k−1 , then set I˜k−1 = I k−1 and skip to step 4.
if Lk−1
q ≥ 0, terminate the algorithm with U ∗ = U k−1 ; otherwise remove q from
4. Again solve
1
min δ́Hδ + δ́f (k) (3.2.3)
δ 2
0
subject to Ai δ = 0, i ∈ I k−1 for the direction vector sk = δ.
6. If αk < 1, add p = arg αk to I˜k−1 , and then set the new active index I k .
The main reason why NF-ASM works faster than FL-ASM is that NF-ASM makes multiple
changes to the active set per iteration. For example, in the best case scenario, if there are
25 constraint violations for a computed control curve U , it would take FL-ASM at least 25
iterations to solve the problem (one active set change per iteration). On the other hand, NF-
ASM can potentially solve this problem in only one iteration. Table 3.1 lists the differences
As an example, let us consider a system with two inputs. The interleaved unconstrained
control curve computed for this problem is given in Fig. 3.1. Figs. 3.2 and 3.3 show the
individual control curves u1 and u2 . It is clear from Fig. 3.2 that control curve u1 violates
CHAPTER 3. THE LINEAR MPC ALGORITHMS 30
the upper bound constraint during the time interval 1 − 3 seconds and the lower bound
constraint during the interval 3 − 4 seconds. On the other hand, Fig. 3.3 shows that control
curve u2 violates the upper bound constraint during the time interval 2 − 3 seconds and it
does not violate the lower bound constraint. With FL-ASM, we would make changes to the
active set based on the magnitude of the highest constraint violation. The highest constraint
violation occurs in u2 during the time interval 2 − 3 seconds. Hence, only this part of the
control signal will be modified in the next iteration. On the other hand, the NF-ASM makes
changes from left to right with respect to time and starts with the constraint violations that
occur earlier in time. The first upper bound and lower bound constraint violations occur in
signal u1 . Hence, the active set will be changed based on these constraint violation. The
upper bound constraint violation for the control signal u2 will not be considered for active
set changes in the current iteration. Hence, a non-feasible solution may be obtained at the
CHAPTER 3. THE LINEAR MPC ALGORITHMS 31
u2
5
u1
4
u1
2
u1 u2
0
u2 u2
−1
−2
u1
−3
0 1 2 3 4 5 6 7 8
end of iteration since the constraint violation of u2 is not dealt with. Also, since the upper
the two violations are ”connected” to each other), they will be considered as one block
and changes to them will be made in a single iteration. This process of making changes
in blocks as opposed to a single active set change per iteration is the primary reason why
Control Signal u1
5
−1
−2
−3
0 0.5 1 1.5 2 2.5 3 3.5 4
Control Signal u2
6
−1
−2
−3
0 0.5 1 1.5 2 2.5 3 3.5 4
In this Chapter, the overview of the applied technique to tracking a trajectory using WMR is
presented. Also, the performance metrics used to compare the performance of the different
algorithms used in linear MPC technique are detailed. Different reference trajectories are
also generated using MATLAB’s ordinary differential equations solver (ODE45) on the
model (1.2.1) and the results are discussed. Finally, different simulation setup used to
gather results are listed and the rationale behind using these setups is explained.
For a trajectory tracking problem, a reference trajectory is generated by solving the system
of differential equations given in (1.2.1). The difference of the reference trajectory and the
actual trajectory of the WMR (i.e. the trajectory error) is fed to the MPC. The MPC gener-
ates an optimized control input trajectory. Since receding horizon MPC is used, therefore,
only the first part of the optimized control trajectory is fed to the linearized WMR model
to calculate the output trajectory of the WMR. It is important to note that the linear WMR
model described in (1.2.2) is time-variant. Hence, a feedback loop structure is used where
the the control input to the MPC changes based on the changing system and input matrices
33
CHAPTER 4. MPC SIMULATIONS FOR THE WMR 34
A(t) and B(t). The overall control structure is given in Fig. 4.1.
Error Input
Reference
Model
- MPC
Linearized
WMR
For all simulations, a standard Laptop PC (Toshiba M700) is used with Intel(R) Core 2 Duo
CPU, 2.20 GHz, 2.00 GB RAM and a 32-bit Windows 7 Operating System. It is important
to note that the time measurements in the simulations are done for comparison purposes
only. Generally, time measurements are variable and depend strongly on the CPU status.
Hence, each simulation is conducted 25 times and the average value of time is presented as
In order to compare the performance of NF-ASM with FL-ASM and MATLAB’s QP algo-
1. Total cost value gives a measure of the quality of solution. The tracking problem is
setup as a minimization problem. Hence, the lower the cost, the better the quality of
solution. The cost function penalizes both the tracking error and the input changes.
Hence, by minimizing the cost, we are actually minimizing the control effort and the
CHAPTER 4. MPC SIMULATIONS FOR THE WMR 35
state errors to achieve better tracking performance. MPC allows us to give prece-
2. Time per iteration gives a measure of the speed of the algorithm. This parameter
real-time.
measure of the computational workload and the overall convergence speed of the
algorithm.
To ensure unbiased results, exactly the same values for MPC tuning parameters for each
simulation set are used. These parameters include the prediction horizon, Q = q × Is and
R = r × Ii (where Is is the identity matrix of size 4 × 4 and Ii is the identity matrix of size
2 × 2).
the last section. This trajectory is discretized and a linear MPC algorithm is then used
An example reference trajectory is shown is Fig. 4.2. The points labeled A − E are
obtained through the discretization process using a certain sampling rate and are succes-
sively tracked from left to right using linear MPC to achieve the overall trajectory tracking
objective. It is interesting to note that if the sampling rate is increased, we essentially have
less gap between the points A − E. Hence, by using a higher sampling rate, we ensure
CHAPTER 4. MPC SIMULATIONS FOR THE WMR 36
y-axis (meters)
E
D
x-axis (meters)
that all the dynamics of the systems are captured when the continuous to discrete time con-
version is conducted. However, this essentially adds more points to be tracked in our case;
in essence, slowing down the overall trajectory tracking process. On the other hand, the
trajectory tracking process can be sped up by reducing the sampling rate; which, of course,
leads to an increase in the tracking error. Therefore, a balance between the tracking error
and the speed of the tracking needs to be achieved which entirely depends on the applica-
tion. The reference trajectory is generated and discretized off-line in our case and hence, its
sampling rate can be changed based on the needs. The overall trajectory tracking process
START
Generate
Reference
Trajectory
Discretize the
Trajectory
Apply LMPC to
Track the Point
Is it the
Last Yes
Point of
the Ref.
Traj.?
No
The first step in trajectory tracking is to generate the reference trajectory using the non-
The reference trajectory is generated using ODE45 function in MATLAB. The refer-
ence WMR model in (1.2.1) is used for the simulation. The model is re-iterated below for
convenience [26] :
where (xd (t), yd (t)) represents the desired position of the robot, θd (t) denotes the desired
orientation of the WMR with respect to the horizontal axis, φd (t) is the desired steering
angle and l is the distance between the two axles of the car as shown in Fig. 1.2. The
control inputs to (1.2.1) are the desired linear velocity of the WMR, vd1 , and its desired
h i
steering velocity, vd2 . The xd yd θd φd in the above representation completely define
For circular trajectory generation using the above reference model, the inputs vd1 = Rω,
h i h i
vd2 = 0 and the initial conditions xd yd θd φd = 0 0 0 arctan Rl are used [26].
R is the radius of the inscribed circular path and ω is the angular velocity.
trajectory. The output of simulation is shown in Fig. 4.4. It is important to note that the
CHAPTER 4. MPC SIMULATIONS FOR THE WMR 39
1.8
1.6
1.4
1.2
1
y
0.8
0.6
0.4
0.2
0
−1 −0.5 0 0.5 1
x
circular trajectory generated here is essentially a set of point in cartesian form that are
connected together to form a circular path shown in Fig. 4.4. We use the MPC algorithm
We generate the square reference trajectory using ODE45 in MATLAB using the model
(1.2.1). The sides of the square are formed by using a combination of vertical and horizontal
lines and the vertices of the square are replaced by parts of a circle. Fig. 4.5 shows the
generated reference trajectory divided into different parts. In order to generate each part
CHAPTER 4. MPC SIMULATIONS FOR THE WMR 40
C
B D
1.5
A E
0.5
y
−0.5
H F
G
−1
−1.5
−1 −0.5 0 0.5 1 1.5 2 2.5 3
x
of the reference trajectory, we require different initial conditions for [xd yd θd φd ]. These
values are given in Table 4.1. Note that for straight parts of the square trajectory, i.e.
A, C, E and G, the steering angle is kept as zero where as for curved trajectories, i.e. B,
D, F and H, the steering angle assumes a non-zero value. It is important to realize that
the square trajectory generated here is essentially a set of points in cartesian form that are
connected together to form a square path shown in Fig. 4.5. We use the MPC algorithm on
A discrete-time linear time-varying model of a general WMR is used for the simulation.
The two inputs to this linear model are the difference in the actual and desired linear veloc-
ities (v1 − vd1 ) and the difference in the actual and desired steering velocities (v2 − vd2 ). In
this research, we put constraints on these control inputs. In other words, we put constraints
CHAPTER 4. MPC SIMULATIONS FOR THE WMR 41
on the deviation of the linear and steering velocities from their reference values. The con-
trol optimization is done to minimize the control effort (i.e. to minimize the magnitude of
control inputs required to solve the tracking problem) and the tracking error. MPC’s in-
herent ability to incorporate input constraints and perform control optimization makes this
Different constraint settings for the inputs to the linearized WMR model in (1.2.2),
i.e. (v1 − vd1 ) and (v2 − vd2 ), are used to test the trajectory tracking performance of NF-
ASM. The purpose of using different constraints is to see if the algorithm performance is
dependent on the size of the constraints. The performance of NF-ASM is also compared
with the tracking results obtained by using FL-ASM and the QP algorithm.
For circular trajectory tracking, we use three different sets of constraints Cc1 − Cc3.
The MPC tuning parameter values are q = 1, r = 0.07, P (P rediction horizon) = 10s
and T sim (Simulation time) = 15s. We start by using the constraint set Cc1 which is not
as tight as the other two constraint sets Cc2 and Cc3. The purpose of using this constraint
set is to see the performance of the algorithm when the constraints do not become active
as often during the simulation. We then use constraint set Cc2 to test the algorithm. This
CHAPTER 4. MPC SIMULATIONS FOR THE WMR 42
constraint set represents a more realistic situation in which the constraints stay active for
a sufficient amount of time for good algorithm performance testing. Finally, Cc3 is used
which is the tightest set of constraints for circular trajectory tracking. This constraint set
may not often be used in practical scenarios but it gives a good measure of effectiveness
of the algorithm under extreme constraints. Table 4.2 gives the values of each of these
constraint sets.
For square trajectory tracking, we use five different sets of constraints Cs1 − Cs5. The MPC
tuning parameters used with all three algorithms are q = 1, r = 0.07, P (P rediction horizon) =
10s and T sim (Simulation time) = 3s. We start by using the constraint set Cs1 which is not
as tight as the other constraint sets Cs2 − Cs5. The purpose of using this constraint set is to see
the performance of the algorithm when the constraints do not become active as often during the
simulation. We then use constraint sets Cs2 − Cs4 to test the algorithm. These constraint sets
represent a more realistic situation in which the constraints stay active for a sufficient amount of
time for good algorithm testing. Finally, Cs5 is used which is the tightest set of constraints for
square trajectory tracking. This constraint set may not often be used in practical scenarios but it
gives a good measure of effectiveness of the algorithm under extreme constraints. Table 4.3 gives
the values of each of the constraint sets used in square trajectory tracking.
CHAPTER 4. MPC SIMULATIONS FOR THE WMR 43
In this chapter, we present and discuss the results obtained from different simulation setups ex-
plained at the end of the previous Chapter. NF-ASM is applied to the WMR to track various types
of trajectories and its performance in terms of speed and computational workload is compared to
the performance of FL-ASM and MATLAB’s Quadratic Programming (QP) algorithm. The two in-
puts to the linear WMR model in (1.2.2) are the difference in the actual and desired linear velocities
(v1 −vd1 ) and the difference in the actual and desired steering velocities (v2 −vd2 ). We put different
constraints on these control inputs. In other words, we put constraints on the deviation of the linear
and steering velocities from their reference values. The purpose of using different constraints is to
see if the performance of the algorithm is dependent on the size of the constraints.
In this section, simulations are conducted to track a circular trajectory using NF-ASM. The per-
We apply MPC to the WMR using three different sets of constraints Cc1 − Cc3 explained in the
44
CHAPTER 5. RESULTS AND DISCUSSIONS 45
We start with relaxed constraints on the inputs, i.e. Cc1: −1 m/s ≤ v1 − vd1 ≤ 1 m/s and
tracking performance as shown in Fig. 5.1(a). None of the constraints become active during the
simulation, as shown in Fig. 5.1(d), because the constraints on each input are too relaxed. Hence,
unconstrained control optimization is performed and no active set algorithm is required to solve
the tracking problem, leading to zero iterations used as shown in Fig. 5.1(c). The state errors are
shown in Figs. 5.1(e-h). As seen in these figures, the state errors do not stay at a zero value. They
increase in a periodic manner because the model of the WMR is time-varying, leading to a change
in dynamics of the WMR. This change in system dynamics with time results in a need for the re-
execution of MPC. With each change in the dynamics of the WMR model, the MPC algorithm
re-stabilizes the system causing the error to reach a zero value as seen in the figures. The control
We also apply FL-ASM and MATLAB’s QP algorithm to the WMR using the same simula-
tion setup and the constraint set Cc1. The results of these simulations are shown in Figs. 5.2 and
5.3. These algorithms also demonstrate good results in terms of trajectory tracking performance as
In FL-ASM simulation, none of the constraints become active during the simulation, as shown
in Fig. 5.2(d), because the constraints on each input are too relaxed as in the case of NF-ASM
simulation. Hence, unconstrained control optimization is performed and no active set algorithm is
required to solve the tracking problem, leading to zero iterations used as shown in Fig. 5.2(c).
Table 5.1 summarizes our results for simulations under the constraint set Cc1. All algorithms
give the same cost function value (i.e. J = 1.73 × 10−8 ) for this simulation case which implies
that all these algorithms converge to the same solution. This allows us to conduct an unbiased
CHAPTER 5. RESULTS AND DISCUSSIONS 46
Table 5.1: Circular Trajectory Tracking Results under the Constraint Set Cc1
Constraints
lower bounds upper bounds Total Cost Number of Total Time
Algorithm v1 − vd1 v2 − vd2 v1 − vd1 v2 − vd2 (J × 10−8 ) Iterations Consumed
(m/s) (rad/s) (m/s) (rad/s) (seconds)
NF-ASM −1 −1 1 1 1.73 0 1.26
FL-ASM −1 −1 1 1 1.73 0 1.26
MATLAB’s QP −1 −1 1 1 1.73 — 6.44
NF-ASM and FL-ASM algorithms take same amount of simulation time because both algo-
rithms are performing unconstrained optimization which is exactly the same for both algorithms.
MATLAB’s QP algorithm, on the other hand, is approximately 5 times slower to solve the trajec-
tory tracking problem. Also, the average time taken per sample is quite similar for NF-ASM and
FL-ASM as seen in Figs. 5.1(b) and 5.2(b) but it is higher for MATLAB’s QP algorithm as seen in
Fig. 5.3(b).
Figs. 5.1(e-h), 5.2(e-h) and 5.3(e-h) show the position, orientation and steering errors using
NF-ASM, FL-ASM and MATLAB’s QP algorithm, respectively. There is a relatively large error
magnitude at the beginning of the iterations but the error reduces significantly in the later parts of
the iterations which shows that all three algorithms are capable of solving the trajectory tracking
problem.
The control inputs for NF-ASM, FL-ASM and QP algorithm simulation are shown in Figs. 5.1(i-
j), 5.2(i-j) and 5.3(i-j) , respectively. Since, the control inputs do not exceed the constraint limits
2
0.025
1.5
y−axis (meters)
1.5
0.02
1.5
1
0.015
−0.5
Number of Iterations
0.5 0.5
−0.5
−1
0 0
−1 −1 0 1 2 3 0 1 2 3
0 200 400 600 800 0 200 400 600 800 10 10 10 10 10 10 10 10
Time sample (seconds) Time sample (seconds) Time sample (s) Time sample (seconds)
(g) Horizontal Position Error (h) Vertical Position Error (L) Linear Velocity Input (j) Steering Velocity Input
x 10
−4 (v1 − vd1) x 10
−4 (v − v )
x 10
−4 (x−xd) x 10
−4 (y−yd) 2 d2
2 1
2.5 4
0.5
2 3.5 1
Steering Velocity Input Magnitude (radians/second)
Linear Velocity Input Magnitude (meters/second)
X−coordinate Position Error Magnitude (meters)
1.5 3
0
0
1 2.5
−0.5
0.5 2
−1
0 1.5
−1
−0.5 1
−2
−1.5
−1 0.5
−1.5 0 −3
−2
−2 −0.5
−4 −2.5
0 1 2 0 1 2 3 0 1 2 3 0 1 2 3
10 10 10 10 10 10 10 10 10 10 10 10 10 10 10
Time sample (seconds) Time sample (seconds) Time sample (seconds) Time sample (seconds)
2
1.5 0.08
y−axis (meters)
1.5
1.5
1 0.06
−0.5
Number of Iterations
0.5 0.5
−0.5
−1
0 0
−1 −1 0 1 2 3 0 1 2 3
0 200 400 600 800 0 200 400 600 800 10 10 10 10 10 10 10 10
Time sample (s) Time sample (s) Time sample (s) Time sample (seconds)
J +RUL]RQWDOPosition Error K 9HUWLFDOPosition Error (i) Linear Velocity Input (j ) Steering Velocity Input
−4 (v1 − vd1) −4 (v − v )
−4 (x−xd) −4 (y−yd) x 10 x 10 2 d2
x 10 x 10 2 1
2.5 4
0.5
2 3.5 1
Steering Velocity Input Magnitude (radians/second)
Linear Velocity Input Magnitude (meters/second)
X−coordinate Position Error Magnitude (meters)
1.5 3
0
0
1 2.5
−0.5
0.5 2
−1
0 1.5
−1
−0.5 1
−2
−1.5
−1 0.5
−1.5 0 −3
−2
−2 −0.5
−4 −2.5
0 1 2 0 1 2 3 0 1 2 3 0 1 2 3
10 10 10 10 10 10 10 10 10 10 10 10 10 10 10
Time sample (seconds) Time sample (seconds) Time sample (seconds) Time sample (seconds)
(a) Position of the WMR (b) Time per Iteration (c) Orientation Error (d) Steering Error
−4 −4
x 10 (theta−thetad) x 10 (phi−phid)
2
2
0.6
1.8 1.5
1.5
1.6
0.5
1.2 0.4
y−axis (meters)
0.5
0.5
1
0.3 0
0.8 0
−0.5
0.6
0.2
−0.5
0.4 −1
0.2 0.1
−1.5
−1
0
0 0 1 2 3 0 1 2 3
−1 −0.5 0 0.5 1 0 200 400 600 800 10 10 10 10 10 10 10 10
x−axis (meters) Time Sample (seconds) Time sample (s) Time sample (seconds)
(e) Horizontal Position Error (f) Vertical Position Error (g) Linear Velocity Input (h) Steering Velocity Input
−4
(v1 − vd1) −4 (v − v )
−4 (x−xd) −4 (y−yd) x 10 x 10 2 d2
x 10 x 10 2 1
2.5 4
0.5
2 3.5 1
Steering Velocity Input Magnitude (radians/second)
Linear Velocity Input Magnitude (meters/second)
X−coordinate Position Error Magnitude (meters)
1.5 3
0
0
1 2.5
−0.5
0.5 2
−1
0 1.5
−1
−0.5 1
−2
−1.5
−1 0.5
−1.5 0 −3
−2
−2 −0.5
−4 −2.5
0 1 2 0 1 2 3 0 1 2 3 0 1 2 3
10 10 10 10 10 10 10 10 10 10 10 10 10 10 10
Time sample (seconds) Time sample (seconds) Time sample (seconds) Time sample (seconds)
We tighten our constraints to make them active in our second simulation, i.e. Cc2: −1×10−5 m/s ≤
v1 − vd1 ≤ 1 × 10−5 m/s and −1 × 10−5 rad/s ≤ v2 − vd2 ≤ 1 × 10−5 rad/s. The tracking
results are shown in Fig. 5.4(a) along with the state errors shown in Figs. 5.4(e-h). The number of
active constraints at a given point toggles between zero and two as seen in Fig. 5.4(d). This shows
that both input constraints are active at the beginning of every tracking step and become inactive
when the WMR approaches the desired set-point. The reason is that less control effort, i.e. lower
magnitude of inputs (v1 − vd1 ) and (v2 − vd2 ), is required at each time sample as we reach our
desired set-point value making the input constraints inactive. The number of iterations used at each
time sample are shown in Fig. 5.4(c). An average of 25 iterations per sample with 48 iterations per
sample in the worst case and a total of 7545 iterations of NF-ASM are required for circular trajectory
tracking under this set of constraints. The control inputs to the linearized WMR model are shown
in Figs. 5.4(i-j). It is clear from the figures that the control inputs stay within the constraints Cc2.
We also apply FL-ASM and MATLAB’s QP algorithm to the WMR using the same simula-
tion setup and the constraint set Cc2. The results of these simulations are shown in Figs. 5.5 and
5.6. These algorithms also demonstrate good results in terms of trajectory tracking performance as
Table 5.2 summarizes our results for simulations under the constraint set Cc2. All algorithms
give the same cost function value (i.e. J = 8.91 × 10−8 ) for this simulation case which implies
that all these algorithms converge to the same solution. This allows us to conduct an unbiased
comparison of their performance in terms of computational workload and simulation time. FL-ASM
takes slightly less amount of time to complete the tracking as compared to NF-ASM. MATLAB’s
QP algorithm, on the other hand, is approximately two times slower to solve the trajectory tracking
problem. Also, the average time taken per sample is quite similar for NF-ASM and FL-ASM as
seen in Figs. 5.4(b) and 5.5(b) but it is higher for QP algorithm as seen in Fig. 5.6(b).
The number of iterations required to solve the trajectory tracking problem using FL-ASM is
CHAPTER 5. RESULTS AND DISCUSSIONS 51
Table 5.2: Circular Trajectory Tracking Results under the Constraint Set Cc2
Constraints
lower bounds upper bounds Total Cost Number of Total Time
Algorithm v1 − vd1 v2 − vd2 v1 − vd1 v2 − vd2 (J × 10−8 ) Iterations Consumed
(m/s) (rad/s) (m/s) (rad/s) (seconds)
−5 −5 −5 −5
NF-ASM −10 −10 10 10 8.91 7545 7.25
FL-ASM −10−5 −10−5 10−5 10−5 8.91 5577 6.36
−5 −5 −5 −5
MATLAB’s QP −10 −10 10 10 8.91 — 13.2
slightly smaller than the number of iterations required using NF-ASM as shown in Table 5.2. This
is one of the main reasons why FL-ASM is faster than NF-ASM for this scenario. Note that the
constraints on the inputs are active for roughly half of the time with the constraint set Cc2 applied
Figs. 5.4(e-h), 5.5(e-h) and 5.6(e-h) show the position, orientation and steering errors using
NF-ASM, FL-ASM and QP algorithm, respectively. There is relatively large error magnitude at
the beginning of the iterations but the error reduces significantly in the later parts of the iterations
which shows that all three algorithms are capable of solving the trajectory tracking problem under
The control inputs for NF-ASM, FL-ASM and QP algorithm simulation are shown in Figs. 5.4(i-
j), 5.5(i-j) and 5.6(i-j) , respectively. As seen in these figures, the control inputs do not exceed the
0.1
1.5
y−axis (meters)
4
0.08
15
1
0.06 3.5
40
Number of Iterations
1.5 1
30
1 0.5
0
20
0.5 0
10
0 0 1 2 3 0 1 2 3
0 200 400 600 800 0 200 400 600 800 10 10 10 10 10 10 10 10
Time sample (seconds) Time sample (seconds) Time sample (s) Time sample (seconds)
(g) Horizontal Position Error (h) Vertical Position Error (i) Linear Velocity Input (j) Steering Velocity Input
x 10
−4 (x−xd) x 10
−3 (y−yd) x 10
−5 (v1 − vd1) x 10
−5 (v2 − vd2)
3.5
7
1 1
3
2.5
0.5 0.5
5
2
1.5 4
0 0
1 3
0
1
−1 −1
−0.5
0
0 1 2 0 1 2 3 0 1 2 3 0 1 2 3
10 10 10 10 10 10 10 10 10 10 10 10 10 10 10
Time sample (seconds) Time sample (seconds) Time sample (seconds) Time sample (seconds)
1.5 0.08
y−axis (meters)
4
15
1 0.06
3.5
30
Number of Iterations
25 1.5 1
20
1 0.5
15 0
10 0.5 0
5
0 0 1 2 3 0 1 2 3
0 200 400 600 800 0 200 400 600 800 10 10 10 10 10 10 10 10
Time sample (s) Time sample (s)
Time sample (s) Time sample (seconds)
(g ) Horizontal Position Error (h) Vertical Position Error (i) Linear Velocity Input (j) Steering Velocity Input
x 10
−4 (x−xd) x 10
−3 (y−yd) x 10
−5 (v1 − vd1) x 10
−5 (v − v )
2 d2
3.5
7
1 1
3
2.5
0.5 0.5
5
2
1.5 4
0 0
1 3
0
1
−1 −1
−0.5
0
0 1 2 0 1 2 3 0 1 2 3 0 1 2 3
10 10 10 10 10 10 10 10 10 10 10 10 10 10 10
Time sample (seconds) Time sample (seconds) Time sample (seconds) Time sample (seconds)
0.16
1.8 4
15
1.6 0.14 3.5
10
1.2 2.5
y−axis (meters)
0.1
1
2
0.08
0.8
1.5 5
0.06
0.6
1
0.4 0.04
0.5
0
0.2
0.02 0
0
0 0 1 2 3 0 1 2 3
−1 −0.5 0 0.5 1 0 200 400 600 800 10 10 10 10 10 10 10 10
x−axis (meters) Time Sample (seconds) Time sample (s) Time sample (seconds)
(e) Horizontal Position Error (f) Vertical Position Error (J) Linear Velocity Input (K) Steering Velocity Input
−4 (x−x ) −3 (y−yd) −5
(v1 − vd1) −5 (v2 − vd2)
x 10 d x 10 x 10 x 10
3.5
7
1 1
3
6
X−coordinate Position Error Magnitude (meters)
2.5
0.5 0.5
5
2
1.5 4
0 0
1 3
0
1
−1 −1
−0.5
0
0 1 2 0 1 2 3 0 1 2 3 0 1 2 3
10 10 10 10 10 10 10 10 10 10 10 10 10 10 10
Time sample (seconds) Time sample (seconds) Time sample (seconds) Time sample (seconds)
In the third simulation, we use the constraint set Cc3: −1 × 10−6 m/s ≤ v1 − vd1 ≤ 1 × 10−6 m/s
and −1 × 10−6 rad/s ≤ v2 − vd2 ≤ 1 × 10−6 rad/s. The tracking results are shown in Fig. 5.7(a)
along with the state errors shown in Figs. 5.7(e-h). Both constraints are active at all time during the
simulation as seen in Fig. 5.7(d). The number of iterations used at each time sample are shown in
Fig. 5.7(c). The control inputs to the linearized WMR model are shown in Figs. 5.7(i-j). It is clear
from the figures that the control input stays within the constraints Cc3.
As in the previous cases, we also apply FL-ASM and MATLAB’s Quadratic Programming
algorithm to the WMR using the same simulation setup and the constraint set. The results of these
simulations are shown in Figs. 5.8 and 5.9. These algorithms also demonstrate good results in terms
Table 5.3 summarizes our results for simulations under the constraint set Cc3. All algorithms
give the same cost function value (i.e. J = 1.51 × 10−6 ) for this simulation case which implies
that all these algorithms converge to the same solution. This allows us to conduct an unbiased
comparison of their performance in terms of computational workload and simulation time. NF-
ASM consumes less number of iterations as compared to FL-ASM. Note that the constraints on the
inputs are active for all times during the simulation as shown in Fig. 5.7(d) for NF-ASM simulation
FL-ASM takes slightly more amount of time to complete the tracking as compared to NF-
ASM. Similarly, MATLAB’s QP algorithm is approximately 1.5 times slower to solve the trajectory
tracking problem. Finally, the average time taken per sample is quite similar for NF-ASM and FL-
ASM as seen in Figs. 5.7(b) and 5.8(b) but it is higher for MATLAB’s QP algorithm as seen in
Fig. 5.9(b).
Figs. 5.7(e-h), 5.8(e-h) and 5.9(e-h) show the position, orientation and steering errors using
NF-ASM, FL-ASM and QP algorithm, respectively. There is relatively large error magnitude at
the beginning of the iterations but the error reduces significantly in the later parts of the iterations
CHAPTER 5. RESULTS AND DISCUSSIONS 56
Table 5.3: Circular Trajectory Tracking Results under the Constraint Set Cc3
Constraints
lower bounds upper bounds Total Cost Number of Total Time
Algorithm v1 − vd1 v2 − vd2 v1 − vd1 v2 − vd2 (J × 10−8 ) Iterations Consumed
(m/s) (rad/s) (m/s) (rad/s) (seconds)
−6 −6 −6 −6
NF-ASM −10 −10 10 10 151 20572 14.1
FL-ASM −10−6 −10−6 10−6 10−6 151 24056 15
−6 −6 −6 −6
MATLAB’s QP −10 −10 10 10 151 — 22.8
which shows that all three algorithms are capable of solving the trajectory tracking problem under
The control inputs for NF-ASM, FL-ASM and QP algorithm simulation are shown in Figs. 5.4(i-
j), 5.5(i-j) and 5.6(i-j) , respectively. As seen in these figures, the control inputs do not exceed the
0.05
1.5
y−axis (meters)
10 16
0.04
1
0.03 14
6
100 4
Number of Iterations
1.5
80 4
1 2
60 2
40 0.5
0
0
20 0 0 1 2 3 0 1 2 3
0 200 400 600 800 0 200 400 600 800 10 10 10 10 10 10 10 10
Time sample (seconds) Time sample (s) Time sample (seconds)
Time sample (seconds)
(g) Horizontal Position Error (h) Vertical Position Error
−4 (x−xd) −3 (y−yd) (i) Linear Velocity Input (j) Steering Velocity Input
x 10 x 10 −6
(v1 − vd1) −6
(v2 − vd2)
x 10 x 10
8 12
1 1
Y−coordinate Position Error Magnitude (meters)
X−coordinate Position Error Magnitude (meters)
10
6
0.5 0.5
8
4
0 0
6
2
4
0 −0.5 −0.5
2
−2
−1 −1
0
0 1 2 0 1 2 3 0 1 2 3 0 1 2 3
10 10 10 10 10 10 10 10 10 10 10 10 10 10 10
Time sample (seconds) Time sample (seconds)
Time sample (seconds) Time sample (seconds)
0.025
1.5
y−axis (meters)
10 16
0.02
1
0.015
14
0
0
−1 −0.5 0 0.5 1 0 200 400 600 800 10
x−axis (meters) Iteration Number 6
8
(c) Number of Iterations Used (d) Number of Active Constraints
40 2
Number of Active Constraints
6
4
Number of Iterations
35 1.5
4
30 1
2 2
25
0.5
0
20 0
0 0 1 2 3 0 1 2 3
0 200 400 600 800 0 200 400 600 800 10 10 10 10 10 10 10 10
Time sample (s) Time sample (s) Time sample (seconds)
Time sample (s)
(e) Horizontal Position Error (f) Vertical Position Error
−4
(x−xd) −3
(y−yd) (g) Linear Velocity Input (h) Steering Velocity Input
x 10 x 10 −6
(v1 − vd1) −6
(v2 − vd2)
x 10 x 10
8 12
1 1
10
6
0.5 0.5
8
4
0 0
6
2
4
0 −0.5 −0.5
2
−2
−1 −1
0
0 1 2 0 1 2 3 0 1 2 3 0 1 2 3
10 10 10 10 10 10 10 10 10 10 10 10 10 10 10
Time sample (seconds) Time sample (seconds) Time sample (seconds) Time sample (seconds)
2 18
0.06
1.8 16
10
1.6 0.05 14
0.04
1.2
y−axis (meters)
10
6
1
0.03 8
0.8
6
4
0.6 0.02
4
0.4
2 2
0.01
0.2
0
0
0
0 0 1 2 3 0 1 2 3
−1 −0.5 0 0.5 1 0 200 400 600 800 10 10 10 10 10 10 10 10
x−axis (meters) Time Sample (seconds) Time sample (s) Time sample (seconds)
8 12
1 1
10
6
0.5 0.5
8
4
0 0
6
2
4
0 −0.5 −0.5
2
−2
−1 −1
0
0 1 2 0 1 2 3 0 1 2 3 0 1 2 3
10 10 10 10 10 10 10 10 10 10 10 10 10 10 10
Time sample (seconds) Time sample (seconds) Time sample (seconds) Time sample (seconds)
In this section, we provide a brief summary of results obtained in the previous sections for circular
trajectory tracking. We also make a comparison between NF-ASM and the other two algorithms in
terms of the number of iterations used and the total time consumed for simulations. A general trend
in the simulation results for all the three algorithms can be observed; as we tighten the constraints
on the inputs, constraints stay active for a longer period leading to an increased number of iterations
Since the time per iteration under constraint set Cc1 (shown in Figs. 5.1 (b), 5.2 (b) and 5.3
(b)), Cc2 (shown in Figs. 5.4 (b), 5.5 (b) and 5.6 (b)) and Cc3 (shown in Figs. 5.7 (b), 5.8 (b)
and 5.9 (b)) is much lower than the sampling time of 0.1 seconds in all simulation cases, real-time
As seen in Figs. 5.1(i-h), 5.4(i-h) and 5.7(i-h) for NF-ASM, Figs. 5.2(i-h), 5.5(i-h) and 5.8(i-
h) for FL-ASM and Figs. 5.3(i-h), 5.6(i-h) and 5.9(i-h) for MATLAB’s QP algorithm, the state
errors do not stay at a zero value. They increase in a periodic manner. This happens because the
model of the WMR is time-varying which leads to a change in dynamics of the WMR. This change
in system dynamics with time results in a need for the re-execution of MPC. With each change in the
dynamics of the WMR model, the application of MPC algorithm re-stabilizes the system causing
the error to reach a zero value as seen in the figures. It shows that all three algorithms are capable of
driving the error model of the linearized time-varying WMR to stability regardless of the magnitude
Table 5.4 reiterates the trajectory tracking results of NF-ASM and FL-ASM for comparison pur-
poses. NF-ASM gives better performance in terms of number of iterations used and the total time
consumed when the constraints are active at all times during the simulation, i.e. when Cc3 is used.
FL-ASM is a better choice if the constraint are active only for a fraction of the total time of the
CHAPTER 5. RESULTS AND DISCUSSIONS 61
Constraints become active when the magnitude of the inputs required to achieve the desired
set-point is greater than the magnitude of the limits imposed on the inputs. The inputs in this case
are the linear velocity error and the steering velocity error. Therefore, the constraints on the inputs
will become active when the linear and steering velocities change by a magnitude that exceeds the
limit imposed by the constraints. From a practical perspective, it means that the constraints have a
higher chance of staying active for a longer period during the trajectory if the speed and the steering
velocity keep on changing. Hence, if there are a lot of turns and a lot of obstacles (or traffic) around
the WMR (or a vehicle), NF-ASM would be a better option for trajectory tracking as it gives better
results in simulation set Cc3 in which the constraints stay active for a longer period.
Table 5.5 reiterates the trajectory tracking results of NF-ASM and MATLAB’s QP algorithm for
comparison purposes. NF-ASM gives better performance in terms of total time consumed in all
NF-ASM. Smooth corners in the square trajectory are used because of the non-holonomy of the
WMR model, i.e. it’s inability to achieve certain maneuvers instantaneously. In this case, we use
the smooth corners to avoid right-angled turns at the corners of the square trajectory. The generated
reference trajectory is given in Fig. 4.5. We apply NF-ASM to the WMR using five different sets of
constraints Cs1 − Cs5. The performance of NF-ASM is compared to the performance of FL-ASM
and QP algorithm using the performance metrics explained in the previous Chapter and the results
We start with relaxed constraints on the inputs, i.e. Cs1: −1 m/s ≤ v1 − vd1 ≤ 1 m/s and
tracking performance as shown in Fig. 5.10(a). None of the constraints become active during the
simulation, as shown in Fig. 5.10(d), because the constraints on each input are too relaxed. Hence,
unconstrained control optimization is performed and no active set algorithm is required to solve
CHAPTER 5. RESULTS AND DISCUSSIONS 63
the tracking problem, leading to zero iterations used as shown in Fig. 5.10(c). The state errors are
shown in Figs. 5.10(e-h) and the control inputs are shown in Figs. 5.10(i-j).
We also apply FL-ASM and MATLAB’s QP algorithm to the WMR using the same simulation
setup and the constraint set Cs1. The results of these simulations are shown in Figs. 5.11 and
5.12. These algorithms also demonstrate good results in terms of trajectory tracking performance
In FL-ASM simulation, none of the constraints become active during the simulation, as shown
in Fig. 5.11(d), because the constraints on each input are too relaxed as in the case of NF-ASM
simulation. Hence, unconstrained control optimization is performed and no active set algorithm is
required to solve the tracking problem, leading to zero iterations used as shown in Fig. 5.11(c).
Table 5.6 summarizes our results for simulations under the constraint set Cs1. All algorithms
give the same cost function value (i.e. J = 3.47 × 10−8 ) for this simulation case which implies
that all these algorithms converge to the same solution. This allows us to conduct an unbiased
comparison of their performance in terms of computational workload and simulation time. NF-
ASM and FL-ASM algorithms take approximately same amount of simulation time because both
algorithms are performing unconstrained optimization which is exactly the same for both algorithm.
MATLAB’s QP algorithm, on the other hand, is approximately twice as slow to solve the trajectory
tracking problem. Also, the average time taken per sample is quite similar for NF-ASM and FL-
ASM as seen in Figs. 5.10(b) and 5.11(b) but it is higher for Quadratic Programming algorithm as
Figs. 5.10(e-h), 5.11(e-h) and 5.12(e-h) show the position, orientation and steering errors
using NF-ASM, FL-ASM and QP algorithm, respectively. There is relatively large error magnitude
at the beginning of the iterations but the error reduces significantly in the later parts of the iterations
which shows that all three algorithms are capable of solving the trajectory tracking problem. Note,
however, that the error increasing again in some cases. This is because the WMR model is a time-
varying. The changes in the dynamics of the system increases the error again and the MPC algorithm
CHAPTER 5. RESULTS AND DISCUSSIONS 64
Table 5.6: Square Trajectory Tracking Results under the Constraint Set Cs1
Constraints
lower bounds upper bounds Total Cost Number of Total Time
Algorithm v1 − vd1 v2 − vd2 v1 − vd1 v2 − vd2 (J × 10−8 ) Iterations Consumed
(m/s) (rad/s) (m/s) (rad/s) (seconds)
NF-ASM −1 −1 1 1 3.47 0 8.47
FL-ASM −1 −1 1 1 3.47 0 10
MATLAB’s QP −1 −1 1 1 3.47 — 17.8
adjusts to re-stabilize the system, i.e. making its states go to zero again.
The control inputs for NF-ASM, FL-ASM and QP algorithm simulation are shown in Figs. 5.10(i-
j), 5.11(i-j) and 5.12(i-j) , respectively. Since, the control inputs do not exceed the constraint limits
2
1 0.02
0.5
0.015 2
0.5 0.5
0
−2
0 0
−0.5
−3
−0.5 −0.5
−1
−1 −1 0 2 0 2
0 500 1000 0 500 1000 10 10 10 10
Time sample (seconds) Time sample (seconds) Time sample (s) Time sample (seconds)
(g) Horizontal Position Error (h) Vertical Position Error (j) Steering Velocity Input
−5
(y−yd)
(i) Linear Velocity Input
x 10
−4 (x−xd) x 10 −5 (v1 − vd1) −4 (v2 − vd2)
x 10 x 10
4 5
18
1.5 4
16 2
1
Linear Velocity Input Magnitude (meters/second)
14
0
2
0.5
12
1
−2
0 10
0
−0.5 8 −4
−1
6
−1 −6 −2
4
−3
−1.5
−8
2
−4
−2
0 −10 −5
0 2 0 2 0 2 4 0 2 4
10 10 10 10 10 10 10 10 10 10
Time sample (seconds) Time sample (seconds) Time sample (seconds) Time sample (seconds)
2
Time Consumed (seconds)
0.04
1.5 2.5
y−axis (meters)
2
1 0.03
0.5
2
0.02
0.5 0.5
0
−2
0 0
−0.5
−3
−0.5 −0.5
−1
−1 −1 0 2 0 2
0 500 1000 0 500 1000 10 10 10 10
Time sample (s) Time sample (s) Time sample (s) Time sample (seconds)
(g) Horizontal Position Error (h) Vertical Position Error (L) Linear Velocity Input (j) Steering Velocity Input
x 10
−4 (x−xd) x 10
−5 (y−yd) −5 (v1 − vd1) −4 (v2 − vd2)
x 10 x 10
4 5
18
1.5 4
16 2
1
Linear Velocity Input Magnitude (meters/second)
14
0
2
0.5
12
1
−2
0 10
0
−0.5 8 −4
−1
6
−1 −6 −2
4
−3
−1.5
−8
2
−4
−2
0 −10 −5
0 2 0 2 0 2 4 0 2 4
10 10 10 10 10 10 10 10 10 10
Time sample (seconds) Time sample (seconds) Time sample (seconds) Time sample (seconds)
0.45 2.5
2
2
0.4
2
1.5
1.5
1
0.3
y−axis (meters)
0
1
0.5 0.25
0.5 −1
0.2
0
0.15 0
−2
−0.5
0.1
−0.5
−1 −3
0.05
−1
−1.5 0 0 2 0 2
−1 0 1 2 3 0 500 1000 10 10 10 10
x−axis (meters) Time Sample (seconds) Time sample (s) Time sample (seconds)
(H) +RUL]RQWDOPosition Error (I) Vertical Position Error (J) Linear Velocity Input (h) Steering Velocity Input
−4 (x−xd) −5 (y−yd) (v − v ) (v2 − vd2)
x 10 x 10 x 10
−5 1 d1
x 10
−4
4 5
18
1.5 4
16 2
3
X−coordinate Position Error Magnitude (meters)
1
14
0
2
0.5
12
1
−2
0 10
0
−0.5 8 −4
−1
6
−1 −6 −2
4
−3
−1.5
−8
2
−4
−2
0 −10 −5
0 2 0 2 0 2 4 0 2 4
10 10 10 10 10 10 10 10 10 10
Time sample (seconds) Time sample (seconds)
Time sample (seconds) Time sample (seconds)
We tighten our constraints to make them active in our second simulation, i.e. Cs2: −1×10−4 m/s ≤
v1 − vd1 ≤ 1 × 10−4 m/s and −1 × 10−4 rad/s ≤ v2 − vd2 ≤ 1 × 10−4 rad/s. The tracking
results are shown in Fig. 5.13(a) along with the state errors shown in Figs. 5.13(e-h). The number of
active constraints at a given point toggles between zero and one as seen in Fig. 5.13(d). The number
of iterations used at each time sample are shown in Fig. 5.13(c). The control inputs to the linearized
WMR model are shown in Figs. 5.13(i-j). It is clear from the figures that the linear velocity input
never hits the constraints during the simulation. The steering velocity input in Fig. 5.13(j) becomes
active as soon as the input saturates. Hence, for square trajectory under the constraint set Cs2, only
the constraint on steering velocity becomes active. It is important to note that the constraint on
steering velocity only becomes active when the WMR is turning as the steering velocity does not
change for straight paths. Hence, the smooth corners in the square are the parts of the trajectory
We also apply FL-ASM and MATLAB’s QP algorithm to the WMR using the same simulation
setup and the constraint set Cs2. The results of these simulations are shown in Figs. 5.14 and
5.15. These algorithms also demonstrate good results in terms of trajectory tracking performance
Table 5.7 summarizes our results for simulations under the constraint set Cs2. All algorithms
give the same cost function value (i.e. J = 1.57 × 10−8 ) for this simulation case which implies
that all these algorithms converge to the same solution. This allows us to conduct an unbiased
comparison of their performance in terms of computational workload and simulation time. NF-
ASM takes less amount of time to complete the tracking as compared to FL-ASM. MATLAB’s QP
algorithm is also approximately two times slower to solve the trajectory tracking problem. Also, the
average time taken per sample is quite similar for NF-ASM and FL-ASM as seen in Figs. 5.13(b)
and 5.14(b) but it is higher for MATLAB’s QP algorithm as seen in Fig. 5.15(b).
The number of iterations required to solve the trajectory tracking problem using FL-ASM is
CHAPTER 5. RESULTS AND DISCUSSIONS 69
Table 5.7: Square Trajectory Tracking Results under the Constraint Set Cs2
Constraints
lower bounds upper bounds Total Cost Number of Total Time
Algorithm v1 − vd1 v2 − vd2 v1 − vd1 v2 − vd2 (J × 10−8 ) Iterations Consumed
(m/s) (rad/s) (m/s) (rad/s) (seconds)
−4 −4 −4 −4
NF-ASM −10 −10 10 10 1.57 421 11.9
FL-ASM −10−4 −10−4 10−4 10−4 1.57 278 8.5
−4 −4 −4 −4
MATLAB’s QP −10 −10 10 10 1.57 — 17.8
slightly smaller than the number of iterations required using NF-ASM as shown in Table 5.7. Note
that the constraints on the inputs are active for a very small amount of time with the constraint set
Figs. 5.13(e-h), 5.14(e-h) and 5.15(e-h) show the position, orientation and steering errors
using NF-ASM, FL-ASM and QP algorithm, respectively. There is relatively large error magnitude
at the beginning of the iterations but the error reduces significantly in the later parts of the iterations
which shows that all three algorithms are capable of solving the trajectory tracking problem under
The control inputs for NF-ASM, FL-ASM and QP algorithm simulation are shown in Figs. 5.13(i-
j), 5.14(i-j) and 5.15(i-j) , respectively. As seen in these figures, the control inputs do not exceed
2
0.08
1.5
y−axis (meters)
1 0.06 3
0.5
10 0
1
Number of Iterations
0.8
8
0.6
6 0.5
0.4
4
0
2 0.2 −1
0 0 0 2 0 2
0 500 1000 0 500 1000 10 10 10 10
Time sample (seconds) Time sample (s) Time sample (seconds)
Time sample (seconds)
(g) Horizontal Position Error (h) Vertical Position Error (i) Linear Velocity Input (j) Steering Velocity Input
−4 (x−x ) −5 (y−yd) −4 (v − v ) −4 (v − v )
x 10 d x 10 x 10 1 d1 x 10 2 d2
18
1 1
1
16
0 14
12
−1
10
0 0
−2
8
6
−3
4
−4
2 −1 −1
−5 0
0 2 0 2 0 2 0 2
10 10 10 10 10 10 10 10
Time sample (seconds) Time sample (seconds) Time sample (seconds) Time sample (seconds)
2
1.5
y−axis (meters)
1 0.1 3
0.5
8 1 0
Number of Iterations
0.8
6
0.6
0.5
4
0.4
2 0
0.2 −1
0 0 0 2 0 2
0 500 1000 0 500 1000 10 10 10 10
Time sample (s) Time sample (s) Time sample (seconds)
Time sample (s)
(g) Horizontal Position Error (h) Vertical Position Error (L /LQHDU9HORFLW\,QSXW (j) Steering Velocity Input
−4 (x−xd) −5 (y−yd) −4 (v1 − vd1) −4 (v2 − vd2)
x 10 x 10 x 10 x 10
18
1 1
1
16
0 14
12
−1
10
0 0
−2
8
6
−3
4
−4
2 −1 −1
−5 0
0 2 0 2 0 2 0 2
10 10 10 10 10 10 10 10
Time sample (seconds) Time sample (seconds) Time sample (seconds) Time sample (seconds)
2
0.3 3
1
1
2
y−axis (meters)
0.2
0.5
1.5
0.15
0
1 0
0.1
−0.5
0.5
−1 0.05
0
−1
−1.5 0 0 2 0 2
−1 0 1 2 3 0 500 1000 10 10 10 10
x−axis (meters) Time Sample (seconds) Time sample (s) Time sample (seconds)
(e) Horizontal Position Error (f) Vertical Position Error (g) Linear Velocity Input (h) Steering Velocity Input
−4 (x−xd) −5 (y−yd) −4 (v1 − vd1) −4 (v2 − vd2)
x 10 x 10 x 10 x 10
18
1 1
1
16
0 14
12
−1
10
0 0
−2
8
6
−3
4
−4
2 −1 −1
−5 0
0 2 0 2 0 2 0 2
10 10 10 10 10 10 10 10
Time sample (seconds) Time sample (seconds) Time sample (seconds) Time sample (seconds)
In the third simulation, we use the constraint set Cs3: −1 × 10−5 m/s ≤ v1 − vd1 ≤ 1 × 10−5 m/s
and −1 × 10−5 rad/s ≤ v2 − vd2 ≤ 1 × 10−5 rad/s. The tracking results are shown in Fig. 5.16(a)
along with the state errors shown in Figs. 5.16(e-h). Both constraints become active for some time
during the simulation as seen in Fig. 5.16(d). The number of iterations used at each time sample are
shown in Fig. 5.16(c). The control inputs to the linearized WMR model are shown in Figs. 5.16(i-j).
It is clear from the figures that the control input stays within the constraints Cs3.
As in the previous cases, we also apply FL-ASM and MATLAB’s Quadratic Programming
algorithm to the WMR using the same simulation setup and the constraint set. The results of these
simulations are shown in Figs. 5.17 and 5.18. These algorithms also demonstrate good results in
Table 5.8 summarizes our results for simulations under the constraint set Cs3. All algorithms
give the same cost function value (i.e. J = 5.91 × 10−9 ) for this simulation case which implies
that all these algorithms converge to the same solution. This allows us to conduct an unbiased
comparison of their performance in terms of computational workload and simulation time. NF-
ASM consumes less number of iterations as compared to FL-ASM. Note that the constraints on the
inputs are active for all times during the simulation as shown in Fig. 5.16(d) for NF-ASM simulation
FL-ASM takes roughly 1.5 times the amount of time to complete the tracking as compared
to NF-ASM. Similarly, MATLAB’s QP algorithm is approximately 2.5 times slower to solve the
trajectory tracking problem as compared to NF-ASM. Finally, the average time taken per sample is
quite similar for NF-ASM and FL-ASM as seen in Figs. 5.16(b) and 5.17(b) but it is higher for QP
Figs. 5.16(e-h), 5.17(e-h) and 5.18(e-h) show the position, orientation and steering errors
using NF-ASM, FL-ASM and QP algorithm, respectively. There is relatively large error magnitude
at the beginning of the iterations but the error reduces significantly in the later parts of the iterations
CHAPTER 5. RESULTS AND DISCUSSIONS 74
Table 5.8: Square Trajectory Tracking Results under the Constraint Set Cs3
Constraints
lower bounds upper bounds Total Cost Number of Total Time
Algorithm v1 − vd1 v2 − vd2 v1 − vd1 v2 − vd2 (J × 10−9 ) Iterations Consumed
(m/s) (rad/s) (m/s) (rad/s) (seconds)
−5 −5 −5 −5
NF-ASM −10 −10 10 10 5.91 11644 16.3
FL-ASM −10−5 −10−5 10−5 10−5 5.91 7482 11.7
−5 −5 −5 −5
MATLAB’s QP −10 −10 10 10 5.91 — 25.4
which shows that all three algorithms are capable of solving the trajectory tracking problem under
The control inputs for NF-ASM, FL-ASM and QP algorithm simulation are shown in Figs. 5.13(i-
j), 5.14(i-j) and 5.15(i-j) , respectively. As seen in these figures, the control inputs do not exceed
5
1.5 0.025 16
y−axis (meters)
1 0.02
0.5 14
25
Number of Iterations
1.5 4
20
1
15 1 2
10 0
0.5
5 0
0 0 2 0 2
0 500 1000 0 500 1000 10 10 10 10
Time sample (seconds) Time sample (s) Time sample (seconds)
Time sample (seconds)
(J +RUL]RQWDO3RVLWLRQ(UURU (h) Vertical Position Error
−4 (x−xd) −4 (y−y ) (i) Linear Velocity Input (j) Steering Velocity Input
x 10 x 10 d −5 (v1 − vd1) −5 (v2 − vd2)
x 10 x 10
1.8
1 1 1
1.6
Steering Velocity Input Magnitude (radians/second)
X−coordinate Position Error Magnitude (meters)
1.4
0.5 0.5
−1
1.2
−2
0 0
1
−3
0.8
−4 −0.5 −0.5
0.6
−5
0.4
−1 −1
−6
0.2
0 2 0 2 0 2 0 2
10 10 10 10 10 10 10 10
Time sample (seconds) Time sample (seconds) Time sample (seconds) Time sample (seconds)
5
1.5 0.025 16
y−axis (meters)
1 0.02
0.5 14
25
Number of Iterations
1.5 4
20
1
15 1 2
10
0.5 0
5 0
0 0 2 0 2
0 500 1000 0 500 1000 10 10 10 10
Time sample (s) Time sample (s) Time sample (seconds)
Time sample (s)
( g) Horizontal Position Error (h) Vertical Position Errror
−4 (x−x ) −4 (y−y ) (i) Linear Velocity Input (j) Steering Velocity Input
x 10 d x 10 d −5 (v1 − vd1) −5 (v2 − vd2)
x 10 x 10
1.8
1 1 1
1.6
Steering Velocity Input Magnitude (radians/second)
X−coordinate Position Error Magnitude (meters)
1.4
0.5 0.5
−1
1.2
−2
0 0
1
−3
0.8
−4 −0.5 −0.5
0.6
−5
0.4
−1 −1
−6
0.2
0 2 0 2 0 2 0 2
10 10 10 10 10 10 10 10
Time sample (seconds) Time sample (seconds) Time sample (seconds) Time sample (seconds)
0.12 5
16
2
14
1
0.08 10
y−axis (meters)
0.5 8
0.06
2 6
0
0.04 4
−0.5
1
2
0.02
−1
0
0
−1.5 0 0 2 0 2
−1 0 1 2 3 0 500 1000 10 10 10 10
x−axis (meters) Time Sample (seconds) Time sample (s) Time sample (seconds)
1.8
1 1 1
1.6
Steering Velocity Input Magnitude (radians/second)
X−coordinate Position Error Magnitude (meters)
1.4
0.5 0.5
−1
1.2
−2
0 0
1
−3
0.8
−4 −0.5 −0.5
0.6
−5
0.4
−1 −1
−6
0.2
0 2 0 2 0 2 0 2
10 10 10 10 10 10 10 10
Time sample (seconds) Time sample (seconds) Time sample (seconds) Time sample (seconds)
In the fourth simulation, we use the constraint set Cs4: −1×10−8 m/s ≤ v1 −vd1 ≤ 1×10−8 m/s
and −1 × 10−8 rad/s ≤ v2 − vd2 ≤ 1 × 10−8 rad/s. The tracking results are shown in Fig. 5.19(a)
along with the state errors shown in Figs. 5.19(e-h). Both constraints are active for a larger fraction
of time seen in Fig. 5.19(d) as compared to the previous cases. The number of iterations used at
each time sample are shown in Fig. 5.19(c). The control inputs to the linearized WMR model are
shown in Figs. 5.19(i-j). It is clear from the figures that the control input stays within the constraints
Cs4.
As in the previous cases, we also apply FL-ASM and MATLAB’s Quadratic Programming
algorithm to the WMR using the same simulation setup and the constraint set. The results of these
simulations are shown in Figs. 5.20 and 5.21. These algorithms also demonstrate good results in
Table 5.9 summarizes the results for simulations under the constraint set Cs4. All algorithms
give the same cost function value (i.e. J = 5.046 × 10−9 ) for this simulation case which implies
that all these algorithms converge to the same solution. This allows us to conduct an unbiased
comparison of their performance in terms of computational workload and simulation time. NF-
ASM consumes less number of iterations as compared to FL-ASM. Note that the constraints on the
inputs are active for longer periods during the simulation as shown in Fig. 5.19(d) for NF-ASM
FL-ASM takes more amount of time to complete the tracking as compared to NF-ASM. Simi-
larly, MATLAB’s QP algorithm is approximately two times slower to solve the trajectory tracking
problem. Finally, the average time taken per sample is quite similar for NF-ASM and FL-ASM as
seen in Figs. 5.19(b) and 5.20(b) but it is higher for Quadratic Programming algorithm as seen in
Fig. 5.21(b).
Figs. 5.19(e-h), 5.20(e-h) and 5.21(e-h) show the position, orientation and steering errors
using NF-ASM, FL-ASM and QP algorithm, respectively. There is relatively large error magnitude
CHAPTER 5. RESULTS AND DISCUSSIONS 79
Table 5.9: Square Trajectory Tracking Results under the Constraint Set Cs4
Constraints
lower bounds upper bounds Total Cost Number of Total Time
Algorithm v1 − vd1 v2 − vd2 v1 − vd1 v2 − vd2 (J × 10−9 ) Iterations Consumed
(m/s) (rad/s) (m/s) (rad/s) (seconds)
−8 −8 −8 −8
NF-ASM −10 −10 10 10 5.046 21351 18
FL-ASM −10−8 −10−8 10−8 10−8 5.046 29939 24.8
MATLAB’s QP −10−8 −10−8 10−8 10−8 5.046 — 40
at the beginning of the iterations but the error reduces significantly in the later parts of the iterations
which shows that all three algorithms are capable of solving the trajectory tracking problem under
The control inputs for NF-ASM, FL-ASM and QP algorithm simulation are shown in Figs. 5.19(i-
j), 5.20(i-j) and 5.21(i-j) , respectively. As seen in these figures, the control inputs do not exceed
1.5 0.05
16
y−axis (meters)
5
1 0.04
0.5
−1.5 0
−1 0 1 2 3 0 500 1000 10
3
x−axis (meters) Time Sample (seconds)
45
2
40 6
Number of Iterations
1.5
35
30 4
1
25 1
20 2
0.5
15
10
0 0 0
0 2 0 2
0 500 1000 0 500 1000 10 10 10 10
Time sample (seconds) Time sample (s) Time sample (seconds)
Time sample (seconds)
(g) Horizontal Position Error (h) Vertical Position Error (i) Linear Velocity Input (j) Steering Velocity Input
x 10
−4
(x−x ) x 10
−4 (y−yd) −8 (v1 − vd1) −8 (v2 − vd2)
d x 10 x 10
1.8
1 1 1
0.5 0.5
−1 1.4
−2
1.2 0 0
−3
−4 −0.5 −0.5
0.8
−5
−1 −1
−6 0.6
0 2 0 2 0 2 0 2
10 10 10 10 10 10 10 10
Time sample (seconds) Time sample (seconds) Time sample (seconds) Time sample (seconds)
1.5 0.05
16
y−axis (meters)
5
1 0.04
0.5
−1.5 0
−1 0 1 2 3 0 500 1000 10
3
x−axis (meters) Iteration Number
2
40 6
Number of Iterations
1.5
35
30 4
1
1
25
20 2
0.5
15
10 0 0 0
0 2 0 2
0 500 1000 0 500 1000 10 10 10 10
Time sample (s) Time sample (s) Time sample (seconds)
Time sample (s)
(g) Horizontal Position Error (h) Vertical Position Error (i) Linear Velocity Input
−4 (x−x ) −4 (y−y ) (j) Steering Velocity Input
x 10 d x 10 d −8 (v1 − vd1) −8 (v2 − vd2)
x 10 x 10
1.8
1 1 1
0.5 0.5
−1 1.4
−2
1.2 0 0
−3
−4 −0.5 −0.5
0.8
−5
−1 −1
−6 0.6
0 2 0 2 0 2 0 2
10 10 10 10 10 10 10 10
Time sample (seconds) Time sample (seconds) Time sample (seconds) Time sample (seconds)
0.09
2 5 16
0.08
1
0.06
y−axis (meters)
10
3
0.5 0.05
8
0.04
0
2
6
0.03
−0.5
4
0.02
1
−1 2
0.01
−1.5 0 0 0
0 2 0 2
−1 0 1 2 3 0 500 1000 10 10 10 10
x−axis (meters) Time Sample (seconds) Time sample (s) Time sample (seconds)
(e) Horizontal Position Error (f) Vertical Position Error (g) Linear Velocity Input
−4 (x−xd) −4 (y−yd) (h) Steering Velocity Input
x 10 x 10 −8 (v1 − vd1) −8 (v2 − vd2)
x 10 x 10
1.8
1 1 1
0.5 0.5
−1 1.4
−2
1.2 0 0
−3
−4 −0.5 −0.5
0.8
−5
−1 −1
−6 0.6
0 2 0 2 0 2 0 2
10 10 10 10 10 10 10 10
Time sample (seconds) Time sample (seconds) Time sample (seconds) Time sample (seconds)
In the third simulation, we use the constraint set Cs5: −1 × 10−9 m/s ≤ v1 − vd1 ≤ 1 × 10−9 m/s
and −1 × 10−9 rad/s ≤ v2 − vd2 ≤ 1 × 10−9 rad/s. The tracking results are shown in Fig. 5.22(a)
along with the state errors shown in Figs. 5.22(e-h). Both constraints are active for a longer period
during the simulation as seen in Fig. 5.22(d). The number of iterations used at each time sample are
shown in Fig. 5.22(c). The control inputs to the linearized WMR model are shown in Figs. 5.22(i-j).
It is clear from the figures that the control input stays within the constraints Cs5.
As in the previous cases, we also apply FL-ASM and MATLAB’s Quadratic Programming
algorithm to the WMR using the same simulation setup and the constraint set. The results of these
simulations are shown in Figs. 5.23 and 5.24. These algorithms also demonstrate good results in
Table 5.10 summarizes our results for simulations under the constraint set Cs5. All algorithms
give the same cost function value (i.e. J = 5.048 × 10−9 ) for this simulation case which implies
that all these algorithms converge to the same solution. This allows us to conduct an unbiased
comparison of their performance in terms of computational workload and simulation time. NF-
ASM consumes less number of iterations as compared to FL-ASM. Note that the constraints on
the inputs are active for a longer period during this simulation case as shown in Fig. 5.22(d) for
FL-ASM takes 1.5 times more amount of time to complete the tracking as compared to NF-
ASM. Similarly, MATLAB’s QP algorithm is approximately twice as slower to solve the trajectory
tracking problem as NF-ASM. Finally, the average time taken per sample is quite similar for NF-
ASM and FL-ASM as seen in Figs. 5.22(b) and 5.23(b) but it is higher for MATLAB’s QP algorithm
Figs. 5.22(e-h), 5.23(e-h) and 5.24(e-h) show the position, orientation and steering errors
using NF-ASM, FL-ASM and QP algorithm, respectively. There is relatively large error magnitude
at the beginning of the iterations but the error reduces significantly in the later parts of the iterations
CHAPTER 5. RESULTS AND DISCUSSIONS 84
Table 5.10: Square Trajectory Tracking Results under the Constraint Set Cs5
Constraints
lower bounds upper bounds Total Cost Number of Total Time
Algorithm v1 − vd1 v2 − vd2 v1 − vd1 v2 − vd2 (J × 10−9 ) Iterations Consumed
(m/s) (rad/s) (m/s) (rad/s) (seconds)
−9 −9 −9 −9
NF-ASM −10 −10 10 10 5.048 21410 18
FL-ASM −10−9 −10−9 10−9 10−9 5.048 31635 29.6
MATLAB’s QP −10−9 −10−9 10−9 10−9 5.048 — 40.2
which shows that all three algorithms are capable of solving the trajectory tracking problem under
The control inputs for NF-ASM, FL-ASM and QP algorithm simulation are shown in Figs. 5.22(i-
j), 5.23(i-j) and 5.24(i-j) , respectively. As seen in these figures, the control inputs do not exceed
1.5 0.05
16
y−axis (meters)
5
1 0.04
0.5
−1.5 0
−1 0 1 2 3 0 500 1000 10
3
x−axis (meters) Time Sample (seconds)
2
6
Number of Iterations
40
1.5
30 4
1
1
20 2
0.5
10
0 0 0
0 2 0 2
0 500 1000 0 500 1000 10 10 10 10
Time sample (seconds) Time sample (s) Time sample (seconds)
Time sample (seconds)
(g) Horizontal Position Error (h) Vertical Position Error
−4 (x−x ) −4 (y−yd)
(i) Linear Velocity Input (j) Steering Velocity Input
x 10 d x 10 −9 (v1 − vd1) −9 (v2 − vd2)
x 10 x 10
1.8
1 1 1
0.5 0.5
−1 1.4
−2
1.2 0 0
−3
−4 −0.5 −0.5
0.8
−5
−1 −1
−6 0.6
0 2 0 2 0 2 0 2
10 10 10 10 10 10 10 10
Time sample (seconds) Time sample (seconds) Time sample (seconds) Time sample (seconds)
1.5 0.05
16
y−axis (meters)
5
1 0.04
0.5
−1.5 0
−1 0 1 2 3 0 500 1000 10
3
x−axis (meters) Iteration Number
45
2
6
Number of Iterations
40
1.5
35
4
30 1
1
25
2
20 0.5
15
0 0 0
0 2 0 2
0 500 1000 0 500 1000 10 10 10 10
Time sample (s) Time sample (s) Time sample (seconds)
Time sample (s)
(g) Horizontal Position Error (h) Vertical Position Error
−4 (x−x ) −4 (y−yd) (i) Linear Velocity Input (j) Steering Velocity Input
x 10 d x 10 −9 (v1 − vd1) −9 (v2 − vd2)
x 10 x 10
1.8
1 1 1
0.5 0.5
−1 1.4
−2
1.2 0 0
−3
−4 −0.5 −0.5
0.8
−5
−1 −1
−6 0.6
0 2 0 2 0 2 0 2
10 10 10 10 10 10 10 10
Time sample (seconds) Time sample (seconds) Time sample (seconds) Time sample (seconds)
0.06
2 5 16
1
0.04
y−axis (meters)
10
3
0.5
0.03 8
0
2
6
0.02
−0.5
4
1
0.01
−1 2
−1.5 0 0 0
0 2 0 2
−1 0 1 2 3 0 500 1000 10 10 10 10
x−axis (meters) Time Sample (seconds) Time sample (s) Time sample (seconds)
1.8
1 1 1
0.5 0.5
−1 1.4
−2
1.2 0 0
−3
−4 −0.5 −0.5
0.8
−5
−1 −1
−6 0.6
0 2 0 2 0 2 0 2
10 10 10 10 10 10 10 10
Time sample (seconds) Time sample (seconds) Time sample (seconds) Time sample (seconds)
In this section, we provide a brief summary of results obtained in the previous sections for square
trajectory tracking. We also make a comparison between NF-ASM and the other two algorithms in
terms of the number of iterations used and the total time consumed for simulations. A general trend
in the simulation results for all the three algorithms can be observed; as we tighten the constraints
on the inputs, constraints stay active for a longer period leading to an increased number of iterations
used which, in turn, increases the overall simulation time. Note that we observed the same trend for
Since the time per iteration under constraint set Cs1 (shown in Figs. 5.10 (b), 5.11 (b) and 5.12
(b)), Cs2 (shown in Figs. 5.13 (b), 5.14 (b) and 5.15 (b)), Cs3 (shown in Figs. 5.16 (b), 5.17 (b)
and 5.18 (b)), Cs4 (shown in Figs. 5.19 (b), 5.20 (b) and 5.21 (b)) and Cs5 (shown in Figs. 5.22
(b), 5.23 (b) and 5.24 (b)) is much lower than the sampling time of 0.1 seconds in all simulation
As seen in Figs. 5.10(i-h), 5.13(i-h), 5.16(i-h), 5.19(i-h) and 5.22(i-h) for NF-ASM, Figs. 5.11(i-
h), 5.14(i-h), 5.17(i-h), 5.20(i-h) and 5.23(i-h) for FL-ASM and Figs. 5.12(i-h), 5.15(i-h), 5.18(i-
h), 5.21(i-h) and 5.24(i-h) for MATLAB’s quadratic programming algorithm, the state errors do
not stay at a zero value. They increase in a periodic manner. This happens because the model of
the WMR is time-varying which leads to a change in dynamics of the WMR. This change in sys-
tem dynamics with time results in a need for the re-execution of MPC. With each change in the
dynamics of the WMR model, the application of MPC algorithm re-stabilizes the system causing
the error to reach a zero value as seen in the figures. It shows that all three algorithms are capable of
driving the error model of the linearized time-varying WMR to stability regardless of the magnitude
Table 5.11 reiterates the trajectory tracking results of NF-ASM and FL-ASM for comparison pur-
poses. When the constraint set Cs1 is applied, both NF-ASM and FL-ASM demonstrate similar re-
sults in terms of trajectory tracking performance as shown in Figs. 5.10(a) and 5.11(a) . The average
time taken per sample is also quite similar for both cases as seen in Figs. 5.10(b) and 5.11(b). The
reason is that none of the constraints become active during the simulation, as shown in Figs. 5.10(d)
and 5.11(d), because the constraints on each input are too relaxed. Hence, unconstrained control
optimization is performed and no active set algorithm is required to solve the tracking problem,
leading to zero iterations used as shown in Figs. 5.10(c) and 5.11(c). Therefore, both algorithms
We tighten the constraints and apply Cs2 to make them active. Again, the two algorithms give
similar trajectory tracking performance as shown in Figs. 5.13(a) and 5.14(a). Both algorithms
give the same cost function value J = 1.57 × 10−8 which shows that both algorithms are finding
the same set of solutions for trajectory tracking. Also, the average time consumed per iteration is
very similar for both algorithms. However, the number of iterations required to solve the trajectory
tracking problem using FL-ASM is smaller than the number of iterations required using NF-ASM
as shown in Table 5.11. The reason why FL-ASM performs better than NF-ASM in this case is
because not all constraints stay active during the simulation as shown in Figs. 5.13(d) and 5.14(d).
We further tighten the constraints to Cs3 for the next simulation. Again, the two algorithms
give similar trajectory tracking performance as shown in Figs. 5.16(a) and 5.17(a). Both algorithms
give the same cost function value (i.e. J = 5.91 × 10−9 ). Also, the average time consumed per
iteration is very similar for both algorithms. However, the number of iterations required to solve the
trajectory tracking problem using FL-ASM is again smaller than the number of iterations required
using NF-ASM as shown in Table 5.11. The reason again is due to the fact that not all constraints
stay active during the simulation as shown in Figs. 5.16(d) and 5.17(d).
CHAPTER 5. RESULTS AND DISCUSSIONS 90
For the fourth and fifth simulations, the two algorithms give similar trajectory tracking perfor-
mance as shown in Figs. 5.19, 5.20, 5.22 and 5.23. Both algorithms give the same cost function
value for the fourth and fifth simulation, i.e. J = 5.046 × 10−9 and J = 5.048 × 10−9 , respec-
tively. Also, the average time consumed per iteration is very similar for both algorithms. However,
the number of iterations required to solve the trajectory tracking problem using NF-ASM is much
smaller than the number of iterations required using FL-ASM as shown in Table 5.11. The reason
is that the constraints stay active for a longer period during these simulations as compared to the
previous cases.
The results, which are summarized in Table 5.11, show that NF-ASM gives better performance
in terms of number of iterations when the constraints are active for a longer period during the
simulation. FL-ASM is a better choice if the constraint are active only for a fraction of the total
time of the simulation as in the case when Cs2 and Cs3 are used.
Constraints become active when the magnitude of the inputs required to achieve the desired set-
points is more than the limits imposed on the inputs. The inputs in this case are the linear velocity
error and the steering velocity error. Therefore, the constraints on the inputs will become active
when the linear and steering velocities change by a magnitude that exceeds the limit imposed by
the constraints. From a practical perspective, it means that the constraints have a higher chance of
staying active for a longer period during the trajectory if the speed and the steering velocity keep
on changing. Hence, if there are a lot of turns and a lot of obstacles (or traffic) around the WMR
(or a vehicle), NF-ASM would be a better option for trajectory tracking as it gives better results in
simulation sets in which the constraints stay active for a longer period (i.e. Cs4 and Cs5).
Table 5.12 reiterates the trajectory tracking results of NF-ASM and MATLAB’s QP algorithm for
comparison purposes.
CHAPTER 5. RESULTS AND DISCUSSIONS 91
When the constraint set Cs1 is applied, both NF-ASM and MATLAB’s Quadratic Program-
ming algorithm demonstrate similar results in terms of trajectory tracking performance as shown in
Figs. 5.10(a) and 5.12(a). Both algorithms give the same cost function value (i.e. J = 3.47 × 10−8 )
which shows that both algorithms are finding the set of solutions for the trajectory tracking problem.
The average time taken per sample is high in the beginning iterations for MATLAB’s Quadratic Pro-
gramming algorithm as seen in Fig. 5.12(b). The total time taken by MATLAB’s QP algorithm to
solve the problem in this case is about twice as much as the time taken by NF-ASM as shown in
Table 5.12.
We tighten the constraints to Cs2 to allow them to be active. Again, the two algorithms give
similar trajectory tracking performance as shown in Figs. 5.13(a) and 5.15(a). Again, both algo-
rithms give the same cost function value (i.e. J = 1.57 × 10−8 ) which shows that both algorithms
are finding the set of solutions for the trajectory tracking problem. However, the total time taken
by MATLAB’s QP algorithm to solve the problem is again twice as much as the time taken by
NF-ASM.
We further tighten the constraints to Cs3 for the next simulation. Again, the two algorithms
CHAPTER 5. RESULTS AND DISCUSSIONS 92
give similar trajectory tracking performance as shown in Figs. 5.16(a) and 5.18(a). Both algorithms
give the same cost function value J = 5.91 × 10−9 . However, the total time taken by MATLAB’s
QP algorithm to solve the problem is again twice as much as the time taken by NF-ASM. Similarly,
both algorithm show same trajectory tracking performance under constraint sets Cs4 and Cs5. But
again, the time consumed by MATLAB’s QP algorithm to solve the tracking problem is twice as
The results, which are summarized in Table 5.12, show that NF-ASM gives better performance
Conclusions
In this research, we explore different control techniques that can be used to perform trajec-
Control (MPC) for trajectory tracking of the WMR because it allows for an easy application
of input and state constraints that may arise in practical situations. For example, a designer
may want to bound the speed of the WMR or bound the area of movement of the WMR.
By using MPC, the designer can easily accomplish this using concrete mathematical equa-
tions which guarantee the stability of the control system. MPC also allows easy tuning of
the final control law to improve the transient performance and also allows for easy control
design optimization. The design optimization can be done to ensure that the error between
the actual and desired trajectory is minimized. Also, one can minimize the control effort
required to solve the trajectory tracking problem using the built-in optimization method in
MPC.
Computation time is the biggest hurdle in adapting MPC strategies for trajectory track-
ing. This research applies a non-feasible active set MPC algorithm (also known as NF-
ASM) that is much faster than the traditional active set methods. It is shown in [1] that
93
CHAPTER 6. CONCLUSIONS 94
NF-ASM is faster than other traditional algorithms when applied to plant control applica-
tions. These plant models, however, are time-invariant. This research, on the other hand,
A discrete-time linear time-varying model of a general WMR is used for the simulation.
The two inputs to this linear model are the difference in the actual and desired linear veloc-
ities (v1 − vd1 ) and the difference in the actual and desired steering velocities (v2 − vd2 ). In
this research, we put constraints on these control inputs. In other words, we put constraints
on the deviation of the linear and steering velocities from their reference values. The con-
trol optimization is done to minimize the control effort (i.e. to minimize the magnitude of
control inputs required to solve the tracking problem) and the tracking error. MPC’s in-
herent ability to incorporate input constraints and perform control optimization makes this
The non-holonomy of the WMR, i.e. its inability to perform certain maneuvers in
an instantaneous manner, puts a limitation on the type of reference trajectory that can be
tracked. To ensure that the trajectory meets the nonholonomic conditions, we generate
reference trajectories using the differential equations of the WMR model. Circular and
square trajectories are generated using the differential equations model of the WMR. The
vertices of the square trajectory are replaced by parts of a circle to ensure that the trajectory
We linearize and discretize the WMR model and perform MATLAB simulations to
track these circular and square trajectories. The performance of NF-ASM is compared with
the performance of a traditional active set method known as the Fletcher’s active set method
(FL-ASM) and the QP algorithm commercially available with the MATLAB software.
CHAPTER 6. CONCLUSIONS 95
It is also shown that, although all the three algorithms are capable of providing satisfac-
tory real-time trajectory tracking performance, NF-ASM is a better choice in terms of the
simulation time and required number of iterations for trajectory tracking if the constraints
on the inputs stay active for a long period during the simulation. On the other hand, FL-
ASM proves to be a better option for trajectory tracking if the constraints on the inputs of
the WMR model do not stay active for a long period during the trajectory tracking process.
MATLAB’s QP algorithm takes the most amount of time out of the three algorithms to
Constraints become active when the magnitude of the inputs required to achieve the
desired set-point is greater than the magnitude of the limits imposed on the inputs. The
inputs in this case are the linear velocity error and the steering velocity error. Therefore,
the constraints on the inputs will become active when the linear and steering velocities
change by a magnitude that exceeds the limit imposed by the constraints. From a practical
perspective, it means that the constraints have a higher chance of staying active for a longer
period during the trajectory if the speed and the steering velocity keep on changing. Hence,
if there are a lot of turns and a lot of obstacles (or traffic) around the WMR (or a vehicle),
NF-ASM would be a better option for trajectory tracking as it gives better results with the
simulation sets in which the constraints stay active for a longer period.
Chapter 7
Appendices
%% Diff Eq
F(1,1) = vd1*cos(x(3));
F(2,1) = vd1*sin(x(3));
F(3,1) = vd1*tan(x(4))/L;
F(4,1) = vd2;
end
Tinit = 0;
Tfinal = 6.3;
Tvec=[Tinit, Tfinal];
96
CHAPTER 7. APPENDICES 97
X0 = [0,0,0,atan(1)];
[Tout, Xout] = ode45( @car_xdot, Tvec, X0)
%% Diff Eq
F(1,1) = vd1*cos(x(3));
F(2,1) = vd1*sin(x(3));
F(3,1) = vd1*tan(x(4))/L;
F(4,1) = vd2;
end
% Vert. Up
X01 = [0,0,pi/2,0];
[Tout1, Xout1] = ode45( @car_xdot, Tvec, X01);
% Hor. Right
X02 = [0,0,0,0];
[Tout2, Xout2] = ode45( @car_xdot, Tvec, X02);
%% Square Trajectory
[m1,n1] = size(Xout1);
[m2,n2] = size(Xout2);
% Vert up
Xout = Xout1;
CHAPTER 7. APPENDICES 99
% The turn
Tinit = 0;
Tfinal = .83;
Tvec=[Tinit, Tfinal];
X03 = [0,0,pi/2,-pi/180*60];
[Tout3, Xout3] = ode45( @car_xdot, Tvec, X03)
Xout(m1+1:m1+m2,:) = Xout3;
Xout(m1+1:m1+m2,2) = Xout(m1+1:m1+m2,2)+1;
% Hor right
[m,n] = size(Xout);
Xout(m+1:m+m2,:) = Xout2;
Xout(m+1:m+m2,2) = Xout(m+1:m+m2,2)+1.572;
Xout(m+1:m+m2,1) = Xout(m+1:m+m2,1)+0.5007;
% The turn
[m,n] = size(Xout);
Tinit = 0;
Tfinal = .83;
Tvec=[Tinit, Tfinal];
X04 = [0,0,0,-pi/180*60];
[Tout4, Xout4] = ode45( @car_xdot, Tvec, X04)
Xout(m+1:m+m2,:) = Xout4;
Xout(m+1:m+m2,2) = Xout(m+1:m+m2,2)+1.572;
Xout(m+1:m+m2,1) = Xout(m+1:m+m2,1)+1.501;
% Vert dn
[m,n] = size(Xout);
Xout(m+1:m+m1,:) = flipud(Xout1);
Xout(m+1:m+m1,1)= Xout(m+1:m+m1,1)+2.075;
% The turn
[m,n] = size(Xout);
Tinit = 0;
Tfinal = 0.83;
Tvec=[Tinit, Tfinal];
X05 = [0,0,-pi/2,-pi/180*60];
[Tout5, Xout5] = ode45( @car_xdot, Tvec, X05)
Xout(m+1:m+m2,:) = Xout5;
Xout(m+1:m+m2,2) = Xout(m+1:m+m2,2);
CHAPTER 7. APPENDICES 100
Xout(m+1:m+m2,1) = Xout(m+1:m+m2,1)+2.075;
% Hor Left
[m,n] = size(Xout);
Tinit = 0;
Tfinal = 1;
Tvec=[Tinit, Tfinal];
Xout(m+1:m+m2,:) = flipud(Xout2)+0.574;
Xout(m+1:m+m2,2)= Xout(m+1:m+m2,2)-(2*0.574);
Yd(3) = 0;
Yd(4) = 0;
Tsim = 3;
% NF-ASM Parameters
Y_total(ryt+1:(ryt+1)+Tsim,:) = Y_qprog_c1;
U_total(rut+1:(rut+1)+Tsim,:) = U_qprog_c1;
[NrT,NcT]=size(TimePerIter_c1);
TimePerIter_c1(1,NcT+1:(NcT)+Tsim)= timer.iter.qprog_c1;
[NrN,NcN]=size(NumOfIter_c1);
NumOfIter_c1(1,NcT+1:(NcT)+Tsim) = Var_qprog_c1.k;
[NrA,NcA] = size(NumOfActCons_c1);
NumOfActCons_c1(1,NcA+1:(NcA)+Tsim) = Var_qprog_c1.Nb;
plot(TimePerIter_c1)
title(’(b) Time per Iteration’)
xlabel(’Time Sample (seconds)’)
ylabel (’Time Consumed (seconds)’)
AXIS ([0 max(size(TimePerIter_c1))+
.025*max(size(TimePerIter_c1)) min(TimePerIter_c1)
max(TimePerIter_c1)+.05*max(TimePerIter_c1)]);
subplot(2,2,3)
plot(NumOfIter_c1)
title(’(c) Number of Iterations Used’)
xlabel(’Time sample (seconds)’)
ylabel (’Number of Iterations’)
AXIS ([0 max(size(NumOfIter_c1))
+.025*max(size(NumOfIter_c1))
min(NumOfIter_c1) max(NumOfIter_c1)
+.05*max(NumOfIter_c1)]);
%AXIS ([0 max(size(NumOfIter_c1))
+.025*max(size(NumOfIter_c1))
-1 1]); % For unconstrained solution
subplot(2,2,4)
plot(NumOfActCons_c1)
title(’(d) Number of Active Constraints’)
xlabel(’Time sample (seconds)’)
ylabel (’Number of Active Constraints’)
AXIS ([0 max(size(NumOfActCons_c1))+
.025*max(size(NumOfActCons_c1)) 0
max(NumOfActCons_c1)+
.05*max(NumOfActCons_c1)]);
%AXIS ([0 max(size(NumOfActCons_c1))
+.025*max(size(NumOfActCons_c1))
-1 1]); % For unconstrained solution
saveas(gcf, ’p1_c1_s7’, ’eps’)
figure (5)
subplot(1,2,1)
semilogx(1:1:size(Y_total(2:ryt,3)),
Y_total(2:ryt,3)-Xout_temp(:,3))
title({’(a) Orientation Error’;
’(theta-theta_d)’})
xlabel(’Time sample (s)’)
ylabel (’Orientation Error Magnitude (radians)’)
CHAPTER 7. APPENDICES 104
figure(7)
subplot(1,2,1)
semilogx(U_total(:,1))
title({’(a) Linear Velocity Input’; ’(v_1 - v_d_1)’})
xlabel(’Time sample (seconds)’)
ylabel (’Linear Velocity Input Magnitude (meters/second)’)
AXIS ([0 max(size(U_total(2:ryt,1)))
+.025*max(size(U_total(2:ryt,1)))
lb(1)+.25*lb(1)
ub(1)+.25*ub(1)]); % Not for unconstrained solution
subplot(1,2,2)
semilogx(U_total(:,2))
title({’(b) Steering Velocity Input’; ’(v_2 - v_d_2)’})
xlabel(’Time sample (seconds)’)
ylabel (’Steering Velocity Input Magnitude(radians/second)’)
AXIS ([0 max(size(U_total(2:ryt,2)))
+.025*max(size(U_total(2:ryt,2)))
lb(2)+.25*lb(2) ub(2)
+.25*ub(2)]); % Not for unconstrained solution
saveas(gcf, ’p4_c1_s7’, ’eps’)
sprintf(’Num of Iter c1= %d’, sum(NumOfIter_c1))
sprintf(’Time per Iter c1= %d’, sum(TimePerIter_c1))
sprintf(’Cost of c1= %d’, Jval_my)
CHAPTER 7. APPENDICES 106
Yd(3) = 0;
Yd(4) = 0;
Tsim = 3;
plot(TimePerIter_f1)
title(’(b) Time per Iteration’)
xlabel(’Iteration Number’)
ylabel (’Time Consumed (seconds)’)
AXIS ([0 max(size(TimePerIter_f1))
+.025*max(size(TimePerIter_f1))
min(TimePerIter_f1) max(TimePerIter_f1)
+.05*max(TimePerIter_f1)]);
subplot(2,2,3)
plot(NumOfIter_f1)
title(’(c) Number of Iterations Used’)
xlabel(’Time sample (s)’)
ylabel (’Number of Iterations’)
AXIS ([0 max(size(NumOfIter_f1))
+.025*max(size(NumOfIter_f1))
min(NumOfIter_f1) max(NumOfIter_f1)
+.05*max(NumOfIter_f1)]);
%AXIS ([0 max(size(NumOfIter_f1))
+.025*max(size(NumOfIter_f1))
-1 1]); % For unconstrained solution
subplot(2,2,4)
plot(NumOfActCons_f1)
title(’(d) Number of Active Constraints’)
xlabel(’Time sample (s)’)
ylabel (’Number of Active Constraints’)
AXIS ([0 max(size(NumOfActCons_f1))
+.025*max(size(NumOfActCons_f1))
0 max(NumOfActCons_f1)+.05*max(NumOfActCons_f1)]);
%AXIS ([0 max(size(NumOfActCons_f1))
+.025*max(size(NumOfActCons_f1))
-1 1]); % For unconstrained solution
saveas(gcf, ’p1_f1_s7’, ’eps’)
figure (5)
subplot(1,2,1)
semilogx(1:1:size(Y_total(2:ryt,3)),Y_total(2:ryt,3)
-Xout_temp(:,3))
title({’(a) Orientation Error’; ’(theta-theta_d)’})
xlabel(’Time sample (s)’)
ylabel (’Orientation Error Magnitude (radians)’)
AXIS ([0 max(size(Y_total(2:ryt,3)))
CHAPTER 7. APPENDICES 109
+.025*max(size(Y_total(2:ryt,3)))
min(Y_total(2:ryt,3)-Xout_temp(:,3)) max(Y_total(2:ryt,3)
-Xout_temp(:,3))+.5*max(Y_total(2:ryt,3)-Xout_temp(:,3))]);
subplot(1,2,2, ’XScale’, ’Log’)
semilogx(1:1:size(Y_total(2:ryt,4)),Y_total(2:ryt,4)
-Xout_temp(:,4))
title({’(b) Steering Error’; ’(phi-phi_d)’})
xlabel(’Time sample (seconds)’)
ylabel (’Steering Angle Error Magnitude (radians)’)
AXIS ([0 max(size(Y_total(2:ryt,4)))
+.025*max(size(Y_total(2:ryt,4)))
min(Y_total(2:ryt,4)-Xout_temp(:,4)) max(Y_total(2:ryt,4)
-Xout_temp(:,4))+.9*max(Y_total(2:ryt,4)-Xout_temp(:,4))]);
saveas(gcf, ’p2_f1_s7’, ’eps’)
figure(6)
subplot(1,2,1)
semilogx(Y_total(2:ryt,1)-Xout_temp(:,1))
title({’(a) X-Position Error’; ’(x-x_d)’})
xlabel(’Time sample (seconds)’)
ylabel (’X-coordinate Position Error Magnitude (meters)’)
AXIS ([0 max(size(Y_total(2:ryt,1)))
-.025*max(size(Y_total(2:ryt,1)))
min(Y_total(2:ryt,1)-Xout_temp(:,1)) max(Y_total(2:ryt,1)
-Xout_temp(:,1))+.9*max(Y_total(2:ryt,1)-Xout_temp(:,1))]);
subplot(1,2,2)
semilogx(Y_total(2:ryt,2)-Xout_temp(:,2))
title({’(b) Y-Position Error’; ’(y-y_d)’})
xlabel(’Time sample (seconds)’)
ylabel (’Y-coordinate Position Error Magnitude (meters)’)
AXIS ([0 max(size(Y_total(2:ryt,4)))
+.025*max(size(Y_total(2:ryt,4)))
min(Y_total(2:ryt,2)-Xout_temp(:,2))max(Y_total(2:ryt,2)
-Xout_temp(:,2))+.9*max(Y_total(2:ryt,2)-Xout_temp(:,2))]);
saveas(gcf, ’p3_f1_s7’, ’eps’)
figure(7)
subplot(1,2,1)
semilogx(U_total(:,1))
title({’(a) Linear Velocity Input’; ’(v_1 - v_d_1)’})
xlabel(’Time sample (seconds)’)
ylabel (’Linear Velocity Input Magnitude (meters/second)’)
CHAPTER 7. APPENDICES 110
Yd(3) = 0;
Yd(4) = 0;
Tsim = 3;
max(Y_total(2:ryt,1)-Xout_temp(:,1))
+.9*max(Y_total(2:ryt,1)-Xout_temp(:,1))]);
subplot(1,2,2)
semilogx(Y_total(2:ryt,2)-Xout_temp(:,2))
title({’(b) Y-Position Error’; ’(y-y_d)’})
xlabel(’Time sample (seconds)’)
ylabel (’Y-coordinate Position Error Magnitude (meters)’)
AXIS ([0 max(size(Y_total(2:ryt,4)))
+.025*max(size(Y_total(2:ryt,4)))
min(Y_total(2:ryt,2)-Xout_temp(:,2)) max(Y_total(2:ryt,2)
-Xout_temp(:,2))+.9*max(Y_total(2:ryt,2)-Xout_temp(:,2))]);
saveas(gcf, ’p3_qp_s7’, ’eps’)
figure(7)
subplot(1,2,1)
semilogx(U_total(:,1))
title({’(a) Linear Velocity Input’; ’(v_1 - v_d_1)’})
xlabel(’Time sample (seconds)’)
ylabel (’Linear Velocity Input Magnitude (meters/second)’)
AXIS ([0 max(size(U_total(2:ryt,1)))
+.025*max(size(U_total(2:ryt,1))) lb(1)+.25*lb(1)
ub(1)+.25*ub(1)]); % Not for unconstrained solution
subplot(1,2,2)
semilogx(U_total(:,2))
title({’(b) Steering Velocity Input’; ’(v_2 - v_d_2)’})
xlabel(’Time sample (seconds)’)
ylabel (’Steering Velocity Input Magnitude (radians/second)’)
AXIS ([0 max(size(U_total(2:ryt,2)))
+.025*max(size(U_total(2:ryt,2))) lb(2)+.25*lb(2)
ub(2)+.25*ub(2)]); % Not for unconstrained solution
saveas(gcf, ’p4_qp_s7’, ’eps’)
sprintf(’Total Time for Qprog= %d’, sum(TimePerIter_c1))
sprintf(’Cost of Qprog= %d’, Jval_qp)
Bibliography
[1] R. Milman and E. Davison, “A fast MPC algorithm using nonfeasible active set meth-
ods,” Journal of Optimization Theory and Applications, vol. 139, no. 3, pp. 591–616,
2008.
[4] C. De Wit, H. Khennouf, C. Samson, and O. Sordalen, “Nonlinear control design for
mobile robots,” Recent trends in mobile robots, pp. 121–156, 1993.
[5] D. Tilbury and M. Tilbury, “Exterior differential systems and nonholonomic motion
planning,” Memo. No. UCB/ERL M94/90, UC Berkeley, 1994.
[6] J. Laumond, P. Jacobs, M. Taix, and R. Murray, “A motion planner for nonholonomic
mobile robots,” IEEE Transactions on Robotics and Automation, vol. 10, no. 5, pp.
577–593, 1994.
[7] C. Samson, “Velocity and torque feedback control of a nonholonomic cart,” Advanced
robot control, pp. 125–151, 1991.
[8] ——, “Time-varying feedback stabilization of car-like wheeled mobile robots,” The
International journal of robotics research, vol. 12, no. 1, p. 55, 1993.
[10] J. Barraquand and J. Latombe, “On nonholonomic mobile robots and optimal maneu-
vering,” in IEEE International Symposium on Intelligent Control, 1989, pp. 340–347.
115
BIBLIOGRAPHY 116
[11] A. Ollero and O. Amidi, “Predictive path tracking of mobile robots. Application to
the CMUNavLab,” in Fifth International Conference on Advanced Robotics, 1991,
pp. 1081–1086.
[14] C. De Wit and O. Sordalen, “Exponential stabilization of mobile robots with non-
holonomic constraints,” IEEE Transactions on Automatic Control, vol. 37, no. 11, pp.
1791–1797, 1992.
[15] H. Essen and H. Nijmeijer, “Non-linear model predictive control of constrained mo-
bile robots,” in Proc. European Control Conference, 2001, pp. 1157–1162.
[16] W. Dixon, M. De Queiroz, D. Dawson, and T. Flynn, “Adaptive tracking and regula-
tion of a wheeled mobile robot with controller/update law modularity,” IEEE Trans-
actions on Control Systems Technology, vol. 12, no. 1, pp. 138–147, 2004.
[17] M. Oya, C. Su, and R. Katoh, “Robust adaptive motion/force tracking control of un-
certain nonholonomic mechanical systems,” IEEE Transactions on Robotics and Au-
tomation, vol. 19, no. 1, pp. 175–182, 2003.
[18] O. Sordalen, “Conversion of the kinematics of a car with n trailers into a chained
form,” in IEEE International Conference on Robotics and Automation, 1993, pp. 382–
387.
[19] D. Tilbury, R. Murray, and S. Sastry, “Trajectory generation for the n-trailer problem
using goursat normal form,” in 32nd IEEE Conference on Decision and Control, 1993,
pp. 971–977.
[21] A. Sahai, M. Secor, and L. Bushnell, “An obstacle avoidance algorithm for a car
pulling many trailers with kingpin hitching,” in 33rd IEEE Conf. on Decision and
Control, 1994, pp. 2944–2949.
BIBLIOGRAPHY 117
[22] D. Tilbury, J. Laumond, R. Murray, S. Sastry, and G. Walsh, “Steering car-like sys-
tems with trailers using sinusoids,” in IEEE International Conference on Robotics
and Automation, 1992, pp. 1993–1998.
[24] J. Reeds and L. Shepp, “Optimal paths for a car that goes both forwards and back-
wards,” Pacific Journal of Mathematics, vol. 145, no. 2, 1990.
[27] F. Kühne, W. Lages, and J. da Silva Jr, “Model predictive control of a mobile robot
using linearization,” in Proceedings of Mechatronics and Robotics, 2004.
[30] G. Campion, B. d’Andrea Novel, and G. Bastin, “Controllability and state Feedback
stabilizability of non holonomic mechanical systems,” Advanced Robot Control, pp.
106–124.
[31] G. Oriolo and Y. Nakamura, “Control of mechanical systems with second-order non-
holonomic constraints: Underactuated manipulators,” in Conference on Decision and
Control. Citeseer, 1991, pp. 2398–2403.
[32] B. Maschke and A. Van der Schaft, “A Hamiltonian approach to stabilization of non-
holonomic mechanicalsystems,” in 33rd IEEE Conference on Decision and Control,
vol. 3, 1994.
[33] N. Sarkar, X. Yun, and V. Kumar, “Dynamic path following: A new control algorithm
for mobile robots,” in 32nd IEEE Conference on Decision and Control, 1993, pp.
2670–2675.
BIBLIOGRAPHY 118
[34] A. Kapitanovsky, A. Goldenberg, and J. Mills, “Dynamic control and motion planning
technique for a class of nonlinear systems with drift,” Systems & Control Letters,
vol. 21, no. 5, pp. 363–369, 1993.
[36] C. Rui and N. McClamroch, “Stabilization and asymptotic path tracking of a rolling
disk,” in 34th IEEE Conference on Decision and Control, vol. 4, 1995.
[39] R. Brockett, “New directions in applied mathematics,” Control Theory and Singular
Riemannian Geometry, pp. 11–27, 1981.
[42] C. Samson, “Control of chained systems application to path following and time-
varying point-stabilization of mobile robots,” IEEE Transactions on Automatic Con-
trol, vol. 40, no. 1, pp. 64–77, 1995.
[44] G. Oriolo, A. De Luca, M. Vendittelli et al., “WMR control via dynamic feedback lin-
earization: design, implementation, and experimental validation,” IEEE Transactions
on Control Systems Technology, vol. 10, no. 6, pp. 835–852, 2002.
[60] F. Allgöwer, “A quasi-infinite horizon nonlinear model predictive control scheme with
guaranteed stability,” Automatica Oxford, vol. 34, no. 10, pp. 1205–1217, 1998.
[61] D. Mayne, J. Rawlings, C. Rao, and P. Scokaert, “Constrained model predictive con-
trol: Stability and optimality,” Automatica Oxford, vol. 36, pp. 789–814, 2000.
[63] J. Guldner and V. Utkin, “Stabilization of non-holonomic mobile robots using Lya-
punovfunctions for navigation and sliding mode control,” in 33rd IEEE Conference
on Decision and Control, vol. 3, 1994.
[64] R. Milman, “Speedup of the quadratic programming problem and other issues in
model predictive control,” PhD Dissertation, University of Toronto, Department of
Electrical and Computer Engineering, 2004.
[65] M. Lau, S. Yue, K. Ling, and J. Maciejowski, “A comparison of interior point and
active set methods for FPGA implementation of model predictive control,” in Proc.
European Control Conference, 2009, pp. 156–161.
[67] Z. Li, J. Sun, and S. Oh, “Path following for marine surface vessels with rudder and
roll constraints: an MPC approach,” in Proceedings of American Control Conference.
IEEE Press, 2009, pp. 3611–3616.
[68] M. Henson, “Nonlinear model predictive control: current status and future directions,”
Computers and Chemical Engineering, vol. 23, no. 2, pp. 187–202, 1998.