Техвилл
Кибершеф

Разработчик (КШ)

Задачи

Обязанности:

- Интеграция с Fleet Management System (FMS):
Разработка клиентской части для взаимодействия
робота с диспетчерской системой. Обработка команд FMS (назначение экшенов, отмена, переназначение целей). Публикация телеметрии (статус, заряд батареи, позиция, ошибки). Реализация протоколов обмена (WebSockets, MQTT). Синхронизация состояния «робот — сервер» (handshake, подтверждения, retry-политики);
- Разработка и интеграция FSM (конечных автоматов): Проектирование логики поведения робота на основе BehaviorTree или собственных FSM. Управление переходами между состояниями: инициализация, локализация, ожидание команды от FMS, навигация к цели, обработка коллизий, зарядка, взаимодействие с манипулятором. Интеграция FSM с Navigation2, MoveIt 2 и FMS;
- Разработка и кастомизация модулей Navigation2:
Плагины глобального/локального планирования,
контроллеры, поведенческие деревья для сложных логик;
- Интеграция и настройка систем локализации:
AMCL / slam_toolbox / визуальные маркеры /лидарная одометрия + robot_localization (EKF/UKF) для индустриальной точности в сложных indoor-условиях;
- Проектирование и оптимизация систем управления движением: Контроллеры (PID, MPC), настройка под различные кинематические схемы;
- Проведение и анализ полевых испытаний:
Самостоятельное планирование и проведение
натурных тестов на полигоне и в складских помещениях. Сбор логов, аналитика причин сбоев. Доводка параметров и кода до целевых метрик;
- Обеспечение надёжности в сложных средах:
Узкие проходы, смена освещённости, погрешности
одометрии;
- Участие в код-ревью и архитектурных решениях:
CI/CD (GitHub/GitLab Actions), профилирование производительности (valgrind, gdb, perf), наставничество junior-инженеров.

Требования

- Опыт работы: от 2 лет коммерческой разработки
в робототехнике (ROS/ROS 2, C++);
- Стек навигации: глубокое понимание Navigation2.
Опыт нестандартной адаптации под конкретное шасси;
- Локализация / SLAM: практическая настройка
slam_toolbox, AMCL, robot_localization (EKF);
- Управление движением: настройка PID, MPC. Опыт
с реальными роботами (задержки, нелинейности);
- FSM и архитектура поведения: опыт проектирования конечных автоматов или BehaviourTree для коммерческих роботов;
- Интеграция с FMS: понимание протоколов обмена
(REST, MQTT, WebSockets);
- Программирование: C++17/20 (STL, шаблоны, многопоточность, RAII) и Python (анализ логов, скрипты). Умение писать production‑ready код;
- Инструменты: Linux (Ubuntu), Docker, Git, CMake;
- Симуляция: опыт с Gazebo Classic/Ignition или MuJoCo или Isaac Sim.

Желательно:
- Опыт с манипуляторами (совмещённая навигация
«база + рука», MoveIt 2, контроль коллизий);
- Знание PCL, OpenCV, RTAB-Map (визуально-лидарный SLAM);
- Опыт с FMS (OpenRMF) или собственными разработками;
- Понимание принципов DDS;
- Английский на уровне чтения научных статей
(IROS/ICRA) и технических дискуссий.