Этот пример демонстрирует включение и взаимодействие через интерфейс с планированием пути бортового компьютера с Программным обеспечением в цикле (SITL) PX4.
Примечание: Этот пример использует NVIDIA Джетсон в качестве бортового компьютера.
В этом примере вы:
Включите рабочие процессы бортового компьютера с PX4 SITL.
Реализуйте интерфейс планирования пути PX4 в Simulink и разверните на NVIDIA Джетсона.
Установите связь MAVLink между бортовым компьютером и PX4 SITL.
Запуститесь и завершитесь, миссия UAV с бортовым компьютером помогла планированию пути.
Следующая схема иллюстрирует интерфейс высокого уровня между несколькими компонентами, используемыми в этом примере.
QGroundControl (QGC) является программным обеспечением станции наземного управления, которое помогает вам сконфигурировать программное обеспечение автопилота PX4. В этом примере вы используете QGC, чтобы создать, загрузить, и контролировать миссию UAV. Когда PX4 SITL находится в режиме миссии, он отправляет миссию waypoints в бортовой компьютер (NVIDIA Джетсон), который соединяется с той же сетью по MAVLink, использующему интерфейс планирования пути PX4. Бортовой компьютер использует блок Waypoint Follower из UAV Toolbox, чтобы сгенерировать траекторию, чтобы следовать за этими waypoints. Обновленную траекторию waypoints выход от блока Waypoint Follower передают обратно в PX4 SITL по MAVLink использование интерфейса планирования пути PX4.
Если вы плохо знакомы с Simulink, посмотрите ролик Быстрого запуска Simulink.
Если вы плохо знакомы с PX4, обратитесь к Руководству пользователя Автопилота PX4, чтобы изучить стек рейса PX4 для БПЛА.
Этот пример использует:
MATLAB®
Simulink®
UAV Toolbox™
Пакет поддержки MATLAB Coder для NVIDIA Джетсон и NVIDIA УПРАВЛЯЕТ платформами
Этот пример требует следующего стороннего программного обеспечения:
Рейс PX4 складывает для БПЛА
Набор инструментальных средств Cygwin (для операционной системы Windows)
Исходный код PX4
В данном примере используйте Встроенное программное обеспечение Автопилота PX4 v1.11.0.
Загрузите исходный код PX4 с GitHub (для Ubuntu)
1. Откройте терминал удара на Ubuntu 18.04.
2. Создайте директорию mypx4
в домашней папке.
3. Перейдите к недавно созданной px4 директории и запустите следующие команды один за другим. Ожидайте каждой команды, чтобы выполниться прежде, чем ввести следующую команду.
cd Firmware
git checkout v1.11.0
git submodule update --init --recursive
4. Установите вспомогательные пакеты, требуемые путем выполнения ubuntu.sh скрипта. Введите следующую команду (в то время как в папке Firmware) в терминале.
bash ./Tools/setup/ubuntu.sh
5. Перезапустите компьютер или выход и войдите в систему снова после того, как предыдущий процесс завершен.
Загрузите исходный код PX4 с GitHub (для Windows)
1. Набор инструментальных средств Cygwin требуется, чтобы создавать Встроенное программное обеспечение PX4 в Windows. Загрузите версию 0.8 Инсталлятора MSI Набора инструментальных средств PX4 Cygwin, совместимого со Встроенным программным обеспечением PX4 v1.11.0, доступный здесь.
2. Установите Инсталлятор MSI Набора инструментальных средств PX4 Cygwin. На последнем шаге Мастера установки Набора инструментальных средств PX4. выберите Клон опции репозиторий PX4 и Запустите Симуляцию, и затем нажмите Finish. Выполнение так клонирует последнее основное Встроенное программное обеспечение PX4.
3. Ожидайте встроенного программного обеспечения, чтобы закончить клонироваться. После того, как встроенное программное обеспечение клонировано, Симуляция запускается в jMAVSim. Закройте интерпретатор удара на данном этапе.
4. Встроенное программное обеспечение PX4 клонировано в папке под названием home
, в папке Cygwin, что вы выбрали во время установки, например, C:\px4_cygwin\home\
.
5. Перейдите к установленной директории Cygwin Toolchain на вашем PC. Например, C:\px4_cygwin
.
6. Запустите пакетный файл run-console.bat
. Выполнение так открывает консоль Cygwin.
7. От консоли Cygwin перейдите к директории PX4.
cd home
8. Перейдите к недавно созданной директории PX4 и запустите следующие команды. Ожидайте каждой команды, чтобы выполниться прежде, чем ввести следующую команду.
cd Firmware
git checkout v1.11.0
git submodule update --init --recursive
QGroundControl
QGC обеспечивает полное управление полетом, и настройка транспортного средства для PX4 привела транспортные средства в движение. Для инструкций по установке QGC смотрите Загрузку и установите QGC. Этот пример использует QGC v3.5.6.
Чтобы начать, выполните эти шаги:
1. Откройте модель в качестве примера путем выполнения этой команды в командной строке MATLAB.
open_system('OnboardComputer_PathPlanning_PX4_SITL_NVIDIA_Jetson.slx')
Эта модель реализует интерфейс планирования пути PX4, использующий Сериализатор MAVLink и MAVLink Deserializer блоки. Обратитесь к Интерфейсу Планирования пути PX4 для получения дополнительной информации. Сообщения MAVLink, которыми обмениваются как часть этого интерфейса, показывают в следующей схеме.
2. В ресурсе Целевого компьютера> Параметры платы, введите IP-адрес NVIDIA Джетсон и ваши учетные данные входа в систему.
3. Найдите IP-адрес платы Джетсона NVIDIA соединенным. Убедитесь, что NVIDIA Джетсон соединяется с той же сетью как ваш PC хоста. В командном окне MATLAB запустите exampleHelperUpdateStartupScriptforOBC
скрипт, присоединенный к этому примеру. Первый вход является путем к источнику PX4, загруженным и вторым входом является IP-адрес платы Джетсона NVIDIA. Этот скрипт изменяет скрипт запуска PX4 SITL, чтобы включить возможность соединения MAVLink к NVIDIA Джетсон.
exampleHelperUpdateStartupScriptforOBC('C:\px4_cygwin\home\','172.19.XX.XX');
4. Обновите путь к Диалекту MAVLink Сериализатора MAVLink и MAVLink Deserializer блоки в примере к местоположению Диалекта MAVLink в загруженном источнике PX4. Скрипту предоставляют пример, чтобы автоматизировать это. Запустите скрипт exampleHelperUpdateMAVLinkDialectPath
, присоединенный к этому примеру, чтобы обновить путь к Диалекту MAVLink в модели. Вход является путем к загруженному источнику PX4.
exampleHelperUpdateMAVLinkDialectPath('C:\px4_cygwin\home\');
Примечание: скрипт, которому предоставляют этот пример, характерен для этого примера. Если вы добавляете блоки Serializer и Deserializer MAVLink в эту модель или создаете новую модель, этот скрипт не работает. Можно или обновить скрипт или обновить маску блока вручную.
5. Откройте маску блока блока UDP Send в модели. В Удаленном поле IP-адреса введите IP-адрес PC хоста, на котором вы запускаете PX4 SITL. Можно также достигнуть этого путем определения переменной hostIP в рабочей области. Убедитесь, что PC хоста и NVIDIA Джетсон соединяются с той же сетью.
hostIP ='172.19.XX.XX';
6. Запустите модель в качестве примера в Режиме external mode путем выбора вкладки Hardware и затем нажатия на Monitor & Tune. Убедитесь, что симуляция запускается.
Примечание: Если вы получаете "Сборку, отказавшую, потому что имя (имена) файла типа "build" превышает предел Windows 260 символов. Создайте из рабочей директории с более коротким путем". ошибка, измените путь к различной рабочей директории и затем запустите модель в качестве примера в Режиме external mode.
Запустите PX4 SITL с jMAVSim как Средство моделирования Рейса.
На Windows, в Консоли Cygwin перешли к директории PX4 и выполняют эти команды:
На Ubuntu перейдите к директории PX4 в терминале и запустите эти команды:
cd Firmware
make px4_sitl jmavsim
PX4 SITL и запуск jMAVSim.
1. Запустите Приложение QGC и ожидайте, пока оно не соединится с PX4 SITL.
2. Установите параметр PX4 COM_OBS_AVOID
включить интерфейс планирования пути PX4. Перейдите к Параметрам из главного меню и установите COM_OBS_AVOID
значение параметров к 1
.
Можно создать миссию или использовать предварительно запланированную миссию, example_mission.plan
, который доступен с этим примером. Выполните эти шаги:
1. Запустите QGC и перейдите к Представлению Плана.
2. Создайте миссию или загрузите предварительно запланированную миссию, example_mission.plan
.
Создайте миссию: Для получения информации о создании миссии смотрите Представление Плана.
Чтобы загрузить предварительно запланированную миссию, нажмите Open Model наверху этой страницы и загрузите файл плана (example_mission.plan
) к вашему компьютеру. В QGC переместитесь и выберите example_mission.plan
файл.
После того, как вы загрузите план, миссия отображается в QGC.
3. Нажмите Upload в интерфейсе QGC, чтобы загрузить миссию от QGroundControl.
4. Переместитесь, чтобы Управлять Представлением, чтобы видеть загруженную миссию.
5. Убедитесь, что сплав GPS завершается, и местоположение GPS обновляется в QGC.
6. Запустите миссию с QGC
Беспилотник взлетает после того, как миссия запускается.
В этом примере беспилотник следует за миссией. Через интерфейс планирования пути PX4 обновленные waypoints отправляются в бортовой компьютер. На бортовом компьютере блок Waypoint Follower из тулбокса UAV используется, чтобы сгенерировать траекторию от этих waypoints. Для получения дополнительной информации см. Последователя Waypoint. Сгенерированную траекторию передают обратно в PX4 SITL как серия waypoints по одному.
Если миссия завершена, можно сравнить запланированный путь (желтый) и фактический путь (красный) сопровождаемый UAV.
Описание: PX4 SITL замораживается спустя несколько минут после запуска в Windows. QGC отображает сообщение об ошибке "Потерянная Коммуникация". Эта проблема происходит, когда PX4 SITL замораживается, и возможность соединения с QGC потеряна спустя несколько минут после запуска.
Действие
Закройте PX4 SITL путем ввода команды завершения работы в окно PX4 SITL.
Перезапустите PX4 SITL с помощью make px4_sitl jmavsim
команда.
Продолжите запуск миссии, если сплав GPS достигается.
Описание: "Система Предотвращения препятствия перестала работать, слоняющееся" предупреждение при запуске миссии.
Это предупреждение происходит, потому что связь между NVIDIA Джетсон и PX4 SITL не устанавливается.
Действие: Убедитесь, что PC хоста и NVIDIA Джетсон соединяются с той же сетью. Попытайтесь проверить с помощью ping-запросов NVIDIA jetson от PC хоста и наоборот.
Описание: "Связь с компьютером миссии, потерянным", предупреждая во время миссии. Это предупреждение происходит, потому что бортовой компьютер не доступен от PX4 SITL.
Действие: Убедитесь, что симуляция монитора и мелодии запускается. Если симуляция останавливается, запустите модель в режиме external mode снова.