Main Content

Cette page a été traduite par traduction automatique. Cliquez ici pour voir la dernière version en anglais.

signedDistanceMap

Carte de distance discrète signée d'une région 2D

Depuis R2023a

    Description

    Utilisez l'objet signedDistanceMap pour représenter les distances par rapport aux surfaces ou aux contours dans l'espace à l'aide de fonctions de distance signée. Les points de requête renvoient des valeurs positives s'ils se trouvent en dehors d'une région occupée de l'espace et négatives s'ils se trouvent à l'intérieur d'un espace. Cet objet cartographique fournit également des informations sur le dégradé et l'emplacement de la cellule occupée la plus proche de la scène.

    Création

    Description

    Dimensions

    map = signedDistanceMap crée un objet de carte de distance signé en 2D vide occupant 10 mètres sur 10 mètres avec une résolution de 1 cellule par mètre.

    map = signedDistanceMap(width,height) crée une carte avec la largeur spécifiée width et la hauteur height avec une résolution de 1 cellule par mètre.

    map = signedDistanceMap(width,height,resolution) crée une carte avec la largeur spécifiée width et la hauteur height avec une résolution de resolution cellule par mètre. La propriété Resolution est définie sur resolution.

    map = signedDistanceMap(width,height,resolution,"world") crée une carte avec une taille de grille de width-par- height en coordonnées mondiales. La propriété Resolution est définie sur resolution.

    map = signedDistanceMap(rows,cols,resolution,"grid") crée une carte avec une taille de grille de rows-par- cols en coordonnées de grille. La propriété Resolution est définie sur resolution.

    Autres cartes

    map = signedDistanceMap(mapmatrix) crée une carte de même taille et valeur que la matrice mapmatrix.

    exemple

    map = signedDistanceMap(mapmatrix,resolution) crée une carte à partir des valeurs de la matrice ou du tableau matriciel mapmatrix avec une résolution resolution. La propriété Resolution est définie sur resolution.

    map = signedDistanceMap(sourcemap) crée un nouvel objet en utilisant les données d'occupation copiées à partir d'un autre objet signedDistanceMap .

    map = signedDistanceMap(sourcemap,resolution) crée un nouvel objet en utilisant les données d'occupation copiées à partir d'un autre objet signedDistanceMap mais rééchantillonne la matrice pour avoir la résolution spécifiée resolution. La propriété Resolution est définie sur resolution.

    Options additionelles

    map = signedDistanceMap(___,Name=Value) spécifie les valeurs de propriété à l'aide d'arguments nom-valeur.

    Par exemple, signedDistanceMap(__,LocalOriginInWorld=[15 20]) définit l’origine locale sur un emplacement mondial spécifique.

    Arguments en entrée

    développer tout

    Largeur de la carte, spécifiée sous forme de scalaire numérique non négatif, en mètres.

    Hauteur de la carte, spécifiée sous forme de scalaire numérique non négatif, en mètres.

    Nombre de lignes dans la carte, spécifié sous forme de scalaire numérique non négatif.

    Nombre de colonnes dans la carte, spécifié sous forme de scalaire numérique non négatif.

    Matrice de carte, spécifiée comme une matrice M-par- N , où chaque cellule contient 1 pour occupé et 0 pour inoccupé.

    Carte de distance signée à partir de laquelle copier les valeurs, spécifiée comme objet signedDistanceMap .

    Propriétés

    développer tout

    Type de données des valeurs stockées dans la carte, spécifiées sous forme de vecteur de caractères.

    Cette propriété est définie en fonction du type de données de l'entrée p ou du type de données DefaultValue. Une fois l'objet créé, cette propriété est en lecture seule.

    Types de données : char

    Valeur par défaut pour les emplacements de carte non spécifiés, y compris les zones en dehors de la carte, spécifiée sous forme de scalaire numérique.

    Méthode d'interpolation pour la matrice de distance, spécifiée sous forme de chaîne scalaire :

    • "none" — La distance est constante dans les cellules. Le dégradé est NaN.

    • "linear" — Distance interpolée de manière bilinéaire. Le gradient est continu par morceaux entre les centres des cellules.

    Types de données : char | string

    Emplacement du coin inférieur gauche de la grille en coordonnées mondiales, spécifié comme vecteur à deux éléments, [xWorld yWorld].

    Vous pouvez définir cette propriété lorsque vous créez l'objet.

    Emplacement du coin inférieur gauche de la grille en coordonnées locales, spécifié comme vecteur à deux éléments, [xLocal yLocal].

    Vous pouvez définir cette propriété lorsque vous créez l'objet.

    Nombre de lignes et de colonnes dans la grille, stocké sous forme de vecteur entier à deux éléments représentant le nombre de lignes et de colonnes, dans cet ordre.

    Cette propriété est définie lorsque vous créez l'objet en fonction des deux premières dimensions de la matrice d'entrée mapmatrix, les entrées width et height, ou les entrées row et col.

    Nom de la couche de carte, spécifié sous forme de vecteur de caractères ou de chaîne scalaire.

    Vous pouvez définir cette propriété comme argument nom-valeur lorsque vous créez l'objet. Une fois l'objet créé, cette propriété est en lecture seule.

    Types de données : char | string

    Emplacement de l'origine du cadre local en coordonnées mondiales, spécifié sous la forme d'un vecteur à deux éléments, [xLocal yLocal]. Utilisez la fonction move pour décaler le cadre local à mesure que votre véhicule se déplace.

    Vous pouvez définir cette propriété comme argument nom-valeur lorsque vous créez l'objet.

    Ce propriété est en lecture seule.

    Résolution de la grille, spécifiée sous la forme d'un scalaire numérique positif en cellules par mètre représentant le nombre et la taille des emplacements de la grille.

    Vous pouvez définir cette propriété comme argument nom-valeur lorsque vous créez l'objet. Une fois l'objet créé, cette propriété est en lecture seule.

    Ce propriété est en lecture seule.

    Valeurs minimales et maximales des coordonnées x dans le cadre local, stockées sous la forme d'un vecteur ligne à deux éléments de la forme [min max]. Le cadre local est défini par la propriété LocalOriginInWorld .

    Ce propriété est en lecture seule.

    Valeurs minimales et maximales des coordonnées y dans le cadre local, stockées sous la forme d'un vecteur ligne à deux éléments de la forme [min max]. Le cadre local est défini par la propriété LocalOriginInWorld .

    Ce propriété est en lecture seule.

    Valeurs minimales et maximales des coordonnées x du cadre mondial, stockées sous forme de vecteur ligne à deux éléments représentant les valeurs minimales et maximales, dans cet ordre.

    Ce propriété est en lecture seule.

    Valeurs minimales et maximales des coordonnées y du cadre mondial, stockées sous forme de vecteur ligne à deux éléments représentant les valeurs minimales et maximales, dans cet ordre.

    Fonctions d'objet

    copyCréer une copie de la carte de distance signée en 2D
    closestBoundaryObtenir la limite la plus proche de l'emplacement
    distanceObtenez la distance à certains endroits
    getMapDataRécupérer des données de la couche cartographique
    gradientObtenez un dégradé à certains endroits
    grid2worldConvertir les indices de grille en coordonnées mondiales
    grid2localConvertir les indices de grille en coordonnées locales
    local2gridConvertir les coordonnées locales en indices de grille
    local2worldConvertir les coordonnées locales en coordonnées mondiales
    moveDéplacer la carte dans le cadre du monde
    setMapDataAttribuer des données à la couche de carte
    showDisplay signed distance map
    syncWithSynchroniser la carte avec la carte superposée
    world2gridConvertir les coordonnées mondiales en indices de grille
    world2localConvertir les coordonnées mondiales en coordonnées locales

    Exemples

    réduire tout

    Chargez le fichier exampleMaps MAT.

    load exampleMaps.mat

    Créez une carte de distance signée en utilisant les données simpleMap .

    sdm = signedDistanceMap(simpleMap,InterpolationMethod="none");
    show(sdm,BoundaryColor=[0 0 0],Colorbar="on");

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

    setMapData(sdm,[7 1],zeros(5,5))
    getMapData(sdm,[9 2])
    ans = logical
       0
    
    
    show(sdm,BoundaryColor=[0 0 0],Colorbar="on");

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

    Trouvez la limite la plus proche de la coordonnée, [16.25 6.25] et calculez la distance jusqu'à la limite la plus proche.

    coord = [16.25 6.25];
    boundary = closestBoundary(sdm,coord,"world")
    boundary = 
    boundary(:,:,1) =
    
       20.5000
    
    
    boundary(:,:,2) =
    
        6.5000
    
    
    dist = distance(sdm,coord)
    dist = 4
    

    Tracez la ligne entre le point interrogé et le centre de la cellule d'obstacle le plus proche

    hold on
    plot([coord(1) boundary(:,:,1)],[coord(2) boundary(:,:,2)],"-r",Marker=".",MarkerSize=10)

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

    Notez que même si la distance du point interrogé semble supérieure à 4 lors du tracé, la fonction de distance calcule la distance depuis le centre de cellule le plus proche du point interrogé.

    Historique des versions

    Introduit dans R2023a