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.

Um caminho visível não garante a existência de um comando de velocidade viável a partir da pose atual. Diagnostique o planejamento e a execução separadamente. Este fluxo de trabalho é direcionado ao ROS 2/Nav2 Jazzy e foi verificado com base na documentação; não se trata de um relatório de hardware.

Capturar um intervalo de parada

Colete o caminho global, mapas de custo local/global, área de contato, TF, odometria, comandos de velocidade, resultado da ação e logs. Sobreponha os dados em tempos e frames consistentes no RViz. Não compare os dados de inicialização com um snapshot posterior como se fossem simultâneos. O rosbag2 replay ajuda a manter as entradas fixas.

Diagram 1 · Use the button to switch views
Quatro etapas para diagnosticar uma parada do Nav2.

Verificar a geometria física

Um robô de 0,60 m de largura, centralizado e alinhado em um corredor de 0,80 m, possui 0,10 m de folga em cada lado. Este cálculo estático exclui erros de localização, espessura da parede mapeada, carga útil e varredura de canto durante a rotação. A largura necessária de um retângulo varia com a orientação.

A área de contato descreve um polígono; o raio do robô fornece uma aproximação circular. Compare o contorno configurado com o RViz, verificando os metros, a origem do link base e sensores ou cargas salientes. O Guia de ajuste do Nav2 aborda os campos de forma e custo. Não reduza o contorno abaixo do tamanho real do robô apenas para remover um batente.

O custo não é idêntico ao de uma parede física

As camadas de obstáculos incorporam observações; a inflação espalha o custo dependente da distância ao redor dos obstáculos. O raio de inflação define sua extensão, enquanto o fator de escala de custo controla o decaimento exponencial. Com outras condições fixas, um fator de escala maior produz um decaimento mais rápido. Consulte Parâmetros da Camada de Inflação.

Nem toda faixa de alto custo é uma região absolutamente proibida, e o raio de inflação sozinho não garante uma folga mínima para o corpo. Leve em consideração a verificação de colisões, a área de cobertura e o custo de cada planejador/controlador. Se o mapa global permitir a passagem, mas o mapa local ainda apresentar obstáculos antigos, investigue primeiro a possibilidade de desobstrução, o alcance de observação e os registros de tempo válidos da TF (Força de Transferência).

Conectar um caminho a um movimento viável

Um caminho especifica para onde viajar. Um controlador deve gerar um movimento consistente com a velocidade e as restrições atuais. Grandes mudanças de orientação em espaços apertados, curvas no mesmo lugar solicitadas a um veículo com raio de giro mínimo ou limites de aceleração podem tornar os movimentos candidatos inviáveis.

A documentação do Servidor de Controlador descreve a seleção do controlador, do verificador de progresso e do verificador de objetivos. Progresso e chegada são condições distintas. Registre os nomes dos plugins e os erros antes de inspecionar as restrições específicas de cada plugin.

Rastrear onde o comando desaparece

Observação Próxima verificação
O controlador não pode produzir um comando válido Mapa de custo local, TF, limites de movimento e trajetórias candidatas
A saída do controlador é diferente de zero, mas a saída final é zero Suavização, monitor de colisões, entrada de parada e prioridade de comando
A saída final é diferente de zero, mas as rodas não se movem Tópico/tipo, driver, estado de ativação e modo de controle
O robô se move, mas reporta falha rapidamente Odometria versus movimento real e condições de progresso

Não assuma que um tópico chamado /cmd_vel seja o estágio final. As configurações possuem tópicos intermediários e podem usar Twist ou TwistStamped. Inspecione o publicador, assinante e tipo reais com ros2 topic info <actual-topic> --verbose. Diagnostique a condição que acionou uma parada em vez de desativar as funções de parada.

Avalie uma alteração por vez

Corrija a passagem, a pose inicial, o objetivo, o mapa e o registro de entrada. Altere um item e compare a folga mínima, a contagem de paradas, os comandos e os motivos da falha, bem como a chegada. O exemplo aritmético de 0,10 m não pode estabelecer uma folga operacional segura; dimensões reais, erros e condições operacionais precisam de avaliação separada.

Se a inicialização em si for instável, retorne à configuração mínima do Nav2. Uma configuração estável facilita a distinção entre falhas de mapeamento e falhas do driver.

Related reading

Record the same stopped interval for controlled comparisons.Reproduza falhas do robô com rosbag2: entradas, TF e tempo.Explore another aspect of this fieldPor que o ICP falha: inicialização, valores discrepantes e geometria simétrica.Explore another aspect of this fieldTransformações de coordenadas de robôs: matrizes, quatérnios e TF