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.
Compare la regulación con el lookahead adaptativo solo
Ejecute Curva cerrada · regulada y guarde el resultado como A. Luego ejecute Solo lookahead adaptativo. La trayectoria, la pose inicial, el vehículo y la velocidad deseada permanecen iguales mientras la curvatura y la desaceleración de acercamiento están desactivadas. Lea la velocidad real y el tiempo de paso del punto final junto con el error transversal: una ejecución más lenta no debe clasificarse solo por el error.
El lookahead y la regulación de velocidad tienen grupos de control separados. Lookahead fijo + regulación desactiva solo la adaptación. Sin regulación de curvatura y Sin desaceleración de acercamiento aíslan cada regla de velocidad. Piso de regulación más alto demuestra cómo un piso puede elevar un candidato reducido. Los ajustes predefinidos restauran todas las condiciones, así que revise las diferencias de parámetros A/B.
El lookahead selecciona la dirección; la regulación selecciona la velocidad
Con la adaptación activada, Ld=clamp(vT,Lmin,Lmax), usando la velocidad actual v del modelo. Con ella desactivada, Ld es fijo. Se reutiliza la geometría de objetivo de PP/APP: κ=2yb/(xb²+yb²) para el objetivo (xb,yb) en el marco del vehículo; dirección δ=atan(Lκ). Si no existe intersección de círculo, avance Ld a lo largo de la trayectoria proyectada y recorte al punto final, usando siempre la distancia real al objetivo. Los objetivos detrás o coincidentes antes de completarse terminan la ejecución con una razón.
La velocidad se calcula en este orden:
- La regulación por curvatura multiplica la velocidad deseada por min(1,R/Rmin), donde R=1/|κ|. Curvatura cero deja la velocidad deseada sin cambios.
- Eleve ese candidato al piso de velocidad de regulación. Este piso puede debilitar la reducción; no es un límite de seguridad.
- Una vez que la longitud restante de la trayectoria está estrictamente por debajo de la distancia de acercamiento D, escale por la distancia euclidiana al punto final/D. Aplique el piso de acercamiento, pero nunca eleve la velocidad por encima de su valor previo al acercamiento.
- Recorte a [0, velocidad deseada]. El servo común a=2(solicitud−velocidad real) y los límites de aceleración de la planta determinan la velocidad real.
Para deseada=4 m/s, κ=0,25 /m y Rmin=8 m, el candidato de curvatura es 2 m/s. Un piso de regulación de 0,25 m/s lo deja sin cambios. Con longitud restante=1,5 m, distancia al punto final=1,5 m y D=3 m, el acercamiento da 1 m/s por encima de un piso de acercamiento de 0,1 m/s. Con la longitud restante exactamente en 3 m, el escalado de acercamiento aún no ha comenzado.
Inspeccione las etapas de velocidad durante la reproducción
Reproduzca, pause, avance paso a paso o desplácese. La visualización del tiempo seleccionado separa deseada → candidato de curvatura → piso → solicitud final de la velocidad real. En el gráfico de velocidad, el punteado gris es la deseada, el verde es la solicitud regulada y el azul/naranja es la real; A es discontinuo y B es sólido. La trayectoria, la pose del vehículo, el círculo de lookahead y el objetivo acompañan a los gráficos de error, dirección y lookahead. La tabla numérica y el JSON se generan a partir de los datos de la simulación.
Las tres métricas de duración activa suman el dt del intervalo de forma independiente y pueden superponerse. El tiempo en que el candidato de curvatura está por debajo de la deseada incluye periodos en los que el piso anula ese candidato; no es la duración de la desaceleración real del vehículo.
Versión de referencia y diferencias del modelo
Las reglas escalares de velocidad siguen el commit fijado f4108e5b1c2bce804a1aa0c7be6673a8eb4a1501 de Nav2 Jazzy. Su aritmética/orden se verifica contra la referencia en C++, pero esto no es un resultado de ejecución de Nav2. Duskcoil usa un modelo de eje trasero compartido y proyección global sobre la trayectoria más cercana: la longitud restante es la longitud de la trayectoria menos la longitud de arco proyectada. Nav2 recibe una trayectoria local transformada/recortada, por lo que sus entradas pueden diferir. La regulación usa la curvatura de persecución solicitada antes de los límites del actuador.
El modelo común usa intervalos 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 y 0,8 rad/s de cambio de dirección. El movimiento se integra en cada arco de curvatura retenida. La velocidad real no alcanza instantáneamente la solicitud. No hay inercia, deslizamiento de neumáticos, modelo de obstáculos/mapa de costos, predicción de colisión, marcha atrás, rotación hacia el rumbo ni lookahead de curvatura separado. Esto no es una evaluación de desempeño de hardware ni de seguridad.
La finalización es el paso muestreado por el punto final: la longitud de arco restante y la distancia al punto final ambas ≤0,25 m, con el rumbo dentro de 0,15 rad de la tangente final. No garantiza la detención; una velocidad positiva del piso de acercamiento no significa estacionar. Una distancia de trayectoria 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 “—”. El RMS de CTE y de rumbo usa integración trapezoidal de las muestras al cuadrado sobre el tiempo transcurrido. Evite clasificar ejecuciones parciales o de duración distinta solo por el error.
Los nombres de parámetros dependen de la versión
| Significado en el navegador | Jazzy | Rolling, verificado el 2026-09-21 |
|---|---|---|
| Velocidad deseada | desired_linear_vel | max_linear_vel |
| Lookahead escalado por velocidad | use_velocity_scaled_lookahead_dist | igual |
| Tiempo de lookahead | lookahead_time | igual |
| Regulación por curvatura | use_regulated_linear_velocity_scaling | igual |
| Umbral de radio de giro | regulated_linear_scaling_min_radius | igual |
| Piso de regulación | regulated_linear_scaling_min_speed | igual |
| Distancia/piso de acercamiento | approach_velocity_scaling_dist / min_approach_linear_velocity | igual |
El interruptor de acercamiento activado/desactivado es una ablación didáctica, no un parámetro ROS de Jazzy. Las funciones de ventana dinámica de Rolling no están implementadas aquí. Los valores predeterminados del Lab son valores didácticos, no una configuración recomendada de Nav2.
Ejemplos generados a partir del mismo código
Los resultados nativos de Python a continuación usan la curva predeterminada de radio 5 m, velocidad inicial y deseada de 4 m/s, desplazamiento lateral de 1 m y distancia entre ejes de 2,5 m.
| Ajuste | Estado | Transcurrido [s] | RMS de CTE [m] |
|---|---|---|---|
| regulated | completed | 4.10 | 0.37348 |
| adaptive only | completed | 1.80 | 0.52087 |
| no approach | completed | 3.00 | 0.43649 |
Referencias y Labs relacionados
- Funciones de velocidad de Jazzy fijadas
- Orden del controlador y las restricciones en Jazzy
- Guía de parámetros de Jazzy
- Guía de parámetros de Rolling
- Lab de APP / Lab de PP
La ejecución en el navegador no requiere instalación local de Python. La descarga del código fuente es opcional. Código fuente y notas del modelo.
Comentarios
Inicia sesión para continuar.
Todavía no hay datos.