Senior-разработчик / архитектор бортового ПО БПЛА (ArduPilot, Companion, ЦУП)

Open Digital Innovations · Москва

от 400 000 до 650 000 ₽ на руки

  • От 3 до 6 лет
  • Полная
  • Гибрид

Описание вакансии

Что надо знать и уметь:

Делаем тяжёлые грузовые мультироторы на

ArduPilot с бортовым компьютером Raspberry Pi 5

+ Hailo-8, навигацией без GPS (VIO) и собственным

наземным ПО «Точка ЦУП». Ищем сильного

разработчика, который отвечает за архитектуру

всей программной части «борт — компаньон —

земля», лезет в исходники ArduPilot, когда это

нужно, и ведёт команду разработчиков.

Стек:

Полётный контроллер: ArduPilot Copter

(единственная система) — C++ исходники,

сборка под свои платы, Lua, SITL, Replay

Компаньон: Raspberry Pi 5 + Hailo-8, Linux,

Python 3, Go, Rust, C++17 (там, где нужна

интеграция с ArduPilot/HailoRT), systemd,

Docker.

Протоколы: MAVLink (в т.ч. кастомные

сообщения и диалекты), DroneCAN,

UART/Ethernet/PPP.

Видео и CV: GStreamer, OpenCV, HailoRT,

камеры global shutter.

Навигация: VIO / визуальная одометрия,

внешняя навигация в EKF3, оптический поток,

дальномеры.

Наземка: «Точка ЦУП» — Go / Python / Rust,

видео по GStreamer, MAVLink.

Инструменты: Git, CI, pytest/gtest, разбор логов,

PID Toolbox / MAVExplorer.

Обязанности:

Архитектура и код

Проектирование и развитие архитектуры

программной части: разделение

ответственности между FC, компаньоном и

ЦУП, протоколы обмена, отказоустойчивость,

поведение при потере связи и отказе

датчиков.

Разработка и сопровождение сервисов

компаньона на Python/C++: навигация,

управление миссией через Guided, обработка

событий, телеметрия, watchdog

Доработка ArduPilot на уровне исходников:

драйверы датчиков, правки в режимах и

библиотеках, hwdef под свои платы,

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

процедурой обновления на новые релизы

Интеграция VIO/CV-пайплайна с EKF3:

тайминги, ковариации, источники (EK3_SRC),

lane switching; доказательство корректности

по логам и SITL.

Развитие «Точки ЦУП»: протокол с бортом,

отображение телеметрии и видео,

планирование миссий, работа с несколькими

бортами.

Lua-скрипты и кастомные режимы ArduPilot

под задачи заказчика.

Команда и процесс:

Техническое руководство middle-

разработчиком(ами): постановка задач,

ревью, рост.

Участие в подборе разработчиков: тестовые

задания, технические собеседования

Организация процесса: репозитории, CI,

обязательные SITL-тесты перед бортом,

релизы образов компаньона и прошивок,

changelog.

Политика бэкапов и версионирования парка:

параметр-файлы, прошивки, образы

компаньона и конфигурации ЦУП по каждому

борту с возможностью отката.

Техническая документация: архитектура,

протоколы, инструкции по развёртыванию,

разбор инцидентов.

Совместная работа с инженерами настройки и

ведущим инженером: постановка лётных

экспериментов, разбор логов, решение «это

железо или софт».

Требования:

Опыт разработки от 5–6 лет, из них не менее 2

лет в робототехнике, БПЛА или embedded

Linux.

Python и Go и/или Rust на уровне senior, плюс

уверенный C++ для работы с исходниками

ArduPilot и HailoRT: многопоточность, работа с

железом, ограничения по CPU/памяти

ArduPilot на уровне исходников: собирали

прошивку, вносили правки, ориентируетесь в

структуре библиотек (AP_, AC_), понимаете

EKF3, position/attitude controller, как работают

режимы и failsafe.

Глубокое знание MAVLink: проектирование

обмена, кастомные сообщения, генерация

библиотек, работа с несколькими sysid

Опыт с VIO/SLAM или другой внешней

навигацией в связке с полётным

контроллером: хотя бы один проект,

доведённый до полёта.

Опыт с GStreamer и CV в реальном времени,

деплой нейросетей на edge-ускорители

Linux на уровне системного разработчика:

сборка образов, systemd, сеть, отладка

производительности.

Опыт технического лидерства: вели 2+

разработчиков, отвечали за архитектуру и

результат.

Активный пользователь Claude / LLM-

ассистентов в разработке (vibe coding как

рабочий инструмент): быстро прототипируете,

но проверяете и несёте ответственность за

код.

Английский: документация, исходники,

обсуждения на GitHub и discuss.ardupilot.org

Готовность ездить на площадку на

интеграцию и тестовые полёты; на площадке

  • по правилам безопасности.

Будет плюсом

Принятые PR в ArduPilot или активность в

сообществе ROS 2 / ArduPilot DDS

DroneCAN: разработка периферии на

AP_Periph, свои узлы.

Опыт разработки наземных станций: QGC,

Mission Planner, свои решения

Опыт с самолётами и QuadPlane на ArduPilot

Plane, работа с одометрией и навигационными

датчиками.

Опыт с mesh-сетями и радиоканалами

передачи данных

Знание регуляторики БАС в РФ, Remote ID /

OpenDroneID в ArduPilot.

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

Безопасность и ответственность.

Код, который влияет на полёт, идёт на борт

только после прогона в SITL и ревью; на

реальном борту — только с инженером

настройки по чек-листу.

Каждая правка прошивки, образа компаньона

и параметр-файла — с версией и записью в

changelog.

Условия:

Оформление по ТК РФ, полная занятость,

гибрид. Зарплата по результатам собеседования.

Работа с информацией заказчиков под NDA.

Прямое влияние на техническую политику

компании, работа с руководителем

разработки.

Ключевые навыки

  • Python
  • Linux
  • Обучение персонала
  • Управление командой
  • Английский язык
  • С#

Похожие вакансии