Система спортивного хронометража — взгляд изнутри

в 16:16, , рубрики: Научно-популярное, оборудование для спорта, организация спортивных соревнований, метки: ,

Здравствуйте уважаемые читатели. Наверняка, многие из Вас занимались или занимаются спортом. Это отличное хобби и вообще, полезно для здоровья. Я большую часть детства провел на спортивных сборах по спортивному ориентированию. Увы, больших результатов в спорте я не достиг, но расставаться с ним (со спортом) очень не хотелось. И тогда я стал участвовать в организации спортивных соревнований. Сейчас это не работа, а скорее хобби. И сегодня я бы хотел рассказать Вам про мою роль в организации этих соревнований.

В этой статье я расскажу

  • О том, что такое спортивный хронометраж на примере лыжного марафона
  • Немного об используемом нами оборудовании
  • О программном обеспечении для судейства

Так же будет несколько больших фотографий и картинок из гущи событий.
Иногда я буду использовать термин «судейство». Для нас это привычное слово, которое обозначает «контроль хода спортивного состязания». Ничего общего с государственным органом правосудия оно не имеет.

Наша роль — хронометраж

Система спортивного хронометража — взгляд изнутри - 1

Люди всегда любили соревноваться. Во все века они выясняют кто быстрее, кто сильнее и выносливее.
Для объективного выявления сильнейших всегда нужны три вещи:

  1. Правила или регламент по которому проводятся состязания
  2. Равные условия для всех участников
  3. Независимая и не предвзятая третья сторона — спортивный судья, который фиксирует результаты состязания

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

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

С каждым годом массовые лыжные гонки становятся популярнее и собирают все большее количество участников. Несколько тысяч человек из всех уголков России и иногда Европы приезжают на гонку, чтобы на дистанциях в 10, 25 и 50 километров выяснить, кто круче. В России каждый год проходит около 20 крупных лыжных марафонов.

Система спортивного хронометража — взгляд изнутри - 2
Лыжный марафон «Праздник севера» в Мурманске.

Меня всегда удивляли и восхищали люди, которые летят 10 тысяч километров на самолете, чтобы поучаствовать в такой гонке. Они платят большие деньги за перелет, проживание и за саму гонку.

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

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

Что в этом сложного?

Система спортивного хронометража — взгляд изнутри - 3
Фотография Марии Шальневой с марафона в Дубне 14-02-2015

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

Вот несколько тому причин:

  • Все мероприятие очень сжато по времени. Есть всего несколько часов за которые надо успеть очень много дел: построить судейский городок, наладить оборудование, настроить сеть, подготовить базу участников для судейской программы.
  • Все действо происходит на улице, а в случае с лыжными марафонами к тому же на морозе. Вокруг очень громкая музыка и голос комментатора: иногда даже не слышны собственные мысли.
  • Нет позволения на ошибку, поскольку одна маленькая ошибка влечет за собой шквал более серьезных проблем. Если ошибка закралась в начало протокола результатов — медалями и дорогими призами от спонсоров могут наградить не тех участников.
  • В самый неподходящий момент срабатывает закон подлости: ломается роутер, не пингуются ридеры, не заводится/ломается генератор или бензопила или Windows выдает синий экран смерти
  • Идиотское поведение отдельно взятых участников, а иногда и организаторов. Люди считают возможным вмешиваться в работу бригады хронометража, отвлекать вопросами и настаивать на решении собственных проблем.
  • Количество участников гонки частенько зашкаливает за пару тысяч человек. Ошибка в подсчетах результатов повлечет за собой недовольство многих.

Оборудование которое мы используем

Система спортивного хронометража — взгляд изнутри - 4
Включение антенн в RFID-ридер

Количество участников гонки в две-пять тысяч человек подразумевает обязательное использование электронных средств хронометража. Если мы будем использовать часы, карандаш и бумагу для подсчета результатов, то ждать их придется «как минимум вечность».

Задача звучит так: необходимо автоматически определять точное время прохождения каждого участника через определенную точку на дистанции и сохранять в базу данных пару «номер участника — время пересечения линии финиша».

