Наставники | Журнал Кружковое движение

Олимпиада для сообщества, в котором любят беспилотные автомобили (часть 1)

Недавно закончился финал профиля «Автономные транспортные системы» Национальной технологической олимпиады (НТО, ранее — Олимпиады КД НТИ), и мы побеседовали с его организаторами, Василием БЕЛКИНЫМ и Алексеем ЧЕРТКОВЫМ. Василий был в профиле с самого начала, Алексей включился в работу уже в эпоху распределённых форматов, но они оба постарались сделать задания для участников полезными, несущими знание. Василий и Алексей рассказали нашему журналу о программировании беспилотников, организации олимпиады и участниках.

Василий Белкин

Наталия Саюкина: Расскажите, пожалуйста, как вы начали заниматься образованием в области искусственного интеллекта и НТО?
Василий Белкин: Сейчас я технический директор по развитию  Академии Высоких Технологий [прим. ред.: здесь и ниже заглавные буквы — часть имиджа компании] и одним из руководителей профиля «Автономные транспортные системы» НТО. Я успел поучиться в двух вузах: Московском государственном университете им. М. В. Ломоносова (МГУ) и ещё одном, ныне ставшем частью Костромского государственного технологического университета. Студенты этих двух вузов отличались, как небо и земля: в первом месте они были мотивированы, ответственнее относились к знаниям, учёбе и будущей жизни. Это произвело на меня неизгладимое впечатление. Я понял, что не хочу, чтобы вокруг меня были люди, не желающие учиться. Понял, что если кто-то не будет учить подрастающее поколение, то развитие науки остановится и жизнь станет хуже. Я бы не хотел такого для своих потомков, поэтому решил заняться образованием.

Я рассказал товарищам, что учился на физика-материаловеда и учителя физики, а они предложили мне поработать в Университете машиностроения «МАМИ», позже ставшем частью Московского политехнического университета [Прим. ред.: далее в тексте — Московский Политех]. Товарищи, по совету которых я стал преподавать в МАМИ, были будущими организаторами Олимпиады НТИ, и вскоре мне предложили провести один из первых профилей олимпиады — «Автономные транспортные системы».

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

Алексей Чертков: Я директор по развитию Академии Высоких Технологий и один из организаторов профиля «Автономные транспортные системы» [прим. ред.: С 1 апреля 2022 года Алексей Чертков перестал работать в Академии Высоких технологий и с НТО, интервью взято до этого момента]. Учился на химическом факультете МГУ, как и Василий, из большого студенческого сообщества оттуда пришла вся наша команда.

Алексей Чертков

В.Б.: Это хорошая деталь. В этом сообществе были и Дмитрий Земцов с Алексеем Федосеевым — лидеры Кружкового движения НТИ — те самые упомянутые мной товарищи.

А.Ч.: В МГУ я провёл 15 лет: учился, занимался наукой и образованием. В 2017 году часть моей работы в образовании стала посвящена старшеклассникам и современным IT-технологиям. Вместе мы делаем для ребят большой сложный новый мир доступным и понятным, и это то, ради чего я здесь, в НТО. Когда мы начинали, словосочетание «искусственный интеллект» не означало почти ничего и было модным хайпом, а сейчас оно конкретное и понятное. Мы создали для участников онлайн-курсы по искусственному интеллекту, адаптированные под математические знания восьмиклассников.

Н.С.: Расскажите, как начинался ваш профиль?
В.Б.: Перед первым сезоном олимпиады был пилотный запуск четырёх профилей во Всероссийском детском центре «Орлёнок». Там собралось большое количество ребят из школ проекта «Лифт в будущее». Нас привезли, познакомили с детьми, и они поделились на команды по 5 человек, чтобы 3−4 дня решать наши задачи. У меня в «Автономных транспортных системах» было 75 детей, а я был один и справился с ними. Это было здорово. Я тогда хуже разбирался в нашей тематике, поэтому не мог провести подготовительные курсы, но моих знаний хватало для составления задач и их решения. Было весело и лампово, почти отсутствовал формализм. Каждый старался максимально поделиться с ребятами знаниями.

Теперь уже иначе, есть жёсткие регламенты, которые имеют все олимпиады РСОШ. Им надо следовать, нельзя задавать наводящие вопросы и давать подсказки во время соревновательных этапов.

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

Н.С.: Алексей, а в каком году вы пришли в олимпиаду и что происходило в тот год?
А.Ч.: Я пришёл в олимпиаду перед сезоном 2018/19, в качестве соорганизатора профиля «Автономные транспортные системы». Происходило соревнование для школьников, на которое я смотрел большими удивлёнными глазами. Было любопытно, не всё понятно, а ещё не очень системно организовано. Мне захотелось сделать профиль более цельным, чтобы он нёс единый смысл. Думаю, что сейчас мне удалось достичь этого.

