80

Tesis Malbran-Trouillet

Embed Size (px)

Citation preview

Page 1: Tesis Malbran-Trouillet

Nomenclador cartográ�co para personascon discapacidad visual

Malbrán, Francisco G. - Trouillet, Germán E.

17 de septiembre de 2008

Page 2: Tesis Malbran-Trouillet

Resumen

El presente trabajo describe el desarrollo de una herramienta informáticaque intenta apaciguar la problemática de la orientación de las personas condiscapacidad visual en un contexto urbano. Se efectúa un análisis de la relaciónsociedad-individuo y una investigación acerca del problema particular, de ladisponibilidad y �nalidad de recursos tecnológicos, y de los diferentes modos enlos que se ha intentado lograr el mismo objetivo. A partir de los conocimientosadquiridos se realiza una propuesta de solución y se describe la especi�cación,el diseño y la implementación de la utilidad resultante. Finalmente, se realizauna evaluación sobre las características de la solución creada y se detalla unconjunto de espectativas a satisfacer en el futuro próximo.

Page 3: Tesis Malbran-Trouillet

Índice general

1.. Introducción . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 5

2.. Descripción del problema . . . . . . . . . . . . . . . . . . . . . . . 102.1. Contexto General . . . . . . . . . . . . . . . . . . . . . . . . . . . 102.2. La Discapacidad Visual . . . . . . . . . . . . . . . . . . . . . . . 11

2.2.1. El Mapa Mental . . . . . . . . . . . . . . . . . . . . . . . 112.3. La Solución Ideal . . . . . . . . . . . . . . . . . . . . . . . . . . . 12

3.. Relevamiento de Herramientas Existentes . . . . . . . . . . . . . 173.1. Dispositivos . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 17

3.1.1. Trekker . . . . . . . . . . . . . . . . . . . . . . . . . . . . 173.1.2. Sendero GPS . . . . . . . . . . . . . . . . . . . . . . . . . 183.1.3. Otros . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 183.1.4. Conclusiones . . . . . . . . . . . . . . . . . . . . . . . . . 22

3.2. Aplicaciones . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 223.2.1. Mapbender . . . . . . . . . . . . . . . . . . . . . . . . . . 223.2.2. Quantum GIS . . . . . . . . . . . . . . . . . . . . . . . . . 233.2.3. El proyecto MBROLA . . . . . . . . . . . . . . . . . . . . 233.2.4. Navicore . . . . . . . . . . . . . . . . . . . . . . . . . . . . 243.2.5. TomTom . . . . . . . . . . . . . . . . . . . . . . . . . . . 243.2.6. MapRed . . . . . . . . . . . . . . . . . . . . . . . . . . . . 243.2.7. Dragon NaturallySpeaking . . . . . . . . . . . . . . . . . . 243.2.8. Sphinx . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 253.2.9. Conclusiones . . . . . . . . . . . . . . . . . . . . . . . . . 25

3.3. Librerías . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 263.3.1. Mascopt . . . . . . . . . . . . . . . . . . . . . . . . . . . . 263.3.2. GeoTools . . . . . . . . . . . . . . . . . . . . . . . . . . . 263.3.3. FreeTTS . . . . . . . . . . . . . . . . . . . . . . . . . . . . 273.3.4. GDAL . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 273.3.5. FDO (Feature Data Object) . . . . . . . . . . . . . . . . . 283.3.6. OpenLayers . . . . . . . . . . . . . . . . . . . . . . . . . . 283.3.7. Conclusiones . . . . . . . . . . . . . . . . . . . . . . . . . 29

3.4. Resultados . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 293.5. Propuesta . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 32

4.. Especi�cación y Diseño . . . . . . . . . . . . . . . . . . . . . . . . 354.1. Especi�cación Z . . . . . . . . . . . . . . . . . . . . . . . . . . . . 35

4.1.1. Grafo simple de la ciudad . . . . . . . . . . . . . . . . . . 354.1.2. Con Costo para las aristas . . . . . . . . . . . . . . . . . . 384.1.3. Con nombre para las calles . . . . . . . . . . . . . . . . . 39

Page 4: Tesis Malbran-Trouillet

Índice general 4

4.1.4. Con numeración para las calles . . . . . . . . . . . . . . . 404.1.5. Con georeferencias . . . . . . . . . . . . . . . . . . . . . . 42

4.2. Diseño de la aplicación . . . . . . . . . . . . . . . . . . . . . . . . 444.2.1. Descripción del diseño . . . . . . . . . . . . . . . . . . . . 444.2.2. Descripción del diseño en TDN . . . . . . . . . . . . . . . 45

5.. Implementación . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 495.1. Comunicación Cliente-Servidor . . . . . . . . . . . . . . . . . . . 49

5.1.1. Sockets . . . . . . . . . . . . . . . . . . . . . . . . . . . . 495.1.2. Servidor web . . . . . . . . . . . . . . . . . . . . . . . . . 505.1.3. Computación Distribuida . . . . . . . . . . . . . . . . . . 505.1.4. Comunicación Cliente-Servidor del proyecto . . . . . . . . 51

5.2. Servidor . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 535.2.1. A estrella . . . . . . . . . . . . . . . . . . . . . . . . . . . 545.2.2. Comparación entre las implementaciones de Dijkstra y A* 56

5.3. Cliente . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 595.3.1. Cliente para computadoras de escritorio . . . . . . . . . . 595.3.2. Cliente para dispositivos móviles . . . . . . . . . . . . . . 60

6.. Conclusiones . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 61

Apéndice 64

A..Manual de Usuario . . . . . . . . . . . . . . . . . . . . . . . . . . . 65A.1. Introducción . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 65A.2. Requerimientos . . . . . . . . . . . . . . . . . . . . . . . . . . . . 65A.3. Instalación . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 66

A.3.1. Windows . . . . . . . . . . . . . . . . . . . . . . . . . . . 66A.3.2. Linux . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 66A.3.3. Notas generales . . . . . . . . . . . . . . . . . . . . . . . . 66

A.4. Interfaz . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 67A.4.1. Descripción y atajos de teclado . . . . . . . . . . . . . . . 67A.4.2. Favoritos . . . . . . . . . . . . . . . . . . . . . . . . . . . 69

A.5. Presentación de los resultados . . . . . . . . . . . . . . . . . . . . 69

B..Capturas . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 71B.0.1. Capturas de Tiresias . . . . . . . . . . . . . . . . . . . . . 71B.0.2. Capturas del cliente móvil sobre emulador java . . . . . . 77

Page 5: Tesis Malbran-Trouillet

1. Introducción

�De los 85 millones de personas de América Latina que padecen dis-capacidad, sólo el 2 por ciento encuentra respuestas a sus necesi-dades, en tanto que las acciones de promoción de la salud, preven-ción, recuperación, integración, rehabilitación e inclusión se hacenimperativas.�[1]

Es evidente que si bien la sociedad actual en la que nos vemos inmersosva logrando día a día un mayor conocimiento cientí�co acerca de la salud delhombre y de cómo mejorarla, queda todavía una amplia gama de problemáticasque al día de la fecha no son tratadas adecuadamente. La discapacidad es unade ellas.

Según la Organización Mundial de la Salud, discapacidad es �cualquier re-stricción o carencia (resultado de una de�ciencia) de la capacidad de realizaruna actividad en la misma forma o grado que se considera normal para un serhumano�. Esta de�nición explicita simplemente una diferencia en la capacidadde los individuos. Por otra parte, el enfoque sociológico de la palabra nos per-mite entender que en la mayoría de los casos el problema principal del individuocon discapacidad no sólo se conforma por el hecho biológico en sí, sino que esgravemente acentuado por las incapacidades de la sociedad que lo contiene paraincluirlo de forma completa y precisa. El resultado es un conjunto de obstácu-los impuestos por el entorno que complican considerablemente el desarrollo yprogreso en la calidad de vida de este grupo social.

Desde siempre la tecnología tiene a su disposición un amplio abanico de op-ciones que, bien utilizado, puede disminuir de manera notable el conjunto derestricciones establecidas por la sociedad. Si bien la soluciones óptimas posible-mente se obtendrían estableciendo una comunión profunda entre modi�caciónestructural, máximo aprovechamiento de la tecnología y promoción de la con-ciencia social, este trabajo intentará hacer un aporte a la comunidad a través dela creación de una herramienta tecnológica. En particular, será la discapacidadvisual el eje motivador del desarrollo en cuestión.

Uno de los problemas más importantes que plantea la discapacidad visualestá íntimamente relacionado con la dependencia que genera. Especialmente anivel movilidad. El individuo precisa hacer un mapa mental del lugar por dondese quiere mover, para lo cual le resulta indispensable entender e internalizar lasrelaciones de espacio que existen en ese lugar. Esto sucede tanto en una casa (enla que existe una cierta disposición de los dormitorios, muebles, llaves de luz,enchufes, etc.), como en un mueble (con diferentes estantes, puertas, cajones,etc.), como en un ómnibus (con asientos, ventanas, timbre, pasillo), como enuna ciudad.

No resulta difícil imaginar que las relaciones de espacio en una ciudad puedenser algo muy complicado de internalizar. Tampoco resultaría insólito pensar que

Page 6: Tesis Malbran-Trouillet

1. Introducción 6

ha de ser imposible mantener en la mente una cantidad tan inmensa de variables.Cabe entonces preguntarse cómo es posible que una persona con discapacidadvisual (particularmente, un no vidente) sea capaz de viajar de un punto a otrode la ciudad.

Para responder esta pregunta, intentemos pensar primero cuál es la serie depasos que realiza una persona vidente para lograr el mismo objetivo: supong-amos que no conoce la ubicación de la dirección de destino. Entonces puede pre-guntarle a un tercero, o consultar un mapa. Una vez que entiende hacia dóndedebe dirigirse, establece un trayecto que le resulte fácil de recordar. Finalmenterecorre el trayecto establecido y da cuenta de su posición relativa consultandolos nombres de las calles por las que se mueve o alguna referencia que haya nota-do particularmente (una estación de servicio, una plaza, un museo, una avenida,etc.).

En Córdoba, una persona discapacitada visual adquiere información delmedio generalmente a través de la consulta a un tercero. Esta consulta resultainevitable debido a que la información cartográ�ca de la ciudad no se encuentradisponible en un formato que tenga en cuenta su problemática. No existe, porejemplo, un nomenclador cartográ�co con relieve que permita identi�car la for-ma en que se conectan las calles y que esté referenciado enteramente en braille.Este tipo de información tampoco se encuentra disponible para el público gen-eral en un formato auditivo (como podría ser si existiera un número de teléfonogratuito al cual llamar, en el cual una persona podría explicar qué proceso hemosde seguir para llegar a un destino especí�co). No se han producido mapas cuyoscolores y tamaños sean tales que personas con disminuciones visuales medias agraves puedan interpretar. Concluyendo, toda la información cartográ�ca de laciudad de Córdoba está disponible sólo para personas con buena visión.

Se genera casi automáticamente una interrogante fundamental: ¾por quéexiste esta carencia en nuestra sociedad? Existen varias posibles respuestas aesta pregunta:

Para el caso hipotético de un nomenclador con relieve y en braille debemostener en cuenta que las letras en braille ocupan mucho más espacio que las letrasen tinta. Cualquier letra o símbolo en este método de escritura tiene dimensionesde 7 milímetros de alto por 5 de ancho, además de necesitar una separaciónde 3,5 milímetros entre los puntos 6 y 3 de dos símbolos consecutivos. Paradarse una idea de la diferencia de dimensiones que esto implica, un renglón deeste informe contiene aproximadamente 77 (setenta y siete) caracteres de anchocontando los espacios. Un renglón de escritura braille puede variar la cantidadde caracteres de ancho entre 26 (ventiséis) y 30 (treinta) como máximo (conmárgenes mínimos). Y en una hoja completa el porcentaje de diferencia es aúnmayor, debido a la altura de los símbolos.

Podría pensarse que dadas las circunstancias mencionadas (un símbolo brailleno se puede comprimir porque se vuelve ilegible) la construcción del tal productorevelaría como resultante a un nomenclador cartográ�co gigantesco, inmanejableo poco práctico para el usuario. Pero no puede negarse la presencia de la du-da ante la ausencia del intento. Sin ir más lejos, recientemente (en Febrero del2008) en San Francisco, Estados Unidos, la empresa LightHouse for the Blindand Visually Impaired1 en colaboración con el Smith-Kettlewell Eye Institute2

1 http://www.lighthouse-sf.org/2 http://www.ski.org/

Page 7: Tesis Malbran-Trouillet

1. Introducción 7

lanzó un programa de creación y distribución a pedido de mapas táctiles. Elproyecto consiste en un servicio gratuito de creación de mapas táctiles con ref-erencia braille del barrio que se solicite. Un individuo puede realizar su peticióna un teléfono particular, y una semana más tarde el producto deseado llega asus manos a través del correo.

Para el caso de la información disponible a través de audio y la propues-ta planteada como ejemplo, se puede argüir simplemente que no ha habidouna iniciativa al respecto. Esta solución sería poco costosa y podría ser muyútil. Asimismo, la tarea de creación de mapas (o nomencladores) en colores ytamaños útiles para personas con disminución visual podría ser asumida poralguna entidad gubernamental (o institución sin �nes de lucro).

Existen, por supuesto, ciertos productos comerciales que podrían satisfacerdistintas partes de las necesidades aquí mencionadas. Los navegadores GPS3

comúnmente utilizados en vehículos de alta gama realizan cálculos y dan in-strucciones precisas sobre el lugar en que uno se encuentra y cómo ir haciadónde uno quiere dirigirse. Todo dinámicamente. Si bien no están construidosespecí�camente con el objetivo de tener en cuenta a las personas con discapaci-dad visual (muchos de ellos utilizan touch-screens4 y en general son pequeños)algunos poseen la característica de reconocer comandos de voz y dar instruc-ciones vía una voz electrónica. Además su propiedad característica de reconocerla posición global del aparato a través de satélites le ahorra al individuo el tenerque explicar dónde se encuentra (incluso podría no saberlo).

Han existido algunos inventos que intentaron disminuir la di�cultad querepresenta caminar por una zona desconocida sin un grado de buena visión. A�nes del 2006, por ejemplo, la Universidad Tecnológica Nacional (UTN) (BuenosAires) estaba desarrollando una serie de proyectos con este �n liderados porel ingeniero José Luis Cabrera. Entre los productos que se crearon se puededestacar un bastón ultrasónico que adherido al bastón tradicional avisa cuandohay obstáculos próximos a una altura media o alta, y una brújula electrónicaque emite diferentes tipos de sonidos dependiendo de la orientación en que seencuentra.

Existen otros sistemas basados en GPS (Trekker, Sendero GPS entre otros)construidos especí�camente para el caminante no vidente. Sin embargo el prob-lema de estos, así como de la mayoría de los productos que tienen en cuentaalguna problemática particular y son desarrollados por empresas privadas, esque el objetivo de su desarrollo apunta a un mercado, en vez de a un aporte hu-manitario. Esto implica que su construcción no será masiva, y los costos seránmás parecidos a los de un producto �artesanal�. Como consecuencia los precios�nales que manejan estas instituciones son deliberadamente altos, lo que dismin-uye notablemente la posibilidad de erradicar un problema de integración social.Todo lo contrario. Este hecho promulga una nueva sectorización y establece unnuevo obstáculo por vencer: el económico.

Surge a partir de esta última conclusión un punto de debate: ¾por qué unaempresa que desarrolla productos se va a ver privada de su derecho a obteneruna retribución económica? ¾Sólo porque sus productos apuntan a un sectorsocial minoritario? Detrás de cada empresa hay un grupo de trabajadores que

3 GPS: Global Position System (Sistema de Posicionamiento Global)4 Los �touch-screens� o pantallas sensibles al tacto podrían utilizarse de manera muy prove-

chosa en pro de la problemática tratada, sin embargo todavía no se ha explotado su capacidaden este sentido

Page 8: Tesis Malbran-Trouillet

1. Introducción 8

merece una retribución por su trabajo, más allá de la �nalidad de los pro-ductos que desarrollen. Entonces, indefectiblemente, entra en escena el Estado.Quizás si el Estado tuviera un rol más protagónico en esta interacción particu-lar de empresa-cliente (como sucede en algunos países de Europa y en EstadosUnidos) se podrían alivianar los precios al consumidor �nal. Incluso podría serque las empresas desarrolladoras de este tipo de productos fueran directamenteestatales, y no privadas.

En base a este análisis de la sociedad y apuntando a la disminución de labrecha existente entre las posibilidades de todos sus integrantes, en este trabajose plantea la creación de un software que ponga a disposición de la comunidadtoda los datos cartográ�cos de la ciudad de Córdoba en un formato audiovi-sual adecuado a la problemática que se remarca. Se desea brindar facilidadestales que la interacción con una persona discapacitada visual sea lo más amenaposible. Se espera que aquella pueda entonces realizar consultas sobre el cómodesplazarse de un punto a otro del mapa y cuáles son las relaciones espaciales deun trayecto sugerido. Es esperable también que la utilización de este softwarefacilite la creación de mapas mentales tanto de trayectos a realizar como dezonas particulares de la ciudad.

Es importante mencionar que dependiendo de las funcionalidades que sedeseen, podríamos encontrarnos con que el desarrollo planteado en este proyectosea un trabajo de inmensa envergadura. Para paliar este hecho se utilizarán, enlo posible, otros desarrollos ya existentes y de libre disponibilidad. Se propone,por supuesto, que una vez concluido, este desarrollo se ponga a disposición dela comunidad de manera libre.

Un obstáculo que podría haber comprometido el éxito de este trabajo esel de la obtención de las bases de datos geográ�cos de Córdoba. Las mismas,por el inmenso trabajo de relevamiento que implica generarlas, tienen un costocomercial que nos priva de su obtención a menos que logremos encontrar losmecanismos tales que, sin comprometer la funcionalidad del sistema propuesto,protejan la con�dencialidad de los datos.

En el siguiente capítulo se desarrollará una descripción más detallada delcontexto social y la problemática particular sobre los que se basa este trabajo.A partir de este análisis se describirá una solución ideal que, sin tener en cuentalas limitaciones de recursos y posibles di�cultades, ponga de mani�esto todaslas características deseables.

