Skip to content

BeagleBone Blue

PX4 не виробляє цей (або будь-який інший) автопілот. Зверніться до виробника щодо підтримки обладнання або питань сумісності.

BeagleBone Blue - це багатофункціональний комп'ютер на базі Linux. Хоча ця компактна і недорога плата оптимізована для робототехніки, вона має всі необхідні датчики і периферійні пристрої, необхідні для керування польотом. У цій темі показано, як налаштувати плату для роботи PX4 з пакетом робототехніки librobotcontrol.

BeagleBone - діаграма з мітками

OS Image

BeagleBone Blue образи можна знайти тут:

Інформацію про перепрошивання образів ОС можна знайти на цій сторінці. Іншу корисну інформацію можна знайти в FAQ.

TIP

За бажанням ви можете оновитися до realtime kernel, і якщо ви це зробите, перевірте, чи librobotcontrol працює належним чином з realtime kernel.

Останніми образами ОС на момент оновлення цього документа є bone-debian-10.3-iot-armhf-2020-04-06-4gb.img.xz.

Збірка для крос-компіляторів (рекомендується)

Рекомендований спосіб збірки PX4 для BeagleBone Blue - це компіляція на комп'ютері розробника і завантаження виконуваного бінарного файлу PX4 безпосередньо на BeagleBone Blue.

TIP

Цей підхід рекомендується використовувати замість нативної збірки через швидкість розгортання та простоту використання.

Збірка PX4 потребує librobotcontrol, який автоматично включається до збірки (але його можна встановити і протестувати незалежно, якщо потрібно).

Налаштування Beaglebone Blue WIFI

Для зручного доступу до плати ви можете підключити її до домашньої мережі через Wi-Fi.

Кроки наступні (виконайте на платі):

sh
sudo su
connmanctl
connmanctl>scan wifi
connmanctl>services
#(at this point you should see your network SSID appear.)
connmanctl>agent on
connmanctl>connect <SSID>
    Enter Passphrase
connmanctl>quit

Формат <SSID> вище зазвичай є текстом 'wifi', за яким слідує ряд інших символів. Після введення команди вам буде запропоновано ввести пароль для wifi.

SSH root-логін на Beaglebone

Root-логін можна увімкнути на платі за допомогою:

sh
sudo su
echo "PermitRootLogin yes" >>  /etc/ssh/sshd_config && systemctl restart sshd

