Середовище розробки Ubuntu
Наступні інструкції налаштування середовища розробки з PX4 на версіях Ubuntu Linux LTS підтримуються розробниками PX4. Ці версії Ubuntu включають: 18.04 (Bionic Beaver), 20.04 (Focal Fossa) і Ubuntu 22.04 (Jammy Jellyfish).
Bash скрипти надаються для спрощення процесу. Задумувалося що вони будуть запускатися на чистих інсталяціях Ubuntu LTS та можуть не працювати, якщо запускаються "поверх" наявної операційної системи або на інших релізах Ubuntu.
Цільові платформи що підтримуються:
- Симуляція та NuttX (Pixhawk). Це включає: Gazebo, Gazebo Classic, jMAVSim, Pixhawk та інші основані на NuttX апаратні платформи).
- Raspberry Pi
- ROS 2 (Робототехнічна операційна система)
- ROS 1 (Робототехнічна операційна система)
TIP
Ця установка підтримується командою розробників PX4. Інструкції також можуть працювати на інших системах заснованих на Debian Linux.
Відеоінструкція
Це відео показує як встановити інструментарій для цільових платформ NuttX та симуляції (описано нижче) разом із базовим тестуванням що охоплено в розділі Збірка програмного забезпечення PX4.
Симуляція та NuttX (Pixhawk)
WARNING
Користувачам ROS слід спочатку прочитати/пропустити до секції ROS/Gazebo або ROS 2.
Використовуйте скрипт ubuntu.sh для встановлення інструментарію середовища розробника який дозволяє робити збірки для симуляторів або NuttX/Pixhawk. Скрипт встановлює jMAVSim для всіх варіантів встановлення, Gazebo Classic 9 на Ubuntu 18. 4, Gazebo Classic 11 на Ubuntu 20.04 та "Сад" Gazebo на Ubuntu 22.04.
Щоб встановити інструментарій:
- sh
git clone https://github.com/PX4/PX4-Autopilot.git --recursive
:::note Скрипти налаштування середовища у вихідному коді зазвичай працюють для останніх версій PX4. Якщо ви працюєте зі старішою версією PX4, то може знадобитися отримати вихідний код для конкретного релізу. :::
- Запустіть ubuntu.sh без аргументів (в оболонці bash), щоб встановити все:sh
bash ./PX4-Autopilot/Tools/setup/ubuntu.sh
- При появі підказки по ходу виконання скрипту підтвердить вибір.
- Також можна використовувати опції
--no-nuttx
та--no-sim-tools
, щоб пропустити встановлення інструментів для NuttX та/або симуляції.
- Перезавантажте комп'ютер при завершенні.
Details
Додаткові примітки Ці замітки надаються лише тільки "для інформації":
Якщо ви хочете використовувати Gazebo на Ubuntu 20.04 можна додати його вручну. Дивіться розділ Gazebo > Встановлення.
Ви можете перевірити встановлення NuttX, підтвердивши версію gcc як показано нижче:
sh$arm-none-eabi-gcc --version arm-none-eabi-gcc (GNU Arm Embedded Toolchain 9-2020-q2-update) 9.3.1 20200408 (release) Copyright (C) 2019 Free Software Foundation, Inc. This is free software; see the source for copying conditions. There is NO warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
Вам все одно потрібен вихідний код PX4. Однак якщо ви просто хочете встановити середовище розробки без того, щоб завантажувати весь код, замість цього ви можете просто завантажити ubuntu.sh та requirements.txt після чого виконати ubuntu.sh:
shwget https://raw.githubusercontent.com/PX4/PX4-Autopilot/main/Tools/setup/ubuntu.sh wget https://raw.githubusercontent.com/PX4/PX4-Autopilot/main/Tools/setup/requirements.txt bash ubuntu.sh
Raspberry Pi
Наступні інструкції пояснюють як встановити та зібрати набір інструментів для RasPi на Ubuntu 18.04.
WARNING
Для збірки на Ubuntu 20.04 (focal) потрібно використовувати Docker (інструментарій GCC на Ubuntu 20.04 може зібрати PX4, але згенеровані бінарні файли занадто нові, щоб запустити їх на реальній Pi). Для отримання додаткової інформації дивіться PilotPi з Raspberry Pi OS Швидкий старт розробки > Альтернативний метод збірки використовуючи Docker.
Щоб отримати загальні залежності для Raspberry Pi:
- Завантажте ubuntu.sh та requirements.txt з репозиторію PX4 (/Tools/setup/):
wget https://raw.githubusercontent.com/PX4/PX4-Autopilot/main/Tools/setup/ubuntu.sh wget https://raw.githubusercontent.com/PX4/PX4-Autopilot/main/Tools/setup/requirements.txt
- Запустіть ubuntu.sh в терміналі для отримання тільки загальних залежностей:sh
bash ubuntu.sh --no-nuttx --no-sim-tools
- Потім налаштуйте крос-компілятор (або GCC або clang) як описано в наступних розділах.
GCC (armhf)
Репозиторій програмного забезпечення Ubuntu надає набір попередньо скомпільованих інструментаріїв. Зверніть увагу, що Ubuntu Focal має в складі інструментарій версії gc-9-arm-linux-gnueabihf
, бо це встановлення за замовчуванням, і яке не підтримується повністю, тому потрібно вручну встановити версію gc-8-arm-linux-gnueabihf
і встановити його як інструментарій за замовчуванням. Ці інструкції також поширюється на більш ранні релізи Ubuntu (наприклад Bionic). Наступна інструкція припускає, що у вас не встановлено жодної версії arm-linux-gnueabihf й встановить виконуваний файл за замовчуванням за допомогою update-alternatives
. Встановіть інструментарій за допомогою команди терміналу:
sh
sudo apt-get install -y gcc-8-arm-linux-gnueabihf g++-8-arm-linux-gnueabihf
Налаштуйте їх як інструментарій за замовчуванням:
sh
sudo update-alternatives --install /usr/bin/arm-linux-gnueabihf-gcc arm-linux-gnueabihf-gcc /usr/bin/arm-linux-gnueabihf-gcc-8 100 --slave /usr/bin/arm-linux-gnueabihf-g++ arm-linux-gnueabihf-g++ /usr/bin/arm-linux-gnueabihf-g++-8
sudo update-alternatives --config arm-linux-gnueabihf-gcc
GCC (aarch64)
Якщо ви хочете зібрати PX4 для пристроїв на архітектурі ARM64, необхідний цей розділ.
sh
sudo apt-get install -y gcc-8-aarch64-linux-gnu g++-8-aarch64-linux-gnu
sudo update-alternatives --install /usr/bin/aarch64-linux-gnu-gcc aarch64-linux-gnu-gcc /usr/bin/aarch64-linux-gnu-gcc-8 100 --slave /usr/bin/aarch64-linux-gnu-g++ aarch64-linux-gnu-g++ /usr/bin/aarch64-linux-gnu-g++-8
sudo update-alternatives --config aarch64-linux-gnu-gcc
Clang (необов'язково)
Спочатку встановіть GCC (потрібно для використання clang).
Ми рекомендуємо брати clang з репозиторію програмного забезпечення Ubuntu, як показано нижче:
sudo apt-get install clang
Приклад нижче для побудови прошивки PX4 з дерева вихідного коду, використовуючи CMake.
sh
cd <PATH-TO-PX4-SRC>
mkdir build/px4_raspberrypi_default_clang
cd build/px4_raspberrypi_default_clang
cmake \
-G"Unix Makefiles" \
-DCONFIG=px4_raspberrypi_default \
-UCMAKE_C_COMPILER \
-DCMAKE_C_COMPILER=clang \
-UCMAKE_CXX_COMPILER \
-DCMAKE_CXX_COMPILER=clang++ \
../..
make
Подробиці
Додаткова інформація розробника для використання PX4 на Raspberry Pi (включаючи нативну збірку PX4) наведена тут:
ROS 2
Інформацію про встановлення ROS 2 та розробку з PX4 можна знайти в Інструкції користувача ROS 2.
В цілому, якщо ви працюєте з апаратним забезпеченням та вам не потрібно змінювати PX4, тоді вам не потрібне середовище розробки PX4 (залежності для роботи з ROS 2 включені та вбудовані в прошивку PX4 за замовчуванням).
Вам потрібно буде встановити звичайне середовище розробки симулятора для того, щоб працювати з симулятором PX4.
ROS/Gazebo Classic
Ця секція пояснює як встановити ROS 1 з PX4. Повна збірка ROS 1 для настільного комп'ютера йде разом з Gazebo Classic, тому зазвичай вам не потрібно встановлювати залежності симулятора PX4 самостійно!
ROS Noetic/Ubuntu 20.04
Якщо ви працюєте з ROS Noetic на Ubuntu 20.04:
Встановлення PX4 без інструментарію симулятора:
- sh
git clone https://github.com/PX4/PX4-Autopilot.git --recursive
Запустіть ubuntu.sh
--no-sim-tools
(та опціонально--no-nuttx
):shbash ./PX4-Autopilot/Tools/setup/ubuntu.sh --no-sim-tools --no-nuttx
- При появі підказки по ходу виконання скрипту підтвердить вибір.
Перезавантажте комп'ютер при завершенні.
Вам можливо потрібно встановити наступні додаткові залежності:
sudo apt-get install protobuf-compiler libeigen3-dev libopencv-dev -y
Дотримуйтесь інструкцій із встановлення Noetic (рекомендовано варіант ros-noetic-desktop-full).
Встановіть MAVROS дотримуючись інструкцій із встановлення MAVROS.
ROS Melodic/Ubuntu 18.04
Якщо ви працюєте з ROS Melodic на Ubuntu 18.04:
Завантажте скрипт ubuntu_sim_ros_melodic.sh в оболонці bash:
shwget https://raw.githubusercontent.com/PX4/Devguide/master/build_scripts/ubuntu_sim_ros_melodic.sh
Запустіть скрипт:
shbash ubuntu_sim_ros_melodic.sh
Можливо, вам буде потрібно підтвердити вибір, коли з'являться підказки по ходу виконання скрипту.
:::note
- ROS Melodic встановлено в Gazebo (Classic) 9 за замовчуванням.
- Робоче середовище catkin (система збірки ROS) створено за шляхом ~/catkin_ws/.
- Скрипт використовує інструкції зі сторінки Wiki ROS "Melodic" Ubuntu. :::
Наступні кроки
Після того, як ви закінчите налаштування інструментів командного рядка:
- Встановіть VSCode (якщо ви надаєте перевагу IDE ніж командному рядку).
- Встановіть денну збірку QGroundControl :::tip Денна збірка включає інструменти розробки яких немає в релізних збірках. Вона також може надати доступ до нових функцій PX4, які ще не підтримуються в релізних збірках. :::
- Переходьте до інструкцій збірки.