Download Sistema de Control de UAVs con aplicaciones a vuelo en formación

Document related concepts

Relativistic quantum mechanics wikipedia , lookup

Theoretical and experimental justification for the Schrödinger equation wikipedia , lookup

Mitsubishi AWC wikipedia , lookup

Dynamical system wikipedia , lookup

Derivations of the Lorentz transformations wikipedia , lookup

Routhian mechanics wikipedia , lookup

Tensor operator wikipedia , lookup

Angular momentum operator wikipedia , lookup

Laplace–Runge–Lenz vector wikipedia , lookup

Four-vector wikipedia , lookup

Centripetal force wikipedia , lookup

Work (physics) wikipedia , lookup

Classical central-force problem wikipedia , lookup

Symmetry in quantum mechanics wikipedia , lookup

Equations of motion wikipedia , lookup

Relativistic angular momentum wikipedia , lookup

Kinematics wikipedia , lookup

Rigid body dynamics wikipedia , lookup

Transcript
Tesis de grado de Ingenierı́a Electrónica:
Sistema de Control de UAVs con
aplicaciones a vuelo en formación
Author:
Claus M. Rosito
[email protected]
Director:
Dr. Ing. Juan I. Giribet
in the
Grupo de Procesamiento de Señales, Identificación y Control
Facultad de Ingenierı́a, Universidad de Buenos Aires
May 7, 2013
Abstract
In this work we consider the attitude control problem. We present a robust, almost
global, non linear attitude controller based on Lyapunov functions. It is shown to be robust against unmodeled perturbations induced by aerodynamic or random perturbations,
and against perturbations induced by noisy or faulty attitude and angular measurements
used to compute the control action. Then, bounds on the maximum sample time for
the discrete time (digital) implementation of the controller are found using Sample and
Zero Hold analysis. The bounds and the minimum attainable error are found to depend
on the choice of gains for the controller. This relationship is explored and bounds on the
sample time are found in terms of the bounds used for robustization. From this relationship, gains to achieve the desired error and sample time performance can be found.
Simulations are carried out to demonstrate the results on a quadrotor UAV. From a
systems engineering point of view, these results allow for higher level requirements in
attitude and angular velocity to be translated into lower level requirements on the digital
controller and the navigation subsystem as timing and error performance requirements
respectively.
El resultado acerca de la robustez del controlador y las cotas de
error en función de las cotas de las mediciones se lo dedico a
Cynthia.
El resultado acerca de las cotas en el tiempo de muestreo del
controlador se lo dedico a mis viejos, mi hermano y mi abuela.
El resultado acerca de la relación entre error y tiempo de muestreo
y su uso para la selección de las ganancias se lo dedico a mis
compañeros.
ii
Acknowledgements
Al Dr. Ing. Juan I. Giribet por su apoyo y también por la libertad que me brindó durante
el desarrollo de esta tesis. Gracias por la gran calidad como profesional y como persona.
A los jurados, Dr. Ing. Rafael Garcı́a, Dr. Ing. Alejandro Ghersin y Dr. Ing. José Luis
Mancilla-Aguilar, por hacerse el tiempo de leer y juzgar este trabajo.
Al Grupo de Sistemas Embebidos, su director Ariel Lutenberg, y el subgrupo del quadrotor, Alan Kharsansky, Ezequiel Espósito, Federico Roasio y Daniel Schermuk, por darme
la oportunidad de entrar en el tema de los cuadricópteros, viniendo yo de un background
totalmente diferente.
A los profesores y colegas que he tenido a lo largo de la carrera, y en particular a los que
con su pasión me incitaron a explorar el mundo de la matemática y sus rincones más
fascinantes, al Dr. Aberle, Marta Anaya, Sebastián Grynberg y Daniel Prelat.
A Cynthia por ser una persona maravillosa, por todas las cosas lindas que vivimos juntos
y por todas las que vendrán.
A mi familia por el apoyo incondicional.
A los compañeros con los que compartı́ tantas aventuras en el camino.
A Mariano, Cecilia y Martı́n por siempre estar ahı́.
iii
Contents
Abstract
i
Acknowledgements
iii
List of Figures
vii
List of Tables
viii
Symbols
ix
1 Introduction
1.1 Motivation & Challenges . . . . . . . . . . . . . . . . . . . . . . . . . . . .
1.2 Outline . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
2 Tools
2.1 Mathematical Tools . . . . . . . . . . . . . . . . . . . . . . .
2.1.1 Group . . . . . . . . . . . . . . . . . . . . . . . . . . .
2.1.2 Subgroup . . . . . . . . . . . . . . . . . . . . . . . . .
2.1.3 Lie Group . . . . . . . . . . . . . . . . . . . . . . . . .
2.1.4 Group Homorphism . . . . . . . . . . . . . . . . . . .
2.1.5 Lie Group Isomorphism . . . . . . . . . . . . . . . . .
2.1.6 One Parameter Subgroup . . . . . . . . . . . . . . . .
2.1.7 Tangent Space . . . . . . . . . . . . . . . . . . . . . .
2.1.8 Left Action . . . . . . . . . . . . . . . . . . . . . . . .
2.1.9 Left Invariance of Functions and Vector Fields . . . .
2.1.10 Left Trivialization . . . . . . . . . . . . . . . . . . . .
2.1.11 Left Trivialized Derivative . . . . . . . . . . . . . . . .
2.1.12 Lie Algebra . . . . . . . . . . . . . . . . . . . . . . . .
2.1.13 Lie Algebra Isomorphism . . . . . . . . . . . . . . . .
2.1.14 The Lie Algebra of a Lie Group . . . . . . . . . . . . .
2.1.15 The group GL(n, R) . . . . . . . . . . . . . . . . . . .
2.1.16 Matrix Lie Group . . . . . . . . . . . . . . . . . . . .
2.1.17 Matrix One Parameter Subgroup Generator . . . . . .
2.1.18 Matrix Lie Algebra . . . . . . . . . . . . . . . . . . . .
2.1.19 The Special Orthogonal group of dimension 3, SO(3) .
iv
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
1
4
5
8
8
8
9
10
10
10
11
11
11
12
12
13
13
13
14
14
14
14
15
15
Contents
2.2
2.3
2.4
v
2.1.20 The so(3) Matrix Lie Algebra and The “Hat Map” . . . . .
2.1.21 Some properties of the “Hat Map” . . . . . . . . . . . . . .
2.1.22 Analytic Property of so(3) . . . . . . . . . . . . . . . . . . .
2.1.23 Rodrigues Formula in so(3) . . . . . . . . . . . . . . . . . .
2.1.24 Rotation Angle between two elements of SO(3) . . . . . . .
2.1.25 Decomposition of the Difference Formula . . . . . . . . . .
2.1.26 Euler Angles as Exponential Coordinates . . . . . . . . . .
2.1.27 The Special Euclidean Group SE(3) and its algebra . . . .
2.1.28 Time Derivative of Elements of SO(3) . . . . . . . . . . . .
Rigid Body Kinematics and Dynamics . . . . . . . . . . . . . . . .
2.2.1 Configuration . . . . . . . . . . . . . . . . . . . . . . . . . .
2.2.2 Orientation . . . . . . . . . . . . . . . . . . . . . . . . . . .
2.2.3 Attitude . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
2.2.4 Configuration Space and Configuration for the Rigid Body
2.2.5 Dynamical Properties of the Rigid Body . . . . . . . . . . .
2.2.6 Kinetic Energy . . . . . . . . . . . . . . . . . . . . . . . . .
2.2.7 Translational Kinematics & Dynamics . . . . . . . . . . . .
2.2.8 Rotational Kinematics . . . . . . . . . . . . . . . . . . . . .
2.2.9 Rotational Dynamics . . . . . . . . . . . . . . . . . . . . . .
Matrix Norms . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
2.3.1 Induced Norms . . . . . . . . . . . . . . . . . . . . . . . . .
2.3.2 Matrix 2-norm . . . . . . . . . . . . . . . . . . . . . . . . .
2.3.3 Frobenius Norm . . . . . . . . . . . . . . . . . . . . . . . .
2.3.4 Bounds on Vectors multiplied by Matrices . . . . . . . . . .
Stability of Dynamical Systems . . . . . . . . . . . . . . . . . . . .
2.4.1 Lyapunov Stability . . . . . . . . . . . . . . . . . . . . . . .
3 Attitude Control
3.1 Attitude Representations . . . . . . . . . . . . . . . . .
3.2 Rigid Body Dynamics . . . . . . . . . . . . . . . . . . .
3.3 The Attitude Control Problem . . . . . . . . . . . . . .
3.4 Attitude Control Laws in SO(3) . . . . . . . . . . . . .
3.4.1 Attitude Error Dynamics . . . . . . . . . . . . .
3.4.2 Error Tracking Function . . . . . . . . . . . . . .
3.4.3 Attitude Error Vector . . . . . . . . . . . . . . .
3.4.4 Angular Velocity Error Vector . . . . . . . . . .
3.4.5 Attitude Error Dynamics . . . . . . . . . . . . .
3.4.6 Attitude Control Law . . . . . . . . . . . . . . .
3.4.7 Lyapunov Function for the Attitude Control Law
3.4.8 Summary of the results on Attitude Control . . .
3.4.9 Units . . . . . . . . . . . . . . . . . . . . . . . .
4 Robust Attitude Control
4.1 Aerodynamic Perturbations . . . . . . . . . . .
4.2 Perturbations due to Measurement Inaccuracies
4.3 Robustization . . . . . . . . . . . . . . . . . . .
4.4 Perturbed Errors Vectors . . . . . . . . . . . .
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
15
16
17
18
19
20
20
21
22
23
23
23
23
24
25
25
26
26
27
27
27
27
28
28
28
29
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
30
30
32
32
33
33
33
34
35
37
38
39
43
43
.
.
.
.
45
45
46
47
47
.
.
.
.
.
.
.
.
.
.
.
.
Contents
4.5
4.6
vi
Robustization . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 50
Summary . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 53
5 Bounds on the sample time
5.1 SZH Analysis . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
5.2 Bound on the Maximum Sample Time . . . . . . . . . . . . . . . . . . .
5.3 SZH Results for Asymptotically Stable Systems . . . . . . . . . . . . . .
5.3.1 Bound on the Sample Time for the Attitude Controller in SO(3)
5.3.2 Bound on the Sample Time for the Robust Attitude Control Law
in SO(3) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
.
.
.
.
55
56
57
59
60
. 63
6 Controller Design
67
7 Results and Discussion
7.1 UAV model . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
7.2 Choice of Error Measurement Function . . . . . . . . . . . . . . . . . . . .
7.2.1 A note on the bound on the sample time . . . . . . . . . . . . . .
7.3 Effect of the gains on the error and sample time . . . . . . . . . . . . . .
7.4 Angular velocity and acceleration bounds derived from different flight modes
7.4.1 “Super acrobatic” flight mode . . . . . . . . . . . . . . . . . . . . .
7.4.2 “Acrobatic” flight mode . . . . . . . . . . . . . . . . . . . . . . . .
7.4.3 “Stable” flight mode . . . . . . . . . . . . . . . . . . . . . . . . . .
7.4.4 Comparison between different flight modes . . . . . . . . . . . . .
7.5 Simulation Setup . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
7.6 Simulations . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
7.6.1 Stabilization . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
7.6.2 Trajectory Tracking . . . . . . . . . . . . . . . . . . . . . . . . . .
70
70
71
72
72
74
75
76
77
78
79
81
81
84
8 Conclusion
88
8.1 Conclusions . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 88
8.2 Future Work . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 89
Bibliography
90
List of Figures
1.1
Example of a quadrotor UAV. For reference, the distance between rotor
axis is 450mm in this model. . . . . . . . . . . . . . . . . . . . . . . . . .
2
2.1
2.2
Overview of Mathematical Tools . . . . . . . . . . . . . . . . . . . . . . . 9
Attitude as a Linear Transformation . . . . . . . . . . . . . . . . . . . . . 24
3.1
3.2
The Double Cover Problem . . . . . . . . . . . . . . . . . . . . . . . . . . 31
The Attitude Error Function and the Attitude Error Vector . . . . . . . . 35
4.1
Error Ellipse . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 52
5.1
5.2
SZH Implementation is not Whole System Discretization . . . . . . . . . . 57
Robust Step Time Bound: Too conservative . . . . . . . . . . . . . . . . . 66
7.1
7.2
7.3
7.4
7.5
7.6
7.7
7.8
7.9
7.10
7.11
7.12
7.13
7.14
7.15
7.16
Error Measurement Function e(ε) . . . . . . . . . . . . . . . . . .
Error and Max Time Step vs. Gains . . . . . . . . . . . . . . . .
Error Ellipses for Selected Gains . . . . . . . . . . . . . . . . . .
Gains and Max Time Step for the “super acrobatic” flight mode
Gains and Max Time Step for the “acrobatic” flight mode . . . .
Gains and Max Time Step for the “stable” flight mode . . . . . .
Max Time Step for different flight modes . . . . . . . . . . . . .
Simulation Setup . . . . . . . . . . . . . . . . . . . . . . . . . . .
Simulation Visualization . . . . . . . . . . . . . . . . . . . . . . .
Simulation Results for Stabilization . . . . . . . . . . . . . . . . .
Random Gains vs. Best Gains . . . . . . . . . . . . . . . . . . . .
Simulation: Trajectory Tracking . . . . . . . . . . . . . . . . . .
Simulation: Trajectory Tracking (detail) . . . . . . . . . . . . . .
Simulation: Trajectory Tracking (detail) . . . . . . . . . . . . . .
Trajectory Tracking Error . . . . . . . . . . . . . . . . . . . . . .
Force Commanded to Opposing Rotors to perform the Flip . . .
vii
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
72
73
74
76
77
78
79
80
80
82
83
84
85
86
86
87
List of Tables
3.1
Attitude Error and its Dynamics . . . . . . . . . . . . . . . . . . . . . . . 38
4.1
Bounds used for Robustization . . . . . . . . . . . . . . . . . . . . . . . . 54
5.1
5.2
Time Step Bound and required Constants . . . . . . . . . . . . . . . . . . 63
Constants required for the Robust Time Step Bound . . . . . . . . . . . . 66
7.1
7.2
7.3
7.4
Parameters used for Numerical Results . . . . . . . . .
Parameters for “super acrobatic” flight mode . . . . .
Summary of the parameters used for “acrobatic” flight
Parameters for “super acrobatic” flight mode . . . . .
viii
. . . .
. . . .
mode.
. . . .
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
71
76
77
77
Symbols
c
Cross Gain
N ·m·s
eR
Attitude Error Vector
R3 vector, unitless
eΩ
Angular Velocity Error Vector
R3 vector, rad/s
J
Inertia Matrix
R3x3 matrix, kg · m2
kR
Attitude Error Gain
N ·m
kΩ
Angular Velocity Error Gain
N ·m·s
R
Attitude
R3x3 matrix, unitless
Rd
Attitude Command
R3x3 matrix, unitless
TSM AX
Maximum Time Step
ms
V
Lyapunov Function Candidate
J
¯
Measured Value of units of δ
Bound on ∆
units of ∆
Perturbation Vector associated with R3 vector, units of λm ()
Maximum Eigenvalue of Matrix units of λM ()
Minimum Eigenvalue of Matrix units of Ω
Angular Velocity
R3 vector, rad/s
Ωd
Angular Velocity Command
R3 vector, rad/s
ix
Chapter 1
Introduction
Unmanned Aerial Vehicles are aerial vehicles that can fly autonomously without the need
of a pilot or human controller. In the past, most UAVs were aircrafts usually smaller
than commercial manned airplanes but flying by the same principles of lift generated
by aerodynamic profiles. Vertical lift UAVs like autonomous helicopters or multi-rotors
were not so widespread mainly because of the high requirements in computation power,
sensors, and propulsion associated with their autonomous flight.
With the advancement of different fields of technology, the last decade has seen an unprecedented development and adoption of UAVs, mainly of the vertical lift type. New
sensor technologies like MEMs allow for small, low power, high precision inertial measurement units. Global positioning systems like GPS allow for longer mission range.
New processor technologies allow for fast, low power computation and vision-based navigation. Miniaturization of RF technologies allow for lower power, longer range communications. New material science applications allow for smaller, faster, lighter and more
powerful motor technologies like brushless motors. New battery technologies like LiPO
allow for low weight, high current, high capacity batteries.
Integration of all these new technologies with advanced control algorithms made possible
a new era in UAV technology where the new family of quadrotor or multi-rotor aircraft
entered the scene previously dominated by airplanes and helicopters. Multi-rotor UAVs
are vertical lift UAVs with several rotors spinning around parallel axes at variable speed
each, usually arranged in one or two planes.
Applications include a wide and growing range of fields including artistic performances,
photography and video production, precision agriculture, geographic information systems, and remote sensing just to name a few. Remarkable examples are the search and
rescue monitoring mission after the Fukushima nuclear incident [1], search and rescue in
1
Chapter 1. Introduction
2
the wilderness [2], precision 3D mapping [3], and its use by biologists to study the flight
patterns of bats [4].
Further applications may be found for swarms or teams of UAVs in formation flying [5],
where precise coordination between several UAVs can lead to improvements in items
such as area of coverage, mission reliability and small load transportation.
The most common multi-rotor UAV is the quadrotor [6], with 4 rotors attached to
a cross-shaped airframe. In general, the size of these machines does not exceed half
meter in diameter, and its mass is usually less than 1kg. For this reduced size they
are referred to as micro-UAVs although smaller form factors named nano-UAVs are
becoming popular. An example is shown in Figure 1.1.
Figure 1.1: Example of a quadrotor UAV. For reference, the distance between rotor
axis is 450mm in this model.
Rotors are arranged in two counterrotating pairs and each rotor can be controlled separately. This is done to achieve zero angular momentum transfer with the air when
hovering, i.e. to keep the UAV with constant yaw. Control is achieved by differentially
varying the speeds of the rotors, and thus the thrust they produce, creating an imbalance
in force between opposing sides of the craft. In this way rolling and pitching movements
can be performed. A difference between the counter-rotating rotors speeds makes the
rotors produce a yawing torque. Total thrust is achieved by simultaneously varying the
speed of the four rotors.
With these commands alone the craft cannot directly produce thrust in the plane of
the rotors, so, in order to move in a direction contained in the current plane of the
rotors it must first reorient itself. This is due to the fact that it is underactuated, it
is a system with 4 control actions moving with the 6 degrees of freedom of rigid body
Chapter 1. Introduction
3
rotation and translation. To follow a trajectory it must orient itself in a way such that
the combination of total thrust and torque allows the UAV to move along the trajectory.
For example, if the UAV is hovering and is commanded to move to the right, it will have
to slightly incline itself so the total thrust actually pushes the UAV to the right.
This results in position control strongly relying on attitude control. Although the system is underactuated, its rotational part is fully actuated, as the rotors can achieve
torque in three perpendicular axes. Since the rotational dynamics is decoupled from the
translational dynamics, the rotational part of the problem can be studied on its own.
Then, position control can be implemented using the underlying attitude controller to
orient the craft. By a combination of attitude control and thrust control, trajectories
can be followed.
The powerful motors, their location on the airframe and the relatively small size of the
craft make the dynamics of the system very fast. Stable flight can only be achieved
when the thrusts of the rotors are carefully computed in a feedback loop that includes
attitude and angular velocity sensor readings. The control law of this loop is a solution
to the attitude control problem.
The attitude control problem refers to the problem of applying torques to the craft,
seen as a rigid body, such that it follows a certain attitude or orientation over time.
The physics of the problem is the physics of rigid body rotations and it involves highly
nonlinear dynamics. Several solutions to the attitude control problem for quadrotor
UAVs have been proposed. Linear control laws often in the forms of PIDs showing
extreme simplicity have been used [7], but the range of operation conditions is limited.
Solutions of increasing complexity like neural networks [8], feedback linearization and
backstepping [9] and sliding modes [10] solutions have been proposed. These solutions
increase the range of operation in terms of allowable attitudes and perturbation rejection,
but as they depend on non-global or unique representations of the rotations of the rigid
body, they do not provide global convergence properties, that is, there are attitudes
outside the operation range for which the craft may be out of control and unable to
stabilize itself.
Lee [11] provided a robust global control law which is able to reject unmodeled perturbations while attaining almost global convergence properties for the attitude control
problem. This is achieved by treating the physics of the problem in a natural geometric way instead of relying on representations or linearizations thereof, which induce
singularities and artifacts.
To actually implement this control law, the control system must read the data from the
sensors, compute the control action (usually using a digital computer or microprocessor)
Chapter 1. Introduction
4
and pass the command to the rotors. Although the discrete implementation of continuous control laws has been extensively studied in the literature (for example see [12]),
and some studies have been carried out regarding attitude control and sample time [13],
no results for the particular case of almost global attitude control could be found in
the literature. Likewise, the influence of measurement errors in attitude and angular
velocity on the performance of the controller could not be found in the literature. At
last, this control law depends on gains for which no criteria on their selection could be
found.
The lack of these results limits some part of the requirements analysis for the design of
UAVs, and it also relegates several design decisions to experience-based design and trial
and error design.
1.1
Motivation & Challenges
In this work we address three sets of questions.
Firstly, to stabilize the craft the control algorithms use data provided by the navigation
subsystems. These subsystems read the raw data from the sensors and filter them
to obtain an estimate of the attitude and angular velocity. Sensor measurements are
often faulty and noisy, and may contain systematic bias. All these factors influence the
performance of the controller. The first set of questions is: Given a bound on the errors
provided by the estimation algorithm, how can we design a controller that tries to reject
them? How do errors in the estimation of the state of the craft translate to errors in
its attitude? How well can the controller track a commanded attitude when fed with an
estimation of the state of the craft which is not accurate?
Control-theoretic results for continuous time system can be obtained based on energy-like
considerations, like Lyapunov analysis. They are elegant and intuitive. The controller
we derived as the answer to the first set of questions is guaranteed to work in continuous
time. The second set of questions we will address relates to the actual implementation
of the controller in a digital system. Digital systems work in discrete time whereas
the physical systems they are controlling evolve in continuous time. How fast must we
update the control action for the system to conserve its stability properties?
Lastly, both questions give raise to a third set of questions: How is the time step related
to the error in tracking? How can we design our controller, such that when fed with
noisy and biased state estimations, it still produces the smallest possible error for the
given noisy estimation with the largest possible time step?
Chapter 1. Introduction
1.2
5
Outline
An introduction to the mathematical and physical tools used in this work is presented
in section 2. Emphasis is placed on the group structure and algebraic properties of rigid
body physics. The natural representation of rigid body attitude is the special orthogonal
group SO(3) and by focusing on this group and its related entities, geometric, coordinatefree expressions are introduced to describe its kinematics and dynamics. As coordinate
charts are used to describe this natural representation, they provide no extra benefits,
and indeed they induce artifacts and singularities. A relationship between SO(3) and
Euler angles is made explicit in section 2.1.26 because of its widespread use and because
it is a standard way to describe static attitudes. The kinematic and dynamic evolution
of the rigid body are introduced in section 2.2. A short introduction to matrix norms is
also presented in section 2.3, as they will be intensively used in later sections to bound
functions and vectors depending on matrices.
The attitude control problem is addressed in section 3. Firstly, the attitude representation is discussed in terms of the tools from chapter 2 and the choice of SO(3) as the
attitude representation and the working space for controller design is justified. This
proves to have many advantages over methods that depend on the coordinates used to
describe the underlying physics. Controllers depending on these coordinate charts may
have some practical advantages like simpler computational implementation, but they
sacrifice either globality, continuity or both. An attitude control law is introduced in
section 3.4. This controller is obtained in the same geometric, coordinate-free way as
the kinematics and dynamics are described. By making use of the tools introduced in
section 2 and Lyapunov analysis this controller is shown to be almost global and to
exhibit exponential convergence.
A robust attitude controller is proposed in section 4.5. It adds a robustization term
to the controller described in section 3 which exhibits almost global exponential convergence properties. The robust controller assumes it is working with measured or
estimated values of attitude and angular velocity. Given bounds on the error attainable
by these measurements, bounds on any unmodeled perturbation and on angular velocity, its command, and the time derivative of its command, the proposed controller can
guarantee a bound on the error in attitude and angular velocity it ultimately produces.
This bound has the shape of an ellipse in the plane spanned by the magnitude of the
attitude and angular velocity errors. The controller proves to be almost global and to
exhibit exponential convergence until it reaches this ellipse. From there on, convergence
is replaced by simple convergence to the ellipse. This controller has three free gains.
Chapter 1. Introduction
6
The sample time required for the discrete time implementation of the controller is studied
in section 5. The system is not discretized as a whole, as in other sample time analysis,
but only the controller action is modeled as discrete using its SZH implementation, while
the rest of the system is left to evolve in continuous time. Other analyses rely on the
discretization of the whole system and introduce ad hoc hypothesis and error bounds
by doing so, which are not of a physical nature, but are only an artifact of the way of
describing the system. On the other hand, the SZH implementation of the controller
is in fact a very accurate model of the real situation, where physical systems evolve in
continuous time, while the controller implemented in a digital computer updates the
control action at a fixed interval. The convergence properties of the controller are used
to obtain a bound on the maximum sample time. Bounds are found for the non-robust
version of the controller as well as for its robust version. By the way it is obtained, it
is a conservative bound. But it is a strong result because it is found analytically and
the model is a very good model of reality. The bound on the sample time depends
on the physical properties of the rigid body, namely its moment of inertia, and on the
gains of the controller. For the robust controller, the bound also depends on the bounds
used for the robustization. The results for the robust version are found to be extremely
conservative by the nature of the robustization term. Nevertheless, they are also found
analytically and provide a good starting point for controller design.
Next, the problem of controller design was addressed. The choice of the gains for the
controller is loosely restricted so that exponential convergence is achieved. This choice
is refined in section 6. The shape of the ellipse of convergence depends on the gains,
as does the bound on the sample time. Since both magnitudes depend on the gains,
they can be interrelated to find gains that obtain the minimum possible error in the
maximum possible sample time. The solution of this minimax problem is proposed as
the best choice of gains, and is affected by the precise way the errors on attitude and
angular velocity are weighted in an error measurement function, so that the best choice
of gains will vary according to the application requirements.
Lastly, the results from previous sections are studied numerically in section 7 and tested
against a UAV model by means of simulations in section 7.6. The UAV under study is
first described, then bounds for the robustization are obtained based on the measurement
errors and the physical properties of the UAV. Additional bounds are derived from the
constraints imposed on the angular velocity, its command and the time derivative of
its command by different flight modes. With these bounds, the shape of the error
measurement function and the bound on the sample time are explored. Then, the
simulation setup is described. Controller performance with respect to controller sample
time is shown by simulating the stabilization from a random attitude with different
controller time steps. The results show that the bounds found analytically are very
Chapter 1. Introduction
7
conservative and larger time steps can safely be used. But when used in conjunction
with the results of controller design, they provide a useful tool to choose the gains
and thus design the controller to perform as good as possible with respect to the error
measurement function. The trajectory tracking capabilities are also shown by simulation.
Lastly, the conclusion and future work are discussed in section 8.
Chapter 2
Tools
In this chapter we present the main results regarding the attitude and position kinematics
and dynamics for a rigid body evolving in the full SE(3) configuration space. We follow
the geometric approach presented by Jurdevic [14], Lewis and Bullo [15], and Lee [16].
[17]. We introduce the required mathematical tools we will be using. Then, we develop
the basics of attitude kinematics and dynamics in a geometric, coordinate free way.
2.1
Mathematical Tools
Figure 2.1 shows an overview of the different mathematical tools presented and their
relationship.
2.1.1
Group
Given a set G, and a binary operation ?, such that for any two elements x, y ∈ G it
assigns to them another element in G,
?:G×G→G
(x, y) → x ? y
the pairing (G, ?) is called a Group if
(1) ? is associative: x ? (y ? z) = (x ? y) ? z ∀x, y, z ∈ G
(2) ? has an identity element e ∈ G: x ? e = x ∀x ∈ G.
(3) every element x has an inverse element x−1 , i.e. x ? x−1 = x−1 ? x = e.
8
Chapter 2. Tools
9
Figure 2.1: Overview of the main mathematical tools presented in this section, physical quantities and their relationship.
Usually, the group is written just G if the operation is implicit from the context.
An example of a group is the integers with the addition operation. The natural numbers
lack the identify element for the addition operation, so they provide an example of what
is not a group.
2.1.2
Subgroup
Given a Group (G, ?), if a subset H ⊂ G and the operation ? also form a Group, this
Group is called a Subgroup of (G, ?) and is denoted by (H, ?).
An example of a subgroup of the integers is the set of even integers (with zero considered
even) with the same addition operation, since adding two even integers yields an even
integer. However, the set of odd integers provide an example of what is not a subgroup,
since adding two odd integers yields an even integer. Although the resulting even integer
is in the group of integers, it is not in the set of odd integers, so odd integers with the
Chapter 2. Tools
10
usual addition operation do not form a group and are not a subgroup of the integer
group.
2.1.3
Lie Group
A Lie Group is a Group which is also a manifold and for which the group operation and
its inverse are smooth.
An example of a Lie Group is the real numbers with the addition operation. A counterexample is the integers with the addition operation, because of it lacks smoothness.
2.1.4
Group Homorphism
Given two groups, (G, ?) and (H, •), a map ρ : G → H is called a Group Homorphism, if
applying the ρ map to the ? operation of two elements of G is the same that applying the
• operation to the images in H of these elements through ρ, i.e. ρ (x ? y) = ρ (x) • ρ (y)
∀x, y ∈ G.
An example of a homomorphism is the identification of a number with its parity, and
the sum with the parity product. Take the group (Z, +), the group (H, ?) with H =
{even, odd}, and the ? operation defined as commutative and verifying even ? odd = odd,
even ? even = even and odd ? odd = even. The map ρ(n) taking values even if n is even
and odd if n is odd is a group homomorphism, and it allows the abstraction of the parity
property of integers under summation.
Another example is the map that identifies real numbers with angles of rotation in the
plane. The composition of two rotations is a rotation. Composing a rotation by an angle
α with a rotation by an angle β results in a rotation of angle α + β.
The restriction of some elements of a group to create a subgroup is also an example of
a homomorphism.
2.1.5
Lie Group Isomorphism
A Lie Group Isomorphism is a homomorphism between Lie Groups that is smooth and
bijective. Examples will be given in what follows.
An example is the exponential map, which is an isomorphism between the group of the
real numbers with the addition as group operation and the positive real numbers with
the product as group operation.
Chapter 2. Tools
2.1.6
11
One Parameter Subgroup
A One Parameter Subgroup of a Lie Group G is the image of a smooth group homomorphism ρ : R → G, denoted by t → g(t).
As this map smoothly assigns elements in G to values in R, it may be seen as a curve
in G.
2.1.7
Tangent Space
Due to the smoothness properties, through an element g ∈ G pass infinitely many
continuous differentiable curves γ(t), defined from an open real interval t ∈ (−r, r) to
G. The equivalence class of all curves such that γ(0) = g deffines a linear space which
is called the Tangent Space of G at g, and is denoted by Tg G.
The derivatives of the curves γ evaluated at 0 give the structure of this linear space, and
some of these derivatives may be chosen to construct a basis for this linear space. The
dimension of this linear space is the same as the dimension of the group.
For example, for a point a on the sphere, the tangent space is the space of vectors that
are tangent to the sphere when pinned at point a.
2.1.8
Left Action
Given a Lie Group (G, ?), the Left Action of g ∈ G is the map Lg defined by
Lg : G → G
h→g?h
An example of left action is found by identifying the points of a sphere with rotations.
Each element is a point that may represent a rotation starting at the north pole and
ending at said point. The left action of an element on the points of the sphere is to
rotate all the points by the rotation it represents.
The map Lg inherits its properties of the group action, so it is a smooth map with smooth
inverse Lg−1 . For g, the tangent map Te Lg : Te G → Tg G is a natural isomorphism
between the tangent space at g and the tangent space at the identity element e.
For example, every vector tangent to the sphere at a point a (i.e. belonging to the tangent
space at a ∈ G), when left acted with the rotation represented by a− 1, is transformed
Chapter 2. Tools
12
in an unique way such that it becomes tangent to the sphere when pinned at the north
pole.
For two elements of two different tangent spaces, α ∈ Ta G and β ∈ Tb G, comparison
and algebraic operations are not possible at first glance because they lie in different
spaces. But with the identifications Te La and Te Lb , both can be treated as elements of
the tangent space at identity, and engage in comparison and algebraic operations. For
this to happen the tangent spaces must preserve its shape when left trivialized, which
will be seen next.
2.1.9
Left Invariance of Functions and Vector Fields
A function φ : G → R is said to be Left Invariant if f (h) = f (g ? h). Likewise, a vector
field χ : G → Rn is said to be Left Invariant if χ (g ? h) = Th Lg (χ (h)). This implies
that χ (g) = Te Lg (χ (e)), meaning that Left Invariant functions and vector fields are
determined by their values at the identity element.
Extending the previous example, because of the properties of rotations, the length of
the vector tangent at a is the same as the length of the vector rotated to the north
pole. This means that the length (seen as a function) is left invariant with respect to
rotations.
A Left Invariant Vector Field taking the value α at the identity is denoted by αL , i.e. it
is defined as αL : g → Te Lg (α).
To allow for comparison or algebraic operations between elements of different tangent
spaces and their derivatives, Left Trivialization and Left Trivialization of the Derivatives
are introduced.
2.1.10
Left Trivialization
The smooth map αg : T G → G × Te G defined by αg → g, Te Lg−1 α is called the
Left Trivialization of α at g, and is a natural identification between the tangent space
at g and the tangent space at identity, i.e. for the tangent vector γg = (g, γ) ∈ T G,
its relationship to (g, α) ∈ G × Te G may be written as (g, γ)T G → (g, α)G×Te G , with
γ = Te Lg (α) = gα.
So for the previous example, by specifying the point a of the sphere at which the vector
tangent to the sphere is to be pinned, the vector specified at the north pole suffices to
uniquely determine the vector pinned at a for any choice of a.
Chapter 2. Tools
2.1.11
13
Left Trivialized Derivative
For a function Ψ : SO(3) → R its Left Trivialized derivative at g ∈ SO(3) denoted by
Dg Ψ : SO(3) → T ∗ G is defined by
Dg Ψ(g) · γ =
d
|t=0 Ψ (h(t)) · γ
dt
(2.1)
where h(t) is a One Parameter Subgroup such that h(0) = g and γ = gα with α ∈ Te G
is an element of the tangent space γ ∈ Tg G called a variation of g.
Extending the previous example, a function that assigns real numbers to every point
of the sphere can be defined. The variation of this function over the sphere can be
studied by means of its left trivialized derivative. For example if the function measures
the smallest distance on the sphere between the north pole and point a, this derivative
will be a vector showing in which direction the distance increases the most. It will be
represented by left trivialization as a vector pinned at the north pole, and to actually
find the direction it must be left acted by a. As stated previously, trivialization allows
the comparison of value the derivative at different points in an unique way. For this
particular function, the result for each point of the sphere a will be a vector pinned at
the north pole, of unit length, and tangent to the geodesic that connects the north pole
with a.
2.1.12
Lie Algebra
A Lie Algebra denoted (V, [·, ·]V ) is the algebra of a vector space V over R, together
with a bilinear operation [·, ·] : V × V → V called bracket which satisfies
(1) anticommutativity: [α, β] = − [β, α], ∀α, β ∈ V
(2) the Jacobi identity: [α, [β, γ]] + [β, [γ, α]] + [γ, [α, β]] = 0.
2.1.13
Lie Algebra Isomorphism
Given two Lie Algebras (V, [·, ·]V ) and (W, [·, ·]W ) , a map ρ : V → W is a Lie Algebra
Isomorphism if it satisfies
(1) ρ ([α, β]V ) = [ρ (α) , ρ (β)]W ∀α, β ∈ V
(2) linearity: ρ (α + β) = (α) + (β)
Chapter 2. Tools
14
(3) bijectivity
When there exists one such isomorphism, both algebras are said to be isomorphic, denoted by V ' W . As it is a linear map, it is smooth. If the bijectivity condition is not
met, it is called a homomorphism instead.
2.1.14
The Lie Algebra of a Lie Group
The Lie Algebra g of a Lie Group G is identified with the tangent space at the identity
g ' Te G by defining the bracket [·, ·] : g × g → g given by [α, β] = [αL , βL ]e . It assigns a
bracket operation to the Left Invariant Vector Fields on G.
2.1.15
The group GL(n, R)
The group GL(n, R) consists of the square n × n matrices of real numbers.
2.1.16
Matrix Lie Group
A Matrix Lie Group is a subgroup of GL(n, R).
2.1.17
Matrix One Parameter Subgroup Generator
Given a Matrix Lie Group G, the matrix A ∈ Rn×n is a Matrix One Parameter Subgroup
Generator if for t ∈ R the map t → exp(tA) takes values on G. The matrix exponential
is defined as the solution of the differential equation
d
exp(tA) = Aexp(tA)
dt
The power series
exp(B) =
∞
X
Bk
k=0
k!
(2.2)
(2.3)
verifies equation (2.2) with B = At. Power series will be studied in section 2.1.22.
From the properties of the exponential map it is shown that the set of Matrix One
Parameter Subgroup Generators is a subspace of Rn×n which is closed under the matrix
commutator defined by
[A, B] = A · B − B · A
Chapter 2. Tools
15
with the dot representing the usual matrix product. This induces a Lie Algebra structure
for the generators of G. Since the set of the Matrix One Parameter Subgroup Generators
of the group G is a vector space of dimension n, it is identified with the tangent space
at identity of G, Te G. The set of Matrix One Parameter Subgroup Generators of the
group GL(n, R) is denoted by gl(n, R).
2.1.18
Matrix Lie Algebra
A Matrix Lie Algebra is a subspace of Rn×n closed under the bracket defined by matrix
commutator [α, β] = α · β − β · α, with the dot representing the usual matrix product.
It is the algebraic structure of the tangent space at identity of a Matrix Lie Group, and
since for Left Invariant Vector Fields the tangent space at identity is isomorphic to the
tangent space at an element g, it is the algebraic structure of the tangent spaces of G.
The Matrix Lie Algebra is a subalgebra of gl(n, R).
2.1.19
The Special Orthogonal group of dimension 3, SO(3)
The Special Orthogonal group of dimension 3, denoted SO(3), will be used to describe
the attitude. It is defined as the set of proper orthogonal 3 × 3 real matrices
SO(3) = {R ∈ R3×3 | RT · R = I, det (R) = 1}
(2.4)
Left actions of SO(3) on itself or on elements of R3 are identified with rotations, since it
describes the set of shape preserving (isometric) transformations in R3 which leave the
origin fixed. The configuration space for the rotations of a rigid body is identified with
SO(3). The velocity phase space of the free rigid body is the tangent space T SO(3).
For a matrix to be in SO(3) it must satisfy
R−1 = RT
2.1.20
(2.5)
The so(3) Matrix Lie Algebra and The “Hat Map”
The Matrix Lie Algebra of skew symmetric 3 × 3 real matrices so(3) is defined as
so(3) = {S ∈ R3×3 | S + S T = 0}
(2.6)
Chapter 2. Tools
16
Matrices S ∈ so(3) are identified by S = ŝ with vectors s ∈ R3 by constructing a Lie
Algebra Isomorphism (s, ×) → (ŝ, [·, ·]) identifying the bracket in so(3) with the usual
vector cross product in R3 . This isomorphism is called the “hat map”

