diseno de aplicaci~ on de realidad aumentada...

77
DISE ˜ NO DE APLICACI ´ ON DE REALIDAD AUMENTADA EN DISPOSITIVOS M ´ OVILES PARA USUARIOS DEL SISTEMA INTEGRADO DE TRANSPORTE P ´ UBLICO EN BOGOT ´ A JORGE LUIS CANDAMIL ACEVEDO JULIAN ORLANDO JARAMILLO CHAWEZ UNIVERSIDAD DISTRITAL FRANCISCO JOSE DE CALDAS FACULTAD DE INGENIER ´ IA INGENIER ´ IA CATASTRAL Y GEODESIA BOGOT ´ A D.C. OCTUBRE 2015

Upload: doquynh

Post on 30-Jun-2018

216 views

Category:

Documents


0 download

TRANSCRIPT

DISENO DE APLICACION DE REALIDAD AUMENTADA EN

DISPOSITIVOS MOVILES PARA USUARIOS DEL SISTEMA

INTEGRADO DE TRANSPORTE PUBLICO EN BOGOTA

JORGE LUIS CANDAMIL ACEVEDO

JULIAN ORLANDO JARAMILLO CHAWEZ

UNIVERSIDAD DISTRITAL FRANCISCO JOSE DE CALDAS

FACULTAD DE INGENIERIA

INGENIERIA CATASTRAL Y GEODESIA

BOGOTA D.C.

OCTUBRE 2015

DISENO DE APLICACION DE REALIDAD AUMENTADA EN

DISPOSITIVOS MOVILES PARA USUARIOS DEL SISTEMA

INTEGRADO DE TRANSPORTE PUBLICO EN BOGOTA

JORGE LUIS CANDAMIL ACEVEDO Cod 20081025012

JULIAN ORLANDO JARAMILLO CHAWEZ Cod 20081025054

Proyecto de Grado

Director: Paulo Cesar Coronado

UNIVERSIDAD DISTRITAL FRANCISCO JOSE DE CALDAS

FACULTAD DE INGENIERIA

INGENIERIA CATASTRAL Y GEODESIA

BOGOTA D.C.

OCTUBRE 2015

Dedicado a nuestras familias, padres, hermanos, tios, abuelos, primos y amigos

que hicieron parte de este proceso y que con su apoyo incondicional hemos alcanzado esta

meta.

1

Agradecimientos

A nuestro director Paulo Cesar Coronado por su apoyo e interes en la realizacion de este

trabajo y por haber dedicado parte de su tiempo en darnos sus mejores consejos. Nuestras

mas sincera gratitud.

Al profesor Diego Pajarito, en sus clases de sistemas de informacion geografica e interfaces

nos dio las bases de esta idea, convirtiendose un apoyo academico a largo del desarrollo

de esta aplicacion.

A Edgar Macas, Ingeniero de la universidad Nacional de Loja Ecuador, el cual dedico su

tiempo para guiarnos en el desarrollo de este trabajo. Muchas Gracias

A Ana Maria Pulido, estamos muy agradecidos por su aporte con el diseno y presen-

tacion de esta aplicacion.

A nuestras familias, especialmente a nuestras madres que con apoyo, amor y sacrificio

nos han ensenado a ser personas y gracias a ellas hemos llegado hasta este punto.

A nuestros amigos de la universidad y del colegio que por su sinceridad, companeris-

mo y buen humor siempre estuvieron junto a nosotros respaldandonos.

A la Universidad Distrital y en especial al proyecto curricular de Ingenierıa Catastral y

Geodesia por permitirnos formar no solo academicamente sino tambien en valores y etica.

A los revisores por sus valiosos comentarios y su gran disposicion, estamos muy agradeci-

dos.

2

Tabla de Contenido

11. Introduccion 10

2. Objetivos 12

2.1. Objetivo General . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 12

2.2. Objetivos Especıficos . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 12

3. Marco Teorico 13

3.1. Sistema Integrado de Transporte (SITP) . . . . . . . . . . . . . . . . . . . . 13

3.2. Realidad Aumentada . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 16

3.2.1. Herramientas para la realidad aumentada . . . . . . . . . . . . . . . 18

3.3. Funcionamiento Realidad Aumentada . . . . . . . . . . . . . . . . . . . . . 21

3.4. Servidores Web . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 24

3.5. Servidores Ftp . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 27

3.6. Metodologıa de trabajo . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 30

4. Definicion del Problema 32

4.1. Contexto del problema . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 32

4.2. Formulacion del problema . . . . . . . . . . . . . . . . . . . . . . . . . . . . 32

4.3. Solucion Propuesta . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 32

4.4. Analisis de herramientas . . . . . . . . . . . . . . . . . . . . . . . . . . . . 33

4.4.1. SDK (Software Development Kit) . . . . . . . . . . . . . . . . . . . . 34

4.4.2. API . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 34

4.4.3. Framework . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 34

4.5. Herramientas de Realidad Aumentada . . . . . . . . . . . . . . . . . . . . . 35

4.5.1. ARToollkit . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 353

4.5.2. Wikitude SDK . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 35

4.5.3. Layar . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 36

4.5.4. Espira . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 37

4.5.5. Mixare . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 37

4.5.6. Appunta . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 37

4.5.7. Junaio . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 38

4.6. Android Studio . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 38

4.7. Gradle . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 39

4.8. Filezilla . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 39

4.9. Datos Json . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 40

4.10. JQuery . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 40

5. Limitaciones 42

6. Productos e Impacto 43

7. Requerimientos 44

7.1. Definicion de requerimientos . . . . . . . . . . . . . . . . . . . . . . . . . . . 44

7.1.1. Usuarios del sistema . . . . . . . . . . . . . . . . . . . . . . . . . . . 45

7.1.2. Identificacion de los casos de uso . . . . . . . . . . . . . . . . . . . . 45

7.1.3. Diagrama de casos de uso . . . . . . . . . . . . . . . . . . . . . . . . 46

7.1.4. Caso de Uso . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 47

8. Arquitectura Y Diseno 48

8.1. Arquitectura Wikitude Software de Desarrollo (SDK) . . . . . . . . . . . . 48

8.2. Importar Librerıa . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 49

8.3. Configurando Proyecto Android . . . . . . . . . . . . . . . . . . . . . . . . . 504

8.3.1. Launcher . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 50

8.4. Puntos de Interes en ARcomp (POIs) . . . . . . . . . . . . . . . . . . . . . 52

8.5. Clases Utilizadas y caracterısticas . . . . . . . . . . . . . . . . . . . . . . . . 54

8.5.1. AbstracArchitectCamActivity . . . . . . . . . . . . . . . . . . . . . 54

8.5.2. ActivityRA . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 54

8.5.3. ArchitectViewHolderInterface . . . . . . . . . . . . . . . . . . . . . . 54

8.5.4. LocationProvider . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 55

8.5.5. MainActivity . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 56

8.5.6. WikitudeSDKConstants . . . . . . . . . . . . . . . . . . . . . . . . . 56

8.6. Descripcion Detallada de Puntos de Interes . . . . . . . . . . . . . . . . . . 57

8.6.1. Marker . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 57

8.6.2. Detalles . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 58

8.7. Diseno de interfaz . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 58

8.8. Vista de Aplicacion . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 60

8.9. Diagramas de clases . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 62

9. Implementacion 63

9.1. Evaluacion del lenguaje . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 63

9.1.1. Android . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 63

9.1.2. IOS . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 64

9.2. Evaluacion de SDK de Realidad Aumentada Wikitude . . . . . . . . . . . . 65

9.2.1. Layar . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 66

9.3. Eleccion del SDK y de librerıas . . . . . . . . . . . . . . . . . . . . . . . . . 67

10.Bitacora 70

5

11.Limitaciones 71

12.Conclusiones 72

13.Anexos 74

6

Indice de figuras

1. Distribucion de las trece zonas del Sitp. Pagina oficial Sitp . . . . . . . . . . 13

2. Tabla de rutas Sitp. Pagina oficial Sitp . . . . . . . . . . . . . . . . . . . . . 15

3. Sistema Karma. Pagina oficial Sitp . . . . . . . . . . . . . . . . . . . . . . . 17

4. Ejemplo aplicacion Layar. https://www.layar.com . . . . . . . . . . . . . . 21

5. Senal paradero SITP. https://www.sitp.com . . . . . . . . . . . . . . . . . . 21

6. Conexion a un servidor . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 24

7. ARcomp . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 43

8. Diagrama Caso de Uso . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 46

9. Arquitectura Wikitude SDK . . . . . . . . . . . . . . . . . . . . . . . . . . . 48

10. Librerıa wikitudesdk . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 49

11. Archivos .jar . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 49

12. Permisos dentro del Androidmanifest.xml . . . . . . . . . . . . . . . . . . . 50

13. Nombre e imagen de la App . . . . . . . . . . . . . . . . . . . . . . . . . . . 50

