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.

Open experiment panel in a new tab

Download reproduction source

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:

  1. 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.
  2. Heben Sie diesen Kandidaten auf die Regulierungs-Geschwindigkeitsuntergrenze an. Diese Untergrenze kann die Reduzierung abschwächen; sie ist keine Sicherheitsgrenze.
  3. 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.
  4. 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

Die Ausführung im Browser erfordert keine lokale Python-Installation. Der Quellcode-Download ist optional. Quellcode und Modellhinweise.

Related reading

Explore another aspect of this fieldMPC-Labor – Krümmungsfolge im Horizont und innerhalb der Lenkgrenzen neu lösenExplore another aspect of this fieldPfadverfolgungs-Vergleichs-Labor – PP, APP, RPP, Stanley und MPC unter denselben Bedingungen laufen lassen