Francis en #rosavientos: Robots tolerantes a fallos usando computación evolutiva

Por Francisco R. Villatoro, el 31 mayo, 2015. Categoría(s): Ciencia • Eureka (La Rosa de los Vientos) • Informática • Nature • Noticias • Recomendación • Science ✎ 2

Dibujo20150530 adaptive machines - hexapod - robotic arm - nature com

Ya está disponible el audio del podcast de Eureka, mi sección en La Rosa de los Vientos de  Onda Cero. Como siempre, una transcripción, unos enlaces y algunas imágenes.

Un nuevo hito de la inteligencia artificial aplicada a la robótica. Se publica en Nature el desarrollo de dos robots capaces de adaptarse tras una amputación de una pata o una avería en una articulación. Usando algoritmos evolutivos el robot puede seleccionar la mejor estrategia en base a experiencias almacenadas previamente. Tras perder una pata, en menos de dos minutos, el robot se adapta, vuelve a aprender a caminar y sigue realizando la tarea para la que fue diseñado. Dicen sus creadores que son los primeros robots con algo parecido al instinto animal.

El artículo es Antoine Cully et al., «Robots that can adapt like animals,» Nature 521: 503-507, 28 May 2015, doi: 10.1038/nature14422; Christoph Adami, «Artificial intelligence: Robots with instincts,» Nature 521: 426-427, 28 May 2015, doi: 10.1038/521426a.

Más información divulgativa en español en Antonio Martínez Ron, «Robots que se reponen de los daños como si fueran seres vivos,» Next, Voz Pópuli, 27 May 2015; «Dos algoritmos permiten que un robot dañado siga funcionando,» Agencia SINC, 27 May 2015; Nuño Domínguez, «Robots con instinto animal, el nuevo hito de la inteligencia artificial,» Materia, El País, 28 May 2015; Gonzalo López Sánchez, «Un robot que aprende de sus propias averías,» Ciencia, ABC, 28 May 2015; Elisa Cardenal, «El robot que se ‘auto-repara’,» Ciencia, El Mundo, 27 May 2015.

Dibujo20150530 Using the Intelligent Trial and Error algorithm - robots like animals recover from damage - nature14422-f1

Hay una gran diferencia entre los robots y los animales, el instinto de supervivencia. Si un robot se avería hay que llamar al servicio técnico para repararlo. Un animal herido se adaptará al daño y logrará sobrevivir. ¿Se está investigando en el campo de la robótica en robots con instinto animal? Hay muchos grupos de investigación en robótica que están estudiando técnicas de tolerancia a fallos que permiten que un robot se adapte a un fallo y continúe realizando las tareas que tenía asignadas. No es una cuestión fácil de resolver porque además de detectar el problema y diagnosticar dónde está el fallo, el robot tiene que adaptarse al problema. No es posible programar el robot para todos y cada uno de los posibles fallos. Los animales tienen la capacidad de aprender nuevas conductas que se adaptan a un entorno en continuo cambio. Por ejemplo, un perro con tres patas puede aprender a coger un «frisbee» o una persona puede aprender a escribir con la otra mano. Un robot robusto debería ser capaz de aprender, por prueba y error, cuál es la configuración óptima que le permitirá ejecutar sus tareas teniendo en cuenta el fallo sufrido. Se ha publicado en la revista Nature un avance en esta línea.

