References to the male gender in the rules with respect to referees, team members, officials, etc. are for simplification and apply to both males and females.

Goals of the Technical Challenge

Given the goal of preparing Division B teams to participate in Division A, this technical challenge aims to incentive Division B teams to develop one of the skills needed to play a match in Division A. In this case, the challenge is to autonomously place the ball using the robots ("AutoPlacement").

Participation Requirements

All Division B teams are eligible and must participate in this challenge.

Also, this challenge must be performed with real robots, i.e., not using the simulator. In case of any problems regarding access to your labs, please contact the TC/OC.

Procedure

Similarly to the hardware challenges, the Ball Placement Technical Challenge will also be executed using the SSL Hardware Challenge Tool. This challenge is the number 5 in the tool. Therefore, the procedure is as follows:

  • The Game Controller, SSL Vision and at least one Auto Referee must be already running

  • Make sure the game state is First Half or Second Half

  • The SSL Hardware Challenge Tool must be executed with the corresponding json file and challenge number (5)

  • The ball must be placed in the indicated position

  • The robot(s) must be placed on the middle line of the field

  • When all positions are correct, the challenge will start when the user presses Enter

  • A Stop command will be issued for 2 seconds

  • Then, the AutoPlacement command will be issued

The AutoPlacement command includes a game state, which will be BallPlacementBlue, and the requested ball position. Before and after those commands the game is in Stop state, therefore, the robots are allowed to position themselves wherever they want before the placement starts, while following all Stop state rules.

The rules for the AutoPlacement can be found in the rule book. Teams should provide a video stream along with the screen share of the GC, which prints the placement timings. The logs of the challenge can also be recorded through the SSL Log tools and sent to the TC, in case of any technical issues.

The starting and desired positions of the ball can be seen in the Appendix at the end of the document. The positions are formated in a json file similar to the hardware challenges. The "ball" is the starting position, and the "ball_placement" is the position where the ball must be placed.

In scenarios 6 and 7, the ball must be placed with an Y value, such that the robot cannot get between the ball and the wall. Since teams might have different extra space between the field boundaries and the wall, the json file can be edited to match this criteria.

Teams are allowed to use up to 6 robots.

Evaluation

Every team places the ball in the same scenarios, and there are 3 tries per scenario.

In total, there will be 8 scenarios in this challenge. The order of the scenarios will be chosen randomly, just like the hardware challenges.

A point will be awarded for every successfully placed ball. In case of ties, the team that was capable of placing the balls in the least amount of time wins.

The TC reserves the right to change the evaluation procedure.

Appendix A: Scenarios for Ball Placement

Scenario 1

{
    "ball": {
        "pos": [
            -200,
            -1800,
            0
        ]
    },
    "ball_placement": {
        "pos": [
            -200,
            1800,
            0
        ]
    }
}
Interactive

Scenario 2

{
    "ball": {
        "pos": [
            -2200,
            -1500,
            0
        ]
    },
    "ball_placement": {
        "pos": [
            0,
            0,
            0
        ]
    }
}
Interactive

Scenario 3

{
    "ball": {
        "pos": [
            -1000,
            -1500,
            0
        ]
    },
    "ball_placement": {
        "pos": [
            -200,
            -1800,
            0
        ]
    }
}
Interactive

Scenario 4

{
    "ball": {
        "pos": [
            -2900,
            -1900,
            0
        ]
    },
    "ball_placement": {
        "pos": [
            -200,
            1800,
            0
        ]
    }
}
Interactive

Scenario 5

{
    "ball": {
        "pos": [
            -500,
            0,
            0
        ]
    },
    "ball_placement": {
        "pos": [
            -2800,
            1800,
            0
        ]
    }
}
Interactive

Scenario 6

{
    "ball": {
        "pos": [
            -660,
            -2140,
            0
        ]
    },
    "ball_placement": {
        "pos": [
            -2200,
            -1800,
            0
        ]
    }
}
Interactive

Scenario 7

{
    "ball": {
        "pos": [
            -660,
            2140,
            0
        ]
    },
    "ball_placement": {
        "pos": [
            -2200,
            1800,
            0
        ]
    }
}
Interactive

Scenario 8

{
    "ball": {
        "pos": [
            -3050,
            -100,
            0
        ]
    },
    "ball_placement": {
        "pos": [
            -500,
            1800,
            0
        ]
    }
}
Interactive