Formación Módulo 9 de 11

M09

Estrategia de competición y carreras virtuales

Envía tu modelo, entiende la clasificación y compite con cabeza

  • Duración: 45 min
  • Todos
  • Vídeo + test de 5 preguntas

Al terminar sabrás…

  • Distinguir las community races de las live races
  • Enviar un modelo a una carrera y seguir el estado del envío
  • Comprender los métodos de clasificación, las vueltas mínimas y las penalizaciones
  • Diseñar una estrategia de equipo para las tres carreras virtuales del campeonato
  • Planificar las horas de cómputo y revisar el modelo antes de enviarlo

Vídeo: Estrategia de carreras virtuales en 5 minutos

Estrategia de carreras virtuales en 5 minutosEl vídeo de este módulo está en preparación. Mientras tanto, tienes el guion completo justo debajo.
Guion del vídeo (texto)

Dos tipos de carrera. En DeepRacer on AWS hay dos formas de correr. En una carrera de comunidad, la organización abre un plazo, tú envías tu modelo y se evalúa en cuanto llega, sin que tengas que estar conectado. En una carrera en directo, los modelos corren de uno en uno mientras todos lo ven, y una persona facilitadora dirige la cola. Las dos usan la misma idea: tu modelo conduce solo, tú ya no puedes tocar nada.

Cómo enviar tu modelo. Para participar, entra en el apartado de carreras, elige una carrera abierta y pulsa entrar en la carrera. Elige tu modelo y confirma. Tu envío aparecerá en la lista de tus envíos y pasará por varios estados. En cola, preparando, en curso y completado. Después verás tu puesto en la clasificación, tu tiempo, la diferencia con el primero y las salidas de pista. Recuerda que los modelos físicos no se pueden enviar.

Tres formas de clasificar. Cada carrera puede clasificar de tres maneras. Con mejor vuelta, cuenta tu vuelta más rápida, después de un mínimo de vueltas. Con tiempo total, se suma el tiempo de todas las vueltas. Con vuelta media, se promedia una ventana de vueltas seguidas y cuenta la mejor ventana. Las salidas de pista suman segundos de penalización. Cómo será cada carrera del campeonato lo dirán las bases.

Nuestro campeonato. La fase virtual del campeonato tiene tres carreras. La clasificación general es la suma de los tiempos de las tres, y gana quien menos tiempo acumule. Esto tiene una consecuencia muy clara. Tenéis que correr las tres carreras y ser regulares. Un equipo muy rápido que se sale de pista en una carrera puede quedar por detrás de un equipo algo más lento pero constante.

Velocidad y trazada. Para ir más rápido, entrena en la misma pista de la carrera. Cuando tu coche ya complete vueltas, premia la velocidad y entrena entre una y dos horas. Para mejorar la trazada tienes herramientas muy útiles. Los puntos de referencia de la pista y la orientación del coche te dicen si apunta en la dirección correcta. El progreso y los pasos te dicen si va más rápido de lo previsto.

Gestiona tus horas. Cada entrenamiento, cada evaluación y cada envío gastan horas de cómputo. Esas horas se reinician al principio de cada mes, así que conviene planificarlas como si fueran el presupuesto del equipo. No lancéis todos el mismo experimento. Repartíos las ideas, apuntadlas en el diario y reservad horas para la última semana antes de cada carrera.

Checklist antes de enviar. Antes de enviar, repasad una lista corta. El modelo está entrenado en la pista y el sentido de la carrera. Lo habéis evaluado con varias vueltas y las completa todas con tiempos parecidos. Sabéis cuántos envíos os quedan y cuándo se cierra la carrera. Y todo el equipo está de acuerdo con el modelo elegido. Con eso, solo queda pulsar enviar y cruzar los dedos.

Llega la hora de la verdad. Has entrenado, has evaluado y has mejorado tu modelo. Ahora toca competir. En una carrera virtual ya no puedes tocar el volante: tu modelo conduce solo y lo que cuenta es la estrategia que tu equipo haya preparado antes. Es como un penalti en fútbol: el partido se gana en los entrenamientos, no en el último segundo.

Community races y live races

DeepRacer on AWS tiene dos modos de carrera:

Modo Cómo funciona ¿Tienes que estar conectado?
Community race (carrera de comunidad) La organización abre un periodo de envíos. Cada modelo se evalúa al recibirse y el leaderboard (clasificación) se actualiza No, es asíncrona
Live race (carrera en directo) Los modelos se evalúan de uno en uno mientras todos lo ven. Una persona facilitadora lanza los modelos, ordena la cola y declara el ganador No hace falta, pero puedes verla con Watch live

En las live races recibes avisos cuando tu modelo empieza, termina, entra en el top 3 o marca el mejor resultado. Cada modelo tarda unos 20 minutos, así que con muchos participantes la carrera dura horas.

En cuanto al tipo, las carreras pueden ser Time trial (contrarreloj) u Object avoidance (con obstáculos).

