Ещё 10–20 лет назад многие думали, что роботы под управлением искусственного интеллекта возьмут на себя всю тяжёлую и опасную работу на предприятиях. Однако нейросети нашли применение в офисах, колл‑центрах, службе поддержки и даже стали полезны людям из творческих профессий — копирайтерам, дизайнерам, программистам. Тем не менее создание роботов, которые могут самостоятельно выполнять сложные физические манипуляции с материальными объектами, остаётся трудной и нерешённой задачей.

В этой статье я расскажу, как команда ML R&D в отделе робототехники Маркета создаёт роборуку и обучает нейросети, благодаря которым робот взаимодействует с физическим миром.

Предисловие, или Почему роботы ещё не ходят по нашим улицам

Качество железа

Создание аппаратного обеспечения для роботов — задача непростая. Отдельно я бы выделил сенсоры. Современные RGB‑камеры обеспечивают неплохую визуализацию, но камеры глубины и сенсоры прикосновения остаются вызовом. Человеческая рука с её способностью ощущать малейшие изменения в силе и положении и мгновенно реагировать на них — идеальная модель, но воспроизвести эту функциональность в роботах сложно. Роботам необходимо обладать такими же высокочувствительными сенсорами, чтобы достичь уровня точности, сопоставимого с человеческой рукой.

Мы в отделе робототехники не проектируем железо, но решаем проблему «силы» робота: хотим научить его понимать, из чего сделан тот или иной предмет. Так робот сможет подобрать нужное усилие для захвата вещи без повреждения. Для этого нужна синергия алгоритмов и железа, которое обладает нужными свойствами.

Динамика мира

Мир, в котором мы живём, обладает нелинейной динамикой. Небольшие изменения в условиях или действиях могут приводить к значительным и непропорциональным изменениям в результате. Это требует от роботов высокой точности и адаптивности в реальном времени, чтобы эффективно реагировать на любые изменения. В то же время этот факт делает управление движением очень трудным.

Старый подход к созданию роботов, основанный на планировании траекторий и использовании классических алгоритмов для расчёта динамики мира, не всегда применим к реальности. Но в задачах, которые предполагают большое количество тактильного взаимодействия с физическим миром, такой подход перестаёт работать, так как невозможно просчитать наперёд все нюансы взаимодействия. Даже самый умный робот не сможет учесть все неровности предмета, который он хватает, и идеально спланировать траекторию.

Наши роботы постоянно учитывают обратную связь от датчиков и камер, за счёт чего могут корректировать своё поведение, если что‑то идёт не так. Мы добиваемся такого эффекта благодаря сбору данных: в определённые моменты человек перехватывает управление и помогает роботу. Таким образом, когда робот снова попадёт в похожую ситуацию, он уже будет знать, как с ней справиться.

Данные для обучения

Залог успеха нейронных сетей — много хороших и качественных данных. Топовые LLM предобучаются на доброй половине интернета, если не больше. А затем ещё дообучаются на специально размеченных датасетах, их каждая команда держит в строжайшем секрете. Данные — это топливо, без которого ничего работать не будет.

С данными для роботов ещё сложнее. Только недавно появился открытый датасет на несколько миллионов эпизодов — там много роботов со своими сенсорами и камерами, совершенно разные задачи. На практике же необходимы данные для конкретного робота и конкретной задачи. Например, наша роборука может взять сразу несколько объектов. Данных о решении такой задачи не нашлось, поэтому нам пришлось сделать отдельную модель.

Роборука Яндекса

Отдел робототехники Маркета уже несколько лет трудится над роборукой. Мы используем простого стокового коллаборативного робота (кобота): этого вполне достаточно. Наша главная цель — создать эффективные алгоритмы и ML‑модели, способные решать сложные задачи мелкой моторики и взаимодействия с᠎ окружающей средой.

Данные: основа нашего подхода

Особенность нашего решения в том, что робот самостоятельно воспринимает окружающую среду, определяет, какой предмет ему нужно взять, и выбирает способ захвата.

