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.

setParticles

Establecer partículas a partir del algoritmo de localización

Desde R2024a

    Descripción

    setParticles(mcl,particles) establece las poses de las partículas y establece los pesos de cada partícula en 1/n, donde n es la cantidad de partículas en el objeto mcl en el paso de tiempo actual.

    setParticles(mcl,particles,weights) especifica las poses y pesos que se establecerán para cada una de las partículas especificadas.

    ejemplo

    Ejemplos

    contraer todo

    Establezca partículas del filtro de partículas utilizado en el objeto monteCarloLocalization.

    Crea un mapa y un objeto monteCarloLocalization.

    sm = likelihoodFieldSensorModel;
    sm.Map = binaryOccupancyMap(10,10,20);
    mcl = monteCarloLocalization(UseLidarScan=true);
    mcl.SensorModel = sm;

    Llame al método de reinicio para inicializar mcl. El objeto monteCarloLocalization debe inicializarse utilizando los métodos step o reset primero antes de poder usar la función setParticles.

    reset(mcl);

    Cargue estados y pesos de partículas para utilizarlos para establecer las partículas en el objeto monteCarloLocalization.

    load("particleInfo.mat")
    setParticles(mcl,particleStates,weights);

    Crear datos de escaneo LiDAR . Crea un rango de 300 con valores medidos de 10 metros. Establezca los valores medios en 2 metros para representar un obstáculo. Cree ángulos correspondientes para las lecturas de rango y establezca el rango de ángulos entre -pi/2 y pi/2 radianes.

    ranges = 10*ones(1,300);
    ranges(1,130:170) = 2.0;
    angles = linspace(-pi/2,pi/2,300);
    scan = lidarScan(ranges,angles);

    Llame a mcl en una pose en el origen con los datos de escaneo LiDAR creados.

    [isUpdated,particlePoses,covariance] = mcl([0 0 0],scan)
    isUpdated = logical
       1
    
    
    particlePoses = 1×3
    
        0.0075    0.0518   -0.0010
    
    
    covariance = 3×3
    
        0.8914    0.0100         0
        0.0100    0.9305         0
             0         0    0.9823
    
    

    Argumentos de entrada

    contraer todo

    Objeto monteCarloLocalization, especificado como un identificador de objeto.

    Partículas de estimación, especificadas como una matriz n por 3, donde cada fila corresponde a la posición y orientación de una sola partícula [x y theta]. n es el número total de partículas a establecer y debe ser igual al número de partículas en mcl. Utilice las poses y pesos de las partículas de salida de getParticles para determinar la cantidad de partículas en el paso de tiempo actual y establecer las poses y pesos de las partículas.

    Pesos de partículas, devueltos como un vector columna de elementos n. Cada fila corresponde al peso de la partícula en la fila correspondiente de particles. Estos pesos se utilizan en la estimación final de la pose del vehículo. n es el número total de pesos a establecer y debe ser igual al número de partículas en mcl. Utilice las poses y pesos de las partículas de salida de getParticles para determinar la cantidad de partículas en el paso de tiempo actual y establecer las poses y pesos de las partículas.

    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 R2024a