exponenta event banner

Выполнение задач для робота-складчика

В этом примере показано, как выполнить путь без препятствий для мобильного робота между тремя местоположениями на данной карте. Ожидается, что робот посетит три места на складе: зарядную станцию, погрузочную станцию и место выгрузки. Последовательность посещения этих местоположений определяется планировщиком. Планировщик предоставляет каждому роботу целевую позу для навигации. Робот планирует путь и использует контроллер Pure Purchasion для следования ППМ на основе текущей позы робота. Блок кинематической модели дифференциального привода моделирует упрощенную кинематику, которая берет линейные и угловые скорости от контроллера чистого преследования. Этот пример основан на примере «Plan Path for a Differential Drive Robot» в Simulink.

Карта склада

Типичный склад сортировочного или распределительного оборудования имеет пакеты, которые должны быть доставлены с рабочих мест в места хранения. Склад может иметь внеплановые зоны, такие как офисы и проходы или проходы, блокирующие текущие запасы. Роботам поручают отбирать готовые упаковки по прибытии на сортировочную станцию и сообщают место их хранения. На складе также есть зарядная станция для подзарядки роботов через определенное время.

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

Загрузите файл сопоставления примеров. logicalMap - матрица логических значений, указывающая свободное место на складе. Сделать binaryOccupancyMap из этой матрицы.

load warehouseMaps.mat logicalMap
map = binaryOccupancyMap(logicalMap);
show(map)

Назначьте местоположения xy зарядной станции, станции сортировки (погрузки) и места выгрузки рядом с полками на складе.

chargingStn = [5,5];
loadingStn = [52,15];
unloadingStn = [15,42];

Отображение различных расположений на карте

hold on;

text(chargingStn(1), chargingStn(2), 1, 'Charging');
plotTransforms([chargingStn, 0], [1 0 0 0])

text(loadingStn(1), loadingStn(2), 1, 'Sorting Station');
plotTransforms([loadingStn, 0], [1 0 0 0])

text(unloadingStn(1), unloadingStn(2), 1, 'Unloading Station');
plotTransforms([unloadingStn, 0], [1 0 0 0])

hold off;

Figure contains an axes. The axes with title Binary Occupancy Grid contains 16 objects of type patch, line, image, text.

Обзор модели

Модель Simulink® то, при условии, что модели все аспекты системы для планирования, планирования, управления и моделирования поведения робота.

Откройте модель Simulink.

open_system('warehouseTasksRobotSimulationModel.slx')

Планирование, управление и модель завода

В модели используется модель планирования, управления и установки, аналогичная модели «Plan Path for a Differential Drive Robot» в примере Simulink. Плановик берет начальное и целевое местоположения от планировщика и планирует свободный от препятствий путь между ними на основе заданной карты. Контроллер использует контроллер Pure Purchasion для формирования управления линейной и угловой скоростью робота для навигации по траектории. Эти элементы управления предоставляются модели установки, которая моделирует поведение робота с дифференциальным приводом.

Планировщик роботов

Блок Планировщик (Scheduler) назначает начальные и целевые местоположения роботу. Текущая поза робота используется в качестве начального местоположения, а конечное местоположение определяется последовательностью задач, заданных внутри планировщика. Пример иллюстрирует следующую последовательность задач для робота:

  1. Начинается с места тарификации и переходит в место загрузки.

  2. Приостанавливается в качестве станции загрузки для загрузки пакета и планирует путь к месту выгрузки.

  3. Переход к разгрузочной станции для выгрузки пакета. Перестраивает путь к зарядной станции.

  4. Останавливается на зарядной станции.

Моделирование робота

Запустите моделирование для просмотра выполнения задач роботом.

simulation = sim('warehouseTasksRobotSimulationModel.slx');

Figure contains an axes. The axes with title Binary Occupancy Grid contains 21 objects of type patch, line, image, text.

Визуализация траекторий роботов

Пользовательский инструмент визуализации предназначен для имитации распределенной системы камеры и получения более подробных представлений траектории робота в определенных местах на карте. Откройте блок «Помощник по визуализации» и используйте раскрывающийся список «Стандартные виды» для выбора различных перспектив. Sample time визуализация не влияет на моделирование робота.

См. также

© Copyright 2019 The MathWorks, Inc.