SlideShare una empresa de Scribd logo
1 de 198
Descargar para leer sin conexión
PROYECTO FIN DE CARRERA
DESARROLLO DE UN SISTEMA
INTELIGENTE GPS-RASTER PARA
UNA PDA
AUTOR: Manuel Guillermo Lago Rodríguez
MADRID, Junio 2006
UNIVERSIDAD PONTIFICIA COMILLAS
ESCUELA TÉCNICA SUPERIOR DE INGENIERÍA (ICAI)
INGENIERO EN INFORMÁTICA
Desarrollo de un Sistema Inteligente GPS-Raster para una PDA
Resumen
Este proyecto consiste en el desarrollo de una aplicación que sea capaz
de tomando un archivo de imagen cualquiera de un mapa de carreteras,
independientemente del formato de imagen de archivo y del modo en el que
estén representadas las vías de circulación en él, proporcionar servicios de
calculo de rutas e interacción con un dispositivo GPS al mismo nivel que daría
un mapa comercial especialmente desarrollado con este propósito. De este
modo, será una herramienta que podrá proveer a usuarios que quieran hacer
uso de sus sistemas de navegación en zonas que o bien no disponen de
mapas adecuados para sus necesidades o bien que directamente aún no han
sido mapeadas por las compañías que desarrollan este tipo de mapas.
Esta aplicación va a desarrollarse íntegramente sobre una plataforma
PDA, pues es en este tipo de plataforma donde se hace uso de los sistemas de
navegación GPS y donde la posibilidad de trazar una ruta sobre mapas de
carreteras puede ser realmente útil. La idea es permitir que el usuario solo
tenga que descargar la imagen a su PDA desde cualquier fuente, y tras un
pequeño proceso de análisis y pretratado sea capaz de emplear el mapa como
si hubiese sido especialmente desarrollado con ese propósito.
Para conseguir esto, es necesario que la aplicación sea capaz de ver las
vías de circulación contra el fondo, diferenciarlas de otros elementos similares
como ríos o líneas de coordenadas, analizar sus características para obtener
I
Desarrollo de un Sistema Inteligente GPS-Raster para una PDA
su trazado, su longitud e identificar el tipo de vía al que pertenece, para así
poder calcular tanto rutas mínimas como rutas óptimas de acuerdo con un
formato definido por el usuario.
Para poder analizar la imagen a nivel que eso requiere, a su vez, es
necesario que esta se encuentre en un formato vectorial que además sea
fácilmente legible por la aplicación. Por tanto, antes del análisis será necesario
realizar una transformación de la imagen a un formato vectorial que además
deberá ser abierto para poder acceder de modo directo a los datos del mapa de
carreteras
Como resultado del análisis realizado sobre la imagen vectorial, la
aplicación habrá reconocido los distintos tipos de carreteras presentes en el
mapa y tendrá todos los datos necesarios para calcular rutas sobre el mapa.
Para realizar el cálculo de rutas en sí, se creará un Grafo de Rutas que
recogerá todos los datos relativos al mapa de carreteras, sobre el que se
implantará un algoritmo de búsqueda heurística. Mediante estas dos
herramientas, la aplicación podrá calcular la ruta de mínimo recorrido entre dos
puntos cualesquiera que el usuario indique sobre mapa de carreteras.
La aplicación podrá interactuar con el dispositivo GPS integrado en la
PDA durante la realización de cualquiera de sus tareas. Así, podrá definirse el
punto de origen o destino como la localización actual del dispositivo GPS, y por
supuesto también indicar al usuario cual es su posición actual en el mapa.
II
Desarrollo de un Sistema Inteligente GPS-Raster para una PDA
Para poder interactuar con el GPS, el usuario podrá, con gesto tan
simple como indicar las coordenadas geográficas reales de tres puntos sobre la
superficie del mapa, definir completamente la colocación del mapa sobre la
superficie de la Tierra. La aplicación calculará desde esos tres puntos la
localización, orientación y escala del mapa.
Todos los datos relativos tanto al Grafo de Rutas como al
posicionamiento del mapa permanecerán guardados de modo que el mismo
mapa pueda ser empleado de nuevo sin necesidad de repetir el proceso de
generación del grafo y de posicionamiento del mapa.
III
Desarrollo de un Sistema Inteligente GPS-Raster para una PDA
Abstract
The purpose of this project is the development of an application capable
of taking an image file of a roadmap, independently of its file format and the way
the roads are represented within it, provide with route calculation and interaction
with a GPS device at the same level a commercial map especially prepared for
this purpose. This way, it will become a tool capable of providing users who
wish to make use of their navigation systems on areas that either do not have
maps adequated for their necessities or simply have not been maped yet by the
companies who make this kind of maps.
This application will be entirely developed on a PDA platform, as this kind
of platform is where the use of GPS navigation systems and the possibility of
determining over a roadmap may be truly useful. The idea is allow for the user
to only have to download the image on his PDA from any source, and after a
short process of analysis be capable of employing the map as if it had been
specially developed with this purpose.
In order to achieve this, is necessary for the application to distinguish the
roads form the background, difference then form similar elements like rivers or
coordinate lines, analyse their characteristics in order to obtain their path, length
and identify the kind of road it belongs to, and so be able of calculating minimal
routes as well as optimal routes according to a format defined by the user.
IV
Desarrollo de un Sistema Inteligente GPS-Raster para una PDA
In order to analyse the image to this level it is required for the image to
be in a vectorial format that is also easily readable by the application. As such,
before the analysis it will be needed to realize a conversion of the image into a
vectorial format that is also open in order to access directly to the roadmap
data.
As a result of the analysis conducted on the application will had
recognized the different kinds of roads present on the map and will have all the
data required to calculate routes on the map.
To realize the route calculation itself, a Route Graph containing all the
data relative to the roadmap will be created. On this graph an heuristic search
algorithm will be implemented. Using these two tools, it will be possible to
calculate the minimum longitude route between whichever two points indicated
by the user on the roadmap.
During the realization of its functionalities, the application will be capable
of interacting with the GPS device integrated on the PDA. This way, it will be
possible to define the starting and ending point as the current location of the
GPS device, and of course also indicate to the user its current location on the
roadmap.
In order to interact with the GPS, the user will be able to, with a gesture
as simple as indicating the geographic coordinates of three points on the map
surface, completely define the location of the map on Earth’s surface. The
V
Desarrollo de un Sistema Inteligente GPS-Raster para una PDA
application will calculate form this three points the location, orientation and
scale of the map.
All data related to both the Route Graph and the location of the map will
be stored so the same map may be used again without having to repeat the
graph generation and map location processes.
VI
Desarrollo de un Sistema Inteligente GPS-Raster para una PDA
La elaboración de este proyecto no
habría sido posible sin la inestimable ayuda de
José Ángel Olivas Varela y Miguel Ángel Sanz Bobi.
Muchas gracias familia, profesores y amigos por vuestro apoyo.
A todos vosotros os lo dedico.
VII
Desarrollo de un Sistema Inteligente GPS-Raster para una PDA
Índice
VIII
Desarrollo de un Sistema Inteligente GPS-Raster para una PDA
Capitulo 1 - Introducción y Planteamiento 1
1.1. Necesidad del Proyecto 3
Capitulo 2. Objetivos 5
Capitulo 3 - Requisitos de la aplicación 8
Capitulo 4 - Estado del Arte 10
4.1. GPS (Global Positioning System) 11
4.2. Modelo Geográfico 15
4.2.1. La Tierra 15
4.2.2. Meridianos y Paralelos 15
4.3. Proyección Mercator 18
4.4. Búsqueda Heurística 20
4.4.1. Algoritmo A* 22
4.4.2. Funcionamiento de A* 25
4.5. Tecnologías 34
4.5.1. PDA (Personal Digital Assistant) 34
4.5.2. SVG (Scalable Vector Graphics) 36
4.5.3. AutoTrace 38
4.5.4. BMP 40
IX
Desarrollo de un Sistema Inteligente GPS-Raster para una PDA
4.5.5. XML (Extensible Markup Language) 41
4.5.6. Microsoft Visual Studio .NET 43
4.5.7. C# 44
Capitulo 5 - Desarrollo del Sistema GPS 45
5.1. Decisiones de Diseño 46
5.2. Diseño de la Aplicación 49
5.2.1. División en módulos 50
5.2.2. DFD Módulo Vectorizador 51
5.2.3. DFD Módulo Enrutador 52
5.2.4. DS Proceso de Vectorización 53
5.3. Grafo de Rutas 54
5. 4. Módulo Vectorizador 57
5.4.1. Tratamiento de la imagen 59
5.4.1.1. Identificación de carreteras 59
5.4.1.2. Tratamiento en fases de la imagen 60
5.4.1.2.1 Pretratado 61
5.4.1.2.2. Vectorización Mediante Autotrace 62
5.4.1.2.3. Digitalización 67
5.4.1.2.4. Abstracción del Mapa a Grafo 68
X
Desarrollo de un Sistema Inteligente GPS-Raster para una PDA
5.4.1.2.5. Refinado 68
Aproximación de nodos 69
Conexión de nodos 71
Eliminación de Elementos Redundantes 73
Parámetros de Refinado 75
5.4.2. Editor de Grafo 78
5.4.3. Generación del documento XML 83
5.5. Módulo Enrutador 84
5.5.1. Lectura del fichero XML 84
5.5.2. Calculo de Rutas Mínimas 85
Representación de la ruta calculada 86
5.5.3. Posicionamiento 88
5.5.3.1. Localización 89
5.5.3.2. Orientación 90
5.5.3.3. Escala 92
5.5.3.4 Empleo de un Modelo de Tierra Plana 93
5.5.3.4.1. Dos puntos frente a tres puntos 94
5.5.3.4.2. Parámetros de conversión 95
Grado de Longitud 95
XI
Desarrollo de un Sistema Inteligente GPS-Raster para una PDA
Ratio de Kilómetros a Píxeles 97
Matriz de Conversión de Coordenadas 97
5.5.4. Conversión de coordenadas 99
5.5.4.1. Aplanamiento de la Tierra 99
5.5.4.2. Cambio de Escala 101
5.5.4.3. Cambio de Ejes Coordenados 101
5.5.5. Fallo a Mayor escala 103
Imprecisión propia del mapa 109
5.6. Limitaciones de la aplicación 111
5.6.1. Generación del Grafo de Rutas 111
5.6.1.1. Influencia del formato 111
5.6.1.2. Abstracción al grafo 113
Elementos que no son carreteras 113
Perdida de carreteras 114
Cúmulos de Nodos 115
Fallo de Conexión 116
5.6.1.3. Refinado 118
5.6.2. Uso de la proyección Mercator 121
5.6.2.1. Imprecisión por deformación 121
XII
Desarrollo de un Sistema Inteligente GPS-Raster para una PDA
5.6.2.2. Mapas inutilizables 123
Capitulo 6 - Evaluación del proyecto 128
6.1. Generación del Grafo de Rutas 129
6.2. Calcular Ruta de Mínimo Recorrido 132
6.3. Posicionamiento y Conversión de Coordenadas 134
Capitulo 7 - Conclusiones 136
7. 1. Cumplimiento de los Objetivos 141
7.2. Cumplimiento de los Requisitos 146
Capitulo 8 - Planificación y Presupuesto 149
8.1. Planificación del Proyecto 150
8.2. Presupuesto del Proyecto 152
Capitulo 9 - Bibliografía 154
Apéndice - Uso de la aplicación 156
A.1. Módulo de Vectorización 157
A1.2. Módulo Enrutador 171
XIII
Desarrollo de un Sistema Inteligente GPS-Raster para una PDA
Capitulo 1 - Introducción y Planteamiento
1
Desarrollo de un Sistema Inteligente GPS-Raster para una PDA
El propósito de este proyecto es el desarrollo de un sistema, orientado a
su implantación en un formato PDA, que, tomando un mapa en un formato de
imagen simple, como un mapa de bits, se capaz de convertirlo en un mapa
que pueda ser directamente empleado por un dispositivo GPS. Con este mapa,
se podrán determinar rutas, distancias y tiempos entre puntos mediante
técnicas de búsqueda heurística. Para realizar el proceso de conversión del
mapa, el sistema lo convertirá a un formato vectorial para poder tratar sus
características directamente y determinará su escala y su posición global
mediante la definición de varios puntos de referencia.
2
Desarrollo de un Sistema Inteligente GPS-Raster para una PDA
1.1. Necesidad del Proyecto
Los sistemas de navegación GPS actuales requieren para su
funcionamiento el uso de mapas especialmente desarrollados para este
propósito, que además sean compatibles con el sistema de ubicación
geográfica del propio del GPS. Este hecho conlleva múltiples limitaciones en el
uso de estos dispositivos. Estos mapas frecuentemente pueden no cubrir las
necesidades de un usuario en un momento determinado, ya sea porque no
abarcan con suficiente precisión el área que interesa al usuario, porque no
están adecuadamente actualizados o sencillamente porque no existe ningún
mapa de esa área. En ocasiones el usuario ni siquiera tendrá la posibilidad de
adquirir el mapa que necesita al no tener acceso al sistema de distribución que
la compañía desarrolladora emplee.
Sin embargo, es prácticamente seguro que el usuario podrá tener a su
alcance un mapa normal (es decir, no preparado para su uso por un dispositivo
GPS) que satisfaga sus necesidades en un mayor grado, pero se verá obligado
adquirir un mapa especialmente desarrollado para su uso por su sistema GPS,
que además de sufrir los problemas anteriormente mencionados será
redundante con el que ya tenía.
Aunque actualmente la cobertura proporcionada por el sistema GPS es
global, significando que en cualquier punto del planeta es posible emplear un
dispositivo GPS para calcular las coordenadas de una posición, para poder
3
Desarrollo de un Sistema Inteligente GPS-Raster para una PDA
trazar itinerarios sobre un mapa y calcular rutas mínimas es necesario que el
mapa disponga de una inteligencia adicional. Esta inteligencia está contenida
en una base de datos adjunta al mapa que reúne todos los datos necesarios
para que el mapa conozca donde se encuentran las vías de circulación, y
conozca sus características físicas como su trazado, las conexiones que tenga
con otras carreteras y su longitud.
Tradicionalmente crear estos mapas preparados para GPS requiere
trazar manualmente las vías sobre el mapa para que sus características sean
comprendidas por el sistema. Este por lo general es un proceso
considerablemente lento y caro, e implica que ninguna de las compañías
dedicadas a esta tarea va a trazar mapas a los que no crea vaya a dar salida.
El resultado es que la mayor parte del mundo no dispone de mapas preparado
para el uso de sistemas de autorouting que represente sus vías con suficiente
precisión, completitud y actualidad.
Resolver este problema es el principal propósito de este proyecto. El
usuario debe ser capaz de poder aprovechar su dispositivo GPS con cualquier
mapa que ya posea, a pesar de que no haya sido especialmente desarrollado
para ello, y además de poder añadir un nuevo mapa a su navegador en
cualquier momento según aparezca la necesidad, y de poder utilizar estos
mapas como si hubieran sido preparados para la navegación GPS.
4
Desarrollo de un Sistema Inteligente GPS-Raster para una PDA
Capitulo 2. Objetivos
5
Desarrollo de un Sistema Inteligente GPS-Raster para una PDA
La aplicación podrá tomar un archivo de imagen en cualquier formato y
será capaz de crear un Grafo de Rutas a partir únicamente de la imagen, de
modo que en él se detallen las distancias, trazado de la vía y rutas entre los
puntos significativos del mapa, y las coordenadas geográficas de esos puntos.
El proceso de vectorización de la imagen deberá ser capaz de
diferenciar los tipos de vía presentes en el mapa. Así mismo, deberá diferenciar
estas de otros elementos del mapa que puedan causar confusión, como ríos y
otros elementos geográficos.
El usuario podrá posicionar el mapa en el sistema de coordenadas de
latitud y longitud utilizado por el GPS simplemente definiendo las coordenadas
de varios puntos en el mapa. A partir de esto, el dispositivo calculará todos los
parámetros que pueda necesitar para realizar un cambio de coordenadas entre
los sistemas empleados por la aplicación, y a partir de esos datos, calcular la
localización del mapa, su orientación y su escala. Conociendo esto, podrá
calcular la longitud de los tramos de vías de circulación, de las rutas calculadas
por el sistema y las coordenadas actuales del usuario sobre el mapa. Este
proceso solo necesitará ser realizado una vez, y el mapa recordara los
resultados para futuras ejecuciones.
El sistema podrá asignar pesos a los tipos de vía presentes en el mapa
identificados durante el análisis del mapa, de modo que favorezca algunos,
como las autopistas, sobre otros al calcular el recorrido óptimo. El usuario
6
Desarrollo de un Sistema Inteligente GPS-Raster para una PDA
podrá definir estos pesos a voluntad, o utilizar algún esquema de pesos
predeterminado.
Partiendo de estos datos, el sistema podrá calcular la ruta de mínima
distancia entre dos puntos cualesquiera del mapa, no solo los definidos como
puntos significativos durante el proceso de análisis, y a continuación podrá
mostrar esta ruta directamente sobre el mapa, e indicara al usuario su longitud
total.
7
Desarrollo de un Sistema Inteligente GPS-Raster para una PDA
Capitulo 3 - Requisitos de la aplicación
8
Desarrollo de un Sistema Inteligente GPS-Raster para una PDA
El sistema deberá estar implantado completamente sobre una
plataforma Pocket PC, y ser capaz de interactuar con el receptor GPS de ésta
durante la realización de sus funcionalidades. Esto se requiere para así poder
dar al usuario la capacidad de trabajar de modo inmediato con cualquier mapa
de carretera que se introduzca a la aplicación.
La herramienta deberá estar orientada a un usuario al que no se le
supone ningún conocimiento sobre informática, funcionamiento de dispositivos
GPS, sistemas de navegación o tratamiento de imagen. Por ello, su interfaz
deberá ser intuitiva, sencilla y autoexplicativa, y el uso de la aplicación deberá
ser extremadamente sencillo, manteniendo todos los procesos de tratamiento
de la imagen y de interacción con el dispositivo GPS transparentes al usuario.
9
Desarrollo de un Sistema Inteligente GPS-Raster para una PDA
Capitulo 4 - Estado del Arte
10
Desarrollo de un Sistema Inteligente GPS-Raster para una PDA
4.1. GPS (Global Positioning System)
El Sistema de Posicionamiento Global, más conocido como GPS (Global
Positioning System) es el único sistema de navegación por satélite que
actualmente proporciona una cobertura completa a nivel global. Dispone de
una constelación en la que siempre hay al menos 24 satélites activos, que
transmiten señales de radio precisamente temporizadas que permiten a los
receptores GPS calcular con exactitud su latitud, longitud y altitud. Mediante
estos datos los dispositivos receptores actuales también son capaces de
calcular su velocidad y orientación. En todo momento, en cualquier punto de la
superficie de la Tierra, sea de día o de noche y bajo cualquier clima, un
dispositivo GPS es capaz de ver al menos los cuatro satélites que necesita
para hacer ese cálculo y conocer tanto la distancia que los separa de ellos
como su posición orbital actual. De este modo, obtiene el radio (la distancia al
satélite) y el centro (la posición orbital del satélite) de cuatro esferas cuyo punto
de intersección es precisamente la localización actual, definida por su latitud,
longitud y altitud del punto actual.
Puede parecer lógico que se requiriera únicamente tres satélites, puesto
que el propósito del GPS es determinar la posición del dispositivo en un
sistema tridimensional, que únicamente requeriría de tres esferas para ser
definido. La cuarta esfera es necesaria para introducir la variable tiempo en el
sistema. El retardo de las señales de los satélites puede variar enormemente
11
Desarrollo de un Sistema Inteligente GPS-Raster para una PDA
por el estado de las capas elevadas de la atmósfera, por las condiciones
climáticas y por la altura de los satélites sobre el horizonte. El cuarto satélite
permite determinar el retardo de las señales recibidas por cada satélite de
forma lo suficientemente exacta como para permitir que el dispositivo pueda
calcular su posición de modo fiable.
La medición exacta del tiempo es una característica fundamental en el
funcionamiento de los satélites GPS, puesto que las distancias a los satélites
que se utilizan se calculan como el tiempo que ha tardado en recorrerlas una
onda de radio, que viaja a la velocidad de la luz. Eso significa que un reloj que
calculara el tiempo con precisión de milésimas de segundo, fallaría en su
estimación por 300 km. Por ello, los satélites utilizan relojes atómicos de
extrema precisión. Es interesante notar que debido a que los relojes de los
satélites están sometidos tanto a la relatividad general como a la espacial, el
tiempo avanza ligeramente más rápido en ellos que en la Tierra.
Concretamente, los relojes de los satélites van aproximadamente 38
microsegundos al día más rápido que los relojes en la Tierra. Pero si los
dispositivos de recepción tuvieran relojes de ese nivel, costarían millones de
euros y nadie podría acceder a ellos. Para reparar la imprecisión producida por
el más limitado reloj del receptor es para lo que existe la señal del cuarto
satélite.
Recientemente, los campos en los que se aplican los dispositivos GPS
han dejado de estar limitados a su uso por parte de fuerzas militares, tareas de
12
Desarrollo de un Sistema Inteligente GPS-Raster para una PDA
salvamento y navegación profesional. Tras su introducción en dispositivos
portátiles de navegación disponibles al público general, aparecieron programas
de creación de itinerarios que eran capaces de generar rutas mínimas sobre un
PC que podían a continuación ser importadas a un dispositivo GPS. Debido al
éxito de este planteamiento, poco después empezaron a aparecer coches
equipados de serie con sistemas de navegación GPS integrados, y programas
de cálculo de rutas que funcionaban en tiempo real directamente sobre los
dispositivos de navegación GPS, el denominado autorouting.
El empleo de autorouting por parte de los dispositivos GPS requiere de
una completa base de datos de las vías de circulación de la zona recorrida
aparte del mapa de carreteras en sí. Esta base de datos debe incluir el trazado
de las carreteras, su longitud, sus conexiones con otras carreteras, etcétera.
Debido a estos requisitos, que hacen del proceso de creación de mapas de
preparados para autorouting un proceso lento y costoso, y del hecho de que la
tecnología es aún considerablemente nueva, las áreas del mundo que
disponen actualmente de mapas de carreteras con estas características, con
una base de datos como la descrita adjunta y con un mínimo de fidelidad a la
realidad y de exactitud se limitan a Estados Unidos, Canadá, Europa
Occidental y Australia. No es de sorprender, por tanto, la aparición de múltiples
comunidades de usuarios de GPS en otros países que se han dedicado a crear
sus propios mapas de navegación en su tiempo libre. Desgraciadamente, estos
grupos de usuarios están considerablemente limitados de modo evidente al no
disponer de los recursos a los que tiene acceso una compañía profesional.
13
Desarrollo de un Sistema Inteligente GPS-Raster para una PDA
Esto hace que la cobertura proporcionada en otros países por mapas creados
por estas comunidades sea bastante limitada.
14
Desarrollo de un Sistema Inteligente GPS-Raster para una PDA
4.2. Modelo Geográfico.
4.2.1. La Tierra
La Tierra como planeta no es una esfera perfecta, sino un esferoide
ligeramente achatado en los polos. Así, su radio mayor, en el ecuador es
6378.137 km, y en los polos de 6356,752 km. Para este proyecto se ha
considerado, no obstante, a la tierra como una esfera perfecta de radio
constante 6372 km puesto que la deformación producida por esta aproximación
es despreciable.
4.2.2. Meridianos y Paralelos
Las coordenadas geográficas que tradicionalmente se utilizan en la
navegación para determinar puntos sobre la superficie terrestre, y que también
son las utilizadas por los dispositivos GPS se denominan Latitud y Longitud.
La latitud es el ángulo que la recta que une el punto observado y el
centro de la tierra mantiene con el plano ecuatorial. Tradicionalmente se le da a
la latitud de los puntos situados en el Hemisferio Norte un valor positivo y a los
situados en el Hemisferio Sur un valor negativo. De este modo, la latitud varía
desde 90º en el Polo Norte, a 0º en cualquier punto situado en el Ecuador, a
-90º en el Polo Sur. Siguiendo este convenio, latitud aumenta conforme se
avanza hacia el Norte y se reduce conforme se avanza hacia el Sur. Este
15
Desarrollo de un Sistema Inteligente GPS-Raster para una PDA
convenio se ha introducido en el proyecto puesto que simplifica
considerablemente el funcionamiento matemático de la aplicación.
La longitud es el ángulo que la recta perpendicular al eje de rotación de
la Tierra que pasa por el punto observado mantiene con el semiplano definido
por el eje de rotación de la Tierra y por la localización del antiguo observatorio
astronómico ubicado en Greenwich, uno de los barrios de Londres. De modo
similar a la latitud, existe un convenio que define la longitud en puntos situados
al Este de este punto, también denominados conjuntamente como Hemisferio
Este, como positiva, mientras que los puntos situados al Oeste del semiplano, o
Hemisferio Oeste, como negativos. Siguiendo este convenio, la longitud varía
desde -180º, para los puntos situados en el semiplano opuesto a Greenwich, 0º
en el propio semiplano y +180º en el mismo punto en el que se empezó. Este
convenio también se ha adoptado en el proyecto, por razones análogas a las
del caso de la latitud.
Un paralelo es una línea ficticia trazada sobre la superficie de la Tierra
por la intersección de un plano perpendicular al eje de rotación con la Tierra.
En un paralelo, la latitud se mantiene constante, y sobre él se mide la longitud.
La longitud de la circunferencia definida por un paralelo varía desde 40075 km
en el Ecuador hasta 0 km en los polos. Por esto, la longitud de los grados de
longitud varía conforme la latitud del punto observado.
Un meridiano es una línea ficticia trazada sobre la superficie de la Tierra
por la intersección de un semiplano que parta del eje de rotación de la Tierra y
16
Desarrollo de un Sistema Inteligente GPS-Raster para una PDA
la superficie de la Tierra. Como tal, es una semicircunferencia. En un
meridiano, la longitud se mantiene constante y sobre él se puede medir la
latitud. Un antimeridiano es el meridiano situado en el punto opuesto del
planeta y que cierra la circunferencia definida por un meridiano. Puesto que la
longitud de la semicircunferencia definida por un meridiano es constante
independientemente de la longitud, la longitud de los grados de latitud es
constante. No obstante, no hay que olvidar que esto es solo porque se está
trabajando sobre una representación teórica de la Tierra como una esfera
perfecta. En realidad, al ser un esferoide, la longitud de los grados de latitud
varía según la latitud desde 110,57 en el Ecuador hasta 111,70 a la altura de
los polos. Es interesante notar que aún tomando la Tierra como un esferoide, la
longitud de los grados de latitud sigue siendo independiente de la longitud a la
que se encuentre el punto observado.
17
Desarrollo de un Sistema Inteligente GPS-Raster para una PDA
4.3. Proyección Mercator
Debido al hecho de que la Tierra es una esfera, es imposible representar
su superficie sobre un plano de forma fidedigna. A lo largo de la historia han
surgido múltiples sistemas de proyección para representar tratar de representar
la Tierra sobre un plano de un modo útil. La proyección Mercator es un sistema
de proyección cartográfico ideado en 1569 por el cartógrafo holandés Gerardus
Mercator.
En este sistema de proyección se emplea como superficie de proyección
un cilindro cuyo eje central es coincidente con el eje de rotación de la Tierra.
Los sistemas de proyección cilíndrica inevitablemente introducen una
deformación en dirección Este-Oeste alejándose del Ecuador en un ratio cuyo
valor es la secante de la latitud con respecto a la escala en el Ecuador. La
característica que diferencia a la proyección Mercator de otros sistemas de
proyección cilíndrica como el de Miller o el de plate careé es la introducción de
una deformación en la misma proporción en sentido Norte-Sur. El resultado que
hacer esto conlleva es que las distancias que separan los paralelos y los
meridianos se mantienen constantes en el mapa. Además, los ángulos
representados sobre el mapa son iguales que los presentes en la superficie de
la Tierra. Como resultado de esto, las líneas de orientación constante, es decir,
las líneas que avanzan sin cambiar de rumbo moviéndose por la superficie de
la Tierra son igualmente rectas sobre el mapa, independientemente de la
18
Desarrollo de un Sistema Inteligente GPS-Raster para una PDA
longitud o latitud a la que se encuentre el punto observado. Este es el motivo
por el cuál pese a que proyección Mercator, con más de 400 años de
antigüedad, y que exagera de modo descomunal las áreas de las regiones
situadas a elevadas latitudes sigue siendo una de las proyecciones más
empleadas hoy en día.
No obstante, la proyección Mercator no ha sido seleccionada como
proyección para la representación del modelo de Tierra desarrollado en el
proyecto por estos motivos sino por su extrema simplicidad de cálculo. Puesto
que se espera que a la escala a la que se vaya a emplear el mapa la curvatura
de la Tierra sea poco apreciable, la deformación que las diferentes
proyecciones introducen pasa a un segundo plano, siendo el principal motivo
para la selección de un sistema de proyección su sencillez desde un punto de
vista matemático. Por esto es por lo que se ha seleccionado la proyección
Mercator para realizar las conversiones de coordenadas.
19
Desarrollo de un Sistema Inteligente GPS-Raster para una PDA
4.4. Búsqueda Heurística
El razonamiento puede entenderse como la búsqueda de una solución
en una base de conocimientos. Según esta filosofía existen varios algoritmos
de inteligencia artificial cuyo funcionamiento se basa en la búsqueda de la
solución óptima a través de una estructura como un grafo o un árbol generados
a partir de la base de conocimiento. Estos algoritmos se denominan algoritmos
de búsqueda heurística.
La búsqueda de soluciones óptimas a través de grafos no se limita al
campo de la inteligencia artificial, sino que es un problema clásico para el que
se han desarrollado multitud de algoritmos de búsqueda, muchos de los cuales
no tienen ningún tipo de inteligencia. Los algoritmos de búsqueda heurística se
diferencian de estos en el empleo de una cierta cantidad de conocimiento
durante el proceso de búsqueda. Este conocimiento ayuda al algoritmo a
escoger un camino hacia la solución, aunque puede que el camino no lleve a la
solución óptima. Al emplear un algoritmo de búsqueda heurística se está
sacrificando la exahustividad propia de un algoritmo de búsqueda por fuerza
bruta a cambio de obtener una solución para un problema de forma más
eficiente que con los algoritmos tradicionales.
En el caso de este problema, se ha recurrido al uso de un algoritmo de
búsqueda heurística debido a que la base de conocimiento sobre la que se está
trabajando, que no es otra que el propio mapa de carreteras que se está
20
Desarrollo de un Sistema Inteligente GPS-Raster para una PDA
analizando, ya tiene una estructura propia de un grafo; Es decir, se compone
de una serie de puntos significativos, como cruces, ciudades, etcétera, que
están conectados entre sí por una serie de caminos, las vías de circulación,
definidos por unos ciertos pesos, sus longitudes en kilómetros.
El problema a resolver también es de los clásicos que se suele resolver
mediante algoritmos de búsqueda, tanto en el caso de los normales como en el
de los algoritmos de búsqueda heurística: La búsqueda del camino de mínimo
peso entre dos puntos definidos de un grafo, desde el punto donde se inicia la
búsqueda hasta un punto meta donde concluye la búsqueda. En el caso de un
grafo generado a partir de un mapa de carreteras, encontrar el camino de
mínimo peso supone encontrar la ruta de mínimo recorrido a través del mapa
de carreteras representado por el grafo.
21
Desarrollo de un Sistema Inteligente GPS-Raster para una PDA
4.4.1. Algoritmo A*
De entre los diferentes algoritmos de búsqueda heurística existentes, se
ha seleccionado para el cálculo de la ruta de mínimo recorrido el algoritmo de
búsqueda heurística A* para el cálculo de la ruta de mínimo recorrido sobre el
grafo generado a partir del mapa de carreteras.
Entre los diferentes algoritmos de búsqueda existen dos métodos
básicos para encontrar la solución óptima. La búsqueda en profundidad explora
una rama del árbol de soluciones, o un posible camino desde el punto de vista
del grafo, hasta que encuentra la solución o llega al final. Emplear un algoritmo
basados en profundidad aseguraría llegar hasta el destino, pero no el que se
hiciera por el camino más corto. La búsqueda en anchura expande todos los
nodos desde el origen, hasta que de estos resulta en el nodo solución. La
búsqueda en anchura asegura encontrar el camino con menos saltos hasta el
destino, pero este no tiene porque ser el óptimo. Además, su complejidad y
tiempo de ejecución son exponenciales respecto al número de nodos del grafo.
Con la complejidad que se espera tenga el grafo generado por encontrar la
solución óptima, este método se vuelve del todo inaplicable.
Para el cálculo de las rutas mínimas, el programa no va a hacer uso de
ninguno de estos dos métodos elementales. El algoritmo que se empleará es
un método de búsqueda del primer mejor. Éste tipo de algoritmos combina las
ventajas de los algoritmos basados en profundidad y en anchura siguiendo un
22
Desarrollo de un Sistema Inteligente GPS-Raster para una PDA
único camino, pero cambiando de ruta en cualquier momento, cuando aparezca
una ruta alternativa que resulte más prometedora que la actual. Para decidir si
se va a cambiar de ruta, estos algoritmos hacen uso de un cierto conocimiento,
con lo que añaden una inteligencia al proceso de búsqueda, lo que los hace
algoritmos de búsqueda heurística.
Más exactamente, se va a emplear uno de los algoritmos denominados
Branch-and-Bound, un perfeccionamiento de los algoritmos de Búsqueda del
Primer Mejor que añaden a los cálculos para la decisión del camino hacia el
destino el coste acumulado de lo recorrido hasta el momento. Como resultado,
no sólo localizan la solución, sino que además lo hacen a través del camino
óptimo hacia ella. Puesto que el propósito para el que se están usando estos
algoritmos es precisamente el de localizar el camino de mínimo peso, es decir,
recorrido, hasta el nodo destino, este tipo de algoritmos resulta perfecto para la
tarea.
El algoritmo A* es uno de los algoritmos de Branch-and-Bound. Este
algoritmo mejora el modelo básico Brach-and-Bound incorporando una función
de mérito que se calcula como la combinación del coste incurrido hasta el nodo
actual más una función de estimación heurística que predice cual es el coste
desde los diferentes nodos vecinos hacia la meta. Esta función de mérito se
emplea para decidir hacia que nodo vecino se va a expandir la ruta a
continuación, lo que implica incurrir en un coste operacional superior pero al
mismo tiempo permite encaminar la búsqueda directamente en la dirección de
23
Desarrollo de un Sistema Inteligente GPS-Raster para una PDA
la meta optima. Esta función de estimación heurística introduce una cierta
cantidad de inteligencia y conocimiento en el propio algoritmo de selección de
caminos. El nivel en el que la solución calculada por el algoritmo será óptima y
el tiempo que se tardará en alcanzarla dependen directamente de la calidad de
la función heurística, por tanto su selección es un punto fundamental en el
desarrollo del algoritmo.
En este proyecto se ha implementado como función de estimación
heurística la distancia en línea recta que separa el nodo que esta siendo
evaluado para expandir la ruta en su dirección y el nodo destino. En lo que esto
resulta es que el algoritmo considera que, en una situación en la que los
caminos hacia los nodos sean equivalentes, el sistema va a optar por el nodo
vecino más cercano al destino. En otras palabras, el algoritmo actúa llevado
por el conocimiento de que avanzando en la dirección en la que se encuentra el
destino es como más probablemente vaya a encontrar la ruta de longitud
mínima. Esto no debe llevar a pensar que en caso de que alcanzar el destino
requiera en algún momento alejarse de él o en él que el camino más directo no
sea el más corto el algoritmo se va a ver visto en problemas. Sin duda tardará
más al tener que probar antes los caminos que van hacia el destino, pero
seguirá obteniendo la ruta óptima. En la mayoría de los casos, no obstante,
especialmente en los que pueden presentarse en el trazado de rutas sobre
mapas concerniente a este sistema, seguirá siendo más rápido que cualquiera
de los otros algoritmos de búsqueda heurística. Por esta superioridad en la
aplicación a este campo, y puesto que la función de búsqueda que se ha
24
Desarrollo de un Sistema Inteligente GPS-Raster para una PDA
empleado es directamente deducible, y fácil de implementar y calcular, es por
lo que se ha decidido emplear este algoritmo para el cálculo de las rutas
mínimas.
4.4.2. Funcionamiento de A*
Tomando como ejemplo de Grafo de Rutas este mapa de Rumania:
25
Desarrollo de un Sistema Inteligente GPS-Raster para una PDA
En el que la distancia en línea recta desde cada una de las ciudades
(nodos) representadas en el mapa hasta Bucarest (nodo destino) es:
Arad 366 Mehadia 241
Bucarest 0 Neamt 234
Craiovra 160 Oradea 380
Dobreta 242 Pitesti 100
Efoire 161 Rimnicu Vilcea 193
Fagaras 176 Sibiu 253
Giurgiu 77 Timisoara 329
Hirsova 151 Urziceni 80
Iasi 226 Vaslui 199
Lugoj 244 Zerind 374
Se va a emplear el algoritmo A* con la misma implantación que se
emplea en el cálculo de rutas mínimas en la aplicación, empleando la misma
función heurística, para calcular la ruta de mínimo recorrido entre Arad y
Bucarest
26
Desarrollo de un Sistema Inteligente GPS-Raster para una PDA
En Arad, la función de evaluación, calculada como suma entre el peso
de la ruta acumulada hasta este momento y el valor de la función de evaluación
en ese punto tiene el valor de:
Arad: 366 = 366+0
Tras la expansión de Arad, los valores de las funciones de evaluación
pasan de cada uno de sus vecinos hacia los que se expande son:
Sibiu: 393 = 140+253
Timisoara: 447 = 118+329
Zerind: 449 = 75+374
27
Desarrollo de un Sistema Inteligente GPS-Raster para una PDA
De las diferentes rutas disponibles, avanzar hacia Sibiu es la que tiene el
mínimo valor en su función de evaluación. Por tanto, se expande la ruta en esa
dirección.
28
Desarrollo de un Sistema Inteligente GPS-Raster para una PDA
Ahora se expande el nodo de Sibiu, y se calculan las funciones de
evaluación respectivas. Las rutas que se pueden expandir desde Sibiu no solo
se comparan entre sí, sino también con las que antes se calcularon desde Arad
Timisoara: 447 = 118+329
Zerind: 449 = 75+374
Arad: 646 = 280+366
Fagaras: 415 = 239+176
Oradea: 671 = 291+380
Rimnicu Vilcea: 413 = 220+193
Esta vez, la dirección de expansión seleccionada es Rimnicu Vilcea
29
Desarrollo de un Sistema Inteligente GPS-Raster para una PDA
Expandiendo Rimnicu Vilcea:
Timisoara: 447 = 118+329
Zerind: 449 = 75+374
Arad: 646 = 280+366
Fagaras: 415 = 239+176
Oradea: 671 = 291+380
Craiova: 526 = 366+160
Pitesti: 417=317+100
Sibiu: 553 = 300+253
En este caso, la ruta no se expande en ninguna de las direcciones que
han surgido de expandir Rimnicu Vilcea, sino que el algoritmo da “un paso
atrás” y selecciona la ruta que llevaba a Fagaras para su expansión
30
Desarrollo de un Sistema Inteligente GPS-Raster para una PDA
Expandiendo Fagaras:
Timisoara: 447 = 118+329
Zerind: 449 = 75+374
Arad: 646 = 280+366
Oradea: 671 = 291+380
Craiova: 526 = 366+160
Pitesti: 417=317+100
Sibiu: 553 = 300+253
Bucarest: 450 = 450+0
Sibiu: 591 = 338+253
En esta tanda de expansión de rutas, se producen dos eventos
destacables. Primero, Sibiu aparece otra vez. Esta segunda aparición se debe
a en este momento se han descubierto dos rutas distintas, y ambas llevan a
Sibiu desde Arad, siguiendo diferentes caminos de diferentes longitudes. El
segundo evento es que Bucarest, el destino, aparece entre los posibles
destinos de la expansión. No obstante, el valor que lleva hasta ella no es el
mínimo, y por tanto no se expande la ruta en esa dirección. En su lugar la ruta
se expande hacia Pitesti. Existe la posibilidad de que a través de Pitesti se
encuentre un camino hacia Bucarest que sea más corto.
31
Desarrollo de un Sistema Inteligente GPS-Raster para una PDA
Tras la expansión de Pitesti:
Timisoara: 447 = 118+329
Zerind: 449 = 75+374
Arad: 646 = 280+366
Fagaras: 415 = 239+176
Oradea: 671 = 291+380
Craiova: 526 = 366+160
Sibiu: 553 = 300+253
Bucarest: 450 = 450+0
Sibiu: 591 = 338+253
Bucarest: 418 = 418+0
Craiova: 615 = 455+160
Rimnicu Vilcea: 607 = 414+193
32
Desarrollo de un Sistema Inteligente GPS-Raster para una PDA
Nuevamente aparece una ruta hacia Bucarest entre las posibles. Su
función de evaluación es en efecto menor que la que se había calculado antes,
de hecho es la menor de todas las que se habían calculado. Eso significa que
la ruta se expande en esa dirección y que se ha llegado al destino. Por tanto, el
algoritmo se detiene y la ruta mínima queda como:
33
Desarrollo de un Sistema Inteligente GPS-Raster para una PDA
4.5. Tecnologías
4.5.1. PDA (Personal Digital Assistant)
Las PDA (Personal Digital Assistant) han evolucionado desde su origen
como simples organizadores electrónicos a dispositivos extremadamente
completos, que pueden perfectamente describirse como ordenadores de
bolsillo. Actualmente, el rango de funciones que es habitual encontrar en una
PDA engloba una agenda, organizador, calculadora, acceso a Internet
mediante wireless, sincronización con una base de datos, grabación de sonido,
y envió de mensajes a móviles. Es así mismo cada vez más frecuente la
inclusión de dispositivos receptores GPS, lo cual les ha otorgado todo un nuevo
rango de funcionalidades, incluyendo localización global, navegación GPS y
uso de sistemas de autorouting.
Como ya se ha mencionado, el propósito del proyecto desarrollar una
aplicación que sea capaz de funcionar sobre una plataforma PDA típica con
capacidades GPS. Entre las diferentes arquitecturas de PDA existentes en el
mercado se ha seleccionado para este desarrollo la plataforma de Microsoft
Pocket PC. Esto es debido a que es posiblemente la plataforma PDA
actualmente más extendida, gracias especialmente al uso de Windows Mobile
como su sistema operativo. Windows Mobile fue desarrollado por Microsoft a
partir de Windows CE, el sistema operativo Windows para microordenadores y
sistemas integrados. Windows CE no es una versión recortada del Windows de
34
Desarrollo de un Sistema Inteligente GPS-Raster para una PDA
escritorio sino que emplea un kernel propio. El emplear Windows Mobile provee
al Pocket PC de múltiples funciones de interacción con los sistemas Windows
de escritorio y con otras herramientas de Microsoft como Outlook y el paquete
Office.
Entre las diferentes versiones de Pocket PC se ha empleado para el
desarrollo de la aplicación Pocket PC 2002, aunque esto es únicamente a su
compatibilidad con las herramientas de desarrollo que se han utilizado en el
proyecto. La aplicación a desarrollar es compatible con cualquier versión de la
plataforma Pocket PC, y puede ser portada a cualquiera de las otras versiones
de la plataforma de modo inmediato.
35
Desarrollo de un Sistema Inteligente GPS-Raster para una PDA
4.5.2. SVG (Scalable Vector Graphics)
Para poder ejecutar un análisis y tratamiento de imagen al nivel que el
sistema desarrollado requiere para la realización de sus funciones, es
necesario estar trabajando con una representación vectorial de la imagen
analizada.
Las imágenes representadas en un formato digital pueden estar en dos
formatos básicos, de los cuales derivan todos los demás formatos existentes.
Los formatos ráster, guardan la imagen como una superficie de píxeles,
almacenando el color y la posición de cada píxel de la imagen. Esto produce
una fidelidad perfecta con la imagen original, pero resulta en archivos de gran
tamaño. Además, debido a la falta de “inteligencia” del archivo, es imposible
extraer datos de los que representa por programas de análisis de imagen sin
emplear un gran número de cálculos.
El formato vectorial, por otra parte, guarda datos que describen lo que la
imagen representa. Es decir, almacena las coordenadas, ángulos, dimensiones
y colores de los elementos representados en la imagen. Esto puede lleva a una
perdida de características particularmente complejas de la imagen, pero resulta
mucho más manejable desde un punto de vista computacional. Así, los gráficos
vectoriales se emplean para convertir diseños gráficos a programas de CAD, o
reconocimiento de texto en imágenes. El sistema que se está desarrollando
36
Desarrollo de un Sistema Inteligente GPS-Raster para una PDA
también se ve beneficiado por las posibilidades de análisis directo de la imagen
que proporciona el formato vectorial.
De entre el gran rango de formatos vectoriales existentes se ha
seleccionado para el desarrollo del proyecto el estándar SVG (Scalable Vector
Graphics). SVG es un estándar desarrollado por el World Wide Web
Consortium, responsable de algunos de los más importantes estándares del
mundo de la informática, incluyendo HTML y XML.
El principal motivo de la selección de SVG como formato de imagen
vectorial del proyecto es el hecho de que, internamente, es en realidad un
documento XML con un cierto formato. Esto permite al sistema acceder
directamente a los datos de la imagen a través de simples funciones de
interacción con XML.
En un principio pensaba emplearse la implementación SVGBasic, una
versión del formato especialmente pensada para su uso en sistemas
empotrados y dispositivos portables, como es el caso de la plataforma PDA. No
obstante, debido a la división del sistema desarrollado en dos módulos, los
archivos SVG nunca llegan ser empleados sobre la plataforma PDA.
37
Desarrollo de un Sistema Inteligente GPS-Raster para una PDA
4.5.3. AutoTrace
Para poder trabajar sobre una imagen de un mapa de carreteras es que
esa imagen se trate de imagen vectorial, y en formato SVG, que es el formato
que el sistema esta desarrollado para reconocer. Pero el propósito del proyecto
es permitir al usuario emplear como mapa de carreteras base cualquier
imagen, no sólo una que ya se encuentre en el formato adecuado, lo cual no
ocurrirá frecuentemente. De hecho, es lógico esperar que el usuario dispondrá
de la imagen del mapa en un formato ráster. Es por ello necesario convertir la
imagen del mapa de carreteras que se está analizando al formato empleado
por el sistema antes de empezar el propio análisis.
Para ello es necesario un elemento, comúnmente denominado como
motor de vectorización, que realice esta conversión. Se ha considerado que el
desarrollo de un motor de vectorización propio queda fuera del alcance del
proyecto, de hecho un desarrollo de este calibre podría ser considerado en sí
mismo como un proyecto de fin de carrera entero. Por ello, se ha optado por
adoptar en el proyecto un motor de vectorización ya desarrollado. Para esta
tarea se ha seleccionado el proyecto AutoTrace.
AutoTrace es un el resultado de un proyecto desarrollado con el
propósito de crear un motor de vectorización libremente disponible con
capacidades similares a las de aplicaciones comerciales como CorelTrace y
Adobe Streamline. De hecho, es ya superior en múltiples aspectos. Autotrace
38
Desarrollo de un Sistema Inteligente GPS-Raster para una PDA
es además, gratuito, tiene código abierto y es multiplataforma. Se distribuye
bajo la licencia GNU GPL. Autotrace fue seleccionado al ser un programa
gratuito, con un funcionamiento lo suficientemente eficaz y eficiente para los
requisitos del proyecto y que tenía soporte para la generación de ficheros SVG
como salida directa.
39
Desarrollo de un Sistema Inteligente GPS-Raster para una PDA
4.5.4. BMP
Windows Bitmap es sin duda el formato de imagen ráster más popular y
simple que existe. Su nombre no debe llevar a la confusión de que este formato
es empleado únicamente sobre sistemas Windows. Es por esto por lo que se
ha decido unificar los formatos de entrada del programa como BMP, siendo
esta la entrada que se le proporciona al Módulo Enrutador como archivo a
analizar y la que se pasa al motor de vectorización AutoTrace, agilizando así el
análisis del mapa sin necesidad de conversiones de tipo previas a un formato
interno único.
No cabe duda de que el usuario va a poder convertir a este formato
cualquier mapa que pueda poseer en cualquier otro formato de imagen, pues
básicamente todos los programas de tratamiento de imagen, incluyendo los
gratuitos como Gimp y Paint, que se encuentra en todo ordenador con un
sistema operativo Windows, permiten esta simple conversión. Además, BMP es
el principal formato producido por los equipos de escaneo de imágenes,
método que se espera sea uno de los principales para la generación de
imágenes de mapa que vayan a ser empleadas por el sistema.
40
Desarrollo de un Sistema Inteligente GPS-Raster para una PDA
4.5.5. XML (Extensible Markup Language)
XML (Extensible Markup Language) es uno de los más importantes
estándares del mundo informático. Fue desarrollado por el World Wide Web
Consortium, al igual que el formato de imagen vectorial que fue seleccionado
para ser empleado por el proyecto, SVG. El propósito con el cual fue
desarrollado el XML era el ser un lenguaje de etiquetas generalista que se
empleara para desarrollar lenguajes de etiquetas especializados. Seguir este
estándar facilitaría la interacción entre programas originalmente incompatibles,
y el compartimiento de información, especialmente a través de Internet.
Siguiendo esta filosofía, el sistema desarrollado hace un uso extensivo
de XML, recurriendo a él cada vez que tiene que manejar o escribir datos a o
desde fuentes externas.
Debido a que SVG es internamente un documento XML como ya se ha
descrito, toda la interacción de la aplicación con la imagen una vez vectorizada
se hace a través de XML. También se ha empleado XML para codificar los
datos del Grafo de Rutas en el documento que el Módulo Vectorizador prepara
para transmitir al Módulo Enrutador. Este último también codifica los datos
relativos al posicionamiento del mapa una vez este ha sido calculado por parte
del Módulo Enrutador, almacenando los resultados en el mismo Documento del
Grafo de Rutas. Por último, todos los datos relativos a la configuración de la
aplicación y a las opciones seleccionadas por el usuario que deban
41
Desarrollo de un Sistema Inteligente GPS-Raster para una PDA
permanecer cuando el sistema cuando la aplicación no esta funcionando se
guardan en un archivo de configuración que también esta codificado en XML.
42
Desarrollo de un Sistema Inteligente GPS-Raster para una PDA
4.5.6. Microsoft Visual Studio .NET
La plataforma de desarrollo central para la programación del proyecto
que se ha seleccionado es Microsoft Visual Studio .NET 2003. Se ha decidido
emplear este entorno en particular debido a que fue utilizado para la realización
de diversas prácticas durante la carrera. Aprender a utilizar un nuevo entorno
de programación hubiera robado tiempo al desarrollo principal del proyecto y
hubiese sido considerablemente costoso puesto que el entorno .NET 2003 ya
se poseía antes del inicio del desarrollo de proyecto. Por último, el propio .NET
proporciona un entorno de desarrollo para microordenadores y para la
plataforma Pocket PC 2002 y el sistema operativo Windows CE en particular.
Desde un punto de vista de la programación del sistema, el proyecto no
requiere de ningún requisito especial que fuerce el empleo de un entorno
alternativo. Por estos mismos motivos es por los que tampoco se ha empleado
la recientemente publicada última versión del entorno, Microsoft Visual Studio
2005.
43
Desarrollo de un Sistema Inteligente GPS-Raster para una PDA
4.5.7. C#
C# es un lenguaje orientado a objetos desarrollado por Microsoft a partir
de C++ como parte de su iniciativa .NET. Adopta conceptos de otros lenguajes,
principalmente Delphi, Visual Basic y Java, buscando principalmente crear un
lenguaje cuyo funcionamiento y requisitos fuesen simples.
C# se ha seleccionado como lenguaje de programación para el proyecto,
al igual que la plataforma de desarrollo .NET, por el hecho de la practica que
con él se ha obtenido durante la carrera, tanto directamente como de forma
sinérgica a través del trabajo con Java, lenguaje con el que comparte un
elevado número de similitudes. C# es así mismo posiblemente el lenguaje más
fiable, directo y estable de los presentados por el entorno .NET.
44
Desarrollo de un Sistema Inteligente GPS-Raster para una PDA
Capitulo 5 - Desarrollo del Sistema GPS
45
Desarrollo de un Sistema Inteligente GPS-Raster para una PDA
5.1. Decisiones de Diseño
Aunque el planteamiento inicial de la aplicación era que funcionara
enteramente sobre una plataforma Pocket PC, se ha decidido realizar el
proceso de tratamiento de imagen del mapa de forma independiente sobre
plataforma PC. Esto es principalmente debido a que el proceso de
vectorización es muy pesado y tiene elevados requisitos de memoria y una
gran cantidad de cálculos matemáticos considerablemente complejos con lo
que ejecutarlo sobre una plataforma tan limitada como un Pocket PC resulta del
todo imposible. Por este hecho precisamente es por lo que además ha sido
imposible obtener un motor de vectorización preparado para su funcionamiento
sobre Pocket PC.
Puesto que este proceso idealmente solo necesitará realizarse una vez
por cada mapa que vaya a emplear el usuario y no requiere de interacción con
el dispositivo GPS del Pocket PC, se ha decidido desarrollar un módulo para
plataforma PC que realizará el proceso de tratamiento de imagen y generación
del grafo y generará un documento XML del que el módulo enrutador extraerá
la información necesaria para trabajar. Puesto que el proceso de localización
del mapa en unas coordenadas geográficas determinadas requieren del uso del
dispositivo GPS, este proceso en particular sea realizado por el Pocket PC, y
sus datos serán insertados en el documento XML.
46
Desarrollo de un Sistema Inteligente GPS-Raster para una PDA
De este modo, la división en dos módulos de funcionamiento queda
como sigue. El módulo desarrollado para PC, denominado Módulo Vectorizador
engloba todas las tareas relacionadas con el tratamiento de la imagen. Eso
significa que será el único interactuará con el motor de vectorización AutoTrace
y con la versión vectorial del mapa, el archivo SVG. El Módulo Vectorizador
está enteramente orientado al desarrollo de un grafo de rutas correcto y fiable
que represente el mapa de carreteras, y esta diseñado para comprimir el
resultado de todo su trabajo en un único documento XML que es leído por el
otro módulo.
El segundo módulo, desarrollado para una plataforma Pocket PC se
denomina Módulo Enrutador. La única relación que tiene el Módulo
Vectorizador es el documento XML del que lee los datos relativos al Grafo de
Rutas. De este, el módulo debe extraer de ese archivo, y de la imagen original,
que también se introduce para que el usuario indique los puntos entre los que
requiere que se calculen las rutas mínimas, todos los datos necesarios para su
completo y correcto funcionamiento. El principal propósito del Módulo
Enrutador es el cálculo de las rutas que el usuario requiera. El Módulo
Enrutador, al estar incorporado en la PDA es así mismo el que interactúa con el
dispositivo GPS. Por ello, también es capaz de calcular la localización actual
del usuario y trazar rutas de y hacia su punto actual. Por eso mismo, también
se ha decidido incorporar la función de posicionamiento en este módulo. El
módulo es capaz, si el usuario lo desea, de guardar los datos relativos a la
localización en el mismo documento que el propio grafo de rutas para su
47
Desarrollo de un Sistema Inteligente GPS-Raster para una PDA
posterior utilización. Esta es la única modificación que este módulo puede
hacer sobre el documento.
48
Desarrollo de un Sistema Inteligente GPS-Raster para una PDA
5.2. Diseño de la Aplicación
Desde el punto de vista puramente de la arquitectura, el proyecto es
considerablemente simple. El peso del desarrollo recae sobre el desarrollo e
implantación de los algoritmos empleados por el sistema y sobre el uso de
diferentes técnicas de tratamiento de imágenes. Como resultado, la mayor
parte de los diagramas de diseño no aportan una cantidad de información
significativa sobre el proyecto.
Se incluyen a continuación los diagramas que se han considerado como
significativos en la aplicación. Los diagramas incluidos contienen una
representación externa de los dos módulos de los que se compone la
aplicación y de la relación existente entre ellos, y una representación interna de
su funcionamiento en forma de Diagramas de Flujo de Datos. Se incluye así
mismo el Diagrama de Secuencia del proceso de análisis de la imagen y
generación del Grafo de Rutas, pues éste es el proceso de mayor volumen y
más complejo de la aplicación.
49
Desarrollo de un Sistema Inteligente GPS-Raster para una PDA
5.2.1. División en módulos
50
PCMódulo
Vectorizador
PDAMódulo
Enrutador
Documento XML
Desarrollo de un Sistema Inteligente GPS-Raster para una PDA
5.2.2. Diagrama de Flujo de Datos del Módulo Vectorizador
51
Desarrollo de un Sistema Inteligente GPS-Raster para una PDA
5.2.3. Diagrama de Flujo de Datos del Módulo Enrutador
52
Desarrollo de un Sistema Inteligente GPS-Raster para una PDA
5.2.4. Diagrama de Secuencia del Proceso de Vectorización
53
Desarrollo de un Sistema Inteligente GPS-Raster para una PDA
54
Desarrollo de un Sistema Inteligente GPS-Raster para una PDA
5.3. Grafo de Rutas
Un grafo es una estructura abstracta central de la teoría de grafos que
representa una serie de relaciones entre elementos, y que se emplea en
multitud de algoritmos matemáticos. Suele representarse como un conjunto de
puntos denominados vértices o nodos conectados entre sí mediante una serie
de líneas denominadas aristas o arcos. Generalmente, se suele definir
matemáticamente como la combinación de dos conjuntos:
N es un conjunto de vértices o nodos
A N x N es un conjunto de pares de nodos llamados arcos o aristas
Dentro de esta definición, se define a un grafo como no dirigido si los
arcos son pares no dirigidos y grafo dirigido o dígrafo si lo son.
El Grafo de Rutas es el principal elemento del algoritmo de cálculo de
rutas mínimas. Se trata de un grafo no dirigido que representa una abstracción
del mapa de carreteras, reduciendo todos sus datos a únicamente aquellos que
resultan importantes en el proceso de cálculo de rutas. Está compuesto por una
serie de nodos que representan puntos que el algoritmo de generación ha
reconocido como significativos dentro del mapa de carreteras y por arcos que
representan las vías de circulación que los conectan. Los nodos están ubicados
sobre el plano del grafo, que coincide con el de la imagen del mapa en las
mismas coordenadas que los puntos que representan. Así, cuando el usuario
55
Desarrollo de un Sistema Inteligente GPS-Raster para una PDA
quiere calcular el recorrido entre dos puntos, el algoritmo de trazado de rutas
puede determinar el nodo cuyas coordenadas más se ajustan al del punto
requerido por el usuario. Los arcos como ya se ha dicho, representan
carreteras, pero como es natural en los arcos, son representados en el plano
del grafo como líneas rectas, por lo que normalmente no se ajustarán a la
carretera que representan, a menos que esa carretera sea también una línea
recta. No obstante, tanto la carretera como el arco empezarán y terminarán en
las mismas coordenadas.
Desde un punto de vista computacional, los datos asociados a los nodos
son sus coordenadas sobre el plano del grafo, y el conjunto de arcos que
pasan por ellos. Así mismo, mediante funciones asociados a ellos, los nodos
pueden identificar a sus nodos vecinos, de modo que se puede decir que estos
también son parte de los datos asociados a un nodo.
Los datos asociados a los arcos son su longitud y los nodos entre los
cuales está trazado. La longitud es la misma que la de la carretera a la que
representa, a pesar de que su trazado no coincida con ésta. En el caso de un
arco que haya sido generado como parte del proceso de refinado o por parte
del usuario mediante el editor de grafo, su longitud es la misma que la del
propio arco, es decir, la del segmento que une los dos puntos sobre los que
esta trazado. En el caso particular de dos arcos que hayan sido generados al
dividir un arco en dos mediante la herramienta del editor de grafo para añadir
nodos, la longitud de cada uno de los arcos resultantes es igual a un porcentaje
56
Desarrollo de un Sistema Inteligente GPS-Raster para una PDA
de la longitud total del arco del que provienen, de modo que la suma de sus
longitudes sigue siendo la misma que la del arco original.
Como ya se ha definido, el grafo de rutas es un grafo no dirigido. Esto
significa que las rutas que se pueden trazar pueden recorrer los arcos en
cualquier sentido, lo que a su vez implica que el algoritmo de trazado de rutas
considera que todas las carreteras son de doble sentido. Esto no es un
problema en el caso de carreteras fuera de vía de ciudad, pues ese suele ser el
caso. Al tratar mapas metropolitanos no obstante, esta limitación del grafo
provoca que sea poco útil para desplazamientos en coche. Un peatón, por otro
lado, podría seguir usando el mapa para calcular las rutas que requiera sin
problemas.
Se considero en un momento del desarrollo del proyecto el empleo de un
grafo dirigido para resolver este problema. No obstante, esta posibilidad se
descartó posteriormente por varios motivos. El principal de estos motivos es el
hecho de que el único modo para indicar a cada arco en que sentido discurría
la calle que representaba era haciendo que el propio usuario lo indicase.
Además de que insertar el sentido correspondiente a todos los arcos del grafo
es una tarea extremadamente pesada y lenta a la que definitivamente no se
quiere someter al usuario, si éste dispone de suficiente conocimiento sobre la
zona que esta mapeando como para poder indicar toda esta información, no se
puede decir que realmente necesite la herramienta.
57
Desarrollo de un Sistema Inteligente GPS-Raster para una PDA
5. 4. Módulo Vectorizador
El Módulo Vectorización es el primer módulo de los dos en los que se ha
dividido el proyecto. Realizando su funcionamiento normal, tomara un mapa en
un formato BMP, lo someterá a un proceso de análisis que resultará en la
creación de un Grafo de Rutas que contendrá toda la información
representativa para el cálculo de rutas sobre el mapa, refinará este grafo tanto
por si mismo mediante una serie de algoritmos automatizados, como mediante
acción directa y voluntaria del usuario, y codificará todo esta información en un
documento XML con un cierto formato propio que será leído por el otro módulo
para la realización de sus propias funciones.
El Módulo Vectorizador ha sido desarrollado para su uso sobre una
plataforma PC. Esto es debido a varios motivos que o bien justifican que las
tareas que va a realizar el módulo funcionarán mejor si se desarrolla sobre PC
o bien directamente impiden que se desarrolle para una plataforma PDA con
éxito. Primero, la realización de las tareas que se han asignado al Módulo de
Vectorización requiere interactuar con un motor de vectorización, un tipo de
aplicación que no existe en un formato portable. El desarrollo de un motor de
vectorización propio para su funcionamiento en combinación con el sistema es
una actividad que se ha considerado se encuentra fuera del alcance del
proyecto. Además, existen motivos lógicos por los que no existe una versión
para PDA de ningún motor de vectorización. La vectorización es un proceso
muy pesado que requiere de un número elevado de operaciones matemáticas
58
Desarrollo de un Sistema Inteligente GPS-Raster para una PDA
considerablemente complejas, resultando del todo inviable sobre una
plataforma tan limitada como una PDA.
Si bien este es un motivo por el cual no implantar la vectorización sobre
la PDA, existen otros motivos por los cuales implantar el módulo en una
plataforma PC. Es esperable que la generación del Grafo de Rutas de un
determinado mapa se realice únicamente una vez por cada mapa con el que se
quiera trabajar. Así mismo, es esperable que la principal vía a través de la cual
van a obtenerse los mapas que van a ser empleados para el cálculo de rutas
mínimas sea el propio PC del usuario, de modo que ya puede directamente, al
tiempo que obtiene los diferentes mapas que desea emplear, prepararlos para
su uso por parte del sistema de cálculo de rutas. Por último, la vectorización en
sí no requiere de ninguna interacción con el dispositivo GPS. Por todos estos
motivos parece evidente que este proceso debe ser realizado por parte del PC
que luego pasará sus resultados a la PDA.
59
Desarrollo de un Sistema Inteligente GPS-Raster para una PDA
5.4.1. Tratamiento de la imagen
El principal propósito del Módulo Vectorizador es analizar la imagen del
mapa para localizar las carreteras, calcular sus parámetros y generar el grafo
de rutas a emplear por parte del dispositivo GPS.
5.4.1.1. Identificación de carreteras
Se ha considerado que el método más eficaz para identificar las
carreteras, que en cuestiones de aspecto son extremadamente similares a
otros elementos geográficos que podían fácilmente inducir a confusión por
parte del algoritmo de conversión como ríos, líneas de coordenadas o texto de
gran tamaño era mediante la intervención por parte del usuario. Así, antes de
ejecutar la conversión, el usuario define que elementos son vías de circulación
en el mapa. Para identificarlas, se ha considerado que debido al modo en el
que se representan habitualmente las vías de circulación en los mapas de
carreteras, el mejor modo era por la identificación del color que se emplea para
dibujar cada uno de los tipos de vía. Así, lo único que tiene que hacer el
usuario señalar mediante un simple clic sobre las propias vías de circulación
los colores que se corresponden con los diferentes tipos de vías de circulación
presentes en el mapa y que el usuario desea que sean incluidas en el cálculo
del Grafo de Rutas.
60
Desarrollo de un Sistema Inteligente GPS-Raster para una PDA
5.4.1.2. Tratamiento en fases de la imagen
El proceso de tratamiento de imagen empleado para generar el grafo a
partir del mapa de carreteras proporcionado ha sido dividido en varias fases
para así simplificar la realización de pruebas sobre el código, la incorporación
de modificaciones y la expansión del algoritmo. El resultado de cada una de
estas fases es la entrada de la siguiente. Estas fases, están conceptualmente
diferenciadas, debido a que realizan tareas claramente distintas ya sea sobre
los datos de imagen original, la versión vectorizada de la imagen o el propio
Grafo de Rutas, pero son de todos modos continuas e inseparables. Cuando se
da al Módulo Vectorizador la orden de generación del Grafo de Rutas, se
ejecutan todas las fases de forma continua. Debido a esto, la ejecución de cada
una de las fases por separado resulta transparente a usuario.
Todas las fases trabajan bien sobre archivos temporales o bien sobre
variables internas del programa. De este modo, la imagen de mapa original
nunca se ve alterada.
61
Desarrollo de un Sistema Inteligente GPS-Raster para una PDA
5.4.1.2.1 Pretratado
Inicialmente la imagen recibe un proceso de pretratado orientado a
simplificar su manipulación por parte del motor de vectorización. Inicialmente se
reduce la imagen a una representación en blanco y negro en el que únicamente
se ven representados los colores que han sido definidos por el usuario como
pertenecientes a vías de circulación. Puesto que, debido normalmente a la falta
de calidad de la imagen, es frecuente que una forma cuyo color en un primer
momento era constante se haya visto convertido en una amalgama de
diferentes tonalidades con pequeñas variaciones entre sí, se consideran como
el mismo color aquellos que se encuentren dentro de una cierta similitud con un
color definido como vía. Esta similitud se determina como la diferencia entre los
valores de los diferentes bytes de colores, y la similitud mínima puede ser
definida por el usuario de a cuerdo a sus necesidades y la calidad de la
imagen. En sí, el sistema utiliza un sistema de colores de 32 bits, el
proporcionado por el propio objeto Color de las librerías de C#, aunque el byte
de Alpha no se emplea en absoluto, con la definición de color que realmente se
está empleando durante el pretratado es de 24 bits.
A la imagen en blanco y negro resultante del pretratado se le aplican a
continuación un filtro de sal y pimienta para eliminar el ruido que el tratamiento
pueda haber introducido y un filtro de bordes que realza las vías.
62
Desarrollo de un Sistema Inteligente GPS-Raster para una PDA
5.4.1.2.2. Vectorización Mediante Autotrace
Para realizar el proceso de convertir la imagen de su formato ráster BMP
al formato vectorial SVG, sobre el que se podrá trabajar de forma directa, se
emplea el motor de vectorización AutoTrace. Esto no significa, no obstante, que
no se tenga ningún control sobre el modo en que se realiza la conversión
debido a que el proceso se ejecute de forma externa al código de la aplicación.
Autotrace permite varios parámetros de configuración que determinarán el
modo en que se ejecutará la vectorización. Estos parámetros se han ajustado a
los valores que se ha determinado que producirán los mejores resultados
cuando sean aplicados sobre un mapa de carreteras habitual. No obstante,
pueden ser modificados a voluntad por el usuario. La aplicación recuerda los
valores introducidos y también es capaz de restaurar los valores
predeterminados.
Los parámetros de control del motor de vectorización AutoTrace están
recogidos en la siguiente tabla. Es importante notar que los valores que se
define aquí como predeterminados son los predeterminados que emplea el
Módulo Vectorizador, calculados tras probar el ajuste de múltiples de mapas de
carreteras, y no los valores predeterminados de Autotrace, que tienen un
propósito menos especializado para la conversión de cualquier tipo de imagen.
En la tabla también se define como los maneja el programa, es decir, si su
valor es directamente introducido por código o sí el usuario puede variarlo en
tiempo de ejecución.
63
Desarrollo de un Sistema Inteligente GPS-Raster para una PDA
Nombre Tratamiento Valor
Descripción
Background Color Constante FFFFFF (Blanco)
Define un color de la imagen como fondo, lo que implica que será
ignorado durante la vectorización. Puesto que después del pretratado es una
representación de las vías en negro sobre un fondo blanco cuyas
características no son importantes para el sistema, se define ese color como
fondo.
Centerline Constante True
Normalmente, AutoTrace almacena las características del mapa como
una serie de formas definidas por una línea de borde y el color que llena el
área que delimita. Al emplear esta opción, Autotrace representará los
elementos de la imagen como líneas de un determinado grosor y un
determinado color. Este modo es mucho más manejable por parte del sistema
puesto que el propósito de la digitalización es precisamente la extracción de
datos relativos a líneas.
Color Count Constante 1
64
Desarrollo de un Sistema Inteligente GPS-Raster para una PDA
Si se emplea este parámetro en la vectorización, AutoTrace reducirá el
número colores de la imagen al tratarla, simplificando así la salida que produce
y evitando la aparición de colores no deseados, como tonos de gris, en la
imagen al aplicar filtros. Puesto que el negro es el único color de la imagen
aparte del blanco, que como color de fondo es ignorado, la reducción de se
limita a un solo color.
Corner Threshold Variable 150
Si en un determinado píxel, sus predecesores y sus sucesores forman
un ángulo menor que éste, entonces se considera como una esquina, en otro
caso se considera una curva. No obstante, si se encuentra dentro del radio de
píxeles de Corner Surround de otra esquina, entonces no se considera como
esquina propia sino como parte de otra esquina.
Corner Surround Variable 4
Determina cuantos píxeles serán analizados en torno a uno punto
determinado para juzgar si ese punto es una esquina. Debido a esto, también
determina como de “grandes” son las esquinas.
Corner Always
Threshold
Variable 90
Si el ángulo presente en un píxel con potencial de ser esquina es menor
que el valor de este parámetro, entonces en ese píxel hay una esquina, a
pesar de que pueda encontrarse dentro del radio de Corner Surround de otra
esquina.
Despeckle Level Variable 8
65
Desarrollo de un Sistema Inteligente GPS-Raster para una PDA
Autotrace tiene la capacidad de aplicar un filtro de realzado de bordes a
las imágenes que trata. Ésta es una funcionalidad que resulta particularmente
útil para conseguir un reconocimiento correcto de las vías de circulación. Este
parámetro regula el número de iteraciones que se aplicaran por parte del filtro
Despeckle Tightness Variable 3
Este es otro parámetro de control empleado por el filtro de bordes. Su
valor se corresponde con el grosor del filtro, lo que modifica de que modo los
elementos cuya estructura de bordes tiene una menor o mayor complejidad se
ven más o menos realzados.
Error Threshold Variable 2
Después de haber trazado las curvas representando las formas del
grafico, AutoTrace revisa la calidad de su aproximación. Si una curva está más
desviada respecto a la realidad que este valor, entonces es subdividida en dos
curvas que pueden representar mejor la realidad.
Filter Iterations Variable 4
Esto define el número de veces que una línea es suavizada antes de
que AutoTrace intente ajustarle una curva.
Line Threshold Variable 1
Cuando AutoTrace recorre las curvas que el proceso de ajuste a
generado si la diferencia de una de ellas con la línea recta definida por sus
extremos es menor del valor de este parámetro, entonces se trata de una
recta.
Line Reversion
Threshold
Variable 0,01
66
Desarrollo de un Sistema Inteligente GPS-Raster para una PDA
Si una línea está más cerca de la recta de lo que define este parámetro,
siendo medido respecto al cuadrado de la longitud de la posible curva,
entonces la línea se mantendrá como una recta, aún en el caso de que sea
parte de un spline de mayor tamaño formado por curvas.
Input Format Constante BMP
Define a cuál entre los distintos formatos de entrada que AutoTrace
admite pertenece la imagen. Puesto que se ha unificado la entrada a la
aplicación como BMP, éste es el valor que toma el parámetro
Output Format Constante SVG
Indica en cuál de los formatos de salida compatibles con AutoTrace se
quiere obtener la imagen vectorial. Como ya se ha definido, se trabaja con el
formato SVG, por tanto es ése el valor que se le da al parámetro
Tangent Surround Variable 3
Indica el radio en torno a un punto que se tendrá en cuenta para
calcular la tangente en ese punto.
Remove Adjacent
Corners
Constante True
Al emplear esta opción, las esquinas que dispuestas una después de
otra se agruparán en una sola esquina. Este valor es necesario para
compensar por el efecto causado por el elevado Corner Always Threshold.
5.4.1.2.3. Digitalización
El archivo temporal SVG generado por el programa AutoTrace es
internamente un fichero XML. Gracias a esto es posible acceder directamente
su contenido para extraer los datos que definen las vías de circulación
representadas en el mapa. En el proceso de digitalización se recorre el
67
Desarrollo de un Sistema Inteligente GPS-Raster para una PDA
documento interno XML extrayendo los datos que describen la imagen de
mapa. Estos datos están expresados en varios tipos de estructuras. Puntos
significativos que están representados como un par de coordenadas,
segmentos, definidos por los puntos que son sus extremos, y curvas bézier
cúbicas que requieren de cuatro puntos para ser representadas. En esta fase
estos elementos se introducen en el programa en ejecución, convirtiéndolos en
variables en memoria para así poder manipularlos en las fases posteriores.
En esta fase además se calcula, a partir de los datos de los segmentos y
curvas, la longitud de las diferentes vías de circulación en píxeles, longitud que
luego será introducida como un dato más del Grafo de Rutas para así poder
emplearla para el cálculo de rutas mínimas. El resultado de esta fase es una
representación del mapa que internamente es una colección de líneas en que
se puede descomponer la imagen analizada y que se corresponden con las
vías de circulación del mapa.
68
Desarrollo de un Sistema Inteligente GPS-Raster para una PDA
5.4.1.2.4. Abstracción del Mapa a Grafo
A partir de los datos que obtenidos al analizar las curvas y rectas
calculadas en la anterior fase, se generan los arcos del grafo de rutas. Estos
arcos son una abstracción de las líneas del mapa, extrayendo de ellas los
datos que son realmente requeridos para la realización de las tareas del grafo.
Los datos que quedan almacenados en los arcos del grafo de rutas se limitan
entonces a las coordenadas de comienzo y fin de la línea y su longitud real.
Tomando como único dato las coordenadas de los extremos de estos arcos se
crean los nodos que suponen el otro componente de grafo.
5.4.1.2.5. Refinado
El grafo de rutas en bruto obtenido tras la abstracción del mapa de
carreteras no es directamente utilizable. Las imperfecciones del mapa,
generalmente causadas por la presencia de texto y la falta de calidad en la
imagen original, por la conversión al formato vectorial y las introducidas durante
la ejecución de las fases anteriores provocan la aparición de fallos en el grafo
de rutas. Para tratar estos problemas, se realiza sobre él una última fase de
refinado. Este refinado consiste fundamentalmente en la realización de tres
tareas:
69
Desarrollo de un Sistema Inteligente GPS-Raster para una PDA
Aproximación de nodos
La presencia de texto sobre las vías de circulación representadas en el
mapa y la presencia de manchas de color en la vía que caigan fuera de la
aproximación realizada durante la fase de pretratado habitualmente causan la
aparición en el grafo de cúmulos de nodos separados una distancia muy
reducida lo que los hace redundantes. Además frecuentemente el proceso no
habrá reconocido la existencia de vías que unan esos puntos y con ello no
habrán aparecido arcos representando las diferentes conexiones que debería
haber en el cúmulo. Otra posibilidad es que una línea que no estuviera definida
como una vía de circulación interrumpiera una que si lo fuera, lo que resulta en
un repentino corte en esa vía, dando lugar a dos nodos que casi están unos
encima del otro pero sobre los que no se reconoce que haya una vía que los
una. Una última posibilidad es que en un punto de interconexión entre varias
vías no sea correctamente reconocido y la interconexión no aparezca aunque
los nodos entre los que debería aparecer, sí.
Todos estos problemas suponen severos errores en el Grafo de Rutas
que a su vez causan fallos en el cálculo de las rutas mínimas. Este proceso
resuelve estos problemas y es por ello el principal proceso de la fase de
refinado. Lo que se hace es agrupar a los nodos que se encuentran separados
entre sí menos de una determinada distancia, y con ello sea factible la
posibilidad de considerarlos como realmente el mismo.
70
Desarrollo de un Sistema Inteligente GPS-Raster para una PDA
Un problema que surgió durante el desarrollo de este algoritmo de
aproximación fue que el programa reconocía como un único cúmulo de nodos
una superficie de demasiado tamaño, debido a que todos los nodos de ésta se
encontraban dentro de la distancia de aproximación de otro de los nodos del
cúmulo, aunque se encontrase a una gran distancia de todos los demás. Para
evitar que los cúmulos a agrupar crezcan demasiado, se controla que los
nuevos nodos que se añaden al cúmulo estén dentro de una cierta distancia al
centro de éste.
El cálculo del centro del grupo de nodos es un elemento importante del
proceso, pues también se emplea como la ubicación del nuevo nodo que se
crea como agrupación del cúmulo. La opción ideal sería el centro geométrico
del cúmulo, pero éste calculo ralentizaría enormemente el proceso, mientras
que la media es mucho más sencilla pero se ve enormemente influenciada por
las zonas más concentradas del cúmulo de nodos, desviando
considerablemente el centro. La solución por la que se ha optado es calcular la
media de tal modo que se ignoran los nodos que se encuentren a menos de
tres píxeles del otro nodo que si esté siendo considerado para el cálculo. El
cálculo de esta media ajustada es de hecho más rápido que la media normal y
el centro calculado no se ve tan influenciado por los grupos condensados de
nodos.
71
Desarrollo de un Sistema Inteligente GPS-Raster para una PDA
Conexión de nodos
En este proceso se establecen arcos entre aquellos nodos que, después
de haberse realizado la aproximación, se encuentran separados menos de una
cierta distancia, y no se encuentren aún conectados. La longitud de estos
nuevos arcos se calcula como la longitud lineal del arco. El propósito de eso es
resolver los fallos de conexión hayan aparecido por los mismos motivos que en
el proceso anterior, pero cuyos nodos no se encuentren tan cerca como para
ser considerados el mismo.
Es posible, en tiempo de ejecución alterar el orden en el que se ejecutan
estos dos procesos. Con el orden normal simplemente se recorre nuevamente
la lista de nodos conectando aquellos que sea pertinente. Esto produce un
efecto secundario poco deseado. Al ser agrupados los cúmulos de nodos,
particularmente en el caso de cúmulos grandes, puede ocurrir que dos nodos
incorrectamente desconectados que antes de la agrupación se encontraban lo
suficientemente próximos como para que un arco fuese trazado entre ellos, al
pasar por el proceso de agrupación y desplazarse hacia el centro de sus
respectivos cúmulos queden separados.
Para evitar este problema existe un orden alternativo. En él, la
interconexión de los nodos se hace dentro del mismo proceso que la
aproximación, creándose los nuevos arcos antes de que los cúmulos se reúnan
en nuevos nodos. Esto también tiene un problema, pues antes de que se
complete la aproximación de nodos el arco es considerablemente caótico y ello
72
Desarrollo de un Sistema Inteligente GPS-Raster para una PDA
implica que frecuentemente se creen arcos que no se corresponden con
conexiones reales. Además, al moverse los nodos de los extremos, la longitud
inicialmente calculada dejara de ser precisa, aunque se puede esperar que sea
por una franja muy pequeña. Es recomendable por ello no emplear este modo
en mapas que tiendan a generar una gran cantidad de cúmulos en el grafo, lo
que suele ocurrir con frecuencia en el caso de mapas de ciudad y menos en
mapas de carretera.
Para evitar comparaciones innecesarias y acelerar estos procesos, antes
de que se realicen estos dos procesos los nodos de grafo se ordenan según su
coordenada Y, y solamente se comparan con los vecinos cuya coordenada Y es
mayor y se mantiene dentro de la distancia de control, que dependerá del
proceso que se esté ejecutando. Si el nodo es admisible para comparación,
antes de iniciar el proceso para incorporarlo al cúmulo de nodos
correspondiente o trazar el un nuevo arco entre los nodos considerados, se
comparan las dimensiones X para ver si su diferencia se encuentra dentro de la
distancia establecida. Debido a este modo de hacer las cosas, no se están
comparando los nodos que estén dentro del círculo de cierto radio centrado en
el nodo estudiado, que sería lo normal, sino en un cuadrado de lado el doble de
la distancia analizada que cubriría ese círculo y estaría centrado en el mismo
nodo analizado.
73
Desarrollo de un Sistema Inteligente GPS-Raster para una PDA
Eliminación de datos redundantes
La ejecución de las diferentes fases y especialmente de los dos
procesos de refinado anteriores ha generado una considerable cantidad de
datos redundantes o inútiles en el grafo. Estos datos pueden llevar a confusión
durante el cálculo de rutas, aumentan innecesariamente la complejidad del
grafo lo que hace el proceso menos eficiente y ocuparían un espacio adicional
de sus datos ser codificados en el archivo XML que se crea para su uso por
parte del Módulo Enrutador. Puesto que este grafo va a ser empleado sobre
una plataforma considerablemente limitada, es importante eliminar todos los
elementos innecesarios. Así pues, esta última fase recorre el grafo localizando
y eliminando varios casos de elementos redundantes.
Bucles: Es decir, arcos que comienzan y terminan en el mismo nodo.
Debido al modo en que funciona A* no existe posibilidad de que se queden
atrapado en el bucle a menos que la longitud del arco sea cero, lo cual es
imposible por el modo en que se crea el grafo. Aún así, están introduciendo un
elemento adicional en el cálculo que lo ralentiza de modo sensible.
Arcos redundantes: Un arco resulta redundante cuando existe otro
distinto que conecta los mismos dos nodos. Esto aparentemente no causa
ningún tipo de problemas en el funcionamiento del algoritmo A*, pero cuando el
algoritmo se vea en la situación de tener que escoger entre uno de los dos
arcos para alcanzar a un determinado vecino, va a optar siempre por el más
corto, que lo más probable es que sea el incorrecto. Esto es debido a que el
74
Desarrollo de un Sistema Inteligente GPS-Raster para una PDA
trayecto largo habrá sido extraído de los datos relativos a una curva bezier
cuya longitud puede ser muy distinta de la que separe sus puntos, mientras que
el corto posiblemente sea el resultado de la generación de un arco durante la
segunda fase del refinado, cuya longitud es la separación entre sus extremos.
En el caso de que ambas rutas sean naturales sus longitudes serán muy
similares, y por ello no generarán tanto error independientemente de cual se
escoja.
Por ello, durante esta fase se eliminan los que resulten redundantes con
otros ya existentes, eliminando primero los más nuevos, que posiblemente
hayan sido generados durante el proceso de conexión de nodos, y que por esto
se encuentran al final de las listas de arcos de cada nodo. En caso de no ser
arcos creados posteriormente, como ya se ha explicado, no se estará
introduciendo un grado elevado de imprecisión.
Es interesante notar que en una versión anterior del sistema la limpieza
de este elemento y la de los bucles estaban separadas como procesos
distintos, pero luego se descubrió que los bucles también entraban en la
definición que este proceso hacía de arcos redundantes. Desde el punto de
vista de un nodo, un bucle se ve como dos arcos (cada uno de los dos
extremos del arco conectados al nodo) que llevan al mismo destino (es decir, el
propio nodo en el que aparece el bucle) Al eliminar “uno de los arcos” tanto del
nodo analizado como del destino, que era el mismo pero empleando la otra
75
Desarrollo de un Sistema Inteligente GPS-Raster para una PDA
conexión, el resultado era que ambas conexiones del bucle y el arco
problemático en sí se eliminaban con éxito y de forma transparente al método.
Nodos aislados: Nodos que no están conectados con ningún otro nodo.
Este tipo de nodos aparece cuando al agrupar un grupo de nodos éste no
resulta estar conectado con ningún otro elemento del grafo. Como resultado,
todos los arcos del nuevo nodo surgido del cúmulo son bucles, y después de
que se hayan limpiado durante los procesos anteriores el nodo se queda sin
ninguna conexión. El principal motivo por el que se eliminan estos elementos
es para evitar que el usuario intente calcular la ruta a o desde uno de estos
nodos aislados.
76
Desarrollo de un Sistema Inteligente GPS-Raster para una PDA
Parámetros de Refinado
Se ha mencionado durante la descripción de los procesos varías
distancias que controlan el rango hasta el que se agrupan y se conectan los
procesos. Estas distancias de control pueden ser reguladas en el momento de
realizar la generación del Grafo de Rutas.
Radio de Nodo: Este parámetro se usa durante el proceso de
aproximación de nodos. Dos nodos que se encuentren separados una distancia
menor que el valor de este parámetro se consideraran como el mismo. Esto
significa que ambos pertenecerán al mismo cúmulo de nodos que al final del
algoritmo se convertirá en uno solo. Es interesante mencionar que el radio no
se compara con la distancia que realmente separa los nodos, sino que se
compara consecutivamente con la diferencia entre sus ejes Y y X. Esto se hace
así porque antes de que se comience a realizar iteraciones comparando las
coordenadas de los nodos entre sí, la lista de nodos se ordena por su
coordenada Y. Cuando se realizan las iteraciones solo se sigue comparando el
nodo evaluado con sus vecinos si la diferencia en el eje Y es menor que el
Radio de Nodo antes de pasar al siguiente nodo. Con esto se consigue reducir
enormemente el número de iteraciones necesarias para realizar el proceso al
eliminar una gran cantidad de iteraciones innecesarias. Lo que también implica
es que cuando una iteración entra en la parte del algoritmo dedicada a
comprobar si ambos nodos deben estar presentes en el mismo cúmulo, la
distancia que les separa en y es valida como para aproximarlos, con lo que
77
Desarrollo de un Sistema Inteligente GPS-Raster para una PDA
únicamente hace falta comparar sus coordenadas X. Por esto es por lo que la
distancia entre los nodos se compara en ambas direcciones por separado, en
lugar de calcular la distancia real en línea recta entre esos elementos. El
resultado que esto implica es que el área en torno a la cual un nodo puede
considera a otro como parte del mismo cúmulo es un cuadrado, no un círculo.
Radio de Centro: Este parámetro también es empleado durante el
proceso de aproximación de nodos. Cuando se considera si un nuevo nodo va
a ser añadido a un cúmulo de nodos, se calcula la distancia que lo separa del
centro del cúmulo. En este caso la distancia que se evalúa es la distancia real,
es decir, la longitud del segmento que se puede trazar entre el nodo y el centro
del cúmulo.
En el caso de que ninguno de los dos nodos se encuentre en un cúmulo,
la comprobación no se realiza, pues ellos mismos son los centros respectivos
de sus cúmulos y ya se encuentran de por sí separados por la distancia del
Radio de Nodo, cuyo valor será menor que la de este nodo. En el caso de que
ambos pertenezcan a cúmulos, sus respectivos centros se comparan. Esto es
debido a que se podría entender cada uno de ellos esta añadiendo un único
nodo a su cúmulo; el que surge de realizar la aproximación sobre el nodo
vecino.
78
Desarrollo de un Sistema Inteligente GPS-Raster para una PDA
El propósito por el que esta segunda comparación se hace es para evitar
que los cúmulos crezcan hasta alcanzar unas dimensiones demasiado
elevadas debido a la aparición de zonas convertibles en cúmulos de gran
tamaño, con lo que se evita el llamado “efecto estrella” en el grafo. Ese
problema se denomina así debido a la aparición de nodos en el centro de áreas
vacías de los que sale un gran número de arcos conectándolos con nodos
situados en el borde del área vacía. Esto les da aspecto de estrellas. El origen
de estas áreas es causado por cúmulos de gran tamaño que al agruparse
vacían la zona en la que se encuentran de nodos estableciendo el nodo central
de la estrella. El origen de los arcos que le dan su aspecto característico es
como conexiones que los nodos del cúmulo tenían con nodos en el exterior del
cúmulo. Bajando el valor de este parámetro se elimina la presencia de estrellas
en el grafo creado.
Radio de Conexión: Este parámetro se emplea durante el proceso de
conexión de los nodos. Si la distancia que separa dos nodos es menor que el
valor de este parámetro, se creará un arco que los una. El valor de longitud de
los arcos así creados es igual a la propia longitud del arco. El modo en que se
comparan las coordenadas de los nodos es el mismo que en el caso del
proceso de aproximación de nodos, por lo que el área en torno al nodo
evaluado en la que se comprobará la existencia de otros nodos es igualmente
un cuadrado en lugar de un círculo.
79
Desarrollo de un Sistema Inteligente GPS-Raster para una PDA
5.4.2. Editor de Grafo
Los mapas distribuidos comercialmente por compañías especializadas
en la fabricación de mapas para GPS están completamente cerrados a
modificaciones. Esto implica un gran número de problemas para el usuario
final. Si no fuera por esta limitación, el usuario podría editar libremente el mapa
de navegación, corrigiendo errores que los creadores sufrieron al crear la
mapa, actualizándolo manualmente cuando se abrieran nuevas carreteras, o
incluyendo puntos significativos o nuevas rutas propias, como por ejemplo, si
descubriera un atajo campo a través que evidentemente no aparece en ningún
mapa pero que el usuario puede tomar con su todoterreno.
Para evitar esta limitación, el Módulo Vectorizador incluye una aplicación
de edición con la que el usuario puede modificar manualmente el Grafo de
Rutas, denominada el Editor de Grafo. Mediante este editor, el usuario puede,
de modo simple y solo con unos pocos clics, editar todas las características del
grafo. El editor incluye como herramientas:
5.4.2.1. Añadir Nodo
Crea un nodo en las coordenadas del punto en el que usuario haga clic.
Además, es posible emplear varios modos de atracción al añadir los nodos:
80
Desarrollo de un Sistema Inteligente GPS-Raster para una PDA
Sin atracción: Simplemente crea el nodo en las coordenadas que le
indique el usuario. Puesto que aún es un nodo nuevo, eso implica que caería
dentro de la definición de nodo aislado al no tener ningún arco conectado. Para
que el nodo sea útil, es necesario que el usuario trace arcos hacia él.
Arco Magnético: Determina el punto más cercano del arco más cercano
y allí es donde coloca el nuevo nodo. El arco, así mismo, queda dividido en
dos, cada uno de los cuales une el nuevo nodo con los extremos de arco
original.
Nodo Magnético: Determina el arco más cercano al punto donde el
usuario quiere añadir el nodo y a continuación el arco es “atraído” por el nodo.
El nodo se coloca en las coordenadas que indico el usuario indicó y el arco se
divide en dos, cada uno de los cuales une el nuevo nodo con los extremos de
arco original.
5.4.2.2. Mover Nodo
Cambia las coordenadas de un nodo seleccionado por el usuario a las
que éste defina. El efecto que esto produce es que le nodo se mueve sobre el
plano del grafo.
81
Desarrollo de un Sistema Inteligente GPS-Raster para una PDA
5.4.2.3. Eliminar Nodo
Borra el nodo indicado por el usuario. Al eliminar el nodo también se
elimina de modo automático todos los arcos asociados al nodo, puesto que su
existencia esta definida como la conexión de dos nodos. Por tanto, un arco sin
un extremo no puede existir.
5.4.2.4. Añadir Arco
Traza un nuevo arco que conecta dos nodos. Puesto que un arco existe
en tanto que existan los dos puntos entre los que esta trazado, no es posible
crear un nuevo arco sin que sus extremos ya existan. De modo que es
necesario crear los nodos antes que los arcos si se quiere dibujar una nueva
vía de circulación en el grafo. El valor de la longitud del nuevo arco es igual a la
longitud del propio arco, es decir, la del segmento que conecta sus nodos
extremo.
El editor comprueba que el nuevo arco no sea un bucle y que no exista
ya ningún arco que una los dos puntos, para evitar que el usuario añada
accidentalmente información redundante al grafo.
82
Desarrollo de un Sistema Inteligente GPS-Raster para una PDA
5.4.2.5. Modificar Arco
Permite alterar los parámetros que definen al arco seleccionado por el
usuario. No obstante, puesto que las coordenadas de sus extremos están
definidas por los nodos que une no puede modificarlas (para eso esta la
herramienta de Mover Nodo) el único parámetro que puede editarse es la
longitud del arco. Puesto que la escala del mapa es parte del posicionamiento y
ese es un proceso del Módulo Enrutador, la longitud no se puede definir en
kilómetros sino que se tiene que definir en píxeles.
5.4.2.6. Borrar Arco
Elimina el arco indicado por el usuario. Puesto que los nodos extremo
pueden seguir existiendo sin el arco que los une, no son eliminados junto con el
arco.
83
Desarrollo de un Sistema Inteligente GPS-Raster para una PDA
5.4.3. Generación del documento XML
Para que el grafo pueda ser empleado por el Módulo Enrutador y que la
ejecución de todos los procesos realizados por parte del Módulo Vectorizador
de un resultado útil, es necesario transmitir la información del grafo de rutas al
Módulo Enrutador. Se ha decidido hacer esto almacenado todos los datos del
Grafo de Rutas en un documento XML con al que se la ha dado cierto formato.
Del mismo modo que en la generación inicial del grafo se emplearon
únicamente los datos relativos a la disposición de los arcos y se dedujo la
disposición de los nodos del grafo a partir de ellos, en el fichero XML solo se
están almacenando datos relativos a los arcos. Concretamente, se está
codificando la longitud de cada arco y las coordenadas de cada uno de sus
extremos, que son las precisamente las coordenadas correspondientes a los
nodos a los que están conectados.
84
Documentacion
Documentacion
Documentacion
Documentacion
Documentacion
Documentacion
Documentacion
Documentacion
Documentacion
Documentacion
Documentacion
Documentacion
Documentacion
Documentacion
Documentacion
Documentacion
Documentacion
Documentacion
Documentacion
Documentacion
Documentacion
Documentacion
Documentacion
Documentacion
Documentacion
Documentacion
Documentacion
Documentacion
Documentacion
Documentacion
Documentacion
Documentacion
Documentacion
Documentacion
Documentacion
Documentacion
Documentacion
Documentacion
Documentacion
Documentacion
Documentacion
Documentacion
Documentacion
Documentacion
Documentacion
Documentacion
Documentacion
Documentacion
Documentacion
Documentacion
Documentacion
Documentacion
Documentacion
Documentacion
Documentacion
Documentacion
Documentacion
Documentacion
Documentacion
Documentacion
Documentacion
Documentacion
Documentacion
Documentacion
Documentacion
Documentacion
Documentacion
Documentacion
Documentacion
Documentacion
Documentacion
Documentacion
Documentacion
Documentacion
Documentacion
Documentacion
Documentacion
Documentacion
Documentacion
Documentacion
Documentacion
Documentacion
Documentacion
Documentacion
Documentacion
Documentacion
Documentacion
Documentacion
Documentacion
Documentacion
Documentacion
Documentacion
Documentacion
Documentacion
Documentacion
Documentacion
Documentacion
Documentacion
Documentacion
Documentacion

