exponenta event banner

Обзор SLAM облака точек

Облако точек - это набор точек в 3-D пространстве. Облака точек обычно получаются с 3-D сканеров, таких как лидар или устройство Kinect ®. Они применяются в роботизированной навигации и восприятии, оценке глубины, стереовидении, визуальной регистрации и усовершенствованных системах помощи водителю (ADAS ).

Регистрация облака точек - это процесс выравнивания двух или более 3-D облаков точек одной и той же сцены в общей системе координат. Картирование - это процесс построения карты окружающей среды вокруг робота или датчика. Можно использовать регистрацию и сопоставление для реконструкции сцены 3-D или построения карты дорожного полотна для локализации. Хотя регистрация обычно предшествует отображению, существуют другие приложения для регистрации, которые могут не требовать отображения, такие как отслеживание деформируемого движения. Алгоритмы Computer Vision Toolbox™ обеспечивают функции для регистрации и отображения облака точек. Рабочий процесс состоит из предварительной обработки, регистрации, коррекции дрейфа и выравнивания облаков точек.

Рабочий процесс сопоставления и локализации

Выполните следующие действия, чтобы выполнить регистрацию и сопоставление облака точек для последовательности облаков точек. Затем можно локализовать транспортное средство на предварительно созданной карте.

  1. Облака точек предварительной обработки - чтобы подготовить облака точек к регистрации, выполните их понижение и удалите нежелательные элементы и шум.

  2. Зарегистрировать облака точек (Register Point Clouds) - регистрирует каждое облако точек по сравнению с предшествующим облаком. Эти регистрации используются в одометрии, которая является процессом накопления оценки регистрации в последовательных кадрах. Использование только одометрии может привести к дрейфу между измеренными и наземными позами истины.

  3. Обнаружение петель (Detect Loops) - обнаружение замыкания петли для минимизации дрейфа. Обнаружение замыкания контура - это процесс идентификации возврата датчика в ранее посещаемое место, которое формирует контур в траектории датчика.

  4. Правильный дрейф (Correct Drift) - используйте обнаруженные циклы для минимизации дрейфа через оптимизацию графа позы, которая состоит из инкрементного построения графа позы путем добавления узлов и рёбер, а затем оптимизации графа позы, как только вы обнаружите достаточное количество циклов. Оптимизация графика позы приводит к набору оптимизированных абсолютных поз.

  5. Собрать карту - собрать карту облака точек путем выравнивания зарегистрированных облаков точек с использованием их оптимизированных абсолютных позиций. Для локализации можно использовать предварительно созданную карту облака точек, которая является процессом определения местоположения транспортного средства в пределах карты.

  6. Локализовать - найти позу транспортного средства на основе собранной карты.

Управление данными для сопоставления и локализации

Эти объекты используются для управления данными, связанными с процессом регистрации и сопоставления облака точек.

  • pointCloud object - объект-облако точек хранит набор точек, расположенных в 3-D пространстве. В нем используются эффективные стратегии индексации для выполнения поиска ближайшего соседа, которые используются функциями предварительной обработки и регистрации облака точек.

  • rigid3d object - объект жесткого 3-D хранит 3-D жесткое геометрическое преобразование. В этом рабочем процессе он представляет относительные и абсолютные позы.

  • pcviewset object - объект набора видов облака точек управляет данными, связанными с процессом одометрии и картографирования. Данные организуются как набор представлений и попарно соединяются между представлениями. Он также строит и обновляет график позы.

    • Каждый вид состоит из облака точек и связанного с ним абсолютного преобразования позы. Каждое представление имеет уникальный идентификатор в наборе представлений и образует узел графа позы.

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

  • pcmapndt object - объект карты NDT хранит сжатое, эффективное с точки зрения памяти представление карты для локализации. Объект преобразует карту облака точек в набор вокселей (3-D box), каждый воксель представлен 3-D нормальным распределением.

Облака точек предварительной обработки

Предварительная обработка включает удаление нежелательных элементов и шумов из точечных облаков и их сегментирование или понижение. Предварительная обработка может включать в себя следующие функции:

  • pcdownsample - Понизить оценку облака точек.

  • pcsegdist или segmentLidarData - сегментировать данные облака точек на кластеры, а затем использовать select для выбора нужных точек.

  • pcfitplane или segmentGroundFromLidarData - сегментировать плоскость заземления, затем использовать select для выбора нужных точек.

  • pcdenoise - Удалить нежелательный шум из облака точек.

Регистрировать облака точек

Вы можете использовать pcregisterndt, pcregistericp, pcregistercorr, или pcregistercpd для регистрации движущегося облака точек в фиксированном облаке точек. Алгоритмы регистрации, используемые этими функциями, основаны на алгоритме преобразования с нормальным распределением (NDT), алгоритме итеративной ближайшей точки (ICP), алгоритме фазовой корреляции и алгоритме дрейфа когерентной точки (CPD) соответственно. Дополнительные сведения об этих алгоритмах см. в разделе Ссылки.