[youtube=https://www.youtube.com/watch?v=u_NJNyOGfEU]

Un equipo multidisciplinar de ingenieros e informáticos franceses y estadounidenses dirigidos por Jean-Baptiste Mouret, de la Universidad de la Sorbona, París, ha desarrollado dos algoritmos que permiten detectar un daño y responder con la mejor estrategia para superarlo, como haría un animal herido guiado por su instinto. Han probado estos algoritmos con dos robots. Por un lado, un hexápodo (un robot autónomo parecido a un cangrejo con seis patas, cada uno con tres motores, de unos 50 centímetros de diámetro) cuya tarea es caminar lo más rápido posible. Y por otro lado, un brazo robótico compuesto de ocho articulaciones (que alcanza una longitud total de 62 centímetros), cuya tarea es encestar un pequeño balón en una canasta. La rotura de una pata en el hexápodo, o un fallo en articulación del brazo robótico, obliga a que el robot adapte sus comportamientos para continuar con su locomoción en el caso del hexápodo o sus encestes en el del brazo robótico.

Dibujo20150530 main experiments - results - Intelligent Trial and Error algorithm - robots - nature14422-f3

El robot en lugar de tratar de autorrepararse, decide desarrollar una estrategia compensatoria que le permita sobreponerse a la situación sobrevenida. No parece fácil. ¿Cómo logra el robot adaptarse al fallo? En robótica la estrategia de la autorreparación (que vemos en películas como Terminator) es demasiado complicada y costosa. El robot tiene que usar algoritmos demasiado complicados y debe disponer de algún depósito de piezas de repuesto. La alternativa propuesta por el grupo de Jean-Baptiste Mouret, de la Universidad de la Sorbona, es el reaprendizaje de las tareas a ejecutar. Los robots almacenan en su memoria un mapa detallado de los movimientos que deben realizar. Este mapa multidimensional, que tiene 36 dimensiones en el caso del hexápodo y 18 en el brazo robótico, representa todo el conocimiento que el robot tiene de sus actuadores y de las acciones que pueden ejecutar. Durante el funcionamiento, cuando se produce algún tipo de fallo, el cerebro electrónico del robot detecta que hay una diferencia entre cómo se comporta (según las imágenes de una cámara de vídeo que tiene instalada) y lo que predice el mapa de movimientos posibles. Mediante un algoritmo de computación evolutiva que usa un procedimiento de ensayo y error inteligente (Intelligent Trial and Error (IT&E) algorithm) se localiza qué componentes son los responsables del fallo. Y además, se buscan comportamientos alternativos que puedan compensar dicho daño. El objetivo es que la tarea objetivo pueda ser lograda con la diferencia más pequeña posible respecto a la planificación inicial. Durante las pruebas, el robot de seis patas fue dañado de cinco maneras diferentes (incluyendo la pérdida y rotura de dos patas) y el brazo robótico fue sometido a daños de 14 formas distintas. En todos los casos fueron capaces de recuperar su tarea en menos de dos minutos. Gracias a este tipo de algoritmos evolutivos de aprendizaje en tiempo real se abre una puerta hacia una generación de robots más robustos, que se adaptarán mejor al entorno complejo en el que tienen que trabajar. Según los franceses autores de este trabajo, los robots adquieren un instinto de supervivencia similar al de un animal herido.

[youtube=https://www.youtube.com/watch?v=ycLspV5lXK8]

Has mencionado que se usa computación evolutiva para detectar el fallo y diseñar la estrategia de compensación. ¿Qué son exactamente los algoritmos evolutivos? Los organismos vivos que vemos en la Naturaleza están perfectamente adaptados al medio en el viven. Casi se diría que han sido diseñados para ello. Pero todos sabemos que son resultado de la selección natural y de la evolución darwinista. Los algoritmos evolutivos son métodos de optimización y búsqueda de soluciones que se basan en las ideas de la teoría de la evolución. Las posibles soluciones de un problema se representan como cromosomas de organismos virtuales en una población. Generación a generación estos genomas cromosómicos sufren mutaciones, se reproducen y compiten entre sí de tal manera que se seleccionan los organismos mejor adaptados. Los organismos  virtuales que se perpetúen tras muchas generaciones son las mejores soluciones al problema. Igual que en la Naturaleza los cambios en el entorno provocan que los organismos con un genoma mejor adaptado a dichos cambios sean los que más se reproduzcan, la computación evolutiva permite que los algoritmos informáticos se adapten a cambios en el sistema y logren una alta tolerancia a fallos. En el caso del robot hexápodo de Jean-Baptiste Mouret, de la Universidad de la Sorbona, y sus colegas, el algoritmo evolutivo llamado MAP-Elites produce hasta 13.000 variaciones en la forma de desplazarse, con distinta actividad para cada extremidad. De esta forma los robots actúan de manera similar a como lo haría, por ejemplo, una persona con una rodilla dolorida: buscan rápidamente una manera de cojear para que les duela menos. El robot prueba con las distintas formas de desplazarse y descarta las que no funcionen. Por ejemplo, si caminando sobre las patas traseras no obtiene resultados, ensaya métodos que consistan en andar sobre las delanteras. Así los robots pueden completar su misión sin necesitar asistencia humana. Las técnicas de aprendizaje automático y de computación evolutiva tiene un futuro muy prometedor en el diseño de robots robustos que se adapten a entornos hostiles.

Dibujo20150530 robotic arm - nature com

Muchos oyentes recordarán que en abril de este año falló un robot que debía inspeccionar el interior de los reactores nucleares de Fukushima afectados por el tsunami de marzo de 2011. El robot dejó de operar. ¿Podría un robot con algoritmos evolutivos haberse recuperado? No lo sabemos, pues la causa del fallo de este robot de la compañía japonesa TEPCO no ha sido publicada. Los futuros robots tolerantes a fallos pueden ser muy útiles en la búsqueda de supervivientes tras un terremoto, para apagar incendios en los bosques o para servir de apoyo en las crisis de seguridad en centrales nucleares, como podría haber sido en el caso de Fukushima. Sin embargo, esto está lejos, pues los dos robots estudiados en el trabajo publicado en Nature son muy sencillos y tienen un número pequeño de opciones posibles que sopesar en caso de fallo. No se sabe aún si los algoritmos evolutivos son escalables y podrán ser usados en máquinas más complejas. Los millones de años de evolución darwiniana que han dado lugar a la gran robustez de los animales son muy difíciles de simular en el cerebro informático de un robot que debe dar respuestas rápidas en pocos minutos. Aún así las técnicas inteligencia artificial para el aprendizaje automático están en pleno auge en robótica. Hoy en día las mayoría de los robots se encuentran en las fábricas realizando labores repetitivas, porque allí el entorno está bien controlado y hay equipos para repararlos en caso de fallo. Para que los robots lleguen hasta nuestros hogares y en nuestro entorno cerano deben ser capaces de adaptarse a un entorno hostil y cambiante. Los algoritmos evolutivos son una opción muy prometedora. Podemos pensar en aplicaciones como los robots asistentes que ayuden a las personas mayores o enfermas. Para ser más efectivos deben ser muy fiables, pues deben seguir realizando sus tareas pese a sufrir pequeñas lesiones. Su robustez es fundamental y para ello los algoritmos evolutivos son ideales.

 



2 Comentarios

  1. Parece un campo muy interesante para sondas roboticas espaciales. Son entornos no solamente hostiles, sino donde la posibilidad de reparación es por lo general nula, y hablamos de proyectos tremendamente caros donde este tipo de algoritmos sería de mucha utilidad

Deja un comentario