Изначально мы рассматривали два вариант решения, один из которых тут же отпал из-за своего несовершенства и сложности реализации.

Первый вариант (от которого мы сразу отказались) — распознавание номеров участников на фото или видео, сделанном на точке пересечения, автоматической камерой или фотоаппаратом. Так поступает наша доблестная ГИБДД — снимают, распознают, рассылают письма со штрафами. Пример: лыжник проехал через линию финиша, пересек «лучик», который связан с фотоаппаратом. Фотография тут же автоматически распознается, время и номер с нее попадает в базу данных. Вы можете сами судить о сложности разработки и вероятных проблемах такой системы. при использовании ее на массовых мероприятиях.

Система спортивного хронометража — взгляд изнутри - 5

Второй вариант (который мы используем) — использование RFID меток, вшитых в майки-номера участников. Принцип работы радиочастотной идентификации, я скопировал с Википедии:

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

Схему работы вы можете понять по фотографии ниже:

Система спортивного хронометража — взгляд изнутри - 6

Участник проезжает мимо антенн, пассивная (т.е. без собственного источника питания) RFID-метка в майке участника улавливает электромагнитные волны считывателя и отправляет ему ответный сигнал. Дальше — дело техники в прямом и переносном смысле. Необходимо выбрать ответ с максимальным уровнем сигнала (этим занимается ПО в ридере) и отправить пакет «время—номер» по сети на сервер.

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

Первым делом мы устанавливаем антенны и ридеры на контрольных точках (обычно это одна промежуточная точка и финиш).

Система спортивного хронометража — взгляд изнутри - 7
Схема (вид сверху) финишного городка лыжного марафона

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

Система спортивного хронометража — взгляд изнутри - 8

Дальше мы тянем провода: все ридеры, IP-камеру, служебные компьютеры, принтер необходимо собрать в одну сеть.

Система спортивного хронометража — взгляд изнутри - 9

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

Система спортивного хронометража — взгляд изнутри - 10
Фото с промежуточной отсечки

Программное обеспечение для хронометража и судейства

Основная задача бригады хронометража — по первому требования предоставлять главному судье соревнований актуальные и безошибочные протоколы результатов гонки. Простым языком, протокол результатов — это таблица участников гонки, разделенная на возрастные группы и отсортированная по времени прохождения дистанции. Звучит достаточно просто и кажется можно обойтись одним только Excel-ем для создания такой таблицы.

Некоторые организаторы-старожилы и правда используют Excel для судейства подобных стартов. У них есть шаблоны файлов под каждый тип гонки, отлаженная коллекция макросов, очень строгие и жесткие правила работы. На мой взгляд — это сложно, неудобно и очень ограничивает использование дополнительных плюшек (скажите, как например, разослать через Excel смски с результатами участникам, которые только что финишировали, сделать GPS трансляцию на большой монитор в центре соревнований и он-лайн трансляцию результатов в интернет?)

Мы решили пойти дальше и сделали программу. Точнее даже не программу а веб-приложение. OpenEventor (так мы его назвали) написан на языке PHP (здесь некоторые читатели должны нахмурить брови и слегка покачать головой). Довольно странный выбор для написания узко-специфичного ПО, которое к тому же должно работать с оборудованием, скажут скептики.

Система спортивного хронометража — взгляд изнутри - 11

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

  1. Возможностей, которые нам дает PHP, HTML5 и JS — вполне хватает для реализации задуманного.
  2. Не нужно каждый раз компилировать. Увы, но частенько мне приходится править код прямо во время гонки, так сказать на «броне горящего танка». В этот момент возможность дописать 2 строчки кода, и нажатием на F5 в браузере получить результат — очень хорошая возможность
  3. PHP — очень популярен, а это значит, что можно найти дешевого программиста для написания плагинов (об этом ниже).
  4. Не требуется устанавливать софт на каждый компьютер. В тот момент, главный судья соревнований или комментатор хочет «видеть у себя на макбуке как финишируют участники», достаточно включить его в сеть и открыть в браузере нужную страницу. А когда нужно оперативно посадить пятерых девочек на регистрацию новых участников — реализация OpenEventor-а в виде веб-приложения кажется мудрой.
  5. Наши ридеры работают по сети. IP камера, разумеется тоже. Поэтому работать с оборудование мы можем вполне комфортно и на PHP.
  6. Я к сожалению не знаю других языков программирования, так же хорошо как PHP. Возможно мы бы и сделали программу на Java или C#, если бы кто то из нашей команды знал Java или C#.