s1


0
−s3



 → ŝ =  s3
s=
s
2



s3
−s2
0
s1
s2


−s1 

0
(2.7)
ˇ A canonical basis for the set
and its inverse is called the inverse hat map denoted by .
of One Parameter Subgroup Generators from SO(3) is given by

0 0
0




ê1 = 
 0 0 −1 
0 1 0

0
0 1




ê2 = 
 0 0 0 
−1 0 0

0 −1 0

ê3 = 
 1
0
0
0


0 

0
(2.8)
and they form a basis of so(3). They may be interpreted as infinitesimal rotations
about each of the coordinate axes. Furthermore, the map s = (s1 , s2 , s3 )T → ŝ can be
expressed as
ŝ = s1 ê1 + s2 ê2 + s2 ê3
(2.9)
The inverse map ŝ → (s1 , s2 , s3 )T , which maps elements from so(3) back into R3 , written
ˇ : so(3) → R3 , is given by
as sk = −εijk ŝij
(2.10)
with εijk the Levi-Civita symbol, taking values +1 if ijk is an even permutation of (123),
−1 if ijk is an odd permutation of (123) and 0 otherwise. A double summation over i
and j is implied. This inverse map is included here for completeness and it will only
be used in the numerical implementation and simulations, but for the proofs in what
follows we will use properties of the hat map to relate elements in so(3) to elements of
R3 because it is more elegant and intuitive to do so instead of twiddling with indices
and coordinates.
2.1.21
Some properties of the “Hat Map”
Several properties of the hat map can be readily proved by direct computation.
ŝ2 = ssT − ksk2 I
(2.11)
Chapter 2. Tools
17
ŝ2k+1 = (−1)k ksk2k ŝ
(2.12)
Note that the usual matrix product of two elements of so(3) is usually not in so(3). The
closedness is with respect to the bracket operation, not matrix product.
The hat map may also be interpreted as the linear operator associated to the cross
product since
x̂y = x × y
(2.13)
and by this property, x generates the null space of x̂,
x̂x = 0
(2.14)
1
T
= −xT A − AT ˇ
trace (Ax̂) = trace x̂ A − A
2
(2.15)
Also, for the trace
and for the sum of looks-like-transposed terms
(Ax)ˆ= x̂
T
1
1
trace (A) I − A +
trace (A) I − A
x̂
2
2
(2.16)
and if R ∈ SO(3)
Rx̂RT = (Rx)ˆ
2.1.22
(2.17)
Analytic Property of so(3)
Equations (2.11) and (2.12) give a closed form to compute any positive integer power of
an element of so(3), and this allows us to build power series, in particular Taylor series.
Negative powers do not exist since the elements of so(3) are singular matrices. As all
positive integer powers of so(3) elements exist, the convergence of the formula will be
linked to the convergence of the series for the real variable case.
From this, the sine and cosine can be defined as
sin(x̂) =
∞
X
x̂2k+1
(2k + 1)!
(2.18)
∞
X
x̂2k
(2k)!
(2.19)
k=0
cos(x̂) =
k=0
They satisfy
Chapter 2. Tools
18
sin(x̂) =
exp(x̂) − exp(−x̂)
2
(2.20)
cos(x̂) =
exp(x̂) + exp(−x̂)
2
(2.21)
Odd functions such that f (α) = −f (−α) turn out to have power series in terms of so(3)
elements which also lie in so(3), whereas even functions such that f (α) = f (−α) have
power series representations which are symmetric, f (x̂) = (f (x̂))T . A function neither
even nor odd will be a combination of a symmetric and antisymmetric part, given by
their even and odd subseries respectively.
In particular, sin(x̂) ∈ so(3) and cos(x̂) is symmetric.
2.1.23
Rodrigues Formula in so(3)
The series expansion of the exponential was given in section 2.1.17 without an explicit
way to compute the powers of the matrix x̂ ∈ so(3) as
exp(x̂) =
∞
X
x̂k
k=0
(2.22)
k!
Applying formulas (2.11) and (2.12), the matrix exponential can be shown to be
exp (ŝ) = I +
sin (ksk)
1 − cos (ksk) 2
ŝ +
ŝ
ksk
ksk2
(2.23)
which can be related to the Rodrigues Formula in R3 , giving the rotation of an angle
θ about an axis n, identifying n with n =
double cross product with n × n× =
ŝ2
ksk2
s
ksk ,
the cross product with n× =
ŝ
ksk ,
the
and the angle of rotation θ with θ = ksk
This map verifies
exp (−ŝ) = (exp (ŝ))T
(2.24)
exp (−ŝ) = (exp (ŝ))−1
(2.25)
and
so (exp (ŝ))T = (exp (ŝ))−1 , which means that (exp (ŝ)) ∈ SO(3).
Chapter 2. Tools
19
This establishes a Group Isomorphism between elements of so(3) and SO(3). Every
element of SO(3) can be written as the exponential of an element in so(3). The inverse
of the exponential map is the logarithm map, which is not unique. A closed formula like
equation (2.23) exists for the logarithm.
2.1.24
Rotation Angle between two elements of SO(3)
The previous results imply that the elements of so(3) may be regarded in two different
ways. The first way will be seen in 2.1.28 and interprets them as instantaneous angular
velocities. The second way is to think of them as just a parametrization of SO(3), in
which an element X = exp(x̂) is the result of rotating the identity element by an angle
kxk around the axis defined by x where x ∈ R3 .
Furthermore, an element X ∈ SO(3) can be rotated to another one Y by the left action
of Y X T because of the orthogonality property, Y X T · X = Y . This can be conceived as
a rotation about some axis n ∈ R3 with an angle kθk.
To find n and θ, we note that for this rotation the axis remains fixed, so Y X T n = n.
T
Additionally, the inverse rotation also leaves n fixed, so Y X T n = n. Subtracting
T
both equations yields Y X T − Y X T n = 0, so the null space of the parenthesis
term contains n.
Recalling equation (2.14), the so(3) element corresponding to the rotation axis is found
from n̂n = 0 so the term in parentheses is proportional to n̂. To take into account the
rotation angle θ, the exponential from (2.23) must be used. By rearranging terms, the
so(3) element identified with the rotation from X to Y can be written as
ŝ =
1
XT Y − Y T X
2
where the angle is given by sin(θ) = ksk and the direction n =
(2.26)
s
ksk .
The relationship to
the sine in the norm can be obtained by recalling the fact that R = exp(x̂). By equation
(2.18) this can be related to a sine in so(3) as
ŝ = sin(x̂)
from where the previous identities arise.
(2.27)
Chapter 2. Tools
2.1.25
20
Decomposition of the Difference Formula
An additional property involving elements of so(3) and SO(3) is the decomposition
of the difference of two elements R1 , R2 ∈ SO(3) obtained by left and right pre and
post-multiplication of the square roots of R1 and R2 given by
R1 − R2 =
p p p T p T p p
R1
R1 R2 − R1
R2
R2
(2.28)
Note that the difference itself is not an element of SO(3), but each square root is, and
√
R corresponds to the rotation by half the angle represented by R around the same
proper axis of rotation. The term between brackets may be further identified by equation
(2.26) with an element of so(3) corresponding to a sine, so
R1 − R2 =
ŝ =
p
R1
p
R1 · ŝ ·
p
R2
p T p Tp ˆ
R2 − R1
R2 = sin(ξ)
(2.29)
(2.30)
for some ξˆ ∈ so(3).
2.1.26
Euler Angles as Exponential Coordinates
The group SO(3) may be parametrized according to a decomposition of a rotation matrix
R as 3 successive rotations around the three coordinate axes. By specifying an order of
3 successive rotations and the angle of each rotation, a 3-parameter representation of R
is obtained. The default order of rotations is Z → Y → X, where the angles are called
yaw ψ, pitch θ and roll φ respectively, but other orders of rotations may be specified.
The map Euler : (−π, π] × − π2 , π2 × (−π, π] → SO(3) given by
(ψ, θ, φ) → exp (ψê3 ) exp (θê2 ) exp (φê1 )
(2.31)
with closed form

