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.

updateOccupancy

Actualizar probabilidad de ocupación en ubicaciones

Desde R2019b

Descripción

updateOccupancy(map,occMatrix) integra probabilísticamente una matriz de valores de ocupación, occMatrix, con la matriz de ocupación actual del objeto occupancyMap map. El tamaño de la matriz debe ser igual a la propiedad GridSize del mapa.

ejemplo

updateOccupancy(map,locations,obs) integra probabilísticamente los valores de observación, obs, en las celdas del mapa de ocupación correspondientes a la matriz n-por-2 de coordenadas mundiales locations. Los valores de observación se determinan en base a Modelo de sensor inverso.

updateOccupancy(map,xy,obs,'world') integra probabilísticamente los valores de observación, obs, en las celdas correspondientes a la matriz n-por-2 de coordenadas mundiales xy.

updateOccupancy(map,xy,obs,'local') integra probabilísticamente los valores de observación, obs, en las celdas correspondientes a la matriz de coordenadas locales n-por-2 xy.

updateOccupancy(map,ij,obs,'grid') integra probabilísticamente los valores de observación, obs, en las celdas correspondientes a la matriz n por 2 de índices de cuadrícula ij.

updateOccupancy(map,bottomLeft,obsMatrix) integra probabilísticamente una matriz m-por- n de valores de observación, obsMatrix, en una subregión en el mapa. Especifique la esquina inferior izquierda de la subregión como una posición mundial, bottomLeft. La subregión extiende m filas hacia arriba y n columnas hacia la derecha desde la posición especificada.

updateOccupancy(map,bottomLeft,obsMatrix,'world') integra probabilísticamente una matriz m-por- n de valores de observación, obsMatrix, en una subregión en el mapa. Especifique la esquina inferior izquierda de la subregión como una posición mundial, bottomLeft. La subregión extiende m filas hacia arriba y n columnas hacia la derecha desde la posición especificada.

updateOccupancy(map,bottomLeft,obsMatrix,'local') integra probabilísticamente una matriz m-por- n de valores de observación, obsMatrix, en una subregión en el mapa. Especifique la esquina inferior izquierda de la subregión como posición local, bottomLeft. La subregión extiende m filas hacia arriba y n columnas hacia la derecha desde la posición especificada.

updateOccupancy(map,topLeft,obsMatrix,'grid') integra probabilísticamente una matriz m-por- n de valores de observación, obsMatrix, en una subregión en el mapa. Especifique la esquina superior izquierda de la subregión como índice de cuadrícula, topLeft. La subregión extiende m filas hacia abajo y n columnas a la derecha del índice especificado.

Ejemplos

contraer todo

Crea un mapa vacío de 10 por 10 metros de tamaño.

map = occupancyMap(10,10,10);

Actualice la ocupación de ubicaciones mundiales específicas con nuevos valores de probabilidad y muestre el mapa.

x = [1.2; 2.3; 3.4; 4.5; 5.6];
y = [5.0; 4.0; 3.0; 2.0; 1.0];

pvalues = [0.2; 0.4; 0.6; 0.8; 1];

updateOccupancy(map,[x y],pvalues)
figure
show(map)

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

Inflar las zonas ocupadas en un radio de 0,5 m. Los valores de ocupación más grandes sobrescriben los valores más pequeños.

inflate(map,0.5)
figure
show(map)

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

Obtenga las ubicaciones de la cuadrícula de las ubicaciones del mundo.

ij = world2grid(map,[x y]);

Establezca valores de ocupación para las ubicaciones de la red.

setOccupancy(map,ij,ones(5,1),'grid')
figure
show(map)

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

Argumentos de entrada

contraer todo

Representación del mapa, especificada como un objeto occupancyMap . Este objeto representa el entorno del vehículo. El objeto contiene una cuadrícula matricial en la que cada valor representa la probabilidad de ocupación de esa celda. Valores cercanos a 1 representan una alta probabilidad de que la celda contenga un obstáculo. Valores cercanos a 0 representan una alta probabilidad de que la celda no esté ocupada y no contenga obstáculos.

Matriz de valores de ocupación, especificada como matriz. El tamaño de la matriz debe ser igual a la propiedad GridSize del mapa.

Los valores de ocupación pueden ser de cualquier tipo numérico, con valores entre 0 y 1. Si la matriz es lógica, se utilizan los valores de ocupación predeterminados de 0,7 (true) y 0,4 (false).

Ejemplo: updateOccupancy(map,ones(map.GridSize)*0.6)

Tipos de datos: single | double | logical

Ubicaciones de celdas en coordenadas mundiales, especificadas como una matriz n-por 2 con filas de la forma [x y], donde n es el número de coordenadas mundiales. La función ignora las ubicaciones fuera de los límites del mapa.

Ejemplo: updateOccupancy(map,[1 1; 3 3; 5 5],false)

Tipos de datos: single | double

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

Ejemplo: updateOccupancy(map,[2 2],[0.2 0.4; 0.6 0.8],'world')

Tipos de datos: single | double

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

Ejemplo: updateOccupancy(map,[2 2],[0.2 0.4; 0.6 0.8],'grid')

Tipos de datos: single | double

Coordenadas mundiales o locales, especificadas como una matriz n-por 2 con filas de la forma [x y], donde n es el número de coordenadas.

Ejemplo: updateOccupancy(map,[2 2; 4 4; 6 6],[0.2; 0.4; 0.6],'world')

Tipos de datos: single | double

Posiciones de la cuadrícula, especificadas como una matriz n por 2 con filas de la forma [i j] en formato [rows cols] , donde n es el número de posiciones de la cuadrícula.

Ejemplo: updateOccupancy(map,[2 2; 4 4; 6 6],[0.2; 0.4; 0.6],'grid')

Tipos de datos: single | double

Valores de observación de probabilidad, especificados como un escalar numérico o lógico o un n vector columna del mismo tamaño que locations, xy, o ij.

Los valores de obs pueden ser cualquier valor de 0 a 1, pero si obs es un vector lógico, los valores de observación predeterminados son 0,7 (true) y 0,4 (false). Si obs es un escalar numérico o lógico, el valor se aplica a todas las coordenadas en locations, xy o ij. Estos valores se correlacionan con el Modelo de sensor inverso para la proyección de rayos.

Ejemplo: updateOccupancy(map,[2 2; 4 4; 6 6],[0.2; 0.4; 0.6],'local')

Tipos de datos: single | double | logical

Matriz de valores de observación de probabilidad, especificada como una matriz numérica o lógica m-por- n .

Los valores de observación pueden ser de cualquier tipo numérico con valor entre 0 y 1. Si la matriz es lógica, se utilizan los valores de observación predeterminados de 0,7 (true) y 0,4 (false).

Ejemplo: updateOccupancy(map,[2 2],[0.2 0.4; 0.6 0.8])

Tipos de datos: single | double | logical

Más acerca de

contraer todo

Modelo de sensor inverso

El modelo de sensor inverso determina cómo se establecen los valores a lo largo de un rayo desde la lectura de un sensor de rango hasta los obstáculos en el mapa. NaN los valores del rango se ignoran. Los valores de rango mayores que maxrange no se actualizan.

Diagram of inverse sensor model.

Las ubicaciones de la cuadrícula que contienen lecturas de rango se actualizan con la probabilidad de ocupación. Las ubicaciones antes de la lectura se actualizan con la probabilidad gratuita. Todas las ubicaciones después de la lectura no se actualizan.

Capacidades ampliadas

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

Historial de versiones

Introducido en R2019b