Для тех кто не осведомлен, что можно «работать в браузере без Интернета», делается это так:

  1. Компьютеры объединяются в одну сеть с помощью свича и витой пары или с помощью Wi-Fi роутера.
  2. На одном из компьютеров мы запускаем веб-сервер (мы используем OpenServer Максима Архипова ArhMax)
  3. Все, кому нужен доступ к программе — просто открывают браузер и вводят там адрес, типа 192.168.1.15 и попадают на главную страницу OpenEventor-а.

Для хранения данных сразу была выбрана база данных SQLite. Для тех кто никогда не использовал SQLite — очень рекомендую взять на вооружение (статья на Хабре). Это очень надежная и весьма быстрая БД. Специальный сервер для нее не нужен.

Для нас концепция SQLite оказалась идеальной: каждое мероприятие (марафон, гонка, или еще что) — это отдельная база данных. Каждая база данных SQLite — это отдельный файл *.db. Старые базы легко архивировать, чтобы не занимали место и не потерялись, а текущие — легко передавать, если есть такая необходимость. Работать с SQLite на PHP- очень просто и безопасно, она поддерживается интерфейсом PDO. Если вдруг приходится сделать что-то сверхсложное, что сделать силами OpenEventor не выходит, можно написать SQL запрос руками.

Система спортивного хронометража — взгляд изнутри - 12
Сплит монитор (слева) и раздел «Плагины» (справа)

Как я упомянул выше, система расширяется с помощью плагинов.
Сделать универсальную систему для судейства спортивных соревнований — не реально.

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

Во-вторых, включать такие второстепенные вещи, как отправка смс и и автоматическая публикация фотографий из финишного створа (которые делает автоматический фотоаппарат) — не логично.

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

Немного про устройство программы

В системе есть две ключевые сущности:

  • Участник — обладает такими параметрами как пол, год рождения, группа (класс в котором он соревнуется), фамилия, имя, номер (тот который крепится на грудь или на ногу), и еще несколькими.
  • Сплит —это факт и время пересечения определенной точки на дистанции определенным участником

Остальные (команды, группы, дистанции) — являются вторичными и долго рассказывать про них я не стану. На любом спортивном мероприятии, где спортсмены соревнуются индивидуально есть деление на команды (например: по городам или спортивным клубам) и группы (например: по возрасту и полу). Дистанция, в циклическом виде спорта (бег, лыжи, велогонки, ориентирование и т.д.) это правильная последовательность сплитов (см. выше), которую необходимо «собрать» участнику во время гонки.

Пример: Лыжник из возрастной группы М35 (мужчина 35 лет) преодолевает дистанцию в 50 км, которая состоит из 5 кругов. Он пять раз проезжает десятикилометровый круг, 4 раза проезжаю промежуточную отсечку и на пятый раз — финишную отсечку в другом месте трассы. Для лыжника — это просто 50 километров (хотя, это конечно очень не просто :). Для меня, как для хронометражиста — это дистанция lap, lap, lap, lap, finish.

Основная наша работа во время гонки — контролировать работу оборудования и очень быстро исправлять ошибки. Считыватели иногда пропускают участников. Обычно это 3 сплита из 100. Наша задача — определить, «кого не поймало», вычислить время сплита (например посмотреть сохраненное видео с ip камеры, которая 4 часа записывает видео). Иногда даже приходится пользоваться бумажным дублем.

Система спортивного хронометража — взгляд изнутри - 13
В сплит-мониторе мы сразу видим «проблемных» участников

