Cliente em C++ para controlar robôs no TraveSim, utilizando Qt6, SDL2 e protobuf.
Este projeto depende do TraveSim. Certifique-se de que o TraveSim esteja instalado e funcionando antes de usar o controller.
- CMake (>= 3.16)
- Qt6 (Core, Network)
- SDL2
- Protobuf (compilador + headers)
vsss_sim_pb_msgs(submódulo git)
sudo dnf install -y cmake gcc-c++ git \
qt6-qtbase-devel qt6-qtbase-private-devel \
qt6-qtbase-gui-devel qt6-qttools-devel \
SDL2-devel protobuf-devel protobuf-compilersudo apt update
sudo apt install -y cmake g++ git \
qt6-base-dev qt6-base-dev-tools \
libsdl2-dev protobuf-compiler libprotobuf-devbrew install cmake git protobuf sdl2 qt@6
⚠️ Oqt@6não é linkado no PATH por padrão. Para o CMake encontrar, adicione:export CMAKE_PREFIX_PATH="$(brew --prefix qt@6)"
O projeto utiliza a biblioteca vsss_sim_pb_msgs como submódulo.
Na raiz do repositório:
Com HTTPS:
git submodule add --name vsss_sim_pb_msgs https://github.com/ThundeRatz/vsss_sim_pb_msgs.git protoCom SSH:
git submodule add --name vsss_sim_pb_msgs git@github.com:ThundeRatz/vsss_sim_pb_msgs.git protoSe você clonou um repositório que já possui submódulos:
- Clonar já com submódulos:
git clone --recurse-submodules git@github.com:ThundeRatz/travesim_adapters.git- Clonar sem submódulos e inicializar depois:
git submodule update --initNa raiz do projeto:
mkdir build && cd build
cmake ..
make -jO CMake já lida com as dependências necessárias:
target_link_libraries(soccer-controller
Qt6::Core
Qt6::Network
SDL2::SDL2
pb_msgs_lib
)Após compilar, rode o controller enquanto o TraveSim estiver em execução. Certifique-se de que o TraveSim está rodando e escutando pacotes UDP (azul -> 127.0.0.1:20013, amarelo -> 127.0.0.1:20012).
Exemplo:
- Controle no índice
0→ robô azul (id 0) - Controle no índice
1→ robô amarelo (id 0)
- Analógico esquerdo → frente / ré
- L1 / R1 → girar para esquerda / direita
- Nenhum input → motores desligados (
RELEASED)
-
Se os robôs não se moverem, verifique:
- O endereço e porta configurados.
- Se o TraveSim está rodando corretamente.
- Se os pacotes protobuf estão compatíveis com a versão usada no TraveSim.