Технологии на поле: как роботы учатся играть в футбол
Соревнования по робофутболу зародились более 20 лет назад, и с тех пор стали не только спортивным событием, но и исследовательской площадкой для отработки современных технологий на стыке AI/ML и робототехники. Разные лиги позволяют инженерам со всего мира разрабатывать и совершенствовать роботов, которые умеют ориентироваться на поле, передвигаться и общаться друг с другом.
В конце октября на международном турнире RoboCup-2024 Asia-Pacific команда StarKit, организованная на базе МФТИ, завоевала первое место в лиге Standard Platform, обыграв в финале соперников из Китая со счетом 3:1. В составе StarKit выступили стажеры отдела FPGA-прототипирования YADRO — Арсений Штундер и Булат Сибгатуллин, которые внесли значительный вклад в разработку тактических алгоритмов и техническое совершенствование роботов. В тексте расскажем, как появился робофутбол, какие технологии помогают роботам общаться на поле и что привело ребят к победе.
- как проходили первые соревнования по робофутболу
- какие технологии помогают роботам общаться между собой на футбольном поле
- что помогло команде StarKit победить соперников на чемпионате
История создания робофутбола
Идея роботов, играющих в футбол, предложил профессор Алан Макворт из Университета Британской Колумбии (Канада) в 1992 году на конференции VI-92. Его группа начала разрабатывать проект робота-футболиста Dynamo и опубликовала серию статей по этой теме. Одна из них, описывающая концепцию робота, вошла в сборник «Computer Vision: System, Theory, and Applications».
В июне 1993 года команда исследователей из Японии, в которую вошли Минору Асада, Ясуо Куниеси и Хироаки Китано, решила запустить первые соревнования роботов под рабочим названием Robot J-League. Уже через месяц инициатива получила множество откликов со всего мира, и исследователи решили превратить ее в международный проект, известный как RoboCup.
Тем временем для различных групп исследователей робофутбол уже стал предметом научных изысканий. Например, Ицуки Нода из Электротехнической лаборатории (ETL) Японии разработал симулятор для проведения матчей, который впоследствии стал основным «движком» RoboCup.
Первые соревнования
Тем временем команда Ицуки Ноды из ETL представила первую версию симулятора Soccer Server 0, написанную на LISP — это был первый открытый симулятор футбольных игр для исследований в области многоагентных систем. Позднее вышла версия 1.0 на C++, доступная в интернете.
В августе 1995 года, во время конференции IJCAI-95 в Монреале, объявили о проведении первого чемпионата мира по футболу среди роботов.
Pre-RoboCup-96 прошел на Международной конференции по интеллектуальным роботам и системам (IROS-96) в Осаке с 4 по 8 ноября 1996 года. Восемь команд участвовали в соревнованиях по симуляции футбола и демонстрировали реальных роботов в лиге среднего размера. Хотя турнир был небольшим, он стал дебютным соревнованием, где футбольные игры использовали для научных и образовательных целей.
Первые официальные игры и конференция RoboCup прошли в 1997 году с большим успехом. В них участвовало более 40 команд, как с реальными роботами, так и с симуляторами, и за ними наблюдало более 5 000 зрителей.
Команда StarKit по робофутболу была основана в Московском физико-техническом институте осенью 2018 года благодаря финансовой и идейной поддержке выпускника МФТИ Азера Бабаева и на базе Лаборатории волновых процессов и систем управления. Ребята из команды помогут разобраться в тонкостях игры и прокомментируют прошедший RoboCup-2024 Asia-Pacific.
Чем робофутбол отличается от обычного футбола
Вместо людей на поле выходят роботы, разработанные и запрограммированные командами инженеров и исследователей. В зависимости от лиги это могут быть гуманоидные роботы с двумя ногами, которые напоминают человека, или роботы другой конструкции, например с колесной базой.
Основные лиги в робофутболе:
- Simulation League — лига симуляции. Здесь роботы играют в виртуальной среде, а основной акцент делается на программировании стратегий для ИИ роботов.
- Small Size League — лига маленького размера. Используются небольшие роботы (обычно до 18 см в диаметре). Игры проходят на ограниченном поле, и команды должны разрабатывать тактики, учитывая ограниченное пространство.
- Middle Size League — лига среднего размера. Здесь роботы большего размера (примерно до 50 см) играют на большем поле.
- Standard Platform League (SPL) — лига стандартной платформы. В этой лиге все команды используют одинаковые модели роботов, чаще всего это NAO от SoftBank. Различия состоят только в программном обеспечении, которое разрабатывают команды. Цель — продемонстрировать, кто лучше запрограммирует роботов для автономной игры, учитывая одинаковую аппаратную базу.
- Humanoid League — гуманоидная лига. Здесь командам разрешено разрабатывать уникальные конструкции роботов, ограничиваясь лишь требованиями к размерам и пропорциям.
Одной из самых сложных задач в разработке гуманоидных роботов является создание устойчивого алгоритма ходьбы. Обеспечить стабильное передвижение для таких роботов — невероятно трудная задача, которая входит в число наиболее сложных вызовов для искусственного интеллекта. О Humanoid League мы напишем отдельную статью, а в этой расскажем именно о Standard Platform League (SPL) в которой команда StarKit принимала участие.
Во время матча роботы действуют автономно, без управления со стороны людей. Команды заранее программируют их для выполнения задач, и роботы самостоятельно принимают решения в зависимости от ситуации на поле. Роботы полагаются на датчики и камеры, чтобы обнаруживать мяч, определять свое положение и следить за перемещениями соперников. Для принятия решений они используют алгоритмы машинного обучения и системы искусственного интеллекта, что делает игру больше похожей на исследовательскую задачу.
Поле для робофутбола меньше, чем для обычного футбола, ведь и игроки не достигают и метра в росте. Правила турнира есть, но они немного меняются из года в год, чтобы сделать матчи менее предсказуемыми. Например, организаторы могут уменьшить размер ворот или ввести ограничения на скорость роботов и число сообщений, которые они могут передавать друг другу.
Кроме того, правила включают систему нарушений и наказаний. Роботу разрешено ненадолго покинуть поле, но, если он надолго останется за его пределами, ему «выдадут красную карточку». Фолом считается ситуация, когда робот толкает соперника сзади или упал и не может подняться.
Game Controller — это приложение, в котором отображаются участвующие роботы. Через него фиксируются нарушения: выбирается тип штрафа, и робот выходит из игры на определенное время.
— Арсений Штундер, член команды StarKit и инженер-стажер в отделе FPGA прототипирования в YADRO
На поле в одной команде играют пять роботов, во время матча разрешено заменить только одного, а между играми замены не ограничены. В разных лигах правила могут отличаться: например, в Champions Cup роботы должны сами распознавать судейские сигналы и понимать, на какой стороне поля им играть.
Как программировать роботов
Как и другие участники турниров по робофутболу, команда StarKit использует методы машинного обучения, чтобы робот мог распознавать мяч, других роботов и разметку на поле. Для координации между собой они общаются через сеть, и по правилам могут отправлять не более 1 200 сообщений. Роботы передают свое местоположение и координаты товарищей по команде, что позволяет эффективнее взаимодействовать на поле. Разметка помогает ориентироваться точнее.
Одна из самых сложных задач для гуманоидных роботов — стабильная и быстрая ходьба. Их обучение дается непросто — чаще всего задача сводится к тому, чтобы просто поддерживать баланс. Ходьба роботов медленная и неуклюжая, поэтому для ее настройки мы используем обратную кинематику. Последние полтора года мы сотрудничаем с исследователем из Австралии, который помогает нам разработать ходьбу через ROS2-фреймворк, чтобы управлять NAO-роботами с более высокой точностью.
— Булат Сибгатуллин, член команды StarKit и инженер-стажер отдела FPGA прототипирования в YADRO
В роботах есть две камеры: верхняя и нижняя, а также модуль движения. Используя данные с верхней камеры, система распознает мяч и определяет, является ли наш робот ближайшим. Если, по последним сообщениям от других роботов, мы находимся в минимальном расстоянии от мяча, робот активирует движок ходьбы и идет к мячу. Также используется аудио для распознавания звука судейского свистка.
Камера роботов работает на частоте 30 кадров в секунду. Ограничения движений у них только технические, связанные с сервоприводами. Один сервопривод не может двигаться более 83 раз в секунду. Объясняется тем, что на выполнение каждого движения требуется время, и за 1/83 секунды он выполняет одно действие.
В целом, система включает в себя несколько важных модулей: распознавание роботов, мяча и линии разметки с помощью камер, а также отдельные модули для ходьбы, вставания и удара, которые составляют базовую функциональность робота.
Зачастую после турнира ребята делятся своими наработками и изменениями в коде. Например, на прошедших соревнованиях команда из Китая поделилась своим методом ускоренного подъема робота: чтобы не терять время, их робот падает не прямо на спину, а с легким поворотом. Это позволяет сократить время подъема на полсекунды или даже на секунду, что иногда решает исход матча. RoboCup и другие турниры становятся не просто соревнованиями, а полноценными исследовательскими платформами, где решения одной команды могут вдохновлять и поддерживать работу других.
Стратегия игры — ключ к победе
Перед октябрьским турниром в Циндао ребята из StarKit внесли изменения в стратегию игры своих роботов. На предыдущем чемпионате, прошедшем в Бразилии, роботы часто шли в атаку одновременно и мешали друг другу.
Магистранты из МФТИ серьезно доработали стратегию: роботы начали лучше передавать друг другу сообщения и точно отдавать пасы. Появились разные тактические схемы — например, если один робот идет в атаку, другие остаются в защите. Также при угловых ударах или удалении игрока другой робот занимает его место и выполняет удар.
Эти улучшения были достигнуты во многом благодаря переработке программного обеспечения и обновлению алгоритмов. Это позволило игре роботов стать более динамичной и слаженной.
Также ребята значительно улучшили обмен координатами между роботами, что помогает оптимизировать движение. Например, мяч может быть точно направлен «в ноги» роботу, что исключает необходимость подстраиваться под траекторию и позволяет ему быстрее принимать решение. Это открывает возможности для разных сценариев — от атаки с фланга до быстрого возврата мяча назад при давлении противника.
Улучшение стратегии, алгоритмов и ПО, а также совершенствование взаимодействия между роботами становятся ключевыми факторами, которые определяют успех команд. Постоянный обмен опытом и идеями на турнирах вроде RoboCup помогает командам развивать более эффективные стратегии и приближать роботов к поведению реальных игроков.