Difference between revisions of "Spring2010RobotLabProject"

From GICL Wiki
Jump to: navigation, search
(Grading)
(Additional Resources)
 
(11 intermediate revisions by one user not shown)
Line 1: Line 1:
=THIS ASSIGNMENT IS NOT YET COMPLETE.  READ AT YOUR OWN RISK!!!=
+
[[Category:Robot Lab (Spring 2010)]]
  
 
==Final Project:  Predator Prey==
 
==Final Project:  Predator Prey==
  
In this assignment, you will program a multi-robot team of predators to hunt and capture prey.  You have five predators, who have limited sonar sensors and the ability to communicate with each other.  Their job is to capture two prey, who could start anywhere in the world.  It takes four predators to capture one prey.  They must position themselves to the North, South, East and West of the prey (or, if you prefer, above, below, and on each side).  After a prey is captured, it will stop moving.  There is a built-in function to determine how many prey are left.
+
In this assignment, you will program a multi-robot team of predators to hunt and capture prey.  You have five predators, who have limited blob finders and the ability to communicate with each other.  Their job is to capture four prey, who could start anywhere in the world.  It takes four predators to capture one prey.  They must position themselves to the North, South, East and West of the prey (or, if you prefer, above, below, and on each side).  After a prey is captured, it will stop moving.  There is a built-in function to determine how many prey are left.
 +
 
 +
There is a built-in fudge factor for the boxing in of the prey, so the predators do not have to be ''exactly'' NSEW of the prey, they just need to ''roughly'' be in those positions.
 +
 
 +
Sometimes the prey will run into a wall.  In that position, it is not possible to capture them.  They will eventually move though.  Sometimes they will also run into each other, or into a predator, and get stuck.  Don't worry, they won't stay there forever, eventually they will move away.
  
 
===Configuration Files===
 
===Configuration Files===
The configuration files are provided '''PUT TARBALL HERE'''.
+
The configuration files are provided [http://www.cs.drexel.edu/~urlass/PP.tar.gz here].
  
 
Inside there is a skeleton file '''Predator.java''' for the predator.  This is the file in which you should program the logic for hunting the prey.  There are three additional java files:
 
Inside there is a skeleton file '''Predator.java''' for the predator.  This is the file in which you should program the logic for hunting the prey.  There are three additional java files:
Line 14: Line 18:
 
* '''Prey.java''' -- This is the logic for the prey.  They are not very intelligent, they move at random.
 
* '''Prey.java''' -- This is the logic for the prey.  They are not very intelligent, they move at random.
  
* '''Driver.java''' -- This starts all of the robots and the DataChannel object.
+
* '''Driver.java''' -- This starts all of the robots and the DataChannel object, and connects them to Playerstage.  This is the class you should run.
  
 
===Additional Requirements===
 
===Additional Requirements===
Line 41: Line 45:
  
 
'''TOTAL''': 40 + 10E.C.
 
'''TOTAL''': 40 + 10E.C.
 +
 +
===Additional Resources===
 +
Although they are probably not necessary for this assignment, if you are interested in this problem, you may enjoy the following research papers:
 +
 +
* [http://cs.itd.nrl.navy.mil/pubs/docs/RoleAllocationICAI05.pdf Design & Evaluation of Distributed Role Allocation Algorithms in Open Environments]
 +
* [http://cs.itd.nrl.navy.mil/pubs/docs/MAS_Manet_Milcom05.pdf Multi-Agent Systems in Mobile Ad hoc Networks]
 +
* [http://cs.itd.nrl.navy.mil/pubs/docs/MODAN_milcom08_v11.pdf A Study of Multiagent System Operation within Dynamic Ad hoc Networks]
 +
* [http://www.springerlink.com/content/m6j383v8660t1127/ Hungarian Algorithm]
 +
 +
===Graphics===
 +
 +
The predators are red.  The prey are blue.
 +
 +
[[File:Initial config.png]]
 +
 +
The predators have surrounded a prey.
 +
 +
[[File:Captured_prey.png]]

Latest revision as of 10:20, 27 May 2010


Contents

Final Project: Predator Prey

In this assignment, you will program a multi-robot team of predators to hunt and capture prey. You have five predators, who have limited blob finders and the ability to communicate with each other. Their job is to capture four prey, who could start anywhere in the world. It takes four predators to capture one prey. They must position themselves to the North, South, East and West of the prey (or, if you prefer, above, below, and on each side). After a prey is captured, it will stop moving. There is a built-in function to determine how many prey are left.

There is a built-in fudge factor for the boxing in of the prey, so the predators do not have to be exactly NSEW of the prey, they just need to roughly be in those positions.

Sometimes the prey will run into a wall. In that position, it is not possible to capture them. They will eventually move though. Sometimes they will also run into each other, or into a predator, and get stuck. Don't worry, they won't stay there forever, eventually they will move away.

Configuration Files

The configuration files are provided here.

Inside there is a skeleton file Predator.java for the predator. This is the file in which you should program the logic for hunting the prey. There are three additional java files:

  • DataChannel.java -- This is a thread that all of the predator and prey register with. It coordinates sending messages between predators and monitors the robots' locations to kill any prey who are captured.
  • Prey.java -- This is the logic for the prey. They are not very intelligent, they move at random.
  • Driver.java -- This starts all of the robots and the DataChannel object, and connects them to Playerstage. This is the class you should run.

Additional Requirements

  • You may not rely on anything particular to the provided map. If the predators and the prey were to begin in different locations, your code should still work.
  • You cannot modify the code in Prey or DataChannel to make it easier to kill the prey (for example, making the prey stationary is not cool).

If you are not sure about the above requirements, feel free to email the TA.

Extra Credit

Modify data channel so that there are X seconds of message latency and Y% probability of a message being lost (ie: not delivered). As X and Y increase, do the predators need to adopt a different hunting strategy? Ensure that your new strategy works with X=5 and Y = 25.

Submission

  • Submit a tarball of your robot client code using Bb Vista. The tarball should contain a README file with any necessary build instructions or peculiarities of your program.
  • If something does not work properly or is incomplete, you must say so in the README.

Grading

The assignment is worth 40 points. Grading will be as follows:

  • 40 points : All of the prey are captured within 20 minutes.
  • 30-39 points : Some of the prey are captured within 20 minutes.
  • 20-29 points : None of the prey are captured within 20 minutes, but the predators come really, really close to capturing them.
  • 0-20 points : The predators do not come close to capturing any prey. Anything in this category will probably be closer to 0 than to 20.

The extra-credit is worth up to 10 extra points, depending on how sophisticated the modified approach is.

TOTAL: 40 + 10E.C.

Additional Resources

Although they are probably not necessary for this assignment, if you are interested in this problem, you may enjoy the following research papers:

Graphics

The predators are red. The prey are blue.

Initial config.png

The predators have surrounded a prey.

Captured prey.png