Студенты ДГТУ обучают робота ползти вперед в Центре робототехники Сбера
Студенты ДГТУ обучают робота ползти вперед в Центре робототехники Сбера

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

Сказать, что с приходом ChatGPT и роботов Tesla наступило грандиозное будущее — это ничего не сказать. Мы стоим на пороге великих изменений. То, что раньше казалось фантастикой, становится реальностью: роботы могут выполнять в физическом мире команды, сформулированные на естественном языке, ходить и манипулировать объектами. Всё это благодаря в первую очередь бурному развитию deep learning за последние годы. Тем не менее передовые исследования в этой области и робототехнике, которые окончательно изменят ландшафт умных роботов и их применения, ещё впереди. Об этих исследования мы дальше и поговорим.

Почему это важно?

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

Большой шагающий робот
Большой шагающий робот

Профессия разработки этих роботов и обучения их разным навыкам выглядит очень перспективно.

Чтобы роботы были «умными» и могли делать за нас работу так же, как и человек, их способности к обучению и выполнению сложных задач должны сильно возрасти. Для этого нужны новые алгоритмы в области deep learning и reinforcement learning. Собственно, в кружке мы и будем заниматься на самом передовом уровне исследованиями в области обучения роботов хождению и решению других сложных моторных задач. Будем читать зарубежные научные статьи, воспроизводить их результаты, генерировать новые идеи, реализовывать их, экспериментировать на роботах и в симуляторах, разрабатывать новые алгоритмы, писать программный код, предлагать научную новизну и писать научные статьи.

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

Обучение роботов

Например, вот четвероногий робот, который был обучен в нашем Центре робототехники Сбера сначала в симуляторе, а потом запущен на реальной аппаратной платформе:

Был использован алгоритм PPO (Proximal Policy Optimization) с обучением в симуляторе Raisim в течении нескольких часов на видеокарте GeForce GTX 1080 Ti:

  • Количество параллельных симуляций агентов: 100

  • Observations:

    • высота тела;

    • положение тела;

    • скорости тела;

    • 12 углов суставов;

    • бинарный вектор контактов;

    • предыдущее действие;

  • Actions:

    • 12 углов суставов;

  • Прерывание эпизода

    • при высоте тела ниже пороговой;

    • при углах наклона тела больше пороговых.

Функция наград:

  • Оптимизация текущей линейной скорости тела относительно целевой;

  • Минимизируемые факторы:

    • боковое движение и угловые скорости;

    • отклонение высоты тела от номинальной;

    • отклонение положения тела от номинальной ориентации;

    • совершаемая работа;

    • угловые скорости суставов;

    • проскальзывание ног по поверхности;

    • плавность движений;

    • сила воздействия на поверхность;

  • Максимизируемые факторы:

    • время нахождения ног в воздухе.

Обучение в симуляторе Raisim
Обучение в симуляторе Raisim

Казалось бы, что ещё нужно? Но такой подход работает плохо или вовсе не работает для более сложных роботов типа Dijit, Tesla Bot, Figure. Связано это с большим sim2real gap. Из-за этого появляется развилка — или делать симуляцию ещё реалистичнее, или учить роботов в реале. Вот пример обучения четвероногого робота с нуля в реале в нашем Центре робототехники Сбера:

Был использован алгоритм Actor-Critic с регуляризацией лимитов углов суставов отдельной нейросетью. Робот обучался в реалтайме на ноутбуке подключенном по ethernet.

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

Также есть гибридные и другие подходы, связанные с дообучением, смешанными подходами reinforcement learning и optimal control. За последние годы в области шагающих роботов написаны сотни научных статей с новыми подходами, что говорит о бурном развитии этой тематики. Также стоит особо отметить, что именно в шагающих роботах впервые получил своё реально результативное применение reinforcement learning и показал преимущества по сравнению с другими методами.

Вот презентация нашей предыдущей работы по этому проекту, где робот ходит на классическом optimal control c cMPC:

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

Наш кружок ИИ в робототехнике

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

Сейчас есть договорённость с Институтом искусственного интеллекта РТУ МИРЭА, так же предварительная с Центром молодежной робототехники МГТУ им.Н.Э. Баумана и лабораторией по гуманоидным роботам в Физтех-Лицее о предоставлении нам места для работы с роботами. В целом, о желании стать партнером в этом может изъявить любой технический университет в Москве, технику и консультации мы предоставим. То есть можно сказать, что мы открываем что-то вроде научно-исследовательского кружка по обучению роботов и передовым исследованиям в области ИИ в робототехнике. В него можно ходить с понедельника по субботу с 10:00 до 21:00 к нашим партнёрам, которые предоставляют площадки для занятий и сопровождение.

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

Какие требования к кандидатам:

  • уверенная работа в терминале Linux;

  • понимание работы локальной сети, умение настроить статический IP-адрес в Linux;

  • владение Git и Python;

  • знание алгоритмов глубокого обучения;

  • знание алгоритмов обучения с подкреплением;

  • умение читать, анализировать научные статьи на английском языке;

  • занятия в кружке не менее трёх дней в неделю;

  • способность к самообучению.

Что будет преимуществом:

  • владение ROS/ROS2, Docker, C++;

  • собственные научные статьи;

  • понимание робототехнических алгоритмов типа ПИД, фильтр Калмана и т. д.;

  • Горящие глаза к теме робототехники и ИИ.

Точно не подойдёт тем, кто:

  • не умеет хорошо программировать;

  • сомневается, нужно ли ему это;

  • не имеет достаточно времени на это;

  • не понимает, что такое научные статьи и почему они важны.

Как проходят занятия?

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

Студенты ДГТУ программируют робота в Центре робототехники Сбера
Студенты ДГТУ программируют робота в Центре робототехники Сбера

Какие перспективы?

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

Таким образом мы стараемся развивать робототехническое сообщество в области ИИ. Приветствуется инициатива вузов и научных групп.

Если вы хотите заниматься в кружке, то напишите мне в личку на Habr или в Telegram. Занятия бесплатные, но есть отбор через тестовые задания.