University of Calgary
Rob Kremer
Group Assignment: Multi-agent Robots in CASA

CPSC 601.68/599.68: Agent Communication
Fall 2008
Department of Computer Science
Computer
Science

Note: This is an group assignment. The work is shared among the group members and each member is responsible for all of the work. For example, if there is plagiarism is found in the assignment, every member is responsible. The group is expected to do it's own work, and must properly cite any and all work taken from external sources.
Each member is responsible to carry their own portion of the workload. To this end, there is a peer assessment process where each member must assess each other member's contribution. Individual marks may differ based on the peer assessment, the instructor's assessment, and other factors.
Another note: You will need to download the CASA project and the iRobotCreate project to this assignment. For details, see the getting CASA and the iRobot code page.
iRobot Create

This is a multi-agent (multi-robot) assignment in which you have to write agents to autonomously control two robots. The environment will consist of a rectangular room with a graph drawn on the floor. The graph consists of an arbitrary number of verticies (or nodes), each connected to the other vertices by zero or more paths (or lines or edges or arcs). The vertices will be dark circles with an approximately 12cm diameter, and the paths will be dark lines approximately 2cm wide. The paths will not cross, and will all be spaced at least a .6 robot diameters apart, except near vertices, where they may be closer, but they are guaranteed to intersect the vertices at no less than 70 degrees from any other path and at right angles to tangent to the circle.

The goal of the task is to program your two robots to compete against another team of two robots by another group in the class. The rules are that your robots must not venture off the graph after they have initially found it. From the time that each of your robots finds the path until they declare victory, they must flash their power light green on and off at approximately 1 second intervals. The goal is to trap one of your opponent's robots on the graph between two vertices. When your two robots agree that they have trapped an opponent, they must flash their power lights in coordinated unison alternately red and green at approximately one second intervals. If you are trapped, you should recognize it and flash the trapped robot's power light red and off alternately at approximately 1 second intervals and you other robot should softly whimper sadly.

Like many games, you are awarded points for achieving goals and you are penalized points for violating the rules:

Points Condition
+100 trapping an opponent and flashing red/green in unison
-20 leaving the graph accidentally
-100 leaving the graph when it seems obvious you are doing so to avoid being trapped
-50 flashing red/green when an opponent isn't trapped
-50 flashing red/green out of sync with your partner robot
-50 blocking: keeping both robots together to avoid being trapped, not moving for extended periods, etc
-20 not finding the graph quickly enough, as determined by the official referee (me)
-50 not flashing green/off when you are on the graph
+50 recognizing that you are trapped and flashing red/off before your opponent starts their red/green flashing
-20 not recognizing your are trapped within a reasonable time after being trapped
-20 thinking you are trapped and flashing red/off when you aren't really trapped
0 bumping your opponent off the graph so they get confused and leave the graph (zero because this is legal -- sort of like checking in hockey)
+10 for a truly pathetic sad whimper from the non-trapped robot when you loose

The referee (me) reserves the right to make up reasonable rules, with associated penalties and awards, as the game proceeds.

You may not use any other sensors other than the sensors the iRobot Create has built-in. The cliff sensors are very useful for detecting lines and vertices drawn on the floor. You will be provided with software (available from the CVS repository) to help you in basic tasks, such as following lines. You are NOT required to use this software, and you may modify it as you see fit.

Each of your robot should play an interesting short tune to indicate readiness but wait for a "start" command. You should implement a run time command "start" to start your robots. In the event that you always win or always loose, you should implement commands "flash victory" (which will cause both robots to flash red/green in coordinated unison when sent to only one robot) and "whimper" to demo these to the instructor.

A suggested "game board" is as follows. This may prove too difficult or too easy, so consenus changes may be entertained. The source for the game environment below can be found in EnvGame1.txt.

Game layout

Your mark on this assignment will not necessarily have much to do with the points you score, but it is anticipated that there will be a reasonably strong correlation between marks and score. Marks will be awarded for brilliant inter-agent communication design (based on the CASA architecture and social commitment theory), program design, documentation, and an oral "exam" immediately following the competition.

Competition schedule is to be determined.


UofC
CPSC 601.68/599.68: Agent Communication
Department of Computer Science

Last updated 2008-11-07 9:25
Rob Kremer