🤖 А вы задумывались когда-то как работает ваш робот-пылесос? Сегодня немного об этом расскажу.
👾 Как работает LIDAR
LIDAR (Light Detection And Ranging) - это вращающийся лазерный дальномер, который несколько раз в секунду обходит всю комнату по кругу и замеряет расстояние до ближайших препятствий в каждой точке по углу.
Выход: массив пар (угол, расстояние) для каждого сканирования.
👾 Преобразование LIDAR-данных в карту квартиры
SLAM - Simultaneous Localization And Mapping
Алгоритм, который строит карту и одновременно определяет своё положение на ней, называется SLAM. Практически все современные роботы используют либо классический 2D SLAM, либо вариации (например, Cartographer от Google, GMapping, HectorSLAM).
Простая последовательность:
1. Сканирование: Робот получает "кольцо" точек вокруг себя (точки препятствий).
2. Оценка перемещения: Сравнивает текущее сканирование с предыдущим, чтобы понять, как он сдвинулся (обычно через ICP — Iterative Closest Point).
3. Оценка по одометру: Использует данные с колес (если есть) для уточнения перемещения.
4. Построение карты: Накапливает "облака точек" на сетке (обычно Occupancy Grid Map, где каждая клетка — свободна/занята/неизвестна).
5. Коррекция ошибок: Со временем использует методы "закрытия циклов" - если робот приехал в уже изученное место, корректирует свою карту и положение.
Итог: Получается карта квартиры в виде 2D-сетки (grid map), где видно стены, проходы, мебель.
👾 Как ездит робот по построенной карте
1. Локализация
В реальном времени робот продолжает использовать LIDAR, чтобы:
Сверять текущий круг LIDAR с картой (amcl - adaptive Monte Carlo localization, или particle filter).
Всегда знать, где он находится на карте (даже если его подвинуть руками).
2. Навигация и планирование маршрута
Два уровня:
1. Глобальный путь (Global Path Planning):
Алгоритмы типа A* или Dijkstra строят кратчайший путь по “чистой” карте (без учета динамических препятствий).
2. Локальный путь (Local Path Planning):
Робот смотрит ближайшее окружение (например, 1-2 метра) и строит траекторию с учетом новых препятствий (стул, ноги и т.д.), используя данные LIDAR в реальном времени (алгоритмы типа DWA — Dynamic Window Approach, или TEB — Timed Elastic Band).
Процесс:
Выбирается следующая “цель” (точка, участок для уборки).
Глобальный планировщик строит маршрут.
Локальный планировщик корректирует траекторию по свежим данным с LIDAR.
Робот двигается, всё время уточняя своё положение.
👾 Как работает в куче
1. LIDAR рисует "кольцо" вокруг робота
2. SLAM “сшивает” кольца друг с другом → карта
3. Робот узнает своё место на карте
4. Планирует путь с учётом карты
5. Едет, реагирует на изменения по LIDAR в реальном времени
👾 Примерная структура используемых алгоритмов
LIDAR scan → Preprocessing → SLAM (карта + позиция)
Карта + позиция + цели → Path Planning (A*, DWA и т.п.)
Движение → новые LIDAR данные → корректировка
👉 Подпишитесь что бы не пропустить интересное
>>Click here to continue<<