Мы разрабатываем и выпускаем серийных автономных роботов для крупных клиентов. В нашей команде есть разработчики программного обеспечения, инженеры по электронике, механике и автоматике, собственная сборочная линия и испытательная площадка.
Ищем старшего инженера, который возьмёт техническую ответственность за развитие поведения и движения автономного робота. Главная задача позиции — построение надёжного поведения и навигации: от постановки задачи движения и планирования маршрута до команд приводам, обработки препятствий, парковки и безопасного восстановления после отказов. В задачи также входит улучшение уже существующего 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
- Диагностика реальных робототехнических систем
Будьте осторожны: если работодатель просит войти через Google, iCloud или Госуслуги, прислать код или пароль, запустить ПО или перевести деньги — это мошенники.