Лазерная навигация SLAM
SLAM (Simultaneous Localization and Mapping, одновременная локализация и построение карты) — это вычислительная задача и технология, используемая в робототехнике, автономных транспортных средствах и системах дополненной реальности, которая позволяет агенту (роботу, дрону, автомобилю) одновременно определять своё местоположение в неизвестном пространстве и создавать карту этого пространства. В контексте лазерной навигации SLAM реализуется с помощью лазерных дальномеров (LIDAR — Light Detection and Ranging), которые обеспечивают высокоточные измерения расстояний до окружающих объектов, что критически важно для построения достоверной карты и надёжной локализации.
История развития
Задача SLAM возникла в конце 1980-х — начале 1990-х годов в рамках исследований в области мобильной робототехники. Первоначально она решалась с использованием ультразвуковых и инфракрасных датчиков, но их низкая точность и подверженность помехам ограничивали возможности. Прорыв произошёл с появлением доступных лазерных дальномеров, таких как SICK LMS, в середине 1990-х годов. В 1995 году на Международной конференции по робототехнике и автоматизации (ICRA) была впервые сформулирована математическая основа SLAM как задачи оценки состояния с помощью фильтра Калмана.
В 2000-х годах развитие вычислительных мощностей и алгоритмов, таких как графовый SLAM (GraphSLAM) и фильтр частиц (Rao-Blackwellized particle filter), позволило применять лазерную навигацию SLAM в реальном времени. В 2010-х годах с появлением недорогих LIDAR-сенсоров (например, RPLIDAR от Slamtec) технология стала массово внедряться в бытовых роботах-пылесосах, беспилотных летательных аппаратах и автомобилях с функциями автономного вождения.
Принцип работы
Лазерная навигация SLAM основана на двух взаимосвязанных процессах: локализации и построении карты. Локализация — это определение положения и ориентации робота в пространстве относительно карты. Построение карты — это создание геометрического представления окружающей среды на основе данных с LIDAR.
Сбор данных с LIDAR
Лазерный дальномер (LIDAR) излучает лазерные импульсы и измеряет время их возврата после отражения от объектов. Полученные данные формируют облако точек (point cloud), которое представляет собой набор координат точек в пространстве. Для двумерной навигации (2D SLAM) используется сканирующий LIDAR, который измеряет расстояния в одной плоскости, создавая карту в виде сетки занятости (occupancy grid). Для трёхмерной навигации (3D SLAM) применяются многолучевые или вращающиеся LIDAR, формирующие трёхмерное облако точек.
Алгоритмы SLAM
Существует несколько основных подходов к решению задачи SLAM:
- Фильтр Калмана (EKF-SLAM): Использует расширенный фильтр Калмана для оценки состояния робота и положения ориентиров. Подходит для небольших пространств с ограниченным числом ориентиров, но имеет высокую вычислительную сложность при масштабировании.
- Фильтр частиц (Particle Filter SLAM): Применяет метод Монте-Карло, представляя возможные положения робота в виде набора частиц. Каждая частица имеет свой вес, который обновляется на основе данных с LIDAR. Этот метод хорошо подходит для нелинейных и негауссовых распределений.
- Графовый SLAM (GraphSLAM): Представляет задачу в виде графа, где узлы — это положения робота, а рёбра — наблюдаемые измерения (связи между положениями). Оптимизация графа позволяет минимизировать ошибки и получить согласованную карту. Этот метод наиболее эффективен для больших пространств и широко используется в современных системах.
Процесс итерации
- Сканирование: LIDAR получает текущее облако точек.
- Сопоставление сканов (Scan Matching): Алгоритм (например, ICP — Iterative Closest Point или его варианты) сравнивает текущее облако точек с предыдущим или с картой, чтобы оценить относительное перемещение робота.
- Обновление состояния: На основе оценки перемещения обновляется положение робота.
- Обновление карты: Новые точки добавляются на карту, а старые уточняются.
- Цикл: Процесс повторяется с каждым новым сканированием.
Классификация
Лазерную навигацию SLAM можно классифицировать по нескольким признакам.
По размерности пространства
- 2D SLAM: Используется для плоских поверхностей (например, пол в помещении). Карта представляется в виде двумерной сетки занятости. Применяется в роботах-пылесосах, складских роботах.
- 3D SLAM: Используется для трёхмерных пространств (например, улицы, помещения с мебелью). Карта представляется в виде трёхмерного облака точек или сетки. Применяется в беспилотных автомобилях, дронах, строительной робототехнике.
По типу карты
- Сетка занятости (Occupancy Grid): Пространство разбивается на ячейки, каждая из которых имеет вероятность быть занятой или свободной. Простой и эффективный метод для 2D.
- Карта ориентиров (Landmark Map): Использует выделенные характерные точки (ориентиры), такие как углы стен или столбы. Более компактное представление, но требует надёжного выделения ориентиров.
- Топологическая карта: Представляет пространство в виде графа, где узлы — это значимые места, а рёбра — пути между ними. Подходит для навигации на больших расстояниях.
По типу LIDAR
- Однолучевой (сканирующий): Измеряет расстояние в одной плоскости. Дешёвый и компактный, используется в 2D SLAM.
- Многолучевой (3D LIDAR): Имеет несколько лазерных лучей (например, 16, 32, 64, 128), создающих трёхмерное облако точек. Дорогой, но обеспечивает высокую детализацию. Примеры: Velodyne, Ouster, Hesai.
- Solid-state LIDAR: Не имеет вращающихся частей, использует оптическую фазированную решётку (OPA) или MEMS-зеркала. Более надёжный и компактный, но с меньшим углом обзора.
Применение
Лазерная навигация SLAM нашла широкое применение в различных областях.
Робототехника
- Бытовые роботы: Роботы-пылесосы (например, Xiaomi Roborock, iRobot Roomba с LIDAR) используют 2D SLAM для построения карты квартиры и эффективной уборки.
- Складские роботы: Автономные мобильные роботы (AMR) на складах (например, от компаний Kiva Systems (принадлежит Amazon), Geek+) используют SLAM для навигации в динамической среде с паллетами и стеллажами.
- Сервисные роботы: Роботы-официанты, роботы-уборщики в офисах и торговых центрах.
Беспилотные транспортные средства
- Автомобили: Системы автономного вождения (уровни 3-5) используют 3D SLAM в сочетании с данными с камер, радаров и ультразвуковых датчиков. LIDAR обеспечивает точное определение положения автомобиля на дороге и построение карты окружения (например, Waymo, Cruise, Яндекс.Такси).
- Беспилотные летательные аппараты (БПЛА): Дроны для геодезии, мониторинга, доставки используют SLAM для навигации в условиях отсутствия GPS (например, в помещениях, в лесу).
Дополненная и виртуальная реальность
- AR/VR-шлемы: Устройства, такие как Microsoft HoloLens и Apple Vision Pro, используют SLAM (часто на основе камер, но с возможностью интеграции LIDAR) для отслеживания положения пользователя и размещения виртуальных объектов в реальном пространстве.
Геодезия и картография
- Сканирование помещений: Мобильные лазерные сканеры (например, Leica BLK2GO, NavVis) используют SLAM для быстрого создания 3D-моделей зданий и сооружений.
- Подземная навигация: Роботы для обследования шахт, тоннелей и трубопроводов, где GPS недоступен.
Преимущества и недостатки
Преимущества
- Высокая точность: Лазерные дальномеры обеспечивают точность измерений до нескольких миллиметров, что позволяет строить детальные карты.
- Независимость от освещения: LIDAR работает в полной темноте, в отличие от камер.
- Робастность: Устойчивость к помехам, таким как пыль, дым, туман (в определённых пределах).
- Масштабируемость: Современные алгоритмы (GraphSLAM) позволяют обрабатывать большие пространства (десятки километров).
Недостатки
- Высокая стоимость: Качественные 3D LIDAR (например, Velodyne) стоят тысячи долларов, хотя стоимость снижается с развитием solid-state технологий.
- Ограниченная дальность: Большинство LIDAR имеют дальность до 100-200 метров, что ограничивает применение на открытых пространствах.
- Чувствительность к отражающим поверхностям: Зеркала, стекла и чёрные матовые поверхности могут искажать измерения.
- Вычислительная сложность: Обработка больших облаков точек требует мощных вычислительных ресурсов (GPU, FPGA).
Интересные факты
- Первый коммерческий робот-пылесос с LIDAR и SLAM был выпущен компанией Neato Robotics в 2010 году (модель Neato XV-11).
- В 2019 году компания Waymo (принадлежит Alphabet) объявила, что её автономные автомобили проехали более 20 миллиардов километров в симуляции, используя данные с LIDAR и 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 (SLAM): part II. IEEE Robotics & Automation Magazine.
- Thrun, S., Burgard, W., & Fox, D. (2005). Probabilistic Robotics. MIT Press.
- Grisetti, G., Stachniss, C., & Burgard, W. (2007). Improved techniques for grid mapping with Rao-Blackwellized particle filters. IEEE Transactions on Robotics.
- Cadena, C., et al. (2016). Past, present, and future of simultaneous localization and mapping: Toward the robust-perception age. IEEE Transactions on Robotics.
- Материалы конференций ICRA, IROS, RSS (1995–2023).
BFOmetr — база данных и аналитика по компаниям России.
На главную BFOmetr →