Cómo enviar un modelo

  1. Ve a Races (carreras) y elige una carrera abierta.
  2. Pulsa Enter race (entrar en la carrera).
  3. En Choose model elige tu modelo y confirma con Enter race.
  4. Tu envío aparece en Your submissions (tus envíos).

El envío pasa por estos estados: Queued (en cola) → Initializing (preparando) → In progress (en curso) → Completed (completado). En el Race leaderboard verás tu puesto, tu tiempo, la diferencia con el primero y el número de salidas de pista. Cuando la carrera termina pasa a Closed y la encontrarás en Completed races.

Paso a pasoEnvía tu modelo a una carrera
1 - Elige la carrera
Paso 1 de 4

1 - Elige la carrera

En Races busca la carrera en Open races y pulsa See race details.

2 - Revisa las reglas y entra
Paso 2 de 4

2 - Revisa las reglas y entra

Comprueba en Race details el tipo de carrera, la pista, el sentido y las reglas (Ranking method, Off-track penalty...). Después pulsa Enter race.

3 - Elige tu modelo
Paso 3 de 4

3 - Elige tu modelo

En Choose model despliega la lista: solo aparecen tus modelos entrenados que se pueden enviar. Elige el tuyo y confirma con Enter race.

4 - Sigue el resultado
Paso 4 de 4

4 - Sigue el resultado

En Your submissions verás el estado del envío hasta Completed. En Race leaderboard aparecen tu puesto, tu tiempo, Gap to 1st y las salidas de pista (Off-track).

Capturas: Guía de implementación de DeepRacer on AWS (AWS)

Métodos de clasificación, vueltas y penalizaciones

Quien organiza cada carrera elige su Ranking method (método de clasificación). Lo que significa Minimum laps (vueltas mínimas) cambia según el método:

Método Qué cuenta Qué significa Minimum laps
Best lap time (mejor vuelta) Tu vuelta más rápida Número mínimo de vueltas antes de que cuente la mejor vuelta
Total time (tiempo total) La suma de todas las vueltas Queda bloqueado al número máximo de vueltas: hay que completarlas todas
Average lap time (vuelta media) La media de una ventana de vueltas consecutivas Es la "ventana de promedio": cuántas vueltas seguidas se promedian. Puntúa tu mejor ventana

Además, cada carrera tiene:

  • Off-track penalty: segundos que se suman a tu tiempo por cada salida de pista (y Collision penalty por choque, si hay obstáculos).
  • Max number of submissions per user: número máximo de envíos por persona.
  • Maximum resets per model: reinicios permitidos, solo en live races.

Ejemplo resuelto. Dos modelos corren 3 vueltas con una penalización hipotética de 2 segundos por salida de pista.

Modelo Vueltas Salidas Total con penalización
Rayo 12,0 + 12,1 + 12,3 s 2 36,4 + 4 = 40,4 s
Tortuga 13,0 + 13,1 + 13,0 s 0 39,1 s

Con Best lap, Rayo gana con 12,0 s. Con Total time, gana Tortuga. Moraleja: el método cambia la estrategia.

Nuestro campeonato: tres carreras y la suma importa

La fase virtual del Campeonato Nacional AWS DeepRacer 2026/27 se disputa entre diciembre de 2026 y febrero de 2027 y tiene 3 carreras virtuales. La clasificación general es la suma de los tiempos de las 3 carreras: menos es mejor.

¿Qué significa esto en la práctica?

  • Hay que correr las tres. La general necesita vuestro tiempo en cada carrera. Qué ocurre exactamente si falta alguno se detallará según las bases, pero no os arriesguéis.
  • La regularidad vale oro. Igual que en el ejemplo de Rayo y Tortuga, un modelo que nunca se sale suele sumar mejor que uno brillante pero imprevisible.
  • Cada carrera es una oportunidad de aprender. Lo que funcione en la primera os servirá para la segunda y la tercera. Apuntadlo en el diario de experimentos.

Velocidad y trazada

Los consejos oficiales siguen un orden lógico:

  1. Entrena en la pista de la competición. Es la recomendación más directa de la guía.
  2. Primero que termine vueltas, después que vaya rápido. Cuando ya sea regular, premia la velocidad en la función de recompensa y amplía el entrenamiento a 1-2 horas.
  3. Sube la velocidad máxima del espacio de acciones creando un modelo nuevo. Mejora los tiempos, pero dificulta el entrenamiento: reduce granularidades y afina la función.

Más acciones y más rápidas permiten ir más deprisa, pero tardan más en converger. Con espacio continuo puedes premiar velocidades o giros concretos en puntos concretos de la pista.

Para la trazada tienes los parámetros waypoints, closest_waypoints y heading. Este ejemplo oficial premia que el coche apunte en la dirección de la pista:

# Place import statement outside of function (supported libraries: math, random, numpy, scipy, and shapely)
# Example imports of available libraries
#
# import math
# import random
# import numpy
# import scipy
# import shapely

