Симулируйте складских роботов в Gazebo с Simulink

Этот пример демонстрирует выполнение движения на препятствии, свободный путь между 3 точками на данном оффлайн сопоставляет и симулирует движение в Gazebo через GazeboCoSim.

Обзор модели

Модель состоит из четырех первичных операций:

  • Планировщик

  • Управление планирования

  • Gazebo Co-Сим Сабскрибер

  • Издатель робота Gazebo Co-Сима

  • Gazebo Co-Сим Пэсер

Планировщик

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

Планирование - управление

Это блокируется, берет, запускают местоположение, местоположение конца, карту и текущее положение как входные параметры, и выделяет массив wapoints, за которым будет следовать робот. Это преобразует карту в Бинарную Сетку Заполнения. Для планирования используется PRM. Номер узлов определяется, чтобы быть 900. Это выделяет линейный, скорости вращения.

Подписчик GazeboCoSim

Издатель робота Gazebo Co-Сима

Этот блок публикует крутящий момент к роботу Pioneer2dx в Gazebo.

Иноходец робота Gazebo Co-Сима

Симуляция робота

Присвойте заряжающееся местоположение, прикрепив местоположение и расстыковав местоположение

chargeloc = [4,2];
dockloc = [21,10];
undockloc = [37,7];

Преобразуйте мир Gazebo, чтобы сопоставить

warehouseMap = worldToMap('Warehouse.xml');

К представлению Binary Occupancy Grid

map = robotics.BinaryOccupancyGrid(warehouseMap);

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

%open_system('SimulateWarehouseRobotsGazeboSimulink.slx')

© Copyright 2019 The MathWorks, Inc.