Distributed Task Negotiation in Modular Robots

Modular robots are a class of robotic systems that consist of many autonomous modules. Each module includes a set of sensors, actuators, and computational resources. Examples of modular robots are (self-) reconfigurable robots [1] [2] [3], and etc. Driven by the local information received from their sensors, multiple modules may simultaneously initiate tasks that are competing even conflicting with one another. For example, in a snake configuration, the tail module may wish to move forward, while the head module may want to avoid an obstacle. How to select the correct task when there are many competing choices and also detecting the termination of the selection process are then critical problems for controlling the modular robots. Distributed Task Negotiation is a process by which modules in a modular robot can negotiate to select a single coherent task among many different and even conflicting choices. This is a very challenging problem due to several reasons: the relationships among modules may not be static but change with configurations; the number of modules in the robot is not known; modules have no unique global identifiers or addresses; modules do not know the global configuration, and can only communicate with their immediate neighbors. This paper presents a distributed algorithm called DISTINCT as a solution for the distributed task negotiation problem. The main idea is that all modules cooperate to build global spanning trees. Each tree is associated with a task. Modules that have initiated tasks start with building and being the root of their own spanning trees, but as they exchange messages for tree building, most modules will give up being the “root” and participate in merging current trees to build larger trees for other tasks. In this process, modules report their status to their parent module of the tree in which they participate. Eventually, only one tree will remain in the entire network of modules and the module that does not have parent and receives reports from all its children is the root. When this root module receives all of the expected messages, it can conclude that the negotiation process has succeeded and all modules in the tree have agreed on the same task. The correctness of this algorithm can be proved if the robot configuration is acyclic (i.e., no loops in the network of modules). To ensure the correctness for arbitrary configuration, additional knowledge (such as module Ids) is needed so that the modules can detect the existence of loops in the network. The algorithm is efficient and its time complexity is of the low polynomial order respect to the number of competing tasks. The paper is organized as follows: Section 2 discusses the related work, Section 3 gives a formal definition of Distributed Task Negotiation; Section 4 presents the basic idea of creating and competing Task Spanning Trees; Section 5 describes the DISTINCT algorithm; Section 6 describes the experimental results in applying DISTINCT to the CONRO self-reconfigurable robots [4] and simulated networks of modules; and finally Section 7 concludes the paper with future research directions.