import math

def reward_function(params):
    ###############################################################################
    '''
    Example of using waypoints and heading to make the car point in the right direction
    '''

    # Read input variables
    waypoints = params['waypoints']
    closest_waypoints = params['closest_waypoints']
    heading = params['heading']

    # Initialize the reward with typical value
    reward = 1.0

    # Calculate the direction of the center line based on the closest waypoints
    next_point = waypoints[closest_waypoints[1]]
    prev_point = waypoints[closest_waypoints[0]]

    # Calculate the direction in radius, arctan2(dy, dx), the result is (-pi, pi) in radians
    track_direction = math.atan2(next_point[1] - prev_point[1], next_point[0] - prev_point[0])
    # Convert to degree
    track_direction = math.degrees(track_direction)

    # Calculate the difference between the track direction and the heading direction of the car
    direction_diff = abs(track_direction - heading)
    if direction_diff > 180:
        direction_diff = 360 - direction_diff

    # Penalize the reward if the difference is too large
    DIRECTION_THRESHOLD = 10.0
    if direction_diff > DIRECTION_THRESHOLD:
        reward *= 0.5

    return float(reward)

Y para la velocidad global puedes usar progress y steps. El coche toma unas 10 acciones por segundo, así que menos pasos para el mismo progreso significa ir más rápido. Este ejemplo oficial da un premio extra cada 100 pasos si vas por delante de lo previsto:

def reward_function(params):
    #############################################################################
    '''
    Example of using steps and progress
    '''

    # Read input variable
    steps = params['steps']
    progress = params['progress']

    # Total num of steps we want the car to finish the lap, it will vary depends on the track length
    TOTAL_NUM_STEPS = 300

    # Initialize the reward with typical value
    reward = 1.0

    # Give additional reward if the car pass every 100 steps faster than expected
    if (steps % 100) == 0 and progress > (steps / TOTAL_NUM_STEPS) * 100 :
        reward += 10.0

    return float(reward)

Horas de cómputo y trabajo en equipo

Cada entrenamiento, evaluación y envío consume horas de cómputo. La gráfica de la página de inicio muestra las horas usadas sobre las permitidas, y se reinician al principio de cada mes. Los límites concretos los fija la organización.

Pensad en las horas como el presupuesto del equipo:

  • Repartid los experimentos para no repetir el mismo dos veces.
  • Empezad con entrenamientos cortos para descartar ideas y reservad los largos para las prometedoras.
  • Guardad horas para la última semana antes de cada carrera.
  • Si un modelo aparece en WAITING_FOR_CAPACITY, la plataforma está llena: usad Retry training más tarde.

Roles dentro del equipo

Rol Responsabilidad
Ingeniería de recompensa Escribe y valida las funciones de recompensa
Análisis Evalúa modelos, lee gráficas y mantiene el diario de experimentos
Gestión de cómputo Controla las horas usadas y el calendario de entrenamientos
Jefatura de carrera Lee las bases, controla plazos y envíos y hace el envío final

Rotad los roles entre carreras para que todo el equipo aprenda de todo.

Actividad práctica

Objetivo: preparar y realizar un envío a una carrera abierta con una estrategia de equipo.

  1. Leed las bases de la carrera: pista, sentido, método de clasificación, vueltas mínimas, penalización y número máximo de envíos.
  2. Repartid los cuatro roles de la tabla anterior.
  3. Revisad las horas de cómputo disponibles en la página de inicio y planificad cuántos entrenamientos podéis hacer hasta el cierre.
  4. Elegid vuestros dos mejores candidatos del diario y evaluadlos en la pista y el sentido de la carrera con al menos tantas vueltas como pida la carrera.
  5. Calculad, con la fórmula del método de la carrera, qué tiempo obtendría cada candidato incluyendo penalizaciones.
  6. Pasad el checklist: - El modelo está en Ready y entrenado en la pista y el sentido de la carrera. - Completa todas las vueltas evaluadas con tiempos parecidos. - Sabéis cuántos envíos os quedan y cuándo se cierra la carrera. - Todo el equipo está de acuerdo.
  7. Enviad el modelo con Races → Enter race y seguid su estado en Your submissions.
  8. Cuando aparezca en Completed, anotad en el diario el puesto, el tiempo y las salidas de pista.

Resumen

  • Las community races son asíncronas; las live races se corren en directo, un modelo tras otro.
  • Se envía con Races → Enter race y el envío pasa por Queued, Initializing, In progress y Completed.
  • Best lap, Total time y Average lap cambian lo que significan las vueltas mínimas y la estrategia; las penalizaciones suman segundos.
  • En nuestro campeonato la general suma los tiempos de las 3 carreras: correr las tres y ser regular es clave.
  • Planificad las horas de cómputo, que se reinician cada mes, y repartid roles dentro del equipo.

Test final

Comprueba lo que has aprendido. Necesitas 4 aciertos de 5 para superar el módulo.