Más contenido relacionado

Destacado

Portfolio of work in EY Global
Portfolio of work in EY GlobalPortfolio of work in EY Global
Portfolio of work in EY GlobalJuan Mejia
 
AOV ZZP vergelijken
AOV ZZP vergelijkenAOV ZZP vergelijken
AOV ZZP vergelijkenadvweb3
 
Brown v Board
Brown v BoardBrown v Board
Brown v Boardlscola
 
LG L Series Market Research and Consumer Behaviour Analysis
LG L Series Market Research and Consumer Behaviour AnalysisLG L Series Market Research and Consumer Behaviour Analysis
LG L Series Market Research and Consumer Behaviour AnalysisJuan Mejia
 
Final dissertation: Bing integrated marketing communications plan
Final dissertation: Bing integrated marketing communications planFinal dissertation: Bing integrated marketing communications plan
Final dissertation: Bing integrated marketing communications planJuan Mejia
 
John Lewis Direct Marketing proposal
John Lewis Direct Marketing proposalJohn Lewis Direct Marketing proposal
John Lewis Direct Marketing proposalJuan Mejia
 
LG L Integrated Marketing Communications UK Launch Proposal
LG L Integrated Marketing Communications UK Launch ProposalLG L Integrated Marketing Communications UK Launch Proposal
LG L Integrated Marketing Communications UK Launch ProposalJuan Mejia
 
