Говоря о технологии SLAM (Часть 1)

искусственный интеллект открытый источник алгоритм робот

Приветствую всех вОблачное сообщество Tencent, получить больше крупной технической практики Tencent по галантерее ~

Автор: Се Хунвэнь

Введение

Благодаря популярности роботов, дронов, беспилотных транспортных средств и VR/AR в последние годы технология SLAM также хорошо известна и считается одной из ключевых технологий в этих областях. В этой статье кратко представлена ​​технология SLAM и ее развитие, проанализированы ключевые проблемы визуальных систем SLAM и трудности их практического применения, а также предвидится будущее SLAM.

1. Технология SLAM

SLAM (одновременная локализация и картографирование), синхронная локализация и построение карты, впервые были предложены в области робототехники.Это относится к тому, что робот начинает с неизвестного места в неизвестной среде и определяет свое собственное положение и позу с помощью неоднократно наблюдаемых особенностей окружающей среды. в процессе движения, а затем построить инкрементную карту окружающей среды в соответствии с его собственным положением, чтобы достичь цели одновременного позиционирования и построения карты. Благодаря своей важной академической и практической ценности SLAM всегда считался ключевой технологией для создания полностью автономных мобильных роботов.

Как показано на рисунке ниже, с точки зрения непрофессионала, SLAM отвечает на два вопроса: «Где я?» «Что меня окружает?» Точно так же, как когда человек находится в незнакомой среде, SLAM пытается решить, как восстановить наблюдателя. себя и относительное пространственное отношение окружающей среды, «где я» соответствует проблеме позиционирования, а «что вокруг меня» соответствует проблеме картографирования, дающего описание окружающей среды. Ответ на эти два вопроса фактически завершает пространственное познание себя и окружающей среды. С помощью этой основы можно выполнить планирование пути для достижения желаемого пункта назначения.В процессе также необходимо вовремя обнаруживать и избегать препятствий, возникающих для обеспечения безопасной работы.

2. Введение в разработку SLAM

С тех пор, как концепция SLAM была предложена в 1980-х годах, технология SLAM пережила более чем 30-летнюю историю. Датчики, используемые в системах SLAM, постоянно расширяются, от раннего сонара до более позднего лидара 2D / 3D, монокулярных, бинокулярных, RGBD, ToF и других камер, а также интеграции с такими датчиками, как инерциальный измерительный блок IMU; Алгоритм SLAM также изменился с первоначального метода, основанного на фильтрах (EKF, PF и т. д.), на метод, основанный на оптимизации, и техническая структура также эволюционировала от первоначального однопоточного к многопоточному. Некоторые репрезентативные методы SLAM в этих процессах представлены ниже.

(1) Разработка LiDAR SLAM

SLAM на основе лидара (Lidar SLAM) использует 2D- или 3D-лидар (также называемый однолинейным или многолинейным лидаром), как показано на рисунке ниже. В роботах для помещений (таких как подметальные роботы) обычно используется 2D-лидар, а в области беспилотного вождения обычно используется 3D-лидар.

Преимущество лидара заключается в том, что измерение является точным, и он может более точно предоставлять информацию об угле и расстоянии, что позволяет достичь<1°Высокая угловая точность и точность определения дальности на уровне см, широкий диапазон сканирования (обычно охватывающий диапазон более 270° в плоскости) и твердотельные лидары на основе сканирующего гальванометра (такие как Sick, Hokuyo и т. д.) позволяют достичь более высоких Частота обновления данных (выше 20 Гц) в основном соответствует потребностям работы в режиме реального времени; недостатком является относительно высокая цена (более дешевый механический поворотный однолинейный лазерный радар на рынке в настоящее время стоит несколько тысяч юаней), а установка и развертывание имеют требования к конструкции (требуется беспрепятственная плоскость сканирования).

Карта, созданная лидаром SLAM, часто представлена ​​картой сетки занятости (Ocupanccy Grid), Каждая сетка представляет вероятность занятости в виде вероятности, а хранилище очень компактно, что особенно подходит для планирования пути.

В своей классической книге 2005 года «Вероятностная робототехника» Себастьян Трун, нынешний основатель и генеральный директор Udacity, бывший вице-президент Google и лидер беспилотных транспортных средств Google, подробно остановился на использовании 2D-лидара для картирования на основе вероятностных методов. основы построения и локализации, а также был изложен метод FastSLAM на основе фильтра частиц RBPF, который стал основой GMapping[1][2], одного из стандартных методов двумерного лидарного картирования, который также был интегрирован в операционную систему робота. (Роботизированная операционная система, ROS).

