Logo Studenta

-02--TMCIE--2021--JesAs-Eduardo-de-la-Cruz-Aguilar

¡Este material tiene más páginas!

Vista previa del material en texto

Instituto Tecnológico de La Laguna 
 
 
Blvd. Revolución y Av. Instituto Tecnológico de La 
Laguna, Col. Centro. C.P. 27000. Torreón, Coah. México. 
Tel. (871) 7051313 
E-mail: webmaster@correo.itlalaguna.edu.mx 
tecnm.mx | lalaguna.tecnm.mx 
 
DIVISIÓN DE ESTUDIOS DE POSGRADO E INVESTIGACIÓN 
“Implementación de Controladores Robustos para Nano-
Quadrotores usando ROS” 
POR 
ING. Jesús Eduardo de la Cruz Aguilar 
T E S I S 
 
PRESENTADO COMO REQUISITO PARCIAL PARA OBTENER EL GRADO DE MAESTRO 
EN CIENCIAS EN INGENIERÍA ELÉCTRICA 
 
DIRECTOR DE TESIS 
Dr. Héctor Ríos Barajas 
CODIRECTOR DE TESIS 
 Dr. Alejandro Enrique Dzul López 
ISSN: 0188-9060 
 
 
 
 
 
 
 
 
 
RIITEC: (02)-TMCIE- 2021 
Torreón, Coahuila. México 
Mayo 2021 
 
