SLAM Map Builder

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

Описание

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

Примечание

У вас должен быть ROS Toolbox, чтобы использовать это приложение.

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

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

Можно также задать сканирования и положения одометрии, которые предварительно отфильтрованы в рабочей области путем вызова 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

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

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

Примеры

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

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

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

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

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

slamMapBuilder

Импортируйте Сканирования Лидара из rosbag

Нажмите Import> Import от rosbag, чтобы загрузить rosbag. Обеспеченный rosbag, southend.bag, содержит лазерные сообщения сканирования. Выберите файл и открытый. Сканирования показывают во вкладке Import.

Во Вкладке Импорта задайте параметры импорта. Тема Лидара предварительно выобрана как /scan потому что это - единственный sensor_msgs/LaserScan тема найдена. Если одометрия доступна как tf дерево, выберите Use TF, и задайте Систему координат Лидара (система координат датчика) и Фиксированная Система координат (мировая система координат).

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

Нажмите Apply, чтобы применить параметры фильтрации.

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

Если вы сделаны, фильтруя, нажмите Close.

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

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

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

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

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

Нажмите кнопку 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 функция. Приложение открывается к вкладке 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

Для просмотра документации необходимо авторизоваться на сайте