Международные состязания роботов — Правила — Примеры роботов — Робот для траектории на основе LEGO EV3. Lego EV3. Движение по черной линии Плавное движение по черной линии ev3

Текст работы размещён без изображений и формул.
Полная версия работы доступна во вкладке "Файлы работы" в формате PDF

Конструктор Lego Mindstorms EV3

Подготовительный этап

Создание и калибровка программы

Заключение

Литература

1.Введение.

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

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

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

Цель: Научится программировать движение робота по прямой линии.

    Познакомится с конструктором Mindstorms EV3 и его средой программирования.

    Написать программы движения робота по прямой на 30 см, 1 м 30 см и 2 м 17 см.

    Конструктор Mindstorms EV3.

Детали конструктора - 601 шт., серводвигатель - 3 шт., датчик цвета, сенсорный датчик движения, инфракрасный датчик и датчик касания. Микропроцессорный блок EV3, является мозгом конструктора LEGO Mindstorms.

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

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

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

    Подготовительный этап.

    Создание технического поля.

На поле работы робота нанесем разметку, с помощью изоленты и линейки создадим три линии длиной 30 см - зелёная линия, 1 м 15 см - красная и 2 м 17 см - чёрная линии.

    Необходимые расчеты:

Диаметр колеса робота - 5 см 7 мм = 5,7 см.

Один оборот колеса робота равен длине окружности с диаметром 5,7 см. Длину окружности находим по формуле

Где r - радиус колеса, d - диаметр, π = 3,14

l = 5,7 * 3,14 = 17,898 = 17,9.

Т.е. за один оборот колеса робот проезжает 17,9 см.

Рассчитаем количество оборотов необходимых, что бы проехать:

N = 30: 17,9 = 1,68.

    1 м 30 см = 130 см

N = 130: 17,9 = 7,26.

    2 м 17 см = 217 см.

N = 217: 17,9 = 12,12.

    Создание и калибровка программы.

Создавать программу будем по следующему алгоритму:

Алгоритм:

    Выбрать блок движения в программе Mindstorms EV3.

    Включить оба мотора в заданном направлении.

    Ожидать изменение показания датчика поворота одного из моторов до заданного значения.

    Выключить моторы.

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

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

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

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

5.Заключение.

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

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

Работать с конструктором очень интересно. Узнавая больше о его возможностях, можно решать любые технические задачи. А в будущем, возможно, создавать свои интересные модели робота Lego Mindstorms EV3.

Литература.

    Копосов Д. Г. «Первый шаг в робототехнику для 5-6 классов». - М.: Бином. Лаборатория знаний, 2012 - 286 с.

    Филиппов С. А. «Робототехника для детей и родителей» - «Наука» 2010г.

    Интернет - ресурсы

    http://lego. rkc-74.ru/

    http://www.9151394.ru/projects/lego/lego6/beliovskaya/

    http://www. lego. com/education/

Алгоритмы управления мобильным LEGO-роботом. Движение по линии с двумя датчиками освещенности

Педагог дополнительного образования

Казакова Любовь Александровна


Движение по линии


Алгоритм движения вдоль черной линии без пропорционального регулятора

  • Оба мотора крутятся с одинаковой мощностью
  • Если правый датчик освещенности попадает на черную линию, то мощность левого мотора (например В) снижается или происходит остановка
  • Если левый датчик освещенности попадает на черную линию, то мощность другого из моторов (например С) снижается (осуществляется возврат на линию) снижается или происходит остановка
  • Если оба датчика на белом или черном, то происходит прямолинейное движение

Движение организовано с помощью изменения мощности одно из моторов


Пример программы движения вдоль черной линии без П-регулятора

Движение организовано с помощью изменения угла поворота


  • Пропорциональный регулятор (П-регулятор) позволяет регулировать поведение робота в зависимости от того, на сколько его поведение отличается от желаемого.
  • Чем больше робот откланяется от цели, тем больше нужно приложить сил, что бы к ней вернуться.

  • П-регулятор используется для удержания робота в определенном состоянии:
  • Удержание положения манипулятора Движение по линии (датчик освещенности) Движение вдоль стены (датчик расстояния)
  • Удержание положения манипулятора
  • Движение по линии (датчик освещенности)
  • Движение вдоль стены (датчик расстояния)

Движение по линии с одним датчиком

  • Цель – движение по границе «белый-черный»
  • Человек может различить границу белого и черного цвета. Робот не может.
  • Цель для робота – находится на сером цвете

Проезд перекрестков

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



