Анализ соревнований по спортивному ориентированию
После соревнования результат известен: место, общее время, протокол. Но для меня разбор только начинается. У дочери спортивное ориентирование почти каждую неделю, и мне хочется понять, где именно было потеряно время и повторяется ли это от старта к старту.
Сервис, которым я пользовался раньше, не позволял загрузить протокол и сравнить каждый перегон с другими участниками. Данных было много, а ответа на вопрос «над чем работать?» не было.
Так появился портал, который соединяет три источника. Скан спортивной карты геопривязывается минимум по трём точкам, а контрольные пункты оцифровываются кликами. GPX-трек с часов режется на сплиты по ближайшему прохождению каждого КП. Третий источник — официальный протокол.
Самое интересное — эталон. Победитель тоже мог где-то ошибиться, поэтому сравнивать с ним мне нравится меньше. Вместо этого для каждого сплита портал находит лучшее реально показанное время и собирает из них синтетическую строку — «Идеального лидера». Первый перегон быстрее всех мог пройти один участник, второй — другой. Получается локальный ориентир для каждого отрезка. Красный сплит при этом не называет причину, он говорит: «вот участок, который стоит разобрать». Если прямая между КП 300 метров, а трек 820, это ещё не доказывает ошибку: через болото или забор не пройти. Но повод посмотреть на выбор пути есть.
Весь код портала написал AI-агент, я не открывал исходники. Я ставил задачи по реальным проблемам, проверял результат на настоящих данных и решал, что делать дальше.
Самая сложная задача появилась после того, как всё заработало. Портал может показать, что главная повторяющаяся проблема — не ошибки в навигации, а «низкий темп без ошибки». Но какое тренировочное действие из этого следует и как проверить через несколько недель, что потерь стало меньше? Пока у меня нет хорошего ответа. Диагностика всё больше автоматизируется, а сложность перемещается в изменение тренировочного процесса. Стали ли результаты дочери лучше, я сказать не могу: данных для такого вывода нет.
Полную историю, с экранами и разбором проблемного сплита, собрал в статье: https://hram.github.io/articles/orienteering/