SLAM-навигация¶
SLAM-навигация (от англ. Simultaneous Localization and Mapping — одновременная локализация и построение карты) — это вычислительная задача и технология, используемая в робототехнике, автономных транспортных средствах и системах дополненной реальности, которая позволяет агенту (роботу, дрону, автомобилю) одновременно определять своё местоположение в неизвестном пространстве и строить карту этого пространства. В отличие от классической навигации, где карта известна заранее, SLAM решает проблему «курицы и яйца»: для точной локализации нужна карта, а для построения карты — точное знание положения. Технология основана на обработке данных с сенсоров (лазерные дальномеры, камеры, одометры) и применении вероятностных методов фильтрации.
¶История развития
Концепция SLAM возникла в конце 1980-х годов в рамках исследований по мобильной робототехнике. В 1986 году на конференции IEEE Robotics and Automation в Сан-Франциско группа учёных (включая Хью Дуррант-Уайта и Джона Леонарда) впервые сформулировала задачу одновременной локализации и картографирования. Первые алгоритмы были основаны на расширенном фильтре Калмана (EKF-SLAM), который позволял обрабатывать линейные приближения нелинейных систем.
В 1990-е годы были разработаны методы на основе фильтра частиц (FastSLAM), что позволило работать с нелинейными и негауссовыми распределениями. Значительный прогресс произошёл в 2000-х годах с появлением графовых методов (GraphSLAM), которые оптимизируют карту и траекторию как граф связей между наблюдениями. С 2010-х годов активно развивается визуальный SLAM (Visual SLAM), использующий камеры вместо лазерных дальномеров, что снизило стоимость систем.
В России разработки в области SLAM ведутся в рамках проектов по беспилотным автомобилям (например, система «Яндекс.Такси»), а также в оборонной промышленности и робототехнике для экстремальных сред.
¶Принцип работы
Основная идея SLAM заключается в итеративном решении двух взаимосвязанных задач: оценка текущего положения агента на основе предыдущих данных и сенсорных измерений, и обновление карты на основе новых наблюдений. Процесс включает три ключевых этапа:
- Сбор данных с сенсоров — лазерные сканеры (LiDAR), стереокамеры, монокулярные камеры, инерциальные измерительные блоки (IMU), одометры колёс.
- Оценка движения — вычисление приращения положения между последовательными кадрами (например, методом ICP для облаков точек или оптического потока для изображений).
- Оптимизация карты и траектории — коррекция накопленных ошибок с помощью методов сглаживания (например, графовое представление с замкнутыми циклами).
Математически SLAM сводится к задаче максимизации апостериорной вероятности (MAP) для состояния агента и карты при условии всех наблюдений и управляющих воздействий. Для решения используются вероятностные модели, такие как фильтры Калмана, фильтры частиц или нелинейная оптимизация методом наименьших квадратов.
¶Классификация методов
¶По типу сенсоров
- Лазерный SLAM (LiDAR SLAM) — использует 2D или 3D лазерные сканеры. Обеспечивает высокую точность и дальность, но требует дорогостоящего оборудования. Примеры: Google Cartographer, Hector SLAM.
- Визуальный SLAM (Visual SLAM) — работает только с камерами. Делится на монокулярный (одна камера, масштаб неопределён), стерео (две камеры, известна база) и RGB-D (камера с глубиной, например Microsoft Kinect). Примеры: ORB-SLAM, DSO, LSD-SLAM.
- Инерциальный SLAM (Inertial SLAM) — комбинирует данные IMU с другими сенсорами, что позволяет компенсировать потери сигнала (например, в туннелях). Примеры: VINS-Mono, MSCKF.
¶По вычислительному подходу
- Фильтрующие методы — основаны на рекурсивной оценке состояния (EKF, фильтр частиц). Подходят для небольших карт и низкой динамики.
- Графовые методы — строят граф, где узлы — состояния агента, а рёбра — ограничения от наблюдений. Оптимизация выполняется после накопления данных (например, g2o, GTSAM). Обеспечивают глобальную согласованность.
- Глубокое обучение — современные подходы используют нейросети для извлечения признаков, оценки глубины или даже полного энд-ту-энд SLAM (например, DroidSLAM, DeepSLAM).
¶Применение
¶Робототехника и автономные транспортные средства
SLAM является основой для навигации мобильных роботов на складах (например, Kiva Systems, Яндекс.Маркет), в офисах (роботы-пылесосы, такие как Xiaomi Roborock), в сельском хозяйстве (автономные тракторы) и в горнодобывающей промышленности. В беспилотных автомобилях (Waymo, Яндекс.Такси) SLAM используется в сочетании с GPS и высокоточными картами для уточнения положения в условиях отсутствия спутникового сигнала.
¶Дополненная и виртуальная реальность
В системах AR/VR (например, Microsoft HoloLens, Apple ARKit, Google ARCore) SLAM позволяет устройству отслеживать своё положение в пространстве и размещать виртуальные объекты на реальной сцене. Визуальный SLAM здесь особенно важен, так как не требует внешних маркеров.
¶Беспилотные летательные аппараты (БПЛА)
Квадрокоптеры и дроны используют SLAM для навигации в помещениях, в лесах или в городской застройке, где GPS недоступен. Примеры: DJI Matrice с системой Visual SLAM, проекты на базе PX4.
¶Медицина и эндоскопия
Внутриполостные эндоскопы и хирургические роботы применяют SLAM для построения 3D-моделей внутренних органов и отслеживания инструментов. Это позволяет проводить минимально инвазивные операции с высокой точностью.
¶Примеры реализаций
- ORB-SLAM3 — одна из самых популярных открытых библиотек визуального SLAM, поддерживает монокулярные, стерео и RGB-D камеры, а также инерциальные данные. Разработана в Университете Сарагосы.
- Cartographer — библиотека от Google для лазерного SLAM, оптимизированная для реального времени. Используется в роботах-пылесосах и навигации внутри помещений.
- RTAB-Map — графовый SLAM с поддержкой нескольких сенсоров, включая LiDAR и камеры. Имеет встроенный детектор замкнутых циклов.
- VINS-Mono — монокулярный визуально-инерциальный SLAM, разработанный в Гонконгском университете науки и технологий. Подходит для БПЛА.
- Hector SLAM — лазерный SLAM, не требующий одометрии, использует метод Гаусса-Ньютона для выравнивания сканов. Часто применяется в квадрокоптерах.
¶Сложности и ограничения
- Накопление ошибок — без замкнутых циклов (loop closure) ошибка локализации растёт со временем, что приводит к расхождению карты.
- Динамические объекты — движущиеся люди, автомобили или животные создают ложные наблюдения, которые сложно отличить от статической карты.
- Вычислительные затраты — графовые методы требуют больших объёмов памяти и процессорного времени, особенно для больших пространств.
- Неоднозначность масштаба — в монокулярном SLAM абсолютный масштаб неизвестен, что требует дополнительной калибровки или использования IMU.
- Слабые текстуры — в однородных средах (белые стены, пустыня) визуальный SLAM теряет способность сопоставлять точки.
¶Перспективы развития
Современные исследования направлены на интеграцию SLAM с глубоким обучением для улучшения извлечения признаков и оценки глубины. Развиваются методы семантического SLAM, где карта содержит не только геометрию, но и классы объектов (например, «стол», «дверь»). В России ведутся работы по созданию SLAM-систем для Арктики и подводных аппаратов, где традиционные сенсоры (GPS, LiDAR) работают с ограничениями. Также активно внедряются системы на базе нейросетей для обработки данных с дешёвых камер, что снижает стоимость автономных устройств.
BFOmetr — база данных и аналитика по компаниям России.
На главную BFOmetr →


