Соревнования lego mindstorms ev3

Обновлено: 02.05.2024

При организации занятий по образовательной робототехнике очень эффективно использовать игровые педагогические технологии. В форме игры можно объяснить достаточно сложные темы по основам программированию в интересной для детей форме.
Приведем примеры мини игр и соревнований по робототехнике, которые можно использовать для проведения занятий по робототехнике. Для удобства разобьём их по темам программирования.
Линейные алгоритмы в робототехнике
Соревнование прохождение трассы змейка. Ребята делятся на команды. Команда должна собрать мобильного робота ev3 на прохождение трассы. На трассе стоят две кегли, робот должен их обогнуть и приехать в зону финиша. Роботы запускаются одновременно, побеждает команда робот которой приехал в зону финиша раньше при этом не сбив кегли.
Футбол роботов. Обучающиеся собирают мобильного робота футболиста ev3. С помощью мотора и специального механизма робот может удерживать пластмассовый шарик и толкать его вперед. Робот должен доехать до ворот и втолкнуть в него шар.
Программирование датчиков ev3, циклические алгоритмы, условные алгоритмы
Игра захват флага. Собирается робот с ультразвуковым датчиком расстояния и ковшом для захвата кегли. Робот должен доехать до кегли , плавно развернуться на 180 градусов, при этом кегля должна быть в ковше и не выпасть из него, вернуться в зону старта. Эту игру можно проводить в форме соревнований, доставка кегли на скорость.
Эту игру соревнование можно усложнить, добавив вначале трассы стену, до которой робот должен доехать и затем ее объехать.
Сумо роботов. Сражение роботов. Робот должны вытолкнуть робота противника за круг. Подробнее об соревновании Сумо роботов
Кегельринг ev3 . Робот должен как можно быстрее вынести все кегли из круга. Подробнее об кегельринге роботов ev3
Гонки роботов. Два робота едут друг за другом по замкнутой траектории по черной линии. Побеждает робот , который догнал робота соперника. Можно усовершенствовать это соревнование, добавив роботам ультразвуковой датчик расстояния. с помощью датчика робот определяет что прямо перед ним другой робот и идет на обгон.
Роботы собачки. Алгоритм робота пугливой собачки следующий. Робот с датчиком расстояния отъезжает если к нему приближаются слишком близко и наоборот подъезжает , если расстояние стало слишком большим. Роботы ставятся в центр круга напротив друг друга, побеждает тот робот, который заставит выехать вражеского робота за круг при этом роботы не должны касаться друг друга. Подробнее об алгоритме пугливая собачка

Звезда активна
Звезда активна
Звезда активна
Звезда активна
Звезда не активна

Введение:

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

Урок №11 посвятим разбору соревновательной дисциплины под названием "Кегельринг".

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

Основные правила "Кегельринга" довольно просты: необходимо собрать и запрограммировать робота, который выталкивает кегли за пределы ринга. Кеглями, как правило, выступают жестяные банки емкостью 0,33 л, а роль ринга выполняет белое поле, ограниченное черной окружностью с шириной линии 50 мм. С одним из вариантов регламента проведения соревнования можете ознакомиться под спойлером ниже:

1. Условия состязания

  1. За наиболее короткое время робот, не выходя более чем на 5 секунд за пределы круга, очерчивающего ринг, должен вытолкнуть расположенные в нем кегли.
  2. На очистку ринга от кеглей дается максимум 2 минуты.
  3. Если робот полностью выйдет за линию круга более чем на 5 секунд, попытка не засчитывается.
  4. Во время проведения состязания участники команд не должны касаться роботов, кеглей или ринга.

2. Ринг

  1. Цвет ринга - светлый.
  2. Цвет ограничительной линии - черный.
  3. Диаметр ринга - 1 м (белый круг).
  4. Ширина ограничительной линии - 50 мм.

3. Кегли

  1. Кегли представляют собой жестяные цилиндры и изготовлены из пустых стандартных жестяных банок (330 мл), использующихся для напитков.
  2. Диаметр кегли - 70 мм.
  3. Высота кегли - 120 мм.
  4. Вес кегли - не более 50 гр.
  5. Цвет кегли - белый.

