This tool automates the process of setting up the RoboCup Soccer 2D League environment, installing teams, and configuring dependencies. With a single command, you can get your RoboCup simulation up and running quickly.
- Automated environment setup for RoboCup Soccer 2D League
- Team installation and configuration in one step
- Easy-to-use command-line interface
- Supports multiple teams and configurations
- Works on Linux-based systems
- Git: Ensure Git is installed on your system.
- Python 3.x: The tool uses Python scripts for automation.
- Install git, Python3, pip, and git-lfs
sudo apt-get install -y git python3 python3-pip git-lfs
- Install/upgrade gdown via pip (the apt package is too old for folder downloads):
python3 -m pip install --upgrade gdown
- Clone this repository:
git clone https://github.com/omusymcomp/rcsssetup.git
- Set up the environment:
Use the script to install everything necessary to run RoboCup Soccer 2D League:
cd rcsssetup python3 setup.py
Users of WSL2 may have some problems during the installation. One workaround is described in the following:
- It is better to update the apt repository as the first command
sudo apt update; sudo apt upgrade
This tool provides several command-line options to control the setup and installation process.
-
-d <BASE_DIR_PATH>or--base_dir <BASE_DIR_PATH>- Description: Specify the base directory for setting up the environment.
- Default:
$HOME/rcss - Example:
python3 setup.py -d /path/to/your/directory
-
-t <INSTALL_TARGET>or--install_target <INSTALL_TARGET>-
Description: Specify the target to install.
allinstalls everything,minisetupinstalls the minimal setup required to run the simulation. For individual tools or teams, choose from the following:all: Installs all tools and teamsminisetup: Installs only the minimal setup required to run the simulationtools: Installs only the toolsteams: Installs only the teamslibrcsc: Installslibrcscrcssserver: Installsrcssserversoccerwindow2: Installssoccerwindow2rcssmonitor: Installsrcssmonitorloganalyzer3: Installsloganalyzer3helios_base: Installshelios_base
-
Default:
all -
Example:
python3 setup.py -t all python3 setup.py -t librcsc
-
-
--upgrade_packages- Description: Upgrade packages before compilation.
- Example:
python3 setup.py --upgrade_packages
-
--is_installation_of_essential_packages- Description: Specify if you want to install essential packages before compilation.
- Example:
python3 setup.py --is_installation_of_essential_packages
-
--add_environment_variable- Description: Add environment variables. This is required during the initial setup.
- Example:
python3 setup.py --add_environment_variable
-
-j <NUM_JOBS>or--jobs <NUM_JOBS>-
Description: Specify the number of jobs to run simultaneously during compilation. This option directly sets the make -j parameter, allowing for faster compilation by using multiple CPU cores.
-
Example:
python3 setup.py -j 4
-
-
-hor--help-
Description: Display the help message for the setup script. This shows the available options and their descriptions.
-
Example:
python3 setup.py -h
-
$HOME
└ rcss
├ tools
│ ├ librcsc
│ ├ rcssserver
│ ├ rcssmonitor
│ ├ soccerwindow2
│ └ loganalyzer3
│
└ teams
├ rc2022
│ ├ helios2022
│ ├ ...
│ └ ...
├ rc2023
│ ├ HELIOS2023
│ ├ CYRUS2023
│ ├ ...
│ └ ...
├ rc2024
│ ├ helios2024
│ ├ oxsy2024
│ ├ ...
│ └ ...
├ rc2025
│ ├ HELIOS2025
│ ├ YuShan2025
│ ├ oxsy2025
│ ├ ...
│ └ ...
└ base_team
├ librcsc (for helios-base)
└ helios-base
├ src
│ └ start.sh
└ ...
To start a match between installed teams, use the following command:
python3 auto_match.pyInstalled team directories are normalized by year. If a downloaded team directory does not already end with its year, the installer renames it to team_nameYYYY. This allows teams with the same original name from different years to coexist, such as oxsy2024 and oxsy2025.
This script provides several command-line options to control match settings:
-
-d <BASE_DIR>or--base_dir <BASE_DIR>- Description: Specify the base directory for the environment.
- Default:
$HOME/rcss - Example:
python3 auto_match.py -d /path/to/your/base/directory
-
-l <LEFT_TEAM_NAME>or--left_team_name <LEFT_TEAM_NAME>- Description: Specify the directory name of the team to play on the left side.
- Default:
HELIOS2025 - Accepted values (same as
-r):- Common:
custom,helios-base - 2025 teams:
HELIOS2025,YuShan2025,RoboTech2025,SIRLab2025,SRBIAU2D2025,TitasdaRobotica2025,RoboCIn2025,FRA-UNIted2025,ITAndroids2025,Oxsy2025,oxsy2025 - 2024 teams:
aeteam2024,cyrus2024,r2d22024,helios2024,fra-united2024,itandroids2024,mars2024,yushan2024 - 2023 teams:
HELIOS2023,YuShan2023,CYRUS2023,EMPEROR2023,Hermes2D2023,Oxsy2023,RoboCIn2023,Damavand2023,FRA-UNIted2023,Hades2D2023,ITAndroids2023,The82023,R3CESBU2023,robo2d2023 - 2022 teams:
helios2022and other installed team directories suffixed with2022
- Common:
-
-r <RIGHT_TEAM_NAME>or--right_team_name <RIGHT_TEAM_NAME>- Description: Specify the directory name of the team to play on the right side.
- Default:
YuShan2025 - Example:
python3 auto_match.py -l HELIOS2025 -r YuShan2025
- Cross-year example:
python3 auto_match.py -l oxsy2024 -r oxsy2025
-
-n <NUM_MATCH>or--match_number <NUM_MATCH>- Description: Specify the number of matches to be played.
- Default:
3 - Example:
python3 auto_match.py -n 5
-
-y <TEAM_YEAR>or--team_year <TEAM_YEAR>- Description: Specify which year's
customteam directory to use. Accepted values arerc2022,rc2023,rc2024, andrc2025. - Default:
rc2025 - Note: Installed non-custom teams are resolved by their directory names across all years, so this option is only used for
custom. - Example:
python3 auto_match.py -y rc2024 -l custom -r HELIOS2025
- Description: Specify which year's
-
is_synch_mode- Description: Enable synchronized mode. When this flag is set, the server runs in synchronous mode.
- Default:
Disabled - Example:
python3 auto_match.py --is_synch_mode
-
-hor--help-
Description: Display the help message for the auto match script. This shows the available options and their descriptions.
-
Example:
python3 auto_match.py -h
-
Auto match logs are saved in the directory:
$BASE_DIR/log_analysis/log/YYYYMMDDHHMMSS/you can configure the following environment variables for advance setups:
TEAM_DIR: Directory where teams are stored.- This should normally point to the root teams directory such as
$BASE_DIR/teams. - If it points directly to a year directory such as
$BASE_DIR/teams/rc2024,auto_match.pyresolves its parent automatically. helios-baseis resolved fromBASE_DIR(notTEAM_DIR) in this order:$BASE_DIR/teams/base_team/helios-base/src/start.sh$BASE_DIR/teams/base_team/helios-base/start.sh(fallback)
- This should normally point to the root teams directory such as
MATCH_LOG_DIR: Directory where auto match logs are saved.
export TEAM_DIR=~/robocup/teams
export MATCH_LOG_DIR=~/robocup/logsTo start a match manually:
-
Start the server
Launch the rcssserver with the following command:
rcssserver
-
Launch the monitor
Open the monitor to view the match visually. Run:
soccerwindow2
Alternatively, if installed, use sswindow2 to start the monitor with standard settings:
sswindow2
-
Start the teams
In separate terminal windows, navigate to the directory where each team's executable or startup script is located. Launch each team by executing:
./team_start_script
(Replace
team_start_scriptwith the actual script name for each team.) -
Start the match With the server and monitor running and both teams connected, go to the monitor window. Click anywhere on the monitor screen to display the "Kick Off" button. Then, either click this button or press Control + K to start the match. The game will commence in real time on the monitor.
By following these steps, you can manually initiate and observe a match in the RoboCup Soccer Simulation 2D League.
- Hidehisa Akiyama, Tomoharu Nakashima, HELIOS Base: An Open Source Package for the RoboCup Soccer 2D Simulation, In Sven Behnke, Manuela Veloso, Arnoud Visser, and Rong Xiong editors, RoboCup2013: Robot World XVII, Lecture Notes in Artificial Intelligence, Springer Verlag, Berlin, 2014. http://dx.doi.org/10.1007/978-3-662-44468-9_46