RoboCup is an international competition aimed at advancing autonomous robotics and AI through tasks like soccer and rescue. The RoboCup Soccer Simulation 2D league focuses on developing intelligent agents that play soccer in a simulated 2D environment. This league is ideal for testing and developing AI and ML algorithms, including reinforcement learning and multi-agent systems. more details
To run a game in the RoboCup Soccer Simulation 2D, you need to operate the rcssserver for hosting games, rcssmonitor to display them, and engage 12 agents (11 players and a coach) per team. Each cycle, agents receive data from the server and must execute actions such as dash and kick.
Developing a team can be complex due to the environment's intricacy, typically necessitating C++ programming. However, our framework allows for development in other languages by leveraging the helios-base features. By using SoccerSimulationProxy, you can develop a team in any language supported by gRPC or Thrift, such as C#, C++, Dart, Go, Java, Kotlin, Node.js, Objective-C, PHP, Python, and Ruby.
To use gRPC, you can check out our gRPC server, which is based on proto messages and gRPC services. This server provides a helpful base to get more familiar with the gRPC implementation.
To use Thrift, you can check out our thrift server, which is based on proto messages and thrift services. This server provides a helpful base to get more familiar with the thrift implementation.
This allows you to focus on developing your team's strategy and AI algorithms without worrying about the server's underlying complexity.
Check our wiki to be more familier with messages and services.
If you would like to develop a team or conduct research using Python, C#, or JavaScript, you can check the following links:
- Playmaker-Server-Python-grpc
- Playmaker-Server-Python-thrift
- Playmaker-Server-CSharp
- Playmaker-Server-NodeJs
To find more information about the framework, you can visit the CLSFramework Wiki Pages
This new base code is powered by Helios-Base and gRPC, designed to assist researchers in developing a Soccer Simulation 2D team or conducting research in this area. It supports development in any language compatible with gRPC.
To use this framework, follow the steps below in order:
The rcssserver hosts the game. You can follow the instructions for setting it up in the RoboCup Soccer Simulation Server Wiki.
Next, run one of the sample Playmaker Servers, such as this gRPC Server, to receive information from the agents and send appropriate actions back to the game.
Now, run the Soccer Simulation Proxy to connect to the rcssserver and handle information exchange between agents and the server. You can do this using AppImage, Docker, or by building from source.
Here, we’ll explain how to run the Soccer Simulation Proxy using AppImage
For more information on using Docker or building from source, visit the CLSFramework Wiki Pages.
You can download the AppImage from the release page or use the following command to download the latest version:
wget $(curl -s "https://api.github.com/repos/clsframework/soccer-simulation-proxy/releases/latest" | grep -oP '"browser_download_url": "\K[^"]*' | grep "soccer-simulation-proxy.tar.gz")
After downloading, extract the tar.gz file:
tar -xvf soccer-simulation-proxy.tar.gz
After downloading, you can run the proxy:
cd SoccerSimulationProxy
./start.sh
If you want to connect the proxy to a grpc server change this parameter to grpc
in start.sh file.
rpc_type="thrift"
To watch the game, you can use either of the following:
- rcssmonitor: A tool to visualize the game.
- SoccerWindow2: Another visualization tool for RoboCup Soccer Simulation.
For instructions on how to run rcssmonitor, check the Soccer Simulation Monitor Wiki.
The paper about HELIOS Base:
- Hidehisa Akiyama, Tomoharu Nakashima, HELIOS Base: An Open Source Package for the RoboCup Soccer 2D Simulation, In Sven Behnke, Manuela Veloso, Arnoud Visser, and Rong Xiong editors, RoboCup2013: Robot World XVII, Lecture Notes in Artificial Intelligence, Springer Verlag, Berlin, 2014. http://dx.doi.org/10.1007/978-3-662-44468-9_46
- Cross Language Soccer Framework
- Zare, N., Sayareh, A., Sadraii, A., Firouzkouhi, A. and Soares, A., 2024. Cross Language Soccer Framework: An Open Source Framework for the RoboCup 2D Soccer Simulation. arXiv preprint arXiv:2406.05621.