exponenta event banner

Алгоритм локализации Монте-Карло

Обзор

Алгоритм локализации Монте-Карло (MCL) используется для оценки положения и ориентации робота. Алгоритм использует известную карту окружения, данные датчиков дальности и данные датчиков одометрии. Сведения о построении объекта и использовании этого алгоритма см. в разделе monteCarloLocalization.

Для локализации робота алгоритм MCL использует фильтр частиц для оценки его положения. Частицы представляют распределение вероятных состояний для робота. Каждая частица представляет возможное состояние робота. Частицы сходятся вокруг одного места, когда робот движется в окружающей среде и воспринимает различные части окружающей среды с помощью датчика дальности. Движение робота определяют с помощью датчика одометрии.

Частицы обновляются в этом процессе:

  1. Частицы распространяются на основе изменения позы и заданной модели движения, MotionModel.

  2. Частицам присваивают вес на основании вероятности получения показаний датчика дальности для каждой частицы. Это считывание основано на модели датчика, указанной в SensorModel.

  3. На основе этих весов извлекается оценка состояния робота на основе весов частиц. Группа частиц с наибольшим весом используется для оценки положения робота.

  4. Наконец, происходит повторная выборка частиц на основе указанного ResamplingInterval. Повторная выборка регулирует положение частиц и улучшает рабочие характеристики, регулируя количество используемых частиц. Это ключевая особенность для адаптации к изменениям и сохранения частиц, релевантных для оценки состояния робота.

Алгоритм выводит оценочную позу и ковариацию. Эти оценки представляют собой среднее значение и ковариацию наивысшего взвешенного скопления частиц. Для непрерывного отслеживания повторите эти шаги в цикле для распространения частиц, оценки их вероятности и получения наилучшей оценки состояния.

Дополнительные сведения о фильтрах частиц как общем приложении см. в разделе Рабочий процесс фильтров частиц.

Представительство государства

При работе с алгоритмом локализации целью является оценка состояния системы. Для приложений робототехники это предполагаемое состояние обычно представляет собой позу робота. Для monteCarloLocalization объект задается как трехэлементный вектор. Поза соответствует положению x-y, [x y]и угловой ориентации, theta.

Алгоритм MCL оценивает эти три значения на основе входов датчиков среды и заданной модели движения системы. Выходные данные при использовании monteCarloLocalization объект включает в себя pose, что является лучшим оценочным состоянием [x y theta] значения. Частицы распределены вокруг исходной позы, InitialPose, или равномерно отобран с использованием глобальной локализации. Поза вычисляется как среднее из наивысшего взвешенного скопления частиц после того, как эти частицы были скорректированы на основе измерений.

Этот график показывает наивысший взвешенный кластер и конечную позу робота, отображаемую над частицами образцов зеленым цветом. При большем количестве итераций алгоритма MCL и поправок измерений частицы сходятся к истинному местоположению робота. Однако возможно, что кластеры частиц могут иметь высокие веса для ложных оценок и сходиться в неправильном месте. Если происходит неправильная сходимость, выполните повторную выборку частиц, сбросив алгоритм MCL с обновленным InitialPose.

Инициализация частиц

При первом создании monteCarloLocalization , укажите минимальный и максимальный пределы частиц, используя ParticleLimits собственность. Большее количество частиц увеличивает вероятность того, что частицы сходятся в реальном местоположении. Однако меньшее число частиц происходит быстрее. Количество частиц динамически корректируется в пределах, основанных на весах кластеров частиц. Эта корректировка помогает уменьшить количество частиц с течением времени, так что локализация может работать более эффективно.

Распределение частиц

Отбор проб частиц должен осуществляться по указанному распределению. Для инициализации частиц в пространстве состояний можно использовать либо начальную позу, либо глобальную локализацию. При глобальной локализации можно равномерно распределить частицы по ожидаемому пространству состояний (извлеченному из Map собственность вашегоSensorModel объект). В объекте MCL по умолчанию установите значение GlobalLocalization свойство для true.

