occupancyMap
Crea una mappa di occupazione 2D
Descrizione
occupancyMap
crea un oggetto mappa con griglia di occupazione 2D. Ogni cella nella griglia di occupazione ha un valore che rappresenta la probabilità che quella cella sia occupata. I valori prossimi a 1 rappresentano un'alta probabilità che la cella contenga un ostacolo. Valori prossimi a 0 rappresentano un'alta probabilità che la cella non sia occupata e libera da ostacoli.
Le mappe di occupazione vengono utilizzate negli algoritmi di navigazione come la pianificazione del percorso (vedere plannerRRT
). Vengono inoltre utilizzati nelle applicazioni di mappatura per trovare percorsi privi di collisioni, evitare le collisioni e calcolare la localizzazione (vedere monteCarloLocalization
). Puoi modificare la mappa di occupazione per adattarla alla tua applicazione specifica.
Gli oggetti occupancyMap
supportano coordinate locali, coordinate mondiali e indici di griglia. La prima posizione della griglia con indice (1,1)
inizia nell'angolo in alto a sinistra della griglia.
Utilizza la classe occupancyMap
per creare mappe 2D di un ambiente con valori di probabilità che rappresentano diversi ostacoli nel tuo mondo. È possibile specificare valori di probabilità esatti delle celle o includere osservazioni da sensori come gli scanner laser.
I valori di probabilità vengono memorizzati utilizzando un filtro Bayes binario per stimare l'occupazione di ciascuna cella della griglia. Viene utilizzata una rappresentazione logaritmica, con valori memorizzati come int16
per ridurre le dimensioni di archiviazione della mappa e consentire applicazioni in tempo reale.
Creazione
Sintassi
Descrizione
crea una mappa di occupazione con una risoluzione della griglia specificata in celle per metro. map
= occupancyMap(width
,height
,resolution
)resolution
imposta la proprietà Resolution.
crea una mappa di occupazione con il numero specificato di righe e colonne e con la risoluzione in celle per metro. I valori di map
= occupancyMap(rows
,cols
,resolution
,'grid')rows
e cols
impostano la proprietà GridSize.
crea una mappa di occupazione dai valori nella matrice map
= occupancyMap(p
)p
. La dimensione della griglia corrisponde alla dimensione della matrice e ogni valore di probabilità della cella viene interpretato in base alla posizione della matrice.
crea una mappa di occupazione dalla matrice specificata e dalla risoluzione in celle per metro.map
= occupancyMap(p
,resolution
)
map = occupancyMap(
crea un oggetto utilizzando i valori di un altro oggetto sourcemap
)occupancyMap
.
map = occupancyMap(
crea un oggetto utilizzando i valori di un altro oggetto sourcemap
,resolution
)occupancyMap
, ma ricampiona la matrice per ottenere la risoluzione specificata.
Argomenti di input
Proprietà
Funzioni oggetto
checkOccupancy | Check if locations are free or occupied |
copy | Create copy of 2-D occupancy map |
getOccupancy | Get occupancy probability of locations |
grid2local | Convert grid indices to local coordinates |
grid2world | Convert grid indices to world coordinates |
inflate | Inflate each occupied location |
insertRay | Insert ray from laser scan observation |
local2grid | Convert local coordinates to grid indices |
local2world | Convert local coordinates to world coordinates |
move | Move map in world frame |
occupancyMatrix | Convert occupancy map to matrix |
raycast | Compute cell indices along a ray |
rayIntersection | Find intersection points of rays and occupied map cells |
setOccupancy | Set occupancy probability of locations |
show | Display 2-D occupancy map |
syncWith | Sync map with overlapping map |
updateOccupancy | Update occupancy probability at locations |
world2grid | Convert world coordinates to grid indices |
world2local | Convert world coordinates to local coordinates |
Esempi
Limitazioni
I valori di occupazione hanno una risoluzione limitata di ±0,001. I valori vengono memorizzati come int16
utilizzando una rappresentazione logaritmica. Questo tipo di dati limita la risoluzione, ma consente di risparmiare memoria quando si memorizzano mappe di grandi dimensioni in MATLAB®. Quando si chiama setOccupancy
e poi getOccupancy
, il valore restituito potrebbe non essere uguale al valore impostato. Per ulteriori informazioni, vedere la sezione sulle rappresentazioni logaritmiche in Occupancy Grids.
Se la dimensione della memoria è un limite, si può prendere in considerazione l'utilizzo di binaryOccupancyMap
. La mappa di occupazione binaria utilizza meno memoria con valori binari, ma funziona comunque con gli algoritmi Navigation Toolbox™ e altre applicazioni.
Funzionalità estese
Cronologia versioni
Introdotto in R2019b
Vedi anche
binaryOccupancyMap
| mobileRobotPRM
(Robotics System Toolbox) | controllerPurePursuit
(Robotics System Toolbox) | rosReadOccupancyGrid
(ROS Toolbox) | rosWriteOccupancyGrid
(ROS Toolbox)