Si alguno desconocéis cual es el concepto de realidad aumentada, ved el siguiente vídeo:
Basicamente esa es la idea, ver cosas en la pantalla que en realidad no estan en la vida real.
Tras esta rápida introducción, voy a comentar como configurar Vuforia, una plataforma de realidad aumentada para móvil desarrollada por QualComm, que nos permite realizar aplicaciones que incluyan esta característica tanto para Android como iOS, aunque me concentraré en el tema de Android y la instalación/configuración para Windows.
En la página oficial podéis encontrar tutoriales, en los que me he basado para crear este.
Como obtener Vuforia
Nos vamos a la siguiente página, https://developer.vuforia.com/resources/sdk/android, podemos ver que tenemos un Getting Started, para este tuto supondremos que ya tenemos un JDK, el eclipse, el SDK de Android y el ADT. En este tutorial explico como obtener esas cosas.
Instalar cygwin
Así que empezamos con el cygwin, nos bajamos el setup, lo ejecutamos y elegimos la opción de instalar desde internet, deja la ruta por defecto para instalación y el sitio para descargar paquetes donde este el setup.exe descargado anteriormente, (lo pilla por defecto).
En la selección de paquetes elegid solamente el paquete:
All -> Devel -> "make: The GNU version of the 'make' utility"
Click en skip hasta que ponga la versión actual (3.81-2).
Y elegid el servidor para la descarga que os quede más cerca (si sois de españa seleccionad rediris).
La instalacion debería automaticamente modificar las variables de entorno, sino lo hace, añadir la ruta de la carpeta bin de cygwin a la variable path de la siguiente forma. Nos vamos a propiedades de Mi PC (Equipo en W7), configuración avanzada del sistema (debemos ser administradores), variables de entorno buscamos abajo path y pinchamos en editar, nos vamos al final de la línea y añadimos un ; y la ruta de la carpeta bin completa.
Para probar que funciona abrimos un terminal escribiendo cmd en el cuadro de búsqueda de programas del menu inicio y una vez abierto probamos a escribir bash. Debería aparecer algo tal que así:
Instalar Android NDK
Ahora que ya tenemos instalado el cygwin, instalamos el android ndk, para ellos no lo bajamos de aqui. Descomprimis el zip y tenemos que añadir la ruta del directorio ndk a la variable path, que si lo has dejao por defecto será algo tal que asi: C:\Development\Android\android-ndk-r6\
No useis espacios para la ruta y la ultima barra yo la quite porque me daba problemas, aunque en el tutorial oficial dice que se ponga.
Además yo tuve que hacer un paso extra que no aparece por el tutorial oficial, nos vamos a la ruta del ndk, y tenemos que modificar el ndk-build.cmd, añadiendole en la primera linea lo siguiente:
GNUMAKE=C:\cygwin\bin\make.exe
Es decir la ruta donde tengamos el make.exe de cygwin, si lo habeis dejado por defecto estara ahí, sino poned la ruta que tengais.
Ahora para ver si esta to correcto abrimos de nuevo un cmd, y navegamos hasta la ruta de uno de los samples que encontramos bajo el directorio del ndk, por ejemplo el de lib_plasma, una vez en esa carpeta, escribimos bash, para abrir un interprete de cywin, y ahora escribimos:
ndk-build
Y si va todo bien se compilará la aplicación de NDK de ejemplo y aparecerá algo parecido a lo de la imagen, indicando que se ha generado la librería dinámica libplasma.so.
Instalar QCAR SDK
Lo anterior es necesario para poder usar el sdk de QCAR, lo descargamos desde aquí. Y seguimos las instrucciones de instalación.
Ahora debemos abrir eclipse y añadirle una classpath, windows>preferences>java>build path pinchamos en add y escribimos QCAR_SDK_ROOT como nombre y el directorio del ndk como ruta. Tal y como se ve en la imagen.
Y listo, ya tenemos instalado el QCAR.
Para meter aplicaciones en el móvil directamente usando el adb tienes que tener habilitado el usb debugging y permitir instalar aplicaciones desde fuentes desconocidas, aunque a mi nunca me ha reconocido los móviles que he conectado.
Compilar y ejecutar una aplicación
Vamos a probar una aplicación de ejemplo.
Nos vamos al directorio de qcar-android-xx-yy-zz/samples/ImageTargets y escribirmos ndk-build desde el bash de cygwin, si no os da ningún error perfecto, si os da un error parecido al de la primera imagen teneis que darle permisos al archivo que os de follones, para que podais usarlo.
Ahora que ya tenemos el shared object podemos crear el apk.
Para ello usamos el eclipse, creamos un nuevo proyecto con ImageTargets de nombre y desde un existing source (el directorio del ImageTargets.)
Si nos aparece algún error hacemos un clean del proyecto y debería ir fino ya.
Teniendo el apk ya podemos instalarlo en el móvil al gusto (usando adb, ASTRO, etc).
Tenemos que hacer uso de estas imágenes, que son el patrón que reconoce la aplicación para dibujar la especie de cafetera que deberá aparecer.
Chips |
stones |
Para imprimirlas usad los pdf que vienen dentro de la carpeta media del proyecto ImageTargets. Algo así tendreis que ver.
Realidad Aumentada con HTC Desire S |
Realidad Aumentada con Unity
Tan fácil como bajarse la extensión de aquí e instalarla (descomprimirla en alguna carpeta). Obviamente necesitas tener instalado el Unity.
Ahora creamos un nuevo proyecto de Unity importando el qcar-unity-android-xx-yy-zz.unitypackage.
También tenemos que añadir un config.xml y qcar-resources.dat, doble click en qcar-unity-imagetargets-android-1-0-6.unitypackage y en la ventana que se abre elegimos el config.xml, el qcar-resources.dat y el directorio Editor/QCAR/ImageTargetTextures. El proyecto debe quedar tal que así:
Ahora en la cámara que hay en medio, la seleccionamos y la eliminamos con suprimir, ya que vamos a meter la ARCamera, para ello la elegimos de la carpeta QualComm Augmented Reality/Prefabs y la arrastramos hasta la escena, hacemos lo mismo con el ImageTarget, a este ImageTarget le añadimos el chips_scaled que encontramos en la carpeta ImageTargetTextures, arrastrándolo encima hasta la el ImageTarget que aparece en la hierarchy, tras estos pasos y moviendo la vista en la escena ya podremos ver las patatas xD.
En la imagen se ve que el image Target esta a EMPTY, hay que cambiarlo y elegir nuestro chips, sino no funcionará.
ImageTarget debe marcar Chips |
Edito: Para la versión de la extensión 1.5 hay un TrackableEventHandler por defecto, es decir que no necesitas importarlo como se especifica en la siguiente parte.
Para que el cubo desaparezca si no se ve el ImageTarget usamos un TrackableEventHandler, para ello usamos un script ya hecho en otro de los samples, concretamente en el ImageTargetTextures, igual que antes doble click sobre él y en la ventana buscamos el Scripts/TrackableEventHandler y pinchamos en import.
Lo buscamos en la carpeta scripts y lo añadimos arrastrándolo encima del ImageTarget.
Vista del script |
Para desplegar la aplicación, nos aseguramos que tenemos lo siguiente:
Vamos a Edit > Project Settings > Player > Android icon). Pinchamos en el simbolo de Android y nos aseguramos que Default Orientation no esta en Auto Rotation, que Minimum API Level esta a Android 2.1 'Eclair' (API level 7) o más y que el Bundle Identifier esta a un nombre valido (e.g. com.mycompany.firstARapp).
Visión de panel de configuración |
Intentad que la vista tenga una pinta similar a la imagen siguiente, para ello hay que ir moviendo los distintos elementos, cambiarle el tamaño al cubo y demás, nunca había uso Unity y lo conseguio hacer, así que no creo que os cueste mucho.
Vista General |
Una vista del resultado
Se puede ver el cubo, penco pero se ve xD |
Se ha quedao un tutorial bastante completo, pero he preferio meterlo to en uno, ya que esta to relacionao!
Nada mas, un saludo!
Muchas gracias, me ha sido de ayuda
ResponderEliminareste programa sirve si lo ejecuto desde el emulador de eclipse?
ResponderEliminarpos debido que a la mano no tengo un dispositivo movil con android estoy tratando de ejecutarlo del emulador de eclipse pero no sale nada entonces no se si este programa sirve si lo ejecuto desde el emulador de eclipse?
ResponderEliminarNo funciona si lo ejecutas desde el emulador, tienes que hacerlo en un móvil compatible, desde el siguiente enlace lo puedes consultar:
ResponderEliminarhttps://ar.qualcomm.at/qdevnet/support_file/download/Android/android%20supported%20devices/Supported_Devices_Android.pdf
Ya Hice todos los pasos y nadaa!!! No me muestra el mugreeee cubooo!!
ResponderEliminarEn algún paso estarás fallando, porque si que funciona, mira a ver si es porque el cubo lo has dibujao mu pequeño xD
EliminarYa me salio jaja, es que no le había dicho a la Cámara que tomara el Data Set!!!
EliminarOye una pregunta, has intentado meter video??
No me metio tan a saco con la realidad aumentada, lo del video ni idea como irá, así que siento no poder ayudarte por ahora xD
EliminarMe gustaría contactar por mail contigo para algunas consultas.
ResponderEliminarTe dejo mi mail: pk2traspk2@gmail.com
Gracias
El tema de realidad aumentada por ahora lo tengo aparcaillo, aunque en breve planeo intentar ponerme con ello más a fondo, de todos modos intentaré echarte una mano en lo que pueda.
EliminarUn saludo
Hola, lo primero agradecerte el tutorial. Me ha sido de bastante ayuda hasta donde he llegado! He intentado reproducir todos los pasos pero al arrancarlo desde el movil siempre me pasa lo mismo, sale el splash y se cae la aplicación. a alguien le ha pasado lo mismo?
ResponderEliminarGracias y un saludo
Ami me pasa igual o aveces cuando cambio la configuracion en player settings aparece un mensaje de que se detuvo el proceso, tengo duda si es por mi dispositivo, es un LG optimus One.
EliminarLo pudiste solucionar?
hola a todos excelente tuto me ayudo este y la documentación de vuforia para mac, así que ya saben que tmb va bien con mac
ResponderEliminarsaludos
Hola, logre sacar un objeto 3D con Vuforia con mi iphone, pero ahora quisiera importar un objeto 3D con extencion .FBX el cual tiene una animación predeterminada, al importarlo a Unity, y compilarlo en el iphone, el objeto se muestra pero no corre la animacion. Que puede ser?
ResponderEliminarSolo he probado a mostrar objetos estáticos, no con animaciones, así que ni idea.
Eliminarhola buenas, una pregunta,
ResponderEliminarestoy tratando de compilar los otros ejemplos de vuforia, que tienen botones virtuales, y al momento que se esta instalando y va a ejecutarse sale una excepción,que me detiene la aplicacion, esto pasa con todos los ejemplos de vuforia que tienen botones virtuales
Los que yo probé de botones virtuales me funcionaron igual que el resto.
EliminarMuy bueno el tutorial aunque no e logrado hacerlo
ResponderEliminarTengo varias dudas del porque puede estar fallando haber si me podias hechar una mano.
-Con que version de unity lo hiciste? ahora mismo lo estoy intentado con 3.5 pero al parecer tiene un error esta version
-Y la otra duda es si mi android sea el adecuado es un lg optimus one, aunque si tiene OS 2.3
Gracias (Y)
Mi versión de Unity es 3.4.0f5 y lo probé en un HTC Desire con android 2.2 creo recordar.
EliminarOk, gracias
EliminarPues tambien ya lo intente con esa misma version de unity, estoy en el oyo jaja
una ultima cosa que me podria sacar de esta seria si te acordaras que poner en Device Filter en las opciones de Player Settings si ARMv6 with VFP o ARMv7 only, aunque ya lo intente todo :S
Gracias.
hola que tal, muy bueno el tuto! pero tengo problemas en cuanto al tamaño de la exportacion, los .apk q genero tienen tamaños de 9MB o 12MB algo q pienso es muy grande para una aplicacion del movil, si me puedes ayudar a bajarle el tamaño te lo agradeceria!!
ResponderEliminarRob, que tal
EliminarViendo que a ti si te funciono, si me puedes hechar la mano pasandome el apk que tu compilaste para quitarme la duda si es mi android o estoy haciendo mal mi apk.
este es mi correo fer16hape@hotmail.com
Gracias (Y)
Fernando te agregue al msn, vamos a ayudarnos pues!! que yo tambien ando haciendo mal todo jeje
Eliminarhola, alguien me podria ayudar?? necesito saber como hago para que la aplicacion se instale directamente en la memoria SD, ya que pongo la opcion prefer external pero aun asi no se instala en la SD y otra cosa.. quisiera poner una equis (x) en la esquina derecha de la pantalla para cerrar la aplicacion.. se podra hacer? trabajo en unity3d muchas gracias!!
ResponderEliminarLo de instalar directamente en la SD, el unity te generaba el apk, asi que con eso deberías poder instalarlo donde quieras, respecto a lo de la X, habría que meterse más a fondo, y no me he metido tan a fondo en ello.
EliminarSaludos, yo estoy teniendo problemas similares a los que tienen algunos de ustedes, sólo logré ejecutar el apk de este tutorial, los demás no pude con vuforia y ahora con unity necesito la licencia para Android y eso me ha detenido alguien tiene una idea de que puedo hacer que no sea tan caro???
ResponderEliminarTu solución es GOOGLE y las palabras unity free download y tal y cual... xD
EliminarHola, alguna persona sabe como resolver este problema, al crear el apk en Unity sale un mensaje de error y dice que no encuentra la ruta del SDK y despues que no existen plataformas instaladas, dejo mi correo (locus1232000@hotmail.com) muchas gracias
ResponderEliminarNo se cuanto tiempo tenga de esto, pero para poder usar unity con android me sale la licensia de android en 400 dolares :(.
ResponderEliminarGoogle.
EliminarHola, estoy intentando seguir los pasos de tu tutorial, porque me parece bastante más completo que el que se facilita en la web de Qualcom. No sé si hay algo que he hecho mal desde el principio o será problema de versiones, pero cuando dices "Para que el cubo desaparezca si no se ve el ImageTarget usamos un TrackableEventHandler, para ello usamos un script ya hecho en otro de los samples, concretamente en el ImageTargetTextures, igual que antes doble click sobre él y en la ventana buscamos el Scripts/TrackableEventHandler y pinchamos en import", no te sigo. Yo no encuentro la carpeta ImageTargetTextures, y si hago una búsqueda en todo mi equipo del script TrackableEventHandler tampoco lo encuentro.
ResponderEliminarAl comienzo del tutorial , la parte de Unity, tampoco encontraba el "qcar-unity-imagetargets-android-1-0-6.unitypackage" y en su lugar he importado el "vuforia-unity-imagetargets-android-1-5-10.unitypackage". En este paquete, las rutas para el .dat y .xml no eran exactamente las que tú indicabas, pero en principio no pensaba que esto podría traer problemas.
Se te ocurre que puede pasar? O a alguien le ha pasado lo mismo al comenzar? Porque entiendo que sin este script el ejemplo no puede funcionar.
Muchas gracias de antemano
Anna
He estado revisando por encima el tutorial de Qualcomm, y han hecho algunos cambios, así que el que aparece aquí esta desfasado a estas fechas, ahora mismo no dispongo de tiempo para actualizar este, así que por ahora se queda así, pero he encontrao lo siguiente en el nuevo tutorial de Qualcomm:
EliminarNew to Vuforia AR Extension v1.5, a default event handler (DefaultTrackableEventHandler) has been added to the Image Target. This default handler will cause the cube you just drew to automatically appear or disappear – an automatic reaction to the appearance of the target in the video.
Así que parece que ese script ya lo mete automático, no haría falta realizar esa parte de mi tutorial. Esta nueva versión no la he probado, así que no sé como de bien irá.
Lo dicho, hasta que tenga tiempo para ponerme a actualizarlo se queda así, estad atentos xD.
Un saludo.
J, muchas gracias por tu respuesta. La verdad es que al final era una tontería lo que me pasaba. Sólo tenía que marcar una opción de la configuración del ImageTarget, que era precisamente de la que tú hablas y que no viene marcada por defecto "DefaultTrackable Event Handler (Script)".
ResponderEliminarEstoy investigando herramientas de este tipo como parte de mi tesina de fin de máster. Quería saber si podría tener tu correo para compartir novedades y consultas, si quieres y si es que aún sigues trabajando en este tema.
Saludos!
Anna
Ahora mismo estoy de vacaciones, y no estoy con esto, pero puede que en unas semanas me ponga de nuevo porque es un tema bastante interesante.
EliminarEn la sección de About! tienes un enlace para contactar conmigo por mail.
Un saludo.
Que tal, muy buena tu guía paso a paso, tengo un par de consultas ya que no he encuentro mucha información español.
ResponderEliminar1. ¿Como puedo agregar un nuevo Target Imag, ya tengo el .dat y el .xml que es lo que debo hacer ahora?
2. Se puee agregar una simple imagen como una fotografia para que aparezca? estoy haciendo pruebas sobre el ejemplor de ImageTarget.
te sobraste con este tuto muchas gracias
ResponderEliminarseguí tus pasos uno por uno pero la cuenta free de unity no me dejo compilar la aplicación para android así q lo realice en eclipse y todo muy bien no me tiro error al generar la apk. cuando instalo la apk... arranca el aplicativo, pone a trabajar la cámara pero cuando enfoco las imágenes desde los pdf no de muestran las teteras....alguna idea de lo q pueda ser pdt: muchas gracias me ha servido un resto
ResponderEliminarjejeje perdón ya me funciono es q aparentemente la capacidad de la cámara de mi tablet no es muy buena y le cuesta un poco mostrar la tetera...muchas gracias por toda la info
ResponderEliminarEstoy intentando correr el ejemplo pero me muestra una leyenda que dice:
ResponderEliminar[2012-11-22 04:55:32 - ImageTargets] Installation error: INSTALL_FAILED_INSUFFICIENT_STORAGE
[2012-11-22 04:55:32 - ImageTargets] Please check logcat output for more details.
[2012-11-22 04:55:32 - ImageTargets] Launch canceled!
Me podrias hechar la mano mi correo es: jonathanflores159@gmail.com
Borra aplicaciones del emulador o usa la opción de wipe data user desde la ventana de editar de emuladores para que te limpie información, porque como dice es que no tienes suficiente espacio en el dispositivo.
EliminarHola, yo he utilizado el ejemplo de Vuforia del que estáis hablando para implementar una vista de realidad aumentada en mi proyecto Android: ModelAN3D (lo podéis encontrar en Google Play en https://play.google.com/store/apps/details?id=com.modela3d). La diferencia es que yo no renderizo la escena desde el código C++, lo hago desde Java.
ResponderEliminarHe mirado tu aplicación y parece que esta to curra, no puedo probarla porque no tengo un móvil Android pero en cuanto tenga a mano uno le echaré un vistazo.
EliminarGran trabajo!
Estimado,
ResponderEliminarhace unas semanas he intentado hace un app con unity y vuforia y la verdad es que he seguido los pasos de este y de la documentación oficial y al ejecutar la app no he logrado aun ver el modelo que agrego (el de ejemplo solo me ha funcionado en la version que se usa el NDK, en la de unity tampoco lo he logrado). Si puedes ayudarme, me encantaria enviarte el proyecto unity que hice y me ayudes a ver que podría estar faltando.
Saludos.
Muchas gracias, mejor que leerlo en inglés desde la web de Qualcomm. Gracias
ResponderEliminarhola, donde se puede ver el tutorial en ingles de la web de Qualcomm??? que no lo encuentro
ResponderEliminarHan actualizado la web de vuforia por eso el enlace de la entrada no iba, aqui esta el nuevo: https://developer.vuforia.com/resources/sdk/android
EliminarMuchas gracias, como estoy en el paro para quien le sirve en www.formaciononlinegratis.net hay muchos cursos gratuitos, algunos de ellos te dan certificado. Saludos ;)
EliminarHola! no se como modificar el ndk-build del ndk... me puedes ayudar???
ResponderEliminarÁbrelo con cualquier editor de texto y listo.
Eliminardonde podria encontrar una guia mas actualizada debido a q el sdk de android viene conjunto al eclipse de forma automatica y todo instalado no se que hacer y necesito con urgencia los pasos nuevos para instalar el vuforia sdk
ResponderEliminarSi ya tienes instalado el sdk de android pues trabajo que te ahorras, empieza el tutorial desde instalar cygwin y sigue adelante.
EliminarBuena alguien que haya logrado poner un video? por lo menos usando el sample que deja vuforia en playback, necesito hacer una aplicacion de realidad aumentada para moviles y que aparezca un video, he descargado el ejemplo para unity y el ejemplo para ndk, por el momento estoy probando en unity, te descarga un package con todo incluido lo que no se es como armar el proyecto, es decir que ir poniendo, primera camara, despues imagetarget el data set, despues no se donde colocar el video me ayudan! :D
ResponderEliminar