Занятие № 5. Олимпиадные дисциплины. Кегельринг

Регламент соревнования “Кегельринг”

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

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

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

Составьте следующую программу для запуска движения робота после нажатия на центральную кнопку блока.

Запустите программу. Робот должен ждать нажатия центральной кнопки на блоке и после этого проедет прямо на один оборот колеса.

Запуск робота

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

Задание № 1. Алгоритм “Произвольное движение”

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

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

✍️ Сделайте самостоятельно

1.1 Произвольное движение

Реализуйте алгоритм произвольного движения робота по рингу, до обнаружения линии.

Video Player is loading.
Current Time 0:00
Duration 0:30
Loaded: 100.00%
Stream Type LIVE
Remaining Time 0:30
 
1x
    • Chapters
    • descriptions off, selected
    • subtitles off, selected

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

      Алгоритм движения робота схож с решением задания Робот-пылесоc.

      Задание № 2. Алгоритм “Звезда”

      Данный алгоритм не полагается на удачу. Робот движется в сторону кегли, и едет вперёд на расстояние достаточное для выталкивания кегли. Затем робот отъезжает назад на такое же расстояние, чтобы вернуться в центра ринга. Робот поворачивается на месте в сторону следующей кегли и повторяет алгоритм с движением вперёд и возвратом в центр ринга. Весь алгоритм повторяется столько раз, сколько кегель в ринге.

      ✍️ Сделайте самостоятельно

      2.1 Звезда

      Реализуйте алгоритм движения робота по рингу на котором количество кегель равно 4. Перед стартом робота поставьте в центр ринга и направьте на одну из кегель.

      Video Player is loading.
      Current Time 0:00
      Duration 0:23
      Loaded: 100.00%
      Stream Type LIVE
      Remaining Time 0:23
       
      1x
        • Chapters
        • descriptions off, selected
        • subtitles off, selected

          Задание № 3. Шины данных

          Вывести на экран время, которое прошло с момента запуска программы.

          3.1 Ускорение

          Реализуйте программу для плавного ускорения робота до мощности 50. После ускорения робот должен проехать с этой мощностью ещё на 1 оборот колеса.

          Мощность колёс будет определяться номером шага цикла. Всего цикл будет выполнен 50 раз. Между каждой итерацией цикла будет пауза в 0.1 секунды.

          Задание № 4. Алгоритм “Спираль”

          Следующий алгоритм с помощью которого можно быстро убрать все кегли с поля - движение по спирали.

          Для движения по дуге определенного радиуса, мощности вращения колёс должны иметь одинаковый знак но различные значения. Если со временем менять мощность одного из колёс, радиус дуги будет меняться.

          ✍️ Сделайте самостоятельно

          4.1 Спираль

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

          Video Player is loading.
          Current Time 0:00
          Duration 0:20
          Loaded: 100.00%
          Stream Type LIVE
          Remaining Time 0:20
           
          1x
            • Chapters
            • descriptions off, selected
            • subtitles off, selected

              Самостоятельно добавьте остановку робота после обнаружения границы ринга.

              Соревнование “Кегельринг”

              На ринге находятся 8 кегель:

              Правила:

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

              • Перед стартом робот находится в центре ринга. Начальный курс робота выбирает команда.

              • Движение робота на ринге должно начинаться после нажатия кнопки на блоке управления. Робот должен работать автономно.

              • Секундомер выключается после остановки робота или через 1 минуту. Каждая кегля, оставшаяся на ринге после остановки секундомера, добавляет 10 секунд к итоговому времени.

              • До запуска программы робот должен иметь следующие габариты: ширина и высота - не больше 30 см. Высота и вес - не ограничены.

              Дополнительное задание

              Робот измеряет расстояние до стены и выводит на экран, сколько оборотов должны сделать колёса, чтобы проехать это расстояние. Расчёт проводится по формуле: x=Sπd