Este repositório tem como objetivo fornecer um roteiro para a configuração do ambiente de desenvolvimento de aplicações para competições de Futebol de Tamanho Muito Pequeno (VSSS). Ele também serve como um repositório centralizado para algoritmos, exemplos e implementações de referência que podem ser reutilizados e ampliados em projetos VSSS.
-
FIRASim: Environment simulator used to run and test VSSS league matches, providing the field, robots, and the physical dynamics of the game.
-
VSSReferee: System responsible for match control and refereeing, managing game states, rules, fouls, and official communication with the teams.
For more information and references:
Behaviour Trees (BTs) are a control architecture widely used in robotics to model decision-making and task execution in a modular, hierarchical, and reactive way. They allow complex robot behaviors to be built by composing simple actions and conditions, improving readability, reusability, and maintainability of the control logic.
In the context of the Very Small Size Soccer (VSSS) league, Behaviour Trees are used to coordinate high-level robot strategies, such as positioning, ball approach, passing, and shooting. By reacting to the dynamic game state provided by the simulator and referee system, BTs enable robots to adapt their behavior in real time, ensuring robust and flexible decision-making during matches.
In this environment, we use the BehaviorTree.CPP library for implementing Behaviour Trees and Groot2 as a graphical tool for editing, monitoring, and visualizing the execution of the trees at runtime.
For more information and references:
This section describes how to install and configure all required tools and libraries to run and develop applications for the Very Small Size Soccer (VSSS) environment on Ubuntu.
The following dependencies are required:
- g++ (tested with version 9.3.0)
- Qt (tested with version 5.12.8)
- Qt OpenGL
- Google Protocol Buffers (tested with
protocv3.6.1)
$ sudo apt update
$ sudo apt-get install git build-essential cmake qt5-default libqt5opengl5-dev libgl1-mesa-dev libglu1-mesa-dev libprotobuf-dev protobuf-compiler libode-dev libboost-dev$ sudo apt install -y protobuf-compiler libprotobuf-devVerify installation:
$ protoc --versionFIRASim is the official simulator used for the VSSS league, providing the physical environment, robots, and ball dynamics. To access the official installation information, follow these steps FIRASim - INSTALL.
Clone FIRASim into your preferred location.
$ cd /path/to/firasim_ws
$ git clone https://github.com/IEEEVSS/FIRASim.git
$ cd FIRASimCreate a build directory within the project (this is ignored by .gitignore):
$ mkdir build
$ cd buildRun CMake to generate the makefiles:
$ cmake ..Then compile the program:
$ makeThe binary is copied to the ../bin folder after a successful compilation.
$ ./FIRASimVSSReferee is responsible for game control and refereeing, managing match states, rules, and communication with teams.
$ git clone https://github.com/VSSSLeague/VSSReferee
$ cd VSSReferee
$ mkdir build && cd build
$ cmake ..
$ makeThe binary is copied to the ../bin folder after a successful compilation.
$ ./VSSRefereeGroot2 is a graphical tool used to design, edit, and visualize Behaviour Trees at runtime.
- Download the Linux installer from the official repository.
- Make the installer executable:
chmod +x Groot2-*-linux-installer.run- Run the installer:
./Groot2-*-linux-installer.runBehaviorTree.CPP is a C++ library used to implement Behaviour Trees for robotic decision-making.
$ git clone https://github.com/BehaviorTree/BehaviorTree.CPP.git
$ cd BehaviorTree.CPP
$ mkdir build && cd build
$ cmake ..
$ make -j$(nproc)
$ sudo make install$ pkg-config --modversion behaviortree_cppgit clone --recurse-submodules https://github.com/PedroGilo12/VSSSClient-RAS-UFAL.git
git submodule update --initCreate an folder named build, open it and run the command qmake ..
So, after this, run the command make and if everything goes ok, the binary will be at the folder bin (at the main folder).
mkdir build
cd build
cmake ..
make
