El objeto mapLayer
le permite aplicar transformaciones personalizadas elemento por elemento al configurar y obtener datos en el mapa. Para transformar los datos que establece u obtiene del mapa, especifique los identificadores de función para las propiedades GetTransfomFcn
y SetTransformFcn
. Este ejemplo muestra cómo implementar una capa de mapa probabilístico de probabilidades logarítmicas mediante la creación de una tabla de búsqueda para valores de probabilidad y probabilidades logarítmicas. Las funciones de transformación utilizan estas tablas de búsqueda para convertir entre estos valores al configurar u obtener datos.
Crear tablas de búsqueda
Genere una tabla de búsqueda completa de valores que asignan los valores de probabilidad a los límites mínimo y máximo de los valores int16
.
Crea una matriz de valores int16
desde intmin
hasta intmax
. Definir los límites de probabilidad.
Las funciones exampleHelperProbToLogodds
y examplerHelperLogoddsToProb
convierten entre valores de probabilidad y probabilidades logarítmicas. Utilice las funciones auxiliares para obtener los límites de las probabilidades logarítmicas y generar el arreglo para buscar valores de las probabilidades logarítmicas. Cree una cuadrícula interpolada para toda la tabla de búsqueda.
Especificar identificadores de función de transformación
Los controladores de la función de transformación utilizan ayudas de ejemplo que definen cómo convertir entre valores enteros de probabilidades logarítmicas y los valores de probabilidad con un límite de saturación aplicado. Los límites de saturación de probabilidad son [0.001 .999]
como se especificó anteriormente. Este comportamiento es similar al objeto occupancyMap
.
Crear capa de mapa
Genere un objeto de capa de mapa de ocupación a partir de una matriz de valores de probabilidad. Especifique las funciones de transformación get y set.
Observe que cuando crea el mapa, el valor predeterminado es 0,001 en lugar de 0. Esta diferencia se debe a que la función SetTransformFcn
se ha aplicado al valor predeterminado de 0 cuando se crea el objeto, lo que satura el valor a 0,001.
Obtener y configurar datos de mapas
Los datos del mapa coinciden con la matriz que configuró al crearlo.
extData = 10×10
0.5000 0.5000 0.5000 0.5000 0.5000 0.5000 0.5000 0.5000 0.5000 0.5000
0.5000 0.5000 0.5000 0.5000 0.5000 0.5000 0.5000 0.5000 0.5000 0.5000
0.5000 0.5000 0.5000 0.5000 0.5000 0.5000 0.5000 0.5000 0.5000 0.5000
0.5000 0.5000 0.5000 0.5000 0.5000 0.5000 0.5000 0.5000 0.5000 0.5000
0.5000 0.5000 0.5000 0.5000 0.5000 0.5000 0.5000 0.5000 0.5000 0.5000
0.5000 0.5000 0.5000 0.5000 0.5000 0.5000 0.5000 0.5000 0.5000 0.5000
0.5000 0.5000 0.5000 0.5000 0.5000 0.5000 0.5000 0.5000 0.5000 0.5000
0.5000 0.5000 0.5000 0.5000 0.5000 0.5000 0.5000 0.5000 0.5000 0.5000
0.5000 0.5000 0.5000 0.5000 0.5000 0.5000 0.5000 0.5000 0.5000 0.5000
0.5000 0.5000 0.5000 0.5000 0.5000 0.5000 0.5000 0.5000 0.5000 0.5000
Establezca ubicaciones de mapa específicas en valores que sean:
Para la primera ubicación, la probabilidad está limitada a los límites de saturación.
La segunda ubicación devuelve el valor más cercano al valor de probabilidad en la tabla de búsqueda.
La capa de mapa generada ahora se puede utilizar para actualizar un mapa de ocupación de probabilidad que se almacena como valores int16
. Para combinar este mapa con otras capas o tipos de mapas, consulte el objeto multiLayerMap
.