Skip to content

Середовище розробки Windows (засноване на WSL2)

Наступні інструкції пояснюють як налаштувати середовище розробки PX4 на Windows 10 або 11, запущене на Ubuntu Linux у WSL2.

Це середовище може бути використане для збірки PX4 для:

TIP

Ця установка підтримується командою розробників PX4. Середовище в теорії має бути здатне збирати будь-яку ціль збірки, яку можна зібрати на Ubuntu. The list above are those targets that are regularly tested.

Загальний огляд

Windows Subsystem для Linux (WSL2) дозволяє користувачам встановлювати й запускати середовище розробки Ubuntu на Windows, майже так само як би його запустили на комп'ютері Linux.

В цьому середовищі розробники можуть:

  • Зібрати в оболонці WSL будь-який симулятор або цільову апаратну платформу, яка підтримується середовищем розробки Ubuntu. (Ubuntu є платформою розробки PX4, яка підтримується та протестована найкраще).
  • Налагоджувати код в Visual Studio Code запущений на Windows.
  • Спостерігати за симуляцією, яка запущена в WSL використовуючи QGroundControl для Linux. QGC для Linux автоматично під'єднується до симуляції.

QGroundControl для Windows необхідна додатково, якщо потрібно:

:::note Підключення до USB пристрою з WSL не підтримується, тому неможливо поновити прошивку за допомогою параметру upload під час збірки у командній оболонці, або з QGroundControl для Linux. :::

:::note Цей підхід схожий на встановлення PX4 на власну віртуальну машину, як описано в інструментарії на VM Windows. Перевага WSL2 полягає в тому, що її віртуальна машина глибоко інтегрована в Windows, керується системою та оптимізована для ефективності. :::

Встановлення

Встановлення WSL2

Щоб встановити WSL2 з Ubuntu на новій установці Windows 10 або 11:

  1. Переконайтеся, що функція віртуалізації увімкнена в BIOS вашого комп'ютера. Зазвичай її називають "Virtualization Technology", "Intel VT-x" чи "AMD-V" відповідно.

  2. Відкрийте cmd.exe від імені адміністратора. Це можна зробити натиснувши кнопку "Пуск", надрукувати cmd, натиснути правою кнопкою миші на пункті Command prompt та обрати Run as administrator.

  3. Виконайте наступні команди для встановлення WSL2 та певної версії Ubuntu:

:::note Ви також можете встановитиUbuntu 20.04 та Ubuntu 22.04 з магазину застосунків, який дозволяє видалити програму за допомогою звичайної функції Windows Додати/Видалити: :::

  1. WSL запитає про ім'я користувача та пароль для встановлення Ubuntu. Запишіть ці облікові дані, оскільки вони знадобляться пізніше!

Тепер командний рядок є терміналом в нововстановленому середовищі Ubuntu.

Відкриття оболонки WSL

Всі операції для встановлення та збірки PX4 повинні бути виконані в оболонці WSL (можна використати ту саму оболонку в якій встановлювалася WSL2 або відкрити нову).

Якщо ви використовуєте Windows Terminal ви можете відкрити консоль у встановленому WSL середовищі, як показано, та вийти з нього, закривши вкладку.

Windows Terminal показує, як вибрати оболонку Ubuntu

Щоб відкрити оболонку WSL за допомогою командного рядка:

  1. Відкрийте командний рядок:

    • Натисніть кнопку Windows Пуск.
    • Введіть cmd і натисніть Enter, щоб відкрити консоль.
  2. Щоб запустити WSL і отримати доступ до WSL оболонки, виконайте команду:

    sh
    wsl -d <distribution_name>

    Наприклад:

    sh
    wsl -d Ubuntu
    sh
    wsl -d Ubuntu-20.04

    Якщо у вас тільки одна версія Ubuntu, ви можете просто використати wsl.

Введіть наступні команди, щоб спочатку закрити WSL оболонку, а потім завершити WSL:

sh
exit
wsl -d <distribution_name> --shutdown

Як варіант, після введення exit можна просто закрити консоль.

Встановлення інструментарію PX4