Налаштування крос-компілятора

  1. Спочатку налаштуйте rsync (використовується для передачі файлів з робочого комп'ютера на цільову плату через мережу - WiFi або Ethernet). Для rsync по SSH з аутентифікацією за ключем слід дотримуватися таких кроків (на машині розробника):

    1. Створіть ключ SSH, якщо ви раніше цього не робили:

      ssh-keygen -t rsa
      1. ENTER //no passphrase
      2. ENTER
      3. ENTER
    2. Визначте плату BeagleBone Blue як beaglebone у файлі /etc/hosts та скопіюйте публічний ключ SSH на плату для безпарольного доступу через SSH:

      ssh-copy-id debian@beaglebone
    3. Крім того, ви можете використовувати IP-адресу beaglebone безпосередньо:

      ssh-copy-id debian@<IP>
    4. На запитання, чи довіряєте ви: yes

    5. Введіть root пароль

  2. Налаштування крос-компіляції

    1. Завантаження інструментів

      1. Спочатку встановіть набір інструментів до /opt/bbblue_toolchain/gcc-arm-linux-gnueabihf. Ось приклад використання софт-посилання для вибору версії набору інструментів, яку ви хочете використовувати:

        sh
        mkdir -p /opt/bbblue_toolchain/gcc-arm-linux-gnueabihf
        chmod -R 777 /opt/bbblue_toolchain
        cd /opt/bbblue_toolchain/gcc-arm-linux-gnueabihf

        Компілятор ARM Cross для BeagleBone Blue можна знайти на сайті Linaro Toolchain Binaries.

GCC

у наборі інструментів має бути сумісним з ядром у BeagleBone Blue. Загальним правилом є вибір набору інструментів, версія якого не вища за версію GCC, що постачається з образом ОС на BeagleBone Blue.

     Завантажте та розпакуйте [gcc-linaro-13.0.0-2022.06-x86_64_arm-linux-gnueabihf.tar.xz](https://snapshots.linaro.org/gnu-toolchain/13.0-2022.06-1/arm-linux-gnueabihf/gcc-linaro-13.0.0-2022.06-x86_64_arm-linux-gnueabihf.tar.xz) до папки bbblue_toolchain.

     Різні версії компілятора ARM Cross для _BeagleBone Blue_ можна знайти на сайті [Linaro Toolchain Binaries](http://www.linaro.org/downloads/).

     ```sh
     wget https://snapshots.linaro.org/gnu-toolchain/13.0-2022.06-1/arm-linux-gnueabihf/gcc-linaro-13.0.0-2022.06-x86_64_arm-linux-gnueabihf.tar.xz
     tar -xf gcc-linaro-13.0.0-2022.06-x86_64_arm-linux-gnueabihf.tar.xz
     ```

TIP

Версія GCC в наборі інструментів має бути сумісною з ядром у BeagleBone Blue.

     Загальним правилом є вибір набору інструментів, версія якого не вища за версію GCC, що постачається з образом ОС на _BeagleBone Blue_.

  1. Додайте його до PATH в ~/.profile, як показано нижче

     ```sh
     export PATH=$PATH:/opt/bbblue_toolchain/gcc-arm-linux-gnueabihf/gcc-linaro-13.0.0-2022.06-x86_64_arm-linux-gnueabihf/bin
     ```

     ::: info

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

  1. Налаштуйте інші залежності, завантаживши вихідний код PX4, а потім виконайте сценарії налаштування:

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

     You may have to edit the upload target to match with your setup:

     ```sh
     nano PX4-Autopilot/boards/beaglebone/blue/cmake/upload.cmake

     # in row 37 change debian@beaglebone.lan TO root@beaglebone (or root@<IP>)
     ````

     Дивіться інструкції з [Налаштування середовища розробки](../dev_setup/dev_env_linux_ubuntu.md) для отримання додаткової інформації.

Налаштування крос-компіляції та завантаження

Компіляція та завантаження

make beaglebone_blue_default upload

INFO

Без завантаження файли зберігаються локально в папці збірки.

Для тестування завантажених файлів виконайте наступні команди на платі BeagleBone Blue:

sh
cd /home/debian/px4
sudo ./bin/px4 -s px4.config

Наразі librobotcontrol потребує root-прав доступу.

Нативні збірки (необов'язково)

Ви також можете нативно створювати збірки PX4 безпосередньо на BeagleBone Blue.

Після придбання готової бібліотеки,

  1. Виберіть каталог встановлення librobotcontrol та встановіть його у змінну середовища LIBROBOTCONTROL_INSTALL_DIR, щоб інші непотрібні заголовки не були включені
  2. Встановіть robotcontrol.h та rc/* в $LIBROBOTCONTROL_INSTALL_DIR/include
  3. Встановіть попередньо зібрану нативну (ARM) версію librobotcontrol.* у $LIBROBOTCONTROL_INSTALL_DIR/lib

Виконайте наступні команди на BeagleBone Blue (тобто через SSH):

  1. Встановіть залежності:

    sh
    sudo apt-get update
    sudo apt-get install cmake python3-empy=3.3.4-2
  2. Клонуйте програмне забезпечення PX4 безпосередньо на плату BeagleBone Blue.

  3. Продовжуйте встановлення стандартної збірки системи.

Зміни в конфігурації

Усі зміни можна вносити безпосередньо в файл налаштувань px4.config на beaglebone. Наприклад, ви можете змінити WIFI на wlan.

Якщо ви хочете внести зміни назавжди, вам слід змінити PX4-Autopilot/posix-configs/bbblue/px4.config у Build Machine перед збіркою.

Автозапуск під час завантаження

Ось приклад [/etc/rc.local]:

sh
#!/bin/sh -e
#
# rc.local
#
# This script is executed at the end of each multiuser runlevel.
# Make sure that the script will "exit 0" on success or any other
# value on error.
#
# In order to enable or disable this script just change the execution
# bits.
#
# By default this script does nothing.

# wait for services to start up
/bin/sleep 25

cd /home/debian/px4

/home/debian/px4/bin/px4 -d -s /home/debian/px4/px4.config > /home/debian/px4/PX4.log &

exit 0

Нижче наведено приклад служби systemd [/lib/systemd/system/px4-quad-copter.service]:

sh
[Unit]
Description=PX4 Quadcopter Service
After=networking.service network-online.target
StartLimitIntervalSec=0
Conflicts=px4-fixed-wing.service

[Service]
WorkingDirectory=/home/debian/px4
User=root
ExecStart=/home/debian/px4/bin/px4 -d -s /home/debian/px4/px4.config

Restart=on-failure
RestartSec=1

[Install]
WantedBy=multi-user.target

Інше

Силова серворейка

Коли PX4 починає працювати, він автоматично подає живлення на сервоприводи.

Унікальні можливості

BeagleBone Blue має деякі унікальні функції, такі як кілька варіантів інтерфейсів WiFi та джерел живлення. Дивіться коментарі в /home/debian/px4/px4.config для використання цих функцій.

Перетворювач сигналів SBUS

Сигнал SBUS від приймача (наприклад, FrSky X8R) є інвертованим сигналом. UARTs на BeagleBone Blue можуть працювати лише з неінвертованим сигналом рівня 3,3 В. У цьому навчальному посібнику міститься схема інвертора сигналу SBUS.

Типові підключення

Для квадрокоптера з GPS і приймачем SBUS, ось типові схеми підключення:

  1. Підключіть ESC двигуна 1, 2, 3 та 4 до каналу 1, 2, 3 та 4 вихідних сигналів сервоприводів на BeagleBone Blue відповідно. Якщо ваш роз'єм ESC містить вихідний контакт живлення, вийміть його і не підключайте його до вихідного контакту живлення каналу сервоприводу на BeagleBone Blue.

  2. Підключіть вищезазначений перетворений сигнал SBUS до порту dsm2, якщо у вас є відповідний роз'єм для dsm2, в іншому випадку підключіть його до будь-якого іншого доступного UART-порту та змініть відповідний порт у /home/debian/px4/px4.config відповідно.

  3. Підключіть сигнали модуля GPS до порту GPS на платі BeagleBone Blue. Зверніть увагу, що сигнальні контакти порту GPS на BeagleBone Blue підтримують лише 3,3 В, тому обирайте свій GPS-модуль відповідно.