occupancyMap
Descripción
occupancyMap
crea un objeto de mapa de cuadrícula de ocupación 2-D. Cada celda de la cuadrícula de ocupación tiene un valor que representa la probabilidad de ocupación de la celda. Los 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 libre de obstáculos.
Los mapas de ocupación se utilizan en algoritmos de navegación como la planificación de rutas (ver plannerRRT
). También se utilizan en aplicaciones de mapeo para encontrar rutas libres de colisiones, evitar colisiones y calcular la localización (ver monteCarloLocalization
). Puede modificar su mapa de ocupación para adaptarlo a su aplicación específica.
Los objetos occupancyMap
admiten coordenadas locales, coordenadas mundiales e índices de cuadrícula. La primera ubicación de la cuadrícula con índice (1,1)
comienza en la esquina superior izquierda de la cuadrícula.
Utilice la clase occupancyMap
para crear mapas 2-D de un entorno con valores de probabilidad que representen diferentes obstáculos en su mundo. Puede especificar valores de probabilidad exactos de las células o incluir observaciones de sensores como escáneres láser.
Los valores de probabilidad se almacenan utilizando un filtro Bayes binario para estimar la ocupación de cada celda de la cuadrícula. Se utiliza una representación de probabilidades de registro, con valores almacenados como int16
para reducir el tamaño de almacenamiento del mapa y permitir aplicaciones en tiempo real.
Creación
Sintaxis
Descripción
crea un mapa de ocupación con una resolución de cuadrícula especificada en celdas por metro. map
= occupancyMap(width
,height
,resolution
)resolution
establece la propiedad Resolution .
crea un mapa de ocupación con el número especificado de filas y columnas y con la resolución en celdas por metro. Los valores de map
= occupancyMap(rows
,cols
,resolution
,'grid')rows
y cols
establecen la propiedad GridSize .
crea un mapa de ocupación a partir de los valores de la matriz map
= occupancyMap(p
)p
. El tamaño de la cuadrícula coincide con el tamaño de la matriz, y el valor de probabilidad de cada celda se interpreta a partir de la ubicación de la matriz.
crea un mapa de ocupación a partir de la matriz especificada y la resolución en celdas por metro.map
= occupancyMap(p
,resolution
)
map = occupancyMap(
crea un objeto usando valores de otro objeto sourcemap
)occupancyMap
.
map = occupancyMap(
crea un objeto usando valores de otro objeto sourcemap
,resolution
)occupancyMap
, pero vuelve a muestrear la matriz para tener la resolución especificada.
Argumentos de entrada
Propiedades
Funciones del objeto
checkOccupancy | Consultar si las localidades están libres u ocupadas |
copy | Crear copia del mapa de ocupación 2-D |
getOccupancy | Obtener probabilidad de ocupación de ubicaciones |
grid2local | Convertir los índices de la cuadrícula en coordenadas locales |
grid2world | Convertir los índices de la cuadrícula en coordenadas del mundo real |
inflate | Agrandar cada ubicación ocupada |
insertRay | Insertar rayo de observación con escaneo láser. |
local2grid | Convertir coordenadas locales a índices de cuadrícula |
move | Mover mapa en el marco mundial |
occupancyMatrix | Convertir mapa de ocupación a matriz |
raycast | Calcular índices de celdas a lo largo de un rayo. |
rayIntersection | Encuentra puntos de intersección de rayos y celdas de mapa ocupadas. |
setOccupancy | Establecer probabilidad de ocupación de ubicaciones |
show | Mostrar mapa de ocupación 2-D |
syncWith | Sincronizar mapa con mapa superpuesto |
updateOccupancy | Actualizar probabilidad de ocupación en ubicaciones |
world2grid | Convertir coordenadas mundiales a índices de cuadrícula |
world2local | Convertir coordenadas mundiales a coordenadas locales |
Ejemplos
Limitaciones
Los valores de ocupación tienen una resolución limitada de ±0,001. Los valores se almacenan como int16
usando una representación de probabilidades logarítmicas. Este tipo de datos limita la resolución, pero ahorra memoria al almacenar mapas grandes en MATLAB®. Al llamar a setOccupancy
y luego a getOccupancy
, es posible que el valor devuelto no sea igual al valor que estableció. Para obtener más información, consulte la sección de representaciones de probabilidades logarítmicas en Cuadrículas de ocupación.
Si el tamaño de la memoria es una limitación, considere usar binaryOccupancyMap
en su lugar. El mapa de ocupación binaria utiliza menos memoria con valores binarios, pero aún funciona con algoritmos Navigation Toolbox™ y otras aplicaciones.
Capacidades ampliadas
Historial de versiones
Introducido en R2019b
Consulte también
binaryOccupancyMap
| mobileRobotPRM
(Robotics System Toolbox) | controllerPurePursuit
(Robotics System Toolbox) | rosReadOccupancyGrid
(ROS Toolbox) | rosWriteOccupancyGrid
(ROS Toolbox)