В «Автономных транспортных системах» участники изначально делали три мобильных робота: летающего, ездящего и плавающего. Впоследствии первый стал квадрокоптером, второй — беспилотным автомобилем, а третий у нас исчез, но позже появился на другом профиле. Зато нам удалось выбрать единую технологию, связывающую всё на профиле. Это технология компьютерного зрения. Мы отошли от робототехники и того, что ребята концентрируются на изделии, и перешли к понятию «знание». Теперь они с сентября по апрель учатся конкретной технологии. Мы уверены, что это знание пригодится им в будущем. Увы, вероятность того, что им впоследствии понадобится опыт программирования, например, плавающего кораблика, была гораздо меньше. А компьютерное зрение — это работа с обучаемым искусственным интеллектом здесь и сейчас.

Н.С.: А что Вы можете рассказать о только что прошедшем финале?
В.Б.: Он был похож на финалы предыдущих лет. Ошибки, замеченные в прошлом году, были исправлены, но нашлись новые, и участники нам с этим помогли. Как и в прошлом году, только одна команда смогла полностью справиться с нашим заданием, что оправдало наши ожидания. Значит, мы хорошо его проработали, оно достаточно сложное, но решаемое. Для актуальных задач науки и техники самое тяжёлое — оценить доступность передовой науки для понимания школьниками.

Справившейся с заданием командой стала FTL из Минска: ребята создали слаженно работающую транспортную систему и заняли первое место. На апелляционном заезде хороший результат показала ещё одна команда, но, к сожалению, их подвела ошибка в единственной строке кода.

А.Ч.: Хочется отметить, что в этом году в профиле участвовали команды из трёх стран: России, Белоруссии и Казахстана. Можно сказать, что наш профиль — самый интернациональный профиль НТО.

Н.С.: Расскажите, какие задания выполняли и выполняют участники «Автономных транспортных систем»?
В.Б.: Первый тур олимпиады делает Проектный офис. Мы выбираем предметы и назначаем проходные баллы. Раньше были физика, математика и информатика, но позже мы убрали математику. Оставшиеся предметы школьники пишут всё лучше.

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

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

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

Беспилотный автомобиль готовится распознать дорожные знаки на испытательной площадке. 2021 г.

Программа для третьей задачи должна была детектировать пешеходов: на изображении обвести рамочкой каждого из них.

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

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

Н.С.: А что происходит в финале «Автономных транспортных систем»?
В.Б.: Концепция финальной задачи профиля из года в год не меняется. Надо построить автономную систему доставки грузов, состоящую из трёх частей. В первой беспилотный автомобиль должен проехать по «городу» — площадке размером 6 на 8 метров со зданиями, светофорами, знаками пешеходных переходов и дорожной разметкой: разделительными полосами, зеброй, стоп-линиями на перекрёстках. Беспилотному автомобилю нужно ориентироваться в «городе» при помощи написанного участниками кода и камеры, с незначительной помощью датчиков и индикаторов. Устройству необходимо, соблюдая правила дорожного движения, доехать до сортировочного хаба.

На сортировочном хабе находится балочный кран, программу для которого также пишут ребята. Он должен подъехать к автомобилю и забрать с него груз. Алгоритм для крана определяет, где лежит груз, куда нужно попасть захватывающим магнитом, распознаёт маркировку на грузах и отсортировывает их по «складским помещениям». Это задача на знание компьютерного зрения и логику.

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

Во время финальной задачи я являюсь одним из операторов. Сперва ставлю беспилотный автомобиль на указанное участниками место. У них есть удалённое подключение к беспилотнику: они запускают свой код, вводят команды, настраивают камеру. Когда всё готово, автомобиль едет. Если он сбивает человека, я останавливаю его, а если слетает с трассы или врезается в здание, то выключаю двигатель и ставлю беспилотник на место, потому что программа плохо написана. Ребята спешно что-то химичат, пытаются отладить свой код для новой попытки.

Чтобы участники понимали, что происходит, ведутся трансляции с полигона через несколько камер, одну из которых я на штативе несу за беспилотником. Это самый крупный план, а самый дальний — полигон целиком, на котором видно, как на одном краю «города» оператор стоит с автомобилем, на другом взлетает квадрокоптер, а в третьем месте оператор следит за сортировочным хабом.

Сортировочный хаб. 2021 г.

Н.С.: Неужели задания из года в год не меняются?
В.Б.: Общая концепция такая уже третий год. Задачи меняются лишь настолько, чтобы нельзя было использовать прошлогодний код, ведь решения прошлых задач выкладываются для ознакомления. Ну и «город» меняется.

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

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

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

В общем, если ты придёшь на финал без заготовок, то у тебя крайне мало шансов на победу.

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

Н.С.: А как долго финалисты имеют доступ к «городу»?
В.Б.: Во время подготовки к финальному заезду — несколько раз, длящихся минут 20−40. Зависит от количества команд и дня соревнований. За это время участники должны успеть отладить работу железа, и это серьёзный минус распределённого формата. Время между тестированиями они тратят на написание кода. У них есть видеозаписи с их беспилотника, которые помогают исправлять ошибки.


Читать продолжение
НАСТАВНИКИ