Алгоритм движения по трассе с перекрестками

  • Оба датчика на белом – робот едет прямолинейно (оба мотора крутятся с одинаковой мощностью)
  • Если правый датчик освещенности попадает на черную линию, а левый на белом то происходит поворот направо
  • Если левый датчик освещенности попадает на черную линию, а правый на белом то происходит поворот на лево
  • Если оба датчика на черном, то происходит прямолинейное движение. Можно вести подсчет перекрестков или выполнять какие либо действия


Принцип работы П-регулятора

Положение датчиков

О=О1-О2


Алгоритм движения вдоль черной линии с пропорциональным регулятором

УВ = К*(Ц-Т)

  • Ц - целевые значения (снять показания с датчика освещенности на белом и черном, рассчитать среднее)
  • Т - текущее значение - получаем с датчика
  • К - коэффициент чувствительности. Чем больше, тем выше чувствительность



Чтобы посмотреть презентацию с картинками, оформлением и слайдами, скачайте ее файл и откройте в PowerPoint на своем компьютере.
Текстовое содержимое слайдов презентации:
“Алгоритм движения по черной линии с одним датчиком цвета”Кружок по «Робототехнике»Педагог до Езидов Ахмед ЭлиевичПри МБУ ДО «Шелковской ЦТТ» Для изучения алгоритма движения по черной линии, будет использоваться робот Lego Mindstorms EV3 с одним датчиком цвета Датчик цветаДатчик цвета различает 7 цветов и может определить отсутствие цвета. Как и в NXT, он может работать как датчик освещенности.Поле для соревнований роботов "Линия S"Предлагаемый полигон с трассой в форме буквы "S" позволит вам провести еще одно интересное тестирование созданных роботов на скорость и реакцию. Рассмотрим простейший алгоритм движения по черной линии на одном датчике цвета на EV3.Данный алгоритм является самым медленным, но самым стабильным.Робот будет двигаться не строго по черной линии, а по ее границе, подворачивая то влево, то вправо и постепенно перемещаясь впередАлгоритм очень простой: если датчик видит черный цвет, то робот поворачивает в одну сторону, если белый - в другую. Движение по линии в режиме яркости отраженного светас двумя датчикамиИногда датчик цвета недостаточно эффективно может различить черный и белый цвета. Решение этой проблемы заключается в использовании датчика не в режиме определения цвета, а в режиме определения яркости отраженного света. В этом режиме мы, зная значения датчика на темной и светлой поверхности, самостоятельно можем говорить, что будет считаться белым, а что черным. Теперь определим значения яркости на белой и черной поверхностях. Для этого в меню блока EV3 находим вкладку «Приложения модуля»Теперь вы находитесь в окне просмотра портов и можете увидеть показания всех датчиков на текущий момент. наши датчики должны подсветиться красным, что означает, что они работают в режиме определения яркости отраженного света. Если же они светят синим – в окне просмотра портов на нужном порте нажимаем центральную кнопку и выбираем режим COL-REFLECT.Теперь поставим робота так, чтобы оба датчика располагались над белой поверхностью. Смотрим на цифры в портах 1 и 4.В нашем случае, значения 66 и 71 соответственно. Это и будут значения белого у датчиков. Теперь поставим робота так, чтобы датчики располагались над черной поверхностью. Снова посмотрим значения портов 1 и 4.У нас 5 и 6 соответственно. Это – значения черного. Дальше, мы изменим предыдущую программу. А именно – изменим настройки переключателей. Пока у них установлено Датчик цвета -> Измерение -> Цвет. Нам же требуется установить Датчик цвета -> Сравнение -> Яркость отраженного светаТеперь мы должны установить «тип сравнения» и «пороговое значение». Пороговое значение – это значение некоторого «серого», значения меньше которого мы будем считать черным, а больше – белым. Для первого приближения удобно использовать среднее значение между белым и черным каждого датчика. Таким образом, пороговое значение первого датчика (порт №1) будет (66+5)/2=35.5. Округлим до 35.Пороговое значение второго датчика (порт №4): (71+6)/2 = 38.5. Округлим до 38.Теперь выставляем эти значения в каждом переключателе соответственно.Вот и все, блоки с движениями остаются на своих местах без изменений, так как, если мы ставим в «типе сравнения» знак «<», то все, что сверху (под галочкой) будет считаться черным, а снизу (под крестиком) – белым, как и было в предыдущей программе.Старайтесь ставить датчики так, чтобы разница между белым и черным была как можно больше. Если разница меньше 30 - ставьте датчики ниже. Это было краткое руководство по программированию робота Lego ev3, для движения по черной линии, с одним и двумя датчиками цвета

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

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

