Hello,
We are preparing our robot controller for RoboCupJunior Rescue Simulation 2026, and we would like to clarify a few points about the allowed execution environment and the use of external tools/libraries.
From the 2026 rules, we understand that:
- teams may use external code, provided that they credit the original creators, respect licensing rules, and are able to understand and explain the code;
- the 2026 competition will run using a server-client model, where teams connect their own computer to the game server through an RJ-45 socket;
- teams must prepare a computer and an Ethernet cable to run their programs;
- the judge training material shows the controller being executed from the participant’s computer using the Webots remote controller command.
We would like to confirm whether our interpretation is correct in the following cases.
1. Use of ROS 2
Is the use of ROS 2 allowed as part of the robot controller stack?
Our understanding is that ROS 2 would be treated as external software/code/library. Under this interpretation, ROS 2 could be used as middleware and as part of the execution framework, while the competition-specific logic, such as navigation, mapping, vision, and any Nav2-related adaptations or plugins, should be developed or adapted by the team using it. We would credit ROS 2 and other external dependencies properly in our documentation, respect their licenses, and be prepared to explain how they are used in our system.
Our specific doubts are:
-
Where should we reference ROS 2 and other external libraries?
- Technical Description Paper?
- Poster?
- Source code repository / README?
-
Does the external-code rule apply only to code directly related to solving competition tasks — for example navigation, mapping, exploration, and victim/target recognition — or does it also apply to infrastructure code, such as launch files, middleware, Docker setup, and helper scripts?
2. Use of a Bash script to start the robot controller
The judge training guide shows the remote controller being executed from the participant’s computer through the command line, for example:
$WEBOTS_HOME/webots-controller --protocol=tcp --ip-address=<Server IP Address> <Controller Path>
Our controller runs inside Docker, so we created a Bash startup script that prepares the environment and starts the controller. The script was inspired by the previous official Erebus helper script DockerHelper.py from MainSupervisor.
We would like to confirm:
-
Is it allowed to use a Bash script to start the controller, as long as the final controller connects to the Webots server using the required remote-controller protocol?
-
Must the controller path passed to Webots be a direct executable file only, or can it be a script that starts the required runtime environment?
-
Is Docker still allowed for running the team’s controller in the 2026 server-client setup?
-
Are there any restrictions on the controller startup process besides the participant computer being disconnected from the internet during the run?
3. Use of a custom Docker image
In previous versions, we used the Docker image alfredroberts/erebus. We are now using a custom image inspired by that image, but with updated packages.
For example:
- previous base system: Ubuntu 22.04;
- current base system: Ubuntu 24.04;
- updated OpenCV and other packages required by our controller;
- additional packages needed for our ROS 2-based controller.
We would like to confirm:
-
Are teams allowed to use a custom Docker image for the controller environment?
-
Are there any restrictions on the Docker image, such as:
- Ubuntu version;
- OpenCV version;
- ROS 2 distribution;
- installed packages;
- image size;
- network configuration;
- access to devices or host resources?
4. Reason for asking
We are asking because the 2026 rules changed compared with previous versions. In particular, the rules now emphasize the server-client execution model.
We want to make sure that our setup is compliant before finalizing our documentation and execution video.
Thank you.