4. Робот

  1. Максимальная ширина робота 20 см, длина - 20 см.
  2. Высота и вес робота не ограничены.
  3. Робот должен быть автономным.
  4. Во время соревнования размеры робота должны оставаться неизменными и не должны выходить за пределы 20 х 20 см.
  5. Робот не должен иметь никаких приспособлений для выталкивания кеглей (механических, пневматических, вибрационных, акустических и др.).
  6. Робот должен выталкивать кегли исключительно своим корпусом.
  7. Запрещено использование каких-либо клейких приспособлений на корпусе робота для сбора кеглей.

5. Игра

6. Правила отбора победителя

  1. Каждой команде дается не менее двух попыток (точное число определяется судейской коллегией в день проведения соревнований).
  2. В зачет принимается лучшее время из попыток или максимальное число вытолкнутых кеглей за отведенное время.
  3. Победителем объявляется команда, чей робот затратил на очистку ринга от кеглей наименьшее время, или, если ни одна команда не справилась с полной очисткой ринга, команда, чей робот вытолкнул за пределы ринга наибольшее количество кеглей.

Итак: для проведения соревнования нам понадобится поле, точно такое же, которое мы использовали при решении Задачи №12 Урока №6 курса "Первые шаги" . Вы можете скачать макет подходящего поля на странице "Макеты полей для тренировки и соревнований" нашего сайта, а затем распечатать его в цифровой типографии на баннерной ткани, либо изготовить поле самостоятельно, используя плакатную бумагу подходящего размера, большой циркуль, линейку и черную тушь.

Жестяные банки лучше всего обклеить по периметру самоклеящейся бумагой (нам понадобятся 2 - 4 банки белого цвета и столько же - черного).

Реквизит для урока готов!

11.2 Конструирование робота для конкретного вида соревнования.

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

Наступает важный этап моделирования робота - перед нами стоят две взаимосвязанных задачи:

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

Рассмотрим следующую поведенческую модель:

Следовательно, наш робот должен:

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

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

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

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

Lego mindstorms EV3 Home

small robot 31313

Lego mindstorms EV3 Education

small robot 45544

Вы можете воспользоваться предложенной инструкцией или собрать собственного робота, отвечающего определенным нами требованиям к его конструкции. В процессе сборки конструкции не забудьте подключить моторы и датчики к модулю EV3: левый мотор - к порту "B", правый мотор - к порту "C", ультразвуковой или инфракрасный датчик - к порту "2", датчик цвета - к порту "3".

После сборки робота приступим к созданию программы.

11.3 Создание программы для соревнования "Кегельринг".

Подробно пропишем последовательность действий нашего робота для обнаружения одной кегли на поле:

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

Приступим к реализации и отладке п. 1, 2 - научим нашего робота обнаруживать кеглю и останавливаться точно напротив. Сначала нам необходимо выбрать пороговое значение для обнаружения кегли напротив нашего робота. Для этого загрузим среду программирования, создадим новый проект - "lessons-2", новую программу в проекте назовем "lesson-11". Подключим робота к среде программирования, затем установим его точно в центр поля, поставим напротив робота кеглю.

В нашем случае ультразвуковой датчик в режиме "Расстояние в сантиметрах" показывает значение - 25,9 (Рис. 1 поз. 2).

Рис. 1

Инфракрасный датчик в режиме "Приближение" показывает значение - 48 (Рис. 2 поз. 2)

Рис. 2

Режим

Рис. 3

Верхний ряд блоков отображает показания моторов, подключенных к модулю EV3 (Рис. 4 поз. 1).

Нижний ряд блоков отображает показания датчиков, подключенных к модулю EV3. Управляя клавишами модуля EV3 можно перемещаться между показаниями для получения подробной информации о датчике и выводимом значении (Рис. 4 поз. 2).

Режим

Рис. 4

Теперь мы можем запрограммировать нахождение роботом кегли:

Ультразвуковой датчик

  1. Для того, чтобы заставить робота вращаться вокруг своей оси, воспользуемся программным блоком "Независимое управление моторами""Зеленой палитры", Режим работы блока установим "Включить", значение мощности для порта "B" установим равным 30, значение мощности для порта "C" установим равным -30(Рис. 5 поз.1),
  2. Для поиска кегли используем программный блок "Ожидание""Оранжевой палитры" в режиме "Ультразвуковой датчик - Сравнение - Расстояние в сантиметрах". Для гарантированного нахождения увеличим пороговое значение срабатывания датчика до 35(Рис. 5 поз. 2)
  3. После того, как робот окажется напротив кегли, используя программный блок "Независимое управление моторами""Зеленой палитры" выключим моторы (Рис. 5 поз. 3).