i
El comité tutorial de este trabajo está conformado por:
Presidente: Dr. Héctor Ríos Barajas
Secretario Dr. Alejandro Enrique Dzul López
Vocal: Dr. Víctor Adrián Santibáñez Dávila
Vocal Suplente: Dr. Miguel Ángel Llama Leal
iii
Dedicada a mi familia. . .
I
Agradecimientos
A mi familia.
A mis asesores el Dr. Héctor Ríos Barajas y el Dr. Alejandro Enrique Dzul Ló-
pez por su paciencia, regaños y sus consejos que a lo largo de esta maestría fueron
indispensables para permitirme lograr este trabajo.
A mis compañeros de laboratorio M.C. Romeo Falcón, M.C. Roberto Franco,
M.C. Edgar Martínez, M.C. Ariana Gutiérrez, Ing. Pablo Rochel, Ing. Óscar Mal-
donado, por apoyarme a lo largo de mi maestría con su conocimiento.
A mis compañeros de generación Ing. Iván Nava e Ing. Jesús Salazar, por hacer
el trabajo en equipo más divertido.
Al Dr. Miguel Ángel Llama Leal y Dr. Víctor Adrián Santibáñez Dávila por su
participación en la elaboración del mismo.
A CONACYT por el apoyo financiero brindado para mis estudios de maestría,
con número de CVU 957217, los cuales culminaron con la presentación de esta Tesis.
III
Resumen
En este trabajo de tesis se presenta la implementación de cuatro controladores
para el seguimiento de trayectorias en un vehículo aéreo no-tripulado (UAV, por sus
siglas en inglés de Unmanned Aerial Vehicle), del tipo Nano Quad-Rotor (debido a su
tamaño, peso y sus cuatro rotores). Para garantizar la tarea de seguimiento, se utili-
zan estrategias de control basadas en modos deslizantes, con el fin de tratar de for-
ma robusta las perturbaciones que, en el caso de este trabajo de tesis, son ráfagas de
viento generadas con un ventilador industrial. Los controladores son programados
en el Sistema Operativo Robótico (ROS, por sus siglas en inglés de System Operating
Robot) e implementados en el firmware del Nano Quad-Rotor, donde se asigna la ta-
rea de seguimiento de trayectorias. Finalmente, en los resultados experimentales se
demuestra la efectividad de las leyes de control a través de un análisis comparativo
entre los controladores robustos, además de un controlador PID clásico.
V
Abstract
In this thesis, the implementation of four controllers is presented for the trajec-
tory tracking problem in an Unmanned Aerial Vehicle (UAV); specifically, a Nano
Quad-Rotor type (due to its size, weight and its four rotors). To guarantee the trac-
king task, robust control strategies based on sliding modes are used to deal with the
disturbances, like wind gusts; in our case, they are generated by an industrial fan.
The controllers are programmed in a Robotic Operating System (ROS) and imple-
mented in the firmware of the Nano Quad-Rotor, where it is assigned the regulation
or tracking task. Finally, the experimental results demonstrate the effectiveness of
the control laws through a comparative analysis between the robust controllers and
a classic PID controller.
VII
Índice general
1. Introducción 1
1.1. Motivación . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1
1.2. Planteamiento del Problema . . . . . . . . . . . . . . . . . . . . . . . . . 2
1.3. Estado del Arte . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3
1.4. Contribución . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 5
1.5. Estructura de la Tesis . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 6
2. Preliminares Matemáticos 7
2.1. Notación . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 7
3. Modelado y Control del Nano Quad-Rotor 9
3.1. Modelo Dinámico del Nano Quad-Rotor . . . . . . . . . . . . . . . . . . 9
3.2. Diseño de Control Robusto para Seguimiento de Trayectorias . . . . . 10
3.2.1. Diseño del Controlador de Posición . . . . . . . . . . . . . . . . 11
3.2.2. Diseño del Controlador de Orientación . . . . . . . . . . . . . . 13
1 Controlador PID . . . . . . . . . . . . . . . . . . . . . . . . . . 13
2 Control Singular Terminal por Modos Deslizantes Continuos
(STSMC) [38] . . . . . . . . . . . . . . . . . . . . . . . . 14
3 Control No Singular Terminal por Modos Deslizantes Conti-
nuos (NTSMC) [39] . . . . . . . . . . . . . . . . . . . . 14
4 Control Twisting Continuo (TC) [40] . . . . . . . . . . . . . . . 14
4. Resultados Experimentales 17
4.1. Plataforma . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 17
4.1.1. Nano Quad-Rotor Crazyflie 2.0 . . . . . . . . . . . . . . . . . . . 17
4.1.2. Sistema de Cámaras OptiTrack . . . . . . . . . . . . . . . . . . . 18
4.1.3. Implementación . . . . . . . . . . . . . . . . . . . . . . . . . . . . 19
4.2. Tarea de Regulación . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 20
4.2.1. Regulación PID . . . . . . . . . . . . . . . . . . . . . . . . . . . . 20
4.2.2. Regulación STSMC . . . . . . . . . . . . . . . . . . . . . . . . . . 23
4.2.3. Regulación NTSMC . . . . . . . . . . . . . . . . . . . . . . . . . 25
4.2.4. Regulación TC . . . . . . . . . . . . . . . . . . . . . . . . . . . . 27
4.2.5. Análisis Comparativo de Regulación . . . . . . . . . . . . . . . . 29
4.3. Tareas de Seguimiento de Trayectorias . . . . . . . . . . . . . . . . . . . 34
4.3.1. Seguimiento PID . . . . . . . . . . . . . . . . . . . . . . . . . . . 34
4.3.2. Seguimiento STSMC . . . . . . . . . . . . . . . . . . . . . . . . . 37
4.3.3. Seguimiento NTSMC . . . . . . . . . . . . . . . . . . . . . . . . . 39
4.3.4. Seguimiento TC . . . . . . . . . . . . . . . . . . . . . . . . . . . . 41
4.3.5. Análisis Comparativo de Seguimiento . . . . . . . . . . . . . . . 44
5. Conclusiones 49
VIII
A. Sistema Operativo Robótico (ROS) 51
A.1. Conceptos básicos y programación en ROS . . . . . . . . . . . . . . . . 51
A.2. Comunicación Optitrack-ROS-Crazyflie . . . . . . . . . . . . . . . . . . 52
A.3. Crazyflie . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 53
A.4. Programación de los controladores . . . . . . . . . . . . . . . . . . . . . 53
Bibliografía 57
1
Capítulo 1
Introducción
1.1. Motivación
Debido a la gran diversidad de tareas que los Quad-Rotors pueden realizar (Fi-
gura 1.1), es necesario garantizar que los Quad-Rotors cumplan con su tarea cuando
están expuestos a perturbaciones externas como los son las ráfagas de viento. Por
lo tanto, es importante contar con un controlador robusto que, ante perturbaciones,
permita al Quad-Rotor cumplir con su objetivo de regulación o seguimiento. Es por
esto que en los últimos años se han realizado diversas investigaciones que permiten
un mejor desempeño para los Quad-Rotors en sus áreas de aplicación [1].
Debido a que los Quad-Rotors deben desempeñar sus actividades en ambien-
tes no controlados, es necesario diseñar algoritmos de control robusto que puedan
realizar tareas de seguimiento aún en presencia de perturbaciones externas e incer-
tidumbres. Es claro que dichas perturbaciones e incertidumbres están presentes en
este tipo de vehículos debido a su dinámica compleja y las tareas a desempeñar.
FIGURA 1.1: Aplicaciones de Quad-Rotors.
2 Capítulo 1. Introducción
1.2. Planteamiento del Problema
Las ecuaciones que describen la dinámica simplificada, de un Quad-Rotor (Figu-
ra 1.2), están dadas por [2]:
ẍ = um(cφsθcψ+ sφsψ) + ax ẋ + dx(t), (1.1a)
ÿ = um(cφsθsψ− sφcψ) + ayẏ + dy(t), (1.1b)
z̈ = umcφcθ − g + az ż + dz(t), (1.1c)
θ̈ =
τθ
Jx
+ bθ φ̇ψ̇ + dθ(t), (1.1d)
φ̈ =
τφ
Jy
+ bφ θ̇ψ̇ + dφ(t), (1.1e)
ψ̈ =
τψ
Jz
+ bψ θ̇φ̇ + dψ(t). (1.1f)
En este trabajo se emplea la siguiente notación sx := sin(x) y cx := cos(x). Las
variables x, y ∈ R son las coordenadas en el plano horizontal, z ∈ R es la coordenada
de posición vertical del Quad-Rotor, y θ, φ y ψ ∈ R son los ángulos de Euler para
el cabeceo (pitch), balanceo (roll) y guiñada (yaw), respectivamente; ẋ, ẏ y ż, son las
velocidades traslacionales del Quad-Rotor, φ̇, θ̇ y ψ̇ son las velocidades angulares con
respecto al marco fijo del vehículo. El término um se define como um := u/m donde
u ∈ R representa el empuje total y m ∈ R+ denota la masa del Quad-Rotor; mientras
que los momentos de pitch, roll y yaw están dados por las entradas de control τθ , τφ,
τψ ∈ R, respectivamente. Los términos Jx, Jy y Jz representan momentos de inercia
a lo largo de los ejes x, y y z. Los coeficientes de arrastre están dados por ax, ay y az,
mientras que los coeficientes de inercia están dados por bφ, bθ y bψ. Los términos dx,
dy, dz, dθ , dφ, dψ : R → R representan dinámicas no modeladas y perturbaciones
externas.
1.3. Estado del Arte 3
FIGURA 1.2: Marco de coordenadas del UAV.
El problema de este trabajo de tesis consiste en diseñar e implementar cuatro
controladores robustos para el seguimiento de trayectorias en un Nano Quad-Rotor.
1.3. Estado del Arte
Hoy en día los UAVs representan un área de oportunidad en el sector industrial
y militar, debido a la gran gama de aplicaciones en las que pueden ser utilizados.
Entre los diferentes tipos de UAVs, se encuentran los multi-rotores, como los Quad-
Rotors, Hexa-Rotors y Octo-Rotors. Actualmente el diseño de controladores para
estos vehículos es un tema de interés en la investigación debido a su tamaño pe-
queño, bajo costo, y sus diferentes modos de vuelo (despegue y aterrizaje vertical,
vuelo estacionario, etc.). Algunas aplicaciones en las que estos pueden encontrar-
se son: servicios de topografía y cartografía [3], operaciones de rescate en desastres
[4], inspección de edificios [5], exploración geofísica [6], seguimiento del tráfico [7],
cultivos agrícolas [8].
Algunos trabajos relacionados con el diseño de algoritmos de control para la es-
tabilización y el seguimiento de trayectorias para Quad-Rotors, sin perturbaciones,
se pueden encontrarse en la literatura, por ejemplo en [9], donde se aborda el pro-
blema de un vuelo estacionario y la regulación de la velocidad de traslación de un
UAV con el objetivo de que el vehículo navegue de forma autónoma sin la presencia
de perturbaciones. En [10] se proporciona un enfoque de control por modos desli-
zantes (SMC) sin vibraciones para una aplicación en tiempo real en un Quad-Rotor
para controlar la orientación. En [11] se desarrolla un control adaptable con modos
deslizantes para estabilizar los ángulos del Quad-Rotor y realizar una tarea de se-
guimiento; el controlador desarrollado se aplica sin considerar las perturbaciones ni
las incertidumbres en los parámetros del sistema. En [12] se presenta una estrategia
de control para resolver el problema de seguimiento de trayectorias y formación de
vuelo sin perturbaciones, utilizando un líder virtual y un seguidor en formación.
4 Capítulo 1. Introducción
Por otro lado, es necesario garantizar que los Quad-Rotors cumplirán con su ta-
rea aunque estén expuestos a perturbaciones externas como los son las ráfagas de
viento. Por lo tanto, es importante que los vehículos cuenten con un controlador
robusto que, ante perturbaciones, les permitan cumplir con su objetivo. El control
robusto es una rama de la teoría de control moderna cuyo objetivo consiste en lograr
la estabilidad del sistema ante la presencia de perturbaciones e incertidumbres. Sin
embargo, el diseño de sistemas de control de vuelo robusto para los Quad-Rotors no
es una tarea fácil. La complejidad en el diseño de los controladores para estos sis-
temas surge de la combinación entre su naturaleza subactuada, acoplamiento entre
dinámica traslacional y rotacional, que no es lineal, así como de la posible presen-
cia de perturbaciones externas, como el viento. En [13], se propone un esquema de
control para el seguimiento de trayectoria en un Quad-Rotor, bajo la presencia de
incertidumbres; dicho controlador fue validado experimentalmente. En [14], se pre-
senta un esquema por control predictivo, donde el controlador está diseñado para
lograr una trayectoria precisa bajo la presencia de ráfagas de viento. El desempeño
de esta estrategia está validada a través de estudios experimentales que incluyen
maniobras de regulación de orientación agresiva y ráfagas de viento. Un enfoque
de (SMC, por sus siglas en inglés de Sliding Mode Control) de segundo orden se pro-
pone en [15] para resolver el problema de seguimiento en un Quad-Rotor. En [16],
se propone un SMC junto con un observador por modos deslizantes (SMO, por sus
siglas en inglés Sliding Mode Observer) para un Quad-Rotor que está bajo la presen-
cia de incertidumbres desconocidas. En el mismo contexto, en [17] se ha aplicado un
SMO de alto orden para la estimación de los estados de un Quad-Rotor. En [18], un
método de control no lineal, basado en backstepping integral y un SMC saturado,
se presenta para estabilizar la orientación del Quad-Rotor y alcanzar una tarea de
seguimiento de trayectoria. Un SMC integral difuso adaptable se propone en [19]
para la estabilización robusta de un Quad-Rotor. En [20], se propone una combi-
nación entre un controlador PD y un compensador basado en Laplace, para que la
orientación sea robusta en el control de Quad-Rotores que están bajo algunas incer-
tidumbres. En [21], se propone una técnica de control que combina un algoritmo de
control Super Twisting con un algoritmo robusto de identificación de viento para
resolver el problema de seguimiento de trayectoria para un Quad-Rotor. Un con-
trolador robusto en cascada es presentado por liu2016robust, para un Quad-Rotor,
cuando se presentan con incertidumbres variantes en el tiempo y retrasos en algunas
señales. Un controlador de seguimiento asintótico, para un Quad-Rotor, se propone
en [22] utilizando un SMC basado en inmersión e invarianza. En [23] se presenta un
controlador predictivo basado en modelo para que un Quad-Rotor logre una trayec-
toria precisa ante la presencia de ráfagas de viento. En [24] se propone un control de
orientación no lineal basado en el método del elipsoide atractivo para seguimiento
de trayectorias agresivas en un Quad-Rotor. En [25] se propone un SMC conocien-
do la cota de las perturbaciones para el despegue de un Quad-Rotor. En el mismo
contexto, en [26] se presenta un controlador Super Twisting para el seguimiento de
trayectorias en un Quad-Rotor, asegurando robustez con respecto a perturbaciones
externas, pero sólo actuando en la dinámica de orientación. En [27] se propone un
control robusto predictivo integral, junto con un H∞ no lineal para seguir la trayec-
toria deseada en un Quad-Rotor ante la presencia de perturbaciones aerodinámicas,
incertidumbres paramétricas y estructurales. En [28], se propone un observador, pa-
ra estimar la fuerza de perturbación externa y el par, que la estabilidad asintótica
del error de seguimiento. En [29] se proponen una serie de SMCs y seguimiento
de trayectorias en Quad-Rotors en presencia de perturbaciones externas. En [30] se
propone un controlador para resolver el problema de formación en un grupo de 49
1.4. Contribución 5
Nano Quad-Rotors tipo Crazyflie. La estrategia de control se basa en un controlador
en cascada con un bucle externo para la posición y un lazo interno para la orien-
tación, ambos controladores del tipo PID. En [31] se presenta el diseño y la imple-
mentación de una estructura de controlador difuso PID para resolver el problema de
control de posición de un Nano Quad-Rotor Crazyflie; para la implementación uti-
lizan una plataformaexperimental basada en un sistema de cámaras de bajo costo.
Otro estudio de seguimiento de trayectorias para un Nano Quad-Rotor se muestra
en [32], donde se compara un controlador PID y un controlador tipo LQT utilizando
el Crazyflie. En [33] se presenta un controlador adaptable con un filtro optimizado,
el cual se utiliza para el control de seguimiento de trayectoria en un Nano Quad-
Rotor y se valida experimentalmente. El controlador muestra robustez con respecto
a retrasos, perturbaciones, transmisión de radio e incertidumbres en el modelado
del Quad-Rotor.
Es claro que el problema de seguimiento de trayectorias en Quad-Rotors, en pre-
sencia de perturbaciones, sigue siendo un problema importante y desafiante debi-
do a la dificultad de acomplamiento que existe entre la orientación y la traslación,
considerar perturbaciones e incertidumbres y las no linealidades. Motivado por las
dificultades mencionadas, en este trabajo de tesis se realiza la implementación de
controladores robustos utilizando un Sistema Operativo Robótico (ROS, por sus si-
glas en inglés de System Operating Robot).
ROS se desarrolló originalmente en 2007 bajo el nombre de switchyard, por el
Laboratorio de Inteligencia Artificial de Stanford, para dar soporte al proyecto del
Robot con Inteligencia Artificial de Stanford (STAIR). Desde ese año, Willow Garage,
una empresa incubadora de robots, proporcionó una cantidad de recursos conside-
rable para extender el desarrollo de ROS, siendo impulsado también por investiga-
dores de diversas instituciones en diferentes países [34]. ROS provee los servicios
estándar de un sistema operativo, tales como abstracción del hardware, control de
dispositivos de bajo nivel, implementación de funcionalidad de uso común, paso de
mensajes entre procesos y mantenimiento de paquetes. Está basado en una arquitec-
tura de grafos donde el procesamiento toma lugar en los nodos que pueden recibir,
mandar y multiplexar mensajes de sensores, control, estados, planificaciones y ac-
tuadores, entre otros. La plataforma está orientada para un sistema UNIX (Ubuntu
(Linux)) aunque también se está adaptando a otros sistemas operativos como Fedo-
ra, Mac OS X, Arch, Gentoo, OpenSUSE, Slackware, Debian o Microsoft Windows.
1.4. Contribución
Motivados por las dificultades mencionadas en el diseño e implementación de
controladores para seguimiento de trayectorias en Quad-Rotors, en este trabajo de
tesis se muestra una estrategia de control robusto para el problema de seguimien-
to de trayectorias en un Quad-Rotor. La estrategia está basada en SMCs continuos
para la dinámica de orientación; mientras que para la dinámica de traslación la es-
trategia se basa en el uso de controladores PID. Además, se presenta la implemen-
tación en tiempo real, a través de ROS y un sistema de visión tipo OptiTrack, de los
controladores aplicados al Nano Quad-Rotor Crazyflie 2.0 de la empresa Bitcraze.
Resultados experimentales y análisis comparativos muestran el desempeño de los
diferentes controladores implementados en el Nano Quad-Rotor sometido a ráfagas
de viento.
6 Capítulo 1. Introducción
1.5. Estructura de la Tesis
La estructura del resto del documento de tesis está organizada de la siguiente
manera. El Capítulo 2 muestra los preliminares del trabajo, donde se presentan al-
gunas definiciones. En el Capítulo 3 se presenta el modelado de un Quad-Rotor y el
diseño de una estrategia de control robusto por modos deslizantes continuos para el
seguimiento de trayectorias. En el Capítulo 4 se presentan los resultados experimen-
tales en tiempo real así como un análisis comparativo de los resultados obtenidos.
Finalmente, en el Capítulo 5 se presentan las conclusiones de este trabajo, mientras
que en el Apéndice A se da una noción básica de ROS y el proceso de implementa-
ción de controladores por medio de este sistema operativo.
7
Capítulo 2
Preliminares Matemáticos
En este Capítulo se describe la notación que se empleará en el resto del documen-
to así como definiciones y conceptos fundamentales para el desarrollo del mismo.
2.1. Notación
Una función continua α: R+ → R+ pertenece a la clase K si es estrictamente
creciente y α(0) = 0; pertenece a la clase K∞ si también es no acotada. Una función
continua β: R+ ×R+ → R+ pertenece a la clase KL si para cada s, β(·, s) ∈ K, y
β(r, ·) es estrictamente decreciente para cualquier r ∈ R+.
Considere una ecuación diferencial dependiente del tiempo [35]
dx(t)
f t
= f (t, x(t)), t ≥ t0, t0 ∈ R (2.1)
donde x ∈ Rn es el vector de estados; f : R×Rn → Rn es continua con respecto a
x, y f (t, 0) = 0 para todo t ∈ R. La solución del sistema (2.1), para una condición
inicial x0 ∈ R en un instante de tiempo t0 ∈ R, es denotada por x(t, t0, x0) y definida
en un intervalo de tiempo finito [t0, t0 + T) tal que 0 ≤ T < ∞. Sea Ω una vecindad
abierta del origen en Rn, 0 ∈ Ω.
Definición 1 ([35], [36]): En estado estacionario x = 0, se dice que el sistema (2.1) es:
1. Uniformemente estable (US), si para cualquier e > 0 existe δ(e) tal que para cual-
quier x0 ∈ Ω, si ||x0|| ≤ δ(e), entonces ||x(t, t0, x0)|| ≤ e para todo t ≥ t0, y
cualquier t0 ∈ R.
2. Uniformemente exponencialmente estable (UES), si es US y converge exponen-
cialmente desde Ω, i.e., para cualquier x0 ∈ Ω, existe k, γ > 0, tal que ||x(t, t0, x0)|| ≤
k||x0||e−γ(t−t0) para toda t ≥ t0, y cualquier t0 ∈ R.
3. Uniformemente estable en tiempo finito (UFTS), si es US y converge en tiempo
finito desde Ω, i.e., para cualquier x0 ∈ Ω, existe 0 ≥ Tx0 < +∞ tal que x(t, t0, x0) =
0 para todo t ≤ t0 + Tx0, para cualquier t0 ∈ R. La función T0(x0) = ínf {Tx0 6=
0 : x(t, t0, x0) = 0, ∀t ≤ t0 + Tx0} es llamada el tiempo de asentamiento del sistema
(2.1).
Si Ω = Rn, entonces, x = 0 se dice que es globalmente US (GUS), UES (GUES),
o UFTSA (GUFTS), respectivamente.
8 Capítulo 2. Preliminares Matemáticos
Considere el sistema
ẋ = f (t, x, u), (2.2)
donde f : [0, ∞)×Rn ×Rm es continua a tramos en t y localmente Lipschitz en x y
u. La entrada u es una función continua a tramos y acotada en t para todo t ≥ 0.
Definición 2 [37]. El sistema (2.2) se dice Entrada-Estado Estable (EEE), si existe una
función β ∈ KL y una función γ ∈ K tal que para cualquier estado inicial x0 y para
cualquier entrada acotada x0, la solución x(t, t0, x0) existe para todo t ≥ t0 y satisface
||x(t, t0, x0)|| ≤ β (||x0||, t− t0) + γ
(
sup
t0≤τ≤t
||u(τ)||
)
. (2.3)
La desigualdad (2.3) garantiza que para cualquier entrada acotada u, el estado
x estará acotado. Además, mientras el tiempo transcurre, el estado x estará última-
mente acotado por la función γ.
Teorema 1 [37]. Sea V : [0, ∞)×Rn → R una función continuamente diferenciable tal
que
α1(||x||) ≤ V(t, x) ≤ α2(||x||), (2.4)
∂V
∂t
+
∂V
∂x
f (t, x, u) ≤ −W3(x), ∀||x|| ≥ ρ(||u||) > 0, (2.5)
para todo (t, x, u) ∈ [0, ∞)×Rn ×Rm, donde α1, α2 ∈ K∞, ρ ∈ K y W3(x) es una
función continua y definida positiva en Rn. Entonces el sistema (2.2) es EEE con respecto a
u.
Para una función medible en el sentido de Lebesgue d : R+ → Rm, defina la
norma ||d||[t0,t1) = esssupt∈[t0,t1)||d(t)||, entonces ||d||∞ = ||d||[0,+∞).
9
Capítulo 3
Modelado y Control del Nano
Quad-Rotor
En este Capítulo se describe el modelo dinámico del Nano Quad-Rotor, así co-
mo el diseño de controladores por modos deslizantes continuos. En las siguientes
secciones se presenta la metodología para diseñar las ganancias para cada uno de
ellos.
3.1. Modelo Dinámico del Nano Quad-Rotor
Considere el sistema descrito en (1.1) reducido, i.e.
ξ̇1 = ξ2, (3.1a)
ξ̇2 = gξ(η1)um − G + Λξ2 + dξ , (3.1b)
η̇1 = η2, (3.1c)
η̇2 = Jτ + Ξwη(η2) + dη , (3.1d)
donde ξ1 := (x, y, z)T ∈ R3, ξ2 := (ẋ, ẏ, ż)T ∈ R3, η1 := (θ, φ, ψ)T ∈ R3, η2 :=
(θ̇, φ̇, ψ̇)T ∈ R3, dξ := (dx, dy, dz)T ∈ R3 y dη := (dθ , dφ, dψ)T ∈ R3 representan la
posición, las velocidades lineales, ángulos, velocidades angulares y perturbaciones,
respectivamente. El término um = u/m donde u ∈ R representa el empuje total
y m ∈ R+ la masa del Nano Quad-Rotor. El término Λ := (ax, ay,az) ∈ R3×3 y
Ξ := (bφ, bθ , bψ) ∈ R3×3 son dados por los coeficientes de amortiguamiento y los
coeficientes de inercia. El término G := (0, 0, g)T ∈ R3, J := (J−1x , J−1y , J−1z ) ∈ R3×3
y τ := (τθ , τφ, τψ)T ∈ R3 son los vectores de gravedad, la matriz de inercia y el
vector de fuerzas aplicadas a las direcciones angulares, respectivamente. La función
gξ : R3 → R3 está dada como gξ(η1) := (sφsψ + sθcφcψ, sθcφsψ − sφcψ, cθcφ)T y
wη(η2) := (θ̇ψ̇, φ̇ψ̇, φ̇θ̇)T.
Se asume que las perturbaciones son Lipschitz continuas y están uniformemen-
te acotadas, i.e., ||dx||∞ ≤ Dx, ||dy||∞ ≤ Dy, ||dz||∞ ≤ Dz, ||dθ ||∞ ≤ Dθ , ||dφ||∞ ≤
Dφ, ||dψ||∞ ≤ Dψ, ||ḋx||∞ ≤ D̄x, ||ḋy||∞ ≤ D̄y, ||ḋz||∞ ≤ D̄z, ||ḋθ ||∞ ≤ D̄θ , ||ḋφ||∞ ≤
D̄φ, ||ḋψ||∞ ≤ D̄ψ.
Los motores y hélices mostrados en la Figura 1.2 están configurados de tal forma
que los motores 1 y 2 giran en sentido de las manecillas del reloj, mientras que los
motores 3 y 4 giran en contra de las manecillas del reloj; esto se hace para contra-
rrestar las fuerzas de rotación, haciendo posible un vuelo estable. Cada motor está
separado del centro de masa por una distancia L. Al momento de hacer girar cada
motor se produce un par τi. El empuje Ti generado por el i-ésimo rotor siempre es-
tá apuntando hacia arriba en la dirección z, y en paralelo al eje de rotación de los
10 Capítulo 3. Modelado y Control del Nano Quad-Rotor
motores. El empuje Ti y los momentos τi resultan de la elevación en la dirección z y
momentos en los ejes x, y y z, donde la relación elevación/par y empuje son:
u = T1 + T2 + T3 + T4, (3.2a)
τθ = L(T1 − T2), (3.2b)
τφ = L(T3 − T4), (3.2c)
τψ = τ1 + τ2 − τ3 − τ4. (3.2d)
El par τi, producido por el i-ésimo motor está en función de los empujes Ti por
medio de la relación τi = KTi, donde K ∈ R es una constante positiva diferente
de cero. Las ecuaciones de fuerzas mostradas en (3.2) se pueden reescribir en forma
matricial como: 
u
τθ
τφ
τψ
 =

