Desarrollo de una interfaz multimodal para un robot domótico móvil. Control por voz y mando a...

30
Desarrollo de una interfaz multimodal para un robot domótico móvil. Control por voz y mando a distancia. Jorge Cancela González

description

Desarrollo de una interfaz multimodal para un robot domótico móvil. Control por voz y mando a distancia. Jorge Cancela González. Introducción Visión general del sistema Aplicación Roomba Aplicación Wiimote Aplicación teléfono móvil Aplicación central Aplicación reconocedor - PowerPoint PPT Presentation

Transcript of Desarrollo de una interfaz multimodal para un robot domótico móvil. Control por voz y mando a...

Page 1: Desarrollo de una interfaz multimodal para un robot domótico móvil. Control por voz y  mando a distancia.

Desarrollo de una interfaz multimodal para un robot domótico móvil. Control por voz y

mando a distancia.

Jorge Cancela González

Page 2: Desarrollo de una interfaz multimodal para un robot domótico móvil. Control por voz y  mando a distancia.

Índice

1. Introducción2. Visión general del sistema3. Aplicación Roomba4. Aplicación Wiimote5. Aplicación teléfono móvil6. Aplicación central7. Aplicación reconocedor8. Comparación de interfaces9. Conclusiones10. Demo

Page 3: Desarrollo de una interfaz multimodal para un robot domótico móvil. Control por voz y  mando a distancia.

Introducción

Domótica Accesibilidad

Usabilidad

diseño para todos desarrollar las herramientas necesarias para la integración de una aspiradora en un entorno domótico

facilidad y naturalidad en el uso de las interfaces

Page 4: Desarrollo de una interfaz multimodal para un robot domótico móvil. Control por voz y  mando a distancia.

Visión general del sistema

Controlar Roomba a través de las diversas interfaces de control Objetivo:

Page 5: Desarrollo de una interfaz multimodal para un robot domótico móvil. Control por voz y  mando a distancia.

Visión general del sistema Roomba:

Aplicación de control y gestión de Roomba corriendo en el PC.

La aplicación se comunica con Roomba a través de Bluetooth y con el resto de aplicaciones a través de los sockets del sistema.

Page 6: Desarrollo de una interfaz multimodal para un robot domótico móvil. Control por voz y  mando a distancia.

Visión general del sistema

Interfaces de control:

Aplicaciones para el control de la interfaces en el PC, además de una aplicación en el teléfono móvil. Esta última se encarga de la gestión de menús y botones pulsados.

Page 7: Desarrollo de una interfaz multimodal para un robot domótico móvil. Control por voz y  mando a distancia.

Visión general del sistema

Aplicación central:

Establece y mantiene las comunicaciones.

Encamina los mensajesdesde las interfaces decontrol hacia la aplicación de Roomba.

Es la aplicación que aporta flexibilidad al sistema.

Ap.. central

Page 8: Desarrollo de una interfaz multimodal para un robot domótico móvil. Control por voz y  mando a distancia.

Aplicación Roomba

¿Qué tenemos?

Aspiradora Roomba y API

Se pueden enviar instrucciones de bajo nivel que provocan acciones simples (mover una rueda, encender LEDs, leer un sensor)

Se puede emplear un puerto serie para enviar información.

¿Qué queremos?

Ofrecer un conjunto de movimientos de más alto nivel que las instrucciones de API, más cercanas al lenguaje natural y configurables.

Posibilitar que cualquier interfaz de control pueda emplear el conjunto de movimientos.

Automatizar el establecimiento de la conexión.

Page 9: Desarrollo de una interfaz multimodal para un robot domótico móvil. Control por voz y  mando a distancia.

Aplicación Roomba - Elementos Roomba + API: Permite recibir

sencillas instrucciones a través del puerto serie

Rootooth: Permite implementar el perfil SPP de bluetooth

Perfil SPP: perfil de bluetooth que Implementa un puerto serie virtual

Dispositivo Bluetooth:Establece la comunicación bluetooth con el Rootooth