El capítulo 3 estará conformado por un relevamiento de material que resultepertinente a la hora de diseñar la aplicación. Se pretende estudiar la forma en quela problemática ha sido tratada en oportunidades anteriores, concebir ideas parala solución a desarrollar, y encontrar herramientas que faciliten este desarrollo.A partir de los resultados de tal relevamiento, se propondrá una aplicaciónteniendo en cuenta tanto las di�cultades por sortear como las facilidades queestén a disposición.

En el capítulo 4, se utilizarán métodos formales para detallar tanto la es-peci�cación del sistema a contruir como su diseño. La especi�cación estará fo-calizada en el manejo de la representación abstracta de los datos cartográ�cosy se realizará incrementalmente a los �nes de facilitar su entendimiento.

El capítulo 5 abarcará todo aquello que se relacione con la implementacióndel programa. Esto incluirá un análisis de las opciones que podrían adoptarse ala hora del desarrollo, la justi�cación de la elección de una de ellas, y �nalmentela descripción de la forma en que se contruyó la herramienta.

Page 9: Tesis Malbran-Trouillet

1. Introducción 9

El capítulo 6 incluirá conclusiones acerca del trabajo tales como: funcional-idades ofrecidas, impacto social, características (robustez, extensibilidad, mod-ularidad, etc), posibilidades de extensión, necesidades del marco contextual,propuestas generales, etc.

En los apéndices se ofrecerá: un manual del usuario para la aplicación desar-rollada (impreso en tinta y en braille), un CD con la aplicación y datos extras,y una demostración de funcionalidad con imágenes.

Page 10: Tesis Malbran-Trouillet

2. Descripción del problema

2.1. Contexto General

En el libro Discapacidad: lo que todos debemos saber [1] los doctores E. AliciaAmate y Armando J. Vázquez1 señalan que un alto porcentaje de las personascon pérdidas funcionales que han atendido �no sufrirían de�ciencias o discapaci-dades si hubieran sido tratados al comienzo de su enfermedad o trauma por unmédico con conocimientos básicos sobre las funciones inherentes a la indepen-dencia física, social, educacional y laboral�. Y agregan a esta a�rmación que �Lafalta de información y de un enfoque que encare globalmente la patología y susconsecuencias con frecuencia origina discapacidades�.

Nótese el peso y la importancia de la palabra origina. Estos datos explicitande manera unívoca que las sociedades latinoamericanas sufren de un conjuntoimportante de falencias en lo que re�ere a la atención y prevención de discapaci-dades. En consecuencia, la persona con discapacidad se enfrenta continuamentea una sociedad que no está enteramente preparada para integrarlo. Surge comoresultado de este enfrentamiento la imposibilidad de gozar de buena salud, enel sentido más amplio y abarcativo de este concepto. La sociedad discapacitadaaumenta la discapacidad individual.

En Córdoba capital existen innumerables falencias que, al convertirse enobstáculos o di�cultades, disminuyen la salud del grupo de personas referido.Por nombrar algunas:

Casi no existe transporte público con puertas su�cientemente amplias y/ofacilidades para permitir el ascenso o descenso de individuos en silla deruedas.

Carencia de rampas para silla de ruedas en numerosos sectores de la ciu-dad.

Carencia de semáforos especiales para personas discapacitadas visuales encasi la totalidad de la ciudad, salvo excepciones.

Prácticamente no existen indicaciones en braille en sitios estratégicos talescomo los postes de nombre de las calles, paradas de colectivo, ascensores,Centros de Participación Comunal (CPC's), cajeros automáticos, etc.

Es importante notar que estos obstáculos convergen a un papel fundamen-tal como limitadores de la autonomía de la persona con discapacidad. Tambiéncabe recalcar que la discapacidad no sólo afecta a la persona que la sufre, sinotambién a todo su entorno: las personas que toman cuidado de ella, los famil-iares, la sociedad misma. La ausencia de políticas, legislaciones y proyectos que

1 Tanto el Dr Vázquez como la Dra Amate son médicos especialistas en rehabilitación

Page 11: Tesis Malbran-Trouillet

2. Descripción del problema 11

tengan en cuenta la discapacidad y que sean efectivamente aplicadas conlleva unagravamiento en la calidad de vida de la sociedad en general, afectando partic-ularmente la salud de las personas referidas y extensivamente el entorno socialque las contiene.

Cuando una persona se ve afectada por la sociedad en su capacidad de serindependiente, ve a la vez mitigada su calidad de vida. Se encuentra impedidapor el entorno a realizar tareas para las cuales posee la capacidad, y en conse-cuencia interioriza la certidumbre de una dependencia que la limita. Se genera,por lo tanto, un acontecimiento particular que podría denominarse �discapaci-dad social�. Es evidente que esta situación es una poderosa fuente de malestaresen las personas que la sufren, y entonces puede percibirse que resulta un obje-tivo primordial el de realizar las acciones pertinentes que sean necesarias paramaximizar el grado de autonomía de todos los individuos con discapacidad.

En la 138a Sesión Del Comité Ejecutivo llevada a cabo por la OrganizaciónMundial de la Salud y la Organización Panamericana de la Salud se hace ref-erencia al Manual de Desarrollo Inclusivo[2] haciendo incapié en el punto queexplicita la importancia y necesidad de �La elaboración e implementación de ac-ciones y políticas encaminadas para el desarrollo socioeconómico y humano queapuntan a la igualdad de oportunidades y de derechos para todas las personas, in-dependientemente de su estatus social, género, condiciones físicas, intelectualeso sensoriales y de su raza�

2.2. La Discapacidad Visual

Discapacidad visual re�ere a una pérdida total o parcial de la visión. Partic-ularmente, se dice que una persona padece de ceguera cuando su grado de visiónen el ojo es menor a 20/400 (considerando el ojo con mayor sentido de visióny con la mejor correción posible). Por otra parte, el concepto de �baja visión�está relacionado a individuos que, aún con la mejor corrección y su mejor ojo,no tienen un grado de visión su�ciente (no supera los 3/10) y/o presentan uncampo visual de 20 grados o menos.

2.2.1. El Mapa Mental

Las personas con un buen grado de visión utilizan el sentido de la vistapara adquirir aproximadamente un 80 (ochenta) por ciento de la informacióngenerada por el entorno social. Esta información incluye datos acerca de la dis-posición de los objetos, las relaciones de distancia entre ellos, los materialesque los conforman, la dinámica de los integrantes del entorno (individuos, ve-hículos, objetos), etc. y en consecuencia permite realizar conclusiones acerca dequé sectores son más aptos para desplazarse de manera segura, los posibles peli-gros u obstáculos que se pueden presentar, el esfuerzo que presentará realizar untrayecto particular, etc. En pocas palabras, las imágenes son el recurso principalque utiliza el vidente para relacionarse con su entorno.

La persona discapacitada visual genera mapas mentales que le permiten in-teriorizar muchas de las relaciones que el vidente realiza dinámicamente. Unavez que logra tener una conciencia interiorizada acerca de las relaciones espa-ciales de su entorno, se puede mover a través de él con mucho más seguridad

Page 12: Tesis Malbran-Trouillet

2. Descripción del problema 12

que cuando desconoce por completo cuáles serán los obstáculos que se puedeencontrar.

Alex Wade, partícipe del proyecto llevado a cabo por la empresa LightHousefor the Blind and Visually Impaired en el que se brindan mapas en relieve a per-sonas discapacitadas visuales2, comenta en un reportaje realizado por la estaciónde radio KQED3 que existe una parte del cerebro encargada de conservar la in-formación visual adquirida. Esto implica que se conserva no sólo la sensación dela imagen, sino toda la información que a través de ella se adquiere, incluyendotodas las relaciones que una persona vidente utiliza para desplazarse a travésde su entorno. Particularmente, esta parte del cerebro es capaz de conservar laimagen de un mapa que se haya consultado para saber como llegar a un puntoespecí�co de una ciudad. Se remarca en este reportaje que la discapacidad visualestá vinculada exclusivamente a una de�ciencia de algún tipo en el órgano visual,pero que carece de relación alguna con las funcionalidades del cerebro (exceptopor un tipo muy particular de ceguera en la que el cerebro es el casuante de la novisión). Luego las personas que sufren de esta discapacidad poseen aquélla partedel cerebro totalmente funcional. Sin embargo, como cualquier parte del cuerpoque no se está acostumbrado a utilizar, debe existir un proceso de aprendizajey estímulo para permitir un aprovechamiento máximo de esta facultad.

Cabe distingir en este punto entre las personas cuya discapacidad fue adquiri-da a una edad avanzada (adolescente, adulto) y aquéllas que la poseen desde elnacimiento o desde los primeros años de vida. La persona que adquiere la dis-capacidad a una edad avanzada, cualquiera fuera el causal, ya está acostumbradaa utilizar la funcionalidad mencionada de manera regular para relacionarse consu entorno. De esta manera, tiene la capacidad de realizar analogías entre lainformación que adquiere ya sea verbalmente o a través del sentido del tacto yaquella que recibía anteriormente a través del sentido de la visión. Conoce ladiferencia entre ver y no ver, y entonces puede generar una imagen mental através de los datos que adquiere y conservarla para utilizarla luego como guía ala hora de desplazarse por el entorno detallado.

La persona que posee la discapacidad desde el nacimiento o la temprana edadpuede tener mayores di�cultades para lograr el mismo cometido. Sin embargo,es totalmente posible. La contínua práctica y experimentación de relacionar lodetallado verbalmente o diagramalmente y la actividad misma de recorrer losespacios descriptos le permite desarrollar la habilidad de crear mapas mentalesde una forma tan útil como lo es para el resto de las personas. Alex Wade padececeguera desde la edad temprana de 4 años, y está seguro de que este método essumamente útil y enriquecedor para la persona discapacitada visual.

2.3. La Solución Ideal

¾Cuál sería, entonces, la solución ideal que le permita a una persona condiscapacidad visual desplazarse de manera autónoma por una ciudad? En loparticular, se va a suponer una solución ideal desde el punto de vista de lotecnológico, sin hacer referencia a cambios estructurales en la sociedad (comorotular todos los postes de nombre de calle con braille) ni en las políticas de lacomunidad para promover la conciencia social respecto de esta problemática.

2 ver Introducción3 http://www.kqed.org/quest/radio/view/747

Page 13: Tesis Malbran-Trouillet

2. Descripción del problema 13

Algunos puntos a considerar para imaginar el desarrollo de una herramientatecnológica ideal podrían ser los siguientes:

Que ponga a disposición la información cartográ�ca de la ciudad en unformato adecuado.

Que permita consultar acerca de cómo llegar a una zona especí�ca de laciudad.

Que pueda dar cuenta de la posición actual del individuo en el trayectoque está realizando.

Que sea portable

Que la forma de interacción con el usuario sea lo más sencilla y dinámicaposible

Que brinde información acerca de los medios de transporte utilizables parallegar a un punto de la ciudad. Esta información podría incluir no sólo elrecorrido del transporte, sino también sus puntos de parada, los horariosa los que se puede acceder a éstos, cómo llegar desde el punto actual hastaun punto de parada, algún método que permita entender en qué punto deparada se debe descender, y la información para llegar desde el punto dedescenso hasta el punto de destino deseado.

Que brinde información acerca de posibles puntos de interés (hospitales,farmacias, centrales de policia, comercios, plazas, polideportivos, estadios,etc.). Esta información podría brindarse conjuntamente a la forma derecorrer un trayecto (los puntos cercanos a los lugares por donde se fuera acaminar) o solicitarse respecto de un punto especí�co (como por ejemplo:¾qué hospitales existen cerca de esta dirección?)

Que pueda informarse y brindar información acerca de eventos especí�cosrelevantes a el recorrido de un trayecto (por ejemplo: una calle que se en-cuentra en remodelación, un accidente vial, una manifestación anunciada,etc.)

Para empezar a �gurarse la solución buscada, se puede pensar que la mismaserá un artefacto. Una computadora de bolsillo. De esta forma ya tendríamossolucionado el ítem de la portabilidad. Esta computadora ofrecería característi-cas técnicas avanzadas que le permitieran toda la funcionalidad que se precisepara lograr los objetivos deseados.

La interacción con el usuario podría realizarse por medio de un mini tecladoincorporado (como sea el de un celular o el de algunos modelos de Pocket PC)y parlantes o auriculares. Parte de la funcionalidad del software instalado enla máquina podría ser que una voz electrónica indique qué botones se estánapretando, al igual que realizan tantos paquetes de software existentes para lasPC estándares que se encuentran hoy en el mercado.

Una alternativa a este modelo de interacción con el usuario podría ser lautilización de las anteriormente mencionadas �touch-screens�, o pantallas sensi-bles al tacto. Muchos modelos de pocket PC utilizan este medio como mediofundamental de interacción con sus usuarios, sin embargo, la utilización de este

Page 14: Tesis Malbran-Trouillet

2. Descripción del problema 14

mecanismo se realiza de manera estrictamente visual. Para adaptar esta fun-cionalidad de manera tal que sea útil al grupo de personas referido, se precisaríaque el software del aparato indique sobre qué partes de la pantalla se está pasan-do el dedo (la utilización de un lápiz electrónico quizás no sería aprovechable,el dedo resulta una herramienta harto instintiva para apuntar a lo que se quierey entender la disposición de objetos en la pantalla).

Finalmente, como última alternativa de modelo de interacción, se puede pen-sar en la utilización de la voz y el sonido. Esto requeriría que la herramientadisponga de un micrófono incorporado. En la actualidad existe una amplia var-iedad de software de reconocimiento de voz. Si bien éste es un apartado encontínuo desarrollo e investigación, existen ya en el mercado algunos productosque utilizan esta característica. Este parece ser el medio más intuitivo y sencilloque podría considerarse para interactuar con el usuario, ya que es el método quese utiliza normalmente para interactuar con las personas. Es lo más cercano posi-ble a realizar consultas a un tercero. Si bien existiría un período de aprendizajeen el que se deberían aprender los comandos a los que el aparato reaccionay cuáles son las consecuencias de ejecutarlos, este detalle estaría presente encualquiera de los métodos anteriormente mencionados. Quizás el método de lapantalla sensible al tacto fuera el que menos precisara de un manual o intructivointroductorio, debido a que resultaría el más intuitivo. Sin embargo, con unainterfaz lo su�cientemente amigable, la interacción a través de la voz y el audiopodría brindar resultados óptimos.

Para poner a disposición del usuario la información cartográ�ca de una ciu-dad en un formato adecuado a la problemática que se trata, sería necesario queestos datos se encuentren digitalizados. Debe existir una base de datos que con-tenga toda la información de la ciudad a la que se re�era, teniendo en cuentano sólo la disposición relativa de las calles entre sí, sino también la georefer-enciación4 de cada ítem que se encuentre en la base. La información, evidente-mente, sería presentada en formato de audio, dadas las características de la her-ramienta que hemos hipotetizado hasta el momento. Esta presentación podríaincluir datos como: el barrio en que se encuentra una dirección solicitada, callescercanas a la misma, construcciones importantes (museos, monumentos, etc.),comercios y servicios (hoteles, farmacias, shoppings, cines, etc.), entre otras.Otra información importante que se brindaría sería qué tipo de infraestructuraespecí�ca existe en una zona particular, o en la zona que atraviesa el camino.Esta información incluiría semáforos con sonido, indicaciones braille, etc.

Sería útil también que se pudiera con�gurar un conjunto de lugares quefueran de consulta frecuente, como por ejemplo la casa del usuario y las de susparientes, su escuela o lugar de trabajo, etc. Esta utilidad permitiría referenciartales lugares por un pseudónimo tal como �Hogar� en vez de tener que precisarla dirección especí�ca.

Otra característica deseable sería que la herramienta en sí misma sea in-dependiente de los datos sobre los cuales se desea realizar consultas de tipocartográ�co. Es decir, que se conserve toda la funcionalidad más allá de si losdatos digitalizados detallan a la ciudad de Córdoba, Argentina, o bien a la ciu-dad de Córdoba, España. Esto permitiría que usuarios de distintas partes delmundo puedan utilizar la herramienta si en su ciudad ya existe una base dedatos digitalizada de la cartografía del lugar, simplemente intercambiando las

4 Posición absoluta de latitud-longitud

Page 15: Tesis Malbran-Trouillet

2. Descripción del problema 15

bases de datos que se utilizan. Sería importante que el método a través del cualse intercambien los datos sea lo más sencillo y ameno posible, por ejemplo, através de una opción de con�guración simple que permita seleccionar algunade las distintas bases que ya estén cargadas en la herramienta. Otra opción deactualización podría conectarse a un sitio de internet para buscar bases de datosnuevas. En este sitio usuarios de todo el mundo podrían subir bases de datosde su ciudad. Sería altamente productivo si los gobiernos pudieran colaborar eneste sentido, brindando sitios de internet con información geográ�ca digitalizaday actualizada que se pueda acceder a través de este mismo medio para mantenerlas bases de datos de la herramienta tan al día como fuera posible.

La presentación de los datos cartográ�cos también incluiría conjuntos de in-strucciones verbales para realizar un trayecto particular, con indicaciones quepermitirían al usuario sentirse lo más seguro posible acerca de cómo llegar hastael destino deseado. Para ser óptimos en la utilización de este recurso, la her-ramienta debería ser capaz de guiar al usuario paso por paso, y para ello el con-junto de instrucciones debería ser entregado de manera paulatina. Como efectode tener en cuenta este detalle, podría considerarse la existencia de un comandoque pause la instrucción hasta nuevo aviso. De esta forma el usuario podríaavisar cuándo se encuentre en el punto próximo y escuchar la/las instruccionessiguientes (según él considere necesario). Como alternativa, las instrucciones po-drían pronunciarse de a un paso por vez, teniendo el usuario que avisar cuándoquiere que se pronuncie la siguiente. Puede pensarse en comandos similares adisposición del usuario tales como avanzar y retroceder.

Sería útil que el usuario pueda consultar en cualquier momento en qué puntodel trayecto se encuentra y cuál es la próxima instrucción que debería realizar.Para lograr esto la herramienta debería contar con algún tipo de sensor demovimiento o accesorio que le permita estar al tanto de cuál fue el trayectorecorrido real hasta ese momento. La tecnología actual que permite la adquisi-ción de esos datos es la basada en GPS (Global Position System). Entonces,supondremos que la herramienta cuenta con un sistema de posisicionamientoglobal que le permite �darse cuenta� de cuál es la posición actual del individuo.Este accesorio solucionaría la forma en que se deben ir dando las instrucciones,ya que éstas serían brindadas sólo cuando deban ser ejecutadas y no en otromomento. Esta capacidad también permitiría saber si el individuo se ha desvi-ado del trayecto que deseaba realizar y avisar ante este hecho. Si el individuose ha desviado porque se encontró con un obstáculo insuperable (como un cortede calle o una construcción nueva) aquél podría informarle a la herramienta(a través de algún comando especí�co) el dato de que allí hay un obstáculo yen consecuencia la herramienta regeneraría el trayecto evitando pasar por esepunto, de ser esto posible, o informaría que no existen caminos alternativos quepermitan llegar a destino.

De esta situación analizada se puede pensar en la posibilidad de que exista laopción de permitir al usuario establecer que existen ciertas partes de la ciudadpor las que no se quiere transitar. Por ejemplo, un usuario podría saber quecierta calle, a una determinada altura, carece de vereda. O bien que existendeterminados barrios que se consideran marginales y por los cuales preferiríano tener que caminar. Sería importante que tales conocimientos puedan quedarplasmados en los datos que maneja el programa para que este genere trayectosque no incluyan estos puntos de con�icto. Si no existiera trayecto posible laherramienta debería avisarle al usuario que no es posible realizar el trayecto

Page 16: Tesis Malbran-Trouillet

2. Descripción del problema 16

deseado si no se atraviesa determinado obstáculo por él especi�cado.Una característica que sería de suma utilidad, sería la posibilidad de contem-

plar dentro de los datos que utiliza el artefacto, una base de datos del transporteque circula por la ciudad. Esta base de datos serviría como fundamento de unafuncionalidad que resuelva una alternativa a generar un trayecto para realizara pie. Esta funcionalidad permitiría saber qué medios de transportes son útilespara llegar al destino solicitado, cuál es el trayecto desde la posición actual has-ta el lugar más cercano donde podamos hacer uso de este transporte, cuál esel trayecto desde el lugar de descenso del medio de transporte hasta el destinosolicitado, cuál sería el costo del pasaje (o los pasajes si tuvieramos que utilizarmás de un medio), horarios, etc. La característica de tener la información dela posición del trayecto en que se encuentra el usuario en todo momento seríala encargada de realizar la advertencia oportuna cuando el usuario esté cercadel lugar de descenso. Sería importante que todas esta información se encuentredisponible en un servidor que se mantenga actualizado para evitar brindar datoserróneos.

Page 17: Tesis Malbran-Trouillet

3. Relevamiento de HerramientasExistentes

En este capítulo se describirá el resultado de un relevamiento realizado enbusca de herramientas y/o soluciones existentes. El objetivo de tal relevamientofue el de analizar las formas en que se ha atacado la problemática en el pasado,prever contratiempos, contemplar di�cultades y basados en esta información sercapaces de tomar buenas decisiones en lo que respecta al diseño y el procesode implementación del software que se desea. En esta búsqueda fue tambiénuna expectativa primaria la de encontrar herramientas especí�cas de softwarelibre que permitieran reducir y simpli�car la cantidad de tareas que plantea eldesarrollo de este proyecto de tesis.

3.1. Dispositivos

Existen algunas herramientas en el mercado cuya funcionalidad es la mismaque se busca conseguir con este proyecto:

3.1.1. Trekker

Trekker1 es un dispositivo creado por HumanWare, que utiliza tecnologíaGPS y mapas digitales para ayudar a la persona discapacitada visual a abrirsecamino tanto en zonas urbanas como rurales. Permite a los usuarios conocerla localización en la que se encuentran (el nombre de la calle, calles cercanas),descubrir lugares interesantes cerca de su posición (como hoteles, restaurantes,etc.), establecer puntos de interés y notas tanto de manera escrita como oral,conocer el cómo llegar hasta un destino especi�cado, y actualizar el softwaredel dispositivo desde internet. Ofrece la posibilidad de comprar mapas digitalesonline para luego utilizarlos como base de datos para planeamiento de rutas yreconocimiento de áreas y es completamente actualizable. Sus principales car-acterísticas son:

Detección de información en tiempo real (intersecciones, puntos de in-terés).

Navegación de mapas en tiempo real y o�-line (previsualización de rutas)

Planeamiento y almacenamiento de rutas.

Creación vocal de puntos de interés.

1 http://www.humanware.com/en-international/products/gps/trekker

Page 18: Tesis Malbran-Trouillet

3. Relevamiento de Herramientas Existentes 18

Fig. 3.1: Dispositivo GPS Trekker

Acceso a la información de estado del GPS.

Liviana y portable

Su costo aproximado es de 1700 euros y los mapas se compran por separado.

3.1.2. Sendero GPS

Sendero GPS2 es un dispositivo creado por el Sendero Group que ofrece car-acterísticas similares a Trekker, permitiendo a la persona discapacitada visualestablecer rutas, realizar �paseos virtuales� para el planeamiento de las mismas(simular el recorrido del sendero para saber por ejemplo con qué facilidades seencontrará en el camino), agregar puntos de interés, informar acerca de facili-dades y servicios cerca de la localización del usuario (hoteles, farmacias, etc.),tomar notas, crear, guardar y borrar rutas tanto para realizar a pie como en al-gún vehículo, invertir rutas guardadas, conocer intersecciones, consultar cuántossatélites se encuentran conectados en un momento particular, adquirir informa-ción de latitud, longitud, altura, y direcciones. Su costo aproximado tambiénmedia los 1700 euros.

3.1.3. Otros

Existen otros productos que ofrecen características muy similares a los an-teriormente mencionados. Entre ellos se puede mencionar el PAC Mate GPS,desarrollado por FreedomScienti�c3 que consiste en tres productos trabajandomancomunadamente para lograr un sistema de navegación GPS para la per-sona discapacitada visual con las mismas funcionalidades que los anteriormentemencionados. Esta pack precisa de:

2 http://www.senderogroup.com/shopgps.htm3 http://www.freedomscienti�c.com/

Page 19: Tesis Malbran-Trouillet

3. Relevamiento de Herramientas Existentes 19

Fig. 3.2: Dispositivo GPS Sendero

Fig. 3.3: Dispositivo PAC Mate

PAC Mate: Un dispositivo PDA para personas discapacitadas visuales.4

StreetTalk: Software instalable en PAC Mate utilizado para la navegaciónGPS.5

Bluetooth GPS Receiver: El receptor de señal GPS.

Para adquirir el paquete completo es necesario un presupuesto aproximadode entre 3000 y 6500 dólares (dependiendo de si la PDA contiene visualizaciónbraille, si se adquieren todos los mapas disponibles, etc). A mediados del 2003la European Space Agency 6 junto a otras organizaciones estaban testeandoun producto de características símiles a las aquí expuestas denominado Tormes,utilizando un sistema de navegación por satélite denominado Egnos. Sin embargosólo se encontró información acerca de un probable lanzamiento del cuál no sehan conocido mayores detalles.

Existen también otra serie de dispositivos que si bien no son especí�cos alproblema que se plantea podrían ser de utilidad a la hora de establecer unasolución:

4 http://www.freedomscienti�c.com/products/fs/pacmate-product-page.asp5 http://www.freedomscienti�c.com/products/fs/streettalk-gps-product-page.asp6 http://www.esa.int/esaCP/index.html

Page 20: Tesis Malbran-Trouillet

3. Relevamiento de Herramientas Existentes 20

Fig. 3.4: Sonic Path�nder

The Sonic Path Finder (Buscador sónico de caminos)

El Sonic Path Finder7 es un artilugio para facilitar la movilidad de personascon discapacidad visual en entornos abiertos. Surge a partir de la Unidad BlindMobility Research en la Universidad de Nottingham, Inglaterra, alrededor delos años '80. Este dispositivo le da al usuario advertencias avanzadas sobreobjetos que se encuentren en el recorrido que aquél se encuentra realizando. Sino hay objetos en su camino se con�gura automáticamente a un modo de �bajaprioridad� en el que se detectan límites entre tierra y agua.

El dispositivo es un sistema sonar controlado por un microprocesador queutiliza ecos y pulsos y que se monta en la cabeza del usuario. Cuenta con 5(cinco) transductores, 2 (dos) emisores y 3 (tres) receptores que se encargan deemitir señales y capturar ecos respectivamente. Los receptores están ubicadosuno al frente y uno a cada lado de la cabeza. Cuando los receptores reciben uneco, la señal es enviada al micro procesador que se encarga de generar señalesque serán enviadas a alguno de los parlantes ubicados en los oídos dependiendode la ubicación del objeto detectado. Un sonido se enviará al parlante derechosi el objeto se encuentra a la derecha del usuario, o a la izquierda en situaciónanáloga, o bien será reproducido por ambos auriculares si el objeto se encuentraal frente del caminante.

C2 Talking Compass:

C2 Talking Compass8 se trata de una brújula de mano operada con bateríasy con salida de voz digital. Creada por Sensory Tools, contiene en su partesuperior un botón de activación y en un lateral un botón de tres posiciones quepermite cambiar el estado de apagado a encendido con alguno de los dos idiomasdisponibles (que pueden ser determinados al momento de la compra). La brújulapronuncia cada uno de los 8 puntos cardinales determinables con una voz digital

7 http://web.aanet.com.au/tonyheyes/pa/pf blerb.html8 http://www.sensorytools.com/c2.htm

Page 21: Tesis Malbran-Trouillet

3. Relevamiento de Herramientas Existentes 21

Fig. 3.5: C2 Talking Compass

Fig. 3.6: Laser Cane

clara. Para las personas con baja visión se representa un código de tres lucesque puede verse a través de la carcasa semitransparente y que representa cadauna de las direcciones posibles.

Su precio varía entre 70 y 90 dólares dependiendo de si se eligen los idiomaspor defecto (inglés y español) o se requieren idiomas personalizados.

Laser Cane:

Laser Cane9 es un bastón blanco para ciegos con el agregado tecnológicode la electrónica. El bastón provee información avanzada sobre obstáculos en elcamino. Puede detectar objetos en tres niveles de altura y advierte al usuariode la existencia de los mismos a través de tonos audibles o de vibraciones bajoel dedo índice. Permite estimar distancias hacia adelante así como hacia los lat-erales, se puede doblar en dos secciones para su almacenamiento, utiliza bateríasy puede ser utilizado en cualquier tipo de ambiente (abierto, cerrado, amplios,pequeños, etc.)

Su precio es de 2995 dólares.

9 http://www.maxiaids.com/store/prodView.asp?idstore=1&idproduct=6247

Page 22: Tesis Malbran-Trouillet

3. Relevamiento de Herramientas Existentes 22

3.1.4. Conclusiones

Respecto de este relevamiento, pueden realizarse varias re�exiones. En primerlugar, los productos que apuntan directamente a la problemática tratada por esteproyecto poseen un precio comercial elevado (por encima de los 2000 dólares) locual di�culta su adquisición en países sin políticas sociales importantes (comoArgentina). Además, en general estos productos sólo cuentan con informacióngeográ�ca de países muy desarrollados, dejando en segundo plano al resto y enconsecuencia limitando su utilidad.

En segundo lugar, es notable cómo se ha detenido el progreso de la mayorparte de los productos relevados. A pesar de que las tecnologías utilizadas (elGPS, los lectores de pantallas, etc.) se han visto en una constante evolución,los productos (en general) no han sido modernizados con el correr de los años.El ejemplo más contundente es el Sonic Path Finder, desarrollado alrededor delos 80 y sobre el cuál no se halla nueva información acerca de su desarrollo. Asícomo el producto Tormes, que alguna vez estuvo en desarrollo y del cual no seconocen noticias desde su anuncio de lanzamiento (2003). Trekker parece ser eldispositivo más actualizado y con mayor vigencia y seriedad en este sentido.

Por último, hay una amplia variedad de artefactos muy útiles y accesiblespero que no atacan la problemática central del proyecto. Este tipo de dispositivosresulta útil como complemento a la persona invidente o disminuida visual en sutarea diaria de movilización (la brújula parlante, el bastón blanco con detectorde obstáculos) pero no ofrecen información alguna acerca de la cartografía delcontexto en el cual la persona se desenvuelve.

3.2. Aplicaciones

3.2.1. Mapbender

Mapbender10 es una aplicación programada en PHP y JavaScript para laconsulta de mapas. Todos los datos son leidos directamente y de forma dinámi-ca desde un banco de datos, de la misma manera que en un Sistema de Gestiónde Contenidos11. Se puede decir por tanto, que Mapbender es un CMS de datosgeográ�cos y por ello se suele usar a menudo como software para la creaciónde portales web con información geográ�ca. El software incluye una interfacede�nida que ofrece funciones de visualización, navegación y consulta de serviciosestándar OGC12. Mapbender se puede integrar practicamente en cualquier sis-tema homogéneo y página de internet. El software es compatible con cualquierservicio de mapas y datos que sea creado basado en las especi�caciones OGC ypor eso puede ser usado para un amplio abanico de programas GIS y clientesde IDEs de fabricantes diversos.10 http://www.mapbender.org/index.php/Main Page11 Un Sistema de gestión de contenidos (Content Management System en inglés, abrevia-

do CMS) es un programa que permite crear una estructura de soporte para la creación yadministración de contenidos por parte de los participantes principalmente en páginas web12 Del inglés: Open Geospatial Consortium. Se trata de una organización voluntaria interna-

