SLAM Map Builder

Создайте 2-D карты сетки, используя SLAM на основе лидара

Описание

Приложение SLAM Map Builder загружает зарегистрированные сканы лидара и данные датчика одометрии, чтобы создать 2-D сетку заполнения с помощью алгоритмов одновременной локализации и картографии (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-файл или сохранить карту в рабочей области. Карта выводится как 2-D вероятностная сетка заполнения в 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, в разделе Control System Design and Analysis, нажмите SLAM Map Builder.

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

slamMapBuilder

Импорт сканов лидара

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

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

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

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

После завершения импорта нажмите кнопку Закрыть.

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

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

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

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

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

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

Нажмите кнопку «Замыкание цикла». Это открывает вкладку для изменения относительного положения замыкания цикла.

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

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

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

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

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

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

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

show(myOccMap)

Можно также сохранить сеанс приложения SLAM Map Builder с помощью кнопки «Сохранить сеанс». Приложение записывает текущее состояние приложения в .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