Москва, Покровская улица
Метро: ЛухмановскаяНаправление: Бортовые системы БПЛА
О роли:
Мы ищем инженера-программиста для разработки и сопровождения отказоустойчивого ПО бортовых вычислительных комплексов беспилотных летательных аппаратов.
Работа охватывает полный стек — от драйверов нижнего уровня на «голом железе» до
middleware-сервисов на Linux и интеграции с экосистемой ROS.
Если вы способны одновременно думать фронтом сигнала на ножке МК и графиком
топика в PlotJuggler — эта позиция для вас.
Чем предстоит заниматься:
Проектирование и разработка firmware на C++ для микроконтроллеров STM32F4/G4 (FreeRTOS, HAL/LL, работа с регистрами напрямую).
Разработка и отладка конечных автоматов (FSM) для критической логики безопасности:
Fail-Safe, защита от ложных срабатываний, аппаратные и программные watchdog-таймеры.
Написание низкоуровневых драйверов периферии без блокирующих вызовов: EXTI, DMA, таймеры Capture/Compare, I2C/SPI в неблокирующем режиме.
Реализация обмена по шине CAN/CAN-FD с использованием протокола
DroneCAN (UAVCAN v0/v1), включая работу с libcanard.
Разработка bridge-сервисов на Python 3 под Linux: трансляция данных между
CAN-шиной и ROS1 (rosserial, publisher/subscriber-ноды, кастомные сообщения).
Диагностика и устранение аномалий: HardFault, джиттер прерываний, Race Conditions, некорректная синхронизация в многозадачной среде FreeRTOS.
Сопровождение сборочной инфраструктуры: CMake, Ninja, кодогенерация
(парсинг DSDL, генерация C++-заголовков).
Макетирование и сборка стендов для разрабатываемых устройств: подключение
периферии, отладочных интерфейсов и измерительного оборудования.
Ведение проекта в GitLab: работа с ветками, MR/CR, настройка и сопровождение
пайплайнов CI/CD (сборка, прогон тестов, автодеплой артефактов).
Участие в проведении ревью кода и формировании командных стандартов разработки.
Обязательные требования:
Языки и платформы
C/C++ (C++14/17) — уверенное владение; понимание специфики критических систем:
отказ от RTTI, исключений и динамической памяти в real-time контексте.
Python 3 — написание устойчивых к сбоям системных демонов, корректная обработка исключений, управление ресурсами ОС (файловые дескрипторы, сокеты).
ROS1 (Noetic) — разработка нод, работа с publisher/subscriber,
кастомными типами сообщений, параметрами и launch-файлами.
Микроконтроллеры и периферия
Архитектура ARM Cortex-M: работа с регистрами, CMSIS, HAL/LL STM32.
Периферия: CAN, I2C, SPI, UART, EXTI, DMA, таймеры (PWM, Capture/Compare).
FreeRTOS: задачи, очереди, мьютексы, семафоры, корректная синхронизация,
предотвращение Race Conditions и дедлоков.
Сериализация и передача данных
Глубокое понимание упаковки данных: побитовые операции, выравнивание памяти
(padding), порядок байт и бит (Endianness, LSB/MSB first).
Опыт работы с бинарными протоколами (CRSF, SBUS, DroneCAN, кастомные фреймы).
Инструментарий
GCC ARM Toolchain, CMake, Git.
Желательные требования:
ROS2 (Humble/Iron) — базовое понимание архитектуры, DDS, отличий от ROS1.
PlotJuggler — построение и анализ временны́х рядов телеметрии; создание custom
плагинов или скриптов трансформации данных будет существенным преимуществом.
DroneCAN/UAVCAN v1 — работа с libcanard v1, расчёт DSDL-сигнатур,
генерация кода через nunavut.
Опыт тестирования firmware в эмуляторах (QEMU) в контуре CI/CD (GitLab CI).
Опыт работы с осциллографом для анализа аналоговых сигналов и временны́х диаграмм.
Мы предлагаем:
Оставляйте отклик и пишите сразу в телеграм!
Научно-производственное объединение дальней радиолокации имени академика А.Л. Минца
Москва
Не указана
Научно-производственное объединение дальней радиолокации имени академика А.Л. Минца
Москва
до 300000 RUR
Научно-производственное объединение дальней радиолокации имени академика А.Л. Минца
Москва
до 300000 RUR
Конструкторское бюро беспилотных систем
Москва
до 200000 RUR
Научно-производственное объединение дальней радиолокации имени академика А.Л. Минца
Москва
до 200000 RUR
ПИК-специализированный застройщик
Москва
до 250000 RUR