Open Digital Innovations HardwareОпубликована 7 дней назад · отклик: Сайт вакансий
Senior-разработчик бортового ПО БПЛА (ArduPilot, C++)
Зарплата400 000–650 000 ₽ на руки
ФорматГибрид
ЛокацияМосква, Россия
ГрейдSenior
ЗанятостьПолная занятость
Разработка тяжёлых грузовых мультироторов на 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
- Прямое влияние на техническую политику компании, работа с руководителем разработки
Инструменты в вакансии
Навыки и технологии
Направления