Как мы в Яндексе делаем роборуку с искусственным интеллектом

от автора

Ещё 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, можно добиться значительных успехов в обучении роботов сложным манипуляциям.

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


ссылка на оригинал статьи https://habr.com/ru/articles/851592/


Комментарии

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *