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 uma trajetória no seu navegador

Pressione Executar no painel do navegador acima. O cinza é a trajetória de referência; o azul é a trajetória do eixo traseiro. O círculo mostra a antecipação, o ponto é o alvo, e o segmento é a distância entre eixos. Reproduza, pause, avance passo a passo ou percorra a execução para inspecionar onde a direção começa. A tabela numérica e o JSON para download contêm os resultados calculados.

PP: mantém a distância fixa

O PP mantém a antecipação Ld selecionada mesmo quando a velocidade muda. Execute a curva nominal, salve-a como A, então experimente Antecipação curta e Antecipação longa. Compare a direção e a conclusão, assim como o erro de rastreamento.

O seletor de controlador alterna entre PP e APP. A antecipação fixa afeta apenas o PP; tempo e limites afetam apenas o APP. Salve uma execução como A e altere apenas o controlador para manter a trajetória, o estado inicial, o comando de velocidade e o veículo. As predefinições também redefinem outras condições, então revise as diferenças de parâmetros exibidas.

Geometria do alvo

Partindo da projeção mais próxima na trajetória, escolha a primeira interseção do comprimento de arco à frente da trajetória com o círculo de raio Ld ao redor do eixo traseiro. Para o alvo (xb, yb) no referencial do veículo, a curvatura κ = 2 yb / (xb² + yb²), então a direção δ = atan(L κ). Esquerda é positivo.

Quando não há interseção, avance Ld no comprimento de arco da trajetória a partir da projeção e limite ao ponto final. A exibição distingue alvos de círculo, recuperação e ponto final; a curvatura sempre usa a distância real ao quadrado até o alvo. Um alvo atrás do veículo, ou coincidente com ele antes da conclusão, encerra a execução com um motivo. Essas regras de recuperação e ponto final são escolhas didáticas, não uma reprodução do Nav2.

Modelo comum e comparações justas

O estado é o eixo traseiro (x, y) [m], guinada anti-horária [rad] e velocidade à frente v [m/s]. As equações são dx/dt=v cos(guinada), dy/dt=v sin(guinada), dguinada/dt=v tan(δ)/L. O deslocamento lateral inicial é positivo à esquerda do primeiro segmento; o deslocamento de rumo é relativo a esse segmento. As trajetórias são polilinhas abertas: reta, quartos de círculo de raio 20 m e raio 5 m, ou uma curva em S. O espaçamento padrão é 0,1 m (em x para a curva em S).

O passo de tempo é de 0,05 s ao longo de no máximo 30 s. Os limites são 8 m/s de velocidade, ±2 m/s² de aceleração, ±0,6 rad de direção, 0,8 rad/s de variação de direção. A direção inicial é zero. Cada intervalo aplica um limite discreto de taxa de variação da direção e então mantém a direção fixa. O movimento de curvatura constante é integrado exatamente, incluindo a aceleração até a velocidade zero/máxima e velocidade constante depois disso. Ambos os controladores usam a=2(vdesejado−v). Nenhum atrito, inércia, deslizamento de pneu, obstáculo ou atraso de medição é modelado.

O erro de trajetória cruzada (CTE) é o deslocamento normal-esquerdo com sinal a partir do segmento mais próximo. O erro de rumo é a guinada do veículo menos a tangente projetada, ajustado para [-π,π). O RMS usa integração temporal trapezoidal de amostras ao quadrado dividida pelo tempo decorrido. O excesso longitudinal no ponto final é excluído do CTE, mas incluído na distância euclidiana da trajetória. O RMS da taxa de direção inclui a transição inicial a partir de zero e descreve comandos discretos.

Conclusão significa que o comprimento de arco projetado restante e a distância até o ponto final são ambos ≤0,25 m, com o rumo dentro de 0,15 rad do último segmento. É uma passagem amostrada pelo ponto final, não uma parada ou estacionamento; a passagem entre amostras pode não ser detectada. Uma distância superior a 10 m encerra uma execução como fora da trajetória; 30 s é o limite de tempo. O tempo de passagem incompleto é "—". Execuções parciais e tempos decorridos diferentes não devem ser classificados apenas pelo erro. Políticas de velocidade iguais ainda podem produzir tempos de conclusão diferentes. Este modelo sintético não estabelece segurança de hardware nem desempenho em alta velocidade.

Exemplos sintéticos reproduzíveis

Estes valores foram gerados por Python nativo a partir do mesmo código. A curva suave usa velocidade inicial e alvo de 2 m/s, deslocamento lateral inicial de 1 m, deslocamento de rumo zero e distância entre eixos de 2,5 m.

Configuração Status Decorrido [s] RMS de CTE [m]
curta controller_failed 1,80 0,72123
nominal completed 15,70 0,25996
longa completed 15,50 0,37896

Referências e Laboratório relacionado

O download do código-fonte é opcional. A execução no navegador não requer instalação local do Python. Código-fonte + notas do modelo.

Related reading

Ler sobre controle preditivo e restriçõesIntrodução à Engenharia de Controle: Controle Preditivo por Modelo — Agindo Dentro de RestriçõesExplore another aspect of this fieldLaboratório MPC — resolva novamente uma sequência de curvatura dentro de um horizonte e dos limites de direçãoExplore another aspect of this fieldLaboratório de comparação de rastreamento de trajetória — execute PP, APP, RPP, Stanley e MPC sob as mesmas condições