1 1 1 1
L −L 0 0
0 0 L −L
K K −K −K


T1
T2
T3
T4
 , (3.3)
donde el vector de señales de empujes es construido por las señales Ti donde i = 1, 4.
Esta matriz es invertible ya que su determinante no es nulo, por lo tanto se pueden
encontrar las señales de empuje como se muestra a continuación:
T1
T2
T3
T4
 =

1
4
1
2L 0
1
4K
1
4 −
1
2L 0
1
4K
1
4 0
1
2L −
1
4K
1
4 0 −
1
2L −
1
4K


u
τθ
τφ
τψ
 . (3.4)
3.2. Diseño de Control Robusto para Seguimiento de Trayec-
torias
En esta sección, una combinación entre controladores PID y tres diferentes SMC
continuos se proponen para el sistema (3.1). Se definen las trayectorias deseadas
como xd, yd, zd, ψd ∈ C∞ y acotadas. Entonces los vectores de error de seguimiento
se pueden definir como:
eξ =(ex, ey, ez)T := ξ1 − ξd,
eη =(eθ , eφ, eψ)T := η1 − ηd,
εξ =(εx, εy, εz)T := ξ2 − ξ̇d,
εη =(εθ , εφ, εψ)T := η2 − η̇d,
donde ex := (x − xd), ey := (y − yd), ez := (z − zd) ∈ R, eθ := (θ − θ?), eφ :=
(φ − φ?), eψ := (ψ − ψd) son los errores de posición y orientación, respectivamen-
te; εx := (ẋ− ẋd), εy := (ẏ− ẏd), εz := (ż− żd), εθ := (θ̇ − θ̇?), εφ := (φ̇− φ̇?), εψ :=
(ψ̇ − ψ̇d), son los errores de velocidad traslacionales y angulares del Quad-Rotor;
ξd := (xd, yd, zd)T ∈ R3, ξ̇d := (ẋd, ẏd, żd)T, son los vectores de posición y veloci-
dad traslacional deseada, respectivamente; mientras que ηd := (θ?, φ?, ψd)T, η̇d :=
(θ̇?, φ̇?, ψ̇d)T son vectores de orientación y velocidad angular deseadas, respectiva-
mente; con θ? y φ? como señales de referencia que son diseñadas más adelante. Por
lo tanto, la dinámica del error de seguimiento está dada por:
3.2. Diseño de Control Robusto para Seguimiento de Trayectorias 11
ėξ = εξ , (3.6a)
ε̇ξ = gξ(η1)um − G + Λξ2 + dξ − ξ̈d, (3.6b)
ėη = εη , (3.6c)
ε̇η = Jτ + Ξwη(η2) + dη − η̈d. (3.6d)
Debido a la naturaleza subactuada de la planta, las posiciones x y y no pueden
ser desacopladas y controladas directamente con una entrada de control indepen-
diente. Por lo tanto, las señales de referencia θ? y φ?, así como u, τθ , τφ y τψ, deben
ser calculadas de tal forma que se logre el seguimiento de las consignas deseadas ξd
y ψd. Para esto, se introduce un control virtual ν := (νx, νy, νz)T ∈ R3 en la dinámica
del error de posición (3.6a) y (3.6b)
ėξ = εξ , (3.7a)
ε̇ξ = ν + wξ(η1, um, ν) + Λξ2 + dξ − ξ̈d, (3.7b)
ėη = εη , (3.7c)
ε̇η = Jτ + Ξwη(η2) + dη − η̈d, (3.7d)
donde wξ(η1, um, ν) = (wx, wy, wz) := gξ(η1)um−G− ν. Entonces, se puede estable-
cer una relación para el control virtual ν de la forma:
ν =
um(cφ?sθ?cψd + sφ?sψd)um(cφ?sθ?sψd − sφ?cψd)
umcθ?cφ? − g
 , (3.8)
expresión de la cual es posible calcular um, así como las señales de referencia θ? y φ?
como:
um =
√
νx2 + νy2 + (νz + g)2, (3.9a)
θ? = arctan[(νz + g)−1(νxcψd + νysψd)], (3.9b)
φ? = arcsin
[
u−1m (νxsψd − νycψd)
]
, (3.9c)
donde las velocidades y aceleraciones angulares, correspondientes a θ? y φ?, se con-
sideran cercanas a cero, ya que se asume que el Quad-Rotor no realizará maniobras
agresivas.
Por lo tanto, el objetivo ahora es diseñar el controlador virtual ν y la entrada de
control τ tal que el vector de error de seguimiento e := (eξ , εξ , eη , εξ)T converja a cero
a pesar de incertidumbres y perturbaciones. Para cumplir tal objetivo, se demostrará
que el sistema (3.7a) y (3.7b) es EEE con respecto a eη y dξ , y luego, se demostrará
que el sistema (3.7c) y (3.7d) es GUFTS.
3.2.1. Diseño del Controlador de Posición
Se propone el uso de los siguientes controladores virtuales PID para νx, νy y νz
[29]:
12 Capítulo 3. Modelado y Control del Nano Quad-Rotor
νx = kx0ēx + kx1ex + kx2εx + ẍd − ax ẋ, (3.10a)
νy = ky0ēy + ky1ey + ky2εy + ÿd − ayẏ, (3.10b)
νz = kz0ēz + kz1ez + kz2εz + z̈d − az ż, (3.10c)
donde ēx :=
∫ t
0 ex(τ)dτ, ēy :=
∫ t
0 ey(τ)dτ, ēz :=
∫ t
0 ez(τ)dτ, y las ganancias kxj, kyj y
kzj, con j = 0, 2, son diseñadas tal que las siguientes matrices: 0 1 00 0 1
kx0 kx1 kx2
 ,
 0 1 00 0 1
ky0 ky1 ky2
 ,
 0 1 00 0 1
kz0 kz1 kz2
 , (3.11)
son Hurwitz. Entonces si νx se diseñada como en (3.10a), la dinámica del error para
x está dada por:
ėx = (A + BKx) ex + B(wx + dx), (3.12)
donde las matrices A y B están dadas como:
A =
(
02×1 I2
0 01×2
)
, B =
(
02×1
1
)
,
con ex := (ēx, ex, εx)T ∈ R3 y Kx = (kx0, kx1, kx2) ∈ R1×3 el vector de ganancias. Con
el fin de analizar la estabilidad de (3.12), se propone la siguiente función candidata
de Lyapunov
V = eTx Pxex, Px = P
T
x > 0. (3.13)
La derivada con respecto al tiempo de V, a lo largo de las trayectorias del sistema
(3.12), está dada por
V̇ = eTx (Px Ak + A
T
k Px)ex + 2e
T
x PxB(wx + dx),
donde Ak := A + BKx. Dado que el par (A, B) es controlable, siempre existe Kx tal
que la matriz Ak es Hurwitz, y entonces, se satisface que
V̇(ex) = −eTx Qxex + 2eTx PxB(wx + dx),
V̇(ex) ≤ −λmı́n(Qx)||ex||2 + 2λmáx(Px)||ex||||B|| (||wx||∞ + ||dx||∞) .
Finalmente, para toda ρx ∈ (0, 1), se tiene que
V̇(ex) ≤ −(1− ρx)λmı́n(Qx)||ex||2, ∀||ex|| ≥
2λmáx(P)||B|| (||wx||∞ + ||dx||∞)
ρxλmı́n(Q)
.
El mismo análisis se pude aplicar para las coordenadas y y z. Por lo tanto, se
obtiene el siguiente resultado.
Teorema 2 Sea el control (3.10), aplicado al sistema (3.1). Suponga que kxj, kyj y kzj, con
j = 0, 2, son tales que las matrices (3.11) son Hurwitz. Entonces el sistema (3.7a) y (3.7b)
es EEE con respecto a wξ y dξ .
Note que el término de perturbación wξ puede ser escrito como:
3.2. Diseño de Control Robusto para Seguimiento de Trayectorias 13
wξ(η1, um, ν) = um
 sφsψ + sθcφcψsθcφsψ− sφcψ
