# О компании
Мы разрабатываем и выпускаем серийных автономных роботов для крупных клиентов. В нашей команде есть разработчики программного обеспечения, инженеры по электронике, механике и автоматике, собственная сборочная линия и испытательная площадка.
Ищем старшего инженера, который возьмёт техническую ответственность за развитие поведения и движения автономного робота. Главная задача позиции — построение надёжного поведения и навигации: от постановки задачи движения и планирования маршрута до команд приводам, обработки препятствий, парковки и безопасного восстановления после отказов. В задачи также входит улучшение уже существующего SLAM-контура без разработки SLAM с нуля.
Нам нужен инженер, способный видеть систему целиком, принимать взвешенные архитектурные решения и доводить алгоритмы от гипотезы и симуляции до устойчивой работы на серийном роботе.
Зона ответственности
•Проектировать и развивать архитектуру behavior/navigation stack автономного робота
•Отвечать за полный контур движения: цель, глобальный маршрут, локальная траектория, скоростные ограничения и команды приводам
•Формализовывать поведение робота в штатных, деградированных и аварийных режимах
•Развивать глобальное и локальное планирование, следование по маршруту, перепланирование, recovery/deblocking и парковку
•Улучшать навигацию в сложном окружении и нестабильных условиях: дорабатывать и настраивать существующий SLAM, фильтровать и синхронизировать сенсорные данные, повышать устойчивость локализации. Разрабатывать SLAM с нуля не требуется
•Работать с costmap, footprint, зонами безопасности и несколькими источниками данных о препятствиях
•Обеспечивать безопасную остановку и предсказуемое восстановление при потере локализации, устаревании данных, блокировке или отказе сенсора
•Разбирать сложные полевые инциденты по логам, телеметрии и записям сенсоров; отделять дефекты алгоритма от проблем карты, локализации, привода или параметров
•Определять метрики качества движения, повышать воспроизводимость и развивать сценарные, интеграционные и регрессионные тесты
•Проводить архитектурные и код-ревью, декомпозировать технические задачи и помогать инженерам команды расти
•Улучшать существующую кодовую базу поэтапно, сохраняя важные продуктовые и safety-инварианты
Что для нас важно
•Глубокое знание современного C++ — C++17/20 — и опыт коммерческой разработки от 5 лет либо сопоставимый по уровню опыт
•Опыт разработки заметной части navigation или behavior stack реального автономного робота
•Уверенное понимание глобального и локального планирования, path following, collision checking и recovery behavior
•Понимание SLAM и локализации на уровне практической доработки и настройки: оценка качества карты и позы, фильтрация данных, диагностика деградации в сложных условиях
•Геометрия и кинематика: SE(2), системы координат, footprint, кривизна, скорость, ускорение
•Практический опыт работы с occupancy grid, costmap, point clouds и сенсорными задержками
•Уверенная работа с многопоточностью и асинхронными вычислениями: очереди, mutex, отмена задач, тайм-ауты и защита от устаревших результатов
•Опыт диагностики на реальном оборудовании с использованием логов, телеметрии, записей сенсоров и профилирования
•Уверенная работа в Linux, Git, CMake и средах сборки больших C++-проектов
•Способность аргументировать технические решения, объяснять компромиссы и вести задачу от постановки до измеримого результата
Сильный кандидат с меньшим формальным стажем нам также интересен, если он глубоко работал с реальным AMR и лично отвечал за planning, control или recovery behavior.
Будет преимуществом
•Практический опыт с TEB и оптимизацией траекторий на базе g2o
•Опыт с Hybrid A*, SMAC Planner, OMPL или другими search- и sampling-based планировщиками
•Опыт с GMapping, scan matching, ICP, lidar/wheel odometry, relocalization и методами сенсорной фильтрации
•Опыт с PCL, OpenCV и обработкой 2D/3D сенсорных данных
•Знакомство с планированием покрытия площадей и Fields2Cover или аналогичными решениями
•Опыт с Behavior Trees
•Gazebo, SIL/HIL-тестирование и автоматическое воспроизведение полевых сценариев
•SQL, InfluxDB или другие инструменты анализа телеметрии и временных рядов
•Опыт эксплуатации AMR, складских, сервисных роботов или беспилотного транспорта у заказчиков
Ключевые навыки
•C++17/20
•Behavior и navigation
•SLAM и локализация
•Фильтрация сенсорных данных
•Global/local path planning
•Геометрия и кинематика автономных роботов
•Многопоточность
•Linux, CMake, Git
•Диагностика реальных робототехнических систем