The RoboCup 3D Simulated Soccer League allows software agents to control humanoid robots to compete against one another in a realistic simulation of the rules and physics of a game of soccer. The platform strives to reproduce the software programming challenges faced when building real physical robots for this purpose. In doing so, it helps research towards the RoboCup Federation's goal of developing a team of fully autonomous humanoid robots that can win against the human world soccer champion team in 2050.[1]
The first version of the 3D server was released on 2003-12-30,[2] after an initial proposal presented at the 2003 RoboCup symposium.[3]
The simulation is executed in the RoboCup Simulated Soccer Server 3D (rcssserver3d) which runs on Linux, Windows and Mac OS X. The underlying simulation engine is SimSpark.
Agents are controlled by external processes. The competition's rules dictate that each agent must be a separate process, though there is no technical restriction for this. Agents communicate with the soccer server via TCP, by default on port 3100. Inter-process communication is otherwise forbidden. Agents may talk to one another, but only through the server which imposes certain restrictions on the distance and amount of information that may be sent.
The server sends game and agent state information to each agent. In response, the agent sends commands to the simulation that control the movement of the agent's body. Messages are sent using Lisp-like S-expressions in single-byte ASCII, prefixed by a 32-bit unsigned integer representing the length of the following string.
The simulation server does not have a GUI of its own. Instead, a dedicated monitor application connects to the server via TCP port 3200 and receives information about the state of play. The standard monitoring application is rcssmonitor3d which is additionally capable of replaying log files from recorded matches. RoboViz is a newer Java-based monitoring application with extended 3D graphical and debugging capabilities.
The SimSpark simulation system is a generic simulator, capable of simulating different agent models.[4] In its history, the 3D league has used different models.
Changing of models represents progress simulating an improved approximation of a real robot. However, when models change, existing teams must rework their agents to control the new bodies.
The first agent model used in the 3D league was the Soccerbot, which was based on the HOAP-2 by Fujitsu. As the first RoboCup 3D model, teams were primarily concerned with balance and basic mobility. Consequently, this agent model is not as fully featured as a human-sized biped soccer playing robot would be.[5] For example, Soccerbot has an omni-directional camera mounted in the torso and consequently the head is fixed. Similarly the hip joints are restricted to rotations around perpendicular axes.
Soccerbot was also designed within certain limitations of the simulation system at the time.[5] As the simulator became more robust, more sophisticated robot models were possible.
The current robot model used in competitions is based on the Nao robot by Aldebaran Robotics. It has 22 hinges to control the motion of its body.
Nao has a directional camera mounted in the head. The head can rotate through two degrees of freedom, ranging -120 to 120 degrees left-to-right, and -45 to 45 degrees down-to-up. The camera has a field of view 120 degrees wide.
Nao also has a more complex hip structure.
The Nao robot player is equipped with various perceptors:
The simulation platform, SimSpark is capable of extension via custom perceptors, but this is not allowed in competitions.