Продвинутый алгоритм движения по линии. Движение по линии с двумя датчиками освещенности Движение по линии с датчиком ev3

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

Человек видит черную линию и ее четкую границу. Датчик освещенности работает несколько иначе.

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

Во-первых, введем понятие “Идеальная точка траектории”.

Показания датчика освещенности колеблются в диапазоне от 20 до 80, чаще всего на белом цвете показания равны примерно 65, на черном порядка 40.

Идеальная точка – условная точка примерно посередине белого и черного цветов, следуя которой робот будет перемещаться вдоль черной линии.

Здесь принципиально расположение точки – между белым и черным. Задать ее точно на белом или черном не получится по математическим причинам, почему – будет ясно позднее.

Эмпирическим путем мы вычислили, что идеальную точку можно высчитать по следующей формуле:

Робот должен двигаться строго по идеальной точке. Если случается отклонение в какую-либо сторону, робот должен вернуться к этой точке.

Составим математическое описание задачи.

Исходные данные.

Идеальная точка.

Текущие показания датчика освещенности.

Результат.

Мощность вращения мотора В.

Мощность вращения мотора С.

Решение.

Рассмотрим две ситуации. Первая: робот отклонился от черной линии в сторону белого.

В этом случае робот должен увеличить мощность вращение мотора В и уменьшить мощность мотора С.

В ситуации, когда робот заезжает на черную линию, все наоборот.

Чем сильнее робот отклоняется от идеальной точки, тем быстрее ему надо к ней вернуться.

Но создание такого регулятора – задача довольно непростая, да и не всегда он требуется в целом виде.

Поэтому мы решили ограничиться только П-регулятором, адекватно реагирующем на отклонение от черной линии.

На языке математики это будет записано так:

где Hb и Hc – итоговые мощности моторов B и C соответственно,

Hбазовая – некая базовая мощность моторов, определяющая скорость движения робота. Подбирается экспериментально, в зависимости от конструкции робота и резкости поворотов.

Iтек – текущие показания датчика освещенности.

I ид – рассчитанная идеальная точка.

k – коэффициент пропорциональности, подбирается экспериментально.

В третьей части рассмотрим, как это запрограммировать в среде NXT-G.

Рассмотрим простейший алгоритм движения по черной линии на одном датчике цвета на EV3.

Данный алгоритм является самым медленным, но самым стабильным.

Робот будет двигаться не строго по черной линии, а по ее границе, подворачивая то влево, то вправо и постепенно перемещаясь вперед.

Алгоритм очень простой: если датчик видит черный цвет, то робот поворачивает в одну сторону, если белый - в другую.

Реализация в среде Lego Mindstorms EV3

В обоих блоках движения выбираем режим «включить». Переключатель настраиваем на датчик цвета - измерение - цвет. В нижней части не забудьте изменить «нет цвета» на белый. Также, необходимо правильно указать все порты.

Не забудьте добавить цикл, без него робот никуда не поедет.

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

Движение с двумя датчиками:

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


Алгоритм будет следующий:
Если оба датчика видят белый цвет – двигаемся вперед;
Если один из датчиков видит белый, а другой черный – поворачиваем в сторону черного;
Если оба датчика видят черный цвет – мы на перекрестке (например, остановимся).

Для реализации алгоритма нам потребуется отслеживать показания обоих датчиков, и только после этого задавать движение роботу. Для этого будем использовать переключатели, вложенные в другой переключатель. Таким образом, мы опросим сначала первый датчик, а потом, независимо от показаний первого, опросим второй датчик, после чего зададим действие.
Подключим левый датчик к порту №1, правый – к порту №4.

Программа с комментариями:

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

http://studrobots.ru/

Эта же программа для модели NXT:

Изучить программу движения. Запрограммировать робота. Переслать видео тестирования модели

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

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

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


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

  • Два датчика освещения
  • Пропорциональный регулятор (П-регулятор)

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

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

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


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

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


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

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

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

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

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

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



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

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


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

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

О=О1-О2


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

УВ = К*(Ц-Т)

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


Текст работы размещён без изображений и формул.
Полная версия работы доступна во вкладке "Файлы работы" в формате 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/

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

Общая теория и конкретные примеры создания программы описаны на сайте wroboto.ru

Опишу, каким образом мы это реализуем в среде EV3, поскольку есть отличия.

Первое, что необходимо знать роботу – значение “идеальной точки”, расположенной на границе черного и белого.

Расположение красной точки на рисунке как раз соответствует этой позиции.

Идеальный вариант расчета – измерить значение черного и белого и взять среднее арифметическое.

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

Значит, можно заставить это делать робота.

В ходе экспериментов мы выяснили, что измерять и черное, и белое необязательно. Можно измерить только белое. А значение идеальной точки рассчитывается как значение белого, деленное на 1,2 (1,15), в зависимости от ширины черной линии и скорости движения робота.

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

Расчет “идеальной точки”

Следующий параметр, участвующий в движении – коэффициент поворота. Чем он больше, тем резче робот реагирует на изменение освещенности. Но слишком большое значение приведет к “вилянию” робота. Значение подбирается экспериментально индивидуально для каждой конструкции робота.

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

Для удобства, эти параметры тоже можно записать в переменные.

Коэффициент поворота и базовая мощность

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

Для этого высчитываем два числа – значение мощности каждого из моторов В и С по отдельности.

В виде формул это выглядит так:

Где Isens – значение показаний датчика освещенности.

Наконец, реализация в EV3. Удобнее всего оформить в виде отдельного блока.

Реализация алгоритма

Именно такой алгоритм был реализован в роботе для средней категории WRO 2015