Поиск кегли роботом с ультразвуковым датчиком

Рис. 5

Инфракрасный датчик

  1. Для того, чтобы заставить робота вращаться вокруг своей оси, воспользуемся программным блоком "Независимое управление моторами""Зеленой палитры", Режим работы блока установим "Включить", значение мощности для порта "B" установим равным 30, значение мощности для порта "C" установим равным -30(Рис. 6 поз.1),
  2. Для поиска кегли воспользуемся программным блоком "Ожидание""Оранжевой палитры" в режиме "Инфракрасный датчик - Сравнение - Приближение". Для гарантированного нахождения увеличим пороговое значение срабатывания датчика до 55(Рис. 6 поз. 2)
  3. После того, как робот окажется напротив кегли, используя программный блок "Независимое управление моторами""Зеленой палитры" выключим моторы (Рис. 6 поз. 3).

Поиск кегли роботом с инфракрасным датчиком

Рис. 6

Загрузим получившуюся программу в робота и запустим её на выполнение. Раз за разом, выполняя программу, мы можем заметить, что наш робот останавливается не совсем точно напротив банки. Связано это с тем, что датчик может обнаруживать предмет не только строго напротив себя, а и на некотором отклонении от направления взгляда датчика. В этом случае можно, либо после остановки робота немного довернуть его на необходимый угол, используя дополнительный блок "Независимое управление моторами", либо постепенно увеличивать скорость вращения, подбирая параметр мощность (Рис. 5, 6 поз. 1), пока робот не станет останавливаться точно напротив кегли. Например, нам потребовалось увеличить мощность до 50 единиц для робота, собранного из образовательной версии набора, и до 40 единиц для робота, собранного из домашней версии набора.

Переходим к реализации п. 3, 4 нашей последовательности действий.

Двигаться вперед и останавливаться при пересечении черной линии мы уже научились, когда разбирали Задачу №11 Урока №6 курса "Первые шаги". Установим робота таким образом, чтобы датчик цвета находился точно над черной границей поля и измерим его значение в режиме "Яркость отраженного света" любым удобным вам способом, рассмотренным выше. В нашем случае получилось значение, равное 7. В качестве порогового значение примем число 10.

Добавим к нашей программе обнаружения кегли следующие программные блоки:

  1. Для того, чтобы заставить робота двигаться прямолинейно, воспользуемся программным блоком "Рулевое управление""Зеленой палитры". Режим работы блока установим "Включить", параметр "Рулевое управление " = 0, параметр "Мощность" = 50. (Рис. 7 поз. 1)
  2. Для поиска датчиком цвета черной границы воспользуемся программным блоком "Ожидание""Оранжевой палитры" в режиме "Датчик цвета - Сравнение - Яркость отраженного сигнала", параметр "Тип сравнения" = 4, параметр "Пороговое значение" = 10. (Рис. 7 поз. 2)
  3. После того, как робот пересечет черную линию, используя программный блок "Рулевое управление""Зеленой палитры" выключим моторы (Рис. 7 поз. 3) .

Движение робота вперед до черной линии

Рис. 7

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

Lego mindstorms EV3 Home

small robot 31313

Lego mindstorms EV3 Education

small robot 45544

Теперь наш робот просто отлично справляется со своей работой! Осталось только научить его возвращаться в центр круга.

Рис. 8

Программный блок "Вращение мотора" "Желтой палитры" позволяет получать и обрабатывать это значение в программе. Режим "Сброс" программного блока "Вращение мотора" устанавливает нулевое значение датчика и отсчет оборотов начинается сначала. (Рис. 9)

Программный блок

Рис. 9

Воспользуемся этой возможностью: если мы сбросим показание одного из датчиков моторов в 0 (в данном случае можно обнулить значение любого из моторов "B" и "C", ведь робот поедет прямо, а значит оба колеса провернутся на одинаковое значение), то после остановки робота над черной линией, можно будет получить значение датчика в "Градусах" или "Оборотах" и, подав его на вход соответствующего параметра блока "Рулевое управление", заставить робота проехать точно такое же расстояние. А для того, чтобы робот двигался назад, необходимо изменить значение параметра "Мощность" на отрицательное значение.