Benetton UK advertising proposal
Benetton UK advertising proposalBenetton UK advertising proposal
Benetton UK advertising proposalJuan Mejia
 
Public Relations plan for aidsmap
Public Relations plan for aidsmapPublic Relations plan for aidsmap
Public Relations plan for aidsmapJuan Mejia
 
Nintendo Marketing Strategy analysis and proposal
Nintendo Marketing Strategy analysis and proposalNintendo Marketing Strategy analysis and proposal
Nintendo Marketing Strategy analysis and proposalJuan Mejia
 
Guenola cv orga 01272015
Guenola cv orga 01272015Guenola cv orga 01272015
Guenola cv orga 01272015Guénola Nonet
 

Destacado (14)

Portfolio of work in EY Global
Portfolio of work in EY GlobalPortfolio of work in EY Global
Portfolio of work in EY Global
 
AOV ZZP vergelijken
AOV ZZP vergelijkenAOV ZZP vergelijken
AOV ZZP vergelijken
 
Brown v Board
Brown v BoardBrown v Board
Brown v Board
 
LG L Series Market Research and Consumer Behaviour Analysis
LG L Series Market Research and Consumer Behaviour AnalysisLG L Series Market Research and Consumer Behaviour Analysis
LG L Series Market Research and Consumer Behaviour Analysis
 
