Автопілот Raspberry Pi 2/3/4 Navio2
PX4 не виробляє цей (чи будь-який інший) автопілот. Зверніться до виробника щодо підтримки апаратного забезпечення чи питань відповідності вимогам.
Це "швидкий старт" розробника для автопілотів Raspberry Pi 2/3/4 Navio2. Він дозволяє збирати PX4 і переносити на RasPi, або збирати нативно.
Образ OS
Використовуйте попередньо налаштований образ Emlid Raspberry Pi OS для Navio 2. Образ за замовчуванням вже містить більшість процедур налаштування, показаних нижче.
WARNING
Переконайтеся, що ви не оновлюєте систему (точніше, ядро). Під час оновлення може бути встановлено нове ядро, у якому відсутня необхідна підтримка HW (ви можете перевірити за допомогою ls /sys/class/pwm
, каталог не повинен бути порожнім).
Встановлення доступу
Образ OS Raspberry Pi вже має налаштований SSH. Ім'я користувача "pi" та пароль "raspberry". Для цілей цього посібника ми припускаємо, що ім'я користувача та пароль залишаються цими за замовчуванням.
Щоб налаштувати підключення Pi до локальної мережі Wi-Fi, дотримуйтесь цього посібника або підключіть його за допомогою кабелю Ethernet.
Для підключення до вашого Pi через SSH використовуйте стандартне ім'я користувача (pi
) та ім'я хоста (navio
). Крім того (якщо це не спрацювало), ви можете знайти IP-адресу вашого RPi та вказати її.
sh
ssh pi@navio.local
або
sh
ssh pi@<IP-ADDRESS>
Розширення файлової системи
Розширте файлову систему, щоб використовувати всю SD-карту під час запуску:
sh
sudo raspi-config --expand-rootfs
Вимикання оверлея Navio RGB
Існуючий оверлей Navio RGB використовує GPIO, що використовуються PX4 для RGB Led. Відредагуйте /boot/config.txt
, закоментувавши рядок, що вмикає оверлей navio-rgb
.
#dtoverlay=navio-rgb
Тестування передачі файлів
Ми використовуємо SCP для передачі файлів з комп'ютера для розробки на цільову плату через мережу (WiFi або Ethernet).
Щоб перевірити налаштування, спробуйте передати файл з ПК для розробки на Pi через мережу зараз. Переконайтеся, що у Pi є доступ до мережі, і ви можете використовувати SSH для входу.
sh
echo "Hello" > hello.txt
scp hello.txt pi@navio.local:/home/pi/
rm hello.txt
Це повинно скопіювати файл "hello.txt" у домашню директорію вашого Pi. Перевірте, що файл дійсно було скопійовано, і ви можете перейти до наступного кроку.
PX4 Development Environment
These instructions explain how to install a PX4 development environment for building RasPi on Ubuntu 18.04.
PX4 binaries for Navio 2 can only be run on Ubuntu 18.04.
You can build PX4 using the GCC toolchain on Ubuntu 20.04, but the generated binary files are too new to run on actual Pi (as of September 2023). For more information see PilotPi with Raspberry Pi OS Developer Quick Start > Alternative build method using docker.
Install the Common Dependencies
To get the common dependencies for Raspberry Pi:
Download ubuntu.sh and requirements.txt from the PX4 source repository (/Tools/setup/):
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
Run ubuntu.sh in a terminal to get just the common dependencies:
shbash ubuntu.sh --no-nuttx --no-sim-tools
Then setup a cross-compiler (either GCC or clang) as described in the following sections.
GCC (armhf)
Ubuntu software repository provides a set of pre-compiled toolchains. Note that Ubuntu Focal comes up with gcc-9-arm-linux-gnueabihf
as its default installation which is not fully supported, so we must manually install gcc-8-arm-linux-gnueabihf
and set it as the default toolchain. This guide also applies to earlier Ubuntu releases (Bionic). The following instruction assumes you haven't installed any version of arm-linux-gnueabihf, and will set up the default executable with update-alternatives
. Install them with the terminal command:
sh
sudo apt-get install -y gcc-8-arm-linux-gnueabihf g++-8-arm-linux-gnueabihf
Set them as default:
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)
If you want to build PX4 for ARM64 devices, this section is required.
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 (optional)
First install GCC (needed to use clang).
We recommend you to get clang from the Ubuntu software repository, as shown below:
sh
sudo apt-get install clang
Example below for building PX4 firmware out of tree, using 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
Збірка коду
Вкажіть IP-адресу (або ім'я хоста) вашого Pi:
sh
export AUTOPILOT_HOST=navio.local
або
sh
export AUTOPILOT_HOST=192.168.X.X
Значення змінної оточення слід встановити перед збіркою, інакше make upload
не зможе знайти ваш Pi.
Скомпілюйте виконувальний файл на вашому комп'ютері для розробки:
sh
cd PX4-Autopilot
make emlid_navio2
Виконувальний файл "px4" знаходиться у каталозі build/emlid_navio2_default/. Переконайтеся, що ви можете підключитися до вашого Pi по SSH, див. інструкції як отримати доступ до вашого Pi, слідуючи інструкціям для armhf під Raspberry Pi.
Потім завантажте його за допомогою:
sh
cd PX4-Autopilot
make emlid_navio2 upload
Потім підключіться через ssh та запустіть його на Pi (як root):
sh
cd ~/px4
sudo ./bin/px4 -s px4.config
A successful build followed by executing PX4 will give you something like this:
sh
______ __ __ ___
| ___ \ \ \ / / / |
| |_/ / \ V / / /| |
| __/ / \ / /_| |
| | / /^\ \ \___ |
\_| \/ \/ |_/
px4 starting.
pxh>
Автозавантаження
Для автозапуску px4 додайте наступне до файлу /etc/rc.local (відкоригуйте його відповідним чином, якщо ви використовуєте власну збірку), безпосередньо перед рядком вихід 0
:
sh
cd /home/pi && ./bin/px4 -d -s px4.config > px4.log