Локализация объектов
Локализация - одно из базовых понятий автономной навигации.
Когда робот перемещается он должен понимать, где он оказался после перемещения. Решение такой задачи и есть решение задачи Локализации.
Известный нам способ это сделать - получить данные о вращении колес робота и по ним рассчитать перемещение робота (данные Одометрии). Но это не очень хороший способ. Например, когда колеса проскальзывают, то данные становятся не точными, и со временем эта ошибка постоянно увеличивается.
Кроме того, по данным Одометрии, мы можем узнать только относительное положение робота (где он находился и куда попал). А если робот включится в случайной точке на карте ? Как в такой ситуации определить положение робота?
Для решения данной задачи нам нужно больше "информации" об окружающем мире. В нашем случае мы имеем данные лидара, и используя их мы можем сопоставить их с известной картой и найти положение робота.
Под положением робота (Pose), мы понимаем две его характеристики: \
Позиция (Position), которая определяет координаты робота на карте. \
Ориентация (orientation), которая определяет его ориентацию в пространстве.
AMCL
Для решения этой задачи, рассмотрим алгоритм AMCL (Adaptive Monte Carlo Localization / адаптивный алгоритм локализации Монте-Карло)
Принцип работы AMCL заключается в том, что алгоритм предполагает множество позиций, где может находиться робот. По мере движения робота, алгоритм сопоставляет «очертания карты» и данные с лидара. Таким образом, постепенно, множество предполагаемых позиций робота сходится к локальной точке, считающейся истинным местоположением робота в пространстве.
Это один из самых простых алгоритмов локализации, для работы которого используются только данные лидара. Из минусов можно отметить, что для приемлемого результата его работы, робот должен проехать определенное расстояние.