Final dissertation: Bing integrated marketing communications plan
Final dissertation: Bing integrated marketing communications planFinal dissertation: Bing integrated marketing communications plan
Final dissertation: Bing integrated marketing communications plan
 
John Lewis Direct Marketing proposal
John Lewis Direct Marketing proposalJohn Lewis Direct Marketing proposal
John Lewis Direct Marketing proposal
 
LG L Integrated Marketing Communications UK Launch Proposal
LG L Integrated Marketing Communications UK Launch ProposalLG L Integrated Marketing Communications UK Launch Proposal
LG L Integrated Marketing Communications UK Launch Proposal
 
Benetton UK advertising proposal
Benetton UK advertising proposalBenetton UK advertising proposal
Benetton UK advertising proposal
 
Public Relations plan for aidsmap
Public Relations plan for aidsmapPublic Relations plan for aidsmap
Public Relations plan for aidsmap
 
Nintendo Marketing Strategy analysis and proposal
Nintendo Marketing Strategy analysis and proposalNintendo Marketing Strategy analysis and proposal
Nintendo Marketing Strategy analysis and proposal
 
Guenola cv orga 01272015
Guenola cv orga 01272015Guenola cv orga 01272015
Guenola cv orga 01272015
 
La formation professionnelle au Portugal, Alger 23-24 novembre 2014
La formation professionnelle au Portugal, Alger 23-24 novembre 2014La formation professionnelle au Portugal, Alger 23-24 novembre 2014
La formation professionnelle au Portugal, Alger 23-24 novembre 2014
 
La formation professionnelle des fonctionnaires de l'administration féférale ...
La formation professionnelle des fonctionnaires de l'administration féférale ...La formation professionnelle des fonctionnaires de l'administration féférale ...
La formation professionnelle des fonctionnaires de l'administration féférale ...
 
