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

Más contenido relacionado

Similar a Realidad Aumentada para Wearables

Microsoft Virtual Academy - Xamarin iOS
Microsoft Virtual Academy - Xamarin iOSMicrosoft Virtual Academy - Xamarin iOS
Microsoft Virtual Academy - Xamarin iOSenriqueaguilar
 
Codemotion 2017 - Taller de JHipster
Codemotion 2017 - Taller de JHipsterCodemotion 2017 - Taller de JHipster
Codemotion 2017 - Taller de JHipsterAdolfo Sanz De Diego
 
Integracion de layar con drupal
Integracion de layar con drupalIntegracion de layar con drupal
Integracion de layar con drupalinvestic
 
Presentación de Android Wear impartida en el GDG Devfest Barcelona 2015
Presentación de Android Wear impartida en el GDG Devfest Barcelona 2015Presentación de Android Wear impartida en el GDG Devfest Barcelona 2015
Presentación de Android Wear impartida en el GDG Devfest Barcelona 2015Joan Fuentes Hernandez
 
Desarrollo de Videojuegos Android con Cocos2D
Desarrollo de Videojuegos Android con Cocos2DDesarrollo de Videojuegos Android con Cocos2D
Desarrollo de Videojuegos Android con Cocos2DJordan-P
 
Clean Code (EN ESPANOL)
Clean Code (EN ESPANOL)Clean Code (EN ESPANOL)
Clean Code (EN ESPANOL)Rodrigo Branas
 
LabAndroid: Taller "Mi Primera Aplicación Android"
LabAndroid: Taller "Mi Primera Aplicación Android"LabAndroid: Taller "Mi Primera Aplicación Android"
LabAndroid: Taller "Mi Primera Aplicación Android"Alberto Ruibal
 
HTML Tour - Programación de Videojuegos HTML5
HTML Tour - Programación de Videojuegos HTML5HTML Tour - Programación de Videojuegos HTML5
HTML Tour - Programación de Videojuegos HTML5Plain Concepts
 
HTML 5 & WebGL (Spanish Version)
HTML 5 & WebGL (Spanish Version)HTML 5 & WebGL (Spanish Version)
HTML 5 & WebGL (Spanish Version)Iran Reyes Fleitas
 
Consejos principales para Android UI Cómo alcanzar la magia en los tablets
Consejos principales para Android UI Cómo alcanzar la magia en los tabletsConsejos principales para Android UI Cómo alcanzar la magia en los tablets
Consejos principales para Android UI Cómo alcanzar la magia en los tabletsMotorola Mobility - MOTODEV
 
Realidad Aumentada y Multimedia - Presentación para Semana Global 2017
Realidad Aumentada y Multimedia - Presentación para Semana Global 2017Realidad Aumentada y Multimedia - Presentación para Semana Global 2017
Realidad Aumentada y Multimedia - Presentación para Semana Global 2017Dr. Edwin Hernandez
 
Tv Future is Apps - tvOS vs AndroidTV
Tv Future is Apps - tvOS vs AndroidTVTv Future is Apps - tvOS vs AndroidTV
Tv Future is Apps - tvOS vs AndroidTVPablo Azaña Sánchez
 
Realidad aumentada
Realidad aumentadaRealidad aumentada
Realidad aumentadaPato Lara
 
Usando Google Maps en tu Android App
Usando Google Maps en tu Android AppUsando Google Maps en tu Android App
Usando Google Maps en tu Android AppOscar Salguero
 

Similar a Realidad Aumentada para Wearables (20)

Un atlas en la palma de la mano
Un atlas en la palma de la manoUn atlas en la palma de la mano
Un atlas en la palma de la mano
 
Microsoft Virtual Academy - Xamarin iOS
Microsoft Virtual Academy - Xamarin iOSMicrosoft Virtual Academy - Xamarin iOS
Microsoft Virtual Academy - Xamarin iOS
 
Codemotion 2017 - Taller de JHipster
Codemotion 2017 - Taller de JHipsterCodemotion 2017 - Taller de JHipster
Codemotion 2017 - Taller de JHipster
 
Integracion de layar con drupal
Integracion de layar con drupalIntegracion de layar con drupal
Integracion de layar con drupal
 
Presentación de Android Wear impartida en el GDG Devfest Barcelona 2015
Presentación de Android Wear impartida en el GDG Devfest Barcelona 2015Presentación de Android Wear impartida en el GDG Devfest Barcelona 2015
Presentación de Android Wear impartida en el GDG Devfest Barcelona 2015
 
