Робофест-2016. За кулисами Rokkit. Часть 1

Вот и закончилась эта неделя. Пожалуй, одна из самых насыщенных недель этого года. Последние два дня я глухо отсыпался за прошедшее. А сейчас, пожалуй, пришло время cool-stories с процесса подготовки к Робофесту.

P.S. Все совпадения с реальностью случайны, персонажи вымышлены.

IMG_20160414_174700

Действующие лица:

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

Неделя до соревнований

Конец марта. Не так давно Дима едва-едва успел зарегистрировать команду на Робофест, так как основную волну регистрации мы, как водится, прошляпили.

Как обычно, всё делается в последнюю минуту. Пользуясь полученной на работе травмой, я отсиживаюсь дома последнюю половину недели и доделываю контроллер шасси. Дима непрерывно рапортует о том, что его алгоритм отлично работает. У Нины какие-то замешательства, классификатор пока что хандрит и просит больше новых фоток.

Мы решили, что неплохо хотя бы раз собраться всей командой и переделать целую гору накопившихся дел. И вот наступила суббота. Утром я докупил Wi-Fi свисток для Raspberry, после чего мы собрались в лаборатории лицея и взялись за работу. Богдан прикручивал «красную кнопку», Нина мучила классификатор, я доделывал навигацию по энкодерам. Новая структура контроллера включала в себя управление с клавиатуры, поэтому как только Богдан закончил возню с кнопкой включения, мы решили покатать робота по столу.

Представьте себе наше «танковое» шасси о двух приводных колёсах и двух дополнительных точках опоры. Представили? А теперь представьте, что при выкручивании движков на полную мощность это чудо робототехники начинает давать угла на полигоне. Ещё бы, движки питаются 13 вольтами при штатных 6, редукторы подобраны самым удачным для этого образом.

А наш робот может делать «чу-чу»!

Богдан

Эдакий электронный наддув. Разумеется, его пыл в автономном режиме приходится ограничивать: на самих соревнованиях мы едва-едва доводили мощность до 30% от максимальной, и то на очень плавном разгоне.

Также выяснилось, что найденная мной в ящике с хламом старая USB 1.1 — веб-камера отказывается стабильно работать с RPi, которая начинает отвергать её через какое-то количество снимков. Поэтому мы заменили её на новую Full HD-камеру, которая лежала в загашниках лицея в комплекте довольно бестолкового лазерного «3D-сканера».

Под конец дня Богдан наделал кучу фотографий знаков с новой бортовой камеры, внезапно пришедший Ваня помогал Нине вырезать знаки со сделанных снимков, Дима что-то прогал и иногда ругался, а я дописывал нижний уровень и иногда заваривал всем чай. Конец дня мы с Димой и Ваней провели у Димы дома.

***

В воскресенье все работали у себя. Я пока с трудом представлял, как будут связаны между собой три компонента системы, которые по отдельности вроде бы пытались работать. Но всё-таки работы пока было навалом, и эти мысли отходили на второй план.

***

В понедельник мы написали контрольную по основам кибернетики и стали думать, где собраться для продолжения подготовки. Не найдя варианта интересней, решили ломануться ко мне в глушь. «Почувствуй себя Никитой» — Дима так окрестил этот квест, когда мы топали от электрички к дому через полтора часа после выхода. Я только посмеивался, представляя, как этот квест будет выглядеть утром.

Ночью Дима с Ваней продолжали писать логику. Для меня с каждым часом это становилось всё более глубокой магией, впрочем, скучно мне не было: я решил попробовать сделать для робота навигацию по картинке с камеры. Пока просто: выделить границы на картинке фильтром Собеля, ткнуть точку в середине нижней части кадра и посчитать расстояние до левого и правого края дороги. На нашем импровизированном полигоне из изоленты, наклеенной на пол, это даже заработало часам к 3 ночи:

IMG_20160417_213401

Впрочем, робот до сих пор не поехал. Нина вроде бы порадовала свежими новостями, но ничего определённого пока всё равно не было.

***

Утро.

«Во сколько вас будить?» — «Да как сами встанем». О да. Конечно. В чём заключается квест — так это в том, чтобы проснуться в 7:30 и успеть после этого на электричку. Дима отрапортовал, что он бодр и весел, что 4 часа сна на свежем подмосковном воздухе подобны 6 часам в городе.

Через полтора часа мы уже тряслись в электричке, уткнувшись в ноуты, а ещё через полтора — сидели на лекции по функану. Мы с Ниной прикручивали ZeroMQ к её классификатору, чтобы как-то передать данные в сторону Димино-Ваниной магической логики. У меня вроде бы заработал мост от питоновского скрипта к бинарному интерфейсу шасси. В общем, начали прорисовываться детали.

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

Не бульщит, а инженерная книга — гласило название файлика на печать.

Кое-как успев распечатать книгу и наклейки, мы помчались на ВДНХ.

Резюме: час до соревнований

У нас есть логика. У нас есть классификатор, распознающий знаки, который пытается связываться с логикой. У нас есть тележка, в 9 раз меньшая по площади относительно допустимой по регламенту (20х20 см против 60х60). Кроме системы управления шасси, на бортовом компьютере мы не проверяли ни-че-го. И мы едем регистрироваться на соревнования.

После «евроботовских» авралов — ощущения незабываемые. Что самое характерное, мне не было особо страшно. Мы совершенно ничего не теряли. Это было по-настоящему весело. И мы в режиме non-stop проработали больше недели — параллельно и независимо друг от друга. По идее, все части программы должны слиться воедино и разом заработать (ну, может, не разом, но после не очень продолжительной отладки).

Да. Это похоже на командную работу. Дальше — интересней.

Продолжение следует…

 

Оставить комментарий