113
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.

NAVEGACIÓN AUTÓNOMA EN EXTERIORES DE UN ...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

  • Upload
    others

  • View
    2

  • Download
    0

Embed Size (px)

Citation preview

Page 1: NAVEGACIÓN AUTÓNOMA EN EXTERIORES DE UN ...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

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.

Page 2: NAVEGACIÓN AUTÓNOMA EN EXTERIORES DE UN ...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

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.

Page 3: NAVEGACIÓN AUTÓNOMA EN EXTERIORES DE UN ...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

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

Page 4: NAVEGACIÓN AUTÓNOMA EN EXTERIORES DE UN ...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

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.

Page 5: NAVEGACIÓN AUTÓNOMA EN EXTERIORES DE UN ...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

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.

Page 6: NAVEGACIÓN AUTÓNOMA EN EXTERIORES DE UN ...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

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

Page 7: NAVEGACIÓN AUTÓNOMA EN EXTERIORES DE UN ...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

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.

Page 8: NAVEGACIÓN AUTÓNOMA EN EXTERIORES DE UN ...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

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.

Page 9: NAVEGACIÓN AUTÓNOMA EN EXTERIORES DE UN ...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

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

Page 10: NAVEGACIÓN AUTÓNOMA EN EXTERIORES DE UN ...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
Page 11: NAVEGACIÓN AUTÓNOMA EN EXTERIORES DE UN ...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

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.

Page 12: NAVEGACIÓN AUTÓNOMA EN EXTERIORES DE UN ...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

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. ………………………………………………………..

Page 13: NAVEGACIÓN AUTÓNOMA EN EXTERIORES DE UN ...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

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

Page 14: NAVEGACIÓN AUTÓNOMA EN EXTERIORES DE UN ...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
Page 15: NAVEGACIÓN AUTÓNOMA EN EXTERIORES DE UN ...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
Page 16: NAVEGACIÓN AUTÓNOMA EN EXTERIORES DE UN ...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

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

Page 17: NAVEGACIÓN AUTÓNOMA EN EXTERIORES DE UN ...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
Page 18: NAVEGACIÓN AUTÓNOMA EN EXTERIORES DE UN ...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

Í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

Page 19: NAVEGACIÓN AUTÓNOMA EN EXTERIORES DE UN ...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

Í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

Page 20: NAVEGACIÓN AUTÓNOMA EN EXTERIORES DE UN ...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

ÍNDICE DE LA MEMORIA

III

UNIVERSIDAD PONTIFICIA COMILLAS

ESCUELA TÉCNICA SUPERIOR DE INGENIERÍA (ICAI)

INGENIERO INDUSTRIAL

Capítulo 4 Presupuesto General .................................................................... 96

Page 21: NAVEGACIÓN AUTÓNOMA EN EXTERIORES DE UN ...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

ÍNDICE DE LA MEMORIA

IV

UNIVERSIDAD PONTIFICIA COMILLAS

ESCUELA TÉCNICA SUPERIOR DE INGENIERÍA (ICAI)

INGENIERO INDUSTRIAL

Page 22: NAVEGACIÓN AUTÓNOMA EN EXTERIORES DE UN ...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

Í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

Page 23: NAVEGACIÓN AUTÓNOMA EN EXTERIORES DE UN ...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

Í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

Page 24: NAVEGACIÓN AUTÓNOMA EN EXTERIORES DE UN ...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

Índice de tablas

VII

UNIVERSIDAD PONTIFICIA COMILLAS

ESCUELA TÉCNICA SUPERIOR DE INGENIERÍA (ICAI)

INGENIERO INDUSTRIAL

Page 25: NAVEGACIÓN AUTÓNOMA EN EXTERIORES DE UN ...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

Í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

Page 26: NAVEGACIÓN AUTÓNOMA EN EXTERIORES DE UN ...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

Í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

Page 27: NAVEGACIÓN AUTÓNOMA EN EXTERIORES DE UN ...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

Índice de tablas

X

UNIVERSIDAD PONTIFICIA COMILLAS

ESCUELA TÉCNICA SUPERIOR DE INGENIERÍA (ICAI)

INGENIERO INDUSTRIAL

Page 28: NAVEGACIÓN AUTÓNOMA EN EXTERIORES DE UN ...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

Í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

Page 29: NAVEGACIÓN AUTÓNOMA EN EXTERIORES DE UN ...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

Memoria

12

UNIVERSIDAD PONTIFICIA COMILLAS

ESCUELA TÉCNICA SUPERIOR DE INGENIERÍA (ICAI)

INGENIERO INDUSTRIAL

Parte I MEMORIA

Page 30: NAVEGACIÓN AUTÓNOMA EN EXTERIORES DE UN ...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

Memoria

13

UNIVERSIDAD PONTIFICIA COMILLAS

ESCUELA TÉCNICA SUPERIOR DE INGENIERÍA (ICAI)

INGENIERO INDUSTRIAL

Page 31: NAVEGACIÓN AUTÓNOMA EN EXTERIORES DE UN ...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

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.

Page 32: NAVEGACIÓN AUTÓNOMA EN EXTERIORES DE UN ...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

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

