Bug 修复: - server.py: shutdown/close 顺序修正,加 OSError 保护 - world.py: from dataclasses import Field → from world.commons.field import Field - walk.py: execute() 末尾补 return False - field.py: _resolve_side 根据 is_left_team 动态映射 our/their(修复右队区域判断反向) - math_ops.py: 三个硬编码球门坐标函数加 NotImplementedError 防误用 稳定性改进: - server.py: 连接重试加 time.sleep(1.0) 防 CPU 空转 - world_parser.py + math_ops.py: bare except → except Exception/AttributeError - world_parser.py: 球速计算加 EMA 滤波 (α=0.4) 降低视觉噪声
Apollo Mujoco base code
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)
Install Dependencies
The project dependencies are listed inside pyproject.toml
Using Poetry:
poetry install
Instructions
Run an agent
After installing the dependencies and setting up the environment, you can launch a player instance:
python3 run_player.py -n <player-number> -t <team-name>
Using Poetry:
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')-f <field>Field profile (default:fifa)
Field profiles
There are two supported ways to run Apollo3D:
- Official rules test: use the server with
--rules ssim, and run agents with-f fifa. This matches the currentrcssservermjdefault field for the SSIM rule book. - Apollo custom 7v7: run agents with
-f sim3d_7vs7. This profile is kept for Apollo's custom small-field setup and should not be treated as the official SSIM geometry baseline.
Run a team
You can also use a shell script to start the entire team, optionally specifying host and port:
./start_7v7.sh [host] [port]
Using Poetry:
poetry run ./start_7v7.sh [host] [port]
start_7v7.sh now launches agents explicitly with -f sim3d_7vs7.
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
./build_binary.sh <team-name>
Using Poetry:
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
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.