[spa] Este proyecto tiene como objetivo implementar un método de detección y recuperación
de errores en un sistema formado por múltiples robots móviles autónomos (sistema
multi-robot). Se parte de un trabajo anterior donde ya se implemento unmétodo de
coordinación basado en subastas. En ese trabajo un conjunto de estos robots (coalición)
colabora para llevar a cabo una determinada tarea, pero no se trata la gestión de
errores. Se ha ampliado el trabajo y se han solucionado algunos problemas que su
implementación presentaba.
Para conseguir el objetivo lo primero que se debe obtener es unmétodo que permita
conocer cuando un robot deja de funcionar. Después de analizar diversas opciones se
optó por usar un sistema basado en un intercambio periódico de mensajes de vida. La
principal ventaja de estemétodo es que también permite el intercambio de información
que cambia rápidamente, como por ejemplo la posición del robot.
A continuación, fue necesario clasificar los robots en tres grupos diferentes en
función del rol que tienen en la tarea que realizan: líderes, ayudantes y en espera. A
partir de esta información, se diseñó un método que permite que otro miembro del
grupo sustituya a un robot que no pueda acabar su tarea.
Otro problema que presentaba el código anterior es la interferencia física entre
robots. Estos problemas generan que las tareas se completen de una forma poco
eficiente. Para solucionarlos se generó una zona restringida donde solo puede haber un
número reducido de robots. De esta manera se evitan las aglomeraciones que causan
la interferencia física
Todo esto se ha implementado sobre ROS y se ha testeado sobre el simulador
Stage y un robot Pioneer 3DX. Para poder hacerlo se tuvo que realizar una serie de
modificaciones en el código para pasar de simulación a robot real.