occupancyMap
Erstellen Sie eine 2D-Belegungskarte
Beschreibung
occupancyMap
erstellt ein zweidimensionales Belegungsraster-Kartenobjekt. Jede Zelle im Belegungsraster hat einen Wert, der die Wahrscheinlichkeit der Belegung dieser Zelle darstellt. Werte nahe 1 stellen eine hohe Wahrscheinlichkeit dar, dass die Zelle ein Hindernis enthält. Werte nahe 0 stellen eine hohe Wahrscheinlichkeit dar, dass die Zelle nicht besetzt und frei von Hindernissen ist.
Belegungskarten werden in Navigationsalgorithmen wie der Pfadplanung verwendet (siehe plannerRRT
). Sie werden außerdem in Kartierungsanwendungen zum Suchen kollisionsfreier Pfade, zur Kollisionsvermeidung und zur Berechnung der Lokalisierung verwendet (siehe monteCarloLocalization
). Sie können Ihre Belegungskarte an Ihren spezifischen Anwendungszweck anpassen.
Die occupancyMap
-Objekte unterstützen lokale Koordinaten, Weltkoordinaten und Rasterindizes. Die erste Rasterposition mit dem Index (1,1)
beginnt in der oberen linken Ecke des Rasters.
Verwenden Sie die Klasse occupancyMap
, um 2D-Karten einer Umgebung mit Wahrscheinlichkeitswerten zu erstellen, die verschiedene Hindernisse in Ihrer Welt darstellen. Dabei können Sie exakte Wahrscheinlichkeitswerte von Zellen angeben oder auch Beobachtungen von Sensoren wie beispielsweise Laserscannern einbeziehen.
Wahrscheinlichkeitswerte werden mithilfe eines binären Bayes-Filters gespeichert, um die Belegung jeder Rasterzelle zu schätzen. Es wird eine Log-Odds-Darstellung verwendet, wobei die Werte als int16
gespeichert werden, um die Speichergröße der Karte zu reduzieren und Echtzeitanwendungen zu ermöglichen.
Erstellung
Syntax
Beschreibung
erstellt eine Belegungskarte mit einer angegebenen Rasterauflösung in Zellen pro Meter. map
= occupancyMap(width
,height
,resolution
)resolution
legt die Eigenschaft Resolution fest.
erstellt eine Belegungskarte mit der angegebenen Zeilen- und Spaltenanzahl und mit der Auflösung in Zellen pro Meter. Die Werte von map
= occupancyMap(rows
,cols
,resolution
,'grid')rows
und cols
legen die Eigenschaft GridSize fest.
erstellt eine Belegungskarte aus den Werten in der Matrix map
= occupancyMap(p
)p
. Die Rastergröße entspricht der Größe der Matrix, wobei der Wahrscheinlichkeitswert jeder Zelle aus der Matrixposition interpretiert wird.
erstellt eine Belegungskarte aus der angegebenen Matrix und Auflösung in Zellen pro Meter.map
= occupancyMap(p
,resolution
)
map = occupancyMap(
erstellt ein Objekt unter Verwendung von Werten eines anderen sourcemap
)occupancyMap
-Objekts.
map = occupancyMap(
erstellt ein Objekt unter Verwendung von Werten eines anderen sourcemap
,resolution
)occupancyMap
-Objekts, reskaliert die Matrix jedoch neu, um die angegebene Auflösung zu erreichen.
Eingabeargumente
Eigenschaften
Objektfunktionen
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 |
Beispiele
Einschränkungen
Die Auflösung der Belegungswerte ist auf ±0,001 begrenzt. Die Werte werden als int16
unter Verwendung einer Log-Odds-Darstellung gespeichert. Dieser Datentyp begrenzt die Auflösung, spart aber Speicher beim Speichern großer Karten in MATLAB®. Wenn Sie setOccupancy
und dann getOccupancy
aufrufen, entspricht der zurückgegebene Wert möglicherweise nicht dem von Ihnen festgelegten Wert. Weitere Informationen finden Sie im Abschnitt zu Log-Odds-Darstellungen in Occupancy Grids.
Wenn die Speichergröße eine Einschränkung darstellt, sollten Sie stattdessen binaryOccupancyMap
verwenden. Die binäre Belegungskarte benötigt bei binären Werten weniger Speicher, funktioniert aber dennoch mit Navigation Toolbox™-Algorithmen und anderen Anwendungen.
Erweiterte Fähigkeiten
Versionsverlauf
Eingeführt in R2019b
Siehe auch
binaryOccupancyMap
| mobileRobotPRM
(Robotics System Toolbox) | controllerPurePursuit
(Robotics System Toolbox) | rosReadOccupancyGrid
(ROS Toolbox) | rosWriteOccupancyGrid
(ROS Toolbox)