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.

likelihoodFieldSensorModel

Crear un modelo de sensor de rango de campo de probabilidad

Descripción

El objeto likelihoodFieldSensor crea un objeto de modelo de sensor de campo de probabilidad para sensores de rango. Este objeto contiene parámetros específicos del modelo de sensor. Puede utilizar este objeto para especificar los parámetros del modelo en un objeto monteCarloLocalization.

Creación

Descripción

lf = likelihoodFieldSensorModel crea un objeto de modelo de sensor de campo de probabilidad para sensores de rango.

ejemplo

Propiedades

expandir todo

Cuadrícula de ocupación que representa el mapa, especificada como un objeto binaryOccupancyMap. Este objeto representa el entorno del vehículo como una cuadrícula con valores binarios que indican obstáculos como true (1) y ubicaciones libres como false (0).

Pose del sensor de rango con respecto al marco de coordenadas del vehículo, especificada como un vector de tres elementos, [x y theta].

Alcance mínimo y máximo del sensor, especificado como un vector de dos elementos en metros.

Número de haces utilizados para el cálculo de probabilidad, especificado como escalar. La eficiencia del cálculo se puede mejorar especificando un número menor de haces que el número real disponible en el sensor.

Desviación estándar del ruido de medición, especificada como escalar.

Ponderación de la probabilidad de medición aleatoria, especificada como escalar. Este escalar es la probabilidad de que la medición no sea precisa debido a interferencias aleatorias.

Ponderación de la probabilidad de la medición esperada, especificada como escalar. El peso es la probabilidad de obtener una medición de rango correcta dentro de los límites de ruido especificados en la propiedad MeasurementNoise.

Distancia máxima para encontrar los obstáculos más cercanos, especificada como escalar en metros.

Ejemplos

contraer todo

Crea un objeto monteCarloLocalization. Establezca la propiedad UseLidarScan en true.

mcl = monteCarloLocalization;
mcl.UseLidarScan = true;

Crea un objeto likelihoodFieldSensorModel para un sensor de rango. Asigne el modelo de sensor con un mapa de cuadrícula de ocupación al objeto monteCarloLocalization.

sm = likelihoodFieldSensorModel;
p = zeros(200,200);
sm.Map = occupancyMap(p,20);
mcl.SensorModel = sm;

Cree datos de escaneo láser de muestra.

ranges = 10*ones(1,300);
ranges(1,130:170) = 1.0;
angles = linspace(-pi/2,pi/2,300);
odometryPose = [0 0 0];

Crea un objeto lidarScan especificando los rangos y ángulos.

scan = lidarScan(ranges,angles);

Estimar la pose y la covarianza del vehículo.

[isUpdated,estimatedPose,covariance] = mcl(odometryPose,scan)
isUpdated = logical
   1

estimatedPose = 1×3

    0.0350   -0.0126    0.0280

covariance = 3×3

    0.9946   -0.0012         0
   -0.0012    0.9677         0
         0         0    0.9548

Limitaciones

Si cambia el modelo de su sensor después de usarlo con el objeto monteCarloLocalization, llame a la función release en ese objeto de antemano. Por ejemplo:

mcl = monteCarloLocalization; 
[isUpdated,pose,covariance] = mcl(ranges,angles); 
release(mcl) 
mcl.SensorModel.NumBeams = 120;

Historial de versiones

Introducido en R2019b