[spa] Este proyecto tiene como objetivo principal la implementación de unmecanismo de
asignación de tareas basado en subastas para sistemasmulti-robot. Dicho mecanismo
se basa en la negociación entre robots, los cuales pujarán por las tareas para conseguir
que se les asigne. Estas tareas consisten en unas coordenadas objetivo que los robots
deben alcanzar. Por un lado, se necesita un sistema de comunicación para implementar
el algoritmo de subastas y, por otro lado, se necesita un mecanismo de navegación para
alcanzar las coordenadas objetivo.
La asignación de tareas basadas en subastas se caracteriza por dos figuras: subastadores
y pujadores. A cada tarea se le asignará, mediante el algoritmo de elección
de líder implementado, un único líder. Los líderes actuarán como subastadores y su
función es decidir que pujadores (no líderes) pueden apoyarle en la ejecución de su
tarea. Para poder participar en una tarea los pujadores realizan una oferta, conocida en
subastas como puja, al subastador (líder) de dicha tarea y éste seleccionará qué robots
le apoyarán en función del valor de la puja.
Primero se ha implementado un algoritmo de evitación de obstáculos por campos
de potencial permitiendo al robot alcanzar las coordenadas de forma segura. Posteriormente,
se ha desarrollado los mecanismos de comunicación, los cuales están basados
en sockets, para poder implementar los algoritmos de asignación de tareas basados en
subastas.
El programa se ha realizado utilizando el lenguaje C++. Como nexo de comunicación
se ha utilizado Robotics Operating System (ROS) que consiste en un framework que
hace la función de interfaz interactiva entre software y hardware. El simulador utilizado
para la realización de las pruebas ha sido Stage que consiste en una plataforma de
simulación en dos dimensiones capaz de cargar mapas y especializada en robótica
móvil.
Las primeras pruebas se realizaron sobre el simulador Stage. Tras el éxito de estas
pruebas se procedió a validarlas sobre el robot real Pioneer 3DX disponible en el
laboratorio de robótica.