Technical Challenges

Two technical challenges will be held at RoboCup 2015. These challenges are designed to encourage SSL teams to develop technical contributions and to test ideas that can evolve the league towards the RoboCup goal of 2050. In order to motivate more teams to participate in the challenges, there is no qualification constraint, and the Committees encourage all the participating teams to compete in the challenges.

11 vs 11 Mixed Team Technical Challenge

The 11 on 11 Technical challenge is a full match between two teams of up to 11 robots, each composed of robots from two different SSL teams (here referred to as sub-teams). Each robot must be controlled by its originating sub-team's software. Sub-team pairings will be randomly drawn. The winners will be determined based on the number of valid goals scored.

Communication

Communication between the two sub-teams of a team is allowed, according to the following specifications:

  • Messages are sent as UDP unicast packets encoded with Google protobuf to port 10012. Teams will set the IP address of their team-members before the game.
  • Sub-teams communicate only a rough plan for each of their robots using the TeamPlan message specified by the multi_team_communication.proto Google protobuf (https://github.com/RoboCup-SSL/ssl-multi-team-communication):
package multi_team_comm;
//Protocol to communicate rough plans to other teammates
//Units are specified as follows:
//length - millimeters
//time - seconds
//angle - radians

//Plan of a list of robots
message TeamPlan {
  repeated RobotPlan plans = 1;
}

//Plan of a single robot
message RobotPlan {
  //ID of the robot from SSL vision
  required uint32 robot_id = 1;
  
  //Different roles a robot can assume
  enum RobotRole {
    Default = 0; //no specified role
    Goalie = 1;
    Defense = 2;
    Offense = 3;
  }

  //Planned role of this robot
  optional RobotRole role = 2;

  //Planned navigation target
  optional Pose nav_target = 3;

  //Planned shot target
  optional Location shot_target = 4;
}

// Location message, in mm. The center of the field is specified as (0, 0).
// Positive x axis points to the opponent's goal
message Location {
  required int32 x = 1;
  required int32 y = 2;
}

message Pose {
  //location of the robot
  optional Location loc = 1;
  //heading of the robot
  optional float heading = 2;
};

Rules

Standard SSL rules apply to mixed team games with the following additions:

  • A mixed team is formed from robots of two sub-teams.
  • The maximum robot number is increased to 11 per mixed team. Each sub-team may have only a maximum of 5 players on the field at any time. Each sub-team may additionally provide a goalkeeper for one period. The goal keeper for the second period must not be provided by the same sub-team that provided the goalkeeper for the first period.
  • Goals are only valid if robots from both of the two sub-teams forming a mixed team have touched the ball since the last stoppage of play.

Shared Radio Protocol Challenge

Overview

The goal of the shared radio protocol is to demonstrate teams playing soccer using other teams’ robots. This will allow (for example) teams of heterogeneous hardware, or mixed teams with one team’s software and another’s hardware.

For this technical challenge, the team that provides the robot hardware will be called the Radio Server Team (RST), and the team that controls the robots via software will be called the Radio Client Team (RCT). The RST will run a server that accepts data on the UDP port number 10010, receives the radio commands in the specified protobuf format, and send the commands over their own radio to the robots. The RCT will run the control software that will send radio commands in the specified protobuf format to the UDP port 10010 of the RST. This setup is depicted in the following figure:

Data travels from radio client team via shared radio protocol to radio server team, then via radio to robots

Radio Protocol

The radio commands are sent as UDP packets encoded with Google protobuf, with the following protobuf definitions. Each wrapper packet contains multiple radio commands, for each of the robots to be controlled.

message RadioProtocolWrapper {
  repeated RadioProtocolCommand command = 1;
}

message RadioProtocolCommand {
  // The unique ID of the robot, as identified by SSL-Vision.
  required int32 robot_id = 1;

  // Desired forward drive velocity in meters / second.
  required float velocity_x = 2;

  // Desired sideways left drive velocity in meters / second.
  required float velocity_y = 3;

  // Desired counterclockwise angular velocity in radians / second.
  required float velocity_r = 4;

  // Desired flat kick speed, in meters / second.
  // If this optional field is missing, then no flat kick command should be
  // sent.
  optional float flat_kick = 5;

  // Desired chip kick distance, in meters.
  // If this optional field is missing, then no flat kick command should be
  // sent. If this field is present along with the flat_kick field, the
  // flat_kick command takes precedence.
  optional float chip_kick = 6;

  // Desired dribbler spin, from -1 to +1, where -1 is the maximum reverse-spin
  // that can be imparted to the ball, and +1 is the maximum forward-spin
  // that can be imparted to the ball.
  optional float dribbler_spin = 7;
}

Source Code

Source code for the defined protobufs, and sample RST and RCT executables, is available on GitHub.

Scoring

Both teams, the RST and the RCT are awarded the specified number of points each for every skill from the following list that they perform:

  1. Driving a single robot in a straight line along the length of the field twice, from touching one goal line to the other goal line at the other end of the field, and back, along the middle of the field. (1 point)
  2. Intercepting a moving ball travelling at ≥ 1 m/s, and bringing it to a stop. (1 point)
  3. Scoring a goal against a stopped defense consisting of centrally placed goalie and 2 defenders. (1 point)
  4. Scoring a goal against a stopped defense consisting of centrally placed goalie and 2 defenders by a one-touch (deflection) kick of a moving ball travelling at >= 1m/s. (2 points)
  5. Scoring a goal on the stopped defense after a pass between two robots. (1 points)
  6. Scoring a goal on a moving 3-robot defense after a pass between two robots. (2 points)

The Skills will be evaluated as follows:

  • For the skills involving moving balls, the ball will be rolled in by a human from the goal line towards the center of the field.
  • For the skills involving scoring goals, the trials are started from game off state with the ball at the center of the field.
  • For direct goal scoring, a force start referee command will be sent. For indirect goal scoring with passes, an indirect free kick referee command will be sent.
  • Points are scored only once per skill. No additional points are awarded for repeating a skill, either to the RST, or RCT, with the same, or any other RST-RCT pairing.
  • The RST team will be monitoring the computer, commands sent, and the robots, and may, at their discretion, abort the communication and end the trial at any time.
  • The RCT and RST must both take appropriate precautions to maintain safety of the robots, and are expected to partake in the challenge in fair spirit. The RCT will not be held liable for any possible damage to the RST’s robots.

Procedure

Order of the challenge demonstrations, and pairings: [To Be Determined]