Skip to content

RRoSierra/VSSL-engine

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

2 Commits
 
 
 
 

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

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors

Languages