Режимы управления и состязаний

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

Режимы

Режим Кто управляет Суть Технологии
Человек vs Человек Операторы вручную Классический формат: операторы управляют роботами с джойстика или VR-контроллера по FPV-видео WebSocket + FPV
Человек vs ИИ Оператор против автономной модели Тест навыков человека против алгоритма; ИИ может помогать оператору (Assist) YOLO + Assist AI
ИИ vs ИИ Только модели Полностью автономные модели: алгоритм против алгоритма. Побеждает код, а не оператор RL + Socket API
Соревнования и турниры Команды ELO-рейтинг команд; школьные, кадетские, вузовские лиги; публичный лидерборд ELO + Leaderboard

Организация соревнования

Подготовка

  1. Регистрация команд — администратор создаёт учётные записи операторов и выдаёт им видимость своих роботов.
  2. Подключение роботов — каждый робот подключается через SDK artex-robot и проверяется: видео, телеметрия, команды, кнопка «Стоп».
  3. Загрузка моделей (для режимов с ИИ) — команды загружают модели в вычислительную среду; модели проходят тестовый заезд.
  4. Правила — задаются: длительность раунда, критерии победы, ограничения скорости, допустимые команды.

Проведение раунда

  1. Судья запускает раунд; включается запись всех потоков (видео, телеметрия, команды).
  2. Операторы и/или модели управляют роботами.
  3. Судья может остановить любого робота (Стоп / DISARM).
  4. Результат раунда фиксируется и влияет на рейтинг.

После раунда

Рейтинг ELO

После каждого поединка рейтинг участников A и B пересчитывается:

E_A = 1 / (1 + 10^((R_B − R_A) / 400))        # ожидаемый результат A
R_A' = R_A + K · (S_A − E_A)                   # S_A = 1 победа, 0.5 ничья, 0 поражение

Рекомендуемые параметры: начальный рейтинг 1000, K = 32 для новых участников (менее 10 поединков) и K = 16 для остальных.

def elo_update(r_a, r_b, score_a, k=32):
    expected_a = 1 / (1 + 10 ** ((r_b - r_a) / 400))
    new_a = r_a + k * (score_a - expected_a)
    new_b = r_b + k * ((1 - score_a) - (1 - expected_a))
    return round(new_a), round(new_b)

elo_update(1000, 1100, 1)   # → (1020, 1080): победа над более сильным даёт больше очков

Рейтинги ведутся отдельно для людей, моделей и смешанных команд.

Лиги

Лига Участники Особенности
Школьная Школьники, кружки робототехники Режимы «Человек vs Человек» и «Человек vs ИИ», готовые модели, геймификация
Кадетская Кадетские корпуса, ведомственные центры Управление БПЛА, тактические сценарии
Вузовская Студенты, аспиранты, лаборатории Режим «ИИ vs ИИ», собственные модели, публикация результатов

Revision #3
Created 2026-09-23 09:32:24 UTC by Маслов Алексей
Updated 2026-09-23 09:35:09 UTC by Маслов Алексей