Опубликована 3 дня назад · hh.ru
Senior-разработчик / архитектор бортового ПО БПЛА (ArduPilot, Companion, ЦУП)
Open Digital Innovations
- Москва · офис
- senior
- 400–650 тыс. ₽
О вакансии
Что надо знать и уметь
Делаем тяжёлые грузовые мультироторы на 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. Прямое влияние на техническую политику компании, работа с руководителем разработки.
Навыки из вакансии
Письмо под эту вакансию
Напишет ИИ-работяга по вашему резюме с hh.ru. Бесплатно, 5 в день.
Нужен вход через Telegram и подключённый hh — резюме берём оттуда.


