Contents — find the section you need

Change parameters and verify

Open the panel, then press Run to load Python. You can stop execution and reset parameters. Results are computed on this device. No Python installation is required.

Local execution steps below are optional for reproducing the source results; they are not required for the browser experiment.

The experiment controls are in English.

Open experiment panel in a new tab

Download reproduction source

Siga una trayectoria en su navegador

Presione Run en el panel del navegador de arriba. El gris es la trayectoria de referencia; el azul es la trayectoria del eje trasero. El círculo muestra el lookahead, el punto es el objetivo y el segmento es la distancia entre ejes. Reproduzca, pause, avance paso a paso o desplácese por la ejecución para inspeccionar dónde comienza la dirección. La tabla numérica y el JSON descargable contienen los resultados calculados.

APP: escalar la distancia con la velocidad actual

APP en este Lab significa lookahead escalado por velocidad: Ld = clamp(v × T, Lmin, Lmax). Aquí v es la velocidad actual, no la velocidad objetivo, y T está en segundos. Acelerar desde el reposo revela la transición desde el límite mínimo. Esto no implementa la regulación de velocidad basada en curvatura de RPP.

El selector de controlador cambia entre PP y APP. El lookahead fijo afecta solo a PP; el tiempo y los límites afectan solo a APP. Guarde una ejecución como A y cambie solo el controlador para conservar la trayectoria, el estado inicial, el comando de velocidad y el vehículo. Los ajustes predefinidos también reinician las demás condiciones, por lo que conviene revisar las diferencias de parámetros mostradas.

Geometría del objetivo

Partiendo de la proyección más cercana sobre la trayectoria, elija la primera intersección hacia adelante en longitud de arco de la trayectoria con el círculo de radio Ld alrededor del eje trasero. Para el objetivo (xb, yb) en el marco del vehículo, la curvatura κ = 2 yb / (xb² + yb²), y luego la dirección δ = atan(L κ). La izquierda es positiva.

Cuando no hay intersección, avance Ld en longitud de arco de la trayectoria desde la proyección y recorte al punto final. La visualización distingue los objetivos de círculo, recuperación y punto final; la curvatura siempre usa la distancia al cuadrado real del objetivo. Un objetivo detrás del vehículo, o coincidente con él antes de completarse, termina la ejecución con una razón. Estas reglas de recuperación y punto final son decisiones didácticas, no una reproducción de Nav2.

Modelo común y comparaciones justas

El estado es el eje trasero (x, y) [m], el rumbo antihorario [rad] y la velocidad hacia adelante v [m/s]. Las ecuaciones son dx/dt=v cos(yaw), dy/dt=v sin(yaw), dyaw/dt=v tan(δ)/L. El desplazamiento lateral inicial es positivo a la izquierda del primer segmento; el desplazamiento de rumbo es relativo a ese segmento. Las trayectorias son polilíneas abiertas: recta, cuartos de círculo de radio 20 m y radio 5 m, o una curva en S. El espaciamiento predeterminado es de 0,1 m (en x para la curva en S).

El paso de tiempo es de 0,05 s durante como máximo 30 s. Los límites son 8 m/s de velocidad, ±2 m/s² de aceleración, ±0,6 rad de dirección, 0,8 rad/s de cambio de dirección. La dirección inicial es cero. Cada intervalo aplica un límite discreto de tasa de cambio de dirección y luego mantiene la dirección fija. El movimiento de curvatura constante se integra exactamente, incluida la aceleración hasta velocidad cero/máxima y velocidad constante después. Ambos controladores usan a=2(vobjetivo−v). No se modela fricción, inercia, deslizamiento de neumáticos, obstáculos ni retardo de medición.

El error transversal es el desplazamiento normal izquierdo con signo respecto al segmento más cercano. El error de rumbo es el rumbo del vehículo menos la tangente proyectada, envuelto a [-π,π). El RMS usa integración trapezoidal en el tiempo de las muestras al cuadrado dividida por el tiempo transcurrido. El sobreimpulso longitudinal en el punto final se excluye del CTE pero se incluye en la distancia euclidiana de la trayectoria. El RMS de la tasa de dirección incluye la transición inicial desde cero y describe comandos discretos.

La finalización significa que la longitud de arco restante proyectada y la distancia al punto final son ambas ≤0,25 m, con el rumbo dentro de 0,15 rad del último segmento. Es el paso muestreado por el punto final, no una detención o estacionamiento; el paso entre muestras puede pasarse por alto. Una distancia superior a 10 m termina la ejecución como fuera de trayectoria; 30 s es el límite de tiempo. El tiempo de paso incompleto es “—”. Las ejecuciones parciales y los tiempos transcurridos distintos no deben clasificarse solo por el error. Políticas de velocidad iguales aún pueden producir tiempos de finalización distintos. Este modelo sintético no establece la seguridad del hardware ni el desempeño a alta velocidad.

Ejemplos sintéticos reproducibles

Estos valores fueron generados por Python nativo a partir del mismo código. La curva suave usa velocidad inicial y objetivo de 2 m/s, desplazamiento lateral inicial de 1 m, desplazamiento de rumbo cero y distancia entre ejes de 2,5 m.

Ajuste Estado Transcurrido [s] RMS de CTE [m]
short controller_failed 1.80 0.72123
nominal completed 15.70 0.25996
long completed 15.50 0.37896

Referencias y Lab relacionado

La descarga del código fuente es opcional. La ejecución en el navegador no requiere instalación local de Python. Código fuente + notas del modelo.

Related reading

Leer sobre el control predictivo y las restriccionesIntroducción a la ingeniería de control: Control predictivo basado en modelos: Actuando dentro de las restriccionesExplore another aspect of this fieldLab de MPC: volver a resolver una secuencia de curvatura dentro del horizonte y los límites de direcciónExplore another aspect of this fieldLab de comparación de seguimiento de trayectoria: ejecute PP, APP, RPP, Stanley y MPC en las mismas condiciones