В 2013 году в литературе [3] была проведена сравнительная оценка нескольких алгоритмов 2D SLAM в ROS, HectorSLAM, KartoSLAM, CoreSLAM, LagoSLAM и GMapping, Читатели могут перейти к ним поближе.

В 2016 году Google открыл исходный код своей библиотеки алгоритмов LiDAR SLAM Cartographer[4], которая исправила недостатки GMapping, который сложен в вычислениях и не эффективно обрабатывает замкнутые циклы.Он использует идеи SubMap и Scan Match для построения карт, которые могут эффективно справляться с замкнутыми циклами и достигать лучших результатов Эффект.

(2) Визуальная разработка SLAM

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

Датчики, используемые в визуальном SLAM, в настоящее время в основном включают монокулярные камеры, бинокулярные камеры и камеры RGBD.Информация о глубине камер RGBD рассчитывается по принципу структурированного света (например, поколение Kinect1) или путем проецирования инфракрасных изображений и использования бинокулярного инфракрасного излучения. Он рассчитывается камерой (например, Intel RealSense R200), а также реализуется камерами TOF (например, поколением Kinect 2).Для пользователей эти типы RGBD могут выводить изображения RGB и изображения глубины.

Современные популярные визуальные SLAM-системы можно условно разделить на front-end и back-end, как показано на рисунке ниже. Внешний интерфейс выполняет ассоциацию данных, что эквивалентно VO (визуальной одометрии), изучает взаимосвязь преобразования между кадрами, в основном выполняет отслеживание позы в реальном времени, обрабатывает входное изображение, вычисляет изменение позы, а также обнаруживает и обрабатывает закрытые петля При наличии информации IMU она также может участвовать в расчете слияния (практика визуальной инерциальной одометрии ВИО), бэкенд в основном оптимизирует выходные результаты фронтенда, используя теорию фильтрации (EKF, PF и т.д.) .) или теория оптимизации для оптимизации деревьев или графов, получения оптимальных оценок позы и карт.

Используя фильтр SLAM, как показано на рисунке (a) ниже, для оценки положения камеры Tn в момент времени n необходимо использовать информацию обо всех ориентирах на карте, и состояние этих ориентиров необходимо обновлять в каждом кадре. новых ориентиров, состояния Размер матрицы быстро растет, что приводит к все более трудоемким вычислениям и решениям, поэтому она не подходит для длительных крупномасштабных операций; в то время как SLAM с использованием алгоритма оптимизации, как показано на рисунке (b) ниже, обычно используется в сочетании с ключевыми кадрами для оценки времени n. Положение камеры Tn может использовать подмножество всей карты, и нет необходимости обновлять данные карты в каждом изображении, поэтому большинство современных успешных систем SLAM в реальном времени используют методы оптимизации.

Ниже представлены несколько репрезентативных систем SLAM при разработке визуального SLAM:

MonoSLAM [5] — первая успешная система SLAM с чистым зрением, основанная на монокулярной камере, разработанная Дэвисоном и др. в 2007 году. MonoSLAM использует расширенный фильтр Калмана, и его состояние состоит из параметров движения камеры и всех положений 3D точек.Ориентация камеры в каждый момент времени имеет отклонение вероятности, и каждое положение 3D точки также имеет отклонение вероятности.Вы можете использовать трехмерным эллипсоидом, центр эллипсоида является расчетным значением, а объем эллипсоида указывает на степень неопределенности (как показано на рисунке ниже).В рамках этой вероятностной модели форма точки сцены, проецируемая на изображение представляет собой спроецированный эллипс вероятности. MonoSLAM извлекает угловые точки Ши-Томаси [6] для каждого кадра изображения и выполняет активный поиск [7] сопоставления характерных точек в спроецированном эллипсе. Поскольку трехмерное положение точки добавляется к оцениваемой переменной состояния, вычислительная сложность в каждый момент времени составляет O(n3), поэтому он может обрабатывать только небольшие сцены с сотнями точек.