cθcφ
−
 sφ?sψd + sθ?cφ?cψdsθ?cφ?sψd − sφ?cψd
cθ?cφ?
 , (3.14)
y debido a que la función es Lipschitz en η1 en R3 y continua en um en R, se tiene
que
||wξ ||∞ ≤ Lξ ||eη ||∞, ∀η1, ν ∈ R3, ∀um ∈ R, (3.15)
para cierta Lξ >0.
3.2.2. Diseño del Controlador de Orientación
Estación Tierra
Trayectoria 
deseada
x,y,z,
Optitrack
Control PID
Externo 
Estación Tierra
Sensores
Crazyflie
Control
 SMC
Interno
Señales
 de
Control
Motoresxd,yd,zd,
xd,yd,zd,
Controlde Posición Control de Orientación Quad-Rotor Crazyflie
Control
Virtual
e
. . . .
d
.d
FIGURA 3.1: Diagrama de Control del Crazyflie.
Es claro que la dinámica del error orientación (3.7c) - (3.7d) se puede ver como
una dinámica desacoplada con tres entradas de control independientes. Por lo tanto,
debido a tal desacoplamiento de la dinámica de orientación, el control de posición
está diseñado como un control de alto nivel, mientras que el control de orientación
es un control de bajo nivel, ver Figura 3.1. A continuación, se implementará un con-
trolador tipo PID y tres SMC continuos para el control de orientación, como los mos-
trados en [29].
Se propone el siguiente control de orientación
τθ = J−1x (τ̄θ − bθ φ̇ψ̇) , (3.16a)
τφ = J−1y
(
τ̄φ − bφ θ̇ψ̇
)
, (3.16b)
τψ = J−1z
(
τ̄ψ − bψθ̇φ̇ + ψ̈d
)
, (3.16c)
donde los términos τ̄θ , τ̄φ y τ̄ψ se pueden diseñar como controladores PID, o como
uno de los tres diferentes SMCs continuos descritos a continuación
1 Controlador PID
τ̄j = k j0ēj + k j1ej + k j2ε j, ∀j = θ, φ, ψ, (3.17)
donde ēj =
∫ t
0 ej(τ)dτ, y las ganancias se diseñan tal que la siguiente matriz: 0 1 00 0 1
k j0 k j1 k j2
 , (3.18)
14 Capítulo 3. Modelado y Control del Nano Quad-Rotor
sea Hurwitz.
2 Control Singular Terminal por Modos Deslizantes Continuos (STSMC) [38]
τ̄j = vj − k j2
⌈
sj
⌋ 1
2 , (3.19a)
sj = ε j + k j1
⌈
ε j
⌋ 2
3 , (3.19b)
v̇j = −k j3
⌈
sj
⌋0 , ∀j = θ, φ, ψ, (3.19c)
donde una posible selección para las ganancias se muestra en la Tabla 3.1.
TABLA 3.1: Selección de ganancias para el controlador STSMC.
Conjunto 1
k j1 > 0
k j2 1.5 ζ
1
2
k j3 1.1 ζ
ζ > D̄j
3 Control No Singular Terminal por Modos Deslizantes Continuos (NTSMC) [39]
τ̄j = vj − k j2
⌈
sj
⌋ 1
3 , (3.20a)
sj = ej + k j1
⌈
ε j
⌋ 3
2 , (3.20b)
v̇j = −k j3
⌈
sj
⌋0 , ∀j = θ, φ, ψ, (3.20c)
donde una posible selección para las ganancias se muestra en la Tabla 3.2.
TABLA 3.2: Ganancias del controladores NTSMC.
Conjunto 1 2 3 4
k j1 20ζ−
1
2 28.7ζ−
1
2 7.7ζ−
1
2 ζ−
1
2
k j2 4.4ζ
2
3 4.5ζ
2
3 7.5ζ
2
3 16ζ
2
3
k j3 2.5ζ 2ζ 2ζ 7ζ
ζ > D̄j > D̄j > D̄j > D̄j
4 Control Twisting Continuo (TC) [40]
τ̄j = vj − k j1
⌈
ej
⌋ 1
3 − k j2
⌈
ε j
⌋ 1
2 , (3.21a)
v̇j = −k j3
⌈
ej
⌋0 − k j4 ⌈ε j⌋0 , ∀j = θ, φ, ψ, (3.21b)
donde una posible selección para las ganancias se muestra en la Tabla 3.3.
Con base en los controladores descritos anteriormente, se obtiene el siguiente
resultado.
3.2. Diseño de Control Robusto para Seguimiento de Trayectorias 15
TABLA 3.3: Ganancias del controladores TC.
Conjunto 1 2 3 4
k j1 25ζ
2
3 19ζ
2
3 13ζ
2
3 7ζ
2
3
k j2 15ζ
1
2 10ζ
1
2 7.5ζ
1
2 5ζ
1
2
k j3 2.3ζ 2.3ζ 2.3ζ 2.3ζ
k j4 1.1ζ 1.1ζ 1.1ζ 1.1 ζ
ζ > D̄j > D̄j > D̄j > D̄j
Teorema 3 [29] Sea el control (3.16) aplicado al sistema (3.1). Suponga que τ̄θ , τ̄φ, y
τ̄ψ, son diseñadas de acuerdo a cualquiera de los SMCs continuos, (3.19), (3.20) y (3.21).
Entonces, en estado estacionario (eξ , εξ , eη , εη) = 0, el sistema (3.7c)-(3.7d) es GUFTS. Si
τ̄θ , τ̄φ y τ̄ψ se diseñan de acuerdo a (3.17); entonces, la dinámica del sistema (3.7c)-(3.7d) es
EEE con respecto a dη .
La prueba de este teorema se describe en [29]. De este modo, de acuerdo al Teo-
rema 2, se tiene que:∥∥∥∥( eξ(t, eξ0, εξ , eη)εξ(t, eξ , εξ0, eη)
)∥∥∥∥ ≤ βξ ∥∥∥∥( eξ0εξ0
)∥∥∥∥ , t + γξ(||eη ||∞), (3.22)
para todo t ≥ 0, y algunas βξ ∈ KL y γξ ∈ K. Entonces, de acuerdo al Teorema 3,
cuando se aplican los SMCs, se tiene que eη(t) = 0, para todo t ≥ Tη > 0; y dado
que el término wξ se desvanece cuando eη = 0, se obtiene que (eξ , εξ) = 0 es GUES.
Cuando se aplican los controladores PID, se obtiene que (eξ , εξ) = 0 es únicamente
GUS. De esta manera, se estable el resultado principal en el siguiente teorema.
Teorema 4 [29] Sean los controladores (3.9), (3.10) y (3.16) aplicados al sistema (3.1).
Suponga que τ̄θ , τ̄φ, y τ̄ψ, son diseñadas de acuerdo a cualquiera de los SMCs continuos,
(3.19), (3.20) y (3.21). Suponga que kxj, kyj, kzj con j = 0, 2, son tales que las matrices
(3.11) son Hurwitz. Entonces, en estado estacionario (eξ , εξ , eη , εη) = 0, el sistema (3.7) es
GUS. Si τ̄θ , τ̄φ y τ̄ψ se diseñan de acuerdo a (3.17); entonces, la dinámica del sistema (3.7) es
EEE con respecto a dξ .
17
Capítulo 4
Resultados Experimentales
En este capítulo se presentan los resultados experimentales para el Nano Quad-
Rotor Crazyflie. Los experimentos se llevaron acabo utilizando un sistema de cáma-
ras del tipo OptiTrack con ROS Melodic 18.04. El tiempo de muestreo de ROS es de
0.03[s].
4.1. Plataforma
4.1.1. Nano Quad-Rotor Crazyflie 2.0
FIGURA 4.1: Crazyflie 2.0
Las dimensiones del Crazyflie 2.0 es de 92 × 92 × 19 [mm], pesa 27 [g], tiene
una batería de LiPo de 3.7 [V] con capacidad de 240 [mA/hr] la cual le permite tener
un vuelo continuo de 7 minutos; cuenta con una unidad de medición inercial (IMU)
de 10 grados de libertad (GDL), divididos en: acelerómetros (3GDL), giroscopios
(3GDL), magnetómetros (3GDL) y un barómetro (1GDL). Además, cuenta con dos
microcontroladores ARM: Cortex M4 (STM32F405) y M0 (nRF51822). El primer mi-
crocontrolador es el encargado de ejecutar los algoritmos de control para los actua-
dores, mientras que el segundo es el encargado del sistema de comunicación. Para la
comunicación del Nano Quad-Rotor Crazyflie, Bitcraze le proporciona un Bluetooth
y un transceptor de 2.4 [GHz] de alto rendimiento llamado Crazyradio PA, el cual
cuenta con un amplificador de 20 [dB] que le permite una línea de visión de hasta
18 Capítulo 4. Resultados Experimentales
1 [Km]. La comunicación con Bluetooth permite la conexión con dispositivos iOS o
Android mediante una aplicación desarrollada por Bitcraze.
4.1.2. Sistema de Cámaras OptiTrack
FIGURA 4.2: Sistema OptiTrack - Cámaras FLEX 3
OptiTrack es una plataforma de captura de movimiento que ofrece un segui-
miento óptico de alto rendimiento a través de sus cámaras y el Software Motive. El
sistema, con el que se cuenta en el Laboratorio de Mecatrónica y Control, posee de
6 cámaras del modelo FLEX 3 (Figura 4.2), las cuales constan con un anillo de 26
leds de radiación infrarroja con una longitud de onda de 850 nanómetros. La cáma-
ra FLEX 3 es capaz de capturar objetos de movimiento rápido con su obturador de
imágenes global, con una velocidad de captura de 100 fotogramas por segundo.
Motive es el Software oficial de OptiTrack, el cual captura el movimiento óptico a
partir de algunos marcadores colocados en el objeto (cuerpo) que se desee capturar;
la Figura 4.3 muestra el software y la configuración utilizada para la plataforma
desarrollada.
FIGURA 4.3: Software Motive
Cuerpos Rígidos: Los marcadores aparecen agrupados, con un sistema de refe-
rencia, una etiqueta y un color único. Una de las características de este listado es que
permite visualizar los cuerpos con los que desea trabajar. Vale la pena señalar que la
posición de los marcadores debe de variar en cada cuerpo, ademas de ser asimétrica.
Esto con la finalidad de evitar errores en la captura de la posición del cuerpo.
4.1. Plataforma 19
Transmisión de datos: Motive se encuentra disponible solo para el sistema ope-
rativo Windows 7 y versiones posteriores. Por esta razón, éste ofrece la posibilidad
de transmitir los datos a través de una red local. Por esta razón es necesario contar
con la dirección IP de la computadora con la que se realizará la transmisión de los
datos (véase Figura 4.3).
Crazyflie 2.0
 
