SLAM Map Builder

Создайте 2D карты сетки с помощью основанного на лидаре SLAM

Описание

Зарегистрированные сканы лидара загрузок приложения SLAM Map Builder и данные датчика одометрии, чтобы создать 2D сетку заполнения с помощью алгоритмов одновременной локализации и картографии (SLAM). Сопоставление инкрементальных сканов выравнивает и накладывает сканы, чтобы создать карту. Обнаружение закрытия цикла настраивает для смещения одометрии путем обнаружения ранее посещаемых местоположений и корректировки полной карты. Иногда, алгоритм сопоставления сканов и обнаружение закрытия цикла требуют ручной настройки. Используйте приложение, чтобы вручную сопоставить сканы и изменить закрытия цикла, чтобы улучшить полную точность карты. Можно также настроить настройки алгоритма SLAM, чтобы улучшить автоматическое создание карты.

Использовать приложение:

Чтобы загрузить rosbag файлы журнала, выберите Import> Import from rosbag. Выберите rosbag файл и нажмите Open. Это открывает вкладку Import. Для получения дополнительной информации смотрите Импорт и Фильтр rosbag.

Загружать данные из рабочей области, Import> Import from workspace. Выберите свои переменные Scans и Poses с помощью обеспеченных выпадающих списков. Можно также задать переменные в slamMapBuilder функция. Смотрите Программируемое Использование.

Используйте SLAM Settings, чтобы настроить настройки алгоритма SLAM. Значения по умолчанию обеспечиваются, но ваши определенные датчики и данные могут потребовать настройки этих настроек. Самым важным значением, чтобы настроиться является Loop Closure Threshold. Для получения дополнительной информации смотрите Мелодию Настройки SLAM.

Нажмите Build, чтобы начать процесс создания карты SLAM. Процесс создания сопоставляет сканы в карте с помощью сопоставления инкрементальных сканов, идентифицирует закрытия цикла при посещении предыдущих местоположений и настраивает положения. Нажмите Pause в любое время во время процесса создания карты, чтобы вручную сопоставить инкрементные сканы или изменить закрытия цикла.

Нажмите Incremental Match, чтобы изменить относительное положение текущей выбранной системы координат и сопоставить скан с предыдущим сканом. Нажмите Loop Closure, чтобы изменить или проигнорировать обнаруженное закрытие цикла для текущей системы координат. Используйте ползунок на нижней части, чтобы прокрутить назад к областям, где сопоставление сканов или закрытия цикла не точны. Можно изменить любое количество закрытий цикла или сканов. Для получения дополнительной информации смотрите, Изменяют Инкрементные Сканы и Закрытия Цикла.

После изменения вашей карты нажмите Sync, чтобы обновить все положения в карте скана. Этими двумя опциями под Sync является Sync, который ищет новые закрытия цикла или Sync Fast, который пропускает поиск в закрытии цикла и только обновляет карту скана. Для получения дополнительной информации смотрите Синхронизацию Карта.

Когда вы удовлетворены тем, как карта выглядит, нажмите Export to OccupancyGrid, чтобы или экспортировать карту в m-файл или сохранить карту в рабочей области. Карта выводится как 2D вероятностная сетка заполнения в occupancyMap объект.

Можно открыть существующие сеансы приложения, у вас есть сохраненное использование Open Session. Когда вы находитесь во вкладке Map Builder, можно сохранить прогресс в m-файл с помощью Save Session.

SLAM Map Builder app

Откройте приложение SLAM Map Builder

  • MATLAB® Панель инструментов: На вкладке Apps, под Control System Design and Analysis, нажимают SLAM Map Builder.

  • Командное окно MATLAB: введите slamMapBuilder

Примеры

развернуть все

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

Загрузите данные о скане лидара

Загрузите пример .mat файл в рабочую область, которая содержит переменную, scans, как массив ячеек lidarScan объекты.

load slamLidarScans.mat

Откройте приложение

Во вкладке Apps, в соответствии с Проектом Системы управления и Анализом, нажимают SLAM Map Builder.

Кроме того, можно вызвать slamMapBuilder функция:

slamMapBuilder

Импортируйте сканы лидара

Нажмите Import> Import из рабочей области, чтобы загрузить сканы. Данные, хранимые как rosbag, могут загрузиться с лицензией ROS Toolbox.

Выберите scans переменная в выпадающем списке Сканов.

На панели инструментов установите Downsample на (%) к 10. Субдискретизация равномерно выборок из данных, чтобы уменьшать время вычисления для алгоритма SLAM. В данном примере 10% являются каждым 5-м сканом. Нажмите Apply.

