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.
Suivre une trajectoire dans votre navigateur
Appuyez sur Exécuter dans le panneau du navigateur ci-dessus. Le gris est la trajectoire de référence ; le bleu est la trajectoire de l'essieu arrière. Le cercle montre l'anticipation, le point est la cible, et le segment est l'empattement. Lisez, mettez en pause, avancez pas à pas ou parcourez l'exécution pour examiner où la direction commence. Le tableau numérique et le JSON téléchargeable contiennent les résultats calculés.
PP : maintenir la distance fixe
PP maintient l'anticipation Ld sélectionnée même lorsque la vitesse change. Exécutez la courbe nominale, enregistrez-la comme A, puis essayez Anticipation courte et Anticipation longue. Comparez la direction et l'achèvement ainsi que l'erreur de suivi.
Le sélecteur de contrôleur bascule entre PP et APP. L'anticipation fixe n'affecte que PP ; le temps et les bornes n'affectent que APP. Enregistrez une exécution comme A et modifiez seulement le contrôleur pour conserver la trajectoire, l'état initial, la commande de vitesse et le véhicule. Les préréglages réinitialisent aussi les autres conditions, examinez donc les différences de paramètres affichées.
Géométrie de la cible
En partant de la projection la plus proche sur la trajectoire, choisissez la première intersection en longueur d'arc avant de la trajectoire avec le cercle de rayon Ld autour de l'essieu arrière. Pour une cible (xb, yb) dans le référentiel du véhicule, la courbure κ = 2 yb / (xb² + yb²), puis la direction δ = atan(L κ). La gauche est positive.
Lorsqu'il n'y a pas d'intersection, avancez Ld en longueur d'arc de la trajectoire depuis la projection et bornez au point terminal. L'affichage distingue les cibles de cercle, de récupération et de point terminal ; la courbure utilise toujours la distance réelle au carré à la cible. Une cible derrière le véhicule, ou coïncidente avec lui avant l'achèvement, termine l'exécution avec une raison. Ces règles de récupération et de point terminal sont des choix pédagogiques, non une reproduction de Nav2.
Modèle commun et comparaisons équitables
L'état est l'essieu arrière (x, y) [m], le lacet antihoraire [rad], et la vitesse avant v [m/s]. Les équations sont dx/dt=v cos(yaw), dy/dt=v sin(yaw), dyaw/dt=v tan(δ)/L. Le décalage latéral initial est positif à gauche du premier segment ; le décalage de cap est relatif à ce segment. Les trajectoires sont des polylignes ouvertes : droite, quarts de cercle de rayon 20 m et rayon 5 m, ou une courbe en S. L'espacement par défaut est de 0,1 m (en x pour la courbe en S).
Le pas de temps est de 0,05 s sur au plus 30 s. Les limites sont 8 m/s de vitesse, ±2 m/s² d'accélération, ±0,6 rad de direction, 0,8 rad/s de changement de direction. La direction initiale est nulle. Chaque intervalle applique une limite de vitesse de variation discrète de la direction puis maintient la direction fixe. Le mouvement à courbure constante est intégré exactement, y compris l'accélération jusqu'à la vitesse nulle/maximale et la vitesse constante ensuite. Les deux contrôleurs utilisent a=2(vtarget−v). Aucun frottement, inertie, glissement de pneu, obstacle ou délai de mesure n'est modélisé.
L'erreur transversale est le déplacement signé normal-gauche par rapport au segment le plus proche. L'erreur de cap est le lacet du véhicule moins la tangente projetée, enroulée sur [-π,π). Le RMS utilise une intégration temporelle trapézoïdale des échantillons au carré divisée par le temps écoulé. Le dépassement longitudinal du point terminal est exclu du CTE mais inclus dans la distance euclidienne à la trajectoire. Le RMS du taux de direction inclut la transition initiale depuis zéro et décrit des commandes discrètes.
L'achèvement signifie que la longueur d'arc restante projetée et la distance au point terminal sont toutes deux ≤0,25 m, avec un cap à moins de 0,15 rad du dernier segment. C'est un passage échantillonné du point terminal, non un arrêt ou un stationnement ; le passage entre échantillons peut être manqué. Une distance supérieure à 10 m termine une exécution comme hors trajectoire ; 30 s est la limite de temps. Le temps de passage incomplet est « — ». Les exécutions partielles et les temps écoulés différents ne doivent pas être classés par l'erreur seule. Des politiques de vitesse égales peuvent tout de même produire des temps d'achèvement différents. Ce modèle synthétique n'établit pas la sécurité matérielle ni la performance à haute vitesse.
Exemples synthétiques reproductibles
Ces valeurs ont été générées par Python natif à partir du même code. La courbe douce utilise une vitesse initiale et cible de 2 m/s, un décalage latéral initial de 1 m, un décalage de cap nul, et un empattement de 2,5 m.
| Réglage | Statut | Écoulé [s] | CTE RMS [m] |
|---|---|---|---|
| short | controller_failed | 1,80 | 0,72123 |
| nominal | completed | 15,70 | 0,25996 |
| long | completed | 15,50 | 0,37896 |
Références et laboratoire lié
- Coulter, Implementation of the Pure Pursuit Path Tracking Algorithm (1992) : référence de poursuite géométrique.
- Documentation RPP de Nav2 Iron : référence pour la convention APP à échelle de vitesse ; ce laboratoire n'est pas une implémentation Nav2 complète.
- Laboratoire APP
- MPC
Le téléchargement du code source est facultatif. L'exécution dans le navigateur ne nécessite aucune installation locale de Python. Source + notes de modèle.
Commentaires
Veuillez vous connecter.
Aucune entrée pour le moment.