SLAM
Кратко
SLAM (simultaneous localization and mapping, одновременная локализация и картирование) — задача, которую решает робот, оказавшийся в незнакомом месте без внешней навигации: построить карту окружения и одновременно определить своё положение на этой карте. Задача внутренне замкнута: чтобы построить карту, нужно знать, откуда смотришь; чтобы знать, где находишься, нужна карта. SLAM разрывает этот круг совместной вероятностной оценкой того и другого.
Для чего используется
SLAM — основа автономности там, где GNSS недоступна или недостаточна:
- роботы в помещениях: склады, пылесосы, доставка в зданиях;
- БПЛА внутри сооружений и под плотными кронами;
- беспилотные автомобили: точные карты и позиционирование до сантиметров;
- подземные и подводные аппараты;
- дополненная реальность: телефон строит карту комнаты тем же математическим аппаратом.
Как работает
Интуиция: входя в тёмную комнату, человек ощупывает стены и постепенно составляет в голове план, попутно понимая, где стоит. Робот делает то же самое формально:
- Одометрия даёт грубый прогноз перемещения (IMU, энкодеры колёс) — но ошибка интегрирования быстро накапливается.
- Наблюдения сенсора — скан лидара или особые точки на изображениях камер — сопоставляются с уже построенной частью карты, уточняя позицию.
- Замыкание петли (loop closure) — ключевой момент: узнав уже посещённое место, алгоритм получает жёсткое ограничение и «стягивает» накопленную ошибку по всей пройденной траектории.
Современные системы обычно устроены как граф поз: вершины — положения робота в разные моменты, рёбра — измеренные связи между ними (одометрия, совпадения наблюдений, петли). Оптимизация графа находит согласованную траекторию и карту. По сенсорам различают лидарный SLAM (точная геометрия, устойчивость к освещению) и визуальный (камеры дёшевы и легки; вариант VIO — визуально-инерциальная одометрия — стандарт для лёгких дронов).
Практические ограничения: однообразные среды (длинный коридор, поле) бедны ориентирами; динамичные объекты (люди, машины) засоряют карту; вычислительный бюджет на борту всегда ограничен.
Основные компоненты
- фронтенд: обработка сырых данных сенсора, поиск соответствий, детекция петель;
- бэкенд: оптимизация графа поз;
- представление карты: сетка занятости (2D), облака точек, воксели (3D);
- сенсоры: лидар, камеры (моно/стерео), IMU, энкодеры.
Примеры
- Складской робот: 2D-лидарный SLAM, затем навигация по готовой карте (стек ROS 2 — типовая реализация).
- Дрон-обследователь без GNSS внутри ангара: визуально-инерциальный SLAM.
- Робот-пылесос: недорогой лидар и SLAM строят план квартиры за первую уборку.
Связанные темы
Источники
- Wikipedia — Simultaneous localization and mapping — постановка задачи, алгоритмы, loop closure, сенсоры.