Ir al contenido

Generación de escenarios con IA — describe una maniobra, obtén un escenario verificado

Escribir un escenario a mano obliga a nombrar la carretera, el carril, el disparador y la dinámica de cada actor. Con la generación por IA basta con describir la maniobra: el borrador se ejecuta en un simulador y se verifica antes de llegar a tu lienzo. Todo corre en tu navegador con tu propia clave de API.

Empieza aquí: de un lienzo en blanco a un escenario

Sección titulada «Empieza aquí: de un lienzo en blanco a un escenario»

El camino más corto hacia un escenario funcional. Dibuja un carril, coloca dos coches y di qué debe pasar:

Vehicle2 cuts in front of Vehicle1.

De un lienzo en blanco a un cut-in en ejecución: dibuja un carril a mano, coloca dos vehículos, escribe una frase, y el escenario generado se verifica, se aplica y se reproduce; después se repasa con estelas fantasma y se ajusta a mano antes de una segunda ejecución.

Cinco pasos, nada más:

  1. Dibuja un carril con la herramienta Lane y cambia al modo Scenario desde el menú hamburguesa.
  2. Coloca dos vehículos en el carril con Add actor.
  3. Abre el panel de IA (el botón AI en la tarjeta LOGIC) y escribe lo que debe ocurrir. Haz clic en un actor del lienzo para insertar su nombre.
  4. Pulsa Generate. Lo que supera las comprobaciones se aplica al lienzo como fases y eventos normales; pulsa ▶ para verlo.
  5. Ajústalo a mano. Los eventos generados son tuyos para editar. En el vídeo, la ejecución se repasa con estelas fantasma activadas, la línea de tiempo se rebobina hasta el instante del cut-in y se retoca un evento en el editor antes de volver a reproducirlo.

Nada en el resultado recibe trato especial: puedes mover la línea de tiempo, cambiar una velocidad o un disparador, añadir una condición de fin o exportar el .xosc, exactamente igual que con un escenario creado por ti mismo. También puedes seguir conversando con el panel en lugar de volver a generar desde cero; mira Refinar con palabras.

Lo mismo, pero sobre una red OpenDRIVE importada —en este caso un mapa de CARLA Town05— con una petición más larga: un adelantamiento que vuelve a cortar el paso y frena.

Vehicle2 comes up behind the Ego in the same lane, moves to the left lane, overtakes the Ego, and cuts back into the Ego’s lane soon after passing, leaving only a small gap. Immediately after cutting in, Vehicle2 brakes to 20 km/h. The Ego follows and keeps a safe distance.

Una sola toma sobre un mapa de CARLA Town05: se importa la red de carreteras, se colocan dos vehículos, se describe el adelantamiento, y el escenario generado supera los cuatro filtros y se reproduce con veredicto PASS.
  1. Tú colocas los actores en el lienzo y escribes la petición. La posición de cada vehículo se trata como una decisión fija: al modelo se le indica explícitamente que no la cambie.
  2. El modelo responde con un storyboard —fases, eventos, acciones y disparadores— en el formato interno de drawtonomy, no en XML en crudo.
  3. Cuatro filtros comprueban la respuesta (ver más abajo). Si uno falla, el fallo se convierte en una lista de errores concretos —qué campo, cuál es el problema, cómo corregirlo— y se reenvía al modelo para un nuevo intento, hasta tres veces.
  4. Un borrador que pasa se aplica al lienzo como fases y eventos normales. Nada se aplica sin haberse ejecutado antes, salvo que tú lo pidas explícitamente.

El panel de resultado tras la generación: cuatro puntos verdes de los filtros, las fases generadas en la línea de tiempo y el cuadro de refinamiento

FiltroSe muestra comoQué comprueba
1SyntaxQue la respuesta se pueda analizar y encaje con el esquema del storyboard: campos obligatorios, tipos de acción y disparador reconocidos.
2LogicQue los ID de carril existan en el mapa, que los sentidos de circulación sean coherentes, que los disparadores puedan activarse y que la maniobra encaje con la carretera real.
3RunQue el escenario se ejecute realmente en esmini, compilado a WebAssembly, dentro de tu navegador. Aquí fallan los eventos que nunca se disparan, los actores que se quedan atascados, las colisiones y las salidas de la calzada.
4MeaningQue la trayectoria registrada coincida con lo pedido. Un cut-in que nunca cruza la línea del carril falla en este filtro, aunque la ejecución en sí haya sido limpia.

El filtro 4 es una comprobación geométrica sobre la trayectoria registrada, no una segunda opinión de un modelo de lenguaje. Si pediste un cut-in, algo tiene que cortar el paso de verdad.

Al margen de los cuatro filtros, una revisión semántica compara el storyboard generado con tu petición y puede plantear objeciones —un paso capaz de frenar la aplicación automática y dejarte la decisión a ti (Apply with concerns). Estas objeciones son solo orientativas; los filtros son la barrera dura.

  • El problema exacto —qué campo, cuál es el error, cómo arreglarlo— va directo al modelo, que lo intenta de nuevo. La mayoría de las peticiones pasan a la primera o a la segunda.
  • Puedes ver el proceso en directo: el panel cuenta los intentos y nombra el paso en el que está, desde “Asking the AI…” hasta “Checking it matches your request…”, con el detalle filtro por filtro disponible en Details.
  • Si una petición necesita un empujón tuyo, aparece el botón Try again, el borrador se mantiene visible en la línea de tiempo, y cualquier escenario aplicado sin una ejecución limpia queda claramente etiquetado, de modo que un escenario verificado nunca se confunde con uno que no lo está.