cional sin �nes de lucro cuyo �n es la de�nición de estándares abiertos e interoperables dentrode los Sistemas de Información Geográ�ca. Persigue acuerdos entre las diferentes empresasdel sector que posibiliten la interoperación de sus sistemas de geoprocesamiento y facilitar elintercambio de la información geográ�ca en bene�cio de los usuarios

Page 23: Tesis Malbran-Trouillet

3. Relevamiento de Herramientas Existentes 23

3.2.2. Quantum GIS

Quantum GIS13 es un sistema de información geográ�ca gratuito de códigoabierto. Corre en Linux, Windows, Mac, OSX y otros y soporta formatos devectores, de retículas y de bases de datos. QGIS permite navegar y crear mapasen una computadora, soporta muchos formatos de datos espaciales comunes(shape�le, geoti�, etc.) así como también la inserción de complementos pararealizar tareas como mostrar un camino a partir de datos obtenidos de un GPS.Entre las tantas funcionalidades que ofrece, vale la pena mencionar:

Marcadores espaciales

Editar, ver, y buscar atributos de los datos espaciales

Etiquetado de elementos

Crear, editar, y exportar datos espaciales

Análisis espaciales

Publicar mapas en internet

Adaptar la herramienta a través de los plugins

3.2.3. El proyecto MBROLA

MBROLA1415 es un proyecto iniciado por el laboratorio TCTS de la Fac-ultad Politécnica de Mons (Bélgica) que apunta a tener un conjunto de sin-tetizadores de voz para la mayor cantidad de lenguas posibles y proveerlos demanera gratuita para aplicaciones no comerciales ni militares. El objetivo �nalde este proyecto es impulsar la investigación académica en la síntesis de voz, yparticularmente en la generación prosódica16

El foco central de MBROLA es un sintetizador de voz homónimo basadoen la concatenación de difonos17. Este sintetizador toma una lista de fonemascomo entrada junto con información prosódica y produce muestras de habla.(por lo tanto no es una sistema �Text-to-Speech� o �Texto a Voz� ya que sóloun texto plano no es su�ciente para convertir el texto en sonido). En el CD queacompaña a esta tesis pueden escucharse diversos ejemplos de voces sintetizadaspor este sintetizador.

13 http://www.qgis.org14 http://tcts.fpms.ac.be/synthesis/mbrola.html15 T. DUTOIT, V. PAGEL, N. PIERRET, F. BATAILLE, O. VAN DER VREKEN, "The

MBROLA Project: Towards a Set of High-Quality Speech Synthesizers Free of Use for Non-Commercial Purposes"Proc. ICSLP'96, Philadelphia, vol. 3, pp. 1393-1396 .16 Relativa a la rítmica, acentuación y entonación de las palabras17 Un difono representa el sonido que abarca desde la mitad de la realización de un fonema

hasta la mitad de la realización del fonema siguiente. El propósito de esta unidad de sonidoes incorporar a la unidad de síntesis la transición de sonido entre fonemas, detalle que habíacausado di�cultad en los sistemas iniciales. La síntesis consiste, entonces, en la concatenaciónde segmentos de señal en el tiempo, siendo los segmentos difonos

Page 24: Tesis Malbran-Trouillet

3. Relevamiento de Herramientas Existentes 24

3.2.4. Navicore

Navicore 18 es un software de navegación por satélite para teléfonos móviles.Entre sus características principales está la de encontrar la ruta más corta omás rápida hasta un destino especi�cado, teniendo en cuenta detalles como:congestiones en el trá�co, información de cámaras de seguridad, si el recorridose realiza a pie, en bicicleta o en un automóvil. El programa utiliza instruccionesprecisas con voz para guiar al usuario a través del recorrido establecido y pre-senta una pantalla con mapas en dos y tres dimensiones donde se marca la rutaa realizar. Posee la posibilidad de recalcular rutas si el usuario determina quehay un bloqueo en la ruta previamente calculada, así como de mencionar puntosde interés cercanos (estaciones de servicios, farmacias, hoteles, etc.) y establecerpuntos favoritos. Es actualizable desde internet.

Es compatible con algunos modelos de celulares, no posee información car-tográ�ca de América Latina (sólo de Estados Unidos y algunos países de Europay de Asia). Su precio ronda los 150 euros y puede aumentar con las actualiza-ciones y accesorios.

3.2.5. TomTom

El TomTom19 es un navegador satelital para PDAs con similares característi-cas que Navicore. Utiliza tecnología GPS como complemento a su funcionalidad,crea rutas dinámicamente, genera un conjunto de instrucciones con voz que sevan transmitiendo al usuario a medida que recorre el camino, recalcula rutascuando hay bloqueos o trá�co pesado, permite recibir llamadas, comprar ma-pas de distintas regiones (Oeste de Europa, Estados Unidos, Sudáfrica, perocarece de mapas de Sudamérica). Permite comprar voces en diferentes idiomasa 6 libras esterlinas cada una (aproximadamente 12 dólares), establecer pun-tos de interés, conocer el clima de los próximos 5 días en una ruta planeada,personalizar la visualización de los mapas, etc. Su precio ronda los 150 dólares.

3.2.6. MapRed

