Прошивка полетника дрона

Mar 09, 2023 09:25


Если не брать закрытые (которые вообще непонятно зачем писать свои сегодня с нуля), то есть Ardupilot, PX4, Betaflight.  Можно найти что-то ещё и всякие форки типа ArduCopter, но их отложим в сторону.

Упрощенная до предела ситуация такая: betaflight для fpv, px4 для программистов, а ardupilot ни для тех, ни для других.

У бетафлайта самая широкая поддержка самых дешевых полетников, вроде как всякие тонкие настройки именно ручного управления. Короче, акробатика и пролеты под едущим грузовиком - туда.

Ardupilot и PX4 это прям два разных мира: практичные железячники и программисты.



PX4 https://github.com/px4/PX4-Autopilot/  является частью проекта dronecode в который входят:

  1. код для полетника
  2. QGroundControl - программа, которая запускается на компьютере (условно, аналог DJI Fly)
  3. mavlink - протокол для связи дрона с землей и различных компонент друг с другом. Это основной и практически безальтернативный протокол, но тот же бетафлайт не умеет читать его как источник команд, принимает только команды с радио в виде «стик туда, стик сюда»

Можно смело утверждать, что экосистема PX4 тесно связана с:

  1. ROS - robot operation system. Это платформа, позволяющая выстраивать на общей pubsub шине компоненты робота. Так, например, модуль optical flow запущенный в ROS на малинке рядом с полетником может взять текущую высоту с дальномера через mavlink-ros шлюз, склеить его со смещением картинки, вычислить два подобных треугольника и выдать коррекцию на возврат дрона на старую точку. На мой вкус ROS от вебскейла отстает лет так на 7-8, но возможно на одной железке и нет таких проблем, какие бывают в кластерах на сотни серверов.
  2. Gazebo - среда симуляции. Его везде очень настоятельно рекомендуют использовать, с газебо слинкованы модули типа получения картинки с видеокамеры, чтобы можно было обкатывать алгоритмы управления машинным зрением. В нём можно нарисовать склад и тренировать дрон на облет склада. Сразу скажу: не всё так гладко при переносе из симулятора в реальность, но без симулятора в принципе ничего сложного не сделать.

Внутри PX4 используется RTOS NuttX, это операционка, умеющая кооперативно шедулить драйвера и таски на STM32.

Один из примеров работ вокруг PX4: облет препятствий на пути к цели.

Т.е. два полярных мира: бетафлайт в котором очень много уделено внимания настройкам точности реакции на стики и детализация OSD для передачи в очки, но отсутствует управление с ARM через mavlink и PX4 в котором вообще нет поддержки OSD, но есть системы интеллектуального облета препятствий для автономных дронов.

Про ardupilot сказать особо нечего. Многие говорят что он практичнее, но так говорят чаще те, кто летают руками и не планируют делать автономные системы.

px4, ardupilot, drone, betaflight

Previous post Next post
Up