Этот пример демонстрирует выполнение движения на препятствии, свободный путь между 3 точками на данном оффлайн сопоставляет и симулирует движение в Gazebo через GazeboCoSim.
Модель состоит из четырех первичных операций:
Планировщик
Управление планирования
Gazebo Co-Сим Сабскрибер
Издатель робота Gazebo Co-Сима
Gazebo Co-Сим Пэсер
Это, которое кладка блоков как планировщик, чтобы присвоить запускает и целевые положения к роботу, в котором он состоит из заряжающегося положения, прикрепляя положение и расстыковывая положения. Это берет линейный и скорости вращения от Блока Робота. Это планирует местоположения на основании, что, когда линейный и скорости вращения нуль, который означает, робот достиг своего целевого положения.
Это блокируется, берет, запускают местоположение, местоположение конца, карту и текущее положение как входные параметры, и выделяет массив wapoints, за которым будет следовать робот. Это преобразует карту в Бинарную Сетку Заполнения. Для планирования используется PRM. Номер узлов определяется, чтобы быть 900. Это выделяет линейный, скорости вращения.
Этот блок публикует крутящий момент к роботу Pioneer2dx в Gazebo.
Присвойте заряжающееся местоположение, прикрепив местоположение и расстыковав местоположение
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.