Successfully reported this slideshow.
We use your LinkedIn profile and activity data to personalize ads and to show you more relevant ads. You can change your ad preferences anytime.

Pfc

1,189 views

Published on

Published in: Technology
  • Be the first to comment

  • Be the first to like this

Pfc

  1. 1. Desarrollo de una interfaz multimodal para un robot domótico móvil. Control por voz y mando a distancia. Jorge Cancela González
  2. 2. Índice 1. Introducción 2. Visión general del sistema 3. Aplicación Roomba 4. Aplicación Wiimote 5. Aplicación teléfono móvil 6. Aplicación central 7. Aplicación reconocedor 8. Comparación de interfaces 9. Conclusiones 10. Demo
  3. 3. Introducción Domótica Accesibilidad acceso para todos desarrollar las herramientasnecesarias para la integraciónde una aspirada en un entornodomótico Usabilidad facilidad y naturalidad en eluso de las interfaces
  4. 4. Visión general del sistema Objetivo:Controlar Roomba a través de las diversas interfaces de control Evaluar: requisitos de usabilidad, flexibilidad y precisión
  5. 5. Visión general del sistema Roomba:Aplicación de controly gestión de Roomba corriendo en el PC.La aplicación se comunica con Roomba a travésde Bluetooth y con el resto de aplicaciones a travésde los sockets del sistema.
  6. 6. Visión general del sistema Interfaces de control:Aplicaciones para el control de la interfacesen el PC, además de una aplicación en elteléfono móvil. Esta última se encarga dela gestión de menús y botones pulsados.
  7. 7. Visión general del sistema Aplicación central:Establece y mantienelas comunicaciones. Ap.. centralEncamina los mensajesdesde las interfaces decontrol hacia laaplicación de Roomba.Es la aplicación queaporta flexibilidad alsistema.
  8. 8. Aplicación Roomba ¿Qué tenemos? ¿Qué queremos?Aspiradora Roomba y API Ofrecer un conjunto de movimientos de más alto nivel que las instruccionesSe pueden enviar instrucciones de de API, más cercanas al lenguajebajo nivel que provocan acciones natural y configurables.simples (mover una rueda, encenderLEDs, leer un sensor) Posibilitar que cualquier interfaz de control pueda emplear el conjunto deSe puede emplear un puerto serie movimientos.para enviar información. Automatizar el establecimiento de la conexión.
  9. 9. Aplicación Roomba - Elementos PC: Ejecuta la aplicación Roomba + API: Permite recibir de control y gestión sencillas instrucciones a través del de Roomba puerto serie Perfil SPP: perfil de bluetooth que Implementa un puerto serie virtual Rootooth: Permite implementar el perfil SPP de bluetooth Dispositivo Bluetooth:Establece lacomunicación bluetooth con el Ficheros de configuraciónRootooth Contiene información sobre la dirección y configuración del puerto serie.
  10. 10. Aplicación Roomba –Ejemplo 1 Ejemplo del nivel de abstracción que ofrece la aplicación La aplicación traduce losmovimientos a secuencias ( avanza )de la API de Roomba conla ayuda de los ficheros deconfiguración. En este caso la capa deabstracción realiza las siguientesacciones:1. Cambia el estado de Roomba a modo fullpara poder controlar las ruedas2. A continuación envía el comando depuesta en marcha 132 modo full 137, 50,50 activación vel.rueda1 vel.rueda23. Indica la velocidad de cada rueda según loleído en los ficheros de configuración.
  11. 11. Aplicación Roomba –Ejemplo 2 Ejemplo del nivel de abstracción que ofrece la aplicación Los movimientos ( da_la_vuelta )pueden ser más complejosque el simple envío decomandos. SOFTWARE DE CONTROL DE ROOMBA En el caso da la vuelta,necesitamos:1. Poner Roomba en modo full2.3. Instrucción de activación de ruedas Velocidad de giro leída en el fichero 132 137, 50,-50 modo full activación vel.rueda1 vel.rueda2Loop4. Petición de lectura de sensor de Bucle 142, 37 petición lectura, sensor de ángulo ángulo girado.Fin Loop5. Enviar instrucción de parada 137, 0,0 activación vel.rueda1 vel.rueda2
  12. 12. Aplicación Roomba – Interfaz decontrol ( 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)
  13. 13. Aplicación wiimote ¿Qué tenemos? ¿Qué queremos?Wiimote transmitiendo información a Aplicación que transmita mensajes detravés de bluetooth la interfaz desarrollada para Roomba en función de los botones pulsados oLibrería Wiiuse.dll, permite establecer del estado de acelerometría.una conexión con el wiimote desde elPC y obtener el estado de los botones Evitar reenviar mensajes repetidos.y los datos en crudo de acelerometría 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.
  14. 14. 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 capacitivo variable en función de la aceleración Perfil HID: trasmite paquetes autodescriptivos. Wiiuse.dll: lee los paquetes en busca de un Ficheros de configuración dispositivo de NintendoContiene información sobre las Wiimote y extrae ladirección y configuración de los información útil.sockets
  15. 15. Aplicación wiimote Detección de eventos: Salida:botón pulsado o control por Los eventos sonacelerometría detectado y Máquina de estados: la entrada.umbral superado. Los eventos son la entrada. La salida son La salida son movimientos movimientos en en función del estado función del estado ( avanza ) ( avanza_rapido) ( retrocede) . . .
  16. 16. Aplicación para teléfono móvil ¿Qué tenemos? ¿Qué queremos?Teléfono móvil con capacidad de Aplicación que transmita mensajes dedetectar el estado de los botones y de la interfaz desarrollada para Roombagenerar menús en los que el usuario en función de los botones pulsados opuede navegar entre las diversas del mensaje seleccionado en el menu.opciones. Automatizar el establecimiento de las comunicaciones entre el teléfono móvil y el PC.
  17. 17. Teléfono móvil 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. Teléfono móvil N70: JAVA J2ME: En Symbianejecuta la aplicación que podemos desarrollarlee los botones y genera aplicaciones en lenguajelos menús nativo o bien trabajar con J2ME instalando en el Ficheros de configuración dispositivo una versiónContiene información sobre la reducida de la máquinadirección y configuración del virtual de Java.puerto serie.
  18. 18. Teléfono móvil Detección de eventos: Salida: Aplicación del teléfonobotón pulsado del joystick u En función de lo móvil:opción seleccionada en los que Gestiona los menús ymenús. seleccionemos o ofrece un interfaz que permite emplear el joystick del movimiento central del teléfono como del joystick se método de control. enviará un movimiento. ( avanza ) ( avanza_rapido) ( retrocede) . . .
  19. 19. Aplicación central ¿Qué tenemos? ¿Qué queremos?Tres aplicaciones que controlan las Establecer las comunicaciones coninterfaces de entrada. todas las aplicaciones de forma automática.Una aplicación para controlar el robotque queremos manejar, por lo tanto Comprobar el estado de cada una deaplicación de salida. las aplicaciones (no todas tienen que estar activas) Encaminar los mensajes lo más rápido posible.
  20. 20. 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 lossockets
  21. 21. Aplicación central – Flujo de laaplicació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.
  22. 22. Reconocedor de voz Servivox: esta aplicación es capaz de generar una gramática (detrás decada palabra que otras palabras pueden venir) a partir de un conjunto deejemplos.Ofrece la secuencia de palabras más probable según lo que el locutor dice yla gramática que conoce.Resumiendo: Pasa de voz a texto y calcula la confianza que tiene enhaberlo hecho bien
  23. 23. Reconocedor de voz Servivox: además del transductor voz/texto, Servivox tiene un transductorde 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]
  24. 24. Reconocedor – Determinación delumbral óptimo Objetivo: determinar un umbral que permita aceptar el mayor número defrases conocidas y desestimar el mayor número de aquellas que nopertenezcan al dominio.
  25. 25. Reconocedor – Determinación delumbral óptimo Preparación delexperimento:1. Crear dos conjuntos de frases disjuntos: conocidas y desconocidas.2. Dividir cada uno de los conjuntos en entrenamiento y test
  26. 26. Reconocedor – Determinación delumbral óptimo Patrón de resultados deentrenamiento Si el umbral es muy bajo, la tasa 90 Resultados, Conjunto 2 de error se debe a que todas las 85 Porcentaje de frases correctamente ‘desconocidas’ son aceptadas 80 75 70 clasificadas Si el umbral aumenta vamos 65 60 rechazando la mayoría de 55 ‘desconocidas’ y alguna ‘conocida’. 50 45 40 A partir de cierto umbral que 1 8 15 22 29 36 43 50 57 64 71 78 85 92 99 Umbral produce la mejor tasa de aciertos, comenzamos a rechazar ‘conocidas’ por tener baja confianza en el reconocimiento.
  27. 27. Reconocedor – Determinación del umbral óptimo Pocentaje de frases correctamente clasificadas Conclusión 90El umbral que suele ofrecer la mayor tasa de 80reconocimiento se encuentra en torno a 0,86. 70 60Sin embargo si calculamos el intervalo de 50confianza al 95% vemos que no hay 40diferencias estadísticamente significativas 30 Umbral alto Umbral medio Umbral bajoentre un umbral alto (0,94), medio (0,72) o Umbral alto promedio (Umbral=0,92)bajo (0,52). 85 80 75Si analizamos la tasa de reconocimiento con 70 65 60más detalle vemos que el resultado final tiene 55 50orígenes diferentes: Frases conocidas Frases desconocidas Umbral bajo promedio (Umbral=0,52) 100Umbral bajo: demasiadas frases fuera de 90 80 70dominio aceptadas 60 50 40Umbral alto: algunas desconocidas aceptadas 30 20 10y bastantes conocidas no aceptadas. 0 Frases conocidas Frases desconocidas
  28. 28. Comparación de interfaces Característica Flexibilidad Precisión Usabilidad
  29. 29. Conclusiones1. Hemos elaborado un sistema con múltiples interfaces decontrol evaluando las ventajas e inconvenientes de cada unade ellas.2. El sistema es lo suficientemente flexible para añadir deforma sencilla una nueva interfaz de control o una nuevasalida.3. Hemos establecido los criterios de decisión a la hora deseleccionar un umbral de decisión adecuado para nuestraaplicación.
  30. 30. Gracias por vuestra atención.

×