c(θ) c(ψ)

R'
 −c(θ) s(ψ)
−s(θ)
−c(φ) s(ψ) + c(ψ) s(θ) s(φ)
c(φ) c(ψ) + s(θ) s(φ) s(ψ)
c(θ) s(φ)
s(φ) s(ψ) − c(φ) c(ψ) s(θ)


−c(ψ) s(φ) + c(φ) s(θ) s(ψ) 

c(θ) c(φ)
(2.32)
(where sin and cos were abbreviated by their initials) is a way of describing elements of
SO(3) in terms of only three parameters. As it is built upon three exponentials and the
Chapter 2. Tools
21
identity element is covered by this map, it gives a coordinate chart for a neighborhood of
the identity element of SO(3). The pitfall is that this map is not bijective, as the subset
{R ∈ SO(3) | |R31 | = 1} cannot be expressed in terms of these parameters. Excluding
these elements, the inverse map is given by
(ψ, θ, φ) =
q
2 + R2
,
Atan(R
,
R
)
Atan(R21 , R11 ), Atan −R31 , R11
32
33
21
(2.33)
which is defined for R ∈ SO(3) − {R ∈ SO(3) | |R31 | = 1} and the map is a bijection.
Other rotation sequences define the maps differently, but it is a topological result that
3 parameters are not enough to parametrize the whole of SO(3). In fact, the minimum
number of parameters to uniquely represent SO(3) is 5, as will be seen later.
For example, if the restriction is dismissed in this case and the intervals for (ψ, θ, φ) are
taken as closed, (ψ, θ, φ) = (− π2 , π2 , π2 ) and (φ, ψ, θ) = (0, − π2 , 0) correspond to the same
value of R. Additionally, the dynamics derived of the Euler Angles representation present
singularities which are not present in SO(3) but are an artifact of this representation.
In spite of these disadvantages, Euler Angles are still a simple way of specifying static
orientations when no dynamics are implied, as, for example, initial and ending conditions.
2.1.27
The Special Euclidean Group SE(3) and its algebra
As SO(3) alone will be used to describe the attitude, it is useful to specify the position
and the attitude in a single element. This is done by combining SO(3) with vectors of
R3 in a single entity called the Special Euclidean Group of dimension 3.
SE(3) = {g ∈ R
4×4
|g=
R r
0
!
,
1
R ∈ SO(3),
r ∈ R3 }
(2.34)
and its associated Lie Algebra is an extension of so(3) to so(3) × R3 given by
se(3) = {α ∈ R
4×4
|α=
S v
0
0
!
,
S ∈ so(3),
v ∈ R3 }
(2.35)
Chapter 2. Tools
22
As elements of SE(3) will be used to specify attitude and position, elements of se(3)
will be used to specify velocity and angular velocity. The action of an element of the
group SE(3) on R3 , given by (R, r) : R3 → R3 is a rotation followed by a translation
(R, r)x → Rx + r
(2.36)
Likewise, the action of an element of the group SE(3) on SE(3) is also a rotation followed
by a translation, defined by
(R, r)(A, x) → (RA, Rx + r)
(2.37)
(R, r)−1 → (RT , −RT r)
(2.38)
and the inverse is given by
Also, given two vectors α = (ω, v), they may be identified with elements of se(3) by
means of the hat map, defined in this case as
α̂ =
2.1.28
ŵ v
0
!
0
(2.39)
Time Derivative of Elements of SO(3)
An important result about the time derivative of X ∈ SO(3) is that Ẋ can be written
as the product
Ẋ = XY
(2.40)
with Y ∈ so(3). Since X T X = I is constant, its time derivative
(X T Ẋ)T + X T Ẋ = 0
(2.41)
vanishes. Calling Y = X T Ẋ, it can be seen that X takes values in SO(3) only if Y
satisfies
YT +Y =0
(2.42)
Chapter 2. Tools
23
that is to say Y takes values in so(3). With the identification of so(3) as the tangent
space of SO(3), equation (2.40) is called kinematic equation. Further physical insight
into this naming will be gained in the next section.
2.2
Rigid Body Kinematics and Dynamics
The rigid body will be considered as a distribution of matter in space, which is free
to move around and rotate, i.e. it has no constraints on its motions, and in which the
relative position of every mass point in the body with respect to every other mass point
in the body remains constant over time.
2.2.1
Configuration
The configuration of a rigid body is a compact subset B ⊂ R3 with smooth or piecewise
smooth boundary called the shape of the rigid body, acting as the support of a Borel
measure µ, called the mass density or mass distribution of the rigid body [15].
2.2.2
Orientation
Given a configuration defined arbitrarily to be the reference configuration, an orientation
is a smooth map from any other configuration to the reference configuration. This map
may be time-varying, describing the evolution of the orientation in time, and because of
the rigidity condition it must be bijective and shape preserving (isometric).
2.2.3
Attitude
The attitude is the orientation of a rigid body relative to a reference configuration. It
may be described by a linear transformation between the reference frame, taken to be
an inertial frame fixed in space with axes {~e1 , ~e2 , ~e3 }, and a body fixed frame {~b1 , ~b2 , ~b3 },
that follows its orientation, assuming both frames are right-handed (See Figure 2.2).
Besides describing the orientation of the body in space, this linear transformation also
becomes a natural tool for describing the dynamics of the system in terms of bodyreferenced coordinates. It has two main advantages: The incremental sensor readings
are referenced to this moving frame; and the inertia tensor, intervening in the dynamics,
is constant when described relative to the body-fixed frame (assuming the mass distribution of the rigid body remains constant as required by the rigidity condition), which
is not the case for the space fixed frame.
Chapter 2. Tools
24
R
Figure 2.2: Attitude as the linear transformation (represented by the matrix R) from
a reference orientation represented by axes e1 , e2 , e3 (left) to the actual orientation of
the rigid body with axes b1 , b2 , b3 (right). The origin is usually located at the center
of mass for convenience.
The columns of the matrix R describing the transformation are the axis of the space
frame in the attitude orientation with coordinates in the reference orientation

| | |


~ ~ ~ 
R=
 b1 b2 b3 
| | |

