Соревнования. Первый опыт.
Vladimir Litvinenko
Разрабатывать роботов можно бесконечно... Придумывать улучшения конструкции, новые алгоритмы распознавания объектов или оригинальные способы повторить походку человека. Но нужно это все для конкретных целей. Цели - это то, ради чего вкладываются такие огромные деньги в эту структурированную кучку деталей. Есть роботы для спасения жизней, есть для создания зубных щёток, для приготовления еды и для транспортировки людей, - перечислять можно очень долго. Вот настолько они вошли в нашу жизнь уже сейчас. Но тем не менее большая часть из них все таки является очень узким инструментом, который не умеет адаптироваться к изменениям внешней среды, не умеющим «думать». Многие университеты всего мира бьются над тем, чтобы наделить робота хотя бы человеческими возможностями к универсальности. Естественно, разработанные и внедрённые идеи нужно где-то проверять. Так появились соревнования по робототехнике, такие как RoboCup или FIRA. Ученые-организаторы решили добавить немного зрелищности к проверкам работоспособности, устойчивости и адаптивности своих созданий и сделали их в виде соревнований по видам спорта! Что может быть зрелищней, чем, например, футбол? Особенно, когда ставишь себе цель к 2050 году сыграть матч роботов против действующих чемпионов мира? Звучит впечатляюще!

Именно так мы думали, когда в МФТИ появилась лаборатория, связанная с робототехникой. Наслушавшись сильных речей Азера Бабаева, выпускника ФМХФ и идейного вдохновителя всего нашего проекта, мы были дико мотивированны приступить к работе. Он дал нам роботов и французский проект ПО для них. Первая пара месяцев были довольно расплывчатыми. Не было конкретной цели, а ближайшие мероприятия были ещё совсем нескоро. Но вот, одним чудесным вечером звонит Азер и собирает всю нашу команду на совещание:
«В конце февраля будет открытый чемпионат по робототехнике FIRA. Правда будет он в Иране. Поедем?»
Времени оставалось очень мало. Мы совсем не знали, что это такое. Плюсом ко всему нужно было подготовить ещё одного робота для участия. Робота, которого у нас не было. Робота, которого нужно было переделать из японской «игрушки» снабдив его камерой и мозгами.
Естественно, мы сказали «ДА!»


Сейчас нужно немного рассказать про федерацию FIRA, в частности соревнование Hurocup, в котором мы участвовали. Это целая серия состязаний похожая, на олимпийские игры. Она включает в себя бег препятствиями, спринт, стрельбу из лука, футбол (серии пенальти), баскетбол и многие другие. Соревнования проходят как по отдельным видам спорта, так и в общем зачете. Основное правило: для общего зачета должен участвовать единственный робот, в конструкцию которого нельзя вносить никаких изменений. То есть робот изначально должен быть максимально универсальным.

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

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

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

Сами соревнования, оказались, весьма впечатляющим мероприятием. Толпы людей, шагающих туда-сюда: участники, зрители, организаторы, волонтеры. Сразу чувствуешь, как много человек во всем этом заинтересованы. Видишь, что работаешь не зря.
Нам выделили место для работы и донастройки роботов. Как правило на соревнованиях первые 1-2 дня - это сетап (англ. подготовительные) дни. В течение этого времени у команд есть возможность подготовить своих бойцов к новым условиям. Как оказалось для нас, этих дней может быть даже недостаточно.

Организаторы использовали странное покрытие. Оно было на удивление скользким, и наш робот попросту не мог на нем ходить. В лаборатории перед вылетом всё работало как часы, а тут вот тебе! Нашему удивлению не было предела. Мы испробовали кучу (их было действительно много) вариантов, как исправить это недоразумение. Меняли параметры посадки робота, клеили на его ноги порезанные куски коврика от мыши, писали новые движения, в общем, убили целый день только на это. Участие в соревнованиях, где нужно было ходить, под угрозой. Что можно успеть сделать за сутки, когда до этого готовишься несколько месяцев?

Если вы думаете, что случилось чудо, и в нужный момент всё отлично заработало, то нет. Мир не так прекрасен, как нам хотелось бы. Грустно, но это так. Мы кое-как добились от него достаточно устойчивой ходьбы, но беда пришла там, где ее никто не ждал. В момент соревнований по спринту робот просто не пошёл. ПРОСТО НЕ ПОШЁЛ. Так вот бывает. Тестируешь движения, дорабатываешь их, чтобы они работали, а оказывается, что есть ещё код, который стоило бы тоже полностью проверить и исправить все ошибки. Довольно очевидно, не правда ли? Мы и сами это понимали. И после этого дня в соревнованиях, где нужно было ходить, мы не участвовали.

Мы сконцентрировались на двух других состязаниях: тройной прыжок и стрельба из лука. Начну со второго, потому что то, что было там, стоит отдельного рассказа. Если коротко, то организаторы нигде не сообщали, что робот сам должен оттягивать тетиву у своего лука, поэтому мы ехали на соревнования с самодельным арбалетом, четкой уверенностью, что все будет прекрасно, и довольной ухмылкой на лице. Сказать, что нас озадачила эта новость - это ничего не сказать. В итоге Илья Рякин смог за ОДИН день переделать робота таким образом, чтобы он стал самостоятельно оттягивать тетиву. Нужно было собрать другие руки, создать новые движения, настроить их для работы и срастить с написанным кодом обнаружения мишени и прицеливания. Лучше всего, что происходило в этот день описывают следующие фотографии.


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

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

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

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