PC: Ejecuta la aplicaciónde control y gestión de Roomba

Ficheros de configuraciónContiene información sobre la dirección y configuración del puerto serie.

Page 10: Desarrollo de una interfaz multimodal para un robot domótico móvil. Control por voz y  mando a distancia.

Aplicación Roomba –Ejemplo 1 Ejemplo del nivel de abstracción que ofrece la aplicación

La aplicación traduce los movimientos a secuencias de la API de Roomba con la ayuda de los ficheros de

configuración.

132 137, 50,50

( avanza )

En este caso la capa deabstracción realiza las siguientes acciones:

1. Cambia el estado de Roomba a modo full para poder controlar las ruedas2. A continuación envía el comando de puesta en marcha3. Indica la velocidad de cada rueda según lo leído en los ficheros de configuración.

modo full activación vel.rueda1 vel.rueda2

Page 11: Desarrollo de una interfaz multimodal para un robot domótico móvil. Control por voz y  mando a distancia.

Aplicación Roomba –Ejemplo 2 Ejemplo del nivel de abstracción que ofrece la aplicación

Los movimientos pueden ser más complejos

que el simple envío decomandos.

132 137, 50,-50

( da_la_vuelta )

En el caso da la vuelta, necesitamos:

1. Poner Roomba en modo full2. Instrucción de activación de ruedas3. Velocidad de giro leída en el fichero

Loop4. Petición de lectura de sensor de

ángulo girado.Fin Loop

5. Enviar instrucción de parada

modo full activación vel.rueda1 vel.rueda2

SOFTWARE DE CONTROL DE ROOMBA

137, 0,0 activación vel.rueda1 vel.rueda2

142, 37Bucle petición lectura, sensor de ángulo

Page 12: Desarrollo de una interfaz multimodal para un robot domótico móvil. Control por voz y  mando a distancia.

( atiende )( deja_atender )( avanza_despacio )( retrocede )( avanza_rapido )( gira_despacio_derecha )( gira_rapido_derecha )( gira_despacio_izquierda )( gira_rapido_izquierda )( para )( aspira )( a_casa )( da_la_vuelta )( graba_recorrido_1 )( final_recorrido_1 )( recorrido_1)

Aplicación Roomba – Interfaz de control

Page 13: Desarrollo de una interfaz multimodal para un robot domótico móvil. Control por voz y  mando a distancia.

Aplicación wiimote ¿Qué tenemos?

Wiimote transmitiendo información a través de bluetooth

Librería Wiiuse.dll, permite establecer una conexión con el wiimote desde el PC y obtener el estado de los botonesy los datos en crudo de acelerometría

¿Qué queremos?

Aplicación que transmita mensajes de la interfaz desarrollada para Roomba en función de los botones pulsados o del estado de acelerometría.

Evitar reenviar mensajes repetidos.

Capacidad de utilizar el control con acelerometría solo en determinadas ocasiones.

Capacidad de emplear el mismo evento para enviar diferentes mensajes en función de las condiciones.

Page 14: Desarrollo de una interfaz multimodal para un robot domótico móvil. Control por voz y  mando a distancia.

Aplicación wiimote - Elementos Wiimote: botones de control,

más información de los acelerómetros en los ejes: x,y,z

Acelerómetros: elemento capacitivovariable en función de la aceleración

Perfil HID: trasmitepaquetes autodescriptivos.

Wiiuse.dll: lee los paquetes en busca de un dispositivo de Nintendo Wiimote y extrae la información útil.

Ficheros de configuraciónContiene información sobre las dirección y configuración de los sockets

Page 15: Desarrollo de una interfaz multimodal para un robot domótico móvil. Control por voz y  mando a distancia.

Aplicación wiimote Detección de eventos: botón pulsado o control por acelerometría detectado y umbral superado.

Máquina de estados: Los eventos son la entrada.

La salida son movimientos en función del estado

Salida: Los eventos son la entrada.

La salida son movimientos en función del estado

