Welcome to the Standard Platform League’s (SPL) Getting Started page. The purpose of this page is to help prospective teams to participate in the league and contribute to the scientific goals of the RoboCup Federation. Each year, the RoboCup Federation hosts a worldwide competition and conference. For example, in 2023 RoboCup is being held in Bordeaux, France. Regional RoboCup Opens take place annually in various locations around the world and are excellent opportunities to prepare for the worldwide RoboCup competition.
Motivation and Objectives
As per the RoboCup Federation’s stated objectives, the ultimate goal is to field a team of robots against a world class human soccer team by around 2050. The purpose of this is to promote robotics and AI research with a publicly appealing but formidable challenge. The challenge goal is high enough that a series of technical breakthroughs is necessary to solve it and the set of technologies necessary to accomplish the goal should ideally contribute to developments outside of robot soccer. Since the defining characteristic of the Standard Platform League is that all teams use the same hardware, the main purpose of the league is to foster research of topics in the software domain of robotics, some of which are listed below:
- Robust biped motions for walking, getting up after falls, kicking, and other motions.
- Real-time visual perception of objects and features of interest using limited computing power and efficient algorithms.
- Self-Localisation on a football field without additional aids. More generally, localisation in an environment with sparse and non-unique features.
- Individual and coordinated multi-agent decision making in the face of incomplete and noisy data.
- Inter-robot communication and human-robot-interaction, including spatially limited communications and responding to sound and gesture cues.
Participation in the league requires teams to contribute to the SPL and the goals of RoboCup. This contribution can be research publishable or of equivalent scale and quality and must be applied to game-critical modules as described in the SPL rules. Such contributions are a qualification requirement for the league.
Organisation of the League
Within the SPL community, the Technical Committee (TC) is responsible for maintaining the league’s rules as well as, for each annual RoboCup event, overseeing the qualification process and setting the technical challenges that make up an important part of the competition. The Organising Committee (OC) is responsible for organising and then administering each annual RoboCup event. These committees can be reached via the following mailing lists:
- SPL Technical Committee: firstname.lastname@example.org
- SPL Organising Committee: email@example.com
- Subscribe to the robocup-nao mailing list ‐ this is where upcoming events are announced.
- You should also subscribe to the robocup-worldwide mailing list to receive RoboCup announcements that are not specific to the SPL ‐ sometimes these are also relevant.
- Ask the OC (firstname.lastname@example.org) for an invitation to our Discord server. This is used for communication within the SPL community, and you will certainly find people to answer your questions about joining the league.
- Glance over the rule book (no need to know every detail yet).
- Watch some videos of previous games (e.g. 2022 final, 2019 final, 2018 final) to get an impression of the technical level the league is at.
Preparing for Competitions
This section outlines some of the milestones that should be achieved to reach a level at which participating in a tournament would be feasible.
- Building a team
There are several ways to get students involved, e.g. as members of a (voluntary) student association or through academic courses or projects in which credits can be gained. In general, team members must be at least 18 years old at the time they participate in the competition.
While numbers do matter, experience and continuity are also key factors towards building a successful team. Therefore, recruiting members that can stay in the team for a long time (e.g. graduate students) and / or having an experienced academic supervisor can be very beneficial.
It’s also important not to underestimate the organisational efforts in running a team ‐ non-computer-science people can also be very helpful.
- Buying equipment
In order to get ready for competitions, your team will need the following items:
- NAO robots
A team consists of five players, but as robots sometimes break, it is advisable to have more than that. Teams that are already qualified for RoboCup can benefit from a discount from SoftBank. The additional costs for warranty extensions and/or repairs should also be accounted for during budget planning.
- Robot jerseys
See section 2.2 of the rule book.
You will want to buy multiple balls as the paint quickly wears off. For information on where to purchase balls that comply with the specifications, see section 1.5 of the rule book.
- A field with goals
You will need a space (e.g. a lab room) with a field and goals to test your code in an environment resembling that of actual events. If you do not have room for a full-size 9×6 m field, a frequently used alternative is to have a small permanent field in your lab, and a larger “mobile” field that can be temporarily set up.
- Network equipment (WiFi router, LAN cables)
- NAO robots
- Learn the soccer rules / train refereeing
- Every team participating in RoboCup has to provide referees for some games as indicated in section A.5 of the rule book. The duties of the different kinds of referees are explained in section 5 of the rule book.
- The rule book is sometimes updated during the year, so both your software and your referees need to adapt.
- Familiarise with the state of the art
- Have a look at the publications page and the team reports which are linked in many teams’ entries on the teams page on the SPL website.
- Check out the open source contributions and datasets published by other teams.
- The proceedings of all RoboCup symposia can be found on SpringerLink. There is, however, no easy way to filter them for relevance to the SPL.
- Developing your own software
You can decide whether to develop everything from scratch or build on another team’s code base.
On the one hand, by building a new software stack from ground up, you will have a complete understanding of its inner workings, but you are likely to spend quite some time on problems that others have already solved.
On the other hand, if you adopt an existing framework you won’t need to implement most low level functionality, but getting familiar with it might also take a long time. In any case, using code open sourced by the community even just as reference is generally a good idea.
RoboCup teams can get a special NAO OS image with root access. Ask the TC for a link. They can also provide you with documentation about the RoboCup interface to LoLA (NAO’s low level abstraction). Some resources about the hardware of NAO V6 are listed on the SPL’s V6 support page.
All of the above can take a long time, in the order of magnitude of a year. When applying for the RoboCup World Championship (see below), you will need to provide an overview of the research output and/or new features that you are going to implement and deploy. While these do not have to be ready by the application deadline, qualification depends on how much you can convince the TC that you will be able to deploy them during games at the competition. This has to be factored in when planning when to apply for RoboCup.
Regional open competitions (i.e. not requiring qualification) are a great way to gather experience, often at a lower cost than participating in the World Cup. Results and video footage from such an event are a good way to convince the TC in an application that your team will be able to compete. Participating in an official RoboCup regional open event can also qualify a team for special robot pricing from SoftBank Robotics. Whether and how this is possible is announced in the call for participation (see below).
You will find upcoming events on the RoboCup website and usually announcements are made on the robocup-worldwide and/or robocup-nao lists. Also see the this page for a (non-exhaustive) list of past events.
In addition, some teams organise workshops to share knowledge between teams. These events are not endorsed by the RoboCup Federation and do not host a tournament, but provide an opportunity to exchange ideas, present your work or learn about other groups’ work. Recently, these workshops have been conducted online, such that teams from all over the world can participate. These events provide a great opportunity for new teams to learn about the league and get to know other teams.
The World Championship
The annual RoboCup World Championship usually takes 7 days (including set-up days and symposium) between mid-June and late July.
The RoboCup “season” starts with the publication of the call for participation (CfP) via the website and mailing lists in late November or December in the year before the corresponding event. A first draft of the rule book for the competition is usually published around the same time.
The CfP is the authoritative document about the requirements to qualify for RoboCup in a given year. It outlines the overall structure of the competition (i.e. how many teams can be qualified, which sub-competitions there are, etc.) and the qualification process, including deadlines. When writing your application, make sure to adhere to the given requirements (e.g. regarding length and structure) and directly address the points that the CfP asks for.
Pay special attention to the rules regarding code usage (section A.1 of the rule book) and clearly state which foreign code you are using. Whether your code is based on another team’s released code or not, it must contain a major game critical component that is of your own development (examples for this are given in section A.1, too). The application must convince the TC that this component will be ready and used at RoboCup.
The CfP usually also requires an application video that focusses on your own developments ‐ it is not relevant to show the features of another team’s released code. Usually, the video must include an uncut scene of an autonomous kick-off and subsequent goal shot. Footage from the participation in regional opens is also helpful.
The application deadline is usually 1-2 months after the CfP has been published (i.e. in February). The TC will review the applications and announce their decision around the end of February. The TC may create a ranked list of alternate teams in case some of the qualified teams withdraw later. In their reply to the application, the TC will ask teams to confirm their participation by some deadline, in order to contact alternate teams in case of a withdrawal and to work on the tournament setup using the final number of teams. Withdrawing after this deadline will negatively affect future applications. Withdrawing or not showing up at RoboCup / a local event also invalidates any robot discount by SoftBank that has been conditioned on participation in that event.
Once qualified, teams must register the team itself and each participant for the competition according to instructions given by the TC. For RoboCup 2022, the early registration fees in USD were as follows:
Often, the RoboCup Federation waives the team registration fee for new teams. This does not affect the registration fee for the individual members, though.
When determining the number of persons to attend, consider that two of your team members will occasionally have to referee other games. While the schedule tries to avoid refereeing duties during an own game, participating with less than three people is extremely hard.
Organising the journey to the World Cup venue is up to you. Sometimes, there are special accomodation offers for RoboCup participants (announced e.g. on the competition website or in a newsletter for registered participants). However, the RoboCup Federation does not provide financial travel support.
If RoboCup is in a country which requires invitation letters for visa applications, RoboCup will usually provide those after registration.
You should hold regular practice matches ahead of a RoboCup competition. This helps discovering bugs and trains your refereeing skills and usage of the GameController application.
- Each team gets their own team area ‐ usually a table (for small teams this may be shared with other teams) with chairs, a power outlet and a single ethernet cable for internet access.
- This means you must bring your own power adapters, batteries, chargers, and network equipment (router, switches, ethernet cables).
- The only equipment that is allowed to use wireless communications are the robots, so your router must be configured properly.
- The internet connection at RoboCup can be unstable. Having a local backup server with your code repository etc. is a good idea.
- At RoboCups, the SPL has a number of similarly set-up fields, but in different locations, e.g. some might be located next to windows, and they have different wireless access points. Your software must be easily configurable to switch between fields.
- Generally, the fields, goals, lighting, wireless network settings, etc. will differ from your testing conditions at home, so don’t expect everything to work out of the box when you arrive. On the other hand, you can only book fields (or parts thereof) for a limited time (usually field halfs for 15 minutes) in order to do tests on site. You can also book a field together with another team to play practice matches.
- (Usually) SoftBank Robotics is on site and repairs robots, but there is no guarantee they can fix a robot in time for a game. To always be able to play with a full team, you need to bring more than 5 robots.
- Attend the symposium if you can.