Hide menu

TDDD10 AI Programming

The Skill Assignment

Goal

Each group should complete the Skill Assignment. The purpose of this assignment is to understand the RoboCup simulator and the RoboSoc framework and to learn how to interact with the RoboCup simulator using RoboSoc.

Instructions

  • Set up the skill assignment on your AIP account according to HOWTO skill assignment.
  • Go through the tutorial creating a simple score skill Score Tutorial.
  • Participate in The Score Challenge. Deadline (initial version): 4/9 first version, 2/10 final version.
  • Participate in The Dribble Challenge. Deadline (initial version): 11/9 first version, 2/10 final version.
  • Participate in The Pass Challenge. Deadline (initial version): 18/9 first version, 2/10 final version.
  • Present your skills at a seminar (21/9).

Each challenge consists of a scenario with 1-2 attackers and 1-3 defenders where each group should implement both the attackers and the defenders and evaluate their performance against the other groups' agents in weekly skill tournaments. In each challenge a number of skills must be implemented while in general the decision making about which skill to use is straight forward. The focus is thus on implementing basic soccer skills which are useful for RoboCup teams.

Examination

The examination of the skill assignment is to enter your agents in the weekly skill tournament. Every week between week 35 and 39 each group compete against all other groups as well as predefined agents defining the grade levels. This means that every week every entry plays as attackers against every other entry as defenders, including itself, for each of the challenges. To enter your agents in the tournament email the id of the subversion revision of the code you want to enter. This means that the code must be checked in the SVN repository. The code is compiled with make so make sure the code really compiles. Only a single entry is allowed each week.

Grades

The assignment is graded based on how well your agents perform in the skill tournament. The grade for each challenge is equal to the highest level predefined agent you beat in the final skill tournament. To pass the skill assignment you must submit an entry which beats the grade 3 agent in each of the challenges. The total grade on the assignment is based on the average of your grades on each challenge.

Cheating

The challenges should be implemented separately by each group. It is allowed to discuss with others but it is not allowed to share code. It is allowed to use external libraries as long as the logic describing the behavior of the agents is written by your group. Failure to comply with this rule is the same as cheating on an exam.

Time assigned

8h Le, 2h Se, 28h La, 12h homework

Advice

  1. Start with the simplest possible design and implementation, do not improve it until you know why the current design and implementation doesn't work as you want it to.
  2. Write down the design of your skill before you implement anything, make sure that the agent has the necessary information to be able to execute the skill.
  3. Uncertainty can be a problem. To test your skill without noise use the scripts called test_SKILL --perfect, for example test_score --perfect. They work exactly like the normal scripts, but starts the soccer server with perfect information.
  4. There are useful helpers in RoboSoc, for example sector_helpers.h
  5. Read the RoboSoc Manual to get an overview of RoboSoc.
  6. Look at the online RoboSoc documentation to find out about details of RoboSoc.
  7. Look at other teams and see what they have done. A good place to start is the UvA Master's Theses.
  8. Limit the time you spend on the score skill, it is simple and should be completed in a few hours. The pass skill is also quite straight forward, while the dribble skill is more open-ended.
  9. If you have problems with RoboSoc don't hesitate to ask. It is not as well documented as we would like but we will answer your questions to the best of our abilities.

The Score Challenge

In the Score Challenge the following should be implemented: An attacker trying to score, a goal keeper trying the catch the ball, and a defender trying to either block a shot or intercept the ball. This corresponds to five distinct skills: score, position goalkeeper, catch ball, block score angle, and intercept ball.

Setup

The setup of the score challenge is that an attacker is placed in the penalty area facing the goal and with the ball kickable, a goal keeper is placed on the goal line facing the ball, and 0, 1 or 2 defenders are placed in the area between the attacker and the goal keeper facing the ball. The goal keeper always has the uniform number 1. The aim of the attacker is to score and the aim of the defenders is to prevent the attacker from scoring. The attacker succeeds if a goal is scored and the defenders succeed if the attacker does not score within 25 cycles. A "score" message is sent by the trainer to each agent when the scenario starts.

A picture showing a potential setup in the score challenge. The area surrounded by a black polygon is the area where the defenders are placed. The area is dependent on the ball position.

Testing and Evaluating

To test and evaluate the agents a set of predefined scoring scenarios has been created. It covers a range of situations that your agents are supposed to handle. Since the challenge is new, the set of predefined scenarios might change during the course. In the tournament both the predefined scenarios and a set of randomly generated scenarios are used to evaluate the agents (all games in a tournament are played using the same set of randomly generated scenarios.)

  • To test your attacker against the official goalie and defender on grade level grade use the following script:
    test_score <your AIP group number> --grade <grade> --attacker <the command to start your agent>
    Example (aip1 attacker against level 3 defenders): test_score 1 --grade 3 --attacker ~/ourteam/Team
  • To test your goalie and defenders against the official attacker on grade level grade use the following script:
    test_score <your AIP group number> --grade <grade> --defender <the command to start your agent>
    Example (aip1 defenders against level 4 attackers): test_score 1 --grade 4 --defender ~/ourteam/Team
  • To test your attackers against your defenders use the following script:
    test_score <your AIP group number> <the command to start your agent>
    Example (aip1): test_score 1 ~/ourteam/Team
