Как функционирует робот-доставщик Яндекса: от восприятия окружающей среды до разработки маршрута движения?
Вот уже пять лет роботы-курьеры Яндекса курсируют по московским улицам, доставляя еду из популярных ресторанов и магазинов с невероятной быстротой. На их пути возникают различные преграды: от innocuous цветочных клумб, которые легко обойти, до радостных детей (а иногда и взрослых), от которых бывает непросто уклониться. Эти небольшие механизмы не только справляются с логистическими задачами, но и становятся частью городской жизни, привнося в неё элемент удивления и радости.
Структура технологии
Чтобы понять, как функционирует робот-доставщик, важно рассмотреть общую структуру технологии. Выделим пять ключевых компонентов, которые делают его умным и способным быстро и безопасно выполнять доставки:
1. Сенсоры. Эти устройства позволяют роботу воспринимать окружающий мир и отслеживать свое движение.
2. Восприятие. Этот процесс преобразует данные, полученные с сенсоров, в понятное представление о мире, выделяя значимые объекты.
3. Карты. Они содержат детальную информацию о территории, по которой движется робот.
4. Локализация. Эта функция позволяет роботу точно определять свое местоположение на карте в любой момент времени.
5. Поведение. Это «мозговой центр» робота, который принимает решения о действиях в различных ситуациях и выбирает оптимальный маршрут.
Сенсоры
Сенсоры, установленные на роботе-доставщике, можно классифицировать на две категории: для восприятия окружающей среды и для определения местоположения устройства. Первая категория включает в себя сенсоры, которые помогают анализировать окружающее пространство и идентифицировать объекты, такие как лидары, камеры, радары и парктроники. Вторая категория состоит из датчиков, которые контролируют положение, скорость и ориентацию робота: это IMU, GNSS и датчики, отслеживающие вращение колес.
Сенсоры восприятия
LiDAR (Light Detection and Ranging) — это технология дистанционного зондирования, которая использует лазерное излучение для измерения расстояний до различных объектов.
Система, состоящая из 64 лазерных лучей, создает высокодетализированное трехмерное облако точек с максимальной дальностью до 30 метров. Высокая плотность собираемых данных позволяет не только точно оценивать расстояние до объектов, но и эффективно их классифицировать по форме и характеристикам.
Радар расширяет функциональные возможности лидара, применяя радиоволны и эффект Доплера для измерения скорости объектов на расстоянии до 150 метров. Это особенно актуально, когда робот пересекает пешеходный переход, так как радары позволяют заранее выявлять приближающиеся автомобили и оценивать их скорость.
Парктроники, в свою очередь, используют ультразвуковые датчики для определения объектов на малом расстоянии, что обеспечивает дополнительный уровень безопасности в непосредственной близости от робота.
Сенсоры позиционирования и движения
GNSS (Глобальная спутниковая навигационная система) — это система, предназначенная для определения местоположения на поверхности Земли с помощью спутников. Она включает в себя несколько спутниковых систем, таких как американская GPS, российская ГЛОНАСС, европейская Galileo и китайская BeiDou.
Инерциальный измерительный модуль (IMU) представляет собой компактное электронное устройство, в котором сочетаются акселерометр и гироскоп. Он позволяет отслеживать линейное ускорение и угловую скорость робота в пространстве.
Датчики вращения колес — это высокоточные устройства, установленные на колесах робота. Они фиксируют даже незначительные повороты колес, что позволяет точно вычислять пройденное расстояние и скорость движения.
Теперь, когда мы разобрались, какую ценную информацию собирают сенсоры, давайте посмотрим, как наши алгоритмы обрабатывают эти данные.
Восприятие, или Perception
Основная задача системы восприятия — распознавать объекты вокруг робота, которые могут повлиять на его движение. Эти объекты делятся на две категории: динамические (например, люди, автомобили, самокаты) и статичные (например, здания, столбы, деревья).
Когда речь идет о динамических объектах, важно точно предсказать, в каком направлении и с какой скоростью они движутся, чтобы робот мог вовремя среагировать на приближающиеся машины или самокаты.
Что касается статичных объектов, тут ключевым является определение их размеров. Распознанные статичные объекты играют значительную роль в формировании маршрута робота. Например, правильное определение размеров объектов критично, когда робот передвигается по узкому тротуару и должен плотно прижиматься к стенам зданий.
Робот-доставщик использует 3D-детекцию объектов и карту занятости (occupancy grid) для восприятия окружающего мира. 3D-детекция помогает ему определить, с каким динамическим объектом он имеет дело (человек или машина), а также его точное местоположение, размеры, направление и скорость движения. Карта занятости делит пространство на небольшие ячейки размером 5×5 см, каждая из которых указывает, занята ли она чем-то и на какую высоту поднимаются препятствия.
HD-карты
Карты высокой четкости (HD) представляют собой карты с высоким уровнем детализации. Они включают трехмерное изображение окружающей среды в виде плотного облака точек, полученного с помощью лидара, а также векторный слой, содержащий информацию о дорожной инфраструктуре, такой как светофоры, пешеходные переходы и границы дорог и тротуаров. Эти данные помогают планировать маршруты движения робота.
Лидарный слой
Лидарный слой HD-карт — это подробная трехмерная модель окружающей среды, состоящая из плотного облака точек, которое связано с абсолютными координатами.
Создание этого слоя полностью автоматизировано. Чтобы запустить робота-доставщика в новом районе, достаточно один раз проехать по всем тротуарам и пешеходным дорожкам в ручном режиме, собрать данные и запустить процесс оптимизации, который в итоге выдаст плотное облако для локализации. Если некоторые тротуары находятся близко к дороге, можно использовать беспилотный автомобиль для ускорения записи — его лидарные облака также подойдут для формирования этого слоя.
Лидарные облака, на основе которых создается слой карты, проходят предварительную фильтрацию. Из них удаляются точки, относящиеся к динамическим объектам, таким как автомобили или пешеходы (с их обнаружением помогает система восприятия). Это позволяет получить надежную основу для локализации робота, которая редко изменяется.
Векторный слой
Векторный слой HD-карт создается картографами на основе данных лидара и изображений с камер. Этот слой содержит информацию о границах зон, по которым может передвигаться робот, представленных в виде полигонов, разделенных на различные типы зон. Мы выделяем следующие категории: пешеходные переходы, тротуары, велодорожки и зоны смешанного использования, такие как парковки или дворовые территории.
Кроме того, карта включает данные о расположении светофоров, их взаимосвязи и о том, какие маневры они регулируют. Это позволяет роботу определять состояние светофоров, которые могут быть вне его поля зрения из-за пешеходов или автомобилей.
Наконец, в карте также содержатся полосы, предназначенные для робота в пределах допустимых зон его движения, велосипедные дорожки для прогнозирования действий велосипедистов и полосы для автомобилей — предполагаемые траектории их движения. Эти данные помогают роботу эффективно планировать безопасный маршрут, учитывая особенности городской среды и поведение других участников дорожного движения.
Локализация
Основная задача локализации — установить местоположение, ориентацию, скорость и ускорение робота в пространстве. Для этого мы объединяем данные из различных сенсоров.
GNSS (Глобальная спутниковая навигационная система) предоставляет информацию о местоположении робота на поверхности Земли, например, в виде координат широты и долготы. Однако GNSS может давать неточные результаты в ситуациях, когда связь со спутниками ослаблена, нарушена или отсутствует, например, в условиях плохой погоды, в городских условиях или в тоннелях.
IMU (Инерциальный измерительный модуль) передает данные об ускорении и угловой скорости робота. Эта информация крайне важна для точной локализации, хотя может колебаться при сильных наклонах или вибрациях корпуса устройства.
Колёсная одометрия. С помощью данных с датчиков вращения колёс мы можем оценить скорость движения робота, пройденное расстояние и изменения его ориентации. Этот метод обеспечивает высокую точность на коротких дистанциях, но с течением времени ошибки могут накапливаться, особенно при проскальзывании колёс или движении по неровным покрытиям. Зимние условия, как правило, ухудшают точность одометрии, так как увеличивают риск ошибок из-за скользких поверхностей и изменений сцепления.
Кроме того, мы используем лидарную локализацию, которая позволяет определить положение робота, используя лидарный слой из HD-карты и текущие данные с лидара.
Управление
После того как траектория была построена, следовать ей оказывается непросто из-за множества факторов: неровностей покрытия, изменяющегося сцепления и неполных данных от сенсоров. Эти ошибки могут сбивать робота с намеченного курса, поэтому требуется система управления для постоянной корректировки его движения.
Наш подход к управлению роботом-доставщиком включает два ключевых компонента:
PID-регулятор для продольного управления (аналог педали акселератора). Этот метод помогает поддерживать нужную скорость робота, эффективно корректируя отклонения и обеспечивая плавное движение.
Pure Pursuit для поперечного управления (аналог руля). Этот метод рассчитывает линейную и угловую скорость робота, чтобы достичь целевой точки траектории, которая находится перед его текущим положением.
Не буду углубляться в детали работы этих алгоритмов управления, так как эта тема требует отдельного обсуждения от моих коллег. Но если вам интересно, рекомендую посмотреть отличную вики-страницу, где можно найти информацию о PID, кинематической велосипедной модели и Pure Pursuit.
Таким образом, компонент управления (Control) обеспечивает принятие решений на всех уровнях: от глобального маршрута до локального маневрирования, позволяя роботу-доставщику эффективно и безопасно выполнять свои задачи.
Итак, мы рассмотрели ключевые элементы системы робота-доставщика: от сенсоров до алгоритмов принятия решений. Но это не всё! У робота есть и другие важные аспекты, такие как калибровка сенсоров, взаимодействие со светофорами и дополнительные детекторы (например, для обнаружения ям), а также методы размывания лиц и автомобильных знаков для защиты персональных данных. Надеемся, в будущем расскажем об этих элементах.
Что касается наших планов, мы продолжаем развивать технологию робота-доставщика:
- автоматизируем и ускоряем процесс создания HD-карт;
- разрабатываем ML-решения для оптимизации маршрутов;
- стремимся улучшить восприятие, приближая его к человеческому уровню, следуя последним достижениям в области компьютерного зрения;
- работаем над повышением надежности и устойчивости локализации к внешним влияниям.
Теперь вы понимаете, сколько усилий требуется, чтобы маленький робот доставил вашу большую пиццу!

У нас пока такие не ездят, только люди-курьеры. свернут башку этому роботу.