NAVEGACIÓN AUTÓNOMA EN EXTERIORES DE UN ...datos de latitud, longitud y altitud. Para lo que era...
Transcript of NAVEGACIÓN AUTÓNOMA EN EXTERIORES DE UN ...datos de latitud, longitud y altitud. Para lo que era...
NAVEGACIÓN AUTÓNOMA EN EXTERIORES DE UN CUADRICÓPTERO
Autor: Franco Guisasola, Álvaro.
Directores: Zamora Macho, Juan Luis.
Porras Galán, José.
Entidad Colaboradora: ICAI – Universidad Pontifica Comillas.
RESUMEN DEL PROYECTO
1. INTRODUCCIÓN
En los últimos años, los cuadricópteros han aparecido
en el ámbito comercial y ofrecen una enorme cantidad
de posibilidades. Toda la implementación del software
se ha realizado a través del entorno de Matlab que
ofrece dos ventajas fundamentalmente, el carácter
académico de Matlab pues es el sistema empleado en
la Universidad para el desarrollo las asignaturas de
control, y por otro, el enorme potencial y
compatibilidad con otros sistemas que ofrece la
herramienta. Este proyecto también se centra en los
sistemas electrónicos pues es preciso para integrar el
nuevo controlador, como es la tarjeta OpenPilot Revo,
al entorno de Matlab, así como los sensores de
navegación externa y el sistema de GPS. El fin último de
este proyecto sería un sistema de control autónomo
por GPS que se podría emplear en drones de mayor
tamaño por ejemplo para ayuda humanitaria.
Este proyecto aspira a continuar con proyectos
anteriores de la universidad, donde se consiguió la
estabilización del cuadricóptero y el diseño de un
entorno básico de Matlab/Simulink donde trabajar,
pero no el vuelo autónomo o la integración de un
módulo de GPS. A partir de los resultados de dichos
proyectos, se pretende conseguir finalmente la
integración del GPS para permitir el vuelo autónomo.
2. OBJETIVOS
Los objetivos del proyecto son los siguientes:
Adaptación de la tarjeta de vuelo OpenPilot
Revolution al entorno de Matlab/Simulink para
poder probar el funcionamiento en un entorno
de simulación virtual.
Al trabajar con una nueva tarjeta de vuelo, de
la cual no están desarrollados ningún driver
para los sensores del cuadricóptero, por lo que
será necesario desarrollar los bloques de
Simulink necesarios que permitan obtener las
medidas de todos los sensores del
cuadricóptero (IMU, magnetómetro,
barómetro).
Diseño del control del cuadricóptero, que a su
vez está dividido en dos lazos de control:
estabilización y navegación del cuadricóptero.
La estabilización se encarga de mantener en
posición estacionaria la aeronave mientras que
el de navegación se encarga de llevarla a las
coordenadas de referencia.
Integración del módulo de GPS que permita la
navegación autónoma del cuadricóptero en
exteriores, de tal forma, que se obtengan las
referencias de posición para el control del GPS.
3. METODOLOGÍA
Para conseguir los objetivos del proyecto se ha
trabajado para poder configurar la tarjeta OpenPilot
Revolution con el entorno de Matlab/Simulink ha sido
necesario sustituir los Driver Blocks de la placa utilizada
en los proyectos anteriores (APM) por bloques de
Waijung. Este proceso en el caso de este proyecto fue
mucho más elaborado pues para el vuelo autónomo en
exteriores se utilizan sensores adicionales
(magnetómetro, barómetro y GPS) que necesitan de
unos nuevos “driver blocks” compatibles con la tarjeta
OPRevo, que tuvieron que ser realizados desde el nivel
más básico del sensor, configurando la comunicación
con la placa para así poder leer los valores de las
medidas de los sensores.
A. Magnetómetro
El magnetómetro fue el primer sensor con el que se
trabajó para diseñar los bloques de Simulink que
permitieran obtener las medidas del sensor. Este
sensor se comunica con la placa con el sistema de
comunicaciones I2C [1]. Este sensor cuenta con 3
registros de inicialización que tenían que ser
configurados correctamente para poder obtener la
medida del magnetómetro, en los que se establecía
entre otras cosas la velocidad de muestreo del sensor,
la ganancia del sensor (permitiendo así aumentar la
resolución) o el modo de funcionamiento del sensor
[2]. Una vez configurados estos registros, se tenían que
leer las medidas del magnetómetro que se
encontraban en 6 registros del sensor. Por último fue
necesario realizar una calibración del magnetómetro
para que las medidas que se obtuvieran fueran
correctas.
Figura 1. Medidas del magnetómetro después de la calibración
B. Altímetro
Siguiendo el mismo procedimiento que con el
magnetómetro fue necesario diseñar los bloques de
Simulink que permitieran obtener las medidas del
sensor. Este sensor se comunica con la placa por I2C,
pero a diferencia del magnetómetro, ya no funciona
con diferentes registros sobre los que hay que realizar
comandos de lectura o escritura. En este caso se
tuvieron que leer los valores de calibración de fábrica
del sensor que estaban almacenados en una memoria
PROM. Una vez leídos los valores de la PROM, era
necesario obtener las medidas de presión y
temperatura digitales, para lo que es necesario iniciar
la conversión del ADC (Analog to Digital Converter)
interno del sensor, esperar el tiempo que tarda la
conversión, para después leer los valores del ADC.
Con los valores de calibración y las medidas de
presión y temperatura digitales, era necesario llevar a
cabo una serie de operaciones aritméticas con estos
valores para obtener la medida real de presión y
temperatura.
C. GPS
El sensor del GPS que nos proporciona las medidas de
la posición para el vuelo autónomo en exteriores, ya no
está integrado en la placa OpenPilot Revolution por lo
que fue necesario un módulo exterior de GPS, el UBlox-
M8N. El módulo se conectó al puerto FlexiPort de la
placa, y fue necesario del mismo modo que para los
otros dos sensores, diseñar los bloques de Simulink
para leer las medidas del GPS.
El tipo de comunicación que se utilizó con el módulo
de GPS fue la UART. El protocolo de comunicaciones
que se emplea con el GPS es el protocolo UBX [3], de
codificación binaria y propio de la empresa u-blox®, por
lo que fue necesario ver los diferentes campos que
componían las tramas del protocolo. Conociendo los
distintos campos de las tramas, era necesario ver
cuáles eran las tramas que el módulo de GPS enviaba a
la placa, para lo que nos ayudamos del software propio
de la empresa para capturar las tramas que se enviaban
a través de la UART.
El último paso fue diseñar los bloques de Simulink que
permitieran capturar las tramas específicas que nos
interesan del GPS, es decir, las tramas que nos dan los
datos de latitud, longitud y altitud. Para lo que era
necesario conocer la cabecera exacta que se enviaba en
cada trama, y de la misma extraer los datos que nos
interesan.
4. RESULTADOS
Los resultados obtenidos de este proyecto, se tienen
que separar en los resultados obtenidos con cada uno
de los sensores.
Los resultados con el magnetómetro después de la
calibración fueron satisfactorios, pues se pudo
comprobar que las medidas del sensor permitían saber
la orientación de la dirección norte (la medida del
campo magnético en la dirección perpendicular al
norte era aproximadamente 0 (-2.8 mG)), que
permitiría la orientación del dron en el vuelo
autónomo.
Los resultados del barómetro demostraron que para
calcular la altitud a la que se encontraría el dron
respecto del nivel mar, no aporta una medida correcta
(cerca de unos 80 metros de error), pero este resultado
no es especialmente crítico para utilizar este sensor en
el marco de navegación autónoma de un
cuadricóptero. Lo realmente importante es ver si la
medida de la altura respecto del suelo que nos daría el
altímetro es lo suficientemente precisa, para ello se
realizó un ensayo midiendo la presión a diferentes
alturas del suelo (Figura 2), se pudo estimar que el error
de medida de la altura respecto del suelo es de unos 10
cm que si es lo suficientemente precisa como para
utilizarse para la navegación autónoma.
Figura 2. Ensayo de presión a diferentes alturas
Los resultados del GPS más importantes son que el
error que se obtiene en la posición horizontal es de
2.103m, que es un error bastante considerable si se
introducir en un control para vuelo autónomo. Para
solventar este problema sería necesario incorporar un
módulo de GPS diferencial que redujera el error.
Además se pudo observar otro que la precisión en la
altitud es de 6.305m, que es un valor muy elevado si se
quiere ver las diferencias de altura como es necesario
para el vuelo autónomo de un cuadricóptero, pero este
resultado no es problema, pues el sensor del altímetro
ya proporciona esta medida.
5. CONCLUSIONES
Al tener que haber desarrollado los bloques de cada
uno de los sensores (barómetro, magnetómetro y GPS)
producidos por el cambio de tarjeta de vuelo a la
OPRevo, no se ha tenido tiempo de cumplir con el
objetivo de conseguir el vuelo autónomo en exteriores,
pero si se ha indagado más en el funcionamiento y
limitaciones de los sensores del cuadricóptero. Con los
ensayos y las medidas que se han obtenido de los
sensores se han podido extraer conclusiones acerca de
si estos sensores dan medidas los sensores
suficientemente precisas y fiables como para conseguir
el vuelo autónomo en exteriores, de esta forma, se ha
comprobado que el altímetro sí que es capaz de medir
con una precisión muy alta (del orden de centímetros)
la altura a la que se encontraría el cuadricóptero, dando
así una referencia adecuada al control. El
magnetómetro también se ha comprobado que sería
capaz de orientar el cuadricóptero correctamente en la
dirección que se desee, después de la calibración. En
último lugar, se ha visto que las medidas del GPS no son
lo suficientemente fiables como para servir de
referencia al control, por lo que sería necesario ajustar
la medida con ayuda del sistema de GPS diferencial
En cuanto a las mejoras de cara a futuros proyectos
que continúen esta línea de trabajo se proponen las
siguientes:
• El siguiente paso fundamental sería conseguir
finalmente el control de navegación autónomo
del cuadricóptero con la nueva placa (OPRevo),
utilizando los sistemas de bloques de los
sensores desarrollados en el ámbito de este
proyecto.
• Incluir el sistema de GPS diferencial, que corrija
la poca precisión con la que se cuenta en las
medidas del GPS.
• Incluir otros sensores que permitan conocer las
condiciones meteorológicas y de este modo
saber si las condiciones para el vuelo en
exteriores son favorables.
6. REFERENCIAS
[1] «HMC5883L 3-Axis Digital Compass,» [En línea].
Available: https://cdn-
shop.adafruit.com/datasheets/HMC5883L_3-
Axis_Digital_Compass_IC.pdf.
[2] «I2C bus specification,» [En línea]. Available:
http://www.nxp.com/documents/user_manual/UM10
204.pdf.
[3] U-Blox, «Receiver Description Including Protocol
Specification,» [En línea]. Available: https://www.u-
blox.com/sites/default/files/products/documents/u-
blox6_ReceiverDescrProtSpec_%28GPS.G6-SW-
10018%29_Public.pdf?utm_source=en%2Fimages%
2Fdownloads%2FProduct_Docs%2Fu-
blox6_ReceiverDescriptionProtocolSpec_%28GPS.
G6-SW-10018%29.pdf.
AUTONOMOUS EXTERIOR NAVIGATION OF A QUADCOPTER
Author: Franco Guisasola, Álvaro.
Directors: Zamora Macho, Juan Luis.
Porras Galán, José.
Collaborator Entity: ICAI – Universidad Pontifica Comillas.
PROJECT ABSTRACT
1. INTRODUCTION
In recent years, the quadricopters have appeared in
the commercial area and they offer a large amount of
possibilities. All the software implementation has been
done with Matlab Software which offers two primarily
advantages: Matlab is the software used at the
University for developing the subjects of control, and
secondly, the enormous potential and compatibility
with other systems. This project also focuses on
electronic systems in order to include the new card,
the OpenPilot Revo, into the Matlab environment, as
well as the sensors for external navigation and the GPS
system. The ultimate goal of this project would be an
autonomous control system GPS that could be used in
larger drones for humanitarian aid.
This project continues previous projects of the
University. This projects conducted the stabilization of
the quadricopter and design of the basic environment
in Matlab / Simulink, but not the autonomous flight or
integration of a GPS module. From the results of these
projects, the aim is the GPS integration to enable the
autonomous navigation.
2. OBJECTIVES
The project objectives are:
Adaptation of the OpenPilot Revolution flight
card to the environment of Matlab/Simulink in
order to test the performance in a simulation.
Develop the drivers for the sensors (IMU,
magnetometer, barometer) of the
quadricopter with the Simulink blocks of
Waijung in order to obtain the measures of the
sensors.
Design of the control of the quadricopter,
divided in two control loops: stabilization and
navigation. The stabilization is responsible for
maintaining the position of the aircraft while
the navigation loop manages to follow the
reference coordinates.
Integration of the GPS module allowing the
autonomous navigation of the quadricopter.
The GPS is the responsible of giving the
references of the position to the control.
3. METHODOLOGY
To achieve the objectives of the Project, it had been
necessary to replace the Driver Blocks used by the APM
card (in the previous projects) with the Waijung
Blockset. This process, in the case of this project, was
much more elaborate because of the large number of
driver blocks substituted in order to read the
measurements of the different sensors of the
quadricopter.
A. Magnetometer
The magnetometer was the first sensor in which we
worked on to create the new driver blocks. This sensor
is connected to the microcontroller with the I2C
communication system [1]. The sensor has 3
configuration registers for configuring the sample rate
of the measurements, the gain of the measure
(increasing the resolution) or the operation mode of
the sensor [2]. The next step, after the configuration
registers, is read the value of the magnetic field in the
three axes in other 6 registers of the sensor. Finally, the
magnetometer needs a calibration, to get the real
values of the magnetic field.
Figure 1. Measures of the magnetic field with the calibration
B. Altimeter
Following the same procedure as the
magnetometer, it was necessary to design
Simulink blocks that would allow to obtain the
sensor measurements. This sensor communicates
with the card with I 2 C, as the magnetometer. This
sensor no longer works with different registers. In
this case, the calibration values of the sensor are
stored in a PROM memory. After reading the
values of the PROM, was necessary to obtain the
measurement of the digital pressure and
temperature starting the conversión of the
ADC (Analog to Digital Converter) inside the
sensor, wait for the time that the conversión takes,
and then read the values from the ADC.
With the calibration values and the digital values of
the pressure and temperature, it was necessary to
carry out a series of arithmetic operations with these
values in order to obtain the measurement of the real
pressure and temperature.
C. GPS
GPS sensor provides measurements of the position
for the outdoor autonomous flight, and it is not
integrated in the OpenPilot Revolution. An external
GPS module (the uBlox-M8N) was connected to the
FlexiPort of the flight card.
The communication that was used with the GPS
module was the UART. The communication protocol
used in the GPS is UBX protocol [3], binary encoded and
characteristic of the company u-blox®, so it was
necessary to know the different fields of the protocol
frames. After the identification of the different fields of
the frame, it was necessary to see which are the frames
the GPS send to the microcontroler. To achieve this, we
need to capture the frames through the UART
The last step was to design the Simulink blocks to
capture de specific frames with the information of the
latitude, longitude and altitude.
4. RESULTS
The results of this project must be separated in three
different sections.
The results of the magnetometer after calibration
were satisfactory, since it was found that the sensor i
sable to know the orientation of the north (the
measurement of the magnetic field in the direction
perpendicular to the north was about 0 (-2.8 mG))
allowing the orientation of the autonomous flight of
the drone.
The results of the barometer showed that the
measure of the altitude above the level of the sea, is
not accurate enough (about an error of 80 meters), but
this is not a critical result, because the importante
measure is the height above the ground. This measure
of the height above the ground has an accuracy of 10
cm that is enough to be used for autonomous
navigation. This results were obtained in a test in which
the pressure was measured at different heights
(Figure 2).
Figure 2. Test with measures of the pressure at different heights
The most important result of GPS is that the error
obtained in the horizontal position is 2.103m, which is
a considerable error to introduce into an autonomous
flight control. To solve this problem would be
necessary to incorporate a differential GPS module in
order to reduce the error. In addition it was observed
the precision in the altitude is 6.305m, which is a very
high error if you want to measure the height for the
autonomous flight of the quadricopter, but this result
is not a problem, because the altimeter sensor
provides this measure.
5. CONCLUSION
After the development of the blocks of each sensor
(barometer, magnetometer and GPS), there was no
time to achieve the goal of the autonomous flight
outdoors, but in the other hand, information has been
obtained about the operation and limitations of the
sensors of the quadricopter. With the tests and
measures that have been obtained from the sensors,
we can know if the measures are sufficiently accurate
and reliable for the autonomous flight outdoors. The
altimeter has a very high accuracy (of the order of
centimeters) in the height above the ground of the
quadricopter giving a reliable reference
to the control. The magnetometer has also been
shown to be able to guide the quadricopter correctly in
the desired direction, after calibration. Finally, it has
been found that GPS measurements are not reliable
enough to serve as a reference to the control, so it
would be necessary to adjust the measured using
differential GPS system
The future improvements of this project proposed are:
• Finally design the control for autonomous
navigation of the quadricopter with the new
flight card, OPRevo, using the driver blocks
designed in this project.
• Include the differential GPS system (DGPS), to
improve the precisión in the GPS
measurements.
• Include other sensors to predict the weather
conditions.
6. REFERENCES
[1] «HMC5883L 3-Axis Digital Compass,» [En línea].
Available: https://cdn-
shop.adafruit.com/datasheets/HMC5883L_3-
Axis_Digital_Compass_IC.pdf.
[2] «I2C bus specification,» [En línea]. Available:
http://www.nxp.com/documents/user_manual/UM10
204.pdf.
[3] U-Blox, «Receiver Description Including Protocol
Specification,» [En línea]. Available: https://www.u-
blox.com/sites/default/files/products/documents/u-
blox6_ReceiverDescrProtSpec_%28GPS.G6-SW-
10018%29_Public.pdf?utm_source=en%2Fimages%
2Fdownloads%2FProduct_Docs%2Fu-
blox6_ReceiverDescriptionProtocolSpec_%28GPS.
G6-SW-10018%29.pdf.
ESCUELA TÉCNICA SUPERIOR DE INGENIERÍA (ICAI)
INGENIERÍA ELECTROMECÁNICA
ESPECIALIDAD ELECTRÓNICA
NAVEGACIÓN AUTÓNOMA EN EXTERIORES DE UN CUADRICÓPTERO
Autor: Álvaro Franco Guisasola
Director: Juan Luis Zamora Macho R José Porras Galán
Madrid
Julio 2016
AUTORIZACIÓN PARA LA DIGITALIZACIÓN, DEPÓSITO Y DIVULGACIÓN EN RED DE PROYECTOS FIN DE
GRADO, FIN DE MÁSTER, TESINAS O MEMORIAS DE BACHILLERATO
1º. Declaración de la autoría y acreditación de la misma.
El autor D. ÁLVARO FRANCO GUISASOLA DECLARA ser el titular de los derechos de propiedad intelectual de la
obra: PROYECTO DE FIN DE GRADO: NAVEGACIÓN AUTÓNOMA EN EXTERIORES DE UN
CUADRICÓPTERO que ésta es una obra original, y que ostenta la condición de autor en el sentido que otorga la Ley de
Propiedad Intelectual.
2º. Objeto y fines de la cesión.
Con el fin de dar la máxima difusión a la obra citada a través del Repositorio institucional de la Universidad, el autor
CEDE a la Universidad Pontificia Comillas, de forma gratuita y no exclusiva, por el máximo plazo legal y con ámbito
universal, los derechos de digitalización, de archivo, de reproducción, de distribución y de comunicación pública, incluido
el derecho de puesta a disposición electrónica, tal y como se describen en la Ley de Propiedad Intelectual. El derecho de
transformación se cede a los únicos efectos de lo dispuesto en la letra a) del apartado siguiente.
3º. Condiciones de la cesión y acceso
Sin perjuicio de la titularidad de la obra, que sigue correspondiendo a su autor, la cesión de derechos contemplada
en esta licencia habilita para:
a) Transformarla con el fin de adaptarla a cualquier tecnología que permita incorporarla a internet y hacerla accesible;
incorporar metadatos para realizar el registro de la obra e incorporar “marcas de agua” o cualquier otro sistema
de seguridad o de protección.
b) Reproducirla en un soporte digital para su incorporación a una base de datos electrónica, incluyendo el derecho de
reproducir y almacenar la obra en servidores, a los efectos de garantizar su seguridad, conservación y preservar el
formato.
c) Comunicarla, por defecto, a través de un archivo institucional abierto, accesible de modo libre y gratuito a través
de internet.
d) Cualquier otra forma de acceso (restringido, embargado, cerrado) deberá solicitarse expresamente y obedecer a
causas justificadas.
e) Asignar por defecto a estos trabajos una licencia Creative Commons.
f) Asignar por defecto a estos trabajos un HANDLE (URL persistente).
4º. Derechos del autor.
El autor, en tanto que titular de una obra tiene derecho a:
a) Que la Universidad identifique claramente su nombre como autor de la misma
b) Comunicar y dar publicidad a la obra en la versión que ceda y en otras posteriores a través de cualquier medio.
c) Solicitar la retirada de la obra del repositorio por causa justificada.
d) Recibir notificación fehaciente de cualquier reclamación que puedan formular terceras personas en relación con la
obra y, en particular, de reclamaciones relativas a los derechos de propiedad intelectual sobre ella.
5º. Deberes del autor.
El autor se compromete a:
a) Garantizar que el compromiso que adquiere mediante el presente escrito no infringe ningún derecho de terceros,
ya sean de propiedad industrial, intelectual o cualquier otro.
b) Garantizar que el contenido de las obras no atenta contra los derechos al honor, a la intimidad y a la imagen
de terceros.
c) Asumir toda reclamación o responsabilidad, incluyendo las indemnizaciones por daños, que pudieran ejercitarse
contra la Universidad por terceros que vieran infringidos sus derechos e intereses a causa de la cesión.
d) Asumir la responsabilidad en el caso de que las instituciones fueran condenadas por infracción de derechos derivada
de las obras objeto de la cesión.
6º. Fines y funcionamiento del Repositorio Institucional.
La obra se pondrá a disposición de los usuarios para que hagan de ella un uso justo y respetuoso con los derechos del
autor, según lo permitido por la legislación aplicable, y con fines de estudio, investigación, o cualquier otro fin lícito. Con
dicha finalidad, la Universidad asume los siguientes deberes y se reserva las siguientes facultades:
La Universidad informará a los usuarios del archivo sobre los usos permitidos, y no garantiza ni asume
responsabilidad alguna por otras formas en que los usuarios hagan un uso posterior de las obras no conforme con
la legislación vigente. El uso posterior, más allá de la copia privada, requerirá que se cite la fuente y se reconozca
la autoría, que no se obtenga beneficio comercial, y que no se realicen obras derivadas.
La Universidad no revisará el contenido de las obras, que en todo caso permanecerá bajo la responsabilidad
exclusive del autor y no estará obligada a ejercitar acciones legales en nombre del autor en el supuesto de infracciones
a derechos de propiedad intelectual derivados del depósito y archivo de las obras. El autor renuncia a cualquier
reclamación frente a la Universidad por las formas no ajustadas a la legislación vigente en que los usuarios hagan
uso de las obras.
La Universidad adoptará las medidas necesarias para la preservación de la obra en un futuro.
La Universidad se reserva la facultad de retirar la obra, previa notificación al autor, en supuestos suficientemente
justificados, o en caso de reclamaciones de terceros.
Madrid, a 29 de Julio de 2016
ACEPTA
Fdo. ………………………………………………………..
Declaro, bajo mi responsabilidad, que el Proyecto presentado con el título
NAVEGACIÓN AUTÓNOMA EN EXTERIORES DE UN CUADRICÓPTERO en la ETS de Ingeniería
- ICAI de la Universidad Pontificia Comillas en el
curso académico 2015/2016 es de mi autoría, original e inédito y
no ha sido presentado con anterioridad a otros efectos. El Proyecto no es plagio de otro, ni total ni
parcialmente y la información que ha sido tomada
de otros documentos está debidamente referenciada.
Fdo.: Álvaro Franco Guisasola Fecha: 29/7/2016
Autorizada la entrega del proyecto
EL DIRECTOR DEL PROYECTO
Fdo.: Juan Luis Zamora Macho Fecha: 29/7/2016
Fdo.: José Porras Galán Fecha: 29/7/2016
Vº Bº del Coordinador de Proyectos
Fdo.: Álvaro Sánchez Miralles Fecha: 29/7/2016
ESCUELA TÉCNICA SUPERIOR DE INGENIERÍA (ICAI)
INGENIERÍA ELECTROMECÁNICA
ESPECIALIDAD ELECTRÓNICA
NAVEGACIÓN AUTÓNOMA EN EXTERIORES DE UN CUADRICÓPTERO
Autor: Álvaro Franco Guisasola
Director: Juan Luis Zamora Macho R José Porras Galán
Madrid
Julio 2016
ÍNDICE DE LA MEMORIA
I
UNIVERSIDAD PONTIFICIA COMILLAS
ESCUELA TÉCNICA SUPERIOR DE INGENIERÍA (ICAI)
INGENIERO INDUSTRIAL
Índice de la memoria
Parte I Memoria ........................................................................................ 12
Capítulo 1 Introducción ................................................................................. 14
1.1 Estado del Arte .............................................................................................. 15
1.2 Motivación ...................................................................................................... 17
1.3 Objetivos......................................................................................................... 18
1.4 Metodología .................................................................................................... 19
1.5 Recursos empleados ...................................................................................... 20
Capítulo 2 Hardware y Software .................................................................... 22
2.1 Openpilot Revolution .................................................................................... 22
2.2 Waijung Blockset ........................................................................................... 25
Capítulo 3 Magnetómetro ............................................................................... 27
3.1 Introducción ................................................................................................... 27
3.2 hmc5883l......................................................................................................... 28
3.3 Configuración del magnetómetro ................................................................ 31
3.3.1 Configuración de los registros de inicialización .......................................................... 31
3.3.1.1 Registro de Configuración A ................................................................................ 33
3.3.1.2 Registro de Configuración B ................................................................................ 34
3.3.1.3 Registro de Modo ................................................................................................. 36
3.3.2 Implementación en Matlab ........................................................................................... 37
3.4 Calibración ..................................................................................................... 42
Capítulo 4 Altímetro ....................................................................................... 48
4.1 Introducción ................................................................................................... 48
ÍNDICE DE LA MEMORIA
II
UNIVERSIDAD PONTIFICIA COMILLAS
ESCUELA TÉCNICA SUPERIOR DE INGENIERÍA (ICAI)
INGENIERO INDUSTRIAL
4.2 MS5611-01BA ................................................................................................ 50
4.3 Configuración del barómetro ....................................................................... 52
4.3.1 Implementación en Simulink ....................................................................................... 54
4.3.1.1 Lectura de los valores de la PROM ...................................................................... 54
4.3.1.2 Lectura de la conversión D1 ................................................................................. 56
4.3.1.3 Lectura de la conversión D2 ................................................................................. 57
4.3.1.4 Cálculo de la presión y de la temperatura ............................................................. 58
Capítulo 5 GPS ............................................................................................... 61
5.1 Introducción ................................................................................................... 61
5.2 Sistemas de referencia ................................................................................... 63
5.2.1 ECEF ............................................................................................................................ 63
5.2.2 WGS84 ......................................................................................................................... 64
5.3 U-blox M8N .................................................................................................... 66
5.3.1 Conexión a la placa OpRevo ........................................................................................ 66
5.3.2 Protocolo Ubx .............................................................................................................. 67
5.3.3 Ublox center ................................................................................................................. 69
5.3.4 Implementación en Simulink ....................................................................................... 71
Capítulo 6 Resultados ..................................................................................... 74
6.1 Resultados magnetómetro............................................................................. 74
6.2 Resultados Altímetro ..................................................................................... 75
6.3 Resultados GPS .............................................................................................. 78
Capítulo 7 Conclusiones ................................................................................. 81
Capítulo 8 Futuros desarrollos ...................................................................... 83
Capítulo 9 Bibliografía ................................................................................... 84
Parte II Presupuesto ................................................................................... 87
Capítulo 1 Mediciones .................................................................................... 89
Capítulo 2 Precio Unitario ............................................................................. 91
Capítulo 3 Sumas parciales ............................................................................ 93
ÍNDICE DE LA MEMORIA
III
UNIVERSIDAD PONTIFICIA COMILLAS
ESCUELA TÉCNICA SUPERIOR DE INGENIERÍA (ICAI)
INGENIERO INDUSTRIAL
Capítulo 4 Presupuesto General .................................................................... 96
ÍNDICE DE LA MEMORIA
IV
UNIVERSIDAD PONTIFICIA COMILLAS
ESCUELA TÉCNICA SUPERIOR DE INGENIERÍA (ICAI)
INGENIERO INDUSTRIAL
Índice de tablas
V
UNIVERSIDAD PONTIFICIA COMILLAS
ESCUELA TÉCNICA SUPERIOR DE INGENIERÍA (ICAI)
INGENIERO INDUSTRIAL
Índice de figuras
Figura 1. Parrot Ar Drone ...................................................................................... 15
Figura 2. Tarjeta OpenPilot Revolution ................................................................ 23
Figura 3. Bloque de Target Setup .......................................................................... 25
Figura 4. Bloques de I2C Setup y UART Setup .................................................... 26
Figura 5: Efecto Hall ............................................................................................. 28
Figura 6: Vista superior del magnetómetro HMC5883L. ..................................... 29
Figura 7: Conexión entre el HMC5883L y el microcontrolador ........................... 29
Figura 8: Bloque Magnetómetro ArduPilot Mega ................................................ 38
Figura 9: Nivel superior del bloque de HMC5883L ............................................. 39
Figura 10: Diagrama de escritura de registros de configuración del magnetómetro
............................................................................................................................... 40
Figura 11: Lectura de las medidas del magnetómetro ........................................... 41
Figura 12: Representación campo magnético en los ejes X e Y sin calibración ... 43
Figura 13: Offsets de calibración en el modelo de Simulink ................................ 44
Figura 14: Representación campo magnético en los X e Y con calibración ......... 45
Figura 15: Mapa de la declinación magnética ....................................................... 46
Figura 16: Barómetro MS5611-01BA Figura
17. Diagrama de bloques del MS5611 .................................................................. 51
Figura 18: Bloque del sensor MS5611 para ArduPilotMega ................................ 54
Figura 19. Lectura de la segunda posición de memoria de la PROM del MS5611
............................................................................................................................... 55
Figura 20. Lectura del valor de la presión digital D1 ............................................ 56
Figura 21: Lectura del valor de la presión digital D2 ............................................ 58
Índice de tablas
VI
UNIVERSIDAD PONTIFICIA COMILLAS
ESCUELA TÉCNICA SUPERIOR DE INGENIERÍA (ICAI)
INGENIERO INDUSTRIAL
Figura 22. Cálculo de la presión y la temperatura ................................................. 60
Figura 23. Método de trilateración para conocer la posición del punto B ............ 62
Figura 24. Sistema de referencia ECEF ................................................................ 64
Figura 25. Sistema de referencia WGS84 y ECEF ............................................... 65
Figura 26. Módulo de GPS .................................................................................... 66
Figura 27: Puerto FlexiPort de la placa OpenPilot Revo ...................................... 67
Figura 28. Trama del protocolo UBX ................................................................... 68
Figura 29. Tramas del dispositivo GPS ................................................................. 70
Figura 30. Bloque de configuración de la UART ................................................. 72
Figura 31. Configuración del bloque de lectura de la UART para la trama NAV-
POSLLH ................................................................................................................ 72
Figura 32. Bloques de lectura de los valores del módulo GPS ............................. 73
Figura 33. Recepción de los datos de presión y temperatura en el ordenador ...... 76
Figura 34. Ensayo de medida de la presión con el altímetro ................................. 77
Figura 35. Ensayo de medida de la altura con el altímetro ................................... 78
Índice de tablas
VII
UNIVERSIDAD PONTIFICIA COMILLAS
ESCUELA TÉCNICA SUPERIOR DE INGENIERÍA (ICAI)
INGENIERO INDUSTRIAL
Índice de tablas
VIII
UNIVERSIDAD PONTIFICIA COMILLAS
ESCUELA TÉCNICA SUPERIOR DE INGENIERÍA (ICAI)
INGENIERO INDUSTRIAL
Índice de tablas
Tabla 1. Características OpenPilot Revolution ..................................................... 24
Tabla 2. Especificaciones HMC5883L ................................................................. 30
Tabla 3: Registros HMC5883L ............................................................................. 32
Tabla 4: Bits del Registro de Configuración A ..................................................... 33
Tabla 5: Bits del Registro de Configuración B ..................................................... 34
Tabla 6: Bits del Registro de Modo ....................................................................... 37
Tabla 7: Valores registros de configuración .......................................................... 41
Tabla 8. Características MS5611-01BA ................................................................ 52
Tabla 9. Comandos MS5611-01 ............................................................................ 53
Tabla 10. Factores de calibración del MS5611 ..................................................... 55
Tabla 11. Parámetros WGS 84 .............................................................................. 65
Tabla 12. Campos del protocolo UBX .................................................................. 68
Tabla 13. Análisis de las tramas del módulo GPS ................................................ 71
Tabla 14. Resultados magnetómetro ..................................................................... 74
Tabla 15. Medidas del GPS ................................................................................... 79
Tabla 16: Mediciones de los recursos materiales .................................................. 89
Tabla 17: Mediciones de las herramientas y software .......................................... 89
Tabla 18: Mediciones de la mano de obra ............................................................. 90
Tabla 19: Precios unitarios de recursos materiales ............................................... 91
Tabla 20: Precio unitario de las herramientas y el software .................................. 91
Tabla 21: Precio por hora de mano de obra ........................................................... 92
Tabla 22: Coste total de los recursos materiales ................................................... 93
Índice de tablas
IX
UNIVERSIDAD PONTIFICIA COMILLAS
ESCUELA TÉCNICA SUPERIOR DE INGENIERÍA (ICAI)
INGENIERO INDUSTRIAL
Tabla 23: Coste total de las herramientas y software ............................................ 94
Tabla 24: Coste total de mano de obra directa ...................................................... 94
Tabla 25: Presupuesto general ............................................................................... 96
Índice de tablas
X
UNIVERSIDAD PONTIFICIA COMILLAS
ESCUELA TÉCNICA SUPERIOR DE INGENIERÍA (ICAI)
INGENIERO INDUSTRIAL
Índice de ecuaciones
XI
UNIVERSIDAD PONTIFICIA COMILLAS
ESCUELA TÉCNICA SUPERIOR DE INGENIERÍA (ICAI)
INGENIERO INDUSTRIAL
Índice de ecuaciones
Ecuación 1. Ecuación barométrica ........................................................................ 49
Ecuación 2. Gradiente de presión por altura ......................................................... 50
Ecuación 3. Cálculo de dT .................................................................................... 58
Ecuación 4. Cálculo de TEMP .............................................................................. 58
Ecuación 5. Cálculo de OFF .................................................................................. 59
Ecuación 6. Cálculo de SENS ............................................................................... 59
Ecuación 7. Cálculo de P ....................................................................................... 59
Ecuación 8. Ecuación para el cálculo de la altura ................................................. 77
Memoria
12
UNIVERSIDAD PONTIFICIA COMILLAS
ESCUELA TÉCNICA SUPERIOR DE INGENIERÍA (ICAI)
INGENIERO INDUSTRIAL
Parte I MEMORIA
Memoria
13
UNIVERSIDAD PONTIFICIA COMILLAS
ESCUELA TÉCNICA SUPERIOR DE INGENIERÍA (ICAI)
INGENIERO INDUSTRIAL
14
UNIVERSIDAD PONTIFICIA COMILLAS
ESCUELA TÉCNICA SUPERIOR DE INGENIERÍA (ICAI)
INGENIERO INDUSTRIAL
Capítulo 1 INTRODUCCIÓN
Actualmente el término de dron se emplea habitualmente en el ámbito
cotidiano, se puede escuchar en las noticias cómo Estados Unidos ha empleado un
dron militar en una zona de conflicto; pero hace 20 años no se podía ni imaginar
que existieran vehículos aéreos no tripulados ya que aunque estuvieran ya
desarrollados en el ámbito militar, no eran accesibles al público. Como la gran
mayoría de las tecnologías más innovadoras, han surgido del desarrollo militar,
como internet o el GPS, pero es necesario que la electrónica avance para que estas
tecnologías salgan a la luz. En el caso de los drones o vehículos aéreos no tripulados
(UAVs) este esquema no ha sido distinto, el desarrollo y la potencia de los
microprocesadores ha crecido exponencialmente como ya predijo Moore [1] junto
al desarrollo de los sistemas de control han permitido conseguir la suficiente
precisión y velocidad de procesamiento que requieren los UAVs para su navegación
y estabilización. No sólo ha sido el avance tecnológico sino también la reducción
del precio de los microcontroladores lo que ha permitido este auge de los drones.
La clasificación de los UAVs es muy extensa, pero este proyecto se enmarca
dentro de los UAVs de multirotor que funcionan con el mismo principio
fundamental del helicóptero aunque son vehículos dotados de varias hélices en
lugar de una sola. Los multicópteros pueden contar con distinto número de hélices:
3 (tricóptero), 4 (cuadricóptero), 6 (hexacóptero)… pero el desarrollo del proyecto
se va a realizar con un cuadricóptero al cual se le añadirá un módulo de GPS que
permita la navegación autónoma en exteriores.
15
UNIVERSIDAD PONTIFICIA COMILLAS
ESCUELA TÉCNICA SUPERIOR DE INGENIERÍA (ICAI)
INGENIERO INDUSTRIAL
El objetivo de este proyecto es implementar en el cuadricóptero un sistema
de control de navegación autónomo, empleando la tarjeta de control de vuelo
OpenPilot Revolution, integrando el sistema de GPS que proporcionará las
referencias espaciales que debe seguir para describir una trayectoria.
1.1 ESTADO DEL ARTE
Dentro de las tecnologías existentes de cuadricópteros en la actualidad, la
tecnología más desarrollada pertenece el ámbito militar, por lo que no es accesible
al público general. De este modo, se ha decidido analizar las tecnologías de
cuadricópteros que no pertenecen al ámbito militar, es decir, que pertenecen al
ámbito comercial en la actualidad.
El Parrot Ar Drone (Figura 1) es un proyecto reciente de la empresa
Francesa Parrot, el cual se presentó en el año 2010 en una conferencia en la ciudad
de Las Vegas [2].
Figura 1. Parrot Ar Drone
16
UNIVERSIDAD PONTIFICIA COMILLAS
ESCUELA TÉCNICA SUPERIOR DE INGENIERÍA (ICAI)
INGENIERO INDUSTRIAL
Se trata de un cuadricóptero con una carcasa de plástico y espuma de
aproximadamente 30 centímetros de largo. Dispone de dos cámaras, una en la parte
frontal y otra en la parte posterior, que permiten grabar vídeo. El cuadricóptero se
controla desde una aplicación para Smartphone disponible para dispositivos iOS y
Android, comunicándose a través de protocolo Wi-Fi.
Al tratarse de un producto comercial, el código de programación no está
publicado, es lo que se denomina código propietario, aunque si se permite
programar hasta cierto punto algunas características del dron.
En cuanto a las especificaciones técnicas de este cuadricóptero, dispone de
un microcontrolador ARM9 468MhZ con una RAM de 128MB. La comunicación
con el dron se puede hacer por Wi-Fi y por USB. Los sensores con los que cuenta
el cuadricóptero son: un acelerómetro de 3 ejes, dos giróscopos, un magnetómetro
y un altímetro ultrasónico. Los motores son motores Brushless de una potencia de
15 W y una baria de Litio de 1Ah que proporciona una alimentación de 11.1V. El
peso del cuadricóptero es entre 380 y 420 gramos. La autonomía de vuelo es de 12
minutos a una velocidad de 5 metros por segundo.
Por último, mencionar que su precio en mercado es de 280 €.
17
UNIVERSIDAD PONTIFICIA COMILLAS
ESCUELA TÉCNICA SUPERIOR DE INGENIERÍA (ICAI)
INGENIERO INDUSTRIAL
1.2 MOTIVACIÓN
En los últimos años, los cuadricópteros han aparecido en el ámbito
comercial y ofrecen una enorme cantidad de posibilidades y también de posibles
desarrollos en su tecnología. En el campo de los drones se necesitan conocimientos
en numerosas disciplinas de la ingeniería aunque los pilares son dos: la regulación
automática y los sistemas electrónicos. En la regulación automática se utilizan
estrategias de control avanzadas por la no linealidad del modelo del cuadricóptero
con su implementación a través del entorno de Matlab que ofrece dos ventajas
fundamentalmente, el carácter académico de Matlab pues es el sistema empleado
en la Universidad para el desarrollo de controles por un lado, y por otro, el enorme
potencial y compatibilidad con otros sistemas que ofrece la herramienta. Este
proyecto también se centra en los sistemas electrónicos pues es preciso para integrar
un nuevo controlador, como es la tarjeta OpenPilot Revo, al entorno de Matlab, así
como los sensores de navegación externa y el sistema de GPS. El fin último de este
proyecto sería un sistema de control por GPS que se podría emplear en drones de
mayor tamaño por ejemplo para ayuda humanitaria.
Este proyecto aspira a continuar con proyectos anteriores de la universidad,
donde se consiguió la estabilización del cuadricóptero y el diseño de un entorno
básico de Matlab/Simulink donde trabajar, pero no el vuelo autónomo o la
integración de un módulo de GPS. A partir de los resultados de dichos proyectos,
se pretende conseguir finalmente la integración del GPS para permitir el vuelo
autónomo y emplear una nueva tarjeta de vuelo, al usado en años anteriores que
ofrece mayores posibilidades en cuanto a velocidad de cálculo y posibilidades de
control.
18
UNIVERSIDAD PONTIFICIA COMILLAS
ESCUELA TÉCNICA SUPERIOR DE INGENIERÍA (ICAI)
INGENIERO INDUSTRIAL
1.3 OBJETIVOS
Los objetivos que se pretenden alcanzar con el desarrollo de este proyecto son los
siguientes:
Adaptación de la tarjeta de vuelo OpenPilot Revolution al entorno de
Matlab/Simulink para poder probar el funcionamiento en un entorno de
simulación virtual.
Al trabajar con una nueva tarjeta de vuelo, de la cual no están desarrollados
ningún driver para los sensores del cuadricóptero, por lo que será necesario
desarrollar los bloques de Simulink necesarios que permitan obtener las
medidas de todos los sensores del cuadricóptero (IMU, magnetómetro,
barómetro).
Diseño del control del cuadricóptero, que a su vez está dividido en dos lazos
de control: estabilización y navegación del cuadricóptero. La estabilización
se encarga de mantener en posición estacionaria la aeronave mientras que el
de navegación se encarga de llevarla a las coordenadas de referencia.
Integración del módulo de GPS que permita la navegación autónoma del
cuadricóptero en exteriores, de tal forma, que se obtengan las referencias de
posición para el control del GPS.
19
UNIVERSIDAD PONTIFICIA COMILLAS
ESCUELA TÉCNICA SUPERIOR DE INGENIERÍA (ICAI)
INGENIERO INDUSTRIAL
1.4 METODOLOGÍA
Para llegar a la consecución de los objetivos, se definen las siguientes tareas que
se necesitan ser llevas a cabo:
Configuración del modelo de Simulink
Integración de la tarjeta de control OpenPilot Revo en el entorno de
Matlab/Simulink.
Diseño de la Unidad de Medición Inercial (IMU)
Obtención de las medidas del magnetómetro y su calibración.
Obtención de las medidas del barómetro.
Diseño del control de estabilidad
Diseño de la máquina de estados
Simulación del sistema de control
Pruebas de vuelo estacionario con ajuste del control
Establecer la comunicación entre el GPS y la placa de control
Obtención de las medidas del GPS
Integración del GPS en el modelo
Pruebas de vuelo autónomo
Ajustes finales del control
20
UNIVERSIDAD PONTIFICIA COMILLAS
ESCUELA TÉCNICA SUPERIOR DE INGENIERÍA (ICAI)
INGENIERO INDUSTRIAL
1.5 RECURSOS EMPLEADOS
Las herramientas fundamentales que se utilizaron en desarrollo de este proyecto
fueron las siguientes:
o Matlab/Simulink versión 2015a: esta herramienta se utilizó para programa
la tarjeta de vuelo, realizar todas las simulaciones que fueron necesarias, así
como todas las herramientas de cálculo numérico que se necesitaron para el
proyecto.
o Módulo Bluetooth HC-05: para poder transmitir los datos de la tarjeta de
control al ordenador.
o Tarjeta OpenPilot Revolution: tarjeta de control que tiene integrados el
sensor del magnetómetro y del barómetro para el vuelo autónomo en
exteriores.
o Módulo de GPS U-blox M8N: este módulo se encarga de obtener del sistema
de GPS las medidas de la posición del cuadricóptero.
21
UNIVERSIDAD PONTIFICIA COMILLAS
ESCUELA TÉCNICA SUPERIOR DE INGENIERÍA (ICAI)
INGENIERO INDUSTRIAL
22
UNIVERSIDAD PONTIFICIA COMILLAS
ESCUELA TÉCNICA SUPERIOR DE INGENIERÍA (ICAI)
INGENIERO INDUSTRIAL
Capítulo 2 HARDWARE Y SOFTWARE
En este capítulo se analizará la tarjeta de vuelo seleccionada y la configuración que
presenta, así como el paquete de software que incluye los bloques de Simulink que
permiten la programación del microcontrolador de la tarjeta de vuelo.
2.1 OPENPILOT REVOLUTION
La tarjeta de control es el elemento fundamental de un cuadricóptero, es en una
analogía con el cuerpo humano, el cerebro del mismo. La tarjeta de control es la
encargada de comunicar todos los elementos que lo componen, procesar la
información, realizar los cálculos,…
La tarjeta que se utilice en el cuadricóptero para vuelo autónomo en exteriores a de
ser lo suficientemente potente como para poder procesar todas las medidas de los
sensores y realizar los cálculos del control. Con este propósito se decidió utilizar
una nueva placa con respecto a los proyectos de años anteriores, la OpenPilot
Revolution (Figura 2), con la que se pretenden desarrollar los siguientes proyectos
de drones. La OpenPilot Revolution además presenta ventajas respecto a la utilizada
en años anteriores, el ArduPilotMega (APM), pues el controlador es de 32 bits en
vez de 8 bits como el APM.
23
UNIVERSIDAD PONTIFICIA COMILLAS
ESCUELA TÉCNICA SUPERIOR DE INGENIERÍA (ICAI)
INGENIERO INDUSTRIAL
Figura 2. Tarjeta OpenPilot Revolution
La tarjeta de control está basada en el microcontrolador STM32, que cuenta con
dos partes diferenciadas:
Tarjeta principal: en la que se encuentra el microprocesador en sí, y todos
los conectores hacia el exterior de la placa.
AHRS: son las siglas de Attitude and Heading Reference System, una unidad
en la que se encuentran los sensores de los giróscopos y acelerómetros
(IMU) que se comunica por SPI con el microprocesador; el magnetómetro
y el barómetro que se comunican con el microprocesador por conexión I2C.
Los módulos de comunicación que se incluyen en la placa son USB, 3 de I2C, 3 de
SPI, 4 de USART y 2 de CAN. Se necesitan configurar los diferentes pines para
establecer el tipo de comunicación que se desee establecer.
24
UNIVERSIDAD PONTIFICIA COMILLAS
ESCUELA TÉCNICA SUPERIOR DE INGENIERÍA (ICAI)
INGENIERO INDUSTRIAL
Las características fundamentales de la tarjeta de control OpenPilot Revolution se
resumen en la siguiente tabla:
Características
Puerto MAIN (USART con velocidad ajustable)
Puerto Flexi-IO
Puerto FlexiPort para telemetría
Salida de RF (433MHz)
Sensor de potencia (PWR)
Microcontrolador STM32F4 de 32 bits
Comunicación USB2.0, I2C, SPI, USART, CAN, SIDO
14 timers
Giróscopo de 3 ejes
Acelerómetro de 3 ejes
Magnetómetro de 3 ejes
Sensor de presión barométrica
PWM
Peso 9g
Dimensiones: 36 x 36 mm
Voltaje de alimentación: 5 – 8.4V
Tabla 1. Características OpenPilot Revolution
25
UNIVERSIDAD PONTIFICIA COMILLAS
ESCUELA TÉCNICA SUPERIOR DE INGENIERÍA (ICAI)
INGENIERO INDUSTRIAL
2.2 WAIJUNG BLOCKSET
Para realizar la programación del microcontrolador STM32F4, es necesario una
librería de bloques de Simulink que permite configurar los diferentes protocolos de
comunicaciones como pueden ser UART, I2C, SPI,… además de programar las
interacciones del microcontrolador con otros elementos que se conecten a la placa
a través de los puertos disponibles. Esta librería de bloques, es el Waijung Blockset,
una librería de bloques de Simulink, que automáticamente genera el código en C a
partir de los modelos creados en el entorno de Matlab/Simulink para poder
programar la familia de microcontroladores STM32, en concreto, el STM32F4.
El bloque fundamental que se utiliza en el Waijung Blockset, es el “Target Setup”
(Figura 3) en el que hay que especificar el microprocesador STM32F4 exacto que
se está utilizando, la velocidad del reloj, el tipo de compilador,…
Figura 3. Bloque de Target Setup
Los otros bloques fundamentales que añade la librería son los bloques que permiten
configurar el protocolo de comunicaciones con otros elementos conectados al
microprocesador. Estos bloques tienen el nombre del protocolo de comunicaciones,
como el ‘I2C Master Setup’ o el ‘UART Setup’ (Figura 4). Tienen parámetros
configurables como el tipo de comunicación, la velocidad de transmisión, períodos
de muestreo, pines por los que se comunica con el microprocesador,...
26
UNIVERSIDAD PONTIFICIA COMILLAS
ESCUELA TÉCNICA SUPERIOR DE INGENIERÍA (ICAI)
INGENIERO INDUSTRIAL
Figura 4. Bloques de I2C Setup y UART Setup
Además de los bloques fundamentales, la librería contiene otros bloques que
también pueden ser necesarios para la programación del microcontrolador como
pueden ser delays, lectura o escritura de registros,…
27
UNIVERSIDAD PONTIFICIA COMILLAS
ESCUELA TÉCNICA SUPERIOR DE INGENIERÍA (ICAI)
INGENIERO INDUSTRIAL
Capítulo 3 MAGNETÓMETRO
En este capítulo se expone el magnetómetro como uno de los tres sensores
fundamentales para navegación de un cuadricóptero en exteriores, que permite la
orientación del cuadricóptero en el espacio.
En la sección 3.1 introduce el magnetómetro como sensor y su funcionamiento.
En segundo lugar, en 3.2, se concreta el sensor que se utiliza para el proyecto, el
HMC5883L, y sus principales características.
A continuación, en 3.3 se explica la configuración que se tuvo que realizar del
sensor incluyendo la implementación en el entorno de Matlab y Simulink.
Por último, en el apartado 3.4 se expone como se ha llevado a cabo la calibración
del magnetómetro.
3.1 INTRODUCCIÓN
El magnetómetro es un sensor capaz de medir la fuerza (módulo) y dirección del
campo magnético. Este sensor normalmente se emplea para medir el campo
magnético terrestre (magnetósfera), como en el caso de los teléfonos móviles,
aunque también puede tener otros usos como conocer la composición del suelo por
el magnetismo de las rocas que lo componen. En el marco del control de un
cuadricóptero, el magnetómetro se utiliza para determinar la orientación del mismo
en el espacio, es decir, esencialmente es como una ‘brújula’, pues podemos saber
en todo momento en que dirección se encuentra el norte.
28
UNIVERSIDAD PONTIFICIA COMILLAS
ESCUELA TÉCNICA SUPERIOR DE INGENIERÍA (ICAI)
INGENIERO INDUSTRIAL
El funcionamiento de los magnetómetros es por el denominado Efecto Hall [3]. Este
efecto se da cuando una corriente eléctrica está bajo la influencia de un campo
magnético que no es paralelo a la corriente, haciendo que los electrones se desvíen
y circulen por un lado del conductor, y no por una línea recta. Debido a esta
desviación, se produce una diferencia de potencial (voltaje del Hall) proporcional
a la fuerza del campo magnético (Figura 5: Efecto Hall). Combinando la medida en
los 3 ejes, podemos saber la fuerza y dirección del campo magnético.
Figura 5: Efecto Hall
(Fuente:” http://hyperphysics.phy-astr.gsu.edu/hbase/magnetic/imgmag/hall.gif ")
El mayor problema que nos encontramos con este sensor es que todos los aparatos
electrónicos generan ondas electromagnéticas que perturban la medida del
magnetómetro por lo que es necesario una calibración.
3.2 HMC5883L
El magnetómetro empleado en este proyecto es el HMC5883L, que viene ya
integrado en la placa OPRevolution. Este magnetómetro ofrece medidas del campo
magnético en los 3 ejes, por lo que es necesario establecer el sistema de referencia
que utiliza el magnetómetro (Figura 6), que se corresponde con el sistema de
referencia lógico de colocación de la placa en un cuadricóptero.
29
UNIVERSIDAD PONTIFICIA COMILLAS
ESCUELA TÉCNICA SUPERIOR DE INGENIERÍA (ICAI)
INGENIERO INDUSTRIAL
Figura 6: Vista superior del magnetómetro HMC5883L.
(Fuente:” https://cdn-shop.adafruit.com/datasheets/HMC5883L_3-Axis_Digital_Compass_IC.pdf")
El sensor está conectado a los pines 61 (PB8) y 62 (PB9) del microprocesador,
como se puede apreciar en la Figura 7. El protocolo de comunicaciones empleado
con este sensor es el I2C, que utiliza dos líneas de señal una de reloj (SCL: serial
clock) que se corresponde con el pin PB8 y otra de datos (SDA: serial data) que se
corresponde con el PB9, necesitando ambas líneas resistencias de pull-up hacia
VDD correspondiéndose en este caso con las resistencias R16 y R17 de 2.2kΩ.
Figura 7: Conexión entre el HMC5883L y el microcontrolador
30
UNIVERSIDAD PONTIFICIA COMILLAS
ESCUELA TÉCNICA SUPERIOR DE INGENIERÍA (ICAI)
INGENIERO INDUSTRIAL
El I2C es un protocolo de comunicaciones diseñado como un bus de maestro-
esclavo [4], por lo que es posible conectar simultáneamente al bus varios esclavos
como es en este caso tanto el magnetómetro (HMC5883L) como el barómetro
(Pressure Sensor).
El siguiente paso es conocer las especificaciones [5] que necesitamos para poder
configurar el sensor que se recogen en la Tabla 2.
Característica Valores
Tensión de alimentación 2.16 – 3.6 V
Consumo de corriente 100µA
Rango de medida -8G a +8G
Sensibilidad 230 – 1370 LSb/G
Resolución 0.73 – 4.35 mG
Output rate 0.75 – 75 Hz
Velocidad I2C Máx. 400kHz
Precisión 1 – 2º
Dimensiones 3.0 x 3.0 x 0.9 mm
Tabla 2. Especificaciones HMC5883L
31
UNIVERSIDAD PONTIFICIA COMILLAS
ESCUELA TÉCNICA SUPERIOR DE INGENIERÍA (ICAI)
INGENIERO INDUSTRIAL
3.3 CONFIGURACIÓN DEL MAGNETÓMETRO
En esta sección se explicará cómo se configuraron los registros del sensor para así
poder leer las medidas del magnetómetro. Esto fue necesario pues al emplear una
nueva tarjeta de vuelo, la OPRevolution, ya no están disponibles los bloques de
Simulink del ArduinoMega que incluían ya hecha toda la configuración del sensor
así como la lectura de las medidas. De esa forma, fue necesario primera evaluar
cuales tendrían que ser los valores de los registros de configuración del sensor para
después pasar a implementarlo en el entorno de Simulink.
3.3.1 CONFIGURACIÓN DE LOS REGISTROS DE INICIALIZACIÓN
En primer lugar, para poder acceder a los registros del sensor es necesario conocer
la dirección I2C que se corresponde con el magnetómetro HMC5883L, que es
‘0x3C’. Al ser un protocolo I2C existen dos direcciones distintas, una de escritura
con el bit menos significativo (LSB) a ‘0’, que es ‘0x3C’ y una de lectura con el
LSB a ‘1’ que es ‘0x3D’.
En el protocolo I2C, existen cinco modos de velocidad de transmisión [6], de los
cuales el sensor solo es capaz de funcionar en dos de ellos:
Standard mode: funciona con una frecuencia de transmisión de 100kHz.
Fast mode: funciona con una frecuencia de transmisión de 400kHz.
En este caso, se estableció que la velocidad de transmisión por I2C era la del
standard mode de 100kHz pues no se precisa de mayor velocidad pues el sensor
HMC5883L solo es capaz de obtener medidas del campo magnético con una
velocidad máxima de 75Hz.
32
UNIVERSIDAD PONTIFICIA COMILLAS
ESCUELA TÉCNICA SUPERIOR DE INGENIERÍA (ICAI)
INGENIERO INDUSTRIAL
Los registros con los que cuenta el sensor se recogen en la Tabla 3, que contiene las
direcciones de los registros (de 8 bits) y sus modos de acceso (lectura/escritura).
Cuenta con 3 registros de configuración que serían el Registro de Configuración
A, el Registro de Configuración B y el Registro de Modo. Otros 6 registros que
contienen las medidas del magnetómetro (direcciones del ‘03’ al ‘08’). El Registro
de Estado que nos da información del cuando el sensor está realizando las medidas
o está en estado de suspensión. Por último 3 registros (direcciones del ‘10’ al ‘12’)
que identifican el dispositivo y la localización de los bits en los otros registros.
Registro Dirección Acceso
Registro de Configuración A 00 Lectura/Escritura
Registro de Configuración B 01 Lectura/Escritura
Registro de Modo 02 Lectura/Escritura
Registro de salida X MSB 03 Lectura
Registro de salida X LSB 04 Lectura
Registro de salida Z MSB 05 Lectura
Registro de salida Z LSB 06 Lectura
Registro de salida Y MSB 07 Lectura
Registro de salida Y LSB 08 Lectura
Registro de Estado 09 Lectura
Registro de Identificación A 10 Lectura
Registro de Identificación B 11 Lectura
Registro de Identificación C 12 Lectura
Tabla 3: Registros HMC5883L
33
UNIVERSIDAD PONTIFICIA COMILLAS
ESCUELA TÉCNICA SUPERIOR DE INGENIERÍA (ICAI)
INGENIERO INDUSTRIAL
3.3.1.1 Registro de Configuración A
El primer registro que es necesario configurar para obtener las medidas del
magnetómetro es el Registro de Configuración A. Es un registro de 8 bits en el que
se establece la velocidad de salida de las medidas del magnetómetro y la
configuración de cómo se realiza esa medida de acuerdo a lo que es expone en la
Tabla 4.
Bit location Nombre Descripción
CRA7 CRA7 Reservado. Se pone 0 para configurar el registro
CRA6 MA1 Selecciona el número de muestras promediadas (desde 1 hasta
8) por medida. 00=1; 01=2; 10=4; 11=8 CRA5 MA0
CRA4 DO2 Estos 3 bits seleccionan la velocidad de medida de los 3
registros de salida que puede ir desde 0.75Hz (‘000’) hasta
75Hz (‘110’).
CRA3 DO1
CRA2 DO0
CRA1 MS1 Establecen la configuración de las cargas resistivas de los
sensores de los tres ejes, que puede ser con una corriente
positiva (01), negativa (11) o sin corriente que es el modo por
defecto (00).
CRA0 MS0
Tabla 4: Bits del Registro de Configuración A
La velocidad de obtención de las medidas del magnetómetro se puede configurar
desde 0.75Hz hasta los 75Hz, de tal forma, que seleccionamos la velocidad más alta
(75Hz) que se corresponde con esos bits a ‘110’, puesto que en el caso de un
cuadricóptero nos interesa ir actualizando las medidas del magnetómetro lo más
rápido posible para así no introducir retardos en el control. También se selecciona
el número de muestras promediadas para obtener la medida, para lo que se
seleccionó 8 muestras (‘11’), para una mayor precisión en las medidas del
34
UNIVERSIDAD PONTIFICIA COMILLAS
ESCUELA TÉCNICA SUPERIOR DE INGENIERÍA (ICAI)
INGENIERO INDUSTRIAL
magnetómetro. En la configuración de las cargas resistivas se optó por dejar el
modo por defecto, dejando esos bits a ‘00’. Por tanto el Registro de Configuración
A se tiene que configurar como ‘0x78’.
3.3.1.2 Registro de Configuración B
A continuación fue necesario el Registro de Configuración B. Es un registro de 8
bits en el que se establece la ganancia del dispositivo, que es común a las medidas
de los tres ejes, de acuerdo a los valores de los tres bits más significativos del
registro (Tabla 5).
Bit location Nombre Descripción
CRB7 GN2 Bits de configuración de la ganancia del dispositivo. Esta
ganancia se aplica en la medida de los tres canales que se
corresponden con los tres ejes.
CRB6 GN1
CRB5 GN0
CRB4 0
Tienen que ponerse estos bits a 0 para el correcto
funcionamiento del sensor
CRB3 0
CRB2 0
CRB1 0
CRB0 0
Tabla 5: Bits del Registro de Configuración B
35
UNIVERSIDAD PONTIFICIA COMILLAS
ESCUELA TÉCNICA SUPERIOR DE INGENIERÍA (ICAI)
INGENIERO INDUSTRIAL
La ganancia que se establece en las medidas tiene dos consecuencias
fundamentales:
-Al aumentar la ganancia, mejoramos la resolución de las medidas, aunque
esto no es completamente cierto, debido a que lo que mejoramos realmente
es la resolución digital de la medida, ya que no se está teniendo en cuenta el
ruido de la medida que también se ve amplificado por la ganancia. En
conclusión la resolución completa de la medida será la máxima entre la
resolución digital y la del ruido amplificado.
-Al aumentar la ganancia, se disminuye el rango de campo magnético que
es capaz de medir nuestro sensor, pues al amplificar la medida ésta satura
(por el overflow de los registros de salida) al superar los límites de los
registros.
En conclusión, como acurre a menudo en el ámbito de la ingeniería, existe un
compromiso entre tener un rango de medida más amplio o una mejor resolución en
la medida; en este caso, se seleccionó un rango de medida del campo magnético de
±1.3G debido a que en el marco de las medidas de los sensores de un cuadricóptero
lo que nos interesa medir es el campo magnético terrestre que ronda entre 0.25 y
0.65G. El rango de medida de ±1.3G se corresponde con una ganancia de 1090
LSb/G y una resolución de 0.92 mG/LSb. De modo que los bits de configuración
GN2, GN1 y GN0, hay que configurarlos con ‘001’. El Registro de Configuración
B se configuró con valor ‘0x20’.
36
UNIVERSIDAD PONTIFICIA COMILLAS
ESCUELA TÉCNICA SUPERIOR DE INGENIERÍA (ICAI)
INGENIERO INDUSTRIAL
3.3.1.3 Registro de Modo
El magnetómetro HMC5883L cuenta con tres modos de operación distintos que se
pueden configurar en el Registro de Modo. Estos tres modos de operación son:
Continuous-Measurement Mode: en este modo de funcionamiento el
dispositivo realiza medidas continuamente, a la frecuencia configurada en
el Registro de Configuración A, y va actualizando los registros de salida de
las medidas automáticamente.
Single-Measurement Mode: este es el modo por defecto del sensor, en el
que realiza una única medida y la coloca en los registros de salida. Después
de que la medida se ha realizado, el dispositivo pasa a Idle Mode.
Idle Mode: el dispositivo en este modo de operación reduce el consumo de
energía pues no tiene que estar funcionando el convertidor AD, ni el
amplificador operacional. Todos los registros mantienen sus valores
mientras dure este modo de funcionamiento.
El modo de funcionamiento que nos interesa para implementar el sensor en el
control del cuadricóptero es el continuous-measurement mode pues no es necesario
ir cambiando entre los otros dos modos de funcionamiento continuamente, sino que
automáticamente se van actualizando los registros con las medidas del
magnetómetro.
Para configurar el magnetómetro en el modo de operación deseado, fue necesario
configurar el valor del Registro de Modo, con arreglo a la Tabla 6, con el valor de
‘0x00’.
37
UNIVERSIDAD PONTIFICIA COMILLAS
ESCUELA TÉCNICA SUPERIOR DE INGENIERÍA (ICAI)
INGENIERO INDUSTRIAL
Bit location Nombre Descripción
MR7 0
Tienen que ponerse estos bits a 0 para el correcto
funcionamiento del sensor
MR6 0
MR5 0
MR4 0
MR3 0
MR2 0
MR1 MD1 Con estos bits se selecciona el modo de operación del
dispositivo. ‘00’ para continuous-measurement mode,
‘01’ para single-measurement mode y ‘10’ para idle mode. MR0 MD0
Tabla 6: Bits del Registro de Modo
3.3.2 IMPLEMENTACIÓN EN MATLAB
Conocida ya la configuración que se necesita del magnetómetro, se tiene que
implementar con el entorno de Matlab y Simulink. En el anterior proyecto, se
disponían de unos bloques de Simulink ya diseñados para la tarjeta ArduPilotMega,
como puede ser el caso de un Driver Block del magnetómetro HMC5883L que
estamos utilizando (Figura 8), de modo que no era necesario realizar ningún tipo de
configuración del sensor ni de lectura de los registros donde estaban almacenadas
las medidas.
38
UNIVERSIDAD PONTIFICIA COMILLAS
ESCUELA TÉCNICA SUPERIOR DE INGENIERÍA (ICAI)
INGENIERO INDUSTRIAL
Figura 8: Bloque Magnetómetro ArduPilot Mega
(Fuente:” Simulink")
Estos bloques no eran aprovechables pues en este proyecto se necesitaba
implementar en la nueva tarjeta OpenPilot Revolution, lo que aumentó la dificultad
en el diseño de los bloques de Simulink, ya que se tenía que empezar a programar
los bloques desde cero. Para no tener que diseñar los bloques desde el nivel más
básico de comunicaciones, se utilizó el paquete de software Waijung, que
proporciona los elementos básicos necesarios para programar el protocolo I2C.
39
UNIVERSIDAD PONTIFICIA COMILLAS
ESCUELA TÉCNICA SUPERIOR DE INGENIERÍA (ICAI)
INGENIERO INDUSTRIAL
En la Figura 9, se muestra el nivel superior del bloque del magnetómetro, donde se
puede ver configuración, como ya se explicó en la sección 3.2, de pines (PB9/PB8)
y velocidad de transmisión por I2C (100kHz).
Figura 9: Nivel superior del bloque de HMC5883L
En la Figura 10 se ve la programación de los bloques que se encargan de escribir
los valores de los registros de configuración del magnetómetro (CONFIG_REG_A,
CONFIG_REG_B y CONFIG_MODE_REGISTER) con los valores que se
recogen en la Tabla 7, que aparecen explicados en las secciones anteriores. Además
se realiza una comprobación de que se ha escrito los registros correctamente cuando
todos los Status están a 0 (0 indica que se ha llevado a cabo correctamente la
acción), para no pasar a lectura de las medidas del magnetómetro sin previamente
haber realizado la configuración adecuada.
40
UNIVERSIDAD PONTIFICIA COMILLAS
ESCUELA TÉCNICA SUPERIOR DE INGENIERÍA (ICAI)
INGENIERO INDUSTRIAL
Figura 10: Diagrama de escritura de registros de configuración del magnetómetro
41
UNIVERSIDAD PONTIFICIA COMILLAS
ESCUELA TÉCNICA SUPERIOR DE INGENIERÍA (ICAI)
INGENIERO INDUSTRIAL
Registro Valor hexadecimal
Registro de Configuración A 0x78
Registro de Configuración B 0x20
Registro de Modo 0x00
Tabla 7: Valores registros de configuración
En último lugar se necesitan construir los bloques para leer los registros del
magnetómetro que contienen las medidas del campo magnético en los tres ejes
(Figura 11). Al ser dos registros de 8 bits, es necesario multiplicar el registro que
contiene los bits más significativos (MSB) por 28 y sumarlo al otro registro para
obtener la medida en cada eje. Después este valor se multiplica por el factor de
escala (SCALE) que se corresponde con el inverso de la ganancia de la medida que
se configuró en el registro B (Sección 3.3.1.2). Los valores del campo magnético
están en unidades de [mG].
Figura 11: Lectura de las medidas del magnetómetro
42
UNIVERSIDAD PONTIFICIA COMILLAS
ESCUELA TÉCNICA SUPERIOR DE INGENIERÍA (ICAI)
INGENIERO INDUSTRIAL
3.4 CALIBRACIÓN
Para controlar la posición del cuadricóptero es necesario conocer la dirección en la
que avanza por lo tanto es necesario tomar como referencia el norte geográfico. Es
con este propósito que emplea el magnetómetro, que es capaz de medir el campo
magnético terrestre. Para localizar en qué dirección se encuentra el norte es
necesario que las medidas del magnetómetro sean muy precisas, pero casi todos los
elementos que nos rodean generan ondas magnéticas que también mide el
magnetómetro perturbando la medida, de tal forma que es necesario realizar una
calibración del magnetómetro para obtener las medidas deseadas [7].
El magnetómetro mide la magnitud del campo magnético en todos los ejes, pero
para nuestro propósito que es la orientación del cuadricóptero solo es necesario
calibrar el magnetómetro en los ejes X e Y. Para ello fue necesario realizar un
ensayo en el que se midieron las medidas del magnetómetro en dichos ejes mientras
se realiza un giro de 360º con el magnetómetro sobre el plano horizontal. De ese
modo se obtiene una circunferencia si se representa las medidas del magnetómetro
en eje X frente a las medidas en el eje Y (Figura 12).
43
UNIVERSIDAD PONTIFICIA COMILLAS
ESCUELA TÉCNICA SUPERIOR DE INGENIERÍA (ICAI)
INGENIERO INDUSTRIAL
Figura 12: Representación campo magnético en los ejes X e Y sin calibración
Como se puede ver la circunferencia no está centrada en el punto (0,0) como debería
estar, pues al rotar un vector (el campo magnético terrestre) 360º, sus proyecciones
tienen que formar una circunferencia centrada en el origen. Para calibrar el
magnetómetro es necesario calcular los offset de calibración para los ejes X e Y,
que serían necesarios para centrar la circunferencia en el origen, de tal forma, que
el offset para eje X es de 242 mG y el offset para el eje Y es de -167 mG.
Introduciendo estos offset de calibración en el modelo de Simulink, restándolo de
las medidas obtenidas por el magnetómetro (Figura 13), se obtienen las medidas ya
calibradas del magnetómetro.
44
UNIVERSIDAD PONTIFICIA COMILLAS
ESCUELA TÉCNICA SUPERIOR DE INGENIERÍA (ICAI)
INGENIERO INDUSTRIAL
Figura 13: Offsets de calibración en el modelo de Simulink
Una vez introducidos los valores de calibración del magnetómetro, se realizó el
mismo ensayo que antes, de rotar la placa (el magnetómetro) 360º en el plano
horizontal, para ver que efectivamente ahora al representar los valores del campo
magnético en X frente a los valores de Y, la circunferencia estaría centrada en el
origen (Figura 14). Como se puede ver los resultados de la calibración son buenos
aunque se podría afinar algo más con los valores de los offset, pero son aceptables
para la orientación del cuadricóptero.
45
UNIVERSIDAD PONTIFICIA COMILLAS
ESCUELA TÉCNICA SUPERIOR DE INGENIERÍA (ICAI)
INGENIERO INDUSTRIAL
Figura 14: Representación campo magnético en los X e Y con calibración
En último lugar, hay que mencionar que con estos valores se puede obtener la
orientación del norte magnético de la Tierra con cierta exactitud, pero éste no se
corresponde con el norte geográfico que es el que realmente nos interesa para la
navegación autónoma del cuadricóptero, para ello habría que tener en cuenta la
declinación magnética de la posición en la que se vaya a realizar la navegación. El
valor de la declinación se puede obtener de modelos terrestres como el de la Figura
15, donde se aprecia que en España la declinación es de aproximadamente de -2º
[8].
46
UNIVERSIDAD PONTIFICIA COMILLAS
ESCUELA TÉCNICA SUPERIOR DE INGENIERÍA (ICAI)
INGENIERO INDUSTRIAL
Figura 15: Mapa de la declinación magnética
47
UNIVERSIDAD PONTIFICIA COMILLAS
ESCUELA TÉCNICA SUPERIOR DE INGENIERÍA (ICAI)
INGENIERO INDUSTRIAL
48
UNIVERSIDAD PONTIFICIA COMILLAS
ESCUELA TÉCNICA SUPERIOR DE INGENIERÍA (ICAI)
INGENIERO INDUSTRIAL
Capítulo 4 ALTÍMETRO
El GPS nos proporciona un gran número de mediciones que nos resultan
fundamentales para el vuelo autónomo, pero no resulta lo suficientemente fiable a
la hora de proporcionar la medida de la altitud, que resulta imprescindible a la hora
del vuelo autónomo en exteriores. El GPS tiene una precisión menor de 10 metros
aproximadamente en la medida de la altitud, por lo que es necesario incluir otro
sensor que nos de la información necesaria sobre la altura a las que nos
encontramos. Este sensor es el altímetro (o barómetro) que nos proporciona una
medida bastante exacta de la presión con la cual es posible calcular la altura a la
que se encuentra el cuadricóptero.
4.1 INTRODUCCIÓN
El altímetro (barómetro cuando se utiliza para medir presiones en vez de alturas),
es un instrumento de medida que indica la diferencia de altura entre el punto en el
que se encuentra localizado y un punto de referencia. Comúnmente la referencia
que se toma para calcular las alturas es el nivel del mar, aunque para el caso que
nos ocupa, el vuelo autónomo de un cuadricóptero podemos establecer una
referencia más sencilla y más útil que el nivel del mar, como es el suelo que
podemos considerar como referencia (es decir tomarlo como origen de alturas, de
tal forma que las alturas obtenidas son respecto del suelo).
El principio fundamental en el que se basa el altímetro es la ecuación barométrica
que relaciona la diferencia de altura con el cociente de presiones (Ecuación 1).
49
UNIVERSIDAD PONTIFICIA COMILLAS
ESCUELA TÉCNICA SUPERIOR DE INGENIERÍA (ICAI)
INGENIERO INDUSTRIAL
𝑃 = 𝑃0 · 𝑒− 𝑔·𝑀·(ℎ−ℎ0)
𝑅·𝑇
Ecuación 1. Ecuación barométrica
Donde cada uno de los términos se corresponde con:
P0 es la presión al nivel de referencia (h0) en [Pa]. Normalmente se toma la
presión al nivel del mar (101300Pa) como referencia.
P es la presión a la altura ‘h’.
g es aceleración de la gravedad (9.80665 m/s2).
M es la masa molar del aire de la Tierra: 0.0289664 kg/mol
R es la constante universal de los gases: 8.31432 N·m/mol·K.
T es la temperatura en [K].
h-h0 es la diferencia entre la altura a la que se encuentra el altímetro y la
altura de referencia.
El modelo que sea emplea para obtener esta altura, asume que la temperatura es
uniforme además de que no tiene en cuenta las diferencias de presión por efectos
meteorológicos por lo que no representa un modelo completamente realista de la
atmósfera, aunque si se aproxima bastante al valor, pero hay que tener en cuenta las
limitaciones de la ecuación [9].
A efectos del vuelo autónomo lo que realmente nos interesa es la altura respecto del
nivel del suelo por lo que no es necesario emplear la ecuación barométrica, sino
calcular el cambio de presión que corresponde a un pequeño cambio en la altura,
para ello se deriva la ecuación barométrica (Ecuación 1) y aplicando infinitésimos,
obteniendo la Ecuación 2. Este valor nos sirve para cuantificar el gradiente de la
presión respecto de la temperatura y así poder linealizar la ecuación que relaciona
presión y temperatura. Este modelo es muy exacto para diferencias de altura
pequeñas y tiene en cuenta un modelo más realista de la atmósfera pues toma como
presión base la presión a nivel del suelo y la temperatura del entorno (que si se
mantiene constante en pequeños cambios de altura).
50
UNIVERSIDAD PONTIFICIA COMILLAS
ESCUELA TÉCNICA SUPERIOR DE INGENIERÍA (ICAI)
INGENIERO INDUSTRIAL
∆𝑃
∆ℎ= −
𝑔 · 𝑀 · 𝑃
𝑅 · 𝑇
Ecuación 2. Gradiente de presión por altura
El valor de este gradiente, se suele tomar como valor promedio 1hPa por cada 8.2m
lo que supone aproximadamente una disminución aproximada de la presión de
12.5Pa/m [10].
Por último, el funcionamiento físico del altímetro está basado en los cambios de
volumen que experimenta una cápsula cerrada que contiene un gas o un líquido (un
fluido) a cierta presión. De forma que se puede medir las variaciones de volumen,
y con ello saber la diferencia de presión entre la cápsula y el ambiente, y de esa
forma la presión del ambiente (es decir, también la altura).
4.2 MS5611-01BA
El barómetro que actuará de altímetro empleado en este proyecto es el MS5611-
01BA (Figura 16), que viene ya integrado en la placa OPRevolution. Es un
barómetro de alta resolución que permite obtener errores de altura menores a 10cm.
El sensor incluye dos protocolos de comunicaciones compatibles, SPI e I2C. El
sensor además de dar la medida de la presión también es capaz de medir la
temperatura, para mejorar la medida del altímetro (compensándola con la
temperatura). Para la programación de este sensor, no es necesario ir configurando
los distintos registros internos como en el caso del magnetómetro, sino únicamente
leer los datos de calibración que vienen de fábrica una memora PROM integrada y
51
UNIVERSIDAD PONTIFICIA COMILLAS
ESCUELA TÉCNICA SUPERIOR DE INGENIERÍA (ICAI)
INGENIERO INDUSTRIAL
leer los datos de las medidas de presión y temperatura, que se obtienen un
convertidor ADC, como se puede ver en el diagrama del sensor de la Figura 16.
Figura 16: Barómetro MS5611-01BA Figura 17. Diagrama de bloques del MS5611
Este sensor puede trabajar como ya se ha mencionado con dos protocolos distintos
pero depende del pin PS (Protocol Select) del sensor si está a nivel bajo, el sensor
trabaja con protocolo SPI, mientras que si el pin está a nivel alto se activa el
protocolo de comunicación bus I2C. En el caso de la tarjeta OPRevo, con arreglo a
lo que aparece en los planos de la placa como se aprecia en la Figura 7, del
magnetómetro el pin PS está a Vcc (nivel alto) por lo que está habilitado el protocolo
I2C, lo cual es lógico pues el microcontrolador de la placa actúa de maestro para
dos esclavos distintos, por un lado el magnetómetro y por el otro el barómetro
utilizando un mismo bus de comunicaciones.
Las especificaciones que nos interesan de este sensor aparecen recogidas en la
siguiente Tabla 8, que como vemos cumplen con los requisitos de este proyecto con
bastante margen en todos los aspectos tanto de rango de valores, como resolución,
como temperaturas de funcionamiento.
52
UNIVERSIDAD PONTIFICIA COMILLAS
ESCUELA TÉCNICA SUPERIOR DE INGENIERÍA (ICAI)
INGENIERO INDUSTRIAL
Característica Valores
Tensión de alimentación 1.8 – 3.6 V
Consumo de corriente 12µA
Temperatura de operación -40 a 85ºC
ADC Output Word 24bits
Error de temperatura ±0.8ºC
Resolución de temperatura 0.002ºC
Rango de presiones 450 – 1100 mbar
Error de la presión ±1mbar
Resolución de la presión 0.012mbar
Dimensiones 5.0 x 3.0 x 1.0 mm
Tabla 8. Características MS5611-01BA
4.3 CONFIGURACIÓN DEL BARÓMETRO
En esta sección se explica el proceso para obtener las medidas del barómetro
correctamente calibradas. Este proceso se realiza en cuatro pasos:
1. Lectura de los valores de calibración de fábrica de la memoria PROM
2. Iniciar la conversión ADC del barómetro para as medidas de presión
3. Recibir los datos de las medidas de presión
4. Realizar los pasos 3 y 4 para la medida de la temperatura
Lo primero que es necesario conocer es la dirección del dispositivo MS5611-01,
que es en código binario ‘111011Cx’ donde C es valor complementario del pin
CSB, que en caso de la placa OPRevo está a nivel bajo por lo tanto C es 1 y la
dirección es ‘0xEE’.
53
UNIVERSIDAD PONTIFICIA COMILLAS
ESCUELA TÉCNICA SUPERIOR DE INGENIERÍA (ICAI)
INGENIERO INDUSTRIAL
El MS5611-01 dispone de cinco comandos que se recogen en la siguiente Tabla 9.
Comando Byte del comando Valor hex.
Reset 0 0 0 1 1 1 1 0 0x1E
Conversión D1 0 1 0 0 x x x x 0x40 a 0x48
Conversión D2 0 1 0 1 y y y y 0x50 a 0x58
Lectura ADC 0 0 0 0 0 0 0 0x00
Lectura PROM 1 0 1 0 Ad2 Ad1 Ad0 0 0xA0 a 0xAE
Tabla 9. Comandos MS5611-01
El comando de conversión D1, inicia la conversión del ADC para el valor de la
presión, y los últimos 4 bits (x) dependen del valor de OSR [11] (que es la relación
entre la frecuencia de muestro de la modulación de la señal y la frecuencia de
Nyquist) que se quiera especificar para el conversor ADC, de tal forma que a mayor
OSR, aumenta la resolución del convertidor, pero en contraparte, hace que la
conversión sea más lenta. Lo mismo ocurre para la conversión D2, que sirve para
iniciar la conversión de temperatura.
La PROM es una memoria de 128 bits que contiene los factores de calibración del
barómetro que ya vienen de fábrica. Tiene 8 direcciones de memoria, con datos de
16 bits. Las 8 direcciones de memoria se corresponden con los bits Ad2, Ad1 y Ad0
del comando de lectura de la PROM. La dirección 0 contiene datos de fábrica y de
configuración que no nos interesan. Las direcciones de la 1 a la 6 contiene los
factores de calibración que necesitamos y por último la dirección 7 contiene el
número de seria y un código CRC para comprobar que el estado de la memoria es
correcto.
54
UNIVERSIDAD PONTIFICIA COMILLAS
ESCUELA TÉCNICA SUPERIOR DE INGENIERÍA (ICAI)
INGENIERO INDUSTRIAL
4.3.1 IMPLEMENTACIÓN EN SIMULINK
Del mismo modo que ocurría con el magnetómetro, en el proyecto anterior para
utilizar este sensor únicamente era necesario emplear un Driver Blockset del sensor
MS5611-01 (Figura 18) para la tarjeta ArduPilotMega, para conocer las medidas de
presión y temperatura, que ya estaba dentro de unas librerías de Simulink. En el
marco de este proyecto, al haber introducido una nueva tarjeta, la OpenPilot
Revolution, ha sido necesario desarrollar toda la configuración de Simulink,
utilizando como base en Waijung Blockset, necesaria para obtener las medidas de
este sensor, que se pasará a explicar en las siguientes secciones.
Figura 18: Bloque del sensor MS5611 para ArduPilotMega
4.3.1.1 Lectura de los valores de la PROM
El primer paso fue diseñar los bloques de Simulink para conseguir los valores de la
PROM del barómetro, para lo cual se usó el comando de lectura de la PROM, desde
‘0xA0’ hasta ‘0xAE’, que se corresponde con la constante de los bloques de
Simulink MS5611_CMD_READPROMx donde ‘x’ toma valores de 1 a 8.En la
Figura 19 se ve el bloque para la lectura de uno de los valores de PROM, en concreto
de PROM2, que contiene el valor de SENS, de tal forma que después de mandar el
comando de leer la PROM2 (Wr0), se recibe del sensor 2 bytes de datos (Rd0 y
Rd1) que se leen con el mismo bloque, que simplemente hay que colocar para
obtener la palabra de 16 bits. Siguiendo el mismo arquetipo, se crearon los bloques
para leer las 8 posiciones de memoria de la PROM.
55
UNIVERSIDAD PONTIFICIA COMILLAS
ESCUELA TÉCNICA SUPERIOR DE INGENIERÍA (ICAI)
INGENIERO INDUSTRIAL
Figura 19. Lectura de la segunda posición de memoria de la PROM del MS5611
Los diferentes valores de PROM, que se leen del sensor, se enviaron al ordenador
a través de la UART y sus valores se recogen en la Tabla 9. Estos valores son los
factores de calibración del sensor, con los que luego hay que operar para obtener
las medidas correctas de presión y temperatura.
Variable Descripción
Comando
Lectura
PROM
Valor
SENS Sensibilidad de la presión 0xA2 47946
OFF Offset de la presión 0xA4 49528
TCS Coeficiente de temperatura de SENS 0xA6 29940
TCO Coeficiente de temperatura de OFF 0xA8 27392
TREF Temperatura de referencia 0xAA 32798
TEMPSENS Coeficiente de temperatura de TREF 0xAC 28288
Tabla 10. Factores de calibración del MS5611
56
UNIVERSIDAD PONTIFICIA COMILLAS
ESCUELA TÉCNICA SUPERIOR DE INGENIERÍA (ICAI)
INGENIERO INDUSTRIAL
4.3.1.2 Lectura de la conversión D1
Una vez leídos los valores de la PROM, el siguiente paso es obtener el valor digital
de la presión D1, que después habrá que operar con los factores de calibración para
obtener la medida de la presión. En la Figura 20, se ve el esquema de bloques de
Simulink que permite leer el valor de D1.
Figura 20. Lectura del valor de la presión digital D1
En el bloque superior, se manda el sensor el comando de iniciar la conversión D1
(presión digital), para lo cual, se utiliza el comando ‘0x48’ que inicia la conversión
D1 con un OSR de 4096 que es el máximo valor que admite el sensor (el menor se
corresponde con 0x40 y un OSR de 256), para obtener una mejor resolución en la
medida de la presión. El OSR es la relación entre la frecuencia de muestro de la
modulación de la señal del convertidor ADC y la frecuencia de Nyquist, por lo tanto
marcará el tiempo que tarda el ADC en realizar la conversión. Durante este tiempo
no se puede leer el convertidor ADC, porque al no haber terminado la conversión
57
UNIVERSIDAD PONTIFICIA COMILLAS
ESCUELA TÉCNICA SUPERIOR DE INGENIERÍA (ICAI)
INGENIERO INDUSTRIAL
devolverá valores nulos. Por esto se introduce el segundo bloque que se ve en la
Figura 20, que inicia un período de delay para esperar la conversión del ADC. El
valor del delay es de 10000µs, es decir 10ms. El valor de tiempo de conversión para
un OSR de 4096 se puede consultar en la hoja de características del sensor, de forma
que se nos da un valor mínimo, un típico y un máximo, del que nos interesa el valor
máximo que es 9,04ms (valor crítico), que nos lleva al valor de 10ms del delay.
Por último, el tercer bloque se usa para la lectura del ADC, con el comando ‘0x00’
(Tabla 9) que nos devuelve 3 bytes (Rd0, Rd1 y Rd2) que hay componer en una
palabra de 32 bits (multiplicando por factores de 28) para obtener el valor de la
presión digital D1.
4.3.1.3 Lectura de la conversión D2
Siguiendo el mismo proceso que en la sección anterior, se crearon los bloques que
permitían la lectura del valor de la temperatura digital D2 (Figura 21), con la única
diferencia que en el primer bloque se emplea el comando ‘0x58’ para iniciar la
conversión de D2 con un OSR de 4096, en la constante del bloque
MS5611_CMD_CONV_D2.
El resto de los bloques tienen el mismo funcionamiento que los explicados en la
sección anterior, de tal forma que se lee el valor de D2.
58
UNIVERSIDAD PONTIFICIA COMILLAS
ESCUELA TÉCNICA SUPERIOR DE INGENIERÍA (ICAI)
INGENIERO INDUSTRIAL
Figura 21: Lectura del valor de la presión digital D2
4.3.1.4 Cálculo de la presión y de la temperatura
Después del diseño de los bloques para leer los valores de la PROM, y los valores
de la presión digital D1 y la temperatura digital D2, había que incluir las
operaciones entre estos valores para obtener el valor de la temperatura y presión
reales. Para esto es necesario seguir unas ecuaciones, para calcular dT (Ecuación
3) que es la diferencia entre la temperatura y la temperatura de referencia, y con
ello calcular el valor de la temperatura TEMP (Ecuación 4).
𝑑𝑇 = 𝐷2 − 𝑇𝑅𝐸𝐹 · 28
Ecuación 3. Cálculo de dT
𝑇𝐸𝑀𝑃 = 2000 + 𝑑𝑇 · 𝑇𝐸𝑀𝑃𝑆𝐸𝑁𝑆/232
Ecuación 4. Cálculo de TEMP
59
UNIVERSIDAD PONTIFICIA COMILLAS
ESCUELA TÉCNICA SUPERIOR DE INGENIERÍA (ICAI)
INGENIERO INDUSTRIAL
Una vez obtenido el valor de temperatura, se calculan el valor del offset de la
presión a la temperatura actual OFF (Ecuación 5) y el valor de la sensibilidad de la
presión a la temperatura actual SENS (Ecuación 6). Con estos dos valores, se
calcula el valor de la presión real compensada por la temperatura P (Ecuación 7).
𝑂𝐹𝐹 = 𝑂𝐹𝐹′ · 216 + (𝑇𝐶𝑂 · 𝑑𝑇)/27
Ecuación 5. Cálculo de OFF
𝑆𝐸𝑁𝑆 = 𝑆𝐸𝑁𝑆′ · 215 + (𝑇𝐶𝑆 · 𝑑𝑇)/28
Ecuación 6. Cálculo de SENS
𝑃 = (𝐷1 ·𝑆𝐸𝑁𝑆
221− 𝑂𝐹𝐹)/215
Ecuación 7. Cálculo de P
En la Figura 22, se realizan estas operaciones para obtener el valor de la presión y
la temperatura en el entorno de Simulink, teniendo especial detalle en los tipos de
variables que se manejan en cada operación pues algunos son del tipo signed int 32
y otros del tipo unsigned int 16, por lo cual se añaden numerosos bloques de cambio
de tipo de variable para poder realizar las operaciones.
La medida de la presión tiene como unidades [Pa] mientras que la medida de la
temperatura es 10·T[ºC].
60
UNIVERSIDAD PONTIFICIA COMILLAS
ESCUELA TÉCNICA SUPERIOR DE INGENIERÍA (ICAI)
INGENIERO INDUSTRIAL
Figura 22. Cálculo de la presión y la temperatura
61
UNIVERSIDAD PONTIFICIA COMILLAS
ESCUELA TÉCNICA SUPERIOR DE INGENIERÍA (ICAI)
INGENIERO INDUSTRIAL
Capítulo 5 GPS
En este capítulo se va a tratar el módulo de GPS que se desea incorporar al
cuadricóptero para conseguir el vuelo autónomo. Este dispositivo ya no está
integrado dentro de la tarjeta OpenPilot Revolution sino que es un módulo exterior
que se conecta a la placa a través de uno de los puertos libres. El magnetómetro nos
daría la orientación del cuadricóptero, pero necesitamos conocer la posición en la
que se encuentra la aeronave para conseguir el vuelo autónomo en exteriores. La
información de la posición en el espacio es lo que nos proporciona el GPS, que nos
da la latitud, longitud y altitud a la que nos encontramos con cierto grado de
precisión, además de otras muchas mediciones que se comentarán en las secciones
siguientes.
5.1 INTRODUCCIÓN
El GPS es el acrónimo de Global Positioning System, es un sistema que permite
determinar la posición de un objeto en cualquier punto de la Tierra. El sistema tiene
una precisión de aproximadamente 1 metro aunque se puede llegar a conseguir
presión de centímetros con el GPS diferencial. El sistema fue desarrollado por el
Departamento de Defensa de los Estados Unidos [12], contando con 24 satélites
que orbitan alrededor de la Tierra en órbitas sincronizadas para cubrir todo la
superficie de la Tierra y son capaces de dar la posición de cualquier objeto por
medio de trilateración.
La trilateración (Figura 23) es un método para determinar la posición usando
geometría de triángulos, que a diferencia de la triangulación, usa medidas angulares
de dos o más puntos de referencia y una sola medida de distancia conocida, para
calcular la localización del objeto, de tal forma que el sistema al menos necesita de
62
UNIVERSIDAD PONTIFICIA COMILLAS
ESCUELA TÉCNICA SUPERIOR DE INGENIERÍA (ICAI)
INGENIERO INDUSTRIAL
un mínimo de tres satélites para poder conocer su posición. El sistema mide el
tiempo que tarda en responder cada satélite, que es proporcional a la distancia a la
que se encuentra de cada uno de ellos, y se conoce la posición relativa respecto de
los satélites [13].
Figura 23. Método de trilateración para conocer la posición del punto B
(Fuentehttps://upload.wikimedia.org/wikipedia/commons/thumb/7/7e/Trilateraci%C3%B3n.svg/300px-
Trilateraci%C3%B3n.svg.png")
Conocida la posición relativa respecto de los satélites, y sabiendo en qué posición
se encuentra cada uno de los mismos, es posible conocer la posición absoluta
(coordenadas reales) del punto de medición.
63
UNIVERSIDAD PONTIFICIA COMILLAS
ESCUELA TÉCNICA SUPERIOR DE INGENIERÍA (ICAI)
INGENIERO INDUSTRIAL
5.2 SISTEMAS DE REFERENCIA
El GPS nos da información de la posición en la que nos encontramos en el globo
terráqueo; pero esta posición es relativa, ya que como toda medida de la posición
depende del sistema de referencia elegido. En el sistema de GPS se utilizan
principalmente dos sistemas de referencia para establecer la posición, el ECEF y el
elipsoide WGS84.
5.2.1 ECEF
Es un sistema de coordenadas geográficas, que representa la posición de un objeto
con coordenadas X, Y, y Z, es decir, un sistema de coordenadas cartesiano (Figura
24). El origen del sistema de referencia es el centro de masa de la Tierra (0,0,0)
[14]. Los ejes del sistema de referencia están alineados con el meridiano
internacional de referencia (IRM) (el meridiano de Greenwich) y con el polo
internacional de referencia (IRP) que se corresponde aproximadamente con el Polo
Norte.
Este sistema de referencia al ser cartesiano, es el empleado a la hora por ejemplo
de medir velocidades de translación. La conversión entre la posición en ECEF y la
posición WGS84 es posible ya que son dos sistemas de referencia solidarios al
movimiento de rotación de la Tierra, aunque la posición en el sistema de referencia
ECEF no es la que se utiliza comúnmente para establecer la posición de un objeto.
64
UNIVERSIDAD PONTIFICIA COMILLAS
ESCUELA TÉCNICA SUPERIOR DE INGENIERÍA (ICAI)
INGENIERO INDUSTRIAL
Figura 24. Sistema de referencia ECEF
(Fuente:” https://upload.wikimedia.org/wikipedia/commons/thumb/7/7b/ECEF.svg/220px-ECEF.svg.png")
5.2.2 WGS84
Es el sistema de coordenadas geográficas que estamos acostumbrados a utilizar, que
nos da la posición en coordenadas de latitud, longitud y altitud. Este sistema de
referencia no es cartesiano como el ECEF, sino angular, pues la medida de la latitud
es la distancia angular respecto del Ecuador (paralelo 0º) y la de la longitud es la
distancia angular desde el meridiano de Greenwich (meridiano 0º). Este sistema de
referencia es el que se utiliza a nivel global por el GPS [15].
Este sistema de referencia aparece en los años 80 con la necesidad del
Departamento de Defensa de los Estados Unidos, de un sistema geográfica a nivel
mundial que no tuviera problemas de precisión. El WGS84, se corresponde un
elipsoide (pues la forma de la Tierra no es una esfera perfecta). Los parámetros de
este elipsoide se recogen en la Tabla 11 .
65
UNIVERSIDAD PONTIFICIA COMILLAS
ESCUELA TÉCNICA SUPERIOR DE INGENIERÍA (ICAI)
INGENIERO INDUSTRIAL
Elipsoide Semi-eje mayor a Semi-eje menor b Curvatura (1/f)
WGS84 6.378.137.0m 6.356.752,314m 298,257
Tabla 11. Parámetros WGS 84
Es posible realizar la conversión de un sistema de referencia a otro, pues son
solidarios entre sí (Figura 25). El sistema de referencia de WGS84 es el que en
nuestro proyecto nos da la información de la altitud, longitud y latitud pues resulta
el sistema más sencillo para conocer la posición en cada momento, pero el sistema
de GPS que se ha utilizado en este proyecto también nos da las coordenadas en
ECEF, además de las velocidades que únicamente se expresan en el sistema de
coordenadas ECEF.
Figura 25. Sistema de referencia WGS84 y ECEF
(Fuente:” http://gis.stackexchange.com/questions/178433/find-gravity-normal-by-ecef-or-gps-coordinate-of-point")
66
UNIVERSIDAD PONTIFICIA COMILLAS
ESCUELA TÉCNICA SUPERIOR DE INGENIERÍA (ICAI)
INGENIERO INDUSTRIAL
5.3 U-BLOX M8N
El módulo de GPS utilizado en este proyecto es el U-blox NEO-M8N (u-blox m8n
en adelante) que se puede ver en .Este módulo permite ser configurado para obtener
información de todos los sistemas de posicionamiento global, no únicamente de
GPS (sistema de Estados Unidos y comúnmente usado globalmente), sino también
de GLONNAS (Rusia), BeiDou (China), Galileo (Europa). En el marco de este
proyecto, se optó por utilizar el sistema de GPS que es el que está configurado por
defecto en el dispositivo. Este módulo también es capaz de incluir GPS diferencial,
aunque no se incluyó en el ámbito de este proyecto
Figura 26. Módulo de GPS
5.3.1 CONEXIÓN A LA PLACA OPREVO
La conexión entre la placa OpenPilot Revolution y el módulo de GPS se realiza por
el puerto Flexi Port (Figura 27), que es capaz de actuar con diferentes interfaces
como pueden ser SPI, UART, I2C,… El Flexi Port se conecta con el
microcontrolador STM32F4 en los pines 29 (PB10) y 30 (PB11). La interfaz de
comunicaciones para la que el módulo está configurado por defecto, es la UART;
aunque esto es configurable, se mantuvo esta interfaz de comunicaciones.
67
UNIVERSIDAD PONTIFICIA COMILLAS
ESCUELA TÉCNICA SUPERIOR DE INGENIERÍA (ICAI)
INGENIERO INDUSTRIAL
Figura 27: Puerto FlexiPort de la placa OpenPilot Revo
5.3.2 PROTOCOLO UBX
El módulo de GPS U-blox M8N tiene disponibles tres protocolos distintos:
NMEA 0183, versión 4.0 (codificación ASCII)
UBX (codificación binaria)
RTCM
Estando todos los protocolos disponibles en las diferentes interfaces UART, I2C y
SPI. El protocolo que se decide emplear para la comunicación con el módulo de
GPS es el protocolo UBX [16], que es de codificación binaria lo que facilita la
implementación en el entorno de Simulink, y es un protocolo propiedad de la
empresa u-blox, por lo que no está estandarizado.
68
UNIVERSIDAD PONTIFICIA COMILLAS
ESCUELA TÉCNICA SUPERIOR DE INGENIERÍA (ICAI)
INGENIERO INDUSTRIAL
El protocolo UBX tiene como características fundamentales:
- Utiliza datos de 8 bits (bytes).
- Checksum que protege las tramas de posibles errores de transmisión.
- El identificador de cada trama tiene 2 bytes: uno de clase y otro de ID.
Las tramas que se construyen de acuerdo a este protocolo siguen la estructura que
presenta en la Figura 28.
Figura 28. Trama del protocolo UBX
(Fuente:” https://www.u-blox.com/sites/default/files/products/documents/u-blox6_ReceiverDescrProtSpec_%28GPS.G6-
SW-10018%29_Public.pdf?utm_source=en%2Fimages%2Fdownloads%2FProduct_Docs%2Fu-
blox6_ReceiverDescriptionProtocolSpec_%28GPS.G6-SW-10018%29.pdf")
Los campos que componen la trama se recogen en la Tabla 12.
Campo Descripción Longitud
(bytes)
Cabecera Todas las tramas comienzan con ‘0xB5’ ‘0x62’ 2
Class Define la categoría del mensaje 1
ID Define el mensaje que viene a continuación 1
Length Número de bytes que componen el campo de ‘Payload’ 2
Payload Contiene los datos de la trama Variable
Checksum Para comprobar la integridad de los datos 2
Tabla 12. Campos del protocolo UBX
69
UNIVERSIDAD PONTIFICIA COMILLAS
ESCUELA TÉCNICA SUPERIOR DE INGENIERÍA (ICAI)
INGENIERO INDUSTRIAL
5.3.3 UBLOX CENTER
El primer paso fue conectar directamente por USB el módulo de GPS al ordenador
con el propósito de asegurarnos que cuenta con última versión del Software y
comprobar que el funcionamiento del dispositivo era correcto.
Este proceso se llevó a cabo con el programa u-center, que se puede obtener de la
página web oficial de la compañía U-blox, [https://www.u-blox.com/en/product/u-
center-windows]. Una vez instalado el programa, hay que seleccionar el puerto de
comunicación serie en que está conectado el módulo de GPS para lo que tenemos
que hacer clic en la pestaña “Receiver” → “Port” y allí seleccionar el puerto al que
está conectado el módulo de GPS. Para obtener las tramas que envía el módulo de
GPS, es necesario ajustar la tasa de baudios a la que funciona el dispositivo, para
ello, se hace clic en la pestaña “Receiver” y selecciona la opción de “Autobauding”
que automáticamente establece la conexión con el dispositivo ajustando los
baudios. La tasa de baudios con la que se comunica el módulo de GPS es de 38400
baudios, que después será necesario para la implementación en el entorno de
Simulink.
Una vez realizada la configuración de u-center, es posible ver las tramas que está
enviando el módulo de GPS al ordenador. Con este propósito se abre la Consola de
Paquetes, presionando F6, obteniendo las tramas que envía el dispositivo como se
puede ver en la Figura 29.
70
UNIVERSIDAD PONTIFICIA COMILLAS
ESCUELA TÉCNICA SUPERIOR DE INGENIERÍA (ICAI)
INGENIERO INDUSTRIAL
Figura 29. Tramas del dispositivo GPS
Se reciben tres tramas como se puede comprobar:
UBX NAV-SOL
UBX NAV-STATUS
UBX NAV-POSLLH
Consultando el protocolo UBX, se puede ver qué información contiene cada una de
las tramas y cuál es su campo de Class e ID (Tabla 12. Campos del protocolo UBX)
que necesitamos conocer para capturar las tramas con Simulink. La información de
cada una de las tres tramas, así como los valores de los campos de clase e ID de
cada una de ellas se incluyen en la Tabla 13.
71
UNIVERSIDAD PONTIFICIA COMILLAS
ESCUELA TÉCNICA SUPERIOR DE INGENIERÍA (ICAI)
INGENIERO INDUSTRIAL
Trama Class ID Length Payload
UBX-NAV-
SOL 0x01 0x06 52
Contiene la información de la posición,
velocidad y tiempo en ECEF, incluyendo las
precisiones de estas medidas
UBX-NAV-
STATUS 0x01 0x03 16
Contiene datos para la validación de la posición
y velocidad de las otras tramas
UBX-NAV-
POSLLH 0x01 0x02 28
Contiene la posición geográfica en el elipsoide
WGS84 (longitud, latitud y altura) así como la
precisión de estas medidas
Tabla 13. Análisis de las tramas del módulo GPS
Una vez conocido el funcionamiento del protocolo UBX, la velocidad a la que
transmite el módulo de GPS y cuáles son las tramas que envía el dispositivo, ya es
posible implementarlo en Simulink. Para capturar las tramas que se envían a través
de la UART, hay que conocer la cabecera de las tramas, que es precisamente los
valores de los campos que se recogen en la Tabla 13, añadiendo la cabecera del
protocolo ‘0xB5’ ‘0x62’.
5.3.4 IMPLEMENTACIÓN EN SIMULINK
En esta sección se explica cómo se implementó el módulo de GPS en Simulink.
Como ocurría en los otros dos sensores, en el proyecto anterior ya existía un Driver
Block para ArduPilotMega que daba la información del GPS directamente pero para
el desarrollo de este proyecto fue necesario diseñar los bloques desde el nivel más
básico.
El primer paso es especificar el tipo de comunicación que se establece con el
dispositivo, que en este caso es UART, utilizando el bloque específico del Waijung
Blockset para comunicaciones a través de UART (Figura 30).
72
UNIVERSIDAD PONTIFICIA COMILLAS
ESCUELA TÉCNICA SUPERIOR DE INGENIERÍA (ICAI)
INGENIERO INDUSTRIAL
Figura 30. Bloque de configuración de la UART
En el mismo bloque se establece la velocidad de transmisión por la UART, de
38400 baudios, que conocemos por lo explicado en la sección 5.3.3, y los pines por
los que se conecta al microcontrolador STM32F4, que son en este caso el B10 y el
B11 como ya se expuso en la sección 5.3.1.
Una vez configurada la UART, únicamente era necesario capturar las tramas que
envía el módulo GPS automáticamente por la UART, para lo que es necesario
conocer las cabeceras de las tramas y especificarla en cada uno de los bloques de
lectura de la UART. En la Figura 31 se puede ver la configuración que se ha
realizado para poder capturar la trama UBX-NAV-POSLLH. El valor de las
cabeceras de las tramas es el que aparece en la Tabla 13.
Figura 31. Configuración del bloque de lectura de la UART para la trama NAV-POSLLH
73
UNIVERSIDAD PONTIFICIA COMILLAS
ESCUELA TÉCNICA SUPERIOR DE INGENIERÍA (ICAI)
INGENIERO INDUSTRIAL
En la Figura 32, se presenta el esquema de bloques de lectura de las tramas a través
de la UART, y toda la información que necesitamos de cada una de las tramas. La
trama UBX-NAV-STATUS no fue necesaria capturarla porque no nos aportaba
ningún tipo de medición que fuera necesaria para el vuelo autónomo en exteriores.
Figura 32. Bloques de lectura de los valores del módulo GPS
74
UNIVERSIDAD PONTIFICIA COMILLAS
ESCUELA TÉCNICA SUPERIOR DE INGENIERÍA (ICAI)
INGENIERO INDUSTRIAL
Capítulo 6 RESULTADOS
En este capítulo se presentan los resultados de las mediciones que se hicieron de
cada uno de los tres sensores expuestos en los capítulos anteriores, dividiendo el
capítulo en los resultados de cada uno de los sensores.
6.1 RESULTADOS MAGNETÓMETRO
Con el objetivo de verificar que las medidas de magnetómetro, después de la
calibración, eran correctas, se realizó un ensayo en el que el magnetómetro se
orientó hacia los cuatro puntos cardinales (norte, sur, este y oeste) con ayuda de la
brújula del teléfono móvil. Los resultados de las medidas se recogen en la siguiente
tabla:
Dirección
Campo magnético (mG)
X Y Z
Norte -2.80 109.96 -311.21
Sur -8.3 -112.2 -271.42
Este -143.19 -16.3 -281.68
Oeste 148.08 14.3 -283.2
Tabla 14. Resultados magnetómetro
Como se puede observar en la Tabla 14, los resultados de las medidas son bastante
satisfactorios. En primer lugar si se calcula el módulo del vector del campo
magnético medido, en cualquiera de las orientaciones, es de unos 330 mG, que entra
75
UNIVERSIDAD PONTIFICIA COMILLAS
ESCUELA TÉCNICA SUPERIOR DE INGENIERÍA (ICAI)
INGENIERO INDUSTRIAL
dentro del rango de los valores del campo magnético terrestre que van desde 250mG
hasta 650mG [17]. En segundo lugar, la medida del campo magnético en eje X tanto
cuando se apunta al norte como al sur, es aproximadamente 0, pues como era de
esperar ese eje es perpendicular al vector del campo magnético terrestre, y su
proyección ha de valor 0; el error que aparece de unos 10mG en la medida puede
ser por varias razones:
- Deviación magnética como se expuso en la sección 3.4.
- Errores en la calibración del magnetómetro
- En el ensayo no se orientó exactamente hacia el norte, por la precisión que
se puede conseguir orientando la placa manualmente.
El resultado más importante es la medida con la orientación del norte, que es valor
para el que el valor del campo magnético en eje X es 0 y el valor en el eje Y es
máximo (positivo).
Las medidas del eje Z vemos que son la misma en los tres ejes, esto se debe a que
la proyección del campo magnético terrestre, en la dirección vertical es siempre la
misma si se mueve la placa durante las mediciones en el mismo plano horizontal.
El valor es negativo pues el campo magnético está ligeramente inclinado hacia
abajo (unos 10º aproximadamente) [18].
6.2 RESULTADOS ALTÍMETRO
El altímetro como se había configurado, nos da la medida de la temperatura y la
presión como se puede ver en la Figura 33.
76
UNIVERSIDAD PONTIFICIA COMILLAS
ESCUELA TÉCNICA SUPERIOR DE INGENIERÍA (ICAI)
INGENIERO INDUSTRIAL
Figura 33. Recepción de los datos de presión y temperatura en el ordenador
El primer valor de 2906.4453125 se corresponde con la temperatura, por tanto el
valor de la temperatura era 29.0644ºC. El segundo valor de 94308.59375 se
corresponde con el valor de la presión en pascales [Pa]. Se comprobó que las
medidas de presión y temperatura eran correctas, comparándolas con los datos de
una estación meteorológica.
Con estos valores, utilizando la ecuación barométrica (Ecuación 1), se calculó la
altitud respecto del nivel del mar. Dicha altitud era de 601,32m, que no era un valor
correcto pues la altura de la ciudad de Madrid es 667,32m, en concreto en el punto
donde se llevó a cabo el ensayo, según los datos del Google Earth [19], se situaba
a una altitud de 682,12m. Este error en la medida de altitud respecto del nivel del
mar, es debido a dos factores fundamentales: las limitaciones de la ecuación
barométrica expuestas en la sección 4.1, y que no se tienen en cuenta los efectos
meteorológicos que afectan en gran medida sobre la medida de la presión.
Este error en la medida de altura respecto del nivel del mar no supone un problema
para el uso de las medidas de este sensor, pues realmente nos interesa para poder
medir la altura a la que se encuentra el cuadricóptero. El método para medir la altura
a la que se encuentra el cuadricóptero del suelo es sencillo. Tomando como
77
UNIVERSIDAD PONTIFICIA COMILLAS
ESCUELA TÉCNICA SUPERIOR DE INGENIERÍA (ICAI)
INGENIERO INDUSTRIAL
referencia de presiones, la presión a la altura del suelo, P0, en este caso 94308.59Pa,
se establece que esa es la altura 0. Calculando el gradiente de la presión por altura
(∆𝑃/∆ℎ) con la Ecuación 2, para el valor de la temperatura medido por el altímetro,
se obtiene un valor de 12,11 Pa/m. Con estos valores se puede obtener la altura a la
que el cuadricóptero se encuentra del suelo con una simple transformación lineal
(Ecuación 8).
ℎ =(𝑃 − 𝑃0)
∆𝑃/∆ℎ
Ecuación 8. Ecuación para el cálculo de la altura
Con el objetivo de ver el funcionamiento del sensor, se realizaron medidas de la
presión a diferentes alturas que se recogen en la primera gráfica (Figura 34),con las
cuales realizando la transformación lineal de la Ecuación 8, se obtuvo la gráfica que
representaba las diferentes alturas (Figura 35), viendo que efectivamente el sensor
es capaz de calcular perfectamente la altura a la que nos encontramos del suelo con
un error de medida de unos 10cm.
Figura 34. Ensayo de medida de la presión con el altímetro
78
UNIVERSIDAD PONTIFICIA COMILLAS
ESCUELA TÉCNICA SUPERIOR DE INGENIERÍA (ICAI)
INGENIERO INDUSTRIAL
Figura 35. Ensayo de medida de la altura con el altímetro
6.3 RESULTADOS GPS
Las medidas que se obtuvieron del GPS se recogen en la Tabla 15.Estas medidas
nos da la información de la latitud, longitud y altitud de la posición en la que nos
encontramos, así como las coordenadas en el sistema de referencia ECEF, las
medidas de las velocidades (en el sistema de referencia ECEF) y las precisiones de
estas medidas.
79
UNIVERSIDAD PONTIFICIA COMILLAS
ESCUELA TÉCNICA SUPERIOR DE INGENIERÍA (ICAI)
INGENIERO INDUSTRIAL
Medida Valor medido Valor
Longitud 40.448592 40.448592º N
Latitud -3.683510 3.683510º O
Altitud 670578 670.578m
Precisión horizontal 2103 2.103m
Precisión vertical 6305 6.305m
Coordenada X (ECEF) 485100871 4851.00871 km
Coordenada Y (ECEF) -31222964 -312.22964 km
Coordenada Z (ECEF) 411643831 4116.43831 km
Velocidad en X 0* 0
Velocidad en Y 0* 0
Velocidad en Z 0* 0
Precisión de posición 355 3.55m
Precisión de velocidad 96 96cm/s
Tabla 15. Medidas del GPS
Para comprobar las medidas del GPS, se necesita conocer las coordenadas
geográficas de la posición en la que se encuentra el dispositivo. Las coordenadas
del punto donde se llevaron a cabo las mediciones eran 40.4486035º N y
3.6838441ºO (según las coordenadas de Google Maps) [20], que coinciden con los
valores medidos por el dispositivo GPS.
Los datos de las coordenadas en el sistema de referencia ECEF, también coinciden
con los valores de la posición donde se llevaron a cabo las mediciones.
80
UNIVERSIDAD PONTIFICIA COMILLAS
ESCUELA TÉCNICA SUPERIOR DE INGENIERÍA (ICAI)
INGENIERO INDUSTRIAL
Los datos de las velocidades en X, Y y Z marcaban valores de 0, pues las
mediciones se realizaron en posición de reposo. Estos valores tomarían los valores
correspondientes, si el GPS se moviera a cierta velocidad, aunque no fue el caso de
este ensayo.
Los resultados más importantes de estas medidas son la precisión que se obtiene de
las medidas de latitud, longitud y altitud. El error que se obtiene en la posición
horizontal es de 2.103m, que es un error bastante considerable si se quisiera volar
un cuadricóptero en vuelo autónomo, para tomar las referencias de posición de la
aeronave. Para solventar este problema sería necesario incorporar un módulo de
GPS diferencial que redujera el error cometido en las medidas de la posición
horizontal [21]. Por otro lado, la precisión en la altitud es de 6.305m, que es un
valor muy elevado si se quiere ver las diferencias de altura como es necesario para
el vuelo autónomo de un cuadricóptero, pero este resultado no es problema, pues el
sensor del altímetro proporciona una medida de la altura con un error aceptable
(10cm) para utilizarlo como referencia de altura.
81
UNIVERSIDAD PONTIFICIA COMILLAS
ESCUELA TÉCNICA SUPERIOR DE INGENIERÍA (ICAI)
INGENIERO INDUSTRIAL
Capítulo 7 CONCLUSIONES
El objetivo del proyecto era conseguir el vuelo autónomo del cuadricóptero en
exteriores, a partir del proyecto del año anterior. En principio el eje central del
desarrollo del proyecto iba a estar en el diseño del control para vuelo autónomo por
GPS puesto que es lo que faltaba por hacer en el desarrollo del proyecto de vuelo
autónomo en exteriores. Pero como se ha ido exponiendo a lo largo de la memoria,
en el proyecto anterior se utilizaba la tarjeta de vuelo ArduPilotMega (APM), en la
que ya existía una librería de bloques en Simulink con los que era posible hacer
funcionar los sensores para el vuelo autónomo como son el barómetro, el
magnetómetro y el GPS, que actuaban de drivers de los sensores.
Al introducir en este proyecto la controladora de vuelo CC3D OpenPilot
Revolution, los bloques que sí existían como drivers de los sensores para la tarjeta
de vuelo de ArduPilotMega ya no se podían utilizar en el desarrollo de este
proyecto, por lo se tuvo que empezar a desarrollar en el entorno de Simulink los
bloques de cada uno de los sensores (magnetómetro, barómetro y GPS) que
sirvieran para poder leer las medidas de los sensores, partiendo de los bloques de
Waijung que servían como interfaz básica para programar la placa de OpenPilot.
Esto explica que el eje central del proyecto fuera conseguir el funcionamiento del
magnetómetro y el barómetro integrados en la placa, así como conseguir las
medidas del módulo externo de GPS. Es decir, en resumen, el proyecto se ha
centrado en los sensores de navegación autónoma para exteriores del cuadricóptero.
En los que ha sido necesario entender el funcionamiento interno de cada uno de
ellos, así como los protocolos de comunicación que existen entre el
microcontrolador y cada uno de los sensores, para poder así implementarlo en el
entorno de Simulink y poder incorporar estos sensores al control que ha
desarrollado en otros proyectos realizados este año.
82
UNIVERSIDAD PONTIFICIA COMILLAS
ESCUELA TÉCNICA SUPERIOR DE INGENIERÍA (ICAI)
INGENIERO INDUSTRIAL
Esto nos lleva a que de los objetivos planteados al principio del proyecto, no se
hayan completado muchos de ellos, pues no se tenía en cuenta el tiempo que llevaría
desarrollar los drivers de cada uno de los sensores en el entorno de Simulink. En
definitiva, la falta de tiempo no ha permitido incluir los sensores que
proporcionarían las referencias para el control de vuelo autónomo en exteriores, y
una vez hecho esto, haber conseguido por fin el vuelo autónomo del cuadricóptero
en exteriores.
El desarrollo de cada uno de los sensores, así como los ensayos que se han realizado
para comprobar las medidas nos permiten también extraer conclusiones acerca de
si estos sensores son capaces de dar medidas suficientemente precisas y fiables para
el vuelo autónomo en exteriores. Se ha comprobado que el altímetro sí que es capaz
de medir con una precisión muy alta (del orden de centímetros) la altura a la que se
encontraría el cuadricóptero, dando así una referencia adecuada al control. El
magnetómetro también se ha comprobado que sería capaz de orientar el
cuadricóptero correctamente en la dirección que se desee, después de la calibración.
En último lugar, se ha visto que las medidas del GPS no son lo suficientemente
fiables como para servir de referencia al control, por lo que sería necesario ajustar
la medida con ayuda del sistema de GPS diferencial que si tiene una precisión de
centímetros, y no de metros como es el caso del GPS.
83
UNIVERSIDAD PONTIFICIA COMILLAS
ESCUELA TÉCNICA SUPERIOR DE INGENIERÍA (ICAI)
INGENIERO INDUSTRIAL
Capítulo 8 FUTUROS DESARROLLOS
Este proyecto tiene como siguiente paso fundamental, conseguir el control de
navegación autónomo del cuadricóptero con la nueva tarjeta de vuelo que se está
empleando en el desarrollo de los proyectos de drones de la escuela, la OpenPilot
Revolution, utilizando los sistemas de bloques desarrollados en este proyecto, que
nos darían las medidas de los diferentes sensores que son necesarios para el vuelo
autónomo en exteriores, principalmente del GPS.
En relación a los sensores de navegación externa, también se podrían incluir futuras
mejores, siendo principalmente:
- Incluir el sistema de GPS diferencial (DGPS): es un sistema que
proporciona a los receptores de GPS correcciones de los datos recibidos de
los satélites, obteniendo de esta forma una mayor precisión en la posición.
Esta corrección se realiza con una baliza en tierra que incorpore un receptor
de GPS (que tiene los mismos errores de posición que el otro sistema de
GPS cercano) del cual se conoce exactamente su posición por otras técnicas,
de modo que sea capaz de calcular los errores producidos por el sistema de
GPS y corregirlos en el receptor de GPS del cuadricóptero.
- Incluir otros sensores que permitan predecir las condiciones meteorológicas
que se puedan dar durante la navegación autónoma, ya que se puede
implementar el mismo sistema que en las estaciones meteorológicas. Se
necesitaría incluir sensores que permitan conocer la velocidad del viento
(anemómetro) y la humedad relativa del ambiente (psicrómetro) para poder
realizar la previsión de las condiciones meteorológicas con unas horas de
antelación [22].
84
UNIVERSIDAD PONTIFICIA COMILLAS
ESCUELA TÉCNICA SUPERIOR DE INGENIERÍA (ICAI)
INGENIERO INDUSTRIAL
Capítulo 9 BIBLIOGRAFÍA
[1] G. E. Moore, Cramming more components onto integrated circuits,
Electronics, 1965.
[2] «Ar Drone,» [En línea]. Available:
http://www.parrot.com/es/productos/ardrone-2/.
[3] E. Ramsden, Hall-Effect Sensors, Elsevier Inc., 2006.
[4] «I2C bus specification,» [En línea]. Available:
http://www.nxp.com/documents/user_manual/UM10204.pdf.
[5] «HMC5883L 3-Axis Digital Compass,» [En línea]. Available: https://cdn-
shop.adafruit.com/datasheets/HMC5883L_3-
Axis_Digital_Compass_IC.pdf.
[6] «I2C Manual,» [En línea]. Available:
http://www.nxp.com/documents/application_note/AN10216.pdf.
[7] «Magnotemer Calibration,» [En línea]. Available:
https://github.com/kriswiner/MPU-6050/wiki/Simple-and-Effective-
Magnetometer-Calibration.
[8] N. G. D. Center, «Magnetic declination,» 2013. [En línea]. Available:
http://www.magnetic-declination.com/.
[9] U. Goverment, Standard Atmosphere, Washington D.C., 1976.
[10] [En línea]. Available: http://www.hills-database.co.uk/altim.html.
[11] J.-Y. G. a. T.-H. Chang, «Delta-sigma modulation,» [En línea]. Available:
http://www.patentsencyclopedia.com/app/20090072897.
85
UNIVERSIDAD PONTIFICIA COMILLAS
ESCUELA TÉCNICA SUPERIOR DE INGENIERÍA (ICAI)
INGENIERO INDUSTRIAL
[12] National Research Council (U.S.), The global positioning system: a shared
national asset: recommendations for technical improvements and
enhancements, 1995.
[13] «Technology trilateration,» [En línea]. Available:
http://www.mio.com/technology-trilateration.htm.
[14] A. Leick, GPS Satellite Surveying, 2004.
[15] National Geospatial-Intelligence Agency, «World Geodetic System
website,» [En línea]. Available:
https://web.archive.org/web/20120402143802/https://www1.nga.mil/Prod
uctsServices/GeodesyandGeophysics/WorldGeodeticSystem/Pages/defaul
t.aspx.
[16] U-Blox, «Receiver Description Including Protocol Specification,» [En
línea]. Available: https://www.u-
blox.com/sites/default/files/products/documents/u-
blox6_ReceiverDescrProtSpec_%28GPS.G6-SW-
10018%29_Public.pdf?utm_source=en%2Fimages%2Fdownloads%2FPr
oduct_Docs%2Fu-
blox6_ReceiverDescriptionProtocolSpec_%28GPS.G6-SW-
10018%29.pdf.
[17] R. T. Merrill, Our Magnetic Earth: The Science of Geomagnetism,
Chicago: University of Chicago Press, 2010.
[18] J. E. T. Channel, Magnetic Stratigraphy, Academic Press, 1996.
[19] Google, «Google Earth,» [En línea]. Available:
https://www.google.es/intl/es/earth/.
[20] Google, «Google Maps,» [En línea]. Available:
https://www.google.es/maps/@40.4486035,-3.6838441,9z.
86
UNIVERSIDAD PONTIFICIA COMILLAS
ESCUELA TÉCNICA SUPERIOR DE INGENIERÍA (ICAI)
INGENIERO INDUSTRIAL
[21] C. P. B. W. a. A. P. Kee, «Wide area differential GPS,» Journal of the
Institute of Naviagtion, vol. 38, nº 3, 1991.
[22] «The Forecast for Weather Sensors: Sunny, with a Greater Chance of
Accuracy,» [En línea]. Available:
http://www.digikey.com/en/articles/techzone/2015/aug/the-forecast-for-
weather-sensors-sunny-with-a-greater-chance-of-accuracy.
Presupuesto
87
UNIVERSIDAD PONTIFICIA COMILLAS
ESCUELA TÉCNICA SUPERIOR DE INGENIERÍA (ICAI)
INGENIERO INDUSTRIAL
Parte II PRESUPUESTO
Presupuesto
88
UNIVERSIDAD PONTIFICIA COMILLAS
ESCUELA TÉCNICA SUPERIOR DE INGENIERÍA (ICAI)
INGENIERO INDUSTRIAL
Presupuesto
89
UNIVERSIDAD PONTIFICIA COMILLAS
ESCUELA TÉCNICA SUPERIOR DE INGENIERÍA (ICAI)
INGENIERO INDUSTRIAL
Capítulo 1 MEDICIONES
En este capítulo se establecerán las mediciones del presupuesto, es decir, la cantidad
de recursos tanto materiales, como de software, como humanos que se han
destinado al proyecto
RECURSOS MATERIALES
MATERIAL CANTIDAD
OpenPilot Revolution 1
Módulo de GPS, Ublox M8N 1
Módulo Bluetooth HC-05 2
USB TTL 1
Tabla 16: Mediciones de los recursos materiales
HERRAMIENTAS y SOFTWARE
PROGRAMA HORAS DE
PROYECTO
HORAS DE USO AL
AÑO
Ordenador 400 800
Osciloscopio 3 60
Polímetro 2 15
Matlab/Simulink 280 1000
Microsoft Office 70 800
Tabla 17: Mediciones de las herramientas y software
Presupuesto
90
UNIVERSIDAD PONTIFICIA COMILLAS
ESCUELA TÉCNICA SUPERIOR DE INGENIERÍA (ICAI)
INGENIERO INDUSTRIAL
MANO DE OBRA
ACTIVIDAD HORAS
Búsqueda de información 50
Análisis y diseño de los drivers 100
Programación 100
Ensayos 80
Elaboración de la documentación 60
Tabla 18: Mediciones de la mano de obra
Presupuesto
91
UNIVERSIDAD PONTIFICIA COMILLAS
ESCUELA TÉCNICA SUPERIOR DE INGENIERÍA (ICAI)
INGENIERO INDUSTRIAL
Capítulo 2 PRECIO UNITARIO
En este capítulo se listan los precios unitarios de cada uno de los elementos de las
mediciones, desglosado en, materiales, software y herramientas y mano de obra.
RECURSOS MATERIALES
MATERIAL PRECIO (€/Ud)
OpenPilot Revolution 50,00
Módulo de GPS, Ublox M8N 60,00
Módulo Bluetooth HC-05 4,00
USB TTL 10,00
Tabla 19: Precios unitarios de recursos materiales
HERRAMIENTAS y SOFTWARE
COMPONENTE PRECIO (€/Ud)
Ordenador 700,00
Osciloscopio 550,00
Polímetro 65,00
Matlab/Simulink 6000,00
Microsoft Office 280,00
Tabla 20: Precio unitario de las herramientas y el software
Presupuesto
92
UNIVERSIDAD PONTIFICIA COMILLAS
ESCUELA TÉCNICA SUPERIOR DE INGENIERÍA (ICAI)
INGENIERO INDUSTRIAL
MANO DE OBRA
ACTIVIDAD PRECIO (€/hora)
Búsqueda de información 25,00
Análisis y diseño de los drivers 50,00
Programación 40,00
Ensayos 50,00
Elaboración de la documentación 30,00
Tabla 21: Precio por hora de mano de obra
Presupuesto
93
UNIVERSIDAD PONTIFICIA COMILLAS
ESCUELA TÉCNICA SUPERIOR DE INGENIERÍA (ICAI)
INGENIERO INDUSTRIAL
Capítulo 3 SUMAS PARCIALES
En este capítulo se calcula el coste de cada uno de los distintos recursos empleados,
es decir, se multiplican las mediciones por los precios unitarios. Suponemos un
tiempo de amortización a 5 años de forma que la tasa de amortización es (20%).
RECURSOS MATERIALES
MATERIAL CANTIDAD COSTE
(€/Ud) COSTE TOTAL (€)
OpenPilot Revolution 1 50,00 50,00
Módulo de GPS, Ublox
M8N 1 60,00 60,00
Módulo Bluetooth HC-
05 2 3,80 7,60
USB TTL 1 10,00 10,00
TOTAL 127,60 €
Tabla 22: Coste total de los recursos materiales
Presupuesto
94
UNIVERSIDAD PONTIFICIA COMILLAS
ESCUELA TÉCNICA SUPERIOR DE INGENIERÍA (ICAI)
INGENIERO INDUSTRIAL
HERRAMIENTAS Y SOFTWARE
COMPONENTE PRECIO (€) HORAS DE
PROYECTO
HORAS
DE USO
AL AÑO
AMORTIZACIÓ
N ANUAL
COSTE
TOTAL
(€)
Ordenador 700,00 400 800 20% 70,00
Osciloscopio 550,00 3 60 20% 5,50
Polímetro 65,00 2 15 20% 1,73
Matlab/Simulink 6000,00 280 1000 20% 336,00
Microsoft Office 280,00 70 800 20% 4,90
TOTAL 128,13€
Tabla 23: Coste total de las herramientas y software
MANO DE OBRA
TAREA PRECIO
(€/hora) HORAS
COSTE
TOTAL
Búsqueda de información 25,00 50 1250,00
Análisis y diseño de los drivers 50,00 100 5000,00
Programación 40,00 100 4000,00
Ensayos 50,00 80 4000,00
Elaboración de la
documentación
30,00 60 1800,00
TOTAL 16050,00 €
Tabla 24: Coste total de mano de obra directa
Presupuesto
95
UNIVERSIDAD PONTIFICIA COMILLAS
ESCUELA TÉCNICA SUPERIOR DE INGENIERÍA (ICAI)
INGENIERO INDUSTRIAL
Presupuesto
96
UNIVERSIDAD PONTIFICIA COMILLAS
ESCUELA TÉCNICA SUPERIOR DE INGENIERÍA (ICAI)
INGENIERO INDUSTRIAL
Capítulo 4 PRESUPUESTO GENERAL
El presupuesto general del proyecto asciende a la suma de todas las sumas parciales.
PRESUPUESTO GENERAL
APARTADO SUMA PARCIAL (€)
Materiales 127,60
Herramientas y Software 128,13
Mano de obra 16050,00
TOTAL 16305,73 €
Tabla 25: Presupuesto general