Доставка пакета UAV

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

Откройте проект

Чтобы начать, откройте live скрипт в качестве примера и получите доступ к вспомогательным файлам или нажатием Open Live Script в документации или использованием openExample функция.

openExample('uav/UAVPackageDeliveryExample');

Затем откройте файл проекта Simulink™.

prj = openProject('uavPackageDelivery.prj');

Архитектура модели и соглашения

Топ-модель состоит из следующих подсистем и моделей - ссылок:

  1. Станция Наземного управления: Используемый, чтобы управлять и контролировать самолет, в то время как в полете.

  2. Внешние Датчики - Lidar & Camera: Используемый, чтобы соединиться с ранее спроектированным сценарием или Фотореалистической средой симуляции. Они производят показания Лидара из среды, когда самолет летит через нее.

  3. На борту Компьютера: Используемый, чтобы реализовать алгоритмы означал запускаться в бортовом компьютере, независимом от Автопилота.

  4. Мультиротор: Включает низкое качество и середину режима мультивертолета точности, контроллера рейса включая его логику руководства.

Данные проектирования модели содержатся в словаре данных Simulink™ в папке данных (uavPackageDeliveryDataDict.sldd). Кроме того, модель использует Различные Подсистемы (Simulink), чтобы управлять различными настройками модели. Переменные, помещенные в базовое рабочее пространство, конфигурируют эти варианты без потребности к modifiy словарь данных.

Выполнение шагов в качестве примера

Используйте Ярлыки Проекта, чтобы продвинуться через пример. Каждый ярлык настраивает необходимые переменные для проекта.

1. Начало работы

Кликните по Начинающему ярлыку проекта, который настраивает модель для четырех-waypoint миссии с помощью модели объекта управления мультиротора низкого качества. Запустите uavPackageDelivery модель, которая показывает взлет мультиротора, муху и землю в 3-D графике.

Модель использует блок UAV Path Manager, чтобы определить, который является активным waypoint в течение рейса. Активный waypoint передается в Режим Руководства Селекторный график Stateflow™, чтобы сгенерировать необходимые команды управления внутренним циклом.

2. Соединение с GCS

Если вы можете управлять основной миссией, вы готовы интегрировать свою симуляцию с 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 выполняют эти шаги:

  1. Нажмите Connecting к ярлыку проекта GCS.

  2. Запустите QGroundControl.

  3. В QGroundControl загрузите план миссии, названный shortMission.plan расположенный в /utilities/qgc.

  4. Запустите симуляцию.

  5. Когда QGroundControl указывает, что соединяется с системой, загрузите миссию.

Если самолет взлетает, необходимо видеть, что UAV управляет своей миссией, как отправлено QGC как показано ниже.

Можно изменить миссию путем добавления waypoints или перемещения тех, которые уже находятся в миссии. Загрузите миссию, и самолет должен ответить на эти изменения.

3. Установка сценария кубоида

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

Чтобы безопасно управлять самолетом в этом типе сценария, вам нужен датчик, который предоставляет информацию о среде, такой как датчик лидара к модели. Этот пример использует uavLidarPointCloudGenerator объект, добавленный к сценарию UAV с uavSensor объект. Модель датчика лидара генерирует показания на основе положения датчика и препятствий в среде.

Кликните по Установке ярлыка Сценария Кубоида и Запуска модель. Когда модель запускается, изображение облака точек лидара отображено, когда самолет летит через среду кубоида:

4. Предотвращение препятствия

Чтобы избежать препятствий в среде, модель должна использовать доступные данные о датчике, когда UAV управляет миссией в среде. Чтобы изменить настройку модели, кликните по ярлыку Предотвращения Препятствия. Осциллограф появляется, который показывает самую близкую точку созданию в среде кубоида.

Запустите модель. Когда модель запускается, самолет пытается полететь в прямом пути между созданиями на сайт отбрасывания и избегает препятствий по пути. Заметьте изменение в расстоянии до препятствий в зависимости от времени.

5. Фотореалистическая симуляция

До этой точки среда была простым сценарием кубоида. Чтобы увеличить точность среды, кликните по Фотореалистическому ярлыку Симуляции, который помещает самолет в более реалистический мир, чтобы полететь через. Вариант PhotorealisticQuadrotor расположен в uavPackageDelivery/photorealisticSimulationEngi/SimulationEnvironmentVariant становится активным. Этот вариант содержит необходимые блоки, чтобы сконфигурировать среду симуляции и датчики, смонтированные на самолете:

Запустите модель. Самолет настраивается, чтобы управлять той же миссией от шагов 1 и 2. Заметьте, когда самолет управляет миссией, обновление облаков точек лидара и изображение от обращенной к передней стороне камеры показывают.

6. Управляйте полной миссией в фотореалистической среде симуляции

Затем нажмите Fly полный ярлык миссии, который настраивает возможность соединения к QGroundControl от шага 2 для загрузки миссии в фотореалистической среде. Выполните эти шаги, чтобы запустить симуляцию:

  1. Запустите QGroundControl.

  2. В QGroundControl загрузите план миссии, названный shortMission.plan расположенный в /utilities/qgc.

  3. Запустите симуляцию.

  4. Когда QGroundControl указывает, что соединяется с системой, загрузите миссию.

Когда самолет начинает лететь, можно изменить миссию в QGroundControl путем добавления waypoints или перемещения тех, которые уже находятся в миссии. Загрузите миссию, и самолет должен ответить на эти изменения. В течение рейса вы будете видеть, что самолет летит в сценарии.

7. Полет предотвращением препятствия в фотореалистической среде симуляции

Затем цель состоит в том, чтобы управлять миссией путем определения взлета и приземления точки в QGroundControl и использования предотвращения препятствия, чтобы перейти вокруг препятствий вдоль пути. Нажмите Fly полный ярлык Предотвращения Препятствия и выполните эти шаги, чтобы запустить симуляцию:

  1. Запустите QGroundControl.

  2. В QGroundControl загрузите план миссии, названный oaMission.plan расположенный в /utilities/qgc.

  3. Запустите симуляцию.

  4. Когда QGroundControl указывает, что соединяется с системой, загрузите миссию.

В течение рейса см., что самолет пытается следовать за путем, которым управляют, в QGroundControl, одновременно пытаясь постараться не сталкиваться с созданиями в среде.

В какой-то момент во время рейса, вы будете видеть, что UAV проходит через узкую передачу между двумя созданиями.

8. Добавление 6DOF модель объекта управления для симуляции Более высокой Точности

Как последний шаг, кликните по Добавлению Высококачественного ярлыка Объекта, который активирует высокочастотный вариант модели UAV, расположенной в uavPackageDelivery/MultirotorModel/Inner Loop and Plant Model/High-FidelityModel. Этот вариант содержит контроллер внутреннего цикла и высокочастотную модель объекта управления.

Запустите модель. Существуют незначительные изменения в поведении из-за высокочастотной модели, но UAV управляет той же миссией.

Когда вы закончите исследуя модели, закройте файл проекта.

close(prj);