This folder contains the model_verifier.py
controller which spawns automatically a robot and automatically searches
for infringements to the rules or suspicious elements.
Keep in mind that this controller only checks part of the rules, therefore it's possible that a robot is invalid although it did not trigger errors nor warning during the analysis.
Additionally to Webots
, you will need the python modules listed in requirements.txt
.
pip3 install -r requirements.txt
Generating a pdf
report requires the pandoc
and texlive
tools:
sudo apt install pandoc texlive
To inspect a robot, you should make sure the following conditions are met:
- The
PROTO
file of the robot is located in therobocup/protos
folder or one of its subfolders - A file named
postures.json
which contains theupright
and theextension
poses is located in the same folder as thePROTO
file
You can then run a model check using the following command:
./model_checker.sh <robot_name.proto>
This will produce the following result:
- Start a
Webots
simulation with an empty world - Spawn the requested robot
- Open 2 windows allowing you to visualize the bounding objects, the posture of the robot and the solids annotations:
- The first window will contain the
upright
posture, the second theextension
posture - The following color code is used:
- Brown: solids labeled as
[arm]
- Green: solids labeled as
[hand]
- Black: solids labeled as
[foot]
- Grey: unlabelled solids
- Brown: solids labeled as
- Once you close a window, the verification process will continue
- It is possible to skip this step using the option
--no-display
- The first window will contain the
- The simulation will close automatically and the results will be available in the folder
results/robot_name
:model_verifier.log
contains the messages from themodel_verifier
controllersimulator.log
contains the standard output of the siimulatorsimulator.err
contains simulator errors and warning raised when loading the modelrobot_properties.json
A file that can be used to import robot dimensions on the submission websitereport.pdf
contains an overview of all the results including:- Warnings and Errors during model_verification.
- Table with all the joints and their values
- Table with the main properties of the robot
- Logs of the model verification
report.md
the source file forreport.pdf
To inspect the validity of an archive before uploading it on https://submission.robocuphumanoid.com you can run the following command:
./archive_checker.sh <archive.zip>
It will check some properties of the archive, extract its content in the robocup/protos/tmp
folder and then perform
an automated inspection with the flag --no-display
.
This script is used to detect low performances for the robot and currently requires to perform some manual step.
- The game file
game.json
in thereferee
controller has to be configured as follows:- "minimum_real_time_factor" must be set to 1
- "max_duration" must be set to 120
This script takes as argument the path of a folder team_name
which has to be organized in the following way:
team_name
|- team.json
|- robot_name
| |- posture.json
| |- robot_name.proto
| |- ...
Game can then be launched with ,/run_mock_game.sh team_name
or ./run_mock_game.sh --no-rendering team_name
:
This will start a game with a full team red and a full team blue, both of them will have clients connecting after a little while in order to ensure robots are not in asleep mode.
The output of the clients will be stored in different files in folder team_name
(e.g. RED_1_with_rendering.txt
). At the end of the test, robot is closed and the
last output from the clients are shown on screen.
The value obtained can be used to estimate the speed factor associated to the team.