( avanza )( avanza_rapido)( retrocede)...

Page 16: Desarrollo de una interfaz multimodal para un robot domótico móvil. Control por voz y  mando a distancia.

Aplicación para teléfono móvil ¿Qué tenemos?

Teléfono móvil con capacidad de detectar el estado de los botones y de generar menús en los que el usuario puede navegar entre las diversas opciones.

¿Qué queremos?

Aplicación que transmita mensajes de la interfaz desarrollada para Roomba en función de los botones pulsados o del mensaje seleccionado en el menu.

Automatizar el establecimiento de las comunicaciones entre el teléfono móvil y el PC.

Page 17: Desarrollo de una interfaz multimodal para un robot domótico móvil. Control por voz y  mando a distancia.

Teléfono móvil

Teléfono móvil N70: ejecuta la aplicación que lee los botones y genera los menús

SO Symbian: Diseñado especialmente para este tipo de dispositivos. Hace uso eficiente de los escasos recursos de memoria de los que dispone. Administrar eficientemente la energía.

JAVA J2ME: En Symbian podemos desarrollar aplicaciones en lenguaje nativo o bien trabajar con J2ME instalando en el dispositivo una versión reducida de la máquina virtual de Java.

Ficheros de configuraciónContiene información sobre la dirección y configuración del puerto serie.

Page 18: Desarrollo de una interfaz multimodal para un robot domótico móvil. Control por voz y  mando a distancia.

Teléfono móvil Detección de eventos: botón pulsado del joystick u opción seleccionada en los menús.

Aplicación del teléfono móvil:

Gestiona los menús y ofrece un interfaz que permite emplear el joystick central del teléfono como método de control.

Salida: En función de lo que seleccionemos o del movimiento del joystick se enviará un movimiento.

( avanza )( avanza_rapido)( retrocede)...

Page 19: Desarrollo de una interfaz multimodal para un robot domótico móvil. Control por voz y  mando a distancia.

Aplicación central ¿Qué tenemos?

Tres aplicaciones que controlan las interfaces de entrada.

Una aplicación para controlar el robot que queremos manejar, por lo tanto aplicación de salida.

¿Qué queremos?

Establecer las comunicaciones con todas las aplicaciones de forma automática.

Comprobar el estado de cada una de las aplicaciones (no todas tienen que estar activas)

Encaminar los mensajes lo más rápido posible.

Page 20: Desarrollo de una interfaz multimodal para un robot domótico móvil. Control por voz y  mando a distancia.

Aplicación central Aplicaciones a interconectar

Aplicación de control y gestión de Roomba

Aplicación reconocedor

Aplicación de control de teléfono móvil

Aplicación de control de Wiimote

Ficheros de configuraciónContiene información sobre los sockets

Page 21: Desarrollo de una interfaz multimodal para un robot domótico móvil. Control por voz y  mando a distancia.

Aplicación central – Flujo de la aplicación

Después del arranque de la aplicación se establece la comunicación a través de los sockets del sistema.

Periódicamente se comprueba el estado de las conexiones (un conexión se puede caer)

Periódicamente se comprueba si alguna de la interfaces ha enviado algún mensaje.

Page 22: Desarrollo de una interfaz multimodal para un robot domótico móvil. Control por voz y  mando a distancia.

Reconocedor de voz Servivox: esta aplicación es capaz de generar una gramática (detrás de cada palabra que otras palabras pueden venir) a partir de un conjunto de ejemplos.

Ofrece la secuencia de palabras más probable según lo que el locutor dice y la gramática que conoce.

Resumiendo: Pasa de voz a texto y calcula la confianza que tiene en haberlo hecho bien

Page 23: Desarrollo de una interfaz multimodal para un robot domótico móvil. Control por voz y  mando a distancia.

Reconocedor de voz Servivox: además del transductor voz/texto, Servivox tiene un transductor de comprensión que permite asociar un concepto a un texto.

