Get particles from localization algorithm
returns the current particles used by the
particles is an n-by-3 matrix that
contains the location and orientation of each particle. Each row has a
corresponding weight value specified in
weights. The number
of rows can change with each iteration of the MCL algorithm. Use this method to
extract the particles and analyze them separately from the algorithm.
Get Particles from Monte Carlo Localization Algorithm
Get particles from the particle filter used in the Monte Carlo Localization object.
Create a map and a Monte Carlo localization object.
map = binaryOccupancyMap(10,10,20); mcl = monteCarloLocalization(map);
Create robot data for the range sensor and pose.
ranges = 10*ones(1,300); ranges(1,130:170) = 1.0; angles = linspace(-pi/2,pi/2,300); odometryPose = [0 0 0];
Initialize particles using
[isUpdated,estimatedPose,covariance] = step(mcl,odometryPose,ranges,angles);
Get particles from the updated object.
[particles,weights] = getParticles(mcl);
particles — Estimation particles
Estimation particles, returned as an n-by-3 vector,
[x y theta]. Each row corresponds to the position and
orientation of a single particle. The length can change with each iteration
of the algorithm.
weights — Weights of particles
Weights of particles, returned as a n-by-1 vector. Each
row corresponds to the weight of the particle in the matching row of
particles. These weights are used in the final
estimate of the pose of the vehicle. The length can change with each
iteration of the algorithm.
C/C++ Code Generation
Generate C and C++ code using MATLAB® Coder™.
Introduced in R2019b