realidad aumentada más allá de glass - droidcon 2014

44
Droidcon Madrid 2014 #arwearables Realidad Aumentada Más allá de Google Glass

Upload: fernando-gallego

Post on 28-May-2015

1.552 views

Category:

Documents


0 download

DESCRIPTION

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.

TRANSCRIPT

  • 1. Droidcon Madrid 2014 #arwearables Realidad Aumentada Ms all de Google Glass

2. Fernando F. Gallego Metaio GmbH http://twitter.com/ferdy182 3. Metaio https://www.youtube.com/watch?v=Jz3XlqcfQ Tecnologas habilitadoras AREngine Thermal Touch 12 Aos De experienicia en realidad aumentada y computer vision Optimizado Para dispositivos de ltima generacin El Mejor en su clase Software para Profesionales Metaio Suite Metaio Creator Metaio SDK Metaio Cloud La ms grande distribucin de AR Cada catlogo de IKEA Victorias Secret Manuales de vehculos Audi 4. Qu es la Realidad Aumentada? Droidcon Madrid 2014 5. Qu es Realidad Aumentada? Visualizacin de datos sobre el mundo real Interfaz de usuario Cmara, pantalla, sensores de movimiento y orientacin 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 Navegacin (Ciudad, Centro comercial) Informacin virtual (POI en la Ciudad & Edificios, Dispositivos, Cara/Cuerpo) Diseo (arquitectura, interior, objetos 3D) Enseanza / Educacin (visualizacin, guas visuales) Juegos (Juegos de rea extensa, Juegos en televisin, ) Traduccin (texto, signos, mens,..) Probador virtual (compra online) Interfaz Virtual (domtica, 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 cmara 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 cmara/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) 360View 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 Cmara 5MP 2GB RAM (ltimo modelo) Gyro 3 ejes + Accelermetro 3 ejes + Brjula 3 ejes Sin GPS (ubicacin del dispositivo) Touchpad, micrfono Wifi, Bluetooth LE 22. Google Glass - Deteccin 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 Translcido Contras: Sin pantalla tctil o cursor Calentamiento Look and feel no es estndar Pantalla pequea Poca batera Cmo afecta: Libertad para manipular objetos No distrae Mas inmersivo Apagar la cmara Cmo solucionar: GestureDetector para el touchpad Guas de estilo Eliminar funcionalidad innecesaria Batera 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 Aproximacin: Aadir un punto de mira en el centro y simular clicks 27. GoogleGlass - Crosshair Aproximacin: Aadir un punto de mira en el centro y simular clicks Ideal: Tocar los objetos virtuales directamente con el dedo. Cmara 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 aplicacin 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 Cmara 5MP 1GB RAM Gyro 3 ejes + Accelermetro 3 ejes + Brjula 3 ejes GPS Touchpad externo Wifi, Bluetooth 3.0 Android 4.0.4 Miracast 30. EPSON Moverio Pros: Pantalla siempre visible Vista estreo en primera persona Translcido Android 4.x Touchpad externo Contras: Touchpad externo en una mano Pantalla en lnea de visin Cmo afecta: No distrae Mas inmersivo con imgenes en 3D Apagar la cmara Entorno familiar Se puede interactuar Cmo solucionar: Sin solucin Casos de uso que no requieran moverse 31. EPSON Moverio BT-200 - Deteccin 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 Librera 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 Cmara HD 1GB RAM Gyro 3 ejes + Accelermetro 3 ejes + Brjula 3 ejes GPS micrfono 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 Cmo afecta: Fuera de la lnea de visin Permite movilidad Interactuar con objetos con las manos Cmo solucionar: Aplicacin en smartphone como control remoto 38. Wearables para usar con SmartGlasses - Myo Myo Lee impulsos electromagnticos de los msculos 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 libreras 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 [email protected]