PX4 Autopilot

Материал из ALT Linux Wiki

PX4 Autopilot - специализированное ПО для работы с прошивками полётных контроллеров дронов с открытым исходным кодом. Помимо сборки непосредственно прошивок возможна и сборка для запуска в среде моделирования для робототехники Gazebo. Основная часть кода написана на C++ и Python. Основывается на ОСРВ Nuttx. Сборка основана на Cmake.

Примечание: Работа проводилась на Альт Рабочая Станция К 10.3.


Подготовка к установке

Начать стоит с установки необходимых пакетов. Их достаточно много, но список всё равно не полный и может не охватывать всех возможных сценариев применения данной среды.

$ su -
# apt-get update
# apt-get dist-upgrade
# apt-get install gcc make cmake git arm-none-eabi-gcc arm-none-eabi-gcc-c++ python3 python3-modules-curses python3-module-pip python3-module-setuptools python3-module-future python3-modules-sqlite3 libncurses libncurses-devel gcc-c++ libidn1.34
# exit

Теперь от обычного пользователя необходимо помимо пакетов Альт установить пакеты python3 через стандартный пакетный менеджер pip3.

$ pip3 install kconfiglib curses-util empy==3.3.4 jinja2 symforce pyros-genmsg pyyaml jsonschema setuptools

Установка

Начать необходимо с клонирования репозитория PX4 с гитхаба. Обращаю внимание что необходимо именно клонировать с помощью гита, а не скачивать архивом с сайта. Вызвано это тем что помимо основного репозитория PX4 необходимо подгрузить ещё и его зависимости в виде ещё нескольких репозиториев. По этому скачивать исходники PX4 необходимо командой:

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

Из-за большого числа зависимостей процесс клонирования может идти достаточно долго.

Примечание: Клонирование в данном примере производится в домашнею папку пользователя.

Проверка работоспособности

Для начала работы необходимо перейти в папку с исходниками PX4:

$ cd PX4-Autopilot/

Для проверки работоспособности соберём прошивку для полётного контроллера Holybro Pixhawk 6X-RT (FMUv6X).

$ make px4_fmu-v6xrt_default

В случае успеха вы увидите в конце вывода командной строки что-то вроде:

[100%] Linking CXX executable ../../px4_fmu-v6xrt_default.elf
Memory region         Used Size  Region Size  %age Used
           flash:     2085884 B      3968 KB     51.34%
            sram:       91756 B      1280 KB      7.00%
            itcm:      212240 B       256 KB     80.96%
            dtcm:         936 B       256 KB      0.36%
[100%] Built target px4
[100%] Generating ../../px4_fmu-v6xrt_default.bin
[100%] Creating /home/user/PX4-Autopilot/build/px4_fmu-v6xrt_default/px4_fmu-v6xrt_default.px4
[100%] Built target px4_package

Собранный исполняемый файл лежит в папке:

PX4-Autopilot/build/px4_fmu-v6xrt_default/