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.
Compare a regulação com apenas a antecipação adaptativa
Execute Curva fechada · regulada e salve o resultado como A. Em seguida, execute Apenas antecipação adaptativa. Trajetória, pose inicial, veículo e velocidade desejada permanecem os mesmos enquanto a regulação por curvatura e a desaceleração de aproximação são desativadas. Leia a velocidade real e o tempo de passagem pelo ponto final junto com o erro de trajetória cruzada: uma execução mais lenta não deve ser classificada apenas pelo erro.
A antecipação e a regulação de velocidade têm grupos de controle separados. Antecipação fixa + regulação desativa apenas a adaptação. Sem regulação por curvatura e Sem desaceleração de aproximação isolam cada regra de velocidade. Piso de regulação mais alto demonstra como um piso pode elevar um candidato reduzido. As predefinições restauram todas as condições, então verifique as diferenças de parâmetros entre A/B.
A antecipação seleciona a direção; a regulação seleciona a velocidade
Com a adaptação ativada, Ld=clamp(vT,Lmin,Lmax), usando a velocidade atual do modelo v. Com ela desativada, Ld é fixo. A geometria do alvo do PP/APP é reutilizada: κ=2yb/(xb²+yb²) para o alvo (xb,yb) no referencial do veículo; direção δ=atan(Lκ). Se não houver interseção com o círculo, avance Ld ao longo da trajetória projetada e limite ao ponto final, sempre usando a distância real até o alvo. Alvos atrás ou coincidentes antes da conclusão encerram a execução com um motivo.
A velocidade é calculada nesta ordem:
- A regulação por curvatura multiplica a velocidade desejada por min(1,R/Rmin), onde R=1/|κ|. Curvatura zero deixa a velocidade desejada inalterada.
- Eleve esse candidato ao piso de velocidade de regulação. Esse piso pode enfraquecer a redução; não é um limite de segurança.
- Assim que o comprimento restante da trajetória fica estritamente abaixo da distância de aproximação D, escale pela distância euclidiana até o ponto final/D. Aplique o piso de aproximação, mas nunca eleve a velocidade acima de seu valor anterior à aproximação.
- Limite a [0, velocidade desejada]. O servo comum a=2(pedido−velocidade real) e os limites de aceleração da planta determinam a velocidade real.
Para desejado=4 m/s, κ=0,25 /m e Rmin=8 m, o candidato de curvatura é 2 m/s. Um piso de regulação de 0,25 m/s o deixa inalterado. Com comprimento restante=1,5 m, distância até o ponto final=1,5 m e D=3 m, a aproximação dá 1 m/s acima de um piso de aproximação de 0,1 m/s. No comprimento restante exatamente igual a 3 m, o escalonamento de aproximação ainda não começou.
Inspecione os estágios de velocidade durante a reprodução
Reproduza, pause, avance passo a passo ou percorra. A exibição do tempo selecionado separa desejado → candidato de curvatura → piso → pedido final da velocidade real. No gráfico de velocidade, o pontilhado cinza é o desejado, o verde é o pedido regulado e o azul/laranja é o real; A é tracejado e B é sólido. Trajetória, pose do veículo, círculo de antecipação e alvo acompanham os gráficos de erro, direção e antecipação. A tabela numérica e o JSON são gerados a partir dos dados da simulação.
As três métricas de duração ativa somam o intervalo dt independentemente e podem se sobrepor. Tempo em que o candidato de curvatura está abaixo do desejado inclui períodos em que o piso sobrepõe esse candidato; não é a duração da desaceleração real do veículo.
Versão de referência e diferenças de modelo
As regras escalares de velocidade seguem o commit fixado f4108e5b1c2bce804a1aa0c7be6673a8eb4a1501 do Nav2 Jazzy. Sua aritmética/ordem é verificada em relação à referência em C++, mas isto não é um resultado de execução do Nav2. O Duskcoil usa um modelo compartilhado de eixo traseiro e projeção global na trajetória mais próxima: o comprimento restante é o comprimento da trajetória menos o comprimento de arco projetado. O Nav2 recebe uma trajetória local transformada/podada, então suas entradas podem diferir. A regulação usa a curvatura de perseguição pedida antes dos limites do atuador.
O modelo comum usa intervalos de 0,05 s por 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 e 0,8 rad/s de variação de direção. O movimento é integrado em cada arco de curvatura mantida. A velocidade real não atinge o pedido instantaneamente. Não há inércia, deslizamento de pneu, modelo de obstáculo/mapa de custos, previsão de colisão, marcha à ré, rotação para o rumo ou antecipação de curvatura separada. Esta não é uma avaliação de desempenho de hardware ou de segurança.
A conclusão é uma passagem amostrada pelo ponto final: o comprimento de arco restante e a distância até o ponto final são ambos ≤0,25 m, com o rumo dentro de 0,15 rad da tangente final. Isso não garante a parada; uma velocidade positiva no piso de aproximação não significa estacionamento. Uma distância de trajetória superior a 10 m encerra a execução como fora da trajetória; 30 s é o limite de tempo. O tempo de passagem incompleto é "—". O RMS de CTE e de rumo usa integração trapezoidal de amostras ao quadrado ao longo do tempo decorrido. Evite classificar execuções parciais ou durações diferentes apenas pelo erro.
Os nomes dos parâmetros dependem da versão
| Significado no navegador | Jazzy | Rolling, verificado em 2026-09-21 |
|---|---|---|
| Velocidade desejada | desired_linear_vel | max_linear_vel |
| Antecipação escalada por velocidade | use_velocity_scaled_lookahead_dist | igual |
| Tempo de antecipação | lookahead_time | igual |
| Regulação por curvatura | use_regulated_linear_velocity_scaling | igual |
| Limiar de raio de curva | regulated_linear_scaling_min_radius | igual |
| Piso de regulação | regulated_linear_scaling_min_speed | igual |
| Distância / piso de aproximação | approach_velocity_scaling_dist / min_approach_linear_velocity | igual |
A alternância de ativação/desativação da aproximação é uma ablação didática, não um parâmetro ROS do Jazzy. Os recursos de janela dinâmica do Rolling não estão implementados aqui. Os padrões do Laboratório são valores didáticos, não uma configuração recomendada do Nav2.
Exemplos gerados a partir do mesmo código
Os resultados abaixo do Python nativo usam a curva padrão de raio 5 m, velocidade inicial e desejada de 4 m/s, deslocamento lateral de 1 m e distância entre eixos de 2,5 m.
| Configuração | Status | Decorrido [s] | RMS de CTE [m] |
|---|---|---|---|
| regulada | completed | 4,10 | 0,37348 |
| apenas adaptativa | completed | 1,80 | 0,52087 |
| sem aproximação | completed | 3,00 | 0,43649 |
Referências e Laboratórios relacionados
- Funções de velocidade fixadas do Jazzy
- Controlador e ordem de restrições do Jazzy
- Guia de parâmetros do Jazzy
- Guia de parâmetros do Rolling
- Laboratório APP / Laboratório PP
A execução no navegador não requer instalação local do Python. O download do código-fonte é opcional. Código-fonte e notas do modelo.
Comentários
Entre na sua conta para continuar.
Ainda não há dados.