occupancyMap
Description
occupancyMap
crée un objet de carte de grille d'occupation 2D. Chaque cellule de la grille d'occupation a une valeur représentant la probabilité d'occupation de cette cellule. Les valeurs proches de 1 représentent une forte probabilité que la cellule contienne un obstacle. Les valeurs proches de 0 représentent une forte probabilité que la cellule ne soit pas occupée et sans obstacle.
Les cartes d'occupation sont utilisées dans les algorithmes de navigation tels que la planification de chemins (voir plannerRRT
). Ils sont également utilisés dans les applications de cartographie pour trouver des chemins sans collision, éviter les collisions et calculer la localisation (voir monteCarloLocalization
). Vous pouvez modifier votre carte d'occupation pour l'adapter à votre application spécifique.
Les objets occupancyMap
prennent en charge les coordonnées locales, les coordonnées mondiales et les indices de grille. Le premier emplacement de la grille avec l'index (1,1)
commence dans le coin supérieur gauche de la grille.
Utilisez la classe occupancyMap
pour créer des cartes 2D d'un environnement avec des valeurs de probabilité représentant différents obstacles dans votre monde. Vous pouvez spécifier les valeurs de probabilité exactes des cellules ou inclure des observations provenant de capteurs tels que des scanners laser.
Les valeurs de probabilité sont stockées à l'aide d'un filtre Bayes binaire pour estimer l'occupation de chaque cellule de la grille. Une représentation de log-cotes est utilisée, avec des valeurs stockées sous la forme int16
pour réduire la taille de stockage de la carte et permettre des applications en temps réel.
Création
Syntaxe
Description
crée une carte d'occupation avec une résolution de grille spécifiée en cellules par mètre. map
= occupancyMap(width
,height
,resolution
)resolution
définit la propriété Resolution .
crée une carte d'occupation avec le nombre spécifié de lignes et de colonnes et avec la résolution en cellules par mètre. Les valeurs de map
= occupancyMap(rows
,cols
,resolution
,'grid')rows
et cols
définissent la propriété GridSize .
crée une carte d'occupation à partir des valeurs de la matrice map
= occupancyMap(p
)p
. La taille de la grille correspond à la taille de la matrice, chaque valeur de probabilité de cellule étant interprétée à partir de l'emplacement de la matrice.
crée une carte d'occupation à partir de la matrice spécifiée et de la résolution en cellules par mètre.map
= occupancyMap(p
,resolution
)
map = occupancyMap(
crée un objet en utilisant les valeurs d'un autre objet sourcemap
)occupancyMap
.
map = occupancyMap(
crée un objet en utilisant les valeurs d'un autre objet sourcemap
,resolution
)occupancyMap
, mais rééchantillonne la matrice pour avoir la résolution spécifiée.
Arguments en entrée
Propriétés
Fonctions d'objet
checkOccupancy | Vérifiez si les emplacements sont libres ou occupés |
copy | Create copy of 2-D occupancy map |
getOccupancy | Obtenez la probabilité d'occupation des emplacements |
grid2local | Convertir les indices de grille en coordonnées locales |
grid2world | Convertir les indices de grille en coordonnées mondiales |
inflate | Gonflez chaque emplacement occupé |
insertRay | Insérer un rayon à partir d'une observation par balayage laser |
local2grid | Convertir les coordonnées locales en indices de grille |
local2world | Convertir les coordonnées locales en coordonnées mondiales |
move | Déplacer la carte dans le cadre du monde |
occupancyMatrix | Convert occupancy map to matrix |
raycast | Calculer les indices de cellules le long d'un rayon |
rayIntersection | Find intersection points of rays and occupied map cells |
setOccupancy | Set occupancy probability of locations |
show | Afficher la carte d'occupation 2D |
syncWith | Synchroniser la carte avec la carte superposée |
updateOccupancy | Update occupancy probability at locations |
world2grid | Convertir les coordonnées mondiales en indices de grille |
world2local | Convertir les coordonnées mondiales en coordonnées locales |
Exemples
Limites
Les valeurs d'occupation ont une résolution limitée de ±0,001. Les valeurs sont stockées sous la forme int16
en utilisant une représentation de log-cotes. Ce type de données limite la résolution, mais économise de la mémoire lors du stockage de grandes cartes dans MATLAB®. Lors de l'appel de setOccupancy
puis de getOccupancy
, la valeur renvoyée peut ne pas être égale à la valeur que vous avez définie. Pour plus d'informations, consultez la section sur les représentations des log-cotes dans Occupancy Grids.
Si la taille de la mémoire est une limitation, envisagez plutôt d'utiliser binaryOccupancyMap
. La carte d'occupation binaire utilise moins de mémoire avec des valeurs binaires, mais fonctionne toujours avec les algorithmes Navigation Toolbox™ et d'autres applications.
Capacités étendues
Historique des versions
Introduit dans R2019b
Voir aussi
binaryOccupancyMap
| mobileRobotPRM
(Robotics System Toolbox) | controllerPurePursuit
(Robotics System Toolbox) | rosReadOccupancyGrid
(ROS Toolbox) | rosWriteOccupancyGrid
(ROS Toolbox)