MapRed 20 es un servicio web para conocer direcciones, establecer recorridos,determinar rutas más cortas y puntos de interés. Su mayor ventaja es que sefocaliza en la zona de Latino América, brindando datos cartográ�cos de lasprincipales ciudades de dicha región.

3.2.7. Dragon NaturallySpeaking

Dragon NaturallySpeaking21 es un software de reconocimiento de voz de-sarrollado por la corporación Dragon Systems y comercializado por NuanceCommunications. Está especí�camente diseñado para trabajar en computadoraspersonales con sistemas operativos Windows c©. Basicamente posee tres áreas defuncionalidad:

1. Dictado: en la que el programa transcribe en tiempo real la voz del usuario

18 http://www.navicoretech.com/Consumer/Product/Description/es ES/description/19 www.tomtom.com20 www.mapred.com21 http://spain.scansoft.com/naturallyspeaking//

Page 25: Tesis Malbran-Trouillet

3. Relevamiento de Herramientas Existentes 25

2. Reconocimiento de comandos: en la que el programa interpreta las pal-abras del usuario como comandos que ejecutan determinadas acciones

3. Texto a sonido: en que se convierte texto escrito en voz hablada

En las versiones actuales de este software, no es preciso realizar entrenamientode voz (un proceso mediante el cual el programa incorpora datos acerca de lavoz de un usuario particular para aumentar la precisión del reconocimiento depalabras). Esto signi�ca una gran ventaja en comparación no sólo a versionesanteriores sino a otros softwares similares, ya que permite que una multiplicidadde usuarios utilice el sistema sin ningún requerimiento previo. El costo de esteproducto ronda los 200 dólares.

3.2.8. Sphinx

Sphinx22 es una aplicación, desarrollada por la Universidad Carnegie Mel-lon, que permite crear software de reconocimiento de voz. El paquete estándarprovee un par de bases de datos con �nalidad didáctica, para que el usuariopueda entender el cómo se crean los datos necesarios y su�cientes para poneren funcionamiento un sistema completo de reconocimiento de voz. Crear un sis-tema de este tipo necesita un conocimiento previo importante y es una tareacomplicada de llevar a cabo. Sphinx provee una serie de herramientas a los �nesde facilitar este proceso, que sin embargo, sigue siendo exclusivo para personascon conocimientos avanzados en la materia. Entre los recursos necesarios paracontruir un sistema de reconocimiento de voz con Sphinx, encontramos:

Diccionario: es un archivo que contiene un mapeo entre palabras a serreconocidas y sus transcripción fonética.

Modelo de lenguaje: el lenguaje es comunmente modelado (SLM23) através de modelos estadísticos de lenguaje o mediante el uso de gramáti-cas de estado �nitas (FSG24). Sphinx provee herramientas para construirmodelos del primer tipo. Las gramáticas deben ser construidas a mano oa través de aplicaciones externas.

Entrenador de modelo acústico: se trata básicamente de un seleccionador.Su función principal consiste en �elegir� las palabras que mejor se ajustenal sonido que fue analizado.

Decodi�cador: un decodi�cador está encargado de transformar la señalanalógica generada por el habla en una señal digital analizable por elresto del sistema.

3.2.9. Conclusiones

Existe una amplia variedad de aplicaciones disponibles que trabajan condatos geográ�cos. Muchas de estas aplicaciones son de código abierto o de libredistribución, pero su funcionalidad principal (así como el método de interacción)es demasiado visual y consiste fundamentalmente en la manipulación de los

22 http://cmusphinx.sourceforge.net/html/system.php#data23 Del inglés: Statistical Language Models24 Finite State Grammar

Page 26: Tesis Malbran-Trouillet

3. Relevamiento de Herramientas Existentes 26

datos más que en la funcionalidad pretendida por este trabajo. En contrapartida,las aplicaciones que brindan la funcionalidad buscada (tomtom, navicore), sonen general cerradas y comerciales, y tienen como desventaja esencial que carecende datos cartográ�cos de Argentina (y en general de Latino América).

Por otra parte, los softwares de conversión de texto a sonido no comercialescarecen en general de datos del idioma español, aunque muchos ofrecen la posi-bilidad de crear estos datos, esta tarea es no trivial y requiere una inversión detiempo importante así como conocimientos en el tema.

En lo que respecta al reconocimiento de voz, es evidente que el área seencuentra en un momento de intensa actividad (desarrollo e investigación).Esto tiene como consecuencia que las herramientas no comerciales que estándisponibles se encuentren en su gran mayoría en una etapa de evolución, locual, conjuntamente con la complejidad intrínseca de la materia, di�culta no-tablemente su utilización.

Como conclusión �nal de esta sección, es interesante mencionar que no resul-ta de radical importancia incluir el reconocimiento de voz como característica dela aplicación que se intenta desarrollar. Esto se deduce a partir de que la mayoríade los programas de reconocimiento de voz poseen la capacidad de interpretarcomandos para manejar aplicaciones de escritorio, así como del hecho de que lasversiones comerciales de estos programas tienen (en general) precios accesiblesy toda la funcionalidad que se desea (en particular, manejo del Español).

3.3. Librerías

3.3.1. Mascopt

Mascopt25 es una librería Java cuyo objetivo principal es proveer un con-junto de herramientas para mitigar la problemática de optimización de redes.Se propone lograr tal objetivo brindando modelos de datos de redes y grafos,métodos para la manipulación de los mismos, e implementaciones de algoritmoslineales comunes a la problemática. También facilita herramientas grá�cas paravisualización de grafos.

Es una librería creada en el INRIA, actualmente en desarrollo bajo unalicencia de código abierto (LGPL).

3.3.2. GeoTools

GeoTools26 es una librería Java de código abierto y gratuita que proveeuna serie de métodos estándar para la manipulación de datos geoespaciales.Es un proyecto joven, activo y en continuo desarrollo, con un gran número decontribuyentes. Provee una amplia gama de funcionalidades relacionadas con lamanipulación, visualización, transformación y análisis de datos geoespaciales locual resulta idóneo para la creación de sistemas de información geográ�ca, yasea como aplicaciones de escritorio o servicios web. Al ser un proyecto abiertopermite ampliar y adaptar sus funcionalidades según la necesidad particular delproyecto en que desee utilizarse.

25 http://www-sop.inria.fr/mascotte/mascopt/26 http://geotools.codehaus.org/

Page 27: Tesis Malbran-Trouillet

3. Relevamiento de Herramientas Existentes 27

Soporta un gran número de formatos en los que pueden destacarse Shape-File (SHP), Geographic Markup Language (GML), extensión Oracle para datosespaciales, objetos geográ�cos para PostgreSQL (PostGIS), entre otros.

Entre sus funcionalidades más importantes pueden apreciarse herramien-tas para manipulación topológica de datos geoespaciales, manipulación de ge-ometrías, transformación de coordenadas, un módulo de manejo de grafos, mane-jo de imágenes satelitales, módulos de representación grá�ca de datos, y muchosmás.

Originalmente fue desarrollado como parte de un proyecto Master en la Uni-versidad de Leeds, Inglaterra. Actualmente está liderado por un grupo de con-tribuyentes denominado el �Project Management Committee� (comité de ad-ministración de proyecto) y abierto a la contribución del público en general.

3.3.3. FreeTTS

FreeTTS 27es un sistema de síntesis de voz escrito por Speech IntegrationGroup de Sun Microsystems Laboratories, enteramente en el lenguaje de pro-gramación Java. Está basado en Flite28, un pequeño motor de síntesis de vozdesarrollado en la Universidad de Carnegie Mellon. Flite está derivado del sis-tema de síntesis de voz Festival29 desarrollado por la Universidad de Edimburgoy el proyecto FestVox 30 también de la Universidad de Carnegie Mellon.

Sus principales características incluyen:

Motor primario de síntesis de voz

Soporte de un número de voces en inglés

Soporte para importar voces tanto de FestVox como de MBROLA (sóloen inglés)

Soporte parcial para JSAPI 1.0 (Java Speech API 1.0)

Extensa documentación API

Varias aplicaciones de demostración

3.3.4. GDAL

GDAL 31 es una librería que provee funcionalidades para la lectura y escritu-ra de datos geoespaciales en un variado número de formatos de tipo RASTER32.Liberada bajo una licencia de código abierto estilo X/MIT (una licencia com-patible con GPL) por la OSGEO. Provee un modelo abstracto de datos paratodos los formatos aceptados entre ellos:

27 http://freetts.sourceforge.net/docs/index.php28 http://www.cmu�ite.org/29 http://www.cstr.ed.ac.uk/projects/festival/30 http://festvox.org/31 http://www.gdal.org/32 El modelo de SIG raster divide el espacio en celdas regulares donde cada una de ellas

representa un único valor

Page 28: Tesis Malbran-Trouillet

3. Relevamiento de Herramientas Existentes 28

Nombre largo CódigoArc/Info ASCII Grid AAIGridADRG/ARC Digitilized Raster Graphics (.gen/.thf) ADRGArc/Info Binary Grid (.adf) AIGMicrosoft Windows Device Independent Bitmap (.bmp) BMPNASA ELAS ELASGraphics Interchange Format (.gif) GIFTIFF / GeoTIFF (.tif) GTi�

