Обязанности:
Авихимса — полностью российская IT-компания. Мы разрабатываем и внедряем ПО для автономного управления роботизированной техникой. Команда состоит из специалистов в разных областях: робототехники, автономного движения, технологий компьютерного зрения, дополненной и виртуальной реальности, работы с данными. Мы разрабатываем «ВДОЛЬ» — автономную систему управления мобильными роботами. Наши роботы уже работают в реальных условиях: ориентируются без GPS с помощью лидаров и алгоритмов, накапливают моточасы. Мы переходим от этапа R&D к масштабированию, поэтому нам нужен инженер, который умеет строить надёжные стыки между физическим миром (железом) и нашими алгоритмами. Ваша работа — писать обвязку, через которую платформа, сенсоры и наш стек обмениваются данными по CAN, UART и сети, диагностировать стык, когда что-то отваливается и доводить проблему до конкретной причины, а не до «оно где-то в железе». Закрывать весь стек с первого дня не нужно, но важна готовность разбираться в коде и в том, что происходит ниже уровня 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. Чем предстоит заниматься: Обвязка и интеграция платформ: писать на C++/Python коннекторы и bridge, через которые чужая платформа, сенсоры и наш софт обмениваются данными по CAN/UART/сети. Это ядро роли — заставить разнородное железо стабильно отдавать данные в систему. Диагностика стыка: робот встал — таймаут CAN-узла, джиттер энкодеров, просадка питания. Ставите диагноз цифрами: candump, логический анализатор, осциллограф. Находите, на чьей стороне баг — нашей, партнёра или в физике шины. Работа с партнёрами: мы не производим железо, поэтому вы — технический адвокат компании. Пишете ТЗ подрядчикам на доработку их платформ, доказываете баги в их прошивках логами и воспроизводимым сценарием. Понять чужую платформу: документации часто нет или она врёт. Подключиться к шине, разобрать протокол сниффером, понять, почему оно не работает, и сделать так, чтобы заработало. Реверс для нас не самоцель — но кто это умеет, тому стык даётся легче. Прошивки (STM32), по необходимости: прочитать чужой C99, найти причину по CAN-трафику, внести точечную правку, если баг на нашей стороне. Как устроена работа: Нагрузка плавает, но основное время — код и диагностика, а не паяльник. Ориентир: ~50% — код и обвязка: коннекторы и bridge для CAN/UART/сети, утилиты, тесты к своим изменениям, поиск потери данных между железом и софтом. ~20% — диагностика и разбор: candump, логи, анализатор, локализация причины на стыке; разбор чужих протоколов. ~20% — партнёры: обсуждение железа с подрядчиками, ТЗ на доработку прошивок, доказательство багов. ~10% — железо руками и MCU: сборка прототипов, точечные правки прошивок STM32. Примеры задач : Новая платформа-донор отдаёт телеметрию и принимает команды по CAN в своём формате. Разобрать протокол, написать bridge, через который наш софт управляет платформой и читает её состояние стабильно, без потерь на старте моторов. Робот падает в аварию — через candump видим, что контроллер при резком старте просаживает питание и теряет фреймы. Собираем фактуру, добиваемся фикса прошивки. Собрать блок лидар + IMU: питание, синхронизация времени (PTP/PPS) — иначе локализация будет «прыгать» не из-за алгоритма, а из-за джиттера меток. Едем к партнёру с новой платформой. Протокол и детали узнаём только на месте. Задача — за день поднять MVP-интеграцию: подключиться к шине, понять управление, прокинуть данные в наш софт, показать, что робот едет под нашим стеком. Кого мы ищем: Инженера-интегратора, которому интересно строить надёжные стыки между чужим железом и нашим софтом. Что важно: Linux, SocketCAN, UART, candump: работа с устройствами напрямую, неблокирующий ввод-вывод, таймауты. Python и C++: писать bridge-коннекторы и сервисный код, который не падает при обрыве связи. CAN на практике: арбитраж, разница между потерей фрейма и таймаутом узла. Root cause: доводить проблему до конкретной причины, а не останавливаться на «оно упало». Диагностика стыка: candump, логи, логический анализатор, осциллограф. Разбор чужих платформ: даташит, снятие трафика, понимание протокола без готовой документации. Работа с подрядчиками: доказывать баги логами и воспроизводимым сценарием. Ответственность за стык: «это железо» или «это софт» — не ответ, вы ищете причину. Тесты к своим изменениям, понимание пути от идеи до продакшена. Будет плюсом: STM32 и прошивки, ROS 2, пайка и JTAG, Docker/CI/CD; опыт в локализации, управлении движением, восприятии и контуре безопасности. Что мы предлагаем: Тихий и просторный офис в центре Москвы в двух минутах пешком от м. Парк Культуры. Возможна работа из дома 1 день в неделю. Мощную технику для работы. ДМС с первого дня от Альфа Страхования. Отсутствие бюрократии и горизонтальную структуру без десятка начальников. Внутреннее обучение и наставничество со стороны опытных коллег. Курсы и конференции по специальности. Возможность развития в разных областях IT — от интеграции до алгоритмов.Похожие вакансии
Инженер тестировщик робототехнических систем
Договорная
Москва. Станции метро: Парк культуры
HARTUNG
Специалист по навигации робототехнических систем
Договорная
Москва. Станции метро: Парк культуры
Концерн Телематика