Робототехника
Robotics на собеседовании
Waymo, Boston Dynamics, Amazon Robotics. В 2024 году эти компании наняли сотни robotics engineers. Средняя зарплата senior robotics engineer в Waymo - USD 280K total comp. Типичный onsite: 2 coding rounds, 1 math/controls round, 1 system design round, 1 ML round. Этот урок - карта по всем четырем.
- **Boston Dynamics** onsite: кинематика 7-DoF манипулятора + планирование для legged robot + system design для inspection robot fleet
- **Waymo** L5: perception pipeline design, sensor fusion mathematical derivation, SLAM loop closure, safety architecture
- **Amazon Robotics**: fleet coordination at scale, CBS vs ORCA trade-offs, warehouse throughput optimization
Кинематика: прямая и обратная
Кандидат на позицию robotics engineer в Boston Dynamics получает задачу: «У нас 7-DoF манипулятор. Целевая точка в пространстве - (x, y, z, roll, pitch, yaw). Найди конфигурацию суставов». Это обратная кинематика - самый частый вопрос на robotics interview начального и среднего уровня.
Прямая кинематика (FK): дана конфигурация суставов q - найти позицию и ориентацию end-effector. Детерминировано, всегда имеет единственное решение. Обратная кинематика (IK): дана целевая поза end-effector - найти q. Может иметь 0, 1 или бесконечно много решений. Для redundant манипуляторов (DoF > 6) - бесконечно много решений используются для избегания препятствий.
Singularity - конфигурация, в которой робот теряет один или несколько DoF. Формально: Jacobian J становится rank-deficient. Физически: несколько суставов становятся коллинеарными и не могут создать движение в определенном направлении. Вблизи singularity скорости суставов стремятся к бесконечности. DLS (Damped Least Squares) - стандартный метод избегания: J^+ заменяется на J^T(JJ^T + lambda^2*I)^-1.
7-DoF манипулятор (7 степеней свободы) используется для достижения цели в 6D пространстве (3 позиция + 3 ориентация). Какое утверждение верно?
Motion Planning: от RRT до Trajectory Optimization
Вопрос на interview в Waymo: «Как спланировать траекторию манипулятора в cluttered environment с 100 объектами за реальное время?» Правильный ответ не «A*» - A* работает в дискретных пространствах, а configuration space 7-DoF манипулятора непрерывен и имеет 7 измерений.
RRT (Rapidly-exploring Random Tree): сэмплирует случайные конфигурации в C-space, строит дерево достижимых конфигураций. Вероятностно полный (найдет решение если оно существует), но не оптимален. RRT* добавляет rewiring для асимптотической оптимальности. Trajectory optimization (CHOMP, TrajOpt): начинает с начального пути и итеративно оптимизирует функционал (длина + зазор от препятствий). Быстрее RRT если есть хорошая начальная траектория.
Configuration space (C-space) - концептуально важнейшее понятие в planning. Препятствие в 3D-пространстве при проецировании в C-space превращается в C-obstacle - область недопустимых конфигураций. Планирование в C-space сводит задачу к поиску пути в пространстве, где точка - конфигурация всего робота. Именно это позволяет A* и RRT применяться к манипуляторам.
RRT планирует траекторию за 50ms, но она ломаная и неестественная. Какой следующий шаг?
Perception на собеседовании: Kalman Filter и SLAM
Perception вопросы на robotics interview делятся на два типа: математический (объясни Kalman filter, почему он оптимален?) и практический (как строить карту при движении с зашумленными данными?). Первый проверяет знание теории, второй - понимание SLAM.
Kalman filter - оптимальный оценщик для линейных систем с гауссовским шумом. Две фазы: predict (обновление состояния по модели динамики) и update (коррекция по наблюдению с весом, обратным к неопределенности). Gain K = PH^T(HPH^T + R)^-1 - автоматически балансирует доверие к модели vs наблюдению. EKF линеаризует нелинейные системы. UKF использует sigma points.
Loop closure - ключевая проблема SLAM: робот возвращается в известное место и должен понять это. Без loop closure ошибка накапливается и карта деформируется. Технически: найти match между текущим наблюдением и ранее сохраненными (bag of words, DBoW2 для visual SLAM). После match - оптимизация всего графа поз через bundle adjustment или pose graph optimization.
Kalman Gain K близко к 1. Что это означает о доверии к системе?
System Design для Robotics: как отвечать на открытые вопросы
«Спроектируй систему управления для autonomous delivery robot, который работает в офисном здании». Такой вопрос занимает 45-60 минут на senior-уровне. Правильная структура ответа: 1) уточнение требований, 2) high-level architecture, 3) key design decisions с trade-offs, 4) failure modes и safety.
Уточнение требований - критически важный шаг, который многие пропускают. Сколько роботов? Какие препятствия (люди, двери, лифты)? Payload? Uptime requirement? WiFi покрытие? Каждый ответ меняет архитектуру. После уточнения - нарисовать компонентную диаграмму: perception → localization → planning → control, и отдельно fleet manager + cloud backend.
Trade-off вопросы - важнейшая часть system design interview в robotics. Localization: pre-built map (надежно, не адаптируется к изменениям) vs online SLAM (адаптивно, вычислительно дорого). Planning: global planner (оптимален, медленно перепланирует) vs reactive (быстро, застревает в локальных минимумах). Fleet: централизованный (оптимален, single point of failure) vs децентрализованный (устойчив, suboptimal). Демонстрация знания trade-offs отделяет senior от junior.
На robotics interview главное знать математику: матрицы вращения, Kalman filter, SLAM
Математика - necessary but not sufficient. System design, trade-off reasoning и failure mode analysis отличают senior candidates
Компании нанимают инженеров которые будут проектировать реальные системы. Знание формул Kalman filter без понимания когда использовать EKF vs UKF vs particle filter - неполная компетенция. Senior candidates объясняют WHY, не только WHAT
На system design interview кандидат сразу начинает рисовать архитектуру без вопросов. Что это сигнализирует интервьюеру?
Связанные темы
Robotics interview объединяет темы из нескольких курсов:
- Sensor Fusion и Kalman Filter — Математические вопросы на perception round
- Motion Planning — RRT, PRM, trajectory optimization - ключевые planning вопросы
- Robotics System Architecture — Основа для system design round
Ключевые идеи
- **Кинематика**: FK детерминирована, IK имеет 0/1/∞ решений; redundant роботы (7-DoF) используют null space для доп. оптимизации
- **Planning**: RRT для feasible path + shortcutting + spline smoothing; trajectory optimization (CHOMP/TrajOpt) если есть начальная траектория
- **Perception**: Kalman Gain балансирует доверие к модели vs сенсору; SLAM = graph optimization + loop closure
- **System Design**: 5 мин на уточнение требований > 40 мин на архитектуру > демонстрация trade-offs > failure modes
Вопросы для размышления
- Интервьюер спрашивает: 'Как бы ты локализовал робота в здании без GPS?' Какие методы рассмотришь и как выберешь между ними?
- Для warehouse robot fleet: какие метрики использовать для оценки качества fleet coordination? Как измерить что алгоритм работает хорошо?
- Назови три принципиально разных failure mode для autonomous delivery robot в офисе. Как архитектура должна обрабатывать каждый?
Связанные уроки
- rob-15 — System architecture - базовая тема для всех interview вопросов
- rob-06 — Motion planning - одна из ключевых тем в robotics interview
- rob-03 — Sensor fusion часто спрашивают через задачи на Kalman filter
- rob-12 — RL для роботов - часть ML-robotics interviews в Waymo/Google
- alg-10 — Graph algorithms (A*, Dijkstra) лежат в основе planning questions
- la-01-vectors-intro