2.2.4
Configuration Space and Configuration for the Rigid Body
The configuration space of the rigid body is identified with SE(3), the R3 part will be
identified with its translational part and the SO(3) part will be identified with its rotational part, the attitude description. As the rotational dynamics are far more complex
than the translational dynamics, the rotational part will be studied on its own, and the
configuration space will be said to be SO(3). The velocity phase space will take place
in the tangent space T SE(3), and as stated in section 2.1.27, it will be identified with
se(3) (or so(3) if the rotational part is considered alone).
A configuration of the rigid body will be denoted by (R, r) ∈ SE(3), where R is the
attitude and r is the position of the center of mass with respect to the space fixed
frame. The velocity and angular velocity are denoted by (Ω, v) ∈ se(3). As they are
isomorphic, Ω and its hat map Ω× = Ω̂ will be used interchangeably to avoid cluttering
the equations.
R and Ω components are in body-referenced coordinates, while r and v are in space-fixed
referenced coordinates.
Chapter 2. Tools
2.2.5
25
Dynamical Properties of the Rigid Body
The rigid body may be characterized by three properties. Its mass, its center of mass
and its inertia tensor. They are derived from the measure µ and the set B introduced
in subsection 2.2.1.
The total mass of the rigid body is denoted by m and is defined by
m = µ(B)
(2.43)
The center of mass is defined as
1
r=
m
Z
xdµ
(2.44)
B
In what follows, the body fixed axis {~b1 , ~b2 , ~b3 } will be pinned to the center of mass. By
doing so, the resulting equations take a simpler form.
The total mass m and the center of mass r will play an important role in the translational
dynamics, but will not affect the rotational dynamics, which will be governed by the
moment of inertia defined as a linear map L̂ : so(3) → so? (3),
Z
(x − r) × Ω̂(x − r)dµ
L̂(Ω̂) =
(2.45)
B
When using the body-referenced frame, the matrix representation of this map can be
written as
L(Ω) = JΩ
(2.46)
with J ∈ R3x3 called the inertia matrix. For non-degenerate rigid bodies (i.e. such that
their support B is not a line or a point) it holds that J > 0.
2.2.6
Kinetic Energy
The kinetic energy of the rigid body B with mass distribution µ at time t is given by
the sum of the kinetic energy of each point of the rigid body, that is
Z
KE(t) =
B
1
kr(t) + Ṙ(t)xk2 dµ
2
(2.47)
The Kinetic Energy can be decomposed into rotational and translational kinetic energies because if r(t) describes the position of the center of mass, the cross-term when
developing the square vanishes. So the separate energies are given by
1
KEtran (t) = kṙ(t)k2
2
(2.48)
Chapter 2. Tools
26
and
Z
KErot (t) =
B
1
kṘ(t)xk2 dµ
2
(2.49)
and it holds that
KE(t) = KErot (t) + KEtrans (t)
(2.50)
With these terms, we can directly construct the Lagrangian, as we are not working with
potential energy associated to the rigid body. Later on, the effects of gravity will be
accounted for as external forces.
2.2.7
Translational Kinematics & Dynamics
The translational dynamics derived from equation (2.48) can be seen as described by
Newton’s equations, with m the mass of the rigid body and f the total external force
applied to the rigid body
2.2.8
ṙ = v
(2.51)
v̇ = mv + f
(2.52)
Rotational Kinematics
The rotational kinematic equation is somewhat more involved, but can be derived from
geometrical grounds. For each basis vector ~bi rotating with angular velocity Ω, its time
derivative is a vector perpendicular both to ~bi and Ω, and its magnitude will be that
of Ω
~b˙ i = Ω × ~bi
(2.53)
Since the columns of R are the vectors ~bi , the following equation must hold for R
Ṙ = RΩ̂
Equation (2.54) is called the rotational kinematic equation.
(2.54)
Chapter 2. Tools
2.2.9
27
Rotational Dynamics
From equation (2.49), the rotational kinetic energy can be obtained in terms of the
moment of inertia, equation (2.45), as
KErot (t) =< L(Ω(t)), Ω(t) >
(2.55)
With this kinetic energy the Lagrangian can be constructed and Euler-Lagrange equations of motion can be derived with variational methods in SO(3). They are derived
as
Ṙ = RΩ̂
(2.56)
J Ω̇ = −Ω̂JΩ
(2.57)
These equations describe the rotation of a free rigid body. Equation (2.54) is can also
be derived by variational methods in SO(3). Additionally, the Lagrange-D’Alambert
principle must be used to introduce external forces (as torques lying in so∗ (3)), which
will be crucial to control the rigid body, so equation (2.57) must be modified to allow
for these external forces. By calling the external torque M , the equation becomes
J Ω̇ = −Ω̂JΩ + M
(2.58)
This equation is also called Euler’s second law, and together with the translational
dynamics equations, they are called Newton-Euler equations.
2.3
Matrix Norms
2.3.1
Induced Norms
A norm k · kp of Rn induces a norm on Rn×n by
kAkp = sup
kAxkp
kxkp
(2.59)
where x ∈ Rn and A ∈ Rn×n .
2.3.2
Matrix 2-norm
The matrix 2-norm is induced by the vector 2-norm and it can be shown that
kAk2 = λM (A)
(2.60)
Chapter 2. Tools
2.3.3
28
Frobenius Norm
The Frobenius Norm of a matrix A ∈ Rn×n is defined by
kAkF =
q
tr (AT A)
(2.61)
The Frobenius norm is equivalent to the matrix k · k2 norm although it is not induced
by the vector k · k2 norm. In particular, for x̂ ∈ so(3) we have the useful equivalence
between the matrix and vector norm
1
√ kx̂kF = kxk2
2
2.3.4
(2.62)
Bounds on Vectors multiplied by Matrices
The norm of a vector times a matrix is bounded by the largest eigenvalue of the matrix,
since the vector 2-norm induces the matrix 2-norm. The following relationship holds
kAxk ≤ |λM |kxk
(2.63)
Also, if A > 0, that is to say, A is positive definite, then
kAxk ≥ λm kxk
(2.64)
Here the norm is the standard vector 2-norm, since all the normed quantities are vectors.
2.4
Stability of Dynamical Systems
A dynamical system whose state is given by x, evolving over time according to
ẋ = f (x)
(2.65)
is said to have an equilibrium point at x = xeq if f (xeq ) = 0. By defining a new state
variable, x0 = x − xeq , equation (2.65) is unaltered. The equilibrium point for the system
in terms x0 is now the origin, so the following definitions will be given in terms of the
origin without losing generality.
The origin is said to be a stable equilibrium [18], if for each > 0 there exists δ() > 0
such that the evolution of the system starting at a distance less than δ of the origin
Chapter 2. Tools
29
remains within distance of the origin, i.e.
kx(0)k < δ ⇒ kx(t)k < ∀t ≥ 0
(2.66)
The equilibrium is said to be asymptotically stable, if it is stable and there exists a δ,
such that
kx(0)k < δ ⇒ lim x(t) = 0
t→∞
(2.67)
and it is said to be unstable if it is not stable.
If the system verifies
kx(t)k ≤ kx(t0 )ke−γ(t−t0 )
(2.68)
for t > t0 > 0 and kx(t0 )k < c, then it is said to be exponentially stable.
2.4.1
Lyapunov Stability
If the origin is an equilibrium point for the system (2.65) and there exists a continuously
differentiable function V defined on D a neighborhood of the origin, such that
V(x) ≥ 0
∀x ∈ D,
V (0) = 0 ⇔ x = 0
V̇(x) ≤ 0 ∀x ∈ D
(2.69)
(2.70)
then the origin is stable. Additionally, if the inequality in equation (2.70) holds for
x 6= 0, then the origin is asymptotically stable.
If there exist α1 (r) and α2 (r) and α3 (r), strictly increasing real functions vanishing at
r = 0, such that
α1 (kxk) ≤ V(x) ≤ α2 (kxk)
(2.71)
V̇(x) ≤ −α3 (kxk)
(2.72)
then the origin is asymptotically stable. If the functions αi can be chosen so that
αi (r) = ci r2 then the origin is exponentially stable.
A converse theorem exists stating that if the origin is exponentially stable, then a function V satisfying equations (2.71) and (2.72) exists.
Chapter 3
Attitude Control
In this chapter we start by reviewing some common ways to represent the attitude to
justify our choice of attitude representation. Following that, we develop the control laws
using this representation. In this chapter, we follow the work of Lee [17].
To construct the control law we will define errors associated with the difference between
the actual and desired states of the system. The stabilization will be obtained from
these errors, combining them in ways that make the closed loop system drive the errors
towards their smallest attainable values, so the study of the error dynamics is carried
out in detail. Over these dynamics, the control is built using Lyapunov methods to
assure it converges to the minimum error state.
3.1
Attitude Representations
An Attitude Representation is a parametrized description of the attitude. An extensive
list of different attitude representations is presented in [19] . The representation is said
to be global, if every possible attitude may be represented in terms of the parameters.
It is said to be unique, if for each attitude there is a single combination of parameters
which represent it.
The number of parameters required to represent the attitude depends on the kind of
representation. If the representation isn’t required to be global and unique, 3 parameters
are enough, and Euler Angles can be used, as stated in section 2.1.26. If we want the
representation to be at least global or unique, a higher count of parameters must be
used.
The minimum number of parameters required to uniquely and globally represent attitude, as proved by Hopf [20] and cited by Stuelpnagel [21] is 5. By taking the first 2
30
Chapter 3. Control
31
columns of the rotation matrix R, a 6-dimensional representation can then be further
reduced by projection to a 5-dimensional representation.
But this projective representation is seldom used as the advantage of reducing the number of parameters is hindered by the complexity of the resulting kinematic and dynamic
equations.
Another 5-parameter representation is the Unit Quaternion (also called Euler-Rodrigues
Parameters) representation, in which the attitude is represented by 4 parameters plus
the sign. This approach is widely used because of the resultingsimple equations and
the computational efficiency, but the sign must be accounted for separately, breaking
smoothness. Using only the 4-parameter unit quaternion without taking into account
the sign may lead to unexpected behavior such as unwinding, in which the command to
go to a nearby attitude produces an unexpected whole turn instead of a small twist (see
Figure 3.1). This leads to the fact that although the global dynamics of the parametrized
attitude may have, when controlled, closed loop global or almost global stability, it
doesn’t necessarily imply that the physical rigid body evolving in SO(3) also has these
closed loop properties [22].
Figure 3.1: To illustrate the problem of using unit quaternions to represent SO(3)
we can get intuition from a similar problem [23], representing the circle with the edge
of a Moebius strip. Points on the circle are labeled a, b, . . . , z. Points on the edge of
the strip a0 , b0 , . . . , z 0 , a00 , . . . , z 00 can be used to represent points on the circle, the map
being “remove the primes”. But for each point in the circle there are two points on the
edge, so it’s not unique. Unwinding arises because the command to go from z to a may
be interpreted as go from z 0 to a00 , go from z 00 to a0 (short movements), or also as go
from z 0 to a0 or from z 00 to a00 (an extra turn around the circle needed).
Chapter 3. Control
32
By using the full 3x3 attitude matrix R ∈ SO(3) instead of a representation of it, all these
problems are avoided. The downside is an increase in the number of parameters, since
the 9 elements of the matrix must be taken into account. But the resulting kinematic
and dynamic equations are simple and intuitive, and allow for Lyapunov methods of
stability analysis and control.
3.2
Rigid Body Dynamics
The configuration of the rigid body having mass m and inertia moment with respect to
its center of mass and in body fixed coordinates J will be denoted by (R, r) ∈ SE(3)
where R is the attitude and r is the position of the center of mass with respect to the
space fixed frame. The angular velocity and velocity are denoted by (Ω, v) ∈ se(3), with
Ω in body-referenced coordinates.
We review the kinematics and dynamics results from previous sections as a starting
point to obtain the control laws with the terms for control force f and control torque
M . The perturbations regarding applied force ∆f and torque ∆M have been written
separately to better analyze their effects. The equations (2.51), (2.54) and (2.57) take
the form
ṙ = v
(3.1)
v̇ = mv + f + ∆f
(3.2)
Ṙ = RΩ̂
(3.3)
J Ω̇ = −Ω̂JΩ + M + ∆M
(3.4)
As we are focusing on attitude control and since rotational and translational dynamics
are decoupled, we will focus our study on the last pair of equations.
3.3
The Attitude Control Problem
The problem of Attitude Control is the problem of applying the correct control torque
M to the rigid body so that it attains a desired Attitude over time.
Which torque is the correct torque is the essence of the problem, since according to
different constraints on the allowable attitudes itself, on the kinds of perturbations of
the attitude, on how this torque is applied, on its magnitude, on the allowed bound
Chapter 3. Control
33
on the error of the attitude with respect to the desired attitude, on the error in the
knowledge of the actual attitude for which the torque is computed, etc. will lead to
different definitions of which is the correct torque; the solution to the Attitude Control
Problem is not unique.
3.4
Attitude Control Laws in SO(3)
Taeyoung Lee et al. [24], [17] developed several almost global control laws for the
attitude control of a quadrotor UAV. In what follows, variables subscripted by d will be
the reference variables indicating the commanded or desired value of that variable, so
for example Rd (t) is the desired value of the attitude at time t. The reference variables
must satisfy the kinematic equations.
3.4.1
Attitude Error Dynamics
An important step in the design of any control system is the design of an error function
that vanishes if the system is in the desired reference state and increases as it deviates
from it. To be able to compare the value of the error function for different states of the
system and reference states, this function must take values on an ordered set; R is the
most usual choice.
3.4.2
Error Tracking Function
An error tracking function for the attitude as defined by [15] must be a map Ψ : SO(3)×
SO(3) → R, such that Ψ(R, Rd ) = 0 ⇔ R = Rd , it is symmetric in R and Rd , Ψ(R, Rd ) =
Ψ(Rd , R), its differential with respect to any of its arguments vanishes at R = Rd and
its Hessian with respect to any of its arguments is positive definite at R = Rd .
The simplest error function which satisfies all these properties is the squared Frobenius
Norm of the difference
1
Ψ(R, Rd ) = kR − Rd k2F
2
(3.5)
where the positive proportionality constant has been arbitrarily chosen, and since the
trace is linear and trace(A) = trace(AT ), the error function may also be written as
1
Ψ(R, Rd ) = trace I − RdT R
2
(3.6)
which vanishes when R = Rd . The symmetry requirement is easy to verify, as equation
(3.5) is invariant against permutation of R and Rd .
Chapter 3. Control
34
The squared norm form may be related to the potential of a harmonic oscillator V (x) =
1
2
2 kxk .
This potential drives the point x towards the origin with a force f = −∇V .
Likewise, to find the error function derivative, called the attitude vector error, Ψ must
be differentiated. But as the domain of Ψ is SO(3)×SO(3), the left trivialized derivative
introduced in 2.1.11 must be used.
3.4.3
Attitude Error Vector
For elements of SO(3), this derivative gives values in so∗ (3), so the inverse hat map will
be used to identify it with values of R3 . As the system is meant to be driven towards Rd ,
the derivative is taken with respect to R and is defined by the map eR : SO(3)×SO(3) →
R3 given by
êR = DR Ψ (R, Rd )
(3.7)
which by simple computation is found to be
eR =
1
RdT R − RT Rd ˇ
2
(3.8)
From equation (2.26), the error vector eR has the direction of the axis of rotation that
takes R to Rd . Its magnitude is the sine of the angle of rotation θ around this axis (see
Figure 3.2). With this geometric interpretation of the error vector (and due to the fact
that trace(A) = trace(AT )), equation (3.6) can be written as
RdT R + RT Rd
1
1
ˆ
= trace I − cos(ξ)
Ψ(R, Rd ) = trace I −
2
2
2
(3.9)
for some ξˆ ∈ so(3) such that kξk = θ. It can be shown that
ˆ = 1 + 2cos(kξk)
trace(cos(ξ))
so
Ψ(R, Rd ) = 1 − cos (θ)
(3.10)
Likewise, for the vector error function, from the definition of the sine in equation (2.18)
it can be shown in the same way that
keR k = sin (θ)
(3.11)
Chapter 3. Control
35
Figure 3.2: Geometric interpretation of the attitude error function and the attitude
error vector. For this representation, one dimension has been omitted from SO(3) and
it is shown embedded in R3 as the unit sphere, with the north pole identified with
the desired attitude Rd . The sine of the angle between R and Rd is sin(θ) = keR k.
The distance in R3 along Rd between Rd and the projection of R onto Rd is the error
function Ψ. Ψ = 0 when R = Rd , and increases as R deviates from Rd . At the equator
it takes the value Ψ = 1 and towards the south pole it approaches Ψ = 2. The error
vector is perpendicular to both R and Rd and belongs to the tangent space of R, but
was pinned to the center of the sphere for clarity.
3.4.4
Angular Velocity Error Vector
The angular velocity vector eΩ compares Ω with Ωd , but as they lie in different tangent
spaces to R and Rd respectively, Ωd is left trivialized to R to make the comparison
meaningful. It depends not only on the value of Ω and Ωd but also on the attitude R
and the attitude command Rd . It is defined as
eΩ = Ω − RT Rd Ωd
(3.12)
Chapter 3. Control
Figure 3.3: Geometric interpretation of the angular velocity error vector. The same
representation restrictions apply as in Figure 3.2, but here the tangent spaces at Rd
and R have been sketched in three dimensions. The desired angular velocity Ωd is a
vector in the tangent space at Rd , TRd G, whereas the current angular velocity belongs
to the tangent space at R, TR G. For the comparison to be carried out, Ωd must be
taken to TR G. This is done by the left action of Rd taking it to the tangent space of the
identity element and then left acting again with RT to take it to TR G. The composition
of these two actions is the same as the RT Rd action. The intermediate step has been
omitted for clarity. The comparison can then be carried out subtracting both terms,
as Ω and RT Rd Ωd belong to the same linear space, which is also where the errors to
be fed back later belong. The attitude error vector eR depicted at the origin of Figure
3.2 also belongs to this space.
36
Chapter 3. Control
3.4.5
37
Attitude Error Dynamics
With these definitions, the key element in obtaining the attitude error dynamics is the
time derivative of the relative rotation RdT R, given by
d
RdT R = RdT R êΩ
dt
(3.13)
This equation can be interpreted by identifying it with a kinematic equation (section
2.1.28), where the relative orientation matrix is itself a matrix of SO(3) rotating with
an angular velocity given by the angular velocity error.
The time derivative of the attitude error function Ψ is found by first noting that the
trace is a linear operator, so
d
1
Ψ (R, Rd ) = − trace
dt
2
d
RdT R
dt
1
= − trace RdT RêΩ
2
(3.14)
and by using equation (2.15),
d
Ψ (R, Rd ) = eR eΩ
dt
(3.15)
The time derivative of the vector error function is
ėR =
1
d
(skew (R, Rd )ˇ) =
RdT RêΩ − êΩ RT Rd ˇ
dt
2
(3.16)
which by properties (2.15) and (2.16), using the auxiliary function
E (X) =
1
(trace (X) I − X)
2
(3.17)
can be reduced to
ėR = E RT Rd eΩ
(3.18)
which predicts the way eR will increase (or decrease) given the error in angular velocity
and the relative attitude between current attitude and commanded attitude. By using
an auxiliary variable αd , which is the acceleration produced by the attitude command
Ωd on the attitude
αd = −Ω̂RT Rd Ωd + RT Rd Ω̇d
(3.19)
the time derivative of the angular velocity error vector can be found by using properties
and substituting with the kinematic equation to be
ėΩ = J −1 −Ω̂JΩ + M + ∆M − αd
(3.20)
Chapter 3. Control
38
Errors
Attitude Error Function
Ψ(R, Rd ) = 12 trace I − RdT R)
Attitude Error Vector
eR = skew (R, Rd )ˇ
Angular Velocity Error Vector
eΩ = Ω − RT Rd Ωd
Auxiliary Functions
1
2
Error Matrix
E RT Rd =
Angular Acceleration Command
αd = −Ω̂RT Rd Ωd + RT Rd Ω̇d
trace RdT R I − RT Rd
Time Derivatives ...
of the Attitude Error Function
Ψ̇ = eR eΩ
of the Attitude Error Vector
ėR = E (R, Rd ) eΩ
ėΩ = J −1 −Ω̂JΩ + M + ∆M − αd
of the Angular Velocity Error Vector
Table 3.1: Summary of the Attitude Error and its Dynamics.
So the time derivative of the angular velocity error vector consists of two terms, the first
one includes the dynamics of the free rotation and the control torque, while the second
term is the acceleration generated by the attitude command.
3.4.6
Attitude Control Law
With the previous definitions of Attitude Error and its Dynamics, a law for the control
torque can be obtained to drive R towards Rd , i.e. make the attitude track a reference
attitude. The law has two free parameters (also called gains) kR , kΩ ∈ R and is given by
M = −kR eR − kΩ eΩ + Ω̂JΩ + Jαd
(3.21)
For the following initial conditions
Ψ (R(0), Rd (0)) < 2
keΩ (0)k2 <
2
kR (2 − Ψ (R(0), Rd (0))) < 2
λM (J)
(3.22)
(3.23)
and assuming that there is no perturbation, ∆M = 0 and kR and kΩ are both positive,
this control law will be proven to exponentially stabilize the attitude around Rd .
Chapter 3. Control
3.4.7
39
Lyapunov Function for the Attitude Control Law
To prove these convergence properties, a Lyapunov function candidate is constructed as
1
V = eΩ · JeΩ + kR Ψ(R, Rd ) + ceΩ · eR
2
(3.24)
where c is a positive parameter introduced for convenience. It can be seen as a cross
gain involving both eR and eΩ .
From an energy perspective point of view, the first term represents the kinetic energy of
the current attitude with respect to the desired attitude, the second term its potential
energy and the last term its angular momentum. In the case when the current attitude
coincides with the desired attitude all these terms vanish.
Also for convenience, a subset of SO(3) is considered for the stability analysis, denoted
by Lψ , it is the set of attitudes with error function Ψ smaller than ψ, denoted by
Lψ = {R ∈ SO(3) | Ψ(R, Rd ) < ψ}
(3.25)
The analysis will be initially restricted to Lψ , and the extension to the whole SO(3)
will be found out to be trivial. At R = −Rd some of the following arguments cease to
hold, despite the fact that the system remains stable. To avoid these problems, we take
as an assumption that ψ < 2, so that the error function is assumed to be bounded by
Ψ(R, Rd ) ≤ ψ < 2.
By using the attitude error dynamics, its time derivative is
V̇ = eΩ · J ėΩ + kR eR · eΩ + ceΩ · ėR + cėΩ · eR
(3.26)
By equation (3.16) the relationship between eΩ and ėR is
kėR k ≤ kE(RT Rd )k2 · keΩ k
(3.27)
The norm of E(RT Rd ) is found by replacing RT Rd by exp(x̂), and evaluating its eigenvalues from the Rodrigues formula, equation (2.23), and using the bound on the matrix
norm from equation (2.63) it is found to be kE(X)k ≤ 1 for any X ∈ SO(3). So
kėR k ≤ keΩ k
(3.28)
By noting that the Euler equation (2.58) can be combined with the control torque
equation (3.21) to yield
J ėΩ = −kR eR − kΩ eΩ
(3.29)
Chapter 3. Control
40
we can replace equation (3.28) into equation (3.26) to begin to look for a bound on V̇.
We obtain
V̇ ≤ eTΩ J ėΩ + kR eTR eΩ + ckeΩ k2 + ceTR ėΩ
(3.30)
V̇ ≤ kR eTR eΩ + ckeΩ k2 + ceTR + eTΩ J ėΩ
(3.31)
Rearranging the terms
V̇ ≤ kR eTR eΩ + ckeΩ k2 + ceTR J −1 J ėΩ + eTΩ J ėΩ
V̇ ≤ kR eTR eΩ + ckeΩ k2 + cJ −1 eR + eΩ
T
(3.32)
J ėΩ
(3.33)
(−kR eR − kΩ eΩ )
(3.34)
Replacing the last term with equation (3.29)
V̇ ≤ kR eTR eΩ + ckeΩ k2 + cJ −1 eR + eΩ
T
V̇ ≤ −ckR eTR J −1 eR + (c − kΩ ) keΩ k2 − ckΩ eTR J −1 eΩ
(3.35)
Now, by noting that for a matrix A > 0 it holds that
1
kxk2 ≤ xT A−1 x
λM (A)
it follows that the first term is bounded by
−ckR eTR J −1 eR ≤ −
ckR
keR k2
λM (J)
and by noting that it also holds that
±xT A−1 y ≤
1
kxkkyk
λm (A)
the last term is bounded by
−ckΩ eTR J −1 eΩ ≤
ckΩ
keR kkeΩ k
λm (J)
We can now bound equation (3.35) using only the gains, the smallest and largest eigenvalues of the inertia matrix J and the norm of the error vector and angular velocity
error vector as
V̇ ≤ −
ckR
ckΩ
keR k2 − (kΩ − c) keΩ k2 +
keR kkeΩ k
λM (J)
λm (J)
(3.36)
Calling
z=
keR k
keΩ k
!
(3.37)
Chapter 3. Control
41

W =
ckR
λM (J)
Ω
− 2λck
m (J)
Ω
− 2λck
m (J)
kΩ − c


