Ministerio de Ciencia e Innovación
Castellano     English    

BellBot

Descripción

En los últimos años ha surgido la necesidad de desarrollar robots asistentes. Esto es debido a la creciente complejidad de nuestra sociedad y economía, nuestras mayores demandas de bienestar, una población cada vez más envejecida, y una gran cantidad de gente con dificultad para manejar dispositivos y acceder a las nuevas tecnologías.

La finalidad de este proyecto es el desarrollo de un sistema de asistencia automático basado en una serie de plataformas móviles que interactuarán con los clientes y personal de servicio para ayudar con distintas tareas en ambientes hoteleros. El desarrollo está siendo llevado a cabo en dos ámbitos complementarios: robots móviles y robótica social, los cuales justifican la colaboración de dos grupos de investigación (Universidad de Vigo y el Centro Tecnológico Cartif).

Para el desarrollo de este proyecto se utiliza el entorno de desarrollo de aplicaciones de robótica móvil RIDE (Entorno de Desarrollo Integrado para Robótica) creada a partir de los resultados obtenidos en otros proyectos. Uno de los objetivos de este proyecto consiste en generalizar este entorno de desarrollo, que ya ha sido aplicado con éxito en la creación de aplicaciones de monitorización, y de este modo extender su funcionamiento de modo que permita la creación de cualquier aplicación Web basada en robots móviles. Este entorno incluye la integración de sensores y actuadores mediante el protocolo CanBot, y la conexión de los módulos de control se realiza con un mecanismo de publicación/suscripción utilizando IPC. Las conexión entre robots y terminales Web se realiza por medio de un mecanismo similar a IPC, conocido como JIPC, y la programación de tareas se realiza utilizando redes de Petri y RoboGraph. Además, el entorno también incluye un conjunto de módulos para la navegación e interacción con personas.

En el ámbito de la robótica social, el grupo de CARTIF continúa con el desarrollo de sistemas de percepción robustos: reconocimiento de caras, reconocimiento de emociones y gestos. También se inició el desarrollo conversacional de nuevas arquitecturas para robots sociales, agentes y nuevos mecanismos de aprendizaje a través del tutelaje e imitación.

Finalmente, basándose en la experiencia de ambos grupos sobre las líneas de investigación indicadas, y en la experiencia en integración de sistemas, se realizará una demostración de un robot asistente en un sector estratégico en España como es el sector hotelero. Los desarrollos indicados se validarán en esta demostración.

Volver al índice

Escenario

El escenario de esta aplicación puede verse en la primera figura de este apartado.

Escenario

En este escenario, se ha creado un robot asistente o “botones” que nosotros denominamos BellBot (Bellboy Robot) siguiendo con la notación de las aplicaciones generadas con RIDE por nuestro grupo (WatchBot y Showbot). Este nuevo ámbito de aplicación permite validar en nuevos entornos y aplicaciones los actuales sistemas y técnicas de navegación así como las herramientas de desarrollo de RIDE.

Los distintos robots están conectados a una estación central a la cual también estan conectados distintos terminales en las habitaciones de los huéspedes y en recepción. El GUI de los huéspedes les permite tanto demandar servicios como comprobar el estado de estos pedidos. La segunda figura de este apartado muestra la ventana principal de este GUI disponible para que los huéspedes puedan realizar sus peticiones.

BellBot GUI

Por otra parte, desde el GUI de recepción se puede monitorizar el estado de los distintos robots y los pedidos que los huéspedes han realizado. En cuanto al estado de los robots, se pueden observar sus posiciones en los mapas de las distintas plantas, información sensorial, tareas en curso, etc. La tercera imagen de este apartado muestra la ventana principal de este interfaz gráfico donde podemos ver la posición de los robots del mapa seleccionado, así como otra información referente al mapa.

BellBot GUI

Entre los diferentes servicios y tareas que puede ofrecer el robot, deben destacarse los siguientes:

Para poder realizar estos servicios, el robot dispone de las siguientes capacidades:

Volver al índice

Arquitectura de la aplicación

De acuerdo con el entorno de desarrollo RIDE, el esquema de los módulos de la aplicación se muestra en la primera figura.

Arquitectura de control multirrobot

Se puede ver que se trata de un sistema centralizado. Algunos módulos como JCentral, TaskManager y Domotic se suelen ejecutar en el ordenador central. Los distintos clientes usarán los dos GUIs mencionados anteriormente que se conectarán a JCENTRAL a través de la red LAN del edificio. Los robots se conectan también a dicho módulo a través de la WiFi.

Un esquema similar pero utilizando esta vez IPC en lugar de JIPC se utiliza para la arquitectura de control de cada robot descrita en la segunda figura.

Arquitectura de control del robot

El módulo RobotWeb funciona como una pasarela para intercambiar mensajes entre IPC y JIPC.

Volver al índice

Diseño del robot

Se trata de un robot diseñado exclusivamente para esta aplicación. En las figuras se pueden apreciar las distintas partes del mismo.