Решить проблему с пропусками — не сложно. Намного сложнее вовремя определить, что эта проблема есть. Именно для этого мы сделали сплит-монитор: это плагин, в котором отображается самая актуальная информация о сплитах. Плагин анализирует сплиты участника, сравнивания с заданной дистанцией выясняет есть ли проблема. В этот момент еще можно понять, что произошло: лыжник просто случайно закрыл локтями чипы (rfid-метки) и «не поймался» на прошлой промежуточном финише, сошел с дистанции после после второго круга и ошибся поворотом и вместо круга 25 км проехал всего 10. Дальше разобраться будет не реально: он соберет вещи и уедет домой, а потом всю неделю будет ворчать на форуме, что его дисквалифицировали ни за что…

Система спортивного хронометража — взгляд изнутри - 14

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

Система спортивного хронометража — взгляд изнутри - 15
Фотография Марии Шальневой с марафона в Дубне 14-02-2015

Спасибо за внимание

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

Автор: Surzhikov

Источник


  1. c0x:

    Я думаю, что простой GPS трекер и лазер на финише + видеокамера (для спорных случаев) гораздо проще и дешевле в смысле персонала и развёртывания – свёртывания, тучи чекпойнтов на километрах трассы. Потом либо снять с них данные, либо организовать связь с центром. Вы там ещё жалуютесь на сложность развернуть. Думаю, что свернуть ещё сложнее, тупо за счёт чистки или даже краже аппаратуры.

    Ну да, трекеры недёшевы, но это одноразовая затрата и при крупных партиях идут с заметной скидкой.

    Всякие мухляжи, вроде среза части петли или ещё какого косяка – видно на экране.

    А как быть, если двое или даже трое идут нос-в-нос и всякий RFID видит только того, которого ему удобнеее?

    Короче, Ваше решение, извините, кал.
    Хоббийный дилетантский кал.

    • Surzhikov:

      @c0x
      Трекеры на каждого из 5+ тыс участников?
      На Бостонском марафоне где 40+ тыс тоже предложишь трекеры?
      У тебя есть 5 минут чтобы после финиша первого участника начать оперативно выдавать протоколы результатов. Все эти пять минут у тебя за спиной стоит делегат из какой-нибудь Эстонии и спрашивает “ну когда, ну когда, ну когда же”.

      В варианте с пассивной RFID – метки просто вшиваются в майки-номера на этапе производства, эти майки остаются участникам. RFID (пассивный/активный) или аналогичные системы на BLE/xbee – единственный способ сделать хронометраж на массовых мероприятиях.

      Кароче ваше сообщение и мнение – хоббийный дилетантский кал.

  2. c0x:

    и да, настройте время на сервере

    nostromo ~ # ssh netfram.com

    +—————————————————+
    ! Idiots, go go go !
    +—————————————————+

    Last login: Mon Jul 17 09:02:51 2017
    root@blackfish:~# ntpq -c pee
    remote refid st t when poll reach delay offset jitter
    ==============================================================================
    10.46.1.10 .INIT. 16 u – 1024 0 0.000 0.000 0.000
    LOCAL(0) .LOCL. 10 l 5d 64 0 0.000 0.000 0.000
    -ntp.aas.ru .GPS. 1 u 916 1024 377 39.056 0.471 1.997
    -ntp0.nl.uu.net .PPS. 1 u 18 1024 377 83.825 1.751 1.749
    -ntp1.nl.uu.net .PPS. 1 u 161 1024 377 82.383 -3.344 1.395
    -ntp1.vniiftri.r .MRS. 1 u 251 1024 377 39.888 1.008 0.515
    +ntp2.vniiftri.r .MRS. 1 u 140 1024 377 39.013 0.101 0.047
    +ntp3.vniiftri.r .MRS. 1 u 876 1024 377 39.193 0.164 0.278
    *ntp4.vniiftri.r .IRIG. 1 u 652 1024 377 39.246 0.118 1.566
    root@blackfish:~# date
    Чт июл 27 11:11:56 +05 2017
    root@blackfish:~#

* - обязательные к заполнению поля


https://ajax.googleapis.com/ajax/libs/jquery/3.4.1/jquery.min.js