PX4 Autopilot
PX4 Autopilot - специализированное ПО для работы с прошивками полётных контроллеров дронов с открытым исходным кодом. Помимо сборки непосредственно прошивок возможна и сборка для запуска в среде моделирования для робототехники Gazebo. Основная часть кода написана на C++ и Python. Основывается на ОСРВ Nuttx. Сборка основана на Cmake.
Подготовка к установке
Начать стоит с установки необходимых пакетов. Их достаточно много, но список всё равно не полный и может не охватывать всех возможных сценариев применения данной среды.
$ 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/