Мобильная робототехника развивается во всём мире и затрагивает большой спектр задач, как сервисных, так и промышленных. Система управления роботом состоит из множества модулей и львиную долю в ней занимает система модуль навигации и построения маршрута.
Разделить навигационные системы роботов можно на Indoor и Outdoor, т.е. внутри и вне помещения. Отличаются они как способами, так и целями навигации. Так самая распространённая технология Outdoor локализации, GPS работает на микроволновом диапазоне, что обеспечивает точность до единиц метров, но заметно ухудшает своё качество проходя, через стены, крыши, потолки.
В данной статье рассмотрим Indoor навигацию на примере решений и видов SLAM.
SLAM – Simultaneous Localization and Mapping – метод одновременной навигации и построения карты. Метод, который используется роботами (AMR – Automated Mobile Robot) (рис. 1.) и автономными транспортными средствами (AGV – Automated Guide Vehicle) (рис.2) для построения карты в новом для системы пространстве или для обновления карты в заранее известном помещении с одновременным отслеживанием текущего местоположения и пройденного пути.
Рис. 1. Линейка мобильных роботов MiR
Рис. 2. Платформа для перевозки автомобилей Tesla
Данный метод позволяет связать между собой два независимых процесса в непрерывный цикл, где данные каждого участвуют в работе каждого. Рассмотрим каждый из этих процессов подробнее.
Построение карты представляет из себя процесс сбора и интеграции информации с различных датчиков одного или нескольких видов. Выполняя этот процесс, навигационная система робота пытается понять, как выглядит рабочее пространство. Основными аспектами, которыми орудует процесс, являются интерпретирование данных с сенсоров, а также представление данных об окружающей среде. Локализация – это процесс определения робота в пространстве. Разделить её можно на локальную и глобальную. Локальная отвечает за местоположение в реальном времени в пространстве, при заранее известной нулевой точке, т.е. при известных координатах начального местоположения робота. Глобальная же сможет ответить нам на вопрос, где находится робот, независимо от какого-то помещения, к примеру GPS трекинг. Таким образом можем сделать вывод, что SLAM – это два процесса, которые не могут быть решены независимо друг от друга. Прежде чем робот сможет ответить на вопрос о том, как выглядит окружающая среда (исходя из серии наблюдений), он должен знать, где эти наблюдения были сделаны. В то же время, трудно оценить текущее положение робота без карты. Вот и выходит, что SLAM является типичной проблемой курицы и яйца: карта необходима для локализации, а локализация необходима для создания карты.
Рассмотрим различные виды решения задачи SLAM.
Один из самых первых алгоритмов Feature-based SLAM (рис. 3) используют легко идентифицируемые элементы в среде и создают внутреннее представление о пространстве с учетом местоположения этих ориентиров. Алгоритм основан на расширенном фильтре Калмана (EKF – Extended Kalman Filter).
Рис. 3. Feature-based SLAM
Graph-based SLAM – SLAM на основе графов или сетей также пытается создать карту с помощью графа, узлы которого соответствуют позициям робота в разные моменты времени (рис. 4), а ребра представляют собой пространственные ограничения, связывающие позы робота вместе. Ограничения состоят в распределении вероятностей относительного преобразования между позами. Используя граф, построенный на основе измерений датчиков, система определяет наиболее вероятную конфигурацию поз с учетом ребер графа. Одним из наиболее популярных подходов к SLAM на основе графов является метод отображения вреальном времени (VSLAM Rtabmap), основанный на инкрементном детекторе замыкания цикла на основе визуальных образов [1].
Рис. 4. Graph-based SLAM
Grid-based SLAM (рис. 5) является теоретически наиболее простым подход на основе сетки. Пространство разбивается на сетку точек с определённым равным шагом. У каждой точки может быть своё состояние, занято, свободно, препятствие. К примеру, ячейка обозначенная 1 будет занятой, а другая со значением 0 будет свободной. Также значение точки может варьироваться от 0 до 1 при помощи промежуточных значений [1].
Рис. 5. Grid-based SLAM
Topological SLAM (рис. 6) топологически представить задачу SLAM можно с помощью графо-подобного описания окружающей среды, а не точной метрической карты. Под топологическим описанием понимаются узловые места, которые можно с лёгкостью сравнить и отличить. Идея взята на основе построения карты местности в живой природе, так же как животные помечают территорию или человек подмечает для себя ориентиры. Зачастую, эти методы подходят для навигации в простых средах и применять их в более сложных и больших средах затруднительно из-за возрастающего числа ориентиров и сложности сравнивания их с базовыми [1].
Рис. 6. Topological SLAM
SemanticSLAM (рис. 7), карты в нём также могут быть представлены в виде моделей семантических карт. В отличие от топологических методов, в которых алгоритмы фильтруют метрическую информацию и использует только распознавание мест-ориентиров для различения местоположения, семантическое сопоставление связывает семантические концепции с объектами в окружающей среде. Семантическое отображение все еще находится на ранних стадиях разработки и, в зависимости от уровня необходимых семантических возможностей, оно может быть очень сложным для реализации. Несмотря на это, согласно Carlos Miguel было проведено множество исследований по семантическому отображению и семантическому SLAM.
Рис. 7. Semantic SLAM
Широкую популярность обрела ROS (Robot Operating System), со своими библиотеками для работы с навигационными задачами, которые, зачастую, находятся в открытом доступе. К примеру, некоторые из них GMapping, Google Cartographer и Rtabmap.
GMapping основан на работе с 2D или 3D лидаре, с его помощью он простраивает, соответственно 2D или 3D карту и по мере движения в пространстве алгоритм сопоставляет уже построенную карту с картой, строящейся в реальном времени, и таким образом определяет местоположение робота (рис. 8) [2].
Рис. 8. GMapping