В том же году мастера Дэвисона Мюррей и Кляйн в Оксфорде опубликовали систему SLAM в реальном времени PTAM (Parallel Tracking and Mapping) [8] и с открытым исходным кодом (как показано ниже), которая является первой системой SLAM монокулярного зрения, основанной на ключевом кадре. BA, а затем в 2009 г. Он был портирован на мобильный терминал в 2009 г. [9]. PTAM сделал инновационный дизайн в архитектуре. Он разделяет два потока отслеживания положения (Tracking) и отображения (Mapping) параллельно. Это была новаторская работа в то время. Впервые все почувствовали, что оптимизация карта может быть интегрирована в вычисления в реальном времени, и вся система может работать. Этот дизайн был имитирован более поздними SLAM в реальном времени (такими как ORB-SLAM) и стал стандартом в современных системах SLAM. В частности, поток отслеживания позы не изменяет карту, а только использует известную карту для быстрого отслеживания; в то время как поток сопоставления фокусируется на создании, обслуживании и обновлении карты. Несмотря на то, что построение потока карты занимает немного больше времени, поток отслеживания позы по-прежнему имеет карту для отслеживания (если устройство все еще находится в пределах построенной карты). Кроме того, PTAM также реализует стратегию потери релокации: если количество успешных точек сопоставления (Inliers) недостаточно (например, из-за размытия изображения, быстрого движения и т. д.), слежение не удается, и тогда начинается релокация [10]. ] — объединение текущего кадра с существующими, сравниваются миниатюры ключевых кадров и выбирается наиболее похожий ключевой кадр в качестве предсказания ориентации текущего кадра.

В 2011 году Ньюкомб и др. предложили монокулярную систему DTAM [11], наиболее примечательной особенностью которой является то, что она может восстанавливать 3D-модель сцены в режиме реального времени (как показано на рисунке ниже). Основываясь на 3D-модели, DTAM может не только позволить виртуальным объектам в приложениях AR физически сталкиваться со сценой, но и обеспечить стабильное прямое отслеживание в случае отсутствия функций, размытых изображений и т. д. DTAM использует Inverse Depth [12] для выражения глубины. Как показано на рисунке ниже, DTAM дискретизирует пространство решений в трехмерную сетку M × N × S, где M × N — разрешение изображения, а S — обратное разрешение по глубине.Прямой метод используется для построения энергии Функция оптимального решения. DTAM обладает хорошей устойчивостью к отсутствующим функциям и размытым изображениям, но поскольку DTAM восстанавливает плотную карту глубины для каждого пикселя и использует глобальную оптимизацию, объем вычислений очень велик.Даже с ускорением GPU эффективность расширения модели все еще ниже.

В 2013 году Энгель и др. из группы машинного зрения ТУМ предложили систему визуальной одометрии (VO), также основанную на прямом методе, который был расширен до визуальной системы SLAM LSD-SLAM [13] в 2014 году и имел открытый код. По сравнению с DTAM, LSD-SLAM восстанавливает только полуплотную карту глубины (как показано на рисунке ниже), а глубина каждого пикселя рассчитывается независимо, что позволяет достичь высокой вычислительной эффективности. LSD-SLAM использует ключевые кадры для выражения сцены, и каждый ключевой кадр K содержит изображение Ik, обратную карту глубины Dk и дисперсию Vk обратной глубины. Система предполагает, что обратное значение глубины каждого пикселя x соответствует распределению Гаусса N(Dk(x),Vk(x)). Поток переднего плана LSD-SLAM использует прямой метод для вычисления относительного движения между текущим кадром t и ключевым кадром k. Фоновый поток ищет точку пикселя x (значительная область градиента) в каждом полуплотном извлечении ключа кадр вдоль эпиполярной линии в It.Соответствующая точка Ik (x), получить новое обратное наблюдение глубины и его дисперсию, а затем использовать EKF для обновления Dk и Vk. LSD-SLAM использует оптимизацию графа поз для замыкания циклов и обработки крупномасштабных сцен. В 2015 году Энгель и др. расширили функциональность LSD-SLAM для поддержки бинокулярных камер [14] и панорамных камер [15].

В 2014 году Форстер и др. из группы восприятия роботов Цюрихского университета предложили систему SVO с открытым исходным кодом [16], которая использует прямой метод (выравнивание изображения на основе разреженной модели) для разреженных функциональных блоков для получения положения камеры. , а затем в соответствии с предположением об инвариантности светимости строит оптимизационное уравнение для оптимизации прогнозируемых положений признаков (выравнивание признаков) и, наконец, оптимизирует положение и структуру (BA только для движения и BA только для структуры). Фильтр глубины строится с использованием специальной байесовской сети [17], которая обновляет глубину. Одним из выдающихся преимуществ SVO является его высокая скорость.Поскольку он использует разреженные блоки изображений и не требует выполнения вычислений дескриптора признаков, он может достигать очень высоких скоростей (встроенный автором ARM Cortex A9 4-ядерный 1.6. Скорость 55 кадров в секунду может быть достигнута на процессорной платформе Ghz) но недостатки СВО тоже очевидны. Она не учитывает релокацию и замкнутость. Это не SLAM система в полном смысле. После потери она в основном зависает, и ее Фильтр глубины сходится Медленнее, результаты в значительной степени зависят от точной оценки позы; В 2016 году Forster улучшил SVO до версии SVO2.0 [18], в новой версии были внесены значительные улучшения, улучшено отслеживание краев и учтена предварительная информация о движении IMU. , он поддерживает камеры с большим полем зрения (например, камеры «рыбий глаз» и отражающие панорамные камеры) и многокамерные системы, которые в настоящее время также являются исполняемыми версиями с открытым исходным кодом [19]; ​​стоит отметить, что Фостер также выводит теория VIO в деталях и связанная с ней литература [20] стали теоретическим руководством для последующих систем SLAM fusion IMU, таких как следующие системы, такие как Visual Inertial ORBSLAM.

