СДЕЛАЙТЕ СВОИ УРОКИ ЕЩЁ ЭФФЕКТИВНЕЕ, А ЖИЗНЬ СВОБОДНЕЕ

Благодаря готовым учебным материалам для работы в классе и дистанционно

Скидки до 50 % на комплекты
только до

Готовые ключевые этапы урока всегда будут у вас под рукой

Организационный момент

Проверка знаний

Объяснение материала

Закрепление изученного

Итоги урока

Занятие 14. Робот-сумоист

Категория: Прочее

Нажмите, чтобы узнать подробности

Просмотр содержимого документа
«Занятие 14. Робот-сумоист»

Соревнования роботов “Сумо”

Соревнования роботов “Сумо”

Главная задача робота-сумоиста состоит в том, чтобы вытолкнуть за пределы ринга своего соперника. Существует множество вариантов правил проведения этого состязания, накладывающих различные ограничения в первую очередь на размеры и конструкцию роботов, тем не менее, базовые алгоритмы поведения робота при этом очень похожи. Поэтому наш урок в значительной степени будет направлен на реализацию программы поведения, а в завершающей части урока рассмотрим некоторые советы по практической подготовке к соревнованию роботов.
  • Главная задача робота-сумоиста состоит в том, чтобы вытолкнуть за пределы ринга своего соперника. Существует множество вариантов правил проведения этого состязания, накладывающих различные ограничения в первую очередь на размеры и конструкцию роботов, тем не менее, базовые алгоритмы поведения робота при этом очень похожи. Поэтому наш урок в значительной степени будет направлен на реализацию программы поведения, а в завершающей части урока рассмотрим некоторые советы по практической подготовке к соревнованию роботов.
Конструкция робота для соревнования
  • Конструкция робота для соревнования "Сумо". 
  • Базовое поведение робота в  "Сумо"  очень похоже на поведение робота в  "Кегельринге" . Роботу также необходимо найти внутри поля объект и вытолкать его за пределы круга. Различия, как водится, кроятся в деталях: теперь этот объект в свою очередь ищет нашего робота и тоже жаждет вытолкать его поскорее. 
Тем не менее - сосредоточимся на своей цели: искать соперника нам по-прежнему будет помогать один из датчиков, способных определять предметы на расстоянии (инфракрасный или ультразвуковой), а своевременно определять черную границу поля будем с помощью датчика цвета. ля того, чтобы защитить впереди расположенный датчик от взаимодействия с соперником, соорудим бампер и закрепим его на нашем роботе. Ниже приведены подробные инструкции для сборки, как из домашней, так и из образовательной версии конструктора Lego mindstorms EV3. Можете поэкспериментировать и придумать собственный вариант конструкции.
  • Тем не менее - сосредоточимся на своей цели: искать соперника нам по-прежнему будет помогать один из датчиков, способных определять предметы на расстоянии (инфракрасный или ультразвуковой), а своевременно определять черную границу поля будем с помощью датчика цвета.
  • ля того, чтобы защитить впереди расположенный датчик от взаимодействия с соперником, соорудим бампер и закрепим его на нашем роботе. Ниже приведены подробные инструкции для сборки, как из домашней, так и из образовательной версии конструктора Lego mindstorms EV3. Можете поэкспериментировать и придумать собственный вариант конструкции.
Учебный робот готов. Приступим к созданию программы робота-сумоиста.

Учебный робот готов. Приступим к созданию программы робота-сумоиста.

Создание программы для соревнования

Создание программы для соревнования "Сумо"

  • Поведенческую модель робота-сумоиста можно условно разделить на две части:  поиск соперника  и  атака соперника . Сначала займемся реализацией первой части -  поиска соперника .
  • Подробно пропишем последовательность действий нашего робота при обнаружении соперника на поле:
  • вращаться вокруг своей оси, пока впереди расположенный датчик не обнаружит соперника;
  • остановиться напротив соперника.
Установим соперников на поле напротив друг друга, как показано на рисунке ниже. Такое положение практически соответствует максимальному удалению роботов друг от друга во время состязания, поэтому текущее показание датчика, измеряющего расстояние до соперника можно взять за пороговое.  Важно : так как пороговое значение будет достаточно большим - необходимо чтобы за пределами поля на расстоянии около 1 м. во время работы робота также отсутствовали посторонние предметы, способные помешать поиску.
  • Установим соперников на поле напротив друг друга, как показано на рисунке ниже.

Такое положение практически соответствует максимальному удалению роботов друг от друга во время состязания, поэтому текущее показание датчика, измеряющего расстояние до соперника можно взять за пороговое.  Важно : так как пороговое значение будет достаточно большим - необходимо чтобы за пределами поля на расстоянии около 1 м. во время работы робота также отсутствовали посторонние предметы, способные помешать поиску.

