Оценка окружающей обстановки необходима для безопасного планирования и управления полетом, но заранее определить карту пространства невозможно, особенно в постоянно меняющейся городской среде с множеством динамичных объектов. На карте должна отображаться информация о всех ориентирах, таких как здания, дороги, пешеходы и транспортные средства. Дрон также должен знать о других БПЛА, чтобы избежать столкновений.
Методы локализации часто основаны на ГНСС или RTK (кинематической системе позиционирования в реальном времени). Однако погрешность измерений ГНСС может достигать десятков сантиметров (в худших случаях – 2-3 метров), а при движении в туннелях и шахтах сигнал отсутствует совсем. У систем RTK выше точность, но им нужна постоянная связь с источником поправок. В закрытых пространствах, в условиях низкой точности или отсутствия сигнала, перспективным методом является SLAM – метод построения карт и локализации в режиме реального времени.
Сканирование сети подземных туннелей с использованием ZEB Horizon. Источник: GeoSLAM
SLAM (Simultaneous Location and Mapping, одновременная локализация и построение карты) – это общее название для методов обнаружения объектов и восприятия пространства с помощью постоянного обновления карты. Другими словами, это процесс вычисления положения устройства с одновременным построением карты в реальном времени. Это позволяет составлять карту неизвестной среды на ходу и постоянно обновлять ее с учетом движения объектов.
SLAM упрощает сбор данных, устраняет зависимость от внешних сигналов и может использоваться на открытом воздухе, в помещениях и под землей. Сейчас SLAM используется не только в БПЛА, но и в самоуправляемых автомобилях, автономных подводных аппаратах, в промышленных и бытовых роботах.
Карта нужна для оценки положения, а оценка положения необходима для построения карты. Как SLAM одновременно решает две взаимосвязанные задачи по локализации БПЛА и составлению карты? Ответ – с помощью комбинации данных нескольких датчиков и сложных математических алгоритмов.
В целом процесс решения задач SLAM можно разделить на два этапа, где первый этап – это первичная обработка сигналов датчиков. На этом этапе происходит сбор данных с сенсоров, камер и инерциального измерительного блока в дроне (IMU).
Визуальная инерциальная одометрия оценивает изменение положения беспилотника относительно точки старта. Она объединяет данные оптических датчиков, которые считывают информацию о положении объектов в пространстве, с данными IMU, который вычисляет положение дрона. Это дает начальную оценку локализации, и по этим данным устройство строит приблизительную карту. По мере того как устройство перемещается в окружающей среде, оно делает новые оценки местоположения по датчикам и обновляет карту. Этот процесс повторяется на всем пути, при этом на карту добавляются все новые данные.
На этом этапе решается задача нахождения максимально точного определения позиции устройства с учетом всех датчиков и их возможных ошибок. Для повышения точности в SLAM-системе проводится повторная локализация.
Рассмотрим подробнее первый блок SLAM – обработку данных с сенсоров.
Человек взаимодействует с внешней средой и получает звуковую, визуальную и прочую сенсорную информацию. Восприятие придает смысл этим ощущениям, позволяя расшифровать информацию и предпринять на ее основе соответствующие действия. Аналогичным образом БПЛА воспринимают информацию с сенсоров, чтобы оптимально и безопасно спланировать траекторию полета.
Визуальный SLAM (или vSLAM) использует изображения, полученные с визуальных датчиков. В этом случае робот составляет карту окружающей среды и определяет ее местоположение по данным с камер, обычно отслеживая ориентиры для триангуляции положения камеры в пространстве.
В последние годы визуальный SLAM может быть реализован с минимальными затратами благодаря относительно недорогим камерам. По сравнению с другими датчиками камеры быстро предоставляют большой объем информации, и с ними легко обнаружить известные ориентиры.
Если vSLAM использует только одну камеру в качестве единственного датчика, это затрудняет определение глубины изображения. Эта проблема может быть решена, например, через объединение информации с камеры с данными IMU (скорость и ориентация устройства) или с помощью нейросетей.
Несмотря на свой потенциал vSLAM сейчас не может решать все задачи из-за ограничений по условиям освещения и скорости движения устройства. Кроме того, остается открытым вопрос о качестве vSLAM в присутствии облаков, тумана, дымки и других климатических явлений.
Устройства LiDAR рассчитывают расстояния до объектов, посылая импульсы света и измеряя время, которое требуется для их отражения. Полученное облако точек обеспечивает высокоточные измерения расстояния и эффективно для построения карт с помощью SLAM.
Каждая из этих технологий имеет свои преимущества для решения конкретных задач. По сравнению с камерой, датчик LiDAR не зависит от изменений освещенности. Кроме того, сопоставление облаков точек LiDAR обычно требует высокой вычислительной мощности.
По сравнению с LiDAR визуальный SLAM легче распознает ориентиры в пространстве, а также делает систему более дешевой, легкой и простой для установки. Сейчас системы визуального SLAM могут работать даже в смартфонах.
Другие методы SLAM включают акустический SLAM (с использованием микрофонов), тактильный SLAM, радарный SLAM и wifi-SLAM (определение по близким точкам доступа wifi). Все датчики имеют свои плюсы и минусы, поэтому хорошим вариантом для повышения точности считается объединение на устройстве нескольких типов датчиков.
Хотя объединение данных не устраняет основные источники ошибок, оно направлено на уменьшение влияния неточностей, накопленных из-за разного разрешения датчиков. Однако это приводит к дополнительным вычислениям при объединении данных различных датчиков с учетом их задержек в единую картину. Этот процесс можно сделать более плавным, используя методы машинного обучения.
SLAM оценивает последовательное движение, которое включает некоторую погрешность. Ошибки локализации накапливаются, вызывая существенное отклонение от фактического положения БПЛА. По мере накопления ошибок начальная и конечная точки робота перестают совпадать – это называется проблемой замыкания контура (или замыкания цикла). Подобные ошибки оценки позы неизбежны.
Одно из решений – запомнить некоторые характеристики ранее посещенного места в качестве ориентира и минимизировать ошибку локализации, замкнув пройденный путь в единый контур и построив позиционные графы для исправления ошибок. Решив задачу минимизации ошибок как задачу оптимизации, можно получить более точные карты пространств.
Замыкание контура – это проблема распознавания ранее посещенного места и соответствующего обновления карты. Ошибки модели или алгоритма могут назначить низкие приоритеты для местоположения и не распознать повторно посещенную локацию. Это также может привести к тому, что картографические данные искажаются, затрудняя поиск совпадений.
Проблема SLAM представляется в виде графа, где вершины и ребра представляют позицию робота и объекты в пространстве. Алгоритмы SLAM по оптимизации графа основаны на достаточно сложных концепциях вычислительной геометрии. Они находят наиболее вероятное объяснение положения робота и карты с учетом данных датчиков и замкнутых контуров. И каждый раз, когда определяется новый замкнутый контур, алгоритм решает задачу по оптимизации точнее.
Расширенный фильтр Калмана (EKF) был одним из первых алгоритмов SLAM, и долгое время оставался самым популярным методом оптимизации в робототехнике. Сейчас часто используются алгоритмы многочастичных фильтров и GraphSLAM, но есть и множество других: например, FastSLAM и ORB-SLAM. Многие алгоритмы SLAM реализованы в библиотеках ROS с открытым исходным кодом, поэтому при желании можно запрограммировать полет дрона с использованием алгоритмов SLAM.
Возможности и ограничения различных типов датчиков – основной фактор, определяющий выбор алгоритма оптимизации. Новые алгоритмы SLAM остаются активной областью исследований и часто определяются различными требованиями типов карт, датчиками, масштабом проектов и вычислительной мощностью.
Для точной локализации необходимо постоянно выполнять обработку изображений, сопоставлять облака точек и проводить оптимизационные расчеты, такие как замыкание контура. Для этого необходима высокая производительность. Из-за своей компактности встроенные процессоры имеют ограниченную вычислительную мощность, и это на данный момент одна из трудностей реализации SLAM.
В последнее время процессы SLAM дополняются технологиями глубокого обучения. Нейронные сети могут дополнить недостающую информацию при объединении данных с разных датчиков и оценке окружающей среды, а также могут привести к новым способам интерпретации пространства для обнаружения объектов в реальном времени. Картографирование на основе глубокого обучения сейчас рассматривается как дополнительное решение для локализации методами SLAM.
SLAM может помочь в автономной навигации БПЛА без предопределенной карты траектории или наземных ориентиров. Одно из его главных преимуществ – возможность съемки в условиях, когда точность сигнала GPS снижается.