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.
Verfolgen Sie einen Pfad in Ihrem Browser
Drücken Sie oben im Browser-Panel auf „Run“. Grau ist der Referenzpfad; Blau ist die Trajektorie der Hinterachse. Der Kreis zeigt die Vorausschau, der Punkt ist das Ziel, und das Segment ist der Radstand. Nutzen Sie Play, Pause, Schritt oder Scrubbing durch den Lauf, um zu untersuchen, wo die Lenkung einsetzt. Die numerische Tabelle und das herunterladbare JSON enthalten die berechneten Ergebnisse.
PP: Distanz konstant halten
PP hält die gewählte Vorausschau Ld auch bei Geschwindigkeitsänderungen konstant. Führen Sie die nominale Kurve aus, speichern Sie sie als A, und probieren Sie anschließend kurze Vorausschau und lange Vorausschau. Vergleichen Sie Lenkung und Abschluss sowie Tracking-Fehler.
Der Reglerwähler schaltet zwischen PP und APP um. Die feste Vorausschau wirkt sich nur auf PP aus; Zeit und Grenzen wirken sich nur auf APP aus. Speichern Sie einen Lauf als A und ändern Sie nur den Regler, um Pfad, Anfangszustand, Geschwindigkeitsbefehl und Fahrzeug beizubehalten. Voreinstellungen setzen auch andere Bedingungen zurück, prüfen Sie daher die angezeigten Parameterunterschiede.
Zielgeometrie
Ausgehend von der nächstgelegenen Pfadprojektion wird der erste vorwärts liegende Bogenlängenschnittpunkt des Pfads mit dem Kreis vom Radius Ld um die Hinterachse gewählt. Für das Ziel (xb, yb) im Fahrzeugkoordinatensystem gilt Krümmung κ = 2 yb / (xb² + yb²), dann Lenkwinkel δ = atan(L κ). Links ist positiv.
Gibt es keinen Schnittpunkt, wird Ld in Pfadbogenlänge ab der Projektion vorgerückt und am Endpunkt begrenzt. Die Anzeige unterscheidet Kreis-, Rückgewinnungs- und Endpunktziele; die Krümmung verwendet stets den tatsächlichen quadrierten Zielabstand. Ein Ziel hinter dem Fahrzeug oder ein Zusammenfallen mit diesem vor dem Abschluss beendet den Lauf mit einer Begründung. Diese Rückgewinnungs- und Endpunktregeln sind didaktische Entscheidungen, keine Nav2-Reproduktion.
Gemeinsames Modell und faire Vergleiche
Der Zustand besteht aus der Hinterachse (x, y) [m], dem Gierwinkel gegen den Uhrzeigersinn [rad] und der Vorwärtsgeschwindigkeit v [m/s]. Die Gleichungen lauten dx/dt=v cos(yaw), dy/dt=v sin(yaw), dyaw/dt=v tan(δ)/L. Der anfängliche Querversatz ist links des ersten Segments positiv; der Kursversatz ist relativ zu diesem Segment. Pfade sind offene Polylinien: gerade, Viertelkreise mit Radius 20 m und Radius 5 m, oder eine S-Kurve. Der Standardabstand ist 0,1 m (in x bei der S-Kurve).
Die Zeitschrittweite beträgt 0,05 s über höchstens 30 s. Die Grenzen sind 8 m/s Geschwindigkeit, ±2 m/s² Beschleunigung, ±0,6 rad Lenkung, 0,8 rad/s Lenkungsänderung. Die Anfangslenkung ist null. Jedes Intervall wendet eine diskrete Lenkraten-Begrenzung an und hält die Lenkung anschließend fest. Die Bewegung mit konstanter Krümmung wird exakt integriert, einschließlich Beschleunigung bis Null-/Höchstgeschwindigkeit und danach konstanter Geschwindigkeit. Beide Regler verwenden a=2(vtarget−v). Es werden keine Reibung, Trägheit, Reifenschlupf, Hindernisse oder Messverzögerung modelliert.
Der Querabweichungsfehler (Cross-Track Error) ist die vorzeichenbehaftete Linksnormalen-Verschiebung vom nächstgelegenen Segment. Der Kursfehler ist der Fahrzeug-Gierwinkel minus der projizierten Tangente, umgebrochen auf [-π,π). RMS verwendet trapezförmige Zeitintegration quadrierter Stichproben, geteilt durch die verstrichene Zeit. Das longitudinale Endpunkt-Überschwingen ist vom CTE ausgeschlossen, aber in der euklidischen Pfaddistanz enthalten. Der RMS der Lenkrate schließt den anfänglichen Übergang von null ein und beschreibt diskrete Befehle.
Abschluss bedeutet, dass sowohl die verbleibende projizierte Bogenlänge als auch der Endpunktabstand ≤0,25 m betragen, wobei der Kurs innerhalb von 0,15 rad des letzten Segments liegt. Es handelt sich um abgetastete Endpunktpassage, nicht um Anhalten oder Einparken; eine Passage zwischen Stichproben kann übersehen werden. Eine Distanz über 10 m beendet einen Lauf als „vom Pfad abgekommen“; 30 s ist das Zeitlimit. Die Zeit bei unvollständiger Passage ist „—“. Teilläufe und unterschiedliche verstrichene Zeiten dürfen nicht allein nach Fehler eingestuft werden. Gleiche Geschwindigkeitsstrategien können dennoch unterschiedliche Abschlusszeiten ergeben. Dieses synthetische Modell begründet keine Hardware-Sicherheit oder Hochgeschwindigkeitsleistung.
Reproduzierbare synthetische Beispiele
Diese Werte wurden mit nativem Python aus demselben Code erzeugt. Die sanfte Kurve verwendet Anfangs- und Zielgeschwindigkeit 2 m/s, anfänglichen Querversatz 1 m, Kursversatz null und Radstand 2,5 m.
| Einstellung | Status | Verstrichen [s] | CTE RMS [m] |
|---|---|---|---|
| short | controller_failed | 1,80 | 0,72123 |
| nominal | completed | 15,70 | 0,25996 |
| long | completed | 15,50 | 0,37896 |
Referenzen und verwandtes Labor
- Coulter, Implementation of the Pure Pursuit Path Tracking Algorithm (1992): Referenz zur geometrischen Pfadverfolgung.
- Nav2-Iron-RPP-Dokumentation: Referenz für die geschwindigkeitsskalierte APP-Konvention; dieses Labor ist keine vollständige Nav2-Implementierung.
- APP-Labor
- MPC
Der Quellcode-Download ist optional. Die Ausführung im Browser erfordert keine lokale Python-Installation. Quellcode + Modellhinweise.
Kommentare
Bitte zuerst anmelden.
Noch keine Einträge.