Ventilador
Industrial
Plataforma
OptiTrack MotivePC con ROS
Cámara (OptiTrack)
FIGURA 4.4: Diagrama a bloques del funcionamiento del sistema.
La Figura 4.4 muestra el laboratorio en donde se encuentra la plataforma. Está
consta de seis cámaras OptiTrack, un Nano Quad-Rotor del tipo Crazyflie 2.0, una
computadora con Windows 7 con los software Motive y una computadora con ROS
Melodic (Ubuntu 18.04), además se cuenta con un Ventilador Industrial el cual per-
mite emular ráfagas de viento.
4.1.3. Implementación
El diagrama a bloques de la Figura 4.5 muestra el proceso de controlque se lleva
acabo en el Nano Quad-Rotor para realizar una tarea deseada.
Los bloques de la Figura 4.5 son:
1. Trayectoria deseada: Este bloque tiene como objetivo enviar los valores desea-
dos de xd, yd, zd y ψd.
2. OptiTrack: El bloque OptiTrack transmite, a través de un sistema de 6 cámaras,
la lectura de los estados x, y, z y ψ, utilizando el paquete computacional Motive
y transmitiéndolos por medio de VRPN a ROS.
3. Control PID Externo: Este bloque contiene la implementación de los controla-
dores PID dados en (3.10), que reciben los errores de regulación o seguimiento
20 Capítulo 4. Resultados Experimentales
Estación Tierra
Trayectoria 
deseada
x,y,z,
Optitrack
Control PID
Externo 
Estación Tierra
Sensores
Crazyflie
Control
 SMC
Interno
Señales
 de
Control
Motoresxd,yd,zd,
xd,yd,zd,
Control de Posición Control de Orientación Quad-Rotor Crazyflie
Control
Virtual
e
. . . .
d
.d
FIGURA 4.5: Diagrama de Control del Crazyflie.
en la posición x, y, z. La implementación es realizada en ROS donde el contro-
lador se programa en C++ y funciona a 500 Hz.
4. Control SMC Interno: Este controlador se encuentra en el firmware, y recibe
los errores de φ y θ para realizar el control. El controlador interno tiene la ven-
taja de funcionar significativamente más rápido debido a que no sufre de un
retraso introducido por el enlace de radio.
Además, el control interno necesita cumplir con la tarea de regulación o se-
guimiento a una velocidad más rápida que el control externo, así que se reco-
mienda que el control interno sea dos veces más rápido que el control externo.
Por lo tanto el controlador PID (3.17) y los controladores por modos deslizan-
tes continuos dados en (3.19a), (3.20a), (3.21a) son programados en el firmware
del Crazyflie [41].
5. Señales de control: En este bloque se generan las 4 señales de control para
después ser enviadas al los motores del Nano-Quadrotor. Las señales se repre-
sentan en forma matricial en (3.3). Esta matriz es invertible ya que su deter-
minante no es nulo, por lo tanto se pueden encontrar las señales de empujes
como se muestra en (3.4).
6. Motores: El bloque cuenta con 4 motores tipo DC coreless con conector, con un
diámetro de 7[mm], longitud de 16[mm], peso de 2.7[g], con voltaje nominal
de 4.7[V] y 1000[mA].
4.2. Tarea de Regulación
La tarea diseñada para el Nano Quad-Rotor tiene una duración de 60[s], la cual
consiste en realizar una regulación, donde xd = -0.2 [m], yd = 0.1[m], zd = 0.7[m] y
ψd = −50[deg]; además, el Nano Quad-Rotor es sometido a ráfagas de viento con
una velocidad aproximada de 0.60 [m/s].
4.2.1. Regulación PID
En la Tabla 4.1 se muestran las ganancias según lo mencionado en la sección de la
Implementación del controlador PID para el Nano Quad-Rotor.
En la Figura 4.6 se muestran las posiciones x, y, z del Nano Quad-Rotor con res-
pecto al tiempo. Es evidente que para las tres coordenadas traslacionales se presenta
un sobrepaso; para x el sobrepaso es de 0.1 [m], para y de 1 [m] mientras que para
4.2. Tarea de Regulación 21
TABLA 4.1: Ganancias del controladores PID para Seguimiento.
Ganancias 0 1 2
x kx0 = −2880 kx1 = −43 kx2 = −612
y ky0 = −2880 ky1 = −43 ky2 = −612
z kz0 = −2500 kz1 = −3500 kz2 = −6000
θ kθ0 = −6200 kθ1 = −400 kθ2 = −5900
φ kφ0 = −500 kφ1 = −200 kφ2 = −3000
ψ kψ0 = −6000 kψ1 = −500 kψ2 = −1200
z de 0.3 [m]. Sin embargo, es claro que el tiempo de asentamiento es relativamente
corto, alrededor de 10 [s] para las tres coordenadas.
La Figura 4.7, muestra el desempeño de φ, θ, ψ. Se puede apreciar que para θ y φ
se tiene sobre impulsos en los primeros 10 [s] los cuales hacen que el Nano Quad-
Rotor corrija su trayectoria y cumpla con la tarea; en ψ se observa un pequeño sobre
paso de 10 [deg], sin embargo, el tiempo de asentamiento es al rededor de 5 [s].
Finalmente en las Figuras 4.8 y 4.9 se muestra los errores de la tarea y los empujes.
0 10 20 30 40 50 60
0
0.5
1
0 10 20 30 40 50 60
0
0.6
1.2
0 10 20 30 40 50 60
-0.4
-0.2
0
0.2
FIGURA 4.6: Posición - Regulación con PID
22 Capítulo 4. Resultados Experimentales
0 10 20 30 40 50 60
-8
-4
0
4
0 10 20 30 40 50 60
-10
0
10
20
0 10 20 30 40 50 60
-60
-30
0
FIGURA 4.7: Orientación - Regulación con PID
0 10 20 30 40 50 60
-0.2
0
0.2
0 10 20 30 40 50 60
-0.5
0
0.5
1
0 10 20 30 40 50 60
-0.8
-0.4
0
0.4
0 10 20 30 40 50 60
0
30
60
FIGURA 4.8: Error de Regulación - PID
4.2. Tarea de Regulación 23
0 10 20 30 40 50 60
0
10
20
30
0 10 20 30 40 50 60
-2
0
2
0 10 20 30 40 50 60
0
2.5
5
0 10 20 30 40 50 60
-2
0
2
FIGURA 4.9: Empujes - Regulación con PID
4.2.2. Regulación STSMC
TABLA 4.2: Ganancias del controladores PID para Regulación.
Ganancias 0 1 2
x kx0 = −2880 kx1 = −43 kx2 = −612
y ky0 = −2880 ky1 = −43 ky2 = −612
z kz0 = −9240 kz1 = −63 kz2 = −1322
TABLA 4.3: Ganancias del controladores STSMC para Regulación.
Ganancias 1 2 3 ξ
θ kθ1 = 150 kθ2 =3.5410 kθ3 =5.5 ξθ = 5
φ kφ1 = 200 kφ2 =21.2132 kφ3 = 220 ξφ = 200
ψ kψ1 = 10 kψ2 =4.74316 kψ3 = 11 ξψ = 10
Las Tablas 4.2 y 4.3 muestran las ganancias que se diseñaron de acuerdo a las sec-
ciones 3.2.1 y 3.2.2. Para los controladores STSMC se usó el conjunto de parámetros
1 dado en la Tabla 3.1.
Los comportamientos son mostrados en las Figuras 4.10 y 4.11, donde el color
rojo punteado representa la trayectoria deseada y de color azul se presenta la tra-
yectoria real; en las Figuras 4.12 y 4.13 se muestra el error en regulación y el empuje
requerido por el Nano Quad-Rotor durante la tarea.
24 Capítulo 4. Resultados Experimentales
En la Figura 4.10 se aprecian las posiciones x, y, z del Nano Quad-Rotor con res-
pecto al tiempo. Es evidente que para las tres coordenadas traslacionales se presenta
un sobrepaso; para x el sobrepaso es de 0.1 [m], para y de 1 [m] mientras que para
z de 0.3 [m]. Sin embargo, es claro que el tiempo de asentamiento es relativamente
corto, alrededor de 10 [s] para las tres coordenadas.
Por otra parte, respecto a la orientación del Nano Quad-Rotor, en la Figura 4.11,
se observan los comportamientos de φ, θ, ψ que tiene el Nano Quad-Rotor en regula-
ción; en φ se tiene un comportamiento inicial que va de 7 [deg] a -14 [deg], θ muestra
un comportamiento inicial que oscila entre -6 [deg] y 12 [deg]. En ψ se tiene un so-
brepaso de más de 10 [deg], sin embargo es claro que el tiempo de asentamiento es
relativamente corto. Finalmente, en las Figuras 4.12 y 4.13 se aprecian el error que se
obtuvo del experimento y el comportamiento de los empujes.
0 10 20 30 40 50 60
0
0.5
1
0 10 20 30 40 50 60
0
0.6
1.2
0 10 20 30 40 50 60
-0.4
-0.2
0
0.2
FIGURA 4.10: Posición del Nano Quad-Rotor - Regulación con
STSMC
0 10 20 30 40 50 60
-6
0
6
12
0 10 20 30 40 50 60
-60
-30
0
30
0 10 20 30 40 50 60
-14
-7
0
7
FIGURA 4.11: Orientación - Regulación STSMC
4.2. Tarea de Regulación 25
0 10 20 30 40 50 60
0
0.5
1
0 10 20 30 40 50 60
-0.8
-0.4
0
0.4
0 10 20 30 40 50 60
-0.2
0
0.2
0.4
0 10 20 30 40 50 60
-30
0
30
60
FIGURA 4.12: Error de Regulación - STSMC
0 10 20 30 40 50 60
-20
0
20
40
0 10 20 30 40 50 60
-2
0
2
0 10 20 30 40 50 60
0
2.5
5
0 10 20 30 40 50 60
-2
0
2
FIGURA 4.13: Empuje - Regulación con STSMC
4.2.3. Regulación NTSMC
TABLA 4.4: Ganancias del controlador PID para Regulación.
Ganancias 0 1 2
x kx0 = −2880 kx1 = −43 kx2 = −612
y ky0 = −2880 ky1 = −43 ky2 = −612
z kz0 = −9240 kz1 = −63 kz2 = −1322
TABLA 4.5: Ganancias del controlador NTSMC para Regulación.
Ganancias 1 2 3 ξ
θ kθ1 = 10 kθ2 =11.0873050 kθ3 = 10 ξθ = 4
φ kφ1 = 10 kφ2 = 11.0873052 kφ3 = 10 ξφ = 4
ψ kψ1 = 9.07573 kψ2 =20.88714 kψ3 = 20 ξψ = 10
Las Tablas 4.4 y 4.5 muestran las ganancias que se diseñaron de acuerdo a las sec-
ciones 3.2.1 y 3.2.2. Para los controladores NTSMC se usó el conjunto de parámetros
1 y 2 dado en la Tabla 3.2.
26 Capítulo 4. Resultados Experimentales
En la Figura 4.14 se muestran las posiciones x,y,z del Nano Quad-Rotor con res-
pecto al tiempo. Es evidente que paralas tres coordenadas traslacionales se presenta
un sobrepaso; para x el sobrepaso es de 0.2[m], para y de 1[m] mientras que para z de
0.7[m]. Sin embargo, es claro que el tiempo de asentamiento es relativamente corto,
alrededor de 10[s] para las tres coordenadas.
La Figura 4.15 prueba el comportamiento que tiene el Nano Quad-Rotor en los
ángulos φ, θ, ψ, donde φ tiene un comportamiento que va de -5 a 5 [deg], en θ se
presenta un desempeño mayor que va de -14 a 14 [deg], los cuales ayudan a corregir
la trayectoria del Nano Quad-Rotor en los primeros 10 [s]. En ψ se aprecia un sobre-
paso máximo de alrededor de 10 [deg]. Es evidente que el tiempo de asentamiento
para ψ es menor a los 10 [s].
Por último, en las Figuras 4.16 y 4.17 se muestran tanto el error que se tiene en la
posición y orientación del experimento, así como el comportamiento de los empujes.
0 10 20 30 40 50 60
-0.6
0
0.6
1.2
0 10 20 30 40 50 60
0
0.7
1.4
0 10 20 30 40 50 60
-0.4
-0.2
0
0.2
FIGURA 4.14: Posición - Regulación con NTSMC
0 10 20 30 40 50 60
-5
-2.5
0
2.5
5
0 10 20 30 40 50 60
-14
-7
0
7
14
0 10 20 30 40 50 60
-60
30
0
30
FIGURA 4.15: Orientación - Regulación con NTSMC
4.2. Tarea de Regulación 27
0 10 20 30 40 50 60
-0.6
0
0.6
1.2
0 10 20 30 40 50 60
-1.2
-0.6
0
0.6
0 10 20 30 40 50 60
-0.2
0
0.2
0 10 20 30 40 50 60
0
30
60
FIGURA 4.16: Error de Regulación - NTSMC
0 10 20 30 40 50 60
0
7.5
15
0 10 20 30 40 50 60
-2
0
2
0 10 20 30 40 50 60
0
2.5
5
0 10 20 30 40 50 60
-2
0
2
FIGURA 4.17: Empujes - Regulación con NTSCM
4.2.4. Regulación TC
TABLA 4.6: Ganancias del controladores PID para Regulación.
Ganancias 0 1 2
x kx0 = −2880 kx1 = −43 kx2 = −612
y ky0 = −2880 ky1 = −43 ky2 = −612
z kz0 = −9240 kz1 = −63 kz2 = −1322
TABLA 4.7: Ganancias del controladores TC para Regulación.
Ganancias 1 2 3 4 ξ
θ kθ1 = 73.1004 kθ2 = 33.5410 kθ3 = 11.5 kθ4 =5.5 ξθ = 5
φ kφ1 =62.736617 kφ2 =24.4948 kφ3 =13.8 kφ4 =6.6 ξφ = 6
ψ kψ1 =116.03972 kψ2 =47.4341 kψ3 = 23 kψ4 = 11 ξψ = 10
28 Capítulo 4. Resultados Experimentales
La Tablas 4.6 y 4.7 exhiben las ganancias que se diseñaron de acuerdo a las sec-
ciones 3.2.1 y 3.2.2. Para los controladores TC se usó el grupo de parámetros 1 dado
en la Tabla 3.3.
Las Figura 4.18 muestra las posiciones x, y, z del Nano Quad-Rotor con respecto
al tiempo. Es evidente que para las tres coordenadas de posición se tiene un sobre-
paso; para x el sobrepaso es de 0.1 [m], para y de 0.8 [m] mientras que para z de
0.4 [m]. Sin embargo, es claro que el tiempo de asentamiento es relativamente corto,
alrededor de 10 [s] para x, y,y z.
En la Figura 4.19, se muestra el comportamiento que obtuvo el Nano Quad-Rotor
en la parte Rotacional φ, θ, ψ, donde en el estado φ se tiene un comportamiento que
va de -5 [deg] a 5 [deg] en los primeros 10 [s], para θ se muestra un desempeño que
va de -10 [deg] a 10 [deg]; finalmente el angulo ψ tiene un sobrepaso de 10 [deg] y
es claro que el tiempo de asentamiento está antes de los 10 [s]. En las Figuras 4.20 y
4.21 se da a conocer el error y los empujes obtenidos.
0 10 20 30 40 50 60
0
0.3
0.6
0.9
0 10 20 30 40 50 60
0
0.6
1.2
0 10 20 30 40 50 60
-0.4
-0.2
0
FIGURA 4.18: Posición - Regulación con TC
0 10 20 30 40 50 60
-5
-2.5
0
2.5
5
0 10 20 30 40 50 60
-10
0
10
20
0 10 20 30 40 50 60
-60
-30
0
30
FIGURA 4.19: Orientación - Regulación con TC
4.2. Tarea de Regulación 29
0 10 20 30 40 50 60
0
0.5
1
0 10 20 30 40 50 60
-0.8
-0.4
0
0.4
0 10 20 30 40 50 60
-0.1
0
0.1
0.2
0 10 20 30 40 50 60
0
30
60
FIGURA 4.20: Error de Regulación - TC
0 10 20 30 40 50 60
-15
0
15
30
0 10 20 30 40 50 60
-2
0
2
0 10 20 30 40 50 60
0
2.5
5
0 10 20 30 40 50 60
-2
0
2
FIGURA 4.21: Empujes - Regulación con TC
4.2.5. Análisis Comparativo de Regulación
Para ilustrar mejor el rendimiento del controlador, se propone utilizar la siguien-
te ecuación:
fRMS(t) =
(
1
∆T
∫ T
t−∆T
|| f (σ)||2dσ
) 1
2
(4.1)
donde fRMS : R → R≥0 representa el valor cuadrático medio de la función f :
R→ Rn. Utilizando (4.1) se obtendrán índices de desempeño promedio para el error
de regulación de posición, el error de ángulo de guiñada y las señales de control
Ū = (u, τφ, τθ , τψ)T, con ∆T = 2.
Para proporcionar una comparación cuantitativa más precisa, se mostrarán al-
gunos valores numéricos de las propiedades de los índices de desempeño prome-
dio, es decir, el mínimo min(ēxRMS), la media Mean(ēxRMS) y los valores máximos
max(ēxRMS), ēψRMS .
En la Figura 4.22 se muestra la comparación de los controladores para la tarea de
regulación. La Figura 4.23 muestra el desempeño de cada uno de los controladores
para la orientación del Nano Quad-Rotor, en donde el PID tiene mejor comporta-
miento y el STSMC tiene un sobrepaso de 60 [deg] mayor al resto de los controlado-
res.
30 Capítulo 4. Resultados Experimentales
En la Figura 4.24 se comparan los errores que cada controlador desarrolló en la ta-
rea de regulación, donde no se muestran las señales para θ y φ ya que son señales
generadas por un controlador virtual. En la Figura 4.25 se aprecian los empujes que
desarrolló cada controlador, donde el STSMC muestra una oscilación mayor, la cual
genera ligeros movimientos de orientación agresivos. Las Figuras 4.26 y 4.27 mues-
tran el índice de error de seguimiento de cada uno de los controladores implemen-
tados así como el índice de empuje desarrollado por cada controlador respectiva-
mente. La Figura 4.26 no muestra las señales de referencia θ y φ ya que son señales
generadas por un control virtual. En la Figura 4.28 se muestran las propiedades de
los promedios del índice de error para la posición del Nano Quad-Rotor en la tarea
de Regulación, donde el controlador que tiene menor índice de error es el TC y el
que mayor índice de error tiene es el NTSMC; en la Figura 4.29, el controlador que
menos error tiene es el TC y el que mayor índice de error tiene es el PID. Finalmen-
te, en la Figura 4.30 se aprecian las propiedades de índice de desempeño donde el
STSMC muestra tener el mayor índice de desempeño.
0 10 20 30 40 50 60
0
0.7
1.4
0 10 20 30 40 50 60
-0.5
0
0.5
1
1.5
0 10 20 30 40 50 60
-0.4
-0.2
0
0.2
FIGURA 4.22: Comparación de Posición - Regulación
0 10 20 30 40 50 60
-15
-10
-5
0
5
10
0 10 20 30 40 50 60
-12
-6
0
6
12
18
0 10 20 30 40 50 60
-60
-40
-20
0
20
FIGURA 4.23: Comparación de Orientación - Regulación
4.2. Tarea de Regulación 31
0 10 20 30 40 50 60
-0.5
0
0.5
1
0 10 20 30 40 50 60
-0.8
-0.4
0
0.4
0.8
0 10 20 30 40 50 60
-30
0
30
60
0 10 20 30 40 50 60
-0.5
0
0.5
1
FIGURA 4.24: Comparación de Errores de Regulación
0 10 20 30 40 50 60
-20
0
20
40
0 10 20 30 40 50 60
-2
0
2
0 10 20 30 40 50 60
0
2.5
5
0 10 20 30 40 50 60
-2
0
2
FIGURA 4.25: Comparación de Empujes - Regulación
32 Capítulo 4. Resultados Experimentales
0 10 20 30 40 50 60
0
0.1
0.2
0 10 20 30 40 50 60
0
0.6
1.2
0 10 20 30 40 50 60
0
0.5
1
0 10 20 30 40 50 60
0
25
50
FIGURA 4.26: Índice de error - Regulación
FIGURA 4.27: Índices de Empujes - Regulación
4.2. Tarea de Regulación 33
 PID STSMC NTSMC TC 