También ofrece una variedad de utilidades de línea de comandos para trans-formación y procesamiento de datos. Se provee originalmente en C++ y ademásexisten adaptaciones para múltiples lenguajes (python, perl, java, ruby, C#),aunque muchas de éstas no se mantienen al día.

3.3.5. FDO (Feature Data Object)

FDO 33 es una API desarrollada para C++ y .Net para manipular, de�nir,y analizar datos geoespaciales, sin importar dónde están almacenados. Proveemodelos para soportar una amplia variedad de tipos de datos. Es libre, de códigoabierto (con licencia GPL) y multiplataforma (Windows, Linux). Su modular-ización y estructura permite extenderla tanto para aceptar nuevos formatoscomo para agregar nuevas funcionalidades.

3.3.6. OpenLayers

OpenLayers34 es una librería escrita en JavaScript de código abierto parala visualización de mapas en navegadores web. Provee una API para construiraplicaciones geográ�cas web similares a Google Maps y MSN Virtual Earth.

Entre las características principales encotramos:

Posibilidad de cargar datos desde diversas fuentes:

Web Map Service (WMS)

Google Maps

OpenStreetMap

Virtual Earth

Yahoo! Maps

MapServer

GeoServer

ka-Map

servidores World Wind

Soporte GeoRSS

Marcadores

Selección de capas

33 http://fdo.osgeo.org/34 http://www.openlayers.org/

Page 29: Tesis Malbran-Trouillet

3. Relevamiento de Herramientas Existentes 29

3.3.7. Conclusiones

Es notable la cantidad de material en desarrollo que existe en las áreas deinterés para este proyecto.

El reconocimiento de voz y la traducción de texto escrito a sonido dan cuentade una continua investigación y de un activo crecimiento. Sin embargo la natu-raleza intrínsecamente humana de estos procesos conlleva un grado de compleji-dad importante. Como consecuencia los proyectos que encaran esta problemáticase encuentran en un nivel medio a bajo de desarrollo (en el caso de las libreríasde distribución libre) y en general trabajan con un número reducido de idiomas.

En lo que respecta a la manipulación de información geográ�ca, tambiénexiste una variada oferta de librerías de libre distribución y en continuo de-sarrollo. Aunque la tendencia general se inclina a herramientas que facilitan lacreación de aplicaciones web, existen algunas librerías interesantes de propósitogeneral (GeoTools, FDO) y de libre distribución que permiten crear sistemas deinformación georeferenciada. En este sentido, la única desventaja es que si bienla oferta es amplia, existe una profunda escasez en lo que respecta a la docu-mentación de los proyectos y sus funcionalidades. Otro punto que vale la penamencionar es que, al tratarse de manipulación de información geoespacial, lasfuncionalidades ofrecidas por las librerías en general apuntan a maximizar lasposilibilidades de visualización de los datos y a la modi�cación de sus valores,más que a la representación abstracta de los mismos. Es claro que las funcional-idades de índole visual tendrán un caracter secundario en el desarrollo de estatesis, sin embargo, una representación abstracta de los datos cartográ�cos quese utilicen resultará fundamental para la programación de ciertos algoritmos(como por ejemplo, aquéllos relacionados a la búsqueda de caminos).

Existe también una amplia variedad de librerías que trabajan con grafos quepodrían ser de utilidad para el desarrollo de este proyecto y que son de libredisponibilidad.

3.4. Resultados

Debido a que el objetivo principal de este proyecto es generar un software (yno un dispositivo), se ha tomado la primer parte de este relevamiento como unejemplo a seguir en lo que re�ere a la forma en que se interactúa con la personadiscapacitada visual así como a las funcionalidades de asistencia de orientación.

Un denominador común en los dispositivos relevados, es la comunicación através de sonidos. En el caso óptimo, el usuario puede dar instrucciones a travésde la voz o de un teclado braille, y recibir resultados a través de una voz elec-trónica. En lo particular, todos los productos pretenden que esta comunicaciónsea lo más �uida posible, intentando que sea similar a la conversación humana.En pro de la consecución de tal objetivo, se decidió incorporar como parte delproyecto a la herramienta relevada MBROLA. Esta aplicación se presenta comola mejor opción en lo referido a transformación de texto a sonido. No sólo proce-sa texto en español sino también en inglés, francés, alemán y otros. Además esde libre distribución para usos no comerciales ni militares y puede utilizarsedentro de otros programas.

Como se mencionó anteriormente, será fundamental para el desarrollo deeste trabajo la manipulación de datos geoespaciales y la construcción de una

Page 30: Tesis Malbran-Trouillet

3. Relevamiento de Herramientas Existentes 30

Fig. 3.7: Tabla de comparación: Software GIS. Parte 1

Page 31: Tesis Malbran-Trouillet

3. Relevamiento de Herramientas Existentes 31

Fig. 3.8: Parte 2 (http://en.wikipedia.org/wiki/Comparison of GIS software)

Page 32: Tesis Malbran-Trouillet

3. Relevamiento de Herramientas Existentes 32

representación abstracta de los mismos. En la subsección de conclusiones delrelevamiento de librerías se destacó la gran variedad de oferta existente en todolo referente a librerías SIG. En Wikipedia, se encuentra una tabla de compara-ción entre gran parte de los productos pertenecientes a esta categoría. Esta tablapuede verse en las �guras 3.7 y 3.8 y brinda información acerca de la forma dedistribución (si son libres y si son de código abierto), los sistemas operativos enlos cuales funcionan, y accesibilidad via web. Atendiendo la necesidad primeroexpresada, el relevamiento, y la información de la tabla de comparación, se con-sideró la librería GeoTools como la más apta para conformar las bases del de-sarrollo propuesto. GeoTools ofrece tipos de datos abstractos (TADs) para unagran cantidad de fuentes de datos geográ�cos. Entre los TADs básicos que seofrecen, encontramos una variedad que permite trabajar tanto con datos rastercomo con datos vectoriales35 lo cual brinda la mayor amplitud a la espectativasde encontrar datos cartográ�cos de la ciudad en un formato que sea manipu-lable. Otro punto a favor reside en la existencia de una extensión de creacióny manipulación de grafos y redes. A pesar de que este paquete está en fase dedesarrollo, ya ofrece abstracciones para tales estructuras y una gran variedad defuncionalidades y facilidades como una implementación del algoritmo de búsque-da de caminos mínimos de Dijkstra[5]. Además, como la mayoria de la libreríasrelevadas, contiene módulos que facilitan la tarea de realizar representacionesgrá�cas.

La decisión de trabajar sobre esta librería también se fundamentó en el hechode que la misma está programada en Java. Trabajar con Java supone una seriede ventajas no menores:

Permite crear aplicaciones cuya funcionalidad no dependa de la plataformaen la que se ejecute (Linux, Windows, etc.)

Existe una versión para dispositivos móviles (celulares, PDAs y otros),denominada J2ME (Java 2 Micro Edition)

Es un lenguaje muy completo, robusto y en continua evolución

Permite crear aplicaciones tanto de escritorio como web

Extensa documentación.

3.5. Propuesta

Como se viene tratando a lo largo de este trabajo, se plantea la contrucciónde una herramienta que ponga a diponibilidad de las personas discapacitadasvisuales, la información cartográ�ca de la ciudad de Córdoba. Así mismo, sepropone que este producto brinde asistencia en todo aquello que re�era a laorientación dentro de la ciudad.

Especí�camente, se intenta crear una aplicación tal que:

Permita ingresar una dirección de la ciudad y recibir información al re-specto,

35 En un SIG, las características geográ�cas pueden ser representadas por vectores, expresán-dolas con diferentes tipos de geometrías (puntos, líneas y polígonos). Se utiliza además unabase de datos para describir sus atributos.

Page 33: Tesis Malbran-Trouillet

3. Relevamiento de Herramientas Existentes 33

Fig. 3.9: Diagrama de la estructura de módulos de GeoTools. Descripción deextensiones. (http://docs.codehaus.org/display/GEOTDOC/Home)

Permita ingresar dos direcciones diferentes y recibir información acercadel camino más corto entre ambas,

Posea una interfaz desarrollada especí�camente teniendo en cuenta laproblemática abarcada,

Los resultados de cualquier consulta sean expreasados en forma de:

• Sonido: Un archivo de sonido que se pueda reproducir, detener, retro-ceder, y avanzar desde la interfaz. así como guardar para reproduciren otros programas/dispositivos (por ejemplo, un reproductor deMP3)

• Texto: Texto plano para facilitar la utilización de impresoras braille(los archivos de texto con formato introducen codi�caciones que puedencausar incompatibilidades)

• Imagen: Un mapa con colores especiales y un tamaño adecuado paraque pueda ser intepretado por personas con baja visión.

Sea utilizable tanto en computadoras de escritorio como en dispositivosmoóviles (celulares, PDA's, y tantos como sea posible)

Sea sotware libre, fomentando así la participación de la comunidad en suevolución y con espectativas de generar tanta retroalimentación como seaposible para lograr el programa que mejor se adapte a las necesidades delos usuarios.

Page 34: Tesis Malbran-Trouillet

3. Relevamiento de Herramientas Existentes 34

Básicamente, la funcionalidad principal de la aplicación será la de dar in-strucciones sobre cómo llegar de un punto a otro de la ciudad. Se espera que elusuario ingrese una dirección de orígen y una de destino y reciba informacióndetallada sobre el cómo transitar el camino que las une. El programa presentaráresultados tales como:

�1. Suba por la calle X1 unos 50 metros�.

�2. Cruce la calle X2 y continue por la calle X1 unos 75 metros�.

�3. Doble en diagonal a la derecha por la calle X3 unos 40 metros�.

�4. Ha llegado a destino�.

Page 35: Tesis Malbran-Trouillet

4. Especi�cación y Diseño

En este capítulo se mostrará la especi�cación del grafo que representa laciudad, realizada en el lenguaje para especi�caciones Z. También se expondráel diseño de las partes que se consideran importantes en la estructura de laaplicación, a través del lenguaje TDN (Textual Desing Notation), desarrolladopor Carlo Ghezzi [7].

4.1. Especi�cación Z

Esta fue elaborada gradualmente; primero se realizó una especi�cación deun grafo simple, que sólo contine vértices y aristas (los primeros representanlas esquinas y los últimos las cuadras en la ciudad), y se de�nió el concepto decamino y operaciones para agregar y quitar componentes. En un paso posteriorse agregó costo en la aristas; luego se añadió nombres a las calles y numeraciones.Por último, se tuvo en cuenta la georeferencia de las partes del grafo.

En cada etapa se extendieron las operaciones de�nidas en pasos anteriores,para que contemplaran los cambios agregados; además se introdujeron algunosinvariantes y operaciones que surgieron por la ampliación del estado.

4.1.1. Grafo simple de la ciudad

Se de�nen los tipos básicos ARISTA y VERTICE

[ARISTA,VERTICE ]

Como toda arista está intrínsecamente relacionada a dos vértices, creamosuna abreviación de tipos genérica que dado un tipo representa al conjunto quecontiene todos los conjuntos de dos elementos de ese tipo.

D X == {s ∈ PX | #s = 2}

El siguiente esquema representará nuestro estado básico. La ciudad es ungrafo formado por cuadras (aristas que representan calles), esquinas (los ex-tremos de las cuadras) y una función que relaciona esas cuadras con sus es-quinas.

CIUDADcuadras : FARISTAesquinas : FVERTICEvs : cuadras → D VERTICE

esquinas =⋃

ran vs

Page 36: Tesis Malbran-Trouillet

4. Especi�cación y Diseño 36

Será importante determinar cuándo una secuencia de cuadras de la ciudadse considera un camino. Para eso se realiza el siguiente esquema que representatodos los posibles caminos de la ciudad desde v a w .

Camino EsquinasCIUDADc : seq cuadrase : seq esquinasv ,w : esquinas

e 6= 〈〉

v = head(e); w = last(e)

∀ i : 1 . . #c • vs(c(i)) = {e(i), e(i + 1)}

A continuación se de�ne un esquema que dice que c es un camino que unev con w , luego el conjunto de tales caminos, y �nalmente el conjunto de todoslos caminos (entre todo par de esquinas):

Camino =̂ Camino Esquinas \ ecamino == {Camino • c}caminos ==

⋃{Camino • camino}

La propiedad fundamental que debe conservarse en el grafo que representanuestra ciudad, es que sea conexo. El predicado del siguiente esquema, expresaque dado dos nodos cualesquiera de la ciudad, se puede establecer un caminoque los una.

CONEXOCIUDAD

∀ v ,w : esquinas • camino 6= ∅

La forma básica de modi�car el grafo será agregando y quitando vértices delmismo. Para agregar un vértice, tomamos una cuadra y la dividimos en dos.Esto se representa en nuestra estructura quitando una cuadra y reemplazandolapor dos cuadras nuevas (en realidad, sólo una necesita ser nueva, la otra podríaser la propia cuadra que se quita) que tienen un vértice en común (una nuevaesquina) y cuyos vértices no comunes sean los vértices de la arista original.

Page 37: Tesis Malbran-Trouillet

4. Especi�cación y Diseño 37

AgregarVerticeOk∆CIUDADv : VERTICEa, b : ARISTAc? : cuadras

(a 6∈ cuadras ∨ b 6∈ cuadras) ∧ v 6∈ esquinas

cuadras ′ = (cuadras \ {c?}) ∪ {a, b}

esquinas ′ = esquinas ∪ {v}

vs ′ a ∩ vs ′ b = {v}

(vs ′ a ∪ vs ′ b) \ {v} = vs c?

∀ d : cuadras | d 6= c? • vs ′ d = vs d

AgregarVerticeErrorΞCIUDADc? : ARISTA

c? 6∈ cuadras;

Para agregar un vértice no importa cuáles sean los vertices y aristas nuevos

AgregarVertice =̂ AgregarVerticeOk \ (a, b, v) ∨AgregarVerticeError

La operación análoga sería la de quitar un vértice. Esto se representará através de la unión de aristas adyacentes. Para unir dos aristas del grafo necesi-tamos que sean aristas diferentes, que tengan un único vértice en común y queno haya otras aristas que contengan a ese vértice como una de sus esquinas. Launión de estas aristas resulta en una nueva arista cuyos vértices son los vérticesno comunes de las aristas originales.

QuitarVerticeOk∆CIUDADv? : esquinasc, d : cuadrasa : ARISTA

#{b : cuadras | v? ∈ vs b} = 2

vs c ∩ vs d = {v?}

cuadras ′ = (cuadras \ {c, d}) ∪ {a}

esquinas ′ = esquinas \ {v?}

vs ′ = ({c, d} −C vs) ∪ {a 7→ (vs c ∪ vs d) \ {v?}}

QuitarVerticeErrorΞCIUDADv? : VERTICE

v? 6∈ esquinas ∨ #{b : cuadras | v? ∈ vs b} 6= 2

Page 38: Tesis Malbran-Trouillet

4. Especi�cación y Diseño 38

QuitarVertice =̂ QuitarVerticeOk \ (c, d , a) ∨ QuitarVerticeError

4.1.2. Con Costo para las aristas

Ahora queremos que nuestras cuadras tengan asociadas un costo. Este costorepresentará la longitud de las mismas, permitiéndonos encontrar los caminosóptimos dentro de la ciudad.

COSTO == N

Nuestro esquema básico de ciudad cambia entonces ligeramente, agregándoseal mismo la función que relaciona cuadras con costos.

CIUDAD CCIUDADcosto : cuadras → COSTO

Para determinar el costo de un camino se de�ne el siguiente esquema querelaciona cada camino con su costo correspondiente. A posteriori se de�ne elconjunto de todos los pares (camino, costo del camino).

CostoCaminoCIUDAD Cc : caminosvalor : COSTO

valor =∑#c−1

i=0 costo(c(i))

costo camino == {CostoCamino • c 7→ valor}

A partir de estas de�niciones podemos entonces de�nir el conjunto de caminosóptimos de un nodo a otro de la ciudad.

CaminoMinCIUDAD Cv ,w : esquinasc : camino

∀ d : camino • costo camino c ≤ costo camino d

caminoMin == {CaminoMin • c}

EncontrarCaminoMinimoCIUDAD Cv1?, v2? : esquinasc! : caminoMin

v1? = v ∧ v2? = w

Page 39: Tesis Malbran-Trouillet

4. Especi�cación y Diseño 39

Ahora necesitamos expandir la función AgregarVertice de�nida en la secciónanterior. Para ello debemos tener en cuenta los costos de las aristas que vamosa agregar.

AgregarVerticeOk C∆CIUDAD CAgregarVerticeOkj , k : N

costo c? = j + k

costo′ = ({c?} −C costo) ∪ {(a, j ), (b, k)}

AgregarVerticeError C =̂ [ΞCIUDAD C ; AgregarVerticeError ]

AgregarVertice C =̂ AgregarVerticeOk C \ (a, b, v , j , k)∨ AgregarVerticeError C

Análogamente, expandimos la función QuitarVertice de manera que la aristaresultante de la unión tenga un costo igual a la suma de los costos de las aristasoriginales.

QuitarVerticeOk C∆CIUDAD CQuitarVerticeOk

costo′ = ({c, d} −C costo) ∪ {(a, costo c + costo d)}

QuitarVerticeError C =̂ [ΞCIUDAD C ; QuitarVerticeError ]

QuitarVertice C =̂ QuitarVerticeOk C \ (a, c, d)∨ QuitarVerticeError C

4.1.3. Con nombre para las calles

Agregaremos ahora al proyecto el tipo CALLE, que representará los nombresde las calles de la ciudad.

[CALLE ]

Por lo tanto se agregará al esquema básico una función que relacione lascuadras de nuestra ciudad con su nombre de calle correspondiente.

CIUDAD NCIUDAD Ccalle : cuadras → CALLE

Para expandir la función AgregarVertice C sólo bastará decir que las dosnuevas aristas deberán tener el nombre de calle de la arista original.

Page 40: Tesis Malbran-Trouillet

4. Especi�cación y Diseño 40

AgregarVerticeOk N∆CIUDAD NAgregarVerticeOk C

calle ′ = ({c?} −C calle) ∪ {(a, calle c?), (b, calle c?)}

AgregarVerticeError N =̂ [ΞCIUDAD N ; AgregarVerticeError C ]

AgregarVertice N =̂ AgregarVerticeOk N \ (a, b, v , j , k)∨ AgregarVerticeError N

También expandimos la operación QuitarVertice C de manera trivial.

QuitarVerticeOk N∆CIUDAD NQuitarVertceOk C

calle c = calle d

calle ′ = ({c, d} −C calle) ∪ {(a, calle c)}

QuitarVerticeCalleErrorΞCIUDAD Nv? : VERTICEc, d : cuadras

vs c ∩ vs d = {v?}

calle c 6= calle d

QuitarVerticeError N =̂ [ΞCIUDAD N ; QuitarVerticeError C ]∨ QuitarVerticeCalleError \ (c, d)

QuitarVertice N =̂ QuitarVerticeOk N \ (a, c, d)∨ QuitarVerticeError N

4.1.4. Con numeración para las calles

Para tener en cuenta la numeración de las calles agregaremos a nuestroesquema básico una función que tome un par (nombre calle,numeración), y nosdevuelva la cuadra correspondiente a tal dirección si es que existe tal cuadra.

CIUDAD ACIUDAD Ndirs : CALLE × N 7→ cuadras

Ahora que nuestro esquema considera nombres de calles y numeración delas mismas, se modi�ca ligeramente la operación AgregarVertice que pasará atomar un nombre de calle y una dirección como parámetros para colocar el

Page 41: Tesis Malbran-Trouillet

4. Especi�cación y Diseño 41

nuevo vértice justamente en ese lugar. También por el hecho de conocer lasnumeraciones de una calle, podemos hacernos una idea más especí�ca de cuálserá el costo que deberán tener las cuadras nuevas. El costo de la arista a dividirse repartirá de manera proporcional según la cantidad de direcciones que tengacada cuadra nueva.

AgregarVerticeOk A∆CIUDAD AAgregarVerticeOk N [c/c?]calle? : CALLEd? : NA,B : P(CALLE × N×ARISTA)

(calle?, d?) ∈ dom dirs

c = dirs(calle?, d?)

A = {(l ,n) ∈ dom dirs | dirs(l ,n) = c ∧ n ≤ d? • (l ,n) 7→ a}

B = {(l ,n) ∈ dom dirs | dirs(l ,n) = c ∧ n > d? • (l ,n) 7→ b}

dirs ′ = (dirs −B {c}) ∪A ∪ B

j = (costo c ∗#A) div (#A + #B)

k = costo(c)− j

El error de la operación pasará a de�nirse de una manera sutilmente distinta,pero seguirá siendo esencialmente el mismo. Si la calle y numeración que bus-camos no representa ninguna cuadra, entonces no podemos agregar un vérticenuevo.

AgregarVerticeError AΞCIUDAD Acalle? : CALLEd? : N

(calle?, d?) /∈ dom dirs

AgregarVertice A =̂ AgregarVerticeOk A \ (a, b, j , k ,A,B)∨ AgregarVerticeError A

La operación de quitar vértice simplemente restituirá la función dirs, aso-ciando a la arista de resultado las direcciones de las aristas a unir.

QuitarVerticeOk A∆CIUDAD AQuitarVerticeOk N

dirs ′ = (dirs −B {c, d}) ∪ {(l ,n) ∈ dom dirs | dirs(l ,n) = c∨ dirs(l ,n) = d • (l ,n) 7→ a}

QuitarVerticeError A =̂ [ΞCIUDAD A; QuitarVerticeError N ]

Page 42: Tesis Malbran-Trouillet

4. Especi�cación y Diseño 42

QuitarVertice A =̂ QuitarVerticeOk A \ (c, d , a)∨ QuitarVerticeError A

La operación que encuentra el camino mínimo entre dos esquinas se expandede manera trivial, ya que no modi�ca el estado.

EncontrarCaminoMinimo A =̂[ΞCIUDAD A; EncontrarCaminoMinimo]

La siguiente operación es la encargada de realizar todo el proceso que implicauna petición de encontrar el camino óptimo entre dos direcciones. Este procesoradica esencialmente en:

Pedir dos direcciones (calles y alturas)

Agregar dos vértices en los lugares correspondientes

Buscar un camino mínimo entre los dos nuevos vértices

Devolver el camino

Restituir las aristas que fueron divididas cuando se agregaron los vérticesnuevos a �nes de dejar el grafo de la ciudad en su estado original

Utilizamos las herramientas de Z de composición, pipe y renombre para re-utilizar las operaciones hasta aquí desarrolladas y simpli�car la lectura de laespeci�cación.

CaminoOptimo =̂( AgregarVertice A [calle1?/calle?; d1?/d?; v1!/v ]o9 AgregarVertice A [calle2?/calle?; d2?/d?; v2!/v ] )>> ([EncontrarCaminoMinimo A; v1!, v2! : VERTICE

| v1? = v1! ∧ v2? = v2!])>> ( QuitarVertice A[v1?/v?] o

9 QuitarVertice A[v2?/v?] )

4.1.5. Con georeferencias

Para poder hablar de coordenadas vamos a suponer que Z puede traba-jar con números racionales (Q) y que las operaciones matemáticas que incluyepueden trabajar con este conjunto de datos. Dado que la inclusión de la car-acterística de la georeferencia no implica grandes cambios en la especi�caciónni una complejidad muy elevada en su desarrollo, consideramos fútil el realizaruna especi�cación de los números racionales y sus operaciones (una extensióninnecesaria que no agrega ningún valor al entendimiento de la funcionalidad).

De�nimos entonces el tipo COORD que representará a una coordenada carte-siana, como un par de números racionales.

COORD == Q×Q

Al esquema básico de la ciudad agregamos dos funciones: una que relacionaesquinas con coordenadas, y otra que relaciona direcciones (calle, número) concoordenadas.

Page 43: Tesis Malbran-Trouillet

4. Especi�cación y Diseño 43

CIUDAD GCIUDAD Aposesq : esquinas � COORDposdir : calles × N→ COORD

El invariante que surge a través de la consideración de las georeferencias,tiene básicamente dos aspectos:

1. Que el dominio de la función dirs sea el mismo que el de posdir (existeuna coordenada para cada dirección)

2. Que si una coordenada (x,y) está asociada a una dirección de una de-terminada cuadra, entonces ésta se encuentra situada sobre el segmentodeterminado por las esquinas de la cuadra recién referenciada

Queda parte del invariante implícita en el hecho de que la función posesq sea unafunción total e inyectiva. Esto nos dice que no puede suceder que dos esquinastengan la misma coordenada asociada.

EnMedio(x , y), (x1, y1), (x2, y2) : COORD

((x1 ≤ x ≤ x2) ∨ (x2 ≤ x ≤ x1))

((y1 ≤ y ≤ y2) ∨ (y2 ≤ y ≤ y1))y−y1x−x1 = y1−y2

x1−x2

enMedio == {EnMedio • ((x , y), (x1, y1), (x2, y2))}

Posiciones CorrectasCIUDAD G

dom posdir = dom dirs

∀(l ,n) ∈ dom dirs •let{e1, e2} = vs(dirs(l ,n)) •

enMedio(posdir(l ,n), posesq e1, posesq e2)

Las expansiones de las operaciones de agregar vértice y quitar vértice sonsimples: la función posdir nunca se modi�ca, ya que en ningún momento seagregan o quitan direcciones. Por lo tanto sólo nos queda modi�car posesq yaque varía su dominio a medida que se agregan o quitan esquinas.

AgregarVerticeOk G∆CIUDAD GAgregarVerticeOk A

posesq ′ = posesq ∪ {v 7→ posdir(calle?, d?)}

posdir ′ = posdir

Page 44: Tesis Malbran-Trouillet

4. Especi�cación y Diseño 44

AgregarVerticeError G =̂ [ΞCIUDAD G ; AgregarVerticeError A]

AgregarVertice G =̂ AgregarVerticeOk G \ (a, b, j , k ,A,B)∨ AgregarVerticeError G

QuitarVerticeOk G∆CIUDAD GQuitarVerticeOk A

let{v1, v2} = (vs c ∪ vs d) \ {v?} •enMedio(posesq v?, posesq v1, posesq v2)

posesq ′ = {v?} −C posesq

posdir ′ = posdir

QuitarVerticeErrorSegmento G∆CIUDAD Gv? : esquinas

let{v1, v2} = (vs c ∪ vs d) \ {v?} •¬ enMedio(posesq v?, posesq v1, posesq v2)

QuitarVerticeError G =̂ [ΞCIUDAD G ; QuitarVerticeError A]

QuitarVertice G =̂ QuitarVerticeOk G \ (c, d , a)∨ QuitarVerticeError G∨ QuitarVerticeErrorSegmento G

4.2. Diseño de la aplicación

Para el desarrollo del diseño se tuvieron en cuenta propiedades fundamen-tales que la implementación debería mantener. Entre estas se destacaban lapreservación de la integridad y protección de los datos y la aspiración de ejecu-tar la herramienta en dispositivos móviles.

Teniendo en cuenta estas características, se consideró que la arquitecturacliente-servidor era una buena opción para el desarrollo del proyecto. Esta ofrecíala posibilidad de mantener los datos en el servidor, resguardándolos del acce-so directo por parte de los clientes, logrando así su protección y preservación.Por otro lado, como los dispositivos móviles cuentan con poca capacidad, concliente-servidor, el mayor costo de procesamiento y memoria se podría colocaren el servidor, con lo cual, el cliente (interfaz) sería su�cientemente liviano paraejecutarse en este tipo de dispositivos.

4.2.1. Descripción del diseño

El servidor es el encargado de mantener el grafo que representa a la ciudad,proveer las operaciones de búsqueda de caminos y consulta de direcciones, man-tener los clientes conectados, administrar sus consultas y generar los resultados

Page 45: Tesis Malbran-Trouillet

4. Especi�cación y Diseño 45

Fig. 4.1: Diagrama de módulos del Servidor

deseados. El cliente por otra parte, es el encargado de interactuar con los usuar-ios, es la interfaz que permite a los mismos realizar las consultas y conocer losresultados.

El servidor está constituido básicamente de tres partes; La encargada dematener el grafo de la ciudad y proveer las operaciones de consulta (Nomen-clador), la que manteniene las conexiones, interactua con los clientes y admin-istra la cola de sus peticiones (Conexiones)y por último la que genera los resul-tados en los formatos deseados (Resultados).

El cliente está formado por dos partes, la que intractua con el servidor,realizando peticiones y recibiendo los resultados correspondientes; y la interfazque interactua con el usuario, que se encarga de permitir al mismo ingresar susconsultas y conocer las respuestas.

4.2.2. Descripción del diseño en TDN

Nomenclador

Nomenclador es el encargado de mantener el grafo de la ciudad, el móduloCiudad provee los métodos para realizar las consultas disponibles; e interna-mente tiene las operaciones de agregar y quitar vértices. El módulo ArmaGrafoes el encargado de armar el grafo a partir del archivo que contiene los datos dela ciudad.

Page 46: Tesis Malbran-Trouillet

4. Especi�cación y Diseño 46

module Ciudaduses ArmaGrafoexports method Ciudad(dirArchivo: in String)

raises ArmaGrafoFalloException;Arma el grafo que representa a la ciudad a partir delarchivo apuntado por dirArchivo.method existeDiereccion(nom calle: in String,

num: in int): LinkedList;Consulta en el grafo por la existencia de unadirección.method CaminoMinimo(IDArista1: in int,

num1: in int,IDArista2: in int,num2: in int): Pathraise Exception;

Consulta en el grafo el camino mínimo entrelas direcciones dadas por IDArista1,num1 yIDArista2,num2 y devuelve el camino.

implementation ArmaGrafoFalloException es lanzada antecualquier inconveniente al tratar de armarel grafo.

end Ciudad

module ArmaGrafoexports method ArmaGrafo(dirArchivo: in String): Graph

raises Exception;Arma un grafo a partir del archivo apuntado pordirArchivo, este debe ser un tipo de archivo aceptado.

end ArmaGrafo

Resultados

Este paquete tiene los módulos que son utilizados para generar los resultadosque se envían a los clientes. Estos son texto, archivo de sonido e imagen.

module PathATextoexports method PathATexto (camino: in Path);

method ultimasInstrucciones(): String;Devuelve las últimas instrucciones generadas.method setPath(p : in Path);method getPath():Path;method darInstrucciones(): String;Crea y devuelve instrucciones asociadas al camino.

end PathATexto

module ShapeAPngexports method ShapeAPng (s : in Shape�leDataStore)

raise IOException;Crea a partir de un ShapeFileDataStore un Png.

end ShapeAPng

Page 47: Tesis Malbran-Trouillet

4. Especi�cación y Diseño 47

module TextoASonidoexports method TextoASonido();

method asignarTexto(texto: in String);method ASonido(): File raise IOException;Devuelve un archivo de sonido creado a partir del textoingresado en el método asignarTexto.method borrarArchivos();Borra los archivos temporales creados durante latraducción a sonido.

end TextoASonido

module PathAShapeexports method PathAShape(p: in Path);

method PathAShape();Constructores de la clase.method setPath(p: in Path);method getPath(): Path;method getShape(): ShapeFileDataStore;Devuelve el ShapeFileDataStore que contiene el pathingresado en el método setPath o seteado en elconstructor.

end PathAShape

Conexiones

Los siguientes modulos administran las conexiones de los clientes y manejalos pedidos de los mismos.

module ConexionClientePcextends Java.Threadexports method ConexionClientePc(conexion: in Socket,

colap: in ColaPeticiones)raise IOException;

Constructor de la clase.method run();Método para poner a correr el hilo.

end ConexionClientePc

El modulo ConexionClienteMovil, tiene los mismos dos métodos que el ante-rior, es el encargado de mantener la conexión de clientes de dispositivos moviles.Estos se diferencian internamente en los servicios prestados y en la forma demantener la comunicación. Los dispositivos moviles, por ejemplo, no reciben laimagen de los resultados, además la forma de intercambio de datos varia míni-mamente, por lo que en algunos casos la comuniocación es ligeramente distintaa la de clientes Pc.

Page 48: Tesis Malbran-Trouillet

4. Especi�cación y Diseño 48

module ColaPeticionesuses Peticionexports method ColaPeticiones();

Constructor de la clase.method encolarPeticion(p: in Peticion);Este método se encarga de encolar la petición p.method obtenerPrimera(): Peticion;Devuelve la primer petición de la cola.method peticionesEncoladas(): Boolean;Devuelve verdadero si hay peticiones encoladas.

end ColaPeticiones

module AdministradorPeticionesuses ColaPeticiones, Ciudadextends Java.Threadexports method AdministradorPeticiones(c: in Ciudad,

cp: in ColaPeticiones);Constructor de la clase.method run();Método que pone a corre el hilo.

implementation Mientras haya peticiones encoladas, se tomala primera y se la atiende en la ciudad, luegose informa que la petición fue atendida.

end AdministradorPeticiones

Page 49: Tesis Malbran-Trouillet

5. Implementación

A la hora de determinar el lenguaje de programación en el cual se iba a de-sarrollar la aplicación, se tuvieron en cuenta algunas cualidades deseadas de lamisma. Entre éstas se destacan la necesidad de que la aplicación esté bajo unaarquitectura cliente servidor (como se vió en el capítulo anterior), la posibilidadde realizar clientes para diversas plataformas (como es el caso de dispositivosmóviles) y la facultad de trabajar con sonido. En el caso del servidor, que uti-lizaría la librería GeoTools, elegida para el manejo de los datos geográ�cos ybúsqueda de caminos, se consideró que Java además de cubrir apropiadamentelas características deseadas, facilitaría la interacción con dicha librería. Por ellado de los clientes, se tuvo en cuenta el hecho de que se quería realizar una in-terfaz para dispositivos móviles, lo cual también ofrecía a Java como una buenaopción, además su uso podría evitar posibles problemas de comunicación. Porello, tanto el Servidor como los clientes se desarrollaron en Java. En el presentecapítulo, se comentarán las opciones disponibles para la comunicación cliente-servidor que se analizaron con el lenguaje Java, la justi�cación de la opciónelegida, una breve descripción de la misma y por último se mencionarán lasimplementaciones de los clientes y del servidor.

5.1. Comunicación Cliente-Servidor

Se analizarán las siguientes alternativas que se tienen en el lenguaje Javapara realizar la comunicación:

Comunicación a través de Sockets

Servidor web

Computación Distribuida

• Remote Method Invocation (RMI)

• Common Object Request Broker Architecture (CORBA)

5.1.1. Sockets

Un socket es un punto de comunicación entre procesos (posiblemente cor-riendo en diferentes máquinas), compuesto de un protocolo, una dirección IP yun número de puerto. Los protocolos más usados en la comunicación de socketson TCP y UDP. La diferencia entre ambos, es que los que usan TCP (tambiénconocidos como sockets de �ujo), mantienen una conexión, garantizan que elenvío de datos sea libre de pérdida de información y errores de transmisión yque se respete el orden en el cual fueron mandados los mismos; mientras que losque usan UDP (conocidos como sockets de datagrama), no mantienen conexión

Page 50: Tesis Malbran-Trouillet

5. Implementación 50

y no aseguran la llegada de los datos, ni el orden en el cual llegan. Éstos últi-mos tienen un mejor rendimiento de velocidad, debido a la falta de controles desecuencia y de errores.

Java provee por medio de la clase java.net los dos tipos de sockets:

Socket: Socket de �ujo, orientado a conexión, la cual permanece activaincluso aunque no haya transferencia de datos, hasta que se realice ex-plícitamente una desconexión. La comunicación se realiza a través de los�ujos de entrada y salida asociados al socket.[11]

DatagramSocket: Trabaja con un protocolo sin conexión, mediante latransferencia de datagramas, y no se asegura la llegada y el orden delos datos.[11]

5.1.2. Servidor web

Un servidor web está a la espera de peticiones HTTP1 llevadas a cabo porun cliente HTTP, conocido como navegador web. El cliente HTTP, efectúa unapetición al servidor, éste la procesa y devuelve los resultados correspondientes;éstos son generalmente documentos HTML (HyperText Markup Language),pero también pueden ser archivos de sonidos, imágenes o algún otro tipo dedocumento.[12]

El navegador web es el encargado de interpretar lo recibido desde el servidory mostrarlo en la máquina del cliente. En el caso de HTML, es el que se encargade mostrar los distintos tipos de letras, colores y disposiciones del texto en lapágina.

Existen dos posibilidades a la hora de ejecutar un pedido. Una es que elservidor realice el trabajo, generando código HTML con el resultado y envián-dolo al cliente. La otra opción es la ejecución de aplicaciones en la máquinadel cliente (aplicaciones Java, javascript, etc.), es decir que el servidor genere elcódigo de la aplicación, lo envíe y el navegador se encargue de la ejecución. Lasdesventajas de la segunda son que se sobrecarga al cliente, y que este debe estarpreparado para poder ejecutar este tipo de aplicaciones.

5.1.3. Computación Distribuida

La computación distribuida es una forma de procesamiento en la cual lasdiferentes partes de un programa corren simultáneamente en dos o más com-putadoras conectadas entre sí. El objetivo principal de la misma es lograr pro-gramas abiertos, escalables y transparentes. [13]

Una de sus ventajas es que pueden realizarse tareas que serían muy costosas,o imposibles de realizar por un solo ordenador, fragmentando el trabajo enmuchas partes. Entre las desventajas encontramos la di�cultad en el diagnósticoy seguimiento de fallas y en realizar un buen diseño para lograr una división detareas e�ciente y efectiva.

Una manera de implementar en java computación distribuida es medianteJava RMI. Éste nos ofrece la posibilidad de ejecutar métodos de objetos alma-cenados en computadoras remotas de manera similar a como se ejecutarían si

1 HTTP (hypertext transfer protocol): protocolo que sigue un esquema de petición-respuesta, entre un cliente y un servidor, y no guarda estado de conexión.

Page 51: Tesis Malbran-Trouillet

5. Implementación 51

fueran locales, manteniendo así la naturaleza de la programación orientada aobjetos. Una ventaja de este modelo es que la sintaxis para hacer este tipo dellamadas es similar a la sintaxis para realizar llamadas locales, lo cual hace quesea sencillo de aprender para los programadores. Una alternativa para RMI esCommon Object Request Broker Architecture (CORBA), que al ser independi-ente del lenguaje, brinda la posibilidad de comunicación entre un cliente y unservidor programados en diferentes lenguajes. Sin embargo, también introducedi�cultades a la hora de la programación. [11] En un sentido general CORBAenvuelve un objeto en un paquete que contiene información sobre las capaci-dades del mismo y sobre cómo llamar a sus métodos. Los objetos que resultanpueden entonces ser invocados desde otro programa (u objeto CORBA) desdela red. [14]

5.1.4. Comunicación Cliente-Servidor del proyecto

Considerando las características del desarrollo a realizar observamos quevalerse del enfoque de la programación distribuida para implementar una arqui-tectura cliente-servidos obligaría a abordar problemas de difícil solución. Unode ellos es la protección de los datos. En efecto, al accederse en forma remotaa los propios objetos que contiene los datos, su obtención sería simple (de he-cho la misma librería GeoTools proporciona los métodos necesarios para ello).Otro problema que surge es que se introducen di�cultades a la hora de la cod-i�cación de la aplicación. También existen algunas restricciones, en el caso quese utilizara la API RMI, provista en Java, se obligaría a programar los clientesen dicho lenguaje, mientras que si se utilizara CORBA, se tendía una mayorlibertad, pero seguirían existiendo limitaciones en los lenguajes disponibles.

Por otro lado, la implementación usando servidor web, tiene restricciones ala hora de proporcionar facilidades para el usuario. Es importante mencionarque en la actualidad hay disponibles herramientas para generar interfaces webpotentes, como son el uso de JavaScript, �ash, ajax, etc.; pero la codi�cación setorna más compleja, por diversos factores, como por ejemplo, la incompatibilidadexistente entre los distintos browsers; Además las velocidades dismunuyen, yaque, no sólo se utiliza la conexión para obtener resultados, sino que tambiénpara obtener cambios en la interfaz, es decir, el intercambio de informaciónentre cliente y servidor es mayor.

Por ello, se pre�rió implementar la arquitectura cleinte-servidor utilizandoel enfoque de comunicación a través de sockets TCP. Se optó por TCP y noUDP, ya que estos últimos se pre�eren cuando la perdida de información noes relevante y lo que se busca es una mejor performance. En nuestro caso, esnecesario que se asegure la llegada total de la información. El hecho de codi�carcon sockets UDP introduciría complejidad a la codi�cación del protocolo decomunicación, se debería realizar un control de envío de datos, el cual haríaincrementar la comunicación entre las partes y bajaría el rendimiento. De estemodo no se estaría obteniendo ventaja alguna, es decir, se estaría construyendosockets TCP mediante el uso de sockets UDP.

Los sockets TCP proporcionan la seguridad necesaria para la protección delos datos, ya que la información no es manipulada por los clientes, sino que estosemiten un pedido y luego reciben los resultados. Además ofrecen la posibilidadde codi�car clientes y servidores con lenguajes distintos. Por último, permitentener interfaces de escritorio potentes y no se descarta la posibilidad de con-

Page 52: Tesis Malbran-Trouillet

5. Implementación 52

Fig. 5.1: Diagrama de la comunicación Cliente-Servidor

struir interfaces web, ya sea, ampliando el servidor, para que interprete HTTPo construyendo una aplicación que conecte un servidor web con el servidor dedatos geográ�cos.

Descripción del protocolo de comunicación

El protocolo desarrollado es orientado a conexión, es decir, una vez que elcliente se conecta al servidor, puede realizar consultas sobre caminos mínimos opedir informacón sobre direcciones, hasta que se efectúe una desconexión. A par-tir de ese momento las partes están incomunicadas. Para lograr la desconexión,el cliente emite un mensaje especial para tal �n.

Durante la conexión el servidor está a la espera de una petición de búsquedade camino o información de dirección, el cliente le informa qué tipo de consultadesea realizar, y el servidor se encarga de pedir los datos necesarios para talconsulta. El intercambio de información se realiza de manera intercalada, esdecir, el servidor solicita un dato, el cliente lo envía, y luego, de ser necesario,pide datos adicionales. Por ejemplo, como se ve en la �gura 5.1.4, en el casode consulta de dirección, el cliente emite �consultaDir� (para avisar que deseainformación sobre una dirección) y queda a la espera de la solicitud de los datos;el servidor, una vez procesada la petición, transmite el mensaje �direccion� yaguarda a que se emita la direccion. El cliente, luego de contestar, queda a laespera del resultado, mientras que el servidor, realiza la consulta en el grafo dela ciudad, para una vez obtenida la respuesta, transmitirla. Una vez �nalizadaesta conversación, el servidor vuelve a la espera de una consulta o solicitud dedesconexión.

Para la consulta de camino mínimo, el servidor pide dos direcciones, el pro-cedimiento es similar, salvo que luego de pedir cada dirección, se corrobora siexiste y es única. Por ejemplo, si el cliente transmite como dirección �Juan 200�,existen varias calles en la ciudad de Córdoba que contienen ese nombre y altura;En tal caso el servidor manda una lista con opciones, para que desde el clientese seleccione alguna. Por otro lado, si no existen coincidencias con los datosrecibidos, se informa al cliente, para que éste envíe nueva información. Cuandoambas direcciones son aceptadas, es decir, existen únicas direcciones que corre-spondan a los datos enviados, el servidor realiza la búsqueda de camino mínimo,

Page 53: Tesis Malbran-Trouillet

5. Implementación 53

para posteriormente transmitir los resultados.

5.2. Servidor

El servidor fue programado en el lenguaje Java, se utilizarón las libreríasestandar del lenguaje y la librería GeoTools, para el manejo de la informacióngeográ�ca. Además se utilizó un scrip en Perl y el sintetizador de voz MBROLA.La funcionalidad principal del Servidor, es la de recibir conexiones de clientesremotos y contestar sus consultas de camino mínimo e información de dirección.

En la inicialización, el servidor genera, utilizando la librería GeoTools, unaestructura con los datos de la ciudad de Córdoba, más precisamente un grafo.Éste se encuentra ubicado en un módulo que posee métodos para trabajar conel, como son agregar y quitar vértices, buscar aristas que satisfagan ciertas car-acterísticas y las que realizan las consultas de búsqueda de camino y existenciade dirección. También es inicializada una cola donde se irán almacenando laspeticiones de los clientes, junto a ésta, se crea un hilo (Thread), que a lo largode la ejecución, se encarga de controlar la cola. Al momento que es encoladauna solicitud, este hilo es el encargado de atenderla, para ello realiza la consultacorrespondiente al grafo y luego devuelve el resultado. Como se puede apreciar,la política aplicada a la hora de atender las peticiones es FIFO, esto se pen-só así, por el hecho de que la consulta de camino mínimo modi�ca el grafo, ytal modi�cación debe existir sólo para esa consulta, por lo tanto, mientras estemétodo es accedido, las demás consultas debes esperar que la que está en curso�nalice. Con FIFO se asegura que no se produzca inanición, es decir, todas lasconsultas serán atendidas en algún momento.

Una vez inicializado, el servidor queda escuchando un socket de tipo Server-Socket (de la clase java.net) esperando clientes, cuando un cliente realiza unpedido de conexión y éste es aceptado, se crea un socket (de tipo socket, tam-bién de la clase java.net) y un hilo encargado de manejar la conexión con elcliente. Este hilo se comunica a través del socket, creado cuando se aceptó laconexión, más precisamente, a través de los streams asociados a ese socket (unopara entrada y otro para salida). El hilo también tiene como tarea encolar lospedidos de los clientes, esperar a que sean atendidos y generar los resultadosque se enviarán.

Para generar los resultados, el servidor cuenta con un módulo que está com-puesto de varias clases encargadas de generar los distintos tipos de presenta-ciones de resultados. Entre las presentaciones disponibles, se tiene la que rep-resenta un camino como un conjunto de instrucciones en forma de texto, demanera similar a la forma que una persona daría tales instrucciones. Éstas sonarmadas utilizando un modulo programado para interpretar la geografía delcamino, es decir, un modulo que provee funcionalidad para obtener longitudesde cuadras, nombres de calles, sentido de giro y amplitud de los mismos, entreotras. Este modulo fue programado utilizando herramientas de GeoTools. Otraforma de presentación, es un archivo de sonido con las instrucciones del caminotraducidas a voz. La traducción es realizada utilizando la librería MBROLA [15]y un script perl programado por Alistair Conkie ([email protected]). MBROLAes un sintetizador de voz, que junto al sript perl forman un sistema conocidocomo TTS (del ingles Text To Speach). Hay que señalar que antes de pasar a vozlas instrucciones generadas como se describió anteriormente, se debe realizar un

Page 54: Tesis Malbran-Trouillet

5. Implementación 54

pequeño formateo al texto, para que tanto el script, como MBROLA, puedanrealizar la traducción correctamente. Por último, se tiene la representación delcamino como una imagen, estas también son armadas con herramientas provis-tas en la librería GeoTools.

Se debe mencionar que para este proyecto se programó el algoritmo debúsqueda de caminos mínimos A estrella, y que dicho algoritmo fue aceptadopor la comunidad de desarrolladores de GeoTools y formara parte de la librería.La misma sólo contaba con el algoritmo de Dijkstra.

5.2.1. A estrella

Como se mencionó anteriormente, la librería GeoTools cuenta, en la exten-sión de grafos, con el algoritmo de búsqueda de caminos de Dijkstra. El mismono está destinado a resolver el problema que en este trabajo se intenta solu-cionar, pues para un nodo origen, encuentra el menor camino entre él y cadauno de los nodos del grafo. Mientras que la solución deseada es el camino mínimoentre dos vértices determinados. Por ello, se empleó el algoritmo de grafos A*(A estrella), que encuentra el menor camino entre un nodo origen y uno destino;siendo esto, precisamente, el problema que se intenta resolver. Es claro que conDijsktra puede obtenerse el camino que se desea, pero al ser A* especi�co paratal �n, es conveniente su utilización, que puede resultar más e�ciente.

Funcionamiento del algoritmo

A estrella utiliza para iterar sobre los nodos, una función de evaluaciónllamada f:

f(n) = g(n) + h(n)

Donde,

n es el nodo actual.

h(n) representa el valor heurístico desde n hasta el nodo destino.

g(n) es el costo real del camino recorrido hasta n (es decir, el costo desdeel nodo origen hasta el nodo actual).

La función h debe ser una función de heuristica admisible, es decir, no debesobrestimar el costo de alcanzar el nodo destino. Tiene que ser una cota inferioral costo real del menor camino. [16]

Además se mantienen dos estructuras de datos auxiliares, que se denominanabiertos y cerrados. Se trata de listas de vértices que se emplean para guardarinformación sobre los nodos iterados.[17]

El algoritmo también guarda para cada nodo de la lista abiertos, cuál fue elnodo que lo agregó a la misma, siendo este último conocido como el padre delnodo. Esta información es útil a la hora de reconstruir el camino.

En cada paso del algoritmo, se toma el vértice de abiertos con menor costo f,y de no ser el destino, se agregan a la lista abiertos todos los nodos adyacentesa éste que no estaban ya en la lista. Para los que se encontraban en la misma,si se mejora su costo real (g(n)) por ir a través del nodo actual (es decir, si secumple que g(nodo actual) + costo de ir de nodo actual al vecino < g(vecino)),

Page 55: Tesis Malbran-Trouillet

5. Implementación 55

actualizamos la g del vecino y marcamos como su nuevo padre al nodo actual.Por último se agrega a cerrados el nodo actual. Cuando el nodo de menor costof en la lista abiertos es el destino, se �naliza la iteración. El camino búscado esel que puede construirse viajando desde el nodo destino al origen, a través delos padres.

func Vecinos(n) // devuelve el conjunto de nodos vecinos de n

func Costo(n,n') // devuelve el costo real para ir de n a n'

func Camino(n)camino = [n]while ( n != origen ) do

agrego padre(n) a caminon = padre(n)

endwhilereturn camino

endfunc

func AStar(origen, destino)ABIERTOS = {origen}CERRADOS = ∅

while ( |ABIERTOS| >0 ) don = nodo en ABIERTOS con menor f;sacar n de ABIERTOS;agregar n a CERRADOS;if n == destino

return Camino(n); // Devolvemos el caminoelse

for each n' ∈ Vecinos(n) and n' /∈ CERRADOS doif ( n' ∈ ABIERTOS )

if ( (g(n) + Costo(n,n')) <g(n') )//Si se mejoro el costo real que tenía el nodo n'// por ir por n, actualizamos el nodo n'g(n') = g(n) + Costo(n,n');padre(n') = n;

endifelse

g(n') = g(n) + Costo(n,n');padre(n') = n;agregar n' a ABIERTOS;

endifendfor

endifendwhile

endfunc

Page 56: Tesis Malbran-Trouillet

5. Implementación 56

Complejidad

La complejidad computacional del algoritmo está íntimamente relacionadacon la calidad de la heurística que se utiliza en el problema. En el peor caso (conuna mala heurística) la complejidad será la del algoritmo de Dijkstra mejorado,n2 + e, donde n es el número de vértices y e el de aristas. Si la heuristica esbuena (como usualmente lo es cuando se dispone de la ubicación geográ�ca delos nodos y el costo es la distancia que se recorre) el algoritmo resulta del ordende la cantidad de aristas del camino óptimo.

Implementación de A estrella

Dada la intención de contribuir con la librería GeoTools, la implementaciónde A*, se vio fuertemente condicionada a la manera de implementar algoritmossimilares en dicha librería. La misma, implementa este tipo de algoritmos comoel trabajo conjunto de tres clases. En el caso de A* estas son:

AStarShortestPathFinder

AStarIterator

BasicGraphTraversal (provista por GeoTools)

La clase AStarIterator es la más importante, ésta provee un método, llamadocont, para realizar un paso del algoritmo A*, además mantiene la representaciónde las listas abiertos y cerrados. La primera está implementada a través deuna cola de prioridades, disponible en la librería, mientras que la segunda, noestá implementado como un objeto en sí, su representación es por medio deun atributo en los nodos, que indica si los mismos se encuentran en la listao no. El método cont, recibe como parámetro un nodo, y realiza un paso delalgoritmo A*. Este busca todos los vértices vecinos al nodo parámetro, los que seencuentran en cerrados son ignorados y el resto son agregados a la lista abiertos,o modi�cados de ser necesario, si ya se encontraban en la misma.

AStarShortestPathFinder, es la encargada de inicializar las otras dos clasesy provee métodos para iniciar la búsqueda de camino y obtener el camino resul-tante. La clase BasicGraphTraversal, tiene como función intermediar la comu-nicación de las otras dos clases.

Cuando se pide el camino mínimo entre dos nodos, AStarShortestPathFinderle pide a BasicGraphTraversal que ejecute un paso del algoritmo A*, esta última,lo realiza a través del método cont de la clase AStarIterator. Una vez �nalizadoel paso, la clase BasicGraphTraversal obtiene el nodo de menor f de la listaabiertos y lo pasa a la clase AStarShortestPathFinder. Ésta controla si es elnodo destino, en cuyo caso, la búsqueda �naliza. Caso contrario, se avisa aBasicGraphTraversal que no es el destino, por lo que se realiza otro paso delalgoritmo. Esto se da hasta que se encuentre un camino, es decir, el menor nodode la lista abiertos es el nodo destino, o se hayan agotado todos los nodos.

5.2.2. Comparación entre las implementaciones deDijkstra y A*

La comparación fue realizada en una máquina con micro Intel Core 2 duo 2.8Ghz, 2 Giga RAM, en un sistema SUSE Linux 10.3 x86 64 bajo la jre 1.6.0 06.

Page 57: Tesis Malbran-Trouillet

5. Implementación 57

Page 58: Tesis Malbran-Trouillet

5. Implementación 58

Page 59: Tesis Malbran-Trouillet

5. Implementación 59

Tabla de promedios de tiempos:

5.3. Cliente

Para este proyecto se realizaron dos tipos de clientes, uno que se ejecuta encomputadoras de escritorio y otro en dispositivos móviles. La programación delos mismos fue realizada en java, el cliente de dispositivos móviles se codi�cócon j2me, mientras que el cliente pc fue realizado en Java se.

La funcionalidad principal de los clientes es la de proveer una interfaz paraque los usuarios puedan realizar las consultas y ver sus resultados. Ademásmaneja el protocolo de comunicación con el servidor.

5.3.1. Cliente para computadoras de escritorio

Cuando se inicia el cliente, éste trata de conectarse a un servidor, en una di-rección y puerto almacenados en un archivo de con�guración. Si en tal dirrecciónno hay servidor escuchando o es rechazada la conexión, el cliente informa queno ha podido conectarse. Los usuarios desde un menú de con�guración puedencambiar tanto la dirección como el puerto al cual el cliente va ha intentar conec-tarse, es decir, el lugar donde se encuentra el servidor.

Una vez establecida la conexión, el cliente ofrece una interfaz sencilla y dis-eñada con algunas características especiales orientada a personas no videntes ocon disminución visual. Estas particularidades en la interfaz, fueron realizadascon la ayuda de profesoras del Instituto Helen Keller, capacitadas para enseñara personas, para las cuales está destinado el software. Entre algunas de estaspropiedades podemos mencionar, los colores y textos utilizados, la disposiciónde los componentes y la forma en que se presentan los resultados.

A través de la interfaz se pueden realizar consulta de camino mínimo o pedirinformación sobre una dirección. Ante la selección de cualquiera de estas con-sultas, se solcita al usuario que ingrese datos para poder realizarla, luego, elclinte se encarga de la comunicación con el servidor y de ser necesario deman-da al usuario que ingrese más o nuevos datos para poder �nalizar la consulta.Por último, se muestran los resultados recibidos desde el servidor, en el cliente.También se ofrece la posibilidad de guardar puntos favoritos, estos son direc-ciones que los usuarios pueden almacenar en el programa para luego desde lasinterfaz de las consultas utilizarlas como parámetros de las mismas. Al guardar

Page 60: Tesis Malbran-Trouillet

5. Implementación 60

un punto favorito el usuario relaciona un nombre con una dirección (calle y al-tura). Además se provee la posibilidad de aumentar el tamaño de los textos ycomponentes, para facilitar la visualización a personas con disminución visual.Otra característica del cliente, es que pueden agregarse módulos para visulizarla interfaz en distintos idiomas, esto se realizó, utilizando las funcionalidad deinternacionalización, conocida com I18N, del lenguaje Java.

El cliente cuenta un módulo para comunicarse con el servidor, en éste seencuentra programado el protocolo mencionado anteriormente. Además tienemódulos encargados de manejar la interfaz grá�ca y módulos que manejan losarchivos de con�guración, tanto los de parámetros de conexión, como los decon�guración de idioma y tamaño de visualización.

5.3.2. Cliente para dispositivos móviles

Debido a la reducción de capacidades disponibles en dispositivos móviles, elcliente de este tipo es más limitado en cuanto a funcionalidad y presentación.Cuando se inicializa el cliente, se muestra una pantalla en donde debe ingresarsela dirección y el puerto en el cual recide el servidor con el que se quiere conec-tar. Si se logra establecer la conección, se muestra una pantalla para realizarla consulta de camino mínimo, en donde deben introducirse dos direcciones,por ultimo, si se consultó al servidor, se tiene una pantalla para visualizar losresultados recibidos.

El cliente de dispositivos móviles cuenta con una cantidad menor de clasesque el cliente pc. Tiene modulos para el manejo de la conexión con el servidor,la comunicación con el mismo, y la obtención y presentación de los datos.

Page 61: Tesis Malbran-Trouillet

6. Conclusiones

En primera instancia, no se puede dejar de notar que la sociedad en quenos desenvolvemos está exenta de la infraestructura necesaria para lograr laintegración total de las personas con discapacidad, cualquiera sea el origen dela misma. Esta ausencia de facilidades es un obstáculo diario para este gruposocial, que podría ser solventado a través de planes gubernamentales e iniciativasinstitucionales.

En segundo lugar, y teniendo en cuenta la temática sobre la que se basaeste trabajo, es indispensable notar que gran parte de las herramientas o util-idades diseñadas para mejorar la calidad de vida de las personas referidas condiscapacidad visual tienen un alto costo comercial. Esto resulta un obstáculoeconómico para el grupo social así como también una restricción para el desar-rollo de la sociedad misma, que se ve privada de contar con la contribución yproducción del grupo referido al impedirle acceder a las tecnologías y facilidadesque permitan desarrollar al máximo sus capacidades.

Este trabajo intenta contribuir a la resolución de los puntos mencionadosproporcionando una herramienta cuyo objetivo principal es asistir al individuodiscapacitado en la construcción de mapas mentales y por ende en el desarrol-lo del sentido de orientación. También, dadas las numerosas posibilidades deextensión asociadas al proyecto realizado y la �nalidad solidaria del mismo, seconsideró fundamental distribuir el programa de manera gratuita, con una li-cencia libre (GPL). El software libre es un medio para lograr la contribuciónde toda la comunidad en el desarrollo de herramientas de software, permitiendoque aquél que lo desee y sepa cómo hacerlo, pueda extender las funcionalidadesdel proyecto y compartir tales ampliaciones. Esto convierte a la comunidad to-da en potencial desarrolladora, lo que maximiza las posibilidades de crecimientodel proyecto y permite la existencia de una retroalimentación fructífera entretodos sus integrantes. En este sentido, la elaboración del proyecto también hacontribuido a la comunidad del software al hacer una colaboración al desarrollode la librería GeoTools. Tal aporte consistió en la ampliación de la libreria, queagregó módulos que implementan un algoritmo de búsqueda de caminos que noera brindado hasta el momento. La ampliación realizada fue aceptada por lacomunidad desarrolladora de GeoTools y formará parte del paquete distribuidopor esta organización.

Es necesario insistir en que existe una amplia variedad de extensiones posi-bles para este proyecto, lo cual deja en claro que sería positivo que no se detengaen este punto la continuidad en el desarrollo. Entre las extensiones más impor-tantes y necesarias que existen, cabe mencionar:

La integración de los recorridos del transporte urbano de pasajeros,junto a la funcionalidad de dar instrucciones precisas de cómo realizarun trayecto utilizándolo como medio principal

Page 62: Tesis Malbran-Trouillet

6. Conclusiones 62

Cuando el trayecto que se desea realizar es prolongado, movilizarse a piepuede ser poco factible. En estos casos es corriente utilizar medios de trans-porte (auto, colectivo, etc.). La persona discapacitada visual encontraría de granutilidad acceder a la información que detalle qué medios se dirigen cerca de sudestino, y cómo utilizarlos. La ide básica que persigue esta extensión es que elprograma realice varios conjuntos de instrucciones que permitan al usuario uti-lizar los medios de la manera más intuitiva posible. En particular, se esperaríaque se genere un conjunto de instrucciones verbales para el recorrido desde elorigen hasta el punto de la ciudad donde se accede al medio de transporte, otropara saber cuándo el usuario debe �nalizar el uso del medio, y �nalmente, untercero para determinar cómo complementar el recorrido del medio para llegara destino.

Agregar la tecnología GPS (Global position system)Esta tecnología permitiría una interacción más �uída, dinámica y realísta

entre el usuario y el software. El objetivo principal de esta extensión está fun-damentado en la idea de aumentar la inteligencia arti�cial del producto. Seríanotorio, por ejemplo, que de suceder que el usuario se desvíe del trayecto prop-uesto (ya sea porque encuentra un obstáculo que le impide seguir, o porqueperdió la orientación), el programa le indicara de tal evento y le preguntara sidesea reformular el recorrido o recibir instrucciones para retornar al original. Asu vez, al tener un indicador de la posición exacta del usuario, no sería nece-sario ejecutar un comando para recibir la próxima instrucción; el programa lasuministraría en el momento en que se debe realizar, evitando la necesidad delusuario de conocer su posición.

Integrar tecnología de reconocimiento de voz, para facilitar la in-teracción con el usuario

Como se ha visto en el capítulo 3, varios de los dispositivos diseñados confuncionalidades símiles a las ofrecidas por este trabajo, apuntan a utilizar latecnología mencionada conjuntamente a las voces electrónicas para estableceruna comunicación �verbal� con el usuario. Esta funcionalidad evitaría todanecesidad de interactuar manualmente con el dispositivo que se esté utilizando,otorgando mayor practicidad y simpli�cando la utilización de otros recursos deasistencia como podría ser el bastón blanco. Es muy probable también que, através de este recurso, se logre una interacción más e�ciente (en rapidez, y �u-idez por ejemplo) con el programa, lo cual minimizaría los tiempos necesariospara obtener resultados.

Crear un sistema de actualización de bases de datosDado la cantidad de datos que se manejan en el programa desarrollado, y

la constante variación de los mismos debido a las obras públicas, el crecimientourbano, etc. se vuelve básico pensar en mantener tales datos tan actualizadoscomo sea posible. Una solución idónea consistiría en la existencia de un servi-dor de datos cartográ�cos actualizados y o�ciales, a partir del cual se puedanhacer actualizaciones periódicas. Una solución más simple consiste en brindarla funcionalidad de actualizar los datos de manera manual, desde una fuentedeterminada por el usuario. Esto también sería necesario si se contara con lafuncionalidad que tiene en cuenta los medios de transporte, ante la necesidadde tener los datos de sus recorridos tan actualizados como sea posible.

Page 63: Tesis Malbran-Trouillet

6. Conclusiones 63

Crear un dispositivo especí�co para el software realizadoLa creación de un dispositivo especí�co permitiría optimizar al máximo todas

las capacidades del producto que se brinda. Al construir un artilugio especial-mente diseñado a los �nes de la capacidad del software, se puede pensar enlas características fundamentales para la interacción con el usuario, eliminandotodo aquello que no sea especí�co de su funcionalidad. La realización de estaextensión, en conjunto a la concreción de las anteriormente mencionadas, per-mitiría acercarse de manera más profunda a la solución ideal detallada en elcapítulo 2.

Page 64: Tesis Malbran-Trouillet

Apéndice

Page 65: Tesis Malbran-Trouillet

A. Manual de Usuario

A.1. Introducción

Tiresias es un programa que intentará asistir a la persona discapacitadavisual en la tarea frecuente de movilizarse en un entorno urbano. Se trata deuna aplicación que brinda información cartográ�ca de una ciudad particular entres formatos, a saber:

Sonoro: los resultados de las consultas son presentados de manera oral porel programa. Se crea un archivo .wav que puede ser guardado en un mediomóvil como un reproductor de mp3 o un celular.

Textual: los resultados de las consultas son presentados de manera textual,a los �nes de tener la posibilidad de imprimirlos. Aquéllos se presentan entexto plano, lo que maximiza la posibilidad de ser utilizados conjuntamentecon impresoras braille.

Visual: los resultados de las consultas son presentados de manera visual,en un mapa con una combinación de colores particular que espera permitira la persona disminuida visual distinguir los componentes que se presentande la manera más concisa posible.

Tiresias funciona como un nomenclador cartográ�co digital, proveyendo dosfuncionalidades principales:

1. Consultar información sobre una dirección particular. Dado el un nombrede calle y una numeración, permite conocer si esa dirección es válida (existeuna calle con ese nombre y esa altura), y de ser así, cuál es el barrio enque se encuentra.

2. Consultar cuál es el camino más corto para realizar a pie entre dos direc-ciones cualesquiera de la ciudad. Se genera un conjunto de instruccionesque le dirán cómo desplazarse a través de camino sugerido.

En las secciones siguientes encontrará instrucciones precisas sobre los requerim-ientos del sistema, las formas de instalación particulares a cada sistema oper-ativo, y descripciones más detalladas acerca de las funcionalidades, interfaz, ymanejo de Tiresias.

A.2. Requerimientos

Procesador: Equivalente Pentium 3 o superior.

Memoria: mayor o igual a 256 RAM.

Page 66: Tesis Malbran-Trouillet

A. Manual de Usuario 66

Disco: 100 Megabytes.

Sonido: Cualquier placa de sonido estándar.

Video: Cualquier placa de video que soporte una resolución de 800x600pixels o superior.

Software:Máquina Virtual de Java 1.6 o superior. Para mayor rendimien-to con lectores de pantalla, se recomienda instalar el AccessBridge de Sun.

A.3. Instalación

A.3.1. Windows

La instalación bajo windows se realiza de forma totalmente automática. Noes necesario tener la máquina virtual de Java previamente instalada. En caso deque ésta no se encuentre en su sistema, el instalador le ofrecerá la posibilidad deinstalarla. El instalador también ofrecerá la posibilidad de instalar AccessBridgepara lograr la mejor interacción posible entre la PC y el software.

Para instalar Tiresias ejecute el archivo instalar.exe. Se ejecutará un asistentede instalación que lo guiará a través del resto del proceso.

Tiresias se distribuye con una licencia GPL(GNU General Public License óLicencia Pública General) que se detalla durante el proceso de instalación, yque deberá ser leída y acordada para poder proseguir con tal procedimiento.

Una vez instalado podrá ejecutar el programa entrando al menú de inicio,programas, y seleccionando la carpeta correspondiente a Tiresias. Aquí tambiénencontrará una opción para desinstalar el programa.

A.3.2. Linux

Para instalar Tiresias bajo Linux se deberá descomprimir el archivo insta-lar.tar.gz. Una vez realizada esta acción tendrá la posibilidad de instalar lamáquina virtual de java accediendo a la carpeta �adicionales� y utilizando elmétodo que mejor se adapte a su versión de este sistema operativo.

Tiresias se distribuye con una licencia GPL(GNU General Public License óLicencia Pública General) que se detalla en el archivo licencia.rtf. Si el usuariorealiza las acciones de instalación y utiliza Tiresias, se asumirá que ha leído yacordado tal contrato.

Una vez que tenga todas las dependencias necesarias, podrá correr su clienteejecutando el comando java -jar ClientePC.jar.

A.3.3. Notas generales

Tiresias está diseñado con un conjunto de sonidos que indican las carac-terísiticas básicas de la interacción con el usuario (éxito, fracaso, opciones, etc.).Sin embargo, se prevee un aprovechamiento máximo de sus cualidades a travésde la utilización conjunta con herramientas que normalmente se utilizan comomedios de accesibilidad ante la discapacidad visual. Este tipo de herramientasinluye lectores de pantalla (como Jaws), magni�cadores de pantalla, y cualquierotra utilidad que ayude a la persona discapacitada visual a utilizar recursosinformáticos.

Page 67: Tesis Malbran-Trouillet

A. Manual de Usuario 67

A.4. Interfaz

Cuando ejecute Tiresias se desplegará la ventana principal del programa,que cuenta con los siguientes elementos:

En la parte superior, una barra de menú tradicional, conteniendo las op-ciones: Archivo, Preferencias, Herramientas, Ayuda.

En la zona central de la ventana, tres botones ubicados de manera verticalcon los siguientes textos: Camino Mínimo, Consulta Dirección, Ampliar.

La interfaz de Tiresias se maneja también con un conjunto de sonidos informa-tivos que intentarán hacer el funcionamiento del programa más intuitivo para elusuario. Estos sonidos son básicamente 5, y expresan las siguientes situaciones:

1. Exito: Una operación fue realizada exitosamente.

2. Selección: se presionó un botón, o una opción de menú.

3. Advertencia: Existe algún problema ligero (un error de parámetros, porejemplo).

4. Error: Existe algún problema grave. Por ejemplo, no se puede comunicarcon el servidor (puede que el servidor de Tiresias esté caído, o que estémal con�gurada la dirección de comunicación o el puerto).

5. Opciones: Se presentan una serie de opciones. Por ejemplo, cuando debeelegir un punto favorito de entre todos los que tiene guardados.

A.4.1. Descripción y atajos de teclado

ALT+Q Cerrar

ALT+C Con�guración

ALT+M Camino mínimo

ALT+D Consulta dirección

ALT+F Editar favoritos

ALT+R Ampliar/Reducir

ALT+U Ayuda

ALT+N Acerca de

Archivo (ALT+A): Este menú sólo muestra la opción de salir del programa.Para salir del programa sin necesidad de acceder a este menú también puedeutilizar el atajo de teclado ALT+Q.

Preferencias (ALT+P): Este menú sólo muestra la opción �con�gurar�. Paraacceder directamente a esta opción puede presionar el atajo de teclado ALT+C.Esta opción desplegará una nueva ventana en la que podrá con�gurarse la di-rección del servidor de Tiresias, el puerto de comunicación con el mismo, y elidioma en el que está escrita la interfaz. La tecla TAB permite desplazarse entre

Page 68: Tesis Malbran-Trouillet

A. Manual de Usuario 68

los elementos de la ventana. Utilice ALT+G para guardar los cambios realiza-dos y cerrar la ventana o bien ALT+S para salir de la ventana sin guardar loscambios.

Herramientas (ALT+H): Este menú es otra forma de obtener acceso a losbotones principales de la aplicación. En él encontrará acceso a las funcional-idades principales (Camino Mínimo, Consulta Dirección, Ampliar) así comotambién acceso a la funcionalidad de Favoritos.

Camino Mínimo (ALT+M): Esta es la funcionalidad principal de Tiresias.Su utilización generará un conjunto de instrucciones sobre cómo llegardesde un punto de la ciudad a otro. Al acceder a ella se abrirá una nuevaventana que dispondrá de cuatro campos de texto, dos botones para ac-ceder a favoritos, y los botones Consultar (ALT+C) y Salir (ALT+S). Sepodrá avanzar a través de los campos de texto a utilizando la tecla TABdel teclado. Para retroceder podrá utilizar la combinación SHIFT+TAB.

Apenas se abra esta ventana, el cursor estará situado en donde se debeescribir el nombre de la calle de origen. En el segundo cuadro de texto seespera que se introduzca la numeración correspondiente a la dirección deorigen. Los siguientes dos cuadros de texto funcionan de manera análoga,esperando el nombre de calle y la numeración de la dirección de destino.Con TAB también puede acceder a los botones consultar (ALT+C) y salir(ALT+S).

Puede suceder que una vez ejecutada la consulta, el servidor de Tiresiasno encuentre alguna de las direcciones especi�cada. En estos casos se oiráel sonido de advertencia a la vez de que una ventana se desplegará infor-mando cuál es la dirección que ha presentado con�icto. Una vez cerradaesa ventana (se puede cerrar con ENTER, barra espaciadora, o ESCAPE),volveremos a la ventana de camino mínimo, pero la dirección con�ictivahabrá sido borrada. El cursor estará en posición para ingresar una nuevadirección.

También es posible que alguna de las direcciones ingresadas no sea lo su�-cientemente precisa. Por ejemplo, escribir como dirección de origen �Juan523� hará que Tiresias descubra muchas calles cuyos nombres contienenla palabra Juan, y que a su vez contengan la numeración 523. En estoscasos, Tiresias reproducirá el sonido de Opciones y se abrirá una nuevaventana con todas las opciones disponibles. En ella se detallarán el númerode opción seguido del nombre de la calle y del barrio al que ésta pertenece.Para elegir una opción basta con ingresar el número de la opción deseaday presionar Aceptar (ALT+A). Si no se selecciona ninguna opción (se pre-siona Salir o el atajo ALT+S) el cursor se situará en el primer cuadro detexto de la dirección que haya dado con�ictos, y los valores que hubierahabido allí habrán sido borrados.

Consulta Dirección (ALT+D): Cuando se selecciona esta opción, se abreuna nueva ventana que contiene dos campos de texto, y dos botones. Loscampos de texto corresponden al nombre de la calle y la numeración de ladirección sobre la cual se quiere hacer la consulta. Los botones son Con-sultar y Salir (ALT+C y ALT+S respectivamente). Esta opción funcionaprácticamente de igual forma que Camino Mínimo, dando informaciónsobre la o las direcciones que resulten como resultado de la consulta.

Page 69: Tesis Malbran-Trouillet

A. Manual de Usuario 69

Ampliar (ALT+R): Ampliar permite magni�car el tamaño de los compo-nentes de la interfaz. Al seleccionar esta opción el texto del botón mismocambiará a �Reducir�. Se puede presionar este �nuevo botón� con el mismoatajo de teclado (ALT+R) para volver al tamaño original de la interfaz.

Editar Favoritos (ALT+F): Esta opción permite ir guardando una seriede puntos de uso frecuente dándoles un nombre identi�catorio fácil derecordar como puede ser �mi casa�, �almacén�, etc. Se describirá con másdetalle en la siguiente sección.

A.4.2. Favoritos

Al presionar la combinación de teclas ALT+F desde la ventana principalde emphTiresias, se abrirá la ventana de edición de puntos favoritos. El cursorestará situado sobre algún punto favorito que se haya almacenado. En estaventana se detallan todos los puntos favoritos existentes. A través de las �echasarriba y abajo puede ir desplazándose entre los favoritos guardados para luegomodi�carlos (ALT+M) o borrarlos (ALT+B). Para agregar un nuevo favoritodeberá desplazar el cursor hasta el botón Agregar, o bien presionar el atajode teclado ALT+A. Tanto al modi�car como al agregar un punto favorito, sedespliega un nuevo cuadro de diálogo que tiene dos campos de texto: El primeropara el nombre de la calle del favorito, y el segundo para la numeración. En elcaso de agregar habrá un campo adicional que le permitirá escoger un nombrepara su nuevo favorito. Si presiona borrar (o si se ejecuta su atajo), se abriráun cuadro de diálogo que preguntará si está seguro de que desea ejecutar dichaacción. Todos los menúes tienen un botón salir que se accede a través del atajode teclado ALT+S.

Para acceder a la lista de puntos favoritos en las consultas de camino mín-imo, podremos presionar el atajo de teclado ALT+F dentro de la ventana deconsulta. Esta lista tiene un conjunto de direcciones de uso frecuente. Cadapunto favorito tiene un número de ubicación en esta lista de direcciones quenos permite identi�carlo. Ingresando el número del punto favorito deseado ypresionando el botón Aceptar (ALT+A) habremos rellenado automáticamentelos campos de dirección en el que el cursor haya estado situado. Para cancelaresta operación es posible apretar el botón Salir con la barra espaciadora o bienutilizar el atajo de teclado ALT+S. Si se presiona Aceptar y no se ha escritoningún número de opción o se ha escrito un número de opción erróneo (inexis-tente, por ejemplo) se oirá el sonido de advertencia y se mostrará una ventanade información. Para salir de tal ventana presione ENTER, barra espaciadorao ESCAPE. Volverá a estar en la ventana de Favoritos.

A.5. Presentación de los resultados

En el caso de la consulta más simple (información acerca de una dirección)se despliega un diálogo con una lista de todas las direcciones (calle, barrio) quesatisfacen los parámetros de búsqueda ingresados anteriormente.

Para la consulta más compleja de encontrar el camino más corto entre dosdirecciones, se abrirá un nuevo cuadro de diálogo que constará de 3 secciones,a saber:

Page 70: Tesis Malbran-Trouillet

A. Manual de Usuario 70

Un mapa de alto contraste: En este mapa se muestra el camino a recorrer.Los colores que se utilizan son: negro para el fondo, verde para las calles,rojo para el camino, y blanco para las marcas de comienzo y �nal decamino. Las marcas del mapa representan el comienzo del camino con uncírculo y el �nal con una cruz.

Una sección de sonido: en esta sección hay tres botones que permiten re-producir, pausar, continuar, y detener el audio de las indicaciones acercadel cómo ir desde el punto de origen hasta el punto de llegada. El botónReproducir (ALT+R) dará comienzo a este sonido, y se convertirá inmedi-atamente en el botón Pausa (ALT+P). El botón Detener (ALT+D) de-tendrá la ejecución del sonido y lo �rebobinará� hasta su comienzo. Ademásde estas funcionalidades, existe un botón Guardar Sonido (ALT+G), queabre un diálogo para seleccionar una ubicación para guardar el archivo desonido de las instrucciones en formato WAV. Esto puede resultar útil si seutiliza con un reproductor de mp3 tradicional.

Una sección de instrucciones: esta sección permite acceder a las instruc-ciones de recorrido en forma de texto escrito. Cuenta con tres funcional-idades: Ver (ALT+V), Imprimir (ALT+I), y Guardar Texto (ALT+T).Ejecutar Ver desplegará un diálogo con las instrucciones escritas, de modotal que puedan ser leídas por un lector de pantalla. Imprimir mandará eltexto sin formatos adicionales para ser impreso en braille o en una im-presora de tinta. Guardar Texto permitirá guardar un archivo en formatoTXT en alguna ubicación a escoger en el cuadro de diálogo subyacente.

Page 71: Tesis Malbran-Trouillet

B. Capturas

B.1. Capturas de Tiresias

Ventana Principal:

Ventana de con�guración (ALT+C):

Page 72: Tesis Malbran-Trouillet

B. Capturas 72

Ventana de administración de puntos favoritos (ALT+F):

Dialodo para agregar un punto Favorito:

Dialodo de Modi�cación de un punto Favorito:

Page 73: Tesis Malbran-Trouillet

B. Capturas 73

Dialogo de Busqueda de camino mínimo:

Dialogo de Busqueda de información de dirección:

Ventana de elección de un punto favorito:

Page 74: Tesis Malbran-Trouillet

B. Capturas 74

Ventana opciones de dirección:

Ventana de resultado de la consulta de información de dirección:

Page 75: Tesis Malbran-Trouillet

B. Capturas 75

Ventana Resultado de la consulta de camino mínimo:

Ventana de instrucciones del camino mínimo:

Page 76: Tesis Malbran-Trouillet

B. Capturas 76

B.1.1. Comparación modo normal y modo ampliado

Page 77: Tesis Malbran-Trouillet

B. Capturas 77

B.2. Capturas del cliente móvil sobre emulador

java

Ventana de conexión: Ventana de ingreso de párametros:

Page 78: Tesis Malbran-Trouillet

B. Capturas 78

Ventana de opciones de dirección: Ventana de resultados:

Page 79: Tesis Malbran-Trouillet

Bibliografía

[1] Organización Panamericana de la Salud. �Discapacidad: Lo que todosdebemos saber�. 5 de mayo del 2006

[2] Manual de Desarrollo Inclusivo. Banco Mundial. Río de Janeiro, 2005

[3] Programa de acción mundial para las personas con discapacidad. Res-olución 37/52 de 3 de diciembre de 1982, de la Asamblea General de lasNaciones Unidas.

[4] Normas uniformes de las naciones unidas. Resolución 48/96, anexo,aprobado por la Asamblea General de las Naciones Unidas el 20 dediciembre de 1993.

[5] Libro

[6] An Introduction to Text-To-Speech Synthesis,T. DUTOIT, Kluwer Academic Publishers, DordrechtHardbound, ISBN 0-7923-4498-7 April 1997, 312 pp.

[7] FUNDAMENTAL OF SOFTWARE ENGINEERING. Carlo Ghezzi,Mehdi Jazayeri, Dino Mandrioli.Prentice Hall, 1991.

[8] THE WAY OF Z Practical Programming with Formal Methods. JonathanJacky.Cambridge UIniversity Press, 1997

[9] USING Z Specifcation, Refnement, and Proof. Jim Woodcock, Jim Davies.1995.

[10] The Z Notation, A Reference Manual. Second Edition. J. M. SpiveyJ. M. Spivey Oriel College, Oxford, OX1 4EW, Inglaterra. 1998

Page 80: Tesis Malbran-Trouillet

Bibliografía 80

[11] JAVA TECH. Clark Lindsey, Johnny Tolliver, Thomas Lindblad.Editorial Cambridge.

[12] http://es.wikipedia.org/wiki/Servidor webhttp://en.wikipedia.org/wiki/Web server

[13] http://en.wikipedia.org/wiki/Distributed computing

[14] http://es.wikipedia.org/wiki/CORBA

[15] Página o�ial del proyecto MBROLA. http://tcts.fpms.ac.be/synthesis/mbrola.html

[16] http://en.wikipedia.org/wiki/Admissible heuristic

[17] http://es.wikipedia.org/wiki/Algoritmo de búsqueda A*

[18] http://en.wikipedia.org/wiki/A star