Кегельринг

Соревнования «Кегельринг роботов»

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

Кегельринг роботов
кегельринг роботов EV3

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

Как правило кегельринг проводится для младшей категории детей от 10 до 12 лет. Для того, чтобы конкуренция была одинаковой идет еще и разделение по самым распространенным робототехническим наборам. То есть отдельно проводятся соревнования, например, по кегельрингу для роботов Lego EV3 и отдельно для роботов, собранных на базе контроллера Arduino.

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

Регламент соревнований «Кегельринг роботов» для Lego EV3

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

Требования к роботу

Робот может быть собран только из деталей и датчиков робототехнического набора Lego и включать в себя любое число контроллеров Lego. Ширина и длина робота не более 25 сантиметров. По высоте робот не ограничен. Робота не должен весить более одного килограмма. Удаленное управление роботом недопустимо, робот должен быть автономным.

Кегельринг роботов Lego EV3
кегельринг Lego EV3

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

Требования к полигону

Полигон является рингом белого цвета с диаметром 1 метр, ограничительная линия черного цвета шириной 5 сантиметров.

Полигон для кегельринга
полигон для соревнований

Требования к кеглям

Кегли являются пустыми жестяными банками 330 миллилитров, диаметром 70 миллиметров и весом не более 50 грамм. Кегли должны быть белого цвета. Их можно окрашивать или обтягивать ватманом.

Условия проведения состязаний

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

Попытка не будет засчитана если робот не сможет вытолкнуть все кегли. Выигравшим считается робот, который вытолкнул все кегли за минимальное время. На очистку полигона от кеглей дается 2 минуты.  Во время проведения соревнований игроки не должны касаться роботов, кеглей или ринга.

Правила игры

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

После того как кегли расставлены по команде судьи участник состязания включает своего робота. Затем в работу робота нельзя вмешиваться. На выполнение попытки дается не более 2-х минут. Если робот вытолкнул все кегли, то соревнование останавливается и фиксируется время.

Пуск программы
запуск программы

По команде судьи «Марш» один из членов команды нажимает кнопку «Пуск» робота. Робот ждет пять секунд и начинает выталкивать кегли. Участники отходят от края поля на 1 метр для того, чтобы не создавать помехи датчикам робота.

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

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

Программа для кегельринга

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

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

Проект Кегельринг роботов
создание проекта в редакторе Lego EV3

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

блоки ожидания
программный блок ожидания

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

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

Кегельринг поворот на месте
поворот на месте

Так как радиус ринга 50 сантиметров, кегли располагаются приблизительно в 5 сантиметрах от черной ограничивающей линии, сама кегля имеет диаметр 7 сантиметров, и сам робот имеет размеры не более 25 сантиметров, то расстояние, на котором ультразвуковой датчик может увидеть кеглю определю в 35 сантиметров. Расстояние нужно также отрегулировать на полигоне опытным путем.

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

Кегельринг Выбивание кегли
выбивание кегли с полигона

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

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

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

Можно написать и другие, более совершенные варианты программы «Кегельринг роботов». Все параметры циклов, мощности поворотов и другие нужно подстраивать исходя из конструкции вашего робота и условий проведения соревнований.

Как написать программу «Кегельринг роботов Lego EV3»