В 2015 г. Мур-Артал и др. предложили монокуляр ORB-SLAM с открытым исходным кодом [21], а в 2016 г. он был расширен до ORB-SLAM2 [22], который поддерживает бинокулярные и RGBD-сенсоры. и имеет лучшую производительность.Одна из хороших визуальных систем SLAM и одна из лучших среди всех систем с открытым исходным кодом, которые представили результаты в наборе данных KITTI [23]. ORB-SLAM продолжает структуру алгоритма PTAM, добавляет отдельный поток обнаружения обратной связи и улучшает большинство компонентов в структуре.Основные моменты резюмируются следующим образом: 1) ORB-SLAM отслеживание, сопоставление, воспроизведение. используется в каждом звене позиционирования и обнаружения обратной связи [24], так что установленную карту можно сохранять, загружать и использовать повторно; 2) благодаря использованию графа видимости операции отслеживания и отображения сосредоточены в локальном взаимном область видимости, он может реализовать работу крупномасштабной сцены в реальном времени независимо от размера общей карты; 3) унифицированная модель словесного мешка BoW используется для перемещения и обнаружения с обратной связью, и устанавливается индекс для улучшить скорость обнаружения; 4) исправлена ​​недостаточность PTAM, который можно выбрать только вручную для инициализации из планарных сцен, и предложена новая стратегия автоматической робастной инициализации системы, основанная на выборе модели, которая обеспечивает надежную автоматическую инициализацию из планарных или не- плоскостные сцены. Позже Мур-Артал расширил систему до формы Visual Inertial ORB-SLAM [25], которая интегрирует информацию IMU, используя метод предварительной интеграции, предложенный в статье Фостера [], процесс инициализации IMU и визуальную информацию.Совместная оптимизация .

В 2016 году автор LSD-SLAM Энгель и др. из группы машинного зрения TUM предложили систему DSO [26]. Система представляет собой новую визуальную одометрию, основанную на прямом методе и разреженном методе, которая сочетает в себе модель минимизации фотометрической ошибки и совместный метод оптимизации параметров модели. Чтобы соответствовать производительности в реальном времени, изображение не сглаживается, а выполняется однородная дискретизация всего изображения. Вместо обнаружения ключевых точек и вычисления дескриптора функции DSO производит выборку пикселей с градиентами интенсивности по всему изображению, включая края на белых стенах и пиксели, интенсивность которых изменяется плавно. Кроме того, DSO предлагает полный метод фотометрической калибровки, учитывающий влияние времени экспозиции, виньетирования объектива и нелинейных функций отклика. Система протестирована на трех наборах данных: TUM monoVO, EuRoC MAV и ICL-NUIM, и показала высокую точность и надежность отслеживания.

В 2017 году исследовательская группа г-на Шэнь Шаоцзе из Гонконгского университета науки и технологии предложила систему VINS, которая объединяет IMU и визуальную информацию [27], а также открыла коды версий для мобильных телефонов и Linux. Эта система может работать на устройствах iOS, чтобы обеспечить функции точного позиционирования для приложений дополненной реальности на мобильных телефонах.В то же время система также применяется для управления дроном и добилась хороших результатов. VINS-Mobile использует метод оптимизации скользящего окна для завершения слияния зрения и IMU с помощью положения кватерниона и имеет модуль обнаружения с обратной связью на основе BoW, а накопленная ошибка исправляется в режиме реального времени через глобальный график положения.


Рекомендуемое чтение

Говоря о технологии SLAM (Часть 2)

Научите, придет салон Serverless или нет?


Эта статья была разрешена автором для публикации в сообществе Tencent Cloud Technology Community, укажите это при перепечатке.первоисточник