Successfully reported this slideshow.

Realidad Aumentada más allá de Glass - Droidcon 2014

2,266 views

Published on

En esta presentación aprenderás los pasos básicos para crear aplicaciones de realidad aumentada en Android usando el Metaio SDK, disponible tanto para ordenadores, dispositivos móviles y tablets como para wearables que lleven android.
Tras una breve introducción para explicar qué es la realidad aumentada, nos meteremos de lleno con el SDK, mostrándote paso por paso cómo empezar con él. Los asistentes aprenderán a distinguir entre los diferentes tipos de tracking, esencial para desarrollar cualquier proyecto de Realidad Aumentada y todos los tipos de contenidos que se pueden mostrar, así como la arquitectura y cómo funciona.
Después pasaremos a la integración de la realidad aumentada en aplicaciones con algunos ejemplos, centrándonos tanto en multiplataforma con AREL (javascript) como nativo en Android.
Seguidamente repasaremos las distintas gafas inteligentes para las que puedes desarrollar apps de Realidad Aumentada, empezando por Google Glass y continuando con las Epson Moverio BT-200 y las Vuzix M100, explicando las diferencias de hardware de cada una, así como la forma de interactuar con estos dispositivos ya que son bastante diferentes entre sí. Tras explicar cómo es la integración de tu app de realidad aumentada en ellas, por último, conoceremos otros dispositivos que usados en combinación con las smart glasses, pueden usarse para interactuar con los objetos virtuales y así hacer tu proyecto más inmersivo.

  • Ah! vale lo he entendido mal, jeje, pues conozco los que comento en las slides, he leído que Epson está integrando Myo en las moverio así que supongo que dentro de poco habrá algo oficial pero de momento Myo requiere bluetooth LE y android 4.3, por lo que no se puede usar aún por tu cuenta. Con las Glass tampoco porque ahora mismo necesitas entrenarla cada vez que te la pones y la pantalla de entrenamieneto no se ve bien en Glass. El remotte aunque sea para glass deberia funcionar con cualquier bluetooth pero aún no ha salido. Con el anillo Nod creo que pasa lo mismo, necesita bluetooth LE que viene con android 4.3. Así que hasta que no actualicen las Moverio me parece que pocos wearables se van a poder conectar, pero esperemos que las actualicen. Sobre otros wearables no puedo hablar porque no los he probado pero en cuanto las actualicen se abrirá un abanico de posibilidades que espero poder probar :)
       Reply 
    Are you sure you want to  Yes  No
    Your message goes here
  • Hola Fernando.
    Excelente!
    En tu presentación vemos que hay dispositivos como Myo que pueden mejorar la interacción con las smart glasses, nosotros concretamente somos usuarios de Moverio, tanto de las antiguas bt100 como de las actuales bt200 y nos interesan todos aquellos elementos que puedan mejorar la interacción. Creo que la pregunta de Carlos va más en este sentido, dispositivos wearables (Myo,Nod, Remotte) que puedan mejorar o ampliar las posibilidades de interacción de las smart glasses, pero en nuestro caso orientado a las Moverio.

    Gracias
       Reply 
    Are you sure you want to  Yes  No
    Your message goes here
  • muchas gracias, esta muy buena, es como escudriñar la RA
       Reply 
    Are you sure you want to  Yes  No
    Your message goes here
  • Gracias!
    Pues de todas las que he probado, para realidad aumentada me quedo con las Moverio bt-200. La pega es tener que manejarlas con el mando pero en la mayoría de los casos es la que más calidad da. Las Glass y las Vuzix están bien para poder moverte y manejarlas (mas o menos) directamente tocando las gafas, pero la pantalla es muy pequeña y funcionan mejor para AR basada en geolocalización o reconocimiento visual, más que para manipular contenidos.

    Las Meta01 tienen buena pinta pero aún no las he probado, pero parecen unas moverio en las que sí puedes interactuar con tus manos.

    Sobre voz, siempre puedes tirar del reconocimiento de voz de Android que funciona más o menos bien y no hace falta que sea en Glass, la API está desde android 2.x pero necesita conexión a internet y que luego parsees tú mismo lo que ha dictado el usuario, así que me temo que no hay una solución perfecta todavía.
       Reply 
    Are you sure you want to  Yes  No
    Your message goes here
  • Excelente presentación, Fernando. Mi amigo Raúl Reinoso y yo tenemos unas Moverio BT200. A nivel de wereables para mejora de la manipulación, ¿nos recomendarías alguno en particular?. Estamos también viendo el tema de la voz, buscando sistemas de manejo desde alguna App tipo Dragon, etc. ¿Conoces alguna que nos pueda ayudar?. Un abrazo.
       Reply 
    Are you sure you want to  Yes  No
    Your message goes here