mcl = monteCarloLocalization;
mcl.GlobalLocalization = true;

Глобальная локализация требует большего количества частиц для эффективного отбора проб частиц в пространстве состояний. Большее количество частиц увеличивает вероятность успешной сходимости в реальном состоянии. Это большое распределение значительно снижает начальную производительность до тех пор, пока частицы не начнут сходиться и количество частиц не будет уменьшено.

По умолчанию для глобальной локализации установлено значение false. Без глобальной локализации необходимо указать InitialPose и InitialCovariance свойства, которые помогают локализовать частицы. Используя эту исходную позу, частицы более тесно группируются вокруг оценочного состояния. Тесная группировка частиц позволяет использовать их меньше, а также повышает скорость и точность отслеживания во время первых итераций.

Эти изображения были взяты из примера локализации Localize TurtleBot Using Monte Carlo Localization, который показывает, как использовать алгоритм MCL с TurtleBot ® в известной среде.

Повторная выборка частиц и обновление позы

Для непрерывной локализации робота необходимо выполнить повторную выборку частиц и обновить алгоритм. Используйте UpdateThreshold и ResamplingInterval свойства для управления при повторной выборке и обновлении расчетного состояния.

UpdateThreshold - трехэлементный вектор, определяющий минимальное изменение позы робота, [x y theta], чтобы запустить обновление. Изменение переменной более чем на этот минимум инициирует обновление, в результате чего объект возвращает новую оценку состояния. Это изменение позы робота основано на одометрии, которая указана в функциональной форме объекта. Настройте эти пороги на основе свойств датчика и движения робота. Случайный шум или незначительные отклонения, превышающие пороговое значение, могут вызвать ненужное обновление и повлиять на производительность. ResamplingInterval свойство определяет количество обновлений для запуска повторной выборки частиц. Например, интервал повторной выборки 2 повторные выборки при каждом другом обновлении.

Преимущество повторной выборки частиц заключается в обновлении возможных местоположений, которые способствуют окончательной оценке. Повторная выборка перераспределяет частицы на основе их веса и выделяет частицы на основе модели движения. В этом процессе частицы с меньшим весом исключаются, помогая частицам сойтись до истинного состояния робота. Количество частиц динамически изменяется для улучшения скорости или отслеживания.

Производительность алгоритма зависит от правильной повторной выборки. Если частицы широко диспергированы и начальная поза робота неизвестна, алгоритм поддерживает высокое количество частиц. Когда алгоритм сходится по истинному местоположению, он уменьшает количество частиц и увеличивает скорость работы. Вы можете настроить ParticleLimits свойство для ограничения минимального и максимального количества частиц, используемых для повышения производительности.

Модель движения и датчика

Модели движения и датчиков для алгоритма MCL аналогичны StateTransitionFcn и MeasurementLikelihoodFcn функции для stateEstimatorPF , которые описаны в разделе Параметры фильтра частиц. Для алгоритма MCL эти модели более специфичны для локализации роботов. После вызова объекта, чтобы изменить MotionModel или SensorModel свойства, необходимо сначала вызвать release на объекте.

Модель датчика

По умолчанию monteCarloLocalization использует likelihoodFieldSensorModel объект в качестве модели датчика. Эта модель датчика содержит параметры, относящиеся к используемому датчику дальности, информацию 2-D карты для среды робота и характеристики шума измерений. Модель сенсора использует параметры с измерениями дальности для вычисления вероятности измерений с учетом текущего положения робота. Без учета этих параметров, некоторые ошибки измерения могут исказить оценку состояния или увеличить вес неактуальных частиц.

Сенсорные свойства диапазона:

  • SensorPose - Поза датчика дальности относительно местоположения робота. Эта поза используется для преобразования показаний диапазона в рамку координат робота.

  • SensorLimits - Минимальный и максимальный пределы диапазона. Измерение за пределами этих диапазонов не учитывается при расчете правдоподобия.

  • NumBeams - количество лучей, используемых для вычисления вероятности. Можно повысить производительность, уменьшив количество используемых балок.

