Hauptinhalt

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

stateSpaceSE2

SE(2) Zustandsraum

Beschreibung

Das stateSpaceSE2-Objekt speichert Parameter und Zustände im SE(2)-Zustandsraum, der aus Zustandsvektoren besteht, die durch [x, y, θ] dargestellt werden. x und y sind kartesische Koordinaten und θ ist der Orientierungswinkel. Das Objekt berechnet die Entfernung mithilfe der euklidischen Distanz und berechnet die Translation und Rotation des Zustands mithilfe linearer Interpolation.

Erstellung

Beschreibung

space = stateSpaceSE2 erstellt ein SE(2)-Zustandsraumobjekt mit Standardzustandsgrenzen für x, y und θ.

Beispiel

space = stateSpaceSE2(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 des x-Zustands in Metern an.

  • Die zweite Zeile gibt die Unter- und Obergrenze des y-Zustands in Metern an.

  • Die dritte Zeile gibt die Unter- und Obergrenze des θ-Zustands im Bogenmaß an.

Datentypen: double

Auf die Berechnung der x- und y-Distanz angewendetes Gewicht, angegeben als nicht negativer reeller Skalar.

Im Objekt berechnet sich die Entfernung wie folgt:

d=(wxy(dx2+dy2))+wθdθ2

wxy ist das Gewicht, das auf die Koordinaten x und y angewendet wird, und wθ ist das Gewicht, das auf die Koordinate θ angewendet wird. dx, dy und dθ sind die Entfernungen in der Richtung x, y bzw. θ.

Datentypen: double

Auf die θ-Distanzberechnung angewendetes Gewicht, angegeben als nicht negativer reeller Skalar.

Im Objekt berechnet sich die Entfernung wie folgt:

d=(wxy(dx2+dy2))+wθdθ2

wxy ist das Gewicht, das auf die Koordinaten x und y angewendet wird, und wθ ist das Gewicht, das auf die Koordinate θ angewendet wird. dx, dy und dθ sind die Entfernungen in der Richtung x, y bzw. θ.

Datentypen: double

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 SE(2)-Zustandsraum.

ss = stateSpaceSE2;

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'); % for repeatable result
[pthObj,solnInfo] = planner.plan(start,goal);

Visualisieren Sie die Ergebnisse.

map.show; 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