Realidad Aumentada más allá de Glass - Droidcon 2014

  1. 1. Droidcon Madrid 2014 #arwearables Realidad Aumentada Más allá de Google Glass
  2. 2. Fernando F. Gallego Metaio GmbH http://twitter.com/ferdy182
  3. 3. Metaio https://www.youtube.com/watch?v=Jz3XlqcfQ Tecnologías habilitadoras • AREngine • Thermal Touch 12 Años De experienicia en realidad aumentada y computer vision Optimizado Para dispositivos de última generación El Mejor en su clase Software para Profesionales • Metaio Suite • Metaio Creator • Metaio SDK • Metaio Cloud La más grande distribución de AR • Cada catálogo de IKEA • Victoria’s Secret • Manuales de vehículos Audi
  4. 4. ¿Qué es la Realidad Aumentada? Droidcon Madrid 2014
  5. 5. ¿Qué es Realidad Aumentada? • Visualización de datos sobre el mundo real • Interfaz de usuario • Cámara, pantalla, sensores de movimiento y orientación • Tiempo real •¡No confundir con Realidad Virtual! (Oculus Rift no es realidad aumentada) #arwearables
  6. 6. Casos de Uso de Realidad Aumentada Macro Micro Exterior Objetos HumanosInterior Navegación (Ciudad, Centro comercial) Información virtual (POI en la Ciudad & Edificios, Dispositivos, Cara/Cuerpo) Diseño (arquitectura, interior, objetos 3D) Enseñanza / Educación (visualización, guías visuales) Juegos (Juegos de área extensa, Juegos en televisión, …) Traducción (texto, signos, menús,..) Probador virtual (compra online) Interfaz Virtual (domótica, dispositivos)
  7. 7. Caso de uso - Mitsubishi #arwearables
  8. 8. Desarrollando con Metaio SDK Droidcon Madrid 2014
  9. 9. Metaio SDK • Desarrollo de aplicaciones con Realidad Aumentada • Multiplataforma – Android – iOS – Windows – MacOS • Wearables con cámara y pantalla – Google Glass – EPSON Moverio BT-200 – Vuzix #arwearables
  10. 10. Arquitectura • Multiplataforma – AREL (Javascript) – Unity • Nativo – ObjectiveC – Java – C++ #arwearables
  11. 11. AREL Metaio SDK (3D renderer, tracking, captura desde cámara/dibujo)
  12. 12. HTML5 layer (GUI) AREL Metaio SDK (3D renderer, tracking, camera capturing/drawing)
  13. 13. HTML5 layer (GUI) Interfaz Javascript (AREL) AREL Metaio SDK (3D renderer, tracking, camera capturing/drawing)
  14. 14. Metaio SDK (3D renderer, tracking, camera capturing/drawing) HTML5 layer (GUI) Javascript Bridge Static Content Definition AREL
  15. 15. Tipos de Tracking #arwearables Markerless Tracking Instant/SLAM Fiducial SensorBased 3D (3DMap) . 2D/Extended 2D 2D Gravity 2D Gravity + SLAM 3D SLAM QR-/Barcode ID Marker Picture Marker GPS Orientation LLA Marker Dummy 3D (Edge based) Face
  16. 16. Contenidos #arwearables 2D Geometry 3D (*.fbx, *.md2, *.obj) Billboard (text, image, …) Radar Image (*.jpg, *.png) Video (*.3G2) 360°View
  17. 17. ¡Hola Mundo! - Java // Getting a file path for tracking configuration XML file String trackingConfigFile = AssetsManager.getAssetPath(getApplicationContext(), "TutorialHelloWorld/Assets/TrackingData_MarkerlessFast.xml"); // Assigning tracking configuration boolean result = metaioSDK.setTrackingConfiguration(trackingConfigFile); MetaioDebug.log("Tracking data loaded: " + result); // Getting a file path for a 3D geometry String metaioManModel = AssetsManager.getAssetPath(getApplicationContext(), "TutorialHelloWorld/Assets/metaioman.md2"); if (metaioManModel != null) { // Loading 3D geometry IGeometry geometry = metaioSDK.createGeometry(metaioManModel); if (geometry != null) { // Set geometry properties geometry.setScale(4f); } else MetaioDebug.log(Log.ERROR, "Error loading geometry: "+metaioManModel); }
  18. 18. ¡Hola Mundo! - AREL
  19. 19. dev.metaio.com
  20. 20. Wearables para Realidad Aumentada Droidcon Madrid 2014
  21. 21. Google Glass Image source: http://www.google.com/glass/ • Pantalla 640x360 hdpi • Cámara 5MP • 2GB RAM (último modelo) • Gyro 3 ejes + Accelerómetro 3 ejes + Brújula 3 ejes • Sin GPS (ubicación del dispositivo) • Touchpad, micrófono • Wifi, Bluetooth LE
  22. 22. Google Glass - Detección if (Build.BRAND.equalsIgnoreCase("Google") && Build.PRODUCT.contains("glass")) { isWearable = Wearable.GLASS; }
  23. 23. Google Glass • Pros: – Manos libres – Pantalla siempre visible – Vista en primera persona – Translúcido • Contras: – Sin pantalla táctil o cursor – Calentamiento – Look and feel no es estándar – Pantalla pequeña – Poca batería • Cómo afecta: – Libertad para manipular objetos – No distrae – Mas inmersivo – Apagar la cámara • Cómo solucionar: – GestureDetector para el touchpad –  – Guías de estilo – Eliminar funcionalidad innecesaria – Batería externa
  24. 24. Google Glass – Leer como un teclado direccional https://developers.google.com/glass/develop/gdk/touch @Override public boolean onKeyDown(int keycode, KeyEvent event) { if (keycode == KeyEvent.KEYCODE_DPAD_CENTER) { // user tapped touchpad, do something return true; } else if (keycode == KeyEvent.KEYCODE_CAMERA) { // camera button return true; } else if (keycode == KeyEvent.KEYCODE_BACK) { // back button return true; } ... super.onKeyDown(keyCode, event); }
  25. 25. Google Glass - GestureDetector https://developers.google.com/glass/develop/gdk/touch GestureDetector gestureDetector = new GestureDetector(context); //Create a base listener for generic gestures gestureDetector.setBaseListener(new GestureDetector.BaseListener() { @Override public boolean onGesture(Gesture gesture) { if (gesture == Gesture.TAP) { // do something on tap return true; } return false; } }); gestureDetector.setFingerListener(new GestureDetector.FingerListener() { @Override public void onFingerCountChanged(int previousCount, int currentCount) { // do something on finger count changes } }); gestureDetector.setScrollListener(new GestureDetector.ScrollListener() { @Override public boolean onScroll(float displacement, float delta, float velocity) { // do something on scrolling } }); • LONG_PRESS • SWIPE_DOWN • SWIPE_LEFT • SWIPE_RIGHT • SWIPE_UP • TAP • THREE_LONG_PRESS • THREE_TAP • TWO_LONG_PRESS • TWO_SWIPE_DOWN • TWO_SWIPE_LEFT • TWO_SWIPE_RIGHT • TWO_SWIPE_UP • TWO_TAP
  26. 26. GoogleGlass - Crosshair • Aproximación: – Añadir un punto de mira en el centro y simular clicks
  27. 27. GoogleGlass - Crosshair • Aproximación: – Añadir un punto de mira en el centro y simular clicks • Ideal: Tocar los objetos virtuales directamente con el dedo. – Cámara 3D (profundidad) – Metaio Thermal Touch (huella de calor)
  28. 28. Google Glass - Voz • Triggers – Para lanzar la app mediante “Ok glass” o el menú. • Comandos limitados para publicar • Necesita "com.google.android.glass.permission.DEVELOPMENT” para comandos propios • Contextual – Para abrir un menú dentro de la aplicación mediante “Ok glass” • Escucha libre – Mediante el RecognizerIntent.ACTION_RECOGNIZE_SPEECH de Android – startActivityForResult • Escucha activa – Tipo “Google Now” pero sin soporte en android https://developers.google.com/glass/develop/gdk/voice
  29. 29. EPSON Moverio BT-200 https://moverio.epson.biz/ • Pantalla 960x540 mdpi • Cámara 5MP • 1GB RAM • Gyro 3 ejes + Accelerómetro 3 ejes + Brújula 3 ejes • GPS • Touchpad externo • Wifi, Bluetooth 3.0 • Android 4.0.4 • Miracast
  30. 30. EPSON Moverio • Pros: – Pantalla siempre visible – Vista estéreo en primera persona – Translúcido – Android 4.x – Touchpad externo • Contras: – Touchpad externo en una mano – Pantalla en línea de visión • Cómo afecta: – No distrae – Mas inmersivo con imágenes en 3D – Apagar la cámara – Entorno familiar – Se puede interactuar • Cómo solucionar: – Sin solución – Casos de uso que no requieran moverse
  31. 31. EPSON Moverio BT-200 - Detección if (Build.BRAND.equalsIgnoreCase("moverio") && Build.PRODUCT.contains("EPSON_embt2")) { isWearable = Wearable.EPSON; }
  32. 32. EPSON Moverio BT-200 - Fullscreen • No tiene modo inmersivo de Android KitKat • Window flag propio para quitar la Navigation Bar WindowManager.LayoutParams winParams = window.getAttributes(); winParams.flags |= WindowManager.LayoutParams.FLAG_SMARTFULLSCREEN; winParams.flags |= 0x80000000; window.setAttributes(winParams);
  33. 33. EPSON Moverio BT-200 – Stereo • Librería de Moverio con funcionalidades • Activar modo 2D/3D DisplayControl dc = new DisplayControl(this); dc.setMode(DisplayControl.DISPLAY_MODE_3D,true);
  34. 34. EPSON Moverio BT-200 – Stereo • Activar stereo rendering en Metaio SDK en Java metaioSDK.setStereoRendering(true); // Enable see through mode (e.g. on glasses) metaioSDK.setSeeThrough(true); metaioSDK.setSeeThroughColor(0, 0, 0, 255); • O con AREL arel.Scene.setStereoRendering(true); // Enable see through mode (e.g. on glasses) arel.Scene.setSeeThrough(true); arel.Scene.setSeeThroughColor(new arel.Vector4D(0, 0, 0, 255));
  35. 35. EPSON Moverio BT-200 – Moverio SDK • Alternar entre el sensor del mando o de las gafas SensorControl sc = new SensorControl(this); sc.setMode(SensorControl.SENSOR_MODE_CONTROLLER); sc.setMode(SensorControl.SENSOR_MODE_HEADSET);
  36. 36. Vuzix M-100 http://www.vuzix.com/developer/ • Pantalla 852x480 small ldpi • Cámara HD • 1GB RAM • Gyro 3 ejes + Accelerómetro 3 ejes + Brújula 3 ejes • GPS • micrófono • Wifi, Bluetooth 4.0 • Android 4.0.4
  37. 37. Vuzix M-100 • Pros: – Ajustable – Manos libres – Control con gestos en 3D • Contras: – ldpi, LDPI!!! – 4 botones en el lateral • Cómo afecta: – Fuera de la línea de visión – Permite movilidad – Interactuar con objetos con las manos • Cómo solucionar: –  – Aplicación en smartphone como control remoto
  38. 38. Wearables para usar con SmartGlasses - Myo • Myo – Lee impulsos electromagnéticos de los músculos – Entrenar con gestos – Sensores de movimiento https://www.thalmic.com/en/myo/
  39. 39. Wearables para usar con SmartGlasses - Nod https://hellonod.com/ • Sensores • Touchpad • Gestos • Puntero • Emulador
  40. 40. Wearables para usar con SmartGlasses - Remotte Bluetooth Low-Energy Touchpad Accelerometer Gyroscope Temperature sensor Barometer 15 programable leds 2 programable buttons Buzzer Vibrator
  41. 41. Gradle • Usar flavors para cada wearable – Incluir librerías propias – Introducir constante en el BuildConfig productFlavors { glass { applicationId "com.metaio.junaio.glass" minSdkVersion 19 targetSdkVersion 19 buildConfigField "String", "TYPE", ""GLASS"" dependencies { compile files('libs/gdk.jar') } } ... }
  42. 42. http://www.facebook.com/metaio @twitt_AR http://twitter.com/#!/twitt_AR http://augmentedblog.wordpress.com/ http://www.youtube.com/user/metaioAR Fernando F. Gallego http://twitter.com/ferdy182 Fernando.gallego@metaio.com

×