Surveyor Robotics Journal |
|||||
|
Surveyor Corporation home page
Subscribe to a syndicated RSS feed. Archives |
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 ... |
||||