En robótica social es fundamental que los robots tengan un lenguaje corporal similar al de un humano para generar confianza en las personas.
¿Por qué nos parece simpático C-3PO, el androide de protocolo de la saga Star Wars? Aparte de su carácter amigable y aspecto no amenazador, ayuda que sus gestos no parezcan excesivamente robóticos. Es cierto que a veces son algo rígidos, pero más similares a los de una persona un tanto torpe (y esa torpeza le confiere parte de su encanto), que a los de un robot sin alma.
Cada día estamos más cerca de los androides de las películas. ¡Los robots ya están aquí! Es un hecho. Poco a poco abandonan los laboratorios para adentrarse en hospitales, aeropuertos, residencias de ancianos, incluso en nuestros hogares. ¡Pero no teman! Aunque están aprendiendo a ser más sociales, sus capacidades siguen siendo aún limitadas…
Mientras tanto, en los laboratorios se sigue experimentando para enseñar y mejorar las habilidades sociales de los robots. En nuestro laboratorio del grupo de investigación de Robótica y Sistemas Autónomos (RSAIT), de la UPV/EHU tratamos que nuestro robot Pepper aprenda a ser espontáneo.
La robótica social pretende introducir a los robots en entornos donde estén en contacto cercano con las personas. Intenta que los robots sean capaces de realizar tareas que requieren interacción con las personas, como por ejemplo, de recepcionista en hospitales, guía en aeropuertos, cuidador en residencias y asistente personal en nuestros hogares.
A fin de que el público en general se sienta cómodo en compañía de los robots, estos, además de tener un aspecto exterior agradable, tienen que mostrar un comportamiento que no intimide, sino que invite a interactuar con ellos.
Un tipo de robot muy utilizado en robótica social es el de tipo humanoide, ya que las personas tendemos a sentirnos atraídos de manera más fuerte hacia aquello que se nos parece. Uno de estos robots es Pepper, creado por Softbank.
La verbal es la forma de comunicación más natural que usamos para interactuar socialmente, pero la comunicación verbal y no verbal van de la mano. Por naturaleza, el ser humano tiene una capacidad de comunicar constante porque incluso cuando no habla, transmite algo al receptor (consciente o inconscientemente) mediante su postura, su expresión facial, sus gestos, etc. En definitiva, mediante el cuerpo.
¡Un gesto vale más que mil palabras! El lenguaje corporal es clave en la comunicación social. Nos sirve para acompañar el habla. Moviendo los brazos, el cuerpo y la cabeza pretendemos añadir información al interlocutor acentuando la expresión de lo hablado. De la misma forma recibimos también información del receptor.
En el campo de la robótica social es fundamental que los robots sean capaces de generar confianza, de tal manera que las personas se sientan cómodas interactuando con ellos. Para tal fin es fundamental que sus movimientos sean naturales, similares a los de las personas.
Queremos que un robot sea capaz de acompañar lo que dice con movimientos de su cuerpo. Si es un robot humanoide, tendrá como mínimo una parte que se asemeje a una cara y probablemente brazos y piernas que deberán moverse de acuerdo al texto pronunciado. Por lo tanto, necesitamos un mecanismo que genere movimientos.
Una manera sencilla de plantear el problema es crear una colección de movimientos predeterminados (limitado) e ir reproduciéndolos según el robot habla (reproduce un audio). Podemos tener un conjunto de movimientos rítmicos (en inglés conocidos como beats) que no tienen significado, que simplemente sirven para acompañar el discurso y elegir una secuencia al azar entre ellos.
Continuando con los movimientos predeterminados, otro posible planteamiento es asociar una probabilidad a que a un movimiento determinado le siga otro en concreto. Esto podría generar una secuencia más natural.
¿Pero les parecería natural ver a un robot realizando una y otra vez los mismos movimientos? Si la interacción con el robot no dura más de cinco minutos quizá sí, pero si pretendemos hablar largo y tendido con él, puede que su comportamiento nos resulte un tanto repetitivo y, por lo tanto, no muy natural.
Las redes neuronales generativas antagónicas o GAN (Generative Adversarial Networks) son una herramienta ampliamente utilizada como modelo generativo. ¿Qué quiere decir esto? Que, tras una fase de entrenamiento con unos ejemplos, es capaz de crear otros objetos similares a los mostrados, pero diferentes de los mismos.
Esto se consigue mediante dos redes neuronales que trabajan en modo adversario. Por explicarlo con una analogía sencilla, es como si enfrentáramos a un falsificador de obras de arte con un experto. Al falsificador le enseñamos obras originales y le decimos que haga otras parecidas (¡pero no iguales!). Al experto le mostramos un conjunto con obras originales y falsificadas y le decimos que averigüe cuál es cuál.
Si repetimos este proceso durante mucho tiempo, el falsificador será cada vez mejor y el experto también. Cuando ambos tengan una tasa de aciertos parecida damos por terminado el entrenamiento de la red y el “falsificador” nos servirá para crear nuevas obras similares a las originales.
El grupo RSAIT ha utilizado las redes GAN para crear nuevos gestos. Tras entrenarla con movimientos predefinidos, la red GAN es capaz de crear otros gestos diferentes a los que ya ha visto, pero lo suficientemente similares como para que no resulten repetitivos para un interlocutor.
Para evaluar la naturalidad de los movimientos generados hemos comparado los movimientos generados con otros métodos generativos con respecto a tres factores (cambios en la aceleración, cobertura y longitud de trayectoria). Los resultados muestran que la red GAN frente a los demás métodos es capaz de capturar características temporales intrínsecas de los movimientos utilizados para el entrenamiento que permiten generar movimientos más suaves y acordes con los movimientos humanos, en definitiva, ¡más naturales!
En la actualidad, pretendemos que el robot aprenda a generar movimientos observando directamente los movimientos que realiza un interlocutor, haciendo uso de sensores tanto externos como propios del robot.