getParticles

Пакет: робототехника

Получите частицы из алгоритма локализации

Синтаксис

[particles,weights] = getParticles(mcl)

Описание

пример

[particles,weights] = getParticles(mcl) возвращает текущие частицы, используемые объектом MonteCarloLocalization. particles является n-by-3 матрица, которая содержит местоположение и ориентацию каждой частицы. Каждая строка имеет соответствующее значение веса, заданное в weights. Количество строк может измениться с каждой итерацией алгоритма MCL. Используйте этот метод, чтобы извлечь частицы и анализировать их отдельно из алгоритма.

Примеры

свернуть все

Получите частицы от фильтра частиц, используемого в объекте Monte Carlo Localization.

Создайте карту и объект локализации Монте-Карло.

map = robotics.BinaryOccupancyGrid(10,10,20);
mcl = robotics.MonteCarloLocalization(map);

Создайте данные о роботе для датчика области значений и положения.

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

Инициализируйте частицы с помощью step.

[isUpdated,estimatedPose,covariance] = step(mcl,odometryPose,ranges,angles);

Получите частицы от обновленного объекта.

[particles,weights] = getParticles(mcl);

Входные параметры

свернуть все

Объект robotics.MonteCarloLocalization, заданный как указатель на объект.

Выходные аргументы

свернуть все

Частицы оценки, возвращенные как n-by-3 вектор, [x y theta]. Каждая строка соответствует положению и ориентации одной частицы. Длина может измениться с каждой итерацией алгоритма.

Веса частиц, возвращенных как n-by-1 вектор. Каждая строка соответствует весу частицы в соответствующей строке particles. Эти веса используются в итоговой оценке положения робота. Длина может измениться с каждой итерацией алгоритма.

Введенный в R2016a