Surveyor Robotics Journal
   



email: support@surveyor.com

Surveyor Corporation home page

Subscribe to a syndicated RSS feed.

Subscribe with Bloglines

Archives
November 2008
October 2008
September 2008
August 2008
September 2008
August 2008
July 2008
June 2008
May 2008
April 2008
March 2008
February 2008
January 2008
December 2007
November 2007
October 2007
September 2007
August 2007
July 2007
June 2007
May 2007
April 2007
March 2007
February 2007
January 2007
December 2006
November 2006
October 2006
September 2006
August 2006
July 2006
June 2006
May 2006
April 2006
March 2006
Februray 2006
January 2006

       
Wed, 04 Oct 2006

building a robot swarm ... some initial efforts

Part of the goal in restructuring the SRV-1 communication protocol was to build a foundation for coordinating the simultaneous operation of multiple robots on a shared communication channel. To test feasibility, we have built a version of firmware that allows multiple robots to operate on the same shared radio channel without confusion, and are preparing to take that capability to the next level by providing individual addressability of the robots on a shared channel.

The key to individual addressability is the assignment of unique ID numbers to each robot. We experimented with several approaches (e.g. radio hardware address, random memory probe, etc), and ultimately decided to let each robot pick its own ID randomly (using the on-board clock as a seed), requiring only that we add a mechanism to force selection of new ID's if there is any duplication.

From there, it's just a matter of adding some commands that are specific to multiple robot operation. As the '#' character signifies an ACK for single robot commands, we will likely use the '@' character to start any multiple robot commands, where the command format might look like:

    '@' robotID command

To start, we'll use 2-digit (hex) ID's, reserving "00" for the base station and "FF" as a broadcast ID which applies to all robots. This gives us up to 254 unique robot ID's operating simultaneously on the same radio channel, so we'll likely use 8-bits initially, and using ASCII characters for the ID string allows us to test operation from a console. So as an example, a command that tells robot 27 to move forward would be '@' '2' '7' '8' ("@278").

The next step is to build some behaviors that test multiple robot operation. The first test we've planned uses the IR functionality, assigning one robot to act as an IR beacon, and assigning the other robots to converge on that beacon without any colliding with the beacon or each other. We will use the BounceIR command from the beacon, and a combination of the ListenIR command and the "wander mode" Scan function to locate and navigate toward the beacon. We'll post a video of our results once we have something to show.

Posted Wed, 04 Oct 2006 17:35 | HTML Link | see additional stories ...