Этот пример показывает посредством инкрементных итераций проектирования, как реализовать небольшую мультикоптерную симуляцию для взлета, полета и приземления в другом месте в городском окружении.
Чтобы начать, откройте пример live скрипта и получите доступ к вспомогательным файлам, нажав Открыть Live Script в документации или используя openExample
функция.
openExample('uav/UAVPackageDeliveryExample');
Затем откройте Simulink™ файл проекта.
prj = openProject('uavPackageDelivery.prj');
Модель верхней части состоит из следующих подсистем и моделей-ссылок:
Наземная станция управления: Используется для управления и мониторинга самолета в полете.
Внешние датчики - Lidar & Camera: Используется для подключения к ранее спроектированному сценарию или фотореалистичной среде симуляции. Это дает показания Лидара от окружения, когда самолет летит через него.
On Board Computer: Используется для реализации алгоритмов, предназначенных для работы на бортовом компьютере, независимом от Autopilot.
Мультиротор: Включает в себя низкоточный и среднеточный мультикоптерный режим, контроллер рейса, включая его логику руководства.
Проектные данные модели содержатся в словаре Simulink™ данных в папке данных (uavPackageDeliveryDataDict.sldd
). Кроме того, модель использует Variant Subsystems (Simulink), чтобы управлять различными строениями модели. Переменные, помещенные в базовом рабочем пространстве, конфигурируют эти варианты без необходимости изменения словаря данных.
Используйте ярлыки Project, чтобы пройти по примеру. Каждый ярлык настраивает необходимые переменные для проекта.
Щелкните ярлык проекта Начало работы, который настраивает модель для четырехпозиционной миссии с помощью низкоточной мультироторной модели объекта управления. Запуск uavPackageDelivery
модель, которая показывает мультироторный взлет, полет и посадку на 3-D график.
Модель использует блок BAV Path Manager, чтобы определить, какая является активной путевой точкой на протяжении всего рейса. Активная путевая точка передается в селектор режима руководства Stateflow™ графика, чтобы сгенерировать необходимые внутренние команды управления цикла.
Как только вы сможете управлять основной миссией, вы готовы интегрировать свою симуляцию с программным обеспечением наземной станции, чтобы вы могли лучше управлять миссией самолета. Для этого необходимо скачать и установить программное обеспечение QGroundControl Ground Control Station.
Модель использует UAV Toolbox™ mavlinkio
для установления соединения между Simulink и QGroundControl. Соединение реализовано как системный блок MATLAB ®, расположенный в
uavPackageDelivery/Ground Control Station/Get Flight Mission/QGC/MAVLink Interface
.
Чтобы протестировать связь между Simulink и QGroundControl, выполните следующие шаги:
Щелкните сочетание ярлыков «Подключение к проекту GCS».
Запуск QGroundControl.
В QGroundControl загрузите план миссии с именем shortMission.plan
расположен в /utilities/qgc
.
Запустите симуляцию.
Когда QGroundControl указывает, что он подключен к системе, загрузите миссию.
После того, как самолет взлетит, вы увидите, как БПЛА выполняет свою задачу, отправленную QGC, как показано ниже.
Можно изменить миссию, добавив путевые точки или перемещая те, которые уже находятся в миссии. Загрузите миссию, и самолет должен отреагировать на эти изменения.
Теперь, когда модель самолета может вытекать из наземной станции управления, учитывайте окружение, в которой летит самолет. В данном примере несколько городских блоков моделируются в кубоидном сценарии с помощью uavScenario
объект. Сценарий основан на городском блоке, показанном на левом рисунке ниже.
Чтобы безопасно управлять самолетом в этом типе сценария, вам нужен датчик, который предоставляет информацию об окружении, такой как датчик лидара модели. Этот пример использует uavLidarPointCloudGenerator
объект добавлен в сценарий БПЛА с uavSensor
объект. Модель датчика лидара генерирует показания на основе положения датчика и препятствий в окружении.
Щелкните Настройка кубоидного сценария (Setting a Cuboid ярлыка) и Запуск модели (Run the model). Когда модель работает, изображение облака точек лидара отображается, когда самолет летит через кубоидное окружение:
Чтобы избежать препятствий в окружении, модель должна использовать доступные данные о датчике, когда БПЛА летает миссией в окружении. Чтобы изменить строение модели, щелкните ярлык «Избежать препятствий». Появляются возможности, которая показывает ближайшую точку к созданию в кубоидном окружении.
Запустите модель. Когда модель работает, самолет пытается летать по прямому пути между созданиями к месту падения и избегает препятствий на пути. Заметьте изменение расстояния до препятствий с течением времени.
До этого момента окружение было простым кубоидным сценарием. Чтобы повысить точность окружения, щелкните ярлык Photorealistic Simulation, который помещает самолет в более реалистичный мир для полета. Вариант PhotorealisticQuadrotor, расположенный в uavPackageDelivery/photorealisticSimulationEngi/SimulationEnvironmentVariant
становится активным. Этот вариант содержит необходимые блоки для настройки среды симуляции и датчиков, установленных на самолете:
Запустите модель. Самолет настроен на выполнение той же миссии с 1 и 2 ступеней. Заметьте, что во время полета самолета в миссию обновляются облака точек лидара, и показано изображение с фронтальной камеры.
Затем щелкните Fly full ярлык, который настраивает связь с QGroundControl с шага 2 для загрузки миссии в фотореалистичное окружение. Выполните следующие шаги, чтобы запустить симуляцию:
Запуск QGroundControl.
В QGroundControl загрузите план миссии с именем shortMission.plan
расположен в /utilities/qgc
.
Запустите симуляцию.
Когда QGroundControl указывает, что он подключен к системе, загрузите миссию.
Когда самолет начинает летать, можно изменить миссию в QGroundControl, добавив путевые точки или перемещая те, которые уже находятся в миссии. Загрузите миссию, и самолет должен отреагировать на эти изменения. На протяжении всего рейса вы увидите самолет, летающий по сценарию.
Далее цель состоит в том, чтобы управлять миссией путем определения точки взлета и посадки в QGroundControl и использования предотвращения препятствий, чтобы перемещаться вокруг препятствий вдоль пути. Щелкните Fly Full Brestacle Avaidance ярлыка и выполните следующие шаги, чтобы запустить симуляцию:
Запуск QGroundControl.
В QGroundControl загрузите план миссии с именем oaMission.plan
расположен в /utilities/qgc
.
Запустите симуляцию.
Когда QGroundControl указывает, что он подключен к системе, загрузите миссию.
На протяжении всего рейса наблюдайте, как самолет пытается следовать по командованному пути в QGroundControl, одновременно пытаясь избежать столкновения со созданиями в окружении.
В какой-то момент во время рейса вы увидите, как БПЛА проходит через узкий проход между двумя созданиями.
В качестве последнего шага щелкните ярлык Adding a High Fidelity Plant, который активирует высокоточный вариант модели БПЛА, расположенный в uavPackageDelivery/MultirotorModel/Inner Loop and Plant Model/High-FidelityModel
. Этот вариант содержит контроллер внутреннего контура и высокоточную модель объекта управления.
Запустите модель. Небольшие изменения в поведении происходят из-за высокоточной модели, но БПЛА выполняет ту же миссию.
Когда вы завершите исследование моделей, закройте файл проекта.
close(prj);