Локализация Монте-Карло - Monte Carlo localization - Wikipedia
Локализация Монте-Карло (MCL), также известный как локализация сажевого фильтра,[1] алгоритм для роботов локализовать используя фильтр твердых частиц.[2][3][4][5] Учитывая карту окружающей среды, алгоритм оценивает положение и ориентация робота, когда он движется и ощущает окружающую среду.[4] Алгоритм использует фильтр твердых частиц представлять распределение вероятных состояний, где каждая частица представляет возможное состояние, то есть гипотезу о том, где находится робот.[4] Алгоритм обычно начинается с равномерного случайного распределения частиц по конфигурационное пространство, что означает, что робот не имеет информации о том, где он находится, и предполагает, что он с равной вероятностью может быть в любой точке пространства.[4] Всякий раз, когда робот движется, он перемещает частицы, чтобы предсказать свое новое состояние после движения. Каждый раз, когда робот что-то ощущает, частицы пересчитываются на основе рекурсивная байесовская оценка, т.е. насколько хорошо фактические считанные данные коррелируют с прогнозируемым состоянием. В конечном итоге частицы должны сходиться к фактическому положению робота.[4]
Основное описание
Рассмотрим робота с внутренней картой окружающей среды. Когда робот перемещается, ему нужно знать, где он находится на этой карте. Определение его местоположения и поворота (в более общем смысле поза ) с помощью своих сенсорных наблюдений известен как локализация роботов.
Поскольку робот не всегда может вести себя совершенно предсказуемым образом, он генерирует множество случайных предположений о том, где он будет дальше. Эти предположения известны как частицы. Каждая частица содержит полное описание возможного будущего состояния. Когда робот наблюдает за окружающей средой, он отбрасывает частицы, несовместимые с этим наблюдением, и генерирует больше частиц, близких к тем, которые кажутся согласованными. В конце концов, мы надеемся, что большинство частиц сходятся туда, где на самом деле находится робот.
Государственное представительство
Состояние робота зависит от приложения и конструкции. Например, состояние типичного 2D-робота может состоять из кортежа для позиции и ориентация . Для манипулятора с 10 суставами это может быть кортеж, содержащий угол в каждом суставе: .
В вера, которая является оценкой робота его текущего состояния, является функция плотности вероятности распределены по пространству состояний.[1][4] В алгоритме MCL вера за раз представлен набором частицы .[4] Каждая частица содержит состояние и, таким образом, может рассматриваться как гипотеза состояния робота. Области в пространстве состояний с большим количеством частиц соответствуют большей вероятности того, что робот будет там, а области с небольшим количеством частиц вряд ли будут там, где находится робот.
Алгоритм предполагает Марковская собственность что распределение вероятностей текущего состояния зависит только от предыдущего состояния (а не от любого из предшествующих), т.е. зависит от Только на .[4] Это работает, только если среда статична и не меняется со временем.[4] Обычно при запуске робот не имеет информации о своей текущей позе, поэтому частицы равномерно распределяются по поверхности. конфигурационное пространство.[4]
Обзор
Учитывая карту окружающей среды, целью алгоритма является определение робота своего поза в окружающей среде.
Каждый раз алгоритм принимает в качестве входных данных предыдущее убеждение , команда срабатывания , и данные, полученные с датчиков ; и алгоритм выводит новое убеждение .[4]
Алгоритм MCL: за к : motion_update sensor_update конец для к : рисовать из с вероятностью конец для возврата
Пример для 1D робота
Рассмотрим робота в одномерном круговой коридор с тремя одинаковыми дверями, с помощью датчика, который возвращается либо правда, либо ложь в зависимости от того, есть ли дверь.
В конце трех итераций большая часть частиц сходится к фактическому положению робота по желанию.
Обновление движения
Во время обновления движения робот предсказывает свое новое местоположение на основе заданной команды срабатывания, применяя смоделированное движение к каждой из частиц.[1] Например, если робот движется вперед, все частицы движутся вперед в своих направлениях, независимо от того, в какую сторону они указывают. Если робот вращается на 90 градусов по часовой стрелке, все частицы вращаются на 90 градусов по часовой стрелке, независимо от того, где они находятся. Однако в реальном мире нет идеальных исполнительных механизмов: они могут перескакивать или недооценивать желаемое количество движения. Когда робот пытается двигаться по прямой, он неизбежно поворачивает в одну или в другую сторону из-за незначительной разницы в радиусе колес.[1] Следовательно, модель движения должна компенсировать шум. Как следствие, частицы неизбежно расходятся во время обновления движения. Это ожидаемо, поскольку робот теряет уверенность в своем положении, если он движется вслепую, не ощущая окружающей среды.
Обновление датчика
Когда робот ощущает окружающую среду, он обновляет свои частицы, чтобы более точно отразить, где он находится. Для каждой частицы робот вычисляет вероятность того, что, если бы он находился в состоянии частицы, он бы воспринял то, что на самом деле почувствовали его сенсоры. Присваивает вес для каждой частицы пропорционально указанной вероятности. Затем он случайным образом рисует новые частицы из предыдущего убеждения, с вероятностью, пропорциональной . Частицы, соответствующие показаниям датчика, будут выбраны с большей вероятностью (возможно, более одного раза), а частицы, несовместимые с показаниями датчика, собираются редко. Таким образом, частицы сходятся, чтобы лучше оценить состояние робота. Это ожидаемо, поскольку робот становится все более уверенным в своем положении, когда чувствует окружающую среду.
Характеристики
Непараметрическость
В фильтр твердых частиц центральный для MCL может приблизительно соответствовать нескольким различным видам распределения вероятностей, поскольку это непараметрическое представление.[4] Некоторые другие алгоритмы байесовской локализации, такие как Фильтр Калмана (и варианты, расширенный фильтр Калмана и фильтр Калмана без запаха ), предположим, что вера в робота близка к тому, чтобы быть Гауссово распределение и не работают в ситуациях, когда вера мультимодальный.[4] Например, робот в длинном коридоре с множеством похожих на вид дверей может прийти к убеждению, что у каждой двери есть пик, но робот не может различить который дверь это у. В таких ситуациях фильтр твердых частиц может дать лучшую производительность, чем параметрические фильтры.[4]
Другой непараметрический подход к марковской локализации - это сеточная локализация, в которой используется гистограмма для представления распределения убеждений. По сравнению с сеточным подходом локализация Монте-Карло более точна, поскольку состояние, представленное в выборках, не дискретизируется.[2]
Вычислительные требования
Фильтр твердых частиц временная сложность является линейный по количеству частиц. Естественно, чем больше частиц, тем выше точность, поэтому существует компромисс между скоростью и точностью, и желательно найти оптимальное значение . Одна стратегия для выбора заключается в том, чтобы непрерывно генерировать дополнительные частицы до следующей пары команд и считывание датчика прибыл.[4] Таким образом получается максимально возможное количество частиц, не мешая работе остальной части робота. Таким образом, реализация адаптируется к доступным вычислительным ресурсам: чем быстрее процессор, тем больше частиц может быть сгенерировано и, следовательно, тем точнее алгоритм.[4]
По сравнению с марковской локализацией на основе сетки, локализация Монте-Карло уменьшила использование памяти, поскольку использование памяти зависит только от количества частиц и не масштабируется с размером карты.[2] и может интегрировать измерения на гораздо более высокой частоте.[2]
Алгоритм можно улучшить, используя KLD отбор проб, как описано ниже, который адаптирует количество используемых частиц в зависимости от того, насколько робот уверен в своем положении.
Депривация частиц
Недостаток наивной реализации локализации Монте-Карло возникает в сценарии, когда робот сидит в одном месте и неоднократно ощущает окружающую среду, не двигаясь.[4] Предположим, что все частицы сходятся к ошибочному состоянию, или если оккультная рука поднимает робота и перемещает его в новое место после того, как частицы уже сошлись. Поскольку частицы, далекие от конвергентного состояния, редко выбираются для следующей итерации, они становятся все реже на каждой итерации, пока не исчезнут совсем. На данный момент алгоритм не может восстановиться.[4] Эта проблема более вероятна для небольшого количества частиц, например, , и когда частицы распределены по большому пространству состояний.[4] Фактически любой фильтр твердых частиц алгоритм может случайно отбросить все частицы около правильного состояния на этапе повторной выборки.[4]
Один из способов смягчить эту проблему - случайное добавление дополнительных частиц на каждой итерации.[4] Это эквивалентно предположению, что в любой момент времени у робота есть небольшая вероятность того, что он похищен в случайное положение на карте, что вызывает часть случайных состояний в модели движения.[4] Гарантируя, что ни одна область на карте не лишена частиц полностью, алгоритм теперь устойчив к лишению частиц.
Варианты
Оригинальный алгоритм локализации Монте-Карло довольно прост. Было предложено несколько вариантов алгоритма, которые устраняют его недостатки или адаптируют его для повышения эффективности в определенных ситуациях.
KLD отбор проб
Локализация Монте-Карло может быть улучшена путем отбора проб частиц адаптивным способом на основе оценки ошибки с использованием Дивергенция Кульбака – Лейблера (КЛД). Изначально необходимо использовать большой из-за необходимости покрыть всю карту равномерно случайным распределением частиц. Однако, когда частицы собрались вокруг одного и того же места, поддержание такого большого размера выборки является затратным с точки зрения вычислений. [6]
KLD – выборка - это вариант локализации Монте-Карло, где на каждой итерации размер выборки рассчитывается. Размер выборки вычисляется так, что с вероятностью , ошибка между истинным апостериорным приближением и приближением на основе выборки меньше, чем . Переменные и фиксированные параметры.[4]
Основная идея - создать сетку (гистограмму), наложенную на пространство состояний. Каждая ячейка гистограммы изначально пуста. На каждой итерации новая частица извлекается из предыдущего (взвешенного) набора частиц с вероятностью, пропорциональной ее весу. Вместо повторной выборки, выполняемой в классической MCL, алгоритм KLD – выборки отбирает частицы из предыдущего взвешенного набора частиц и применяет обновления движения и датчика перед помещением частицы в свой бункер. Алгоритм отслеживает количество непустых ящиков, . Если частица вставлена в ранее пустой контейнер, значение пересчитывается, который увеличивается в основном линейно по . Это повторяется до тех пор, пока размер выборки такой же как . [4]
Легко увидеть, как KLD-выборка отбраковывает избыточные частицы из набора частиц, только увеличивая при заполнении нового места (бункера). На практике KLD-сэмплинг неизменно превосходит классический MCL и сходится быстрее.[4]
Рекомендации
- ^ а б c d Иоаннис М. Реклейтис. "Учебное пособие по фильтрации частиц для локализации мобильного робота." Центр интеллектуальных машин, Университет Макгилла, Тех. Представитель TR-CIM-04-02 (2004).
- ^ а б c d Фрэнк Делларт, Дитер Фокс, Вольфрам Бургард, Себастьян Трун. "Локализация Монте-Карло для мобильных роботов В архиве 2007-09-17 на Wayback Machine." Proc. Международной конференции IEEE по робототехнике и автоматизации Vol. 2. IEEE, 1999.
- ^ Дитер Фокс, Вольфрам Бургард, Фрэнк Делларт и Себастьян Трун "Локализация Монте-Карло: эффективная оценка местоположения мобильных роботов." Proc. Шестнадцатой Национальной конференции по искусственному интеллекту John Wiley & Sons Ltd, 1999.
- ^ а б c d е ж грамм час я j k л м п о п q р s т ты v ш Икс у Себастьян Трун, Вольфрам Бургард, Дитер Фокс. Вероятностная робототехника MIT Press, 2005. Гл. 8,3 ISBN 9780262201629.
- ^ Себастьян Трун, Дитер Фокс, Вольфрам Бургард, Фрэнк Делларт. "Надежная локализация в монте-карло для мобильных роботов." Искусственный интеллект 128.1 (2001): 99–141.
- ^ Дитер Фокс. "KLD – Sampling: Адаптивные фильтры частиц." Департамент компьютерных наук и инженерии Вашингтонского университета. НИПС, 2001.