exponenta event banner

Построитель карт SLAM

Построение 2-D сеток с использованием SLAM на основе лидара

Описание

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

Чтобы использовать приложение:

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

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

Используйте настройки SLAM для настройки параметров алгоритма SLAM. Указаны значения по умолчанию, но для конкретных датчиков и данных может потребоваться настройка этих параметров. Наиболее важным значением для настройки является порог замыкания цикла. Дополнительные сведения см. в разделе Настройка параметров SLAM.

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

Щелкните Инкрементное совпадение, чтобы изменить относительную позу выбранного кадра и выровнять сканирование с предыдущим сканированием. Щелкните Замыкание контура (Loop Closure), чтобы изменить или проигнорировать обнаруженное замыкание контура для текущего кадра. Используйте ползунок внизу, чтобы прокрутить назад области, где совпадение сканирования или замыкания петель неточны. Можно изменить любое количество сканирований или замыканий цикла. Дополнительные сведения см. в разделе Изменение инкрементных сканирований и замыканий петель.

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

Если вы удовлетворены тем, как выглядит карта, щелкните Экспорт в ОккупасGrid, чтобы либо экспортировать карту в m-файл, либо сохранить карту в рабочей области. Карта выводится как 2-D вероятностная сетка занятости в occupancyMap объект.

Можно открыть существующие сеансы приложения, сохраненные с помощью команды Открыть сеанс. Находясь на вкладке «Построитель карт», можно сохранить ход выполнения в m-файле с помощью команды «Сохранить сеанс».

SLAM Map Builder app

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

  • MATLAB ® Toolstrip: На вкладке «Приложения» в разделе «Проектирование и анализ системы управления» выберите «Построитель карт SLAM».

  • Окно команды MATLAB: Ввод slamMapBuilder

Примеры

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

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

Загрузить данные сканирования Lidar

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

load slamLidarScans.mat

Открыть приложение

На вкладке «Приложения» в разделе «Проектирование и анализ системы управления» выберите «Построитель карт SLAM».

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

slamMapBuilder

Импорт сканирований Lidar

Щелкните Импорт > Импорт из рабочей области для загрузки сканирований. Данные, сохраненные как rosbag, могут быть загружены с помощью лицензии ROS Toolbox.

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

На панели инструментов установите для параметра «Понизить образец» значение (%) значение 10. Понижение дискретизации равномерно отсчетов из данных для уменьшения времени вычисления алгоритма SLAM. В этом примере 10% - каждое пятое сканирование. Нажмите кнопку «Применить».

Используйте ползунок или клавиши со стрелками внизу для предварительного просмотра сканирований.

Закончив импорт, нажмите кнопку Закрыть.

Настройка параметров SLAM

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

Построение карты

После фильтрации данных и установки параметров алгоритма SLAM нажмите кнопку Построить. Приложение начинает обработку сканирований для построения карты. Вы должны видеть, как ползунок продвигается и сканирование накладывается на карту. Расчетная траектория робота нанесена на ту же карту сканирования. Совпадения инкрементного сканирования отображаются на панели Инкрементное совпадение. При обнаружении замыкания цикла на панели Замыкание цикла (Loop Closure) отображаются два сканирования, наложенных друг на друга.

Настройка совпадений сканирования или замыканий петель

В любое время в процессе построения, если вы заметили, что карта искажена, или если инкрементное совпадение или замыкание цикла не отображается, щелкните Пауза (Pause), чтобы выбрать сканирование для корректировки. Сканирование можно изменить и в конце процесса построения. Перейдите с помощью клавиш со стрелками или ползунка к точке в файле, в которой происходит искажение. Нажмите кнопки Инкрементное совпадение или Замыкание цикла, чтобы настроить отображаемые в данный момент положения сканирования. В этом разделе неправильное замыкание контура является искусственным и только в целях иллюстрации.

Нажмите кнопку Замыкание контура (Loop Closure). Откроется вкладка для изменения положения замыкания контура относительно.

Чтобы полностью игнорировать замыкание контура, щелкните Игнорировать (Ignore). В противном случае вручную измените относительную позу сканирования до тех пор, пока сканирование не выстроится в линию.

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

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

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

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

Щелкните Экспортировать сетку занятости, чтобы получить окончательную карту занятости среды в виде occupancyMap объект. Укажите имя переменной для экспорта карты в рабочую область. Можно создать карту из подмножества сканирований, прокручивая ее назад к нужному кадру перед экспортом и выбрав «Вверх» для текущего выбранного сканирования.

Звонить show на сохраненной карте для визуализации карты занятости.

show(myOccMap)

Можно также сохранить сеанс приложения SLAM Map Builder с помощью кнопки Сохранить сеанс. Приложение записывает текущее состояние приложения в .mat который может быть загружен позже с помощью команды «Открыть сеанс».

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

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

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

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

slamMapBuilder(sessionFile) открывает приложение SLAM Map Builder из сохраненного имени файла сеанса, sessionFile. Файл сеанса приложения создается с помощью кнопки «Сохранить сеанс» на панели инструментов приложения.

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

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

Подробнее

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

См. также

Функции

Объекты

Представлен в R2019b