92 lines
2.8 KiB
Markdown
92 lines
2.8 KiB
Markdown
# Apollo Mujoco base code for training on GPU
|
||
|
||
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.11
|
||
|
||
- Any Python dependency manager can be used, but **either Poetry is recommended**.
|
||
|
||
### Install Dependencies
|
||
The project dependencies are listed inside pyproject.toml
|
||
|
||
- IsaacLab and IsaacSim
|
||
```bash
|
||
# Create a virtual environment using one of the package managers:
|
||
|
||
conda create -n env_isaaclab python=3.11
|
||
conda activate env_isaaclab
|
||
|
||
# Ensure the latest pip version is installed.
|
||
# To update pip, run the following command from inside the virtual environment:
|
||
|
||
pip install --upgrade pip
|
||
# Install the Isaac Lab packages along with Isaac Sim:
|
||
|
||
pip install isaaclab[isaacsim,all]==2.3.2.post1 --extra-index-url https://pypi.nvidia.com
|
||
# Install a CUDA-enabled PyTorch 2.7.0 build for CUDA 12.8 that matches your system architecture:
|
||
|
||
pip install -U torch==2.7.0 torchvision==0.22.0 --index-url https://download.pytorch.org/whl/cu128
|
||
|
||
# To use rl_games for training and inferencing, install its Python 3.11 enabled fork:
|
||
|
||
pip install # rl_games or rsl_rl or stable-baselines3 based on your model
|
||
```
|
||
|
||
## 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>
|
||
```
|
||
|
||
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]
|
||
```
|
||
|
||
|
||
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>
|
||
```
|
||
|
||
Once binary generation is finished, the result will be inside the build folder, as ```<team-name>.tar.gz```
|
||
|
||
### 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.
|