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

       
Sat, 07 Oct 2006

more SRV-1 "swarm mode" adventures ...

After starting to consider how to employ IR beacons for localization and navigation in a multiple robot environment, we recognized a benefit to assigning specific ID's instead of random ID's to robots that were acting as beacons, as that would give us control over the positioning of the beacons. Fortunately, there's a convenient mechanism on the SRV-1 controller which enables us to assign fixed addresses using some of the unassigned i/o pins.

As seen in the photos below, we added 2.7k-ohm pull-up resistors to some of the robots to connect any combination of E5 E6 E7 and E8 pads to the +3.3V connection on the right rear edge of the controller. Basically, this gives us 4 bits of addressing (16 combinations), though 0x00 (no connection) is a reserved address. As you can see in the first photo, we've connected E5 to +3.3V through a 2.7k resistor, and when we read the data bits, we find that this robot has been assigned ID = 0x01.



With a second robot, we connected E6 to +3.3V through a 2.7k resistor, which provides this robot with a fixed ID = 0x02.



Robots that don't have fixed ID's are still assigned a random ID, as described earlier. Beyond this, we added commands to enable/disable a beacon transmit (xmit) function and commands to enable/disable a beacon locate function. Putting this all together with the "swarm mode" addressing functions, we have a control mechanism that provides a lot of flexibility without a lot of complexity.

CommandResponseDescription
'x''#x'enable "xmit IR beacon" mode -
robot in this mode will transmit 1's complement of its ID number
e.g. if ID = 0x01, bit pattern 0xFE will be sent via IR xmit function
'X''#X'disable "xmit IR beacon" mode
'laa''##laa'enable "locate beacon" mode - search for beacon with ID = 'aa'
only functions in "wander mode" - if beacon is detected, robot will steer toward it
though "wander mode" function will prevent collisions
'L''#L'disable "locate beacon" mode
Swarm Mode
'r''##raa'read robot ID bits (E8 E7 E6 E5) or pick a random robot ID number for swarm operation
'aa' is an 8-bit binary value that can't equal 0x00 or 0xFF
once robot ID is set, robot goes automatically into "swarm mode" and only processes '@' commands
'R''##raa'pick a different robot ID number (used if several robots picked duplicate random ID's)
'aa' is an 8-bit binary value that can't equal 0x00 or 0xFF
'@abc''#c or ##c...'swarm mode command - only active after robot ID is set ('r' or 'R' commands)
ab = robot id, a=high digit, b=low digit, c=command
e.g. '@275' tells robot 27 to stop
if ab = 'FF', command goes to all robots
e.g. '@FFw' tells all robots to enter "wander mode"
response code is identical to non-swarm mode response for command


Here's a 600kb Quicktime clip of 4 SRV-1's operating in close proximity in "wander mode", where the robot (0x01) in the lower right of the video has been designated as the beacon, and the other robots have been instructed to locate the beacon. As before, the robots are controlled by a single base station on a common radio channel using the new "swarm mode" commands. You can click on the screen shot to launch a viewer -


Posted Sat, 07 Oct 2006 22:02 | HTML Link | see additional stories ...