Contenido principal

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

bpsEncoder

Codificador de conjunto de puntos básicos

Desde R2024a

    Descripción

    El objeto bpsEncoder crea un codificador que utiliza un conjunto de puntos base para derivar una representación compacta y fija de entornos de mapas para la planificación del movimiento. Debe utilizar el método encode del objeto bpsEncoder para codificar el mapa. Luego, puede utilizar el mapa codificado para la planificación del movimiento con técnicas basadas en aprendizaje profundo, como las redes de planificación de movimiento (MPNet) y la optimización hamiltoniana covariante basada en aprendizaje profundo para la planificación del movimiento (CHOMP). Para obtener información sobre cómo se utiliza la codificación de conjuntos de puntos base con MPNet y CHOMP basado en aprendizaje profundo, consulte Comience con las redes de planificación de movimiento y dlCHOMP (Robotics System Toolbox), respectivamente. El objeto bpsEncoder y su función encode implementan el algoritmo de codificación del conjunto de puntos base especificado en [1].

    Creación

    Descripción

    bpsObj = bpsEncoder crea un objeto codificador de conjunto de puntos base (BPS) con propiedades predeterminadas.

    ejemplo

    bpsObj = bpsEncoder(arrangement) especifica la disposición de los conjuntos de puntos base. Esta sintaxis establece la propiedad Arrangement del objeto codificador BPS en el valor especificado.

    bpsObj = bpsEncoder(arrangement,encodingSize) también especifica el tamaño de la codificación además de la disposición. El tamaño de codificación representa la cantidad de puntos base que se utilizarán para codificar el mapa. Esta sintaxis establece la propiedad EncodingSize del objeto codificador BPS en el valor especificado.

    bpsObj = bpsEncoder(___,Name=Value) especifica propiedades adicionales y sus valores utilizando uno o más argumentos de nombre-valor. Usando esta sintaxis, puede establecer las propiedades Center, Radius y Dimensions.

    Por ejemplo, bpsEncoder(arragement,Center=[10 10]) establece el valor de la propiedad Center en [10 10].

    Propiedades

    expandir todo

    Esta propiedad o parámetro es de solo lectura.

    Disposición del conjunto de puntos base, especificada como cualquiera de estos valores: "uniform-ball", "uniform-ball-3d", "rectangular-grid" o "rectangular-grid-3d".

    Tipos de datos: char | string

    Esta propiedad o parámetro es de solo lectura.

    Número de puntos base a calcular para codificar el entorno del mapa, especificado como un escalar entero positivo, un vector de 1 por 2 o un vector de 1 por 3.

    • Para los arreglos "uniform-ball-3d" y "uniform-ball", el tamaño de codificación debe especificarse como un escalar entero positivo. El valor predeterminado es 64.

    • Para la disposición "rectangular-grid", el tamaño de codificación debe especificarse como un vector de 1 por 2 con el formato [Ex, Ey]. Ex y Ey representan el tamaño de codificación en las direcciones x y y, respectivamente. El valor predeterminado es [8, 8].

    • Para la disposición "rectangular-grid-3d", el tamaño de codificación debe especificarse como un vector de 1 por 3 con la forma [Ex, Ey, Ez]. Ex, Ey y Ez representan el tamaño de codificación en las direcciones x, y y z, respectivamente. El valor predeterminado es [4, 4, 4].

    Si el tamaño de la codificación es escalar, la cantidad de puntos base es igual al valor escalar en sí. Si el tamaño de codificación es un vector, la cantidad de puntos base es el producto de cada elemento del vector. Por ejemplo, si el tamaño de codificación es [10 10], el número de puntos base es 100.

    Tipos de datos: single | double | int8 | int16 | int32 | int64 | uint8 | uint16 | uint32 | uint64

    Esta propiedad o parámetro es de solo lectura.

    Centro de la disposición BPS, especificado como

    • Vector de 2 elementos para arreglos "uniform-ball" y "rectangular-grid". El vector tiene la forma [Cx, Cy], que define las coordenadas x y y del centro, respectivamente. El valor predeterminado es [0, 0].

    • Vector de 3 elementos para arreglos "uniform-ball-3d" y "rectangular-grid-3d". El vector tiene la forma [Cx, Cy, Cz], que define las coordenadas x, y y z del centro, respectivamente. El valor predeterminado es [0, 0, 0].

    Tipos de datos: single | double | int8 | int16 | int32 | int64 | uint8 | uint16 | uint32 | uint64

    Esta propiedad o parámetro es de solo lectura.

    Radio de las disposiciones de bolas uniformes, especificado como un escalar positivo. Para los arreglos "uniform-ball" y "uniform-ball-3d", el valor predeterminado es 1.

    El objeto bpsEncoder enumera esta propiedad solo si la disposición BPS es "uniform-ball" o "uniform-ball-3d".

    Tipos de datos: single | double | int8 | int16 | int32 | int64 | uint8 | uint16 | uint32 | uint64

    Esta propiedad o parámetro es de solo lectura.

    Dimensiones de las disposiciones de la cuadrícula rectangular, especificadas como

    • Vector de 2 elementos para la disposición "rectangular-grid". El vector tiene la forma [length, width], que define la longitud y el ancho de la cuadrícula rectangular bidimensional, respectivamente. El valor predeterminado es [2, 2].

    • Vector de 3 elementos para la disposición "rectangular-grid-3d". El vector tiene la forma [length, width, height], que define la longitud, el ancho y la altura de la cuadrícula rectangular tridimensional, respectivamente. El valor predeterminado es [2, 2, 2].

    El objeto bpsEncoder enumera esta propiedad solo si la disposición BPS es "rectangular-grid" o "rectangular-grid-3d".

    Esta propiedad o parámetro es de solo lectura.

    Puntos básicos para codificar el entorno del mapa, devueltos como un

    • Matriz N por 2 para arreglos "uniform-ball" y "rectangular-grid".

    • Matriz N por 3 para arreglos "uniform-ball-3d" y "rectangular-grid-3d".

    N es el número de puntos base.

    Funciones del objeto

    encodeCodificar el entorno del mapa utilizando el codificador de conjunto de puntos base

    Ejemplos

    contraer todo

    Cargue un mapa de ejemplo en el espacio de trabajo y utilícelo para crear un mapa de ocupación con una resolución de 10 celdas/metro.

    load("exampleMaps.mat","simpleMap");
    map = occupancyMap(simpleMap,10);

    Especifique la disposición del conjunto de puntos base para la codificación como "rectangular-grid".

    arrangement = "rectangular-grid";

    Especifique el tamaño de codificación como [10 10]. Por lo tanto, el número de puntos base devueltos para codificar el entorno del mapa será 100.

    encodingSize = [10 10];

    Especifique las dimensiones de la cuadrícula rectangular. Para obtener resultados correctos, las dimensiones de la cuadrícula rectangular deben ser aproximadamente las mismas que las del entorno de entrada.

    xLims = map.XLocalLimits;
    yLims = map.YLocalLimits;
    dims = [(xLims(2) - xLims(1)) (yLims(2) - yLims(1))];

    Especifique el centro del mapa como el centro de la cuadrícula rectangular.

    center = [sum(xLims)/2 sum(yLims)/2];

    Cree un codificador de conjunto de puntos base utilizando el objeto bpsEncoder. Este objeto calcula los puntos base y los almacena en la propiedad Points.

    bpsObj= bpsEncoder(arrangement,encodingSize,Center=center,Dimensions=dims);
    basisPoints = bpsObj.Points;

    Codifique el entorno del mapa 2D de entrada utilizando la función encode.

    [encodedValues,nearestPoint] = encode(bpsObj,map);

    Muestra el mapa y los puntos base junto con los puntos de objeto más cercanos.

    show(map)
    hold on
    scatter(basisPoints(:,1),basisPoints(:,2),"filled",DisplayName="Basis Points")
    quiver(basisPoints(:,1),basisPoints(:,2),nearestPoint(:,1)-basisPoints(:,1),...
           nearestPoint(:,2)-basisPoints(:,2),0,Color='black',DisplayName='Nearest points')
    legend(Location="bestoutside")

    Figure contains an axes object. The axes object with title Occupancy Grid, xlabel X [meters], ylabel Y [meters] contains 3 objects of type image, scatter, quiver. These objects represent Basis Points, Nearest points.

    Referencias

    [1] Prokudin, Sergey, Christoph Lassner, and Javier Romero. “Efficient Learning on Point Clouds With Basis Point Sets.” In 2019 IEEE/CVF International Conference on Computer Vision (ICCV), 4331–40. Seoul, Korea (South): IEEE, 2019. https://doi.org/10.1109/ICCV.2019.00443.

    Capacidades ampliadas

    expandir todo

    Generación de código C/C++
    Genere código C y C++ mediante MATLAB® Coder™.

    Historial de versiones

    Introducido en R2024a

    Consulte también

    | | (Robotics System Toolbox)