In order for the scripts to work you may not set the team name in the agent binary, instead the team name is given as a parameter to the binary. The team names are Attacker for attackers and Defender for defenders.

The Dribble Challenge

In the dribble challenge the following should be implemented: An attacker trying to dribble the ball past 1 or 2 defenders trying to take the ball. This corresponds to two distinct skills: dribble and take ball.

Setup

The setup of the dribble challenge is that an attacker is placed with the ball kickable and 1 or 2 defenders placed between 2 and 5 meters from the attacker facing the ball. The aim of the challenge is for the attacker to move the ball at least dist meters in the x-direction under control (legal values of dist are 5 and 10). The attacker succeeds if the ball and the player has moved at least dist meters in the x-direction and the ball is kickable. The defenders succeed if the attacker fails to move the ball to the target area within 40 cycles. To mimic a real dribble situation the ball may never be more than 10 meters above or below the starting position of the attacker in the y-direction. A "dribble dist" message is sent by the trainer to each agent when the scenario starts.

A picture showing a potential setup in the dribble challenge. The blue line is where the attacker is placed, the black rectangle is where the defenders are placed, and the blue rectangle is the target area for the attacker. The ball must stay within the red lines.

Testing and Evaluating

To test and evaluate the agents a set of predefined dribble scenarios has been created. It covers a range of situations that your agents are supposed to handle. Since the challenge is new, the set of predefined scenarios might change during the course. In the tournament both the predefined scenarios and a set of randomly generated scenarios are used to evaluate the agents (all games in a tournament are played using the same set of randomly generated scenarios.)

  • To test your attacker against the official defenders on grade level grade use the following script:
    test_dribble <your AIP group number> --grade <grade> --attacker <the command to start your agent>
    Example (aip1 attacker against level 3 defenders): test_dribble 1 --grade 3 --attacker ~/ourteam/Team
  • To test your defenders against the official attacker on grade level grade use the following script:
    test_dribble <your AIP group number> --grade <grade> --defender <the command to start your agent>
    Example (aip1 defenders against level 5 attacker): test_dribble 1 --grade 5 --defender ~/ourteam/Team
  • To test your attacker against your defenders use the following script:
    test_dribble <your AIP group number> <the command to start your agent>
    Example (aip1): test_dribble 1 ~/ourteam/Team
In order for the scripts to work you may not set the team name in the agent binary, instead the team name is given as a parameter to the binary. The team names are Attacker for attackers and Defender for defenders.

The Pass Challenge

In the pass challenge the following should be implemented: An attacker trying to pass the ball to another attacker and a defender trying to either block the pass or intercept the ball. This corresponds to four distinct skills: pass, make passable, block pass, and intercept ball.

Setup

The setup of the pass challenge is that two attackers are placed facing each other at a distance of 10 to 20 meters with one of them having the ball kickable and 0, 1 or 2 defenders are placed, facing the ball, in between the attackers. The aim of the challenge is for the attacker with the ball, called the passer, to pass it to the other attacker, called the receiver, and for the defenders to prevent this from happening. The attackers succeed if the ball is kickable by the receiver and its speed is less than 0.3. The defenders succeed if the attackers fail to achieve the pass within 30 cycles. To mimic a real passing situation neither the passer nor the receiver may move more than 2 meters toward the other attacker (in total they can move up to 4 meters closer to each other) and the ball may never be more than 10 meters above or below the starting position of the passer in the y-direction. The passer will always have uniform number 1 and the receiver uniform number 2. A "pass" message is sent by the trainer to each agent when the scenario starts.

A picture showing a potential setup in the pass challenge. The blue line is where the passer is placed, the defenders are placed in the black rectangle, and the receiver is placed in the blue rectangle. The ball must stay within the red lines.

Testing and Evaluating

To test and evaluate the agents a set of predefined pass scenarios has been created. It covers a range of situations that your agents are supposed to handle. Since the challenge is new, the set of predefined scenarios might change during the course. In the tournament both the predefined scenarios and a set of randomly generated scenarios are used to evaluate the agents (all games in a tournament are played using the same set of randomly generated scenarios.)

  • To test your attackers against the official defenders on grade level grade use the following script:
    test_pass <your AIP group number> --grade <grade> --attacker <the command to start your agent>
    Example (aip1 attackers against level 5 defenders): test_pass 1 --grade 5 --attacker ~/ourteam/Team
  • To test your defenders against the official attackers on grade level grade use the following script:
    test_pass <your AIP group number> --grade <grade> --defender <the command to start your agent>
    Example (aip1 defenders against level 3 attackers): test_pass 1 --grade 3 --defender ~/ourteam/Team
  • To test your attackers against your defenders use the following script:
    test_pass <your AIP group number> <the command to start your agent>
    Example (aip1): test_pass 1 ~/ourteam/Team
In order for the scripts to work you may not set the team name in the agent binary, instead the team name is given as a parameter to the binary. The team names are Attacker for attackers and Defender for defenders.


Page responsible: Cyrille Berger
Last updated: 2014-08-19