(3.38)
the terms can be rearranged to the matrix inequality
V̇ ≤ −z T W z
(3.39)
Recalling equations (3.10), (3.11), restriction Ψ ≤ ψ and using the trigonometric relationship sin2 (γ) = (1 + cos(γ)) (1 − cos(γ)), the error vector function can be used to
bound from above and from below the error function Ψ since
keR k2 = sin2 (θ) = (1 + cos(θ)) Ψ(R, Rd )
(3.40)
keR k2 = (2 − Ψ(R, Rd )) Ψ(R, Rd )
(3.41)
1
1
keR k2 ≤ Ψ(R, Rd ) ≤
keR k2
2
2−ψ
(3.42)
so solving for Ψ(R, Rd )
This bound is then used to bound the Lyapunov function V from below as
1
1
kR keR k2 − ckeΩ kkeR k + λm (J)keΩ k2 ≤ V
2
2
(3.43)
and from above as
V≤
2kR
1
keR k2 + ckeΩ kkeR k + λM (J)keΩ k2
2−ψ
2
(3.44)
Both bounds can be put together in matrix form by calling
M1 =
kR
−c
!
(3.45)
−c λm (J)
and
M2 =
bkR
c
c
λM (J)
!
(3.46)
then using z as defined in equation (3.37), and recalling equation (3.39), these results
can be put in the usual Lyapunov form as
z T M1 z ≤ V ≤ z T M2 z
(3.47)
V̇ ≤ −z T W z
(3.48)
Chapter 3. Control
42
For this to mean exponential stability as defined in section 2.4.1, the matrices W , M1
and M2 must be positive definite. As the matrices are 2 × 2, the eigenvalues can be
easily obtained. Since they are symmetric matrices, if the eigenvalues are positive the
matrices are positive definite. This is achieved if for a given inertia tensor J the gains
kR , kΩ and c are chosen such that they verify
c < min{kΩ ,
p
4kΩ kR λ2m (J)
,
kR λm (J)}
2 λ (J) + 4k λ (J)2
kΩ
M
R m
(3.49)
When this is the case, equations (3.47) and (3.48) can be written as
By calling β =
λm (W )
λM (M2 ) ,
λm (M1 )kzk2 ≤ V ≤ λM (M2 )kzk2
(3.50)
V̇ ≤ −λm (W )kzk2
(3.51)
the relationship between V and its time derivative is
V̇ ≤ −βV
(3.52)
V(t) ≤ V(0)e−βt
(3.53)
so an explicit bound for V(t) is
meaning that the attitude error function is bounded by a decreasing exponential. This
guarantees that the attitude error function converges to zero as the vector with the norm
of the attitude error vector and attitude angular velocity vector kzk → 0 when t → ∞.
This also implies that the set Lψ to which we restricted our analysis (defined in equation
(3.25)) is positively invariant for any ψ < 2. Note that ψ can get arbitrarily close to 2.
It can be shown that the submanifold defined by the points in which Ψ(R, Rd ) = 2 is
of zero measure and unstable. Therefore, the stabilization is said to be almost global.
Moreover, this is the best result regarding globality for continuous control laws in SO(3),
as continuous global stabilization cannot be achieved to topological constraints [25].
To design a Controller, only the maximum and minimum eigenvectors of the inertia
tensor J need to be known, and the parameters kR , kΩ and c are selected according
to the restriction imposed by equation (3.49). If the inertia tensor J is not known, the
quote on its maximum and minimum eigenvalues may be chosen to give some headroom,
or an adaptive algorithm to estimate J online may be used, as in [17].
Chapter 3. Control
3.4.8
43
Summary of the results on Attitude Control
We briefly summarize the results of this section for clearer reference.
Given the kinematic and dynamic equations
Ṙ = RΩ̂
J Ω̇ = Ω̂JΩ + M
(3.54a)
(3.54b)
and the command Rd (t) satisfying Ṙd = Rd Ω̂d , the errors
1
Ψ(R, Rd ) = trace I − RdT R
2
êR = DR Ψ (R, Rd )
(3.55b)
eΩ = Ω − RT Rd Ωd
(3.55c)
(3.55a)
together with the feedback law
M = −kR eR − kΩ eΩ + Ω̂JΩ + Jαd
(3.56)
reduce the closed loop error dynamics to
ėR = E (R, Rd ) eΩ
(3.57a)
ėΩ = −kR J −1 eR − kΩ J −1 eΩ
(3.57b)
and the Lyapunov function defined as
1
V = eΩ · JeΩ + kR Ψ(R, Rd ) + ceΩ · eR
2
(3.58)
λm (M1 )kzk2 ≤ V ≤ λM (M2 )kzk2
(3.59)
V̇ ≤ −λm (W )kzk2
(3.60)
satisfies
with z = (keR k
3.4.9
keΩ k)T
Units
A note of warning should be raised about units. From its definition, eR is unitless while
eΩ should have units of angular velocity. When combining them in the control law
equation (3.56) or in the Lyapunov equation (3.58) and its time derivative, they always
mix with constants kR and kΩ to comply with the resulting units.
Chapter 3. Control
44
But when evaluating kzk we are adding a unitless number to a number with units
of angular velocity. It is assumed that the right conversion factor is included in the
definition of the norm of either one of the quantities being added to avoid any trouble.
This could be further expanded into a weighted sum but this path is avoided because it
would hinder the elegance of the equations.
Chapter 4
Robust Attitude Control
In this chapter, we study the stability of the attitude control law with respect to perturbations, and guarantee stability if certain conditions on the system and perturbations
are met. Perturbations arise from several causes, but the two types of perturbations we
will take into consideration are aerodynamic perturbations, acting as additional, uncontrolled torques, and perturbations due to inaccurate, faulty or noisy measurements of
the attitude and the angular velocity.
4.1
Aerodynamic Perturbations
The analysis we have been carrying out so far is agnostic of the actuators, assuming
they apply exactly the torque provided by equation (3.21). But for the aircraft under
study, this torque is created by several rotating and counter-rotating rotors, which are
difficult to model precisely.
Other sources of aerodynamic perturbations in the rotors are the change in wind speed
due to the craft’s vertical motion, with the effect that the same blade rotation produces
different lift in different situations, and the tip flapping effect due to the craft’s horizontal
motion, when the tip of the blade oscillates due to differential force created by the blade’s
relative airspeed being different when moving against or along the wind speed [26], [27].
Drag is also dependent on the motion of the craft and is also treated as a perturbation.
Although we are not concerned with the position of the craft in this analysis, it may
still act differentially on different parts of the craft creating torque.
To account for the inaccuracies of the aerodynamic model of the rotors, and also for
other unmodeled torques acting on the aircraft such as the effect of wind gusts, or any
45
Chapter 3. Control
46
other torque, the term ∆M has been added to equation (3.4). In the following analysis,
the only assumption we will make about this unmodeled torque is that it is bounded by
δR , a known constant such that
k∆M k ≤ δR
(4.1)
Obtaining this bound is no easy task. In section 4.5 we will see that with all other
parameters fixed, the bound on the minimum attainable error in attitude and angular
velocity is linear in δR .
4.2
Perturbations due to Measurement Inaccuracies
Another source of perturbations is the fact that to actually obtain the required stabilizing
torque of equation (3.21) we need the actual attitude and angular velocity of the aircraft.
But this knowledge is never precise, and usually these quantities are known up to a small
measurement error. Factors such as noise and drift present in the data used to calculate
the torque appear as perturbations in the control dynamics.
These factors are usually reduced by filtering, like [28] and [29]. Filtering and estimation
is in itself an area of active research. We call them “measured quantities” and talk of
“the measurement error” in the broad sense of these concepts. But despite the method
used for estimating the angular velocity and attitude, a residual error always remains.
Given the measured attitude R̄ and angular velocity Ω̄, their relationship to the actual
attitude R and angular velocity Ω are given by the attitude measurement misalignment
term z and the angular velocity measurement error χ (preserving the structure of SO(3)
and so(3)) respectively as
R̄ = R · z
(4.2)
Ω̄ = Ω + χ
(4.3)
The following bounds are assumed to be satisfied by the estimation algorithm, with θZ
the angle of rotation between R̄ and R about the proper rotation axis
θZ ≤ κM AX
(4.4)
kχk ≤ χM AX
(4.5)
In the following section we will guarantee robust stability of the attitude when given
a bound for the knowledge of both the angular velocity and the attitude, provided the
angular velocity and its command are bounded.
Chapter 3. Control
4.3
47
Robustization
To study stability we will construct the stabilizing torque using the measured values and
propagate the measurement inaccuracies to the actual torque, where they are composed
with the unmodeled perturbations. We will see how these terms affect the Lyapunov
function and its time derivative.
To perform this analysis we need bounds on the allowed angular velocities and their
command. These bounds will be the subject of a compromise in almost the same way
as the bound of the unmodeled torques, to be studied in a subsequent section. Note
that regarding the rotational dynamics, only the angular velocity will be required to
be bounded, meaning that the attitude is unrestricted as in the previous unperturbed
analysis so this analysis will hold almost globally, i.e. for any attitude and any attitude
command satisfying the kinematic restriction (2.40). Subscripting the bounds with a
M AX term, these bounds are
4.4
kΩk ≤ ΩM AX
(4.6)
kΩd k ≤ ΩdM AX
(4.7)
kΩ̇d k ≤ Ω̇dM AX
(4.8)
Perturbed Errors Vectors
To construct the control torque we rely on the measurements in order to build the error
vectors. The measured quantities will be denoted by a bar, so x̄ means the measured
value of x. These vectors are obtained by solving for R and Ω in equations (4.2) and (4.3)
and replacing them in equations (3.8) and (3.20). In this way, we obtain the perturbed
error vectors ēR and ēΩ , and also the perturbed error tracking function Ψ̄ which will be
useful later, and we express them in terms of the real error vectors and error tracking
function as
1
Ψ̄ = Ψ + trace RdT R (z − I)
2
ēR = eR + skew RdT R (z − I) ˇ
ēΩ = eΩ − RdT R (z − I)
T
Ωd + χ
ˆ R̄R Ω + R̄R Ω̇
ᾱd = −Ω̄
d d
d d
(4.9)
(4.10)
(4.11)
(4.12)
Except for the last equation, we managed to express the measured error vectors in
terms of the real error vectors and the error terms. This will prove to be useful for the
Lyapunov analysis.
Chapter 3. Control
48
With these measured error vectors, we may construct the control torque by replacing
the actual values by the measured values in the control law of equation (3.21). This
control law will also contain a term for the robustization, denoted by µ̄, which was not
present in the previous control law. The control law in terms of the measurements is
given by
ˆ J Ω̄ + J ᾱ + µ̄
M̄ = −kR ēR − kΩ ēΩ + Ω̄
d
(4.13)
The relationship with the exact torque can be expressed by introducing a fictitious
torque due only to the propagation of the measurement errors, ∆E .
∆E = M̄ − M
(4.14)
As the system remains the same and we are only changing the control law to accommodate the fact that we are feeding back the measured values and not the real ones,
we can reuse the Lyapunov function of equation (3.24). This has proved to be a valid
Lyapunov function and it does not depend on the control input.
On the other hand, its time derivative, equation (3.26), which we rewrite here for clarity,
depends on the control input to be negative definite.
V̇ = eΩ · J ėΩ + kR eR · eΩ + ceΩ · ėR + cėΩ · eR
(4.15)
The only way the control torque enters the Lyapunov time derivative is through the time
derivative of the angular velocity error vector, ėΩ as stated in equation (3.20). We also
rewrite it here for clarity, with the acting torque M replaced by the composition of the
exactly stabilizing torque given by the control law equation (3.21) and the propagated
error vector M̄ = M + ∆E
ėΩ = J −1 −Ω̂JΩ + (M + ∆E ) + ∆M − αd
(4.16)
From this equation, it is clear that the propagated error vector plays the same role
as the perturbation torque ∆M , because this is the only place it enters the equations.
From this point of view ∆M and ∆E have the same effect on the time derivative of the
Lyapunov function.
Some properties will come in handy to write down the term ∆E . By using the property
of the decomposition of the difference of SO(3) elements, equation (2.29) we can write
(z − I) as
(z − I) =
with ξˆ =
√
z−
√
z
T
.
√
z ξˆ
(4.17)
Chapter 3. Control
49
By property (2.18) and using the fact that kRk = 1 ∀R ∈ SO(3) we obtain the norm of
(z − I) as
k (z − I) k = 2sin
θZ
2
(4.18)
Likewise, by using equation (3.17), equation (4.10) may be written as
√ ēR = eR + E RdT R z ξ
(4.19)
Lastly, we will also be using the property given by equation (2.16).
With these properties ∆E takes the form
√ ∆E = − kR E RdT R z ξ
√
T
− kΩ I − J Ω̂ ξˆ z + Jχz T RT Rd Ωd
√ T
− J ξˆ z RT Rd Ω̇d
+ Ω̂ (2J − trace (J) I) + J Ω̂ − kΩ I χ
(4.20)
From this, it can be seen that what is different about ∆M and ∆E is their internal
structure, one of which is by now assumed unknown but bounded, and the other one is
known and is made explicit in equation (4.20). This internal structure will not be used
for robustization in this work; it will be used just to obtain a bound on its magnitude.
But in future works this may prove an interesting lead to follow.
A bound can be placed on ∆E as
θZ
kR
∆E ≤2sin
2
θZ
+2sin
kΩd k (kΩ + λM (J) kΩk) + λM (J) χM AX
2
θZ
λM (J) kΩ̇d k
+2sin
2
(4.21)
+ (2kΩkλM (J) + kΩ ) kχk
Using bounds (4.4), (4.5), (4.6), (4.7) and (4.8) we can find a bound δE for ∆E which
depends on the previous bounds and is given by
δE = 2sin
κ
M AX
kR + kΩ ΩdM AX + λM (J) ΩM AX ΩdM AX + Ω̇dM AX
2
+ (λM (J) (ΩM AX + ΩdM AX ) + kΩ ) χM AX
(4.22)
so
k∆E k ≤ δE
(4.23)
Chapter 3. Control
50
This bound condensates the bound for the attitude and angular velocity knowledge,
equations (4.4) and (4.5), the bound for the angular velocity (4.6) and the bounds for
the commanded acceleration (4.7) and (4.8).
An auxiliary error eA playing a key role in the robustization will be introduced as
eA = eΩ + cJ −1 eR
(4.24)
and its measured reconstructed counterpart is given by
ēA = ēΩ + cJ −1 ēR
(4.25)
which, replacing by the values for ēR and ēΩ , gives
√ T
√ ēA = eA + κ̂ z RT Rd Ωd + χ + cJ −1 E RT R z κ
(4.26)
and it will give rise to yet another bound, the last one for now, as
a = 2sin
κ
M AX
2
ΩdM AX +
c
λm (J)
χM AX
(4.27)
so that
kēA − eA k ≤ a
4.5
(4.28)
Robustization
Now, we will return to the time derivative of the Lyapunov function and make use of
equation (4.16) to make explicit the impact of the unmodeled torque perturbations and
the error propagation vector. The control torque constructed in terms of the measured
quantities cannot exactly match and cancel the errors, and this mismatch is expressed
in the second term of the following equation, letting the first terms be the consequence
of the same reduction as in equation (3.35) with z and W defined in equations (3.37)
and (3.38).
V̇ ≤ −z T W z + eA · (∆M + ∆E + µ̄)
(4.29)
From this it is clear that the only way we can maintain the time derivative of the
Lyapunov function negative definite is by adequately constructing the robustization
term µ̄ in terms of the available measurements.
Following the work by Lee [11], we perform a fixed-sigma modification. In the usual
leakage or fixed-sigma modification, as in [30], the robustization term has only one free
parameter R > 0 determining the bound, but we will see that the bound a defined
Chapter 3. Control
51
in equation (4.28) takes its role in the robustization performed here, so the bound will
depend on a. We define the robustization as
µ̄ = −
(δR + δE )
ēA
kēA k + a
(4.30)
With this robustization term, we can now study the last term of equation (4.29); our
objective is to prove that it is bounded. For this purpose, we will use the bounds from
equations (4.1) and (4.23) in the last term of equation (4.29), which is expanded to
eA · (∆M + ∆E + µ̄) =∆M · eA
+∆E · eA
(4.31)
(δR + δE )
−
(eA + (ēA − eA )) · eA
kēA k + a
so
eA · (∆M + ∆E + µ̄) ≤keA k · δR
+keA k · δE
(δR + δE )
keA k2
kēA k + a
(δR + δE )
−
(ēA − eA ) · eA
kēA k + a
−
(4.32)
and noting that −akeA k ≤ (ēA − eA ) · eA ≤ akeA k and (keA k − a) ≤ kēA k ≤ (keA k + a),
eA · (∆M + ∆E + µ̄) ≤ (δR + δE ) keA k
(δR + δE )
keA k2
keA k + a + a
(δR + δE )
+
keA ka
keA k + a − a
−
(4.33)
which by combining the first term of the right hand side into the first fraction reduces
to
eA · (∆M + ∆E + µ̄) ≤2a (δR + δE )
keA k
keA k + 2a
(4.34)
+ (δR + δE ) a
and the fraction of the first term of the right hand side is always smaller than the unit,
so the bound takes the form
eA · (∆M + ∆E + µ̄) ≤ 3 (δR + δE ) a
(4.35)
Chapter 3. Control
52
and the time derivative of the Lyapunov equation becomes bounded by
V̇ ≤ −z T W z + 3 (δR + δE ) a
(4.36)
z T W z ≥ 3 (δR + δE ) a
(4.37)
It will be negative as long as
which, recalling the definition of z = [keR k
keΩ k]T , corresponds to the outside of
an ellipse in the plane spanned by keR k and keΩ k. With this robustization term the
errors converge no longer to the origin of this plane, as in the unperturbed case, but
to the ellipse itself. The term corresponding to the product of the semi-axes of the
ellipse depends on the unmodeled perturbations bound δR and on the measurement
error bounds through δE and a.
It is interesting to note that the dependence of this last term on the measurement errors
is second order, because it is the product of δE with a, which also depends on the error
bounds. This also holds for the bound on the commanded angular velocity.
Figure 4.1: Representation of ellipse ε. The robust closed loop system converges to
this ellipse. Outside the ellipse (green shaded area) the time derivative of the Lyapunov
function is negative. The behavior inside the ellipse (orange shaded area) is unkown.
Also marked is the major semi axis sM .
Since we will be referring this ellipse later on, we will define it as the set ε which depends
on the gains as
ε(kR , kΩ , c) = z = (x, y)T ∈ R2 | z T W z = 3 (δR + δE ) a
(4.38)
Chapter 3. Control
53
Note that, although this ellipse looks like the ellipses used to represent knowledge as
mean and covariance in Gaussian Filters, the meaning is different in this case. The four
quadrants are included in the depiction (Figure 4.1) to make it more intuitive, but only
the first quadrant has a real meaning, as the equation is quadratic in the norm of the
errors. Besides that, the behavior of the errors inside the ellipse is unknown and no
claim about the probability of the state being on the inside is made. The only thing
the proposed control can guarantee is that the state will converge asymptotically to the
ellipse.
As the Lyapunov function remains unaltered by the robustization term, for any ψ <
2 the set Lψ defined in equation (3.25) remains positively invariant and the system
exponentially converges towards the origin like in the previous section until the ellipse
described by equation (4.37) is reached.
Afterwards, as the time derivative of the Lyapunov function is no longer negative, the
conditions for global exponential stability of the origin are no longer met. Inside the
ellipse the control action may no longer be able to avoid the effects of the perturbations,
and the behavior is unknown.
Depending on the instantaneous values of the perturbations, the system may randomly
walk inside the ellipse and, in favorable situations, it may approach the origin, but this
cannot be guaranteed. It may even be possible for the state to reach the ellipse again at a
later time, to bounce back in or slide along its surface, but it will never get further away
from the origin. This matches the definition of simple convergence, so the convergence
is replaced by simple convergence to the ellipse.
4.6
Summary
We summarize the bounds in Table 4.1. With these bounds, the auxiliary vector ēA
constructed from the measured values of attitude and angular velocity
ēA = ēΩ + cJ −1 ēR
is used to build a robustization term
µ̄ = −
(δR + δE )
ēA
kēA k + a
which, when added to the stabilizing torque (constructed also in terms of measured values
of attitude and angular velocity), assures that the errors in eR and eΩ will converge to
Chapter 3. Control
54
Bound
Evaluates to
ΩM AX
Max. angular velocity allowed by the system.
ΩdM AX
Max. commanded angular velocity.
Ω̇dM AX
Max. commanded angular acceleration.
κM AX
Max. error in attitude measurement.
χM AX
Max. error in angular velocity measurement.
δR
δE
a
Max. aerodynamic or unmodeled perturbation torque.
κ
M AX
2sin
kR + kΩ ΩdM AX + λM (J) ΩM AX ΩdM AX + Ω̇dM AX
2
+ (λM (J) (ΩM AX + ΩdM AX ) + kΩ ) χM AX
2sin κM2AX ΩdM AX + λmc(J) χM AX
Table 4.1: Summary of the bounds the system must satisfy to robustly converge to
the ellipse ε.
the ellipse
ε(kR , kΩ , c2 ) = z = (x, y)T ∈ R2 | z T W z = 3 (δR + δE ) a
with W given by

