Contenuto principale

Questa pagina è stata tradotta con la traduzione automatica. Fai clic qui per vedere l'ultima versione in inglese.

stateSpaceSE2

SE(2) spazio di stato

Descrizione

L'oggetto stateSpaceSE2 memorizza parametri e stati nello spazio di stato SE(2), che è composto da vettori di stato rappresentati da [x, y, θ]. x e y sono coordinate cartesiane e θ è l'angolo di orientamento. L'oggetto utilizza la distanza euclidea per calcolare la distanza e l'interpolazione lineare per calcolare la traslazione e la rotazione dello stato.

Creazione

Descrizione

space = stateSpaceSE2 crea un oggetto dello spazio di stato SE(2) con limiti di stato predefiniti per x, y e θ.

esempio

space = stateSpaceSE2(bounds) specifica bounds per x, y e θ. I valori di stato oltre i limiti vengono troncati ai limiti stessi. L'input bounds consente di impostare il valore della proprietà StateBounds.

Proprietà

espandi tutto

Nome dello spazio di stato, specificato come stringa.

proprietà è di sola lettura.

Dimensione dello spazio di stato, specificata come numero intero positivo.

Limiti delle variabili di stato, specificati come matrice reale 3x2.

  • La prima riga specifica i limiti inferiore e superiore dello stato x in metri.

  • La seconda riga specifica i limiti inferiore e superiore dello stato y in metri.

  • La terza riga specifica i limiti inferiore e superiore dello stato θ in radianti.

Tipi di dati: double

Peso applicato al calcolo della distanza x e y, specificato come uno scalare reale non negativo.

Nell'oggetto, la distanza è calcolata come:

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

wxy è il peso applicato alle coordinate x e y, mentre wθ è il peso applicato alla coordinata θ. dx, dy e dθ sono le distanze rispettivamente nella direzione x, y e θ.

Tipi di dati: double

Peso applicato al calcolo della distanza θ, specificato come uno scalare reale non negativo.

Nell'oggetto, la distanza è calcolata come:

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

wxy è il peso applicato alle coordinate x e y, mentre wθ è il peso applicato alla coordinata θ. dx, dy e dθ sono le distanze rispettivamente nella direzione x, y e θ.

Tipi di dati: double

Funzioni oggetto

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

Esempi

comprimi tutto

Creare uno spazio di stato SE(2).

ss = stateSpaceSE2;

Creare un validatore di stato basato su occupancyMap utilizzando lo spazio di stato creato.

sv = validatorOccupancyMap(ss);

Crea una mappa di occupazione da una mappa di esempio e imposta la risoluzione della mappa su 10 celle/metro.

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

Imposta la distanza di convalida per il validatore.

sv.ValidationDistance = 0.01;

Aggiornare i limiti dello spazio di stato in modo che siano uguali ai limiti della mappa.

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

Crea il pianificatore di percorsi e aumenta la distanza massima di connessione.

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

Imposta gli stati di inizio e fine.

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

Pianifica un percorso con impostazioni predefinite.

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

Visualizza i risultati.

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.

Funzionalità estese

espandi tutto

Generazione di codice C/C++
Genera codice C e C++ con MATLAB® Coder™.

Cronologia versioni

Introdotto in R2019b