Control de Sensores Electroopticos
Control de Sensores Electroopticos
Control de Sensores Electroopticos
INGENIERÍA DE TELECOMUNICACIÓN
JUNIO DE 2010
Proyecto Fin de Carrera
C ONTROL DE SENSORES ELECTRO - ÓPTICOS EN AVIONES NO TRIPULADOS Y
TRATAMIENTO DE IMÁGENES UTILIZANDO MÁQUINAS DE VECTORES SOPORTE
Autora
M ARÍA I SABEL E SCOBAR E SCALERO
Directores
M ARCELINO L ÁZARO (UC3M)
J OSÉ Á NGEL G INER L ILLO (EADS)
La defensa del presente Proyecto Fin de Carrera se realizó el día 10 de Junio de 2010,
siendo calificada por el siguiente tribunal:
I
II
}La gente que se arriesga y lucha contra sus miedos,
E
N un principio no iba a comenzar esta andadura que hoy pone fin a una larga cantidad
de noches en vela y horas de estudios, alegrías y penas, compartidas con familiares y
amigos. Por todo ello, por formar parte de esta gran andadura, os merecéis este pequeño
homenaje.
Marce y Giner, ¿qué hubiera hecho sin vosotros? Gracias por todo lo que me habéis enseñado,
por las horas que me habéis dedicado, por confiar en mí y ver siempre, que era capaz de sacar el
proyecto adelante. ¡Mil gracias!
Compañeros de trabajo, quien me iba a decir hace un año, cuando di el paso de formar parte
de esta gran aventura que hoy ibais a estar conmigo compartiendo este momento. Gracias por las
celebraciones, por las risas, por los momentos compartidos y, sobre todo, por el gran apoyo que
me habéis brindado en todo momento!
Ana, Esther, Hodei y Piero, me regalasteis el mejor año de mi vida, lo compartisteis conmigo,
y desde entonces seguimos compartiendo nuestras vidas. Han pasado ya casi cuatro años cuando
nos embarcamos en la gran aventura del Erasmus. Parece que fue ayer el día que nos conocimos,
como todo en esta vida, por casualidad, pero eso es lo bonito, ¿no? Nunca os olvidaré. ¡Os quiero
“familia”! ¡Gracias a todos los que formaron parte de mi gran sueño erasmus!
María y Patricia, gracias por hacer de los laboratorios una aventura, por darme tan buenos
momentos. Hoy consigo el sueño común que hemos compartido como compañeras de universidad
y como amigas. Recordad siempre que “NUSOTRAS PUDEMOS”. ¡Os quiero guapas!
Juanfran, gracias por las charlas interminables, por el apoyo incondicional, por los consejos,
por las noches en vela. ¡Te adoro!
Diego, nos conocimos hace ya cinco años, comenzamos siendo compañeros y hoy somos
amigos, mil gracias por los consejos, los ánimos, las celebraciones, por estar siempre ahí, por
saberlo todo sin necesidad de decir nada, por todo. ¡Te quiero un montón!
Alberto, nos conocimos en la EOI, cuando para sobrevivir a la presión de la universidad nos
“divertíamos” estudiando inglés, luego resultó que éramos vecinos y ahora amigos, gracias por
el apoyo que siempre me has brindado, por alegrarme con cada charla, cada llamada. ¡Mr. Cobra
forever!
Marta, me has sufrido desde hace ya diez años, casi, desde que comenzó mi aventura univer-
sitaria. Creo que sobran las palabras, lo sabes todo “hermana”! ¡Te quiero!
Mari, ¿te acuerdas hace ya casi veinticuatro años cuando nos presentaron nuestros padres,
cuando corríamos por el colegio al tocar la sirena? ¡quién iba a decirnos que íbamos a vivir tantas
cosas, qué después de todo este tiempo íbamos a ser como hermanas! ¿qué le voy a decir a mi
“hermana” que no sepa? ¡Te quiero!
Tios y primos, mil gracias por ser parte de esta maravillosa familia, por ayudarme cada día a
ser la persona que soy, por estar siempre ahí. ¡Os quiero!
A mis abuelos les quiero dedicar una mención especial, desde pequeñita me habéis enseñado y
posteriormente guiado desde ahí arriba para que consiga mis sueños, para que ante las adversidades
consiga levantarme y celebre los triunfos. Isabel, Milagros y Ángel os llevo en mi corazón en
cada paso del largo camino de la vida. Yayo Atilano, ¿cuántas veces me habrás dicho...cuándo
terminarás de estudiar preciosa? Hoy te puedo decir con orgullo de nieta que he terminado y ¡SOY
INGENIERA!
V
Mamá, Papá y Goyi, sois mi vida, hay una canción que se llama “Estoy hecho de pedacitos
de ti”, pues eso soy yo, un cachito de cada uno de vosotros. No me cansaré nunca de daros las
gracias, cuánto hemos luchado hasta llegar al día de hoy y sintiéndolo mucho, pero lo que nos
queda por luchar! La verdad es que hacemos un gran equipo, no es porque sea el mío, pero es un
equipo ganador en todos los sentidos. Juntos hemos celebrado los aprobados, hemos llorado los
suspensos, hemos plantado cara a las adversidades y nos hemos enorgullecido de los triunfos, nos
hemos apoyado y cuidado, y hoy, a los cuatro, nos toca celebrar que soy ¡INGENIERA! Como os
he dicho, ¡SOIS MI VIDA! ¡OS QUIERO!
Para finalizar, me gustaría deciros que este título es también vuestro, hoy os podéis sentir todos
Ingenieros. Mil gracias a todos por haber contribuido a hacer este sueño . . .
. . . ¡UNA REALIDAD!
VI
Resumen
H
O y en día, la revolución tecnológica, permite realizar cosas que hasta hace unos años eran
impensables; como por ejemplo, identificar personas por los rasgos faciales o compartir
gran cantidad de información a través de una red llamada internet.
El sector militar aeronáutico es uno de los que más invierte en investigación, desarrollo e
implantación de los más nuevos y sofisticados avances tecnológicos y que en el futuro se aplicarán
en el sector civil.
Actualmente, el boom aeronáutico pasa por el desarrollo de aviones no tripulados, los llamados
UAVs (del inglés, Unmanned Aerial Vehicles). Las empresas punteras del sector, como EADS
(European Aeronautics Defence and Space Company) o Boeing, están invirtiendo en el desarrollo
de UAVs cada vez más sofisticados; capaces de realizar misiones de mayor duración y con la
tecnología más puntera, con el objetivo de llevar a cabo las misiones requeridas con total éxito.
Este proyecto se ha planteado dentro de la empresa EADS, gracias a los nuevos desarrollos
que se están llevando a cabo en la división de Defence & Security. Este proyecto, surgió a raíz
del nuevo desarrollo llamado UAV ATLANTE (Avión Táctico de Largo Alcance No Tripulado) el
primer UAV español, el cual está desarrollando para el ejército español la empresa EADS. Entre
las misiones más importantes que desarrollan los UAVs se encuentran las misiones de inteligencia,
vigilancia, adquisición de blancos y reconocimiento. Para ello, el avión lleva incorporado en la
parte inferior del fuselaje un sensor EO (Electro-Óptico), para el cual se va a desarrollar este
proyecto.
A pesar de que el proyecto surgiera a raíz del desarrollo del UAV ATLANTE, éste es aplicable
a cualquier UAV que esté provisto de un sensor EO, en cuyos computadores o en los de la estación
base, sea posible integrar los algoritmos desarrollados.
El proyecto se ha subdividido en dos subproyectos de disciplinas muy dispares, que han sido
aplicados de forma combinada para lograr un fin común.
El primer subproyecto, desarrollado en la empresa EADS, consiste en la implementación de los
algoritmos de geo-apuntamiento (geopointing) y geo-localización (geolocation). El algoritmo de
geo-apuntamiento permite calcular los ángulos del sensor EO para que éste apunte a una latitud,
longitud y altura determinadas por el operador del UAV situado en tierra. El algoritmo de geo-
localización permite calcular la latitud, longitud y altura de la posición geográfica a la que la
cámara apunte en el momento que el operador le indique al UAV.
Una vez implementados los dos algoritmos, se realizará una batería de pruebas para verificar
el correcto funcionamiento de los mismos. Las pruebas se realizarán en primer lugar en un PC,
así se eliminarán posibles fallos de codificación, y a continuación, se realizará una integración
de los algoritmos en un entorno de simulación. Esta integración se llevará a cabo en un banco
de pruebas perteneciente a EADS. Las pruebas de integración en banco permitirán comprobar el
correcto funcionamiento de los algoritmos de manera visual.
La cámara del sensor EO del UAV es capaz de capturar imágenes en tiempo real. El procesado
y análisis de estas imágenes para la detección de posibles objetivos como, fuegos, personas, con-
voyes de misión humanitaria. . . son fundamentales para el correcto desarrollo de las misiones de
un UAV.
En la segunda parte del proyecto, la cual ha sido desarrollada en la UC3M (Universidad Carlos
III de Madrid), se quiere realizar una implementación de un clasificador de imágenes, y discutir
en torno a la viabilidad de embarcar la implementación en el UAV o ejecutarla en la estación de
VII
tierra. Para su realización se ha optado por utilizar una implementación de las máquinas de vectores
soporte (SVM, Support Vector Machines); ya que permiten realizar una clasificación máquina con
un alto porcentaje de aciertos, a la vez que se minimiza la cantidad de información necesaria.
VIII
Abstract
N
O wadays, technological revolution has allowed to develop features absolutely unbelie-
vable some years ago. For example, identifying people by facial features or sharing a
wealth of information through a network called the Internet.
The military aircraft sector is one of the largest investors in research, development and imple-
mentation on the newest and most sophisticated technological advances which will be applied in
the civilian sector on the future.
Currently, the aviation boom goes through the development of UAVs (Unmanned Aerial Vehi-
cles). Leader companies, such as EADS (European Aeronautics Defence and Space Company) and
Boeing, are investing in the development of increasingly sophisticated UAVs, capable to perform
longer missions with the leading technology, with the aim to obtain resounding successes on the
required missions.
This project has arisen within the company EADS, thanks to new developments that are being
developed in the division of Defence & Security. This project arose, because of the new deve-
lopment called UAV ATLANTE (spanish long range tactical aircraft unmanned) the first Spanish
UAV, which is developed for the Spanish army by EADS. Among the most important missions that
are being developed by UAVs are the missions of intelligence, surveillance, target acquisition and
recognition. For this, the aircraft carries incorporated in the belly a EO (Electro-Optical) sensor,
for which it will develop this project.
In spite of the fact that the project arose because of the development of the UAV ATLAN-
TE, this is applicable to any UAV that be provided of a EO sensor, in which whether on-board
computers or those of the base station, could be possible to integrate in the developed algorithms.
The project has been subdivided in two very different subproyects that have been applied in
combination to achieve a common goal.
The first subproject developed at EADS is the implementation of the algorithms for geopoin-
ting and geolocation. The geopointing algorithm works out the angles of the EO sensor pointing
to the latitude, longitude and height determined by the UAV operator located on land. The geolo-
cation algorithm works out the latitude, longitude and height of the geographic position where the
camera is focusing at the moment that the user indicates to the UAV.
Once implemented the two algorithms, a battery of tests will be performed to verify proper
operation thereof. The tests will be carry out first on a PC, to remove potential coding errors. Then
there will be an integration of algorithms in a simulation environment. This integration will be
carry out in a test bench belonging to EADS. The integration test bench will allow testing the
proper functioning of the algorithms in a visual way.
The camera of the EO sensor of the UAV is capable of capturing images in real time. Proces-
sing and analysing these images to detect possible targets such as fires, people who need rescuing,
convoys of humanitarian tasks,. . . are essential for the correct development of the missions of an
UAV.
In the second part of the project, which has been developed in the UC3M (Carlos III University
of Madrid), an implementation of an image classifier has been done, and also discussion about
the feasibility of deployment on board the UAV or run in the ground station. To achieve this
target, an implementation of Support Vector Machines (SVMs) has been chosen, as they allow a
classification machine with a high percentage of hits, while minimizing the amount of necessary
information.
IX
X
Índice General
Agradecimientos V
Resumen VII
Abstract IX
Lista de Figuras XV
I P RELIMINARES . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1
I.1 Introducción 3
I.1.1 Planteamiento y motivación del proyecto . . . . . . . . . . . . . . . . . . . . . 4
I.1.2 Objetivos . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 7
I.1.3 Visión general del documento . . . . . . . . . . . . . . . . . . . . . . . . . . . 8
I.1.4 Consideraciones del proyecto . . . . . . . . . . . . . . . . . . . . . . . . . . . 10
I.2 Antedecentes 11
I.2.1 Sistemas aéreos no tripulados (UAS) . . . . . . . . . . . . . . . . . . . . . . . 12
I.2.2 Los aviones no tripulados (UAVs) . . . . . . . . . . . . . . . . . . . . . . . . 15
I.2.2.1 Características y misiones que desarrollan . . . . . . . . . . . . . . . . . 15
I.2.2.2 Clasificación . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 17
I.2.2.3 Los UAVS de EADS . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 18
I.2.2.4 El ATLANTE (Avión Táctico de Largo Alcance No Tripulado Español) . . 20
I.2.2.4.1 Diseño del ATLANTE . . . . . . . . . . . . . . . . . . . . . . . . 20
I.2.3 Nociones básicas de cartografía . . . . . . . . . . . . . . . . . . . . . . . . . . 22
I.2.3.1 Cálculo de la latitud paramétrica (φPARAM ) . . . . . . . . . . . . . . . . 24
I.2.3.2 Cálculo de la latitud geodética (φGEOD ) . . . . . . . . . . . . . . . . . . 25
I.2.4 Teoría del tratamiento digital de información . . . . . . . . . . . . . . . . . . . 27
I.2.5 Máquinas de vectores soporte (SVMs) . . . . . . . . . . . . . . . . . . . . . . 29
I.2.5.1 Caso linealmente separable . . . . . . . . . . . . . . . . . . . . . . . . . 30
I.2.5.2 Caso no linealmente separable . . . . . . . . . . . . . . . . . . . . . . . . 33
I.2.5.3 SVM no lineales . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 34
I.2.5.3.1 La función núcleo k(x, xi ) . . . . . . . . . . . . . . . . . . . . . . 36
I.2.5.4 Fortalezas y debilidades de las SVMs frente a las redes neuronales . . . . 36
XI
II.1.2 Sistema de coordenadas Geodéticas o LLA . . . . . . . . . . . . . . . . . . . . 46
II.1.3 Sistema de coordenadas ECEF . . . . . . . . . . . . . . . . . . . . . . . . . . 46
II.1.4 Sistema de coordenadas NED . . . . . . . . . . . . . . . . . . . . . . . . . . . 47
II.1.5 Sistema de coordenadas BODY . . . . . . . . . . . . . . . . . . . . . . . . . . 48
II.1.5.1 Actitud del avión . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 48
II.1.6 Matrices de cambio de coordenadas entre sistemas de referencia . . . . . . . . 49
II.1.6.1 Matrices de rotación . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 49
II.1.6.1.1 Giro en ⃗x . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 49
II.1.6.1.2 Giro en ⃗y . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 50
II.1.6.1.3 Giro en ⃗z . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 50
II.1.6.2 LLA ←→ ECEF . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 51
II.1.6.3 ECEF ←→ NED . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 52
II.1.6.4 NED ←→ BODY . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 52
II.1.7 Coordenadas y matrices homogéneas . . . . . . . . . . . . . . . . . . . . . . . 54
XII
III.2 Algoritmo Complex-Log Mapping (CLM) 99
III.2.1 Logaritmo Complejo . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 100
III.2.2 Transformada de Fourier (FFT, Fast Fourier Transform) . . . . . . . . . . . . . 103
XIII
IV.3 Integración a nivel de sistemas 171
VI A PÉNDICES . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 187
A Presupuesto 189
A.1 Tareas realizadas durante el proyecto . . . . . . . . . . . . . . . . . . . . . . . 190
A.2 Análisis y valoración de recursos/costes . . . . . . . . . . . . . . . . . . . . . 192
A.2.1 Costes directos . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 192
A.2.1.1 Material . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 192
A.2.1.2 Recursos Humanos . . . . . . . . . . . . . . . . . . . . . . . . . . 193
A.2.2 Costes indirectos . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 193
A.2.3 Costes totales . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 194
B Acrónimos 195
Bibliografía 199
XIV
Lista de Figuras
II.1.1 Sistema Geodésico [Los ejes WGS84 son XWGS84 , YWGS84 y ZWGS84 ]. . . . . 45
II.1.2 Sistema de coordenadas LLA. . . . . . . . . . . . . . . . . . . . . . . . . . . 46
II.1.3 Sistema de coordenadas ECEF. . . . . . . . . . . . . . . . . . . . . . . . . . 46
II.1.4 Sistema de coordenadas NED. . . . . . . . . . . . . . . . . . . . . . . . . . . 47
II.1.5 Sistema de coordenadas BODY. . . . . . . . . . . . . . . . . . . . . . . . . . 48
II.1.6 Ángulos del sistema de coordenadas BODY. . . . . . . . . . . . . . . . . . . 48
II.1.7 Sistema de coordenadas realizando un giro en el eje x. . . . . . . . . . . . . . 49
II.1.8 Sistema de coordenadas realizando un giro en el eje y. . . . . . . . . . . . . . 50
II.1.9 Sistema de coordenadas realizando un giro en el eje z. . . . . . . . . . . . . . 51
XV
II.4.2 Valores de las propiedades de la librería FSUIPC. . . . . . . . . . . . . . . . . 73
II.4.3 Estructura necesaria para la utilización de FSUIPC. . . . . . . . . . . . . . . . 74
II.4.4 Información de las variables del módulo FSUIPC que se van a utilizar. . . . . . 76
XVI
III.6.18 Evolución de los SV en los escenarios 2 y 4 con saltos de 40° y 160° de rotación. 145
XVII
XVIII
Lista de Tablas
II.3.1 Formulación para el cálculo de las coordenadas cartesianas a partir de las coor-
denadas LLA. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 69
II.3.2 Formulación para el cálculo de las coordenadas LLA a partir de las coordenadas
cartesianas. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 70
XIX
XX
PARTE I
P RELIMINARES
Capı́tulo I.1
Introducción
Resumen
En este capítulo, se detallan las cuestiones generales del proyecto: los motivos, el plan-
teamiento y los objetivos del mismo. También se hará una breve explicación de los ca-
pítulos de los que consta este documento. Para finalizar, el último apartado contiene
consideraciones importantes a tener en cuenta durante la lectura del documento.
3
4 CAPÍTULO I.1. INTRODUCCIÓN
introducción va a permitir al lector/a situarse dentro del marco de desarrollo del proyecto.
L
A
En primer lugar, se van a explicar los motivos por los que este proyecto se ha llevado a cabo
y los objetivos que se marcaron al inicio de su desarrollo.
A continuación, se realizará un breve repaso por los puntos que componen este documento,
explicando su estructura y el contenido de cada uno de los capítulos. Para finalizar, se han enume-
rado una serie de consideraciones, relativas a la naturaleza del proyecto y la empresa (EADS) con
la que se ha colaborado para su desarrollo.
Desde los orígenes de la humanidad, el ser humano ha deseado volar. Han sido muchos los que
han deseado volar ellos mismos o desarrollar aparatos que lo pudiesen hacer. Fueron los herma-
nos Wright, los que en 1903 consiguieron que volase el primer avión, el “Flyer I”. Desde ese día,
muchas han sido los personas que han aportado a la aeronáutica sus conocimientos y descubri-
mientos. Para ello, se han tomado distintos caminos, modificar la configuración, la aerodinámica,
el paso de hélices a motores, utilizar distintos tipos de motores, el cambio de fuselaje. . .
Los mayores logros se consiguieron durante la primera y segunda guerra mundial, debido
a las necesidades de los países implicados en poseer las mejores tecnologías para neutralizar al
enemigo. Hoy en día, las investigaciones y los grandes avances tecnológicos han permitido llegar
a desarrollar aviones no tripulados (UAVs). En la aviación comercial, los usuarios son muy reti-
centes a la idea de que los aviones no utilicen piloto; en cambio, en la aviación no comercial, los
UAVs juegan un papel muy importante. La clave reside en las pérdidas humanas que se pueden
producir si se pierde un avión pilotado. Los UAVs, al ser aviones sin piloto, en el caso de perder
el avión, únicamente habría que contabilizar pérdidas materiales. Este aspecto motiva e impulsa a
los desarrolladores a crear nuevos y más sofisticados UAVs.
Este proyecto surgió con un nuevo desarrollo que se está llevando a cabo en la división de
Defence & Security de la empresa EADS, el ATLANTE. Las misiones principales que desarrollan
los UAVs son de inteligencia, vigilancia, adquisición de blancos y reconocimiento. Para realizarlas,
el UAV lleva incorporado un sensor EO (Electro-Óptico), que está gobernado por un computador.
En él irán en un futuro implementados los algoritmos de geo-localización y geo-apuntamiento,
que permitirán al operador de tierra apuntar la cámara del sensor EO a una posición específica, o
localizar la posición a la que esté apuntando la cámara en un instante determinado.
Ésta es la primera fase del proyecto, desarrollada en EADS. En ella, se realizará un estu-
dio de la transformación de las coordenadas, tanto del objetivo al cual se quiere apuntar (geo-
apuntamiento) como de la posición de la cámara, que permitirá calcular el punto geográfico al
que está apuntando (geo-localización). Una vez realizado el estudio, se implementarán los dos
algoritmos en C++ [Str00] y se someterán a una batería de pruebas para verificar la correcta im-
plementación de los mismos. La fase de pruebas se ha subdividido en dos fases: pruebas en PC para
eliminar errores de implementación, y pruebas de integración en un rig 1 de aviónica perteneciente
a EADS, para la comprobación visual de la correcta implementación de los algoritmos.
La cámara del sensor EO captura imágenes cuando el operador o algún sistema se lo indica.
En el caso que se está analizando, se capturarán las imágenes a las que apunta la cámara del sensor
EO, después de ejecutar los algoritmos implementados. Como segunda fase del proyecto se ha
planteado el análisis de las imágenes capturadas para detectar la posible presencia o no de distintos
1
Se denomina rig a un banco de pruebas donde puede estar reproducida parcial o totalmente la arquitectura de los
computadores de un avión, en los que se integrará en el futuro las implementaciones que se desarrollan.
I.1.1. PLANTEAMIENTO Y MOTIVACIÓN DEL PROYECTO 5
objetivos: fuegos, personas, aviones, edificios, convoys . . . Esta segunda fase del proyecto se ha
desarrollado en la UC3M. Para realizarla, se han utilizado métodos que facilitan la clasificación de
imágenes. En este caso, se ha elegido un método de gran reconocimiento en cuanto a su potencial
y efectividad a la hora de clasificar, llamado máquina de vectores soporte (SVM, Support Vector
Machine).
Las imágenes por su composición y características proporcionan mucha información sobre lo
que representan, de ahí el dicho “más vale una imagen que mil palabras”. Debido a la cantidad
de información que nos rodea, nuestro cerebro tiende a organizarla clasificando las imágenes en
función de los atributos comunes. El problema que surge es que el ojo humano puede, a simple
vista, perder información relevante para la clasificación.
Dentro del marco del proyecto, la imagen a la que apunta la cámara contiene mucha infor-
mación para el operador de tierra. Si se la transmite a él tal y como es capturada (en crudo), las
decisiones con respecto a lo que ve, serán tomadas con mucha lentitud. El procesado de las imá-
genes y la clasificación de los posibles objetivos contenidos en ellas constituyen una ayuda al
operador de tierra en la toma de decisiones. Es importante destacar, que el sistema implementado
no sustituirá en ningún momento la toma de decisiones por parte del operador, únicamente es una
ayuda para él. Esto es debido a que el sistema no es un clasificador perfecto y las decisiones que
se toman pueden ser de nivel crítico.
Debido a la gran carga de trabajo que tiene el operador de tierra, surgió la idea de implemen-
tar un clasificador de las imágenes capturadas para ayudarle en la toma de decisiones. El proceso
consiste en capturar las imágenes, tratarlas en el UAV o en la estación de tierra, extraer la infor-
mación característica de la imagen y, mediante un clasificador, determinar el tipo de objetivo que
se identifica. Esta información se ha de mandar al operador de tierra, aunque también podría ser
enviada a otros aviones que colaboren con el UAV o a las estaciones de tierra de otros UAVs. El
objetivo principal de esta parte es implementar un clasificador de imágenes, ver la eficiencia en
cuanto a la clasificación de imágenes con unas determinadas características y realizar un estudio
de viabilidad de embarcar esta nueva funcionalidad en el UAV.
Para finalizar el proyecto, se ha planteado un ejercicio teórico de integración de las dos partes
del proyecto como parte de un UAV, enmarcando el proyecto dentro del proceso que se realiza en
un desarrollo aeronáutico real.
En la imagen I.1.1 se muestran de manera visual las dos partes en las que se divide el proyecto.
6 CAPÍTULO I.1. INTRODUCCIÓN
I.1.2 Objetivos
Tal y como se ha comentado en la sección I.1.1 y se puede ver en la figura I.1.1, el proyecto
está dividido en dos subproyectos bien diferenciados. Este hecho se ve reflejado en este documento
tal y como se describe a continuación:
Capítulo 1 - Introducción.
Capítulo 2 - Antecedentes.
Parte 2. La segunda parte se centra en el desarrollo del subproyecto realizado en EADS. Es-
te subproyecto consiste en el análisis e implementación de los algoritmos de geo-
apuntamiento y geo-localización, que en un futuro irán implementados en el compu-
tador que comande la cámara que lleva instalado el UAV. A lo largo de los capítulos
que componen esta parte, se explican los fundamentos teóricos que se han utilizado,
las implementaciones y las pruebas que se han realizado.
Parte 4. En esta parte, se va a realizar un ejercicio de integración del desarrollo, dentro del
marco de un proyecto aeronáutico en la división de Defence & Security de EADS.
En el primer capítulo, se va a definir el ciclo de vida de un proyecto, la metodolo-
gía de trabajo y la normativa a tener en cuenta durante los desarrollos. El segundo y
tercer capítulo se centran en una de las fases más importantes del proyecto, la inte-
gración. Primero, se realiza un estudio de los recursos computacionales que requieren
los algoritmos. Asi se verifica la posibilidad de integración de los algoritmos en los
computadores del UAV, esta fase se denomina integración a nivel de componente soft-
ware. A continuación, se plantea un esquema de integración de los algoritmos dentro
del computador que controla el sensor EO y los sistemas con los que va a interactuar,
esta fase se denomina integración a nivel de sistemas.
Parte 5. En esta parte, se exponen las conclusiones y los trabajos futuros de este proyecto.
Las conclusiones son el capítulo más importante del proyecto, en él se hace balance
del trabajo realizado, analizando los objetivos propuestos al inicio del proyecto y
comprobando si han sido alcanzados o no. En los trabajos futuros se plantearán las
líneas de trabajo a seguir a partir del trabajo realizado en este proyecto.
Capítulo 1 - Conclusiones.
Capítulo 2 - Trabajos futuros.
Parte 6. Para finalizar el documento se han añadido dos apéndices: un presupuesto del coste
que podría suponer para una empresa realizar este proyecto y una lista de los acróni-
mos utilizados durante el desarrollo del documento.
Apéndice 1 - Presupuesto.
Apéndice 2 - Acrónimos.
10 CAPÍTULO I.1. INTRODUCCIÓN
Resumen
11
12 CAPÍTULO I.2. ANTEDECENTES
E
S
se está desarrollando para los aviones no tripulados (UAVs), de los cuales se ha tomado
como ejemplo el UAV ATLANTE. Es importante conocer el sistema donde desarrollan sus
funciones los UAVs (UAS), qué son, sus características más importantes y los ambientes en los
que desarrollan sus misiones, para así adecuar lo más posible el proyecto a ellos.
Para el desarrollo de la primera parte del proyecto, es necesario tener nociones básicas de
cartografía, para después comprender en su totalidad los algoritmos de geo-apuntamiento y geo-
localización que se desean desarrollar.
Como parte final del proyecto, se desea implementar un clasificador para las imágenes pro-
porcionadas por el sensor EO del UAV; para ello, se ha optado por utilizar las SVMs, que son
máquinas de aprendizaje.
La filosofía en la que se basan los UAVs es la ausencia de piloto y tripulación a bordo de los
mismos. Este hecho conlleva la desaparición de algunos sistemas del avión como los asientos,
paneles de instrumentación, sistemas de acondicionamiento de aire, sistemas de oxígeno. . . y la
sustitución de las actuaciones directas sobre la plataforma, por comandos desde la estación de
tierra. Por todo ello surge la necesidad de una infraestructura que compense estas ausencias, el
UAS (en inglés, Unmanned Aerial System) [dDE09]. Fue el departamento de Defensa de los EEUU
el encargado de introducir este término, que más tarde, fue adoptado por la FAA (Federal Aviation
Administration).
El UAS es un sistema formado por un segmento de vuelo y otro de tierra. El segmento de vuelo
está compuesto por la plataforma aérea, la carga útil según la misión a desarrollar y el sistema
de comunicaciones. Por su parte, el segmento de tierra está compuesto por la estación de tierra;
desde la cual, es posible controlar la aeronave y su carga de pago, comunicarse con la aeronave y
analizar la información de los sensores de la plataforma aérea. Además, la plataforma debe poder
ser lanzada y recuperada con seguridad e integridad para volver a ser utilizada. A continuación se
explican brevemente cada uno de los componentes de un UAS:
La plataforma aérea es el vehículo no tripulado (UAV) (ver figura I.2.1). Tiene tamaños
muy variables dependiendo de la misión que ha de desarrollar. Posee diferentes sistemas
de sustentación (ala fija, rotatorias. . . ) y diferentes sistemas de propulsión (turbohélices,
turborreactores, motores eléctricos. . . ). Además, incorpora los sistemas de propulsión, na-
vegación, comunicaciones y los data links. Éstos, permiten realizar el control del vuelo, el
control de la misión y transmitir la información de los sensores desde el UAV a la estación
de tierra. Se desarrollarán en detalle en la sección I.2.2.
La carga útil o payload está formada por los equipos embarcados en la plataforma aérea
I.2.1. SISTEMAS AÉREOS NO TRIPULADOS (UAS) 13
que no son esenciales para el vuelo de la misma. Por ejemplo, el sensor EO para el que se
está desarrollando este proyecto (ver figura I.2.2)
La estación de control de tierra (GCS, Ground Control Station) es junto con el UAV
una de las partes más importantes del sistema. Son cabinas transportables que alojan en su
interior los equipos de comunicaciones, procesado de datos, cálculo, visualización, monito-
rización y control de los datos que manda el UAV. Además, desde la estación base se puede
gestionar, controlar y comandar el UAV. En ella se desarrollan los planes de misión, se con-
trolan los sensores embarcados, se modifican los planes de vuelo, se comunica con el UAV
para la transmisión de información y alguna plataforma es posible controlarla remotamente.
En la figura I.2.3 se puede ver un ejemplo de estación base.
En la figura I.2.5 se puede ver un ejemplo de escenario de operación de un UAV. Para que
pueda salir a volar es necesario realizar los siguientes pasos:
El operador de la estación de tierra genera el plan de vuelo que ha de llevar a cabo el UAV. En
este plan de vuelo se especifica la misión que ha de desarrollar el UAV y se carga mediante
comunicaciones seguras desde la estación de control de tierra. Además del plan de vuelo, la
estación ha de especificarle al UAV la carga de pago que posee y algunos parámetros propios
de la misión. Por ejemplo, para este proyecto, se debería cargar con el plan de misión, las
matrices de características y vectores soporte que contiene la información para clasificar
objetivos.
En la mayoría de las ocasiones el UAV puede realizar el vuelo de dos modos, vuelo por
control remoto desde la estación base o vuelo automático (ver sección I.2.2.2). En el vuelo
por control remoto, es el operador de la estación de tierra el que vuela el avión mediante los
controles de la estación. En el vuelo automático, el UAV está gobernado por sus sistemas
de control y no es necesaria la intervención del operador de la estación de tierra. Desde la
estación base se puede modificar el plan de misión en cualquier momento, pilotar, manejar
los sensores. . .
Durante todo el tiempo que dura la misión, el UAV obtiene información de sus sensores y
de los satélites con los que se comunica. Toda esta información ha de ser transmitida a la
estación de tierra para que allí sea procesada.
Una vez llevada a cabo la misión, el UAV retorna a la base y aterriza. Aquí entra en operación
el subsistema de recuperación.
“Ninguna actuación sobre territorio enemigo podrá tener éxito sin que previamente
se haya asegurado el espacio aéreo sobre él. Es necesario el dominio del espacio
aéreo, bien para negar el poder aéreo enemigo, para poder lanzar ataques tácticos o
estratégicos o para poder observar los movimientos del enemigo.”
Una de las aplicaciones más extendidas de los UAVs es la de realizar misiones de reconoci-
miento y vigilancia. Hasta este momento, estas misiones eran realizadas por aviones caza, ya que
poseen potentes cámaras capaces de detectar los movimientos de los enemigos; pero presentaban
algunos inconvenientes que el uso de UAVs ha permitido resolver:
16 CAPÍTULO I.2. ANTEDECENTES
Imposibilidad de permanencia durante un largo periodo sobre territorio enemigo sin riesgo
de ser detectados.
Una vez vistas las ventajas que nos ofrecen este tipo de aviones, se van a enumerar los tipos
de misiones en las que pueden tomar parte, tanto en el entorno militar como en el entorno civil.
Entorno militar
Entorno civil
2. Transporte de distintos tipos de carga útil en función de la misión que ha de realizar: sensores
de visión nocturna, sensores infrarrojos, radares de apertura sintética en desarrollo. . .
I.2.2.2 Clasificación
Existen muchas y diversas maneras de clasificar los UAVs. A continuación se muestras las
clasificaciones más utilizadas:
De blanco, sirven para simular aviones o ataques enemigos en los sistemas de defensa
de tierra o aire.
De reconocimiento (URAVs, Unmanned Reconnaissance Aerial Vehicles), envían in-
formación militar.
De combate (UCAVs, Unmanned Combat Aerial Vehicles), participan en conflictos
bélicos y llevan a cabo misiones que suelen ser muy peligrosas.
Tácticos (UTAVs, Unmanned Tactical Aerial Vehicles), realizan misiones tácticas.
Logística, diseñados para llevar carga.
Investigación y desarrollo (Demostrator), en ellos se prueban e investigan los sistemas
en desarrollo.
UAVs comerciales y civiles, son diseñados para propósitos civiles.
Civil
Militar
3. Atendiendo al peso.
Autónomo y adaptativo o automático, el UAV está totalmente gobernado por sus sis-
temas de abordo, sin intervención del operador de tierra. El UAV tiene la capacidad
de re-planificar su plan de misión en función de los cambios producidos durante el
desarrollo de la misma. El UAV puede interactuar con otros UAVs.
Monitorizado, el UAV opera de forma autónoma. El operador controla la retroalimen-
tación del UAV; pero no controla los mandos, aunque puede tomar decisiones.
Supervisado, el UAV realiza algunas operaciones de forma autónoma. El control recae
en su gran mayoría sobre el operador de tierra.
Autónomo-no adaptativo (o pre-programado), el UAV obedece a una rutina programa-
da con anterioridad, no tiene capacidad de cambiarla para adaptarla al desarrollo de la
misión.
Mando directo por un operador o control remoto, el UAV responde directamente a los
mandos del operador de tierra.
HALE (High Altitude, Long Endurance), viaja por encima de los 30.000 pies de altitud
y alcance indeterminado.
• CIS Lunar, viaja entre la luna y la tierra.
• ORBITAL, viaja en órbitas bajas terrestres (Mach 2 25+)
• HYPERSONIC (supersónico (Mach 1-5) o hipersónico (Mach 5+)), viaja a 50.000
pies de altitud o altitud suborbital y tiene un alcance de 200 km aprox.
MALE (Medium Altitude, Long Endurance), viaja entre 20.000 y 30.000 pies de altitud
y tiene un alcance de unos 200 km aprox.
TACTICAL (Low Altitude, Short Endurance), viaja por debajo de los 18.000 pies de
altitud y tiene un alcance por debajo de 160 km aprox.
• NATO: viaja a 10.000 pies de altitud y hasta 50 km de alcance aprox.
• Closed, viaja a 5.000 pies de altitud y 10 km de alcance aprox.
• Handheld, viaja a 2.000 pies de altitud y 2 km de alcance aprox.
2
Número adimensional usado para describir la velocidad de los aviones. Mach 1 equivale a la velocidad del sonido,
subsónico (M < 0, 7), transónico (0, 7 < M < 1, 2), Supersónico (1, 2 < M < 5) e Hipersónico (M > 5)
EuroHawk Agile UAV-NCE Barracuda (UAV Demonstrator)
EuroHawk GmbH [EADS y Northrop] Within Network-Centric Environments UCAV
2010 2013 2006
Sharc (Rotary-wing UAV Demonstrator) Orka (Rotary-wing UAV Demonstrator) Neuron (UCAV Demonstrator)
EADS y Vertivision - VTOL (Vertical Take-Off and Landing) Drone de Renseignement Au Contact Dassault
2008/09 2006 En desarrollo
Figura I.2.6: Proyectos de UAVs en los que participa EADS [ [EAD10] y [Cor09]].
19
20 CAPÍTULO I.2. ANTEDECENTES
El ATLANTE [ [EAD10] y [Cor09]] se ha escogido como avión de referencia entre los UAVs
desarrollados en EADS para la realización de este proyecto. Es llamado el UAV Español y es un
avión táctico de largo alcance (UTAV MALE). El diseño se está llevando a cabo en la división de
Defence & Security y será utilizado por el Ejército de Tierra español, para llevar a cabo misiones
ISTAR (Intelligence, Surveillance, Target Acquisition and Reconnaissance).
Atendiendo a las distintas clasificaciones explicadas en el apartado I.2.2.2, el ATLANTE se
clasifica como un MALE UTAV que realiza misiones ISTAR y vuela en modo automático.
Otras operaciones que el ATLANTE puede llevar a cabo son: la identificación de blancos,
vigilancia diurna y nocturna, reconocimiento sobre colinas, evaluación de daños en una zona de
batalla, protección de tropas y convoys, vigilancia de fronteras, control de tráfico de drogas y
búsqueda y rescate. El UAV también contará con algunos requisitos del departamento de seguridad
nacional, la guardia civil y otras agencias de emergencia española.
El ATLANTE puede operar en distintos escenarios, que puede estar formado por 4 o más
vehículos aéreos, una estación de control terrestre, una terminal de datos terrestre, una unidad de
transporte, lanzamiento y recogida, una terminal de vídeo remoto y una unidad de mantenimiento.
Además, podrá ofrecer a los operadores de tierra, información en tiempo real del campo de batalla
del enemigo, para la realización de la vigilancia y adquisición de blancos en grandes superficies.
El ATLANTE tendrá la capacidad de operar 24 horas al día, bajo cualquier condición climáti-
ca. No necesita pistas de aterrizaje/despegue, aunque esté provisto de tren de aterrizaje, el cual está
pensado para poder operar en pistas improvisadas. Está diseñado para funcionar en dos modos, el
aterrizaje y despegue en pistas o despegue con un iniciador y recuperación con un paracaídas. El
avión podrá ser controlado desde la estación de tierra o a través de un modo automático.
El Atlante estará equipado con sensores EO (Electro-Ópticos) e IR (Infrarrojos). El sensor EO
convertirá los rayos de luz en señales electrónicas para la captura de imágenes en tiempo real y
vídeos. Este es el sensor para el que se está desarrollando este proyecto.
Las características más importantes son:
Dimensiones
• Longitud: 4.60 m
• Altura: 1.26 m
• Envergadura: 8m
Pesos
Comportamiento
• Rango: 160Km
• Máxima resistencia: 20h
Según la RAE (Real Academia Española), la cartografía se define como el arte de trazar mapas
geográficos y la ciencia que los estudia.
La representación de la información de la superficie terrestre en cualquier soporte plano (por
ejemplo en un mapa) es fundamental que se haga de manera correcta. Hasta ahora se ha realizado
siempre por geógrafos, cartógrafos y expertos del sector, para que no se produzcan propagaciones
de errores en el manejo de la información; ya que, un mínimo error a la hora de la representación
supone un error muy importante (durante las pruebas realizadas se ha podido comprobar que una
variación de centésimas supone una representación errónea en el simulador, ver II.5.2). Existe
bastante confusión en la utilización de algunos términos básicos en cartografía, lo que puede inferir
errores de comprensión; por este motivo, en esta sección se van a unificar y clarificar los conceptos
necesarios para este proyecto [ [GWP01] y [Reu]].
Coordenada ⇒ Cantidad lineal o angular que designa la posición que un punto ocupa en un
sistema de referencia. También se usa como término general para designar un tipo particular
de sistema de referencia, tales como las coordenadas cartesianas o coordenadas esféricas.
Coordenadas geodéticas ⇒ Valor de latitud, longitud y altura (φ, λ y h) que definen la posición
de un punto en la superficie de la tierra con respecto al elipsoide de referencia.
Altura geodética, elipsoidal (h) ⇒ Altura sobre el elipsoide de referencia, medida a lo largo de
la normal elipsoidal a través del punto en cuestión. La altura geodética es positiva si el punto
está fuera del elipsoide.
Longitud geodética (λ) ⇒ Ángulo entre el plano de un meridiano y el del meridiano cero. Una
longitud puede ser medida desde el ángulo formado entre los meridianos local y cero, al polo
de rotación del elipsoide de referencia, o por el arco a lo largo del Ecuador interceptado por
esos meridianos. La longitud es 0° en el meridiano de referencia, meridiano cero o meridiano
de Greenwich, positiva hacia el este del meridiano de Greenwich, negativa hacia el oeste del
mismo, siendo los valores extremos +180° y -180° (ver figura I.2.8)
Latitud geocéntrica (φGEOC ). Es el ángulo entre el plano ecuatorial y una línea desde
el punto de referencia al centro de la tierra. Hasta la llegada del GPS (Global Positio-
ning System), este ángulo no era posible medirlo con precisión. Esta latitud no va a ser
utilizada en el proyecto.
Latitud geodética (φGEOD ). Es el ángulo entre el plano ecuatorial y la normal al
elipsoide a través del punto medido. La latitud es 0° en el ecuador, positiva en el
hemisferio norte y negativa en el hemisferio sur. Siendo los valores de los Polos Norte
y Sur, +90° y -90° respectivamente.
Latitud paramétrica (φPARAM ). No tiene sentido físico. Se utiliza como soporte ma-
temático para las transformaciones entre las latitudes geocéntrica y geodética.
Meridiano ⇒ Línea de referencia de norte a sur, sobre cada uno de los círculos máximos de la
esfera terrestre que pasan por los polos, desde donde se determinan las longitudes y azimuts;
o las intersecciones con los planos que forman un gran círculo que contiene ambos polos
geográficos de la tierra y el elipsoide.
Meridiano cero o meridiano de Greenwich ⇒ Meridiano desde el que se calculan todas las lon-
gitudes de todos los meridianos. Este meridiano tiene longitud 0°, y se elige por pasar a
través del observatorio de Greenwich (Inglaterra). En una nueva redefinición del sistema de
coordenadas, la localización del meridiano cero se estableció por el Servicio Internacional
de rotación de la tierra en París (Francia).
24 CAPÍTULO I.2. ANTEDECENTES
Paralelo ⇒ Línea sobre la tierra o una representación de ella, que representa la misma latitud en
cada punto.
Ecuador o paralelo cero ⇒ Línea de latitud geodética cero; círculo máximo descrito por el semi-
eje mayor del elipsoide de referencia, como si rotase sobre el semieje menor.
Elipsoide ⇒ Superficie generada por un elipsoide rotando sobre uno de sus ejes. También llamada
elipsoide de revolución.
La latitud paramétrica no tiene sentido físico, únicamente es útil para relacionar las latitudes
geocéntricas y geodéticas, las cuales si tienen sentido físico. Está basada en elipsoides de revolu-
ción, donde cada meridiano es una elipse con un radio ecuatorial o semieje mayor a y un radio
polar o semieje menor b.
La figura I.2.10 representa los tres tipos de latitudes y las relaciones trigonométricas existentes,
en ellas está basada la formulación que se presenta a continuación.
x2MERIDIONAL z2
+ =1 (I.2.1)
a2 b2
xMERIDIONAL = a cos(φPARAM ) (I.2.2)
z = a sen(φPARAM ) (I.2.3)
2 2
cos (φPARAM ) + sen (φPARAM ) = 1 (I.2.4)
Sustituyendo entre ellas las ecuaciones I.2.1, I.2.2, I.2.3 y I.2.4 obtenemos:
Se define la latitud geodética como el ángulo por encima o por debajo del plano ecuatorial con
la normal a la superficie de la elipse en el punto. Es posible establecerla en función de φPARAM
porque es ortogonal a la dirección meridional tangencial. El vector tangencial al meridiano − −→,
vTAN
estará en la dirección de la derivada de la solución de la ecuación de la elipse con respecto a la
latitud paramétrica, y la dirección meridional normal −v−−→
NOR , será ortogonal a ésta. Viendo la figura
I.2.10 se deducen,
( ) ( )
v−TAN
−→α ∂ a cos(φPARAM ) −a sin(φPARAM )
= (I.2.6)
∂φPARAM b sin(φPARAM ) b cos(φPARAM )
( )
−
v−−→ −−→ b cos(φPARAM )
NOR ⊥vTAN = (I.2.7)
a sin(φPARAM )
z a sin(φPARAM ) a
tan φGEOD = = = tan(φPARAM ) (I.2.8)
x b cos(φPARAM ) b
Utilizando relaciones trigonométricas, se obtiene:
a sin(φPARAM ) a sin(φPARAM )
tan(φGEOD ) b cos(φPARAM ) b cos(φPARAM )
sin(φGEOD ) = √ =√ =√ =
1 + tan2 (φGEOD ) a2 sin2 (φPARAM ) b2 cos2 (φPARAM )+a2 sin(φPARAM )
1+ b2 cos2 (φPARAM ) b2 cos2 (φPARAM )
a sin(φPARAM )
√ (I.2.9)
b2 cos2 (φ PARAM )
2 + a2 sin(φPARAM )
Siguiendo el mismo procedimiento, se obtiene:
1 b cos(φPARAM )
cos(φGEOD ) = √ =√ (I.2.10)
1 + tan2 (φGEOD ) a2 sin2 (φPARAM ) + b2 cos(φPARAM )
tan(φPARAM ) b sin(φGEOD )
sin(φPARAM ) = √ =√ (I.2.11)
1+ tan2 (φ PARAM ) a2 cos2 (φ GEOD ) + b2 sin(φGEOD )
1 a cos(φGEOD )
cos(φPARAM ) = √ =√ (I.2.12)
1 + tan2 (φPARAM ) a2 cos2 (φGEOD ) + b2 sin(φGEOD )
Por tanto, utilizando las ecuaciones I.2.2, I.2.3, I.2.11 y I.2.12 se obtiene:
a2 cos(φGEOD )
xMERIDIONAL = a cos(φPARAM ) = √ (I.2.13)
a2 cos2 (φGEOD ) + b2 sin(φGEOD )
b2 sin(φGEOD )
z = b sin(φPARAM ) = √ (I.2.14)
a2 cos2 (φGEOD ) + b2 sin(φGEOD )
26 CAPÍTULO I.2. ANTEDECENTES
Estas ecuaciones se aplican únicamente en la superficie del geoide. Para aplicarlas a distintas
alturas, es necesario utilizar la altura ortométrica h, la cual está definida por encima o por de-
bajo del geoide y es medida a lo largo de la superficie normal. De tal manera, las coordenadas
xMERIDIONAL y z de un punto con altura h son (ver I.2.11):
a cos(φGEOD )
xMERIDIONAL = a cos φPARAM +h cos(φGEOD ) = a √ +h cos(φGEOD ) =
a2 cos2 (φ GEOD ) + b2 sin(φGEOD )
1
cos(φGEOD ) h + a2 √ (I.2.15)
a2 cos2 (φGEOD ) + b2 sin2 (φGEOD )
b sin(φGEOD )
z = b sin(φPARAM )+h sin(φGEOD ) = h sin(φGEOD )+b √ =
a2 cos2 (φGEOD ) + b2 sin(φGEOD )
1
sin(φGEOD ) h + b2 √ (I.2.16)
a2 cos2 (φGEOD ) + b2 sin2 (φGEOD )
A partir de este momento se consideran siempre las latitudes, latitudes geodéticas, excepto
que se especifique explícitamente.
I.2.4. TEORÍA DEL TRATAMIENTO DIGITAL DE INFORMACIÓN 27
Hasta hace unas décadas, pensar que un computador podría aprender, era inconcebible. La
RAE define aprendizaje como “la acción y efecto de aprender algún arte, oficio u otra cosa”, el
“tiempo que en ello se emplea”y “adquisición por la práctica de una conducta duradera”.
Herbert Simon afirma que “Aprender produce cambios en un sistema, y son estos cambios los
que permiten al sistema hacer la misma tarea de manera más eficiente la siguiente vez.”
Toda la teoría de tratamiento estadístico de información se puede agrupar en dos conjuntos,
Problemas de decisión: en estos problemas, el objetivo es decidir a qué clase pertenece una
muestra entre las posibles clases disponibles. En el ámbito del aprendizaje máquina, con-
siste en encontrar la regla de decisión durante el entrenamiento de la máquina, que permita
clasificar una nueva muestra correctamente dentro del conjunto de clases posibles.
Problemas de regresión: en este tipo de problemas, el objetivo es estimar el valor de alguna
variable desconocida, pero cuyo patrón es el mismo que el conjunto de observaciones cono-
cidas a priori.
Durante mucho tiempo, el hombre ha querido replicar la estructura del cerebro humano, de-
bido a que éste realiza rutinariamente tareas de reconocimiento de patrones. Desde pequeños, los
humanos realizamos un aprendizaje continuo, aprendemos a reconocer objetos y caras de la gente
cercana. El cerebro humano es capaz de discernir en una imagen, una cara no familiar, en po-
cos milisegundos. A través de la experiencia, el cerebro crea sus propias reglas para clasificar las
imágenes que recibe.
Muchos han sido los científicos que se han dedicado estudiar las redes neuronales; pero la
auténtica revolución, fue el algoritmo de retropropagación propuesto inicialmente por Werbos y
más tarde popularizado gracias a Rumelhart en 1986. Este algoritmo permite el entrenamiento de
perceptrones multicapa sin realimentación.
I.2.5. MÁQUINAS DE VECTORES SOPORTE (SVMS) 29
Esta parte de la sección se va a centrar en estudiar el caso linealmente separable. Para mayor
simplicidad se va a considerar el caso binario. Partiendo de un conjunto M de muestras (xi ∈ Rn ,
siendo i = 1, 2, 3,. . . ,N) y las etiquetas asociadas a cada una de ellas (yi ∈ +1, −1, siendo i =
1, 2, 3,. . . ,N), se quiere calcular la expresión del hiperplano de separación que divide al conjunto
de datos M, dejando las muestras que pertenecen a la misma clase, al mismo lado del hiperplano,
y maximizando la distancia entre cada clase y el hiperplano calculado (también llamado margen,
ver figura I.2.14). N es el número de muestras que existen en el conjunto de datos M.
Un conjunto es linealmente separable si existe un valor w ∈ Rn que cumple
Figura I.2.14: Ejemplo de maximización del margen mediante la elección del OSH.
Un clasificador es lineal si su función de decisión puede expresarse como una función lineal
de x, lo cual implica que la ecuación del hiperplano de separación cumple:
wT x + b = 0 w ∈ Rn , b ∈ R (I.2.20)
donde,
w es perpendicular al hiperplano
Esta función indica cómo se realiza la clasificación de los datos x dependiendo del signo que
tome la función al evaluarla.
En el diseño de los clasificadores máquina, es muy importante buscar que la máquina sea
capaz de generalizar ante un problema de clasificación de muestras nuevas. Para aumentar esta
capacidad, lo que se intenta es maximizar la distancia entre los datos y la frontera de decisión.
Esta distancia queda definida por:
wT xi + b
di = (I.2.22)
||w||
aplicando la ecuación I.2.17 a la ecuación I.2.22 obtenemos que:
1
yi d i ≥ (I.2.23)
||w||
32 CAPÍTULO I.2. ANTEDECENTES
1
donde ||w|| es el límite inferior de la distancia entre los puntos de una clase y el hiperplano de
separación.
Debido a la condición de un conjunto linealmente separable, el hiperplano óptimo de separa-
ción, es aquel en el que la distancia a los puntos más cercanos del conjunto M es máxima. Esta
distancia queda determinada por la cota inferior calculada en la ecuación I.2.23. Esto implica que
para calcular el OSH basta con minimizar la siguiente expresión, siempre sujeto a las restricciones
de la ecuación I.2.20:
1
τ(w) = ||w||2 (I.2.24)
2
1 ∑ N
L = ||w||2 − αi [yi (wT xi + b) − 1] (I.2.25)
2
i=1
La solución óptima del problema, pasa por minimizar la ecuación I.2.25; lo que implica derivar
la expresión, también llamada función de coste, con respecto a cada una de las variables, w y b, e
igualar las expresiones obtenidas a cero.
ðL ∑
N
= yi α i = 0 (I.2.26)
ðb
i=1
ðL ∑ N ∑ N
=w− yi αi xi = 0 −→ w = yi α i x i (I.2.27)
ðw
i=1 i=1
La SVM elige los N vectores soporte (SV, Support Vectors), que son aquellos que cumplen
que αi sea distinto de cero. Esta condición se cumple para las muestras más cercanas al hiperplano
óptimo y al final las que definen una clase después de entrenar la máquina.
Si se sustituyen las ecuaciones I.2.26 y I.2.27 en la ecuación I.2.21, se obtiene una nueva
función de decisión del hiperplano,
( )
∑
N
f(x) = sign yi αi xTi x + b (I.2.28)
i=1
Ahora se va a plantear el caso más general, en el que los datos no son linealmente separables.
Esto implica que los datos de ambas clases (considerando el caso binario) están mezclados y por
tanto el hiperplano de separación no puede tener forma lineal. Este efecto, puede surgir por la
incursión de ruido o distorsiones en las muestras. El desarrollo se va a realizar de forma análoga
al realizado en la sección I.2.5.1.
Para solucionar este problema, se introducen las variables ξi > 0∀i, también llamadas holgu-
ras, que minimizan el número de muestras mal clasificadas. Estas variables ayudan a controlar el
error permitido mediante la introducción de una penalización a las muestras mal clasificadas. Esto
da lugar a las siguientes modificaciones en la ecuación I.2.17:
yi (wT xi + b) ≥ 1 − ξi (I.2.29)
En la figura I.2.16 se pueden ver dos muestras dentro del margen, pero con holguras distintas.
34 CAPÍTULO I.2. ANTEDECENTES
En el dibujo la holgura hi , se encuentra dentro del margen de su clase, entre el OSH y la recta
paralela al OSH que pasa por la muestra más cercana (0 < hi < 1); por lo que la muestra asociada
se encuentra dentro de los límites y por tanto se da como bien clasificada.
Por el contrario la holgura hj se encuentra fuera de los márgenes de su clase (hj > 1), por lo
que la muestra no está correctamente clasificada y será necesario aplicarle un factor correctivo.
La función a optimizar, modificada, queda de la siguiente manera:
1 ∑ l
τ(w, ξ) = ||w||2 + C ξi (I.2.32)
2
i=1
Lo ideal sería poder resolver todos los casos como si fueran linealmente separables, pero cuan-
do no lo son surgen los problemas. Para facilitar la separación de los datos, se puede recurrir a una
técnica, cuya idea principal consiste en mapear los datos de entrada linealmente no separables, a
un espacio de producto vectorial de dimensiones mayores pero en el que el problema sea lineal-
mente separable. El espacio F obtenido se denomina Feature Space (espacio de características o
espacio de medida) y la transformación que se aplica para obtener el nuevo espacio F se designa
como φ(x). Este efecto puede verse en la imagen I.2.17
I.2.5. MÁQUINAS DE VECTORES SOPORTE (SVMS) 35
Básicamente, consiste en realizar la transformación de x → φ(x) para todas las muestras del
espacio de entrada. Por lo que la formulación es exactamente la misma que en el caso linealmente
separable, pero cambiando x por φ(x). Hay que tener en cuenta que si φ(x) es de dimensiones
muy altas, la transformación es muy costosa; y sería ideal no tener que realizar la transformación
para cada muestra del espacio.
( )
∑
N
f(x) = sign αi yi (φ(x) · φ(xi )) + b (I.2.33)
i=0
El operador · es el operador productor escalar, también conocido como producto interno, inte-
rior o punto. Es una operación externa definida sobre un espacio vectorial cuyo resultado al operar
entre sí dos vectores, es un escalar o número. El producto escalar de dos vectores en un espacio
euclídeo se define como el producto de sus módulos por el coseno del ángulo que forman.
La solución a la transformación depende del producto escalar que se realiza en la trasforma-
ción. Si se cumple el teorema de Mercer, el producto escalar puede escribirse como:
Existe un mapa φ(x) y una expansión k(x1 , x2 ) = (φ(x1 ) · φ(x2 )) sí y sólo sí,
para
∫ cualquier g(x) se cumple: ∫
si g(x) dx es finita, entonces, k(x, y)g(x)g(y)dxdy ≥ 0, semidefinida positiva.
2
Debido a la dificultad de verificar el teorema para cualquier g, si éste se verifica para cualquier
g con norma L2 finita, se acepta como demostración para cualquier g.
Si se sustituye la ecuación I.2.34 en la ecuación I.2.33 se obtiene:
( N )
∑
f(x) = sign αi yi k(x, xi ) + b (I.2.35)
i=1
36 CAPÍTULO I.2. ANTEDECENTES
siendo:
La función k(x, xi ) es la denominada función núcleo o kernel. Ésta permite a la SVM extender
la clase de funciones de decisión al caso no lineal. Schölkopf estableció que la función núcleo
definía una medida de distancia en el espacio de entrada.
Existen diferentes funciones núcleo, y entre las más utilizadas se encuentran:
Función núcleo gaussiana de base radial (RBF, Radial Basis Function): k(x, xi ) =
exp(−γ(|x · xi |)2 )
En todas ellas γ es la constante de proporcionalidad, cuyo rango de valores útiles debe ser
estimado para cada aplicación en particular, c es un coeficiente y α el grado del polinomio.
Varios resultados han determinado que la función núcleo RBF proporciona, en general, buenos
resultados en un gran rango de aplicaciones, por este motivo se ha escogido para el desarrollo del
proyecto. Es importante decir que estas son las más conocidas y por tanto las más implementadas
en las librerías que proporcionan la SVM; pero existen muchos otros tipos de núcleos, tantos como
problemas a resolver.
La correcta elección de la función núcleo es muy importante, ya que cada tipo de núcleo crea
una estructura diferente para el conjunto de datos de entrada.
Si se realiza una comparación de las SVMs frente a las redes neuronales, de las SVMs se
puede afirmar:
I.2.5. MÁQUINAS DE VECTORES SOPORTE (SVMS) 37
Se alcanza la solución óptima (hiperplano óptimo). En las redes neuronales, la solución ópti-
ma (mínimo absoluto) no siempre es posible alcanzarlo, siendo un mínimo local la solución
alcanzada.
El compromiso entre la complejidad del clasificador y el error puede ser controlado explíci-
tamente.
Los datos no tradicionales, como cadenas de caracteres y árboles, pueden ser usados como
entrada a la SVM, en lugar de vectores de características.
Como debilidad de las SVMs hay que destacar, la elección de una buena función núcleo; es
decir, se necesitan metodologías eficientes para sintonizar los parámetros de inicialización de la
SVM para que ésta sea eficiente.
38 CAPÍTULO I.2. ANTEDECENTES
PARTE II
C ONTROL DE SENSORES
EO EN UAV S
41
Na vez definida la plataforma sobre la que se va a trabajar, hay que plantear el problema
U que se quiere resolver. Como bien se ha explicado en la sección I.2.2, una de las misiones
principales de los UAVs es el reconocimiento de terrenos, para ello poseen en la parte
inferior del fuselaje una cámara con un sensor EO (Electro-Óptico).
Los sensores EO constan de dos componentes, una cámara, la cual se encarga de capturar
las imágenes; y un designador láser (LRF, Laser Range Finder), cuya función es la medición
de distancias láser. Todo esto se monta en una caja robusta y estanca, que dispone de elementos
de refrigeración y ha de estar sobrepresurizada con nitrógeno seco para garantizar el máximo
rendimiento y fiabilidad de los sensores.
En la imagen 18 pueden verse ejemplos de sensores EO. Una de las compañías suministradoras
de EADS de este tipo de sistemas es Cedip, que suministró el sensor EO del UAV DRAC (ver
figura I.2.6).
Los sensores EO, con los cuales se trabajan para los nuevos desarrollos, son capaces de cap-
turar imágenes, tanto en el espectro visible como en el infrarrojo (IR). Es importante resaltar que
poseen dos ejes de movimiento, el eje de azimut, el cual permite realizar movimientos en el eje
horizontal de la cámara; y el eje de elevación, que permite realizar movimientos en el eje vertical.
Son estos dos ejes los que definen la actitud de la cámara y lo que se desea calcular en el algoritmo
de geo-apuntamiento.
El problema, al que hay que hacer frente, es el manejo de la cámara que porta en la parte
inferior del fuselaje el UAV, para geo-localizar o geo-apuntar a lugares que se está sobrevolan-
do y el operador de la estación de tierra le indique. La cámara posee dos modos de funciona-
miento, el operador le puede indicar a la cámara que apunte a unas coordenadas determinadas
(geo-apuntamiento) o se le puede preguntar a qué coordenadas está apuntando en ese instante
(geo-localización).
Una de las fases más importantes en un proyecto es la definición de requisitos. En este caso,
a este proyecto le llegaron como entradas, el problema que había que resolver y los requisitos
mínimos que debía cumplir la implementación [DS09].
42
Los requisitos impuestos para la implementación de los algoritmos son el lenguaje de progra-
mación y el entorno de desarrollo en el que se desea implementar la aplicación. Se ha especificado
que el entorno de desarrollo sea Microsoft Visual Studio 2005, aunque posteriormente se tendrá
que modificar y utilizar Microsoft Visual Studio 6.0 por exigencias de la librería FSUIPC (Flight
Simulator Universal Inter-Process Communication, ver II.4) para FS (Microsoft Flight Simula-
tor). En cuanto al lenguaje de programación, se utilizará C++ [Str00]; esto se decidió así, porque
la librería FSUIPC que permite integrar los programas, está implementada para programas en C++.
Como breve introducción a C++, hay que resaltar que nació como una extensión de C, aña-
diéndole clases, lo cual le dio la característica de orientación a objetos. Además, es un lenguaje
compilado, que significa que el fichero en lenguaje máquina se cree antes de la ejecución, en lu-
gar de hacerse en tiempo real como hacen los lenguajes interpretados, esto es una ventaja. Por el
contrario, hacen un uso completo de la CPU disponible, que implica la necesidad de una buena
gestión de memoria.
Algunas de las características más importantes de C++ son:
Flexibilidad a la hora de escribir cualquier tipo de programa.
Eficiencia a la hora de utilización del hardware.
Disponibilidad de existencia de compiladores para la mayoría de las plataformas hardware.
Portabilidad entre máquinas.
Ya que en un futuro se desea que el software desarrollado sea posible embarcarlo en los UAVs,
todas las restricciones, que sea posible cumplir, se aplicarán a la implementación actual en C++.
Para ello, se restringen las funcionalidades del lenguaje. No está permitido utilizar la librería es-
tándar de C++; pero en cambio, si están permitidas algunas funciones de la librería estándar de C.
A continuación, se enumeran los ficheros de cabecera de librería que están permitidos usar.
Resumen
El modo de representar un punto sobre una superficie depende del sistema de referencia
que se elija. El sistema de referencia está determinado por el origen del mismo y la
orientación de los ejes que lo forman. En este capítulo se explican los distintos sistemas
de coordenadas que se han utilizado para el desarrollo del presente proyecto.
43
44 CAPÍTULO II.1. SISTEMAS DE REFERENCIA
X isten distintos sistemas para representar unas coordenadas. A continuación, se van a explicar
E los que se van a utilizar en este proyecto, todos son ortogonales y cartesianos y difieren
principalmente en el origen y la orientación de los ejes. La elección de cada uno de ellos
depende del movimiento que se desea realizar [ [GWP01], [FC01] y [Reu]].
Los sistemas de referencia de ejes geodésicos surgieron por la necesidad de modelar la tierra
para poder trabajar con ella, debido a que ésta no es una esfera perfecta. Algunos ejemplos son:
Figura II.1.1: Sistema Geodésico [Los ejes WGS84 son XWGS84 , YWGS84 y ZWGS84 ].
a2 −b2
Excentricidad: e2 = a2
= 0, 00669438
El sistema de coordenadas ECEF (Earth Centered Earth Fixed) también es conocido como
sistema de coordenadas geocéntrico, e-frame o sistema de referencia inercial. Tiene su origen en
el centro de masa de la Tierra y sus ejes rotan con ella. Esto hace que el sistema sea no inercial,
aunque se considera inercial en muchas aplicaciones de dinámica de vuelo. El eje ZEC se dirige
directamente al norte a lo largo del eje polar, paralelo al eje de rotación de la tierra. Los ejes XEC
e YEC están en el plano ecuatorial, con XEC dirigido hacia el meridiano de Greenwich (0° latitud,
0° longitud) e YEC formando un triedro con el eje XEC y ZEC [ver la figura II.1.3]. Este sistema es
útil para referenciar posiciones terrestres.
El sistema de coordenadas NED (North East Down), también conocido como LLS (Local
Level System), tiene su origen en la localización del sistema inercial. Es un sistema local centrado
en un punto, que puede estar en la superficie terrestre o no; por lo tanto, al moverse el punto, el
sistema de referencia cambia. Los ejes Xe e Ye se encuentran en el plano tangente al punto de la
Tierra, donde está el origen. El eje Xe apuntará al norte, el eje Ye al Este y el eje Ze hacia abajo,
tal y como indica su propio nombre.
Otra posible configuración, aunque no es la que se ha utilizado en el proyecto, sería con el
eje Xe apuntando al este, el eje Ye apuntando al norte y el eje Ze apuntando hacia arriba, también
conocido como ENU (East North Up).
Se ha elegido la configuración NED, porque los ejes NED coinciden con los ejes BODY, (ver
la sección II.1.5) cuando el vehículo está a nivel y orientado hacia el norte.
Es importante resaltar que el sistema NED presenta dificultades cuando se acerca a latitudes
cercanas a los polos. En la figura II.1.4 se muestra el sistema de coordenadas.
Este sistema tiene su origen en el centro de masas del vehículo o centro de gravedad. El eje XB ,
está en el plano de simetría del vehículo y es positivo hacia adelante; el eje ZB , es perpendicular al
eje XB y positivo hace abajo en posición normal (por ejemplo en un avión, en la actitud normal de
vuelo); y el eje YB es el eje que completa el triedro. Normalmente usado en plataformas Strapdown;
es decir, cuando los sensores tienen también como centro de gravedad el vehículo y sus ejes se
mueven con él (es el caso que nos ocupa, ya que las coordenadas de la cámara están dadas con
respecto al centro de gravedad del avión).
Se utiliza para definir la actitud y orientación de un avión respecto al sistema de ejes NED.
En la figura II.1.6 se ven los tres momentos de un avión, los cuales dan lugar a los ángulos que
definen la actitud del avión.
Los ángulos son:
θ, ángulo de asiento (pitch) del vehículo que varía entre [-90° y 90°]. El ángulo de elevación
se mide en sentido positivo desde el plano del horizonte local.
ϕ, ángulo de balance (roll) del vehículo que varía entre [-180° y 180°].
ψ, ángulo de rumbo verdadero (yaw o heading) del vehículo que varía entre [-180° y 180°].
El ángulo de Azimut se mide en el sentido de las agujas del reloj desde el norte.
Cada componente de esta matriz, es uno de los cosenos de los ángulos entre los ejes de los dos
sistemas de coordenadas.
from
La notación que se va a seguir a lo largo de todo el documento es Cto , que denota la matriz
de cambio de coordenadas del sistema de representación “from ” al sistema de representación “to”.
Las matrices de transformación de coordenadas cumplen algunas propiedades que son intere-
santes para este desarrollo.
1. CA B A
C =CA CB
B −1 ′
2. CA B
B =(CA ) =(CA )
Las matrices de rotación son matrices que multiplicadas por el vector de coordenadas del
punto, permiten realizar giros en torno a uno de los ejes.
II.1.6.1.1 Giro en ⃗x
Dejando fijo el eje x y sufriendo una variación los ejes y y z, la situación ante la que nos
encontramos es la que muestra la figura II.1.7
z
sin(α) = (II.1.3)
r
y′
cos(α − β) = cos(α) cos(β) + sin(α) sin(β) = r ê
z′
sin(α − β) = sin(α) cos(β) − cos(α) sin(β) = r ê
x′ 1 0 0 x
y′ = 0 cos(β) sin(β) y (II.1.6)
z′ 0 − sin(β) cos(β) z
II.1.6.1.2 Giro en ⃗y
Dejando fijo el eje y y sufriendo una variación los ejes x y z, la situación ante la que nos
encontramos es la que muestra la figura II.1.8.
II.1.6.1.3 Giro en ⃗z
Dejando fijo el eje z y sufriendo una variación los ejes x e y, la situación ante la que nos
encontramos es la que muestra la figura II.1.9
II.1.6. MATRICES DE CAMBIO DE COORDENADAS ENTRE SISTEMAS DE
REFERENCIA 51
Calculando las coordenadas ECEF a partir de los términos de las ecuaciones I.2.13 y I.2.14 y
considerando el eje X en el meridiano cero, se pueden calcular las transformaciones de coordena-
das LLA a ECEF y viceversa.
LLA −→ ECEF
Se calcula el radio de curvatura de la Tierra a una latitud φ dada a partir de los parámetros
del elipsoide:
a2
N= √ (II.1.9)
a2 cos2 (φ) + b2 sin2 (φ)
LLA ←− ECEF
Ahora se realizará la transformación contraria, pero primero se definirán algunos parámetros
necesarios 1 :
√
ε= X2ECEF + YECEF
2 (II.1.13)
a
rT = √ (II.1.15)
1 − e2 sin2 (φ)
Rotar -90° para colocar los ejes correctamente ya que el eje X está en la dirección −Z y el
eje Z en la dirección X
cos λ sin λ 0 cos φ 0 sin φ 0 0 1
CECEF
NED = − sin λ cos λ 0 ∗ 0 1 0 ∗ 0 1 0 (II.1.19)
0 0 1 − sin φ 0 cos φ −1 0 0
− cos λ sin φ − sin λ sin φ cos φ
CECEF
NED = − sin λ cos λ 0 (II.1.20)
− cos λ cos φ − sin λ cos φ − sin φ
Una vez calculada la matriz de cambio de ECEF a NED, la matriz de transformación de NED
a ECEF se consigue de manera inmediata transponiendo la matriz.
− cos λ sin φ − sin λ − cos λ cos φ
= − sin λ sin φ cos λ − sin λ cos φ
T
CNED ECEF
ECEF = CNEC (II.1.21)
cos φ 0 − sin φ
Para calcular la matriz de cambio de coordenadas, es necesario tener en cuenta la actitud del
avión: ángulo de pitch (P), ángulo de roll (R) y ángulo de heading (H). Después hay que realizar
los siguientes pasos,
II.1.6. MATRICES DE CAMBIO DE COORDENADAS ENTRE SISTEMAS DE
REFERENCIA 53
CNED
BODY =
1 0 0 cos P 0 sin P cos H sin H 0
0 cos R sin R ∗ 0 1 0 ∗ − sin H cos H 0 = (II.1.22)
0 − sin R cos R − sin P 0 cos P 0 0 1
cos P cos H cos P sin H − sin P
= sin R sin P cos H − cos R sin H sin H sin P sin R + cos R cos H cos P sin R (II.1.23)
cos R sin P cos H + sin R sin H sin H sin P cos R − sin R cos H cos P cos R
Una vez calculada la matriz de cambio de NED a BODY, la matriz de transformación de BODY
a NED se consigue de manera inmediata transponiendo la matriz.
T
CBODY NED
NED = CBODY =
cos P cos H sin R sin P cos H − cos R sin H cos R sin P cos H + sin R sin H
= cos P sin H sin H sin P sin R + cos R cos H sin H sin P cos R − sin R cos H (II.1.24)
− sin P cos P sin R cos P cos R
54 CAPÍTULO II.1. SISTEMAS DE REFERENCIA
Existen cuatro operaciones básicas que pueden realizarse en sistema de tres ejes, como las
que se van a utilizar en este proyecto: la rotación, la traslación, la reflexión y el escalado. En este
proyecto únicamente se va a “jugar”con los movimientos de traslación y rotación de los ejes.
La rotación consiste en girar los ejes con respecto a una referencia. En este caso, los giros se
realizan con respecto a alguno de los ejes del sistema, explicados en la sección II.1.6.1.
La traslación consiste en mover el origen de los ejes de coordenadas a lo largo de sus ejes. Para
ello, únicamente es necesario sumar la cantidad que se quiere trasladar en cada uno de los ejes.
x′ x + dx
y′ = y + d y (II.1.25)
z′ z + dz
Cuando se trabaja con matrices de rotación, éstas no permiten realizar traslaciones. Por es-
te motivo se va a recurrir al concepto de coordenadas y matrices homogéneas [ [Dep] [Vel]
y [vDH97]]. Si se utilizan las matrices homogéneas para representar los ejes de coordenadas,
las tres operaciones pueden ser tratadas con una multiplicación de matrices.
Las coordenadas homogéneas fueron desarrolladas por August Ferdinand Möbius en 1837. La
aplicación más extendida es la geometría proyectiva. Las coordenadas nos permiten representar un
punto en un espacio proyectivo. También pueden usarse como un sistema alternativo de coordena-
das para trabajar en el espacio euclídeo, pues éste puede verse como un subconjunto del espacio
proyectivo.
La idea de las coordenadas homogéneas, consiste en introducir en un sistema de tres coorde-
nadas, una cuarta coordenada (φ). Esta nueva coordenada representa un factor de escala, como
norma general, este valor suele ser 1 y en este caso las tres primeras componentes de las coorde-
nadas homogéneas y normales coinciden.
x xφ
y yφ
z = zφ (II.1.26)
φ φ
cos α 0 sin α 0
0 1 0 0
GYα =
− sin α
(II.1.30)
0 cos α 0
0 0 0 1
cos α − sin α 0 0
sin α cos α 0 0
GZα =
0
(II.1.31)
0 1 0
0 0 0 1
56 CAPÍTULO II.1. SISTEMAS DE REFERENCIA
Capı́tulo II.2
Algoritmos para el control de
los sensores EO
Resumen
57
58 CAPÍTULO II.2. ALGORITMOS PARA EL CONTROL DE LOS SENSORES EO
Na vez revisados los conceptos más importantes de navegación, definición de tipos de coor-
U denadas y cambios entre ellas, se pueden comenzar a estudiar los algoritmos que se quieren
implementar [DS09]. Antes de realizar esto, es necesario caracterizar la cámara que se va
a utilizar para el desarrollo de los algoritmos.
El sensor EO que porta el UAV está definido por el vector LOS (Line Of Sigth), formado por
el ángulo de azimut, el ángulo de elevación y la distancia al objetivo; y por el vector de traslación
del sensor EO con respecto al centro de gravedad del avión.
β ⇒ Ángulo de azimut (panoramic) de la línea de vista del sensor EO, respecto a los ejes
del cuerpo.
α ⇒ Ángulo de elevación (tilt) de la línea de vista del sensor EO, respecto a los ejes del
cuerpo.
Para el desarrollo de este proyecto, se ha tomado como decisión de diseño, que todos los
parámetros del sensor estén referenciados a los ejes del avión. En la figura II.2.1 pueden verse
estos conceptos.
Se van a desarrollar las ecuaciones que permiten calcular los ángulos de azimut y elevación
de la cámara, a partir de las coordenadas en ejes BODY. Para una mejor comprensión ver la figura
II.2.1.
Sustituyendo
√
Elevación = β = atan2(ZBODY , X2BODY + YBODY
2 ) (II.2.5)
60 CAPÍTULO II.2. ALGORITMOS PARA EL CONTROL DE LOS SENSORES EO
Como se puede ver en la imagen II.2.2, los datos de entrada al algoritmo son:
El cálculo de la posición geográfica del objetivo designado en el sensor EO del UAV, está
−−→
basado en el cálculo del vector TGT en el sistema de coordenadas ECEF, tal y como muestra la
figura II.2.3.
II.2.2. ALGORITMO PARA EL CÁLCULO DE LA POSICIÓN DE UN OBJETIVO
(GEO-LOCALIZACIÓN) 61
−−−−→
Paso 1: Definición del vector ACLLA . Este vector caracteriza la posición del avión en coor-
denadas LLA (ver II.1.2).
λ
−−−−→ AC
ACLLA = φAC (II.2.6)
hAC
−−−−→
Paso 2: Cambio de coordenadas del vector ACLLA a coordenadas ECEF (ver II.1.6.2 y II.1.3).
Con este cambio se obtiene el vector:
X
−−−−−→ AC_ECEF
ACECEF = YAC_ECEF (II.2.7)
ZAC_ECEF
−−−−−−→
Paso 3: Definición del vector LOSBODY en coordenadas BODY. Es el vector que une el cen-
tro del sistema BODY con el objetivo que está siendo visualizado y sobre el que se
medirá la distancia usando el telémetro láser. Observando la figura II.2.1 y aplicando
trigonometría se puede deducir:
−−−−−−→
Paso 4: Trasladar el origen del vector LOSBODY al centro de gravedad del avión (centro de
−−−−−−→
coordenadas de los ejes BODY). Para ello, basta con restar al vector LOSBODY , el
−−−−→
vector de traslación del sensor EO (TEO_CG ).
XLOS_BODY XLOS_BODY XEO_CG
−−−−−−−−−−−→ −−−−→
LOSLOCAL_BODY = YLOS_BODY −TEO_CG = YLOS_BODY − YEO_CG
ZLOS_BODY ZLOS_BODY ZEO_CG
(II.2.12)
−−−−−−−−−−−→
Paso 5: Transformar el vector LOSLOCAL_BODY de coordenadas BODY, a coordenadas LO-
CALES (coordenadas ECEF referidas al punto donde se encuentra el avión). Para
realizar este cambio, es necesario el uso de las matrices de cambio CBODY NED
NED y CLOCAL
definidas en las secciones II.1.6.4 y II.1.6.3. Aplicando las matrices se obtiene el
−−−−−−−→
vector LOSLOCAL .
X_LOS
−−−−−−−→ BODY −−−−−−−−−−→
LOCAL
LOSLOCAL = CNED
LOCAL CNED LOSLOCAL_BODY =
Y_LOSLOCAL
Z_LOSLOCAL
(II.2.13)
−−−−−→
Paso 6: Calcular el vector TGT en coordenadas ECEF. El vector TGTECEF es el que contiene
la posición del objetivo en coordenadas ECEF (ver II.1.2). Para calcularlo, basta con
−−−−−→ −−−−−−−→
sumar los vectores ACECEF y LOSLOCAL
X_TGTECEF
−−−−−→ −−−−−→ −−−−−−−→
TGTECEF = ACECEF + LOSLOCAL = Y_TGTECEF (II.2.14)
Z_TGTECEF
−−−−−→
Paso 7: Calcular las coordenadas LLA a partir del vector TGTECEF . Para ello, es necesario
aplicar las fórmulas desarrolladas en la sección II.1.6.2.
√
ε = X2ECEF + YECEF2 ; ζ = atan2(a ∗ ZECEF , bε); rT = √ a 2
1−e2 sin (φ)
e2 a2 sin3 (ζ)
LatitudTGT = φTGT = atan2(ZECEF + b ,ε − e2 a cos3 (ζ)) (II.2.16)
ε
AltitudTGT = hTGT = cos ϕ − rT (II.2.17)
II.2.3. ALGORITMO PARA EL APUNTAMIENTO DEL SENSOR EO A UN OBJETIVO
(GEO-APUNTAMIENTO) 63
−−→
El apuntamiento del sensor EO, está basado en el cálculo del vector LOS en el sistema de
coordenadas BODY. A partir de él se calculan los ángulos de elevación (α, Tilt) y azimut (β,
Panoramic) del sensor (ver II.2.3), que establecen la actitud de la cámara.
Los datos de entrada al algoritmo son:
−−−−→
Paso 2: Definición del vector TGTLLA . Este vector caracteriza la posición del objetivo en coor-
denadas LLA, definidas en la sección II.1.2.
λTGT
−−−−→
TGTLLA = φTGT (II.2.19)
hTGT
64 CAPÍTULO II.2. ALGORITMOS PARA EL CONTROL DE LOS SENSORES EO
−−−−→ −−−−→
Paso 3: Cambio de coordenadas de los vectores ACLLA y TGTLLA a coordenadas ECEF (ver
II.1.6.2 y II.1.3). Con este cambio se consiguen los vectores:
XAC_ECEF XTGT _ECEF
−−−−−→ −−−−−→
ACECEF = YAC_ECEF TGTECEF = YTGT _ECEF (II.2.20)
ZAC_ECEF ZTGT _ECEF
−−→
Paso 4: Cálculo del vector LOS en coordenadas ECEF locales, a partir de ahora, coordenadas
−−−−−−−→
LOCALES. El vector LOSLOCAL une el centro del sistema LOS con el objetivo que
está siendo visualizado y sobre el que se medirá la distancia usando el telémetro láser.
Este vector sólo tiene componente según el eje X del sistema de coordenadas LOS y
su módulo es igual a la distancia AC-TGT (|LOS|) medida por el telémetro láser.
Paso 6: Es necesario desplazar el centro de los ejes BODY, del centro de gravedad a la posi-
−−−−−−→
ción de la cámara. Para ello, basta con sumar al vector LOSBODY al vector de trasla-
−−−−→
ción del sensor EO (TEO_CG ).
X X X
−−→ LOS_BODY −−−−→ LOS_BODY EO_CG
LOS = YLOS_BODY + TEO_CG = YLOS_BODY YEO_CG (II.2.23)
ZLOS_BODY ZLOS_BODY ZEO_CG
−−→
Paso 7: Cálculo de los ángulos de azimut y elevación a partir del vector LOS.
√
Elevación = β = atan2(ZLOS_BODY , X2LOS_BODY + YLOS_BODY
2 ) (II.2.25)
Capı́tulo II.3
Proyección cónica conforme de
Lambert
Resumen
En este capítulo, se explica la proyección cónica conforme de Lambert, que es una for-
ma de representación de la esfera terrestre. Esta proyección permite convertir un punto
representado en coordenadas cartesianas, a su representación en coordenadas LLA, y
viceversa.
65
66 CAPÍTULO II.3. PROYECCIÓN CÓNICA CONFORME DE LAMBERT
E sde los tiempos antiguos, los humanos conocen la forma esférica y no plana del globo
D terrestre. Si la tierra fuera plana, la cartografía sería mucho más sencilla porque no sería
necesaria la utilización de las proyecciones.
La representación cartográfica del globo terrestre, ya sea considerado como una esfera o como
un elipsoide, es un problema; ya que no permite representar toda la superficie del globo sin ser
deformada o sin que ésta sea una representación fiel. Esta representación se llama proyección
[ [FC01] y [P.S87]].
Una proyección es una función que relaciona las coordenadas de un punto en una superficie
curva (normalmente una esfera o un elipsoide), con las coordenadas del punto en un plano. La pro-
yección puede ser establecida por análisis computacional o por construcción geométrica, siendo
esta última forma menos común.
Todas la proyecciones que se han desarrollado conllevan una distorsión de una o varias propie-
dades espaciales del globo. Dependiendo de las propiedades que no se deseen distorsionar, fijarán
la proyección que se deba utilizar. En la figura (II.3.1) se puede ver el ejemplo de una proyección.
Las cinco características susceptibles de ser distorsionadas en la proyección del globo son:
forma, distancia, dirección, escala y área. Ninguna proyección conserva más de una propiedad
de las anteriores, en porciones grandes de la tierra. Esto no se debe a la poca eficiencia de la
proyección, si no a la imposibilidad de ser realizado. Los tipos de proyecciones de acuerdo a estas
cinco características son:
Conforme o Ortomórfica: esta proyección mantiene la forma local (áreas pequeñas), cuando la
escala del mapa en cualquier punto es la misma en cualquier dirección. En estas proyeccio-
nes, los meridianos y paralelos se interseccionan con los ángulos correctos.
Equidistante: esta proyección preserva las distancias, únicamente, desde el centro de la proyec-
ción a todos los lugares de ésta. Los mapas, únicamente, se describen como equidistantes
cuando la separación entre paralelos es uniforme. No hay ninguna proyección que sea capaz
de mantener las distancias desde cualquier punto del mapa.
Azimutal: esta proyección preserva la dirección cuando los azimuts son representados correcta-
mente en todas las direcciones.
Ahora es necesario escoger el tipo de proyección más adecuado a la zona que se quiere tratar.
Estas proyecciones pueden dividirse en:
Proyecciones geodésicas: son proyecciones en las que la esfericidad terrestre repercute en:
la representación de las coordenadas geográficas de un punto, las superficies, los ángulos
y las distancias. Dentro de este grupo, las proyecciones pueden clasificarse en función de
muchos factores. En este documento, se ha decidido utilizar la clasificación en función de
la forma geométrica utilizada para la transformación del globo terráqueo a un plano:
• Proyecciones cilíndricas
• Proyecciones cónicas
• Proyecciones azimutal
En la figura II.3.2 se pueden ver tres ejemplos, uno de cada tipo de proyección.
En esencia, la proyección superpone un cono sobre la esfera de la Tierra, con dos paralelos de
referencia secantes al globo e intersecándolo. Esto minimiza la distorsión producida al proyectar
una superficie tridimensional en una bidimensional. La distorsión es mínima a lo largo de los
paralelos de referencia, y se incrementa fuera de los paralelos elegidos. Como el nombre lo indica,
esta proyección es conforme.
Sobre la base de la proyección cónica simple, con dos meridianos de referencia, Lambert
ajustó matemáticamente la distancia ente paralelos para crear un mapa conforme. Como los meri-
dianos son líneas rectas y los paralelos arcos de círculo concéntricos, las diferentes hojas encajan
perfectamente.
Los pilotos utilizan estas cartas, debido a que una línea recta dibujada sobre una carta cuya
proyección es cónica conforme de Lambert, muestra la distancia verdadera entre puntos. Sin em-
bargo, los aviones deben volar rutas que son arcos de círculos máximos, para recorrer la distancia
más corta entre dos puntos de la superficie. En una carta de Lambert, estos puntos aparecen como
una línea curva, que debe ser calculada de forma separada, para asegurar la identificación de los
puntos intermedios correctos en la navegación.
Las características más importantes son:
Al ser una proyección conforme, los ángulos se conservan, es decir, los ángulos medidos en
la proyección, se corresponden con los ángulos en la superficie de referencia proyectada.
las fórmulas para calcular las coordenadas cartesianas a partir de las coordenadas LLA del
punto se muestran en la tabla II.3.1.
m1
θ = n(λ − λ0 ) F= (ntn
ρ = aFtn ρ0 = aFtn0
1)
ρ∗n m1 tn ln m1 −ln m2
k= a∗m
= m∗tn
n= ln t1 −ln t2
1
cos φ cos φ0 cos φ1 cos φ2
m= 1 m0 = 1 m1 = 1 m2 = 1
(1−e2 sin2 φ) 2 (1−e sin2 φ0 ) 2
2 (1−e sin2 φ1 ) 2
2 (1−e sin2 φ2 ) 2
2
π φ π φ0 π φ1 π φ2
tan 4 − 2 tan 4 − 2 tan 4 − 2 tan 4 − 2
t= 1 t0 = [ ]1 t1 = [ ]1 t2 = [ ]1
(1−e sin φ) 2 (1−e sin φ0 ) 2 (1−e sin φ1 ) 2 (1−e sin φ2 ) 2
[(1+e sin φ) ] (1+e sin φ0 ) (1+e sin φ1 ) (1+e sin φ2 )
Tabla II.3.1: Formulación para el cálculo de las coordenadas cartesianas a partir de las coordenadas
LLA.
x = ρ sin θ (II.3.1)
y = ρ0 − ρ sin θ (II.3.2)
70 CAPÍTULO II.3. PROYECCIÓN CÓNICA CONFORME DE LAMBERT
las fórmulas para calcular las coordenadas LLA a partir de las coordenadas cartesianas del
punto se muestran en la tabla II.3.2
m1
√
θ = arctan ρ0x−y F= (ntn
ρ0 = aFtn0 ρ= x2 + (ρ0 − y)2
1)
ρ∗n n
k = a∗m =m 1t
m∗tn
n = lnlnmt11 −ln m2
−ln t2
1
Si n es negativo, los signos de ρ, ρ0 ,x e y deben ser invertidos
cos φ0 cos φ1 cos φ2
m0 = 1 m1 = 1 m2 = 1
(1−e2 sin2 φ0 ) 2 (1−e2 sin2 φ1 ) 2 (1−e2 sin2 φ2 ) 2
√
n ρ
tan π
φ
− 20 tan π
φ
− 21 tan π
φ
− 22
t= aF
t0 = [
4
]1 t1 = [
4
]1 t2 = [
4
]1
(1−e sin φ0 ) 2 (1−e sin φ1 ) 2 (1−e sin φ2 ) 2
(1+e sin φ0 ) (1+e sin φ1 ) (1+e sin φ2 )
Tabla II.3.2: Formulación para el cálculo de las coordenadas LLA a partir de las coordenadas
cartesianas.
θ
longitud = λ = n + λ0 (II.3.3)
3. Calcular φn iterativamente hasta que la diferencia entre la latitud entre dos iteraciones sea
menor que un cierto valor. En este caso se ha establecido 0.000000001. ⇒
π
[ 1−e sin φ ] e2
latitud = φ = 2 − 2 arctan t 1+e sin φ (II.3.4)
Capı́tulo II.4
El módulo FSUIPC
Resumen
Uno de los objetivos del proyecto es integrar los algoritmos de geo-apuntamiento y geo-
localización en una plataforma de simulación. Esta integración permite comprobar de
manera visual el correcto funcionamiento de los mismos. La herramienta con la cual se
va a realizar la integración, es el programa Microsoft Flight Simulator.
Para integrar los algoritmos implementados en el programa Microsoft Flight Simulator, es
necesario utilizar el módulo FSUIPC (Flight Simulator Universal Inter-Process Communi-
cation) que permite modificar la visual del programa y ajustarla a nuestras necesidades.
A lo largo del capítulo se hace una breve introducción a la librería, las herramientas de
ayuda que proporciona, dónde obtener información adicional y cómo utilizarla en nuestro
programa.
71
72 CAPÍTULO II.4. EL MÓDULO FSUIPC
E
L
[FSU04d], [FSU04c] y [FSU04b]] está diseñado para comunicarse desde un programa ex-
terno con el programa Microsoft Flight Simulator (FS). El objetivo es escribir y leer en/de
offsets de memoria correspondientes a la posición del avión (latitud, longitud y altura) y la acti-
tud del avión (ángulos de pitch, heading y yaw). El módulo ofrece otras muchas funcionalidades,
como realizar ajustes en la meteorología, en el tráfico aéreo. . .
El módulo se puede utilizar con las versiones FS98, FS2000, FS2002 o FS2004 (este proyecto).
Con otras versiones, la compatibilidad puede no ser del 100 %. Su utilización está sujeta a una
licencia que ha de adquirirse y en este caso ha sido proporcionada por EADS.
El módulo FSUIPC es una SDK (Software Development Kit) desarrollada para utilizar con
distintos lenguajes; entre ellos, C++, en el que se han desarrollado los algoritmos de geo-
apuntamiento y geo-localización. Actualmente, se ha desarrollado una SDK fácil de utilizar y
con muchas herramientas para facilitar la labor del programador. Aun así, hay que saber interpre-
tar los resultados y el orden en que es necesario introducir los datos, para que el FS los interprete
correctamente.
II.4.1 FS-Interrogate
En la figura II.4.1 se muestran las variables y sus propiedades. En azul, están marcadas las que
se van a utilizar en este desarrollo. En la figura se indica: la dirección de memoria, el nombre, la
longitud, el tipo, si es de escritura, lectura o ambas, la expresión asociada y el modo de utilización.
En la figura II.4.2 se muestran las variables y el valor que toman en un instante determinado.
Se puede pedir que esté actualizando continuamente o en el instante que interese. En azul aparecen
las variables relevantes para este proyecto.
74 CAPÍTULO II.4. EL MÓDULO FSUIPC
La librería está diseñada para utilizarse con distintos lenguajes de programación, entre ellos
C++, que es el que se está utilizando en la implementación de la aplicación. Para utilizarla es nece-
sario incluir la librería FSUIPC_User.h y tener en el mismo directorio el fichero FSUIPC_User.lib.
En la figura II.4.3, se puede ver la estructura del proyecto que se está desarrollando. En rojo, están
marcadas las librerías correspondientes al módulo FSUIPC.
Es necesario conocer algunos valores importantes de la librería, como los offset de memoria
II.4.2. UTILIZACIÓN DEL MÓDULO FSUIPC 75
en los cuales se va a escribir o de los cuales se va a leer. Para conocer esto, la librería proporciona
un manual [FSU04b] donde se especifican los offset de cada una de las variables. También da una
breve descripción de la manera correcta de escribir los valores en memoria, para que el FS las
interprete correctamente. En la figura II.4.4 se muestran las variables que interesan.
76 CAPÍTULO II.4. EL MÓDULO FSUIPC
Figura II.4.4: Información de las variables del módulo FSUIPC que se van a utilizar.
II.4.2. UTILIZACIÓN DEL MÓDULO FSUIPC 77
Además del cambio de grados a FSUnits, es muy importante tener en cuenta que se están
manejando variables de 64 bits, con lo que es necesario manejar variables de tipo __int64 que
ofrece el lenguaje C++ [Str00], para realizar la escritura y lectura de las variables.
A continuación, se muestran las líneas de código necesarias para conectar la librería al FS,
escribir un valor de latitud en memoria y leer el valor de memoria.
78 CAPÍTULO II.4. EL MÓDULO FSUIPC
1 void connect ( ) {
2 BOOL f s R e s u l t ;
3 DWORD e r r o r C o d e ;
4
5 f s R e s u l t = FSUIPC_Open ( SIM_FS2K4 , &e r r o r C o d e ) ;
6 i f ( f s R e s u l t == FALSE ) {
7 p r i n t E r r o r ( errorCode ) ;
8 }
9 / / Number o f l i c e n c e
10 s t a t i c char chOurKey [ ] = " " ;
11
12 / / R e g i s t e r i n g FSUIPC
13 i f ( FSUIPC_Write ( 0 x8001 , 1 2 , chOurKey ,& e r r o r C o d e ) == FALSE ) {
14 p r i n t E r r o r ( errorCode ) ;
15 }
16 f s R e s u l t = FSUIPC_Process (& e r r o r C o d e ) ;
17 i f ( f s R e s u l t == FALSE ) {
18 p r i n t E r r o r ( errorCode ) ;
19 }
20 / / S e t t i n g S l e w mode . I s n e c e s a r y t o m o d i f y t h e memory .
21 short slew = 1;
22 f s R e s u l t = FSUIPC_Write (SLEW_MODE, s i z e o f ( s h o r t ) ,& slew ,& e r r o r C o d e ) ;
23 i f ( f s R e s u l t == FALSE ) {
24 p r i n t E r r o r ( errorCode ) ;
25 }
26 f s R e s u l t = FSUIPC_Write (SLEW_CONTROL, s i z e o f ( s h o r t ) ,& slew ,& e r r o r C o d e ) ;
27 i f ( f s R e s u l t == FALSE ) {
28 p r i n t E r r o r ( errorCode ) ;
29 }
30 }
31 void w r i t e L a t i t u d e ( double l a t i t u d e ){
32 BOOL f s R e s u l t ;
33 DWORD e r r o r C o d e ;
34 __int64 l a t = ( __int64 ) l a t i t u d e ;
35
36 f s R e s u l t = FSUIPC_Write (AC_LATITUDE_LOW , s i z e o f ( _ _ i n t 6 4 ) ,& l a t ,& e r r o r C o d e ) ;
37 i f ( f s R e s u l t == FALSE ) {
38 p r i n t E r r o r ( errorCode ) ;
39 }
40 f s R e s u l t = FSUIPC_Process (& e r r o r C o d e ) ;
41 i f ( f s R e s u l t == FALSE ) {
42 p r i n t E r r o r ( errorCode ) ;
43 }
44 }
45
46 void r e a d L a t i t u d e ( double l a t i t u d e ){
47 BOOL f s R e s u l t ;
48 DWORD e r r o r C o d e ;
49 __int64 l a t ;
50
51 f s R e s u l t = FSUIPC_Read (AC_LATITUDE_LOW , s i z e o f ( _ _ i n t 6 4 ) ,& l a t ,& e r r o r C o d e ) ;
52 i f ( f s R e s u l t == FALSE ) {
53 printFSUIPCError ( errorCode ) ;
54 }
55 f s R e s u l t = FSUIPC_Process (& e r r o r C o d e ) ;
56 i f ( f s R e s u l t == FALSE ) {
57 p r i n t E r r o r ( errorCode ) ;
58 }
59 p r i n t f ( " L a t i t u d e : %f : " , l a t ) ;
60 }
61 void c l o s e ( ) {
62 FSUIPC_Close ( ) ;
63 }
Capı́tulo II.5
Plan de pruebas
Resumen
79
80 CAPÍTULO II.5. PLAN DE PRUEBAS
O da implementación es necesario someterla a una batería de pruebas para cerciorarse del co-
T rrecto funcionamiento de la misma. Para ello, en esta ocasión se han planteado dos fases,
una primera en PC, para eliminar posibles errores de implementación y comprobar de ma-
nera analítica el correcto funcionamiento de los algoritmos implementados. Y una segunda fase
de integración con una herramienta de simulación para comprobar de manera visual el correcto
funcionamiento de los algoritmos. A continuación, se va a desarrollar en que ha consistido cada
una de las pruebas en las que consiste la batería de pruebas diseñada.
II.5.1 Pruebas en PC
Esta prueba consiste en comprobar que los cambios de coordenadas se están realizando de ma-
nera correcta. Se utilizan como base, los resultados obtenidos en el apartado anterior. Las pruebas
que se han realizado son las siguientes:
NED ∗ CECEF = I
1. CECEF NED
NED ∗ CBODY = I
2. CBODY NED
Esta prueba trata de verificar el correcto funcionamiento del cálculo de la actitud de la cámara.
Se van a realizar dos pruebas:
Con los resultados obtenidos en la prueba anterior, ahora se desea comprobar que a partir
de los ejes BODY del avión y suponiendo que la cámara se encuentra en el centro de gra-
vedad del mismo, el cálculo de los ángulos azimut y elevación es correcto. Con las mismas
premisas se desea comprobar la transformación contraria.
Para comprobarlo, basta con realizar los siguientes cambios de coordenadas: Coordenadas
BODY → Azimut-Elevación → Coordenadas BODY. Para que la prueba sea satisfactoria,
las coordenadas BODY iniciales han de coincidir con las calculadas al final de la cadena.
Partiendo como en el caso anterior de la premisa de que la cámara está situada en el centro
de gravedad, y teniendo en cuenta la característica de que los ejes NED coinciden con los
ejes BODY cuando el avión está en vuelo rectilíneo y hacia el norte (ver II.1.4), se va a
comprobar que los valores obtenidos de los ángulos de azimut y elevación son correctos.
Para realizar esta prueba se establece el valor de los ejes X, Y y Z en coordenadas NED; a
continuación, se realiza un cambio a coordenadas BODY por medio de la matriz CNED BODY , y
se calculan los ángulos de azimut y elevación de la cámara.
En la tabla se muestran los valores que se han probado y los resultados obtenidos.
82 CAPÍTULO II.5. PLAN DE PRUEBAS
Una vez comprobado el funcionamiento de cada una de las partes por separado, es necesario
probar todas las partes juntas en el algoritmo.
Para realizar esta prueba, es necesario realizarla con posiciones conocidas previamente, y así
conocer donde debe apuntar la cámara. Se fija la misma longitud y la misma latitud para el TGT y
el avión, y se realizan estas pruebas:
El avión está a una altitud mayor que el TGT. El ángulo de elevación ha de ser 90°.
El avión está a una altitud inferior que el TGT. El ángulo de elevación ha de ser -90°.
Para comprobar este algoritmo, se introducen los valores obtenidos en el test anterior como
entradas al algoritmo de geo-localización. El resultado ha de coincidir con los valores introducidos
como entrada en la Prueba 4 o tener un error menor de 1 %. Al igual que en el caso anterior, se
realiza el test para los dos casos posibles: que el avión se encuentre posicionado a una altura por
encima del objetivo y que se encuentre posicionado a una altura por debajo.
En esta prueba, se pretende ejecutar los algoritmos cíclicamente utilizando los datos de salida
de uno de ellos como entrada del siguiente. Así se comprueba que al final de la cadena, los resul-
tados obtenidos son los mismos que los introducidos al inicio de la misma, o con un error menor
de 1 %.
II.5.1. PRUEBAS EN PC 83
Esta prueba pretende detectar posibles problemas en los valores límite de los rangos de valores
que pueden tomar las distintas variables de entrada. Para comprobarlo, se ejecuta la prueba 5
para todas las posibles combinaciones de datos de entrada, y comprueba que no existía ningún
problema. Las variables sobre las que se realiza el barrido son,
Pitch: [-180°,180°]
Roll: [-180°,180°]
Heading: [-180°,180°]
Longitud: [-180°,180°]
Latitud: [-90°,90°]
Tilt: [-90°,90°]
Panoramic: [-180°,180°]
Para asegurar que en los extremos de los rangos no existe ningún problema, se realiza un
barrido de los ángulos de tilt y panoramic entre el máximo y el máximo-1°, y entre el mínimo y el
mínimo+1°, con saltos de 0.1° para todos los posibles valores. A continuación, se realiza la misma
prueba, entre los valores máximo-0.000001° y mínimo+0.000001°.
84 CAPÍTULO II.5. PLAN DE PRUEBAS
Para realizar las pruebas de esta sección, se han escogido objetivos reales que aparecen en el
programa Microsoft Flight Simulator. Las coordenadas y localización de los mismos pueden verse
en la tabla II.5.2 y su situación en la figura II.5.2. Si se observa donde están situados los puntos, se
puede ver que se han elegido puntos en cada uno de los cuadrantes en los que se divide la tierra.
Esto es así, porque durante el desarrollo se observó que podían existir problemas en los algoritmos
dependiendo de la posición LLA en la que estuviese el objetivo. Además, se ha escogido una
localización cercana al meridiano de Greenwich como ejemplo de caso extremo. La prueba dio
como resultado que no existe tal dependencia.
II.5.2. PRUEBAS DE INTEGRACIÓN EN EL BANCO DE AVIÓNICA 85
Tabla II.5.2: Objetivos que se han escogido para realizar las pruebas.
Figura II.5.2: Objetivos que se han escogido para realizar las pruebas.
Es importante destacar que el punto de inicio para todas las simulaciones es el aeropuerto de
86 CAPÍTULO II.5. PLAN DE PRUEBAS
El objetivo es realizar círculos con el avión alrededor de cada uno de los objetivos. Para ello, se
plantean las ecuaciones de una circunferencia, por simplicidad se trabaja con la representación en
polares, ver figura II.5.4. Una vez obtenidas las coordenadas cartesianas de la posición del avión,
es necesario obtener las coordenadas geodésicas o LLA asociadas. Este cambio de coordenadas
cartesianas a coordenadas geodésicas o LLA, se realiza mediante la proyección cónica conforme
de Lambert, ver II.3. Las coordenadas de la circunferencia se calculan tomando como centro el
origen (0,0), ya que la proyección cónica de Lambert se encarga de modificar el centro de la
circunferencia y posicionarlo en el TGT.
II.5.2. PRUEBAS DE INTEGRACIÓN EN EL BANCO DE AVIÓNICA 87
x = a + r cos t y = b + r sin t
dado el centro a,b, en nuestro caso 0, 0
y el radio r de la circunferencia.
Con los datos de la posición del TGT y del avión, la actitud del avión y la distancia de la
cámara al centro de gravedad: se ejecuta el algoritmo de geo-apuntamiento, del cual se obtiene el
ángulo de azimut y elevación de la cámara.
Es necesario introducir los valores obtenidos en las variables correspondientes del FS. Para
realizarlo, se extrapola el comportamiento de la cámara al comportamiento de la visual del avión.
En la tabla II.5.3 se pueden ver las correspondencias que son necesarias realizar.
Las tres coordenadas de traslación de la cámara con respecto al centro de gravedad del avión.
Las pruebas se realizan para distintos valores y combinaciones de las tres coordenadas de tras-
lación de la cámara con respecto al centro de gravedad del avión; y para distintos ángulos de pitch,
88 CAPÍTULO II.5. PLAN DE PRUEBAS
roll y heading. En el simulador, únicamente se aprecian las diferencias para las combinaciones de
los siguientes parámetros,
Los resultados de esta prueba, como se ha dicho anteriormente son visuales. Se han escogido
algunas capturas representativas de los resultados obtenidos y se muestran en la tabla II.5.5.
Al igual que se realizó para las pruebas en PC, ver II.5.1, es necesario comprobar que los dos
algoritmos funcionan. Se ejecuta el algoritmo de geo-apuntamiento, se realiza una lectura de los
datos del avión del FS y se ejecuta el algoritmo de geo-localización.
Para admitir la prueba como satisfactoria, al igual que en el caso de las pruebas en PC, la dife-
rencia entre el valor inicial y el valor final tiene que ser menor que un 1 %. Es importante destacar
que la prueba se ha realizado para todos las posibles posiciones del avión alrededor de la Torre
Eiffel; es decir, para todos los posibles ángulos de la circunferencia y los valores obtenidos han
sido siempre los mismos. En la tabla II.5.4, se puede observar que se cumplen las especificaciones
y por tanto los algoritmos funcionan correctamente.
1. Para calcular la posición del avión en el círculo alrededor de la Torre Eiffel, se hace un
barrido de ángulos a lo largo de toda la circunferencia entre 0 grados y 360 grados. La
solución propuesta es disminuir el salto del ángulo cuando se realiza el barrido.
II.5.2. PRUEBAS DE INTEGRACIÓN EN EL BANCO DE AVIÓNICA 89
2. El algoritmo puede ser demasiado lento, por lo que cabría la posibilidad de modificar la
implementación y sustituir las operaciones de coma flotante en operaciones de coma fija.
3. El FS recibe demasiado rápido los datos y no tiene tiempo suficiente para procesarlos y
refrescarse con los nuevos datos que llegan. Esto provoca la pérdida de algunos de ellos y
por eso se aprecia el efecto de que el avión avanza dando pequeños saltos.
Para averiguar el origen del problema, se ha decidido medir el tiempo de ejecución de las partes
importantes de la aplicación: los algoritmos, la interfaz con el módulo FSUIPC, los comandos
FSUIPC_Write y process. En la tabla II.5.5 se muestran los resultados obtenidos.
Tras analizar los resultados, se ha comprobado que el cuello de botella lo está causando la
ejecución del comando process. Este comando tarda mucho más tiempo en ejecutarse que el resto.
La primera medida adoptada para solucionar este problema, ha sido disminuir el salto en el barri-
do. Se ha adoptado esta solución porque es la más sencilla en cuanto a implementación y puede
solucionar el problema. Se ha elegido un salto de 0.05° y así, se ha comprobado que se resuelve
el problema. Ahora bien, esta solución tiene el inconveniente de que al disminuir el salto, la velo-
cidad de giro disminuye, con lo que la visualización es mucho más lenta. Se ha valorado el hecho
de que la visualización sea más lenta frente al hecho de implementar la solución número 3 y se ha
decidido admitir la solución como válida.
El computador donde se ha realizado la prueba es un ordenador Hewlett-Packard, Compaq
Presario C700 Notebook PC, con un procesador Intel Celeron [email protected], con una memoria
RAM de 1GB, un sistema operativo de 32 bits y Windows Vista Home Basic.
PARTE III
T RATAMIENTODIGITAL DE
IMÁGENES UTILIZANDO
SVM S
93
U rante
los siguientes capítulos se va a plantear la fase 2 del proyecto. Tal y como se explicó
D en la introducción del documento (ver sección I.1.1 y I.1.2), esta fase consiste en la im-
plementación de un clasificador de las imágenes que captura la cámara del UAV. Para ello,
en primer lugar se realizará un preprocesado de las imágenes, para a continuación clasificarlas.
Una vez implementado el clasificador, se realizará un estudio de viabilidad de la posibilidad de
embarcar o no los algoritmos desarrollados.
Como ya se planteó en su momento, las imágenes capturadas por el UAV contienen una gran
cantidad de información; por lo que hay que tratarlas para obtener la información relevante y
clasificar los posibles objetivos que la formen.
Analicemos la siguiente situación, se han producido unas inundaciones en un pueblo y se
manda un UAV para inspeccionar la zona, en un determinado punto se captura una imagen de la
situación. Esa imagen es posible analizarla y obtener los posibles objetivos (personas, edificios,
fuegos, inundaciones, convoys,. . . ) que contenga y clasificar que tipo de objetivo es cada uno.
Esta información ayuda al operador de tierra a determinar la existencia o no de personas y en caso
afirmativo, tomar las acciones necesarias para el envío de ayuda para su rescate.
El motivo por el que este proceso se realiza utilizando un computador en lugar de ser realizado
por un humano, es que el ojo humano no es capaz de percibir determinados detalles a simple vista.
Por esto se ha determinado implementar un clasificador de imágenes como ayuda al operador de
tierra a determinar los objetivos existentes.
En la figura 6 se muestra un ejemplo de escenario de clasificación de una imagen.
Para realizar esta clasificación, se va a utilizar un método reconocido y utilizado en muchas
aplicaciones debido al potencial que posee. Este método se llama máquina de vectores soporte
(SVM). La SVM permite, dada una imagen, clasificar la muestra en la clase a la que pertenece,
entre todas las posibles opciones que tenemos en el escenario.
Debido al entorno donde el UAV ha de desarrollar sus misiones, las imágenes que capture van a
estar perturbadas por ruido. Además, debido al movimiento del avión sobre la superficie, al realizar
las capturas, las imágenes pueden ser capturadas con distintos ángulos; y por tanto, estarán giradas
o incluso desplazadas. Es necesario tener en cuenta estos factores durante la implementación del
sistema de clasificación. Además se a adoptado como decisión de diseño utilizar imágenes de
16x16 pixels para obtener resultados con mayor facilidad.
Para simular estas propiedades, las imágenes con las que se va a trabajar tendrán las siguientes
características:
Resolución 16x16.
Imágenes sin ruido, con ruido gaussiano y con ruido sal y pimienta.
Para finalizar es necesario precisar algunos puntos importantes en torno a esta fase del proyec-
to,
Durante el desarrollo de esta fase, se va a considerar que la imagen que se desea clasificar
ha sido aislada de la imagen capturada previamente.
La cámara que porta el UAV, puede capturar imágenes tanto en el espectro visible como
en el infrarrojo. Únicamente se va a tratar con imágenes del espectro visible, aunque el
tratamiento es igual, la fase de extracción de características de la muestra diferirá ya que la
naturaleza de la imagen no es la misma.
94
Los capítulos siguientes presentan el proceso que se ha seguido para la implementación del
clasificador de imágenes, la teoría sobre la que se soporta y los resultados obtenidos. Como base
del desarrollo de esta parte, se han utilizado investigaciones realizadas con anterioridad y conteni-
das en [Mar08] y [San].
Capı́tulo III.1
Extracción de características
(PCA)
Resumen
95
96 CAPÍTULO III.1. EXTRACCIÓN DE CARACTERÍSTICAS (PCA)
Na imagen digital se compone por lo general de NxM píxeles, siendo éstos, valores numé-
U ricos altos. Estos valores fijan las dimensiones del espacio de entrada del clasificador que
deseamos utilizar. La extracción de características nos permite reducir la dimensionalidad
de los objetos, manteniendo las características representativas de los mismos y así reducir el coste
computacional y el efecto de sobredimensionalidad que afecta a las máquinas de aprendizaje.
La apariencia de un objeto real 3D en una imagen 2D depende de la forma del objeto, de su
color, de su posición en la escena global, de sus propiedades reflectivas y de las características de
la iluminación de la escena y del sensor empleado para la captación de la misma.
Es importante recordar que en este subproyecto, el objetivo es implementar un clasificador
de reconocimiento de imágenes aéreas, con el objetivo de determinar la existencia de blancos
enemigos o amigos y estudiar la posibilidad de embarcar estos algoritmos en el avión. Debido
a los escenarios donde opera el UAV, es necesario minimizar el tiempo computacional, lo que
implica reducir la cantidad de información que manejan los algoritmos.
Las imágenes que recibe como entrada la máquina SVM para realizar el entrenamiento y la
evaluación de las muestras, pueden llegar de dos maneras: tratadas, es decir, con las características
más relevantes de las mismas, lo que permite reducir la cantidad de información proporcionada
a la SVM; o no tratadas (en crudo), lo que provoca un aumento de la información disponible
en la máquina, y esto no siempre es recomendable, ya que aumenta el coste computacional, la
dimensionalidad del problema y disminuye la capacidad de generalización de la máquina.
Las imágenes con las que se va a trabajar son de dimensiones 16x16 píxeles, y se pueden
considerar vectores de 256 componentes (ver figura III.1.1. Los inconvenientes que surgen al tener
una dimensión tan elevada, como ya se ha comentado anteriormente, son:
Paso 1 Para cada una de las imágenes de dimensiones N = nxn, hay que crear un vector
columna de dimensiones 1xN.
ϕ1i
→ ϕ2i
−
ê ϕi =
...
ϕN
i
Paso 2 Normalizar cada vector imagen con respecto a la media de cada uno de ellos.
fi = −
ϕ
→ →
ϕi − −
m (III.1.1)
−
→ f
ê ϕ1 ê ϕ1
−
→ f
ê ϕ2 ê ϕ2
−
→ f ( )
ê ϕ2 ê ϕ2 Φ= f1 ϕ
ϕ f2 ϕ
f3 . . . ϕ
fP
...
−
→ f
ê ϕP ê ϕP
Paso 6 El vector de componentes característicos A está formado por los Nc autovectores aso-
ciados a los autovalores de mayor valor. Donde Nc el número de características que
se desean tener en cuenta en el proceso, siempre dentro del rango [1,N], e ignorando
las componentes menos significativas, ya que implican una pérdida muy baja de in-
formación. El autovector asociado al autovalor de mayor valor es el que posee mayor
variación entre las imágenes.
Paso 7 Cada imagen normalizada con respecto a la media, ϕfi , será proyectada en el subespacio
PCA creado. Para ello se calcula el producto entre la imagen normalizada y la matriz
de componentes característicos.
fi
XPCA = AT ϕ (III.1.4)
Las columnas de XPCA contienen los datos y las filas correspondientes a cada una de
las componentes principales, donde las primeras filas poseen mayor varianza de los
datos y por lo tanto un autovalor de mayor valor.
El objetivo de PCA es transformar los datos originales, ya que están expresados en términos
de los patrones entre ellos y son las líneas que más describen las relaciones existentes entre los
datos. Con esta técnica, los datos finales que se obtienen, contienen únicamente la información
relevante. Así la máquina que más tarde los recibirá, usará las características más importantes del
conjunto de datos para generalizar y clasificar el resto de muestras con mayor precisión.
Capı́tulo III.2
Algoritmo Complex-Log
Mapping (CLM)
Resumen
99
100 CAPÍTULO III.2. ALGORITMO COMPLEX-LOG MAPPING (CLM)
E bido a la naturaleza de las imágenes que se van a tratar, éstas pueden ser capturadas rotadas
El algoritmo CLM, transforma una imagen binaria en coordenadas cartesianas a otra equiva-
lente en coordenadas polares exponenciales.
La figura III.2.1 muestra el principio del algoritmo CLM, el cual consiste en transformar una
imagen mxn en una imagen NxN en coordenadas Logaritmo Complejo. En la imagen III.2.1 el
pixel (x,y) corresponde al pixel (k,l), siendo la intensidad de la imagen original en el pixel (x,y),
la intensidad en el pixel (k,l).
Matemáticamente, se expresa:
υ
k=N (III.2.1)
2π
l = N logr Z (III.2.2)
x
υ = tan−1 ( ) (III.2.3)
y
√
Z = x + y2
2 (III.2.4)
r es el radio del área elegida para realizar el logaritmo complejo, y se debe elegir tan grande como
sea posible para incluir en el proceso la mayor cantidad de información posible de la imagen
original.
III.2.1. LOGARITMO COMPLEJO 101
Es importante destacar la necesidad de que la imagen esté centrada y las rotaciones y cam-
bios en el escalado se hagan con respecto al centro de la imagen, porque, en caso contrario las
propiedades del algoritmo se pueden ver alteradas. Este efecto se puede ver en la figura III.2.4.
Resumen
105
106 CAPÍTULO III.3. CLASIFICADORES MULTICLASE
número de objetivos entre los cuales se desea clasificar es más de dos, por lo que el clasi-
E
L
ficador que se ha de implementar ha de ser multiclase [ [DD] y [RK04], [ZFM]]; es decir,
un clasificador cuyos datos de entrenamiento pertenezcan a N clases diferentes y ante la
llegada de una muestra puedan clasificarla dentro de uno de esos N patrones.
Hay que tener en cuenta, que cuanto mayor es el número de clases que intervienen en el
entrenamiento, más complicado es realizar la clasificación. Como se ha explicado en la sección
I.2.5 la SVM resuelve el problema de clasificación binaria, para el cual es eficiente, precisa y
con una alta convergencia; pero cuando el escenario no es binario, surgen los problemas. Por este
motivo se han desarrollado los clasificadores multiclase.
Hay dos alternativas para implementar un clasificador multiclase: la formulación multiclase [
[CS00], [CS01] y [WW99]] y la implementación basada en clasificadores binarios. Es esta última,
la que se va a utilizar en este proyecto.
La implementación basada en clasificadores binarios, consiste en transformar el problema mul-
ticlase en N problemas binarios, entrenar N máquinas, clasificar las muestras nuevas y fusionar
las predicciones obtenidas de los N clasificadores binarios y así seleccionar una de las N clases
como respuesta al problema que se desea resolver.
A continuación se van a exponer los métodos más importantes de los clasificadores multiclase
y con los que se van a trabajar en el proyecto.
Es el método más simple para solucionar los problemas multiclase. Parte de la suposición de
que existen N clases en el problema.
El primer paso es dividir las N clases en dos grupos. El primer grupo contiene todas las mues-
tras pertenecientes a una clase, “el uno”, y las cuales son etiquetadas positivamente. El segundo
grupo, llamado “el otro”, contiene el resto de muestras combinadas y son etiquetados negativa-
mente. Este proceso se realiza para cada una de las N clases. A continuación, se realiza el entre-
namiento de los N clasificadores binarios obtenidos anteriormente. En el proceso de evaluación,
la nueva muestra se evalúa contra los N clasificadores binarios, para así poder determinar si per-
tenece a una clase o no. Este paso produce N resultados, uno por cada uno de los N clasificadores
binarios.
En el caso ideal, sólo un clasificador mostrará un resultado positivo y el resto resultados nega-
tivos. En la práctica esto no ocurre así, la mayoría de las veces, una muestra puede ser clasificada
positivamente en más de una clase. Esto hace que la función de decisión de la clase a la que
pertenece, sea aquella cuyo coste de clasificación sea el argumento que maximice la función de
clasificación Ci = arg maxi=1...k (wi x+bi ); es decir, aquella cuyo clasificador dé el valor máximo
entre todos. Este hecho puede provocar resultados ambiguos, el llamado falso positivo.
Uno de los problemas que tiene este método, es que los datos no están balanceados, ya que du-
rante el entrenamiento, el grupo “otros”contendrá muchos más datos que la clase “uno”. Además,
el tiempo de entrenamiento de este método es proporcional al número de clases que se tenga el
grupo de entrenamiento. Por contra, cada máquina posee toda la información de todas las muestras
para la fase de entrenamiento, lo que hace que la precisión del clasificador sea muy alta.
En la figura III.3.1 se ve representado gráficamente lo explicado anteriormente.
III.3.1. UNO VS OTROS - ONE VS ALL (OVA) 107
La idea de este método es obtener una predicción no ambigua para un conjunto de muestras
dadas y así reducir o eliminar los falsos positivos. El proceso consiste en añadir un segundo paso
al método OvA, aplicando clasificaciones discriminatorias binarias entre todas las parejas con
predicciones positivas. Para conseguir esto, para cada pareja se entrena el clasificador binario,
dando lugar a una predicción positiva (voto) para una de las dos clases. Finalmente, se realiza un
recuento de los votos de los clasificadores y la clase con mayor número de votos, representa la
decisión final.
El problema del “falso positivo”se elimina en el segundo paso. La decisión final no se toma
entre la clase verdadera y los “otros”, sino entre dos clases verdaderas. Este método tiene mayor
precisión que el anterior. En esencia, la etapa de eliminación del “Falso positivo”es una técnica de
reducción de ruido.
En la figura III.3.2 se ve representado gráficamente lo explicado anteriormente.
En el método “Uno único vs Todos”, después de obtener los resultados del método OvA,
éstos se introducen en la máquina correspondiente al clasificador binario entre cada una de las
dos clases verdaderas obtenidas. Estas máquinas se han entrenado con anterioridad para cada uno
de las combinaciones de clasificadores binarios posibles. Así se consiguen eliminar los múltiples
positivos. Ahora, se plantea generalizar más y eliminar el método OvA por completo, para ello se
ha desarrollado el método “Todos contra Todos”
Este método consiste, en entrenar N ∗ (N − 1)/2 clasificadores binarios paralelamente con
III.3.3. TODOS VS TODOS - ALL VS ALL (AVA) 109
dos de las N clases que forman el conjunto de entrenamiento, creando clasificadores para todas
las parejas de clases posibles.
Ante la llegada de una muestra nueva, cada clasificador otorga un voto positivo si pertenece a
la clase del clasificador. Una vez terminado este paso, se hace un recuento de votos y a la nueva
muestra se le asigna la clase con mayor número de votos.
En la realidad, se ha demostrado que el número de votos tiene grandes variaciones y que
la clase más popular no tiene porque obtener el mayor número de votos, ya que estos decrecen
gradualmente.
Como inconveniente, hay que destacar que la máquina es entrenada sobre un subconjunto que
incluye a dos de las clases, por lo que la función de decisión de la máquina, no considera la exis-
tencia de otros patrones de entrenamiento pertenecientes a clases distintas. Esto, hay autores, que
lo consideran una ventaja, ya que resuelve el problema de balanceo comentado con anterioridad,
puesto que la cantidad de datos presentes en cada clase está a la par.
Como desventaja, existe un problema de dimensionalidad, ya que el tamaño de la máquina de
clasificación crece de forma cuadrática (N ∗ (N − 1)/2).
En la figura III.3.3 se ve representado gráficamente lo explicado anteriormente.
Existen discrepancias entre los autores entendidos sobre cual de los métodos es el mejor. En
este proyecto se utilizará la metodología AvA o Todos vs Todos, puesto que es la metodología que
implementa la librería LIBSVM.
110 CAPÍTULO III.3. CLASIFICADORES MULTICLASE
Capı́tulo III.4
Imágenes empleadas
(COIL-100)
Resumen
111
112 CAPÍTULO III.4. IMÁGENES EMPLEADAS (COIL-100)
C imágenes (en el espectro normal y el infrarrojo) sobre el escenario al que está apuntando. El
objetivo es tratar las imágenes y realizar una clasificación del tipo de objetivo que contiene.
El avión que se ha escogido como referencia está en fase de desarrollo, por lo que la cámara
que se va a utilizar no está construida. Esto imposibilita la captura y utilización de imágenes
reales. Una de las posibles soluciones planteadas, es utilizar imágenes reales captadas por cámaras
similares y trabajar sobre ellas. Debido a la división para la que se está realizando el proyecto
dentro de EADS (Defence & Security), el acceso a esta información no está permitido.
Para salvar estos problemas y poder realizar el estudio, se han extrapolado las características
de las imágenes reales a una base de imágenes disponibles y se ha trabajado sobre ella.
Como se ha comentado, el conjunto de imágenes ha de ser suficientemente amplio y caracterís-
tico de las muestras que se desean clasificar, para así poder realizar un entrenamiento característico
y una clasificación lo más real posible.
La base de imágenes que se ha utilizado para realizar los procesos de entrenamiento, clasi-
ficación y validación, es la librería COIL-100 (Columbia Object Image Library). Ha sido creada
por el departamento CAVE (Columbia Automated Vision Enviroment) de la universidad de Co-
lumbia [ [Ima09] y [Uni09]], que se dedica a la investigación de sistemas avanzados de visión
computerizada.
La librería COIL está formada por 7200 imágenes en color, de 100 objetos reales (72 imágenes
por objeto), de apariencia, geometría, color y propiedades de reflexión variados (ver figura III.4.1).
La adquisición de las imágenes se ha realizado colocando el objeto sobre un fondo negro y un
motor giratorio, para poder realizar capturas de las imágenes a diferentes ángulos de rotación con
respecto al punto donde está colocada la cámara.
El sensor utilizado para la captura de las imágenes es un sensor de color, que mejora la dis-
criminación de los efectos de la apariencia que sufren los objetos, según la iluminación y la pose
que poseen en un determinado instante. Para realizar una captura lo más real posible es necesario
realizar diversas capturas, en distintas condiciones de luminosidad y orientación. Las imágenes
que se obtienen pueden utilizarse directamente para el entrenamiento, o someterlas a una fase
de preprocesado para adaptarlas a las necesidades del proyecto. En este caso, se va a realizar un
preprocesado previo a las imágenes.
La librería tal y como se ha explicado anteriormente, está compuesta de 7200 imágenes en co-
lor, con una resolución de 128x128, que pertenecen a 100 objetos distintos. En la imagen III.4.1 se
muestran los 100 objetos. De cada objeto se realizan 72 capturas, cada imagen tiene una diferencia
en el ángulo de rotación de 5°con respecto a la anterior. La imagen III.4.2 muestra 25 capturas de
un mismo objeto.
III.4.1. COLUMBIA OBJECT IMAGE LIBRARY (COIL)-100 113
Debido a la imposibilidad de obtener imágenes aéreas reales, es necesario extrapolar las ca-
racterísticas de éstas a las imágenes de la base de imágenes que se va a utilizar. Además, también
es necesario adaptar las imágenes de la COIL a los algoritmos que se les va a aplicar. Para realizar
todas estas trasformaciones, MATLAB (MATrix LABoratory) ofrece la Toolbox de procesado de
imagen [Too09] y que se puede consultar en la ayuda que proporciona MATLAB [Mat07].
El procesado se va a realizar en torno a la forma y la calidad de la imagen.
Se va a trabajar con dos tipos de ruido: gaussiano y sal y pimienta. Modificando los paráme-
tros de potencia y densidad de ruido, respectivamente, se variará el efecto del ruido sobre
las imágenes. Cuanto mayor sean estos valores, la imagen será cada vez más irreconocible.
Resumen
117
118 CAPÍTULO III.5. CLASIFICADORES DE IMÁGENES MEDIANTE SVM
N a vez explicados los fundamentos teóricos que se van a utilizar en el clasificador de imáge-
Baja resolución de las imágenes. Para reducir la cantidad de información disponible en las imá-
genes, se ha adoptado reducir la resolución de las imágenes a 16x16. La cámara del sensor
EO captura imágenes de resolución 1028x1028 píxeles.
Ángulo de captura de las imágenes. El algoritmo CLM, trasforma las imágenes capturadas a
una representación invariante a rotaciones y escalados. Esta trasformación permite clasificar
correctamente las imágenes, independientemente del ángulo de captura de la imagen.
Extracción de características. Si el número píxeles de las imágenes a tratar resulta muy grande,
es interesante reducir la carga y el tiempo computacional, la dimensionalidad del problema
y aumentar la generalización de la máquina de clasificación. Para conseguirlo se ha utilizado
la técnica de extracción de características PCA.
http://www.csie.ntu.edu.tw/∼cjlin/libsvm/
Estimación de probabilidades.
En este proyecto, se ha decidido utilizar la versión de la librería LIBSVM para MATLAB. Esta
decisión está basada en las grandes ventajas que proporciona MATLAB en el manejo de imágenes.
Como desventaja de la librería LIBSVM hay que señalar la poca documentación que proporciona.
Cuando ha sido necesaria información sobre ella se ha recurrido a internet y a [for10].
La librería LIBSVM implementa el método AvA en su versión de MATLAB como método
de clasificación multiclase. Según la FAQ de la librería, AvA y OvA tienen prestaciones muy
similares, pero AvA es mucho más simple y el tiempo de entrenamiento es mucho menor. Para
hacer estas afirmaciones se han basado en el artículo [HL].
120 CAPÍTULO III.5. CLASIFICADORES DE IMÁGENES MEDIANTE SVM
III.5.2 Arquitectura
3. Extracción de características.
En la figura III.5.1 está detallado el proceso completo y a continuación se van a explicar cada
uno de los pasos en detalle.
Paso 4 - Extracción de características. Una vez delimitadas cuales son las muestras de en-
trenamiento, es necesario aplicarles el algoritmo de extracción de características y
obtener la matriz de características. Esta matriz se multiplica por los datos de entre-
namiento, y el resultado son los datos de entrenamiento de la máquina.
Paso 6 - Test del sistema. Al igual que se realizó con las muestras de entrenamiento, se mul-
tiplican las muestras de test por la matriz de características, calculada como resultado
de aplicar PCA sobre las muestras de entrenamiento.
Se introducen las muestras de evaluación en la máquina entrenada en el paso anterior.
Para ello, se utiliza la función SVMTest de la librería LIBSVM.
Con los resultados obtenidos, se evalúa si la máquina generaliza de manera óptima al
clasificar correctamente las muestras no utilizadas en el entrenamiento.
122 CAPÍTULO III.5. CLASIFICADORES DE IMÁGENES MEDIANTE SVM
Esta técnica permite obtener una representación de las imágenes, que hace transparente a la
SVM el nivel de rotación y escalado de las mismas. Esta transformación puede ser utilizar como
técnica de reducción de características, aunque en este proyecto no se aplica de este modo (ver
III.2).
La técnica de CLM que se ha utilizado en este proyecto, compara dos tipos de coordenadas pa-
ra representar la imagen de NxN píxeles, coordenadas de módulo lineal y coordenadas de módulo
logarítmico.
En primer lugar, se representan los píxeles que forman la imagen. Para ello, se establecen N
puntos en los ejes de abscisas y ordenadas, son los que van a formar la rejilla de píxeles, con un
rango de valores entre [−N + 1,N − 1]. En la figura III.5.2, en la imagen superior izquierda, está
representada la rejilla con cuadrados azules. Éstos puntos se están representando en coordenadas
cartesianas. Los puntos correspondientes en coordenadas polares, están representados en la imagen
superior derecha de la figura III.5.2, mediante cuadrados azules. Éstos representan el módulo y la
fase correspondiente a cada punto anterior.
Ahora, se desea representar los puntos anteriores en módulo y fase. Para ello, se establece en
el eje de abscisas los posibles N módulos con rango [−N + 1,N − 1], y en el eje de ordenadas
las posibles N fases con rango [−π, π]. Los círculos concéntricos al origen de coordenadas que se
obtienen como salida, están representados en la figura III.5.2 en la imagen de la derecha, mediante
círculos azules. En esta misma imagen, se puede ver que los puntos con igual módulo se encuentran
representados en la misma circunferencia, mientras que los puntos con igual fase se encuentran en
la misma recta radial.
Si trasformamos los puntos anteriormente descritos de coordenadas cartesianas a coordenadas
polares, obtenemos los puntos representados en la imagen superior derecha de la figura III.5.2,
mediante cuadrados azules.
En la figura III.5.2 en la parte superior se representa lo explicado anteriormente para un módulo
lineal y en la misma figura, pero en la parte inferior, se representa lo mismo pero el módulo
es logarítmico; es decir, la distancia entre los valores que tienen la misma fase aumenta según
aumenta la distancia al origen.
III.5.3. COMPLEX-LOG MAPPING 123
Figura III.5.3: Ejemplo de la trasformación de una imagen en los espacios con módulo lineal y
logarítmico.
En este proyecto no se va a trabajar únicamente con imágenes rotadas. Por lo que las ventajas
de utilizar un módulo lineal frente a un módulo logarítmico son nulas.
III.5.3.2 Interpolación
La RAE posee diversas acepciones para la palabra interpolar. La acepción matemática es “Cal-
cular el valor aproximado de una magnitud en un intervalo, cuando se conocen algunos de los
valores que toma a uno y otro lado de dicho intervalo.”
La trasformación de coordenadas cartesianas a coordenadas polares resulta muy sencilla para
los ejes. Pero cuando se quiere asignar valores de intensidad a los píxeles en el espacio trasforma-
do, es necesaria la utilización de esta técnica. La interpolación permite encontrar los valores de
intensidad en el espacio transformado que corresponden a cada círculo azul de la imagen de la de-
recha de la figura III.5.3, realizando una ponderación de distancias a los cuadrados más cercanos a
su alrededor. Este proceso se realiza con cada valor de intensidad. En la figura III.5.4 se representa
un ejemplo de interpolación.
III.5.3. COMPLEX-LOG MAPPING 125
“linear”: se realiza una interpolación lineal a trozos con los cuatro píxeles que están alrede-
dor. Es la interpolación por defecto y la que se utiliza con mayor frecuencia, ya que es la con
la que se obtienen mejores resultados. Es el tipo de interpolación utilizada en este proyecto.
“cubic”: se realiza con polinomios en dos variables de tercer grado. Requiere que los puntos
estén equiespaciados tanto en el eje x, como en el eje y. Si esto no se cumple, es equivalente
a la interpolación spline.
126 CAPÍTULO III.5. CLASIFICADORES DE IMÁGENES MEDIANTE SVM
Tal y como se explicó en el capítulo III.1, es conveniente realizar una extracción de caracterís-
ticas de los datos. Esto permite minimizar la dimensionalidad del problema.
En este caso, las imágenes van a tener una resolución de 16x16 píxeles, es decir 256 valores de
intensidad. Si el número de imágenes disponibles es alto, la cantidad de información asociada es
mucho mayor. La reducción de la cantidad de información que se maneja y el coste computacional
son los motivos por los que se utilizan estos métodos.
La máquina SVM elegida es C-SVM, que es una SVM en la que se permite definir un pará-
metro de penalización C, que se impone a las muestras incorrectamente clasificadas.
Estos valores, γ y C, son calculados por medio del procedimiento validación cruzada. Este
método consiste en dividir los datos de entrenamiento en dos subconjuntos, el de entrenamiento
propiamente dicho y el de validación. Con el primer conjunto se entrena la máquina y con el
segundo se calculan los valores óptimos de los parámetros. Para finalizar con la llegada de nuevas
muestras, se comprueba la máquina.
III.5.5. ELECCIÓN DE LA FUNCIÓN NÚCLEO Y SUS PARÁMETROS 127
Escoger aquellos valores con los que la probabilidad de acierto del conjunto de va-
lidación sea mayor. Si la probabilidad de error es la misma, se escoge el valor que
proporcione menor número de vectores soporte.
128 CAPÍTULO III.5. CLASIFICADORES DE IMÁGENES MEDIANTE SVM
Capı́tulo III.6
Análisis de resultados
Resumen
En este capítulo se presentan y analizan los resultados obtenidos tras las diversas simu-
laciones realizadas para el algoritmo de clasificación de imágenes. Se quieren evaluar
las prestaciones que ofrecen las SVMs para el problema que se quiere tratar y las ven-
tajas e inconvenientes de utilizar el algoritmo Complex-Log en el proceso de tratamiento
de las imágenes utilizadas.
129
130 CAPÍTULO III.6. ANÁLISIS DE RESULTADOS
U namiento del mismo, así como obtener resultados para estudiar las prestaciones que ofrece
la implementación realizada. Ademas con las pruebas que se han planteado se desea co-
nocer las ventajas e inconvenientes de la utilización del algoritmo Complex-Log en el proceso de
tratamiento de las imágenes con las que se va a entrenar la máquina y con las que se va a evaluar.
Para realizar las pruebas, se han planteado distintos escenarios que son combinación de las
siguientes situaciones:
• Clasificador binario
• Clasificador multiclase
El primer paso del clasificador es realizar una normalización de los datos, para ello, en el dise-
ño inicial se han planteado tres tipos de normalización: media, media y varianza, y normalización
entre +1 y -1. Tras las primeras pruebas, se comprobó que el método de normalización más efecti-
vo para nuestro problema es normalizar en media y varianza todos los datos; por este motivo, todas
las simulaciones realizadas cuyos datos se muestran en este capítulo, utilizan esta normalización.
Debido al problema de dimensionalidad que tienen las SVMs, el cual ha sido comentado y
explicado a lo largo de la memoria, la resolución de las imágenes ha de ser reducida. Para ello
se ha decidido realizar las pruebas con imágenes con una resolución de 16x16 y transformadas a
escala de grises; y además aplicar el algoritmo PCA como método de extracción de características
que permite también reducir la dimensionalidad del problema. El algoritmo PCA se aplica en
todas las pruebas sobre las muestras de entrenamiento. Dependiendo del problema al que se hace
frente se han escogido unos valores u otros para el número de características. En cada pruebas se
explican detalladamente estos valores.
Las imágenes utilizadas para realizar estas pruebas son las proporcionadas por la librería
COIL-100, tal y como se ha venido haciendo a lo largo de la memoria.
En el caso de clasificación binaria, se han escogido dos pares de imágenes de las 100 que ofrece
la librería COIL-100 (ver figura III.4.1). Los pares de imágenes escogidas son: dos imágenes muy
similares, ver figura III.6.1 y dos imágenes distintas, ver figura III.6.2.
131
Para las pruebas realizadas para la clasificación multiclase, se utilizan 10 imágenes seleccio-
nadas aleatoriamente, de las 100 posibles que ofrece la librería COIL-100 (ver figura III.4.1).
A continuación, se indican otras decisiones de diseño adoptadas para la realización de las
pruebas:
Para evitar el efecto de que las imágenes escogidas sean muy parecidas o muy distintas para
el proceso de entrenamiento, y puedan alterar los resultados, se ha determinado realizar la
clasificación un número elevado de veces y hacer un promedio de los resultados obtenidos.
Esto evitará la dependencia que existe de los resultados con las imágenes elegidas durante
el proceso de separación en los grupos de entrenamiento y test.
Para las primeras pruebas, se han utilizado imágenes en crudo, es decir, sin añadirles ruido y
sin rotarlas, y por lo tanto, sin aplicar el algoritmo Complex-Log. Las simulaciones se han realizado
para un 50 % y para un 80 % de imágenes en el conjunto de entrenamiento del total de las imágenes
utilizadas para esta prueba. En estas primeras pruebas se ha aplicado el algoritmo PCA para todos
los posibles valores de número de características (de 1 a 256) dando saltos de 10 características en
10 características.
En las figuras III.6.3 y III.6.4 se muestran los resultados del clasificador binario.
En las dos imágenes superiores (III.6.3) se muestra la evolución del porcentaje del error que se
obtiene al clasificar las muestras de entrenamiento, test y el total de las muestras, para la máquina
que se ha obtenido tras el entrenamiento.
Por su parte, las imágenes inferiores (III.6.4) muestran la evolución, para cada número de
características, de los siguientes parámetros: número de vectores soporte (SV), C y γ.
Centrando la atención en las imágenes III.6.3, la imagen de la derecha muestra la evolución
del error para las dos imágenes similares III.6.1 y la imagen de la izquierda para las dos imágenes
distintas III.6.2.
De las dos imágenes III.6.3 se puede deducir:
Las pruebas se han realizado para que el 50 % y el 80 % de las muestras totales, formen el
conjunto de entrenamiento. En la imagen de la derecha se puede apreciar que cuanto mayor
es el número de imágenes que forman parte del conjunto de entrenamiento (80 %), mayor
es la cantidad de información durante esta fase. Esto provoca que el error de clasificación
disminuya considerablemente.
En estas imágenes se puede observar la evolución de los errores medios de los distintos
grupos evaluados: entrenamiento, test y total de muestras. Como es de esperar, el error
medio más bajo se consigue con las muestras de entrenamiento, ya que la máquina se ha
entrenado utilizando es conjunto. El error medio de test es mayor ya que son muestras
nuevas que se introducen para evaluar la capacidad de generalización de la máquina. El error
medio del total de las muestras se encuentra siempre entre medias del de entrenamiento y
test, ya que el número de errores que se producen para el conjunto de test, se compensa con
los producidos para el conjunto de entrenamiento.
Como se puede observar, cuando las imágenes son similares, el número de errores aumenta
frente al que se consigue cuando las muestras son distintas. Esto se debe a que la máquina
no es capaz de discernir correctamente cuando las imágenes son muy similares.
En las dos imágenes III.6.4 se puede ver la evolución de los vectores soporte, imagen de la
derecha, y la evolución de los parámetros C y γ óptimos, imagen de la izquierda. Estos parámetros
son característicos de la fase de entrenamiento de las SVMs. De las imágenes se puede deducir:
Figura III.6.3: Evolución del % del error para imágenes distintas y similares.
III.6.1. CLASIFICACIÓN DE IMÁGENES EN CRUDO
133
Cuanto mayor es la similitud de las muestras, se requiere un mayor número de SV. Esto
se debe a que la máquina necesita más información para poder discernir entre las distintas
clases, y así poder generalizar correctamente ante nuevas muestras.
Cuando las imágenes son similares y el número de características es muy pequeño se ne-
cesita un mayor número de vectores soporte. Esto se debe a que es necesario poseer mayor
cantidad de información de las imágenes de entrenamiento, y así entrenar la máquina para
poder clasificar correctamente las nuevas muestras. El hecho de aumentar el número de ca-
racterísticas hace que el nivel de información requerida en los vectores soporte disminuya,
y por tanto su número también.
La evolución de los parámetros C y γ queda representada por sus valores óptimos. Estas
variables representan el factor de penalización y del factor de varianza del núcleo que se
le aplica durante el entrenamiento de la máquina. Se puede ver, que tanto el C como el γ
necesario para imágenes distintas es prácticamente nulo, mientras que para las imágenes
similares es preciso aumentar los valores. En el caso de imágenes distintas estos valores son
muy pequeños ya que la máquina es capaz de discernir con mucha facilidad; en cambio,
cuando las imágenes son similares, el valor de C y γ aumenta para conseguir distinguir
mejor las muestras.
En el caso del clasificador multiclase, la elección aleatoria de las imágenes va a tener mucha
influencia sobre los resultados. Como se ha destacado al inicio del capítulo el número de imágenes
escogido es 10. El proceso de entrenamiento de la máquina y clasificación se realiza 10 veces para
evitar las posibles dependencias con las imágenes escogidas.
En las figuras III.6.5 y III.6.6 se pueden ver los resultados obtenidos para la clasificación
multiclase.
En la imagen III.6.5 se representa la evolución del error para un 50 % y un 80 % de las muestras
totales utilizadas para realizar el entrenamiento de la máquina. Las conclusiones que se pueden
inferir son muy parecidas a las concluidas para el caso del clasificador binario.
Al igual que en el caso binario, cuanto mayor es la cantidad de información (80 % o número
de características), menor es el valor de C y γ ya que la máquina posee más información y
es capaz de discernir entre las imágenes.
CAPÍTULO III.6. ANÁLISIS DE RESULTADOS
La imagen III.6.7 muestra los resultados obtenidos para la clasificación de imágenes con ruido.
Los tipos de ruido considerados para las pruebas son: gaussiano y sal y pimienta.
Al igual que en las primeras pruebas aquí también se utiliza el algoritmo PCA para realizar
extracción de características y así reducir la dimensionalidad del problema. En esta ocasión las
pruebas se han centrado en 4 valores específicos de número de características, 11, 51, 101 y 151.
Con estos valores se podrá apreciar la evolución las variables a analizar a lo largo de todo el posible
conjunto de valores de número de características.
Partiendo de los resultados obtenidos en las secciones III.6.1.1 y III.6.1.2, se concluye:
El objetivo de esta tercera fase de pruebas es comprobar la robusted de la fase 1 del algoritmo
Complex-Log. Se quiere comprobar si con su utilización, es posible prescindir de la presencia de
imágenes rotadas en el conjunto de entrenamiento. Estas pruebas vienen propiciadas por la difi-
cultad de conseguir una amplia base de datos de imágenes de los objetivos que se desea clasificar,
debido a los entornos en los que opera un UAV.
Para realizar este estudio, se han simulado los siguientes escenarios para los dos pares de imá-
genes, similares y distintas y para el clasificador multiclase. En todas las pruebas se ha considerado
siempre el mismo conjunto de test, así el análisis de resultados se ha podido realizar en igualdad
de condiciones para todos los escenarios propuestos.
La librería COIL-100 (III.4.1) proporciona 72 muestras de cada una de las imágenes. Se realiza
una rotación a todas las muestras de una misma imagen, el ángulo de rotación aplicado es cada uno
de los ángulos comprendidos entre 0° y 360°, en saltos de 20°. El conjunto de test está formado
por el 20 % de cada uno de estos grupos de muestras rotadas. Dependiendo del escenario que se
esté estudiando, se aplicará a las muestras de cada uno de los conjuntos la fase 1 del algoritmo
Complex-Log o no.
A priori, parece razonable, que el Escenario 1 sea el peor de todos, debido a que en el conjunto
de entrenamiento no es muy representativo de las muestras de test. En el caso del Escenario 2
según aumenten los saltos de los ángulos utilizados para formar el conjunto de entrenamiento, se
tenderá al Escenario 1 y por tanto los resultados empeorarán considerablemente.
En el caso de los escenarios 3 y 4, los resultados deberían mejorar. El hecho de utilizar la
fase 1 del algoritmo Complex-Log, hace que tanto las muestras de entrenamiento como las de
test, sean una representación invariante a rotaciones. Esto debe permitir que aunque el conjunto de
entrenamiento no posea muestras rotadas (caso propuesto en el escenario 3), debido a la utilización
de la fase 1 del algoritmo Complex-Log, la máquina ha de ser capaz de clasificar las muestras de
test correctamente.
A continuación, se muestran los resultados obtenidos para cada uno de los escenarios propues-
tos.
140 CAPÍTULO III.6. ANÁLISIS DE RESULTADOS
En esta sección se van a exponer los resultados obtenidos para el clasificador binario y los
4 escenarios propuestos. Para estas pruebas se han utilizado las imágenes III.6.1 y III.6.2, para
contemplar el caso de que las imágenes fuesen muy similares y el caso en el que las imágenes
fuesen distintas.
En las figuras III.6.8, III.6.9 y III.6.10, se puede ver la evolución de los errores de entrena-
miento y test para cada uno de los escenarios analizados. Todos estos resultados, como ya se ha
comentado, han sido obtenidos utilizando un clasificador binario. Es importante resaltar, que para
este tipo de clasificadores la peor clasificación se obtiene cuando el error es de un 50 %.
En la imagen III.6.8, se comparan los casos en los que las imágenes de entrenamiento no
están giradas y las de test sí. Mientras en el Escenario 1 no se utiliza la fase 1 del algoritmo de
Complex-Log, en el Escenario 3 sí. Como se puede observar la clasificación de imágenes distintas
es mucho mejor que la clasificación de imágenes similares. Los resultados obtenidos utilizando la
fase 1 del algoritmo Complex-Log y sin utilizarlo son muy parecidos, dependiendo del número de
caracteristicas, hay ciertos valores en los que la clasificación es mejor y otros en los que no.
En la figura III.6.11, se puede ver que el número de vectores soporte utilizado cuando se
aplica a las imágenes la fase 1 del algoritmo Complex-Log es menor que cuando no se utiliza. Esto
proporciona mayor rapidez al algoritmo de clasificación.
Los resultados del Escenario 1 eran los esperados, ya que al no tener ninguna referencia en
el conjunto de entrenamiento sobre las imágenes rotadas, la clasificación del conjunto de test no
podía ser muy buena. En el caso del Escenario 3 se esperaba que con la utilización del algoritmo
III.2 mejorara la clasificación y por tanto no fuese necesaria la presencia de las muestras rotadas
en el conjunto de entrenamiento.
Sobre los resultados obtenidos para los escenarios 2 y 4, se sigue observando que el hecho
de que las imágenes sean diferentes o similares afecta mucho en la clasificación, siendo mucho
mejores los resultados obtenidos cuando las imágenes son distintas. Además en este caso si se
comparan las imágenes III.6.9 y III.6.10 se puede ver que cuando el número de muestras giradas
aumenta en el conjunto de entrenamiento (saltos de 40°), el error de clasificación disminuye. En
cambio en el caso de que el conjunto de entrenamiento posea menos muestras giradas (saltos de
160°), la clasificación empeora tanto para imágenes similares como para imágenes diferentes y se
aplique la fase 1 del algoritmo Complex-Log o no.
En cuanto a los vectores soporte (SV), destacan el aumento de SV en el caso de imágenes
similares y realizando saltos de 40°de rotación en las muestras de entrenamiento. En el resto de
los casos no se aprecian diferencias notables entre los distintos escenarios propuestos.
III.6.3. CLASIFICACIÓN DE IMÁGENES ROTADAS 141
Figura III.6.9: Resultados obtenidos en los escenarios 2 y 4 con saltos de 40° de rotación.
Figura III.6.10: Resultados obtenidos en los escenarios 2 y 4 con saltos de 160° de rotación.
142 CAPÍTULO III.6. ANÁLISIS DE RESULTADOS
Figura III.6.12: Evolución de los SV en los escenarios 2 y 4 con saltos de 40° y 160° de rotación.
Tras el análisis realizado, se ha podido comprobar que no se han obtenido los resultados espe-
rados. La aplicación de la fase 1 del algoritmo III.2 no mejora las prestaciones de la máquina de
clasificación. Una vez conseguidos estos resultados, y analizando el algoritmo implementado, se
puede inferir que la segunda fase del mismo, podría mejorar las prestaciones de la máquina. Si se
observa la imagen III.5.3, la rotación de la imagen produce una representación desplazada frente
a la representación de la imagen sin girar. La segunda fase del algoritmo Complex-Log consiste
en realizar la FFT, la cual corrige este desplazamiento, además del producido por el escalado de
las imágenes. Dada la naturaleza de las imágenes en este problema parece razonable pensar que la
inclusión de la fase 2 ayudaría a la máquina a clasificar con mayor precisión.
Tras los resultados obtenidos anteriormente, se ha determinado aplicar las dos fases del algo-
ritmo Complex-Log y comprobar si los resultados obtenidos se ajustan a los resultados esperados.
Para estas pruebas se han considerado los mismos 4 escenarios y las mismas condiciones para los
conjuntos de entrenamiento y test.
III.6.3. CLASIFICACIÓN DE IMÁGENES ROTADAS 143
En la figura III.6.13, se muestra una comparación de los resultados obtenidos para el escenario
3, utilizando la fase 1 del algoritmo Complex-Log y el algoritmo completo. Se puede ver que la
mejora de los resultados es notable y que tal y como se predecía, la fase 2 es necesaria para realizar
la clasificación de imágenes rotadas.
Figura III.6.13: Resultados obtenidos en el escenario 3 utilizando la fase 1 del algoritmo Complex-
Log y el algoritmo completo.
Después de comprobar la necesidad de aplicar las dos fases del algoritmo Complex-Log, se
han realizado las mismas simulaciones que en la sección III.6.3.1. Con los resultados obtenidos
se ha comprobado que la FFT es necesaria para que la máquina reconozca las imágenes rotadas.
Con esta nueva aportación se obtienen los resultados esperados que se comentaron en la sección
III.6.3.1.
Como se ha comentado durante el capítulo, los escenarios 1 y 2 eran de los que se esperaban
peores resultados, ya que al no aplicar el algoritmo Complex-Log, la SVM no es capaz de reconocer
las imágenes. Es cierto, que en el Escenario 2, cuando se aumenta el número de muestras rotadas
que participan en la fase de entrenamiento, la SVM es capaz de clasificar mejor, pero aun así los
porcentajes que se obtienen son altos.
En los escenarios 3 y 4, ya se añade el algoritmo Complex-Log, con este algoritmo se obtiene
una representación de las imágenes invariantes a rotaciones y escalados. Estas representaciones
son utilizadas tanto en el conjunto de entrenamiento como en el de test, lo que hace que la máquina
aunque no posea imágenes rotadas en distintos ángulos sea capaz de clasificarlas correctamente.
Esto es lo que se puede ver en las figuras III.6.14, III.6.15 y III.6.16.
En cuanto a los vectores soporte, se puede ver en las figuras III.6.17 y III.6.18 que disminuyen
con respecto a los obtenidos sin aplicar la FFT, lo cual es lógico, ya que la cantidad de información
que necesita la SVM para discriminar entre las clases que intervienen en el problema es menor.
Con los resultados obtenidos, queda demostrada la efectividad de incorporar el algoritmo
Complex-Log al proceso de clasificación. Esta incorporación permite prescindir de imágenes en el
conjunto de entrenamiento y realizar una clasificación con un porcentaje de aciertos alto. Además
también se ha concluido la necesidad de utilizar los dos pasos del algoritmo para que la clasifica-
ción sea realizada de manera satisfactoria.
144 CAPÍTULO III.6. ANÁLISIS DE RESULTADOS
Figura III.6.15: Resultados obtenidos en los escenarios 2 y 4 con saltos de 40° de rotación.
Figura III.6.16: Resultados obtenidos en los escenarios 2 y 4 con saltos de 160° de rotación.
III.6.3. CLASIFICACIÓN DE IMÁGENES ROTADAS 145
Figura III.6.18: Evolución de los SV en los escenarios 2 y 4 con saltos de 40° y 160° de rotación.
146 CAPÍTULO III.6. ANÁLISIS DE RESULTADOS
PARTE IV
UN PROYECTO
AERONÁUTICO.
Capı́tulo IV.1
Ciclo de vida de un proyecto de
software aeronáutico
Resumen
149
CAPÍTULO IV.1. CICLO DE VIDA DE UN PROYECTO DE SOFTWARE
150 AERONÁUTICO
proyecto se define como un esfuerzo temporal bajo las premisas de crear un producto o
U
N
servicio único. Para ello, es necesario aplicar los conocimientos, destrezas, herramientas y
técnicas a las actividades del proyecto y además de realizar una correcta gestión del mismo.
Todos estos conocimientos se aplican por medio del ciclo de vida del proyecto. El ciclo de vida es
un proceso iterativo, en continua realimentación del resto de fases para la detección de fallos en
las etapas más tempranas.
Como en todos proyectos, en ingeniería, también se establece un ciclo del vida para los pro-
yectos. Esto permite determinar desde la fase inicial hasta la final, todos los pasos que es necesario
seguir. Estos modelos surgen por el hecho de que rectificar en las fases avanzadas es muy costoso
y es preferible detectar cuanto antes los posibles fallos existentes en los desarrollos.
El SDF, tal y como su nombre indica, es un framework, lo que significa que no es un plan de
proyecto completo, sino que da ciertas consideraciones sobre cómo hay que proceder. De echo
da cierta flexibilidad para adaptarlo a las necesidades de cada proyecto. El documento SDF cubre
los niveles superiores de los sistemas del proceso de ingeniería, aunque también está integrada la
estructura y se tienen en cuenta las interfaces con los niveles inferiores.
En los proyectos de ingeniería de software el modelo adoptado para realizar los desarrollos es
el llamado, modelo en V. Este modelo está representado en las figuras IV.1.2.
151
En la figura IV.1.2 se muestran las distintas fases por las que ha de pasar un proyecto, además
en la figura también están representados los distintos documentos que es necesario pasar al nivel
inferior o superior.
El desarrollo de un proyecto puede dividirse en tres partes: la fase de diseño (pata izquierda
de la V), fase de desarrollo y pruebas unitarias (pico inferior de la V) y fase de integración (pata
derecha de la V). Las tres fases están en continua realimentación, tal y como se puede ver en la
figura.
En este proyecto, se parte unos requisitos dados (fase de diseño) y se ocupa del diseño de
la aplicación software, la implementación, las pruebas unitarias y la integración en el banco de
pruebas, lo que correspondería con el nivel L2 o nivel de equipo en la imagen IV.1.2.
Todo proyecto comienza su desarrollo desde el nivel más alto del sistema, el avión. Una vez
aprobado el TLRD (Top Level Requirements Design), que contiene los requisitos de alto nivel de la
plataforma. En el siguiente paso, se especifica cada uno de los sistemas que compondrán el avión.
Estas especificaciones quedan reflejadas en los documentos SDD/SDR (System Description Docu-
ment/System Requirements Document). Estos documentos son pasados a los niveles inferiores, los
cuales los analizan y realizan el diseño de las aplicaciones software que es necesario implementar
o de los diseños hardware que hay que realizar. Una vez especificadas las aplicaciones software
o el hardware necesarios, comienza la fase de implementación y desarrollo. Es fundamental que
los requisitos estén correctamente redactados y comprendidos por las partes implicadas, especifi-
cadores, desarrolladores y testeadores, ya que son contra ellos, contra los que se va a realizar el
proceso de verificación.
Una vez realizadas las implementaciones y desarrollos, tanto software como hardware, los
desarrolladores entregan la implementación (release) a los ingenieros de test. Aquí el proyecto se
encuentra al principio de la parte inferior de la pata derecha de la V.
Para cada nivel de esta nueva fase, se diseña una batería de pruebas específica. En primer lugar
se realizan pruebas unitarias para validar que se cumplen todos los requisitos especificados. Hay
que puntualizar, que el programador previamente a la entrega de la release ha tenido que realizar
sus propias pruebas para verificar el correcto funcionamiento de la implementación.
Las baterías de pruebas se realizan contra los requisitos especificados en un inicio, para ello
se pueden utilizar herramientas que facilitan el trazado de las pruebas contra ellos, por ejemplo el
CAPÍTULO IV.1. CICLO DE VIDA DE UN PROYECTO DE SOFTWARE
152 AERONÁUTICO
1. Nivel de misión. Es necesario interactuar con otros aviones y el entorno en el que se desa-
rrolla la misión.
2. Nivel de plataforma. Todos los sistemas del avión han de colaborar para que el avión realice
su misión más importante, volar.
3. Nivel de sistema. Todos los sistemas interactúan con el resto de sistemas y subsistemas del
avión para desarrollar su función específica.
4. Nivel de componente. Todos los componentes juntos forman un subsistema del avión, tanto
a nivel hardware como a nivel software.
En el caso de este proyecto, como se ha dicho anteriormente, se ubica dentro del nivel L2 de la
figura IV.1.2. En el proyecto como ya se ha comentado, se han planteado dos fases de pruebas: una
de pruebas unitarias y otra de test en un RIG, ver II.5. Una vez realizadas estas pruebas se quiere
plantear si es viable realizar una integración software en el sistema que controla el sensor EO y
una integración de los sistemas a nivel de plataforma. Éstas se ha desarrollado en los capítulos
posteriores, IV.2 y IV.3
La figura IV.1.3 muestra los procesos que se realizan en paralelo al proceso en V de un proyec-
to. Desde el inicio del mismo es fundamental tener presente los procesos mostrados en la figura,
los más importantes son los proceso de certificación y verificación.
153
En el proceso de certificación de software embarcado hay una norma que es fundamental co-
nocer y cumplir, DO-178B “Software Considerations in Airbone Systems and Equipment Certi-
fication” [Chi02] y [Mes07].
La FAA y EASA (European Aviation Safety Agency), organismos reguladores americano y
europeo, obligan el cumplimiento de esta norma como vía para demostrar que el software desarro-
llado cumple con los requisitos de seguridad establecidos en la norma FAR/CS 25.1309 (estándar
estadounidense/europeo). Esta norma es parte de los estándares de aeronavegabilidad de aviones
de transportes, en concreto, esta subparte es para los equipos, sistemas e instalaciones.
En la norma DO-178B se establecen los distintos niveles de seguridad que se le ha de asignar
al software en función de la criticidad de la función que desarrollan. Define los planes que es
necesario establecer para el desarrollo de software, los estándares que hay que cumplir, los planes
de verificación, el entorno de desarrollo. . . El software embarcable está muy controlado debido a
la criticidad que puede suponer que se produzca un fallo inesperado durante su ejecución. Por este
motivo, no es posible utilizar cualquier lenguaje de programación, se necesario que el lenguaje esté
certificado. Además no todas las funcionalidades que ofrecen los lenguajes está disponibles en las
versiones de desarrollo de software embarcado, están muy limitadas. Para implementar software
embarcado, los lenguajes que se suelen utilizan son ADA y C. En el caso de C, se utiliza el estándar
MISRA-C que especifica las reglas de programación que hay que utilizar para el desarrollo de
código embarcable.
CAPÍTULO IV.1. CICLO DE VIDA DE UN PROYECTO DE SOFTWARE
154 AERONÁUTICO
Capı́tulo IV.2
Integración a nivel de
componente software
Resumen
155
156 CAPÍTULO IV.2. INTEGRACIÓN A NIVEL DE COMPONENTE SOFTWARE
E
N
aprovechamiento de los recursos computacionales. Para conocer la eficiencia de un algorit-
mo se han de estudiar dos factores:
Caso medio. Calcula el tiempo esperado para un problema cualquiera. Requiere establecer
una distribución estadística.
Caso mejor. Calcula el tiempo mínimo necesario para un problema. Este método es el más
engañoso.
Por lo general se suele realizar el estudio de los algoritmos en función del coste en el peor
caso. Esto se debe a que proporciona garantías sobre el coste máximo del algoritmo, este valor
nunca será excedido y además es el más sencillo de calcular.
Para realizar un análisis completo de un algoritmo, es necesario distinguir entre dos fases: el
análisis a priori y el test a posteriori. En el análisis a priori se obtiene una función (en función
157
de los parámetros más relevantes) que limita el tiempo del algoritmo de computación. En los test
a posteriori se recogen las estadísticas sobre el consumo de tiempo y espacio de los algoritmos
mientras se ejecutan.
La métrica que se desea determinar es el tiempo total que cada sentencia tarda en ejecutarse,
dado un estado inicial de los datos de entrada. Este cálculo requiere dos elementos de informa-
ción: la frecuencia de la sentencia (número de veces que es ejecutada) y el tiempo que lleva cada
ejecución. El producto de estos dos números es el tiempo total.
Como se ha comentado en la introducción, es importante aislar el análisis del algoritmo del
computador utilizado y del lenguaje de programación. El análisis a priori elimina estas limitacio-
nes determinando la frecuencia de cada sentencia, lo que puede determinarse directamente desde
el algoritmo.
158 CAPÍTULO IV.2. INTEGRACIÓN A NIVEL DE COMPONENTE SOFTWARE
El análisis a priori para calcular el tiempo de computación ignora todos los factores de depen-
dencia en cuanto al tipo de computador utilizado o el lenguaje de programación y se concentra en
determinar el orden de magnitud de la frecuencia de ejecución de las sentencias del algoritmo.
Existen distintos tipos de notación, O, Ω y Θ. Cada una de ellas se utiliza para calcular una
métrica distinta
IV.2.1.1 Notación O
Dada una función f : N → R+ la clase O(g(n)) (se lee, O de g de n), se define por:
.
f(n) = O(g(n)) = {t : N → R+ |∃cϵR+ , ∃n0 ϵN : ∀n ≥ n0 f(n) ≤ cg(n)}
Se utiliza esta métrica cuando se quiere determinar el tiempo de computación, f(n), de un
algoritmo. La variable n puede representar el número de entradas o salidas, la suma o la magnitud
de alguna de ellas. La función f(n) depende del computador que se utilice, por este motivo el
análisis a priori calcula una función g(n) tal que f(n) = O(g(n)).
Cuando se dice que el tiempo de computación de un algoritmo es O(g(n)), significa que si
ejecutamos el algoritmo en cualquier computador bajo el mismo tipo de datos pero incrementando
los valores de n, el resultado será siempre menos que una constante c veces g(n).
Cuando se determina el orden de magnitud de f(n) siempre se tratará de obtener el menor
g(n) tal que f(n) = O(g(n)). Esto determina una cota superior de crecimiento de la función
g(n).
Cualquier algoritmo que esté acotado inferiormente por O(2n ) o Ω(2n ) se dice que requiere
un coste computacional exponencial.
IV.2.1.2 Notación Ω
Dada una función f : N → R+ la clase Ω(g(n)) (se lee, Omega de g de n) y se define por:
.
f(n) = Ω(g(n)) = {t : N → R+ |∃cϵR+ , ∃n0 ϵN : ∀n ≥ n0 f(n) ≥ cg(n)}
160 CAPÍTULO IV.2. INTEGRACIÓN A NIVEL DE COMPONENTE SOFTWARE
IV.2.1.3 Notación Θ
∩
Dada una función f : N → R+ la clase Θ(g(n)) = O(g(n)) Ω(g(n)) (se lee, Zita de g de
n)
cO(f(n)) = O(f(n))
O(O(f(n))) = O(f(n))
f(n)O(g(n)) = O(f(n)g(n))
Se desea calcular el coste computacional del sumatorio de una serie aritmética. A continuación
se lista el código que se desea analizar y la métrica de las líneas implicadas en el cálculo del coste
computacional.
1 do u b l e suma a r i t m e t i c a ( d o u b l e a1 , d o u b l e d , i n t n ) {
2 d o u b l e s , an ;
3 int i ;
4 an = a1 ;
5 s = a1 ;
6 f o r ( i = 2 ; i <=n ; i ++) {
7 an += d ;
8 s += an ;
9 }
10 return s ;
11 }
línea Métrica
línea 4 O(1)
línea 5 O(1)
línea 6 O(N)
línea 7 O(1), O(N) veces
línea 8 O(1), O(N) veces
línea 10 O(1)
El coste temporal de este método es 5 · O(1) + O(n) + 2 · O(1) · O(n). Simplificando, el coste
es O(n).
IV.2.1. NOTACIÓN ASINTÓTICA 161
El programa que se lista a continuación realiza un producto de dos matrices de nxm y sxr,
siendo m = s.
1 v o i d p r o d u c t o m a t r i c e s ( d o u b l e a [ n ] [m] , d o u b l e b [ s ] [ r ] , d o u b l e c [ n ] [ r ] ) {
2 i f (m== s ) {
3 int i , j , k ;
4 f o r ( i = 0 ; i <n ; i ++) {
5 f o r ( j = 0 ; j < r ; j ++) {
6 c[ i ][ j ] = 0.0;
7 f o r ( k = 0 ; k<m; k ++)
8 c [ i ] [ j ] += a [ i ] [ k ] * b [ k ] [ j ] ;
9 }
10 }
11 }
12 }
línea Métrica
línea 4 O(n)
línea 5 O(r), O(n) veces
línea 6 O(1), O(n ∗ r) veces
línea 7 O(m), O(n ∗ r) veces
línea 8 O(1), O(n ∗ r ∗ m) veces
IV.2.2.1.1 Geo-localización
El algoritmo de geo-localización calcula la posición del TGT al que está apuntando la cámara
(para más información ver la sección II.2.2).
1. Calculo de ACECEF
(( ) )
cos(λAC ) cos(φ) √ a2
+ hAC
a cos (φ)+b2 sin2 (φ)
((
2 2
−−−−−→ ) )
ACECEF = sin(λAC ) cos(φ) √ a2
+ h (IV.2.1)
a2 cos2 (φ)+b2 sin2 (φ)
AC
( 2 )
sin(φAC ) ab2 + hAC
2. Cálculo de LOSECEF
−−−−−−−→ −−−−−−−−−−→
LOSLOCAL = CNED BODY
LOCAL CNED LOSLOCAL_BODY
−−−−−−→ −−−−−−−−→
= CNED BODY
LOCAL CNED (LOSBODY − TEO_CG_BODY )
sin(α)|LOS| cos(β) XEO_CG
BODY
NED
= CLOCAL CNED cos(α)|LOS| cos(β) − YEO_CG
(IV.2.2)
sin(β)|LOS| ZEO_CG
IV.2.2. ANÁLISIS TEMPORAL DE LOS ALGORITMOS 163
3. Cálculo de TGTECEF
Tras unificar todos los pasos descritos, se desea realizar todas las operaciones posibles para que
el cálculo quede lo más unificado posible y así reducir el tiempo y recursos computacionales
utilizados. Para ello, se realizan los siguientes pasos.
Después de estas operaciones bastaría con calcular la latitud, longitud y altura. Éstas son operacio-
nes básicas cuyo coste computacional es O(1). Al final el algoritmo se reduce a una multiplicación
de 3 matrices de dimensiones 4*4. Aplicando las reglas de simplificación vistas con anterioridad
en la sección IV.2.1.4, el coste computacional del algoritmo es O(N3 ) + O(N3 ) = (N3 ). La
conclusión es que el coste computacional teórico es constante, O(1), ya que N siempre es 4.
IV.2.2.1.2 Geo-apuntamiento
1. Calculo de ACECEF
(( ) )
cos(λAC ) cos(φ) √ a2
+ hAC
a2 cos2 (φ)+b2 sin2 (φ)
−−−−−→
(( ) )
ACECEF = sin(λAC ) cos(φ) √ a2
+ hAC (IV.2.7)
a2 cos2 (φ)+b2 sin2 (φ)
( 2 )
sin(φAC ) ab2 + hAC
2. Calculo de TGTECEF
(( ) )
cos(λTGT ) cos(φ) √ a2
+ hTGT
a cos (φ)+b2 sin2 (φ)
((
2 2
−−−−−→ ) )
TGTECEF = sin(λTGT ) cos(φ) √ a2
+ hTGT (IV.2.8)
a2 cos2 (φ)+b2 sin2 (φ)
( 2 )
sin(φTGT ) ab2 + hTGT
3. Cálculo de LOSLOCAL
−−−−−−−−−−−→ −−−−−→ −−−−→ −−−−−−−→
LOSLOCAL_BODY = (CNED LOCAL
BODY CNED (TGTECEF − ACECEF )) + (DISTEO_CG )
IV.2.2. ANÁLISIS TEMPORAL DE LOS ALGORITMOS 165
XTGTECEF XACECEF XEO_CG
NED LOCAL
= CBODY CNED YTGTECEF − YACECEF + YEO_CG (IV.2.9)
ZTGTECEF ZACECEF ZEO_CG
√
Elevación = β = atan2(ZLOSBODY , 2
X2LOSBODY + YLOS BODY
) (IV.2.11)
Tras unificar todos los pasos descritos, se desea realizar todas las operaciones posibles para
que el cálculo quede lo más unificado posible y así reducir el tiempo y recursos computacionales
utilizados. Para ello, se realizan los siguientes pasos.
1. Las matrices CNED LOCAL se multiplican para crear una única matriz CLOCAL y así
BODY y CNED BODY
ahorrar recursos computacionales.
2. Al igual que en el caso anterior, la utilización de coordenadas homogéneas (ver sección
II.1.7) permite tratar las rotaciones y traslaciones, como productos de matrices, con sólo
añadir una cuarta coordenada al problema. Utilizando las coordenadas homogéneas, el vec-
−−−−−−−→
tor LOSLOCAL sería,
−−−−−−−−−−−→ −−−−−→ −−−−→ −−−−−−−→
LOSLOCAL_BODY = (CLOCAL BODY (TGTECEF − ACECEF )) + (DISTEO_CG ) =
( ) 1 0 0 (XTGTECEF − XACECEF ) 1 0 0 XEO_CG
CLOCAL 0 0 1 0 (YTGTECEF − YACECEF ) 0 1 0 YEO_CG
BODY ∗ ∗
(IV.2.12)
0 1 0 0 1 (ZTGTECEF − ZACECEF ) 0 0 1 ZEO_CG
0 0 0 1 0 0 0 1
Después de estas operaciones bastaría con calcular los ángulos de azimut y elevación de la
cámara. Éstas son operaciones básicas cuyo coste computacional es O(1). Al final, al igual que
en el caso del algoritmo de geo-localización, el algoritmo se reduce a una multiplicación de 3
matrices de dimensiones 4*4. Aplicando las reglas de simplificación vistas con anterioridad en la
sección IV.2.1.4, el coste computacional del algoritmo es O(N3 ) + O(N3 ) = (N3 ). La conclusión
es que el coste computacional teórico es constante, = (1), ya que N siempre es 4.
1. Normalizar la imagen en media y varianza. Para ello se le resta a cada elemento de la matriz
la media de la imagen y se divide entre la varianza de la imagen.
La media y varianza se calculan de la siguiente manera.
(∑ )
n ∑m
i=1 j=1 imagen(i, j)
Media_imagen = (IV.2.13)
n∗m
(∑ )2
n ∑m
i=1 j=1 (imagen(i, j) − media
Varianza_imagen = (IV.2.14)
n∗m
El coste computacional del cálculo de la media es O(n∗m), mientras el coste computacional
del cálculo de la varianza es O(n ∗ m).
Ahora es necesario restarle a cada píxel de la imagen la media calculada y dividirlo entre la
varianza.
∑n ∑
m
(imagen(i, j) − media)
Imagen_normalizada = (IV.2.15)
varianza
i=1 j=1
siendo:
IV.2.2. ANÁLISIS TEMPORAL DE LOS ALGORITMOS 167
Como resultado de este paso se obtendría el signo de la suma que se obtiene de evaluar para
vector soporte (Nsv) la siguiente expresión:
A parte de la memoria para guardar los ejecutables de los algoritmos, es necesario guardar en
memoria, la matriz de características de dimensiones NChar x (pixel ∗ pixel), siendo NChar el
número de características; la matriz de vectores soportes de dimensiones Nsv x (pixel ∗ pixel) ,
siendo Nsv el número de vectores soportes de la SVM y la matriz βi de dimensiones Nsv x (n ∗
m).
En cuanto al coste espacial en memoria durante la ejecución, las variables son variables esca-
lares con lo que el consumo de memoria es constante.
IV.2.4. CONCLUSIONES 169
IV.2.4 Conclusiones
A continuación, en la tabla IV.2.4 se muestra una tabla con los resultados obtenidos.
1
Un DSP es un sistema basado en un procesador o microprocesador que posee un juego de instrucciones, un hard-
ware y un software optimizados para aplicaciones que requieran operaciones numéricas a muy alta velocidad. Debido
a esto es especialmente útil para el procesado y representación de señales analógicas en tiempo real.
170 CAPÍTULO IV.2. INTEGRACIÓN A NIVEL DE COMPONENTE SOFTWARE
Capı́tulo IV.3
Integración a nivel de sistemas
Resumen
171
172 CAPÍTULO IV.3. INTEGRACIÓN A NIVEL DE SISTEMAS
U trola el sensor EO; es necesario realizar una integración a nivel de sistemas del UAV. Los
algoritmos que se han implementado necesitan información de otros sistemas del UAV para
ejecutarse, y los resultados que obtienen han de ser comunicados al resto de sistemas.
Para realizar la integración de los algoritmos se ha definido la existencia de un computador que
gestione todas las operaciones relacionadas con la cámara, el computador se ha llamado Sensor
EO Management Computer. Como se ha venido haciendo durante todo el proyecto, se ha tomado
como UAV de referencia el UAV ATLANTE.
En la figura IV.3.1 se pude ver la arquitectura propuesta como ejemplo de integración de los
dos subproyectos desarrollados en este Proyecto.
Algoritmo de Geolocation
• Posición del avión, procede del Flight Control Computer (FCC).
• Altura del avión, procede del Flight Management Computer (FMC).
173
Algoritmo de Geopointing
Main Control Computer (MCC): este computador se encarga de transmitir información entre
el UAV y la estación de tierra.
A continuación se van a explicar cada uno de los computadores y las comunicaciones que se
han representado en la imagen IV.3.1.
Para este proyecto, el computador principal es el Sensor EO Management Computer. Es el
encargado de gestionar todas las operaciones del sensor EO: establecer y recibir la actitud de la
cámara, recibir la distancia calculada por el designador láser y los parámetros necesarios del resto
de sistemas. Además gestiona la recepción de imágenes capturadas por la cámara y su envío a
través del SC y éste al MCC a la estación de tierra para su posterior procesado.
Es para este computador, para el que se están desarrollando los algoritmos de este proyecto y en
el cual se desean integrar. Como se ha dicho anteriormente, los algoritmos necesitan información
de otros sistemas del UAV, será a través de su comunicación con el bus de aviónica como la
obtendrá. En concreto, necesita información de los computadores de navegación y de control de
vuelo para conocer la actitud y posición del avión. El computador ha de transmitir los resultados
obtenidos de la ejecución de los algoritmos al resto de sistemas y a la estación base, para ello
también utilizará el bus de aviónica. Los computadores que pueden recibir la información son: el
computador de control principal y el computador de comunicaciones.
Para comenzar, es necesario conocer el concepto de STANAG (STANdarization AGreement).
STANAG es la abreviatura de la NATO para los acuerdos de estandarización, que establece los
174 CAPÍTULO IV.3. INTEGRACIÓN A NIVEL DE SISTEMAS
procesos, procedimientos, términos y condiciones para los procedimientos comunes militares, téc-
nicas o de equipación entre los países miembros de la alianza. Cada estado de la OTAN ratifica un
STANAG y lo aplica dentro de sus propias fuerzas armadas. El propósito, es proporcionar procedi-
mientos comunes de funcionamiento, administrativos y de logística. STANAG también constituye
la base para la interoperabilidad entre una amplia variedad de comunicación e información (CIS),
los sistemas esenciales para la OTAN y las operaciones aliadas.
Las STANAGs se publican en Inglés y francés, los dos idiomas oficiales de la OTAN, por la
agencia de normalización de la OTAN en Bruselas.
Además existe una convención llamada ATA-100, que es una forma de organizar las distin-
tas partes, reparaciones o tipos de sistemas que posee cualquier avión. Puede verse la lista en la
referencia [ATA10]
A continuación, se explican cada uno de los computadores implicados en la integración pro-
puesta, viéndolos siempre desde el punto de vista del computador Sensor EO Management Com-
puter. Hay que tener en cuenta, que la información disponible sobre estos sistemas y modos de
comunicación entre ellos es muy escasa debido a su calificación de “Restricted ”.
Main Control Computer (MCC). Es el computador que permite la comunicación entre el UAV
y la estación de tierra. Este computador es el enlace entre el UAV y su estación de control.
Para que esta comunicación se pueda realizar es necesario implementar el STANAG 7085
“Interoperable Data Links for Imaging Systems”. Este STANAG permite el envío de datos
entre las estaciones bases y los aviones UAVs. Este STANAG trabaja en colaboración con
otros STANAGs, como por ejemplo el 4586, uno de los más importantes en los UAVS; ya
que define las interfaces necesarias, para que las comunicaciones se puedan realizar. Debido
a la naturaleza militar de los STANAG la información sobre ellos tiene restringido el acceso.
Flight Control Computer (FCC). El sistema de control de vuelo de un avión está compuesto por
las superficies de control, las conexiones y los mecanismos operacionales necesarios pa-
ra controlar la dirección de vuelo y conseguir las características aceptables de control y
manipulación a través de la envolvente de vuelo, proporcionando continua estabilización
automática de las aeronaves, por medio del control por ordenador de las superficies de con-
trol. De este sistema, el computador Sensor EO Management Computer obtendrá la actitud
del avión: ángulo de pitch, roll y heading.
Navigation Computer (NC)(ATA 34). Este sistema está compuesto de un conjunto de técnicas y
procedimientos que permiten conducir eficientemente una aeronave a su lugar de destino,
asegurando la integridad de los tripulantes, pasajeros y de los que están en tierra. La nave-
gación aérea se basa en la observación del cielo, del terreno y de los datos aportados por los
instrumentos de vuelo. De este sistema el computador Sensor EO Management Computer
obtendrá la posición actual del avión: latitud, longitud y altura.
captura con otros aviones. Por ejemplo con un avión MEDEVAC, el UAV podía haber re-
conocido a los heridos y el avión MEDEVAC (MEDical EVACuation) con esa información,
sabría el punto exacto donde se encuentran.
Link-16. Es una red de intercambio de datos tácticos utilizada por la OTAN, está
definida en la STANAG 5516 y en la MIL-STD 6016.
MIL-STD 1553 [oDE98]. MIL-STD-1553 es el estándar militar publicado por el De-
partamento de Defensa de Estados Unidos, que define las características mecánicas,
eléctricas y funcionales de un bus de datos en serie. Fue diseñado en principio para
su uso en aviación militar; pero ha terminado por utilizarse habitualmente en subsis-
temas embarcados de manejo de datos en vehículos espaciales, tanto militares como
civiles. Proporciona una interfaz física de línea balanceada dual, una interfaz de red
diferencial, multiplexación por división en el tiempo, protocolo de comando/respuesta
half-duplex y hasta 31 terminales remotos. Actualmente es utilizado por todas las ra-
mas del ejército de Estados Unidos y ha sido adoptado por la OTAN como STANAG
3838 AVS. MIL-STD-1553 está siendo reemplazado en nuevos diseños norteameri-
canos por FireWire. Una versión de MIL-STD-1553, que utiliza cableado óptico en
lugar de eléctrico, es conocida como MIL-STD-1773. La versión civil está definida en
el estándar ARINC-429. Un sistema típico MIL-STD 1553 está compuesto de:
• Un bus MIL-STD-1553B con redundancia doble
• Un controlador de bus. En cualquier bus MIL-STD-1553, únicamente puede haber
uno, es el encargado de iniciar toda comunicación de mensajes.
• Un monitor de bus. No puede transmitir mensajes sobre el bus de datos. Se encar-
ga de monitorizar y grabar las transacciones del bus, sin interferir en la operación
del controlador de bus o los terminales remotos. Las transacciones del bus pue-
den ser almacenadas para un posterior análisis off-line. Otra funcionalidad es ser
usado en conjunto con un controlador de bus auxiliar. Esto permite al controla-
dor auxiliar estar en funcionamiento, incluso antes de tener que pasar a ser el
controlador de bus activo.
• Terminales remotos. Pueden ser usados para proporcionar una interfaz entre el
bus de datos MIL-STD-1553B y un subsistema añadido, o como puente entre dos
buses MIL-STD-1553B.
Servo Control Computer (SCC). Este computador es el encargado de controlar las superficies de
control del avión cuando se realiza un vuelo por control remoto. Desde la estación de tierra,
por medio de un joystick, se “vuela”el avión. Las órdenes para que esto sea posible, se
reciben a través de este computador, el cual las distribuye al FCC.
Sensors Computer (SC). El UAV lleva instalados sensores que informan del estado de diferentes
variables que miden, estos valores pueden influir en el desarrollo de la misión. Por ejemplo,
el sensor de creación de hielo en las alas, es necesario que se informe en el caso de existir
hielo, para que desde tierra se active el protocolo necesario para que desaparezca, ya que se-
ría peligroso volar en esas condiciones. A este computador pertenece el computador Sensor
EO Management Computer para el que se está desarrollando este proyecto.
176 CAPÍTULO IV.3. INTEGRACIÓN A NIVEL DE SISTEMAS
General Systems Computer (GSC). Aquí se engloban los sistemas generales que necesita el
avión para poder volar. Por ejemplo, el sistema de Combustible (ATA-28), el sistema eléc-
trico de los equipos (ATA-24 y ATA 29-20) y es el que alimenta a los computadores, el tren
de aterrizaje (ATA-32). . .
Attack Computer (AC). Sistema de ataque a otros aviones. No todos los UAVs disponen de él, el
ATLANTE, por ejemplo, carece de él.
Aims Defence Computer (ADC). Es el sistema de contramedidas del avión. Va ligado al sistema
AC del avión y sirve para defender al avión de posibles ataques enemigos.
PARTE V
C ONCLUSIONES Y
TRABAJOS FUTUROS
Capı́tulo V.1
Conclusiones
Resumen
En este capítulo se hace balance del trabajo realizado durante los meses que ha durado
el proyecto. Partiendo de los objetivos iniciales se revisan cuales de ellos se han cumplido
y cuales no, se revisan los resultados que se han obtenido, los problemas encontrados,
las soluciones propuestas y las lecciones aprendidas.
179
180 CAPÍTULO V.1. CONCLUSIONES
L boom del sector pasa por el desarrollo de los aviones no tripulados (UAVs). En principio se
están desarrollando para la aviación no comercial, debido a la posibilidad de evitar pérdidas
de vidas humanas, el objetivo final es aplicarlos en la aviación comercial, aunque este sector es
mucho más reticente a su implantación.
Debido a estos nuevos desarrollos y, en concreto, al nuevo desarrollo del UAV ATLANTE,
primer UAV español, que se está llevando a cabo en EADS, surgió el proyecto que se ha desarro-
llado. En un principio, el proyecto se dividió en dos subproyectos, un primer subproyecto donde se
han implementado y probado los algoritmos que comandan la cámara del sensor EO que portan los
UAVs en la parte inferior del fuselaje; y un segundo subproyecto consistente en la implementación
de un clasificador de las imágenes que captura la cámara del sensor EO.
La primera parte del proyecto se desarrolló en EADS, y consistía en implementar los algo-
ritmos de geo-localización, que permite obtener la posición del objetivo al que está apuntando la
cámara del sensor EO; y el algoritmo de geo-apuntamiento, que permite calcular la orientación de
la cámara para apuntar a un determinado objetivo.
En un principio, se proporcionaron las especificaciones de los algoritmos y el trabajo consistía
en implementarlos y someterlos a una batería de pruebas unitarias; para a continuación, plantear
la integración de los algoritmos con el programa Microsoft Flight Simulator. Como en todo pro-
yecto de software, surgieron problemas durante la implementación, los cuales obligaron a que se
realizara un estudio exhaustivo de los algoritmos y del background que conllevaban. Este contra-
tiempo retrasó el proyecto varios meses y fueron necesarias varias iteraciones de implementación
y pruebas unitarias hasta dar con la solución correcta.
Una vez conseguida la implementación correcta, se pasó a integrar los algoritmos con el simu-
lador de vuelo, Microsoft Flight Simulator en un banco de aviónica en EADS. Aquí, los problemas
surgieron cuando se intentaba indicar al módulo FSUIPC el valor de las variables que se deseaban
modificar. La documentación era muy pobre, con lo que el estudio de la librería y la posterior
búsqueda de soluciones de implemetación retrasaron de nuevo el proyecto varias semanas. Una
vez conseguido el objetivo, que el programa Microsoft Flight Simulator colocase el avión en las
coordenadas que se le indicaban por medio del módulo FSUIPC de manera correcta, se pasó a
cargar el programa desarrollado para que un avión diese vueltas realizando círculos alrededor de
un edificio escogido previamente. Estas pruebas llevaron consigo el reajuste de la implementación
y por tanto, la ejecución de toda la batería de pruebas unitarias en cada iteración.
Al final, se consiguió el objetivo marcado al inicio del proyecto, se desarrollaron los dos algo-
ritmos con la funcionalidad pedida y las pruebas fueron pasadas satisfactoriamente.
Paralelamente, se ha desarrollado en colaboración con la Universidad Carlos III de Madrid,
un segundo subproyecto, la implementación del clasificador de imágenes. El primer paso fue la
lectura de artículos y la búsqueda de información complementaria para comprender qué eran y en
qué consistían las SVMs, el algoritmo PCA y el algoritmo de Complex-Log; y cómo funcionaban
los recursos electrónicos que precisaba utilizar, la toolbox de MATLAB y la librería LIBSVM.
En esta segunda parte, el primer problema surgió con la librería LIBSVM, ya que no es compa-
tible con cualquier versión de MATLAB, para la realización del proyecto se ha utilizado la versión
R2007b. Una vez resuelto, el siguiente obstáculo a salvar era conocer el funcionamiento de la li-
brería LIBSVM. Como se ha comentado durante el proyecto, la documentación es muy escasa,
con lo que se ha requerido un ejercicio de investigación bastante grande. Una vez comprendido el
algoritmo que se deseaba implementar, no surgieron muchos problemas durante el desarrollo del
mismo y la obtención de los primeros resultados. Para la obtención de los resultados que se mues-
tran en la memoria, surgieron algunos problemas, ya que las ejecuciones duraban mucho tiempo
y MATLAB, por su propia arquitectura utiliza muchos recursos del sistema, lo que imposibilitaba
181
el trabajo en paralelo.
El objetivo final era la implementación y evaluación de la SVM en distintas situaciones, prin-
cipalmente para imágenes rotadas. Este estudio buscaba que se pudiera entrenar una máquina sin
la necesidad de que participasen en el entrenamiento muestras rotadas.
Como se ha explicado los primeros resultados de imágenes crudas y con ruido han sido los
esperados, cuanta más información se poseía en las muestras de entrenamiento, mejor era la clasi-
ficación de las muestras de test. También se ha podido comprobar que cuanto mayor es la cantidad
de ruido que poseen las imágenes, la clasificación de las mismas empeora.
Tras ver los resultados obtenidos, en muchos casos es necesario evaluar si la disminución
en el error medio de clasificación compensa el aumentar el número de SV y de características.
Existen aplicaciones en las que el gasto computacional frente a la rapidez de clasificación a costa
de perder precisión puede compensar. Éstas son decisiones de diseño que es necesario tomar para
cada situación concreta.
Al final tal y como se ha mostrado en la memoria, los resultados obtenidos han sido los espera-
dos. El error aumenta cuando las imágenes están distorsionadas por ruido o rotadas. Es bueno que
existan muestras con estas distorsiones durante el entrenamiento porque mejoran el porcentaje de
error, aunque es cierto que aumentan el número de vectores soporte necesarios.
En las pruebas con imágenes rotadas, el objetivo era evaluar cómo de bueno era el algoritmo
de Complex-Log, para así poder, debido a la dificultad de poseer una base de datos representativa,
plantear la posibilidad de utilizar imágenes sin rotar en el conjunto de entrenamiento y que la
clasificación se realizase de manera óptima.
Como se ha visto en la sección de resultados, éstos no han sido satisfactorios. La imposibilidad
de realizar muchas realizaciones en las simulaciones debido al alto tiempo computacional que
tomaban para realizarse, y el hecho de no haber implementado en totalidad el algoritmo Complex-
Log han sido las principales causas expuestas como explicación a los malos resultados obtenidos.
Para comprobar que realmente la implementación realizada inicialmente del algoritmo
Complex-Log era insuficiente, se ha decidido realizarla por completo, y se ha demostrado que
la FFT es la fase que permite a la SVM reconocer las imágenes como invariantes a rotaciones. Es-
to viene justificado por el desplazamiento que produce la primera fase y que se elimina al aplicar
la FFT, ya que el módulo de la misma es invariante a desplazamientos.
En esta segunda parte, la mayor dificultad, ha sido comprender los algoritmos y conseguir
realizar una clasificación básica utilizando la librería LIBSVM. Otro de los obstáculos que se ha
tenido que salvar ha sido el alto tiempo computacional que requerían las simulaciones realizadas,
esto ha frenado la realización del proyecto.
Para finalizar, se ha realizado un estudio de integración de los algoritmos. En primer lugar se ha
realizado un estudio en cuanto a la cantidad de recursos computacionales, temporales y espaciales,
que consumen los algoritmos implementados.
Sobre los algoritmos de geo-localización y geo-apuntamiento se ha determinado que los recur-
sos computaciones que requieren son siempre constantes, con lo que la integración en el compu-
tador del UAV es posible. En cambio, el algoritmo de clasificación de imágenes los recursos
computaciones que necesitan dependen de las dimensiones de las variables de entrada, el tamaño
de la imagen a clasificar, de la matriz de características y de la matriz de vectores soporte. Las
dimensiones que se manejan de estas variables de entrada son muy grandes, con lo que se ha de-
terminado que únicamente sería posible embarcarlos si éstas son muy pequeñas. También se ha
comentado la posibilidad de embarcarlo en un DSP, pero es una opción que habría que estudiar y
valorar más en profundidad. Por todos estos motivos se ha determinado realizar todos los estudios
posteriores contando con que esta funcionalidad estará implementada en la estación de tierra.
182 CAPÍTULO V.1. CONCLUSIONES
Como parte final del proyecto, se ha planteado, de manera teórica, un esquema de integración
de los algoritmos dentro del computador de gestión del sensor EO del UAV. Esta integración se ha
planteado de manera teórica, explicando los sistemas con los que se podría interactuar y cómo se
realizarían las comunicaciones entre ellos.
Capı́tulo V.2
Trabajos Futuros
Resumen
En este capítulo, se exponen las líneas de trabajo futuro del proyecto que se ha desarro-
llado.
183
184 CAPÍTULO V.2. TRABAJOS FUTUROS
D ampliaciones. . . La mayoría de las veces, debido a que están fuera del ámbito del proyecto,
quedan excluidas y olvidadas. En este capítulo, se hace una recopilación de todas ellas para
futuras investigaciones.
La primera parte del proyecto, que se ha desarrollado en EADS, consiste en la implementación
de los algoritmos de geo-apuntamiento y geo-localización y la posterior integración con el progra-
ma Microsoft Flight Simulator. Para este subproyecto se plantean las siguientes líneas futuras de
trabajo:
Para la segunda parte del proyecto, la implementación del clasificador de imágenes, que se ha
desarrollado en la UC3M, se plantean las siguientes líneas futuras de trabajo:
A PÉNDICES
Apéndice A
Presupuesto
Resumen
189
190 APÉNDICE A. PRESUPUESTO
primer paso de todo proyecto es la elaboración de un presupuesto, que especifique las horas
E
L
de trabajo que exige y el coste que supone para el cliente su realización. Este presupuesto
es necesario que se ajuste lo más posible a la realidad; ya que cualquier retraso en la plani-
ficación inicial, supone un gran impacto en el coste del proyecto y en la cuenta de resultados de la
compañía que lo realiza.
La realización de un proyecto implica la ejecución de un conjunto de tareas relacionadas entre
sí. Cada tarea del proyecto lleva asociado un tiempo de duración y unos recursos. En este capítulo,
se van a detallar las tareas que se han realizado durante el proyecto, la duración y los recursos aso-
ciados a cada una de ellas. Todos estos recursos acarrean unos gastos que componen el presupuesto
del proyecto.
Definición de los objetivos del proyecto. Es una de las fases más importantes. Se han
realizado distintas reuniones con el cliente, para fijar los objetivos del proyecto y la funcio-
nalidad del producto que se desea crear. Ha de quedar todo perfectamente definido para que
no se produzcan cambios de última hora.
Estudios preliminares del proyecto. Para aceptar la realización del proyecto, se ha realiza-
do un estudio exhaustivo sobre las tecnologías que se pueden utilizar para el desarrollo del
mismo, el hardware y los recursos necesarios,. . . Con toda la información recopilada, se ha
determinado si la realización del proyecto es viable, o no.
A continuación se muestran las tareas que se han realizado en este proyecto:
Implementación del proyecto. Una vez realizados todos los estudios que aseguran la via-
bilidad del proyecto e instalado el software, hay que programar la aplicación. En esta fase
del proyecto se producen retrasos debido a la complejidad que conlleva el desarrollo de
aplicaciones.
Las tareas iniciales que se han planificado son las que se muestran a continuación:
Estas actividades se han realizado desde el 1 de Septiembre del 2009 hasta el 10 de Junio del
2010, día en que se realizará la presentación de este proyecto.
192 APÉNDICE A. PRESUPUESTO
Para todas y cada una de las actividades descritas en la sección A.1, se ha efectuado una valo-
ración de los recursos invertidos y así proceder a calcular el coste de cada actividad del proyecto.
Cada actividad tiene asociado un coste llamado coste directo. El valor del coste directo de una
tarea está compuesto principalmente por los costes de los recursos humanos (RRHH) utilizados.
En las siguientes secciones se realiza un análisis y una valoración, tanto de los costes directos
como indirectos del proyecto.
Los costes directos son los generados directamente por el proyecto, indispensables para la
realización del mismo e imputables directamente a la realización de cada una de las tareas. Si el
proyecto no se llevase a cabo, no existirían costes directos.
A.2.1.1 Material
En todos los proyectos es necesario utilizar material, ya sea informático o no, como por ejem-
plo cartuchos de impresora para imprimir las actas de las reuniones, los borradores, las presenta-
ciones, los contratos con el cliente, los desplazamientos,. . .
A continuación se detallan los costes por material
Lugar de trabajo: el proyecto se ha realizado entre la empresa EADS y el hogar del desa-
rrollador. Se podría estimar un coste de 35¤/hora por la electricidad, el agua y la limpieza
durante los 11 meses de trabajo. En total 385¤.
Material de oficia: Dentro de este concepto se incluye todo el material desechable emplea-
do en el proyecto, impresión de artículos, informes, cuadernos, bolígrafos,. . . El gasto total
estimado es 116¤.
Equipo informático: Se estima el valor del equipo informático utilizado sobre 1525¤. La
impresora es un equipo que se va a utilizar fundamentalmente al final del proyecto, con
lo que se estima que su valor es el 60 % sobre el total en concepto de amortización, con
lo que obtiene 1200¤. Este dato incluye los útiles de la impresora, como por ejemplo los
cartuchos.
Utilización del banco de pruebas de aviónica: Se estima que las horas invertidas en el banco
han sido 300. Si el precio de alquiler del banco para su utilización en el proyecto es de
20¤/hora, el coste total de su utilización es de 6000¤.
Licencias de software: Las licencias que se van a necesitar son: la de MATLAB, que tienen
un coste de 2400¤, la de Windows Vista que cuesta 200¤, la del Microsoft Fligth Simulator
40¤y la de la librería FSUIPC que se estima en 30¤. El precio total asciende a 2670¤.
Según los datos del Colegio de Ingenieros de Telecomunicación (COIT), el sueldo por hora de
un ingeniero es de 85¤.
En la realización de este proyecto han participado tres personas, dos directores de proyecto y
el desarrollador. Teniendo una carga del 20 % los tutores y un 80 % el desarrollador.
Las horas dedicadas al proyecto han sido de una media de 9 horas diarias. Si se computan
25 días al mes (además de los 20 días laborales, durante los días no laborables también se ha
continuado el desarrollo), se obtiene
10meses*25 días/mes*9 horas/dia*85¤/hora=191.250¤
El salario del director de proyecto se estima, de forma general, como un 7 % del coste del
material del proyecto, lo que suma 749,77¤cada director de proyecto.
Sumando ambos costes se obtiene, 192.749,54¤
Los costes indirectos son todos aquellos costes derivados de la actividad general de la empre-
sa y que se distribuyen de forma proporcional entre los distintos proyectos que desarrolla. Toda
empresa está formada por distintos departamentos que generan unos gastos independientes de la
actividad o proyectos. A continuación se citan algunos ejemplos:
Dirección. Son los puestos de dirección de la empresa; como por ejemplo, el Consejo de
administración, Directores generales,...Se estima el coste en 196¤.
Los costes totales se calculan sumando los costes directos más los costes indirectos, tal y como
muestra la tabla A.2. Si el proyecto se realiza para un cliente externo a la empresa, hay que añadir
el beneficio industrial, un 15 % del coste total, y el IVA.
Material 10.711¤
Recursos Humanos 192.749,54¤
COSTES DIRECTOS 203.460,54¤
COSTES INDIRECTOS 1.248¤
TOTAL 204.708,54¤
Beneficio industrial (15 %) 30.706,281¤
SUBTOTAL 235.414,821¤
IVA (16 %) 37.666,37136¤
TOTAL 273.081,19236¤
Hay que tener en cuenta, que a partir del 1 de Julio, en lugar de aplicar un 16 % de IVA se
deberá aplicar un 18 %.
Apéndice B
Acrónimos
Resumen
195
196 APÉNDICE B. ACRÓNIMOS
D habitual el uso de acrónimos. Por este motivo, se han elaborado las listas B.1 y B.2. Cada
una de éstas listas contiene los acrónimos pertenecientes a cada uno de los subproyectos
elaborados.
197
[ANM09] Sammer A.Nene, Shree K. Nayar, and Hiroshi Murase. Columbia object image library
(coil). technical report no. cucs-006-96, 2009.
[Cor09] EADS Corporate. Dvd promocional: Discover the world of eads, 2009.
[CS00] K. Crammer and Y. Singer. On the learnability and design of output codes for multi-
class problems. In Computational Learning Theory. 2000.
[DD] Chris H.Q. Ding and Inna Dubchak. Multiclass proetin flod recognition using support
vector machines and neural networks. Technical report, University of California.
[dDE09] Ministerio de Defensa Español. Monografías del sopt uas (unmanned aircraft system)
sobre su integración en el espacio aéreo no segregado. 2009.
199
200 BIBLIOGRAFÍA
[GWP01] Mohinder S. Grewal, Lawrence R. Weill, and Angus P.Andrews. Global positioning
systems, Inertial Navigation and Integration. John Wiley & Sons, 2001.
[Hay99] Simon S. Haykin. Neural networks : a comprehensive foundation. Prentice Hall, 1999.
[HCL09] Chih-Wei Hsu, Chih-Chung Chang, and Chih-Jen Lin. A practical guide to support
vector classification. 2009.
[HL] Chih-Wei Hsu and Chih-Jen Lin. A comparision of methods for multi-class support
vector machines. National Taiwan University.
[HS] Ellis Horowitz and Sartaj Sahni. Fundamentals of computer algorithms. Computer
Science Press.
[Kag91] Stoshi Kageyu. Augmented multi-layer perceptron for rotation-and scale invariant
hand-wirtten numeral recognition. Nagoya University, Japan, 1991.
[Mar08] Noelia López Martín. Reconocimiento de imágenes de baja resolución mediante cla-
sificadores svm. Master’s thesis, Universidad Carlos III de Madrid, 2008.
[MG02] Andrés Marzal and Isabel Gracia. Introducción al análisis de algoritmos. 2002.
[PV07] Massimiliano Pontil and Alessandro Verri. Support vector machines for 3-d object
recognition. 2007.
[RK04] Ryan Rifkin and Aldebaro Klautau. In defense of one-vs-all classification. 2004.
BIBLIOGRAFÍA 201
[SBS98] Bernard Schölkopf, Christopher J.C. Burges, and Alexander J. Smola. Introduction to
support vector learning. 1998.
[SS02] Bernhard Schölkopf and Alexander J. Smola. Learning with kernels : support vector
machines, regularization, optimization, and beyond. MIT Press, 2002.
[Str00] Bjarne Stroustrup. The C++ Programming Language. Addison Wesley, special edi-
tion, 2000.
[vDH97] Foley van Dann and Feiner Hughes. Computer graphics. Principles & Graphics.
Addison-Wesley publishing company, 2 edition, July 1997.
[VL63] V Vapnik and A Lerner. Pattern recognition using generalized portrait method. 1963.
[VOP+ 02] M.A. Vicente, O.Reinoso, C. Pérez, J.A. Sabater, and J.A. Azorín. Reconocimiento de
objetos 3d mediante análisis pca. 2002.
[WGS00] Department of Defence World Geodetic System 84. Its definition and relationShip with
Local Geodetic System (Technical Report). National Imagery and Mapping Agency,
third edition, Enero 2000. www.globus.org/.
[WW99] J. Weston and C. Watkins. Multi-class support vector machines. In Proceedings of the
European Symposium on Artificial Neural Networks (ESANN). 1999.
[ZFM] Arkaitz Zubiaga, Víctor Fresno, and Raquel Martínez. Comparativa de aproximacio-
nes a svm semisupervisado multiclase para clasificación de páginas web. Technical
report, Universidad Nacional de Educación a Distancia.