Чтобы симулировать мобильную логическую архитектуру робота, соедините Simulink® модели к компонентам. Эти соединенные модели действие как поведения Simulink и могут быть симулированы в System Composer™ путем выбора Run. Чтобы получить доступ к моделям и вспомогательным файлам, используемым в этом примере, смотрите, Симулируют Мобильного Робота с Рабочим процессом System Composer.
Первоначальная модель логической архитектуры описывает поведение мобильной системы робота — генератора траектории, последователя траектории, моторного диспетчера, и робота и среды — для симуляции. Связи представляют взаимодействия в системе. Чтобы открыть первоначальную модель логической архитектуры, дважды кликните файл или введите эту команду в MATLAB® Командное окно.
% Open the initial logical architecture model for the mobile robot systemcomposer.openModel('scMobileRobotLogicalArchitectureInitial');
Структура логической архитектуры похожа на ту из модели Simulink, потому что имитационные модели спроектированы на основе потока информации. Компоненты модели логической архитектуры соединяются с моделями поведения так, чтобы модель архитектуры могла быть симулирована.
Каждый компонент ответственен за одну или несколько функций, определяемых в модели функциональной архитектуры. Trajectory Follower
компонент ответственен за вычисление скорости колеса робота на основе пути созданный генератор. Motor Controller
низшего уровня компонент контролирует скорость каждого двигателя привода согласно выходу от
Trajectory Follower
компонент.
Обратите внимание на то, что некоторые компоненты не использованы из этой модели в качестве примера. Например, модели датчика как Lidar Sensor
и RGB Camera
не требуются в этой модели, потому что истинное значение от симуляции получает x-y положение и ориентацию робота. Для более комплексных симуляций можно добавить модели датчика как RGB Camera
протестировать различные алгоритмы, такие как алгоритм распознавания. Если необходимо было добавить такую модель датчика, Lidar Sensor
, другой компонент поведения, потребовался бы, чтобы дешифровать данные о датчике в Scan Matching Algorithm
компонент.
Симулируйте модель логической архитектуры путем добавления поведения Simulink в Sensor Algorithm
компонент.
Создайте Sensor Algorithm
компонент. Добавьте два входных порта на правой стороне под названием Sensor Reading 1
и Sensor Reading 2
. Добавьте два выходных порта на левой стороне под названием xy
для x-y положения и q
для кватерниона.
Чтобы создать новое поведение Simulink, щелкните правой кнопкой по Sensor Algorithm
компонент и выбирает Create Simulink Behavior
. Из списка Type выберите Model Reference
. Выберите новое имя модели. В этом примере это - SensorAlgorithm
.
Нажмите OK. Новая модель Simulink сохранена в текущей папке. Компонент преобразован в ссылочный компонент.
Чтобы отредактировать поведенческую модель, дважды кликните Sensor Algorithm
компонент. Заметьте, что порты элемента шины создаются во время процесса преобразования. Для получения дополнительной информации об установке входов шины смотрите, Исследуют Возможности Шины Simulink.
Любая блокировка порта может использоваться, чтобы соединить различные компоненты. Преобразуйте Sensor Reading 2
вход шины и q
вход шины в регулярный Inport
и Outport
блоки путем удаления их и воссоздания их как Inport
и Outport
.
Дважды кликните Sensor Reading 1
вход шины, чтобы просмотреть его свойства, затем приостановите на имени Sensor Reading 1
и кликните по значку карандаша, чтобы открыть Attributes. Установите Dimensions на 2
.
Дважды кликните Sensor Reading 2
порт, чтобы открыть Block Parameters, затем переключитесь на вкладку Signal Attributes. Установите Sensor Reading 2
порт Port dimensions к 4
.
Возвратитесь к логической архитектуре и соедините компоненты. Результат должен быть похожим на scMobileRobotLogicalArchitecture.slx
в следующем разделе.
Модель логической архитектуры описывает поведение мобильной системы робота — генератора траектории, последователя траектории, моторного диспетчера, алгоритма датчика, и робота и среды — для симуляции. Связи представляют взаимодействия в системе. Чтобы открыть модель логической архитектуры, дважды кликните файл или введите эту команду в командное окно MATLAB.
% Open the logical architecture model for the mobile robot systemcomposer.openModel('scMobileRobotLogicalArchitecture');
Алгоритм поведения создается на основе информации порта только. При разработке логической архитектуры можно установить интерфейс порта задавать информацию более подробно. Например, если вы знаете, что 800 x, 600 изображений RGB, полученных на уровне 24 кадров в секунду, передаются от датчика камеры, затем можно установить соответствующие интерфейсы порта соответственно гарантировать эффективную передачу данных. Для получения дополнительной информации об установке интерфейсов, смотрите Интерфейсы Порта Define Между Компонентами.
Если модели поведения соединены, можно симулировать модель архитектуры точно так же, как любая другая модель Simulink путем нажатия на Run. Симуляция проверяет требования, такие как Transportation
, Collision Avoidance
, и Path Generation
.
Осциллограф от MotorController
поведение компонента показывает, как хорошо простой контроллер P-усиления выполняет, чтобы следовать за ссылочной скоростью для одного из колес на роботе.
Запустите этот скрипт, чтобы наблюдать, как хорошо робот следует за waypoints.
out = sim('scMobileRobotLogicalArchitecture.slx'); % waypoints are manually defined in Constant block waypoints = eval(get_param('TrajectoryGenerator/Manual Waypoints','Value')); figure hold on plot(out.pose.Data(:,1),out.pose.Data(:,2)) plot(waypoints(:,1),waypoints(:,2)) hold off xlabel('X Position (m)') ylabel('Y Position (m)') legend('Actual Trajectory','Commanded Trajectory')