Wednesday, August 16, 2006

A Swarm of NXT's?

Imagine a beehive, all of the workers and soldiers working together to benefit the queen bee. Each insect has it's very own unique task to carry out and perform in order to keep the hive in excellent condition. Now Imagine this community concept being practiced by Lego Mindstorms NXT robots.

Over at Lugnet Jordan Bradford has brought up the idea of building a swarm of NXT robots to show off at brickfest. It seems as if the gauntlet has been thrown down and the challenge has begun. The Lugnet Robotics group has been buzzing with the excitement...

Here is what Jordan had to say over at the Lugnet Robotics Group:

I’m interested in trying some experiments in swarm robotics. The basic idea is that simple robots with simple programming can behave in complex ways, provided that there are 1.) a lot of them, and 2.) they can communicate locally in some fashion. You then end up with a swarm of robots acting collectively. The robots’ programming controls their individual behavior, but the behavior of the entire collective arises from the robots’ interactions with their environment and their neighbors’ actions...

This new concept of a mass amount robots working together to accomplish a common goal is called Swarm Robotics. The idea behind this project is simple: Use a group of Lego Mindstorms NXT's to accomplish a common goal. One NXT would be the master or "queen", whose commands would be followed by followed by an army of smaller NXT robots.

Upon further thought there is one problem with this project. In the NXT specifications it says that each NXT can only be the master of 3 other NXT's. Another complication is that the NXT can only serve as a master or slave, not both!

I've put together a little graphic to help you understand how this swarm would appear:

So it seems now that the challenge lies in overcoming the four NXT swarm problem. If you have any ideas don't hesitate to post a comment or join in the discussion over at the official Lego Mindstorm's Forums or Lugnet Robotics Group!

5 comments: said...

One common method is to let one robot send a command, tagged with an id for the target slave robot. Then any other robot that receives this command will rebroadcast it out. Until the the target receives the command.

After that, the target will also respond with an acknowledgement command with id of the original sender.

Again any other robot that receives this will broadcast this message.

Drawbacks of course is that there are lots of messages in the air simultaneously, but BlueTooth is supposed to be capable of settling that with no interference. (IR also can).

So this method is used only when there are occasional commands only.

Bluey said...

I see two possibilities for more expanded SWARM capabilities:

1. If replacement firmware is ever developed that overcomes the "simultaneous master/slave" problem, an adaptive, "pure NXT" network swarm may be possible. If each NXT keeps an account of which NXTs it can directly communicate with, the group could assemble a network-path table to use when attempting to communicate indirectly with unavailable NXTs.
If there are a theoretical limit of 4 bluetooth connections(one Slave-Master, and three Master-Slave) this would leave plenty of room for networking path interconnection(web forming). With three connections being used to communicate with the rest of the group, one connection could be dedicated to discovering newly activated/available NXT nodes.

2. Or to simplify matters, a bluetooth enabled computer or pda could act as a data router. Each NXT could send a message with a destination address to the router, and the router could take care of delivering the message.
Using non-NXT hardware with an additional communication medium would also open up the world of trans-location communication, enabling NXT networks to communicate around the globe.

Blog said...

Maybe using a mix with Ir and BT a messanger bot could recieve a message and travel to the receiver and then give the mesaage to the receiver but sadly it stll is occasional messages. Or if the robot is in open area a centrol post would be able to hold a swingable miror it would deflect response to the master and master sends all the commands in IR 2. though it has limited range and small numbers withought the outside IR iterference.

Thomas King said...

I tried to use the Lejos NXJ API and it seemed to work by closing and opening connections until one robot tried to open a fourth connection. The robots could still receive more connections, but could not open them.

Anonymous said...

I am not an expert in this field but I have a suggestion.Try to use a swarm of NXT robots programed to work independently,like in the real life of termites.The ants queen do not give any orders.The final complex result is a combination of simple tasks executetd by simple individuals in a totaly descentralized way.Just an idea!