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.
Vergleichen Sie Regulierung mit reiner adaptiver Vorausschau
Führen Sie „Tight curve · regulated“ aus und speichern Sie das Ergebnis als A. Führen Sie anschließend „Adaptive lookahead only“ aus. Pfad, Anfangspose, Fahrzeug und gewünschte Geschwindigkeit bleiben gleich, während Krümmungs- und Anflugverlangsamung deaktiviert sind. Lesen Sie die tatsächliche Geschwindigkeit und die Endpunktpassagezeit zusammen mit dem Querabweichungsfehler: Ein langsamerer Lauf sollte nicht allein nach Fehler eingestuft werden.
Vorausschau und Geschwindigkeitsregelung bilden getrennte Steuerungsgruppen. „Fixed lookahead + regulation“ deaktiviert nur die Adaption. „No curvature regulation“ und „No approach slowdown“ isolieren jede Geschwindigkeitsregel. „Higher regulation floor“ zeigt, wie eine Untergrenze einen reduzierten Kandidaten anheben kann. Voreinstellungen stellen alle Bedingungen wieder her, prüfen Sie daher die A/B-Parameterunterschiede.
Vorausschau wählt die Lenkung; Regulierung wählt die Geschwindigkeit
Bei aktivierter Adaption gilt Ld=clamp(vT,Lmin,Lmax), unter Verwendung der aktuellen Modellgeschwindigkeit v. Bei deaktivierter Adaption ist Ld fest. Die PP/APP-Zielgeometrie wird wiederverwendet: κ=2yb/(xb²+yb²) für Ziel (xb,yb) im Fahrzeugkoordinatensystem; Lenkung δ=atan(Lκ). Existiert kein Kreisschnittpunkt, wird Ld entlang des projizierten Pfads vorgerückt und am Endpunkt begrenzt, wobei stets der tatsächliche Zielabstand verwendet wird. Ziele hinter dem Fahrzeug oder mit diesem zusammenfallende Ziele vor dem Abschluss beenden den Lauf mit einer Begründung.
Die Geschwindigkeit wird in dieser Reihenfolge berechnet:
- Die Krümmungsregulierung multipliziert die gewünschte Geschwindigkeit mit min(1,R/Rmin), wobei R=1/|κ|. Bei Krümmung null bleibt die gewünschte Geschwindigkeit unverändert.
- Heben Sie diesen Kandidaten auf die Regulierungs-Geschwindigkeitsuntergrenze an. Diese Untergrenze kann die Reduzierung abschwächen; sie ist keine Sicherheitsgrenze.
- Sobald die verbleibende Pfadlänge strikt unter der Anflugdistanz D liegt, skalieren Sie mit euklidischer Endpunktdistanz/D. Wenden Sie die Anflug-Untergrenze an, heben Sie die Geschwindigkeit jedoch nie über ihren Wert vor dem Anflug an.
- Begrenzen Sie auf [0, gewünschte Geschwindigkeit]. Der gemeinsame Regelkreis a=2(Anforderung−tatsächliche Geschwindigkeit) und die Beschleunigungsgrenzen der Regelstrecke bestimmen die tatsächliche Geschwindigkeit.
Für gewünscht=4 m/s, κ=0,25 /m und Rmin=8 m beträgt der Krümmungskandidat 2 m/s. Eine Regulierungsuntergrenze von 0,25 m/s lässt ihn unverändert. Bei einer verbleibenden Länge von 1,5 m, einer Endpunktdistanz von 1,5 m und D=3 m ergibt der Anflug 1 m/s über einer Anflug-Untergrenze von 0,1 m/s. Bei einer verbleibenden Länge von genau 3 m hat die Anflugskalierung noch nicht begonnen.
Untersuchen Sie die Geschwindigkeitsstufen während der Wiedergabe
Play, Pause, Schritt oder Scrubbing. Die Anzeige für den ausgewählten Zeitpunkt trennt gewünscht → Krümmungskandidat → Untergrenze → endgültige Anforderung von der tatsächlichen Geschwindigkeit. Im Geschwindigkeitsdiagramm ist grau gepunktet die gewünschte, grün die regulierte Anforderung und blau/orange die tatsächliche Geschwindigkeit; A ist gestrichelt und B durchgezogen. Pfad, Fahrzeugpose, Vorausschaukreis und Ziel begleiten die Fehler-, Lenkungs- und Vorausschaudiagramme. Die numerische Tabelle und das JSON werden aus den Simulationsdaten erzeugt.
Die drei Metriken für aktive Dauer summieren das Intervall dt unabhängig voneinander und können sich überschneiden. Die Zeit, in der der Krümmungskandidat unter dem gewünschten Wert liegt, umfasst auch Zeiträume, in denen die Untergrenze diesen Kandidaten überschreibt; sie ist nicht die Dauer der tatsächlichen Fahrzeugverlangsamung.
Referenzversion und Modellunterschiede
Die skalaren Geschwindigkeitsregeln folgen dem fixierten Nav2-Jazzy-Commit f4108e5b1c2bce804a1aa0c7be6673a8eb4a1501. Ihre Arithmetik/Reihenfolge wird gegen die C++-Referenz geprüft, dies ist jedoch kein Nav2-Ausführungsergebnis. Duskcoil verwendet ein gemeinsames Hinterachsmodell und eine globale nächstgelegene Pfadprojektion: Die verbleibende Länge ist die Pfadlänge minus der projizierten Bogenlänge. Nav2 erhält einen transformierten/beschnittenen lokalen Pfad, sodass sich dessen Eingaben unterscheiden können. Die Regulierung verwendet die angeforderte Pursuit-Krümmung vor den Aktuatorgrenzen.
Das gemeinsame Modell verwendet Intervalle von 0,05 s über höchstens 30 s. Die Grenzen sind 8 m/s Geschwindigkeit, ±2 m/s² Beschleunigung, ±0,6 rad Lenkung und 0,8 rad/s Lenkungsänderung. Die Bewegung wird auf jedem gehaltenen Krümmungsbogen integriert. Die tatsächliche Geschwindigkeit erreicht die Anforderung nicht sofort. Es gibt keine Trägheit, keinen Reifenschlupf, kein Hindernis-/Kostenkartenmodell, keine Kollisionsvorhersage, kein Rückwärtsfahren, kein Drehen zum Kurs und keine separate Krümmungsvorausschau. Dies ist keine Hardware-Leistungs- oder Sicherheitsbewertung.
Der Abschluss ist eine abgetastete Endpunktpassage: verbleibende Bogenlänge und Endpunktabstand betragen beide ≤0,25 m, der Kurs liegt innerhalb von 0,15 rad der Endtangente. Dies garantiert kein Anhalten; eine positive Anflug-Untergrenzgeschwindigkeit bedeutet nicht Einparken. Eine Pfaddistanz über 10 m beendet den Lauf als „vom Pfad abgekommen“; 30 s ist das Zeitlimit. Die Zeit bei unvollständiger Passage ist „—“. CTE- und Kursfehler-RMS verwenden trapezförmige Integration quadrierter Stichproben über die verstrichene Zeit. Vermeiden Sie es, Teilläufe oder unterschiedliche Dauern allein nach Fehler einzustufen.
Parameternamen hängen vom Release ab
| Bedeutung im Browser | Jazzy | Rolling, geprüft am 21.09.2026 |
|---|---|---|
| Gewünschte Geschwindigkeit | desired_linear_vel | max_linear_vel |
| Geschwindigkeitsskalierte Vorausschau | use_velocity_scaled_lookahead_dist | same |
| Vorausschauzeit | lookahead_time | same |
| Krümmungsregulierung | use_regulated_linear_velocity_scaling | same |
| Kurvenradius-Schwellenwert | regulated_linear_scaling_min_radius | same |
| Regulierungsuntergrenze | regulated_linear_scaling_min_speed | same |
| Anflugdistanz / -untergrenze | approach_velocity_scaling_dist / min_approach_linear_velocity | same |
Der Anflug-Ein/Aus-Schalter ist eine didaktische Ablation, kein Jazzy-ROS-Parameter. Die dynamischen Fenstermerkmale von Rolling sind hier nicht implementiert. Die Labor-Standardwerte sind didaktische Werte, keine empfohlene Nav2-Konfiguration.
Aus demselben Code erzeugte Beispiele
Die folgenden nativen Python-Ergebnisse verwenden die Standardkurve mit Radius 5 m, Anfangs- und Zielgeschwindigkeit 4 m/s, Querversatz 1 m und Radstand 2,5 m.
| Einstellung | Status | Verstrichen [s] | CTE RMS [m] |
|---|---|---|---|
| regulated | completed | 4,10 | 0,37348 |
| adaptive only | completed | 1,80 | 0,52087 |
| no approach | completed | 3,00 | 0,43649 |
Referenzen und verwandte Labore
- Fixierte Jazzy-Geschwindigkeitsfunktionen
- Jazzy-Regler und Beschränkungsreihenfolge
- Jazzy-Parameterleitfaden
- Rolling-Parameterleitfaden
- APP-Labor / PP-Labor
Die Ausführung im Browser erfordert keine lokale Python-Installation. Der Quellcode-Download ist optional. Quellcode und Modellhinweise.
Kommentare
Bitte zuerst anmelden.
Noch keine Einträge.