Алексей Клячин: «Нужно слезать с «леговской иглы» и переходить на более реальные вещи»

19.03.2018

Чем робототехника на Олимпиаде НТИ отличается от заданий Всероссийской олимпиады роботов? Почему на платформах Lego ученику не стоит работать дольше двух лет? Зачем школьникам знания уровня хороших специалистов?

Эти вопросы мы задали преподавателю Инкубатора «Профи» и руководителю Академии робототехники RoboNest в Екатеринбурге Алексею Клячину. Алексей занимался подготовкой команды школьников (из Снежинска), которая стала победителем на Олимпиаде НТИ в профиле «Интеллектуальные робототехнические системы», финал которой состоялся в образовательном центре «Сириус».

Задача заключительного этапа трека «Интеллектуальные робототехнические системы» была связана с работой компаний, разрабатывающих робототехнические мобильные платформы для логистических центров. Командам предстояло оснастить мобильную наземную робототехническую платформу на базе конструктора ТРИК набором датчиков, необходимым для выполнения основной задачи, и запрограммировать ее для оптимального перемещения по предполагаемому «логистическому центру».

- Алексей, расскажите, что необходимо для выполнения задания?

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

Используя камеру и алгоритмы компьютерного зрения, робот считывает графические метки ArTag, на которых зашифрованы координаты конечной клетки, затем ему надо проехать до этой клетки. Причем обработка изображения метки ArTag происходитбез сторонних библиотек. Всю обработку изображения ребята писали сами (на ТРИКах используется язык программирования JavaScript). На пути следования к конечной клетке появляются «завалы» в заранее неизвестных клетках, т.е. необходимо и это предусмотреть в алгоритмах управления и оперативно вычислять новый путь перемещения. Координаты конечной клетки меняются перед заездом, т.е. заранее их невозможно узнать.

- За счёт чего он узнаёт своё местоположение?

- Так как конфигурация поля известна - составляется «глобальная карта» поля в виде графа, а возможность перемещения из клетки в клетку определяется матрицей смежности.

Определение местоположения робота на заранее известной карте местности называется «локализация». После начала движения робота, его задача - как можно за меньшее количество перемещений определить свое местоположение (координаты клетки и азимут). По сути происходит составление «локальной карты» робота и сравнение ее с вариантами глобальной карты – как только находится уникальное совпадение, то далее навигация осуществляется по глобальной карте. Глобальную карту и матрицу смежности участники составляют сами. (PS в этом году организаторы профиля решили убрать этап «локализация», т.к. программный код был полностью открыт после прошлогоднего финала. Поэтому в начале выполнения задания робот устанавливается в ячейку с известными координатами).

Для вычисления оптимального пути для перемещения между текущей и контрольными клетками используется теория графов (алгоритмы поиска в глубину или ширину) - это уже раздел дискретной математики.

- Но для этого недостаточно стандартных школьных знаний?

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

время перемещения (Х, Y, угол поворота) относительно стартовой позиции, с точностью около 5 мм. Самый простой вариант одометрии возможен по показаниям энкодеров. Есть конечно свои нюансы и погрешности, но для изучения школьниками это очень хороший материал.

На олимпиаде НТИ командам выдают готовые робототехнические платформы в сборе (рама, моторы с колесами, контроллер). Какие датчики брать и куда ставить – участники решают и монтируют сами. Упор больше сделан на алгоритмы программирования. Например, у нас код получился чуть больше 1000 строк! Что-то ребята дописывали уже на финале, по факту получения задания. На Lego отладка попроще, один оборот выходного вала мотора выдаёт 360 единиц (и все считают что это 360 градусов! это ошибка J), а здесь моторы более реальные. В зависимости от типа энкодера они выдают за один оборот около 270 или 380 считываний энкодера – и это конечно нужно учитывать в программе. И получается, что программа вроде написана правильно, а робот едет совсем не так как ожидаешь. Отладка такого робота, в сравнении с «леговским» - гораздо интереснее и познавательнее.

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

- То есть олимпиада НТИ для избранных, по-настоящему целеустремлённых детей?

- Можно и так сказать. На первом этапе участников всегда много, на втором - отсеивается больше 90%, потому что задачи 2 этапа напрямую связаны с практикой. И уже на 2 этапе по сути начинается прикладное применение программирования, математики и немного физики в робототехнике. В прошлом году проходной балл на 3 этап был небольшим, потому что об олимпиаде знало не так много детей и участников оказалось мало. В этом году команд больше и отбор стал более конкурентным.

Олимпиада НТИ - это для тех, кто «вырос». Раньше у таких ребят особой альтернативы не было. Большинство соревнований по робототехнике однотипные или не требуют особых знаний в программировании и математике. Многие ребята ездили на одни и те же соревнования, занимали призовые места - стало скучно. Да и цель у таких школьников другая — они стремятся поступить в ВУЗ, стать хорошими специалистами, и для этого им пригодятся дополнительные баллы.

В команде, которую я готовил, три человека - двое из Снежинска (Иван Смирнов и Роман Варлашов) и один участник из Кирова (Максим Курейкин - победитель Олимпиады НТИ прошлого года и на эту Олимпиаду он попал «автоматически», без прохождения 1 и 2 этапов). Ребята сами позвали его к себе в команду – он согласился. Они очень увлечённые ребята. Роману больше нравится программировать, а Иван нацелен именно на робототехнику - ему интересно разбираться и программой и с аппаратной/электронной частью. После Олимпиады НТИ таким ребятам WRO кажется уже скучноватым мероприятием.

- Естественно, что вузы ждут таких грамотных и мотивированных абитуриентов, но насколько они готовы работать с такими студентами? И где потом будут работать выпускники?

- После таких олимпиад мы получаем практически готовых специалистов (конечно же с учетом начальной стажировки), но компании не готовы брать сотрудников без образования. Здесь мы сталкиваемся с определённой ямой между школой и вузом. К сожалению, университетов, которые могут дать таким детям новые знания и умения, очень мало. Это например, Московский политехнический университет, С-Петербургский политехнический университет, ИТМО, Томский политехнический университет и Университет Иннополис. В большинстве других ВУЗов ребята в лучшем случае будут проходить всё по второму кругу, в худшем — растеряют даже то, что знали. И потом мы сталкиваемся со второй ямой — выбор компаний, где можно работать. Пока в России особого выбора нет. Лучшим выпускникам вузов предлагается работать программистами, но это не совсем то, к чему они стремятся. Хочется верить, что в ближайшем будущем появятся интересные предложения на рынке труда или ребята смогут создавать собственные компании.

Статьи по теме:

Вам понравилось? Расскажите о своем опыте своим друзьям в социальных сетях. Пусть им понравится тоже!