На 
  • На  "Странице аппаратных средств" , находящейся в правом нижнем углу среды программирования, выберем вкладку  "Представление порта" (Рис. 1, 2 поз. 1)  и снимем показание датчика, определяющего расстояние до соперника, установив соответствующий режим отображения показаний.
  • В нашем случае ультразвуковой датчик в режиме  "Расстояние в сантиметрах"  показывает значение -  56,1 (Рис. 1 поз. 2) . За пороговое значение примем число -  57 .
Для того, чтобы заставить робота вращаться вокруг своей оси, воспользуемся программным блоком 
  • Для того, чтобы заставить робота вращаться вокруг своей оси, воспользуемся программным блоком  "Независимое управление моторами"   "Зеленой палитры" , Режим работы блока установим  "Включить" , значение мощности для порта  "B"  установим равным  -30 , значение мощности для порта  "C"  установим равным  30   (Рис. 3 поз.1) .
  • Для поиска соперника используем программный блок  "Ожидание" "Оранжевой палитры"  в режиме  "Ультразвуковой датчик - Сравнение - Расстояние в сантиметрах"  с пороговым значением срабатывания датчика, равным  57 (Рис. 3 поз. 2) .
  • После того, как робот окажется напротив соперника, используя программный блок  "Независимое управление моторами" "Зеленой палитры"  выключим моторы  (Рис. 3 поз. 3) .
На этапе отладки этого алгоритма вам придется, подбирая значения 
  • На этапе отладки этого алгоритма вам придется, подбирая значения  "Мощность"  моторов  "B"  и  "C"  а также пороговое значение датчика, добиться от вашего робота точного обнаружения и остановки строго напротив соперника. Только после этого можно будет переходить к программной реализации алгоритма атаки.
Начиная атаку, первое, что необходимо сделать, это прямолинейно устремиться на максимальной мощности моторов в сторону обнаруженного соперника, проверяя датчиком цвета обнаружение границы ринга. Но ведь наш соперник тоже может двигаться! Поэтому вполне возможна ситуация, когда соперник выйдет в сторону из-под направления нашей атаки. В этом случае, наш робот, промахнувшись, будет двигаться в сторону границы ринга, теряя соперника и драгоценное время.
  • Начиная атаку, первое, что необходимо сделать, это прямолинейно устремиться на максимальной мощности моторов в сторону обнаруженного соперника, проверяя датчиком цвета обнаружение границы ринга. Но ведь наш соперник тоже может двигаться! Поэтому вполне возможна ситуация, когда соперник выйдет в сторону из-под направления нашей атаки. В этом случае, наш робот, промахнувшись, будет двигаться в сторону границы ринга, теряя соперника и драгоценное время.
Следовательно, нам необходимо во время прямолинейного движения вперед анализировать оба датчика и прекращать атаку в случае, если робот  потеряет соперника   ИЛИ   робот достигнет границы ринга . Поэтому нам необходимо отказаться от использования программного блока 
  • Следовательно, нам необходимо во время прямолинейного движения вперед анализировать оба датчика и прекращать атаку в случае, если робот  потеряет соперника   ИЛИ   робот достигнет границы ринга . Поэтому нам необходимо отказаться от использования программного блока  "Ожидание" "Оранжевой палитры"  и самостоятельно в цикле получать и обрабатывать показания двух датчиков.
Приступим к поэтапной реализации алгоритма  атаки соперника : Возьмем программный блок 
  • Приступим к поэтапной реализации алгоритма  атаки соперника :
  • Возьмем программный блок  "Цикл" "Оранжевой палитры" .
  • Внутрь блока  "Цикл"  поместим программный блок  "Независимое управление моторами" "Зеленой палитры" . Режим работы блока установим в значение  "Включить"   (Рис. 5 поз. 1) , мощности моторов  "B"  и  "C"  установим в максимальное значение -  100   (Рис. 5 поз. 2) .
3. Следом за блоком 
  • 3. Следом за блоком  "Независимое управление моторами"  поместим программный блок  "Датчик цвета" "Желтой палитры" . Режим работы блока установим в значение  "Сравнение - Яркость отраженного света"   (Рис. 6)
Параметры 
  • Параметры  "Тип сравнения"  и  "Пороговое значение"  на  Рис. 7 поз. 1, 2  установим таким образом, чтобы выходной параметр  "Результат сравнения" (Рис. 7 поз. 3)  выдавал логическое значение  "Истина"  при пересечении датчиком цвета черной границы ринга.