El panel de resultado tras una generación satisfactoria, con el escenario aplicado y la línea de la revisión semántica

La generación se apoya en el mapa que has importado, no en suposiciones:

  • Carreteras y carriles: ID de carretera, ID y tipo de carril, sentido de circulación, qué carriles son adyacentes y cuál queda a la izquierda o a la derecha desde el punto de vista del conductor.
  • Las posiciones que ya colocaste: la carretera, el carril y la posición a lo largo de él de cada vehículo, marcados como fijos.
  • Lo que cabe en esa carretera: cuánta carretera queda por delante de cada actor y, por tanto, qué velocidades y qué duración de escenario son viables. Si una velocidad que pediste no encaja con la carretera disponible, el panel lo indica en Fitted to the road en lugar de cambiarla en silencio.

Los vehículos se pueden colocar en carriles de circulación y en carriles de enlace (entrada, salida, incorporación, deceleración, conexión); los peatones, en aceras, pasos de peatones y arcenes. La misma regla decide dónde puedes soltar un actor a mano, así que lo que tú puedes dibujar y lo que la IA puede proponer van siempre de la mano.

El prompt escrito en el panel de IA, con los actores colocados listados como chips encima

El vehículo ego sigue siendo el sistema bajo prueba

Sección titulada «El vehículo ego sigue siendo el sistema bajo prueba»

drawtonomy trata al ego como el elemento que se está probando, no como un actor más que se pueda guionizar. En la demo anterior, nada del storyboard generado le dice al ego que frene: la petición solo dice “The Ego follows and keeps a safe distance.” El frenado que se ve en el vídeo es el controlador de crucero de referencia reaccionando al cut-in y a la deceleración del coche rojo:

Velocidad
Coche rojo (guionizado)60 km/h → 20 km/h, empezando 0,7 s después de asentarse en el carril
Ego (no guionizado)40 km/h → 21 km/h, siguiendo a 10 m

Esa es la forma de una prueba útil: el estímulo queda escrito, y la respuesta es lo que realmente estás midiendo. Consulta condiciones de fin y de fallo para ver cómo convertir esa respuesta en un veredicto de PASS o FAIL.

El instante del cut-in: el coche rojo se asienta en el carril del ego y empieza a frenar

Una vez aplicado un escenario, el mismo cuadro se convierte en un cuadro de refinamiento: describe el cambio en lugar de volver a generar desde cero. Los refinamientos se aplican como ediciones puntuales —una velocidad, un umbral de disparador, un evento añadido o eliminado, el tiempo de fin del escenario— de modo que las partes que ya editaste a mano quedan tal cual.

Las órdenes numéricas sencillas se resuelven sin llamar al modelo. Por ejemplo, “Set Vehicle2 to 40 km/h” nombra un actor, un número y una unidad, así que drawtonomy lo resuelve directamente y el panel indica que no hizo falta ninguna llamada a la IA. Cualquier petición ambigua sí pasa por el modelo.

Esto es lo que el generador puede expresar hoy —y cómo se comporta cuando una petición va más allá.

  • Un vocabulario de maniobras completo: cambios de velocidad, cambios de carril, desplazamientos laterales, teletransportes, mantenimiento de distancia y seguimiento de trayectoria, disparados por tiempo de simulación, distancia relativa, tiempo entre vehículos, velocidad o el estado de otro evento. Cualquier cosa que generes llega como fases y eventos normales, así que lo que quede fuera de este vocabulario es solo una edición manual de distancia.
  • Intentos que nunca ves: una petición puede resolverse a la primera o necesitar hasta tres, cada uno corregido por los filtros. Lo que llega a tu lienzo es el intento que los superó.
  • Una duración ajustada a la carretera: la duración del escenario se calcula a partir de la maniobra, las velocidades y la carretera disponible por delante, de modo que la ejecución siempre termina sobre asfalto real. ¿Necesitas que dure más? Pídelo en el cuadro de refinamiento y se aplicará como una edición puntual.
  • Espacio para maniobrar: un adelantamiento necesita carretera. Dale a los actores un tramo de unos 30 m o más y el solucionador tendrá con qué trabajar.

La generación usa tu propia clave de API, así que las peticiones se ejecutan contra tu cuenta y tu cuota. La clave se guarda en tu navegador y se envía directamente al proveedor que elijas: nunca llega a ningún servidor de drawtonomy, ni a un archivo, ni a un registro.

Abre el panel AI en el editor de escenarios y pulsa API key al final:

La fila de la clave de API en el panel de IA: un desplegable de proveedor en Anthropic, un campo para la clave y un botón Clear

  1. Elige un proveedor: Anthropic (opción por defecto), OpenAI (ChatGPT) o Gemini.
  2. Pega la clave y pulsa Save. El campo pasará a mostrar Replace key, y aparecerá un botón Clear para borrarla de nuevo.
  3. Cada proveedor recuerda su propia clave, así que cambiar de proveedor no borra la clave del otro.

Créala en la consola de Anthropic (Settings → API keys → Create Key). Hace falta una cuenta de Anthropic con crédito de API; los planes de suscripción de Claude son independientes del acceso a la API.

El panel indica la causa en lugar de fallar en silencio:

Lo que vesQué hacer
The key was rejectedComprueba que la clave es válida y tiene acceso a la API, y que está limitada a un solo workspace (ver arriba).
The API is rate limiting this keyEspera un momento y pulsa Try again.
The API is temporarily unavailableUna caída puntual por parte del proveedor; reinténtalo en breve.