FT Arena é um ambiente de treinamento para futebol de robôs, que permite visualizar em tempo real o que acontece no simulador. O projeto inclui componentes para recepção de dados do simulador SSL via multicast e publicação desses dados via MQTT.
FT-Arena/
│
├── mqtt_vision/ # Biblioteca para recepção multicast e envio MQTT
│ ├── data/ # Arquivos de definição Protobuf e classes geradas
│ │ ├── __init__.py
│ │ ├── messages_robocup_ssl_detection_pb2.py
│ │ ├── messages_robocup_ssl_detection.proto
│ │ ├── messages_robocup_ssl_geometry_pb2.py
│ │ ├── messages_robocup_ssl_geometry.proto
│ │ ├── messages_robocup_ssl_wrapper_pb2.py
│ │ └── messages_robocup_ssl_wrapper.proto
│ ├── multicast_mqtt.py # Implementação principal
│ └── setup.py # Configuração para instalação como pacote pip
│
├── Dockerfile # Configuração do Docker para o serviço receiver
├── requirements.txt # Dependências Python
└── docker-compose.yml # Configuração dos serviços Docker
O simulador gRSim envia dados de detecção e geometria via multicast usando o formato Protobuf SSL_WrapperPacket.
Um broker MQTT (Mosquitto) atua como intermediário para a comunicação entre os componentes do sistema.
Um serviço que recebe os dados multicast do simulador, decodifica as mensagens Protobuf e publica os dados via MQTT.
- Docker
- Docker Compose
-
Clone o repositório:
git clone https://github.com/mggmauricio/FT-Arena.git cd FT-Arena -
Inicie apenas o simulador:
docker-compose up simulator
-
Para iniciar o receiver manualmente:
docker-compose up receiver
-
Para iniciar todos os serviços (incluindo o broker MQTT):
docker-compose up --build
-
Para parar os contêineres:
docker-compose down
- Protocol Buffers (Protobuf) - Para serialização de dados
- MQTT - Para comunicação publisher/subscriber
- Docker - Para containerização dos serviços
- Python - Linguagem principal de desenvolvimento
- Recepção de dados do simulador SSL via multicast
- Decodificação de mensagens Protobuf (SSL_WrapperPacket, SSL_DetectionFrame, SSL_GeometryData)
- Publicação de dados de detecção e geometria via MQTT
- Containerização dos serviços para fácil implantação
A biblioteca mqtt_vision é responsável por conectar-se ao multicast, receber e decodificar mensagens Protobuf do simulador, e publicar esses dados através de um broker MQTT. Ela separa os dados de detecção e geometria em tópicos MQTT distintos.
- Desenvolver um frontend para visualização dos dados
- Implementar algoritmos de visão computacional para análise dos dados
- Integrar com ROS2 para controle de robôs
- Expandir a biblioteca com mais funcionalidades
- Faça um fork do projeto
- Crie uma branch para sua feature (
git checkout -b feature/nova-feature) - Faça commit das suas alterações (
git commit -m 'Adiciona nova feature') - Faça push para a branch (
git push origin feature/nova-feature) - Abra um Pull Request
Este projeto está licenciado sob a licença MIT - veja o arquivo LICENSE para mais detalhes.