Page 33: NAVEGACIÓN AUTÓNOMA EN EXTERIORES DE UN ...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

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 €.

Page 34: NAVEGACIÓN AUTÓNOMA EN EXTERIORES DE UN ...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

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.

Page 35: NAVEGACIÓN AUTÓNOMA EN EXTERIORES DE UN ...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

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.

Page 36: NAVEGACIÓN AUTÓNOMA EN EXTERIORES DE UN ...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

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

Page 37: NAVEGACIÓN AUTÓNOMA EN EXTERIORES DE UN ...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

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.

Page 38: NAVEGACIÓN AUTÓNOMA EN EXTERIORES DE UN ...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

21

UNIVERSIDAD PONTIFICIA COMILLAS

ESCUELA TÉCNICA SUPERIOR DE INGENIERÍA (ICAI)

INGENIERO INDUSTRIAL

Page 39: NAVEGACIÓN AUTÓNOMA EN EXTERIORES DE UN ...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

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.

Page 40: NAVEGACIÓN AUTÓNOMA EN EXTERIORES DE UN ...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

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.

Page 41: NAVEGACIÓN AUTÓNOMA EN EXTERIORES DE UN ...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

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

Page 42: NAVEGACIÓN AUTÓNOMA EN EXTERIORES DE UN ...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

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,...

Page 43: NAVEGACIÓN AUTÓNOMA EN EXTERIORES DE UN ...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

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,…

Page 44: NAVEGACIÓN AUTÓNOMA EN EXTERIORES DE UN ...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

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.

Page 45: NAVEGACIÓN AUTÓNOMA EN EXTERIORES DE UN ...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

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.

Page 46: NAVEGACIÓN AUTÓNOMA EN EXTERIORES DE UN ...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

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

Page 47: NAVEGACIÓN AUTÓNOMA EN EXTERIORES DE UN ...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

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

Page 48: NAVEGACIÓN AUTÓNOMA EN EXTERIORES DE UN ...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

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.

Page 49: NAVEGACIÓN AUTÓNOMA EN EXTERIORES DE UN ...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

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

Page 50: NAVEGACIÓN AUTÓNOMA EN EXTERIORES DE UN ...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

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

Page 51: NAVEGACIÓN AUTÓNOMA EN EXTERIORES DE UN ...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

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

Page 52: NAVEGACIÓN AUTÓNOMA EN EXTERIORES DE UN ...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

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’.

Page 53: NAVEGACIÓN AUTÓNOMA EN EXTERIORES DE UN ...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

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’.

Page 54: NAVEGACIÓN AUTÓNOMA EN EXTERIORES DE UN ...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

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.

Page 55: NAVEGACIÓN AUTÓNOMA EN EXTERIORES DE UN ...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

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.

Page 56: NAVEGACIÓN AUTÓNOMA EN EXTERIORES DE UN ...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

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.

Page 57: NAVEGACIÓN AUTÓNOMA EN EXTERIORES DE UN ...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

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

Page 58: NAVEGACIÓN AUTÓNOMA EN EXTERIORES DE UN ...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

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

Page 59: NAVEGACIÓN AUTÓNOMA EN EXTERIORES DE UN ...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

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).

Page 60: NAVEGACIÓN AUTÓNOMA EN EXTERIORES DE UN ...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

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.

Page 61: NAVEGACIÓN AUTÓNOMA EN EXTERIORES DE UN ...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

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.

Page 62: NAVEGACIÓN AUTÓNOMA EN EXTERIORES DE UN ...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

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].

Page 63: NAVEGACIÓN AUTÓNOMA EN EXTERIORES DE UN ...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

46

UNIVERSIDAD PONTIFICIA COMILLAS

ESCUELA TÉCNICA SUPERIOR DE INGENIERÍA (ICAI)

INGENIERO INDUSTRIAL

Figura 15: Mapa de la declinación magnética

Page 64: NAVEGACIÓN AUTÓNOMA EN EXTERIORES DE UN ...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

47

UNIVERSIDAD PONTIFICIA COMILLAS

ESCUELA TÉCNICA SUPERIOR DE INGENIERÍA (ICAI)

INGENIERO INDUSTRIAL

Page 65: NAVEGACIÓN AUTÓNOMA EN EXTERIORES DE UN ...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

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).

Page 66: NAVEGACIÓN AUTÓNOMA EN EXTERIORES DE UN ...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

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).

Page 67: NAVEGACIÓN AUTÓNOMA EN EXTERIORES DE UN ...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

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

Page 68: NAVEGACIÓN AUTÓNOMA EN EXTERIORES DE UN ...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

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.

Page 69: NAVEGACIÓN AUTÓNOMA EN EXTERIORES DE UN ...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

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’.

Page 70: NAVEGACIÓN AUTÓNOMA EN EXTERIORES DE UN ...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

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.

Page 71: NAVEGACIÓN AUTÓNOMA EN EXTERIORES DE UN ...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

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.

Page 72: NAVEGACIÓN AUTÓNOMA EN EXTERIORES DE UN ...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

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

