Realidad Aumentada más allá de Glass - Droidcon 2014
Upcoming SlideShare
Loading in...5
×

Like this? Share it with your network

Share

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

  • 1,512 views
Uploaded 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......

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.

  • Full Name Full Name Comment goes here.
    Are you sure you want to
    Your message goes here
  • 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 :)
    Are you sure you want to
    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
    Are you sure you want to
    Your message goes here
  • muchas gracias, esta muy buena, es como escudriñar la RA
    Are you sure you want to
    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.
    Are you sure you want to
    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.
    Are you sure you want to
    Your message goes here
No Downloads

Views

Total Views
1,512
On Slideshare
1,081
From Embeds
431
Number of Embeds
11

Actions

Shares
Downloads
13
Comments
6
Likes
6

Embeds 431

http://www.scoop.it 225
https://twitter.com 89
http://es.droidcon.com 50
http://albinogoncalves.wordpress.com 40
http://www.slideee.com 19
http://tweetedtimes.com 3
http://translate.googleusercontent.com 1
http://realidadaumentadaperu.blogspot.com 1
https://hootsuite.scoop.it 1
https://www.linkedin.com 1
http://www.slidesearchengine.com 1

Report content

Flagged as inappropriate Flag as inappropriate
Flag as inappropriate

Select your reason for flagging this presentation as inappropriate.

Cancel
    No notes for slide
  • Render: pintar las imágenes en pantalla
    Tracking: reconocer el objeto y seguir su posición en el espacio, averiguar la posición de la cámara en función de lo que se “ve”
    Captura: Obtener las imágenes desde la cámara
  • JS never comes alone => GUI in HTML
    Android 4.4+ => Chromium
  • - AREL: interfaz javascript (libreria)
  • - XML contenidos estáticos, puede generarse con una librería PHP o directamente XML
  • A la hora de conceptualizar tu aplicación hay que definir qué tipo de tracking necesitamos para el proyecto
  • Display
    High resolution display is the equivalent of a 25 inch high definition screen from eight feet away. Actually 640x360 for development purposes.
    Camera
    Photos - 5 MP
    Videos - 720p
    Audio
    Bone Conduction Transducer
    Connectivity
    Wifi - 802.11b/g
    Bluetooth
    Storage
    12 GB of usable memory, synced with Google cloud storage. 16 GB Flash total.
    Battery
    One day of typical use. Some features, like video calls and video recording, are more battery intensive. On AR around 15-30 minutes.
    Charger
    Included Micro USB cable and charger.
    Processor
    TEXAS INSTRUMENTS OMAP4430 processor running at an unspecified frequency and is paired with about 682MB RAM (out of a likely 1GB).
    Sensors
    Invensense MPU6050 = 3axis gyro + 3 axis accelerometer.
    Asahi Kasei AKM8975 = 3axis geomagnetic sensor(compass).
    Wink sensor
    Proximity sensor
    No GPS, location taken from wifi or paired device
    Interaction
    Touchpad on right side
    Voice commands
    Wink?
    Camera button

  • Triggers: ok glass, recognize this -> abre el modo escaneo y detecta el objeto para mostrarte informacion
    Contextual: Juego hundir la flota con AR -> ok glass, F5, para disparar en esa posición
    Escucha libre: complicado, escribir texto o reconocer comandos propios. Implementar asistente virtual, requiere gramáticas y nociones avanzadas
    Escucha activa: como “ok google” en Nexus 5 para buscar o abrir google now
  • Conexión por bluetooth
  • Conexión por bluetooth
  • Bluetooth LE

Transcript

  • 1. Droidcon Madrid 2014 #arwearables Realidad Aumentada Más allá de Google Glass
  • 2. Fernando F. Gallego Metaio GmbH http://twitter.com/ferdy182
  • 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. ¿Qué es la Realidad Aumentada? Droidcon Madrid 2014
  • 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. 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. Caso de uso - Mitsubishi #arwearables
  • 8. Desarrollando con Metaio SDK Droidcon Madrid 2014
  • 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. Arquitectura • Multiplataforma – AREL (Javascript) – Unity • Nativo – ObjectiveC – Java – C++ #arwearables
  • 11. AREL Metaio SDK (3D renderer, tracking, captura desde cámara/dibujo)
  • 12. HTML5 layer (GUI) AREL Metaio SDK (3D renderer, tracking, camera capturing/drawing)
  • 13. HTML5 layer (GUI) Interfaz Javascript (AREL) AREL Metaio SDK (3D renderer, tracking, camera capturing/drawing)
  • 14. Metaio SDK (3D renderer, tracking, camera capturing/drawing) HTML5 layer (GUI) Javascript Bridge Static Content Definition AREL
  • 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. Contenidos #arwearables 2D Geometry 3D (*.fbx, *.md2, *.obj) Billboard (text, image, …) Radar Image (*.jpg, *.png) Video (*.3G2) 360°View
  • 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. ¡Hola Mundo! - AREL
  • 19. dev.metaio.com
  • 20. Wearables para Realidad Aumentada Droidcon Madrid 2014
  • 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. Google Glass - Detección if (Build.BRAND.equalsIgnoreCase("Google") && Build.PRODUCT.contains("glass")) { isWearable = Wearable.GLASS; }
  • 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. 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. 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. GoogleGlass - Crosshair • Aproximación: – Añadir un punto de mira en el centro y simular clicks
  • 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. 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. 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. 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. EPSON Moverio BT-200 - Detección if (Build.BRAND.equalsIgnoreCase("moverio") && Build.PRODUCT.contains("EPSON_embt2")) { isWearable = Wearable.EPSON; }
  • 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. 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. 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. 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. 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. 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. 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. Wearables para usar con SmartGlasses - Nod https://hellonod.com/ • Sensores • Touchpad • Gestos • Puntero • Emulador
  • 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. 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. 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