14. Launcher ARcomp (http://es.clipartlogo.com/free/blue-bus.html) . . . . . . 51

15. Imagen Launcher de App en Dispositivos . . . . . . . . . . . . . . . . . . . 51

16. Paradero o punto de recarga (MarkerId).( www.transmilenio.gov.co) . . . . 52

17. Estructura myjsondata. POIs . . . . . . . . . . . . . . . . . . . . . . . . . . 53

18. Estructura Clases java para RA . . . . . . . . . . . . . . . . . . . . . . . . . 54

19. Metodo getPoiInformation . . . . . . . . . . . . . . . . . . . . . . . . . . . . 55

20. Metodo para la localizacion. . . . . . . . . . . . . . . . . . . . . . . . . . . . 55

21. Serial Licencia . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 56

22. Metodos respecto a la imagen de seleccion y tıtulos . . . . . . . . . . . . . . 57

23. Marker id . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 587

24. Marker selected . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 58

25. Indicador . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 58

26. Funcion para llamar myjsondata . . . . . . . . . . . . . . . . . . . . . . . . 59

27. Layout - Activitymain . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 59

28. Visor Marker de Paraderos y puntos de Recarga . . . . . . . . . . . . . . . 60

29. Visor Marker de Paraderos y cuadro de detalle de cada punto de interes . . 60

30. Detalle de punto de recarga tullave . . . . . . . . . . . . . . . . . . . . . . . 61

31. Cinco Clases y una Interfaz . . . . . . . . . . . . . . . . . . . . . . . . . . . 62

32. Capa con layar . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 67

33. Bitacora de Proyecto . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 70

8

Indice de cuadros

1. Comparacion Apps RA . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 38

2. Tipos de Requerimientos . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 45

9

1. Introduccion

La Realidad Aumentada (RA) combina tanto elementos del mundo real como del virtual

en una misma experiencia. Descubre imagenes, videos, sonidos y animaciones 3D simple-

mente usando la camara y los sensores de un dispositivo movil.

La RA permite interactuar con los usuarios ya existentes ademas de obtener nueva audien-

cia a un nuevo nivel. Dada la demanda e innovacion de las nuevas tecnologıas aplicadas

para los usuarios que las usan a diario, es de suma importancia vincular las acciones diarias

basicas como la planeacion de desplazarse de un lado a otro de la ciudad. En Bogota el

poco conocimiento de las diferentes rutas del SITP y la vinculacion de los demas sistemas

de transporte publico de la ciudad como el Transmilenio, dificultan la planeacion de los

viajes que se realizan en la ciudad, obligando a los usuarios a tomar el Transmilenio o

los buses de transporte publico, aumentando la demanda y colapsando estos dos sistemas;

para mitigar el colapso de las estaciones y buses del transporte publico y fomentar el uso

de los Buses del SITP, basta con que los usuarios puedan acceder a sus dispositivos moviles

y consulten la informacion acerca de las diferentes rutas y puntos de acceso (recarga) a

dicho sistema de transporte a su alrededor, para optimizar el uso de la movilidad de la

ciudad y mitigar la sobre carga de usuarios de los otros dos sistemas de transporte que

existen en la ciudad.

Con la creacion de una aplicacion de Realidad aumentada que vincule la informacion exis-

tente de las rutas, paraderos, horarios y puntos de accesos, el presente proyecto pretende

mitigar y establecer las pautas para el desarrollo de nuevas aplicaciones que usen los Geo-

datos para relacionar, marcar la pauta para el uso de estos mismos y mejorar la movilidad

de la ciudad, haciendo que los usuarios planeen mejor su desplazamiento y optimicen el

uso del SITP; aunque existen diferentes tipos de aplicaciones que permiten planear y con-

sultar la informacion de los paraderos del SITP, no son interactivos con el usuario, dado

que solo despliegan la informacion del viaje en un mapa en 2D con la ruta a seguir. Se

pretende con la realizacion de la aplicacion de Realidad aumentada, que el usuario conozca

los diferentes paraderos y que rutas pasan cerca de su ubicacion, simplemente haciendo un

escaneo y un barrido con la camara que posee el Smartphone, para ası poder planificar su

trayecto de una manera agil y sencilla.

La ejecucion del presente proyecto pretende determinar el uso y manejos de la informacion

del SITP usando los Geodatos, con el apoyo de los diferentes Sistemas de informacion

Geografica ya existentes, para que pueda hacer mas util la informacion y brindar mas

posibilidades de consulta a los interesados, permitiendo enfocarse en los datos de interes.

El trabajo espera ampliar las formas de brindar la informacion obtenida en el estudio y

que un mayor numero de usuarios pueda acceder a ella. La creacion de la aplicacion que

desarrolla con el fin de ser interactiva para los usuarios del SITP fomentando el uso de10

este mismo y ası poder contribuir con la descongestion que se genera en la ciudad por el

volumen de usuarios que acceden a los diferentes tipos de sistemas de transporte.

11

2. Objetivos

2.1. Objetivo General

Generar un prototipo como herramienta tecnologica de facil consulta y eficiente comuni-

cacion para los dispositivos moviles, mostrando los diferentes puntos de acceso y rutas que

se encuentran ubicadas sobre la carrera 13 entre calles 39 y 45 de la ciudad de Bogota per-

tenecientes al sistema integrado de transporte publico mediante Realidad Aumentada.

2.2. Objetivos Especıficos

Evaluar las librerıas y API de desarrollo que implementan realidad aumentada con

el fin de identificar las fortalezas a la hora de mejorar la comunicacion con el usuario.

Disenar los servicios Web y/o Sistema de informacion que soporte la librerıa para

los diferentes dispositivos moviles.

Evaluar las fuentes de informacion oficiales sobre rutas, paraderos y puntos de recarga

con el fin de establecer los posibles cambios para ajustarse al esquema de Realidad

Aumentada.

12

3. Marco Teorico

3.1. Sistema Integrado de Transporte (SITP)

El Sistema Integrado de Transporte Publico (SITP), es el sistema de transporte de Bo-

gota que tiene como objetivo integrar, reducir y modernizar el numero de empresas pres-

tadoras del servicio a solo 13 las cuales operan en igual numero de zonas en las que la

ciudad esta dividida (mas una zona neutra). El Sistema Integrado de Transporte Publi-

co comprende las acciones para la articulacion, vinculacion y operacion integrada de los

diferentes modos de transporte publico, las instituciones o entidades creadas para la pla-

neacion, la organizacion, el control del trafico y el transporte publico, la infraestructura

requerida para la accesibilidad, circulacion y el recaudo del sistema.

Para entender como funciona el Sistema integrado de Transporte Publico se hace necesa-

rio, conceptualizar la estructuracion planteada, por la alcaldıa mayor de Bogota D.C. El

SITP organiza a Bogota en trece zonas operacionales y una zona neutral, con el fin de

facilitar la operacion de cada uno de los operadores (concesionarios) del sistema y mejorar

el uso del servicio a toda la ciudadanıa.

Figura 1: Distribucion de las trece zonas del Sitp. Pagina oficial Sitp

Los paraderos del SITP se ubican estrategicamente en diferentes puntos de la ciudad y son

los unicos puntos autorizados donde un bus del SITP puede detenerse y el usuario puede

13

tomar un servicio. Estos constan de una senal y una lınea amarilla.

Senales

Las senales son estructuras (altura aprox. de 3600mm) instaladas sobre la vıa o adya-

centes a ella. De acuerdo con la cantidad de rutas disponibles en un paradero, las senales

se dividen en 5 tipos:

Tipo 1 : De 1 a 2 rutas

Tipo 2 : De 3 a 5 rutas

Tipo 3 : De 6 a 8 rutas

Tipo 4 : De 9 a 11 rutas

Tipo 5 : De 12 a 20 rutas

Tabla de Ruta

La tabla de ruta permite encontrar la informacion sobre el trayecto de una ruta del SITP

(urbana, complementaria y/o especial); mostrando los lugares por los cuales pasa la ruta,

vıas principales, barrios o hitos. Todas las rutas se identifican con el numero o codigo ubi-

cado en la parte superior y en seguida se muestra el nombre del destino, de mayor tamano

que los demas hitos, esto con el fin de reconocer mas facilmente la ruta y a donde se dirige.

Tabla de Ruta del Servicio Urbano

Algunas rutas del servicio urbano pueden requerir mas de un rutero debido a la longi-

tud de la ruta. La informacion contenida en el rutero incluye el codigo de la ruta y el

nombre del destino. Posteriormente su estructura se divide en dos columnas, la de la iz-

quierda presenta los corredores principales y destacados por donde transita la ruta y la

columna de la derecha te muestra los hitos o lugares reconocidos cercanos a su recorrido.

14

Figura 2: Tabla de rutas Sitp. Pagina oficial Sitp

15

3.2. Realidad Aumentada

El concepto tiene sus antecedentes en el de Realidad Mezclada que fue definido por primera

vez por Milgram y Kishino (1994) a partir del continuo realidad-virtualidad, comunmente

conocido como Continuo de Milgram. Segun este continuo, dependiendo de la cantidad

de entorno sintetico generado por ordenador, se puede establecer una clasificacion que va

desde el completamente real al completamente virtual, pasando por estados intermedios

de realidad aumentada (RA), y virtualidad aumentada (VA)1.

La ultima moda en tecnologıa en los dispositivos moviles, realidad aumentada (AR) ha

existido durante muchos anos, anterior a la era de los telefonos inteligentes. AR tiene como

objetivo complementar la informacion en capas en la parte superior de una imagen real,

como se ve a traves de la camara de un dispositivo movil. La imagen resultante puede

visualizarse en la pantalla. Todo esto ha sido posible gracias a una serie de tecnologıas que

ahora se encuentran en los telefonos inteligentes y dispositivos de tableta. Estos incluyen

sensores como acelerometros y GPS, pantallas grandes claros con capacidades multitactiles,

procesadores mas rapidos y unidades de procesamiento grafico (GPU), y altas velocidades

de Internet. Estas tecnologıas no fueron disenadas especıficamente con AR en mente. Por

lo tanto, el concepto presentara desafıos para cualquier desarrollador de aplicaciones que

trabajan para crear software util que realmente puede ser descrito como la realidad au-

mentada. En los ultimos anos una serie de aplicaciones de RA se han puesto a disposicion

para dispositivos Android y iOS. Muchos de estos son principalmente relacionados con el

marketing y la AR es vista como una plataforma ideal. Si usted quiere encontrar la ubi-

cacion del cajero automatico mas cercano, banco o un restaurante, por ejemplo, entonces

AR puede ofrecer una forma practica de encontrarlos y divertida. Aplicaciones basadas

en GPS se aprovechan de las herramientas que ya se encuentran en su telefono inteligente

Sistema de Posicionamiento Global (GPS).

En el ano 1990 Caudell acuno el termino “augmented reality” para referirse a un sis-

tema de montaje de paneles en el que estaba trabajando en Boeing, el sistema consistıa

en un dispositivo HMD (Head-mounted display) que guiaba al operador para el montaje

correcto de los cables de un sistema.

En 1994 Feiner, MacIntyre y Seligmann presentan el prototipo de su sistema KARMA

para ayudar al mantenimiento de una impresora laser.

1XVI Congreso Nacional de las tecnologıas de la informacion Geografica. Realidad aumentada para elaprendizaje de la geografıa: Geoalcoi, 2014.

16

Figura 3: Sistema Karma. Pagina oficial Sitp

En 1999 Kato desarrolla ARToolkit, la importancia de esta librerıa es clave ya que segun

Zope (2012): “fue una de las primera librerıas de realidad aumentada que surgieron, sien-

do un referente a seguir y, de hecho, hoy en dıa sigue usandose (librerıas basadas en

ARToolkit) y tiene variantes adaptadas a los lenguajes mas comunes como Java o Flash”.

ARToolkit es portado a Flash en 2009 (en la herramienta conocida como FLARToolkit).

En el ano 2000 Thomas desarrolla ARQuake (Interactive Outdoor Augmented Reality

Collaboration System) basado en el celebre videojuego Quake y que puede ser jugado al

aire libre en entornos reales.

En el ano 2008 sale al mercado el navegador de RA wikitude (Torres, 2012), lıder del

mercado. Posteriormente, en 2009, aparecen otras alternativas como Layar o junaio. Hoy

en dıa hay multiples opciones de este tipo de software de geolocalizacion con RA.

En el informe sobre realidad virtual de Durlach y Mavor (1995) se habla de la RA co-

mo sistemas en los cuales entornos reales y virtuales se combinan, aunque esta definicion

es sencilla adolece de ciertas carencias ya que nos llevarıa a catalogar algunos sistemas de

RA cuando realmente no lo son. Tal y como ejemplifica Reinoso (2013), si pensamos en la

prevision del tiempo que se ofrece en la television todos los dıas; ¿es RA ese mapa sobre

el que el presentador senala el tiempo que va a hacer en cada parte del paıs? La respuesta

es que no aunque podrıa caber en lo que nos ofrece esta primera aproximacion.

Otros autores ofrecen elaboraciones del concepto mas complejas que contienen mas ele-

mentos de discernimiento. Ası, por ejemplo De Pedro (2011) explica la RA como “aquella

tecnologıa capaz de complementar la percepcion e interaccion con el mundo real, brindando

al usuario un escenario real aumentado con informacion adicional generada por ordena-

dor. De este modo, la realidad fısica se combina con elementos virtuales disponiendose

de una realidad mixta en tiempo real” (p. 301). En esta definicion, mucho mas amplia,

observamos la aparicion de conceptos de gran trascendencia en los entornos de RA como

son la interaccion, la realidad mixta, sobre la que volveremos mas adelante, o el tiempo real.

17

Uno de los gurus de la RA, Kato, da lo que el delimita como una definicion funcional

de la RA (unicamente se fija en para que sirve la RA) y nos dice que es: .objetos virtuales

o anotaciones que pueden ser superpuestos en el mundo real como si realmente existieran”

(Kato, 2010). Aunque sencilla y facil de entender, esta afirmacion sobre la RA incluye los

mismos elementos que la anterior pero comprimidos en esa expresion de “como si real-

mente existieran”, obviamente en una frase tan corta no se puede establecer una discusion

sobre todos los conceptos implicados.

3.2.1. Herramientas para la realidad aumentada

2 En este trabajo se aborda el tema de la Realidad Aumentada (RA), que es una estrategia

tecnologica poco conocida y usada, debido a que para su uso es necesario integrar varias

tecnologıas, lo cual se ha hecho a traves de dispositivos especializados.

Para que pueda darse la Realidad Aumentada, hacen falta cinco componentes:

Camara : Para poder activar cualquier sistema de Realidad Aumentada necesita-

mos una camara que capte la realidad y sea la fuente de informacion real para la

aplicacion.

Marcador : El marcador es el elemento que activara la aplicacion de Realidad

Aumentada. Puede ser de varios tipos: una imagen que captemos con la camara,

o simplemente un punto geografico que al aproximarnos, inicie una secuencia de

Realidad Aumentada.

GPS : Permite el posicionamiento geografico del punto o los puntos de interes (Point

Of Interest -POI).

Brujula digital : Es el elemento que hace posible la orientacion en el espacio

Pantalla : Es imprescindible contar con una pantalla con la que sea posible visualizar

la informacion aumentada.

Geodatos: son aquellos datos espaciales georreferenciados, con informacion geografi-

ca (datos alfanumericos) que se encuentra asociada por un identificador comun a los

2Herramientas de desarrollo libres para aplicaciones de Realidad Aumentada con Android, UniversidadPolitecnica de Valencia, 2012.

18

objetos graficos de los mapas digitales. De esta forma, senalando un objeto se cono-

cen sus atributos e, inversamente, preguntando por un registro de la base de datos

se puede saber su localizacion en la cartografıa.

Servicio basado en localizacion o LBS (Location Based Services): Hacen

referencia a Servicios Basados en Localizacion o para algunos autores simplemente

servicios de localizacion.3

Conexion de datos: Es vital que el dispositivo movil tenga acceso a internet.

Software de Realidad Aumentada: El ultimo elemento es el software o programa

informatico que interprete la aplicacion y la reproduzca en el ordenador o movil.

Existen diferentes tipos de Realidad Aumentada: por reconocimiento y por geolocalizacion.

Y, dependiendo del uso que se le quiera dar, conviene utilizar uno u otro tipo. Para ello

hay multitud de programas y aplicaciones que permiten la creacion de una propia Realidad

Aumentada.

Mixare: (mix Augmented Reality Engine) es un framework de codigo abierto para

RA, publicada bajo la licencia GPLv3 3. Mixare esta disponible para sistemas An-

droid y para iPhone.

Este framework permite construir aplicaciones completas y proporciona funciones

para asociar coordenadas espaciales y texto. Es decir, su funcionalidad se resume

a permitir asociar texto a localizaciones mediante posicionamiento GPS y acceso a

datos por conexion de red. Las visualizaciones de Mixare estan limitadas a cajas de

texto e imagenes 2D.

AndAR:AndAR es un SDK de codigo abierto para el desarrollo de aplicaciones de

RA para Android basadas en el reconocimiento de marcadores [ANDAR 12]. Utiliza

marcadores del tipo ARToolKit. Permite la carga de objetos 3D con formato .obj.

Esta librerıa se presenta con mas detalle en el apartado 3.2 y posteriores.

Layar Creator: Esta aplicacion permite crear contenido aumentado a traves del

escaneo de imagenes, tal y como se hace al escanear un codigo QR o BIDI.

Metaio: Mobile SDK es una plataforma de desarrollo de aplicaciones de RA para

dispositivos Android e iOS creada por la empresa Metaio en Alemania. LA empresa

dispone de mas de 10 anos de experiencia en el desarrollo de esta tecnologıa y po-

see otras plataformas de desarrollo para PC y Web. Las aplicaciones se basan en el

3http://www.positioningtechniques.eu/

19

reconocimiento de marcas naturales, e integra la gravedad en los modulos de reco-

nocimiento para anadir precision.

El codigo del SDK para moviles ha sido liberado recientemente. Este incluye un mo-

tor de renderizado que soporta distintos formatos 3D (.md2 animado y .obj estatico).

Tambien puede utilizarse con Unity 3D aunque requiere adquirir su licencia. Este

SDK es presentado con mas detalle en el apartado 3.5 y posteriores.

Aumentaty Author: : Permite generar contenidos de Realidad Aumentada tanto

en Windows como en Mac. opinion, es la mejor manera para generar contenidos de

RA en Windows y Mac.

BuildAR: Ademas de los contenidos, tambien permite crear nuestro propio marca-

dor.

ARSpot: Permite crear escenas de Realidad Aumentada.

La Realidad Aumentada Geo localizada (en ingles Augmented Reality o AR) consiste

en superponer informacion sobre imagenes en tiempo real. Permite visualizar lo que la

camara del movil capta, superponiendo puntos de interes de cualquier tema. La Realidad

Aumentada para dispositivos moviles precisa de terminales de ultima generacion, que esten

dotados de camara, GPS y brujula digital, ası como de conexion permanente a Internet.

Para desarrollarlo utilizamos la app gratuita Layar.

Los Servicios Basados en Localizacion buscan ofrecer un servicio personalizado a los usua-

rios basandose en la mayorıa de situaciones en informacion de ubicacion geografica de

estos. Para su operacion utiliza tecnologıa de Sistemas de Informacion Geografica, alguna

tecnologıa de posicionamiento bien sea de lado cliente (ej GPS, WiFi, etc) o de lado ser-

vidor (ej. servicio de posicionamiento suministrado por el operador de la red) y tecnologıa

de comunicacion de redes para transmitir informacion hacia una aplicacion LBS que pueda

procesar y responder la solicitud.

20

3.3. Funcionamiento Realidad Aumentada

Cualquier aplicacion de realidad aumentada RA se puede estructurar en 4 etapas:

Captura del entorno real

Reconocimiento y tracking del marcador, target o geo posicionamiento.

Renderizacion de los objetos virtuales.

Visualizacion o superposicion del mundo real y virtual.

Figura 4: Ejemplo aplicacion Layar. https://www.layar.com

Utilizando los sensores integrados en los dispositivos moviles se analiza la posicion del

usuario (GPS) y le ofrece informacion de los puntos de interes cercanos a el (museos,

monumentos, restaurantes, etc) que para este caso seran los paraderos del SITP.

Figura 5: Senal paradero SITP. https://www.sitp.com

La RA unida a la Geolocalizacion permite la creacion de aplicaciones de gran calidad, di-

seno y usabilidad, con una apariencia diferencial y orientada a cada usuario en particular.

La combinacion de ambas tecnologıas se convierte en un potente aliado para completar

los contenidos de todo tipo de Apps en las que la informacion digital enriquezca la funcio-

nalidad de una aplicacion que se sirva de la ubicacion del usuario: como guıas turısticas,21

de ocio o de restaurantes; o para localizar facilmente cualquier tipo de servicio de ayuda

al ciudadano como paradas de metro o autobus; o servicios de interes general como gaso-

lineras, parkings, cajeros automaticos, farmacias, comercios, etc.

Para poder desarrollar la interfaz de realidad aumentada Geo localizada hay que entender

algunos conceptos, los cuales seran explicados brevemente y se iran desarrollando a lo largo

de la tesis, los conceptos a tener en cuenta son:

Reality View

Se refiere a la secuencia de video producido por la camara del Smartphone La apli-

cacion de RA captura imagenes de la secuencia de video, aumentandolo con objetos

virtuales para ası crear la imagen aumentada.

Registration Tracking

Describe el metodo para alinear un objeto virtual con las coordenadas 3D en la vis-

ta real. Un aspecto importante en RA es cuan realista integra la aumentacion en

el mundo real El sw debe derivar las coordenadas reales del mundo a partir de las

imagenes de la camara. Este metodo se conoce como Registration y usa distintos

metodos de Computer Vision.

Para las aplicaciones en smartphones con Realidad Aumentada geo-localizada, el

tracking de los objetos involucra el uso de sensores de localidad como el GPS, el

compas digital y el acelerometro Otras aplicaciones pueden usar sistema de recono-

cimiento (optical tracking) o una combinacion de ambos.

Punto de Interes (Point of Interest)

Se refiere a un item de datos individual usualmente asociado con una localidad

geografica (longitud, latitud, altitud) o un patron visual (marcador, imagen, etc.)

que puede ser renderizado de alguna forma por la aplicacion de RA, El tipo de datos

POI debe proveer una descripcion de la localidad o una imagen de referencia a ser

usada en el tracking y el tipo de contenido a ser renderizado. Normalmente este

contenido no es parte del POI sino un enlace donde se encuentra el contenido.

Objeto Virtual

Algun tipo de contenido digital que es renderizado por la aplicacion y superpuesto

en la vista real. Incluye modelos 3D, imagenes 2D, iconos y texto.

Como industria pionera, Layar mantiene una de las plataformas de realidad aumen-

tada movil mas grande con miles de desarrolladores y de layers de contenido y con

mas de 10 millones de instalaciones del Navegador de Realidad Aumentada Uno de22

los objetivos de la empresa es que la RA este disponible para todo el mundo. Se basa

en layers o capas Los layers en la plataforma Layar incluyen varios tipos de experien-

cias con interaccion , objetos 3D y animacion Layers basados en localidad ayudan al

usuario a encontrar sitios cercanos como cafes, tiendas, negocios, historicos, museos.

El navegador hace uso de:

• La camara interna del movil

• GPS

• Acelerometro

• Brujula

23

3.4. Servidores Web

Un servidor es un nodo que forma parte de una red y al tiempo provee servicios a otros

nodos denominados clientes.

Es una aplicacion informatica o programa que realiza tareas en beneficio de otras aplica-

ciones llamados clientes. Algunos servicios muy comunes son los servicios de archivos, que

permiten a usuarios almacenar y acceder a los archivos de una computadora y los servicios

de aplicaciones, que realizan tareas en beneficio directo del usuario final. Existen ordena-

dores que cumplen simultaneamente las funciones de cliente y de servidor. Una maquina

servidor no es mas que una que suministra servicios a otras maquinas.

Funciones

La manera mas simple de explicar como funciona un servidor web se da por media la

conexion de un PC a internet. El PC utiliza un navegador web, este a su vez se conecta

al servidor y solicita la pagina. El servidor envıa la pagina HTML solicitada, dando como

resultado poder visualizar la informacion requerida en el computador. Ver imagen

Figura 6: Conexion a un servidor

El navegador divide la URL (identificador de recursos uniforme) en tres partes 4

El protocolo (“http”).

El nombre del servidor (www.oocities.com)

La ruta (SunsetStrip/Ampitheatre/5064)

4Servidores web - slideshare.net/2013maquerajuan/que-es-un-servidor-pdf-personalizada24

Cada maquina en internet tiene una direccion IP unica. Para que las maquinas en in-

ternet funcionen, todo lo que se necesita es una direccion IP para poder establecer una

comunicacion con el servidor. Estas direcciones IP estan compuestas por numeros; para

transformar estas a nombres, se utilizan un grupo de servidores llamados Domain Name

Servers (DNS).

Los servidores aceptan conexiones desde puertos exteriores y si un firewall no lo esta pro-

tegiendo permite conectarse a el y utilizar el respectivo servidor.

La mayorıa de servidores anaden niveles de seguridad a sus tareas. Algunas presentan una

ventana d dialogo que pregunta nombre de usuario y contrasena. El servidor deja que el

dueno o el administrador del servidor mantengan una lista de nombres y contrasenas para

las personas a las que se les permite ver la pagina y el servidor deja que solo aquellas

personas que poseen la contrasena tengan acceso. Los servidores mas avanzados anaden

seguridad para permitir una conexion encriptada entre el servidor y el navegador.

Tipos de Servidores

Los tipos comunes de servidores son los que almacenan varios tipos de archivos y los

distribuye a otros clientes en la red.

Servidor de Impresiones: Controla una o mas impresoras y acepta trabajos de im-

presion de otros clientes de la red.

Servidor de correo: Almacena, envıa, recibe, en ruta y realiza operaciones relaciona-

das con el correo electronico para los clientes de la red.

Servidor de Fax: almacena, envıa, recibe en ruta y realiza otras funciones necesarias

para la transmision, la recepcion y la distribucion apropiadas de los fax.

Servidor de telefonıa: realiza funciones relacionadas con la telefonıa, como es la de

contestador automatico, realizando las funciones de un sistema interactivo para la

respuesta de la voz, almacenando los mensajes de voz, encaminando las llamadas y

controlando tambien la red o el internet.

Servidor Proxy: realiza cierto tipo de funciones a nombre de otros clientes en la

red para aumentar el funcionamiento de ciertas operaciones, tambien proporciona

servicios de seguridad, o sea, incluye un cortafuegos. Permite administrar el acceso

a internet en una red de computadoras permitiendo o negando el acceso a diferentes

sitios web.25

Servidor del acceso remoto (RAS): controla las lıneas de modem de los monitores u

otros canales de comunicacion de la red para que las peticiones conecten con la red de

una posicion remota, responde llamadas telefonicas entrantes o reconoce la peticion

de la red y realiza la autentificacion necesaria y otros procedimientos necesarios para

registrar a un usuario en la red.

Servidor de uso: realiza la parte logica de la informatica o del negocio de un uso del

cliente, aceptando las instrucciones para que se realicen las operaciones de un sitio

de trabajo y sirviendo los resultados a su vez al sitio de trabajo, mientras que el sitio

de trabajo realiza la interfaz operadora o la porcion de GUI del procesador (logica)

que se requiere para trabajar correctamente.

Servidor web: almacena documentos HTML, imagenes, archivos de texto, escrituras

y demas material web compuesto por datos y distribuye este contenido a clientes que

la piden en la red.

Servidor de base de Datos: provee servicios de bases de datos a otros programas u

otras computadoras, como es definido por el modelo cliente – servidor.

Servidor de reserva: tiene el software de reserva de la red instalado y tiene cantidades

grandes de almacenamiento de la red en discos duros u otras formas del almacena-

miento, disponibles para que se utilice con el fin de asegurarse de que la perdida

de un servidor principal no afecte a la red. Esta tecnica tambien es denominada

clustering.

Servidor de Seguridad: Tiene software especializado para detener intrusiones mali-

ciosas, normalmente tienen antivirus, antispyware, antimalware, ademas de contar

con cortafuegos redundantes de diversos niveles y/o capas para evitar ataques, los

servidores de seguridad varıan dependiendo de su utilizacion e importancia.

26

3.5. Servidores Ftp

FTP (siglas en ingles de File Transfer Protocol, ’Protocolo de Transferencia de Archivos’)

en informatica, es un protocolo de red para la transferencia de archivos entre sistemas

conectados a una red TCP (Transmission Control Protocol), basado en la arquitectura

cliente-servidor. Desde un equipo cliente se puede conectar a un servidor para descargar

archivos desde el o para enviarle archivos, independientemente del sistema operativo uti-

lizado en cada equipo.

El servicio FTP es ofrecido por la capa de aplicacion del modelo de capas de red TCP/IP

al usuario, utilizando normalmente el puerto de red 20 y el 21. Un problema basico de FTP

es que esta pensado para ofrecer la maxima velocidad en la conexion, pero no la maxima

seguridad, ya que todo el intercambio de informacion, desde el login y password del usua-

rio en el servidor hasta la transferencia de cualquier archivo, se realiza en texto plano sin

ningun tipo de cifrado, con lo que un posible atacante puede capturar este trafico, acceder

al servidor y/o apropiarse de los archivos transferidos.

Para solucionar este problema son de gran utilidad aplicaciones como SCP y SFTP, in-

cluidas en el paquete SSH, que permiten transferir archivos pero cifrando todo el trafico.

Servidor FTP

Un servidor FTP es un programa especial que se ejecuta en un equipo servidor nor-

malmente conectado a Internet (aunque puede estar conectado a otros tipos de redes,

LAN,MAN, etc.). Su funcion es permitir el intercambio de datos entre diferentes servido-

res/ordenadores.

Por lo general, los programas servidores FTP no suelen encontrarse en los ordenadores

personales, por lo que un usuario normalmente utilizara el FTP para conectarse remota-

mente a uno y ası intercambiar informacion con el.

Las aplicaciones mas comunes de los servidores FTP suelen ser el alojamiento web, en el

que sus clientes utilizan el servicio para subir sus paginas web y sus archivos correspon-

dientes; o como servidor de backup (copia de seguridad) de los archivos importantes que

pueda tener una empresa. Para ello, existen protocolos de comunicacion FTP para que los

datos se transmitan cifrados, como el SFTP (Secure File Transfer Protocol).

Cliente FTP

Cuando un navegador no esta equipado con la funcion FTP, o si se quiere cargar archivos

en un ordenador remoto, se necesitara utilizar un programa cliente FTP. Un cliente FTP

es un programa que se instala en el ordenador del usuario, y que emplea el protocolo FTP

para conectarse a un servidor FTP y transferir archivos, ya sea para descargarlos o para

27

subirlos. Para utilizar un cliente FTP, se necesita conocer el nombre del archivo, el orde-

nador en que reside (servidor, en el caso de descarga de archivos), el ordenador al que se

quiere transferir el archivo (en caso de querer subirlo nosotros al servidor), y la carpeta en

la que se encuentra.

Algunos clientes de FTP basicos en modo consola vienen integrados en los sistemas ope-

rativos, incluyendo Microsoft Windows, DOS, GNU/Linux y Unix. Sin embargo, hay dis-

ponibles clientes con opciones anadidas e interfaz grafica. Aunque muchos navegadores

tienen ya integrado FTP, es mas confiable a la hora de conectarse con servidores FTP no

anonimos utilizar un programa cliente.

Acceso Anonimo

Los servidores FTP anonimos ofrecen sus servicios libremente a todos los usuarios, permi-

ten acceder a sus archivos sin necesidad de tener un ’USER ID’ o una cuenta de usuario.

Es la manera mas comoda fuera del servicio web de permitir que todo el mundo tenga

acceso a cierta informacion sin que para ello el administrador de un sistema tenga que

crear una cuenta para cada usuario.

Si un servidor posee servicio ’FTP anonymous’ solamente con teclear la palabra ((anonymous)),

cuando pregunte por tu usuario tendras acceso a ese sistema. No se necesita ninguna con-

trasena preestablecida, aunque tendras que introducir una solo para ese momento, nor-

malmente se suele utilizar la direccion de correo electronico propia.

Solamente con eso se consigue acceso a los archivos del FTP, aunque con menos privile-

gios que un usuario normal. Normalmente solo podras leer y copiar los archivos que sean

publicos, ası indicados por el administrador del servidor al que nos queramos conectar.

Normalmente, se utiliza un servidor FTP anonimo para depositar grandes archivos que

no tienen utilidad si no son transferidos a la maquina del usuario, como por ejemplo pro-

gramas, y se reservan los servidores de paginas web (HTTP) para almacenar informacion

textual destinada a la lectura en lınea.

Acceso de usuario

Si se desea tener privilegios de acceso a cualquier parte del sistema de archivos del servi-

dor FTP, de modificacion de archivos existentes, y de posibilidad de subir nuestros propios

archivos, generalmente se suele realizar mediante una cuenta de usuario. En el servidor

se guarda la informacion de las distintas cuentas de usuario que pueden acceder a el, de

manera que para iniciar una sesion FTP debemos introducir una autentificacion (en ingles:

login) y una contrasena (en ingles: password) que nos identifica unıvocamente.

Cliente FTP basado en Web

Un ((cliente FTP basado en Web)) no es mas que un cliente FTP al cual podemos acceder

28

a traves de nuestro navegador web sin necesidad de tener otra aplicacion para ello. El

usuario accede a un servidor web (HTTP) que lista los contenidos de un servidor FTP.

El usuario se conecta mediante HTTP a un servidor web, y el servidor web se conecta

mediante FTP al servidor FTP. El servidor web actua de intermediario haciendo pasar la

informacion desde el servidor FTP en los puertos 20 y 21 hacia el puerto 80 HTTP que ve

el usuario.

Siempre hay momentos en que nos encontramos fuera de casa, no llevamos el ordenador

portatil encima y necesitamos realizar alguna tarea urgente desde un ordenador de acceso

publico, de un amigo, del trabajo, la universidad, etc. Lo mas comun es que no esten

instaladas las aplicaciones que necesitamos y en muchos casos hasta carecemos de los per-

misos necesarios para realizar su instalacion. Otras veces estamos detras de un proxy o

cortafuegos que no nos permite acceder a servidores FTP externos.

Al disponer de un cliente FTP basado en Web podemos acceder al servidor FTP remoto

como si estuvieramos realizando cualquier otro tipo de navegacion web. A traves de un

cliente FTP basado en Web podras, crear, copiar, renombrar y eliminar archivos y direc-

torios. Cambiar permisos, editar, ver, subir y descargar archivos, ası como cualquier otra

funcion del protocolo FTP que el servidor FTP remoto permita.

Acceso de invitado

El acceso sin restricciones al servidor que proporcionan las cuentas de usuario implica

problemas de seguridad, lo que ha dado lugar a un tercer tipo de acceso FTP denomina-

do invitado (guest), que se puede contemplar como una mezcla de los dos anteriores. La

idea de este mecanismo es la siguiente: se trata de permitir que cada usuario conecte a

la maquina mediante su login y su password, pero evitando que tenga acceso a partes del

sistema de archivos que no necesita para realizar su trabajo, de esta forma accedera a un

entorno restringido, algo muy similar a lo que sucede en los accesos anonimos, pero con

mas privilegios.

29

3.6. Metodologıa de trabajo

Para alcanzar los objetivos propuestos fue necesario establecer los siguientes pasos a desa-

rrollar de forma eficiente y organizada:

Nivel de Investigacion

Diseno de aplicacion de realidad aumentada a partir del fortalecimiento de elementos

teoricos vistos durante las asignaturas de Programacion y los sistemas de informacion

geografica.

Reunir la informacion referente a los paraderos del sistema integrado de transporte

publico ubicados dentro de la carrera 13 entre la Av calle 39 y calle 45, con el fin de

determinar las potencialidades y deficiencias de los datos.

Diseno de la Investigacion

Recopilar y ejecutar las herramientas principales para la creacion del servidor web

sencillo, que sera el responsable de alojar la web de la aplicacion ası como la base de

datos.

Manipular la herramienta de desarrollo Android SDK (Software Development Kit)

basadas en las aplicaciones de realidad aumentada para smarthphones. Esto incluye

un depurador de codigo, librerıas, simulador de dispositivos moviles, documentacion,

ejemplos de codigo y tutoriales.

Diseno de la base de datos estructurando los requerimientos del sistema, sobre los

cuales se desarrollaran las herramientas y aplicaciones teniendo en cuenta los intere-

ses y necesidades de los usuarios.

Diseno de arquitectura, eleccion del hardware y software que se ajuste mejor a cum-

plir con los objetivos de forma clara y util a los posibles futuros usuarios de la

aplicacion para los dispositivos moviles.

Organizar la informacion adquirida con el fin de hacerla eficiente y ventajosa dentro

de la interfaz de la aplicacion.

30

Implantacion

Revisar y ajustar, como hacer pruebas piloto para encontrar las fallas y deficiencias

de la aplicacion. Correccion de errores que afecten la ejecucion de la misma.

Entrega de productos finales

Entrega de base de datos con la informacion requerida de cada paradero, georrefe-

renciado, del sistema integrado de transporte SITP.

Una aplicacion para dispositivos moviles de realidad aumentada para los paraderos

del SITP bajo la herramienta de desarrollo Android.

Gestion para ofrecer la aplicacion dentro de una tienda virtual

Se deben consultar los requerimientos para compartir la aplicacion de realidad au-

mentada para dispositivos moviles con la comunidad universitaria y habitantes del

sector, en principio. Tanto sistema Android como IOS.

Fuentes de Informacion

Informacion obtenida de manera directa en Transmilenio S.A enfocado en los paraderos

del sistema de transporte publico de Bogota.

31

4. Definicion del Problema

4.1. Contexto del problema

Las aplicaciones de R. A. para dispositivos moviles se han desarrollado a lo largo de estos

ultimos anos debido al aumento tanto de las capacidades de Hardware como de los nuevos

sistemas operativos que integran diversos componentes esenciales como GPS, giroscopios

o acelerometros.

En el mercado actual existe un gran numero de aplicaciones que incorporan la realidad

aumentada para ofrecer de manera mas interactiva y dinamica informacion sobre el en-

torno que rodea al usuario. Muchas de estas aplicaciones se asemejan a los objetivos que se

desean alcanzar en este proyecto, aunque se encuentran dificultades que se hacen necesa-

rias resolver. Para el proyecto se esta buscando una aplicacion que disponga de tecnologıa

de geolocalizacion y se caracterice por la accesibilidad, usabilidad e innovacion; orientado

al sistema integrado de transporte publico de la ciudad de Bogota (SITP).

4.2. Formulacion del problema

En la actualidad los distintos usuarios del SITP no conocen con certeza las diferentes

rutas ni puntos de acceso (recarga) a dicho sistema de transporte a su alrededor. Esta

problematica obedece principalmente a que no existe una fuente de dicha informacion

para que sea consultada por los usuarios de manera eficiente, sin desplazamientos y desde

cualquier parte de la zona de estudio a traves de una aplicacion con realidad aumentada

para dispositivos moviles.

Los usuarios no cuentan con herramientas tecnologicas de facil consulta y util comunicacion

en lo que tiene que ver a las zonas de acceso, trayectos y puntos de recarga del sistema

integrado de transporte de Bogota pues las alternativas actuales presentan problemas de

actualizacion y formato, al no estar totalmente integradas a dispositivos moviles como

telefonos inteligentes y tabletas con una conexion a internet.

4.3. Solucion Propuesta

Dentro de los procesos academicos desarrollados por la Universidad Distrital Francisco

Jose De Caldas, se observa que no existe un proceso eficiente que se ajuste a los canales de

informacion modernos, donde se permita vincular las nuevas tendencias de la tecnologıa,

32

que van a la mano con los sistemas de informacion Geografica. La realidad aumentada geo

localizada, es una herramienta poderosa que los ingenieros catastrales deben aprender a

usar, dado que se pueden desarrollar proyectos de investigacion, ademas de marcar pautas

en el campo laboral con innovacion; por esta razon este proyecto busca implementar un

geo servicio y una aplicacion para las diferentes plataformas que usan los Smartphone las

cuales son: Android y IOS, que pretende ser una herramienta moderna, eficiente y eficaz,

que permita consultar la informacion del SITP de Bogota en su plan piloto de la localidad

de Chapinero sobre la carrera 13 entre calles 39 y 45 de la ciudad de Bogota.

La aplicacion de realidad aumentada que se busco desarrollar contiene la informacion de

los diferentes paraderos y rutas del sistema integrado de transporte publico en la ciudad

de Bogota (datos encontrados en la pagina oficial IDECA - Infraestructura de Datos Es-

paciales para el Distrito Capital) y que tiene como plan piloto la localidad de chapinero.

Aportando y generando pautas de como desarrollar aplicaciones geo localizadas usando

realidad aumentada dandolas a conocer a la comunidad universitaria y los usuarios del

sistema de transporte publico de la ciudad.

4.4. Analisis de herramientas

Existen varias librerıas de software para RA e incontables herramientas para la creacion

de aplicaciones de realidad aumentada en donde se analizaron sus diferencias, teniendo en

cuenta sus tipos de licencia.

En el desarrollo de las librerıas ARToolKit (Hirokazu Kato en 1999), se encuentran dife-

rentes piezas generalmente de tipo freeware, disenadas para realizar las tareas necesarias

de registro ası como la composicion de la escena aumentada en tiempo real, tales como

MXRToolKit, ARTag o Studierstube. Este tipo de librerıas utilizan tecnicas de vision por

computador basadas en el registro de una serie de marcas (patrones de marcas planas)

para el calculo de la matriz de transformacion, siendo su uso muy extendido entre la co-

munidad cientıfica. Sin embargo, existen algunas basadas en vision por computador en las

que el posicionamiento se realiza mediante el registro de rasgos naturales, como es el caso

de las librerıas BazAR.

33

4.4.1. SDK (Software Development Kit)

Es un kit de desarrollo de software, creada para permitir el uso de cierto lenguaje de

programacion, o puede, tambien, incluir hardware sofisticado para comunicarse con un

determinado sistema. Las herramientas mas comunes incluyen soporte para la deteccion

de errores de programacion como un entorno de desarrollo integrado o IDE (del ingles In-

tegrated Development Environment) y otras utilidades. Los SDK frecuentemente incluyen

tambien codigos de ejemplos y notas tecnicas de soporte como documentacion para ayudar

a clarificar ciertos aspectos del software.

4.4.2. API

Interfaz de programacion de aplicaciones o API (del ingles Application Programming In-

terface) es el conjunto de funciones y procedimientos (o metodos, en la programacion

orientada a objetos) que ofrece cierta biblioteca para ser utilizado por otro software como

una capa de abstraccion. Son usadas generalmente en las bibliotecas o librerıas.

4.4.3. Framework

En el desarrollo de software, un framework o infraestructura digital, es una estructura

conceptual y tecnologica de soporte definido, normalmente con artefactos o modulos de

software concretos, con base a la cual otro proyecto de software puede ser mas facilmente

organizado y desarrollado. Tıpicamente, puede incluir soporte de programas, bibliotecas,

y un lenguaje interpretado, entre otras herramientas, para ası ayudar a desarrollar y unir

los diferentes componentes de un proyecto.

Librerıa: En ciencias de la computacion, una biblioteca (del ingles library) es un conjunto

de subprogramas utilizados para desarrollar software. Las bibliotecas contienen codigo y

datos, que proporcionan servicios a programas independientes, es decir, pasan a formar

parte de estos. Esto permite que el codigo y los datos se compartan y puedan modificarse

de forma modular. Algunos programas ejecutables pueden ser a la vez programas indepen-

dientes y bibliotecas, pero la mayorıa de estas no son ejecutables. Ejecutables y bibliotecas

hacen referencias (llamadas enlaces) entre sı a traves de un proceso conocido como enlace,

que por lo general es realizado por un software denominado enlazador.

La mayorıa de los sistemas operativos modernos proporcionan bibliotecas que implementan

los servicios del sistema. De esta manera, estos servicios se han convertido en una ”materia

prima”que cualquier aplicacion moderna espera que el sistema operativo ofrezca. Como34

tal, la mayor parte del codigo utilizado por las aplicaciones modernas se ofrece en estas

bibliotecas.

4.5. Herramientas de Realidad Aumentada

Una de las librerıas para la creacion de realidad Aumentada, es ARToolkit, es una librerıa

poderosa, que engloba la biblioteca del lenguaje de programacion C y C++, que permite

a los desarrolladores, poder colocar en superposicion de imagenes graficas de ordenador al

mundo real, ARTollkit utiliza tecnicas de vision por ordenador para calcular la posicion

de la camara y la orientacion relativa, ARToolKit incluye las bibliotecas de seguimiento y

el codigo fuente completo de estas bibliotecas que permiten la programacion al puerto el

codigo para una variedad de plataformas o personalizar para sus propias aplicaciones.

4.5.1. ARToollkit

Aunque no solo para moviles, son unas librerıas de uso mas generico que permite imple-

mentar realidad aumentada con camaras y proyectores. ARToolKit se ejecuta actualmente

en el SGI IRIX, PC Linux, Mac OS X y PC con Windows (95/98 / NT / 2000 / XP)

sistemas operativos. La ultima version es completamente multiplataforma.

4.5.2. Wikitude SDK

Es un Kit de Desarrollo de Software Wikitude SDK es una librerıa de software y un

framework que Soporta cualquier tipo de casos de uso basados en localizacion, (“Phone-

Gap Plugin - Wikitude SDK Documentation - Devzone,” n.d.), provee de un conjunto de

herramientas para el desarrollo de aplicaciones con Realidad Aumentada personalizadas

(Butchart, 2011). Esta disponible gratis cuando se utiliza en proyectos no comerciales,

pero tambien requiere del registro y permiso de su uso. Ademas, la gestion de los datos

para mostrar en la realidad aumentada depende de Wikitude (y sus servidores) o de servi-

dores que trabajan con esta plataforma, permitiendo a los Desarrolladores aprovechar las

tecnologıas web estandar, como HTML5, CSS y JavaScript para crear mundos de realidad

aumentada. De este modo, no hay necesidad de que los Desarrolladores aprendan otros

idiomas de programacion, lo que les permite obtener creaciones AR de la tierra y en fun-

cionamiento en un tiempo mınimo.

35

PhoneGap

Es un framework para el desarrollo de aplicaciones moviles producido por Nitobi, y compra-

do posteriormente por Adobe Systems. Principalmente, PhoneGap permite a los programa-

dores desarrollar aplicaciones para dispositivos moviles utilizando herramientas genericas

tales como JavaScript, HTML5 y CSS3. Las aplicaciones resultantes son hıbridas, es decir

que no son realmente aplicaciones nativas al dispositivo (ya que el renderizado se realiza

mediante vistas web y no con interfaces graficas especıficas de cada sistema), pero no se

tratan tampoco de aplicaciones web (teniendo en cuenta que son aplicaciones que son em-

paquetadas para poder ser desplegadas en el dispositivo incluso trabajando con el API del

sistema nativo), maneja API que permiten tener acceso a elementos como el acelerometro,

la camara, los contactos en el dispositivo, la red, el almacenamiento, las notificaciones, etc.

Estas API se conectan al sistema operativo usando el codigo nativo del sistema huesped

a traves de una Interfaz de funciones foraneas en Javascript, permite el desarrollo ya sea

ejecutando las aplicaciones en nuestro navegador web, sin tener que utilizar un simulador

dedicado a esta tarea, y brinda la posibilidad de soportar funciones sobre frameworks como

Sencha Touch o JQuery Mobile.

4.5.3. Layar

Es una biblioteca estatica que implementa la funcionalidad basica de la app de Layar

en una aplicacion, como la carga de una capa y la presentacion de la vision de realidad

aumentada. Igual que con Wikitude, la gestion de datos depende de sus servidores, Es un

navegador de realidad aumentada para Android y IPhone, su funcionamiento se basa en

usar la informacion que proporciona el GPS y la brujula que posee el terminal, mientras en

la pantalla se muestra lo que la camara capta y sobre ella informacion relativa en tiempo

real de lo que se tiene delante del usuario; se debe apuntar con el terminal Android en

una direccion para ası poder recibir en detalle la informacion digital denominada “Capa”,

que pueden ofrecer servicios tales como la busqueda de cajeros automaticos, restaurantes o

transporte publico. Layar tambien ofrece la posibilidad de crear capas segun las necesidades

del usuario, esto se logra ingresando a la pagina principal de Layar, y accediendo a la

pestana de Layar “developer”, desde allı se crean los POIs (Puntos de Interes), los cuales

se crean introduciendo el nombre de la capa o punto de interes, las descripcion del punto

de interes, el tipo de capa si se desea en 3D o 2D, y la imagen o logo que llevara el

punto de interes, los puntos de interes se deberan almacenar en servidor web en el cual

contendra las coordenadas del punto de interes y una vez geo localizada, se debe especificar

el url del servidor, donde se alojan los puntos de Interes geo-localizados, dado que Layar36

es un navegador de realidad aumentada, consulta los POIs, almacenados en el servidor

Web en el cual se le indica donde estan alojados, la herramienta Layar aunque poderosa

no permite la creacion de aplicaciones de realidad aumentada, dado que es un navegador

de puntos de interes, en los cuales se encontraran diferentes capas, el usuario es quien debe

definir que capas esta interesado en consultar.

4.5.4. Espira

Proyecto educativo EspiRA realidad Aumentada y Geolocalizacion, es una aplicacion movil

de realidad aumentada Geolocalizada, destinada especıficamente al mundo educativo, crea-

da por el ministerio de telecomunicaciones de Barcelona, Espana, con el fin de usar la

Realidad Aumentada, para fines educativos, la idea se basa en un navegador de realidad

aumentada, donde se pueden consultar Puntos de Interes educativos, basado en el concep-

to de Layar, dentro de esta herramienta los estudiantes pueden subir los Puntos de Interes

y consultarlos.

4.5.5. Mixare

Es un visor de realidad aumentada de codigo abierto, publicado bajo la licencia GPLv3.

Funciona como una aplicacion autonoma o se puede integrar en el codigo de una aplicacion

a traves de su API. Es relativamente antigua (en terminos de programacion) y el codigo

puede ser confuso debido a su extension y complejidad, este framework permite construir

aplicaciones completas y proporciona funciones para asociar coordenadas espaciales y tex-

to. Es decir, su funcionalidad se resume a permitir asociar texto a localizaciones mediante

posicionamiento GPS y acceso a datos por conexion de red. Las visualizaciones de Mixare

estan limitadas a cajas de texto e imagenes 2D.

4.5.6. Appunta

Es una API que permite no solo mostrar toda la informacion geoposicional para el usuario,

sino que tambien puede crear nuevas formas de mostrar la informacion. Es una API con

codigo OS con licencia Apache 2.0. Esto permite que pueda ser modificada para la buena

integracion en aplicaciones propias.

37

Lib Dinamicas Multiples Lenguajes Multiplataforma RA Geo-Localizada SDK API Navegador POI Android IOS Software Libre Software Comercial

Wikitude X X X X X - X X X X -

Layar - X X X - X X X X - X

Mixare - - X X X - X X - - X

EspiRA X - - X - - X X X X -

Junaio X X X X X - X X X - X

Appunta X X X - X - - - - - -

Cuadro 1: Comparacion Apps RA

4.5.7. Junaio

Ofrece un servicio gratuito y se constituye como navegador de realidad aumentada basado

tanto en la geolocalizacion como en el reconocimiento de imagenes. Como las posibilidades

mas comerciales, Junaio requiere de conexion a internet para gestionar los datos a mostrar

en la realidad aumentada.

4.6. Android Studio

Es un entorno de desarrollo integrado para la plataforma Android. Fue anunciado el 16

de mayo de 2013 en la conferencia Google I/O, y reemplazo a Eclipse como el IDE oficial

para el desarrollo de aplicaciones para Android. La primera version estable fue publicada

en diciembre de 2014.

Esta basado en el software Intelli IDEA de JetBrains, y es publicado de forma gratuita a

traves de la Licencia Apache 2.0. Esta disponible para las plataformas Microsoft Windows,

Mac OS X y GNU/Linux.

Algunas de sus caracterısticas son:

Renderizacion en tiempo real

Consola de desarrollador: consejos de optimizacion, ayuda para la traduccion, es-

tadısticas de uso.

Soporte para construccion basada en Gradle.

Refactorizacion especifica de Android y arreglos rapidos.

38

Herramientas Lint para detectar problemas de rendimiento, usabilidad, compatibili-

dad de versiones, y otros problemas.

Plantillas para crear disenos comunes de Android y otros componentes.

Soporte para programar aplicaciones para Android Wear.

Plataformas Soportadas

Android Studio esta disponible para Windows 2003, Vista, 7, 8 y GNU/Linux, tanto pla-

taformas de 32 como de 64 bits, y Mac OS X, desde 10.8.5 en adelante.

4.7. Gradle

Es una herramienta que existe para construir proyectos de forma automatizada de depen-

dencias y convenciones de Maven ademas de un mejor soporte para la construccion de

varios proyectos relacionados. Un de las primeras diferencias es que en vez de XML utiliza

Groovy, un lenguaje mucho mas adaptado, y tambien se basa en un DSL (Domain Specific

Language) para trabajar con un lenguaje sencillo y claro a la hora de construir el build,

es multi lenguaje, es decir que puete trabajar diferentes tipos de lenguajes, incluido Java.

4.8. Filezilla

Es un cliente FTP multiplataforma de codigo abierto y software libre, licenciado bajo

la Licencia Publica General de GNU. Soporta los protocolos FTP,SFTP y FTP sobre

SSL/TLS (FTPS), que permite la conexion desde un computador a un servidor web,

el cual permite la transferencia, organizacion, edicion y eliminacion de archivos que se

encuentren en el servidor Web, usandos el servicio FTP que permite copiar ficheros de

miles de ordenadores diferentes de todas las partes de Internet. Estos ficheros contienen

todo tipo de informacion que se puede almacenar en un ordenador. Como todos los servicios

Internet, FTP utiliza un sistema del tipo cliente/servidor. Es decir, es necesario ejecutar

un programa cliente en el ordenador que sera el encargado de conectarse al programa

servidor, que se encuentra en un ordenador remoto. Se debe decir al programa cliente lo

que se quiere hacer y este transmitira las ordenes al servidor. En la terminologıa empleada

por este servicio, el ordenador del usuario se denomina maquina local mientras que el otro

ordenador, el servidor de ficheros, se denomina maquina remota. De igual forma, se dice que39

se realiza “una descarga de un fichero” (download) en el ordenador local cuando se recibe

un fichero enviado desde otro ordenador (maquina remota), mientras que la operacion

inversa, consistente en enviar el fichero desde el ordenador del usuario (maquina local) a

otro ordenador (maquina remota), se le da el nombre de “subir un fichero” (upload).

4.9. Datos Json

Acronimo de JavaScript Object Notation, es un formato ligero para el intercambio de

datos. JSON es un subconjunto de la notacion literal de objetos de JavaScript que no

requiere el uso de XML, Esta basado en un subconjunto del Lenguaje de Programacion

JavaScript, es un formato de texto que es completamente independiente del lenguaje pero

utiliza convenciones que son ampliamente conocidos por los programadores de la familia

de lenguajes C, incluyendo C, C++, C, Java, JavaScript, Perl, Python, y muchos otros.

Estas propiedades hacen que JSON sea un lenguaje ideal para el intercambio de datos.

JSON esta constituido por dos estructuras:

Una coleccion de pares de nombre/valor. En varios lenguajes esto es conocido como

un objeto, registro, estructura, diccionario, tabla hash, lista de claves o un arreglo

asociativo.

Una lista ordenada de valores. En la mayorıa de los lenguajes, esto se implementa

como arreglos, vectores, listas o secuencias.

Estas son estructuras universales; virtualmente todos los lenguajes de programacion las

soportan de una forma u otra. Es razonable que un formato de intercambio de datos que

es independiente del lenguaje de programacion se base en estas estructuras.

4.10. JQuery

jQuery es una biblioteca de JavaScript, creada inicialmente por John Resig, que permite

simplificar la manera de interactuar con los documentos HTML, manipular el arbol DOM,

manejar eventos, desarrollar animaciones y agregar interaccion con la tecnica AJAX a

paginas web, es software libre y de codigo abierto, posee un doble licenciamiento bajo la

Licencia MIT y la Licencia Publica General de GNU v2, permitiendo su uso en proyectos

libres y privados, jQuery, al igual que otras bibliotecas, ofrece una serie de funcionalidades40

basadas en JavaScript que de otra manera requerirıan de mucho mas codigo, es decir, con

las funciones propias de esta biblioteca se logran grandes resultados en menos tiempo y

espacio.

Caracteristicas:

Seleccion de elementos DOM.

Interactividad y modificaciones del arbol DOM, incluyendo soporte para CSS 1-3 y

un plugin basico de XPath.

Eventos.

Manipulacion de la hoja de estilos CSS.

Efectos y animaciones.

Animaciones personalizadas.

AJAX

Soporta extensiones.

Utilidades varias como obtener informacion del navegador, operar con objetos y

vectores, funciones para rutinas comunes, etc.

Compatible con los navegadores Mozilla Firefox 2.0+, Internet Explorer 6+, Safari

3+, Opera 10.6+ y Google Chrome 8+

41

5. Limitaciones

Dentro de las aplicaciones de realidad aumentada para los Smartphone se encuentran

algunas restricciones principalmente de orden economico limitando su adquisicion y pos-

teriormente su comparacion de ventajas y desventajas como objetivo de este proyecto.

La alternativa a esta limitacion esta en revisar las aplicaciones que se encuentran en la

web que se caracterizan por poseer software libre para sus usuarios; encontrando escaza y

desorganizada informacion.

Adicionalmente se encontro que los dispositivos moviles deben ser de gama media y gama

alta, con un software Android 5.0 o mayor, para que la aplicacion funcione, en dispositivos

moviles como las Tabletas ademas que estas deben contar con acelerometro, GPS, Brujula.

42

6. Productos e Impacto

Durante el desarrollo de este proyecto se obtuvo principalmente un prototipo como he-

rramienta innovadora, tecnologica y de facil comunicacion para dispositivos moviles de

realidad aumentada de los paraderos del Sitp (ARcomp) y que se encuentra bajo el so-

porte de Wikitude SDK. ARcomp podra permitir a los usuarios del sistema conocer el

sentido y la direccion en la cual se encuentra el paradero y punto de recarga del sistema

integrado mediante su telefono inteligente visualizado en la pantalla del dispositivo y en

la direccion en que se apunte la camara del mismo sin tener la necesidad de observar el

punto fısicamente.

ARcomp podra ser descargada desde el google play una vez se cumplan los requisitos

y tiempo de espera que se exigen. La imagen que identificara esta app es la que se muestra

a continuacion.

Figura 7: ARcomp

43

7. Requerimientos

7.1. Definicion de requerimientos

Para poder conseguir los resultados esperados referentes a la realidad aumentada se hacen

necesarios los siguientes requerimientos orientados al dispositivo movil, obedeciendo a sus

caracterısticas de hardware y software.

44

Tipo de Requerimiento Caracterısticas

Imprescindibles Estos elementos de hardware ysoftware hacen parte esencial de laaplicacion, sin ellos no serıa posiblevisualizar ni obtener realidadaumentada.• Acelerometro• Brujula• Conexion a internet• GPS

Prescindibles Hacen referencia a aquellascaracterısticas de hardware ysoftware que no afectan el normaldesempeno de la aplicacion y conello de la realidad aumentada.• Alta resolucion de camara ypantalla.

Cuadro 2: Tipos de Requerimientos

7.1.1. Usuarios del sistema

Dentro de la aplicacion de realidad aumentada se podran encontrar principalmente dos

tipos de usuarios:

Administrador: Persona o personas que poseen control sobre la informacion georre-

ferenciada y acceso a las posibles modificaciones que se puedan agregar o quitar, al

igual que la eventualidad del acceso al codigo fuente de la aplicacion.

Usuario: Cualquier persona que tenga la posibilidad de conectarse a la web desde su

telefono inteligente y visualizar la aplicacion o las aplicaciones de RA.

7.1.2. Identificacion de los casos de uso

Instalacion de la aplicacion en dispositivo movil.

Activacion gps

Ingresar a la app (ARcomp).

45

Ubicacion geografica (automatico)

Carga datos georreferenciados en RA.

7.1.3. Diagrama de casos de uso

Figura 8: Diagrama Caso de Uso

46

7.1.4. Caso de Uso

En el anexo se presentan en detalle los casos de uso para la aplicacion de realidad aumen-

tada.

47

8. Arquitectura Y Diseno

8.1. Arquitectura Wikitude Software de Desarrollo (SDK)

El SDK de wikitude y su arquitectura se desarrolla con el programa Android Studio.

Figura 9: Arquitectura Wikitude SDK

48

8.2. Importar Librerıa

Para iniciar con la aplicacion se hace necesario y primordial utilizar el archivo comprimido

y ejecutable wikitudesdk.jar, la cual permite de igual forma llamar las demas librerıas

que son utilizadas para el correcto funcionamiento de la app y las caracterısticas propias

de la Realidad Aumentada.

Figura 10: Librerıa wikitudesdk

Figura 11: Archivos .jar

Este Archivo Java Archive (.jar) es proporcionado por Wikitude (aplicacion de software

abierto y libre).

49

8.3. Configurando Proyecto Android

Dentro de este proceso de creacion de la App fue necesario agregar los siguientes permisos

contenidos en el archivo Androidmanifest.xml, los que permitiran que el SDK Wikitude

funcione correctamente.

Figura 12: Permisos dentro del Androidmanifest.xml

Dichos permisos hacen referencia principalmente a la utilizacion de la Internet, GPS, la

camara y el acelerometro. Las especificaciones referentes al nombre y la imagen que sera la

que distinga la aplicacion son configuradas tambien dentro del Androidmanifest.xml.

Figura 13: Nombre e imagen de la App

8.3.1. Launcher

Como se puede observar en la ilustracion.6 en el costado izquierdo muestra la imagen

en miniatura que representa la aplicacion dentro del dispositivo, posteriormente de ser

instalada.50

Figura 14: Launcher ARcomp (http://es.clipartlogo.com/free/blue-bus.html)

Figura 15: Imagen Launcher de App en Dispositivos

51

8.4. Puntos de Interes en ARcomp (POIs)

Con el fin de dar a conocer los paraderos, rutas y puntos de recarga del Sitp en la zona

de estudio, fue necesario la utilizacion del concepto de Puntos de interes o como se cono-

cen con sus siglas en ingles POIs y que hacen parte de las herramientas de la Realidad

Aumentada. Dichos puntos poseen una ubicacion geografica con coordenadas de Latitud,

longitud y altitud que posteriormente podran ser visualizadas en el dispositivo con una

imagen caracterıstica de la correspondiente senal informativa de transito.

Figura 16: Paradero o punto de recarga (MarkerId).( www.transmilenio.gov.co)

Estos puntos se almacenaron en un archivo nombrado myjsondata de extension JSON (.js)

el cual contiene 6 puntos de los que se diferencian 3 Paraderos y 3 sitios de recarga Tu llave

con la siguiente estructura:

Id

Longitud

Latitud

Descripcion

Altitud

Nombre

52

Figura 17: Estructura myjsondata. POIs

53

8.5. Clases Utilizadas y caracterısticas

Para hacer posible la visualizacion de los puntos de interes fue necesaria la utilizacion de

cinco clases con extension .java y una interfaz (i), que fueron disenadas y proporcionadas

por wikitude como muestra la figura.

Figura 18: Estructura Clases java para RA

8.5.1. AbstracArchitectCamActivity

Esta clase se caracteriza por ser la mas robusta en cuanto a codigo y librerıas utilizadas.

La AbstracArchitectCamActivity proporciona la exactitud de la localizacion de los puntos

a traves del GPS y la camara del dispositivo, obteniendo la informacion del archivo json

dentro del metodo getPoiInformation( ):

8.5.2. ActivityRA

La clase ActivityRA tiene control principalmente sobre el archivo Index.html el cual con-

tiene la estructura y visualizacion del cuadro de despliegue de la descripcion que se muestra

cuando se selecciona la marca (markerId) en Realidad aumentada del paradero o punto de

recarga.

8.5.3. ArchitectViewHolderInterface

Esta clase es la que controla la interfaz (activity main (xml)) que tiene como variables el

visor y como metodo la localizacion.54

Figura 19: Metodo getPoiInformation

8.5.4. LocationProvider

La clase proporciona la localizacion, LBS(Servicio basado en la localizacion), utilizando el

GPS del dispositivo por medio del metodo:

Public Location Provider (final Context context, LocationListener location Listener

)

Figura 20: Metodo para la localizacion.

55

8.5.5. MainActivity

El Main de la aplicacion en este caso hace el llamado a la asignacion que tiene el boton

de la interfaz, Punto de Interes, y de igual forma a los archivos json que contienen las

coordenadas y rutas de los puntos de interes en la zona de estudio.

8.5.6. WikitudeSDKConstants

Esta clase solamente contiene la declaracion de una variable tipo Protected String la cual

hace referencia a la licencia que proporciona Wikitude. En el presente caso esta clave de

licencia es la que viene por defecto a la hora de descargar todas las anteriores clases, como

se puede ver en la ilustracion 14. La obtencion de una nueva licencia genera altos costos

que no son vitales en el desarrollo de la aplicacion.

Figura 21: Serial Licencia

56

8.6. Descripcion Detallada de Puntos de Interes

La informacion que debe mostrarse en el momento de la seleccion de la marca de un para-

dero o punto de recarga se hace por medio de un cuadro desplegable en el costado derecho

de la pantalla del dispositivo y que muestra las rutas, horario, recorrido o direcciones de

recarga, segun el caso, con la caracterıstica de calcular la distancia a la cual se encuentra

el punto de interes. Todas las anteriores particularidades se definen en 3 archivos json (.js):

Myjsondata (ver Puntos de Interes ARcomp)

Marker

Detalles

8.6.1. Marker

Este archivo (.js) contiene los metodos que definen el tamano de la imagen y la ubicacion

de la descripcion con respecto a esta. De igual manera el color de dicha letra y su tamano.

Figura 22: Metodos respecto a la imagen de seleccion y tıtulos

57

8.6.2. Detalles

El archivo json de detalles muestra y llama las imagenes que se definen para las marcas

(markeridle), enlaseleccionyelindicadormostradosacontinuacion :

Figura 23: Marker id

Figura 24: Marker selected

Figura 25: Indicador

Al mismo tiempo el detalle.js posee un metodo donde llama el archivo myjsondata.js a

traves de una ubicacion local.

8.7. Diseno de interfaz

La interfaz de la aplicacion se desarrolla en un archivo activity main (xml) en donde el

Android studio posee las herramientas basicas para llevar a cabo esta tarea.

58

Figura 26: Funcion para llamar myjsondata

Figura 27: Layout - Activitymain

ARcomp posee un boton simple llamado Punto de Interes el cual activa la camara y el GPS

del dispositivo para visualizar los POIs con Realidad Aumentada y ademas un textView

que es la parte blanca donde se ubica dicho boton.

59

8.8. Vista de Aplicacion

Las siguientes imagenes fueron capturadas de la pantalla de un telefono inteligente que

muestra la aplicacion en funcionamiento dentro de la zona d estudio.

Figura 28: Visor Marker de Paraderos y puntos de Recarga

Figura 29: Visor Marker de Paraderos y cuadro de detalle de cada punto de interes

De igual forma los puntos de recarga muestran el detalle de ubicacion del POI seleccionado

en la pantalla del dispositivo.

60

Figura 30: Detalle de punto de recarga tullave

61

8.9. Diagramas de clases

ARcomp esta compuesta por 5 clases y una interfaz las cuales fueron vistas en detalle en

la seccion 8 y como anexo.

Figura 31: Cinco Clases y una Interfaz

62

9. Implementacion

9.1. Evaluacion del lenguaje

9.1.1. Android

Es un sistema operativo basado en el nucleo GNU/Linux. Fue disenado principalmen-

te para dispositivos moviles con pantalla tactil, como telefonos inteligentes o tabletas; y

tambien para relojes inteligentes, televisores y automoviles, como Androide se encuentra

basado en software libre, cuenta con una gran cantidad de desarrolladores, lo que permite

la actualizacion permanente de su sistema operativo y de sus aplicaciones, usa lenguaje C,

C++, Java y algunas bibliotecas de terceros, soporta Flash, Java, Java Script, y HTml5,

soporta varias tecnologıas de conectividad, es multitarea y permite la transferencia de ar-

chivos y aplicacion de terceros.

Para la creacion de aplicaciones se necesita instalar el Android SDK, el cual es el Kit de

desarrollo de Android, este paquete de desarrollo incluye APIs y herramientas necesarias

para desarrollar aplicaciones utilizando JAVA como lenguaje de programacion y testear el

codigo, respectivamente.

Wikitude Y Android.

Para la creacion de aplicaciones de Realidad Aumentada, bajo el sistema operativo del

Android, es muy practico y estimulante, dado que la interfaz del programador es ami-

gable, dado que es un codigo abierto, existen mucho soporte para solucion de errores, la

integracion entre Wikitude SDK y Android SDK, es muy simple y muy facil de hacer, a

diferencia de IOS, no se tiene que pagar para poder desarrollar la aplicacion, como prueba,

permite la comprobacion de los resultados de la aplicacion directamente en el dispositi-

vo movil, es mas amigable con el programador y existen diferentes comunidades, para la

resolucion de errores que se puedan presentar durante el desarrollo de la aplicacion de

Realidad Aumentada.

63

9.1.2. IOS

Es el sistema operativo movil de Apple Inc., para el IPhone, actualmente se encuentra

en la version 9.0, Los elementos de control consisten de deslizadores, interruptores y bo-

tones. La respuesta a las ordenes del usuario es inmediata y provee una interfaz fluida.

La interaccion con el sistema operativo incluye gestos como deslices, toques, pellizcos, los

cuales tienen definiciones diferentes dependiendo del contexto de la interfaz. Se utilizan

acelerometros internos para hacer que algunas aplicaciones respondan a sacudir el dispo-

sitivo (por ejemplo, para el comando deshacer) o rotarlo verticalmente u horizontalmente.

Al realizar la evaluacion, para el uso de las herramientas para la creacion de la realidad

Aumentada, se encuentra que la mayorıa de las herramientas y navegadores se encuen-

tran disponibles para IOS, en su version de navegador y de desarrollador, tambien se

encontro que existe el Sdk para el sistema operativo OS, el cual permite la creacion de

Aplicaciones de Realidad Aumentada, se decidio evaluar la Herramienta Wikitude en este

sistema operativo, debido a que es de codigo libre.

Wikitude y IOS.

Para la creacion de aplicaciones de Realidad Aumentada, bajo el sistema operativo del IOS,

basado en el lenguaje de programacion de C++ y object C, no soporta JavaScript, lo cual

dificulta algunas funciones del Wikitude, se reemplaza con otras librerıas, que soportan el

IOS, para le creacion del proyecto de realidad aumentada, se debe configurar el proyecto

en el Xcode (consola de programacion de OS), esta configuracion se debe realizar en un

sistema operativo MAC, como el OS Maverick o OS Mountain Lion, donde se importan

las librerıas dinamicas, necesarias para la creacion de la aplicacion de Realidad Aumen-

tada, adicionalmente se debe el ARchitect World para la edicion de los objetos y clases

necesarios para la creacion de la aplicacion de realidad aumentada, todo esto se carga en

el Xcode, una vez cargadas las librerıas y objetos necesarios, al igual que en Android, se

empieza a generar el codigo de la aplicacion.

Para poder publicar y probar la aplicacion se debe validar la licencia otorgada por Apple

Inc., como desarrollador, la cual tiene un costo de $ 100 Dolares, adicionalmente se debe

pagar por el servicio de SDK que tiene un costo de $ 299 US, se debe contar con un

64

computador Apple el cual su precio oscila entre los $ 1.299 y 1.500 Dolares y un IPhone

con sistemas IOS mayor a la version 6.0, dado que no se puede programar la aplicacion

con un emulador ni una maquina Virtual.

Ventajas del IOS:

Mejor desempeno del Hardware.

Mayor soporte

Mayor seguridad

Desventajas del IOS

Costos elevados para la adquisicion de Hardware y licencias de desarrollo

Costo del Hardware

Es una plataforma Cerrada

No soporta complementos Java

9.2. Evaluacion de SDK de Realidad Aumentada Wikitude

Es un Kit de Desarrollo de Software, que posee una librerıa de software y un framework que

Soporta cualquier tipo de casos de uso basados en localizacion, (“PhoneGap Plugin - Wiki-

tude SDK Documentation - Wikitude,” n.d.), provee de un conjunto de herramientas para

el desarrollo de aplicaciones con Realidad Aumentada personalizadas [2]. Wikitude Brow-

ser es una de las plataformas mas importantes de navegadores de Realidad Aumentada y se

encuentra construida utilizando Wikitude SDK (Madden, 2011). “Wikitude implementa la

Realidad Aumentada mediante los denominados ARchitect Worlds. El uso de tecnologıas

web permite a los desarrolladores crear aplicaciones multiplataforma. En el contexto de

la programacion orientada a objetos, Wikitude provee de objetos que de manera conjunta

permiten realizar la aumentacion de la realidad como el objeto, en el cual se carga una

representacion del punto de interes a visualizar el que puede ser una imagen en formato

png o jpeg, este objeto es utilizado como parametro por el objeto AR.ImageDrawable, el

cual es un componente visual que es conectado a un AR.GeoObject, mediante el cual un

marcador es colocado en una localizacion geografica especıfica durante la navegacion con

realidad aumentada(“PhoneGap Plugin - Wikitude SDK Documentation - Devzone,” n.d.).65

Wikitude dispone de un plugin mediante el cual es posible usar todas las caracterısticas de

Wikitude en PhoneGap, permitiendo utilizar el SDK para desarrollar cualquier proyecto

personalizado con Realidad Aumentada. Wikitude implementa la unidad de medida SDU

para determinar el tamano de los objetos virtuales en la pantalla del dispositivo en base

a la distancia a la que se encuentra el dispositivo del objeto real. El kit de desarrollo de

software de Wikitude implementa una Vista de Realidad Aumentada que es similar a una

Vista Web, el contenido para las dos vistas es implementado con codigo HTML y JavaS-

cript, pero la diferencia radica en el la Vista de Realidad Aumentada puede renderizar

contenido de Realidad Aumentada(“PhoneGap Plugin - Wikitude SDK Documentation -

Wikitude,” n.d.)

Para cargar los lugares en pantalla, unicamente se necesita pasar una lista de puntos de

interes con la informacion que se va a utilizar: longitud y latitud para localizar el punto

en el entorno, el nombre para identificarlo en la etiqueta y una breve descripcion para

mostrar al pulsar la etiqueta para ver su informacion. Es exactamente la misma informa-

cion que devuelve el servicio del SR, por tanto, utiliza los mismos datos para mostrar la RA.

9.2.1. Layar

Layar APP: Layar se basa en la creacion de capas (layers), cada una de las cuales contiene

informacion estatica que se detectara mediante su navegador (app). Existen numerosas ca-

pas para mostrar todo tipo de lugares, e incluso dispone de algunas que estan conectadas a

las redes sociales como la capa llamada Tweets Around, la cual muestra lo que han escrito

en la red social Twitter, personas alrededor del usuario dentro de un determinado radio.

Hasta julio de 2011, que es cuando publicaron la ultima version, Layar cuenta con 1.4M

de usuarios y un total de 2570 capas publicadas, soporta 16 idiomas y esta disponible para

4 plataformas (Android, iPhone, Bada y symbian).

Layar Connect API: es el producto a disposicion de empresas para desarrollar con Layar.

Permite la lectura y creacion de capas sin tener que hacerlo desde su web. Es ideal para

desarrolladores que desean construir un sistema que gestione una gran cantidad de capas.

Layar SDK: es una biblioteca estatica que permite no solo implementar RA por geolocali-

zacion para tus propias aplicaciones, tambien permite incluir otras funcionalidades como

el reconocimiento de objetos. Esta disponible para el desarrollo tanto en iPhone como en66

Android. No es gratuito, pero existe una version de prueba, Se pueden agregar layers bajo

un entorno de desarrollador, registrandose en la pagina de layar, como muestra la figura.

Y que posteriormente puede ser visualizada en un telefono movil.

Para el registro de los POIs es necesario acceder a un servidor, que posteriormente se

enlazara con layar y poder manipular los datos.

Figura 32: Capa con layar

9.3. Eleccion del SDK y de librerıas

Una Vez consultada toda la documentacion y realizado la Evaluacion en diferentes SDK y

herramientas de Realidad Aumentada, ya mencionadas, y teniendo en cuenta que algunos

SDK no son de codigo libre, se decidio escoger la SDK de Wikitude como la herramienta

para realizar la aplicacion, dado que Wikitude posee una librerıa dinamica y un framework

que permite cualquier caso de uso basado en la localizacion y es de codigo abierto, lo cual

permite enlazar multiples lenguajes como JavaScript y HTML, permitiendo ası poder uti-

lizar las librerıas de diferentes lenguajes, para ası poder crear la Aplicacion de Realidad

Aumentad, al ser un SDK dinamico, permite a los programadores la creacion de aplica-

ciones multiplataforma , basados en ARchitect Worlds, creados con tecnologıas Web como67

HTML, JavaScript y CSS, que permite crear objetos en realidad aumentada. En el contexto

de la programacion orientada a objetos, Wikitude provee de objetos que de manera con-

junta permiten realizar la aumentacion de la realidad como el objeto AR.ImageResource

en el cual se carga una representacion del punto de interes a visualizar el que puede ser

una imagen en formato png o jpeg, este objeto es utilizado como parametro por el objeto

AR.ImageDrawable, el cual es un componente visual que es conectado a un AR.GeoObject,

mediante el cual un marcador es colocado en una localizacion geografica especıfica durante

la navegacion con realidad aumentada, Wikitude dispone de un plugin mediante el cual

es posible usar todas las caracterısticas de Wikitude en PhoneGap, permitiendo utilizar

el SDK para desarrollar cualquier proyecto personalizado con Realidad Aumentada. Wi-

kitude implementa la unidad de medida SDU para determinar el tamano de los objetos

virtuales en la pantalla del dispositivo en base a la distancia a la que se encuentra el dis-

positivo del objeto real. El objeto virtual cambia su tamano dependiendo de la distancia

a la que se encuentra el dispositivo de un objeto real, conforme el dispositivo se acerca

o aleja al objeto virtual, el tamano del objeto virtual se incrementa o reduce. Wikitude

ademas implementa DBS para limitar la reduccion del tamano del objeto virtual cuando

un objeto real se encuentra a una gran distancia para evitar que el objeto virtual des-

aparezca de la pantalla, por otro lado si un objeto real se encuentra muy acerca, evita

que el tamano del objeto virtual, El kit de desarrollo de software de Wikitude implementa

una Vista de Realidad Aumentada que es similar a una Vista Web, el contenido para

las dos vistas es implementado con codigo HTML y JavaScript, pero la diferencia radica

en el la Vista de Realidad Aumentada puede renderizar contenido de Realidad Aumentada.

La SDK, genera para el contenido de Realidad Aumentada un fichero HTML y JS diferen-

tes a los usados por phonegap, pero se conectan entre sı. Mediante los retornos de algunas

funciones lanzadas como AR.context.onLocationChanged que devuelve la posicion actual

del usuario, se permite redibujar las etiquetas. Y para abrir el modo camara, utiliza la

funcion app.wikitudePlugin.captureScreen.

Existe una clase radar y otra clase Marker para poder incorporar al proyecto, estas clases

Javascript tienen el codigo necesario para anadir tanto el radar como la creacion de las

marcas en la pantalla. La clase Radar dispone de algunos metodos para controlar su

uso, como show para mostrarlo o setMaxDistance para cambiar la distancia maxima que

rastrea y muestra el radar. La clase Marker, crea marcas en la pantalla utilizando un

objeto AR.GeoObject con la geolocalizacion especificada. A este objeto se indican las

caracterısticas visuales de la etiqueta, la informacion que mostrara y ademas el punto que

68

debe pintar en el radar que lo identifica.

69

10.

Bit

aco

ra

Fig

ura

33:

Bit

acor

ad

eP

royec

to

70

11. Limitaciones

Dentro de las aplicaciones de realidad aumentada para los Smartphone se encuentran algu-

nas restricciones, en donde es necesario aportar dinero para poder adquirirlas y posterior-

mente comparar las ventajas y desventajas como objetivo de este proyecto. La alternativa

a esta limitacion esta en revisar las aplicaciones que se encuentran en la web que se ca-

racterizan por poseer software libre para sus usuarios, tambien se encontro la densidad y

desorganizacion de la informacion, dada que no esta bien articulada para poder usarla de

manera mas organizada.

71

12. Conclusiones

Desarrollar la aplicacion de realidad aumentada Geo localizada con los paraderos y sitios

de recarga del sistema integrado de transporte Publico de Bogota, ayudara a conocer di-

chos puntos ubicados en la carrera 13 entre las calles 45 y 39, con el fin de proporcionar a

cualquier usuario las rutas que faciliten su desplazamiento a diferentes lugares de la capital

por medio del transporte publico. De igual manera se visualizara la distancia a la cual se

encuentra al punto de interes.

Lo anterior evidencia que los objetivos propuestos fueron alcanzados. Sin embargo se supe-

raron diversas dificultades que habrıan impedido la ejecucion y realizacion de la realidad

aumentada. Despues de evaluar las diversas herramientas para esta tecnologıa, se tomo la

decision de utilizar Wikitude, debido a que permite al desarrollador interesado en RA,

tener acceso al codigo fuente, facilitando la elaboracion y entendimiento mas a fondo de la

manera como ver nuestro entorno. Un entorno que hace posible visualizar objetos virtua-

les, sobrepuestos en la realidad y que otorga multiples aplicaciones no solo en el ambito

de transporte sino para el turismo, educacion, gastronomıa, marketing, entre los mas des-

tacados.

Este tipo de tecnologıa requiere ciertas condiciones tecnicas de software que permiten dis-

frutar la realidad aumentada en los dispositivos, de la misma manera estas condiciones

pueden convertirse en un obstaculo ya que se hacen necesarias ciertas herramientas que no

todos los telefonos y tabletas poseen, reduciendo a los usuarios de la realidad aumentada a

un grupo minoritario. Android y IOS son los dos sistemas operativos moviles mas vendidos

y populares en el mundo, por sus innovaciones y soporte tecnico. Pero se evidencio que

la mejor plataforma para poder desarrollar la Aplicacion de Realidad Aumentada, es An-

droid, dado que es codigo abierto y en ocasiones el Software que se necesite comprar no es

muy costoso, a diferencia del IOS, que no es de codigo abierto y para poder programar en

este sistema operativo, se debe pagar en la pagina de Apple el derecho a ser desarrollador.

La puesta en marcha de una aplicacion de realidad aumentada enfocada al sistema inte-

grada de transporte en una ciudad como Bogota puede llegar a verse retrasada debido a

que no existe una informacion organizada y actualizada por parte del distrito (sitios web

oficiales) respecto a los paraderos y puntos de recarga. De igual manera la informacion

tecnica y bibliografica respecto a esta tecnologıa se hace escaza con lo que dificulta el

desarrollo de la documentacion de esta misma.

72

Las metas alcanzadas con esta aplicacion de RA deben convertirse en un punto de partida y

estımulo para profundizar, ampliar e innovar aun mas en esta tecnologıa y ser aprovechadas

por todos aquellos que hacen parte de la academia de la facultad de ingenierıa, en donde

los ingenieros catastrales y geodestas especialmente poseen los conocimientos geograficos,

informaticos y tecnologicos necesarios para desarrollarla no solo dentro del paıs sino fuera

de el.

73

13. Anexos

74

Referencias

[1] Yanac, Juan.Desarrollo de un Sistema Web de Realidad Aumentada Para Apoyar

la Promocion del Departamento de Computacion de la Universidad de Valparaıso.

Universidad de Chile. 2011.

[2] Martınez, Jose.Aplicacion Android con Realidad Aumentada y Geolocalizacion. Uni-

versidad Politecnica de Valencia. 2012.

[3] Perez, Carlos.Sistema De Geolocalizacion por Realidad Aumentada Para la Universi-

dad de Oriente Nucleo de Sucre. Cumana. Universidad de Oriente. 2012

[4] Azuma, R. T.A Survey of Augmented Reality. Teleoperators and Virtual Environ-

ments. 1997

[5] Bimber, O., Raskar, R., Inami, M. Spatial Augmented Reality. SIGGRAPH . 2007

[6] Michael H., Mark B. y Bruce TTecnologıas Emergentes de la Realidad Aumentada:

Interfaces y Diseno . 2006.

[7] Domhan, TAugmented Reality on Android Smartphones. 2014.

[8] Proyecto AndAR Android Augmented Reality..http://code.google.com/p/andar/,

Consulta: Septiembre 2014.

[9] Wikitude .Wikitude Support.www.wikitude.com/developer/documentation. Fecha

consulta: Septiembre 2015.

[10] S. J. Sampedro, Geoturismo Aplicacion movil para rutas turısticas . 2014.

75