При регистрации облака точек выберите тип преобразования, представляющий изменение объектов в сцене между фиксированными и движущимися облаками точек.

ПреобразованиеОписание
ТвердыйЖесткое преобразование сохраняет форму и размер объектов в сцене. Объекты в сцене могут подвергаться перемещениям, поворотам или и тому и другому. Одно и то же преобразование применяется ко всем точкам.
АффинноАффинное преобразование позволяет объектам сдвигать и изменять масштаб в дополнение к перемещениям и вращениям.
НетвердыйНежесткое преобразование позволяет изменять форму объектов в сцене. Точки подвергаются различным преобразованиям. Поле смещения представляет преобразование.

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

Метод регистрации (функция)Тип преобразованияОписаниеЭксплуатационные характеристики
pcregisterndtТвердый
  • Метод локальной регистрации, основанный на начальной оценке преобразования.

  • Устойчивость к отклонениям.

  • Лучше с точечными облаками разной разрешающей способности и плотности.

Предоставьте начальную оценку, чтобы алгоритм мог быстрее сходиться.
pcregistericpТвердый

Метод локальной регистрации, основанный на начальной оценке преобразования.

pcregistercorrТвердый
  • Метод регистрации, который опирается на сетку занятости, присваивая значения вероятности сетке на основе значений координат Z точек в каждой ячейке сетки.

  • Наилучшим образом подходит для наземной навигации транспортных средств

Уменьшите размер сеток занятости, чтобы уменьшить вычислительные требования функции.
pcregistercpdЖесткие, аффинные и нежесткие

Глобальный метод, не основанный на первоначальной оценке преобразования

Самый медленный метод регистрации. Не рекомендуется для построения карты.

Регистрация текущего (движущегося) облака точек по сравнению с предыдущим (фиксированным) облаком точек возвращает rigid3d преобразование, представляющее оценочную относительную позу движущегося облака точек в кадре фиксированного облака точек. Составление этого относительного преобразования позы со всеми ранее накопленными относительными преобразованиями позы дает оценку абсолютного преобразования позы.

Добавьте в набор видов вид, образованный движущимся облаком точек, и его абсолютное преобразование. Можно добавить вид в pcviewset с использованием addView функция.

Добавьте кромку одометрии, кромку, определяемую соединением между последовательными видами, образованными относительным преобразованием позы между облаками фиксированной и движущейся точек, в pcviewset с использованием addConnection функция.

Советы по регистрации

  • Местные методы регистрации, такие как методы, использующие неразрушающий контроль или ПМС (pcregisterndt или pcregistericp, соответственно), требуют первоначальных оценок для лучшей производительности. Для получения первоначальной оценки используйте другой датчик, такой как инерциальный измерительный блок (IMU) или другие формы одометрии.

  • Для повышения точности результатов регистрации увеличьте значение для 'MaxIterations' аргумент или уменьшение значения для 'Tolerance' аргумент. Изменение этих значений таким образом, следовательно, замедляет скорость регистрации.

  • Рассмотрите возможность понижающей дискретизации облаков точек с помощью pcdownsample, перед использованием pcregisterndt, pcregistericp, или pcregistercpd, для повышения эффективности и точности регистрации.

  • Деноизирование с использованием pcdenoise перед регистрацией может повысить точность регистрации, но может замедлить время выполнения рабочего процесса построения карты.

Обнаружение петель

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

  1. Используйте scanContextDescriptor функция для извлечения дескрипторов контекста сканирования, которые фиксируют отличительность представления, из двух облаков точек в наборе представлений.

  2. Используйте scanContextDistance для вычисления расстояния дескриптора между двумя дескрипторами контекста сканирования. Если расстояние между двумя дескрипторами ниже заданного порога, то это потенциальное замыкание контура.

  3. Зарегистрируйте облака точек, чтобы определить относительное преобразование позы между представлениями и среднеквадратической ошибкой (RMSE) евклидова расстояния между выровненными облаками точек. Используйте RMSE для фильтрации недопустимых замыканий цикла. Относительное преобразование позы представляет связь между двумя представлениями. Кромка, образованная соединением между несосудистыми видами, называется кромкой замыкания петли. Можно добавить подключение к pcviewset с использованием addConnection функция.

Альтернативный подход к обнаружению замыкания контура на основе согласования сегментов см. в findPose(Панель инструментов Lidar).

Правильный дрейф

pcviewset объект внутренне обновляет график позы по мере добавления видов и соединений. Чтобы минимизировать дрейф, выполните оптимизацию графика позы с помощью optimizePoses функция, после обнаружения достаточного замыкания контура. optimizePoses функция возвращает pcviewset с оптимизированными абсолютными преобразованиями позы для каждого вида.

Вы можете использовать createPoseGraph функция для возврата графика позы в виде MATLAB ®digraph объект. Алгоритмы графика в MATLAB можно использовать для проверки, просмотра или изменения графика позы. Используйте optimizePoseGraph(Панель инструментов навигации), чтобы оптимизировать измененный график позы, а затем использовать updateView для обновления позиций в наборе представлений.