В нашем примере будет разобрано три примера робота на основе основной учебной модели Robot Educator.

Для начала, собираем базовую модель учебного робота Robot Educator, для этого можно использовать инструкцию в программном обеспечении MINDSTORMS EV3.

Так же, для примеров нам понадобятся, датчики света-цвета EV3. Эти датчики света, как никакие другие, наилучшим образом подходят для нашей задачи, при работе с ними, нам не придётся забоится о интенсивности окружающего света. Для этого датчика, в программах мы будем использовать режим отражённого света, при котором оценивается количество отражённого света красной подсветки датчика. Границы показаний датчика 0 - 100 единиц, для «отсутствия отражения» и «полного отражения» соответственно.

Для примера мы разберём 3 примера программ для движения по чёрной траектории изображённой на ровном, светлом фоне:

· Один датчик, с П регулятором.

· Один датчик, с ПK регулятором.

· Два датчика.

Пример 1. Один датчик, с П регулятором.

Конструкция

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


Алгоритм

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


Так как на реальной траектории датчик формирует значения во всём своём рабочем диапазоне (0-100), то значением к которому стремиться робот, выбрано 50. В этом случае значения передаваемые функции поворота формируются в диапазоне -50 - 50, но этих значений недостаточно для крутого поворота траектории. По этому следует расширить диапазон в полтора раза до -75 - 75.

В итоге, в программе, функция калькулятора является простым пропорциональным регулятором. Функция которого ((a-50)*1.5 ) в рабочем диапазоне датчика света формирует значения поворота в соответствии с графиком:

Пример работы алгоритма

Пример 2. Один датчик, с ПK регулятором.

Этот пример составлен на той же конструкции.

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

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

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

6.1. Датчик цвета - режим "Яркость отраженного света"

Итак, мы приступаем к изучению следующего режима работы датчика цвета, который называется "Яркость отраженного света" . В этом режиме датчик цвета направляет поток красного света на близкорасположенный предмет или поверхность и измеряет количество отраженного света. Более темные предметы будут поглощать световой поток, поэтому датчик будет показывать меньшее значение, по сравнению с более светлыми поверхностями. Диапазон значений датчика измеряется от 0 (очень темный) до 100 (очень яркий). Данный режим работы датчика цвета используется во множестве задач по робототехнике, например, для организации движения робота по заданному маршруту вдоль черной линии, нанесенной на белое покрытие. При использовании этого режима рекомендуется располагать датчик таким образом, чтобы расстояние от него до исследуемой поверхности составляло примерно 1 см (Рис. 1) .

Рис. 1

Перейдем к практическим занятиям: датчик цвета уже установлен на нашем роботе и направлен вниз к поверхности покрытия, по которому будет передвигаться наш робот. Расстояние между датчиком и полом соответствует рекомендуемому. Датчик цвета уже подключен к порту "2" модуля EV3. Давайте загрузим среду программирования, подключим робота к среде и для проведения замеров воспользуемся полем с цветными полосами, изготовленным нами для выполнения заданий Раздела 5.4 Урока №5 . Установим робота, таким образом, чтобы датчик цвета расположился над белой поверхностью. "Страницу аппаратных средств" среды программирования переключим в режим "Просмотр портов" (Рис. 2 поз. 1) . В этом режиме мы можем наблюдать все выполненные нами подключения. На Рис. 2 отображено подключение к портам "B" и "C" двух больших моторов, а к порту "2" - датчика цвета.

Рис. 2

Для выбора варианта отображения показаний датчиков необходимо нажать на изображение датчика и выбрать нужный режим (Рис. 3)

Рис. 3

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

Рис. 4

Давайте теперь порешаем практические задачи.

Задача №11: необходимо написать программу движения робота, останавливающегося при достижении черной линии.

Решение:

Проведенный эксперимент показал нам, что при пересечении черной линии, значение датчика цвета в режиме "Яркость отраженного света" равняется 6 . Значит, для выполнения Задачи №11 наш робот должен двигаться прямолинейно, пока искомое значение датчика цвета не станет меньше 7 . Воспользуемся уже знакомым нам программным блоком "Ожидание" Оранжевой палитры. Выберем требуемый условию задачи режим работы программного блока "Ожидание" (Рис. 5).

Рис. 5

