Robot Cooperation Through Stigmergic Communication
This work was done at Robotics Lab, IIT Guwahati.
The aim of this work is to enable the robots to perform sequential tasks by cooperating with each other via stigmergic communication. Mobile Agents are used for implementing stigmergy and to make the system decentralized. To test the feasibilty of the system, a task is subdivided into a set of 5 sequential tasks. 5 mobile agents are released in the mobile agent system where the execute themselves on 3 robots. LEGO NXT Mindstorms bricks, Typhon and LEGO NXT Interface for Prolog were used in the experiments.
- Agent 1: Whenever it finds a robot in state S0, it starts moving the robot forward until an obstacle is detected by the robot. As soon as it finds the obstacle, it makes the robot to turn towards WEST. After the robot turns to WEST, the agent again makes it to move forward in a straight line until the robot detects a black colour surface. At this point, the agent changes the state of the robot to S1 and moves away.
- Agent 2: This agent catch holds of the robot in state S1. It makes the robot to move straight over the black surface. When the robot crosses the black surface to enter into the white surface, it makes the robot move forward 50 steps and then turns the robot towards NORTH. Beyond that the robot moves forward in a straight line till it detects an obstacle. At this point, the agent changes the state of the robot to S2 and moves away.
- Agent 3: This agent checks whether a robot is in state S2. If so, then it starts executing an obstacle avoidance algorithm till the robot goes away from the vicinity of the obstacle. After which, it aligns the robot towards NORTH. Further, it changes the state of the robot to S3 and moves away.
- Agent 4: This agent looks for a robot in state S3. After finding such a robot, it makes it to move forward in a straight line until a black surface is detected. On such a detection, robots turns towards EAST. After turning, the agent starts executing a black line following algorithm. It continues to execute so until a yellow colour surface is detected. At this point, the agent changes the state of the robot to S4 and moves away.
- Agent 5: Agent 5 completes the last part of the puzzle. It gets a robot which is in state S4. It makes the robot to turn towards SOUTH. After turning, the robot moves in a straight line until an obstacle is detected. Once the obstacle is detected, it makes the robot to go near to the obstacle and grab it using claws. Further, the robot turns towards EAST, moves forward 50 steps and releases the object from its claws.
The directions do not follow usual compass conventions so as to match with the recorded video. The video is available at the bottom of this page.
We used ten nodes, five of which formed the ‘backbone network’. This backbone network was a ring. Each of the other five nodes was connected to one of the backbone nodes. And the whole communication of these ‘local nodes’ was with this ‘global node’.
We defined a ‘state’ predicate at each node that maintained the state the associated robot was in. So, if a robot is in state S0, the first agent executes the code and changes the state to S1. We also used intermediate states on the global nodes, so that, if a robot is executing some code, and another agent visits the corresponding global node, it may be directly sent to the next node, knowing that the local node is busy.
- Shashi Shekhar Jha, W. Wilfred Godfrey, and Shivashankar B. Nair. "Stigmergy-Based Synchronization of a Sequence of Tasks in a Network of Asynchronous Nodes", Cybernetics and Systems, 45(5), pp.373-406, 2014.
- Shashi Shekhar Jha, and Shivashankar B. Nair. "Orchestrating the sequential execution of tasks by a heterogeneous set of asynchronous mobile agents", In German Conference on Multiagent System Technologies, pp.103-120, 2014.