Программист дронов: чем занимается, что нужно знать и как учиться
Программист дронов пишет и настраивает программы, которые управляют гражданским беспилотником: дорабатывает полётный стек PX4 или ArduPilot, связывает автопилот с бортовым компьютером по протоколу MAVLink, собирает узлы ROS 2, подключает камеры и алгоритмы компьютерного зрения, проверяет всё в симуляторе и разбирает журналы испытательных полётов. Понадобятся C++ и Python, Linux, линейная алгебра и основы теории управления.
Содержание
Слово «дрон» в названии вводит в заблуждение: кажется, что главное здесь — умение летать. На деле квадрокоптер, который сам облетает поле по сетке, осматривает опору ЛЭП или садится на площадку зарядной станции, держится в воздухе благодаря программам, и большая их часть уже написана. Стабилизацию, оценку положения по датчикам и режимы полёта берёт на себя открытый полётный стек. Программист дронов решает то, чего в стеке нет: как аппарату выполнить конкретную задачу заказчика и что делать, если что-то пошло не так.

Из чего состоит программа беспилотника
У гражданского дрона обычно два вычислителя. Первый — полётный контроллер: плата с микроконтроллером, гироскопами, акселерометрами и барометром. На ней работает автопилот, чаще всего PX4 или ArduPilot. Он сотни раз в секунду считывает датчики, оценивает положение аппарата и управляет моторами.
Второй — бортовой компьютер (companion computer) под Linux. Там работают задачи потяжелее: обработка видео, распознавание объектов, построение карты, планирование маршрута. Моторами он не управляет и передаёт автопилоту команды: лети в точку, держи скорость, садись.
Между ними ходят сообщения MAVLink — компактного протокола, на котором «разговаривают» почти все открытые автопилоты и наземные станции вроде QGroundControl. С бортового компьютера к нему обращаются через библиотеки MAVSDK или pymavlink, а если проект построен на ROS 2 (Robot Operating System — набор библиотек и соглашений для роботов), PX4 подключается к нему через слой uXRCE-DDS. Большая часть работы программиста проходит на этой границе: что считает автопилот, а что — бортовой компьютер.
Чем работа отличается от соседних профессий
Оператор, или внешний пилот, управляет аппаратом и отвечает за конкретный полёт; программист может не держать в руках пульт, хотя опыт пилотирования в вакансиях часто стоит в графе «будет плюсом». Инженер-конструктор проектирует раму, подбирает моторы и аккумуляторы, а программист получает готовую платформу и заставляет её выполнять задачу.
С C++-разработчиком профессию роднит язык: модули PX4 и ArduPilot написаны на C++. Но здесь язык — инструмент, а главное — предметная область: системы координат, фильтры, регуляторы, поведение аппарата при потере связи. Специалист по ИИ, который встраивает языковые модели в бизнес-процессы, решает другие задачи; беспилотникам ближе компьютерное зрение, работающее на борту в реальном времени на слабом железе. Инженер по автоматизации тоже программирует управление оборудованием, но его объекты стоят на месте и подключены к ПЛК. А инженер-программист — название должности, под которым может скрываться и эта работа, и совсем другая.
Учебный пример: посадка на маркер в симуляторе
Учебную задачу удобно собрать без собственного аппарата. Квадрокоптер в симуляторе Gazebo с PX4 в режиме SITL (software in the loop: автопилот запускается на компьютере вместо платы) должен найти на площадке маркер ArUco — чёрно-белый квадрат, похожий на QR-код, — и сесть точно на него.
Программист пишет узел ROS 2, который получает кадры с виртуальной камеры, находит маркер средствами OpenCV и вычисляет смещение аппарата относительно его центра. Второй узел превращает смещение в целевую точку и отправляет её автопилоту. Для этого PX4 переводят в режим Offboard, в котором аппарат слушается внешней программы, а не пульта.
У режима есть правило, о котором новички узнают на первом неудачном запуске. По документации PX4, поток команд от внешней программы должен идти ещё до переключения в Offboard, а если он прерывается, автопилот выходит из режима и выполняет заданное аварийное действие. Сколько ждать, задаёт параметр COM_OF_LOSS_T, что делать — COM_OBL_RC_ACT. По справочнику параметров таймаут по умолчанию — 1 секунда, а действие по умолчанию — переход в режим удержания позиции (Position), рассчитанный на пилота с пультом; среди других вариантов — возврат домой, посадка, зависание и отключение моторов.
На практике это значит: если распознавание маркера на слабом ноутбуке однажды задумается на полторы секунды, дрон перестанет подчиняться программе посреди захода на посадку. Решение архитектурное: команды автопилоту отправляют в отдельном потоке с постоянной частотой, тяжёлые вычисления живут отдельно и лишь обновляют целевую точку, а аварийное действие для испытаний выбирают осознанно. Такие ошибки хорошо видны в журналах полёта, поэтому разбор логов — заметная часть работы.
После симулятора программа встречается с реальным миром: вибрация смазывает кадр, солнце бликует на маркере, спутниковая навигация «уплывает» у здания. Поэтому результат учебной задачи — не видео удачной посадки, а описание, при каких условиях алгоритм работает и где ломается.
Какие знания нужны
C++ нужен, чтобы читать и дорабатывать код автопилота, писать драйверы датчиков и быстрые узлы ROS 2, Python — для скриптов, обработки логов и компьютерного зрения. Проверить, подходит ли вам низкоуровневое программирование, можно на короткой программе: курс Skillbox «C++ для робототехников» по опубликованному обзору охватывает сборку через CMake, работу с памятью, классы, интерфейсы на Qt5, программирование Arduino и ESP32 в симуляторе Wokwi и связку с Python через pybind11. ROS и полётные контроллеры в обзоре не упоминаются, а длительность указана по-разному — её стоит уточнить у школы.
Кроме языков понадобятся Linux и рабочая математика: повороты и системы координат, основы теории вероятностей для фильтров, ПИД-регулирование. Без этого не понять, почему дрон раскачивается или сносится в сторону. Отдельный блок — сенсоры и навигация: GNSS и RTK, инерциальные датчики, дальномеры, комплексирование данных в расширенном фильтре Калмана (EKF). В проектах с камерами добавляются OpenCV, детекторы вроде YOLO и SLAM — одновременное построение карты и определение своего положения на ней.
Как это складывается в требования, видно по вакансии инженера-программиста систем управления БПЛА на ArduPilot, опубликованной в Новосибирске 17 сентября 2026 года. Работодатель, который делает гражданские платформы для съёмки и картографии, ждёт опыта с ArduPilot, PX4 или Betaflight/iNav, понимания регуляторов, систем координат и комплексирования данных датчиков, знания C++ и ROS, технического образования и опыта от трёх до шести лет. Плюсом названы доработка исходного кода стека, RTK и EKF, скрипты на Lua и лётные испытания.
Как выглядит работа и что может не подойти
Большая часть времени уходит на код, симуляцию, разбор логов и код-ревью. Потом наступает полевой день: испытание, которое в симуляторе занимает минуту, в поле требует выезда, заряженных аккумуляторов и напарника с пультом на случай отказа программы, а планы часто срывает погода.
Договариваться приходится с конструктором, которого надо убедить жёстче закрепить плату, с пилотом, чьё «аппарат вёл себя странно» нужно превратить в воспроизводимый сценарий, и с заказчиком: агроному нужна не «автономность», а ровные ряды снимков с перекрытием для ортофотоплана.
Цена ошибки здесь физическая: разбитый аппарат, а в худшем случае — травма. Работать приходится в большой чужой кодовой базе открытого стека. А если вам нравится сразу видеть результат, цикл «написал — собрал — проверил в симуляторе — выехал в поле» может показаться слишком долгим.
Какие правила касаются профессии
Отдельного допуска для программиста гражданских дронов нет, и онлайн-курс его не даёт, но испытательные полёты подчиняются общим правилам.
Беспилотники с максимальной взлётной массой от 0,15 до 30 кг ставят на учёт в Росавиации в течение 10 рабочих дней после покупки или ввоза, а собранные самостоятельно — до первого полёта; заявление можно подать через Госуслуги, а учётные знаки наносят на корпус до начала полётов (Правила, утверждённые постановлением Правительства № 658). Постановление № 83 от 2 февраля 2026 года с 1 марта 2026 года добавило в учётные сведения опознавательный индекс аппарата (кроме аппаратов легче 0,25 кг), а часть норм о передаче данных о полётах через оператора «ЭРА-ГЛОНАСС» вступает в силу с 1 марта 2027 года.
Сами полёты регулируют Федеральные правила использования воздушного пространства (постановление № 138). По общему правилу нужны план полёта и разрешение; исключение сделано для визуальных полётов аппаратов до 30 кг в пределах прямой видимости на малых высотах, вдали от аэродромов и вне зон ограничений. Над населёнными пунктами требуется разрешение органа местного самоуправления, а в ряде регионов действуют собственные временные ограничения. Поэтому полигон и порядок испытаний обычно организует работодатель, а в учебных проектах большую часть проверок разумно делать в симуляторе.
С 1 сентября 2026 года действуют Федеральные авиационные правила о требованиях к авиационному персоналу (приказ Минтранса № 236). В них есть специальность «внешний пилот», но на системы с аппаратами массой 30 кг и менее правила не распространяются. И это требования к тому, кто управляет полётом, а не к тому, кто пишет код.
Сколько платят
Открытой статистики зарплат именно программистов беспилотников найти не удалось: вакансий по специализации немного, и суммы в них часто не указаны. Опереться можно лишь на общий фон.
По исследованию Хабр Карьеры за первое полугодие 2026 года (опубликовано 21 июля 2026 года, 45 226 зарплат из анонимного калькулятора) медианная зарплата в IT по России — 191 000 ₽ в месяц; в Москве — 235 000 ₽, в Санкт-Петербурге — 200 000 ₽, в остальных регионах — 160 000 ₽. Медиана разработчиков на C++ — 254 000 ₽, на Python — 243 000 ₽. Это фактические зарплаты специалистов всех уровней, а не предложения в вакансиях; разбивки по опыту для языков нет, не указано, до вычета налога суммы или на руки, а отдельной строки для беспилотных систем в отчёте нет.
На доход влияют отрасль заказчика, глубина работы (настройка готового стека или доработка его исходного кода), готовность ездить на испытания и опыт реальных полётов. Смотря вакансии, отделяйте «на руки» от «до вычета», ставьте фильтр по опыту и региону и читайте требования: в одной выдаче окажутся и программист микроконтроллеров, и оператор.
Как учиться и с какой базы начинать
Проще входить из смежной профессии: разработчику на C++ или Python не хватает предметной области, инженеру-механику или электронщику — программирования. С полного нуля путь длиннее, потому что учить придётся сразу язык, Linux и прикладную математику. Начать можно бесплатно: оба стека подробно документированы и запускаются в симуляторе на обычном компьютере.
Систематичный путь даёт длинная программа. Программа Skillbox «Программист дронов» рассчитана на 13 месяцев и идёт от Linux и Python через математику и C++ к модулю о беспилотных системах: симуляции полётов, обработке данных датчиков, SLAM и навигации. Практические работы проверяют кураторы, итоговый проект — программа навигации и управления дроном. По обзору курс подходит студентам инженерных специальностей, Python-разработчикам и инженерам без опыта разработки, но нужна уверенная школьная математика; учиться можно без собственного дрона, поэтому симуляторы, аппаратную практику и требования к компьютеру стоит уточнить до оплаты.
Выбирая любую программу, проверьте, будет ли работа с настоящим полётным стеком, а не только с абстрактной робототехникой, какие симуляторы используются и потянет ли их ваш компьютер, есть ли проект, где программа управляет аппаратом через MAVLink или ROS 2, и кто проверяет код. Симулятор не воспроизводит всех проблем реального оборудования, так что узнайте, бывают ли испытания на железе.
Проверить интерес к теме можно в коротком формате. Онлайн-курс Нетологии «Управление дронами с использованием компьютерного зрения» по обзору длится девять недель при нагрузке 10–12 часов в неделю: видеолекции, вебинары и задания с проверкой, от основ компьютерного зрения и Python до полётных контроллеров и связки нейросетей с управлением аппаратом, с итоговым проектом. Обзор на Учи.Онлайн помечен как архивный, а на сайте школы в сентябре 2026 года курс открыт для записи, поэтому даты, цену и программу уточните у Нетологии.
Что показать работодателю
Лучшее доказательство — репозиторий с проектом, который запускается у другого человека. Для посадки на маркер это код узлов, инструкция запуска в симуляторе, запись экрана, журнал полёта и короткий разбор: при каком освещении и на какой высоте детектор теряет маркер, как программа ведёт себя при потере потока команд. Такой разбор показывает инженерное мышление лучше удачного дубля. Вес добавит и вклад в открытые проекты: исправление в документации PX4, небольшой патч в ArduPilot, скрипт разбора логов.
Первые шаги бывают разными: стажировка в команде, которая делает аппараты для сельского хозяйства или съёмки, переход к дронам внутри компании из программирования микроконтроллеров или компьютерного зрения, студенческие лаборатории. Если вы выбираете школу, а не конкретную программу, пригодится общий рейтинг онлайн-школ по программированию и IT: он не посвящён беспилотникам, но сравнивает школы по практике, поддержке наставников, гибкости и стоимости обучения, а тематику программы потом стоит сверить со списком выше.