W =
ckR
λM (J)
Ω
− 2λck
m (J)
Ω
− 2λck
m (J)
kΩ − c


Chapter 5
Bounds on the sample time
The results from previous sections allow us to robustly stabilize the rigid body under
random perturbations and uncertainties in attitude and angular velocity measurements,
and we obtained a control law which is ready for implementation.
In this section we study the requirements for the discrete time implementation of said
control law. Two different paths can be followed to study the discretization. The whole
system can be discretized, obtaining an equivalent system with discrete time equations,
or we can analyze the closed loop dynamics of the continuous time model, but with the
feedback law updated at discrete time points and held constant between them. The
latter is followed in this section and follows the work of Mancilla-Aguilar et al. [31], [32]
and is referred to as “Static Feedback Law via Sampling and Zero-order Hold” or SZH
analysis.
The discretization of the whole system often takes the form of an approximation, and
bounds need to be placed to measure how good the approximation is and thus what
order of magnitude of errors to expect. In [33] such a procedure is described step by
step, and in [34] an extensive review of methods is presented.
The SZH analysis is a better model of reality because it makes almost no approximations, it just describes the fact that the dynamics of the system evolve in continuous
time but the control action is updated at discrete points in time. This is the case in
most modern control situations, where the controller is implemented using digital and
embedded systems, intertwining computers and microprocessors.
55
Chapter 3. Control
5.1
56
SZH Analysis
The following analysis takes as hypothesis that the control action is updated at fixed
intervals given by the sample rate (also called time step), and held constant during those
intervals. A finer analysis would need to take into account this step-like output and filter
it with a model of the step response of the actuators, which here are assumed to be ideal.
Although it is the the only approximation in this analysis, the difference between the
step-like and the actual response of the actuators can be included in the term δR in the
robust version of the controller, diluting the approximation meaning.
If we assume that the actuators are fast compared with the sample rate, and that the
bounds given in the previous sections are abided, the following analysis is a very good
approximation, and we are modeling with much finer detail than in the alternate whole
system discretization.
At first, we study the time bound for the unperturbed system, i.e. the robustization
term is not taken into account. Then, we will see what changes are required to also take
it into consideration.
In [32], Mancilla-Aguilar gives conditions for existence, maximality and uniqueness of
solutions for this kind of systems. The existence of a maximum time step is also proven
for the discrete update law. We rewrite the main results first, and then specialize them
for the system we are studying.
Given a system
ẋ(t) = f (x(t), u(t))
(5.1)
such that the origin is globally asymptotically stable when fed back with the control law
u(t) = γ (x(t))
(5.2)
by using the function 1k (t) defined as the characteristic function of the interval starting
at k and of length 1,

 1 if k ≤ t < (k + 1)
1k (t) =
 0 otherwise
