103 lines
2.7 KiB
Markdown
103 lines
2.7 KiB
Markdown
# Apollo Mujoco base code for training on CPU
|
||
|
||
This is a Python-based base code developed for the RCSSServerMJ. It was created to simplify the onboarding process for new teams joining the RoboCup 3D Soccer Simulation League using the Mujoco Simulator.
|
||
|
||
This code was influenced by the early demonstrations from MagmaOffenburg team of a client for the RCSSServerMJ, and the FCPortugal base code for the SimSpark simulator.
|
||
|
||
## Installation
|
||
|
||
### Make sure the following are installed on your system:
|
||
|
||
- Python ≥ 3.13
|
||
- Any Python dependency manager can be used, but **either Poetry is recommended**.
|
||
|
||
- **Poetry ≥ 2.0.0** ([Installation Guide](https://python-poetry.org/docs/#installing-with-pipx))
|
||
|
||
### Install Dependencies
|
||
The project dependencies are listed inside pyproject.toml
|
||
|
||
Using **Poetry**:
|
||
```bash
|
||
poetry install
|
||
```
|
||
|
||
## Instructions
|
||
|
||
### Run an agent
|
||
After installing the dependencies and setting up the environment, you can launch a player instance:
|
||
|
||
```bash
|
||
python3 run_player.py -n <player-number> -t <team-name>
|
||
```
|
||
|
||
Using **Poetry**:
|
||
```bash
|
||
poetry run python run_player.py -n <player-number> -t <team-name>
|
||
```
|
||
|
||
CLI parameter (a usage help is also available):
|
||
|
||
- `--host <ip>` to specify the host IP (default: 'localhost')
|
||
- `--port <port>` to specify the agent port (default: 60000)
|
||
- `-n <number>` Player number (1–11) (default: 1)
|
||
- `-t <team_name>` Team name (default: 'Default')
|
||
|
||
|
||
### Run a team
|
||
You can also use a shell script to start the entire team, optionally specifying host and port:
|
||
|
||
```bash
|
||
./start.sh [host] [port]
|
||
```
|
||
|
||
Using **Poetry**:
|
||
```bash
|
||
poetry run ./start.sh [host] [port]
|
||
```
|
||
|
||
CLI parameter:
|
||
|
||
- `[host]` Server IP address (default: 'localhost')
|
||
- `[port]` Server port for agents (default: 60000)
|
||
|
||
### Binary building
|
||
To compete, a binary is needed. It provides a compact, portable version and protects the source code. To create a binary, just run the script ```build_binary.sh```
|
||
|
||
```bash
|
||
./build_binary.sh <team-name>
|
||
```
|
||
|
||
Using **Poetry**:
|
||
```bash
|
||
poetry run ./build_binary.sh <team-name>
|
||
```
|
||
|
||
Once binary generation is finished, the result will be inside the build folder, as ```<team-name>.tar.gz```
|
||
|
||
### GYM
|
||
|
||
To use the gym, you need to install the following dependencies:
|
||
```bash
|
||
pip install gymnasium
|
||
pip install psutil
|
||
pip install stable-baselines3
|
||
```
|
||
|
||
Then, you can run gym examples under the ```GYM_CPU``` folder:
|
||
```bash
|
||
python3 -m scripts.gyms.Walk # Run the Walk gym example
|
||
# of course, you can run other gym examples
|
||
```
|
||
|
||
### Authors and acknowledgment
|
||
This project was developed and contributed by:
|
||
- **Chenxi Liu**
|
||
- **Xuehao Xu**
|
||
|
||
### Thanks for
|
||
- **Alan Nascimento**
|
||
- **Luís Magalhães**
|
||
- **Pedro Rabelo**
|
||
- **Melissa Damasceno**
|
||
|
||
Contributions, bug reports, and feature requests are welcome via pull requests. |