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.

getOccupancy

Obtener valor de ocupación de ubicaciones

Descripción

La función getOccupancy obtiene los valores de ocupación de ubicaciones especificadas en el mapa de ocupación binario.

occVal = getOccupancy(map,xy) devuelve una matriz de valores de ocupación en las ubicaciones xy en el marco mundial. Las ubicaciones desconocidas, incluso fuera del mapa, devuelven map.DefaultValue.

ejemplo

occVal = getOccupancy(map,xy,"local") devuelve una matriz de valores de ocupación en las ubicaciones xy en el marco local.

ejemplo

occVal = getOccupancy(map,ij,"grid") especifica índices de celdas de cuadrícula ij en lugar de ubicaciones xy.

ejemplo

[occVal,validPts] = getOccupancy(___) también genera un vector de elementos n de valores lógicos que indica si las coordenadas de entrada están dentro de los límites del mapa.

occMatrix = getOccupancy(map) devuelve todos los valores de ocupación en el mapa como una matriz.

occMatrix = getOccupancy(map,bottomLeft,matSize) devuelve una matriz de valores de ocupación especificando la ubicación de la esquina inferior izquierda en coordenadas mundiales y el tamaño de la matriz en metros.

occMatrix = getOccupancy(map,bottomLeft,matSize,"local") devuelve una matriz de valores de ocupación especificando la ubicación de la esquina inferior izquierda en coordenadas locales y el tamaño de la matriz en metros.

occMatrix = getOccupancy(map,topLeft,matSize,"grid") devuelve una matriz de valores de ocupación especificando el índice de la celda superior izquierda en los índices de la cuadrícula y el tamaño de la matriz.

Ejemplos

contraer todo

Cree un mapa de cuadrícula de ocupación binaria vacío.

map = binaryOccupancyMap(10,10,20);

Introduzca la pose del vehículo, los alcances, los ángulos y el alcance máximo del escaneo láser.

pose = [5,5,0];
ranges = 3*ones(100,1);
angles = linspace(-pi/2,pi/2,100);
maxrange = 20;

Crea un objeto lidarScan con los rangos y ángulos especificados.

scan = lidarScan(ranges,angles);

Inserte los datos del escaneo láser en el mapa de ocupación.

insertRay(map,pose,scan,maxrange);

Muestre el mapa para ver los resultados de insertar el escaneo láser.

show(map)

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

Verifique la ocupación del lugar directamente frente al vehículo.

getOccupancy(map,[8 5])
ans = logical
   1

Acceda a los valores de ocupación y verifique su estado de ocupación en función de los umbrales de ocupación y libertad del objeto occupancyMap.

Cree una matriz y rellénela con valores. Utilice esta matriz para crear un mapa de ocupación.

p = zeros(20,20);
p(11:20,11:20) = ones(10,10);
map = binaryOccupancyMap(p,10);
show(map)

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

Obtén la ocupación de diferentes ubicaciones y consulta sus estados de ocupación. El estado de ocupación devuelve 0 para espacio libre y 1 para espacio ocupado. Los valores desconocidos devuelven –1.

pocc = getOccupancy(map,[1.5 1]);
occupied = checkOccupancy(map,[1.5 1]);
pocc2 = getOccupancy(map,[5 5],'grid');

Argumentos de entrada

contraer todo

Representación de mapa, especificada como un objeto binaryOccupancyMap. Este objeto representa el entorno del vehículo.

Coordenadas en el mapa, especificadas como una matriz n por 2 de pares [x y], donde n es el número de coordenadas. Las coordenadas pueden ser coordenadas mundiales o locales según la sintaxis.

Tipos de datos: double

Ubicaciones de la cuadrícula en el mapa, especificadas como una matriz n por 2 de pares [i j], donde n es el número de ubicaciones. Las ubicaciones de la cuadrícula se dan como [row col].

Tipos de datos: double

Ubicación de la esquina inferior izquierda de la matriz de salida en coordenadas mundiales o locales, especificada como un vector de dos elementos, [xCoord yCoord]. La ubicación está en coordenadas mundiales o locales según la sintaxis.

Tipos de datos: double

Tamaño de la matriz de salida, especificado como un vector de dos elementos, [xLength yLength] o [gridRow gridCol]. El tamaño está en coordenadas mundiales, coordenadas locales o índices de cuadrícula según la sintaxis.

Tipos de datos: double

Ubicación de la esquina superior izquierda de la cuadrícula, especificada como un vector de dos elementos, [iCoord jCoord].

Tipos de datos: double

Argumentos de salida

contraer todo

Valores de ocupación, devueltos como un vector columna n por 1 con una longitud igual a xy o ij. Los valores de ocupación pueden ser libres de obstáculos (0) u ocupados (1).

Ubicaciones de mapas válidas, devueltas como un vector columna n por 1 con una longitud igual a xy o ij. Las ubicaciones dentro del mapa devuelven un valor de 1. Las ubicaciones fuera de los límites del mapa devuelven un valor de 0.

Matriz de valores de ocupación, devuelta como matriz con tamaño igual a matSize o el tamaño de map.

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 R2015a