SLAM-алгоритмы
SLAM-алгоритмы (от англ. Simultaneous Localization and Mapping — одновременная локализация и построение карты) — это класс вычислительных методов, используемых в робототехнике, автономной навигации и компьютерном зрении для решения задачи построения карты неизвестного окружения в реальном времени при одновременном определении местоположения движущегося объекта (робота, дрона, транспортного средства) в этой карте. Основная сложность задачи SLAM заключается в том, что для точной локализации требуется точная карта, а для построения точной карты — точное знание положения объекта, что создаёт циклическую зависимость. Алгоритмы SLAM решают эту проблему путём итеративного оценивания состояния системы и коррекции ошибок на основе данных сенсоров.
История развития
Первые теоретические работы по проблеме одновременной локализации и картографирования появились в конце 1980-х — начале 1990-х годов. В 1986 году на конференции IEEE Robotics and Automation Conference исследователи Рэндалл Смит и Питер Чизман впервые сформулировали задачу SLAM в контексте вероятностного подхода. Ключевой прорыв произошёл в 1995 году, когда Хью Дюррант-Уайт и Джон Леонард предложили использовать фильтр Калмана для решения SLAM, что позволило обрабатывать неопределённость измерений.
В 2000-х годах развитие вычислительных мощностей и появление недорогих лазерных дальномеров (LIDAR) и камер сделало SLAM-алгоритмы применимыми на практике. В 2007 году была представлена система MonoSLAM — первый алгоритм, работающий в реальном времени с одной камерой. С 2010-х годов активно развиваются методы на основе графов (GraphSLAM) и глубокого обучения, что позволило значительно повысить точность и устойчивость алгоритмов.
Основные принципы работы
Все SLAM-алгоритмы решают задачу оценки состояния системы, которая включает два компонента:
- Положение объекта (позиция и ориентация в пространстве, обычно описываемые вектором в 2D или 3D).
- Карта окружения (набор ориентиров, точек, линий или облаков точек, представляющих статические объекты среды).
Задача решается путём обработки последовательности измерений от сенсоров (лазерные сканеры, камеры, IMU — инерциальные измерительные блоки) и управления движением (одометрия). Алгоритм итеративно обновляет оценку состояния, минимизируя ошибку между прогнозируемым и фактическим положением.
Вероятностная основа
Большинство современных SLAM-алгоритмов основаны на байесовском подходе. Состояние системы представляется в виде вероятностного распределения, которое обновляется по мере поступления новых данных. Два основных подхода:
- Фильтрация (EKF-SLAM, FastSLAM) — последовательное обновление оценки состояния с помощью фильтров Калмана или частиц.
- Оптимизация графа (GraphSLAM) — построение графа, где узлы представляют положения объекта в разные моменты времени, а рёбра — измерения и одометрические данные, после чего решается задача минимизации ошибки по всем узлам.
Классификация SLAM-алгоритмов
SLAM-алгоритмы классифицируют по нескольким критериям.
По типу используемых сенсоров
- LIDAR-based SLAM — используют лазерные дальномеры (2D или 3D). Примеры: Hector SLAM, GMapping, Cartographer (разработка Google). Обеспечивают высокую точность, но чувствительны к условиям окружающей среды (пыль, туман).
- Visual SLAM — работают с данными от камер (одной или нескольких). Примеры: ORB-SLAM, LSD-SLAM, DSO. Менее точны, чем LIDAR, но дешевле и позволяют получать визуальную информацию.
- RGB-D SLAM — используют камеры глубины (например, Microsoft Kinect), сочетающие цветное изображение и карту глубины. Пример: RTAB-Map.
- Inertial SLAM — интегрируют данные инерциальных датчиков (акселерометры, гироскопы) для повышения устойчивости при быстрых движениях.
По архитектуре обработки
- Фильтрующие методы (EKF-SLAM, UKF-SLAM) — работают в реальном времени, но имеют ограничения по размеру карты из-за квадратичной сложности.
- Графовые методы (GraphSLAM, iSAM) — более масштабируемы, позволяют обрабатывать большие карты, но требуют больше вычислительных ресурсов для оптимизации.
- Гибридные методы — сочетают фильтрацию для локальной оценки и графовую оптимизацию для глобальной коррекции.
По способу представления карты
- Метрические карты — точное геометрическое описание окружения (сетки занятости, облака точек).
- Топологические карты — представление в виде графа, где узлы — ключевые места, а рёбра — пути между ними.
- Семантические карты — дополняют метрическую информацию семантическими метками (например, «стена», «дверь», «стол»).
Применение
SLAM-алгоритмы находят широкое применение в различных областях, где требуется автономная навигация в неизвестной среде.
Робототехника
- Бытовые роботы (роботы-пылесосы, газонокосилки) — используют 2D LIDAR SLAM для построения карты помещения и планирования маршрута уборки.
- Промышленные роботы (автономные транспортные средства на складах, манипуляторы) — применяют SLAM для точного позиционирования в динамической среде.
- Сервисные роботы (роботы-доставщики, роботы-официанты) — используют визуальный SLAM для навигации в людных местах.
Автономные транспортные средства
- Беспилотные автомобили — используют комбинацию LIDAR, камер и IMU для построения карты дорожной обстановки и локализации в ней. Компании, такие как Waymo (принадлежит Alphabet Inc.), Tesla, Uber, активно применяют SLAM-алгоритмы.
- Беспилотные летательные аппараты (дроны) — используют визуальный SLAM для навигации в условиях отсутствия GPS (внутри помещений, в лесу).
Дополненная и виртуальная реальность
- AR-устройства (Microsoft HoloLens, Apple Vision Pro, устройства на базе ARKit от Apple и ARCore от Google (Google LLC — признана иноагентом в РФ)) — используют SLAM для отслеживания положения устройства в пространстве и размещения виртуальных объектов.
- VR-шлемы — применяют SLAM для отслеживания перемещения пользователя в комнате.
Геодезия и картография
- Мобильное лазерное сканирование — автомобили с LIDAR, оснащённые SLAM, создают 3D-модели городов, дорог и зданий.
- Подводная навигация — SLAM с сонарами используется для картографирования морского дна.
Примеры известных алгоритмов
| Название | Тип сенсора | Особенности | Разработчик |
|---|---|---|---|
| GMapping | 2D LIDAR | Фильтр частиц, оптимизирован для небольших помещений | Университет Фрайбурга (Германия) |
| Hector SLAM | 2D LIDAR | Не требует одометрии, использует сканирование с высокочастотным обновлением | Технический университет Дармштадта (Германия) |
| Cartographer | 2D/3D LIDAR, IMU | Графовая оптимизация, поддержка больших карт | |
| ORB-SLAM3 | Камера (монокулярная, стерео, RGB-D) | Работает в реальном времени, поддерживает несколько камер | Университет Сарагосы (Испания) |
| RTAB-Map | RGB-D, LIDAR | Интеграция с ROS, поддержка долговременной работы | Университет Шербрука (Канада) |
| LSD-SLAM | Монокулярная камера | Прямой метод (без извлечения признаков), строит полуплотную карту | Технический университет Мюнхена (Германия) |
Проблемы и современные направления
Несмотря на значительный прогресс, SLAM-алгоритмы сталкиваются с рядом ограничений:
- Вычислительная сложность — обработка больших карт и высокочастотных данных требует мощных процессоров и GPU.
- Динамические среды — движущиеся объекты (люди, транспорт) вносят шум и требуют фильтрации.
- Зацикливание (loop closure) — распознавание ранее посещённых мест для коррекции накопленной ошибки остаётся сложной задачей, особенно в визуальном SLAM.
- Отсутствие GPS — в помещениях или под землёй SLAM становится единственным способом навигации, но точность падает при длительном движении.
Современные исследования направлены на:
- Глубокое обучение — использование нейронных сетей для извлечения признаков, оценки глубины и семантической сегментации.
- Мультисенсорная интеграция — объединение данных от LIDAR, камер, IMU и GNSS для повышения устойчивости.
- Долговременная автономность — создание алгоритмов, способных работать дни и недели без ухудшения точности.
- Семантический SLAM — добавление понимания смысла объектов (например, различение стены и двери) для улучшения картографирования.
Значение для технологий
SLAM-алгоритмы являются ключевой технологией для создания автономных систем, способных функционировать в неопределённых и изменчивых условиях. Они лежат в основе роботов-уборщиков, беспилотных автомобилей, дронов, устройств дополненной реальности и систем промышленной автоматизации. По мере развития вычислительной техники и сенсорики SLAM продолжает совершенствоваться, приближаясь к возможностям человеческой навигации в пространстве.
Источники
- Durrant-Whyte, H., Bailey, T. (2006). «Simultaneous Localization and Mapping: Part I». IEEE Robotics & Automation Magazine.
- Bailey, T., Durrant-Whyte, H. (2006). «Simultaneous Localization and Mapping: Part II». IEEE Robotics & Automation Magazine.
- Grisetti, G., Stachniss, C., Burgard, W. (2007). «Improved Techniques for Grid Mapping With Rao-Blackwellized Particle Filters». IEEE Transactions on Robotics.
- 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.
- Engel, J., Schöps, T., Cremers, D. (2014). «LSD-SLAM: Large-Scale Direct Monocular SLAM». European Conference on Computer Vision (ECCV).
- 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).
- Cadena, C., Carlone, L., Carrillo, H., et al. (2016). «Past, Present, and Future of Simultaneous Localization and Mapping: Toward the Robust-Perception Age». IEEE Transactions on Robotics.
BFOmetr — база данных и аналитика по компаниям России.
На главную BFOmetr →