Assignment 6

Note: This assignment is compulsory for 4766 students only.

Waggle Versions

Some of the tasks below make reference to achieving a certain level of performance within a number of time steps and making plots.  The ability to repeat trials and incorporate new data to existing to plots was added with Waggle 1.1.  Since this is new and probably contains some bugs, you may need to use Waggle 1.0 at times.  Links to both are provided below:

Task 1: Foraging

Develop a controller for the foraging task (Swarm Robotics: Part 1, Exercise #5).  Your controller should address the two challenges highlighted in the notes.  Ideally, the robots should deliver all pucks into the goal zone without disturbing those pucks already there.  This is probably not perfectly achievable, but you should prevent the pucks in the goal zone from being disturbed as much as possible.  Also, your controller should still be effective using a very small number of robots (1-5), although it is expected that it will work much more slowly with fewer robots.

Task 2: Clustering

Develop a controller for the clustering task (Swarm Robotics: Part 2, Exercise #6).  A basic controller that follows the mapping from sensor states to actions as described on slide 20 should be achievable relatively easily.  But if you increase the number of pucks (e.g. to 100) then the system may not converge to a single cluster, even if we increase the number of robots

It is possible to improve performance using the following suggestions:

  • Be careful about obstacle avoidance.  If you turn to avoid another robot, you may hit a cluster.  Try to avoid obstacles only when no pucks are sensed.
  • A controller with no memory can deposit a puck at a cluster, then immediately grab a puck from that same cluster (maybe even the same puck)!  This slows down the clustering process.  Use a variable from the “Memory” category to prevent the robot from immediately picking up a puck for some number of time steps after depositing.

Performance Target: Using the suggestions above with 10 robots and 30 pucks, it should be possible to achieve close to 100% PC after 50,000 time steps.  In addition to submitting your controller, submit a plot of PC (as a PDF file) over multiple trials (minimum 5).

Task 3: Sorting

Develop a controller for the sorting task (Swarm Robotics: Part 2, Exercise #7).  Start with the mapping from sensor states to actions as described on slide 26.  The same suggestions as per the clustering task are necessary to achieve the best possible performance.

Performance Target: With 10 robots, 30 red pucks, and 30 green pucks, it should be possible to achieve at least 70% PC after 50,000 time step [updated, 25 July].  In addition to submitting your controller, submit a plot of PC (as a PDF file) over multiple trials (minimum 5).

Task 4: Synchronization

Develop a controller for the firefly-inspired synchronization task (Swarm Robotics: Part 3, Exercise #9).  For 50 robots you should be able to get all 50 flashing at the same time.

Task 5: Pheromone-Guided Foraging

Develop a controller for the pheromone-guided foraging task (Swarm Robotics: Part 3, Exercise #9).  There are three food source locations that the simulation will cycle through.

Experiment: Considering the time (in time steps) required to move through all three source locations, try to do a comparison of your controller which uses pheromones, to an alternative controller that does not.  That is, the alternative controller just moves randomly when searching for food pucks to collect.  Try to address the question of whether the use of pheromones is helpful or not.  Submit (as PDF files) separate single-trial plots for the pheromone/no-pheromone cases.  Submit also a brief README.txt file describing your findings.

Submission

Save and submit your controllers as .xml files and submit them as task1.xml, taslk2.xml, etc…  You should also submit additional files when asked to do so (tasks 2, 3 and 5).  The deadline for submission is Wednesday, August 1.  Demonstrate your working code to Rory during your assigned time slot on August 1.