Hauptinhalt

Diese Seite wurde mithilfe maschineller Übersetzung übersetzt. Klicken Sie hier, um die neueste Version auf Englisch zu sehen.

Pure Pursuit-Controller

Pure Pursuit ist ein Pfadverfolgungsalgorithmus. Es berechnet den Winkelgeschwindigkeitsbefehl, der den Roboter von seiner aktuellen Position zu einem vorausschauenden Punkt vor dem Roboter bewegt. Die Lineargeschwindigkeit wird als konstant angenommen, daher können Sie die Lineargeschwindigkeit des Roboters jederzeit ändern. Der Algorithmus verschiebt dann den Vorausschaupunkt auf dem Pfad basierend auf der aktuellen Position des Roboters bis zum letzten Punkt des Pfads. Man kann es sich so vorstellen, als würde der Roboter ständig einem vor ihm liegenden Punkt nachjagen. Die Eigenschaft LookAheadDistance entscheidet, wie weit der Vorausschaupunkt platziert wird.

Das controllerPurePursuit-Objekt ist kein herkömmlicher Controller, sondern fungiert als Tracking-Algorithmus für die Pfadverfolgung. Ihr Controller ist für eine bestimmte Liste von Wegpunkten eindeutig. Die gewünschten Linear- und maximalen Winkelgeschwindigkeiten können angegeben werden. Diese Eigenschaften werden anhand der Fahrzeugspezifikationen ermittelt. Ausgehend von der Pose (Position und Ausrichtung) des Fahrzeugs als Eingabe können mit dem Objekt die Befehle für die lineare und Winkelgeschwindigkeit des Roboters berechnet werden. Wie der Roboter diese Befehle verwendet, hängt von dem von Ihnen verwendeten System ab. Überlegen Sie sich also, wie Roboter mit diesen Befehlen eine Bewegung ausführen können. Die letzte wichtige Eigenschaft ist LookAheadDistance, das dem Roboter mitteilt, wie weit er auf dem Pfad sein soll. Diese Eigenschaft wird in einem Abschnitt weiter unten ausführlicher erläutert.

Referenzkoordinatensystem

Es ist wichtig, das Referenzkoordinatensystem zu verstehen, das der Pure-Pursuit-Algorithmus für seine Ein- und Ausgaben verwendet. Die folgende Abbildung zeigt das Referenzkoordinatensystem. Die Eingabe-Wegpunkte sind [x y]-Koordinaten, die zur Berechnung der Geschwindigkeitsbefehle des Roboters verwendet werden. Die Pose des Roboters setzt sich aus einer xy-Position und einem Winkel in der Form [x y theta] zusammen. Die positiven x- und y-Richtungen zeigen jeweils nach rechts und oben (in der Abbildung blau). Der theta-Wert ist die Winkelausrichtung des Roboters, gemessen gegen den Uhrzeigersinn im Bogenmaß von der x-Achse (Roboter befindet sich aktuell im Bogenmaß 0).

Vorausschauende Distanz

Die LookAheadDistance-Eigenschaft ist die wichtigste Abstimmungseigenschaft für den Controller. Die Vorausschaudistanz gibt an, wie weit der Roboter vom aktuellen Standort aus entlang des Pfads blicken soll, um die Winkelgeschwindigkeitsbefehle zu berechnen. Die folgende Abbildung zeigt den Roboter und den Vorausschaupunkt. Beachten Sie, dass der tatsächliche Pfad, wie in diesem Bild dargestellt, nicht der direkten Linie zwischen den Wegpunkten entspricht.

Die Änderung dieses Parameters kann Auswirkungen darauf haben, wie Ihr Roboter dem Pfad folgt. Dabei gibt es zwei Hauptziele: das Wiedererlangen des Pfads und das Beibehalten des Pfads. Um den Weg zwischen den Wegpunkten schnell wiederzuerlangen, sorgt ein kleines LookAheadDistance dafür, dass sich Ihr Roboter schnell auf den Weg zubewegt. Wie in der folgenden Abbildung zu sehen ist, schießt der Roboter jedoch über den Pfad hinaus und oszilliert entlang der gewünschten Bahn. Um die Schwingungen entlang des Pfads zu verringern, kann eine größere Vorausschaudistanz gewählt werden. Dies kann jedoch zu größeren Krümmungen in der Nähe der Ecken führen.

Die LookAheadDistance-Eigenschaft sollte auf Ihre Anwendung und Ihr Robotersystem abgestimmt werden. Auch unterschiedliche Linear- und Winkelgeschwindigkeiten wirken sich auf diese Reaktion aus und sollten beim Pfadverfolgungs-Controller berücksichtigt werden.

Einschränkungen

Bei diesem Pure-Pursuit-Algorithmus sind einige Einschränkungen zu beachten:

  • Wie oben gezeigt, kann der Controller direkten Pfaden zwischen Wegpunkten nicht exakt folgen. Um die Leistung zu optimieren und mit der Zeit dem Pfad zu nähern, müssen die Parameter angepasst werden.

  • Dieser reine Verfolgungsalgorithmus stabilisiert den Roboter nicht an einem Punkt. In Ihrer Anwendung sollte ein Distanzschwellenwert für einen Zielstandort angewendet werden, um den Roboter in der Nähe des gewünschten Ziels anzuhalten.

Referenzen

[1] Coulter, R. Implementation of the Pure Pursuit Path Tracking Algorithm. Carnegie Mellon University, Pittsburgh, Pennsylvania, Jan 1990.

Siehe auch

|