Известно также, что измерения дальности дают ложные показания из-за шума системы или других помех окружающей среды. Чтобы учесть ошибку датчика, укажите следующие параметры:

  • MeasurementNoise - Стандартное отклонение для измерения шума. Это отклонение относится к показаниям диапазона и учитывает любые помехи датчику. Установите это значение на основе информации от датчика дальности.

  • RandomMeasurementWeight - Вес для вероятности случайного измерения. Установка низкой вероятности для случайных измерений. Значение по умолчанию - 0,05.

  • ExpectedMeasurementWeight - Вес для вероятности ожидаемого измерения. Установите высокую вероятность для ожидаемых измерений. Значение по умолчанию - 0,95.

Модель датчика также хранит карту среды робота как сетку занятости. Использовать binaryOccupancyMap для указания карты с занятыми и свободными пробелами. Установите любые неизвестные пробелы на карте в качестве свободных мест. Установка для них свободных расположений не позволяет алгоритму сопоставить обнаруженные объекты с этими областями карты.

Кроме того, можно указать MaximumLikelihoodDistance, что ограничивает область для поиска препятствий. Значение MaximumLikelihoodDistance - максимальное расстояние до ближайшего препятствия, которое используется для вычисления правдоподобия.

Модель движения

Модель движения для локализации робота помогает предсказать, как частицы эволюционируют в течение всего времени при повторной выборке. Представляет собой представление кинематики робота. Модель движения, включенная по умолчанию в алгоритм MCL, является моделью движения дифференциального привода на основе одометрии (odometryMotionModel). Без модели движения прогнозировать следующий шаг сложнее. Важно знать возможности вашей системы, чтобы алгоритм локализации мог планировать распределения частиц для получения лучших оценок состояния. Обязательно учитывайте ошибки от кодеров колес или других датчиков, используемых для измерения одометрии. Ошибки в системе определяют разброс распределения частиц.

Можно указать ожидаемую ошибку на основе движения робота в виде четырехэлементного вектора. Noise. Эти четыре элемента указаны как веса на стандартных отклонениях для [1]:

  • Ошибка вращения из-за вращательного движения

  • Ошибка вращения из-за поступательного движения

  • Поступательная ошибка из-за поступательного движения

  • Поступательная ошибка из-за вращательного движения

Для роботов с дифференциальным приводом, когда робот перемещается из начальной позы в конечную позу, изменение позы может рассматриваться как:

  1. Поворот в конечное положение

  2. Перевод на прямую линию в конечную позицию

  3. Поворот к ориентации цели

При выполнении этих шагов можно визуализировать эффект ошибок при повороте и перемещении. Ошибки в начальном повороте приводят к тому, что возможные положения распределяются в C-образной форме вокруг конечного положения.

Большие ошибки трансляции приводят к тому, что ваши возможные позиции распределяются вокруг прямой линии к конечной позиции.

Большие ошибки как при перемещении, так и при повороте могут привести к более широким позициям.

Также ошибки вращения влияют на ориентацию конечной позы. Понимание этих эффектов помогает определить гауссов шум в Noise имущества MotionModel для конкретного приложения. Как видно из изображений, каждый параметр не управляет дисперсией напрямую и может изменяться в зависимости от конфигурации и геометрии робота. Кроме того, несколько изменений позы при навигации робота по среде могут увеличить влияние этих ошибок на множество различных шагов. Точно определяя эти параметры, частицы распределяются соответствующим образом, чтобы дать алгоритму MCL достаточно гипотез, чтобы найти наилучшую оценку для местоположения робота.

Ссылки

[1] Трюн, Себастьян и Дитер Фокс. Вероятностная робототехника. 3-й ред. Кембридж, Месса: MIT Press, 2006. p.136.

См. также

| |

Связанные темы