Необходимо также настроить параметры программного блока "Ожидание" . Параметр "Тип сравнения" (Рис. 6 поз. 1) может принимать следующие значения: "Равно" =0, "Не равно" =1, "Больше" =2, "Больше или равно" =3, "Меньше" =4, "Меньше или равно" =5. В нашем случае установим "Тип сравнения" в значение "Меньше" . Параметр "Пороговое значение" установим равным 7 (Рис.6 поз. 2) .

Рис. 6

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

Рис. 7

Для продолжения занятий нам понадобится изготовить новое поле, представляющее собой черную окружность диаметром примерно 1 метр, нанесенную на белое поле. Толщина линии окружности равняется 2 - 2,5 см. Для основы поля можно взять один лист бумаги размером A0 (841x1189 мм), склеить вместе два листа бумаги размером A1 (594x841 мм). На этом поле разметить линию окружности и закрасить её черной тушью. Можете также скачать макет поля, выполненный в формате Adobe Illustrator, а затем заказать его печать на баннерной ткани в типографии. Размер макета равен 1250x1250 мм. (Просмотреть скачанный ниже макет можно, открыв его в программе Adobe Acrobat Reader)

Данное поле пригодится нам для решения нескольких классических задач курса робототехники.

Задача №12: необходимо написать программу для робота, передвигающегося внутри круга, окантованного черной окружностью по следующему правилу:

  • робот движется вперед прямолинейно;
  • достигнув черной линии, робот останавливается;
  • робот отъезжает назад на два оборота моторов;
  • робот поворачивает вправо на 90 градусов;
  • движение робота повторяется.

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

Решение задачи №12

  1. Начать прямолинейное движение вперед (Рис. 8 поз. 1) ;
  2. Ожидать пересечения черной линии датчиком цвета (Рис. 8 поз. 2) ;
  3. Двигаться назад на 2 оборота (Рис. 8 поз. 3) ;
  4. Повернуть направо на 90 градусов (Рис. 8 поз. 4) ; значение угла поворота расчитано для робота, собранного по инструкции small-robot-45544 (Рис. 8 поз. 5) ;
  5. Повторять команды 1 - 4 в бесконечном цикле (Рис. 8 поз. 6) .

Рис. 8

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

6.2. Датчик цвета - режим "Яркость внешнего освещения"

Режим работы датчика цвета "Яркость внешнего освещения" очень похож на режим "Яркость отраженного света" , только в этом случае датчик не излучает освещение, а измеряет естественное световое освещение окружающей среды. Визуально данный режим работы датчика можно определить по слабо светящемуся синему светодиоду. Показания датчика изменяются от 0 (отсутствие света) до 100 (самый яркий свет). При решении практических задач, требующих измерения внешнего освещения, рекомендуется располагать датчик, так, чтобы датчик оставался максимально открытым и не загораживался другими деталями и конструкциями.

Давайте закрепим датчик цвета на нашем роботе так же, как мы крепили датчик касания в Уроке №4 (Рис. 9) . Подключим датчик цвета кабелем к порту "2" модуля EV3. Перейдем к решению практических задач.

Рис. 9

Задача №13: необходимо написать программу, изменяющую скорость движения нашего робота в зависимости от интенсивности внешнего освещения.

Чтобы решить эту задачу, нам надо узнать, как получать текущее значение датчика. А поможет нам в этом Желтая палитра программных блоков, которая называется "Датчики" .

6.3. Желтая палитра - "Датчики"

Желтая палитра среды программирования Lego mindstorms EV3 содержит программные блоки, позволяющие получать текущие показания датчиков для дальнейшей обработки в программе. В отличие, например, от программного блока "Ожидание" Оранжевой палитры, программные блоки Желтой палитры сразу же передают управление к следующим за ними программным блокам.

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

Образовательная версия среды программирования содержит программные блоки для всех датчиков, которые можно использовать с конструктором Lego mindstorms EV3.

Вернемся же к решению Задачи №13 и посмотрим, как можно получать и обрабатывать показания датчика цвета. Как мы уже знаем: диапазон значений датчика цвета в режиме "Яркость внешнего освещения" находится в пределах от 0 до 100 . Такой же диапазон у параметра, регулирующего мощность моторов. Попробуем показанием датчика цвета регулировать мощность моторов в программном блоке "Рулевое управление" .

Решение:


Рис. 10

Давайте загрузим получившуюся программу в робота и запустим её на выполнение. Робот поехал медленно? Включим светодиодный фонарик и попробуем подносить его к датчику цвета на разном расстоянии. Что происходит с роботом? Закроем датчик цвета ладонью - что случилось в этом случае? Напишите ответы на эти вопросы в комментарии к уроку.

Задача - Bonus

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