Управление образования Администрации города Глазова

Исследовательская работа

АЛГОРИТМЫ ДВИЖЕНИЯ РОБОТА ПО ЛИНИИ

,

Ученик 10 «Б» класса

МБОУ «ФМЛ»

Руководитель: Кельдышев

Денис Александрович,

учитель технологии

МБОУ «ФМЛ»

Глазов, 2016

Содержание

Введение        3

§1. Влияние конструкции робота на его движение по линии. Ширина колесной базы        4

§2. Влияние конструкции робота на его движение по линии Расстояние между колесной базой и датчиком цвета.        7

§3. Базовые алгоритмы движения роботов по линии        10

Заключение        13

Список литературы        14

Введение


В прошлом году нам удалось принять участие в робототехнической олимпиаде (г. Нижний Новгород). Командой был сконструирован и запрограммирован робот для выполнения следующей задачи: необходимо проехать по линии, собрав на определенных участках «груз». Мы не заняли призового места - не удалось попасть в тройку лидеров «по времени». Робот медленно перемещался на некоторых участках. Данная работа посвящена исследованию алгоритмов перемещения робота на различных участках трассы. Исследование поможет нашей команде оптимально программировать микроконтроллер для быстрого прохождения трассы. В работе рассмотрены не все существующие алгоритмы – для нашего исследования подойдут наиболее популярные из них.

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

НЕ нашли? Не то? Что вы ищете?

Задачи:

1. Выяснить влияние конструкции робота на его движение по линии.

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

3. найти оптимальный алгоритм перемещения робота.

Объект исследования. Программирование робототехнических систем.

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

Для решения поставленных задач необходимо было пройти следующие этапы:

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


§1. Влияние конструкции робота на его движение по линии.

Ширина колесной базы



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

1) Микроконтроллер EV3;

2) Сервомоторы;

3) Датчики цвета;

4) Соединительные детали.

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

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

Если теперь правое колесо начнет двигаться, то траектория измениться, но все также останется окружностью - только большего радиуса (рис. 2).

Рис. 1

Рис. 2


Движение в левую сторону даст аналогичные окружности. Общее правило при этом такое - чем сильнее скорости вращения колес стремятся сравняться друг с другом, тем больший радиус будет описывать тележка (рис. 3).

Рис. 3


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

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

Рис. 4


Очевидно, что при движении робота по каждой дуге, датчик цвета, закрепленный на тележке, также будет описывать дугу (Рис. 5).

Рис. 5


Тогда первое следствие, какое можно выделить после данных рассуждений, что дуга минимального радиуса, описываемая датчиком освещенности, будет при одном неподвижном колесе. Также можно утверждать, что дуга меньшего радиуса будет у робота с более узкой колесной базой (рис. 6).

Рис. 6


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

Рис. 7


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

Рис. 8


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


§2. Влияние конструкции робота на его движение по линии

Расстояние между колесной базой и датчиком цвета.



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

В зависимости от расположения датчика вид треугольника может изменяться (рис. 10).

Рис. 9

Рис. 10


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

Рис. 11


Также подразумевается, что датчики на всех роботах видят одно и тоже  – их показания равны. Если на роботах записаны одинаковые программы, тогда на двигатели каждого робота будет подаваться одинаковое управляющее воздействие, что приведет к повороту "треугольников" на один и тот же угол (рис. 12).

Рис. 12


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

Рис. 13


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

У тележки, датчик которой очень близко к оси колес, отклонение самое маленькое. Если в этот момент датчик находился на светлой части поля, то тележке нужно еще больше переместиться, чтобы достигнуть границы черной линии. Максимальное перемещение будет достигаться только при существенной разнице в скоростях вращения колес, т. е. при практически полной остановке одного из них. В итоге, при движении практически не будет фаз прямого движения - робот практически перпендикулярно будет переходить через границу линии.

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

Рис. 14


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

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

§3. Базовые алгоритмы движения роботов по линии


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


Рис. 15


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

Следующий алгоритм – линейный. Для начала введем понятие управляющего воздействия – величина, на которую будет увеличена базовая мощность одного  мотора, и уменьшена другого. Тогда управляющее воздействие будет равно произведению некоторого коэффициента на разность текущего значения датчика и серого цвета. Управляющее воздействие будет тем больше по модулю, чем сильнее робот отклонился от линии (формула 1).