Далі ми завантажуємо вихідний код PX4 у середовищі WSL2 і використовуємо звичайний скрипт встановлювання для Ubuntu для налаштування середовища розробника. This will install the toolchain for Gazebo Classic simulation and Pixhawk/NuttX hardware.

Щоб встановити інструментарій розробки:

  1. Відкрийте оболонку WSL2 (якщо вона ще відкрита, ви можете використати ту саму що для встановлення WSL2).

  2. Виконайте команду cd ~ для переходу в домашню директорію WSL для подальших кроків.

    WARNING

Це важливо! Якщо ви працюєте за межами файлової системи WSL, то ви стикнетесь з такими проблемами, як дуже повільне виконання та помилки прав доступу/дозволів. :::

  1. Завантажте вихідний код PX4 за допомогою git (вже встановлений у WSL2):

    sh
    git clone https://github.com/PX4/PX4-Autopilot.git --recursive

:::note Скрипти налаштування середовища у вихідному коді зазвичай працюють для останніх релізів PX4. Якщо ви працюєте зі старішою версією PX4, то може знадобитися отримати вихідний код для конкретного релізу. :::

  1. Запустіть скрипт встановлення ubuntu.sh і зробіть вибір у будь-яких підказках по ходу виконання скрипту:

    sh
    bash ./PX4-Autopilot/Tools/setup/ubuntu.sh

    This installs tools to build PX4 for Pixhawk and either Gazebo or Gazebo Classic targets:

    • Також можна використовувати опції --no-nuttx та --no-sim-tools, щоб пропустити встановлення інструментів для NuttX та/або симуляції.
    • Інші цілі збірки Linux не перевірені (ви можете спробувати їх, ввівши відповідні команди у середовищі розробки Ubuntu в оболонці WSL).

:::

  1. Перезапустіть "комп'ютер WSL" після завершення скрипту (вийти з оболонки, вимкнути WSL та перезапустити WSL):

    sh
    exit
    wsl --shutdown
    wsl
  2. Перейдіть в репозиторій PX4 в домашній директорії WSL:

    sh
    cd ~/PX4-Autopilot
  3. Зберіть ціль PX4 SITL та перевірте середовище:

    sh
    make px4_sitl

Для додаткових варіантів збірки дивіться Збірка програмного забезпечення PX4.

Інтеграція з Visual Studio Code

VS Code на Windows добре інтегрований з WSL.

Для налаштування інтеграції:

  1. Завантажте і встановіть Visual Studio Code (VS Code) на Windows.

  2. Відкрийте VS Code.

  3. Встановіть розширення під назвою Remote - WSL (з магазину)

  4. Відкрийте оболонку WSL

  5. У WSL оболонці перейдіть у директорію PX4:

    sh
    cd ~/PX4-Autopilot
  6. В оболонці WSL запустіть VS Code:

    sh
    code .

    Це відкриє IDE повністю інтегроване в WSL оболонку.

    Переконайтеся, що ви завжди відкриваєте PX4 репозиторій у режимі Remote WSL.

  7. Наступного разу, коли ви захочете розробляти у WSL2, ви легко зможете відкрити його знову в режимі Remote WSL, обравши Open Recent (як показано нижче). Це запустить WSL.

    Зверніть увагу, що IP-адреса віртуальної машини WSL буде змінена, так що ви не зможете контролювати симуляцію з QGC для Windows (ви все ще можете використовувати QGC для Linux)

QGroundControl

Для підключення до запущеної симуляції, ви можете запустити QGroundControl або в WSL або у Windows. Якщо вам потрібно записати у плату керування польотом нову прошивку, ви можете зробити це лише у QGroundControl для Windows.

QGroundControl у WSL

Найпростіший спосіб налаштувати та використовувати QGroundControl - це завантажити версію для Linux у WSL.