0
0.1
0.2
0.3
0.4
PID STSMC NTSMC TC 
0
0.6
1.2
1.8
 PID STSMC NTSMC TC 
0
0.6
1.2
FIGURA 4.28: Propiedades de los índices de desempeño ēxRMS , ēyRMS ,
y ēzRMS - Regulación
PID STSMC NTSMC TC
0
10
20
30
40
50
60
70
80
FIGURA 4.29: Propiedades del índice de desempeño ēψRMS - Regula-
ción
34 Capítulo 4. Resultados Experimentales
PID STSMC NTSMC TC 
0
1
2
3
4
5
FIGURA 4.30: Propiedades del índice de desempeño ŪRMS - Regula-
ción
4.3. Tareas de Seguimientode Trayectorias
El presente experimento consiste en hacer un seguimiento de trayectoria en los
ejes x y y, durante 60 [s], donde xd =0.3 cos(2π0.1t), yd = 0.3 sin(2π0.1t) mientras
que zd = 0.7 [m] y ψd = 0[deg], en donde el Nano Quad-Rotor es sometido a ráfagas
de viento con una velocidad aproximada de 0.60 [m/s].
4.3.1. Seguimiento PID
TABLA 4.8: Ganancias del controlador PID para Seguimiento.
Ganancias 0 1 2
x kx0 = −2880 kx1 = −43 kx2 = −612
y ky0 = −2880 ky1 = −43 ky2 = −612
z kz0 = −2500 kz1 = −3500 kz2 − 6000
θ kθ0 = −6200 kθ1 = −400 kθ2 = −5900
φ kφ0 = −500 kφ1 = −200 kφ2 = −3000
ψ kψ0 = −6000 kψ1 = −500 kψ2 = −1200
En la Tabla 4.8 se muestran las ganancias según lo mencionado en la sección 3.2.1
y 3.2.2. del controlador PID para el Nano Quad-Rotor.
Los comportamientos en posición y en orientación son mostrados en las Figuras
4.31 y 4.32, donde el color rojo punteado representa la trayectoria deseada y de color
azul se presenta la trayectoria real.
En la Figura 4.31 se muestran las posiciones x, y, z del Nano Quad-Rotor con respecto
al tiempo. Es evidente que para las tres coordenadas traslacionales se presenta un
sobrepaso; para x el sobrepaso es de 0.3 [m], para y de 0.4 [m] mientras que para z
de 0.3 [m].
La Figura 4.32 muestra el desempeño de φ, θ, ψ. Se puede apreciar que para θ
y φ se tienen sobre impulsos en los primeros 10 [s], los cuales hacen que el Nano
Quad-Rotor corrija su trayectoria; en ψ se observa un sobrepaso de 10 [deg].
Por último, en las Figuras 4.33 y 4.34 se muestran los empujes y los errores de la
tarea de seguimiento.
4.3. Tareas de Seguimiento de Trayectorias 35
0
1
0.5
0.50.5
1
00
-0.5
FIGURA 4.31: Comportamiento de posición en seguimiento con PID
0 10 20 30 40 50 60
-2.5
0
2.5
5
0 10 20 30 40 50 60
-12
-6
0
6
12
0 10 20 30 40 50 60
-12
-6
0
6
FIGURA 4.32: Comportamiento de orientación en seguimiento con
PID
36 Capítulo 4. Resultados Experimentales
0 10 20 30 40 50 60
0
2.5
5
0 10 20 30 40 50 60
-20
0
20
0 10 20 30 40 50 60
-2
0
2
0 10 20 30 40 50 60
-2
0
2
FIGURA 4.33: Empuje de seguimiento con PID
0 10 20 30 40 50 60
-0.6
0
0.6
1.2
0 10 20 30 40 50 60
-0.8
-0.4
0
0.4
0.8
0 10 20 30 40 50 60
-0.4
0
0.4
0.8
0 10 20 30 40 50 60
-20
-10
0
10
FIGURA 4.34: Error de seguimiento con PID
4.3. Tareas de Seguimiento de Trayectorias 37
4.3.2. Seguimiento STSMC
TABLA 4.9: Ganancias del controlador STSMC para Seguimiento.
Ganancias 0 1 2
0 kx0 = −2880 kx1 = −43 kx2 = −612
1 ky0 = −2880 ky1 = −43 ky2 = −612
2 kz0 = −9240 kz1 = −63 kz2 = −1322
TABLA 4.10: Ganancias del controladores STSMC para Seguimiento.
Ganancias 1 2 3 ξ
θ kθ1 = 150 kθ2 =3.5410 kθ3 =5.5 ξθ = 5
φ kφ1 = 200 kφ2 =21.2132 kφ3 = 220 ξφ = 200
ψ kψ1 = 10 kψ2 =4.74316 kψ3 = 11 ξψ = 10
En las Tablas 4.9 y 4.10 se aprecian las ganancias que se diseñaron de acuerdo
a las secciones 3.2.1 y 3.2.2. Para los controladores STSMC se utilizó el grupo de
parámetros 1 dado en la Tabla 3.1.
En la Figura 4.35, se aprecian la trayectoria deseada (ξd) y la trayectoria real (ξ)
realizada por el Nano Quad-Rotor, donde se tiene sobrepaso para las coordenadas
x, y, z de 0.2[m]. Por otra parte, en la Figura 4.36 se muestra el comportamiento en
(θ, φ, ψ); para θ se tiene un sobrepaso que va de -5 a 5[deg], para φ se muestra un
sobrepaso de oscila entre los -10 y 10[deg], finalmente, para la coordenada ψ se tiene
un sobrepaso de -10 [deg] y permanece oscilando entre -5 y 5 [deg].
Finalmente, en las Figuras 4.37 y 4.38, se aprecia el error de seguimiento así como
los empujes que desarrolló el Nano Quad-Rotor para llegar a sus referencias.
0
1
0.5
0.40.5
0.2
1
00
-0.2
-0.5 -0.4
FIGURA 4.35: Comportamiento de posición en seguimiento con
STSMC
38 Capítulo 4. Resultados Experimentales
0 10 20 30 40 50 60
-5
-2.5
0
2.5
5
0 10 20 30 40 50 60
-10
-5
0
5
10
0 10 20 30 40 50 60
-10
-5
0
5
FIGURA 4.36: Comportamiento de la orientación en seguimiento con
STSMC
0 10 20 30 40 50 60
-1
-0.5
0
0.5
1
0 10 20 30 40 50 60
-0.8
-0.4
0
0.4
0.8
0 10 20 30 40 50 60
-0.6
-0.3
0
0.3
0.6
0 10 20 30 40 50 60
-10
0
10
FIGURA 4.37: Error en seguimiento con STSMC
4.3. Tareas de Seguimiento de Trayectorias 39
0 10 20 30 40 50 60
-15
0
15
30
0 10 20 30 40 50 60
-2
0
2
0 10 20 30 40 50 60
0
2.5
5
0 10 20 30 40 50 60
-2
0
2
FIGURA 4.38: Empuje en seguimiento con STSMC
4.3.3. Seguimiento NTSMC
TABLA 4.11: Ganancias del controladores PID para Seguimiento.
Ganancias 0 1 2
0 kx0 = −2880 kx1 = −43 kx2 = −612
1 ky0 = −2880 ky1 = −43 ky2 = −612
2 kz0 = −9240 kz1 = −63 kz2 = −1322
TABLA 4.12: Ganancias del controlador NTSMC para Seguimiento.
Ganancias 1 2 3 ξ
θ kθ1 = 10 kθ2 =11.0873050 kθ3 = 10 ξθ = 4
φ kφ1 = 10 kφ2 = 11.0873052 kφ3 = 10 ξφ = 4
ψ kψ1 = 9.07573 kψ2 =20.88714 kψ3 = 20 ξψ = 10
Las Tablas 4.11 y 4.12 muestran las ganancias que se diseñaron de acuerdo a las
secciones 3.2.1 y 3.2.2. Para los controladores NTSMC se usó el conjunto de paráme-
tros 1 y 2 dado en la Tabla 3.2.
La Figura 4.39 muestra el comportamiento que tiene el Nano Quad-Rotor en
(x, y, z), utilizando el controlador NTSMC comparado con la trayectoria deseada.
Las trayectorias obtenidas para x y y, tienen un sobrepaso que va entre 0.1 y 0.2 [m]
y para z se tiene un sobrepaso de 0.3 [m]. Los ángulos correspondientes se muestran
en la Figura 4.40, donde θ y φ tienen un comportamiento oscilatorio, para θ oscila
entre -10 a 10 [deg] y para φ de -2.5 a 5 [deg]; por otra parte, en el ángulo ψ, se tiene
un sobrepaso de 16 [deg] y después de 10 [s] permanece más estable.
Finalmente, en las Figuras 4.41 y 4.42, se muestra el error de seguimiento así
como los empujes que necesitó el Nano Quad-Rotor para llegar a sus referencias.
40 Capítulo 4. Resultados Experimentales
0
1
0.4
0.5
0.5
0.2
1
00
-0.2
-0.5 -0.4
FIGURA 4.39: Comportamiento de posición en seguimiento con
NTSMC
0 10 20 30 40 50 60
-10
-5
0
5
10
0 10 20 30 40 50 60
-2.5
0
2.5
5
0 10 20 30 40 50 60
-16
-8
0
8
FIGURA 4.40: Comportamiento de la orientación en seguimiento con
NTSMC
4.3. Tareas de Seguimiento de Trayectorias 41
0 10 20 30 40 50 60
-0.6
0
0.6
1.2
0 10 20 30 40 50 60
-0.8
-0.4
0
0.4
0 10 20 30 40 50 60
-0.5
0
0.5
0 10 20 30 40 50 60
-20
-10
0
10
FIGURA 4.41: Error del Nano Quad-Rotor en seguimiento con
NTSMC
0 10 20 30 40 50 60
-4
0
4
0 10 20 30 40 50 60
-2
0
2
0 10 20 30 40 50 60
0
2.5
5
0 10 20 30 40 50 60
-2
0
2
FIGURA 4.42: Empuje en seguimiento con NTSMC
4.3.4. Seguimiento TC
TABLA 4.13: Ganancias del controladores PID para Seguimiento.
Ganancias 0 1 2
0 kx0 = −2880 kx1 = −43 kx2 = −612
1 ky0 = −2880 ky1 = −43 ky2 = −612
2 kz0 = −9240 kz1 = −63 kz2 = −1322
TABLA 4.14: Ganancias del controladores TC para Seguimiento.
Ganancias 1 2 3 4 ξ
θ kθ1 = 73.1004 kθ2 = 33.5410 kθ3 = 11.5 kθ4 =5.5 ξθ = 5
φ kφ1 =62.736617 kφ2 =24.4948 kφ3 =13.8 kφ4 =6.6 ξφ = 6
ψ kψ1 =116.03972 kψ2 =47.4341 kψ3 = 23 kψ4 = 11 ξψ = 10
En las Tablas 4.13 y 4.14 se aprecian las ganancias que se diseñaron de acuerdo a
las secciones 3.2.1 y 3.2.2. Para los controladores TC se utilizó el grupo de parámetros
42 Capítulo 4. Resultados Experimentales
1 dado en la Tabla 3.3.
En la Figura 4.43 muestra la trayectoria realizada por el Nano Quad-Rotor en
x, y, z, donde en color rojo punteado se muestra la trayectoria deseada y de color azul
se muestra la trayectoria real. Es evidente que para las tres coordenadas de posición
se tiene un sobrepaso; para x el sobrepaso es meno a 0.2[m], y en y se aproxima a
0.1[m] mientras que para z es de 0.2[m]. Es claro que el tiempo de asentamiento es
relativamente corto, para x, y,y z.
En la Figura 4.44, se muestra el comportamiento que obtuvo el Nano Quad-Rotor
en la parte Rotacional φ, θ, ψ, donde en el estado φ se tiene un comportamiento que
va de -5[deg] a 2.5 [deg] en los primeros 10 [s], para θ se muestra un desempeño que
va de -12 [deg] a 12 [deg]; finalmente, el ángulo ψ tiene un sobrepaso de 8 [deg] y
es claro que el tiempo de asentamiento estáantes de los 10 [s]. En las Figuras 4.45 y
4.46 se muestra el error y los empujes obtenidos.
0
1
0.5
0.50.5
1
0
1.5
0
-0.5 -0.5
FIGURA 4.43: Comportamiento de posición en seguimiento con TC
0 10 20 30 40 50 60
-2.5
0
2.5
5
0 10 20 30 40 50 60
-12
-6
0
6
12
0 10 20 30 40 50 60
-10
-5
0
5
FIGURA 4.44: Comportamiento de la orientación en seguimiento con
TC
4.3. Tareas de Seguimiento de Trayectorias 43
0 10 20 30 40 50 60
-0.6
0
0.6
1.2
0 10 20 30 40 50 60
-0.8
-0.4
0
0.4
0.8
0 10 20 30 40 50 60
-0.6
-0.3
0
0.3
0.6
0 10 20 30 40 50 60
-10
0
10
FIGURA 4.45: Error del Nano Quad-Rotor en seguimiento con TC
0 10 20 30 40 50 60
-20
-10
0
10
0 10 20 30 40 50 60
-2
0
2
0 10 20 30 40 50 60
0
2.5
5
0 10 20 30 40 50 60
-2
0
2
FIGURA 4.46: Empuje en seguimiento con TC
44 Capítulo 4. Resultados Experimentales
4.3.5. Análisis Comparativo de Seguimiento
0
1
0.5
0.50.5
1
00
-0.5
FIGURA 4.47: Comparación de Posición - Seguimiento
0 10 20 30 40 50 60
-10
-5
0
5
10
0 10 20 30 40 50 60
-12
-6
0
6
12
0 10 20 30 40 50 60
-20
-10
0
10
FIGURA 4.48: Comparación de Orientación - Seguimiento
4.3. Tareas de Seguimiento de Trayectorias 45
0 10 20 30 40 50 60
-0.6
0
0.6
1.2
0 10 20 30 40 50 60
-1
-0.5
0
0.5
0 10 20 30 40 50 60
-1
-0.5
0
0.5
1
0 10 20 30 40 50 60
-20
-10
0
FIGURA 4.49: Comparación de Errores de seguimiento
0 10 20 30 40 50 60
-20
0
20
0 10 20 30 40 50 60
-2
0
2
0 10 20 30 40 50 60
0
2.5
5
0 10 20 30 40 50 60
-2
0
2
FIGURA 4.50: Comparación de Empujes - seguimiento
En las Figuras 4.47 a 4.50 se presentan los comportamientos de las señales de
posición, orientación, errores, y empujes desarrollados por el Nano Quad-Rotor con
todos los controladores.
Las Figuras 4.51 y 4.52 muestran el índice de error de seguimiento de cada uno
de los controladores implementados así como el índice de empuje desarrolladó por
cada controlador, respectivamente.
La Figura 4.53 muestra las propiedades de los promedios del índice de desempe-
ño de la tarea de seguimiento que tiene el Nano Quad-Rotor, donde el controlador
que tiene menor índice de error en x es el NTSMC, en y el menor índice de error
es del controlador STSMC y en z el menor índice de error es el del controlador TC,
y el que mayor índice de error tiene es el PID; en la Figura 4.54, el controlador que
menos error tiene es el STSMC y el que mayor índice de error tiene es el NTSMC en
ψ. Finalmente, en la Figura 4.55 se aprecian las propiedades de índice de desempeño
donde el NTSMC muestra tener el mayor índice de desempeño.
46 Capítulo 4. Resultados Experimentales
0 10 20 30 40 50 60
0
0.5
1
0 10 20 30 40 50 60
0
0.6
1.2
0 10 20 30 40 50 60
0
0.5
1
0 10 20 30 40 50 60
0
6
12
FIGURA 4.51: Índice de errores - seguimiento
0 10 20 30 40 50 60
0
1
2
3
4
5
FIGURA 4.52: Índices de empujes - seguimiento
PID STSMC NTSMC TC
0
0.5
1
1.5
PID STSMC NTSMC TC
0
0.6
1.2
PID STSMC NTSMC TC
0
0.2
0.4
0.6
0.8
FIGURA 4.53: Propiedades de los índices de desempeño ēxRMS , ēyRMS ,
y ēzRMS - Seguimiento
4.3. Tareas de Seguimiento de Trayectorias 47
 PID STSMC NTSMC TC 
