Сумо

Общие правила
1.Робот должен вытолкнуть робота-соперника за черную линию (За пределы поля).
2. После начала состязания роботы должны двигаться по направлению друг к другу до столкновения.
3. После столкновения роботы должны пытаться контактировать друг с другом.
4. Во время проведения состязания участники команд не должны касаться роботов.

5. Два автономных робота выставляются на ринг (круглое поле). Роботы пытаются вытолкнуть соперника за пределы ринга.
6. Робот, выигравший большее количество раундов, выигрывает матч.
7. При игре «каждый с каждым», лучшим считается робот выигравший большее количество матчей.
8. При большом количестве участников можно организовывать ранжирование по «олимпийской системе» (на вылет).
Робот
2.1. Роботы должны быть построены с использованием только деталей конструкторов ЛЕГО Перворобот (LEGO-Mindstorms)
2.2. Во время всего раунда: Размер робота не должен превышать 25х25х25см. Вес робота не должен превышать 1кг.
2.3. Робот, по мнению судий, намерено повреждающий других роботов, или как-либо повреждающий покрытие поля, будет дисквалифицирован на всё время состязаний. 2.4. В конструкции робота строго запрещено использовать: Клеящие вещества.
2.5. Перед матчем роботы проверяются на габариты и вес.
2.6. Робот может иметь множество программ, из которых оператор может выбирать каждый раунд.
2.7. Между матчами разрешено изменять конструкцию и программы роботов.
Робот
  1. Максимальная ширина робота 20 см, длина - 20 см.
  2. Высота и вес робота не ограничены.
  3. Робот должен быть автономным.
  4. Во время соревнования размеры робота должны оставаться неизменными и не должны выходить за пределы 20 х 20 см.
  5. Робот не должен иметь никаких приспособлений для выталкивания кеглей (механических, пневматических, вибрационных, акустических и др.).
  6. Робот должен выталкивать кегли исключительно своим корпусом.
  7. Запрещено использование каких-либо клейких приспособлений на корпусе робота для сбора кеглей
    Поле
    3.1. Белый круг диаметром 1 м с чёрной каёмкой толщиной в 5 см.
    3.2. В круге, красными полосками отмечены стартовые зоны роботов.
    3.3. Красной точкой отмечен центр круга.
    3.4. Поле размещено на подиуме высотой 16 мм.

    Проведение Соревнований

    4.1. Соревнования состоят из серии матчей. Матч определяет, из двух участвующих в нём роботов, наиболее сильного. Матч состоит из 3 раундов по 30 секунд. Матч выигрывает робот выигравший большее количество раундов. Судья может использовать дополнительный раунд для разъяснения спорных ситуаций.
    4.2. Раунды проводятся подряд.
    4.3. В начале раунда роботы выставляются за красными полосами (от центра ринга) в своих стартовых зонах, все касающиеся поля части робота должны находиться внутри стартовой зоны.
    4.4. По команде судьи отдаётся сигнал на запуск роботов, при этом операторы роботов должны запустить программу на роботах и отойти от поля более чем на 1 метр в течение 5 секунд. За эти же 5 секунд роботы должны проехать по прямой и столкнуться друг с другом.

    4.5. Для начинающих: После столкновения роботы не могут маневрировать по рингу.
    4.6. Для опытных: После столкновения роботы могут маневрировать по рингу как угодно.
    4.7. Если роботы не сталкиваются в течение 5 секунд после начала раунда, то робот из-за которого, по мнению судьи, не происходит столкновения, считается проигравшим в раунде. Если роботы едут по прямой и не успевают столкнуться за 5 секунд, то робот, находящийся ближе к своей стартовой зоне, считается проигравшим в раунде.
    Правила отбора победителя

    5.1. Если робот не двигается, не находясь в контакте с другим роботом, больше 10 сек, то он считается проигравшим в раунде.
    5.2. При касании любой части робота (даже не присоединённой к роботу) за пределы чёрной каёмки, роботу засчитывается проигрыш в раунде.
    5.3. Если по окончании раунда ни один робот не будет вытолкнут за пределы круга, то выигравшим раунд считается робот, находящийся ближе всего к центру круга.
    5.4. Если победитель не может быть определен способами, описанными выше, решение о победе или переигровке принимает судья состязания.

    Судейство

    6.1. Организаторы оставляют за собой право вносить в правила состязаний любые изменения, если эти изменения не дают преимуществ одной из команд.
    6.2. Контроль и подведение итогов осуществляется судейской коллегией согласно правилам.
    6.3. Судьи обладают всеми полномочиями на протяжении всех состязаний; все участники должны подчиняться их решениям.
    6.4. Если появляются какие-то возражения относительно судейства, команда имеет право в устном порядке обжаловать решение судей в Оргкомитете не позднее окончания текущего раунда.
    6.5. Переигровка может быть проведена по решению судей в случае, когда робот не смог закончить этап из-за постороннего вмешательства, либо когда неисправность возникла по причине плохого состояния игрового поля, либо из-за ошибки, допущенной судейской коллегий.
    6.6. Члены команды и руководитель не должны вмешиваться в действия робота своей команды или робота соперника ни физически, ни на расстоянии.
    6.7. Судья может закончить состязание по собственному усмотрению, если робот не сможет продолжить движение в течение 10 секунд.

    ПОВЕДЕНЧЕСКАЯ МОДЕЛЬ
    Роботу необходимо найти внутри поля робота и вытолкать его за пределы круга. Робот-противника в свою очередь ищет нашего робота и тоже жаждет вытолкать его поскорее.
    Следовательно, наш робот должен:

    1. уметь вращаться на месте вокруг своей оси;
    2. уметь двигаться прямолинейно;
    3. уметь обнаруживать робота-противника, удаленного на некоторое расстояние;
    4. уметь обнаруживать границу поля.

      Данные требования диктуют нам условия конструкции робота:

      1. для реализации первых двух условий применим уже известную нам подвижную платформу, использующую два больших мотора и вращающуюся опору (робот-тележка);
      2. для обнаружения робота-противника воспользуемся ультразвуковым датчиков;
      3. границу поля нам поможет обнаружить датчик цвета.
      Конструкция робота
      Вы можете воспользоваться предложенной инструкцией или собрать собственного робота, отвечающего определенным нами требованиям к его конструкции. В процессе сборки конструкции не забудьте подключить моторы и датчики к модулю EV3: левый мотор - к порту "B", правый мотор - к порту "C", ультразвуковой или инфракрасный датчик - к порту "2", датчик цвета - к порту "3".
      ПРОГРАММА РОБОТА
      Поиск соперника в "Сумо" очень похож на поиск кегли в "Кегельринге", но выталкивание соперника имеет важное отличие! Начиная атаку, робот должен устремиться в сторону обнаруженного соперника, проверяя датчиком цвета обнаружение границы ринга. Вполне возможна ситуация, когда соперник выйдет в сторону из-под направления нашей атаки. В этом случае, наш робот, промахнувшись, будет двигаться в сторону границы ринга, теряя соперника и драгоценное время.
      1. Возьмем программный блок "Цикл".
      2. Внутрь блока "Цикл" поместим программный блок "Независимое управление моторами" . Режим работы блока установим в значение "Включить", мощности моторов "B" и "C" установим в максимальное значение - 100.
      В этом режиме программный блок "Датчик цвета" визуально похож на программный блок "Ожидание". Но, в отличие от блока "Ожидание", этот программный блок не ждет выполнения условия, указанного параметрами "Тип сравнения" и "Пороговое значение", а сразу выдает логическое значение ("Истина" или "Ложь") в выходном параметре "Результат сравнения" ( поз. 3) и измеренное значение - в выходном параметре "Освещение" (поз. 4).
      Параметры "Тип сравнения" и "Пороговое значение" ( поз. 1, 2) установим таким образом, чтобы выходной параметр "Результат сравнения" (поз. 3) выдавал логическое значение "Истина" при пересечении датчиком цвета черной границы ринга.
      За блоком "Датчик цвета" установим программный блок "Ультразвуковой датчик". Режим работы блока установим в значение "Сравнение - Расстояние в сантиметрах" ( поз. 1). Параметр "Тип сравнения" (поз. 2), параметр "Пороговое значение" (поз. 3) установим таким образом, чтобы выходной параметр "Результат сравнения" (поз. 4) выдавал логическое значение "Истина" в случае потери из виду роботом соперника.
      • Выходной параметр "Результат сравнения" программного блока "Датчик цвета" (поз. 1) соединим с входным параметром "a" программного блока "Логические операции" (поз. 4).
      • Выходной параметр "Результат сравнения" программного блока "Ультразвуковой датчик" (поз. 2) соединим с входным параметром "b" программного блока "Логические операции" (поз. 5).
      • Режим работы программного блока "Логические операции" установим в "ИЛИ (OR)" ( поз. 3).
      • Установив режим программного блока "Цикл" в значение "Логическое значение" (поз. 7), выходной параметр "Результат" программного блока "Логические операции" (поз. 6) соединим с входным параметром "Пока не будет истина" программного блока "Цикл" (поз. 8)
      Законченная программа сумоиста должна в бесконечном цикле выполнять последовательно поиск соперника, а затем - атаку соперника. Если наш робот остановился над границей ринга, то перед тем, как начать поиск, роботу следует, отъехав немного назад, вернуться внутрь ринга.
      Для того, чтобы заставить робота вращаться вокруг своей оси, добавим блоки в начало алгоритма
      1. Поиск кегли используем программный блок "Ультразвуковой датчик - Сравнение - Расстояние в сантиметрах". Для гарантированного нахождения увеличим пороговое значение срабатывания датчика до 35
      2. После того, как робот окажется напротив кегли, используя программный блок "Выключить мотор".
      Поместим весь код в цикл и добавим в начало алгоритма блоги для поворота робота и поиска противника.
      1/14