Поставка пакета БПЛА

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

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

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

openExample('uav/UAVPackageDeliveryExample');

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

prj = openProject('uavPackageDelivery.prj');

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

Модель верхней части состоит из следующих подсистем и моделей-ссылок:

  1. Наземная станция управления: Используется для управления и мониторинга самолета в полете.

  2. Внешние датчики - Lidar & Camera: Используется для подключения к ранее спроектированному сценарию или фотореалистичной среде симуляции. Это дает показания Лидара от окружения, когда самолет летит через него.

  3. On Board Computer: Используется для реализации алгоритмов, предназначенных для работы на бортовом компьютере, независимом от Autopilot.

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

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

Следующие шаги примера

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

1. Начало

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

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

2. Подключение к GCS

Как только вы сможете управлять основной миссией, вы готовы интегрировать свою симуляцию с программным обеспечением наземной станции, чтобы вы могли лучше управлять миссией самолета. Для этого необходимо скачать и установить программное обеспечение QGroundControl Ground Control Station.

Модель использует UAV Toolbox™ mavlinkio для установления соединения между Simulink и QGroundControl. Соединение реализовано как системный блок MATLAB ®, расположенный вuavPackageDelivery/Ground Control Station/Get Flight Mission/QGC/MAVLink Interface.

Чтобы протестировать связь между Simulink и QGroundControl, выполните следующие шаги:

  1. Щелкните сочетание ярлыков «Подключение к проекту GCS».

  2. Запуск QGroundControl.

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

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

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

После того, как самолет взлетит, вы увидите, как БПЛА выполняет свою задачу, отправленную QGC, как показано ниже.

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

3. Настройка кубоидного сценария

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

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

Щелкните Настройка кубоидного сценария (Setting a Cuboid ярлыка) и Запуск модели (Run the model). Когда модель работает, изображение облака точек лидара отображается, когда самолет летит через кубоидное окружение:

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

Чтобы избежать препятствий в окружении, модель должна использовать доступные данные о датчике, когда БПЛА летает миссией в окружении. Чтобы изменить строение модели, щелкните ярлык «Избежать препятствий». Появляются возможности, которая показывает ближайшую точку к созданию в кубоидном окружении.

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

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

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

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

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

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

  1. Запуск QGroundControl.

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

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

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

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

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

Далее цель состоит в том, чтобы управлять миссией путем определения точки взлета и посадки в QGroundControl и использования предотвращения препятствий, чтобы перемещаться вокруг препятствий вдоль пути. Щелкните Fly Full Brestacle Avaidance ярлыка и выполните следующие шаги, чтобы запустить симуляцию:

  1. Запуск QGroundControl.

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

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

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

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

В какой-то момент во время рейса вы увидите, как БПЛА проходит через узкий проход между двумя созданиями.

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

В качестве последнего шага щелкните ярлык Adding a High Fidelity Plant, который активирует высокоточный вариант модели БПЛА, расположенный в uavPackageDelivery/MultirotorModel/Inner Loop and Plant Model/High-FidelityModel. Этот вариант содержит контроллер внутреннего контура и высокоточную модель объекта управления.

Запустите модель. Небольшие изменения в поведении происходят из-за высокоточной модели, но БПЛА выполняет ту же миссию.

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

close(prj);