Contenuto principale

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

stateSpaceDubins

Spazio di stato per i veicoli Dubins

Descrizione

L'oggetto stateSpaceDubins memorizza parametri e stati nello spazio di stato di Dubins, composto da vettori di stato rappresentati da [x, y, θ]. x e y sono coordinate cartesiane e θ è l'angolo di orientamento. Lo spazio di stato di Dubins ha un limite inferiore sul raggio di sterzata (specificato dalla proprietà MinTurningRadius nell'oggetto) per la navigazione tra gli stati e utilizza la curva più breve possibile per collegare gli stati.

Creazione

Descrizione

space = stateSpaceDubins crea un oggetto dello spazio di stato di Dubins con limiti di stato predefiniti per x, y e θ.

esempio

space = stateSpaceDubins(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 per lo stato x in metri.

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

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

Tipi di dati: double

Raggio minimo di sterzata in metri, specificato come valore scalare positivo. Il raggio di sterzata minimo corrisponde al cerchio più piccolo che il veicolo può compiere con la massima sterzata in una sola direzione.

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 di Dubins e impostare il raggio di Turing minimo su 0.2 .

ss = stateSpaceDubins;
ss.MinTurningRadius = 0.2;

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

Visualizza i risultati.

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.

Funzionalità estese

espandi tutto

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

Cronologia versioni

Introdotto in R2019b