Plan
Plan
Plan
INGENIERO EN MECATRÓNICA
PRESENTA:
NATALIO MENDOZA ROBLES
DIRECTOR:
Dr. Edgardo Yescas Mendoza
CO-DIRECTOR:
Como consecuencia de este hecho, el sistema del UAV incluye cada vez más nuevos
módulos y sensores que brindan mayores funcionalidades, o en todo caso, mejoran alguna
característica de vuelo. Sirva de ejemplo el GPS, que permite realizar vuelos programados
en espacios desconocidos, sensores ópticos y ultrasónicos para la detección de obstáculos,
o las radios de telemetría que envían información de interés desde el drone a una estación
de control y viceversa. Otro aporte es el perfeccionamiento de la fotografía aérea, a causa
de que existen más drones con distintos modos o capacidades de vuelo, los cuales nos
ayudan a realizar capturas profesionales de imagen y video (DJI MAVIC PRO, GoPro
Karma, Xiaomi FIMI, entre muchos otros).
Del mismo modo en que se cuenta con drones sofisticados, existen tarjetas de
desarrollo o sistemas dedicados a las aeronaves no tripuladas, que ofrecen la posibilidad
de ser configuradas para distintos fines de investigación; como el AR Drone del fabricante
Parrot, Qualcomm® Snapdragon™ Flight de Qualcomm Technologies, Inc., QDrone de
Quanser o el Crazyflie de la empresa Bitcraze AB. El uso de esta tecnología ha permitido
desarrollar nuevas bases de la odometría visual-inercial (VIO 2 ), algoritmos para la
localización y mapeo simultáneos (SLAM, Simultaneous Localization And Mapping) [4],
el estudio del subsuelo para los sectores agrícolas o el desarrollo de la visión por
computadora a bordo, sólo por mencionar algunas investigaciones.
1
UAV es la denominación técnica más usual. Se puede denominar también como RPA (Remotely Piloted
Aircraft) y coloquialmente como Drone.
2
Por sus siglas en inglés: Vision Inertial Odometry.
1
Otro apartado con grandes avances, es la diversificación de tarjetas controladoras de
vuelo y su inclusión de varias interfaces, las cuales son una opción para la investigación y
el entretenimiento. Brindan al usuario la capacidad de ensamblar su propia aeronave con
el diseño y las características deseadas. También tienen sus contribuciones a la comunidad
científica, por ejemplo, en la colaboración de las controladoras de vuelo comerciales con
computadoras de placa simple para sistemas de vuelo autónomo, o para generar un sistema
con arquitectura abierta o semi-abierta para múltiples objetivos [2].
2. Marco Teórico
2.1 Vehículos Aéreos no Tripulados.
Los multicópteros son un tipo de UAV, se pueden clasificar de acuerdo con el número
de motores que los impulsan y la forma de su carcasa; depende directamente de la actividad
por realizar para optar por un diseño en específico. La Figura 1 indica el tipo de
multicóptero y la configuración del giro de sus motores (sentido horario-azul y antihorario-
anaranjado). Nota: En la configuración Y6, IY6 y X8, son dos motores por cada brazo.
2
Figura 1. Tipo de multicópteros y las configuraciones de sus carcasas.
Los multicópteros son conformados generalmente, por las siguientes partes (ver
Figura 2):
Radio receptor. Recibe la señal del control de mando, la interpreta y genera como
salida: señales PWM (Pulse Width Modulation) donde cada una corresponde a un
canal de la emisora RC. Algunos radios receptores tienen la funcionalidad de convertir
las señales PWM de todos los canales a señal PPM (Pulse Position Modulation), y
enviarla sobre un sólo cable.
3
Guiñada: Movimiento hacia la derecha o izquierda del eje vertical del vehículo. Inclinación: Movimiento
hacia la derecha o izquierda del eje longitudinal. Cabeceo: Rotación hacia adelante o hacia atrás con
respecto al eje transversal. Altitud: Medida de la elevación o descenso en vertical.
3
Carcasa (frame). Sostiene los componentes del drone, y dependiendo del diseño
puede contener un tren de aterrizaje (soporte del frame contra el suelo). Es rígido y
generalmente, su estructura reduce las vibraciones ocasionadas por los motores.
Motores. Los más usados son los Brushless, motores de inducción de tres fases, tienen
una potencia en el rango de 1000 Kv a los 7500 Kv (Kilo volt equivalente a RPM por
Voltio 4).
Hélices. Generan la propulsión del vehículo, pueden ser de dos o tres aspas. Se
manejan dos diseños, uno para giro horario y otro en antihorario.
Placa PCB. Distribuye la energía a todos los componentes electrónicos y de acuerdo
con cada diseño, puede indicar al controlador de vuelo el voltaje y corriente de la
batería.
Controlador de velocidad electrónico. El ESC (Eletronic Speed Controller) recibe
del controlador de vuelo las señales PWM que indican la velocidad para cada motor,
se encarga de modular la corriente directa de la batería a corriente alterna, generando
tres salidas (cada una desfasada 120 grados eléctricos).
Controladora de vuelo (autopiloto). Es la parte fundamental del drone, la cual
procesa el estado inercial del sistema gracias a una IMU (Inertial Measurement Unit);
y con ello generar las salidas correspondientes (señal PWM a cada ESC) para obtener
estabilidad en el vuelo. Las más sofisticadas aceptan varios tipos de sensores, módulos
e interfaces de comunicación para brindarle al usuario una funcionalidad que va más
allá de sólo volar el UAV.
Sensor GPS (Global Positioning System). Obtiene información de la posición global
del drone y envía la señal al autopiloto para ser procesada.
Batería. Fuente de energía del vehículo, generalmente de tipo Polímero de Litio. Se
puede clasificar también por número de celdas (S). Cada batería indica su capacidad
en mAh (mili Amper por hora).
4
La unidad Kv es un valor definido por las características físicas de un motor debido a sus imanes, número
de vueltas de embobinado y su geometría. La magnitud en Kv caracteriza la propiedad de un motor de
transformar la potencia eléctrica que recibe en velocidad o par; por ello, experimentalmente se toma como
una aproximación para indicar la cantidad de RPM en el motor por V de alimentación.
4
Cámara. Ofrece al usuario la perspectiva del drone para usarse con distintos fines de
acuerdo con las necesidades de vuelo, puede ser desde grabar o fotografiar el entorno,
para investigación, ver lugares inaccesibles, etc.
5
Figura 3. IMU: a) Acelerómetro b) Giroscopio.
Los acelerómetros (Figura 3-a) detectan o estiman la aceleración lineal del drone en
todos sus ejes. Una de sus funciones es monitorear continuamente la razón de cambio de
velocidad vertical del drone, para detectar y medir el efecto de la fuerza de gravedad sobre
el vehículo [5]. Para estabilizar el vuelo de las aeronaves no tripuladas, es necesario medir
las rotaciones (en todos sus ejes) y corregirlas de acuerdo con la posición estable (paralelo
al plano horizontal) con la ayuda de los motores; aquí es donde se requiere de las
funcionalidades de un giroscopio (Figura 3-b), ya que este permite medir los parámetros
mencionados.
5
El método de localización absoluta hace uso de referencias globales como el campo magnético de la
tierra o las señales provenientes de satélites (en el caso del GPS) para calcular la posición de un robot móvil.
6
El conjunto de todos los sensores tratados anteriormente se conoce como Sistema de
Referencia de Actitud y Rumbo, AHRS (por sus siglas en inglés, Attitude and Heading
Reference System). Ya que por integrar el nuevo sensor magnetómetro (el cual funciona
como una brújula de tres dimensiones), puede indicar hacia dónde se dirige y se encuentra
el UAV. También recibe el nombre de Sistema Magnético, de Velocidad Angular y de
Gravedad (Magnetic, Angular Rate, and Gravity -MARG- System) [5].
Dependiendo del modelo de las radios: emisoras (TX) y receptoras (RX), estas ofrecen
desde 2 hasta 20 canales -restringiéndose las de 2 y 3 canales, para vehículos terrestres-.
Cada canal representa un comando que corresponde a una actividad en específico sobre el
vehículo controlado (como se mencionó en la definición de la Emisora RC). Estas radios
para establecer su comunicación pueden integrar varios protocolos, que se pueden
clasificar en Protocolos TX (para la comunicación entre la emisora y receptora) y
Protocolos RX (que comunican la receptora con el autopiloto) [10].
La señal es analógica (ver Figura 5), donde la longitud del pulso indica la orden de
salida para el servo o canal. La duración del pulso es de 1000µs y 2000µs; siendo estos: el
mínimo y máximo, respectivamente [5].
7
Figura 5. Señal PWM y sus características.
Modulación por código de pulso. Esta modulación (PCM por sus siglas en inglés,
Pulse Code Modulation) funciona de forma similar al PPM. En este caso la señal es digital.
Cada tren de impulsos (todos los pulsos de los canales) es convertido en una secuencia
8
binaria. El proceso para esta codificación involucra la modulación por amplitud de pulso
de la muestra, su cuantificación digital y codificación a dígitos binarios [9].
Por ser una señal digital, se reducen los errores o fallos de las señales en comparación
con la señal analógica (PWM o PPM). Los receptores que trabajan con este protocolo
suelen ser costosos ya que integran su propio microprocesador y convertidor analógico-
digital.
Los ESC trabajan bajo las mismas características de la señal PWM de los radios
receptores, por ejemplo, el rango ocupado es de 1ms a 2ms. Lo cual significa que a 1ms el
propulsor no generará empuje mientras que a 2ms efectuará su mayor empuje.
9
2.2 Controladores de vuelo.
Por otro lado, existen autopilotos tan sofisticados que integran sensores para
posicionamiento y navegación autónoma. Realizan vuelos programados, retorno al punto
de elevación, seguro de altitud, estabilización de gimbal 6 , respuesta a fallas de
comunicación emisora-receptora, solución al bajo voltaje, telemetría y envió de video en
tiempo real a una estación de control en tierra; en resumen, todo un repertorio de sensores
y funcionalidades que transforman al UAV en un vehículo inteligente.
6
Se le denomina Gimbal al soporte estabilizador para la cámara.
10
Tabla 1. Autopilotos de arquitectura abierta.
Las consideraciones para la selección del componente que mejor se ajusta a las
necesidades de esta investigación son las siguientes: compatibilidad con cámara y
computadoras personales, WiFi, frame modificable y un bajo precio. De acuerdo con lo
anterior, los mejores candidatos son la Pixhawk Mini, APM 2.8 y CC3D, de forma que se
optó por la Pixhawk Mini, siendo esta la controladora con la que se cuenta actualmente.
11
Cabe desatacar que las casillas marcadas en verde indican la capacidad de las tarjetas o
drones de incluir la característica correspondiente.
Se conoce como 3DR Pixhawk Mini (ver Figura 8) al piloto automático o controlador
de vuelo diseñado por 3DR y HobbyKing. Está basado en dos procesadores STM32, uno
para el procesamiento principal y el otro para las entradas-salidas del controlador.
12
Figura 8. Controladora de vuelo 3DR Pixhawk Mini.
7
QGroundControl y Mission Planner, son programas de código abierto destinadas a configurar y pilotar
naves a control remoto, mediante puntos de coordenadas o de manera autónoma. Son los más completos
y tienen compatibilidad con todos los controladores de vuelo.
13
La versión de la Pixhawk Mini permite adaptarla a diferentes frames debido a su
reducido tamaño (38*43*12mm.); comparándola con las demás versiones de su familia.
3DR desarrolló un sensor GPS compacto (perteneciente a la serie Neo.M8N) para esta
versión de controladora, dicho GPS es compatible con los sistemas de navegación global
por satélite (GNSS) e incorpora una brújula digital (CI HMC5983) [7].
La librería MAVLink cuenta con licencia LGPL (GNU Lesser General Public License)
lo que permite a los usuarios ocuparla en proyectos tanto de Closed Source como de Open
14
Source. Es compatible con muchos microcontroladores y sistemas operativos, por
mencionar algunos como: ARM7, ATMega, dsPic, STM32; y Linux, iOS y Windows [41].
2.4 DroneKit.
Se trata de una interfaz de programación de aplicaciones (API, por sus siglas en inglés
Application Programming Interfaces), un conjunto de comandos, funciones y protocolos
informáticos que permiten a los desarrolladores crear aplicaciones ejecutables en una
computadora de placa simple (SBC, Single Board Computer) y, se comunican con un
autopiloto (en este caso la Pixhawk) a través de MAVLink, un enlace de baja latencia.
DroneKit permite gestionar el comportamiento del drone así como las misiones, es
capaz de obtener información de telemetría, estado y parámetros del UAV. Esta API utiliza
15
el lenguaje Python y es compatible con todos los vehículos que utilizan el protocolo
MAVLink.
SITL puede ejecutarse de forma nativa en Linux (solo arquitectura x86), Mac y
Windows, o dentro de una máquina virtual. Se puede instalar en la misma computadora
que DroneKit, o en otra computadora en la misma red [42].
Raspberry Pi.
Intel Edison.
BeagleBoneBlack.
Odroid.
16
2.5 Raspberry Pi y OpenCV.
Raspberry Pi 1 A, B y B+.
Raspberry Pi 2 B.
Raspberry Pi 3 B y B+.
Raspberry Pi Zero y Zero W.
17
Hay una contribución enorme por parte de la comunidad de Raspberry Pi. En la red se
pueden encontrar una extensa variedad de prototipos, documentación, librerías y tutoriales
que facilitan la experimentación con esta mini computadora.
2.5.1 OpenCV.
OpenCV (Open Source Computer Vision Library) es una librería de código abierto
para visión y aprendizaje por computadora (Machine Learning). Cuenta con la licencia
BSD (Berkeley Software Distribution) lo cual la hace útil para los desarrolladores y demás
grupos, para ocuparla y modificar su código [11]. OpenCV es un proyecto de software
libre, que Intel® anunció que estaba elaborando con un grupo de investigadores
reconocidos el 13 de junio del 2000, no obstante, fue hasta en el 2006 que se lanzó su
primera versión oficial [12].
Es claro que OpenCV no puede ser la única librería de visión por computadora
existente, incluso si se habla del tipo software libre. Gandalf es una librería más, de código
abierto que permite desarrollar aplicaciones enfocadas al procesamiento digital de imagen
y video, contiene paquetes de álgebra lineal, estructuras simples, visión por computadora
y rutinas para operaciones matriciales y vectoriales. Sin embargo, la popularidad de
OpenCV ha crecido y por consiguiente, el aporte de la comunidad [11].
18
Tabla 4. Estructura general de OpenCV.
Componente Descripción
Core functionality Contiene la estructura de datos y contenidos básicos que utilizan
el resto de los módulos.
Image processing Módulo de procesamiento de imagen que incluye filtrado lineal
o no lineal, transformaciones geométricas, distorsión, conversión
de espacio de color, etc.
HighGUI Contiene rutinas y funciones de entrada/salida para almacenar y
cargar videos e imágenes.
Video Análisis de video que incluye algoritmos de estimación de
movimiento, resta de fondo y seguimiento de objetos.
Calib3d Algoritmos básicos de geometría de vista múltiple, calibración
de cámara única y estéreo, estimación de posición de objeto,
algoritmos de correspondencia estéreo y elementos de
reconstrucción 3D.
Features2d Módulos para detectores de características salientes, descriptores
y comparadores de descriptores.
Objdetect Algoritmos para detección de objetos e instancias de las clases
predefinidas (por ejemplo: caras, ojos, tazas, personas,
automóviles, etcétera).
VideoOI Módulo para la captura de video y uso de códecs de video.
GPU Algoritmos acelerados por GPU de diferentes módulos de
OpenCV.
Como se ha mencionado, son diversas las utilidades que ofrece la Raspberry Pi. Entre
las que están enfocadas a UAVs se encuentran: la compatibilidad con el protocolo de
comunicación (drone-autopiloto) MAVLink, el sistema operativo orientado a drones
FlyOS -un software basado en Linux y ROS, Robot Operating System- y la posibilidad de
desarrollar proyectos de visión por computadora que utilicen la librería OpenCV. Estos
19
fueron los principales factores por los cuales se eligió la Raspberry Pi para el desarrollo
de esta investigación.
Para la obtención de los valores útiles para esta técnica, se emplean sensores de visión
y sensores inerciales. Otra técnica alternativa es el uso de sensores propiocetivos: el
encoder; donde se establece una relación entre las revoluciones de las ruedas y sus
dimensiones, y se le denomina odometría sobre ruedas. Como la investigación propuesta
presenta otras características diferentes a las de trabajar con un vehículo terrestre, se omite
el enfoque en la odometría sobre ruedas.
8
De acuerdo con los métodos de localización absoluta y relativa. La odometría corresponde al método de
localización relativa, porque estiman la posición del robot móvil en forma relativa a la posición anterior.
Todas sus mediciones son efectuadas desde el robot.
20
el sentido, dirección y magnitud del movimiento en medidas longitudinales. En el caso de
un vehículo terrestre, hay un conjunto de encoders que registran su movimiento
traslacional y rotacional; de acuerdo con el intervalo de tiempo registrado entre el punto
anterior con el actual, se obtiene el valor longitudinal en términos de cuántas partes del
perímetro o diámetro de la rueda, tuvieron contacto con el suelo. De esta forma, los valores
registrados se interpretan para conocer la ubicación del vehículo [14].
9
Son referencias obtenidas estratégicamente en la imagen capturada, pueden ser bordes, concentración
de píxeles de un mismo valor, etc.
10
La distancia en la que se mueven los puntos en la imagen no es inherente a la distancia real (del
movimiento del robot). Se tiene que realizar una calibración previa; para obtener el valor que representa
cada medida en la imagen con respecto a nuestro espacio.
21
4. Representación y descripción. Consiste en extraer rasgos con alguna
información cuantitativa de interés.
5. Reconocimiento. Proceso que asigna una etiqueta a un objeto basándose en la
información proporcionada por sus descriptores.
6. Interpretación. Implica asignar un significado a un conjunto de entidades
etiquetadas.
22
el término INS (Inertial Navigation System) para referirse a la misma práctica aunque es
poco utilizado. En el español, el uso de estos términos es lo contrario, los autores en [4],
[23], [24] usualmente hablan de la navegación inercial, lo que es equivalente a INS.
Para disminuir el error en las mediciones, se hace uso de algoritmos que estiman el
estado del sistema dinámico (como la posición y la velocidad de un vehículo). Un ejemplo
de estos algoritmos es el filtro de Kalman (KF, Kalman Filter). Se trata de un algoritmo
lineal recursivo, que suaviza los estados ruidosos con base en las mediciones erróneas
previas, usando el modelo del sistema. Sigue un proceso estadístico para ponderar el error
entre el valor predicho y el medido, para que finalmente estime el estado filtrado. En
resumidas palabras, filtra los estados actuales y predice los futuros [21].
11
El conjunto de los parámetros de la guiñada, cabeceo y giro es conocido como actitud.
12
Las entradas al sistema inercial se clasifican en tres grupos: las deseadas, interferencias y modificadoras.
La primera trata de la velocidad angular en el eje perpendicular al sensor, la segunda trata de vibraciones
y campos magnéticos. La última considera a la temperatura y el voltaje de suministro al sensor.
23
otras variantes, Filtro de Kalman Extendido (EKF, Extended Kalman Filter) y el UKF
(Unscented Kalman Filter) [22].
Existen otras variantes del filtro de Kalman que integran las mediciones de los sensores
inerciales con las del GPS, para generar lo que se conoce como método híbrido de
localización, o bien, fusión sensorial para localización y navegación [25] [26].
La odometría tiende a una acumulación o arrastre de errores, debido a que existe una
dependencia en cadena desde la referencia o punto de inicio, hasta el último punto
estimado. Es decir, si desde el principio o dentro del proceso de estimación se presenta un
error en el resultado, este es guardado y se usará para la estimación de la siguiente posición;
esto ocasiona que el próximo valor en el resultado contendrá ese error y los futuros valores
también (ver Figura 11).
24
vehículo en cuestión, sino del exterior. Dada la situación de la odometría, se reduce la
incertidumbre al combinar tanto los resultados de la odometría visual junto con los
resultados de la inercial. He aquí la importancia de fusionar ambas prácticas.
25
3.1 Vuelo controlado por autopilotos comerciales en conjunto con
computadoras de placa simple.
En enero del 2015, Fernández G. F. [35] propone el uso del autopiloto Pixhawk para
desarrollar un sistema de control asistido para el aprendizaje de la navegación de
multicópteros. El uso de este controlador de vuelo se debe a su compatibilidad con el
firmware APM y el protocolo MAVLink. Se diseña un Sistema de Control Asistido para
facilitar el proceso iterativo de aprendizaje, en el usuario con poca experiencia en vuelo
de multicópteros. El asistente se ejecuta desde una estación de control en tierra y envía
comandos por telemetría. En efecto, los operarios lograron concluir las pruebas propuestas
por el experimento gracias al asistente, aunque el simulador presentó poca precisión y
estimaba una altitud considerablemente grande en comparación con la real.
26
destaca que la altura máxima de vuelo depende del tamaño de la plataforma y la calidad
de imagen. Por su parte, la Universidad de Tecnología en Lodz, Polonia [40]; ha
desarrollado un sistema de control para seguimiento de objetos. Utilizando las prestaciones
de ROS con la Raspberry Pi y el controlador de vuelo Pixhawk, este sistema provee un
aterrizaje autónomo basado en el reconocimiento de símbolos, y al depender de la
estructura de ROS, el consumo de recursos no fue tan demandante debido a que partes de
la estructura programada (nodos), fueron reutilizados en otros procesos.
En el 2007, es publicado el trabajo de Oskiper T., et al. [20], donde proponen una
navegación inercial asistida por visión odométrica, ocupando el método RANSAC,
fusionan los valores de la IMU con los de la VO. Debido a la geometría que presentaba el
espacio (carretera), los errores fueron menores en el momento de estimar el giro, y gracias
a la IMU fue posible corregir las estimaciones de la traslación dadas por la VO. En el
mismo año, otro grupo de investigadores propone usar dos cámaras para una visión estéreo,
y adjuntar sus parámetros calculados con los de la IMU, por medio del EKF [28]. Para
reducir los errores, las cámaras fueron acopladas en la parte trasera y frontal del sistema,
mejorando los cálculos de la visión odométrica. Para estimaciones de descenso o ascenso,
la IMU tuvo mayor importancia ya que el sistema de visión no fue adaptado para estas
mediciones.
Para el 2012, se desarrolla un sistema híbrido que ocupa dos algoritmos para mejorar
la estimación de la posición de un objeto móvil [27]. Uno consiste en la fusión de las
técnicas de SLAM (Simultaneous Localization and Mapping) con un EKF, y el otro en un
EKF de ventana deslizante. La práctica consiste en una función que determina en tiempo
real, qué algoritmo es el idóneo para procesar las mediciones visuales e inerciales, de
acuerdo con el costo computacional que cada método requerirá; de esta forma se optimizó
el procesamiento de datos. Se realizó únicamente la estimación de la trayectoria de una
plataforma móvil, debido a que el objetivo de la investigación es: abordar un estudio para
27
la navegación de sistemas pequeños con recursos limitados (en autonomía y capacidad de
procesamiento) en un espacio desconocido.
13
Regulador Lineal Cuadrático (LQR, por sus siglas en inglés Linear-Quadratic Regulator).
28
Inertial Odometry) para plataformas móviles, aprovechando que las iteraciones se
producen aproximadamente a 100 Hz. Sin embargo, el sistema requiere de un procesador
Intel i7 de 6 núcleos para analizar en tiempo real a un máximo de 15 características.
Comparando la EVIO con un algoritmo basado en imágenes que usa el rastreador KLT14,
esta presentó ventaja en situaciones de movimiento constante y escenas de alto rango
dinámico. Aunque registra mayores errores en una imagen extensa ya que se introducen
más desviaciones en la estimación, también se ve afectado por los espacios con poca
textura debido a que no presentan eventos.
14
Kanade-Lucas-Tomasi
15
Inertial Visual Odometry
29
siguiendo las varianzas entre las dos contribuciones (IMU y cámara), opta por la que
menor error presente. Esto permitió que aún con la cámara ocluida, la estimación de la
posición se mantuvo en un margen de error aceptable, porque el sistema dependía
directamente de la IMU y únicamente en situaciones aceptables, ocupa las mediciones de
la VO, de ahí el cambio de nombre de la técnica a IVO.
Existen otras opciones que mejoran esta condición, como trabajar en una sala o estudio
dotado de cámaras que retroalimentan la posición del objeto en cuestión, o el uso de drones
de gama alta. La primera opción se restringe sólo para interiores y la segunda presenta
limitaciones dada la arquitectura cerrada de este tipo de drones, aparte, representan costos
muy altos frente a los recursos con los que cuentan los estudiantes universitarios o
docentes-investigadores.
30
Para la solución de esta situación, se propone trabajar con un drone ensamblado
utilizando componentes estándares (frame de fibra de vidrio o de impresión 3D, hélices de
plástico, ESC y motor Brushless para batería de 3 a 4S) para dar posibilidad de trabajar
con un diseño propio y de acuerdo con las necesidades de autonomía, capacidad de carga
y el espacio que ocuparán los componentes a bordo.
5. Justificación
La odometría visual-inercial garantiza una estimación de la posición de la aeronave,
sin ser afectada en gran medida por errores no sistemáticos como lo es en el caso del GPS
o del barómetro. Reiterando las técnicas mencionadas en las secciones 2.6.2 y 3.2, de cada
sensor (IMU y cámara) se usarán sólo los parámetros más confiables con el fin de reducir
la incertidumbre. La importancia de considerar la VIO para reforzar el control de actitud,
es dado a este hecho.
31
El trabajo también sentará las bases en la caracterización y modelado de un
multicóptero, y con ello, implementar otras técnicas de control en el vuelo de un drone;
con un diseño propio para trabajos futuros de esta investigación.
6. Objetivos
Objetivo general:
Objetivos específicos:
16
La plataforma consiste en un cuerpo rígido que sostendrá al drone y permitirá realizar giros alrededor
de los ejes x, y, z.
32
7. Hipótesis
El sistema de control de posición y actitud en conjunto con las mediciones de la
odometría visual, permitirán corregir los errores de posición del cuadricóptero en el
espacio; mientras realiza su vuelo. De modo que al dejar el drone en un punto específico,
el sistema mantendrá estable su altura y evitará los movimientos laterales del drone,
ocasionados por el viento.
8. Limitaciones
Los aspectos más significativos que limitan esta investigación son los siguientes:
33
9. Metodología
34
10. Índice Preliminar
1. Introducción
1.1 Planteamiento del problema
1.2 Justificación
1.3 Hipótesis
1.4 Objetivos
1.5 Limitaciones
2. Marco Teórico
2.1 Vehículos Aéreos no Tripulados
2.2 Controladores de Vuelo
2.3 Protocolo MAVLink
2.4 Raspberry Pi y OpenCV
2.5 Visión odométrica y odometría inercial
4. Observador de estados
4.1 Caracterización del cuadricóptero
4.2 Diseño del filtro de Kalman
4.3 Simulación del estimador
5. Odometría inercial-visual
5.1 Caracterización de la cámara
5.2 Programación en Python con OpenCV
5.3 Fusión de parámetros del VIO
6. Pruebas y resultados
6.1 Pruebas en tierra y en vuelo
Referencias
Anexo
35
Etapas Meses Marzo Abril Mayo Junio Julio Agosto Septiembre
Semanas
I Construcción de la
plataforma de prueba y
experimentación con el
Soporte para Pixhawk
en Simulink.
II Obtener el modelo
dinámico del drone, su
simulación y validación.
III Diseño del sistema de
control de actitud y
posición basado en
36
observadores de estado.
IV Desarrollar la odometría
visual: calibrar la
configuración de la
cámara digital desde
11. Diagrama de Gantt (cronograma).
OpenCV, estimar el
ángulo Yaw.
V Agrupar los resultados
de la odometría visual
con los observadores.
VI Prueba en campo y
correcciones del
sistema.
VII Redacción de la tesis.
Referencias
[1] E. H. José L., “Los Drones y sus Aplicaciones a la Ingeniería Civil”, Energía y Minas
de la comunidad de Madrid y Fundación de la Energía de la Comunidad de Madrid, Madrid,
España, 2015.
[2] R. M. Pablo, “Diseño y fabricación de un drone”, Proyecto Final de Grado, Escuela
Técnica Superior de Ingeniería del Diseño, Universidad Politécnica de Valencia, España,
2014.
[3] A. A. C. De Los Santos, “Control Difuso del Quadrotor AR Drone 2.0 para el
seguimiento autónomo de trayectorias”, Tesis de Licenciatura, Instituto de Electrónica y
Mecatrónica, UTM, Huajuapan, Oaxaca, México, 2015.
[4] M. D. Díez, “Localización de Robots Móviles en Entornos Tridimensionales Mediante
Visión Estéreo y CUDA”, Proyecto Final de Carrera, Departamento de Ingeniería de
Sistemas y Automática”, Universidad Carlos III de Madrid, Madrid, España, 2014.
[5] Mc. G. David, “Make: Drones, Teach an Arduino to Fly”, 1st. Ed., San Francisco,
California, USA, MAKERMEDIA, 2016.
[6] G. V. Daniel, L. P. Jesús I., P. E. Issac, “Control de un Vehículo Aéreo No Tripulado”,
Proyecto Final de Carrera, Facultad de Informática, Universidad Complutense de Madrid,
España, 2009.
[7] Docs.px4.io. (2018). Pixhawk Mini (Discontinued) · PX4 User Guide. Disponible en:
https://docs.px4.io/en/flight_controller/pixhawk_mini.html
[8] G. R. Mario A., P. M. Fernando, (2011). Odometría. CINVESTAV, México.
Disponible en: https://www.tamps.cinvestav.mx/~mgomez/Odometria/node15.html
[9] B. M. José E., “Transmisión de datos”, 3ra. Ed., Facultad de Ingeniería, Universidad
de los Andes, Departamento de Publicaciones Mérida, Venezuela, 2005.
[10] Hifinsword. (2018). The Beginners’ Guide to RC Protocols. Disponible en:
https://www.rcgroups.com/forums/showthread.php?2301242-The-Beginners-Guide-to-
RC-Protocols
[11] V. M. Arévalo, J. Gonzáles, G. Ambrosio, “La librería de Visión Artificial OpenCV.
Aplicación a la docencia e Investigación” Dpto. de ingeniería de Sistemas y Automática.
Universidad de Málaga, España.
[12] B. Gary, K. Adrian, “Learning OpenCV”, 1rst. Ed., Sebastopol, CA., USA., O’Reilly
Media, Inc., 2008, pp.: 1-7.
37
[13] G. Eric, “Introduction to Computer Vision using OpenCV”, Berkeley Desing
Technology, Inc., Oakland, California USA., 2012.
[14] R. A. De Jesús F., “Un Sistema de Odometría Visual Monocular Bajo Restricciones
de Tiempo Real”, Tesis Doctoral, Departamento de Informática y Automática,
Universidad de Salamanca, España, 2015.
[15] L. T. A. Pedro E., “Una Arquitectura Eficiente de Percepción de Alto Nivel:
Navegación Visual para Robots Autónomos en Entornos Estructurados”, Tesis Doctoral,
Departamento de Ingeniería y Tecnología de Computadores, Facultad de Informática,
Universidad de Murcia, España, 2003.
[16] A. P. Luis E., “Sistema odométrico por visión artificial para UAV”, Trabajo Fin de
Máster, Departamento de Ingeniería de Sistemas y Autómatas, Escuela Técnica Superior
de Ingeniería, Universidad de Sevilla, España, 2018.
[17] S. Arno, C. Santiago, R. Esa, K. Juho, “PIVO: Probabilistic Inertial-Visual Odometry
for Occlusion-Robust Navigation”, 2018 IEEE Winter Conference on Applications of
Computer Vision (WACV), Lake Tahoe, NV., USA., 2018.
[18] Z. Z. Alex, A. Nikolay, D. Kostas, “Event-based Visual Inertial Odometry”, 2017
IEEE Conference on Computer Vision and Pattern Recognition, Honolulu, HI, USA, 2017.
[19] J. P. Claudio, N. Sergio, “Double Coupling Between Inertial Sensors and Visual
Odometry in Multicopters”, 2017 XLII Latin American Computer Conference (CLEI),
Cordoba, Argentina, 2017.
[20] I. M. Anastasios, I. R. Stergios, “A Multi-State Constrait Kalman Filter for Vision-
aided Inertial Navigation”, Proceedings 2007 IEEE International Conference on Robotics
and Automation, Roma, Italy, 2007.
[21] M. M. Michell, “Integración del Filtro de Kalman a un Sistema de Posicionamiento
Global (GPS) para Aplicación en Vehículos Autónomos”, Tesis de Maestría, Instituto
Tecnológico y de Estudios Superiores de Monterrey, Monterrey, México, pp. 2-5. 2003.
[22] P. Alejandro, “EKF y UKF: dos extensiones del filtro de Kalman para sistemas no
lineales aplicadas al control de un péndulo no invertido”, Monografía del Curso:
Tratamiento Estadísticos de Señales, Instituto de Ingeniería Eléctrica, Universidad de la
República, Montevideo, Uruguay, 2004.
[23] G. M. Gilberto, “Sensado Inercial en 3-D, Utilizando Giroscopios, Para la
Navegación de un Vehículo Autónomo”, Tesis de Maestría, División de Ingeniería y
Arquitectura, Instituto Tecnológico y de Estudios Superiores de Monterrey, Monterrey,
México, 2006.
[24] A. F. Thomas, “Fusión de Encoders de Cuadratura, Sensores Inerciales y Magnéticos
para la Localización de Robots Móviles”, Tesis de Maestría. Facultad de Ciencia Exactas
y Naturales, Universidad de Buenos Aires, Argentina, 2014.
38
[25] A. R. María E., “Estudio y Aplicación del Filtro de Kalman en Fusión de Sensores en
UAVs”, Tesis de Licenciatura, Dpto. Ingeniería Electrónica, Escuela Técnica Superior de
Ingeniería, Universidad de Sevilla, España.
[26] C. H. Francisco A., C. R. Juan A., “Comparativa Algoritmos Fusión MoCap-UWB”,
Dpto. De Física, Ingeniería de Sistemas y Teoría de la Señal, Universidad de Alicante,
España, 2008.
[27] M. Li, I. M. Anastasios, “Optimization-Based Estimator Design for Vision-Aided
Inertial Navigation”, Robotics: Science and Systems 2012, Sydney, NSW, Australia, 2012.
[28] O. Taragay, Z. Zhiwei, S. Supun, K. Rakesh, “Visual Odometry System Using
Multiple Stereo Cameras and Inertial Measurement Unit”, 2007 IEEE Conference on
Computer Vision and Pattern Recognition, Minneapolis, MN, USA, 2007.
[29] L. Giuseppe, B. Chris, Mc. Gary, K. Vijay, “Estimation, Control and Planning for
Agressive Flight with a Small Quadrotor with a Single Camera and IMU”, Preprint
Version, IEEE Robotic and Automation Letters, 2016.
[30] S. Ke, M. Kartik, P. Bernd, W. Michael, L. Sikang, M. Yash, J. T. Camilo, K. Vijay,
“Robust Stereo Visual Inertial Odometry for Fast Autonomous Flight”, Preprint Version,
IEEE Robotic and Automation Letters, 2017.
[31] W. Aaron, C. Adam, L. Giuseppe, K. Vijay, “VIO-Swarm: An Autonomus Swarm of
Vision Based Quadrotors”, Preprint Version, IEEE Robotic and Automation Letters, 2018.
[32] Z. Andrew, J. Samuel, “A Review of Control Algorithms for Autonomous
Quadrotors”, Polytechnic of Namibia, Africa, Scientific Research, Open Journal of
Applied Sciences, 2014.
[33] A. Patrick, Gr. Christophe, M. Jean-Baptiste, D. Stéphane, “Nonlinear Attitude and
Position Control of a Micro Quadrotor using Sliding Mode and Backstepping Techniques”,
3rd US-European Competition and Workshop on Micro Air Vehicle Systems (MAV07) &
European Micro Air Vehicle Conference and Flight Competition (EMAV2007), Toulouse,
France, 2007.
[34] G. B. Sara, “Modelado, Simulación Y Control Inteligente de UAVs”, Proyecto Fin
de Carrera, Dpto. De Ingeniería de Sistemas y Automática, Escuela Técnica Superior de
Ingeniería, Universidad de Sevilla, España, 2013.
[35] F. G. Felipe, “Diseño e Implementación de un Sistema de Control Asistido para
Plataforma Aérea Multi-rotor”, Tesis de Licenciatura, Dpto. De Ingeniería Eléctrica,
Facultad de Ciencia Física y Matemáticas, Universidad de Chile, Santiago de Chile, 2015.
[36] C. O. Nataly X., C. B. Carlos A., “Comparación de Técnicas de Control Moderno
(Observadores de Estado Vs LQR) Implementadas Sobre un AR Drone 2.0 Parrot”,
Ingeniería en Control, Facultad Tecnológica, Universidad Distrital Francisco José de
Caldas, Bogotá D.C., Colombia, 2016.
39
[37] K. Sk. Noor, G. S. R. Satyanarayana, “Object Detection and Location Estimation
using SVS for UAVs”, 2016 International Conference on Automatic Control and
Dynamic Optimization Techniques (ICACDOT), Pune, India, 2016.
[38] C. Hyunwoong, G. Mitchell, A. Bilal, G. Felipe, “Open Source Computer-Vision
Based Guidance System for UAVs On-Board Decision Making”, 2016 IEEE Aerospace
Conference, Big Sky, MT, USA, 2016.
[39] J. Hu, Y. Guo, Z. Feng, Y. Guo, “Vision-based Autonomous Landing of Unmanned
Aerial Vehicles”, 2017 Chinese Automation Congress (CAC), Jinan, China, 2017.
[40] S. Paweł, S. Łukasz, G. Grzegorz, “Autonomous drone control system for object
tracking”, 2017 22nd International Conference on Methods and Models in Automation and
Robotics (MMAR), Miedzyzdroje, Poland, 2017.
[41] MAVLink (2015), MAVLink Developer Guide , Disponible en: https://mavlink.io/en/
[42] 3D Robotics (2016). Introducing DroneKit-Python. DroneKit. Disponible en:
http://python.dronekit.io/about/index.html
[43] Raspberry Pi Fundation (2018). Raspberry Pi 3 model B. Specifications. Disponible
en: https://www.raspberrypi.org/products/raspberry-pi-3-model-b/
40