Це можна зробити з оболонки WSL.

  1. У браузері перейдіть в QGC Ubuntu download section

  2. Клацніть правою кнопкою миші на посилання QGroundControl.AppImage та виберіть "Копіювати адресу посилання". Це буде щось на зразок _https://d176td9ibe4jno.cloudfront.net/builds/master/QGroundControl.AppImage_

  3. Відкрийте оболонку WSL і введіть наступні команди щоб завантажити AppImage та зробити його виконуваним (замінить URL до AppImage, де зазначено):

    sh
    cd ~
    wget <the_copied_AppImage_URL>
    chmod +x QGroundControl.AppImage
  4. Запустіть QGroundControl:

    sh
    ./QGroundControl.AppImage

QGroundControl запуститься та автоматично приєднається до запущеної симуляції, що дозволить вам спостерігати та контролювати ваші рухомі засоби.

Ви не зможете використовувати його для встановлення прошивки PX4, оскільки WSL не надає доступу до послідовних пристроїв.

QGroundcontrol на Windows

Встановіть QGroundControl on Windows якщо ви хочете мати змогу оновити апаратне забезпечення за допомогою прошивки, створеної у PX4.

Ці кроки описують, як ви можете під'єднатися до симуляції, яке працює в WSL:

  1. Відкрийте оболонку WSL

  2. Перевірте IP-адресу віртуальної машини WSL запустивши команду ip addr | grep eth0:

    sh
    $ ip addr | grep eth0
    
    6: eth0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc mq state UP group default qlen 1000
        inet 172.18.46.131/20 brd 172.18.47.255 scope global eth0

    Скопіюйте першу inet частину адреси інтерфейсу eth0 у буфер обміну. В цьому випадку: 172.18.46.131.

  3. У QGC перейдіть у Q > Налаштування додатку > Канали зв'язку

  4. Додайте UDP канал з назвою "WSL" до порту 18570 з IP-адресою скопійованою вище.

  5. Збережіть і під'єднайтеся до нього.

:::note Вам доведеться оновляти канал зв'язку з WSL у QGC щоразу, коли WSL буде перезапущено (тому що вона отримує динамічну IP-адресу). :::

Прошивка плати керування польотом

Запис нестандартного двійкового файлу PX4 повинно бути зроблено за допомогою QGroundControl для Windows, оскільки WSL2 не надає прямий доступ до послідовних пристроїв, таких як плати Pixhawk.

Зробіть наступні кроки для прошивки вашого бінарного файлу, зібраного у WSL:

  1. Зберіть, якщо ще це не зробили, бінарний файл у WSL, тобто за допомогою WSL shell та виконавши:

    sh
    cd ~/PX4-Autopilot
    make px4_fmu-v5

    Примітка: використовуйте правильну ціль збірки для вашої плати. Для плати Pixhawk 4 можна використати "px4_fmu-v5".

  2. Від'єднайте USB-кабель плати Pixhawk від комп'ютера, якщо він був підключений.

  3. Відкрийте QGC.

  4. У QGC перейдіть у Q > Налаштування рухомого засобу > Прошивка

  5. Під'єднайте Pixhawk плату через USB

  6. Після підключення оберіть "Польотний набір PX4", відмітьте "Просунуті налаштування" і оберіть "Користувацький файл прошивки ..." зі списку що розкрився нижче.

  7. Оберіть бінарний файл прошивки, який ви щойно зібрали. У відкритому діалозі знайдіть розташування "Linux" з іконкою пінгвіна на лівій панелі. Зазвичай, вона в самому низу. Оберіть файл за шляхом: Ubuntu\home\{ваш користувач у WSL}\PX4-Autopilot\build\{ціль збірки}\{ціль збірки}.px4

    :::note Ви можете додати директорію до обраного, щоб швидко отримати доступ до неї. :::

  8. Почніть прошивку.

Усунення проблем

Якщо маєте будь-які проблеми з установкою, перевірте наявну документацію із встановлення Microsoft WSL.

Ми також рекомендуємо мати останню версію Windows-драйвера GPU, а також встановити останню версію kisak mesa в середовищі Ubuntu для того, щоб більшість емулювалась більшість функцій OpenGL:

sh
sudo add-apt-repository ppa:kisak/kisak-mesa
sudo apt update
sudo apt upgrade