Внесем необходимые изменения в нашу программу:

  1. Перед началом движения вперед сбросим в 0 показания датчика вращения мотора, подключенного к порту "B"(Рис. 10 поз. 1).
  2. После остановки на черной границе поля считаем расстояние, пройденное мотором "B" в градусах (Рис. 10 поз. 1).
  3. Полученное значение подадим в параметр "Градусы" программного блока "Рулевое управление", значение параметра "Мощность" = -50(Рис. 10 поз. 1)!

Движение вперед. Возвращение в центр поля.

Рис. 10

Загрузим получившуюся программу в робота и убедимся, что робот нашел кеглю, вытолкал её за пределы поля и вернулся в центр поля!

Для того, чтобы заставить нашего робота выталкивать требуемое количество кеглей, все наши программные блоки поместим внутрь программного блока "Цикл" "Оранжевой палитры". Режим программного блока "Цикл" установим в значение "Подсчет", параметр "Подсчет" установим равным количеству кеглей (Рис. 11, 12 поз. 1) Для удобства отображения на экране нам пришлось оформить программу в две строки - вы же вполне можете сложить её в одну строку.

Программа для робота small-robot 31313

Рис. 11

Программа для робота small-robot 45544

Рис. 12

Программа готова!

11.4 Соревнование "Кегельринг" с дополнительм условием

На сайте myROBOT.ru опубликованы еще два регламента проведения соревнования "Кегельринг": "Кегельринг-КВАДРО" и "Кегельринг-МАКРО". Основное условие - необходимо выталкивать за пределы поля белые кегли, оставляя на месте черные.

Как научить робота на расстоянии определять цвет кегли? Можно впереди, по ходу движения робота расположить еще один датчик цвета и, приблизившись к кегле на расстояние 1 - 2 см, определить её цвет, теряя при этом драгоценное время, отведенное на выполнение задания. Но, если вы внимательно изучили п. 8.2 Урока №8 курса "Первые шаги", то уже знаете, что на показания инфракрасного датчика в режиме "Приближение" влияет также цвет предмета. Проведем эксперимент: установим робота с инфракрасным датчиком в центр поля, напротив поместим белую кеглю и зафиксируем показания датчика. В нашем случае это значение равно 49. Теперь напротив робота установим черную кеглю - показание датчика изменилось и теперь, не смотря на одинаковое расстояние, составляет 64. Следовательно, для успешного обнаружения белых кеглей и игнорирования черных, необходимо выбрать в качестве порогового - значение, находящееся между этими числами. Число 55 полностью удовлетворяет этому условию. Нам даже не придется переделывать основной алгоритм программы! Попробуйте и убедитесь в этом сами!

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

Заключение:

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

Здравствуйте, а что делать, если надо возвести в цикл так, чтобы при совершении одного оборота, без встречи кегль, робот останавливался

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

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

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

кегельринг роботов 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 условных единиц приблизительно на два оборота. Робот едет назад в центр ринга, но количество оборотов также надо подстроить на практике для каждого диаметра колес индивидуально.

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

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

создание программы

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

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

Движение робота по линии

Это соревнование проводится в разных номинациях и категориях. Есть движение по широкой линии (5 см), по узкой линии (1,5 см), включают в движение по линии участки с прерывистой линией. Часто еще используется объезд роботом препятствий (например объезд кирпича) или преодоление препятствий (например, качающийся мост). После преодоления препятствий робот должен вернуться на линию и успешно финишировать.

Так как сейчас есть много типов робототехнических конструкторов, то соревнования также разделяют по категориям. Т.е. движение по линии Lego EV3, отдельно движение по линии Arduino и т.д. Побеждает робот, преодолевший дистанцию за минимальное время не потеряв трассу.

Алгоритмы движения робота

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

  • Релейный регулятор
  • Пропорциональный регулятор
  • Пропорциональный дифференциальный регулятор
  • Кубический регулятор
  • Пропорциональный интегральный регулятор
  • Пропорциональный интегральный дифференциальный регулятор

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

Зрение робота EV3

Робот EV3 не обладает зрением и может воспринимать информацию о линии при помощи датчика цвета EV3.

