SLAM: различия между версиями

Материал из Поле цифровой дидактики
Строка 13: Строка 13:
: <math> P(m_t | x_t, o_{1:t}) = \sum_{x_t} \sum_{m_t} P(m_t | x_t, m_{t-1}, o_t) P(m_{t-1}, x_t | o_{1:t-1}, m_{t-1})</math>.
: <math> P(m_t | x_t, o_{1:t}) = \sum_{x_t} \sum_{m_t} P(m_t | x_t, m_{t-1}, o_t) P(m_{t-1}, x_t | o_{1:t-1}, m_{t-1})</math>.
Как и во многих других проблемах логического вывода, оперируя двумя вероятностными переменными, можно прийти к локальному оптимальному решению, применяя [[EM-алгоритм]].
Как и во многих других проблемах логического вывода, оперируя двумя вероятностными переменными, можно прийти к локальному оптимальному решению, применяя [[EM-алгоритм]].
В настоящее время SLAM навигация получила распространение на Robotic Operating System (ROS) в качестве пакетов,  находящихся в открытом доступе, например: GMapping, Cartographer, Rtabmap. Данные пакеты были выбраны для исследования поскольку являются достаточно широко известными и популярными для работы с ROS. Таким образом, имеется большое количество информации касательно настройки и использования данных SLAM, а также поддержка со стороны разработчиков.

Версия 12:53, 26 марта 2023


Описание SLAM (англ. simultaneous localization and mapping — одновременная локализация и построение карты) — метод, используемый в мобильных автономных средствах для построения карты в неизвестном пространстве или для обновления карты в заранее известном пространстве с одновременным контролем текущего местоположения и пройденного пути. Популярные методы приближённого решения данной задачи — фильтр частиц и расширенный фильтр Кальмана. Некоторые реализации метода используются в беспилотных автомобилях, летательных аппаратах, автономных подводных аппаратах, планетоходах, и даже внутри человеческого тела.
Область знаний Робототехника, Управление
Авторы
Поясняющее видео
Близкие понятия Робототехника, одометрия
Среды и средства для освоения понятия С++

Основные подходы, используемые для реализации задачи — EKF-SLAM, FastSLAM, DP-SLAM. При относительно больших исследуемых площадях применяются многоагентные системы (такой подход был применён при исследовании картографии Марса группой роботов-марсоходов и соединении исследуемых карт в одну).

Задача SLAM заключается в вычислении оценки местоположения [math]\displaystyle{ x_t }[/math] агента и карты окружающей среды [math]\displaystyle{ m_t }[/math] из ряда наблюдений [math]\displaystyle{ o_t }[/math] над дискретным временем с шагом дискретизации [math]\displaystyle{ t }[/math]. Все перечисленные величины являются вероятностными. Цель задачи состоит в том, чтобы вычислить [math]\displaystyle{ P(m_t, x_t | o_{1:t}) }[/math]. Применение правила Байеса является основой для последовательного обновления апостериорного местоположения, учитывая карту и функцию перехода [math]\displaystyle{ P(x_t | x_{t-1}) }[/math]:

[math]\displaystyle{ P(x_t | o_{1:t}, m_t) = \sum_{m_{t-1}} P(o_t | x_t, m_t) \sum_{x_{t-1}} P(x_t | x_{t-1}) P(x_{t-1} | m_t, o_{1:t-1}) / Z }[/math].

Точно так же карта может обновляться последовательно:

[math]\displaystyle{ P(m_t | x_t, o_{1:t}) = \sum_{x_t} \sum_{m_t} P(m_t | x_t, m_{t-1}, o_t) P(m_{t-1}, x_t | o_{1:t-1}, m_{t-1}) }[/math].

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

В настоящее время SLAM навигация получила распространение на Robotic Operating System (ROS) в качестве пакетов, находящихся в открытом доступе, например: GMapping, Cartographer, Rtabmap. Данные пакеты были выбраны для исследования поскольку являются достаточно широко известными и популярными для работы с ROS. Таким образом, имеется большое количество информации касательно настройки и использования данных SLAM, а также поддержка со стороны разработчиков.