Ejemplo: gira a la derecha -> orden[gira_despacio_derecha]gira a la derecha despacio -> orden[gira_despacio_derecha]a la derecha -> orden[gira_despacio_derecha]a la derecha despacio -> orden[gira_despacio_derecha]derecha -> orden[gira_despacio_derecha]derecha despacio -> orden[gira_despacio_derecha]giro a la derecha -> orden[gira_despacio_derecha]giro a la derecha despacio -> orden[gira_despacio_derecha]

Page 24: Desarrollo de una interfaz multimodal para un robot domótico móvil. Control por voz y  mando a distancia.

Reconocedor – Determinación del umbral óptimo

Objetivo: determinar un umbral que permita aceptar el mayor número de frases conocidas y desestimar el mayor número de aquellas que no pertenezcan al dominio.

Page 25: Desarrollo de una interfaz multimodal para un robot domótico móvil. Control por voz y  mando a distancia.

Reconocedor – Determinación del umbral óptimo

Preparación del experimento:

1. Crear dos conjuntos de frases disjuntos: conocidas y desconocidas.

2. Dividir cada uno de los conjuntos en entrenamiento y test

Page 26: Desarrollo de una interfaz multimodal para un robot domótico móvil. Control por voz y  mando a distancia.

Reconocedor – Determinación del umbral óptimo

Resultados, Conjunto 2

40

45

50

55

60

65

70

75

80

85

90

1 8 15 22 29 36 43 50 57 64 71 78 85 92 99Umbral

Porc

enta

je d

e fr

ases

cor

rect

amen

te

clas

ifica

das

Patrón de resultados de entrenamiento

Si el umbral es muy bajo, la tasa de error se debe a que todas las ‘desconocidas’ son aceptadas

Si el umbral aumenta vamos rechazando la mayoría de ‘desconocidas’ y alguna ‘conocida’.

A partir de cierto umbral que produce la mejor tasa de aciertos, comenzamos a rechazar ‘conocidas’ por tener baja confianza en el reconocimiento.

Page 27: Desarrollo de una interfaz multimodal para un robot domótico móvil. Control por voz y  mando a distancia.

Reconocedor – Determinación del umbral óptimo Conclusión

El umbral que suele ofrecer la mayor tasa de reconocimiento se encuentra en torno a 0,86.

Sin embargo si calculamos el intervalo de confianza al 95% vemos que no hay diferencias estadísticamente significativas entre un umbral alto (0,94), medio (0,72) o bajo (0,52).

Si analizamos la tasa de reconocimiento con más detalle vemos que el resultado final tiene orígenes diferentes:

Umbral bajo: demasiadas frases fuera de dominio aceptadasUmbral alto: algunas desconocidas aceptadas y bastantes conocidas no aceptadas.

Pocentaje de frases correctamente clasificadas

30

40

50

60

70

80

90

Umbral alto Umbral medio Umbral bajo

Umbral alto promedio (Umbral=0,92)

50

55

60

65

70

75

80

85

Frases conocidas Frases desconocidas

Umbral bajo promedio (Umbral=0,52)

0

10

20

30

40

50

60

70

80

90

100

Frases conocidas Frases desconocidas

Page 28: Desarrollo de una interfaz multimodal para un robot domótico móvil. Control por voz y  mando a distancia.

Comparación de interfacesCaracterística

Flexibilidad

Precisión

Usabilidad

Page 29: Desarrollo de una interfaz multimodal para un robot domótico móvil. Control por voz y  mando a distancia.

Conclusiones

1. Hemos elaborado un sistema con múltiples interfaces de control cada uno con sus ventajas e inconvenientes.

2. El sistema es lo suficientemente escalable para añadir de forma sencilla una nueva interfaz de control o una nueva salida.

3. Hemos establecido los criterios de decisión a la hora de seleccionar un umbral de decisión adecuado para nuestra aplicación.

Page 30: Desarrollo de una interfaz multimodal para un robot domótico móvil. Control por voz y  mando a distancia.

Gracias por vuestra atención.