Зрение робота Lego EV3

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

Расположение датчика цвета над линией

При этом высота расположения датчика над линией должна быть около 1 см. Но это рекомендуемая высота. На соревнованиях встречаются различные варианты расположения датчика и подбираются они участниками индивидуально.

Калибровка датчика цвета

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

  • ручной способ — все вычисления проводятся самостоятельно
  • автоматическая калибровка — вычисления производятся при помощи блоков операций с данными

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

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

С = ( A + B ) / 2

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

Ручной режим калибровки датчика цвета EV3

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

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

Для примера установлю датчик цвета в порт под номером 3 и сниму показания на белом поле.

Пример калибровки датчика

На экране блока EV3 отобразилось показание в 43 условных единицы. Таким же образом определяем показания датчика на черной линии. Например показания будут 3 условных единицы. Подставляем эти значения в формулу.

С = ( A + B ) / 2 = (43 + 3) / 2 = 46 / 2 = 23

В результате получаем пороговое значение 23 условных единицы.

Автоматическая калибровка датчика цвета

Таким же точно образом измеряем пороговое значение (его еще называют значение серого) при автоматической калибровке, но на этот раз значение записывается в переменную. Назовем переменную, например, porog. В среде программирования Lego EV3 пишем программу для калибровки.

Программа с автоматической калибровкой датчика цвета

В первой части программы нужно расположить датчик над белым фоном. Датчик касания расположен в 1 порту. В программе используется блок ожидания действия с датчиком касания. В данном случае установлен параметр “щелчок” — цифра 2 в нижней части блока ожидания. Т.е. нужно нажать и отпустить кнопку датчика.

После этого датчик цвета в режиме отраженного света измеряет значение белого цвета и значение записывается в переменную A.

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

В третьей части программы мы считываем значения датчиков из переменной A и B и передаем их значения в блок математики, который находится в режиме “Дополнения”. В этом блоке происходит вычисление по формуле С = ( A + B ) / 2 ирезультат вычисления записывается в переменную С.

Теперь значение переменной С можно использовать в качестве порогового значения серого для дальнейшего использования в алгоритмах движения по линии.

Движение по тонкой линии Arduino

Фрагмент соревнований по робототехнике «Движение по тонкой линии». Также это соревнование называют «Тонкий Триал». Этот очень быстрый робот в номинации роботов Arduino является победителем региональных соревнований.

По условиям соревнований робот Arduino должен совершить объезд кирпича и преодолеть качающийся мост. После преодоления препятствий робот должен вернуться на линию и финишировать не сойдя с трассы. Тонкий триал есть и в категории Lego EV3 роботов.


Всё на русском языке о роботах LEGO MINDSTORMS EV3 и NXT: различные инструкции к конструкторам разных версий, информация о версиях, скриншоты готовых моделей, фото и видео занятий по робототехнике. Также мы выкладываем пошаговые инструкции по созданию и программированию разных видов роботов лего из конструктора версии 8547. У нас можно скачать поурочное планирование факультатива робототехники для учеников 6-8 классов. Планируем добавить всю необходимую для роботехника-любителя информацию. Всё будет доступно всегда и бесплатно!

Роботы. Состязания XXI века. IGVC 2004

Роботы. Состязания XXI века. IGVC 2004

Место действия - обыкновенное поле возле шоссе на окраине Рочестера (штат Мичиган), организаторы - Оклендский университет (Oukland Unevercity), время действия - начало ле.

Новая система превращает экскаваторы в роботов

Новая система превращает экскаваторы в роботов

Компания QinetiQ, некогда оборонное агентство британского правительства, представила серию комплектов ARK (Applique Robotic Kits), которые позволяют меньше чем за 12 часо.

Рубрика: Лего роботы WEDO 2.0, регламенты и поля для соревнований, инструкции NXT

Конструктор Lego WeDo

Конструктор Lego WeDo 2.0

Программирование и алгоритмы для lego mindstorms nxt 2.0