Page 73: NAVEGACIÓN AUTÓNOMA EN EXTERIORES DE UN ...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

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

Page 74: NAVEGACIÓN AUTÓNOMA EN EXTERIORES DE UN ...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

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.

Page 75: NAVEGACIÓN AUTÓNOMA EN EXTERIORES DE UN ...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

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

Page 76: NAVEGACIÓN AUTÓNOMA EN EXTERIORES DE UN ...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

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].

Page 77: NAVEGACIÓN AUTÓNOMA EN EXTERIORES DE UN ...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

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

Page 78: NAVEGACIÓN AUTÓNOMA EN EXTERIORES DE UN ...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

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

Page 79: NAVEGACIÓN AUTÓNOMA EN EXTERIORES DE UN ...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

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.

Page 80: NAVEGACIÓN AUTÓNOMA EN EXTERIORES DE UN ...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

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.

Page 81: NAVEGACIÓN AUTÓNOMA EN EXTERIORES DE UN ...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

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 .

Page 82: NAVEGACIÓN AUTÓNOMA EN EXTERIORES DE UN ...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

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")

Page 83: NAVEGACIÓN AUTÓNOMA EN EXTERIORES DE UN ...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

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.

Page 84: NAVEGACIÓN AUTÓNOMA EN EXTERIORES DE UN ...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

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.

Page 85: NAVEGACIÓN AUTÓNOMA EN EXTERIORES DE UN ...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

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

Page 86: NAVEGACIÓN AUTÓNOMA EN EXTERIORES DE UN ...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

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.

Page 87: NAVEGACIÓN AUTÓNOMA EN EXTERIORES DE UN ...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

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.

Page 88: NAVEGACIÓN AUTÓNOMA EN EXTERIORES DE UN ...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

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).

Page 89: NAVEGACIÓN AUTÓNOMA EN EXTERIORES DE UN ...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

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

Page 90: NAVEGACIÓN AUTÓNOMA EN EXTERIORES DE UN ...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

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

Page 91: NAVEGACIÓN AUTÓNOMA EN EXTERIORES DE UN ...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

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

Page 92: NAVEGACIÓN AUTÓNOMA EN EXTERIORES DE UN ...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

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.

Page 93: NAVEGACIÓN AUTÓNOMA EN EXTERIORES DE UN ...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

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

Page 94: NAVEGACIÓN AUTÓNOMA EN EXTERIORES DE UN ...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

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

Page 95: NAVEGACIÓN AUTÓNOMA EN EXTERIORES DE UN ...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

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.

Page 96: NAVEGACIÓN AUTÓNOMA EN EXTERIORES DE UN ...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

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.

Page 97: NAVEGACIÓN AUTÓNOMA EN EXTERIORES DE UN ...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

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.

Page 98: NAVEGACIÓN AUTÓNOMA EN EXTERIORES DE UN ...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

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.

Page 99: NAVEGACIÓN AUTÓNOMA EN EXTERIORES DE UN ...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

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.

Page 100: NAVEGACIÓN AUTÓNOMA EN EXTERIORES DE UN ...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

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].

Page 101: NAVEGACIÓN AUTÓNOMA EN EXTERIORES DE UN ...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

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.

Page 102: NAVEGACIÓN AUTÓNOMA EN EXTERIORES DE UN ...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

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.

Page 103: NAVEGACIÓN AUTÓNOMA EN EXTERIORES DE UN ...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

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.

Page 104: NAVEGACIÓN AUTÓNOMA EN EXTERIORES DE UN ...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

Presupuesto

87

UNIVERSIDAD PONTIFICIA COMILLAS

ESCUELA TÉCNICA SUPERIOR DE INGENIERÍA (ICAI)

INGENIERO INDUSTRIAL

Parte II PRESUPUESTO

Page 105: NAVEGACIÓN AUTÓNOMA EN EXTERIORES DE UN ...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

Presupuesto

88

UNIVERSIDAD PONTIFICIA COMILLAS

ESCUELA TÉCNICA SUPERIOR DE INGENIERÍA (ICAI)

INGENIERO INDUSTRIAL

Page 106: NAVEGACIÓN AUTÓNOMA EN EXTERIORES DE UN ...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

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

Page 107: NAVEGACIÓN AUTÓNOMA EN EXTERIORES DE UN ...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

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

Page 108: NAVEGACIÓN AUTÓNOMA EN EXTERIORES DE UN ...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

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

Page 109: NAVEGACIÓN AUTÓNOMA EN EXTERIORES DE UN ...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

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

Page 110: NAVEGACIÓN AUTÓNOMA EN EXTERIORES DE UN ...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

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

Page 111: NAVEGACIÓN AUTÓNOMA EN EXTERIORES DE UN ...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

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

Page 112: NAVEGACIÓN AUTÓNOMA EN EXTERIORES DE UN ...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

Presupuesto

95

UNIVERSIDAD PONTIFICIA COMILLAS

ESCUELA TÉCNICA SUPERIOR DE INGENIERÍA (ICAI)

INGENIERO INDUSTRIAL

Page 113: NAVEGACIÓN AUTÓNOMA EN EXTERIORES DE UN ...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

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