La base es la parte donde reside la batería y el sistema motriz síncrono que nos permite una total movilidad por los distintos pasillos, habitaciones y demás espacios del hotel. En los giros se mueven las cuatro ruedas y la parte superior del robot quedando estática el resto de la base. Cada una de estas cuatro ruedas posee una un poco más pequeña en paralelo para que no queden encajadas en algunas rendijas como puede ser el hueco entre el ascensor y el piso. La carcasa de la base está formada por una serie de puertas extraíbles y poseen en sus anclajes unos sensores táctiles de forma que cuando el robot se tropieza con un obstáculo, este hecho puede ser detectado. Justo encima de la base un láser de barrido permite la construcción de mapas y localización del robot en el mapa. Las lecturas del láser junto con las del anillo de sónar son utilizadas también para detectar y evitar los obstáculos con los que se puede tropezar el robot. En la parte superior de la base está una cajonera que se abre y cierra de forma automática y dentro de la cual el robot puede llevar pequeños elementos como periódicos, bebidas o snacks. Esta cajonera sólo se abrirá en aquellos puntos en los que alguien deba depositar algo como es el bar o bien tenga que extraer algo como son las habitaciones. En la parte de atrás se pueden colocar pequeños objetos como una pequeña bolsa de viaje al tiempo que acompaña al cliente a su habitación.

La parte superior representa el torso, los brazos y la cabeza y su función es la interacción amigable con los huéspedes proporcionando empatía con sus movimientos. Es decir, se busca la aceptación del cliente a algo más agradable que no una simple base con una cajonera. Los brazos tienen cada uno dos grados de libertad, uno en el codo y otro en el hombro, y además tienen sensores táctiles en las manos, lo que permite detectar si alguien toca o agarra la mano. Con estas capacidades se pueden ejecutar acciones como dar la mano y saludar. La pantalla del torso es táctil y permite que el cliente realizar selecciones, etc. Por último la cabeza incluye un array de leds en la boca, ojos con retroiluminación que se puede ajustar, párpados que se pueden abrir y cerrar y un par de motores que permiten dos grados de libertad en el cuello.

Volver al índice

Configuración de un proyecto

Al igual que ocurre con la aplicación de vigilancia, el objetivo de este trabajo no se limita a la creación de un único proyecto sino a la creación de una aplicación genérica con herramientas para generar distintos proyectos de forma sencilla por personal con pocos conocimientos en programación. Esto es posible gracias a un Interfaz gráfico para la configuración de proyectos. El sistema completo puede ser instalado y programado en corto período de tiempo gracias a una herramienta gráfica (BellBot Editor) que permite definir de forma sencilla todos los parámetros del proyecto. Mediante este programa se obtendrá un fichero de configuración único para todo el sistema, evitando de este modo posibles incoherencias en la información manejada por los distintos módulos. En general, los pasos para la creación de un proyecto son:

Dentro de la arquitectura de control RIDE, los módulos que utilizan el fichero obtenido son:

Como se puede observar, el objetivo es proveer las herramientas necesarias para que el instalador pueda crear e instalar un nuevo proyecto sin tener que programar nuevo código.

Volver al índice

El robot en acción

Para hacerse una idea de cómo funciona el sistema veamos la ejecución de una tarea típica. De momento, las primeras pruebas se están llevando a cabo en el Departamento de Ingeniería de Sistemas y Automática donde los despachos de los profesores hacen las veces de “Habitaciones”, la entrada al Departamento de “Recepción” y el laboratorio de Visión hace las veces de “bar”. Partimos por tanto del Entorno del departamento tal y como se muestra en la primera figura.

TAREA: Un huésped desde su habitación etiquetada 4 en la anterior figura desea pedir una bebida (lata de refresco) al bar (es decir, el laboratorio de visión ).

En primer lugar, el huésped desde un Terminal en su habitación realiza la petición a través de un interfaz como el que se muestra en la segunda figura.

BellBot GUI

Vamos a ver este ejemplo con una ejecución típica. En el siguiente video (video 1) vemos cómo el usuario solicita la bebida a través de este interfaz gráfico.

A continuación el sistema central recibe esta petición y le asigna esta tarea a un robot que esté preparado o bien la pone en la cola de tareas a ejecutar si no hubiese ningún robot disponible. Una vez el robot está disponible se dispondrá a realizar la tarea. Veamos en los siguientes vídeos (videos 2 y 3).


Mientras el robot espera puede tener activos una serie de monitores como puede ser el detectar una persona y saludar, etc. El siguiente video (video 4) muestra algunos ejemplos y cómo el robot puede responder de forma distinta dependiendo de la situación. Por ejemplo, si se presenta y nos da la mano podemos estrechársela mientras que si se la tocamos sin que nos la ofrezca pues producirá un rechazo. Todos estos comportamientos pueden programarse de forma sencilla utilizando la herramienta RoboGraph.

Por último, en el video 5 podemos ver a BellBot sorteando obstáculos a lo largo del pasillo del departamento en una de sus misiones.

Este trabajo está parcialmente subvencionado por el Ministerio Español de Ciencia e Innovación, (Proyecto DPI2008-06738-C02-02).

Volver al índice