В случае использования ультразвукового датчика за блоком 
  • В случае использования ультразвукового датчика за блоком  "Датчик цвета"  установим программный блок  "Ультразвуковой датчик" "Желтой палитры" . Режим работы блока установим в значение  "Сравнение - Расстояние в сантиметрах" (Рис. 8 поз. 1) . Параметр  "Тип сравнения" (Рис. 8 поз. 2) , параметр  "Пороговое значение" (Рис. 8 поз. 3)  установим таким образом, чтобы выходной параметр  "Результат сравнения" (Рис. 8 поз. 4)  выдавал логическое значение  "Истина"  в случае потери из виду роботом соперника.
Давайте ещё раз проанализируем промежуточный код нашего алгоритма атаки: мы включили моторы на максимальную мощность и движемся вперед, постоянно в цикле опрашивая датчики. Если наш робот пересечет черную линию границы ринга, то значение выходного параметра 
  • Давайте ещё раз проанализируем промежуточный код нашего алгоритма атаки: мы включили моторы на максимальную мощность и движемся вперед, постоянно в цикле опрашивая датчики. Если наш робот пересечет черную линию границы ринга, то значение выходного параметра  "Результат сравнения" "Датчика цвета"  примет значение  "Истина" . Если наш робот потеряет соперника, то значение выходного параметра  "Результат сравнения"  датчика, следящего за соперником, также примет значение  "Истина" . В любом из этих случаев нам следует прекратить атаку, завершив наш цикл. В этом нам поможет программный блок  "Логические операции" "Красной палитры" . Познакомимся с этим блоком подробнее: программный блок  "Логические операции"  предназначен для выполнения операций над логическими данными  (Рис. 10) .
Выбранный режим программного блока 
  • Выбранный режим программного блока  "Логические операции" "Красной палитры"  определяет одну из четырех операций над логическими данными:  "И (AND)""ИЛИ (OR)""Исключающее ИЛИ"  и  "Исключение (NOT)". Д ва входных параметра  "a"  и  "b"  (для операции  "Исключение (NOT)"  - один входной параметр  "a" ) передают в программный блок входные значения, а результирующее значение выдается выходным параметром  "Результат" . Если вы ранее не сталкивались с логическими операциями, то можете ознакомиться с базовыми знаниями в прилагаемой справке под спойлером.
  • За программным блоком  "Ультразвуковой датчик"  или  "Инфракрасный датчик"  поместим программный блок  "Логические операции" "Красной палитры"
  • Выходной параметр  "Результат сравнения"  программного блока  "Датчик цвета" (Рис. 11, 12 поз. 1)  соединим с входным параметром  "a"  программного блока  "Логические операции" (Рис. 11, 12 поз. 4).
  • Выходной параметр  "Результат сравнения"  программного блока  "Ультразвуковой (инфракрасный) датчик" (Рис. 11, 12 поз. 2)  соединим с входным параметром  "b"  программного блока  "Логические операции" (Рис. 11, 12 поз. 5).
  • Режим работы программного блока  "Логические операции"  установим в  "ИЛИ (OR)"   (Рис. 11, 12 поз. 3) . В этом случае результат выполнения логической операции будет принимать значение  "Истина" , только если будет выполнено одно из условий: датчик цвета пересёк черную линию, робот потерял соперника. 
  • Установив режим программного блока  "Цикл"  в значение  "Логическое значение"   (Рис. 11, 12 поз. 7) , выходной параметр  "Результат"  программного блока  "Логические операции" (Рис. 11, 12 поз. 6)  соединим с входным параметром  "Пока не будет истина"  программного блока  "Цикл"   (Рис. 11, 12 поз. 8) . Данные настройки завершат выполнение цикла при  "Истинном"  результате выполнения логической операции.
Заключение: Программа, которую мы разобрали с вами на этом уроке, реализует только один прямой силовой алгоритм поведения робота-сумоиста. Она подразумевает, что в прямом силовом противостоянии робот должен непременно одолеть своего соперника. Но наш учебный робот, конечно же, совсем не похож на мускулистого борца-сумо. Для того, чтобы уверенно выступить в этом состязании, необходимо уделить самое пристальное внимание в первую очередь конструкции робота, создать прочную, защищенную платформу, с помощью дополнительных ведущих колес или гусениц повысить сцепление с поверхностью ринга.
  • Заключение:
  • Программа, которую мы разобрали с вами на этом уроке, реализует только один прямой силовой алгоритм поведения робота-сумоиста. Она подразумевает, что в прямом силовом противостоянии робот должен непременно одолеть своего соперника. Но наш учебный робот, конечно же, совсем не похож на мускулистого борца-сумо. Для того, чтобы уверенно выступить в этом состязании, необходимо уделить самое пристальное внимание в первую очередь конструкции робота, создать прочную, защищенную платформу, с помощью дополнительных ведущих колес или гусениц повысить сцепление с поверхностью ринга.


Скачать

Рекомендуем курсы ПК и ППК для учителей

Вебинар для учителей

Свидетельство об участии БЕСПЛАТНО!