Skip to content

Latest commit

 

History

2 Commits

Folders and files

NameName
Last commit message
Last commit date
 
 
 
 

Repository files navigation

FIRASim Python Engine (VSSL)

Este proyecto es un engine modular en Python diseñado para interactuar con el simulador FIRASim (Very Small Size League – VSSL), siguiendo una arquitectura similar a la del engine SSL de Sysmic Robotics, pero adaptada y simplificada para Python.

Este enfoque me permite aprender los conceptos fundamentales de visión, estrategia y control en un entorno más accesible antes de escalar a una versión en C++.


🎯 Objetivo del Proyecto

  • Recibir datos de visión desde FIRASim (UDP + Protobuf)
  • Aplicar una estrategia básica sobre la información del campo
  • Realizar planificación de movimiento (path planning)
  • Generar y enviar comandos de control a FIRASim
  • Comprender el ciclo completo: percepción → decisión → acción

🧱 Estructura del Proyecto


engine\_vssl/
├── vision\_receiver.py        # Recibe y parsea datos de FIRASim
├── command\_sender.py         # Envía comandos UDP al simulador
├── planner.py                # Path planning / navegación
├── strategy.py               # Lógica de juego o skills
├── engine.py                 # Orquestador principal del sistema
├── proto/                    # Archivos .proto compilados a Python
│   └── fira\_messages\_pb2.py
├── config.ini                # Parámetros de red y simulador
└── main.py                   # Punto de entrada de la ejecución


✅ Estado Actual

  • Visión funcionando y parseando Protobuf (vision_receiver.py)
  • Módulo de planificación de movimiento (planner.py)
  • Lógica de estrategia simple (strategy.py)
  • Módulo para envío de comandos (command_sender.py)
  • Loop principal que integra todo (engine.py)

🚀 Próximos Pasos

  • Implementar planner.py con un algoritmo simple (ir a la pelota)
  • Crear command_sender.py que use el .proto de FIRASim para enviar comandos UDP
  • Implementar lógica de juego muy básica (strategy.py)
  • Integrar todo en engine.py con un bucle de ejecución (~60 FPS)
  • Agregar visualización en consola o matplotlib para depurar
  • Modularizar el uso de estrategias (soporte futuro para .lua o múltiples estrategias)

💡 Motivación

Este proyecto nace de la necesidad de comprender profundamente cómo se estructura un engine competitivo para RoboCup, en lugar de sólo utilizar uno existente.

Al trabajar con Python:

  • Me concentro en la lógica y no en la sintaxis o punteros de C++
  • Desarrollo más rápido con pruebas inmediatas
  • Gano claridad sobre cómo se conectan visión, lógica y control
  • Creo una base que luego puede ser portada a C++ con mayor confianza

Este enfoque también me permite aportar mejoras futuras al engine SSL del equipo con una base sólida.


🔮 A Futuro

  • Implementar estrategia modular cargada desde .lua (como en el engine SSL)
  • Añadir soporte para simulación síncrona si FIRASim lo permite
  • Incorporar control PID o seguimiento de trayectoria con curvas suaves
  • Evitación de obstáculos entre robots
  • Portar toda la arquitectura a C++ para integrarla con el engine principal
  • Diseñar un sistema de evaluación o benchmarking de estrategias

🔧 Requisitos

  • Python 3.8 o superior
  • FIRASim ejecutándose en modo simulador
  • Paquetes de Python:
    • protobuf
    • google.protobuf
  • Archivos .proto de FIRASim compilados a Python con protoc
  • Recomendado: entorno virtual con venv
  • Editor: VS Code con soporte para WSL2

Instalación de dependencias en entorno virtual:

python3 -m venv venv
source venv/bin/activate
pip install -r requirements.txt

👤 Autor

Rodrigo Sierra (RRoSierra) Sysmic Robotics - Universidad Técnica Federico Santa María Proyecto personal de aprendizaje y soporte al equipo VSSL

About

No description, website, or topics provided.

Resources

Stars

0 stars

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages