Как проходил полуфинал MTS True Tech 2025

Tagged as hackathon, mtstruetech, commonlisp, robotics

Written on 2026-01-01

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

► Про херовую организацию

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

Доступ к тому роботу, который катался по лабиринту, выдавался по записи. Записаться можно было всего на один час в день. При этом организация процесса была настолько хреновая, насколько это только возможно придумать. Например, ты мог потерять 30-40 минут просто потому, что какие-то проблемы с паролем или какие-то проблемы с сетью. VPN не подключался к сети, откуда можно было попасть на робота и так далее. Кроме того, слоты иногда задерживались. Отлаживать софт можно было и ночью, но ночью все роботы стояли на подставочках а так много не натестируешь.

Также хреново было организовано и тестирование робота в реальном лабиринте. Каждой команде дали по три попытки запустить робота по лабиринту. Причем мы не видели, что происходит. Максимум, на что можно было рассчитывать, это голосовые комментарии от организаторов, где они говорили: "Ваш робот застрял в углу, крутит колесами".

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

► Жесть с железом

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

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

► Итог

Прикольно было попробовать Common Lisp для управления роботом. Это реально круто - иметь REPL через который можно управлять колесами, смотреть состояние робота и тд.

Самое досадное то, что физика движения реального робота оказалась сильно отличается от его движений в виртуальном лабиринте, который нам давали в заданиях до полуфинала. И я понял, как исправить это, только за один день до конца приёма сдачи полуфинального лабиринта. Так что получалось, что я отлаживал движение робота в симуляторе не с той физикой, которая близка к реальному миру.

Из-за этого мой робот в реальности двигался совсем иначе. Если бы не этот факт, если бы я узнал об этом хотя бы за неделю до окончания полуфинала, то шансы на то, чтобы попасть в финал, были бы гораздо выше.

Что порадовало меня в этом состязании, так это то, что всё-таки удалось погонять свой софт на реальном роботе, который катается в реальном физическом мире. Это было прикольно! Теперь хочу себе такого же, чтобы можно было потестировать его у себя дома.

► Другие части


Created with passion by 40Ants