0
0.2
0.4
0.6
0.8
1
FIGURA 4.54: Propiedades del índice de desempeño ēψRMS - Segui-
miento
PID STSMC NTSMC TC
0
0.05
0.1
0.15
0.2
0.25
0.3
FIGURA 4.55: Propiedades del índice de desempeño ŪRMS - Segui-
miento
49
Capítulo 5
Conclusiones
En este trabajo, se implementaron las siguientes estrategias de control robusto
PID, STSMC, NTSMC y TC; a partir del modelo dinámico del Quad-Rotor y el uso
de ROS, las cuales garantizan el seguimiento de trayectorias aún en la presencia de
perturbaciones e incertidumbres. A continuación se enlistan los resultados obteni-
dos.
Se utilizó un control virtual en la dinámica del error de posición para lidiar
con la subactuación del sistema y controlar la posición del Nano Quad-Rotor
de forma independiente.
Se utilizaron estrategias de control por modos deslizante continuos para con-
trolar la orientación del Nano Quad-Rotor.
Se modificó el firmware del Nano Quad-Rotor Crazyflie 2.0 para implementar
los controladores diseñados.
Se realizaron experimentos de regulación y seguimiento con los diferentes ti-
pos de controladores, por modos deslizantes continuos y el PID clásico.
Se realizó un análisis comparativo entre los controladores por modos deslizan-
tes continuos y el controlador PID clásico.
Los resultados experimentales muestran la efectividad de la estrategia de con-
trol propuesta en presencia de ráfagas de viento (generadas a través de un
ventilador industrial).
51
Apéndice A
Sistema Operativo Robótico (ROS)
A.1. Conceptos básicos y programación en ROS
ROS tiene su propio acervo digital (wiki), el cual cuenta con una amplia docu-
mentación del sistema (que va desde la instalación del mismo hasta aplicaciones
complejas como control colaborativo entre robots) y en el cual pueden ser checados
sus conceptos, librerías, herramientas visuales, etc.
A continuación se describen algunos de los conceptos básicos que se consideran
necesarios para comprender la plataforma desarrollada, sin embargo, para mayor
información se recomienda visitar la pagina oficial de ROS. Nodo (node). Un nodo
es un proceso o módulo que realiza algún tipo de algoritmo en el sistema (progra-
mado en C++ o Python). Los nodos se combinan dentro de un grafo, compartiendo
información entre ellos, para crear tareas complejas. Por ejemplo, un nodo puede
controlar algún sensor, actuador u otro dispositivo necesario para un robot. Mensa-
je. Básicamente, es una estructura de datos estrictamente tipada para comunicación
entre nodos. Por ejemplo, geometry_msgs / Twist expresa la velocidad en el espacio
libre dividido en sus partes lineales y angulares de la forma:
Vector3 linear
Vector3 angular, donde Vector3 es otro tipo de mensaje definido como:
float64 x
float64 y
float64 z.
Tópico (topic). Son canales de información entre los nodos (donde se publican
los mensajes). De esta manera, un nodo puede publicar o suscribirse a un tópico.
Por ejemplo, se tiene un nodo llamado posición, el cual emite un tópico que es la
odometría del robot. De esta manera, cualquier nodo puede suscribirse, sin embar-
go, el nodo que emite no controla quién está suscrito. La información es, por tanto,
unidireccional (asíncrona). Si lo que queremos es una comunicación síncrona (peti-
ción/respuesta) debemos usar servicios. Paquete (package). ROS está organizado en
paquetes. Un paquete puede contener un nodo, una librería, un conjunto de datos, o
cualquier cosa que pueda constituir un módulo.
La creciente popularidad de ROS ha atraído varios grupos de investigadores e
ingenieros para generar aplicaciones específicas. Uno de estos grupos es el ROS-
Industrial Consortium [42], el cual está dedicado a la automatización de avanzada
de fábricas. El conjunto de herramientas y librerías de ROS proporciona los meca-
nismos de comunicación entre programas. ROS es un estándar para comunicar entre
sí diferente programas de un mismo sistema, ya sea en la misma computadora o en
52 Apéndice A. Sistema Operativo Robótico (ROS)
varios computadoras. La computación distribuida es un recurso muy común don-
de pequeñas partes de un robot trabajan por separado para conseguir un objetivo
común. Los paquetes estándar proporcionados en las distribuciones de ROS imple-
mentan muchos de los algoritmos comúnmente usado en robótica que ya han sido
depurados y usados de forma estable, por lo que los usuarios pueden reutilizar el có-
digo. El modelo de comunicación y gestión de mensajes de ROS se ha convertido en
estándar y muchas de lasplataformas robóticas ya implementan interfaces para ser
usadas directamente desde ROS. Además de los paquetes estándar, existen muchos
otros en la comunidad que implementan interfaces para sus sistemas (robots, sen-
sores, librerías, etc). Debido al diseño de comunicación por paso de mensajes, ROS
nos permite simular muchos de los dispositivos con los que el sistema trabajará, de
esta forma es posible aislar la funcionalidad del sistema del código de comunicación
entre las diferentes partes del sistema, sensores y actuadores. Uno de los aspectos
claves al desarrollar una aplicación es la capacidad de repetir los experimentos y
simular los sensores y actuadores, permitiéndonos crear conjuntos de prueba. En
general, ROS fue diseñado específicamente para que distintos grupos de personas
pudieran colaborar y desarrollar conjuntamente el trabajo. Por ejemplo, un labora-
torio puede tener expertos en el mapeo de ambientes interiores y podría contribuir
con un sistema de clase mundial para producir mapas. Otro grupo podría tener ex-
pertos en el uso de mapas para navegar, y otro grupo podría haber descubierto un
enfoque de visión por computadora que funciona bien para reconocer objetos pe-
queños en un ambiente en desorden [34].
A.2. Comunicación Optitrack-ROS-Crazyflie
FIGURA A.1: Diagrama a bloques del funcionamiento del sistema.
En el diagrama a bloques de la Figura A.1, se aprecia la plataforma experimental
del Nano Quad-Rotor para la realización de tareas, en donde el programador utili-
za una computadora con ROS Melodic 18.04 que a su vez transmite las consignas
deseadas al Nano Quad-Rotor a través de una antena de 2.4 GHz.
Para la verificación de la tarea asignada al Nano Quad-Rotor, se cuenta con 6 cá-
maras y el software Motive instalado en una computadora con Windows; el uso del
A.3. Crazyflie 53
software Motive permite hacer la transmisión de posición y orientación del vehícu-
lo a la computadora que cuenta con ROS; la computadora tiene la biblioteca Vir-
tual Reality Peripheral Network (VRPN) que le permite leer los datos recibidos del
Motive; esta biblioteca se puede utilizar también con el sistema de visión VICON.
Posteriormente, los datos capturados son enviados al controlador que se encuentra
en ROS para generar las señales de control y enviarlas al Nano Quad-Rotor a tra-
vés de la antena. De este modo, el Nano Quad-Rotor realiza su tarea deseada y es
observado por las cámaras para evaluar el desempeño de esta.
A.3. Crazyflie
Crazyflie 2.0 es un dron pequeño de apenas 92 x 92 x 29 mm y un peso de 27
gramos, cuenta con un sensor de medida de inercia (IMU) de 10 grados de liber-
tad distribuidos (10DoF) de la siguiente manera: acelerómetro (3DoF), giroscopio
(3DoF), magnetómetro (3DoF) y un barómetro (1DoF). Una de las ventajas de traba-
jar con Crazyflie 2.0 es que su programación es de código abierto, por lo cual existe
una gran cantidad de información disponible en lenguajes: Java, Ruby, C/C++, Pyt-
hon y Javascript. Ademas, éste cuenta con dos microprocesadores ARM: Cortex M4
(STM32F405) y M0 (nRF51822). El primero es el encargado de ejecutar los algoritmos
de control para los actuadores del Crazyflie, mientras que el segundo es el encargado
del sistema de comunicación de mismo.
A.4. Programación de los controladores
El Nano Quad-Rotor está controlado por un controlador PID y un SMCs en cas-
cada. El controlador de orientación interno es parte del firmware. Las entradas son
la orientación actual, según lo estimado utilizando los datos del sensor IMU y el
punto de ajuste (orientación y empuje), tal como se recibió por la radio antena. El
controlador funciona a 250 Hz.
El controlador de orientación el cual se encuentra programado en C++, está in-
tegrado en el firmware del Crazyflie. El firmware puede ser descargado escribiendo
los siguientes comandos en la terminal de ubuntu
$ sudo add−apt−r e p o s i t o r y ppa : team−gcc−arm−embedded/ppa
$ sudo apt−get update
$ sudo apt i n s t a l l gcc−arm−embedded
$ g i t c lone −−r e c u r s i v e ht tps : / / g i t h u b . com / b i t c r a z e /
c r a z y f l i e−firmware . g i t
una vez descargado se puede acceder a la carpeta del firmware del Crazyflie utili-
zando el siguiente comando en la terminal de ubuntu
$ cd c r a z y f l i e−firmware
en donde se puede encontrar la carpeta del controlador en la siguiente dirección
crazyflie-firmware/ src/modules/src/controller_eduardo.c
en este archivo es en donde se programa el controlador NTSMC (3.20). Donde para
hacer efectiva cualquier actualización del controlador es necesario verificar el archi-
vo Makefile, ubicado en la siguiente dirección crazyflie-firmware/Makefile tenga el
nombre del controlador actualizado
54 Apéndice A. Sistema Operativo Robótico (ROS)
# ######## S t a b i l i z e r c o n f i g u r a t i o n ##########
ESTIMATOR ?= any
CONTROLLER ?= Eduardo # one of Any , PID , Mell inger , INDI
donde en este caso se utiliza el controlador Eduardo, el cual tiene programado el
Controlador (3.20) y el mismo archivo de control es llamado por otro archivo llama-
do power_distri bution_stock.c el cual genera las señales de control para el Crazy-
flie, para después enviar los empujes al Crazyflie a cada motor a través del archivo
Crazyflie_server.c que se encuentra en el paquete de crazyflie_ros, el cual se verá su
instalación en las siguientes lineas.
Una vez verificado lo anterior es necesario compilar el firmware con las siguientes
lineas en la terminal de ubuntu
$ make
$ make PLATFORM= c f 2
cuando se haya realizado la compilación con éxito, es posible cargar el firmware
modificado al Crazyflie, a través de la radio antena, para eso se debe cambiar el
Crazyflie a modo bootloader (presionar por 3 segundo el botón de encendido hasta
que los leds azules estén parpadeando) y se teclea el siguiente comando después de
haber activado el modo bootloader
$ make cload
éste comando cargará el firmware modificado y será posible utilizar la nueva version
del firmware, el cual permitirá obtener el error entre la orientación deseada y la
orientación real de cada estado de la orientación mediante la IMU.
Para la posición, una vez instalado ROS, es necesario crear el espacio de trabajo
crazyflie_ws, además de instalar el paquete de la Red Periférica de Realidad Virtual
(VRPN) y la pila crazyflie_ros. Una es para obtener los valores obtenidos con el Mo-
tive la cual permitirá cerrar el lazo de control y la otra contiene los drivers para la
comunicación con el Crazyflie 2.0 que enviará las posiciones deseadas al Crazyflie,
respectivamente. Estos paquetes, deberán ser instalados de la siguiente manera:
$ mkdir −p ~/c r a z y f l i e _ w s/ s r c
$ cd ~/c r a z y f l i e _ w s/ s r c
$ catk in_ in i t_workspace
$ g i t c lone ht tps : / / g i t h u b . com / whoenig / c r a z y f l i e _ r o s . g i t
$ cd ~/c r a z y f l i e _ w s
$ catkin_make
una vez terminada la actualización de paquetes crazyflie_ws se instalará el paquete
VRPN para tener comunicación con Optitrack, escribiendo los siguientes lineas de
comando en la terminal.
$ cd ~/c r a z y f l i e _ w s/ s r c
$ sudo apt−get i n s t a l l ros−melodic−vrpn−c l i e n t o−ros
$ cd ~/c r a z y f l i e _ w s
$ catkin_make
$ source ~/c r a z y f l i e _ w s/devel/setup . bash
cada vez que entre a la terminal y quiera utilizar el paquete crazyflie_ws, deberá
teclear
source ~/c r a z y f l i e _ w s/devel/setup . bash
A.4. Programación de los controladores 55
esto asegurará que todas las comandos relacionados con ROS encontrarán los pa-
quetes en todas las terminales. Para actualizar la ventana de terminal actual, use
source /.bashrc, que recargará el archivo.
Puede probarse la configuración conectando el Crazyradio y escribiendo en la
terminal:
$ rosrun c r a z y f l i e _ t o o l s scan
Lo cual imprimirá el identificador uniforme de recursos (URI) de cualquier Crazy-
flie encontrado en rango. Por ejemplo, la salida podría verse así en la terminal de
Ubuntu:
$ radio : / / 0 / 8 0 / 2 5 0K
En este caso, el URI de su

Continuar navegando