Интерфейс планирования пути бортового компьютера для PX4 SITL, развертываемого на NVIDIA Джетсон

Этот пример демонстрирует включение и взаимодействие через интерфейс с планированием пути бортового компьютера с Программным обеспечением в цикле (SITL) PX4.

Примечание: Этот пример использует NVIDIA Джетсон в качестве бортового компьютера.

В этом примере вы:

  • Включите рабочие процессы бортового компьютера с PX4 SITL.

  • Установите связь 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.

Необходимые условия

Этот пример использует:

  • 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: сконфигурируйте и запустите модель

Чтобы начать, выполните эти шаги:

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.

Шаг 2: запустите PX4 SITL

Запустите PX4 SITL с jMAVSim как Средство моделирования Рейса.

На Windows, в Консоли Cygwin перешли к директории PX4 и выполняют эти команды:

На Ubuntu перейдите к директории PX4 в терминале и запустите эти команды:

  • cd Firmware

  • make px4_sitl jmavsim

PX4 SITL и запуск jMAVSim.

Шаг 3: откройте QGC и включите интерфейс планирования пути PX4

1. Запустите Приложение QGC и ожидайте, пока оно не соединится с PX4 SITL.

2. Установите параметр PX4 COM_OBS_AVOID включить интерфейс планирования пути PX4. Перейдите к Параметрам из главного меню и установите COM_OBS_AVOID значение параметров к 1.

Шаг 4: создайте, загрузите и запустите миссию с QGC

Можно создать миссию или использовать предварительно запланированную миссию, 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 взлетают

В этом примере беспилотник следует за миссией. Через интерфейс планирования пути 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 снова.