Amazing prediction
Amazing predictionAmazing prediction
Amazing prediction
 

Similar a Documentacion

Aplicación de las tics en el campo geografico
Aplicación de las tics en el campo geograficoAplicación de las tics en el campo geografico
Aplicación de las tics en el campo geograficonathaly narvaez
 
GEOGRAFÍA EN LAS "TIC"
GEOGRAFÍA EN LAS "TIC"GEOGRAFÍA EN LAS "TIC"
GEOGRAFÍA EN LAS "TIC"Abril Anaya
 
Cartografía Digitalizada y Principales Herramientas Informáticas aplicadas en...
Cartografía Digitalizada y Principales Herramientas Informáticas aplicadas en...Cartografía Digitalizada y Principales Herramientas Informáticas aplicadas en...
Cartografía Digitalizada y Principales Herramientas Informáticas aplicadas en...Mision_Sucre_Aragua
 
Mapa conceptual técnicas utilizadas en los sig
Mapa conceptual técnicas utilizadas en los sigMapa conceptual técnicas utilizadas en los sig
Mapa conceptual técnicas utilizadas en los sigmepiah
 
Construcción de sistemas de información geográfica con herramientas
Construcción de sistemas de información geográfica con herramientasConstrucción de sistemas de información geográfica con herramientas
Construcción de sistemas de información geográfica con herramientasDiego Alberto Godoy
 
Sistema de informacion geografica.sig
Sistema de informacion geografica.sigSistema de informacion geografica.sig
Sistema de informacion geografica.sigehenaog
 
Apps de campo: La potencia del GIS llevada al campo
Apps de campo: La potencia del GIS llevada al campoApps de campo: La potencia del GIS llevada al campo
Apps de campo: La potencia del GIS llevada al campoEsri España
 
Soluciones geoespaciales SAFETY INTEGRAL SOLUTIONS
Soluciones geoespaciales SAFETY INTEGRAL SOLUTIONSSoluciones geoespaciales SAFETY INTEGRAL SOLUTIONS
Soluciones geoespaciales SAFETY INTEGRAL SOLUTIONSRaul Eduardo Alonso
 
Sistemas De Informacion Geografica .pdf
Sistemas De Informacion Geografica .pdfSistemas De Informacion Geografica .pdf
Sistemas De Informacion Geografica .pdfcami0610
 

Similar a Documentacion (20)

Sig en linea
Sig en lineaSig en linea
Sig en linea
 
Aplicación de las tics en el campo geografico
Aplicación de las tics en el campo geograficoAplicación de las tics en el campo geografico
Aplicación de las tics en el campo geografico
 
GEOGRAFÍA EN LAS "TIC"
GEOGRAFÍA EN LAS "TIC"GEOGRAFÍA EN LAS "TIC"
GEOGRAFÍA EN LAS "TIC"
 
Diseno relevamiento
Diseno relevamientoDiseno relevamiento
Diseno relevamiento
 
Gr2 05 gps
Gr2 05 gpsGr2 05 gps
Gr2 05 gps
 
Cartografía Digitalizada y Principales Herramientas Informáticas aplicadas en...
Cartografía Digitalizada y Principales Herramientas Informáticas aplicadas en...Cartografía Digitalizada y Principales Herramientas Informáticas aplicadas en...
Cartografía Digitalizada y Principales Herramientas Informáticas aplicadas en...
 
Capitulo8
Capitulo8Capitulo8
Capitulo8
 
Mapa conceptual técnicas utilizadas en los sig
Mapa conceptual técnicas utilizadas en los sigMapa conceptual técnicas utilizadas en los sig
Mapa conceptual técnicas utilizadas en los sig
 
Construcción de sistemas de información geográfica con herramientas
Construcción de sistemas de información geográfica con herramientasConstrucción de sistemas de información geográfica con herramientas
Construcción de sistemas de información geográfica con herramientas
 
Sistema de informacion geografica.sig
Sistema de informacion geografica.sigSistema de informacion geografica.sig
Sistema de informacion geografica.sig
 
Apps de campo: La potencia del GIS llevada al campo
Apps de campo: La potencia del GIS llevada al campoApps de campo: La potencia del GIS llevada al campo
Apps de campo: La potencia del GIS llevada al campo
 
Soluciones geoespaciales SAFETY INTEGRAL SOLUTIONS
Soluciones geoespaciales SAFETY INTEGRAL SOLUTIONSSoluciones geoespaciales SAFETY INTEGRAL SOLUTIONS
Soluciones geoespaciales SAFETY INTEGRAL SOLUTIONS
 
Manual sofware vias
Manual sofware viasManual sofware vias
Manual sofware vias
 
Capitulo vi
Capitulo viCapitulo vi
Capitulo vi
 
Sistemas De Informacion Geografica .pdf
Sistemas De Informacion Geografica .pdfSistemas De Informacion Geografica .pdf
Sistemas De Informacion Geografica .pdf
 
Definiciones y conceptos
Definiciones y conceptosDefiniciones y conceptos
Definiciones y conceptos
 
Definiciones y conceptos(1)
Definiciones y conceptos(1)Definiciones y conceptos(1)
Definiciones y conceptos(1)
 
CTParking documentacion aplicacion
CTParking documentacion aplicacion CTParking documentacion aplicacion
CTParking documentacion aplicacion
 
Mapas en línea
Mapas en líneaMapas en línea
Mapas en línea
 
Open Street Map
Open Street MapOpen Street Map
Open Street Map
 

Más de Jonathan Sarmiento

Influencia del internet en el siglo xxi
Influencia del internet en el siglo xxiInfluencia del internet en el siglo xxi
Influencia del internet en el siglo xxiJonathan Sarmiento
 
Curso de tecnicas de aprendizaje
Curso de tecnicas de aprendizajeCurso de tecnicas de aprendizaje
Curso de tecnicas de aprendizajeJonathan Sarmiento
 
Curso de tecnicas de aprendizaje
Curso de tecnicas de aprendizajeCurso de tecnicas de aprendizaje
Curso de tecnicas de aprendizajeJonathan Sarmiento
 
Francisco rodríguez inteligencia artificial
Francisco rodríguez   inteligencia artificialFrancisco rodríguez   inteligencia artificial
Francisco rodríguez inteligencia artificialJonathan Sarmiento
 
La evaluacion en_la_gestion_de_proyectos
La evaluacion en_la_gestion_de_proyectosLa evaluacion en_la_gestion_de_proyectos
La evaluacion en_la_gestion_de_proyectosJonathan Sarmiento
 

Más de Jonathan Sarmiento (8)

Influencia del internet en el siglo xxi
Influencia del internet en el siglo xxiInfluencia del internet en el siglo xxi
Influencia del internet en el siglo xxi
 
Sistema de coordenadas
Sistema de coordenadasSistema de coordenadas
Sistema de coordenadas
 
Curso de tecnicas de aprendizaje
Curso de tecnicas de aprendizajeCurso de tecnicas de aprendizaje
Curso de tecnicas de aprendizaje
 
Tercera practica
Tercera practicaTercera practica
Tercera practica
 
Formato hoja vida
Formato hoja vidaFormato hoja vida
Formato hoja vida
 
Curso de tecnicas de aprendizaje
Curso de tecnicas de aprendizajeCurso de tecnicas de aprendizaje
Curso de tecnicas de aprendizaje
 
Francisco rodríguez inteligencia artificial
Francisco rodríguez   inteligencia artificialFrancisco rodríguez   inteligencia artificial
Francisco rodríguez inteligencia artificial
 
La evaluacion en_la_gestion_de_proyectos
La evaluacion en_la_gestion_de_proyectosLa evaluacion en_la_gestion_de_proyectos
La evaluacion en_la_gestion_de_proyectos
 