(5.3)
we define the SZH implementation of the feedback law γ with sample time Ts as
γSZH,Ts (t) =
∞
X
k=0
γ (x(kTs )) 1k
t
Ts
(5.4)
Chapter 3. Control
57
In [32], proof is given that for a system like (5.1) for which a continuous time feedback
law γ(x) exists which renders the closed loop system locally or globally asymptotically
stable, there exists a maximum sampling period TsM AX which guarantees that the system
will remain stable when fed back with the SZH implementation of γ with Ts ≤ TsM AX . In
Figure 5.1, the relationship between γ and its SZH implementation γSZH,Ts is illustrated.
Figure 5.1: The SZH implementation does not try to discretize the whole system,
but allows the state to evolve in continuous time while updating the control action
at discrete time points. The blue continuous time system is rendered assymptotically
stable by the control law u = γ(x). Its SZH implementation γSZH,Ts uses the same
law as γ to compute the control action at every time step, but as the resulting control
action is not the same, the system evolves slightly differently while maintaining the
asymptotical convergence property (if some conditions hold) as shown in section 5.3.
5.2
Bound on the Maximum Sample Time
The result stated in the previous paragraph is subject to the initial conditions being
within a given distance from the origin, and the stability depends on this distance.
Furthermore, in Theorem 3.1 of [32], an explicit formula for the bound on the maximum
sampling period is given. We replay a part of the proof of said theorem to bring the
equation here.
Chapter 3. Control
58
We assume that there exists a proper Lyapunov function V for the system (5.1), such
that when fed back with γ it holds that V (x(t + Ts )) < V (x(t)) and the hypothesis of
the theorem hold. We will work in the level set Lξ = {x ∈ Rn | V(x) ≤ ξ}, and stability
will be reached for the level set L so that V (x(t + Ts )) < if V (x(t)) < .
Now, we define some auxiliary functions to obtain the bound on TsM AX .
Define P (r) as
P (r) = sup{η ∈ R : kyk ≤ η ∧ x = V −1 (r) ⇒ ∇V (f (x, γ(x)) + y) < 0}
(5.5)
so P (r) measures how far we may push the control away from the stabilizing action
before turning V̇ positive.
Define θ (x, x0 ) as
θ x, x0 = f x, γ(x0 ) − f (x, γ( x ))
(5.6)
so θ measures the deviation in the time derivative of the state when presented with a
control action computed at a state other than the present state.
From this, define a Lifschitz constant with respect to x − x0 , calling it L such that
kθ x, x0 k ≤ Lkx − x0 k
(5.7)
We may bound said deviation with L and the distance between the current state and
the state at which the control action is computed.
Finally, define G(r) as the maximum magnitude of the time derivative of the state when
fed back with the stabilizing action γ in the level set of V for all future states
G(r) = sup{kg(x)k
∀x ∈ Lr }
(5.8)
Then, the bound for the maximum sample time is given by
P (r)
TsM AX = sup δ | δeLδ ≤
LG(r)
∀0 < r < ξ 0
(5.9)
with R0 = max {V(x) | kxk ≤ R} and 0 such that L0 ⊂ {x | kxk < }. This restriction
actually implies that the set {x | kxk ≤ ξ} is included in Lξ0 , so equation (5.9) holds for
x in the range ≤ kxk ≤ ξ.
The result of Theorem 3.1 in [32] is that the system (5.1), when fed back with the
SZH implementation of the stabilizing feedback law γ with sample time Ts < TsM AX , if
started with initial conditions x0 , such that x0 ∈ Lξ , then the states evolving from x0
Chapter 3. Control
59
are defined for every discrete time step kTs , the state evaluated at these sample times
enter the level set L , and given any real number ν > 0, there exists a value of k0 such
that the state evaluated at these sample times enters the level set L+ν and remains
there for every time step kTs ≥ k0 Ts .
These results describe the evolution of the system at the time points described by the
time steps. Although no stronger results on stabilization can be obtained from here with
those assumptions alone, if the additional condition
lim inf
r→0
P (r)
>0
G(r)
(5.10)
is met, further stability results follow.
5.3
SZH Results for Asymptotically Stable Systems
In particular, if condition (5.10) holds, and if the origin is locally asymptotically stable
for the system (5.1), its SZH implementation given by
ẋ(t) = f (x(t), γSZH,Ts (t))
(5.11)
with Ts < TsM AX is locally asymptotically stable as proven by Theorem 4.1 in [32].
This is a strong theoretical result proving the intuitive fact that the discretization of
an asymptotically stable system remains asymptotically stable, if the sample time is
well chosen. Additionally, an important practical result is that it provides a bound for
choosing the sample time.
Equation (5.9) can be put in a more convenient form if the system (5.1) has local
exponential stability. If the Lyapunov function verifies the following conditions for constants c1 − c4 :
c1 kxk2 ≤ V(x) ≤c2 kxk2
(5.12a)
V̇(x) ≤ −c3 kxk2
(5.12b)
k∇V(x)k ≤c4 kxk
(5.12c)
and if we can find a Lifschitz constant T for the continuous closed loop state time
derivative defined by
kf (x, γ(x)) k ≤ T kxk
(5.13)
Chapter 3. Control
60
then P (r) defined in equation (5.5) verifies
√
c3 c1 √
P (r) ≥
r
c2 c4
(5.14)
and G(r) defined in equation (5.8) verifies
T √
G(r) ≤ √
r
c2
(5.15)
so a bound like (5.9) can be written as
Lδ
TsM AX = sup δ | δe
5.3.1
1 c3
≤
LT c4
r
c1
c2
(5.16)
Bound on the Sample Time for the Attitude Controller in SO(3)
Now, we will specialize these results for the system studied in the previous sections. We
recall that z was defined as z = (keR k
keΩ k)T . In this section we will also use an
augmented vector x with the errors put together, x = (eR
eΩ )T .
The error dynamics
ėR
ėΩ
!
=
!
E (R, Rd ) eΩ
−αd − J −1 Ω̂JΩ + J −1 M (eR , eΩ )
(5.17)
have the form
ẋ = f (x, γ(x))
(5.18)
with γ(x) given by
γ(x) =
0
!
J −1 M (eR , eΩ )
(5.19)
The errors may not take any random value but are limited by the bounds on the allowed
angular velocities from section 4.3, by the fact that keR k ≤ 1, and by
keΩ k ≤ kΩ − RT Rd Ωd k ≤ kΩk + kRT Rd Ωd k ≤ kΩk + kΩd k
(5.20)
xM AX = 1 + ΩM AX + ΩdM AX
(5.21)
so by calling
the restriction on the errors translates to the restriction on x as
kxk ≤ xM AX
(5.22)
Chapter 3. Control
61
so the bound on the sample time we will find in this section applies to the set LxM AX .
In what follows, we will obtain the constants L, T and c1 − c4 to plug in equation (5.16).
The constant T defined in equation (5.13) is found by bounding the closed loop error
time derivative
f (x, γ(x)) =
!
E (R, Rd ) eΩ
(5.23)
−kR J −1 eR − kΩ J −1 eΩ
leaving the bound in terms of the errors so
1
1
kf (x, γ(x)) k ≤ kR
keΩ k
keR k + 1 + kΩ
λm (J)
λm (J)
from which we can read T by noting that kxk =
(5.24)
p
keR k + keΩ k and writing
kf (x, γ(x)) k ≤ T kxk
so that we can evaluate T from
s
T =
kR
λm (J)
2
+ 1+
(5.25)
kΩ
λm (J)
2
(5.26)
The same comments as in section 3.4.9 about units apply.
Next, we look for L
0
0
f x, γ(x ) − f (x, γ(x)) =
!
J −1 (M (e0R , e0Ω ) − M (eR , eΩ ))
(5.27)
so
kf x, γ(x0 ) − f (x, γ(x)) k ≤
1
k − kR e0R − eR − kΩ e0Ω − eΩ k
λm (J)
(5.28)
which can be written as
1
1
kR ke0R − eR k +
kΩ ke0Ω − eΩ k
λm (J)
λm (J)
≤
or
1
≤
(kR ,
λm (J)
kΩ )
!
ke0R − eR k
ke0Ω − eΩ k
which can be written as
kf x, γ(x0 ) − f (x, γ(x)) k ≤ Lkx0 − xk
(5.29)
Chapter 3. Control
62
if L is given by
L=
1
λm (J)
q
2 + k2
kR
Ω
(5.30)
Next, we need the constants c1 − c4 . The constants c1 and c2 defined in equation (5.12a)
come from the bounds on the Lyapunov function. Since kxk = kzk, c1 can be obtained
from matrix (3.45) by looking at its smallest eigenvalue which is given by
c1 = λm (M1 ) =
kR λm (J)
+
−
2
2
q
4c2 + (kR − λm (J))2
(5.31)
2
and is guaranteed to be positive because of the choice of c in equation (3.49).
The constant c2 is found in the same way from M2 as
c2 = λM (M2 ) =
bkR λM (J)
+
+
2
2
q
4c2 + (bkR − λM (J))2
2
(5.32)
The constant c3 is obtained from matrix W as
r
c3 = λm (W ) =
ckR
kΩ − c
+
−
2λM (J)
2
ckR
λM
+ c − kΩ
2
+
ckΩ
λm (J)
2
2
(5.33)
At last, to find c4 we may write the gradient in terms of eR and eΩ as
∇eR V = ceTΩ
(5.34)
∇eΩ V = eTΩ J + ceTR
(5.35)
and
, so, in term of the errors, the gradient becomes
(∇eR V, ∇eΩ V) = ceTΩ , ceTR + eTΩ J
(5.36)
k∇Vk ≤ ckeR k + (c + λM (J)) keΩ k
(5.37)
and its norm bounded by
Coming back to our bound,
with c4 given by
k∇Vk ≤ c4 kxk
(5.38)
q
c4 = c2 + (c + λm (J))2
(5.39)
Chapter 3. Control
Constant
L
T
c1
c2
c3
c4
TsM AX
63
Evaluates to
q
1
2 + k2
kR
Ω
λ
(J)
m
r
2 2
kR
kΩ
+
1
+
λm (J)
λm (J)
q
4c2 + (kR − λm (J))2
kR λm (J)
+
−
2
2
2
q
2
4c + (bkR − λM (J))2
bkR λM (J)
+
+
2
2
2
r
2 2
ckR
ckΩ
+
c
−
k
+
Ω
λM
λm (J)
ckR
kΩ − c
+
−
2λM (J)
2
2
q
c2 + (c + λm (J))2
r 1 c3 c1
Lδ
sup δ | δe ≤
LT c4 c2
Table 5.1: Summary of the required constants to compute the bound on the maximum
sample time TsM AX , and the formula for the bound itself.
With these results, summarized in Table 5.1, we have all the constants to find the bound
for the maximum sample time using equation (5.16).
5.3.2
Bound on the Sample Time for the Robust Attitude Control Law
in SO(3)
In the preceding section, we left aside the robust control law obtained previously. Now
we will study how it is affected by the robustization term, and what modifications should
be carried out to include its effects in the bound for the sample time.
The asymptotic stability assumed for the bound in terms of the constants no longer
holds because of the ellipse of (4.37) lying at the center of the region under analysis.
We recall that inside the ellipse we cannot guarantee that the time derivative of the
Lyapunov function is negative.
But when standing outside, we can analyze the behavior pretending that everything is
fine inside the ellipse and knowing that it will only apply until the ellipse is reached.
Constants c1 and c2 and c4 are not affected by the robustization term since they only
depend on the Lyapunov function, and it was stated that the Lyapunov function for the
system is not affected by the control input, only its time derivative is.
Chapter 3. Control
64
Constant c3 is changed; now it no longer holds that it is bound by a purely quadratic
term because when the system enters the ellipse the bound no longer holds. But equation
(4.36) has the form
V̇(x) ≤ −akxk2 + b
(5.40)
and we can use another parabola which passes through the origin and intersects the
parabola of equation (5.40) at kxk = xmin and is always below the original parabola
from there on. This value of xmin must be chosen so that the values of x lie outside the
ellipse, in the region where V̇ < 0, so
s
xmin >
3a(δR + δE )
λm (W )
(5.41)
We call the new constant associated with this new parabola c03 and we obtained it from
equating both parabolas
−c03 x2min = −c3 x2min + b
and it takes the value
c03 = c3 −
3 (δR + δE ) a
x2min
(5.42)
For the constant L it is more difficult to obtain a closed value for the effect of the
robustization, but we can analyze a worst case scenario. To equation (5.28) we must
add the term pertaining to µ̄ as defined in equation (4.30) so it becomes
¯ 0 ) − f x, γ(x)
¯ k ≤
kf x, γ(x
1
k − kR e0R − eR − kΩ e0Ω − eΩ + µ̄0 − µ̄k (5.43)
λm (J)
with µ̄0 indicating that it is evaluated at the primed error vectors, while the unprimed
µ̄ is evaluated at the unprimed error vectors.
A worst case is when the vector ēA = ēR + cJ −1 ēΩ is collinear with ėΩ and with their
primed versions are also collinear at the same time, but with opposite directions. This
is not actually possible, but it serves the purpose of finding a worst case bound.
In such a situation L should be replaced by L0 which is obtained by subtracting the
robustization term from the non-robust control action.
Chapter 3. Control
65
kf (x, γ̄(x)) − f x, γ̄(x0 ) k ≤
0
1
k − kR e0R − eR − kΩ e0Ω − eΩ
λm (J)
!
−
(δR + δE ) e0R + cJ −1 e0Ω + ∆A
kēA k + a
!
+
(δR + δE ) eR + cJ −1 eΩ + ∆A
kēA k + a
(5.44)
k
kR
(δR + δE )
k e0R − eR k
+
λm (J)
aλm (J)
kΩ
(δR + δE )
+
k e0Ω − eΩ k
+
2
λm (J)
aλm (J)
kf (x, γ̄(x)) − f x, γ̄(x ) k ≤
(5.45)
We have assumed that the perturbation is the same at x and at x0 , as it is an instantaneous value, so ∆A = ē0A − e0a = ēA − eA . If this assumption is not made, the difference
in the time derivative of the state due to the control being evaluated at different states
x0 and x would not be Lifschitz in the difference x0 −x and there would not be a Lifschitz
constant L. We can define L0 as
s
(δR + δE ) 2
(δR + δE ) 2
1
0
kR +
+ kΩ +
L =
λm (J)
a
aλm (J)
(5.46)
so
kf (x, γ̄(x)) − f x, γ̄(x0 ) k ≤ L0 kx0 − xk
(5.47)
The constant T is found in a similar way as L to take a new value for the robust control,
T 0 , given by
1
T0 =
λm (J)
s
(δR + δE )
kR +
a
2
(δR + δE )
+ λm (J) + kΩ +
aλm (J)
2
(5.48)
The results from the preceding section hold only for xmin ≤ kxk < xM AX and with c3 ,
T and L replaced c03 , L0 and T 0 respectively. If xmin is chosen too close to
1
λm (W ) ,
it will
yield too small a bound for the time step. And the values for L0 and T 0 will also further
reduce the bound on the time step. Additionally, the structure of the stabilizing term
µ itself makes it extremely conservative to bound it by its Lifschitz constant since, as
seen in Figure 5.2, when keA k > a it tends to a constant value.
Chapter 3. Control
66
Figure 5.2: The bound by a Lifschitz constant on the robustization term µ makes the
resulting bound extremely conservative, as the actual function being bounded tends to
a constant value.
We remark that the bound is only a sufficient condition for the system to be stable, but
it is not required. It can be viewed as a conservative bound. In other words, values of
the time step larger than the bound will probably still render the system stable, just
that we cannot guarantee it from these equations. Stability inside kxk ≤ xmin also is
probably achieved for the time steps provided by this bound, and larger ones as well. In
Table 5.2 we summarize the results of this section.
Constant
L0
T0
c03
Evaluates to
1
λm (J)
s
s
(δR + δE )
kR +
a
2
(δR + δE )
+ kΩ +
aλm (J)
2
(δR + δE ) 2
(δR + δE ) 2
+ λm (J) + kΩ +
kR +
a
aλm (J)
r
2 2
ckR
ckΩ
+ λm
λM + c − k Ω
(J)
kΩ − c
3 (δR + δE ) a
ckR
+
−
−
2λM (J)
2
2
x2min
1
λm (J)
Table 5.2: Summary of the modifications on the constants of Table 5.1 for the time
bound for the robust version of the control law.
Chapter 6
Controller Design
In previous sections, we found control laws that track an arbitrary attitude command
subject to some restrictions on its maximum angular speed and the magnitude of the
perturbations it is subject to, arising from actual perturbations on the torque experienced by the system or due to uncertainties in the measurements of the attitude and
the angular velocity.
The resulting controller depends on 3 parameters, namely kR , kΩ and c. Note that c
must be chosen such that it obeys restriction (3.49). These act as the gain of the control
law, and are subject to all the trade-offs associated with controller gains. In particular,
for a given system and given bounds on the perturbations, the bound on the sample
time depends only on these gains, and the minimum attainable error also depends only
on these gains.
We will regard them as functions of the gains and obtain best values for the gains in
terms of the desired performance.
We start by defining the minimum attainable error as some kind of measure of the ellipse
of equation (4.37). We recall that that equation is a bound on the minimum error the
system can attain and we cannot guarantee that the tracking error will take smaller
values than this bound. Taking the bounds on the perturbations as fixed, this ellipse
depends only on the gains. So we define a map κ : R3 → R
κ (kR , kΩ , c) = µ (ε (kR , kΩ , c))
(6.1)
where µ implies some measurement function that allows us to compare ellipses and order
them under some criteria. One such function may be µ(ε) = sM its major semi axis
length, or µ(ε) = A(ε) its area.
67
Chapter 3. Control
68
We will also define the sample time associated with a choice of gains, τ : R3 → R as the
bound from previous section
τ (kR , kΩ , c) = TsM AX
associated
with
kR , kΩ , c
(6.2)
We also define the best choice of the gains as the one which simultaneously minimizes
the error and maximizes the sample time.
The set of all the combinations of (kR , kΩ , c) that give sample times larger than a given
value t will be called Θ(t)
Θ(t) = (ζ, ξ, ς) ∈ R3 | τ (ζ, ξ, ς) ≥ t
(6.3)
and the set of all the combinations of (kR , kΩ , c) that give minimum attainable errors
smaller than e will be called Ξ(e)
Ξ(e) = (ζ, ξ, ς) ∈ R3 | κ (ζ, ξ, ς) ≤ e
(6.4)
This sets Θ and Ξ need not be defined for every value of (kR (e), kΩ (e), c(e)), the first
restriction on the gains being to the values where these two sets are defined.
For every pair (t, e) the values of (kR , kΩ , c) ∈ Θ(t) ∩ Ξ(e) will give implementations of
the controller with sample time larger or equal than t and minimum attainable error
smaller than or equal to e. To check if a given implementation satisfies requirements
on sample time and minimum attainable error it suffices to check if it is included in the
intersection.
But this relationship can be further explored if some conditions hold. We can find a
bound on the sample time in terms of the minimum attainable error alone, and give the
values of the gains (kR , kΩ , c) that will induce such performance. It can also be used the
other way round, to obtain the error and the gains from the bound on the sample time,
although we think this is less useful for practical controller design.
Therefore, we will parametrize the time in terms of the error e as
t(e) = max {τ ∈ R | Θ(τ) ∩ Ξ(e) 6= ∅}
(6.5)
and the best gains for this error will be given by choosing a triple (kR (e), kΩ (e), c(e))
such that
(kR (e), kΩ (e), c(e)) ∈ Θ (t(e)) ∩ Ξ(e)
(6.6)
Chapter 3. Control
69
If there is a single element in the intersection we can obtain unique values for the gains
and the bound on the sample time. This will be the best controller we can obtain using
the analysis of the present work.
In this section, we found a way to choose the gains for the controller such that they
verify error constraints and we have also seen that this choice of gains determines the
bound on the maximum sample time that renders the discrete implementation of the
system stable. In the next chapter, we will present some examples and numerical results
for these examples.
Chapter 7
Results and Discussion
In this chapter, we present some examples and numerical results for these examples. We
start by presenting the model of the UAV used for the numerical examples, we study
the controller design with the tradeoffs of selecting the gains, and we then use these
results to simulate the UAV and its performance under different flight modes. Finally,
we contrast the results.
7.1
UAV model
As stated in section 2.2.5, the main property determining the rotational dynamics of a
rigid body is its moment of inertia. It is represented by a positive definite matrix and we
only need to know its minimum and maximum eigenvalues to implement the controller.
For the UAV under analysis, we chose the values λm (J) = 0.015 and λM (J) = 0.025,
which represent a typical medium sized quadrotor such as [35]. All physical values will
be given in SI units, so the moment of inertia is in kg · m2 .
The measurement accuracy for attitude and angular velocity will be given by the typical
performance of navigation algorithms. We will assume that the maximum errors the
navigation system provides will be values κM AX = 0.7◦ for attitude and χM AX = 0.3◦ /s
for angular velocity. It is important to note that, although when coming from navigation
algorithms, these values have a probabilistic character meaning 2σ deviation, i.e. that
(usually) 95% of the estimated values are within that range of the true value, we are
taking these as an absolute bound.
To better match the results from navigation algorithms, if a 6σ bound could be provided,
it would more faithfully fit the bounds used in the robustization than the usual 2σ
bounds. Probabilistic analyses of the robustization are not easy to perform because of
70
Chapter 4. Results and Discussion
71
the involved formulas and the difficulty of Montecarlo simulations with so many free
parameters.
The bound on aerodynamic and unmodeled perturbation torque was set to an order of
magnitude smaller than the typical δE value found for this system to better understand
the results regarding the perturbations due to measurement inaccuracies and the effect
of sample time on stability instead of focusing on simple unstructured perturbations.
We summarize these values in Table 7.1.
Parameter
λm (J)
λm (J)
δR
κM AX
χM AX
Description
Minimum eigenvalue of inertia tensor
Maximum eigenvalue of inertia tensor
Bound on unmodeled perturbations
Bound on attitude error
Bound on angular velocity error
Value
0.015
0.025
δE /10
0.7
0.3
Unit
kg · m2
kg · m2
Nm
◦
◦ /s
Table 7.1: Summary of the parameters used for numerical results.
7.2
Choice of Error Measurement Function
For all the results in this section, we used as an error measurement function, equation
(6.1), half the diagonal of the rectangle bounding the ellipse, as shown in Figure 7.1,
which is equivalent to choosing k1 = 1 and k2 = 1s in the error measurement function
q
e = µ(ε) = k1 2x + k2 2y
(7.1)
where
x = arcsin(max({x | (x, y) ∈ ε}))
(7.2)
y = max({y | (x, y) ∈ ε})
are the extremal horizontal and vertical points of the ellipse respectively. Note that x
is passed through an arcsine to recover the angle, as keR k is unitless or has units of sine
of angle. The error e has units of angle. This choice puts attitude error and angular
velocity error on equal footing.
Other choices would result in other performance results according to these choices. For
example, for some applications the angular velocity must be precisely controlled and the
attitude may not be so important; the error function may then be chosen to give more
weight to the angular velocity error.
Chapter 4. Results and Discussion
72
Figure 7.1: Definition of the error measurement function e.
7.2.1
A note on the bound on the sample time
The bound on the sample time obtained using the bounds for the robust attitude controller described in section 5.3.2 yield very small values. This is due to the fact that the
robustization term has almost unit magnitude far from the ellipse, and is being bounded
by its behavior near the ellipse with a linear term. This results in the bound being
fair for small values of attitude error and angular velocity error, but very restrictive for
larger values.
Abiding to the note at the end of that section, we use the bound on the sample time for
the non-robust controller as an approximation. We think it is a very good approximation,
as the magnitude of the error is relatively large, and it is not that much important if it
is not so good an approximation for smaller values of the error because they are already
small.
7.3
Effect of the gains on the error and sample time
Before studying the relationship between minimum attainable error and maximum step
time, we will study how the error varies with respect to the choice of the gains by means
of a numerical example. We will use the bounds on angular velocities according to the
“acrobatic” flight mode, Table 7.3.
The minimum attainable error and maximum sample time depend on the three gains
(kR , kΩ , c), but to gain an insight into how it is affected by these gains we will limit our
study to a plane of constant gain c, spanned by kR and kΩ .
Chapter 4. Results and Discussion
73
In Figure 7.2, we overlay a contour plot of the error with the level curves of the sample
time. P0 represents the best choice of gains. Ellipses for the marked points are shown
in Figure 7.3, where we can see the tradeoff being made. If we try to increase the time
step (from 10ms to 12ms in the figure), the resulting error also increases. If we try to
lower the error, moving towards P2 , we are requiring a smaller time step.
Additionally, the tradeoff in error is clearly seen in Figure 7.3, where a higher value of
kΩ , like the value of P1 , yields less error in angular velocity with a correlated increase
in attitude error, as the ellipse is more oblong and closer to the keR k axis.
On the other hand, a higher value of kR , like for P2 would result in smaller attitude error
at the expense of larger angular velocity error. The ellipse for the best choice of gains,
corresponding to P0 , is a compromise between these situations. By choosing different
values of k1 and k2 in the error measurement function, equation (7.1), we can alter the
compromise solution if needed.
Error and Max Time Step
slice of c=0.002
−3
x 10
°
.0
18
16
.0°
0°
14.
16
°
12.0
14
°
10.0
12
s
ms
6.0m
6.0°
4.0
6
8.0ms
8
8.0°
10.0ms
kΩ
P1
12.0ms
14.0ms
10
5.0°
2.
0m
s
P0
4
P2
2
0.01
0.02
0.03
0.04
0.05
kR
0.06
0.07
0.08
0.09
Figure 7.2: A plane of constant c with the overlay of minimum attainable error,
labeled in degrees (color) and maximum sample time labeled in ms (level curves).
Points labeled Pi are detailed in Figure 7.3. P0 corresponds to the best choice of gains.
0.1
Chapter 4. Results and Discussion
74
Error Ellipses for selected points
6
4
|| eΩ || (deg/s)
2
0
−2
−4
P0: ||eR||<4.9°, ||eΩ||<2.6°
P : ||e ||<7.5°, ||e ||<1.4°
1
R
Ω
P2: ||eR||<4.3°, ||eΩ||<6.6°
−6
−8
−6
−4
−2
0
|| eR || (deg)
2
4
6
8
Figure 7.3: Error ellipses corresponding to points selected in Figure 7.2. The red rectangle in the center represents the bound on the attitude measurement error κM AX and
on the angular velocity measurement error χM AX . Ellipse marked as P0 corresponds
to the best choice of gains. The other two show the tradeoff between attitude error and
angular velocity error. It should be recalled that only the first quadrant of the plot
makes sense, the other quadrants are left for clarity, and that this is not a knowledge
ellipse, the errors will converge to these ellipses, but the behavior inside is unknown.
7.4
Angular velocity and acceleration bounds derived from
different flight modes
The constraints on the angular velocity and its command will be defined by the type
of flight we are subjecting our UAV to. The time derivative of the angular velocity will
be limited by the thrust of the rotors and the inertia tensor of the UAV, and it is of
common sense that the command on this angular velocity does not exceed this value. If
we call FM AX the maximum thrust a rotor may exert, the maximum torque MM AX it
will generate will be
MM AX = k · l · FM AX
where k is a constant depending on the geometry of the UAV, and l is the average arm
length at which the rotors are placed with respect to the center of mass. For example,
Chapter 4. Results and Discussion
75
for a quadrotor UAV the maximum torque is exerted when two adjacent rotors are at
√
full throttle while the other two are stopped. In that case k = 2.
Then, by Newton’s law
M = J Ω̇
so Ω̇M AX is bounded as
Ω̇M AX ≤
k · l · FM AX
λM (J)
(7.3)
where we are bounding with the maximum eigenvalue of J to allow for the fact that we
want to be sure that no matter what attitude the UAV has, the angular acceleration
should not be greater than Ω̇M AX .
For the UAV under study, we can estimate FM AX = 5N and l = 0.25m so we obtain
approximately Ω̇M AX ≤ 3000◦ /s2 . But for the commanded angular velocity, we need
only reflect our command, not the physical limit. As the obtained performance depends
on the bounds on angular velocity, its command and the time derivative of its command,
we can see that for different flight modes, i.e. trajectories with different bounds, different
bounds on the performance are obtained. We will study a “super acrobatic” flight mode,
with higher values of ΩM AX , ΩdM AX and Ω̇dM AX , an “acrobatic” mode with smaller
values and a “stable” mode with conservative values.
7.4.1
“Super acrobatic” flight mode
In “super acrobatic” flight mode, we choose Ω̇dM AX =
Ω̇M AX
.
2
In this mode we want the
UAV to perform a full flip starting at a hovering condition and ending at a hovering
condition in the shortest time possible. From a simple back of the envelope calculation,
we can find that the maximum angular velocity required to accomplish this maneuver
in minimum time is half the product of Ω̇M AX and the desired time. We can perform
such a flip in 1s if we choose ΩM AX = 750, ΩdM AX = 750 and Ω̇dM AX = 1500. The time
to perform a flip assumes that the limit on the maximum angular velocity is due only
to the maximum value it reaches during the acceleration phase and is given by
s
tf lip =
4 · 360◦
Ω̇dM AX
(7.4)
Gains and sample time vs error are plotted in Figure 7.4. Values used for this mode are
summarized in Table 7.2.
Chapter 4. Results and Discussion
76
Error vs Max Time Step
mode: super acrobatic
0.2
30
kR
kΩ
0.1833
27.5
c2
0.1667
25
22.5
0.1333
20
0.1167
17.5
0.1
15
0.0833
12.5
0.0667
10
0.05
7.5
0.0333
Max Time Step τ (ms)
Gains kR, kΩ, c2
0.15
5
0.0167
2.5
Max step time τ (ms)
0
0
7.5
15
22.5
30
error (deg)
37.5
45
0
60
52.5
Figure 7.4: Gains and Max Sample Time for the “super acrobatic” flight mode. The
ripples are due to the grid of the search algorithm used and should be smoothed with
a finer pitched grid.
Parameter
ΩM AX
ΩdM AX
Ω̇dM AX
Description
Maximum allowed angular velocity
Maximum commanded angular velocity
Maximum commanded angular acceleration
Value
750
750
1500
Unit
◦ /s
◦ /s
◦ /s2
Table 7.2: Summary of the parameters used for “super acrobatic” flight mode.
7.4.2
“Acrobatic” flight mode
In “acrobatic” flight mode, we choose more moderate values in exchange for extended
times needed to perform the maneuvers. The minimum time to perform the same flip
under the restriction on the maximum angular velocity is obtained by letting the angular
velocity increase at the rate given by Ω̇dM AX = 180 until it reaches ΩdM AX , letting the
angular velocity fixed for a while and then decreasing it at the same rate, and is given
by
tf lip =
Ωd
360◦
+ M AX
ΩdM AX
Ω̇dM AX
(7.5)
The time required to perform the flip restricted to ΩM AX = 120, ΩdM AX = 120 and
Ω̇dM AX = 180 is now extended to approximately 3.5s. Gains and sample time vs error
are plotted in Figure 7.5. Values used for this mode are summarized in Table 7.3.
Chapter 4. Results and Discussion
77
Error vs Max Time Step
mode: acrobatic
0.2
30
kR
kΩ
0.1833
27.5
c2
0.1667
25
22.5
0.1333
20
0.1167
17.5
0.1
15
0.0833
12.5
0.0667
10
0.05
7.5
0.0333
Max Time Step τ (ms)
Gains kR, kΩ, c2
0.15
5
0.0167
2.5
Max step time τ (ms)
0
0
2.5
5
7.5
10
error (deg)
12.5
15
0
20
17.5
Figure 7.5: Gains and Max Sample Time for the “acrobatic” flight mode. Note the
different horizontal scale with respect to the previous plot.
Parameter
ΩM AX
ΩdM AX
Ω̇dM AX
Description
Maximum allowed angular velocity
Maximum commanded angular velocity
Maximum commanded angular acceleration
Value
120
120
180
Unit
◦ /s
◦ /s
◦ /s2
Table 7.3: Summary of the parameters used for “acrobatic” flight mode.
7.4.3
“Stable” flight mode
In “stable” mode, we may be using the attitude to produce horizontal movements while
hovering, but we are not so much interested in doing flips. We chose ΩM AX = 15,
ΩdM AX = 15 and Ω̇dM AX = 60 for this mode. Note that provided the UAV is high
enough above the ground it will still be able to perform the flip, the only problem is it
will take much longer to complete (almost 25s with these values, equivalent to 3000m
in free fall!)
Parameter
ΩM AX
ΩdM AX
Ω̇dM AX
Description
Maximum allowed angular velocity
Maximum commanded angular velocity
Maximum commanded angular acceleration
Value
15
15
60
Unit
◦ /s
◦ /s
◦ /s2
Table 7.4: Summary of the parameters used for “stable” flight mode.
Chapter 4. Results and Discussion
78
Error vs Max Time Step
mode: stable
0.2
30
kR
kΩ
0.1833
27.5
c2
0.1667
25
22.5
0.1333
20
0.1167
17.5
0.1
15
0.0833
12.5
0.0667
10
0.05
7.5
0.0333
Max Time Step τ (ms)
Gains kR, kΩ, c2
0.15
5
0.0167
2.5
Max step time τ (ms)
0
0
1
2
3
4
error (deg)
5
6
7
8
0
Figure 7.6: Gains and Max Time Step for the “stable” flight mode.
7.4.4
Comparison between different flight modes
In Figure 7.7, we analyze the effect of the angular velocity bounds on the error vs. time
performance.
Chapter 4. Results and Discussion
79
Max Time Step vs Error for different flight modes
30
Max Time Step (ms)
25
20
15
10
5
0
stable
acro
s. acro
0
10
20
30
error (deg)
40
50
60
Figure 7.7: Comparison between the maximum time step vs. error for different flight
modes. In red the “stable” mode, in green the “acrobatic” mode, in blue the “super
acrobatic” mode.
7.5
Simulation Setup
To simulate the system under different conditions a standard control simulation setup
was used, depicted in Figure 7.8. The blocks are as follows: (a) is the reference used for
the simulation. We can use fixed trajectories as a source for the commanded attitude
and angular velocities or let the reference be given by the joystick input, a simple switch
allows us to choose the source. The controller block (b) implements the robust controller
developed in this work. It takes as input the estimated or measured angular velocity
and the attitude matrix, and outputs the 4 forces for each of the motors. Block (c)
implements the model of the quadrotor itself, including the 6DOF integration. No
aerodynamic effects are taken into account, although the function calls to do so are
there. It outputs its state and auxiliary variables to evaluate its performance. Block
(d) implements the navigation. For this work, it just reads the state provided by the
quadrotor and adds random noise to account for the perturbations in the measurement
process. It outputs noisy attitude and angular velocity measurements. For future work
this may be replaced by Kalman filters or any other estimation algorithm. Block (e)
serves as the bridge to FlightGear flight simulator, used for visualization purposes only.
Chapter 4. Results and Discussion
80
The controller in block (b) also implements a PID altitude control which can be switched
off and the 6DOF integrator (c) can also suppress position integration to focus only on
the attitude control problem. Altitude control comes in handy for visualization and to
get a real feel of the craft’s performance, but the simulator is not designed to test this
feature.
?
modelo2_diagrama_NF
a
c
Command
[roll, pitch, yaw, height]
b
Command
a
command
Switch
Axes
joyinput
Buttons
Point of View
Joystick Input
state
position
attitude
Control [f1 f2 f3 f4]
control=[f1 f2 f3 f4]
aux1
aux2
Omega
state
errors
R
Quadrotor Controller
Quadrotor
e
position
attitude
FlightGear
(Visualization)
simout2
To Workspace1
simout1
To Workspace
d
R_est
Omega_est
state
Quadrotor Navigation
Figure 7.8: A standard control simulation setup was used. The blocks (a)-(e) are
described in section 7.5.
Figure 7.9: Visualization of the quadrotor being simulated, using FlightGear. Rotors
are depicted as solid colored discs to improve visibility.
Chapter 4. Results and Discussion
7.6
81
Simulations
Next, we will see how the controller performs in simulations. We will firstly study how
it stabilizes a random initial condition to a nominal attitude. Then, we will see its
performance tracking a flip described in the preceding section.
7.6.1
Stabilization
The first analysis will be carried out in “stable” flight mode (as described previously),
and the objective is to see how the robust controller stabilizes from an initial condition
towards nominal attitude.
To model the effect of the sample time on the convergence properties of the systems,
the simulation was run with a time step of 0.5ms using a variable step Runge-Kutta
integrator. This small time step was chosen to represent the continuous time solution
and will be used as a reference to compare larger time steps against. The controller
was configured as a SZH implementation of the continuous time robust controller from
section 4.5, and the controller time step was parametrically increased during different
simulation runs.
The simulation was started with the craft in a “perturbed” state consisting of Euler
angles (0◦ , 0◦ , 45◦ ) (similar to the attitude seen in Figure 7.9) and 20◦ /s pitching angular
velocity. The commanded attitude is the nominal attitude, i.e. Rd = I.
For time steps Ts = 1ms, Ts = 10ms,Ts = 20ms and Ts = 30ms the gains for each
run were selected according to the curves of Figure 7.6. For larger time steps, the
values of the gains were left at the values obtained for Ts = 30ms as the curve goes no
further. But several trial runs were made with different gains, and convergence results
only worsened. The convergence results are shown as an overview in Figure 7.10, with
the ellipses of error also depicted. Some special cases are illustrated in more detail in
subsequent figures.
The error bounds found theoretically in previous section proved to be very conservative,
as much better behavior was observed than predicted. The main reason behind this is
the fact that the commanded attitude was static but the error ellipses correspond to
non-zero bounds on angular velocity and acceleration.
Another influence may be the way the random perturbations were chosen. The bounds
apply to any perturbation that abides by them. But for these simulations, zero-mean
random variables were used as perturbations, so it may be the case that a perturbation
in the form of a constant bias gives different results.
Chapter 4. Results and Discussion
82
Stabilization, Ts=1ms
25
25
25
20
20
20
15
15
15
10
|| eΩ || (deg/s)
30
10
5
0
0
0
−5
−5
−5
−5
0
5
10
15
20
|| eR || (deg)
25
30
35
40
−10
−10
45
5
−5
0
5
10
(a)
25
30
35
40
−10
−10
45
20
20
20
15
15
15
10
|| eΩ || (deg/s)
25
10
5
0
0
0
−5
−5
−5
5
10
15
20
|| eR || (deg)
25
30
35
40
−10
−10
45
−5
0
5
10
15
20
|| eR || (deg)
25
30
35
40
−10
−10
45
Stabilization, Ts=75ms
25
20
20
15
15
15
|| eΩ || (deg/s)
25
20
|| eΩ || (deg/s)
25
10
5
0
0
0
−5
−5
−5
15
20
|| eR || (deg)
25
30
35
40
−10
−10
45
−5
0
5
10
15
20
|| eR || (deg)
25
30
35
40
−10
−10
45
Stabilization, Ts=200ms
20
15
15
15
|| eΩ || (deg/s)
25
20
|| eΩ || (deg/s)
25
20
10
5
0
0
0
−5
−5
−5
15
20
|| eR || (deg)
(j)
25
30
35
40
45
−10
−10
15
20
|| eR || (deg)
25
30
35
40
45
0
5
10
15
20
|| eR || (deg)
25
30
35
40
45
30
35
40
45
10
5
10
10
Stabilization, Ts=1000ms
25
5
−5
Stabilization, Ts=500ms
30
0
45
(i)
30
−5
5
(h)
30
−10
−10
40
5
(g)
10
35
10
5
10
30
Stabilization, Ts=150ms
30
5
0
Stabilization, Ts=100ms
30
0
25
(f)
30
−5
−5
(e)
10
15
20
|| eR || (deg)
5
(d)
−10
−10
10
10
5
0
5
Stabilization, Ts=50ms
30
25
−5
0
Stabilization, Ts=30ms
30
25
−10
−10
−5
(c)
30
|| eΩ || (deg/s)
|| eΩ || (deg/s)
15
20
|| eR || (deg)
(b)
Stabilization, Ts=20ms
|| eΩ || (deg/s)
10
5
−10
−10
|| eΩ || (deg/s)
Stabilization, Ts=10ms
30
|| eΩ || (deg/s)
|| eΩ || (deg/s)
Stabilization, Ts=0.5ms
30
5
−5
0
5
10
15
20
|| eR || (deg)
(k)
25
30
35
40
45
−10
−10
−5
0
5
10
15
20
|| eR || (deg)
25
(l)
Figure 7.10: Simulation results for stabilization. Sample times: (a) 0.5ms, (b) 1ms,
(c) 10ms, (d) 20ms, (e) 30ms, (f) 50ms, (g) 75ms, (h) 100ms, (i) 150ms, (j) 200ms,
(k) 500ms, (l) 1000ms. Ellipses correspond to the error bounds for 1ms, 10ms, 20ms
and 30ms.
Chapter 4. Results and Discussion
83
Stabilization, Ts=100ms
30
25
20
|| eΩ || (deg/s)
15
10
5
0
−5
−10
−10
−5
0
5
10
15
20
|| eR || (deg)
25
30
35
40
45
(a)
Stabilization, Ts=100ms, random gains
30
25
20
|| eΩ || (deg/s)
15
10
5
0
−5
−10
−10
−5
0
5
10
15
20
|| eR || (deg)
25
30
35
40
45
(b)
Figure 7.11: For sample time Ts = 100ms, the choice of best gains still renders
the system stable, while a random or sub-optimal choice of gains shows a degraded
behavior.
In Figure 7.11 (a), the results for Ts = 100ms are plotted again in a more detailed
view. In Figure 7.11 (b) the same sample time for the controller is used but the gains
were chosen in a sub-optimal way, showing degraded performance. Even after trying to
improve the performance adjusting the gains by trial and error, no better results than
those of Figure 7.11 (a) could be obtained.
Chapter 4. Results and Discussion
7.6.2
84
Trajectory Tracking
In this section, we present some simulations that reflect the trajectory tracking performance of the proposed controller. As this controller is of the almost global kind, it is
suitable for acrobatic maneuvers on the whole space of rotation matrices. In particular,
we will show the capability of the controller to perform flips as described in section 7.4.
super acrobatic mode, Ts=20ms
390
360
330
300
270
pitch (deg)
240
210
180
150
120
90
60
30
0
0
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
t (s)
Figure 7.12: Trajectory command (black) and actual trajectory (red) for flip and
backflip maneuver. Details highlited in green are presented in figures 7.13 and 7.14
Gains were selected from Figure 7.4 according to the 20ms error bound. The controller
step time was set at 20ms also. A trajectory demanding a flip and a backflip at a maximum acceleration of 1500◦ /s2 was passed as reference. The UAV was subject to the
same perturbations as before, but the initial condition was very close to nominal attitude. The commanded trajectory as well as the actual trajectory followed by the UAV
are presented in Figure 7.12, with selected areas zoomed in figures 7.13 and 7.14. Visualizations of the simulation are made available online (http://youtu.be/WUM7wxO1uRY
and http://youtu.be/YUNBwQVy1Bw).
Errors obtained are presented in Figure 7.15. They were within the bounds given by
the choice of the gains during the whole simulation. The largest error values were found
during the steep uphill and downhill sections of the curve. During those intervals the
angular acceleration was increasing the angular velocity of the craft up to the 180◦ mark,
and then decreasing it until the resting position was reached, both at the maximum rate
of 1500◦ /s2 . The maximum error is attained also during these periods.
Chapter 4. Results and Discussion
85
super acrobatic mode, Ts=20ms
180
175
pitch (deg)
170
165
160
155
150
3.45
3.455
3.46
3.465
3.47
3.475
t (s)
3.48
3.485
3.49
3.495
3.5
Figure 7.13: Trajectory command (black) and actual trajectory (red) for a flip and
backflip maneuver. During the steep angular acceleration phase, the tracking error is
at its largest.
Finally, the control command is shown in Figure 7.16. This is the force commanded to
the rotors with the common bias to all four rotors removed (this bias is used to obtain
vertical force to counteract gravity and to achieve altitude control, but has not been part
of this study so it has been removed for clarity). As the forces are exerted on opposing
sides of the craft, the net torque applied is proportional to the difference in the forces.
The time range plotted corresponds to the first flip. For the first section of the plot,
the force imbalance causes the torque to increase the angular velocity. For the second
section of the plot, the force imbalance is reversed to reduce angular velocity. The effect
of the controller step time is clearly seen in the plot, as the forces are piecewise constant
between control updates.
Chapter 4. Results and Discussion
86
super acrobatic mode, T =20ms
s
375
370
365
pitch (deg)
360
355
350
345
340
335
330
3.8
4
4.2
4.4
4.6
4.8
t (s)
Figure 7.14: Trajectory command (black) and actual trajectory (red) for a flip and
backflip maneuver. After finishing the flip the error is still small, in part due to the
shape of the angular acceleration command over time.
super acrobatic mode, Ts=20ms
14
12
error (deg)
10
8
6
4
2
0
0
5
10
15
t (s)
Figure 7.15: Errors are at its largest during the steep angular acceleration phases,
they remain moderately small afterwards.
Chapter 4. Results and Discussion
87
Force commanded to rotors 1 and 3
1.25
1
0.75
0.5
Force (N)
0.25
0
−0.25
−0.5
−0.75
ref
F1
−1
−1.25
2.5
F3
2.6
2.7
2.8
2.9
3
3.1
3.2
3.3
3.4
t (s)
3.5
3.6
3.7
3.8
3.9
4
4.1
4.2
4.3
Figure 7.16: Force commanded to opposing rotors to perform the flip. The time
range corresponds to the flip maenuver starting at t = 3s and ending at approximately
t = 4s, shown in black for reference and not to scale. The other pair of rotors has been
removed for clarity. The bias common to the 4 motors to achieve altitude control has
also been removed. The step-like shape of the curves is due to the controller being a
SZH implementation of a continuous controller.
Chapter 8
Conclusion
8.1
Conclusions
A geometric, coordinate-free, almost global controller for the attitude control problem
was studied. This controller was made robust against random bounded perturbations
and also against perturbations induced by noisy or faulty attitude and angular velocity
measurements or estimates.
Bounds on the sample time for the digital implementation of the non-robust version as
well as for the robust version of the controller were found. These bounds depend on the
gains of the controller and on the inertia moment of the rigid body (and on the bounds
used for the robustization in the robust version of the controller).
As both the bounds found for the robust controller and the bound on the sample time
depend on the gains, a relationship between bounds in perturbations and bounds on
sample time can be found. From this relationship, gains can be obtained that minimize
the error while maximizing the sample time, thus giving a practical way to choose the
gains, i.e. design the controller.
Simulations show that the bounds on the sample time are very conservative; nonetheless
they are a good tool to design the controller, as gains chosen using other criteria perform
worse for the same controller sample time.
Although the simulations were carried out using a quadrotor UAV model, the results
are valid for the general rigid body attitude control problem.
From a systems engineering point of view, these results allow for higher level requirements in attitude and angular velocity to be translated into lower level requirements
88
Chapter 6. Conclusion
89
on the digital controller and the navigation subsystem as timing and error performance
requirements respectively.
8.2
Future Work
While developing the robust controller, the errors induced by the measurements were
propagated to the error in attitude and angular velocity in the form of a bound used for
the fixed-σ robustization. The internal structure of this error propagation vector can be
used to improve the robust properties of the controller, instead of just using a bound.
In the design of the controller only the exponential convergence properties were taken
into account while performing the Lyapunov analysis. By also taking into account the
effects of the different parameters of the controller in the bound on the sample time, the
controller may be constructed from the ground up to obtain good sample time bounds.
This can be done in the geometrical framework provided by the SO(3) structure and its
so(3) algebra.
The different flight modes yield different bounds on the attitude and angular velocities,
which in turn end up giving different choices of the gains for the controller. By adjusting
these gains online according to the trajectory to be tracked, tighter bounds can be found
and better gains can be chosen. But switching gains on the fly may lead to instabilities
caused by step responses. An analysis of the effects of changing the values of the gains
on the fly may prove useful to reduce the attitude error and angular velocity errors
achieved by the controller. Such an analysis may be carried out in a switched gains
framework or the gains may be included in the Lyapunov analysis.
The same applies to the bounds on the errors provided by the measurement or estimation
algorithms. It is common for navigation algorithms to provide an online estimate of its
performance. If the algorithm can do so, this can be used to further reduce the errors
on attitude and angular velocity the controller may yield.
Bibliography
[1] R.R. Murphy. Human-robot interaction in the wild: Land, marine, and aerial
robots at fukushima and sendai. In RO-MAN, 2011 IEEE, pages xx–xx, 2011. doi:
10.1109/ROMAN.2011.6005214.
[2] M. Goodrich L. Lin, M. Roscheck and B. Morse. Supporting wilderness search and
rescue with integrated intelligence: autonomy and information at the right time
and the right place. In Proc. 24th AAAI Conf. Artificial Intelligence, Atlanta, GA,
2010.
[3] K. Schmid, H. Hirschmuller, A. Domel, I. Grixa, M. Suppa, and G. Hirzinger. View
planning for multi-view stereo 3d reconstruction using an autonomous multicopter.
Journal of Intelligent & Robotic Systems, 65(1):309–323, Jan 2012.
[4] Zhaodan Kong, Kayhan Özcimder, Nathan Fuller, Alison Greco, Diane Theriault,
Zheng Wu, Thomas Kunz, Margrit Betke, and John Baillieul. Optical Flow Sensing
and the Inverse Perception Problem for Flying Bats. arXiv.org, cs.SY, mar 2013.
[5] Matthew Turpin, Nathan Michael, and Vijay Kumar. Trajectory design and control
for aggressive formation flight with quadrotors. Autonomous Robots, 33(1-2):143–
156, 2012.
[6] R. Mahony, V. Kumar, and P. Corke. Multirotor aerial vehicles: Modeling, estimation, and control of quadrotor. Robotics Automation Magazine, IEEE, 19(3):20–32,
2012.
[7] A. Tayebi and S. McGilvray. Attitude stabilization of a vtol quadrotor aircraft.
Control Systems Technology, IEEE Transactions on, 14(3):562–571, 2006.
[8] M.O. Efe. Neural network assisted computationally simple pi d control of a quadrotor uav. Industrial Informatics, IEEE Transactions on, 7(2):354–361, 2011.
[9] S. Bouabdallah and R. Siegwart. Backstepping and sliding-mode techniques applied
to an indoor micro quadrotor. In Robotics and Automation, 2005. ICRA 2005.
Proceedings of the 2005 IEEE International Conference on, pages 2247–2252, 2005.
90
Bibliography
91
[10] M.O. Efe. Robust low altitude behavior control of a quadrotor rotorcraft through
sliding modes. In Mediterranean Conference on Control Automation, 2007. MED
’07., pages 1–6, 2007.
[11] T. Fernando, J. Chandiramani, Taeyoung Lee, and H. Gutierrez. Robust adaptive
geometric tracking controls on so(3) with an application to the attitude dynamics
of a quadrotor uav. In Decision and Control and European Control Conference
(CDC-ECC), 2011 50th IEEE Conference on, pages 7380–7385, 2011.
[12] K.J. Åström and B. Wittenmark. Computer controlled systems: theory and design.
Prentice-Hall information and system sciences series. Prentice-Hall, 1984.
[13] A. Tchernychev and T. Alt. Stability analysis of sampled-data system with application to control of international space station. In Control Applications, 2000.
Proceedings of the 2000 IEEE International Conference on, pages 820–825, 2000.
[14] Velimir Jurdjevic. Geometric Control Theory. Cambridge University Press, dec
1996.
[15] F Bullo and A Lewis. Geometric Control of Simple Mechanical Systems: Modeling,
Analysis, and Design for Simple Mechanical Control Systems:. Springer-Verlag New
York, LLC, nov 2004.
[16] Taeyoung Lee, M Leok, and N H McClamroch.
Control of complex maneu-
vers for a quadrotor UAV using geometric methods on SE (3). Arxiv preprint
arXiv:1003.2005, 2010.
[17] Taeyoung Lee. Robust Global Exponential Attitude Tracking Controls on SO(3).
arXiv.org, math.OC, sep 2012.
[18] H.K. Khalil. Nonlinear systems. Macmillan Pub. Co., 1992.
[19] M D Shuster. A Survey of Attitude Representations. The Journal of the Astronautical Sciences, 41:439–517, oct 1993.
[20] H Hopf and B Eckmann. Collected Papers - Gesammelte Abhandlungen. Springer,
2001.
[21] John Stuelpnagel. On the Parametrization of the Three-Dimensional Rotation
Group. SIAM Review, 6:1–9, oct 1964.
[22] N A Chaturvedi, A K Sanyal, and N H McClamroch. Rigid-Body Attitude Control.
Control Systems, IEEE, 31(3):30–51, 2011.
[23] John Baez. Week 141. This Week’s Finds in Mathematical Physics, October 26,
1999.
Bibliography
[24] Taeyoung Lee.
92
Robust adaptive geometric tracking controls on SO (3) with
an application to the attitude dynamics of a quadrotor UAV.
Arxiv preprint
arXiv:1108.6031, 2011.
[25] Sanjay P Bhat and Dennis S Bernstein. A topological obstruction to continuous
global stabilization of rotational motion and the unwinding phenomenon. Systems
& Control Letters, 39(1):63–70, 2000.
[26] Paul Pounds, Robert Mahony, and Peter Corke. Modelling and Control of a QuadRotor Robot. In Australasian Conference on Robotics and Automation 2006, Auckland, New Zealand, 2006.
[27] G. D. Padfield. Helicopter Flight Dynamics. Balckwell Publishing, 2008.
[28] Robert Mahony, Tarek Hamel, and Jean-Michel Pflimlin. Nonlinear Complementary
Filters on the Special Orthogonal Group. IEEE Transactions on Automatic Control,
53(5):1203–1218, dec 2008.
[29] S Bonnabel, P Martin, and P Rouchon. Non-Linear Symmetry-Preserving Observers on Lie Groups. IEEE Transactions on Automatic Control, 54(7):1709–1713,
aug 2009.
[30] Petros Ioannou, P A Ioannou, and Jing Sun. Robust Adaptive Control. Prentice
Hall PTR, har/dskt edition, sep 1995.
[31] J L Mancilla-Aguilar. Estabilidad y estabilización de sistemas de control a datos
muestreados. PhD thesis, Facultad de Ciencias Exactas y Naturales, Universidad
de Buenos Aires, 2001.
[32] J L Mancilla-Aguilar, R A Garcia, and M I American Control Conference 1997
Proceedings of the 1997 Troparevsky. Digital implementation of static feedback
laws via SZH. In American Control Conference, 1997. Proceedings of the 1997,
1997.
[33] Lars Grüne, Karl Worthmann, and Dragan Nešić. Continuous-time controller redesign for digital implementation: a trajectory based approach. Automatica, 44(1):
225–232, 2008.
[34] T. Chen and B.A. Francis. Optimal sampled-data control systems. Communications
and control engineering series. Springer, 1995.
[35] Ezequiel Espósito, Alan Kharsansky, Ariel Lutenberg, Federico Roasio, Claus Rosito, and Daniel Schermuk. Diseño e Implementación de un Cuadricóptero de Vuelo
Autónomo. In Congreso Argentino de Sistemas Embebidos, Buenos Aires, Argentina, 2012.