Desarrollo de Videojuegos Android con Cocos2D
Desarrollo de Videojuegos Android con Cocos2DDesarrollo de Videojuegos Android con Cocos2D
Desarrollo de Videojuegos Android con Cocos2D
 
Clean Code (EN ESPANOL)
Clean Code (EN ESPANOL)Clean Code (EN ESPANOL)
Clean Code (EN ESPANOL)
 
(25.03) RUN 09 - Sesiones Desarrollo - SI 2.0
(25.03) RUN 09 - Sesiones Desarrollo - SI 2.0(25.03) RUN 09 - Sesiones Desarrollo - SI 2.0
(25.03) RUN 09 - Sesiones Desarrollo - SI 2.0
 
LabAndroid: Taller "Mi Primera Aplicación Android"
LabAndroid: Taller "Mi Primera Aplicación Android"LabAndroid: Taller "Mi Primera Aplicación Android"
LabAndroid: Taller "Mi Primera Aplicación Android"
 
PhoneGap Basics v1.0
PhoneGap Basics v1.0PhoneGap Basics v1.0
PhoneGap Basics v1.0
 
HTML Tour - Programación de Videojuegos HTML5
HTML Tour - Programación de Videojuegos HTML5HTML Tour - Programación de Videojuegos HTML5
HTML Tour - Programación de Videojuegos HTML5
 
Html5+ccs3+js
Html5+ccs3+jsHtml5+ccs3+js
Html5+ccs3+js
 
HTML5 Geolocalizacion
HTML5 GeolocalizacionHTML5 Geolocalizacion
HTML5 Geolocalizacion
 
HTML 5 & WebGL (Spanish Version)
HTML 5 & WebGL (Spanish Version)HTML 5 & WebGL (Spanish Version)
HTML 5 & WebGL (Spanish Version)
 
Consejos principales para Android UI Cómo alcanzar la magia en los tablets
Consejos principales para Android UI Cómo alcanzar la magia en los tabletsConsejos principales para Android UI Cómo alcanzar la magia en los tablets
Consejos principales para Android UI Cómo alcanzar la magia en los tablets
 
Realidad Aumentada y Multimedia - Presentación para Semana Global 2017
Realidad Aumentada y Multimedia - Presentación para Semana Global 2017Realidad Aumentada y Multimedia - Presentación para Semana Global 2017
Realidad Aumentada y Multimedia - Presentación para Semana Global 2017
 
Tv Future is Apps - tvOS vs AndroidTV
Tv Future is Apps - tvOS vs AndroidTVTv Future is Apps - tvOS vs AndroidTV
Tv Future is Apps - tvOS vs AndroidTV
 
Realidad aumentada
Realidad aumentadaRealidad aumentada
Realidad aumentada
 
Usando Google Maps en tu Android App
Usando Google Maps en tu Android AppUsando Google Maps en tu Android App
Usando Google Maps en tu Android App
 
JqueryMobile
JqueryMobile JqueryMobile
JqueryMobile
 

Realidad Aumentada para Wearables

  • 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); }
  • 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.
  • 28. 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)
  • 29.
  • 30. 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
  • 31. 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
  • 32. 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
  • 33. EPSON Moverio BT-200 - Detección if (Build.BRAND.equalsIgnoreCase("moverio") && Build.PRODUCT.contains("EPSON_embt2")) { isWearable = Wearable.EPSON; }
  • 34. 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);
  • 35. 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);
  • 36. 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));
  • 37. 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);
  • 38. 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
  • 39. 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
  • 40. 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/
  • 41. Wearables para usar con SmartGlasses - Nod https://hellonod.com/ • Sensores • Touchpad • Gestos • Puntero • Emulador
  • 42. Wearables para usar con SmartGlasses - Remotte Bluetooth Low-Energy Touchpad Accelerometer Gyroscope Temperature sensor Barometer 15 programable leds 2 programable buttons Buzzer Vibrator
  • 43. 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') } } ... }

Notas del editor

  1. 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
  2. JS never comes alone => GUI in HTML Android 4.4+ => Chromium
  3. - AREL: interfaz javascript (libreria)
  4. - XML contenidos estáticos, puede generarse con una librería PHP o directamente XML
  5. A la hora de conceptualizar tu aplicación hay que definir qué tipo de tracking necesitamos para el proyecto
  6. 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
  7. 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
  8. Conexión por bluetooth
  9. Conexión por bluetooth
  10. Bluetooth LE