Аннотация: У многих возникают вопросы. Какого лешего я делаю, что тут не появляются долгожданные "проды". Пожалуй, это должно послужить ответом на вопросы.
Заметки робототехника.
Наверное, этот очередной треш из моей жизни, который выглядит еще менее правдоподобным, что даже не достоин стать в измененном виде частью "Факультета".
Итак, что произошло с тех пор как я промыл мозги себе на селигере в роли инноватора? Я закончил МИФИ, поступил в аспирантуру... Да много чего произошло.
Но обо всем по порядку. На селигере судьба свела меня с человеком из команды по робототехнике, которые готовят роботов на ежегодные соревнования "евробот". Познакомился и ладно - роботы меня особенно не привлекали, я больше делал всякую электронику для себя да для своей лаборатории. Но вот однажды осенью, Роман стукнулся ко мне и попросил поучаствовать в команде. Не его, а другой.
Команда буквально составлялась с нуля, вокруг одного такого интересного паренька по имени Дима. Дабы он случаем не выгуглил этот опус, и не увидел что я хвалю его, фамилию опущу. Не образовательно иначе (tm).
Итак, Дима. Пареньку 12 лет, он лепит роботов в большом количестве, учит других. Своими познаниями легко заставит покраснеть от стыда некоторых гавриков из нашей, теперь уже бывшей, группы. Собственно его конек - механика робота, которую он играючи моделирует в САПРе, и печатает на 3д принтере. Травит, лудит, паяет, программирует, понемногу бубунту осваивает, которая у него дуалбутом стоит с виндой. Из схемотехники тоже знает поболее, чем остается от лекций у среднестатистического раздолбая после курса лекций. Рвет шаблоны, общем.
Правда от ардуйны его пришлось отучать и пересаживать на чистый С и мейкфайлы, но это удалось сделать на удивление легко. Код конечно местами у него странный, выправляю по возможности ситуацию, но тут понятно, что это для него в итоге отлично освоить не проблема.
Кстати о лаборатории. Занимаются команды в одной такой лаборатории Москве с преинтересным оборудованием: 3д принтер, станок лазерной резки (металл правда не берет, но фанеру, плестиглаз - легко). В общем это было то, то если я себе если и добуду когда-нибудь, то это будут исключительно самоделки. Увидев сии машинки слюноотделение у меня пошло крайне активно.
Что касается самих соревнований, то суть примерно такая: есть 90 секунд и регламент, по которому удовлетворяющие всем требованиям роботы, прошедшие гомологизацию должны на поле делать что-то удовлетворяющее регламенту и набирающие очки.
В этом году надо было расставлять фигуры на поле, подобном шахматному.
В общем я вздохнул, понял что поспать могу и меньше и приступил к работе. Изначально мы думали ставить мощный многоногий контроллер atmega1280 с FPGA на шине данных для грязной работы, и начинку китайского планшета с линуксом в виде основных мозгов. В итоге пока я сдавал диплом, поступал в аспирантуру, сдавал ГОСы и носился с бумагами по бюрократам мы успели... мало.
Плату с FPGA я так и не переразвел, софт был убогим, и планшет пришлось выкинуть из конструкции - ему просто нечего было делать. Этого нашего работа мы назвали pakman - уж очень он напоминал pacman'a. Помните из старых DOS'овских игр, такой колобок кушающий на поле какие-то таблетки?
В общем робот наш к дедлайну пахал на единственной атмеге1280 без FPGA и планшета, ездил по жесткому алгоритму. Разве что систему сборки я отладил неплохо, открутив menuconfig от линуксового ядра и прикрутив его для сборки прошивки avr'ки. (Пожалуй, опущу технические подробности, вдруг это будут читать девушки?)
Шанс, что сия поделка пройдет в финал я считал ничтожным, потому спокойно сбежал от работы в приемной комиссии МИФИ в Крым, где лечил свое триклятое горло.
Каково же было мое удивление, когда находясь в Крыму я узнал, что робот прошел в финал, да и вообще на отборочной части занял первое место. Более того, финал надо будет ехать в Астрахань.
Вспоминая события годовалой давности у меня появилось жесткое ощущение dejavu.
В итоге приехав из крыма, и сделав по мелочи дела на работе, я обрадовал отдел аспирантур справкой на украинском языке из санатория и письмом от "НОК Евробот" на имя ректора. Так же обрадовал читателей тем, что так и не выложил долгожданные ими проды, просто не успев толком ничего. После закинул самое главное: паяльник, флюс, припой, отладочные платы, провода и прочее в чемодан приготовился к путешествию.
Вообще, "Евробот" в России проводился впервые. Его прикрутили заодно к какому-то Астраханскому Форуму, назначение которого я даже не удосужился узнать. Поучаствовала и администрация президента, и Сколково (Куда ж без него!).
Прилетел в Астрахань я немного позже Димы, за день до первой "гомологизации" (это начальная проверка работа на соответствие регламенту, выговорить с первого раза проблематично). И узрел код.
За время моего отсутствия в коде появилось средневековье, мракобесие и джаз, потому первую же ночь я надрался кофе и начал расчищать проблемы.
Пришлось дописать новых костылей, чтобы поднять обнаружение робота противника (за столкновение снимают быллы), как-то расчистить баги... В общем, было весело.
На следующий день, я понял, что у нас проблемы. Серьезные. Где-то билась память и совершенно случайно робот начинал тупить, глючить и вообще вести себя странно. Гомологизацию мы с горем пополам прошли, а вот на матче... На соревнованиях дальномеры инфракрасные которые смотрели на маяк противника ослепил свет прожекторов на сцене, мы в итоге столкнулись, но набрали энное количество баллов и не вылетели сразу.
Будуи в глубоком неадеквате после двух бессонных ночей, и случайно запитого пепси-колой (Угостили, халява, уксус, все дела) кофе мне было по барабану. Я смотрел на все скептически. Дима нервничал, потому я порекомендовал ему послушать "Don't worry, be happy", под который я отлаживался ночью или попросить диджея поставить оный трек.
Что делает Дима? Бежит за флешкой, несет куда надо флешку... И в итоге наш робот с memory corruption где-то недрах выступает под "don't worry - be happy". Шанс стартовать робота я предоставил Диме, так как сам едва сдерживал смех в сторонке.
Из соревнований мы не выбыли, выспаться не вышло: Противник наш фейлил местами даже больше нашего. Из 14 команд осталось 7, и мы были где-то в середине списка Российского Чемпионата.
Эта ночь запомнилась мне. В первую очередь тем, что я не запомнил событий. О произошедшем мог судить только по телефонам и емейлам неизвестных мне девушек в телефоне и по комментам в исходном коде.
За ночь я умудрился вычистить все предупреждения, поднять скриптовой движок, который мог работать как в интерактивном, так и неинтерактивном режиме, а так же добавить разных плюшек в код. Когда у меня хватило времени познакомиться с какими-то девушками - я не помнил.
Но сегодня был явно не наш день. Код работал безупречно, но начались проблемы с механикой. По ходу робота ударили здорово при транспортировке. Стенд для фигур выдвигался, хватал пешку, задвигался, но более не выдвигался. В довершение отвалился трос к манипулятору.
Заметили это за три минуты до матча, причем как назло с самой сильной командой.
Первый матч мы продули, второй выиграли, а третий, когда трос окончательно отвалился продули. В итоге так и остались шестым номером на Российском чемпионате. Дима расстроился, а я был рад, и немного поспал.
Далее было веселее. Команд из-за бугра приехало много, хотя Дима и отмечал что меньше, чем когда финал проводили в европе. Больше всего отожгли Бельгийцы, устроившие "алко-треш-пати" в общежитии АГУ, где мы остановились в первую же ночь. Они так же доставали выпивку для отмечания одной победы прямо из робота, и до кучи сказали, то для всех команд, не занявших первые 16 мест у них есть бутылочка какой-то алкогольной штуки в подарок. Хоть и халява я такое забирать не стал...
После соревнований началась фаза промышленного шпионажа. Дима бегал по командам, расспрашивал как можно подробнее что и как кто делал, всячески хвалил максоновские движки и говорил что в следующем году обязательно надо добыть более мощные максоны.
Я больше смотрел на программный стек, были и впечатляющие проекты. Основные лидеры, со стоимостью робота под 30 тысяч баксов и боками прямо таки обклеенными рекламой спонсоров в основном катались с линуксом на борту и... c Microsoft Kinect (Кто знает поймет).
Команды по меньше имели в спонсорах IAR и прочие среды разработки для чайников, и куда либо на очень хорошие места они, разумеется, не прошли.
Насмотревшись на роботов, команды, наболтавшись на английском (после почти 7ми лет отсутствия практики, это было внезапно очень приятно), мы поприсутствовали на парочке экскурсий. Экскурсоводом на экскурсии в кремль посадили девушку из волонтеров, причем текст видимо дали внезапно.
Она нервничала, и жгла в микрофон прямо таки напальмом.
Чего стоит одна только оговорка "население Астрахани - 520 человек". Но мне все равно понравилось.
Дальше было хуже. На закрытие приехал мужик из Сколково. То, что он зачитал звучало конечно круто. На русском. Но бедных девченок переводчиц, которые и так намучались от малоадекватного ведущего, заставляющего их доводить до ума иностранцев русские пословицы, мне стало жалко, ведь я местами, и на русском не понял некоторый оборов... Но зря я их жалел. Зря. Текст им перевели и они его только зачитали.
Теперь стало жалко иностранцев.
Команда из Швейцарии сидящая рядом, и спросившая у меня про что там, несмотря на то, что я им в кратце пояснил сползла под стулья.
- Well, this is politics, so that should have been expected - произнес сидящий рядом со мной Швейцарец.
Хорошо хоть понимает.
С приездом представителей Сколково треш продолжился - на очереди был "бич пати" на берегу Волги. Повезли нас на самый лучшй пляж, который был. Но там было одно но: дорога. Автобус не рискнул ехать дальше, нас пересадили в более обдолбанный, и мы поехали по дорожке, с которой сравнится разве что дорога на даче, после того, как ее перекопали для прокладки газа. Иностранцы восприняли это с энтузиазмом, как развлечение.
Сама вечеринка состояла из танцпола, на котором отжигал хорошенько заправившийся горячительным диджей, собственно, палатки для заправки горячительным и шашлыком, и самого пляжа где можно было искупнуться.
Иностранцы бухали по черному. Англичане и бельгийцы начали еще в атобусе, австрийцы догнали их по литражу на пляже. Будучи все еще на кофеине, так как выспаться толком еще не удалось, я пару раз болтал с астраханскими девушками на английском, потому когда те узнавали что я из Москвы была немая сцена и резкий переход на русский язык. Реакция их на это мне настолько понравилась, что я от нечего делать ходил и троллил их таким образом. Одна в ответ отожгла целую тираду, которую не записать было грех:
- Вот, блин, подошел англичанин весь из себя прямо таки мечта, а сам Moscow, Russia!
Вдоволь наевшись шашлыка, и натроллив ("еды" тоже было много!), нас решили развозить по домам. Устроили на последок неплохой фейерверк, сделавший бы честь какому-нибудь празднику.
Далее началась погрузка на автобус. Тот самый маленький, обдолбанный, который везет к большому и с кондиционером. К нулю часов мы уже ехали в общежитие АГУ.
После некоторого времени проведенного на танцполе, где полубухой диджей орал "Yeah! Eurobot twelve eleven!" Иностранцам захотелось еще. Потому сначала попросили вырубить свет, а потом врубить музыку. На ухабах даже танцевать не надо - "In Soviet Russia the bus dances you!".
Дима, хотя ему вроде бы и не наливали, нацепил погоны самого Капитана Очевидность и произнес после этого очевиднейший факт, согнувший меня (да и пол автобуса, кто это понял) в пополаме.
- Водитель рулит!
Наверное, мне бы все это даже понравилось, если бы я по ночам, в дедлайн не имел привычки работать под такую вот танцевальную музыку. Очень уж хорошо не заснуть помогает. И пресловутый условный инстинкт думать под такую музыку о коде, а не танцевать у меня выработался давно.
По заверениям Димы это был самый трешовый евробот из всех, которые он видел.
Собственно, сейчас уже стало скучнее. Самолет у меня только четвертого вечером, большинство уже улетели, а я сижу в общежитии, и пишу эти строки, понимая, что в слудующий год придется таки участвовать.
И уж на этот раз, делать что-то с блекджеком и прочими атрибутами успешного робототехнического проекта.