Documentacion

  • 1. PROYECTO FIN DE CARRERA DESARROLLO DE UN SISTEMA INTELIGENTE GPS-RASTER PARA UNA PDA AUTOR: Manuel Guillermo Lago Rodríguez MADRID, Junio 2006 UNIVERSIDAD PONTIFICIA COMILLAS ESCUELA TÉCNICA SUPERIOR DE INGENIERÍA (ICAI) INGENIERO EN INFORMÁTICA
  • 2. Desarrollo de un Sistema Inteligente GPS-Raster para una PDA Resumen Este proyecto consiste en el desarrollo de una aplicación que sea capaz de tomando un archivo de imagen cualquiera de un mapa de carreteras, independientemente del formato de imagen de archivo y del modo en el que estén representadas las vías de circulación en él, proporcionar servicios de calculo de rutas e interacción con un dispositivo GPS al mismo nivel que daría un mapa comercial especialmente desarrollado con este propósito. De este modo, será una herramienta que podrá proveer a usuarios que quieran hacer uso de sus sistemas de navegación en zonas que o bien no disponen de mapas adecuados para sus necesidades o bien que directamente aún no han sido mapeadas por las compañías que desarrollan este tipo de mapas. Esta aplicación va a desarrollarse íntegramente sobre una plataforma PDA, pues es en este tipo de plataforma donde se hace uso de los sistemas de navegación GPS y donde la posibilidad de trazar una ruta sobre mapas de carreteras puede ser realmente útil. La idea es permitir que el usuario solo tenga que descargar la imagen a su PDA desde cualquier fuente, y tras un pequeño proceso de análisis y pretratado sea capaz de emplear el mapa como si hubiese sido especialmente desarrollado con ese propósito. Para conseguir esto, es necesario que la aplicación sea capaz de ver las vías de circulación contra el fondo, diferenciarlas de otros elementos similares como ríos o líneas de coordenadas, analizar sus características para obtener I
  • 3. Desarrollo de un Sistema Inteligente GPS-Raster para una PDA su trazado, su longitud e identificar el tipo de vía al que pertenece, para así poder calcular tanto rutas mínimas como rutas óptimas de acuerdo con un formato definido por el usuario. Para poder analizar la imagen a nivel que eso requiere, a su vez, es necesario que esta se encuentre en un formato vectorial que además sea fácilmente legible por la aplicación. Por tanto, antes del análisis será necesario realizar una transformación de la imagen a un formato vectorial que además deberá ser abierto para poder acceder de modo directo a los datos del mapa de carreteras Como resultado del análisis realizado sobre la imagen vectorial, la aplicación habrá reconocido los distintos tipos de carreteras presentes en el mapa y tendrá todos los datos necesarios para calcular rutas sobre el mapa. Para realizar el cálculo de rutas en sí, se creará un Grafo de Rutas que recogerá todos los datos relativos al mapa de carreteras, sobre el que se implantará un algoritmo de búsqueda heurística. Mediante estas dos herramientas, la aplicación podrá calcular la ruta de mínimo recorrido entre dos puntos cualesquiera que el usuario indique sobre mapa de carreteras. La aplicación podrá interactuar con el dispositivo GPS integrado en la PDA durante la realización de cualquiera de sus tareas. Así, podrá definirse el punto de origen o destino como la localización actual del dispositivo GPS, y por supuesto también indicar al usuario cual es su posición actual en el mapa. II
  • 4. Desarrollo de un Sistema Inteligente GPS-Raster para una PDA Para poder interactuar con el GPS, el usuario podrá, con gesto tan simple como indicar las coordenadas geográficas reales de tres puntos sobre la superficie del mapa, definir completamente la colocación del mapa sobre la superficie de la Tierra. La aplicación calculará desde esos tres puntos la localización, orientación y escala del mapa. Todos los datos relativos tanto al Grafo de Rutas como al posicionamiento del mapa permanecerán guardados de modo que el mismo mapa pueda ser empleado de nuevo sin necesidad de repetir el proceso de generación del grafo y de posicionamiento del mapa. III
  • 5. Desarrollo de un Sistema Inteligente GPS-Raster para una PDA Abstract The purpose of this project is the development of an application capable of taking an image file of a roadmap, independently of its file format and the way the roads are represented within it, provide with route calculation and interaction with a GPS device at the same level a commercial map especially prepared for this purpose. This way, it will become a tool capable of providing users who wish to make use of their navigation systems on areas that either do not have maps adequated for their necessities or simply have not been maped yet by the companies who make this kind of maps. This application will be entirely developed on a PDA platform, as this kind of platform is where the use of GPS navigation systems and the possibility of determining over a roadmap may be truly useful. The idea is allow for the user to only have to download the image on his PDA from any source, and after a short process of analysis be capable of employing the map as if it had been specially developed with this purpose. In order to achieve this, is necessary for the application to distinguish the roads form the background, difference then form similar elements like rivers or coordinate lines, analyse their characteristics in order to obtain their path, length and identify the kind of road it belongs to, and so be able of calculating minimal routes as well as optimal routes according to a format defined by the user. IV
  • 6. Desarrollo de un Sistema Inteligente GPS-Raster para una PDA In order to analyse the image to this level it is required for the image to be in a vectorial format that is also easily readable by the application. As such, before the analysis it will be needed to realize a conversion of the image into a vectorial format that is also open in order to access directly to the roadmap data. As a result of the analysis conducted on the application will had recognized the different kinds of roads present on the map and will have all the data required to calculate routes on the map. To realize the route calculation itself, a Route Graph containing all the data relative to the roadmap will be created. On this graph an heuristic search algorithm will be implemented. Using these two tools, it will be possible to calculate the minimum longitude route between whichever two points indicated by the user on the roadmap. During the realization of its functionalities, the application will be capable of interacting with the GPS device integrated on the PDA. This way, it will be possible to define the starting and ending point as the current location of the GPS device, and of course also indicate to the user its current location on the roadmap. In order to interact with the GPS, the user will be able to, with a gesture as simple as indicating the geographic coordinates of three points on the map surface, completely define the location of the map on Earth’s surface. The V
  • 7. Desarrollo de un Sistema Inteligente GPS-Raster para una PDA application will calculate form this three points the location, orientation and scale of the map. All data related to both the Route Graph and the location of the map will be stored so the same map may be used again without having to repeat the graph generation and map location processes. VI
  • 8. Desarrollo de un Sistema Inteligente GPS-Raster para una PDA La elaboración de este proyecto no habría sido posible sin la inestimable ayuda de José Ángel Olivas Varela y Miguel Ángel Sanz Bobi. Muchas gracias familia, profesores y amigos por vuestro apoyo. A todos vosotros os lo dedico. VII
  • 9. Desarrollo de un Sistema Inteligente GPS-Raster para una PDA Índice VIII
  • 10. Desarrollo de un Sistema Inteligente GPS-Raster para una PDA Capitulo 1 - Introducción y Planteamiento 1 1.1. Necesidad del Proyecto 3 Capitulo 2. Objetivos 5 Capitulo 3 - Requisitos de la aplicación 8 Capitulo 4 - Estado del Arte 10 4.1. GPS (Global Positioning System) 11 4.2. Modelo Geográfico 15 4.2.1. La Tierra 15 4.2.2. Meridianos y Paralelos 15 4.3. Proyección Mercator 18 4.4. Búsqueda Heurística 20 4.4.1. Algoritmo A* 22 4.4.2. Funcionamiento de A* 25 4.5. Tecnologías 34 4.5.1. PDA (Personal Digital Assistant) 34 4.5.2. SVG (Scalable Vector Graphics) 36 4.5.3. AutoTrace 38 4.5.4. BMP 40 IX
  • 11. Desarrollo de un Sistema Inteligente GPS-Raster para una PDA 4.5.5. XML (Extensible Markup Language) 41 4.5.6. Microsoft Visual Studio .NET 43 4.5.7. C# 44 Capitulo 5 - Desarrollo del Sistema GPS 45 5.1. Decisiones de Diseño 46 5.2. Diseño de la Aplicación 49 5.2.1. División en módulos 50 5.2.2. DFD Módulo Vectorizador 51 5.2.3. DFD Módulo Enrutador 52 5.2.4. DS Proceso de Vectorización 53 5.3. Grafo de Rutas 54 5. 4. Módulo Vectorizador 57 5.4.1. Tratamiento de la imagen 59 5.4.1.1. Identificación de carreteras 59 5.4.1.2. Tratamiento en fases de la imagen 60 5.4.1.2.1 Pretratado 61 5.4.1.2.2. Vectorización Mediante Autotrace 62 5.4.1.2.3. Digitalización 67 5.4.1.2.4. Abstracción del Mapa a Grafo 68 X
  • 12. Desarrollo de un Sistema Inteligente GPS-Raster para una PDA 5.4.1.2.5. Refinado 68 Aproximación de nodos 69 Conexión de nodos 71 Eliminación de Elementos Redundantes 73 Parámetros de Refinado 75 5.4.2. Editor de Grafo 78 5.4.3. Generación del documento XML 83 5.5. Módulo Enrutador 84 5.5.1. Lectura del fichero XML 84 5.5.2. Calculo de Rutas Mínimas 85 Representación de la ruta calculada 86 5.5.3. Posicionamiento 88 5.5.3.1. Localización 89 5.5.3.2. Orientación 90 5.5.3.3. Escala 92 5.5.3.4 Empleo de un Modelo de Tierra Plana 93 5.5.3.4.1. Dos puntos frente a tres puntos 94 5.5.3.4.2. Parámetros de conversión 95 Grado de Longitud 95 XI
  • 13. Desarrollo de un Sistema Inteligente GPS-Raster para una PDA Ratio de Kilómetros a Píxeles 97 Matriz de Conversión de Coordenadas 97 5.5.4. Conversión de coordenadas 99 5.5.4.1. Aplanamiento de la Tierra 99 5.5.4.2. Cambio de Escala 101 5.5.4.3. Cambio de Ejes Coordenados 101 5.5.5. Fallo a Mayor escala 103 Imprecisión propia del mapa 109 5.6. Limitaciones de la aplicación 111 5.6.1. Generación del Grafo de Rutas 111 5.6.1.1. Influencia del formato 111 5.6.1.2. Abstracción al grafo 113 Elementos que no son carreteras 113 Perdida de carreteras 114 Cúmulos de Nodos 115 Fallo de Conexión 116 5.6.1.3. Refinado 118 5.6.2. Uso de la proyección Mercator 121 5.6.2.1. Imprecisión por deformación 121 XII
  • 14. Desarrollo de un Sistema Inteligente GPS-Raster para una PDA 5.6.2.2. Mapas inutilizables 123 Capitulo 6 - Evaluación del proyecto 128 6.1. Generación del Grafo de Rutas 129 6.2. Calcular Ruta de Mínimo Recorrido 132 6.3. Posicionamiento y Conversión de Coordenadas 134 Capitulo 7 - Conclusiones 136 7. 1. Cumplimiento de los Objetivos 141 7.2. Cumplimiento de los Requisitos 146 Capitulo 8 - Planificación y Presupuesto 149 8.1. Planificación del Proyecto 150 8.2. Presupuesto del Proyecto 152 Capitulo 9 - Bibliografía 154 Apéndice - Uso de la aplicación 156 A.1. Módulo de Vectorización 157 A1.2. Módulo Enrutador 171 XIII
  • 15. Desarrollo de un Sistema Inteligente GPS-Raster para una PDA Capitulo 1 - Introducción y Planteamiento 1
  • 16. Desarrollo de un Sistema Inteligente GPS-Raster para una PDA El propósito de este proyecto es el desarrollo de un sistema, orientado a su implantación en un formato PDA, que, tomando un mapa en un formato de imagen simple, como un mapa de bits, se capaz de convertirlo en un mapa que pueda ser directamente empleado por un dispositivo GPS. Con este mapa, se podrán determinar rutas, distancias y tiempos entre puntos mediante técnicas de búsqueda heurística. Para realizar el proceso de conversión del mapa, el sistema lo convertirá a un formato vectorial para poder tratar sus características directamente y determinará su escala y su posición global mediante la definición de varios puntos de referencia. 2
  • 17. Desarrollo de un Sistema Inteligente GPS-Raster para una PDA 1.1. Necesidad del Proyecto Los sistemas de navegación GPS actuales requieren para su funcionamiento el uso de mapas especialmente desarrollados para este propósito, que además sean compatibles con el sistema de ubicación geográfica del propio del GPS. Este hecho conlleva múltiples limitaciones en el uso de estos dispositivos. Estos mapas frecuentemente pueden no cubrir las necesidades de un usuario en un momento determinado, ya sea porque no abarcan con suficiente precisión el área que interesa al usuario, porque no están adecuadamente actualizados o sencillamente porque no existe ningún mapa de esa área. En ocasiones el usuario ni siquiera tendrá la posibilidad de adquirir el mapa que necesita al no tener acceso al sistema de distribución que la compañía desarrolladora emplee. Sin embargo, es prácticamente seguro que el usuario podrá tener a su alcance un mapa normal (es decir, no preparado para su uso por un dispositivo GPS) que satisfaga sus necesidades en un mayor grado, pero se verá obligado adquirir un mapa especialmente desarrollado para su uso por su sistema GPS, que además de sufrir los problemas anteriormente mencionados será redundante con el que ya tenía. Aunque actualmente la cobertura proporcionada por el sistema GPS es global, significando que en cualquier punto del planeta es posible emplear un dispositivo GPS para calcular las coordenadas de una posición, para poder 3
  • 18. Desarrollo de un Sistema Inteligente GPS-Raster para una PDA trazar itinerarios sobre un mapa y calcular rutas mínimas es necesario que el mapa disponga de una inteligencia adicional. Esta inteligencia está contenida en una base de datos adjunta al mapa que reúne todos los datos necesarios para que el mapa conozca donde se encuentran las vías de circulación, y conozca sus características físicas como su trazado, las conexiones que tenga con otras carreteras y su longitud. Tradicionalmente crear estos mapas preparados para GPS requiere trazar manualmente las vías sobre el mapa para que sus características sean comprendidas por el sistema. Este por lo general es un proceso considerablemente lento y caro, e implica que ninguna de las compañías dedicadas a esta tarea va a trazar mapas a los que no crea vaya a dar salida. El resultado es que la mayor parte del mundo no dispone de mapas preparado para el uso de sistemas de autorouting que represente sus vías con suficiente precisión, completitud y actualidad. Resolver este problema es el principal propósito de este proyecto. El usuario debe ser capaz de poder aprovechar su dispositivo GPS con cualquier mapa que ya posea, a pesar de que no haya sido especialmente desarrollado para ello, y además de poder añadir un nuevo mapa a su navegador en cualquier momento según aparezca la necesidad, y de poder utilizar estos mapas como si hubieran sido preparados para la navegación GPS. 4
  • 19. Desarrollo de un Sistema Inteligente GPS-Raster para una PDA Capitulo 2. Objetivos 5
  • 20. Desarrollo de un Sistema Inteligente GPS-Raster para una PDA La aplicación podrá tomar un archivo de imagen en cualquier formato y será capaz de crear un Grafo de Rutas a partir únicamente de la imagen, de modo que en él se detallen las distancias, trazado de la vía y rutas entre los puntos significativos del mapa, y las coordenadas geográficas de esos puntos. El proceso de vectorización de la imagen deberá ser capaz de diferenciar los tipos de vía presentes en el mapa. Así mismo, deberá diferenciar estas de otros elementos del mapa que puedan causar confusión, como ríos y otros elementos geográficos. El usuario podrá posicionar el mapa en el sistema de coordenadas de latitud y longitud utilizado por el GPS simplemente definiendo las coordenadas de varios puntos en el mapa. A partir de esto, el dispositivo calculará todos los parámetros que pueda necesitar para realizar un cambio de coordenadas entre los sistemas empleados por la aplicación, y a partir de esos datos, calcular la localización del mapa, su orientación y su escala. Conociendo esto, podrá calcular la longitud de los tramos de vías de circulación, de las rutas calculadas por el sistema y las coordenadas actuales del usuario sobre el mapa. Este proceso solo necesitará ser realizado una vez, y el mapa recordara los resultados para futuras ejecuciones. El sistema podrá asignar pesos a los tipos de vía presentes en el mapa identificados durante el análisis del mapa, de modo que favorezca algunos, como las autopistas, sobre otros al calcular el recorrido óptimo. El usuario 6
  • 21. Desarrollo de un Sistema Inteligente GPS-Raster para una PDA podrá definir estos pesos a voluntad, o utilizar algún esquema de pesos predeterminado. Partiendo de estos datos, el sistema podrá calcular la ruta de mínima distancia entre dos puntos cualesquiera del mapa, no solo los definidos como puntos significativos durante el proceso de análisis, y a continuación podrá mostrar esta ruta directamente sobre el mapa, e indicara al usuario su longitud total. 7
  • 22. Desarrollo de un Sistema Inteligente GPS-Raster para una PDA Capitulo 3 - Requisitos de la aplicación 8
  • 23. Desarrollo de un Sistema Inteligente GPS-Raster para una PDA El sistema deberá estar implantado completamente sobre una plataforma Pocket PC, y ser capaz de interactuar con el receptor GPS de ésta durante la realización de sus funcionalidades. Esto se requiere para así poder dar al usuario la capacidad de trabajar de modo inmediato con cualquier mapa de carretera que se introduzca a la aplicación. La herramienta deberá estar orientada a un usuario al que no se le supone ningún conocimiento sobre informática, funcionamiento de dispositivos GPS, sistemas de navegación o tratamiento de imagen. Por ello, su interfaz deberá ser intuitiva, sencilla y autoexplicativa, y el uso de la aplicación deberá ser extremadamente sencillo, manteniendo todos los procesos de tratamiento de la imagen y de interacción con el dispositivo GPS transparentes al usuario. 9
  • 24. Desarrollo de un Sistema Inteligente GPS-Raster para una PDA Capitulo 4 - Estado del Arte 10
  • 25. Desarrollo de un Sistema Inteligente GPS-Raster para una PDA 4.1. GPS (Global Positioning System) El Sistema de Posicionamiento Global, más conocido como GPS (Global Positioning System) es el único sistema de navegación por satélite que actualmente proporciona una cobertura completa a nivel global. Dispone de una constelación en la que siempre hay al menos 24 satélites activos, que transmiten señales de radio precisamente temporizadas que permiten a los receptores GPS calcular con exactitud su latitud, longitud y altitud. Mediante estos datos los dispositivos receptores actuales también son capaces de calcular su velocidad y orientación. En todo momento, en cualquier punto de la superficie de la Tierra, sea de día o de noche y bajo cualquier clima, un dispositivo GPS es capaz de ver al menos los cuatro satélites que necesita para hacer ese cálculo y conocer tanto la distancia que los separa de ellos como su posición orbital actual. De este modo, obtiene el radio (la distancia al satélite) y el centro (la posición orbital del satélite) de cuatro esferas cuyo punto de intersección es precisamente la localización actual, definida por su latitud, longitud y altitud del punto actual. Puede parecer lógico que se requiriera únicamente tres satélites, puesto que el propósito del GPS es determinar la posición del dispositivo en un sistema tridimensional, que únicamente requeriría de tres esferas para ser definido. La cuarta esfera es necesaria para introducir la variable tiempo en el sistema. El retardo de las señales de los satélites puede variar enormemente 11
  • 26. Desarrollo de un Sistema Inteligente GPS-Raster para una PDA por el estado de las capas elevadas de la atmósfera, por las condiciones climáticas y por la altura de los satélites sobre el horizonte. El cuarto satélite permite determinar el retardo de las señales recibidas por cada satélite de forma lo suficientemente exacta como para permitir que el dispositivo pueda calcular su posición de modo fiable. La medición exacta del tiempo es una característica fundamental en el funcionamiento de los satélites GPS, puesto que las distancias a los satélites que se utilizan se calculan como el tiempo que ha tardado en recorrerlas una onda de radio, que viaja a la velocidad de la luz. Eso significa que un reloj que calculara el tiempo con precisión de milésimas de segundo, fallaría en su estimación por 300 km. Por ello, los satélites utilizan relojes atómicos de extrema precisión. Es interesante notar que debido a que los relojes de los satélites están sometidos tanto a la relatividad general como a la espacial, el tiempo avanza ligeramente más rápido en ellos que en la Tierra. Concretamente, los relojes de los satélites van aproximadamente 38 microsegundos al día más rápido que los relojes en la Tierra. Pero si los dispositivos de recepción tuvieran relojes de ese nivel, costarían millones de euros y nadie podría acceder a ellos. Para reparar la imprecisión producida por el más limitado reloj del receptor es para lo que existe la señal del cuarto satélite. Recientemente, los campos en los que se aplican los dispositivos GPS han dejado de estar limitados a su uso por parte de fuerzas militares, tareas de 12
  • 27. Desarrollo de un Sistema Inteligente GPS-Raster para una PDA salvamento y navegación profesional. Tras su introducción en dispositivos portátiles de navegación disponibles al público general, aparecieron programas de creación de itinerarios que eran capaces de generar rutas mínimas sobre un PC que podían a continuación ser importadas a un dispositivo GPS. Debido al éxito de este planteamiento, poco después empezaron a aparecer coches equipados de serie con sistemas de navegación GPS integrados, y programas de cálculo de rutas que funcionaban en tiempo real directamente sobre los dispositivos de navegación GPS, el denominado autorouting. El empleo de autorouting por parte de los dispositivos GPS requiere de una completa base de datos de las vías de circulación de la zona recorrida aparte del mapa de carreteras en sí. Esta base de datos debe incluir el trazado de las carreteras, su longitud, sus conexiones con otras carreteras, etcétera. Debido a estos requisitos, que hacen del proceso de creación de mapas de preparados para autorouting un proceso lento y costoso, y del hecho de que la tecnología es aún considerablemente nueva, las áreas del mundo que disponen actualmente de mapas de carreteras con estas características, con una base de datos como la descrita adjunta y con un mínimo de fidelidad a la realidad y de exactitud se limitan a Estados Unidos, Canadá, Europa Occidental y Australia. No es de sorprender, por tanto, la aparición de múltiples comunidades de usuarios de GPS en otros países que se han dedicado a crear sus propios mapas de navegación en su tiempo libre. Desgraciadamente, estos grupos de usuarios están considerablemente limitados de modo evidente al no disponer de los recursos a los que tiene acceso una compañía profesional. 13
  • 28. Desarrollo de un Sistema Inteligente GPS-Raster para una PDA Esto hace que la cobertura proporcionada en otros países por mapas creados por estas comunidades sea bastante limitada. 14
  • 29. Desarrollo de un Sistema Inteligente GPS-Raster para una PDA 4.2. Modelo Geográfico. 4.2.1. La Tierra La Tierra como planeta no es una esfera perfecta, sino un esferoide ligeramente achatado en los polos. Así, su radio mayor, en el ecuador es 6378.137 km, y en los polos de 6356,752 km. Para este proyecto se ha considerado, no obstante, a la tierra como una esfera perfecta de radio constante 6372 km puesto que la deformación producida por esta aproximación es despreciable. 4.2.2. Meridianos y Paralelos Las coordenadas geográficas que tradicionalmente se utilizan en la navegación para determinar puntos sobre la superficie terrestre, y que también son las utilizadas por los dispositivos GPS se denominan Latitud y Longitud. La latitud es el ángulo que la recta que une el punto observado y el centro de la tierra mantiene con el plano ecuatorial. Tradicionalmente se le da a la latitud de los puntos situados en el Hemisferio Norte un valor positivo y a los situados en el Hemisferio Sur un valor negativo. De este modo, la latitud varía desde 90º en el Polo Norte, a 0º en cualquier punto situado en el Ecuador, a -90º en el Polo Sur. Siguiendo este convenio, latitud aumenta conforme se avanza hacia el Norte y se reduce conforme se avanza hacia el Sur. Este 15
  • 30. Desarrollo de un Sistema Inteligente GPS-Raster para una PDA convenio se ha introducido en el proyecto puesto que simplifica considerablemente el funcionamiento matemático de la aplicación. La longitud es el ángulo que la recta perpendicular al eje de rotación de la Tierra que pasa por el punto observado mantiene con el semiplano definido por el eje de rotación de la Tierra y por la localización del antiguo observatorio astronómico ubicado en Greenwich, uno de los barrios de Londres. De modo similar a la latitud, existe un convenio que define la longitud en puntos situados al Este de este punto, también denominados conjuntamente como Hemisferio Este, como positiva, mientras que los puntos situados al Oeste del semiplano, o Hemisferio Oeste, como negativos. Siguiendo este convenio, la longitud varía desde -180º, para los puntos situados en el semiplano opuesto a Greenwich, 0º en el propio semiplano y +180º en el mismo punto en el que se empezó. Este convenio también se ha adoptado en el proyecto, por razones análogas a las del caso de la latitud. Un paralelo es una línea ficticia trazada sobre la superficie de la Tierra por la intersección de un plano perpendicular al eje de rotación con la Tierra. En un paralelo, la latitud se mantiene constante, y sobre él se mide la longitud. La longitud de la circunferencia definida por un paralelo varía desde 40075 km en el Ecuador hasta 0 km en los polos. Por esto, la longitud de los grados de longitud varía conforme la latitud del punto observado. Un meridiano es una línea ficticia trazada sobre la superficie de la Tierra por la intersección de un semiplano que parta del eje de rotación de la Tierra y 16
  • 31. Desarrollo de un Sistema Inteligente GPS-Raster para una PDA la superficie de la Tierra. Como tal, es una semicircunferencia. En un meridiano, la longitud se mantiene constante y sobre él se puede medir la latitud. Un antimeridiano es el meridiano situado en el punto opuesto del planeta y que cierra la circunferencia definida por un meridiano. Puesto que la longitud de la semicircunferencia definida por un meridiano es constante independientemente de la longitud, la longitud de los grados de latitud es constante. No obstante, no hay que olvidar que esto es solo porque se está trabajando sobre una representación teórica de la Tierra como una esfera perfecta. En realidad, al ser un esferoide, la longitud de los grados de latitud varía según la latitud desde 110,57 en el Ecuador hasta 111,70 a la altura de los polos. Es interesante notar que aún tomando la Tierra como un esferoide, la longitud de los grados de latitud sigue siendo independiente de la longitud a la que se encuentre el punto observado. 17
  • 32. Desarrollo de un Sistema Inteligente GPS-Raster para una PDA 4.3. Proyección Mercator Debido al hecho de que la Tierra es una esfera, es imposible representar su superficie sobre un plano de forma fidedigna. A lo largo de la historia han surgido múltiples sistemas de proyección para representar tratar de representar la Tierra sobre un plano de un modo útil. La proyección Mercator es un sistema de proyección cartográfico ideado en 1569 por el cartógrafo holandés Gerardus Mercator. En este sistema de proyección se emplea como superficie de proyección un cilindro cuyo eje central es coincidente con el eje de rotación de la Tierra. Los sistemas de proyección cilíndrica inevitablemente introducen una deformación en dirección Este-Oeste alejándose del Ecuador en un ratio cuyo valor es la secante de la latitud con respecto a la escala en el Ecuador. La característica que diferencia a la proyección Mercator de otros sistemas de proyección cilíndrica como el de Miller o el de plate careé es la introducción de una deformación en la misma proporción en sentido Norte-Sur. El resultado que hacer esto conlleva es que las distancias que separan los paralelos y los meridianos se mantienen constantes en el mapa. Además, los ángulos representados sobre el mapa son iguales que los presentes en la superficie de la Tierra. Como resultado de esto, las líneas de orientación constante, es decir, las líneas que avanzan sin cambiar de rumbo moviéndose por la superficie de la Tierra son igualmente rectas sobre el mapa, independientemente de la 18
  • 33. Desarrollo de un Sistema Inteligente GPS-Raster para una PDA longitud o latitud a la que se encuentre el punto observado. Este es el motivo por el cuál pese a que proyección Mercator, con más de 400 años de antigüedad, y que exagera de modo descomunal las áreas de las regiones situadas a elevadas latitudes sigue siendo una de las proyecciones más empleadas hoy en día. No obstante, la proyección Mercator no ha sido seleccionada como proyección para la representación del modelo de Tierra desarrollado en el proyecto por estos motivos sino por su extrema simplicidad de cálculo. Puesto que se espera que a la escala a la que se vaya a emplear el mapa la curvatura de la Tierra sea poco apreciable, la deformación que las diferentes proyecciones introducen pasa a un segundo plano, siendo el principal motivo para la selección de un sistema de proyección su sencillez desde un punto de vista matemático. Por esto es por lo que se ha seleccionado la proyección Mercator para realizar las conversiones de coordenadas. 19
  • 34. Desarrollo de un Sistema Inteligente GPS-Raster para una PDA 4.4. Búsqueda Heurística El razonamiento puede entenderse como la búsqueda de una solución en una base de conocimientos. Según esta filosofía existen varios algoritmos de inteligencia artificial cuyo funcionamiento se basa en la búsqueda de la solución óptima a través de una estructura como un grafo o un árbol generados a partir de la base de conocimiento. Estos algoritmos se denominan algoritmos de búsqueda heurística. La búsqueda de soluciones óptimas a través de grafos no se limita al campo de la inteligencia artificial, sino que es un problema clásico para el que se han desarrollado multitud de algoritmos de búsqueda, muchos de los cuales no tienen ningún tipo de inteligencia. Los algoritmos de búsqueda heurística se diferencian de estos en el empleo de una cierta cantidad de conocimiento durante el proceso de búsqueda. Este conocimiento ayuda al algoritmo a escoger un camino hacia la solución, aunque puede que el camino no lleve a la solución óptima. Al emplear un algoritmo de búsqueda heurística se está sacrificando la exahustividad propia de un algoritmo de búsqueda por fuerza bruta a cambio de obtener una solución para un problema de forma más eficiente que con los algoritmos tradicionales. En el caso de este problema, se ha recurrido al uso de un algoritmo de búsqueda heurística debido a que la base de conocimiento sobre la que se está trabajando, que no es otra que el propio mapa de carreteras que se está 20
  • 35. Desarrollo de un Sistema Inteligente GPS-Raster para una PDA analizando, ya tiene una estructura propia de un grafo; Es decir, se compone de una serie de puntos significativos, como cruces, ciudades, etcétera, que están conectados entre sí por una serie de caminos, las vías de circulación, definidos por unos ciertos pesos, sus longitudes en kilómetros. El problema a resolver también es de los clásicos que se suele resolver mediante algoritmos de búsqueda, tanto en el caso de los normales como en el de los algoritmos de búsqueda heurística: La búsqueda del camino de mínimo peso entre dos puntos definidos de un grafo, desde el punto donde se inicia la búsqueda hasta un punto meta donde concluye la búsqueda. En el caso de un grafo generado a partir de un mapa de carreteras, encontrar el camino de mínimo peso supone encontrar la ruta de mínimo recorrido a través del mapa de carreteras representado por el grafo. 21
  • 36. Desarrollo de un Sistema Inteligente GPS-Raster para una PDA 4.4.1. Algoritmo A* De entre los diferentes algoritmos de búsqueda heurística existentes, se ha seleccionado para el cálculo de la ruta de mínimo recorrido el algoritmo de búsqueda heurística A* para el cálculo de la ruta de mínimo recorrido sobre el grafo generado a partir del mapa de carreteras. Entre los diferentes algoritmos de búsqueda existen dos métodos básicos para encontrar la solución óptima. La búsqueda en profundidad explora una rama del árbol de soluciones, o un posible camino desde el punto de vista del grafo, hasta que encuentra la solución o llega al final. Emplear un algoritmo basados en profundidad aseguraría llegar hasta el destino, pero no el que se hiciera por el camino más corto. La búsqueda en anchura expande todos los nodos desde el origen, hasta que de estos resulta en el nodo solución. La búsqueda en anchura asegura encontrar el camino con menos saltos hasta el destino, pero este no tiene porque ser el óptimo. Además, su complejidad y tiempo de ejecución son exponenciales respecto al número de nodos del grafo. Con la complejidad que se espera tenga el grafo generado por encontrar la solución óptima, este método se vuelve del todo inaplicable. Para el cálculo de las rutas mínimas, el programa no va a hacer uso de ninguno de estos dos métodos elementales. El algoritmo que se empleará es un método de búsqueda del primer mejor. Éste tipo de algoritmos combina las ventajas de los algoritmos basados en profundidad y en anchura siguiendo un 22
  • 37. Desarrollo de un Sistema Inteligente GPS-Raster para una PDA único camino, pero cambiando de ruta en cualquier momento, cuando aparezca una ruta alternativa que resulte más prometedora que la actual. Para decidir si se va a cambiar de ruta, estos algoritmos hacen uso de un cierto conocimiento, con lo que añaden una inteligencia al proceso de búsqueda, lo que los hace algoritmos de búsqueda heurística. Más exactamente, se va a emplear uno de los algoritmos denominados Branch-and-Bound, un perfeccionamiento de los algoritmos de Búsqueda del Primer Mejor que añaden a los cálculos para la decisión del camino hacia el destino el coste acumulado de lo recorrido hasta el momento. Como resultado, no sólo localizan la solución, sino que además lo hacen a través del camino óptimo hacia ella. Puesto que el propósito para el que se están usando estos algoritmos es precisamente el de localizar el camino de mínimo peso, es decir, recorrido, hasta el nodo destino, este tipo de algoritmos resulta perfecto para la tarea. El algoritmo A* es uno de los algoritmos de Branch-and-Bound. Este algoritmo mejora el modelo básico Brach-and-Bound incorporando una función de mérito que se calcula como la combinación del coste incurrido hasta el nodo actual más una función de estimación heurística que predice cual es el coste desde los diferentes nodos vecinos hacia la meta. Esta función de mérito se emplea para decidir hacia que nodo vecino se va a expandir la ruta a continuación, lo que implica incurrir en un coste operacional superior pero al mismo tiempo permite encaminar la búsqueda directamente en la dirección de 23
  • 38. Desarrollo de un Sistema Inteligente GPS-Raster para una PDA la meta optima. Esta función de estimación heurística introduce una cierta cantidad de inteligencia y conocimiento en el propio algoritmo de selección de caminos. El nivel en el que la solución calculada por el algoritmo será óptima y el tiempo que se tardará en alcanzarla dependen directamente de la calidad de la función heurística, por tanto su selección es un punto fundamental en el desarrollo del algoritmo. En este proyecto se ha implementado como función de estimación heurística la distancia en línea recta que separa el nodo que esta siendo evaluado para expandir la ruta en su dirección y el nodo destino. En lo que esto resulta es que el algoritmo considera que, en una situación en la que los caminos hacia los nodos sean equivalentes, el sistema va a optar por el nodo vecino más cercano al destino. En otras palabras, el algoritmo actúa llevado por el conocimiento de que avanzando en la dirección en la que se encuentra el destino es como más probablemente vaya a encontrar la ruta de longitud mínima. Esto no debe llevar a pensar que en caso de que alcanzar el destino requiera en algún momento alejarse de él o en él que el camino más directo no sea el más corto el algoritmo se va a ver visto en problemas. Sin duda tardará más al tener que probar antes los caminos que van hacia el destino, pero seguirá obteniendo la ruta óptima. En la mayoría de los casos, no obstante, especialmente en los que pueden presentarse en el trazado de rutas sobre mapas concerniente a este sistema, seguirá siendo más rápido que cualquiera de los otros algoritmos de búsqueda heurística. Por esta superioridad en la aplicación a este campo, y puesto que la función de búsqueda que se ha 24
  • 39. Desarrollo de un Sistema Inteligente GPS-Raster para una PDA empleado es directamente deducible, y fácil de implementar y calcular, es por lo que se ha decidido emplear este algoritmo para el cálculo de las rutas mínimas. 4.4.2. Funcionamiento de A* Tomando como ejemplo de Grafo de Rutas este mapa de Rumania: 25
  • 40. Desarrollo de un Sistema Inteligente GPS-Raster para una PDA En el que la distancia en línea recta desde cada una de las ciudades (nodos) representadas en el mapa hasta Bucarest (nodo destino) es: Arad 366 Mehadia 241 Bucarest 0 Neamt 234 Craiovra 160 Oradea 380 Dobreta 242 Pitesti 100 Efoire 161 Rimnicu Vilcea 193 Fagaras 176 Sibiu 253 Giurgiu 77 Timisoara 329 Hirsova 151 Urziceni 80 Iasi 226 Vaslui 199 Lugoj 244 Zerind 374 Se va a emplear el algoritmo A* con la misma implantación que se emplea en el cálculo de rutas mínimas en la aplicación, empleando la misma función heurística, para calcular la ruta de mínimo recorrido entre Arad y Bucarest 26
  • 41. Desarrollo de un Sistema Inteligente GPS-Raster para una PDA En Arad, la función de evaluación, calculada como suma entre el peso de la ruta acumulada hasta este momento y el valor de la función de evaluación en ese punto tiene el valor de: Arad: 366 = 366+0 Tras la expansión de Arad, los valores de las funciones de evaluación pasan de cada uno de sus vecinos hacia los que se expande son: Sibiu: 393 = 140+253 Timisoara: 447 = 118+329 Zerind: 449 = 75+374 27
  • 42. Desarrollo de un Sistema Inteligente GPS-Raster para una PDA De las diferentes rutas disponibles, avanzar hacia Sibiu es la que tiene el mínimo valor en su función de evaluación. Por tanto, se expande la ruta en esa dirección. 28
  • 43. Desarrollo de un Sistema Inteligente GPS-Raster para una PDA Ahora se expande el nodo de Sibiu, y se calculan las funciones de evaluación respectivas. Las rutas que se pueden expandir desde Sibiu no solo se comparan entre sí, sino también con las que antes se calcularon desde Arad Timisoara: 447 = 118+329 Zerind: 449 = 75+374 Arad: 646 = 280+366 Fagaras: 415 = 239+176 Oradea: 671 = 291+380 Rimnicu Vilcea: 413 = 220+193 Esta vez, la dirección de expansión seleccionada es Rimnicu Vilcea 29
  • 44. Desarrollo de un Sistema Inteligente GPS-Raster para una PDA Expandiendo Rimnicu Vilcea: Timisoara: 447 = 118+329 Zerind: 449 = 75+374 Arad: 646 = 280+366 Fagaras: 415 = 239+176 Oradea: 671 = 291+380 Craiova: 526 = 366+160 Pitesti: 417=317+100 Sibiu: 553 = 300+253 En este caso, la ruta no se expande en ninguna de las direcciones que han surgido de expandir Rimnicu Vilcea, sino que el algoritmo da “un paso atrás” y selecciona la ruta que llevaba a Fagaras para su expansión 30
  • 45. Desarrollo de un Sistema Inteligente GPS-Raster para una PDA Expandiendo Fagaras: Timisoara: 447 = 118+329 Zerind: 449 = 75+374 Arad: 646 = 280+366 Oradea: 671 = 291+380 Craiova: 526 = 366+160 Pitesti: 417=317+100 Sibiu: 553 = 300+253 Bucarest: 450 = 450+0 Sibiu: 591 = 338+253 En esta tanda de expansión de rutas, se producen dos eventos destacables. Primero, Sibiu aparece otra vez. Esta segunda aparición se debe a en este momento se han descubierto dos rutas distintas, y ambas llevan a Sibiu desde Arad, siguiendo diferentes caminos de diferentes longitudes. El segundo evento es que Bucarest, el destino, aparece entre los posibles destinos de la expansión. No obstante, el valor que lleva hasta ella no es el mínimo, y por tanto no se expande la ruta en esa dirección. En su lugar la ruta se expande hacia Pitesti. Existe la posibilidad de que a través de Pitesti se encuentre un camino hacia Bucarest que sea más corto. 31
  • 46. Desarrollo de un Sistema Inteligente GPS-Raster para una PDA Tras la expansión de Pitesti: Timisoara: 447 = 118+329 Zerind: 449 = 75+374 Arad: 646 = 280+366 Fagaras: 415 = 239+176 Oradea: 671 = 291+380 Craiova: 526 = 366+160 Sibiu: 553 = 300+253 Bucarest: 450 = 450+0 Sibiu: 591 = 338+253 Bucarest: 418 = 418+0 Craiova: 615 = 455+160 Rimnicu Vilcea: 607 = 414+193 32
  • 47. Desarrollo de un Sistema Inteligente GPS-Raster para una PDA Nuevamente aparece una ruta hacia Bucarest entre las posibles. Su función de evaluación es en efecto menor que la que se había calculado antes, de hecho es la menor de todas las que se habían calculado. Eso significa que la ruta se expande en esa dirección y que se ha llegado al destino. Por tanto, el algoritmo se detiene y la ruta mínima queda como: 33
  • 48. Desarrollo de un Sistema Inteligente GPS-Raster para una PDA 4.5. Tecnologías 4.5.1. PDA (Personal Digital Assistant) Las PDA (Personal Digital Assistant) han evolucionado desde su origen como simples organizadores electrónicos a dispositivos extremadamente completos, que pueden perfectamente describirse como ordenadores de bolsillo. Actualmente, el rango de funciones que es habitual encontrar en una PDA engloba una agenda, organizador, calculadora, acceso a Internet mediante wireless, sincronización con una base de datos, grabación de sonido, y envió de mensajes a móviles. Es así mismo cada vez más frecuente la inclusión de dispositivos receptores GPS, lo cual les ha otorgado todo un nuevo rango de funcionalidades, incluyendo localización global, navegación GPS y uso de sistemas de autorouting. Como ya se ha mencionado, el propósito del proyecto desarrollar una aplicación que sea capaz de funcionar sobre una plataforma PDA típica con capacidades GPS. Entre las diferentes arquitecturas de PDA existentes en el mercado se ha seleccionado para este desarrollo la plataforma de Microsoft Pocket PC. Esto es debido a que es posiblemente la plataforma PDA actualmente más extendida, gracias especialmente al uso de Windows Mobile como su sistema operativo. Windows Mobile fue desarrollado por Microsoft a partir de Windows CE, el sistema operativo Windows para microordenadores y sistemas integrados. Windows CE no es una versión recortada del Windows de 34
  • 49. Desarrollo de un Sistema Inteligente GPS-Raster para una PDA escritorio sino que emplea un kernel propio. El emplear Windows Mobile provee al Pocket PC de múltiples funciones de interacción con los sistemas Windows de escritorio y con otras herramientas de Microsoft como Outlook y el paquete Office. Entre las diferentes versiones de Pocket PC se ha empleado para el desarrollo de la aplicación Pocket PC 2002, aunque esto es únicamente a su compatibilidad con las herramientas de desarrollo que se han utilizado en el proyecto. La aplicación a desarrollar es compatible con cualquier versión de la plataforma Pocket PC, y puede ser portada a cualquiera de las otras versiones de la plataforma de modo inmediato. 35
  • 50. Desarrollo de un Sistema Inteligente GPS-Raster para una PDA 4.5.2. SVG (Scalable Vector Graphics) Para poder ejecutar un análisis y tratamiento de imagen al nivel que el sistema desarrollado requiere para la realización de sus funciones, es necesario estar trabajando con una representación vectorial de la imagen analizada. Las imágenes representadas en un formato digital pueden estar en dos formatos básicos, de los cuales derivan todos los demás formatos existentes. Los formatos ráster, guardan la imagen como una superficie de píxeles, almacenando el color y la posición de cada píxel de la imagen. Esto produce una fidelidad perfecta con la imagen original, pero resulta en archivos de gran tamaño. Además, debido a la falta de “inteligencia” del archivo, es imposible extraer datos de los que representa por programas de análisis de imagen sin emplear un gran número de cálculos. El formato vectorial, por otra parte, guarda datos que describen lo que la imagen representa. Es decir, almacena las coordenadas, ángulos, dimensiones y colores de los elementos representados en la imagen. Esto puede lleva a una perdida de características particularmente complejas de la imagen, pero resulta mucho más manejable desde un punto de vista computacional. Así, los gráficos vectoriales se emplean para convertir diseños gráficos a programas de CAD, o reconocimiento de texto en imágenes. El sistema que se está desarrollando 36
  • 51. Desarrollo de un Sistema Inteligente GPS-Raster para una PDA también se ve beneficiado por las posibilidades de análisis directo de la imagen que proporciona el formato vectorial. De entre el gran rango de formatos vectoriales existentes se ha seleccionado para el desarrollo del proyecto el estándar SVG (Scalable Vector Graphics). SVG es un estándar desarrollado por el World Wide Web Consortium, responsable de algunos de los más importantes estándares del mundo de la informática, incluyendo HTML y XML. El principal motivo de la selección de SVG como formato de imagen vectorial del proyecto es el hecho de que, internamente, es en realidad un documento XML con un cierto formato. Esto permite al sistema acceder directamente a los datos de la imagen a través de simples funciones de interacción con XML. En un principio pensaba emplearse la implementación SVGBasic, una versión del formato especialmente pensada para su uso en sistemas empotrados y dispositivos portables, como es el caso de la plataforma PDA. No obstante, debido a la división del sistema desarrollado en dos módulos, los archivos SVG nunca llegan ser empleados sobre la plataforma PDA. 37
  • 52. Desarrollo de un Sistema Inteligente GPS-Raster para una PDA 4.5.3. AutoTrace Para poder trabajar sobre una imagen de un mapa de carreteras es que esa imagen se trate de imagen vectorial, y en formato SVG, que es el formato que el sistema esta desarrollado para reconocer. Pero el propósito del proyecto es permitir al usuario emplear como mapa de carreteras base cualquier imagen, no sólo una que ya se encuentre en el formato adecuado, lo cual no ocurrirá frecuentemente. De hecho, es lógico esperar que el usuario dispondrá de la imagen del mapa en un formato ráster. Es por ello necesario convertir la imagen del mapa de carreteras que se está analizando al formato empleado por el sistema antes de empezar el propio análisis. Para ello es necesario un elemento, comúnmente denominado como motor de vectorización, que realice esta conversión. Se ha considerado que el desarrollo de un motor de vectorización propio queda fuera del alcance del proyecto, de hecho un desarrollo de este calibre podría ser considerado en sí mismo como un proyecto de fin de carrera entero. Por ello, se ha optado por adoptar en el proyecto un motor de vectorización ya desarrollado. Para esta tarea se ha seleccionado el proyecto AutoTrace. AutoTrace es un el resultado de un proyecto desarrollado con el propósito de crear un motor de vectorización libremente disponible con capacidades similares a las de aplicaciones comerciales como CorelTrace y Adobe Streamline. De hecho, es ya superior en múltiples aspectos. Autotrace 38
  • 53. Desarrollo de un Sistema Inteligente GPS-Raster para una PDA es además, gratuito, tiene código abierto y es multiplataforma. Se distribuye bajo la licencia GNU GPL. Autotrace fue seleccionado al ser un programa gratuito, con un funcionamiento lo suficientemente eficaz y eficiente para los requisitos del proyecto y que tenía soporte para la generación de ficheros SVG como salida directa. 39
  • 54. Desarrollo de un Sistema Inteligente GPS-Raster para una PDA 4.5.4. BMP Windows Bitmap es sin duda el formato de imagen ráster más popular y simple que existe. Su nombre no debe llevar a la confusión de que este formato es empleado únicamente sobre sistemas Windows. Es por esto por lo que se ha decido unificar los formatos de entrada del programa como BMP, siendo esta la entrada que se le proporciona al Módulo Enrutador como archivo a analizar y la que se pasa al motor de vectorización AutoTrace, agilizando así el análisis del mapa sin necesidad de conversiones de tipo previas a un formato interno único. No cabe duda de que el usuario va a poder convertir a este formato cualquier mapa que pueda poseer en cualquier otro formato de imagen, pues básicamente todos los programas de tratamiento de imagen, incluyendo los gratuitos como Gimp y Paint, que se encuentra en todo ordenador con un sistema operativo Windows, permiten esta simple conversión. Además, BMP es el principal formato producido por los equipos de escaneo de imágenes, método que se espera sea uno de los principales para la generación de imágenes de mapa que vayan a ser empleadas por el sistema. 40
  • 55. Desarrollo de un Sistema Inteligente GPS-Raster para una PDA 4.5.5. XML (Extensible Markup Language) XML (Extensible Markup Language) es uno de los más importantes estándares del mundo informático. Fue desarrollado por el World Wide Web Consortium, al igual que el formato de imagen vectorial que fue seleccionado para ser empleado por el proyecto, SVG. El propósito con el cual fue desarrollado el XML era el ser un lenguaje de etiquetas generalista que se empleara para desarrollar lenguajes de etiquetas especializados. Seguir este estándar facilitaría la interacción entre programas originalmente incompatibles, y el compartimiento de información, especialmente a través de Internet. Siguiendo esta filosofía, el sistema desarrollado hace un uso extensivo de XML, recurriendo a él cada vez que tiene que manejar o escribir datos a o desde fuentes externas. Debido a que SVG es internamente un documento XML como ya se ha descrito, toda la interacción de la aplicación con la imagen una vez vectorizada se hace a través de XML. También se ha empleado XML para codificar los datos del Grafo de Rutas en el documento que el Módulo Vectorizador prepara para transmitir al Módulo Enrutador. Este último también codifica los datos relativos al posicionamiento del mapa una vez este ha sido calculado por parte del Módulo Enrutador, almacenando los resultados en el mismo Documento del Grafo de Rutas. Por último, todos los datos relativos a la configuración de la aplicación y a las opciones seleccionadas por el usuario que deban 41
  • 56. Desarrollo de un Sistema Inteligente GPS-Raster para una PDA permanecer cuando el sistema cuando la aplicación no esta funcionando se guardan en un archivo de configuración que también esta codificado en XML. 42
  • 57. Desarrollo de un Sistema Inteligente GPS-Raster para una PDA 4.5.6. Microsoft Visual Studio .NET La plataforma de desarrollo central para la programación del proyecto que se ha seleccionado es Microsoft Visual Studio .NET 2003. Se ha decidido emplear este entorno en particular debido a que fue utilizado para la realización de diversas prácticas durante la carrera. Aprender a utilizar un nuevo entorno de programación hubiera robado tiempo al desarrollo principal del proyecto y hubiese sido considerablemente costoso puesto que el entorno .NET 2003 ya se poseía antes del inicio del desarrollo de proyecto. Por último, el propio .NET proporciona un entorno de desarrollo para microordenadores y para la plataforma Pocket PC 2002 y el sistema operativo Windows CE en particular. Desde un punto de vista de la programación del sistema, el proyecto no requiere de ningún requisito especial que fuerce el empleo de un entorno alternativo. Por estos mismos motivos es por los que tampoco se ha empleado la recientemente publicada última versión del entorno, Microsoft Visual Studio 2005. 43
  • 58. Desarrollo de un Sistema Inteligente GPS-Raster para una PDA 4.5.7. C# C# es un lenguaje orientado a objetos desarrollado por Microsoft a partir de C++ como parte de su iniciativa .NET. Adopta conceptos de otros lenguajes, principalmente Delphi, Visual Basic y Java, buscando principalmente crear un lenguaje cuyo funcionamiento y requisitos fuesen simples. C# se ha seleccionado como lenguaje de programación para el proyecto, al igual que la plataforma de desarrollo .NET, por el hecho de la practica que con él se ha obtenido durante la carrera, tanto directamente como de forma sinérgica a través del trabajo con Java, lenguaje con el que comparte un elevado número de similitudes. C# es así mismo posiblemente el lenguaje más fiable, directo y estable de los presentados por el entorno .NET. 44
  • 59. Desarrollo de un Sistema Inteligente GPS-Raster para una PDA Capitulo 5 - Desarrollo del Sistema GPS 45
  • 60. Desarrollo de un Sistema Inteligente GPS-Raster para una PDA 5.1. Decisiones de Diseño Aunque el planteamiento inicial de la aplicación era que funcionara enteramente sobre una plataforma Pocket PC, se ha decidido realizar el proceso de tratamiento de imagen del mapa de forma independiente sobre plataforma PC. Esto es principalmente debido a que el proceso de vectorización es muy pesado y tiene elevados requisitos de memoria y una gran cantidad de cálculos matemáticos considerablemente complejos con lo que ejecutarlo sobre una plataforma tan limitada como un Pocket PC resulta del todo imposible. Por este hecho precisamente es por lo que además ha sido imposible obtener un motor de vectorización preparado para su funcionamiento sobre Pocket PC. Puesto que este proceso idealmente solo necesitará realizarse una vez por cada mapa que vaya a emplear el usuario y no requiere de interacción con el dispositivo GPS del Pocket PC, se ha decidido desarrollar un módulo para plataforma PC que realizará el proceso de tratamiento de imagen y generación del grafo y generará un documento XML del que el módulo enrutador extraerá la información necesaria para trabajar. Puesto que el proceso de localización del mapa en unas coordenadas geográficas determinadas requieren del uso del dispositivo GPS, este proceso en particular sea realizado por el Pocket PC, y sus datos serán insertados en el documento XML. 46
  • 61. Desarrollo de un Sistema Inteligente GPS-Raster para una PDA De este modo, la división en dos módulos de funcionamiento queda como sigue. El módulo desarrollado para PC, denominado Módulo Vectorizador engloba todas las tareas relacionadas con el tratamiento de la imagen. Eso significa que será el único interactuará con el motor de vectorización AutoTrace y con la versión vectorial del mapa, el archivo SVG. El Módulo Vectorizador está enteramente orientado al desarrollo de un grafo de rutas correcto y fiable que represente el mapa de carreteras, y esta diseñado para comprimir el resultado de todo su trabajo en un único documento XML que es leído por el otro módulo. El segundo módulo, desarrollado para una plataforma Pocket PC se denomina Módulo Enrutador. La única relación que tiene el Módulo Vectorizador es el documento XML del que lee los datos relativos al Grafo de Rutas. De este, el módulo debe extraer de ese archivo, y de la imagen original, que también se introduce para que el usuario indique los puntos entre los que requiere que se calculen las rutas mínimas, todos los datos necesarios para su completo y correcto funcionamiento. El principal propósito del Módulo Enrutador es el cálculo de las rutas que el usuario requiera. El Módulo Enrutador, al estar incorporado en la PDA es así mismo el que interactúa con el dispositivo GPS. Por ello, también es capaz de calcular la localización actual del usuario y trazar rutas de y hacia su punto actual. Por eso mismo, también se ha decidido incorporar la función de posicionamiento en este módulo. El módulo es capaz, si el usuario lo desea, de guardar los datos relativos a la localización en el mismo documento que el propio grafo de rutas para su 47
  • 62. Desarrollo de un Sistema Inteligente GPS-Raster para una PDA posterior utilización. Esta es la única modificación que este módulo puede hacer sobre el documento. 48
  • 63. Desarrollo de un Sistema Inteligente GPS-Raster para una PDA 5.2. Diseño de la Aplicación Desde el punto de vista puramente de la arquitectura, el proyecto es considerablemente simple. El peso del desarrollo recae sobre el desarrollo e implantación de los algoritmos empleados por el sistema y sobre el uso de diferentes técnicas de tratamiento de imágenes. Como resultado, la mayor parte de los diagramas de diseño no aportan una cantidad de información significativa sobre el proyecto. Se incluyen a continuación los diagramas que se han considerado como significativos en la aplicación. Los diagramas incluidos contienen una representación externa de los dos módulos de los que se compone la aplicación y de la relación existente entre ellos, y una representación interna de su funcionamiento en forma de Diagramas de Flujo de Datos. Se incluye así mismo el Diagrama de Secuencia del proceso de análisis de la imagen y generación del Grafo de Rutas, pues éste es el proceso de mayor volumen y más complejo de la aplicación. 49
  • 64. Desarrollo de un Sistema Inteligente GPS-Raster para una PDA 5.2.1. División en módulos 50 PCMódulo Vectorizador PDAMódulo Enrutador Documento XML
  • 65. Desarrollo de un Sistema Inteligente GPS-Raster para una PDA 5.2.2. Diagrama de Flujo de Datos del Módulo Vectorizador 51
  • 66. Desarrollo de un Sistema Inteligente GPS-Raster para una PDA 5.2.3. Diagrama de Flujo de Datos del Módulo Enrutador 52
  • 67. Desarrollo de un Sistema Inteligente GPS-Raster para una PDA 5.2.4. Diagrama de Secuencia del Proceso de Vectorización 53
  • 68. Desarrollo de un Sistema Inteligente GPS-Raster para una PDA 54
  • 69. Desarrollo de un Sistema Inteligente GPS-Raster para una PDA 5.3. Grafo de Rutas Un grafo es una estructura abstracta central de la teoría de grafos que representa una serie de relaciones entre elementos, y que se emplea en multitud de algoritmos matemáticos. Suele representarse como un conjunto de puntos denominados vértices o nodos conectados entre sí mediante una serie de líneas denominadas aristas o arcos. Generalmente, se suele definir matemáticamente como la combinación de dos conjuntos: N es un conjunto de vértices o nodos A N x N es un conjunto de pares de nodos llamados arcos o aristas Dentro de esta definición, se define a un grafo como no dirigido si los arcos son pares no dirigidos y grafo dirigido o dígrafo si lo son. El Grafo de Rutas es el principal elemento del algoritmo de cálculo de rutas mínimas. Se trata de un grafo no dirigido que representa una abstracción del mapa de carreteras, reduciendo todos sus datos a únicamente aquellos que resultan importantes en el proceso de cálculo de rutas. Está compuesto por una serie de nodos que representan puntos que el algoritmo de generación ha reconocido como significativos dentro del mapa de carreteras y por arcos que representan las vías de circulación que los conectan. Los nodos están ubicados sobre el plano del grafo, que coincide con el de la imagen del mapa en las mismas coordenadas que los puntos que representan. Así, cuando el usuario 55
  • 70. Desarrollo de un Sistema Inteligente GPS-Raster para una PDA quiere calcular el recorrido entre dos puntos, el algoritmo de trazado de rutas puede determinar el nodo cuyas coordenadas más se ajustan al del punto requerido por el usuario. Los arcos como ya se ha dicho, representan carreteras, pero como es natural en los arcos, son representados en el plano del grafo como líneas rectas, por lo que normalmente no se ajustarán a la carretera que representan, a menos que esa carretera sea también una línea recta. No obstante, tanto la carretera como el arco empezarán y terminarán en las mismas coordenadas. Desde un punto de vista computacional, los datos asociados a los nodos son sus coordenadas sobre el plano del grafo, y el conjunto de arcos que pasan por ellos. Así mismo, mediante funciones asociados a ellos, los nodos pueden identificar a sus nodos vecinos, de modo que se puede decir que estos también son parte de los datos asociados a un nodo. Los datos asociados a los arcos son su longitud y los nodos entre los cuales está trazado. La longitud es la misma que la de la carretera a la que representa, a pesar de que su trazado no coincida con ésta. En el caso de un arco que haya sido generado como parte del proceso de refinado o por parte del usuario mediante el editor de grafo, su longitud es la misma que la del propio arco, es decir, la del segmento que une los dos puntos sobre los que esta trazado. En el caso particular de dos arcos que hayan sido generados al dividir un arco en dos mediante la herramienta del editor de grafo para añadir nodos, la longitud de cada uno de los arcos resultantes es igual a un porcentaje 56
  • 71. Desarrollo de un Sistema Inteligente GPS-Raster para una PDA de la longitud total del arco del que provienen, de modo que la suma de sus longitudes sigue siendo la misma que la del arco original. Como ya se ha definido, el grafo de rutas es un grafo no dirigido. Esto significa que las rutas que se pueden trazar pueden recorrer los arcos en cualquier sentido, lo que a su vez implica que el algoritmo de trazado de rutas considera que todas las carreteras son de doble sentido. Esto no es un problema en el caso de carreteras fuera de vía de ciudad, pues ese suele ser el caso. Al tratar mapas metropolitanos no obstante, esta limitación del grafo provoca que sea poco útil para desplazamientos en coche. Un peatón, por otro lado, podría seguir usando el mapa para calcular las rutas que requiera sin problemas. Se considero en un momento del desarrollo del proyecto el empleo de un grafo dirigido para resolver este problema. No obstante, esta posibilidad se descartó posteriormente por varios motivos. El principal de estos motivos es el hecho de que el único modo para indicar a cada arco en que sentido discurría la calle que representaba era haciendo que el propio usuario lo indicase. Además de que insertar el sentido correspondiente a todos los arcos del grafo es una tarea extremadamente pesada y lenta a la que definitivamente no se quiere someter al usuario, si éste dispone de suficiente conocimiento sobre la zona que esta mapeando como para poder indicar toda esta información, no se puede decir que realmente necesite la herramienta. 57
  • 72. Desarrollo de un Sistema Inteligente GPS-Raster para una PDA 5. 4. Módulo Vectorizador El Módulo Vectorización es el primer módulo de los dos en los que se ha dividido el proyecto. Realizando su funcionamiento normal, tomara un mapa en un formato BMP, lo someterá a un proceso de análisis que resultará en la creación de un Grafo de Rutas que contendrá toda la información representativa para el cálculo de rutas sobre el mapa, refinará este grafo tanto por si mismo mediante una serie de algoritmos automatizados, como mediante acción directa y voluntaria del usuario, y codificará todo esta información en un documento XML con un cierto formato propio que será leído por el otro módulo para la realización de sus propias funciones. El Módulo Vectorizador ha sido desarrollado para su uso sobre una plataforma PC. Esto es debido a varios motivos que o bien justifican que las tareas que va a realizar el módulo funcionarán mejor si se desarrolla sobre PC o bien directamente impiden que se desarrolle para una plataforma PDA con éxito. Primero, la realización de las tareas que se han asignado al Módulo de Vectorización requiere interactuar con un motor de vectorización, un tipo de aplicación que no existe en un formato portable. El desarrollo de un motor de vectorización propio para su funcionamiento en combinación con el sistema es una actividad que se ha considerado se encuentra fuera del alcance del proyecto. Además, existen motivos lógicos por los que no existe una versión para PDA de ningún motor de vectorización. La vectorización es un proceso muy pesado que requiere de un número elevado de operaciones matemáticas 58
  • 73. Desarrollo de un Sistema Inteligente GPS-Raster para una PDA considerablemente complejas, resultando del todo inviable sobre una plataforma tan limitada como una PDA. Si bien este es un motivo por el cual no implantar la vectorización sobre la PDA, existen otros motivos por los cuales implantar el módulo en una plataforma PC. Es esperable que la generación del Grafo de Rutas de un determinado mapa se realice únicamente una vez por cada mapa con el que se quiera trabajar. Así mismo, es esperable que la principal vía a través de la cual van a obtenerse los mapas que van a ser empleados para el cálculo de rutas mínimas sea el propio PC del usuario, de modo que ya puede directamente, al tiempo que obtiene los diferentes mapas que desea emplear, prepararlos para su uso por parte del sistema de cálculo de rutas. Por último, la vectorización en sí no requiere de ninguna interacción con el dispositivo GPS. Por todos estos motivos parece evidente que este proceso debe ser realizado por parte del PC que luego pasará sus resultados a la PDA. 59
  • 74. Desarrollo de un Sistema Inteligente GPS-Raster para una PDA 5.4.1. Tratamiento de la imagen El principal propósito del Módulo Vectorizador es analizar la imagen del mapa para localizar las carreteras, calcular sus parámetros y generar el grafo de rutas a emplear por parte del dispositivo GPS. 5.4.1.1. Identificación de carreteras Se ha considerado que el método más eficaz para identificar las carreteras, que en cuestiones de aspecto son extremadamente similares a otros elementos geográficos que podían fácilmente inducir a confusión por parte del algoritmo de conversión como ríos, líneas de coordenadas o texto de gran tamaño era mediante la intervención por parte del usuario. Así, antes de ejecutar la conversión, el usuario define que elementos son vías de circulación en el mapa. Para identificarlas, se ha considerado que debido al modo en el que se representan habitualmente las vías de circulación en los mapas de carreteras, el mejor modo era por la identificación del color que se emplea para dibujar cada uno de los tipos de vía. Así, lo único que tiene que hacer el usuario señalar mediante un simple clic sobre las propias vías de circulación los colores que se corresponden con los diferentes tipos de vías de circulación presentes en el mapa y que el usuario desea que sean incluidas en el cálculo del Grafo de Rutas. 60
  • 75. Desarrollo de un Sistema Inteligente GPS-Raster para una PDA 5.4.1.2. Tratamiento en fases de la imagen El proceso de tratamiento de imagen empleado para generar el grafo a partir del mapa de carreteras proporcionado ha sido dividido en varias fases para así simplificar la realización de pruebas sobre el código, la incorporación de modificaciones y la expansión del algoritmo. El resultado de cada una de estas fases es la entrada de la siguiente. Estas fases, están conceptualmente diferenciadas, debido a que realizan tareas claramente distintas ya sea sobre los datos de imagen original, la versión vectorizada de la imagen o el propio Grafo de Rutas, pero son de todos modos continuas e inseparables. Cuando se da al Módulo Vectorizador la orden de generación del Grafo de Rutas, se ejecutan todas las fases de forma continua. Debido a esto, la ejecución de cada una de las fases por separado resulta transparente a usuario. Todas las fases trabajan bien sobre archivos temporales o bien sobre variables internas del programa. De este modo, la imagen de mapa original nunca se ve alterada. 61
  • 76. Desarrollo de un Sistema Inteligente GPS-Raster para una PDA 5.4.1.2.1 Pretratado Inicialmente la imagen recibe un proceso de pretratado orientado a simplificar su manipulación por parte del motor de vectorización. Inicialmente se reduce la imagen a una representación en blanco y negro en el que únicamente se ven representados los colores que han sido definidos por el usuario como pertenecientes a vías de circulación. Puesto que, debido normalmente a la falta de calidad de la imagen, es frecuente que una forma cuyo color en un primer momento era constante se haya visto convertido en una amalgama de diferentes tonalidades con pequeñas variaciones entre sí, se consideran como el mismo color aquellos que se encuentren dentro de una cierta similitud con un color definido como vía. Esta similitud se determina como la diferencia entre los valores de los diferentes bytes de colores, y la similitud mínima puede ser definida por el usuario de a cuerdo a sus necesidades y la calidad de la imagen. En sí, el sistema utiliza un sistema de colores de 32 bits, el proporcionado por el propio objeto Color de las librerías de C#, aunque el byte de Alpha no se emplea en absoluto, con la definición de color que realmente se está empleando durante el pretratado es de 24 bits. A la imagen en blanco y negro resultante del pretratado se le aplican a continuación un filtro de sal y pimienta para eliminar el ruido que el tratamiento pueda haber introducido y un filtro de bordes que realza las vías. 62
  • 77. Desarrollo de un Sistema Inteligente GPS-Raster para una PDA 5.4.1.2.2. Vectorización Mediante Autotrace Para realizar el proceso de convertir la imagen de su formato ráster BMP al formato vectorial SVG, sobre el que se podrá trabajar de forma directa, se emplea el motor de vectorización AutoTrace. Esto no significa, no obstante, que no se tenga ningún control sobre el modo en que se realiza la conversión debido a que el proceso se ejecute de forma externa al código de la aplicación. Autotrace permite varios parámetros de configuración que determinarán el modo en que se ejecutará la vectorización. Estos parámetros se han ajustado a los valores que se ha determinado que producirán los mejores resultados cuando sean aplicados sobre un mapa de carreteras habitual. No obstante, pueden ser modificados a voluntad por el usuario. La aplicación recuerda los valores introducidos y también es capaz de restaurar los valores predeterminados. Los parámetros de control del motor de vectorización AutoTrace están recogidos en la siguiente tabla. Es importante notar que los valores que se define aquí como predeterminados son los predeterminados que emplea el Módulo Vectorizador, calculados tras probar el ajuste de múltiples de mapas de carreteras, y no los valores predeterminados de Autotrace, que tienen un propósito menos especializado para la conversión de cualquier tipo de imagen. En la tabla también se define como los maneja el programa, es decir, si su valor es directamente introducido por código o sí el usuario puede variarlo en tiempo de ejecución. 63
  • 78. Desarrollo de un Sistema Inteligente GPS-Raster para una PDA Nombre Tratamiento Valor Descripción Background Color Constante FFFFFF (Blanco) Define un color de la imagen como fondo, lo que implica que será ignorado durante la vectorización. Puesto que después del pretratado es una representación de las vías en negro sobre un fondo blanco cuyas características no son importantes para el sistema, se define ese color como fondo. Centerline Constante True Normalmente, AutoTrace almacena las características del mapa como una serie de formas definidas por una línea de borde y el color que llena el área que delimita. Al emplear esta opción, Autotrace representará los elementos de la imagen como líneas de un determinado grosor y un determinado color. Este modo es mucho más manejable por parte del sistema puesto que el propósito de la digitalización es precisamente la extracción de datos relativos a líneas. Color Count Constante 1 64
  • 79. Desarrollo de un Sistema Inteligente GPS-Raster para una PDA Si se emplea este parámetro en la vectorización, AutoTrace reducirá el número colores de la imagen al tratarla, simplificando así la salida que produce y evitando la aparición de colores no deseados, como tonos de gris, en la imagen al aplicar filtros. Puesto que el negro es el único color de la imagen aparte del blanco, que como color de fondo es ignorado, la reducción de se limita a un solo color. Corner Threshold Variable 150 Si en un determinado píxel, sus predecesores y sus sucesores forman un ángulo menor que éste, entonces se considera como una esquina, en otro caso se considera una curva. No obstante, si se encuentra dentro del radio de píxeles de Corner Surround de otra esquina, entonces no se considera como esquina propia sino como parte de otra esquina. Corner Surround Variable 4 Determina cuantos píxeles serán analizados en torno a uno punto determinado para juzgar si ese punto es una esquina. Debido a esto, también determina como de “grandes” son las esquinas. Corner Always Threshold Variable 90 Si el ángulo presente en un píxel con potencial de ser esquina es menor que el valor de este parámetro, entonces en ese píxel hay una esquina, a pesar de que pueda encontrarse dentro del radio de Corner Surround de otra esquina. Despeckle Level Variable 8 65
  • 80. Desarrollo de un Sistema Inteligente GPS-Raster para una PDA Autotrace tiene la capacidad de aplicar un filtro de realzado de bordes a las imágenes que trata. Ésta es una funcionalidad que resulta particularmente útil para conseguir un reconocimiento correcto de las vías de circulación. Este parámetro regula el número de iteraciones que se aplicaran por parte del filtro Despeckle Tightness Variable 3 Este es otro parámetro de control empleado por el filtro de bordes. Su valor se corresponde con el grosor del filtro, lo que modifica de que modo los elementos cuya estructura de bordes tiene una menor o mayor complejidad se ven más o menos realzados. Error Threshold Variable 2 Después de haber trazado las curvas representando las formas del grafico, AutoTrace revisa la calidad de su aproximación. Si una curva está más desviada respecto a la realidad que este valor, entonces es subdividida en dos curvas que pueden representar mejor la realidad. Filter Iterations Variable 4 Esto define el número de veces que una línea es suavizada antes de que AutoTrace intente ajustarle una curva. Line Threshold Variable 1 Cuando AutoTrace recorre las curvas que el proceso de ajuste a generado si la diferencia de una de ellas con la línea recta definida por sus extremos es menor del valor de este parámetro, entonces se trata de una recta. Line Reversion Threshold Variable 0,01 66
  • 81. Desarrollo de un Sistema Inteligente GPS-Raster para una PDA Si una línea está más cerca de la recta de lo que define este parámetro, siendo medido respecto al cuadrado de la longitud de la posible curva, entonces la línea se mantendrá como una recta, aún en el caso de que sea parte de un spline de mayor tamaño formado por curvas. Input Format Constante BMP Define a cuál entre los distintos formatos de entrada que AutoTrace admite pertenece la imagen. Puesto que se ha unificado la entrada a la aplicación como BMP, éste es el valor que toma el parámetro Output Format Constante SVG Indica en cuál de los formatos de salida compatibles con AutoTrace se quiere obtener la imagen vectorial. Como ya se ha definido, se trabaja con el formato SVG, por tanto es ése el valor que se le da al parámetro Tangent Surround Variable 3 Indica el radio en torno a un punto que se tendrá en cuenta para calcular la tangente en ese punto. Remove Adjacent Corners Constante True Al emplear esta opción, las esquinas que dispuestas una después de otra se agruparán en una sola esquina. Este valor es necesario para compensar por el efecto causado por el elevado Corner Always Threshold. 5.4.1.2.3. Digitalización El archivo temporal SVG generado por el programa AutoTrace es internamente un fichero XML. Gracias a esto es posible acceder directamente su contenido para extraer los datos que definen las vías de circulación representadas en el mapa. En el proceso de digitalización se recorre el 67
  • 82. Desarrollo de un Sistema Inteligente GPS-Raster para una PDA documento interno XML extrayendo los datos que describen la imagen de mapa. Estos datos están expresados en varios tipos de estructuras. Puntos significativos que están representados como un par de coordenadas, segmentos, definidos por los puntos que son sus extremos, y curvas bézier cúbicas que requieren de cuatro puntos para ser representadas. En esta fase estos elementos se introducen en el programa en ejecución, convirtiéndolos en variables en memoria para así poder manipularlos en las fases posteriores. En esta fase además se calcula, a partir de los datos de los segmentos y curvas, la longitud de las diferentes vías de circulación en píxeles, longitud que luego será introducida como un dato más del Grafo de Rutas para así poder emplearla para el cálculo de rutas mínimas. El resultado de esta fase es una representación del mapa que internamente es una colección de líneas en que se puede descomponer la imagen analizada y que se corresponden con las vías de circulación del mapa. 68
  • 83. Desarrollo de un Sistema Inteligente GPS-Raster para una PDA 5.4.1.2.4. Abstracción del Mapa a Grafo A partir de los datos que obtenidos al analizar las curvas y rectas calculadas en la anterior fase, se generan los arcos del grafo de rutas. Estos arcos son una abstracción de las líneas del mapa, extrayendo de ellas los datos que son realmente requeridos para la realización de las tareas del grafo. Los datos que quedan almacenados en los arcos del grafo de rutas se limitan entonces a las coordenadas de comienzo y fin de la línea y su longitud real. Tomando como único dato las coordenadas de los extremos de estos arcos se crean los nodos que suponen el otro componente de grafo. 5.4.1.2.5. Refinado El grafo de rutas en bruto obtenido tras la abstracción del mapa de carreteras no es directamente utilizable. Las imperfecciones del mapa, generalmente causadas por la presencia de texto y la falta de calidad en la imagen original, por la conversión al formato vectorial y las introducidas durante la ejecución de las fases anteriores provocan la aparición de fallos en el grafo de rutas. Para tratar estos problemas, se realiza sobre él una última fase de refinado. Este refinado consiste fundamentalmente en la realización de tres tareas: 69
  • 84. Desarrollo de un Sistema Inteligente GPS-Raster para una PDA Aproximación de nodos La presencia de texto sobre las vías de circulación representadas en el mapa y la presencia de manchas de color en la vía que caigan fuera de la aproximación realizada durante la fase de pretratado habitualmente causan la aparición en el grafo de cúmulos de nodos separados una distancia muy reducida lo que los hace redundantes. Además frecuentemente el proceso no habrá reconocido la existencia de vías que unan esos puntos y con ello no habrán aparecido arcos representando las diferentes conexiones que debería haber en el cúmulo. Otra posibilidad es que una línea que no estuviera definida como una vía de circulación interrumpiera una que si lo fuera, lo que resulta en un repentino corte en esa vía, dando lugar a dos nodos que casi están unos encima del otro pero sobre los que no se reconoce que haya una vía que los una. Una última posibilidad es que en un punto de interconexión entre varias vías no sea correctamente reconocido y la interconexión no aparezca aunque los nodos entre los que debería aparecer, sí. Todos estos problemas suponen severos errores en el Grafo de Rutas que a su vez causan fallos en el cálculo de las rutas mínimas. Este proceso resuelve estos problemas y es por ello el principal proceso de la fase de refinado. Lo que se hace es agrupar a los nodos que se encuentran separados entre sí menos de una determinada distancia, y con ello sea factible la posibilidad de considerarlos como realmente el mismo. 70
  • 85. Desarrollo de un Sistema Inteligente GPS-Raster para una PDA Un problema que surgió durante el desarrollo de este algoritmo de aproximación fue que el programa reconocía como un único cúmulo de nodos una superficie de demasiado tamaño, debido a que todos los nodos de ésta se encontraban dentro de la distancia de aproximación de otro de los nodos del cúmulo, aunque se encontrase a una gran distancia de todos los demás. Para evitar que los cúmulos a agrupar crezcan demasiado, se controla que los nuevos nodos que se añaden al cúmulo estén dentro de una cierta distancia al centro de éste. El cálculo del centro del grupo de nodos es un elemento importante del proceso, pues también se emplea como la ubicación del nuevo nodo que se crea como agrupación del cúmulo. La opción ideal sería el centro geométrico del cúmulo, pero éste calculo ralentizaría enormemente el proceso, mientras que la media es mucho más sencilla pero se ve enormemente influenciada por las zonas más concentradas del cúmulo de nodos, desviando considerablemente el centro. La solución por la que se ha optado es calcular la media de tal modo que se ignoran los nodos que se encuentren a menos de tres píxeles del otro nodo que si esté siendo considerado para el cálculo. El cálculo de esta media ajustada es de hecho más rápido que la media normal y el centro calculado no se ve tan influenciado por los grupos condensados de nodos. 71
  • 86. Desarrollo de un Sistema Inteligente GPS-Raster para una PDA Conexión de nodos En este proceso se establecen arcos entre aquellos nodos que, después de haberse realizado la aproximación, se encuentran separados menos de una cierta distancia, y no se encuentren aún conectados. La longitud de estos nuevos arcos se calcula como la longitud lineal del arco. El propósito de eso es resolver los fallos de conexión hayan aparecido por los mismos motivos que en el proceso anterior, pero cuyos nodos no se encuentren tan cerca como para ser considerados el mismo. Es posible, en tiempo de ejecución alterar el orden en el que se ejecutan estos dos procesos. Con el orden normal simplemente se recorre nuevamente la lista de nodos conectando aquellos que sea pertinente. Esto produce un efecto secundario poco deseado. Al ser agrupados los cúmulos de nodos, particularmente en el caso de cúmulos grandes, puede ocurrir que dos nodos incorrectamente desconectados que antes de la agrupación se encontraban lo suficientemente próximos como para que un arco fuese trazado entre ellos, al pasar por el proceso de agrupación y desplazarse hacia el centro de sus respectivos cúmulos queden separados. Para evitar este problema existe un orden alternativo. En él, la interconexión de los nodos se hace dentro del mismo proceso que la aproximación, creándose los nuevos arcos antes de que los cúmulos se reúnan en nuevos nodos. Esto también tiene un problema, pues antes de que se complete la aproximación de nodos el arco es considerablemente caótico y ello 72
  • 87. Desarrollo de un Sistema Inteligente GPS-Raster para una PDA implica que frecuentemente se creen arcos que no se corresponden con conexiones reales. Además, al moverse los nodos de los extremos, la longitud inicialmente calculada dejara de ser precisa, aunque se puede esperar que sea por una franja muy pequeña. Es recomendable por ello no emplear este modo en mapas que tiendan a generar una gran cantidad de cúmulos en el grafo, lo que suele ocurrir con frecuencia en el caso de mapas de ciudad y menos en mapas de carretera. Para evitar comparaciones innecesarias y acelerar estos procesos, antes de que se realicen estos dos procesos los nodos de grafo se ordenan según su coordenada Y, y solamente se comparan con los vecinos cuya coordenada Y es mayor y se mantiene dentro de la distancia de control, que dependerá del proceso que se esté ejecutando. Si el nodo es admisible para comparación, antes de iniciar el proceso para incorporarlo al cúmulo de nodos correspondiente o trazar el un nuevo arco entre los nodos considerados, se comparan las dimensiones X para ver si su diferencia se encuentra dentro de la distancia establecida. Debido a este modo de hacer las cosas, no se están comparando los nodos que estén dentro del círculo de cierto radio centrado en el nodo estudiado, que sería lo normal, sino en un cuadrado de lado el doble de la distancia analizada que cubriría ese círculo y estaría centrado en el mismo nodo analizado. 73
  • 88. Desarrollo de un Sistema Inteligente GPS-Raster para una PDA Eliminación de datos redundantes La ejecución de las diferentes fases y especialmente de los dos procesos de refinado anteriores ha generado una considerable cantidad de datos redundantes o inútiles en el grafo. Estos datos pueden llevar a confusión durante el cálculo de rutas, aumentan innecesariamente la complejidad del grafo lo que hace el proceso menos eficiente y ocuparían un espacio adicional de sus datos ser codificados en el archivo XML que se crea para su uso por parte del Módulo Enrutador. Puesto que este grafo va a ser empleado sobre una plataforma considerablemente limitada, es importante eliminar todos los elementos innecesarios. Así pues, esta última fase recorre el grafo localizando y eliminando varios casos de elementos redundantes. Bucles: Es decir, arcos que comienzan y terminan en el mismo nodo. Debido al modo en que funciona A* no existe posibilidad de que se queden atrapado en el bucle a menos que la longitud del arco sea cero, lo cual es imposible por el modo en que se crea el grafo. Aún así, están introduciendo un elemento adicional en el cálculo que lo ralentiza de modo sensible. Arcos redundantes: Un arco resulta redundante cuando existe otro distinto que conecta los mismos dos nodos. Esto aparentemente no causa ningún tipo de problemas en el funcionamiento del algoritmo A*, pero cuando el algoritmo se vea en la situación de tener que escoger entre uno de los dos arcos para alcanzar a un determinado vecino, va a optar siempre por el más corto, que lo más probable es que sea el incorrecto. Esto es debido a que el 74
  • 89. Desarrollo de un Sistema Inteligente GPS-Raster para una PDA trayecto largo habrá sido extraído de los datos relativos a una curva bezier cuya longitud puede ser muy distinta de la que separe sus puntos, mientras que el corto posiblemente sea el resultado de la generación de un arco durante la segunda fase del refinado, cuya longitud es la separación entre sus extremos. En el caso de que ambas rutas sean naturales sus longitudes serán muy similares, y por ello no generarán tanto error independientemente de cual se escoja. Por ello, durante esta fase se eliminan los que resulten redundantes con otros ya existentes, eliminando primero los más nuevos, que posiblemente hayan sido generados durante el proceso de conexión de nodos, y que por esto se encuentran al final de las listas de arcos de cada nodo. En caso de no ser arcos creados posteriormente, como ya se ha explicado, no se estará introduciendo un grado elevado de imprecisión. Es interesante notar que en una versión anterior del sistema la limpieza de este elemento y la de los bucles estaban separadas como procesos distintos, pero luego se descubrió que los bucles también entraban en la definición que este proceso hacía de arcos redundantes. Desde el punto de vista de un nodo, un bucle se ve como dos arcos (cada uno de los dos extremos del arco conectados al nodo) que llevan al mismo destino (es decir, el propio nodo en el que aparece el bucle) Al eliminar “uno de los arcos” tanto del nodo analizado como del destino, que era el mismo pero empleando la otra 75
  • 90. Desarrollo de un Sistema Inteligente GPS-Raster para una PDA conexión, el resultado era que ambas conexiones del bucle y el arco problemático en sí se eliminaban con éxito y de forma transparente al método. Nodos aislados: Nodos que no están conectados con ningún otro nodo. Este tipo de nodos aparece cuando al agrupar un grupo de nodos éste no resulta estar conectado con ningún otro elemento del grafo. Como resultado, todos los arcos del nuevo nodo surgido del cúmulo son bucles, y después de que se hayan limpiado durante los procesos anteriores el nodo se queda sin ninguna conexión. El principal motivo por el que se eliminan estos elementos es para evitar que el usuario intente calcular la ruta a o desde uno de estos nodos aislados. 76
  • 91. Desarrollo de un Sistema Inteligente GPS-Raster para una PDA Parámetros de Refinado Se ha mencionado durante la descripción de los procesos varías distancias que controlan el rango hasta el que se agrupan y se conectan los procesos. Estas distancias de control pueden ser reguladas en el momento de realizar la generación del Grafo de Rutas. Radio de Nodo: Este parámetro se usa durante el proceso de aproximación de nodos. Dos nodos que se encuentren separados una distancia menor que el valor de este parámetro se consideraran como el mismo. Esto significa que ambos pertenecerán al mismo cúmulo de nodos que al final del algoritmo se convertirá en uno solo. Es interesante mencionar que el radio no se compara con la distancia que realmente separa los nodos, sino que se compara consecutivamente con la diferencia entre sus ejes Y y X. Esto se hace así porque antes de que se comience a realizar iteraciones comparando las coordenadas de los nodos entre sí, la lista de nodos se ordena por su coordenada Y. Cuando se realizan las iteraciones solo se sigue comparando el nodo evaluado con sus vecinos si la diferencia en el eje Y es menor que el Radio de Nodo antes de pasar al siguiente nodo. Con esto se consigue reducir enormemente el número de iteraciones necesarias para realizar el proceso al eliminar una gran cantidad de iteraciones innecesarias. Lo que también implica es que cuando una iteración entra en la parte del algoritmo dedicada a comprobar si ambos nodos deben estar presentes en el mismo cúmulo, la distancia que les separa en y es valida como para aproximarlos, con lo que 77
  • 92. Desarrollo de un Sistema Inteligente GPS-Raster para una PDA únicamente hace falta comparar sus coordenadas X. Por esto es por lo que la distancia entre los nodos se compara en ambas direcciones por separado, en lugar de calcular la distancia real en línea recta entre esos elementos. El resultado que esto implica es que el área en torno a la cual un nodo puede considera a otro como parte del mismo cúmulo es un cuadrado, no un círculo. Radio de Centro: Este parámetro también es empleado durante el proceso de aproximación de nodos. Cuando se considera si un nuevo nodo va a ser añadido a un cúmulo de nodos, se calcula la distancia que lo separa del centro del cúmulo. En este caso la distancia que se evalúa es la distancia real, es decir, la longitud del segmento que se puede trazar entre el nodo y el centro del cúmulo. En el caso de que ninguno de los dos nodos se encuentre en un cúmulo, la comprobación no se realiza, pues ellos mismos son los centros respectivos de sus cúmulos y ya se encuentran de por sí separados por la distancia del Radio de Nodo, cuyo valor será menor que la de este nodo. En el caso de que ambos pertenezcan a cúmulos, sus respectivos centros se comparan. Esto es debido a que se podría entender cada uno de ellos esta añadiendo un único nodo a su cúmulo; el que surge de realizar la aproximación sobre el nodo vecino. 78
  • 93. Desarrollo de un Sistema Inteligente GPS-Raster para una PDA El propósito por el que esta segunda comparación se hace es para evitar que los cúmulos crezcan hasta alcanzar unas dimensiones demasiado elevadas debido a la aparición de zonas convertibles en cúmulos de gran tamaño, con lo que se evita el llamado “efecto estrella” en el grafo. Ese problema se denomina así debido a la aparición de nodos en el centro de áreas vacías de los que sale un gran número de arcos conectándolos con nodos situados en el borde del área vacía. Esto les da aspecto de estrellas. El origen de estas áreas es causado por cúmulos de gran tamaño que al agruparse vacían la zona en la que se encuentran de nodos estableciendo el nodo central de la estrella. El origen de los arcos que le dan su aspecto característico es como conexiones que los nodos del cúmulo tenían con nodos en el exterior del cúmulo. Bajando el valor de este parámetro se elimina la presencia de estrellas en el grafo creado. Radio de Conexión: Este parámetro se emplea durante el proceso de conexión de los nodos. Si la distancia que separa dos nodos es menor que el valor de este parámetro, se creará un arco que los una. El valor de longitud de los arcos así creados es igual a la propia longitud del arco. El modo en que se comparan las coordenadas de los nodos es el mismo que en el caso del proceso de aproximación de nodos, por lo que el área en torno al nodo evaluado en la que se comprobará la existencia de otros nodos es igualmente un cuadrado en lugar de un círculo. 79
  • 94. Desarrollo de un Sistema Inteligente GPS-Raster para una PDA 5.4.2. Editor de Grafo Los mapas distribuidos comercialmente por compañías especializadas en la fabricación de mapas para GPS están completamente cerrados a modificaciones. Esto implica un gran número de problemas para el usuario final. Si no fuera por esta limitación, el usuario podría editar libremente el mapa de navegación, corrigiendo errores que los creadores sufrieron al crear la mapa, actualizándolo manualmente cuando se abrieran nuevas carreteras, o incluyendo puntos significativos o nuevas rutas propias, como por ejemplo, si descubriera un atajo campo a través que evidentemente no aparece en ningún mapa pero que el usuario puede tomar con su todoterreno. Para evitar esta limitación, el Módulo Vectorizador incluye una aplicación de edición con la que el usuario puede modificar manualmente el Grafo de Rutas, denominada el Editor de Grafo. Mediante este editor, el usuario puede, de modo simple y solo con unos pocos clics, editar todas las características del grafo. El editor incluye como herramientas: 5.4.2.1. Añadir Nodo Crea un nodo en las coordenadas del punto en el que usuario haga clic. Además, es posible emplear varios modos de atracción al añadir los nodos: 80
  • 95. Desarrollo de un Sistema Inteligente GPS-Raster para una PDA Sin atracción: Simplemente crea el nodo en las coordenadas que le indique el usuario. Puesto que aún es un nodo nuevo, eso implica que caería dentro de la definición de nodo aislado al no tener ningún arco conectado. Para que el nodo sea útil, es necesario que el usuario trace arcos hacia él. Arco Magnético: Determina el punto más cercano del arco más cercano y allí es donde coloca el nuevo nodo. El arco, así mismo, queda dividido en dos, cada uno de los cuales une el nuevo nodo con los extremos de arco original. Nodo Magnético: Determina el arco más cercano al punto donde el usuario quiere añadir el nodo y a continuación el arco es “atraído” por el nodo. El nodo se coloca en las coordenadas que indico el usuario indicó y el arco se divide en dos, cada uno de los cuales une el nuevo nodo con los extremos de arco original. 5.4.2.2. Mover Nodo Cambia las coordenadas de un nodo seleccionado por el usuario a las que éste defina. El efecto que esto produce es que le nodo se mueve sobre el plano del grafo. 81
  • 96. Desarrollo de un Sistema Inteligente GPS-Raster para una PDA 5.4.2.3. Eliminar Nodo Borra el nodo indicado por el usuario. Al eliminar el nodo también se elimina de modo automático todos los arcos asociados al nodo, puesto que su existencia esta definida como la conexión de dos nodos. Por tanto, un arco sin un extremo no puede existir. 5.4.2.4. Añadir Arco Traza un nuevo arco que conecta dos nodos. Puesto que un arco existe en tanto que existan los dos puntos entre los que esta trazado, no es posible crear un nuevo arco sin que sus extremos ya existan. De modo que es necesario crear los nodos antes que los arcos si se quiere dibujar una nueva vía de circulación en el grafo. El valor de la longitud del nuevo arco es igual a la longitud del propio arco, es decir, la del segmento que conecta sus nodos extremo. El editor comprueba que el nuevo arco no sea un bucle y que no exista ya ningún arco que una los dos puntos, para evitar que el usuario añada accidentalmente información redundante al grafo. 82
  • 97. Desarrollo de un Sistema Inteligente GPS-Raster para una PDA 5.4.2.5. Modificar Arco Permite alterar los parámetros que definen al arco seleccionado por el usuario. No obstante, puesto que las coordenadas de sus extremos están definidas por los nodos que une no puede modificarlas (para eso esta la herramienta de Mover Nodo) el único parámetro que puede editarse es la longitud del arco. Puesto que la escala del mapa es parte del posicionamiento y ese es un proceso del Módulo Enrutador, la longitud no se puede definir en kilómetros sino que se tiene que definir en píxeles. 5.4.2.6. Borrar Arco Elimina el arco indicado por el usuario. Puesto que los nodos extremo pueden seguir existiendo sin el arco que los une, no son eliminados junto con el arco. 83
  • 98. Desarrollo de un Sistema Inteligente GPS-Raster para una PDA 5.4.3. Generación del documento XML Para que el grafo pueda ser empleado por el Módulo Enrutador y que la ejecución de todos los procesos realizados por parte del Módulo Vectorizador de un resultado útil, es necesario transmitir la información del grafo de rutas al Módulo Enrutador. Se ha decidido hacer esto almacenado todos los datos del Grafo de Rutas en un documento XML con al que se la ha dado cierto formato. Del mismo modo que en la generación inicial del grafo se emplearon únicamente los datos relativos a la disposición de los arcos y se dedujo la disposición de los nodos del grafo a partir de ellos, en el fichero XML solo se están almacenando datos relativos a los arcos. Concretamente, se está codificando la longitud de cada arco y las coordenadas de cada uno de sus extremos, que son las precisamente las coordenadas correspondientes a los nodos a los que están conectados. 84