Skip to content

CLS framework simplifies AI and robotics research in the RoboCup Soccer Simulation 2D League by allowing multi-language development via RPC.

License

Notifications You must be signed in to change notification settings

CLSFramework/soccer-simulation-proxy

 
 

Repository files navigation

GitHub license

About

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

image

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.

image

If you would like to develop a team or conduct research using Python, C#, or JavaScript, you can check the following links:

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.

How To Use it?

To use this framework, follow the steps below in order:

1. Start the rcssserver

The rcssserver hosts the game. You can follow the instructions for setting it up in the RoboCup Soccer Simulation Server Wiki.

2. Run the Playmaker-Server

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.

3. Set up the Soccer Simulation Proxy

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.

AppImage

1. Download the AppImage

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")

2. Extract the AppImage

After downloading, extract the tar.gz file:

tar -xvf soccer-simulation-proxy.tar.gz

3. Run the Proxy

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"

4. Watch the Game

To watch the game, you can use either of the following:

For instructions on how to run rcssmonitor, check the Soccer Simulation Monitor Wiki.

Screenshot 2024-04-07 012226

References

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

Citation

  • 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.

About

CLS framework simplifies AI and robotics research in the RoboCup Soccer Simulation 2D League by allowing multi-language development via RPC.

Resources

License

Stars

Watchers

Forks

Packages

No packages published

Languages

  • C++ 93.5%
  • Shell 2.2%
  • M4 1.9%
  • Thrift 1.5%
  • CMake 0.8%
  • Dockerfile 0.1%