Cf Rodriguez Jl

101
UNIVERSIDAD DE CHILE FACULTAD DE CIENCIAS FÍSICAS Y MATEMÁTICAS DEPARTAMENTO DE CIENCIAS DE LA COMPUTACIÓN REALIDAD AUMENTADA PARA EL APRENDIZAJE DE CIENCIAS EN NIÑOS DE EDUCACIÓN GENERAL BÁSICA MEMORIA PARA OPTAR AL TÍTULO DE INGENIERO CIVIL EN COMPUTACIÓN JUAN PABLO RODRÍGUEZ LOMUSCIO SANTIAGO DE CHILE ENERO 2011

description

tesis

Transcript of Cf Rodriguez Jl

UNIVERSIDAD DE CHILE FACULTAD DE CIENCIAS FSICAS Y MATEMTICAS DEPARTAMENTO DE CIENCIAS DE LA COMPUTACIN REALIDAD AUMENTADA PARA EL APRENDIZAJE DE CIENCIAS EN NIOS DE EDUCACIN GENERAL BSICA MEMORIA PARA OPTAR AL TTULO DE INGENIERO CIVIL EN COMPUTACIN JUAN PABLO RODRGUEZ LOMUSCIO SANTIAGO DE CHILE ENERO 2011 UNIVERSIDAD DE CHILE FACULTAD DE CIENCIAS FSICAS Y MATEMTICAS DEPARTAMENTO DE CIENCIAS DE LA COMPUTACIN REALIDAD AUMENTADA PARA EL APRENDIZAJE DE CIENCIAS EN NIOS DE EDUCACIN GENERAL BSICA MEMORIA PARA OPTAR AL TTULO DE INGENIERO CIVIL EN COMPUTACIN JUAN PABLO RODRGUEZ LOMUSCIO PROFESOR GUA: JAIME HERNN SNCHEZ ILABACA MIEMBROS DE LA COMISION NELSON ANTRANIG BALOIAN TATARYAN DIONISIO ALEJANDRO GONZLEZ GONZLEZ SANTIAGO DE CHILE ENERO 2011 Resumen Hoyendalacienciadelacomputacinseencuentrapresenteennuestrasvidasdeforma cotidiana,siendomuchasvecestransparenteparanosotros.Unreaquesehavistopotenciada porestacienciaeslaeducacin.OtrareaeslaRealidadAumentada,variacindeloquese conoce como Realidad Virtual, donde en lugar de introducir a un usuario en un entorno ficticio, se busca introducir elementos virtuales en el entorno real. Estamemoriatuvocomoobjetivodisear,desarrollaryevaluarlausabilidaddeuna herramientabasadaenRealidadAumentadaparaelapoyodelaenseanzayelaprendizajedel SistemaSolarenalumnosde8y9aosdeedadquecursanterceraodeeducacingeneral bsica.ComoresultadosecreARSolarSystem,unvideojuegoeducativoquepresentaalos alumnos los distintos elementos del Sistema Solar y les permite interactuar con ellos a travs de una interfaz tangible. Para reconocer la facilidad con que los alumnos pueden utilizar la herramienta se realizaron evaluacionesdeusabilidad.Estasevaluacionesseaplicaronduranteyalfinalizarelprocesode desarrollo,demaneracualitativaycuantitativaconusuariosfinales,utilizandolosmtodosde observacinyevaluacindeusuariofinal.Estopermitidetectarysolucionartempranamente problemas de interaccin y representacin de la informacin que entrega la herramienta. DadoslosbuenosresultadosobtenidosporARSolarSystem,esposibleafirmarquees factiblegenerar una herramienta basada en Realidad Aumentada que seaatractiva para nios de entre8y9aosyquelespermitatrabajarenuncontextoeducativosinagregarunnivelde dificultad adicional a su aprendizaje. Ms an, se puede afirmar que el uso de esta tecnologa en conjuntoconundiseodevideojuegorepresentaunelementomotivadorparalosalumnos, quienesafirmaronquevolveranatrabajarconlaherramientaeinclusolarecomendaranasus compaeros. Agradecimientos Quiero agradecer ante todo a mi madre por apoyarme durante mis aos de estudio. Gracias Angelo, Mauricio y Hctor por sus aportes voluntarios e involuntarios a este trabajo. Finalmente gracias a todos aquellos que me dieron nimo para culminar este ciclo. Tabla de contenido Tabla de contenido .......................................................................................................................... 1 ndice de figuras .............................................................................................................................. 3 1.Captulo -INTRODUCCIN ...................................................................................................... 5 1.1.Descripcin General del Problema ................................................................................... 6 1.2.Motivacin ........................................................................................................................ 8 1.3.Objetivos ........................................................................................................................... 8 Objetivo general ....................................................................................................................... 8 Objetivos especficos ................................................................................................................ 8 2.Captulo -Marco Terico ......................................................................................................... 9 2.1.TIC y Educacin ............................................................................................................... 10 2.2.Realidad Aumentada ....................................................................................................... 11 Qu es? ................................................................................................................................. 11 Realidad Aumentada y Educacin .......................................................................................... 14 Herramientas para la Creacin de Aplicaciones de AR .......................................................... 14 3.Captulo -DISEO DE ARSOLARSYSTEM ................................................................................ 22 3.1.Descripcin General ........................................................................................................ 23 3.2.Contenidos ...................................................................................................................... 24 3.3.Casos de Uso ................................................................................................................... 27 Caso de uso Identificar Elemento ....................................................................................... 27 Caso de uso Ordenar Sistema Solar .................................................................................... 29 Caso de uso Explorar Sistema Solar .................................................................................... 30 3.4.Arquitectura .................................................................................................................... 33 4.Captulo -DESARROLLO DE ARSOLARSYSTEM ...................................................................... 38 4.1.Interfaces ........................................................................................................................ 39 4.2.Interaccin ...................................................................................................................... 42 4.3.Diagrama de Clases ......................................................................................................... 43 4.4.Clases Importantes ......................................................................................................... 46 2 object.h ............................................................................................................................... 46 Scene.h ................................................................................................................................... 48 ARSolarSystem.h .................................................................................................................... 49 main.cpp ................................................................................................................................. 51 4.5.Herramientas de Desarrollo ............................................................................................ 53 Hardware ................................................................................................................................ 53 Software ................................................................................................................................. 53 5.Captulo -EVALUACIN DE USABILIDAD ............................................................................... 54 5.1.Evaluacin de Usabilidad ................................................................................................ 55 5.2.Participantes ................................................................................................................... 55 5.3.Mtodos e Instrumentos ................................................................................................ 56 Observacin ............................................................................................................................ 56 Cuestionario ........................................................................................................................... 57 5.4.Tareas .............................................................................................................................. 58 5.5.Contexto .......................................................................................................................... 60 5.6.Procedimiento ................................................................................................................. 61 6.Captulo -RESULTADOS Y ANLISIS ....................................................................................... 63 6.1.Resultados de la Evaluacin de Usabilidad del Primer Prototipo ................................... 64 Observacin ............................................................................................................................ 64 Cuestionario ........................................................................................................................... 67 6.2.Resultados de la Segunda Evaluacin de Usabilidad ...................................................... 71 7.Captulo -CONCLUSIONES Y TRABAJO FUTURO.................................................................... 79 7.1.Discusin y Conclusiones ................................................................................................ 80 7.2.Trabajo Futuro ................................................................................................................ 81 Referencias .................................................................................................................................... 83 Captulo -ANEXOS ........................................................................................................................ 87 Anexo 1 .......................................................................................................................................... 89 Anexo 2 .......................................................................................................................................... 92 3 ndice de figuras Figura 1: 3DCIENCIAS ................................................................................................................ 11 Figura 2: Continuo Realidad-Virtualidad [42]. ............................................................................. 12 Figura 3: Ejemplo de Realidad Aumentada. .................................................................................. 13 Figura 4: Marcador ........................................................................................................................ 15 Figura5:DiagramapasoapasodelacreacindeuncuadrodevideodeRealidadAumentada usando ARToolKit [7] ................................................................................................................... 16 Figura 6: Tabla de informacin de tamao de marcadores y su rango de uso .............................. 16 Figura 7: Tracking de una nueva escena usando PTAM [34] ....................................................... 18 Figura 8: Escena aumentada usando PTAM vista en distintas escalas [[34]................................. 19 Figura 9: Aplicacin hecha usando Layar ..................................................................................... 20 Figura10:SeccindelaarquitecturadeLayarquemuestralainteraccinentrelaaplicacin cliente y el servidor donde se almacena la informacin de los POIs [37]. .................................... 21 Figura 11: Subconjunto de las fichas usadas por ARSolarSystem. ............................................... 23 Figura 12: Dos alumnos trabajando con el primer prototipo de ARSolarSystem. ........................ 24 Figura 13: Caso de uso Identificar Elemento. ............................................................................ 27 Figura 14: Diagrama de flujo de Identificar Elemento. ............................................................. 28 Figura 15: Caso de uso Ordenar Sistema Solar. ........................................................................ 29 Figura 16: Diagrama de flujo de Ordenar Sistema Solar. .......................................................... 30 Figura 17: Caso de uso Explorar Sistema Solar. ........................................................................ 30 Figura 18: Diagrama de flujo Explorar el Sistema Solar. .......................................................... 32 Figura 19: Ciclo de juego. ............................................................................................................. 33 Figura 20: Flujo de ARSolarSystem. ............................................................................................. 34 Figura 21: Diagrama de Arquitectura. ........................................................................................... 36 Figura22:Capturadepantalladelvideojuego.Elpuntajesedespliegaenlaesquinasuperior derecha. .......................................................................................................................................... 39 Figura 23. Imgenes de los modelos 3D de cada planeta. ............................................................. 40 Figura 24: Textura de la ficha de pregunta. ................................................................................... 41 Figura 25: Texturas posibles para las fichas de alternativa. .......................................................... 41 Figura 26: Fichas de pregunta y respuesta..................................................................................... 42 Figura 27: Diagrama de Clases, primera parte............................................................................. 44 Figura 28: Diagrama de Clases, segunda parte. ............................................................................ 45 Figura 29: Dos alumnos llevando a cabo la tarea de identificar durante la segunda evaluacin de usabilidad. ...................................................................................................................................... 58 Figura30:Dosalumnosllevandoacabolatareadeordenardurantelasegundaevaluacinde usabilidad. ...................................................................................................................................... 59 Figura31:Dosalumnosllevandoacabolatareadeexplorardurantelasegundaevaluacinde usabilidad. ...................................................................................................................................... 60 Figura 32: Usuarios trabajando con el segundo prototipo durante ................................................ 61 4 Figura 33: Tabla de resultados obtenidos a travs del Cuestionario de Evaluacin de Usabilidad de Usuario Final. .......................................................................................................................... 68 Figura34:GrficoderesultadosobtenidosatravsdelCuestionariodeEvaluacinde Usabilidad de Usuario Final. ....................................................................................................... 69 Figura 35: Grfico del promedio general del sistema por parejas. ................................................ 70 Figura36:GrficoderesultadosobtenidosatravsdelCuestionariodeEvaluacinde Usabilidad de Usuario Final. ....................................................................................................... 72 Figura 37: Resultados del test de correlacin. ............................................................................... 74 Figura 38: Grfico de resultados por ndice. ................................................................................. 74 Figura 39: Estadsticos de grupo por gnero. ................................................................................ 75 Figura 40: Prueba de muestras independientes. ............................................................................ 76 Figura 41: Grfico del promedio final por gnero obtenido de la ................................................. 77 Figura 42: Grfico del promedio general del sistema por parejas. ................................................ 78 5 1.Captulo -INTRODUCCIN 6 1.1. Descripcin General del Problema Graciasalcontinuodesarrollodelascienciashemospodidoconocercadavezmssobreel mundoquenosrodea,sobrenosotrosmismoysobrelasorganizacionessocialesquehemos desarrollado.Asmismo,latecnologanoshapermitidotransformarelmundo,nuestras sociedades y a nosotros mismos. [47] La computacin y las tecnologas de la informacin y comunicacin (TIC) caracterizaron al siglo pasadogenerandoladenominadaeradelainformacinconlaqueseabrielnuevomilenio. Apenashantranscurridounpocomsde50aosdesdelacreacindelENIAC[24],elprimer computador electrnico, y los avances que ha desarrollado la informtica son significativos, tanto a nivel de procesamiento y memoria como en el tamao de los dispositivos. Esterpidodesarrollohaproducidounarevolucinenlaformaenquevivimos.SegnBarcel [47],sufactormultiplicadorhasidomuysuperioralderevolucionestecnolgicasanteriores, como la agricultura y la revolucin industrial. Hoy en da las TIC se encuentran presentes, y an ms, son imprescindibles, en gran cantidad de las actividades que realizamos diariamente. Tanto as,queinclusosehanvueltoinvisibleenmuchoscasos,siendousadassinsiquieradarnos cuenta. UnreaenquelasTICrepresentanunafuncintransformadoraeslaeducacin[12].La integracincurriculardelasTICbuscahacerunacontribucinespecficaalaprendizaje, ofreciendometodologas,recursosycontextosdeaprendizajemsdifcilesdeimplementara travsdeotrosmedios[62].UnaefectivaintegracindelasTICselogracuandolatecnologa llega a ser parte integral del funcionamiento de la clase y tan asequible como otras herramientas utilizadas para aprender. Es decir, cuando las TIC se utilizan en forma habitual en las aulas para tareas variadas como escribir, obtener informacin, experimentar, simular, comunicarse, aprender un idioma, disear, todo ello en forma natural, invisible. La integracin curricular de las TIC va msalldelmerousoinstrumentaldelaherramientaysesitaenelniveldeinnovacindel sistema educativo [44]. En la actualidad, en los colegios de Chile, se est impulsando la enseanza y el aprendizaje de la cienciaatravsdelmtododeaprendizajeECBI(EstudiosdelasCienciasBasadoenla Indagacin) [45]. En particular, en tercerao deeducacin general bsica el mtodo propone el trabajoenpequeosgrupos,nomsdecuatroestudiantes,losquetrabajanjuntosparalograr objetivos comunes. Se busca que el equipo completo participe en la tarea asignada fortaleciendo elaprendizajecolaborativoentrelosintegrantes.Enestaestrategiaseresaltalamediacindel profesoroprofesoraquinproveealosestudiantes,durantelaactividadindagatoria,de condicionesparaqueunosaprendandeotrosalcompartirideas,descubrimientosyhabilidades. [45] Otrareadondelatecnologahaimpactadofuertementeesenlarepresentacindela informacin. Desde hace un tiempo se pueden observar una gran cantidad de aplicaciones web y 7 standalone,queutilizanRealidadAumentadaparapermitiralusuariointeractuarconobjetos virtuales. La Realidad Aumentada puede ser utilizada para aumentar la cantidad de informacin presente en el entorno para el usuario, como es el caso del uso de etiquetas de texto o sonidos espacializados. Adems, el uso de la Realidad Aumentada puede permitir una interaccin ms rica y natural con elementos virtuales mediante la manipulacin de fichas o tarjetas [55][11]. Se ha mostrado que el nivel de colaboracin quese puede alcanzar enaplicaciones de Realidad Aumentadaesmayoralquesepuedeobtenermedianteelusodedispositivosconvencionales, comosonelusodelmouseytecladofrenteauncomputador.Ensuestudio,Billinghurstetal. [10] hace una comparacin de los resultados obtenidos en el nivel de colaboracin de los usuarios mediantelarealizacindeuntrabajoutilizandoRealidadAumentadaydeotrosusuarios realizandoelmismotrabajoenunformatocaraacara.Losresultadosquesepresentanson alentadores a favor del uso de Realidad Aumentada. Estoshechosllevanapensarqueseraposibleutilizarestatecnologa,enunambiente educacional colaborativo para trabajar conconceptos abstractos, como por ejemplo el Universo, elSistemaSolaryelplanetaTierra.Estoscontenidossonvistosduranteelprimersemestrede tercer ao de educacin general bsica de una forma indagatoria [44]. Hoy en da se promueven unaseriedeactividadesquepermitenalosalumnosadquirirestosconocimientosnoslo leyndolos de un libro o por medio de la explicacin oral del profesor. Entre estas actividades se propone observar lminas del Sistema Solar, realizar dibujos en el cuaderno y construir maquetas usandoesferasdepolietileno[44].Sinembargo,estosrecursossonbastantelimitadospara entregarunaideacompletadelSistemaSolaralosalumnos,yaque,entreotrascaractersticas, son elementos estticos que no son capaces de mostrar el movimiento de los distintos elementos. TodaestapresenciadelasTICennuestrasvidashacenecesarioconsiderarcmosonlas interfacesatravsdelascualesinteractuamosconlatecnologa.Yanoesposiblesuponerque quienes usan los computadores son slo personas con conocimientos avanzados en el rea, por lo que si se espera que las nuevas aplicaciones desarrolladas puedan ser usadas por el comn de los usuarios se debe poner un nfasis adicional en su usabilidad. Existetambinunfactoreconmicoparaconsiderarlaaplicacindeunaevaluacinde usabilidad.En1992MyersyRosson[46]estimaronqueel48%delcdigodeunaaplicacin pertenecaalasinterfacesdelsoftware,portanto,unestudiodeusabilidadadecuadopuede ahorrar considerables esfuerzos en el ciclo de desarrollo. ConelfindeintegrarlasTICparaapoyarlaenseanzaenniosdeterceraodeeducacin generalbsicaseproponeeldiseoydesarrollodeunaherramientabasadaenlatecnologa de RealidadAumentadaespecficamentecreadaparaelapoyodelaenseanzayelaprendizaje del Sistema Solar. 8 1.2. Motivacin LamotivacindeestamemoriaesintegrarelusodeRealidadAumentadaenunaaplicacin educativa para nios de tercer ao de educacin general bsica. De este modo se busca observar si el uso de sta tecnologa tiene cabida en contextos educativos que involucran a nios de 8 y 9 aos de edad. Elprocesodedesarrollotienesuprincipalnfasiseneldiseodelsoftwareysusinterfaces,el cualsesustentaenevaluacionesdeusabilidadquepermitenobtenerunproductoqueesusable paralosalumnos.Seesperaquelaherramientadesarrolladaseaunapoyoquecomplementela enseanza del Sistema Solar proveyendo representaciones grficas adecuadas. 1.3. Objetivos Objetivo general Disear,desarrollaryevaluarlausabilidaddeunaherramientacontecnologadeRealidad Aumentada(AR)paraelapoyodelaenseanzayelaprendizajedelSistemaSolarenniosde tercer ao de educacin general bsica.Objetivos especficos ConstruirunsistemadeRealidadAumentadaquepermitaapoyarelaprendizajedel Sistema Solar en alumnos de tercer ao de educacin general bsica. Evaluar la usabilidad del sistema ARSolarSystecon usuarios finales. EvaluarelimpactodelusodeunsistemadeRealidadAumentadaenalumnosdetercer ao de educacin general bsica. 9 2.Captulo -Marco Terico 10 2.1. TIC y Educacin Por varias dcadas se ha especulado respecto del impacto que podra tener en los distintos niveles delaeducacinlarevolucindelasTIC.Esaespeculacin,ylosmltiplesensayosquela siguieron, se han convertido en los ltimos aos, especialmente a partir del desarrollo de la Web, enungranmovimientoqueesttransformandolaeducacinenmuchoslugaresdelmundo desarrollado [17]. Sinembargo,eserrorpensarquelasTICsonlapanaceadelaeducacin.Sonherramientasy materialesdeconstruccinquefacilitanelaprendizaje,eldesarrollodehabilidadesydistintas formas de aprender, estilos y ritmos de los aprendices. Es decir, No deben ser consideradas como un fin, sino, como un medio. La tecnologa es utilizada tanto para acercar al aprendiz al mundo, como el mundo al aprendiz. [2] SepuededefinirlaintegracindeTICalcurrculodeinstitucioneseducativascomola generacin de Ambientes de Aprendizaje enriquecidos (AAe) con el uso intencionado, enfocado y efectivo de las TIC. Con estos AAe se busca promover, facilitar y enriquecer la comprensin de temasyconceptospropioseimportantesdelasasignaturasfundamentalesdentrodelproceso educativo, profundizar en ellos y realizar investigacin sobre los mismos. [1] IntegrarcurricularmentelasTICesutilizarlascomoherramientasparaestimularelaprenderde uncontenidoespecficoenalgunasdelasdiferentesreascurricularesoenuncontexto multidisciplinario.LaintegracincurriculardeTICbuscahacerunacontribucinespecficaal aprendizaje,ofreciendometodologas,recursosycontextosdeaprendizajemsdifcilde implementar a travs de otros medios [62]. Una efectiva integracin de las TIC se logra cuando la tecnologallegaaserparteintegraldelfuncionamientodelaclaseytanasequiblecomootras herramientas utilizadas para aprender, es decir, cuando las TIC se utilizan en las aulas de forma cotidianaparatareasvariadas,comoexperimentar,simular,aprenderunidioma,disear,ytan naturalescomoescribir,comunicarseyobtenerinformacin,todoelloenformainvisible.La integracin curricular de las TIC va ms all de simplemente utilizar la herramienta y se sita en el nivel de innovacin del sistema educativo [26]. El Ministerio de Educacin de Chile tiene como tema preferencial en su agenda la incorporacin de las TIC en las prcticas pedaggicas, por lo que ha invertido una gran cantidad de recursos en diferentes programas estratgicos con el propsito de contribuir al mejoramiento de la educacin y al desarrollo de una cultura digital en la ciudadana con calidad, equidad y pertinencia. [66] En 2001 se crea el portal educarchile.cl [16], cuyo objetivo es contribuir a mejorar la calidad de laeducacin,siendounlugardeparticipacinqueofreceinformacin,recursos,serviciosy experiencias educativas a docentes, estudiantes, familias y especialistas [22]. OtroprogramadeintegracindelasTICenChileesTICEDUdeFONDEF,creadoen2002, tiene como foco el mejoramiento de los procesos de aprendizaje mediante soluciones educativas queincluyandesarrollosdeTIC[53].EnesteprogramatuvocabidaelproyectoExperiencias virtualescontomos,nmerosyplanetas,ejecutadoporlaFacultaddeIngenieradela 11 Universidad de Concepcin, y que tuvo por objetivo contribuir a la innovacin en la enseanza delafsica,qumicaymatemticasenlaeducacinbsica,haciendoposibleeldesarrollode materialeducativoqueincorporatecnologasdevisualizacinyelementoshpticos[22].La aplicacin de estas tecnologas permitira a los estudiantes experimentar con conceptos abstractos que de otra forma son de difcil representacin, tales como fuerza, energa, movimiento o presin. LaFigura1muestraelsoftware3DCIENCIASdesarrolladoporelproyectousandohpticay visualizaciones en 3D. Figura 1: 3DCIENCIAS Otra iniciativa que es necesaria mencionar es Enlaces del Ministerio de Educacin, cuya misin es contribuir al mejoramiento de la calidad de la educacin mediante la informtica educativa y el desarrollo de una cultura digital en la ciudadana con calidad, equidad y pertinencia [18]. Este proyecto ha permitido que el 95% de los estudiantes del sector pblico tengan acceso a las nuevas tecnologas,mediantelaimplementacindelaboratoriosdecomputacin,laboratoriosmviles conClassMatesyenelltimotiempo,conlaentregadenetbooksalosestablecimientos escolares [18]. La tecnologa esta innovando y facilitando los proceso de aprendizaje y enseanza tanto en Chile como en el mundo. Sin embargo, su insercin en un contexto escolar y ms an lograr que genere intersenlosalumnosparaquelautilicenconobjetivosdeaprendizajeesunatareacompleja [21]. 2.2. Realidad Aumentada Qu es? Un sistema de Realidad Aumentada es aquel que complementa el mundo real mediante el uso de elementos virtuales generados por computador que parecen coexistir en el mismo espacio que los elementos reales [55]. 12 Podemos definir la realidad aumentada como un punto entre la realidad y la Realidad Virtual. En la Realidad Virtual el usuario se ve completamente inmerso en el mundo virtual, perdiendo toda nocindelmundorealalrededordel.EnlaRealidadAumentadaelusuarioveelmundoreal con elementos virtuales superpuestos o combinados con el mundo real que le rodea. La Realidad Virtualreemplazacompletamenteelmundorealporunovirtual,laRealidadAumentada,en cambio,locomplementa,elresultadoesalgosimilaraloqueseveenlaprimerapartedela pelcula SpaceJam o en Quin enga a Roger Rabbit? [60] Figura 2: Continuo Realidad-Virtualidad [42]. Para comprender mejor la relacin entre el mundo real, Realidad Aumentada y Realidad Virtual, sepresentalaFigura2.Enelextremoizquierdodelafiguraestaelentornoreal,esdecir,el mundorealenelquevivimos,mientrasenelladoderechoestelentornovirtual,laRealidad Virtual,enelquenosloloquevemospuedeserreemplazadosinotambinlasleyesque gobiernanal mundo real, como lagravedad el tiempo, etc. Entre estos dos extremos tenemos lo quesedenominaRealidadMixta,en lacuallos elementosrealesyvirtualessonpresentadosde forma conjunta en el mismo dispositivo de visualizacin. Un caso particular de la Realidad Mixta eslaRealidadAumentada,enlacualseagreganelementosvirtualesalmundoreal complementndolo.AladerechadelaRealidadAumentadapodemosverlaVirtualidad Aumentada, en la cual se cuenta con un entorno completamente virtual sobre el que se posicionan elementosreales,unejemplodeestoeselprogramadeltiempo,enquetodoloqueseveen pantallaesgeneradoporuncomputadorsobreunfondoverdeysobreesteentornovirtualse posiciona la persona [43][42]. Sibienestatecnologaexistehaceyaalgunasdcadas,slohacealgunospocosaosquela Realidad Aumentada se ha vuelto accesible para las personas en general, gracias a los avances en procesamiento realizados en computadores de escritorio, notebooks e incluso equipos mviles, al igual que en otras tecnologas. En la actualidad las aplicaciones de Realidad Aumentada estn tan a la mano como cualquier otra aplicacin de PC o smartphone [31]. LaRealidadAumentadaesunatecnologaqueentregaunanuevaformadeinteraccinentreel usuarioyelcomputadormedianteelusodeelementostangiblesypermiteuntrabajoengrupo cara a cara en que todos los participantes pueden trabajar sin la necesidad de estar compartiendo 13 untecladoounmouse[10].Estosuponeunaventajaeneltrabajoconrespectoaotras tecnologas que utilizan representaciones en 3D en el computador. Enestesentido,sehanrealizadoestudiosparacomprobarlacapacidaddeestatecnologapara apoyar el trabajo colaborativo [9][10], permitiendo a los usuarios interactuar con objetos virtuales en 3D ubicados en el espacio entre los usuarios [32]. Billinghurst, Weghorst y Furness probaron quelosusuarioscolaboranmsentreellosenunambientedeRealidadAumentadaqueles permiteinteractuarcaraacaraqueenunambientedecompletainmersincomoeslaRealidad Virtual [38]. ParaesteestudiosedefineunsistemadeRealidadAumentadacomoaquelquecumpleconlas siguientes 3 caractersticas: Combina elementos reales y virtuales en el mundo real Es interactivo en tiempo real Registrayposicionaloselementosvirtualesconsiderandolatridimensionalidaddel mundo real SibienlaRealidadAumentadapuedeincluirdiversossentidoscomolavisin,elsonidoyel tacto,esteestudiosloseenfocaraenelprimero,lavisin.LaFigura3muestraunejemplode RealidadAumentadaenqueunmodelo3Dpuedeservistocaminandosobrelacartuladeuna caja de CD. Con el acceso generalizado a la Realidad Aumentada, se estn estudiando nuevos usos y se estn conduciendo nuevos experimentos. La mayora de las aplicaciones que existen actualmente estn diseadas para el rea de marketing [64][15][57], para obtener informacin basada en la posicin [37] o para el ocio [5][3], sin embargo esto cambia a medida que aparecen nuevas herramientas. La realidad aumentada est en posicin para entrar en el uso generalizado. [31] Figura 3: Ejemplo de Realidad Aumentada. 14 Realidad Aumentada y Educacin ElInformeHorizon2010ubicaalaRealidadAumentadacomounadelas2tecnologas emergentesqueprobablementetendrnunusogeneralizadoencampusuniversitariosenun horizonte de implantacin de dos a tres aos [31]. EnlaactualidadexistenalgunasaplicacionesdeRealidadAumentadaquehansidoutilizadas para la enseanza de contenidos. En general, los contenidos que se han abordado utilizando esta tecnologasonaquellosenqueelalumnorequieresercapazdemanejarunaltonivelde abstraccinparacomprenderlos.Alpermitirinteractuarcondistintoselementos,laRealidad Aumentadapermitequelosalumnosseancapacesdepercibirycontrolarobjetosquedeotra formaseraimposible.Porotrolado,alnoeliminarelcontextodelmundoreal,estatecnologa permitequeestosearealizadosinperderlacomunicacinycolaboracinquepuedenser necesariosendistintoscontextoseducacionales.Unodelosestudiosqueejemplificamejoreste punto es Molecular Structure, desarrollado por LarnGear Technology [29][35]. EnMolecularStructuresediseeimplementunaaplicacinparalaenseanzadelas molculasmedianteelusodemodelostridimensionalesconlosquelosalumnospueden interactuar gracias al uso de fichas con marcadores impresos en ellas y a la Realidad Aumentada. LaaplicacinfuedesarrolladautilizandoARToolKitypermitealosusuariosinteractuarde diversas formas con los objetos virtuales. Les permite ver informacin relativa a cada uno de los objetosycomponerlosparaformarnuevasestructurasyverdistintasrepresentacionesdeestas. LaaplicacinfuedesarrolladayprobadaconalumnosenrecintoseducacionalesenTailandia. Los resultados mostraron una buena aceptacin por parte de los estudiantes respecto del sistema y mejorasensuscapacidadespararesolverproblemasdeQumicaInorgnicarelacionadoscon estructuras cristalinas en 3D. Porltimo,semencionaGoogleSkyMap[25],unsoftwarequepermitealusuariover informacinsobrelasestrellasyconstelacionesmientraslasobservaatravsdeundispositivo mvil. La aplicacin requiere un dispositivo con cmara web, GPS y sistema operativo Android. Herramientas para la Creacin de Aplicaciones de AR En esta seccin se presentan una serie de herramientas que proveen distintos acercamientos para resolverelproblemadetrackingdelacmaraalmomentodecrearunaaplicacindeRealidad Aumentada. Las tres tcnicas principales son tracking basado en marcadores, odometra visual y tracking sensorial (GPS, compas, etc.). ARToolKit ARToolKitfuediseadooriginalmenteporelDr.HirokazuKato,ysucontinuodesarrolloest respaldadoporelHumanInterfaceTechnologyLaboratory(HITLab)delaUniversidadde Washington, HIT Lab NZ de la Universidad de Canterbury, Nueva Zelanda y ARToolworks, Inc, Seattle. Es una librera para la construccin de aplicaciones de Realidad Aumentad que utiliza algoritmos devisincomputacionalpararesolverelproblemadeltracking.Laslibrerasparatrackingde 15 videodeARToolKitusanmltiplesmarcadoresfsicosparacalcularlaposicinyorientacin real de la cmara en tiempo real. Esto facilita el desarrollo de un amplio rango de aplicaciones de Realidad Aumentada. La Figura 4 muestra un posible marcador usado por ARToolKit. Figura 4: Marcador El tracking de ARToolKit funciona de la siguiente manera: 1.La cmara captura el video del mundo real y lo enva al computador. 2.Elsoftwareenelcomputadorrevisacadacuadrodeimagendelvideoenbuscadeuna figura con forma de cuadrado. 3.Siseencuentraelcuadrado,elsoftwareusaalgoritmosmatemticosparacalcularla posicin de la cmara relativa al cuadrado. 4.Unavezquelaposicindelacmaraseconoce,sedibujaunmodelogrfico computacional desde la misma posicin. 5.El modelo es dibujado sobre el cuadro de video del mundo real y as parece estar sobre el marcador cuadrado. 6.Elresultadofinalsemuestraeneldispositivodevideo(monitor,proyector,etc.),as, cuando el usuario mira en este, ve el modelo grfico superpuesto en el mundo real. Lalibreraescapazderealizareltrackingdelaposicindelacmararelativaalmarcadoren tiemporeal,asegurandoasqueloselementosvirtualessiempreaparezcansobrepuestosenel marcador. La Figura 5 resume los pasos explicados anteriormente. 16 Figura 5: Diagrama paso a paso de la creacin de un cuadro de video de Realidad Aumentada usando ARToolKit [7] ARToolKitslotienecapacidadparahacertrackingdelaposicin/orientacindeunacmara. Adems, dado que usa slo visin computacional, los objetos virtuales aparecen slo cuando los marcadores a los que se les hace tracking estn en el ngulo de visin de la cmara. Esto puede limitareltamaoymovilidaddelosobjetosvirtuales.Tambinsignificaquesilosusuarios cubrenpartedelosmarcadores,consusmanosuotrosobjetos,loselementosvirtuales desaparecen. Tambinexistenlimitantesderango.Mientrasmsgrandeeselmarcadorfsicousado,dems lejos puede ser detectado y por tanto mayor el volumen en que el usuario puede ser rastreado. La tablaenlaFigura6muestraalgunosrangosmximostpicosparamarcadorescuadradosde distintos tamaos segn se presentan en la documentacin de la librera. Estos resultados fueron obtenidoshaciendopatronesdemarcadoresdeunrangodetamaosdistintos,ubicndolosde formaperpendicularalacmaraymoviendolacmarahaciaatrs(alejndosedelmarcador) hasta que el elemento virtual en el marcador desapareciera. Tamao del marcador (pulgadas) Rango de uso (pulgadas) 2.7516 3.5025 4.2534 7.3750 Figura 6: Tabla de informacin de tamao de marcadores y su rango de uso La complejidad del patrn en el marcador tambin puede afectar el rango en el tracking. Mientras ms simple sea el patrn mejor ser el tracking de este. El tracking tambin se ve afectado por la orientacindelacmararelativaalmarcador,mientrasmayoreselnguloqueseproduceel trackingsevuelvemenosconfiable.Finalmente,hayqueconsiderarquelascondicionesde 17 iluminacintambinafectaneltrackingdelmarcadoryaquelaluzcreareflexinypuntosde brilloenlasuperficiedelmarcadorhacindoloasmsdifcildeencontrarparaelalgoritmode visin computacional, sin embargo, esto puede ser minimizado mediante el uso de materiales no reflectivos. FLARToolKit EstaesunaversinportadadeARToolKitaAdobeFlashActionScrypt3[20].Funcionadela misma forma que ARToolKit pero es posible ver las aplicaciones a travs de la web.Altrabajarconestaherramientasepudoobservarquesuprincipalventajaeslafacilidadque entregayelpocotiemponecesarioparalacreacindeunaaplicacindeRealidadAumentada. EstoseacrecientaanmsmedianteelusodeFLARManager[19],queestructuralas aplicacionescreadasdeformaquequienlasprogramanodebapreocuparsedenadamsquela interaccindelusuarioconlosmarcadores.Puedeserusadoconmotoresgrficoscomo Papervision3D, Away3D, Sandy y Alternativa3D. Adems fue posible notar que est pensado para ser usado en aplicaciones web por diseadores y prcticamente no requiere conocimientos previos de programacin. Existen una serie de libreras portadas de ARToolKit que no se describirn en este trabajo. Todas ellascompartencaractersticasmuysimilaresycasilasmismascapacidadesyventajasque FLARToolKit y pueden o no estar dirigidas a la creacin de aplicaciones web. Algunas de estas libreras son NyARToolkit [50] (portada a Java) y ARMedia Plugin [4] (para trabajar con Google SketchUp). PTAM PTAM fue desarrollada y es mantenida hoy en da por Active Vision Group en el Departamento de Ciencias de la Ingeniera de la Universidad de Oxford [54]. La librera utiliza odometra visual. Al trabajar con ella se pude observar que provee la capacidad dehacetrackingdelaescenasinlanecesidaddeunmapaprevioomarcador.Especficamente, hace tracking de una cmara en una escena de la que no se tiene conocimiento previo, sin objetos conocidosoinicializacindeobjetivos,mientrascreaunmapadelentorno.Unavezqueseha construido un mapa rudimentario, se utiliza para insertar objetos virtuales en la escena, y estos se posicionan de forma precisa en relacin con los objetos reales del entorno. Dado que no se utiliza un mapa previo, el sistema no tiene una comprensin profunda del entorno delusuarioyestoexcluyemuchasaplicacionesdeRealidadAumentadabasadasentareas.El mtodoutilizadoparaproveeralusuarioconunaaumentacinsignificativaestratarelmapa generadocomouncampodejuegoenelcualsepuedencrearsimulacionesvirtuales.En particular, estima cual es el plano dominante (un plano virtual) a partir de los puntos mapeados unejemplodeestosemuestraenlaFigura7ypermitequeenesteseagreguenelementos virtuales. En esencia, transforma cualquier superficie plana (y razonablemente texturizada) en un campo de juego para simulaciones de realidad aumentada. 18 Figura 7: Tracking de una nueva escena usando PTAM [34] Paraproveeralusuariodeunamayorlibertaddeinteraccinconlasimulacin,requieredeun tracking de la cmara que sea rpido, preciso y robusto, mientras se refina el mapa y se expande sinuevasregionessonexploradas.Esteesunproblemadifcil,yportantoparasimplificarla tarea existen algunas restricciones impuestas a la escena sobre la cual se realiza el tracking: debe seresttica,esdecir,nodeformable,ydebeserpequea.Porpequeasequieredecirqueel usuarioestlamayorpartedeltiempoenelmismolugar:porejemplo,enunescritorio,enla esquinadeunahabitacin,ofrenteaunedificioenparticular.Estoescompatibleconungran nmero de espacios de trabajos relacionados con aplicaciones de Realidad Aumentada, donde el usuariodetodasformasestacomnmenteligadoauncomputador;sinembargolimitasus aplicaciones. Tareas exploratorias como correr por una ciudad no estn soportadas. [54] Una ventaja de PTAM es que el sistema puede hacer tracking a muchas escalas. En la Figura 8, el mapa esta inicializado en la escala superior derecha; el usuario se mueve ms cerca y coloca una etiqueta que an es posicionado de forma precisa en la escena cuando es vista desde una distancia mayor [34]. 19 Figura 8: Escena aumentada usando PTAM vista en distintas escalas [[34]. Layar LayaresunproyectoprivadorealizadoporRaimovanderKlein,ClaireBoonstrayMaarten Lens-FitzGerald en Holanda [37]. Estdiseadoparatrabajarcondispositivosmvilesyhaceusodesensoresdistintosdela cmara,comoGPS,compas,giroscopioyacelermetro,paraobtenerlaposicinabsolutay orientacin del dispositivo y luego ubicar ciertos puntos de referencia cercanos obtenidos de una basededatos[37].Estemtodohacequeestasaplicacionesseanmssimilaresaaplicaciones quesonconscientesdesuposicinbasndoseenmapasquealasaplicacionesqueusanlos mtodos presentados anteriormente. Al analizar la forma en que Layar funciona, es posible observar que tiene ventajas claves que se deben al uso de sensores para determinar la posicin y orientacin. La primera es que funciona en unmayornmerodeentornos.SibienelGPScomnmentetieneproblemasdentrode edificaciones, funciona muy bien de noche, en el mar y en la mayor parte del planeta. Al trabajar con PTAM se pudo observar que la odometra visual tiene un un buen funcionamiento relativoaunpuntodeinicio,dondeseinicializaelsistemadetracking,peronorelativoaun sistema de coordenadas absoluto. Losentornosdelmundorealsonmuydinmicosconpersonas,autosyobjetosmovindosepor todos lados y que pueden interrumpir los sistemas de tracking basados en visin (como PTAM y ARToolkit),sinembargoelGPSnoseveafectadoporestosobjetosenmovimientoyaque obtiene su informacin mediante ondas electromagnticas. Lossensoresdemovimientocomoacelermetrosygiroscopiossonsensoresbastantesbuenos para obtener los valores de inclinacin y balanceo. Los compases son un poco menos confiables dadasususceptibilidadaserafectadosporcamposmagnticoscercanosygrandesobjetos metlicos, sin embargo, son capaces de dar aproximaciones de hacia dnde apunta el dispositivo. Todos estos sensores funcionan bien tanto dentro de edificaciones como en entornos abiertos. 20 Apesardeestasventajas,lossistemasdeGPSactualestienenimportantesproblemasde precisin; la mejor precisin que se puede lograr con un receptor de GPS es de 1 metro [39]. Esto significa que los sistemas de Realidad Aumentada basados en GPS no funcionan con objetos que estn a menos de 10 metros de distancia. Layarpermitealosdesarrolladoresdefinircapasdecontenidoquesonelequivalenteapginas web en navegadores de internet. Estas capas de contenido tienen informacin y triggers de accin que sern vistos por el usuario. Los desarrolladores pueden definir el look and feel de la capas de contenidoquesonmostradasalusuariousandoRealidadAumentada.Sepuedenconfigurar mltiplesparmetroscomolamarca,esquemadecolores,ttuloeindicadoresdepuntosde inters(POI,delinglsPointofInterest).Adicionalmente,sepuedenagregarfiltrosqueel usuario podr usar para disminuir o ampliar la bsqueda de POIs. [37] Figura 9: Aplicacin hecha usando Layar Al utilizar una aplicacin basada en Layar se puede visualiza una capa de informacin en la vista aumentada. Se despliega una lista de POIs y su posicin, que se obtiene a partir de un servidor. El desarrolladorpuedeelegirqupuntossonrelevantesenelcontextoactualdelusuario,por ejemplo,dependiendodelahoradeldaylosfiltrosaplicadosporelusuario.CadaPOItiene informacin que se muestra en la pantalla apenas el POI entra en foco. Para cada POI se pueden definir acciones, como por ejemplo, ir a una URL o hacer una llamada telefnica [36]. La Figura 9 muestra un ejemplo de una aplicacin hecha usando Layar. Los POIs son pedidos al servidor en base a la posicin actual entregada por el GPS. El servidor entrega un documento JSON con los POIs correspondientes y su informacin es desplegada en la vistadeRealidadAumentadaenlaaplicacin.LaFigura10muestrapartedelaarquitecturade Layar [37]. 21 Figura 10: Seccin de la arquitectura de Layar que muestra la interaccin entre la aplicacin cliente y el servidor donde se almacena la informacin de los POIs [37]. 22 3.Captulo -DISEO DE ARSOLARSYSTEM 23 3.1. Descripcin General ARSolarSystem es un videojuego educativo que busca ensear de forma entretenida e interactiva aalumnosde8y9aosdeedadquecursanterceraodeeducacingeneralbsicasobrelas distintaspartesdelSistemaSolar,permitindolesinteractuarconlosdistintoselementosdeuna formanaturalydivertidamedianteelementostangiblesyutilizandolatecnologadeRealidad Aumentada. Como se mencion enel subaptulo 2.2, Realidad Aumentada, existen una serie de formas de implementaresttecnologa.ARSolarSystemesunaaplicacinstandalonediseadaparaser ejecutada en PC y que utiliza un monitor para desplegar la informacin al jugador. Para jugarlo, se hace necesario el uso de una cmara web y de un computador, que puede ser tanto de escritorio como un notebook o netbook. El sistema consta de un software y fichas fsicas que son utilizadas para interactuar. Se juega con 13 fichas, una que representa al Sol, ocho que representan cada uno de los planetas, una ficha de pregunta para consultar sobre los distintos elementos presentes en el videojuegoy tres fichas de alternativas que son utilizadas para responder a las preguntas que el sistema hace a los jugadores. La Figura 11 muestra algunas de las fichas usadas. Figura 11: Subconjunto de las fichas usadas por ARSolarSystem. ARSolarSystemestcompuestode3etapas,cadaunacondistintasactividades,lascualesse presentandeformaincrementalydebenserrealizadasenordenporlosalumnos.Enlaprimera parte,losalumnostrabajanconloselementosdelSistemaSolarintentandodescubrirculesla identidaddecadaunodeloselementos.Paraelloutilizanlafichadepreguntaparaconseguir pistassobreloselementosylasfichasdealternativaparaindicaralsistemacualeslaidentidad del elemento con el que estn trabajando. 24 En la segunda etapa, los jugadores deben lograr encontrar el orden de los planetas en torno al Sol. Aqu slo se usan las fichas que representan a los elementos del Sistema Solar. Finalmente, en la terceraetapa,losalumnosdebenobservarunaanimacinen3DdelSistemaSolar,quese presentausandoRealidadAumentada,yresponderacertadamenteapreguntasqueseleshacen respecto del movimiento de los elementos. Laaplicacinfuediseadaparaserjugadotantodeformaindividualcomoenparejas,tambin puedeserjugadopormsjugadores,sinembargo,estopuedeproducirquealgunosdelos alumnos tengan un papel menos activo en el videojuego, por lo que no se recomienda. La Figura 12 muestra a dos alumnos trabajando con la aplicacin. Figura 12: Dos alumnos trabajando con el primer prototipo de ARSolarSystem. 3.2. Contenidos El contenido que se trabaja en ARSolarSystem es el Sistema Solar. Este contenido est presente enelprogramadeestudiosdelsubsectorComprensindelMediodeterceraodeEnseanza GeneralBsica[44].Elcontenidopresentadofueelaboradoyrevisadoconayudade profesionales del rea. Los contenidos abordados por el videojuego son especficamente: Nmero de planetas en el Sistema Solar. Nombre de cada uno de los planetas del Sistema Solar y del Sol La apariencia y colores de los planetas del Sistema Solar y del Sol Tamaos relativos de los planetas del Sistema Solar y del Sol Informacin sobre los planetas del Sistema Solar, nmero y nombre de satlites naturales, temperatura, etc. 25 MovimientoderotacindelosplanetasdelSistemaSolarydelSol,incluyendosu direccin MovimientodetraslacindelosplanetasdelSistemaSolar,formadelasrbitas, velocidades relativas y planos de traslacin. Paradefinirlaformaenquesepresentancadaunodeloscontenidosfuenecesariorecurrira profesores.Acontinuacinsepresentanlaspistasauditivasentregadasporcadaunodelos elementosdelSistemaSolar,lascualesentreganinformacinalalumnoparaqueidentifiquea queelementocorresponde.Cadaunadeestaspistasfueformuladaapartirdeunconjuntode conceptosysentenciasentregadosporlosprofesores.Lassentenciasoriginalesdebieron,sin embargo, ser modificadas para lograr una caracterizacin de los distintos elementos. Sol: Estoy compuesto de dos gases, helio e hidrgeno La tierra y los otros siete planetas giran a m alrededor. Soy la estrella ms cercana a la tierra. Mercurio: Al estar tan cerca del sol mi superficie tiene temperaturas muy altas. Soy el ms pequeo de los planetas interiores. Mi superficie es parecida a la lunar por la gran cantidad de crteres que tengo. Venus: Auch auch, me quemo!! Mi temperatura es ms alta que la de cualquier otro planeta. Giro en el sentido apuesto al resto de los planetas del sistema solar. Me puedes ver desde la tierra como una estrella luminosa. Tierra: Soy el ms grande de los planetas interiores!! Dos tercios de mi estn cubiertos de agua en estado lquido. Soy el nico que puede tener vida!! Marte: Soy el planeta rojo. Tengo dos pequeos satlites naturales, miedo y temor. Soy el plantea interior ms alejado del sol. Jpiter: Tengo cuatro satlites principales. Soy un planeta con mucho brillo a lo largo del ao. 26 Soy el quinto planeta del sistema solar. Saturno: Soy un planeta achatado en los polos. Tengo un sistema de anillo visible desde la tierra. Soy el sexto planeta del sistema solar. Urano Tengo una superficie muy uniforme a diferencia del resto de los planetas Mi color es azul verdoso producido por la combinacin de gases de mi atmsfera Giro en el sentido apuesto del resto de los planetas exteriores. Neptuno Soy un planeta muy azulado, muy parecido a Urano. Soy el planeta ms lejano de los planetas gigantes. Soy el octavo y ltimo planeta del sistema solar. Paralatercerayltimaetapadelvideojuego,sedefinierondospreguntas,lascualesrequieren quelosalumnosobservenlaanimacindelSistemaSolarquelespresentaelvideojuego.Las preguntas son las siguientes: A qu figuras se parecen ms las rbitas de los planetas? UnaoeseltiempoquedemoraunplanetaendarunavueltaalrededordelSol.Qu planeta tiene aos ms largos? 27 3.3. Casos de Uso A continuacin se presentan los requisitos funcionales del videojuego en forma de casos de uso y diagramas de flujo. Caso de uso Identificar Elemento Figura 13: Caso de uso Identificar Elemento. NombreIdentificar Elemento DescripcinPermite identificar el nombre de un elemento del Sistema Solar. ActoresJugador PrecondicionesEl jugador ha ingresado al videojuego. Flujo NormalElusuarioponelafichadepreguntajuntoalafichadeunelementodel SistemaSolar.Elsistemalerespondeentregndoleunapistasobrela identidaddelelementoy3alternativas.Finalmente,elusuarioponelaficha depreguntajuntaaunadelasfichasdealternativas.Silarespuestaes correcta, el sistema suma una cantidad al puntaje del jugador, pone el nombre delelementosobreesteyfelicitaalusuario.Silarespuestaesincorrecta,el sistema se lo indica al usuario y el juego contina. Flujo AlternativoSi el sistema pierde el traking del marcador en la ficha del elemento junto al cualelusuarioponelafichadepregunta,elsistemapausalaentregade informacin(pistayalternativas).Cuandoelsistemaretomaeltrakingdel marcadorenlafichaelsistemaentregalainformacinfaltanteyelflujo contina normalmente. PostcondicionesLainformacinqueentregaelelementojuntoalcualsepusolafichade preguntacambiayelpuntajedeljugadorhavaraonosegnlarespuesta entregada. La Figura 14 muestra el diagrama de flujo para este caso de uso. 28

Figura 14: Diagrama de flujo de Identificar Elemento. 29 Caso de uso Ordenar Sistema Solar Figura 15: Caso de uso Ordenar Sistema Solar. NombreOrdenar Sistema Solar DescripcinPermiteordenarloselementosdelSistemaSolarencualquierordeny comprobar si es el orden correcto. ActoresJugador PrecondicionesEljugadorhaidentificadocorrectamentetodosloselementosdelSistema Solar. Flujo NormalEljugadormuevelasfichasylasordenasegncomocreoqueestn alineadoslosplanetasdelSistemaSolarrespectodelSolyluegoponela ficha de pregunta junto a la ficha que representa al Sol. El sistema comprueba sielordenescorrecto,lesumaunacantidadalpuntajedeljugadorylo felicita. Si el orden es incorrecto le pide al usuario que vuelva a intentarloy se reinicia el caso de uso. Flujo AlternativoElsistemapierdeeltrakingdelmarcadorenunaomsfichasdel juego.En estecaso,elusuariodebemoverlasfichasparaqueelsistemarecobreel trakingsobrelosmarcadores.Unavezhechoestoelflujocontina normalmente. PostcondicionesSielordenescorrecto,elpuntajedelusuariosehaincrementadoyseha habilitadolaetapadeexploracindelSistemaSolar.Delocontrariose vuelve a la precondicin. La Figura 16 muestra el diagrama de flujo para este caso de uso. 30 Figura 16: Diagrama de flujo de Ordenar Sistema Solar. Caso de uso Explorar Sistema Solar Figura 17: Caso de uso Explorar Sistema Solar. 31 NombreExplorar Sistema Solar DescripcinPermitepedirunapreguntasobreelSistemaSolarparaluegoobservarloen busca de una respuesta y responder a la pregunta. ActoresJugador PrecondicionesEljugadorhaordenadocorrectamentelosplanetasentornoalSolyse encuentra observando a una animacin del Sistema Solar. Flujo NormalEl jugador pone la ficha de pregunta junto a la ficha que representa al Sol. El videojuegolehaceunapreguntayentregatresalternativas.Elusuario observa el Sistema Solar en busca de la respuesta y luego responde poniendo la ficha de pregunta junto a la alternativa que cree correcta. Si la respuesta es correcta,elsistemaincrementaelpuntajedeljugadorylofelicita.Sila respuesta es incorrecta, el sistema se lo indica al jugador. Flujo AlternativoEl sistema pierde el traking del marcador en la ficha que representa al Sol. Se pausa la pregunta y las alternativas restantes. El usuario mueve la ficha hasta queelsistemarecobraeltrakingdelmarcadoryelflujocontina normalmente. PostcondicionesSilarespuestaescorrecta,elpuntajedeljugadorsehaincrementado.Delo contrario permanece igual. La Figura 18 muestra el diagrama de flujo para este caso de uso. 32 Figura 18: Diagrama de flujo Explorar el Sistema Solar. 33 3.4. Arquitectura ARSolarSystem funciona mediante un ciclo de juego. Esta decisin de diseo fue tomada debido alanecesidaddepermitiralaaplicacinestarconstantementellevandoacabooperaciones, independientedesielusuariorealizaonoalgunaaccin[58].Paradetectarlasaccionesdel jugadorseusanoperacionesdepolling,estosignificaqueelsistemaestconstantemente preguntandoalosdistintosdispositivosdeI/O(EntradaySalida,delinglsInputandOutput) sobre su estado [52]. Esteconceptodifieredemuchasaplicacionesqueestndiseadasparaoperarapartir, nicamente, de eventos realizados por los usuarios. Un ejemplo de este tipo de aplicaciones son aquellas basadas en formularios. Cuando una aplicacin presenta un formulario al usuario, le pide que escriba ciertos datos o informacin y que luego presione un botn para saber si ha terminado. Aqulaaplicacinreaccionanicamentecuandoelusuariopresionaunateclaparaescribir (dibuja una letra en pantalla) y cuando el usuario presiona el botn que indica que se termin de llenar el formulario. Si el usuario no realiza ninguna de estas acciones, entonces la aplicacin no realiza accin alguna. Este diseo no es adecuado para ARSolarSystem ni para la mayora de los videojuegosengeneral,puesentreotrascosas,esnecesarioactualizarconstantementela informacin desplegada en pantalla. Figura 19: Ciclo de juego. El ciclo de juego utilizado por ARSolarSystem se puede ver en la Figura 19. El flujo consta de 3 funciones que son invocadas de forma iterativa y en una secuencia definida durante la ejecucin de la aplicacin. El ciclo comienza al invocar a la funcin Input(), la cual comprueba el estado de los dispositivos deI/O ocupados por laaplicacin, como mousey teclado. Posteriormente se invoca a la funcin Update(), tambin comnmente denominada Idle(). Aqu la aplicacin realizatodaslasoperacioneslgicas.FinalmenteseinvocalafuncinDraw(),tambin comnmente denominada Render(), la cual se encarga de realizar las operaciones de dibujo de la pantalla. En el caso de ARSolarSystem, se decidi entregar adicionalmente la responsabilidad de desplegar el audio a la funcin Draw(). 34 Figura 20: Flujo de ARSolarSystem. El flujo completo de ARSolarSystem se presenta en la Figura 20. A continuacin se describen las acciones concretas realizadas por la aplicacin en cada una de las funciones del flujo: Initialize():Enestafuncinserealizalainicializacinyasignacindevariables, instanciasoestructurasnecesariasparaqueelprogramafuncione.Aqusecarganen memoriatodosloselementosnecesariosparalaejecucindelsistema.Serealizala inicializacinyconfiguracindelacmaraparacomenzarlacapturadeimagenyse carganlosmarcadoresyloscontenidosasociadosacadaunodeellos,modelos3De imgenes.Seinicializalaprimeraescenaysecarganloscontenidosutilizadosdeforma transversal por todas las escenas del videojuego. 35 Input(): El usuario puede interactuar con el sistema a travs del teclado. Sin embargo, estoslosehaceparanavegaratravsdelasetapasyparaconfigurarparmetrosde captura de la cmara. Cuando se presiona alguna tecla se va ingresando informacin sobre esta accin a una estructura que indica qu botn se presion. Esta estructura es analizada enestepuntodelflujo,porlocualtodaaccindeinputquedarencoladaytodas impactaran en la aplicacin al ejecutarse esta funcin. Update():Enestemtodoseencapsulanlamayoradelastareasdelaaplicacin. Inicialmente se toma el cuadro actual de la captura de video, que es provisto por la cmara web, y se extrae informacin sobre la existencia o ausencia de marcadores en la imagen y culessuposicinenrelacinalcampovisualdeldispositivo.Sienesteprocesose detecta una de las interacciones predefinidasenel juego, se realizan lasoperaciones que tieneasociadas.Estopuedeserdesplegarunapreguntaysusalternativas,chequearel orden de los elementos, revisar si una respuesta es correcta, etc. Draw():Estaeslafuncinencargadadeldibujo.Esresponsabledepresentarlos elementos del juego en pantalla. En particular, aqu se encuentran todas las acciones que tienen relacincon la interfaz de salida, lacual ser utilizada por el usuario del sistema. EnARSolarSystemestainterfazconsideratantoelvideocomoelaudio.Setomola decisin de diseo de incorporar, adems del render (o dibujo) de la pantalla, la lgica de reproduccindepistasdeaudio.Sibienestopodrahaberserealizadotambinen Update(), pareci ms natural ejecutarloaqu. Sin embargo, segener una separacin adecuadaentreambostiposdeelementos.Todolorelacionadoconlareproduccinde audio se encapsul en una funcin por separado llamada Play(), la cual es invocada por la funcin Draw(). Release(): Si la ejecucin del programa termina, es decir, se han completado todos los niveles del videojuego, todo recurso cargado en memoria es liberado por esta funcin. Si bien esto no es obligatorio para una aplicacin, debera considerarse en cualquier flujo de programa ya que es considerado una buena prctica. En el diseo del videojuego se consider de gran importancia la escalabilidad del sistema. Es por estoquesediseunaarquitecturabasadaenescenasoniveles,quepermitieraincorporarde formarpidaysencillanuevosnivelesalvideojuego.LaFigura21muestralaarquitecturadel sistema, en ella se puede ver cmo estn consideradas las escenas en la aplicacin. 36 Figura 21: Diagrama de Arquitectura. El programa principal contiene la instancia de un videojuego particular, ARSolarSystem, el cual contienetodaslasvariablesyfuncionesfundamentalesquelocaracterizanysonpropiasdel. Aqusemantienenvariablescomoelpuntaje,losmarcadores,lasrutasdesonidoscomunesa cada una de las etapas, contantes del videojuego como la distancia de colisin entre marcadores, instancias de comunicacin con componentes externos, etc. Porotrolado,elprogramaprincipaltambincontieneunadefinicindeescenas,lascuales correspondenalosdistintosnivelesdelvideojuego.Cadaescenaescapazdeejecutarsepors solapuesposeesupropialgica.Elprogramaprincipalentregaelcontrolacadaunadeestas escenas de forma secuencial. Este diseo permite simplificar la incorporacin de nuevas etapas y eliminacindeaquellasquenoseconsideranquecontinensiendotiles,yaquenoexisteuna dependencia entre ellas. Lasescenassemantienenenunaestructuraqueindicaelordenenquedebenserinvocadas. Generalmente, la estructura utilizada es un grafo en que cada escena corresponde a un nodo. Sin embargo,ARSolarSystemesunvideojuegolinealenquenoesnecesariotomardecisiones respectodelflujodeljuego.Esporestoquesedecidiutilizarunarregloparadisponerdelas escenas. Una de las ventajas principales de este diseo, adems de la escalabilidad, es la facilidad con que se puede pasar de una escena o etapa a otra,ya que cada una es responsable de su inicializacin (Initialize()),actualizacin(Update()),render(Draw()yPlay())ylimpieza 37 (Release()).Elmanejodelinput(Input()),sinembargo,sedejacargodelaaplicacin principal, ya que en el caso de ARSolarSystem, no existe un manejo diferenciado por escenas del uso del teclado. Los recursos son accedidos por la aplicacin de dos formas distintas. Los marcadores y todos los elementos relacionados a estos (modelos 3D, sonidos y textos) son accedidos a travs de archivos deconfiguracincuyasrutasestndefinidasenelcomponenteARSolarSystem.Estohaceque seanfcilmenteeditables.Porotrolado,lossonidosquenoestnasociadosaunmarcadoren particular tienen sus rutas definidas directamente en el cdigo, lo cual hace que sea ms difcil su edicin, sin embargo, son los menos. Finalmente,sepuedenidentificartrescomponentesesencialesparaelfuncionamientodela aplicacin,estoselementossonaccedidosatravsdelcomponenteARSolarSystemyse describen a continuacin: Sistema de Tracking: Corresponde al sistema que es capaz mediante el procesamiento de uncuadrodevideo,deobtenerinformacinquepermiteidentificarciertosobjetosde intersyhacerlesseguimiento,detectandosuposicin,orientacinyescalarelativaala cmaraentodomomento.EstoeslabasepararealizaraplicacionesdeRealidad Aumentada. SistemadeRendering:Lainterfazgrficaesdevitalimportanciaenelsistema.Los elementosgrficossonmodelosen3Dquedebensercargadosydibujadosporla aplicacinenlapantalla.Elusodeelementosgrficosesvitalparalaaplicacin desarrollada. Sistema de Sonido: Ya que los usuarios obtendrn parte de la informacin utilizando una interfazbasadaenaudio,sehacenecesariotenerunsistemaquefacilitesuusoe integracin con la aplicacin desarrollada. Existennumerosaslibrerasparaimplementarlasfuncionalidadesasociadasalosdistintos sistemas mencionados. Algunos ejemplos son ARToolKit [6], y OpenCV [51] para implementar el tracking, DirectX [41] y OpenAL [28] para la reproduccin de sonido y formatos como VRML [67] y COLLADA [13] para los modelos 3D. Esto hace que en el futuro sea necesario modificar alguno de estos sistemas, ya sea cambiando el formato de archivos de audio, cambiando el tipo de objetos sobre el cual se realiza el tracking, o modificando el formato de los modelos a desplegar. Laarquitecturadelsistemafuediseadapensandoenesto,porloquesecrearoncomponentes paraabstraerestasfuncionalidades.Laaplicacinsecomunicacontrescomponentesllamados FacadeTracker,FacadeAudioyFacade3D,loscualesencapsulanlaslibrerasARToolKit, OpenALyARVRMLrespectivamente.Estoscomponentescorrespondenaunacapade abstraccin. Se sigui el patrn denominado Facade, el cual busca proveer una interfaz unificada a un conjunto de interfaces en un subsistema, definiendo una interfaz de alto nivel fcil de utilizar [23]. 38 4.Captulo -DESARROLLO DE ARSOLARSYSTEM 39 4.1. Interfaces La interfaz de ARSolarSystem consiste en una ventana con un cuadro de video capturado a travs de una cmara de video. En este cuadro de video puede haber una o ms fichas con marcadores impresos que son reconocidos por el sistema. De ser as, se agregan modelos 3D que el jugador ve, a travs del monitor, como si estuvieran presentes en el mundo real. Slo hay un elemento adicional que se despliegaen la pantallay esel puntaje del jugador enel videojuego, este se despliega en la esquina superior derecha de la pantalla, ver Figura 22. Figura 22: Captura de pantalla del videojuego. El puntaje se despliega en la esquina superior derecha. En la Figura 23 se presentan las imgenes de cada uno de los elementos del Sistema Solar que el usuario puede ver en el videojuego. 40 SOLMERCURIOVENUS TIERRAMARTEJPITER SATURNOURANONEPTUNO Figura 23. Imgenes de los modelos 3D de cada planeta. Ademsdeestoselementos,elusuariopuedevertexturasen2Dquesondesplegadassobrelas fichas de pregunta y alternativas. La Figura 24 muestra la textura que se despliega sobre la ficha depregunta,mientrasquelaFigura25muestralasposiblesopcionesdetexturaquepueden desplegarse sobre las fichas de alternativa. 41 Figura 24: Textura de la ficha de pregunta. Figura 25: Texturas posibles para las fichas de alternativa. 42 4.2. Interaccin Lainteraccindelosjugadoresconelvideojuegoesrealizadaensutotalidadatravsdelas fichas fsicas del juego. La interaccin se realiza moviendo las fichas y ponindolas unas junto a otras. Se busco mantener la consistencia y mantener las interacciones lo ms simples posible para evitarconfundiralusuario,esporestoquetodaslasinteraccionesentreelementosserealizan slo con la ficha de pregunta. Para mover un elemento virtual en el videojuego (Sol, planetas, pregunta, alternativas) el jugador muevelafichafsicaquerepresentaaeseelemento.Estemovimientosehacetalycualuno movera una carta o una ficha de un juego de tablero, pero evitando tapar el marcador en la ficha sisedeseaquesesigadesplegandoelmodelo3Denlapantalla(noesnecesarioparael videojuego que el elemento se despliegue en todo momento). Si se desea que un elemento virtual no aparezca en la pantalla, ya sea porque estorba o porque no es necesario para la actividad que se est realizando, basta con tapar el marcador de la ficha que representaelelementoencuestinosacarlafichadelngulodevisindelacmaraqueest capturando la escena. Cuando un jugador desea pedir una pista sobre un elemento del Sistema Solar, para luego intentar identificarlo,debeponerlafichadepreguntajuntoalafichadelelemento.Estohacequeel sistemaleentregueinformacinenformadeaudioaljugador.Cuandoelalumnoquiere identificarelelementoconelqueestinteractuando,debeponerlasfichasdepreguntaydela alternativa que desea seleccionar una junto a la otra (de la misma forma en que hizo con la ficha del elemento del Sistema Solar y la ficha de pregunta anteriormente). La Figura 26 (a) muestra la formadelafichadepreguntas,mientrasquelaFigura26(b),(c)y(d)muestralasfichasde alternativa. (a)(b)(c)(d) Figura 26: Fichas de pregunta y respuesta. (a) Ficha de pregunta. (b) Ficha de alternativa A. (c) Ficha de alternativa B. (d) Ficha de alternativa C. Si el jugador ya ha identificado un elemento del Sistema Solar, puede ver su nombre escrito sobre elelemento.Adicionalmentepuedequeelalumnodeseequeeljuegoledigaelnombredel elementoatravsdeaudio,paraesto,bastaconacercarlafichadepreguntaalafichaque representa al elemento, tal cual lo hizo para pedir una pista del elemento con anterioridad. 43 Estasinteraccionesqueserealizanponiendolafichadepreguntajuntoaotrafichatienendos restricciones. No se pueden realizar las acciones juntando las fichas por el canto inferior de una o ambas fichas. Esto se debe a que el sistema calcula la distancia entre los marcadores de las fichas para detectar la interaccin y en la parte inferior de las fichas hay un borde blanco que hace que ladistanciaentrelosmarcadoresdedosfichasseamayoralaqueestespecificadaenel videojuego.Adems,esnecesarioqueloselementosvirtualesdecadafichaconlasqueseest interactuandoestnvisiblesenelmonitor.Esdecir,quelosmarcadoresdeambasfichasestn siendo ledos adecuadamente por el sistema. En la segunda etapa del videojuego es necesario ordenar los planetas en relacin al Sol. Para esto, losplanetassemuevenatravsdesusfichasfsicascorrespondienteshastasercolocadosenla posicindeseada.Paracomprobarsielordenescorrecto,eljugadorponelafichadepregunta juntoalafichaquerepresentaalSol.Silaposicindeloselementoses correcta,elvideojuego despliega una animacin del Sistema Solar completo sobre la ficha que antes representaba al Sol. Finalmente,elusuariopuedemoverdeposicinlaanimacindelSistemaSolar,yaspuede observardedistintosnguloselmovimientodelosdistintoselementos.Laanimacines manejada por la ficha que representa al Sol y en relacin a este se mueven los distintos planetas. Portanto,parainteractuarconlaanimacin,bastaconmover,trasladandoyrotandosobre cualquiera de los 3 ejes de rotacin, la ficha con la animacin. 4.3. Diagrama de Clases La Figura 27 y la Figura 28 presentan el diagrama de clasesde ARSolarSystem. Por simpleza se separaron las clases que definen las distintas escenas del videojuego en un segundo diagrama de clases. Adems, se suprimieron los atributos de las clases, con excepcin de aquellos que ayudan a la comprensin del diseo. Se incluyen las clases de FacadeAudio, FacadeTracker y Facade3D.En las subsecciones siguientes se presentan las clases ms importantes que permiten entender el funcionamiento del sistema.La presentacin es realizada de lo particular a lo general, partiendo porlaclaseScene,continuandoconlaclaseARSolarSystem,yfinalmentesepresentala claseprincipalmain.Algunaspartesdelcdigohansidoeliminadasdeestasclasesparaque seanmsclarasyfcilesdecomprender.Sehacomentadousando/*descripcindelcdigo borrado */ en cada lugar donde se ha suprimido cdigo. 44 Figura 27: Diagrama de Clases, primera parte. ARSolarSystem-instance: ARSolarSystem+gObjectData: ObjectData_T+gToolData: ObjectData_T+listener: Listener+source: Source+tracker: Tracker+modeler: Modeler+gameState: int-ARSolarSystem()+Instance(): ARSolarSystem-ARSolarSystem()+Initialize(): void+Load(): void+setupMarkersObjects(): int+renderAll(): void+initSound(): voidScene+sceneComplete: bool-Scene(app: ARSolarSystem)-Scene()+Initialize(): void+Update(marker_info: ARMarkerInfo, marker_num: int): void+Draw(): void+Play(): void+isFinished(): boolTracker-instance: Tracker-Tracker()+Instance(): Tracker-Tracker()+Initialize(): void+setupCamera(cparam_name: char, vconf: char, cparam: ARParam): int+checkVisibility(gData: ObjectData_T, dataCount: int, marker_info: ARMarkerInfo, marker_num: int): void+checkVisibilityDouble(gData1: ObjectData_T, dataCount1: int, gData2: ObjectData_T, dataCount2: int, marker_info: ARMarkerInfo, marker_num: int): voidListener-Listener()-Listener()+SetPosition(x: float, y: float, z: float): void+SetOrientation(fx: float, fy: float, fz: float, ux: float, uy: float, uz: float): voidSource-Source()-Source()+Load(fileName: char): void+SetProperties(x: float, y: float, z: float, vx: float, vy: float, vz: float): void+SetRelative(isRelative: bool): void+SetLooping(isLooping: bool): void+SetPitch(value: float): void+SetGain(value: float): void+Play(): void+Stop(): void+Pause(): void+IsPlaying(): boolModeler+Instance(): Modeler+Initialize(): void+DrawModel(): voidmain+scenes: Scene[3]+Input(): void+Update(): void+Visibility(): void+Reshape(): void+Draw(): void+Initialize(): void+main(): int 45 SceneExplore-SceneExplore(app: ARSolarSystem)-SceneExplore()+Initialize(): void+Update(marker_info: ARMarkerInfo, marker_num: int): void+Draw(): void+Play(): void+isFinished(): bool+setAlternativas(l: int): void+checkResult(l: int): voidSceneIdentify-SceneIdentify(app: ARSolarSystem)-SceneIdentify()+Initialize(): void+Update(marker_info: ARMarkerInfo, marker_num: int): void+Draw(): void+Play(): void+isFinished(): bool+updatePista(l: int): void+setAlternativas(l: int): void+checkResult(l: int): voidSceneOrder-SceneOrder(app: ARSolarSystem)-SceneOrder()+Initialize(): void+Update(marker_info: ARMarkerInfo, marker_num: int): void+Draw(): void+Play(): void+isFinished(): bool+getDistance(object0: ObjectData_T, object1: ObjectData_T): float+checkRelativePosition(object0: ObjectData_T, gObjectData: ObjectData_T): intUtils+checkCollisions(object0: ObjectData_T, object1: ObjectData_T, collide_dist: float): int+getDistance(object0: ObjectData_T, object1: ObjectData_T): float+checkRelativePosition(object0: ObjectData_T, gObjectData: ObjectData_T, gObjectDataCount: int): int+playCue(gObjectData: ObjectData_T, source: Source): void+playCue(id: char, source: Source): voidScene+sceneComplete: bool-Scene(app: ARSolarSystem)-Scene()+Initialize(): void+Update(marker_info: ARMarkerInfo, marker_num: int): void+Draw(): void+Play(): void+isFinished(): bool Figura 28: Diagrama de Clases, segunda parte. 46 4.4. Clases Importantes object.h LaclaseobjectdefinelaestructuraObjectData_Tlacualeslaencargadademanteneren memoria la informacin de cada uno de los marcadores y los respectivos elementos virtuales (3D y audio) asociados a estos. Algunos atributos importantes son, nombre del elemento, modelo 3D primarioysecundario,einformacingeomtricadelmarcador,comosuescala,traslaciny rotacin. #ifndef __object_h__ #define __object_h__ #define OBJECT_MAX 30 #ifdef __cplusplus extern "C" { #endif typedef struct { charname[256]; int id; int visible; intcollide; doublemarker_coord[4][2]; doubletrans[3][4]; doublescale; int vrml_id; int vrml_id_orig; doublemarker_width; doublemarker_center[2]; char pista[3][256]; char pistaCue[3][256]; int pistaActual; char nombreElemento[64]; char nombreElementoCue[32]; charnamePost[256]; int vrml_idPost; int vrml_id_origPost; boolconocido; int vrml_idTool; } ObjectData_T; ObjectData_T*read_VRMLdata (char *name, int *objectnum); ObjectData_T*read_VRMLdataPlus (char *name, int *objectnum); #ifdef __cplusplus } #endif #endif // __object_h__ 47 Esta clase es adems responsable de cargar cada uno de los atributos de esta estructura a partir de unarchivodetextoplanomediantelasfuncionesread_VRMLdatay read_VRMLdataPlus. La estructura de este archivo es como sigue: Las lneas comenzadas con # corresponden a comentarios y no son ledas. La lnea 2 indica el nmero de marcadores a ser ledos. En el caso de este ejemplo slo hay un marcador. VRML y VRML2 indican si se asociarn uno o dos modelos al marcador respectivamente. En el segundocaso,elprimermodeloledocorrespondealmodeloprimarioqueservisualizado inicialmenteenelmarcador,mientrasqueelsegundocorrespondealmodelosecundarioque puede ser intercambiado por el primario para ser visualizado si el programa as lo especifica. En elvideojuegoestafuncionalidadesutilizadaparadesplegarlaanimacindelSistemaSolar completo sobre la ficha que originalmente representa al Sol cuando los jugadores posicionan los elementos en el orden correcto. La lnea 4 especifica el o los modelos que sern desplegados en el marcador en s, mientras que la lnea5indicaunmodeloauxiliarquesirveparaserdesplegadoporotromarcador.Enelcaso particulardelvideojuego,enlaprimeradeestaslneasseespecificaunelementodelSistema Solar, mientras que como modelo auxiliar se especifica un modelo con el nombre del elemento, el cual es utilizado por los marcadores de alternativas. Lalnea6indicalarutadelarchivoconlaespecificacindelmarcadorylaslneas7,8y9 especificaninformacinespecficadelainstanciadelmarcador,ancho(losmarcadoresson cuadrados por lo que slo basta especificar el tamao de una dimensin), centro y escala. 1.#Nmero de patrones 2.1 3.#Patrn i 4.VRML2ruta/objetoPrimarioWRL.dat ruta/objetoSecundarioWRL.dat 5.VRMLruta/toolWRL.dat 6.ruta/marcador.patt 7.80.0#Ancho del Marcador 8.0.0 0.0 #Centro del Marcador 9.2.5#Escala 10.NOMBREruta/pistaNombre.wav 11.ruta/pista1.wav 12.ruta/pista2.wav 13.ruta/pista3.wav 48 Finalmente,laslneas10,11,12y13,especificanarchivosdeaudioquesernasociadosaeste marcador. La lnea 10 especifica el nombre del elemento como cadena de caracteres y el archivo con la misma informacin en forma de audio, mientras que las otras tres indican los archivos con las pistas que entregar el elemento. Comosepuedeobservarenlaslneas4y5,losarchivosespecificadosnocorrespondena archivos.wrl(archivosdemodelos3DenformatoVRML),sinoaarchivos.dat.Estos archivosseencargandeespecificarlarutadelmodelo3D(enformatoWRML)ysus transformacionesgeomtricasiniciales.Laestructuradeestosarchivossepresentaa continuacin. Scene.h La clase Scene corresponde a la clase base de donde heredan todas las escenas del videojuego. Estaclasedefinelaestructurabsicaquedebetenercadaescenayqueincluye,comose mencionanteriormente,cadaunodeloselementosprincipalesdelciclodejuego, Initialize(), Update() y Play(). CadaclasequeheredadeSceneesindependientementeresponsabledetodalalgicadela escenaquedefine.Unaescenapuedeserinvocadaencualquiermomentoporelprograma principal, por lo que debe ser capaz de mantener la integridad de la aplicacin. Esto hace que la funcinInitialize()yeldestructordelaclasetenganunarelevanciaprimordialenlas clasesheredadas,yaquesonlasencargadasdeinicializar,liberaryasignarelvalorrequeridoa las variables que son utilizadas por la escena. AdemsseincorporalafuncinisFinished(),lacualpermiteevaluarsilaescenaseha completado.Estafuncinesinvocadaencadaciclodejuegoymodificalavariable sceneComplete.Elprogramaprincipal,queseencargadeadministrarlasescenas,consulta esta variable constantemente para saber si la escena ha siso o no completada. LaclaseincluyeaARSolarSystem.h.Estaclase,quesepresentaacontinuacin,esusada paraaccederavariablesdelprogramayrealizardiversasfuncionalidadescomunesdel videojuego.EsimportantemencionarquelaclaseARSolarSystemesunSingleton,porloque sloexisteunainstanciadeellaenelvideojuegoynoesnecesarioalmacenarlalocalmenteen una variable. 1.ruta/nombre.wrl 2.0.0 0.0 0.0# Translacin en X Y Z 3.0.0 0.0 0.0 0.0 # Rotacin en X Y Z 4.1 1 1 # Escala en X Y Z 49 ARSolarSystem.h La clase ARSolarSystem define al videojuego en s. Fue diseada utilizando el patrn de diseo Singletonparaevitarquesegenerendosomsinstanciasdeellaenlaaplicacin,yaqueesto llevara a inconsistencia y errores en el videojuego. Losprincipaleselementosquecomponenestaclasesonelestadodeljuego,gameState,que permite a la aplicacin saber en todo momento en qu estado se encuentra. Dos elementos de tipo ObjectData_T,gObjectDataygToolData,conlainformacinrelativaatodoslos marcadores usados en el videojuegoy una instancia de cada una de las clases necesarias para el usodesonido,listenerysource,paraeltrackingdemarcadores,tracker,yparael despliegue de los modelos 3D, modeler. AlforzarelaccesoaestasclasesatravsdelaclaseARSolarSystemsebuscafacilitarla modificacindeestascomponentes,desernecesarioenelfuturo.Sloserequieremodificarla instanciacorrespondienteenestaclaseynoesnecesariorealizarcambiosencadaunadelas escenas. La clase ARSolarSystem es inicializada por el programa principal, main.cpp, que se define a continuacin. #ifndef _SCENE_H #define _SCENE_H #include "ARSolarSystem.h" using namespace FacadeAudio; class Scene { public: bool sceneComplete; Scene(); ~Scene(); virtual void Initialize(); virtual void Update(ARMarkerInfo *marker_info, int marker_num); virtual void Draw(); virtual void Play(); virtual bool isFinished(); }; #endif 50 class ARSolarSystem { private: static ARSolarSystem* instance; ARSolarSystem(); public: // CONSTANTES DE JUEGO static const int GAME_STATE_IDENTIFYING = 0; static const int GAME_STATE_ORDERING = 1; static const int GAME_STATE_EXPLORING = 2; static const int GAME_STATE_END = 3; int gameState;int puntaje; // Rutas de archivos de datos char* objectDataFilename; char* toolDataFilename; char* astrosDataFilename; // Object Data. ObjectData_T*gObjectData; intgObjectDataCount; ObjectData_T*gToolData; intgToolDataCount; // Sonido Listener*listener; Source*source; // Tracker Tracker*tracker; // Modelamiento 3D Modeler*modeler; // Log ofstream myfile; /* Variables de sonido bsicas */ int paletteHasInfon; int paletteHasInfonPrev; char* opciones[3]; char* astros[9]; static ARSolarSystem* Instance(); ~ARSolarSystem(); void Initialize(); intsetupMarkersObjects(); void renderAll(); void initSound(); }; #endif 51 main.cpp main.cpp es la aplicacin principal, encargadade implementar elciclode juego. Para esto se utiliz GLUT, dada la sencillez de su implementacin. Sin embargo, la lgica del videojuego se encuentraseparadaenlaclaseARSolarSystemyenlasdistintasescenas,loquepermitela rpidamodificacindelaimplementacindelciclodejuegosinlanecesidaddealterarel videojuego en s. main.cpptienecomoresponsabilidadinicializarlainstanciadelobjetoARSolarSystem, mantenerelciclodejuegoycontrolarlasescenasdelvideojuego.Comosehamencionado anteriormente,lalgicadecadaescenaescontroladaporlaescenamisma.Lafuncin Update() es la encargada de saber cul es la escena actual en que se encuentra el videojuego e invocar la lgica de la escena correspondiente. La funcin Draw() por su parte tiene como nica funcininvocaralafuncinDraw()delaescenacorrespondiente.Elinputyeltamaodela ventana tambin son controlados por esta clase. /* Includes */ // Preferencias de pantalla static int prefWindowed = TRUE; static int prefWidth = 640; static int prefHeight = 480; static int prefDepth = 32; static int prefRefresh = 0; ARSolarSystem* appARSS; Scene *scene[3]; int actualScene = 0; int totalScenes = 3; static void Input(unsigned char key, int x, int y) { /* Cdigo para la captura del teclado */ } static void Update(void) { if(actualScene < totalScenes) { if(scene[actualScene]->isFinished()) { if(!appARSS->source->IsPlaying()) { ++actualScene; if(actualScene < totalScenes) { scene[actualScene]->Initialize(); } } } else { scene[actualScene]->Update(marker_info, marker_num); } } else if(appARSS->gameState != appARSS->GAME_STATE_END) { if(!appARSS->source->IsPlaying()) { Utils::playCue("Audio/final.wav", appARSS->source); appARSS->gameState = appARSS->GAME_STATE_END; } } } 52 void Initialize(){ glutInit(&argc, argv); glutInitDisplayMode(GLUT_DOUBLE | GLUT_RGBA | GLUT_DEPTH); if (!prefWindowed) { if (prefRefresh) sprintf(glutGamemode, "%ix%i:%i@%i", prefWidth, prefHeight, prefDepth, prefRefresh); else sprintf(glutGamemode, "%ix%i:%i", prefWidth, prefHeight, prefDepth); glutGameModeString(glutGamemode); glutEnterGameMode(); } else { glutInitWindowSize(gARTCparam.xsize, gARTCparam.ysize); glutCreateWindow(argv[0]); } appARSS = ARSolarSystem::Instance(); appARSS->Initialize(); scene[0] = new SceneIdentify(appARSS); scene[1] = new SceneOrder(appARSS); scene[2] = new SceneExplore(appARSS); scene[0]->Initialize(); } int main(int argc, char** argv) { Initialize(); glutDisplayFunc(Display); glutReshapeFunc(Reshape); glutVisibilityFunc(Visibility); glutKeyboardFunc(Input); glutMainLoop(); return (0); }static void Visibility(int visible) { if (visible == GLUT_VISIBLE) { glutIdleFunc(Update); } else { glutIdleFunc(NULL); } } static void Reshape(int w, int h) { /* Cdigo para el redimensionado de pantalla */ } static void Display(void) { scene[actualScene]->Draw(); } 53 4.5. Herramientas de Desarrollo Hardware ParaeldesarrollodelaaplicacinseutilizunnotebookDellStudioXPSM1340conlas siguientes especificaciones: S.O.: Windows 7 Professional de 64bits Procesador: Intel(R) Core(TM) 2 Duo P8600 @ 2.40GHz 2.40GHz Memoria RAM: 3 GB (2.75 utilizable) Disco Duro: 200 GB Monitor: LED 13.3 pulgadas Tarjeta Grfica: Nvidia GeForce 9400M G (Integrada) Adems se utilizo una cmara Microsoft LifeCam Cinema(TM) con resolucin mxima de video de 1280720. Software ARSolarSystemfuedesarrolladoenellenguajedeprogramacinC++.Parasudesarrollose utiliz el siguiente software. Microsoft Visual Studio 2008 Professional Edition con Microsoft Visual C++ y Microsoft .Net Framework 3.5 SP1: Entorno de desarrollo para la generacin de programas en C++ en Windows. Autodesk 3DStudioMax 2010: Herramienta para la modelacin de objetos y animaciones en 3D. Adobe Fireworks CS3: Herramienta para la creacin y edicin de imgenes. Adobe Photoshop CS3: Herramienta para la creacin y edicin de imgenes. Syntrillium Software Cool Edit Pro 2.0: Herramienta para la edicin de pistas de audio. SPSS v.15 para Windows: Herramienta para el anlisis estadstico de datos. La aplicacin hace uso de las siguientes libreras: OpenGL: Librera multiplataforma para la creacin de grficos en 2D y 3D. OpenAL: Librera multiplataforma para el uso de pistas de audio. ARToolKit: Librera que permite la creacin de aplicaciones de Realidad Aumentada. Su descripcindetalladaseencuentraenlaseccin3.3.1ARToolKit. 54 5.Captulo -EVALUACIN DE USABILIDAD 55 5.1. Evaluacin de Usabilidad Con el objetivo de evaluar la usabilidad de ARSolarSystem, se aplicaron dos evaluaciones. Estas fueron realizadas en dos momentos distintos del proceso de desarrollo del videojuego. La primera se aplic sobre el primer prototipo de la aplicacin, se realiz con un grupo reducido de usuarios ytuvouncarctermscualitativoquecuantitativo.Posteriormente,yluegoderealizarmejoras basadas en los resultados obtenidos, se realiz una segunda evaluacin de usabilidad de carcter cuantitativo y con un mayor nmero de usuarios. Laprimeraevaluacintuvocomoobjetivoprincipalobservarlaformaenquelosalumnos trabajabanconlaaplicacinyasdetectarlosprincipalesproblemasdeinteraccinquepodan ocurrir.Tambinseaplicuncuestionariodesatisfaccinparaconocerlaimpresindelos usuariosrespectodeARSolarSystem.Lasegundaevaluacincorrespondeaunaevaluacincon ms usuarios, donde se utilizaron pruebas estadsticas sobre los resultados obtenidos. Sebuscestructurarambasevaluacionesdeformasimilarentrminosdesucontexto,tareasy procedimiento. A continuacin se presentan en detalle cada una de las evaluaciones. 5.2. Participantes Ambas evaluaciones fueron realizadas con alumnos de tercer ao de educacin general bsica de la Escuela Bsica Municipal Jos Joaqun Prieto Vial. Paralaprimeraevaluacinsecontcon8usuariosfinales.Ladistribucinporgnerosdela muestra fue de 3 hombres y 5 mujeres. La distribucin etaria fue de 5 usuarios de 8 aos y 3 de 9 aos. Los usuarios nunca antes haban usado, visto o recibido comentarios de la aplicacin y slo uno de ellos afirm haber visto una aplicacin de Realidad Aumentada con anterioridad. Elnmerodeusuariosesadecuadoparaaplicarlametodologaplanteadaparalaprimera evaluacin de usabilidadya que, segn explica Nielsen [49], 5 usuarios pueden detectar el 85% de los errores de usabilidad de la interfaz de un software. Losfacilitadoresparalaaplicacindelaevaluacinfuerontresalumnosdeltimoaodel Departamento de Ciencias de la Computacin (DCC) de la Universidad de Chile, dos de ellos con amplia experiencia en usabilidad. Paralasegundaevaluacinsecontcon24usuariosfinales.Ladistribucinporgnerosdela muestra fue de 12 hombres y 12 mujeres. La distribucin etaria fue de 18 usuarios de 8 aos y 6 de 9 aos. Los usuarios nunca antes haban usado, visto o recibido comentarios de la aplicacin y ninguno de ellos afirm haber visto una aplicacin de Realidad Aumentada con anterioridad. Eltamaodelamuestradelasegundaevaluacindeusabilidadesconsiderablementemayoral de la primera evaluacin. Esto se debe a que se plantea realizar un anlisis cuantitativo y aplicar pruebas estadsticas sobre los resultados. 56 Los facilitadores para la aplicacin de la segunda evaluacin fueron dos de los facilitadores que participaron en la aplicacin de la primera evaluacin de usabilidad. 5.3. Mtodos e Instrumentos Observacin Este mtodo consiste en observar a un usuario interactuar con el sistema que se desea evaluar en suambientedetrabajo.Estoesdesumaimportanciaparalausabilidad,yaquepermite determinar informacin sobre el contexto real de uso de la aplicacin [14]. Porotrolado,observarlaformaenquelosusuariosrealizanciertastareasentregaunagran cantidaddeinformacinrespectodesusmodelosdetrabajomental,estrategiasindividualesde resolucin de problemas y decisiones subyacentes a la tarea en particular [56]. Laobservacindebehacersesininterferireltrabajodelusuario,elfacilitadordebeintentarser invisible para l. Si el facilitador no entiende alguna accin que realiza el usuario, entonces debe anotarlaeintentardeducirlaposteriormente,quizconlaayudadelusuario,peroluegodeque estehayaterminadoderealizarlaevaluacin.Esporestoquesehacenecesarioeldiseoy aplicacindeunapautadeobservacinqueseaadecuadaalaaplicacinyelcontextodela evaluacin que se est llevando a cabo. Enlaprimeraevaluacindeusabilidadseutilizelmtododeobservacin.Losfacilitadores utilizaronunapautaquesediseoparapermitirtomarnotasdelaevaluacindeformarpida. Para esto, se identificaron los posibles problemas que podan suscitarse durante el trabajo. Se identificaron los siguientes puntos como claves para la interaccin: Falla la interaccin del sistema, el sistema no responde con la accin deseada. N de veces que el usuario tapa accidentalmente el marcador con el que trabaja. N de veces que el sistema falla en detectar el marcador en una ficha. Cmo es la manipulacin de los elementos? El usuario daa las fichas. Adicionalmentesetomlaprecaucindedejarsuficienteespacioparapermitiralobservador tomarnotadecualquierotroaspectoqueconsiderarapertinente.Lapautadeobservacinse puede ver en el Anexo 2. Unatcnicaqueescomnmenteusadaenelmtododeobservacinesladegrabarenvideola sesindetrabajo,loquepermiterevisarposteriormentelainteraccinyobtenerdetallesqueno fueroncaptadosporelfacilitadorenelmomentodelaevaluacin.Durantelaevaluacin realizada se grab a los usuarios y su interaccin a travs de un grabador de pantalla. Los videos grabados quedaron disponibles para su posterior anlisis. 57 Cuestionario Una gran cantidad de aspectos de la usabilidad de un sistema pueden ser estudiados simplemente preguntndole por ellos a los usuarios. Esto es particularmente verdad cuando se busca medir la satisfaccinsubjetivadelusuario,susimpresionesyansiedadesacercadelainterfazdela aplicacin. Una forma de consultar a los usuarios sobre estos aspectos son los cuestionarios. [48] Uncuestionarioesunaherramientaquedebeserconstruidadeformaadecuadaydebeser validado.Comnmenteseutilizancuestionariospararealizarevaluaci