U=k*(Light-Grey)  (1)

U – управляющее воздействие;

k – коэффициент;

Light – текущее значение датчика;

Grey – значение серого;

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

Следующий алгоритм – кубический (формула 2). Первая его часть – линейная; коэффициент при ней можно взять из линейного алгоритма, предварительно немного уменьшив для более качественной езды на участках без поворотов. Вторая часть – кубическая представляет собой первую линейную часть, взятую без коэффициента, и, возведенную в куб. Коэффициент при кубической составляющей (k2) необходимо взять порядка 10-3 – 10-4, в результате при небольшом отклонении датчика от линии кубическая часть будет близка к нулю и её воздействием можно пренебречь, однако при большом отклонении управляющее воздействие резко возрастет и вернет робота на нужную позицию.

U=k1*(Light – Grey)+k2*(Light – Grey)3  (2)

U – управляющее воздействие;

k1, k2– коэффициенты;

Light – текущее значение датчика;

Grey – значение серого;

После нескольких попыток робот показал достойный результат в 32 секунды.

Далее был рассмотрен пропорционально-дифференциальный алгоритм (формула 3). Он, как и кубический, состоит из двух частей. Первая часть – линейная. Вторая – дифференциальная. Она представляет собой произведение некоторого коэффициента на разность предыдущего значения датчика и текущего значения датчика. Фактически, дифференциальная часть сообщает роботу, в каком направлении он двигается: в сторону белого цвета, или черного. Так же целесообразно добавить задержку после каждого вычисления, в противном случае дифференциальная часть из-за быстрой работы робота будет близка к нулю и потеряет свой смысл. Так же задержка не должна быть слишком большой, иначе робот потеряет реакцию.

U=k1*(Light – Grey)+k2*(LastLight –Light)3  (3)

U  – управляющее воздействие;

k1, k2  – коэффициенты;

Light  – текущее значение датчика;

LastLight  – предыдущее значение датчика;

Grey  – значение серого;

Delay  – задержка.

Время прохождения трассы составил 30 секунд.

Далее был разработан относительный алгоритм (формула 4). Относительный алгоритм представляет собой модифицированный линейный, с отличием в предобработке данных. В линейном алгоритме за основу берется разность показаний датчиков, в относительном – их отношение.

U =  k * Light/Grey

if (p<1){

U = -1/U

  }  (4)

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

Сравним выбранные алгоритмы (таблица 1). Релейный алгоритм обладает очень медленной скоростью езды, однако очень прост в использовании и подойдет любому новичку. Линейный показывает более достойное время на обычной трассе, однако оно будет еще меньше на участках с большим радиусом поворота. Кубический алгоритм обладает высокой стабильностью и подойдет на всех типах трасс. Пропорционально-дифференциальный требует более точной и сложной настройки, однако это приведет самому быстрому прохождению трасс, состоящих только из плавных поворотов.

Таблица 1

Алгоритм

Время прохождения, с

Преимущества

Релейный

63

Простота использования

Линейный

41

Быстрое прохождение трасс с большим радиусом поворота

Кубический

32

Универсальность

Пропорционально-дифференциальный

30

Более высокая скорость прохождения участков с плавными поворотами




Заключение


В результате исследования, проведенного в процессе выполнения работы, можно сформулировать следующие выводы:

1. При конструировании робота необходимо учитывать криволинейность трасы.

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

3. Пропорционально-дифференциальный алгоритм даёт возможность показывать лучшие результаты по сравнению с релейный, линейным и кубическими алгоритмами.

4. Пропорционально-дифференциальный алгоритм можно улучшить его управляющие воздействие вычислять с помощью относительного алгоритма.

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

Список литературы



1. Вязовов, робототехника: приемы программирования в среде EV3: учебно-практическое пособие / , . – М.: Издательство «Перо», 2014, - 132 с.

2. Овсяницкая, программирования Lego Mindstorms EV3 в среде EV3: основные подходы, практические примеры, секреты мастерства / , . – Челябинск: ИП , 2014. – 204 с.

3. Филиппов, для детей и родителей. – Спб.: Наука, 2013. - 319 с.