Hauptinhalt

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

stateSpaceDubins

Freiraum für Dubins-Fahrzeuge

Beschreibung

Das stateSpaceDubins-Objekt speichert Parameter und Zustände im Dubins-Zustandsraum, der aus Zustandsvektoren besteht, die durch [x, y, θ] dargestellt werden. x und y sind kartesische Koordinaten und θ ist der Orientierungswinkel. Der Dubins-Zustandsraum hat eine Untergrenze für den Wenderadius (angegeben durch die Eigenschaft MinTurningRadius im Objekt) zum Navigieren zwischen Zuständen und verwendet die kürzeste mögliche Kurve zum Verbinden der Zustände.

Erstellung

Beschreibung

space = stateSpaceDubins erstellt ein Dubins-Zustandsraumobjekt mit Standardzustandsgrenzen für x, y und θ.

Beispiel

space = stateSpaceDubins(bounds) gibt bounds für x, y und θ an. Die Zustandswerte außerhalb der Grenzen werden auf die Grenzen gekürzt. Mit der Eingabe bounds können Sie den Wert der Eigenschaft StateBounds festlegen.

Eigenschaften

alle erweitern

Name des Zustandsraums, angegeben als Zeichenfolge.

Diese Eigenschaft ist schreibgeschützt.

Dimension des Zustandsraums, angegeben als positive Ganzzahl.

Grenzen von Zustandsvariablen, angegeben als 3x2-Matrix mit realen Werten.

  • Die erste Zeile gibt die Unter- und Obergrenze für den Zustand x in Metern an.

  • Die zweite Zeile gibt die Unter- und Obergrenze für den Zustand y in Metern an.

  • Die dritte Zeile gibt die Unter- und Obergrenzen für den θ-Zustand im Bogenmaß an.

Datentypen: double

Minimaler Wenderadius in Metern, angegeben als positiver Skalar. Der minimale Wenderadius ist der kleinste Kreis, den das Fahrzeug mit maximaler Lenkung in eine Richtung fahren kann.

Objektfunktionen

copyCreate deep copy of state space object
distanceDistance between two states
enforceStateBoundsReduce state to state bounds
interpolateInterpolate between states
sampleGaussianSample state using Gaussian distribution
sampleUniformSample state using uniform distribution

Beispiele

alle reduzieren

Erstellen Sie einen Dubins-Zustandsraum und legen Sie den minimalen Turing-Radius auf 0.2 fest.

ss = stateSpaceDubins;
ss.MinTurningRadius = 0.2;

Erstellen Sie einen occupancyMap-basierten Statusvalidator unter Verwendung des erstellten Statusraums.

sv = validatorOccupancyMap(ss);

Erstellen Sie eine Belegungskarte aus einer Beispielkarte und stellen Sie die Kartenauflösung auf 10 Zellen/Meter ein.

load exampleMaps
map = occupancyMap(simpleMap,10);
sv.Map = map;

Legen Sie die Validierungsdistanz für den Validierer fest.

sv.ValidationDistance = 0.01;

Aktualisieren Sie die Statusraumgrenzen, sodass sie mit den Kartengrenzen übereinstimmen.

ss.StateBounds = [map.XWorldLimits;map.YWorldLimits; [-pi pi]];

Erstellen Sie den Pfadplaner und erhöhen Sie die maximale Verbindungsdistanz.

planner = plannerRRT(ss,sv);
planner.MaxConnectionDistance = 0.3;

Legen Sie den Start- und Zielzustand fest.

start = [0.5,0.5,0];
goal = [2.5,0.2,0];

Planen Sie einen Pfad mit Standardeinstellungen.

rng(100,'twister'); % repeatable result
[pthObj,solnInfo] = planner.plan(start,goal);

Visualisieren Sie die Ergebnisse.

show(map);
hold on;
plot(solnInfo.TreeData(:,1),solnInfo.TreeData(:,2),'.-'); % tree expansion
plot(pthObj.States(:,1), pthObj.States(:,2),'r-','LineWidth',2) % draw path

Figure contains an axes object. The axes object with title Occupancy Grid, xlabel X [meters], ylabel Y [meters] contains 3 objects of type image, line.

Erweiterte Fähigkeiten

alle erweitern

C/C++ Codegenerierung
Generieren Sie C und C++ Code mit MATLAB® Coder™.

Versionsverlauf

Eingeführt in R2019b