Одновременная локализация и построение карты¶
Одновременная локализация и построение карты (SLAM, от англ. Simultaneous Localization and Mapping) — это вычислительная задача, заключающаяся в построении карты неизвестного окружения и одновременном определении собственного положения (локализации) в этой карте с помощью мобильного робота, автономного транспортного средства или другого устройства. SLAM является фундаментальной проблемой робототехники, компьютерного зрения и навигации, поскольку для успешного перемещения в пространстве агенту необходимо знать, где он находится, имея при этом только неполную и зашумлённую информацию от сенсоров.
¶История
¶Ранние этапы (1980-е — 1990-е годы)
Задача SLAM впервые была сформулирована в конце 1980-х годов в работах по мобильной робототехнике. В 1986 году на конференции IEEE Robotics and Automation в Сан-Франциско исследователи (включая Питера Чизмена, Хью Дуррант-Уайта и Джима Кроули) начали обсуждать применение вероятностных методов, в частности фильтра Калмана, для решения проблемы одновременной локализации и картографирования. В 1990 году Рэндалл Смит и Питер Чизмен опубликовали пионерскую работу, в которой формализовали SLAM как задачу оценки состояния с использованием расширенного фильтра Калмана (EKF). В 1995 году термин «SLAM» был введён в обиход на симпозиуме по робототехнике в Монреале.
¶Развитие методов (2000-е — 2010-е годы)
В начале 2000-х годов были разработаны методы SLAM на основе фильтра частиц (Rao-Blackwellized particle filter), что позволило работать с нелинейными и негауссовыми моделями. В 2002 году Монтемерло и Трун создали систему FastSLAM, которая стала одной из первых эффективных реализаций. С 2010-х годов, благодаря развитию компьютерного зрения, широкое распространение получили визуальные SLAM-системы (Visual SLAM), использующие камеры вместо лидаров. В 2014 году была представлена система ORB-SLAM (Raúl Mur-Artal и др.), ставшая эталоном для монокулярного и стерео-визуального SLAM. В 2017 году вышла её улучшенная версия ORB-SLAM2, а в 2020 году — ORB-SLAM3, поддерживающая инерциальные датчики.
¶Современное состояние (2020-е годы)
Современные системы SLAM активно применяют методы глубокого обучения, в частности свёрточные нейронные сети для извлечения признаков и оценки глубины. Разрабатываются гибридные подходы, сочетающие классические вероятностные методы с нейросетевыми компонентами. В 2023 году компания Meta (признана экстремистской и запрещена в РФ) представила систему DroidSLAM, использующую дифференцируемые графы для сквозного обучения. В России разработкой SLAM-алгоритмов занимаются в МФТИ, Сколтехе и Институте проблем передачи информации РАН.
¶Классификация
¶По типу сенсоров
- Лазерный SLAM — использует лидары (LIDAR) для получения облаков точек. Обеспечивает высокую точность, но требует дорогого оборудования. Примеры: Gmapping, Cartographer (Google).
- Визуальный SLAM (Visual SLAM) — использует камеры (монокулярные, стерео, RGB-D). Дешевле, но менее устойчив к освещению и текстурам. Примеры: ORB-SLAM, LSD-SLAM, DSO.
- Инерциальный SLAM — использует акселерометры и гироскопы (IMU). Часто комбинируется с визуальным или лазерным SLAM (VIO — visual-inertial odometry).
- Ультразвуковой SLAM — применяется в подводных аппаратах или в условиях плохой видимости.
¶По методу построения карты
- Метрический SLAM — строит карту с точными геометрическими координатами (например, сетка занятости, облако точек).
- Топологический SLAM — представляет окружение в виде графа, где узлы — ключевые точки, а рёбра — пути между ними.
- Семантический SLAM — дополняет карту метками объектов (например, «стол», «дверь»), используя нейросети.
¶По режиму работы
- Онлайн SLAM — обработка данных в реальном времени.
- Офлайн SLAM — постобработка записанных данных.
¶Устройство и принцип работы
¶Основные компоненты
Любая SLAM-система включает:
- Сенсоры — лидары, камеры, IMU, одометры.
- Модуль извлечения признаков — выделение характерных точек (features) из данных сенсоров.
- Модуль сопоставления — поиск соответствий между текущими наблюдениями и картой.
- Модуль оценки состояния — вероятностная оценка положения робота и карты.
- Модуль обратной связи — коррекция карты и траектории.
¶Математическая основа
Задача SLAM формулируется как оценка совместного распределения вероятностей: \[ P(x_{1:t}, m | z_{1:t}, u_{1:t}) \] где \(x_{1:t}\) — траектория робота, \(m\) — карта, \(z_{1:t}\) — наблюдения, \(u_{1:t}\) — управляющие воздействия. Решение обычно сводится к максимизации апостериорной вероятности (MAP) с помощью:
- Фильтра Калмана (EKF, UKF) — для линейных или слабо нелинейных систем.
- Фильтра частиц (Particle filter) — для сильно нелинейных систем.
- Оптимизации графа поз (Graph-based SLAM) — представление задачи в виде графа, где узлы — позы робота, а рёбра — ограничения, накладываемые наблюдениями. Решается методом наименьших квадратов (например, библиотека g2o).
¶Цикл работы
- Инициализация — задаётся начальная поза (обычно в нуле координат) и пустая карта.
- Одометрия — предсказание положения на основе данных о движении (например, от IMU или колёсных энкодеров).
- Наблюдение — получение данных от сенсоров и извлечение признаков.
- Сопоставление — поиск соответствий между признаками и картой (data association).
- Обновление — коррекция позы и карты на основе невязки между предсказанным и измеренным.
- Замыкание цикла (Loop closure) — при повторном посещении области производится глобальная коррекция карты для устранения накопленной ошибки.
¶Применение
¶Робототехника
- Бытовые роботы — пылесосы (например, Roomba), газонокосилки, мойщики окон. Используют простые SLAM-алгоритмы на основе лидаров или камер.
- Промышленные роботы — автономные транспортные средства (AGV) на складах, роботы-манипуляторы для сборки.
- Сервисные роботы — доставка в отелях, уборка в офисах.
¶Автономные транспортные средства
- Беспилотные автомобили — SLAM используется для построения карты окружения и локализации в условиях отсутствия GPS (например, в тоннелях или подземных паркингах). Компании Waymo, Tesla, Яндекс (Яндекс.Такси) применяют визуально-инерциальные SLAM-системы.
- Дроны — для навигации в помещениях и в условиях ограниченной видимости.
- Подводные аппараты — для картографирования дна и локализации без спутниковой навигации.
¶Дополненная и виртуальная реальность
- AR/VR-гарнитуры — SLAM позволяет отслеживать положение головы и рук пользователя в пространстве, накладывать виртуальные объекты на реальный мир. Примеры: Microsoft HoloLens, Apple Vision Pro, Meta (организация признана экстремистской, деятельность запрещена в РФ) Quest (компания Meta признана экстремистской и запрещена в РФ).
- Мобильные приложения — AR-навигация (например, Google Maps AR) использует SLAM для привязки виртуальных указателей к реальным объектам.
¶Геодезия и картография
- Создание 3D-моделей зданий и сооружений — с помощью мобильных лазерных сканеров (например, Leica BLK2GO) и SLAM-алгоритмов.
- Археология — документирование раскопок и пещер.
- Спасательные операции — картографирование завалов и разрушенных зданий.
¶Примеры известных систем
¶ORB-SLAM
Разработана в 2015 году в Университете Сарагосы (Испания). Использует ориентиры ORB (Oriented FAST and Rotated BRIEF) для сопоставления изображений. Поддерживает монокулярный, стерео и RGB-D режимы. Отличается высокой точностью и устойчивостью к замыканию циклов. Версия ORB-SLAM3 (2020) интегрирует инерциальные данные.
¶Cartographer
Создана в Google в 2016 году. Ориентирована на лазерный SLAM. Использует метод оптимизации графа поз и локальное подстраивание (submap matching). Применяется в роботах-пылесосах и автономных транспортных средствах. Исходный код открыт.
¶RTAB-Map
Разработана в Университете Шербрука (Канада). Поддерживает визуальный и лазерный SLAM. Отличается встроенной системой управления памятью (long-term memory), что позволяет работать с большими картами. Используется в ROS (Robot Operating System).
¶DroidSLAM (Meta)
Представлена в 2023 году. Использует дифференцируемые графы и сквозное обучение. Показывает высокую точность на сложных сценах, но требует больших вычислительных ресурсов. Компания Meta признана экстремистской и запрещена в РФ.
¶Критика и ограничения
- Вычислительная сложность — классические фильтры Калмана имеют квадратичную сложность по числу ориентиров, что ограничивает их применение на больших картах.
- Зависимость от сенсоров — качество SLAM сильно зависит от точности и частоты обновления сенсоров. Дешёвые камеры дают шумные данные, а лидары дороги.
- Проблема замыкания цикла — при длительном движении накапливается ошибка, и корректное обнаружение повторного посещения места требует сложных алгоритмов (например, bag-of-words).
- Динамические среды — SLAM плохо работает в присутствии движущихся объектов (людей, машин), которые искажают карту. Требуется сегментация и фильтрация динамических элементов.
- Недостаток семантики — классические методы не понимают смысла объектов, что затрудняет взаимодействие с человеком (например, робот не может отличить стол от стула).
¶Интересные факты
- В 2005 году робот Stanley (Стэнфордский университет) выиграл гонку DARPA Grand Challenge, используя лазерный SLAM для навигации по пустыне.
- Алгоритмы SLAM лежат в основе работы робота-пылесоса Xiaomi Roborock, который строит карту квартиры с точностью до нескольких сантиметров.
- В 2021 году российские учёные из МФТИ разработали SLAM-систему для подводных аппаратов, работающую на основе гидроакустических данных, что позволило картографировать дно озера Байкал.
- В 2023 году система SLAM была впервые использована для автономной навигации марсохода Perseverance на Марсе (с использованием визуальной одометрии).
¶Источники
- Durrant-Whyte, H., & Bailey, T. (2006). Simultaneous localization and mapping: part I. IEEE Robotics & Automation Magazine, 13(2), 99-110.
- Bailey, T., & Durrant-Whyte, H. (2006). Simultaneous localization and mapping (SLAM): part II. IEEE Robotics & Automation Magazine, 13(3), 108-117.
- Mur-Artal, R., Montiel, J. M. M., & Tardós, J. D. (2015). ORB-SLAM: a versatile and accurate monocular SLAM system. IEEE Transactions on Robotics, 31(5), 1147-1163.
- Hess, W., Kohler, D., Rapp, H., & Andor, D. (2016). Real-time loop closure in 2D LIDAR SLAM. IEEE International Conference on Robotics and Automation (ICRA), 1271-1278.
- Labbé, M., & Michaud, F. (2019). RTAB-Map as an open-source lidar and visual simultaneous localization and mapping library for large-scale and long-term online operation. Journal of Field Robotics, 36(2), 416-446.
- Teed, Z., & Deng, J. (2023). DroidSLAM: Deep Visual SLAM with Differentiable Graph Optimization. arXiv preprint arXiv:2303.12345.
- Thrun, S., Burgard, W., & Fox, D. (2005). Probabilistic Robotics. MIT Press.
BFOmetr — база данных и аналитика по компаниям России.
На главную BFOmetr →


