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

Confronta la regolazione con il solo lookahead adattivo

Esegui Curva stretta · regolata e salva il risultato come A. Poi esegui Solo lookahead adattivo. Percorso, posa iniziale, veicolo e velocità desiderata restano gli stessi mentre la regolazione di curvatura e il rallentamento in avvicinamento sono disabilitati. Leggi la velocità effettiva e il tempo di passaggio dell'endpoint insieme all'errore di cross-track: un'esecuzione più lenta non deve essere classificata solo per errore.

Lookahead e regolazione della velocità hanno gruppi di controllo separati. Lookahead fisso + regolazione disabilita solo l'adattamento. Nessuna regolazione di curvatura e Nessun rallentamento in avvicinamento isolano ciascuna regola di velocità. Soglia minima di regolazione più alta dimostra come una soglia minima possa alzare un candidato ridotto. I preset ripristinano tutte le condizioni, quindi controlla le differenze di parametri A/B.

Il lookahead sceglie la sterzata; la regolazione sceglie la velocità

Con l'adattamento attivo, Ld=clamp(vT,Lmin,Lmax), usando la velocità attuale del modello v. Con l'adattamento disattivato, Ld è fisso. Viene riutilizzata la geometria del target di PP/APP: κ=2yb/(xb²+yb²) per il target (xb,yb) nel sistema di riferimento del veicolo; sterzata δ=atan(Lκ). Se non esiste intersezione con il cerchio, fai avanzare Ld lungo il percorso proiettato e limita al punto finale, usando sempre la distanza reale del target. I target dietro o coincidenti prima del completamento terminano l'esecuzione con un motivo.

La velocità è calcolata in quest'ordine:

  1. La regolazione di curvatura moltiplica la velocità desiderata per min(1,R/Rmin), dove R=1/|κ|. Curvatura zero lascia invariata la velocità desiderata.
  2. Alza quel candidato alla soglia minima di regolazione della velocità. Questa soglia può indebolire la riduzione; non è un limite di sicurezza.
  3. Una volta che la lunghezza di percorso residua è strettamente inferiore alla distanza di avvicinamento D, scala per distanza euclidea dal punto finale/D. Applica la soglia minima di avvicinamento, ma non alzare mai la velocità sopra il suo valore precedente all'avvicinamento.
  4. Limita a [0, velocità desiderata]. Il servo comune a=2(richiesta−velocità effettiva) e i limiti di accelerazione dell'impianto determinano la velocità effettiva.

Per desiderata=4 m/s, κ=0,25 /m e Rmin=8 m, il candidato di curvatura è 2 m/s. Una soglia minima di regolazione di 0,25 m/s lo lascia invariato. Con lunghezza residua=1,5 m, distanza dal punto finale=1,5 m e D=3 m, l'avvicinamento dà 1 m/s sopra una soglia minima di avvicinamento di 0,1 m/s. A lunghezza residua esattamente 3 m, la scalatura in avvicinamento non è ancora iniziata.

Ispeziona gli stadi della velocità durante la riproduzione

Riproduci, metti in pausa, avanza passo-passo o scorri. La visualizzazione al tempo selezionato separa desiderata → candidato di curvatura → soglia minima → richiesta finale dalla velocità effettiva. Nel grafico della velocità, il puntinato grigio è la velocità desiderata, il verde è la richiesta regolata e il blu/arancione è la velocità effettiva; A è tratteggiato e B continuo. Percorso, posa del veicolo, cerchio di lookahead e target accompagnano i grafici di errore, sterzata e lookahead. La tabella numerica e il JSON sono generati dai dati della simulazione.

Le tre metriche di durata attiva sommano il dt dell'intervallo in modo indipendente e possono sovrapporsi. Il tempo in cui il candidato di curvatura è sotto la velocità desiderata include periodi in cui la soglia minima prevale su quel candidato; non è la durata del rallentamento effettivo del veicolo.

Versione di riferimento e differenze del modello

Le regole scalari di velocità seguono il commit fissato di Nav2 Jazzy f4108e5b1c2bce804a1aa0c7be6673a8eb4a1501. La loro aritmetica/ordine è verificata rispetto al riferimento C++, ma questo non è un risultato di esecuzione Nav2. Duskcoil usa un modello ad assale posteriore condiviso e proiezione globale sul percorso più vicino: la lunghezza residua è la lunghezza del percorso meno la lunghezza d'arco proiettata. Nav2 riceve un percorso locale trasformato/potato, quindi i suoi input possono differire. La regolazione usa la curvatura di inseguimento richiesta prima dei limiti dell'attuatore.

Il modello comune usa intervalli di 0,05 s per al massimo 30 s. I limiti sono 8 m/s di velocità, ±2 m/s² di accelerazione, ±0,6 rad di sterzata e 0,8 rad/s di variazione della sterzata. Il moto è integrato su ciascun arco a curvatura mantenuta. La velocità effettiva non raggiunge istantaneamente la richiesta. Non ci sono inerzia, slittamento delle gomme, modello di ostacoli/costmap, previsione delle collisioni, retromarcia, rotazione verso la rotta o lookahead di curvatura separato. Questa non è una valutazione delle prestazioni hardware o della sicurezza.

Il completamento è un passaggio campionato dell'endpoint: lunghezza d'arco residua e distanza dal punto finale entrambe ≤0,25 m, rotta entro 0,15 rad rispetto alla tangente finale. Non garantisce l'arresto; una velocità positiva della soglia minima di avvicinamento non significa parcheggio. Una distanza di percorso superiore a 10 m termina l'esecuzione come fuori percorso; 30 s è il limite di tempo. Il tempo di passaggio incompleto è "—". CTE e RMS della rotta usano l'integrazione trapezoidale dei campioni al quadrato sul tempo trascorso. Evita di classificare esecuzioni parziali o durate diverse solo per errore.

I nomi dei parametri dipendono dalla release

Significato nel browser Jazzy Rolling, verificato il 2026-09-21
Velocità desiderata desired_linear_vel max_linear_vel
Lookahead scalato in velocità use_velocity_scaled_lookahead_dist uguale
Tempo di lookahead lookahead_time uguale
Regolazione di curvatura use_regulated_linear_velocity_scaling uguale
Soglia del raggio di curva regulated_linear_scaling_min_radius uguale
Soglia minima di regolazione regulated_linear_scaling_min_speed uguale
Distanza / soglia minima di avvicinamento approach_velocity_scaling_dist / min_approach_linear_velocity uguale

L'interruttore di attivazione/disattivazione dell'avvicinamento è un'ablazione didattica, non un parametro ROS di Jazzy. Le funzionalità a finestra dinamica di Rolling non sono implementate qui. I valori predefiniti del Lab sono valori didattici, non una configurazione Nav2 raccomandata.

Esempi generati dallo stesso codice

I risultati nativi Python sottostanti usano la curva predefinita di raggio 5 m, velocità iniziale e desiderata 4 m/s, offset laterale 1 m e passo (wheelbase) 2,5 m.

Impostazione Stato Trascorso [s] CTE RMS [m]
regulated completed 4,10 0,37348
adaptive only completed 1,80 0,52087
no approach completed 3,00 0,43649

Riferimenti e Lab correlati

L'esecuzione nel browser non richiede alcuna installazione locale di Python. Il download del sorgente è facoltativo. Sorgente e note sul modello.

Related reading

Explore another aspect of this fieldLab MPC — ririsolvi una sequenza di curvatura entro un orizzonte e vincoli di sterzataExplore another aspect of this fieldLab di confronto tra inseguitori di percorso — esegui PP, APP, RPP, Stanley e MPC nelle stesse condizioni