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.
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
- Coulter, Implementation of the Pure Pursuit Path Tracking Algorithm (1992): Referência geométrica de perseguição.
- Documentação do Nav2 Iron RPP: Referência para a convenção de APP escalada por velocidade; este Laboratório não é uma implementação completa do Nav2.
- Laboratório APP
- MPC
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.
Comentários
Entre na sua conta para continuar.
Ainda não há dados.