Одновременная локализация и картирование ( SLAM ) — это вычислительная задача построения или обновления карты неизвестной среды с одновременным отслеживанием местоположения агента в ней. Хотя на первый взгляд это кажется проблемой «курица или яйцо» , известно несколько алгоритмов, которые решают ее, по крайней мере, приблизительно, за приемлемое время для определенных сред. Популярные методы приближенного решения включают фильтр частиц , расширенный фильтр Калмана , ковариационное пересечение и GraphSLAM. Алгоритмы SLAM основаны на концепциях вычислительной геометрии и компьютерного зрения и используются в навигации роботов , картографировании роботов и одометрии для виртуальной или дополненной реальности .
Алгоритмы SLAM адаптированы к имеющимся ресурсам и не нацелены на совершенство, а на соответствие эксплуатационным требованиям. Опубликованные подходы применяются в беспилотных автомобилях , беспилотных летательных аппаратах , автономных подводных аппаратах , планетоходах , новейших домашних роботах и даже внутри человеческого тела.
Учитывая ряд элементов управления и наблюдений датчиков в течение дискретных временных шагов , задача SLAM состоит в вычислении оценки состояния агента и карты окружающей среды . Все величины обычно являются вероятностными, поэтому цель состоит в вычислении [1]
Применение правила Байеса дает основу для последовательного обновления апостериорных распределений местоположения, учитывая карту и функцию перехода ,
Аналогично карту можно обновлять последовательно:
Как и во многих задачах вывода, решения для вывода двух переменных вместе могут быть найдены с целью получения локального оптимального решения путем попеременного обновления двух убеждений в форме алгоритма максимизации ожидания .
Статистические методы, используемые для аппроксимации приведенных выше уравнений, включают фильтры Калмана и фильтры частиц (алгоритм, лежащий в основе локализации Монте-Карло). Они обеспечивают оценку апостериорного распределения вероятностей для позы робота и параметров карты. Методы, которые консервативно аппроксимируют приведенную выше модель с использованием ковариационного пересечения , способны избежать зависимости от предположений статистической независимости для снижения алгоритмической сложности для крупномасштабных приложений. [2] Другие методы аппроксимации достигают улучшенной вычислительной эффективности за счет использования простых представлений неопределенности в виде ограниченной области. [3]
Методы членства в наборах в основном основаны на распространении ограничений интервала . [4] [5] Они предоставляют набор, который охватывает позу робота и аппроксимацию набора карты. Корректировка пакета и, в более общем смысле, максимальная апостериорная оценка (MAP) — еще один популярный метод для SLAM с использованием данных изображений, который совместно оценивает позы и положения ориентиров, повышая точность карты, и используется в коммерчески доступных системах SLAM, таких как ARCore от Google, которая заменяет их предыдущую вычислительную платформу дополненной реальности под названием Tango, ранее Project Tango . Оценщики MAP вычисляют наиболее вероятное объяснение поз робота и карты с учетом данных датчика, а не пытаются оценить всю апостериорную вероятность.
Новые алгоритмы SLAM остаются активной областью исследований, [6] и часто обусловлены различными требованиями и предположениями о типах карт, датчиков и моделей, как подробно описано ниже. Многие системы SLAM можно рассматривать как комбинации выборов из каждого из этих аспектов.
Топологические карты — это метод представления среды, который фиксирует связность (т.е. топологию) среды, а не создает геометрически точную карту. Топологические подходы SLAM использовались для обеспечения глобальной согласованности в метрических алгоритмах SLAM. [7]
Напротив, карты сетки используют массивы (обычно квадратные или шестиугольные) дискретизированных ячеек для представления топологического мира и делают выводы о том, какие ячейки заняты. Обычно предполагается, что ячейки статистически независимы для упрощения вычислений. При таком предположении устанавливаются в 1, если ячейки новой карты согласуются с наблюдением в месте, и в 0, если не согласуются.
Современные беспилотные автомобили в основном упрощают задачу картографирования практически до нуля, широко используя высокодетализированные картографические данные, собранные заранее. Это может включать аннотации карты на уровне маркировки местоположения отдельных сегментов белой линии и бордюров на дороге. Визуальные данные с метками местоположения, такие как StreetView от Google, также могут использоваться как часть карт. По сути, такие системы упрощают задачу SLAM до более простой задачи локализации, возможно, позволяя обновлять на карте только движущиеся объекты, такие как автомобили и люди, во время выполнения.
SLAM всегда будет использовать несколько различных типов датчиков, а возможности и ограничения различных типов датчиков стали основным драйвером новых алгоритмов. [8] Статистическая независимость является обязательным требованием для борьбы с метрической ошибкой и шумом в измерениях. Различные типы датчиков приводят к различным алгоритмам SLAM, предположения которых наиболее подходят для датчиков. С одной стороны, лазерное сканирование или визуальные особенности предоставляют детали многих точек в области, иногда делая вывод SLAM ненужным, поскольку формы в этих облаках точек можно легко и однозначно выровнять на каждом шаге с помощью регистрации изображений . С другой стороны, тактильные датчики чрезвычайно разрежены, поскольку они содержат только информацию о точках, очень близких к агенту, поэтому для компенсации в чисто тактильном SLAM требуются сильные априорные модели. Большинство практических задач SLAM находятся где-то между этими визуальными и тактильными крайностями.
Модели датчиков в целом делятся на подходы на основе ориентиров и подходы на основе необработанных данных. Ориентиры — это уникальные идентифицируемые объекты в мире, местоположение которых может быть оценено датчиком, например, точками доступа Wi-Fi или радиомаяками. Подходы на основе необработанных данных не предполагают, что ориентиры могут быть идентифицированы, а вместо этого моделируют непосредственно как функцию местоположения.
Оптические датчики могут быть одномерными (однолучевыми) или 2D- (сканирующими) лазерными дальномерами , 3D-обнаружением света высокой четкости и определением дальности ( лидаром ), 3D-вспышечным лидаром, 2D или 3D- сонарными датчиками и одной или несколькими 2D- камерами . [8] С момента изобретения локальных особенностей, таких как SIFT , проводились интенсивные исследования визуального SLAM (VSLAM) с использованием в первую очередь визуальных (камерных) датчиков из-за растущей повсеместности камер, таких как те, что находятся в мобильных устройствах. [9] Последующие исследования включают. [10] Как визуальные, так и лидарные датчики достаточно информативны, чтобы во многих случаях обеспечить извлечение ориентиров. Другие недавние формы SLAM включают тактильный SLAM [11] (обнаружение только локальным касанием), радарный SLAM, [12] акустический SLAM, [13] и Wi-Fi-SLAM (обнаружение по силе сигнала близлежащих точек доступа Wi-Fi). [14] В последних подходах применяется квазиоптическое беспроводное определение дальности для мультилатерации ( система определения местоположения в реальном времени (RTLS)) или мультиангуляции в сочетании с SLAM в качестве дани беспорядочным беспроводным мерам. Разновидность SLAM для пешеходов-людей использует в качестве основного датчика инерциальный измерительный блок, устанавливаемый на обувь , и полагается на тот факт, что пешеходы способны избегать стен, чтобы автоматически строить планы этажей зданий с помощью внутренней системы позиционирования . [15]
Для некоторых наружных приложений необходимость в SLAM почти полностью устранена благодаря высокоточным дифференциальным GPS- датчикам. С точки зрения SLAM их можно рассматривать как датчики местоположения, вероятности которых настолько остры, что они полностью доминируют над выводом. Однако GPS-датчики могут иногда отказывать или полностью выходить из строя, например, во время военных конфликтов, которые представляют особый интерес для некоторых робототехнических приложений.
Термин представляет кинематику модели, которая обычно включает информацию о командах действий, отдаваемых роботу. Как часть модели, кинематика робота включена, чтобы улучшить оценки восприятия в условиях собственного и окружающего шума. Динамическая модель уравновешивает вклады различных датчиков, различных моделей частичных ошибок и, наконец, включает в себя четкое виртуальное изображение в виде карты с местоположением и направлением робота как некое облако вероятности. Картографирование является окончательным изображением такой модели, карта является либо таким изображением, либо абстрактным термином для модели.
Для 2D-роботов кинематика обычно задается смесью команд вращения и «движения вперед», которые реализуются с дополнительным шумом двигателя. К сожалению, распределение, сформированное независимым шумом в угловых и линейных направлениях, не является гауссовым, но часто аппроксимируется гауссовым. Альтернативный подход заключается в игнорировании кинематического члена и считывании данных одометрии с колес робота после каждой команды — такие данные затем можно рассматривать как один из датчиков, а не как кинематика.
Нестатичные среды, например, содержащие другие транспортные средства или пешеходов, продолжают представлять исследовательские проблемы. [16] [17] SLAM с DATMO — это модель, которая отслеживает движущиеся объекты аналогично самому агенту. [18]
Замыкание цикла — это проблема распознавания ранее посещенного местоположения и соответствующего обновления убеждений. Это может быть проблемой, поскольку ошибки модели или алгоритма могут назначать низкие априорные значения местоположению. Типичные методы замыкания цикла применяют второй алгоритм для вычисления некоторого типа подобия меры датчика и сбрасывают априорные значения местоположения при обнаружении соответствия. Например, это можно сделать, сохраняя и сравнивая векторы мешков слов функций масштабно-инвариантного преобразования признаков (SIFT) из каждого ранее посещенного местоположения.
Active SLAM изучает объединенную проблему SLAM с решением, куда двигаться дальше, чтобы построить карту максимально эффективно. Необходимость активного исследования особенно выражена в режимах с разреженным зондированием, таких как тактильный SLAM. Active SLAM обычно выполняется путем аппроксимации энтропии карты при гипотетических действиях. «Multi agent SLAM» расширяет эту проблему на случай нескольких роботов, координирующих себя для оптимального исследования.
В нейронауке гиппокамп , по-видимому, участвует в вычислениях, подобных SLAM, [19] [20] [21], давая начало нейронам места , и сформировал основу для биоинспирированных систем SLAM, таких как RatSLAM.
Совместный SLAM объединяет датчики нескольких роботов или пользователей для создания 3D-карт. [22] Эта возможность была продемонстрирована рядом команд в рамках DARPA Subterranean Challenge 2021 года .
Расширение общей проблемы SLAM было применено к акустической области, где окружение представлено трехмерным (3D) положением источников звука, называемым aSLAM ( A coustic S imultaneous L ocalization and M apping). [23] Ранние реализации этого метода использовали оценки направления прибытия (DoA) местоположения источника звука и полагались на основные методы локализации звука для определения местоположения источника. Наблюдатель или робот должен быть оснащен микрофонной решеткой , чтобы можно было использовать акустический SLAM, так что характеристики DoA оценивались должным образом. Акустический SLAM заложил основу для дальнейших исследований в области акустического картирования сцены и может играть важную роль во взаимодействии человека и робота посредством речи. Для картирования множественных и иногда прерывистых источников звука акустическая система SLAM использует основы теории случайных конечных множеств для обработки изменяющегося присутствия акустических ориентиров. [24] Однако природа акустически полученных характеристик делает акустический SLAM восприимчивым к проблемам реверберации, бездействия и шума в окружающей среде.
Первоначально разработанный для взаимодействия человека и робота, аудиовизуальный SLAM представляет собой фреймворк, который обеспечивает слияние особенностей ориентиров, полученных как из акустических, так и из визуальных модальностей в пределах среды. [25] Человеческое взаимодействие характеризуется особенностями, воспринимаемыми не только в визуальной модальности, но и в акустической модальности; таким образом, алгоритмы SLAM для ориентированных на человека роботов и машин должны учитывать оба набора особенностей. Аудиовизуальный фреймворк оценивает и отображает положения человеческих ориентиров с помощью визуальных особенностей, таких как поза человека, и аудиохарактеристик, таких как человеческая речь, и объединяет убеждения для более надежной карты окружающей среды. Для приложений в мобильной робототехнике (например, беспилотники, сервисные роботы) полезно использовать маломощное, легкое оборудование, такое как монокулярные камеры или микроэлектронные микрофонные решетки. Аудиовизуальный SLAM также может обеспечить дополнительную функцию таких датчиков, компенсируя узкое поле зрения, окклюзии признаков и оптические ухудшения, характерные для легких визуальных датчиков, с полным полем зрения и беспрепятственным представлением признаков, присущим аудиодатчикам. Восприимчивость аудиодатчиков к реверберации, бездействию источника звука и шуму также может быть соответственно компенсирована путем слияния ориентировочных убеждений из визуальной модальности. Дополнительная функция между аудио и визуальной модальностями в среде может оказаться ценной для создания робототехники и машин, которые полностью взаимодействуют с человеческой речью и движением человека.
Различные алгоритмы SLAM реализованы в библиотеках программного обеспечения Robot Operating System (ROS) с открытым исходным кодом , часто используемых вместе с библиотекой Point Cloud Library для 3D-карт или визуальных функций из OpenCV .
В робототехнике EKF SLAM — это класс алгоритмов, использующих расширенный фильтр Калмана (EKF) для SLAM. Обычно алгоритмы EKF SLAM основаны на признаках и используют алгоритм максимального правдоподобия для ассоциации данных. В 1990-х и 2000-х годах EKF SLAM был фактическим методом для SLAM, до появления FastSLAM . [26]
С EKF связано предположение о гауссовском шуме, которое значительно ухудшает способность EKF SLAM справляться с неопределенностью. При большем количестве неопределенности в апостериоре линеаризация в EKF терпит неудачу. [27]
В робототехнике GraphSLAM — это алгоритм SLAM, который использует разреженные информационные матрицы, полученные путем генерации факторного графа взаимозависимостей наблюдений (два наблюдения связаны, если они содержат данные об одном и том же ориентире). [ 27] Он основан на алгоритмах оптимизации.
Основополагающей работой в области SLAM является исследование RC Smith и P. Cheeseman по представлению и оценке пространственной неопределенности в 1986 году. [28] [29] Другая пионерская работа в этой области была проведена исследовательской группой Хью Ф. Дарранта-Уайта в начале 1990-х годов. [30] которая показала, что решения SLAM существуют в пределе бесконечных данных. Это открытие мотивирует поиск алгоритмов, которые являются вычислительно разрешимыми и приближают решение. Аббревиатура SLAM была придумана в статье «Локализация автономных управляемых транспортных средств», которая впервые появилась в ISR в 1995 году. [31]
Беспилотные автомобили STANLEY и JUNIOR, возглавляемые Себастьяном Труном , выиграли DARPA Grand Challenge и заняли второе место в DARPA Urban Challenge в 2000-х годах, и включали системы SLAM, привлекая к SLAM внимание всего мира. Массовые реализации SLAM теперь можно найти в потребительских роботах-пылесосах [32] и гарнитурах виртуальной реальности, таких как Meta Quest 2 и PICO 4 для безмаркерного отслеживания изнутри наружу.