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

Explore footprint geometry in your browser

Change the rectangular body dimensions, corridor width, heading and lateral offset in the panel above. The diagram and signed gaps describe an exact rectangle between two infinite parallel walls. No ROS or local Python is required. The diagnostic workflow below remains separate from this geometry exercise.

The rectangle centre is the supplied reference point. World x runs along the corridor, world y points across it, and positive heading rotates counterclockwise from +x. Length L lies along body x; width B lies along body y. Walls lie at y=±W/2 and the centre at (0,e). For heading θ, the transverse span is S=L|sin θ|+B|cos θ|. The upper-wall gap is W/2−e−S/2, the lower-wall gap is W/2+e−S/2, and the minimum is W/2−|e|−S/2. Positive means separation; zero means contact; negative means overlap with a wall half-plane. These are signed transverse gaps, not general polygon-distance or costmap outputs. The numerical contact label uses a tolerance of 10⁻¹² m, not an operating margin.

The default 0.60 m width in a 0.80 m corridor gives 0.10 m on each side at zero heading and offset. Try a 30° heading, a 0.10 m offset, a 90° heading, or a wider corridor. Changing heading can move a corner into a wall even when the aligned width fits. A/B uses equal x/y scales and a common extent across both results; the table lists all four transformed corners in metres.

The dashed circle has radius R=√(L²+B²)/2. It bounds all orientations during a full rotation about the fixed rectangle centre. The minimum gap over that full rotation is W/2−|e|−R, calculated analytically rather than from sampled angles. This is not the gap for a particular requested turn, a planned swept path or a kinematically feasible manoeuvre. A 90° pose can fit while intermediate orientations overlap. The rectangle dimensions describe the entire assumed outline; there is no additional footprint padding.

All inputs are synthetic teaching choices. There are no map cells, obstacle observations, inflation costs, localization uncertainty, payload model, TF, planner, controller, velocity commands or actual Nav2 execution. A positive geometric gap does not establish passage feasibility or operating safety. The full-turn circle is an explanatory envelope, not a proposed robot_radius configuration. Nav2's tuning guide distinguishes robot footprint choices from inflation potential fields; the inflation parameters describe costs that this exercise does not compute. References reviewed 2026-09-20.

For supplied map/pose/goal checks, use the separate navigation Lab. Continue below to inspect why a real navigation stack may stop.

Un percorso visibile non garantisce l'esistenza di un comando di velocità fattibile dalla posizione corrente. Diagnosticare separatamente la pianificazione e l'esecuzione. Questo flusso di lavoro è destinato a ROS 2/Nav2 Jazzy ed è stato verificato rispetto alla documentazione; non si tratta di un report di guida hardware.

Acquisizione di un intervallo di arresto

Raccogliere il percorso globale, le mappe dei costi locali/globali, l'impronta, il TF, l'odometria, i comandi di velocità, il risultato dell'azione e i log. Sovrapporre i dati a intervalli di tempo e frame coerenti in RViz. Non confrontare i dati di avvio con un'istantanea successiva come se fossero simultanei. rosbag2 replay aiuta a mantenere fissi gli input.

Diagram 1 · Use the button to switch views
Quattro fasi per la diagnosi di un arresto Nav2.

Verifica della geometria fisica

Un robot largo 0,60 m, centrato e allineato in un corridoio di 0,80 m, ha uno spazio libero di 0,10 m su ciascun lato. Questo calcolo statico esclude l'errore di localizzazione, lo spessore della parete mappata, il carico utile e la rotazione degli angoli. La larghezza richiesta di un rettangolo cambia con l'orientamento.

L'impronta descrive un poligono; il raggio del robot fornisce un'approssimazione circolare. Confronta il contorno configurato con RViz, verificando i metri, l'origine del collegamento base e i sensori o i carichi sporgenti. La Guida alla messa a punto di Nav2 tratta i campi relativi alla forma e al costo. Non ridurre il contorno al di sotto del robot reale solo per rimuovere un punto di arresto.

Il costo non è identico a quello di una parete fisica

I layer degli ostacoli incorporano le osservazioni; l'inflazione distribuisce il costo dipendente dalla distanza attorno agli ostacoli. Il raggio di inflazione ne definisce l'estensione, mentre il fattore di scala del costo controlla il decadimento esponenziale. A parità di altre condizioni, un fattore di scala maggiore produce un decadimento più rapido. Vedi Parametri del layer di inflazione.

Non tutte le fasce ad alto costo sono regioni assolutamente proibite e il raggio di inflazione da solo non garantisce una distanza minima dal corpo. Considerare il controllo delle collisioni, l'ingombro e l'utilizzo dei costi di ciascun pianificatore/controllore. Se la mappa globale consente il passaggio ma la mappa locale conserva vecchi ostacoli, verificare prima la rimozione degli ostacoli, il raggio di osservazione e i timestamp TF validi.

Collegare un percorso a un movimento fattibile

Un percorso specifica dove viaggiare. Un controllore deve generare un movimento coerente con la velocità e i vincoli attuali. Grandi cambi di orientamento in spazi ristretti, svolte sul posto richieste a un veicolo con un raggio di sterzata minimo o limiti di accelerazione possono rendere i movimenti candidati non fattibili.

La documentazione del Controller Server descrive la selezione del controllore, del controllore di avanzamento e del controllore di obiettivo. Avanzamento e arrivo sono condizioni distinte. Annotare i nomi dei plugin e gli errori prima di esaminare i vincoli specifici dei plugin.

Tracciare dove il comando scompare

Osservazione Prossimo controllo
Il controllore non può produrre un comando valido Mappa dei costi locale, TF, limiti di movimento e traiettorie candidate

L'uscita del controller è diversa da zero, ma l'uscita finale è zero | Smoother, monitor di collisione, input di arresto e priorità del comando |

L'uscita finale è diversa da zero, ma le ruote non si muovono | Argomento/tipo, driver, stato di abilitazione e modalità di controllo |

Il robot si muove ma segnala subito un errore | Odometria rispetto al movimento effettivo e alle condizioni di avanzamento |

Non dare per scontato che un argomento denominato /cmd_vel rappresenti la fase finale. Le configurazioni prevedono argomenti intermedi e possono utilizzare Twist o TwistStamped. Esaminare il publisher, il subscriber e il tipo effettivi con ros2 topic info <actual-topic> --verbose. Diagnosticare la condizione che ha causato l'arresto anziché disabilitare le funzioni di arresto.

Valutare una modifica alla volta

Correggere il passaggio, la posizione iniziale, l'obiettivo, la mappa e il registro degli input. Modificare un elemento, quindi confrontare la distanza minima, il numero di arresti, i comandi e le cause di errore, nonché l'arrivo. L'esempio aritmetico di 0,10 m non consente di stabilire una distanza operativa sicura; dimensioni reali, errori e condizioni operative richiedono una valutazione separata.

Se l'avvio stesso non è affidabile, tornare alla configurazione minima di Nav2. Una configurazione stabile semplifica la distinzione tra errori di mappatura e errori del driver.

Related reading

Record the same stopped interval for controlled comparisons.Riproduzione dei guasti del robot con rosbag2: input, TF e tempoExplore another aspect of this fieldPerché ICP fallisce: inizializzazione, valori anomali e geometria simmetricaExplore another aspect of this fieldTrasformazioni di coordinate robotiche: matrici, quaternioni e TF