Чуть больше месяца назад, увидев на канале «Русские Хакеры» в Telegram анонс хакатона, да ещё робототехнического, да ещё и проходящего в другой стране, мы с друзьями решили — а почему бы и нет? Мы участвовали в большом количестве хакатонов в России, но никогда не видели, как там, за рубежом.
Быстро собравшись и уладив визовый вопрос, мы отправились в Хельсинки собирать роботов из Lego Mindstorms. В этой статье я постараюсь по порядку рассказать, что нам нужно было сделать, стоило ли участвовать и сколько времени и денег нам стоило ехать.
Давай начнем!
О задачах
Мероприятие называлось Восстание роботов , чтобы принять в нем участие.зарегистрироваться нужно было не позднее, чем за 2,5 недели (кстати, было написано, что будут отбираться команды, но видимо для прохождения достаточно ссылок на Github с небольшим количеством проектов).
Основной задачей было собрать из подаренного нам роботокомплекта Lego Mindstorms робота, который бы проходил трассу:
Он состоял из нескольких основных этапов:
- Лабиринт с белой линией, нарисованной на полу.
Лабиринт был разделен по диагонали и сначала был раздвинут так, что пройти через него было невозможно.
Нужно было загнать робота на желтую напорную платформу, подождать несколько секунд, пока лабиринт отойдет назад, и двигаться дальше.
- Вторая сцена представляла собой площадку с металлическими штырями (которые организаторы поэтично назвали железными деревьями).
Между ними нужно было проехать, не застревая и не задевая их.
- На третьем этапе нужно было доехать до конца платформы, нажать красную кнопку, взять выпавший в результате нажатия куб и, вернувшись с ним в начало, положить его на платформу - далее дверь откроется, через который можно будет проехать.
- Третья ступень имела три вращающихся диска, расположенных один за другим и вращающихся в разные стороны.
На этих дисках также располагались небольшие препятствия.
Вам просто нужно было проехать по этой части маршрута
- Предпоследний этап, в котором нужно было нажать кнопку, чтобы поднять рампу вверх, проехать по ней, а затем спуститься к финальной части пути.
Этот этап имел разные степени сложности, которые можно было выбирать, нажимая кнопки разного цвета — чем выше сложность, тем больше очков дается за прохождение этапа (например, один из вариантов заключался в том, что рампа постоянно поднималась и опускалась).
- Заключительный этап.
После прохождения дистанции роботу остаётся занять одно из шести мест победителей.
Но, поскольку прошедших дистанцию было гораздо больше шести, то после того, как все места были заняты, следующие прошедшие дистанцию должны были «бросить вызов» кому-то, уже стоящему на пьедестале, и вытолкнуть его за пределы ринга.
Как уже говорилось ранее, на соревнованиях существовала балльная система.
Очки в финале начислялись за стиль кода, чистое прохождение маршрута, сложность предпоследнего этапа и степень автономности.
Например, за его полное отсутствие (управление с компьютера/пульта/джойстика) давалось 0 баллов, за сложное прохождение маршрута — 100, а с помощью машинного обучения можно было получить максимум 500 баллов.
Очки можно было заработать и еще до финала — для этого нужно было выполнять дополнительные квесты.
Чтобы получить доступ к заданиям, нужно было найти на сайте пару строк, зашифрованных шифром Цезаря, расшифровать их, перейти по ссылке, найти ссылку на другую страницу, и уже было достаточно большое количество квестов разной сложности.
разместил там.
Например, были такие задания: есть две картинки с шумом, нужно было угадать, что их нужно наложить друг на друга и вычесть, чтобы получить слово, которое нужно дать в качестве ответа.
Кстати, очки, полученные перед финалом, тоже можно было потратить, но об этом ниже.
Еще интересно то, что организаторы продумали предысторию и сеттинг.
По легенде, хакатон проходил на территории крупного автоматизированного завода, где производят роботов.
И неожиданно что-то пошло не так :) Помещение, в котором проходил хакатон, одежда организаторов - все было оформлено в стиле этой истории, и выглядело это очень круто.
И задачи, которые необходимо было выполнить, тоже входили в эту настройку.
Об оборудовании
Организаторы предоставили команде набор Lego Mindstorm, состоящий из контроллера EV3, датчика цвета, сонара, трех двигателей, гироскопа и достаточного количества проводов для его подключения.
В набор также вошли такие мелочи, как колеса, гусеницы и кубики Лего.
Набор оказался весьма скудным, не правда ли? Чтобы правильно решить задачу, такого набора точно не достаточно, поэтому у участников было два варианта — либо взять с собой дополнительное железо (как выяснилось позже, можно было использовать любое железо, а не только Лего — raspberry pi, arduino , разные камеры.
Что и делала большая часть участников, принося из дома необходимые модули (ну у нас с собой совершенно ничего не было).
Но для тех, кто действовал так же неосмотрительно, как мы, существовал своего рода магазин, в котором это можно было обменивать заработанные баллы на модули (правда, он заработал их за 15 часов до окончания хакатона, что немного запоздало).
О нашем роботе
Наверное, нужно сказать, что никто из команды даже не держал контроллер EV3, как и весь комплект, в руках до хакатона.
Поэтому вкупе с отсутствием необходимых деталей и дополнительного оборудования мы получили вполне ожидаемый результат. Перед поездкой, посмотрев информацию, которую нам прислали организаторы, и немного погуглив, мы обнаружили, что EV3 имеет микроконтроллер Arm (ARM9), и что туда можно установить Debian. Воодушевленные тем, что мы сможем писать о плюсах, а не соединять блоки, мы с нетерпением ждали возможности поработать с новым оборудованием.
Но на деле все оказалось не так радужно, как мы ожидали.
Мы поняли, что все будет не совсем так, как мы ожидали, как только запустили EV3 и попытались его обновить.
Потому что он просто замерз.
То же самое произошло, когда я попытался установить gcc. Борясь с этим довольно долго и докопавшись до наставников и членов других команд, мы выяснили несколько важных вещей: единственный вариант работы с преимуществами — кросс-компиляция, почти все команды пишут на Python ( пару человек пытались что-то сделать на JavaScript и C#), а также, что кроме нас было несколько русскоязычных участников.
Приняв трудное решение писать на Python, мы наконец приступили к работе.
На самом деле, даже после этого мы столкнулись с огромным количеством мелких проблем, но я не буду перегружать ими эту статью.
В итоге к концу хакатона нам удалось правильно создать и отладить только удаленное управление.
Но несмотря на это, мы заняли 11 место из 29, что, мне кажется, для первого раза очень неплохо.
О том, как была организована поездка
Теперь немного расскажу о том, что нужно было сделать и сколько денег нам понадобилось на поездку.
Первым делом мы написали организаторам и спросили обо всем, что нам было хоть немного непонятно.
После прохождения отбора по нашей просьбе организаторы прислали нам приглашения на визу, хотя отправили их тогда, когда мы уже почти неделю подали документы.
Но в принципе визы в Финляндию одни из самых простых, поэтому мы особо не боялись, что нам ее не дадут. Нам, кстати, повезло, и через визовый центр их оформили за 5-6 дней.
Жилье в Хельсинки дорогое, поэтому мы, как бедные студенты, решили не снимать жилье на время хакатона, а постоянно писать код или ночевать там (кстати, с этим были проблемы; на сотню человек приходилось всего два гамака и небольшие качели, чего было явно недостаточно).
Кстати, на хакатоне было трехразовое питание :) Добирались мы самолетом из Москвы, но нам повезло, да и у Победы была акция, поэтому вместе с покупкой места для багажа и оплатой выбора места билеты стоили довольно дешево.
И еще несколько слов о языковом барьере.
В нашей команде из трех человек только один человек хорошо говорил по-английски, а двое могли что-то сделать на начальном уровне.
И этого было вполне достаточно.
В принципе, если ваш уровень английского на уровне 11 класса школы, бояться не стоит – в крайнем случае, можно купить местную симку за 6 евро на пять дней и пользоваться гугл-переводчиком.
Ну и в крайнем случае, на самом хакатоне мы нашли несколько русскоязычных финнов, в том числе среди организаторов.
Примерная смета на трехдневную поездку:
- Оформление виз через визовый центр ~5000 рублей (в зависимости от курса евро).
- Билеты на самолет стоят 3000 рублей туда и обратно, за багаж и выбор места еще 1000 рублей.
- Сим-карта, транспортные расходы до Хельсинки ~2000 руб.
- Одна ночь в отеле, так как самолет был утром ~1500 руб.
Итого: 12500 на человека.
Полученные результаты
В заключение хотелось бы сказать, что это был, наверное, лучший организованный хакатон, в котором я участвовал (а их было довольно много).
Участие в нем принесло мне и моим товарищам по команде огромный опыт пребывания в ИТ-среде другой страны, и, несмотря на большое количество технических проблем, мы получили массу положительных впечатлений.
Кстати, Robot Uprising проводится ежегодно, так что я надеюсь в следующий раз встретиться там с кем-то из читателей этой статьи.
В публикации использованы фотографии группы.
хакатон .
Теги: #python #Хакатоны #хакатон #lego Mindstorms ev3
-
Первая Статистика Производительности Облака
19 Oct, 24 -
Советский Графический Планшет «Эскиз».
19 Oct, 24 -
Слоновая Раздача Или Приглашения В Google+
19 Oct, 24 -
Как Изменить Мир Вместе
19 Oct, 24 -
$ Ls -L /Home/Avitotech/New_Year
19 Oct, 24