Обязанности:
Авихимса — полностью российская IT-компания. Мы разрабатываем и внедряем ПО для автономного управления роботизированной техникой. Команда состоит из специалистов в разных областях: робототехники, автономного движения, технологий компьютерного зрения, дополненной и виртуальной реальности, работы с данными. Мы разрабатываем «ВДОЛЬ» — автономную систему управления мобильными роботами. Наши роботы уже работают в реальных условиях: ориентируются без GPS с помощью лидаров и алгоритмов, накапливают моточасы. Мы переходим от этапа R&D к масштабированию, поэтому нам нужен инженер, который умеет строить надёжные стыки между физическим миром (железом) и нашими алгоритмами и который понимает, что происходит ниже уровня middleware, не боится держать в руках паяльник и может решить проблему там, где другие говорят «это где-то в железе». Технологический стек: Платформа: x86 + NVIDIA GPU (Linux), ROS 2. Шины и транспорт: SocketCAN (250 кбод, 11-bit), TCP/SLCAN (I-7540D), бинарный UART, MQTT. Сенсоры: 3D/2D Лидары (Leishen, RoboSense), Глубинные камеры (Luxonis OAK-D), IMU (MPU-6050/9250). Firmware: STM32F103 (C99), STM32CubeIDE, OpenOCD. Чем предстоит заниматься: 1. Полный цикл интеграции железа (от идеи до работающего робота):Придумывать концепт сенсорного юнита, подбирать комплектующие, продумывать питание и интерфейсы, собирать прототип руками и заставлять его стабильно отдавать данные в наш софт. 2. Реверс-инжиниринг и транспортный слой:Часто документации нет или она врет. Нужно уметь подключиться к CAN/UART сторонней платформы, сниффером разобрать протокол и научиться ей управлять в обход кривых API. Писать коннекторы (C/C++/Python), которые соединяют шины с верхним уровнем системы. 3. Локализация проблем и работа с партнерами:Робот встал — таймаут CAN-узла, джиттер энкодеров или просадка питания? Мы не производим свое железо, поэтому вы станете техническим адвокатом компании: нужно ставить диагноз цифрами, писать ТЗ подрядчикам на доработку их платформ и доказывать вендорам баги в их прошивках с логами в руках. 4. Поддержка прошивок (STM32):Читать чужую прошивку (C99), находить причину поведения по CAN-трафику и при необходимости вносить точечные исправления, если баг на нашей стороне. Как устроена работа: 40% времени — R&D и Интеграция («Руками в железе»): сборка сенсорных юнитов с нуля, подбор комплектующих, пайка кабелей, реверс-инжиниринг контроллеров, прокидывание новых интерфейсов. 30% времени — Низкоуровневый код и Диагностика: написание и поддержка коннекторов (C++/Python) для CAN/UART/UDP, разбор логов (candump), поиск причин потери пакетов между железом и софтом. 20% времени — Взаимодействие с партнерами и командой: обсуждение железа с подрядчиками, составление ТЗ на доработку их прошивок, аргументация выбора железа. 10% времени — Работа с прошивками: точечные правки в MCU-коде, если баг на нашей стороне. Примеры задач : Собрать компактный сенсорный юнит (Лидар + IMU): рассчитать питание, избежать электромагнитных наводок на шины, настроить хардварную синхронизацию времени (PTP/PPS) между сенсорами. Сделать реверс-инжиниринг китайской рохли: у нас есть платформа-донор, мы выкидываем ее "мозги", цепляемся логическим анализатором к шине управления двигателями, понимаем формат пакетов и пишем свой bridge для управления. Дожать партнера: робот периодически падает в аварию. Выяснить через candump, что контроллер партнера при резком старте просаживает питание и теряет фреймы. Собрать фактуру, отправить партнеру логи и заставить их выпустить фикс прошивки. Кто наш кандидат: Опыт работы руками (Hardware Integration): вы умеете держать паяльник, пользоваться мультиметром и осциллографом/логическим анализатором. Знаете, чем чревато отсутствие общей "земли" или терминатора на CAN-шине. Навыки технической коммуникации: вы можете аргументированно (с графиками и логами) объяснить подрядчику, где именно в его железе проблема, и добиться решения. Linux на уровне системного программирования: SocketCAN, /dev/ttyXXX, работа с устройствами без абстракций. Знаете, что такое неблокирующий ввод-вывод и таймауты ОС. CAN-шина на практике: умеете работать с SocketCAN, candump напрямую. Понимаете арбитраж, разницу между потерей фрейма и таймаутом узла. C/C++ и Python как инструменты: умение написать надежный bridge-коннектор для сенсора или скрипт для парсинга логов. Нам не нужна идеальная абстрактная архитектура, нам нужен код, который не падает при обрыве провода. Понимание железа без страха: берете даташит, находите нужный раздел, разбираете протокол. Не ждете, пока кто-то объяснит. Ответственность за стык: фразы «это проблема железа» или «это проблема софта» неприемлемы. Вы доводите проблему до конкретной причины. Будет большим плюсом: Опыт работы с CI/CD (GitLab, Docker, DevContainers) и сборки воспроизводимых артефактов (научим, если нет). Опыт работы с ROS 2 (Humble / Galactic) и глубокое знание современного C++17. Опыт работы с лидарами (Leishen, RoboSense) и глубинными камерами (Luxonis OAK-D) напрямую, не через готовые драйверы, а через сырые пакеты. Понимание принципов работы IMU (до коррекции) и синхронизации временных меток. Чтение встроенного C (STM32F103, Cortex-M3). Что мы предлагаем: Тихий и просторный офис в центре Москвы в двух минутах пешком от м. Парк Культуры; Мощную технику для работы. ДМС с первого дня от Альфа Страхования. Отсутствие бюрократии и горизонтальную структуру без десятка начальников. Внутреннее обучение и наставничество со стороны опытных коллег. Курсы и конференции по специальности. Возможность развития в разных областях IT.Похожие вакансии
Интегратор бизнес-систем / CRM-архитектор
От 1 000 руб.
Москва. Станции метро: Парк культуры
Соловьев Александр Андреевич
Инженер - стажер в IT интегратор
От 30 000 до 30 000 руб.
Москва. Станции метро: Парк культуры
intact
От 80 000 до 150 000 руб.
Москва. Станции метро: Парк культуры
Первый Бит
Главный программист-интегратор
От 200 000 до 250 000 руб.
Москва. Станции метро: Парк культуры
ОБЩЕСТВО С ОГРАНИЧЕННОЙ ОТВЕТСТВЕННОСТЬЮ ПРОФЕССИОНАЛЬНАЯ КОЛЛЕКТОРСКАЯ ОРГАНИЗАЦИЯ "АКТИВБИЗНЕСКОНСАЛТ"