Собрать карту

Используйте pcalign создание карты облаков точек с использованием облаков точек из набора видов и их оптимизированных абсолютных преобразований положения. Теперь эту карту облака точек можно использовать для онлайн-локализации с помощью алгоритма локализации NDT.

Локализация транспортного средства на карте

Преобразуйте предварительно созданную карту облака точек в формат карты неразрушающего контроля с помощью pcmapndt объект. pcmapndt объект сохраняет карту в сжатом воксельном представлении, которое можно сохранить на диск и использовать для локализации в сети. Используйте findPose для локализации на карте.

Альтернативные рабочие процессы

Альтернативные рабочие процессы для построения и локализации карт доступны в Computer Vision Toolbox, Navigation Toolbox™ и Lidar Toolbox™.

  • Визуальный SLAM с использованием функций Computer Vision Toolbox - расчет положения и ориентации камеры относительно ее окружения с одновременным отображением среды. Дополнительные сведения см. в разделе Обзор Visual SLAM.

  • Построение карты занятости с использованием функций панели инструментов навигации - построение карты занятости из облаков точек. Для получения дополнительной информации посмотрите, Выполняют ХЛОПОК Используя 3D Лидэр-Пойнт-Клудс (Навигационный Комплект инструментов).

  • Сопоставление сегментов с помощью элементов панели инструментов Lidar - построение отображения сегментов и элементов с помощью pcmapsegmatch (Lidar Toolbox) объект. Используйте findPose Функция (Lidar Toolbox) для обнаружения и локализации замыкания контура. Пример этого подхода см. в примере «Построение карты и локализация с использованием сопоставления сегментов» (панель инструментов Lidar). В таблице показаны сходства и различия между pcmapndt и pcmapsegmatch (Lidar Toolbox) представления карты.

    Технологический процессpcmapndtpcmapsegmatch
    АлгоритмПреобразование нормальных распределений (NDT)SegMatch - подход сопоставления сегментов
    ОтображениеСначала создайте карту - пошаговое построение карты с помощью pcviewset. Затем используйте pcalign для сборки карты и преобразования предварительно созданной карты в представление карты NDT.Пошаговое построение карты с помощью pcmapsegmatch(Панель инструментов Lidar) - Добавление видов в pcviewset (с использованием addView) и pcmapsegmatch(Панель инструментов Lidar) (с использованием addView (Lidar Toolbox)) для каждой проверки облака точек. Обнаружение замыканий шлейфа с помощью findPose (Lidar Toolbox) и исправить для накопленного дрейфа с optimizePoses.
    Сходство локализации

    Выберите подкарту для локализации, а затем найдите позу для локализации, используя один из следующих вариантов:

    Разница в локализацииОпирается на оценку позы.Не полагается на оценку позы.
    ВизуализацияВизуализация карты или выбранной подкарты с помощью show функции pcmapndt объект или show (Lidar Toolbox) функции pcmapsegmatch (Lidar Toolbox) объект.

Ссылки

[1] Мироненко, Андрей и Ксубо Сонг. «Регистрация набора точек: дрейф когерентной точки». IEEE Transactions on Pattern Analysis and Machine Intelligence 32, No 12 (декабрь 2010): 2262-75. https://doi.org/10.1109/TPAMI.2010.46

[2] Чен, Ян и Жерар Медиони. «Моделирование объектов путем регистрации изображений нескольких диапазонов». Image and Vision Computing 10, No 3 (апрель 1992): 145-55. https://doi.org/10.1016/0262-8856 (92) 90066-C.

[3] Бесл, П.Дж. и Нил Д. МакКей. «Метод регистрации фигур 3-D». IEEE Transactions on Pattern Analysis and Machine Intelligence 14, No 2 (февраль 1992 года): 239-56. https://doi.org/10.1109/34.121791.

[4] Бибер, П. и В. Штрассер. «Преобразование нормальных распределений: новый подход к сопоставлению лазерного сканирования». Международная конференция IEEE/RSJ по интеллектуальным роботам и системам (IROS 2003) (Cat. № 03CH37453), 3:2743–48. Лас-Вегас, Невада, США: IEEE, 2003. https://doi.org/10.1109/IROS.2003.1249285.

[5] Магнуссон, Мартин. «Преобразование трехмерных нормальных распределений - эффективное представление для регистрации, анализа поверхности и обнаружения петель». Кандидатская диссертация, университет Эребру, 2009 год. http://urn.kb.se/resolve?urn=urn: nbn: se: oru: diva-8458 urn: nbn: se: oru: diva-8458

[6] Димитриевский, Мартин, Дэвид Ван Хамм, Питер Веелаерт и Вильфрид Филипс. «Надежное сопоставление карт занятости для одометрии в автономных транспортных средствах». В трудах 11-й Совместной конференции по компьютерному зрению, визуализации и теории и приложениям компьютерной графики, 626-33. Рим, Италия: SCITEPRESS - Научно-технические публикации, 2016. https://doi.org/10.5220/0005719006260633.

См. также

Функции

Объекты

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