SLAM

Кратко

SLAM (simultaneous localization and mapping, одновременная локализация и картирование) — задача, которую решает робот, оказавшийся в незнакомом месте без внешней навигации: построить карту окружения и одновременно определить своё положение на этой карте. Задача внутренне замкнута: чтобы построить карту, нужно знать, откуда смотришь; чтобы знать, где находишься, нужна карта. SLAM разрывает этот круг совместной вероятностной оценкой того и другого.

Для чего используется

SLAM — основа автономности там, где GNSS недоступна или недостаточна:

  • роботы в помещениях: склады, пылесосы, доставка в зданиях;
  • БПЛА внутри сооружений и под плотными кронами;
  • беспилотные автомобили: точные карты и позиционирование до сантиметров;
  • подземные и подводные аппараты;
  • дополненная реальность: телефон строит карту комнаты тем же математическим аппаратом.

Как работает

Интуиция: входя в тёмную комнату, человек ощупывает стены и постепенно составляет в голове план, попутно понимая, где стоит. Робот делает то же самое формально:

  1. Одометрия даёт грубый прогноз перемещения (IMU, энкодеры колёс) — но ошибка интегрирования быстро накапливается.
  2. Наблюдения сенсора — скан лидара или особые точки на изображениях камер — сопоставляются с уже построенной частью карты, уточняя позицию.
  3. Замыкание петли (loop closure) — ключевой момент: узнав уже посещённое место, алгоритм получает жёсткое ограничение и «стягивает» накопленную ошибку по всей пройденной траектории.

Современные системы обычно устроены как граф поз: вершины — положения робота в разные моменты, рёбра — измеренные связи между ними (одометрия, совпадения наблюдений, петли). Оптимизация графа находит согласованную траекторию и карту. По сенсорам различают лидарный SLAM (точная геометрия, устойчивость к освещению) и визуальный (камеры дёшевы и легки; вариант VIO — визуально-инерциальная одометрия — стандарт для лёгких дронов).

Практические ограничения: однообразные среды (длинный коридор, поле) бедны ориентирами; динамичные объекты (люди, машины) засоряют карту; вычислительный бюджет на борту всегда ограничен.

Основные компоненты

  • фронтенд: обработка сырых данных сенсора, поиск соответствий, детекция петель;
  • бэкенд: оптимизация графа поз;
  • представление карты: сетка занятости (2D), облака точек, воксели (3D);
  • сенсоры: лидар, камеры (моно/стерео), IMU, энкодеры.

Примеры

  • Складской робот: 2D-лидарный SLAM, затем навигация по готовой карте (стек ROS 2 — типовая реализация).
  • Дрон-обследователь без GNSS внутри ангара: визуально-инерциальный SLAM.
  • Робот-пылесос: недорогой лидар и SLAM строят план квартиры за первую уборку.

Связанные темы

Источники

Обновлено: 2026-07-05