RoboCup is an international scientific robot competition in which teams of multiple robots compete against each other. The RoboCup soccer leagues provide platforms for a number of challenges in robotics research, including locomotion, vision, real-time decision making, dealing with partial information, multi-robot coordination and teamwork. In RoboCup, several different leagues exist to emphasize specific research problems by using different kinds of robots and rules. There are different soccer leagues in the RoboCup with different types and sizes of hardware and software: small size, middle size, standard platform league, humanoid, 2D and 3D simulation (Kitano et al., 1997). In the soccer simulation leagues (Akiyama et al., 2015), the emphasis is on multi-robot team work with partial and noisy information, in real-time. Each of the robots is controlled by a separate program that receives sensor information from the simulator as an input, and, asynchronously to sensor input, also decides on a next action that is sent back to the simulator, several times a second. This complexity of the environment, with continuous state and action spaces, together with the opportunity to compete against each other, makes RoboCup soccer an interesting testbed for multi-robot learning among many other applications.
To assist automated learning of team behavior, we provide a large dataset generated using 10 of the top participants in RoboCup 2016 or 2017. While it is possible to use the simulator for robot learning, we also generate additional data that is not normally available from playing other teams directly: We modified the simulator to record data from each robots local perspective, that is, with the restricted views that depend on each robots situation and actions, and also include the sensor noise. In addition, for every step of the game (100 ms), we recorded ground truth information (such as positions and velocities) of all objects on the soccer field, as well as basic actions of each robot. This ground truth information is usually recorded in a logfile, but not available to teams during a match.
To create our dataset, we ran all pairings of the selected teams with 25 repetitions of each game, that is, 1125 games in total. With 11 robots in each team, a single game dataset consists of 22 local views plus a global (ground-truth) view. These views are made available as CSV files (comma-separated values). We also provide the original logfiles that include additional sensors, actions of each robot recorded as text files, and the software we created to patch the simulator and to convert recordings into CSV.
The provided data are useful for various different tasks including imitation learning(e.g., Ben Amor et al., 2013), learning or testing of self-localization (e.g., Olson, 2000)2009), and representation learning for time series data (Michael et al., 2018). The next sections describe the environment, robots, and data in more detail.
2 Description of the environment
The RoboCup Soccer Simulation Server rcssserver (Noda et al., 1998) is the software used for the annual RoboCup competitions that have been held since 1997. It is hosted at github.com/rcsoccersim/. We used the rcssserver version 15.3.0 to create the data for this paper. The simulator implements the (2D) physics and rules of the game, and also handles the interface to the programs controlling each player. By default, players use a 90 degree field of view, and receive visual information every 150 ms. Throughout the game, this frequency can actively be changed by each player individually to 75 ms, 150 ms, or 300 ms, by changing the field of view to 45 degrees, 90 degrees, or 180 degrees, respectively. Visual information is transmitted in the form of (Lisp-like) lists of identified objects, with the level of detail of information depending on object distances. Potential objects include all other players on the field, the ball, and landmarks like goal posts, flags, and side lines. Each player also receives additional status information, including energy levels, referee decisions, and the state of the game, every 100 ms. Each robot can issue parameterized actions every 100 ms, to control its locomotion, the direction of its view, and its field of view. A more detailed description of the information transmitted can be found in the simulator manual (Chen et al., 2003).
3 Overview on the provided data
In robotics, data collections often comprise lidar data recorded by laser scans. This is very useful in many applications, e.g., field robotics, simultaneous localization and mapping (SLAM) (Tong et al., 2013), or specific purposes such as agriculture (Chebrolu et al., 2017). However, in many contexts, there is not only one but several robots which may be observed. The data from RoboCup that we consider here includes information about other robots in the environment and hence about the whole multi-robot system.
Data from multi-agent systems like the RoboCup or the multi-player real-time strategy video game StarCraft (Lin et al., 2017) provide information on (simulated) environments as in robotics. However, in addition, they contain data on other agents and thus lay the basis for machine learning research to analyze and predict agent behavior and strategies, which is important in applications such as service robotics and multi-robot systems in general. To provide a diverse dataset, we include several teams from the last two RoboCup competitions, allowing for different behaviors and strategies.
Perception and behavior of each robot during a game depends on the behavior of all other robots on the field. Game logfiles, that is, files containing ground truth information obtained from recording games, can be produced from the simulator, and are recorded in a binary format. Access to individual player percepts, however, is only possible from within the player code. To learn from behavior of other teams, it is useful to use the exact information that individual players receive, rather than the global (and noise-free) information in recorded logfiles. We therefore modified the simulator to additionally also record all local and noisy information as received by the robots on the field, in individual files for each player. This information is stored in the same format as it is sent to players. We also provide code to translate these individual logs into CSV files that contain relative positions and velocities.
We chose the top-ten teams from the RoboCup 2D soccer simulation world championships 2016 in Leipzig (Germany) and 2017 in Nagoya (Japan) (see Figure 1). Team binaries including further descriptions can be downloaded from: archive.robocup.info/Soccer/Simulation/2D. We played each team against each other team for 25 times, resulting in about 17 GB of data (zipped CSV files). For each game, we record the original logfiles including message logs. We also generate files with ground truth data as well as local player data in human-readable format. Finally, we made our generating scripts available, so that they can be used to reproduce our results or to produce additional datasets using other robotic soccer teams. There is also a smaller subset of 10 games where the top-five teams play against each other once (163 MB CSV files plus 217 MB original logfiles). Our data is available at bitbucket.org/oliverobst/robocupsimdata/.
4 Description of the ground truth data
According to rules of the world soccer association FIFA, a soccer pitch has the size of
. This is adopted for the RoboCup soccer
simulation league. Nevertheless, the physical boundary of the area that may be
sensed by the robots has an overall size of . For the localization of the robot players, the pitch is filled
with several landmark objects as depicted in Fig. 2: flags (f),
which are punctual objects, lines (l), the goal (g), and the penalty area (p).
The origin of the coordinate system is the center point (c). The pitch is
divided horizontally (-direction) into a left (l) and right (r) half and
vertically (-direction) into a top (t) and a bottom (b) half. Additional
numbers (10, 20, 30, 40, or 50) indicate the distance to the origin in meters.
Since every soccer game takes place on the same pitch, there is only one file
with infomation about the landmarks for all games that lists all these
coordinates, given as a table in CSV format, with name
For example, the row
f r t,52.5,34 says that the right top flag of the
pitch has the -coordinates .
Further table files provide information about the respective game. The names of all these files – all naming conventions are summarized in Fig. 3 – contain the names of the competing teams, the final scores for each team, possibly extended by the result of a penalty shootout, a time stamp (when the game was recorded), and some further identifier.
The central SoccerServer (Chen et al., 2003) controls every virtual game with
built-in physics rules. When a game starts, the server may be configured by
several parameters which are collected in one file with the identifier
parameters. For example, the row
ball_decay,0.94 denotes that the
ball speed decreases by the specified factor (cf. Stolzenburg et al., 2002). However, from
a robotics point of view, most of the information in this file is not very
relevant, like the stamina of the robots, the noise model, or the format of the coach
instructions. We thus skip further details here.
A soccer simulation game in the RoboCup 2D simulation league lasts 10 mins in
total, divided into 6000 cycles where the length of each cycle is
100 ms. Logfiles comprise information about the game,
in particular about the current positions of all players and the ball including
their velocity and orientation for each cycle. This information is collected for
the whole game in a table with the identifier
groundtruth. For each time
point, the play mode (e.g. kickoff), the current ball position coordinates and
its velocity is listed. Furthermore, the positions and velocities of each player
of the left (L) and the right (R) team including the goalkeeper (G) is stated.
For example, the column with head
LG1 vx contains the velocity of the
left goalkeeper in -direction. Finally, information about the robots body and
head orientation and their view angle and quality is included. The absolute
direction a player is facing (with respect to the pitch coordinate system) is
the sum of the body and head direction of that player.
5 Description of local player data
The visual sensor of the players reports the objects currently seen. The information is automatically sent to players every sense step with a frequency depending on the player view width and quality; by default it is set to 150 ms. Thus, in addition to the three files mentioned above, 44 more files are available for each game. For each of the altogether 22 robots (ten field players and one goalkeeper per team), two files with local player data is provided, hosting information about where the respective player sees the landmarks and moving objects, respectively.
The file with final identifier
landmarks provides the distances (in
meters) and angles (in degrees) to the respective landmarks relative to the
robot head orientation for each step. Analogously, the file with final
moving provides the actual relative distances and angles to
the ball and all other players. Sometimes the player number or even the team
name is not visible and hence unknown (u) to the robot. In this case, the respective piece of
information is left out. If data is not available at all, then this is marked by
NAN in the respective table element. The server also provides information
about the velocity, stamina, (yellow and red) cards, and the commands (e.g. dash,
turn, or kick) of the robots. In some cases there is also information about the
observed state of other robots available, in particular, whether they are
kicking (k), tackling (t), or are a goalkeeper (g).
The soccer simulator communicates with players using text messages in form of lists, via UDP. As described above, the frequency of these messages is dependent on the width of view that the player selects, one message every 150 ms by default. Every 100 ms, players also receive status information, so-called body messages. These individual messages are not recorded in the simulator logfiles. Developers of teams can implement recording of messages that their own agents receive, but in order to record messages sent to any team, the simulator software had to be modified instead. Our code contains patches to the simulator that allow recording of visual and body messages in individual files for each player. The messages are stored in their original format to keep the amount of additional processing during the game minimal. Playing a game with the modified simulator will result in a number of recorded files:
the visual and body messages (two files for each player). The file names follow the same naming convention as the game data CSV files (cf. Fig. 3), but use the
.rcvsuffix for visual messages and
.rcbfor body messages.
a recording of the game (the ground truth in a binary format), using the suffix
the commands from players as received by the simulator (in plain text), using
.rclas a suffix
To convert visual messages into CSV files, we provide a see2csv.py Python program that translates player visual messages into two files: a CSV file for moving objects (other players and the ball), and a CSV file with perceived landmarks.
To convert the simulator logfile (ground truth) into a CSV file, we provide rcg2csv, a C++ program that is built using the open source librcsc library (see osdn.net/projects/rctools/releases/p3777). Logfiles are recorded at regular intervals of 100 ms. rcg2csv can optionally also store all simulation parameters in an additional CSV file.
We released a large and unique dataset (RoboCupSimData), creating using a tournament of top RoboCup simulation league teams. Creating this dataset required modification of the simulation software. We ran 25 repetitions of 45 matches that last 10 mins, each. The dataset will allow a number of problems to be investigated, from learning and testing approaches to self-localization, predictive world-models, reinforcement learning. In this respect, the dataset shall be useful for the whole robotics community.
The research reported in this paper has been supported by the German Academic Exchange Service (DAAD) by funds of the German Federal Ministry of Education and Research (BMBF) in the Programmes for Project-Related Personal Exchange (PPP) under grant no. 57319564 and Universities Australia (UA) in the Australia-Germany Joint Research Cooperation Scheme within the project Deep Conceptors for Temporal Data Mining (Decorating).
- Akiyama et al. (2015) Akiyama H, Dorer K and Lau N (2015) On the progress of soccer simulation leagues. In: Bianchi RAC, Akin HL, Ramamoorthy S and Sugiura K (eds.) RoboCup 2014: Robot World Cup XVIII. RoboCup International Symposium, Lecture Notes in Computer Science, volume 8992. Springer, pp. 599–610.
- Ben Amor et al. (2013) Ben Amor H, Vogt D, Ewerton M, Berger E, Jung B and Peters J (2013) Learning responsive robot behavior by imitation. In: International Conference on Intelligent Robots and Systems (IROS-2013). pp. 3257–3264.
- Chebrolu et al. (2017) Chebrolu N, Lottes P, Schaefer A, Winterhalter W, Burgard W and Stachniss C (2017) Agricultural robot dataset for plant classification, localization and mapping on sugar beet fields. The International Journal of Robotics Research 36(10): 1045–1052.
- Chen et al. (2003) Chen M, Dorer K, Foroughi E, Heintz F, Huang Z, Kapetanakis S, Kostiadis K, Kummeneje J, Murray J, Noda I, Obst O, Riley P, Steffens T, Wang Y and Yin X (2003) RoboCup Soccer Server — for Soccer Server Version 7.07 and Later. The RoboCup Federation. URL https://sourceforge.net/projects/sserver/files/rcssmanual/manual-7.08.1/manual.pdf.
- Kitano et al. (1997) Kitano H, Asada M, Kuniyoshi Y, Noda I, Osawa E and Matsubara H (1997) RoboCup: A challenge problem for AI. AI Magazine 18(1): 73–85.
- Lin et al. (2017) Lin Z, Gehring J, Khalidov V and Synnaeve G (2017) STARDATA: A StarCraft AI research dataset. CoRR – Computing Research Repository abs/1708.02139, Cornell University Library. URL http://arxiv.org/abs/1708.02139.
- Michael et al. (2018) Michael O, Obst O, Schmidsberger F and Stolzenburg F (2018) Analysing soccer games with clustering and conceptors. In: Akyama H, Obst O, Sammut C and Tonidandel F (eds.) RoboCup 2017: Robot Soccer World Cup XXI. RoboCup International Symposium. Nagoya, Japan: Springer. To appear.
Noda et al. (1998)
Noda I, Matsubara H, Hiraki K and Frank I (1998) Soccer server: A tool for
research on multiagent systems.
Applied Artificial Intelligence12(2–3): 233–250.
- Olson (2000) Olson CF (2000) Probabilistic self-localization for mobile robots. IEEE Transactions on Robotics and Automation 16(1): 55–66.
- Stolzenburg et al. (2002) Stolzenburg F, Obst O and Murray J (2002) Qualitative velocity and ball interception. In: Jarke M, Köhler J and Lakemeyer G (eds.) KI-2002: Advances in Artificial Intelligence – Proceedings of 25th Annual German Conference on Artificial Intelligence, LNAI 2479. Aachen: Springer, pp. 283–298.
- Taylor and Stone (2009) Taylor ME and Stone P (2009) Transfer learning for reinforcement learning domains: A survey. Journal of Machine Learning Research 10: 1633–1685.
- Tong et al. (2013) Tong CH, Gingras D, Larose K, Barfoot TD and Dupuis É (2013) The Canadian planetary emulation terrain 3D mapping dataset. International Journal of Robotics Research URL http://asrl.utias.utoronto.ca/datasets/3dmap/.