⚽ IA · Robótica · RoboCup SSL · Universidad Sergio Arboleda

ROBOT FUTBOLISTA
CON IA

Sistema de percepción inteligente híbrido: Red Neuronal MLP (96.13% precisión) + Algoritmo Genético + PSO. Dos robots autónomos — Jugador y Portero — que se comunican vía ESP-NOW en tiempo real.

96.13%Precisión NN
|
9→12→4Arquitectura MLP
|
2841Muestras entrenamiento
|
<100msCiclo decisión

🤖 El sistema físico

📋 Descripción general

Este proyecto implementa un sistema de percepción inteligente completo para robots de fútbol en un entorno RoboCup Small Size League (SSL). El campo mide 180×90 cm y los robots deben tomar decisiones en ciclos menores a 100 ms. Cada robot cumple un rol específico: Jugador (atacante) o Portero (defensor), coordinándose en tiempo real.

La arquitectura combina tres capas de inteligencia: una Red Neuronal MLP para clasificar el entorno, Algoritmos Genéticos (GA) que evolucionan parámetros estratégicos a ~1 Hz, y PSO (Particle Swarm Optimization) que optimiza trayectorias locales a 10–20 Hz. Esta combinación supera las limitaciones de las reglas fijas ante condiciones dinámicas e incertidumbre del campo.

🧠 Arquitectura de IA — Sistema híbrido

Capa de Percepción
MLP Neural Network
Cada ciclo (~20ms)
  • 9 entradas: distancias + variaciones + color RGB
  • 12 neuronas ocultas (activación Sigmoid)
  • 4 salidas (Softmax): Pared / Oponente / Balón libre / Balón disputado
  • Entrenada con 2841 muestras — 96.13% precisión
Capa Táctica
PSO — Particle Swarm Optimization
10–20 Hz
  • Optimización de trayectorias locales en tiempo real
  • Ecuación de velocidad: v = w·v + c₁·r₁·(pBest−x) + c₂·r₂·(gBest−x)
  • w=0.7 · c₁=1.5 · c₂=1.5
Capa Estratégica
GA — Genetic Algorithm
~1 Hz
  • Evoluciona parámetros globales: genes[g1, g2, g3]
  • Fitness = goles marcados + distancia al objetivo + detecciones de color
  • Mutación aleatoria cada 10 ciclos sobre genes[0..2]

🔄 Máquinas de estados (FSM)

Jugador
ATACAR

Avanza hacia el balón — velocidad ajustada por genes[2]

💥
PELEAR

Balón disputado — máxima potencia frontal

🚫
EVITAR

Pared detectada — retroceso + giro + vuelta a BUSCAR

🥅 Portero
🧘
QUIETO

Estado base — escucha ESP-NOW del jugador

🎯
ORIENTAR

Giro suave (≤150ms) hacia la dirección del jugador

🛡️
BLOQUEAR

Amenaza alta (Perceptrón de peligro) — se interpone en trayectoria

💨
DESPEJAR

Balón <15cm — avance + retroceso a posición base

📡 Comunicación ESP-NOW entre robots

Los dos robots se comunican inalámbricamente vía ESP-NOW (protocolo peer-to-peer de Espressif sobre WiFi, sin router). El jugador envía su estado cada ciclo al portero con tres datos: dirección del objeto detectado, estado actual de la FSM y distancia central.

JUGADOR
ESP32 · MAC: A4:F0:0F:5D:B7:64
🥅
PORTERO
ESP32 · MAC: D4:E9:F4:AB:3D:18
🧮 El portero usa dos Perceptrones adicionales: uno de peligro (5 entradas → sigmoid → umbral de amenaza) y uno de alineación (3 entradas → decide hacia qué lado girar para interponerse según la posición del jugador).

🔬 Red neuronal — Detalles técnicos

Entradas (9)
  • d_izq · d_cent · d_der (distancias cm)
  • var_i · var_c · var_d (variación entre lecturas)
  • colorR · colorG · colorB (sensor TCS34725 raw)
Capa Oculta (12)
  • Normalización min-max antes de pasar
  • Activación: sigmoid(z)
  • Pesos W1[9][12] + BIAS1[12]
Salidas (4)
  • 0 — Pared
  • 1 — Oponente
  • 2 — Balón libre
  • 3 — Balón disputado
Softmax + Cross-Entropy Loss
Precisión sobre datos reales
0%
96.13%

⚡ Hardware del sistema

🧠
ESP32
Microcontrolador principal. Ejecuta MLP, PSO, GA y ESP-NOW simultáneamente en ciclos de 20ms.
📡
HC-SR04 ×3
Sensores ultrasónicos izquierdo, centro y derecho. Filtro de mediana móvil para reducir ruido.
🎨
TCS34725
Sensor de color RGB (I²C). Identifica el balón por su color. PCA aplicado en variables GA/PSO.
⚙️
TB6612FNG
Driver dual de motores DC. Control independiente de Motor A y B mediante PWM 1kHz 8-bit (0–255).
📶
ESP-NOW
Protocolo inalámbrico peer-to-peer sobre WiFi 2.4GHz. Sin router. Latencia mínima entre jugador y portero.
🪵
Chasis MDF Láser
Estructura física cortada con láser en MDF. Diseño 3D modular con compartimentos para electrónica, ruedas amarillas y pala deflectora.

💻 Archivos del firmware

Robot1Jugador.ino
Agente atacante — MLP + PSO + GA + ESP-NOW sender
  • FSM: BUSCAR / ATACAR / PELEAR / EVITAR
  • Envía {dirección, estado, distCentro} al portero cada ciclo
  • PWM ajustado por genes[2]: vel = 180 + genes[2]×75
🥅
Robot2Portero.ino
Agente defensor — MLP + 2 Perceptrones + PSO + GA + ESP-NOW receiver
  • FSM: QUIETO / ORIENTAR / BLOQUEAR / DESPEJAR
  • Perceptrón de peligro: 5 entradas → amenaza → umbral genes[0]
  • Perceptrón de alineación: di_n, dd_n, dir_jugador → girar izq/der
🔬
clasificador.ino
Módulo de prueba autónomo — solo clasificación NN con Serial Monitor
  • Imprime clase, confianza y probabilidades de las 4 clases en tiempo real
  • Útil para validar sensores y calibrar umbrales antes de integrar
  • Mismo MLP embebido en C++ (pesos hardcodeados en flash del ESP32)

📄 Informe técnico completo

📄
RobotConIA.pdf
Informe completo del sistema — arquitectura IA, datos experimentales, formulas MLP/PSO/GA y conclusiones
Descargar PDF

🛠️ Tecnologías y herramientas

ESP32 MLP Neural Network Genetic Algorithm PSO Softmax · Sigmoid Arduino C++ ESP-NOW HC-SR04 TCS34725 TB6612FNG FSM RoboCup SSL CAD 3D MDF Láser