jjh 34f74c3005 架构改进:头部追踪 + 球过时检测 + 球员独占 + 定位球处理
头部追踪:
- 球可见时 he1/he2 追踪球方位,球不可见时左右扫描
- 在技能执行后、commit_motor_targets_pd 前覆盖头部电机目标

球位置过时检测:
- world.py 新增 ball_age property 和阈值常量
- 球消失 ≥3s 时外场球员原地旋转搜索,门将不再基于过期信息拦截

最近球员独占:
- 每个 agent 自行判断是否离球最近(视觉队友位置 + 0.5m 死区防抖)
- 最近球员执行 carry_ball,其他球员走到编号对应的支援站位

定位球基础处理:
- THEIR_KICK 时外场球员退到中圈半径外防守位,面朝球
- OUR_KICK 时最近球员上前踢球,其他人进攻支援位

决策层重构:
- update_current_behavior 外场分支拆分为 playmode_group 判断
- 新增 _outfield_decide / _am_i_nearest_to_ball / support_position / _defensive_set_piece
2026-04-02 21:38:28 +08:00
2026-03-10 09:35:27 -04:00
2026-03-10 09:35:27 -04:00
2026-03-10 09:35:27 -04:00
2026-03-10 09:35:27 -04:00
2026-03-20 02:33:44 -04:00

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 (111) (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 current rcssservermj default 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.

Description
No description provided
Readme 966 KiB
Languages
Python 97.1%
Shell 2.9%