Skip to content

Commit ae81de6

Browse files
authored
Merge pull request #15 from CLSFramework/change_readme
add thrift idle and change the picture in readme
2 parents 57101cc + fffa53c commit ae81de6

File tree

1 file changed

+57
-35
lines changed

1 file changed

+57
-35
lines changed

README.md

Lines changed: 57 additions & 35 deletions
Original file line numberDiff line numberDiff line change
@@ -5,65 +5,82 @@ RoboCup is an international competition aimed at advancing autonomous robotics a
55

66
![image](https://github.com/Cross-Language-Soccer-Framework/cross-language-soccer-framework/assets/25696836/7b0b1d49-7001-479c-889f-46a96a8802c4)
77

8+
To run a game in the **RoboCup Soccer Simulation 2D**, you need to operate the [rcssserver](https://github.com/rcsoccersim/rcssserver) for hosting games, [rcssmonitor](https://github.com/rcsoccersim/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.
89

9-
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 other languages development, leveraging the helios-base features. By using SoccerSimulationProxy, you can develop a team in any language supported by gRPC, such as C#, C++, Dart, Go, Java, Kotlin, Node, Objective-C, PHP, Python, and Ruby. You just need to develop a gRPC server based on proto messages and gRPC services ([protofile](https://github.com/CLSFramework/soccer-simulation-proxy/blob/master/grpc/protos/service.proto), check [wiki](https://github.com/CLSFramework/cross-language-soccer-framework/wiki/Protobuf) to be more familier with messages and services) to receive data from the SoccerSimulationProxy and send actions back to it. This way, you can focus on developing your team's strategy and AI algorithms without worrying about the server's complexity. If you would like to develop a team or research in this area by using Python, C# or JavaScript you can check the following links:
10-
- [Playmaker-Server-Python](https://github.com/CLSFramework/playmaker-server-python)
10+
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](https://github.com/helios-base/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**.
11+
12+
To use **gRPC**, you can check out our [gRPC server](https://github.com/CLSFramework/sample-playmaker-server-python-grpc), which is based on proto messages and gRPC services. This server provides a helpful base to get more familiar with the gRPC implementation.
13+
14+
To use **Thrift**, you can check out our [thrift server](https://github.com/CLSFramework/sample-playmaker-server-python-thrift), which is based on proto messages and thrift services. This server provides a helpful base to get more familiar with the thrift implementation.
15+
16+
This allows you to focus on developing your team's strategy and AI algorithms without worrying about the server's underlying complexity.
17+
18+
Check our [wiki](https://github.com/CLSFramework/cross-language-soccer-framework/wiki/Protobuf) to be more familier with messages and services.
19+
20+
![image](https://github-production-user-asset-6210df.s3.amazonaws.com/25696836/364993436-4daee216-1479-4acd-88f2-9e772b8c7837.jpg?X-Amz-Algorithm=AWS4-HMAC-SHA256&X-Amz-Credential=AKIAVCODYLSA53PQK4ZA%2F20240923%2Fus-east-1%2Fs3%2Faws4_request&X-Amz-Date=20240923T175355Z&X-Amz-Expires=300&X-Amz-Signature=f985fcc6c8a34d6db99f322fd5f3a0dacee317097dd5519329ea3bdb7cb5d818&X-Amz-SignedHeaders=host)
21+
22+
23+
If you would like to develop a team or conduct research using **Python**, **C#**, or **JavaScript**, you can check the following links:
24+
25+
- [Playmaker-Server-Python-grpc](https://github.com/CLSFramework/sample-playmaker-server-python-grpc)
26+
- [Playmaker-Server-Python-thrift](https://github.com/CLSFramework/sample-playmaker-server-python-thrift)
1127
- [Playmaker-Server-CSharp](https://github.com/CLSFramework/playmaker-server-csharp)
1228
- [Playmaker-Server-NodeJs](https://github.com/CLSFramework/playmaker-server-nodejs)
1329

14-
![image](https://github.com/Cross-Language-Soccer-Framework/cross-language-soccer-framework/assets/25696836/d152797b-53f0-490f-a8dd-b8c0ef667317)
15-
1630
To find more information about the framework, you can visit the [CLSFramework Wiki Pages](https://github.com/CLSFramework/cross-language-soccer-framework/wiki)
1731

1832

19-
![Screenshot 2024-04-07 012226](https://github.com/Cyrus2D/SoccerSimulationProxy/assets/25696836/abb24e0c-61b9-497d-926f-941d1c90e2ee)
20-
21-
This new base code is powered by Helios-Base code and gRPC to help researcher developing a soccer simulation 2D team or researching in this area by using any languages supported by gRPC:
22-
- [C#](https://grpc.io/docs/languages/csharp/)
23-
- [Playmaker-Server-CSharp](https://github.com/CLSFramework/playmaker-server-csharp)
24-
- [C++](https://grpc.io/docs/languages/cpp/)
25-
- [Dart](https://grpc.io/docs/languages/dart/)
26-
- [Go](https://grpc.io/docs/languages/go/)
27-
- [Java](https://grpc.io/docs/languages/java/)
28-
- [Kotlin](https://grpc.io/docs/languages/kotlin/)
29-
- [Node](https://grpc.io/docs/languages/node/)
30-
- [Playmaker-Server-NodeJs](https://github.com/CLSFramework/playmaker-server-nodejs)
31-
- [Objective-C](https://grpc.io/docs/languages/objective-c/)
32-
- [PHP](https://grpc.io/docs/languages/php/)
33-
- [Python](https://grpc.io/docs/languages/python/)
34-
- [Playmaker-Server-Python](https://github.com/CLSFramework/playmaker-server-python)
35-
- [Ruby](https://grpc.io/docs/languages/ruby/)
3633

34+
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.
3735
## How To Use it?
3836

39-
To use this framework, you need to run rcssserver to host a game, run SoccerSimulationProxy (Agents) to connect to the rcssserver to receive information and send actions, and run Playmaker-Server (gRPC-Server) to receive information from agents and send appropriate actions back. To watch the game, you can run rcssmonitor or SoccerWindow2.
37+
To use this framework, follow the steps below in order:
4038

41-
To run the rcssserver and rcssmonitor, you can follow the instructions in the [rcssserver](https://github.com/CLSFramework/cross-language-soccer-framework/wiki/RoboCup-Soccer-Simulation-Server) and [rcssmonitor](https://github.com/CLSFramework/cross-language-soccer-framework/wiki/Soccer-Simulation-Monitor).
39+
### 1. Start the **rcssserver**
40+
The **rcssserver** hosts the game. You can follow the instructions for setting it up in the [RoboCup Soccer Simulation Server Wiki](https://github.com/CLSFramework/cross-language-soccer-framework/wiki/RoboCup-Soccer-Simulation-Server).
4241

43-
To run the SoccerSimulationProxy, there are some different ways such as using Docker, building from source, or using AppImage.
42+
### 2. Run the **Playmaker-Server**
43+
Next, run one of the sample Playmaker Servers, such as this [gRPC Server](https://github.com/CLSFramework/sample-playmaker-server-python-grpc), to receive information from the agents and send appropriate actions back to the game.
4444

45-
In this page, we will explain how you can run the SoccerSimulationProxy by using AppImage. To find more information about building from source or using Docker, you can visit the [CLSFramework Wiki Pages](https://github.com/CLSFramework/cross-language-soccer-framework/wiki/Soccer-Simulation-Proxy).
45+
### 3. Set up the **Soccer Simulation Proxy**
46+
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.
4647

47-
## Use AppImage (Linux, WSL)
48+
Here, we’ll explain how to run the Soccer Simulation Proxy using AppImage
4849

49-
### Download
50-
You can download the AppImage of the Soccer Simulation Proxy from the [release page](https://github.com/CLSFramework/soccer-simulation-proxy/releases).
50+
For more information on using Docker or building from source, visit the [CLSFramework Wiki Pages](https://github.com/CLSFramework/cross-language-soccer-framework/wiki/Soccer-Simulation-Proxy).
5151

52-
Or download the latest version by using the following command:
53-
```bash
54-
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")
55-
```
52+
### AppImage
5653

57-
### Extract
54+
#### 1. Download the AppImage
55+
You can download the AppImage from the [release page](https://github.com/CLSFramework/soccer-simulation-proxy/releases) or use the following command to download the latest version:
56+
```bash
57+
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")
58+
```
59+
### 2. Extract the AppImage
60+
After downloading, extract the tar.gz file:
5861
```bash
5962
tar -xvf soccer-simulation-proxy.tar.gz
6063
```
61-
62-
### Run
64+
### 3. Run the Proxy
65+
After downloading, you can run the proxy:
6366
```bash
6467
cd SoccerSimulationProxy
6568
./start.sh
6669
```
70+
If you want to connect the proxy to a grpc server change this parameter to `grpc` in start.sh file.
71+
```bash
72+
rpc_type="thrift"
73+
```
74+
### 4. Watch the Game
75+
To watch the game, you can use either of the following:
76+
77+
- **[rcssmonitor](https://github.com/rcsoccersim/rcssmonitor)**: A tool to visualize the game.
78+
- **[SoccerWindow2](https://github.com/helios-base/soccerwindow2)**: Another visualization tool for RoboCup Soccer Simulation.
79+
80+
For instructions on how to run **rcssmonitor**, check the [Soccer Simulation Monitor Wiki](https://github.com/CLSFramework/cross-language-soccer-framework/wiki/Soccer-Simulation-Monitor).
81+
82+
![Screenshot 2024-04-07 012226](https://github.com/Cyrus2D/SoccerSimulationProxy/assets/25696836/abb24e0c-61b9-497d-926f-941d1c90e2ee)
83+
6784

6885
## References
6986

@@ -73,3 +90,8 @@ Package for the RoboCup Soccer 2D Simulation, In Sven Behnke, Manuela
7390
Veloso, Arnoud Visser, and Rong Xiong editors, RoboCup2013: Robot
7491
World XVII, Lecture Notes in Artificial Intelligence, Springer Verlag,
7592
Berlin, 2014. http://dx.doi.org/10.1007/978-3-662-44468-9_46
93+
94+
# Citation
95+
96+
- [Cross Language Soccer Framework](https://arxiv.org/pdf/2406.05621)
97+
- 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.

0 commit comments

Comments
 (0)