Сбор данных в нашем проекте играет ключевую роль. Мы разработали собственную систему телеуправления на базе VR, которая позволяет удобно и быстро собирать данные для обучения. С этой системой операторы могут управлять роботами в различных сценариях (например, захват объекта) и собирать качественные данные взаимодействия робота с объектами.

На видео мы собираем лего с помощью нашей системы телеопа:

Мы также используем алгоритм DAgger (Dataset Aggregation), который позволяет итеративно улучшать качество данных. В каждом цикле робот выполняет задачу, используя текущую ML‑модель. Если он совершает ошибку, оператор вручную корректирует действия — показывает, как правильно. С помощью такого метода мы получаем эталонные траектории. Модель, обученная на них, будет уметь корректировать собственные ошибки.

Ещё один простой, но важный принцип при сборе данных — постепенно усложнять задачу, а не пытаться сразу решить все. Наш робот в самом начале научился брать пластиковый лимон, который лежал на дне корзины. Затем мы добавили больше пластиковых фруктов и другие предметы: маркеры, ручки, бутылки, игрушечные фигурки и вещи разных размеров и форм. В конце концов робот научился хватать объекты, которые он никогда раньше не видел, и даже передвигать предметы, чтобы их было проще взять.

Сейчас мы работаем с реальным ассортиментом Яндекс Маркета и сталкиваемся с разными сложностями: как брать тяжёлые, скользкие или хрупкие предметы, вещи, упакованные в прозрачные пакеты.

Данные — ключевой ингредиент в развитии робота. Они могут частично компенсировать недостатки железа и датчиков, потому что дают моделям больше информации для обучения и адаптации. Чем больше данных собрано, тем более точными и эффективными становятся модели. В итоге тот, кто сможет собрать и обработать больше данных, получит значительное преимущество в разработке и внедрении передовых роботов.

Пайплайн обучения

Наш пайплайн обучения состоит из двух ключевых этапов: Imitation Learning и донастройки с использованием Reinforcement Learning.

На первом этапе робот обучается в режиме supervised — просто повторяет за человеком траектории движения. Так он осваивает базовые навыки манипуляции объектами. Мы говорим, что здесь обучается «спинной мозг» робота: он выучивает динамику мира и как с ним взаимодействовать.

После этого робот уже самостоятельно улучшает навыки через Reinforcement Learning. На этом этапе он сам выполняет задачи, а его модель получает обратную связь в виде наград за успешные действия. Награда может быть автоматической или выдаваться вручную оператором. В качестве алгоритма мы используем PPO, но самое сложное — найти хорошие гиперпараметры и добиться стабильности и сходимости за небольшое количество траекторий, которое можно выполнить на роботах.

Архитектура модели

За базовую архитектуру мы взяли RT-1, но она пережила значительную трансформацию. Мы используем ViT в качестве энкодера картинок и карт глубины. Помимо картинок, на вход ещё подаётся внутреннее состояние робота и последнее совершённое действие. Все действительные числа на входе и выходе дискретизируются.

Сейчас у нас задействован большой трансформер, который обрабатывает все входящие токены. Мы экспериментируем с размерами и уже можем обучать сравнимые с LLM модели на наших данных. Также мы оптимизировали инференс модели на роботе: можно делать предсказания действий робота с частотой 25–30 Гц, несмотря на большие размеры модели.

Во время работы над проектом мы получили много инсайтов. Из них я бы выделил два:

  • Данные важнее архитектуры. Большое количество качественных данных значительно важнее, чем совершенная архитектура модели. Даже если архитектура неидеальна, с обширным и качественным датасетом вы достигните лучших результатов.

  • Если у вас много данных, попробуйте сделать модель побольше. В какой‑то момент добавление данных перестаёт улучшать качество. Часто это значит, что нужно увеличить размер модели. Мы уже несколько раз доходили до этого предела. Тогда больший размер модели позволял сделать скачок в качестве работы.

