Main Content

Esta página se ha traducido mediante traducción automática. Haga clic aquí para ver la última versión en inglés.

signedDistanceMap

Mapa de distancia discreto firmado de la región 2-D

Desde R2023a

    Descripción

    Utilice el objeto signedDistanceMap para representar distancias a superficies o contornos en el espacio usando funciones de distancia con signo. Los puntos de consulta devuelven valores positivos si se encuentran fuera de una región ocupada del espacio y negativos si se encuentran dentro de un espacio. Este objeto de mapa también proporciona información de gradiente y la ubicación de la celda ocupada más cercana en la escena.

    Creación

    Descripción

    Dimensiones

    map = signedDistanceMap crea un objeto de mapa de distancia firmado en 2D vacío que ocupa 10 por 10 metros de espacio con una resolución de 1 celda por metro.

    map = signedDistanceMap(width,height) crea un mapa con el ancho especificado width y alto height con una resolución de 1 celda por metro.

    map = signedDistanceMap(width,height,resolution) crea un mapa con el ancho especificado width y alto height con una resolución de resolution celda por metro. La propiedad Resolution se establece en resolution.

    map = signedDistanceMap(width,height,resolution,"world") crea un mapa con un tamaño de cuadrícula de width-por- height en coordenadas mundiales. La propiedad Resolution se establece en resolution.

    map = signedDistanceMap(rows,cols,resolution,"grid") crea un mapa con un tamaño de cuadrícula de rows-por- cols en coordenadas de cuadrícula. La propiedad Resolution se establece en resolution.

    Otros mapas

    ejemplo

    map = signedDistanceMap(mapmatrix) crea un mapa del mismo tamaño y valor que la matriz mapmatrix.

    map = signedDistanceMap(mapmatrix,resolution) crea un mapa a partir de los valores de la matriz o arreglo matricial mapmatrix con una resolución resolution. La propiedad Resolution se establece en resolution.

    map = signedDistanceMap(sourcemap) crea un nuevo objeto utilizando los datos de ocupación copiados de otro objeto signedDistanceMap .

    map = signedDistanceMap(sourcemap,resolution) crea un nuevo objeto utilizando los datos de ocupación copiados de otro objeto signedDistanceMap pero vuelve a muestrear la matriz para tener la resolución especificada resolution. La propiedad Resolution se establece en resolution.

    Opciones adicionales

    map = signedDistanceMap(___,Name=Value) especifica valores de propiedad utilizando argumentos de nombre-valor.

    Por ejemplo, signedDistanceMap(__,LocalOriginInWorld=[15 20]) establece el origen local en una ubicación mundial específica.

    Argumentos de entrada

    expandir todo

    Ancho del mapa, especificado como escalar numérico no negativo, en metros.

    Altura del mapa, especificada como escalar numérico no negativo, en metros.

    Número de filas en el mapa, especificado como escalar numérico no negativo.

    Número de columnas en el mapa, especificadas como escalar numérico no negativo.

    Matriz de mapa, especificada como una matriz M por N , donde cada celda contiene 1 para ocupada y 0 para desocupado.

    Mapa de distancia firmado para copiar valores, especificado como un objeto signedDistanceMap .

    Propiedades

    expandir todo

    Tipo de datos de los valores almacenados en el mapa, especificados como un vector de caracteres.

    Esta propiedad se establece en función del tipo de datos de la entrada p o el tipo de datos de DefaultValue. Después de crear el objeto, esta propiedad es de solo lectura.

    Tipos de datos: char

    Valor predeterminado para ubicaciones de mapa no especificadas, incluidas áreas fuera del mapa, especificado como un escalar numérico.

    Método de interpolación para matriz de distancias, especificada como una cadena escalar:

    • "none" — La distancia es constante dentro de las celdas. El gradiente es NaN.

    • "linear" — Distancia interpolada bilinealmente. El gradiente es continuo por partes entre los centros de las celdas.

    Tipos de datos: char | string

    Ubicación de la esquina inferior izquierda de la cuadrícula en coordenadas mundiales, especificada como un vector de dos elementos, [xWorld yWorld].

    Puede establecer esta propiedad cuando crea el objeto.

    Ubicación de la esquina inferior izquierda de la cuadrícula en coordenadas locales, especificada como un vector de dos elementos, [xLocal yLocal].

    Puede establecer esta propiedad cuando crea el objeto.

    Número de filas y columnas de la cuadrícula, almacenado como un vector de valor entero de dos elementos que representa el número de filas y columnas, en ese orden.

    Esta propiedad se establece cuando crea el objeto en función de las dos primeras dimensiones de la matriz de entrada mapmatrix, las entradas width y height, o las entradas row y col.

    Nombre de la capa del mapa, especificado como un vector de caracteres o una cadena escalar.

    Puede establecer esta propiedad como un argumento de nombre-valor cuando crea el objeto. Después de crear el objeto, esta propiedad es de solo lectura.

    Tipos de datos: char | string

    Ubicación del origen del marco local en coordenadas mundiales, especificada como un vector de dos elementos, [xLocal yLocal]. Utilice la función move para cambiar el marco local a medida que su vehículo se mueve.

    Puede establecer esta propiedad como un argumento de nombre-valor cuando crea el objeto.

    Esta propiedad o parámetro es de solo lectura.

    Resolución de la cuadrícula, especificada como un escalar numérico positivo en celdas por metro que representa el número y el tamaño de las ubicaciones de la cuadrícula.

    Puede establecer esta propiedad como un argumento de nombre-valor cuando crea el objeto. Después de crear el objeto, esta propiedad es de solo lectura.

    Esta propiedad o parámetro es de solo lectura.

    Valores mínimos y máximos de x-coordenadas en el marco local, almacenados como un vector fila de dos elementos de la forma [min max]. El marco local está definido por la propiedad LocalOriginInWorld .

    Esta propiedad o parámetro es de solo lectura.

    Valores mínimos y máximos de y-coordenadas en el marco local, almacenados como un vector fila de dos elementos de la forma [min max]. El marco local está definido por la propiedad LocalOriginInWorld .

    Esta propiedad o parámetro es de solo lectura.

    Valores mínimos y máximos de x-coordenadas del marco mundial, almacenados como un vector fila de dos elementos que representa los valores mínimo y máximo, en ese orden.

    Esta propiedad o parámetro es de solo lectura.

    Valores mínimos y máximos de y-coordenadas del marco mundial, almacenados como un vector fila de dos elementos que representa los valores mínimo y máximo, en ese orden.

    Funciones del objeto

    copyCrear una copia del mapa de distancia firmado en 2-D
    closestBoundaryObtener el límite más cercano a la ubicación
    distanceObtener distancia en ubicaciones
    getMapDataRecuperar datos de la capa del mapa
    gradientObtener gradiente en ubicaciones
    grid2worldConvertir los índices de la cuadrícula en coordenadas del mundo real
    grid2localConvertir los índices de la cuadrícula en coordenadas locales
    local2gridConvertir coordenadas locales a índices de cuadrícula
    local2worldConvertir coordenadas locales a coordenadas mundiales
    moveMover mapa en el marco mundial
    setMapDataAsignar datos a la capa del mapa
    showMostrar mapa de distancia firmado
    syncWithSincronizar mapa con mapa superpuesto
    world2gridConvertir coordenadas mundiales a índices de cuadrícula
    world2localConvertir coordenadas mundiales a coordenadas locales

    Ejemplos

    contraer todo

    Cargue el archivo exampleMaps MAT.

    load exampleMaps.mat

    Cree un mapa de distancia firmado utilizando los datos 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.

    Encuentre el límite más cercano a la coordenada, [16.25 6.25] y calcule la distancia al límite más cercano.

    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
    

    Trazar la línea entre el punto consultado y el centro de la celda de obstáculo más cercano

    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.

    Tenga en cuenta que aunque la distancia desde el punto consultado parece mayor que 4 cuando se traza, la función de distancia calcula la distancia desde el centro de celda más cercano del punto consultado.

    Historial de versiones

    Introducido en R2023a