Максим Кичигин — выпускник бакалавриата факультета инновационных технологий Томского государственного университета. В этом году он вместе с командой занял первое место на хакатоне форума «Юновус» в треке «Летай в ТГУ». О том, как заставить дрон приземлиться на движущуюся платформу, почему робототехника — это совсем не скучно, и как Dota 2 помогает выстраивать работу в ИТ-командах, Максим рассказал в интервью.
Практический подход
– Максим, почему при поступлении твой выбор пал именно на ФИТ ТГУ?
– С выбором университета я определился сразу: о ТГУ давно знал как об одном из ведущих вузов страны. А вот над факультетом думал долго. В итоге выбрал ФИТ, потому что мне был близок практический подход к обучению. Хотелось не просто учить теорию, а работать руками, создавать проекты и видеть, как твои знания воплощаются в реальность. Время показало, что это было абсолютно правильное решение.
– Помнишь свой самый первый проект в университете, когда удалось поработать руками и случился тот самый «вау-эффект»?
– Да, это был учебный робот-ровер на одной из пар. Мы собирали его не совсем с нуля, но всю аппаратную и программную настройку делали сами: подключали лазерные датчики для сканирования пространства, настраивали ходовую часть, шасси и интегрировали камеру.
Главной задачей было запрограммировать ровер так, чтобы он полностью автономно прошел полосу препятствий на время. Это был симулятор реального городского движения: робот должен был ехать строго по границам дороги, ориентируясь по датчикам, а в конце пути его ждал светофор. Ему нужно было распознать цвет сигнала, дождаться зеленого и только после этого ехать к финишу. Это был наш первый комплексный проект, где пришлось объединить вообще все знания: и по сборке железа, и по программированию логики.
– Есть стереотип, что ИТ — это скучная, монотонная работа за компьютером. Ты с этим согласен?
– Абсолютно не согласен. В нашей сфере — робототехнике и разработке беспилотных авиационных систем — ты очень много времени уделяешь конструированию и проектированию. Компьютер — это лишь способ робота «оживить». А вот уже после начинается самое интересное и трудное: тестирование, доработка, калибровка датчиков, запуски на полигоне. Когда ты видишь, как написанный тобой код заставляет физический объект оторваться от земли и лететь к цели, — это чистый кайф. Это уж точно не скучно.
Спасительный алгоритм
– На хакатоне «Юновуса» ваша команда заняла первое место. В чем заключалась задача и как вы распределяли роли?
– Наша команда — это я, Артём, Ларион и Тимофей. У нас не было жесткого распределения ролей, скорее, у каждого была своя главная зона ответственности, но работали мы как единый организм. Если у кого-то задача «буксовала», мы садились и решали ее вместе. Я больше сфокусировался на программной части: писал код для автономного полета и алгоритмы распознавания цели. Нашей задачей было посадить беспилотник на движущуюся платформу.
– Ты упоминал, что в какой-то момент дрон видел цель, но отказывался лететь, и вас спасла идея Тимофея. Расскажи подробнее, что произошло?
– Для распознавания меток на платформе мы использовали умную камеру. Я написал для нее программу: при обнаружении цели камера должна была передавать координаты на дрон. Логика простая: дрон видит метку, смещается туда, центрируется и начинает плавно снижаться.
Но на практике система наотрез отказалась работать. Наш беспилотник работал на другом языке программирования, и из-за разницы в форматах он просто «не понимал» те данные, которые присылала ему камера. Дрон видел цель, но алгоритм центрирования и посадки не запускался. Время поджимало, переписывать всё с нуля было нереально.
И тут Тимофей предложил изящный выход: взять за основу встроенную команду самого дрона — полет по заданным точкам — и адаптировать ее под наши данные. Мы быстро пересобрали логику: камера стала переводить координаты метки в формат простых точек, понятных для беспилотника. Система тут же отработала корректно, и дрон сел ровно по центру движущейся платформы.
– Где в реальной жизни может применяться такая разработка?
– Это очень востребованная задача для логистики. Наш алгоритм позволяет полностью автоматизировать доставку грузов в движении. Например, дрон может приземляться на крышу беспилотного грузовика, который едет по трассе, или на палубу судна в открытом море для передачи важных посылок или медикаментов. Также это применимо в автоматизированных складских комплексах, где летающие и колесные роботы должны постоянно взаимодействовать друг с другом без участия человека.
– Насколько знания, полученные в университете, помогают на таких соревнованиях?
– Помогают очень сильно, особенно профильные предметы. Наиболее полезными оказались пары по робототехнике, техническому зрению, микроконтроллерам и беспилотникам. На хакатоне у тебя нет времени учить основы с нуля, ты должен прийти и сразу применить то, чему тебя научили. База и практические навыки от вуза — это то, без чего справиться с конкурсным заданием было бы просто физически невозможно.
Командное доверие
– Расскажи о своих хобби. Как ты отдыхаешь от программирования?
– Самый частый способ отдохнуть — это соревновательные онлайн-игры вроде Dota 2 и CS. Помогают разгрузить голову, а соревновательный момент делает всё интереснее. Ну и, конечно, прогулки, периодически хожу в тренажерный зал и встречаюсь с друзьями.
А навыки из CS и Dota отлично переносятся на работу. Это тактические командные игры: если каждый играет в свою игру сам по себе, вы гарантированно проиграете. Высокий результат возможен только тогда, когда вы действуете как единое целое. Игры отлично развивают коммуникацию и учат доверять товарищам по команде. Ты понимаешь, что не обязательно контролировать всё самому — нужно уметь положиться на тиммейта. В реальной жизни на хакатонах это очень помогает находить общий язык.
– Ты уже защитил диплом в этом году. Какие карьерные планы на будущее и что посоветуешь первокурсникам?
– Свое будущее я однозначно связываю с робототехникой, поэтому планирую продолжать учебу в магистратуре здесь же, на ФИТ. И работать хочу по специальности.
Себе на первом курсе и всем нынешним первокурсникам я бы посоветовал ничего не бояться и как можно раньше начинать участвовать в соревнованиях. В начале учебы я держался в стороне из-за страха, что мне не хватит знаний. Сейчас понимаю, насколько ценен такой опыт, даже если ты не занимаешь призовое место.
Второй совет — развивайте свои собственные идеи и проекты. В ТГУ для этого созданы отличные условия. Даже если проект не выстрелит, вы получите отличный плюс к опыту и мощный кейс в портфолио для работодателя. В компании увидят, что вы не просто отсидели четыре курса, а имеете реальные навыки и, главное, желание развиваться.
Текст: Татьяна Макарова, ФЖ ТГУ