Что умеет наш робот

Сейчас роборука способна хватать практически любой предмет: даже тяжёлые или широкие объекты, которые физически можно взять с помощью гриппера. Мы уделяем особое внимание разработке алгоритмов для бережного захвата, чтобы робот мог манипулировать объектами без повреждений.

На видео робот берёт вначале хрупкий и мягкий предмет, а затем тяжёлую бутылку.

Наш робот может случайно взять одновременно несколько объектов вместо одного. Мультипики стали сложностью. Удивительно: на эту тему очень мало информации в интернете — по крайней мере, мне не удалось найти, чтобы кто‑то решал подобную задачу. Нам пришлось сделать отдельную модель, которая с разных камер детектирует мультипик. Эту задачу мы тоже постоянно дорабатываем и дособираем для неё новые данные.

Сейчас мы запускаем первые проекты, чтобы протестировать наши разработки в реальных условиях на складе Маркета, например на этапе сортировки. Это поможет нам лучше узнать ассортимент товаров, с которым роботам нужно научиться справляться, а также выяснить, как робот и человек будут взаимодействовать эффективно. Это серьёзный вызов, но мы уверены в успехе.


Развитие роботов с искусственным интеллектом, способных к сложным физическим манипуляциям, — одна из наиболее захватывающих и сложных задач на стыке современной инженерии и науки. Наш проект по разработке роборуки показывает, что с использованием современных алгоритмов и подходов, таких как Imitation Learning и Reinforcement Learning, можно добиться значительных успехов в обучении роботов сложным манипуляциям.

Применение улучшенных трансформерных архитектур, сбор специализированных данных и постепенное наращивание функциональности роботов позволяют нам уверенно двигаться к созданию универсальных помощников. Возможно, в будущем они смогут эффективно выполнять рутинные и сложные задачи, чтобы у человека освободилось время для творческой и интеллектуальной деятельности.

