# C++-разработчик автономного движения робота (Middle)
Мы разрабатываем и выпускаем серийных автономных роботов для крупных клиентов. В нашей команде есть разработчики программного обеспечения, инженеры по электронике, механике и автоматике, собственная сборочная линия и испытательная площадка.
Ищем C++-разработчика, который будет развивать поведение и движение реального автономного робота: выполнение заданий, построение и прохождение маршрута, объезд препятствий, парковку, безопасную остановку и восстановление после нештатных ситуаций.
Это позиция для инженера, которому интересно видеть результат своей работы не только в коде и симуляции, но и в движении серийного робота.
Чем предстоит заниматься
•Дорабатывать сценарии автономной работы робота: запуск задания, движение, паузу, продолжение, завершение, отмену и парковку
•Улучшать следование по маршруту, обработку чекпоинтов, развороты и движение в ограниченном пространстве
•Работать с глобальным и локальным планированием, картами препятствий, геометрией робота и зонами безопасности
•Настраивать скоростные профили и ограничения с учётом препятствий, направления движения и данных сенсоров
•Разбирать инциденты по логам и телеметрии, воспроизводить проблемные проезды на записях, в симуляции и на роботе
•Исправлять причины блокировок, осцилляций, неудачного перепланирования и других сбоев движения
•Добавлять тесты и диагностические данные для критичных сценариев
•Участвовать в code review и обсуждении технических решений с командой
Что для нас важно
•Уверенное владение современным C++ — C++17/20
•Практический опыт разработки на C++ от 3 лет либо сопоставимый по глубине опыт в сложном техническом проекте
•Опыт интеграции компонентов робототехнической системы: обмен сообщениями, timestamps, системы координат, синхронизация данных и диагностика
•Понимание принципов навигации автономных роботов: глобальный и локальный путь, следование траектории, перепланирование и recovery-сценарии
•Знание базовой геометрии и кинематики автономного робота: преобразования координат, положение и ориентация в SE(2), скорость, ускорение, кривизна и footprint
•Умение разбираться в многопоточном и асинхронном коде, корректно работать с тайм-аутами и устаревшими данными
•Уверенная работа в Linux, Git и CMake
•Системный подход к отладке: умение сформулировать гипотезу, собрать данные, воспроизвести проблему и проверить исправление
•Мы готовы рассмотреть кандидата без длительного опыта с реальным роботом, если у него хорошая база по C++, алгоритмам и навигации, а также есть желание работать с физическим оборудованием
Будет преимуществом
•Знакомство с TEB, Hybrid A*, SMAC Planner, OMPL или другими алгоритмами планирования
•Опыт работы с occupancy grid, costmap, point clouds и collision checking
•Понимание принципов SLAM, scan matching, ICP, колёсной и лидарной одометрии
•Знание PCL, OpenCV, Gazebo и инструментов записи и воспроизведения сенсорных данных
•Опыт интеграционных, сценарных или SIL/HIL-тестов
•Опыт разработки AMR, складских, сервисных роботов или беспилотного транспорта
•Навыки анализа телеметрии и временных рядов
Ключевые навыки
•C++17/20
•Linux
•CMake
•Git
•Navigation и path planning
•Интеграция компонентов робота
•Отладка и анализ телеметрии