Соревнования роботов

  • Соревнования
  • Настраиваем робота
  • Готовимся к кегельрингу
  • Правила соревнования роботов под названием 'Очисти круг'
  • Регламент соревнования ГОНКИ ПО ЛИНИИ
  • Регламент соревнования КЕГЕЛЬРИНГ
  • Регламент соревнования КЕГЕЛЬРИНГ КВАДРО
  • Регламент соревнования КЕГЕЛЬРИНГ МАКРО
  • Регламент соревнования МИНИСУМО (ВАРИАНТ 1)
  • Регламент соревнования МИНИСУМО (ВАРИАНТ 2)
  • Регламент соревнования ПЕРЕТЯГИВАНИЕ КАНАТА
  • Регламент соревнования ПОДЪЁМ ПО КАНАТУ
  • Регламент соревнования СЛАЛОМ ПО ЛИНИИ
  • Регламент соревнования ТЕННИС
  • Регламент соревнования роботов по РОБОРЭГБИ

Поля для соревнований EV3, NXT и arduino

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

Научив, конструировать роботов и создавать программы на этих соревновательных полях Вам будет гораздо проще перейти на ступеньку выше - подготовку и участие в районных, краевых / областных соревнованиях.

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

Из личного опыта: при консультации с судьями они часто удивляются стремлению детишек уничтожить все наработки и сконструировать новое устройство . По их мнению - это лишняя трата времени. Более половины "горе конструкторов" не успевают за 1-2 дня соревнований создать что-либо новое. Это и понятно, ведь даже взрослый человек не сможет сделать профессиональную робототехническую машину в стрессовой ситуации и, одновременно сжатом по времени промежутке.

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

    Макет поля для соревнования по скоростному движению вдоль черной линии

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

Размер поля: 2400 x 1200 мм.

Файл макета в формате JPG, PDF и Adobe Illustrator (просмотр макета доступен в программе Adobe Acrobat Reader)

В дисциплине Кегельринг задача робота - за наименьшее время вытолкнуть кегли за пределы черной линии. Банки расставлены внутри круга и, обычно, это банки из под напитков 0,33 л. оклеяные клеящей или цветной бумагой.

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

Размер поля: 1250 x 1250 мм.

Файл макета в формате JPG, PDF и Adobe Illustrator (просмотр макета доступен в программе Adobe Acrobat Reader)

Макет поля для отработки алгоритмов движения вдоль черной линии

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

Размер поля: 2440 x 1220 мм.

Файл макета в формате JPG, PDF и Adobe Illustrator (просмотр макета доступен в программе Adobe Acrobat Reader)

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

Размер поля: 2440 x 1220 мм.

Файл поля в формате JPG, PDF и Adobe Illustrator (просмотр макета доступен в программе Adobe Acrobat Reader)

Положения для проведения соревнований, конкурсов и высотавок по робототехнике

Мы собрали большое количество положения для проведения соревнований по робототехнике в школе лицее или техникуме.

  • Соревнование Твинфлэп
  • Лего соревнование Траектория
  • Соревнование роботов Шорт Трек
  • Соревнование умных машин Сортировщик
  • Интеллектуальное соревнование Сапёр
  • Соревнование Гусарский турнир
  • Соревнование lego nxt / ev3 Лестница
  • Соревнование Ралли дистанционно управляемых машин
  • Турнир Лабиринт
  • Соревнование Гонки Таракароботов минироботов
  • Соревнование быстрых автомашин Эстафета
  • Соревнование интеллектуальных ботов Футбол
  • Соревнование автономных машин Дрэг Рейсинг
  • Соревнование умных ардуино и легороботов Боулинг

Инструкции для MINDSTORMS NXT PDF (13 шт.)


  • Бот с большими колёсами из картона
  • Инструкция для версии 8527 ALFAREX.pdf (классика - робот АЛЬФАРЭКС)
  • Пошаговая инструкция "РОБОРУКА" (ROBOARM)
  • Пошаговая инструкция "РОБОТ ПАУК" (SPIKE)
  • Пошаговая инструкция "МНОГОБОТ" (TRIBOT) pdf
  • Инструкция робота-сортировщика цветных шариков (ColourSorter3)
  • СЕГВЭЙ из LEGO NXT инструкция pdf скачать
  • Инструкция к роботу-многоножке
  • Пошаговая инструкция "Робот-многоглазка" (Omnibot_BI.pdf)
  • Инструкция lego-nxt-4x4-shassi.pdf
  • Инструкция lego-nxt-cattbot.pdf
  • Инструкция lego-nxt-uchebniy-robot.pdf
  • Видео инструкция "Роборука из лего EV3"

Читайте также: