diseno de aplicaci~ on de realidad aumentada...
Post on 30-Jun-2018
217 Views
Preview:
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
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
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
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
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
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
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
top related