Используйте ползунок или клавиши со стрелками в нижней части, чтобы предварительно просмотреть сканы.

Если вы сделаны, импортировав, нажмите Close.

Настройте настройки SLAM

Алгоритм SLAM может быть настроен с помощью диалогового окна Настроек SLAM. Параметры должны быть настроены на основе ваших технических требований датчика, среды и вашего приложения. В данном примере увеличьте Порог Закрытия Цикла с 200 к 300. Этот увеличенный порог уменьшает вероятность принятия и использования обнаруженного закрытия цикла. Установите Интервал Оптимизации на 10. С каждым 10-м принятым закрытием цикла график положения оптимизирован с учетом дрейфа.

Создайте карту

После фильтрации ваших данных и установки настроек алгоритма SLAM, нажмите Build. Приложение начинает обрабатывать сканы, чтобы создать карту. Необходимо видеть, что ползунок прогрессирует и сканы, накладываемые в карте. Предполагаемая траектория робота построена на той же карте скана. Инкрементные соответствия скана показывают в Инкрементной панели Соответствия. Каждый раз, когда закрытие цикла обнаруживается, панель Закрытия Цикла показывает два скана, наложенные друг на друге.

Настройте соответствия скана или закрытия цикла

В любое время во время процесса сборки, если вы замечаете, карта искажена или инкрементное соответствие или взгляды закрытия цикла прочь, нажмите Pause, чтобы выбрать сканы для корректировки. Можно изменить сканы в конце процесса сборки также. Переместитесь по использованию клавиш со стрелками или ползунка к точке в файле, где искажение сначала происходит. Нажмите кнопки Incremental Match или Loop Closure, чтобы настроить в настоящее время отображенные положения скана. В этом разделе плохое закрытие цикла искусственно и только в целях рисунка.

Нажмите кнопку Loop Closure. Это открывает вкладку для изменения положения родственника закрытия цикла.

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

Нажмите Pan Scan или Rotate Scan, затем перетащите на рисунке, чтобы сопоставить эти два скана. Нажмите кнопку Принять когда вы закончите. Можно сделать это для нескольких сканов.

После того, как вы измените свои положения скана для инкрементных соответствий и закрытий цикла, нажмите Sync, чтобы применить изменения. SyncFast обновляет карту, не ища новые закрытия цикла и уменьшает время вычисления, если вы уже обработали все сканы.

Экспортируйте сетку заполнения

Если вы синхронизировали свои изменения и закончили создавать карту, необходимо видеть полностью наложенную карту скана с траекторией робота.

Нажмите Export Occupancy Grid, чтобы получить итоговую карту заполнения вашей среды как occupancyMap объект. Задайте имя переменной, чтобы экспортировать карту в рабочую область. Можно создать карту из подмножества сканов путем прокрутки назад к желаемой системе координат прежде, чем экспортировать и выбор Up к в настоящее время выбранному скану.

Вызовите show на сохраненной карте, чтобы визуализировать карту заполнения.

show(myOccMap)

Можно также сохранить сеанс приложения SLAM Map Builder с помощью кнопки Save Session. Приложение пишет текущее состояние приложения к .mat файл, который может быть загружен позднее с помощью Открытия сессии.

Связанные примеры

Программируемое использование

развернуть все

slamMapBuilder(bag) открывает приложение SLAM Map Builder и импортирует rosbag файл журнала, заданный в bag, BagSelection объект создал использование rosbag (ROS Toolbox) функция. Приложение открывается к вкладке Import, чтобы отфильтровать данные о датчике в вашем rosbag.

slamMapBuilder(sessionFile) открывает приложение SLAM Map Builder от сохраненного имени файла сеанса, sessionFile. Файл сеанса приложения создается через кнопку Save Session в панели инструментов приложения.

slamMapBuilder(scans) открывает приложение SLAM Map Builder и импортирует сканы, заданные в scans, массив ячеек lidarScan объекты. Приложение принимает, что вы предварительно отфильтровали свои сканы, и пропускает процесс импорта. Нажмите Build, чтобы начать создавать карту.

slamMapBuilder(scans,poses) открывает приложение SLAM Map Builder и импортирует сканы и положения. scans задан как массив ячеек lidarScan объекты. poses матрица [x y theta] векторы, которые соответствуют положениям scans. Приложение принимает, что вы предварительно отфильтровали свои сканы, и пропускает процесс импорта. Нажмите Build, чтобы начать создавать карту.

Больше о

развернуть все

Смотрите также

Функции

Объекты

Введенный в R2019b