Комментарии (19)


  1. copyhold
    22.10.2024 07:20

    роборука-воловиц.жпг


    1. hogstaberg
      22.10.2024 07:20


  1. PTM
    22.10.2024 07:20

    я думал вы и правда делаете роборуку типа такой https://disk.yandex.ru/i/WGRW-w8YrfR3NA, а вы только камеры прикрутили к руке ну и софта дописали, а руку купили.


    1. checkpoint
      22.10.2024 07:20

      Если сотрудник Яндекса видит отвертку, то у него из рук выпадает смузи. О какой роборуке речь.


    1. Dynasaur
      22.10.2024 07:20

      Рук готовых наделано полно, зачем заново изобретать лисапет? А вот мозга для них нормального как не было, так и нет - этим люди и занимаются. А не "только камеры прикрутили"


      1. dimakl Автор
        22.10.2024 07:20

        Все верно, рук реально много. Делать их интересно, но это не наш профиль. Наш фокус на то чтобы научить руки работать в неструктурированном окружении.


        1. PTM
          22.10.2024 07:20

          Покажите хоть одну сделанную у нас... я вот сходу не могу.

          про других не надо... да они доступны, но не так, как раньше


  1. checkpoint
    22.10.2024 07:20

    А почему на всех ваших видео представлено изделие от американской компании Universal Robots ? Оно и без ваших потуг много чего умеет, в том числе и в части ИИ. И я уверен, что Яндексу до UR как на карачках до Пекина. Печально что в Яндыксе Youtube заблокировали, так бы Вы сами убедились.


    1. Flux
      22.10.2024 07:20

      Вот это триггер конечно.
      Вас в своё время не взяли в Яндекс, да?)


  1. Dynasaur
    22.10.2024 07:20

    на втором видео у вас хват почему-то (имхо) хуже, чем на первом, от того и бутылка выпала. Пальцы сходятся не параллельно, а под углом. Был бы хват как из первого видео - не выпала бы. Я не прав?

    И вообще, кмк, вы экспериментируете с грубоватыми хватами. Есть, например, гибкие, трёх-четырёхпалые, они не лучше?


    1. dimakl Автор
      22.10.2024 07:20

      К сожалению, универсальных захватов не существует пока, человеческая рука все еще превосходит на порядок все что имеется на рынке. На последнем видео был экспереметальный захват, сейчас мы от него уже отказались, научились контролировать силу на захвате роботик. Гибкие, трехпалый и тд - много вариантов, что-то будем проверять, но у всех у них есть свои подводные камены. Гибкие - будет легко мультипикать, там сложно контролировать мелкую моторику и точность. Трехпалый - больше степеней свободы, сложнее телеопить.


      1. Dynasaur
        22.10.2024 07:20

        Человекоподобных рук делалось уже не мало.

        http://robotosha.ru/robotics/robot-hand-replace-human-hand.html

        https://intorobotics.com/overview-of-advanced-humanoid-robotic-hands/

        Конечно, они сложнее, но и возможностей у них больше. И заменить человеческую руку по мере обучения они смогут. Ваши клещи - конечно нет. Если вы взялись делать серьёзную разработку и хотите достичь высоких результатов, по-моему, надо сразу брать хват, имеющий перспективы, а не тратить время на то, что заведомо не тянет.

        Дополнительный бонус - командовать и учить такую руку можно в командной перчатке на человеческой руке


  1. AigizK
    22.10.2024 07:20

    Что скажете насчет этого решения? Они утверждают, что достаточно 50 примеров, чтоб обучить робота. Плюс, имея всякие Vision LLM, SAM можно уже просто голосом давать команду. В эту сторону не копали еще?


    1. dimakl Автор
      22.10.2024 07:20

      Конкретно это решение не видел, выглядит как то, с чего можно начать, очень похоже на Алоху

      50 примеров - для обучения с нуля на картинках, выглядит маловероятно для реальных задач. Т.е. например чтобы хватать лимончик с ненулевым SR из черной корзины в одном и том же окружении - вполне возможно. Но поменять лимночик на банан или корзину или стены - и все скорее всего сломается.

      Давать команды голосом - не факт что это нужно прямо сейчас, но это то к чему все придут рано или поздно.

      VLM и SAM использовать как претрейн - хороший план


  1. ioleynikov
    22.10.2024 07:20

    я думал над этой проблемой и пришел к мысли, что начинать надо с выбора правильной архитектуры мозга робота. Следует максимально быстро повторить путь эволюции живых существ в плане моделирования всей иерархии зон мозга, начиная с рептильной (инстинкты, выживание), лимбической (чувства, эмоции) и заканчивая неокортексом (сознание, интеллект). Это похоже на организацию слоев трансформеров нейросетей. Инстинкты скорее всего можно описать в виде базовых принципов или правил простейших автоматов, а вот эмоции следует реализовать как совершенно новую нейромодель, подсмотрев реализацию сложных компьютерных игр с искусственным интеллектом. Ключевую роль в создании такой системы окажет: эволюционное моделирование, передовые движки симуляции физики, обучение с подкреплением и имитационное тестирование в ROS 2, Gazebo. Я с удовольствием пересекся бы автором статьи для развития обсуждения данного вопроса.


    1. dimakl Автор
      22.10.2024 07:20

      Тема интересная, но за рамками нашего проекта. Пишите в личку


      1. ioleynikov
        22.10.2024 07:20

        Я не совсем соображу как пользоваться личкой хабра. На всякий случай мой прямой E-mail: oleynikov.ig@gmail.com. Киньте письмо и я обязательно отвечу. Удачи !


  1. nikolz
    22.10.2024 07:20

    Можете сравнить с этим решением ? :

    https://habr.com/ru/articles/848264/

    https://habr.com/ru/articles/848398/


  1. Rikhmayer
    22.10.2024 07:20

    Посмотрел видео с лего и так и представил ситуацию, как уже давно внедрённая роборука случайно рвёт пакет с лего, вспоминает древние датасеты и начинает собирать домик...