Этот пример показывает через инкрементные итерации проектирования, как реализовать маленькую симуляцию мультивертолета к взлету, мухе и земле в другом месте в городской среде.
Чтобы начать, откройте live скрипт в качестве примера и получите доступ к вспомогательным файлам или нажатием Open Live Script в документации или использованием openExample
функция.
openExample('uav/UAVPackageDeliveryExample');
Затем откройте файл проекта Simulink™.
prj = openProject('uavPackageDelivery.prj');
Топ-модель состоит из следующих подсистем и моделей - ссылок:
Станция Наземного управления: Используемый, чтобы управлять и контролировать самолет, в то время как в полете.
Внешние Датчики - Lidar & Camera: Используемый, чтобы соединиться с ранее спроектированным сценарием или Фотореалистической средой симуляции. Они производят показания Лидара из среды, когда самолет летит через нее.
На борту Компьютера: Используемый, чтобы реализовать алгоритмы означал запускаться в бортовом компьютере, независимом от Автопилота.
Мультиротор: Включает низкое качество и середину режима мультивертолета точности, контроллера рейса включая его логику руководства.
Данные проектирования модели содержатся в словаре данных Simulink™ в папке данных (uavPackageDeliveryDataDict.sldd
). Кроме того, модель использует Различные Подсистемы (Simulink), чтобы управлять различными настройками модели. Переменные, помещенные в базовое рабочее пространство, конфигурируют эти варианты без потребности к modifiy словарь данных.
Используйте Ярлыки Проекта, чтобы продвинуться через пример. Каждый ярлык настраивает необходимые переменные для проекта.
Кликните по Начинающему ярлыку проекта, который настраивает модель для четырех-waypoint миссии с помощью модели объекта управления мультиротора низкого качества. Запустите uavPackageDelivery
модель, которая показывает взлет мультиротора, муху и землю в 3-D графике.
Модель использует блок UAV Path Manager, чтобы определить, который является активным waypoint в течение рейса. Активный waypoint передается в Режим Руководства Селекторный график Stateflow™, чтобы сгенерировать необходимые команды управления внутренним циклом.
Если вы можете управлять основной миссией, вы готовы интегрировать свою симуляцию с Ground Station Software, таким образом, можно лучше управлять миссией самолета. Для этого необходимо загрузить и установить программное обеспечение QGroundControl Ground Control Station.
Модель использует mavlinkio
UAV Toolbox™ установить связь между Simulink и QGroundControl. Связь реализована как MATLAB® System Block, расположенный в
uavPackageDelivery/Ground Control Station/Get Flight Mission/QGC/MAVLink Interface
.
Чтобы протестировать возможность соединения между Simulink и QGroundControl выполняют эти шаги:
Нажмите Connecting к ярлыку проекта GCS.
Запустите QGroundControl.
В QGroundControl загрузите план миссии, названный shortMission.plan
расположенный в /utilities/qgc
.
Запустите симуляцию.
Когда QGroundControl указывает, что соединяется с системой, загрузите миссию.
Если самолет взлетает, необходимо видеть, что UAV управляет своей миссией, как отправлено QGC как показано ниже.
Можно изменить миссию путем добавления waypoints или перемещения тех, которые уже находятся в миссии. Загрузите миссию, и самолет должен ответить на эти изменения.
Теперь, когда модель самолета может быть, текут из станции наземного управления, считают среду мухами самолета в. В данном примере несколько городских кварталов моделируются в сценарии кубоида с помощью uavScenario
объект. Сценарий основан на городском квартале, показанном в левом рисунке ниже.
Чтобы безопасно управлять самолетом в этом типе сценария, вам нужен датчик, который предоставляет информацию о среде, такой как датчик лидара к модели. Этот пример использует uavLidarPointCloudGenerator
объект, добавленный к сценарию UAV с uavSensor
объект. Модель датчика лидара генерирует показания на основе положения датчика и препятствий в среде.
Кликните по Установке ярлыка Сценария Кубоида и Запуска модель. Когда модель запускается, изображение облака точек лидара отображено, когда самолет летит через среду кубоида:
Чтобы избежать препятствий в среде, модель должна использовать доступные данные о датчике, когда UAV управляет миссией в среде. Чтобы изменить настройку модели, кликните по ярлыку Предотвращения Препятствия. Осциллограф появляется, который показывает самую близкую точку созданию в среде кубоида.
Запустите модель. Когда модель запускается, самолет пытается полететь в прямом пути между созданиями на сайт отбрасывания и избегает препятствий по пути. Заметьте изменение в расстоянии до препятствий в зависимости от времени.
До этой точки среда была простым сценарием кубоида. Чтобы увеличить точность среды, кликните по Фотореалистическому ярлыку Симуляции, который помещает самолет в более реалистический мир, чтобы полететь через. Вариант PhotorealisticQuadrotor расположен в uavPackageDelivery/photorealisticSimulationEngi/SimulationEnvironmentVariant
становится активным. Этот вариант содержит необходимые блоки, чтобы сконфигурировать среду симуляции и датчики, смонтированные на самолете:
Запустите модель. Самолет настраивается, чтобы управлять той же миссией от шагов 1 и 2. Заметьте, когда самолет управляет миссией, обновление облаков точек лидара и изображение от обращенной к передней стороне камеры показывают.
Затем нажмите Fly полный ярлык миссии, который настраивает возможность соединения к QGroundControl от шага 2 для загрузки миссии в фотореалистической среде. Выполните эти шаги, чтобы запустить симуляцию:
Запустите QGroundControl.
В QGroundControl загрузите план миссии, названный shortMission.plan
расположенный в /utilities/qgc
.
Запустите симуляцию.
Когда QGroundControl указывает, что соединяется с системой, загрузите миссию.
Когда самолет начинает лететь, можно изменить миссию в QGroundControl путем добавления waypoints или перемещения тех, которые уже находятся в миссии. Загрузите миссию, и самолет должен ответить на эти изменения. В течение рейса вы будете видеть, что самолет летит в сценарии.
Затем цель состоит в том, чтобы управлять миссией путем определения взлета и приземления точки в QGroundControl и использования предотвращения препятствия, чтобы перейти вокруг препятствий вдоль пути. Нажмите Fly полный ярлык Предотвращения Препятствия и выполните эти шаги, чтобы запустить симуляцию:
Запустите QGroundControl.
В QGroundControl загрузите план миссии, названный oaMission.plan
расположенный в /utilities/qgc
.
Запустите симуляцию.
Когда QGroundControl указывает, что соединяется с системой, загрузите миссию.
В течение рейса см., что самолет пытается следовать за путем, которым управляют, в QGroundControl, одновременно пытаясь постараться не сталкиваться с созданиями в среде.
В какой-то момент во время рейса, вы будете видеть, что UAV проходит через узкую передачу между двумя созданиями.
Как последний шаг, кликните по Добавлению Высококачественного ярлыка Объекта, который активирует высокочастотный вариант модели UAV, расположенной в uavPackageDelivery/MultirotorModel/Inner Loop and Plant Model/High-FidelityModel
. Этот вариант содержит контроллер внутреннего цикла и высокочастотную модель объекта управления.
Запустите модель. Существуют незначительные изменения в поведении из-за высокочастотной модели, но UAV управляет той же миссией.
Когда вы закончите исследуя модели, закройте файл проекта.
close(prj);