exponenta event banner

matchScansGrid

Оценка позы между двумя сканированиями лидара с помощью поиска по сетке

Описание

пример

pose = matchScansGrid(currScan,refScan) находит относительную позу между привязкой lidarScan и ток lidarScan с использованием поиска на основе сетки. matchScansGrid преобразует пары сканирования лидара в вероятностные сетки и находит позу между двумя сканированиями, коррелируя их сетки. Функция использует стратегию ветвления и ограничения для ускорения вычислений в больших дискретизированных окнах поиска.

[pose,stats] = matchScansGrid(___) возвращает дополнительные статистические данные о результатах проверки с использованием предыдущих входных аргументов.

[___] = matchScansGrid(___,Name,Value) указывает параметры, использующие один или несколько Name,Value аргументы пары. Например, 'InitialPose',[1 1 pi/2] задает начальную оценку позы для сопоставления сканирования.

Примеры

свернуть все

Выполните сопоставление сканирования с помощью поиска по сетке для оценки позы между двумя лазерными сканированиями. Создайте вероятностную сетку из сканирований и оцените разницу между этими сетками.

Загрузите данные лазерного сканирования. Эти два сканирования получены от фактического лидарного датчика с изменениями в позе робота и хранятся как lidarScan объекты.

load laserScans.mat scan scan2
plot(scan)
hold on
plot(scan2)
hold off

Figure contains an axes. The axes with title LiDAR Scan contains 2 objects of type line.

Использовать matchScansGrid для оценки позы между двумя сканированиями.

relPose = matchScansGrid(scan2,scan);

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

scan2Tformed = transformScan(scan2,relPose);
plot(scan)
hold on
plot(scan2Tformed)
hold off

Figure contains an axes. The axes with title LiDAR Scan contains 2 objects of type line.

Входные аргументы

свернуть все

Текущие показания сканирования лидара, указанные как lidarScan объект.

Сканирование лидара может содержать Inf и NaN значения, но алгоритм игнорирует их.

Ссылочные показания сканирования лидара, указанные как lidarScan объект.

Сканирование лидара может содержать Inf и NaN значения, но алгоритм игнорирует их.

Аргументы пары «имя-значение»

Укажите дополнительные пары, разделенные запятыми Name,Value аргументы. Name является именем аргумента и Value - соответствующее значение. Name должен отображаться внутри кавычек. Можно указать несколько аргументов пары имен и значений в любом порядке как Name1,Value1,...,NameN,ValueN.

Пример: 'InitialPose',[1 1 pi/2]

Начальное предположение о текущей позе относительно эталонного лазерного сканирования, определяемого как разделенная запятыми пара, состоящая из 'InitialPose' и [x y theta] вектор. [x y] - перевод в метрах и theta - поворот в радианах.

Ячейки сетки на метр, указанные как разделенная запятыми пара, состоящая из 'Resolution' и положительное целое число. Точность результата сопоставления сканирования точна вплоть до размера ячейки сетки.

Максимальный диапазон лидарного датчика, определяемый как разделенная запятыми пара, состоящая из: 'MaxRange' и положительный скаляр.

Диапазон поиска для трансляции, указанный как разделенная запятыми пара, состоящая из 'TranslationSearchRange' и [x y] вектор. Эти значения определяют окно поиска в метрах вокруг начальной оценки перевода, приведенной в InitialPose. Если InitialPose дано как [x0 y0], то координаты окна поиска [x0-x x0+x] и [y0-y y0+y]. Этот параметр используется только в том случае, если InitialPose указывается.

Диапазон поиска для поворота, указанный как разделенная запятыми пара, состоящая из 'RotationSearchRange' и положительный скаляр. Это значение определяет окно поиска в радианах вокруг начальной оценки поворота, приведенной в InitialPose. Если InitialPose поворот дан как th0, то окно поиска [th0-a th0+a], где a - диапазон поиска поворота. Этот параметр используется только в том случае, если InitialPose указывается.

Выходные аргументы

свернуть все

Позиция текущего сканирования относительно эталонного сканирования, возвращаемого как [x y theta] вектор, где [x y] - перевод в метрах и theta - поворот в радианах.

Сканировать статистику соответствия, возвращенную в виде структуры со следующим полем:

  • Score - Числовой скаляр, представляющий оценку при выполнении сопоставления сканирования. Эта оценка представляет собой оценку вероятности того, что преобразованное текущее сканирование соответствует эталонному сканированию. Score всегда неотрицательно. Более крупные оценки указывают на лучшее совпадение, но значения варьируются в зависимости от используемых данных лидара.

  • Covariance - Оцененная ковариация, представляющая уверенность вычисленной относительной позы, возвращаемой в виде матрицы 3 на 3.

Ссылки

[1] Хесс, Вольфганг, Деймон Колер, Хольгер Рапп и Даниэль Андор. «Замыкание петли в режиме реального времени в 2D LIDAR SLAM.» 2016 Международная конференция IEEE по робототехнике и автоматизации (ICRA). 2016.

Расширенные возможности

Создание кода C/C + +
Создайте код C и C++ с помощью MATLAB ® Coder™

.

См. также

Функции

Классы

  • (Панель инструментов навигации)
Представлен в R2020b