Contenuto principale

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

validatorOccupancyMap

Validatore di stato basato su mappa a griglia 2D

Descrizione

L'oggetto validatorOccupancyMap convalida gli stati e i movimenti discretizzati in base al valore in una mappa di occupazione 2D. Se la posizione dello stato sulla mappa è occupata o sconosciuta, validatorOccupancyMap considera lo stato non valido. Solo lo spazio libero è considerato valido.

Creazione

Sintassi

Descrizione

validator = validatorOccupancyMap crea un validatore di mappa di occupazione 2D associato a uno spazio di stato SE2 con impostazioni predefinite.

validator = validatorOccupancyMap(stateSpace) crea un validatore nella definizione dello spazio di stato derivato da nav.StateSpace.

esempio

validator = validatorOccupancyMap(stateSpace,Name,Value) specifica le proprietà Map o XYIndices utilizzando la coppia di argomenti Name,Value.

Proprietà

espandi tutto

Spazio di stato per la convalida degli stati, specificato come sottoclasse di nav.StateSpace . Gli oggetti dello spazio di stato forniti includono:

Mappa utilizzata per convalidare gli stati, specificata come oggetto binaryOccupancyMap o occupancyMap.

Intervallo per il campionamento tra gli stati e la verifica della validità dello stato, specificato come scalare numerico positivo.

Mappatura delle variabili di stato per le coordinate xy nel vettore di stato, specificato come vettore a due elementi, [xIdx yIdx]. Ad esempio, se un vettore di stato è dato come [r p y x y z], le coordinate xy sono [4 5].

Funzioni oggetto

copyCreate deep copy of state validator object
isStateValidCheck if state is valid
isMotionValidCheck if path between states is valid

Esempi

comprimi tutto

Questo esempio mostra come convalidare i percorsi attraverso un ambiente.

Carica mappe di esempio. Utilizzare la mappa semplice per creare una mappa di occupazione binaria.

load exampleMaps.mat
map = occupancyMap(simpleMap);
show(map)

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

Specificare un percorso approssimativo attraverso la mappa.

path = [2 2 pi/2; 10 15 0; 17 8 -pi/2];
hold on
plot(path(:,1),path(:,2),"--o")

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

Creare un validatore di stato utilizzando la definizione stateSpaceSE2. Specificare la mappa e la distanza per l'interpolazione e la convalida dei segmenti del percorso.

validator = validatorOccupancyMap(stateSpaceSE2);
validator.Map = map;
validator.ValidationDistance = 0.1;

Controllare che i punti del percorso siano stati validi. Tutti e tre i punti si trovano nello spazio libero e quindi sono considerati validi.

isValid = isStateValid(validator,path)
isValid = 3x1 logical array

   1
   1
   1

Controllare il movimento tra ogni stato del percorso sequenziale. La funzione isMotionValid esegue l'interpolazione lungo il percorso tra gli stati. Se un segmento di percorso non è valido, traccia l'ultimo punto valido lungo il percorso.

startStates = [path(1,:);path(2,:)];
endStates = [path(2,:);path(3,:)];
    for i = 1:2
        [isPathValid, lastValid] = isMotionValid(validator,startStates(i,:),endStates(i,:));
        if ~isPathValid
            plot(lastValid(1),lastValid(2),'or')
        end
    end
hold off

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. One or more of the lines displays its values using only markers

Funzionalità estese

espandi tutto

Cronologia versioni

Introdotto in R2019b